diff options
Diffstat (limited to 'EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListenerHighest.java')
-rw-r--r-- | EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListenerHighest.java | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListenerHighest.java b/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListenerHighest.java new file mode 100644 index 000000000..22989d4f9 --- /dev/null +++ b/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListenerHighest.java @@ -0,0 +1,53 @@ +package com.earth2me.essentials.chat; + +import com.earth2me.essentials.ChargeException; +import com.earth2me.essentials.IEssentials; +import com.earth2me.essentials.User; +import java.util.Map; +import org.bukkit.Server; +import org.bukkit.event.player.PlayerChatEvent; + + +public class EssentialsChatPlayerListenerHighest extends EssentialsChatPlayer +{ + private final transient Map<PlayerChatEvent, String> charges; + + public EssentialsChatPlayerListenerHighest(final Server server, + final IEssentials ess, + final Map<String, IEssentialsChatListener> listeners, + final Map<PlayerChatEvent, String> charges) + { + super(server, ess, listeners); + this.charges = charges; + } + + @Override + public void onPlayerChat(final PlayerChatEvent event) + { + String charge = charges.remove(event); + if (charge == null) + { + charge = "chat"; + } + if (isAborted(event)) + { + return; + } + + /** + * This file should handle charging the user for the action before returning control back + */ + final User user = ess.getUser(event.getPlayer()); + + try + { + charge(user, charge); + } + catch (ChargeException e) + { + ess.showError(user, e, charge); + event.setCancelled(true); + return; + } + } +} |