package com.earth2me.essentials.register.payment.methods; import com.earth2me.essentials.register.payment.Method; import me.ashtheking.currency.Currency; import me.ashtheking.currency.CurrencyList; import org.bukkit.plugin.Plugin; /** * MultiCurrency Method implementation. * * @author Acrobot @copyright (c) 2011 @license AOL license <http://aol.nexua.org> */ public class MCUR implements Method { private Currency currencyList; @Override public Object getPlugin() { return this.currencyList; } @Override public String getName() { return "MultiCurrency"; } @Override public String getLongName() { return getName(); } @Override public String getVersion() { return "0.09"; } @Override public int fractionalDigits() { return -1; } @Override public String format(double amount) { return amount + " Currency"; } @Override public boolean hasBanks() { return false; } @Override public boolean hasBank(String bank) { return false; } @Override public boolean hasAccount(String name) { return true; } @Override public boolean hasBankAccount(String bank, String name) { return false; } @Override public boolean createAccount(String name) { CurrencyList.setValue((String)CurrencyList.maxCurrency(name)[0], name, 0); return true; } @Override public boolean createAccount(String name, Double balance) { CurrencyList.setValue((String)CurrencyList.maxCurrency(name)[0], name, balance); return true; } @Override public MethodAccount getAccount(String name) { return new MCurrencyAccount(name); } @Override public MethodBankAccount getBankAccount(String bank, String name) { return null; } @Override public boolean isCompatible(Plugin plugin) { return (plugin.getDescription().getName().equalsIgnoreCase("Currency") || plugin.getDescription().getName().equalsIgnoreCase("MultiCurrency")) && plugin instanceof Currency; } @Override public void setPlugin(Plugin plugin) { currencyList = (Currency)plugin; } public class MCurrencyAccount implements MethodAccount { private final String name; public MCurrencyAccount(String name) { this.name = name; } @Override public double balance() { return CurrencyList.getValue((String)CurrencyList.maxCurrency(name)[0], name); } @Override public boolean set(double amount) { CurrencyList.setValue((String)CurrencyList.maxCurrency(name)[0], name, amount); return true; } @Override public boolean add(double amount) { return CurrencyList.add(name, amount); } @Override public boolean subtract(double amount) { return CurrencyList.subtract(name, amount); } @Override public boolean multiply(double amount) { return CurrencyList.multiply(name, amount); } @Override public boolean divide(double amount) { return CurrencyList.divide(name, amount); } @Override public boolean hasEnough(double amount) { return CurrencyList.hasEnough(name, amount); } @Override public boolean hasOver(double amount) { return CurrencyList.hasOver(name, amount); } @Override public boolean hasUnder(double amount) { return CurrencyList.hasUnder(name, amount); } @Override public boolean isNegative() { return CurrencyList.isNegative(name); } @Override public boolean remove() { return CurrencyList.remove(name); } } }