Added ability to read from a server's properties file, and added server port numbers to the index display
This commit is contained in:
@ -14,6 +14,8 @@ class Server {
|
||||
private string $pidFilePath;
|
||||
// server run status
|
||||
private bool $state = false;
|
||||
// server config properties
|
||||
private ServerConfig $properties;
|
||||
|
||||
// class constructor
|
||||
public function __construct($dir) {
|
||||
@ -21,6 +23,7 @@ class Server {
|
||||
$this->rootDir = $dir;
|
||||
$this->serverName = $dirBits[count($dirBits) - 1];
|
||||
$this->pidFilePath = $this->rootDir . '/pid.txt';
|
||||
$this->properties = new ServerConfig($this->rootDir . '/server.properties');
|
||||
|
||||
// get server version
|
||||
$versionFile = join('/', array($this->rootDir, 'current_version.txt'));
|
||||
@ -81,6 +84,11 @@ class Server {
|
||||
return -1;
|
||||
}
|
||||
|
||||
// get parameter from server properties file
|
||||
public function getProperty(string $param) {
|
||||
return $this->properties->get($param);
|
||||
}
|
||||
|
||||
// getters & setters
|
||||
public function getDirectory(): string {
|
||||
return $this->rootDir;
|
||||
|
29
src/Minecraft/ServerConfig.php
Normal file
29
src/Minecraft/ServerConfig.php
Normal file
@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
namespace BitGoblin\MCST\Minecraft;
|
||||
|
||||
class ServerConfig {
|
||||
|
||||
protected array $config;
|
||||
|
||||
public function __construct($propertiesFile) {
|
||||
$this->config = array(); // initialize array
|
||||
|
||||
// parse config file
|
||||
$fh = fopen($propertiesFile, 'r+');
|
||||
while (!feof($fh)) {
|
||||
$line = fgets($fh);
|
||||
$eqpos = strpos($line, '=');
|
||||
$parameterName = substr($line, 0, $eqpos);
|
||||
$parameterValue = substr($line, ($eqpos + 1));
|
||||
|
||||
// assign parameter values to the config array
|
||||
$this->config[$parameterName] = $parameterValue;
|
||||
}
|
||||
}
|
||||
|
||||
public function get(string $param) {
|
||||
return $this->config[$param];
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user