Javascript 如何创建只有具有其中一个角色的用户才能使用的命令?
您如何制定一个命令,只有担任其中一个角色的人才能使用它?Javascript 如何创建只有具有其中一个角色的用户才能使用的命令?,javascript,node.js,discord.js,Javascript,Node.js,Discord.js,您如何制定一个命令,只有担任其中一个角色的人才能使用它? 谢谢大家! 开始看这个。。。我不太了解discord空间,但有一个示例bot,有一个helloworld ping,也发现这个非常好的例子,它很好地展示了如何构建一个command switch语句。在这里做很多猜测——作为对未来问题的提示,添加一些关于您尝试执行的操作的代码将非常有帮助——数组中的单个变量集并没有太大的作用 在读了张雷蒙的话之后,因为,是的,我就是这么做的 这是直接从我链接的Github主题中导出的-> let staf
谢谢大家! 开始看这个。。。我不太了解discord空间,但有一个示例bot,有一个helloworld ping,也发现这个非常好的例子,它很好地展示了如何构建一个command switch语句。在这里做很多猜测——作为对未来问题的提示,添加一些关于您尝试执行的操作的代码将非常有帮助——数组中的单个变量集并没有太大的作用 在读了张雷蒙的话之后,因为,是的,我就是这么做的 这是直接从我链接的Github主题中导出的->
let staffrole = ['383874699941117952', '149622819158884353', '149622998180036608'];
我已经对此进行了测试,效果非常好,尽管它检查的是角色名称而不是数字。如果您更新您的答案以解释您的流程,这将有所帮助。更多信息=更好的答案。:) 开始看这个。。。我不太了解discord空间,但有一个示例bot,有一个helloworld ping,也发现这个非常好的例子,它很好地展示了如何构建一个command switch语句。在这里做很多猜测——作为对未来问题的提示,添加一些关于您尝试执行的操作的代码将非常有帮助——数组中的单个变量集并没有太大的作用 在读了张雷蒙的话之后,因为,是的,我就是这么做的 这是直接从我链接的Github主题中导出的->
let staffrole = ['383874699941117952', '149622819158884353', '149622998180036608'];
我已经对此进行了测试,效果非常好,尽管它检查的是角色名称而不是数字。如果您更新您的答案以解释您的流程,这将有所帮助。更多信息=更好的答案。:) 您可以做的是,在消息事件上,运行命令,然后可以检查成员的角色,以查找数组中的一个角色 下面是它的样子:
client.on(“message”,msg=>{
如果(命令==“whateverItIs”){
让staffrole=['38387469941117952','149622219158884353','14962998180036608'];
对于(i=0;i role.id==staffrole[i])。大小>0){
//运行代码
返回;
}
}
}
})
在消息事件中,通过确定的
命令
,bot将检查每个员工角色,如果消息作者
的角色包括一个员工角色,则命令将运行。您可以在消息事件中运行命令,您可以在数组中检查成员角色中的一个
下面是它的样子:
client.on(“message”,msg=>{
如果(命令==“whateverItIs”){
让staffrole=['38387469941117952','149622219158884353','14962998180036608'];
对于(i=0;i role.id==staffrole[i])。大小>0){
//运行代码
返回;
}
}
}
})
在消息事件中,通过确定的
命令
,bot将检查每个员工角色,如果消息作者
的角色包括一个员工角色,则命令将运行。我建议执行以下操作:
首先,在客户端的消息侦听器中设置命令名:
...
if(command === "kick") {
if(!message.member.roles.some(r=>["Administrator","Moderator"].includes(r.name)) )
return message.reply("Sorry, you don't have permissions to use this!");
...
.member
对象的.roles
属性是一个集合
,因此必须使用.firstKey()
方法。您也可以将集合
转换为一个普通的js数组
,但我上面介绍的方法更简单。我建议您这样做:
首先,在客户端的消息侦听器中设置命令名:
...
if(command === "kick") {
if(!message.member.roles.some(r=>["Administrator","Moderator"].includes(r.name)) )
return message.reply("Sorry, you don't have permissions to use this!");
...
.member
对象的.roles
属性是一个集合
,因此必须使用.firstKey()
方法。你也可以将集合
转换成一个普通的js数组
,但我上面概述的方法更简单。你是怎么研究这个主题的文档的?是的,我试过…@Braguetta,我想Daniel是在问你到目前为止做了什么,而不仅仅是你是否研究过这个主题。我希望我下面的回答能有所帮助,但如果没有,请澄清以下问题:是什么试图研究该主题的文档?是的,我尝试过…@Braguetta,我想Daniel是在问你迄今为止尝试了什么,而不仅仅是你是否研究过该主题。我希望下面的回答能有所帮助,但如果没有,请澄清您正在对照自己的机器人ID检查的问题。我定义的ID是角色ID,而不是成员ID。您正在对照自己的机器人ID检查我定义的ID是角色ID,而不是成员ID。msg.member.roles.include不是函数msg.member.roles.include不是函数