From 4146ceb048543ea184e917942f8f22852f507f1b Mon Sep 17 00:00:00 2001 From: huangyuhui Date: Wed, 22 Aug 2018 04:25:35 +0800 Subject: [PATCH] Fix not downloading the correct game version --- .../hmcl/download/game/GameVersionList.java | 3 ++- .../liteloader/LiteLoaderInstallTask.java | 11 +------- .../optifine/OptiFineInstallTask.java | 27 ++----------------- .../java/org/jackhuang/hmcl/game/Version.java | 4 --- 4 files changed, 5 insertions(+), 40 deletions(-) diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameVersionList.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameVersionList.java index d2cd174b3..ced1afb49 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameVersionList.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameVersionList.java @@ -24,6 +24,7 @@ import org.jackhuang.hmcl.task.GetTask; import org.jackhuang.hmcl.task.Task; import org.jackhuang.hmcl.util.Constants; import org.jackhuang.hmcl.util.NetworkUtils; +import org.jackhuang.hmcl.util.StringUtils; import java.util.Collection; import java.util.Collections; @@ -48,7 +49,7 @@ public final class GameVersionList extends VersionList { protected Collection getVersionsImpl(String gameVersion) { lock.readLock().lock(); try { - return versions.values(); + return StringUtils.isBlank(gameVersion) ? versions.values() : versions.get(gameVersion); } finally { lock.readLock().unlock(); } diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/liteloader/LiteLoaderInstallTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/liteloader/LiteLoaderInstallTask.java index 09ea039ab..f6043cd9e 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/liteloader/LiteLoaderInstallTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/liteloader/LiteLoaderInstallTask.java @@ -19,10 +19,7 @@ package org.jackhuang.hmcl.download.liteloader; import org.jackhuang.hmcl.download.DefaultDependencyManager; import org.jackhuang.hmcl.download.game.GameLibrariesTask; -import org.jackhuang.hmcl.game.LibrariesDownloadInfo; -import org.jackhuang.hmcl.game.Library; -import org.jackhuang.hmcl.game.LibraryDownloadInfo; -import org.jackhuang.hmcl.game.Version; +import org.jackhuang.hmcl.game.*; import org.jackhuang.hmcl.task.Task; import org.jackhuang.hmcl.task.TaskResult; import org.jackhuang.hmcl.util.Lang; @@ -76,16 +73,10 @@ public final class LiteLoaderInstallTask extends TaskResult { Version tempVersion = version.setLibraries(Lang.merge(remote.getLibraries(), Collections.singleton(library))); - String mcArg = version.getMinecraftArguments().orElse(""); - if (mcArg.contains("--tweakClass optifine.OptiFineTweaker")) - mcArg = mcArg.replace("--tweakClass optifine.OptiFineTweaker", ""); - setResult(version .setMainClass("net.minecraft.launchwrapper.Launch") .setLibraries(Lang.merge(tempVersion.getLibraries(), version.getLibraries())) .setLogging(Collections.emptyMap()) - .setMinecraftArguments(mcArg + " --tweakClass " + remote.getTweakClass()) - //.setArguments(Arguments.addGameArguments(Lang.get(version.getArguments()), "--tweakClass", remote.getTag().getTweakClass())) ); dependencies.add(new GameLibrariesTask(dependencyManager, tempVersion)); diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/optifine/OptiFineInstallTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/optifine/OptiFineInstallTask.java index 5e7ab8a69..04d33e845 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/optifine/OptiFineInstallTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/optifine/OptiFineInstallTask.java @@ -25,7 +25,6 @@ import org.jackhuang.hmcl.task.TaskResult; import org.jackhuang.hmcl.util.Lang; import java.util.Collection; -import java.util.Collections; import java.util.LinkedList; import java.util.List; @@ -82,34 +81,12 @@ public final class OptiFineInstallTask extends TaskResult { List libraries = new LinkedList<>(); libraries.add(library); - boolean hasFMLTweaker = false; - if (version.getMinecraftArguments().isPresent() && version.getMinecraftArguments().get().contains("FMLTweaker")) - hasFMLTweaker = true; - if (version.getArguments().isPresent()) { - List game = version.getArguments().get().getGame(); - if (game.stream().anyMatch(arg -> arg.toString(Collections.emptyMap(), Collections.emptyMap()).contains("FMLTweaker"))) - hasFMLTweaker = true; - } - - /*Arguments arguments = Lang.get(version.getArguments()); - - if (!hasFMLTweaker) - arguments = Arguments.addGameArguments(arguments, "--tweakClass", "optifine.OptiFineTweaker"); - */ - String minecraftArguments = version.getMinecraftArguments().orElse(""); - if (!hasFMLTweaker) - minecraftArguments = minecraftArguments + " --tweakClass optifine.OptiFineTweaker"; - else - minecraftArguments = minecraftArguments + " --tweakClass optifine.OptiFineForgeTweaker"; - if (version.getMainClass() == null || !version.getMainClass().startsWith("net.minecraft.launchwrapper.")) libraries.add(0, new Library("net.minecraft", "launchwrapper", "1.12")); setResult(version - .setLibraries(Lang.merge(version.getLibraries(), libraries)) - .setMainClass("net.minecraft.launchwrapper.Launch") - .setMinecraftArguments(minecraftArguments) - //.setArguments(arguments) + .setLibraries(Lang.merge(version.getLibraries(), libraries)) + .setMainClass("net.minecraft.launchwrapper.Launch") ); dependencies.add(new GameLibrariesTask(dependencyManager, version.setLibraries(libraries))); 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 d05e8d9e3..3145b9eec 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/Version.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/Version.java @@ -139,10 +139,6 @@ public class Version implements Comparable, Validation { return CompatibilityRule.appliesToCurrentEnvironment(compatibilityRules); } - public boolean install(String id) { - return false; - } - /** * Resolve given version */