From 68c8a30bd74f142d002ecd12a000761d09889547 Mon Sep 17 00:00:00 2001 From: Glavo Date: Fri, 23 May 2025 18:08:57 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=BC=E5=87=BA=E6=95=B4=E5=90=88=E5=8C=85?= =?UTF-8?q?=E6=97=B6=E5=B0=86=E5=90=AF=E5=8A=A8=E5=99=A8=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E9=9B=86=E4=B8=AD=E5=AD=98=E6=94=BE=E5=9C=A8=20.hmcl=20?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=A4=B9=E4=B8=AD=20(#3930)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jackhuang/hmcl/setting/FontManager.java | 10 ++++--- .../hmcl/ui/export/ExportWizardProvider.java | 29 ++++++++++++++----- 2 files changed, 27 insertions(+), 12 deletions(-) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/setting/FontManager.java b/HMCL/src/main/java/org/jackhuang/hmcl/setting/FontManager.java index 346f18997..47c9e68da 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/setting/FontManager.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/setting/FontManager.java @@ -40,6 +40,10 @@ import static org.jackhuang.hmcl.util.logging.Logger.LOG; */ public final class FontManager { + public static final String[] FONT_EXTENSIONS = { + "ttf", "otf", "woff" + }; + public static final double DEFAULT_FONT_SIZE = 12.0f; private static final Lazy DEFAULT_FONT = new Lazy<>(() -> { @@ -92,10 +96,8 @@ public final class FontManager { } private static Font tryLoadDefaultFont(Path dir) { - String[] fileNames = {"font.ttf", "font.otf", "font.woff"}; - - for (String fileName : fileNames) { - Path path = dir.resolve(fileName); + for (String extension : FONT_EXTENSIONS) { + Path path = dir.resolve("font." + extension); if (Files.isRegularFile(path)) { try { Font font = Font.loadFont(path.toUri().toURL().toExternalForm(), DEFAULT_FONT_SIZE); diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/export/ExportWizardProvider.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/export/ExportWizardProvider.java index aa6c04bd6..292fcb516 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/export/ExportWizardProvider.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/export/ExportWizardProvider.java @@ -18,6 +18,7 @@ package org.jackhuang.hmcl.ui.export; import javafx.scene.Node; +import org.jackhuang.hmcl.Metadata; import org.jackhuang.hmcl.mod.ModAdviser; import org.jackhuang.hmcl.mod.ModpackExportInfo; import org.jackhuang.hmcl.mod.mcbbs.McbbsModpackExportTask; @@ -25,7 +26,7 @@ import org.jackhuang.hmcl.mod.multimc.MultiMCInstanceConfiguration; import org.jackhuang.hmcl.mod.multimc.MultiMCModpackExportTask; import org.jackhuang.hmcl.mod.server.ServerModpackExportTask; import org.jackhuang.hmcl.setting.Config; -import org.jackhuang.hmcl.setting.ConfigHolder; +import org.jackhuang.hmcl.setting.FontManager; import org.jackhuang.hmcl.setting.Profile; import org.jackhuang.hmcl.setting.VersionSetting; import org.jackhuang.hmcl.task.Task; @@ -123,19 +124,31 @@ public final class ExportWizardProvider implements WizardProvider { exported.setPreferredLoginType(config().getPreferredLoginType()); exported.getAuthlibInjectorServers().setAll(config().getAuthlibInjectorServers()); - zip.putTextFile(exported.toJson(), ConfigHolder.CONFIG_FILENAME); + zip.putTextFile(exported.toJson(), ".hmcl/hmcl.json"); zip.putFile(tempModpack, "modpack.zip"); - File bg = new File("bg").getAbsoluteFile(); - if (bg.isDirectory()) - zip.putDirectory(bg.toPath(), "bg"); + Path bg = Metadata.HMCL_CURRENT_DIRECTORY.resolve("bg"); + if (!Files.isDirectory(bg)) + bg = Metadata.CURRENT_DIRECTORY.resolve("bg"); + if (Files.isDirectory(bg)) + zip.putDirectory(bg, ".hmcl/bg"); for (String extension : FXUtils.IMAGE_EXTENSIONS) { String fileName = "background." + extension; + Path background = Metadata.HMCL_CURRENT_DIRECTORY.resolve(fileName); + if (!Files.isRegularFile(background)) + background = Metadata.CURRENT_DIRECTORY.resolve(fileName); + if (Files.isRegularFile(background)) + zip.putFile(background, ".hmcl/" + fileName); + } - File background = new File(fileName).getAbsoluteFile(); - if (background.isFile()) - zip.putFile(background, "background.png"); + for (String extension : FontManager.FONT_EXTENSIONS) { + String fileName = "font." + extension; + Path font = Metadata.HMCL_CURRENT_DIRECTORY.resolve(fileName); + if (!Files.isRegularFile(font)) + font = Metadata.CURRENT_DIRECTORY.resolve(fileName); + if (Files.isRegularFile(font)) + zip.putFile(font, ".hmcl/" + fileName); } zip.putFile(launcherJar, launcherJar.getFileName().toString());