Skip to content

Commit 28ef67e

Browse files
committed
2.10.5
1 parent add4153 commit 28ef67e

File tree

7 files changed

+57
-42
lines changed

7 files changed

+57
-42
lines changed

Plain Craft Launcher 2/FormMain.xaml.vb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,12 @@ Public Class FormMain
8383
'3:BUG+ IMP* FEAT-
8484
'2:BUG* IMP-
8585
'1:BUG-
86+
If LastVersion < 364 Then 'Snapshot 2.10.5
87+
If LastVersion >= 363 Then
88+
FeatureList.Add(New KeyValuePair(Of Integer, String)(1, "修复:无法添加新的正版账号"))
89+
BugCount += 1
90+
End If
91+
End If
8692
If LastVersion < 363 Then 'Snapshot 2.10.4
8793
FeatureList.Add(New KeyValuePair(Of Integer, String)(3, "优化:下载资源时,会单独记忆每种资源上次下载到的文件夹,以防混淆"))
8894
FeatureList.Add(New KeyValuePair(Of Integer, String)(2, "优化:网络底层框架与下载稳定性"))

Plain Craft Launcher 2/Modules/Base/ModBase.vb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,13 @@ Public Module ModBase
1313
#Region "声明"
1414

1515
'下列版本信息由更新器自动修改
16-
Public Const VersionBaseName As String = "2.10.4" '不含分支前缀的显示用版本名
17-
Public Const VersionStandardCode As String = "2.10.4." & VersionBranchCode '标准格式的四段式版本号
16+
Public Const VersionBaseName As String = "2.10.5" '不含分支前缀的显示用版本名
17+
Public Const VersionStandardCode As String = "2.10.5." & VersionBranchCode '标准格式的四段式版本号
1818
Public Const CommitHash As String = "" 'Commit Hash,由 GitHub Workflow 自动替换
1919
#If BETA Then
2020
Public Const VersionCode As Integer = 361 'Release
2121
#Else
22-
Public Const VersionCode As Integer = 363 'Snapshot
22+
Public Const VersionCode As Integer = 364 'Snapshot
2323
#End If
2424
'自动生成的版本信息
2525
Public Const VersionDisplayName As String = VersionBranchName & " " & VersionBaseName

Plain Craft Launcher 2/Modules/Base/ModNet.vb

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,18 +12,21 @@ Public Module ModNet
1212
Public Function NetRequestByClient(Url As String, Optional Method As HttpMethod = Nothing,
1313
Optional Content As Object = Nothing, Optional ContentType As String = Nothing, Optional Accept As String = "*/*",
1414
Optional Timeout As Integer = 25000, Optional Headers As String(,) = Nothing,
15-
Optional Encoding As Encoding = Nothing, Optional UseBrowserUserAgent As Boolean = False) As String
15+
Optional Encoding As Encoding = Nothing, Optional UseBrowserUserAgent As Boolean = False, Optional MakeLog As Boolean = True) As String
1616
If Method Is Nothing Then Method = HttpMethod.Get
17-
Log("[Net] 发起网络请求(" & Method.Method & "," & Url & "),最大超时 " & Timeout)
17+
If MakeLog Then Log("[Net] 发起网络请求(" & Method.Method & "," & Url & "),最大超时 " & Timeout)
1818
Try
1919
Dim HeaderDictionary = If(Headers, {}).ToDictionary
2020
If ContentType IsNot Nothing Then HeaderDictionary("Content-Type") = ContentType
2121
If Accept IsNot Nothing Then HeaderDictionary("Accept") = Accept
2222
Return If(Encoding, Encoding.UTF8).GetString(SendRequest(Url, Method, Content, HeaderDictionary, Timeout:=Timeout, Encoding:=Encoding, UseBrowserUserAgent:=UseBrowserUserAgent))
2323
Catch ex As ThreadInterruptedException
2424
Throw
25+
Catch ex As ResponsedWebException
26+
If MakeLog Then Log(ex, "网络请求失败,返回内容为:" & vbCrLf & ex.Response, LogLevel.Developer)
27+
Throw
2528
Catch ex As Exception
26-
Log(ex, "网络请求失败", LogLevel.Developer)
29+
If MakeLog Then Log(ex, "网络请求失败", LogLevel.Developer)
2730
Throw
2831
End Try
2932
End Function

