From ffd7ba7d5f2312ea9fc1c818b39938e5d7de86b6 Mon Sep 17 00:00:00 2001 From: okamosy Date: Sun, 30 Oct 2011 21:29:56 +0000 Subject: EssChat update part 1. --- .../chat/EssentialsChatPlayerListenerNormal.java | 76 ++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListenerNormal.java (limited to 'EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListenerNormal.java') diff --git a/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListenerNormal.java b/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListenerNormal.java new file mode 100644 index 000000000..d726cb569 --- /dev/null +++ b/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListenerNormal.java @@ -0,0 +1,76 @@ +package com.earth2me.essentials.chat; + +import com.earth2me.essentials.ChargeException; +import com.earth2me.essentials.IEssentials; +import com.earth2me.essentials.User; +import com.earth2me.essentials.Util; +import java.util.Map; +import org.bukkit.Server; +import org.bukkit.event.player.PlayerChatEvent; + + +public class EssentialsChatPlayerListenerNormal extends EssentialsChatPlayer +{ + public EssentialsChatPlayerListenerNormal(Server server, IEssentials ess, Map listeners) + { + super(server, ess, listeners); + } + + @Override + public void onPlayerChat(final PlayerChatEvent event) + { + if (isAborted(event)) + { + return; + } + + /** + * 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()); + 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); + + StringBuilder format = new StringBuilder(); + format.append(chatType).append("Format"); + + StringBuilder errorMsg = new StringBuilder(); + errorMsg.append("notAllowedTo").append(chatType.substring(0, 1).toUpperCase()).append(chatType.substring(1)); + + if (user.isAuthorized(permission.toString())) + { + charge(user, command.toString()); + event.setMessage(event.getMessage().substring(1)); + event.setFormat(Util.format(format.toString(), event.getFormat())); + return; + } + + user.sendMessage(Util.i18n(errorMsg.toString())); + event.setCancelled(true); + return; + } + } + catch (ChargeException ex) + { + ess.showError(user, ex, "Shout"); + event.setCancelled(true); + return; + } + sendLocalChat(user, radius, event); + } +} -- cgit v1.2.3