From 1e470aa544f6a04afeb69ecdd1a4716d17e910bb Mon Sep 17 00:00:00 2001 From: cnaude Date: Sat, 10 May 2014 14:08:48 -0700 Subject: [PATCH] Add 20 tick delay to join message. Should allow enough time for other plugins to change displayName. --- .../GameListeners/GamePlayerJoinListener.java | 30 ++++++++++++------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/cnaude/purpleirc/GameListeners/GamePlayerJoinListener.java b/src/main/java/com/cnaude/purpleirc/GameListeners/GamePlayerJoinListener.java index aa0c948..0fe4113 100644 --- a/src/main/java/com/cnaude/purpleirc/GameListeners/GamePlayerJoinListener.java +++ b/src/main/java/com/cnaude/purpleirc/GameListeners/GamePlayerJoinListener.java @@ -6,10 +6,12 @@ import com.cnaude.purpleirc.PurpleBot; import com.cnaude.purpleirc.PurpleIRC; +import java.io.IOException; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerJoinEvent; +import org.pircbotx.exception.IrcException; /** * @@ -25,27 +27,35 @@ public class GamePlayerJoinListener implements Listener { */ public GamePlayerJoinListener(PurpleIRC plugin) { this.plugin = plugin; - } + } /** * * @param event */ @EventHandler(priority = EventPriority.MONITOR) - public void onPlayerJoinEvent(PlayerJoinEvent event) { + public void onPlayerJoinEvent(final PlayerJoinEvent event) { + plugin.logDebug("PlayerJoinEvent: " + event.getPlayer().getDisplayName() + + ": " + event.getPlayer().getCustomName()); if (plugin.kickedPlayers.contains(event.getPlayer().getName())) { plugin.kickedPlayers.remove(event.getPlayer().getName()); - plugin.logDebug("Removing player " + plugin.logDebug("Removing player " + event.getPlayer().getName() - + " from the recently kicked list."); + + " from the recently kicked list."); } - for (PurpleBot ircBot : plugin.ircBots.values()) { - if (ircBot.isConnected()) { - ircBot.gameJoin(event.getPlayer(), event.getJoinMessage()); - if (plugin.netPackets != null) { - plugin.netPackets.updateTabList(event.getPlayer()); + plugin.getServer().getScheduler().runTaskLaterAsynchronously(plugin, new Runnable() { + @Override + public void run() { + for (PurpleBot ircBot : plugin.ircBots.values()) { + if (ircBot.isConnected()) { + ircBot.gameJoin(event.getPlayer(), event.getJoinMessage()); + if (plugin.netPackets != null) { + plugin.netPackets.updateTabList(event.getPlayer()); + } + } } } - } + }, 20); + } }