From 3fc576b6fcff0bae8e8241e777c2e09ca1a651d2 Mon Sep 17 00:00:00 2001 From: miozune Date: Sun, 5 Feb 2023 19:27:52 +0900 Subject: [PATCH] Add more error message for crash with recipe lookup (#345) --- .../java/codechicken/nei/recipe/GuiCraftingRecipe.java | 6 +++++- .../java/codechicken/nei/recipe/GuiUsageRecipe.java | 6 +++++- .../codechicken/nei/recipe/RecipeHandlerQuery.java | 10 ++++++++-- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/main/java/codechicken/nei/recipe/GuiCraftingRecipe.java b/src/main/java/codechicken/nei/recipe/GuiCraftingRecipe.java index 5e345ba3..487e0d0c 100644 --- a/src/main/java/codechicken/nei/recipe/GuiCraftingRecipe.java +++ b/src/main/java/codechicken/nei/recipe/GuiCraftingRecipe.java @@ -4,6 +4,7 @@ import static codechicken.lib.gui.GuiDraw.getMousePosition; import java.awt.Point; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import net.minecraft.client.Minecraft; @@ -38,7 +39,10 @@ public class GuiCraftingRecipe extends GuiRecipe { final RecipeHandlerQuery recipeQuery = new RecipeHandlerQuery<>( h -> h.getRecipeHandler(outputId, results), craftinghandlers, - serialCraftingHandlers); + serialCraftingHandlers, + "Error while looking up crafting recipe", + "outputId: " + outputId, + "results: " + Arrays.toString(results)); final ArrayList handlers = recipeQuery.runWithProfiling("recipe.concurrent.crafting"); diff --git a/src/main/java/codechicken/nei/recipe/GuiUsageRecipe.java b/src/main/java/codechicken/nei/recipe/GuiUsageRecipe.java index 08e7e827..9a1b6666 100644 --- a/src/main/java/codechicken/nei/recipe/GuiUsageRecipe.java +++ b/src/main/java/codechicken/nei/recipe/GuiUsageRecipe.java @@ -1,6 +1,7 @@ package codechicken.nei.recipe; import java.util.ArrayList; +import java.util.Arrays; import net.minecraft.client.Minecraft; @@ -16,7 +17,10 @@ public class GuiUsageRecipe extends GuiRecipe { RecipeHandlerQuery recipeQuery = new RecipeHandlerQuery<>( h -> getUsageOrCatalystHandler(h, inputId, ingredients), usagehandlers, - serialUsageHandlers); + serialUsageHandlers, + "Error while looking up usage recipe", + "inputId: " + inputId, + "ingredients: " + Arrays.toString(ingredients)); ArrayList handlers = recipeQuery.runWithProfiling("recipe.concurrent.usage"); if (handlers.isEmpty()) return false; diff --git a/src/main/java/codechicken/nei/recipe/RecipeHandlerQuery.java b/src/main/java/codechicken/nei/recipe/RecipeHandlerQuery.java index 5c4ec4f9..6c49c340 100644 --- a/src/main/java/codechicken/nei/recipe/RecipeHandlerQuery.java +++ b/src/main/java/codechicken/nei/recipe/RecipeHandlerQuery.java @@ -21,11 +21,14 @@ class RecipeHandlerQuery { private final Function recipeHandlerFunction; private final List recipeHandlers; private final List serialRecipeHandlers; + private final String[] errorMessage; - RecipeHandlerQuery(Function recipeHandlerFunction, List recipeHandlers, List serialRecipeHandlers) { + RecipeHandlerQuery(Function recipeHandlerFunction, List recipeHandlers, List serialRecipeHandlers, + String... errorMessage) { this.recipeHandlerFunction = recipeHandlerFunction; this.recipeHandlers = recipeHandlers; this.serialRecipeHandlers = serialRecipeHandlers; + this.errorMessage = errorMessage; } ArrayList runWithProfiling(String profilerSection) { @@ -62,7 +65,10 @@ class RecipeHandlerQuery { .get(); } - private static void displayRecipeLookupError(Exception e) { + private void displayRecipeLookupError(Exception e) { + for (String message : errorMessage) { + NEIClientConfig.logger.error(message); + } e.printStackTrace(); EntityPlayer player = Minecraft.getMinecraft().thePlayer; if (player != null) {