diff options
author | Chris Ward <chris@chrisgward.com> | 2013-12-03 20:03:36 +1100 |
---|---|---|
committer | KHobbits <rob@khobbits.co.uk> | 2013-12-05 23:08:28 +0000 |
commit | e469ff367139f4157cacafc09aedca78e0e8dbca (patch) | |
tree | 0563cfc182b6fdc71a709e060dd04fcb7bd46535 | |
parent | 38ad919f375d3d8509f93df57a5549cbb45dc766 (diff) | |
download | Essentials-e469ff367139f4157cacafc09aedca78e0e8dbca.tar Essentials-e469ff367139f4157cacafc09aedca78e0e8dbca.tar.gz Essentials-e469ff367139f4157cacafc09aedca78e0e8dbca.tar.lz Essentials-e469ff367139f4157cacafc09aedca78e0e8dbca.tar.xz Essentials-e469ff367139f4157cacafc09aedca78e0e8dbca.zip |
Fix custom join messages Removes double message, adds colour codes and placeholders for the user's name.
-rw-r--r-- | Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java | 58 | ||||
-rw-r--r-- | Essentials/src/com/earth2me/essentials/Settings.java | 4 | ||||
-rw-r--r-- | 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. |