Support for iConomy 6 and other economy plugins added through Register support (with new conf.json setting "econRegisterEnabled", defaults to false); you will need to have the Register plugin on your server
This commit is contained in:
parent
2aa51a4781
commit
492d983464
BIN
lib/Register.jar
Normal file
BIN
lib/Register.jar
Normal file
Binary file not shown.
Binary file not shown.
@ -184,6 +184,7 @@ public class Conf {
|
|||||||
public static String capePeaceful = "https://github.com/MassiveCraft/Factions/raw/master/capes/peaceful.png";
|
public static String capePeaceful = "https://github.com/MassiveCraft/Factions/raw/master/capes/peaceful.png";
|
||||||
|
|
||||||
// Economy settings
|
// Economy settings
|
||||||
|
public static boolean econRegisterEnabled = false;
|
||||||
public static boolean econIConomyEnabled = false;
|
public static boolean econIConomyEnabled = false;
|
||||||
public static boolean econEssentialsEcoEnabled = false;
|
public static boolean econEssentialsEcoEnabled = false;
|
||||||
public static double econCostClaimWilderness = 30.0;
|
public static double econCostClaimWilderness = 30.0;
|
||||||
|
@ -6,11 +6,14 @@ import org.bukkit.plugin.Plugin;
|
|||||||
import com.massivecraft.factions.listeners.FactionsServerListener;
|
import com.massivecraft.factions.listeners.FactionsServerListener;
|
||||||
|
|
||||||
import com.earth2me.essentials.api.Economy;
|
import com.earth2me.essentials.api.Economy;
|
||||||
|
import com.nijikokun.register.payment.Methods;
|
||||||
|
import com.nijikokun.register.payment.Method.MethodAccount;
|
||||||
import com.iConomy.*;
|
import com.iConomy.*;
|
||||||
import com.iConomy.system.*;
|
import com.iConomy.system.*;
|
||||||
|
|
||||||
|
|
||||||
public class Econ {
|
public class Econ {
|
||||||
|
private static boolean registerUse = false;
|
||||||
private static boolean iConomyUse = false;
|
private static boolean iConomyUse = false;
|
||||||
private static boolean essEcoUse = false;
|
private static boolean essEcoUse = false;
|
||||||
|
|
||||||
@ -24,6 +27,12 @@ public class Econ {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!registerHooked()) {
|
||||||
|
Plugin plug = factions.getServer().getPluginManager().getPlugin("Register");
|
||||||
|
if (plug != null && plug.getClass().getName().equals("com.nijikokun.register.Register") && plug.isEnabled()) {
|
||||||
|
registerSet(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
if (!iConomyHooked()) {
|
if (!iConomyHooked()) {
|
||||||
Plugin plug = factions.getServer().getPluginManager().getPlugin("iConomy");
|
Plugin plug = factions.getServer().getPluginManager().getPlugin("iConomy");
|
||||||
if (plug != null && plug.getClass().getName().equals("com.iConomy.iConomy") && plug.isEnabled()) {
|
if (plug != null && plug.getClass().getName().equals("com.iConomy.iConomy") && plug.isEnabled()) {
|
||||||
@ -38,9 +47,19 @@ public class Econ {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void registerSet(boolean enable) {
|
||||||
|
registerUse = enable;
|
||||||
|
if (enable) {
|
||||||
|
Factions.log("Register hook available, "+(Conf.econRegisterEnabled ? "and interface is enabled" : "but disabled (\"econRegisterEnabled\": false)")+".");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Factions.log("Un-hooked from Register.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static void iConomySet(boolean enable) {
|
public static void iConomySet(boolean enable) {
|
||||||
iConomyUse = enable;
|
iConomyUse = enable;
|
||||||
if (enable) {
|
if (enable && !registerUse) {
|
||||||
Factions.log("iConomy hook available, "+(Conf.econIConomyEnabled ? "and interface is enabled" : "but disabled (\"econIConomyEnabled\": false)")+".");
|
Factions.log("iConomy hook available, "+(Conf.econIConomyEnabled ? "and interface is enabled" : "but disabled (\"econIConomyEnabled\": false)")+".");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -50,7 +69,7 @@ public class Econ {
|
|||||||
|
|
||||||
public static void essentialsEcoSet(boolean enable) {
|
public static void essentialsEcoSet(boolean enable) {
|
||||||
essEcoUse = enable;
|
essEcoUse = enable;
|
||||||
if (enable) {
|
if (enable && !registerUse) {
|
||||||
Factions.log("EssentialsEco hook available, "+(Conf.econEssentialsEcoEnabled ? "and interface is enabled" : "but disabled (\"econEssentialsEcoEnabled\": false)")+".");
|
Factions.log("EssentialsEco hook available, "+(Conf.econEssentialsEcoEnabled ? "and interface is enabled" : "but disabled (\"econEssentialsEcoEnabled\": false)")+".");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -58,6 +77,10 @@ public class Econ {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean registerHooked() {
|
||||||
|
return registerUse;
|
||||||
|
}
|
||||||
|
|
||||||
public static boolean iConomyHooked() {
|
public static boolean iConomyHooked() {
|
||||||
return iConomyUse;
|
return iConomyUse;
|
||||||
}
|
}
|
||||||
@ -66,9 +89,15 @@ public class Econ {
|
|||||||
return essEcoUse;
|
return essEcoUse;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean registerAvailable() {
|
||||||
|
return Conf.econRegisterEnabled && registerUse && Methods.hasMethod();
|
||||||
|
}
|
||||||
|
|
||||||
// If economy is enabled in conf.json, and we're successfully hooked into an economy plugin
|
// If economy is enabled in conf.json, and we're successfully hooked into an economy plugin
|
||||||
public static boolean enabled() {
|
public static boolean enabled() {
|
||||||
return (Conf.econIConomyEnabled && iConomyUse) || (Conf.econEssentialsEcoEnabled && essEcoUse);
|
return (Conf.econRegisterEnabled && registerUse && Methods.hasMethod())
|
||||||
|
|| (Conf.econIConomyEnabled && iConomyUse)
|
||||||
|
|| (Conf.econEssentialsEcoEnabled && essEcoUse);
|
||||||
}
|
}
|
||||||
|
|
||||||
// mainly for internal use, for a little less code repetition
|
// mainly for internal use, for a little less code repetition
|
||||||
@ -84,11 +113,23 @@ public class Econ {
|
|||||||
Holdings holdings = account.getHoldings();
|
Holdings holdings = account.getHoldings();
|
||||||
return holdings;
|
return holdings;
|
||||||
}
|
}
|
||||||
|
public static MethodAccount getRegisterAccount(String playerName) {
|
||||||
|
if (!enabled()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
if (!Methods.getMethod().hasAccount(playerName)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
MethodAccount account = Methods.getMethod().getAccount(playerName);
|
||||||
|
return account;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// format money string based on server's set currency type, like "24 gold" or "$24.50"
|
// format money string based on server's set currency type, like "24 gold" or "$24.50"
|
||||||
public static String moneyString(double amount) {
|
public static String moneyString(double amount) {
|
||||||
return iConomyUse ? iConomy.format(amount) : Economy.format(amount);
|
return registerAvailable() ? Methods.getMethod().format(amount)
|
||||||
|
: (iConomyUse ? iConomy.format(amount) : Economy.format(amount));
|
||||||
}
|
}
|
||||||
|
|
||||||
// whether a player can afford specified amount
|
// whether a player can afford specified amount
|
||||||
@ -98,7 +139,15 @@ public class Econ {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (iConomyUse) {
|
if (registerAvailable()) {
|
||||||
|
MethodAccount holdings = getRegisterAccount(playerName);
|
||||||
|
if (holdings == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return holdings.hasEnough(amount);
|
||||||
|
}
|
||||||
|
else if (iConomyUse) {
|
||||||
Holdings holdings = getIconomyHoldings(playerName);
|
Holdings holdings = getIconomyHoldings(playerName);
|
||||||
if (holdings == null) {
|
if (holdings == null) {
|
||||||
return false;
|
return false;
|
||||||
@ -122,7 +171,15 @@ public class Econ {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (iConomyUse) {
|
if (registerAvailable()) {
|
||||||
|
MethodAccount holdings = getRegisterAccount(playerName);
|
||||||
|
if (holdings == null || !holdings.hasEnough(amount)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return holdings.subtract(amount);
|
||||||
|
}
|
||||||
|
else if (iConomyUse) {
|
||||||
Holdings holdings = getIconomyHoldings(playerName);
|
Holdings holdings = getIconomyHoldings(playerName);
|
||||||
if (holdings == null || !holdings.hasEnough(amount)) {
|
if (holdings == null || !holdings.hasEnough(amount)) {
|
||||||
return false;
|
return false;
|
||||||
@ -151,7 +208,15 @@ public class Econ {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (iConomyUse) {
|
if (registerAvailable()) {
|
||||||
|
MethodAccount holdings = getRegisterAccount(playerName);
|
||||||
|
if (holdings == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return holdings.add(amount);
|
||||||
|
}
|
||||||
|
else if (iConomyUse) {
|
||||||
Holdings holdings = getIconomyHoldings(playerName);
|
Holdings holdings = getIconomyHoldings(playerName);
|
||||||
if (holdings == null) {
|
if (holdings == null) {
|
||||||
return false;
|
return false;
|
||||||
|
@ -13,7 +13,10 @@ public class FactionsServerListener extends ServerListener {
|
|||||||
@Override
|
@Override
|
||||||
public void onPluginDisable(PluginDisableEvent event) {
|
public void onPluginDisable(PluginDisableEvent event) {
|
||||||
String name = event.getPlugin().getDescription().getName();
|
String name = event.getPlugin().getDescription().getName();
|
||||||
if (Econ.iConomyHooked() && name.equals("iConomy")) {
|
if (Econ.registerHooked() && name.equals("Register")) {
|
||||||
|
Econ.registerSet(false);
|
||||||
|
}
|
||||||
|
else if (Econ.iConomyHooked() && name.equals("iConomy")) {
|
||||||
Econ.iConomySet(false);
|
Econ.iConomySet(false);
|
||||||
}
|
}
|
||||||
else if (Econ.essentialsEcoHooked() && name.equals("Essentials")) {
|
else if (Econ.essentialsEcoHooked() && name.equals("Essentials")) {
|
||||||
@ -28,7 +31,10 @@ public class FactionsServerListener extends ServerListener {
|
|||||||
public void onPluginEnable(PluginEnableEvent event) {
|
public void onPluginEnable(PluginEnableEvent event) {
|
||||||
Plugin plug = event.getPlugin();
|
Plugin plug = event.getPlugin();
|
||||||
String name = plug.getDescription().getName();
|
String name = plug.getDescription().getName();
|
||||||
if (!Econ.iConomyHooked() && name.equals("iConomy") && plug.getClass().getName().equals("com.iConomy.iConomy")) {
|
if (!Econ.registerHooked() && name.equals("Register") && plug.getClass().getName().equals("com.nijikokun.register.Register")) {
|
||||||
|
Econ.registerSet(true);
|
||||||
|
}
|
||||||
|
else if (!Econ.iConomyHooked() && name.equals("iConomy") && plug.getClass().getName().equals("com.iConomy.iConomy")) {
|
||||||
Econ.iConomySet(true);
|
Econ.iConomySet(true);
|
||||||
}
|
}
|
||||||
else if (!Econ.essentialsEcoHooked() && name.equals("Essentials")) {
|
else if (!Econ.essentialsEcoHooked() && name.equals("Essentials")) {
|
||||||
|
@ -12,6 +12,7 @@ softdepend:
|
|||||||
- ChatManager
|
- ChatManager
|
||||||
- AuthMe
|
- AuthMe
|
||||||
- iConomy
|
- iConomy
|
||||||
|
- Register
|
||||||
- Spout
|
- Spout
|
||||||
- WorldEdit
|
- WorldEdit
|
||||||
- WorldGuard
|
- WorldGuard
|
||||||
|
Loading…
Reference in New Issue
Block a user