Fixed eating golden apple with full hunger, fixed wrong implementation of enchanted golden apple, close #276

This commit is contained in:
Dylan K. Taylor 2017-01-21 18:25:12 +00:00
parent 50b9034e16
commit b22232730e
3 changed files with 50 additions and 7 deletions

View File

@ -22,10 +22,17 @@
namespace pocketmine\item;
use pocketmine\entity\Effect;
use pocketmine\entity\Entity;
use pocketmine\entity\Human;
class GoldenApple extends Food{
public function __construct($meta = 0, $count = 1){
parent::__construct(self::GOLDEN_APPLE, $meta, $count, ($meta === 1 ? "Enchanted " : "") . "Golden Apple");
parent::__construct(self::GOLDEN_APPLE, $meta, $count, "Golden Apple");
}
public function canBeConsumedBy(Entity $entity) : bool{
return $entity instanceof Human;
}
public function getFoodRestore() : int{
@ -37,12 +44,7 @@ class GoldenApple extends Food{
}
public function getAdditionalEffects() : array{
return $this->meta === 1 ? [
Effect::getEffect(Effect::REGENERATION)->setDuration(600)->setAmplifier(4),
Effect::getEffect(Effect::ABSORPTION)->setDuration(2400),
Effect::getEffect(Effect::DAMAGE_RESISTANCE)->setDuration(6000),
Effect::getEffect(Effect::FIRE_RESISTANCE)->setDuration(6000),
] : [
return [
Effect::getEffect(Effect::REGENERATION)->setDuration(100)->setAmplifier(1),
Effect::getEffect(Effect::ABSORPTION)->setDuration(2400)
];

View File

@ -0,0 +1,40 @@
<?php
/*
*
* ____ _ _ __ __ _ __ __ ____
* | _ \ ___ ___| | _____| |_| \/ (_)_ __ ___ | \/ | _ \
* | |_) / _ \ / __| |/ / _ \ __| |\/| | | '_ \ / _ \_____| |\/| | |_) |
* | __/ (_) | (__| < __/ |_| | | | | | | | __/_____| | | | __/
* |_| \___/ \___|_|\_\___|\__|_| |_|_|_| |_|\___| |_| |_|_|
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* @author PocketMine Team
* @link http://www.pocketmine.net/
*
*
*/
namespace pocketmine\item;
use pocketmine\entity\Effect;
class GoldenAppleEnchanted extends GoldenApple{
public function __construct($meta = 0, $count = 1){
Food::__construct(self::ENCHANTED_GOLDEN_APPLE, $meta, $count, "Enchanted Golden Apple"); //skip parent constructor
}
public function getAdditionalEffects() : array{
return [
Effect::getEffect(Effect::REGENERATION)->setDuration(600)->setAmplifier(4),
Effect::getEffect(Effect::ABSORPTION)->setDuration(2400),
Effect::getEffect(Effect::DAMAGE_RESISTANCE)->setDuration(6000),
Effect::getEffect(Effect::FIRE_RESISTANCE)->setDuration(6000),
];
}
}

View File

@ -215,6 +215,7 @@ class Item implements ItemIds, \JsonSerializable{
self::$list[self::PRISMARINE_CRYSTALS] = PrismarineCrystals::class;
self::$list[self::PRISMARINE_SHARD] = PrismarineShard::class;
self::$list[self::NETHER_STAR] = NetherStar::class;
self::$list[self::ENCHANTED_GOLDEN_APPLE] = GoldenAppleEnchanted::class;
for($i = 0; $i < 256; ++$i){
if(Block::$list[$i] !== null){