@SubscribeEvent public void onRightClick(PlayerInteractEvent.RightClickItem e) { if (e.getItemStack() != null && e.getItemStack().getItem() instanceof ItemGlassBottle && e.getEntityPlayer().isSneaking() && (e.getEntityPlayer().experienceLevel >= 1 || e.getEntityPlayer().isCreative())) { EntityPlayer player = e.getEntityPlayer(); Vector3 origin = Vector3.fromEntity(player).add(0, player.getEyeHeight(), 0); Vector3 look = new Vector3(player.getLookVec()); Vector3 end = origin.copy().add(look.copy().normalize().multiply(5)); RayTraceResult rtr = player.worldObj.rayTraceBlocks(origin.toVec3D(), end.toVec3D(), true); IBlockState hitBlockState = null; if (rtr != null) hitBlockState = e.getWorld().getBlockState(rtr.getBlockPos()); if (hitBlockState == null || hitBlockState.getBlock() != Blocks.water) { e.getItemStack().stackSize--; if (e.getItemStack().stackSize <= 0) e.getEntityPlayer().inventory.deleteStack(e.getItemStack()); e.getEntityPlayer().inventory.addItemStackToInventory(new ItemStack(Items.experience_bottle)); e.getEntityPlayer().removeExperienceLevel(1); } } }