Entonces, la última pregunta que hice, traté de usar el código de muestra en la respuesta de MrMythical. Esta vez, me encontré con otro problema:
if (message.member.permissions.has(Permissions.FLAGS.BAN_MEMBERS)){ ^ ReferenceError: Permissions is not definedEl código:
module.exports = new Command({ name: "kick", description: "kick", async run(message, args, client) { if (message.member.permissions.has(Permissions.FLAGS.BAN_MEMBERS)) { if (message.mentions.members) { try { message.mentions.kick(); } catch { message.reply("I don't have permission to ban " + message.mentions.members.first()); } } else { message.reply("You cannot ban " + message.member.mentions.first()); } } } }); Digamos que eliminé if (message.member.permissions.has(Permissions.FLAGS.BAN_MEMBERS)) , el mensaje que devolvió al ejecutar el comando fue I don't have permission to ban <insert_user_id> .
Estoy un poco atascado aquí por un tiempo, si me pueden ayudar, muchas gracias.
Editar: olvidé importar los permisos, por lo que ahora solo aparece "No tengo permisos para patear"
Deberá importar Permissions de discord.js . Puede importarlo en la parte superior de la página, así:
const { Permissions } = require('discord.js'); Además, message.mentions devuelve un objeto e incluye los miembros, canales y roles mencionados. No tendrá un método kick() y si intenta llamarlo, arrojará un error. Como no registra el error en su bloque catch , no tendrá idea de cuál es el error; simplemente enviará una respuesta diciendo "No puedes prohibir indefinido".
Deberá comprobar si hay miembros mencionados consultando message.mentions.members . Devuelve una colección; puede tomar el primer miembro usando first() .
Puedes patear al primer miembro mencionado así:
const { Permissions } = require('discord.js'); module.exports = new Command({ name: 'kick', description: 'kick', async run(message, args, client) { if (!message.member.permissions.has(Permissions.FLAGS.BAN_MEMBERS)) return message.reply('You have no permission to ban members'); if (!message.mentions.members) return message.reply('You need to mention a member to ban'); let mentionedMember = message.mentions.members.first(); try { mentionedMember.kick(); } catch (err) { console.log(err); message.reply(`Oops, there was an error banning ${mentionedMember}`); } }, });