From 937f034a1b9155f489e7df41f2f6b539606f06cf Mon Sep 17 00:00:00 2001 From: Pigeon0v0 Date: Thu, 13 Jun 2024 22:23:36 +0800 Subject: [PATCH 01/17] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81=E4=B8=8B?= =?UTF-8?q?=E8=BD=BD=E8=B5=84=E6=BA=90=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Plain Craft Launcher 2/FormMain.xaml.vb | 5 +- .../Modules/Minecraft/ModComp.vb | 53 ++++++- Plain Craft Launcher 2/Modules/ModMain.vb | 1 + .../Pages/PageDownload/PageDownloadLeft.xaml | 8 ++ .../PageDownload/PageDownloadLeft.xaml.vb | 11 +- .../PageDownloadResourcePack.xaml | 136 ++++++++++++++++++ .../PageDownloadResourcePack.xaml.vb | 122 ++++++++++++++++ .../Plain Craft Launcher 2.vbproj | 12 +- 8 files changed, 338 insertions(+), 10 deletions(-) create mode 100644 Plain Craft Launcher 2/Pages/PageDownload/PageDownloadResourcePack.xaml create mode 100644 Plain Craft Launcher 2/Pages/PageDownload/PageDownloadResourcePack.xaml.vb diff --git a/Plain Craft Launcher 2/FormMain.xaml.vb b/Plain Craft Launcher 2/FormMain.xaml.vb index 5ed09e6..3c7f0ce 100644 --- a/Plain Craft Launcher 2/FormMain.xaml.vb +++ b/Plain Craft Launcher 2/FormMain.xaml.vb @@ -1023,6 +1023,7 @@ Install: DownloadLiteLoader = 8 DownloadMod = 10 DownloadPack = 11 + DownloadResourcePack = 12 SetupLaunch = 0 SetupUI = 1 SetupSystem = 2 @@ -1058,8 +1059,10 @@ Install: Return "Mod 下载 - " & Project.TranslatedName Case CompType.ModPack Return "整合包下载 - " & Project.TranslatedName - Case Else 'CompType.ResourcePack + Case CompType.ResourcePack Return "资源包下载 - " & Project.TranslatedName + Case Else 'CompType.ShaderPack + Return "光影包下载 - " & Project.TranslatedName End Select Case PageType.HelpDetail Dim Entry As HelpEntry = Stack.Additional(0) diff --git a/Plain Craft Launcher 2/Modules/Minecraft/ModComp.vb b/Plain Craft Launcher 2/Modules/Minecraft/ModComp.vb index 39dbf53..c0f7125 100644 --- a/Plain Craft Launcher 2/Modules/Minecraft/ModComp.vb +++ b/Plain Craft Launcher 2/Modules/Minecraft/ModComp.vb @@ -321,7 +321,24 @@ Case 4480 : Tags.Add("基于地图") Case 4481 : Tags.Add("轻量") Case 4482 : Tags.Add("大型") - 'FUTURE: Res + '资源包 + Case 5244 : Tags.Add("字体包") + Case 5193 : Tags.Add("数据包") + Case 399 : Tags.Add("蒸汽朋克") + Case 396 : Tags.Add("128x") + Case 398 : Tags.Add("512x 或更高") + Case 397 : Tags.Add("256x") + Case 405 : Tags.Add("其他") + Case 395 : Tags.Add("64x") + Case 400 : Tags.Add("仿真") + Case 393 : Tags.Add("16x") + Case 403 : Tags.Add("传统") + Case 394 : Tags.Add("32x") + Case 404 : Tags.Add("动态效果") + Case 4465 : Tags.Add("模组支持") + Case 402 : Tags.Add("中世纪") + Case 401 : Tags.Add("现代") + End Select Next If Not Tags.Any() Then Tags.Add("杂项") @@ -387,7 +404,37 @@ Case "adventure" : Tags.Add("冒险") Case "kitchen-sink" : Tags.Add("烹饪") Case "lightweight" : Tags.Add("轻量") - 'FUTURE: Res + '资源包 + Case "8x-" : Tags.Add("8x-") + Case "16x" : Tags.Add("16x") + Case "32x" : Tags.Add("32x") + Case "48x" : Tags.Add("48x") + Case "64x" : Tags.Add("64x") + Case "128x" : Tags.Add("128x") + Case "256x" : Tags.Add("256x") + Case "512x+" : Tags.Add("512x+") + Case "audio" : Tags.Add("声音") + Case "blocks" : Tags.Add("方块") + Case "combat" : Tags.Add("战斗") + Case "core-shaders" : Tags.Add("核心着色器") + Case "cursed" : Tags.Add("Cursed") + Case "decoration" : Tags.Add("装饰") + Case "entities" : Tags.Add("实体") + Case "environment" : Tags.Add("环境") + Case "equipment" : Tags.Add("装备") + Case "fonts" : Tags.Add("字体") + Case "gui" : Tags.Add("GUI") + Case "items" : Tags.Add("物品") + Case "locale" : Tags.Add("本地化") + Case "modded" : Tags.Add("Modded") + Case "models" : Tags.Add("模型") + Case "realistic" : Tags.Add("写实") + Case "simplistic" : Tags.Add("扁平") + Case "themed" : Tags.Add("主题") + Case "tweaks" : Tags.Add("优化") + Case "utility" : Tags.Add("实用") + Case "vanilla-like" : Tags.Add("类原生") + End Select Next If Not Tags.Any() Then Tags.Add("杂项") @@ -749,7 +796,7 @@ NoSubtitle: Case CompType.ModPack Address += "&classId=4471" Case CompType.ResourcePack - 'FUTURE: Res + Address += "&classId=12" End Select Address += "&categoryId=" & If(Tag = "", "0", Tag.Before("/")) If ModLoader <> CompModLoaderType.Any Then Address += "&modLoaderType=" & CType(ModLoader, Integer) diff --git a/Plain Craft Launcher 2/Modules/ModMain.vb b/Plain Craft Launcher 2/Modules/ModMain.vb index e2b797c..c7a424d 100644 --- a/Plain Craft Launcher 2/Modules/ModMain.vb +++ b/Plain Craft Launcher 2/Modules/ModMain.vb @@ -397,6 +397,7 @@ EndHint: Public FrmDownloadFabric As PageDownloadFabric Public FrmDownloadMod As PageDownloadMod Public FrmDownloadPack As PageDownloadPack + Public FrmDownloadResourcePack As PageDownloadResourcePack '设置页面声明 Public FrmSetupLeft As PageSetupLeft diff --git a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadLeft.xaml b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadLeft.xaml index da78a28..7989461 100644 --- a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadLeft.xaml +++ b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadLeft.xaml @@ -76,6 +76,14 @@ + + + + + + + diff --git a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadLeft.xaml.vb b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadLeft.xaml.vb index da173ad..56046c5 100644 --- a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadLeft.xaml.vb +++ b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadLeft.xaml.vb @@ -10,7 +10,7 @@ ''' ''' 勾选事件改变页面。 ''' - Private Sub PageCheck(sender As MyListItem, e As RouteEventArgs) Handles ItemInstall.Check, ItemClient.Check, ItemOptiFine.Check, ItemForge.Check, ItemLiteLoader.Check, ItemMod.Check, ItemFabric.Check, ItemPack.Check + Private Sub PageCheck(sender As MyListItem, e As RouteEventArgs) Handles ItemInstall.Check, ItemClient.Check, ItemOptiFine.Check, ItemForge.Check, ItemLiteLoader.Check, ItemMod.Check, ItemFabric.Check, ItemPack.Check, ItemResourcePack.Check '尚未初始化控件属性时,sender.Tag 为 Nothing,会导致切换到页面 0 '若使用 IsLoaded,则会导致模拟点击不被执行(模拟点击切换页面时,控件的 IsLoaded 为 False) If sender.Tag IsNot Nothing Then PageChange(Val(sender.Tag)) @@ -43,6 +43,9 @@ Case FormMain.PageSubType.DownloadPack If FrmDownloadPack Is Nothing Then FrmDownloadPack = New PageDownloadPack Return FrmDownloadPack + Case FormMain.PageSubType.DownloadResourcePack + If FrmDownloadResourcePack Is Nothing Then FrmDownloadResourcePack = New PageDownloadResourcePack + Return FrmDownloadResourcePack Case Else Throw New Exception("未知的下载子页面种类:" & ID) End Select @@ -108,6 +111,12 @@ CompProjectCache.Clear() If FrmDownloadPack IsNot Nothing Then FrmDownloadPack.PageLoaderRestart() ItemPack.Checked = True + Case FormMain.PageSubType.DownloadResourcePack + PageDownloadResourcePack.Storage = New CompProjectStorage + PageDownloadResourcePack.Page = 0 + CompProjectCache.Clear() + If FrmDownloadResourcePack IsNot Nothing Then FrmDownloadResourcePack.PageLoaderRestart() + ItemResourcePack.Checked = True Case FormMain.PageSubType.DownloadClient DlClientListLoader.Start(IsForceRestart:=True) ItemClient.Checked = True diff --git a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadResourcePack.xaml b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadResourcePack.xaml new file mode 100644 index 0000000..48b7cb7 --- /dev/null +++ b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadResourcePack.xaml @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadResourcePack.xaml.vb b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadResourcePack.xaml.vb new file mode 100644 index 0000000..4a67dec --- /dev/null +++ b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadResourcePack.xaml.vb @@ -0,0 +1,122 @@ +Public Class PageDownloadResourcePack + + Public Const PageSize = 40 + + '加载器信息 + Public Shared Loader As New LoaderTask(Of CompProjectRequest, Integer)("CompProject ResourcePack", AddressOf CompProjectsGet, AddressOf LoaderInput) With {.ReloadTimeout = 60 * 1000} + Public Shared Storage As New CompProjectStorage + Public Shared Page As Integer = 0 + Private Sub PageDownloadResourcePack_Inited(sender As Object, e As EventArgs) Handles Me.Initialized + PageLoaderInit(Load, PanLoad, PanContent, PanAlways, Loader, AddressOf Load_OnFinish, AddressOf LoaderInput) + If McVersionHighest = -1 Then McVersionHighest = Math.Max(McVersionHighest, Integer.Parse(CType(TextSearchVersion.Items(1), MyComboBoxItem).Content.ToString.Split(".")(1))) + End Sub + Private Shared Function LoaderInput() As CompProjectRequest + Dim Request As New CompProjectRequest(CompType.ResourcePack, Storage, (Page + 1) * PageSize) + If FrmDownloadResourcePack IsNot Nothing Then + With Request + .SearchText = FrmDownloadResourcePack.TextSearchName.Text + .GameVersion = If(FrmDownloadResourcePack.TextSearchVersion.Text = "全部 (也可自行输入)", Nothing, + If(FrmDownloadResourcePack.TextSearchVersion.Text.Contains(".") OrElse FrmDownloadResourcePack.TextSearchVersion.Text.Contains("w"), FrmDownloadResourcePack.TextSearchVersion.Text, Nothing)) + .Tag = FrmDownloadResourcePack.ComboSearchTag.SelectedItem.Tag + .Source = CType(Val(FrmDownloadResourcePack.ComboSearchSource.SelectedItem.Tag), CompSourceType) + End With + End If + Return Request + End Function + + '结果 UI 化 + Private Sub Load_OnFinish() + Try + Log($"[Comp] 开始可视化资源包列表,已储藏 {Storage.Results.Count} 个结果,当前在第 {Page + 1} 页") + '列表项 + PanProjects.Children.Clear() + For i = Math.Min(Page * PageSize, Storage.Results.Count - 1) To Math.Min((Page + 1) * PageSize - 1, Storage.Results.Count - 1) + PanProjects.Children.Add(Storage.Results(i).ToCompItem(Loader.Input.GameVersion Is Nothing, False)) + Next + '页码 + CardPages.Visibility = If(Storage.Results.Count > 40 OrElse + Storage.CurseForgeOffset < Storage.CurseForgeTotal OrElse Storage.ModrinthOffset < Storage.ModrinthTotal, + Visibility.Visible, Visibility.Collapsed) + LabPage.Text = Page + 1 + BtnPageFirst.IsEnabled = Page > 1 + BtnPageFirst.Opacity = If(BtnPageFirst.IsEnabled, 1, 0.2) + BtnPageLeft.IsEnabled = Page > 0 + BtnPageLeft.Opacity = If(BtnPageLeft.IsEnabled, 1, 0.2) + BtnPageRight.IsEnabled = Storage.Results.Count > PageSize * (Page + 1) OrElse + Storage.CurseForgeOffset < Storage.CurseForgeTotal OrElse Storage.ModrinthOffset < Storage.ModrinthTotal + BtnPageRight.Opacity = If(BtnPageRight.IsEnabled, 1, 0.2) + '错误信息 + If Storage.ErrorMessage Is Nothing Then + HintError.Visibility = Visibility.Collapsed + Else + HintError.Visibility = Visibility.Visible + HintError.Text = Storage.ErrorMessage + End If + '强制返回顶部 + PanBack.ScrollToTop() + Catch ex As Exception + Log(ex, "可视化资源包列表出错", LogLevel.Feedback) + End Try + End Sub + + '自动重试 + Private Sub Load_State(sender As Object, state As MyLoading.MyLoadingState, oldState As MyLoading.MyLoadingState) Handles Load.StateChanged + Select Case Loader.State + Case LoadState.Failed + Dim ErrorMessage As String = "" + If Loader.Error IsNot Nothing Then ErrorMessage = Loader.Error.Message + If ErrorMessage.Contains("不是有效的 json 文件") Then + Log("[Download] 下载的资源包列表 json 文件损坏,已自动重试", LogLevel.Debug) + PageLoaderRestart() + End If + End Select + End Sub + + '切换页码 + + Private Sub BtnPageFirst_Click(sender As Object, e As RoutedEventArgs) Handles BtnPageFirst.Click + ChangePage(0) + End Sub + Private Sub BtnPageLeft_Click(sender As Object, e As RoutedEventArgs) Handles BtnPageLeft.Click + ChangePage(Page - 1) + End Sub + Private Sub BtnPageRight_Click(sender As Object, e As RoutedEventArgs) Handles BtnPageRight.Click + ChangePage(Page + 1) + End Sub + Private Sub ChangePage(NewPage As Integer) + CardPages.IsEnabled = False + Page = NewPage + FrmMain.BackToTop() + Log($"[Download] 资源包切换到第 {Page + 1} 页") + RunInThread(Sub() + Thread.Sleep(100) '等待向上滚的动画结束 + RunInUi(Sub() CardPages.IsEnabled = True) + Loader.Start() + End Sub) + End Sub + +#Region "搜索" + + '搜索按钮 + Private Sub StartNewSearch() Handles BtnSearchRun.Click + Page = 0 + If Loader.ShouldStart(LoaderInput()) Then Storage = New CompProjectStorage '避免连续搜索两次使得 CompProjectStorage 引用丢失(#1311) + Loader.Start() + End Sub + Private Sub EnterTrigger(sender As Object, e As KeyEventArgs) Handles TextSearchName.KeyDown, TextSearchVersion.KeyDown + If e.Key = Key.Enter Then StartNewSearch() + End Sub + + '重置按钮 + Private Sub BtnSearchReset_Click(sender As Object, e As EventArgs) Handles BtnSearchReset.Click + TextSearchName.Text = "" + TextSearchVersion.Text = "全部 (也可自行输入)" + TextSearchVersion.SelectedIndex = 0 + ComboSearchSource.SelectedIndex = 0 + ComboSearchTag.SelectedIndex = 0 + Loader.LastFinishedTime = 0 '要求强制重新开始 + End Sub + +#End Region + +End Class diff --git a/Plain Craft Launcher 2/Plain Craft Launcher 2.vbproj b/Plain Craft Launcher 2/Plain Craft Launcher 2.vbproj index 72db688..bdaecc2 100644 --- a/Plain Craft Launcher 2/Plain Craft Launcher 2.vbproj +++ b/Plain Craft Launcher 2/Plain Craft Launcher 2.vbproj @@ -185,9 +185,6 @@ MyIconTextButton.xaml - - - @@ -232,6 +229,9 @@ MyCompItem.xaml + + PageDownloadResourcePack.xaml + PageDownloadMod.xaml @@ -469,7 +469,6 @@ FormMain.xaml Code - MSBuild:Compile Designer @@ -478,6 +477,10 @@ MSBuild:Compile Designer + + MSBuild:Compile + Designer + Designer MSBuild:Compile @@ -921,7 +924,6 @@ - From 8e58cb0dc6861610bc10c1a3b39cdae9818da66c Mon Sep 17 00:00:00 2001 From: Pigeon0v0 Date: Sat, 15 Jun 2024 19:18:48 +0800 Subject: [PATCH 02/17] =?UTF-8?q?fix:=20=E9=94=99=E8=AF=AF=E7=9A=84=20Comb?= =?UTF-8?q?oBox=20=E5=A4=A7=E5=B0=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PageDownload/PageDownloadResourcePack.xaml | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadResourcePack.xaml b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadResourcePack.xaml index 48b7cb7..1f67d5d 100644 --- a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadResourcePack.xaml +++ b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadResourcePack.xaml @@ -11,8 +11,7 @@ - - + @@ -23,9 +22,9 @@ - - - + + + @@ -49,9 +48,9 @@ - - - + + + From e3c27678b6b79faf896bdaae546df8b9aa21247b Mon Sep 17 00:00:00 2001 From: Pigeon0v0 Date: Thu, 27 Jun 2024 08:27:09 +0800 Subject: [PATCH 03/17] =?UTF-8?q?fix:=20=E5=90=88=E5=B9=B6=E4=BA=86=20Curs?= =?UTF-8?q?e=20=E5=92=8C=20Modrinth=20=E7=9A=84=E9=83=A8=E5=88=86=E7=9B=B8?= =?UTF-8?q?=E4=BC=BC=E6=A0=87=E7=AD=BE=EF=BC=88=E5=8E=BB=E9=87=8D=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PageDownloadResourcePack.xaml | 41 ++++++++----------- 1 file changed, 16 insertions(+), 25 deletions(-) diff --git a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadResourcePack.xaml b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadResourcePack.xaml index 1f67d5d..a3b60fc 100644 --- a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadResourcePack.xaml +++ b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadResourcePack.xaml @@ -51,31 +51,14 @@ - - - - - - - - - - - - - - - - - - - + + - - - - + + + + @@ -89,14 +72,22 @@ - + - + + + + + + + + + From 7b8cb73115782c244bef1ab512199dc9adb96854 Mon Sep 17 00:00:00 2001 From: Pigeon0v0 <60414767+Pigeon0v0@users.noreply.github.com> Date: Thu, 4 Jul 2024 22:59:18 +0800 Subject: [PATCH 04/17] =?UTF-8?q?=E5=90=8C=E6=AD=A5=20#3319=20=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PageDownload/PageDownloadResourcePack.xaml.vb | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadResourcePack.xaml.vb b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadResourcePack.xaml.vb index 4a67dec..41c5c7b 100644 --- a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadResourcePack.xaml.vb +++ b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadResourcePack.xaml.vb @@ -1,4 +1,4 @@ -Public Class PageDownloadResourcePack +Public Class PageDownloadResourcePack Public Const PageSize = 40 @@ -39,12 +39,14 @@ Visibility.Visible, Visibility.Collapsed) LabPage.Text = Page + 1 BtnPageFirst.IsEnabled = Page > 1 - BtnPageFirst.Opacity = If(BtnPageFirst.IsEnabled, 1, 0.2) + BtnPageFirst.Opacity = If(Page > 1, 1, 0.2) BtnPageLeft.IsEnabled = Page > 0 - BtnPageLeft.Opacity = If(BtnPageLeft.IsEnabled, 1, 0.2) - BtnPageRight.IsEnabled = Storage.Results.Count > PageSize * (Page + 1) OrElse - Storage.CurseForgeOffset < Storage.CurseForgeTotal OrElse Storage.ModrinthOffset < Storage.ModrinthTotal - BtnPageRight.Opacity = If(BtnPageRight.IsEnabled, 1, 0.2) + BtnPageLeft.Opacity = If(Page > 0, 1, 0.2) + Dim IsRightEnabled As Boolean = '由于 WPF 的未知 bug,读取到的 IsEnabled 可能是错误的值(#3319) + Storage.Results.Count > PageSize * (Page + 1) OrElse + Storage.CurseForgeOffset < Storage.CurseForgeTotal OrElse Storage.ModrinthOffset < Storage.ModrinthTotal + BtnPageRight.IsEnabled = IsRightEnabled + BtnPageRight.Opacity = If(IsRightEnabled, 1, 0.2) '错误信息 If Storage.ErrorMessage Is Nothing Then HintError.Visibility = Visibility.Collapsed From c556dbb39c19ac6a31fd9286ec5012bdf4640802 Mon Sep 17 00:00:00 2001 From: Pigeon0v0 Date: Sat, 27 Jul 2024 11:03:59 +0800 Subject: [PATCH 05/17] =?UTF-8?q?feat:=20=E5=85=89=E5=BD=B1=E5=8C=85?= =?UTF-8?q?=E4=B8=8B=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Plain Craft Launcher 2/FormMain.xaml.vb | 5 +- .../Modules/Minecraft/ModComp.vb | 46 ++++++- Plain Craft Launcher 2/Modules/ModMain.vb | 1 + .../Pages/PageDownload/PageDownloadLeft.xaml | 8 ++ .../PageDownload/PageDownloadLeft.xaml.vb | 11 +- .../PageDownload/PageDownloadShader.xaml | 115 +++++++++++++++++ .../PageDownload/PageDownloadShader.xaml.vb | 122 ++++++++++++++++++ .../Plain Craft Launcher 2.vbproj | 12 +- 8 files changed, 308 insertions(+), 12 deletions(-) create mode 100644 Plain Craft Launcher 2/Pages/PageDownload/PageDownloadShader.xaml create mode 100644 Plain Craft Launcher 2/Pages/PageDownload/PageDownloadShader.xaml.vb diff --git a/Plain Craft Launcher 2/FormMain.xaml.vb b/Plain Craft Launcher 2/FormMain.xaml.vb index 265004e..c80849c 100644 --- a/Plain Craft Launcher 2/FormMain.xaml.vb +++ b/Plain Craft Launcher 2/FormMain.xaml.vb @@ -1062,6 +1062,7 @@ Install: DownloadLiteLoader = 9 DownloadMod = 11 DownloadPack = 12 + DownloadShader = 14 SetupLaunch = 0 SetupUI = 1 SetupSystem = 2 @@ -1097,8 +1098,10 @@ Install: Return "Mod 下载 - " & Project.TranslatedName Case CompType.ModPack Return "整合包下载 - " & Project.TranslatedName - Case Else 'CompType.ResourcePack + Case CompType.ResourcePack Return "资源包下载 - " & Project.TranslatedName + Case Else 'CompType.Shader + Return "光影包下载 - " & Project.TranslatedName End Select Case PageType.HelpDetail Dim Entry As HelpEntry = Stack.Additional(0) diff --git a/Plain Craft Launcher 2/Modules/Minecraft/ModComp.vb b/Plain Craft Launcher 2/Modules/Minecraft/ModComp.vb index 44ce4d0..b1e6fe7 100644 --- a/Plain Craft Launcher 2/Modules/Minecraft/ModComp.vb +++ b/Plain Craft Launcher 2/Modules/Minecraft/ModComp.vb @@ -13,6 +13,10 @@ ''' 资源包。 ''' ResourcePack = 2 + ''' + ''' 光影包。 + ''' + Shader = 3 End Enum Public Enum CompModLoaderType 'https://docs.curseforge.com/?http#tocS_ModLoaderType @@ -273,8 +277,10 @@ Type = CompType.Mod ElseIf Website.Contains("/modpacks/") Then Type = CompType.ModPack - Else + ElseIf Website.Contains("/texture-packs/") Then Type = CompType.ResourcePack + Else 'Website.Contains("/shaders/") + Type = CompType.Shader End If 'Tags Tags = New List(Of String) @@ -321,7 +327,10 @@ Case 4480 : Tags.Add("基于地图") Case 4481 : Tags.Add("轻量") Case 4482 : Tags.Add("大型") - 'FUTURE: Res + '光影包 + Case 6553 : Tags.Add("写实") + Case 6554 : Tags.Add("幻想") + Case 6555 : Tags.Add("原版风") End Select Next If Not Tags.Any() Then Tags.Add("杂项") @@ -349,6 +358,7 @@ Case "mod" : Type = CompType.Mod Case "modpack" : Type = CompType.ModPack Case "resourcepack" : Type = CompType.ResourcePack + Case "shaders" : Type = CompType.Shader End Select 'Tags & ModLoaders Tags = New List(Of String) @@ -387,7 +397,33 @@ Case "adventure" : Tags.Add("冒险") Case "kitchen-sink" : Tags.Add("烹饪") Case "lightweight" : Tags.Add("轻量") - 'FUTURE: Res + '光影包 + Case "cartoon" : Tags.Add("卡通") + Case "cursed" : Tags.Add("Cursed") + Case "fantasy" : Tags.Add("幻想") + Case "realistic" : Tags.Add("写实") + Case "semi-realistic" : Tags.Add("半写实") + Case "vanilla-like" : Tags.Add("原版风") + + Case "atmosphere" : Tags.Add("大气环境") + Case "bloom" : Tags.Add("植被") + Case "colored-lighting" : Tags.Add("光源着色") + Case "foliage" : Tags.Add("树叶") + Case "path-tracing" : Tags.Add("路径追踪") + Case "pbr" : Tags.Add("PBR") + Case "reflections" : Tags.Add("反射") + Case "shadows" : Tags.Add("阴影") + + Case "potato" : Tags.Add("土豆画质") + Case "low" : Tags.Add("低性能影响") + Case "medium" : Tags.Add("中性能影响") + Case "high" : Tags.Add("高性能影响") + Case "screenshot" : Tags.Add("极致画质") + + Case "canvas" : Tags.Add("Canvas") + Case "iris" : Tags.Add("Iris") + Case "optifine" : Tags.Add("OptiFine") + Case "vanilla-shader" : Tags.Add("原版光影") End Select Next If Not Tags.Any() Then Tags.Add("杂项") @@ -748,8 +784,8 @@ NoSubtitle: Address += "&classId=6" Case CompType.ModPack Address += "&classId=4471" - Case CompType.ResourcePack - 'FUTURE: Res + Case CompType.Shader + Address += "&classId=6552" End Select Address += "&categoryId=" & If(Tag = "", "0", Tag.Before("/")) If ModLoader <> CompModLoaderType.Any Then Address += "&modLoaderType=" & CType(ModLoader, Integer) diff --git a/Plain Craft Launcher 2/Modules/ModMain.vb b/Plain Craft Launcher 2/Modules/ModMain.vb index a971886..ad25e83 100644 --- a/Plain Craft Launcher 2/Modules/ModMain.vb +++ b/Plain Craft Launcher 2/Modules/ModMain.vb @@ -398,6 +398,7 @@ EndHint: Public FrmDownloadFabric As PageDownloadFabric Public FrmDownloadMod As PageDownloadMod Public FrmDownloadPack As PageDownloadPack + Public FrmDownloadShader As PageDownloadShader '设置页面声明 Public FrmSetupLeft As PageSetupLeft diff --git a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadLeft.xaml b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadLeft.xaml index 8a64667..451e351 100644 --- a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadLeft.xaml +++ b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadLeft.xaml @@ -84,6 +84,14 @@ + + + + + + + diff --git a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadLeft.xaml.vb b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadLeft.xaml.vb index 2658c33..91888f0 100644 --- a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadLeft.xaml.vb +++ b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadLeft.xaml.vb @@ -10,7 +10,7 @@ ''' ''' 勾选事件改变页面。 ''' - Private Sub PageCheck(sender As MyListItem, e As RouteEventArgs) Handles ItemInstall.Check, ItemClient.Check, ItemOptiFine.Check, ItemForge.Check, ItemNeoForge.Check, ItemLiteLoader.Check, ItemMod.Check, ItemFabric.Check, ItemPack.Check + Private Sub PageCheck(sender As MyListItem, e As RouteEventArgs) Handles ItemInstall.Check, ItemClient.Check, ItemOptiFine.Check, ItemForge.Check, ItemNeoForge.Check, ItemLiteLoader.Check, ItemMod.Check, ItemFabric.Check, ItemPack.Check, ItemShader.Check '尚未初始化控件属性时,sender.Tag 为 Nothing,会导致切换到页面 0 '若使用 IsLoaded,则会导致模拟点击不被执行(模拟点击切换页面时,控件的 IsLoaded 为 False) If sender.Tag IsNot Nothing Then PageChange(Val(sender.Tag)) @@ -46,6 +46,9 @@ Case FormMain.PageSubType.DownloadPack If FrmDownloadPack Is Nothing Then FrmDownloadPack = New PageDownloadPack Return FrmDownloadPack + Case FormMain.PageSubType.DownloadShader + If FrmDownloadShader Is Nothing Then FrmDownloadShader = New PageDownloadShader + Return FrmDownloadShader Case Else Throw New Exception("未知的下载子页面种类:" & ID) End Select @@ -114,6 +117,12 @@ CompProjectCache.Clear() If FrmDownloadPack IsNot Nothing Then FrmDownloadPack.PageLoaderRestart() ItemPack.Checked = True + Case FormMain.PageSubType.DownloadShader + PageDownloadShader.Storage = New CompProjectStorage + PageDownloadShader.Page = 0 + CompProjectCache.Clear() + If FrmDownloadShader IsNot Nothing Then FrmDownloadShader.PageLoaderRestart() + ItemShader.Checked = True Case FormMain.PageSubType.DownloadClient DlClientListLoader.Start(IsForceRestart:=True) ItemClient.Checked = True diff --git a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadShader.xaml b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadShader.xaml new file mode 100644 index 0000000..6e40136 --- /dev/null +++ b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadShader.xaml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadShader.xaml.vb b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadShader.xaml.vb new file mode 100644 index 0000000..13a58c9 --- /dev/null +++ b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadShader.xaml.vb @@ -0,0 +1,122 @@ +Public Class PageDownloadShader + + Public Const PageSize = 40 + + '加载器信息 + Public Shared Loader As New LoaderTask(Of CompProjectRequest, Integer)("CompProject Shader", AddressOf CompProjectsGet, AddressOf LoaderInput) With {.ReloadTimeout = 60 * 1000} + Public Shared Storage As New CompProjectStorage + Public Shared Page As Integer = 0 + Private Sub PageDownloadShader_Inited(sender As Object, e As EventArgs) Handles Me.Initialized + PageLoaderInit(Load, PanLoad, PanContent, PanAlways, Loader, AddressOf Load_OnFinish, AddressOf LoaderInput) + If McVersionHighest = -1 Then McVersionHighest = Math.Max(McVersionHighest, Integer.Parse(CType(TextSearchVersion.Items(1), MyComboBoxItem).Content.ToString.Split(".")(1))) + End Sub + Private Shared Function LoaderInput() As CompProjectRequest + Dim Request As New CompProjectRequest(CompType.Shader, Storage, (Page + 1) * PageSize) + If FrmDownloadShader IsNot Nothing Then + With Request + .SearchText = FrmDownloadShader.TextSearchName.Text + .GameVersion = If(FrmDownloadShader.TextSearchVersion.Text = "全部 (也可自行输入)", Nothing, + If(FrmDownloadShader.TextSearchVersion.Text.Contains(".") OrElse FrmDownloadShader.TextSearchVersion.Text.Contains("w"), FrmDownloadShader.TextSearchVersion.Text, Nothing)) + .Tag = FrmDownloadShader.ComboSearchTag.SelectedItem.Tag + .Source = CType(Val(FrmDownloadShader.ComboSearchSource.SelectedItem.Tag), CompSourceType) + End With + End If + Return Request + End Function + + '结果 UI 化 + Private Sub Load_OnFinish() + Try + Log($"[Comp] 开始可视化光影包列表,已储藏 {Storage.Results.Count} 个结果,当前在第 {Page + 1} 页") + '列表项 + PanProjects.Children.Clear() + For i = Math.Min(Page * PageSize, Storage.Results.Count - 1) To Math.Min((Page + 1) * PageSize - 1, Storage.Results.Count - 1) + PanProjects.Children.Add(Storage.Results(i).ToCompItem(Loader.Input.GameVersion Is Nothing, False)) + Next + '页码 + CardPages.Visibility = If(Storage.Results.Count > 40 OrElse + Storage.CurseForgeOffset < Storage.CurseForgeTotal OrElse Storage.ModrinthOffset < Storage.ModrinthTotal, + Visibility.Visible, Visibility.Collapsed) + LabPage.Text = Page + 1 + BtnPageFirst.IsEnabled = Page > 1 + BtnPageFirst.Opacity = If(BtnPageFirst.IsEnabled, 1, 0.2) + BtnPageLeft.IsEnabled = Page > 0 + BtnPageLeft.Opacity = If(BtnPageLeft.IsEnabled, 1, 0.2) + BtnPageRight.IsEnabled = Storage.Results.Count > PageSize * (Page + 1) OrElse + Storage.CurseForgeOffset < Storage.CurseForgeTotal OrElse Storage.ModrinthOffset < Storage.ModrinthTotal + BtnPageRight.Opacity = If(BtnPageRight.IsEnabled, 1, 0.2) + '错误信息 + If Storage.ErrorMessage Is Nothing Then + HintError.Visibility = Visibility.Collapsed + Else + HintError.Visibility = Visibility.Visible + HintError.Text = Storage.ErrorMessage + End If + '强制返回顶部 + PanBack.ScrollToTop() + Catch ex As Exception + Log(ex, "可视化光影包列表出错", LogLevel.Feedback) + End Try + End Sub + + '自动重试 + Private Sub Load_State(sender As Object, state As MyLoading.MyLoadingState, oldState As MyLoading.MyLoadingState) Handles Load.StateChanged + Select Case Loader.State + Case LoadState.Failed + Dim ErrorMessage As String = "" + If Loader.Error IsNot Nothing Then ErrorMessage = Loader.Error.Message + If ErrorMessage.Contains("不是有效的 JSON 文件") Then + Log("[Download] 下载的光影包列表 JSON 文件损坏,已自动重试", LogLevel.Debug) + PageLoaderRestart() + End If + End Select + End Sub + + '切换页码 + + Private Sub BtnPageFirst_Click(sender As Object, e As RoutedEventArgs) Handles BtnPageFirst.Click + ChangePage(0) + End Sub + Private Sub BtnPageLeft_Click(sender As Object, e As RoutedEventArgs) Handles BtnPageLeft.Click + ChangePage(Page - 1) + End Sub + Private Sub BtnPageRight_Click(sender As Object, e As RoutedEventArgs) Handles BtnPageRight.Click + ChangePage(Page + 1) + End Sub + Private Sub ChangePage(NewPage As Integer) + CardPages.IsEnabled = False + Page = NewPage + FrmMain.BackToTop() + Log($"[Download] 光影包切换到第 {Page + 1} 页") + RunInThread(Sub() + Thread.Sleep(100) '等待向上滚的动画结束 + RunInUi(Sub() CardPages.IsEnabled = True) + Loader.Start() + End Sub) + End Sub + +#Region "搜索" + + '搜索按钮 + Private Sub StartNewSearch() Handles BtnSearchRun.Click + Page = 0 + If Loader.ShouldStart(LoaderInput()) Then Storage = New CompProjectStorage '避免连续搜索两次使得 CompProjectStorage 引用丢失(#1311) + Loader.Start() + End Sub + Private Sub EnterTrigger(sender As Object, e As KeyEventArgs) Handles TextSearchName.KeyDown, TextSearchVersion.KeyDown + If e.Key = Key.Enter Then StartNewSearch() + End Sub + + '重置按钮 + Private Sub BtnSearchReset_Click(sender As Object, e As EventArgs) Handles BtnSearchReset.Click + TextSearchName.Text = "" + TextSearchVersion.Text = "全部 (也可自行输入)" + TextSearchVersion.SelectedIndex = 0 + ComboSearchSource.SelectedIndex = 0 + ComboSearchTag.SelectedIndex = 0 + Loader.LastFinishedTime = 0 '要求强制重新开始 + End Sub + +#End Region + +End Class diff --git a/Plain Craft Launcher 2/Plain Craft Launcher 2.vbproj b/Plain Craft Launcher 2/Plain Craft Launcher 2.vbproj index d68df7a..e130435 100644 --- a/Plain Craft Launcher 2/Plain Craft Launcher 2.vbproj +++ b/Plain Craft Launcher 2/Plain Craft Launcher 2.vbproj @@ -185,9 +185,6 @@ MyIconTextButton.xaml - - - @@ -250,6 +247,9 @@ PageDownloadPack.xaml + + PageDownloadShader.xaml + FormLoginOAuth.xaml @@ -472,7 +472,6 @@ FormMain.xaml Code - MSBuild:Compile Designer @@ -505,6 +504,10 @@ Designer MSBuild:Compile + + MSBuild:Compile + Designer + Designer MSBuild:Compile @@ -928,7 +931,6 @@ - From f45322905f83bba83ffc2205a4e6d61b386fdd57 Mon Sep 17 00:00:00 2001 From: Pigeon0v0 Date: Sat, 27 Jul 2024 12:54:27 +0800 Subject: [PATCH 06/17] =?UTF-8?q?feat:=20=E6=95=B0=E6=8D=AE=E5=8C=85?= =?UTF-8?q?=E4=B8=8B=E8=BD=BD=20(WIP)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Plain Craft Launcher 2/FormMain.xaml.vb | 1 + .../Modules/Minecraft/ModComp.vb | 8 +- Plain Craft Launcher 2/Modules/ModMain.vb | 1 + .../PageDownload/PageDownloadDataPack.xaml | 115 +++++++++++++++++ .../PageDownload/PageDownloadDataPack.xaml.vb | 122 ++++++++++++++++++ .../Pages/PageDownload/PageDownloadLeft.xaml | 8 ++ .../PageDownload/PageDownloadLeft.xaml.vb | 11 +- .../Plain Craft Launcher 2.vbproj | 12 +- 8 files changed, 270 insertions(+), 8 deletions(-) create mode 100644 Plain Craft Launcher 2/Pages/PageDownload/PageDownloadDataPack.xaml create mode 100644 Plain Craft Launcher 2/Pages/PageDownload/PageDownloadDataPack.xaml.vb diff --git a/Plain Craft Launcher 2/FormMain.xaml.vb b/Plain Craft Launcher 2/FormMain.xaml.vb index 265004e..5251dcc 100644 --- a/Plain Craft Launcher 2/FormMain.xaml.vb +++ b/Plain Craft Launcher 2/FormMain.xaml.vb @@ -1062,6 +1062,7 @@ Install: DownloadLiteLoader = 9 DownloadMod = 11 DownloadPack = 12 + DownloadDataPack = 15 SetupLaunch = 0 SetupUI = 1 SetupSystem = 2 diff --git a/Plain Craft Launcher 2/Modules/Minecraft/ModComp.vb b/Plain Craft Launcher 2/Modules/Minecraft/ModComp.vb index 44ce4d0..c5548ee 100644 --- a/Plain Craft Launcher 2/Modules/Minecraft/ModComp.vb +++ b/Plain Craft Launcher 2/Modules/Minecraft/ModComp.vb @@ -13,6 +13,10 @@ ''' 资源包。 ''' ResourcePack = 2 + ''' + ''' 数据包。 + ''' + DataPack = 4 End Enum Public Enum CompModLoaderType 'https://docs.curseforge.com/?http#tocS_ModLoaderType @@ -748,8 +752,8 @@ NoSubtitle: Address += "&classId=6" Case CompType.ModPack Address += "&classId=4471" - Case CompType.ResourcePack - 'FUTURE: Res + Case CompType.DataPack + Address += "&classId=6945" End Select Address += "&categoryId=" & If(Tag = "", "0", Tag.Before("/")) If ModLoader <> CompModLoaderType.Any Then Address += "&modLoaderType=" & CType(ModLoader, Integer) diff --git a/Plain Craft Launcher 2/Modules/ModMain.vb b/Plain Craft Launcher 2/Modules/ModMain.vb index a971886..c2f845a 100644 --- a/Plain Craft Launcher 2/Modules/ModMain.vb +++ b/Plain Craft Launcher 2/Modules/ModMain.vb @@ -398,6 +398,7 @@ EndHint: Public FrmDownloadFabric As PageDownloadFabric Public FrmDownloadMod As PageDownloadMod Public FrmDownloadPack As PageDownloadPack + Public FrmDownloadDataPack As PageDownloadDataPack '设置页面声明 Public FrmSetupLeft As PageSetupLeft diff --git a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadDataPack.xaml b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadDataPack.xaml new file mode 100644 index 0000000..6edbc9a --- /dev/null +++ b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadDataPack.xaml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadDataPack.xaml.vb b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadDataPack.xaml.vb new file mode 100644 index 0000000..3adc461 --- /dev/null +++ b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadDataPack.xaml.vb @@ -0,0 +1,122 @@ +Public Class PageDownloadDataPack + + Public Const PageSize = 40 + + '加载器信息 + Public Shared Loader As New LoaderTask(Of CompProjectRequest, Integer)("CompProject Shader", AddressOf CompProjectsGet, AddressOf LoaderInput) With {.ReloadTimeout = 60 * 1000} + Public Shared Storage As New CompProjectStorage + Public Shared Page As Integer = 0 + Private Sub PageDownloadShader_Inited(sender As Object, e As EventArgs) Handles Me.Initialized + PageLoaderInit(Load, PanLoad, PanContent, PanAlways, Loader, AddressOf Load_OnFinish, AddressOf LoaderInput) + If McVersionHighest = -1 Then McVersionHighest = Math.Max(McVersionHighest, Integer.Parse(CType(TextSearchVersion.Items(1), MyComboBoxItem).Content.ToString.Split(".")(1))) + End Sub + Private Shared Function LoaderInput() As CompProjectRequest + Dim Request As New CompProjectRequest(CompType.DataPack, Storage, (Page + 1) * PageSize) + If FrmDownloadDataPack IsNot Nothing Then + With Request + .SearchText = FrmDownloadDataPack.TextSearchName.Text + .GameVersion = If(FrmDownloadDataPack.TextSearchVersion.Text = "全部 (也可自行输入)", Nothing, + If(FrmDownloadDataPack.TextSearchVersion.Text.Contains(".") OrElse FrmDownloadDataPack.TextSearchVersion.Text.Contains("w"), FrmDownloadDataPack.TextSearchVersion.Text, Nothing)) + .Tag = FrmDownloadDataPack.ComboSearchTag.SelectedItem.Tag + .Source = CType(Val(FrmDownloadDataPack.ComboSearchSource.SelectedItem.Tag), CompSourceType) + End With + End If + Return Request + End Function + + '结果 UI 化 + Private Sub Load_OnFinish() + Try + Log($"[Comp] 开始可视化数据包列表,已储藏 {Storage.Results.Count} 个结果,当前在第 {Page + 1} 页") + '列表项 + PanProjects.Children.Clear() + For i = Math.Min(Page * PageSize, Storage.Results.Count - 1) To Math.Min((Page + 1) * PageSize - 1, Storage.Results.Count - 1) + PanProjects.Children.Add(Storage.Results(i).ToCompItem(Loader.Input.GameVersion Is Nothing, False)) + Next + '页码 + CardPages.Visibility = If(Storage.Results.Count > 40 OrElse + Storage.CurseForgeOffset < Storage.CurseForgeTotal OrElse Storage.ModrinthOffset < Storage.ModrinthTotal, + Visibility.Visible, Visibility.Collapsed) + LabPage.Text = Page + 1 + BtnPageFirst.IsEnabled = Page > 1 + BtnPageFirst.Opacity = If(BtnPageFirst.IsEnabled, 1, 0.2) + BtnPageLeft.IsEnabled = Page > 0 + BtnPageLeft.Opacity = If(BtnPageLeft.IsEnabled, 1, 0.2) + BtnPageRight.IsEnabled = Storage.Results.Count > PageSize * (Page + 1) OrElse + Storage.CurseForgeOffset < Storage.CurseForgeTotal OrElse Storage.ModrinthOffset < Storage.ModrinthTotal + BtnPageRight.Opacity = If(BtnPageRight.IsEnabled, 1, 0.2) + '错误信息 + If Storage.ErrorMessage Is Nothing Then + HintError.Visibility = Visibility.Collapsed + Else + HintError.Visibility = Visibility.Visible + HintError.Text = Storage.ErrorMessage + End If + '强制返回顶部 + PanBack.ScrollToTop() + Catch ex As Exception + Log(ex, "可视化数据包列表出错", LogLevel.Feedback) + End Try + End Sub + + '自动重试 + Private Sub Load_State(sender As Object, state As MyLoading.MyLoadingState, oldState As MyLoading.MyLoadingState) Handles Load.StateChanged + Select Case Loader.State + Case LoadState.Failed + Dim ErrorMessage As String = "" + If Loader.Error IsNot Nothing Then ErrorMessage = Loader.Error.Message + If ErrorMessage.Contains("不是有效的 JSON 文件") Then + Log("[Download] 下载的数据包列表 JSON 文件损坏,已自动重试", LogLevel.Debug) + PageLoaderRestart() + End If + End Select + End Sub + + '切换页码 + + Private Sub BtnPageFirst_Click(sender As Object, e As RoutedEventArgs) Handles BtnPageFirst.Click + ChangePage(0) + End Sub + Private Sub BtnPageLeft_Click(sender As Object, e As RoutedEventArgs) Handles BtnPageLeft.Click + ChangePage(Page - 1) + End Sub + Private Sub BtnPageRight_Click(sender As Object, e As RoutedEventArgs) Handles BtnPageRight.Click + ChangePage(Page + 1) + End Sub + Private Sub ChangePage(NewPage As Integer) + CardPages.IsEnabled = False + Page = NewPage + FrmMain.BackToTop() + Log($"[Download] 数据包切换到第 {Page + 1} 页") + RunInThread(Sub() + Thread.Sleep(100) '等待向上滚的动画结束 + RunInUi(Sub() CardPages.IsEnabled = True) + Loader.Start() + End Sub) + End Sub + +#Region "搜索" + + '搜索按钮 + Private Sub StartNewSearch() Handles BtnSearchRun.Click + Page = 0 + If Loader.ShouldStart(LoaderInput()) Then Storage = New CompProjectStorage '避免连续搜索两次使得 CompProjectStorage 引用丢失(#1311) + Loader.Start() + End Sub + Private Sub EnterTrigger(sender As Object, e As KeyEventArgs) Handles TextSearchName.KeyDown, TextSearchVersion.KeyDown + If e.Key = Key.Enter Then StartNewSearch() + End Sub + + '重置按钮 + Private Sub BtnSearchReset_Click(sender As Object, e As EventArgs) Handles BtnSearchReset.Click + TextSearchName.Text = "" + TextSearchVersion.Text = "全部 (也可自行输入)" + TextSearchVersion.SelectedIndex = 0 + ComboSearchSource.SelectedIndex = 0 + ComboSearchTag.SelectedIndex = 0 + Loader.LastFinishedTime = 0 '要求强制重新开始 + End Sub + +#End Region + +End Class diff --git a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadLeft.xaml b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadLeft.xaml index 8a64667..a910b04 100644 --- a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadLeft.xaml +++ b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadLeft.xaml @@ -84,6 +84,14 @@ + + + + + + + diff --git a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadLeft.xaml.vb b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadLeft.xaml.vb index 2658c33..fcd1ad1 100644 --- a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadLeft.xaml.vb +++ b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadLeft.xaml.vb @@ -10,7 +10,7 @@ ''' ''' 勾选事件改变页面。 ''' - Private Sub PageCheck(sender As MyListItem, e As RouteEventArgs) Handles ItemInstall.Check, ItemClient.Check, ItemOptiFine.Check, ItemForge.Check, ItemNeoForge.Check, ItemLiteLoader.Check, ItemMod.Check, ItemFabric.Check, ItemPack.Check + Private Sub PageCheck(sender As MyListItem, e As RouteEventArgs) Handles ItemInstall.Check, ItemClient.Check, ItemOptiFine.Check, ItemForge.Check, ItemNeoForge.Check, ItemLiteLoader.Check, ItemMod.Check, ItemFabric.Check, ItemPack.Check, ItemDataPack.Check '尚未初始化控件属性时,sender.Tag 为 Nothing,会导致切换到页面 0 '若使用 IsLoaded,则会导致模拟点击不被执行(模拟点击切换页面时,控件的 IsLoaded 为 False) If sender.Tag IsNot Nothing Then PageChange(Val(sender.Tag)) @@ -46,6 +46,9 @@ Case FormMain.PageSubType.DownloadPack If FrmDownloadPack Is Nothing Then FrmDownloadPack = New PageDownloadPack Return FrmDownloadPack + Case FormMain.PageSubType.DownloadDataPack + If FrmDownloadDataPack Is Nothing Then FrmDownloadDataPack = New PageDownloadDataPack + Return FrmDownloadDataPack Case Else Throw New Exception("未知的下载子页面种类:" & ID) End Select @@ -114,6 +117,12 @@ CompProjectCache.Clear() If FrmDownloadPack IsNot Nothing Then FrmDownloadPack.PageLoaderRestart() ItemPack.Checked = True + Case FormMain.PageSubType.DownloadDataPack + PageDownloadDataPack.Storage = New CompProjectStorage + PageDownloadDataPack.Page = 0 + CompProjectCache.Clear() + If FrmDownloadDataPack IsNot Nothing Then FrmDownloadDataPack.PageLoaderRestart() + ItemDataPack.Checked = True Case FormMain.PageSubType.DownloadClient DlClientListLoader.Start(IsForceRestart:=True) ItemClient.Checked = True diff --git a/Plain Craft Launcher 2/Plain Craft Launcher 2.vbproj b/Plain Craft Launcher 2/Plain Craft Launcher 2.vbproj index d68df7a..85fb0fc 100644 --- a/Plain Craft Launcher 2/Plain Craft Launcher 2.vbproj +++ b/Plain Craft Launcher 2/Plain Craft Launcher 2.vbproj @@ -185,9 +185,6 @@ MyIconTextButton.xaml - - - @@ -232,6 +229,9 @@ MyCompItem.xaml + + PageDownloadDataPack.xaml + PageDownloadMod.xaml @@ -472,7 +472,6 @@ FormMain.xaml Code - MSBuild:Compile Designer @@ -481,6 +480,10 @@ MSBuild:Compile Designer + + MSBuild:Compile + Designer + Designer MSBuild:Compile @@ -928,7 +931,6 @@ - From 94ccc00f95dda56a8b2538aa8513f55c025d386c Mon Sep 17 00:00:00 2001 From: Pigeon0v0 Date: Sat, 27 Jul 2024 16:45:04 +0800 Subject: [PATCH 07/17] =?UTF-8?q?fix:=20=E5=85=89=E5=BD=B1=E5=8C=85?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E5=8A=A0=E8=BD=BD=E5=8A=A8=E7=94=BB=E6=96=87?= =?UTF-8?q?=E6=9C=AC=E9=94=99=E8=AF=AF=20fix:=20=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=20Modrinth=20=E4=B8=8A=20Vanilla=20Shader=20?= =?UTF-8?q?=E5=88=86=E7=B1=BB=E7=9A=84=E5=85=89=E5=BD=B1=EF=BC=88=E5=8E=9F?= =?UTF-8?q?=20URL=20=E5=86=99=E9=94=99=E4=BA=86=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Plain Craft Launcher 2/Modules/Minecraft/ModComp.vb | 2 +- .../Pages/PageDownload/PageDownloadShader.xaml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Plain Craft Launcher 2/Modules/Minecraft/ModComp.vb b/Plain Craft Launcher 2/Modules/Minecraft/ModComp.vb index b1e6fe7..120b52d 100644 --- a/Plain Craft Launcher 2/Modules/Minecraft/ModComp.vb +++ b/Plain Craft Launcher 2/Modules/Minecraft/ModComp.vb @@ -423,7 +423,7 @@ Case "canvas" : Tags.Add("Canvas") Case "iris" : Tags.Add("Iris") Case "optifine" : Tags.Add("OptiFine") - Case "vanilla-shader" : Tags.Add("原版光影") + Case "vanilla" : Tags.Add("原版光影") End Select Next If Not Tags.Any() Then Tags.Add("杂项") diff --git a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadShader.xaml b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadShader.xaml index 6e40136..67b3a07 100644 --- a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadShader.xaml +++ b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadShader.xaml @@ -76,7 +76,7 @@ - + @@ -108,7 +108,7 @@ - + From 51e3f47bac78f49d746872909d27145967fdc50b Mon Sep 17 00:00:00 2001 From: Pigeon0v0 <60414767+Pigeon0v0@users.noreply.github.com> Date: Sat, 27 Jul 2024 17:01:20 +0800 Subject: [PATCH 08/17] =?UTF-8?q?chores:=20=E4=BF=AE=E6=94=B9=E6=A0=87?= =?UTF-8?q?=E7=AD=BE=EF=BC=8C=E6=B6=88=E9=99=A4=E6=AD=A7=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Pages/PageDownload/PageDownloadResourcePack.xaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadResourcePack.xaml b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadResourcePack.xaml index a3b60fc..6ce439f 100644 --- a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadResourcePack.xaml +++ b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadResourcePack.xaml @@ -1,4 +1,4 @@ - - + From c1ba65783d823f3f10fffe270e2d11814c4a501d Mon Sep 17 00:00:00 2001 From: Pigeon0v0 Date: Sat, 27 Jul 2024 18:33:04 +0800 Subject: [PATCH 09/17] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81=E5=8A=A0?= =?UTF-8?q?=E8=BD=BD=E6=95=B0=E6=8D=AE=E5=8C=85=E5=88=97=E8=A1=A8=EF=BC=88?= =?UTF-8?q?=E4=BD=86=E6=98=AF=E4=B8=8B=E4=B8=8D=E4=BA=86=E4=B8=80=E7=82=B9?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Plain Craft Launcher 2/FormMain.xaml.vb | 2 + .../Modules/Minecraft/ModComp.vb | 36 ++++++++++++-- .../Modules/Minecraft/MyCompItem.xaml.vb | 2 + .../PageDownload/PageDownloadDataPack.xaml | 48 +++++++++---------- 4 files changed, 59 insertions(+), 29 deletions(-) diff --git a/Plain Craft Launcher 2/FormMain.xaml.vb b/Plain Craft Launcher 2/FormMain.xaml.vb index 5251dcc..17a6a42 100644 --- a/Plain Craft Launcher 2/FormMain.xaml.vb +++ b/Plain Craft Launcher 2/FormMain.xaml.vb @@ -1098,6 +1098,8 @@ Install: Return "Mod 下载 - " & Project.TranslatedName Case CompType.ModPack Return "整合包下载 - " & Project.TranslatedName + Case CompType.DataPack + Return "数据包下载 - " & Project.TranslatedName Case Else 'CompType.ResourcePack Return "资源包下载 - " & Project.TranslatedName End Select diff --git a/Plain Craft Launcher 2/Modules/Minecraft/ModComp.vb b/Plain Craft Launcher 2/Modules/Minecraft/ModComp.vb index c5548ee..1e7c7f5 100644 --- a/Plain Craft Launcher 2/Modules/Minecraft/ModComp.vb +++ b/Plain Craft Launcher 2/Modules/Minecraft/ModComp.vb @@ -277,8 +277,10 @@ Type = CompType.Mod ElseIf Website.Contains("/modpacks/") Then Type = CompType.ModPack - Else + ElseIf Website.Contains("/resourcepacks/") Then Type = CompType.ResourcePack + Else + Type = CompType.DataPack End If 'Tags Tags = New List(Of String) @@ -325,7 +327,15 @@ Case 4480 : Tags.Add("基于地图") Case 4481 : Tags.Add("轻量") Case 4482 : Tags.Add("大型") - 'FUTURE: Res + '数据包 + Case 6946 : Tags.Add("Mod 支持") + Case 6947 : Tags.Add("杂项") + Case 6948 : Tags.Add("冒险") + Case 6949 : Tags.Add("幻想") + Case 6950 : Tags.Add("支持库") + Case 6951 : Tags.Add("科技") + Case 6952 : Tags.Add("魔法") + Case 6953 : Tags.Add("实用工具") End Select Next If Not Tags.Any() Then Tags.Add("杂项") @@ -353,6 +363,7 @@ Case "mod" : Type = CompType.Mod Case "modpack" : Type = CompType.ModPack Case "resourcepack" : Type = CompType.ResourcePack + Case "datapack" : Type = CompType.DataPack End Select 'Tags & ModLoaders Tags = New List(Of String) @@ -391,7 +402,26 @@ Case "adventure" : Tags.Add("冒险") Case "kitchen-sink" : Tags.Add("烹饪") Case "lightweight" : Tags.Add("轻量") - 'FUTURE: Res + '数据包 + Case "adventure" : Tags.Add("冒险") + Case "cursed" : Tags.Add("Cursed") + Case "decoration" : Tags.Add("装饰") + Case "economy" : Tags.Add("经济") + Case "equipment" : Tags.Add("装备") + Case "food" : Tags.Add("食物") + Case "game-mechanics" : Tags.Add("游戏机制") + Case "library" : Tags.Add("支持库") + Case "magic" : Tags.Add("魔法") + Case "management" : Tags.Add("管理") + Case "minigame" : Tags.Add("小游戏") + Case "mobs" : Tags.Add("生物") + Case "optimization" : Tags.Add("优化") + Case "social" : Tags.Add("社交") + Case "storage" : Tags.Add("存储") + Case "technology" : Tags.Add("科技") + Case "transportation" : Tags.Add("交通") + Case "utility" : Tags.Add("实用工具") + Case "worldgen" : Tags.Add("世界生成") End Select Next If Not Tags.Any() Then Tags.Add("杂项") diff --git a/Plain Craft Launcher 2/Modules/Minecraft/MyCompItem.xaml.vb b/Plain Craft Launcher 2/Modules/Minecraft/MyCompItem.xaml.vb index 6bf0f72..81f03f4 100644 --- a/Plain Craft Launcher 2/Modules/Minecraft/MyCompItem.xaml.vb +++ b/Plain Craft Launcher 2/Modules/Minecraft/MyCompItem.xaml.vb @@ -191,6 +191,8 @@ RetryStart: TargetLoader = PageDownloadMod.Loader.Input.ModLoader Case CompType.ModPack TargetVersion = If(PageDownloadPack.Loader.Input.GameVersion, "") + Case CompType.DataPack + TargetVersion = If(PageDownloadDataPack.Loader.Input.GameVersion, "") Case Else 'CompType.ResourcePack 'FUTURE: Res TargetVersion = "" 'If(PageDownloadResource.Loader.Input.GameVersion, "") diff --git a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadDataPack.xaml b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadDataPack.xaml index 6edbc9a..ea52676 100644 --- a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadDataPack.xaml +++ b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadDataPack.xaml @@ -51,32 +51,28 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + @@ -108,7 +104,7 @@ - + From 9d3be210904be25056905d63b511df86a01df87a Mon Sep 17 00:00:00 2001 From: Pigeon0v0 Date: Sun, 22 Sep 2024 10:15:49 +0800 Subject: [PATCH 10/17] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=BA=86?= =?UTF-8?q?=E6=9F=A5=E7=9C=8B=E6=95=B0=E6=8D=AE=E5=8C=85=E5=B7=A5=E7=A8=8B?= =?UTF-8?q?=E6=97=B6=E5=B4=A9=E6=BA=83=E7=9A=84=E9=97=AE=E9=A2=98=EF=BC=8C?= =?UTF-8?q?=E4=BD=86=E5=8F=AF=E8=83=BD=E4=BC=9A=E7=82=B8=E6=8E=89=E7=82=B9?= =?UTF-8?q?=E5=88=AB=E7=9A=84=E4=B8=9C=E8=A5=BF=EF=BC=8C=E9=9C=80=E8=A6=81?= =?UTF-8?q?=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Plain Craft Launcher 2/FormMain.xaml.vb | 6 +++++- Plain Craft Launcher 2/Modules/Minecraft/ModComp.vb | 8 ++++++++ .../Pages/PageDownload/PageDownloadCompDetail.xaml.vb | 8 +++++++- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/Plain Craft Launcher 2/FormMain.xaml.vb b/Plain Craft Launcher 2/FormMain.xaml.vb index 17a6a42..cbbeabd 100644 --- a/Plain Craft Launcher 2/FormMain.xaml.vb +++ b/Plain Craft Launcher 2/FormMain.xaml.vb @@ -1099,7 +1099,11 @@ Install: Case CompType.ModPack Return "整合包下载 - " & Project.TranslatedName Case CompType.DataPack - Return "数据包下载 - " & Project.TranslatedName + If Project.IsMix Then + Return "Mod / 数据包下载 - " & Project.TranslatedName + Else + Return "数据包下载 - " & Project.TranslatedName + End If Case Else 'CompType.ResourcePack Return "资源包下载 - " & Project.TranslatedName End Select diff --git a/Plain Craft Launcher 2/Modules/Minecraft/ModComp.vb b/Plain Craft Launcher 2/Modules/Minecraft/ModComp.vb index 1e7c7f5..c600a0b 100644 --- a/Plain Craft Launcher 2/Modules/Minecraft/ModComp.vb +++ b/Plain Craft Launcher 2/Modules/Minecraft/ModComp.vb @@ -118,6 +118,10 @@ ''' Public ReadOnly Type As CompType ''' + ''' 是否为 Mod / 数据包融合工程。 + ''' + Public ReadOnly IsMix As Boolean + ''' ''' 工程的短名。例如 technical-enchant。 ''' Public ReadOnly Slug As String @@ -365,6 +369,10 @@ Case "resourcepack" : Type = CompType.ResourcePack Case "datapack" : Type = CompType.DataPack End Select + If Data("categories").ToArray.Contains("datapack") Then 'Modrinth 上的数据包由于未知原因,返回的 project_type 为 mod,这里做兜底处理 + Type = CompType.DataPack + IsMix = Data("categories").ToArray.Contains("forge") OrElse Data("categories").ToArray.Contains("fabric") OrElse Data("categories").ToArray.Contains("neoforge") OrElse Data("categories").ToArray.Contains("quilt") + End If 'Tags & ModLoaders Tags = New List(Of String) ModLoaders = New List(Of CompModLoaderType) diff --git a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadCompDetail.xaml.vb b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadCompDetail.xaml.vb index 0302160..9333ea3 100644 --- a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadCompDetail.xaml.vb +++ b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadCompDetail.xaml.vb @@ -205,7 +205,13 @@ RunInNewThread( Sub() Try - Dim Desc As String = If(Project.Type = CompType.ModPack, "整合包", If(Project.Type = CompType.Mod, "Mod ", "资源包")) + Dim Desc As String = "资源" + Select Case Project.Type + Case CompType.ModPack : Desc = "整合包" + Case CompType.Mod : Desc = "Mod " + Case CompType.ResourcePack : Desc = "资源包" + Case CompType.DataPack : Desc = If(File.FileName.EndsWith(".jar"), "Mod ", "数据包") '有些项目同时包含 Mod 版本和数据包版本 + End Select '确认默认保存位置 Dim DefaultFolder As String = Nothing If Project.Type = CompType.Mod Then From f0b32ab6f2dab32ee59a7e13f3b5bd77133d7376 Mon Sep 17 00:00:00 2001 From: Pigeon0v0 Date: Sun, 22 Sep 2024 10:24:01 +0800 Subject: [PATCH 11/17] =?UTF-8?q?chores:=20=E5=90=8C=E6=AD=A5=20#4360=20?= =?UTF-8?q?=E6=9C=89=E5=85=B3=E4=B8=8B=E8=BD=BD=E4=BB=BB=E5=8A=A1=E5=90=8D?= =?UTF-8?q?=E7=A7=B0=E7=9A=84=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Pages/PageDownload/PageDownloadCompDetail.xaml.vb | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadCompDetail.xaml.vb b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadCompDetail.xaml.vb index 60f54bd..3df5ed1 100644 --- a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadCompDetail.xaml.vb +++ b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadCompDetail.xaml.vb @@ -205,7 +205,13 @@ RunInNewThread( Sub() Try - Dim Desc As String = If(Project.Type = CompType.ModPack, "整合包", If(Project.Type = CompType.Mod, "Mod ", "资源包")) + Dim Desc As String = "资源" + Select Case Project.Type + Case CompType.ModPack : Desc = "整合包" + Case CompType.Mod : Desc = "Mod " + Case CompType.ResourcePack : Desc = "资源包" + Case CompType.Shader : Desc = "光影包" + End Select '确认默认保存位置 Dim DefaultFolder As String = Nothing If Project.Type = CompType.Mod Then From 893f791bb28e84fe66022c5de15a517e21e5155b Mon Sep 17 00:00:00 2001 From: Pigeon0v0 Date: Sun, 22 Sep 2024 10:30:14 +0800 Subject: [PATCH 12/17] =?UTF-8?q?chores:=20=E5=90=8C=E6=AD=A5=20#4360=20?= =?UTF-8?q?=E6=9C=89=E5=85=B3=E4=B8=8B=E8=BD=BD=E4=BB=BB=E5=8A=A1=E5=90=8D?= =?UTF-8?q?=E7=A7=B0=E7=9A=84=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Pages/PageDownload/PageDownloadCompDetail.xaml.vb | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadCompDetail.xaml.vb b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadCompDetail.xaml.vb index 60f54bd..7002755 100644 --- a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadCompDetail.xaml.vb +++ b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadCompDetail.xaml.vb @@ -205,7 +205,12 @@ RunInNewThread( Sub() Try - Dim Desc As String = If(Project.Type = CompType.ModPack, "整合包", If(Project.Type = CompType.Mod, "Mod ", "资源包")) + Dim Desc As String = "资源" + Select Case Project.Type + Case CompType.ModPack : Desc = "整合包" + Case CompType.Mod : Desc = "Mod " + Case CompType.ResourcePack : Desc = "资源包" + End Select '确认默认保存位置 Dim DefaultFolder As String = Nothing If Project.Type = CompType.Mod Then From 0d8b8fc2672cc9c14064d6ca04dcb3dfaa15457b Mon Sep 17 00:00:00 2001 From: Pigeon0v0 Date: Sun, 22 Sep 2024 13:14:10 +0800 Subject: [PATCH 13/17] =?UTF-8?q?fix:=20=E5=A4=9A=E6=89=93=E4=BA=86?= =?UTF-8?q?=E4=B8=80=E4=B8=AA=20s=20=E5=AF=BC=E8=87=B4=E6=9C=89=E4=BA=9B?= =?UTF-8?q?=E5=85=89=E5=BD=B1=E4=B8=8B=E4=B8=8D=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Plain Craft Launcher 2/Modules/Minecraft/ModComp.vb | 2 +- Plain Craft Launcher 2/Modules/Minecraft/MyCompItem.xaml.vb | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Plain Craft Launcher 2/Modules/Minecraft/ModComp.vb b/Plain Craft Launcher 2/Modules/Minecraft/ModComp.vb index eec5450..9ddc09d 100644 --- a/Plain Craft Launcher 2/Modules/Minecraft/ModComp.vb +++ b/Plain Craft Launcher 2/Modules/Minecraft/ModComp.vb @@ -359,7 +359,7 @@ Case "mod" : Type = CompType.Mod Case "modpack" : Type = CompType.ModPack Case "resourcepack" : Type = CompType.ResourcePack - Case "shaders" : Type = CompType.Shader + Case "shader" : Type = CompType.Shader End Select 'Tags & ModLoaders Tags = New List(Of String) diff --git a/Plain Craft Launcher 2/Modules/Minecraft/MyCompItem.xaml.vb b/Plain Craft Launcher 2/Modules/Minecraft/MyCompItem.xaml.vb index ee52b36..d9b29db 100644 --- a/Plain Craft Launcher 2/Modules/Minecraft/MyCompItem.xaml.vb +++ b/Plain Craft Launcher 2/Modules/Minecraft/MyCompItem.xaml.vb @@ -194,6 +194,8 @@ RetryStart: TargetLoader = PageDownloadMod.Loader.Input.ModLoader Case CompType.ModPack TargetVersion = If(PageDownloadPack.Loader.Input.GameVersion, "") + Case CompType.Shader + TargetVersion = If(PageDownloadShader.Loader.Input.GameVersion, "") Case Else 'CompType.ResourcePack 'FUTURE: Res TargetVersion = "" 'If(PageDownloadResource.Loader.Input.GameVersion, "") From 4de4577103415d93c9261d53035deeeae4b0e678 Mon Sep 17 00:00:00 2001 From: Pigeon0v0 <60414767+Pigeon0v0@users.noreply.github.com> Date: Tue, 1 Oct 2024 14:38:18 +0800 Subject: [PATCH 14/17] =?UTF-8?q?ui:=20=E4=BB=8E#4770=20=E5=81=B7=E6=9D=A5?= =?UTF-8?q?=E4=BA=86=E4=B8=80=E4=B8=AA=20Icon?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Plain Craft Launcher 2/Pages/PageDownload/PageDownloadLeft.xaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadLeft.xaml b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadLeft.xaml index 27bd0a1..3a51612 100644 --- a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadLeft.xaml +++ b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadLeft.xaml @@ -85,7 +85,7 @@ + LogoScale="0.98" Logo="M913.066667 264.533333l-371.2-209.066666c-25.6-12.8-59.733333-12.8-85.333334 0L89.6 264.533333C34.133333 298.666667 34.133333 379.733333 89.6 413.866667l371.2 209.066666c25.6 12.8 59.733333 12.8 85.333333 0l371.2-209.066666c55.466667-34.133333 55.466667-119.466667-4.266666-149.333334z m-413.866667 281.6L132.266667 337.066667 499.2 128l371.2 209.066667-371.2 209.066666z M46.933333 516.266667c12.8-21.333333 38.4-25.6 59.733334-17.066667l384 221.866667c12.8 8.533333 29.866667 8.533333 42.666666 0l388.266667-217.6c21.333333-12.8 46.933333-4.266667 59.733333 17.066666 12.8 21.333333 4.266667 46.933333-17.066666 59.733334l-388.266667 217.6c-38.4 21.333333-89.6 21.333333-128 0l-384-221.866667c-21.333333-12.8-25.6-38.4-17.066667-59.733333z M106.666667 669.866667c-21.333333-12.8-46.933333-4.266667-59.733334 17.066666-12.8 21.333333-4.266667 46.933333 17.066667 59.733334l388.266667 217.6c38.4 21.333333 85.333333 21.333333 128 0l379.733333-217.6c21.333333-12.8 25.6-38.4 17.066667-59.733334-12.8-21.333333-38.4-25.6-59.733334-17.066666l-379.733333 217.6c-12.8 8.533333-29.866667 8.533333-42.666667 0l-388.266666-217.6z"> From 4a6a17e380fd01aa058fa51702750569f63ddfe5 Mon Sep 17 00:00:00 2001 From: Pigeon0v0 <60414767+Pigeon0v0@users.noreply.github.com> Date: Tue, 1 Oct 2024 14:39:08 +0800 Subject: [PATCH 15/17] =?UTF-8?q?ui:=20=E4=BB=8E#4770=20=E5=81=B7=E6=9D=A5?= =?UTF-8?q?=E4=BA=86=E4=B8=80=E4=B8=AA=20Icon?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Plain Craft Launcher 2/Pages/PageDownload/PageDownloadLeft.xaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadLeft.xaml b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadLeft.xaml index 451e351..1031d8b 100644 --- a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadLeft.xaml +++ b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadLeft.xaml @@ -85,7 +85,7 @@ + LogoScale="0.98" Logo="M640 810.666667 384 810.666667c-25.6 0-42.666667-17.066667-42.666667-42.666667l0-21.333333c0-59.733333-25.6-119.466667-72.533333-166.4C200.533333 512 166.4 422.4 170.666667 328.533333 179.2 149.333333 328.533333 4.266667 507.733333 0L512 0c187.733333 0 341.333333 153.6 341.333333 341.333333 0 89.6-34.133333 179.2-102.4 243.2-46.933333 42.666667-68.266667 102.4-68.266667 162.133333L682.666667 768C682.666667 793.6 665.6 810.666667 640 810.666667zM426.666667 725.333333l170.666667 0c4.266667-76.8 38.4-145.066667 93.866667-204.8C742.4 473.6 768 409.6 768 341.333333c0-140.8-115.2-256-256-256l-4.266667 0C375.466667 89.6 260.266667 196.266667 256 332.8 251.733333 401.066667 281.6 469.333333 328.533333 520.533333 388.266667 580.266667 422.4 652.8 426.666667 725.333333z M512 1024 512 1024c-93.866667 0-170.666667-76.8-170.666667-170.666667l0-85.333333c0-25.6 17.066667-42.666667 42.666667-42.666667l256 0c25.6 0 42.666667 17.066667 42.666667 42.666667l0 85.333333C682.666667 947.2 605.866667 1024 512 1024zM426.666667 810.666667l0 42.666667c0 46.933333 38.4 85.333333 85.333333 85.333333L512 938.666667c46.933333 0 85.333333-38.4 85.333333-85.333333l0-42.666667L426.666667 810.666667z M384 384C358.4 384 341.333333 366.933333 341.333333 341.333333c0-93.866667 76.8-170.666667 170.666667-170.666667 25.6 0 42.666667 17.066667 42.666667 42.666667s-17.066667 42.666667-42.666667 42.666667c-46.933333 0-85.333333 38.4-85.333333 85.333333C426.666667 366.933333 409.6 384 384 384z"> From 5177d3ca0b47a16c56633c40d8e9fe39d2d7db6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BE=99=E8=85=BE=E7=8C=AB=E8=B7=83?= <1043137532@qq.com> Date: Mon, 28 Apr 2025 02:49:05 +0800 Subject: [PATCH 16/17] =?UTF-8?q?fix:=20=E5=93=AA=E5=84=BF=E6=9D=A5?= =?UTF-8?q?=E7=9A=84=20FormLoginOAuth?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Plain Craft Launcher 2/Plain Craft Launcher 2.vbproj | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/Plain Craft Launcher 2/Plain Craft Launcher 2.vbproj b/Plain Craft Launcher 2/Plain Craft Launcher 2.vbproj index 4e8c425..0edfa1f 100644 --- a/Plain Craft Launcher 2/Plain Craft Launcher 2.vbproj +++ b/Plain Craft Launcher 2/Plain Craft Launcher 2.vbproj @@ -266,9 +266,6 @@ PageDownloadShader.xaml - - FormLoginOAuth.xaml - MyMsgLogin.xaml @@ -542,10 +539,6 @@ MSBuild:Compile Designer - - MSBuild:Compile - Designer - MSBuild:Compile Designer @@ -965,4 +958,4 @@ - \ No newline at end of file + From e51a5cb6c233ed2bbbdc8e50129de16912a73bb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BE=99=E8=85=BE=E7=8C=AB=E8=B7=83?= <1043137532@qq.com> Date: Mon, 28 Apr 2025 02:53:53 +0800 Subject: [PATCH 17/17] =?UTF-8?q?fix:=20=E7=BC=96=E8=AF=91=E9=94=99?= =?UTF-8?q?=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Modules/Minecraft/MyCompItem.xaml.vb | 2 +- .../Pages/PageDownload/PageDownloadLeft.xaml | 31 +++++-------------- 2 files changed, 8 insertions(+), 25 deletions(-) diff --git a/Plain Craft Launcher 2/Modules/Minecraft/MyCompItem.xaml.vb b/Plain Craft Launcher 2/Modules/Minecraft/MyCompItem.xaml.vb index 5f3ec5f..872ff89 100644 --- a/Plain Craft Launcher 2/Modules/Minecraft/MyCompItem.xaml.vb +++ b/Plain Craft Launcher 2/Modules/Minecraft/MyCompItem.xaml.vb @@ -120,7 +120,7 @@ Case CompType.Shader TargetVersion = If(PageDownloadShader.Loader.Input.GameVersion, "") Case Else 'CompType.ResourcePack - TargetVersion = If(PageDownloadResource.Loader.Input.GameVersion, "") + TargetVersion = If(PageDownloadResourcePack.Loader.Input.GameVersion, "") End Select End If If CType(sender.Tag, CompProject).Type <> CompType.Mod Then TargetLoader = CompModLoaderType.Any diff --git a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadLeft.xaml b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadLeft.xaml index 42056fd..9ab650c 100644 --- a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadLeft.xaml +++ b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadLeft.xaml @@ -101,31 +101,14 @@ - - - - - - - - - - - - - - - - - - - - - - + + + + + +