Skip to content

Commit 68c8a30

Browse files
authored
导出整合包时将启动器配置集中存放在 .hmcl 文件夹中 (#3930)
1 parent bb37e3f commit 68c8a30

2 files changed

Lines changed: 27 additions & 12 deletions

File tree

HMCL/src/main/java/org/jackhuang/hmcl/setting/FontManager.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,10 @@
4040
*/
4141
public final class FontManager {
4242

43+
public static final String[] FONT_EXTENSIONS = {
44+
"ttf", "otf", "woff"
45+
};
46+
4347
public static final double DEFAULT_FONT_SIZE = 12.0f;
4448

4549
private static final Lazy<Font> DEFAULT_FONT = new Lazy<>(() -> {
@@ -92,10 +96,8 @@ public final class FontManager {
9296
}
9397

9498
private static Font tryLoadDefaultFont(Path dir) {
95-
String[] fileNames = {"font.ttf", "font.otf", "font.woff"};
96-
97-
for (String fileName : fileNames) {
98-
Path path = dir.resolve(fileName);
99+
for (String extension : FONT_EXTENSIONS) {
100+
Path path = dir.resolve("font." + extension);
99101
if (Files.isRegularFile(path)) {
100102
try {
101103
Font font = Font.loadFont(path.toUri().toURL().toExternalForm(), DEFAULT_FONT_SIZE);

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

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,15 @@
1818
package org.jackhuang.hmcl.ui.export;
1919

2020
import javafx.scene.Node;
21+
import org.jackhuang.hmcl.Metadata;
2122
import org.jackhuang.hmcl.mod.ModAdviser;
2223
import org.jackhuang.hmcl.mod.ModpackExportInfo;
2324
import org.jackhuang.hmcl.mod.mcbbs.McbbsModpackExportTask;
2425
import org.jackhuang.hmcl.mod.multimc.MultiMCInstanceConfiguration;
2526
import org.jackhuang.hmcl.mod.multimc.MultiMCModpackExportTask;
2627
import org.jackhuang.hmcl.mod.server.ServerModpackExportTask;
2728
import org.jackhuang.hmcl.setting.Config;
28-
import org.jackhuang.hmcl.setting.ConfigHolder;
29+
import org.jackhuang.hmcl.setting.FontManager;
2930
import org.jackhuang.hmcl.setting.Profile;
3031
import org.jackhuang.hmcl.setting.VersionSetting;
3132
import org.jackhuang.hmcl.task.Task;
@@ -123,19 +124,31 @@ public void execute() throws Exception {
123124
exported.setPreferredLoginType(config().getPreferredLoginType());
124125
exported.getAuthlibInjectorServers().setAll(config().getAuthlibInjectorServers());
125126

126-
zip.putTextFile(exported.toJson(), ConfigHolder.CONFIG_FILENAME);
127+
zip.putTextFile(exported.toJson(), ".hmcl/hmcl.json");
127128
zip.putFile(tempModpack, "modpack.zip");
128129

129-
File bg = new File("bg").getAbsoluteFile();
130-
if (bg.isDirectory())
131-
zip.putDirectory(bg.toPath(), "bg");
130+
Path bg = Metadata.HMCL_CURRENT_DIRECTORY.resolve("bg");
131+
if (!Files.isDirectory(bg))
132+
bg = Metadata.CURRENT_DIRECTORY.resolve("bg");
133+
if (Files.isDirectory(bg))
134+
zip.putDirectory(bg, ".hmcl/bg");
132135

133136
for (String extension : FXUtils.IMAGE_EXTENSIONS) {
134137
String fileName = "background." + extension;
138+
Path background = Metadata.HMCL_CURRENT_DIRECTORY.resolve(fileName);
139+
if (!Files.isRegularFile(background))
140+
background = Metadata.CURRENT_DIRECTORY.resolve(fileName);
141+
if (Files.isRegularFile(background))
142+
zip.putFile(background, ".hmcl/" + fileName);
143+
}
135144

136-
File background = new File(fileName).getAbsoluteFile();
137-
if (background.isFile())
138-
zip.putFile(background, "background.png");
145+
for (String extension : FontManager.FONT_EXTENSIONS) {
146+
String fileName = "font." + extension;
147+
Path font = Metadata.HMCL_CURRENT_DIRECTORY.resolve(fileName);
148+
if (!Files.isRegularFile(font))
149+
font = Metadata.CURRENT_DIRECTORY.resolve(fileName);
150+
if (Files.isRegularFile(font))
151+
zip.putFile(font, ".hmcl/" + fileName);
139152
}
140153

141154
zip.putFile(launcherJar, launcherJar.getFileName().toString());

0 commit comments

Comments
 (0)