Fixed hidden version selection
This commit is contained in:
@@ -24,6 +24,7 @@ import org.jackhuang.hellominecraft.launcher.core.version.DecompressLibraryJob;
|
|||||||
import org.jackhuang.hellominecraft.launcher.core.version.MinecraftVersion;
|
import org.jackhuang.hellominecraft.launcher.core.version.MinecraftVersion;
|
||||||
import org.jackhuang.hellominecraft.util.EventHandler;
|
import org.jackhuang.hellominecraft.util.EventHandler;
|
||||||
import org.jackhuang.hellominecraft.util.func.Consumer;
|
import org.jackhuang.hellominecraft.util.func.Consumer;
|
||||||
|
import org.jackhuang.hellominecraft.util.func.Predicate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provide everything of the Minecraft of a Profile.
|
* Provide everything of the Minecraft of a Profile.
|
||||||
@@ -117,7 +118,7 @@ public abstract class IMinecraftProvider {
|
|||||||
*
|
*
|
||||||
* @return the version
|
* @return the version
|
||||||
*/
|
*/
|
||||||
public abstract MinecraftVersion getOneVersion();
|
public abstract MinecraftVersion getOneVersion(Predicate<MinecraftVersion> p);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* All Minecraft version in this profile.
|
* All Minecraft version in this profile.
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ import org.jackhuang.hellominecraft.util.system.IOUtils;
|
|||||||
import org.jackhuang.hellominecraft.util.MessageBox;
|
import org.jackhuang.hellominecraft.util.MessageBox;
|
||||||
import org.jackhuang.hellominecraft.util.StrUtils;
|
import org.jackhuang.hellominecraft.util.StrUtils;
|
||||||
import org.jackhuang.hellominecraft.util.func.Consumer;
|
import org.jackhuang.hellominecraft.util.func.Consumer;
|
||||||
|
import org.jackhuang.hellominecraft.util.func.Predicate;
|
||||||
import org.jackhuang.hellominecraft.util.ui.SwingUtils;
|
import org.jackhuang.hellominecraft.util.ui.SwingUtils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -245,8 +246,11 @@ public class MinecraftVersionManager extends IMinecraftProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public MinecraftVersion getOneVersion() {
|
public MinecraftVersion getOneVersion(Predicate<MinecraftVersion> pred) {
|
||||||
return versions.isEmpty() ? null : versions.values().iterator().next();
|
for (MinecraftVersion v : versions.values())
|
||||||
|
if (pred == null || pred.apply(v))
|
||||||
|
return v;
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -86,9 +86,9 @@ public final class Profile {
|
|||||||
|
|
||||||
public String getSelectedVersion() {
|
public String getSelectedVersion() {
|
||||||
String v = selectedMinecraftVersion;
|
String v = selectedMinecraftVersion;
|
||||||
if (StrUtils.isBlank(v) || service().version().getVersionById(v) == null) {
|
if (StrUtils.isBlank(v) || service().version().getVersionById(v) == null || service().version().getVersionById(v).hidden) {
|
||||||
if (service().version().getVersionCount() > 0)
|
if (service().version().getVersionCount() > 0)
|
||||||
v = service().version().getOneVersion().id;
|
v = service().version().getOneVersion(t -> !t.hidden).id;
|
||||||
if (StrUtils.isNotBlank(v))
|
if (StrUtils.isNotBlank(v))
|
||||||
setSelectedMinecraftVersion(v);
|
setSelectedMinecraftVersion(v);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user