From b355edb37b46e6930c382ef76061a710ad68a11c Mon Sep 17 00:00:00 2001 From: StevenLawson Date: Sat, 16 Aug 2014 21:53:09 -0400 Subject: [PATCH] Prevent flood of player list messages by only allowing 1 update every 2 seconds. --- .../BukkitTelnet/PlayerEventListener.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/me/StevenLawson/BukkitTelnet/PlayerEventListener.java b/src/me/StevenLawson/BukkitTelnet/PlayerEventListener.java index 52e696a..14cc346 100644 --- a/src/me/StevenLawson/BukkitTelnet/PlayerEventListener.java +++ b/src/me/StevenLawson/BukkitTelnet/PlayerEventListener.java @@ -10,6 +10,7 @@ import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerKickEvent; import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.scheduler.BukkitRunnable; +import org.bukkit.scheduler.BukkitTask; import org.json.simple.JSONArray; import org.json.simple.JSONObject; @@ -37,9 +38,16 @@ public class PlayerEventListener implements Listener triggerPlayerListUpdates(); } + private static BukkitTask updateTask = null; + private static void triggerPlayerListUpdates() { - new BukkitRunnable() + if (updateTask != null) + { + updateTask.cancel(); + } + + updateTask = new BukkitRunnable() { @Override public void run() @@ -50,7 +58,7 @@ public class PlayerEventListener implements Listener socketListener.triggerPlayerListUpdates(generatePlayerList()); } } - }.runTaskLater(BukkitTelnet.plugin, 20L); + }.runTaskLater(BukkitTelnet.plugin, 20L * 2L); } @SuppressWarnings("unchecked")