feat: Version.javaVersion
This commit is contained in:
@@ -0,0 +1,40 @@
|
|||||||
|
/*
|
||||||
|
* Hello Minecraft! Launcher
|
||||||
|
* Copyright (C) 2021 huangyuhui <huanghongxun2008@126.com> and contributors
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package org.jackhuang.hmcl.game;
|
||||||
|
|
||||||
|
public class JavaVersion {
|
||||||
|
private final String component;
|
||||||
|
private final int majorVersion;
|
||||||
|
|
||||||
|
public JavaVersion() {
|
||||||
|
this("", 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
public JavaVersion(String component, int majorVersion) {
|
||||||
|
this.component = component;
|
||||||
|
this.majorVersion = majorVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getComponent() {
|
||||||
|
return component;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getMajorVersion() {
|
||||||
|
return majorVersion;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher
|
* Hello Minecraft! Launcher
|
||||||
* Copyright (C) 2020 huangyuhui <huanghongxun2008@126.com> and contributors
|
* Copyright (C) 2021 huangyuhui <huanghongxun2008@126.com> and contributors
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -58,6 +58,8 @@ public class Version implements Comparable<Version>, Validation {
|
|||||||
private final String jar;
|
private final String jar;
|
||||||
private final AssetIndexInfo assetIndex;
|
private final AssetIndexInfo assetIndex;
|
||||||
private final String assets;
|
private final String assets;
|
||||||
|
private final Integer complianceLevel;
|
||||||
|
private final JavaVersion javaVersion;
|
||||||
private final List<Library> libraries;
|
private final List<Library> libraries;
|
||||||
private final List<CompatibilityRule> compatibilityRules;
|
private final List<CompatibilityRule> compatibilityRules;
|
||||||
private final JsonMap<DownloadType, DownloadInfo> downloads;
|
private final JsonMap<DownloadType, DownloadInfo> downloads;
|
||||||
@@ -73,7 +75,7 @@ public class Version implements Comparable<Version>, Validation {
|
|||||||
private transient final boolean resolved;
|
private transient final boolean resolved;
|
||||||
|
|
||||||
public Version(String id) {
|
public Version(String id) {
|
||||||
this(false, id, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, false, true, null);
|
this(false, id, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, false, true, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -86,10 +88,10 @@ public class Version implements Comparable<Version>, Validation {
|
|||||||
* @param libraries additional libraries
|
* @param libraries additional libraries
|
||||||
*/
|
*/
|
||||||
public Version(String id, String version, int priority, Arguments arguments, String mainClass, List<Library> libraries) {
|
public Version(String id, String version, int priority, Arguments arguments, String mainClass, List<Library> libraries) {
|
||||||
this(false, id, version, priority, null, arguments, mainClass, null, null, null, null, libraries, null, null, null, null, null, null, null, null, null, null);
|
this(false, id, version, priority, null, arguments, mainClass, null, null, null, null, null, null, libraries, null, null, null, null, null, null, null, null, null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Version(boolean resolved, String id, String version, Integer priority, String minecraftArguments, Arguments arguments, String mainClass, String inheritsFrom, String jar, AssetIndexInfo assetIndex, String assets, List<Library> libraries, List<CompatibilityRule> compatibilityRules, Map<DownloadType, DownloadInfo> downloads, Map<DownloadType, LoggingInfo> logging, ReleaseType type, Date time, Date releaseTime, Integer minimumLauncherVersion, Boolean hidden, Boolean root, List<Version> patches) {
|
public Version(boolean resolved, String id, String version, Integer priority, String minecraftArguments, Arguments arguments, String mainClass, String inheritsFrom, String jar, AssetIndexInfo assetIndex, String assets, Integer complianceLevel, JavaVersion javaVersion, List<Library> libraries, List<CompatibilityRule> compatibilityRules, Map<DownloadType, DownloadInfo> downloads, Map<DownloadType, LoggingInfo> logging, ReleaseType type, Date time, Date releaseTime, Integer minimumLauncherVersion, Boolean hidden, Boolean root, List<Version> patches) {
|
||||||
this.resolved = resolved;
|
this.resolved = resolved;
|
||||||
this.id = id;
|
this.id = id;
|
||||||
this.version = version;
|
this.version = version;
|
||||||
@@ -101,6 +103,8 @@ public class Version implements Comparable<Version>, Validation {
|
|||||||
this.jar = jar;
|
this.jar = jar;
|
||||||
this.assetIndex = assetIndex;
|
this.assetIndex = assetIndex;
|
||||||
this.assets = assets;
|
this.assets = assets;
|
||||||
|
this.complianceLevel = complianceLevel;
|
||||||
|
this.javaVersion = javaVersion;
|
||||||
this.libraries = Lang.copyList(libraries);
|
this.libraries = Lang.copyList(libraries);
|
||||||
this.compatibilityRules = Lang.copyList(compatibilityRules);
|
this.compatibilityRules = Lang.copyList(compatibilityRules);
|
||||||
this.downloads = downloads == null ? null : new JsonMap<>(downloads);
|
this.downloads = downloads == null ? null : new JsonMap<>(downloads);
|
||||||
@@ -239,6 +243,8 @@ public class Version implements Comparable<Version>, Validation {
|
|||||||
jar == null ? parent.jar : jar,
|
jar == null ? parent.jar : jar,
|
||||||
assetIndex == null ? parent.assetIndex : assetIndex,
|
assetIndex == null ? parent.assetIndex : assetIndex,
|
||||||
assets == null ? parent.assets : assets,
|
assets == null ? parent.assets : assets,
|
||||||
|
complianceLevel,
|
||||||
|
javaVersion == null ? parent.javaVersion : javaVersion,
|
||||||
Lang.merge(this.libraries, parent.libraries),
|
Lang.merge(this.libraries, parent.libraries),
|
||||||
Lang.merge(parent.compatibilityRules, this.compatibilityRules),
|
Lang.merge(parent.compatibilityRules, this.compatibilityRules),
|
||||||
downloads == null ? parent.downloads : downloads,
|
downloads == null ? parent.downloads : downloads,
|
||||||
@@ -319,59 +325,59 @@ public class Version implements Comparable<Version>, Validation {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private Version markAsResolved() {
|
private Version markAsResolved() {
|
||||||
return new Version(true, id, version, priority, minecraftArguments, arguments, mainClass, inheritsFrom, jar, assetIndex, assets, libraries, compatibilityRules, downloads, logging, type, time, releaseTime, minimumLauncherVersion, hidden, root, patches);
|
return new Version(true, id, version, priority, minecraftArguments, arguments, mainClass, inheritsFrom, jar, assetIndex, assets, complianceLevel, javaVersion, libraries, compatibilityRules, downloads, logging, type, time, releaseTime, minimumLauncherVersion, hidden, root, patches);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Version markAsUnresolved() {
|
public Version markAsUnresolved() {
|
||||||
return new Version(false, id, version, priority, minecraftArguments, arguments, mainClass, inheritsFrom, jar, assetIndex, assets, libraries, compatibilityRules, downloads, logging, type, time, releaseTime, minimumLauncherVersion, hidden, root, patches);
|
return new Version(false, id, version, priority, minecraftArguments, arguments, mainClass, inheritsFrom, jar, assetIndex, assets, complianceLevel, javaVersion, libraries, compatibilityRules, downloads, logging, type, time, releaseTime, minimumLauncherVersion, hidden, root, patches);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Version setHidden(Boolean hidden) {
|
private Version setHidden(Boolean hidden) {
|
||||||
return new Version(true, id, version, priority, minecraftArguments, arguments, mainClass, inheritsFrom, jar, assetIndex, assets, libraries, compatibilityRules, downloads, logging, type, time, releaseTime, minimumLauncherVersion, hidden, root, patches);
|
return new Version(true, id, version, priority, minecraftArguments, arguments, mainClass, inheritsFrom, jar, assetIndex, assets, complianceLevel, javaVersion, libraries, compatibilityRules, downloads, logging, type, time, releaseTime, minimumLauncherVersion, hidden, root, patches);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Version setId(String id) {
|
public Version setId(String id) {
|
||||||
return new Version(resolved, id, version, priority, minecraftArguments, arguments, mainClass, inheritsFrom, jar, assetIndex, assets, libraries, compatibilityRules, downloads, logging, type, time, releaseTime, minimumLauncherVersion, hidden, root, patches);
|
return new Version(resolved, id, version, priority, minecraftArguments, arguments, mainClass, inheritsFrom, jar, assetIndex, assets, complianceLevel, javaVersion, libraries, compatibilityRules, downloads, logging, type, time, releaseTime, minimumLauncherVersion, hidden, root, patches);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Version setVersion(String version) {
|
public Version setVersion(String version) {
|
||||||
return new Version(resolved, id, version, priority, minecraftArguments, arguments, mainClass, inheritsFrom, jar, assetIndex, assets, libraries, compatibilityRules, downloads, logging, type, time, releaseTime, minimumLauncherVersion, hidden, root, patches);
|
return new Version(resolved, id, version, priority, minecraftArguments, arguments, mainClass, inheritsFrom, jar, assetIndex, assets, complianceLevel, javaVersion, libraries, compatibilityRules, downloads, logging, type, time, releaseTime, minimumLauncherVersion, hidden, root, patches);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Version setPriority(Integer priority) {
|
public Version setPriority(Integer priority) {
|
||||||
return new Version(resolved, id, version, priority, minecraftArguments, arguments, mainClass, inheritsFrom, jar, assetIndex, assets, libraries, compatibilityRules, downloads, logging, type, time, releaseTime, minimumLauncherVersion, hidden, root, patches);
|
return new Version(resolved, id, version, priority, minecraftArguments, arguments, mainClass, inheritsFrom, jar, assetIndex, assets, complianceLevel, javaVersion, libraries, compatibilityRules, downloads, logging, type, time, releaseTime, minimumLauncherVersion, hidden, root, patches);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Version setMinecraftArguments(String minecraftArguments) {
|
public Version setMinecraftArguments(String minecraftArguments) {
|
||||||
return new Version(resolved, id, version, priority, minecraftArguments, arguments, mainClass, inheritsFrom, jar, assetIndex, assets, libraries, compatibilityRules, downloads, logging, type, time, releaseTime, minimumLauncherVersion, hidden, root, patches);
|
return new Version(resolved, id, version, priority, minecraftArguments, arguments, mainClass, inheritsFrom, jar, assetIndex, assets, complianceLevel, javaVersion, libraries, compatibilityRules, downloads, logging, type, time, releaseTime, minimumLauncherVersion, hidden, root, patches);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Version setArguments(Arguments arguments) {
|
public Version setArguments(Arguments arguments) {
|
||||||
return new Version(resolved, id, version, priority, minecraftArguments, arguments, mainClass, inheritsFrom, jar, assetIndex, assets, libraries, compatibilityRules, downloads, logging, type, time, releaseTime, minimumLauncherVersion, hidden, root, patches);
|
return new Version(resolved, id, version, priority, minecraftArguments, arguments, mainClass, inheritsFrom, jar, assetIndex, assets, complianceLevel, javaVersion, libraries, compatibilityRules, downloads, logging, type, time, releaseTime, minimumLauncherVersion, hidden, root, patches);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Version setMainClass(String mainClass) {
|
public Version setMainClass(String mainClass) {
|
||||||
return new Version(resolved, id, version, priority, minecraftArguments, arguments, mainClass, inheritsFrom, jar, assetIndex, assets, libraries, compatibilityRules, downloads, logging, type, time, releaseTime, minimumLauncherVersion, hidden, root, patches);
|
return new Version(resolved, id, version, priority, minecraftArguments, arguments, mainClass, inheritsFrom, jar, assetIndex, assets, complianceLevel, javaVersion, libraries, compatibilityRules, downloads, logging, type, time, releaseTime, minimumLauncherVersion, hidden, root, patches);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Version setInheritsFrom(String inheritsFrom) {
|
public Version setInheritsFrom(String inheritsFrom) {
|
||||||
return new Version(resolved, id, version, priority, minecraftArguments, arguments, mainClass, inheritsFrom, jar, assetIndex, assets, libraries, compatibilityRules, downloads, logging, type, time, releaseTime, minimumLauncherVersion, hidden, root, patches);
|
return new Version(resolved, id, version, priority, minecraftArguments, arguments, mainClass, inheritsFrom, jar, assetIndex, assets, complianceLevel, javaVersion, libraries, compatibilityRules, downloads, logging, type, time, releaseTime, minimumLauncherVersion, hidden, root, patches);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Version setJar(String jar) {
|
public Version setJar(String jar) {
|
||||||
return new Version(resolved, id, version, priority, minecraftArguments, arguments, mainClass, inheritsFrom, jar, assetIndex, assets, libraries, compatibilityRules, downloads, logging, type, time, releaseTime, minimumLauncherVersion, hidden, root, patches);
|
return new Version(resolved, id, version, priority, minecraftArguments, arguments, mainClass, inheritsFrom, jar, assetIndex, assets, complianceLevel, javaVersion, libraries, compatibilityRules, downloads, logging, type, time, releaseTime, minimumLauncherVersion, hidden, root, patches);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Version setLibraries(List<Library> libraries) {
|
public Version setLibraries(List<Library> libraries) {
|
||||||
return new Version(resolved, id, version, priority, minecraftArguments, arguments, mainClass, inheritsFrom, jar, assetIndex, assets, libraries, compatibilityRules, downloads, logging, type, time, releaseTime, minimumLauncherVersion, hidden, root, patches);
|
return new Version(resolved, id, version, priority, minecraftArguments, arguments, mainClass, inheritsFrom, jar, assetIndex, assets, complianceLevel, javaVersion, libraries, compatibilityRules, downloads, logging, type, time, releaseTime, minimumLauncherVersion, hidden, root, patches);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Version setLogging(Map<DownloadType, LoggingInfo> logging) {
|
public Version setLogging(Map<DownloadType, LoggingInfo> logging) {
|
||||||
return new Version(resolved, id, version, priority, minecraftArguments, arguments, mainClass, inheritsFrom, jar, assetIndex, assets, libraries, compatibilityRules, downloads, logging, type, time, releaseTime, minimumLauncherVersion, hidden, root, patches);
|
return new Version(resolved, id, version, priority, minecraftArguments, arguments, mainClass, inheritsFrom, jar, assetIndex, assets, complianceLevel, javaVersion, libraries, compatibilityRules, downloads, logging, type, time, releaseTime, minimumLauncherVersion, hidden, root, patches);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Version setPatches(List<Version> patches) {
|
public Version setPatches(List<Version> patches) {
|
||||||
return new Version(resolved, id, version, priority, minecraftArguments, arguments, mainClass, inheritsFrom, jar, assetIndex, assets, libraries, compatibilityRules, downloads, logging, type, time, releaseTime, minimumLauncherVersion, hidden, root, patches);
|
return new Version(resolved, id, version, priority, minecraftArguments, arguments, mainClass, inheritsFrom, jar, assetIndex, assets, complianceLevel, javaVersion, libraries, compatibilityRules, downloads, logging, type, time, releaseTime, minimumLauncherVersion, hidden, root, patches);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Version addPatch(Version... additional) {
|
public Version addPatch(Version... additional) {
|
||||||
@@ -381,15 +387,15 @@ public class Version implements Comparable<Version>, Validation {
|
|||||||
public Version addPatches(@Nullable List<Version> additional) {
|
public Version addPatches(@Nullable List<Version> additional) {
|
||||||
Set<String> patchIds = additional == null ? Collections.emptySet() : additional.stream().map(Version::getId).collect(Collectors.toSet());
|
Set<String> patchIds = additional == null ? Collections.emptySet() : additional.stream().map(Version::getId).collect(Collectors.toSet());
|
||||||
List<Version> patches = Lang.merge(this.patches == null ? null : this.patches.stream().filter(patch -> !patchIds.contains(patch.getId())).collect(Collectors.toList()), additional);
|
List<Version> patches = Lang.merge(this.patches == null ? null : this.patches.stream().filter(patch -> !patchIds.contains(patch.getId())).collect(Collectors.toList()), additional);
|
||||||
return new Version(resolved, id, version, priority, minecraftArguments, arguments, mainClass, inheritsFrom, jar, assetIndex, assets, libraries, compatibilityRules, downloads, logging, type, time, releaseTime, minimumLauncherVersion, hidden, root, patches);
|
return new Version(resolved, id, version, priority, minecraftArguments, arguments, mainClass, inheritsFrom, jar, assetIndex, assets, complianceLevel, javaVersion, libraries, compatibilityRules, downloads, logging, type, time, releaseTime, minimumLauncherVersion, hidden, root, patches);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Version clearPatches() {
|
public Version clearPatches() {
|
||||||
return new Version(resolved, id, version, priority, minecraftArguments, arguments, mainClass, inheritsFrom, jar, assetIndex, assets, libraries, compatibilityRules, downloads, logging, type, time, releaseTime, minimumLauncherVersion, hidden, root,null);
|
return new Version(resolved, id, version, priority, minecraftArguments, arguments, mainClass, inheritsFrom, jar, assetIndex, assets, complianceLevel, javaVersion, libraries, compatibilityRules, downloads, logging, type, time, releaseTime, minimumLauncherVersion, hidden, root,null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Version removePatchById(String patchId) {
|
public Version removePatchById(String patchId) {
|
||||||
return new Version(resolved, id, version, priority, minecraftArguments, arguments, mainClass, inheritsFrom, jar, assetIndex, assets, libraries, compatibilityRules, downloads, logging, type, time, releaseTime, minimumLauncherVersion, hidden, root,
|
return new Version(resolved, id, version, priority, minecraftArguments, arguments, mainClass, inheritsFrom, jar, assetIndex, assets, complianceLevel, javaVersion, libraries, compatibilityRules, downloads, logging, type, time, releaseTime, minimumLauncherVersion, hidden, root,
|
||||||
patches == null ? null : patches.stream().filter(patch -> !patchId.equals(patch.getId())).collect(Collectors.toList()));
|
patches == null ? null : patches.stream().filter(patch -> !patchId.equals(patch.getId())).collect(Collectors.toList()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user