瀏覽代碼

[可视化mod列表出错...]搜索Sand Filter时必报错
Fixes #5255

hadesanc1 1 年之前
父節點
當前提交
81cf8c1901
共有 1 個文件被更改,包括 12 次插入 和 2 次删除
  1. 12 2
      Plain Craft Launcher 2/Modules/Minecraft/ModComp.vb

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

@@ -434,7 +434,10 @@
         Public Function ToCompItem(ShowMcVersionDesc As Boolean, ShowLoaderDesc As Boolean) As MyCompItem
         Public Function ToCompItem(ShowMcVersionDesc As Boolean, ShowLoaderDesc As Boolean) As MyCompItem
             '获取版本描述
             '获取版本描述
             Dim GameVersionDescription As String
             Dim GameVersionDescription As String
-            If GameVersions Is Nothing OrElse Not GameVersions.Any() Then
+            Dim AllSnapshot As Boolean = GameVersions.All(Function(v) RegexCheck(v, "[0-9]{2}w[0-9]{2}[a-z]{1}"))
+            If AllSnapshot Then
+                GameVersionDescription = "仅快照版本"
+            ElseIf GameVersions Is Nothing OrElse Not GameVersions.Any() Then
                 GameVersionDescription = "未知"
                 GameVersionDescription = "未知"
             Else
             Else
                 Dim SpaVersions As New List(Of String)
                 Dim SpaVersions As New List(Of String)
@@ -493,12 +496,19 @@
                     ModLoaderDescriptionFull = "仅 " & ModLoadersForDesc.Single.ToString
                     ModLoaderDescriptionFull = "仅 " & ModLoadersForDesc.Single.ToString
                     ModLoaderDescriptionPart = ModLoadersForDesc.Single.ToString
                     ModLoaderDescriptionPart = ModLoadersForDesc.Single.ToString
                 Case Else
                 Case Else
-                    If ModLoaders.Contains(CompModLoaderType.Forge) AndAlso
+                    If ModLoaders.Contains(CompModLoaderType.Forge) AndAlso Not AllSnapshot AndAlso
                        (GameVersions.Max < 14 OrElse ModLoaders.Contains(CompModLoaderType.Fabric)) AndAlso
                        (GameVersions.Max < 14 OrElse ModLoaders.Contains(CompModLoaderType.Fabric)) AndAlso
                        (GameVersions.Max < 20 OrElse ModLoaders.Contains(CompModLoaderType.NeoForge)) AndAlso
                        (GameVersions.Max < 20 OrElse ModLoaders.Contains(CompModLoaderType.NeoForge)) AndAlso
                        (GameVersions.Max < 14 OrElse ModLoaders.Contains(CompModLoaderType.Quilt) OrElse Setup.Get("ToolDownloadIgnoreQuilt")) Then
                        (GameVersions.Max < 14 OrElse ModLoaders.Contains(CompModLoaderType.Quilt) OrElse Setup.Get("ToolDownloadIgnoreQuilt")) Then
                         ModLoaderDescriptionFull = "任意"
                         ModLoaderDescriptionFull = "任意"
                         ModLoaderDescriptionPart = ""
                         ModLoaderDescriptionPart = ""
+                    ElseIf AllSnapshot AndAlso
+                        ModLoaders.Contains(CompModLoaderType.Forge) AndAlso
+                        ModLoaders.Contains(CompModLoaderType.Fabric) AndAlso
+                        ModLoaders.Contains(CompModLoaderType.NeoForge) AndAlso
+                        (ModLoaders.Contains(CompModLoaderType.Quilt) OrElse Setup.Get("ToolDownloadIgnoreQuilt")) Then
+                        ModLoaderDescriptionFull = "任意"
+                        ModLoaderDescriptionPart = ""
                     Else
                     Else
                         ModLoaderDescriptionFull = ModLoadersForDesc.Join(" / ")
                         ModLoaderDescriptionFull = ModLoadersForDesc.Join(" / ")
                         ModLoaderDescriptionPart = ModLoadersForDesc.Join(" / ")
                         ModLoaderDescriptionPart = ModLoadersForDesc.Join(" / ")