getOwnerName() ?? "Unknown") . " Runnable: " . $task->getTaskName(); if($period > 0){ $name .= "(interval:" . $period . ")"; }else{ $name .= "(Single)"; } if(!isset(self::$pluginTaskTimingMap[$name])){ self::$pluginTaskTimingMap[$name] = new TimingsHandler($name, self::$schedulerSyncTimer); } return self::$pluginTaskTimingMap[$name]; } /** * @param Entity $entity * * @return TimingsHandler */ public static function getEntityTimings(Entity $entity) : TimingsHandler{ $entityType = (new \ReflectionClass($entity))->getShortName(); if(!isset(self::$entityTypeTimingMap[$entityType])){ if($entity instanceof Player){ self::$entityTypeTimingMap[$entityType] = new TimingsHandler("** tickEntity - EntityPlayer", self::$tickEntityTimer); }else{ self::$entityTypeTimingMap[$entityType] = new TimingsHandler("** tickEntity - " . $entityType, self::$tickEntityTimer); } } return self::$entityTypeTimingMap[$entityType]; } /** * @param Tile $tile * * @return TimingsHandler */ public static function getTileEntityTimings(Tile $tile) : TimingsHandler{ $tileType = (new \ReflectionClass($tile))->getShortName(); if(!isset(self::$tileEntityTypeTimingMap[$tileType])){ self::$tileEntityTypeTimingMap[$tileType] = new TimingsHandler("** tickTileEntity - " . $tileType, self::$tickTileEntityTimer); } return self::$tileEntityTypeTimingMap[$tileType]; } /** * @param DataPacket $pk * * @return TimingsHandler */ public static function getReceiveDataPacketTimings(DataPacket $pk) : TimingsHandler{ if(!isset(self::$packetReceiveTimingMap[$pk::NETWORK_ID])){ $pkName = (new \ReflectionClass($pk))->getShortName(); self::$packetReceiveTimingMap[$pk::NETWORK_ID] = new TimingsHandler("** receivePacket - " . $pkName . " [0x" . dechex($pk::NETWORK_ID) . "]", self::$playerNetworkReceiveTimer); } return self::$packetReceiveTimingMap[$pk::NETWORK_ID]; } /** * @param DataPacket $pk * * @return TimingsHandler */ public static function getSendDataPacketTimings(DataPacket $pk) : TimingsHandler{ 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]; } }