¿Cuál es mi problema? A veces no obtengo los eventos guildCreate y guildDelete .
¿El problema ocurre siempre? No. Alrededor del 40% de las veces funciona sin problemas.
¿Recibo un mensaje de error? No. No se dispara ningún mensaje de error.
Mi código:
const DiscordServer = require('./backend-lib/models/DiscordServer'); const { Client, Intents } = require('discord.js'); const client = new Client({ intents: [ Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES, Intents.FLAGS.GUILD ] }); client.once('ready', () => { console.log('ready'); }); /* It's listening to the event `guildCreate` and then it's creating a new document in the database. */ client.once('guildCreate', async (guild) => { console.log('create'); }); /* It's listening to the event `guildDelete` and then it's deleting the document in the database. */ client.once('guildDelete', async (guild) => { console.log('delete', guild.id); }); /* It's connecting to SQS and listening to it. */ client.once('ready', async () => { require('./services/helper'); }); client.login(conf.discord.token)Parece que estás usando las intenciones correctas. Sin embargo, está utilizando client.once , que agrega un oyente único para sus eventos guildCreate y guildDelete . La primera vez que se activa el evento, se elimina el oyente y se activa la función de devolución de llamada. A medida que se elimina el oyente, la devolución de llamada no se ejecutará nuevamente a menos que reinicie su bot.
Si desea desencadenar estos eventos más de una vez, puede usar el método .on() :
client.on('guildCreate', async (guild) => { console.log('create'); }); client.on('guildDelete', async (guild) => { console.log('delete', guild.id); });