diff --git a/src/main/java/net/minecraftforge/registries/GameData.java b/src/main/java/net/minecraftforge/registries/GameData.java index 5ac47a0482..3047ed66b3 100644 --- a/src/main/java/net/minecraftforge/registries/GameData.java +++ b/src/main/java/net/minecraftforge/registries/GameData.java @@ -164,7 +164,7 @@ public class GameData // Worldgen makeRegistry(WORLD_CARVERS, c(WorldCarver.class)).disableSaving().disableSync().create(); makeRegistry(SURFACE_BUILDERS, c(SurfaceBuilder.class)).disableSaving().disableSync().create(); - makeRegistry(FEATURES, c(Feature.class)).addCallback(FeatureCallbacks.INSTANCE).disableSaving().create(); + makeRegistry(FEATURES, c(Feature.class)).addCallback(FeatureCallbacks.INSTANCE).disableSaving().disableSync().create(); makeRegistry(DECORATORS, c(Placement.class)).disableSaving().disableSync().create(); makeRegistry(CHUNK_STATUS, ChunkStatus.class, "empty").disableSaving().disableSync().create(); makeRegistry(STRUCTURE_FEATURES, c(Structure.class)).disableSaving().disableSync().create(); @@ -174,7 +174,7 @@ public class GameData makeRegistry(TREE_DECORATOR_TYPES, c(TreeDecoratorType.class)).disableSaving().disableSync().create(); // Dynamic Worldgen - makeRegistry(BIOMES, Biome.class).create(); + makeRegistry(BIOMES, Biome.class).disableSync().create(); // Custom forge registries makeRegistry(DATA_SERIALIZERS, DataSerializerEntry.class, 256 /*vanilla space*/, MAX_VARINT).disableSaving().disableOverrides().addCallback(SerializerCallbacks.INSTANCE).create(); diff --git a/src/test/java/net/minecraftforge/debug/world/WorldgenRegistryDesyncTest.java b/src/test/java/net/minecraftforge/debug/world/WorldgenRegistryDesyncTest.java new file mode 100644 index 0000000000..c8e38886a9 --- /dev/null +++ b/src/test/java/net/minecraftforge/debug/world/WorldgenRegistryDesyncTest.java @@ -0,0 +1,30 @@ +package net.minecraftforge.debug.world; + +import net.minecraft.world.biome.Biome; +import net.minecraft.world.biome.BiomeMaker; +import net.minecraft.world.gen.feature.DungeonsFeature; +import net.minecraft.world.gen.feature.Feature; +import net.minecraft.world.gen.feature.NoFeatureConfig; +import net.minecraftforge.eventbus.api.IEventBus; +import net.minecraftforge.fml.RegistryObject; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; +import net.minecraftforge.registries.DeferredRegister; +import net.minecraftforge.registries.ForgeRegistries; + +@Mod("worldgen_registry_desync_test") +@Mod.EventBusSubscriber +public class WorldgenRegistryDesyncTest { + + public static final DeferredRegister> FEATURES = DeferredRegister.create(ForgeRegistries.FEATURES, "worldgen_registry_desync_test"); + public static final RegistryObject> dungeon = FEATURES.register("dungeon", () -> new DungeonsFeature(NoFeatureConfig.field_236558_a_)); + public static final DeferredRegister BIOMES = DeferredRegister.create(ForgeRegistries.BIOMES, "worldgen_registry_desync_test"); + public static final RegistryObject biome = BIOMES.register("biome", BiomeMaker::makeVoidBiome); + + public WorldgenRegistryDesyncTest() + { + IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus(); + FEATURES.register(modEventBus); + BIOMES.register(modEventBus); + } +} diff --git a/src/test/resources/META-INF/mods.toml b/src/test/resources/META-INF/mods.toml index 46ead716a5..e02bcbaa0c 100644 --- a/src/test/resources/META-INF/mods.toml +++ b/src/test/resources/META-INF/mods.toml @@ -108,3 +108,5 @@ license="LGPL v2.1" modId="custom_sound_type_test" [[mods]] modId="item_modifier_test" +[[mods]] + modId="worldgen_registry_desync_test" \ No newline at end of file