diff --git a/Plain Craft Launcher 2/Modules/Base/ModNet.vb b/Plain Craft Launcher 2/Modules/Base/ModNet.vb index a3dc0e811..2a7aff17e 100644 --- a/Plain Craft Launcher 2/Modules/Base/ModNet.vb +++ b/Plain Craft Launcher 2/Modules/Base/ModNet.vb @@ -807,7 +807,7 @@ StartSingleThreadDownload: '是否禁用多线程,以及规定碎片大小 Dim TargetUrl As String = GetSource().Url If TargetUrl.Contains("pcl2-server") OrElse TargetUrl.Contains("bmclapi") OrElse TargetUrl.Contains("github.com") OrElse - TargetUrl.Contains("optifine.net") OrElse TargetUrl.Contains("modrinth") Then Return Nothing + TargetUrl.Contains("optifine.net") OrElse TargetUrl.Contains("modrinth") OrElse TargetUrl.Contains("gitcode") Then Return Nothing '寻找最大碎片 'FUTURE: 下载引擎重做,计算下载源平均链接时间和线程下载速度,按最高时间节省来开启多线程 Dim FilePieceMax As NetThread = Threads diff --git a/Plain Craft Launcher 2/Modules/Minecraft/ModDownload.vb b/Plain Craft Launcher 2/Modules/Minecraft/ModDownload.vb index f2f992336..da6670327 100644 --- a/Plain Craft Launcher 2/Modules/Minecraft/ModDownload.vb +++ b/Plain Craft Launcher 2/Modules/Minecraft/ModDownload.vb @@ -208,8 +208,19 @@ DlPreferMojang = DeltaTime < 4000 Log($"[Download] Mojang 官方源加载耗时:{DeltaTime}ms,{If(DlPreferMojang, "可优先使用官方源", "不优先使用官方源")}") End If - '添加 PCL 特供项 - If File.Exists(PathTemp & "Cache\download.json") Then Versions.Merge(GetJson(ReadFile(PathTemp & "Cache\download.json"))) + '添加 UVMC 项 + Dim CacheFilePath As String = PathTemp & "Cache\uvmc-download.json" + If Not File.Exists(CacheFilePath) Then + Try + Dim UnlistedJson As JObject = NetGetCodeByRequestRetry("https://zkitefly.github.io/unlisted-versions-of-minecraft/version_manifest.json", IsJson:=True) + File.WriteAllText(CacheFilePath, UnlistedJson.ToString()) + Catch ex As Exception + Log("[Download] 未列出的版本官方源下载失败: " & ex.Message) + End Try + Else + Dim CachedJson As JObject = GetJson(ReadFile(CacheFilePath)) + Versions.Merge(CachedJson("versions")) + End If '返回 Loader.Output = New DlClientListResult With {.IsOfficial = True, .SourceName = "Mojang 官方源", .Value = Json} '解析更新提示(Release) @@ -239,8 +250,19 @@ Try Dim Versions As JArray = Json("versions") If Versions.Count < 200 Then Throw New Exception("获取到的版本列表长度不足(" & Json.ToString & ")") - '添加 PCL 特供项 - If File.Exists(PathTemp & "Cache\download.json") Then Versions.Merge(GetJson(ReadFile(PathTemp & "Cache\download.json"))) + '添加 UVMC 项 + Dim CacheFilePath As String = PathTemp & "Cache\uvmc-download.json" + If Not File.Exists(CacheFilePath) Then + Try + Dim UnlistedJson As JObject = NetGetCodeByRequestRetry("https://vip.123pan.cn/1821946486/unlisted-versions-of-minecraft/version_manifest.json", IsJson:=True) + File.WriteAllText(CacheFilePath, UnlistedJson.ToString()) + Catch ex As Exception + Log("[Download] 未列出的版本镜像源下载失败: " & ex.Message) + End Try + Else + Dim CachedJson As JObject = GetJson(ReadFile(CacheFilePath)) + Versions.Merge(CachedJson("versions")) + End If '检查是否有要求的版本(#5195) If Not String.IsNullOrEmpty(Loader.Input) Then Dim Id = Loader.Input @@ -1194,11 +1216,13 @@ 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"), + Replace("https://libraries.minecraft.net", "https://bmclapi2.bangbang93.com/maven"). + Replace("https://zkitefly.github.io/unlisted-versions-of-minecraft", "https://alist.8mi.tech/d/mirror/unlisted-versions-of-minecraft/Auto"), 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") + Replace("https://libraries.minecraft.net", "https://bmclapi2.bangbang93.com/libraries"). + Replace("https://zkitefly.github.io/unlisted-versions-of-minecraft", "https://alist.8mi.tech/d/mirror/unlisted-versions-of-minecraft/Auto") } Else Return DlSourceOrder( @@ -1206,11 +1230,13 @@ {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"), + Replace("https://libraries.minecraft.net", "https://bmclapi2.bangbang93.com/maven"). + Replace("https://zkitefly.github.io/unlisted-versions-of-minecraft", "https://alist.8mi.tech/d/mirror/unlisted-versions-of-minecraft/Auto"), 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") + Replace("https://libraries.minecraft.net", "https://bmclapi2.bangbang93.com/libraries"). + Replace("https://zkitefly.github.io/unlisted-versions-of-minecraft", "https://alist.8mi.tech/d/mirror/unlisted-versions-of-minecraft/Auto") }) End If End Function @@ -1226,7 +1252,8 @@ Replace("https://piston-data.mojang.com", "https://bmclapi2.bangbang93.com"). Replace("https://piston-meta.mojang.com", "https://bmclapi2.bangbang93.com"). Replace("https://launcher.mojang.com", "https://bmclapi2.bangbang93.com"). - Replace("https://launchermeta.mojang.com", "https://bmclapi2.bangbang93.com") + Replace("https://launchermeta.mojang.com", "https://bmclapi2.bangbang93.com"). + Replace("https://zkitefly.github.io/unlisted-versions-of-minecraft", "https://alist.8mi.tech/d/mirror/unlisted-versions-of-minecraft/Auto") }) End Function diff --git a/Plain Craft Launcher 2/Modules/Minecraft/ModMinecraft.vb b/Plain Craft Launcher 2/Modules/Minecraft/ModMinecraft.vb index 422cf670f..2706f4007 100644 --- a/Plain Craft Launcher 2/Modules/Minecraft/ModMinecraft.vb +++ b/Plain Craft Launcher 2/Modules/Minecraft/ModMinecraft.vb @@ -304,7 +304,7 @@ Public Module ModMinecraft Else ReleaseTime = JsonObject("releaseTime").ToObject(Of Date) End If - If ReleaseTime.Year > 2000 AndAlso ReleaseTime.Year < 2013 Then + If ReleaseTime.Year > 2000 AndAlso ReleaseTime <= New DateTime(2011, 11, 16) Then ' 2000 年到 2011 年 11 月 16 日之间 _Version.McName = "Old" GoTo VersionSearchFinish End If @@ -1060,8 +1060,16 @@ ExitDataLoad: ''' Public Function GetMcFoolName(Name As String) As String Name = Name.ToLower - If Name.StartsWithF("2.0") Then - Return "2013 | 这个秘密计划了两年的更新将游戏推向了一个新高度!" + If Name.StartsWithF("2.0") OrElse Name.StartsWithF("2point0") Then + Dim Tag = "" + If Name.EndsWith("red") Then + Tag = "(红色版本)" + ElseIf Name.EndsWith("blue") Then + Tag = "(蓝色版本)" + ElseIf Name.EndsWith("purple") Then + Tag = "(紫色版本)" + End If + Return "2013 | 这个秘密计划了两年的更新将游戏推向了一个新高度!" & Tag ElseIf Name = "15w14a" Then Return "2015 | 作为一款全年龄向的游戏,我们需要和平,需要爱与拥抱。" ElseIf Name = "1.rv-pre1" Then diff --git a/Plain Craft Launcher 2/Pages/PageDownload/ModDownloadLib.vb b/Plain Craft Launcher 2/Pages/PageDownload/ModDownloadLib.vb index 02c92e220..c38950544 100644 --- a/Plain Craft Launcher 2/Pages/PageDownload/ModDownloadLib.vb +++ b/Plain Craft Launcher 2/Pages/PageDownload/ModDownloadLib.vb @@ -151,7 +151,7 @@ Public Module ModDownloadLib Else NewItem.Info = Entry("lore").ToString End If - If Entry("url").ToString.Contains("pcl") Then NewItem.Info = "[PCL 特供下载] " & NewItem.Info + If Entry("url").ToString.Contains("unlisted-versions-of-minecraft") Then NewItem.Info = "[UVMC 特供下载] " & NewItem.Info AddHandler NewItem.Click, OnClick '建立菜单 If IsSaveOnly Then diff --git a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadClient.xaml.vb b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadClient.xaml.vb index 2af82b706..a5335f3fc 100644 --- a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadClient.xaml.vb +++ b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadClient.xaml.vb @@ -28,12 +28,18 @@ Not Version("id").ToString.ToLower.Contains("combat") AndAlso Not Version("id").ToString.ToLower.Contains("rc") AndAlso Not Version("id").ToString.ToLower.Contains("experimental") AndAlso + Not Version("id").ToString.ToLower.Equals("1.2") AndAlso Not Version("id").ToString.ToLower.Contains("pre") Then Type = "正式版" Version("type") = "release" End If '愚人节版本 Select Case Version("id").ToString.ToLower + Case "2point0_blue", "2point0_red", "2point0_purple", "2.0_blue", "2.0_red", "2.0_purple", "2.0" + Type = "愚人节版" + Version("id") = Version("id").ToString().Replace("point", ".") + Version("type") = "special" + Version.Add("lore", GetMcFoolName(Version("id"))) Case "20w14infinite", "20w14∞" Type = "愚人节版" Version("id") = "20w14∞" diff --git a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadInstall.xaml.vb b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadInstall.xaml.vb index 61eedf1ce..99eeb7712 100644 --- a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadInstall.xaml.vb +++ b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadInstall.xaml.vb @@ -579,12 +579,18 @@ Not Version("id").ToString.ToLower.Contains("combat") AndAlso Not Version("id").ToString.ToLower.Contains("rc") AndAlso Not Version("id").ToString.ToLower.Contains("experimental") AndAlso + Not Version("id").ToString.ToLower.Equals("1.2") AndAlso Not Version("id").ToString.ToLower.Contains("pre") Then Type = "正式版" Version("type") = "release" End If '愚人节版本 Select Case Version("id").ToString.ToLower + Case "2point0_blue", "2point0_red", "2point0_purple", "2.0_blue", "2.0_red", "2.0_purple", "2.0" + Type = "愚人节版" + Version("id") = Version("id").ToString().Replace("point", ".") + Version("type") = "special" + Version.Add("lore", GetMcFoolName(Version("id"))) Case "20w14infinite", "20w14∞" Type = "愚人节版" Version("id") = "20w14∞"