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; } }