【发布时间】:2020-06-12 08:04:55
【问题描述】:
我对 Discord.js 还很陌生,我想知道如何获取用户的值权限。我想这样做是因为我想确保低级别的人不会踢高级别的人。我试图在网上搜索它,但我链接到 this 帖子,这对我不起作用。
【问题讨论】:
标签: javascript node.js discord.js
我对 Discord.js 还很陌生,我想知道如何获取用户的值权限。我想这样做是因为我想确保低级别的人不会踢高级别的人。我试图在网上搜索它,但我链接到 this 帖子,这对我不起作用。
【问题讨论】:
标签: javascript node.js discord.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
}
【讨论】: