diff options
author | KHobbits <rob@khobbits.co.uk> | 2012-01-18 22:53:39 +0000 |
---|---|---|
committer | KHobbits <rob@khobbits.co.uk> | 2012-01-18 22:53:39 +0000 |
commit | cd8cc631134de1ece1aab89c0b01d5a63dda1cfd (patch) | |
tree | 2a66d7070b71ed0d22e2f0681e4eff2517891cff /EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListenerNormal.java | |
parent | 947bee98a0eae2da2448923d450ebd4ca7d81157 (diff) | |
download | Essentials-cd8cc631134de1ece1aab89c0b01d5a63dda1cfd.tar Essentials-cd8cc631134de1ece1aab89c0b01d5a63dda1cfd.tar.gz Essentials-cd8cc631134de1ece1aab89c0b01d5a63dda1cfd.tar.lz Essentials-cd8cc631134de1ece1aab89c0b01d5a63dda1cfd.tar.xz Essentials-cd8cc631134de1ece1aab89c0b01d5a63dda1cfd.zip |
Reduce duplicate calls in EssentialsChat
Should cut the time down a little.
Diffstat (limited to 'EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListenerNormal.java')
-rw-r--r-- | EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListenerNormal.java | 52 |
1 files changed, 21 insertions, 31 deletions
diff --git a/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListenerNormal.java b/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListenerNormal.java index 4e3cbefc0..16ebe8e7e 100644 --- a/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListenerNormal.java +++ b/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListenerNormal.java @@ -11,17 +11,14 @@ import org.bukkit.event.player.PlayerChatEvent; public class EssentialsChatPlayerListenerNormal extends EssentialsChatPlayer { - private final transient Map<PlayerChatEvent, String> charges; - public EssentialsChatPlayerListenerNormal(final Server server, final IEssentials ess, final Map<String, IEssentialsChatListener> listeners, - final Map<PlayerChatEvent, String> charges) + final Map<PlayerChatEvent, ChatStore> chatStorage) { - super(server, ess, listeners); - this.charges = charges; + super(server, ess, listeners, chatStorage); } - + @Override public void onPlayerChat(final PlayerChatEvent event) { @@ -33,47 +30,40 @@ public class EssentialsChatPlayerListenerNormal extends EssentialsChatPlayer /** * This file should handle detection of the local chat features... if local chat is enabled, we need to handle * it here - */ - final String chatType = getChatType(event.getMessage()); - final StringBuilder command = new StringBuilder(); - command.append("chat"); - - if (chatType.length() > 0) - { - command.append("-").append(chatType); - } + */ long radius = ess.getSettings().getChatRadius(); if (radius < 1) { return; } radius *= radius; - final User user = ess.getUser(event.getPlayer()); - - if (event.getMessage().length() > 0 && chatType.length() > 0) + + final ChatStore chatStore = getChatStore(event); + final User user = chatStore.getUser(); + chatStore.setRadius(radius); + + if (event.getMessage().length() > 0 && chatStore.getType().length() > 0) { final StringBuilder permission = new StringBuilder(); - permission.append("essentials.chat.").append(chatType); - - final StringBuilder format = new StringBuilder(); - format.append(chatType).append("Format"); - - final StringBuilder errorMsg = new StringBuilder(); - errorMsg.append("notAllowedTo").append(chatType.substring(0, 1).toUpperCase(Locale.ENGLISH)).append(chatType.substring(1)); - + permission.append("essentials.chat.").append(chatStore.getType()); + if (user.isAuthorized(permission.toString())) { + final StringBuilder format = new StringBuilder(); + format.append(chatStore.getType()).append("Format"); event.setMessage(event.getMessage().substring(1)); - event.setFormat(_(format.toString(), event.getFormat())); - charges.put(event, command.toString()); + event.setFormat(_(format.toString(), event.getFormat())); return; } - + + final StringBuilder errorMsg = new StringBuilder(); + errorMsg.append("notAllowedTo").append(chatStore.getType().substring(0, 1).toUpperCase(Locale.ENGLISH)).append(chatStore.getType().substring(1)); + user.sendMessage(_(errorMsg.toString())); event.setCancelled(true); return; } - - sendLocalChat(user, radius, event); + + sendLocalChat(event, chatStore); } } |