discord.js 无法读取 null 的属性“角色”
Posted
技术标签:
【中文标题】discord.js 无法读取 null 的属性“角色”【英文标题】:discord.js cannot read property 'roles' of null 【发布时间】:2022-01-14 15:00:57 【问题描述】:我的 discord 机器人遇到了一些问题,我真的需要一些帮助
目前我的机器人正在执行这段代码,并且大部分时间都能完美运行:
if (message.member.roles.cache.has('917521104908742736')) //muted role
return message.delete();
但是,机器人有时会随机崩溃,并出现以下错误:
TypeError: Cannot read property 'roles' of null
我不知道该怎么办了,更糟糕的是程序随机崩溃,所以我不知道究竟是什么导致了错误。你能帮帮我吗?
【问题讨论】:
如果机器人收到 DM,可能会发生这种情况 是的,非常感谢,确实是这个问题! 【参考方案1】:消息对象似乎没有member属性(可能是因为消息已经在DM中发送了),尝试为Optional chaining添加询问标记:
if(message.member?.roles.cache.has('917521104908742736'))
return message.delete();
【讨论】:
问号后的点上出现 Unexpected Token 错误 您使用的是 Node.js 14 吗?尝试检查node -v
【参考方案2】:
机器人只是接收 DM。检查是否是DM,如果是则尽早返回:
if (!message.guild) return;
【讨论】:
【参考方案3】:也许你应该试试这个
if (message.member.roles.cache.some(role => role.id === 'RoleId'))
return message.delete();
【讨论】:
以上是关于discord.js 无法读取 null 的属性“角色”的主要内容,如果未能解决你的问题,请参考以下文章
node.js/discord.js:TypeError:无法读取 null 的属性“setPresence”
Discord.js TypeError:无法读取 null 的属性“角色”
node.js / discord.js:TypeError:无法读取null的属性'setPresence'