Plain Craft Launcher 2/Modules/Minecraft/ModDownload.vb

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1106,24 +1106,24 @@
11061106
Public Function DlModRequest(Url As String, Optional Method As HttpMethod = Nothing,
11071107
Optional Content As String = Nothing, Optional ContentType As String = Nothing) As JToken
11081108
Dim Urls As New List(Of KeyValuePair(Of String, Integer))
1109-
Urls.Add(New KeyValuePair(Of String, Integer)(Url, 5))
1109+
Urls.Add(New KeyValuePair(Of String, Integer)(Url, 10)) '至少 10s,要不然有时候远端服务器来不及完成
11101110
Urls.Add(New KeyValuePair(Of String, Integer)(Url, 30))
11111111
'Dim McimUrl As String = DlSourceModGet(Url)
11121112
'If McimUrl <> Url Then
11131113
' Select Case Setup.Get("ToolDownloadMod")
11141114
' Case 0
1115-
' Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 5))
11161115
' Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 10))
1117-
' Urls.Add(New KeyValuePair(Of String, Integer)(Url, 15))
1116+
' Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 30))
1117+
' Urls.Add(New KeyValuePair(Of String, Integer)(Url, 30))
11181118
' Case 1
1119-
' Urls.Add(New KeyValuePair(Of String, Integer)(Url, 5))
1120-
' Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 5))
1121-
' Urls.Add(New KeyValuePair(Of String, Integer)(Url, 15))
1119+
' Urls.Add(New KeyValuePair(Of String, Integer)(Url, 10))
11221120
' Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 10))
1121+
' Urls.Add(New KeyValuePair(Of String, Integer)(Url, 30))
1122+
' Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 30))
11231123
' Case Else
1124-
' Urls.Add(New KeyValuePair(Of String, Integer)(Url, 5))
1125-
' Urls.Add(New KeyValuePair(Of String, Integer)(Url, 15))
1126-
' Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 10))
1124+
' Urls.Add(New KeyValuePair(Of String, Integer)(Url, 10))
1125+
' Urls.Add(New KeyValuePair(Of String, Integer)(Url, 30))
1126+
' Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 30))
11271127
' End Select
11281128
'End If
11291129
Dim Exs As String = ""

Plain Craft Launcher 2/Modules/Minecraft/ModLaunch.vb

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -857,7 +857,7 @@ Retry:
857857
McLaunchLog("开始微软登录步骤 1/6(原始登录)")
858858
Dim PrepareJson As JObject = GetJson(NetRequestByClientRetry("https://login.microsoftonline.com/consumers/oauth2/v2.0/devicecode", HttpMethod.Post,
859859
Content:=$"client_id={OAuthClientId}&tenant=/consumers&scope=XboxLive.signin%20offline_access",
860-
Accept:="application/x-www-form-urlencoded"))
860+
ContentType:="application/x-www-form-urlencoded"))
861861
McLaunchLog("网页登录地址:" & PrepareJson("verification_uri").ToString)
862862

