From 675d45e73e303246db765336b768b7f3f23a2b84 Mon Sep 17 00:00:00 2001 From: JIA <430731352@qq.com> Date: Sun, 28 Jun 2026 17:52:09 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E7=A6=81=E7=94=A8?= =?UTF-8?q?=E6=96=B9=E5=9D=97=E5=AE=A2=E6=88=B7=E7=AB=AF=E5=8C=BA=E5=9D=97?= =?UTF-8?q?=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ChunkAccessDisabledBlockMixin.java | 3 +- .../LevelChunkDisabledBlockMixin.java | 33 +++++++++++++++++++ .../minecraft/LevelDisabledBlockMixin.java | 4 +++ .../resources/createdelightcore.mixins.json | 1 + 4 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 src/main/java/io/github/jasonsimpart/mixin/minecraft/LevelChunkDisabledBlockMixin.java diff --git a/src/main/java/io/github/jasonsimpart/mixin/minecraft/ChunkAccessDisabledBlockMixin.java b/src/main/java/io/github/jasonsimpart/mixin/minecraft/ChunkAccessDisabledBlockMixin.java index 4d25b5aa..7984b654 100644 --- a/src/main/java/io/github/jasonsimpart/mixin/minecraft/ChunkAccessDisabledBlockMixin.java +++ b/src/main/java/io/github/jasonsimpart/mixin/minecraft/ChunkAccessDisabledBlockMixin.java @@ -5,13 +5,12 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.ChunkAccess; import net.minecraft.world.level.chunk.ImposterProtoChunk; -import net.minecraft.world.level.chunk.LevelChunk; import net.minecraft.world.level.chunk.ProtoChunk; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.ModifyVariable; -@Mixin({ProtoChunk.class, LevelChunk.class, ImposterProtoChunk.class}) +@Mixin({ProtoChunk.class, ImposterProtoChunk.class}) public abstract class ChunkAccessDisabledBlockMixin { @ModifyVariable( method = "setBlockState(Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;Z)Lnet/minecraft/world/level/block/state/BlockState;", diff --git a/src/main/java/io/github/jasonsimpart/mixin/minecraft/LevelChunkDisabledBlockMixin.java b/src/main/java/io/github/jasonsimpart/mixin/minecraft/LevelChunkDisabledBlockMixin.java new file mode 100644 index 00000000..f5ef5b3a --- /dev/null +++ b/src/main/java/io/github/jasonsimpart/mixin/minecraft/LevelChunkDisabledBlockMixin.java @@ -0,0 +1,33 @@ +package io.github.jasonsimpart.mixin.minecraft; + +import io.github.jasonsimpart.disabled.DisabledContentManager; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.chunk.LevelChunk; +import org.spongepowered.asm.mixin.Final; +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.ModifyVariable; + +@Mixin(LevelChunk.class) +public abstract class LevelChunkDisabledBlockMixin { + @Shadow + @Final + Level level; + + @ModifyVariable( + method = "setBlockState(Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;Z)Lnet/minecraft/world/level/block/state/BlockState;", + at = @At("HEAD"), + argsOnly = true, + ordinal = 0 + ) + private BlockState createdelightcore$replaceDisabledBlock(BlockState state, BlockPos pos) { + if (this.level.isClientSide) { + return state; + } + + return DisabledContentManager.replacementFor(state, (LevelChunk) (Object) this, pos); + } +} diff --git a/src/main/java/io/github/jasonsimpart/mixin/minecraft/LevelDisabledBlockMixin.java b/src/main/java/io/github/jasonsimpart/mixin/minecraft/LevelDisabledBlockMixin.java index 29188c8a..8ca689d6 100644 --- a/src/main/java/io/github/jasonsimpart/mixin/minecraft/LevelDisabledBlockMixin.java +++ b/src/main/java/io/github/jasonsimpart/mixin/minecraft/LevelDisabledBlockMixin.java @@ -17,6 +17,10 @@ public abstract class LevelDisabledBlockMixin { @ModifyVariable(method = "setBlock", at = @At("HEAD"), argsOnly = true, ordinal = 0) private BlockState createdelightcore$replaceDisabledBlock(BlockState state, BlockPos pos) { Level level = (Level) (Object) this; + if (level.isClientSide) { + return state; + } + return DisabledContentManager.replacementFor(keepEnceladusDeepWaterLiquid(state, level, pos), level, pos); } diff --git a/src/main/resources/createdelightcore.mixins.json b/src/main/resources/createdelightcore.mixins.json index 4d2d0487..d35debfa 100644 --- a/src/main/resources/createdelightcore.mixins.json +++ b/src/main/resources/createdelightcore.mixins.json @@ -29,6 +29,7 @@ "cmr.MixinSnowmanCoolerBlockEntity", "cmr.SnowmanCoolerAccessor", "minecraft.ChunkAccessDisabledBlockMixin", + "minecraft.LevelChunkDisabledBlockMixin", "minecraft.LevelDisabledBlockMixin", "minecraft.SimpleJsonResourceReloadListenerMixin", "minecraft.WorldGenRegionDisabledBlockMixin",