获得提及的成员的最高角色

时间:2021-01-21 17:57:29

标签: node.js discord.js

如何获得提及成员的最高角色名称?我试过这样的事情,但它不起作用。谢谢! :) 顺便说一句,这是一个禁止命令,我需要这个,因为当有人试图禁止比 bot 级别更高的用户时,我的 bot 崩溃了。

if(message.member.hasPermission('BAN_MEMBERS')){
    const user = message.mentions.users.first()
    console.log(user.roles.highest.name)
    if(!user) return console.log("test1")
    if(!args[2]) return console.log("test2")
    const ddays = args[1]

1 个答案:

答案 0 :(得分:0)

你可以做的是:

获得用户的最高角色:

  1. UserId 内部的 Mention 获取 Message
  2. 从发送消息的 CacheRoleManager 中获取 Guild
  3. (不知道RoleCache中的角色是不是按位置排序的,有需要的可以排序)
  4. 遍历 RoleCache 中的角色并check if the UserId is contained inside 特定角色
  5. 获取position of the role

获得机器人的最高角色:

  1. 为您的机器人重复步骤 2-5(或将它们集成到 RoleCache 的先前迭代中)

然后比较两个数字,看看机器人的“角色编号”是否高于用户的“角色编号”。