【问题标题】:How do I set an unable to kick members with higher role - Discord.js如何设置无法踢出具有更高角色的成员 - Discord.js
【发布时间】:2020-12-28 13:19:30
【问题描述】:

我需要使用 Discord.js 的朋友对这段代码的帮助。我似乎无法编写此代码,我想要的是:

当人/成员角色高于机器人时,机器人会发送消息,机器人无法踢出角色更高的成员,但当角色低于机器人的人会被踢出时

错误是: 机器人无法踢出高于或低于机器人角色的所有成员

有什么解决办法吗?也许我错过了什么

        const rolepositionerror = new Discord.MessageEmbed()
        .setDescription('You can\'t kick members with equal or higher position!')
        .setColor("FF0000")

            const targetMember = message.mentions.members.first() || message.guild.members.cache.get(args[0])
 
            const authorHighestRole = message.member.roles.highest
            const targetHighestRole = targetMember.roles.highest
        if(targetHighestRole = authorHighestRole) return message.channel.send(rolepositionerror)

        if(targetMember) {
                targetMember.kick()
                message.channel.send(userkicked)
        }

【问题讨论】:

    标签: discord.js


    【解决方案1】:

    Discord.js 的 GuildMember 有一个名为 GuildMember#kickable 的属性,如果用户可以被踢,它将返回 true,您要做的就是将其添加到您的代码中:


    const targetMember = message.mentions.members.first()
      || message.guild.members.cache.get(args[0]);
    
    if(targetMember) {
      if (targetMember.kickable) {
        // If you can kick the member, then...
    
        targetMember.kick()
        message.channel.send(userkicked)
      } else {
        // If you can't kick the member, then...
    
        const roleError = new Discord.MessageEmbed()
          .setDescription(
            "This member can't be kicked!\n" +
            "Check if they have a higher role than the bot and if the bot has permissions!"
          )
          .setColor("FF0000");
        return message.channel.send(roleError)
      }
    }
    

    有关更多信息,请查看以下链接:

    【讨论】:

      猜你喜欢
      • 2021-07-08
      • 1970-01-01
      • 2021-08-14
      • 2018-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-15
      • 2020-10-20
      相关资源
      最近更新 更多