我正在尝试为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.")
}