Tweak the server startup a bit, make sure methods that can't work because they run before a server exists explode saying so.

Also fix other launch profiles.

Signed-off-by: cpw <cpw+github@weeksfamily.ca>
This commit is contained in:
cpw 2020-06-26 14:27:32 -04:00
parent 99917e569c
commit 41a6d70aee
No known key found for this signature in database
GPG Key ID: 8EB3DF749553B1B7
3 changed files with 11 additions and 6 deletions

View File

@ -48,7 +48,7 @@ public class FMLServerLaunchProvider extends FMLCommonLaunchHandler implements I
return () -> {
super.beforeStart(launchClassLoader);
launchClassLoader.addTargetPackageFilter(getPackagePredicate());
Class.forName("net.minecraft.server.MinecraftServer", true, launchClassLoader.getInstance()).getMethod("main", String[].class).invoke(null, (Object)arguments);
Class.forName("net.minecraft.server.Main", true, launchClassLoader.getInstance()).getMethod("main", String[].class).invoke(null, (Object)arguments);
return null;
};
}

View File

@ -37,6 +37,13 @@ public class ServerModLoader
private static boolean hasErrors = false;
public static void gatherAndInit() {
LanguageHook.loadForgeAndMCLangs();
SidedProvider.setServer(()-> {
throw new IllegalStateException("Unable to access server yet");
});
LogicalSidedProvider.setServer(()-> {
throw new IllegalStateException("Unable to access server yet");
});
try {
ModLoader.get().gatherAndInitializeMods(() -> {});
} catch (LoadingFailedException e) {
@ -47,9 +54,8 @@ public class ServerModLoader
public static void begin(DedicatedServer dedicatedServer) {
ServerModLoader.server = dedicatedServer;
SidedProvider.setServer(()->dedicatedServer);
LogicalSidedProvider.setServer(()->dedicatedServer);
LanguageHook.loadForgeAndMCLangs();
SidedProvider.setServer(()->ServerModLoader.server);
LogicalSidedProvider.setServer(()->ServerModLoader.server);
try {
ModLoader.get().loadMods(Runnable::run, (a)->{}, (a)->{});
} catch (LoadingFailedException e) {
@ -65,7 +71,6 @@ public class ServerModLoader
} catch (LoadingFailedException e) {
ServerModLoader.hasErrors = true;
throw e;
}
List<ModLoadingWarning> warnings = ModLoader.get().getWarnings();
if (!warnings.isEmpty()) {

View File

@ -51,7 +51,7 @@ public class FMLUserdevServerLaunchProvider extends FMLUserdevLaunchProvider imp
super.beforeStart(launchClassLoader);
launchClassLoader.addTargetPackageFilter(getPackagePredicate());
Thread.currentThread().setContextClassLoader(launchClassLoader.getInstance());
Class.forName("net.minecraft.server.MinecraftServer", true, launchClassLoader.getInstance()).getMethod("main", String[].class).invoke(null, (Object)arguments);
Class.forName("net.minecraft.server.Main", true, launchClassLoader.getInstance()).getMethod("main", String[].class).invoke(null, (Object)arguments);
return null;
};
}