我尝试执行具有角色限制的命令,但角色限制本身存在问题。
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');
仍然没有用!
我将为此提供任何帮助。谢谢!
答案 0 :(得分:0)
您的条件不正确。它的设置不正确,我认为您可能不完全了解OR
运算符||
。
// your original
role.name === 'Role1' || 'Role2'`
此语句中误用了or运算符||
。如果||
的值为true
,则返回左侧;如果左侧值为false
,则返回右侧。您原始条件的左侧是role.name === 'Role1
,因此如果是false
,请返回'Role2
'
您想做的是
role => (role.name === 'Role1' || role.name === 'Role2')