From 783777a790e3c9a0817131e1b465291b52cc7891 Mon Sep 17 00:00:00 2001 From: ZacSharp <68165024+ZacSharp@users.noreply.github.com> Date: Sun, 23 Mar 2025 19:36:43 +0100 Subject: [PATCH] Calculate item hash only if needed Prevents a stack overflow with SilentGear and hence with All The Mods 10 --- .../java/baritone/launch/mixins/MixinItemStack.java | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/src/launch/java/baritone/launch/mixins/MixinItemStack.java b/src/launch/java/baritone/launch/mixins/MixinItemStack.java index 906221bee..fd8299d54 100644 --- a/src/launch/java/baritone/launch/mixins/MixinItemStack.java +++ b/src/launch/java/baritone/launch/mixins/MixinItemStack.java @@ -45,14 +45,6 @@ private void recalculateHash() { baritoneHash = item == null ? -1 : item.hashCode() + getDamageValue(); } - @Inject( - method = "*", - at = @At("RETURN") - ) - private void onInit(CallbackInfo ci) { - recalculateHash(); - } - @Inject( method = "setDamageValue", at = @At("TAIL") @@ -63,7 +55,8 @@ private void onItemDamageSet(CallbackInfo ci) { @Override public int getBaritoneHash() { - // TODO: figure out why mixin not working, was 0 for some reason + // cannot do this in an init mixin because silentlib likes creating new + // items in getDamageValue, which we call in recalculateHash if (baritoneHash == 0) recalculateHash(); return baritoneHash; }