验证用户是否没有任何角色

时间:2020-06-27 04:28:26

标签: javascript node.js discord discord.js roles

我的问题是:
如何检查用户是否在行会中没有任何角色,然后继续执行代码? (仅限@所有人)

即使用户在公会中没有任何角色,代码也应运行
当用户具有角色时,效果很好...但是当用户没有角色时(@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)

有什么帮助吗?

1 个答案:

答案 0 :(得分:1)

message.member._roles == []将始终返回false,因此请尝试检查数组长度!message.member._roles.lengthmessage.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 */
}