Reflections change & Start HTTP before game server

This commit is contained in:
KingRainbow44
2023-08-31 20:59:38 -04:00
Unverified
parent 58b3570f27
commit 9295d79bc2
17 changed files with 148 additions and 379 deletions
+43 -22
View File
@@ -1,8 +1,5 @@
package emu.grasscutter;
import static emu.grasscutter.config.Configuration.SERVER;
import static emu.grasscutter.utils.lang.Language.translate;
import ch.qos.logback.classic.*;
import emu.grasscutter.auth.*;
import emu.grasscutter.command.*;
@@ -21,16 +18,20 @@ import emu.grasscutter.tools.Tools;
import emu.grasscutter.utils.*;
import emu.grasscutter.utils.lang.Language;
import io.netty.util.concurrent.FastThreadLocalThread;
import java.io.*;
import java.util.Calendar;
import java.util.concurrent.*;
import javax.annotation.Nullable;
import lombok.*;
import org.jline.reader.*;
import org.jline.terminal.*;
import org.reflections.Reflections;
import org.slf4j.LoggerFactory;
import javax.annotation.Nullable;
import java.io.*;
import java.util.Calendar;
import java.util.concurrent.*;
import static emu.grasscutter.config.Configuration.SERVER;
import static emu.grasscutter.utils.lang.Language.translate;
public final class Grasscutter {
public static final File configFile = new File("./config.json");
public static final Reflections reflector = new Reflections("emu.grasscutter");
@@ -108,15 +109,6 @@ public final class Grasscutter {
logger.info(translate("messages.status.game_version", GameConstants.VERSION));
logger.info(translate("messages.status.version", BuildConfig.VERSION, BuildConfig.GIT_HASH));
if (runMode != ServerRunMode.DISPATCH_ONLY) {
// Load all resources.
Grasscutter.updateDayOfWeek();
ResourceLoader.loadAll();
// Generate handbooks.
Tools.createGmHandbooks(false);
}
// Initialize database.
DatabaseManager.initialize();
@@ -150,16 +142,31 @@ public final class Grasscutter {
httpServer.addRouter(HandbookHandler.class);
}
// Check if the HTTP server should start.
var started = config.server.http.startImmediately;
if (started) {
Grasscutter.getLogger().info("HTTP server is starting...");
Grasscutter.startDispatch();
Grasscutter.getLogger().info("Game server is starting...");
}
// Load resources.
if (runMode != ServerRunMode.DISPATCH_ONLY) {
// Load all resources.
Grasscutter.updateDayOfWeek();
ResourceLoader.loadAll();
// Generate handbooks.
Tools.createGmHandbooks(false);
}
// Start servers.
if (runMode == ServerRunMode.HYBRID) {
httpServer.start();
if (!started) Grasscutter.startDispatch();
gameServer.start();
} else if (runMode == ServerRunMode.DISPATCH_ONLY) {
httpServer.start();
// Start dispatch server.
dispatchServer = new DispatchServer("0.0.0.0", 1111);
dispatchServer.start();
if (!started) Grasscutter.startDispatch();
} else if (runMode == ServerRunMode.GAME_ONLY) {
gameServer.start();
} else {
@@ -204,6 +211,20 @@ public final class Grasscutter {
}
}
/**
* Utility method for starting the:
* - SDK server
* - Dispatch server
*/
public static void startDispatch() throws Exception {
httpServer.start(); // Start the SDK/HTTP server.
if (Grasscutter.getRunMode() == ServerRunMode.DISPATCH_ONLY) {
dispatchServer = new DispatchServer("0.0.0.0", 1111); // Create the dispatch server.
dispatchServer.start(); // Start the dispatch server.
}
}
/*
* Methods for the language system component.
*/