diff --git a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java index ddc0cd950..4547ead88 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java @@ -186,30 +186,19 @@ public class EssentialsPlayerListener implements Listener @EventHandler(priority = EventPriority.HIGHEST) public void onPlayerJoin(final PlayerJoinEvent event) { + final String joinMessage = event.getJoinMessage(); ess.runTaskAsynchronously(new Runnable() { @Override public void run() { - delayedJoin(event.getPlayer()); + delayedJoin(event.getPlayer(), joinMessage); } }); - if (ess.getSettings().allowSilentJoinQuit() && event.getPlayer().hasPermission("essentials.silentjoin")) - { - event.setJoinMessage(null); - } - if (ess.getSettings().isCustomJoinMessage() && event.getJoinMessage() != null) - { - event.setJoinMessage(null); - ess.getServer().broadcastMessage( - ess.getSettings().getCustomJoinMessage() - .replace("{PLAYER}", event.getPlayer().getDisplayName()) - .replace("{USERNAME}", event.getPlayer().getName()) - ); - } + event.setJoinMessage(null); } - public void delayedJoin(final Player player) + public void delayedJoin(final Player player, final String message) { if (!player.isOnline()) { @@ -219,6 +208,7 @@ public class EssentialsPlayerListener implements Listener ess.getBackup().onPlayerJoin(); final User user = ess.getUser(player); + if (user.isNPC()) { user.setNPC(false); @@ -259,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")) && message != null) + { + ess.getServer().broadcastMessage(message); + } + if (!ess.getSettings().isCommandDisabled("motd") && user.isAuthorized("essentials.motd")) { try