From 2dabfcbae9b8c2e7908bf2c8541d0ae9daf76c5e Mon Sep 17 00:00:00 2001 From: NorbiPeti Date: Sun, 18 Dec 2016 18:23:52 +0100 Subject: [PATCH] Now collecting the command responses to one msg --- .../discordplugin/DiscordSenderBase.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/main/java/buttondevteam/discordplugin/DiscordSenderBase.java b/src/main/java/buttondevteam/discordplugin/DiscordSenderBase.java index 8d13f73..140d783 100644 --- a/src/main/java/buttondevteam/discordplugin/DiscordSenderBase.java +++ b/src/main/java/buttondevteam/discordplugin/DiscordSenderBase.java @@ -6,6 +6,8 @@ import java.util.List; import java.util.stream.Collectors; import org.bukkit.Bukkit; +import org.bukkit.scheduler.BukkitTask; + import buttondevteam.lib.TBMCCoreAPI; import buttondevteam.lib.chat.IDiscordSender; import sx.blah.discord.handle.obj.IChannel; @@ -22,6 +24,9 @@ public abstract class DiscordSenderBase implements IDiscordSender { private static volatile List broadcasts = new ArrayList<>(); + private volatile String msgtosend = ""; + private volatile BukkitTask sendtask; + @Override public void sendMessage(String message) { try { @@ -34,8 +39,13 @@ public abstract class DiscordSenderBase implements IDiscordSender { broadcasts.add(message); } final String sendmsg = DiscordPlugin.sanitizeString(message); - Bukkit.getScheduler().runTaskAsynchronously(DiscordPlugin.plugin, () -> DiscordPlugin - .sendMessageToChannel(channel, (!broadcast ? user.mention() + " " : "") + sendmsg)); + msgtosend += sendmsg; + if (sendtask == null) + sendtask = Bukkit.getScheduler().runTaskLaterAsynchronously(DiscordPlugin.plugin, () -> { + DiscordPlugin.sendMessageToChannel(channel, (!broadcast ? user.mention() + "\n" : "") + msgtosend); + sendtask = null; + msgtosend = ""; + }, 10); // Waits a half second to gather all/most of the different messages } catch (Exception e) { TBMCCoreAPI.SendException("An error occured while sending message to DiscordSender", e); }