const { Command } = require('../../../../interfaces/'); const { Kick } = require('../../../../moderation/infractions/'); class KickCommand extends Command { constructor(client) { super(client, { name: 'kick', module: 'moderation', usage: " [reason]", clientPermissions: ['KICK_MEMBERS'], memberPermissions: ['KICK_MEMBERS'], examples: [ "@nolan#2887 @Navy.gif#1998 breaking the rules" ], keepQuotes: true, arguments: [ { name: 'points', aliases: ['point', 'modpoints', 'modpoint', 'pts', 'pt'], type: 'INTEGER', types: ['VERBAL'], usage: '', default: (guild) => { return guild._settings.moderationPoints.points.KICK; }, min: 0, max: 100, ignoreInvalid: true, required: true }, { name: 'prune', aliases: ['purge'], type: 'INTEGER', types: ['FLAG'], usage: '', default: 50, min: 2, max: 50, ignoreInvalid: true }, { name: 'force', type: 'BOOLEAN', types: ['FLAG'], default: true } ], guildOnly: true, showUsage: true }); this.client = client; } async execute(message, { params }) { const { parsed, parameters } = await this.client.resolver.infinite(params, [ this.client.resolver.resolveMember.bind(this.client.resolver) ], true, message.guild); if(parsed.length === 0) { return message.respond(message.format('C_KICK_MISSINGMEMBERS'), { emoji: 'failure' }); } return this.client.moderationManager .handleInfraction(Kick, message, { targets: parsed, reason: parameters }); } } module.exports = KickCommand;