getFood() < $entity->getMaxFood(); } public function getResidue(){ if($this->getCount() === 1){ return Item::get(0); }else{ $new = clone $this; $new->count--; return $new; } } public function getAdditionalEffects() : array{ return []; } public function onConsume(Entity $human){ $pk = new EntityEventPacket(); $pk->entityRuntimeId = $human->getId(); $pk->event = EntityEventPacket::USE_ITEM; if($human instanceof Player){ $human->dataPacket($pk); } $human->getLevel()->getServer()->broadcastPacket($human->getViewers(), $pk); $ev = new EntityEatItemEvent($human, $this); $human->addSaturation($ev->getSaturationRestore()); $human->addFood($ev->getFoodRestore()); foreach($ev->getAdditionalEffects() as $effect){ $human->addEffect($effect); } $human->getInventory()->setItemInHand($ev->getResidue()); } }