/** * @priority HIGHEST */ public function levelChg(EntityLevelChangeEvent $ev) { echo __METHOD__ . "," . __LINE__ . "\n"; //##DEBUG if ($ev->isCancelled()) { return; } $player = $ev->getEntity(); if (!$player instanceof Player) { return; } if ($player->isCreative()) { return; } if ($player->hasPermission("liab.keep")) { return; } if (!$this->saveInventory($player, $ev->getOrigin())) { return; } $player->getInventory()->clearAll(); if (!$this->loadInventory($player, $ev->getTarget())) { return; } }
protected function switchLevel(Level $targetLevel) { if ($this->isValid()) { $this->server->getPluginManager()->callEvent($ev = new EntityLevelChangeEvent($this, $this->level, $targetLevel)); if ($ev->isCancelled()) { return false; } $this->level->removeEntity($this); if ($this->chunk !== null) { $this->chunk->removeEntity($this); } $this->despawnFromAll(); if ($this instanceof Player) { foreach ($this->usedChunks as $index => $d) { if (PHP_INT_SIZE === 8) { $X = $index >> 32 << 32 >> 32; $Z = ($index & 4294967295.0) << 32 >> 32; } else { list($X, $Z) = explode(":", $index); $X = (int) $X; $Z = (int) $Z; } $this->unloadChunk($X, $Z); } } } $this->setLevel($targetLevel); $this->level->addEntity($this); if ($this instanceof Player) { $this->usedChunks = []; $pk = new SetTimePacket(); $pk->time = $this->level->getTime(); $pk->started = $this->level->stopTime == false; $this->dataPacket($pk); } $this->chunk = null; return true; }
protected function switchLevel(Level $targetLevel) { if ($this->closed) { return false; } if ($this->isValid()) { $this->server->getPluginManager()->callEvent($ev = new EntityLevelChangeEvent($this, $this->level, $targetLevel)); if ($ev->isCancelled()) { return false; } $this->level->removeEntity($this); if ($this->chunk !== null) { $this->chunk->removeEntity($this); } $this->despawnFromAll(); } $this->setLevel($targetLevel); $this->level->addEntity($this); $this->chunk = null; return true; }
public function onLevelChange(EntityLevelChangeEvent $ev) { if ($ev->isCancelled()) { return; } $pl = $ev->getEntity(); if (!$pl instanceof Player) { return; } //echo $pl->getName()." Level Change\n"; foreach ($this->getServer()->getLevels() as $lv) { $this->despawnPlayerCases($pl, $lv); } $this->getServer()->getScheduler()->scheduleDelayedTask(new PluginCallbackTask($this, [$this, "spawnPlayerCases"], [$pl, $ev->getTarget()]), 20); //$this->spawnPlayerCases($pl,$ev->getTarget()); }
protected function switchLevel(Level $targetLevel) { if ($this->isValid()) { $this->server->getPluginManager()->callEvent($ev = new EntityLevelChangeEvent($this, $this->level, $targetLevel)); if ($ev->isCancelled()) { return false; } $this->level->removeEntity($this); if ($this->chunk !== null) { $this->chunk->removeEntity($this); } $this->despawnFromAll(); if ($this instanceof Player) { foreach ($this->usedChunks as $index => $d) { Level::getXZ($index, $X, $Z); $this->unloadChunk($X, $Z); } } } $this->setLevel($targetLevel); $this->level->addEntity($this); if ($this instanceof Player) { $this->usedChunks = []; $pk = new SetTimePacket(); $pk->time = $this->level->getTime(); $pk->started = $this->level->stopTime == false; $this->dataPacket($pk->setChannel(Network::CHANNEL_WORLD_EVENTS)); } $this->chunk = null; return true; }
protected function switchLevel(Level $targetLevel) { if ($this->isValid()) { $this->server->getPluginManager()->callEvent($ev = new EntityLevelChangeEvent($this, $this->getLevel(), $targetLevel)); if ($ev->isCancelled()) { return false; } $this->getLevel()->removeEntity($this); $this->chunk->removeEntity($this); $this->despawnFromAll(); if ($this instanceof Player) { foreach ($this->usedChunks as $index => $d) { $X = null; $Z = null; Level::getXZ($index, $X, $Z); foreach ($this->getLevel()->getChunkEntities($X, $Z) as $entity) { $entity->despawnFrom($this); } } $this->getLevel()->freeAllChunks($this); } } $this->setLevel($targetLevel, $this instanceof Player ? true : false); //Hard reference $this->getLevel()->addEntity($this); if ($this instanceof Player) { $this->usedChunks = []; $pk = new SetTimePacket(); $pk->time = $this->getLevel()->getTime(); $pk->started = $this->getLevel()->stopTime == false; $this->dataPacket($pk); } $this->chunk = null; return true; }
public function onLevelChange(EntityLevelChangeEvent $event) { echo __METHOD__ . "," . __LINE__ . "\n"; if ($event->isCancelled()) { return; } $player = $event->getEntity(); if (!$player instanceof Player) { return; } if ($player->isCreative()) { return; } if (!$this->saveInventory($player, $event->getOrigin())) { return; } $player->getInventory()->clearAll(); if (!$this->loadInventory($player, $event->getTarget())) { return; } $slot = $this->getConfig()->get("slot"); $item = $this->getConfig()->get("ID"); $damage = $this->getConfig()->get("Damage"); $ammount = $this->getConfig()->get("Ammount"); $level = $event->getLevel(); $world = $this->getConfig()->get("world"); if ($level == $world && $slot <= 35) { $player->getInventory()->setItem($slot, Item::get($item, $damage, $ammount)); } $slot = $this->getConfig()->get("slot2"); $item = $this->getConfig()->get("ID2"); $damage = $this->getConfig()->get("Damage2"); $ammount = $this->getConfig()->get("Ammount2"); $level = $event->getLevel(); $world = $this->getConfig()->get("world"); if ($level == $world && $slot <= 35) { $player->getInventory()->setItem($slot, Item::get($item, $damage, $ammount)); } $slot = $this->getConfig()->get("slot3"); $item = $this->getConfig()->get("ID3"); $damage = $this->getConfig()->get("Damage3"); $ammount = $this->getConfig()->get("Ammount3"); $level = $event->getLevel(); $world = $this->getConfig()->get("world"); if ($level == $world && $slot <= 35) { $player->getInventory()->setItem($slot, Item::get($item, $damage, $ammount)); } $slot = $this->getConfig()->get("slot4"); $item = $this->getConfig()->get("ID4"); $damage = $this->getConfig()->get("Damage4"); $ammount = $this->getConfig()->get("Ammount4"); $level = $event->getLevel(); $world = $this->getConfig()->get("world"); if ($level == $world && $slot <= 35) { $player->getInventory()->setItem($slot, Item::get($item, $damage, $ammount)); } $slot = $this->getConfig()->get("slot5"); $item = $this->getConfig()->get("ID5"); $damage = $this->getConfig()->get("Damage5"); $ammount = $this->getConfig()->get("Ammount5"); $level = $event->getLevel(); $world = $this->getConfig()->get("world"); if ($level == $world && $slot <= 35) { $player->getInventory()->setItem($slot, Item::get($item, $damage, $ammount)); } $slot = $this->getConfig()->get("slot6"); $item = $this->getConfig()->get("ID6"); $damage = $this->getConfig()->get("Damage6"); $ammount = $this->getConfig()->get("Ammount6"); $level = $event->getLevel(); $world = $this->getConfig()->get("world"); if ($level == $world && $slot <= 35) { $player->getInventory()->setItem($slot, Item::get($item, $damage, $ammount)); } $slot = $this->getConfig()->get("slot7"); $item = $this->getConfig()->get("ID7"); $damage = $this->getConfig()->get("Damage7"); $ammount = $this->getConfig()->get("Ammount7"); $level = $event->getLevel(); $world = $this->getConfig()->get("world"); if ($level == $world && $slot <= 35) { $player->getInventory()->setItem($slot, Item::get($item, $damage, $ammount)); } $slot = $this->getConfig()->get("slot8"); $item = $this->getConfig()->get("ID8"); $damage = $this->getConfig()->get("Damage8"); $ammount = $this->getConfig()->get("Ammount8"); $level = $event->getLevel(); $world = $this->getConfig()->get("world"); if ($level == $world && $slot <= 35) { $player->getInventory()->setItem($slot, Item::get($item, $damage, $ammount)); } $slot = $this->getConfig()->get("slot9"); $item = $this->getConfig()->get("ID9"); $damage = $this->getConfig()->get("Damage9"); $ammount = $this->getConfig()->get("Ammount9"); $level = $event->getLevel(); $world = $this->getConfig()->get("world"); if ($level == $world && $slot <= 35) { $player->getInventory()->setItem($slot, Item::get($item, $damage, $ammount)); } $slot = $this->getConfig()->get("slot10"); $item = $this->getConfig()->get("ID10"); $damage = $this->getConfig()->get("Damage10"); $ammount = $this->getConfig()->get("Ammount10"); $level = $event->getLevel(); $world = $this->getConfig()->get("world"); if ($level == $world && $slot <= 35) { $player->getInventory()->setItem($slot, Item::get($item, $damage, $ammount)); } }