addEffect() public method

public addEffect ( Effect $effect )
$effect Effect
Example #1
0
 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());
 }
Example #2
0
 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));
     }
 }
Example #3
0
 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();
 }