Soy un desarrollador relativamente experimentado (me gradué recientemente), tratando de volver a los bots de Discord después de que hice algunos hace un par de años.
He estado siguiendo la guía en discordjs.guide , pero incluso con el programa de estilo básico "hola mundo", ya estoy atascado.
El programa no da errores cuando se ejecuta, pero no se producen interacciones en la consola.
process.env.BOT_TOKEN es el valor correcto.client.login se ejecuta correctamente.¿Hay algo súper obvio que no estoy entendiendo/viendo? De lo contrario, ¿qué más debo intentar como paso de solución de problemas?
const { Client, Intents } = require('discord.js'); const client = new Client({ intents: [Intents.FLAGS.GUILDS] }); client.once('ready', () => { console.log('Ready!'); }); client.on('interactionCreate', interaction => { console.log(interaction); }); client.login(process.env.BOT_TOKEN);paquete.json:
{ "name": "timebot", "version": "1.0.0", "description": "", "main": "start.js", "scripts": { "start": "node -r dotenv/config start.js dotenv_config_path=secrets.env", "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC", "dependencies": { "discord.js": "^13.1.0", "dotenv": "^10.0.0" } }Resulta que discord.js no clasifica los mensajes como "interacciones". Además, debe especificar la intención de escuchar los mensajes; de lo contrario, el evento no se pasará a su bot. Aquí está el código revisado con esos dos cambios críticos:
const { Client, Intents } = require('discord.js'); const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES, Intents.FLAGS.DIRECT_MESSAGES] }); client.once('ready', () => { console.log('Ready!'); }); client.on('interactionCreate', interaction => { console.log(interaction); }); client.on("messageCreate", message => { console.log(message); }); client.login(process.env.BOT_TOKEN);