【问题标题】:Verify if a user don't have any role验证用户是否没有任何角色
【发布时间】:2020-10-17 17:05:14
【问题描述】:

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

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

有什么帮助吗?

【问题讨论】:

  • 代替message.member._roles == []试试!message.member._roles.length
  • 第一次检查的目的是什么 (if) 。您是否尝试检查typelength
  • @MenaiAlaEddine-Aladdin 我会试着把这个写在我的书上!谢谢!

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


【解决方案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 */
}

【讨论】:

  • 非常感谢!这样可行 !我会把这个写在我的书上以备不时之需!
猜你喜欢
  • 1970-01-01
  • 2021-01-02
  • 2017-03-22
  • 2018-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-03
  • 2021-02-24
相关资源
最近更新 更多