He estado siguiendo un video sobre cómo codificar comandos para principiantes. Probé este código, pero no responde al comando. Verifiqué los permisos y tampoco hubo problemas allí. Copié su código de todos modos y tampoco funcionó.
const { Client, Intents } = require('discord.js'); const client = new Client( ); client.once('ready' , () => { console.log('bot is online'); const token = ' Token '; }); const PREFIX = '!'; client.on('message ' , message=>{ let args = message.content.substring(PREFIX.length).split(" "); switch(args[0]){ case 'ping': message.reply('pong!'); break; } }) client.login ( token );
Debería ser
client.on('message', //rest of code
en vez de
client.on('message ', //rest of code
Lo primero que haría sería ajustar los permisos en la declaración de su cliente.
const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES] });
entonces intentaría cambiar el detector de eventos, la última versión dejó de usar algunos eventos antiguos
probar
client.on("messageCreate", (message) => { let args = message.content.substring(PREFIX.length).split(" "); switch(args[0]){ case 'ping': message.reply('pong!'); break; } });
Entonces, revisé su código ahora mismo y dado que solo está ejecutando algunos comandos y nada increíblemente avanzado, sugeriría usar una declaración if para verificar el contenido del mensaje y SI cumple con la condición para devolver algo, aquí está el código que probé y funciona, es mucho más simple y fácilmente modificable. También sugeriría ajustar los Intents como dijo Armandas Astrauskas, y no debería declarar cosas dentro de los métodos del cliente, como el ready
donde declaró el token, Y si está usando discord.js v13 tendría que use mensaje Crear .
const {Client,Intents } = require('discord.js'); const client = new Client(); const token = ' Token '; client.on('ready', () => { console.log('bot is online'); }); const PREFIX = '!'; client.on('message', message => { if (message.content == `${PREFIX}ping`) { message.reply("pong!") } }) client.login(token);