首页 > 解决方案 > 检查 discord.js 机器人权限

问题描述

在这里,您看到代码在启动机器人时运行并从每个服务器获取用户邀请,并且您知道需要管理员角色,但例如,此机器人位于 10 台服务器上,其中一个服务器关闭了机器人的管理员角色,我的机器人得到了错误并得到Missing Access然后崩溃并关闭我的意思是您必须按任意键

在这里,我想检查服务器权限,我的意思是一台服务器,如果服务器中的机器人没有角色,请忽略它并且不会崩溃

module.exports = (client) => {
  const invites = {} // { guildId: { memberId: count } }
  const db = require("quick.db")
  const getInviteCounts = async (message,guild) => {
    return await new Promise((resolve) => {

      guild.fetchInvites().then((invites) => {

        const inviteCounter = {} // { memberId: count }

        invites.forEach((invite) => {
          const { uses, inviter } = invite
          const { username, discriminator } = inviter

          const name = `${username}#${discriminator}`

          inviteCounter[name] = (inviteCounter[name] || 0) + uses
        })

        resolve(inviteCounter)

      })

    })
  }

标签: javascriptnode.jsdiscorddiscord.js

解决方案


对于 discord.js v13,您需要使用:

if(!message.guild.me.permissions.has("ADMINISTRATOR")) return message.reply(`I don't have ADMINISTRATOR permission`)

推荐阅读