diff --git a/Plain Craft Launcher 2/FormMain.xaml.vb b/Plain Craft Launcher 2/FormMain.xaml.vb
index 17a6a42..cbbeabd 100644
--- a/Plain Craft Launcher 2/FormMain.xaml.vb
+++ b/Plain Craft Launcher 2/FormMain.xaml.vb
@@ -1099,7 +1099,11 @@ Install:
Case CompType.ModPack
Return "整合包下载 - " & Project.TranslatedName
Case CompType.DataPack
- Return "数据包下载 - " & Project.TranslatedName
+ If Project.IsMix Then
+ Return "Mod / 数据包下载 - " & Project.TranslatedName
+ Else
+ Return "数据包下载 - " & Project.TranslatedName
+ End If
Case Else 'CompType.ResourcePack
Return "资源包下载 - " & Project.TranslatedName
End Select
diff --git a/Plain Craft Launcher 2/Modules/Minecraft/ModComp.vb b/Plain Craft Launcher 2/Modules/Minecraft/ModComp.vb
index 1e7c7f5..c600a0b 100644
--- a/Plain Craft Launcher 2/Modules/Minecraft/ModComp.vb
+++ b/Plain Craft Launcher 2/Modules/Minecraft/ModComp.vb
@@ -118,6 +118,10 @@
'''
Public ReadOnly Type As CompType
'''
+ ''' 是否为 Mod / 数据包融合工程。
+ '''
+ Public ReadOnly IsMix As Boolean
+ '''
''' 工程的短名。例如 technical-enchant。
'''
Public ReadOnly Slug As String
@@ -365,6 +369,10 @@
Case "resourcepack" : Type = CompType.ResourcePack
Case "datapack" : Type = CompType.DataPack
End Select
+ If Data("categories").ToArray.Contains("datapack") Then 'Modrinth 上的数据包由于未知原因,返回的 project_type 为 mod,这里做兜底处理
+ Type = CompType.DataPack
+ IsMix = Data("categories").ToArray.Contains("forge") OrElse Data("categories").ToArray.Contains("fabric") OrElse Data("categories").ToArray.Contains("neoforge") OrElse Data("categories").ToArray.Contains("quilt")
+ End If
'Tags & ModLoaders
Tags = New List(Of String)
ModLoaders = New List(Of CompModLoaderType)
diff --git a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadCompDetail.xaml.vb b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadCompDetail.xaml.vb
index 0302160..9333ea3 100644
--- a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadCompDetail.xaml.vb
+++ b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadCompDetail.xaml.vb
@@ -205,7 +205,13 @@
RunInNewThread(
Sub()
Try
- Dim Desc As String = If(Project.Type = CompType.ModPack, "整合包", If(Project.Type = CompType.Mod, "Mod ", "资源包"))
+ Dim Desc As String = "资源"
+ Select Case Project.Type
+ Case CompType.ModPack : Desc = "整合包"
+ Case CompType.Mod : Desc = "Mod "
+ Case CompType.ResourcePack : Desc = "资源包"
+ Case CompType.DataPack : Desc = If(File.FileName.EndsWith(".jar"), "Mod ", "数据包") '有些项目同时包含 Mod 版本和数据包版本
+ End Select
'确认默认保存位置
Dim DefaultFolder As String = Nothing
If Project.Type = CompType.Mod Then