/** * @param Plugin $plugin */ public function disablePlugin(Plugin $plugin) { if ($plugin->isEnabled()) { try { $plugin->getPluginLoader()->disablePlugin($plugin); } catch (\Exception $e) { $logger = Server::getInstance()->getLogger(); if ($logger instanceof MainLogger) { $logger->logException($e); } } $this->server->getScheduler()->cancelTasks($plugin); HandlerList::unregisterAll($plugin); foreach ($plugin->getDescription()->getPermissions() as $perm) { $this->removePermission($perm); } } }
public function generateChunk($x, $z, $force = false) { if (count($this->chunkGenerationQueue) >= $this->chunkGenerationQueueSize and !$force) { return; } if (!isset($this->chunkGenerationQueue[$index = Level::chunkHash($x, $z)])) { Timings::$generationTimer->startTiming(); $this->chunkGenerationQueue[$index] = true; $task = new GenerationTask($this, $this->getChunk($x, $z, true)); $this->server->getScheduler()->scheduleAsyncTask($task); Timings::$generationTimer->stopTiming(); } }