From 6e29f9fc1d092d43d5c8daaec71830b916901b07 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 12 Feb 2026 15:37:08 +0000 Subject: [PATCH 1/2] Initial plan From ca480dd634936d222db2745407cf4182dc59a84d Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 12 Feb 2026 15:39:19 +0000 Subject: [PATCH 2/2] Fix crash on incorrect recipe by catching IllegalArgumentException (fix by @Niikelion) Co-authored-by: rubensworks <440384+rubensworks@users.noreply.github.com> --- .../integratedcrafting/core/CraftingJobHandler.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/cyclops/integratedcrafting/core/CraftingJobHandler.java b/src/main/java/org/cyclops/integratedcrafting/core/CraftingJobHandler.java index 1d99b932..ea2f2386 100644 --- a/src/main/java/org/cyclops/integratedcrafting/core/CraftingJobHandler.java +++ b/src/main/java/org/cyclops/integratedcrafting/core/CraftingJobHandler.java @@ -562,7 +562,11 @@ protected boolean insertCrafting(PartPos target, IMixedIngredients ingredients, // First check our crafting overrides for (ICraftingProcessOverride craftingProcessOverride : this.craftingProcessOverrides) { if (craftingProcessOverride.isApplicable(target)) { - return craftingProcessOverride.craft(targetGetter, ingredients, recipe, this.resultsSink, craftingJob, simulate); + try { + return craftingProcessOverride.craft(targetGetter, ingredients, recipe, this.resultsSink, craftingJob, simulate); + } catch (IllegalArgumentException e) { + return false; + } } } @@ -576,7 +580,7 @@ protected void insertLoopNonBlocking(INetwork network, int channel, PartPos targ IRecipeDefinition recipe = craftingJob.getRecipe(); IMixedIngredients ingredientsSimulated = CraftingHelpers.getRecipeInputsFromCraftingJobBuffer(craftingJob, recipe, true, 1); - if (ingredientsSimulated == null ||!insertCrafting(targetPos, ingredientsSimulated, recipe, craftingJob, network, channel, true)) { + if (ingredientsSimulated == null || !insertCrafting(targetPos, ingredientsSimulated, recipe, craftingJob, network, channel, true)) { break; } if (!consumeAndInsertCrafting(true, network, channel, targetPos, craftingJob)) {