ItemStack itemstack = player.getItemInHand(hand);
RayTraceResult raytraceresult = getPlayerPOVHitResult(world, player, RayTraceContext.FluidMode.SOURCE_ONLY);
if (raytraceresult.getType() == RayTraceResult.Type.MISS) {
return ActionResult.pass(itemstack);
} else {
if (raytraceresult.getType() == RayTraceResult.Type.BLOCK) {
BlockPos blockpos = ((BlockRayTraceResult)raytraceresult).getBlockPos();
if (!world.mayInteract(player, blockpos)) {
return ActionResult.pass(itemstack);
}
if (world.getFluidState(blockpos).is(FluidTags.WATER)) {
world.playSound(player, player.getX(), player.getY(), player.getZ(), SoundEvents.BOTTLE_FILL, SoundCategory.NEUTRAL, 1.0F, 1.0F);
return ActionResult.sidedSuccess(this.turnBottleIntoItem(itemstack, player, PotionUtils.setPotion(new ItemStack(Items.POTION), Potions.WATER)), world.isClientSide());
}
}
return ActionResult.pass(itemstack);
}