我知道如何检查消息发送者是否有 Angular 色:
if(message.member.roles.has(role.id)) {
console.log(`Yay, the author of the message has the role!`);
} else {
console.log(`Nope, noppers, nadda.`);
}
但是,如何检查特定用户(使用用户 ID)是否具有特定 Angular 色?
var authorID = "111111111111111111"
//Find role
var role = message.guild.roles.find(role => role.name === "Private Splash Ping");
//Find member
let member = message.guild.members.get(authorID);
console.log(member.roles.has(role))
if(member.roles.has(role)) {
roleadded = "User already has Private spalsh role."
} else {
message.member.addRole(role);
roleadded = "Added private splash role."
}
member.roles.has(role) 总是返回 false 并且我已经通过断点确认成员和 Angular 色变量都是正确的。
我在这里缺少什么吗?
最佳答案
message.member.roles
被视为 GuildMemberRoleManager (Documentation),要访问 Angular 色集合,您必须访问属性 .cache
这是一个集合。然后这个集合有 .has(...)
方法函数。 (Documentation)
因此,您希望访问 message.member.roles.cache.has(...)
关于javascript - 如何检查特定用户是否具有角色?不和谐的js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61088275/