From 66fa5159a8b40cf4f0e52d0fbff248b5ef9c38ff Mon Sep 17 00:00:00 2001 From: loenaaaa Date: Thu, 5 Feb 2026 07:48:22 +0800 Subject: [PATCH] removed request to client-side field to fix ncf error, moved to mixin --- .../storagedrawers/block/tile/TileEntityDrawers.java | 3 --- .../mixins/early/MixinPlayerControllerMP.java | 10 ++++++++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/jaquadro/minecraft/storagedrawers/block/tile/TileEntityDrawers.java b/src/main/java/com/jaquadro/minecraft/storagedrawers/block/tile/TileEntityDrawers.java index 46d498d..464ce01 100644 --- a/src/main/java/com/jaquadro/minecraft/storagedrawers/block/tile/TileEntityDrawers.java +++ b/src/main/java/com/jaquadro/minecraft/storagedrawers/block/tile/TileEntityDrawers.java @@ -5,7 +5,6 @@ import java.util.UUID; import javax.annotation.Nullable; -import net.minecraft.client.Minecraft; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; @@ -641,8 +640,6 @@ public abstract class TileEntityDrawers extends BaseTileEntity implements IDrawe property.lastLeftClickTime = worldObj.getTotalWorldTime(); - Minecraft.getMinecraft().playerController.curBlockDamageMP = 0.0F; - int ticksConsecutiveClickRequirement = 50 / (itemsOutputInARow + 5); if (ticksClickedInARow < ticksConsecutiveClickRequirement) return null; diff --git a/src/main/java/com/jaquadro/minecraft/storagedrawers/mixins/early/MixinPlayerControllerMP.java b/src/main/java/com/jaquadro/minecraft/storagedrawers/mixins/early/MixinPlayerControllerMP.java index 203cea6..0bc9aa0 100644 --- a/src/main/java/com/jaquadro/minecraft/storagedrawers/mixins/early/MixinPlayerControllerMP.java +++ b/src/main/java/com/jaquadro/minecraft/storagedrawers/mixins/early/MixinPlayerControllerMP.java @@ -23,11 +23,16 @@ public abstract class MixinPlayerControllerMP { @Shadow private Minecraft mc; + @Shadow + public float curBlockDamageMP; + @Inject( method = "onPlayerDamageBlock", at = @At( - value = "INVOKE", - target = "Lnet/minecraft/block/Block;getPlayerRelativeBlockHardness(Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;III)F")) + value = "FIELD", + target = "Lnet/minecraft/client/multiplayer/PlayerControllerMP;curBlockDamageMP:F", + opcode = org.objectweb.asm.Opcodes.PUTFIELD, + shift = At.Shift.AFTER)) private void storageDrawers$checkIfClickingDrawer(int x, int y, int z, int clickedSide, CallbackInfo ci) { final var thisTile = mc.theWorld.getTileEntity(x, y, z); if (!(thisTile instanceof TileEntityDrawers drawer)) return; @@ -50,6 +55,7 @@ public abstract class MixinPlayerControllerMP { float hitY = (float) (mop.hitVec.yCoord - mop.blockY); float hitZ = (float) (mop.hitVec.zCoord - mop.blockZ); boolean invertShift = StorageDrawers.config.cache.invertShift; + curBlockDamageMP = 0.0F; StorageDrawers.network.sendToServer(new BlockClickMessage(x, y, z, clickedSide, hitX, hitY, hitZ, invertShift)); } }