Merge pull request #256 from AngelAuraMC/feat/misc

fix: Error parsing JVM args when JSON missing arguments field
This commit is contained in:
tomikun
2026-05-10 08:57:48 +08:00
committed by GitHub

View File

@@ -735,6 +735,8 @@ public final class Tools {
public static String[] getMinecraftJVMArgs(String versionName, File gameDir) {
JMinecraftVersionList.Version versionInfo = Tools.getVersionInfo(versionName, true);
if (versionInfo.arguments == null || versionInfo.arguments.jvm == null)
return new String[0];
Map<String, String> varArgMap = new ArrayMap<>();
varArgMap.put("classpath_separator", ":");
@@ -743,39 +745,37 @@ public final class Tools {
varArgMap.put("natives_directory", Tools.DIR_CACHE.getAbsolutePath());
List<String> minecraftArgs = new ArrayList<>();
if (versionInfo.arguments.jvm != null) {
for (Object arg : versionInfo.arguments.jvm) {
if (arg instanceof String) {
// These are defined later on
if (((String) arg).contains("java.library.path")) {
continue;
}
if (arg.equals("-cp")) {
continue;
}
if (arg.equals("${classpath}")){
continue;
}
// Should fix Forge 1.17.1-37.0.12 and older from crashing
// Fixed in forge on https://github.com/MinecraftForge/MinecraftForge/pull/7919
// Released as Forge 1.17.1-37.0.13 in https://maven.minecraftforge.net/net/minecraftforge/forge/1.17.1-37.0.13/forge-1.17.1-37.0.13-changelog.txt
// yes this duplicates it, it's fine.
// FIXME: Workaround old bootstraplauncher <0.1.17 buggy behaviour. See FCL workaround
// https://github.com/FCL-Team/FoldCraftLauncher/blob/00e96bcf8ddc8a550e9aba6091a73d5bee973b54/FCLCore/src/main/java/com/tungsten/fclcore/download/MaintainTask.java#L198-L200
if (((String) arg).startsWith("-DignoreList=")){
minecraftArgs.add(arg+",${version_name}.jar");
continue;
}
for (Object arg : versionInfo.arguments.jvm) {
if (arg instanceof String) {
// These are defined later on
if (((String) arg).contains("java.library.path")) {
continue;
}
if (arg.equals("-cp")) {
continue;
}
if (arg.equals("${classpath}")){
continue;
}
// Should fix Forge 1.17.1-37.0.12 and older from crashing
// Fixed in forge on https://github.com/MinecraftForge/MinecraftForge/pull/7919
// Released as Forge 1.17.1-37.0.13 in https://maven.minecraftforge.net/net/minecraftforge/forge/1.17.1-37.0.13/forge-1.17.1-37.0.13-changelog.txt
// yes this duplicates it, it's fine.
// FIXME: Workaround old bootstraplauncher <0.1.17 buggy behaviour. See FCL workaround
// https://github.com/FCL-Team/FoldCraftLauncher/blob/00e96bcf8ddc8a550e9aba6091a73d5bee973b54/FCLCore/src/main/java/com/tungsten/fclcore/download/MaintainTask.java#L198-L200
if (((String) arg).startsWith("-DignoreList=")){
minecraftArgs.add(arg+",${version_name}.jar");
continue;
}
// TODO: Implement adding launcher brand and version
if (((String) arg).contains("minecraft.launcher.brand") ||
((String) arg).contains("minecraft.launcher.version")) {
continue;
}
// TODO: Implement adding launcher brand and version
if (((String) arg).contains("minecraft.launcher.brand") ||
((String) arg).contains("minecraft.launcher.version")) {
continue;
}
minecraftArgs.add((String) arg);
} //TODO: implement (?maybe?)
}
minecraftArgs.add((String) arg);
} //TODO: implement (?maybe?)
}
return JSONUtils.insertJSONValueList(minecraftArgs.toArray(new String[0]), varArgMap);
}