From d13c84e10acbc083d5418f158866f25b96d6cc12 Mon Sep 17 00:00:00 2001 From: Hylfrd Date: Sun, 9 Aug 2026 16:54:37 +0800 Subject: [PATCH 1/2] Fix MCBBS modpack export OOM --- .../hmcl/modpack/mcbbs/McbbsModpackExportTask.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/modpack/mcbbs/McbbsModpackExportTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/modpack/mcbbs/McbbsModpackExportTask.java index bdbc6832629..407acb88c9e 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/modpack/mcbbs/McbbsModpackExportTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/modpack/mcbbs/McbbsModpackExportTask.java @@ -35,6 +35,9 @@ import java.io.File; import java.io.IOException; +import java.io.OutputStreamWriter; +import java.io.Writer; +import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; import java.util.ArrayList; @@ -67,6 +70,9 @@ public McbbsModpackExportTask(DefaultGameRepository repository, GameInstanceID i }); } + /// Exports the selected game files and manifests to the target archive. + /// + /// @throws Exception if the instance cannot be analyzed or the archive cannot be written @Override public void execute() throws Exception { ArrayList blackList = new ArrayList<>(ModAdviser.MODPACK_BLACK_LIST); @@ -123,7 +129,9 @@ public void execute() throws Exception { McbbsModpackManifest.LaunchInfo launchInfo = new McbbsModpackManifest.LaunchInfo(info.getMinMemory(), info.getSupportedJavaVersions(), StringUtils.tokenize(info.getLaunchArguments()), StringUtils.tokenize(info.getJavaArguments())); McbbsModpackManifest mcbbsManifest = new McbbsModpackManifest(McbbsModpackManifest.MANIFEST_TYPE, 2, info.getName(), info.getVersion(), info.getAuthor(), info.getDescription(), info.getFileApi() == null ? null : StringUtils.removeSuffix(info.getFileApi(), "/"), info.getUrl(), info.isForceUpdate(), origins, addons, libraries, files, settings, launchInfo); - zip.putTextFile(JsonUtils.GSON.toJson(mcbbsManifest), "mcbbs.packmeta"); + try (Writer writer = new OutputStreamWriter(zip.putStream("mcbbs.packmeta"), StandardCharsets.UTF_8)) { + JsonUtils.GSON.toJson(mcbbsManifest, writer); + } // CurseForge manifest List modLoaders = new ArrayList<>(); From ff8602796d48f5e1c84e70241edfe56c6ee60786 Mon Sep 17 00:00:00 2001 From: Hylfrd Date: Sun, 9 Aug 2026 19:00:11 +0800 Subject: [PATCH 2/2] Update McbbsModpackExportTask.java --- .../jackhuang/hmcl/modpack/mcbbs/McbbsModpackExportTask.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/modpack/mcbbs/McbbsModpackExportTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/modpack/mcbbs/McbbsModpackExportTask.java index 407acb88c9e..75b50afa470 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/modpack/mcbbs/McbbsModpackExportTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/modpack/mcbbs/McbbsModpackExportTask.java @@ -70,9 +70,8 @@ public McbbsModpackExportTask(DefaultGameRepository repository, GameInstanceID i }); } - /// Exports the selected game files and manifests to the target archive. - /// - /// @throws Exception if the instance cannot be analyzed or the archive cannot be written +/// Exports the selected game files and manifests to the target archive. + @Override public void execute() throws Exception { ArrayList blackList = new ArrayList<>(ModAdviser.MODPACK_BLACK_LIST);