From 6b9bfbf4f66021f2a16e283f43453eb7cabcf3a3 Mon Sep 17 00:00:00 2001 From: wyc-26 Date: Sat, 22 Mar 2025 22:28:12 +0800 Subject: [PATCH] =?UTF-8?q?fix(ModDownloadLib):=201.14=20=E5=8F=8A?= =?UTF-8?q?=E4=BB=A5=E4=B8=8A=E7=89=88=E6=9C=AC=E6=97=A0=E6=B3=95=E4=B8=8B?= =?UTF-8?q?=E8=BD=BD=20OptiFine?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Plain Craft Launcher 2/Modules/ModMain.vb | 18 +++++++++++++----- .../Pages/PageDownload/ModDownloadLib.vb | 6 +++--- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/Plain Craft Launcher 2/Modules/ModMain.vb b/Plain Craft Launcher 2/Modules/ModMain.vb index 51cde8e..2839a54 100644 --- a/Plain Craft Launcher 2/Modules/ModMain.vb +++ b/Plain Craft Launcher 2/Modules/ModMain.vb @@ -873,15 +873,23 @@ NextFile: End Sub ''' - ''' 申请一个可用于任务缓存的临时文件夹,以 \ 结尾。 + ''' 申请一个可用于任务缓存的临时文件夹。 ''' 这些文件夹无需进行后续清理。 ''' ''' 是否要求路径不包含空格。 - Public Function RequestTaskTempFolder(Optional RequireNonSpace As Boolean = False) As String + ''' 是否要求路径斜杠。 + Public Function RequestTaskTempFolder(Optional RequireNonSpace As Boolean = False, Optional RequireSlash As Boolean = True) As String TryClearTaskTemp() - RequestTaskTempFolder = $"{PathTemp}TaskTemp\{GetUuid()}-{RandomInteger(0, 1000000)}\" - If RequireNonSpace AndAlso RequestTaskTempFolder.Contains(" ") Then - RequestTaskTempFolder = $"{OsDrive}ProgramData\PCL\TaskTemp\{GetUuid()}-{RandomInteger(0, 1000000)}\" + If RequireSlash Then + RequestTaskTempFolder = $"{PathTemp}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 Directory.CreateDirectory(RequestTaskTempFolder) End Function diff --git a/Plain Craft Launcher 2/Pages/PageDownload/ModDownloadLib.vb b/Plain Craft Launcher 2/Pages/PageDownload/ModDownloadLib.vb index 4707dc6..f2431af 100644 --- a/Plain Craft Launcher 2/Pages/PageDownload/ModDownloadLib.vb +++ b/Plain Craft Launcher 2/Pages/PageDownload/ModDownloadLib.vb @@ -545,7 +545,7 @@ pause" Dim VersionFolder As String = McFolder & "versions\" & Id & "\" Dim IsNewVersion As Boolean = DownloadInfo.Inherit.Contains("w") OrElse Val(DownloadInfo.Inherit.Split(".")(1)) >= 14 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_", "")) Dim Loaders As New List(Of LoaderBase) @@ -613,8 +613,8 @@ pause" Log("[Download] 检测为新版 OptiFine:" & DownloadInfo.Inherit) Loaders.Add(New LoaderTask(Of List(Of NetFile), Boolean)("安装 OptiFine(方式 A)", Sub(Task As LoaderTask(Of List(Of NetFile), Boolean)) - Dim BaseMcFolderHome As String = RequestTaskTempFolder() - Dim BaseMcFolder As String = BaseMcFolderHome & ".minecraft\" + Dim BaseMcFolderHome As String = RequestTaskTempFolder(False, False) + Dim BaseMcFolder As String = BaseMcFolderHome & "\.minecraft\" Try '准备安装环境 If Directory.Exists(BaseMcFolder & "versions\" & DownloadInfo.Inherit) Then