diff --git a/src/com/wasteofplastic/askyblock/listeners/ChatListener.java b/src/com/wasteofplastic/askyblock/listeners/ChatListener.java index 3e352a19a..8e150893c 100644 --- a/src/com/wasteofplastic/askyblock/listeners/ChatListener.java +++ b/src/com/wasteofplastic/askyblock/listeners/ChatListener.java @@ -96,8 +96,27 @@ public ChatListener(ASkyBlock plugin) { @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) public void onChat(final AsyncPlayerChatEvent event) { + // Team chat + if (Settings.teamChat && teamChatUsers.containsKey(event.getPlayer().getUniqueId())) { + if (DEBUG) + plugin.getLogger().info("DEBUG: team chat"); + // Cancel the event + event.setCancelled(true); + // Queue the sync task because you cannot use HashMaps asynchronously. Delaying to the next tick + // won't be a major issue for synch events either. + Bukkit.getScheduler().runTask(plugin, new Runnable() { + @Override + public void run() { + teamChat(event,event.getMessage()); + }}); + } + } + + @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true) + public void onChatHigh(final AsyncPlayerChatEvent event) { if (DEBUG) plugin.getLogger().info("DEBUG: " + event.getEventName()); + // Substitute variable - thread safe String level = ""; if (playerLevels.containsKey(event.getPlayer().getUniqueId())) { @@ -121,6 +140,7 @@ public void onChat(final AsyncPlayerChatEvent event) { plugin.getLogger().info("DEBUG: getFormat = " + event.getFormat()); plugin.getLogger().info("DEBUG: getMessage = " + event.getMessage()); } + String format = event.getFormat(); if (!Settings.chatLevelPrefix.isEmpty()) { format = format.replace(Settings.chatLevelPrefix, level); @@ -134,25 +154,11 @@ public void onChat(final AsyncPlayerChatEvent event) { } format = format.replace(Settings.chatChallengeLevelPrefix, level); if (DEBUG) - plugin.getLogger().info("DEBUG: format (challenge level sub) = " + format); + plugin.getLogger().info("DEBUG: format (challenge level sub) = " + format); } event.setFormat(format); if (DEBUG) plugin.getLogger().info("DEBUG: format set"); - // Team chat - if (Settings.teamChat && teamChatUsers.containsKey(event.getPlayer().getUniqueId())) { - if (DEBUG) - plugin.getLogger().info("DEBUG: team chat"); - // Cancel the event - event.setCancelled(true); - // Queue the sync task because you cannot use HashMaps asynchronously. Delaying to the next tick - // won't be a major issue for synch events either. - Bukkit.getScheduler().runTask(plugin, new Runnable() { - @Override - public void run() { - teamChat(event,event.getMessage()); - }}); - } } private void teamChat(final AsyncPlayerChatEvent event, String message) {