Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何创建只有具有其中一个角色的用户才能使用的命令?_Javascript_Node.js_Discord.js - Fatal编程技术网

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不是函数