diff options
Diffstat (limited to 'Essentials/src/com/earth2me/essentials/EssentialsPluginListener.java')
-rw-r--r-- | Essentials/src/com/earth2me/essentials/EssentialsPluginListener.java | 64 |
1 files changed, 50 insertions, 14 deletions
diff --git a/Essentials/src/com/earth2me/essentials/EssentialsPluginListener.java b/Essentials/src/com/earth2me/essentials/EssentialsPluginListener.java index b3b5ff1c1..34632dd40 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsPluginListener.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsPluginListener.java @@ -6,40 +6,76 @@ import java.util.logging.Logger; import org.bukkit.event.server.PluginDisableEvent; import org.bukkit.event.server.PluginEnableEvent; import org.bukkit.event.server.ServerListener; +import org.bukkit.plugin.Plugin; +import org.bukkit.plugin.PluginManager; public class EssentialsPluginListener extends ServerListener { - private final Methods methods; - private static final Logger logger = Logger.getLogger("Minecraft"); + private final transient IEssentials ess; + private static final Logger LOGGER = Logger.getLogger("Minecraft"); - public EssentialsPluginListener(Methods methods) + public EssentialsPluginListener(final IEssentials ess) { - this.methods = methods; + this.ess = ess; } - + @Override - public void onPluginEnable(PluginEnableEvent event) + public void onPluginEnable(final PluginEnableEvent event) { - if (!methods.hasMethod()) + checkPermissions(); + if (!ess.getPaymentMethod().hasMethod() && ess.getPaymentMethod().setMethod(event.getPlugin())) { - if (methods.setMethod(event.getPlugin())) - { - logger.log(Level.INFO, "[Essentials] Payment method found (" + methods.getMethod().getName() + " version: " + methods.getMethod().getVersion() + ")"); - } + LOGGER.log(Level.INFO, "[Essentials] Payment method found (" + ess.getPaymentMethod().getMethod().getName() + " version: " + ess.getPaymentMethod().getMethod().getVersion() + ")"); + } } @Override public void onPluginDisable(PluginDisableEvent event) { + checkPermissions(); // Check to see if the plugin thats being disabled is the one we are using - if (methods != null && methods.hasMethod()) + if (ess.getPaymentMethod() != null && ess.getPaymentMethod().hasMethod() && ess.getPaymentMethod().checkDisabled(event.getPlugin())) { - if (methods.checkDisabled(event.getPlugin())) + LOGGER.log(Level.INFO, "[Essentials] Payment method was disabled. No longer accepting payments."); + } + } + + private void checkPermissions() + { + final PluginManager pm = ess.getServer().getPluginManager(); + final Plugin permissionsExPlugin = pm.getPlugin("PermissionsEx"); + + if (permissionsExPlugin == null || !permissionsExPlugin.isEnabled()) + { + final Plugin permissionsPlugin = pm.getPlugin("Permissions"); + if (permissionsPlugin == null || !permissionsPlugin.isEnabled()) { - logger.log(Level.INFO, "[Essentials] Payment method was disabled. No longer accepting payments."); + if (ess.getSettings().useBukkitPermissions()) + { + ess.setPermissionsHandler(new BukkitPermissionsHandler()); + } + else + { + ess.setPermissionsHandler(new ConfigPermissionsHandler(ess)); + } } + else + { + if (permissionsPlugin.getDescription().getVersion().charAt(0) == '3') + { + ess.setPermissionsHandler(new Permissions3Handler(permissionsPlugin)); + } + else + { + ess.setPermissionsHandler(new Permissions2Handler(permissionsPlugin)); + } + } + } + else + { + ess.setPermissionsHandler(new PermissionsExHandler()); } } } |