mirror of
https://github.com/HMCL-dev/HMCL.git
synced 2025-09-16 07:16:27 -04:00
Fix not downloading the correct game version
This commit is contained in:
parent
ad568d2b9f
commit
4146ceb048
@ -24,6 +24,7 @@ import org.jackhuang.hmcl.task.GetTask;
|
|||||||
import org.jackhuang.hmcl.task.Task;
|
import org.jackhuang.hmcl.task.Task;
|
||||||
import org.jackhuang.hmcl.util.Constants;
|
import org.jackhuang.hmcl.util.Constants;
|
||||||
import org.jackhuang.hmcl.util.NetworkUtils;
|
import org.jackhuang.hmcl.util.NetworkUtils;
|
||||||
|
import org.jackhuang.hmcl.util.StringUtils;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
@ -48,7 +49,7 @@ public final class GameVersionList extends VersionList<GameRemoteVersion> {
|
|||||||
protected Collection<GameRemoteVersion> getVersionsImpl(String gameVersion) {
|
protected Collection<GameRemoteVersion> getVersionsImpl(String gameVersion) {
|
||||||
lock.readLock().lock();
|
lock.readLock().lock();
|
||||||
try {
|
try {
|
||||||
return versions.values();
|
return StringUtils.isBlank(gameVersion) ? versions.values() : versions.get(gameVersion);
|
||||||
} finally {
|
} finally {
|
||||||
lock.readLock().unlock();
|
lock.readLock().unlock();
|
||||||
}
|
}
|
||||||
|
@ -19,10 +19,7 @@ package org.jackhuang.hmcl.download.liteloader;
|
|||||||
|
|
||||||
import org.jackhuang.hmcl.download.DefaultDependencyManager;
|
import org.jackhuang.hmcl.download.DefaultDependencyManager;
|
||||||
import org.jackhuang.hmcl.download.game.GameLibrariesTask;
|
import org.jackhuang.hmcl.download.game.GameLibrariesTask;
|
||||||
import org.jackhuang.hmcl.game.LibrariesDownloadInfo;
|
import org.jackhuang.hmcl.game.*;
|
||||||
import org.jackhuang.hmcl.game.Library;
|
|
||||||
import org.jackhuang.hmcl.game.LibraryDownloadInfo;
|
|
||||||
import org.jackhuang.hmcl.game.Version;
|
|
||||||
import org.jackhuang.hmcl.task.Task;
|
import org.jackhuang.hmcl.task.Task;
|
||||||
import org.jackhuang.hmcl.task.TaskResult;
|
import org.jackhuang.hmcl.task.TaskResult;
|
||||||
import org.jackhuang.hmcl.util.Lang;
|
import org.jackhuang.hmcl.util.Lang;
|
||||||
@ -76,16 +73,10 @@ public final class LiteLoaderInstallTask extends TaskResult<Version> {
|
|||||||
|
|
||||||
Version tempVersion = version.setLibraries(Lang.merge(remote.getLibraries(), Collections.singleton(library)));
|
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
|
setResult(version
|
||||||
.setMainClass("net.minecraft.launchwrapper.Launch")
|
.setMainClass("net.minecraft.launchwrapper.Launch")
|
||||||
.setLibraries(Lang.merge(tempVersion.getLibraries(), version.getLibraries()))
|
.setLibraries(Lang.merge(tempVersion.getLibraries(), version.getLibraries()))
|
||||||
.setLogging(Collections.emptyMap())
|
.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));
|
dependencies.add(new GameLibrariesTask(dependencyManager, tempVersion));
|
||||||
|
@ -25,7 +25,6 @@ import org.jackhuang.hmcl.task.TaskResult;
|
|||||||
import org.jackhuang.hmcl.util.Lang;
|
import org.jackhuang.hmcl.util.Lang;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -82,34 +81,12 @@ public final class OptiFineInstallTask extends TaskResult<Version> {
|
|||||||
List<Library> libraries = new LinkedList<>();
|
List<Library> libraries = new LinkedList<>();
|
||||||
libraries.add(library);
|
libraries.add(library);
|
||||||
|
|
||||||
boolean hasFMLTweaker = false;
|
|
||||||
if (version.getMinecraftArguments().isPresent() && version.getMinecraftArguments().get().contains("FMLTweaker"))
|
|
||||||
hasFMLTweaker = true;
|
|
||||||
if (version.getArguments().isPresent()) {
|
|
||||||
List<Argument> 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."))
|
if (version.getMainClass() == null || !version.getMainClass().startsWith("net.minecraft.launchwrapper."))
|
||||||
libraries.add(0, new Library("net.minecraft", "launchwrapper", "1.12"));
|
libraries.add(0, new Library("net.minecraft", "launchwrapper", "1.12"));
|
||||||
|
|
||||||
setResult(version
|
setResult(version
|
||||||
.setLibraries(Lang.merge(version.getLibraries(), libraries))
|
.setLibraries(Lang.merge(version.getLibraries(), libraries))
|
||||||
.setMainClass("net.minecraft.launchwrapper.Launch")
|
.setMainClass("net.minecraft.launchwrapper.Launch")
|
||||||
.setMinecraftArguments(minecraftArguments)
|
|
||||||
//.setArguments(arguments)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
dependencies.add(new GameLibrariesTask(dependencyManager, version.setLibraries(libraries)));
|
dependencies.add(new GameLibrariesTask(dependencyManager, version.setLibraries(libraries)));
|
||||||
|
@ -139,10 +139,6 @@ public class Version implements Comparable<Version>, Validation {
|
|||||||
return CompatibilityRule.appliesToCurrentEnvironment(compatibilityRules);
|
return CompatibilityRule.appliesToCurrentEnvironment(compatibilityRules);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean install(String id) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Resolve given version
|
* Resolve given version
|
||||||
*/
|
*/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user