我的kick命令让服务器中的任何人都可以踢人

时间:2020-10-04 06:08:24

标签: javascript node.js discord discord.js

我需要我的discord机器人的kick命令,但它只能用于主持人和管理员。有没有人有更多的编码可以使之成为mod或管理员才能使用?

我对kick命令的编码:

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

 if (message.content.startsWith('!kick')) {
  const user = message.mentions.users.first();

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

   if (member) {
    member
     .kick('Optional reason that will display in the audit logs')
     .then(() => {
      message.reply(`Successfully kicked ${user.tag}`);
     })
     .catch((err) => {
      message.reply('I was unable to kick the member');

      console.error(err);
     });
   } else {
    message.reply("That user isn't in this guild!");
   }
  } else {
   message.reply("You didn't mention the user to kick!");
  }
 }
});

1 个答案:

答案 0 :(得分:1)

您可以使用GuildMember.hasPermission来检查用户是否具有一定的权限。您可以看到有效的权限标志here,尽管我认为在这种情况下您将要使用KICK_MEMBERS

if (!message.member.hasPermission('KICK_MEMBERS'))
  return message.channel.send('Insufficient Permissions');

您还可以通过某人的角色来限制访问权限,我敦促您阅读this existing answer