Jelajahi Sumber

chores: 代码可读性和相关优化

Pigeon0v0 2 tahun lalu
induk
melakukan
4dba7c969c
1 mengubah file dengan 38 tambahan dan 34 penghapusan
  1. 38 34
      Plain Craft Launcher 2/Pages/PageDownload/ModDownloadLib.vb

+ 38 - 34
Plain Craft Launcher 2/Pages/PageDownload/ModDownloadLib.vb

@@ -1171,7 +1171,8 @@ Retry:
                 .RedirectStandardError = True,
                 .RedirectStandardError = True,
                 .RedirectStandardOutput = True
                 .RedirectStandardOutput = True
             }
             }
-            Log($"[Download] 开始安装 {If(IsNeoForge, "Neo", "")}Forge:" & Arguments)
+            Dim LoaderName As String = If(IsNeoForge, "NeoForge", "Forge")
+            Log($"[Download] 开始安装 {LoaderName}:" & Arguments)
             Dim process As New Process With {.StartInfo = Info}
             Dim process As New Process With {.StartInfo = Info}
             Dim LastResults As New Queue(Of String)
             Dim LastResults As New Queue(Of String)
             Using outputWaitHandle As New AutoResetEvent(False)
             Using outputWaitHandle As New AutoResetEvent(False)
@@ -1188,11 +1189,11 @@ Retry:
                             End If
                             End If
                         Catch ex As ObjectDisposedException
                         Catch ex As ObjectDisposedException
                         Catch ex As Exception
                         Catch ex As Exception
-                            Log(ex, $"读取 {If(IsNeoForge, "Neo", "")}Forge 安装器信息失败")
+                            Log(ex, $"读取 {LoaderName} 安装器信息失败")
                         End Try
                         End Try
                         Try
                         Try
                             If Task.State = LoadState.Aborted AndAlso Not process.HasExited Then
                             If Task.State = LoadState.Aborted AndAlso Not process.HasExited Then
-                                Log($"[Installer] 由于任务取消,已中止 {If(IsNeoForge, "Neo", "")}Forge 安装")
+                                Log($"[Installer] 由于任务取消,已中止 {LoaderName} 安装")
                                 process.Kill()
                                 process.Kill()
                             End If
                             End If
                         Catch
                         Catch
@@ -1211,11 +1212,11 @@ Retry:
                             End If
                             End If
                         Catch ex As ObjectDisposedException
                         Catch ex As ObjectDisposedException
                         Catch ex As Exception
                         Catch ex As Exception
-                            Log(ex, $"读取 {If(IsNeoForge, "Neo", "")}Forge 安装器错误信息失败")
+                            Log(ex, $"读取 {LoaderName} 安装器错误信息失败")
                         End Try
                         End Try
                         Try
                         Try
                             If Task.State = LoadState.Aborted AndAlso Not process.HasExited Then
                             If Task.State = LoadState.Aborted AndAlso Not process.HasExited Then
-                                Log($"[Installer] 由于任务取消,已中止 {If(IsNeoForge, "Neo", "")}Forge 安装")
+                                Log($"[Installer] 由于任务取消,已中止 {LoaderName} 安装")
                                 process.Kill()
                                 process.Kill()
                             End If
                             End If
                         Catch
                         Catch
@@ -1240,7 +1241,7 @@ Retry:
                     For i As Integer = Math.Max(0, LastResults.Count - 5) To LastResults.Count - 1 '最后 5 行
                     For i As Integer = Math.Max(0, LastResults.Count - 5) To LastResults.Count - 1 '最后 5 行
                         LastLines &= vbCrLf & LastResults(i)
                         LastLines &= vbCrLf & LastResults(i)
                     Next
                     Next
-                    Throw New Exception($"{If(IsNeoForge, "Neo", "")}Forge 安装器出错,日志结束部分为:" & LastLines)
+                    Throw New Exception($"{LoaderName} 安装器出错,日志结束部分为:" & LastLines)
                 End Using
                 End Using
             End Using
             End Using
         End SyncLock
         End SyncLock
@@ -1297,14 +1298,16 @@ Retry:
 
 
         '参数初始化
         '参数初始化
         Dim DownloadInfo = If(IsNeo, DownloadNeoInfo, DownloadForgeInfo)
         Dim DownloadInfo = If(IsNeo, DownloadNeoInfo, DownloadForgeInfo)
