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=打开文件失败