51 $server = $sender->getServer();
52 $sender->sendMessage(TextFormat::GREEN .
"---- " . TextFormat::RESET .
"Server status" . TextFormat::GREEN .
" ----");
54 $time = (int) (microtime(
true) - $server->getStartTime());
56 $seconds = $time % 60;
62 $minutes = floor(($time % 3600) / 60);
64 $hours = floor(($time % (3600 * 24)) / 3600);
65 if($time >= 3600 * 24){
66 $days = floor($time / (3600 * 24));
71 $uptime = ($minutes !==
null ?
75 :
"") .
"$hours hours "
76 :
"") .
"$minutes minutes "
77 :
"") .
"$seconds seconds";
79 $sender->sendMessage(TextFormat::GOLD .
"Uptime: " . TextFormat::RED . $uptime);
81 $tpsColor = TextFormat::GREEN;
82 if($server->getTicksPerSecond() < 12){
83 $tpsColor = TextFormat::RED;
84 }elseif($server->getTicksPerSecond() < 17){
85 $tpsColor = TextFormat::GOLD;
88 $sender->sendMessage(TextFormat::GOLD .
"Current TPS: {$tpsColor}{$server->getTicksPerSecond()} ({$server->getTickUsage()}%)");
89 $sender->sendMessage(TextFormat::GOLD .
"Average TPS: {$tpsColor}{$server->getTicksPerSecondAverage()} ({$server->getTickUsageAverage()}%)");
91 $bandwidth = $server->getNetwork()->getBandwidthTracker();
92 $sender->sendMessage(TextFormat::GOLD .
"Network upload: " . TextFormat::RED . round($bandwidth->getSend()->getAverageBytes() / 1024, 2) .
" kB/s");
93 $sender->sendMessage(TextFormat::GOLD .
"Network download: " . TextFormat::RED . round($bandwidth->getReceive()->getAverageBytes() / 1024, 2) .
" kB/s");
95 $sender->sendMessage(TextFormat::GOLD .
"Thread count: " . TextFormat::RED . Process::getThreadCount());
97 $sender->sendMessage(TextFormat::GOLD .
"Main thread memory: " . TextFormat::RED . number_format(round(($mUsage[0] / 1024) / 1024, 2), 2) .
" MB.");
98 $sender->sendMessage(TextFormat::GOLD .
"Total memory: " . TextFormat::RED . number_format(round(($mUsage[1] / 1024) / 1024, 2), 2) .
" MB.");
99 $sender->sendMessage(TextFormat::GOLD .
"Total virtual memory: " . TextFormat::RED . number_format(round(($mUsage[2] / 1024) / 1024, 2), 2) .
" MB.");
101 $globalLimit = $server->getMemoryManager()->getGlobalMemoryLimit();
102 if($globalLimit > 0){
103 $sender->sendMessage(TextFormat::GOLD .
"Maximum memory (manager): " . TextFormat::RED . number_format(round(($globalLimit / 1024) / 1024, 2), 2) .
" MB.");
106 foreach($server->getWorldManager()->getWorlds() as $world){
107 $worldName = $world->getFolderName() !== $world->getDisplayName() ?
" (" . $world->getDisplayName() .
")" :
"";
108 $timeColor = $world->getTickRateTime() > 40 ? TextFormat::RED : TextFormat::YELLOW;
109 $sender->sendMessage(TextFormat::GOLD .
"World \"{$world->getFolderName()}\"$worldName: " .
110 TextFormat::RED . number_format(count($world->getLoadedChunks())) . TextFormat::GREEN .
" loaded chunks, " .
111 TextFormat::RED . number_format(count($world->getTickingChunks())) . TextFormat::GREEN .
" ticking chunks, " .
112 TextFormat::RED . number_format(count($world->getEntities())) . TextFormat::GREEN .
" entities. " .
113 "Time $timeColor" . round($world->getTickRateTime(), 2) .
"ms"