Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.weiking1021.mc.economy.vaulthook;
- import java.text.DecimalFormat;
- import java.util.ArrayList;
- import java.util.List;
- import org.bukkit.OfflinePlayer;
- import me.weiking1021.mc.economy.WeiEconomy;
- import me.weiking1021.mc.economy.WeiEconomyVar;
- import me.weiking1021.mc.economy.bank.WeiEconomyBank;
- import me.weiking1021.mc.economy.bank.WeiEconomyBankManager;
- import me.weiking1021.mc.economy.playerdata.PlayerVaultDataManager;
- import me.weiking1021.mc.economy.weivalue.EconomyValue;
- import me.weiking1021.mc.essential.player.data.EssentialPlayerData;
- import me.weiking1021.mc.essential.value.WeiValueParameter;
- import net.milkbowl.vault.economy.Economy;
- import net.milkbowl.vault.economy.EconomyResponse;
- import net.milkbowl.vault.economy.EconomyResponse.ResponseType;
- public class Economy_WeiEconomy implements Economy {
- // 錯誤訊息
- private static final String error_message = "資料錯誤";
- @Override
- // 確認是否插件正常
- public boolean isEnabled() {
- // 回傳正常
- return true;
- }
- @Override
- // 格式化金錢的格式
- public String format(double balance) {
- // 格式化數字
- String str = new DecimalFormat("0.00").format(balance);
- // 替換格式並回傳
- return WeiEconomyVar.money_format.replace("{MONEY}", str)
- .replace("{MONEY_NAME}", WeiEconomyVar.money_name);
- }
- @Override
- // 小數點後的位數
- public int fractionalDigits() {
- // 回傳
- return 2;
- }
- @Override
- // 所有金錢銀行名稱
- public List<String> getBanks() {
- // 回傳
- return new ArrayList<>(WeiEconomyBankManager.getEconomyBankList());
- }
- @Override
- // 取得名稱
- public String getName() {
- // 回傳
- return WeiEconomy.getInstance().getName();
- }
- @Override
- // 是否支援多銀行帳戶
- public boolean hasBankSupport() {
- // 回傳說支援
- return true;
- }
- @Override
- // 取得某銀行的金錢餘額
- public EconomyResponse bankBalance(String bank_name) {
- // 取得銀行資料
- WeiEconomyBank economy_bank = WeiEconomyBankManager.getEconomyBank(bank_name);
- // 如果值為空
- if (economy_bank == null) {
- // 回傳錯誤
- return new EconomyResponse(0, 0, ResponseType.FAILURE, error_message);
- }
- // 回傳結果
- return new EconomyResponse(0, economy_bank.getBalance(), ResponseType.SUCCESS, null);
- }
- @Override
- // 判斷該銀行是否有一定的金額
- public EconomyResponse bankHas(String bank_name, double required_balance) {
- // 取得銀行資料
- WeiEconomyBank economy_bank = WeiEconomyBankManager.getEconomyBank(bank_name);
- // 如果值為空
- if (economy_bank == null) {
- // 回傳錯誤
- return new EconomyResponse(0, 0, ResponseType.FAILURE, error_message);
- }
- // 取得銀行的金錢
- double balance = economy_bank.getBalance();
- // 判斷結果
- ResponseType type = ResponseType.FAILURE;
- // 判斷是否足夠
- if (balance >= required_balance) {
- // 如果足夠就把結果設為成功
- type = ResponseType.SUCCESS;
- }
- // 回傳結果
- return new EconomyResponse(0, balance, type, null);
- }
- @Override
- // 對銀行存錢
- public EconomyResponse bankDeposit(String bank_name, double balance_deposit) {
- // 取得銀行資料
- WeiEconomyBank economy_bank = WeiEconomyBankManager.getEconomyBank(bank_name);
- // 如果值為空
- if (economy_bank == null) {
- // 回傳錯誤
- return new EconomyResponse(0, 0, ResponseType.FAILURE, error_message);
- }
- // 回傳結果
- return new EconomyResponse(balance_deposit, economy_bank.deposit(balance_deposit), ResponseType.SUCCESS, null);
- }
- @Override
- // 對銀行提錢
- public EconomyResponse bankWithdraw(String bank_name, double balance_withdraw) {
- // 取得銀行資料
- WeiEconomyBank economy_bank = WeiEconomyBankManager.getEconomyBank(bank_name);
- // 如果值為空
- if (economy_bank == null) {
- // 回傳錯誤
- return new EconomyResponse(0, 0, ResponseType.FAILURE, error_message);
- }
- // 回傳結果
- return new EconomyResponse(balance_withdraw, economy_bank.withdraw(balance_withdraw), ResponseType.SUCCESS, null);
- }
- @Override
- // 建立銀行
- public EconomyResponse createBank(String bank_name, String player_name) {
- // 創建銀行
- boolean result = WeiEconomyBankManager.createBank(bank_name, player_name);
- // 如果沒有創建成功
- if (!result) {
- // 回傳錯誤
- return new EconomyResponse(0, 0, ResponseType.FAILURE, error_message);
- }
- // 創建銀行
- return new EconomyResponse(0, 0, ResponseType.SUCCESS, null);
- }
- @Override
- // 建立銀行
- public EconomyResponse createBank(String bank_name, OfflinePlayer offline_player) {
- // 取得玩家名稱
- String player_name = offline_player.getName();
- // 回傳透過名稱創建的結果
- return createBank(bank_name, player_name);
- }
- @Override
- // 移除銀行
- public EconomyResponse deleteBank(String bank_name) {
- // 移除銀行
- boolean result = WeiEconomyBankManager.removeBank(bank_name);
- // 如果沒有創建成功
- if (!result) {
- // 回傳錯誤
- return new EconomyResponse(0, 0, ResponseType.FAILURE, error_message);
- }
- // 回傳結果
- return new EconomyResponse(0, 0, ResponseType.SUCCESS, null);
- }
- @Override
- // 判斷某玩家是否為某銀行的成員
- public EconomyResponse isBankMember(String bank_name, String player_name) {
- // 取得銀行
- WeiEconomyBank economy_bank = WeiEconomyBankManager.getEconomyBank(bank_name);
- // 如果沒有抓到銀行
- if (economy_bank == null) {
- // 回傳錯誤
- return new EconomyResponse(0, 0, ResponseType.FAILURE, error_message);
- }
- // 取得玩家資料
- EssentialPlayerData player_data = PlayerVaultDataManager.getPlayerDataByName(player_name);
- // 如果沒有抓到玩家資料
- if (player_data == null) {
- // 回傳錯誤
- return new EconomyResponse(0, 0, ResponseType.FAILURE, error_message);
- }
- // 判斷結果
- boolean result = economy_bank.getMemberUUIDList().contains(player_data.getDataUUID());
- // 回傳結果
- return new EconomyResponse(0, 0, (result ? ResponseType.SUCCESS : ResponseType.FAILURE), null);
- }
- @Override
- // 判斷某玩家是否為某銀行的成員
- public EconomyResponse isBankMember(String bank_name, OfflinePlayer offline_player) {
- // 回傳判斷結果
- return isBankMember(bank_name, offline_player.getName());
- }
- @Override
- // 判斷某玩家是否為某銀行的擁有者
- public EconomyResponse isBankOwner(String bank_name, String player_name) {
- // 取得銀行
- WeiEconomyBank economy_bank = WeiEconomyBankManager.getEconomyBank(bank_name);
- // 如果沒有抓到銀行
- if (economy_bank == null) {
- // 回傳錯誤
- return new EconomyResponse(0, 0, ResponseType.FAILURE, error_message);
- }
- // 取得玩家資料
- EssentialPlayerData player_data = PlayerVaultDataManager.getPlayerDataByName(player_name);
- // 如果沒有抓到玩家資料
- if (player_data == null) {
- // 回傳錯誤
- return new EconomyResponse(0, 0, ResponseType.FAILURE, error_message);
- }
- // 判斷結果
- boolean result = economy_bank.getOwnerUUID().equals(player_data.getDataUUID());
- // 回傳結果
- return new EconomyResponse(0, 0, (result ? ResponseType.SUCCESS : ResponseType.FAILURE), null);
- }
- @Override
- // 判斷某玩家是否為某銀行的擁有者
- public EconomyResponse isBankOwner(String bank_name, OfflinePlayer offline_player) {
- // 回傳判斷結果
- return isBankOwner(bank_name, offline_player.getName());
- }
- @Override
- // 創建玩家帳戶
- public boolean createPlayerAccount(String player_name) {
- // 回傳創建結果
- return PlayerVaultDataManager.createPlayerEconomyValue(player_name, null) != null;
- }
- @Override
- // 創建玩家帳戶
- public boolean createPlayerAccount(OfflinePlayer offline_player) {
- // 回傳執行結果
- return createPlayerAccount(offline_player.getName());
- }
- @Override
- // 創建玩家世界帳戶
- public boolean createPlayerAccount(String player_name, String world_name) {
- // 回傳創建結果
- return PlayerVaultDataManager.createPlayerEconomyValue(player_name, world_name) != null;
- }
- @Override
- // 創建玩家世界帳戶
- public boolean createPlayerAccount(OfflinePlayer offline_player, String world_name) {
- // 回傳執行結果
- return createPlayerAccount(offline_player.getName(), world_name);
- }
- @Override
- // 取得貨幣名稱
- public String currencyNamePlural() {
- // 回傳名稱
- return WeiEconomyVar.money_name;
- }
- @Override
- // 取得貨幣名稱
- public String currencyNameSingular() {
- // 回傳名稱
- return WeiEconomyVar.money_name;
- }
- @Override
- // 存錢到玩家的戶頭中
- public EconomyResponse depositPlayer(String player_name, double balance_deposit) {
- // 取得金錢資料
- EconomyValue bank_value = PlayerVaultDataManager.getPlayerEconomyValue(player_name, null);
- // 增加一定的值
- boolean result = bank_value.resume(new WeiValueParameter(balance_deposit));
- // 判斷處理的結果
- if (!result) {
- // 回傳錯誤
- return new EconomyResponse(0, 0, ResponseType.FAILURE, error_message);
- }
- // 回傳成功執行
- return new EconomyResponse(balance_deposit, bank_value.getData(), ResponseType.SUCCESS, null);
- }
- @Override
- // 存錢到玩家的戶頭中
- public EconomyResponse depositPlayer(OfflinePlayer offline_player, double balance_deposit) {
- // 回傳執行結果
- return depositPlayer(offline_player.getName(), balance_deposit);
- }
- @Override
- // 存錢到玩家的戶頭中
- public EconomyResponse depositPlayer(String player_name, String world_name, double balance_deposit) {
- // 取得金錢資料
- EconomyValue bank_value = PlayerVaultDataManager.getPlayerEconomyValue(player_name, world_name);
- // 增加一定的值
- boolean result = bank_value.resume(new WeiValueParameter(balance_deposit));
- // 判斷處理的結果
- if (!result) {
- // 回傳錯誤
- return new EconomyResponse(0, 0, ResponseType.FAILURE, error_message);
- }
- // 回傳成功執行
- return new EconomyResponse(balance_deposit, bank_value.getData(), ResponseType.SUCCESS, null);
- }
- @Override
- // 對玩家戶頭存錢
- public EconomyResponse depositPlayer(OfflinePlayer offline_player, String world_name, double balance_deposit) {
- // 回傳執行結果
- return depositPlayer(offline_player.getName(), world_name, balance_deposit);
- }
- @Override
- // 對玩家戶頭提錢
- public EconomyResponse withdrawPlayer(String player_name, double balance_withdraw) {
- // 取得金錢資料
- EconomyValue bank_value = PlayerVaultDataManager.getPlayerEconomyValue(player_name, null);
- // 增加一定的值
- boolean result = bank_value.consume(new WeiValueParameter(balance_withdraw));
- // 判斷處理的結果
- if (!result) {
- // 回傳錯誤
- return new EconomyResponse(0, 0, ResponseType.FAILURE, error_message);
- }
- // 回傳成功執行
- return new EconomyResponse(balance_withdraw, bank_value.getData(), ResponseType.SUCCESS, null);
- }
- @Override
- // 對玩家戶頭提錢
- public EconomyResponse withdrawPlayer(OfflinePlayer offline_player, double balance_withdraw) {
- // 回傳執行結果
- return withdrawPlayer(offline_player.getName(), balance_withdraw);
- }
- @Override
- // 對指定玩家戶頭提錢
- public EconomyResponse withdrawPlayer(String player_name, String world_name, double balance_withdraw) {
- // 取得金錢資料
- EconomyValue bank_value = PlayerVaultDataManager.getPlayerEconomyValue(player_name, world_name);
- // 增加一定的值
- boolean result = bank_value.consume(new WeiValueParameter(balance_withdraw));
- // 判斷處理的結果
- if (!result) {
- // 回傳錯誤
- return new EconomyResponse(0, 0, ResponseType.FAILURE, error_message);
- }
- // 回傳成功執行
- return new EconomyResponse(balance_withdraw, bank_value.getData(), ResponseType.SUCCESS, null);
- }
- @Override
- // 對指定玩家戶頭提錢
- public EconomyResponse withdrawPlayer(OfflinePlayer offline_player, String world_name, double balance_withdraw) {
- // 回傳執行結果
- return withdrawPlayer(offline_player.getName(), world_name, balance_withdraw);
- }
- @Override
- // 取得玩家的金錢
- public double getBalance(String player_name) {
- // 取得金錢資料
- EconomyValue bank_value = PlayerVaultDataManager.getPlayerEconomyValue(player_name, null);
- // 回傳
- return bank_value.getData();
- }
- @Override
- // 取得玩家的金錢
- public double getBalance(OfflinePlayer offline_player) {
- // 回傳執行結果
- return getBalance(offline_player.getName());
- }
- @Override
- // 取得玩家指定世界的金錢
- public double getBalance(String player_name, String world_name) {
- // 取得金錢資料
- EconomyValue bank_value = PlayerVaultDataManager.getPlayerEconomyValue(player_name, world_name);
- // 回傳
- return bank_value.getData();
- }
- @Override
- // 取得玩家指定世界的金錢
- public double getBalance(OfflinePlayer offline_player, String world_name) {
- // 回傳結果
- return getBalance(offline_player.getName(), world_name);
- }
- @Override
- // 判斷是否玩家有指定的金錢數量
- public boolean has(String player_name, double required_balance) {
- // 回傳判斷結果
- return getBalance(player_name) >= required_balance;
- }
- @Override
- // 判斷是否玩家有指定的金錢數量
- public boolean has(OfflinePlayer offline_player, double require_balance) {
- // 回傳結果
- return has(offline_player.getName(), require_balance);
- }
- @Override
- // 判斷是否玩家某世界有指定的金錢數量
- public boolean has(String player_name, String world_name, double required_balance) {
- // 回傳判斷結果
- return getBalance(player_name, world_name) >= required_balance;
- }
- @Override
- // 判斷是否玩家某世界有指定的金錢數量
- public boolean has(OfflinePlayer offline_player, String world_name, double required_balance) {
- // 回傳結果
- return has(offline_player.getName(), world_name, required_balance);
- }
- @Override
- // 判斷某玩家是否有金錢帳戶
- public boolean hasAccount(String player_name) {
- // 回傳判斷結果
- return PlayerVaultDataManager.hasPlayerEconomyValue(player_name, null);
- }
- @Override
- // 判斷該玩家是否有世界金錢帳戶
- public boolean hasAccount(OfflinePlayer offline_player) {
- // 回傳判斷結果
- return hasAccount(offline_player.getName());
- }
- @Override
- // 判斷該玩家是否有世界金錢帳戶
- public boolean hasAccount(String player_name, String world_name) {
- // 回傳判斷結果
- return PlayerVaultDataManager.hasPlayerEconomyValue(player_name, world_name);
- }
- @Override
- // 判斷該玩家是否有世界金錢帳戶
- public boolean hasAccount(OfflinePlayer offline_player, String world_name) {
- // 回傳判斷結果
- return hasAccount(offline_player.getName(), world_name);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement