当前位置: 首页 > 知识库问答 >
问题:

我如何将角色与用户进行比较,或者查看给定的想要的角色是否是他们的最高角色?

莫选
2023-03-14

如果消息作者尝试了,我如何使我的bot不接受消息作者的最高角色?

我尝试使用if(message.member.roles.highest.position=gRole.position),但没有成功。

我的代码:

  
   if (!message.member.hasPermission("MANAGE_ROLES")) return message.channel.send("You don't have permissions to use this!");
  
  let member = message.mentions.members.first()
    if(!member) return message.channel.send("You must mention a user to assign/remove roles to/from")
  
      if(message.member.roles.highest.position < member.roles.highest.position) return message.channel.send("You cannot assign/remove roles of someone with a role higher than you")  
  
  let role = args[2]
  if(!role) return message.channel.send("Provide a role name to assign/remove")
  
  let gRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === role.toLowerCase())
  
      if(message.member.roles.highest.position < gRole.position) {
message.channel.send("That role is above your highest role, it can't be managed")
  } else {

}
  
    if(!gRole) return message.channel.send(`The role \`${role}\` could not be found`)
  
        if(message.member.roles.highest.position > gRole.position) {
  if(!member.roles.cache.has(gRole.id)) {
await member.roles.add(gRole.id)
    message.channel.send(`The role \`${role}\` has been added to **${member.user.username}**`)
} else {
await member.roles.remove(gRole.id)
    message.channel.send(`The role \`${role}\` has been removed from **${member.user.username}**`)
}
    } 
}

module.exports.help = {
  name: "role"
}

共有1个答案

漆雕欣德
2023-03-14

如果(message.member.roles.highest.position===gRole.position)尝试一下。

单个=用于定义变量。为了比较值,您应该使用===

 类似资料:
  • 我正在做一个giverole命令,就像!giverole{member}{role},但是我怎么知道bot最高角色是否高于提到的角色。我还没试过什么,因为我卡住了,请帮帮我。 我正在使用discord.js v12

  • 我试图使用HTTP配置中的角色向spring actuator服务添加授权,但它不起作用,响应为“禁止403”,这意味着用户未经授权<因此,我的问题是,具体在哪里。hasRole()在使用JWT令牌时查找已登录的用户角色 这是类中扩展WebSecurityConfigrerAdapter类的config方法 这里我把JWT令牌中的角色 那么什么是错的或缺失的呢?提前感谢 以下是JWT自定义筛选器的

  • 在roles/ansible-role-deploy-other-thing/tasks/main.yml中,以下内容被称为: 运行时,此会导致以下错误: 错误!在/users/myuser/playbooks/deploy-thing/roles:/users/myuser/.ansible/roles:/usr/share/ansible/roles:/etc/ansible/roles:/u

  • 我正在使用v12在我的不和谐机器人discord.js用户信息命令。我唯一的问题是,如果一个用户没有任何角色,最高的角色显示为@@所有人,而不是@所有人。所以我想避免它,如果用户没有任何角色,它会说“这个用户在这个服务器上没有角色”。我的代码在这里(只有与角色相关的部分): 如你所见,我试着做了,但在记录时,它会显示有关用户的所有信息,而不仅仅是角色。如何检测用户是否具有任何角色?提前感谢:)

  • 我跟随文章,https://docs.microsoft.com/en-us/azure/developer/java/spring-framework/configure-spring-boot-starter-java-app-with-azure-active-directory并创建了一个应用程序角色 使用hasAuthority,我可以验证单个角色。但是,我想允许管理员或具有参与者权限的

  • 角色决定了员工的管理范围、功能权限,一个员工可以有多个角色。当员工拥有多个角色时,其管理范围、功能权限为多个角色相加。 管理范围 您可设置角色的管理范围,若设置该角色管理范围为部门,则可管理员工与单据;和设置该员工管理范围为项目,则可管理单据。部门支持选择所有部门、所在的部门及所有子部门、指定部门 项目支持选择所有项目、所在的项目及所有子项目、指定项目 功能权限 您可设置角色的功能权限,其中单据、