From 9a375fd0d162d887430328993aeaadfd3d42b131 Mon Sep 17 00:00:00 2001 From: huangyuhui Date: Sun, 26 Aug 2018 11:50:42 +0800 Subject: [PATCH] Add hiding versions. Closes #437 --- .../java/org/jackhuang/hmcl/ui/MainPage.java | 1 + .../jackhuang/hmcl/game/ClassicVersion.java | 2 +- .../java/org/jackhuang/hmcl/game/Version.java | 29 ++++++++++++------- 3 files changed, 20 insertions(+), 12 deletions(-) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/MainPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/MainPage.java index 508e7cbe1..dea720a8f 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/MainPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/MainPage.java @@ -230,6 +230,7 @@ public final class MainPage extends StackPane implements DecoratorPage { private void loadVersions(HMCLGameRepository repository) { List children = repository.getVersions().parallelStream() + .filter(version -> !version.isHidden()) .sorted((a, b) -> VersionNumber.COMPARATOR.compare(VersionNumber.asVersion(a.getId()), VersionNumber.asVersion(b.getId()))) .map(version -> buildNode(repository, version, () -> GameVersion.minecraftVersion(repository.getVersionJar(version.getId())).orElse("Unknown"))) .collect(Collectors.toList()); diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/ClassicVersion.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/ClassicVersion.java index ecc83468f..408175259 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/ClassicVersion.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/ClassicVersion.java @@ -32,7 +32,7 @@ public class ClassicVersion extends Version { super(true, "Classic", "${auth_player_name} ${auth_session} --workDir ${game_directory}", null, "net.minecraft.client.Minecraft", null, null, null, null, Arrays.asList(new ClassicLibrary("lwjgl"), new ClassicLibrary("jinput"), new ClassicLibrary("lwjgl_util")), - null, null, null, ReleaseType.UNKNOWN, new Date(), new Date(), 0); + null, null, null, ReleaseType.UNKNOWN, new Date(), new Date(), 0, false); } private static class ClassicLibrary extends Library { diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/Version.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/Version.java index 3145b9eec..c1af9e157 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/Version.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/Version.java @@ -46,10 +46,11 @@ public class Version implements Comparable, Validation { private final Date time; private final Date releaseTime; private final int minimumLauncherVersion; + private final boolean hidden; private transient final boolean resolved; - public Version(boolean resolved, String id, String minecraftArguments, Arguments arguments, String mainClass, String inheritsFrom, String jar, AssetIndexInfo assetIndex, String assets, List libraries, List compatibilityRules, Map downloads, Map logging, ReleaseType type, Date time, Date releaseTime, int minimumLauncherVersion) { + public Version(boolean resolved, String id, String minecraftArguments, Arguments arguments, String mainClass, String inheritsFrom, String jar, AssetIndexInfo assetIndex, String assets, List libraries, List compatibilityRules, Map downloads, Map logging, ReleaseType type, Date time, Date releaseTime, int minimumLauncherVersion, boolean hidden) { this.resolved = resolved; this.id = id; this.minecraftArguments = minecraftArguments; @@ -67,6 +68,7 @@ public class Version implements Comparable, Validation { this.time = time == null ? new Date() : (Date) time.clone(); this.releaseTime = releaseTime == null ? new Date() : (Date) releaseTime.clone(); this.minimumLauncherVersion = minimumLauncherVersion; + this.hidden = hidden; } public Optional getMinecraftArguments() { @@ -109,6 +111,10 @@ public class Version implements Comparable, Validation { return minimumLauncherVersion; } + public boolean isHidden() { + return hidden; + } + public Map getLogging() { return logging == null ? Collections.EMPTY_MAP : Collections.unmodifiableMap(logging); } @@ -176,43 +182,44 @@ public class Version implements Comparable, Validation { type, time, releaseTime, - Math.max(minimumLauncherVersion, parent.minimumLauncherVersion)); + Math.max(minimumLauncherVersion, parent.minimumLauncherVersion), + hidden); } private Version setResolved() { - return new Version(true, id, minecraftArguments, arguments, mainClass, inheritsFrom, jar, assetIndex, assets, libraries, compatibilityRules, downloads, logging, type, time, releaseTime, minimumLauncherVersion); + return new Version(true, id, minecraftArguments, arguments, mainClass, inheritsFrom, jar, assetIndex, assets, libraries, compatibilityRules, downloads, logging, type, time, releaseTime, minimumLauncherVersion, hidden); } public Version setId(String id) { - return new Version(resolved, id, minecraftArguments, arguments, mainClass, inheritsFrom, jar, assetIndex, assets, libraries, compatibilityRules, downloads, logging, type, time, releaseTime, minimumLauncherVersion); + return new Version(resolved, id, minecraftArguments, arguments, mainClass, inheritsFrom, jar, assetIndex, assets, libraries, compatibilityRules, downloads, logging, type, time, releaseTime, minimumLauncherVersion, hidden); } public Version setMinecraftArguments(String minecraftArguments) { - return new Version(resolved, id, minecraftArguments, arguments, mainClass, inheritsFrom, jar, assetIndex, assets, libraries, compatibilityRules, downloads, logging, type, time, releaseTime, minimumLauncherVersion); + return new Version(resolved, id, minecraftArguments, arguments, mainClass, inheritsFrom, jar, assetIndex, assets, libraries, compatibilityRules, downloads, logging, type, time, releaseTime, minimumLauncherVersion, hidden); } public Version setArguments(Arguments arguments) { - return new Version(resolved, id, minecraftArguments, arguments, mainClass, inheritsFrom, jar, assetIndex, assets, libraries, compatibilityRules, downloads, logging, type, time, releaseTime, minimumLauncherVersion); + return new Version(resolved, id, minecraftArguments, arguments, mainClass, inheritsFrom, jar, assetIndex, assets, libraries, compatibilityRules, downloads, logging, type, time, releaseTime, minimumLauncherVersion, hidden); } public Version setMainClass(String mainClass) { - return new Version(resolved, id, minecraftArguments, arguments, mainClass, inheritsFrom, jar, assetIndex, assets, libraries, compatibilityRules, downloads, logging, type, time, releaseTime, minimumLauncherVersion); + return new Version(resolved, id, minecraftArguments, arguments, mainClass, inheritsFrom, jar, assetIndex, assets, libraries, compatibilityRules, downloads, logging, type, time, releaseTime, minimumLauncherVersion, hidden); } public Version setInheritsFrom(String inheritsFrom) { - return new Version(resolved, id, minecraftArguments, arguments, mainClass, inheritsFrom, jar, assetIndex, assets, libraries, compatibilityRules, downloads, logging, type, time, releaseTime, minimumLauncherVersion); + return new Version(resolved, id, minecraftArguments, arguments, mainClass, inheritsFrom, jar, assetIndex, assets, libraries, compatibilityRules, downloads, logging, type, time, releaseTime, minimumLauncherVersion, hidden); } public Version setJar(String jar) { - return new Version(resolved, id, minecraftArguments, arguments, mainClass, inheritsFrom, jar, assetIndex, assets, libraries, compatibilityRules, downloads, logging, type, time, releaseTime, minimumLauncherVersion); + return new Version(resolved, id, minecraftArguments, arguments, mainClass, inheritsFrom, jar, assetIndex, assets, libraries, compatibilityRules, downloads, logging, type, time, releaseTime, minimumLauncherVersion, hidden); } public Version setLibraries(List libraries) { - return new Version(resolved, id, minecraftArguments, arguments, mainClass, inheritsFrom, jar, assetIndex, assets, libraries, compatibilityRules, downloads, logging, type, time, releaseTime, minimumLauncherVersion); + return new Version(resolved, id, minecraftArguments, arguments, mainClass, inheritsFrom, jar, assetIndex, assets, libraries, compatibilityRules, downloads, logging, type, time, releaseTime, minimumLauncherVersion, hidden); } public Version setLogging(Map logging) { - return new Version(resolved, id, minecraftArguments, arguments, mainClass, inheritsFrom, jar, assetIndex, assets, libraries, compatibilityRules, downloads, logging, type, time, releaseTime, minimumLauncherVersion); + return new Version(resolved, id, minecraftArguments, arguments, mainClass, inheritsFrom, jar, assetIndex, assets, libraries, compatibilityRules, downloads, logging, type, time, releaseTime, minimumLauncherVersion, hidden); } @Override