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();
}
}