我正在尝试为Disc bot创建一个命令,并使其与角色相关。

我浏览了本网站上的其他问题,但它们全都在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不会是一个单独的项目,它将是用户所拥有的角色的集合,因此您需要搜索角色以检查用户是否具有角色。

您可以使用.find()函数查看用户是否具有角色。它需要一个传递r(作为角色)的函数(在这种情况下为lambda函数),并检查r.name是否等于您的角色(在这种情况下为Owner)

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.")
}

07-25 23:55
查看更多