From 53b94c99a96e262b5ba8f9dd70742ed28b15d85c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Wed, 27 Dec 2023 10:00:26 +0100 Subject: [PATCH] Fixed reward duplication on join --- .../craftattack/spawn/appliances/event/Event.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/event/Event.java b/src/main/java/eu/mhsl/craftattack/spawn/appliances/event/Event.java index e921a4e..d6580c4 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/event/Event.java +++ b/src/main/java/eu/mhsl/craftattack/spawn/appliances/event/Event.java @@ -100,7 +100,7 @@ public class Event extends Appliance { Response response = new Gson().fromJson(rawResponse.body(), Response.class); if(rawResponse.statusCode() != 200 || response.error != null) { - p.sendMessage(Component.text("Fehler beim betreten: " + response.error, NamedTextColor.RED)); + p.sendMessage(Component.text("Fehler beim Betreten: " + response.error, NamedTextColor.RED)); return; } @@ -128,7 +128,7 @@ public class Event extends Appliance { giveReward(reward); }); - for (UUID uuid : rewardConfiguration.memorials) { + rewardConfiguration.memorials.forEach(uuid -> { ItemStack memorialItem = new ItemStack(Objects.requireNonNull(Material.matchMaterial(rewardConfiguration.memorialMaterial))); ItemMeta meta = memorialItem.getItemMeta(); meta.displayName(Component.text(rewardConfiguration.memorialTitle, NamedTextColor.GOLD)); @@ -138,10 +138,10 @@ public class Event extends Appliance { if (Bukkit.getPlayer(uuid) == null) { pendingRewards.add(memorial); - continue; + return; } giveReward(memorial); - } + }); } private void giveReward(Reward reward) { @@ -157,9 +157,9 @@ public class Event extends Appliance { public void applyPendingRewards(Player player) { if(this.pendingRewards.isEmpty()) return; - this.pendingRewards.stream() - .filter(reward -> reward.playerUuid.equals(player.getUniqueId())) - .forEach(this::giveReward); + List givenRewards = this.pendingRewards.stream().filter(reward -> reward.playerUuid.equals(player.getUniqueId())).toList(); + this.pendingRewards.removeAll(givenRewards); + givenRewards.forEach(this::giveReward); } @Override