From 750f667e4d5da116434dada9e967897a17fbb803 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 6 Mar 2026 19:03:37 +0000 Subject: [PATCH 1/2] Initial plan From d7ab45a0e5aa61d8955b472d5229233839cca9fc Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 6 Mar 2026 19:19:10 +0000 Subject: [PATCH 2/2] Fix canDrain crash on empty fluid container in DamageIndicatedItemFluidContainer Co-authored-by: rubensworks <440384+rubensworks@users.noreply.github.com> --- .../cyclopscore/item/DamageIndicatedItemFluidContainer.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/loader-neoforge/src/main/java/org/cyclops/cyclopscore/item/DamageIndicatedItemFluidContainer.java b/loader-neoforge/src/main/java/org/cyclops/cyclopscore/item/DamageIndicatedItemFluidContainer.java index 87184d98ed..df8019a93e 100644 --- a/loader-neoforge/src/main/java/org/cyclops/cyclopscore/item/DamageIndicatedItemFluidContainer.java +++ b/loader-neoforge/src/main/java/org/cyclops/cyclopscore/item/DamageIndicatedItemFluidContainer.java @@ -120,8 +120,11 @@ public boolean canDrain(int amount, ItemStack itemStack) { ItemAccess itemAccess = ItemAccess.forStack(itemStack); ResourceHandler fluidHandler = itemAccess.getCapability(Capabilities.Fluid.ITEM); if (fluidHandler == null) return false; + FluidResource resource = fluidHandler.getResource(0); + // Avoid IllegalArgumentException when the fluid handler has no fluid (empty resource is not allowed in NeoForge extract calls) + if (resource.isEmpty()) return false; try (var tx = Transaction.openRoot()) { - int simulatedDrain = fluidHandler.extract(fluidHandler.getResource(0), amount, tx); + int simulatedDrain = fluidHandler.extract(resource, amount, tx); return simulatedDrain == amount; } }