From de80d3b44e96d417c79ff5840b018ebfd62d10e6 Mon Sep 17 00:00:00 2001 From: Sam Kirby Date: Sat, 10 Aug 2019 02:59:40 +0100 Subject: [PATCH] Don't overwrite ChunkPrimer#setBlockState - compat for VSD Closes #81 --- .../java/org/dimdev/jeid/mixin/core/MixinChunkPrimer.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/dimdev/jeid/mixin/core/MixinChunkPrimer.java b/src/main/java/org/dimdev/jeid/mixin/core/MixinChunkPrimer.java index 0af20bd..7dfa811 100644 --- a/src/main/java/org/dimdev/jeid/mixin/core/MixinChunkPrimer.java +++ b/src/main/java/org/dimdev/jeid/mixin/core/MixinChunkPrimer.java @@ -7,6 +7,9 @@ import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Overwrite; 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.CallbackInfo; @Mixin(ChunkPrimer.class) @SuppressWarnings("deprecation") @@ -21,9 +24,10 @@ public IBlockState getBlockState(int x, int y, int z) { return state == null ? DEFAULT_STATE : state; } - @Overwrite - public void setBlockState(int x, int y, int z, IBlockState state) { + @Inject(method = "setBlockState", at = @At(value = "FIELD", target = "Lnet/minecraft/world/chunk/ChunkPrimer;data:[C"), cancellable = true) + private void setIntBlockState(int x, int y, int z, IBlockState state, CallbackInfo ci) { intData[getBlockIndex(x, y, z)] = Block.BLOCK_STATE_IDS.get(state); + ci.cancel(); } @Overwrite