PageLoginMojang.xaml.vb 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. Public Class PageLoginMojang
  2. Private IsFirstLoad As Boolean = True
  3. ''' <summary>
  4. ''' 刷新页面显示的所有信息。
  5. ''' </summary>
  6. Public Sub Reload(KeepInput As Boolean)
  7. '记住密码
  8. CheckRemember.Checked = Setup.Get("LoginRemember")
  9. If KeepInput AndAlso Not IsFirstLoad Then '避免第一次就以 KeepInput 的方式加载,导致文本框里没东西
  10. '保留输入,只刷新下拉框列表
  11. Dim Input As String = ComboName.Text
  12. ComboName.ItemsSource = If(Setup.Get("LoginMojangEmail") = "", Nothing, Setup.Get("LoginMojangEmail").ToString.Split("¨"))
  13. ComboName.Text = Input
  14. Else
  15. '不保留输入,刷新列表后自动选择第一项
  16. If Setup.Get("LoginMojangEmail") = "" Then
  17. ComboName.ItemsSource = Nothing
  18. Else
  19. ComboName.ItemsSource = Setup.Get("LoginMojangEmail").ToString.Split("¨")
  20. ComboName.Text = Setup.Get("LoginMojangEmail").ToString.Split("¨")(0)
  21. If Setup.Get("LoginRemember") Then TextPass.Password = Setup.Get("LoginMojangPass").ToString.Split("¨")(0).Trim
  22. End If
  23. End If
  24. IsFirstLoad = False
  25. End Sub
  26. ''' <summary>
  27. ''' 获取当前页面的登录信息。
  28. ''' </summary>
  29. Public Shared Function GetLoginData() As McLoginServer
  30. If FrmLoginMojang Is Nothing Then
  31. Return New McLoginServer(McLoginType.Mojang) With {.BaseUrl = "https://authserver.mojang.com", .Token = "Mojang", .UserName = "", .Password = "", .Type = McLoginType.Mojang, .Description = "Mojang 正版"}
  32. Else
  33. Return New McLoginServer(McLoginType.Mojang) With {.BaseUrl = "https://authserver.mojang.com", .Token = "Mojang", .UserName = If(FrmLoginMojang.ComboName.Text, "").Replace("¨", "").Trim(), .Password = If(FrmLoginMojang.TextPass.Password, "").Replace("¨", "").Trim(), .Type = McLoginType.Mojang, .Description = "Mojang 正版"}
  34. End If
  35. End Function
  36. ''' <summary>
  37. ''' 当前页面的登录信息是否有效。
  38. ''' </summary>
  39. Public Shared Function IsVaild(LoginData As McLoginServer) As String
  40. If LoginData.UserName = "" Then Return "邮箱不能为空!"
  41. If Not LoginData.UserName.Contains("@") Then Return "邮箱格式错误!"
  42. If LoginData.Password = "" Then Return "密码不能为空!"
  43. Return ""
  44. End Function
  45. Public Function IsVaild() As String
  46. Return IsVaild(GetLoginData())
  47. End Function
  48. '保存输入信息
  49. Private Sub ComboMojangName_TextChanged(sender As Object, e As TextChangedEventArgs) Handles ComboName.TextChanged
  50. If sender.Text = "" Then TextPass.Password = ""
  51. If AniControlEnabled = 0 Then Setup.Set("CacheMojangAccess", "") '迫使其不进行 Validate
  52. End Sub
  53. Private Sub TextMojangPass_PasswordChanged(sender As Object, e As RoutedEventArgs) Handles TextPass.PasswordChanged
  54. If AniControlEnabled = 0 Then Setup.Set("CacheMojangAccess", "")
  55. End Sub
  56. Private Sub ComboMojangName_SelectionChanged(sender As MyComboBox, e As SelectionChangedEventArgs) Handles ComboName.SelectionChanged
  57. If sender.SelectedIndex = -1 OrElse Not Setup.Get("LoginRemember") Then
  58. TextPass.Password = ""
  59. Else
  60. TextPass.Password = Setup.Get("LoginMojangPass").ToString.Split("¨")(sender.SelectedIndex).Trim
  61. End If
  62. End Sub
  63. Private Sub CheckRememberChange(sender As MyCheckBox, e As Object) Handles CheckRemember.Change
  64. If AniControlEnabled = 0 Then Setup.Set(sender.Tag, sender.Checked)
  65. End Sub
  66. '链接处理
  67. Private Sub InputChanged() Handles ComboName.TextChanged, TextPass.PasswordChanged
  68. BtnLink.Content = If(ComboName.Text = "" AndAlso TextPass.Password = "", "购买正版", "找回密码")
  69. End Sub
  70. Private Sub BtnMojang_Click(sender As Object, e As EventArgs) Handles BtnLink.Click
  71. If BtnLink.Content = "购买正版" Then
  72. OpenWebsite("https://www.minecraft.net/zh-hans/store/checkout/minecraft-java-bedrock-edition-pc")
  73. Else
  74. OpenWebsite("https://www.minecraft.net/zh-hans/password/forgot")
  75. End If
  76. End Sub
  77. Private Sub HintMigration_Click() Handles HintMigration.MouseLeftButtonUp
  78. PageLaunchRight.StartMigration()
  79. End Sub
  80. End Class