Skip to content

Commit

Permalink
Minor modifications to #5 for code style, etc.
Browse files Browse the repository at this point in the history
- Resolved crash with bclib during startup (thanks quiqueck)
- WARNING: Biolith still does not work reliably when bclib is present
  • Loading branch information
gniftygnome committed Jun 18, 2023
1 parent b666d7d commit cb05393
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ public class BiomeCoordinator {
protected static DynamicRegistryManager.Immutable registryManager;

public static void setRegistryManager(CombinedDynamicRegistries<ServerDynamicRegistryType> combinedDynamicRegistries) {
// Called by biolith$earlyCaptureRegistries() in MixinMinecraftServer and MixinServerLoad so we can set this really early.
// Called by biolith$earlyCaptureRegistries() in MixinMinecraftServer and MixinServerLoader so we can set this really early.
registryManager = combinedDynamicRegistries.getCombinedRegistryManager();
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,27 +1,22 @@
package com.terraformersmc.biolith.impl.mixin;

import com.terraformersmc.biolith.impl.biome.BiomeCoordinator;
import net.minecraft.registry.CombinedDynamicRegistries;
import net.minecraft.registry.ServerDynamicRegistryType;
import net.minecraft.resource.LifecycledResourceManager;
import net.minecraft.server.DataPackContents;
import net.minecraft.server.SaveLoader;

import com.terraformersmc.biolith.impl.biome.BiomeCoordinator;
import org.spongepowered.asm.mixin.Final;
import net.minecraft.world.SaveProperties;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.ModifyVariable;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

@Mixin(value=SaveLoader.class, priority = 500)
@Mixin(value= SaveLoader.class, priority = 500)
public class MixinSaveLoader {
@Shadow @Final private CombinedDynamicRegistries<ServerDynamicRegistryType> combinedDynamicRegistries;

@ModifyVariable(method = "<init>", argsOnly = true, at = @At(value = "INVOKE", target = "Ljava/lang/Record;<init>()V", shift = At.Shift.AFTER))
private CombinedDynamicRegistries<ServerDynamicRegistryType> biolith$earlyCaptureRegistries(
CombinedDynamicRegistries<ServerDynamicRegistryType> combinedDynamicRegistries
) {
System.out.println("Biolith: early capture registries");
// We need the registries really early in case TerraBlender calls us before the Fabric server start event.
@Inject(method = "<init>", at = @At(value = "INVOKE", target = "Ljava/lang/Record;<init>()V", shift = At.Shift.AFTER))
private void biolith$earlyCaptureRegistries(LifecycledResourceManager lifecycledResourceManager, DataPackContents dataPackContents, CombinedDynamicRegistries<ServerDynamicRegistryType> combinedDynamicRegistries, SaveProperties saveProperties, CallbackInfo ci) {
// We need the registries really early in case BClib or TerraBlender call us before the Fabric server start event.
BiomeCoordinator.setRegistryManager(combinedDynamicRegistries);
return combinedDynamicRegistries;
}
}

0 comments on commit cb05393

Please sign in to comment.