From 72decc5e5203701e8b35bf9c1143d5b8f805a8f4 Mon Sep 17 00:00:00 2001 From: KeyLime17 Date: Fri, 9 May 2025 17:46:10 -0400 Subject: [PATCH] Patch to remove negative modifiers from reforging --- .../overrides/MixinLOTREnchantmenHelper.java | 30 +++++++++++++++++++ src/main/resources/mixins.cinder_loe.json | 1 + 2 files changed, 31 insertions(+) create mode 100644 src/main/java/com/zivilon/cinder_loe/mixins/overrides/MixinLOTREnchantmenHelper.java diff --git a/src/main/java/com/zivilon/cinder_loe/mixins/overrides/MixinLOTREnchantmenHelper.java b/src/main/java/com/zivilon/cinder_loe/mixins/overrides/MixinLOTREnchantmenHelper.java new file mode 100644 index 0000000..99167de --- /dev/null +++ b/src/main/java/com/zivilon/cinder_loe/mixins/overrides/MixinLOTREnchantmenHelper.java @@ -0,0 +1,30 @@ +package com.zivilon.cinder_loe.mixins.overrides; + +import lotr.common.enchant.LOTREnchantment; +import lotr.common.enchant.LOTREnchantmentHelper; +import net.minecraft.item.ItemStack; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Redirect; + +@Mixin(LOTREnchantmentHelper.class) +public class MixinLOTREnchantmenHelper { + + /** + * Prevent negative modifiers (weak or detrimental enchants) from being applied. + */ + @Redirect( + method = "applyRandomEnchantments(Lnet/minecraft/item/ItemStack;Ljava/util/Random;ZZ)V", + at = @At( + value = "INVOKE", + target = "Llotr/common/enchant/LOTREnchantmentHelper;setHasEnchant(Lnet/minecraft/item/ItemStack;Llotr/common/enchant/LOTREnchantment;)V" + ), + remap = false + ) + private static void skipNegativeEnchant(ItemStack itemstack, LOTREnchantment ench) { + // Only apply if enchant is beneficial + if (ench.isBeneficial()) { + LOTREnchantmentHelper.setHasEnchant(itemstack, ench); + } + } +} diff --git a/src/main/resources/mixins.cinder_loe.json b/src/main/resources/mixins.cinder_loe.json index 6a39d4f..6f4c2cd 100644 --- a/src/main/resources/mixins.cinder_loe.json +++ b/src/main/resources/mixins.cinder_loe.json @@ -47,6 +47,7 @@ "overrides.MixinLOTRTradeEntriesOverrides", "overrides.MixinLOTRUnitTradeEntries", "overrides.MixinLOTRBiome", + "overrides.MixinLOTREnchantmenHelper", "MixinLOTREntityOrc", "MixinEntityLivingBase", "MixinEntityPlayer",