From 267793bd59502c3d71e452934a26fbaba3ae60e4 Mon Sep 17 00:00:00 2001 From: asdflj <33802162+asdflj@users.noreply.github.com> Date: Wed, 14 Dec 2022 19:41:42 +0800 Subject: [PATCH] make substitution pattern fallback to normal pattern sometimes crash (#208) * fix inverted beSubstitutionsBtn * fix substitution pattern fallback to normal pattern sometimes crash if no substitutable pattern matches --- src/main/java/appeng/me/cache/CraftingGridCache.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/appeng/me/cache/CraftingGridCache.java b/src/main/java/appeng/me/cache/CraftingGridCache.java index e255a88cf74..82c6b1c9b7f 100644 --- a/src/main/java/appeng/me/cache/CraftingGridCache.java +++ b/src/main/java/appeng/me/cache/CraftingGridCache.java @@ -415,11 +415,13 @@ public ImmutableCollection getCraftingFor( final int slotIndex, final World world) { final ImmutableList res; + boolean normalMode = false; if (details != null && details.canSubstitute()) { final Collection substitutions = this.craftableItemSubstitutes.findFuzzy(whatToCraft, FuzzyMode.IGNORE_ALL); if (substitutions.isEmpty()) { res = this.craftableItems.get(whatToCraft); + normalMode = true; } else { ImmutableList.Builder allPatterns = ImmutableList.builder(); for (IAEItemStack alternative : substitutions) { @@ -443,7 +445,7 @@ public ImmutableCollection getCraftingFor( } } // no perfect match found, look for substitutions - if (details.canSubstitute()) { + if (details.canSubstitute() && !normalMode) { for (final Map.Entry> entry : this.craftableItems.entrySet()) { final boolean canBeASubstitute =