Kick command discord.js



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

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

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

最新更新