Skip to content

Commit

Permalink
Fix: MultiMC json-patch priority
Browse files Browse the repository at this point in the history
  • Loading branch information
burningtnt committed Jan 28, 2025
1 parent 9545b7f commit 259fed6
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,45 +21,47 @@
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
public final class MultiMCInstancePatch {

private final String name;
private final String version;
private final int order;

@SerializedName("mcVersion")
private final String gameVersion;
private final String mainClass;
private final String fileId;

@SerializedName("+tweakers")
@Nullable
private final List<String> tweakers;

@SerializedName("+jvmArgs")
@Nullable
private final List<String> jvmArgs;

@SerializedName("+libraries")
@Nullable
private final List<Library> _libraries;

@SerializedName("libraries")
@Nullable
private final List<Library> 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<String> tweakers, List<String> jvmArgs, List<Library> _libraries, List<Library> libraries) {
public MultiMCInstancePatch(String name, String version, int order, String gameVersion, String mainClass, String fileId, List<String> tweakers, List<String> jvmArgs, List<Library> _libraries, List<Library> libraries) {
this.name = name;
this.version = version;
this.order = order;
this.gameVersion = gameVersion;
this.mainClass = mainClass;
this.fileId = fileId;
Expand All @@ -77,6 +79,10 @@ public String getVersion() {
return version;
}

public int getOrder() {
return order;
}

public String getGameVersion() {
return gameVersion;
}
Expand All @@ -90,15 +96,14 @@ public String getFileId() {
}

public List<String> getTweakers() {
return Collections.unmodifiableList(tweakers);
return tweakers != null ? Collections.unmodifiableList(tweakers) : Collections.emptyList();
}

public List<String> getJvmArgs() {
return jvmArgs;
return jvmArgs != null ? Collections.unmodifiableList(jvmArgs) : Collections.emptyList();
}

public List<Library> getLibraries() {
return Lang.merge(_libraries, libraries);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
}
Expand Down

0 comments on commit 259fed6

Please sign in to comment.