首页 > 解决方案 > 我的 kick 命令让服务器中的任何人都可以踢某人

问题描述

我的不和谐机器人需要我的 kick 命令才能为版主和管理员工作。有没有人有更多的编码可以让它只有模组或管理员可以踢?

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

标签: javascriptnode.jsdiscorddiscord.js

解决方案


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

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

您还可以通过某人拥有的角色限制访问,为此我敦促您阅读此现有答案


推荐阅读