2011-10-11 13:15:53 +02:00
|
|
|
package com.nijikokun.register.payment.forChestShop.methods;
|
2011-05-15 18:16:25 +02:00
|
|
|
|
2011-10-11 13:15:53 +02:00
|
|
|
import com.nijikokun.register.payment.forChestShop.Method;
|
2011-05-15 18:16:25 +02:00
|
|
|
import com.iConomy.iConomy;
|
|
|
|
import com.iConomy.system.Account;
|
|
|
|
import com.iConomy.system.BankAccount;
|
|
|
|
import com.iConomy.system.Holdings;
|
|
|
|
import com.iConomy.util.Constants;
|
2011-09-29 20:29:39 +02:00
|
|
|
|
|
|
|
|
2011-05-15 18:16:25 +02:00
|
|
|
import org.bukkit.plugin.Plugin;
|
|
|
|
|
2011-08-13 12:08:34 +02:00
|
|
|
/**
|
|
|
|
* iConomy 5 Implementation of Method
|
|
|
|
*
|
|
|
|
* @author Nijikokun <nijikokun@shortmail.com> (@nijikokun)
|
|
|
|
* @copyright (c) 2011
|
|
|
|
* @license AOL license <http://aol.nexua.org>
|
|
|
|
*/
|
2011-05-15 18:16:25 +02:00
|
|
|
public class iCo5 implements Method {
|
|
|
|
private iConomy iConomy;
|
|
|
|
|
|
|
|
public iConomy getPlugin() {
|
|
|
|
return this.iConomy;
|
|
|
|
}
|
|
|
|
|
|
|
|
public String getName() {
|
|
|
|
return "iConomy";
|
|
|
|
}
|
|
|
|
|
|
|
|
public String getVersion() {
|
|
|
|
return "5";
|
|
|
|
}
|
2011-09-29 20:29:39 +02:00
|
|
|
|
2011-09-06 19:01:57 +02:00
|
|
|
public int fractionalDigits() {
|
2011-09-29 20:29:39 +02:00
|
|
|
return 2;
|
2011-09-06 19:01:57 +02:00
|
|
|
}
|
2011-05-15 18:16:25 +02:00
|
|
|
|
2011-09-22 15:56:06 +02:00
|
|
|
public String format(double amount) {
|
2011-09-06 19:01:57 +02:00
|
|
|
return com.iConomy.iConomy.format(amount);
|
2011-05-15 18:16:25 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public boolean hasBanks() {
|
|
|
|
return Constants.Banking;
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean hasBank(String bank) {
|
2011-09-06 19:01:57 +02:00
|
|
|
return (hasBanks()) && com.iConomy.iConomy.Banks.exists(bank);
|
2011-05-15 18:16:25 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public boolean hasAccount(String name) {
|
2011-09-06 19:01:57 +02:00
|
|
|
return com.iConomy.iConomy.hasAccount(name);
|
2011-05-15 18:16:25 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public boolean hasBankAccount(String bank, String name) {
|
2011-09-06 19:01:57 +02:00
|
|
|
return (hasBank(bank)) && com.iConomy.iConomy.getBank(bank).hasAccount(name);
|
2011-05-15 18:16:25 +02:00
|
|
|
}
|
|
|
|
|
2011-09-29 20:29:39 +02:00
|
|
|
public boolean createAccount(String name) {
|
2012-01-09 22:39:38 +01:00
|
|
|
return !hasAccount(name) && iConomy.Accounts.create(name);
|
|
|
|
|
2011-09-29 20:29:39 +02:00
|
|
|
}
|
|
|
|
|
2011-10-11 13:15:53 +02:00
|
|
|
public boolean createAccount(String name, double balance) {
|
2011-09-29 20:29:39 +02:00
|
|
|
if(hasAccount(name))
|
|
|
|
return false;
|
|
|
|
|
|
|
|
if(!com.iConomy.iConomy.Accounts.create(name))
|
|
|
|
return false;
|
|
|
|
|
|
|
|
getAccount(name).set(balance);
|
|
|
|
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
2011-05-15 18:16:25 +02:00
|
|
|
public MethodAccount getAccount(String name) {
|
2011-09-06 19:01:57 +02:00
|
|
|
return new iCoAccount(com.iConomy.iConomy.getAccount(name));
|
2011-05-15 18:16:25 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public MethodBankAccount getBankAccount(String bank, String name) {
|
2011-09-06 19:01:57 +02:00
|
|
|
return new iCoBankAccount(com.iConomy.iConomy.getBank(bank).getAccount(name));
|
2011-05-15 18:16:25 +02:00
|
|
|
}
|
2011-08-13 12:08:34 +02:00
|
|
|
|
2011-05-15 18:16:25 +02:00
|
|
|
public boolean isCompatible(Plugin plugin) {
|
2011-09-29 20:29:39 +02:00
|
|
|
return plugin.getDescription().getName().equalsIgnoreCase("iconomy")
|
|
|
|
&& plugin.getClass().getName().equals("com.iConomy.iConomy")
|
|
|
|
&& plugin instanceof iConomy;
|
2011-05-15 18:16:25 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public void setPlugin(Plugin plugin) {
|
2011-09-29 20:29:39 +02:00
|
|
|
iConomy = (iConomy)plugin;
|
2011-05-15 18:16:25 +02:00
|
|
|
}
|
|
|
|
|
2011-09-29 20:29:39 +02:00
|
|
|
public class iCoAccount implements MethodAccount {
|
2011-05-15 18:16:25 +02:00
|
|
|
private Account account;
|
|
|
|
private Holdings holdings;
|
|
|
|
|
|
|
|
public iCoAccount(Account account) {
|
|
|
|
this.account = account;
|
|
|
|
this.holdings = account.getHoldings();
|
|
|
|
}
|
|
|
|
|
|
|
|
public Account getiCoAccount() {
|
|
|
|
return account;
|
|
|
|
}
|
|
|
|
|
|
|
|
public double balance() {
|
|
|
|
return this.holdings.balance();
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean set(double amount) {
|
2011-09-29 20:29:39 +02:00
|
|
|
if(this.holdings == null) return false;
|
2011-05-15 18:16:25 +02:00
|
|
|
this.holdings.set(amount);
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean add(double amount) {
|
2011-09-29 20:29:39 +02:00
|
|
|
if(this.holdings == null) return false;
|
2011-05-15 18:16:25 +02:00
|
|
|
this.holdings.add(amount);
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean subtract(double amount) {
|
2011-09-29 20:29:39 +02:00
|
|
|
if(this.holdings == null) return false;
|
2011-05-15 18:16:25 +02:00
|
|
|
this.holdings.subtract(amount);
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean multiply(double amount) {
|
2011-09-29 20:29:39 +02:00
|
|
|
if(this.holdings == null) return false;
|
2011-05-15 18:16:25 +02:00
|
|
|
this.holdings.multiply(amount);
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean divide(double amount) {
|
2011-09-29 20:29:39 +02:00
|
|
|
if(this.holdings == null) return false;
|
2011-05-15 18:16:25 +02:00
|
|
|
this.holdings.divide(amount);
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean hasEnough(double amount) {
|
|
|
|
return this.holdings.hasEnough(amount);
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean hasOver(double amount) {
|
|
|
|
return this.holdings.hasOver(amount);
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean hasUnder(double amount) {
|
|
|
|
return this.holdings.hasUnder(amount);
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean isNegative() {
|
|
|
|
return this.holdings.isNegative();
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean remove() {
|
2011-09-29 20:29:39 +02:00
|
|
|
if(this.account == null) return false;
|
2011-05-15 18:16:25 +02:00
|
|
|
this.account.remove();
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2011-09-29 20:29:39 +02:00
|
|
|
public class iCoBankAccount implements MethodBankAccount {
|
2011-05-15 18:16:25 +02:00
|
|
|
private BankAccount account;
|
|
|
|
private Holdings holdings;
|
|
|
|
|
|
|
|
public iCoBankAccount(BankAccount account) {
|
|
|
|
this.account = account;
|
|
|
|
this.holdings = account.getHoldings();
|
|
|
|
}
|
|
|
|
|
|
|
|
public BankAccount getiCoBankAccount() {
|
|
|
|
return account;
|
|
|
|
}
|
|
|
|
|
|
|
|
public String getBankName() {
|
|
|
|
return this.account.getBankName();
|
|
|
|
}
|
|
|
|
|
|
|
|
public int getBankId() {
|
|
|
|
return this.account.getBankId();
|
|
|
|
}
|
|
|
|
|
|
|
|
public double balance() {
|
|
|
|
return this.holdings.balance();
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean set(double amount) {
|
2011-09-29 20:29:39 +02:00
|
|
|
if(this.holdings == null) return false;
|
2011-05-15 18:16:25 +02:00
|
|
|
this.holdings.set(amount);
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean add(double amount) {
|
2011-09-29 20:29:39 +02:00
|
|
|
if(this.holdings == null) return false;
|
2011-05-15 18:16:25 +02:00
|
|
|
this.holdings.add(amount);
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean subtract(double amount) {
|
2011-09-29 20:29:39 +02:00
|
|
|
if(this.holdings == null) return false;
|
2011-05-15 18:16:25 +02:00
|
|
|
this.holdings.subtract(amount);
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean multiply(double amount) {
|
2011-09-29 20:29:39 +02:00
|
|
|
if(this.holdings == null) return false;
|
2011-05-15 18:16:25 +02:00
|
|
|
this.holdings.multiply(amount);
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean divide(double amount) {
|
2011-09-29 20:29:39 +02:00
|
|
|
if(this.holdings == null) return false;
|
2011-05-15 18:16:25 +02:00
|
|
|
this.holdings.divide(amount);
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean hasEnough(double amount) {
|
|
|
|
return this.holdings.hasEnough(amount);
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean hasOver(double amount) {
|
|
|
|
return this.holdings.hasOver(amount);
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean hasUnder(double amount) {
|
|
|
|
return this.holdings.hasUnder(amount);
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean isNegative() {
|
|
|
|
return this.holdings.isNegative();
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean remove() {
|
2011-09-29 20:29:39 +02:00
|
|
|
if(this.account == null) return false;
|
2011-05-15 18:16:25 +02:00
|
|
|
this.account.remove();
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
}
|
2011-08-13 12:08:34 +02:00
|
|
|
}
|