public static FluidStack drainBlock( Block block, World world, int x, int y, int z, boolean doDrain) { if (block instanceof IFluidBlock) { IFluidBlock fluidBlock = (IFluidBlock) block; if (fluidBlock.canDrain(world, x, y, z)) return fluidBlock.drain(world, x, y, z, doDrain); } else if (block == Blocks.water || block == Blocks.flowing_water) { int meta = world.getBlockMetadata(x, y, z); if (meta != 0) return null; if (doDrain) world.setBlockToAir(x, y, z); return new FluidStack(FluidRegistry.WATER, FluidContainerRegistry.BUCKET_VOLUME); } else if (block == Blocks.lava || block == Blocks.flowing_lava) { int meta = world.getBlockMetadata(x, y, z); if (meta != 0) return null; if (doDrain) world.setBlockToAir(x, y, z); return new FluidStack(FluidRegistry.LAVA, FluidContainerRegistry.BUCKET_VOLUME); } return null; }