-        If DownloadNeoInfo Is Nothing AndAlso IsNeo Then          '兜底,有的时候 DownloadInfo 可能是空的
-            DownloadInfo.VersionName = Version
-            Version = Version.Replace("neoforge-", "").Replace("-beta", "").Replace("1.20.1-", "")
-            DownloadInfo.VersionCode = Version
-            If Version.Contains("-beta") Then DownloadInfo.IsBeta = True
-        ElseIf IsNeo Then
-            DownloadInfo = DownloadNeoInfo
-            Version = DownloadInfo.VersionCode
+        If IsNeo Then '兜底,有的时候 DownloadInfo 可能是空的
+            If DownloadNeoInfo Is Nothing Then
+                DownloadInfo.VersionName = Version
+                Version = Version.Replace("neoforge-", "").Replace("-beta", "").Replace("1.20.1-", "")
+                DownloadInfo.VersionCode = Version
+                If Version.Contains("-beta") Then DownloadInfo.IsBeta = True
+            Else
+                DownloadInfo = DownloadNeoInfo
+                Version = DownloadInfo.VersionCode
+            End If
         Else
         Else
             DownloadInfo = DownloadForgeInfo
             DownloadInfo = DownloadForgeInfo
         End If
         End If
@@ -1314,17 +1317,18 @@ Retry:
             Inherit = Version.Before("-")
             Inherit = Version.Before("-")
             Version = Version.After("-")
             Version = Version.After("-")
         End If
         End If
+        Dim LoaderName As String = If(IsNeo, "NeoForge", "Forge")
         Dim IsCustomFolder As Boolean = McFolder <> PathMcFolder
         Dim IsCustomFolder As Boolean = McFolder <> PathMcFolder
         Dim Id As String = If(IsNeo, DownloadInfo.VersionName, Inherit & "-forge-" & Version)
         Dim Id As String = If(IsNeo, DownloadInfo.VersionName, Inherit & "-forge-" & Version)
-        Dim InstallerAddress As String = PathTemp & $"Cache\Code\{If(IsNeo, "Neo", "")}ForgeInstall-" & Version & "_" & RandomInteger(0, 100000)
+        Dim InstallerAddress As String = PathTemp & $"Cache\Code\{LoaderName}Install-" & Version & "_" & RandomInteger(0, 100000)
         Dim VersionFolder As String = McFolder & "versions\" & Id & "\"
         Dim VersionFolder As String = McFolder & "versions\" & Id & "\"
-        Dim DisplayName As String = $"{If(IsNeo, "Neo", "")}Forge " & Inherit & " - " & Version
+        Dim DisplayName As String = $"{LoaderName} " & Inherit & " - " & Version
         Dim Loaders As New List(Of LoaderBase)
         Dim Loaders As New List(Of LoaderBase)
         Dim LibVersionFolder As String = PathMcFolder & "versions\" & Id & "\" '作为 Lib 文件目标的版本文件夹
         Dim LibVersionFolder As String = PathMcFolder & "versions\" & Id & "\" '作为 Lib 文件目标的版本文件夹
 
 
         '获取下载信息
         '获取下载信息
         If DownloadInfo Is Nothing Then
         If DownloadInfo Is Nothing Then
-            Loaders.Add(New LoaderTask(Of String, String)($"获取 {If(IsNeo, "Neo", "")}Forge 详细信息",
+            Loaders.Add(New LoaderTask(Of String, String)($"获取 {LoaderName} 详细信息",
             Sub(Task As LoaderTask(Of String, String))
             Sub(Task As LoaderTask(Of String, String))
                 '获取 Forge / NeoForge 版本列表
                 '获取 Forge / NeoForge 版本列表
                 Dim ForgeLoader = If(IsNeo, New LoaderTask(Of String, List(Of DlNeoForgeVersionEntry))("McDownloadForgeLoader " & Inherit, AddressOf DlNeoForgeVersionMain), New LoaderTask(Of String, List(Of DlForgeVersionEntry))("McDownloadForgeLoader " & Inherit, AddressOf DlForgeVersionMain))
                 Dim ForgeLoader = If(IsNeo, New LoaderTask(Of String, List(Of DlNeoForgeVersionEntry))("McDownloadForgeLoader " & Inherit, AddressOf DlNeoForgeVersionMain), New LoaderTask(Of String, List(Of DlForgeVersionEntry))("McDownloadForgeLoader " & Inherit, AddressOf DlForgeVersionMain))
@@ -1337,11 +1341,11 @@ Retry:
                         Exit Sub
                         Exit Sub
                     End If
                     End If
                 Next
                 Next
-                Throw New Exception($"未能找到 {If(IsNeo, "Neo", "")}Forge " & Inherit & "-" & Version & " 的详细信息!")
+                Throw New Exception($"未能找到 {LoaderName} " & Inherit & "-" & Version & " 的详细信息!")
             End Sub) With {.ProgressWeight = 3})
             End Sub) With {.ProgressWeight = 3})
         End If
         End If
         '下载 Forge / NeoForge 主文件
         '下载 Forge / NeoForge 主文件
