@skybloxsystems/ticket-bot
Version:
41 lines (30 loc) • 1.6 kB
JavaScript
const BaseCommand = require('../../utils/structures/BaseCommand');
const Discord = require('discord.js');
module.exports = class KickCommand extends BaseCommand {
constructor() {
super('kick', 'Moderator', []);
}
async run(client, message, args) {
if (!message.member.hasPermission("KICK_MEMBERS")) return message.channel.send('You can\'t use that!')
if (!message.guild.me.hasPermission("KICK_MEMBERS")) return message.channel.send('I don\'t have the right permissions.')
const member = message.mentions.members.first() || message.guild.members.cache.get(args[0]);
if (!args[0]) return message.channel.send('Please specify a user');
if (!member) return message.channel.send('Can\'t seem to find this user. Sorry \'bout that :/');
if (!member.kickable) return message.channel.send('This user can\'t be kicked. It is either because they are a mod/admin, or their highest role is higher than mine');
if (member.id === message.author.id) return message.channel.send('Bruh, you can\'t kick yourself!');
let reason = args.slice(1).join(" ");
if (!reason) reason = 'Unspecified';
member.kick(reason)
.catch(err => {
if (err) return message.channel.send('Something went wrong')
})
const kickembed = new Discord.MessageEmbed()
.setTitle('Member Kicked')
.setThumbnail(member.user.displayAvatarURL())
.addField('User Kicked', `${member}`)
.addField('Kicked by', `${message.author}`)
.addField('Reason', `${reason}`)
.setTimestamp()
message.channel.send({ embeds: [kickembed]});
}
}