浏览代码

fix: replace forEach with iterator to avoid concurrent modification exceptions

fix #85

Signed-off-by: Daniel Nägele <daniel@naegele.dev>
Daniel Nägele 2 年之前
父节点
当前提交
3e704ba5c9
共有 1 个文件被更改,包括 9 次插入4 次删除
  1. 9 4
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/GameManager.java

+ 9 - 4
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/GameManager.java

@@ -24,13 +24,14 @@ import de.butzlabben.missilewars.configuration.Config;
 import de.butzlabben.missilewars.configuration.Lobby;
 import de.butzlabben.missilewars.configuration.Lobby;
 import de.butzlabben.missilewars.util.geometry.GameArea;
 import de.butzlabben.missilewars.util.geometry.GameArea;
 import de.butzlabben.missilewars.util.serialization.Serializer;
 import de.butzlabben.missilewars.util.serialization.Serializer;
-import java.io.File;
-import java.io.IOException;
-import java.util.HashMap;
 import lombok.Getter;
 import lombok.Getter;
 import org.bukkit.Bukkit;
 import org.bukkit.Bukkit;
 import org.bukkit.Location;
 import org.bukkit.Location;
 
 
+import java.io.File;
+import java.io.IOException;
+import java.util.HashMap;
+
 @Getter
 @Getter
 public class GameManager {
 public class GameManager {
 
 
@@ -45,7 +46,11 @@ public class GameManager {
     }
     }
 
 
     public void restartAll() {
     public void restartAll() {
-        games.values().forEach(game -> restartGame(game.getLobby(), false));
+        var iterator = games.values().iterator();
+        //noinspection WhileLoopReplaceableByForEach
+        while (iterator.hasNext()) {
+            restartGame(iterator.next().getLobby(), false);
+        }
     }
     }
 
 
     /**
     /**