From ed06b29dd75e1abbfb39103c4bf8a8b933aa2d26 Mon Sep 17 00:00:00 2001 From: snowleo Date: Sat, 25 Jun 2011 14:18:45 +0200 Subject: GroupManager fix (The commands didn't work) This is the last fix for GroupManager, we will switch to Permissions 3 soon. --- .../nijikokun/bukkit/Permissions/Permissions.java | 64 +++++++++++++++------- .../permissions/NijikoPermissionsProxy.java | 6 ++ 2 files changed, 51 insertions(+), 19 deletions(-) (limited to 'EssentialsGroupBridge') diff --git a/EssentialsGroupBridge/src/com/nijikokun/bukkit/Permissions/Permissions.java b/EssentialsGroupBridge/src/com/nijikokun/bukkit/Permissions/Permissions.java index bca7a89ed..cf0d09a35 100644 --- a/EssentialsGroupBridge/src/com/nijikokun/bukkit/Permissions/Permissions.java +++ b/EssentialsGroupBridge/src/com/nijikokun/bukkit/Permissions/Permissions.java @@ -7,8 +7,12 @@ import java.util.logging.Logger; import org.anjocaido.groupmanager.GroupManager; import org.anjocaido.groupmanager.permissions.NijikoPermissionsProxy; import org.bukkit.Server; +import org.bukkit.event.Event.Priority; +import org.bukkit.event.Event.Type; import org.bukkit.event.player.PlayerChatEvent; import org.bukkit.event.player.PlayerListener; +import org.bukkit.event.server.PluginEnableEvent; +import org.bukkit.event.server.ServerListener; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.PluginDescriptionFile; import org.bukkit.plugin.java.JavaPlugin; @@ -55,23 +59,32 @@ public class Permissions extends JavaPlugin { PluginDescriptionFile pdfFile = this.getDescription(); if (Security == null) {//make sure we have only one instance - Plugin p = (Plugin)(this.getServer() == null ? new GroupManager() : this.getServer().getPluginManager().getPlugin("GroupManager")); - if (p != null) { - if (!p.isEnabled()) { - if (this.getServer() == null) { - p.onEnable(); - } else { - this.getServer().getPluginManager().enablePlugin(p); - } - } - GroupManager gm = (GroupManager) p; - groupManager = gm; - Security = new NijikoPermissionsProxy(gm); - } else { - System.err.println("OOOPS! Fake " + pdfFile.getName() + " version " + pdfFile.getVersion() + " couldn't find GroupManager!"); - this.getPluginLoader().disablePlugin(this); - } - } + Security = new NijikoPermissionsProxy(null); + } + + Plugin p = (this.getServer() == null) ? null : this.getServer().getPluginManager().getPlugin("GroupManager"); + if (p != null) { + if (p.isEnabled()) { + setGM(p); + } else { + if (this.getServer() != null) { + this.getServer().getPluginManager().registerEvent(Type.PLUGIN_ENABLE, new ServerListener() { + + @Override + public void onPluginEnable(PluginEnableEvent event) + { + if (event.getPlugin().getDescription().getName().equals("GroupManager")) { + Permissions.this.setGM(event.getPlugin()); + } + } + + }, Priority.Normal, this); + } + } + } else { + System.err.println("OOOPS! Fake " + pdfFile.getName() + " version " + pdfFile.getVersion() + " couldn't find GroupManager!"); + this.getPluginLoader().disablePlugin(this); + } // EXAMPLE: Custom code, here we just output some info so we can check all is well if (pdfFile != null) System.out.println("Fake " + pdfFile.getName() + " version " + pdfFile.getVersion() + " is enabled!"); @@ -81,17 +94,30 @@ public class Permissions extends JavaPlugin { //compiled code //throw new RuntimeException("Compiled Code"); } + + private void setGM(Plugin p) { + groupManager = (GroupManager)p; + ((NijikoPermissionsProxy)Security).setGM(p); + } public PermissionHandler getHandler() { //compiled code //throw new RuntimeException("Compiled Code"); //System.out.println("Alguem chamou o handler"); - checkEnable(); + if (Security == null) + { + Security = new NijikoPermissionsProxy(null); + } + //checkEnable(); return Security; } public void setupPermissions() { - checkEnable(); + if (Security == null) + { + Security = new NijikoPermissionsProxy(null); + } + //checkEnable(); } private void checkEnable() { diff --git a/EssentialsGroupBridge/src/org/anjocaido/groupmanager/permissions/NijikoPermissionsProxy.java b/EssentialsGroupBridge/src/org/anjocaido/groupmanager/permissions/NijikoPermissionsProxy.java index 18da0cd56..e26c10711 100644 --- a/EssentialsGroupBridge/src/org/anjocaido/groupmanager/permissions/NijikoPermissionsProxy.java +++ b/EssentialsGroupBridge/src/org/anjocaido/groupmanager/permissions/NijikoPermissionsProxy.java @@ -9,6 +9,7 @@ import java.io.File; import java.util.Map; import org.anjocaido.groupmanager.GroupManager; import org.bukkit.entity.Player; +import org.bukkit.plugin.Plugin; import org.bukkit.util.config.Configuration; /** @@ -425,4 +426,9 @@ public class NijikoPermissionsProxy extends Control { return plugin.getWorldsHolder().getDefaultWorld().getPermissionsHandler().getPermissionDouble(name,permission); } + public void setGM(Plugin p) + { + this.plugin = (GroupManager)p; + } + } -- cgit v1.2.3