From 779834267ee766573372fe019a064d166bc44d6b Mon Sep 17 00:00:00 2001 From: dfsek Date: Sat, 11 Jun 2022 23:56:28 -0700 Subject: [PATCH] fix BiomeProviderHolder NPE --- .../dfsek/terra/fabric/generation/BiomeProviderHolder.java | 4 ++-- .../fabric/generation/FabricChunkGeneratorWrapper.java | 4 ++-- .../dfsek/terra/fabric/mixin/cache/ChunkRegionMixin.java | 7 +++---- .../dfsek/terra/fabric/mixin/cache/ProtoChunkMixin.java | 4 ++-- .../mixin/implementations/world/ChunkRegionMixin.java | 2 +- 5 files changed, 10 insertions(+), 11 deletions(-) diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/BiomeProviderHolder.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/BiomeProviderHolder.java index d3aa529e8..2204a59fc 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/BiomeProviderHolder.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/BiomeProviderHolder.java @@ -4,7 +4,7 @@ import com.dfsek.terra.api.world.biome.generation.BiomeProvider; public interface BiomeProviderHolder { - void setBiomeProvider(BiomeProvider biomeProvider); + void terra$setHeldBiomeProvider(BiomeProvider biomeProvider); - BiomeProvider getBiomeProvider(); + BiomeProvider terra$getHeldBiomeProvider(); } diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/FabricChunkGeneratorWrapper.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/FabricChunkGeneratorWrapper.java index 92bdf3fe7..c0faf5181 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/FabricChunkGeneratorWrapper.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/FabricChunkGeneratorWrapper.java @@ -94,7 +94,7 @@ public class FabricChunkGeneratorWrapper extends net.minecraft.world.gen.chunk.C if(chunk instanceof net.minecraft.world.chunk.ProtoChunk) { ChunkPos pos = chunk.getPos(); ((BiomeProviderHolder) chunk) - .setBiomeProvider(pack.getBiomeProvider() + .terra$setHeldBiomeProvider(pack.getBiomeProvider() .caching((ProtoWorld) ((StructureAccessorAccessor) structureAccessor).getWorld(), pos.x, pos.z)); } return super.populateBiomes(biomeRegistry, executor, noiseConfig, blender, structureAccessor, chunk); @@ -138,7 +138,7 @@ public class FabricChunkGeneratorWrapper extends net.minecraft.world.gen.chunk.C ProtoWorld world = (ProtoWorld) ((StructureAccessorAccessor) structureAccessor).getWorld(); BiomeProvider biomeProvider; if(chunk instanceof BiomeProviderHolder providerHolder) { - biomeProvider = providerHolder.getBiomeProvider(); + biomeProvider = providerHolder.terra$getHeldBiomeProvider(); if(biomeProvider == null) { biomeProvider = pack.getBiomeProvider().caching(world); } diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/cache/ChunkRegionMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/cache/ChunkRegionMixin.java index b24dfbf6b..8f69f0523 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/cache/ChunkRegionMixin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/cache/ChunkRegionMixin.java @@ -7,7 +7,6 @@ import com.dfsek.terra.fabric.generation.BiomeProviderHolder; import net.minecraft.server.world.ServerWorld; import net.minecraft.world.ChunkRegion; import net.minecraft.world.chunk.ChunkStatus; -import net.minecraft.world.chunk.ProtoChunk; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Implements; import org.spongepowered.asm.mixin.Interface; @@ -31,18 +30,18 @@ public class ChunkRegionMixin { @Inject(method = "", at = @At("RETURN")) public void addProvider(ServerWorld world, List chunks, ChunkStatus status, int placementRadius, CallbackInfo ci) { if(centerPos instanceof BiomeProviderHolder providerHolder) { - biomeProvider = providerHolder.getBiomeProvider(); + biomeProvider = providerHolder.terra$getHeldBiomeProvider(); } } - public void provider$setBiomeProvider(BiomeProvider provider) { + public void provider$terra$setHeldBiomeProvider(BiomeProvider provider) { if(this.biomeProvider != null) { throw new IllegalStateException("Already set biome provider for chunk " + this); } this.biomeProvider = provider; } - public BiomeProvider provider$getBiomeProvider() { + public BiomeProvider provider$terra$getHeldBiomeProvider() { return biomeProvider; } } diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/cache/ProtoChunkMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/cache/ProtoChunkMixin.java index 6818d353f..0b0684947 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/cache/ProtoChunkMixin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/cache/ProtoChunkMixin.java @@ -14,14 +14,14 @@ import org.spongepowered.asm.mixin.Mixin; public class ProtoChunkMixin { private BiomeProvider biomeProvider; - public void provider$setBiomeProvider(BiomeProvider provider) { + public void provider$terra$setHeldBiomeProvider(BiomeProvider provider) { if(this.biomeProvider != null) { throw new IllegalStateException("Already set biome provider for chunk " + this); } this.biomeProvider = provider; } - public BiomeProvider provider$getBiomeProvider() { + public BiomeProvider provider$terra$getHeldBiomeProvider() { return biomeProvider; } } diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ChunkRegionMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ChunkRegionMixin.java index 7b1562d59..5805ebc1c 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ChunkRegionMixin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ChunkRegionMixin.java @@ -131,7 +131,7 @@ public abstract class ChunkRegionMixin { } public BiomeProvider terraWorld$getBiomeProvider() { - BiomeProvider provider = ((BiomeProviderHolder) this).getBiomeProvider(); + BiomeProvider provider = ((BiomeProviderHolder) this).terra$getHeldBiomeProvider(); if(provider != null) { return provider; }