簡體   English   中英

discord.js v13 permissions.has() function 不工作(TypeError: Cannot read properties of undefined (reading 'has'))

[英]discord.js v13 permissions.has() function not working (TypeError: Cannot read properties of undefined (reading 'has'))

我想為我的 Discord 機器人編寫一個ban命令。 我有這一行,機器人應該檢查用戶是否具有管理員權限。 如果應該被禁止的用戶擁有它們,則機器人不會禁止該用戶並崩潰。 當我嘗試運行此命令時,我得到以下信息:

TypeError: Cannot read properties of undefined (reading 'has')

我不明白為什么。 我問的沒有人可以幫助我,我在網上找不到任何東西,所以我希望我能在這里找到幫助。

我的代碼:

const discord = require('discord.js');
const { Permissions } = require('discord.js');

module.exports.run = async (Client, message, args) => {
  if (!message.member.roles.cache.some(role => role.id == 589850931785498624)) {
    return message.reply("You don't have the perms.");
  }

  const mention = message.mentions.users.first();

  if (!mention) {
    return message.reply('You need to tag a user!');
  }

  if (mention.permissions.has(Permissions.FLAGS.MANAGE_CHANNELS)) {
    return message.reply("You can't ban an Administrator!")
  }

  //message.guild.members.ban(mention);
}

module.exports.help = {
  name: "ban",
  aliases: ["b"],
}

"TypeError: Cannot read properties of undefined (reading 'has')"表示mention.permissionsundefined 這是因為您mention的變量是User並且只有GuildMemberpermissions

另一個錯誤是您嘗試檢查role.id是否等於數字/整數,但雪花(如589850931785498624應該始終是字符串,因為它們大於MAX_SAFE_INTEGER

module.exports.run = async (Client, message, args) => {
  if (!message.member.roles.cache.some((role) => role.id == '589850931785498624'))
    return message.reply("You don't have the perms.");

  const mentionedMember = message.mentions.members.first();

  if (!mentionedMember)
    return message.reply('You need to tag a user!');

  if (mentionedMember.permissions.has(Permissions.FLAGS.MANAGE_CHANNELS))
    return message.reply("You can't ban an Administrator!");

  message.guild.members.ban(mentionedMember);
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM