Soy un codificador principiante en javascript y especialmente en discord.js Después de entender la guía de discord.js, todavía no puedo hacer que el recopilador funcione.
client.on('interactionCreate', interaction => { if (!interaction.isButton()) return; const filter = i => i.customId === '1' || i.customId === "2"; const collectchannel = interaction.channel; const collector = collectchannel.createMessageComponentCollector( filter, { time: 10000 }); collector.on('collect', i => { if (i.customId === '1') { client.commands.get('help').execute(interaction, 1, Discord); } else if (i.customId === '2') { client.commands.get('help').execute(interaction, 2, Discord); } }); collector.on('end', collected => { console.log(`Collected ${collected.size} interactions.`); }); }); Cuando presiono mi botón, la función de recolección no hace nada. Intenté colocar un console.log("test") pero no se dispara. Sin embargo, el collector.on('end', collected => { de hecho se dispara. Esto puede deberse a que no soy un buen codificador. Si puede, ¡ayúdeme!
Tiene un MessageComponentCollector dentro de un controlador de eventos para el evento interactionCreate , que, en esta circunstancia, probablemente no sea lo que desea.
Esto es lo que está pasando:
Haces clic en el botón
Su controlador eventCreate dispara, verifica si se está haciendo clic en un botón e inicia MessageComponentCollector
El MessageComponentCollector espera que se haga clic en un botón y aún no se activa porque ya sucedió uno (el que activó su controlador de interactionCreate en primer lugar)
Cada vez que vuelve a hacer clic en el botón, el recopilador se activa, pero el controlador de interactionCreate también lo hace, y vuelve al #2 , iniciando otro recopilador.
Lo que probablemente quieras es manejar los clics de tus botones sin un recopilador:
client.on('interactionCreate', interaction => { if (!interaction.isButton()) return; if (i.customId === '1') { client.commands.get('help').execute(interaction, 1, Discord); } else if (i.customId === '2') { client.commands.get('help').execute(interaction, 2, Discord); } });