From d91ced885dbde5ae357c3ebeac52551be251e983 Mon Sep 17 00:00:00 2001 From: Martin Prokoph Date: Sun, 7 Jul 2024 21:54:23 +0200 Subject: [PATCH] Fix #16 --- .../swordblocking/SwordBlockingClient.java | 4 ++-- .../swordblocking/mixin/MixinInGameHud.java | 10 ++++------ 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/main/java/eu/midnightdust/swordblocking/SwordBlockingClient.java b/src/main/java/eu/midnightdust/swordblocking/SwordBlockingClient.java index 0f1934b..3e2630a 100644 --- a/src/main/java/eu/midnightdust/swordblocking/SwordBlockingClient.java +++ b/src/main/java/eu/midnightdust/swordblocking/SwordBlockingClient.java @@ -24,8 +24,8 @@ public class SwordBlockingClient implements ClientModInitializer { public static boolean canWeaponBlock(LivingEntity entity) { if (SwordBlockingConfig.enabled && (entity.getOffHandStack().getItem() instanceof ShieldItem || entity.getMainHandStack().getItem() instanceof ShieldItem)) { - Item mainItem = entity.getOffHandStack().getItem() instanceof ShieldItem ? entity.getMainHandStack().getItem() : entity.getOffHandStack().getItem(); - return mainItem instanceof SwordItem || mainItem instanceof AxeItem || mainItem instanceof MaceItem; + Item weaponItem = entity.getOffHandStack().getItem() instanceof ShieldItem ? entity.getMainHandStack().getItem() : entity.getOffHandStack().getItem(); + return weaponItem instanceof SwordItem || weaponItem instanceof AxeItem || weaponItem instanceof MaceItem; } return false; } diff --git a/src/main/java/eu/midnightdust/swordblocking/mixin/MixinInGameHud.java b/src/main/java/eu/midnightdust/swordblocking/mixin/MixinInGameHud.java index c4be51f..638c802 100644 --- a/src/main/java/eu/midnightdust/swordblocking/mixin/MixinInGameHud.java +++ b/src/main/java/eu/midnightdust/swordblocking/mixin/MixinInGameHud.java @@ -1,19 +1,17 @@ package eu.midnightdust.swordblocking.mixin; +import com.llamalad7.mixinextras.injector.ModifyExpressionValue; import eu.midnightdust.swordblocking.config.SwordBlockingConfig; import net.minecraft.client.gui.hud.InGameHud; -import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.item.ShieldItem; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Redirect; @Mixin(InGameHud.class) public abstract class MixinInGameHud { - @Redirect(at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/player/PlayerEntity;getOffHandStack()Lnet/minecraft/item/ItemStack;"), method = "renderHotbar") - public ItemStack swordblocking$hideOffHandSlot(PlayerEntity player) { - ItemStack realStack = player.getOffHandStack(); - return (SwordBlockingConfig.enabled && SwordBlockingConfig.hideOffhandSlot && realStack.getItem() instanceof ShieldItem) ? ItemStack.EMPTY : realStack; + @ModifyExpressionValue(at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/player/PlayerEntity;getOffHandStack()Lnet/minecraft/item/ItemStack;"), method = "renderHotbar") + public ItemStack swordblocking$hideOffHandSlot(ItemStack original) { + return (SwordBlockingConfig.enabled && SwordBlockingConfig.hideOffhandSlot && original.getItem() instanceof ShieldItem) ? ItemStack.EMPTY : original; } }