Javascript 为什么我的角色权限代码不起作用?(discord.js)

Javascript 为什么我的角色权限代码不起作用?(discord.js),javascript,node.js,discord,discord.js,Javascript,Node.js,Discord,Discord.js,因此,我尝试编写一个代码,以便特定命令仅在用户具有特定角色时运行,但它不起作用。我不确定这是否是因为我有太多的角色,但下面是代码: case "test": if ( !message.member.roles.cache.find( (r) => r.name === "test1", "test2", "test3", "test4&qu

因此,我尝试编写一个代码,以便特定命令仅在用户具有特定角色时运行,但它不起作用。我不确定这是否是因为我有太多的角色,但下面是代码:

case "test":
  if (
    !message.member.roles.cache.find(
      (r) => r.name === "test1",
      "test2",
      "test3",
      "test4",
      "test5",
      "test6"
    )
  )
    return message.reply(
      'You don\'t have permission to execute that command! The role "test1", "test2", "test3", "test4", "test5", or "test6" is needed to execute that command.'
    );
  message.channel.send("this is a test");
r.name==“test1”、“test2”、“test3”、“test4”、“test5”、“test6”
正在使用,因此它相当于只使用
“test6”
,这可能不是您的意思

尝试类似于
[“test1”、“test2”、“test3”、“test4”、“test5”、“test6]”的内容。包括(r.name)
正如Thomas提到的:

r.name==“test1”、“test2”、“test3”、“test4”、“test5”、“test6”
正在使用,因此它相当于只使用
“test6”
,这可能不是您的意思

相反,您应该使用:

if(
!message.member.roles.cache.some((r)=>
['test1'、'test2'、'test3'、'test4'、'test5'、'test'].包括(r.name)
)
)
返回消息。回复(
'您没有执行该命令的权限!执行该命令需要角色“test1”、“test2”、“test3”、“test4”、“test5”或“test6”。'
);

下面是
.includes()
方法的代码片段示例:

const word='hello'
//返回'false',因为此数组中没有任何单词与'hello'匹配`
日志(['hellays','saltations','good morning'].includes(word));
//但是,如果我们在数组中添加“hello”。。。
log(['hellays','saltations','good morning','hello'].includes(word))
如果(!message.member.hasPermission(“管理员”))返回message.channel.send('您没有这样做的权限')

您可以使用此代码行。您还可以将“管理员”更改为其他内容,如“禁止成员”或“踢成员”等