Source:
<code><START> public static FluidActionResult tryPlaceFluid(@Nullable EntityPlayer player, World world, BlockPos pos, @Nonnull ItemStack container, FluidStack resource) <END> { if (world == null || resource == null || pos == null) { return FluidActionResult.FAILURE; } Fluid fluid = resource.getFluid(); if (fluid == null || !fluid.canBePlacedInWorld()) { return FluidActionResult.FAILURE; } IBlockState destBlockState = world.getBlockState(pos); Material destMaterial = destBlockState.getMaterial(); boolean isDestNonSolid = !destMaterial.isSolid(); boolean isDestReplaceable = destBlockState.getBlock().isReplaceable(world, pos); if (!world.isAirBlock(pos) && !isDestNonSolid && !isDestReplaceable) { return FluidActionResult.FAILURE; } if (world.provider.doesWaterVaporize() && fluid.doesVaporize(resource)) { fluid.vaporize(player, world, pos, resource); return tryEmptyContainer(container, new VoidFluidHandler(), Integer.MAX_VALUE, player, true); } else { if (!world.isRemote && (isDestNonSolid || isDestReplaceable) && !destMaterial.isLiquid()) { world.destroyBlock(pos, true); } IFluidHandler handler = getPlacementFluidHandler(world, pos, fluid); FluidActionResult result = tryEmptyContainer(container, handler, Integer.MAX_VALUE, player, true); if (result.isSuccess()) { SoundEvent soundevent = fluid.getEmptySound(resource); world.playSound(player, pos, soundevent, SoundCategory.BLOCKS, 1.0F, 1.0F); } return result; } }</code><technical_language>sense move this logic BlockWrapper.fill</technical_language>

Target:
public static FluidActionResult tryPlaceFluid(@Nullable EntityPlayer player, World world, BlockPos pos, @Nonnull ItemStack container, FluidStack resource) { if (world == null || resource == null || pos == null) { return FluidActionResult.FAILURE; } Fluid fluid = resource.getFluid(); if (fluid == null || !fluid.canBePlacedInWorld()) { return FluidActionResult.FAILURE; } IBlockState destBlockState = world.getBlockState(pos); Material destMaterial = destBlockState.getMaterial(); boolean isDestNonSolid = !destMaterial.isSolid(); boolean isDestReplaceable = destBlockState.getBlock().isReplaceable(world, pos); if (!world.isAirBlock(pos) && !isDestNonSolid && !isDestReplaceable) { return FluidActionResult.FAILURE; } if (world.provider.doesWaterVaporize() && fluid.doesVaporize(resource)) { fluid.vaporize(player, world, pos, resource); return tryEmptyContainer(container, new VoidFluidHandler(), Integer.MAX_VALUE, player, true); } else { if (!world.isRemote && (isDestNonSolid || isDestReplaceable) && !destMaterial.isLiquid()) { world.destroyBlock(pos, true); } Block block = fluid.getBlock(); IFluidHandler handler; if (block instanceof IFluidBlock) { handler = new FluidBlockWrapper((IFluidBlock) block, world, pos); } else if (block instanceof BlockLiquid) { handler = new BlockLiquidWrapper((BlockLiquid) block, world, pos); } else { handler = new BlockWrapper(block, world, pos); } FluidActionResult result = tryEmptyContainer(container, handler, Integer.MAX_VALUE, player, true); if (result.isSuccess()) { SoundEvent soundevent = fluid.getEmptySound(resource); world.playSound(player, pos, soundevent, SoundCategory.BLOCKS, 1.0F, 1.0F); } return result; } }