Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 10 additions & 8 deletions src/main/java/org/ceciliastudio/modpackconverter/Converter.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package org.ceciliastudio.modpackconverter;

import org.ceciliastudio.modpackconverter.util.FileUtil;
import org.ceciliastudio.modpackconverter.util.I18n;
import org.ceciliastudio.modpackconverter.util.Logger;
import org.ceciliastudio.modpackconverter.util.ZipUtil;

import java.io.IOException;
Expand Down Expand Up @@ -63,21 +65,21 @@ public static void convert(Path modpackPath, Path destination) throws IOExceptio
Path mrpackDirectory = Files.createDirectory(tempDirectory.resolve("mrpack"));
String name = modpackPath.getFileName().toString().replaceFirst("\\.[^.]+$", "");
try {
System.out.println("正在解压整合包文件……");
Logger.info("log.extracting_modpack");
ZipUtil.unzip(modpackPath, tempDirectory);
System.out.println("正在查找实例……");
Logger.info("log.searching_instance");
Optional<Path> instanceRoot = findInstanceRoot(tempDirectory);
if (instanceRoot.isEmpty()) {
System.err.println("未找到符合要求的实例目录");
throw new RuntimeException("未找到符合要求的实例目录。");
Logger.error("log.no_instances_was_found");
throw new RuntimeException(I18n.localized("log.no_instances_was_found"));
}
System.out.println("正在生成 Modrinth 整合包……");
Logger.info("log.generating_mrpack");
generateModrinthManifest(name, "未知", "未知", Map.of("minecraft", "1.21"), mrpackDirectory.resolve("modrinth.index.json"));
System.out.println("正在拷贝文件……");
Logger.info("log.copying_files");
copyInstanceFiles(instanceRoot.get(), mrpackDirectory.resolve("overrides"));
System.out.println("正在创建压缩包……");
Logger.info("log.creating_archive");
ZipUtil.zip(mrpackDirectory, destination);
System.out.println("整合包转换完成");
Logger.info("log.modpack_convert_finished");
} finally {
Files.walkFileTree(tempDirectory, new SimpleFileVisitor<>() {
@Override
Expand Down
12 changes: 12 additions & 0 deletions src/main/java/org/ceciliastudio/modpackconverter/util/I18n.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package org.ceciliastudio.modpackconverter.util;

import java.util.Locale;
import java.util.ResourceBundle;

public class I18n {
public static final ResourceBundle BUNDLE = ResourceBundle.getBundle("I18n", Locale.getDefault());

public static String localized(String key) {
return BUNDLE.getString(key);
}
}
14 changes: 14 additions & 0 deletions src/main/java/org/ceciliastudio/modpackconverter/util/Logger.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package org.ceciliastudio.modpackconverter.util;

public class Logger {
public static void info(String key) {
System.out.println(I18n.localized(key));
}

public static void error(String key) {
System.err.println(I18n.localized(key));
}

private Logger() {
}
}
7 changes: 7 additions & 0 deletions src/main/resources/I18n.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
log.extracting_modpack=Extracting the modpack file...
log.searching_instance=Searching for instances...
log.no_instances_was_found=No matching instance directory found
log.generating_mrpack=Generating Modrinth modpack...
log.copying_files=Copying files...
log.creating_archive=Creating archive...
log.modpack_convert_finished=Modpack conversion finished
7 changes: 7 additions & 0 deletions src/main/resources/I18n_zh_CN.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
log.extracting_modpack=正在解压整合包文件……
log.searching_instance=正在查找实例……
log.no_instances_was_found=未找到符合要求的实例目录
log.generating_mrpack=正在生成 Modrinth 整合包……
log.copying_files=正在拷贝文件……
log.creating_archive=正在创建压缩包……
log.modpack_convert_finished=整合包转换完成