diff --git a/Plain Craft Launcher 2/App.config b/Plain Craft Launcher 2/App.config
index 57f4dae..37eb10c 100644
--- a/Plain Craft Launcher 2/App.config
+++ b/Plain Craft Launcher 2/App.config
@@ -9,8 +9,8 @@
-
-
+
+
diff --git a/Plain Craft Launcher 2/FormMain.xaml.vb b/Plain Craft Launcher 2/FormMain.xaml.vb
index 9f6b2f2..69191e1 100644
--- a/Plain Craft Launcher 2/FormMain.xaml.vb
+++ b/Plain Craft Launcher 2/FormMain.xaml.vb
@@ -90,6 +90,13 @@ Public Class FormMain
'3:BUG+ IMP* FEAT-
'2:BUG* IMP-
'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 = 345 Then FeatureList.Add(New KeyValuePair(Of Integer, String)(1, "修复帮助页面报错的 Bug"))
End If
diff --git a/Plain Craft Launcher 2/Modules/Base/ModBase.vb b/Plain Craft Launcher 2/Modules/Base/ModBase.vb
index e35880f..2f92233 100644
--- a/Plain Craft Launcher 2/Modules/Base/ModBase.vb
+++ b/Plain Craft Launcher 2/Modules/Base/ModBase.vb
@@ -12,13 +12,13 @@ Public Module ModBase
#Region "声明"
'下列版本信息由更新器自动修改
- Public Const VersionBaseName As String = "2.8.12" '不含分支前缀的显示用版本名
- Public Const VersionStandardCode As String = "2.8.12." & VersionBranchCode '标准格式的四段式版本号
+ Public Const VersionBaseName As String = "2.8.13" '不含分支前缀的显示用版本名
+ Public Const VersionStandardCode As String = "2.8.13." & VersionBranchCode '标准格式的四段式版本号
Public Const CommitHash As String = "" 'Commit Hash,由 GitHub Workflow 自动替换
#If BETA Then
Public Const VersionCode As Integer = 347 'Release
#Else
- Public Const VersionCode As Integer = 346 'Snapshot
+ Public Const VersionCode As Integer = 348 'Snapshot
#End If
'自动生成的版本信息
Public Const VersionDisplayName As String = VersionBranchName & " " & VersionBaseName
@@ -1975,13 +1975,12 @@ RetryDir:
End Function
'''
- ''' 判断当前系统语言是否为中文(中国大陆)。
+ ''' 判断当前系统语言是否为 zh-CN。
'''
Public Function IsSystemLanguageChinese() As Boolean
Return CultureInfo.CurrentCulture.Name = "zh-CN" OrElse CultureInfo.CurrentUICulture.Name = "zh-CN"
End Function
-
Private Uuid As Integer = 1
Private UuidLock As Object
'''
@@ -2865,4 +2864,4 @@ Retry:
#End Region
-End Module
+End Module
\ No newline at end of file
diff --git a/Plain Craft Launcher 2/Modules/Base/ModNet.vb b/Plain Craft Launcher 2/Modules/Base/ModNet.vb
index f046d34..f482a8a 100644
--- a/Plain Craft Launcher 2/Modules/Base/ModNet.vb
+++ b/Plain Craft Launcher 2/Modules/Base/ModNet.vb
@@ -1819,6 +1819,7 @@ Retry:
Private Sub RefreshStat()
Try
Dim DeltaTime As Long = GetTimeTick() - RefreshStatLast
+ If DeltaTime = 0 Then Return
RefreshStatLast += DeltaTime
#Region "刷新整体速度"
'计算瞬时速度
@@ -1884,7 +1885,7 @@ Retry:
For Each File As NetFile In WaitingFiles
If NetTaskThreadCount >= NetTaskThreadLimit Then Continue While '最大线程数检查
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
'为进行中的文件追加线程
If Speed >= NetTaskSpeedLimitLow Then Continue While '下载速度足够,无需新增
@@ -1904,7 +1905,7 @@ Retry:
'新增线程
If PreparingCount > DownloadingCount Then Continue For '准备中的线程已多于下载中的线程,不再新增
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
End While
Catch ex As Exception
diff --git a/Plain Craft Launcher 2/Modules/Minecraft/ModComp.vb b/Plain Craft Launcher 2/Modules/Minecraft/ModComp.vb
index 6723976..ebc9313 100644
--- a/Plain Craft Launcher 2/Modules/Minecraft/ModComp.vb
+++ b/Plain Craft Launcher 2/Modules/Minecraft/ModComp.vb
@@ -434,11 +434,8 @@
Public Function ToCompItem(ShowMcVersionDesc As Boolean, ShowLoaderDesc As Boolean) As MyCompItem
'获取版本描述
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 AllSnapshot Then
- GameVersionDescription = "仅快照版本"
- ElseIf GameVersions Is Nothing OrElse Not GameVersions.Any() Then
- GameVersionDescription = "未知"
+ If GameVersions Is Nothing OrElse Not GameVersions.Any() Then
+ GameVersionDescription = "仅快照版本" '#5412
Else
Dim SpaVersions As New List(Of String)
Dim IsOld As Boolean = False
@@ -496,17 +493,11 @@
ModLoaderDescriptionFull = "仅 " & ModLoadersForDesc.Single.ToString
ModLoaderDescriptionPart = ModLoadersForDesc.Single.ToString
Case Else
- If ModLoaders.Contains(CompModLoaderType.Forge) AndAlso Not AllSnapshot AndAlso
- (GameVersions.Max < 14 OrElse ModLoaders.Contains(CompModLoaderType.Fabric)) AndAlso
- (GameVersions.Max < 20 OrElse ModLoaders.Contains(CompModLoaderType.NeoForge)) AndAlso
- (GameVersions.Max < 14 OrElse ModLoaders.Contains(CompModLoaderType.Quilt) OrElse Setup.Get("ToolDownloadIgnoreQuilt")) Then
- ModLoaderDescriptionFull = "任意"
- 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
+ Dim MaxVersion As Integer = If(GameVersions.Any, GameVersions.Max, 99)
+ If ModLoaders.Contains(CompModLoaderType.Forge) AndAlso
+ (MaxVersion < 14 OrElse ModLoaders.Contains(CompModLoaderType.Fabric)) AndAlso
+ (MaxVersion < 20 OrElse ModLoaders.Contains(CompModLoaderType.NeoForge)) AndAlso
+ (MaxVersion < 14 OrElse ModLoaders.Contains(CompModLoaderType.Quilt) OrElse Setup.Get("ToolDownloadIgnoreQuilt")) Then
ModLoaderDescriptionFull = "任意"
ModLoaderDescriptionPart = ""
Else
@@ -1083,7 +1074,7 @@ Retry:
If RealResults.Count + Storage.Results.Count < Task.Input.TargetResultCount Then
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] 将继续尝试加载下一页")
GoTo Retry
Else
@@ -1491,10 +1482,8 @@ Retry:
If Deps.Any Then
For Each DepProject In Deps.Where(Function(id) CompProjectCache.ContainsKey(id)).Select(Function(id) CompProjectCache(id))
For Each File In CompFilesCache(ProjectId)
- If File.RawDependencies.Contains(DepProject.Id) AndAlso
- DepProject.Id <> ProjectId AndAlso
- Not File.Dependencies.Contains(DepProject.Id) Then
- File.Dependencies.Add(DepProject.Id)
+ If File.RawDependencies.Contains(DepProject.Id) AndAlso DepProject.Id <> ProjectId Then
+ If Not File.Dependencies.Contains(DepProject.Id) Then File.Dependencies.Add(DepProject.Id)
End If
Next
Next
diff --git a/Plain Craft Launcher 2/Modules/Minecraft/ModDownload.vb b/Plain Craft Launcher 2/Modules/Minecraft/ModDownload.vb
index 81c1a66..2e23da0 100644
--- a/Plain Craft Launcher 2/Modules/Minecraft/ModDownload.vb
+++ b/Plain Craft Launcher 2/Modules/Minecraft/ModDownload.vb
@@ -1098,39 +1098,27 @@
''' 调用 NetGetCodeByRequest。
'''
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))
- If McimUrl <> Url Then
- Select Case Setup.Get("ToolDownloadMod")
- 'TODO: 在 MCIM 源稳定后回调
- Case 0
- If ModeDebug Then
- Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 10))
- Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 20))
- Urls.Add(New KeyValuePair(Of String, Integer)(Url, 30))
- Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 60))
- Urls.Add(New KeyValuePair(Of String, Integer)(Url, 60))
- Else
- Urls.Add(New KeyValuePair(Of String, Integer)(Url, 5))
- Urls.Add(New KeyValuePair(Of String, Integer)(Url, 20))
- 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))
- End If
- Case 1
- Urls.Add(New KeyValuePair(Of String, Integer)(Url, 5))
- Urls.Add(New KeyValuePair(Of String, Integer)(Url, 20))
- 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
+ Urls.Add(New KeyValuePair(Of String, Integer)(Url, 5))
+ Urls.Add(New KeyValuePair(Of String, Integer)(Url, 15))
+ 'Dim McimUrl As String = DlSourceModGet(Url)
+ 'If McimUrl <> Url Then
+ ' Select Case Setup.Get("ToolDownloadMod")
+ ' Case 0
+ ' Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 5))
+ ' Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 10))
+ ' Urls.Add(New KeyValuePair(Of String, Integer)(Url, 15))
+ ' Case 1
+ ' 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, 15))
+ ' Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 10))
+ ' Case Else
+ ' Urls.Add(New KeyValuePair(Of String, Integer)(Url, 5))
+ ' Urls.Add(New KeyValuePair(Of String, Integer)(Url, 15))
+ ' Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 10))
+ ' End Select
+ 'End If
Dim Exs As String = ""
For Each Source In Urls
Try
@@ -1147,39 +1135,27 @@
''' 调用 NetRequest。
'''
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))
- If McimUrl <> Url Then
- Select Case Setup.Get("ToolDownloadMod")
- 'TODO: 在 MCIM 源稳定后回调
- Case 0
- If ModeDebug Then
- Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 10))
- Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 20))
- Urls.Add(New KeyValuePair(Of String, Integer)(Url, 30))
- Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 60))
- Urls.Add(New KeyValuePair(Of String, Integer)(Url, 60))
- Else
- Urls.Add(New KeyValuePair(Of String, Integer)(Url, 5))
- Urls.Add(New KeyValuePair(Of String, Integer)(Url, 20))
- 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))
- End If
- Case 1
- Urls.Add(New KeyValuePair(Of String, Integer)(Url, 5))
- Urls.Add(New KeyValuePair(Of String, Integer)(Url, 20))
- 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
+ Urls.Add(New KeyValuePair(Of String, Integer)(Url, 5))
+ Urls.Add(New KeyValuePair(Of String, Integer)(Url, 15))
+ 'Dim McimUrl As String = DlSourceModGet(Url)
+ 'If McimUrl <> Url Then
+ ' Select Case Setup.Get("ToolDownloadMod")
+ ' Case 0
+ ' Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 5))
+ ' Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 10))
+ ' Urls.Add(New KeyValuePair(Of String, Integer)(Url, 15))
+ ' Case 1
+ ' 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, 15))
+ ' Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 10))
+ ' Case Else
+ ' Urls.Add(New KeyValuePair(Of String, Integer)(Url, 5))
+ ' Urls.Add(New KeyValuePair(Of String, Integer)(Url, 15))
+ ' Urls.Add(New KeyValuePair(Of String, Integer)(McimUrl, 10))
+ ' End Select
+ 'End If
Dim Exs As String = ""
For Each Source In Urls
Try
@@ -1207,28 +1183,42 @@
End Function
Public Function DlSourceLibraryGet(Original As String) As String()
- 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
- }
+ If {"minecraftforge", "fabricmc", "neoforged"}.Any(Function(k) Original.Contains(k)) Then '不添加原版源
+ 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")
+ }
+ 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
Public Function DlSourceModGet(Original As String) As String
- Return Original.
- Replace("api.modrinth.com", "mod.mcimirror.top/modrinth").
- Replace("staging-api.modrinth.com", "mod.mcimirror.top/modrinth").
- Replace("cdn.modrinth.com", "mod.mcimirror.top").
- Replace("api.curseforge.com", "mod.mcimirror.top/curseforge").
- Replace("edge.forgecdn.net", "mod.mcimirror.top").
- Replace("mediafilez.forgecdn.net", "mod.mcimirror.top").
- Replace("media.forgecdn.net", "mod.mcimirror.top")
+ Return Original
+ 'Return Original.
+ ' Replace("api.modrinth.com", "mod.mcimirror.top/modrinth").
+ ' Replace("staging-api.modrinth.com", "mod.mcimirror.top/modrinth").
+ ' Replace("cdn.modrinth.com", "mod.mcimirror.top").
+ ' Replace("api.curseforge.com", "mod.mcimirror.top/curseforge").
+ ' Replace("edge.forgecdn.net", "mod.mcimirror.top").
+ ' Replace("mediafilez.forgecdn.net", "mod.mcimirror.top").
+ ' Replace("media.forgecdn.net", "mod.mcimirror.top")
End Function
Public Function DlSourceLauncherOrMetaGet(Original As String) As String()
diff --git a/Plain Craft Launcher 2/Modules/Minecraft/ModLaunch.vb b/Plain Craft Launcher 2/Modules/Minecraft/ModLaunch.vb
index 83e8c7d..d1df8ee 100644
--- a/Plain Craft Launcher 2/Modules/Minecraft/ModLaunch.vb
+++ b/Plain Craft Launcher 2/Modules/Minecraft/ModLaunch.vb
@@ -236,15 +236,18 @@ NextInner:
'正版购买提示
If Not Setup.Get("HintBuy") AndAlso Setup.Get("LoginType") <> McLoginType.Ms Then
If IsSystemLanguageChinese() Then
- Select Case Setup.Get("SystemLaunchCount")
- 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 &
- "如果觉得 Minecraft 还不错,可以购买正版支持一下,毕竟开发游戏也真的很不容易……不要一直白嫖啦。" & vbCrLf & vbCrLf &
- "在登录一次正版账号后,就不会再出现这个提示了!",
- "考虑一下正版?", "支持正版游戏!", "下次一定") = 1 Then
- OpenWebsite("https://www.xbox.com/zh-cn/games/store/minecraft-java-bedrock-edition-for-pc/9nxp44l49shj")
- End If
- End Select
+ RunInNewThread(
+ Sub()
+ Select Case Setup.Get("SystemLaunchCount")
+ 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 &
+ "如果觉得 Minecraft 还不错,可以购买正版支持一下,毕竟开发游戏也真的很不容易……不要一直白嫖啦。" & vbCrLf & vbCrLf &
+ "在登录一次正版账号后,就不会再出现这个提示了!",
+ "考虑一下正版?", "支持正版游戏!", "下次一定") = 1 Then
+ 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
Select Case MyMsgBox("你必须先登录正版账号,才能进行离线登录!", "正版验证", "购买正版", "试玩", "返回",
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 &
"title 启动 - " & McVersionCurrent.Name & vbCrLf &
"echo 游戏正在启动,请稍候。" & vbCrLf &
- "set APPDATA=""" & PathMcFolder & """" & vbCrLf &
- "cd /D """ & PathMcFolder & """" & vbCrLf &
+ "set APPDATA=""" & McVersionCurrent.PathIndie & """" & vbCrLf &
+ "cd /D """ & McVersionCurrent.PathIndie & """" & vbCrLf &
CustomCommandGlobal & vbCrLf &
CustomCommandVersion & vbCrLf &
"""" & McLaunchJavaSelected.PathJava & """ " & McLaunchArgument & vbCrLf &
diff --git a/Plain Craft Launcher 2/Modules/Minecraft/ModMinecraft.vb b/Plain Craft Launcher 2/Modules/Minecraft/ModMinecraft.vb
index 2d87c22..7a177e1 100644
--- a/Plain Craft Launcher 2/Modules/Minecraft/ModMinecraft.vb
+++ b/Plain Craft Launcher 2/Modules/Minecraft/ModMinecraft.vb
@@ -2037,8 +2037,12 @@ OnLoaded:
If Checker.Check(Token.LocalPath) Is Nothing Then Continue For
'文件不符合,添加下载
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
- '获取 Url 的真实地址
+ '获取 URL 的真实地址
Urls.Add(Token.Url)
If Token.Url.Contains("launcher.mojang.com/v1/objects") OrElse Token.Url.Contains("client.txt") OrElse
Token.Url.Contains(".tsrg") Then
@@ -2080,10 +2084,14 @@ OnLoaded:
McLibGet = If(WithHead, CustomMcFolder & "libraries\", "") &
Splited(0).Replace(".", "\") & "\" & Splited(1) & "\" & Splited(2) & "\" & Splited(1) & "-" & Splited(2) & ".jar"
'判断 OptiFine 是否应该使用 installer
- If McLibGet.Contains("optifine\OptiFine\1.12") AndAlso '仅在 1.12 OptiFine 可重现
- File.Exists(CustomMcFolder & "libraries\" & Splited(0).Replace(".", "\") & "\" & Splited(1) & "\" & Splited(2) & "\" & Splited(1) & "-" & Splited(2) & "-installer.jar") Then
- Log("[Launch] 已将 " & Original & " 特判替换为对应的 Installer 文件", LogLevel.Debug)
- McLibGet = McLibGet.Replace(".jar", "-installer.jar")
+ If McLibGet.Contains("optifine\OptiFine\1.") AndAlso Splited(2).Split(".").Count > 1 Then
+ Dim MajorVersion As Integer = Val(Splited(2).Split(".")(1))
+ Dim MinorVersion As Integer = If(Splited(2).Split(".").Count > 1, Val(Splited(2).Split(".")(2).BeforeFirst("_")), 0)
+ 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 Function
diff --git a/Plain Craft Launcher 2/Modules/Minecraft/ModModpack.vb b/Plain Craft Launcher 2/Modules/Minecraft/ModModpack.vb
index 487e0e6..da6550f 100644
--- a/Plain Craft Launcher 2/Modules/Minecraft/ModModpack.vb
+++ b/Plain Craft Launcher 2/Modules/Minecraft/ModModpack.vb
@@ -241,9 +241,7 @@ Retry:
'获取 Mod 下载信息
ModDownloadLoaders.Add(New LoaderTask(Of Integer, JArray)("获取 Mod 下载信息",
Sub(Task As LoaderTask(Of Integer, JArray))
- '由于 MCIM 缺少下载信息,只使用官方源获取列表
- 'TODO: 在 MCIM 源稳定后回调回 DlModRequest
- Task.Output = GetJson(NetRequestRetry("https://api.curseforge.com/v1/mods/files", "POST", "{""fileIds"": [" & Join(ModList, ",") & "]}", "application/json"))("data")
+ Task.Output = GetJson(DlModRequest("https://api.curseforge.com/v1/mods/files", "POST", "{""fileIds"": [" & Join(ModList, ",") & "]}", "application/json"))("data")
'如果文件已被删除,则 API 会跳过那一项
If ModList.Count > Task.Output.Count Then Throw New Exception("整合包中的部分 Mod 版本已被 Mod 作者删除,所以没法继续安装了,请向整合包作者反馈该问题")
End Sub) With {.ProgressWeight = ModList.Count / 10}) '每 10 Mod 需要 1s
@@ -798,14 +796,18 @@ Retry:
Thread.Sleep(400) '避免文件争用
'查找解压后的 exe 文件
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)
Log($"[Modpack] 文件 {ExeFile} 的产品名标识为 {Info.ProductName}")
If Info.ProductName = "Plain Craft Launcher" Then
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
- If Launcher Is Nothing Then Launcher = ExeFile
+ If Launcher Is Nothing Then
+ Launcher = ExeFile
+ Log($"[Modpack] 发现整合包附带的疑似第三方启动器:{ExeFile}")
+ End If
End If
Next
Task.Progress = 0.95
diff --git a/Plain Craft Launcher 2/Modules/Minecraft/MyLocalModItem.xaml.vb b/Plain Craft Launcher 2/Modules/Minecraft/MyLocalModItem.xaml.vb
index 9acbea9..a7bc54b 100644
--- a/Plain Craft Launcher 2/Modules/Minecraft/MyLocalModItem.xaml.vb
+++ b/Plain Craft Launcher 2/Modules/Minecraft/MyLocalModItem.xaml.vb
@@ -137,18 +137,14 @@ Public Class MyLocalModItem
Exit Sub
End If
'计算滑动范围
- Dim Index = CType(Parent, StackPanel).Children.IndexOf(Me)
- If Index < 0 OrElse Index >= CType(Parent, StackPanel).Children.Count Then Exit Sub
- SwipeStart = Math.Min(SwipeStart, Index)
- SwipeEnd = Math.Max(SwipeEnd, Index)
- 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
+ Dim Elements = CType(Parent, StackPanel).Children
+ Dim Index As Integer = Elements.IndexOf(Me)
+ SwipeStart = MathClamp(Math.Min(SwipeStart, Index), 0, Elements.Count - 1)
+ SwipeEnd = MathClamp(Math.Max(SwipeEnd, Index), 0, Elements.Count - 1)
'勾选所有范围中的项
If SwipeStart = SwipeEnd Then Exit Sub
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.Checked = SwipToState
Next
@@ -466,8 +462,11 @@ Public Class MyLocalModItem
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
+ ShowUpdateLog()
+ End Sub
+ Private Sub ShowUpdateLog()
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"))
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
- If MyMsgBox($"是否要更新 {Entry.Name}?{vbCrLf}{vbCrLf}{GetUpdateCompareDescription()}", "Mod 更新确认", "更新", "取消") = 2 Then Return
- FrmVersionMod.UpdateMods({Entry})
+ Select Case MyMsgBox($"是否要更新 {Entry.Name}?{vbCrLf}{vbCrLf}{GetUpdateCompareDescription()}", "Mod 更新确认", "更新", "查看更新日志", "取消")
+ Case 1 '更新
+ FrmVersionMod.UpdateMods({Entry})
+ Case 2 '查看更新日志
+ ShowUpdateLog()
+ Case 3 '取消
+ End Select
End Sub
'自适应(#4465)
diff --git a/Plain Craft Launcher 2/Modules/ModDevelop.vb b/Plain Craft Launcher 2/Modules/ModDevelop.vb
index 8f630e5..b1eb6f0 100644
--- a/Plain Craft Launcher 2/Modules/ModDevelop.vb
+++ b/Plain Craft Launcher 2/Modules/ModDevelop.vb
@@ -1,3 +1,8 @@
Public Module ModDevelop
+#If DEBUG Then
+ Public Sub Start()
+ End Sub
+#End If
+
End Module
diff --git a/Plain Craft Launcher 2/My Project/AssemblyInfo.vb b/Plain Craft Launcher 2/My Project/AssemblyInfo.vb
index 5f7dcd9..f678bce 100644
--- a/Plain Craft Launcher 2/My Project/AssemblyInfo.vb
+++ b/Plain Craft Launcher 2/My Project/AssemblyInfo.vb
@@ -51,6 +51,6 @@ Imports System.Runtime.InteropServices
' 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
' 方法是按如下所示使用“*”
-
-
+
+
diff --git a/Plain Craft Launcher 2/Pages/PageDownload/ModDownloadLib.vb b/Plain Craft Launcher 2/Pages/PageDownload/ModDownloadLib.vb
index ff7ec51..79704cb 100644
--- a/Plain Craft Launcher 2/Pages/PageDownload/ModDownloadLib.vb
+++ b/Plain Craft Launcher 2/Pages/PageDownload/ModDownloadLib.vb
@@ -1353,7 +1353,7 @@ Retry:
'去除其中的原始 Forgelike 项
For i = 0 To Libs.Count - 1
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)
Libs.RemoveAt(i)
Exit For
diff --git a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadCompDetail.xaml b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadCompDetail.xaml
index 1d16b98..3a52922 100644
--- a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadCompDetail.xaml
+++ b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadCompDetail.xaml
@@ -9,7 +9,6 @@
-
diff --git a/Plain Craft Launcher 2/Pages/PageLaunch/MySkin.xaml.vb b/Plain Craft Launcher 2/Pages/PageLaunch/MySkin.xaml.vb
index 9660a64..e860b13 100644
--- a/Plain Craft Launcher 2/Pages/PageLaunch/MySkin.xaml.vb
+++ b/Plain Craft Launcher 2/Pages/PageLaunch/MySkin.xaml.vb
@@ -242,7 +242,7 @@ Retry:
{"Vanilla", "原版披风"}, {"Minecon2011", "Minecon 2011 参与者披风"}, {"Minecon2012", "Minecon 2012 参与者披风"},
{"Minecon2013", "Minecon 2013 参与者披风"}, {"Minecon2015", "Minecon 2015 参与者披风"}, {"Minecon2016", "Minecon 2016 参与者披风"},
{"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 办公室披风"}
}
Dim SelectionControl As New List(Of IMyRadio) From {New MyRadioBox With {.Text = "无披风"}}
diff --git a/Plain Craft Launcher 2/Pages/PageLaunch/PageLaunchRight.xaml.vb b/Plain Craft Launcher 2/Pages/PageLaunch/PageLaunchRight.xaml.vb
index 595aecb..3a8643c 100644
--- a/Plain Craft Launcher 2/Pages/PageLaunch/PageLaunchRight.xaml.vb
+++ b/Plain Craft Launcher 2/Pages/PageLaunch/PageLaunchRight.xaml.vb
@@ -109,11 +109,11 @@ Download:
GoTo Download
Case 7
Log("[Page] 主页预设:主页市场")
- Url = "https://homepage-market.pages.dev/Custom.xaml"
+ Url = "https://pclhomeplazaoss.lingyunawa.top:26994/d/Homepages/JingHai-Lingyun/Custom.xaml"
GoTo Download
Case 8
Log("[Page] 主页预设:更新日志")
- Url = "https://updatehomepage.pages.dev/UpdateHomepage.xaml"
+ Url = "https://pclhomeplazaoss.lingyunawa.top:26994/d/Homepages/Joker2184/UpdateHomepage.xaml"
GoTo Download
Case 9
Log("[Page] 主页预设:PCL 新功能说明书")
@@ -125,7 +125,7 @@ Download:
GoTo Download
Case 11
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
End Select
End Select
diff --git a/Plain Craft Launcher 2/Pages/PageLaunch/PageLoginLegacy.xaml.vb b/Plain Craft Launcher 2/Pages/PageLaunch/PageLoginLegacy.xaml.vb
index ed91684..dc1c043 100644
--- a/Plain Craft Launcher 2/Pages/PageLaunch/PageLoginLegacy.xaml.vb
+++ b/Plain Craft Launcher 2/Pages/PageLaunch/PageLoginLegacy.xaml.vb
@@ -44,6 +44,11 @@ Public Class PageLoginLegacy
Public Shared Function IsVaild(LoginData As McLoginLegacy) As String
If LoginData.UserName.Trim = "" 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 ""
End Function
Public Function IsVaild() As String
diff --git a/Plain Craft Launcher 2/Pages/PageOther/PageOtherAbout.xaml b/Plain Craft Launcher 2/Pages/PageOther/PageOtherAbout.xaml
index 8142163..431ddfd 100644
--- a/Plain Craft Launcher 2/Pages/PageOther/PageOtherAbout.xaml
+++ b/Plain Craft Launcher 2/Pages/PageOther/PageOtherAbout.xaml
@@ -104,107 +104,120 @@
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Plain Craft Launcher 2/Pages/PageSetup/PageSetupSystem.xaml b/Plain Craft Launcher 2/Pages/PageSetup/PageSetupSystem.xaml
index bf1c1da..65022e5 100644
--- a/Plain Craft Launcher 2/Pages/PageSetup/PageSetupSystem.xaml
+++ b/Plain Craft Launcher 2/Pages/PageSetup/PageSetupSystem.xaml
@@ -54,31 +54,29 @@
-
-
-
+
+
+
-
-
+
-
diff --git a/Plain Craft Launcher 2/Pages/PageSetup/PageSetupSystem.xaml.vb b/Plain Craft Launcher 2/Pages/PageSetup/PageSetupSystem.xaml.vb
index fc00a3d..c03414d 100644
--- a/Plain Craft Launcher 2/Pages/PageSetup/PageSetupSystem.xaml.vb
+++ b/Plain Craft Launcher 2/Pages/PageSetup/PageSetupSystem.xaml.vb
@@ -34,7 +34,7 @@
'Mod 与整合包
ComboDownloadTranslate.SelectedIndex = Setup.Get("ToolDownloadTranslate")
- ComboDownloadMod.SelectedIndex = Setup.Get("ToolDownloadMod")
+ 'ComboDownloadMod.SelectedIndex = Setup.Get("ToolDownloadMod")
ComboModLocalNameStyle.SelectedIndex = Setup.Get("ToolModLocalNameStyle")
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
If AniControlEnabled = 0 Then Setup.Set(sender.Tag, sender.Value)
End Sub
- Private Shared Sub ComboChange(sender As MyComboBox, e As Object) Handles ComboDownloadVersion.SelectionChanged, ComboModLocalNameStyle.SelectionChanged, 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)
End Sub
Private Shared Sub TextBoxChange(sender As MyTextBox, e As Object) Handles TextSystemCache.ValidatedTextChanged
diff --git a/Plain Craft Launcher 2/Pages/PageSetup/PageSetupUI.xaml b/Plain Craft Launcher 2/Pages/PageSetup/PageSetupUI.xaml
index cc8949c..f05936f 100644
--- a/Plain Craft Launcher 2/Pages/PageSetup/PageSetupUI.xaml
+++ b/Plain Craft Launcher 2/Pages/PageSetup/PageSetupUI.xaml
@@ -245,7 +245,7 @@
-
+
diff --git a/Plain Craft Launcher 2/Pages/PageSetup/PageSetupUI.xaml.vb b/Plain Craft Launcher 2/Pages/PageSetup/PageSetupUI.xaml.vb
index f48e8ea..862c701 100644
--- a/Plain Craft Launcher 2/Pages/PageSetup/PageSetupUI.xaml.vb
+++ b/Plain Craft Launcher 2/Pages/PageSetup/PageSetupUI.xaml.vb
@@ -42,8 +42,8 @@
'设置解锁
If Not RadioLauncherTheme8.IsEnabled Then LabLauncherTheme8Copy.ToolTip = "累积赞助达到 ¥23.33 后,在爱发电私信发送【解锁码】以解锁。" & vbCrLf & "右键打开赞助页面,如果觉得 PCL 做得还不错就支持一下吧 =w=!"
RadioLauncherTheme8.ToolTip = "累积赞助达到 ¥23.33 后,在爱发电私信发送【解锁码】以解锁"
- If Not RadioLauncherTheme9.IsEnabled Then LabLauncherTheme9Copy.ToolTip = "· 反馈一个 Bug,在标记为 [完成] 后回复识别码要求解锁(右键打开反馈页面)" & vbCrLf & "· 提交一个 Pull Request,在合并后回复识别码要求解锁"
- RadioLauncherTheme9.ToolTip = "· 反馈一个 Bug,在标记为 [完成] 后回复识别码要求解锁" & vbCrLf & "· 提交一个 Pull Request,在合并后回复识别码要求解锁"
+ If Not RadioLauncherTheme9.IsEnabled Then LabLauncherTheme9Copy.ToolTip = "· 反馈一个 Bug,在标记为 [完成] 后回复识别码要求解锁(右键打开反馈页面)" & vbCrLf & "· 提交一个 Pull Request 或主页预设,在标记为 [完成] 后回复识别码要求解锁"
+ RadioLauncherTheme9.ToolTip = "· 反馈一个 Bug,在标记为 [完成] 后回复识别码要求解锁" & vbCrLf & "· 提交一个 Pull Request 或主页预设,在标记为 [完成] 后回复识别码要求解锁"
'极客蓝的处理在 ThemeCheck 中
End Sub
diff --git a/Plain Craft Launcher 2/Pages/PageVersion/PageVersionMod.xaml.vb b/Plain Craft Launcher 2/Pages/PageVersion/PageVersionMod.xaml.vb
index 459a65b..f2450b6 100644
--- a/Plain Craft Launcher 2/Pages/PageVersion/PageVersionMod.xaml.vb
+++ b/Plain Craft Launcher 2/Pages/PageVersion/PageVersionMod.xaml.vb
@@ -356,12 +356,12 @@
Install:
Try
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
CopyFile(ModFile, TargetVersion.PathIndie & "mods\" & NewFileName)
Next
If FilePathList.Count = 1 Then
- Hint($"已安装 {GetFileNameFromPath(FilePathList.First).Replace(".disabled", "")}!", HintType.Finish)
+ Hint($"已安装 {GetFileNameFromPath(FilePathList.First).Replace(".disabled", "").Replace(".old", "")}!", HintType.Finish)
Else
Hint($"已安装 {FilePathList.Count} 个 Mod!", HintType.Finish)
End If
@@ -388,7 +388,7 @@ Install:
#Region "选择"
- '选择的 Mod 的路径(不含 .disabled)
+ '选择的 Mod 的路径(不含 .disabled 和 .old)
Public SelectedMods As New List(Of String)
'单项切换选择状态
diff --git a/Plain Craft Launcher 2/Resources/Help.zip b/Plain Craft Launcher 2/Resources/Help.zip
index 0edd70f..c36f288 100644
Binary files a/Plain Craft Launcher 2/Resources/Help.zip and b/Plain Craft Launcher 2/Resources/Help.zip differ
diff --git a/Plain Craft Launcher 2/app.manifest b/Plain Craft Launcher 2/app.manifest
index 6be9dd1..498fc70 100644
--- a/Plain Craft Launcher 2/app.manifest
+++ b/Plain Craft Launcher 2/app.manifest
@@ -48,14 +48,15 @@
自动缩放。Windows Presentation Foundation (WPF)应用程序自动感知 DPI,无需
选择加入。选择加入此设置的 Windows 窗体应用程序(目标设定为 .NET Framework 4.6 )还应
在其 app.config 中将 "EnableWindowsFormsHighDpiAutoResizing" 设置设置为 "true"。-->
+
-
-
- PerMonitorV2
- true
-
+
+
+ PerMonitorV2
+ true
+