From 280699bbce11b1ea75fbc89d6c2e49396f49f106 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zo=C3=AB=20Gidiere?= Date: Tue, 17 Jun 2025 15:21:21 -0600 Subject: [PATCH] Update to 1.21.6 and fix a lot of bugs in fabric impl --- buildSrc/build.gradle.kts | 6 ++ buildSrc/src/main/kotlin/DependencyConfig.kt | 6 ++ buildSrc/src/main/kotlin/Versions.kt | 14 ++--- .../bukkit/nms/v1_21_6/NMSBiomeInjector.java | 5 +- .../config/VanillaBiomeProperties.java | 12 ++++ platforms/fabric/build.gradle.kts | 6 +- .../mod/config/VanillaBiomeProperties.java | 16 ++++++ .../com/dfsek/terra/mod/util/BiomeUtil.java | 22 +++++++- platforms/mixin-lifecycle/build.gradle.kts | 10 ++-- .../terra/lifecycle/LifecycleEntryPoint.java | 28 +++++----- .../lifecycle/CreateWorldScreenMixin.java | 27 --------- .../mixin/lifecycle/MinecraftServerMixin.java | 7 --- .../mixin/lifecycle/RegistryLoaderMixin.java | 55 ++++++++++++++----- .../resources/terra.lifecycle.mixins.json | 3 - settings.gradle.kts | 6 ++ 15 files changed, 140 insertions(+), 83 deletions(-) delete mode 100644 platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/mixin/lifecycle/CreateWorldScreenMixin.java diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index a0f8703aa..43a36f224 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -6,6 +6,12 @@ plugins { repositories { mavenCentral() gradlePluginPortal() + maven("https://maven.solo-studios.ca/releases") { + name = "Solo Studios" + } + maven("https://maven.solo-studios.ca/snapshots") { + name = "Solo Studios" + } maven("https://repo.codemc.org/repository/maven-public") { name = "CodeMC" } diff --git a/buildSrc/src/main/kotlin/DependencyConfig.kt b/buildSrc/src/main/kotlin/DependencyConfig.kt index 80dd7730d..123ef5bd0 100644 --- a/buildSrc/src/main/kotlin/DependencyConfig.kt +++ b/buildSrc/src/main/kotlin/DependencyConfig.kt @@ -30,6 +30,12 @@ fun Project.configureDependencies() { repositories { mavenCentral() gradlePluginPortal() + maven("https://maven.solo-studios.ca/releases") { + name = "Solo Studios" + } + maven("https://maven.solo-studios.ca/snapshots") { + name = "Solo Studios" + } maven("https://maven.fabricmc.net/") { name = "FabricMC" } diff --git a/buildSrc/src/main/kotlin/Versions.kt b/buildSrc/src/main/kotlin/Versions.kt index f5d84adfc..3b1e3b6cc 100644 --- a/buildSrc/src/main/kotlin/Versions.kt +++ b/buildSrc/src/main/kotlin/Versions.kt @@ -10,7 +10,7 @@ object Versions { const val cloud = "2.0.0" - const val caffeine = "3.2.0" + const val caffeine = "3.2.1" const val slf4j = "2.0.17" @@ -22,14 +22,13 @@ object Versions { const val asm = "9.8" const val snakeYml = "2.4" const val jetBrainsAnnotations = "26.0.2" - const val junit = "5.13.0" + const val junit = "5.13.1" const val nbt = "6.1" } } object Fabric { - // TODO: Replace "1.21.6 with ${Mod.minecraft}" after 1.21.6 release - const val fabricAPI = "0.126.1+1.21.6" + const val fabricAPI = "0.127.0+${Mod.minecraft}" const val cloud = "2.0.0-beta.10" } // @@ -40,8 +39,9 @@ object Versions { object Mod { const val mixin = "0.15.5+mixin.0.8.7" + const val mixinExtras = "0.4.1" - const val minecraft = "1.21.6-rc1" + const val minecraft = "1.21.6" const val yarn = "$minecraft+build.1" const val fabricLoader = "0.16.14" @@ -57,7 +57,7 @@ object Versions { object Bukkit { const val minecraft = "1.21.6-R0.1" - const val paperBuild = "$minecraft-20250612.174129-4" + const val paperBuild = "$minecraft-20250617.170821-8" const val paper = paperBuild const val paperLib = "1.0.8" const val reflectionRemapper = "0.1.2" @@ -67,7 +67,7 @@ object Versions { const val cloud = "2.0.0-beta.10" } - // +// // object Sponge { // const val sponge = "9.0.0-SNAPSHOT" // const val mixin = "0.8.2" diff --git a/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/NMSBiomeInjector.java b/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/NMSBiomeInjector.java index bc112e129..5be493ca7 100644 --- a/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/NMSBiomeInjector.java +++ b/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/NMSBiomeInjector.java @@ -33,9 +33,8 @@ public class NMSBiomeInjector { .waterColor(Objects.requireNonNullElse(vanillaBiomeProperties.getWaterColor(), vanilla.getWaterColor())) .waterFogColor(Objects.requireNonNullElse(vanillaBiomeProperties.getWaterFogColor(), vanilla.getWaterFogColor())) .skyColor(Objects.requireNonNullElse(vanillaBiomeProperties.getSkyColor(), vanilla.getSkyColor())) - .grassColorModifier(Objects.requireNonNullElse(vanillaBiomeProperties.getGrassColorModifier(), vanilla.getSpecialEffects().getGrassColorModifier())); -// .grassColorOverride(Objects.requireNonNullElse(vanillaBiomeProperties.getGrassColor(), vanilla.getSpecialEffects().getGrassColorOverride().orElseGet(() -> Reflection.BIOME.invokeGrassColorFromTexture(vanilla)))) -// .foliageColorOverride(Objects.requireNonNullElse(vanillaBiomeProperties.getFoliageColor(), vanilla.getFoliageColor())); + .grassColorModifier(Objects.requireNonNullElse(vanillaBiomeProperties.getGrassColorModifier(), vanilla.getSpecialEffects().getGrassColorModifier())) + .backgroundMusicVolume(Objects.requireNonNullElse(vanillaBiomeProperties.getMusicVolume(), vanilla.getMusicVolume())); if(vanillaBiomeProperties.getGrassColor() == null) { vanilla.getSpecialEffects().getGrassColorOverride().ifPresent(effects::grassColorOverride); diff --git a/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/config/VanillaBiomeProperties.java b/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/config/VanillaBiomeProperties.java index 0b8e4c311..f516b7c79 100644 --- a/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/config/VanillaBiomeProperties.java +++ b/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/config/VanillaBiomeProperties.java @@ -38,6 +38,10 @@ public class VanillaBiomeProperties implements ConfigTemplate, Properties { @Default private Integer foliageColor = null; + @Value("colors.dry-foliage") + @Default + private Integer dryFoliageColor = null; + @Value("colors.sky") @Default private Integer skyColor = null; @@ -82,6 +86,10 @@ public class VanillaBiomeProperties implements ConfigTemplate, Properties { @Default private Music music = null; + @Value("sound.music-volume") + @Default + private Float musicVolume = null; + @Value("spawning") @Default private MobSpawnSettings spawnSettings = null; @@ -98,6 +106,10 @@ public class VanillaBiomeProperties implements ConfigTemplate, Properties { return foliageColor; } + public Integer getDryFoliageColor() { + return dryFoliageColor; + } + public Integer getGrassColor() { return grassColor; } diff --git a/platforms/fabric/build.gradle.kts b/platforms/fabric/build.gradle.kts index c90bc19f0..7e301083a 100644 --- a/platforms/fabric/build.gradle.kts +++ b/platforms/fabric/build.gradle.kts @@ -26,8 +26,10 @@ dependencies { modImplementation("net.fabricmc:fabric-loader:${Versions.Mod.fabricLoader}") -// modImplementation("org.incendo", "cloud-fabric", Versions.Fabric.cloud) -// include("org.incendo", "cloud-fabric", Versions.Fabric.cloud) + modImplementation("org.incendo", "cloud-fabric", Versions.Fabric.cloud) { + exclude("me.lucko", "fabric-permissions-api") + } + include("org.incendo", "cloud-fabric", Versions.Fabric.cloud) modRuntimeOnly("net.fabricmc.fabric-api", "fabric-api", Versions.Fabric.fabricAPI) } diff --git a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/VanillaBiomeProperties.java b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/VanillaBiomeProperties.java index db0d1139a..154d72867 100644 --- a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/VanillaBiomeProperties.java +++ b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/VanillaBiomeProperties.java @@ -38,6 +38,10 @@ public class VanillaBiomeProperties implements ConfigTemplate, Properties { @Default private Integer foliageColor = null; + @Value("colors.dry-foliage") + @Default + private Integer dryFoliageColor = null; + @Value("colors.sky") @Default private Integer skyColor = null; @@ -82,6 +86,10 @@ public class VanillaBiomeProperties implements ConfigTemplate, Properties { @Default private MusicSound music = null; + @Value("sound.music-volume") + @Default + private Float musicVolume = null; + @Value("spawning") @Default private SpawnSettings spawnSettings = null; @@ -111,6 +119,10 @@ public class VanillaBiomeProperties implements ConfigTemplate, Properties { return foliageColor; } + public Integer getDryFoliageColor() { + return dryFoliageColor; + } + public Integer getSkyColor() { return skyColor; } @@ -155,6 +167,10 @@ public class VanillaBiomeProperties implements ConfigTemplate, Properties { return music; } + public Float getMusicVolume() { + return musicVolume; + } + public SpawnSettings getSpawnSettings() { return spawnSettings; } diff --git a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/util/BiomeUtil.java b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/util/BiomeUtil.java index a5b406bf7..b3ee4c774 100644 --- a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/util/BiomeUtil.java +++ b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/util/BiomeUtil.java @@ -35,9 +35,25 @@ public class BiomeUtil { .skyColor(Objects.requireNonNullElse(vanillaBiomeProperties.getSkyColor(), vanilla.getSkyColor())) .grassColorModifier( Objects.requireNonNullElse(vanillaBiomeProperties.getGrassColorModifier(), vanilla.getEffects().getGrassColorModifier())) - .grassColor(Objects.requireNonNullElse(vanillaBiomeProperties.getGrassColor(), - vanilla.getEffects().getGrassColor().orElseGet(() -> ((BiomeInvoker) ((Object) vanilla)).invokeGetDefaultGrassColor()))) - .foliageColor(Objects.requireNonNullElse(vanillaBiomeProperties.getFoliageColor(), vanilla.getFoliageColor())); + .musicVolume(Objects.requireNonNullElse(vanillaBiomeProperties.getMusicVolume(), vanilla.getMusicVolume())); + + if(vanillaBiomeProperties.getGrassColor() == null) { + vanilla.getEffects().getGrassColor().ifPresent(effects::grassColor); + } else { + effects.grassColor(vanillaBiomeProperties.getGrassColor()); + } + + if(vanillaBiomeProperties.getFoliageColor() == null) { + vanilla.getEffects().getFoliageColor().ifPresent(effects::foliageColor); + } else { + effects.foliageColor(vanillaBiomeProperties.getFoliageColor()); + } + + if(vanillaBiomeProperties.getDryFoliageColor() == null) { + vanilla.getEffects().getDryFoliageColor().ifPresent(effects::dryFoliageColor); + } else { + effects.dryFoliageColor(vanillaBiomeProperties.getDryFoliageColor()); + } if(vanillaBiomeProperties.getParticleConfig() == null) { vanilla.getEffects().getParticleConfig().ifPresent(effects::particleConfig); diff --git a/platforms/mixin-lifecycle/build.gradle.kts b/platforms/mixin-lifecycle/build.gradle.kts index e995c487c..f93b86cbe 100644 --- a/platforms/mixin-lifecycle/build.gradle.kts +++ b/platforms/mixin-lifecycle/build.gradle.kts @@ -7,6 +7,7 @@ dependencies { shadedApi(project(":common:implementation:base")) compileOnly("net.fabricmc:sponge-mixin:${Versions.Mod.mixin}") + compileOnly("io.github.llamalad7:mixinextras-common:${Versions.Mod.mixinExtras}") annotationProcessor("net.fabricmc:sponge-mixin:${Versions.Mod.mixin}") annotationProcessor("dev.architectury:architectury-loom:${Versions.Mod.architecuryLoom}") @@ -15,10 +16,11 @@ dependencies { minecraft("com.mojang:minecraft:${Versions.Mod.minecraft}") mappings("net.fabricmc:yarn:${Versions.Mod.yarn}:v2") -// modImplementation("org.incendo", "cloud-fabric", Versions.Fabric.cloud) { -// exclude("net.fabricmc") -// exclude("net.fabricmc.fabric-api") -// } + modImplementation("org.incendo", "cloud-fabric", Versions.Fabric.cloud) { + exclude("net.fabricmc") + exclude("net.fabricmc.fabric-api") + exclude("me.lucko", "fabric-permissions-api") + } } loom { diff --git a/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/LifecycleEntryPoint.java b/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/LifecycleEntryPoint.java index 010290641..48dc88249 100644 --- a/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/LifecycleEntryPoint.java +++ b/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/LifecycleEntryPoint.java @@ -4,9 +4,9 @@ import com.dfsek.terra.api.command.CommandSender; import com.dfsek.terra.api.event.events.platform.CommandRegistrationEvent; import net.minecraft.server.command.ServerCommandSource; -//import org.incendo.cloud.SenderMapper; -//import org.incendo.cloud.execution.ExecutionCoordinator; -//import org.incendo.cloud.fabric.FabricServerCommandManager; +import org.incendo.cloud.SenderMapper; +import org.incendo.cloud.execution.ExecutionCoordinator; +import org.incendo.cloud.fabric.FabricServerCommandManager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -17,16 +17,16 @@ public final class LifecycleEntryPoint { public static void initialize(String modName, LifecyclePlatform platform) { logger.info("Initializing Terra {} mod...", modName); -// FabricServerCommandManager manager = new FabricServerCommandManager<>( -// ExecutionCoordinator.simpleCoordinator(), -// SenderMapper.create( -// serverCommandSource -> (CommandSender) serverCommandSource, -// commandSender -> (ServerCommandSource) commandSender) -// ); -// -// -// manager.brigadierManager().setNativeNumberSuggestions(false); -// -// platform.getEventManager().callEvent(new CommandRegistrationEvent(manager)); + FabricServerCommandManager manager = new FabricServerCommandManager<>( + ExecutionCoordinator.simpleCoordinator(), + SenderMapper.create( + serverCommandSource -> (CommandSender) serverCommandSource, + commandSender -> (ServerCommandSource) commandSender) + ); + + + manager.brigadierManager().setNativeNumberSuggestions(false); + + platform.getEventManager().callEvent(new CommandRegistrationEvent(manager)); } } diff --git a/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/mixin/lifecycle/CreateWorldScreenMixin.java b/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/mixin/lifecycle/CreateWorldScreenMixin.java deleted file mode 100644 index 61f385939..000000000 --- a/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/mixin/lifecycle/CreateWorldScreenMixin.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.dfsek.terra.lifecycle.mixin.lifecycle; - - -import com.dfsek.terra.api.Platform; - -import com.dfsek.terra.mod.CommonPlatform; - -import com.dfsek.terra.mod.ModPlatform; - -import net.minecraft.client.gui.screen.world.CreateWorldScreen; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -import static com.dfsek.terra.lifecycle.util.LifecycleUtil.initialized; - - -@Mixin(CreateWorldScreen.class) -public class CreateWorldScreenMixin { - @Inject(method = "onCloseScreen()V", at = @At("HEAD")) - public void onClose(CallbackInfo ci) { - ModPlatform platform = CommonPlatform.get(); - platform.getRawConfigRegistry().clear(); - initialized = false; - } -} diff --git a/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/mixin/lifecycle/MinecraftServerMixin.java b/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/mixin/lifecycle/MinecraftServerMixin.java index 2526079ed..e59eacd2f 100644 --- a/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/mixin/lifecycle/MinecraftServerMixin.java +++ b/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/mixin/lifecycle/MinecraftServerMixin.java @@ -34,11 +34,4 @@ public class MinecraftServerMixin { WorldGenerationProgressListenerFactory worldGenerationProgressListenerFactory, CallbackInfo ci) { LifecyclePlatform.setServer((MinecraftServer) (Object) this); } - - @Inject(method = "shutdown()V", at = @At("RETURN")) - private void injectShutdown(CallbackInfo ci) { - ModPlatform platform = CommonPlatform.get(); - platform.getRawConfigRegistry().clear(); - initialized = false; - } } diff --git a/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/mixin/lifecycle/RegistryLoaderMixin.java b/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/mixin/lifecycle/RegistryLoaderMixin.java index c04e0fad7..10b840aae 100644 --- a/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/mixin/lifecycle/RegistryLoaderMixin.java +++ b/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/mixin/lifecycle/RegistryLoaderMixin.java @@ -1,5 +1,8 @@ package com.dfsek.terra.lifecycle.mixin.lifecycle; +import com.dfsek.terra.mod.CommonPlatform; +import com.dfsek.terra.mod.ModPlatform; + import net.minecraft.enchantment.Enchantment; import net.minecraft.registry.MutableRegistry; import net.minecraft.registry.Registry; @@ -7,6 +10,7 @@ import net.minecraft.registry.RegistryKey; import net.minecraft.registry.RegistryKeys; import net.minecraft.registry.RegistryLoader; import net.minecraft.registry.RegistryLoader.Loader; +import net.minecraft.registry.RegistryWrapper; import net.minecraft.world.biome.Biome; import net.minecraft.world.biome.source.MultiNoiseBiomeSourceParameterList; import net.minecraft.world.dimension.DimensionType; @@ -18,10 +22,27 @@ import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Coerce; +import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.Redirect; +import com.llamalad7.mixinextras.sugar.Local; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Unique; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Coerce; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +import net.minecraft.registry.DynamicRegistryManager; +import net.minecraft.registry.RegistryKeys; +import net.minecraft.registry.RegistryLoader; +import net.minecraft.registry.RegistryWrapper; +import net.minecraft.resource.ResourceManager; + import java.util.List; import java.util.Optional; +import java.util.concurrent.atomic.AtomicBoolean; import java.util.function.Consumer; import com.dfsek.terra.lifecycle.LifecyclePlatform; @@ -38,31 +59,39 @@ public class RegistryLoaderMixin { @Final private static Logger LOGGER; - @Redirect( + @Unique + private static final AtomicBoolean LOADING_DYNAMIC_REGISTRIES = new AtomicBoolean(false); + + @Inject(method = "loadFromResource(Lnet/minecraft/resource/ResourceManager;Ljava/util/List;Ljava/util/List;)Lnet/minecraft/registry/DynamicRegistryManager$Immutable;", at = @At("HEAD")) + private static void loadFromResources(ResourceManager resourceManager, List> registries, List> entries, CallbackInfoReturnable cir) { + LOADING_DYNAMIC_REGISTRIES.set(entries.stream().anyMatch(entry -> entry.key() == RegistryKeys.BIOME)); + } + + @Inject( method = "load(Lnet/minecraft/registry/RegistryLoader$RegistryLoadable;Ljava/util/List;Ljava/util/List;)Lnet/minecraft/registry/DynamicRegistryManager$Immutable;", at = @At( value = "INVOKE", target = "Ljava/util/List;forEach(Ljava/util/function/Consumer;)V", - ordinal = 1 // we want right after the first forEach - ) + ordinal = 1 + ) ) - private static void grabManager(List> instance, Consumer> consumer) { - if(!initialized) { - MutableRegistry biomes = extractRegistry(instance, RegistryKeys.BIOME).orElseThrow(); - MutableRegistry dimensionTypes = extractRegistry(instance, RegistryKeys.DIMENSION_TYPE).orElseThrow(); - MutableRegistry worldPresets = extractRegistry(instance, RegistryKeys.WORLD_PRESET).orElseThrow(); - MutableRegistry chunkGeneratorSettings = extractRegistry(instance, + private static void beforeFreeze(@Coerce Object loadable, List> wrappers, List> entries, CallbackInfoReturnable cir, @Local(ordinal = 2) List> registriesList) { + if (LOADING_DYNAMIC_REGISTRIES.getAndSet(false)) { + ModPlatform platform = CommonPlatform.get(); + platform.getRawConfigRegistry().clear(); + MutableRegistry biomes = extractRegistry(registriesList, RegistryKeys.BIOME).orElseThrow(); + MutableRegistry dimensionTypes = extractRegistry(registriesList, RegistryKeys.DIMENSION_TYPE).orElseThrow(); + MutableRegistry worldPresets = extractRegistry(registriesList, RegistryKeys.WORLD_PRESET).orElseThrow(); + MutableRegistry chunkGeneratorSettings = extractRegistry(registriesList, RegistryKeys.CHUNK_GENERATOR_SETTINGS).orElseThrow(); - MutableRegistry multiNoiseBiomeSourceParameterLists = extractRegistry(instance, + MutableRegistry multiNoiseBiomeSourceParameterLists = extractRegistry(registriesList, RegistryKeys.MULTI_NOISE_BIOME_SOURCE_PARAMETER_LIST).orElseThrow(); - MutableRegistry enchantments = extractRegistry(instance, RegistryKeys.ENCHANTMENT).orElseThrow(); + MutableRegistry enchantments = extractRegistry(registriesList, RegistryKeys.ENCHANTMENT).orElseThrow(); LifecyclePlatform.setRegistries(biomes, dimensionTypes, chunkGeneratorSettings, multiNoiseBiomeSourceParameterLists, enchantments); LifecycleUtil.initialize(biomes, worldPresets); - initialized = true; } - instance.forEach(consumer); } @Unique diff --git a/platforms/mixin-lifecycle/src/main/resources/terra.lifecycle.mixins.json b/platforms/mixin-lifecycle/src/main/resources/terra.lifecycle.mixins.json index 0646899cf..26e9f9006 100644 --- a/platforms/mixin-lifecycle/src/main/resources/terra.lifecycle.mixins.json +++ b/platforms/mixin-lifecycle/src/main/resources/terra.lifecycle.mixins.json @@ -12,9 +12,6 @@ "lifecycle.RegistryLoaderMixin", "lifecycle.SaveLoadingMixin" ], - "client": [ - "lifecycle.CreateWorldScreenMixin" - ], "server": [ ], "injectors": { diff --git a/settings.gradle.kts b/settings.gradle.kts index 86bb41bfb..213ede72c 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -26,6 +26,12 @@ include(":platforms:minestom:example") pluginManagement { repositories { gradlePluginPortal() + maven("https://maven.solo-studios.ca/releases") { + name = "Solo Studios" + } + maven("https://maven.solo-studios.ca/snapshots") { + name = "Solo Studios" + } maven("https://maven.fabricmc.net") { name = "Fabric Maven" }