public function getProperty($variable, $defaultValue = null)
{
if (!array_key_exists($variable, $this->propertyCache)) {
$v = getopt("", ["{$variable}::"]);
if (isset($v[$variable])) {
$this->propertyCache[$variable] = $v[$variable];
} else {
$this->propertyCache[$variable] = $this->config->getNested($variable);
}
}
return $this->propertyCache[$variable] === null ? $defaultValue : $this->propertyCache[$variable];
}
public function __construct(Server $server, $timeout = 5) { $this->timeout = $timeout; $this->serverName = $server->getMotd(); $this->listPlugins = $server->getProperty("settings.query-plugins", true); $this->plugins = $server->getPluginManager()->getPlugins(); $this->players = []; foreach ($server->getOnlinePlayers() as $player) { if ($player->isOnline()) { $this->players[] = $player; } } if ($server->isDServerEnabled() and $server->dserverConfig["queryMaxPlayers"]) { $pc = $server->dserverConfig["queryMaxPlayers"]; } elseif ($server->isDServerEnabled() and $server->dserverConfig["queryAllPlayers"]) { $pc = $server->getDServerMaxPlayers(); } else { $pc = $server->getMaxPlayers(); } if ($server->isDServerEnabled() and $server->dserverConfig["queryPlayers"]) { $poc = $server->getDServerOnlinePlayers(); } else { $poc = count($this->players); } $this->gametype = ($server->getGamemode() & 0x1) === 0 ? "SMP" : "CMP"; $this->version = $server->getVersion(); $this->server_engine = $server->getName() . " " . $server->getPocketMineVersion(); $this->map = $server->getDefaultLevel() === null ? "unknown" : $server->getDefaultLevel()->getName(); $this->numPlayers = $poc; $this->maxPlayers = $pc; $this->whitelist = $server->hasWhitelist() ? "on" : "off"; $this->port = $server->getPort(); $this->ip = $server->getIp(); }