From f9a39f1c907ad184a1a830ad4d3571df6d01ea00 Mon Sep 17 00:00:00 2001 From: Glavo Date: Sun, 12 Oct 2025 20:57:47 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=AF=B9=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E8=AF=86=E5=88=AB=E7=9A=84=E6=A8=A1=E7=BB=84=E7=9A=84=E6=8F=90?= =?UTF-8?q?=E7=A4=BA=20(#4659)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jackhuang/hmcl/ui/versions/ModListPageSkin.java | 10 ++++++---- HMCL/src/main/resources/assets/lang/I18N.properties | 1 + HMCL/src/main/resources/assets/lang/I18N_zh.properties | 1 + .../main/resources/assets/lang/I18N_zh_CN.properties | 1 + 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/ModListPageSkin.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/ModListPageSkin.java index f3e6c1007..c64ce176b 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/ModListPageSkin.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/ModListPageSkin.java @@ -631,6 +631,8 @@ final class ModListPageSkin extends SkinBase { LocalModFile modInfo = dataItem.getModInfo(); ModTranslations.Mod modTranslations = dataItem.getModTranslations(); + ModLoaderType modLoaderType = modInfo.getModLoaderType(); + dataItem.loadIcon(imageView, new WeakReference<>(this.itemProperty())); String displayName = modInfo.getName(); @@ -656,16 +658,16 @@ final class ModListPageSkin extends SkinBase { content.setTitle(displayName); StringJoiner joiner = new StringJoiner(" | "); - - if (StringUtils.isNotBlank(modInfo.getId())) + if (modLoaderType != ModLoaderType.UNKNOWN && StringUtils.isNotBlank(modInfo.getId())) joiner.add(modInfo.getId()); joiner.add(FileUtils.getName(modInfo.getFile())); content.setSubtitle(joiner.toString()); - ModLoaderType modLoaderType = modInfo.getModLoaderType(); - if (!ModListPageSkin.this.getSkinnable().supportedLoaders.contains(modLoaderType)) { + if (modLoaderType == ModLoaderType.UNKNOWN) { + content.addTagWarning(i18n("mods.unknown")); + } else if (!ModListPageSkin.this.getSkinnable().supportedLoaders.contains(modLoaderType)) { warning.add(i18n("mods.warning.loader_mismatch")); switch (dataItem.getModInfo().getModLoaderType()) { case FORGE: diff --git a/HMCL/src/main/resources/assets/lang/I18N.properties b/HMCL/src/main/resources/assets/lang/I18N.properties index 96ab6b99e..823a2eeb2 100644 --- a/HMCL/src/main/resources/assets/lang/I18N.properties +++ b/HMCL/src/main/resources/assets/lang/I18N.properties @@ -1093,6 +1093,7 @@ mods.update_modpack_mod.warning=Updating mods in a modpack can lead to irreparab mods.warning.loader_mismatch=Mod loader mismatch mods.install=Install mods.save_as=Save As +mods.unknown=Unknown Mod nbt.entries=%s entries nbt.open.failed=Failed to open file diff --git a/HMCL/src/main/resources/assets/lang/I18N_zh.properties b/HMCL/src/main/resources/assets/lang/I18N_zh.properties index 8bc28865a..96eeab477 100644 --- a/HMCL/src/main/resources/assets/lang/I18N_zh.properties +++ b/HMCL/src/main/resources/assets/lang/I18N_zh.properties @@ -890,6 +890,7 @@ mods.update_modpack_mod.warning=更新模組包中的模組可能導致模組包 mods.warning.loader_mismatch=模組載入器不匹配 mods.install=安裝到目前實例 mods.save_as=下載到本機目錄 +mods.unknown=未知模組 nbt.entries=%s 個條目 nbt.open.failed=開啟檔案失敗 diff --git a/HMCL/src/main/resources/assets/lang/I18N_zh_CN.properties b/HMCL/src/main/resources/assets/lang/I18N_zh_CN.properties index 1a84a66cc..9596687c6 100644 --- a/HMCL/src/main/resources/assets/lang/I18N_zh_CN.properties +++ b/HMCL/src/main/resources/assets/lang/I18N_zh_CN.properties @@ -900,6 +900,7 @@ mods.update_modpack_mod.warning=更新整合包中的模组可能导致整合包 mods.warning.loader_mismatch=模组加载器不匹配 mods.install=安装到当前实例 mods.save_as=下载到本地文件夹 +mods.unknown=未知模组 nbt.entries=%s 个条目 nbt.open.failed=打开文件失败