首页 > 解决方案 > Kick/Ban Command 的 Discord.js v12 有原因

问题描述

早上好,我想知道如何执行踢和禁止命令,但我可以添加一个原因,并且只有特定成员才能使用它。目前我有这段代码,但我不知道如何设置权限,我可以给出一个理由。

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");
    }
  
}
})
});

如您所见,这是每个人都可以访问的命令,并且连同禁止的原因一起,我想更改它

标签: discord.js

解决方案


您可以通过GuildMember#hasPermission查看会员的权限

例如:

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

以下是权限列表:Permissions#FLAGS


推荐阅读