-        Loaders.Add(New LoaderTask(Of String, List(Of NetFile))($"准备下载 {If(IsNeo, "Neo", "")}Forge",
+        Loaders.Add(New LoaderTask(Of String, List(Of NetFile))($"准备下载 {LoaderName}",
             Sub(Task As LoaderTask(Of String, List(Of NetFile)))
             Sub(Task As LoaderTask(Of String, List(Of NetFile)))
                 '启动依赖版本的下载
                 '启动依赖版本的下载
                 If ClientDownloadLoader Is Nothing Then
                 If ClientDownloadLoader Is Nothing Then
@@ -1364,13 +1368,13 @@ Retry:
                 End If
                 End If
                 Task.Output = Files
                 Task.Output = Files
             End Sub) With {.ProgressWeight = 0.5, .Show = False})
             End Sub) With {.ProgressWeight = 0.5, .Show = False})
-        Loaders.Add(New LoaderDownload($"下载 {If(IsNeo, "Neo", "")}Forge 主文件", New List(Of NetFile)) With {.ProgressWeight = 9})
+        Loaders.Add(New LoaderDownload($"下载 {LoaderName} 主文件", New List(Of NetFile)) With {.ProgressWeight = 9})
 
 
         '安装(仅在新版安装时需要原版 Jar)
         '安装(仅在新版安装时需要原版 Jar)
         If Version.Before(".") >= 20 Then
         If Version.Before(".") >= 20 Then
             Log($"[Download] 检测为{If(IsNeo, " Neo", "新版 ")}Forge:" & Version)
             Log($"[Download] 检测为{If(IsNeo, " Neo", "新版 ")}Forge:" & Version)
             Dim Libs As List(Of McLibToken) = Nothing
             Dim Libs As List(Of McLibToken) = Nothing
-            Loaders.Add(New LoaderTask(Of String, List(Of NetFile))($"分析 {If(IsNeo, "Neo", "")}Forge 支持库文件",
+            Loaders.Add(New LoaderTask(Of String, List(Of NetFile))($"分析 {LoaderName} 支持库文件",
             Sub(Task As LoaderTask(Of String, List(Of NetFile)))
             Sub(Task As LoaderTask(Of String, List(Of NetFile)))
                 Task.Output = New List(Of NetFile)
                 Task.Output = New List(Of NetFile)
                 Dim Installer As ZipArchive = Nothing
                 Dim Installer As ZipArchive = Nothing
@@ -1400,7 +1404,7 @@ Retry:
                     For i = 0 To Libs.Count - 1
                     For i = 0 To Libs.Count - 1
                         If Libs(i).LocalPath.EndsWithF($"{If(IsNeo, "neo", "")}forge-" & Inherit & "-" & Version & ".jar") OrElse
                         If Libs(i).LocalPath.EndsWithF($"{If(IsNeo, "neo", "")}forge-" & Inherit & "-" & Version & ".jar") OrElse
                                                                                                       Libs(i).LocalPath.EndsWithF("forge-" & Inherit & "-" & Version & "-client.jar") Then
                                                                                                       Libs(i).LocalPath.EndsWithF("forge-" & Inherit & "-" & Version & "-client.jar") Then
-                            Log($"[Download] 已从待下载 {If(IsNeo, "Neo", "")}Forge 支持库中移除:" & Libs(i).LocalPath, LogLevel.Debug)
+                            Log($"[Download] 已从待下载 {LoaderName} 支持库中移除:" & Libs(i).LocalPath, LogLevel.Debug)
                             Libs.RemoveAt(i)
                             Libs.RemoveAt(i)
                             Exit For
                             Exit For
                         End If
                         End If
@@ -1413,8 +1417,8 @@ Retry:
                     If Installer IsNot Nothing Then Installer.Dispose()
                     If Installer IsNot Nothing Then Installer.Dispose()
                 End Try
                 End Try
             End Sub) With {.ProgressWeight = 2})
             End Sub) With {.ProgressWeight = 2})
