diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/DefaultGameBuilder.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/DefaultGameBuilder.java index 092d8e713..b4023f303 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/DefaultGameBuilder.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/DefaultGameBuilder.java @@ -18,6 +18,7 @@ package org.jackhuang.hmcl.download; import org.jackhuang.hmcl.download.game.*; +import org.jackhuang.hmcl.game.SimpleVersionProvider; import org.jackhuang.hmcl.game.Version; import org.jackhuang.hmcl.task.ParallelTask; import org.jackhuang.hmcl.task.Task; @@ -51,7 +52,7 @@ public class DefaultGameBuilder extends GameBuilder { public Task buildAsync() { return new VersionJsonDownloadTask(gameVersion, dependencyManager).then(variables -> { Version version = Constants.GSON.fromJson(variables.get(VersionJsonDownloadTask.ID), Version.class); - version = version.setId(name).setJar(null); + version = version.setId(name).setJar(null).resolve(new SimpleVersionProvider()); variables.set("version", version); Task result = new ParallelTask( new GameAssetDownloadTask(dependencyManager, version), diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/DefaultGameRepository.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/DefaultGameRepository.java index b261fdf9e..4c510f006 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/DefaultGameRepository.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/DefaultGameRepository.java @@ -143,6 +143,8 @@ public class DefaultGameRepository implements GameRepository { } public boolean removeVersionFromDisk(String id) { + if (!versions.containsKey(id)) + return true; File file = getVersionRoot(id); if (!file.exists()) return true;