Public Class PageLoginMs ''' ''' 刷新页面显示的所有信息。 ''' Public Sub Reload(KeepInput As Boolean) End Sub ''' ''' 获取当前页面的登录信息。 ''' Public Shared Function GetLoginData() As McLoginMs Return New McLoginMs With {.OAuthRefreshToken = Setup.Get("CacheMsOAuthRefresh"), .UserName = Setup.Get("CacheMsName")} End Function ''' ''' 当前页面的登录信息是否有效。 ''' Public Shared Function IsVaild(LoginData As McLoginMs) As String If LoginData.OAuthRefreshToken = "" Then Return "请在登录账号后再启动游戏!" Else Return "" End If End Function Public Function IsVaild() As String Return IsVaild(GetLoginData()) End Function Private Sub BtnLogin_Click(sender As Object, e As EventArgs) Handles BtnLogin.Click BtnLogin.IsEnabled = False BtnLogin.Text = "登录中 0%" RunInNewThread(Sub() Try McLoginMsLoader.Start(GetLoginData(), IsForceRestart:=True) Do While McLoginMsLoader.State = LoadState.Loading RunInUi(Sub() BtnLogin.Text = "登录中 " & Math.Round(McLoginMsLoader.Progress * 100) & "%") Thread.Sleep(50) Loop If McLoginMsLoader.State = LoadState.Finished Then RunInUi(Sub() FrmLaunchLeft.RefreshPage(False, True)) ElseIf McLoginMsLoader.State = LoadState.Aborted Then Throw New ThreadInterruptedException ElseIf McLoginMsLoader.Error Is Nothing Then Throw New Exception("未知错误!") Else Throw New Exception(McLoginMsLoader.Error.Message, McLoginMsLoader.Error) End If Catch ex As ThreadInterruptedException Hint("登录已取消!") Catch ex As Exception If ex.Message = "$$" Then ElseIf ex.Message.StartsWith("$") Then Hint(ex.Message.TrimStart("$"), HintType.Critical) Else Log(ex, "微软登录尝试失败", LogLevel.Msgbox) End If Finally RunInUi(Sub() BtnLogin.IsEnabled = True BtnLogin.Text = "添加账号" End Sub) End Try End Sub, "Ms Login") End Sub '账号迁移入口 Private Sub BtnMigration_Click(sender As Object, e As EventArgs) Handles BtnMigration.Click MyMsgBox("在迁移过程中,你可能需要设置你的档案信息,此时请注意让年龄大于 18 岁,否则可能导致无法登录!", "迁移提示", "继续", ForceWait:=True) OpenWebsite("https://www.minecraft.net/zh-hans/account-security") End Sub End Class