Hice un método para client . Se supone que debe calcular cuántas reacciones hay para 2 emojis diferentes y devolver la diferencia.
client.calcscore = async function(m) { //m is an instance of Message if(m.partial) await m.fetch() let upvotes = m.reactions.cache.filter(r => r.emoji.name === '⬆️').size; let downvotes = m.reactions.cache.filter(r => r.emoji.name === '⬇️').size return upvotes - downvotes } La "puntuación" es algo así como la puntuación de Stack Overflow. Sin embargo upvotes siempre devuelve 1 y downvotes siempre devuelve 1. Esto significa que la función siempre devuelve 0. Esto se llama en un evento de reacción, y sé que estoy reaccionando:
¿Tiene algo que ver con el almacenamiento en caché? Espero obtener la reacción y el mensaje en el evento, y luego lo paso. Incluso intenté que mi segundo bot reaccionara, y aún así obtuvo 1.
Puede usar r.count en su filtro para obtener un int de cuántas personas han dado una reacción. Utilice ese número para medir sus puntuaciones.