Don't allow players to buy the same prize twice

This commit is contained in:
Teriuihi 2023-09-24 05:15:42 +02:00
parent 6de8d07e34
commit bbd4c6d99b

View File

@ -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<Prize> prizes;
private final Player player;
public PrizesWindow(Player player, Logger logger, List<Prize> 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>", player.getName()));
player.getServer().dispatchCommand(player.getServer().getConsoleSender(), prize.command().replaceAll("<user>", player.getName()));
updateGUI();
player.updateInventory();
}
@Override