From 905d3f161058e1031e94a73974bdbcd3a224fb48 Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Thu, 18 May 2017 19:46:20 +0100 Subject: [PATCH] Only save batch buffer when compressing chunks faster due to not needing to serialize, and reduces memory footprint of caching --- src/pocketmine/level/format/io/ChunkRequestTask.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/pocketmine/level/format/io/ChunkRequestTask.php b/src/pocketmine/level/format/io/ChunkRequestTask.php index 71204441b..9e99dc4f5 100644 --- a/src/pocketmine/level/format/io/ChunkRequestTask.php +++ b/src/pocketmine/level/format/io/ChunkRequestTask.php @@ -74,14 +74,18 @@ class ChunkRequestTask extends AsyncTask{ $batch = new BatchPacket(); $batch->addPacket($pk); $batch->compress($this->compressionLevel); + $batch->encode(); - $this->setResult($batch); + $this->setResult($batch->buffer, false); } public function onCompletion(Server $server){ $level = $server->getLevel($this->levelId); if($level instanceof Level and $this->hasResult()){ - $level->chunkRequestCallback($this->chunkX, $this->chunkZ, $this->getResult()); + $batch = new BatchPacket($this->getResult()); + $batch->compressed = true; + $batch->isEncoded = true; + $level->chunkRequestCallback($this->chunkX, $this->chunkZ, $batch); } }