From 4d1cdaa7f0afd0d674bb1c9cce9623bea9eaa078 Mon Sep 17 00:00:00 2001 From: ementalo Date: Mon, 8 Oct 2012 22:21:03 +0100 Subject: Adding join / quit messages in the config test #1697 PlayerChatEvent -> AsyncPlayerChatEvent --- .../net/ess3/listener/EssentialsPlayerListener.java | 12 ++++++++++++ Essentials/src/net/ess3/settings/General.java | 6 ++++++ Essentials/src/net/ess3/settings/WorldOptions.java | 4 ++-- EssentialsChat/src/net/ess3/chat/EssentialsChat.java | 5 +++-- .../src/net/ess3/chat/EssentialsChatPlayer.java | 20 ++++++++++---------- .../src/net/ess3/chat/EssentialsLocalChatEvent.java | 8 ++++---- .../EssentialsChatPlayerListenerHighest.java | 6 +++--- .../EssentialsChatPlayerListenerLowest.java | 11 ++++++++--- .../EssentialsChatPlayerListenerNormal.java | 6 +++--- 9 files changed, 51 insertions(+), 27 deletions(-) diff --git a/Essentials/src/net/ess3/listener/EssentialsPlayerListener.java b/Essentials/src/net/ess3/listener/EssentialsPlayerListener.java index b14ce9f10..6a0fa57cf 100644 --- a/Essentials/src/net/ess3/listener/EssentialsPlayerListener.java +++ b/Essentials/src/net/ess3/listener/EssentialsPlayerListener.java @@ -13,9 +13,12 @@ import net.ess3.api.ISettings; import net.ess3.api.IUser; import net.ess3.permissions.Permissions; import net.ess3.user.UserData.TimestampType; +import net.ess3.utils.FormatUtil; import net.ess3.utils.LocationUtil; import net.ess3.utils.textreader.IText; import net.ess3.utils.textreader.KeywordReplacer; +import net.ess3.utils.textreader.SimpleTextInput; +import net.ess3.utils.textreader.SimpleTextPager; import net.ess3.utils.textreader.TextInput; import net.ess3.utils.textreader.TextPager; import org.bukkit.Location; @@ -114,6 +117,10 @@ public class EssentialsPlayerListener implements Listener @EventHandler(priority = EventPriority.MONITOR) public void onPlayerQuit(final PlayerQuitEvent event) { + final IText itOutput = new KeywordReplacer(new SimpleTextInput(ess.getSettings().getData().getGeneral().getLeaveMessage()), event.getPlayer(), ess); + final SimpleTextPager stPager = new SimpleTextPager(itOutput); + event.setQuitMessage(FormatUtil.replaceFormat(stPager.getString(0))); + final IUser user = ess.getUserMap().getUser(event.getPlayer()); final ISettings settings = ess.getSettings(); @@ -141,8 +148,13 @@ public class EssentialsPlayerListener implements Listener { return; } + ess.getBackup().startTask(); + final IText itOutput = new KeywordReplacer(new SimpleTextInput(ess.getSettings().getData().getGeneral().getJoinMessage()), event.getPlayer(), ess); + final SimpleTextPager stPager = new SimpleTextPager(itOutput); + event.setJoinMessage(FormatUtil.replaceFormat(stPager.getString(0))); + final IUser user = ess.getUserMap().getUser(event.getPlayer()); user.updateDisplayName(); diff --git a/Essentials/src/net/ess3/settings/General.java b/Essentials/src/net/ess3/settings/General.java index 91812631f..ff3b46a85 100644 --- a/Essentials/src/net/ess3/settings/General.java +++ b/Essentials/src/net/ess3/settings/General.java @@ -78,4 +78,10 @@ public class General implements StorageObject return loginAttackDelay * 1000; } public Boolean metricsEnabled = null; + + @Comment("The join message when players join the server") + private String joinMessage = "&e{PLAYER} has joined the game"; + + @Comment("The quit message when players leave the server") + private String leaveMessage ="&e{PLAYER} has left the game"; } diff --git a/Essentials/src/net/ess3/settings/WorldOptions.java b/Essentials/src/net/ess3/settings/WorldOptions.java index fb0da4e07..661f77c30 100644 --- a/Essentials/src/net/ess3/settings/WorldOptions.java +++ b/Essentials/src/net/ess3/settings/WorldOptions.java @@ -1,6 +1,6 @@ package net.ess3.settings; -import java.util.HashMap; +import java.util.EnumMap; import java.util.Map; import lombok.AccessLevel; import lombok.Data; @@ -34,7 +34,7 @@ public class WorldOptions implements StorageObject @Comment("Prevent creatures spawning") @Getter(AccessLevel.NONE) @Setter(AccessLevel.NONE) - private Map creatureSpawn = new HashMap(); + private Map creatureSpawn = new EnumMap(EntityType.class); public boolean getPreventSpawn(String creatureName) { diff --git a/EssentialsChat/src/net/ess3/chat/EssentialsChat.java b/EssentialsChat/src/net/ess3/chat/EssentialsChat.java index f191e345e..b80d38f6d 100644 --- a/EssentialsChat/src/net/ess3/chat/EssentialsChat.java +++ b/EssentialsChat/src/net/ess3/chat/EssentialsChat.java @@ -1,5 +1,6 @@ package net.ess3.chat; +import java.util.Collections; import java.util.HashMap; import java.util.Map; import java.util.logging.Level; @@ -10,7 +11,7 @@ import net.ess3.api.IPlugin; import net.ess3.chat.listenerlevel.EssentialsChatPlayerListenerHighest; import net.ess3.chat.listenerlevel.EssentialsChatPlayerListenerLowest; import net.ess3.chat.listenerlevel.EssentialsChatPlayerListenerNormal; -import org.bukkit.event.player.PlayerChatEvent; +import org.bukkit.event.player.AsyncPlayerChatEvent; import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.java.JavaPlugin; @@ -35,7 +36,7 @@ public class EssentialsChat extends JavaPlugin return; } - final Map chatStore = new HashMap(); + final Map chatStore = Collections.synchronizedMap(new HashMap()); final EssentialsChatPlayerListenerLowest playerListenerLowest = new EssentialsChatPlayerListenerLowest(getServer(), ess, chatStore); final EssentialsChatPlayerListenerNormal playerListenerNormal = new EssentialsChatPlayerListenerNormal(getServer(), ess, chatStore); diff --git a/EssentialsChat/src/net/ess3/chat/EssentialsChatPlayer.java b/EssentialsChat/src/net/ess3/chat/EssentialsChatPlayer.java index 20019b179..3d1be4521 100644 --- a/EssentialsChat/src/net/ess3/chat/EssentialsChatPlayer.java +++ b/EssentialsChat/src/net/ess3/chat/EssentialsChatPlayer.java @@ -16,7 +16,7 @@ import org.bukkit.Server; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.event.Listener; -import org.bukkit.event.player.PlayerChatEvent; +import org.bukkit.event.player.AsyncPlayerChatEvent; //TODO: Translate the local/spy tags public abstract class EssentialsChatPlayer implements Listener @@ -24,37 +24,37 @@ public abstract class EssentialsChatPlayer implements Listener protected transient IEssentials ess; protected final static Logger LOGGER = Logger.getLogger("Minecraft"); protected final transient Server server; - protected final transient Map chatStorage; + protected final transient Map chatStorage; public EssentialsChatPlayer(final Server server, final IEssentials ess, - final Map chatStorage) + final Map chatStorage) { this.ess = ess; this.server = server; this.chatStorage = chatStorage; } - public void onPlayerChat(final PlayerChatEvent event) + public void onPlayerChat(final AsyncPlayerChatEvent event) { } - public ChatStore getChatStore(final PlayerChatEvent event) + public ChatStore getChatStore(final AsyncPlayerChatEvent event) { return chatStorage.get(event); } - public void setChatStore(final PlayerChatEvent event, final ChatStore chatStore) + public void setChatStore(final AsyncPlayerChatEvent event, final ChatStore chatStore) { chatStorage.put(event, chatStore); } - public ChatStore delChatStore(final PlayerChatEvent event) + public ChatStore delChatStore(final AsyncPlayerChatEvent event) { return chatStorage.remove(event); } - protected void chargeChat(final PlayerChatEvent event, final ChatStore chatStore) + protected void chargeChat(final AsyncPlayerChatEvent event, final ChatStore chatStore) { try { @@ -75,7 +75,7 @@ public abstract class EssentialsChatPlayer implements Listener } } - protected void formatChat(final PlayerChatEvent event, final ChatStore chatStore) + protected void formatChat(final AsyncPlayerChatEvent event, final ChatStore chatStore) { final IUser user = chatStore.getUser(); if (Permissions.CHAT_COLOR.isAuthorized(user)) @@ -109,7 +109,7 @@ public abstract class EssentialsChatPlayer implements Listener } } - protected void handleLocalChat(final PlayerChatEvent event, final ChatStore chatStore) + protected void handleLocalChat(final AsyncPlayerChatEvent event, final ChatStore chatStore) { ISettings settings = ess.getSettings(); long radius = settings.getData().getChat().getLocalRadius(); diff --git a/EssentialsChat/src/net/ess3/chat/EssentialsLocalChatEvent.java b/EssentialsChat/src/net/ess3/chat/EssentialsLocalChatEvent.java index e0ce6602d..d3bafa984 100644 --- a/EssentialsChat/src/net/ess3/chat/EssentialsLocalChatEvent.java +++ b/EssentialsChat/src/net/ess3/chat/EssentialsLocalChatEvent.java @@ -4,7 +4,7 @@ import org.bukkit.entity.Player; import org.bukkit.event.Cancellable; import org.bukkit.event.Event; import org.bukkit.event.HandlerList; -import org.bukkit.event.player.PlayerChatEvent; +import org.bukkit.event.player.AsyncPlayerChatEvent; public class EssentialsLocalChatEvent extends Event implements Cancellable @@ -14,7 +14,7 @@ public class EssentialsLocalChatEvent extends Event implements Cancellable private String format = "<%1$s> %2$s"; private long radius; private boolean cancelled = false; - private PlayerChatEvent parentEvent = null; + private AsyncPlayerChatEvent parentEvent = null; private static final HandlerList handlers = new HandlerList(); public EssentialsLocalChatEvent(final Player player, final String message, final String format, final long radius) @@ -25,7 +25,7 @@ public class EssentialsLocalChatEvent extends Event implements Cancellable this.radius = radius; } - public EssentialsLocalChatEvent(final PlayerChatEvent event, final long radius) + public EssentialsLocalChatEvent(final AsyncPlayerChatEvent event, final long radius) { this(event.getPlayer(), event.getMessage(), event.getFormat(), radius); this.parentEvent = event; @@ -93,7 +93,7 @@ public class EssentialsLocalChatEvent extends Event implements Cancellable this.radius = radius; } - public PlayerChatEvent getParentEvent() + public AsyncPlayerChatEvent getParentEvent() { return parentEvent; } diff --git a/EssentialsChat/src/net/ess3/chat/listenerlevel/EssentialsChatPlayerListenerHighest.java b/EssentialsChat/src/net/ess3/chat/listenerlevel/EssentialsChatPlayerListenerHighest.java index dca0c3b79..3ecb1f733 100644 --- a/EssentialsChat/src/net/ess3/chat/listenerlevel/EssentialsChatPlayerListenerHighest.java +++ b/EssentialsChat/src/net/ess3/chat/listenerlevel/EssentialsChatPlayerListenerHighest.java @@ -7,21 +7,21 @@ import net.ess3.chat.EssentialsChatPlayer; import org.bukkit.Server; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; -import org.bukkit.event.player.PlayerChatEvent; +import org.bukkit.event.player.AsyncPlayerChatEvent; public class EssentialsChatPlayerListenerHighest extends EssentialsChatPlayer { public EssentialsChatPlayerListenerHighest(final Server server, final IEssentials ess, - final Map chatStorage) + final Map chatStorage) { super(server, ess, chatStorage); } @EventHandler(priority = EventPriority.HIGHEST) @Override - public void onPlayerChat(final PlayerChatEvent event) + public void onPlayerChat(final AsyncPlayerChatEvent event) { final ChatStore chatStore = delChatStore(event); if (event.isCancelled()) diff --git a/EssentialsChat/src/net/ess3/chat/listenerlevel/EssentialsChatPlayerListenerLowest.java b/EssentialsChat/src/net/ess3/chat/listenerlevel/EssentialsChatPlayerListenerLowest.java index f5a8c26ab..836d6af86 100644 --- a/EssentialsChat/src/net/ess3/chat/listenerlevel/EssentialsChatPlayerListenerLowest.java +++ b/EssentialsChat/src/net/ess3/chat/listenerlevel/EssentialsChatPlayerListenerLowest.java @@ -8,27 +8,32 @@ import net.ess3.chat.EssentialsChatPlayer; import org.bukkit.Server; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; -import org.bukkit.event.player.PlayerChatEvent; +import org.bukkit.event.player.AsyncPlayerChatEvent; public class EssentialsChatPlayerListenerLowest extends EssentialsChatPlayer { public EssentialsChatPlayerListenerLowest(final Server server, final IEssentials ess, - final Map chatStorage) + final Map chatStorage) { super(server, ess, chatStorage); } @EventHandler(priority = EventPriority.LOWEST) @Override - public void onPlayerChat(final PlayerChatEvent event) + public void onPlayerChat(final AsyncPlayerChatEvent event) { if (event.isCancelled()) { return; } final IUser user = ess.getUserMap().getUser(event.getPlayer()); + if(user == null) + { + event.setCancelled(true); + return; + } final ChatStore chatStore = new ChatStore(ess, user, getChatType(event.getMessage())); setChatStore(event, chatStore); formatChat(event, chatStore); diff --git a/EssentialsChat/src/net/ess3/chat/listenerlevel/EssentialsChatPlayerListenerNormal.java b/EssentialsChat/src/net/ess3/chat/listenerlevel/EssentialsChatPlayerListenerNormal.java index 201d946c5..bef4322d6 100644 --- a/EssentialsChat/src/net/ess3/chat/listenerlevel/EssentialsChatPlayerListenerNormal.java +++ b/EssentialsChat/src/net/ess3/chat/listenerlevel/EssentialsChatPlayerListenerNormal.java @@ -7,21 +7,21 @@ import net.ess3.chat.EssentialsChatPlayer; import org.bukkit.Server; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; -import org.bukkit.event.player.PlayerChatEvent; +import org.bukkit.event.player.AsyncPlayerChatEvent; public class EssentialsChatPlayerListenerNormal extends EssentialsChatPlayer { public EssentialsChatPlayerListenerNormal(final Server server, final IEssentials ess, - final Map chatStorage) + final Map chatStorage) { super(server, ess, chatStorage); } @EventHandler(priority = EventPriority.NORMAL) @Override - public void onPlayerChat(final PlayerChatEvent event) + public void onPlayerChat(final AsyncPlayerChatEvent event) { if (event.isCancelled()) { -- cgit v1.2.3