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