2.10.6
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
<Application x:Class="Application"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:behaviors="clr-namespace:PCL.Controls.Behaviors"
|
||||
xmlns:local="clr-namespace:PCL"
|
||||
xmlns:sys="clr-namespace:System;assembly=mscorlib"
|
||||
xmlns:behaviors="clr-namespace:PCL.Controls.Behaviors"
|
||||
StartupUri="FormMain.xaml"
|
||||
ShutdownMode="OnExplicitShutdown">
|
||||
<Application.Resources>
|
||||
@@ -345,6 +345,7 @@
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
<Setter Property="behaviors:ClipboardInterceptor.EnableSafeClipboard" Value="True" />
|
||||
</Style>
|
||||
|
||||
<!-- ComboBox -->
|
||||
|
||||
@@ -140,6 +140,7 @@ WaitRetry:
|
||||
ServicePointManager.Expect100Continue = True
|
||||
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 Or SecurityProtocolType.Tls Or SecurityProtocolType.Tls11 Or SecurityProtocolType.Tls12
|
||||
ServicePointManager.DefaultConnectionLimit = 1024
|
||||
ServicePointManager.UseNagleAlgorithm = False
|
||||
'计时
|
||||
Log("[Start] 第一阶段加载用时:" & GetTimeTick() - ApplicationStartTick & " ms")
|
||||
ApplicationStartTick = GetTimeTick()
|
||||
|
||||
@@ -320,11 +320,10 @@
|
||||
End Set
|
||||
End Property
|
||||
Private _IsSwapped As Boolean = False
|
||||
|
||||
''' <summary>
|
||||
''' 是否已被折叠。(已过时,请使用 IsSwapped)
|
||||
''' </summary>
|
||||
<Obsolete("请使用 IsSwapped 属性,IsSwaped 存在拼写错误")>
|
||||
<Obsolete("IsSwaped 存在拼写错误,请换用 IsSwapped 属性。")>
|
||||
Public Property IsSwaped As Boolean
|
||||
Get
|
||||
Return IsSwapped
|
||||
|
||||
@@ -11,6 +11,19 @@ Public Class FormMain
|
||||
Dim FeatureList As New List(Of KeyValuePair(Of Integer, String))
|
||||
'统计更新日志条目
|
||||
#If BETA Then
|
||||
If LastVersion < 367 Then 'Release 2.10.6
|
||||
FeatureList.Add(New KeyValuePair(Of Integer, String)(3, "优化:启用 MCIM 社区资源镜像源,以缓解社区资源难以下载的问题"))
|
||||
FeatureList.Add(New KeyValuePair(Of Integer, String)(1, "修复:正版登录出错时无法给出正确的错误信息"))
|
||||
FeatureCount += 9
|
||||
BugCount += 9
|
||||
End If
|
||||
If LastVersion < 365 Then 'Release 2.10.5
|
||||
FeatureList.Add(New KeyValuePair(Of Integer, String)(3, "优化:下载资源时,会单独记忆每种资源上次下载到的文件夹,以防混淆"))
|
||||
FeatureList.Add(New KeyValuePair(Of Integer, String)(2, "优化:网络底层框架与下载稳定性"))
|
||||
FeatureList.Add(New KeyValuePair(Of Integer, String)(1, "修复:无法启动一部分 LabyMod 和 GTNH 客户端"))
|
||||
FeatureCount += 22
|
||||
BugCount += 26
|
||||
End If
|
||||
If LastVersion < 361 Then 'Release 2.10.3
|
||||
FeatureList.Add(New KeyValuePair(Of Integer, String)(2, "修复:无法安装部分使用老版本 PCL 导出的整合包"))
|
||||
End If
|
||||
@@ -83,6 +96,12 @@ Public Class FormMain
|
||||
'3:BUG+ IMP* FEAT-
|
||||
'2:BUG* IMP-
|
||||
'1:BUG-
|
||||
If LastVersion < 366 Then 'Snapshot 2.10.6
|
||||
FeatureList.Add(New KeyValuePair(Of Integer, String)(3, "优化:启用 MCIM 社区资源镜像源,以缓解社区资源难以下载的问题"))
|
||||
FeatureList.Add(New KeyValuePair(Of Integer, String)(1, "修复:正版登录出错时无法给出正确的错误信息"))
|
||||
FeatureCount += 9
|
||||
BugCount += 9
|
||||
End If
|
||||
If LastVersion < 364 Then 'Snapshot 2.10.5
|
||||
If LastVersion >= 363 Then
|
||||
FeatureList.Add(New KeyValuePair(Of Integer, String)(1, "修复:无法添加新的正版账号"))
|
||||
@@ -268,11 +287,6 @@ Public Class FormMain
|
||||
AddHandler Closing, Sub() Helper.RemoveDragHook()
|
||||
AddHandler Helper.DragDrop, Sub() FileDrag(Helper.DropFilePaths)
|
||||
End If
|
||||
'If IsAdmin() Then '下列代码没用(#2531)
|
||||
' ChangeWindowMessageFilter(&H233, 1)
|
||||
' ChangeWindowMessageFilter(&H4A, 1)
|
||||
' ChangeWindowMessageFilter(&H49, 1)
|
||||
'End If
|
||||
'切换到首页
|
||||
If Not IsNothing(FrmLaunchLeft.Parent) Then FrmLaunchLeft.SetValue(ContentPresenter.ContentProperty, Nothing)
|
||||
If Not IsNothing(FrmLaunchRight.Parent) Then FrmLaunchRight.SetValue(ContentPresenter.ContentProperty, Nothing)
|
||||
@@ -389,6 +403,8 @@ Public Class FormMain
|
||||
Catch ex As Exception
|
||||
Log(ex, "清理自动更新文件失败")
|
||||
End Try
|
||||
'上报
|
||||
Telemetry("启动")
|
||||
End Sub, "初始化", ThreadPriority.Lowest)
|
||||
|
||||
Log("[Start] 第三阶段加载用时:" & GetTimeTick() - ApplicationStartTick & " ms")
|
||||
@@ -874,7 +890,7 @@ Public Class FormMain
|
||||
'错误报告分析
|
||||
Try
|
||||
Log("[System] 尝试进行错误报告分析")
|
||||
Dim Analyzer As New CrashAnalyzer(GetUuid())
|
||||
Dim Analyzer As New CrashAnalyzer
|
||||
Analyzer.Import(FilePath)
|
||||
If Not Analyzer.Prepare() Then Exit Try
|
||||
Analyzer.Analyze()
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Imports System.Globalization
|
||||
Imports System.IO.Compression
|
||||
Imports System.Reflection
|
||||
Imports System.Net.Sockets
|
||||
Imports System.Runtime.CompilerServices
|
||||
Imports System.Security.Cryptography
|
||||
Imports System.Security.Principal
|
||||
@@ -13,13 +13,13 @@ Public Module ModBase
|
||||
#Region "声明"
|
||||
|
||||
'下列版本信息由更新器自动修改
|
||||
Public Const VersionBaseName As String = "2.10.5" '不含分支前缀的显示用版本名
|
||||
Public Const VersionStandardCode As String = "2.10.5." & VersionBranchCode '标准格式的四段式版本号
|
||||
Public Const VersionBaseName As String = "2.10.6" '不含分支前缀的显示用版本名
|
||||
Public Const VersionStandardCode As String = "2.10.6." & VersionBranchCode '标准格式的四段式版本号
|
||||
Public Const CommitHash As String = "" 'Commit Hash,由 GitHub Workflow 自动替换
|
||||
#If BETA Then
|
||||
Public Const VersionCode As Integer = 361 'Release
|
||||
Public Const VersionCode As Integer = 367 'Release
|
||||
#Else
|
||||
Public Const VersionCode As Integer = 364 'Snapshot
|
||||
Public Const VersionCode As Integer = 366 'Snapshot
|
||||
#End If
|
||||
'自动生成的版本信息
|
||||
Public Const VersionDisplayName As String = VersionBranchName & " " & VersionBaseName
|
||||
@@ -791,8 +791,8 @@ Public Module ModBase
|
||||
Public Sub CopyFile(FromPath As String, ToPath As String)
|
||||
Try
|
||||
'还原文件路径
|
||||
If Not FromPath.Contains(":\") Then FromPath = Path & FromPath
|
||||
If Not ToPath.Contains(":\") Then ToPath = Path & ToPath
|
||||
FromPath = ShortenPath(If(FromPath.Contains(":\"), FromPath, Path & FromPath))
|
||||
ToPath = ShortenPath(If(ToPath.Contains(":\"), ToPath, Path & ToPath))
|
||||
'如果复制同一个文件则跳过
|
||||
If FromPath = ToPath Then Return
|
||||
'确保目录存在
|
||||
@@ -861,7 +861,7 @@ Public Module ModBase
|
||||
''' <param name="Append">是否将文件内容追加到当前文件,而不是覆盖它。</param>
|
||||
Public Sub WriteFile(FilePath As String, Text As String, Optional Append As Boolean = False, Optional Encoding As Encoding = Nothing)
|
||||
'处理相对路径
|
||||
If Not FilePath.Contains(":\") Then FilePath = Path & FilePath
|
||||
FilePath = ShortenPath(If(FilePath.Contains(":\"), FilePath, Path & FilePath))
|
||||
'确保目录存在
|
||||
Directory.CreateDirectory(GetPathFromFullPath(FilePath))
|
||||
'写入文件
|
||||
@@ -886,7 +886,7 @@ Public Module ModBase
|
||||
''' <param name="Append">是否将文件内容追加到当前文件,而不是覆盖它。</param>
|
||||
Public Sub WriteFile(FilePath As String, Content As Byte(), Optional Append As Boolean = False)
|
||||
'处理相对路径
|
||||
If Not FilePath.Contains(":\") Then FilePath = Path & FilePath
|
||||
FilePath = ShortenPath(If(FilePath.Contains(":\"), FilePath, Path & FilePath))
|
||||
'确保目录存在
|
||||
Directory.CreateDirectory(GetPathFromFullPath(FilePath))
|
||||
'写入文件
|
||||
@@ -1294,11 +1294,11 @@ Re:
|
||||
''' </summary>
|
||||
Public Sub ExtractFile(CompressFilePath As String, DestDirectory As String, Optional Encode As Encoding = Nothing,
|
||||
Optional ProgressIncrementHandler As Action(Of Double) = Nothing)
|
||||
Directory.CreateDirectory(DestDirectory)
|
||||
Directory.CreateDirectory(ShortenPath(DestDirectory))
|
||||
If CompressFilePath.EndsWithF(".gz", True) Then
|
||||
'以 gz 方式解压
|
||||
Dim stream As New GZipStream(New FileStream(CompressFilePath, FileMode.Open, FileAccess.ReadWrite), CompressionMode.Decompress)
|
||||
Dim decompressedFile As New FileStream(DestDirectory & GetFileNameFromPath(CompressFilePath).ToLower.Replace(".tar", "").Replace(".gz", ""), FileMode.OpenOrCreate, FileAccess.Write)
|
||||
Dim decompressedFile As New FileStream(ShortenPath(DestDirectory & GetFileNameFromPath(CompressFilePath).ToLower.Replace(".tar", "").Replace(".gz", "")), FileMode.OpenOrCreate, FileAccess.Write)
|
||||
Dim data As Integer = stream.ReadByte()
|
||||
While data <> -1
|
||||
decompressedFile.WriteByte(data)
|
||||
@@ -1309,10 +1309,10 @@ Re:
|
||||
Else
|
||||
'以 zip 方式解压
|
||||
Using Archive = ZipFile.Open(CompressFilePath, ZipArchiveMode.Read, If(Encode, Encoding.GetEncoding("GB18030")))
|
||||
Dim TotalCount As Integer = Archive.Entries.Count
|
||||
Dim TotalCount As Long = Archive.Entries.Count
|
||||
For Each Entry As ZipArchiveEntry In Archive.Entries
|
||||
If ProgressIncrementHandler IsNot Nothing Then ProgressIncrementHandler(1 / TotalCount)
|
||||
Dim DestinationPath As String = IO.Path.Combine(DestDirectory, Entry.FullName)
|
||||
If ProgressIncrementHandler IsNot Nothing AndAlso TotalCount > 0 Then ProgressIncrementHandler(1 / TotalCount)
|
||||
Dim DestinationPath As String = ShortenPath(IO.Path.Combine(DestDirectory, Entry.FullName))
|
||||
If DestinationPath.EndsWithF("\") OrElse DestinationPath.EndsWithF("/") Then
|
||||
Continue For '不创建空文件夹
|
||||
Else
|
||||
@@ -1387,10 +1387,10 @@ RetryDir:
|
||||
ToPath = ToPath.Replace("/", "\")
|
||||
If Not ToPath.EndsWithF("\") Then ToPath &= "\"
|
||||
Dim AllFiles = EnumerateFiles(FromPath).ToList
|
||||
Dim FileCount As Integer = AllFiles.Count
|
||||
Dim FileCount As Long = AllFiles.Count
|
||||
For Each File In AllFiles
|
||||
CopyFile(File.FullName, File.FullName.Replace(FromPath, ToPath))
|
||||
If ProgressIncrementHandler IsNot Nothing Then ProgressIncrementHandler(1 / FileCount)
|
||||
If ProgressIncrementHandler IsNot Nothing AndAlso FileCount > 0 Then ProgressIncrementHandler(1 / FileCount)
|
||||
Next
|
||||
End Sub
|
||||
''' <summary>
|
||||
@@ -1449,22 +1449,8 @@ RetryDir:
|
||||
IsInner = True
|
||||
Loop
|
||||
|
||||
'常见错误(记得同时修改下面的)
|
||||
Dim CommonReason As String = Nothing
|
||||
If TypeOf InnerEx Is TypeLoadException OrElse TypeOf InnerEx Is BadImageFormatException OrElse TypeOf InnerEx Is MissingMethodException OrElse TypeOf InnerEx Is NotImplementedException OrElse TypeOf InnerEx Is TypeInitializationException Then
|
||||
CommonReason = "PCL 的运行环境存在问题。请尝试重新安装 .NET Framework 4.6.2 然后再试。若无法安装,请先卸载较新版本的 .NET Framework,然后再尝试安装。"
|
||||
ElseIf TypeOf InnerEx Is UnauthorizedAccessException Then
|
||||
CommonReason = "PCL 的权限不足。请尝试右键 PCL,选择以管理员身份运行。"
|
||||
ElseIf TypeOf InnerEx Is OutOfMemoryException Then
|
||||
CommonReason = "你的电脑运行内存不足,导致 PCL 无法继续运行。请在关闭一部分不需要的程序后再试。"
|
||||
ElseIf TypeOf InnerEx Is Runtime.InteropServices.COMException Then
|
||||
CommonReason = "由于操作系统或显卡存在问题,导致出现错误。请尝试重启 PCL。"
|
||||
ElseIf {"远程主机强迫关闭了", "远程方已关闭传输流", "未能解析此远程名称", "由于目标计算机积极拒绝",
|
||||
"操作已超时", "操作超时", "服务器超时", "连接超时"}.Any(Function(s) DescList.Any(Function(l) l.Contains(s))) Then
|
||||
CommonReason = "你的网络环境不佳,导致难以连接到服务器。请稍后重试,或使用 VPN 以改善网络环境。"
|
||||
End If
|
||||
|
||||
'构造输出信息
|
||||
Dim CommonReason As String = AnalyzeCommonReason(InnerEx, DescList)
|
||||
If CommonReason Is Nothing Then
|
||||
Return DescList.Join(vbCrLf)
|
||||
Else
|
||||
@@ -1492,22 +1478,8 @@ RetryDir:
|
||||
DescList = DescList.Distinct.ToList
|
||||
Dim Desc As String = Join(DescList, vbCrLf & "→ ")
|
||||
|
||||
'常见错误(记得同时修改上面的)
|
||||
Dim CommonReason As String = Nothing
|
||||
If TypeOf InnerEx Is TypeLoadException OrElse TypeOf InnerEx Is BadImageFormatException OrElse TypeOf InnerEx Is MissingMethodException OrElse TypeOf InnerEx Is NotImplementedException OrElse TypeOf InnerEx Is TypeInitializationException Then
|
||||
CommonReason = "PCL 的运行环境存在问题。请尝试重新安装 .NET Framework 4.6.2 然后再试。若无法安装,请先卸载较新版本的 .NET Framework,然后再尝试安装。"
|
||||
ElseIf TypeOf InnerEx Is UnauthorizedAccessException Then
|
||||
CommonReason = "PCL 的权限不足。请尝试右键 PCL,选择以管理员身份运行。"
|
||||
ElseIf TypeOf InnerEx Is OutOfMemoryException Then
|
||||
CommonReason = "你的电脑运行内存不足,导致 PCL 无法继续运行。请在关闭一部分不需要的程序后再试。"
|
||||
ElseIf TypeOf InnerEx Is Runtime.InteropServices.COMException Then
|
||||
CommonReason = "由于操作系统或显卡存在问题,导致出现错误。请尝试重启 PCL。"
|
||||
ElseIf {"远程主机强迫关闭了", "远程方已关闭传输流", "未能解析此远程名称", "由于目标计算机积极拒绝",
|
||||
"操作已超时", "操作超时", "服务器超时", "连接超时"}.Any(Function(s) Desc.Contains(s)) Then
|
||||
CommonReason = "你的网络环境不佳,导致难以连接到服务器。请稍后重试,或使用 VPN 以改善网络环境。"
|
||||
End If
|
||||
|
||||
'构造输出信息
|
||||
Dim CommonReason As String = AnalyzeCommonReason(InnerEx, DescList)
|
||||
If CommonReason IsNot Nothing Then
|
||||
Return CommonReason & "详细错误:" & DescList.First
|
||||
Else
|
||||
@@ -1515,6 +1487,24 @@ RetryDir:
|
||||
Return Join(DescList, " ← ")
|
||||
End If
|
||||
End Function
|
||||
Private Function AnalyzeCommonReason(InnerEx As Exception, DescList As List(Of String)) As String
|
||||
If TypeOf InnerEx Is TypeLoadException OrElse TypeOf InnerEx Is BadImageFormatException OrElse TypeOf InnerEx Is MissingMethodException OrElse TypeOf InnerEx Is NotImplementedException OrElse TypeOf InnerEx Is TypeInitializationException Then
|
||||
Return "PCL 的运行环境存在问题。请尝试重新安装 .NET Framework 4.6.2 然后再试。若无法安装,请先卸载较新版本的 .NET Framework,然后再尝试安装。"
|
||||
ElseIf TypeOf InnerEx Is UnauthorizedAccessException Then
|
||||
Return "PCL 的权限不足。请尝试右键 PCL,选择以管理员身份运行。"
|
||||
ElseIf TypeOf InnerEx Is OutOfMemoryException Then
|
||||
Return "你的电脑运行内存不足,导致 PCL 无法继续运行。请在关闭一部分不需要的程序后再试。"
|
||||
ElseIf TypeOf InnerEx Is Runtime.InteropServices.COMException Then
|
||||
Return "由于操作系统或显卡存在问题,导致出现错误。请尝试重启 PCL。"
|
||||
ElseIf TypeOf InnerEx Is SocketException AndAlso DescList.Any(Function(l) l.Contains("WSAStartup")) Then
|
||||
Return "请尝试卸载中国移动云盘,然后再试。"
|
||||
ElseIf {"远程主机强迫关闭了", "远程方已关闭传输流", "未能解析此远程名称", "由于目标计算机积极拒绝",
|
||||
"操作已超时", "操作超时", "服务器超时", "连接超时"}.Any(Function(s) DescList.Any(Function(l) l.Contains(s))) Then
|
||||
Return "你的网络环境不佳,导致难以连接到服务器。请稍后重试,或使用 VPN 以改善网络环境。"
|
||||
Else
|
||||
Return Nothing
|
||||
End If
|
||||
End Function
|
||||
|
||||
''' <summary>
|
||||
''' 返回一个枚举对应的字符串。
|
||||
@@ -1556,7 +1546,7 @@ RetryDir:
|
||||
Return JsonConvert.DeserializeObject(Data, New JsonSerializerSettings With {.DateTimeZoneHandling = DateTimeZoneHandling.Local})
|
||||
Catch ex As Exception
|
||||
Dim Length As Integer = If(Data, "").Length
|
||||
Throw New Exception("格式化 JSON 失败:" & If(Length > 2000, Data.Substring(0, 500) & $"...(全长 {Length} 个字符)..." & Right(Data, 500), Data))
|
||||
Throw New Exception("格式化 JSON 失败:" & If(Length > 2000, Data.Substring(0, 500) & $"...(全长 {Length} 个字符)..." & Right(Data, 500), Data), ex)
|
||||
End Try
|
||||
End Function
|
||||
|
||||
@@ -2641,10 +2631,6 @@ Retry:
|
||||
''' 相对增减控件的左边距。
|
||||
''' </summary>
|
||||
Public Sub DeltaLeft(control As FrameworkElement, newValue As Double)
|
||||
'安全性检查
|
||||
DebugAssert(Not Double.IsNaN(newValue))
|
||||
DebugAssert(Not Double.IsInfinity(newValue))
|
||||
|
||||
If TypeOf control Is Window Then
|
||||
'窗口改变
|
||||
CType(control, Window).Left += newValue
|
||||
@@ -2656,8 +2642,6 @@ Retry:
|
||||
Case HorizontalAlignment.Right
|
||||
control.Margin = New Thickness(control.Margin.Left, control.Margin.Top, control.Margin.Right - newValue, control.Margin.Bottom)
|
||||
'control.Margin = New Thickness(control.Margin.Left, control.Margin.Top, CType(control.Parent, Object).ActualWidth - control.ActualWidth - newValue, control.Margin.Bottom)
|
||||
Case Else
|
||||
DebugAssert(False)
|
||||
End Select
|
||||
End If
|
||||
End Sub
|
||||
@@ -2665,17 +2649,12 @@ Retry:
|
||||
''' 设置控件的左边距。(仅针对置左控件)
|
||||
''' </summary>
|
||||
Public Sub SetLeft(control As FrameworkElement, newValue As Double)
|
||||
DebugAssert(control.HorizontalAlignment = HorizontalAlignment.Left)
|
||||
control.Margin = New Thickness(newValue, control.Margin.Top, control.Margin.Right, control.Margin.Bottom)
|
||||
End Sub
|
||||
''' <summary>
|
||||
''' 相对增减控件的上边距。
|
||||
''' </summary>
|
||||
Public Sub DeltaTop(control As FrameworkElement, newValue As Double)
|
||||
'安全性检查
|
||||
DebugAssert(Not Double.IsNaN(newValue))
|
||||
DebugAssert(Not Double.IsInfinity(newValue))
|
||||
|
||||
If TypeOf control Is Window Then
|
||||
'窗口改变
|
||||
CType(control, Window).Top += newValue
|
||||
@@ -2687,11 +2666,8 @@ Retry:
|
||||
Case VerticalAlignment.Bottom
|
||||
control.Margin = New Thickness(control.Margin.Left, control.Margin.Top, control.Margin.Right, control.Margin.Bottom - newValue)
|
||||
'control.Margin = New Thickness(control.Margin.Left, control.Margin.Top, CType(control.Parent, Object).ActualWidth - control.ActualWidth - newValue, control.Margin.Bottom)
|
||||
Case Else
|
||||
DebugAssert(False)
|
||||
End Select
|
||||
End If
|
||||
|
||||
'If Double.IsNaN(newValue) OrElse Double.IsInfinity(newValue) Then Return '安全性检查
|
||||
'Select Case control.VerticalAlignment
|
||||
' Case VerticalAlignment.Top, VerticalAlignment.Stretch, VerticalAlignment.Center
|
||||
@@ -2705,7 +2681,6 @@ Retry:
|
||||
''' 设置控件的顶边距。(仅针对置上控件)
|
||||
''' </summary>
|
||||
Public Sub SetTop(control As FrameworkElement, newValue As Double)
|
||||
DebugAssert(control.VerticalAlignment = VerticalAlignment.Top)
|
||||
control.Margin = New Thickness(control.Margin.Left, newValue, control.Margin.Right, control.Margin.Bottom)
|
||||
End Sub
|
||||
|
||||
@@ -2989,6 +2964,13 @@ Retry:
|
||||
End If
|
||||
End Select
|
||||
|
||||
'上报
|
||||
If Level >= LogLevel.Hint Then
|
||||
Telemetry("PCL 错误",
|
||||
"Level", GetStringFromEnum(Level),
|
||||
"Title", FilterUserName(FilterAccessToken(Title, "*"), "*"),
|
||||
"Exception", FilterUserName(FilterAccessToken(Text, "*"), "*"))
|
||||
End If
|
||||
End Sub
|
||||
''' <summary>
|
||||
''' 输出错误信息。
|
||||
@@ -3055,6 +3037,13 @@ Retry:
|
||||
End If
|
||||
End Select
|
||||
|
||||
'上报
|
||||
If Level >= LogLevel.Hint Then
|
||||
Telemetry("PCL 异常",
|
||||
"Level", GetStringFromEnum(Level),
|
||||
"Title", FilterUserName(FilterAccessToken(Title, "*"), "*"),
|
||||
"Exception", FilterUserName(FilterAccessToken(ExFull, "*"), "*"))
|
||||
End If
|
||||
End Sub
|
||||
|
||||
'反馈
|
||||
@@ -3091,9 +3080,23 @@ Retry:
|
||||
"文件位置:" & Path)
|
||||
End Sub
|
||||
|
||||
'断言
|
||||
Public Sub DebugAssert(Exp As Boolean)
|
||||
If Not Exp Then Throw New Exception("断言命中")
|
||||
'遥测
|
||||
Public Sub Telemetry([Event] As String, ParamArray Datas As String())
|
||||
If Not Setup.Get("SystemSystemTelemetry") Then Return '用户关闭了遥测
|
||||
If Not ClsBaseUrl.StartsWithF("http") Then Return '开源版没有设置遥测地址
|
||||
RunInNewThread(
|
||||
Sub()
|
||||
Try
|
||||
Log($"[System] 匿名数据上报:{[Event]}")
|
||||
Dim Url As String = $"{ClsBaseUrl}&Event={WebUtility.UrlEncode([Event])}"
|
||||
For i = 0 To Datas.Length - 1 Step 2
|
||||
Url &= "&" & WebUtility.UrlEncode(Datas(i)) & "=" & WebUtility.UrlEncode(Datas(i + 1).Replace(vbCrLf, vbLf))
|
||||
Next
|
||||
NetRequestByClient(Url, MakeLog:=False)
|
||||
Catch
|
||||
Log("[System] 匿名数据上报失败", LogLevel.Debug)
|
||||
End Try
|
||||
End Sub, "Telemetry", ThreadPriority.Lowest)
|
||||
End Sub
|
||||
|
||||
'获取当前的堆栈信息
|
||||
|
||||
@@ -22,9 +22,6 @@ Public Module ModNet
|
||||
Return If(Encoding, Encoding.UTF8).GetString(SendRequest(Url, Method, Content, HeaderDictionary, Timeout:=Timeout, Encoding:=Encoding, UseBrowserUserAgent:=UseBrowserUserAgent))
|
||||
Catch ex As ThreadInterruptedException
|
||||
Throw
|
||||
Catch ex As ResponsedWebException
|
||||
If MakeLog Then Log(ex, "网络请求失败,返回内容为:" & vbCrLf & ex.Response, LogLevel.Developer)
|
||||
Throw
|
||||
Catch ex As Exception
|
||||
If MakeLog Then Log(ex, "网络请求失败", LogLevel.Developer)
|
||||
Throw
|
||||
@@ -244,7 +241,10 @@ RequestFinished:
|
||||
If Response.IsSuccessStatusCode Then
|
||||
Return ResponseBytes
|
||||
Else
|
||||
Throw New ResponsedWebException($"错误码 {Response.StatusCode} ({CInt(Response.StatusCode)}),{Method},{Url}", If(Encoding, Encoding.UTF8).GetString(ResponseBytes))
|
||||
Dim ResponseMessage = If(Encoding, Encoding.UTF8).GetString(ResponseBytes)
|
||||
Throw New ResponsedWebException(
|
||||
$"错误码 {Response.StatusCode} ({CInt(Response.StatusCode)}),{Method},{Url}" &
|
||||
If(String.IsNullOrEmpty(ResponseMessage), "", vbCrLf & ResponseMessage), ResponseMessage)
|
||||
End If
|
||||
Catch ex As ThreadInterruptedException
|
||||
Throw
|
||||
@@ -807,7 +807,7 @@ StartSingleThreadDownload:
|
||||
'是否禁用多线程,以及规定碎片大小
|
||||
Dim TargetUrl As String = GetSource().Url
|
||||
If TargetUrl.Contains("pcl2-server") OrElse TargetUrl.Contains("bmclapi") OrElse TargetUrl.Contains("github.com") OrElse
|
||||
TargetUrl.Contains("optifine.net") OrElse TargetUrl.Contains("modrinth") Then Return Nothing
|
||||
TargetUrl.Contains("optifine.net") OrElse TargetUrl.Contains("modrinth") OrElse TargetUrl.Contains("momot.rs") Then Return Nothing
|
||||
'寻找最大碎片
|
||||
'FUTURE: 下载引擎重做,计算下载源平均链接时间和线程下载速度,按最高时间节省来开启多线程
|
||||
Dim FilePieceMax As NetThread = Threads
|
||||
@@ -990,7 +990,8 @@ NotSupportRange:
|
||||
Th.DownloadDone += RealDataCount
|
||||
ResultStream.Write(ResponseBytes, 0, RealDataCount)
|
||||
'检查速度是否过慢
|
||||
If DeltaTime > 1500 AndAlso DeltaTime > RealDataCount Then '数据包间隔大于 1.5s,且速度小于 1.5K/s
|
||||
If DeltaTime > 1500 AndAlso DeltaTime > RealDataCount AndAlso '数据包间隔大于 1.5s,且速度小于 1.5K/s
|
||||
Th.Source.SingleThread Is Nothing Then '并非单线程下载
|
||||
Throw New TimeoutException("由于速度过慢断开链接,下载 " & RealDataCount & " B,消耗 " & DeltaTime & " ms。")
|
||||
End If
|
||||
Th.LastReceiveTime = GetTimeTick()
|
||||
@@ -1027,7 +1028,8 @@ SourceBreak:
|
||||
End SyncLock
|
||||
'合并
|
||||
If Not IsNoSplit Then ResultStream?.Dispose()
|
||||
If ((FileSize >= 0 AndAlso DownloadDone >= FileSize) OrElse (FileSize = -1 AndAlso DownloadDone > 0)) AndAlso State < NetState.Merge Then Merge(Th)
|
||||
If ((FileSize >= 0 AndAlso DownloadDone >= FileSize) OrElse (FileSize = -1 AndAlso DownloadDone > 0)) AndAlso
|
||||
State < NetState.Merge AndAlso Th.State <> NetState.Error Then Merge(Th)
|
||||
End Try
|
||||
End Sub
|
||||
Private Sub SourceFail(Th As NetThread, ex As Exception, IsMergeFailure As Boolean)
|
||||
@@ -1069,7 +1071,7 @@ SourceBreak:
|
||||
'当前源失败,但还有下载源:正常地继续执行
|
||||
ElseIf Not Retried AndAlso Sources.Count > 1 Then
|
||||
'合并失败或首次下载失败,未重试:将所有下载源重新标记为不允许断点续传的下载源,逐个重新尝试下载
|
||||
Log($"[Download] {LocalName}:文件下载失败,正在自动重试……", If(ModeDebug, LogLevel.Hint, LogLevel.Debug)) '在调试模式下给出红色提示
|
||||
Hint($"{LocalName}:文件下载失败,正在自动重试……", If(ModeDebug, HintType.Critical, HintType.Info)) '在调试模式下给出红色提示
|
||||
Retried = True
|
||||
SyncLock LockSource
|
||||
SourcesOnce.Clear()
|
||||
@@ -1525,10 +1527,14 @@ Retry:
|
||||
'获取实际失败的文件
|
||||
For Each File In Files
|
||||
If File.State <> NetState.Error Then Continue For
|
||||
Dim Detail As String = Join(File.Sources.Select(Function(s) $"{If(s.Ex?.Message, "无错误信息。")}({s.Url})"), vbCrLf)
|
||||
[Error] = New Exception("文件下载失败:" & File.LocalPath & vbCrLf &
|
||||
"各下载源的错误如下:" & vbCrLf &
|
||||
Join(File.Sources.Select(Function(s) $"{If(s.Ex?.Message, "无错误信息。")}({s.Url})"), vbCrLf),
|
||||
"各下载源的错误如下:" & vbCrLf & Detail,
|
||||
[Error])
|
||||
'上报
|
||||
Telemetry("文件下载失败",
|
||||
"FileName", File.LocalName,
|
||||
"Exception", Detail)
|
||||
Exit For
|
||||
Next
|
||||
'在设置 Error 对象后再更改为失败,避免 WaitForExit 无法捕获错误
|
||||
|
||||
@@ -2,7 +2,9 @@
|
||||
|
||||
'构造函数
|
||||
Private TempFolder As String
|
||||
Public Sub New(UUID As Integer)
|
||||
Private TargetVersion As McVersion
|
||||
Public Sub New(Optional TargetVersion As McVersion = Nothing)
|
||||
Me.TargetVersion = TargetVersion
|
||||
'构建文件结构
|
||||
TempFolder = RequestTaskTempFolder()
|
||||
Directory.CreateDirectory(TempFolder & "Temp\")
|
||||
@@ -508,7 +510,7 @@ Done:
|
||||
If LogMc.Contains("Couldn't set pixel format") Then AppendReason(CrashReason.显卡驱动不支持导致无法设置像素格式)
|
||||
If LogMc.Contains("java.lang.OutOfMemoryError") OrElse LogMc.Contains("an out of memory error") Then AppendReason(CrashReason.内存不足)
|
||||
If LogMc.Contains("java.lang.RuntimeException: Shaders Mod detected. Please remove it, OptiFine has built-in support for shaders.") Then AppendReason(CrashReason.ShadersMod与OptiFine同时安装)
|
||||
If LogMc.Contains("java.lang.NoSuchMethodError: sun.security.util.ManifestEntryVerifier") Then AppendReason(CrashReason.低版本Forge与高版本Java不兼容)
|
||||
If LogMc.Contains("java.lang.NoSuchMethodError: sun.security.util.ManifestEntryVerifier") OrElse LogMc.Contains("java.lang.NoSuchMethodError: 'void sun.security.util.ManifestEntryVerifier") Then AppendReason(CrashReason.低版本Forge与高版本Java不兼容)
|
||||
If LogMc.Contains("1282: Invalid operation") Then AppendReason(CrashReason.光影或资源包导致OpenGL1282错误)
|
||||
If LogMc.Contains("signer information does not match signer information of other classes in the same package") Then AppendReason(CrashReason.文件或内容校验失败, If(RegexSeek(LogMc, "(?<=class "")[^']+(?=""'s signer information)"), "").TrimEnd(vbCrLf))
|
||||
If LogMc.Contains("Maybe try a lower resolution resourcepack?") Then AppendReason(CrashReason.材质过大或显卡配置不足)
|
||||
@@ -856,12 +858,13 @@ NextStack:
|
||||
''' <summary>
|
||||
''' 弹出崩溃弹窗,并指导导出崩溃报告。
|
||||
''' </summary>
|
||||
Public Sub Output(IsHandAnalyze As Boolean, Optional ExtraFiles As List(Of String) = Nothing)
|
||||
Public Sub Output(IsManualAnalyze As Boolean, Optional ExtraFiles As List(Of String) = Nothing)
|
||||
'弹窗提示
|
||||
FrmMain.ShowWindowToTop()
|
||||
Select Case MyMsgBox(GetAnalyzeResult(IsHandAnalyze), If(IsHandAnalyze, "错误报告分析结果", "Minecraft 出现错误"),
|
||||
"确定", If(IsHandAnalyze OrElse DirectFile Is Nothing, "", "查看日志"), If(IsHandAnalyze, "", "导出错误报告"),
|
||||
Button2Action:=If(IsHandAnalyze OrElse DirectFile Is Nothing, Nothing,
|
||||
Dim Detail As String = GetAnalyzeResult(IsManualAnalyze)
|
||||
Select Case MyMsgBox(Detail, If(IsManualAnalyze, "错误报告分析结果", "Minecraft 出现错误"),
|
||||
"确定", If(IsManualAnalyze OrElse DirectFile Is Nothing, "", "查看日志"), If(IsManualAnalyze, "", "导出错误报告"),
|
||||
Button2Action:=If(IsManualAnalyze OrElse DirectFile Is Nothing, Nothing,
|
||||
Sub()
|
||||
'弹窗选择:查看日志
|
||||
If File.Exists(DirectFile.Value.Key) Then
|
||||
@@ -918,6 +921,11 @@ NextStack:
|
||||
End Try
|
||||
OpenExplorer(FileAddress)
|
||||
End Select
|
||||
'上报
|
||||
If IsManualAnalyze Then Return
|
||||
Telemetry("Minecraft 崩溃",
|
||||
"Version", If(TargetVersion Is Nothing, "null", TargetVersion.Version.ToString),
|
||||
"Detail", FilterUserName(Detail, "*"))
|
||||
End Sub
|
||||
''' <summary>
|
||||
''' 获取崩溃分析的结果描述。
|
||||
@@ -1102,7 +1110,7 @@ NextStack:
|
||||
If(Not Results.Any(Function(r) r.EndsWithF("\h")) OrElse IsHandAnalyze, "",
|
||||
vbCrLf & "如果要寻求帮助,请把错误报告文件发给对方,而不是发送这个窗口的照片或者截图。" &
|
||||
If(If(PageSetupSystem.IsLauncherNewest(), True), "",
|
||||
vbCrLf & vbCrLf & "此外,你正在使用老版本 PCL,更新 PCL 或许也能解决这个问题。" & vbCrLf & "你可以点击 设置 → 启动器 → 检查更新 来更新 PCL。"))
|
||||
vbCrLf & vbCrLf & "此外,你正在使用老版本 PCL,更新 PCL 或许也能解决这个问题。" & vbCrLf & "你可以点击 [设置 → 其他 → 启动器 → 检查更新] 更新 PCL。"))
|
||||
End Function
|
||||
|
||||
End Class
|
||||
|
||||
@@ -594,7 +594,7 @@
|
||||
VersionName = Version
|
||||
Me.Version = New Version(Version)
|
||||
Me.Inherit = Inherit
|
||||
FileVersion = Version & If(Branch Is Nothing, "", "-" & Branch)
|
||||
FileVersion = Version & If(Branch Is Nothing, "", "-" & Branch)
|
||||
End Sub
|
||||
End Class
|
||||
|
||||
@@ -1106,26 +1106,27 @@
|
||||
Public Function DlModRequest(Url As String, Optional Method As HttpMethod = Nothing,
|
||||
Optional Content As String = Nothing, Optional ContentType As String = Nothing) As JToken
|
||||
Dim Urls As New List(Of KeyValuePair(Of String, Integer))
|
||||
Urls.Add(New KeyValuePair(Of String, Integer)(Url, 10)) '至少 10s,要不然有时候远端服务器来不及完成
|
||||
Urls.Add(New KeyValuePair(Of String, Integer)(Url, 30))
|
||||
'Dim McimUrl As String = DlSourceModGet(Url)
|
||||
'If McimUrl <> Url Then
|
||||
' Select Case Setup.Get("ToolDownloadMod")
|
||||
' Case 0
|
||||
' Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 10))
|
||||
' Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 30))
|
||||
' Urls.Add(New KeyValuePair(Of String, Integer)(Url, 30))
|
||||
' Case 1
|
||||
' Urls.Add(New KeyValuePair(Of String, Integer)(Url, 10))
|
||||
' Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 10))
|
||||
' Urls.Add(New KeyValuePair(Of String, Integer)(Url, 30))
|
||||
' Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 30))
|
||||
' Case Else
|
||||
' Urls.Add(New KeyValuePair(Of String, Integer)(Url, 10))
|
||||
' Urls.Add(New KeyValuePair(Of String, Integer)(Url, 30))
|
||||
' Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 30))
|
||||
' End Select
|
||||
'End If
|
||||
Dim McimUrl As String = DlSourceModGet(Url)
|
||||
If McimUrl <> Url Then
|
||||
Select Case Setup.Get("ToolDownloadMod")
|
||||
Case 0
|
||||
Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 10))
|
||||
Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 10))
|
||||
Urls.Add(New KeyValuePair(Of String, Integer)(Url, 30))
|
||||
Case 1
|
||||
Urls.Add(New KeyValuePair(Of String, Integer)(Url, 10)) '至少 10s,要不然有时候远端服务器来不及完成
|
||||
Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 10))
|
||||
Urls.Add(New KeyValuePair(Of String, Integer)(Url, 30))
|
||||
Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 30))
|
||||
Case Else
|
||||
Urls.Add(New KeyValuePair(Of String, Integer)(Url, 10))
|
||||
Urls.Add(New KeyValuePair(Of String, Integer)(Url, 30))
|
||||
Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 30))
|
||||
End Select
|
||||
Else
|
||||
Urls.Add(New KeyValuePair(Of String, Integer)(Url, 10))
|
||||
Urls.Add(New KeyValuePair(Of String, Integer)(Url, 30))
|
||||
End If
|
||||
Dim Exs As String = ""
|
||||
For Each Source In Urls
|
||||
Try
|
||||
@@ -1232,7 +1233,14 @@
|
||||
|
||||
'Mod 下载源
|
||||
Public Function DlSourceModGet(Original As String) As String
|
||||
Return Original
|
||||
Return Original.
|
||||
Replace("api.modrinth.com", "mod.mcimirror.top/modrinth").
|
||||
Replace("staging-api.modrinth.com", "mod.mcimirror.top/modrinth").
|
||||
Replace("cdn.modrinth.com", "mod.mcimirror.top").
|
||||
Replace("api.curseforge.com", "mod.mcimirror.top/curseforge").
|
||||
Replace("edge.forgecdn.net", "mod.mcimirror.top").
|
||||
Replace("mediafilez.forgecdn.net", "mod.mcimirror.top").
|
||||
Replace("media.forgecdn.net", "mod.mcimirror.top")
|
||||
End Function
|
||||
|
||||
'Loader 自动切换
|
||||
|
||||
@@ -66,7 +66,7 @@ Public Module ModLaunch
|
||||
''' </summary>
|
||||
Public Sub McLaunchLog(Text As String)
|
||||
Text = FilterUserName(FilterAccessToken(Text, "*"), "*")
|
||||
RunInUi(Sub() FrmLaunchRight.LabLog.Text += vbCrLf & "[" & GetTimeNow() & "] " & Text)
|
||||
RunInUi(Sub() FrmLaunchRight.LabLog.Text += $"{vbCrLf}[{GetTimeNow()}] {Text}")
|
||||
Log("[Launch] " & Text)
|
||||
End Sub
|
||||
|
||||
@@ -101,6 +101,8 @@ Public Module ModLaunch
|
||||
If Not ex.Message.StartsWithF("$$") Then Hint(ex.Message, HintType.Critical)
|
||||
Throw
|
||||
End Try
|
||||
Dim IsSavingBatch As Boolean = CurrentLaunchOptions?.SaveBatch IsNot Nothing
|
||||
|
||||
'正式加载
|
||||
Try
|
||||
'构造主加载器
|
||||
@@ -145,9 +147,15 @@ Public Module ModLaunch
|
||||
Select Case LaunchLoader.State
|
||||
Case LoadState.Finished
|
||||
Hint(McVersionCurrent.Name & " 启动成功!", HintType.Finish)
|
||||
'上报
|
||||
If Not IsSavingBatch Then
|
||||
Telemetry("Minecraft 启动成功",
|
||||
"Version", McVersionCurrent.Version.ToString,
|
||||
"LoginType", GetStringFromEnum(CType(Setup.Get("LoginType"), McLoginType)))
|
||||
End If
|
||||
Case LoadState.Aborted
|
||||
If AbortHint Is Nothing Then
|
||||
Hint(If(CurrentLaunchOptions?.SaveBatch Is Nothing, "已取消启动!", "已取消导出启动脚本!"), HintType.Info)
|
||||
Hint(If(IsSavingBatch, "已取消导出启动脚本!", "已取消启动!"), HintType.Info)
|
||||
Else
|
||||
Hint(AbortHint, HintType.Finish)
|
||||
End If
|
||||
@@ -162,7 +170,7 @@ NextInner:
|
||||
If CurrentEx.Message.StartsWithF("$") Then
|
||||
'若有以 $ 开头的错误信息,则以此为准显示提示
|
||||
'若错误信息为 $$,则不提示
|
||||
If Not CurrentEx.Message = "$$" Then MyMsgBox(CurrentEx.Message.TrimStart("$"), If(CurrentLaunchOptions?.SaveBatch Is Nothing, "启动失败", "导出启动脚本失败"))
|
||||
If Not CurrentEx.Message = "$$" Then MyMsgBox(CurrentEx.Message.TrimStart("$"), If(IsSavingBatch, "导出启动脚本失败", "启动失败"))
|
||||
Throw
|
||||
ElseIf CurrentEx.InnerException IsNot Nothing Then
|
||||
'检查下一级错误
|
||||
@@ -172,8 +180,15 @@ NextInner:
|
||||
'没有特殊处理过的错误信息
|
||||
McLaunchLog("错误:" & GetExceptionDetail(ex))
|
||||
Log(ex,
|
||||
If(CurrentLaunchOptions?.SaveBatch Is Nothing, "Minecraft 启动失败", "导出启动脚本失败"), LogLevel.Msgbox,
|
||||
If(CurrentLaunchOptions?.SaveBatch Is Nothing, "启动失败", "导出启动脚本失败"))
|
||||
If(IsSavingBatch, "导出启动脚本失败", "Minecraft 启动失败"), LogLevel.Msgbox,
|
||||
If(IsSavingBatch, "导出启动脚本失败", "启动失败"))
|
||||
'上报
|
||||
If Not IsSavingBatch Then
|
||||
Telemetry("Minecraft 启动失败",
|
||||
"Version", McVersionCurrent.Version.ToString,
|
||||
"LoginType", GetStringFromEnum(CType(Setup.Get("LoginType"), McLoginType)),
|
||||
"Exception", FilterUserName(FilterAccessToken(GetExceptionDetail(ex), "*"), "*"))
|
||||
End If
|
||||
Throw
|
||||
End If
|
||||
End Try
|
||||
@@ -891,9 +906,9 @@ Retry:
|
||||
ContentType:="application/x-www-form-urlencoded",
|
||||
Headers:={{"Accept-Language", "en-US,en;q=0.5"}, {"X-Requested-With", "XMLHttpRequest"}},
|
||||
ThreadCount:=2)
|
||||
Catch ex As Exception
|
||||
If ex.Message.ContainsF("must sign in again", True) OrElse ex.Message.ContainsF("password expired", True) OrElse
|
||||
(ex.Message.Contains("refresh_token") AndAlso ex.Message.Contains("is not valid")) Then '#269
|
||||
Catch ex As ResponsedWebException
|
||||
If ex.Response.ContainsF("must sign in again", True) OrElse ex.Response.ContainsF("password expired", True) OrElse
|
||||
(ex.Response.Contains("refresh_token") AndAlso ex.Response.Contains("is not valid")) Then '#269
|
||||
Return {"Relogin", ""}
|
||||
Else
|
||||
Throw
|
||||
@@ -942,20 +957,20 @@ Retry:
|
||||
Try
|
||||
Result = NetRequestByClientMultiple("https://xsts.auth.xboxlive.com/xsts/authorize", HttpMethod.Post,
|
||||
Content:=Request, ContentType:="application/json")
|
||||
Catch ex As Net.WebException
|
||||
Catch ex As ResponsedWebException
|
||||
'参考 https://github.com/PrismarineJS/prismarine-auth/blob/master/src/common/Constants.js
|
||||
If ex.Message.Contains("2148916227") Then
|
||||
If ex.Response.Contains("2148916227") Then
|
||||
MyMsgBox("该账号似乎已被微软封禁,无法登录。", "登录失败", "我知道了", IsWarn:=True)
|
||||
Throw New Exception("$$")
|
||||
ElseIf ex.Message.Contains("2148916233") Then
|
||||
ElseIf ex.Response.Contains("2148916233") Then
|
||||
If MyMsgBox("你尚未注册 Xbox 账户,请在注册后再登录。", "登录提示", "注册", "取消") = 1 Then
|
||||
OpenWebsite("https://signup.live.com/signup")
|
||||
End If
|
||||
Throw New Exception("$$")
|
||||
ElseIf ex.Message.Contains("2148916235") Then
|
||||
ElseIf ex.Response.Contains("2148916235") Then
|
||||
MyMsgBox($"你的网络所在的国家或地区无法登录微软账号。{vbCrLf}请使用加速器或 VPN。", "登录失败", "我知道了")
|
||||
Throw New Exception("$$")
|
||||
ElseIf ex.Message.Contains("2148916238") Then
|
||||
ElseIf ex.Response.Contains("2148916238") Then
|
||||
If MyMsgBox("该账号年龄不足,你需要先修改出生日期,然后才能登录。" & vbCrLf &
|
||||
"该账号目前填写的年龄是否在 13 岁以上?", "登录提示", "13 岁以上", "12 岁以下", "我不知道") = 1 Then
|
||||
OpenWebsite("https://account.live.com/editprof.aspx")
|
||||
@@ -1364,13 +1379,13 @@ Retry:
|
||||
McLaunchLog("新版 Game 参数获取成功")
|
||||
End If
|
||||
'编码参数(#4700、#5892、#5909)
|
||||
If McLaunchJavaSelected.VersionCode >= 18 Then 'Dfile.encoding 需要放在 Dstdout.encoding 后面(#6934)
|
||||
If Not Arguments.Contains("-Dfile.encoding=") Then Arguments = "-Dfile.encoding=COMPAT " & Arguments
|
||||
End If
|
||||
If McLaunchJavaSelected.VersionCode > 8 Then
|
||||
If Not Arguments.Contains("-Dstdout.encoding=") Then Arguments = "-Dstdout.encoding=UTF-8 " & Arguments
|
||||
If Not Arguments.Contains("-Dstderr.encoding=") Then Arguments = "-Dstderr.encoding=UTF-8 " & Arguments
|
||||
End If
|
||||
If McLaunchJavaSelected.VersionCode >= 18 Then
|
||||
If Not Arguments.Contains("-Dfile.encoding=") Then Arguments = "-Dfile.encoding=COMPAT " & Arguments
|
||||
End If
|
||||
'MJSB
|
||||
Arguments = Arguments.Replace(" -Dos.name=Windows 10", " -Dos.name=""Windows 10""")
|
||||
'全屏
|
||||
@@ -1692,7 +1707,7 @@ NextVersion:
|
||||
GameArguments.Add("${access_token}", McLoginLoader.Output.AccessToken)
|
||||
GameArguments.Add("${auth_session}", McLoginLoader.Output.AccessToken)
|
||||
GameArguments.Add("${user_type}", "msa") '#1221
|
||||
GameArguments.Add("${primary_jar}", Version.Path & Version.Name & ".jar")
|
||||
GameArguments.Add("${primary_jar}", Version.Path & Version.Name & ".jar") '#6942
|
||||
|
||||
'窗口尺寸参数
|
||||
Dim GameSize As Size
|
||||
|
||||
@@ -989,7 +989,7 @@ ExitDataLoad:
|
||||
If ToString = "" Then
|
||||
Return "原版 " & McName
|
||||
Else
|
||||
Return McName & ToString & If(ModeDebug, " (" & SortCode & "#)", "")
|
||||
Return McName & ToString
|
||||
End If
|
||||
End Function
|
||||
|
||||
@@ -2415,7 +2415,7 @@ NextEntry:
|
||||
Public Function FilterUserName(Raw As String, FilterChar As Char) As String
|
||||
If Raw.Contains(":\Users\") Then
|
||||
For Each Token In RegexSearch(Raw, "(?<=:\\Users\\)[^\\]+")
|
||||
Raw = Raw.Replace(Token, New String(FilterChar, Token.Count))
|
||||
Raw = Raw.Replace("\" & Token, "\" & New String(FilterChar, Token.Count))
|
||||
Next
|
||||
End If
|
||||
Return Raw
|
||||
|
||||
@@ -349,14 +349,14 @@
|
||||
State = MinecraftState.Crashed
|
||||
'崩溃分析
|
||||
WatcherLog("Minecraft 已崩溃,将在 2 秒后开始崩溃分析")
|
||||
Hint("检测到 Minecraft 出现错误,错误分析已开始……")
|
||||
Hint("检测到 Minecraft 出现错误,错误分析已开始……", HintType.Critical)
|
||||
FeedbackInfo()
|
||||
RunInNewThread(
|
||||
Sub()
|
||||
Try
|
||||
Thread.Sleep(2000)
|
||||
WatcherLog("崩溃分析开始")
|
||||
Dim Analyzer As New CrashAnalyzer(PID)
|
||||
Dim Analyzer As New CrashAnalyzer(Version)
|
||||
Analyzer.Collect(Version.PathIndie, LatestLog.ToList)
|
||||
Analyzer.Prepare()
|
||||
Analyzer.Analyze(Version)
|
||||
|
||||
@@ -116,11 +116,8 @@
|
||||
End Try
|
||||
|
||||
Case "修改设置"
|
||||
If Setup.IsEncoded(Data(0)) Then
|
||||
Throw New Exception($"无法修改受加密保护的设置:{Data(0)}")
|
||||
End If
|
||||
Setup.Set(Data(0), Data(1))
|
||||
Hint("已修改设置!", HintType.Finish)
|
||||
Hint($"已写入设置:{Data(0)} → {Data(1)}", HintType.Finish)
|
||||
|
||||
Case Else
|
||||
MyMsgBox("未知的事件类型:" & Type & vbCrLf & "请检查事件类型填写是否正确,或者 PCL 是否为最新版本。", "事件执行失败")
|
||||
|
||||
@@ -12,6 +12,8 @@ Friend Module ModSecret
|
||||
Public OAuthClientId As String = If(Environment.GetEnvironmentVariable("PCL_MS_CLIENT_ID"), "")
|
||||
'CurseForge API Key
|
||||
Public CurseForgeAPIKey As String = If(Environment.GetEnvironmentVariable("PCL_CURSEFORGE_API_KEY"), "")
|
||||
'用于匿名数据收集的腾讯云日志服务上报 URL,形如 https://{region}.cls.tencentcs.com/track?topic_id={topic_id}
|
||||
Public Const ClsBaseUrl As String = ""
|
||||
|
||||
Friend Sub SecretOnApplicationStart()
|
||||
'提升 UI 线程优先级
|
||||
|
||||
+1
-1
@@ -137,7 +137,7 @@ Public Class DragHelper
|
||||
Dim fileCount As UInteger = DragQueryFile(wParam, UInteger.MaxValue, Nothing, 0)
|
||||
ReDim dropFilePaths(CInt(fileCount) - 1)
|
||||
|
||||
For i As UInteger = 0 To fileCount - 1
|
||||
For i As UInteger = 0 To CInt(fileCount) - 1
|
||||
Dim sb As New StringBuilder(MAX_PATH)
|
||||
Dim result As UInteger = DragQueryFile(wParam, i, sb, sb.Capacity)
|
||||
If result > 0 Then dropFilePaths(i) = sb.ToString()
|
||||
|
||||
@@ -51,6 +51,6 @@ Imports System.Runtime.InteropServices
|
||||
' 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
|
||||
' 方法是按如下所示使用“*”
|
||||
|
||||
<Assembly: AssemblyVersion("2.10.5.0")>
|
||||
<Assembly: AssemblyFileVersion("2.10.5.0")>
|
||||
<Assembly: AssemblyVersion("2.10.6.0")>
|
||||
<Assembly: AssemblyFileVersion("2.10.6.0")>
|
||||
<Assembly: NeutralResourcesLanguage("")>
|
||||
|
||||
@@ -243,19 +243,21 @@
|
||||
If Not IsNothing(PageNew) AndAlso Not IsNothing(PageNew.Parent) Then PageNew.SetValue(ContentPresenter.ContentProperty, Nothing)
|
||||
If Anim Then
|
||||
'动画
|
||||
Dispatcher.Invoke(Sub()
|
||||
'执行动画
|
||||
AniStart({
|
||||
AaOpacity(PanLogin, -PanLogin.Opacity, 100,, New AniEaseOutFluent),
|
||||
AaCode(Sub()
|
||||
AniControlEnabled += 1
|
||||
PanLogin.Children.Clear()
|
||||
PanLogin.Children.Add(PageNew)
|
||||
AniControlEnabled -= 1
|
||||
End Sub, 100),
|
||||
AaOpacity(PanLogin, 1, 100, 120, New AniEaseInFluent)
|
||||
}, "FrmLogin PageChange")
|
||||
End Sub, Threading.DispatcherPriority.Render)
|
||||
Dispatcher.Invoke(
|
||||
Sub()
|
||||
'执行动画
|
||||
AniStart({
|
||||
AaOpacity(PanLogin, -PanLogin.Opacity, 100,, New AniEaseOutFluent),
|
||||
AaCode(
|
||||
Sub()
|
||||
AniControlEnabled += 1
|
||||
PanLogin.Children.Clear()
|
||||
PanLogin.Children.Add(PageNew)
|
||||
AniControlEnabled -= 1
|
||||
End Sub, 100),
|
||||
AaOpacity(PanLogin, 1, 100, 120, New AniEaseInFluent)
|
||||
}, "FrmLogin PageChange")
|
||||
End Sub, Threading.DispatcherPriority.Render)
|
||||
Else
|
||||
'无动画
|
||||
AniControlEnabled += 1
|
||||
|
||||
@@ -93,7 +93,7 @@ Download:
|
||||
GoTo Download
|
||||
Case 3
|
||||
Log("[Page] 主页预设:简单主页")
|
||||
Url = "https://raw.gitcode.com/mfn233/PCL-Mainpage/raw/main/Custom.xaml"
|
||||
Url = "https://pclhomeplazaoss.lingyunawa.top:26994/d/Homepages/MFn233/Custom.xaml"
|
||||
GoTo Download
|
||||
Case 4
|
||||
Log("[Page] 主页预设:每日整合包推荐")
|
||||
@@ -129,7 +129,7 @@ Download:
|
||||
GoTo Download
|
||||
Case 12
|
||||
Log("[Page] 主页预设:PCL GitHub 仪表盘")
|
||||
Url = "https://raw.gitcode.com/Deep-Dark-Forest/PCL2-GitHub-Dashboard-Homepage/raw/main/custom.xaml"
|
||||
Url = "https://ddf.pcl-community.org/Custom.xaml"
|
||||
GoTo Download
|
||||
End Select
|
||||
End Select
|
||||
|
||||
@@ -1,492 +1,451 @@
|
||||
<local:MyPageRight
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:local="clr-namespace:PCL" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
mc:Ignorable="d" x:Class="PageOtherAbout"
|
||||
PanScroll="{Binding ElementName=PanBack}" RenderOptions.BitmapScalingMode="LowQuality">
|
||||
<local:MyScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Disabled" x:Name="PanBack">
|
||||
<StackPanel x:Name="PanMain" Margin="25,10" Grid.IsSharedSizeScope="True">
|
||||
<local:MyCard Margin="0,15" Title="关于">
|
||||
<Grid Margin="21,40,21,16">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="45" />
|
||||
<RowDefinition Height="45" />
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="40" />
|
||||
<ColumnDefinition />
|
||||
<ColumnDefinition Width="150" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<local:MyListItem IsHitTestVisible="False" Title="龙腾猫跃" Margin="-5,0,15,0" Info="Plain Craft Launcher 的作者!" Grid.Row="0" Grid.Column="1" />
|
||||
<local:MyListItem IsHitTestVisible="False" Title="Plain Craft Launcher 2" Margin="-5,0,15,0" Info="当前版本:%VERSION%(%VERSIONCODE%.%BRANCH%)" Grid.Row="1" Grid.Column="1" x:Name="ItemAboutPcl" />
|
||||
<Image Source="/Plain Craft Launcher 2;component/Images/Heads/Logo.png" Grid.Row="1" Margin="3">
|
||||
<Image.Clip>
|
||||
<EllipseGeometry Center="17 17" RadiusX="17" RadiusY="17" />
|
||||
</Image.Clip>
|
||||
</Image>
|
||||
<Image Source="/Plain Craft Launcher 2;component/Images/Heads/LTCat.jpg" Grid.Row="0" Margin="3">
|
||||
<Image.Clip>
|
||||
<EllipseGeometry Center="17 17" RadiusX="17" RadiusY="17" />
|
||||
</Image.Clip>
|
||||
</Image>
|
||||
<local:MyButton Text="赞助作者" Grid.Column="2" Grid.Row="0" Height="35" EventType="打开网页" EventData="https://afdian.com/a/LTCat" />
|
||||
<local:MyButton Text="查看源代码" Grid.Column="2" Grid.Row="1" Height="35" EventType="打开网页" EventData="https://github.com/Hex-Dragon/PCL2" />
|
||||
</Grid>
|
||||
</local:MyCard>
|
||||
<local:MyCard Margin="0,0,0,15" Title="特别鸣谢">
|
||||
<Grid Margin="21,40,21,16">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="45" />
|
||||
<RowDefinition Height="45" />
|
||||
<RowDefinition Height="45" />
|
||||
<RowDefinition Height="45" />
|
||||
<RowDefinition Height="45" />
|
||||
<RowDefinition Height="45" />
|
||||
<RowDefinition Height="45" />
|
||||
<RowDefinition Height="45" />
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="40" />
|
||||
<ColumnDefinition />
|
||||
<ColumnDefinition Width="150" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<local:MyListItem Title="bangbang93" Margin="-5,0,15,0" IsHitTestVisible="False" Info="提供 BMCLAPI 镜像源和 Forge 安装工具,详见 https://bmclapi.bangbang93.com" Grid.Row="0" Grid.Column="1" />
|
||||
<local:MyButton x:Name="BtnAboutBmclapi" Text="赞助镜像源" Grid.Row="0" Grid.Column="2" Height="35" />
|
||||
<local:MyListItem Title="MC 百科" Margin="-5,0,0,0" IsHitTestVisible="False" Grid.ColumnSpan="2" Info="提供了 Mod 名称的中文翻译和更多相关信息!" Grid.Row="1" Grid.Column="1" />
|
||||
<local:MyButton x:Name="BtnAboutWiki" Text="打开百科" Grid.Row="1" Grid.Column="2" Height="35" />
|
||||
<local:MyListItem Title="00ll00" Margin="-5,0,0,0" IsHitTestVisible="False" Grid.ColumnSpan="2" Info="提供了 Java Launch Wrapper 和一些重要服务支持!" Grid.Row="2" Grid.Column="1" />
|
||||
<local:MyListItem Title="z0z0r4" Margin="-5,0,0,0" IsHitTestVisible="False" Grid.ColumnSpan="2" Info="提供了 MCIM 中国 Mod 下载镜像源和帮助库图床!" Grid.Row="3" Grid.Column="1" />
|
||||
<local:MyListItem Title="Patrick" Margin="-5,0,0,0" IsHitTestVisible="False" Grid.ColumnSpan="2" Info="设计并制作了 PCL 图标,让我从做图标的水深火热中得到了解脱……" Grid.Row="4" Grid.Column="1" />
|
||||
<local:MyListItem Title="Hao_Tian" Margin="-5,0,0,0" IsHitTestVisible="False" Grid.ColumnSpan="2" Info="在内测中找出了一大堆没人想得到的诡异 Bug,有非同寻常的 Bug 体质" Grid.Row="5" Grid.Column="1" />
|
||||
<local:MyListItem Title="Minecraft 中文论坛" Margin="-5,0,15,0" IsHitTestVisible="False" Info="虽然已经关站了,但感谢此前提供了 MCBBS 镜像源……" Grid.Row="6" Grid.Column="1" />
|
||||
<local:MyListItem Title="PCL 内群的各位" Margin="-5,0,0,0" IsHitTestVisible="False" Grid.ColumnSpan="2" Info="感谢内群的沙雕网友们这么久以来对我和 PCL 的支持与鼓励!" Grid.Row="7" Grid.Column="1" />
|
||||
<Image Source="/Plain Craft Launcher 2;component/Images/Heads/bangbang93.png" Grid.Row="0" Margin="3">
|
||||
<Image.Clip>
|
||||
<EllipseGeometry Center="17 17" RadiusX="17" RadiusY="17" />
|
||||
</Image.Clip>
|
||||
</Image>
|
||||
<Image Source="/Plain Craft Launcher 2;component/Images/Heads/wiki.png" Grid.Row="1" Margin="3">
|
||||
<Image.Clip>
|
||||
<EllipseGeometry Center="17 17" RadiusX="17" RadiusY="17" />
|
||||
</Image.Clip>
|
||||
</Image>
|
||||
<Image Source="/Plain Craft Launcher 2;component/Images/Heads/00ll00.png" Grid.Row="2" Margin="3">
|
||||
<Image.Clip>
|
||||
<EllipseGeometry Center="17 17" RadiusX="17" RadiusY="17" />
|
||||
</Image.Clip>
|
||||
</Image>
|
||||
<Image Source="/Plain Craft Launcher 2;component/Images/Heads/z0z0r4.png" Grid.Row="3" Margin="3">
|
||||
<Image.Clip>
|
||||
<EllipseGeometry Center="17 17" RadiusX="17" RadiusY="17" />
|
||||
</Image.Clip>
|
||||
</Image>
|
||||
<Image Source="/Plain Craft Launcher 2;component/Images/Heads/Patrick.png" Grid.Row="4" Margin="3">
|
||||
<Image.Clip>
|
||||
<EllipseGeometry Center="17 17" RadiusX="17" RadiusY="17" />
|
||||
</Image.Clip>
|
||||
</Image>
|
||||
<Image Source="/Plain Craft Launcher 2;component/Images/Heads/Hao_Tian.jpg" Grid.Row="5" Margin="3">
|
||||
<Image.Clip>
|
||||
<EllipseGeometry Center="17 17" RadiusX="17" RadiusY="17" />
|
||||
</Image.Clip>
|
||||
</Image>
|
||||
<Image Source="/Plain Craft Launcher 2;component/Images/Heads/MCBBS.png" Grid.Row="6" Margin="3">
|
||||
<Image.Clip>
|
||||
<EllipseGeometry Center="17 17" RadiusX="17" RadiusY="17" />
|
||||
</Image.Clip>
|
||||
</Image>
|
||||
<Image Source="/Plain Craft Launcher 2;component/Images/Heads/PCL2.png" Grid.Row="7" Margin="3">
|
||||
<Image.Clip>
|
||||
<EllipseGeometry Center="17 17" RadiusX="17" RadiusY="17" />
|
||||
</Image.Clip>
|
||||
</Image>
|
||||
</Grid>
|
||||
</local:MyCard>
|
||||
<local:MyCard Margin="0,0,0,15" Title="赞助者">
|
||||
<StackPanel Margin="25,40,10,20">
|
||||
<TextBlock HorizontalAlignment="Left" Text="以下是 2025 年 6 月的高级赞助者们!感谢各位对 PCL 和伟大的咕咕咕事业的支持!" Margin="0,0,25,5.5" TextTrimming="None" TextWrapping="WrapWithOverflow" />
|
||||
<WrapPanel Margin="0,0,0,10">
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="星月" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Nemo" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="长歌当天" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="飒黎lIlIlI" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="hy" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="SaDhhJe" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="风铃子啊" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="柠娜" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="W丶北辰" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="才KRE" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Yang_mistakeof" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="close eyes" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="顾顾" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="LTuuxj" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="花吃" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="FICazk" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="屑屑你" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="凉凉" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="WDSJ" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Tohka" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="lz" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="哦嚯嚯嚯皮筋头" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="陈肖杰" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="MC小满" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="残光" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="玖玖璃" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="水晶OTZ" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="伯克礼" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="白猫海贼船" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="zhang1232" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Never" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Fish_pomelo" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="生风" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="富士山下" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="小七" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="发呆的呆毛君" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="天黑时看月亮" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="夜枫" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="_章333_" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="孙杰" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="wby" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="封尾==" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="你与空白皆无名" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="鱼" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="zzxniubi" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="炎燚火淼淼" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="三巿" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="奈落" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="华佗" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="oran9e" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="赤冰雨" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Urizen" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text=":)" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="skyqyzm" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="橘子皮丶" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="额外awa" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="安上月" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="念城南" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="多低山丘陵" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="书童呀" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="sxy192425" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="李好啊" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="MH_Nine" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="周先生" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="原" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="良田满穗" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="柴" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="庭师" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="。,。" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="DHLH" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Xayj" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="绳网用户#37" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="LLLL" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="深绯红" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="奇伢七星" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Akapigo" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Shink_guns" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Aqua 极&坏." />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="大事化小蛋糕" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Nakiya233" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="花小妖" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="septebr" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="一只马喽" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="下暴雨BWB" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="QAQ" />
|
||||
<TextBlock Width="240" Margin="0,1.5" Text="sl土豆社区服主B友" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Wang" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="......" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="ResTmoW" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="bochibochibo" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="铸魂之灵" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="柏柏柏" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Mart1s" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="KuruM148" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="KaiTouCrow" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="LIE-SHAN" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="慈悲方舟" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="于析" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="陌道" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="摇椅上的猫" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="五个麦卷" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Miraclepoi" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="XiaoLI" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="啊吧啊吧的肥宅" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="不娶雨婷不改名" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="oppo19" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="博麗靈夢" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="莹 of yours" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="ChinaFZXPVP" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="城之内sama" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="ENXI" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="steve_c418" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="洛长安" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="magic_muggle" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="小猫游六喵" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="JY" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="雪豹起司可颂" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="wlsy" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="齐先生爱溜达" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="是小泠啊" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="xioyiao" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="BunnyMiku" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="dadagga" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="无极之笔" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="xiaoyu" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="王梓杰" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="wjbjjd" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Candy_Mo" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="lettmin_" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="七九·Alnasl" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="辉" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="何为最优解" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="crazy丶天人" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="XsBlueSky" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="冬将軍" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="tiechui" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Liu2Shi2Pu2" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Yu_s" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="刘四妹" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="枝皙" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="CC" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Slana23" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="MMMy" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Venuse" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="microjie" />
|
||||
<TextBlock Width="240" Margin="0,1.5" Text="Miner#Cetyleno~^" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="春江花月夜" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="落南子" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="AL1Su-爱丽丝" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="我木有呆毛" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="乌羽" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="知性de含羞草" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="星の殇" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="IED LTAM" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="格罗夫斯基" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="梦启泉" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="岁月无痕" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="????" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="超级脑壳" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="空梦" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="薛小欣" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="蛋黄豆角" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="芒果茶州" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="癫风院院长" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="三十一" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="美醉了" />
|
||||
<TextBlock Width="240" Margin="0,1.5" Text="中科院在逃量子计算机" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="." />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="枫" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="jjj" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="clilick" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="我很快乐" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Phoenix tamer" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Lsp77" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="太阳神" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="ikun0014" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="IncredibleYu" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="在下粉毛控" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="SuperCrazyK" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="阿柔" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="HaKNa" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="胡十一" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="菲利絲" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="迷梦的羽" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="20018" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="波比科普员" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Xiao_JIA" />
|
||||
<TextBlock Width="240" Margin="0,1.5" Text="龙腾我是你的头号粉丝" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="keer1563" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="百鬼まル" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="DPSYnt" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="七色彩羽" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="臭氧化碳" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="情来风" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="柒月" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="汪汪队队长" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="迷路的猫" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="ktyxlan_lan" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="琳琅039" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="黑色额度" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="sahaua" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="宦昭" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="镜刹" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="房石诶多" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="熊" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="NQ" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="我志永纯" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="漫城" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="憨憨的小草" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="泽涛" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="星海鹿樱" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="祭°" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="赛冷特呀" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="无妄之灾" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="ZGW2008" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="没事多喝感冒灵" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="一梦筱筱" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="twokness" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="hhy7171" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="子虚" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="猫羽" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="有氧丁真" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="dddr" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="天气热" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Emmanuel" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="夕尽暮染" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Bob_Marcus" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="初心无尘" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="朱利安" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="461863352" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="庭" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Xing_K" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="yzt" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="nuycn" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="鸡人" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="爱无界i" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Zik yeung" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="墨子吉安" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="柠果籽" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="cai1" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="小比登T^T" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="hb" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="caizzz" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="yyin" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="無言" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="修" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="改头换面" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="无敌百搭的款式" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="御坂1354号" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="木子" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="萤火焱攸" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="盼盼不是Panda" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="烤肉真香" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="ZhuTan12" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="tom" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="洛竹" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="foob" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Garylu" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="阮绍轩" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="xin822" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="BAIgivele" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="ljc" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="暖笑" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="焦糖流酥" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="绚丽的星河" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="魔导兔" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="吾乃斗笔" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="君殇" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="沙轻" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="邓布利多" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="红薯散养专业户" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="十言" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="vvvghjvvv" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="法斯" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="DASENSUN" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="HTS" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="握不住信新心" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="sycuuj133" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="天杉大将军" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="风见翎" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="江心Rain" />
|
||||
</WrapPanel>
|
||||
<Grid Height="35">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" SharedSizeGroup="Button" />
|
||||
<ColumnDefinition Width="Auto" SharedSizeGroup="Button" />
|
||||
<ColumnDefinition Width="Auto" SharedSizeGroup="Button" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<local:MyButton x:Name="BtnDonateOutput" Grid.Column="0" MinWidth="140" Text="生成解锁码" Padding="13,0" Margin="0,0,20,0" HorizontalAlignment="Left" ColorType="Highlight" Visibility="Collapsed" />
|
||||
<local:MyButton x:Name="BtnDonateDonate" Grid.Column="0" MinWidth="140" Text="赞助作者" Padding="13,0" Margin="0,0,20,0" HorizontalAlignment="Left" ColorType="Highlight" EventType="打开网页" EventData="https://afdian.com/a/LTCat" />
|
||||
<local:MyButton x:Name="BtnDonateCopy" Grid.Column="1" MinWidth="140" Text="复制识别码" Padding="13,0" Margin="0,0,20,0" HorizontalAlignment="Left" />
|
||||
<local:MyButton x:Name="BtnDonateInput" Grid.Column="2" MinWidth="140" Text="输入解锁码" Padding="13,0" Margin="0,0,20,0" HorizontalAlignment="Left" />
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
</local:MyCard>
|
||||
<local:MyCard Margin="0,0,0,15" Title="法律信息" IsSwapped="True" CanSwap="True">
|
||||
<StackPanel Margin="25,39,23,20">
|
||||
<TextBlock Text="隐私说明" TextWrapping="Wrap" Margin="0,6,0,4" FontWeight="Bold" />
|
||||
<TextBlock Margin="0,0,0,2" LineHeight="17" Text="本软件的 User Agent 中包含启动器的版本号,以统计各版本的用户数量。 除此之外,本软件不会向开发者上传任何其他信息。" TextWrapping="Wrap" />
|
||||
<TextBlock Text="其他信息" TextWrapping="Wrap" Margin="0,12,0,4" FontWeight="Bold" />
|
||||
<TextBlock Margin="0,0,0,2" LineHeight="17" Text="Copyright © 龙腾猫跃 2016. All Rights Reserved. 计算机软件著作权登记号:2020SR0875133 违法违规行为举报投诉邮箱:hexdragon@vip.qq.com 非 MINECRAFT 官方产品。未经 MOJANG 或 MICROSOFT 批准,也不与 MOJANG 或 MICROSOFT 关联。" TextWrapping="Wrap" />
|
||||
<StackPanel Orientation="Horizontal" Height="35" HorizontalAlignment="Left" Margin="0,12,0,0">
|
||||
<local:MyButton Text="用户协议与免责声明" Width="170" Padding="13,0" Margin="0,0,20,0" ColorType="Highlight" EventType="打开网页" EventData="https://shimo.im/docs/rGrd8pY8xWkt6ryW" />
|
||||
<local:MyButton Text="开源代码" Width="140" Padding="13,0" EventType="打开网页" EventData="https://github.com/Hex-Dragon/PCL2" />
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
</local:MyCard>
|
||||
<local:MyCard Margin="0,0,0,15" Title="许可与版权声明" IsSwapped="True" CanSwap="True">
|
||||
<Grid Margin="25,42,23,4">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="20" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="60" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="60" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="60" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="60" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="60" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="60" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="60" />
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
<TextBlock Grid.Row="0" Grid.Column="0" Text="Java Launch Wrapper" TextWrapping="Wrap" FontWeight="Bold" />
|
||||
<TextBlock Grid.Row="0" Grid.Column="2" Grid.ColumnSpan="2" Text="Copyright © 2022 00ll00
Licensed under the MIT License." TextWrapping="Wrap" />
|
||||
<local:MyButton Grid.Row="1" Grid.Column="2" MinWidth="140" Text="查看来源网站" Padding="13,0" Margin="0,7,20,18" HorizontalAlignment="Left"
|
||||
EventType="打开网页" EventData="https://github.com/00ll00/java_launch_wrapper" />
|
||||
<local:MyButton Grid.Row="1" Grid.Column="3" MinWidth="140" Text="查看许可文档" Padding="13,0" Margin="0,7,20,18" HorizontalAlignment="Left"
|
||||
EventType="打开网页" EventData="https://github.com/00ll00/java_launch_wrapper?tab=MIT-1-ov-file#readme" />
|
||||
|
||||
<TextBlock Grid.Row="2" Grid.Column="0" Text="Newtonsoft.Json" TextWrapping="Wrap" FontWeight="Bold" />
|
||||
<TextBlock Grid.Row="2" Grid.Column="2" Grid.ColumnSpan="2" Text="Copyright © 2007 James Newton-King
Licensed under the MIT License." TextWrapping="Wrap" />
|
||||
<local:MyButton Grid.Row="3" Grid.Column="2" MinWidth="140" Text="查看来源网站" Padding="13,0" Margin="0,7,20,18" HorizontalAlignment="Left"
|
||||
EventType="打开网页" EventData="https://www.newtonsoft.com/json" />
|
||||
<local:MyButton Grid.Row="3" Grid.Column="3" MinWidth="140" Text="查看许可文档" Padding="13,0" Margin="0,7,20,18" HorizontalAlignment="Left"
|
||||
EventType="打开网页" EventData="https://opensource.org/licenses/MIT" />
|
||||
|
||||
<TextBlock Grid.Row="4" Grid.Column="0" Text="NAudio" TextWrapping="Wrap" FontWeight="Bold" />
|
||||
<TextBlock Grid.Row="4" Grid.Column="2" Grid.ColumnSpan="2" Text="Copyright © 2015 Mark Heath (mark.heath@gmail.com)
Licensed under the MIT License." TextWrapping="Wrap" />
|
||||
<local:MyButton Grid.Row="5" Grid.Column="2" MinWidth="140" Text="查看来源网站" Padding="13,0" Margin="0,7,20,18" HorizontalAlignment="Left"
|
||||
EventType="打开网页" EventData="https://github.com/naudio/NAudio" />
|
||||
<local:MyButton Grid.Row="5" Grid.Column="3" MinWidth="140" Text="查看许可文档" Padding="13,0" Margin="0,7,20,18" HorizontalAlignment="Left"
|
||||
EventType="打开网页" EventData="https://github.com/naudio/NAudio/blob/master/license.txt" />
|
||||
|
||||
<TextBlock Grid.Row="6" Grid.Column="0" Text="Ookii.Dialogs" TextWrapping="Wrap" FontWeight="Bold" />
|
||||
<TextBlock Grid.Row="6" Grid.Column="2" Grid.ColumnSpan="2" Text="Copyright © 2009 Sven Groot (Ookii.org)" TextWrapping="Wrap" />
|
||||
<local:MyButton Grid.Row="7" Grid.Column="2" MinWidth="140" Text="查看来源网站" Padding="13,0" Margin="0,7,20,18" HorizontalAlignment="Left"
|
||||
EventType="打开网页" EventData="https://www.ookii.org/Software/Dialogs/" />
|
||||
<local:MyButton Grid.Row="7" Grid.Column="3" MinWidth="140" Text="查看许可文档" Padding="13,0" Margin="0,7,20,18" HorizontalAlignment="Left"
|
||||
EventType="打开网页" EventData="https://github.com/caioproiete/ookii-dialogs-wpf/blob/master/LICENSE" />
|
||||
|
||||
<TextBlock Grid.Row="8" Grid.Column="0" Text="Iconmonstr" TextWrapping="Wrap" FontWeight="Bold" />
|
||||
<TextBlock Grid.Row="8" Grid.Column="2" Grid.ColumnSpan="2" Text="Copyright © 2019 iconmonstr (Alexander Kahlkopf)" TextWrapping="Wrap" />
|
||||
<local:MyButton Grid.Row="9" Grid.Column="2" MinWidth="140" Text="查看来源网站" Padding="13,0" Margin="0,7,20,18" HorizontalAlignment="Left"
|
||||
EventType="打开网页" EventData="https://iconmonstr.com/" />
|
||||
<local:MyButton Grid.Row="9" Grid.Column="3" MinWidth="140" Text="查看许可文档" Padding="13,0" Margin="0,7,20,18" HorizontalAlignment="Left"
|
||||
EventType="打开网页" EventData="https://iconmonstr.com/license/" />
|
||||
|
||||
<TextBlock Grid.Row="10" Grid.Column="0" Text="libwebp wrapper for .NET" TextWrapping="Wrap" FontWeight="Bold" />
|
||||
<TextBlock Grid.Row="10" Grid.Column="2" Grid.ColumnSpan="2" Text="Copyright © 2012 Imazen
Licensed under the MIT License." TextWrapping="Wrap" />
|
||||
<local:MyButton Grid.Row="11" Grid.Column="2" MinWidth="140" Text="查看来源网站" Padding="13,0" Margin="0,7,20,18" HorizontalAlignment="Left"
|
||||
EventType="打开网页" EventData="https://github.com/imazen/libwebp-net" />
|
||||
<local:MyButton Grid.Row="11" Grid.Column="3" MinWidth="140" Text="查看许可文档" Padding="13,0" Margin="0,7,20,18" HorizontalAlignment="Left"
|
||||
EventType="打开网页" EventData="https://github.com/imazen/libwebp-net/blob/master/LICENSE.txt" />
|
||||
|
||||
<TextBlock Grid.Row="12" Grid.Column="0" Text="Iconfont" TextWrapping="Wrap" FontWeight="Bold" />
|
||||
<TextBlock Grid.Row="12" Grid.Column="2" Grid.ColumnSpan="2" Text="Copyright © ALIMAMA MUX, powered by alimama THX." TextWrapping="Wrap" />
|
||||
<local:MyButton Grid.Row="13" Grid.Column="2" MinWidth="140" Text="查看原网站" Padding="13,0" Margin="0,7,20,18" HorizontalAlignment="Left"
|
||||
EventType="打开网页" EventData="https://www.iconfont.cn/" />
|
||||
|
||||
</Grid>
|
||||
</local:MyCard>
|
||||
</StackPanel>
|
||||
</local:MyScrollViewer>
|
||||
</local:MyPageRight>
|
||||
<local:MyPageRight
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:local="clr-namespace:PCL" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
mc:Ignorable="d" x:Class="PageOtherAbout"
|
||||
PanScroll="{Binding ElementName=PanBack}" RenderOptions.BitmapScalingMode="LowQuality">
|
||||
<local:MyScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Disabled" x:Name="PanBack">
|
||||
<StackPanel x:Name="PanMain" Margin="25,10" Grid.IsSharedSizeScope="True">
|
||||
<local:MyCard Margin="0,15" Title="关于">
|
||||
<Grid Margin="21,40,21,16">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="45" />
|
||||
<RowDefinition Height="45" />
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="40" />
|
||||
<ColumnDefinition />
|
||||
<ColumnDefinition Width="150" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<local:MyListItem IsHitTestVisible="False" Title="龙腾猫跃" Margin="-5,0,15,0" Info="Plain Craft Launcher 的开发者!" Grid.Row="0" Grid.Column="1" />
|
||||
<local:MyListItem IsHitTestVisible="False" Title="Plain Craft Launcher 2" Margin="-5,0,15,0" Info="当前版本:%VERSION%(%VERSIONCODE%.%BRANCH%)" Grid.Row="1" Grid.Column="1" x:Name="ItemAboutPcl" />
|
||||
<Image Source="/Plain Craft Launcher 2;component/Images/Heads/Logo.png" Grid.Row="1" Margin="3">
|
||||
<Image.Clip>
|
||||
<EllipseGeometry Center="17 17" RadiusX="17" RadiusY="17" />
|
||||
</Image.Clip>
|
||||
</Image>
|
||||
<Image Source="/Plain Craft Launcher 2;component/Images/Heads/LTCat.jpg" Grid.Row="0" Margin="3">
|
||||
<Image.Clip>
|
||||
<EllipseGeometry Center="17 17" RadiusX="17" RadiusY="17" />
|
||||
</Image.Clip>
|
||||
</Image>
|
||||
<local:MyButton Text="赞助 PCL !" Grid.Column="2" Grid.Row="0" Height="35" EventType="打开网页" EventData="https://afdian.com/a/LTCat" ColorType="Highlight" />
|
||||
<local:MyButton Text="查看源代码" Grid.Column="2" Grid.Row="1" Height="35" EventType="打开网页" EventData="https://github.com/Hex-Dragon/PCL2" />
|
||||
</Grid>
|
||||
</local:MyCard>
|
||||
<local:MyCard Margin="0,0,0,15" Title="特别鸣谢">
|
||||
<Grid Margin="21,40,21,16">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="45" />
|
||||
<RowDefinition Height="45" />
|
||||
<RowDefinition Height="45" />
|
||||
<RowDefinition Height="45" />
|
||||
<RowDefinition Height="45" />
|
||||
<RowDefinition Height="45" />
|
||||
<RowDefinition Height="45" />
|
||||
<RowDefinition Height="45" />
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="40" />
|
||||
<ColumnDefinition />
|
||||
<ColumnDefinition Width="150" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<local:MyListItem Title="bangbang93" Margin="-5,0,15,0" IsHitTestVisible="False" Info="提供 BMCLAPI 镜像源和 Forge 安装工具,详见 https://bmclapi.bangbang93.com" Grid.Row="0" Grid.Column="1" />
|
||||
<local:MyButton Text="赞助镜像源" Grid.Row="0" Grid.Column="2" Height="35" EventType="打开网页" EventData="https://afdian.com/a/bangbang93" />
|
||||
<local:MyListItem Title="MC 百科" Margin="-5,0,0,0" IsHitTestVisible="False" Grid.ColumnSpan="2" Info="提供了 Mod 名称的中文翻译和更多相关信息!" Grid.Row="1" Grid.Column="1" />
|
||||
<local:MyButton Text="打开百科" Grid.Row="1" Grid.Column="2" Height="35" EventType="打开网页" EventData="https://www.mcmod.cn" />
|
||||
<local:MyListItem Title="z0z0r4" Margin="-5,0,0,0" IsHitTestVisible="False" Grid.ColumnSpan="2" Info="提供了 MCIM 社区资源镜像源和帮助库图床!" Grid.Row="2" Grid.Column="1" />
|
||||
<local:MyButton Text="MCIM 主页" Grid.Row="2" Grid.Column="2" Height="35" EventType="打开网页" EventData="https://github.com/mcmod-info-mirror" />
|
||||
<local:MyListItem Title="00ll00" Margin="-5,0,0,0" IsHitTestVisible="False" Grid.ColumnSpan="2" Info="提供了 Java Launch Wrapper 和一些重要服务支持!" Grid.Row="3" Grid.Column="1" />
|
||||
<local:MyListItem Title="Patrick" Margin="-5,0,0,0" IsHitTestVisible="False" Grid.ColumnSpan="2" Info="设计并制作了 PCL 图标,让我从做图标的水深火热中得到了解脱……" Grid.Row="4" Grid.Column="1" />
|
||||
<local:MyListItem Title="Hao_Tian" Margin="-5,0,0,0" IsHitTestVisible="False" Grid.ColumnSpan="2" Info="在内测中找出了一大堆没人想得到的诡异 Bug,有非同寻常的 Bug 体质" Grid.Row="5" Grid.Column="1" />
|
||||
<local:MyListItem Title="Minecraft 中文论坛" Margin="-5,0,15,0" IsHitTestVisible="False" Info="虽然已经关站了,但感谢此前提供了 MCBBS 镜像源……" Grid.Row="6" Grid.Column="1" />
|
||||
<local:MyListItem Title="PCL 内群的各位" Margin="-5,0,0,0" IsHitTestVisible="False" Grid.ColumnSpan="2" Info="感谢内群的沙雕网友们这么久以来对我和 PCL 的支持与鼓励!" Grid.Row="7" Grid.Column="1" />
|
||||
<Image Source="/Plain Craft Launcher 2;component/Images/Heads/bangbang93.png" Grid.Row="0" Margin="3">
|
||||
<Image.Clip>
|
||||
<EllipseGeometry Center="17 17" RadiusX="17" RadiusY="17" />
|
||||
</Image.Clip>
|
||||
</Image>
|
||||
<Image Source="/Plain Craft Launcher 2;component/Images/Heads/wiki.png" Grid.Row="1" Margin="3">
|
||||
<Image.Clip>
|
||||
<EllipseGeometry Center="17 17" RadiusX="17" RadiusY="17" />
|
||||
</Image.Clip>
|
||||
</Image>
|
||||
<Image Source="/Plain Craft Launcher 2;component/Images/Heads/z0z0r4.png" Grid.Row="2" Margin="3">
|
||||
<Image.Clip>
|
||||
<EllipseGeometry Center="17 17" RadiusX="17" RadiusY="17" />
|
||||
</Image.Clip>
|
||||
</Image>
|
||||
<Image Source="/Plain Craft Launcher 2;component/Images/Heads/00ll00.png" Grid.Row="3" Margin="3">
|
||||
<Image.Clip>
|
||||
<EllipseGeometry Center="17 17" RadiusX="17" RadiusY="17" />
|
||||
</Image.Clip>
|
||||
</Image>
|
||||
<Image Source="/Plain Craft Launcher 2;component/Images/Heads/Patrick.png" Grid.Row="4" Margin="3">
|
||||
<Image.Clip>
|
||||
<EllipseGeometry Center="17 17" RadiusX="17" RadiusY="17" />
|
||||
</Image.Clip>
|
||||
</Image>
|
||||
<Image Source="/Plain Craft Launcher 2;component/Images/Heads/Hao_Tian.jpg" Grid.Row="5" Margin="3">
|
||||
<Image.Clip>
|
||||
<EllipseGeometry Center="17 17" RadiusX="17" RadiusY="17" />
|
||||
</Image.Clip>
|
||||
</Image>
|
||||
<Image Source="/Plain Craft Launcher 2;component/Images/Heads/MCBBS.png" Grid.Row="6" Margin="3">
|
||||
<Image.Clip>
|
||||
<EllipseGeometry Center="17 17" RadiusX="17" RadiusY="17" />
|
||||
</Image.Clip>
|
||||
</Image>
|
||||
<Image Source="/Plain Craft Launcher 2;component/Images/Heads/PCL2.png" Grid.Row="7" Margin="3">
|
||||
<Image.Clip>
|
||||
<EllipseGeometry Center="17 17" RadiusX="17" RadiusY="17" />
|
||||
</Image.Clip>
|
||||
</Image>
|
||||
</Grid>
|
||||
</local:MyCard>
|
||||
<local:MyCard Margin="0,0,0,15" Title="赞助者">
|
||||
<StackPanel Margin="25,40,10,20">
|
||||
<TextBlock HorizontalAlignment="Left" Text="以下是 2025 年 7 月的高级赞助者们!感谢各位对 PCL 和伟大的咕咕咕事业的支持!" Margin="0,0,25,5.5" TextTrimming="None" TextWrapping="WrapWithOverflow" />
|
||||
<WrapPanel Margin="0,0,0,10">
<TextBlock Width="120" Margin="0,1.5" Text="ZSF" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="TizhleF" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="方源" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="日月空呵" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="贾明志" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="百瑞" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Flying___pig" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="绝世" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Jwac" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="万玖" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="墨忆" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="天刹" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Cess" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="ender_glass" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="TT" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="白玄.雪狼" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="MUCT" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="崇昀" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="绪" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="吾皇万岁" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Ander·Les" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Eoctopus" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="时光飞逝一下午" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Carl7412" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="ShinyChariot" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="骨故谷" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="?" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Jinji希子" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="自然选择" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="云念" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="钱尹鹏" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="TBONC" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="祈农" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="凤凰院凶真" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="ShuangDaoRen" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="PXZ233" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="二十二今天有没有" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="天魕" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="南华清" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="66112447" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="夏行子" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="周俊成" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="乌漆嘛黑" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="肘击恶魔佐巴扬" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Pari~" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="红云" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Link-an" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="想要钱用不完" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="花宝" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="生于春天的雷电" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="被偷去的睡眠" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="liuxuan" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="寒枫凌" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="雀色时" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="架" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="终成究竟觉" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="S0D1UM" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="吞仔送命" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="白浪宇宙" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Crimson" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Mibo_MkIX" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="G.snine18^7" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="两把雨伞" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="古明地苑" />
|
||||
<TextBlock Width="240" Margin="0,1.5" Text="MarbleMionshevic" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text=":〈" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="紫罗兰" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="asai" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="隔壁小明" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="就爱唱歌" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="沫神鹤" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="风已消逝" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="光意留闪" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="我们长征的路上" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="芸芷" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="函数极限" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="冰川泥" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="XunWei" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="sirous" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="路过某打酱油的" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Gnight07" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="结构德古拉" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="myyukee" />
|
||||
<TextBlock Width="240" Margin="0,1.5" Text="云之彼端约定的地方" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="苏玖" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="赤沃净" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="YYC" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="晨曦酒庄高冷男" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="herald112" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Foxman" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="KoreQAQ" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="TechOfRevo" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="lqs" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="简某" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="源起于此" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="爱莉希雅" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text=" 和忧" />
|
||||
<TextBlock Width="240" Margin="0,1.5" Text="全明星小面包批发商DIO" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="碎序" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="U" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Dumlet" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="johnqian" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="KANG" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="owod" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="九" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="苑煜" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="壹" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="UA-Ming" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="可爱小探姬" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="霜月" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="bud" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="小虐SAIKYO" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="zealotand" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="comico" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="万山松" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="依梦明天" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="化形彧九尾" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="知崎" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="LOG175" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="绵" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="scp00813" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="宝宝" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="9527" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="ICE_xwx" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="羽笙喵喵" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="ssvgg(☉ x ☉)" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Happymeals" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="shen12244" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="一般路过AAA" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Niko" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="qroiwopqri" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="TringDron" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="有屳則名" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="TX2006" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="滑天下之大稽" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="中东悍匪" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="鬼泣々离殇" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="蒼崎青子" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="wyh114514" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="飞飞在睡觉。" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="柚西" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="XIAOSHUAI" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="saxioh" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="baibaibai" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="事屑Jerry" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Rs32" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="SPDish" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="风早九夜" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Reg" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="hellord" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="时本ki" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="mamana" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="放肆的微笑" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="人没逝" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="wddjww" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="xiao澄" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="银狼碎片" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="OniKata_Kayoko" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="曦" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Echo" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="画卿颜" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="夏 " />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="jiege45" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="甜食先生" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="虚莫妄玄" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="天恒" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="我有馄饨" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="布布曼" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="qwqewe" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="114514" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="YJ_42" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Xricron" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="抛弃大脑" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="10455885" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="羽渡白砂" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="沙" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="sukous" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="册那" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="KMYLS" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="kakadeso" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="懒猫" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="清岚" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Atopos" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="苦尽柑来" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="脑洞大开的血魔" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="ももかわるこ" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="空中的风" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="黑夜幽灵" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="H1saNe" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="故风" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="臭氧化碳" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="云阿云" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="小命" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="南宫若兮" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Landsilde" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="zzz" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="星期三" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Ashburn" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="123" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="九日" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="古神" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="月宫星耀" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="郁子恒是FW" />
|
||||
<TextBlock Width="240" Margin="0,1.5" Text="每天吃吃吃吃吃不饱" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Freezhao" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="ZHypocrite" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="十下小雨" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="九 十" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="RuthlessXdream" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="zv-vz" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="汐沄的随记" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="REMOTE" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="昔阳" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="七度ユキノ" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="KNISX" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="RainbowDashRD" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="夢曦" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="跳雨风" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="望言苏" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="四分白Fortenz" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="UUZ" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Ankairis" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Jn1E" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="云山如昨好" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="LYJ0415" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="空?" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="Awfrlu+" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="懒帝" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="北安丶七叔" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="xkw" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="KINO" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="POTATO" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="少昊氏" />
|
||||
<TextBlock Width="240" Margin="0,1.5" Text="狂踹瘸子那條好腿丶" />
|
||||
<TextBlock Width="240" Margin="0,1.5" Text="Thallium_Ash【铊尘】(坨坨)" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="陌雨泠涯" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="bajie79" />
|
||||
<TextBlock Width="120" Margin="0,1.5" Text="紘垰" />
|
||||
</WrapPanel>
|
||||
<Grid Height="35">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" SharedSizeGroup="Button" />
|
||||
<ColumnDefinition Width="Auto" SharedSizeGroup="Button" />
|
||||
<ColumnDefinition Width="Auto" SharedSizeGroup="Button" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<local:MyButton x:Name="BtnDonateOutput" Grid.Column="0" MinWidth="140" Text="生成解锁码" Padding="13,0" Margin="0,0,20,0" HorizontalAlignment="Left" ColorType="Highlight" Visibility="Collapsed" />
|
||||
<local:MyButton x:Name="BtnDonateDonate" Grid.Column="0" MinWidth="140" Text="赞助作者" Padding="13,0" Margin="0,0,20,0" HorizontalAlignment="Left" ColorType="Highlight" EventType="打开网页" EventData="https://afdian.com/a/LTCat" />
|
||||
<local:MyButton x:Name="BtnDonateCopy" Grid.Column="1" MinWidth="140" Text="复制识别码" Padding="13,0" Margin="0,0,20,0" HorizontalAlignment="Left" />
|
||||
<local:MyButton x:Name="BtnDonateInput" Grid.Column="2" MinWidth="140" Text="输入解锁码" Padding="13,0" Margin="0,0,20,0" HorizontalAlignment="Left" />
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
</local:MyCard>
|
||||
<local:MyCard Margin="0,0,0,15" Title="法律信息" IsSwapped="True" CanSwap="True">
|
||||
<StackPanel Margin="25,39,23,20">
|
||||
<TextBlock Text="匿名数据收集" TextWrapping="Wrap" Margin="0,6,0,4" FontWeight="Bold" />
|
||||
<TextBlock Margin="0,0,0,2" LineHeight="17" Text="当下载失败、PCL 出错、游戏崩溃等事件时,PCL 会匿名上报信息,以通知龙猫 “哦吼,出错了”,让龙猫能更好地修 Bug……(PCL 不会上传或收集任何个人信息,包括上报的东西里面也没有!)
你可以在 设置 → 其他 → 启动器 中关闭上报,不过龙猫就不知道你遇到了什么 Bug 了……" TextWrapping="Wrap" />
|
||||
<TextBlock Text="隐私声明与个人信息保护政策" TextWrapping="Wrap" Margin="0,10,0,4" FontWeight="Bold" />
|
||||
<TextBlock Margin="0,0,0,2" LineHeight="17" Text="PCL 没有收集个人信息,所以这里其实啥都不用写……
留个这个其实只是为了让你知道 PCL 没有收集个人信息,诶嘿。" TextWrapping="Wrap" />
|
||||
<TextBlock Text="其他信息" TextWrapping="Wrap" Margin="0,10,0,4" FontWeight="Bold" />
|
||||
<TextBlock Margin="0,0,0,2" LineHeight="17" Text="Copyright © 龙腾猫跃 2016. All Rights Reserved. 计算机软件著作权登记号:2020SR0875133 违法违规行为举报投诉邮箱:hexdragon@vip.qq.com 非 MINECRAFT 官方产品。未经 MOJANG 或 MICROSOFT 批准,也不与 MOJANG 或 MICROSOFT 关联。" TextWrapping="Wrap" />
|
||||
<StackPanel Orientation="Horizontal" Height="35" HorizontalAlignment="Left" Margin="0,12,0,0">
|
||||
<local:MyButton Text="用户协议与免责声明" Width="170" Padding="13,0" Margin="0,0,20,0" ColorType="Highlight" EventType="打开网页" EventData="https://shimo.im/docs/rGrd8pY8xWkt6ryW" />
|
||||
<local:MyButton Text="开源代码" Width="140" Padding="13,0" EventType="打开网页" EventData="https://github.com/Hex-Dragon/PCL2" />
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
</local:MyCard>
|
||||
<local:MyCard Margin="0,0,0,15" Title="许可与版权声明" IsSwapped="True" CanSwap="True">
|
||||
<Grid Margin="25,42,23,4">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="20" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="60" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="60" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="60" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="60" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="60" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="60" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="60" />
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
<TextBlock Grid.Row="0" Grid.Column="0" Text="Java Launch Wrapper" TextWrapping="Wrap" FontWeight="Bold" />
|
||||
<TextBlock Grid.Row="0" Grid.Column="2" Grid.ColumnSpan="2" Text="Copyright © 2022 00ll00
Licensed under the MIT License." TextWrapping="Wrap" />
|
||||
<local:MyButton Grid.Row="1" Grid.Column="2" MinWidth="140" Text="查看来源网站" Padding="13,0" Margin="0,7,20,18" HorizontalAlignment="Left"
|
||||
EventType="打开网页" EventData="https://github.com/00ll00/java_launch_wrapper" />
|
||||
<local:MyButton Grid.Row="1" Grid.Column="3" MinWidth="140" Text="查看许可文档" Padding="13,0" Margin="0,7,20,18" HorizontalAlignment="Left"
|
||||
EventType="打开网页" EventData="https://github.com/00ll00/java_launch_wrapper?tab=MIT-1-ov-file#readme" />
|
||||
|
||||
<TextBlock Grid.Row="2" Grid.Column="0" Text="Newtonsoft.Json" TextWrapping="Wrap" FontWeight="Bold" />
|
||||
<TextBlock Grid.Row="2" Grid.Column="2" Grid.ColumnSpan="2" Text="Copyright © 2007 James Newton-King
Licensed under the MIT License." TextWrapping="Wrap" />
|
||||
<local:MyButton Grid.Row="3" Grid.Column="2" MinWidth="140" Text="查看来源网站" Padding="13,0" Margin="0,7,20,18" HorizontalAlignment="Left"
|
||||
EventType="打开网页" EventData="https://www.newtonsoft.com/json" />
|
||||
<local:MyButton Grid.Row="3" Grid.Column="3" MinWidth="140" Text="查看许可文档" Padding="13,0" Margin="0,7,20,18" HorizontalAlignment="Left"
|
||||
EventType="打开网页" EventData="https://opensource.org/licenses/MIT" />
|
||||
|
||||
<TextBlock Grid.Row="4" Grid.Column="0" Text="NAudio" TextWrapping="Wrap" FontWeight="Bold" />
|
||||
<TextBlock Grid.Row="4" Grid.Column="2" Grid.ColumnSpan="2" Text="Copyright © 2015 Mark Heath (mark.heath@gmail.com)
Licensed under the MIT License." TextWrapping="Wrap" />
|
||||
<local:MyButton Grid.Row="5" Grid.Column="2" MinWidth="140" Text="查看来源网站" Padding="13,0" Margin="0,7,20,18" HorizontalAlignment="Left"
|
||||
EventType="打开网页" EventData="https://github.com/naudio/NAudio" />
|
||||
<local:MyButton Grid.Row="5" Grid.Column="3" MinWidth="140" Text="查看许可文档" Padding="13,0" Margin="0,7,20,18" HorizontalAlignment="Left"
|
||||
EventType="打开网页" EventData="https://github.com/naudio/NAudio/blob/master/license.txt" />
|
||||
|
||||
<TextBlock Grid.Row="6" Grid.Column="0" Text="Ookii.Dialogs" TextWrapping="Wrap" FontWeight="Bold" />
|
||||
<TextBlock Grid.Row="6" Grid.Column="2" Grid.ColumnSpan="2" Text="Copyright © 2009 Sven Groot (Ookii.org)" TextWrapping="Wrap" />
|
||||
<local:MyButton Grid.Row="7" Grid.Column="2" MinWidth="140" Text="查看来源网站" Padding="13,0" Margin="0,7,20,18" HorizontalAlignment="Left"
|
||||
EventType="打开网页" EventData="https://www.ookii.org/Software/Dialogs/" />
|
||||
<local:MyButton Grid.Row="7" Grid.Column="3" MinWidth="140" Text="查看许可文档" Padding="13,0" Margin="0,7,20,18" HorizontalAlignment="Left"
|
||||
EventType="打开网页" EventData="https://github.com/caioproiete/ookii-dialogs-wpf/blob/master/LICENSE" />
|
||||
|
||||
<TextBlock Grid.Row="8" Grid.Column="0" Text="Iconmonstr" TextWrapping="Wrap" FontWeight="Bold" />
|
||||
<TextBlock Grid.Row="8" Grid.Column="2" Grid.ColumnSpan="2" Text="Copyright © 2019 iconmonstr (Alexander Kahlkopf)" TextWrapping="Wrap" />
|
||||
<local:MyButton Grid.Row="9" Grid.Column="2" MinWidth="140" Text="查看来源网站" Padding="13,0" Margin="0,7,20,18" HorizontalAlignment="Left"
|
||||
EventType="打开网页" EventData="https://iconmonstr.com/" />
|
||||
<local:MyButton Grid.Row="9" Grid.Column="3" MinWidth="140" Text="查看许可文档" Padding="13,0" Margin="0,7,20,18" HorizontalAlignment="Left"
|
||||
EventType="打开网页" EventData="https://iconmonstr.com/license/" />
|
||||
|
||||
<TextBlock Grid.Row="10" Grid.Column="0" Text="libwebp wrapper for .NET" TextWrapping="Wrap" FontWeight="Bold" />
|
||||
<TextBlock Grid.Row="10" Grid.Column="2" Grid.ColumnSpan="2" Text="Copyright © 2012 Imazen
Licensed under the MIT License." TextWrapping="Wrap" />
|
||||
<local:MyButton Grid.Row="11" Grid.Column="2" MinWidth="140" Text="查看来源网站" Padding="13,0" Margin="0,7,20,18" HorizontalAlignment="Left"
|
||||
EventType="打开网页" EventData="https://github.com/imazen/libwebp-net" />
|
||||
<local:MyButton Grid.Row="11" Grid.Column="3" MinWidth="140" Text="查看许可文档" Padding="13,0" Margin="0,7,20,18" HorizontalAlignment="Left"
|
||||
EventType="打开网页" EventData="https://github.com/imazen/libwebp-net/blob/master/LICENSE.txt" />
|
||||
|
||||
<TextBlock Grid.Row="12" Grid.Column="0" Text="Iconfont" TextWrapping="Wrap" FontWeight="Bold" />
|
||||
<TextBlock Grid.Row="12" Grid.Column="2" Grid.ColumnSpan="2" Text="Copyright © ALIMAMA MUX, powered by alimama THX." TextWrapping="Wrap" />
|
||||
<local:MyButton Grid.Row="13" Grid.Column="2" MinWidth="140" Text="查看原网站" Padding="13,0" Margin="0,7,20,18" HorizontalAlignment="Left"
|
||||
EventType="打开网页" EventData="https://www.iconfont.cn/" />
|
||||
|
||||
</Grid>
|
||||
</local:MyCard>
|
||||
</StackPanel>
|
||||
</local:MyScrollViewer>
|
||||
</local:MyPageRight>
|
||||
|
||||
@@ -18,12 +18,6 @@
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub BtnAboutBmclapi_Click(sender As Object, e As EventArgs) Handles BtnAboutBmclapi.Click
|
||||
OpenWebsite("https://afdian.com/a/bangbang93")
|
||||
End Sub
|
||||
Private Sub BtnAboutWiki_Click(sender As Object, e As EventArgs) Handles BtnAboutWiki.Click
|
||||
OpenWebsite("https://www.mcmod.cn")
|
||||
End Sub
|
||||
Public Shared Sub CopyUniqueAddress() Handles BtnDonateCopy.Click
|
||||
ClipboardSet(UniqueAddress)
|
||||
End Sub
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
{"SystemSystemCache", New SetupEntry("", Source:=SetupSource.Registry)},
|
||||
{"SystemSystemUpdate", New SetupEntry(0)},
|
||||
{"SystemSystemActivity", New SetupEntry(0)},
|
||||
{"SystemSystemTelemetry", New SetupEntry(True, Source:=SetupSource.Registry)},
|
||||
{"CacheExportConfig", New SetupEntry("", Source:=SetupSource.Registry)},
|
||||
{"CacheSavedPageUrl", New SetupEntry("", Source:=SetupSource.Registry)},
|
||||
{"CacheSavedPageVersion", New SetupEntry("", Source:=SetupSource.Registry)},
|
||||
@@ -123,7 +124,7 @@
|
||||
{"ToolDownloadTranslateV2", New SetupEntry(1, Source:=SetupSource.Registry)},
|
||||
{"ToolDownloadIgnoreQuilt", New SetupEntry(True, Source:=SetupSource.Registry)},
|
||||
{"ToolDownloadCert", New SetupEntry(False, Source:=SetupSource.Registry)},
|
||||
{"ToolDownloadMod", New SetupEntry(1, Source:=SetupSource.Registry)},
|
||||
{"ToolDownloadMod", New SetupEntry(2, Source:=SetupSource.Registry)},
|
||||
{"ToolModLocalNameStyle", New SetupEntry(0, Source:=SetupSource.Registry)},
|
||||
{"ToolUpdateAlpha", New SetupEntry(0, Source:=SetupSource.Registry, Encoded:=True)},
|
||||
{"ToolUpdateRelease", New SetupEntry(False, Source:=SetupSource.Registry)},
|
||||
@@ -356,13 +357,6 @@
|
||||
Return Not HasIniKey(Version.Path & "PCL\Setup.ini", Key)
|
||||
End Select
|
||||
End Function
|
||||
''' <summary>
|
||||
''' 某个设置项是否加密。
|
||||
''' </summary>
|
||||
Public Function IsEncoded(Key As String) As Boolean
|
||||
If Not SetupDict.ContainsKey(Key) Then Throw New KeyNotFoundException("未找到设置项:" & Key) With {.Source = Key}
|
||||
Return SetupDict(Key).Encoded
|
||||
End Function
|
||||
|
||||
''' <summary>
|
||||
''' 读取设置。
|
||||
|
||||
@@ -242,7 +242,7 @@
|
||||
</StackPanel>
|
||||
<local:MyTextBox x:Name="TextAdvanceJvm" Grid.ColumnSpan="2" Tag="LaunchAdvanceJvm" Grid.Column="1" ToolTip="启动 Minecraft 时使用的额外 JVM 参数,除非有确定把握,否则请不要修改。
支持 Minecraft 版本 JSON 中的字符串替换标记,例如 ${library_directory}。" MaxLength="4000"
|
||||
Height="100" AcceptsReturn="True" TextWrapping="Wrap" VerticalContentAlignment="Top" Padding="0,5" VerticalScrollBarVisibility="Auto" />
|
||||
<TextBlock Grid.Row="2" VerticalAlignment="Center" HorizontalAlignment="Left" Text="游戏参数尾部" Margin="0,0,25,0" />
|
||||
<TextBlock Grid.Row="2" VerticalAlignment="Center" HorizontalAlignment="Left" Text="游戏参数" Margin="0,0,25,0" />
|
||||
<local:MyTextBox x:Name="TextAdvanceGame" Grid.Row="2" Grid.ColumnSpan="2" Tag="LaunchAdvanceGame" Grid.Column="1" ToolTip="文本框中的内容将会被直接拼合在启动参数的末尾。
例如,输入 --demo 则会以试玩模式启动游戏。
支持 Minecraft 版本 JSON 中的字符串替换标记,例如 ${library_directory}。" />
|
||||
<TextBlock Grid.Row="4" VerticalAlignment="Center" HorizontalAlignment="Left" Text="启动前执行命令" Margin="0,0,25,0" />
|
||||
<local:MyTextBox x:Name="TextAdvanceRun" Grid.Row="4" Grid.ColumnSpan="2" Tag="LaunchAdvanceRun" Grid.Column="1" HintText=""
|
||||
|
||||
@@ -62,16 +62,18 @@
|
||||
<RowDefinition Height="7" />
|
||||
<RowDefinition Height="28" />
|
||||
<RowDefinition Height="7" />
|
||||
<RowDefinition Height="28" />
|
||||
<RowDefinition Height="7" />
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
<!--<TextBlock Grid.Row="0" VerticalAlignment="Center" HorizontalAlignment="Left" Text="下载源" Margin="0,0,25,0" />
|
||||
<TextBlock Grid.Row="0" VerticalAlignment="Center" HorizontalAlignment="Left" Text="来源" Margin="0,0,25,0" />
|
||||
<local:MyComboBox x:Name="ComboDownloadMod" Grid.Row="0" Grid.ColumnSpan="2" Tag="ToolDownloadMod" Grid.Column="1">
|
||||
<local:MyComboBoxItem Content="尽量使用镜像源(暂时无效)" />
|
||||
<local:MyComboBoxItem Content="尽量使用镜像源(可能缺少刚刚更新的版本)" />
|
||||
<local:MyComboBoxItem Content="仅在官方源加载缓慢时改用镜像源" />
|
||||
<local:MyComboBoxItem Content="尽量使用官方源" IsSelected="True" />
|
||||
</local:MyComboBox>-->
|
||||
<TextBlock Grid.Row="0" VerticalAlignment="Center" HorizontalAlignment="Left" Text="文件名格式" Margin="0,0,25,0" />
|
||||
<local:MyComboBox Grid.Row="0" x:Name="ComboDownloadTranslateV2" Grid.ColumnSpan="2" Tag="ToolDownloadTranslateV2" Grid.Column="1"
|
||||
</local:MyComboBox>
|
||||
<TextBlock Grid.Row="2" VerticalAlignment="Center" HorizontalAlignment="Left" Text="文件名格式" Margin="0,0,25,0" />
|
||||
<local:MyComboBox Grid.Row="2" x:Name="ComboDownloadTranslateV2" Grid.ColumnSpan="2" Tag="ToolDownloadTranslateV2" Grid.Column="1"
|
||||
ToolTip="下载社区资源时,其默认文件名的格式">
|
||||
<local:MyComboBoxItem Content="【机械动力】create-1.21.1-6.0.4" />
|
||||
<local:MyComboBoxItem Content="[机械动力] create-1.21.1-6.0.4" IsSelected="True" />
|
||||
@@ -79,13 +81,13 @@
|
||||
<local:MyComboBoxItem Content="create-1.21.1-6.0.4-机械动力" />
|
||||
<local:MyComboBoxItem Content="create-1.21.1-6.0.4" />
|
||||
</local:MyComboBox>
|
||||
<TextBlock Grid.Row="2" VerticalAlignment="Center" HorizontalAlignment="Left" Text="Mod 管理样式" Margin="0,0,25,0" />
|
||||
<local:MyComboBox Grid.Row="2" x:Name="ComboModLocalNameStyle" Grid.ColumnSpan="2" Tag="ToolModLocalNameStyle" Grid.Column="1"
|
||||
<TextBlock Grid.Row="4" VerticalAlignment="Center" HorizontalAlignment="Left" Text="Mod 管理样式" Margin="0,0,25,0" />
|
||||
<local:MyComboBox Grid.Row="4" x:Name="ComboModLocalNameStyle" Grid.ColumnSpan="2" Tag="ToolModLocalNameStyle" Grid.Column="1"
|
||||
ToolTip="在 Mod 管理页面中,Mod 项的显示方式">
|
||||
<local:MyComboBoxItem Content="标题显示译名,详情显示文件名" IsSelected="True" />
|
||||
<local:MyComboBoxItem Content="标题显示文件名,详情显示译名" />
|
||||
</local:MyComboBox>
|
||||
<local:MyCheckBox Margin="0,2,0,4" Text="在显示 Mod 加载器时忽略 Quilt" Grid.Row="4" Height="22" Grid.ColumnSpan="2"
|
||||
<local:MyCheckBox Margin="0,2,0,4" Text="在显示 Mod 加载器时忽略 Quilt" Grid.Row="6" Height="22" Grid.ColumnSpan="2"
|
||||
x:Name="CheckDownloadIgnoreQuilt" Tag="ToolDownloadIgnoreQuilt" />
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
@@ -109,7 +111,7 @@
|
||||
<local:MyCheckBox Text="自动设置为中文" Grid.Row="2" Grid.Column="1" Grid.ColumnSpan="5" x:Name="CheckHelpChinese" Tag="ToolHelpChinese" />
|
||||
</Grid>
|
||||
</local:MyCard>
|
||||
<local:MyCard Margin="0,0,0,15" Title="系统">
|
||||
<local:MyCard Margin="0,0,0,15" Title="启动器">
|
||||
<Grid Margin="25,40,25,20">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" SharedSizeGroup="Name" />
|
||||
@@ -124,6 +126,7 @@
|
||||
<RowDefinition Height="5" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
<TextBlock VerticalAlignment="Center" HorizontalAlignment="Left" Text="启动器更新" Margin="0,0,25,0" />
|
||||
<local:MyComboBox x:Name="ComboSystemUpdate" Tag="SystemSystemUpdate" Grid.Column="1">
|
||||
@@ -145,7 +148,10 @@
|
||||
<local:ValidateFolderPath UseMinecraftCharCheck="False" />
|
||||
</local:MyTextBox.ValidateRules>
|
||||
</local:MyTextBox>
|
||||
<Grid Height="35" Grid.Row="6" Grid.ColumnSpan="5" Margin="0,12,0,0">
|
||||
<local:MyCheckBox Margin="0,5,0,4" Text="匿名数据收集" Grid.Row="6" Height="22" Grid.ColumnSpan="2"
|
||||
x:Name="CheckSystemTelemetry" Tag="SystemSystemTelemetry"
|
||||
ToolTip="当下载失败、PCL 出错、游戏崩溃等事件时,PCL 会匿名上报情况,以通知龙猫 “哦吼,出错了”,让龙猫能更好地修 Bug……
你可以关闭上报,不过龙猫就不知道你遇到了什么 Bug 了…… PCL 不会上传或收集任何个人信息,包括上报的东西里面也没有!" />
|
||||
<Grid Height="35" Grid.Row="7" Grid.ColumnSpan="5" Margin="0,12,0,0">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" SharedSizeGroup="Button" />
|
||||
<ColumnDefinition Width="Auto" SharedSizeGroup="Button" />
|
||||
@@ -155,7 +161,7 @@
|
||||
<local:MyButton Grid.Column="1" x:Name="BtnSystemSettingExp" MinWidth="140" Text="导出设置" Padding="13,0" Margin="0,0,20,0" />
|
||||
<local:MyButton Grid.Column="2" x:Name="BtnSystemSettingImp" MinWidth="140" Text="导入设置" Padding="13,0" Margin="0,0,20,0" />
|
||||
</Grid>
|
||||
<Grid Height="35" Grid.Row="7" Grid.ColumnSpan="5" Margin="0,12,0,0" x:Name="PanDonate">
|
||||
<Grid Height="35" Grid.Row="8" Grid.ColumnSpan="5" Margin="0,12,0,0" x:Name="PanDonate">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" SharedSizeGroup="Button" />
|
||||
<ColumnDefinition Width="Auto" SharedSizeGroup="Button" />
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
|
||||
'Mod 与整合包
|
||||
ComboDownloadTranslateV2.SelectedIndex = Setup.Get("ToolDownloadTranslateV2")
|
||||
'ComboDownloadMod.SelectedIndex = Setup.Get("ToolDownloadMod")
|
||||
ComboDownloadMod.SelectedIndex = Setup.Get("ToolDownloadMod")
|
||||
ComboModLocalNameStyle.SelectedIndex = Setup.Get("ToolModLocalNameStyle")
|
||||
CheckDownloadIgnoreQuilt.Checked = Setup.Get("ToolDownloadIgnoreQuilt")
|
||||
|
||||
@@ -50,6 +50,7 @@
|
||||
ComboSystemUpdate.SelectedIndex = Setup.Get("SystemSystemUpdate")
|
||||
ComboSystemActivity.SelectedIndex = Setup.Get("SystemSystemActivity")
|
||||
TextSystemCache.Text = Setup.Get("SystemSystemCache")
|
||||
CheckSystemTelemetry.Checked = Setup.Get("SystemSystemTelemetry")
|
||||
|
||||
'调试选项
|
||||
CheckDebugMode.Checked = Setup.Get("SystemDebugMode")
|
||||
@@ -81,6 +82,7 @@
|
||||
Setup.Reset("SystemSystemCache")
|
||||
Setup.Reset("SystemSystemUpdate")
|
||||
Setup.Reset("SystemSystemActivity")
|
||||
Setup.Reset("SystemSystemTelemetry")
|
||||
|
||||
Log("[Setup] 已初始化启动器页设置")
|
||||
Hint("已初始化启动器页设置!", HintType.Finish, False)
|
||||
@@ -92,13 +94,13 @@
|
||||
End Sub
|
||||
|
||||
'将控件改变路由到设置改变
|
||||
Private Shared Sub CheckBoxChange(sender As MyCheckBox, e As Object) Handles CheckDebugMode.Change, CheckDebugDelay.Change, CheckDebugSkipCopy.Change, CheckUpdateRelease.Change, CheckUpdateSnapshot.Change, CheckHelpChinese.Change, CheckDownloadIgnoreQuilt.Change, CheckDownloadCert.Change
|
||||
Private Shared Sub CheckBoxChange(sender As MyCheckBox, e As Object) Handles CheckDebugMode.Change, CheckDebugDelay.Change, CheckDebugSkipCopy.Change, CheckUpdateRelease.Change, CheckUpdateSnapshot.Change, CheckHelpChinese.Change, CheckDownloadIgnoreQuilt.Change, CheckDownloadCert.Change, CheckSystemTelemetry.Change
|
||||
If AniControlEnabled = 0 Then Setup.Set(sender.Tag, sender.Checked)
|
||||
End Sub
|
||||
Private Shared Sub SliderChange(sender As MySlider, e As Object) Handles SliderDebugAnim.Change, SliderDownloadThread.Change, SliderDownloadSpeed.Change
|
||||
If AniControlEnabled = 0 Then Setup.Set(sender.Tag, sender.Value)
|
||||
End Sub
|
||||
Private Shared Sub ComboChange(sender As MyComboBox, e As Object) Handles ComboDownloadVersion.SelectionChanged, ComboModLocalNameStyle.SelectionChanged, ComboDownloadTranslateV2.SelectionChanged, ComboSystemUpdate.SelectionChanged, ComboSystemActivity.SelectionChanged, ComboDownloadSource.SelectionChanged
|
||||
Private Shared Sub ComboChange(sender As MyComboBox, e As Object) Handles ComboDownloadVersion.SelectionChanged, ComboModLocalNameStyle.SelectionChanged, ComboDownloadTranslateV2.SelectionChanged, ComboSystemUpdate.SelectionChanged, ComboSystemActivity.SelectionChanged, ComboDownloadSource.SelectionChanged, ComboDownloadMod.SelectionChanged
|
||||
If AniControlEnabled = 0 Then Setup.Set(sender.Tag, sender.SelectedIndex)
|
||||
End Sub
|
||||
Private Shared Sub TextBoxChange(sender As MyTextBox, e As Object) Handles TextSystemCache.ValidatedTextChanged
|
||||
|
||||
@@ -211,7 +211,7 @@
|
||||
<TextBlock Grid.Row="0" VerticalAlignment="Center" HorizontalAlignment="Left" Text="Java 虚拟机参数" Margin="0,0,25,0" />
|
||||
<local:MyTextBox x:Name="TextAdvanceJvm" Grid.Row="0" Grid.ColumnSpan="2" Tag="VersionAdvanceJvm" Grid.Column="1" MaxLength="4000" ToolTip="启动 Minecraft 时使用的额外 JVM 参数,在没有确定把握的情况下请不要尝试修改。
支持 Minecraft 版本 JSON 中的字符串替换标记,例如 ${library_directory}。

若留空,则跟随全局设置的值。" HintText="跟随全局设置"
|
||||
Height="100" AcceptsReturn="True" TextWrapping="Wrap" VerticalContentAlignment="Top" Padding="0,5" VerticalScrollBarVisibility="Auto" />
|
||||
<TextBlock Grid.Row="2" VerticalAlignment="Center" HorizontalAlignment="Left" Text="游戏参数尾部" Margin="0,0,25,0" />
|
||||
<TextBlock Grid.Row="2" VerticalAlignment="Center" HorizontalAlignment="Left" Text="游戏参数" Margin="0,0,25,0" />
|
||||
<local:MyTextBox x:Name="TextAdvanceGame" Grid.Row="2" Grid.ColumnSpan="2" Tag="VersionAdvanceGame" Grid.Column="1" ToolTip="文本框中的内容将会被直接拼合在启动参数的末尾。
例如,输入 --demo 则会以试玩模式启动游戏。
支持 Minecraft 版本 JSON 中的字符串替换标记,例如 ${library_directory}。

若留空,则跟随全局设置的值。" HintText="跟随全局设置" />
|
||||
<TextBlock Grid.Row="4" VerticalAlignment="Center" HorizontalAlignment="Left" Text="启动前执行命令" Margin="0,0,25,3" />
|
||||
<local:MyTextBox x:Name="TextAdvanceRun" Grid.Row="4" Grid.ColumnSpan="2" Tag="VersionAdvanceRun" Grid.Column="1" HintText="" Margin="0,0,0,3"
|
||||
@@ -236,4 +236,4 @@
|
||||
LogoScale="0.9" Logo="M73 584L920 584 608 896C579 925 579 972 608 1001 637 1030 683 1030 712 1001L1149 565C1164 550 1170 531 1170 511 1170 492 1164 472 1149 457L712 21C683-7 637-7 608 21 579 50 579 97 608 126L920 438 73 438C33 438 0 471 0 511 0 551 33 584 73 584Z" />
|
||||
</StackPanel>
|
||||
</local:MyScrollViewer>
|
||||
</local:MyPageRight>
|
||||
</local:MyPageRight>
|
||||
@@ -355,6 +355,15 @@ PreFin:
|
||||
|
||||
#Region "服务器"
|
||||
|
||||
'自动替换标点
|
||||
Private Sub TextServerEnter_Change() Handles TextServerEnter.TextChanged
|
||||
Dim NewText = TextServerEnter.Text.Replace(":", ":").Replace("。", ".")
|
||||
If NewText = TextServerEnter.Text Then Return
|
||||
Dim CurrentPosition = TextServerEnter.SelectionStart '重设焦点
|
||||
TextServerEnter.Text = NewText
|
||||
TextServerEnter.SelectionStart = CurrentPosition
|
||||
End Sub
|
||||
|
||||
'全局
|
||||
Private ComboServerLoginLast As Integer
|
||||
Private Sub ComboServerLogin_Changed() Handles ComboServerLogin.SelectionChanged, TextServerNide.ValidatedTextChanged, TextServerAuthServer.ValidatedTextChanged, TextServerAuthRegister.ValidatedTextChanged
|
||||
@@ -399,9 +408,6 @@ PreFin:
|
||||
TextServerAuthName.Text = "LittleSkin 登录"
|
||||
End Sub
|
||||
|
||||
Private Shared Sub TextServerEnter_Change(sender As MyTextBox, e As Object) Handles TextServerEnter.LostFocus
|
||||
sender.Text = sender.Text.Replace(":", ":")
|
||||
End Sub
|
||||
#End Region
|
||||
|
||||
#Region "Java 选择"
|
||||
|
||||
@@ -138,6 +138,10 @@
|
||||
Text="· 下载版本:切换到 EventData 对应的 Minecraft 下载页面"/>
|
||||
<local:MyButton Margin="0,5,0,6" Width="250" Height="35"
|
||||
Text="下载 Minecraft 1.12.2" EventType="下载版本" EventData="1.12.2"/>
|
||||
<TextBlock Margin="0,4,0,4"
|
||||
Text="· 修改设置:将 PCL 的特定设置修改为特定值"/>
|
||||
<local:MyButton Margin="0,5,0,6" Width="250" Height="35"
|
||||
Text="将窗口改为半透明" EventType="修改设置" EventData="UiLauncherTransparent|400"/>
|
||||
</StackPanel>
|
||||
</local:MyCard>
|
||||
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user