From 2f252f7fb3b49053df71998a0b7e09f06c4fe40e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 20 Jan 2026 08:03:31 +0000 Subject: [PATCH 1/2] Initial plan From dccd583b5943c8173b66072be9907fd59546524a Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 20 Jan 2026 08:07:06 +0000 Subject: [PATCH 2/2] Fix hasInputFluids and hasOutputFluids calculation Co-authored-by: solidDoWant <16456946+solidDoWant@users.noreply.github.com> --- .../integration/jei/RecipeTransferHandler.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/soliddowant/gregtechenergistics/integration/jei/RecipeTransferHandler.java b/src/main/java/com/soliddowant/gregtechenergistics/integration/jei/RecipeTransferHandler.java index 67e1bcd..86aece6 100644 --- a/src/main/java/com/soliddowant/gregtechenergistics/integration/jei/RecipeTransferHandler.java +++ b/src/main/java/com/soliddowant/gregtechenergistics/integration/jei/RecipeTransferHandler.java @@ -176,6 +176,18 @@ protected static ItemStack createFluidEncoder(FluidStack fluid) { return fluidEncoder; } + protected static boolean hasAnyFluids(@Nullable FluidStack[] fluids) { + if (fluids == null) + return false; + + for (FluidStack fluid : fluids) { + if (fluid != null && fluid.amount > 0) + return true; + } + + return false; + } + public static void transferToTerminal(JEIPacket message, Container con) { // Get information about the crafting terminal, and do some checks if (!(con instanceof IContainerCraftingPacket)) @@ -200,7 +212,7 @@ public static void transferToTerminal(JEIPacket message, Container con) { // If there are fluids, always use processing mode to avoid slot conflicts in // crafting mode - boolean hasInputFluids = message.inputFluids != null && message.inputFluids.length > 0; + boolean hasInputFluids = hasAnyFluids(message.inputFluids); boolean preserveSlots = message.isCraftingRecipe && !hasInputFluids; ItemStack[] inputStacks = mergeStacks(message.inputItems, message.inputFluids, inputAreaSize, @@ -214,7 +226,7 @@ public static void transferToTerminal(JEIPacket message, Container con) { if (message.isCraftingRecipe) con.onCraftMatrixChanged(new WrapperInvItemHandler(craftMatrix)); else { - boolean hasOutputFluids = message.outputFluids != null && message.outputFluids.length > 0; + boolean hasOutputFluids = hasAnyFluids(message.outputFluids); boolean preserveOutputSlots = message.isCraftingRecipe && !hasOutputFluids; ItemStack[] outputStacks = mergeStacks(message.outputItems, message.outputFluids, outputAreaSize,