From 1bf0024dc472ff6db35640bba05ff8456d1745ad Mon Sep 17 00:00:00 2001 From: NorbiPeti Date: Tue, 9 Jan 2018 19:40:09 +0100 Subject: [PATCH] Fixed removing `delivered` reactions --- .../listeners/MCChatListener.java | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/src/main/java/buttondevteam/discordplugin/listeners/MCChatListener.java b/src/main/java/buttondevteam/discordplugin/listeners/MCChatListener.java index cc4217f..2991517 100644 --- a/src/main/java/buttondevteam/discordplugin/listeners/MCChatListener.java +++ b/src/main/java/buttondevteam/discordplugin/listeners/MCChatListener.java @@ -249,6 +249,7 @@ public class MCChatListener implements Listener, IListener private BukkitTask rectask; private LinkedBlockingQueue recevents = new LinkedBlockingQueue<>(); + private IMessage lastmsgfromd; // Last message sent by a Discord user, used for clearing checkmarks @Override // Discord public void handle(MessageReceivedEvent ev) { @@ -377,15 +378,19 @@ public class MCChatListener implements Listener, IListener } } if (react) { - event.getMessage().getChannel().getMessageHistory(2).stream().forEach(m -> { - try { - final IReaction reaction = m.getReactionByEmoji(DiscordPlugin.DELIVERED_REACTION); - if (reaction != null) - DPUtils.perform(() -> m.removeReaction(DiscordPlugin.dc.getOurUser(), reaction)); - } catch (Exception e) { - TBMCCoreAPI.SendException("An error occured while removing reactions from chat!", e); + try { + /* + * System.out.println("Got message: " + m.getContent() + " with embeds: " + m.getEmbeds().stream().map(e -> e.getTitle() + " " + e.getDescription()) + * .collect(Collectors.joining("\n"))); + */ + if (lastmsgfromd != null) { + DPUtils.perform(() -> lastmsgfromd.removeReaction(DiscordPlugin.dc.getOurUser(), + DiscordPlugin.DELIVERED_REACTION)); // Remove it no matter what, we know it's there 99.99% of the time } - }); + } catch (Exception e) { + TBMCCoreAPI.SendException("An error occured while removing reactions from chat!", e); + } + lastmsgfromd = event.getMessage(); DPUtils.perform(() -> event.getMessage().addReaction(DiscordPlugin.DELIVERED_REACTION)); } } catch (Exception e) {