diff --git a/.gitignore b/.gitignore
index 18d2ca6..ef2aa85 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
+bin/
target/
.classpath
.project
diff --git a/pom.xml b/pom.xml
index 3d71a9f..fb3b54c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -55,6 +55,13 @@
jar
compile
+
+ org.bukkit
+ permissions
+ 3.1
+ jar
+ compile
+
junit
junit
diff --git a/src/main/java/hef/IRCTransport/IRCTransport.java b/src/main/java/hef/IRCTransport/IRCTransport.java
index 0598f3f..281540c 100644
--- a/src/main/java/hef/IRCTransport/IRCTransport.java
+++ b/src/main/java/hef/IRCTransport/IRCTransport.java
@@ -18,10 +18,14 @@
import org.bukkit.entity.Player;
import org.bukkit.event.Event;
import org.bukkit.event.Event.Priority;
+import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.PluginDescriptionFile;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;
+import com.nijiko.permissions.PermissionHandler;
+import com.nijikokun.bukkit.Permissions.Permissions;
+
/**
* IRCTransport for Bukkit
*
@@ -39,6 +43,7 @@ public class IRCTransport extends JavaPlugin {
private String nickSuffix = "";
private boolean verbose;
private static final Logger log = Logger.getLogger("Minecraft");
+ private PermissionHandler perms = null;
public String getIrcServer()
{
@@ -99,7 +104,15 @@ public void onEnable() {
initDatabase();
- //Event Registration
+ Plugin check = this.getServer().getPluginManager().getPlugin("Permissions");
+ if (check != null) {
+ perms = ((Permissions) check).getHandler();
+ log.info("Permissions detected");
+ } else {
+ log.info("Permissions not detected.");
+ }
+
+ //Event Registration
//establish list of players
Player[] players = getServer().getOnlinePlayers();
@@ -329,8 +342,10 @@ public String getAutoJoinKey()
* Nick prefix is only used as a default
* @return the nickPrefix
*/
- public String getNickPrefix() {
- return nickPrefix;
+ public String getNickPrefix(Player player) {
+ String prefix = nickPrefix;
+ prefix = prefix.replace("%group%", getPermGroup(player));
+ return prefix;
}
/**
@@ -338,7 +353,22 @@ public String getNickPrefix() {
* If the plugin has a suffix of "_mc" and a player with nick of "player" will become "player_mc"
* @return the nickSuffix
*/
- public String getNickSuffix() {
- return nickSuffix;
+ public String getNickSuffix(Player player) {
+ String suffix = nickSuffix;
+ suffix = suffix.replace("%group%", getPermGroup(player));
+ return suffix;
+ }
+
+ /**
+ * get the player's group
+ * @return the player's Group
+ */
+ private String getPermGroup(Player player) {
+ if (perms == null)
+ return "";
+ String result = perms.getGroup(player.getWorld().getName(), player.getName());
+ if (result == null)
+ return "";
+ return result;
}
}
diff --git a/src/main/java/hef/IRCTransport/IrcAgent.java b/src/main/java/hef/IRCTransport/IrcAgent.java
index 574c238..46f81b5 100644
--- a/src/main/java/hef/IRCTransport/IrcAgent.java
+++ b/src/main/java/hef/IRCTransport/IrcAgent.java
@@ -40,7 +40,7 @@ public IrcAgent(IRCTransport instance, Player player) {
if (null == getSettings())
{
setSettings(new AgentSettings(player));
- getSettings().setIrcNick(String.format("%s%s%s",plugin.getNickPrefix(), player.getName(), plugin.getNickSuffix()));
+ getSettings().setIrcNick(String.format("%s%s%s",plugin.getNickPrefix(player), player.getName(), plugin.getNickSuffix(player)));
}
else
{