¿Cuál sería la mejor manera de agregar argumentos a mis comandos de discordia? por ejemplo, !ban {nombre de usuario} ¡Cualquier ayuda sería muy apreciada!
const Client = new Discord.Client({ intents: ["GUILD_MESSAGES", "GUILDS"], }); const botOptions = { token: "", prefix: ['!','.'], commands: [ { name: ['joined','j'], roles: ['@everyone'], channels: [], method: (msg) => require('./userJoined')(msg), }, ], }; Client.on("messageCreate", (msg) => { const prefix = msg.content.split('')[0]; const commandName = msg.content.split(prefix)[1].toLowerCase(); const checkPrefix = botOptions.prefix.some((x) => x === prefix); const findCommand = botOptions.commands.find(command => command.name.includes(commandName)); if (typeof findCommand !== 'undefined' && checkPrefix) { const { name, roles, channels, method } = findCommand; const rolePermission = msg.member.roles.cache.some(role => roles.includes(role.name.toLowerCase())); const channelPermission = channels.includes(msg.channelId); if (channelPermission || channels.length === 0 && rolePermission) { method(msg); } } });Si está tratando de agregar argumentos (argumentos), primero debe dividir el mensaje en una matriz
let messageArray = message.content.split(" ");Ahora solo tiene una matriz llena de argumentos, el primer argumento en la variable messageArray es básicamente el comando que se está ejecutando, después de eso, el resto son solo los argumentos del mensaje.
let messageArray = message.content.split(" "); let cmd = messageArray[0]; // getting the command, this line can be removed let args = messageArray.slice(1)En el ejemplo anterior, cortamos la variable messageArray en su segundo elemento, que es el primer argumento del mensaje (sin incluir el cmd).
¡Así que aquí hay un pequeño ejemplo de cómo funciona esto !mix 3845345343 4353943
3845345343 siendo argumentos args[0]
4353943 siendo argumentos args[1]
y así sucesivamente si tienes más argumentos