From 14ea165d5c44eace2d8a246536ecb1c0345888bb Mon Sep 17 00:00:00 2001 From: BleedObsidian Date: Wed, 17 Jul 2013 01:16:42 +0100 Subject: [PATCH] Add support for MiConomy Add support for MiConomy Fixed formmating --- lib/MiConomy.jar | Bin 0 -> 59981 bytes pom.xml | 21 +- src/net/milkbowl/vault/Vault.java | 4 + .../economy/plugins/Economy_MiConomy.java | 366 ++++++++++++++++++ 4 files changed, 384 insertions(+), 7 deletions(-) create mode 100644 lib/MiConomy.jar create mode 100644 src/net/milkbowl/vault/economy/plugins/Economy_MiConomy.java diff --git a/lib/MiConomy.jar b/lib/MiConomy.jar new file mode 100644 index 0000000000000000000000000000000000000000..2b946cfaa42fbe17ca845b73a9176fc704480135 GIT binary patch literal 59981 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 xbukkit 1.6.1-R0.1-SNAPSHOT + + com.gmail.bleedobsidian.miconomy + MiConomy + 1.0 + system + ${project.basedir}/lib/MiConomy.jar + de.hydrox.bukkit.DroxPerms DroxPerms @@ -75,12 +82,12 @@ ${project.basedir}/lib/bpermissions.jar - com.github.sebc722 - xPerms - 1.1 - system - ${project.basedir}/lib/Xperms.jar - + com.github.sebc722 + xPerms + 1.1 + system + ${project.basedir}/lib/Xperms.jar + ca.agnate.EconXP.EconXP EconXP @@ -273,7 +280,7 @@ SDFEconomy 0.1.0-SNAPSHOT - + net.ae97 TotalPermissions 0.2.1 diff --git a/src/net/milkbowl/vault/Vault.java b/src/net/milkbowl/vault/Vault.java index bb32447..2b2873c 100644 --- a/src/net/milkbowl/vault/Vault.java +++ b/src/net/milkbowl/vault/Vault.java @@ -97,6 +97,7 @@ import org.w3c.dom.Node; import org.w3c.dom.NodeList; import com.nijikokun.register.payment.Methods; +import net.milkbowl.vault.economy.plugins.Economy_MiConomy; public class Vault extends JavaPlugin { @@ -199,6 +200,9 @@ public class Vault extends JavaPlugin { * Attempts to load Economy Addons */ private void loadEconomy() { + // Try to load MiConomy + hookEconomy("MiConomy", Economy_MiConomy.class, ServicePriority.Normal, "com.gmail.bleedobsidian.miconomy.Main"); + // Try to load MultiCurrency hookEconomy("MultiCurrency", Economy_MultiCurrency.class, ServicePriority.Normal, "me.ashtheking.currency.Currency", "me.ashtheking.currency.CurrencyList"); diff --git a/src/net/milkbowl/vault/economy/plugins/Economy_MiConomy.java b/src/net/milkbowl/vault/economy/plugins/Economy_MiConomy.java new file mode 100644 index 0000000..bc56f86 --- /dev/null +++ b/src/net/milkbowl/vault/economy/plugins/Economy_MiConomy.java @@ -0,0 +1,366 @@ +/* This file is part of Vault. + + Vault is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Vault is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with Vault. If not, see . + */ +package net.milkbowl.vault.economy.plugins; + +import com.gmail.bleedobsidian.miconomy.Main; +import com.gmail.bleedobsidian.miconomy.MiConomy; +import java.util.ArrayList; +import java.util.List; +import java.util.logging.Logger; +import net.milkbowl.vault.economy.Economy; +import net.milkbowl.vault.economy.EconomyResponse; +import org.bukkit.Bukkit; +import org.bukkit.OfflinePlayer; +import org.bukkit.World; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.server.PluginDisableEvent; +import org.bukkit.event.server.PluginEnableEvent; +import org.bukkit.plugin.Plugin; + +public class Economy_MiConomy implements Economy { + private static final Logger log = Logger.getLogger("Minecraft"); + + private final String name = "MiConomy"; + + private Plugin plugin; + private MiConomy economy; + private Main miConomy; + + public Economy_MiConomy(Plugin plugin) { + this.plugin = plugin; + Bukkit.getServer().getPluginManager().registerEvents(new EconomyServerListener(this), plugin); + + // Load Plugin in case it was loaded before + if (miConomy == null) { + Plugin miConomyPlugin = plugin.getServer().getPluginManager().getPlugin("MiConomy"); + + if (miConomy != null) { + miConomy = (Main) miConomyPlugin; + economy = miConomy.getInstance(); + log.info(String.format("[%s][Economy] %s hooked.", plugin.getDescription().getName(), name)); + } + } + } + + @Override + public boolean isEnabled() { + if(miConomy == null) { + return false; + } else { + return miConomy.isEnabled(); + } + } + + @Override + public String getName() { + return name; + } + + @Override + public boolean hasBankSupport() { + return true; + } + + @Override + public int fractionalDigits() { + return 2; + } + + @Override + public String format(double amount) { + return economy.getFormattedValue(amount); + } + + @Override + public String currencyNamePlural() { + return miConomy.getPluginConfig().MoneyNamePlural; + } + + @Override + public String currencyNameSingular() { + return miConomy.getPluginConfig().MoneyName; + } + + @Override + public boolean hasAccount(String playerName) { + List worlds = plugin.getServer().getWorlds(); + + return hasAccount(playerName, worlds.get(0).getName()); + } + + @Override + public boolean hasAccount(String playerName, String worldName) { + OfflinePlayer player = plugin.getServer().getOfflinePlayer(playerName); + World world = plugin.getServer().getWorld(worldName); + + return economy.isAccountCreated(player, world); + } + + @Override + public double getBalance(String playerName) { + List worlds = plugin.getServer().getWorlds(); + + return getBalance(playerName, worlds.get(0).getName()); + } + + @Override + public double getBalance(String playerName, String worldName) { + OfflinePlayer player = plugin.getServer().getOfflinePlayer(playerName); + World world = plugin.getServer().getWorld(worldName); + + return economy.getAccountBalance(player, world); + } + + @Override + public boolean has(String playerName, double amount) { + List worlds = plugin.getServer().getWorlds(); + + return has(playerName, worlds.get(0).getName(), amount); + } + + @Override + public boolean has(String playerName, String worldName, double amount) { + OfflinePlayer player = plugin.getServer().getOfflinePlayer(playerName); + World world = plugin.getServer().getWorld(worldName); + + double playerBalance = economy.getAccountBalance(player, world); + + if(playerBalance >= amount) { + return true; + } else { + return false; + } + } + + @Override + public EconomyResponse withdrawPlayer(String playerName, double amount) { + List worlds = plugin.getServer().getWorlds(); + + return withdrawPlayer(playerName, worlds.get(0).getName(), amount); + } + + @Override + public EconomyResponse withdrawPlayer(String playerName, String worldName, double amount) { + OfflinePlayer player = plugin.getServer().getOfflinePlayer(playerName); + World world = plugin.getServer().getWorld(worldName); + + double balance = economy.getAccountBalance(player, world); + + if(getBalance(playerName, worldName) < amount) { + return new EconomyResponse(0, balance, EconomyResponse.ResponseType.FAILURE, "Insufficient funds"); + } else { + if(economy.removeAccountBalance(player, amount, world)) { + balance = economy.getAccountBalance(player, world); + + return new EconomyResponse(amount, balance, EconomyResponse.ResponseType.SUCCESS, ""); + } else { + return new EconomyResponse(0, balance, EconomyResponse.ResponseType.FAILURE, "Failed to remove funds from account"); + } + } + } + + @Override + public EconomyResponse depositPlayer(String playerName, double amount) { + List worlds = plugin.getServer().getWorlds(); + + return depositPlayer(playerName, worlds.get(0).getName(), amount); + } + + @Override + public EconomyResponse depositPlayer(String playerName, String worldName, double amount) { + OfflinePlayer player = plugin.getServer().getOfflinePlayer(playerName); + World world = plugin.getServer().getWorld(worldName); + + double balance = economy.getAccountBalance(player, world); + + if(economy.addAccountBalance(player, amount, world)) { + balance = economy.getAccountBalance(player, world); + + return new EconomyResponse(amount, balance, EconomyResponse.ResponseType.SUCCESS, ""); + } else { + return new EconomyResponse(0, balance, EconomyResponse.ResponseType.FAILURE, "Failed to add funds to account"); + } + } + + @Override + public EconomyResponse createBank(String name, String player) { + OfflinePlayer owner = plugin.getServer().getOfflinePlayer(player); + + ArrayList owners = new ArrayList(); + owners.add(owner); + + if(!economy.isBankCreated(name)) { + economy.createBank(name, owners, new ArrayList(), false); + return new EconomyResponse(0, 0, EconomyResponse.ResponseType.SUCCESS, ""); + } else { + return new EconomyResponse(0, 0, EconomyResponse.ResponseType.FAILURE, "A bank with this name already exists"); + } + } + + @Override + public EconomyResponse deleteBank(String name) { + if(economy.isBankCreated(name)) { + economy.deleteBank(name); + return new EconomyResponse(0, 0, EconomyResponse.ResponseType.SUCCESS, ""); + } else { + return new EconomyResponse(0, 0, EconomyResponse.ResponseType.FAILURE, "Bank doesn't exist"); + } + } + + @Override + public EconomyResponse bankBalance(String name) { + if(economy.isBankCreated(name)) { + double balance = economy.getBankBalance(name); + return new EconomyResponse(0, balance, EconomyResponse.ResponseType.SUCCESS, ""); + } else { + return new EconomyResponse(0, 0, EconomyResponse.ResponseType.FAILURE, "Bank doesn't exist"); + } + } + + @Override + public EconomyResponse bankHas(String name, double amount) { + if(economy.isBankCreated(name)) { + double balance = economy.getBankBalance(name); + + if(balance >= amount) { + return new EconomyResponse(0, balance, EconomyResponse.ResponseType.SUCCESS, ""); + } else { + return new EconomyResponse(0, balance, EconomyResponse.ResponseType.FAILURE, "The bank does not have enough money!"); + } + } else { + return new EconomyResponse(0, 0, EconomyResponse.ResponseType.FAILURE, "Bank doesn't exist"); + } + } + + @Override + public EconomyResponse bankWithdraw(String name, double amount) { + if(economy.isBankCreated(name)) { + economy.removeBankBalance(name, amount); + + double balance = economy.getBankBalance(name); + + return new EconomyResponse(amount, balance, EconomyResponse.ResponseType.SUCCESS, ""); + } else { + return new EconomyResponse(0, 0, EconomyResponse.ResponseType.FAILURE, "Bank doesn't exist"); + } + } + + @Override + public EconomyResponse bankDeposit(String name, double amount) { + if(economy.isBankCreated(name)) { + economy.addBankBalance(name, amount); + + double balance = economy.getBankBalance(name); + + return new EconomyResponse(amount, balance, EconomyResponse.ResponseType.SUCCESS, ""); + } else { + return new EconomyResponse(0, 0, EconomyResponse.ResponseType.FAILURE, "Bank doesn't exist"); + } + } + + @Override + public EconomyResponse isBankOwner(String name, String playerName) { + OfflinePlayer owner = plugin.getServer().getOfflinePlayer(playerName); + + if(economy.isBankCreated(name)) { + if(economy.isPlayerBankOwner(name, owner)) { + return new EconomyResponse(0, 0, EconomyResponse.ResponseType.SUCCESS, ""); + } else { + return new EconomyResponse(0, 0, EconomyResponse.ResponseType.FAILURE, "The player is not a bank owner"); + } + } else { + return new EconomyResponse(0, 0, EconomyResponse.ResponseType.FAILURE, "Bank doesn't exist"); + } + } + + @Override + public EconomyResponse isBankMember(String name, String playerName) { + OfflinePlayer owner = plugin.getServer().getOfflinePlayer(playerName); + + if(economy.isBankCreated(name)) { + if(economy.isPlayerBankMember(name, owner)) { + return new EconomyResponse(0, 0, EconomyResponse.ResponseType.SUCCESS, ""); + } else { + return new EconomyResponse(0, 0, EconomyResponse.ResponseType.FAILURE, "The player is not a bank member"); + } + } else { + return new EconomyResponse(0, 0, EconomyResponse.ResponseType.FAILURE, "Bank doesn't exist"); + } + } + + @Override + public List getBanks() { + return economy.getBanks(); + } + + @Override + public boolean createPlayerAccount(String playerName) { + List worlds = plugin.getServer().getWorlds(); + + return createPlayerAccount(playerName, worlds.get(0).getName()); + } + + @Override + public boolean createPlayerAccount(String playerName, String worldName) { + OfflinePlayer player = plugin.getServer().getOfflinePlayer(playerName); + World world = plugin.getServer().getWorld(worldName); + + if(!economy.isAccountCreated(player, world)) { + economy.createAccount(player, 0, world); + + return true; + } else { + return false; + } + } + + public class EconomyServerListener implements Listener { + Economy_MiConomy economy = null; + + public EconomyServerListener(Economy_MiConomy economy) { + this.economy = economy; + } + + @EventHandler(priority = EventPriority.MONITOR) + public void onPluginEnable(PluginEnableEvent event) { + if (economy.economy == null) { + Plugin miConomyPlugin = plugin.getServer().getPluginManager().getPlugin("MiConomy"); + + if (miConomyPlugin != null) { + economy.miConomy = (Main) miConomyPlugin; + + economy.economy = miConomy.getInstance(); + + log.info(String.format("[%s][Economy] %s hooked.", plugin.getDescription().getName(), name)); + } + } + } + + @EventHandler(priority = EventPriority.MONITOR) + public void onPluginDisable(PluginDisableEvent event) { + if (economy.economy != null) { + if (event.getPlugin().getDescription().getName().equals("MiConomy")) { + economy.miConomy = null; + economy.economy = null; + + log.info(String.format("[%s][Economy] %s unhooked.", plugin.getDescription().getName(), economy.name)); + } + } + } + } +}