Add -game and -dispatch startup arguments that override the run mode in the config

This commit is contained in:
Melledy 2022-09-18 20:52:30 -07:00
parent 0d64e2e810
commit a90455a7a4
No known key found for this signature in database
GPG Key ID: 2A8E7A1D64737CCB
2 changed files with 11 additions and 1 deletions

View File

@ -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;

View File

@ -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.