mirror of
https://github.com/GravitLauncher/Launcher
synced 2025-05-13 12:36:34 +03:00
[FEATURE] Support runCompatClasses in ServerWrapperInlineInitializer
This commit is contained in:
parent
b41e8db336
commit
2fea94071b
2 changed files with 16 additions and 11 deletions
|
@ -142,6 +142,19 @@ public void connect() throws Exception {
|
||||||
}
|
}
|
||||||
ClientService.nativePath = config.nativesDir;
|
ClientService.nativePath = config.nativesDir;
|
||||||
ConfigService.serverName = config.serverName;
|
ConfigService.serverName = config.serverName;
|
||||||
|
if(config.configServiceSettings != null) {
|
||||||
|
config.configServiceSettings.apply();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void runCompatClasses() throws Throwable {
|
||||||
|
if(config.compatClasses != null) {
|
||||||
|
for (String e : config.compatClasses) {
|
||||||
|
Class<?> clazz = classLoaderControl == null ? Class.forName(e) : classLoaderControl.getClass(e);
|
||||||
|
MethodHandle runMethod = MethodHandles.lookup().findStatic(clazz, "run", MethodType.methodType(void.class, ClassLoaderControl.class));
|
||||||
|
runMethod.invoke(classLoaderControl);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void run(String... args) throws Throwable {
|
public void run(String... args) throws Throwable {
|
||||||
|
@ -240,18 +253,9 @@ public void run(String... args) throws Throwable {
|
||||||
}
|
}
|
||||||
ClientService.classLoaderControl = classLoaderControl;
|
ClientService.classLoaderControl = classLoaderControl;
|
||||||
ClientService.baseURLs = classLoaderControl.getURLs();
|
ClientService.baseURLs = classLoaderControl.getURLs();
|
||||||
if(config.configServiceSettings != null) {
|
|
||||||
config.configServiceSettings.apply();
|
|
||||||
}
|
|
||||||
LogHelper.info("Start Minecraft Server");
|
LogHelper.info("Start Minecraft Server");
|
||||||
try {
|
try {
|
||||||
if(config.compatClasses != null) {
|
runCompatClasses();
|
||||||
for (String e : config.compatClasses) {
|
|
||||||
Class<?> clazz = classLoaderControl.getClass(e);
|
|
||||||
MethodHandle runMethod = MethodHandles.lookup().findStatic(clazz, "run", MethodType.methodType(void.class, ClassLoaderControl.class));
|
|
||||||
runMethod.invoke(classLoaderControl);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
LogHelper.debug("Invoke main method %s with %s", classname, launch.getClass().getName());
|
LogHelper.debug("Invoke main method %s with %s", classname, launch.getClass().getName());
|
||||||
launch.launch(config.mainclass, config.mainmodule, Arrays.asList(real_args));
|
launch.launch(config.mainclass, config.mainmodule, Arrays.asList(real_args));
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
package pro.gravit.launcher.server;
|
package pro.gravit.launcher.server;
|
||||||
|
|
||||||
public class ServerWrapperInlineInitializer {
|
public class ServerWrapperInlineInitializer {
|
||||||
public static void initialize() throws Exception {
|
public static void run() throws Throwable {
|
||||||
ServerWrapper.wrapper = new ServerWrapper(ServerWrapper.Config.class, ServerWrapper.configFile);
|
ServerWrapper.wrapper = new ServerWrapper(ServerWrapper.Config.class, ServerWrapper.configFile);
|
||||||
ServerWrapper.wrapper.initialize();
|
ServerWrapper.wrapper.initialize();
|
||||||
ServerWrapper.wrapper.connect();
|
ServerWrapper.wrapper.connect();
|
||||||
|
ServerWrapper.wrapper.runCompatClasses();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue