From a90455a7a4832821885580d3cd6ab20bdd824f9e Mon Sep 17 00:00:00 2001 From: Melledy <52122272+Melledy@users.noreply.github.com> Date: Sun, 18 Sep 2022 20:52:30 -0700 Subject: [PATCH] Add `-game` and `-dispatch` startup arguments that override the run mode in the config --- src/main/java/emu/grasscutter/Grasscutter.java | 7 ++++++- src/main/java/emu/grasscutter/utils/StartupArguments.java | 5 +++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main/java/emu/grasscutter/Grasscutter.java b/src/main/java/emu/grasscutter/Grasscutter.java index d5a47258..a8bd09c2 100644 --- a/src/main/java/emu/grasscutter/Grasscutter.java +++ b/src/main/java/emu/grasscutter/Grasscutter.java @@ -56,6 +56,7 @@ public final class Grasscutter { private static Language language; public static final File configFile = new File("./config.json"); + @Setter private static ServerRunMode runModeOverride = null; // Config override for run mode private static int day; // Current day of week. @Getter @Setter private static String preferredLanguage; @@ -141,7 +142,7 @@ public final class Grasscutter { httpServer.addRouter(DocumentationServerHandler.class); // Start servers. - var runMode = SERVER.runMode; + var runMode = Grasscutter.getRunMode(); if (runMode == ServerRunMode.HYBRID) { httpServer.start(); gameServer.start(); @@ -245,6 +246,10 @@ public final class Grasscutter { public static Language getLanguage(String langCode) { return Language.getLanguage(langCode); } + + public static ServerRunMode getRunMode() { + return Grasscutter.runModeOverride != null ? Grasscutter.runModeOverride : SERVER.runMode; + } public static Logger getLogger() { return log; diff --git a/src/main/java/emu/grasscutter/utils/StartupArguments.java b/src/main/java/emu/grasscutter/utils/StartupArguments.java index 5f403081..7d93079c 100644 --- a/src/main/java/emu/grasscutter/utils/StartupArguments.java +++ b/src/main/java/emu/grasscutter/utils/StartupArguments.java @@ -4,6 +4,7 @@ import ch.qos.logback.classic.Level; import ch.qos.logback.classic.Logger; import emu.grasscutter.BuildConfig; import emu.grasscutter.Grasscutter; +import emu.grasscutter.Grasscutter.ServerRunMode; import emu.grasscutter.net.packet.PacketOpcodesUtils; import io.javalin.core.util.JavalinLogger; import org.slf4j.LoggerFactory; @@ -28,6 +29,10 @@ public final class StartupArguments { "-debug", StartupArguments::enableDebug, "-lang", parameter -> { Grasscutter.setPreferredLanguage(parameter); return false; + },"-game", parameter -> { + Grasscutter.setRunModeOverride(ServerRunMode.GAME_ONLY); return false; + },"-dispatch", parameter -> { + Grasscutter.setRunModeOverride(ServerRunMode.DISPATCH_ONLY); return false; }, // Aliases. -- GitLab