Fix MultiMC modpack update not applying configuration overrides (#4382)
This commit is contained in:
@@ -236,7 +236,11 @@ public final class ModpackHelper {
|
|||||||
if (provider == null) {
|
if (provider == null) {
|
||||||
throw new UnsupportedModpackException();
|
throw new UnsupportedModpackException();
|
||||||
}
|
}
|
||||||
return provider.createUpdateTask(profile.getDependency(), name, zipFile, modpack);
|
if (modpack.getManifest() instanceof MultiMCInstanceConfiguration)
|
||||||
|
return provider.createUpdateTask(profile.getDependency(), name, zipFile, modpack)
|
||||||
|
.thenComposeAsync(() -> createMultiMCPostUpdateTask(profile, (MultiMCInstanceConfiguration) modpack.getManifest(), name));
|
||||||
|
else
|
||||||
|
return provider.createUpdateTask(profile.getDependency(), name, zipFile, modpack);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void toVersionSetting(MultiMCInstanceConfiguration c, VersionSetting vs) {
|
public static void toVersionSetting(MultiMCInstanceConfiguration c, VersionSetting vs) {
|
||||||
@@ -276,6 +280,24 @@ public final class ModpackHelper {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void applyCommandAndJvmSettings(MultiMCInstanceConfiguration c, VersionSetting vs) {
|
||||||
|
if (c.isOverrideCommands()) {
|
||||||
|
vs.setWrapper(Lang.nonNull(c.getWrapperCommand(), ""));
|
||||||
|
vs.setPreLaunchCommand(Lang.nonNull(c.getPreLaunchCommand(), ""));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (c.isOverrideJavaArgs()) {
|
||||||
|
vs.setJavaArgs(Lang.nonNull(c.getJvmArgs(), ""));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static Task<Void> createMultiMCPostUpdateTask(Profile profile, MultiMCInstanceConfiguration manifest, String version) {
|
||||||
|
return Task.runAsync(Schedulers.javafx(), () -> {
|
||||||
|
VersionSetting vs = Objects.requireNonNull(profile.getRepository().specializeVersionSetting(version));
|
||||||
|
ModpackHelper.applyCommandAndJvmSettings(manifest, vs);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
private static Task<Void> createMultiMCPostInstallTask(Profile profile, MultiMCInstanceConfiguration manifest, String version) {
|
private static Task<Void> createMultiMCPostInstallTask(Profile profile, MultiMCInstanceConfiguration manifest, String version) {
|
||||||
return Task.runAsync(Schedulers.javafx(), () -> {
|
return Task.runAsync(Schedulers.javafx(), () -> {
|
||||||
VersionSetting vs = Objects.requireNonNull(profile.getRepository().specializeVersionSetting(version));
|
VersionSetting vs = Objects.requireNonNull(profile.getRepository().specializeVersionSetting(version));
|
||||||
|
|||||||
Reference in New Issue
Block a user