From e0b53f93aeb8b8170a6c1b4f81a7ada49e576b8b Mon Sep 17 00:00:00 2001 From: Jonas_Jones <91549607+J-onasJones@users.noreply.github.com> Date: Thu, 7 Sep 2023 17:54:15 +0200 Subject: [PATCH] added example files on first launch --- .../jonasjones/mcwebserver/McWebserver.java | 8 +++++++ .../mcwebserver/config/SimpleConfig.java | 1 + .../mcwebserver/web/ServerHandler.java | 21 +++++++++++++++++++ 3 files changed, 30 insertions(+) diff --git a/src/main/java/me/jonasjones/mcwebserver/McWebserver.java b/src/main/java/me/jonasjones/mcwebserver/McWebserver.java index 9e7c885..8442bbb 100644 --- a/src/main/java/me/jonasjones/mcwebserver/McWebserver.java +++ b/src/main/java/me/jonasjones/mcwebserver/McWebserver.java @@ -2,6 +2,7 @@ package me.jonasjones.mcwebserver; import com.roxstudio.utils.CUrl; import me.jonasjones.mcwebserver.config.ModConfigs; +import me.jonasjones.mcwebserver.web.HttpServer; import me.jonasjones.mcwebserver.web.api.v1.ApiHandler; import me.jonasjones.mcwebserver.web.ServerHandler; import net.fabricmc.api.ModInitializer; @@ -19,6 +20,7 @@ public class McWebserver implements ModInitializer { public static String MOD_ID = "mcwebserver"; public static final Logger LOGGER = LoggerFactory.getLogger(MOD_ID); public static final Logger VERBOSELOGGER = LoggerFactory.getLogger(MOD_ID + " - VERBOSE LOGGER"); + public static Boolean ISFIRSTSTART = false; @Override public void onInitialize() { @@ -27,6 +29,12 @@ public class McWebserver implements ModInitializer { ModConfigs.registerConfigs(); LOGGER.info("McWebserver initialized!"); + if (ISFIRSTSTART) { + LOGGER.info(""); + ServerHandler.createServerDir(); + + } + if (SERVER_API_ENABLED) { //start collecting api info ApiHandler.startHandler(); diff --git a/src/main/java/me/jonasjones/mcwebserver/config/SimpleConfig.java b/src/main/java/me/jonasjones/mcwebserver/config/SimpleConfig.java index 7f28749..2f7f4de 100644 --- a/src/main/java/me/jonasjones/mcwebserver/config/SimpleConfig.java +++ b/src/main/java/me/jonasjones/mcwebserver/config/SimpleConfig.java @@ -138,6 +138,7 @@ public class SimpleConfig { String identifier = "Config '" + request.filename + "'"; if (!request.file.exists()) { + McWebserver.ISFIRSTSTART = true; McWebserver.LOGGER.info(identifier + " is missing, generating default one..."); try { diff --git a/src/main/java/me/jonasjones/mcwebserver/web/ServerHandler.java b/src/main/java/me/jonasjones/mcwebserver/web/ServerHandler.java index d27dc0e..59f39fc 100644 --- a/src/main/java/me/jonasjones/mcwebserver/web/ServerHandler.java +++ b/src/main/java/me/jonasjones/mcwebserver/web/ServerHandler.java @@ -3,8 +3,10 @@ package me.jonasjones.mcwebserver.web; import com.roxstudio.utils.CUrl; import me.jonasjones.mcwebserver.config.ModConfigs; +import net.fabricmc.loader.api.FabricLoader; import java.net.Socket; +import java.nio.file.Path; import java.util.concurrent.TimeUnit; import static me.jonasjones.mcwebserver.McWebserver.LOGGER; @@ -59,4 +61,23 @@ public class ServerHandler implements Runnable { LOGGER.info("Webserver disabled in the config file."); } } + + public static void createServerDir() { + // create server dir as specified in the config WEB_ROOT + Path path = FabricLoader.getInstance().getGameDir(); + Path webroot = path.resolve(ModConfigs.WEB_ROOT); + webroot.toFile().mkdirs(); + } + + public static void createExampleFiles() { + // create example files + Path path = FabricLoader.getInstance().getGameDir(); + Path webroot = path.resolve(ModConfigs.WEB_ROOT); + Path index = webroot.resolve(ModConfigs.WEB_FILE_ROOT); + Path notsupported = webroot.resolve(ModConfigs.WEB_FILE_NOSUPPORT); + Path notfound = webroot.resolve(ModConfigs.WEB_FILE_404); + index.toFile().mkdirs(); + notsupported.toFile().mkdirs(); + notfound.toFile().mkdirs(); + } }