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