47            if($ev->isCancelled()){
 
   50            $packets = $ev->getPackets();
 
   55        $targetsByCompressor = [];
 
   56        foreach($recipients as $recipient){
 
   58            $compressor = $recipient->getCompressor();
 
   59            $compressors[spl_object_id($compressor)] = $compressor;
 
   61            $targetsByCompressor[spl_object_id($compressor)][] = $recipient;
 
   66        $writer = 
new ByteBufferWriter();
 
   67        foreach($packets as $packet){
 
   69            $buffer = NetworkSession::encodePacketTimed($writer, $packet);
 
   71            $totalLength += (((int) log(strlen($buffer), 128)) + 1) + strlen($buffer);
 
   72            $packetBuffers[] = $buffer;
 
   75        foreach($targetsByCompressor as $compressorId => $compressorTargets){
 
   76            $compressor = $compressors[$compressorId];
 
   78            $threshold = $compressor->getCompressionThreshold();
 
   79            if(count($compressorTargets) > 1 && $threshold !== 
null && $totalLength >= $threshold){
 
   81                $stream = 
new ByteBufferWriter();
 
   82                PacketBatch::encodeRaw($stream, $packetBuffers);
 
   83                $batchBuffer = $stream->getData();
 
   85                $batch = $this->
server->prepareBatch($batchBuffer, $compressor, timings: Timings::$playerNetworkSendCompressBroadcast);
 
   86                foreach($compressorTargets as $target){
 
   87                    $target->queueCompressed($batch);
 
   90                foreach($compressorTargets as $target){
 
   91                    foreach($packetBuffers as $packetBuffer){
 
   92                        $target->addToSendBuffer($packetBuffer);