2.6.9
This commit is contained in:
@@ -109,7 +109,7 @@
|
|||||||
Case 6
|
Case 6
|
||||||
ForgeDownloadListItemPreload(Stack, Stack.Tag, AddressOf ForgeSave_Click, True)
|
ForgeDownloadListItemPreload(Stack, Stack.Tag, AddressOf ForgeSave_Click, True)
|
||||||
Case 8
|
Case 8
|
||||||
CompFilesCardPreload(Stack, Stack.Tag, AddressOf FrmDownloadMod.ProjectClick)
|
CompFilesCardPreload(Stack, Stack.Tag)
|
||||||
End Select
|
End Select
|
||||||
'实现控件虚拟化
|
'实现控件虚拟化
|
||||||
For Each Data As Object In Stack.Tag
|
For Each Data As Object In Stack.Tag
|
||||||
|
|||||||
@@ -56,6 +56,8 @@
|
|||||||
RefreshColor()
|
RefreshColor()
|
||||||
End Set
|
End Set
|
||||||
End Property '颜色类别
|
End Property '颜色类别
|
||||||
|
Public Shared ReadOnly ColorTypeProperty As DependencyProperty =
|
||||||
|
DependencyProperty.Register("ColorType", GetType(ColorState), GetType(MyIconTextButton), New PropertyMetadata())
|
||||||
|
|
||||||
'点击事件
|
'点击事件
|
||||||
|
|
||||||
|
|||||||
@@ -78,7 +78,10 @@ Public Class MyLoading
|
|||||||
Ex = Ex.InnerException
|
Ex = Ex.InnerException
|
||||||
Loop
|
Loop
|
||||||
LabText.Text = StrTrim(Ex.Message)
|
LabText.Text = StrTrim(Ex.Message)
|
||||||
If LabText.Text.Contains("远程主机强迫关闭了一个现有的连接") OrElse LabText.Text.Contains("操作已超时") OrElse LabText.Text.Contains("操作超时") OrElse LabText.Text.Contains("服务器超时") OrElse LabText.Text.Contains("连接超时") Then LabText.Text = "网络环境不佳,请重试或尝试使用 VPN"
|
If {"远程主机强迫关闭了", "远程方已关闭传输流", "未能解析此远程名称", "由于目标计算机积极拒绝",
|
||||||
|
"操作已超时", "操作超时", "服务器超时", "连接超时"}.Any(Function(s) LabText.Text.Contains(s)) Then
|
||||||
|
LabText.Text = "网络环境不佳,请重试或尝试使用 VPN"
|
||||||
|
End If
|
||||||
End If
|
End If
|
||||||
Else
|
Else
|
||||||
LabText.Text = TextError
|
LabText.Text = TextError
|
||||||
|
|||||||
@@ -133,6 +133,11 @@ Public Class FormMain
|
|||||||
'3:BUG+ IMP* FEAT-
|
'3:BUG+ IMP* FEAT-
|
||||||
'2:BUG* IMP-
|
'2:BUG* IMP-
|
||||||
'1:BUG-
|
'1:BUG-
|
||||||
|
If LastVersion < 306 Then 'Snapshot 2.6.9
|
||||||
|
FeatureList.Add(New KeyValuePair(Of Integer, String)(2, "为版本独立设置添加忽略 Java 兼容性警告选项"))
|
||||||
|
FeatureCount += 9
|
||||||
|
BugCount += 11
|
||||||
|
End If
|
||||||
If LastVersion < 305 Then 'Snapshot 2.6.8
|
If LastVersion < 305 Then 'Snapshot 2.6.8
|
||||||
FeatureList.Add(New KeyValuePair(Of Integer, String)(1, "修复开始或结束游戏时可能报错的 Bug"))
|
FeatureList.Add(New KeyValuePair(Of Integer, String)(1, "修复开始或结束游戏时可能报错的 Bug"))
|
||||||
FeatureCount += 20
|
FeatureCount += 20
|
||||||
@@ -840,7 +845,12 @@ Public Class FormMain
|
|||||||
End Try
|
End Try
|
||||||
ElseIf e.Data.GetDataPresent(DataFormats.FileDrop) Then
|
ElseIf e.Data.GetDataPresent(DataFormats.FileDrop) Then
|
||||||
'获取文件并检查
|
'获取文件并检查
|
||||||
Dim FilePathList As New List(Of String)(CType(e.Data.GetData(DataFormats.FileDrop), Array))
|
Dim FilePathRaw = e.Data.GetData(DataFormats.FileDrop)
|
||||||
|
If FilePathRaw Is Nothing Then '#2690
|
||||||
|
Hint("请将文件解压后再拖入!", HintType.Critical)
|
||||||
|
Exit Sub
|
||||||
|
End If
|
||||||
|
Dim FilePathList As New List(Of String)(CType(FilePathRaw, IEnumerable(Of String)))
|
||||||
e.Handled = True
|
e.Handled = True
|
||||||
If Directory.Exists(FilePathList.First) AndAlso Not File.Exists(FilePathList.First) Then
|
If Directory.Exists(FilePathList.First) AndAlso Not File.Exists(FilePathList.First) Then
|
||||||
Hint("请拖入一个文件,而非文件夹!", HintType.Critical)
|
Hint("请拖入一个文件,而非文件夹!", HintType.Critical)
|
||||||
@@ -1108,28 +1118,18 @@ Install:
|
|||||||
Case PageType.VersionSetup
|
Case PageType.VersionSetup
|
||||||
Return "版本设置 - " & If(PageVersionLeft.Version Is Nothing, "未知版本", PageVersionLeft.Version.Name)
|
Return "版本设置 - " & If(PageVersionLeft.Version Is Nothing, "未知版本", PageVersionLeft.Version.Name)
|
||||||
Case PageType.CompDetail
|
Case PageType.CompDetail
|
||||||
If Stack.Additional Is Nothing Then
|
Dim Project As CompProject = Stack.Additional(0)
|
||||||
Log("[Control] 资源工程详情页面未提供关键项", LogLevel.Feedback)
|
Select Case Project.Type
|
||||||
Return "未知页面"
|
Case CompType.Mod
|
||||||
Else
|
Return "Mod 下载 - " & Project.TranslatedName
|
||||||
Dim Project As CompProject = Stack.Additional
|
Case CompType.ModPack
|
||||||
Select Case Project.Type
|
Return "整合包下载 - " & Project.TranslatedName
|
||||||
Case CompType.Mod
|
Case Else 'CompType.ResourcePack
|
||||||
Return "Mod 下载 - " & Project.TranslatedName
|
Return "资源包下载 - " & Project.TranslatedName
|
||||||
Case CompType.ModPack
|
End Select
|
||||||
Return "整合包下载 - " & Project.TranslatedName
|
|
||||||
Case Else 'CompType.ResourcePack
|
|
||||||
Return "资源包下载 - " & Project.TranslatedName
|
|
||||||
End Select
|
|
||||||
End If
|
|
||||||
Case PageType.HelpDetail
|
Case PageType.HelpDetail
|
||||||
If Stack.Additional Is Nothing Then
|
Dim Entry As HelpEntry = Stack.Additional(0)
|
||||||
Log("[Control] 帮助详情页面未提供关键项", LogLevel.Msgbox)
|
Return Entry.Title
|
||||||
Return "未知页面"
|
|
||||||
Else
|
|
||||||
Dim Entry As HelpEntry = Stack.Additional(0)
|
|
||||||
Return Entry.Title
|
|
||||||
End If
|
|
||||||
Case Else
|
Case Else
|
||||||
Return ""
|
Return ""
|
||||||
End Select
|
End Select
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
Imports System.IO.Compression
|
Imports System.IO.Compression
|
||||||
Imports System.Management
|
|
||||||
Imports System.Runtime.CompilerServices
|
Imports System.Runtime.CompilerServices
|
||||||
Imports System.Security.Cryptography
|
Imports System.Security.Cryptography
|
||||||
Imports System.Security.Principal
|
Imports System.Security.Principal
|
||||||
|
Imports System.Text.RegularExpressions
|
||||||
Imports System.Windows.Markup
|
Imports System.Windows.Markup
|
||||||
Imports Newtonsoft.Json
|
Imports Newtonsoft.Json
|
||||||
|
|
||||||
@@ -11,12 +11,12 @@ Public Module ModBase
|
|||||||
#Region "声明"
|
#Region "声明"
|
||||||
|
|
||||||
'下列版本信息由更新器自动修改
|
'下列版本信息由更新器自动修改
|
||||||
Public Const VersionBaseName As String = "2.6.8" '不含分支前缀的显示用版本名
|
Public Const VersionBaseName As String = "2.6.9" '不含分支前缀的显示用版本名
|
||||||
Public Const VersionStandardCode As String = "2.6.8." & VersionBranchCode '标准格式的四段式版本号
|
Public Const VersionStandardCode As String = "2.6.9." & VersionBranchCode '标准格式的四段式版本号
|
||||||
#If BETA Then
|
#If BETA Then
|
||||||
Public Const VersionCode As Integer = 304 'Release
|
Public Const VersionCode As Integer = 304 'Release
|
||||||
#Else
|
#Else
|
||||||
Public Const VersionCode As Integer = 305 'Snapshot
|
Public Const VersionCode As Integer = 306 'Snapshot
|
||||||
#End If
|
#End If
|
||||||
'自动生成的版本信息
|
'自动生成的版本信息
|
||||||
Public Const VersionDisplayName As String = VersionBranchName & " " & VersionBaseName
|
Public Const VersionDisplayName As String = VersionBranchName & " " & VersionBaseName
|
||||||
@@ -1581,12 +1581,12 @@ Re:
|
|||||||
''' <summary>
|
''' <summary>
|
||||||
''' 搜索字符串中的所有正则匹配项。
|
''' 搜索字符串中的所有正则匹配项。
|
||||||
''' </summary>
|
''' </summary>
|
||||||
Public Function RegexSearch(str As String, regex As String, Optional options As RegularExpressions.RegexOptions = RegularExpressions.RegexOptions.None) As List(Of String)
|
Public Function RegexSearch(str As String, regex As String, Optional options As RegexOptions = RegularExpressions.RegexOptions.None) As List(Of String)
|
||||||
Try
|
Try
|
||||||
RegexSearch = New List(Of String)
|
RegexSearch = New List(Of String)
|
||||||
Dim RegexSearchRes = New RegularExpressions.Regex(regex, options).Matches(str)
|
Dim RegexSearchRes = New Regex(regex, options).Matches(str)
|
||||||
If RegexSearchRes Is Nothing Then Return RegexSearch
|
If RegexSearchRes Is Nothing Then Return RegexSearch
|
||||||
For Each item As RegularExpressions.Match In RegexSearchRes
|
For Each item As Match In RegexSearchRes
|
||||||
RegexSearch.Add(item.Value)
|
RegexSearch.Add(item.Value)
|
||||||
Next
|
Next
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
@@ -1597,7 +1597,7 @@ Re:
|
|||||||
''' <summary>
|
''' <summary>
|
||||||
''' 获取字符串中的第一个正则匹配项,若无匹配则返回 Nothing。
|
''' 获取字符串中的第一个正则匹配项,若无匹配则返回 Nothing。
|
||||||
''' </summary>
|
''' </summary>
|
||||||
Public Function RegexSeek(str As String, regex As String, Optional options As RegularExpressions.RegexOptions = RegularExpressions.RegexOptions.None) As String
|
Public Function RegexSeek(str As String, regex As String, Optional options As RegexOptions = RegularExpressions.RegexOptions.None) As String
|
||||||
Try
|
Try
|
||||||
Dim Result = RegularExpressions.Regex.Match(str, regex, options).Value
|
Dim Result = RegularExpressions.Regex.Match(str, regex, options).Value
|
||||||
Return If(Result = "", Nothing, Result)
|
Return If(Result = "", Nothing, Result)
|
||||||
@@ -1609,7 +1609,7 @@ Re:
|
|||||||
''' <summary>
|
''' <summary>
|
||||||
''' 检查字符串是否匹配某正则模式。
|
''' 检查字符串是否匹配某正则模式。
|
||||||
''' </summary>
|
''' </summary>
|
||||||
Public Function RegexCheck(str As String, regex As String, Optional options As RegularExpressions.RegexOptions = RegularExpressions.RegexOptions.None) As Boolean
|
Public Function RegexCheck(str As String, regex As String, Optional options As RegexOptions = RegularExpressions.RegexOptions.None) As Boolean
|
||||||
Try
|
Try
|
||||||
Return RegularExpressions.Regex.IsMatch(str, regex, options)
|
Return RegularExpressions.Regex.IsMatch(str, regex, options)
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
@@ -1620,7 +1620,13 @@ Re:
|
|||||||
''' <summary>
|
''' <summary>
|
||||||
''' 进行正则替换,会抛出错误。
|
''' 进行正则替换,会抛出错误。
|
||||||
''' </summary>
|
''' </summary>
|
||||||
Public Function RegexReplace(Input As String, Replacement As String, Regex As String, Optional options As RegularExpressions.RegexOptions = RegularExpressions.RegexOptions.None) As String
|
Public Function RegexReplace(Input As String, Replacement As String, Regex As String, Optional options As RegexOptions = RegularExpressions.RegexOptions.None) As String
|
||||||
|
Return RegularExpressions.Regex.Replace(Input, Regex, Replacement, options)
|
||||||
|
End Function
|
||||||
|
''' <summary>
|
||||||
|
''' 对每个正则匹配分别进行替换,会抛出错误。
|
||||||
|
''' </summary>
|
||||||
|
Public Function RegexReplaceEach(Input As String, Replacement As MatchEvaluator, Regex As String, Optional options As RegexOptions = RegularExpressions.RegexOptions.None) As String
|
||||||
Return RegularExpressions.Regex.Replace(Input, Regex, Replacement, options)
|
Return RegularExpressions.Regex.Replace(Input, Regex, Replacement, options)
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
|||||||
@@ -330,7 +330,7 @@ Retry:
|
|||||||
''' <summary>
|
''' <summary>
|
||||||
''' 同时发送多个网络请求并要求返回内容。
|
''' 同时发送多个网络请求并要求返回内容。
|
||||||
''' </summary>
|
''' </summary>
|
||||||
Public Function NetRequestMuity(Url As String, Method As String, Data As Object, ContentType As String, Optional RequestCount As Integer = 4, Optional Headers As Dictionary(Of String, String) = Nothing)
|
Public Function NetRequestMulty(Url As String, Method As String, Data As Object, ContentType As String, Optional RequestCount As Integer = 4, Optional Headers As Dictionary(Of String, String) = Nothing)
|
||||||
Dim Threads As New List(Of Thread)
|
Dim Threads As New List(Of Thread)
|
||||||
Dim RequestResult = Nothing
|
Dim RequestResult = Nothing
|
||||||
Dim RequestEx As Exception = Nothing
|
Dim RequestEx As Exception = Nothing
|
||||||
@@ -1278,14 +1278,6 @@ Wrong:
|
|||||||
Try
|
Try
|
||||||
Retry:
|
Retry:
|
||||||
SyncLock LockChain
|
SyncLock LockChain
|
||||||
''大小检测
|
|
||||||
'If DownloadDone <> FileSize AndAlso Not IsUnknownSize Then
|
|
||||||
' For Each Th As NetThread In Threads
|
|
||||||
' Log("[Download] " & "File size detail: ")
|
|
||||||
' Log("[Download] " & Th.Uuid & "#, State " & GetStringFromEnum(CType(Th.State, [Enum])) & ", Range " & Th.DownloadStart & "~" & (Th.DownloadStart + Th.DownloadDone) & ", Left " & Th.DownloadUndone)
|
|
||||||
' Next
|
|
||||||
' Throw New Exception("文件大小应为 " & FileSize & " B,实际下载为 " & DownloadDone & " B。")
|
|
||||||
'End If
|
|
||||||
If ModeDebug Then Log("[Download] " & LocalName & ":正在合并文件")
|
If ModeDebug Then Log("[Download] " & LocalName & ":正在合并文件")
|
||||||
'创建文件夹
|
'创建文件夹
|
||||||
If File.Exists(LocalPath) Then File.Delete(LocalPath)
|
If File.Exists(LocalPath) Then File.Delete(LocalPath)
|
||||||
@@ -1299,7 +1291,7 @@ Retry:
|
|||||||
AddWriter.Write(SmailFileCache.ToArray)
|
AddWriter.Write(SmailFileCache.ToArray)
|
||||||
AddWriter.Dispose() : AddWriter = Nothing
|
AddWriter.Dispose() : AddWriter = Nothing
|
||||||
MergeFile.Dispose() : MergeFile = Nothing
|
MergeFile.Dispose() : MergeFile = Nothing
|
||||||
ElseIf Threads.DownloadDone = DownloadDone Then
|
ElseIf Threads.DownloadDone = DownloadDone AndAlso Threads.Temp IsNot Nothing Then
|
||||||
'仅有一个文件,直接复制
|
'仅有一个文件,直接复制
|
||||||
CopyFile(Threads.Temp, LocalPath)
|
CopyFile(Threads.Temp, LocalPath)
|
||||||
Else
|
Else
|
||||||
@@ -1307,7 +1299,7 @@ Retry:
|
|||||||
MergeFile = New FileStream(LocalPath, FileMode.Create)
|
MergeFile = New FileStream(LocalPath, FileMode.Create)
|
||||||
AddWriter = New BinaryWriter(MergeFile)
|
AddWriter = New BinaryWriter(MergeFile)
|
||||||
For Each Thread As NetThread In Threads
|
For Each Thread As NetThread In Threads
|
||||||
If Thread.DownloadDone = 0 Then Continue For
|
If Thread.DownloadDone = 0 OrElse Thread.Temp Is Nothing Then Continue For
|
||||||
Using fs As New FileStream(Thread.Temp, FileMode.Open, FileAccess.Read, FileShare.Read)
|
Using fs As New FileStream(Thread.Temp, FileMode.Open, FileAccess.Read, FileShare.Read)
|
||||||
Dim TempReader As New BinaryReader(fs)
|
Dim TempReader As New BinaryReader(fs)
|
||||||
AddWriter.Write(TempReader.ReadBytes(fs.Length))
|
AddWriter.Write(TempReader.ReadBytes(fs.Length))
|
||||||
@@ -1328,9 +1320,9 @@ Retry:
|
|||||||
'检查文件
|
'检查文件
|
||||||
Dim CheckResult As String = Check?.Check(LocalPath)
|
Dim CheckResult As String = Check?.Check(LocalPath)
|
||||||
If CheckResult IsNot Nothing Then
|
If CheckResult IsNot Nothing Then
|
||||||
Log("[Download] " & "File size detail of " & Uuid & "# :")
|
Log("[Download] " & Uuid & "# 的下载线程细节:")
|
||||||
For Each Th As NetThread In Threads
|
For Each Th As NetThread In Threads
|
||||||
Log("[Download] " & Th.Uuid & "#, State " & GetStringFromEnum(CType(Th.State, [Enum])) & ", Range " & Th.DownloadStart & "~" & (Th.DownloadStart + Th.DownloadDone) & ", Left " & Th.DownloadUndone)
|
Log("[Download] " & Th.Uuid & "#,状态 " & GetStringFromEnum(CType(Th.State, [Enum])) & ",字节范围 " & Th.DownloadStart & "~" & (Th.DownloadStart + Th.DownloadDone) & ",字节剩余 " & Th.DownloadUndone)
|
||||||
Next
|
Next
|
||||||
Throw New Exception(CheckResult)
|
Throw New Exception(CheckResult)
|
||||||
End If
|
End If
|
||||||
|
|||||||
@@ -385,7 +385,7 @@
|
|||||||
''' <summary>
|
''' <summary>
|
||||||
''' 将当前工程信息实例化为控件。
|
''' 将当前工程信息实例化为控件。
|
||||||
''' </summary>
|
''' </summary>
|
||||||
Public Function ToCompItem(ShowMcVersionDesc As Boolean, ShowLoaderDesc As Boolean, Optional OnClick As MyCompItem.ClickEventHandler = Nothing) As MyCompItem
|
Public Function ToCompItem(ShowMcVersionDesc As Boolean, ShowLoaderDesc As Boolean) As MyCompItem
|
||||||
'获取版本描述
|
'获取版本描述
|
||||||
Dim GameVersionDescription As String
|
Dim GameVersionDescription As String
|
||||||
If GameVersions Is Nothing OrElse GameVersions.Count = 0 Then
|
If GameVersions Is Nothing OrElse GameVersions.Count = 0 Then
|
||||||
@@ -567,12 +567,6 @@ NoExName:
|
|||||||
Else
|
Else
|
||||||
NewItem.Logo = LogoUrl
|
NewItem.Logo = LogoUrl
|
||||||
End If
|
End If
|
||||||
If OnClick IsNot Nothing Then
|
|
||||||
AddHandler NewItem.Click, OnClick
|
|
||||||
NewItem.HasAnimation = True
|
|
||||||
Else
|
|
||||||
NewItem.HasAnimation = False
|
|
||||||
End If
|
|
||||||
Return NewItem
|
Return NewItem
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
@@ -1377,7 +1371,7 @@ Retry:
|
|||||||
''' <summary>
|
''' <summary>
|
||||||
''' 预载包含大量 CompFile 的卡片,添加必要的元素和前置 Mod 列表。
|
''' 预载包含大量 CompFile 的卡片,添加必要的元素和前置 Mod 列表。
|
||||||
''' </summary>
|
''' </summary>
|
||||||
Public Sub CompFilesCardPreload(Stack As StackPanel, Files As List(Of CompFile), OnClick As MyListItem.ClickEventHandler)
|
Public Sub CompFilesCardPreload(Stack As StackPanel, Files As List(Of CompFile))
|
||||||
'获取卡片对应的前置 ID
|
'获取卡片对应的前置 ID
|
||||||
'如果为整合包就不会有 Dependencies 信息,所以不用管
|
'如果为整合包就不会有 Dependencies 信息,所以不用管
|
||||||
Dim Deps As List(Of String) = Files.SelectMany(Function(f) f.Dependencies).Distinct.ToList()
|
Dim Deps As List(Of String) = Files.SelectMany(Function(f) f.Dependencies).Distinct.ToList()
|
||||||
@@ -1391,7 +1385,7 @@ Retry:
|
|||||||
Stack.Children.Add(New TextBlock With {.Text = "前置 Mod", .FontSize = 14, .HorizontalAlignment = HorizontalAlignment.Left, .Margin = New Thickness(6, 2, 0, 5)})
|
Stack.Children.Add(New TextBlock With {.Text = "前置 Mod", .FontSize = 14, .HorizontalAlignment = HorizontalAlignment.Left, .Margin = New Thickness(6, 2, 0, 5)})
|
||||||
'添加前置 Mod 列表
|
'添加前置 Mod 列表
|
||||||
For Each Dep In Deps
|
For Each Dep In Deps
|
||||||
Dim Item = CompProjectCache(Dep).ToCompItem(False, False, AddressOf FrmDownloadMod.ProjectClick)
|
Dim Item = CompProjectCache(Dep).ToCompItem(False, False)
|
||||||
Stack.Children.Add(Item)
|
Stack.Children.Add(Item)
|
||||||
Next
|
Next
|
||||||
'添加结尾间隔
|
'添加结尾间隔
|
||||||
|
|||||||
@@ -385,6 +385,7 @@
|
|||||||
''' </summary>
|
''' </summary>
|
||||||
Public Sub Analyze(Optional Version As McVersion = Nothing)
|
Public Sub Analyze(Optional Version As McVersion = Nothing)
|
||||||
Log("[Crash] 步骤 3:分析崩溃原因")
|
Log("[Crash] 步骤 3:分析崩溃原因")
|
||||||
|
LogAll = (If(LogMc, "") & If(LogMcDebug, "") & If(LogHs, "") & If(LogCrash, ""))
|
||||||
|
|
||||||
'1. 精准日志匹配,中/高优先级
|
'1. 精准日志匹配,中/高优先级
|
||||||
AnalyzeCrit1()
|
AnalyzeCrit1()
|
||||||
@@ -393,7 +394,6 @@
|
|||||||
If CrashReasons.Count > 0 Then GoTo Done
|
If CrashReasons.Count > 0 Then GoTo Done
|
||||||
|
|
||||||
'2. 堆栈分析
|
'2. 堆栈分析
|
||||||
LogAll = (If(LogMc, "") & If(LogMcDebug, "") & If(LogHs, "") & If(LogCrash, ""))
|
|
||||||
If LogAll.Contains("orge") OrElse LogAll.Contains("abric") OrElse LogAll.Contains("uilt") OrElse LogAll.Contains("iteloader") Then
|
If LogAll.Contains("orge") OrElse LogAll.Contains("abric") OrElse LogAll.Contains("uilt") OrElse LogAll.Contains("iteloader") Then
|
||||||
Dim Keywords As New List(Of String)
|
Dim Keywords As New List(Of String)
|
||||||
'崩溃日志
|
'崩溃日志
|
||||||
@@ -868,9 +868,7 @@ NextStack:
|
|||||||
If IsHandAnalyze Then
|
If IsHandAnalyze Then
|
||||||
Return "很抱歉,PCL 无法确定错误原因。"
|
Return "很抱歉,PCL 无法确定错误原因。"
|
||||||
Else
|
Else
|
||||||
Return "很抱歉,你的游戏出现了一些问题……" & vbCrLf &
|
Return $"很抱歉,你的游戏出现了一些问题……{vbCrLf}如果要寻求帮助,请导出错误报告并发给他人,而不是发送这个窗口的截图。"
|
||||||
"如果要寻求帮助,请向他人发送错误报告文件,而不是发送这个窗口的截图。" & vbCrLf &
|
|
||||||
"你也可以查看错误报告,其中可能会有出错的原因。"
|
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
|||||||
@@ -19,14 +19,7 @@
|
|||||||
Dim Checker As New FileChecker(MinSize:=1024, ActualSize:=If(Version.JsonObject("downloads")("client")("size"), -1), Hash:=Version.JsonObject("downloads")("client")("sha1"))
|
Dim Checker As New FileChecker(MinSize:=1024, ActualSize:=If(Version.JsonObject("downloads")("client")("size"), -1), Hash:=Version.JsonObject("downloads")("client")("sha1"))
|
||||||
If ReturnNothingOnFileUseable Then
|
If ReturnNothingOnFileUseable Then
|
||||||
'是否跳过
|
'是否跳过
|
||||||
Dim IsSetupSkip As Boolean = Setup.Get("LaunchAdvanceAssets")
|
Dim IsSetupSkip As Boolean = ShouldIgnoreFileCheck(Version)
|
||||||
Select Case Setup.Get("VersionAdvanceAssets", Version:=Version)
|
|
||||||
Case 0 '使用全局设置
|
|
||||||
Case 1 '开启
|
|
||||||
IsSetupSkip = False
|
|
||||||
Case 2 '关闭
|
|
||||||
IsSetupSkip = True
|
|
||||||
End Select
|
|
||||||
If IsSetupSkip AndAlso File.Exists(Version.Path & Version.Name & ".jar") Then Return Nothing '跳过校验
|
If IsSetupSkip AndAlso File.Exists(Version.Path & Version.Name & ".jar") Then Return Nothing '跳过校验
|
||||||
If Checker.Check(Version.Path & Version.Name & ".jar") Is Nothing Then Return Nothing '通过校验
|
If Checker.Check(Version.Path & Version.Name & ".jar") Is Nothing Then Return Nothing '通过校验
|
||||||
End If
|
End If
|
||||||
@@ -72,17 +65,7 @@
|
|||||||
#End Region
|
#End Region
|
||||||
|
|
||||||
#Region "下载资源文件"
|
#Region "下载资源文件"
|
||||||
Dim IsSetupSkip As Boolean = Setup.Get("LaunchAdvanceAssets")
|
Dim IsSetupSkip As Boolean = ShouldIgnoreFileCheck(Version)
|
||||||
Select Case Setup.Get("VersionAdvanceAssets", Version:=Version)
|
|
||||||
Case 0
|
|
||||||
'使用全局设置
|
|
||||||
Case 1
|
|
||||||
'开启
|
|
||||||
IsSetupSkip = False
|
|
||||||
Case 2
|
|
||||||
'关闭
|
|
||||||
IsSetupSkip = True
|
|
||||||
End Select
|
|
||||||
If IsSetupSkip Then Log("[Download] 已跳过 Assets 下载")
|
If IsSetupSkip Then Log("[Download] 已跳过 Assets 下载")
|
||||||
If (Not SkipAssetsDownloadWhileSetupRequired) OrElse Not IsSetupSkip Then
|
If (Not SkipAssetsDownloadWhileSetupRequired) OrElse Not IsSetupSkip Then
|
||||||
Dim LoadersAssets As New List(Of LoaderBase)
|
Dim LoadersAssets As New List(Of LoaderBase)
|
||||||
|
|||||||
@@ -326,9 +326,9 @@ RetryGet:
|
|||||||
Requirement = "需要 Java " & If(Left = Right, Left, Left & " ~ " & Right)
|
Requirement = "需要 Java " & If(Left = Right, Left, Left & " ~ " & Right)
|
||||||
End If
|
End If
|
||||||
Dim JavaCurrent As String = UserJava.VersionCode & If(ShowRevision, "." & UserJava.Version.MajorRevision & "." & UserJava.Version.MinorRevision, "")
|
Dim JavaCurrent As String = UserJava.VersionCode & If(ShowRevision, "." & UserJava.Version.MajorRevision & "." & UserJava.Version.MinorRevision, "")
|
||||||
If Setup.Get("LaunchAdvanceJava") Then
|
If Setup.Get("LaunchAdvanceJava") OrElse (RelatedVersion IsNot Nothing AndAlso Setup.Get("VersionAdvanceJava", RelatedVersion)) Then
|
||||||
'直接跳过弹窗
|
'直接跳过弹窗
|
||||||
Hint("设置中指定了使用 Java " & JavaCurrent & ",但当前版本" & Requirement & ",这可能会导致游戏崩溃!", HintType.Critical)
|
Log("[Java] 设置中指定了使用 Java " & JavaCurrent & ",但当前版本" & Requirement & ",这可能会导致游戏崩溃!", LogLevel.Debug)
|
||||||
AllowedJavaList = New List(Of JavaEntry) From {UserJava}
|
AllowedJavaList = New List(Of JavaEntry) From {UserJava}
|
||||||
Else
|
Else
|
||||||
Select Case MyMsgBox("你在设置中手动指定了使用 Java " & JavaCurrent & ",但当前" & Requirement & "。" & vbCrLf &
|
Select Case MyMsgBox("你在设置中手动指定了使用 Java " & JavaCurrent & ",但当前" & Requirement & "。" & vbCrLf &
|
||||||
@@ -677,6 +677,7 @@ Wait:
|
|||||||
SearchEntry.Contains("mod") OrElse SearchEntry.Contains("高清") OrElse SearchEntry.Contains("download") OrElse
|
SearchEntry.Contains("mod") OrElse SearchEntry.Contains("高清") OrElse SearchEntry.Contains("download") OrElse
|
||||||
SearchEntry.Contains("launch") OrElse SearchEntry.Contains("程序") OrElse SearchEntry.Contains("path") OrElse
|
SearchEntry.Contains("launch") OrElse SearchEntry.Contains("程序") OrElse SearchEntry.Contains("path") OrElse
|
||||||
SearchEntry.Contains("version") OrElse SearchEntry.Contains("baka") OrElse SearchEntry.Contains("pcl") OrElse
|
SearchEntry.Contains("version") OrElse SearchEntry.Contains("baka") OrElse SearchEntry.Contains("pcl") OrElse
|
||||||
|
SearchEntry.Contains("zulu") OrElse
|
||||||
SearchEntry.Contains("local") OrElse SearchEntry.Contains("packages") OrElse SearchEntry.Contains("4297127d64ec6") OrElse '官启文件夹
|
SearchEntry.Contains("local") OrElse SearchEntry.Contains("packages") OrElse SearchEntry.Contains("4297127d64ec6") OrElse '官启文件夹
|
||||||
SearchEntry.Contains("国服") OrElse SearchEntry.Contains("网易") OrElse SearchEntry.Contains("ext") OrElse '网易 Java 文件夹名
|
SearchEntry.Contains("国服") OrElse SearchEntry.Contains("网易") OrElse SearchEntry.Contains("ext") OrElse '网易 Java 文件夹名
|
||||||
SearchEntry.Contains("netease") OrElse SearchEntry.Contains("1.") OrElse SearchEntry.Contains("启动") Then
|
SearchEntry.Contains("netease") OrElse SearchEntry.Contains("1.") OrElse SearchEntry.Contains("启动") Then
|
||||||
|
|||||||
@@ -881,7 +881,7 @@ SystemBrowser:
|
|||||||
End If
|
End If
|
||||||
Dim Result As String
|
Dim Result As String
|
||||||
Try
|
Try
|
||||||
Result = NetRequestMuity("https://login.live.com/oauth20_token.srf", "POST", Request, "application/x-www-form-urlencoded", 1)
|
Result = NetRequestMulty("https://login.live.com/oauth20_token.srf", "POST", Request, "application/x-www-form-urlencoded", 1)
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
If ex.Message.Contains("must sign in again") OrElse ex.Message.Contains("invalid_grant") Then '#269
|
If ex.Message.Contains("must sign in again") OrElse ex.Message.Contains("invalid_grant") Then '#269
|
||||||
Return {"Relogin", ""}
|
Return {"Relogin", ""}
|
||||||
@@ -908,7 +908,7 @@ SystemBrowser:
|
|||||||
""RelyingParty"": ""http://auth.xboxlive.com"",
|
""RelyingParty"": ""http://auth.xboxlive.com"",
|
||||||
""TokenType"": ""JWT""
|
""TokenType"": ""JWT""
|
||||||
}"
|
}"
|
||||||
Dim Result As String = NetRequestMuity("https://user.auth.xboxlive.com/user/authenticate", "POST", Request, "application/json", 3)
|
Dim Result As String = NetRequestMulty("https://user.auth.xboxlive.com/user/authenticate", "POST", Request, "application/json", 3)
|
||||||
|
|
||||||
Dim ResultJson As JObject = GetJson(Result)
|
Dim ResultJson As JObject = GetJson(Result)
|
||||||
Dim XBLToken As String = ResultJson("Token").ToString
|
Dim XBLToken As String = ResultJson("Token").ToString
|
||||||
@@ -930,7 +930,7 @@ SystemBrowser:
|
|||||||
}"
|
}"
|
||||||
Dim Result As String
|
Dim Result As String
|
||||||
Try
|
Try
|
||||||
Result = NetRequestMuity("https://xsts.auth.xboxlive.com/xsts/authorize", "POST", Request, "application/json", 3)
|
Result = NetRequestMulty("https://xsts.auth.xboxlive.com/xsts/authorize", "POST", Request, "application/json", 3)
|
||||||
Catch ex As Net.WebException
|
Catch ex As Net.WebException
|
||||||
If ex.Message.Contains("2148916233") Then
|
If ex.Message.Contains("2148916233") Then
|
||||||
If MyMsgBox("该微软账号尚未购买 Minecraft Java 版,或尚未注册 Xbox 账户。" & vbCrLf &
|
If MyMsgBox("该微软账号尚未购买 Minecraft Java 版,或尚未注册 Xbox 账户。" & vbCrLf &
|
||||||
@@ -967,7 +967,7 @@ SystemBrowser:
|
|||||||
Dim Request As String = "{""identityToken"": ""XBL3.0 x=" & Tokens(1) & ";" & Tokens(0) & """}"
|
Dim Request As String = "{""identityToken"": ""XBL3.0 x=" & Tokens(1) & ";" & Tokens(0) & """}"
|
||||||
Dim Result As String
|
Dim Result As String
|
||||||
Try
|
Try
|
||||||
Result = NetRequestMuity("https://api.minecraftservices.com/authentication/login_with_xbox", "POST", Request, "application/json", 2)
|
Result = NetRequestMulty("https://api.minecraftservices.com/authentication/login_with_xbox", "POST", Request, "application/json", 2)
|
||||||
Catch ex As Net.WebException
|
Catch ex As Net.WebException
|
||||||
Dim Message As String = GetExceptionSummary(ex)
|
Dim Message As String = GetExceptionSummary(ex)
|
||||||
If Message.Contains("(429)") Then
|
If Message.Contains("(429)") Then
|
||||||
@@ -991,7 +991,7 @@ SystemBrowser:
|
|||||||
|
|
||||||
Dim Result As String
|
Dim Result As String
|
||||||
Try
|
Try
|
||||||
Result = NetRequestMuity("https://api.minecraftservices.com/minecraft/profile", "GET", "", "application/json", 2, New Dictionary(Of String, String) From {{"Authorization", "Bearer " & AccessToken}})
|
Result = NetRequestMulty("https://api.minecraftservices.com/minecraft/profile", "GET", "", "application/json", 2, New Dictionary(Of String, String) From {{"Authorization", "Bearer " & AccessToken}})
|
||||||
Catch ex As Net.WebException
|
Catch ex As Net.WebException
|
||||||
Dim Message As String = GetExceptionSummary(ex)
|
Dim Message As String = GetExceptionSummary(ex)
|
||||||
If Message.Contains("(429)") Then
|
If Message.Contains("(429)") Then
|
||||||
|
|||||||
@@ -570,7 +570,7 @@ Recheck:
|
|||||||
''' </summary>
|
''' </summary>
|
||||||
Public ReadOnly Property IsOldJson As Boolean
|
Public ReadOnly Property IsOldJson As Boolean
|
||||||
Get
|
Get
|
||||||
Return JsonObject("minecraftArguments") IsNot Nothing
|
Return JsonObject("minecraftArguments") IsNot Nothing AndAlso JsonObject("minecraftArguments") <> ""
|
||||||
End Get
|
End Get
|
||||||
End Property
|
End Property
|
||||||
''' <summary>
|
''' <summary>
|
||||||
@@ -713,7 +713,7 @@ Recheck:
|
|||||||
ExitDataLoad:
|
ExitDataLoad:
|
||||||
'确定版本图标
|
'确定版本图标
|
||||||
Logo = ReadIni(Path & "PCL\Setup.ini", "Logo", "")
|
Logo = ReadIni(Path & "PCL\Setup.ini", "Logo", "")
|
||||||
If Logo = "" OrElse ReadIni(Path & "PCL\Setup.ini", "LogoCustom", "False") = "False" Then
|
If Logo = "" OrElse Not CType(ReadIni(Path & "PCL\Setup.ini", "LogoCustom", False), Boolean) Then
|
||||||
Select Case State
|
Select Case State
|
||||||
Case McVersionState.Original
|
Case McVersionState.Original
|
||||||
Logo = "pack://application:,,,/images/Blocks/Grass.png"
|
Logo = "pack://application:,,,/images/Blocks/Grass.png"
|
||||||
@@ -1878,14 +1878,7 @@ NextVersion:
|
|||||||
If CoreJarOnly Then Return Result
|
If CoreJarOnly Then Return Result
|
||||||
|
|
||||||
'是否跳过校验
|
'是否跳过校验
|
||||||
Dim IsSetupSkip As Boolean = Setup.Get("LaunchAdvanceAssets")
|
Dim IsSetupSkip As Boolean = ShouldIgnoreFileCheck(Version)
|
||||||
Select Case Setup.Get("VersionAdvanceAssets", Version:=Version)
|
|
||||||
Case 0 '使用全局设置
|
|
||||||
Case 1 '开启校验
|
|
||||||
IsSetupSkip = False
|
|
||||||
Case 2 '关闭校验
|
|
||||||
IsSetupSkip = True
|
|
||||||
End Select
|
|
||||||
|
|
||||||
'Library 文件
|
'Library 文件
|
||||||
Result.AddRange(McLibFixFromLibToken(McLibListGet(Version, False), JumpLoaderFolder:=Version.PathIndie & ".jumploader\", AllowUnsameFile:=IsSetupSkip))
|
Result.AddRange(McLibFixFromLibToken(McLibListGet(Version, False), JumpLoaderFolder:=Version.PathIndie & ".jumploader\", AllowUnsameFile:=IsSetupSkip))
|
||||||
@@ -2014,6 +2007,13 @@ NextVersion:
|
|||||||
End If
|
End If
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 检查设置,是否应当忽略文件检查?
|
||||||
|
''' </summary>
|
||||||
|
Public Function ShouldIgnoreFileCheck(Version As McVersion)
|
||||||
|
Return Setup.Get("LaunchAdvanceAssets") OrElse Setup.Get("VersionAdvanceAssetsV2", Version:=Version) OrElse (Setup.Get("VersionAdvanceAssets", Version:=Version) = 2)
|
||||||
|
End Function
|
||||||
|
|
||||||
#End Region
|
#End Region
|
||||||
|
|
||||||
#Region "资源文件(Assets)"
|
#Region "资源文件(Assets)"
|
||||||
|
|||||||
@@ -411,16 +411,20 @@ Public Module ModMod
|
|||||||
ElseIf RawValue.StartsWith("'''") Then
|
ElseIf RawValue.StartsWith("'''") Then
|
||||||
'多行字符串
|
'多行字符串
|
||||||
Dim ValueLines As New List(Of String) From {RawValue.TrimStart("'")}
|
Dim ValueLines As New List(Of String) From {RawValue.TrimStart("'")}
|
||||||
Do Until i >= Lines.Count - 1
|
If ValueLines(0).EndsWith("'''") Then '把多行字符串按单行写法写的错误处理(#2732)
|
||||||
i += 1
|
ValueLines(0) = ValueLines(0).TrimEnd("'")
|
||||||
Dim ValueLine As String = Lines(i)
|
Else
|
||||||
If ValueLine.EndsWith("'''") Then
|
Do Until i >= Lines.Count - 1
|
||||||
ValueLines.Add(ValueLine.TrimEnd("'"))
|
i += 1
|
||||||
Exit Do
|
Dim ValueLine As String = Lines(i)
|
||||||
Else
|
If ValueLine.EndsWith("'''") Then
|
||||||
ValueLines.Add(ValueLine)
|
ValueLines.Add(ValueLine.TrimEnd("'"))
|
||||||
End If
|
Exit Do
|
||||||
Loop
|
Else
|
||||||
|
ValueLines.Add(ValueLine)
|
||||||
|
End If
|
||||||
|
Loop
|
||||||
|
End If
|
||||||
Value = Join(ValueLines, vbLf).Trim(vbLf).Replace(vbLf, vbCrLf)
|
Value = Join(ValueLines, vbLf).Trim(vbLf).Replace(vbLf, vbCrLf)
|
||||||
ElseIf RawValue.ToLower = "true" OrElse RawValue.ToLower = "false" Then
|
ElseIf RawValue.ToLower = "true" OrElse RawValue.ToLower = "false" Then
|
||||||
'布尔型
|
'布尔型
|
||||||
|
|||||||
@@ -16,13 +16,13 @@ Public Module ModModpack
|
|||||||
''' </summary>
|
''' </summary>
|
||||||
Public Function ModpackInstall(File As String, Optional VersionName As String = Nothing, Optional ShowHint As Boolean = True, Optional Logo As String = Nothing) As Boolean
|
Public Function ModpackInstall(File As String, Optional VersionName As String = Nothing, Optional ShowHint As Boolean = True, Optional Logo As String = Nothing) As Boolean
|
||||||
Log("[ModPack] 整合包安装请求:" & If(File, "null"))
|
Log("[ModPack] 整合包安装请求:" & If(File, "null"))
|
||||||
Dim Archive As Compression.ZipArchive = Nothing
|
Dim Archive As ZipArchive = Nothing
|
||||||
Dim ArchiveBaseFolder As String = ""
|
Dim ArchiveBaseFolder As String = ""
|
||||||
Try
|
Try
|
||||||
'获取整合包种类与关键 Json
|
'获取整合包种类与关键 Json
|
||||||
Dim PackType As Integer = -1
|
Dim PackType As Integer = -1
|
||||||
Try
|
Try
|
||||||
Archive = New Compression.ZipArchive(New FileStream(File, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
|
Archive = New ZipArchive(New FileStream(File, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
|
||||||
'从根目录判断整合包类型
|
'从根目录判断整合包类型
|
||||||
If Archive.GetEntry("mcbbs.packmeta") IsNot Nothing Then PackType = 3 : Exit Try 'MCBBS 整合包(优先于 manifest.json 判断)
|
If Archive.GetEntry("mcbbs.packmeta") IsNot Nothing Then PackType = 3 : Exit Try 'MCBBS 整合包(优先于 manifest.json 判断)
|
||||||
If Archive.GetEntry("modrinth.index.json") IsNot Nothing Then PackType = 4 : Exit Try 'Modrinth 整合包
|
If Archive.GetEntry("modrinth.index.json") IsNot Nothing Then PackType = 4 : Exit Try 'Modrinth 整合包
|
||||||
@@ -234,30 +234,39 @@ Retry:
|
|||||||
.ProgressWeight = New FileInfo(FileAddress).Length / 1024 / 1024 / 6, .Block = False}) '每 6M 需要 1s
|
.ProgressWeight = New FileInfo(FileAddress).Length / 1024 / 1024 / 6, .Block = False}) '每 6M 需要 1s
|
||||||
End If
|
End If
|
||||||
'获取 Mod 列表
|
'获取 Mod 列表
|
||||||
Dim ModFileList As New List(Of Integer)
|
Dim ModList As New List(Of Integer)
|
||||||
|
Dim ModOptionalList As New List(Of Integer)
|
||||||
For Each ModEntry In If(Json("files"), {})
|
For Each ModEntry In If(Json("files"), {})
|
||||||
If ModEntry("projectID") Is Nothing OrElse ModEntry("fileID") Is Nothing Then
|
If ModEntry("projectID") Is Nothing OrElse ModEntry("fileID") Is Nothing Then
|
||||||
Hint("某项 Mod 缺少必要信息,已跳过:" & ModEntry.ToString)
|
Hint("某项 Mod 缺少必要信息,已跳过:" & ModEntry.ToString)
|
||||||
Continue For
|
Continue For
|
||||||
End If
|
End If
|
||||||
If ModEntry("required") IsNot Nothing AndAlso Not ModEntry("required").ToObject(Of Boolean) Then Continue For
|
ModList.Add(ModEntry("fileID"))
|
||||||
ModFileList.Add(ModEntry("fileID"))
|
If ModEntry("required") IsNot Nothing AndAlso Not ModEntry("required").ToObject(Of Boolean) Then ModOptionalList.Add(ModEntry("fileID"))
|
||||||
Next
|
Next
|
||||||
If ModFileList.Count > 0 Then
|
If ModList.Count > 0 Then
|
||||||
'获取 Mod 下载信息
|
'获取 Mod 下载信息
|
||||||
InstallLoaders.Add(New LoaderTask(Of Integer, JArray)("获取 Mod 下载信息",
|
InstallLoaders.Add(New LoaderTask(Of Integer, JArray)("获取 Mod 下载信息",
|
||||||
Sub(Task As LoaderTask(Of Integer, JArray))
|
Sub(Task As LoaderTask(Of Integer, JArray))
|
||||||
Task.Output = GetJson(NetRequestRetry("https://api.curseforge.com/v1/mods/files", "POST", "{""fileIds"": [" & Join(ModFileList, ",") & "]}", "application/json"))("data")
|
Task.Output = GetJson(NetRequestRetry("https://api.curseforge.com/v1/mods/files", "POST", "{""fileIds"": [" & Join(ModList, ",") & "]}", "application/json"))("data")
|
||||||
'如果文件已被删除,则 API 会跳过那一项
|
'如果文件已被删除,则 API 会跳过那一项
|
||||||
If ModFileList.Count > Task.Output.Count Then Throw New Exception("整合包所需要的部分 Mod 版本已被 Mod 作者删除,因此无法完成整合包安装,请联系整合包作者更新整合包中的 Mod 版本")
|
If ModList.Count > Task.Output.Count Then Throw New Exception("整合包所需要的部分 Mod 版本已被 Mod 作者删除,因此无法完成整合包安装,请联系整合包作者更新整合包中的 Mod 版本")
|
||||||
End Sub) With {.ProgressWeight = ModFileList.Count / 10}) '每 10 Mod 需要 1s
|
End Sub) With {.ProgressWeight = ModList.Count / 10}) '每 10 Mod 需要 1s
|
||||||
'构造 NetFile
|
'构造 NetFile
|
||||||
InstallLoaders.Add(New LoaderTask(Of JArray, List(Of NetFile))("构造 Mod 下载信息",
|
InstallLoaders.Add(New LoaderTask(Of JArray, List(Of NetFile))("构造 Mod 下载信息",
|
||||||
Sub(Task As LoaderTask(Of JArray, List(Of NetFile)))
|
Sub(Task As LoaderTask(Of JArray, List(Of NetFile)))
|
||||||
Dim FileList As New Dictionary(Of Integer, NetFile)
|
Dim FileList As New Dictionary(Of Integer, NetFile)
|
||||||
For Each ModJson In Task.Input
|
For Each ModJson In Task.Input
|
||||||
|
Dim Id As Integer = ModJson("id").ToObject(Of Integer)
|
||||||
'跳过重复的 Mod(疑似 CurseForge Bug)
|
'跳过重复的 Mod(疑似 CurseForge Bug)
|
||||||
If FileList.ContainsKey(ModJson("id").ToObject(Of Integer)) Then Continue For
|
If FileList.ContainsKey(Id) Then Continue For
|
||||||
|
'可选 Mod 提示
|
||||||
|
If ModOptionalList.Contains(Id) Then
|
||||||
|
If MyMsgBox("是否要下载整合包中的可选文件 " & ModJson("displayName").ToString & "?",
|
||||||
|
"下载可选文件", "是", "否") = 2 Then
|
||||||
|
Continue For
|
||||||
|
End If
|
||||||
|
End If
|
||||||
'建立 CompFile
|
'建立 CompFile
|
||||||
Dim File As New CompFile(ModJson, CompType.Mod)
|
Dim File As New CompFile(ModJson, CompType.Mod)
|
||||||
If Not File.Available Then Continue For
|
If Not File.Available Then Continue For
|
||||||
@@ -273,14 +282,13 @@ Retry:
|
|||||||
IsResourcePack = False
|
IsResourcePack = False
|
||||||
End If
|
End If
|
||||||
'实际的添加
|
'实际的添加
|
||||||
FileList.Add(ModJson("id"),
|
FileList.Add(Id, File.ToNetFile($"{PathMcFolder}versions\{VersionName}\{If(IsResourcePack, "resourcepacks", "mods")}\"))
|
||||||
File.ToNetFile($"{PathMcFolder}versions\{VersionName}\{If(IsResourcePack, "resourcepacks", "mods")}\"))
|
Task.Progress += 1 / (1 + ModList.Count)
|
||||||
Task.Progress += 1 / (1 + ModFileList.Count)
|
|
||||||
Next
|
Next
|
||||||
Task.Output = FileList.Values.ToList
|
Task.Output = FileList.Values.ToList
|
||||||
End Sub) With {.ProgressWeight = ModFileList.Count / 200, .Show = False}) '每 200 Mod 需要 1s
|
End Sub) With {.ProgressWeight = ModList.Count / 200, .Show = False}) '每 200 Mod 需要 1s
|
||||||
'下载 Mod 文件
|
'下载 Mod 文件
|
||||||
InstallLoaders.Add(New LoaderDownload("下载 Mod", New List(Of NetFile)) With {.ProgressWeight = ModFileList.Count * 1.5}) '每个 Mod 需要 1.5s
|
InstallLoaders.Add(New LoaderDownload("下载 Mod", New List(Of NetFile)) With {.ProgressWeight = ModList.Count * 1.5}) '每个 Mod 需要 1.5s
|
||||||
End If
|
End If
|
||||||
|
|
||||||
'构造加载器
|
'构造加载器
|
||||||
@@ -618,8 +626,9 @@ Retry:
|
|||||||
If Validate.Validate(PackName) <> "" Then PackName = ""
|
If Validate.Validate(PackName) <> "" Then PackName = ""
|
||||||
Dim VersionName As String = MyMsgBoxInput("输入版本名称", "", PackName, New ObjectModel.Collection(Of Validate) From {Validate})
|
Dim VersionName As String = MyMsgBoxInput("输入版本名称", "", PackName, New ObjectModel.Collection(Of Validate) From {Validate})
|
||||||
If VersionName Is Nothing Then Exit Sub
|
If VersionName Is Nothing Then Exit Sub
|
||||||
'解压与配置文件
|
'解压、配置设置文件
|
||||||
Dim InstallTemp As String = PathTemp & "PackInstall\" & RandomInteger(0, 100000) & "\"
|
Dim InstallTemp As String = $"{PathTemp}PackInstall\{RandomInteger(0, 100000)}\"
|
||||||
|
Dim SetupFile As String = $"{PathMcFolder}versions\{VersionName}\PCL\Setup.ini"
|
||||||
Dim InstallLoaders As New List(Of LoaderBase)
|
Dim InstallLoaders As New List(Of LoaderBase)
|
||||||
InstallLoaders.Add(New LoaderTask(Of String, Integer)("解压整合包文件",
|
InstallLoaders.Add(New LoaderTask(Of String, Integer)("解压整合包文件",
|
||||||
Sub(Task As LoaderTask(Of String, Integer))
|
Sub(Task As LoaderTask(Of String, Integer))
|
||||||
@@ -633,7 +642,45 @@ Retry:
|
|||||||
End If
|
End If
|
||||||
Task.Progress = 0.9
|
Task.Progress = 0.9
|
||||||
'开启版本隔离
|
'开启版本隔离
|
||||||
WriteIni(PathMcFolder & "versions\" & VersionName & "\PCL\Setup.ini", "VersionArgumentIndie", 1)
|
WriteIni(SetupFile, "VersionArgumentIndie", 1)
|
||||||
|
'读取 MMC 设置文件(#2655)
|
||||||
|
Try
|
||||||
|
Dim MMCSetupFile As String = InstallTemp & ArchiveBaseFolder & "instance.cfg"
|
||||||
|
If File.Exists(MMCSetupFile) Then
|
||||||
|
'将其中的等号替换为冒号,以符合 ini 文件格式
|
||||||
|
WriteFile(MMCSetupFile, ReadFile(MMCSetupFile).Replace("=", ":"))
|
||||||
|
If ReadIni(MMCSetupFile, "OverrideCommands", False) Then
|
||||||
|
Dim PreLaunchCommand As String = ReadIni(MMCSetupFile, "PreLaunchCommand")
|
||||||
|
If PreLaunchCommand <> "" Then
|
||||||
|
PreLaunchCommand = PreLaunchCommand.Replace("\""", """").
|
||||||
|
Replace("$INST_JAVA", "{java}javaw.exe").
|
||||||
|
Replace("$INST_MC_DIR\", "{minecraft}").Replace("$INST_MC_DIR", "{minecraft}").
|
||||||
|
Replace("$INST_DIR\", "{verpath}").Replace("$INST_DIR", "{verpath}").
|
||||||
|
Replace("$INST_ID", "{name}").Replace("$INST_NAME", "{name}")
|
||||||
|
WriteIni(SetupFile, "VersionAdvanceRun", PreLaunchCommand)
|
||||||
|
Log("[ModPack] 迁移 MultiMC 版本独立设置:启动前执行命令:" & PreLaunchCommand)
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
If ReadIni(MMCSetupFile, "JoinServerOnLaunch", False) Then
|
||||||
|
Dim ServerAddress As String = ReadIni(MMCSetupFile, "JoinServerOnLaunchAddress").Replace("\""", """")
|
||||||
|
WriteIni(SetupFile, "VersionServerEnter", ServerAddress)
|
||||||
|
Log("[ModPack] 迁移 MultiMC 版本独立设置:自动进入服务器:" & ServerAddress)
|
||||||
|
End If
|
||||||
|
If ReadIni(MMCSetupFile, "IgnoreJavaCompatibility", False) Then
|
||||||
|
WriteIni(SetupFile, "VersionAdvanceJava", True)
|
||||||
|
Log("[ModPack] 迁移 MultiMC 版本独立设置:忽略 Java 兼容性警告")
|
||||||
|
End If
|
||||||
|
Dim Logo As String = ReadIni(MMCSetupFile, "iconKey", "")
|
||||||
|
If Logo <> "" AndAlso File.Exists($"{InstallTemp}{ArchiveBaseFolder}{Logo}.png") Then
|
||||||
|
WriteIni(SetupFile, "LogoCustom", True)
|
||||||
|
WriteIni(SetupFile, "Logo", "PCL\Logo.png")
|
||||||
|
CopyFile($"{InstallTemp}{ArchiveBaseFolder}{Logo}.png", $"{PathMcFolder}versions\{VersionName}\PCL\Logo.png")
|
||||||
|
Log($"[ModPack] 迁移 MultiMC 版本独立设置:版本图标({Logo}.png)")
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
Catch ex As Exception
|
||||||
|
Log(ex, $"读取 MMC 配置文件失败({InstallTemp}{ArchiveBaseFolder}instance.cfg)")
|
||||||
|
End Try
|
||||||
End Sub) With {.ProgressWeight = New FileInfo(FileAddress).Length / 1024 / 1024 / 6, .Block = False}) '每 6M 需要 1s
|
End Sub) With {.ProgressWeight = New FileInfo(FileAddress).Length / 1024 / 1024 / 6, .Block = False}) '每 6M 需要 1s
|
||||||
'构造版本安装请求
|
'构造版本安装请求
|
||||||
If PackJson("components") Is Nothing Then
|
If PackJson("components") Is Nothing Then
|
||||||
|
|||||||
@@ -94,6 +94,18 @@ RetryStart:
|
|||||||
Log("[Control] 按下资源工程列表项:" & LabTitle.Text)
|
Log("[Control] 按下资源工程列表项:" & LabTitle.Text)
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
Private Sub ProjectClick(sender As MyCompItem, e As EventArgs) Handles Me.Click
|
||||||
|
'记录当前展开的卡片标题(#2712)
|
||||||
|
Dim Titles As New List(Of String)
|
||||||
|
If FrmMain.PageCurrent.Page = FormMain.PageType.CompDetail Then
|
||||||
|
For Each Card As MyCard In FrmDownloadCompDetail.PanMain.Children
|
||||||
|
If Card.Title <> "" AndAlso Not Card.IsSwaped Then Titles.Add(Card.Title)
|
||||||
|
Next
|
||||||
|
Log("[Comp] 记录当前已展开的卡片:" & String.Join("、", Titles))
|
||||||
|
FrmMain.PageCurrent.Additional(1) = Titles
|
||||||
|
End If
|
||||||
|
FrmMain.PageChange(New FormMain.PageStackData With {.Page = FormMain.PageType.CompDetail, .Additional = {sender.Tag, New List(Of String)}})
|
||||||
|
End Sub
|
||||||
|
|
||||||
'鼠标点击判定
|
'鼠标点击判定
|
||||||
Private IsMouseDown As Boolean = False
|
Private IsMouseDown As Boolean = False
|
||||||
|
|||||||
@@ -51,6 +51,6 @@ Imports System.Runtime.InteropServices
|
|||||||
' 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
|
' 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
|
||||||
' 方法是按如下所示使用“*”
|
' 方法是按如下所示使用“*”
|
||||||
|
|
||||||
<Assembly: AssemblyVersion("2.6.8.0")>
|
<Assembly: AssemblyVersion("2.6.9.0")>
|
||||||
<Assembly: AssemblyFileVersion("2.6.8.0")>
|
<Assembly: AssemblyFileVersion("2.6.9.0")>
|
||||||
<Assembly: NeutralResourcesLanguage("")>
|
<Assembly: NeutralResourcesLanguage("")>
|
||||||
|
|||||||
@@ -1988,9 +1988,9 @@ Retry:
|
|||||||
If Directory.Exists(TempMcFolder) Then DeleteDirectory(TempMcFolder)
|
If Directory.Exists(TempMcFolder) Then DeleteDirectory(TempMcFolder)
|
||||||
Dim OptiFineFolder As String = Nothing
|
Dim OptiFineFolder As String = Nothing
|
||||||
If Request.OptiFineVersion IsNot Nothing Then
|
If Request.OptiFineVersion IsNot Nothing Then
|
||||||
If Request.OptiFineVersion.Contains("_HD_U") Then Request.OptiFineVersion = "HD_U_" & Request.OptiFineVersion.Split("_HD_U").Last '#735
|
If Request.OptiFineVersion.Contains("_HD_U_") Then Request.OptiFineVersion = "HD_U_" & Request.OptiFineVersion.Split("_HD_U_").Last '#735
|
||||||
Request.OptiFineEntry = New DlOptiFineListEntry With {
|
Request.OptiFineEntry = New DlOptiFineListEntry With {
|
||||||
.NameDisplay = Request.MinecraftName & " " & Request.OptiFineVersion.Replace("HD_U_", "").Replace("_", ""),
|
.NameDisplay = Request.MinecraftName & " " & Request.OptiFineVersion.Replace("HD_U_", "").Replace("_", "").Replace("pre", " pre"),
|
||||||
.Inherit = Request.MinecraftName,
|
.Inherit = Request.MinecraftName,
|
||||||
.IsPreview = Request.OptiFineVersion.ToLower.Contains("pre"),
|
.IsPreview = Request.OptiFineVersion.ToLower.Contains("pre"),
|
||||||
.NameVersion = Request.MinecraftName & "-OptiFine_" & Request.OptiFineVersion,
|
.NameVersion = Request.MinecraftName & "-OptiFine_" & Request.OptiFineVersion,
|
||||||
@@ -2214,7 +2214,7 @@ Retry:
|
|||||||
OutputJson.Merge(FabricJson)
|
OutputJson.Merge(FabricJson)
|
||||||
End If
|
End If
|
||||||
'修改
|
'修改
|
||||||
If RealArguments IsNot Nothing Then OutputJson("minecraftArguments") = RealArguments
|
If RealArguments IsNot Nothing AndAlso RealArguments.Replace(" ", "") <> "" Then OutputJson("minecraftArguments") = RealArguments
|
||||||
OutputJson.Remove("_comment_")
|
OutputJson.Remove("_comment_")
|
||||||
OutputJson.Remove("inheritsFrom")
|
OutputJson.Remove("inheritsFrom")
|
||||||
OutputJson.Remove("jar")
|
OutputJson.Remove("jar")
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
'初始化加载器信息
|
'初始化加载器信息
|
||||||
Private Sub PageDownloadCompDetail_Inited(sender As Object, e As EventArgs) Handles Me.Initialized
|
Private Sub PageDownloadCompDetail_Inited(sender As Object, e As EventArgs) Handles Me.Initialized
|
||||||
Project = FrmMain.PageCurrent.Additional
|
Project = FrmMain.PageCurrent.Additional(0)
|
||||||
PageLoaderInit(Load, PanLoad, PanMain, CardIntro, CompFileLoader, AddressOf Load_OnFinish)
|
PageLoaderInit(Load, PanLoad, PanMain, CardIntro, CompFileLoader, AddressOf Load_OnFinish)
|
||||||
End Sub
|
End Sub
|
||||||
'自动重试
|
'自动重试
|
||||||
@@ -40,7 +40,7 @@
|
|||||||
End Class
|
End Class
|
||||||
Private Sub Load_OnFinish()
|
Private Sub Load_OnFinish()
|
||||||
'获取目标版本与 Mod 加载器
|
'获取目标版本与 Mod 加载器
|
||||||
Dim TargetVersion As String = ""
|
Dim TargetVersion As String
|
||||||
Select Case Project.Type
|
Select Case Project.Type
|
||||||
Case CompType.Mod
|
Case CompType.Mod
|
||||||
TargetVersion = If(PageDownloadMod.Loader.Input.GameVersion, "")
|
TargetVersion = If(PageDownloadMod.Loader.Input.GameVersion, "")
|
||||||
@@ -102,7 +102,7 @@
|
|||||||
NewCard.SwapControl = NewStack
|
NewCard.SwapControl = NewStack
|
||||||
PanMain.Children.Add(NewCard)
|
PanMain.Children.Add(NewCard)
|
||||||
'确定卡片是否展开
|
'确定卡片是否展开
|
||||||
If Pair.Key = TargetCardName Then
|
If Pair.Key = TargetCardName OrElse CType(FrmMain.PageCurrent.Additional(1), List(Of String)).Contains(NewCard.Title) Then
|
||||||
MyCard.StackInstall(NewStack, If(Project.Type = CompType.ModPack, 9, 8), Pair.Key) 'FUTURE: Res
|
MyCard.StackInstall(NewStack, If(Project.Type = CompType.ModPack, 9, 8), Pair.Key) 'FUTURE: Res
|
||||||
Else
|
Else
|
||||||
NewCard.IsSwaped = True
|
NewCard.IsSwaped = True
|
||||||
@@ -128,7 +128,7 @@
|
|||||||
Private IsFirstInit As Boolean = True
|
Private IsFirstInit As Boolean = True
|
||||||
Public Sub Init() Handles Me.PageEnter
|
Public Sub Init() Handles Me.PageEnter
|
||||||
AniControlEnabled += 1
|
AniControlEnabled += 1
|
||||||
Project = FrmMain.PageCurrent.Additional
|
Project = FrmMain.PageCurrent.Additional(0)
|
||||||
PanBack.ScrollToHome()
|
PanBack.ScrollToHome()
|
||||||
|
|
||||||
'重启加载器
|
'重启加载器
|
||||||
@@ -142,6 +142,8 @@
|
|||||||
'放置当前工程
|
'放置当前工程
|
||||||
If CompItem IsNot Nothing Then PanIntro.Children.Remove(CompItem)
|
If CompItem IsNot Nothing Then PanIntro.Children.Remove(CompItem)
|
||||||
CompItem = Project.ToCompItem(True, True)
|
CompItem = Project.ToCompItem(True, True)
|
||||||
|
CompItem.IsHitTestVisible = False
|
||||||
|
CompItem.HasAnimation = False
|
||||||
CompItem.Margin = New Thickness(-7, -7, 0, 8)
|
CompItem.Margin = New Thickness(-7, -7, 0, 8)
|
||||||
PanIntro.Children.Insert(0, CompItem)
|
PanIntro.Children.Insert(0, CompItem)
|
||||||
|
|
||||||
|
|||||||
@@ -33,6 +33,7 @@
|
|||||||
<TextBlock VerticalAlignment="Center" Grid.Row="2" HorizontalAlignment="Left" Text="版本" Margin="0,0,18,0" />
|
<TextBlock VerticalAlignment="Center" Grid.Row="2" HorizontalAlignment="Left" Text="版本" Margin="0,0,18,0" />
|
||||||
<local:MyComboBox x:Name="TextSearchVersion" Grid.Row="2" Grid.Column="1" Grid.ColumnSpan="2" IsEditable="True" MaxDropDownHeight="320">
|
<local:MyComboBox x:Name="TextSearchVersion" Grid.Row="2" Grid.Column="1" Grid.ColumnSpan="2" IsEditable="True" MaxDropDownHeight="320">
|
||||||
<local:MyComboBoxItem Content="全部 (也可自行输入)" IsSelected="True" />
|
<local:MyComboBoxItem Content="全部 (也可自行输入)" IsSelected="True" />
|
||||||
|
<local:MyComboBoxItem Content="1.20.2" />
|
||||||
<local:MyComboBoxItem Content="1.20.1" />
|
<local:MyComboBoxItem Content="1.20.1" />
|
||||||
<local:MyComboBoxItem Content="1.20" />
|
<local:MyComboBoxItem Content="1.20" />
|
||||||
<local:MyComboBoxItem Content="1.19.4" />
|
<local:MyComboBoxItem Content="1.19.4" />
|
||||||
|
|||||||
@@ -32,9 +32,7 @@
|
|||||||
'列表项
|
'列表项
|
||||||
PanProjects.Children.Clear()
|
PanProjects.Children.Clear()
|
||||||
For i = Math.Min(Page * PageSize, Storage.Results.Count - 1) To Math.Min((Page + 1) * PageSize - 1, Storage.Results.Count - 1)
|
For i = Math.Min(Page * PageSize, Storage.Results.Count - 1) To Math.Min((Page + 1) * PageSize - 1, Storage.Results.Count - 1)
|
||||||
PanProjects.Children.Add(
|
PanProjects.Children.Add(Storage.Results(i).ToCompItem(Loader.Input.GameVersion Is Nothing, Loader.Input.ModLoader = CompModLoaderType.Any))
|
||||||
Storage.Results(i).ToCompItem(Loader.Input.GameVersion Is Nothing,
|
|
||||||
Loader.Input.ModLoader = CompModLoaderType.Any, AddressOf ProjectClick))
|
|
||||||
Next
|
Next
|
||||||
'页码
|
'页码
|
||||||
CardPages.Visibility = If(Storage.Results.Count > 40 OrElse
|
CardPages.Visibility = If(Storage.Results.Count > 40 OrElse
|
||||||
@@ -68,12 +66,6 @@
|
|||||||
End Select
|
End Select
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
'进入详情页面
|
|
||||||
|
|
||||||
Public Sub ProjectClick(sender As MyCompItem, e As EventArgs)
|
|
||||||
FrmMain.PageChange(New FormMain.PageStackData With {.Page = FormMain.PageType.CompDetail, .Additional = sender.Tag})
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
'切换页码
|
'切换页码
|
||||||
|
|
||||||
Private Sub BtnPageFirst_Click(sender As Object, e As RoutedEventArgs) Handles BtnPageFirst.Click
|
Private Sub BtnPageFirst_Click(sender As Object, e As RoutedEventArgs) Handles BtnPageFirst.Click
|
||||||
|
|||||||
@@ -32,6 +32,7 @@
|
|||||||
<TextBlock VerticalAlignment="Center" Grid.Row="2" HorizontalAlignment="Left" Text="版本" Margin="0,0,18,0" />
|
<TextBlock VerticalAlignment="Center" Grid.Row="2" HorizontalAlignment="Left" Text="版本" Margin="0,0,18,0" />
|
||||||
<local:MyComboBox x:Name="TextSearchVersion" Grid.Row="2" Grid.Column="1" IsEditable="True" MaxDropDownHeight="320">
|
<local:MyComboBox x:Name="TextSearchVersion" Grid.Row="2" Grid.Column="1" IsEditable="True" MaxDropDownHeight="320">
|
||||||
<local:MyComboBoxItem Content="全部 (也可自行输入)" IsSelected="True" />
|
<local:MyComboBoxItem Content="全部 (也可自行输入)" IsSelected="True" />
|
||||||
|
<local:MyComboBoxItem Content="1.20.2" />
|
||||||
<local:MyComboBoxItem Content="1.20.1" />
|
<local:MyComboBoxItem Content="1.20.1" />
|
||||||
<local:MyComboBoxItem Content="1.20" />
|
<local:MyComboBoxItem Content="1.20" />
|
||||||
<local:MyComboBoxItem Content="1.19.4" />
|
<local:MyComboBoxItem Content="1.19.4" />
|
||||||
|
|||||||
@@ -31,8 +31,7 @@
|
|||||||
'列表项
|
'列表项
|
||||||
PanProjects.Children.Clear()
|
PanProjects.Children.Clear()
|
||||||
For i = Math.Min(Page * PageSize, Storage.Results.Count - 1) To Math.Min((Page + 1) * PageSize - 1, Storage.Results.Count - 1)
|
For i = Math.Min(Page * PageSize, Storage.Results.Count - 1) To Math.Min((Page + 1) * PageSize - 1, Storage.Results.Count - 1)
|
||||||
PanProjects.Children.Add(
|
PanProjects.Children.Add(Storage.Results(i).ToCompItem(Loader.Input.GameVersion Is Nothing, True))
|
||||||
Storage.Results(i).ToCompItem(Loader.Input.GameVersion Is Nothing, True, AddressOf ProjectClick))
|
|
||||||
Next
|
Next
|
||||||
'页码
|
'页码
|
||||||
CardPages.Visibility = If(Storage.Results.Count > 40 OrElse
|
CardPages.Visibility = If(Storage.Results.Count > 40 OrElse
|
||||||
@@ -66,12 +65,6 @@
|
|||||||
End Select
|
End Select
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
'进入详情页面
|
|
||||||
|
|
||||||
Public Sub ProjectClick(sender As MyCompItem, e As EventArgs)
|
|
||||||
FrmMain.PageChange(New FormMain.PageStackData With {.Page = FormMain.PageType.CompDetail, .Additional = sender.Tag})
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
'切换页码
|
'切换页码
|
||||||
|
|
||||||
Private Sub BtnPageFirst_Click(sender As Object, e As RoutedEventArgs) Handles BtnPageFirst.Click
|
Private Sub BtnPageFirst_Click(sender As Object, e As RoutedEventArgs) Handles BtnPageFirst.Click
|
||||||
|
|||||||
@@ -79,7 +79,45 @@
|
|||||||
''' 切换至启动中页面。
|
''' 切换至启动中页面。
|
||||||
''' </summary>
|
''' </summary>
|
||||||
Public Sub PageChangeToLaunching()
|
Public Sub PageChangeToLaunching()
|
||||||
LaunchingPreload()
|
'修改登陆方式
|
||||||
|
Select Case Setup.Get("LoginType")
|
||||||
|
Case McLoginType.Legacy
|
||||||
|
If PageLinkHiper.HiperState = LoadState.Finished Then
|
||||||
|
LabLaunchingMethod.Text = "联机离线登录"
|
||||||
|
Else
|
||||||
|
LabLaunchingMethod.Text = "离线登录"
|
||||||
|
End If
|
||||||
|
Case McLoginType.Ms
|
||||||
|
LabLaunchingMethod.Text = "正版登录"
|
||||||
|
Case McLoginType.Nide
|
||||||
|
LabLaunchingMethod.Text = "统一通行证"
|
||||||
|
Case McLoginType.Auth
|
||||||
|
LabLaunchingMethod.Text = "Authlib-Injector"
|
||||||
|
End Select
|
||||||
|
'初始化页面
|
||||||
|
LabLaunchingName.Text = McVersionCurrent.Name
|
||||||
|
LabLaunchingStage.Text = "初始化"
|
||||||
|
LabLaunchingTitle.Text = If(McLaunchLoader.Input Is Nothing OrElse McLaunchLoader.Input.SaveBatch Is Nothing, "正在启动游戏", "正在导出启动脚本")
|
||||||
|
LabLaunchingProgress.Text = "0.00 %"
|
||||||
|
LabLaunchingProgress.Opacity = 1
|
||||||
|
LabLaunchingDownload.Visibility = Visibility.Visible
|
||||||
|
LabLaunchingProgressLeft.Opacity = 0.6
|
||||||
|
LabLaunchingDownload.Visibility = Visibility.Visible
|
||||||
|
LabLaunchingDownload.Text = "0 B/s"
|
||||||
|
LabLaunchingDownload.Opacity = 0
|
||||||
|
LabLaunchingDownload.Visibility = Visibility.Collapsed
|
||||||
|
LabLaunchingDownloadLeft.Opacity = 0
|
||||||
|
LabLaunchingDownloadLeft.Visibility = Visibility.Collapsed
|
||||||
|
ProgressLaunchingFinished.Width = New GridLength(0, GridUnitType.Star)
|
||||||
|
ProgressLaunchingUnfinished.Width = New GridLength(1, GridUnitType.Star)
|
||||||
|
PanLaunchingHint.Opacity = 0
|
||||||
|
PanLaunchingHint.Visibility = Visibility.Collapsed
|
||||||
|
PanLaunchingInfo.Width = Double.NaN '重置宽度改变动画
|
||||||
|
McLaunchProcess = Nothing
|
||||||
|
McLaunchWatcher = Nothing
|
||||||
|
'获取 “你知道吗” 提示
|
||||||
|
LabLaunchingHint.Text = PageOtherTest.GetRandomHint()
|
||||||
|
'初始化其他页面
|
||||||
PanInput.IsHitTestVisible = False
|
PanInput.IsHitTestVisible = False
|
||||||
PanLaunching.IsHitTestVisible = False
|
PanLaunching.IsHitTestVisible = False
|
||||||
LoadLaunching.State.LoadingState = MyLoading.MyLoadingState.Run
|
LoadLaunching.State.LoadingState = MyLoading.MyLoadingState.Run
|
||||||
@@ -634,48 +672,6 @@ ExitRefresh:
|
|||||||
PageVersionLeft.Version = McVersionCurrent
|
PageVersionLeft.Version = McVersionCurrent
|
||||||
FrmMain.PageChange(FormMain.PageType.VersionSetup, 0)
|
FrmMain.PageChange(FormMain.PageType.VersionSetup, 0)
|
||||||
End Sub
|
End Sub
|
||||||
'刷新 UI
|
|
||||||
Public Sub LaunchingPreload()
|
|
||||||
'修改登陆方式
|
|
||||||
Select Case Setup.Get("LoginType")
|
|
||||||
Case McLoginType.Legacy
|
|
||||||
If PageLinkHiper.HiperState = LoadState.Finished Then
|
|
||||||
LabLaunchingMethod.Text = "联机离线登录"
|
|
||||||
Else
|
|
||||||
LabLaunchingMethod.Text = "离线登录"
|
|
||||||
End If
|
|
||||||
Case McLoginType.Ms
|
|
||||||
LabLaunchingMethod.Text = "正版登录"
|
|
||||||
Case McLoginType.Nide
|
|
||||||
LabLaunchingMethod.Text = "统一通行证"
|
|
||||||
Case McLoginType.Auth
|
|
||||||
LabLaunchingMethod.Text = "Authlib-Injector"
|
|
||||||
End Select
|
|
||||||
'初始化页面
|
|
||||||
LabLaunchingName.Text = McVersionCurrent.Name
|
|
||||||
LabLaunchingStage.Text = "初始化"
|
|
||||||
LabLaunchingTitle.Text = If(McLaunchLoader.Input Is Nothing OrElse McLaunchLoader.Input.SaveBatch Is Nothing, "正在启动游戏", "正在导出启动脚本")
|
|
||||||
LabLaunchingProgress.Text = "0.00 %"
|
|
||||||
LabLaunchingProgress.Opacity = 1
|
|
||||||
LabLaunchingDownload.Visibility = Visibility.Visible
|
|
||||||
LabLaunchingProgressLeft.Opacity = 0.6
|
|
||||||
LabLaunchingDownload.Visibility = Visibility.Visible
|
|
||||||
LabLaunchingDownload.Text = "0 B/s"
|
|
||||||
LabLaunchingDownload.Opacity = 0
|
|
||||||
LabLaunchingDownload.Visibility = Visibility.Collapsed
|
|
||||||
LabLaunchingDownloadLeft.Opacity = 0
|
|
||||||
LabLaunchingDownloadLeft.Visibility = Visibility.Collapsed
|
|
||||||
ProgressLaunchingFinished.Width = New GridLength(0, GridUnitType.Star)
|
|
||||||
ProgressLaunchingUnfinished.Width = New GridLength(1, GridUnitType.Star)
|
|
||||||
PanLaunchingHint.Opacity = 0
|
|
||||||
PanLaunchingHint.Visibility = Visibility.Collapsed
|
|
||||||
PanLaunchingInfo.Width = Double.NaN '重置宽度改变动画
|
|
||||||
McLaunchProcess = Nothing
|
|
||||||
McLaunchWatcher = Nothing
|
|
||||||
'获取 “你知道吗” 提示
|
|
||||||
LabLaunchingHint.Text = PageOtherTest.GetRandomHint()
|
|
||||||
End Sub
|
|
||||||
Private ShowProgress As Double = 0
|
|
||||||
''' <summary>
|
''' <summary>
|
||||||
''' 每 0.2s 执行一次,刷新启动的数据 UI 显示。
|
''' 每 0.2s 执行一次,刷新启动的数据 UI 显示。
|
||||||
''' </summary>
|
''' </summary>
|
||||||
@@ -759,6 +755,7 @@ ExitRefresh:
|
|||||||
Log(ex, "刷新启动信息失败", LogLevel.Feedback)
|
Log(ex, "刷新启动信息失败", LogLevel.Feedback)
|
||||||
End Try
|
End Try
|
||||||
End Sub
|
End Sub
|
||||||
|
Private ShowProgress As Double = 0
|
||||||
'尺寸改变动画
|
'尺寸改变动画
|
||||||
Private IsWidthAnimating As Boolean = False
|
Private IsWidthAnimating As Boolean = False
|
||||||
Private ActualUsedWidth As Double
|
Private ActualUsedWidth As Double
|
||||||
|
|||||||
@@ -84,9 +84,13 @@ Download:
|
|||||||
EventType=""刷新主页"" EventData=""/""
|
EventType=""刷新主页"" EventData=""/""
|
||||||
Logo=""M875.52 148.48C783.36 56.32 655.36 0 512 0 291.84 0 107.52 138.24 30.72 332.8l122.88 46.08C204.8 230.4 348.16 128 512 128c107.52 0 199.68 40.96 271.36 112.64L640 384h384V0L875.52 148.48zM512 896c-107.52 0-199.68-40.96-271.36-112.64L384 640H0v384l148.48-148.48C240.64 967.68 368.64 1024 512 1024c220.16 0 404.48-138.24 481.28-332.8L870.4 645.12C819.2 793.6 675.84 896 512 896z"" />
|
Logo=""M875.52 148.48C783.36 56.32 655.36 0 512 0 291.84 0 107.52 138.24 30.72 332.8l122.88 46.08C204.8 230.4 348.16 128 512 128c107.52 0 199.68 40.96 271.36 112.64L640 384h384V0L875.52 148.48zM512 896c-107.52 0-199.68-40.96-271.36-112.64L384 640H0v384l148.48-148.48C240.64 967.68 368.64 1024 512 1024c220.16 0 404.48-138.24 481.28-332.8L870.4 645.12C819.2 793.6 675.84 896 512 896z"" />
|
||||||
</local:MyCard>"
|
</local:MyCard>"
|
||||||
Case 2 '新闻主页
|
Case 2 '新闻
|
||||||
Log("[Page] 主页预设:Minecraft 新闻")
|
Log("[Page] 主页预设:Minecraft 新闻")
|
||||||
Url = "http://pcl2.mc-news.top"
|
Url = "http://pcl.mcnews.thestack.top"
|
||||||
|
GoTo Download
|
||||||
|
Case 3 '简单主页
|
||||||
|
Log("[Page] 主页预设:简单主页")
|
||||||
|
Url = "https://cdn.wearclub.online/PCL/Custom.xaml"
|
||||||
GoTo Download
|
GoTo Download
|
||||||
End Select
|
End Select
|
||||||
End Select
|
End Select
|
||||||
|
|||||||
@@ -103,9 +103,8 @@
|
|||||||
End Sub
|
End Sub
|
||||||
'账号迁移入口
|
'账号迁移入口
|
||||||
Private Sub BtnMigration_Click(sender As Object, e As EventArgs) Handles BtnMigration.Click
|
Private Sub BtnMigration_Click(sender As Object, e As EventArgs) Handles BtnMigration.Click
|
||||||
MyMsgBox("目前,你可以继续迁移你的账户,但其所属Minecraft游戏信息均已清空。" & vbCrLf & "在迁移过程中,你可能需要设置你的档案信息,此时请注意让年龄大于 18 岁,否则可能导致无法登录!",
|
MyMsgBox($"请在接下来要打开的页面登录你的 Mojang 账号。{vbCrLf}在迁移时,你可能需要设置档案信息,请注意让年龄大于 18 岁,否则可能会导致无法登录!", "迁移提示", "继续", ForceWait:=True)
|
||||||
"迁移提示", "继续", ForceWait:=True)
|
OpenWebsite("https://www.minecraft.net/zh-hans/login")
|
||||||
OpenWebsite("https://www.minecraft.net/zh-hans/account-security")
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
End Class
|
End Class
|
||||||
|
|||||||
@@ -240,9 +240,9 @@
|
|||||||
Text="等待命令执行完成后再继续启动" Margin="0,8,0,7" />
|
Text="等待命令执行完成后再继续启动" Margin="0,8,0,7" />
|
||||||
<StackPanel Margin="0,12,0,4" Orientation="Horizontal" Grid.Row="6" Grid.ColumnSpan="2">
|
<StackPanel Margin="0,12,0,4" Orientation="Horizontal" Grid.Row="6" Grid.ColumnSpan="2">
|
||||||
<local:MyCheckBox Text="忽略 Java 兼容性警告" x:Name="CheckAdvanceJava" Tag="LaunchAdvanceJava" Margin="0,0,60,0"
|
<local:MyCheckBox Text="忽略 Java 兼容性警告" x:Name="CheckAdvanceJava" Tag="LaunchAdvanceJava" Margin="0,0,60,0"
|
||||||
ToolTip="如果在设置中手动选择了与当前版本不兼容的 Java,则自动跳过兼容性警告弹窗,强制使用手动选择的 Java。" />
|
ToolTip="警告:强烈推荐在版本设置中关闭特定版本的警告,而不是在这里关闭所有版本的警告!
如果在设置中手动选择了与当前版本不兼容的 Java,则自动跳过兼容性警告弹窗,强制使用手动选择的 Java。" />
|
||||||
<local:MyCheckBox Text="关闭文件校验" x:Name="CheckAdvanceAssets" Tag="LaunchAdvanceAssets"
|
<local:MyCheckBox Text="关闭文件校验" x:Name="CheckAdvanceAssets" Tag="LaunchAdvanceAssets"
|
||||||
ToolTip="完全不更改 assets;不校验 libraries、第三方登录库与版本主 jar 文件是否被修改。
如果你没有修改相关文件,请勿勾选此项。
强烈推荐在版本设置中关闭特定版本的校验,而不是在这里关闭所有版本的校验。" />
|
ToolTip="警告:强烈推荐在版本设置中关闭特定版本的校验,而不是在这里关闭所有版本的校验!
完全不更改 assets;不校验 libraries、第三方登录库与版本主 jar 文件是否被修改。
如果你没有修改相关文件,请勿勾选此项。" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Grid>
|
</Grid>
|
||||||
</local:MyCard>
|
</local:MyCard>
|
||||||
|
|||||||
@@ -75,11 +75,6 @@
|
|||||||
Dim NewCard As New MyCard With {.Title = McModGetTitle(List), .Margin = New Thickness(0, 0, 0, 15)}
|
Dim NewCard As New MyCard With {.Title = McModGetTitle(List), .Margin = New Thickness(0, 0, 0, 15)}
|
||||||
NewCard.Children.Add(PanItems)
|
NewCard.Children.Add(PanItems)
|
||||||
PanList.Children.Add(NewCard)
|
PanList.Children.Add(NewCard)
|
||||||
'显示提示
|
|
||||||
If List.Count > 0 AndAlso Not Setup.Get("HintModDisable") Then
|
|
||||||
Setup.Set("HintModDisable", True)
|
|
||||||
Hint("直接点击某个 Mod 项即可将它禁用!")
|
|
||||||
End If
|
|
||||||
|
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
Log(ex, "加载 Mod 列表 UI 失败", LogLevel.Feedback)
|
Log(ex, "加载 Mod 列表 UI 失败", LogLevel.Feedback)
|
||||||
|
|||||||
@@ -188,29 +188,26 @@
|
|||||||
<RowDefinition Height="9" />
|
<RowDefinition Height="9" />
|
||||||
<RowDefinition Height="28" />
|
<RowDefinition Height="28" />
|
||||||
<RowDefinition Height="9" />
|
<RowDefinition Height="9" />
|
||||||
<RowDefinition Height="28" />
|
|
||||||
<RowDefinition Height="9" />
|
|
||||||
<RowDefinition Height="31" />
|
<RowDefinition Height="31" />
|
||||||
<RowDefinition Height="Auto" />
|
<RowDefinition Height="Auto" />
|
||||||
|
<RowDefinition Height="Auto" />
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
<TextBlock Grid.Row="0" VerticalAlignment="Center" HorizontalAlignment="Left" Text="JVM 参数头" Margin="0,0,25,0" />
|
<TextBlock Grid.Row="0" VerticalAlignment="Center" HorizontalAlignment="Left" Text="JVM 参数头" Margin="0,0,25,0" />
|
||||||
<local:MyTextBox x:Name="TextAdvanceJvm" Grid.Row="0" Grid.ColumnSpan="2" Tag="VersionAdvanceJvm" Grid.Column="1" ToolTip="启动 Minecraft 时使用的额外 JVM 参数,在没有确定把握的情况下请不要尝试修改。
若留空,则使用全局设置的值。" HintText="使用全局设置"
|
<local:MyTextBox x:Name="TextAdvanceJvm" Grid.Row="0" Grid.ColumnSpan="2" Tag="VersionAdvanceJvm" Grid.Column="1" ToolTip="启动 Minecraft 时使用的额外 JVM 参数,在没有确定把握的情况下请不要尝试修改。
若留空,则使用全局设置的值。" HintText="使用全局设置"
|
||||||
Height="57" AcceptsReturn="True" TextWrapping="Wrap" VerticalContentAlignment="Top" Padding="0,5" />
|
Height="57" AcceptsReturn="True" TextWrapping="Wrap" VerticalContentAlignment="Top" Padding="0,5" />
|
||||||
<TextBlock Grid.Row="2" VerticalAlignment="Center" HorizontalAlignment="Left" Text="JVM 参数尾" Margin="0,0,25,0" />
|
<TextBlock Grid.Row="2" VerticalAlignment="Center" HorizontalAlignment="Left" Text="JVM 参数尾" Margin="0,0,25,0" />
|
||||||
<local:MyTextBox x:Name="TextAdvanceGame" Grid.Row="2" Grid.ColumnSpan="2" Tag="VersionAdvanceGame" Grid.Column="1" ToolTip="文本框中的内容将会被直接拼合在启动参数的末尾。
例如输入 --demo 则会以试玩模式启动游戏。
若留空,则使用全局设置的值。" HintText="使用全局设置" />
|
<local:MyTextBox x:Name="TextAdvanceGame" Grid.Row="2" Grid.ColumnSpan="2" Tag="VersionAdvanceGame" Grid.Column="1" ToolTip="文本框中的内容将会被直接拼合在启动参数的末尾。
例如输入 --demo 则会以试玩模式启动游戏。
若留空,则使用全局设置的值。" HintText="使用全局设置" />
|
||||||
<TextBlock Grid.Row="4" VerticalAlignment="Center" HorizontalAlignment="Left" Text="文件校验" Margin="0,0,25,0" />
|
<TextBlock Grid.Row="4" VerticalAlignment="Center" HorizontalAlignment="Left" Text="启动前执行命令" Margin="0,0,25,3" />
|
||||||
<local:MyComboBox x:Name="ComboAdvanceAssets" Grid.Row="4" Grid.ColumnSpan="2" Tag="VersionAdvanceAssets" Grid.Column="1">
|
<local:MyTextBox x:Name="TextAdvanceRun" Grid.Row="4" Grid.ColumnSpan="2" Tag="VersionAdvanceRun" Grid.Column="1" HintText="" Margin="0,0,0,3"
|
||||||
<local:MyComboBoxItem Content="使用全局设置" IsSelected="True" />
|
|
||||||
<local:MyComboBoxItem Content="开启"
|
|
||||||
ToolTip="在启动 Minecraft 时,简单校验并下载缺失或错误的文件" ToolTipService.HorizontalOffset="100" />
|
|
||||||
<local:MyComboBoxItem Content="关闭"
|
|
||||||
ToolTip="完全不更改 assets;不校验 libraries、第三方登录库与版本主 jar 文件是否被修改。
如果你没有修改相关文件,请勿勾选此项。" ToolTipService.HorizontalOffset="100" />
|
|
||||||
</local:MyComboBox>
|
|
||||||
<TextBlock Grid.Row="6" VerticalAlignment="Center" HorizontalAlignment="Left" Text="启动前执行命令" Margin="0,0,25,3" />
|
|
||||||
<local:MyTextBox x:Name="TextAdvanceRun" Grid.Row="6" Grid.ColumnSpan="2" Tag="VersionAdvanceRun" Grid.Column="1" HintText="" Margin="0,0,0,3"
|
|
||||||
ToolTip="该项不会覆盖全局设置:启动时会先执行全局设置的命令,再执行版本设置的命令。

在 MC 启动前执行特定命令或程序,语法与 Windows 的命令提示符一致。

可以使用以下替换标记实现相对路径(路径均以 \ 结尾):
 · {path}:PCL 的 exe 文件所在的文件夹
 · {minecraft}:.minecraft 文件夹
 · {verpath}:版本文件夹(.minecraft\versions\版本名\)
 · {verindie}:开启版本隔离时等同版本文件夹,未开启时等同 .minecraft 文件夹
 · {java}:游戏运行时的 Java 文件夹

除此之外,也支持以下替换标记:
 · {user}:玩家名字
 · {login}:玩家的登录方式
 · {uuid}:玩家的 UUID
 · {name}:游戏版本名
 · {time}:当前的系统时间
 · {version}:游戏对应的原版版本号

例如:
 · "{verpath}test.exe" :运行版本文件夹下的 test.exe 程序
 · "{java}java.exe" -jar "{verpath}test.jar" :用 Java 运行版本文件夹下的 test.jar
 · notepad "{verindie}option.txt" :使用记事本打开该版本的设置文件

涉及路径的操作最好都打上双引号,以避免路径中的空格导致运行失败。" />
|
ToolTip="该项不会覆盖全局设置:启动时会先执行全局设置的命令,再执行版本设置的命令。

在 MC 启动前执行特定命令或程序,语法与 Windows 的命令提示符一致。

可以使用以下替换标记实现相对路径(路径均以 \ 结尾):
 · {path}:PCL 的 exe 文件所在的文件夹
 · {minecraft}:.minecraft 文件夹
 · {verpath}:版本文件夹(.minecraft\versions\版本名\)
 · {verindie}:开启版本隔离时等同版本文件夹,未开启时等同 .minecraft 文件夹
 · {java}:游戏运行时的 Java 文件夹

除此之外,也支持以下替换标记:
 · {user}:玩家名字
 · {login}:玩家的登录方式
 · {uuid}:玩家的 UUID
 · {name}:游戏版本名
 · {time}:当前的系统时间
 · {version}:游戏对应的原版版本号

例如:
 · "{verpath}test.exe" :运行版本文件夹下的 test.exe 程序
 · "{java}java.exe" -jar "{verpath}test.jar" :用 Java 运行版本文件夹下的 test.jar
 · notepad "{verindie}option.txt" :使用记事本打开该版本的设置文件

涉及路径的操作最好都打上双引号,以避免路径中的空格导致运行失败。" />
|
||||||
<local:MyCheckBox Grid.Row="7" Grid.Column="1" x:Name="CheckAdvanceRunWait" Tag="VersionAdvanceRunWait" Visibility="Collapsed"
|
<local:MyCheckBox Grid.Row="5" Grid.Column="1" x:Name="CheckAdvanceRunWait" Tag="VersionAdvanceRunWait" Visibility="Collapsed"
|
||||||
Text="等待命令执行完成后再继续启动" Margin="0,5,0,0" />
|
Text="等待命令执行完成后再继续启动" Margin="0,5,0,0" />
|
||||||
|
<StackPanel Margin="0,10,0,0" Orientation="Horizontal" Grid.Row="6" Grid.ColumnSpan="2">
|
||||||
|
<local:MyCheckBox Text="忽略 Java 兼容性警告" x:Name="CheckAdvanceJava" Tag="VersionAdvanceJava" Margin="0,0,60,0"
|
||||||
|
ToolTip="如果在设置中手动选择了与当前版本不兼容的 Java,则自动跳过兼容性警告弹窗,强制使用手动选择的 Java。" />
|
||||||
|
<local:MyCheckBox Text="关闭文件校验" x:Name="CheckAdvanceAssetsV2" Tag="VersionAdvanceAssetsV2"
|
||||||
|
ToolTip="完全不更改 assets;不校验 libraries、第三方登录库与版本主 jar 文件是否被修改。
如果你没有修改相关文件,请勿勾选此项。" />
|
||||||
|
</StackPanel>
|
||||||
</Grid>
|
</Grid>
|
||||||
</local:MyCard>
|
</local:MyCard>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|||||||
@@ -67,7 +67,13 @@
|
|||||||
TextAdvanceGame.Text = Setup.Get("VersionAdvanceGame", Version:=PageVersionLeft.Version)
|
TextAdvanceGame.Text = Setup.Get("VersionAdvanceGame", Version:=PageVersionLeft.Version)
|
||||||
TextAdvanceRun.Text = Setup.Get("VersionAdvanceRun", Version:=PageVersionLeft.Version)
|
TextAdvanceRun.Text = Setup.Get("VersionAdvanceRun", Version:=PageVersionLeft.Version)
|
||||||
CheckAdvanceRunWait.Checked = Setup.Get("VersionAdvanceRunWait", Version:=PageVersionLeft.Version)
|
CheckAdvanceRunWait.Checked = Setup.Get("VersionAdvanceRunWait", Version:=PageVersionLeft.Version)
|
||||||
ComboAdvanceAssets.SelectedIndex = Setup.Get("VersionAdvanceAssets", Version:=PageVersionLeft.Version)
|
If Setup.Get("VersionAdvanceAssets", Version:=PageVersionLeft.Version) = 2 Then
|
||||||
|
Log("[Setup] 已迁移老版本的关闭文件校验设置")
|
||||||
|
Setup.Reset("VersionAdvanceAssets", Version:=PageVersionLeft.Version)
|
||||||
|
Setup.Set("VersionAdvanceAssetsV2", True, Version:=PageVersionLeft.Version)
|
||||||
|
End If
|
||||||
|
CheckAdvanceAssetsV2.Checked = Setup.Get("VersionAdvanceAssetsV2", Version:=PageVersionLeft.Version)
|
||||||
|
CheckAdvanceJava.Checked = Setup.Get("VersionAdvanceJava", Version:=PageVersionLeft.Version)
|
||||||
|
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
Log(ex, "重载版本独立设置时出错", LogLevel.Feedback)
|
Log(ex, "重载版本独立设置时出错", LogLevel.Feedback)
|
||||||
@@ -92,6 +98,8 @@
|
|||||||
Setup.Reset("VersionAdvanceJvm", Version:=PageVersionLeft.Version)
|
Setup.Reset("VersionAdvanceJvm", Version:=PageVersionLeft.Version)
|
||||||
Setup.Reset("VersionAdvanceGame", Version:=PageVersionLeft.Version)
|
Setup.Reset("VersionAdvanceGame", Version:=PageVersionLeft.Version)
|
||||||
Setup.Reset("VersionAdvanceAssets", Version:=PageVersionLeft.Version)
|
Setup.Reset("VersionAdvanceAssets", Version:=PageVersionLeft.Version)
|
||||||
|
Setup.Reset("VersionAdvanceAssetsV2", Version:=PageVersionLeft.Version)
|
||||||
|
Setup.Reset("VersionAdvanceJava", Version:=PageVersionLeft.Version)
|
||||||
Setup.Reset("VersionAdvanceRun", Version:=PageVersionLeft.Version)
|
Setup.Reset("VersionAdvanceRun", Version:=PageVersionLeft.Version)
|
||||||
Setup.Reset("VersionAdvanceRunWait", Version:=PageVersionLeft.Version)
|
Setup.Reset("VersionAdvanceRunWait", Version:=PageVersionLeft.Version)
|
||||||
|
|
||||||
@@ -121,10 +129,10 @@
|
|||||||
Private Shared Sub SliderChange(sender As MySlider, e As Object) Handles SliderRamCustom.Change
|
Private Shared Sub SliderChange(sender As MySlider, e As Object) Handles SliderRamCustom.Change
|
||||||
If AniControlEnabled = 0 Then Setup.Set(sender.Tag, sender.Value, Version:=PageVersionLeft.Version)
|
If AniControlEnabled = 0 Then Setup.Set(sender.Tag, sender.Value, Version:=PageVersionLeft.Version)
|
||||||
End Sub
|
End Sub
|
||||||
Private Shared Sub ComboChange(sender As MyComboBox, e As Object) Handles ComboArgumentIndie.SelectionChanged, ComboAdvanceAssets.SelectionChanged
|
Private Shared Sub ComboChange(sender As MyComboBox, e As Object) Handles ComboArgumentIndie.SelectionChanged
|
||||||
If AniControlEnabled = 0 Then Setup.Set(sender.Tag, sender.SelectedIndex, Version:=PageVersionLeft.Version)
|
If AniControlEnabled = 0 Then Setup.Set(sender.Tag, sender.SelectedIndex, Version:=PageVersionLeft.Version)
|
||||||
End Sub
|
End Sub
|
||||||
Private Shared Sub CheckBoxChange(sender As MyCheckBox, e As Object) Handles CheckAdvanceRunWait.Change
|
Private Shared Sub CheckBoxChange(sender As MyCheckBox, e As Object) Handles CheckAdvanceRunWait.Change, CheckAdvanceAssetsV2.Change, CheckAdvanceJava.Change
|
||||||
If AniControlEnabled = 0 Then Setup.Set(sender.Tag, sender.Checked, Version:=PageVersionLeft.Version)
|
If AniControlEnabled = 0 Then Setup.Set(sender.Tag, sender.Checked, Version:=PageVersionLeft.Version)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user