-            Loaders.Add(New LoaderDownload($"下载 {If(IsNeo, "Neo", "")}Forge 支持库文件", New List(Of NetFile)) With {.ProgressWeight = 12})
-            Loaders.Add(New LoaderTask(Of List(Of NetFile), Boolean)($"获取 {If(IsNeo, "Neo", "")}Forge 支持库文件",
+            Loaders.Add(New LoaderDownload($"下载 {LoaderName} 支持库文件", New List(Of NetFile)) With {.ProgressWeight = 12})
+            Loaders.Add(New LoaderTask(Of List(Of NetFile), Boolean)($"获取 {LoaderName} 支持库文件",
             Sub(Task As LoaderTask(Of List(Of NetFile), Boolean))
             Sub(Task As LoaderTask(Of List(Of NetFile), Boolean))
 #Region "Forge / NeoForge 文件"
 #Region "Forge / NeoForge 文件"
                 If IsCustomFolder Then
                 If IsCustomFolder Then
@@ -1424,7 +1428,7 @@ Retry:
                             Directory.CreateDirectory(IO.Path.GetDirectoryName(RealPath))
                             Directory.CreateDirectory(IO.Path.GetDirectoryName(RealPath))
                             CopyFile(LibFile.LocalPath, RealPath)
                             CopyFile(LibFile.LocalPath, RealPath)
                         End If
                         End If
-                        If ModeDebug Then Log($"[Download] 复制的 {If(IsNeo, "Neo", "")}Forge 支持库文件:" & LibFile.LocalPath)
+                        If ModeDebug Then Log($"[Download] 复制的 {LoaderName} 支持库文件:" & LibFile.LocalPath)
                     Next
                     Next
                 End If
                 End If
 #End Region
 #End Region
@@ -1434,7 +1438,7 @@ Retry:
                 Dim TargetLoaders As List(Of LoaderBase) =
                 Dim TargetLoaders As List(Of LoaderBase) =
                                                                                 ClientDownloadLoader.GetLoaderList.Where(Function(l) l.Name = McDownloadClientLibName OrElse l.Name = McDownloadClientJsonName).
                                                                                 ClientDownloadLoader.GetLoaderList.Where(Function(l) l.Name = McDownloadClientLibName OrElse l.Name = McDownloadClientJsonName).
                                                                                 Where(Function(l) l.State <> LoadState.Finished).ToList
                                                                                 Where(Function(l) l.State <> LoadState.Finished).ToList
-                If TargetLoaders.Any Then Log($"[Download] {If(IsNeo, "Neo", "")}Forge 安装正在等待原版文件下载完成")
+                If TargetLoaders.Any Then Log($"[Download] {LoaderName} 安装正在等待原版文件下载完成")
                 Do While TargetLoaders.Any AndAlso Not Task.IsAborted
                 Do While TargetLoaders.Any AndAlso Not Task.IsAborted
                     TargetLoaders = TargetLoaders.Where(Function(l) l.State <> LoadState.Finished).ToList
                     TargetLoaders = TargetLoaders.Where(Function(l) l.State <> LoadState.Finished).ToList
                     Thread.Sleep(50)
                     Thread.Sleep(50)
@@ -1483,11 +1487,11 @@ Retry:
                         Task.Progress = 0.97
                         Task.Progress = 0.97
                     Catch ex As Exception
                     Catch ex As Exception
                         If UseJavaWrapper Then
                         If UseJavaWrapper Then
-                            Log(ex, $"使用 JavaWrapper 安装 {If(IsNeo, "Neo", "")}Forge 失败,将不使用 JavaWrapper 并重试")
+                            Log(ex, $"使用 JavaWrapper 安装 {LoaderName} 失败,将不使用 JavaWrapper 并重试")
                             UseJavaWrapper = False
                             UseJavaWrapper = False
                             GoTo Retry
                             GoTo Retry
                         Else
                         Else
-                            Throw New Exception($"运行 {If(IsNeo, "Neo", "")}Forge 安装器失败", ex)
+                            Throw New Exception($"运行 {LoaderName} 安装器失败", ex)
                         End If
                         End If
                     End Try
                     End Try
                     '拷贝新增的版本 Json
                     '拷贝新增的版本 Json
@@ -1505,14 +1509,14 @@ Retry:
                     '新建 mods 文件夹
                     '新建 mods 文件夹
                     Directory.CreateDirectory(New McVersion(VersionFolder).GetPathIndie(True) & "mods\")
                     Directory.CreateDirectory(New McVersion(VersionFolder).GetPathIndie(True) & "mods\")
                 Catch ex As Exception
                 Catch ex As Exception
-                    Throw New Exception($"安装新 {If(IsNeo, "Neo", "")}Forge 版本失败", ex)
+                    Throw New Exception($"安装新 {LoaderName} 版本失败", ex)
                 Finally
                 Finally
                     '清理文件
                     '清理文件
                     Try
                     Try
                         If Installer IsNot Nothing Then Installer.Dispose()
                         If Installer IsNot Nothing Then Installer.Dispose()
                         If File.Exists(InstallerAddress) Then File.Delete(InstallerAddress)
                         If File.Exists(InstallerAddress) Then File.Delete(InstallerAddress)
                     Catch ex As Exception
                     Catch ex As Exception
-                        Log(ex, $"安装 {If(IsNeo, "Neo", "")}Forge 清理文件时出错")
+                        Log(ex, $"安装 {LoaderName} 清理文件时出错")
                     End Try
                     End Try
                 End Try
                 End Try
             End Sub) With {.ProgressWeight = 10})
             End Sub) With {.ProgressWeight = 10})
@@ -1573,8 +1577,8 @@ Retry:
             End Sub) With {.ProgressWeight = 1})
             End Sub) With {.ProgressWeight = 1})
             If FixLibrary Then
             If FixLibrary Then
                 If IsCustomFolder Then Throw New Exception("若需要补全支持库,就不能自定义 MC 文件夹")
                 If IsCustomFolder Then Throw New Exception("若需要补全支持库,就不能自定义 MC 文件夹")
