diff options
Diffstat (limited to 'EssentialsGroupBridge/src/com')
-rw-r--r-- | EssentialsGroupBridge/src/com/nijikokun/bukkit/Permissions/Permissions.java | 64 |
1 files changed, 45 insertions, 19 deletions
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() { |