From ac00245b0481fb52b6c421a76a93a63e4431290c Mon Sep 17 00:00:00 2001 From: YoyoNow Date: Sun, 11 May 2025 18:50:21 +0200 Subject: [PATCH] Fix lag of IngameListener --- .../de/steamwar/towerrun/listener/IngameListener.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/TowerRun/src/de/steamwar/towerrun/listener/IngameListener.java b/TowerRun/src/de/steamwar/towerrun/listener/IngameListener.java index bbb332bf..26b8b045 100644 --- a/TowerRun/src/de/steamwar/towerrun/listener/IngameListener.java +++ b/TowerRun/src/de/steamwar/towerrun/listener/IngameListener.java @@ -67,11 +67,15 @@ public class IngameListener extends GameStateBukkitListener { if (blocks == null) { return; } - blocks.forEach(block -> { - if (block.getType() == Material.AIR || block.getType() == Material.LAVA) return; + int maxBlocks = 1_000; + while (maxBlocks > 0 && !blocks.isEmpty()) { + Block block = blocks.removeFirst(); + if (block.getType() == Material.AIR || block.getType() == Material.LAVA) continue; block.setType(Material.AIR); block.getWorld().playSound(block.getLocation(), Sound.BLOCK_FIRE_EXTINGUISH, 0.1F, 1); - }); + maxBlocks--; + } + blocksToMelt.computeIfAbsent(time, __ -> new ArrayList<>()).addAll(0, blocks); } }; blocksToMeltRunnable.runTaskTimer(TowerRun.getInstance(), 0, 1);