add a wrapper to catch some uncaught exception

This commit is contained in:
ShirosakiMio 2024-02-24 18:42:07 +08:00
parent b0e686bc88
commit 7f7e53553a
4 changed files with 12 additions and 1 deletions

Binary file not shown.

View File

@ -150,6 +150,14 @@ public final class LauncherHelper {
}
return null;
})
.thenComposeAsync(() -> {
try (InputStream input = LauncherHelper.class.getResourceAsStream("/assets/game/MioLaunchWrapper.jar")) {
Files.copy(input, new File(FCLPath.MIO_LAUNCH_WRAPPER).toPath(), StandardCopyOption.REPLACE_EXISTING);
} catch (IOException e) {
Logging.LOG.log(Level.WARNING, "Unable to unpack MioLaunchWrapper.jar", e);
}
return null;
})
.thenComposeAsync(() -> gameVersion.map(s -> new GameVerificationFixTask(dependencyManager, s, version.get())).orElse(null))
.thenComposeAsync(() -> logIn(context, account).withStage("launch.state.logging_in"))
.thenComposeAsync(authInfo -> Task.supplyAsync(() -> {

View File

@ -168,7 +168,7 @@ public class DefaultLauncher extends Launcher {
}
Set<String> classpath = repository.getClasspath(version);
classpath.add(FCLPath.MIO_LAUNCH_WRAPPER);
File jar = new File(repository.getVersionRoot(version.getId()), version.getId() + ".jar");
// if (!jar.exists() || !jar.isFile())
// throw new IOException("Minecraft jar does not exist");
@ -192,6 +192,7 @@ public class DefaultLauncher extends Launcher {
res.add("-javaagent:" + javaAgent);
}
res.add("mio.Wrapper");
res.add(version.getMainClass());
res.addAll(Arguments.parseStringArguments(version.getMinecraftArguments().map(StringUtils::tokenize).orElseGet(ArrayList::new), configuration));

View File

@ -34,6 +34,7 @@ public class FCLPath {
public static String AUTHLIB_INJECTOR_PATH;
public static String MULTIPLAYER_FIX_PATH;
public static String MIO_LAUNCH_WRAPPER;
public static String LT_BACKGROUND_PATH;
public static String DK_BACKGROUND_PATH;
@ -64,6 +65,7 @@ public class FCLPath {
AUTHLIB_INJECTOR_PATH = PLUGIN_DIR + "/authlib-injector.jar";
MULTIPLAYER_FIX_PATH = PLUGIN_DIR + "/MultiplayerFix.jar";
MIO_LAUNCH_WRAPPER = PLUGIN_DIR + "/MioLaunchWrapper.jar";
LT_BACKGROUND_PATH = BACKGROUND_DIR + "/lt.png";
DK_BACKGROUND_PATH = BACKGROUND_DIR + "/dk.png";