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 remove(Entity $entity) { if ($entity instanceof Player) { $pk = new MobEffectPacket(); $pk->eid = 0; $pk->eventId = MobEffectPacket::EVENT_REMOVE; $pk->effectId = $this->getId(); $entity->dataPacket($pk->setChannel(Network::CHANNEL_WORLD_EVENTS)); } if ($this->id === Effect::INVISIBILITY) { $entity->setDataFlag(Entity::DATA_FLAGS, Entity::DATA_FLAG_INVISIBLE, false); $entity->setDataProperty(Entity::DATA_SHOW_NAMETAG, Entity::DATA_TYPE_BYTE, 1); } }
public function remove(Entity $entity) { Server::getInstance()->getPluginManager()->callEvent($ev = new RemoveEffectEvent($entity, $this)); if ($ev->isCancelled) { return false; } if ($entity instanceof Player) { $pk = new MobEffectPacket(); $pk->eid = 0; $pk->eventId = MobEffectPacket::EVENT_REMOVE; $pk->effectId = $this->getId(); $entity->dataPacket($pk); } if ($this->id === Effect::INVISIBILITY) { $entity->setDataFlag(Entity::DATA_FLAGS, Entity::DATA_FLAG_INVISIBLE, false); $entity->setDataProperty(Entity::DATA_SHOW_NAMETAG, Entity::DATA_TYPE_BYTE, 1); } }
public function remove(Entity $entity) { if ($entity instanceof Player) { $pk = new MobEffectPacket(); $pk->eid = 0; $pk->eventId = MobEffectPacket::EVENT_REMOVE; $pk->effectId = $this->getId(); $entity->dataPacket($pk); } if ($this->id === Effect::INVISIBILITY) { $entity->setDataFlag(Entity::DATA_FLAGS, Entity::DATA_FLAG_INVISIBLE, false); $entity->setNameTagVisible(true); } elseif ($this->id === Effect::SPEED) { $attr = $entity->getAttributeMap()->getAttribute(Attribute::MOVEMENT_SPEED); $attr->setValue($attr->getValue() / (1 + 0.2 * $this->amplifier)); } elseif ($this->id === Effect::SLOWNESS) { $attr = $entity->getAttributeMap()->getAttribute(Attribute::MOVEMENT_SPEED); $attr->setValue($attr->getValue() / (1 - 0.15 * $this->amplifier)); } }
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 remove(Entity $entity) { if ($entity instanceof Player) { $pk = new MobEffectPacket(); $pk->eid = 0; $pk->eventId = MobEffectPacket::EVENT_REMOVE; $pk->effectId = $this->getId(); $entity->dataPacket($pk); if ($this->id === Effect::SPEED or $this->id === Effect::SLOWNESS) { if ($entity instanceof Player) { $entity->setMovementSpeed(0.1); } } } if ($this->id === Effect::INVISIBILITY) { $entity->setDataFlag(Entity::DATA_FLAGS, Entity::DATA_FLAG_INVISIBLE, false); $entity->setDataProperty(Entity::DATA_SHOW_NAMETAG, Entity::DATA_TYPE_BYTE, 1); } }