Estoy usando discord.js para crear un bot y he estado siguiendo su guía hasta ahora para crear los controladores de comandos y eventos, incluido su formato de colocar cada controlador de eventos y función de comando en su propio archivo con su propio módulo exportado. Esto ha funcionado bien para los eventos 'ready' e 'interactionCreate', pero por alguna razón mis eventos 'guildCreate' y 'guildDelete' no parecen estar haciendo nada.
Así es como estoy configurando los detectores de eventos:
const eventsPath = path.join(__dirname, 'events'); const eventFiles = fs .readdirSync(eventsPath) .filter((file) => file.endsWith('.js')); eventFiles.forEach((file) => { const filePath = path.join(eventsPath, file); const event = require(filePath); if (event.once) { client.once(event.name, (...args) => event.execute(...args)); } else { client.on(event.name, (...args) => event.execute(...args)); } });Aquí está el contenido de guildCreate.js (guildDelete.js es el mismo excepto que el nombre del evento es 'guildDelete'):
module.exports = { name: 'guildCreate', execute(guild) { console.log('joined guild'); console.log(guild.name); }, };No estoy seguro de por qué esto no está imprimiendo nada, ya que no puedo ver cómo difiere de la forma en que se maneja el evento listo en la guía y eso funciona bien para mí ( https://discordjs.guide/creating-your -bot/event-handling.html#individual-event-files ).
Resulta que configurar los intentos en 8 (los permisos de administrador calculados con la calculadora matemática de bits en el Portal de desarrolladores de Discord) no incluye el acceso a los eventos del gremio y tuve que configurar específicamente Intents.Flags.GUILDS