2.8.13
This commit is contained in:
@@ -9,8 +9,8 @@
|
|||||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2"/>
|
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2"/>
|
||||||
</startup>
|
</startup>
|
||||||
<runtime>
|
<runtime>
|
||||||
<AppContextSwitchOverrides value="Switch.System.Net.DontEnableSchUseStrongCrypto=false"/>
|
<AppContextSwitchOverrides value="Switch.System.Net.DontEnableSchUseStrongCrypto=false" />
|
||||||
<AppContextSwitchOverrides value="Switch.System.Windows.DoNotScaleForDpiChanges=false"/>
|
<AppContextSwitchOverrides value="Switch.System.Windows.DoNotScaleForDpiChanges=false"/> <!-- #5337 -->
|
||||||
<generatePublisherEvidence enabled="false"/>
|
<generatePublisherEvidence enabled="false"/>
|
||||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
|
|||||||
@@ -90,6 +90,13 @@ Public Class FormMain
|
|||||||
'3:BUG+ IMP* FEAT-
|
'3:BUG+ IMP* FEAT-
|
||||||
'2:BUG* IMP-
|
'2:BUG* IMP-
|
||||||
'1:BUG-
|
'1:BUG-
|
||||||
|
If LastVersion < 346 Then 'Snapshot 2.8.13
|
||||||
|
FeatureList.Add(New KeyValuePair(Of Integer, String)(2, "优化网络环境不佳时,Mod、整合包页面的加载速度"))
|
||||||
|
FeatureList.Add(New KeyValuePair(Of Integer, String)(1, "修复部分电脑无法打开程序的 Bug"))
|
||||||
|
FeatureList.Add(New KeyValuePair(Of Integer, String)(1, "修复可能无法识别、更新 Mod 的 Bug"))
|
||||||
|
FeatureCount += 6
|
||||||
|
BugCount += 14
|
||||||
|
End If
|
||||||
If LastVersion < 346 Then 'Snapshot 2.8.12
|
If LastVersion < 346 Then 'Snapshot 2.8.12
|
||||||
If LastVersion = 345 Then FeatureList.Add(New KeyValuePair(Of Integer, String)(1, "修复帮助页面报错的 Bug"))
|
If LastVersion = 345 Then FeatureList.Add(New KeyValuePair(Of Integer, String)(1, "修复帮助页面报错的 Bug"))
|
||||||
End If
|
End If
|
||||||
|
|||||||
@@ -12,13 +12,13 @@ Public Module ModBase
|
|||||||
#Region "声明"
|
#Region "声明"
|
||||||
|
|
||||||
'下列版本信息由更新器自动修改
|
'下列版本信息由更新器自动修改
|
||||||
Public Const VersionBaseName As String = "2.8.12" '不含分支前缀的显示用版本名
|
Public Const VersionBaseName As String = "2.8.13" '不含分支前缀的显示用版本名
|
||||||
Public Const VersionStandardCode As String = "2.8.12." & VersionBranchCode '标准格式的四段式版本号
|
Public Const VersionStandardCode As String = "2.8.13." & VersionBranchCode '标准格式的四段式版本号
|
||||||
Public Const CommitHash As String = "" 'Commit Hash,由 GitHub Workflow 自动替换
|
Public Const CommitHash As String = "" 'Commit Hash,由 GitHub Workflow 自动替换
|
||||||
#If BETA Then
|
#If BETA Then
|
||||||
Public Const VersionCode As Integer = 347 'Release
|
Public Const VersionCode As Integer = 347 'Release
|
||||||
#Else
|
#Else
|
||||||
Public Const VersionCode As Integer = 346 'Snapshot
|
Public Const VersionCode As Integer = 348 'Snapshot
|
||||||
#End If
|
#End If
|
||||||
'自动生成的版本信息
|
'自动生成的版本信息
|
||||||
Public Const VersionDisplayName As String = VersionBranchName & " " & VersionBaseName
|
Public Const VersionDisplayName As String = VersionBranchName & " " & VersionBaseName
|
||||||
@@ -1975,13 +1975,12 @@ RetryDir:
|
|||||||
End Function
|
End Function
|
||||||
|
|
||||||
''' <summary>
|
''' <summary>
|
||||||
''' 判断当前系统语言是否为中文(中国大陆)。
|
''' 判断当前系统语言是否为 zh-CN。
|
||||||
''' </summary>
|
''' </summary>
|
||||||
Public Function IsSystemLanguageChinese() As Boolean
|
Public Function IsSystemLanguageChinese() As Boolean
|
||||||
Return CultureInfo.CurrentCulture.Name = "zh-CN" OrElse CultureInfo.CurrentUICulture.Name = "zh-CN"
|
Return CultureInfo.CurrentCulture.Name = "zh-CN" OrElse CultureInfo.CurrentUICulture.Name = "zh-CN"
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
|
||||||
Private Uuid As Integer = 1
|
Private Uuid As Integer = 1
|
||||||
Private UuidLock As Object
|
Private UuidLock As Object
|
||||||
''' <summary>
|
''' <summary>
|
||||||
@@ -2865,4 +2864,4 @@ Retry:
|
|||||||
|
|
||||||
#End Region
|
#End Region
|
||||||
|
|
||||||
End Module
|
End Module
|
||||||
@@ -1819,6 +1819,7 @@ Retry:
|
|||||||
Private Sub RefreshStat()
|
Private Sub RefreshStat()
|
||||||
Try
|
Try
|
||||||
Dim DeltaTime As Long = GetTimeTick() - RefreshStatLast
|
Dim DeltaTime As Long = GetTimeTick() - RefreshStatLast
|
||||||
|
If DeltaTime = 0 Then Return
|
||||||
RefreshStatLast += DeltaTime
|
RefreshStatLast += DeltaTime
|
||||||
#Region "刷新整体速度"
|
#Region "刷新整体速度"
|
||||||
'计算瞬时速度
|
'计算瞬时速度
|
||||||
@@ -1884,7 +1885,7 @@ Retry:
|
|||||||
For Each File As NetFile In WaitingFiles
|
For Each File As NetFile In WaitingFiles
|
||||||
If NetTaskThreadCount >= NetTaskThreadLimit Then Continue While '最大线程数检查
|
If NetTaskThreadCount >= NetTaskThreadLimit Then Continue While '最大线程数检查
|
||||||
Dim NewThread = File.TryBeginThread()
|
Dim NewThread = File.TryBeginThread()
|
||||||
If NewThread IsNot Nothing AndAlso NewThread.Source.Url.Contains("bmclapi") Then Thread.Sleep(70) '减少 BMCLAPI 请求频率,避免 Too Many Requests
|
If NewThread IsNot Nothing AndAlso NewThread.Source.Url.Contains("bmclapi") Then Thread.Sleep(100) '减少 BMCLAPI 请求频率,避免 Too Many Requests
|
||||||
Next
|
Next
|
||||||
'为进行中的文件追加线程
|
'为进行中的文件追加线程
|
||||||
If Speed >= NetTaskSpeedLimitLow Then Continue While '下载速度足够,无需新增
|
If Speed >= NetTaskSpeedLimitLow Then Continue While '下载速度足够,无需新增
|
||||||
@@ -1904,7 +1905,7 @@ Retry:
|
|||||||
'新增线程
|
'新增线程
|
||||||
If PreparingCount > DownloadingCount Then Continue For '准备中的线程已多于下载中的线程,不再新增
|
If PreparingCount > DownloadingCount Then Continue For '准备中的线程已多于下载中的线程,不再新增
|
||||||
Dim NewThread = File.TryBeginThread()
|
Dim NewThread = File.TryBeginThread()
|
||||||
If NewThread IsNot Nothing AndAlso NewThread.Source.Url.Contains("bmclapi") Then Thread.Sleep(70) '减少 BMCLAPI 请求频率,避免 Too Many Requests
|
If NewThread IsNot Nothing AndAlso NewThread.Source.Url.Contains("bmclapi") Then Thread.Sleep(100) '减少 BMCLAPI 请求频率,避免 Too Many Requests
|
||||||
Next
|
Next
|
||||||
End While
|
End While
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
|
|||||||
@@ -434,11 +434,8 @@
|
|||||||
Public Function ToCompItem(ShowMcVersionDesc As Boolean, ShowLoaderDesc As Boolean) As MyCompItem
|
Public Function ToCompItem(ShowMcVersionDesc As Boolean, ShowLoaderDesc As Boolean) As MyCompItem
|
||||||
'获取版本描述
|
'获取版本描述
|
||||||
Dim GameVersionDescription As String
|
Dim GameVersionDescription As String
|
||||||
Dim AllSnapshot As Boolean = GameVersions.All(Function(v) RegexCheck(v, "[0-9]{2}w[0-9]{2}[a-z]{1}"))
|
If GameVersions Is Nothing OrElse Not GameVersions.Any() Then
|
||||||
If AllSnapshot Then
|
GameVersionDescription = "仅快照版本" '#5412
|
||||||
GameVersionDescription = "仅快照版本"
|
|
||||||
ElseIf GameVersions Is Nothing OrElse Not GameVersions.Any() Then
|
|
||||||
GameVersionDescription = "未知"
|
|
||||||
Else
|
Else
|
||||||
Dim SpaVersions As New List(Of String)
|
Dim SpaVersions As New List(Of String)
|
||||||
Dim IsOld As Boolean = False
|
Dim IsOld As Boolean = False
|
||||||
@@ -496,17 +493,11 @@
|
|||||||
ModLoaderDescriptionFull = "仅 " & ModLoadersForDesc.Single.ToString
|
ModLoaderDescriptionFull = "仅 " & ModLoadersForDesc.Single.ToString
|
||||||
ModLoaderDescriptionPart = ModLoadersForDesc.Single.ToString
|
ModLoaderDescriptionPart = ModLoadersForDesc.Single.ToString
|
||||||
Case Else
|
Case Else
|
||||||
If ModLoaders.Contains(CompModLoaderType.Forge) AndAlso Not AllSnapshot AndAlso
|
Dim MaxVersion As Integer = If(GameVersions.Any, GameVersions.Max, 99)
|
||||||
(GameVersions.Max < 14 OrElse ModLoaders.Contains(CompModLoaderType.Fabric)) AndAlso
|
If ModLoaders.Contains(CompModLoaderType.Forge) AndAlso
|
||||||
(GameVersions.Max < 20 OrElse ModLoaders.Contains(CompModLoaderType.NeoForge)) AndAlso
|
(MaxVersion < 14 OrElse ModLoaders.Contains(CompModLoaderType.Fabric)) AndAlso
|
||||||
(GameVersions.Max < 14 OrElse ModLoaders.Contains(CompModLoaderType.Quilt) OrElse Setup.Get("ToolDownloadIgnoreQuilt")) Then
|
(MaxVersion < 20 OrElse ModLoaders.Contains(CompModLoaderType.NeoForge)) AndAlso
|
||||||
ModLoaderDescriptionFull = "任意"
|
(MaxVersion < 14 OrElse ModLoaders.Contains(CompModLoaderType.Quilt) OrElse Setup.Get("ToolDownloadIgnoreQuilt")) Then
|
||||||
ModLoaderDescriptionPart = ""
|
|
||||||
ElseIf AllSnapshot AndAlso
|
|
||||||
ModLoaders.Contains(CompModLoaderType.Forge) AndAlso
|
|
||||||
ModLoaders.Contains(CompModLoaderType.Fabric) AndAlso
|
|
||||||
ModLoaders.Contains(CompModLoaderType.NeoForge) AndAlso
|
|
||||||
(ModLoaders.Contains(CompModLoaderType.Quilt) OrElse Setup.Get("ToolDownloadIgnoreQuilt")) Then
|
|
||||||
ModLoaderDescriptionFull = "任意"
|
ModLoaderDescriptionFull = "任意"
|
||||||
ModLoaderDescriptionPart = ""
|
ModLoaderDescriptionPart = ""
|
||||||
Else
|
Else
|
||||||
@@ -1083,7 +1074,7 @@ Retry:
|
|||||||
|
|
||||||
If RealResults.Count + Storage.Results.Count < Task.Input.TargetResultCount Then
|
If RealResults.Count + Storage.Results.Count < Task.Input.TargetResultCount Then
|
||||||
Log($"[Comp] 总结果数需求最少 {Task.Input.TargetResultCount} 个,仅获得了 {RealResults.Count + Storage.Results.Count} 个")
|
Log($"[Comp] 总结果数需求最少 {Task.Input.TargetResultCount} 个,仅获得了 {RealResults.Count + Storage.Results.Count} 个")
|
||||||
If Task.Input.CanContinue Then
|
If Task.Input.CanContinue AndAlso [Error] Is Nothing Then '如果有下载源失败则不再重试,这时候重试可能导致无限循环
|
||||||
Log("[Comp] 将继续尝试加载下一页")
|
Log("[Comp] 将继续尝试加载下一页")
|
||||||
GoTo Retry
|
GoTo Retry
|
||||||
Else
|
Else
|
||||||
@@ -1491,10 +1482,8 @@ Retry:
|
|||||||
If Deps.Any Then
|
If Deps.Any Then
|
||||||
For Each DepProject In Deps.Where(Function(id) CompProjectCache.ContainsKey(id)).Select(Function(id) CompProjectCache(id))
|
For Each DepProject In Deps.Where(Function(id) CompProjectCache.ContainsKey(id)).Select(Function(id) CompProjectCache(id))
|
||||||
For Each File In CompFilesCache(ProjectId)
|
For Each File In CompFilesCache(ProjectId)
|
||||||
If File.RawDependencies.Contains(DepProject.Id) AndAlso
|
If File.RawDependencies.Contains(DepProject.Id) AndAlso DepProject.Id <> ProjectId Then
|
||||||
DepProject.Id <> ProjectId AndAlso
|
If Not File.Dependencies.Contains(DepProject.Id) Then File.Dependencies.Add(DepProject.Id)
|
||||||
Not File.Dependencies.Contains(DepProject.Id) Then
|
|
||||||
File.Dependencies.Add(DepProject.Id)
|
|
||||||
End If
|
End If
|
||||||
Next
|
Next
|
||||||
Next
|
Next
|
||||||
|
|||||||
@@ -1098,39 +1098,27 @@
|
|||||||
''' 调用 NetGetCodeByRequest。
|
''' 调用 NetGetCodeByRequest。
|
||||||
''' </summary>
|
''' </summary>
|
||||||
Public Function DlModRequest(Url As String, Optional IsJson As Boolean = False) As Object
|
Public Function DlModRequest(Url As String, Optional IsJson As Boolean = False) As Object
|
||||||
Dim McimUrl As String = DlSourceModGet(Url)
|
|
||||||
Dim Urls As New List(Of KeyValuePair(Of String, Integer))
|
Dim Urls As New List(Of KeyValuePair(Of String, Integer))
|
||||||
If McimUrl <> Url Then
|
Urls.Add(New KeyValuePair(Of String, Integer)(Url, 5))
|
||||||
Select Case Setup.Get("ToolDownloadMod")
|
Urls.Add(New KeyValuePair(Of String, Integer)(Url, 15))
|
||||||
'TODO: 在 MCIM 源稳定后回调
|
'Dim McimUrl As String = DlSourceModGet(Url)
|
||||||
Case 0
|
'If McimUrl <> Url Then
|
||||||
If ModeDebug Then
|
' Select Case Setup.Get("ToolDownloadMod")
|
||||||
Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 10))
|
' Case 0
|
||||||
Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 20))
|
' Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 5))
|
||||||
Urls.Add(New KeyValuePair(Of String, Integer)(Url, 30))
|
' Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 10))
|
||||||
Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 60))
|
' Urls.Add(New KeyValuePair(Of String, Integer)(Url, 15))
|
||||||
Urls.Add(New KeyValuePair(Of String, Integer)(Url, 60))
|
' Case 1
|
||||||
Else
|
' Urls.Add(New KeyValuePair(Of String, Integer)(Url, 5))
|
||||||
Urls.Add(New KeyValuePair(Of String, Integer)(Url, 5))
|
' Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 5))
|
||||||
Urls.Add(New KeyValuePair(Of String, Integer)(Url, 20))
|
' Urls.Add(New KeyValuePair(Of String, Integer)(Url, 15))
|
||||||
Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 30))
|
' Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 10))
|
||||||
Urls.Add(New KeyValuePair(Of String, Integer)(Url, 60))
|
' Case Else
|
||||||
Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 60))
|
' Urls.Add(New KeyValuePair(Of String, Integer)(Url, 5))
|
||||||
End If
|
' Urls.Add(New KeyValuePair(Of String, Integer)(Url, 15))
|
||||||
Case 1
|
' Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 10))
|
||||||
Urls.Add(New KeyValuePair(Of String, Integer)(Url, 5))
|
' End Select
|
||||||
Urls.Add(New KeyValuePair(Of String, Integer)(Url, 20))
|
'End If
|
||||||
Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 30))
|
|
||||||
Urls.Add(New KeyValuePair(Of String, Integer)(Url, 60))
|
|
||||||
Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 60))
|
|
||||||
Case Else
|
|
||||||
Urls.Add(New KeyValuePair(Of String, Integer)(Url, 5))
|
|
||||||
Urls.Add(New KeyValuePair(Of String, Integer)(Url, 30))
|
|
||||||
Urls.Add(New KeyValuePair(Of String, Integer)(Url, 60))
|
|
||||||
Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 60))
|
|
||||||
Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 60))
|
|
||||||
End Select
|
|
||||||
End If
|
|
||||||
Dim Exs As String = ""
|
Dim Exs As String = ""
|
||||||
For Each Source In Urls
|
For Each Source In Urls
|
||||||
Try
|
Try
|
||||||
@@ -1147,39 +1135,27 @@
|
|||||||
''' 调用 NetRequest。
|
''' 调用 NetRequest。
|
||||||
''' </summary>
|
''' </summary>
|
||||||
Public Function DlModRequest(Url As String, Method As String, Data As String, ContentType As String) As String
|
Public Function DlModRequest(Url As String, Method As String, Data As String, ContentType As String) As String
|
||||||
Dim McimUrl As String = DlSourceModGet(Url)
|
|
||||||
Dim Urls As New List(Of KeyValuePair(Of String, Integer))
|
Dim Urls As New List(Of KeyValuePair(Of String, Integer))
|
||||||
If McimUrl <> Url Then
|
Urls.Add(New KeyValuePair(Of String, Integer)(Url, 5))
|
||||||
Select Case Setup.Get("ToolDownloadMod")
|
Urls.Add(New KeyValuePair(Of String, Integer)(Url, 15))
|
||||||
'TODO: 在 MCIM 源稳定后回调
|
'Dim McimUrl As String = DlSourceModGet(Url)
|
||||||
Case 0
|
'If McimUrl <> Url Then
|
||||||
If ModeDebug Then
|
' Select Case Setup.Get("ToolDownloadMod")
|
||||||
Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 10))
|
' Case 0
|
||||||
Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 20))
|
' Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 5))
|
||||||
Urls.Add(New KeyValuePair(Of String, Integer)(Url, 30))
|
' Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 10))
|
||||||
Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 60))
|
' Urls.Add(New KeyValuePair(Of String, Integer)(Url, 15))
|
||||||
Urls.Add(New KeyValuePair(Of String, Integer)(Url, 60))
|
' Case 1
|
||||||
Else
|
' Urls.Add(New KeyValuePair(Of String, Integer)(Url, 5))
|
||||||
Urls.Add(New KeyValuePair(Of String, Integer)(Url, 5))
|
' Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 5))
|
||||||
Urls.Add(New KeyValuePair(Of String, Integer)(Url, 20))
|
' Urls.Add(New KeyValuePair(Of String, Integer)(Url, 15))
|
||||||
Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 30))
|
' Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 10))
|
||||||
Urls.Add(New KeyValuePair(Of String, Integer)(Url, 60))
|
' Case Else
|
||||||
Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 60))
|
' Urls.Add(New KeyValuePair(Of String, Integer)(Url, 5))
|
||||||
End If
|
' Urls.Add(New KeyValuePair(Of String, Integer)(Url, 15))
|
||||||
Case 1
|
' Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 10))
|
||||||
Urls.Add(New KeyValuePair(Of String, Integer)(Url, 5))
|
' End Select
|
||||||
Urls.Add(New KeyValuePair(Of String, Integer)(Url, 20))
|
'End If
|
||||||
Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 30))
|
|
||||||
Urls.Add(New KeyValuePair(Of String, Integer)(Url, 60))
|
|
||||||
Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 60))
|
|
||||||
Case Else
|
|
||||||
Urls.Add(New KeyValuePair(Of String, Integer)(Url, 5))
|
|
||||||
Urls.Add(New KeyValuePair(Of String, Integer)(Url, 30))
|
|
||||||
Urls.Add(New KeyValuePair(Of String, Integer)(Url, 60))
|
|
||||||
Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 60))
|
|
||||||
Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 60))
|
|
||||||
End Select
|
|
||||||
End If
|
|
||||||
Dim Exs As String = ""
|
Dim Exs As String = ""
|
||||||
For Each Source In Urls
|
For Each Source In Urls
|
||||||
Try
|
Try
|
||||||
@@ -1207,28 +1183,42 @@
|
|||||||
End Function
|
End Function
|
||||||
|
|
||||||
Public Function DlSourceLibraryGet(Original As String) As String()
|
Public Function DlSourceLibraryGet(Original As String) As String()
|
||||||
Return {
|
If {"minecraftforge", "fabricmc", "neoforged"}.Any(Function(k) Original.Contains(k)) Then '不添加原版源
|
||||||
Original.
|
Return {
|
||||||
Replace("https://piston-data.mojang.com", "https://bmclapi2.bangbang93.com/maven").
|
Original.
|
||||||
Replace("https://piston-meta.mojang.com", "https://bmclapi2.bangbang93.com/maven").
|
Replace("https://piston-data.mojang.com", "https://bmclapi2.bangbang93.com/maven").
|
||||||
Replace("https://libraries.minecraft.net", "https://bmclapi2.bangbang93.com/maven"),
|
Replace("https://piston-meta.mojang.com", "https://bmclapi2.bangbang93.com/maven").
|
||||||
Original.
|
Replace("https://libraries.minecraft.net", "https://bmclapi2.bangbang93.com/maven"),
|
||||||
Replace("https://piston-data.mojang.com", "https://bmclapi2.bangbang93.com/libraries").
|
Original.
|
||||||
Replace("https://piston-meta.mojang.com", "https://bmclapi2.bangbang93.com/libraries").
|
Replace("https://piston-data.mojang.com", "https://bmclapi2.bangbang93.com/libraries").
|
||||||
Replace("https://libraries.minecraft.net", "https://bmclapi2.bangbang93.com/libraries"),
|
Replace("https://piston-meta.mojang.com", "https://bmclapi2.bangbang93.com/libraries").
|
||||||
Original
|
Replace("https://libraries.minecraft.net", "https://bmclapi2.bangbang93.com/libraries")
|
||||||
}
|
}
|
||||||
|
Else
|
||||||
|
Return {
|
||||||
|
Original.
|
||||||
|
Replace("https://piston-data.mojang.com", "https://bmclapi2.bangbang93.com/maven").
|
||||||
|
Replace("https://piston-meta.mojang.com", "https://bmclapi2.bangbang93.com/maven").
|
||||||
|
Replace("https://libraries.minecraft.net", "https://bmclapi2.bangbang93.com/maven"),
|
||||||
|
Original.
|
||||||
|
Replace("https://piston-data.mojang.com", "https://bmclapi2.bangbang93.com/libraries").
|
||||||
|
Replace("https://piston-meta.mojang.com", "https://bmclapi2.bangbang93.com/libraries").
|
||||||
|
Replace("https://libraries.minecraft.net", "https://bmclapi2.bangbang93.com/libraries"),
|
||||||
|
Original
|
||||||
|
}
|
||||||
|
End If
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Public Function DlSourceModGet(Original As String) As String
|
Public Function DlSourceModGet(Original As String) As String
|
||||||
Return Original.
|
Return Original
|
||||||
Replace("api.modrinth.com", "mod.mcimirror.top/modrinth").
|
'Return Original.
|
||||||
Replace("staging-api.modrinth.com", "mod.mcimirror.top/modrinth").
|
' Replace("api.modrinth.com", "mod.mcimirror.top/modrinth").
|
||||||
Replace("cdn.modrinth.com", "mod.mcimirror.top").
|
' Replace("staging-api.modrinth.com", "mod.mcimirror.top/modrinth").
|
||||||
Replace("api.curseforge.com", "mod.mcimirror.top/curseforge").
|
' Replace("cdn.modrinth.com", "mod.mcimirror.top").
|
||||||
Replace("edge.forgecdn.net", "mod.mcimirror.top").
|
' Replace("api.curseforge.com", "mod.mcimirror.top/curseforge").
|
||||||
Replace("mediafilez.forgecdn.net", "mod.mcimirror.top").
|
' Replace("edge.forgecdn.net", "mod.mcimirror.top").
|
||||||
Replace("media.forgecdn.net", "mod.mcimirror.top")
|
' Replace("mediafilez.forgecdn.net", "mod.mcimirror.top").
|
||||||
|
' Replace("media.forgecdn.net", "mod.mcimirror.top")
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Public Function DlSourceLauncherOrMetaGet(Original As String) As String()
|
Public Function DlSourceLauncherOrMetaGet(Original As String) As String()
|
||||||
|
|||||||
@@ -236,15 +236,18 @@ NextInner:
|
|||||||
'正版购买提示
|
'正版购买提示
|
||||||
If Not Setup.Get("HintBuy") AndAlso Setup.Get("LoginType") <> McLoginType.Ms Then
|
If Not Setup.Get("HintBuy") AndAlso Setup.Get("LoginType") <> McLoginType.Ms Then
|
||||||
If IsSystemLanguageChinese() Then
|
If IsSystemLanguageChinese() Then
|
||||||
Select Case Setup.Get("SystemLaunchCount")
|
RunInNewThread(
|
||||||
Case 3, 8, 15, 30, 50, 70, 90, 110, 130, 180, 220, 280, 330, 380, 450, 550, 660, 750, 880, 950, 1100, 1300, 1500, 1700, 1900
|
Sub()
|
||||||
If MyMsgBox("你已经启动了 " & Setup.Get("SystemLaunchCount") & " 次 Minecraft 啦!" & vbCrLf &
|
Select Case Setup.Get("SystemLaunchCount")
|
||||||
"如果觉得 Minecraft 还不错,可以购买正版支持一下,毕竟开发游戏也真的很不容易……不要一直白嫖啦。" & vbCrLf & vbCrLf &
|
Case 3, 8, 15, 30, 50, 70, 90, 110, 130, 180, 220, 280, 330, 380, 450, 550, 660, 750, 880, 950, 1100, 1300, 1500, 1700, 1900
|
||||||
"在登录一次正版账号后,就不会再出现这个提示了!",
|
If MyMsgBox("你已经启动了 " & Setup.Get("SystemLaunchCount") & " 次 Minecraft 啦!" & vbCrLf &
|
||||||
"考虑一下正版?", "支持正版游戏!", "下次一定") = 1 Then
|
"如果觉得 Minecraft 还不错,可以购买正版支持一下,毕竟开发游戏也真的很不容易……不要一直白嫖啦。" & vbCrLf & vbCrLf &
|
||||||
OpenWebsite("https://www.xbox.com/zh-cn/games/store/minecraft-java-bedrock-edition-for-pc/9nxp44l49shj")
|
"在登录一次正版账号后,就不会再出现这个提示了!",
|
||||||
End If
|
"考虑一下正版?", "支持正版游戏!", "下次一定") = 1 Then
|
||||||
End Select
|
OpenWebsite("https://www.xbox.com/zh-cn/games/store/minecraft-java-bedrock-edition-for-pc/9nxp44l49shj")
|
||||||
|
End If
|
||||||
|
End Select
|
||||||
|
End Sub, "Buy Minecraft")
|
||||||
ElseIf Setup.Get("LoginType") = McLoginType.Legacy Then
|
ElseIf Setup.Get("LoginType") = McLoginType.Legacy Then
|
||||||
Select Case MyMsgBox("你必须先登录正版账号,才能进行离线登录!", "正版验证", "购买正版", "试玩", "返回",
|
Select Case MyMsgBox("你必须先登录正版账号,才能进行离线登录!", "正版验证", "购买正版", "试玩", "返回",
|
||||||
Button1Action:=Sub() OpenWebsite("https://www.xbox.com/zh-cn/games/store/minecraft-java-bedrock-edition-for-pc/9nxp44l49shj"))
|
Button1Action:=Sub() OpenWebsite("https://www.xbox.com/zh-cn/games/store/minecraft-java-bedrock-edition-for-pc/9nxp44l49shj"))
|
||||||
@@ -2045,8 +2048,8 @@ IgnoreCustomSkin:
|
|||||||
"@echo off" & vbCrLf &
|
"@echo off" & vbCrLf &
|
||||||
"title 启动 - " & McVersionCurrent.Name & vbCrLf &
|
"title 启动 - " & McVersionCurrent.Name & vbCrLf &
|
||||||
"echo 游戏正在启动,请稍候。" & vbCrLf &
|
"echo 游戏正在启动,请稍候。" & vbCrLf &
|
||||||
"set APPDATA=""" & PathMcFolder & """" & vbCrLf &
|
"set APPDATA=""" & McVersionCurrent.PathIndie & """" & vbCrLf &
|
||||||
"cd /D """ & PathMcFolder & """" & vbCrLf &
|
"cd /D """ & McVersionCurrent.PathIndie & """" & vbCrLf &
|
||||||
CustomCommandGlobal & vbCrLf &
|
CustomCommandGlobal & vbCrLf &
|
||||||
CustomCommandVersion & vbCrLf &
|
CustomCommandVersion & vbCrLf &
|
||||||
"""" & McLaunchJavaSelected.PathJava & """ " & McLaunchArgument & vbCrLf &
|
"""" & McLaunchJavaSelected.PathJava & """ " & McLaunchArgument & vbCrLf &
|
||||||
|
|||||||
@@ -2037,8 +2037,12 @@ OnLoaded:
|
|||||||
If Checker.Check(Token.LocalPath) Is Nothing Then Continue For
|
If Checker.Check(Token.LocalPath) Is Nothing Then Continue For
|
||||||
'文件不符合,添加下载
|
'文件不符合,添加下载
|
||||||
Dim Urls As New List(Of String)
|
Dim Urls As New List(Of String)
|
||||||
|
If Token.Url Is Nothing AndAlso Token.Name = "net.minecraftforge:forge:universal" Then
|
||||||
|
'特判修复 Forge 部分 universal 文件缺失 URL(#5455)
|
||||||
|
Token.Url = "https://maven.minecraftforge.net" & Token.LocalPath.Replace(If(Token.IsJumpLoader, JumpLoaderFolder, CustomMcFolder) & "libraries", "").Replace("\", "/")
|
||||||
|
End If
|
||||||
If Token.Url IsNot Nothing Then
|
If Token.Url IsNot Nothing Then
|
||||||
'获取 Url 的真实地址
|
'获取 URL 的真实地址
|
||||||
Urls.Add(Token.Url)
|
Urls.Add(Token.Url)
|
||||||
If Token.Url.Contains("launcher.mojang.com/v1/objects") OrElse Token.Url.Contains("client.txt") OrElse
|
If Token.Url.Contains("launcher.mojang.com/v1/objects") OrElse Token.Url.Contains("client.txt") OrElse
|
||||||
Token.Url.Contains(".tsrg") Then
|
Token.Url.Contains(".tsrg") Then
|
||||||
@@ -2080,10 +2084,14 @@ OnLoaded:
|
|||||||
McLibGet = If(WithHead, CustomMcFolder & "libraries\", "") &
|
McLibGet = If(WithHead, CustomMcFolder & "libraries\", "") &
|
||||||
Splited(0).Replace(".", "\") & "\" & Splited(1) & "\" & Splited(2) & "\" & Splited(1) & "-" & Splited(2) & ".jar"
|
Splited(0).Replace(".", "\") & "\" & Splited(1) & "\" & Splited(2) & "\" & Splited(1) & "-" & Splited(2) & ".jar"
|
||||||
'判断 OptiFine 是否应该使用 installer
|
'判断 OptiFine 是否应该使用 installer
|
||||||
If McLibGet.Contains("optifine\OptiFine\1.12") AndAlso '仅在 1.12 OptiFine 可重现
|
If McLibGet.Contains("optifine\OptiFine\1.") AndAlso Splited(2).Split(".").Count > 1 Then
|
||||||
File.Exists(CustomMcFolder & "libraries\" & Splited(0).Replace(".", "\") & "\" & Splited(1) & "\" & Splited(2) & "\" & Splited(1) & "-" & Splited(2) & "-installer.jar") Then
|
Dim MajorVersion As Integer = Val(Splited(2).Split(".")(1))
|
||||||
Log("[Launch] 已将 " & Original & " 特判替换为对应的 Installer 文件", LogLevel.Debug)
|
Dim MinorVersion As Integer = If(Splited(2).Split(".").Count > 1, Val(Splited(2).Split(".")(2).BeforeFirst("_")), 0)
|
||||||
McLibGet = McLibGet.Replace(".jar", "-installer.jar")
|
If (MajorVersion = 12 OrElse (MajorVersion = 20 AndAlso MinorVersion >= 4) OrElse MajorVersion >= 21) AndAlso '仅在 1.12 (无法追溯) 和 1.20.4+ (#5376) 遇到此问题
|
||||||
|
File.Exists($"{CustomMcFolder}libraries\{Splited(0).Replace(".", "\")}\{Splited(1)}\{Splited(2)}\{Splited(1)}-{Splited(2)}-installer.jar") Then
|
||||||
|
McLaunchLog("已将 " & Original & " 替换为对应的 Installer 文件")
|
||||||
|
McLibGet = McLibGet.Replace(".jar", "-installer.jar")
|
||||||
|
End If
|
||||||
End If
|
End If
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
|||||||
@@ -241,9 +241,7 @@ Retry:
|
|||||||
'获取 Mod 下载信息
|
'获取 Mod 下载信息
|
||||||
ModDownloadLoaders.Add(New LoaderTask(Of Integer, JArray)("获取 Mod 下载信息",
|
ModDownloadLoaders.Add(New LoaderTask(Of Integer, JArray)("获取 Mod 下载信息",
|
||||||
Sub(Task As LoaderTask(Of Integer, JArray))
|
Sub(Task As LoaderTask(Of Integer, JArray))
|
||||||
'由于 MCIM 缺少下载信息,只使用官方源获取列表
|
Task.Output = GetJson(DlModRequest("https://api.curseforge.com/v1/mods/files", "POST", "{""fileIds"": [" & Join(ModList, ",") & "]}", "application/json"))("data")
|
||||||
'TODO: 在 MCIM 源稳定后回调回 DlModRequest
|
|
||||||
Task.Output = GetJson(NetRequestRetry("https://api.curseforge.com/v1/mods/files", "POST", "{""fileIds"": [" & Join(ModList, ",") & "]}", "application/json"))("data")
|
|
||||||
'如果文件已被删除,则 API 会跳过那一项
|
'如果文件已被删除,则 API 会跳过那一项
|
||||||
If ModList.Count > Task.Output.Count Then Throw New Exception("整合包中的部分 Mod 版本已被 Mod 作者删除,所以没法继续安装了,请向整合包作者反馈该问题")
|
If ModList.Count > Task.Output.Count Then Throw New Exception("整合包中的部分 Mod 版本已被 Mod 作者删除,所以没法继续安装了,请向整合包作者反馈该问题")
|
||||||
End Sub) With {.ProgressWeight = ModList.Count / 10}) '每 10 Mod 需要 1s
|
End Sub) With {.ProgressWeight = ModList.Count / 10}) '每 10 Mod 需要 1s
|
||||||
@@ -798,14 +796,18 @@ Retry:
|
|||||||
Thread.Sleep(400) '避免文件争用
|
Thread.Sleep(400) '避免文件争用
|
||||||
'查找解压后的 exe 文件
|
'查找解压后的 exe 文件
|
||||||
Dim Launcher As String = Nothing
|
Dim Launcher As String = Nothing
|
||||||
For Each ExeFile In Directory.GetFiles(TargetFolder, "*.exe", SearchOption.AllDirectories)
|
For Each ExeFile In Directory.GetFiles(TargetFolder, "*.exe", SearchOption.TopDirectoryOnly)
|
||||||
Dim Info = FileVersionInfo.GetVersionInfo(ExeFile)
|
Dim Info = FileVersionInfo.GetVersionInfo(ExeFile)
|
||||||
Log($"[Modpack] 文件 {ExeFile} 的产品名标识为 {Info.ProductName}")
|
Log($"[Modpack] 文件 {ExeFile} 的产品名标识为 {Info.ProductName}")
|
||||||
If Info.ProductName = "Plain Craft Launcher" Then
|
If Info.ProductName = "Plain Craft Launcher" Then
|
||||||
Launcher = ExeFile
|
Launcher = ExeFile
|
||||||
ElseIf (Info.ProductName.ContainsF("Launcher", True) OrElse Info.ProductName.ContainsF("启动器", True)) AndAlso
|
Log($"[Modpack] 发现整合包附带的 PCL 启动器:{ExeFile}")
|
||||||
|
ElseIf (Info.ProductName.ContainsF("Launcher", True) OrElse Info.ProductName.ContainsF("启动", True)) AndAlso
|
||||||
Not Info.ProductName = "Plain Craft Launcher Admin Manager" Then
|
Not Info.ProductName = "Plain Craft Launcher Admin Manager" Then
|
||||||
If Launcher Is Nothing Then Launcher = ExeFile
|
If Launcher Is Nothing Then
|
||||||
|
Launcher = ExeFile
|
||||||
|
Log($"[Modpack] 发现整合包附带的疑似第三方启动器:{ExeFile}")
|
||||||
|
End If
|
||||||
End If
|
End If
|
||||||
Next
|
Next
|
||||||
Task.Progress = 0.95
|
Task.Progress = 0.95
|
||||||
|
|||||||
@@ -137,18 +137,14 @@ Public Class MyLocalModItem
|
|||||||
Exit Sub
|
Exit Sub
|
||||||
End If
|
End If
|
||||||
'计算滑动范围
|
'计算滑动范围
|
||||||
Dim Index = CType(Parent, StackPanel).Children.IndexOf(Me)
|
Dim Elements = CType(Parent, StackPanel).Children
|
||||||
If Index < 0 OrElse Index >= CType(Parent, StackPanel).Children.Count Then Exit Sub
|
Dim Index As Integer = Elements.IndexOf(Me)
|
||||||
SwipeStart = Math.Min(SwipeStart, Index)
|
SwipeStart = MathClamp(Math.Min(SwipeStart, Index), 0, Elements.Count - 1)
|
||||||
SwipeEnd = Math.Max(SwipeEnd, Index)
|
SwipeEnd = MathClamp(Math.Max(SwipeEnd, Index), 0, Elements.Count - 1)
|
||||||
If SwipeStart < 0 Then SwipeStart = 0
|
|
||||||
If SwipeEnd < 0 Then SwipeEnd = 0
|
|
||||||
If SwipeStart >= CType(Parent, StackPanel).Children.Count Then SwipeStart = CType(Parent, StackPanel).Children.Count - 1
|
|
||||||
If SwipeEnd >= CType(Parent, StackPanel).Children.Count Then SwipeEnd = CType(Parent, StackPanel).Children.Count - 1
|
|
||||||
'勾选所有范围中的项
|
'勾选所有范围中的项
|
||||||
If SwipeStart = SwipeEnd Then Exit Sub
|
If SwipeStart = SwipeEnd Then Exit Sub
|
||||||
For i = SwipeStart To SwipeEnd
|
For i = SwipeStart To SwipeEnd
|
||||||
Dim Item As MyLocalModItem = CType(Parent, StackPanel).Children(i)
|
Dim Item As MyLocalModItem = Elements(i)
|
||||||
Item.InitLate(Item, e)
|
Item.InitLate(Item, e)
|
||||||
Item.Checked = SwipToState
|
Item.Checked = SwipToState
|
||||||
Next
|
Next
|
||||||
@@ -466,8 +462,11 @@ Public Class MyLocalModItem
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
'显示更新日志
|
'显示更新日志
|
||||||
Private Sub ShowUpdateLog(sender As Object, e As MouseButtonEventArgs) Handles BtnUpdate.PreviewMouseRightButtonUp
|
Private Sub BtnUpdate_PreviewMouseRightButtonUp(sender As Object, e As MouseButtonEventArgs) Handles BtnUpdate.PreviewMouseRightButtonUp
|
||||||
e.Handled = True
|
e.Handled = True
|
||||||
|
ShowUpdateLog()
|
||||||
|
End Sub
|
||||||
|
Private Sub ShowUpdateLog()
|
||||||
Dim CurseForgeUrl As String = Entry.ChangelogUrls.FirstOrDefault(Function(x) x.Contains("curseforge.com"))
|
Dim CurseForgeUrl As String = Entry.ChangelogUrls.FirstOrDefault(Function(x) x.Contains("curseforge.com"))
|
||||||
Dim ModrinthUrl As String = Entry.ChangelogUrls.FirstOrDefault(Function(x) x.Contains("modrinth.com"))
|
Dim ModrinthUrl As String = Entry.ChangelogUrls.FirstOrDefault(Function(x) x.Contains("modrinth.com"))
|
||||||
If CurseForgeUrl Is Nothing OrElse ModrinthUrl Is Nothing Then
|
If CurseForgeUrl Is Nothing OrElse ModrinthUrl Is Nothing Then
|
||||||
@@ -484,8 +483,13 @@ Public Class MyLocalModItem
|
|||||||
|
|
||||||
'触发更新
|
'触发更新
|
||||||
Private Sub BtnUpdate_Click(sender As Object, e As EventArgs) Handles BtnUpdate.Click
|
Private Sub BtnUpdate_Click(sender As Object, e As EventArgs) Handles BtnUpdate.Click
|
||||||
If MyMsgBox($"是否要更新 {Entry.Name}?{vbCrLf}{vbCrLf}{GetUpdateCompareDescription()}", "Mod 更新确认", "更新", "取消") = 2 Then Return
|
Select Case MyMsgBox($"是否要更新 {Entry.Name}?{vbCrLf}{vbCrLf}{GetUpdateCompareDescription()}", "Mod 更新确认", "更新", "查看更新日志", "取消")
|
||||||
FrmVersionMod.UpdateMods({Entry})
|
Case 1 '更新
|
||||||
|
FrmVersionMod.UpdateMods({Entry})
|
||||||
|
Case 2 '查看更新日志
|
||||||
|
ShowUpdateLog()
|
||||||
|
Case 3 '取消
|
||||||
|
End Select
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
'自适应(#4465)
|
'自适应(#4465)
|
||||||
|
|||||||
@@ -1,3 +1,8 @@
|
|||||||
Public Module ModDevelop
|
Public Module ModDevelop
|
||||||
|
|
||||||
|
#If DEBUG Then
|
||||||
|
Public Sub Start()
|
||||||
|
End Sub
|
||||||
|
#End If
|
||||||
|
|
||||||
End Module
|
End Module
|
||||||
|
|||||||
@@ -51,6 +51,6 @@ Imports System.Runtime.InteropServices
|
|||||||
' 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
|
' 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
|
||||||
' 方法是按如下所示使用“*”
|
' 方法是按如下所示使用“*”
|
||||||
|
|
||||||
<Assembly: AssemblyVersion("2.8.12.0")>
|
<Assembly: AssemblyVersion("2.8.13.0")>
|
||||||
<Assembly: AssemblyFileVersion("2.8.12.0")>
|
<Assembly: AssemblyFileVersion("2.8.13.0")>
|
||||||
<Assembly: NeutralResourcesLanguage("")>
|
<Assembly: NeutralResourcesLanguage("")>
|
||||||
|
|||||||
@@ -1353,7 +1353,7 @@ Retry:
|
|||||||
'去除其中的原始 Forgelike 项
|
'去除其中的原始 Forgelike 项
|
||||||
For i = 0 To Libs.Count - 1
|
For i = 0 To Libs.Count - 1
|
||||||
If Libs(i).LocalPath.EndsWithF($"{LoaderName.ToLower}-{Inherit}-{LoaderVersion}.jar") OrElse
|
If Libs(i).LocalPath.EndsWithF($"{LoaderName.ToLower}-{Inherit}-{LoaderVersion}.jar") OrElse
|
||||||
Libs(i).LocalPath.EndsWithF($"{LoaderName.ToLower}-{Inherit}-{LoaderVersion}-client.jar") Then
|
Libs(i).LocalPath.EndsWithF($"{LoaderName.ToLower}-{Inherit}-{LoaderVersion}-client.jar") Then
|
||||||
Log($"[Download] 已从待下载 {LoaderName} 支持库中移除:" & Libs(i).LocalPath, LogLevel.Debug)
|
Log($"[Download] 已从待下载 {LoaderName} 支持库中移除:" & Libs(i).LocalPath, LogLevel.Debug)
|
||||||
Libs.RemoveAt(i)
|
Libs.RemoveAt(i)
|
||||||
Exit For
|
Exit For
|
||||||
|
|||||||
@@ -9,7 +9,6 @@
|
|||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition Height="Auto" />
|
<RowDefinition Height="Auto" />
|
||||||
<RowDefinition Height="1*" />
|
<RowDefinition Height="1*" />
|
||||||
<RowDefinition Height="Auto" />
|
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
<local:MyCard Margin="0,0,0,25" x:Name="CardIntro">
|
<local:MyCard Margin="0,0,0,25" x:Name="CardIntro">
|
||||||
<StackPanel Margin="22,18,22,19" x:Name="PanIntro">
|
<StackPanel Margin="22,18,22,19" x:Name="PanIntro">
|
||||||
|
|||||||
@@ -242,7 +242,7 @@ Retry:
|
|||||||
{"Vanilla", "原版披风"}, {"Minecon2011", "Minecon 2011 参与者披风"}, {"Minecon2012", "Minecon 2012 参与者披风"},
|
{"Vanilla", "原版披风"}, {"Minecon2011", "Minecon 2011 参与者披风"}, {"Minecon2012", "Minecon 2012 参与者披风"},
|
||||||
{"Minecon2013", "Minecon 2013 参与者披风"}, {"Minecon2015", "Minecon 2015 参与者披风"}, {"Minecon2016", "Minecon 2016 参与者披风"},
|
{"Minecon2013", "Minecon 2013 参与者披风"}, {"Minecon2015", "Minecon 2015 参与者披风"}, {"Minecon2016", "Minecon 2016 参与者披风"},
|
||||||
{"Cherry Blossom", "樱花披风"}, {"15th Anniversary", "15 周年纪念披风"}, {"Purple Heart", "紫色心形披风"},
|
{"Cherry Blossom", "樱花披风"}, {"15th Anniversary", "15 周年纪念披风"}, {"Purple Heart", "紫色心形披风"},
|
||||||
{"Follower's", "追随者披风"}, {"MCC 15th Year", "MCC 15 周年披风"}, {"Minecraft Experience", "村民救援披风"},
|
{"Follower's", "追随者披风"}, {"MCC 15th Year", "MCC 15 周年披风"}, {"Minecraft Experience", "村民救援披风"},
|
||||||
{"Mojang Office", "Mojang 办公室披风"}
|
{"Mojang Office", "Mojang 办公室披风"}
|
||||||
}
|
}
|
||||||
Dim SelectionControl As New List(Of IMyRadio) From {New MyRadioBox With {.Text = "无披风"}}
|
Dim SelectionControl As New List(Of IMyRadio) From {New MyRadioBox With {.Text = "无披风"}}
|
||||||
|
|||||||
@@ -109,11 +109,11 @@ Download:
|
|||||||
GoTo Download
|
GoTo Download
|
||||||
Case 7
|
Case 7
|
||||||
Log("[Page] 主页预设:主页市场")
|
Log("[Page] 主页预设:主页市场")
|
||||||
Url = "https://homepage-market.pages.dev/Custom.xaml"
|
Url = "https://pclhomeplazaoss.lingyunawa.top:26994/d/Homepages/JingHai-Lingyun/Custom.xaml"
|
||||||
GoTo Download
|
GoTo Download
|
||||||
Case 8
|
Case 8
|
||||||
Log("[Page] 主页预设:更新日志")
|
Log("[Page] 主页预设:更新日志")
|
||||||
Url = "https://updatehomepage.pages.dev/UpdateHomepage.xaml"
|
Url = "https://pclhomeplazaoss.lingyunawa.top:26994/d/Homepages/Joker2184/UpdateHomepage.xaml"
|
||||||
GoTo Download
|
GoTo Download
|
||||||
Case 9
|
Case 9
|
||||||
Log("[Page] 主页预设:PCL 新功能说明书")
|
Log("[Page] 主页预设:PCL 新功能说明书")
|
||||||
@@ -125,7 +125,7 @@ Download:
|
|||||||
GoTo Download
|
GoTo Download
|
||||||
Case 11
|
Case 11
|
||||||
Log("[Page] 主页预设:杂志主页")
|
Log("[Page] 主页预设:杂志主页")
|
||||||
Url = "http://pclhomeplazaoss.lingyunawa.top:26994/d/Homepages/Ext1nguisher/Custom.xaml"
|
Url = "https://pclhomeplazaoss.lingyunawa.top:26994/d/Homepages/Ext1nguisher/Custom.xaml"
|
||||||
GoTo Download
|
GoTo Download
|
||||||
End Select
|
End Select
|
||||||
End Select
|
End Select
|
||||||
|
|||||||
@@ -44,6 +44,11 @@ Public Class PageLoginLegacy
|
|||||||
Public Shared Function IsVaild(LoginData As McLoginLegacy) As String
|
Public Shared Function IsVaild(LoginData As McLoginLegacy) As String
|
||||||
If LoginData.UserName.Trim = "" Then Return "玩家名不能为空!"
|
If LoginData.UserName.Trim = "" Then Return "玩家名不能为空!"
|
||||||
If LoginData.UserName.Contains("""") Then Return "玩家名不能包含英文引号!"
|
If LoginData.UserName.Contains("""") Then Return "玩家名不能包含英文引号!"
|
||||||
|
If McVersionCurrent IsNot Nothing AndAlso
|
||||||
|
((McVersionCurrent.Version.McCodeMain = 20 AndAlso McVersionCurrent.Version.McCodeSub >= 3) OrElse McVersionCurrent.Version.McCodeMain > 20) AndAlso
|
||||||
|
LoginData.UserName.Trim.Length > 16 Then
|
||||||
|
Return "自 1.20.3 起,玩家名至多只能包含 16 个字符!"
|
||||||
|
End If
|
||||||
Return ""
|
Return ""
|
||||||
End Function
|
End Function
|
||||||
Public Function IsVaild() As String
|
Public Function IsVaild() As String
|
||||||
|
|||||||
@@ -104,107 +104,120 @@
|
|||||||
</local:MyCard>
|
</local:MyCard>
|
||||||
<local:MyCard Margin="0,0,0,15" Title="赞助者">
|
<local:MyCard Margin="0,0,0,15" Title="赞助者">
|
||||||
<StackPanel Margin="25,40,10,20">
|
<StackPanel Margin="25,40,10,20">
|
||||||
<TextBlock HorizontalAlignment="Left" Text="以下是 2024 年 11 月的高级赞助者们!感谢各位对 PCL 和伟大的咕咕咕事业的支持!" Margin="0,0,25,5.5" TextTrimming="None" TextWrapping="WrapWithOverflow" />
|
<TextBlock HorizontalAlignment="Left" Text="以下是 2024 年 12 月的高级赞助者们!感谢各位对 PCL 和伟大的咕咕咕事业的支持!" Margin="0,0,25,5.5" TextTrimming="None" TextWrapping="WrapWithOverflow" />
|
||||||
<WrapPanel Margin="0,0,0,10">
|
<WrapPanel Margin="0,0,0,10">
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="枫星Maplestar" />
|
<TextBlock Width="120" Margin="0,1.5" Text="阿道" />
|
||||||
|
<TextBlock Width="120" Margin="0,1.5" Text="GuZhuJing" />
|
||||||
|
<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="蜜汁青柠檬" />
|
||||||
|
<TextBlock Width="120" Margin="0,1.5" Text="纸先生" />
|
||||||
|
<TextBlock Width="120" Margin="0,1.5" Text="CLOUD079" />
|
||||||
|
<TextBlock Width="120" Margin="0,1.5" Text="xiaoioax" />
|
||||||
|
<TextBlock Width="120" Margin="0,1.5" Text="CH土块警长" />
|
||||||
|
<TextBlock Width="120" Margin="0,1.5" Text="CHENJUN551" />
|
||||||
|
<TextBlock Width="120" Margin="0,1.5" Text="Ezzo" />
|
||||||
|
<TextBlock Width="120" Margin="0,1.5" Text="夜抱?吃火炉" />
|
||||||
|
<TextBlock Width="120" Margin="0,1.5" Text="Rn_Og" />
|
||||||
|
<TextBlock Width="120" Margin="0,1.5" Text="六个芙桃" />
|
||||||
|
<TextBlock Width="120" Margin="0,1.5" Text="月月月子喵" />
|
||||||
|
<TextBlock Width="120" Margin="0,1.5" Text="Kuang3lian" />
|
||||||
|
<TextBlock Width="120" Margin="0,1.5" Text="烨芽" />
|
||||||
|
<TextBlock Width="120" Margin="0,1.5" Text="王ZEAN" />
|
||||||
|
<TextBlock Width="120" Margin="0,1.5" Text="CCYY" />
|
||||||
|
<TextBlock Width="120" Margin="0,1.5" Text="19921454753" />
|
||||||
|
<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="绯念" />
|
||||||
|
<TextBlock Width="120" Margin="0,1.5" Text="PseudoStar" />
|
||||||
|
<TextBlock Width="120" Margin="0,1.5" Text="符之渡尘" />
|
||||||
|
<TextBlock Width="120" Margin="0,1.5" Text="singegg" />
|
||||||
|
<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="Horrizen" />
|
||||||
|
<TextBlock Width="120" Margin="0,1.5" Text="浮光" />
|
||||||
|
<TextBlock Width="120" Margin="0,1.5" Text="songhy" />
|
||||||
|
<TextBlock Width="120" Margin="0,1.5" Text="任我被回忆捉弄" />
|
||||||
|
<TextBlock Width="120" Margin="0,1.5" Text="飘飘ppiao" />
|
||||||
|
<TextBlock Width="120" Margin="0,1.5" Text="EnerG4" />
|
||||||
|
<TextBlock Width="120" Margin="0,1.5" Text="tiredl" />
|
||||||
|
<TextBlock Width="120" Margin="0,1.5" Text="有梦想的罐头" />
|
||||||
|
<TextBlock Width="120" Margin="0,1.5" Text="Hasturnyth" />
|
||||||
|
<TextBlock Width="120" Margin="0,1.5" Text="犇犇" />
|
||||||
|
<TextBlock Width="120" Margin="0,1.5" Text="初晴" />
|
||||||
|
<TextBlock Width="120" Margin="0,1.5" Text="just ugly" />
|
||||||
|
<TextBlock Width="120" Margin="0,1.5" Text="宇ovo" />
|
||||||
|
<TextBlock Width="120" Margin="0,1.5" Text="斑马" />
|
||||||
|
<TextBlock Width="120" Margin="0,1.5" Text="? AXH" />
|
||||||
|
<TextBlock Width="120" Margin="0,1.5" Text="璃音233" />
|
||||||
|
<TextBlock Width="120" Margin="0,1.5" Text="凌源羡辰" />
|
||||||
|
<TextBlock Width="120" Margin="0,1.5" Text="雨巷" />
|
||||||
|
<TextBlock Width="120" Margin="0,1.5" Text="NoDoors" />
|
||||||
|
<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="凉城uwu" />
|
||||||
|
<TextBlock Width="120" Margin="0,1.5" Text="栀玖夕夏" />
|
||||||
|
<TextBlock Width="120" Margin="0,1.5" Text="X11aou" />
|
||||||
|
<TextBlock Width="120" Margin="0,1.5" Text="Bobo_s1" />
|
||||||
|
<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="kk" />
|
||||||
|
<TextBlock Width="120" Margin="0,1.5" Text="XDDDD" />
|
||||||
|
<TextBlock Width="120" Margin="0,1.5" Text="梵星" />
|
||||||
|
<TextBlock Width="120" Margin="0,1.5" Text="梦师A" />
|
||||||
|
<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="stone devil" />
|
||||||
|
<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="120" Margin="0,1.5" Text="ChuaLinyZ" />
|
||||||
|
<TextBlock Width="120" Margin="0,1.5" Text="墨依小夕" />
|
||||||
|
<TextBlock Width="120" Margin="0,1.5" Text="柚可喝" />
|
||||||
|
<TextBlock Width="120" Margin="0,1.5" Text="m1350096708" />
|
||||||
|
<TextBlock Width="120" Margin="0,1.5" Text="猫南北丶QAQ" />
|
||||||
|
<TextBlock Width="120" Margin="0,1.5" Text="此时彼刻" />
|
||||||
|
<TextBlock Width="120" Margin="0,1.5" Text="Yukino" />
|
||||||
|
<TextBlock Width="120" Margin="0,1.5" Text="Paveway" />
|
||||||
|
<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="DN_TheColdWinter" />
|
<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="Gim" />
|
<TextBlock Width="120" Margin="0,1.5" Text="Barb" />
|
||||||
<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="DiceA" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="zyx1998" />
|
<TextBlock Width="120" Margin="0,1.5" Text="朴振澈" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="阿龟" />
|
<TextBlock Width="120" Margin="0,1.5" Text="YinYang_SHI" />
|
||||||
<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="xc_xiaoxian" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="that month" />
|
<TextBlock Width="120" Margin="0,1.5" Text="playermin" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="Hipop" />
|
<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="Lunaunde" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="虐猫达人薛定谔" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="Superafei" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="范UP" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="cfgfnh" />
|
|
||||||
<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="cen_yi123456" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="折鹤z" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="吴风诗" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="MM775" />
|
|
||||||
<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="intogo" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="清初凉宫" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="时光回执" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="tangfg" />
|
|
||||||
<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="VERNON" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="このdioた" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="潜凉" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="Pinuo_0" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="被打穿的四号坦克" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="太微" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="Suspect" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="龙舞猫跃" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="Lotus" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="薄暮之国的希里斯" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="Stone0829" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="古冰语" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="甲申道格" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="Percy" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="传说中的山羊" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="TARDIS" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="dawa" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="轻梦" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="景景景景景景色分明" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="yaemikosdog" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="乜常青" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="TMOFFMY" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="参差荇菜" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="At sea" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="MRailgun" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="mason_73" />
|
|
||||||
<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="BartenderJ" />
|
|
||||||
<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="Amorcks" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="陌生少年" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="hh-245" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="wang" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="魔鬼Devil_Tenth" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="星辰追梦者" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="caicai7162" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="redccol" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="Zero_z1" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="上玄天" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="老师看我毕设惊了" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="32cc" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="上条真" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="天宇灵TUL" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="龙猫的狗" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="瀚海生辉" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="Truman" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="TianChi_廻天" />
|
|
||||||
<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="mofacker" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="炎羽尘歌" />
|
|
||||||
</WrapPanel>
|
</WrapPanel>
|
||||||
<Grid Height="35">
|
<Grid Height="35">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
|
|||||||
@@ -54,31 +54,29 @@
|
|||||||
<RowDefinition Height="7" />
|
<RowDefinition Height="7" />
|
||||||
<RowDefinition Height="28" />
|
<RowDefinition Height="28" />
|
||||||
<RowDefinition Height="7" />
|
<RowDefinition Height="7" />
|
||||||
<RowDefinition Height="28" />
|
|
||||||
<RowDefinition Height="7" />
|
|
||||||
<RowDefinition Height="Auto" />
|
<RowDefinition Height="Auto" />
|
||||||
</Grid.RowDefinitions>
|
</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: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="仅在官方源加载缓慢时改用镜像源" />
|
||||||
<local:MyComboBoxItem Content="尽量使用官方源" IsSelected="True" />
|
<local:MyComboBoxItem Content="尽量使用官方源" IsSelected="True" />
|
||||||
</local:MyComboBox>
|
</local:MyComboBox>-->
|
||||||
<TextBlock Grid.Row="2" 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 Grid.Row="2" x:Name="ComboDownloadTranslate" Grid.ColumnSpan="2" Tag="ToolDownloadTranslate" Grid.Column="1"
|
<local:MyComboBox Grid.Row="0" x:Name="ComboDownloadTranslate" Grid.ColumnSpan="2" Tag="ToolDownloadTranslate" Grid.Column="1"
|
||||||
ToolTip="下载 Mod 时,Mod 的默认文件名中,中文译名应该放在哪个位置">
|
ToolTip="下载 Mod 时,Mod 的默认文件名中,中文译名应该放在哪个位置">
|
||||||
<local:MyComboBoxItem Content="译名位于文件名开头:[遗物] relics-0.1.14" IsSelected="True" />
|
<local:MyComboBoxItem Content="译名位于文件名开头:[遗物] relics-0.1.14" IsSelected="True" />
|
||||||
<local:MyComboBoxItem Content="译名位于文件名开头:遗物-relics-0.1.14" />
|
<local:MyComboBoxItem Content="译名位于文件名开头:遗物-relics-0.1.14" />
|
||||||
<local:MyComboBoxItem Content="译名位于文件名末尾:relics-0.1.14-遗物" />
|
<local:MyComboBoxItem Content="译名位于文件名末尾:relics-0.1.14-遗物" />
|
||||||
<local:MyComboBoxItem Content="不添加中文译名:relics-0.1.14" />
|
<local:MyComboBoxItem Content="不添加中文译名:relics-0.1.14" />
|
||||||
</local:MyComboBox>
|
</local:MyComboBox>
|
||||||
<TextBlock Grid.Row="4" VerticalAlignment="Center" HorizontalAlignment="Left" Text="Mod 管理样式" Margin="0,0,25,0" />
|
<TextBlock Grid.Row="2" 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"
|
<local:MyComboBox Grid.Row="2" x:Name="ComboModLocalNameStyle" Grid.ColumnSpan="2" Tag="ToolModLocalNameStyle" Grid.Column="1"
|
||||||
ToolTip="在 Mod 管理页面中,Mod 项的显示方式">
|
ToolTip="在 Mod 管理页面中,Mod 项的显示方式">
|
||||||
<local:MyComboBoxItem Content="标题显示译名,详情显示文件名" IsSelected="True" />
|
<local:MyComboBoxItem Content="标题显示译名,详情显示文件名" IsSelected="True" />
|
||||||
<local:MyComboBoxItem Content="标题显示文件名,详情显示译名" />
|
<local:MyComboBoxItem Content="标题显示文件名,详情显示译名" />
|
||||||
</local:MyComboBox>
|
</local:MyComboBox>
|
||||||
<local:MyCheckBox Margin="0,2,0,4" Text="显示 Mod 加载器时忽略 Quilt" Grid.Row="6" Height="22" Grid.ColumnSpan="2"
|
<local:MyCheckBox Margin="0,2,0,4" Text="显示 Mod 加载器时忽略 Quilt" Grid.Row="4" Height="22" Grid.ColumnSpan="2"
|
||||||
x:Name="CheckDownloadIgnoreQuilt" Tag="ToolDownloadIgnoreQuilt" />
|
x:Name="CheckDownloadIgnoreQuilt" Tag="ToolDownloadIgnoreQuilt" />
|
||||||
</Grid>
|
</Grid>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|||||||
@@ -34,7 +34,7 @@
|
|||||||
|
|
||||||
'Mod 与整合包
|
'Mod 与整合包
|
||||||
ComboDownloadTranslate.SelectedIndex = Setup.Get("ToolDownloadTranslate")
|
ComboDownloadTranslate.SelectedIndex = Setup.Get("ToolDownloadTranslate")
|
||||||
ComboDownloadMod.SelectedIndex = Setup.Get("ToolDownloadMod")
|
'ComboDownloadMod.SelectedIndex = Setup.Get("ToolDownloadMod")
|
||||||
ComboModLocalNameStyle.SelectedIndex = Setup.Get("ToolModLocalNameStyle")
|
ComboModLocalNameStyle.SelectedIndex = Setup.Get("ToolModLocalNameStyle")
|
||||||
CheckDownloadIgnoreQuilt.Checked = Setup.Get("ToolDownloadIgnoreQuilt")
|
CheckDownloadIgnoreQuilt.Checked = Setup.Get("ToolDownloadIgnoreQuilt")
|
||||||
|
|
||||||
@@ -96,7 +96,7 @@
|
|||||||
Private Shared Sub SliderChange(sender As MySlider, e As Object) Handles SliderDebugAnim.Change, SliderDownloadThread.Change, SliderDownloadSpeed.Change
|
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)
|
If AniControlEnabled = 0 Then Setup.Set(sender.Tag, sender.Value)
|
||||||
End Sub
|
End Sub
|
||||||
Private Shared Sub ComboChange(sender As MyComboBox, e As Object) Handles ComboDownloadVersion.SelectionChanged, ComboModLocalNameStyle.SelectionChanged, ComboDownloadTranslate.SelectionChanged, ComboSystemUpdate.SelectionChanged, ComboSystemActivity.SelectionChanged, ComboDownloadMod.SelectionChanged
|
Private Shared Sub ComboChange(sender As MyComboBox, e As Object) Handles ComboDownloadVersion.SelectionChanged, ComboModLocalNameStyle.SelectionChanged, ComboDownloadTranslate.SelectionChanged, ComboSystemUpdate.SelectionChanged, ComboSystemActivity.SelectionChanged
|
||||||
If AniControlEnabled = 0 Then Setup.Set(sender.Tag, sender.SelectedIndex)
|
If AniControlEnabled = 0 Then Setup.Set(sender.Tag, sender.SelectedIndex)
|
||||||
End Sub
|
End Sub
|
||||||
Private Shared Sub TextBoxChange(sender As MyTextBox, e As Object) Handles TextSystemCache.ValidatedTextChanged
|
Private Shared Sub TextBoxChange(sender As MyTextBox, e As Object) Handles TextSystemCache.ValidatedTextChanged
|
||||||
|
|||||||
@@ -245,7 +245,7 @@
|
|||||||
<local:MyComboBoxItem Content="Minecraft 皮肤推荐(作者:wkea)" />
|
<local:MyComboBoxItem Content="Minecraft 皮肤推荐(作者:wkea)" />
|
||||||
<local:MyComboBoxItem Content="OpenBMCLAPI 仪表盘 Lite(作者:Silverteal、Mxmilu666)" />
|
<local:MyComboBoxItem Content="OpenBMCLAPI 仪表盘 Lite(作者:Silverteal、Mxmilu666)" />
|
||||||
<local:MyComboBoxItem Content="PCL 主页市场(作者:凌云)" />
|
<local:MyComboBoxItem Content="PCL 主页市场(作者:凌云)" />
|
||||||
<local:MyComboBoxItem Content="PCL 更新日志(作者:Joker2184)" />
|
<local:MyComboBoxItem Content="PCL 新闻速报(作者:Joker2184)" />
|
||||||
<local:MyComboBoxItem Content="PCL 新功能说明书(作者:WForst-Breeze)" />
|
<local:MyComboBoxItem Content="PCL 新功能说明书(作者:WForst-Breeze)" />
|
||||||
<local:MyComboBoxItem Content="OpenMCIM 仪表盘(作者:SALTWOOD)" />
|
<local:MyComboBoxItem Content="OpenMCIM 仪表盘(作者:SALTWOOD)" />
|
||||||
<local:MyComboBoxItem Content="杂志主页(作者:CreeperIsASpy)" />
|
<local:MyComboBoxItem Content="杂志主页(作者:CreeperIsASpy)" />
|
||||||
|
|||||||
@@ -42,8 +42,8 @@
|
|||||||
'设置解锁
|
'设置解锁
|
||||||
If Not RadioLauncherTheme8.IsEnabled Then LabLauncherTheme8Copy.ToolTip = "累积赞助达到 ¥23.33 后,在爱发电私信发送【解锁码】以解锁。" & vbCrLf & "右键打开赞助页面,如果觉得 PCL 做得还不错就支持一下吧 =w=!"
|
If Not RadioLauncherTheme8.IsEnabled Then LabLauncherTheme8Copy.ToolTip = "累积赞助达到 ¥23.33 后,在爱发电私信发送【解锁码】以解锁。" & vbCrLf & "右键打开赞助页面,如果觉得 PCL 做得还不错就支持一下吧 =w=!"
|
||||||
RadioLauncherTheme8.ToolTip = "累积赞助达到 ¥23.33 后,在爱发电私信发送【解锁码】以解锁"
|
RadioLauncherTheme8.ToolTip = "累积赞助达到 ¥23.33 后,在爱发电私信发送【解锁码】以解锁"
|
||||||
If Not RadioLauncherTheme9.IsEnabled Then LabLauncherTheme9Copy.ToolTip = "· 反馈一个 Bug,在标记为 [完成] 后回复识别码要求解锁(右键打开反馈页面)" & vbCrLf & "· 提交一个 Pull Request,在合并后回复识别码要求解锁"
|
If Not RadioLauncherTheme9.IsEnabled Then LabLauncherTheme9Copy.ToolTip = "· 反馈一个 Bug,在标记为 [完成] 后回复识别码要求解锁(右键打开反馈页面)" & vbCrLf & "· 提交一个 Pull Request 或主页预设,在标记为 [完成] 后回复识别码要求解锁"
|
||||||
RadioLauncherTheme9.ToolTip = "· 反馈一个 Bug,在标记为 [完成] 后回复识别码要求解锁" & vbCrLf & "· 提交一个 Pull Request,在合并后回复识别码要求解锁"
|
RadioLauncherTheme9.ToolTip = "· 反馈一个 Bug,在标记为 [完成] 后回复识别码要求解锁" & vbCrLf & "· 提交一个 Pull Request 或主页预设,在标记为 [完成] 后回复识别码要求解锁"
|
||||||
'极客蓝的处理在 ThemeCheck 中
|
'极客蓝的处理在 ThemeCheck 中
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|||||||
@@ -356,12 +356,12 @@
|
|||||||
Install:
|
Install:
|
||||||
Try
|
Try
|
||||||
For Each ModFile In FilePathList
|
For Each ModFile In FilePathList
|
||||||
Dim NewFileName = GetFileNameFromPath(ModFile).Replace(".disabled", "")
|
Dim NewFileName = GetFileNameFromPath(ModFile).Replace(".disabled", "").Replace(".old", "")
|
||||||
If Not NewFileName.Contains(".") Then NewFileName += ".jar" '#4227
|
If Not NewFileName.Contains(".") Then NewFileName += ".jar" '#4227
|
||||||
CopyFile(ModFile, TargetVersion.PathIndie & "mods\" & NewFileName)
|
CopyFile(ModFile, TargetVersion.PathIndie & "mods\" & NewFileName)
|
||||||
Next
|
Next
|
||||||
If FilePathList.Count = 1 Then
|
If FilePathList.Count = 1 Then
|
||||||
Hint($"已安装 {GetFileNameFromPath(FilePathList.First).Replace(".disabled", "")}!", HintType.Finish)
|
Hint($"已安装 {GetFileNameFromPath(FilePathList.First).Replace(".disabled", "").Replace(".old", "")}!", HintType.Finish)
|
||||||
Else
|
Else
|
||||||
Hint($"已安装 {FilePathList.Count} 个 Mod!", HintType.Finish)
|
Hint($"已安装 {FilePathList.Count} 个 Mod!", HintType.Finish)
|
||||||
End If
|
End If
|
||||||
@@ -388,7 +388,7 @@ Install:
|
|||||||
|
|
||||||
#Region "选择"
|
#Region "选择"
|
||||||
|
|
||||||
'选择的 Mod 的路径(不含 .disabled)
|
'选择的 Mod 的路径(不含 .disabled 和 .old)
|
||||||
Public SelectedMods As New List(Of String)
|
Public SelectedMods As New List(Of String)
|
||||||
|
|
||||||
'单项切换选择状态
|
'单项切换选择状态
|
||||||
|
|||||||
Binary file not shown.
@@ -48,14 +48,15 @@
|
|||||||
自动缩放。Windows Presentation Foundation (WPF)应用程序自动感知 DPI,无需
|
自动缩放。Windows Presentation Foundation (WPF)应用程序自动感知 DPI,无需
|
||||||
选择加入。选择加入此设置的 Windows 窗体应用程序(目标设定为 .NET Framework 4.6 )还应
|
选择加入。选择加入此设置的 Windows 窗体应用程序(目标设定为 .NET Framework 4.6 )还应
|
||||||
在其 app.config 中将 "EnableWindowsFormsHighDpiAutoResizing" 设置设置为 "true"。-->
|
在其 app.config 中将 "EnableWindowsFormsHighDpiAutoResizing" 设置设置为 "true"。-->
|
||||||
|
<!-- 更改原因见 #5337 -->
|
||||||
<application xmlns="urn:schemas-microsoft-com:asm.v3">
|
<application xmlns="urn:schemas-microsoft-com:asm.v3">
|
||||||
<windowsSettings>
|
<windowsSettings>
|
||||||
<!-- The combination of below two tags have the following effect :
|
<!-- The combination of below two tags have the following effect :
|
||||||
1. Per-Monitor for >= Windows 10 Anniversary Update
|
1. Per-Monitor for >= Windows 10 Anniversary Update
|
||||||
2. System < Windows 10 Anniversary Update -->
|
2. System < Windows 10 Anniversary Update -->
|
||||||
<dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitorV2</dpiAwareness>
|
<dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitorV2</dpiAwareness>
|
||||||
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
|
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
|
||||||
</windowsSettings>
|
</windowsSettings>
|
||||||
</application>
|
</application>
|
||||||
|
|
||||||
<!-- 启用 Windows 公共控件和对话框的主题(Windows XP 和更高版本) -->
|
<!-- 启用 Windows 公共控件和对话框的主题(Windows XP 和更高版本) -->
|
||||||
|
|||||||
Reference in New Issue
Block a user