Как мне установить параметр «Невозможно выгнать участников с более высокой ролью» — Discord.js

#discord.js

#discord.js

Вопрос:

мне нужна помощь с этим кодом от моего друга, использующего 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)
        }

  

Ответ №1:

Discord.js у ‘s 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)
  }
}
  

Для получения дополнительной информации ознакомьтесь с этими ссылками: