Discord.js 检查用户是不是具有第一个角色或第二个角色不起作用

Posted

技术标签:

【中文标题】Discord.js 检查用户是不是具有第一个角色或第二个角色不起作用【英文标题】:Discord.js checking if user has the fiirst role or the second role isn't workingDiscord.js 检查用户是否具有第一个角色或第二个角色不起作用 【发布时间】:2021-07-06 02:06:10 【问题描述】:

我正在尝试使用if(command.employeeOnly) //blah blah 让我的机器人检查命令是否具有“employeeOnly”为真,但这里的问题是角色检查它应该检查他们是否具有第一个角色或第二个角色

if (command.employeeOnly && !message.member.roles.cache.find(c => c.id === '745410836901789749') || message.member.roles.cache.find(c => c.id === '812698943288246283')) 
        return message.reply("You need taco stand employee or Bot Employee role to use that command")
    

使用当前代码,只有当他们只有 ID 为第一个角色 (745410836901789749) 的角色但如果他们有 ID 为第二个角色 (812698943288246283) 的角色时,返回消息才会发送给他们,所以我尝试输入 @ 987654323@ 在两个!message.member.roles.cache.find 上,但它也不起作用,即使它们具有任何角色,它也会继续返回消息,它还会返回不是employeeOnly 的命令的消息,如果他们真的很烦人,同样会发生两个角色都有

【问题讨论】:

【参考方案1】:

你可以这样做,...cache.find(c => c.id === '745410836901789749' || c.id==='812698943288246283');。在 if 语句中,您使用两种类型的条件运算符。所以对于你的情况,它不会工作。所以在 find() 方法中使用OR 操作符。

【讨论】:

以上是关于Discord.js 检查用户是不是具有第一个角色或第二个角色不起作用的主要内容,如果未能解决你的问题,请参考以下文章

检查用户是不是在新的 discord.js 版本中具有角色

如何检查用户是不是具有特定角色 discord.js v12? [复制]

如何使用 Discord.js 检查消息作者是不是具有管理员角色?

如何检查具有特定角色的成员是不是存在于 discord.js 的特定语音通道中

如何检查用户是不是有任何角色 discord.js

Discord.js,通过数组中的 ID 查找用户是不是具有角色