Fix unable to install more than one libraries
This commit is contained in:
@@ -85,16 +85,16 @@ public final class InstallerWizardProvider implements WizardProvider {
|
|||||||
settings.put("success_message", i18n("install.success"));
|
settings.put("success_message", i18n("install.success"));
|
||||||
settings.put("failure_message", i18n("install.failed"));
|
settings.put("failure_message", i18n("install.failed"));
|
||||||
|
|
||||||
Task ret = Task.empty();
|
Task ret = Task.ofResult("version", () -> version);
|
||||||
|
|
||||||
if (settings.containsKey("forge"))
|
if (settings.containsKey("forge"))
|
||||||
ret = ret.then(profile.getDependency().installLibraryAsync(version, (RemoteVersion) settings.get("forge")));
|
ret = ret.then(profile.getDependency().installLibraryAsync((RemoteVersion) settings.get("forge")));
|
||||||
|
|
||||||
if (settings.containsKey("liteloader"))
|
if (settings.containsKey("liteloader"))
|
||||||
ret = ret.then(profile.getDependency().installLibraryAsync(version, (RemoteVersion) settings.get("liteloader")));
|
ret = ret.then(profile.getDependency().installLibraryAsync((RemoteVersion) settings.get("liteloader")));
|
||||||
|
|
||||||
if (settings.containsKey("optifine"))
|
if (settings.containsKey("optifine"))
|
||||||
ret = ret.then(profile.getDependency().installLibraryAsync(version, (RemoteVersion) settings.get("optifine")));
|
ret = ret.then(profile.getDependency().installLibraryAsync((RemoteVersion) settings.get("optifine")));
|
||||||
|
|
||||||
return ret.then(profile.getRepository().refreshVersionsAsync());
|
return ret.then(profile.getRepository().refreshVersionsAsync());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,6 +28,8 @@ import org.jackhuang.hmcl.game.DefaultGameRepository;
|
|||||||
import org.jackhuang.hmcl.game.Version;
|
import org.jackhuang.hmcl.game.Version;
|
||||||
import org.jackhuang.hmcl.task.ParallelTask;
|
import org.jackhuang.hmcl.task.ParallelTask;
|
||||||
import org.jackhuang.hmcl.task.Task;
|
import org.jackhuang.hmcl.task.Task;
|
||||||
|
import org.jackhuang.hmcl.util.AutoTypingMap;
|
||||||
|
import org.jackhuang.hmcl.util.ExceptionalFunction;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Note: This class has no state.
|
* Note: This class has no state.
|
||||||
@@ -97,4 +99,8 @@ public class DefaultDependencyManager extends AbstractDependencyManager {
|
|||||||
throw new IllegalArgumentException("Remote library " + libraryVersion + " is unrecognized.");
|
throw new IllegalArgumentException("Remote library " + libraryVersion + " is unrecognized.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public ExceptionalFunction<AutoTypingMap<String>, Task, ?> installLibraryAsync(RemoteVersion libraryVersion) {
|
||||||
|
return var -> installLibraryAsync(var.get("version"), libraryVersion);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ public class DefaultGameBuilder extends GameBuilder {
|
|||||||
result = result.then(libraryTaskHelper(gameVersion, "optifine"));
|
result = result.then(libraryTaskHelper(gameVersion, "optifine"));
|
||||||
|
|
||||||
for (RemoteVersion remoteVersion : remoteVersions)
|
for (RemoteVersion remoteVersion : remoteVersions)
|
||||||
result = result.then(var -> dependencyManager.installLibraryAsync(var.get("version"), remoteVersion));
|
result = result.then(dependencyManager.installLibraryAsync(remoteVersion));
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}).finalized((variables, isDependentsSucceeded) -> {
|
}).finalized((variables, isDependentsSucceeded) -> {
|
||||||
|
|||||||
Reference in New Issue
Block a user