Maintains minecraft arguments when installing or uninstalling Forge, OptiFine, LiteLoader

This commit is contained in:
huangyuhui 2018-02-06 00:07:32 +08:00
parent 44d1f9cf7d
commit 6e2fc7ff97
2 changed files with 11 additions and 1 deletions

View File

@ -84,14 +84,17 @@ public class DefaultDependencyManager extends AbstractDependencyManager {
case "forge":
return new ForgeInstallTask(this, gameVersion, version, libraryVersion)
.then(variables -> new LibrariesUniqueTask(variables.get("version")))
.then(variables -> new MaintainTask(repository, variables.get("version")))
.then(variables -> new VersionJsonSaveTask(repository, variables.get("version")));
case "liteloader":
return new LiteLoaderInstallTask(this, gameVersion, version, libraryVersion)
.then(variables -> new LibrariesUniqueTask(variables.get("version")))
.then(variables -> new MaintainTask(repository, variables.get("version")))
.then(variables -> new VersionJsonSaveTask(repository, variables.get("version")));
case "optifine":
return new OptiFineInstallTask(this, gameVersion, version, libraryVersion)
.then(variables -> new LibrariesUniqueTask(variables.get("version")))
.then(variables -> new MaintainTask(repository, variables.get("version")))
.then(variables -> new VersionJsonSaveTask(repository, variables.get("version")));
default:
throw new IllegalArgumentException("Library id " + libraryId + " is unrecognized.");

View File

@ -68,8 +68,15 @@ public class MaintainTask extends TaskResult<Version> {
removeTweakClass(args, "forge");
}
// Installing Forge will override the Minecraft arguments in json, so LiteLoader and OptiFine Tweaker are being re-added.
if (liteLoader == null) {
removeTweakClass(args, "liteloader");
} else {
if (!StringUtils.containsOne(args, "LiteLoaderTweaker")) {
args.add("--tweakClass");
args.add("com.mumfrey.liteloader.launch.LiteLoaderTweaker");
}
}
if (optiFine == null) {
@ -88,7 +95,7 @@ public class MaintainTask extends TaskResult<Version> {
removeTweakClass(args, "optifine");
}
setResult(newVersion);
setResult(newVersion.setMinecraftArguments(StringUtils.makeCommand(args)));
}
@Override