不和谐JS message.member.roles.cache.some

时间:2020-05-26 18:23:11

标签: discord discord.js

我尝试执行具有角色限制的命令,但角色限制本身存在问题。 if(!message.member.roles.cache.some(role => role.name === 'Role1')) return message.reply("You can't use the command!")

因此,如果我仅使用1个角色作为限制,则可以正常工作,但是只要我添加第二个角色

if(!message.member.roles.cache.some(role => role.name === 'Role1'||'Role2')) return message.reply("You can't use the command!")

情况变得一团糟,任何人,甚至没有任何角色的人都可以使用该命令!我尝试了多种方法使其工作,尝试使用角色ID代替了这样的名称

message.member.roles.cache.has('role-id-here'||'role2id-here'); 仍然没有用!

我将为此提供任何帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

您的条件不正确。它的设置不正确,我认为您可能不完全了解OR运算符||

// your original 
 role.name === 'Role1' || 'Role2'`

此语句中误用了or运算符||。如果||的值为true,则返回左侧;如果左侧值为false,则返回右侧。您原始条件的左侧是role.name === 'Role1,因此如果是false,请返回'Role2'

您想做的是 role => (role.name === 'Role1' || role.name === 'Role2')