Updated Economy Handling
- Remove iConomy support - Updated Vault support to 1.5 - Changed "useiconomy" setting to "useeconomy"
This commit is contained in:
parent
2b8f99c796
commit
0101a3de24
@ -16,7 +16,7 @@
|
||||
############################
|
||||
# Stargate economy options #
|
||||
############################
|
||||
# useiconomy - Whether to use an economy plugin (Uses Register to interact with all economy plugins)
|
||||
# useeconomy - Whether to use an economy plugin
|
||||
# createcost - The cost to create a gate
|
||||
# destroycost - The cost to destroy a gate
|
||||
# usecost - The cost to use a gate
|
||||
@ -40,7 +40,7 @@ handleVehicles: true
|
||||
sortLists: false
|
||||
protectEntrance: false
|
||||
signColor: BLACK
|
||||
useiconomy: false
|
||||
useeconomy: false
|
||||
createcost: 0
|
||||
destroycost: 0
|
||||
usecost: 0
|
||||
|
83
src/net/TheDgtl/Stargate/EconomyHandler.java
Normal file
83
src/net/TheDgtl/Stargate/EconomyHandler.java
Normal file
@ -0,0 +1,83 @@
|
||||
package net.TheDgtl.Stargate;
|
||||
|
||||
import net.milkbowl.vault.economy.Economy;
|
||||
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.bukkit.plugin.PluginManager;
|
||||
import org.bukkit.plugin.RegisteredServiceProvider;
|
||||
|
||||
/**
|
||||
* Stargate - A portal plugin for Bukkit
|
||||
* Copyright (C) 2011, 2012 Steven "Drakia" Scott <Contact@TheDgtl.net>
|
||||
*
|
||||
* This program 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.
|
||||
*
|
||||
* This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
public class EconomyHandler {
|
||||
public static boolean economyEnabled = false;
|
||||
public static Economy economy = null;
|
||||
public static Plugin vault = null;
|
||||
|
||||
public static int useCost = 0;
|
||||
public static int createCost = 0;
|
||||
public static int destroyCost = 0;
|
||||
public static boolean toOwner = false;
|
||||
public static boolean chargeFreeDestination = true;
|
||||
public static boolean freeGatesGreen = false;
|
||||
|
||||
public static double getBalance(String player) {
|
||||
if (!economyEnabled) return 0;
|
||||
return economy.getBalance(player);
|
||||
}
|
||||
|
||||
public static boolean chargePlayer(String player, String target, double amount) {
|
||||
if (!economyEnabled) return true;
|
||||
if(player.equals(target)) return true;
|
||||
if(economy != null) {
|
||||
if(!economy.has(player, amount)) return false;
|
||||
economy.withdrawPlayer(player, amount);
|
||||
if(target != null) economy.depositPlayer(target, amount);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static String format(int amt) {
|
||||
if (economyEnabled) {
|
||||
return economy.format(amt);
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
public static boolean setupEconomy(PluginManager pm) {
|
||||
if (!economyEnabled) return false;
|
||||
// Check for Vault
|
||||
Plugin p = pm.getPlugin("Vault");
|
||||
if (p != null && p.isEnabled()) {
|
||||
RegisteredServiceProvider<Economy> economyProvider = Stargate.server.getServicesManager().getRegistration(net.milkbowl.vault.economy.Economy.class);
|
||||
if (economyProvider != null) {
|
||||
economy = economyProvider.getProvider();
|
||||
vault = p;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
economyEnabled = false;
|
||||
return false;
|
||||
}
|
||||
|
||||
public static boolean useEconomy() {
|
||||
if(!economyEnabled || economy == null) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
@ -55,7 +55,7 @@ public class Gate {
|
||||
private int portalBlockOpen = Material.PORTAL.getId();
|
||||
private int portalBlockClosed = Material.AIR.getId();
|
||||
|
||||
// iConomy information
|
||||
// Economy information
|
||||
private int useCost = -1;
|
||||
private int createCost = -1;
|
||||
private int destroyCost = -1;
|
||||
@ -228,17 +228,17 @@ public class Gate {
|
||||
}
|
||||
|
||||
public int getUseCost() {
|
||||
if (useCost < 0) return iConomyHandler.useCost;
|
||||
if (useCost < 0) return EconomyHandler.useCost;
|
||||
return useCost;
|
||||
}
|
||||
|
||||
public Integer getCreateCost() {
|
||||
if (createCost < 0) return iConomyHandler.createCost;
|
||||
if (createCost < 0) return EconomyHandler.createCost;
|
||||
return createCost;
|
||||
}
|
||||
|
||||
public Integer getDestroyCost() {
|
||||
if (destroyCost < 0) return iConomyHandler.destroyCost;
|
||||
if (destroyCost < 0) return EconomyHandler.destroyCost;
|
||||
return destroyCost;
|
||||
}
|
||||
|
||||
@ -404,7 +404,7 @@ public class Gate {
|
||||
gate.useCost = readConfig(config, gate, file, "usecost", -1);
|
||||
gate.destroyCost = readConfig(config, gate, file, "destroycost", -1);
|
||||
gate.createCost = readConfig(config, gate, file, "createcost", -1);
|
||||
gate.toOwner = (config.containsKey("toowner") ? Boolean.valueOf(config.get("toowner")) : iConomyHandler.toOwner);
|
||||
gate.toOwner = (config.containsKey("toowner") ? Boolean.valueOf(config.get("toowner")) : EconomyHandler.toOwner);
|
||||
|
||||
if (gate.getControls().length != 2) {
|
||||
Stargate.log.log(Level.SEVERE, "Could not load Gate " + file.getName() + " - Gates must have exactly 2 control points.");
|
||||
|
@ -731,7 +731,7 @@ public class Portal {
|
||||
} else {
|
||||
int index = destinations.indexOf(destination);
|
||||
if ((index == max) && (max > 1) && (++done <= 3)) {
|
||||
if (iConomyHandler.useiConomy() && iConomyHandler.freeGatesGreen) {
|
||||
if (EconomyHandler.useEconomy() && EconomyHandler.freeGatesGreen) {
|
||||
Portal dest = Portal.getByName(destinations.get(index - 2), network);
|
||||
boolean green = Stargate.isFree(activePlayer, this, dest);
|
||||
Stargate.setLine(sign, done, (green ? ChatColor.DARK_GREEN : "") + destinations.get(index - 2));
|
||||
@ -740,7 +740,7 @@ public class Portal {
|
||||
}
|
||||
}
|
||||
if ((index > 0) && (++done <= 3)) {
|
||||
if (iConomyHandler.useiConomy() && iConomyHandler.freeGatesGreen) {
|
||||
if (EconomyHandler.useEconomy() && EconomyHandler.freeGatesGreen) {
|
||||
Portal dest = Portal.getByName(destinations.get(index - 1), network);
|
||||
boolean green = Stargate.isFree(activePlayer, this, dest);
|
||||
Stargate.setLine(sign, done, (green ? ChatColor.DARK_GREEN : "") + destinations.get(index - 1));
|
||||
@ -749,7 +749,7 @@ public class Portal {
|
||||
}
|
||||
}
|
||||
if (++done <= 3) {
|
||||
if (iConomyHandler.useiConomy() && iConomyHandler.freeGatesGreen) {
|
||||
if (EconomyHandler.useEconomy() && EconomyHandler.freeGatesGreen) {
|
||||
Portal dest = Portal.getByName(destination, network);
|
||||
boolean green = Stargate.isFree(activePlayer, this, dest);
|
||||
Stargate.setLine(sign, done, (green ? ChatColor.DARK_GREEN : "") + ">" + destination + "<");
|
||||
@ -758,7 +758,7 @@ public class Portal {
|
||||
}
|
||||
}
|
||||
if ((max >= index + 1) && (++done <= 3)) {
|
||||
if (iConomyHandler.useiConomy() && iConomyHandler.freeGatesGreen) {
|
||||
if (EconomyHandler.useEconomy() && EconomyHandler.freeGatesGreen) {
|
||||
Portal dest = Portal.getByName(destinations.get(index + 1), network);
|
||||
boolean green = Stargate.isFree(activePlayer, this, dest);
|
||||
Stargate.setLine(sign, done, (green ? ChatColor.DARK_GREEN : "") + destinations.get(index + 1));
|
||||
@ -767,7 +767,7 @@ public class Portal {
|
||||
}
|
||||
}
|
||||
if ((max >= index + 2) && (++done <= 3)) {
|
||||
if (iConomyHandler.useiConomy() && iConomyHandler.freeGatesGreen) {
|
||||
if (EconomyHandler.useEconomy() && EconomyHandler.freeGatesGreen) {
|
||||
Portal dest = Portal.getByName(destinations.get(index + 2), network);
|
||||
boolean green = Stargate.isFree(activePlayer, this, dest);
|
||||
Stargate.setLine(sign, done, (green ? ChatColor.DARK_GREEN : "") + destinations.get(index + 2));
|
||||
@ -1128,13 +1128,13 @@ public class Portal {
|
||||
if (cost > 0) {
|
||||
if (!Stargate.chargePlayer(player, null, cost)) {
|
||||
String inFundMsg = Stargate.getString("ecoInFunds");
|
||||
inFundMsg = Stargate.replaceVars(inFundMsg, new String[] {"%cost%", "%portal%"}, new String[] {iConomyHandler.format(cost), name});
|
||||
inFundMsg = Stargate.replaceVars(inFundMsg, new String[] {"%cost%", "%portal%"}, new String[] {EconomyHandler.format(cost), name});
|
||||
Stargate.sendMessage(player, inFundMsg);
|
||||
Stargate.debug("createPortal", "Insufficient Funds");
|
||||
return null;
|
||||
}
|
||||
String deductMsg = Stargate.getString("ecoDeduct");
|
||||
deductMsg = Stargate.replaceVars(deductMsg, new String[] {"%cost%", "%portal%"}, new String[] {iConomyHandler.format(cost), name});
|
||||
deductMsg = Stargate.replaceVars(deductMsg, new String[] {"%cost%", "%portal%"}, new String[] {EconomyHandler.format(cost), name});
|
||||
Stargate.sendMessage(player, deductMsg, false);
|
||||
}
|
||||
|
||||
|
@ -31,7 +31,6 @@ import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.entity.Vehicle;
|
||||
import org.bukkit.event.Event;
|
||||
import org.bukkit.event.Event.Result;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
@ -163,12 +162,10 @@ public class Stargate extends JavaPlugin {
|
||||
this.migrate();
|
||||
this.reloadGates();
|
||||
|
||||
// Check to see if iConomy is loaded yet.
|
||||
if (iConomyHandler.setupeConomy(pm)) {
|
||||
if (iConomyHandler.register != null)
|
||||
log.info("[Stargate] Register v" + iConomyHandler.register.getDescription().getVersion() + " found");
|
||||
if (iConomyHandler.economy != null)
|
||||
log.info("[Stargate] Vault v" + iConomyHandler.vault.getDescription().getVersion() + " found");
|
||||
// Check to see if Economy is loaded yet.
|
||||
if (EconomyHandler.setupEconomy(pm)) {
|
||||
if (EconomyHandler.economy != null)
|
||||
log.info("[Stargate] Vault v" + EconomyHandler.vault.getDescription().getVersion() + " found");
|
||||
}
|
||||
|
||||
getServer().getScheduler().scheduleSyncRepeatingTask(this, new SGThread(), 0L, 100L);
|
||||
@ -218,14 +215,14 @@ public class Stargate extends JavaPlugin {
|
||||
// Debug
|
||||
debug = newConfig.getBoolean("debug");
|
||||
permDebug = newConfig.getBoolean("permdebug");
|
||||
// iConomy
|
||||
iConomyHandler.useiConomy = newConfig.getBoolean("useiconomy");
|
||||
iConomyHandler.createCost = newConfig.getInt("createcost");
|
||||
iConomyHandler.destroyCost = newConfig.getInt("destroycost");
|
||||
iConomyHandler.useCost = newConfig.getInt("usecost");
|
||||
iConomyHandler.toOwner = newConfig.getBoolean("toowner");
|
||||
iConomyHandler.chargeFreeDestination = newConfig.getBoolean("chargefreedestination");
|
||||
iConomyHandler.freeGatesGreen = newConfig.getBoolean("freegatesgreen");
|
||||
// Economy
|
||||
EconomyHandler.economyEnabled = newConfig.getBoolean("useeconomy");
|
||||
EconomyHandler.createCost = newConfig.getInt("createcost");
|
||||
EconomyHandler.destroyCost = newConfig.getInt("destroycost");
|
||||
EconomyHandler.useCost = newConfig.getInt("usecost");
|
||||
EconomyHandler.toOwner = newConfig.getBoolean("toowner");
|
||||
EconomyHandler.chargeFreeDestination = newConfig.getBoolean("chargefreedestination");
|
||||
EconomyHandler.freeGatesGreen = newConfig.getBoolean("freegatesgreen");
|
||||
|
||||
this.saveConfig();
|
||||
}
|
||||
@ -460,7 +457,7 @@ public class Stargate extends JavaPlugin {
|
||||
// Player gets free use
|
||||
if (hasPerm(player, "stargate.free") || Stargate.hasPerm(player, "stargate.free.use")) return true;
|
||||
// Don't charge for free destination gates
|
||||
if (dest != null && !iConomyHandler.chargeFreeDestination && dest.isFree()) return true;
|
||||
if (dest != null && !EconomyHandler.chargeFreeDestination && dest.isFree()) return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -572,22 +569,22 @@ public class Stargate extends JavaPlugin {
|
||||
public static boolean chargePlayer(Player player, String target, int cost) {
|
||||
// If cost is 0
|
||||
if (cost == 0) return true;
|
||||
// iConomy is disabled
|
||||
if (!iConomyHandler.useiConomy()) return true;
|
||||
// Economy is disabled
|
||||
if (!EconomyHandler.useEconomy()) return true;
|
||||
// Charge player
|
||||
return iConomyHandler.chargePlayer(player.getName(), target, cost);
|
||||
return EconomyHandler.chargePlayer(player.getName(), target, cost);
|
||||
}
|
||||
|
||||
/*
|
||||
* Determine the cost of a gate
|
||||
*/
|
||||
public static int getUseCost(Player player, Portal src, Portal dest) {
|
||||
// Not using iConomy
|
||||
if (!iConomyHandler.useiConomy()) return 0;
|
||||
// Not using Economy
|
||||
if (!EconomyHandler.useEconomy()) return 0;
|
||||
// Portal is free
|
||||
if (src.isFree()) return 0;
|
||||
// Not charging for free destinations
|
||||
if (dest != null && !iConomyHandler.chargeFreeDestination && dest.isFree()) return 0;
|
||||
if (dest != null && !EconomyHandler.chargeFreeDestination && dest.isFree()) return 0;
|
||||
// Cost is 0 if the player owns this gate and funds go to the owner
|
||||
if (src.getGate().getToOwner() && src.getOwner().equalsIgnoreCase(player.getName())) return 0;
|
||||
// Player gets free gate use
|
||||
@ -600,8 +597,8 @@ public class Stargate extends JavaPlugin {
|
||||
* Determine the cost to create the gate
|
||||
*/
|
||||
public static int getCreateCost(Player player, Gate gate) {
|
||||
// Not using iConomy
|
||||
if (!iConomyHandler.useiConomy()) return 0;
|
||||
// Not using Economy
|
||||
if (!EconomyHandler.useEconomy()) return 0;
|
||||
// Player gets free gate destruction
|
||||
if (hasPerm(player, "stargate.free") || hasPerm(player, "stargate.free.create")) return 0;
|
||||
|
||||
@ -612,8 +609,8 @@ public class Stargate extends JavaPlugin {
|
||||
* Determine the cost to destroy the gate
|
||||
*/
|
||||
public static int getDestroyCost(Player player, Gate gate) {
|
||||
// Not using iConomy
|
||||
if (!iConomyHandler.useiConomy()) return 0;
|
||||
// Not using Economy
|
||||
if (!EconomyHandler.useEconomy()) return 0;
|
||||
// Player gets free gate destruction
|
||||
if (hasPerm(player, "stargate.free") || hasPerm(player, "stargate.free.destroy")) return 0;
|
||||
|
||||
@ -696,13 +693,13 @@ public class Stargate extends JavaPlugin {
|
||||
return;
|
||||
}
|
||||
String deductMsg = Stargate.getString("ecoDeduct");
|
||||
deductMsg = Stargate.replaceVars(deductMsg, new String[] {"%cost%", "%portal%"}, new String[] {iConomyHandler.format(cost), portal.getName()});
|
||||
deductMsg = Stargate.replaceVars(deductMsg, new String[] {"%cost%", "%portal%"}, new String[] {EconomyHandler.format(cost), portal.getName()});
|
||||
sendMessage(player, deductMsg, false);
|
||||
if (target != null) {
|
||||
Player p = server.getPlayer(target);
|
||||
if (p != null) {
|
||||
String obtainedMsg = Stargate.getString("ecoObtain");
|
||||
obtainedMsg = Stargate.replaceVars(obtainedMsg, new String[] {"%cost%", "%portal%"}, new String[] {iConomyHandler.format(cost), portal.getName()});
|
||||
obtainedMsg = Stargate.replaceVars(obtainedMsg, new String[] {"%cost%", "%portal%"}, new String[] {EconomyHandler.format(cost), portal.getName()});
|
||||
Stargate.sendMessage(p, obtainedMsg, false);
|
||||
}
|
||||
}
|
||||
@ -825,13 +822,13 @@ public class Stargate extends JavaPlugin {
|
||||
return;
|
||||
}
|
||||
String deductMsg = Stargate.getString("ecoDeduct");
|
||||
deductMsg = Stargate.replaceVars(deductMsg, new String[] {"%cost%", "%portal%"}, new String[] {iConomyHandler.format(cost), portal.getName()});
|
||||
deductMsg = Stargate.replaceVars(deductMsg, new String[] {"%cost%", "%portal%"}, new String[] {EconomyHandler.format(cost), portal.getName()});
|
||||
sendMessage(player, deductMsg, false);
|
||||
if (target != null) {
|
||||
Player p = server.getPlayer(target);
|
||||
if (p != null) {
|
||||
String obtainedMsg = Stargate.getString("ecoObtain");
|
||||
obtainedMsg = Stargate.replaceVars(obtainedMsg, new String[] {"%cost%", "%portal%"}, new String[] {iConomyHandler.format(cost), portal.getName()});
|
||||
obtainedMsg = Stargate.replaceVars(obtainedMsg, new String[] {"%cost%", "%portal%"}, new String[] {EconomyHandler.format(cost), portal.getName()});
|
||||
Stargate.sendMessage(p, obtainedMsg, false);
|
||||
}
|
||||
}
|
||||
@ -1084,11 +1081,11 @@ public class Stargate extends JavaPlugin {
|
||||
|
||||
if (cost > 0) {
|
||||
String deductMsg = Stargate.getString("ecoDeduct");
|
||||
deductMsg = Stargate.replaceVars(deductMsg, new String[] {"%cost%", "%portal%"}, new String[] {iConomyHandler.format(cost), portal.getName()});
|
||||
deductMsg = Stargate.replaceVars(deductMsg, new String[] {"%cost%", "%portal%"}, new String[] {EconomyHandler.format(cost), portal.getName()});
|
||||
sendMessage(player, deductMsg, false);
|
||||
} else if (cost < 0) {
|
||||
String refundMsg = Stargate.getString("ecoRefund");
|
||||
refundMsg = Stargate.replaceVars(refundMsg, new String[] {"%cost%", "%portal%"}, new String[] {iConomyHandler.format(-cost), portal.getName()});
|
||||
refundMsg = Stargate.replaceVars(refundMsg, new String[] {"%cost%", "%portal%"}, new String[] {EconomyHandler.format(-cost), portal.getName()});
|
||||
sendMessage(player, refundMsg, false);
|
||||
}
|
||||
}
|
||||
@ -1274,18 +1271,15 @@ public class Stargate extends JavaPlugin {
|
||||
private class sListener implements Listener {
|
||||
@EventHandler
|
||||
public void onPluginEnable(PluginEnableEvent event) {
|
||||
if (iConomyHandler.setupRegister(event.getPlugin())) {
|
||||
log.info("[Stargate] Register v" + iConomyHandler.register.getDescription().getVersion() + " found");
|
||||
}
|
||||
if (iConomyHandler.setupVault(event.getPlugin())) {
|
||||
log.info("[Stargate] Vault v" + iConomyHandler.vault.getDescription().getVersion() + " found");
|
||||
if (EconomyHandler.setupEconomy(getServer().getPluginManager())) {
|
||||
log.info("[Stargate] Vault v" + EconomyHandler.vault.getDescription().getVersion() + " found");
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPluginDisable(PluginDisableEvent event) {
|
||||
if (iConomyHandler.checkLost(event.getPlugin())) {
|
||||
log.info("[Stargate] Register/Vault plugin lost.");
|
||||
if (event.getPlugin().equals(EconomyHandler.vault)) {
|
||||
log.info("[Stargate] Vault plugin lost.");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1369,19 +1363,16 @@ public class Stargate extends JavaPlugin {
|
||||
lang.setLang(langName);
|
||||
lang.reload();
|
||||
|
||||
// Load iConomy support if enabled/clear if disabled
|
||||
if (iConomyHandler.useiConomy && iConomyHandler.register == null && iConomyHandler.economy == null) {
|
||||
if (iConomyHandler.setupeConomy(pm)) {
|
||||
if (iConomyHandler.register != null)
|
||||
log.info("[Stargate] Register v" + iConomyHandler.register.getDescription().getVersion() + " found");
|
||||
if (iConomyHandler.economy != null)
|
||||
log.info("[Stargate] Vault v" + iConomyHandler.vault.getDescription().getVersion() + " found");
|
||||
// Load Economy support if enabled/clear if disabled
|
||||
if (EconomyHandler.economyEnabled && EconomyHandler.economy == null) {
|
||||
if (EconomyHandler.setupEconomy(pm)) {
|
||||
if (EconomyHandler.economy != null)
|
||||
log.info("[Stargate] Vault v" + EconomyHandler.vault.getDescription().getVersion() + " found");
|
||||
}
|
||||
}
|
||||
if (!iConomyHandler.useiConomy) {
|
||||
iConomyHandler.vault = null;
|
||||
iConomyHandler.register = null;
|
||||
iConomyHandler.economy = null;
|
||||
if (!EconomyHandler.economyEnabled) {
|
||||
EconomyHandler.vault = null;
|
||||
EconomyHandler.economy = null;
|
||||
}
|
||||
|
||||
// Enable the required channels for Bungee support
|
||||
|
@ -1,181 +0,0 @@
|
||||
package net.TheDgtl.Stargate;
|
||||
|
||||
import net.milkbowl.vault.Vault;
|
||||
import net.milkbowl.vault.economy.Economy;
|
||||
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.bukkit.plugin.PluginManager;
|
||||
import org.bukkit.plugin.RegisteredServiceProvider;
|
||||
|
||||
import com.nijikokun.register.Register;
|
||||
import com.nijikokun.register.payment.Method;
|
||||
import com.nijikokun.register.payment.Method.MethodAccount;
|
||||
import com.nijikokun.register.payment.Methods;
|
||||
|
||||
/**
|
||||
* Stargate - A portal plugin for Bukkit
|
||||
* Copyright (C) 2011, 2012 Steven "Drakia" Scott <Contact@TheDgtl.net>
|
||||
*
|
||||
* This program 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.
|
||||
*
|
||||
* This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
public class iConomyHandler {
|
||||
public static boolean useiConomy = false;
|
||||
public static Register register = null;
|
||||
public static Vault vault = null;
|
||||
public static Economy economy = null;
|
||||
|
||||
public static int useCost = 0;
|
||||
public static int createCost = 0;
|
||||
public static int destroyCost = 0;
|
||||
public static boolean toOwner = false;
|
||||
public static boolean chargeFreeDestination = true;
|
||||
public static boolean freeGatesGreen = false;
|
||||
|
||||
public static double getBalance(String player) {
|
||||
if (!useiConomy) return 0;
|
||||
if (economy != null) {
|
||||
return economy.getBalance(player);
|
||||
}
|
||||
if (register != null) {
|
||||
Method method = Methods.getMethod();
|
||||
if (method == null) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
MethodAccount acc = method.getAccount(player);
|
||||
if (acc == null) {
|
||||
Stargate.debug("ich::getBalance", "Error fetching Register account for " + player);
|
||||
return 0;
|
||||
}
|
||||
return acc.balance();
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
public static boolean chargePlayer(String player, String target, double amount) {
|
||||
if (!useiConomy) return true;
|
||||
if (economy != null) {
|
||||
if (player.equals(target)) return true;
|
||||
|
||||
if (!economy.has(player, amount)) return false;
|
||||
economy.withdrawPlayer(player, amount);
|
||||
|
||||
if (target != null) {
|
||||
economy.depositPlayer(target, amount);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
if (register != null) {
|
||||
// Check for a payment method
|
||||
Method method = Methods.getMethod();
|
||||
if (method == null) {
|
||||
return true;
|
||||
}
|
||||
// No point going from a player to themself
|
||||
if (player.equals(target)) return true;
|
||||
|
||||
MethodAccount acc = method.getAccount(player);
|
||||
if (acc == null) {
|
||||
Stargate.debug("ich::chargePlayer", "Error fetching Register account for " + player);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!acc.hasEnough(amount)) return false;
|
||||
acc.subtract(amount);
|
||||
|
||||
if (target != null) {
|
||||
MethodAccount tAcc = method.getAccount(target);
|
||||
if (tAcc != null) {
|
||||
tAcc.add(amount);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public static boolean useiConomy() {
|
||||
if (!useiConomy) return false;
|
||||
if (economy != null) return true;
|
||||
if (register != null && Methods.getMethod() != null) return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
public static String format(int amt) {
|
||||
if (economy != null) {
|
||||
return economy.format(amt);
|
||||
}
|
||||
if (register != null) {
|
||||
Method method = Methods.getMethod();
|
||||
if (method == null) {
|
||||
return Integer.toString(amt);
|
||||
}
|
||||
return method.format(amt);
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
public static boolean setupeConomy(PluginManager pm) {
|
||||
if (!useiConomy) return false;
|
||||
// Check for Vault
|
||||
Plugin p = pm.getPlugin("Vault");
|
||||
if (p != null)
|
||||
return setupVault(p);
|
||||
// Check for Register
|
||||
p = pm.getPlugin("Register");
|
||||
if (p != null)
|
||||
return setupRegister(p);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public static boolean setupVault(Plugin p) {
|
||||
if (!useiConomy) return false;
|
||||
if (register != null) return false;
|
||||
if (p == null || !p.isEnabled()) return false;
|
||||
if (!p.getDescription().getName().equals("Vault")) return false;
|
||||
|
||||
RegisteredServiceProvider<Economy> economyProvider = Stargate.server.getServicesManager().getRegistration(net.milkbowl.vault.economy.Economy.class);
|
||||
if (economyProvider != null) {
|
||||
vault = (Vault)p;
|
||||
economy = economyProvider.getProvider();
|
||||
}
|
||||
|
||||
return (economy != null);
|
||||
}
|
||||
|
||||
public static boolean setupRegister(Plugin p) {
|
||||
if (!useiConomy) return false;
|
||||
if (vault != null) return false;
|
||||
if (p == null || !p.isEnabled()) return false;
|
||||
if (!p.getDescription().getName().equals("Register")) return false;
|
||||
register = (Register)p;
|
||||
return true;
|
||||
}
|
||||
|
||||
public static boolean checkLost(Plugin p) {
|
||||
if (p.equals(register)) {
|
||||
register = null;
|
||||
return true;
|
||||
}
|
||||
if (p.equals(vault)) {
|
||||
economy = null;
|
||||
vault = null;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user