feat(setup):允许禁用 jlw

This commit is contained in:
薄奚梦灵
2025-03-05 13:57:09 +08:00
committed by GitHub
parent 503244a0de
commit 60d14e8594
5 changed files with 62 additions and 9 deletions
@@ -735,6 +735,45 @@ LoginFinish:
Try Try
Dim NeedRefresh As Boolean = False Dim NeedRefresh As Boolean = False
McLaunchLog("登录开始(Login, " & Data.Input.Token & ")") 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( Dim RequestData As New JObject(
New JProperty("agent", New JObject(New JProperty("name", "Minecraft"), New JProperty("version", 1))), New JProperty("agent", New JObject(New JProperty("name", "Minecraft"), New JProperty("version", 1))),
New JProperty("username", Data.Input.UserName), New JProperty("username", Data.Input.UserName),
@@ -1421,9 +1460,11 @@ Retry:
'添加 Java Wrapper 作为主 Jar '添加 Java Wrapper 作为主 Jar
If McLaunchJavaSelected.VersionCode >= 9 Then DataList.Add("--add-exports cpw.mods.bootstraplauncher/cpw.mods.bootstraplauncher=ALL-UNNAMED") If McLaunchJavaSelected.VersionCode >= 9 Then DataList.Add("--add-exports cpw.mods.bootstraplauncher/cpw.mods.bootstraplauncher=ALL-UNNAMED")
DataList.Add("-Doolloo.jlw.tmpdir=""" & PathPure.TrimEnd("\") & """") If Setup.Get("VersionAdvanceUseLaunchWrapperV2", Version) OrElse Setup.Get("LaunchAdvanceUseLaunchWrapper") Then
DataList.Add("-jar """ & ExtractJavaWrapper() & """") DataList.Add("-Doolloo.jlw.tmpdir=""" & PathPure.TrimEnd("\") & """")
DataList.Add("-jar """ & ExtractJavaWrapper() & """")
End If
Log(DataList.ToString, LogLevel.Normal)
'添加 MainClass '添加 MainClass
If Version.JsonObject("mainClass") Is Nothing Then If Version.JsonObject("mainClass") Is Nothing Then
Throw New Exception("版本 json 中没有 mainClass 项!") Throw New Exception("版本 json 中没有 mainClass 项!")
@@ -1488,9 +1529,10 @@ NextVersion:
'添加 Java Wrapper 作为主 Jar '添加 Java Wrapper 作为主 Jar
If McLaunchJavaSelected.VersionCode >= 9 Then DataList.Add("--add-exports cpw.mods.bootstraplauncher/cpw.mods.bootstraplauncher=ALL-UNNAMED") If McLaunchJavaSelected.VersionCode >= 9 Then DataList.Add("--add-exports cpw.mods.bootstraplauncher/cpw.mods.bootstraplauncher=ALL-UNNAMED")
DataList.Add("-Doolloo.jlw.tmpdir=""" & PathPure.TrimEnd("\") & """") If Setup.Get("VersionAdvanceUseLaunchWrapperV2", Version) OrElse Setup.Get("LaunchAdvanceUseLaunchWrapper") Then
DataList.Add("-jar """ & ExtractJavaWrapper() & """") DataList.Add("-Doolloo.jlw.tmpdir=""" & PathPure.TrimEnd("\") & """")
DataList.Add("-jar """ & ExtractJavaWrapper() & """")
End If
'将 "-XXX" 与后面 "XXX" 合并到一起 '将 "-XXX" 与后面 "XXX" 合并到一起
'如果不合并,会导致 Forge 1.17 启动无效,它有两个 --add-exports,进一步导致其中一个在后面被去重 '如果不合并,会导致 Forge 1.17 启动无效,它有两个 --add-exports,进一步导致其中一个在后面被去重
Dim DeDuplicateDataList As New List(Of String) Dim DeDuplicateDataList As New List(Of String)
@@ -39,11 +39,15 @@
{"SystemSystemCache", New SetupEntry("", Source:=SetupSource.Registry)}, {"SystemSystemCache", New SetupEntry("", Source:=SetupSource.Registry)},
{"SystemSystemUpdate", New SetupEntry(0)}, {"SystemSystemUpdate", New SetupEntry(0)},
{"SystemSystemActivity", New SetupEntry(0)}, {"SystemSystemActivity", New SetupEntry(0)},
{"SystemCreateMojangPath", New SetupEntry(False, Source:=SetupSource.Registry)},
{"CacheExportConfig", New SetupEntry("", Source:=SetupSource.Registry)}, {"CacheExportConfig", New SetupEntry("", Source:=SetupSource.Registry)},
{"CacheSavedPageUrl", New SetupEntry("", Source:=SetupSource.Registry)}, {"CacheSavedPageUrl", New SetupEntry("", Source:=SetupSource.Registry)},
{"CacheSavedPageVersion", New SetupEntry("", Source:=SetupSource.Registry)}, {"CacheSavedPageVersion", New SetupEntry("", Source:=SetupSource.Registry)},
{"CacheMsOAuthRefresh", New SetupEntry("", Source:=SetupSource.Registry, Encoded:=True)}, {"CacheMsOAuthRefresh", New SetupEntry("", Source:=SetupSource.Registry, Encoded:=True)},
{"CacheMsAccess", 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)}, {"CacheMsProfileJson", New SetupEntry("", Source:=SetupSource.Registry, Encoded:=True)},
{"CacheMsUuid", New SetupEntry("", Source:=SetupSource.Registry, Encoded:=True)}, {"CacheMsUuid", New SetupEntry("", Source:=SetupSource.Registry, Encoded:=True)},
{"CacheMsName", New SetupEntry("", Source:=SetupSource.Registry, Encoded:=True)}, {"CacheMsName", New SetupEntry("", Source:=SetupSource.Registry, Encoded:=True)},
@@ -102,6 +106,7 @@
{"LaunchAdvanceRun", New SetupEntry("")}, {"LaunchAdvanceRun", New SetupEntry("")},
{"LaunchAdvanceRunWait", New SetupEntry(True)}, {"LaunchAdvanceRunWait", New SetupEntry(True)},
{"LaunchAdvanceAssets", New SetupEntry(False)}, {"LaunchAdvanceAssets", New SetupEntry(False)},
{"LaunchAdvanceUseLaunchWrapper", New SetupEntry(True)},
{"LaunchAdvanceJava", New SetupEntry(False)}, {"LaunchAdvanceJava", New SetupEntry(False)},
{"LaunchRamType", New SetupEntry(0)}, {"LaunchRamType", New SetupEntry(0)},
{"LaunchRamCustom", New SetupEntry(15)}, {"LaunchRamCustom", New SetupEntry(15)},
@@ -171,6 +176,7 @@
{"VersionAdvanceGame", New SetupEntry("", Source:=SetupSource.Version)}, {"VersionAdvanceGame", New SetupEntry("", Source:=SetupSource.Version)},
{"VersionAdvanceAssets", New SetupEntry(0, Source:=SetupSource.Version)}, {"VersionAdvanceAssets", New SetupEntry(0, Source:=SetupSource.Version)},
{"VersionAdvanceAssetsV2", New SetupEntry(False, Source:=SetupSource.Version)}, {"VersionAdvanceAssetsV2", New SetupEntry(False, Source:=SetupSource.Version)},
{"VersionAdvanceUseLaunchWrapperV2", New SetupEntry(True, Source:=SetupSource.Version)},
{"VersionAdvanceJava", New SetupEntry(False, Source:=SetupSource.Version)}, {"VersionAdvanceJava", New SetupEntry(False, Source:=SetupSource.Version)},
{"VersionAdvanceRun", New SetupEntry("", Source:=SetupSource.Version)}, {"VersionAdvanceRun", New SetupEntry("", Source:=SetupSource.Version)},
{"VersionAdvanceRunWait", New SetupEntry(True, Source:=SetupSource.Version)}, {"VersionAdvanceRunWait", New SetupEntry(True, Source:=SetupSource.Version)},
@@ -252,6 +252,8 @@
ToolTip="警告:强烈推荐在版本设置中关闭特定版本的警告,而不是在这里关闭所有版本的警告!
如果在设置中手动选择了与当前版本不兼容的 Java,则自动跳过兼容性警告弹窗,强制使用手动选择的 Java。" /> ToolTip="警告:强烈推荐在版本设置中关闭特定版本的警告,而不是在这里关闭所有版本的警告!
如果在设置中手动选择了与当前版本不兼容的 Java,则自动跳过兼容性警告弹窗,强制使用手动选择的 Java。" />
<local:MyCheckBox Text="关闭文件校验" x:Name="CheckAdvanceAssets" Tag="LaunchAdvanceAssets" <local:MyCheckBox Text="关闭文件校验" x:Name="CheckAdvanceAssets" Tag="LaunchAdvanceAssets"
ToolTip="警告:强烈推荐在版本设置中关闭特定版本的校验,而不是在这里关闭所有版本的校验!&#xa;完全不更改 assets;不校验 libraries、第三方登录库与版本主 jar 文件是否被修改。&#xa;如果你没有修改相关文件,请勿勾选此项。" /> ToolTip="警告:强烈推荐在版本设置中关闭特定版本的校验,而不是在这里关闭所有版本的校验!&#xa;完全不更改 assets;不校验 libraries、第三方登录库与版本主 jar 文件是否被修改。&#xa;如果你没有修改相关文件,请勿勾选此项。" />
<local:MyCheckBox Text="使用 JLW" x:Name="CheckAdvanceUseLaunchWrapper" Tag="LaunchAdvanceUseLaunchWrapper" Margin="50,0,0,0"
ToolTip="警告:强烈推荐在版本设置中关闭特定版本的校验,而不是在这里关闭所有版本的校验!&#xa;在启动时额外加载 JLW 来处理中文目录。&#xa;如果你没有特殊需求,请勿勾选此项。" />
</StackPanel> </StackPanel>
</Grid> </Grid>
</local:MyCard> </local:MyCard>
@@ -52,6 +52,7 @@
CheckAdvanceRunWait.Checked = Setup.Get("LaunchAdvanceRunWait") CheckAdvanceRunWait.Checked = Setup.Get("LaunchAdvanceRunWait")
CheckAdvanceAssets.Checked = Setup.Get("LaunchAdvanceAssets") CheckAdvanceAssets.Checked = Setup.Get("LaunchAdvanceAssets")
CheckAdvanceJava.Checked = Setup.Get("LaunchAdvanceJava") CheckAdvanceJava.Checked = Setup.Get("LaunchAdvanceJava")
CheckAdvanceUseLaunchWrapper.Checked = Setup.Get("LaunchAdvanceUseLaunchWrapper")
Catch ex As NullReferenceException Catch ex As NullReferenceException
Log(ex, "启动设置项存在异常,已被自动重置", LogLevel.Msgbox) Log(ex, "启动设置项存在异常,已被自动重置", LogLevel.Msgbox)
@@ -78,6 +79,7 @@
Setup.Reset("LaunchSkinType") Setup.Reset("LaunchSkinType")
Setup.Reset("LaunchSkinID") Setup.Reset("LaunchSkinID")
Setup.Reset("LaunchAdvanceJvm") Setup.Reset("LaunchAdvanceJvm")
Setup.Reset("LaunchAdvanceUseLaunchWrapper")
Setup.Reset("LaunchAdvanceGame") Setup.Reset("LaunchAdvanceGame")
Setup.Reset("LaunchAdvanceJava") Setup.Reset("LaunchAdvanceJava")
Setup.Reset("LaunchAdvanceAssets") 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 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) If AniControlEnabled = 0 Then Setup.Set(sender.Tag, sender.SelectedIndex)
End Sub 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) If AniControlEnabled = 0 Then Setup.Set(sender.Tag, sender.Checked)
End Sub End Sub
@@ -74,6 +74,7 @@
Setup.Set("VersionAdvanceAssetsV2", True, Version:=PageVersionLeft.Version) Setup.Set("VersionAdvanceAssetsV2", True, Version:=PageVersionLeft.Version)
End If End If
CheckAdvanceAssetsV2.Checked = Setup.Get("VersionAdvanceAssetsV2", Version:=PageVersionLeft.Version) CheckAdvanceAssetsV2.Checked = Setup.Get("VersionAdvanceAssetsV2", Version:=PageVersionLeft.Version)
CheckAdvanceUseLaunchWrapperV2.Checked = Setup.Get("VersionAdvanceUseLaunchWrapperV2", Version:=PageVersionLeft.Version)
CheckAdvanceJava.Checked = Setup.Get("VersionAdvanceJava", Version:=PageVersionLeft.Version) CheckAdvanceJava.Checked = Setup.Get("VersionAdvanceJava", Version:=PageVersionLeft.Version)
Catch ex As Exception Catch ex As Exception
@@ -104,7 +105,7 @@
Setup.Reset("VersionAdvanceJava", Version:=PageVersionLeft.Version) Setup.Reset("VersionAdvanceJava", Version:=PageVersionLeft.Version)
Setup.Reset("VersionAdvanceRun", Version:=PageVersionLeft.Version) Setup.Reset("VersionAdvanceRun", Version:=PageVersionLeft.Version)
Setup.Reset("VersionAdvanceRunWait", Version:=PageVersionLeft.Version) Setup.Reset("VersionAdvanceRunWait", Version:=PageVersionLeft.Version)
Setup.Reset("VersionAdvanceUseLaunchWrapperV2", Version:=PageVersionLeft.Version)
Setup.Reset("VersionArgumentJavaSelect", Version:=PageVersionLeft.Version) Setup.Reset("VersionArgumentJavaSelect", Version:=PageVersionLeft.Version)
JavaSearchLoader.Start(IsForceRestart:=True) JavaSearchLoader.Start(IsForceRestart:=True)
@@ -135,7 +136,7 @@
Private Shared Sub ComboChange(sender As MyComboBox, e As Object) Handles ComboArgumentIndie.SelectionChanged, ComboRamOptimize.SelectionChanged 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) If AniControlEnabled = 0 Then Setup.Set(sender.Tag, sender.SelectedIndex, Version:=PageVersionLeft.Version)
End Sub 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) If AniControlEnabled = 0 Then Setup.Set(sender.Tag, sender.Checked, Version:=PageVersionLeft.Version)
End Sub End Sub