【问题标题】:Kick command discord.js踢命令 discord.js
【发布时间】:2021-06-01 09:15:01
【问题描述】:

我很难让我的 kick 命令只允许具有权限节点 KICK_MEMBERS 的人踢人。目前我的机器人处于允许任何人和每个人都可以踢以下是我的代码的状态。

const Discord = require('discord.js')


module.exports.run = async (bot, message, args) => {

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

  module.exports.help = {
    name: "kick"
  }

【问题讨论】:

    标签: node.js discord discord.js


    【解决方案1】:

    GuildMember#hasPermission 返回用户是否具有指定权限的布尔值。我们可以用它来声明用户是否拥有KICK_MEMBERS权限。

    最终代码

    const Discord = require('discord.js')
    
    
    module.exports.run = async (bot, message, args) => {
    
      if (!message.member.hasPermission('KICK_MEMBERS', { checkAdmin: true, checkOwner: true })) return message.reply('You cannot use this command!') 
      // I like to have it so people with the administrator permission can use it regardless.
      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!");
        }
    };
    
    module.exports.help = {
      name: "kick"
    }
    

    【讨论】:

    • 谢谢!这很有帮助!
    猜你喜欢
    • 2021-11-13
    • 2020-11-18
    • 2020-10-20
    • 1970-01-01
    • 2021-08-04
    • 1970-01-01
    • 2021-06-03
    • 2021-10-06
    • 2020-10-15
    相关资源
    最近更新 更多