Skip to content

Commit 6fd6022

Browse files
CiiLuGlavo
andauthored
导出带启动器 Modrinth 整合包使用 zip 格式 & 内部改为 mrpack (#5195)
Co-authored-by: Glavo <[email protected]>
1 parent 83782f5 commit 6fd6022

File tree

3 files changed

+26
-12
lines changed

3 files changed

+26
-12
lines changed

HMCL/src/main/java/org/jackhuang/hmcl/ui/export/ExportWizardProvider.java

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@
2222
import org.jackhuang.hmcl.mod.ModAdviser;
2323
import org.jackhuang.hmcl.mod.ModpackExportInfo;
2424
import org.jackhuang.hmcl.mod.mcbbs.McbbsModpackExportTask;
25+
import org.jackhuang.hmcl.mod.modrinth.ModrinthModpackExportTask;
2526
import org.jackhuang.hmcl.mod.multimc.MultiMCInstanceConfiguration;
2627
import org.jackhuang.hmcl.mod.multimc.MultiMCModpackExportTask;
2728
import org.jackhuang.hmcl.mod.server.ServerModpackExportTask;
28-
import org.jackhuang.hmcl.mod.modrinth.ModrinthModpackExportTask;
2929
import org.jackhuang.hmcl.setting.Config;
3030
import org.jackhuang.hmcl.setting.FontManager;
3131
import org.jackhuang.hmcl.setting.Profile;
@@ -41,7 +41,9 @@
4141

4242
import java.nio.file.Files;
4343
import java.nio.file.Path;
44-
import java.util.*;
44+
import java.util.Collection;
45+
import java.util.Collections;
46+
import java.util.List;
4547

4648
import static org.jackhuang.hmcl.setting.ConfigHolder.config;
4749

@@ -132,7 +134,9 @@ public void execute() throws Exception {
132134
exported.getAuthlibInjectorServers().setAll(config().getAuthlibInjectorServers());
133135

134136
zip.putTextFile(exported.toJson(), ".hmcl/hmcl.json");
135-
zip.putFile(tempModpack, "modpack.zip");
137+
zip.putFile(tempModpack, ModpackTypeSelectionPage.MODPACK_TYPE_MODRINTH.equals(modpackType)
138+
? "modpack.mrpack"
139+
: "modpack.zip");
136140

137141
Path bg = Metadata.HMCL_CURRENT_DIRECTORY.resolve("background");
138142
if (!Files.isDirectory(bg))
@@ -263,10 +267,10 @@ private Task<?> exportAsModrinth(ModpackExportInfo exportInfo, Path modpackFile)
263267
@Override
264268
public void execute() {
265269
dependency = new ModrinthModpackExportTask(
266-
profile.getRepository(),
267-
version,
268-
exportInfo,
269-
modpackFile
270+
profile.getRepository(),
271+
version,
272+
exportInfo,
273+
modpackFile
270274
);
271275
}
272276

HMCL/src/main/java/org/jackhuang/hmcl/ui/export/ModpackInfoPage.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ public ModpackInfoPage(WizardController controller, HMCLGameRepository gameRepos
109109
private void onNext() {
110110
FileChooser fileChooser = new FileChooser();
111111
fileChooser.setTitle(i18n("modpack.wizard.step.initialization.save"));
112-
if (controller.getSettings().get(MODPACK_TYPE) == MODPACK_TYPE_MODRINTH) {
112+
if (!packWithLauncher.get() && controller.getSettings().get(MODPACK_TYPE) == MODPACK_TYPE_MODRINTH) {
113113
fileChooser.getExtensionFilters().add(new FileChooser.ExtensionFilter(i18n("modpack"), "*.mrpack"));
114114
fileChooser.setInitialFileName(name.get() + (OperatingSystem.CURRENT_OS == OperatingSystem.MACOS ? "" : ".mrpack"));
115115
} else {

HMCL/src/main/java/org/jackhuang/hmcl/ui/main/RootPage.java

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -293,11 +293,21 @@ private void onRefreshedVersions(HMCLGameRepository repository) {
293293
checkedModpack = true;
294294

295295
if (repository.getVersionCount() == 0) {
296-
Path modpackFile = Metadata.CURRENT_DIRECTORY.resolve("modpack.zip");
297-
if (Files.exists(modpackFile)) {
296+
Path zipModpack = Metadata.CURRENT_DIRECTORY.resolve("modpack.zip");
297+
Path mrpackModpack = Metadata.CURRENT_DIRECTORY.resolve("modpack.mrpack");
298+
299+
Path modpackFile;
300+
if (Files.exists(zipModpack)) {
301+
modpackFile = zipModpack;
302+
} else if (Files.exists(mrpackModpack)) {
303+
modpackFile = mrpackModpack;
304+
} else {
305+
modpackFile = null;
306+
}
307+
308+
if (modpackFile != null) {
298309
Task.supplyAsync(() -> CompressingUtils.findSuitableEncoding(modpackFile))
299-
.thenApplyAsync(
300-
encoding -> ModpackHelper.readModpackManifest(modpackFile, encoding))
310+
.thenApplyAsync(encoding -> ModpackHelper.readModpackManifest(modpackFile, encoding))
301311
.thenApplyAsync(modpack -> ModpackHelper
302312
.getInstallTask(repository.getProfile(), modpackFile, modpack.getName(), modpack, null)
303313
.executor())

0 commit comments

Comments
 (0)