mirror of https://github.com/MilkBowl/Vault.git
Specialize EssentialsX economy to support UUID based lookup
This commit is contained in:
parent
d456b051c3
commit
ace36ee753
Binary file not shown.
Binary file not shown.
8
pom.xml
8
pom.xml
|
@ -176,12 +176,12 @@ Vault currently supports the following: Permissions 3, PEX, GroupManager, bPerms
|
|||
<systemPath>${project.basedir}/lib/EconXP.jar</systemPath>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.earth2me.essentials.Essentials</groupId>
|
||||
<artifactId>Essentials</artifactId>
|
||||
<version>2.9.2</version>
|
||||
<groupId>net.ess3</groupId>
|
||||
<artifactId>EssentialsX</artifactId>
|
||||
<version>2.18.1.24</version>
|
||||
<optional>true</optional>
|
||||
<scope>system</scope>
|
||||
<systemPath>${project.basedir}/lib/Essentials.jar</systemPath>
|
||||
<systemPath>${project.basedir}/lib/EssentialsX.jar</systemPath>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.anjocaido.groupmanager.GroupManager</groupId>
|
||||
|
|
|
@ -15,68 +15,13 @@
|
|||
*/
|
||||
package net.milkbowl.vault;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.InputStreamReader;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.net.URL;
|
||||
import java.net.URLConnection;
|
||||
import java.util.Collection;
|
||||
import java.util.concurrent.Callable;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import com.nijikokun.register.payment.Methods;
|
||||
import net.milkbowl.vault.chat.Chat;
|
||||
import net.milkbowl.vault.chat.plugins.Chat_DroxPerms;
|
||||
import net.milkbowl.vault.chat.plugins.Chat_GroupManager;
|
||||
import net.milkbowl.vault.chat.plugins.Chat_OverPermissions;
|
||||
import net.milkbowl.vault.chat.plugins.Chat_Permissions3;
|
||||
import net.milkbowl.vault.chat.plugins.Chat_PermissionsEx;
|
||||
import net.milkbowl.vault.chat.plugins.Chat_Privileges;
|
||||
import net.milkbowl.vault.chat.plugins.Chat_bPermissions;
|
||||
import net.milkbowl.vault.chat.plugins.Chat_bPermissions2;
|
||||
import net.milkbowl.vault.chat.plugins.Chat_iChat;
|
||||
import net.milkbowl.vault.chat.plugins.Chat_mChat;
|
||||
import net.milkbowl.vault.chat.plugins.Chat_mChatSuite;
|
||||
import net.milkbowl.vault.chat.plugins.Chat_rscPermissions;
|
||||
import net.milkbowl.vault.chat.plugins.*;
|
||||
import net.milkbowl.vault.economy.Economy;
|
||||
import net.milkbowl.vault.economy.plugins.Economy_BOSE7;
|
||||
import net.milkbowl.vault.economy.plugins.Economy_CommandsEX;
|
||||
import net.milkbowl.vault.economy.plugins.Economy_Craftconomy3;
|
||||
import net.milkbowl.vault.economy.plugins.Economy_CurrencyCore;
|
||||
import net.milkbowl.vault.economy.plugins.Economy_DigiCoin;
|
||||
import net.milkbowl.vault.economy.plugins.Economy_Dosh;
|
||||
import net.milkbowl.vault.economy.plugins.Economy_EconXP;
|
||||
import net.milkbowl.vault.economy.plugins.Economy_Essentials;
|
||||
import net.milkbowl.vault.economy.plugins.Economy_GoldIsMoney2;
|
||||
import net.milkbowl.vault.economy.plugins.Economy_GoldenChestEconomy;
|
||||
import net.milkbowl.vault.economy.plugins.Economy_Gringotts;
|
||||
import net.milkbowl.vault.economy.plugins.Economy_McMoney;
|
||||
import net.milkbowl.vault.economy.plugins.Economy_MineConomy;
|
||||
import net.milkbowl.vault.economy.plugins.Economy_MultiCurrency;
|
||||
import net.milkbowl.vault.economy.plugins.Economy_TAEcon;
|
||||
import net.milkbowl.vault.economy.plugins.Economy_XPBank;
|
||||
import net.milkbowl.vault.economy.plugins.Economy_eWallet;
|
||||
import net.milkbowl.vault.economy.plugins.Economy_iConomy6;
|
||||
import net.milkbowl.vault.economy.plugins.Economy_SDFEconomy;
|
||||
import net.milkbowl.vault.economy.plugins.Economy_Minefaconomy;
|
||||
import net.milkbowl.vault.economy.plugins.*;
|
||||
import net.milkbowl.vault.permission.Permission;
|
||||
import net.milkbowl.vault.permission.plugins.Permission_DroxPerms;
|
||||
import net.milkbowl.vault.permission.plugins.Permission_GroupManager;
|
||||
import net.milkbowl.vault.permission.plugins.Permission_OverPermissions;
|
||||
import net.milkbowl.vault.permission.plugins.Permission_Permissions3;
|
||||
import net.milkbowl.vault.permission.plugins.Permission_PermissionsBukkit;
|
||||
import net.milkbowl.vault.permission.plugins.Permission_PermissionsEx;
|
||||
import net.milkbowl.vault.permission.plugins.Permission_Privileges;
|
||||
import net.milkbowl.vault.permission.plugins.Permission_SimplyPerms;
|
||||
import net.milkbowl.vault.permission.plugins.Permission_Starburst;
|
||||
import net.milkbowl.vault.permission.plugins.Permission_SuperPerms;
|
||||
import net.milkbowl.vault.permission.plugins.Permission_Xperms;
|
||||
import net.milkbowl.vault.permission.plugins.Permission_bPermissions;
|
||||
import net.milkbowl.vault.permission.plugins.Permission_bPermissions2;
|
||||
import net.milkbowl.vault.permission.plugins.Permission_TotalPermissions;
|
||||
import net.milkbowl.vault.permission.plugins.Permission_rscPermissions;
|
||||
import net.milkbowl.vault.permission.plugins.Permission_KPerms;
|
||||
|
||||
import net.milkbowl.vault.permission.plugins.*;
|
||||
import org.bstats.bukkit.Metrics;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
|
@ -98,10 +43,15 @@ import org.json.simple.JSONArray;
|
|||
import org.json.simple.JSONObject;
|
||||
import org.json.simple.JSONValue;
|
||||
|
||||
import com.nijikokun.register.payment.Methods;
|
||||
|
||||
import net.milkbowl.vault.chat.plugins.Chat_TotalPermissions;
|
||||
import net.milkbowl.vault.economy.plugins.Economy_MiConomy;
|
||||
import java.io.BufferedReader;
|
||||
import java.io.InputStreamReader;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.net.URL;
|
||||
import java.net.URLConnection;
|
||||
import java.util.Collection;
|
||||
import java.util.concurrent.Callable;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
public class Vault extends JavaPlugin {
|
||||
|
||||
|
@ -269,6 +219,9 @@ public class Vault extends JavaPlugin {
|
|||
// Try to load Gringotts
|
||||
hookEconomy("Gringotts", Economy_Gringotts.class, ServicePriority.Normal, "org.gestern.gringotts.Gringotts");
|
||||
|
||||
// Try to load EssentialsX Economy
|
||||
hookEconomy("EssentialsX Economy", Economy_EssentialsX.class, ServicePriority.Normal, "com.earth2me.essentials.api.Economy", "com.earth2me.essentials.api.NoLoanPermittedException", "com.earth2me.essentials.api.UserDoesNotExistException", "com.earth2me.essentials.AsyncTeleport");
|
||||
|
||||
// Try to load Essentials Economy
|
||||
hookEconomy("Essentials Economy", Economy_Essentials.class, ServicePriority.Low, "com.earth2me.essentials.api.Economy", "com.earth2me.essentials.api.NoLoanPermittedException", "com.earth2me.essentials.api.UserDoesNotExistException");
|
||||
|
||||
|
|
|
@ -15,14 +15,12 @@
|
|||
*/
|
||||
package net.milkbowl.vault.economy.plugins;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import com.earth2me.essentials.Essentials;
|
||||
import com.earth2me.essentials.api.NoLoanPermittedException;
|
||||
import com.earth2me.essentials.api.UserDoesNotExistException;
|
||||
import net.milkbowl.vault.economy.AbstractEconomy;
|
||||
import net.milkbowl.vault.economy.EconomyResponse;
|
||||
import net.milkbowl.vault.economy.EconomyResponse.ResponseType;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
|
@ -31,15 +29,14 @@ import org.bukkit.event.server.PluginDisableEvent;
|
|||
import org.bukkit.event.server.PluginEnableEvent;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
import com.earth2me.essentials.Essentials;
|
||||
import com.earth2me.essentials.api.NoLoanPermittedException;
|
||||
import com.earth2me.essentials.api.UserDoesNotExistException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
public class Economy_Essentials extends AbstractEconomy {
|
||||
|
||||
private final String name = "Essentials Economy";
|
||||
private final Logger log;
|
||||
private Plugin plugin = null;
|
||||
private Plugin plugin;
|
||||
private Essentials ess = null;
|
||||
|
||||
public Economy_Essentials(Plugin plugin) {
|
||||
|
@ -52,7 +49,7 @@ public class Economy_Essentials extends AbstractEconomy {
|
|||
Plugin essentials = plugin.getServer().getPluginManager().getPlugin("Essentials");
|
||||
if (essentials != null && essentials.isEnabled()) {
|
||||
ess = (Essentials) essentials;
|
||||
log.info(String.format("[Economy] %s hooked.", name));
|
||||
log.info(String.format("[Economy] %s hooked.", getName()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -68,7 +65,7 @@ public class Economy_Essentials extends AbstractEconomy {
|
|||
|
||||
@Override
|
||||
public String getName() {
|
||||
return name;
|
||||
return "Essentials Economy";
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -200,7 +197,7 @@ public class Economy_Essentials extends AbstractEconomy {
|
|||
|
||||
if (essentials.getDescription().getName().equals("Essentials")) {
|
||||
economy.ess = (Essentials) essentials;
|
||||
log.info(String.format("[Economy] %s hooked.", economy.name));
|
||||
log.info(String.format("[Economy] %s hooked.", economy.getName()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -210,7 +207,7 @@ public class Economy_Essentials extends AbstractEconomy {
|
|||
if (economy.ess != null) {
|
||||
if (event.getPlugin().getDescription().getName().equals("Essentials")) {
|
||||
economy.ess = null;
|
||||
log.info(String.format("[Economy] %s unhooked.", economy.name));
|
||||
log.info(String.format("[Economy] %s unhooked.", economy.getName()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,171 @@
|
|||
package net.milkbowl.vault.economy.plugins;
|
||||
|
||||
import com.earth2me.essentials.api.Economy;
|
||||
import com.earth2me.essentials.api.NoLoanPermittedException;
|
||||
import com.earth2me.essentials.api.UserDoesNotExistException;
|
||||
import net.milkbowl.vault.economy.EconomyResponse;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
public class Economy_EssentialsX extends Economy_Essentials {
|
||||
|
||||
public Economy_EssentialsX(Plugin plugin) {
|
||||
super(plugin);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "EssentialsX Economy";
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasAccount(OfflinePlayer player) {
|
||||
return Economy.playerExists(player.getUniqueId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getBalance(OfflinePlayer player) {
|
||||
double balance;
|
||||
try {
|
||||
balance = Economy.getMoneyExact(player.getUniqueId()).doubleValue();
|
||||
} catch (UserDoesNotExistException e) {
|
||||
createPlayerAccount(player);
|
||||
balance = 0;
|
||||
}
|
||||
return balance;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean has(OfflinePlayer player, double amount) {
|
||||
try {
|
||||
return Economy.hasEnough(player.getUniqueId(), BigDecimal.valueOf(amount));
|
||||
} catch (UserDoesNotExistException e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public EconomyResponse withdrawPlayer(OfflinePlayer player, double amount) {
|
||||
if (player == null) {
|
||||
return new EconomyResponse(0, 0, EconomyResponse.ResponseType.FAILURE, "Player can not be null.");
|
||||
}
|
||||
if (amount < 0) {
|
||||
return new EconomyResponse(0, 0, EconomyResponse.ResponseType.FAILURE, "Cannot withdraw negative funds");
|
||||
}
|
||||
|
||||
BigDecimal balance;
|
||||
EconomyResponse.ResponseType type;
|
||||
String errorMessage = null;
|
||||
|
||||
try {
|
||||
com.earth2me.essentials.api.Economy.subtract(player.getUniqueId(), BigDecimal.valueOf(amount));
|
||||
balance = com.earth2me.essentials.api.Economy.getMoneyExact(player.getUniqueId());
|
||||
type = EconomyResponse.ResponseType.SUCCESS;
|
||||
} catch (UserDoesNotExistException e) {
|
||||
if (createPlayerAccount(player)) {
|
||||
return withdrawPlayer(player, amount);
|
||||
} else {
|
||||
amount = 0;
|
||||
balance = BigDecimal.ZERO;
|
||||
type = EconomyResponse.ResponseType.FAILURE;
|
||||
errorMessage = "User does not exist";
|
||||
}
|
||||
} catch (NoLoanPermittedException e) {
|
||||
try {
|
||||
balance = com.earth2me.essentials.api.Economy.getMoneyExact(player.getUniqueId());
|
||||
amount = 0;
|
||||
type = EconomyResponse.ResponseType.FAILURE;
|
||||
errorMessage = "Loan was not permitted";
|
||||
} catch (UserDoesNotExistException e1) {
|
||||
amount = 0;
|
||||
balance = BigDecimal.ZERO;
|
||||
type = EconomyResponse.ResponseType.FAILURE;
|
||||
errorMessage = "User does not exist";
|
||||
}
|
||||
}
|
||||
|
||||
return new EconomyResponse(amount, balance.doubleValue(), type, errorMessage);
|
||||
}
|
||||
|
||||
@Override
|
||||
public EconomyResponse depositPlayer(OfflinePlayer player, double amount) {
|
||||
return tryDepositPlayer(player, amount, 2);
|
||||
}
|
||||
|
||||
public EconomyResponse tryDepositPlayer(OfflinePlayer player, double amount, int tries) {
|
||||
if (player == null) {
|
||||
return new EconomyResponse(0, 0, EconomyResponse.ResponseType.FAILURE, "Player can not be null.");
|
||||
}
|
||||
if (amount < 0) {
|
||||
return new EconomyResponse(0, 0, EconomyResponse.ResponseType.FAILURE, "Cannot desposit negative funds");
|
||||
}
|
||||
if (tries <= 0) {
|
||||
return new EconomyResponse(amount, 0, EconomyResponse.ResponseType.FAILURE, "Failed to deposit amount.");
|
||||
}
|
||||
|
||||
BigDecimal balance;
|
||||
EconomyResponse.ResponseType type;
|
||||
String errorMessage = null;
|
||||
|
||||
try {
|
||||
com.earth2me.essentials.api.Economy.add(player.getUniqueId(), BigDecimal.valueOf(amount));
|
||||
balance = com.earth2me.essentials.api.Economy.getMoneyExact(player.getUniqueId());
|
||||
type = EconomyResponse.ResponseType.SUCCESS;
|
||||
} catch (UserDoesNotExistException e) {
|
||||
if (createPlayerAccount(player)) {
|
||||
return tryDepositPlayer(player, amount, tries--);
|
||||
} else {
|
||||
amount = 0;
|
||||
balance = BigDecimal.ZERO;
|
||||
type = EconomyResponse.ResponseType.FAILURE;
|
||||
errorMessage = "User does not exist";
|
||||
}
|
||||
} catch (NoLoanPermittedException e) {
|
||||
try {
|
||||
balance = com.earth2me.essentials.api.Economy.getMoneyExact(player.getUniqueId());
|
||||
amount = 0;
|
||||
type = EconomyResponse.ResponseType.FAILURE;
|
||||
errorMessage = "Loan was not permitted";
|
||||
} catch (UserDoesNotExistException e1) {
|
||||
balance = BigDecimal.ZERO;
|
||||
amount = 0;
|
||||
type = EconomyResponse.ResponseType.FAILURE;
|
||||
errorMessage = "Loan was not permitted";
|
||||
}
|
||||
}
|
||||
|
||||
return new EconomyResponse(amount, balance.doubleValue(), type, errorMessage);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasAccount(OfflinePlayer player, String worldName) {
|
||||
return hasAccount(player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getBalance(OfflinePlayer player, String world) {
|
||||
return getBalance(player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean has(OfflinePlayer player, String worldName, double amount) {
|
||||
return has(player, amount);
|
||||
}
|
||||
|
||||
@Override
|
||||
public EconomyResponse withdrawPlayer(OfflinePlayer player, String worldName, double amount) {
|
||||
return withdrawPlayer(player, amount);
|
||||
}
|
||||
|
||||
@Override
|
||||
public EconomyResponse depositPlayer(OfflinePlayer player, String worldName, double amount) {
|
||||
return depositPlayer(player, amount);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean createPlayerAccount(OfflinePlayer player, String worldName) {
|
||||
return createPlayerAccount(player);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue