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 checkSelectors(array $args, CommandSender $sender, Entity $item) { foreach ($args as $name => $value) { switch ($name) { case "m": $mode = intval($value); if ($mode === -1) { break; } // what is the point of adding this (in PC) when they can just safely leave this out? if ($item instanceof Player && $mode !== $item->getGamemode()) { return false; } break; case "name": if ($value[0] === "!") { if (substr($value, 1) === strtolower($item->getName())) { return false; } } else { if ($value !== strtolower($item->getName())) { return false; } } break; case "type": if ($item instanceof Player) { $type = "player"; } else { $type = strtolower($item->getSaveId()); } if ($value[0] === "!") { if (substr($value, 1) === $type) { return false; } } else { if ($value !== $type) { return false; } } break; // x,y,z // r,rm // c // dx,dy,dz // rx,rxm // ry,rym } } return true; }