【问题标题】:discord.js cannot read property 'roles' of nulldiscord.js 无法读取 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,可能会发生这种情况
  • 是的,非常感谢,确实是这个问题!

标签: javascript heroku discord discord.js


【解决方案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();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-02
      • 1970-01-01
      • 2022-07-24
      • 2020-05-27
      • 2021-02-26
      • 2019-01-25
      • 2021-11-01
      • 1970-01-01
      相关资源
      最近更新 更多