Discord.js:如何检查特定用户是否具有角色?
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!`);
}
}
}
};
要检查角色,您可以执行以下代码:
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()
了解公会成员角色here
您所要做的就是检查 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))
我想看看您是否可以检查是否可以测试具有角色的特定用户。唯一的问题是我对 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!`);
}
}
}
};
要检查角色,您可以执行以下代码:
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()
了解公会成员角色here
您所要做的就是检查 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))