Команды удаления / запрета Discord.js v12 С указанием причины

#discord.js

#discord.js

Вопрос:

Доброе утро, я хотел бы знать, как я мог бы выполнить команду удаления и запрета, но при этом я могу добавить причину и что только определенные участники могут ее использовать. В настоящее время у меня есть этот код, но я не знаю, как это сделать, чтобы установить разрешения, и что я могу указать причину.

 client.on('message', message => {



  if (!message.guild) return;


  if (message.content.startsWith('kick')) {
    
            


    const user = message.mentions.users.first();
    // If we have a user mentioned
    if (user) {

      const member = message.guild.member(user);

      if (member) {

        member
          .kick('Optional reason that will display in the audit logs')
          .then(() => {

            message.reply(`Has kickeado a: ${user.tag}`);
          })
          .catch(err => {

            message.reply('No he podido kickear a el miembro.');

            console.error(err);
          });
      } else {

        message.reply("El jugador no está en el Guild!");
      }

    } else {
      message.reply("Pero hombre, mencioname al pobrecito que vas a kickear...");
    }
  }
   
});

client.on('message', message => {
  if (!message.guild) return;

            

  if (message.content.startsWith('ban')) {

    const user = message.mentions.users.first();
    
    if (user) {

      const member = message.guild.member(user);

      if (member) {
        

        member
          .ban('Optional reason that will display in the audit logs')
          .then(() => {

            message.reply(`Has baneado a: ${user.tag}`);
             message.author.send('Has sido baneado por mal comportamiento!')
          })

          .catch(err => {

            message.reply('No he podido banear al usuario.');

            console.error(err);
          });
      } else {

        message.reply("El jugador no está en el Guild!");
      }

    } else {
      message.reply("Pero hombre, mencioname al pobrecito que vas a banear");
    }
  
}
})
});
  

Как вы можете видеть, это команда, к которой может получить доступ каждый, и которую, наряду с причиной запрета, я хотел бы изменить

Ответ №1:

Вы можете проверить разрешение участника с помощью GuildMember#hasPermission

Например:

  if (!message.member.hasPermission("BAN_MEMBERS") return;
  

Вот список разрешений: Разрешения#ФЛАГИ

Комментарии:

1. И как я могу указать причину?

2. Вы можете добавить причину, выполнив это: .kick(«причина здесь»)