pocketmine\level\Level::unload PHP Method

unload() public method

Unloads the current level from memory safely
public unload ( boolean $force = false ) : boolean
$force boolean default false, force unload of default level
return boolean
    public function unload(bool $force = false) : bool
    {
        $ev = new LevelUnloadEvent($this);
        if ($this === $this->server->getDefaultLevel() and $force !== true) {
            $ev->setCancelled(true);
        }
        $this->server->getPluginManager()->callEvent($ev);
        if (!$force and $ev->isCancelled()) {
            return false;
        }
        $this->server->getLogger()->info($this->server->getLanguage()->translateString("pocketmine.level.unloading", [$this->getName()]));
        $defaultLevel = $this->server->getDefaultLevel();
        foreach ($this->getPlayers() as $player) {
            if ($this === $defaultLevel or $defaultLevel === null) {
                $player->close($player->getLeaveMessage(), "Forced default level unload");
            } elseif ($defaultLevel instanceof Level) {
                $player->teleport($this->server->getDefaultLevel()->getSafeSpawn());
            }
        }
        if ($this === $defaultLevel) {
            $this->server->setDefaultLevel(null);
        }
        if ($this->weather != null) {
            WeatherManager::unregisterLevel($this);
        }
        $this->close();
        return true;
    }

Usage Example

コード例 #1
0
ファイル: Server.php プロジェクト: ZenaGamingsky/PocketBox
 /**
  * @param Level $level
  * @param bool  $forceUnload
  *
  * @return bool
  */
 public function unloadLevel(Level $level, $forceUnload = false)
 {
     if ($level === $this->getDefaultLevel() and !$forceUnload) {
         throw new \InvalidStateException("The default level cannot be unloaded while running, please switch levels.");
     }
     if ($level->unload($forceUnload) === true) {
         unset($this->levels[$level->getId()]);
         return true;
     }
     return false;
 }
All Usage Examples Of pocketmine\level\Level::unload
Level