package mods.betterfoliage.mixin; import mods.betterfoliage.ClientChunkLoadCallback; import net.minecraft.client.world.ClientChunkManager; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.PacketByteBuf; import net.minecraft.world.biome.source.BiomeArray; import net.minecraft.world.chunk.WorldChunk; import org.jetbrains.annotations.Nullable; 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; @Mixin(ClientChunkManager.class) public class MixinClientChunkManager { private static final String onLoadChunkFromPacket = "Lnet/minecraft/client/world/ClientChunkManager;loadChunkFromPacket(IILnet/minecraft/world/biome/source/BiomeArray;Lnet/minecraft/network/PacketByteBuf;Lnet/minecraft/nbt/CompoundTag;IZ)Lnet/minecraft/world/chunk/WorldChunk;"; @Inject(method = onLoadChunkFromPacket, at = @At(value = "RETURN", ordinal = 2)) void onLoadChunkFromPacket(int x, int z, @Nullable BiomeArray biomes, PacketByteBuf buf, CompoundTag tag, int verticalStripBitmask, boolean complete, CallbackInfoReturnable ci) { ClientChunkLoadCallback.EVENT.invoker().loadChunk(ci.getReturnValue()); } }