Discord.js机器人仅适用于一种角色?

时间:2020-10-09 23:10:15

标签: javascript node.js discord discord.js

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

无法读取null的属性“第一个”

我在这里肯定会漏掉一些明显的东西,但是在网上看时,我和其他人使用的是同一个人,所以我有些困惑。

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

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

        }
    }

提前感谢您的时间。

1 个答案:

答案 0 :(得分:0)

按照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
        }
    }