Fix 1.18 java-runtime-beta

This commit is contained in:
Johannes Frohnmeyer 2021-12-01 16:21:01 +01:00
parent b6fb915dd9
commit 6e9b839fee
Signed by: Johannes
GPG Key ID: E76429612C2929F4
2 changed files with 21 additions and 29 deletions

View File

@ -3,34 +3,28 @@ package io.gitlab.jfronny.inceptum.model.mojang;
import com.google.gson.annotations.SerializedName;
import java.util.List;
import java.util.Map;
public class JvmInfo {
public Jvms linux;
public Map<String, List<Jvm>> linux;
@SerializedName("mac-os")
public Jvms macOs;
public Map<String, List<Jvm>> macOs;
@SerializedName("windows-x64")
public Jvms windowsX64;
public Map<String, List<Jvm>> windowsX64;
public static class Jvms {
@SerializedName("java-runtime-alpha")
public List<Jvm> javaRuntimeAlpha;
@SerializedName("jre-legacy")
public List<Jvm> jreLegacy;
public static class Jvm {
public Availability availability;
public MojangFileDownload manifest;
public Version version;
public static class Jvm {
public Availability availability;
public MojangFileDownload manifest;
public Version version;
public static class Availability {
public int group;
public int progress;
}
public static class Availability {
public int group;
public int progress;
}
public static class Version {
public String name;
public String released;
}
public static class Version {
public String name;
public String released;
}
}
}

View File

@ -40,19 +40,17 @@ public class McApi {
}
public static Map<String, JvmFileInfo.File> getJvm(String component, int majorVersion) throws IOException {
// https://github.com/ATLauncher/ATLauncher/blob/master/src/main/java/com/atlauncher/constants/Constants.java#L116
// https://github.com/ATLauncher/ATLauncher/blob/master/src/main/java/com/atlauncher/constants/Constants.java#L123
JvmInfo info = Utils.downloadObject("https://launchermeta.mojang.com/v1/products/java-runtime/2ec0cc96c44e5a76b9c8b7c39df7210883d12871/all.json", JvmInfo.class);
JvmInfo.Jvms vms = switch (OSCheck.OS) {
Map<String, List<JvmInfo.Jvm>> vms = switch (OSCheck.OS) {
case WINDOWS -> info.windowsX64;
case LINUX -> info.linux;
case MAC_OS -> info.macOs;
};
List<JvmInfo.Jvms.Jvm> vmList = switch (component) {
case "java-runtime-alpha" -> vms.javaRuntimeAlpha;
case "jre-legacy" -> vms.jreLegacy;
default -> throw new IOException("Invalid JVM component: " + component);
};
for (JvmInfo.Jvms.Jvm jvm : vmList) {
List<JvmInfo.Jvm> vmList = vms.get(component);
if (vmList == null)
throw new IOException("Invalid component: " + component + " (available: " + String.join(", ", vms.keySet()));
for (JvmInfo.Jvm jvm : vmList) {
if (jvm.version.name.startsWith(Integer.toString(majorVersion))) {
return downloadObject(jvm.manifest.url, jvm.manifest.sha1, JvmFileInfo.class).files;
}