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.java52
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);
}
}