summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Ward <chris@chrisgward.com>2013-12-03 20:03:36 +1100
committerKHobbits <rob@khobbits.co.uk>2013-12-05 23:08:28 +0000
commit278bb9864901abe4dae7be942fc3d542f92863a8 (patch)
treed9f4c21598fbc702837b3151c8e501d389e2b2c7
parent3839b6f1f58632fee10c80e7363b9e3ebee538d8 (diff)
downloadEssentials-278bb9864901abe4dae7be942fc3d542f92863a8.tar
Essentials-278bb9864901abe4dae7be942fc3d542f92863a8.tar.gz
Essentials-278bb9864901abe4dae7be942fc3d542f92863a8.tar.lz
Essentials-278bb9864901abe4dae7be942fc3d542f92863a8.tar.xz
Essentials-278bb9864901abe4dae7be942fc3d542f92863a8.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.java58
-rw-r--r--Essentials/src/com/earth2me/essentials/Settings.java4
-rw-r--r--Essentials/src/config.yml2
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.