diff --git a/Essentials/src/com/earth2me/essentials/register/payment/Methods.java b/Essentials/src/com/earth2me/essentials/register/payment/Methods.java index 69625db6e..8b71e95be 100644 --- a/Essentials/src/com/earth2me/essentials/register/payment/Methods.java +++ b/Essentials/src/com/earth2me/essentials/register/payment/Methods.java @@ -5,7 +5,8 @@ import java.util.Set; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.PluginManager; - + + /*** * Methods.java * Controls the getting / setting of methods & the method of payment used. @@ -14,113 +15,146 @@ import org.bukkit.plugin.PluginManager; * @copyright: Copyright (C) 2011 * @license: GNUv3 Affero License */ -public class Methods { - private boolean self = false; - private Method Method = null; +public class Methods +{ + private boolean self = false; + private Method Method = null; private String preferred = ""; - private Set Methods = new HashSet(); - private Set Dependencies = new HashSet(); + private Set Methods = new HashSet(); + private Set Dependencies = new HashSet(); private Set Attachables = new HashSet(); - public Methods() { - this.addMethod("iConomy", new com.earth2me.essentials.register.payment.methods.iCo4()); - this.addMethod("iConomy", new com.earth2me.essentials.register.payment.methods.iCo5()); - this.addMethod("BOSEconomy", new com.earth2me.essentials.register.payment.methods.BOSE()); - } + public Methods() + { + this.addMethod("iConomy", new com.earth2me.essentials.register.payment.methods.iCo4()); + this.addMethod("iConomy", new com.earth2me.essentials.register.payment.methods.iCo5()); + this.addMethod("BOSEconomy", new com.earth2me.essentials.register.payment.methods.BOSE()); + } - public Set getDependencies() { - return Dependencies; - } + public Set getDependencies() + { + return Dependencies; + } - public Method createMethod(Plugin plugin) { - for (Method method: Methods) { - if (method.isCompatible(plugin)) { - method.setPlugin(plugin); - return method; - } - } + public Method createMethod(Plugin plugin) + { + for (Method method : Methods) + { + if (method.isCompatible(plugin)) + { + method.setPlugin(plugin); + return method; + } + } - return null; - } + return null; + } - private void addMethod(String name, Method method) { - Dependencies.add(name); - Methods.add(method); - } + private void addMethod(String name, Method method) + { + Dependencies.add(name); + Methods.add(method); + } - public boolean hasMethod() { - return (Method != null); - } + public boolean hasMethod() + { + return (Method != null); + } - public boolean setMethod(Plugin method) { - if(hasMethod()) return true; - if(self) { self = false; return false; } + public boolean setMethod(Plugin method) + { + if (hasMethod()) return true; + if (self) + { + self = false; + return false; + } - int count = 0; - boolean match = false; - Plugin plugin = null; - PluginManager manager = method.getServer().getPluginManager(); + int count = 0; + boolean match = false; + Plugin plugin = null; + PluginManager manager = method.getServer().getPluginManager(); - for(String name: this.getDependencies()) { - if(hasMethod()) break; - if(method.getDescription().getName().equals(name)) plugin = method; else plugin = manager.getPlugin(name); - if(plugin == null) continue; + for (String name : this.getDependencies()) + { + if (hasMethod()) break; + if (method.getDescription().getName().equals(name)) plugin = method; + else plugin = manager.getPlugin(name); + if (plugin == null) continue; - if(!plugin.isEnabled()) { - this.self = true; - manager.enablePlugin(plugin); - } + if (!plugin.isEnabled()) + { + this.self = true; + if (!plugin.getDescription().getName().toLowerCase().equals("essentials")) + { + manager.enablePlugin(plugin); + } + } - if(plugin == null) continue; + if (plugin == null) continue; - Method current = this.createMethod(plugin); - if(current == null) continue; + Method current = this.createMethod(plugin); + if (current == null) continue; - if(this.preferred.isEmpty()) - this.Method = current; - else { - this.Attachables.add(current); - } - } + if (this.preferred.isEmpty()) + this.Method = current; + else + { + this.Attachables.add(current); + } + } - if(!this.preferred.isEmpty()) { - do { - if(hasMethod()) { - match = true; - } else { - for(Method attached: this.Attachables) { - if(attached == null) continue; + if (!this.preferred.isEmpty()) + { + do + { + if (hasMethod()) + { + match = true; + } + else + { + for (Method attached : this.Attachables) + { + if (attached == null) continue; - if(hasMethod()) { - match = true; - break; - } + if (hasMethod()) + { + match = true; + break; + } - if(this.preferred.isEmpty()) this.Method = attached; + if (this.preferred.isEmpty()) this.Method = attached; - if(count == 0) { - if(this.preferred.equalsIgnoreCase(attached.getName())) - this.Method = attached; - } else { - this.Method = attached; - } - } + if (count == 0) + { + if (this.preferred.equalsIgnoreCase(attached.getName())) + this.Method = attached; + } + else + { + this.Method = attached; + } + } - count++; - } - } while(!match); - } + count++; + } + } + while (!match); + } - return hasMethod(); - } + return hasMethod(); + } - public Method getMethod() { - return Method; - } + public Method getMethod() + { + return Method; + } - public boolean checkDisabled(Plugin method) { - if(!hasMethod()) return true; - if (Method.isCompatible(method)) Method = null; - return (Method == null); - } + public boolean checkDisabled(Plugin method) + { + if (!hasMethod()) return true; + if (Method.isCompatible(method)) Method = null; + return (Method == null); + } }