From 09315ae9dbcef978721a10dde4d00971fba0561c Mon Sep 17 00:00:00 2001 From: Will Nelson Date: Thu, 16 Nov 2017 06:24:53 -0800 Subject: [PATCH] emit ReactionCollector#remove on all unreactions (#2096) * emit ReactionCollector#remove on all unreactions this will emit an event when a user removes a collected reaction. this is in addition to Collector#dispose, which will only fire when all users have unreacted to the same emoji. * emit only collected removals --- src/structures/ReactionCollector.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/structures/ReactionCollector.js b/src/structures/ReactionCollector.js index 1ebab746c..60bdabc48 100644 --- a/src/structures/ReactionCollector.js +++ b/src/structures/ReactionCollector.js @@ -83,7 +83,17 @@ class ReactionCollector extends Collector { * @returns {?Snowflake|string} */ dispose(reaction) { - return reaction.message.id === this.message.id && !reaction.count ? ReactionCollector.key(reaction) : null; + if (reaction.message.id !== this.message.id) return null; + + /** + * Emitted whenever a reaction is removed from a message. Will emit on all reaction removals, + * as opposed to {@link Collector#dispose} which will only be emitted when the entire reaction + * is removed. + * @event ReactionCollector#remove + * @param {MessageReaction} reaction The reaction that was removed + */ + if (this.collected.has(reaction)) this.emit('remove', reaction); + return reaction.count ? null : ReactionCollector.key(reaction); } /**