mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-06-13 06:55:29 +00:00
Add buffering for non-immediate priority packets to reduce compression overhead
This commit is contained in:
parent
8f63117dac
commit
2162675b64
@ -1067,6 +1067,10 @@ class Player extends Human implements CommandSender, ChunkLoader, IPlayer{
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(!$packet->canBeBatched()){
|
||||||
|
throw new \InvalidArgumentException(get_class($packet) . " cannot be added to batch buffer");
|
||||||
|
}
|
||||||
|
|
||||||
$timings = Timings::getSendDataPacketTimings($packet);
|
$timings = Timings::getSendDataPacketTimings($packet);
|
||||||
$timings->startTiming();
|
$timings->startTiming();
|
||||||
$this->server->getPluginManager()->callEvent($ev = new DataPacketSendEvent($this, $packet));
|
$this->server->getPluginManager()->callEvent($ev = new DataPacketSendEvent($this, $packet));
|
||||||
@ -1125,6 +1129,12 @@ class Player extends Human implements CommandSender, ChunkLoader, IPlayer{
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(!$needACK and !$immediate and $packet->canBeBatched()){
|
||||||
|
$this->batchedPackets[] = clone $packet;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
$identifier = $this->interface->putPacket($this, $packet, $needACK, $immediate);
|
$identifier = $this->interface->putPacket($this, $packet, $needACK, $immediate);
|
||||||
|
|
||||||
if($needACK and $identifier !== null){
|
if($needACK and $identifier !== null){
|
||||||
|
Loading…
x
Reference in New Issue
Block a user