diff options
author | ementalo <ementalo@e251c2fe-e539-e718-e476-b85c1f46cddb> | 2011-05-26 18:57:41 +0000 |
---|---|---|
committer | ementalo <ementalo@e251c2fe-e539-e718-e476-b85c1f46cddb> | 2011-05-26 18:57:41 +0000 |
commit | faa830ef2d60c118a46d8008c159ede40ad655a3 (patch) | |
tree | b879dbeff2757ce72f69649b7e16f12411d09a68 | |
parent | 0b8f6e26945fd277f4acf08f61b4481fe0b66f2e (diff) | |
download | Essentials-faa830ef2d60c118a46d8008c159ede40ad655a3.tar Essentials-faa830ef2d60c118a46d8008c159ede40ad655a3.tar.gz Essentials-faa830ef2d60c118a46d8008c159ede40ad655a3.tar.lz Essentials-faa830ef2d60c118a46d8008c159ede40ad655a3.tar.xz Essentials-faa830ef2d60c118a46d8008c159ede40ad655a3.zip |
[trunk] Register 1.7
git-svn-id: https://svn.java.net/svn/essentials~svn/trunk@1539 e251c2fe-e539-e718-e476-b85c1f46cddb
-rw-r--r-- | Essentials/src/com/earth2me/essentials/register/payment/Methods.java | 56 | ||||
-rw-r--r-- | Essentials/src/com/earth2me/essentials/register/payment/methods/iCo5.java | 4 |
2 files changed, 52 insertions, 8 deletions
diff --git a/Essentials/src/com/earth2me/essentials/register/payment/Methods.java b/Essentials/src/com/earth2me/essentials/register/payment/Methods.java index 5bd628b7d..69625db6e 100644 --- a/Essentials/src/com/earth2me/essentials/register/payment/Methods.java +++ b/Essentials/src/com/earth2me/essentials/register/payment/Methods.java @@ -15,19 +15,20 @@ import org.bukkit.plugin.PluginManager; * @license: GNUv3 Affero License <http://www.gnu.org/licenses/agpl-3.0.html> */ public class Methods { - + private boolean self = false; private Method Method = null; + private String preferred = ""; private Set<Method> Methods = new HashSet<Method>(); private Set<String> Dependencies = new HashSet<String>(); + private Set<Method> Attachables = new HashSet<Method>(); 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<String> getDependencies() { + public Set<String> getDependencies() { return Dependencies; } @@ -53,18 +54,61 @@ public class Methods { public boolean setMethod(Plugin method) { if(hasMethod()) return true; + if(self) { self = false; return false; } - 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; - if(!plugin.isEnabled()) continue; + + if(!plugin.isEnabled()) { + this.self = true; + manager.enablePlugin(plugin); + } + + if(plugin == null) continue; Method current = this.createMethod(plugin); - if (current != null) this.Method = current; + if(current == null) continue; + + 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(hasMethod()) { + match = true; + break; + } + + if(this.preferred.isEmpty()) this.Method = attached; + + if(count == 0) { + if(this.preferred.equalsIgnoreCase(attached.getName())) + this.Method = attached; + } else { + this.Method = attached; + } + } + + count++; + } + } while(!match); } return hasMethod(); diff --git a/Essentials/src/com/earth2me/essentials/register/payment/methods/iCo5.java b/Essentials/src/com/earth2me/essentials/register/payment/methods/iCo5.java index 5cf62cfb9..f30af7dde 100644 --- a/Essentials/src/com/earth2me/essentials/register/payment/methods/iCo5.java +++ b/Essentials/src/com/earth2me/essentials/register/payment/methods/iCo5.java @@ -42,7 +42,7 @@ public class iCo5 implements Method { } public boolean hasBankAccount(String bank, String name) { - return (hasBank(bank)) ? false : this.iConomy.getBank(name).hasAccount(name); + return (!hasBank(bank)) ? false : this.iConomy.getBank(bank).hasAccount(name); } public MethodAccount getAccount(String name) { @@ -208,4 +208,4 @@ public class iCo5 implements Method { return true; } } -} +}
\ No newline at end of file |