863863
'弹窗
@@ -994,10 +994,10 @@ Retry:
994994
Catch ex As Net.WebException
995995
Dim Message As String = GetExceptionSummary(ex)
996996
If Message.Contains("(429)") Then
997-
Log(ex, "微软登录第 5 步汇报 429")
997+
Log(ex, "微软登录第 4 步汇报 429")
998998
Throw New Exception("$登录尝试太过频繁,请等待几分钟后再试!")
999999
ElseIf Message.Contains("(403)") Then
1000-
Log(ex, "微软登录第 5 步汇报 403")
1000+
Log(ex, "微软登录第 4 步汇报 403")
10011001
Throw New Exception("$当前 IP 的登录尝试异常。" & vbCrLf & "如果你使用了 VPN 或加速器,请把它们关掉或更换节点后再试!")
10021002
Else
10031003
Throw
@@ -1024,7 +1024,7 @@ Retry:
10241024
Throw New Exception("$$")
10251025
End If
10261026
Catch ex As Exception
1027-
Log(ex, "微软登录第 6 步异常:" & Result)
1027+
Log(ex, "微软登录第 5 步异常:" & Result)
10281028
Throw
10291029
End Try
10301030
End Sub
@@ -1039,10 +1039,10 @@ Retry:
10391039
Catch ex As Net.WebException
10401040
Dim Message As String = GetExceptionSummary(ex)
10411041
If Message.Contains("(429)") Then
1042-
Log(ex, "微软登录第 7 步汇报 429")
1042+
Log(ex, "微软登录第 6 步汇报 429")
10431043
Throw New Exception("$登录尝试太过频繁,请等待几分钟后再试!")
10441044
ElseIf Message.Contains("(404)") Then
1045-
Log(ex, "微软登录第 7 步汇报 404")
1045+
Log(ex, "微软登录第 6 步汇报 404")
10461046
RunInNewThread(
10471047
Sub()
10481048
Select Case MyMsgBox("请先创建 Minecraft 玩家档案,然后再重新登录。", "登录失败", "创建档案", "取消")

Plain Craft Launcher 2/My Project/AssemblyInfo.vb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,6 @@ Imports System.Runtime.InteropServices
5151
' 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
5252
' 方法是按如下所示使用“*”
5353

54-
<Assembly: AssemblyVersion("2.10.4.0")>
55-
<Assembly: AssemblyFileVersion("2.10.4.0")>
54+
<Assembly: AssemblyVersion("2.10.5.0")>
55+
<Assembly: AssemblyFileVersion("2.10.5.0")>
5656
<Assembly: NeutralResourcesLanguage("")>

Plain Craft Launcher 2/Pages/PageLaunch/MyMsgLogin.xaml.vb

Lines changed: 25 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -113,32 +113,38 @@
113113
"device_code=" & DeviceCode & "&" &
114114
"scope=XboxLive.signin%20offline_access",
115115
ContentType:="application/x-www-form-urlencoded",
116-
Timeout:=5000 + UnknownFailureCount * 5000)
116+
Timeout:=5000 + UnknownFailureCount * 5000,
117+
MakeLog:=False)
117118
'获取结果
118119
Dim ResultJson As JObject = GetJson(Result)
119120
McLaunchLog($"令牌过期时间:{ResultJson("expires_in")} 秒")
120121
Hint("网页登录成功!", HintType.Finish)
121122
Finished({ResultJson("access_token").ToString, ResultJson("refresh_token").ToString})
122123
Return
123124
Catch ex As Exception
124-
If ex.Message.Contains("authorization_declined") Then
125-
Finished(New Exception("$你拒绝了 PCL 申请的权限……"))
126-
Return
127-
ElseIf ex.Message.Contains("expired_token") Then
128-
Finished(New Exception("$登录用时太长啦,重新试试吧!"))
129-
Return
130-
ElseIf ex.Message.Contains("Account security interrupt") Then
131-
Finished(New Exception("$该账号由于安全问题无法登陆,请前往微软账户页获取更多信息。"))
132-
Return
133-
ElseIf ex.Message.Contains("service abuse") Then
134-
Finished(New Exception("$非常抱歉,该账号已被微软封禁,无法登录。"))
135-
Return
136-
ElseIf ex.Message.Contains("AADSTS70000") Then '可能不能判 “invalid_grant”,见 #269
137-
Finished(New RestartException)
138-
Return
139-
ElseIf ex.Message.Contains("authorization_pending") Then
140-
Thread.Sleep(2000)
141-
ElseIf UnknownFailureCount <= 2 Then
125+
If TypeOf ex Is ResponsedWebException Then
126+
Dim Response = CType(ex, ResponsedWebException).Response
127+
If Response.Contains("authorization_declined") Then
128+
Finished(New Exception("$你拒绝了 PCL 申请的权限……"))
129+
Return
130+
ElseIf Response.Contains("expired_token") Then
131+
Finished(New Exception("$登录用时太长啦,重新试试吧!"))
132+
Return
133+
ElseIf Response.Contains("Account security interrupt") Then
134+
Finished(New Exception("$该账号由于安全问题无法登陆,请前往微软账户页获取更多信息。"))
135+
Return
136+
ElseIf Response.Contains("service abuse") Then
137+
Finished(New Exception("$非常抱歉,该账号已被微软封禁,无法登录。"))
138+
Return
139+
ElseIf Response.Contains("AADSTS70000") Then '可能不能判 “invalid_grant”,见 #269
140+
Finished(New RestartException)
141+
Return
142+
ElseIf Response.Contains("authorization_pending") Then
143+
Thread.Sleep(2000)
144+
Continue Do
145+
End If
146+
End If
147+
If UnknownFailureCount <= 2 Then
142148
UnknownFailureCount += 1
143149
Log(ex, $"登录轮询第 {UnknownFailureCount} 次失败")
144150
Thread.Sleep(2000)

0 commit comments

Comments
 (0)