[英]Discord.js: How can you check if a specific user has a role?
我想看看您是否可以检查是否可以测试具有角色的特定用户。 唯一的问题是我对 Discord.js 还很陌生,我搜索的所有内容要么已经过时,要么是我无法完全理解的内容,要么仅展示了如何测试消息作者是否具有该角色,这不是什么我试图找出答案。 我应该在当前的编码中改变什么?
if (message.member.permissions.has("MANAGE_ROLES")) {
const member = message.mentions.users.first();
const memberTarget = message.guild.members.cache.get(member.id);
const role = message.guild.roles.cache.find(role => role.name === "Awesome Role Name");
if (memberTarget.roles.cache.has(role)) {
message.channel.send(`${memberTarget} has the role!`);
} else {
message.channel.send(`${memberTarget} does not have the role!`);
}
}
}
};
您所要做的就是检查GuildMember.roles.cache
是否具有该角色。 此外,您的代码无法正常工作的原因是您正在使用角色对象。 您需要使用角色 ID。
if (memberTarget.roles.cache.has(role.id))
更多相关内容:
通过任何属性获取角色
if (memberTarget.roles.cache.some(r => r.name === 'role-name'))
//does not need to be the name
获取消息作者的角色
if (message.member.roles.cache.has(role.id))
要检查角色,您可以执行以下代码:
if (member.roles.cache.has("ROLE_ID"))
如果您想检查发件人是否具有您可以执行的角色:
if (message.member.roles.cache.has("ROLE_ID")) {
console.log(true);
} else {
console.log(false);
}
如果您想检查其他人是否有角色,您可以执行以下操作:
if (memberTarget.roles.cache.has("ROLE_ID")) {
console.log(true);
} else {
console.log(false);
}
要获得会员,您可以通过多种不同的方式获得,一种方法是通过提及来获得:
// This will get the first mention who is a member in the server
const memberTarget = message.mentions.members.first()
在此处阅读公会成员角色
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.