From 278bb9864901abe4dae7be942fc3d542f92863a8 Mon Sep 17 00:00:00 2001 From: Chris Ward Date: Tue, 3 Dec 2013 20:03:36 +1100 Subject: Fix custom join messages Removes double message, adds colour codes and placeholders for the user's name. --- .../essentials/EssentialsPlayerListener.java | 58 ++++++++++++---------- .../src/com/earth2me/essentials/Settings.java | 4 +- Essentials/src/config.yml | 2 + 3 files changed, 37 insertions(+), 27 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java index 7ad4cca52..733526381 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java @@ -147,6 +147,24 @@ public class EssentialsPlayerListener implements Listener } } + @EventHandler(priority = EventPriority.HIGHEST) + public void onPlayerQuitHighest(final PlayerQuitEvent event) + { + if (ess.getSettings().allowSilentJoinQuit() && event.getPlayer().hasPermission("essentials.silentquit")) + { + event.setQuitMessage(null); + } + else if (ess.getSettings().isCustomQuitMessage()) + { + final Player player = event.getPlayer(); + event.setQuitMessage( + ess.getSettings().getCustomQuitMessage() + .replace("{PLAYER}", player.getDisplayName()) + .replace("{USERNAME}", player.getName()) + ); + } + } + @EventHandler(priority = EventPriority.MONITOR) public void onPlayerQuit(final PlayerQuitEvent event) { @@ -164,32 +182,31 @@ public class EssentialsPlayerListener implements Listener { user.getBase().getOpenInventory().getTopInventory().clear(); } - - if (ess.getSettings().allowSilentJoinQuit()) - { - event.setQuitMessage(null); - - } - if (ess.getSettings().isCustomQuitMessage()) - { - event.setQuitMessage(null); - ess.broadcastMessage(ess.getSettings().getCustomQuitMessage()); - } user.updateActivity(false); user.dispose(); } - @EventHandler(priority = EventPriority.MONITOR) - public void onPlayerJoin(final PlayerJoinEvent event) + @EventHandler(priority = EventPriority.HIGHEST) + public void onPlayerJoinHighest(final PlayerJoinEvent event) { - if (ess.getSettings().allowSilentJoinQuit()) + if(ess.getSettings().allowSilentJoinQuit() && event.getPlayer().hasPermission("essentials.silentjoin")) { event.setJoinMessage(null); } - if (ess.getSettings().isCustomJoinMessage()) + else if (ess.getSettings().isCustomJoinMessage()) { - event.setJoinMessage(null); + 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) + { ess.runTaskAsynchronously(new Runnable() { @Override @@ -202,15 +219,6 @@ public class EssentialsPlayerListener implements Listener public void delayedJoin(final Player player, final String message) { - if (ess.getSettings().isCustomJoinMessage()) - { - ess.broadcastMessage(ess.getSettings().getCustomJoinMessage()); - } - else - { - ess.broadcastMessage(message); - } - if (!player.isOnline()) { return; diff --git a/Essentials/src/com/earth2me/essentials/Settings.java b/Essentials/src/com/earth2me/essentials/Settings.java index e798894f8..a218b5e2e 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 config.getString("custom-join-message", "none"); + return ChatColor.translateAlternateColorCodes('&', config.getString("custom-join-message", "none")); } @Override @@ -1153,7 +1153,7 @@ public class Settings implements net.ess3.api.ISettings public String _getCustomQuitMessage() { - return config.getString("custom-quit-message", "none"); + return ChatColor.translateAlternateColorCodes('&', config.getString("custom-quit-message", "none")); } @Override diff --git a/Essentials/src/config.yml b/Essentials/src/config.yml index 91a81b2af..01faaacad 100644 --- a/Essentials/src/config.yml +++ b/Essentials/src/config.yml @@ -358,9 +358,11 @@ death-messages: true allow-silent-join-quit: false # You can set a custom join message here, set to "none" to disable. +# You may use color codes, use the {USERNAME} placeholder for the player's name. custom-join-message: "none" # You can set a custom quit message here, set to "none" to disable. +# You may use color codes, use the {USERNAME} placeholder for the player's name and/or the {PLAYER} placeholder for the player's display name. custom-quit-message: "none" # Add worlds to this list, if you want to automatically disable god mode there. -- cgit v1.2.3