diff --git a/src/main/java/com/cleanroommc/modularui/value/sync/PanelSyncManager.java b/src/main/java/com/cleanroommc/modularui/value/sync/PanelSyncManager.java index c05ac874d..a5933373f 100644 --- a/src/main/java/com/cleanroommc/modularui/value/sync/PanelSyncManager.java +++ b/src/main/java/com/cleanroommc/modularui/value/sync/PanelSyncManager.java @@ -60,7 +60,13 @@ public PanelSyncManager(ModularSyncManager msm, boolean main) { @ApiStatus.Internal public void initialize(String panelName) { this.panelName = panelName; - this.syncHandlers.forEach((mapKey, syncHandler) -> syncHandler.init(mapKey, this)); + var snapshotKeys = new ArrayList<>(this.syncHandlers.keySet()); + for (var mapKey : snapshotKeys) { + var syncHandler = this.syncHandlers.get(mapKey); + if (syncHandler != null) { + syncHandler.init(mapKey, this); + } + } this.locked = true; this.init = true; this.subPanels.forEach((s, syncHandler) -> this.modularSyncManager.getMainPSM().registerPanelSyncHandler(s, syncHandler));