public static boolean eat(final Player player, Item item, int slot) {
		Food food = Food.forId(item.getId());
		if (food == null)
			return false;
		if (player.getFoodDelay() > Utils.currentTimeMillis())
			return true;
		if (!player.getControlerManager().canEat(food))
			return true;
		String name = ItemDefinitions.getItemDefinitions(food.getId())
				.getName().toLowerCase();
		player.getPackets().sendGameMessage("You eat the " + name + ".");
		player.setNextAnimation(EAT_ANIM);
		long foodDelay = name.contains("half") ? 600 : 1800;
		player.getActionManager().setActionDelay((int) foodDelay / 1000);
		player.addFoodDelay(foodDelay);
		player.getActionManager().setActionDelay(
				player.getActionManager().getActionDelay() + 2);
		player.getInventory()
				.getItems()
				.set(slot,
						food.getNewId() == 0 ? null : new Item(food.getNewId(),
								1));
		player.getInventory().refresh(slot);
		int hp = player.getHitpoints();
		player.heal(food.getHeal() * 10, food.getExtraHP() * 10);
		if (player.getHitpoints() > hp)
			player.getPackets().sendGameMessage("It heals some health.");
		player.getInventory().refresh();
		if (food.effect != null) {
			food.effect.effect(player);
		}
		return true;
	}