From 4ee8456fd4631ca310a7165e5503487b596440cf Mon Sep 17 00:00:00 2001 From: Lixfel Date: Fri, 29 Nov 2024 15:23:17 +0100 Subject: [PATCH] Fix ConcurrentModificationException through death in loop --- .../src/de/steamwar/towerrun/listener/IngameListener.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/TowerRun/src/de/steamwar/towerrun/listener/IngameListener.java b/TowerRun/src/de/steamwar/towerrun/listener/IngameListener.java index 9e30cf07..befc7d47 100644 --- a/TowerRun/src/de/steamwar/towerrun/listener/IngameListener.java +++ b/TowerRun/src/de/steamwar/towerrun/listener/IngameListener.java @@ -29,6 +29,7 @@ import de.steamwar.towerrun.state.GameStates; import org.bukkit.*; import org.bukkit.block.Block; import org.bukkit.entity.EntityType; +import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.block.Action; import org.bukkit.event.block.BlockBreakEvent; @@ -83,14 +84,16 @@ public class IngameListener extends GameStateBukkitListener { .min(Comparator.comparing(Function.identity())) .orElse(0.0); + List toDamage = new ArrayList<>(); TowerRunGame.PLAYERS_ALIVE.forEach(towerRunPlayer -> { if (towerRunPlayer.player().getLocation().getY() - minY > 20) { towerRunPlayer.player().sendTitle("§a", TowerRun.getMessage().parse("CATCH_UP_WARNING", towerRunPlayer.player()), 5, 30, 5); } if (towerRunPlayer.player().getLocation().getY() - minY > 30) { - towerRunPlayer.player().damage(1.0); + toDamage.add(towerRunPlayer.player()); } }); + toDamage.forEach(p -> p.damage(1.0)); } }; antiCampRunnable.runTaskTimer(TowerRun.getInstance(), 100, 100);