From 03c2630497d7f058bbc4cdb5d6bb83aa37b4892f Mon Sep 17 00:00:00 2001 From: Brian Neumann-Fopiano Date: Fri, 16 Oct 2026 10:44:12 -0400 Subject: [PATCH] Fixed startup lifecycle test - The levels-ready startup test drives the parallel dimension restore instead of the removed per-dimension restore call --- .../1.21.1/resources/META-INF/mods.toml | 28 -------------- .../modded/ModdedStartupLifecycleTest.java | 22 +++++++---- .../resources/META-INF/neoforge.mods.toml | 37 ------------------- 3 files changed, 14 insertions(+), 73 deletions(-) delete mode 100644 adapters/forge/src/versions/1.21.1/resources/META-INF/mods.toml delete mode 100644 adapters/neoforge/src/versions/1.21.1/resources/META-INF/neoforge.mods.toml diff --git a/adapters/forge/src/versions/1.21.1/resources/META-INF/mods.toml b/adapters/forge/src/versions/1.21.1/resources/META-INF/mods.toml deleted file mode 100644 index 1e1f96721..000000000 --- a/adapters/forge/src/versions/1.21.1/resources/META-INF/mods.toml +++ /dev/null @@ -1,28 +0,0 @@ -modLoader = "javafml" -loaderVersion = "[52,53)" -license = "GPL-3.0" -issueTrackerURL = "https://github.com/VolmitSoftware/Iris/issues" - -[[mods]] -modId = "irisworldgen" -version = "${version}" -displayName = "Iris" -description = "Iris World Generation Engine (Forge adapter - native chunk generator, explicit Iris world datapack workflow, engine lifecycle)" -authors = "Arcane Arts (Volmit Software)" -credits = "cyberpwn, NextdoorPsycho, Vatuu" -displayURL = "https://docs.volmit.com/iris/" -logoFile = "assets/irisworldgen/icon.png" - -[[dependencies.irisworldgen]] -modId = "forge" -mandatory = true -versionRange = "[52,53)" -ordering = "NONE" -side = "BOTH" - -[[dependencies.irisworldgen]] -modId = "minecraft" -mandatory = true -versionRange = "[${minecraftVersion}]" -ordering = "NONE" -side = "BOTH" diff --git a/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedStartupLifecycleTest.java b/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedStartupLifecycleTest.java index 9b74d9928..2dc04bd9a 100644 --- a/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedStartupLifecycleTest.java +++ b/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedStartupLifecycleTest.java @@ -9,10 +9,13 @@ import java.util.List; import java.util.concurrent.atomic.AtomicBoolean; import static org.junit.Assert.assertTrue; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.CALLS_REAL_METHODS; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mockStatic; import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; public class ModdedStartupLifecycleTest { @@ -22,6 +25,7 @@ public class ModdedStartupLifecycleTest { } @Test + @SuppressWarnings("unchecked") public void restoresAfterWorldsLoadWithoutRepeatingDuringServerTicks() { NativeModdedServer server = mock(NativeModdedServer.class); AtomicBoolean worldsRefreshed = new AtomicBoolean(); @@ -32,28 +36,30 @@ public class ModdedStartupLifecycleTest { when(server.hasPlayerList()).thenReturn(true); ModdedDimensionRegistryStore.PersistentDimension dimension = new ModdedDimensionRegistryStore.PersistentDimension("iris:moon", "overworld", "overworld", 1337L); + ModdedDimensionInjection restore = mock(ModdedDimensionInjection.class); + when(restore.finish()).thenAnswer(invocation -> { + assertTrue(worldsRefreshed.get()); + return List.of(); + }); try (MockedStatic startup = mockStatic(ModdedStartup.class, CALLS_REAL_METHODS); MockedStatic store = mockStatic(ModdedDimensionRegistryStore.class); - MockedStatic manager = mockStatic(ModdedDimensionManager.class); + MockedStatic injection = mockStatic(ModdedDimensionInjection.class); MockedStatic datapack = mockStatic(ModdedForcedDatapack.class); MockedStatic audit = mockStatic(ModdedMixinAudit.class); MockedStatic log = mockStatic(ModdedIrisLog.class)) { startup.when(ModdedStartup::prepareForStartup).thenAnswer(invocation -> null); store.when(() -> ModdedDimensionRegistryStore.loadForStartup(server)).thenReturn(List.of(dimension)); - manager.when(() -> ModdedDimensionManager.restorePersistent(server, "iris:moon", "overworld", "overworld", 1337L)) - .thenAnswer(invocation -> { - assertTrue(worldsRefreshed.get()); - return null; - }); + injection.when(() -> ModdedDimensionInjection.start(eq(List.of(dimension)), any())).thenReturn(restore); ModdedLifecycleCallbacks.create().levelsReady().accept(server); - manager.verify(() -> ModdedDimensionManager.restorePersistent(server, "iris:moon", "overworld", "overworld", 1337L)); + verify(restore).finish(); ModdedStartup.runOnce(server); ModdedStartup.runOnce(server); store.verify(() -> ModdedDimensionRegistryStore.loadForStartup(server), times(1)); - manager.verify(() -> ModdedDimensionManager.restorePersistent(server, "iris:moon", "overworld", "overworld", 1337L), times(1)); + injection.verify(() -> ModdedDimensionInjection.start(any(), any()), times(1)); + verify(restore, times(1)).finish(); datapack.verify(ModdedForcedDatapack::verifyInjected, times(1)); audit.verify(ModdedMixinAudit::runOnce, times(1)); } diff --git a/adapters/neoforge/src/versions/1.21.1/resources/META-INF/neoforge.mods.toml b/adapters/neoforge/src/versions/1.21.1/resources/META-INF/neoforge.mods.toml deleted file mode 100644 index 33ebd2190..000000000 --- a/adapters/neoforge/src/versions/1.21.1/resources/META-INF/neoforge.mods.toml +++ /dev/null @@ -1,37 +0,0 @@ -modLoader = "javafml" -loaderVersion = "[3,)" -license = "GPL-3.0" -issueTrackerURL = "https://github.com/VolmitSoftware/Iris/issues" - -[[mixins]] -config = "volmlib.entity.mixins.json" - -[[mixins]] -config = "volmlib.client.mixins.json" - -[[accessTransformers]] -file = "META-INF/accesstransformer.cfg" - -[[mods]] -modId = "irisworldgen" -version = "${version}" -displayName = "Iris" -description = "Iris World Generation Engine (NeoForge adapter - native chunk generator, explicit Iris world datapack workflow, engine lifecycle)" -authors = "Arcane Arts (Volmit Software)" -credits = "cyberpwn, NextdoorPsycho, Vatuu" -displayURL = "https://docs.volmit.com/iris/" -logoFile = "assets/irisworldgen/icon.png" - -[[dependencies.irisworldgen]] -modId = "neoforge" -type = "required" -versionRange = "[21.1,21.2)" -ordering = "NONE" -side = "BOTH" - -[[dependencies.irisworldgen]] -modId = "minecraft" -type = "required" -versionRange = "[${minecraftVersion}]" -ordering = "NONE" -side = "BOTH"