Просмотр исходного кода

fix: 修复了查看数据包工程时崩溃的问题,但可能会炸掉点别的东西,需要测试

Pigeon0v0 2 лет назад
Родитель
Сommit
9d3be21090

+ 5 - 1
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

+ 8 - 0
Plain Craft Launcher 2/Modules/Minecraft/ModComp.vb

@@ -118,6 +118,10 @@
         ''' </summary>
         Public ReadOnly Type As CompType
         ''' <summary>
+        ''' 是否为 Mod / 数据包融合工程。
+        ''' </summary>
+        Public ReadOnly IsMix As Boolean
+        ''' <summary>
         ''' 工程的短名。例如 technical-enchant。
         ''' </summary>
         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)

+ 7 - 1
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