summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorementalo <ementalo@gmx.co.uk>2011-07-02 23:54:43 +0100
committerementalo <ementalo@gmx.co.uk>2011-07-02 23:54:43 +0100
commitd85d8cb712042f1c7b73b6a9415a65efa091967e (patch)
treec46d8681d4dd7f35572bd2ad7b0d161f5176810f
parentd6cc04018bc5372195e0a75a4c0ca8ef832f25e7 (diff)
parent4dfc998aa35cc9fb6a3e126f1513510ccfd48411 (diff)
downloadEssentials-d85d8cb712042f1c7b73b6a9415a65efa091967e.tar
Essentials-d85d8cb712042f1c7b73b6a9415a65efa091967e.tar.gz
Essentials-d85d8cb712042f1c7b73b6a9415a65efa091967e.tar.lz
Essentials-d85d8cb712042f1c7b73b6a9415a65efa091967e.tar.xz
Essentials-d85d8cb712042f1c7b73b6a9415a65efa091967e.zip
Merge branch 'master' of github.com:essentials/Essentials
-rw-r--r--EssentialsChat/nbproject/project.properties4
-rw-r--r--EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChat.java3
-rw-r--r--EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListener.java42
-rw-r--r--EssentialsChat/src/plugin.yml19
4 files changed, 57 insertions, 11 deletions
diff --git a/EssentialsChat/nbproject/project.properties b/EssentialsChat/nbproject/project.properties
index 08df72abc..2e51b176b 100644
--- a/EssentialsChat/nbproject/project.properties
+++ b/EssentialsChat/nbproject/project.properties
@@ -27,11 +27,13 @@ dist.javadoc.dir=${dist.dir}/javadoc
endorsed.classpath=
excludes=
file.reference.bukkit-0.0.1-SNAPSHOT.jar=../lib/bukkit-0.0.1-SNAPSHOT.jar
+file.reference.Factions.jar=../lib/Factions.jar
includes=**
jar.compress=false
javac.classpath=\
${reference.Essentials.jar}:\
- ${file.reference.bukkit-0.0.1-SNAPSHOT.jar}
+ ${file.reference.bukkit-0.0.1-SNAPSHOT.jar}:\
+ ${file.reference.Factions.jar}
# Space-separated list of extra javac options
javac.compilerargs=
javac.deprecation=false
diff --git a/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChat.java b/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChat.java
index 428413661..5fb8e9842 100644
--- a/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChat.java
+++ b/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChat.java
@@ -17,6 +17,9 @@ public class EssentialsChat extends JavaPlugin
public void onEnable()
{
final PluginManager pluginManager = getServer().getPluginManager();
+
+ EssentialsChatPlayerListener.checkFactions(pluginManager);
+
final EssentialsChatPlayerListener playerListener = new EssentialsChatPlayerListener(getServer());
pluginManager.registerEvent(Type.PLAYER_JOIN, playerListener, Priority.Lowest, this);
pluginManager.registerEvent(Type.PLAYER_CHAT, playerListener, Priority.Highest, this);
diff --git a/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListener.java b/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListener.java
index 211733818..57c41de72 100644
--- a/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListener.java
+++ b/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListener.java
@@ -13,6 +13,10 @@ import org.bukkit.event.player.PlayerChatEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerListener;
import org.bukkit.event.player.PlayerRespawnEvent;
+import org.bukkit.plugin.Plugin;
+import org.bukkit.plugin.PluginManager;
+
+import org.mcteam.factions.Factions;
public class EssentialsChatPlayerListener extends PlayerListener
@@ -20,6 +24,7 @@ public class EssentialsChatPlayerListener extends PlayerListener
private static final Logger LOGGER = Logger.getLogger("Minecraft");
private final transient IEssentials ess = Essentials.getStatic();
private final transient Server server;
+ private static Factions factions = null;
public EssentialsChatPlayerListener(final Server server)
{
@@ -48,6 +53,10 @@ public class EssentialsChatPlayerListener extends PlayerListener
{
return;
}
+
+ if (factions != null && (factions.shouldLetFactionsHandleThisChat(event)))
+ return;
+
final User user = ess.getUser(event.getPlayer());
updateDisplayName(user);
@@ -118,8 +127,39 @@ public class EssentialsChatPlayerListener extends PlayerListener
continue;
}
}
+ 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()));
- u.sendMessage(String.format(event.getFormat(), user.getDisplayName(), event.getMessage()));
+ u.sendMessage(message);
}
}
+
+ 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);
+ }
}
diff --git a/EssentialsChat/src/plugin.yml b/EssentialsChat/src/plugin.yml
index 0be4e1c75..4ad77d230 100644
--- a/EssentialsChat/src/plugin.yml
+++ b/EssentialsChat/src/plugin.yml
@@ -1,9 +1,10 @@
-# This determines the command prefix when there are conflicts (/name:home, /name:help, etc.)
-name: EssentialsChat
-main: com.earth2me.essentials.chat.EssentialsChat
-# Note to developers: This next line cannot change, or the automatic versioning system will break.
-version: TeamCity
-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] \ No newline at end of file
+# This determines the command prefix when there are conflicts (/name:home, /name:help, etc.)
+name: EssentialsChat
+main: com.earth2me.essentials.chat.EssentialsChat
+# Note to developers: This next line cannot change, or the automatic versioning system will break.
+version: TeamCity
+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