From 3acb71d51aaa103385f435674b4c07ff26365c73 Mon Sep 17 00:00:00 2001 From: cdstk Date: Mon, 1 Sep 2025 21:34:06 -0500 Subject: [PATCH] Better version of shield fix from https://github.com/FermiumModding/RLMixins/pull/35 --- .../ItemShieldCobalt_ShieldMixin.java | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/main/java/fermiummixins/mixin/bountifulbaubles/ItemShieldCobalt_ShieldMixin.java b/src/main/java/fermiummixins/mixin/bountifulbaubles/ItemShieldCobalt_ShieldMixin.java index 19628c7..db2200c 100644 --- a/src/main/java/fermiummixins/mixin/bountifulbaubles/ItemShieldCobalt_ShieldMixin.java +++ b/src/main/java/fermiummixins/mixin/bountifulbaubles/ItemShieldCobalt_ShieldMixin.java @@ -5,7 +5,13 @@ import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.ItemShield; import net.minecraft.item.ItemStack; +import net.minecraftforge.event.entity.living.LivingAttackEvent; +import org.jetbrains.annotations.NotNull; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Unique; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import javax.annotation.Nullable; @@ -16,4 +22,22 @@ public abstract class ItemShieldCobalt_ShieldMixin extends ItemShield { public boolean isShield(ItemStack stack, @Nullable EntityLivingBase entity) { return stack.getItem() == ModItems.shieldCobalt; } + + // Remove jank copy of shield handling + @Inject( + method = "onLivingAttack", + at = @At("HEAD"), + cancellable = true, + remap = false + ) + private static void fermiummixins_bountifulBaublesItemShieldCobalt_onLivingAttack(LivingAttackEvent event, CallbackInfo ci){ + ci.cancel(); + } + + // Unbreakable-unusable intention + @Unique + @Override + public void setDamage(@NotNull ItemStack stack, int damage){ + super.setDamage(stack, Math.min(damage, this.getMaxDamage(stack))); + } } \ No newline at end of file