Estoy tratando de hacer un bot en el que un usuario hace una encuesta y si un determinado emoji con el que ha reaccionado el bot alcanza un número, digamos 10, entonces realiza otras acciones. Sin embargo, ese no es mi problema. Mi problema es recopilar la cantidad de reacciones de ese emoji.
Mi código:
const embedSend = await message.channel.send({ embeds: [suggestionEmbed] }).then(async sEmbed => { await sEmbed.react('⬆️'); await sEmbed.react('⬇️'); const filter = (reaction, user) => { return ['⬆️', '⬇️'].includes(reaction.emoji.name) && user.id === message.author.id; }; sEmbed.awaitReactions({ filter, max: 20, time: 50000, errors: ['time'] }) .then(collected => { const reaction = collected.first(); if (reaction.emoji.name === '⬆️') { console.log('up'); } else if (reaction.emoji.name === '⬇️') { console.log('down'); } }) .catch(collected => { console.log("didnt reach 20 reacts"); }); }); Intenté usar el método anterior anterior. Sin embargo, no parece imprimir hacia arriba o hacia abajo para cada reacción después de llegar a 20 reacciones, sino que no imprime nada o simplemente up o down . Intenté usar la línea de código a continuación para contar los emojis, pero tampoco tuve suerte:
console.log(sEmbed.reactions.find(reaction => reaction.emoji.name === '⬆️').count) Colocó esto dentro de la declaración .then con awaitReactions justo debajo del bloque de código If-else y no obtuvo ningún resultado.
embedSend.reactions.cache.get('⬆️').count; Esto lo he colocado después de embedSend y me devuelve este error:
TypeError: Cannot read property 'reactions' of undefined y si lo coloco dentro del bloque de código tiehr, embedSend o awaitReactions y lo cambio a sEmbed , no devuelve nada.