Estaba tratando de hacer un comando simple usando el evento de mensaje clásico (ahora evento messageCreate ), así que programé un pequeño código para probar si el evento funciona correctamente:
const Discord = require('discord.js') const { Client, Intents, Message, MessageEmbed} = require('discord.js'); const { token, prefix } = require('./config.json') const client = new Client({ intents: [Intents.FLAGS.GUILDS] }); client.once('ready', () => { console.log(`${client.user.username} Se Ha Conectado Correctamente`) }) client.on('messageCreate', (message) => { console.log('Un Mensaje! :D'); console.log(message); }) client.on('interactionCreate', interaction => { console.log(interaction); }) client.login(token);Pero cuando envío los mensajes al gremio donde estoy probando el bot, no puede detectarlos por alguna razón.
como dato extra, el console.log del evento ready funciona perfectamente.
Corrige las pruebas
¿Quizás permisos? Ya tiene administrador, pero moví el rol a la parte superior para probar, no pasó nada.
¿Quizás agregar la intención GUILD_MESSAGES en el cliente? También probé este pero el bot aún no puede detectar los mensajes.
Discord.js version: v13.3.1 Node.js version: v17.0.1Como Worthly Alpaca ha mencionado en los comentarios, se requiere usar la intención GUILD_MESSAGES para poder recibir los mensajes. Su cliente ahora se verá así:
const client = new Client({intents: [Intents.FLAGS.GUILD_MESSAGES, Intents.FLAGS.GUILDS]}); Tenga en cuenta que ahora debe habilitar la intención GUILD_MESSAGES en la página de su aplicación Discord.