From 5ab592a53b045f2eb310ced9b58c3af3496425d8 Mon Sep 17 00:00:00 2001 From: Mathias Wagner Date: Wed, 14 Feb 2024 00:51:47 +0100 Subject: [PATCH] Created the SetupRoute.java --- .../mcdash/routes/server/SetupRoute.java | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 src/main/java/de/gnmyt/mcdash/routes/server/SetupRoute.java diff --git a/src/main/java/de/gnmyt/mcdash/routes/server/SetupRoute.java b/src/main/java/de/gnmyt/mcdash/routes/server/SetupRoute.java new file mode 100644 index 0000000..62731bc --- /dev/null +++ b/src/main/java/de/gnmyt/mcdash/routes/server/SetupRoute.java @@ -0,0 +1,64 @@ +package de.gnmyt.mcdash.routes.server; + +import de.gnmyt.mcdash.MCDashWrapper; +import de.gnmyt.mcdash.api.Logger; +import de.gnmyt.mcdash.api.ServerManager; +import de.gnmyt.mcdash.api.ServerVersionManager; +import de.gnmyt.mcdash.entities.ServerConfiguration; +import de.gnmyt.mcdash.handler.DefaultHandler; +import de.gnmyt.mcdash.http.Request; +import de.gnmyt.mcdash.http.ResponseController; + +import java.util.UUID; + +public class SetupRoute extends DefaultHandler { + + private static final Logger LOG = new Logger(SetupRoute.class); + private final ServerManager serverManager = MCDashWrapper.getServerManager(); + private final ServerVersionManager versionManager = MCDashWrapper.getServerManager().getVersionManager(); + + @Override + public String path() { + return "setup"; + } + + @Override + public void post(Request request, ResponseController response) throws Exception { + if (!isStringInBody(request, response, "name")) return; + if (!isStringInBody(request, response, "type")) return; + if (!isStringInBody(request, response, "version")) return; + if (!isStringInBody(request, response, "description")) return; + if (!isIntegerInBody(request, response, "memory")) return; + if (!isBooleanInBody(request, response, "autoStart")) return; + + try { + String uuid = UUID.randomUUID().toString().split("-")[0]; + MCDashWrapper.getDataSource("servers/" + uuid).mkdirs(); + + ServerConfiguration configuration = new ServerConfiguration( + getStringFromBody(request, "name"), + getStringFromBody(request, "type"), + getStringFromBody(request, "version"), + getStringFromBody(request, "description"), + getIntegerFromBody(request, "memory"), + getBooleanFromBody(request, "autoStart") + ); + + configuration.file = MCDashWrapper.getDataSource("servers/" + uuid + "/mcdash.json"); + configuration.save(); + + versionManager.installPlugin(uuid); + + serverManager.refreshServers(); + + serverManager.startServer(serverManager.getServer(uuid)); + + response.json().add("uuid", uuid).add("message", "The server has been successfully created").finish(); + LOG.info("The server {} has been created", uuid); + } catch (Exception e) { + response.code(500).message("An error occurred while creating the server: " + e.getMessage()); + LOG.error("An error occurred while creating the server: {}", e.getMessage()); + } + + } +}