package com.earth2me.essentials.register.payment.methods; import com.earth2me.essentials.register.payment.Method; import com.iCo6.iConomy; import com.iCo6.system.Account; import com.iCo6.system.Accounts; import com.iCo6.system.Holdings; import org.bukkit.plugin.Plugin; /** * iConomy 6 Implementation of Method * * @author Nijikokun <nijikokun@shortmail.com> (@nijikokun) @copyright (c) 2011 @license AOL license * <http://aol.nexua.org> */ public class iCo6 implements Method { private iConomy iConomy; @Override public iConomy getPlugin() { return this.iConomy; } @Override public String getName() { return "iConomy"; } @Override public String getLongName() { return getName(); } @Override public String getVersion() { return "6"; } @Override public int fractionalDigits() { return 2; } @Override public String format(double amount) { return com.iCo6.iConomy.format(amount); } @Override public boolean hasBanks() { return false; } @Override public boolean hasBank(String bank) { return false; } @Override public boolean hasAccount(String name) { return (new Accounts()).exists(name); } @Override public boolean hasBankAccount(String bank, String name) { return false; } @Override public boolean createAccount(String name) { if (hasAccount(name)) { return false; } return (new Accounts()).create(name); } @Override public boolean createAccount(String name, Double balance) { if (hasAccount(name)) { return false; } return (new Accounts()).create(name, balance); } @Override public MethodAccount getAccount(String name) { return new iCoAccount((new Accounts()).get(name)); } @Override public MethodBankAccount getBankAccount(String bank, String name) { return null; } @Override public boolean isCompatible(Plugin plugin) { return plugin.getDescription().getName().equalsIgnoreCase("iconomy") && plugin.getClass().getName().equals("com.iCo6.iConomy") && plugin instanceof iConomy; } @Override public void setPlugin(Plugin plugin) { iConomy = (iConomy)plugin; } public class iCoAccount implements MethodAccount { private final Account account; private final Holdings holdings; public iCoAccount(Account account) { this.account = account; this.holdings = account.getHoldings(); } public Account getiCoAccount() { return account; } @Override public double balance() { return this.holdings.getBalance(); } @Override public boolean set(double amount) { if (this.holdings == null) { return false; } this.holdings.setBalance(amount); return true; } @Override public boolean add(double amount) { if (this.holdings == null) { return false; } this.holdings.add(amount); return true; } @Override public boolean subtract(double amount) { if (this.holdings == null) { return false; } this.holdings.subtract(amount); return true; } @Override public boolean multiply(double amount) { if (this.holdings == null) { return false; } this.holdings.multiply(amount); return true; } @Override public boolean divide(double amount) { if (this.holdings == null) { return false; } this.holdings.divide(amount); return true; } @Override public boolean hasEnough(double amount) { return this.holdings.hasEnough(amount); } @Override public boolean hasOver(double amount) { return this.holdings.hasOver(amount); } @Override public boolean hasUnder(double amount) { return this.holdings.hasUnder(amount); } @Override public boolean isNegative() { return this.holdings.isNegative(); } @Override public boolean remove() { if (this.account == null) { return false; } this.account.remove(); return true; } } }