【问题标题】:Discord.js bot for one role only?Discord.js 机器人仅用于一个角色?
【发布时间】:2020-10-13 11:56:29
【问题描述】:

我在服务器上运行了一个小的 discord.js 机器人,它将处理一些自定义命令。我只想为某个角色运行的命令之一......我收到一个错误

无法读取 null 的属性 'first'

当然我在这里遗漏了一些明显的东西,但是在网上看我和其他人使用的一样,所以我有点困惑。

    else if (message.content.toLowerCase() === `${prefix}approve` )
    {
        message.delete();
        const member = message.mentions.roles.first();

        if (member.roles.cache.some(role => role.name === 'DiscordAdmin')) {

        }
    }

提前感谢您的宝贵时间。

【问题讨论】:

  • 在您的代码中,您将块设置为仅在 message.contentapprove 时才执行,仅此而已。角色提及返回 null,因为不可能提及角色并且该块执行

标签: javascript node.js discord discord.js


【解决方案1】:

根据 Elitezen 的积分,您无法从 Role 提及中获得会员。相反,请使用常见的message.mention.members.first 函数。此外,您使用的是.content 而不是.startsWith。问题在于代码只有在内容“批准”时才会运行。下面的代码修复了这些

// Switch to .startsWith
    else if (message.content.startsWith.toLowerCase() === `${prefix}approve` ) {
        message.delete();
        const member = message.mentions.members.first(); // Member instead of role

        if (member.roles.cache.some(role => role.name === 'DiscordAdmin')) {
          // Run some code
        }
    }

【讨论】:

    猜你喜欢
    • 2021-07-25
    • 1970-01-01
    • 2021-11-07
    • 2021-11-07
    • 2021-05-12
    • 2021-10-07
    • 2021-05-29
    • 2020-12-21
    • 2021-04-01
    相关资源
    最近更新 更多