Edw*_*win 3 javascript bots roles discord discord.js
我知道如何检查消息发件人是否有角色:
if(message.member.roles.has(role.id)) {
console.log(`Yay, the author of the message has the role!`);
} else {
console.log(`Nope, noppers, nadda.`);
}
Run Code Online (Sandbox Code Playgroud)
但是,如何检查特定用户(使用用户 ID)是否具有特定角色?
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."
}
Run Code Online (Sandbox Code Playgroud)
member.roles.has(role) 总是返回 false,我已经通过断点确认成员和角色变量都是正确的。
有什么我在这里想念的吗?
小智 5
message.member.roles被视为 GuildMemberRoleManager ( Documentation ),要访问角色集合,您必须访问.cache作为集合的属性。这个集合然后具有.has(...)方法功能。(文档)
因此,您想要访问 message.member.roles.cache.has(...)
| 归档时间: |
|
| 查看次数: |
11864 次 |
| 最近记录: |