From 7cfd147f1e6c3037464b4ea1494d90785f9981fa Mon Sep 17 00:00:00 2001 From: Len <40720638+destro174@users.noreply.github.com> Date: Sun, 4 Aug 2024 10:54:10 +0200 Subject: [PATCH] Add option to collect all balance from a single shop. --- .../playershops/gui/ShopManagementGui.java | 27 +++++++++++++++++++ .../playershops/handler/ShopHandler.java | 1 + 2 files changed, 28 insertions(+) diff --git a/src/main/java/com/alttd/playershops/gui/ShopManagementGui.java b/src/main/java/com/alttd/playershops/gui/ShopManagementGui.java index 2a81269..d0fe320 100644 --- a/src/main/java/com/alttd/playershops/gui/ShopManagementGui.java +++ b/src/main/java/com/alttd/playershops/gui/ShopManagementGui.java @@ -6,6 +6,7 @@ import com.alttd.playershops.config.ShopTypeConfig; import com.alttd.playershops.conversation.ConversationManager; import com.alttd.playershops.conversation.ConversationType; import com.alttd.playershops.shop.PlayerShop; +import com.alttd.playershops.shop.ShopType; import com.alttd.playershops.utils.EconomyUtils; import com.alttd.playershops.utils.ShopUtil; import com.alttd.playershops.utils.Util; @@ -59,6 +60,7 @@ public class ShopManagementGui extends AbstractGui { inventory.setItem(GuiIcon.MANAGE_SHOP.getSlot(), shopIcon); inventory.setItem(GuiIcon.MANAGE_SHOP_BALANCE_ADD.getSlot(), GuiIcon.MANAGE_SHOP_BALANCE_ADD.getItemStack()); inventory.setItem(GuiIcon.MANAGE_SHOP_BALANCE_REMOVE.getSlot(), GuiIcon.MANAGE_SHOP_BALANCE_REMOVE.getItemStack()); + inventory.setItem(GuiIcon.MANAGE_SHOP_COLLECT_SALES.getSlot(), GuiIcon.MANAGE_SHOP_COLLECT_SALES.getItemStack()); inventory.setItem(GuiIcon.MANAGE_SHOP_SALES.getSlot(), GuiIcon.MANAGE_SHOP_SALES.getItemStack()); inventory.setItem(GuiIcon.MANAGE_SHOP_ITEM.getSlot(), GuiIcon.MANAGE_SHOP_ITEM.getItemStack()); inventory.setItem(GuiIcon.MANAGE_SHOP_TYPE.getSlot(), GuiIcon.MANAGE_SHOP_TYPE.getItemStack()); @@ -75,6 +77,31 @@ public class ShopManagementGui extends AbstractGui { public void onClick(int slot, ItemStack item) { super.onClick(slot, item); + if (slot == GuiIcon.MANAGE_SHOP_COLLECT_SALES.getSlot() && GuiIcon.MANAGE_SHOP_COLLECT_SALES.getItemStack().equals(item)) { + Player player = getPlayer(); + double d = 0; + int count = 0; + if (!ShopUtil.canManageShop(player, this.shop)) + return; + if (!this.shop.getType().equals(ShopType.SELL)) + return; + + double balance = this.shop.getBalance(); + if (balance == 0) + return; + + this.shop.removeBalance(balance); + EconomyUtils.addFunds(player, balance); + d += balance; + count++; + TagResolver placeholders = TagResolver.resolver( + Placeholder.parsed("balance", String.valueOf(d)), + Placeholder.parsed("count", String.valueOf(count)) + ); + player.sendMiniMessage("You have collected from shops.", placeholders); + return; + } + if (slot >= 45) return; diff --git a/src/main/java/com/alttd/playershops/handler/ShopHandler.java b/src/main/java/com/alttd/playershops/handler/ShopHandler.java index 63a1feb..67ef3a2 100644 --- a/src/main/java/com/alttd/playershops/handler/ShopHandler.java +++ b/src/main/java/com/alttd/playershops/handler/ShopHandler.java @@ -135,6 +135,7 @@ public class ShopHandler { } return null; } + public List getShopsInRadius(int x, int z, int radius) { ArrayList shops = new ArrayList<>(); int bottomX = x - radius;