Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.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
Node.js 有没有办法比较两个成员';排名?_Node.js_Discord.js - Fatal编程技术网

Node.js 有没有办法比较两个成员';排名?

Node.js 有没有办法比较两个成员';排名?,node.js,discord.js,Node.js,Discord.js,我有一个不和谐的机器人。我正在编写警告命令,但我需要一个代码来比较两个成员(角色)的排名。例:一个人比另一个人高。如果某人试图警告某人,机器人会说“你不能警告此人”。如果一个人试图警告B个人,机器人会警告B个人 如何做到这一点?因此,您最初需要设置一个计数系统来计算他们的权限,也许它可以基于角色。您可以将其存储在一个简单的SQL数据库或数组中,相对简单。假设我有x角色,我就有x分数。这可以通过if(user.role=='blah')points=x或类似的简单方法来实现 如果您不想执行计数系统

我有一个不和谐的机器人。我正在编写警告命令,但我需要一个代码来比较两个成员(角色)的排名。例:一个人比另一个人高。如果某人试图警告某人,机器人会说“你不能警告此人”。如果一个人试图警告B个人,机器人会警告B个人


如何做到这一点?

因此,您最初需要设置一个计数系统来计算他们的权限,也许它可以基于角色。您可以将其存储在一个简单的SQL数据库或数组中,相对简单。假设我有
x
角色,我就有
x
分数。这可以通过
if(user.role=='blah')points=x
或类似的简单方法来实现

如果您不想执行计数系统,请查看角色#calculatedPosition-这将返回Discord服务器上角色列表中的高度。比如,

const-roleX=message.role.calculatedPosition()

const otherRole=message.role.calculatedPosition()

您需要了解如何调用角色及其ID

一旦完成了,做一些类似的事情

if(点a>点b){
//在这里做一些事情,比如允许/拒绝它
message.channel.send('warn stuff')
}否则{
//例如,在这里拒绝它
message.channel.send('no')
返回

}
获取每个成员的最高职位,并比较他们计算的职位

通过得到a和a,我们可以使用此值与其他成员的最高角色的计算位置进行比较,以根据服务器的角色管理器确定谁的级别更高

//我假设您已经拥有两个成员(memberA和memberB)的数据
让rankingA=memberA.highestRole.calculatedPosition;
让rankingB=memberB.highestRole.calculatedPosition;
如果(排名A>排名B){
//应用警告
}否则{
//拒绝警告
}
注:

  • .highestRole
    将返回角色对象本身
  • .calculatedPosition
    将返回一个整数,值越高表示排名越高

谢谢,这对我和我的机器人都很有效。但我有一个问题。如果一个人是公会的所有者,这个代码可以工作吗?这个代码不检查它,因为它只查看角色。请查看的文档,以帮助您完成此额外任务