Estoy usando VSC y el último discord.js
El código que usé en mi carpeta commands.js separada fue:
module.exports = { name: 'clear', description: "clear.message", execute(message, args) { if(!args[0]) return message.channel.send("Enter a number"); if(isNaN(args[0])) return message.channel.send("Enter a Real number"); if(args[0] > 15) return message.channel.send("That number is too high! Try again!"); if(args[0] < 1) return message.channel.sned("Enter a number larger than 1"); } }En mi archivo index.js mi código era:
client.on('message', message => { const args = message.content.substring(PREFIX.length).split(" "); switch (args[0]) { case 'clear': client.commands.get('clear').execute(message, args); break; } }); Sin embargo, cuando probé el comando con mi bot en lugar de devolver los mensajes correctos, simplemente enviaba el mensaje "Ingrese un número real", ¡incluso si lo hice !clear 4 . No estoy muy seguro de lo que está mal, la ayuda sería muy apreciada.
Está utilizando args[0] cuando busca un comando en index.js y también cuando busca un argumento en commands.js . Entonces, en lugar de 4 , su código está tratando de analizar clear como un número.
Puede cambiar el índice de los args a 1 en commands.js .
module.exports = { name: 'clear', description: "clear.message", execute(message, args) { if(!args[1]) return message.channel.send("Enter a number"); if(isNaN(args[1])) return message.channel.send("Enter a Real number"); if(args[1] > 15) return message.channel.send("That number is too high! Try again!"); if(args[1] < 1) return message.channel.sned("Enter a number larger than 1"); } }Las matrices están indexadas en 0. Su matriz de args se ve así si ingresa el comando !clear 4 :
["clear", "4"] Para acceder a "4" necesita usar el índice correcto ( 1 ).
if(!args[1]) return message.channel.send("Enter a number"); if(isNaN(args[1])) return message.channel.send("Enter a Real number"); if(parseInt(args[1] > 15)) return message.channel.send("That number is too high! Try again!"); if(parseInt(args[1] < 1)) return message.channel.send("Enter a number larger than 1"); //there was a typo here!