-                Loaders.Add(New LoaderTask(Of String, List(Of NetFile))($"分析 {If(IsNeo, "Neo", "")}Forge 支持库文件", Sub(Task As LoaderTask(Of String, List(Of NetFile))) Task.Output = McLibFix(New McVersion(VersionFolder))) With {.ProgressWeight = 1, .Show = False})
-                Loaders.Add(New LoaderDownload($"下载 {If(IsNeo, "Neo", "")}Forge 支持库文件", New List(Of NetFile)) With {.ProgressWeight = 11})
+                Loaders.Add(New LoaderTask(Of String, List(Of NetFile))($"分析 {LoaderName} 支持库文件", Sub(Task As LoaderTask(Of String, List(Of NetFile))) Task.Output = McLibFix(New McVersion(VersionFolder))) With {.ProgressWeight = 1, .Show = False})
+                Loaders.Add(New LoaderDownload($"下载 {LoaderName} 支持库文件", New List(Of NetFile)) With {.ProgressWeight = 11})
             End If
             End If
         End If
         End If
 
 
@@ -1673,7 +1677,7 @@ Retry:
         Else
         Else
             Version = sender.Parent.Parent.Tag
             Version = sender.Parent.Parent.Tag
         End If
         End If
-        McDownloadForgeSave(False, Version)
+        McDownloadForgeSave(False, DownloadForgeInfo:=Version)
     End Sub
     End Sub
 
 
 #End Region
 #End Region
@@ -1830,7 +1834,7 @@ Retry:
         Else
         Else
             Version = sender.Parent.Parent.Tag
             Version = sender.Parent.Parent.Tag
         End If
         End If
-        McDownloadForgeSave(True, , Version)
+        McDownloadForgeSave(True, DownloadNeoInfo:=Version)
     End Sub
     End Sub
 
 
 #End Region
 #End Region