首页 > 解决方案 > 在 Discord.js 中查看用户的权限值

问题描述

我对 Discord.js 还很陌生,我想知道如何获取用户的值权限。我想这样做是因为我想确保低级别的人不会踢高级别的人。我试图在网上搜索它,但我链接到这个帖子,这对我不起作用。

标签: javascriptnode.jsdiscord.js

解决方案


那么你可以通过<GuildMember>.permissions.

如果你想检查他们是否有一定的权限,你会做

<GuildMember>.permissions.has(Permission_Resolvable)

例子:

const member = msg.mentions.members.first();
const permissions = member.permissions;
const isMod = permissions.has("KICK_MEMBERS");
if(!isMod) return msg.channel.send("You are not a mod");

Permission.has 在这里:

https://discord.js.org/#/docs/main/stable/class/Permissions?scrollTo=has

完整的标志在这里:

https://discord.js.org/#/docs/main/stable/class/Permissions?scrollTo=s-FLAGS

您链接的帖子在 v12 中已过时,但这是新代码:

// I'll assume you already have the data for both members (memberA and memberB)
const rankingA = memberA.roles.highest.position;
const rankingB = memberB.roles.highest.position;

if(rankingA > rankingB) {

} else if (rankingA < rankingB) {

} else {

}

或者

// I'll assume you already have the data for both members (memberA and memberB)
const highestA = memberA.roles.highest;
const highestB = memberB.roles.highest;

//check if memberA is higher
const isHigher = highestA.comparePositionTo(highestB);

if(isHigher > 0) {
  //memberA is higher
} else if(isHigher < 0) {
  //memberB is higher
} else {
  //same
}

推荐阅读