fix(ModDownloadLib): 1.14 及以上版本无法下载 OptiFine

This commit is contained in:
wyc-26
2025-03-22 22:28:12 +08:00
parent 05d51a1336
commit 6b9bfbf4f6
2 changed files with 16 additions and 8 deletions
+13 -5
View File
@@ -873,15 +873,23 @@ NextFile:
End Sub End Sub
''' <summary> ''' <summary>
''' 申请一个可用于任务缓存的临时文件夹,以 \ 结尾。 ''' 申请一个可用于任务缓存的临时文件夹。
''' 这些文件夹无需进行后续清理。 ''' 这些文件夹无需进行后续清理。
''' </summary> ''' </summary>
''' <param name="RequireNonSpace">是否要求路径不包含空格。</param> ''' <param name="RequireNonSpace">是否要求路径不包含空格。</param>
Public Function RequestTaskTempFolder(Optional RequireNonSpace As Boolean = False) As String ''' <param name="RequireSlash">是否要求路径斜杠。</param>
Public Function RequestTaskTempFolder(Optional RequireNonSpace As Boolean = False, Optional RequireSlash As Boolean = True) As String
TryClearTaskTemp() TryClearTaskTemp()
RequestTaskTempFolder = $"{PathTemp}TaskTemp\{GetUuid()}-{RandomInteger(0, 1000000)}\" If RequireSlash Then
If RequireNonSpace AndAlso RequestTaskTempFolder.Contains(" ") Then RequestTaskTempFolder = $"{PathTemp}TaskTemp\{GetUuid()}-{RandomInteger(0, 1000000)}\"
RequestTaskTempFolder = $"{OsDrive}ProgramData\PCL\TaskTemp\{GetUuid()}-{RandomInteger(0, 1000000)}\" If RequireNonSpace AndAlso RequestTaskTempFolder.Contains(" ") Then
RequestTaskTempFolder = $"{OsDrive}ProgramData\PCL\TaskTemp\{GetUuid()}-{RandomInteger(0, 1000000)}\"
End If
Else
RequestTaskTempFolder = $"{PathTemp}TaskTemp\{GetUuid()}-{RandomInteger(0, 1000000)}"
If RequireNonSpace AndAlso RequestTaskTempFolder.Contains(" ") Then
RequestTaskTempFolder = $"{OsDrive}ProgramData\PCL\TaskTemp\{GetUuid()}-{RandomInteger(0, 1000000)}"
End If
End If End If
Directory.CreateDirectory(RequestTaskTempFolder) Directory.CreateDirectory(RequestTaskTempFolder)
End Function End Function
@@ -545,7 +545,7 @@ pause"
Dim VersionFolder As String = McFolder & "versions\" & Id & "\" Dim VersionFolder As String = McFolder & "versions\" & Id & "\"
Dim IsNewVersion As Boolean = DownloadInfo.Inherit.Contains("w") OrElse Val(DownloadInfo.Inherit.Split(".")(1)) >= 14 Dim IsNewVersion As Boolean = DownloadInfo.Inherit.Contains("w") OrElse Val(DownloadInfo.Inherit.Split(".")(1)) >= 14
Dim Target As String = If(IsNewVersion, Dim Target As String = If(IsNewVersion,
RequestTaskTempFolder(), RequestTaskTempFolder() & "temp",
McFolder & "libraries\optifine\OptiFine\" & DownloadInfo.NameFile.Replace("OptiFine_", "").Replace(".jar", "").Replace("preview_", "") & "\" & DownloadInfo.NameFile.Replace("OptiFine_", "OptiFine-").Replace("preview_", "")) McFolder & "libraries\optifine\OptiFine\" & DownloadInfo.NameFile.Replace("OptiFine_", "").Replace(".jar", "").Replace("preview_", "") & "\" & DownloadInfo.NameFile.Replace("OptiFine_", "OptiFine-").Replace("preview_", ""))
Dim Loaders As New List(Of LoaderBase) Dim Loaders As New List(Of LoaderBase)
@@ -613,8 +613,8 @@ pause"
Log("[Download] 检测为新版 OptiFine:" & DownloadInfo.Inherit) Log("[Download] 检测为新版 OptiFine:" & DownloadInfo.Inherit)
Loaders.Add(New LoaderTask(Of List(Of NetFile), Boolean)("安装 OptiFine(方式 A)", Loaders.Add(New LoaderTask(Of List(Of NetFile), Boolean)("安装 OptiFine(方式 A)",
Sub(Task As LoaderTask(Of List(Of NetFile), Boolean)) Sub(Task As LoaderTask(Of List(Of NetFile), Boolean))
Dim BaseMcFolderHome As String = RequestTaskTempFolder() Dim BaseMcFolderHome As String = RequestTaskTempFolder(False, False)
Dim BaseMcFolder As String = BaseMcFolderHome & ".minecraft\" Dim BaseMcFolder As String = BaseMcFolderHome & "\.minecraft\"
Try Try
'准备安装环境 '准备安装环境
If Directory.Exists(BaseMcFolder & "versions\" & DownloadInfo.Inherit) Then If Directory.Exists(BaseMcFolder & "versions\" & DownloadInfo.Inherit) Then