javascript - Discord 机器人的特定角色命令

标签 javascript node.js discord discord.js

我正在尝试为我的 Disc 机器人创建一个命令,并尝试使其与 Angular 色相关。

我浏览过这个网站上的其他问题,但它们都是用Python而不是JS;在discord.js 上,他们的示例与我想要做的完全不同。到目前为止,一切都工作得很好,只是当它到达这部分时(没有任何高于或低于此的东西)

if (message.member.roles.name == "Owner") {
    return message.reply("You can use this command!")
  }
  if (message.member.roles.name != "Owner") {
    return message.reply("Sorry, an error occurred.")
  }

我希望能够看到“您可以使用此命令!

最佳答案

问题是 message.member.roles 不会是单个项目,它将是用户拥有的 Angular 色的集合,因此您需要搜索 Angular 色来检查用户是否有 Angular 色。

您可以使用.find()函数来查看用户是否具有 Angular 色。它需要一个传递 r (作为 Angular 色)的函数(在本例中为 lambda 函数),并检查 r.name 是否等于您的 Angular 色(在本例中)案例,业主)

if(message.member.roles.find(r => r.name === "Owner")){
  return message.reply("You can use this command!")
} else {
  return message.reply("Sorry, an error occurred.")
}

关于javascript - Discord 机器人的特定角色命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58385967/

相关文章:

javascript - 如何将键值对附加到 AngularJS 中已经存在的键值对的 url?

regex - 我如何使用express在Nodejs中创建像API这样的谷歌地方

node.js - Mongodb:带有搜索的数据版本控制

python - 我如何知道命令是否需要用户具有特定权限(才能运行)?

javascript - if 运行时不检查 else if

包含括号的 JavaScript 正则表达式模式

javascript - 是否可以将 npm 依赖项从另一个包合并到当前包?

jq的JavaScript实现?

node.js - 使用 Lusca 的 hackathon-starter - csrf 值在哪里计算/存储?

youtube - Discord.js-音乐机器人。它播放任何视频,但不播放受版权保护的音乐