From 0d8565661dba90738cd49c349fd0a2dac4afa9a2 Mon Sep 17 00:00:00 2001
From: loicbersier <loic.bersier1@gmail.com>
Date: Fri, 27 Dec 2019 22:29:48 +0100
Subject: [PATCH] If one of the reaction removed is the author of the message
 add 1 to the reaction count

---
 event/listeners/messageReactionRemove.js | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/event/listeners/messageReactionRemove.js b/event/listeners/messageReactionRemove.js
index 2bb01e4d..50b73b62 100644
--- a/event/listeners/messageReactionRemove.js
+++ b/event/listeners/messageReactionRemove.js
@@ -19,6 +19,12 @@ class messageReactionRemoveListener extends Listener {
 		}
 
 		let starboardChannel, shameboardChannel;
+		let reactionCount = reaction.count;
+
+		// If one of the reaction removed is the author of the message add 1 to the reaction count
+		reaction.users.forEach(user => {
+			if (reaction.message.author == user) reactionCount++;
+		});
 
 		//	Starboard
 		if (fs.existsSync(`./board/star${reaction.message.guild.id}.json`)) {
@@ -31,12 +37,12 @@ class messageReactionRemoveListener extends Listener {
 				staremote = this.client.util.resolveEmoji(staremote, reaction.message.guild.emojis).name;
 			}
 
-			if (messageID[reaction.message.id] && reaction.emoji.name == staremote && reaction.count < starcount) {
+			if (messageID[reaction.message.id] && reaction.emoji.name == staremote && reactionCount < starcount) {
 				let channel = this.client.channels.get(starboardChannel.starboard);
 				let message = await channel.messages.get(messageID[reaction.message.id]);
 				delete messageID[reaction.message.id];
 				message.delete();
-			} else if (reaction.emoji.name == staremote && reaction.count >= starcount) {
+			} else if (reaction.emoji.name == staremote && reactionCount >= starcount) {
 				return editEmbed('starboard', staremote, messageID[reaction.message.id], this.client);
 			}
 		}
@@ -52,12 +58,12 @@ class messageReactionRemoveListener extends Listener {
 				shameemote = this.client.util.resolveEmoji(shameemote, reaction.message.guild.emojis).name;
 			}
 
-			if (messageID[reaction.message.id] && reaction.emoji.name == shameemote && reaction.count < shamecount) {
+			if (messageID[reaction.message.id] && reaction.emoji.name == shameemote && reactionCount < shamecount) {
 				let channel = this.client.channels.get(shameboardChannel.shameboard);
 				let message = await channel.messages.get(messageID[reaction.message.id]);
 				delete messageID[reaction.message.id];
 				message.delete();
-			} else if (reaction.emoji.name == shameemote && reaction.count >= shamecount) {
+			} else if (reaction.emoji.name == shameemote && reactionCount >= shamecount) {
 				return editEmbed('shameboard', shameemote, messageID[reaction.message.id], this.client);
 			}
 		}
@@ -78,11 +84,11 @@ class messageReactionRemoveListener extends Listener {
 				.addField('Jump to', `[message](https://discordapp.com/channels/${reaction.message.guild.id}/${reaction.message.channel.id}/${reaction.message.id})`, true)
 				.addField('Channel', reaction.message.channel, true)
 				.setDescription(message.embeds[0].description)
-				.setFooter(reaction.count + ' ' + emote)
+				.setFooter(reactionCount + ' ' + emote)
 				.setTimestamp();
 
 			if (reaction.message.guild.emojis.find(emoji => emoji.name === emote)) {
-				Embed.setFooter(reaction.count, reaction.message.guild.emojis.find(emoji => emoji.name === emote).url);
+				Embed.setFooter(reactionCount, reaction.message.guild.emojis.find(emoji => emoji.name === emote).url);
 			}
 
 			message.edit({ embed: Embed });