Created the ServerStartRoute.java

This commit is contained in:
Mathias Wagner 2024-02-13 20:20:59 +01:00
parent 91ae04923e
commit c342eca5bb
Signed by: Mathias
GPG Key ID: B8DC354B0A1F5B44

View File

@ -1,11 +1,39 @@
package de.gnmyt.mcdash.routes.server; package de.gnmyt.mcdash.routes.server;
import de.gnmyt.mcdash.MCDashWrapper;
import de.gnmyt.mcdash.api.ServerManager;
import de.gnmyt.mcdash.entities.ServerStatus;
import de.gnmyt.mcdash.handler.DefaultHandler; import de.gnmyt.mcdash.handler.DefaultHandler;
import de.gnmyt.mcdash.http.Request; import de.gnmyt.mcdash.http.Request;
import de.gnmyt.mcdash.http.ResponseController; import de.gnmyt.mcdash.http.ResponseController;
public class ServerStartRoute extends DefaultHandler { public class ServerStartRoute extends DefaultHandler {
public static final ServerManager serverManager = MCDashWrapper.getServerManager();
/**
* Validates the request and returns the uuid of the server
*
* @param request the request
* @param response the response
* @return the uuid of the server
*/
public static String validateRequest(Request request, ResponseController response) {
if (!request.getBody().containsKey("uuid")) {
response.code(400).message("You have to provide a uuid in the body of your request");
return null;
}
String uuid = request.getBody().get("uuid");
if (serverManager.getServer(uuid) == null) {
response.code(404).message("Server not found");
return null;
}
return uuid;
}
@Override @Override
public String path() { public String path() {
return "start"; return "start";
@ -13,6 +41,16 @@ public class ServerStartRoute extends DefaultHandler {
@Override @Override
public void post(Request request, ResponseController response) throws Exception { public void post(Request request, ResponseController response) throws Exception {
response.text("The server is already running"); String uuid = validateRequest(request, response);
if (uuid == null) return;
if (serverManager.getServer(uuid).getStatus() == ServerStatus.ONLINE) {
response.code(400).message("The server is already running");
return;
}
serverManager.startServer(serverManager.getServer(uuid));
response.message("The server has been started successfully");
} }
} }