From e411f11c0cc69f7bdb1c9ecf854c706ccb2f3fae Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Sat, 2 Aug 2025 15:29:41 -0400 Subject: [PATCH] Implement Forge ingredient invalidation correctly --- .../mixin/perf/faster_ingredients/IngredientMixin.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/faster_ingredients/IngredientMixin.java b/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/faster_ingredients/IngredientMixin.java index 2840e2f1..eea9aa02 100644 --- a/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/faster_ingredients/IngredientMixin.java +++ b/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/faster_ingredients/IngredientMixin.java @@ -17,6 +17,7 @@ import org.spongepowered.asm.mixin.Shadow; 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 org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import java.util.ArrayList; @@ -169,4 +170,9 @@ public abstract class IngredientMixin implements ExtendedIngredient { public void mfix$clearReference() { this.mfix$cachedItemStacks = null; } + + @Inject(method = "invalidate", at = @At("RETURN"), remap = false) + private void invalidateSoftReference(CallbackInfo ci) { + mfix$clearReference(); + } }