From 3dd23351d0d95862e80c330519ddb6f5379b4539 Mon Sep 17 00:00:00 2001
From: Mathias Wagner <germannewsmaker@gmail.com>
Date: Tue, 13 Feb 2024 20:21:05 +0100
Subject: [PATCH] Created the ServerStopRoute.java

---
 .../mcdash/routes/server/ServerStopRoute.java | 34 +++++++++++++++++++
 1 file changed, 34 insertions(+)
 create mode 100644 src/main/java/de/gnmyt/mcdash/routes/server/ServerStopRoute.java

diff --git a/src/main/java/de/gnmyt/mcdash/routes/server/ServerStopRoute.java b/src/main/java/de/gnmyt/mcdash/routes/server/ServerStopRoute.java
new file mode 100644
index 0000000..b8ec06e
--- /dev/null
+++ b/src/main/java/de/gnmyt/mcdash/routes/server/ServerStopRoute.java
@@ -0,0 +1,34 @@
+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.http.Request;
+import de.gnmyt.mcdash.http.ResponseController;
+
+public class ServerStopRoute extends DefaultHandler {
+
+    private final ServerManager serverManager = MCDashWrapper.getServerManager();
+
+    @Override
+    public String path() {
+        return "stop";
+    }
+
+
+    @Override
+    public void post(Request request, ResponseController response) throws Exception {
+        String uuid = ServerStartRoute.validateRequest(request, response);
+        if (uuid == null) return;
+
+        if (serverManager.getServer(uuid).getStatus() == ServerStatus.OFFLINE) {
+            response.code(400).message("The server is already stopped");
+            return;
+        }
+
+        serverManager.stopServer(serverManager.getServer(uuid));
+
+        response.message("The server has been stopped successfully");
+    }
+}