Exemple #1
0
 private function processChunkRequest()
 {
     if (count($this->chunkSendQueue) > 0) {
         $this->timings->syncChunkSendTimer->startTiming();
         $x = null;
         $z = null;
         foreach ($this->chunkSendQueue as $index => $players) {
             if (isset($this->chunkSendTasks[$index])) {
                 continue;
             }
             Level::getXZ($index, $x, $z);
             $this->chunkSendTasks[$index] = true;
             if (isset($this->chunkCache[$index])) {
                 $this->sendChunkFromCache($x, $z);
                 continue;
             }
             $this->timings->syncChunkSendPrepareTimer->startTiming();
             $task = $this->provider->requestChunkTask($x, $z);
             if ($task !== null) {
                 $this->server->getScheduler()->scheduleAsyncTask($task);
             }
             $this->timings->syncChunkSendPrepareTimer->stopTiming();
         }
         $this->timings->syncChunkSendTimer->stopTiming();
     }
 }