Minor improvements to Batch encoding

This commit is contained in:
Dylan K. Taylor
2017-04-15 19:40:06 +01:00
parent b55929b382
commit c5eccc8e1c
3 changed files with 39 additions and 18 deletions

View File

@ -21,6 +21,7 @@
namespace pocketmine\network;
use pocketmine\network\mcpe\protocol\BatchPacket;
use pocketmine\scheduler\AsyncTask;
use pocketmine\Server;
@ -31,15 +32,18 @@ class CompressBatchedTask extends AsyncTask{
public $final;
public $targets;
public function __construct($data, array $targets, $level = 7){
$this->data = $data;
public function __construct(BatchPacket $data, array $targets, $level = 7){
$this->data = serialize($data);
$this->targets = $targets;
$this->level = $level;
}
public function onRun(){
try{
$this->final = zlib_encode($this->data, ZLIB_ENCODING_DEFLATE, $this->level);
/** @var BatchPacket $pk */
$pk = unserialize($this->data);
$pk->compress($this->level);
$this->final = serialize($pk);
$this->data = null;
}catch(\Throwable $e){
@ -47,6 +51,6 @@ class CompressBatchedTask extends AsyncTask{
}
public function onCompletion(Server $server){
$server->broadcastPacketsCallback($this->final, (array) $this->targets);
$server->broadcastPacketsCallback(unserialize($this->final), (array) $this->targets);
}
}