From ecf1930efe3fd1d60b0059155b2db3b701ce4e74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nathana=C3=ABl=20Restori?= Date: Fri, 3 Jun 2011 16:50:44 +0200 Subject: [PATCH] Add a %group% "variable" --- .gitignore | 1 + pom.xml | 7 ++++ .../java/hef/IRCTransport/IRCTransport.java | 40 ++++++++++++++++--- src/main/java/hef/IRCTransport/IrcAgent.java | 2 +- 4 files changed, 44 insertions(+), 6 deletions(-) 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 {