PageSetupSystem.xaml.vb 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. Class PageSetupSystem
  2. Private Sub PageSetupSystem_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
  3. '重复加载部分
  4. PanBack.ScrollToHome()
  5. If BuildType = BuildTypes.Release Then
  6. PanDonate.Visibility = Visibility.Collapsed
  7. Else
  8. PanDonate.Visibility = Visibility.Visible
  9. ItemSystemUpdateDownload.Content = "在有新版本时自动下载(更新快照版前需要先输入土豆码)"
  10. End If
  11. '非重复加载部分
  12. Static IsLoaded As Boolean = False
  13. If IsLoaded Then Return
  14. IsLoaded = True
  15. AniControlEnabled += 1
  16. Reload()
  17. SliderLoad()
  18. AniControlEnabled -= 1
  19. End Sub
  20. Public Sub Reload()
  21. SettingService.RefreshSettings(Me)
  22. End Sub
  23. Public Sub Reset()
  24. Try
  25. SettingService.ResetSettings(Me)
  26. Logger.Info("已初始化启动器页设置")
  27. Hint("已初始化启动器页设置!", HintType.Green, False)
  28. Catch ex As Exception
  29. Logger.Error(ex, "初始化启动器页设置失败", LogBehavior.Alert)
  30. End Try
  31. Reload()
  32. End Sub
  33. '滑动条
  34. Private Sub SliderLoad()
  35. SliderDownloadThread.GetHintText = Function(v) v + 1
  36. SliderDownloadSpeed.GetHintText =
  37. Function(v)
  38. Select Case v
  39. Case Is <= 14
  40. Return (v + 1) * 0.1 & " M/s"
  41. Case Is <= 31
  42. Return (v - 11) * 0.5 & " M/s"
  43. Case Is <= 41
  44. Return (v - 21) & " M/s"
  45. Case Else
  46. Return "无限制"
  47. End Select
  48. End Function
  49. SliderDebugAnim.GetHintText = Function(v) If(v > 29, "关闭", (v / 10 + 0.1) & "x")
  50. End Sub
  51. Private Sub SliderDownloadThread_PreviewChange(sender As Object, e As RouteEventArgs) Handles SliderDownloadThread.PreviewChange
  52. If SliderDownloadThread.Value < 100 Then Return
  53. If Not Settings.Get(Of Boolean)("HintDownloadThread") Then
  54. Settings.Set("HintDownloadThread", True)
  55. MyMsgBox("如果设置过多的下载线程,可能会导致下载时出现非常严重的卡顿。" & vbCrLf &
  56. "一般设置 64 线程即可满足大多数下载需求,除非你知道你在干什么,否则不建议设置更多的线程数!", "警告", "我知道了", IsWarn:=True)
  57. End If
  58. End Sub
  59. '识别码/土豆码替代入口
  60. Private Sub BtnSystemIdentify_Click(sender As Object, e As MouseButtonEventArgs) Handles BtnSystemIdentify.Click
  61. PageOtherAbout.CopyIdentify()
  62. End Sub
  63. Private Sub BtnSystemUnlock_Click(sender As Object, e As MouseButtonEventArgs) Handles BtnSystemUnlock.Click
  64. InputPotatoCode(False)
  65. End Sub
  66. '调试模式
  67. Private Sub CheckDebugMode_Change() Handles CheckDebugMode.Change
  68. If AniControlEnabled = 0 Then Hint("部分调试信息将在刷新或启动器重启后切换显示!",, False)
  69. End Sub
  70. '自动更新
  71. Private Sub ComboSystemActivity_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles ComboSystemActivity.SelectionChanged
  72. If AniControlEnabled <> 0 Then Return
  73. If ComboSystemActivity.SelectedIndex <> 2 Then Return
  74. If MyMsgBox("若选择此项,即使在将来出现严重问题时,你也无法获取相关通知。" & vbCrLf &
  75. "例如,如果发现某个版本游戏存在严重 Bug,你可能就会因为无法得到通知而导致无法预知的后果。" & vbCrLf & vbCrLf &
  76. "一般选择 仅在有重要通知时显示公告 就可以让你尽量不受打扰了。" & vbCrLf &
  77. "除非你在制作服务器整合包,或时常手动更新启动器,否则极度不推荐选择此项!", "警告", "我知道我在做什么", "取消", IsWarn:=True) = 2 Then
  78. If e.RemovedItems.Count > 0 Then ComboSystemActivity.SelectedItem = e.RemovedItems(0)
  79. End If
  80. End Sub
  81. Private Sub ComboSystemUpdate_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles ComboSystemUpdate.SelectionChanged
  82. If AniControlEnabled <> 0 Then Return
  83. If ComboSystemUpdate.SelectedIndex <> 3 Then Return
  84. If MyMsgBox("若选择此项,即使在启动器将来出现严重问题时,你也无法获取更新并获得修复。" & vbCrLf &
  85. "例如,如果官方修改了登录方式,从而导致现有启动器无法登录,你可能就会因为无法更新而无法开始游戏。" & vbCrLf & vbCrLf &
  86. "一般选择 仅在有重大漏洞更新时显示提示 就可以让你尽量不受打扰了。" & vbCrLf &
  87. "除非你在制作服务器整合包,或时常手动更新启动器,否则极度不推荐选择此项!", "警告", "我知道我在做什么", "取消", IsWarn:=True) = 2 Then
  88. If e.RemovedItems.Count > 0 Then ComboSystemUpdate.SelectedItem = e.RemovedItems(0)
  89. End If
  90. End Sub
  91. Private Sub BtnSystemUpdate_Click(sender As Object, e As EventArgs) Handles BtnSystemUpdate.Click
  92. UpdateCheckByButton()
  93. End Sub
  94. ''' <summary>
  95. ''' 启动器是否已经是最新版?
  96. ''' 若返回 Nothing,则代表无更新缓存文件或出错。
  97. ''' </summary>
  98. Public Shared Function IsLauncherNewest() As Boolean?
  99. Try
  100. '确认服务器公告是否正常
  101. Dim ServerContent As String = If(FileUtils.TryReadAsString(PathTemp & "Cache\Notice.cfg"), "")
  102. If ServerContent.Split("|").Count < 3 Then Return Nothing
  103. '确认是否为最新
  104. Return ServerContent.Split("|")(If(BuildType = BuildTypes.Release, 2, 1)) <= VersionCode
  105. Catch ex As Exception
  106. Logger.Error(ex, "确认启动器更新失败")
  107. Return Nothing
  108. End Try
  109. End Function
  110. #Region "导出 / 导入设置"
  111. Private Sub BtnSystemSettingExp_Click(sender As Object, e As MouseButtonEventArgs) Handles BtnSystemSettingExp.Click
  112. Hint("该功能尚在开发中!")
  113. End Sub
  114. Private Sub BtnSystemSettingImp_Click(sender As Object, e As MouseButtonEventArgs) Handles BtnSystemSettingImp.Click
  115. Hint("该功能尚在开发中!")
  116. End Sub
  117. #End Region
  118. End Class