本文整理汇总了PHP中pocketmine\Server::getTickUsageAverage方法的典型用法代码示例。如果您正苦于以下问题:PHP Server::getTickUsageAverage方法的具体用法?PHP Server::getTickUsageAverage怎么用?PHP Server::getTickUsageAverage使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pocketmine\Server
的用法示例。
在下文中一共展示了Server::getTickUsageAverage方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: check
public function check()
{
$d = Utils::getRealMemoryUsage();
$u = Utils::getMemoryUsage(true);
$usage = round($u[0] / 1024 / 1024, 2) . "/" . round($d[0] / 1024 / 1024, 2) . "/" . round($u[1] / 1024 / 1024, 2) . "/" . round($u[2] / 1024 / 1024, 2) . " MB @ " . Utils::getThreadCount() . " threads";
$serverStatus = serialize(["online" => count($this->server->getOnlinePlayers()), "max" => $this->server->getMaxPlayers(), "upload" => round($this->server->getNetwork()->getUpload() / 1024, 2), "download" => round($this->server->getNetwork()->getDownload() / 1024, 2), "tps" => $this->server->getTicksPerSecondAverage(), "load" => $this->server->getTickUsageAverage(), "usage" => $usage]);
for ($n = 0; $n < $this->threads; ++$n) {
if (!$this->workers[$n]->isTerminated()) {
$this->workers[$n]->serverStatus = $serverStatus;
}
if ($this->workers[$n]->isTerminated() === true) {
$this->workers[$n] = new RCONInstance($this->socket, $this->password, $this->clientsPerThread);
} elseif ($this->workers[$n]->isWaiting()) {
if ($this->workers[$n]->response !== "") {
$this->server->getLogger()->info($this->workers[$n]->response);
$this->workers[$n]->synchronized(function (RCONInstance $thread) {
$thread->notify();
}, $this->workers[$n]);
} else {
$response = new RemoteConsoleCommandSender();
$command = $this->workers[$n]->cmd;
$this->server->getPluginManager()->callEvent($ev = new RemoteServerCommandEvent($response, $command));
if (!$ev->isCancelled()) {
$this->server->dispatchCommand($ev->getSender(), $ev->getCommand());
}
$this->workers[$n]->response = $response->getMessage();
$this->workers[$n]->synchronized(function (RCONInstance $thread) {
$thread->notify();
}, $this->workers[$n]);
}
}
}
}
示例2: __construct
public function __construct(Server $server, $type, $playerList = [])
{
$endpoint = "http://" . $server->getProperty("anonymous-statistics.host", "stats.pocketmine.net") . "/";
$data = [];
$data["uniqueServerId"] = $server->getServerUniqueId()->toString();
$data["uniqueMachineId"] = Utils::getMachineUniqueId()->toString();
$data["uniqueRequestId"] = UUID::fromData($server->getServerUniqueId(), microtime(true))->toString();
switch ($type) {
case self::TYPE_OPEN:
$data["event"] = "open";
$version = new VersionString();
$data["server"] = ["port" => $server->getPort(), "software" => $server->getName(), "fullVersion" => $version->get(true), "version" => $version->get(), "build" => $version->getBuild(), "api" => $server->getApiVersion(), "minecraftVersion" => $server->getVersion(), "protocol" => Info::CURRENT_PROTOCOL];
$data["system"] = ["operatingSystem" => Utils::getOS(), "cores" => Utils::getCoreCount(), "phpVersion" => PHP_VERSION, "machine" => php_uname("a"), "release" => php_uname("r"), "platform" => php_uname("i")];
$data["players"] = ["count" => 0, "limit" => $server->getMaxPlayers()];
$plugins = [];
foreach ($server->getPluginManager()->getPlugins() as $p) {
$d = $p->getDescription();
$plugins[$d->getName()] = ["name" => $d->getName(), "version" => $d->getVersion(), "enabled" => $p->isEnabled()];
}
$data["plugins"] = $plugins;
break;
case self::TYPE_STATUS:
$data["event"] = "status";
$data["server"] = ["ticksPerSecond" => $server->getTicksPerSecondAverage(), "tickUsage" => $server->getTickUsageAverage(), "ticks" => $server->getTick()];
//This anonymizes the user ids so they cannot be reversed to the original
foreach ($playerList as $k => $v) {
$playerList[$k] = md5($v);
}
$players = [];
foreach ($server->getOnlinePlayers() as $p) {
if ($p->isOnline()) {
$players[] = md5($p->getUniqueId()->toBinary());
}
}
$data["players"] = ["count" => count($players), "limit" => $server->getMaxPlayers(), "currentList" => $players, "historyList" => array_values($playerList)];
$info = Utils::getMemoryUsage(true);
$data["system"] = ["mainMemory" => $info[0], "totalMemory" => $info[1], "availableMemory" => $info[2], "threadCount" => Utils::getThreadCount()];
break;
case self::TYPE_CLOSE:
$data["event"] = "close";
$data["crashing"] = $server->isRunning();
break;
}
$this->endpoint = $endpoint . "api/post";
$this->data = json_encode($data);
}
示例3: tick
public function tick()
{
$this->interface->process();
if (($time = microtime(true)) - $this->lastUpdate >= 5) {
//Heartbeat!
$this->lastUpdate = $time;
$pk = new HeartbeatPacket();
$pk->tps = $this->server->getTicksPerSecondAverage();
$pk->load = $this->server->getTickUsageAverage();
$pk->upTime = microtime(true) - \pocketmine\START_TIME;
$this->sendDataPacket($pk);
}
if (($time = microtime(true)) - $this->lastUpdate >= 30 and $this->interface->isConnected()) {
//30 seconds timeout
$this->interface->reconnect();
}
}