summaryrefslogtreecommitdiffstats
path: root/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListenerNormal.java
diff options
context:
space:
mode:
Diffstat (limited to 'EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListenerNormal.java')
-rw-r--r--EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListenerNormal.java60
1 files changed, 31 insertions, 29 deletions
diff --git a/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListenerNormal.java b/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListenerNormal.java
index 7789009e1..4e3cbefc0 100644
--- a/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListenerNormal.java
+++ b/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListenerNormal.java
@@ -1,6 +1,5 @@
package com.earth2me.essentials.chat;
-import com.earth2me.essentials.ChargeException;
import static com.earth2me.essentials.I18n._;
import com.earth2me.essentials.IEssentials;
import com.earth2me.essentials.User;
@@ -12,9 +11,15 @@ import org.bukkit.event.player.PlayerChatEvent;
public class EssentialsChatPlayerListenerNormal extends EssentialsChatPlayer
{
- public EssentialsChatPlayerListenerNormal(Server server, IEssentials ess, Map<String, IEssentialsChatListener> listeners)
+ 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)
{
super(server, ess, listeners);
+ this.charges = charges;
}
@Override
@@ -29,49 +34,46 @@ 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 User user = ess.getUser(event.getPlayer());
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;
- try
- {
- if (event.getMessage().length() > 0 && chatType.length() > 0)
- {
- StringBuilder permission = new StringBuilder();
- permission.append("essentials.chat.").append(chatType);
-
- StringBuilder command = new StringBuilder();
- command.append("chat-").append(chatType);
+ final User user = ess.getUser(event.getPlayer());
- StringBuilder format = new StringBuilder();
- format.append(chatType).append("Format");
+ if (event.getMessage().length() > 0 && chatType.length() > 0)
+ {
+ final StringBuilder permission = new StringBuilder();
+ permission.append("essentials.chat.").append(chatType);
- StringBuilder errorMsg = new StringBuilder();
- errorMsg.append("notAllowedTo").append(chatType.substring(0, 1).toUpperCase(Locale.ENGLISH)).append(chatType.substring(1));
+ final StringBuilder format = new StringBuilder();
+ format.append(chatType).append("Format");
- if (user.isAuthorized(permission.toString()))
- {
- charge(user, command.toString());
- event.setMessage(event.getMessage().substring(1));
- event.setFormat(_(format.toString(), event.getFormat()));
- return;
- }
+ final StringBuilder errorMsg = new StringBuilder();
+ errorMsg.append("notAllowedTo").append(chatType.substring(0, 1).toUpperCase(Locale.ENGLISH)).append(chatType.substring(1));
- user.sendMessage(_(errorMsg.toString()));
- event.setCancelled(true);
+ if (user.isAuthorized(permission.toString()))
+ {
+ event.setMessage(event.getMessage().substring(1));
+ event.setFormat(_(format.toString(), event.getFormat()));
+ charges.put(event, command.toString());
return;
}
- }
- catch (ChargeException ex)
- {
- ess.showError(user, ex, "Shout");
+
+ user.sendMessage(_(errorMsg.toString()));
event.setCancelled(true);
return;
}
+
sendLocalChat(user, radius, event);
}
}