diff --git a/.idea/compiler.xml b/.idea/compiler.xml index 11ddfae..871ca39 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -10,7 +10,7 @@ - + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_github_TownyAdvanced_Towny_0_96_7_0.xml b/.idea/libraries/Maven__com_github_TownyAdvanced_Towny_0_96_7_0.xml deleted file mode 100644 index 46c5a87..0000000 --- a/.idea/libraries/Maven__com_github_TownyAdvanced_Towny_0_96_7_0.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Maven__com_github_kangarko_Foundation_5_9_0.xml b/.idea/libraries/Maven__com_github_kangarko_Foundation_5_9_0.xml new file mode 100644 index 0000000..1a39c13 --- /dev/null +++ b/.idea/libraries/Maven__com_github_kangarko_Foundation_5_9_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_mineacademy_Foundation_5_8_2.xml b/.idea/libraries/Maven__org_mineacademy_Foundation_5_8_2.xml deleted file mode 100644 index e33b105..0000000 --- a/.idea/libraries/Maven__org_mineacademy_Foundation_5_8_2.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Maven__org_mineacademy_plugin_TownyChat_0_86.xml b/.idea/libraries/Maven__org_mineacademy_plugin_TownyChat_0_88.xml similarity index 62% rename from .idea/libraries/Maven__org_mineacademy_plugin_TownyChat_0_86.xml rename to .idea/libraries/Maven__org_mineacademy_plugin_TownyChat_0_88.xml index 1a6c32a..371a00b 100644 --- a/.idea/libraries/Maven__org_mineacademy_plugin_TownyChat_0_86.xml +++ b/.idea/libraries/Maven__org_mineacademy_plugin_TownyChat_0_88.xml @@ -1,13 +1,13 @@ - + - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_mineacademy_plugin_Towny_0_97_0_0.xml b/.idea/libraries/Maven__org_mineacademy_plugin_Towny_0_97_0_0.xml new file mode 100644 index 0000000..3455b2e --- /dev/null +++ b/.idea/libraries/Maven__org_mineacademy_plugin_Towny_0_97_0_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_projectlombok_lombok_1_18_12.xml b/.idea/libraries/Maven__org_projectlombok_lombok_1_18_20.xml similarity index 64% rename from .idea/libraries/Maven__org_projectlombok_lombok_1_18_12.xml rename to .idea/libraries/Maven__org_projectlombok_lombok_1_18_20.xml index 46cf8a8..138abdc 100644 --- a/.idea/libraries/Maven__org_projectlombok_lombok_1_18_12.xml +++ b/.idea/libraries/Maven__org_projectlombok_lombok_1_18_20.xml @@ -1,13 +1,13 @@ - + - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_spigotmc_spigot_api_1_16_5_R0_1_SNAPSHOT.xml b/.idea/libraries/Maven__org_spigotmc_spigot_api_1_17_R0_1_SNAPSHOT.xml similarity index 51% rename from .idea/libraries/Maven__org_spigotmc_spigot_api_1_16_5_R0_1_SNAPSHOT.xml rename to .idea/libraries/Maven__org_spigotmc_spigot_api_1_17_R0_1_SNAPSHOT.xml index 91a88d8..afac7ab 100644 --- a/.idea/libraries/Maven__org_spigotmc_spigot_api_1_16_5_R0_1_SNAPSHOT.xml +++ b/.idea/libraries/Maven__org_spigotmc_spigot_api_1_17_R0_1_SNAPSHOT.xml @@ -1,13 +1,13 @@ - + - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_yaml_snakeyaml_1_27.xml b/.idea/libraries/Maven__org_yaml_snakeyaml_1_28.xml similarity index 69% rename from .idea/libraries/Maven__org_yaml_snakeyaml_1_27.xml rename to .idea/libraries/Maven__org_yaml_snakeyaml_1_28.xml index 5f4b15d..1f853f7 100644 --- a/.idea/libraries/Maven__org_yaml_snakeyaml_1_27.xml +++ b/.idea/libraries/Maven__org_yaml_snakeyaml_1_28.xml @@ -1,13 +1,13 @@ - + - + - + - + \ No newline at end of file diff --git a/build.xml b/build.xml index 8b62bb2..c9a7e0b 100644 --- a/build.xml +++ b/build.xml @@ -16,8 +16,7 @@ - + diff --git a/pom.xml b/pom.xml index 151f5c8..702b669 100644 --- a/pom.xml +++ b/pom.xml @@ -1,23 +1,26 @@ - 4.0.0 net.tolmikarc TownyMenu - 1.3.4 + 1.3.6 net.tolmikarc.townymenu.TownyMenuPlugin - 5.8.2 + 5.9.0 - 1.8 + 11 UTF-8 + + 11 + 11 + 11 @@ -38,31 +41,25 @@ https://ci.ender.zone/plugin/repository/everything/ + + + apache.snapshots + https://repository.apache.org/snapshots/ + + org.spigotmc spigot-api - 1.16.5-R0.1-SNAPSHOT + 1.17-R0.1-SNAPSHOT provided - org.mineacademy + com.github.kangarko Foundation ${foundation.version} - compile - - - com.github.TownyAdvanced - Towny - 0.96.7.0 - provided - - - org.projectlombok - lombok - 1.18.12 @@ -80,7 +77,7 @@ org.apache.maven.plugins maven-shade-plugin - 3.2.1 + 3.2.4 package @@ -93,9 +90,7 @@ org.mineacademy:Game* - org.mineacademy:Foundation* - com.palmergames.bukkit.towny:Towny* - com.github.TownyAdvanced* + com.github.kangarko:Foundation* org.mineacademy:GameAPI* diff --git a/src/main/java/net/tolmikarc/townymenu/plot/command/PlotMenuCommand.java b/src/main/java/net/tolmikarc/townymenu/plot/command/PlotMenuCommand.java index 77c1527..fe174cc 100644 --- a/src/main/java/net/tolmikarc/townymenu/plot/command/PlotMenuCommand.java +++ b/src/main/java/net/tolmikarc/townymenu/plot/command/PlotMenuCommand.java @@ -26,12 +26,10 @@ protected void onCommand() { return; } - TownBlock townBlock; - Town town; - Resident resident = TownyAPI.getInstance().getDataSource().getResident(getPlayer().getName()); + Resident resident = TownyAPI.getInstance().getResident(getPlayer().getName()); if (TownyAPI.getInstance().getTownBlock(getPlayer().getLocation()) != null) { - townBlock = TownyAPI.getInstance().getTownBlock(getPlayer().getLocation()); - town = townBlock.getTown(); + TownBlock townBlock = TownyAPI.getInstance().getTownBlock(getPlayer().getLocation()); + Town town = townBlock.getTown(); if (town.getMayor().equals(resident) || getPlayer().hasPermission("townymenu.admin.plot")) new PlotMenu(townBlock).displayTo(getPlayer()); else if (townBlock.hasResident() && townBlock.isOwner(resident)) { diff --git a/src/main/java/net/tolmikarc/townymenu/settings/Settings.java b/src/main/java/net/tolmikarc/townymenu/settings/Settings.java index 03a946f..cacf3c3 100644 --- a/src/main/java/net/tolmikarc/townymenu/settings/Settings.java +++ b/src/main/java/net/tolmikarc/townymenu/settings/Settings.java @@ -10,11 +10,13 @@ protected int getConfigVersion() { } public static String MONEY_SYMBOL; + public static Boolean ECONOMY_ENABLED; private static void init() { pathPrefix(null); MONEY_SYMBOL = getString("Money_Symbol"); + ECONOMY_ENABLED = getBoolean("Economy"); } diff --git a/src/main/java/net/tolmikarc/townymenu/town/TownMenu.java b/src/main/java/net/tolmikarc/townymenu/town/TownMenu.java index de56c91..a005f1a 100644 --- a/src/main/java/net/tolmikarc/townymenu/town/TownMenu.java +++ b/src/main/java/net/tolmikarc/townymenu/town/TownMenu.java @@ -83,9 +83,25 @@ public TownMenu(Town town, Player player) throws NotRegisteredException { residentListButton = new ButtonMenu(new ResidentListMenu(residentList), residentListItem); townyPermButton = new ButtonMenu(new TownyPermMenu(town), permissionsMenuItem); - if (TownySettings.isBankActionLimitedToBankPlots()) { - if (TownyAPI.getInstance().getTownBlock(player.getLocation()) != null) - if (!TownyAPI.getInstance().getTownBlock(player.getLocation()).getType().equals(TownBlockType.BANK)) + if (Settings.ECONOMY_ENABLED) { + if (TownySettings.isBankActionLimitedToBankPlots()) { + if (TownyAPI.getInstance().getTownBlock(player.getLocation()) != null) + if (!TownyAPI.getInstance().getTownBlock(player.getLocation()).getType().equals(TownBlockType.BANK)) + economyButton = new Button() { + @Override + public void onClickedInMenu(Player player, Menu menu, ClickType clickType) { + Common.tell(player, Localization.Error.MUST_BE_IN_BANK); + player.closeInventory(); + } + + @Override + public ItemStack getItem() { + return ItemCreator.of(CompMaterial.EMERALD_BLOCK, Localization.TownMenu.ECONOMY_MENU_BUTTON, Localization.TownMenu.ECONOMY_MENU_BUTTON_LORE).build().make(); + } + }; + else + economyButton = new ButtonMenu(new EconomyManagementMenu(town), economyMenuItem); + else economyButton = new Button() { @Override public void onClickedInMenu(Player player, Menu menu, ClickType clickType) { @@ -98,24 +114,24 @@ public ItemStack getItem() { return ItemCreator.of(CompMaterial.EMERALD_BLOCK, Localization.TownMenu.ECONOMY_MENU_BUTTON, Localization.TownMenu.ECONOMY_MENU_BUTTON_LORE).build().make(); } }; - else - economyButton = new ButtonMenu(new EconomyManagementMenu(town), economyMenuItem); - else - economyButton = new Button() { - @Override - public void onClickedInMenu(Player player, Menu menu, ClickType clickType) { - Common.tell(player, Localization.Error.MUST_BE_IN_BANK); - player.closeInventory(); - } + } else if (TownySettings.isBankActionDisallowedOutsideTown()) { + if (TownyAPI.getInstance().getTownBlock(player.getLocation()) != null) + if (!TownyAPI.getInstance().getTownBlock(player.getLocation()).getTown().equals(town)) { + economyButton = new Button() { + @Override + public void onClickedInMenu(Player player, Menu menu, ClickType clickType) { + Common.tell(player, Localization.Error.MUST_BE_IN_TOWN); + player.closeInventory(); + } - @Override - public ItemStack getItem() { - return ItemCreator.of(CompMaterial.EMERALD_BLOCK, Localization.TownMenu.ECONOMY_MENU_BUTTON, Localization.TownMenu.ECONOMY_MENU_BUTTON_LORE).build().make(); - } - }; - } else if (TownySettings.isBankActionDisallowedOutsideTown()) { - if (TownyAPI.getInstance().getTownBlock(player.getLocation()) != null) - if (!TownyAPI.getInstance().getTownBlock(player.getLocation()).getTown().equals(town)) { + @Override + public ItemStack getItem() { + return ItemCreator.of(CompMaterial.EMERALD_BLOCK, Localization.TownMenu.ECONOMY_MENU_BUTTON, Localization.TownMenu.ECONOMY_MENU_BUTTON_LORE).build().make(); + } + }; + } else + economyButton = new ButtonMenu(new EconomyManagementMenu(town), economyMenuItem); + else { economyButton = new Button() { @Override public void onClickedInMenu(Player player, Menu menu, ClickType clickType) { @@ -128,25 +144,22 @@ public ItemStack getItem() { return ItemCreator.of(CompMaterial.EMERALD_BLOCK, Localization.TownMenu.ECONOMY_MENU_BUTTON, Localization.TownMenu.ECONOMY_MENU_BUTTON_LORE).build().make(); } }; - } else - economyButton = new ButtonMenu(new EconomyManagementMenu(town), economyMenuItem); - else { - economyButton = new Button() { - @Override - public void onClickedInMenu(Player player, Menu menu, ClickType clickType) { - Common.tell(player, Localization.Error.MUST_BE_IN_TOWN); - player.closeInventory(); - } + } - @Override - public ItemStack getItem() { - return ItemCreator.of(CompMaterial.EMERALD_BLOCK, Localization.TownMenu.ECONOMY_MENU_BUTTON, Localization.TownMenu.ECONOMY_MENU_BUTTON_LORE).build().make(); - } - }; - } + } else + economyButton = new ButtonMenu(new EconomyManagementMenu(town), economyMenuItem); + } else { + economyButton = new Button() { + @Override + public void onClickedInMenu(Player player, Menu menu, ClickType clickType) { + } - } else - economyButton = new ButtonMenu(new EconomyManagementMenu(town), economyMenuItem); + @Override + public ItemStack getItem() { + return null; + } + }; + } generalSettingsButton = new ButtonMenu(new GeneralSettingsMenu(town), settingsMenuItem); @@ -173,9 +186,9 @@ public ItemStack getItemAt(int slot) { return townyPermButton.getItem(); if (slot == 9 * 2 + 2) - return economyButton.getItem(); - if (slot == 9 * 2 + 4) return generalSettingsButton.getItem(); + if (slot == 9 * 2 + 4 && Settings.ECONOMY_ENABLED) + return economyButton.getItem(); if (slot == 9 * 2 + 6) return invitePlayerButton.getItem(); diff --git a/src/main/java/net/tolmikarc/townymenu/town/prompt/TownDepositPrompt.java b/src/main/java/net/tolmikarc/townymenu/town/prompt/TownDepositPrompt.java index e06c36b..15517f8 100644 --- a/src/main/java/net/tolmikarc/townymenu/town/prompt/TownDepositPrompt.java +++ b/src/main/java/net/tolmikarc/townymenu/town/prompt/TownDepositPrompt.java @@ -1,7 +1,7 @@ package net.tolmikarc.townymenu.town.prompt; import com.palmergames.bukkit.towny.TownyAPI; -import com.palmergames.bukkit.towny.exceptions.EconomyException; +import com.palmergames.bukkit.towny.object.Resident; import com.palmergames.bukkit.towny.object.Town; import net.tolmikarc.townymenu.settings.Localization; import net.tolmikarc.townymenu.settings.Settings; @@ -45,14 +45,14 @@ protected String getFailedValidationText(ConversationContext context, String inv if (!getPlayer(context).hasPermission("towny.command.town.deposit") || input.equalsIgnoreCase(Localization.CANCEL)) return null; - try { - HookManager.withdraw(getPlayer(context), Integer.parseInt(input)); - town.getAccount().setBalance(town.getAccount().getHoldingBalance() + Integer.parseInt(input), "Deposit money from menu."); - TownyAPI.getInstance().getDataSource().saveTown(town); - tell(Localization.TownConversables.Deposit.RESPONSE.replace("{money_symbol}", Settings.MONEY_SYMBOL).replace("{input}", input)); - } catch (EconomyException e) { - e.printStackTrace(); + HookManager.withdraw(getPlayer(context), Integer.parseInt(input)); + Resident res = TownyAPI.getInstance().getResident(getPlayer(context).getUniqueId()); + if (res == null) { + return null; } + res.getAccount().payTo(Integer.parseInt(input), town, "Deposit money from menu."); + TownyAPI.getInstance().getDataSource().saveTown(town); + tell(Localization.TownConversables.Deposit.RESPONSE.replace("{money_symbol}", Settings.MONEY_SYMBOL).replace("{input}", input)); return null; } diff --git a/src/main/java/net/tolmikarc/townymenu/town/prompt/TownNamePrompt.java b/src/main/java/net/tolmikarc/townymenu/town/prompt/TownNamePrompt.java index 6f7150a..5b815e6 100644 --- a/src/main/java/net/tolmikarc/townymenu/town/prompt/TownNamePrompt.java +++ b/src/main/java/net/tolmikarc/townymenu/town/prompt/TownNamePrompt.java @@ -3,7 +3,6 @@ import com.palmergames.bukkit.towny.TownyAPI; import com.palmergames.bukkit.towny.TownySettings; import com.palmergames.bukkit.towny.exceptions.AlreadyRegisteredException; -import com.palmergames.bukkit.towny.exceptions.EconomyException; import com.palmergames.bukkit.towny.exceptions.NotRegisteredException; import com.palmergames.bukkit.towny.object.Town; import net.tolmikarc.townymenu.settings.Localization; @@ -57,13 +56,13 @@ protected String getFailedValidationText(ConversationContext context, String inv try { if (town.getAccount().canPayFromHoldings(TownySettings.getTownRenameCost())) { TownyAPI.getInstance().getDataSource().renameTown(town, input); - town.getAccount().pay(TownySettings.getTownRenameCost(), "Renaming town."); + town.getAccount().withdraw(TownySettings.getTownRenameCost(), "Renaming town."); tell(Localization.TownConversables.Name.RESPONSE.replace("{input}", input)); TownyAPI.getInstance().getDataSource().saveTown(town); } else tell(Localization.TownConversables.Name.RETURN); - } catch (EconomyException | NotRegisteredException | AlreadyRegisteredException e) { + } catch (NotRegisteredException | AlreadyRegisteredException e) { e.printStackTrace(); } diff --git a/src/main/java/net/tolmikarc/townymenu/town/prompt/TownWithdrawPrompt.java b/src/main/java/net/tolmikarc/townymenu/town/prompt/TownWithdrawPrompt.java index 6d4e661..497ed44 100644 --- a/src/main/java/net/tolmikarc/townymenu/town/prompt/TownWithdrawPrompt.java +++ b/src/main/java/net/tolmikarc/townymenu/town/prompt/TownWithdrawPrompt.java @@ -1,7 +1,7 @@ package net.tolmikarc.townymenu.town.prompt; import com.palmergames.bukkit.towny.TownyAPI; -import com.palmergames.bukkit.towny.exceptions.EconomyException; +import com.palmergames.bukkit.towny.object.Resident; import com.palmergames.bukkit.towny.object.Town; import net.tolmikarc.townymenu.settings.Localization; import net.tolmikarc.townymenu.settings.Settings; @@ -11,7 +11,6 @@ import org.jetbrains.annotations.Nullable; import org.mineacademy.fo.Valid; import org.mineacademy.fo.conversation.SimplePrompt; -import org.mineacademy.fo.model.HookManager; public class TownWithdrawPrompt extends SimplePrompt { @@ -31,12 +30,7 @@ protected String getPrompt(ConversationContext ctx) { @Override protected boolean isInputValid(ConversationContext context, String input) { - try { - return ((Valid.isInteger(input) && (town.getAccount().canPayFromHoldings(Integer.parseInt(input)))) || input.equalsIgnoreCase(Localization.CANCEL)); - } catch (EconomyException e) { - e.printStackTrace(); - } - return false; + return ((Valid.isInteger(input) && (town.getAccount().canPayFromHoldings(Integer.parseInt(input)))) || input.equalsIgnoreCase(Localization.CANCEL)); } @Override @@ -50,14 +44,10 @@ Prompt acceptValidatedInput(@NotNull ConversationContext context, @NotNull Strin if (input.equalsIgnoreCase(Localization.CANCEL)) return null; - try { - HookManager.deposit(getPlayer(context), Integer.parseInt(input)); - town.getAccount().pay(Integer.parseInt(input), "Withdrawn from menu."); - TownyAPI.getInstance().getDataSource().saveTown(town); - tell(Localization.TownConversables.Withdraw.RESPONSE.replace("{money_symbol}", Settings.MONEY_SYMBOL).replace("{input}", input)); - } catch (EconomyException e) { - e.printStackTrace(); - } + Resident res = TownyAPI.getInstance().getResident(getPlayer(context).getUniqueId()); + town.getAccount().payTo(Integer.parseInt(input), res,"Withdrawn from menu."); + TownyAPI.getInstance().getDataSource().saveTown(town); + tell(Localization.TownConversables.Withdraw.RESPONSE.replace("{money_symbol}", Settings.MONEY_SYMBOL).replace("{input}", input)); return null; } diff --git a/src/main/resources/settings.yml b/src/main/resources/settings.yml index c9a242b..0dabbe7 100644 --- a/src/main/resources/settings.yml +++ b/src/main/resources/settings.yml @@ -9,6 +9,8 @@ Prefix: "&b&lTM &7// " # The Language this plugin's messages will be run in. Check the localization folder for options Locale: en +# Whether or not economy is enabled or disabled for towny menu corresponding with it being enabled or disabled for Towny +Economy: true # The symbol used in messages for money Money_Symbol: "$" # How many milliseconds should an action take before the lag is logged to console