From b06328645c89a2c287819e5aaaa2b0eea7084e13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BE=99=E8=85=BE=E7=8C=AB=E8=B7=83?= <1043137532@qq.com> Date: Sat, 4 Feb 2023 18:35:32 +0800 Subject: [PATCH] 2.4.8 --- .../Controls/MyListItem.xaml.vb | 2 +- .../Controls/MySlider.xaml.vb | 24 ++++++++++--------- Plain Craft Launcher 2/FormMain.xaml.vb | 17 +++++++++++-- .../Modules/Base/ModBase.vb | 8 +++---- .../Modules/Minecraft/ModCrash.vb | 2 +- .../Modules/Minecraft/ModLaunch.vb | 7 +++--- .../My Project/AssemblyInfo.vb | 4 ++-- .../Pages/PageDownload/PageDownloadPack.xaml | 2 +- .../Pages/PageVersion/PageVersionSetup.xaml | 2 +- 9 files changed, 42 insertions(+), 26 deletions(-) diff --git a/Plain Craft Launcher 2/Controls/MyListItem.xaml.vb b/Plain Craft Launcher 2/Controls/MyListItem.xaml.vb index 1f860f4..f026386 100644 --- a/Plain Craft Launcher 2/Controls/MyListItem.xaml.vb +++ b/Plain Craft Launcher 2/Controls/MyListItem.xaml.vb @@ -231,7 +231,7 @@ .RenderTransform = New ScaleTransform With {.ScaleX = LogoScale, .ScaleY = LogoScale}, .SnapsToDevicePixels = True, .UseLayoutRounding = False} RenderOptions.SetBitmapScalingMode(PathLogo, BitmapScalingMode.Linear) - ElseIf _Logo.ToLower.EndsWith(".png") Then + ElseIf _Logo.ToLower.EndsWith(".png") OrElse _Logo.ToLower.EndsWith(".jpg") Then '位图 Dim Bitmap = New MyBitmap(_Logo) PathLogo = New Canvas With { diff --git a/Plain Craft Launcher 2/Controls/MySlider.xaml.vb b/Plain Craft Launcher 2/Controls/MySlider.xaml.vb index ece6ddf..22c3610 100644 --- a/Plain Craft Launcher 2/Controls/MySlider.xaml.vb +++ b/Plain Craft Launcher 2/Controls/MySlider.xaml.vb @@ -84,12 +84,8 @@ AniStart({ AaScaleTransform(ShapeDot, 1.3 - CType(ShapeDot.RenderTransform, ScaleTransform).ScaleX, 40,, New AniEaseOutFluent) }, "MySlider Scale " & Uuid) - '更新 Popup - If GetHintText IsNot Nothing Then - TextHint.Text = GetHintText.DynamicInvoke(Value) - Popup.IsOpen = True - AniStop("MySlider KeyPopup " & Uuid) - End If + RefreshPopup() + AniStop("MySlider KeyPopup " & Uuid) End Sub Public Sub DragDoing() Dim Percent As Double = MathRange((Mouse.GetPosition(PanMain).X - ShapeDot.Width / 2) / (ActualWidth - ShapeDot.Width), 0, 1) @@ -97,15 +93,22 @@ If Not NewValue = Value Then Value = NewValue End If - '更新 Popup - If GetHintText IsNot Nothing Then TextHint.Text = GetHintText.DynamicInvoke(NewValue) + RefreshPopup() End Sub Public Sub DragStop() RefreshColor() AniStart({ AaScaleTransform(ShapeDot, 1 - CType(ShapeDot.RenderTransform, ScaleTransform).ScaleX, 200,, New AniEaseOutFluent) }, "MySlider Scale " & Uuid) - If GetHintText IsNot Nothing Then Popup.IsOpen = False + Popup.IsOpen = False + End Sub + Public Sub RefreshPopup() + If GetHintText Is Nothing Then Exit Sub + Popup.IsOpen = True + TextHint.Text = GetHintText.DynamicInvoke(Value) + Dim typeface As New Typeface(TextHint.FontFamily, TextHint.FontStyle, TextHint.FontWeight, TextHint.FontStretch) + Dim formattedText As New FormattedText(TextHint.Text, Thread.CurrentThread.CurrentCulture, TextHint.FlowDirection, typeface, TextHint.FontSize, TextHint.Foreground, DPI) + TextHint.Width = formattedText.Width '使用手动测量的宽度修复 #1057 End Sub '指向动画 @@ -179,8 +182,7 @@ End If '更新 Popup If GetHintText IsNot Nothing Then - TextHint.Text = GetHintText.DynamicInvoke(Value) - Popup.IsOpen = True + RefreshPopup() AniStop("MySlider KeyPopup " & Uuid) AniStart(AaCode(Sub() Popup.IsOpen = False, 700 * AniSpeed), "MySlider KeyPopup " & Uuid) End If diff --git a/Plain Craft Launcher 2/FormMain.xaml.vb b/Plain Craft Launcher 2/FormMain.xaml.vb index 0da0787..7bcbaf9 100644 --- a/Plain Craft Launcher 2/FormMain.xaml.vb +++ b/Plain Craft Launcher 2/FormMain.xaml.vb @@ -10,6 +10,10 @@ Public Class FormMain Dim FeatureList As New List(Of KeyValuePair(Of Integer, String)) '统计更新日志条目 #If BETA Then + If LastVersion < 279 Then 'Release 2.4.8 + FeatureCount += 1 + BugCount += 10 + End If If LastVersion < 276 Then 'Release 2.4.7 FeatureList.Add(New KeyValuePair(Of Integer, String)(4, "增加 在游戏启动前执行命令 设置")) FeatureList.Add(New KeyValuePair(Of Integer, String)(3, "在百宝箱添加了清理 MC 日志、崩溃报告的按钮")) @@ -117,6 +121,14 @@ Public Class FormMain '3:BUG+ IMP* FEAT- '2:BUG* IMP- '1:BUG- + If LastVersion < 280 Then 'Snapshot 2.4.8 + FeatureCount += 1 + BugCount += 10 + End If + If LastVersion < 278 Then 'Snapshot 2.4.7 + If LastVersion = 277 Then FeatureList.Add(New KeyValuePair(Of Integer, String)(1, "修复设置背景音乐可能导致无法启动 PCL 的 Bug")) + BugCount += 2 + End If If LastVersion < 278 Then 'Snapshot 2.4.7 If LastVersion = 277 Then FeatureList.Add(New KeyValuePair(Of Integer, String)(1, "修复设置背景音乐可能导致无法启动 PCL 的 Bug")) BugCount += 2 @@ -797,7 +809,8 @@ Reopen: If FilePathList.Count > 1 Then '必须要求全部为 jar 文件 For Each File In FilePathList - If File.Split(".").Last.ToLower <> "jar" Then + Dim Extension As String = File.Split(".").Last.ToLower + If Not {"jar", "litemod", "disabled"}.Contains(Extension) Then Hint("一次请只拖入一个文件!", HintType.Critical) Exit Sub End If @@ -809,7 +822,7 @@ Reopen: RunInNewThread(Sub() Dim Extension As String = FilePath.Split(".").Last.ToLower 'Mod 安装 - If {"jar", "litemod"}.Contains(Extension) Then + If {"jar", "litemod", "disabled"}.Contains(Extension) Then Log("[System] 文件为 jar/litemod 格式,尝试作为 Mod 安装") '获取并检查目标版本 Dim TargetVersion As McVersion = McVersionCurrent diff --git a/Plain Craft Launcher 2/Modules/Base/ModBase.vb b/Plain Craft Launcher 2/Modules/Base/ModBase.vb index b590424..3099e73 100644 --- a/Plain Craft Launcher 2/Modules/Base/ModBase.vb +++ b/Plain Craft Launcher 2/Modules/Base/ModBase.vb @@ -10,12 +10,12 @@ Public Module ModBase #Region "声明" '下列版本信息由更新器自动修改 - Public Const VersionBaseName As String = "2.4.7" '不含分支前缀的显示用版本名 - Public Const VersionStandardCode As String = "2.4.7." & VersionBranchCode '标准格式的四段式版本号 + Public Const VersionBaseName As String = "2.4.8" '不含分支前缀的显示用版本名 + Public Const VersionStandardCode As String = "2.4.8." & VersionBranchCode '标准格式的四段式版本号 #If BETA Then - Public Const VersionCode As Integer = 276 'Release + Public Const VersionCode As Integer = 279 'Release #Else - Public Const VersionCode As Integer = 278 'Snapshot + Public Const VersionCode As Integer = 280 'Snapshot #End If '自动生成的版本信息 Public Const VersionDisplayName As String = VersionBranchName & " " & VersionBaseName diff --git a/Plain Craft Launcher 2/Modules/Minecraft/ModCrash.vb b/Plain Craft Launcher 2/Modules/Minecraft/ModCrash.vb index 26f1c3a..b0ef34e 100644 --- a/Plain Craft Launcher 2/Modules/Minecraft/ModCrash.vb +++ b/Plain Craft Launcher 2/Modules/Minecraft/ModCrash.vb @@ -742,7 +742,7 @@ Redo: Case "RawOutput.log" FileName = "游戏崩溃前的输出.txt" End Select - CopyFile(OutputFile, TempFolder & "Report\" & FileName) + WriteFile(TempFolder & "Report\" & FileName, SecretFilter(ReadFile(OutputFile))) Next '导出报告 Compression.ZipFile.CreateFromDirectory(TempFolder & "Report\", FileAddress) diff --git a/Plain Craft Launcher 2/Modules/Minecraft/ModLaunch.vb b/Plain Craft Launcher 2/Modules/Minecraft/ModLaunch.vb index 7e29259..a5e8e63 100644 --- a/Plain Craft Launcher 2/Modules/Minecraft/ModLaunch.vb +++ b/Plain Craft Launcher 2/Modules/Minecraft/ModLaunch.vb @@ -62,6 +62,7 @@ Public Module ModLaunch ''' 记录启动日志。 ''' Public Sub McLaunchLog(Text As String) + Text = SecretFilter(Text) RunInUi(Sub() FrmLaunchRight.LabLog.Text += vbCrLf & "[" & GetTimeNow() & "] " & Text) Log("[Launch] " & Text) End Sub @@ -1325,7 +1326,7 @@ SystemBrowser: Arguments += " " & If(ArgumentGame = "", Setup.Get("LaunchAdvanceGame"), ArgumentGame) '输出 McLaunchLog("Minecraft 启动参数:") - McLaunchLog(Arguments.Replace(McLoginLoader.Output.AccessToken, McLoginLoader.Output.AccessToken.Substring(0, 22) & "[数据删除]" & McLoginLoader.Output.AccessToken.Substring(30))) + McLaunchLog(Arguments) McLaunchArgument = Arguments End Sub @@ -1930,7 +1931,7 @@ IgnoreCustomSkin: """" & McLaunchJavaSelected.PathJava & """ " & McLaunchArgument & vbCrLf & "echo 游戏已退出。" & vbCrLf & "pause" - WriteFile(If(McLaunchLoader.Input.SaveBatch, Path & "PCL\LatestLaunch.bat"), CmdString, + WriteFile(If(McLaunchLoader.Input.SaveBatch, Path & "PCL\LatestLaunch.bat"), SecretFilter(CmdString), Encoding:=If(Encoding.Default.Equals(Encoding.UTF8), Encoding.UTF8, Encoding.GetEncoding("GB18030"))) If McLaunchLoader.Input.SaveBatch IsNot Nothing Then McLaunchLog("导出启动脚本完成,强制结束启动过程") @@ -2032,7 +2033,7 @@ IgnoreCustomSkin: McLaunchLog("") McLaunchLog("~ 登录参数 ~") McLaunchLog("玩家用户名:" & McLoginLoader.Output.Name) - McLaunchLog("AccessToken:" & McLoginLoader.Output.AccessToken.Substring(0, 22) & "[数据删除]" & McLoginLoader.Output.AccessToken.Substring(30)) + McLaunchLog("AccessToken:" & McLoginLoader.Output.AccessToken) McLaunchLog("ClientToken:" & McLoginLoader.Output.ClientToken) McLaunchLog("UUID:" & McLoginLoader.Output.Uuid) McLaunchLog("登录方式:" & McLoginLoader.Output.Type) diff --git a/Plain Craft Launcher 2/My Project/AssemblyInfo.vb b/Plain Craft Launcher 2/My Project/AssemblyInfo.vb index 55ed05c..c06455a 100644 --- a/Plain Craft Launcher 2/My Project/AssemblyInfo.vb +++ b/Plain Craft Launcher 2/My Project/AssemblyInfo.vb @@ -51,6 +51,6 @@ Imports System.Runtime.InteropServices ' 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号 ' 方法是按如下所示使用“*” - - + + diff --git a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadPack.xaml b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadPack.xaml index 829e718..670f25d 100644 --- a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadPack.xaml +++ b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadPack.xaml @@ -33,7 +33,7 @@ - + diff --git a/Plain Craft Launcher 2/Pages/PageVersion/PageVersionSetup.xaml b/Plain Craft Launcher 2/Pages/PageVersion/PageVersionSetup.xaml index 782f175..bc5f981 100644 --- a/Plain Craft Launcher 2/Pages/PageVersion/PageVersionSetup.xaml +++ b/Plain Craft Launcher 2/Pages/PageVersion/PageVersionSetup.xaml @@ -202,7 +202,7 @@ + ToolTip="在 MC 启动前执行特定命令或程序,语法与 Windows 的命令提示符一致。 可以使用以下替换标记实现相对路径(路径均以 \ 结尾): · {path}:PCL 的 exe 文件所在的文件夹 · {minecraft}:.minecraft 文件夹 · {verpath}:版本文件夹(.minecraft\versions\版本名\) · {verindie}:开启版本隔离时等同版本文件夹,未开启时等同 .minecraft 文件夹 · {java}:游戏运行时的 Java 文件夹 除此之外,也支持以下替换标记: · {user}:玩家名字 · {login}:玩家的登录方式 · {uuid}:玩家的 UUID · {name}:游戏版本名 · {time}:当前的系统时间 · {version}:游戏对应的原版版本号 例如: · "{verpath}test.exe" :运行版本文件夹下的 test.exe 程序 · "{java}java.exe" -jar "{verpath}test.jar" :用 Java 运行版本文件夹下的 test.jar · notepad "{verindie}option.txt" :使用记事本打开该版本的设置文件 涉及路径的操作最好都打上双引号,以避免路径中的空格导致运行失败。" />