Recientemente terminé de actualizar mi bot Discord.js a v13 y ahora la función client.on (messageCreate) no se activa. Ninguno de mis códigos se ejecuta nunca y estoy realmente confundido en cuanto a por qué.
Antes de que alguien pregunte, ya he establecido mis intenciones.
const client = new Discord.Client({ intents: [ Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES, Intents.FLAGS.DIRECT_MESSAGES ], partials: ['MESSAGE', 'CHANNEL', 'REACTION'], });Tengo dos funciones, el cliente se dispara pero el mensaje no.
client.on('ready', () => { console.log(`Logged in as ${client.user.tag}!`); }); client.on('messageCreate', msg => { console.log(anything) }Asegúrate de incluir GUILDS en tu lista de intenciones. De lo contrario, el bot solo puede ver los mensajes que se enviaron después de que el propio bot envió un mensaje.
En mi caso, necesitaba configurar estos:
partials: ['MESSAGE', 'CHANNEL', 'REACTION'] intents: ['DIRECT_MESSAGES', 'DIRECT_MESSAGE_REACTIONS', 'GUILD_MESSAGES', 'GUILD_MESSAGE_REACTIONS', 'GUILDS']pero los detalles variarán según su caso de uso.
Puede intentar reemplazar su messageCreate con una opción asíncrona, los problemas no solucionan su problema, pero siempre puede intentarlo
client.on('messageCreate', async (message) => { console.log("DEBUG"); }Vea si hay algún error en su consola o si envía un mensaje de "DEPURACIÓN" cuando envió un mensaje al canal que el bot puede ver .
En mi propio bot, no tengo parciales configurados, por lo que probablemente tampoco los necesite.
Asegúrese de haber incluido también su discord.js correctamente, aquí hay un ejemplo:
const { Client, Intents } = require("discord.js");