Przeglądaj źródła

feat(setup):允许禁用 jlw

薄奚梦灵 1 rok temu
rodzic
commit
60d14e8594

+ 48 - 6
Plain Craft Launcher 2/Modules/Minecraft/ModLaunch.vb

@@ -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("\") & """")
-        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
         '添加 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("\") & """")
-        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" 合并到一起
         '将 "-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)

+ 6 - 0
Plain Craft Launcher 2/Pages/PageSetup/ModSetup.vb

@@ -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)},

+ 2 - 0
Plain Craft Launcher 2/Pages/PageSetup/PageSetupLaunch.xaml

@@ -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>

+ 3 - 1
Plain Craft Launcher 2/Pages/PageSetup/PageSetupLaunch.xaml.vb

@@ -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
 
 

+ 3 - 2
Plain Craft Launcher 2/Pages/PageVersion/PageVersionSetup.xaml.vb

@@ -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