public static function init() { if (self::$serverTickTimer instanceof TimingsHandler) { return; } self::$fullTickTimer = new TimingsHandler("Full Server Tick"); self::$serverTickTimer = new TimingsHandler("** Full Server Tick", self::$fullTickTimer); self::$memoryManagerTimer = new TimingsHandler("Memory Manager"); self::$garbageCollectorTimer = new TimingsHandler("Garbage Collector", self::$memoryManagerTimer); self::$playerListTimer = new TimingsHandler("Player List"); self::$playerNetworkTimer = new TimingsHandler("Player Network Send"); self::$playerNetworkReceiveTimer = new TimingsHandler("Player Network Receive"); self::$playerChunkOrderTimer = new TimingsHandler("Player Order Chunks"); self::$playerChunkSendTimer = new TimingsHandler("Player Send Chunks"); self::$connectionTimer = new TimingsHandler("Connection Handler"); self::$tickablesTimer = new TimingsHandler("Tickables"); self::$schedulerTimer = new TimingsHandler("Scheduler"); self::$chunkIOTickTimer = new TimingsHandler("ChunkIOTick"); self::$timeUpdateTimer = new TimingsHandler("Time Update"); self::$serverCommandTimer = new TimingsHandler("Server Command"); self::$worldSaveTimer = new TimingsHandler("World Save"); self::$generationTimer = new TimingsHandler("World Generation"); self::$populationTimer = new TimingsHandler("World Population"); self::$generationCallbackTimer = new TimingsHandler("World Generation Callback"); self::$permissibleCalculationTimer = new TimingsHandler("Permissible Calculation"); self::$permissionDefaultTimer = new TimingsHandler("Default Permission Calculation"); self::$entityMoveTimer = new TimingsHandler("** entityMove"); self::$tickEntityTimer = new TimingsHandler("** tickEntity"); self::$activatedEntityTimer = new TimingsHandler("** activatedTickEntity"); self::$tickTileEntityTimer = new TimingsHandler("** tickTileEntity"); self::$timerEntityBaseTick = new TimingsHandler("** entityBaseTick"); self::$timerLivingEntityBaseTick = new TimingsHandler("** livingEntityBaseTick"); self::$timerEntityAI = new TimingsHandler("** livingEntityAI"); self::$timerEntityAICollision = new TimingsHandler("** livingEntityAICollision"); self::$timerEntityAIMove = new TimingsHandler("** livingEntityAIMove"); self::$timerEntityTickRest = new TimingsHandler("** livingEntityTickRest"); self::$schedulerSyncTimer = new TimingsHandler("** Scheduler - Sync Tasks", PluginManager::$pluginParentTimer); self::$schedulerAsyncTimer = new TimingsHandler("** Scheduler - Async Tasks"); self::$playerCommandTimer = new TimingsHandler("** playerCommand"); }