add mixin to inject flora

This commit is contained in:
dfsek 2022-12-21 21:34:44 -07:00
parent ee336b01a6
commit ded308c01c
3 changed files with 54 additions and 21 deletions

View File

@ -17,6 +17,7 @@ import net.minecraft.world.gen.chunk.ChunkGeneratorSettings;
import org.checkerframework.checker.units.qual.C;
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.Redirect;
import java.util.List;
@ -28,7 +29,6 @@ import com.dfsek.terra.lifecycle.util.LifecycleUtil;
@Mixin(RegistryLoader.class)
public class RegistryLoaderMixin {
@SuppressWarnings("unchecked")
@Redirect(
method = "load(Lnet/minecraft/resource/ResourceManager;Lnet/minecraft/registry/DynamicRegistryManager;Ljava/util/List;)" +
"Lnet/minecraft/registry/DynamicRegistryManager$Immutable;",

View File

@ -0,0 +1,32 @@
package com.dfsek.terra.lifecycle.mixin.lifecycle;
import com.dfsek.terra.lifecycle.util.LifecycleUtil;
import com.dfsek.terra.mod.util.MinecraftUtil;
import net.minecraft.registry.DynamicRegistryManager;
import net.minecraft.registry.RegistryKeys;
import net.minecraft.server.SaveLoading;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.ModifyArg;
@Mixin(SaveLoading.class)
public class SaveLoadingMixin {
@ModifyArg(
method = "method_42097(Lnet/minecraft/registry/DynamicRegistryManager$Immutable;" +
"Lnet/minecraft/server/SaveLoading$SaveApplierFactory;Lnet/minecraft/resource/LifecycledResourceManager;" +
"Lnet/minecraft/registry/CombinedDynamicRegistries;Lnet/minecraft/server/SaveLoading$LoadContext;" +
"Lnet/minecraft/server/DataPackContents;)Ljava/lang/Object;",
at = @At(
value = "INVOKE",
target = "Lnet/minecraft/server/DataPackContents;refresh(Lnet/minecraft/registry/DynamicRegistryManager;)V"
),
index = 0
)
private static DynamicRegistryManager grabManager(DynamicRegistryManager in) {
MinecraftUtil.registerFlora(in.get(RegistryKeys.BIOME));
return in;
}
}

View File

@ -1,22 +1,23 @@
{
"required" : true,
"minVersion" : "0.8",
"package" : "com.dfsek.terra.lifecycle.mixin",
"compatibilityLevel" : "JAVA_17",
"mixins" : [
"required": true,
"minVersion": "0.8",
"package": "com.dfsek.terra.lifecycle.mixin",
"compatibilityLevel": "JAVA_17",
"mixins": [
"NoiseConfigMixin",
"RegistryEntryReferenceInvoker",
"RegistryMixin",
"SimpleRegistryMixin",
"lifecycle.MinecraftServerMixin",
"lifecycle.RegistryLoaderMixin"
"lifecycle.RegistryLoaderMixin",
"lifecycle.SaveLoadingMixin"
],
"client" : [
"client": [
],
"server" : [
"server": [
],
"injectors" : {
"defaultRequire" : 1
"injectors": {
"defaultRequire": 1
},
"refmap" : "terra.lifecycle.refmap.json"
"refmap": "terra.lifecycle.refmap.json"
}