summaryrefslogtreecommitdiffstats
path: root/EssentialsChat/src
diff options
context:
space:
mode:
authorsnowleo <schneeleo@gmail.com>2011-07-19 11:26:23 +0200
committersnowleo <schneeleo@gmail.com>2011-07-19 11:26:23 +0200
commitdc99efb0a73f13be687a19e4b77623e6cc0dfe68 (patch)
tree52083e21c55f3cbf29c9dd588062c5ecbe249c33 /EssentialsChat/src
parent6a156ede687c4a43b042ce6d7aa4ab2be8a19794 (diff)
downloadEssentials-dc99efb0a73f13be687a19e4b77623e6cc0dfe68.tar
Essentials-dc99efb0a73f13be687a19e4b77623e6cc0dfe68.tar.gz
Essentials-dc99efb0a73f13be687a19e4b77623e6cc0dfe68.tar.lz
Essentials-dc99efb0a73f13be687a19e4b77623e6cc0dfe68.tar.xz
Essentials-dc99efb0a73f13be687a19e4b77623e6cc0dfe68.zip
Rewritten Factions hook, so we don't need Factions in our code.
Diffstat (limited to 'EssentialsChat/src')
-rw-r--r--EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChat.java14
-rw-r--r--EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListener.java81
-rw-r--r--EssentialsChat/src/com/earth2me/essentials/chat/IEssentialsChatListener.java11
-rw-r--r--EssentialsChat/src/plugin.yml2
4 files changed, 70 insertions, 38 deletions
diff --git a/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChat.java b/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChat.java
index fcc734de2..2bba47a2a 100644
--- a/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChat.java
+++ b/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChat.java
@@ -2,6 +2,8 @@ package com.earth2me.essentials.chat;
import com.earth2me.essentials.IEssentials;
import com.earth2me.essentials.Util;
+import java.util.HashMap;
+import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.bukkit.event.Event.Priority;
@@ -13,15 +15,17 @@ import org.bukkit.plugin.java.JavaPlugin;
public class EssentialsChat extends JavaPlugin
{
private static final Logger LOGGER = Logger.getLogger("Minecraft");
+ private Map<String, IEssentialsChatListener> chatListener;
public void onEnable()
{
final PluginManager pluginManager = getServer().getPluginManager();
final IEssentials ess = (IEssentials)pluginManager.getPlugin("Essentials");
- EssentialsChatPlayerListener.checkFactions(pluginManager);
+ chatListener = new HashMap<String, IEssentialsChatListener>();
+ //EssentialsChatPlayerListener.checkFactions(pluginManager);
- final EssentialsChatPlayerListener playerListener = new EssentialsChatPlayerListener(getServer(), ess);
+ final EssentialsChatPlayerListener playerListener = new EssentialsChatPlayerListener(getServer(), ess, chatListener);
pluginManager.registerEvent(Type.PLAYER_CHAT, playerListener, Priority.Highest, this);
if (!this.getDescription().getVersion().equals(ess.getDescription().getVersion()))
{
@@ -32,5 +36,11 @@ public class EssentialsChat extends JavaPlugin
public void onDisable()
{
+ chatListener.clear();
+ }
+
+ public void addEssentialsChatListener(String plugin, IEssentialsChatListener listener)
+ {
+ chatListener.put(plugin, listener);
}
}
diff --git a/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListener.java b/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListener.java
index 60af127ad..28adf9c2c 100644
--- a/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListener.java
+++ b/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListener.java
@@ -3,31 +3,30 @@ package com.earth2me.essentials.chat;
import com.earth2me.essentials.IEssentials;
import com.earth2me.essentials.User;
import com.earth2me.essentials.Util;
+import java.util.Map;
import java.util.logging.Logger;
import org.bukkit.Location;
import org.bukkit.Server;
import org.bukkit.World;
import org.bukkit.entity.Player;
import org.bukkit.event.player.PlayerChatEvent;
-import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerListener;
-import org.bukkit.plugin.Plugin;
-import org.bukkit.plugin.PluginManager;
-
-import org.mcteam.factions.Factions;
+//import org.mcteam.factions.Factions;
public class EssentialsChatPlayerListener extends PlayerListener
{
private static final Logger LOGGER = Logger.getLogger("Minecraft");
private final transient IEssentials ess;
private final transient Server server;
- private static Factions factions = null;
+ private final transient Map<String, IEssentialsChatListener> listeners;
+ //private static Factions factions = null;
- public EssentialsChatPlayerListener(final Server server, final IEssentials ess)
+ public EssentialsChatPlayerListener(final Server server, final IEssentials ess, final Map<String, IEssentialsChatListener> listeners)
{
this.server = server;
this.ess = ess;
+ this.listeners = listeners;
}
@Override
@@ -38,8 +37,15 @@ public class EssentialsChatPlayerListener extends PlayerListener
return;
}
- if (factions != null && (factions.shouldLetFactionsHandleThisChat(event)))
- return;
+ //if (factions != null && (factions.shouldLetFactionsHandleThisChat(event)))
+ // return;
+ for (IEssentialsChatListener listener : listeners.values())
+ {
+ if (listener.shouldHandleThisChat(event))
+ {
+ return;
+ }
+ }
final User user = ess.getUser(event.getPlayer());
@@ -112,37 +118,42 @@ public class EssentialsChatPlayerListener extends PlayerListener
}
String message = String.format(event.getFormat(), user.getDisplayName(), event.getMessage());
- if (factions != null)
- message = message.replace("{FACTION}", factions.getPlayerFactionTagRelation(event.getPlayer(), p)).replace("{FACTION_TITLE}", factions.getPlayerTitle(event.getPlayer()));
+ for (IEssentialsChatListener listener : listeners.values())
+ {
+ message = listener.modifyMessage(message);
+
+ }
+ //if (factions != null)
+ // message = message.replace("{FACTION}", factions.getPlayerFactionTagRelation(event.getPlayer(), p)).replace("{FACTION_TITLE}", factions.getPlayerTitle(event.getPlayer()));
u.sendMessage(message);
}
}
- protected static void checkFactions(PluginManager pm)
+ /*protected static void checkFactions(PluginManager pm)
{
- if (factions != null)
- return;
-
- Plugin factionsPlugin = pm.getPlugin("Factions");
- if (factionsPlugin == null)
- return;
-
- factions = (Factions)factionsPlugin;
- try
- { // make sure Factions is sufficiently up-to-date
- if (factions.hookSupportVersion() < 1)
- factions = null;
- }
- catch (NoSuchMethodError ex)
- { // if not, we can't work with it, so don't bother
- factions = null;
- }
-
- if (factions == null)
- return;
-
- // normally a good thing, but we'll skip it to let Factions handle faction tags for global messages
- //factions.handleFactionTagExternally(true);
+ if (factions != null)
+ return;
+
+ Plugin factionsPlugin = pm.getPlugin("Factions");
+ if (factionsPlugin == null)
+ return;
+
+ factions = (Factions)factionsPlugin;
+ try
+ { // make sure Factions is sufficiently up-to-date
+ if (factions.hookSupportVersion() < 1)
+ factions = null;
+ }
+ catch (NoSuchMethodError ex)
+ { // if not, we can't work with it, so don't bother
+ factions = null;
}
+
+ if (factions == null)
+ return;
+
+ // normally a good thing, but we'll skip it to let Factions handle faction tags for global messages
+ //factions.handleFactionTagExternally(true);
+ }*/
}
diff --git a/EssentialsChat/src/com/earth2me/essentials/chat/IEssentialsChatListener.java b/EssentialsChat/src/com/earth2me/essentials/chat/IEssentialsChatListener.java
new file mode 100644
index 000000000..9cd1157e0
--- /dev/null
+++ b/EssentialsChat/src/com/earth2me/essentials/chat/IEssentialsChatListener.java
@@ -0,0 +1,11 @@
+package com.earth2me.essentials.chat;
+
+import org.bukkit.event.player.PlayerChatEvent;
+
+
+public interface IEssentialsChatListener
+{
+ boolean shouldHandleThisChat(PlayerChatEvent event);
+
+ String modifyMessage(String message);
+}
diff --git a/EssentialsChat/src/plugin.yml b/EssentialsChat/src/plugin.yml
index 4ad77d230..d3f5d38df 100644
--- a/EssentialsChat/src/plugin.yml
+++ b/EssentialsChat/src/plugin.yml
@@ -7,4 +7,4 @@ website: http://www.earth2me.net:8001/
description: Provides chat control features for Essentials. Requires Permissions.
authors: [Zenexer, ementalo, Aelux, Brettflan, KimKandor, snowleo, ceulemans, Xeology]
depend: [Essentials]
-softdepend: [Factions] \ No newline at end of file
+#softdepend: [Factions] \ No newline at end of file