public function chunkRequestCallback($x, $z, $payload, $ordering = FullChunkDataPacket::ORDER_COLUMNS)
{
$this->timings->syncChunkSendTimer->startTiming();
$index = Level::chunkHash($x, $z);
if (!isset($this->chunkCache[$index]) and $this->cacheChunks and $this->server->getMemoryManager()->canUseChunkCache()) {
$this->chunkCache[$index] = Player::getChunkCacheFromData($x, $z, $payload, $ordering);
$this->sendChunkFromCache($x, $z);
$this->timings->syncChunkSendTimer->stopTiming();
return;
}
if (isset($this->chunkSendTasks[$index])) {
foreach ($this->chunkSendQueue[$index] as $player) {
/** @var Player $player */
if ($player->isConnected() and isset($player->usedChunks[$index])) {
$player->sendChunk($x, $z, $payload, $ordering);
}
}
unset($this->chunkSendQueue[$index]);
unset($this->chunkSendTasks[$index]);
}
$this->timings->syncChunkSendTimer->stopTiming();
}