@Override
 public boolean matches(InventoryCrafting inv, World world) {
   ItemStack jerrycan = null;
   ItemStack container = null;
   for (int i = 0; i < inv.getSizeInventory(); i++) {
     ItemStack stackInSlot = inv.getStackInSlot(i);
     if (stackInSlot != null)
       if (jerrycan == null
           && IEContent.itemJerrycan.equals(stackInSlot.getItem())
           && FluidUtil.getFluidContained(stackInSlot) != null) jerrycan = stackInSlot;
       else if (container == null && FluidUtil.getFluidHandler(stackInSlot) != null)
         container = stackInSlot;
       else return false;
   }
   if (jerrycan != null && container != null) {
     IFluidHandler handler = FluidUtil.getFluidHandler(container);
     FluidStack fs = handler.drain(Integer.MAX_VALUE, false);
     if (fs == null
         || (fs.amount < handler.getTankProperties()[0].getCapacity()
             && fs.isFluidEqual(FluidUtil.getFluidContained(jerrycan)))) return true;
   }
   return false;
 }