diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/multimc/MultiMCInstancePatch.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/multimc/MultiMCInstancePatch.java index 84951d4bff..f64a2b6601 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/multimc/MultiMCInstancePatch.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/multimc/MultiMCInstancePatch.java @@ -21,13 +21,13 @@ import org.jackhuang.hmcl.game.Library; import org.jackhuang.hmcl.util.Immutable; import org.jackhuang.hmcl.util.Lang; +import org.jetbrains.annotations.Nullable; import java.util.ArrayList; import java.util.Collections; import java.util.List; /** - * * @author huangyuhui */ @Immutable @@ -35,6 +35,7 @@ public final class MultiMCInstancePatch { private final String name; private final String version; + private final int order; @SerializedName("mcVersion") private final String gameVersion; @@ -42,24 +43,25 @@ public final class MultiMCInstancePatch { private final String fileId; @SerializedName("+tweakers") + @Nullable private final List tweakers; @SerializedName("+jvmArgs") + @Nullable private final List jvmArgs; @SerializedName("+libraries") + @Nullable private final List _libraries; @SerializedName("libraries") + @Nullable private final List libraries; - public MultiMCInstancePatch() { - this("", "", "", "", "", Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), Collections.emptyList()); - } - - public MultiMCInstancePatch(String name, String version, String gameVersion, String mainClass, String fileId, List tweakers, List jvmArgs, List _libraries, List libraries) { + public MultiMCInstancePatch(String name, String version, int order, String gameVersion, String mainClass, String fileId, List tweakers, List jvmArgs, List _libraries, List libraries) { this.name = name; this.version = version; + this.order = order; this.gameVersion = gameVersion; this.mainClass = mainClass; this.fileId = fileId; @@ -77,6 +79,10 @@ public String getVersion() { return version; } + public int getOrder() { + return order; + } + public String getGameVersion() { return gameVersion; } @@ -90,15 +96,14 @@ public String getFileId() { } public List getTweakers() { - return Collections.unmodifiableList(tweakers); + return tweakers != null ? Collections.unmodifiableList(tweakers) : Collections.emptyList(); } public List getJvmArgs() { - return jvmArgs; + return jvmArgs != null ? Collections.unmodifiableList(jvmArgs) : Collections.emptyList(); } public List getLibraries() { return Lang.merge(_libraries, libraries); } - } diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/multimc/MultiMCModpackInstallTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/multimc/MultiMCModpackInstallTask.java index 13dd51ee11..ba16a28dac 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/multimc/MultiMCModpackInstallTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/multimc/MultiMCModpackInstallTask.java @@ -191,7 +191,8 @@ public void execute() throws Exception { arguments.add(arg); } - Version patch = new Version(multiMCPatch.getName(), multiMCPatch.getVersion(), 1, new Arguments().addGameArguments(arguments).addJVMArguments(multiMCPatch.getJvmArgs()), multiMCPatch.getMainClass(), multiMCPatch.getLibraries()); + // 30000: Magic Number. Search 30000 directly in HMCL for more information. + Version patch = new Version(multiMCPatch.getName(), multiMCPatch.getVersion(), multiMCPatch.getOrder() + 30000, new Arguments().addGameArguments(arguments).addJVMArguments(multiMCPatch.getJvmArgs()), multiMCPatch.getMainClass(), multiMCPatch.getLibraries()); version = version.addPatch(patch); } }