Lo siento si esto parece vago, me he esforzado tanto como puedo.
Discord.JS v13 tiene un evento llamado interacciónCrear . Estoy planeando migrar mi bot Discord.JS v12 a v13 muy pronto, pero necesito entender cómo comunicar mis eventos de botón de creación de interactionCreate
con mis archivos de comando, así como tener archivos separados para cada botón antes de crear mi bot.
No tengo ningún código para mostrar porque no he comenzado a hacer la versión v13 de mi bot, ya que necesito saber esta información antes de comenzar a crearlo.
Use los recopiladores MessageComponent para responder a las interacciones a través de un archivo de comando; no hay necesidad de usar interactionCreate
para esto.
Hay muchas maneras diferentes de lograr esto, pero aquí hay dos formas de hacerlo:
// index.js client.on('interactionCreate', (interaction) => { if (interaction.isButton()) { switch (interaction.customId) { case 'command1': require('./commands/command1').handleButton(interaction); break; case 'command2': require('./commands/command2').handleButton(interaction); break; /* etc. */ } } /* ... */ });
// commands/command1.js /* command logic */ module.exports.handleButton = (interaction) => { /* logic here */ };
Puede encontrar la documentación para recopiladores de componentes de mensajes aquí
// index.js client.on('interactionCreate', (interaction) => { if (interaction.isButton()) { return; } /* ... */ });
// commands/command1.js /* ... */ const collector = message.createMessageComponentCollector({ filter: (interaction) => { /* filter what message component you want to collect for example: */ return interaction.message.id === message.id; } }); collector.on('collect', (interaction) => { /* button logic here */ });