我需要我的漫游器忽略具有特定角色的用户的消息

时间:2020-09-06 10:53:38

标签: javascript node.js discord discord.js

我的机器人程序需要忽略具有特定角色的人的帖子。

我已经编写了这段代码,它应该可以工作,但是这段代码下的每个命令都不起作用。

我没有收到任何错误消息,并且我的机器人可以在这段代码之上运行。 我需要更改什么?

client.on('message', message => {
    if (message.guild.roles.cache.find(r => r.name === "ROLE NAME")) {return;}
})

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

您正在检查Guild是否有名为ROLE NAME的{​​{3}},而不是实际的Role

GuildMember具有一个名为GuildMember的属性,其中包含roles的所有角色。

client.on("message", message => {
    if (message.member.roles.cache.find(role => role.name == "ROLE NAME")) return false;

    // Execute your commands here.
});

答案 1 :(得分:0)

您应该检查GuildMember是否具有Role,而不是Guild

client.on("message", message => {
    if (message.member.roles.cache.some(role => role.name == "ROLE NAME")) return;

    // code...
});

您可以使用.some()方法,该方法将检查Collectionthe member's roles)中是否有任何一项通过您的测试。在这种情况下,测试是角色名称是否等于ROLE NAME