Estoy trabajando en este simple chatbot siguiendo el tutorial de Discord.
El chatbot ha iniciado sesión en mi servidor... Escribo en la sala de chat en Discord 'ping', pero el chatbot no responde "Pong" como debería.
A continuación se muestra el código main.js:
const { Client, Intents } = require('discord.js'); const client = new Client({ intents: [Intents.FLAGS.GUILDS] }); client.on('ready', () => { console.log(`Logged in as ${client.user.tag}!`); }); client.on('interactionCreate', async interaction => { if (!interaction.isCommand()) return; if (interaction.commandName === 'ping') { console.log("we got a hello!") await interaction.reply('Pong!'); } }); client.login('token');Nota: tengo un token secreto donde tiene 'token'
En mi terminal dice Logged in as Quote.it#4979! y mi bot está en línea cuando lo veo en el servidor en Discord.
Pero no pasa nada cuando en Discord escribo en 'ping'. ¿Cómo puedo diagnosticar mejor lo que está pasando?
Veo un par de problemas aquí, primero, no parece que estés registrando el comando ping, mira aquí , y segundo, no tienes las intenciones correctas, necesitas el GUILD_MESSAGES, mira aquí .
Aquí hay un simple bot de ping pong:
const { Client, Intents } = require('discord.js') const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES], partials: ['CHANNEL', 'MESSAGE'], }) client.on('ready', () => { console.log(`Logged in as ${client.user.tag}!`) }) client.on('messageCreate', (message) => { if (message.content.startsWith('ping')) { message.channel.send('pong!') } }) client.login('token')