TypeError:无法读取未定义的属性“hasPermission”
Posted
技术标签:
【中文标题】TypeError:无法读取未定义的属性“hasPermission”【英文标题】:TypeError: Cannot read property 'hasPermission' of undefined 【发布时间】:2020-10-07 17:39:03 【问题描述】:我正在制作一个 discord 机器人,我主要学习了 discord.js 的 v11,当我在 discord 中创建一个 unban 命令时,当我完成时,我运行了该命令,它给出了错误“TypeError:Cannot读取未定义的属性“hasPermission”,这是我的代码。 顺便说一句,它是一个命令处理程序
module.exports =
name : 'unban',
execute(client, message, args)
if(!message.member.hasPermission(["BAN_MEMBERS"])) return message.channel.send("You dont have permission to perform this command!")
if(isNaN(args[0])) return message.channel.send("You need to provide an ID.")
let bannedMember = client.users.fetch(args[0])
if(!bannedMember) return message.channel.send("Please provide a user id to unban someone!")
let reason = args.slice(1).join(" ")
if(!reason) reason = "No reason given!"
if(!message.guild.me.hasPermission(["BAN_MEMBERS"])) return message.channel.send("I dont have permission to perform this command!")|
message.delete()
try
message.guild.members.unban(bannedMember, reason)
message.channel.send(`**$bannedMember.tag** has been unbanned from the guild!`)
catch(e)
console.log(e.message)
No idea what the problem is.
【问题讨论】:
记录message.guild
是什么并添加显示结果的代码块
【参考方案1】:
看起来message.guild.me.hasPermission
和message.member.hasPermission
都是有效的方法。您确定已定义 message
变量吗?检查您的命令处理程序。
【讨论】:
已定义,问题是.me
未定义,而message
和message.guild
已定义
也许你可以试试var me = message.guild.members.cache.get(client.user.id);
,然后用me
替换message.guild.me
以上是关于TypeError:无法读取未定义的属性“hasPermission”的主要内容,如果未能解决你的问题,请参考以下文章