【问题标题】:.permission.has() discord.js v12 - Cannot read property 'permissions' of undefined.permission.has() discord.js v12 - 无法读取未定义的属性“权限”
【发布时间】:2021-03-03 10:41:47
【问题描述】:

我无法为拥有MANAGE_MESSAGES 的人编写我的机器人以说“坏词”。这是我的代码:

const Discord = require('discord.js')
const bot = new Discord.Client()
const token = process.env.DISCORD_TOKEN

let set = new Set(['badword'])
bot.on('message', msg => {
  if (msg.author.bot) {
    return
  }
  let wordArray = msg.content.split(' ')
  if (!msg.member.hasPermission('MANAGE_MESSAGES')) {
  for(var i = 0; i < wordArray.length; i++) {
    if(set.has(wordArray[i].toLowerCase())) {
      msg.delete()
      msg.channel.send(`${msg.author.username}, you said a bad word.`)
      break
    }
    console.log('message filtered')
  }   
}

})
bot.login(token)

.permissions.has() 没有按照本网站https://discordjs.guide/additional-info/changes-in-v12.html#permissions-haspermission-s 工作,它表示.hasPermission() / .hasPermissions() 现在已从 v11 中完全删除并添加了permissions.has()。是的,我的机器人已升级到 v12,所以请帮忙。

【问题讨论】:

    标签: node.js permissions discord discord.js


    【解决方案1】:

    正确的使用方式是.hasPermission('MANAGE_MESSAGES')

    if (!msg.member.hasPermission('MANAGE_MESSAGES'))
    

    您正在使用使用 hasPermission() 方法的 GuildMember 类。您正在查看权限类。

    https://discord.js.org/#/docs/main/stable/class/GuildMember

    【讨论】:

    • 我试过了,但它说“无法读取未定义的属性 'hasPermission'”
    • @LinkPigThrower 我不确定这是否会解决它,但您确实在 bot.on 的括号中添加了“msg”,并且您并不真正需要它们。我会把它们拿出来再试一次。
    • 抱歉,它没有工作,因为它仍然显示“无法读取属性 'hasPermission' of null”。
    • 您能否使用当前代码编辑您的答案,以便我更好地查看?
    • 据我了解,msg.member 返回为空。我检查了一下,这似乎是一个可以通过更新 npm 包来解决的问题
    猜你喜欢
    • 2021-04-01
    • 2020-12-29
    • 2021-04-12
    • 2021-06-27
    • 2021-04-17
    • 2022-06-10
    • 2021-06-27
    • 2020-07-20
    • 1970-01-01
    相关资源
    最近更新 更多