Don't allow players to buy the same prize twice
This commit is contained in:
parent
6de8d07e34
commit
bbd4c6d99b
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user