From bbd4c6d99b840a6cd13842f9107d2e2147b7ccd4 Mon Sep 17 00:00:00 2001 From: Teriuihi Date: Sun, 24 Sep 2023 05:15:42 +0200 Subject: [PATCH] Don't allow players to buy the same prize twice --- .../fishingevent/gui/windows/PrizesWindow.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/alttd/fishingevent/gui/windows/PrizesWindow.java b/src/main/java/com/alttd/fishingevent/gui/windows/PrizesWindow.java index 1d9b357..e2d3dbb 100644 --- a/src/main/java/com/alttd/fishingevent/gui/windows/PrizesWindow.java +++ b/src/main/java/com/alttd/fishingevent/gui/windows/PrizesWindow.java @@ -20,10 +20,18 @@ public class PrizesWindow extends GUI { private final Logger logger; private final ItemStack alreadyPurchasedItem = new ItemStack(Material.BARRIER, 1); + private final List prizes; + private final Player player; public PrizesWindow(Player player, Logger logger, List prizes) { super(InventoryType.CHEST, MiniMessage.miniMessage().deserialize(Messages.GUI.PRIZES_GUI_NAME)); this.logger = logger; + this.prizes = prizes; + this.player = player; + updateGUI(); + } + + private void updateGUI() { int i = 0; for (Prize prize : prizes) { if (player.hasPermission(prize.permission())) @@ -39,6 +47,10 @@ public class PrizesWindow extends GUI { } private void buy(Player player, Prize prize) { + if (player.hasPermission(prize.permission())) { + alreadyPurchased(player, prize); + return; + } UUID uuid = player.getUniqueId(); PointsManagement pointsManagement = PointsManagement.getInstance(); int playerPoints = pointsManagement.getPoints(uuid); @@ -63,7 +75,9 @@ public class PrizesWindow extends GUI { Placeholder.parsed("remaining_points", String.valueOf(remainingPoints)), Placeholder.parsed("prize", prize.name()) )); - player.getServer().dispatchCommand(player.getServer().getConsoleSender(), prize.command().replace("", player.getName())); + player.getServer().dispatchCommand(player.getServer().getConsoleSender(), prize.command().replaceAll("", player.getName())); + updateGUI(); + player.updateInventory(); } @Override