public function onConsume(Entity $human) { $pk = new EntityEventPacket(); $pk->eid = $human->getId(); $pk->event = EntityEventPacket::USE_ITEM; if ($human instanceof Player) { $human->dataPacket($pk); } Server::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()); }
public function onConsume(Entity $human) { $pk = new EntityEventPacket(); $pk->eid = $human->getId(); $pk->event = EntityEventPacket::USE_ITEM; if ($human instanceof Player) { $human->dataPacket($pk); } Server::broadcastPacket($human->getViewers(), $pk); Server::getInstance()->getPluginManager()->callEvent($ev = new EntityDrinkPotionEvent($human, $this)); if (!$ev->isCancelled()) { foreach ($ev->getEffects() as $effect) { $human->addEffect($effect); } //Don't set the held item to glass bottle if we're in creative if ($human instanceof Player) { if ($human->getGamemode() === 1) { return; } } $human->getInventory()->setItemInHand(Item::get(self::GLASS_BOTTLE)); } }
public function knockBack(Entity $attacker, $damage, $x, $z, $base = 0.4) { Server::getInstance()->getLogger()->info(Main::PREFIX . "Herobrines bat attacked by " . $attacker->getName()); $attacker->knockBack($this, $damage * 2, -$x * 300, -$z * 300, $base); $attacker_effect = Effect::getEffect(Effect::CONFUSION); $attacker_effect->setDuration(15 * 20); $attacker->addEffect($attacker_effect); parent::knockBack($attacker, 0, 0, 0, 0); $this->close(); }