pocketmine\Server::tick PHP Method

tick() private method

Tries to execute a server tick
private tick ( )
    private function tick()
    {
        $tickTime = microtime(true);
        if ($tickTime - $this->nextTick < -0.025) {
            //Allow half a tick of diff
            return false;
        }
        Timings::$serverTickTimer->startTiming();
        ++$this->tickCounter;
        $this->checkConsole();
        Timings::$connectionTimer->startTiming();
        $this->network->processInterfaces();
        if ($this->rcon !== null) {
            $this->rcon->check();
        }
        Timings::$connectionTimer->stopTiming();
        Timings::$schedulerTimer->startTiming();
        $this->scheduler->mainThreadHeartbeat($this->tickCounter);
        Timings::$schedulerTimer->stopTiming();
        $this->checkTickUpdates($this->tickCounter, $tickTime);
        foreach ($this->players as $player) {
            $player->checkNetwork();
        }
        if (($this->tickCounter & 0b1111) === 0) {
            $this->titleTick();
            $this->maxTick = 20;
            $this->maxUse = 0;
            if (($this->tickCounter & 0b111111111) === 0) {
                try {
                    $this->getPluginManager()->callEvent($this->queryRegenerateTask = new QueryRegenerateEvent($this, 5));
                    if ($this->queryHandler !== null) {
                        $this->queryHandler->regenerateInfo();
                    }
                } catch (\Throwable $e) {
                    $this->logger->logException($e);
                }
            }
            $this->getNetwork()->updateName();
        }
        if ($this->autoSave and ++$this->autoSaveTicker >= $this->autoSaveTicks) {
            $this->autoSaveTicker = 0;
            $this->doAutoSave();
        }
        if ($this->sendUsageTicker > 0 and --$this->sendUsageTicker === 0) {
            $this->sendUsageTicker = 6000;
            $this->sendUsage(SendUsageTask::TYPE_STATUS);
        }
        if ($this->tickCounter % 100 === 0) {
            foreach ($this->levels as $level) {
                $level->clearCache();
            }
            if ($this->getTicksPerSecondAverage() < 10) {
                $this->logger->warning($this->getLanguage()->translateString("pocketmine.server.tickOverload"));
            }
        }
        if ($this->dispatchSignals and $this->tickCounter % 5 === 0) {
            pcntl_signal_dispatch();
        }
        $this->getMemoryManager()->check();
        Timings::$serverTickTimer->stopTiming();
        $now = microtime(true);
        $tick = min(20, 1 / max(0.001, $now - $tickTime));
        $use = min(1, ($now - $tickTime) / 0.05);
        TimingsHandler::tick($tick <= $this->profilingTickRate);
        if ($this->maxTick > $tick) {
            $this->maxTick = $tick;
        }
        if ($this->maxUse < $use) {
            $this->maxUse = $use;
        }
        array_shift($this->tickAverage);
        $this->tickAverage[] = $tick;
        array_shift($this->useAverage);
        $this->useAverage[] = $use;
        if ($this->nextTick - $tickTime < -1) {
            $this->nextTick = $tickTime;
        } else {
            $this->nextTick += 0.05;
        }
        return true;
    }
Server