我的问题是:
如何检查用户是否在行会中没有任何角色,然后继续执行代码? (仅限@所有人)
即使用户在公会中没有任何角色,代码也应运行
当用户具有角色时,效果很好...但是当用户没有角色时(@everyone不起作用)
这是到目前为止我尝试过的代码:
if(message.member._roles == []){
//
adminpermite = false;
}else{
if(message.guild.roles.cache.get(message.member._roles[message.member._roles.length - 1]).rawPosition >= message.guild.roles.cache.get(jsonsv['staffBOT']).rawPosition) adminpermite = true
else adminpermite = false;
};
if(adminpermite){
/* execute code if true */
}else{
/* execute code if false */
}
PS:配置中的jsonsv['staffBOT']
与公会ID相同(类似于000000000000000000)
有什么帮助吗?
答案 0 :(得分:1)
message.member._roles == []
将始终返回false,因此请尝试检查数组长度!message.member._roles.length
或message.member._roles.length === 0
if (!message.member._roles.length) {
adminpermite = false;
} else {
if (
message.guild.roles.cache.get(
message.member._roles[message.member._roles.length - 1]
).rawPosition >=
message.guild.roles.cache.get(jsonsv["staffBOT"]).rawPosition
) {
adminpermite = true;
} else {
adminpermite = false;
}
}
if (adminpermite) {
/* execute code if true */
} else {
/* execute code if false */
}