From bac26f966c71427dc3ca724149111c4a9e2cd4c6 Mon Sep 17 00:00:00 2001 From: Chris Ward Date: Wed, 4 Dec 2013 01:41:08 +1100 Subject: Cleanup join/quit messages. --- .../essentials/EssentialsPlayerListener.java | 49 ++++++++++------------ .../src/com/earth2me/essentials/Settings.java | 4 +- 2 files changed, 24 insertions(+), 29 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java index 733526381..e869b776c 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java @@ -148,13 +148,15 @@ public class EssentialsPlayerListener implements Listener } @EventHandler(priority = EventPriority.HIGHEST) - public void onPlayerQuitHighest(final PlayerQuitEvent event) + public void onPlayerQuit(final PlayerQuitEvent event) { - if (ess.getSettings().allowSilentJoinQuit() && event.getPlayer().hasPermission("essentials.silentquit")) + final User user = ess.getUser(event.getPlayer()); + + if (ess.getSettings().allowSilentJoinQuit() && user.isAuthorized("essentials.silentquit")) { event.setQuitMessage(null); } - else if (ess.getSettings().isCustomQuitMessage()) + else if (ess.getSettings().isCustomQuitMessage() && event.getQuitMessage() != null) { final Player player = event.getPlayer(); event.setQuitMessage( @@ -163,12 +165,7 @@ public class EssentialsPlayerListener implements Listener .replace("{USERNAME}", player.getName()) ); } - } - @EventHandler(priority = EventPriority.MONITOR) - public void onPlayerQuit(final PlayerQuitEvent event) - { - final User user = ess.getUser(event.getPlayer()); if (ess.getSettings().removeGodOnDisconnect() && user.isGodModeEnabled()) { user.setGodModeEnabled(false); @@ -187,34 +184,18 @@ public class EssentialsPlayerListener implements Listener } @EventHandler(priority = EventPriority.HIGHEST) - public void onPlayerJoinHighest(final PlayerJoinEvent event) - { - if(ess.getSettings().allowSilentJoinQuit() && event.getPlayer().hasPermission("essentials.silentjoin")) - { - event.setJoinMessage(null); - } - else if (ess.getSettings().isCustomJoinMessage()) - { - final Player player = event.getPlayer(); - event.setJoinMessage( - ess.getSettings().getCustomJoinMessage() - .replace("{PLAYER}", player.getDisplayName()) - .replace("{USERNAME}", player.getName()) - ); - } - } - - @EventHandler(priority = EventPriority.MONITOR) public void onPlayerJoin(final PlayerJoinEvent event) { + final String joinMessage = event.getJoinMessage(); ess.runTaskAsynchronously(new Runnable() { @Override public void run() { - delayedJoin(event.getPlayer(), event.getJoinMessage()); + delayedJoin(event.getPlayer(), joinMessage); } }); + event.setJoinMessage(null); } public void delayedJoin(final Player player, final String message) @@ -227,6 +208,7 @@ public class EssentialsPlayerListener implements Listener ess.getBackup().onPlayerJoin(); final User user = ess.getUser(player); + if (user.isNPC()) { user.setNPC(false); @@ -267,6 +249,19 @@ public class EssentialsPlayerListener implements Listener user.setSleepingIgnored(true); } + if (ess.getSettings().isCustomJoinMessage()) + { + ess.getServer().broadcastMessage( + ess.getSettings().getCustomJoinMessage() + .replace("{PLAYER}", player.getDisplayName()) + .replace("{USERNAME}", player.getName()) + ); + } + else if (!(ess.getSettings().allowSilentJoinQuit() && user.isAuthorized("esentials.silentjoin"))) + { + ess.getServer().broadcastMessage(message); + } + if (!ess.getSettings().isCommandDisabled("motd") && user.isAuthorized("essentials.motd")) { try diff --git a/Essentials/src/com/earth2me/essentials/Settings.java b/Essentials/src/com/earth2me/essentials/Settings.java index a218b5e2e..0f961d7ab 100644 --- a/Essentials/src/com/earth2me/essentials/Settings.java +++ b/Essentials/src/com/earth2me/essentials/Settings.java @@ -1134,7 +1134,7 @@ public class Settings implements net.ess3.api.ISettings public String _getCustomJoinMessage() { - return ChatColor.translateAlternateColorCodes('&', config.getString("custom-join-message", "none")); + return FormatUtil.replaceFormat(config.getString("custom-join-message", "none")); } @Override @@ -1153,7 +1153,7 @@ public class Settings implements net.ess3.api.ISettings public String _getCustomQuitMessage() { - return ChatColor.translateAlternateColorCodes('&', config.getString("custom-quit-message", "none")); + return FormatUtil.replaceFormat(config.getString("custom-quit-message", "none")); } @Override -- cgit v1.2.3