From 25b68c4bc642988bf0c777ec2bc21e5e0c7c4c60 Mon Sep 17 00:00:00 2001 From: Gregory Ballantine Date: Sat, 24 Sep 2022 16:26:57 -0400 Subject: [PATCH] Added some rudimentary server finding --- src/Minecraft/Server.php | 45 ++++++++++++++++++++++++++++++++++++++++ src/routes.php | 12 ++++++++++- views/index.twig | 4 +++- 3 files changed, 59 insertions(+), 2 deletions(-) create mode 100644 src/Minecraft/Server.php diff --git a/src/Minecraft/Server.php b/src/Minecraft/Server.php new file mode 100644 index 0000000..34add6d --- /dev/null +++ b/src/Minecraft/Server.php @@ -0,0 +1,45 @@ +rootDir = $dir; + $this->pidFilePath = $dir . '/pid.txt'; + + // search for server state + if (file_exists($this->pidFilePath)) { + $this->state = true; + } + } + + // start the server + public function start(): void { + // TODO - for now just set the state to true + $this->state = true; + } + + // stop the server + public function stop(): void { + // TODO - for now just set the state to false + $this->state = false; + } + + // getters & setters + public function getDirectory(): string { + return $this->rootDir; + } + public function getState(): bool { + return $this->state; + } + +} diff --git a/src/routes.php b/src/routes.php index 25b5b87..f84c10a 100644 --- a/src/routes.php +++ b/src/routes.php @@ -4,13 +4,23 @@ use Psr\Http\Message\ResponseInterface as Response; use Psr\Http\Message\ServerRequestInterface as Request; use Slim\Views\Twig; +use BitGoblin\MCST\Minecraft\Server; + // index GET route - this page should welcome the user and direct them to the available actions $app->get('/', function (Request $request, Response $response, $args) { $config = $this->get('config'); + // find servers + $minecraftDir = $config->get('server_directory'); + $serverDirs = glob($minecraftDir . "/*", GLOB_ONLYDIR); + $minecraftServers = array(); + foreach ($serverDirs as $i => $m) { + array_push($minecraftServers, new Server($m)); + } + $view = Twig::fromRequest($request); return $view->render($response, 'index.twig', [ - 'server_dir' => $config->get('server_directory'), + 'servers' => $minecraftServers, ]); })->setName('index'); diff --git a/views/index.twig b/views/index.twig index 5c788ed..af93129 100644 --- a/views/index.twig +++ b/views/index.twig @@ -15,7 +15,9 @@

List of servers:

There are currently no servers registered.

-

Home directory: {{ server_dir }}

+ {% for m in servers %} +

Server directory: {{ m.getDirectory() }}

+ {% endfor %}