public function spawnTo(Player $player) { if ($player !== $this and !isset($this->hasSpawned[$player->getID()])) { $this->hasSpawned[$player->getID()] = $player; $pk = new AddPlayerPacket(); $pk->clientID = 0; if ($player->getRemoveFormat()) { $pk->username = TextFormat::clean($this->nameTag); } else { $pk->username = $this->nameTag; } $pk->eid = $this->getID(); $pk->x = $this->x; $pk->y = $this->y; $pk->z = $this->z; $pk->yaw = $this->yaw; $pk->pitch = $this->pitch; $pk->unknown1 = 0; $pk->unknown2 = 0; $pk->metadata = $this->getData(); $player->dataPacket($pk); $pk = new SetEntityMotionPacket(); $pk->entities = [[$this->getID(), $this->motionX, $this->motionY, $this->motionZ]]; $player->dataPacket($pk); $this->inventory->sendHeldItem($player); $this->inventory->sendArmorContents($player); } }
public function equip(PlayerInventory $inv, PvpSessionData $data, $send = true) { $inv->clearAll(); $messages = []; $info = Settings::kitpvp_getKitUpgradeInfo("helmet", $this->helmet); $inv->setHelmet($info->getItem()); $messages[] = $info->itemsToString(); $info = Settings::kitpvp_getKitUpgradeInfo("chestplate", $this->chestplate); $inv->setChestplate($info->getItem()); $messages[] = $info->itemsToString(); $info = Settings::kitpvp_getKitUpgradeInfo("leggings", $this->leggings); $inv->setLeggings($info->getItem()); $messages[] = $info->itemsToString(); $info = Settings::kitpvp_getKitUpgradeInfo("boots", $this->boots); $inv->setBoots($info->getItem()); $messages[] = $info->itemsToString(); $inv->sendArmorContents($inv->getViewers()); if ($data->isUsingBowKit()) { $weapon = $data->getBowLevel() > 0 ? new Bow() : Item::get(Item::AIR); $messages[] = "a bow"; } else { $info = Settings::kitpvp_getKitUpgradeInfo("weapon", $this->weapon); $weapon = $info->getItem(); $messages[] = $info->itemsToString(); } $info = Settings::kitpvp_getKitUpgradeInfo("food", $this->food); $food = $info->getItem(); $messages[] = $info->itemsToString(); $info = Settings::kitpvp_getKitUpgradeInfo("arrows", $this->arrows); $arrows = $info->getItem(); $messages[] = $info->itemsToString(); /** @var \pocketmine\item\Item[] $items */ $items = []; if ($weapon->getId() !== Item::AIR) { $items[] = $weapon; } if ($food->getId() !== 0) { $items[] = $food; } if ($arrows->getId() !== 0) { $items[] = $arrows; } $inv->addItem(...$items); $cnt = Settings::easter_getSnowballCount($data->getSession()); if ($cnt > 0) { $inv->addItem(new Snowball(0, $cnt)); } if ($data->getKills() <= 500) { $inv->addItem(new Snowball(0, 8)); } if ($send) { $inv->sendHeldItem($inv->getViewers()); $inv->sendArmorContents($inv->getViewers()); } }
public function close() { if (!$this->closed) { if (!$this instanceof Player or $this->loggedIn) { foreach ($this->inventory->getViewers() as $viewer) { $viewer->removeWindow($this->inventory); } } parent::close(); } }
public function close() { if (!$this->closed) { if ($this->getFloatingInventory() instanceof FloatingInventory) { foreach ($this->getFloatingInventory()->getContents() as $craftingItem) { $this->level->dropItem($this, $craftingItem); } } else { $this->server->getLogger()->debug("Attempted to drop a null crafting inventory"); } if (!$this instanceof Player or $this->loggedIn) { foreach ($this->inventory->getViewers() as $viewer) { $viewer->removeWindow($this->inventory); } } parent::close(); } }
private function giveTools(PlayerInventory $inv, $rank) { $inv->getHolder()->setHealth(20); $inv->remove(Item::get(Item::SNOWBALL)); $inv->addItem(...$this->config->playerItems); // TODO support shops $inv->addItem(new Snowball(0, Settings::easter_getSnowballCount($rank))); }