Add hiding versions. Closes #437
This commit is contained in:
@@ -230,6 +230,7 @@ public final class MainPage extends StackPane implements DecoratorPage {
|
|||||||
|
|
||||||
private void loadVersions(HMCLGameRepository repository) {
|
private void loadVersions(HMCLGameRepository repository) {
|
||||||
List<Node> children = repository.getVersions().parallelStream()
|
List<Node> children = repository.getVersions().parallelStream()
|
||||||
|
.filter(version -> !version.isHidden())
|
||||||
.sorted((a, b) -> VersionNumber.COMPARATOR.compare(VersionNumber.asVersion(a.getId()), VersionNumber.asVersion(b.getId())))
|
.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")))
|
.map(version -> buildNode(repository, version, () -> GameVersion.minecraftVersion(repository.getVersionJar(version.getId())).orElse("Unknown")))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ public class ClassicVersion extends Version {
|
|||||||
super(true, "Classic", "${auth_player_name} ${auth_session} --workDir ${game_directory}",
|
super(true, "Classic", "${auth_player_name} ${auth_session} --workDir ${game_directory}",
|
||||||
null, "net.minecraft.client.Minecraft", null, null, null, null,
|
null, "net.minecraft.client.Minecraft", null, null, null, null,
|
||||||
Arrays.asList(new ClassicLibrary("lwjgl"), new ClassicLibrary("jinput"), new ClassicLibrary("lwjgl_util")),
|
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 {
|
private static class ClassicLibrary extends Library {
|
||||||
|
|||||||
@@ -46,10 +46,11 @@ public class Version implements Comparable<Version>, Validation {
|
|||||||
private final Date time;
|
private final Date time;
|
||||||
private final Date releaseTime;
|
private final Date releaseTime;
|
||||||
private final int minimumLauncherVersion;
|
private final int minimumLauncherVersion;
|
||||||
|
private final boolean hidden;
|
||||||
|
|
||||||
private transient final boolean resolved;
|
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<Library> libraries, List<CompatibilityRule> compatibilityRules, Map<DownloadType, DownloadInfo> downloads, Map<DownloadType, LoggingInfo> 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<Library> libraries, List<CompatibilityRule> compatibilityRules, Map<DownloadType, DownloadInfo> downloads, Map<DownloadType, LoggingInfo> logging, ReleaseType type, Date time, Date releaseTime, int minimumLauncherVersion, boolean hidden) {
|
||||||
this.resolved = resolved;
|
this.resolved = resolved;
|
||||||
this.id = id;
|
this.id = id;
|
||||||
this.minecraftArguments = minecraftArguments;
|
this.minecraftArguments = minecraftArguments;
|
||||||
@@ -67,6 +68,7 @@ public class Version implements Comparable<Version>, Validation {
|
|||||||
this.time = time == null ? new Date() : (Date) time.clone();
|
this.time = time == null ? new Date() : (Date) time.clone();
|
||||||
this.releaseTime = releaseTime == null ? new Date() : (Date) releaseTime.clone();
|
this.releaseTime = releaseTime == null ? new Date() : (Date) releaseTime.clone();
|
||||||
this.minimumLauncherVersion = minimumLauncherVersion;
|
this.minimumLauncherVersion = minimumLauncherVersion;
|
||||||
|
this.hidden = hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Optional<String> getMinecraftArguments() {
|
public Optional<String> getMinecraftArguments() {
|
||||||
@@ -109,6 +111,10 @@ public class Version implements Comparable<Version>, Validation {
|
|||||||
return minimumLauncherVersion;
|
return minimumLauncherVersion;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isHidden() {
|
||||||
|
return hidden;
|
||||||
|
}
|
||||||
|
|
||||||
public Map<DownloadType, LoggingInfo> getLogging() {
|
public Map<DownloadType, LoggingInfo> getLogging() {
|
||||||
return logging == null ? Collections.EMPTY_MAP : Collections.unmodifiableMap(logging);
|
return logging == null ? Collections.EMPTY_MAP : Collections.unmodifiableMap(logging);
|
||||||
}
|
}
|
||||||
@@ -176,43 +182,44 @@ public class Version implements Comparable<Version>, Validation {
|
|||||||
type,
|
type,
|
||||||
time,
|
time,
|
||||||
releaseTime,
|
releaseTime,
|
||||||
Math.max(minimumLauncherVersion, parent.minimumLauncherVersion));
|
Math.max(minimumLauncherVersion, parent.minimumLauncherVersion),
|
||||||
|
hidden);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Version setResolved() {
|
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) {
|
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) {
|
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) {
|
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) {
|
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) {
|
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) {
|
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<Library> libraries) {
|
public Version setLibraries(List<Library> 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<DownloadType, LoggingInfo> logging) {
|
public Version setLogging(Map<DownloadType, LoggingInfo> 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
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user