He leído la documentación de discord.js y he estado probando cosas que he estado leyendo, pero ninguna de ellas parece funcionar. El principal problema que tengo es que el cobrador afirma que no ha recopilado nada.
if (message.content === 'poll') { let embedPoll = new Discord.MessageEmbed() .setTitle('😲 DaSquad 😲') .setColor('YELLOW') .addField('1:', 'name') .addField('2:', 'name2') .addField('3:', 'name3') .addField('4:', 'name4') .addField('5:', 'name5') .addField('6:', 'name6') .addField('7:', 'name7') .addField('8:', 'name8'); let msgEmbed = await message.channel.send({ embeds: [embedPoll] }); await msgEmbed.react('1️⃣'); await msgEmbed.react('2️⃣'); await msgEmbed.react('3️⃣'); await msgEmbed.react('4️⃣'); await msgEmbed.react('5️⃣'); await msgEmbed.react('6️⃣'); await msgEmbed.react('7️⃣'); await msgEmbed.react('8️⃣'); const filter = (reaction) => reaction.emoji.name === '1️⃣' || reaction.emoji.name === '2️⃣' || reaction.emoji.name === '3️⃣' || reaction.emoji.name === '4️⃣' || reaction.emoji.name === '5️⃣' || reaction.emoji.name === '6️⃣' || reaction.emoji.name === '7️⃣' || reaction.emoji.name === '8️⃣'; const collector = new Discord.ReactionCollector(msgEmbed, filter); console.log(collector.collected); }En lugar de la clase ReactionCollector , puede usar awaitReactions o createReactionCollector que está disponible en el objeto de mensaje que ha enviado ( msgEmbed ).
Si usa discord.js v13, los métodos awaitReactions y createReactionCollector aceptan un solo parámetro y el filter ahora es parte del objeto de options . (Consulte Cambios en v13 ). Por lo tanto, debe actualizar eso; pasar un solo objeto con el filter .
Otro error es que intenta leer las reacciones recopiladas ( collector.collected ) con un simple console.log justo después de crear una instancia del recopilador. En su lugar, debe configurar detectores de eventos y suscribirse a los eventos collect (y probablemente stop ).
Asegúrate de agregar las intenciones GUILD_MESSAGE_REACTIONS . Puede leer más sobre los colectores de reacción aquí .
Y una cosa más, podrías crear una matriz con todos los emojis con los que quieras reaccionar para hacerte la vida un poco más fácil.
Echa un vistazo al código a continuación:
if (message.content === 'poll') { let embedPoll = new Discord.MessageEmbed() .setTitle('😲 DaSquad 😲') .setColor('YELLOW') .addField('1:', 'name') .addField('2:', 'name2') .addField('3:', 'name3') .addField('4:', 'name4') .addField('5:', 'name5') .addField('6:', 'name6') .addField('7:', 'name7') .addField('8:', 'name8'); let reactions = ['1️⃣', '2️⃣', '3️⃣', '4️⃣', '5️⃣', '6️⃣', '7️⃣', '8️⃣']; let msgEmbed = await message.channel.send({ embeds: [embedPoll] }); reactions.forEach((reaction) => msgEmbed.react(reaction)); const filter = (reaction) => reactions.includes(reaction.emoji.name); const collector = msgEmbed.createReactionCollector({ filter }); // code inside this runs every time someone reacts with those emojis collector.on('collect', (reaction, user) => { console.log(`Just collected a ${reaction.emoji.name} reaction from ${user.username}`); }); }