From 677bde3c823dff1c659b5938a598d8f080bddc04 Mon Sep 17 00:00:00 2001 From: Mathias Wagner Date: Tue, 13 Feb 2024 18:51:14 +0100 Subject: [PATCH] Implemented the autoStart feature into the ServerManager --- .../de/gnmyt/mcdash/api/ServerManager.java | 4 +++- .../mcdash/entities/ServerConfiguration.java | 18 ++++++++++++++++++ .../mcdash/routes/server/ServerStartRoute.java | 18 ++++++++++++++++++ 3 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 src/main/java/de/gnmyt/mcdash/routes/server/ServerStartRoute.java diff --git a/src/main/java/de/gnmyt/mcdash/api/ServerManager.java b/src/main/java/de/gnmyt/mcdash/api/ServerManager.java index 9d72d63..bf24b4f 100644 --- a/src/main/java/de/gnmyt/mcdash/api/ServerManager.java +++ b/src/main/java/de/gnmyt/mcdash/api/ServerManager.java @@ -42,8 +42,10 @@ public class ServerManager { servers.forEach(server -> { if (server.getStatus() == ServerStatus.ONLINE) return; - startServer(server); + if (server.getConfiguration().isAutoStart()) startServer(server); }); + + LOG.info("All servers have been started"); } /** diff --git a/src/main/java/de/gnmyt/mcdash/entities/ServerConfiguration.java b/src/main/java/de/gnmyt/mcdash/entities/ServerConfiguration.java index c8c5dd1..bc63283 100644 --- a/src/main/java/de/gnmyt/mcdash/entities/ServerConfiguration.java +++ b/src/main/java/de/gnmyt/mcdash/entities/ServerConfiguration.java @@ -17,6 +17,7 @@ public class ServerConfiguration { private String version; private String description; private int memory; + private boolean autoStart; /** * Loads a server configuration from a file @@ -101,6 +102,14 @@ public class ServerConfiguration { return memory; } + /** + * Gets the auto start of the server + * @return The auto start of the server + */ + public boolean isAutoStart() { + return autoStart; + } + /** * Sets the description of the server * @@ -150,4 +159,13 @@ public class ServerConfiguration { this.name = name; save(); } + + /** + * Sets the auto start of the server + * @param autoStart The new auto start of the server + */ + public void setAutoStart(boolean autoStart) { + this.autoStart = autoStart; + save(); + } } diff --git a/src/main/java/de/gnmyt/mcdash/routes/server/ServerStartRoute.java b/src/main/java/de/gnmyt/mcdash/routes/server/ServerStartRoute.java new file mode 100644 index 0000000..71641f1 --- /dev/null +++ b/src/main/java/de/gnmyt/mcdash/routes/server/ServerStartRoute.java @@ -0,0 +1,18 @@ +package de.gnmyt.mcdash.routes.server; + +import de.gnmyt.mcdash.handler.DefaultHandler; +import de.gnmyt.mcdash.http.Request; +import de.gnmyt.mcdash.http.ResponseController; + +public class ServerStartRoute extends DefaultHandler { + + @Override + public String path() { + return "start"; + } + + @Override + public void post(Request request, ResponseController response) throws Exception { + response.text("The server is already running"); + } +}