/**
  * @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);
         }
     }
 }
Beispiel #2
0
 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();
     }
 }