pocketmine\event\Timings::getSendDataPacketTimings PHP Method

getSendDataPacketTimings() public static method

public static getSendDataPacketTimings ( DataPacket $pk ) : TimingsHandler
$pk pocketmine\network\protocol\DataPacket
return TimingsHandler
    public static function getSendDataPacketTimings(DataPacket $pk)
    {
        if (!isset(self::$packetSendTimingMap[$pk::NETWORK_ID])) {
            $pkName = (new \ReflectionClass($pk))->getShortName();
            self::$packetSendTimingMap[$pk::NETWORK_ID] = new TimingsHandler("** sendPacket - " . $pkName . " [0x" . dechex($pk::NETWORK_ID) . "]", self::$playerNetworkTimer);
        }
        return self::$packetSendTimingMap[$pk::NETWORK_ID];
    }

Usage Example

Example #1
0
 /**
  * @param DataPacket $packet
  * @param bool       $needACK
  *
  * @return bool|int
  */
 public function directDataPacket(DataPacket $packet, $needACK = false)
 {
     if ($this->connected === false) {
         return false;
     }
     $timings = Timings::getSendDataPacketTimings($packet);
     $timings->startTiming();
     $this->server->getPluginManager()->callEvent($ev = new DataPacketSendEvent($this, $packet));
     if ($ev->isCancelled()) {
         $timings->stopTiming();
         return false;
     }
     $identifier = $this->interface->putPacket($this, $packet, $needACK, true);
     if ($needACK and $identifier !== null) {
         $this->needACK[$identifier] = false;
         $timings->stopTiming();
         return $identifier;
     }
     $timings->stopTiming();
     return true;
 }