Added ability to read from a server's properties file, and added server port numbers to the index display
This commit is contained in:
parent
5c35389ae3
commit
2297768b57
@ -14,6 +14,8 @@ class Server {
|
|||||||
private string $pidFilePath;
|
private string $pidFilePath;
|
||||||
// server run status
|
// server run status
|
||||||
private bool $state = false;
|
private bool $state = false;
|
||||||
|
// server config properties
|
||||||
|
private ServerConfig $properties;
|
||||||
|
|
||||||
// class constructor
|
// class constructor
|
||||||
public function __construct($dir) {
|
public function __construct($dir) {
|
||||||
@ -21,6 +23,7 @@ class Server {
|
|||||||
$this->rootDir = $dir;
|
$this->rootDir = $dir;
|
||||||
$this->serverName = $dirBits[count($dirBits) - 1];
|
$this->serverName = $dirBits[count($dirBits) - 1];
|
||||||
$this->pidFilePath = $this->rootDir . '/pid.txt';
|
$this->pidFilePath = $this->rootDir . '/pid.txt';
|
||||||
|
$this->properties = new ServerConfig($this->rootDir . '/server.properties');
|
||||||
|
|
||||||
// get server version
|
// get server version
|
||||||
$versionFile = join('/', array($this->rootDir, 'current_version.txt'));
|
$versionFile = join('/', array($this->rootDir, 'current_version.txt'));
|
||||||
@ -81,6 +84,11 @@ class Server {
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// get parameter from server properties file
|
||||||
|
public function getProperty(string $param) {
|
||||||
|
return $this->properties->get($param);
|
||||||
|
}
|
||||||
|
|
||||||
// getters & setters
|
// getters & setters
|
||||||
public function getDirectory(): string {
|
public function getDirectory(): string {
|
||||||
return $this->rootDir;
|
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];
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -22,6 +22,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<th>Server name</th>
|
<th>Server name</th>
|
||||||
<th>Minecraft version</th>
|
<th>Minecraft version</th>
|
||||||
|
<th>Port</th>
|
||||||
<th>State</th>
|
<th>State</th>
|
||||||
<th>Actions</th>
|
<th>Actions</th>
|
||||||
</tr>
|
</tr>
|
||||||
@ -31,6 +32,7 @@
|
|||||||
<tr class="serverItem" data-server-name="{{ m.getName() }}">
|
<tr class="serverItem" data-server-name="{{ m.getName() }}">
|
||||||
<td class="serverName">{{ m.getName() }}</td>
|
<td class="serverName">{{ m.getName() }}</td>
|
||||||
<td class="serverVersion">{{ m.getVersion() }}</td>
|
<td class="serverVersion">{{ m.getVersion() }}</td>
|
||||||
|
<td class="serverPort">{{ m.getProperty('server-port') }}</td>
|
||||||
<td class="serverState">{{ m.getState() ? 'Running' : 'Stopped' }}</td>
|
<td class="serverState">{{ m.getState() ? 'Running' : 'Stopped' }}</td>
|
||||||
<td>
|
<td>
|
||||||
<a href="/server/{{ m.getName() }}/start"><i class="fa-solid fa-play"></i></a>
|
<a href="/server/{{ m.getName() }}/start"><i class="fa-solid fa-play"></i></a>
|
||||||
|
Loading…
Reference in New Issue
Block a user