From 60d14e8594a21ad1baabc061ce40d07ded5cc9c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=84=E5=A5=9A=E6=A2=A6=E7=81=B5?= <188181427+shimoranla@users.noreply.github.com> Date: Wed, 5 Mar 2025 13:57:09 +0800 Subject: [PATCH] =?UTF-8?q?feat(setup):=E5=85=81=E8=AE=B8=E7=A6=81?= =?UTF-8?q?=E7=94=A8=20jlw?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Modules/Minecraft/ModLaunch.vb | 54 ++++++++++++++++--- .../Pages/PageSetup/ModSetup.vb | 6 +++ .../Pages/PageSetup/PageSetupLaunch.xaml | 2 + .../Pages/PageSetup/PageSetupLaunch.xaml.vb | 4 +- .../PageVersion/PageVersionSetup.xaml.vb | 5 +- 5 files changed, 62 insertions(+), 9 deletions(-) diff --git a/Plain Craft Launcher 2/Modules/Minecraft/ModLaunch.vb b/Plain Craft Launcher 2/Modules/Minecraft/ModLaunch.vb index 01b1bab..fb2b431 100644 --- a/Plain Craft Launcher 2/Modules/Minecraft/ModLaunch.vb +++ b/Plain Craft Launcher 2/Modules/Minecraft/ModLaunch.vb @@ -735,6 +735,45 @@ LoginFinish: Try Dim NeedRefresh As Boolean = False McLaunchLog("登录开始(Login, " & Data.Input.Token & ")") + If Not Data.Input.BaseUrl = Setup.Get("DisableAuthWarningBaseUrl") Then + Setup.Set($"DisableAuthHttpWarning", False) + Setup.Set("DisableCertCheckWarning", False) + End If + If Data.Input.BaseUrl.StartsWithF("http://") AndAlso Setup.Get($"Disable{Data.Input.Token}HttpWarning") = "False" Then + Select Case MyMsgBox( + Caption:=$"当前正在使用不安全的 HTTP 协议,这将增加账号被盗的风险!{vbCrLf}如果没有特殊需求,建议使用更安全的 HTTPS 协议。", + Title:="账号安全警告", + IsWarn:=True, + Button2:="不再显示", + Button1:="取消登录", + Button3:="取消登录") + + Case 1 + RunInUi(AddressOf PageLoginAuthSkin.ExitLogin) + Return False + Case 2 + Setup.Set($"DisableAuthHttpWarning", True) + Setup.Set($"DisableAuthWarningBaseUrl", Data.Input.BaseUrl) + Case 3 + RunInUi(AddressOf PageLoginAuthSkin.ExitLogin) + Return False + End Select + ElseIf Data.Input.BaseUrl.StartsWithF("https://") AndAlso + Setup.Get("DisableCertCheckWarning") = False AndAlso + Setup.Get("ToolDownloadCert") = False Then + Select Case MyMsgBox( + Caption:=$"本次登录未启用 SSL 证书校验,这将增加账号被盗的风险!{vbCrLf}如果没有特殊需求,建议始终启用 SSL 证书校验。{vbCrLf}可在 [设置 → 启动器] 中勾选 [验证 SSL 证书]", + Title:="账号安全提示", + IsWarn:=False, + Button1:="不再显示", + Button2:="取消登录") + Case 1 + Setup.Set("DisableCertCheckWarning", True) + Case 2 + RunInUi(AddressOf PageLoginAuthSkin.ExitLogin) + Return False + End Select + End If Dim RequestData As New JObject( New JProperty("agent", New JObject(New JProperty("name", "Minecraft"), New JProperty("version", 1))), New JProperty("username", Data.Input.UserName), @@ -1421,9 +1460,11 @@ Retry: '添加 Java Wrapper 作为主 Jar If McLaunchJavaSelected.VersionCode >= 9 Then DataList.Add("--add-exports cpw.mods.bootstraplauncher/cpw.mods.bootstraplauncher=ALL-UNNAMED") - DataList.Add("-Doolloo.jlw.tmpdir=""" & PathPure.TrimEnd("\") & """") - DataList.Add("-jar """ & ExtractJavaWrapper() & """") - + If Setup.Get("VersionAdvanceUseLaunchWrapperV2", Version) OrElse Setup.Get("LaunchAdvanceUseLaunchWrapper") Then + DataList.Add("-Doolloo.jlw.tmpdir=""" & PathPure.TrimEnd("\") & """") + DataList.Add("-jar """ & ExtractJavaWrapper() & """") + End If + Log(DataList.ToString, LogLevel.Normal) '添加 MainClass If Version.JsonObject("mainClass") Is Nothing Then Throw New Exception("版本 json 中没有 mainClass 项!") @@ -1488,9 +1529,10 @@ NextVersion: '添加 Java Wrapper 作为主 Jar If McLaunchJavaSelected.VersionCode >= 9 Then DataList.Add("--add-exports cpw.mods.bootstraplauncher/cpw.mods.bootstraplauncher=ALL-UNNAMED") - DataList.Add("-Doolloo.jlw.tmpdir=""" & PathPure.TrimEnd("\") & """") - DataList.Add("-jar """ & ExtractJavaWrapper() & """") - + If Setup.Get("VersionAdvanceUseLaunchWrapperV2", Version) OrElse Setup.Get("LaunchAdvanceUseLaunchWrapper") Then + DataList.Add("-Doolloo.jlw.tmpdir=""" & PathPure.TrimEnd("\") & """") + DataList.Add("-jar """ & ExtractJavaWrapper() & """") + End If '将 "-XXX" 与后面 "XXX" 合并到一起 '如果不合并,会导致 Forge 1.17 启动无效,它有两个 --add-exports,进一步导致其中一个在后面被去重 Dim DeDuplicateDataList As New List(Of String) diff --git a/Plain Craft Launcher 2/Pages/PageSetup/ModSetup.vb b/Plain Craft Launcher 2/Pages/PageSetup/ModSetup.vb index b23290e..e8d5393 100644 --- a/Plain Craft Launcher 2/Pages/PageSetup/ModSetup.vb +++ b/Plain Craft Launcher 2/Pages/PageSetup/ModSetup.vb @@ -39,11 +39,15 @@ {"SystemSystemCache", New SetupEntry("", Source:=SetupSource.Registry)}, {"SystemSystemUpdate", New SetupEntry(0)}, {"SystemSystemActivity", New SetupEntry(0)}, + {"SystemCreateMojangPath", New SetupEntry(False, Source:=SetupSource.Registry)}, {"CacheExportConfig", New SetupEntry("", Source:=SetupSource.Registry)}, {"CacheSavedPageUrl", New SetupEntry("", Source:=SetupSource.Registry)}, {"CacheSavedPageVersion", New SetupEntry("", Source:=SetupSource.Registry)}, {"CacheMsOAuthRefresh", New SetupEntry("", Source:=SetupSource.Registry, Encoded:=True)}, {"CacheMsAccess", New SetupEntry("", Source:=SetupSource.Registry, Encoded:=True)}, + {"DisableAuthHttpWarning", New SetupEntry(False, Source:=SetupSource.Registry)}, + {"DisableAuthWarningBaseUrl", New SetupEntry("", Source:=SetupSource.Registry, Encoded:=True)}, + {"DisableCertCheckWarning", New SetupEntry(False, Source:=SetupSource.Registry)}, {"CacheMsProfileJson", New SetupEntry("", Source:=SetupSource.Registry, Encoded:=True)}, {"CacheMsUuid", New SetupEntry("", Source:=SetupSource.Registry, Encoded:=True)}, {"CacheMsName", New SetupEntry("", Source:=SetupSource.Registry, Encoded:=True)}, @@ -102,6 +106,7 @@ {"LaunchAdvanceRun", New SetupEntry("")}, {"LaunchAdvanceRunWait", New SetupEntry(True)}, {"LaunchAdvanceAssets", New SetupEntry(False)}, + {"LaunchAdvanceUseLaunchWrapper", New SetupEntry(True)}, {"LaunchAdvanceJava", New SetupEntry(False)}, {"LaunchRamType", New SetupEntry(0)}, {"LaunchRamCustom", New SetupEntry(15)}, @@ -171,6 +176,7 @@ {"VersionAdvanceGame", New SetupEntry("", Source:=SetupSource.Version)}, {"VersionAdvanceAssets", New SetupEntry(0, Source:=SetupSource.Version)}, {"VersionAdvanceAssetsV2", New SetupEntry(False, Source:=SetupSource.Version)}, + {"VersionAdvanceUseLaunchWrapperV2", New SetupEntry(True, Source:=SetupSource.Version)}, {"VersionAdvanceJava", New SetupEntry(False, Source:=SetupSource.Version)}, {"VersionAdvanceRun", New SetupEntry("", Source:=SetupSource.Version)}, {"VersionAdvanceRunWait", New SetupEntry(True, Source:=SetupSource.Version)}, diff --git a/Plain Craft Launcher 2/Pages/PageSetup/PageSetupLaunch.xaml b/Plain Craft Launcher 2/Pages/PageSetup/PageSetupLaunch.xaml index 8b692a4..a2d8278 100644 --- a/Plain Craft Launcher 2/Pages/PageSetup/PageSetupLaunch.xaml +++ b/Plain Craft Launcher 2/Pages/PageSetup/PageSetupLaunch.xaml @@ -252,6 +252,8 @@ ToolTip="警告:强烈推荐在版本设置中关闭特定版本的警告,而不是在这里关闭所有版本的警告! 如果在设置中手动选择了与当前版本不兼容的 Java,则自动跳过兼容性警告弹窗,强制使用手动选择的 Java。" /> + diff --git a/Plain Craft Launcher 2/Pages/PageSetup/PageSetupLaunch.xaml.vb b/Plain Craft Launcher 2/Pages/PageSetup/PageSetupLaunch.xaml.vb index c36c123..e751e2d 100644 --- a/Plain Craft Launcher 2/Pages/PageSetup/PageSetupLaunch.xaml.vb +++ b/Plain Craft Launcher 2/Pages/PageSetup/PageSetupLaunch.xaml.vb @@ -52,6 +52,7 @@ CheckAdvanceRunWait.Checked = Setup.Get("LaunchAdvanceRunWait") CheckAdvanceAssets.Checked = Setup.Get("LaunchAdvanceAssets") CheckAdvanceJava.Checked = Setup.Get("LaunchAdvanceJava") + CheckAdvanceUseLaunchWrapper.Checked = Setup.Get("LaunchAdvanceUseLaunchWrapper") Catch ex As NullReferenceException Log(ex, "启动设置项存在异常,已被自动重置", LogLevel.Msgbox) @@ -78,6 +79,7 @@ Setup.Reset("LaunchSkinType") Setup.Reset("LaunchSkinID") Setup.Reset("LaunchAdvanceJvm") + Setup.Reset("LaunchAdvanceUseLaunchWrapper") Setup.Reset("LaunchAdvanceGame") Setup.Reset("LaunchAdvanceJava") Setup.Reset("LaunchAdvanceAssets") @@ -110,7 +112,7 @@ Private Shared Sub ComboChange(sender As MyComboBox, e As Object) Handles ComboArgumentIndie.SelectionChanged, ComboArgumentVisibie.SelectionChanged, ComboArgumentWindowType.SelectionChanged, ComboArgumentPriority.SelectionChanged If AniControlEnabled = 0 Then Setup.Set(sender.Tag, sender.SelectedIndex) End Sub - Private Shared Sub CheckBoxChange(sender As MyCheckBox, e As Object) Handles CheckAdvanceAssets.Change, CheckAdvanceJava.Change, CheckAdvanceRunWait.Change, CheckArgumentRam.Change + Private Shared Sub CheckBoxChange(sender As MyCheckBox, e As Object) Handles CheckAdvanceAssets.Change, CheckAdvanceJava.Change, CheckAdvanceRunWait.Change, CheckArgumentRam.Change, CheckAdvanceUseLaunchWrapper.Change If AniControlEnabled = 0 Then Setup.Set(sender.Tag, sender.Checked) End Sub diff --git a/Plain Craft Launcher 2/Pages/PageVersion/PageVersionSetup.xaml.vb b/Plain Craft Launcher 2/Pages/PageVersion/PageVersionSetup.xaml.vb index f7a23c0..4521150 100644 --- a/Plain Craft Launcher 2/Pages/PageVersion/PageVersionSetup.xaml.vb +++ b/Plain Craft Launcher 2/Pages/PageVersion/PageVersionSetup.xaml.vb @@ -74,6 +74,7 @@ Setup.Set("VersionAdvanceAssetsV2", True, Version:=PageVersionLeft.Version) End If CheckAdvanceAssetsV2.Checked = Setup.Get("VersionAdvanceAssetsV2", Version:=PageVersionLeft.Version) + CheckAdvanceUseLaunchWrapperV2.Checked = Setup.Get("VersionAdvanceUseLaunchWrapperV2", Version:=PageVersionLeft.Version) CheckAdvanceJava.Checked = Setup.Get("VersionAdvanceJava", Version:=PageVersionLeft.Version) Catch ex As Exception @@ -104,7 +105,7 @@ Setup.Reset("VersionAdvanceJava", Version:=PageVersionLeft.Version) Setup.Reset("VersionAdvanceRun", Version:=PageVersionLeft.Version) Setup.Reset("VersionAdvanceRunWait", Version:=PageVersionLeft.Version) - + Setup.Reset("VersionAdvanceUseLaunchWrapperV2", Version:=PageVersionLeft.Version) Setup.Reset("VersionArgumentJavaSelect", Version:=PageVersionLeft.Version) JavaSearchLoader.Start(IsForceRestart:=True) @@ -135,7 +136,7 @@ Private Shared Sub ComboChange(sender As MyComboBox, e As Object) Handles ComboArgumentIndie.SelectionChanged, ComboRamOptimize.SelectionChanged If AniControlEnabled = 0 Then Setup.Set(sender.Tag, sender.SelectedIndex, Version:=PageVersionLeft.Version) End Sub - Private Shared Sub CheckBoxChange(sender As MyCheckBox, e As Object) Handles CheckAdvanceRunWait.Change, CheckAdvanceAssetsV2.Change, CheckAdvanceJava.Change + Private Shared Sub CheckBoxChange(sender As MyCheckBox, e As Object) Handles CheckAdvanceRunWait.Change, CheckAdvanceAssetsV2.Change, CheckAdvanceJava.Change, CheckAdvanceUseLaunchWrapperV2.Change If AniControlEnabled = 0 Then Setup.Set(sender.Tag, sender.Checked, Version:=PageVersionLeft.Version) End Sub