fix MinecraftServer_BiomeRegistrationMixin

This commit is contained in:
dfsek
2022-03-23 22:01:47 -07:00
parent 2075ed101b
commit 480bc738dd
3 changed files with 29 additions and 33 deletions

View File

@@ -0,0 +1,28 @@
package com.dfsek.terra.fabric.mixin.lifecycle;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.registry.DynamicRegistryManager.Immutable;
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.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
import java.util.Collection;
import java.util.concurrent.CompletableFuture;
import com.dfsek.terra.fabric.FabricEntryPoint;
import com.dfsek.terra.fabric.event.BiomeRegistrationEvent;
@Mixin(MinecraftServer.class)
public abstract class MinecraftServer_BiomeRegistrationMixin {
@Shadow
public abstract Immutable getRegistryManager();
@Inject(method = "reloadResources",
at = @At("HEAD"))
private void inject(Collection<String> dataPacks, CallbackInfoReturnable<CompletableFuture<Void>> cir) {
FabricEntryPoint.getPlatform().getEventManager().callEvent(new BiomeRegistrationEvent(getRegistryManager())); // register biomes
}
}

View File

@@ -1,32 +0,0 @@
package com.dfsek.terra.fabric.mixin.lifecycle;
import net.minecraft.resource.ResourcePack;
import net.minecraft.resource.ServerResourceManager;
import net.minecraft.server.command.CommandManager;
import net.minecraft.util.registry.DynamicRegistryManager;
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.CallbackInfoReturnable;
import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.Executor;
import com.dfsek.terra.fabric.FabricEntryPoint;
import com.dfsek.terra.fabric.event.BiomeRegistrationEvent;
@Mixin(ServerResourceManager.class)
public class ServerResourceManagerMixin {
@Inject(method = "reload(Ljava/util/List;Lnet/minecraft/util/registry/DynamicRegistryManager;" +
"Lnet/minecraft/server/command/CommandManager$RegistrationEnvironment;ILjava/util/concurrent/Executor;" +
"Ljava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture;",
at = @At("HEAD"))
private static void inject(List<ResourcePack> packs, DynamicRegistryManager registryManager,
CommandManager.RegistrationEnvironment commandEnvironment, int functionPermissionLevel,
Executor prepareExecutor,
Executor applyExecutor, CallbackInfoReturnable<CompletableFuture<ServerResourceManager>> cir) {
FabricEntryPoint.getPlatform().getEventManager().callEvent(new BiomeRegistrationEvent(registryManager)); // register biomes
}
}

View File

@@ -33,7 +33,7 @@
"implementations.world.ChunkRegionMixin",
"implementations.world.ServerWorldMixin",
"lifecycle.MinecraftServerMixin",
"lifecycle.ServerResourceManagerMixin"
"lifecycle.MinecraftServer_BiomeRegistrationMixin"
],
"client": [
"access.GeneratorTypeAccessor",