From 7534f9da1f1eabe8611318bb85d18bc2039959d6 Mon Sep 17 00:00:00 2001 From: huangyu <96684075+tmdakm@users.noreply.github.com> Date: Sat, 3 Aug 2024 21:04:57 +0800 Subject: [PATCH 01/22] Read JvmArgs and LaunchArgs in ModPack --- Plain Craft Launcher 2/Modules/Minecraft/ModModpack.vb | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Plain Craft Launcher 2/Modules/Minecraft/ModModpack.vb b/Plain Craft Launcher 2/Modules/Minecraft/ModModpack.vb index 7dacc5d..bb0c9bb 100644 --- a/Plain Craft Launcher 2/Modules/Minecraft/ModModpack.vb +++ b/Plain Craft Launcher 2/Modules/Minecraft/ModModpack.vb @@ -771,6 +771,14 @@ Retry: '开启版本隔离 WriteIni(PathMcFolder & "versions\" & VersionName & "\PCL\Setup.ini", "VersionArgumentIndie", 1) End Sub) With {.ProgressWeight = New FileInfo(FileAddress).Length / 1024 / 1024 / 6, .Block = False}) '每 6M 需要 1s + If Json("launchInfo") Is Nothing Then + Log("[ModPack] 整合包中未找到启动信息,已跳过") + Else + Dim launchInfo as JObject = Json("launchInfo) + Dim launchArgument As String = String.Join(" ", launchInfo("launchArgument")) + Dim javaArgument As String = String.Join(" ", launchInfo("javaArgument")) + WriteIni(PathMcFolder & "versions\" & VersionName & "\PCL\Setup.ini", "VersionAdvanceJvm", javaArgument) + WriteIni(PathMcFolder & "versions\" & VersionName & "\PCL\Setup.ini", "VersionAdvanceLaunch", launchArgument) '构造加载器 If Json("addons") Is Nothing Then Hint("该整合包未提供游戏版本附加信息,无法安装!", HintType.Critical) From 40e421ee3400a73a934bebb73a40d17df8bfa501 Mon Sep 17 00:00:00 2001 From: huangyu <96684075+tmdakm@users.noreply.github.com> Date: Sat, 3 Aug 2024 21:15:18 +0800 Subject: [PATCH 02/22] launchArgument to VersionAdvanceGame --- Plain Craft Launcher 2/Modules/Minecraft/ModModpack.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plain Craft Launcher 2/Modules/Minecraft/ModModpack.vb b/Plain Craft Launcher 2/Modules/Minecraft/ModModpack.vb index bb0c9bb..b0e4ffe 100644 --- a/Plain Craft Launcher 2/Modules/Minecraft/ModModpack.vb +++ b/Plain Craft Launcher 2/Modules/Minecraft/ModModpack.vb @@ -778,7 +778,7 @@ Retry: Dim launchArgument As String = String.Join(" ", launchInfo("launchArgument")) Dim javaArgument As String = String.Join(" ", launchInfo("javaArgument")) WriteIni(PathMcFolder & "versions\" & VersionName & "\PCL\Setup.ini", "VersionAdvanceJvm", javaArgument) - WriteIni(PathMcFolder & "versions\" & VersionName & "\PCL\Setup.ini", "VersionAdvanceLaunch", launchArgument) + WriteIni(PathMcFolder & "versions\" & VersionName & "\PCL\Setup.ini", "VersionAdvanceGame", launchArgument) '构造加载器 If Json("addons") Is Nothing Then Hint("该整合包未提供游戏版本附加信息,无法安装!", HintType.Critical) From 53578a8de9bf1cfbb6a8d8e54f6015738cdff8a4 Mon Sep 17 00:00:00 2001 From: huangyu <96684075+tmdakm@users.noreply.github.com> Date: Sat, 3 Aug 2024 21:46:42 +0800 Subject: [PATCH 03/22] Update Plain Craft Launcher 2/Modules/Minecraft/ModModpack.vb Co-authored-by: allMagic <116283787+allMagicNB@users.noreply.github.com> --- Plain Craft Launcher 2/Modules/Minecraft/ModModpack.vb | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Plain Craft Launcher 2/Modules/Minecraft/ModModpack.vb b/Plain Craft Launcher 2/Modules/Minecraft/ModModpack.vb index b0e4ffe..0d49441 100644 --- a/Plain Craft Launcher 2/Modules/Minecraft/ModModpack.vb +++ b/Plain Craft Launcher 2/Modules/Minecraft/ModModpack.vb @@ -774,9 +774,8 @@ Retry: If Json("launchInfo") Is Nothing Then Log("[ModPack] 整合包中未找到启动信息,已跳过") Else - Dim launchInfo as JObject = Json("launchInfo) - Dim launchArgument As String = String.Join(" ", launchInfo("launchArgument")) - Dim javaArgument As String = String.Join(" ", launchInfo("javaArgument")) + Dim launchArgument As String = String.Join(" ", Json("launchInfo")("launchArgument")) + Dim javaArgument As String = String.Join(" ", Json("launchInfo")("javaArgument")) WriteIni(PathMcFolder & "versions\" & VersionName & "\PCL\Setup.ini", "VersionAdvanceJvm", javaArgument) WriteIni(PathMcFolder & "versions\" & VersionName & "\PCL\Setup.ini", "VersionAdvanceGame", launchArgument) '构造加载器 From c0f8b5c7016b5ed498b3cb7537d8d7727811ca4a Mon Sep 17 00:00:00 2001 From: huangyu <96684075+tmdakm@users.noreply.github.com> Date: Thu, 15 Aug 2024 15:07:37 +0800 Subject: [PATCH 04/22] End if --- Plain Craft Launcher 2/Modules/Minecraft/ModModpack.vb | 1 + 1 file changed, 1 insertion(+) diff --git a/Plain Craft Launcher 2/Modules/Minecraft/ModModpack.vb b/Plain Craft Launcher 2/Modules/Minecraft/ModModpack.vb index 0d49441..a079b0b 100644 --- a/Plain Craft Launcher 2/Modules/Minecraft/ModModpack.vb +++ b/Plain Craft Launcher 2/Modules/Minecraft/ModModpack.vb @@ -778,6 +778,7 @@ Retry: Dim javaArgument As String = String.Join(" ", Json("launchInfo")("javaArgument")) WriteIni(PathMcFolder & "versions\" & VersionName & "\PCL\Setup.ini", "VersionAdvanceJvm", javaArgument) WriteIni(PathMcFolder & "versions\" & VersionName & "\PCL\Setup.ini", "VersionAdvanceGame", launchArgument) + End If '构造加载器 If Json("addons") Is Nothing Then Hint("该整合包未提供游戏版本附加信息,无法安装!", HintType.Critical) From 88be968866c7ae4041838fd9bd2cde373762303b Mon Sep 17 00:00:00 2001 From: CreeperIsASpy <162774918+CreeperIsASpy@users.noreply.github.com> Date: Tue, 29 Apr 2025 21:36:19 +0800 Subject: [PATCH 05/22] fix #6222 --- .../Pages/PageSetup/ModSetup.vb | 37 ------------------ .../Pages/PageSetup/PageSetupUI.xaml.vb | 39 +++++++++++++++++++ 2 files changed, 39 insertions(+), 37 deletions(-) diff --git a/Plain Craft Launcher 2/Pages/PageSetup/ModSetup.vb b/Plain Craft Launcher 2/Pages/PageSetup/ModSetup.vb index 6c4440f..949ff5d 100644 --- a/Plain Craft Launcher 2/Pages/PageSetup/ModSetup.vb +++ b/Plain Craft Launcher 2/Pages/PageSetup/ModSetup.vb @@ -585,43 +585,6 @@ End Select End Sub - '主页 - Public Sub UiCustomType(Value As Integer) - If FrmSetupUI Is Nothing Then Exit Sub - Select Case Value - Case 0 '无 - FrmSetupUI.PanCustomPreset.Visibility = Visibility.Collapsed - FrmSetupUI.PanCustomLocal.Visibility = Visibility.Collapsed - FrmSetupUI.PanCustomNet.Visibility = Visibility.Collapsed - FrmSetupUI.HintCustom.Visibility = Visibility.Collapsed - FrmSetupUI.HintCustomWarn.Visibility = Visibility.Collapsed - Case 1 '本地 - FrmSetupUI.PanCustomPreset.Visibility = Visibility.Collapsed - FrmSetupUI.PanCustomLocal.Visibility = Visibility.Visible - FrmSetupUI.PanCustomNet.Visibility = Visibility.Collapsed - FrmSetupUI.HintCustom.Visibility = Visibility.Visible - FrmSetupUI.HintCustomWarn.Visibility = If(Setup.Get("HintCustomWarn"), Visibility.Collapsed, Visibility.Visible) - FrmSetupUI.HintCustom.Text = $"从 PCL 文件夹下的 Custom.xaml 读取主页内容。{vbCrLf}你可以手动编辑该文件,向主页添加文本、图片、常用网站、快捷启动等功能。" - FrmSetupUI.HintCustom.EventType = "" - FrmSetupUI.HintCustom.EventData = "" - Case 2 '联网 - FrmSetupUI.PanCustomPreset.Visibility = Visibility.Collapsed - FrmSetupUI.PanCustomLocal.Visibility = Visibility.Collapsed - FrmSetupUI.PanCustomNet.Visibility = Visibility.Visible - FrmSetupUI.HintCustom.Visibility = Visibility.Visible - FrmSetupUI.HintCustomWarn.Visibility = If(Setup.Get("HintCustomWarn"), Visibility.Collapsed, Visibility.Visible) - FrmSetupUI.HintCustom.Text = $"从指定网址联网获取主页内容。服主也可以用于动态更新服务器公告。{vbCrLf}如果你制作了稳定运行的联网主页,可以点击这条提示投稿,若合格即可加入预设!" - FrmSetupUI.HintCustom.EventType = "打开网页" - FrmSetupUI.HintCustom.EventData = "https://github.com/Hex-Dragon/PCL2/discussions/2528" - Case 3 '预设 - FrmSetupUI.PanCustomPreset.Visibility = Visibility.Visible - FrmSetupUI.PanCustomLocal.Visibility = Visibility.Collapsed - FrmSetupUI.PanCustomNet.Visibility = Visibility.Collapsed - FrmSetupUI.HintCustom.Visibility = Visibility.Collapsed - FrmSetupUI.HintCustomWarn.Visibility = Visibility.Collapsed - End Select - FrmSetupUI.CardCustom.TriggerForceResize() - End Sub '顶部栏 Public Sub UiLogoType(Value As Integer) diff --git a/Plain Craft Launcher 2/Pages/PageSetup/PageSetupUI.xaml.vb b/Plain Craft Launcher 2/Pages/PageSetup/PageSetupUI.xaml.vb index 9798b6d..f42c80d 100644 --- a/Plain Craft Launcher 2/Pages/PageSetup/PageSetupUI.xaml.vb +++ b/Plain Craft Launcher 2/Pages/PageSetup/PageSetupUI.xaml.vb @@ -185,6 +185,7 @@ End Sub Private Shared Sub RadioBoxChange(sender As MyRadioBox, e As Object) Handles RadioLogoType0.Check, RadioLogoType1.Check, RadioLogoType2.Check, RadioLogoType3.Check, RadioLauncherTheme0.Check, RadioLauncherTheme1.Check, RadioLauncherTheme2.Check, RadioLauncherTheme3.Check, RadioLauncherTheme4.Check, RadioLauncherTheme5.Check, RadioLauncherTheme6.Check, RadioLauncherTheme7.Check, RadioLauncherTheme8.Check, RadioLauncherTheme9.Check, RadioLauncherTheme10.Check, RadioLauncherTheme11.Check, RadioLauncherTheme12.Check, RadioLauncherTheme13.Check, RadioLauncherTheme14.Check, RadioCustomType0.Check, RadioCustomType1.Check, RadioCustomType2.Check, RadioCustomType3.Check If AniControlEnabled = 0 Then Setup.Set(sender.Tag.ToString.Split("/")(0), Val(sender.Tag.ToString.Split("/")(1))) + UiCustomType(Setup.Get("UiCustomType")) End Sub '背景图片 @@ -425,6 +426,44 @@ Refresh: "直接将主页文件拖进 PCL 窗口也可以快捷加载。", "主页自定义教程") End Sub + '主页卡片的实际处理 + Public Shared Sub UiCustomType(Value As Integer) + If FrmSetupUI Is Nothing Then Exit Sub + Select Case Value + Case 0 '无 + FrmSetupUI.PanCustomPreset.Visibility = Visibility.Collapsed + FrmSetupUI.PanCustomLocal.Visibility = Visibility.Collapsed + FrmSetupUI.PanCustomNet.Visibility = Visibility.Collapsed + FrmSetupUI.HintCustom.Visibility = Visibility.Collapsed + FrmSetupUI.HintCustomWarn.Visibility = Visibility.Collapsed + Case 1 '本地 + FrmSetupUI.PanCustomPreset.Visibility = Visibility.Collapsed + FrmSetupUI.PanCustomLocal.Visibility = Visibility.Visible + FrmSetupUI.PanCustomNet.Visibility = Visibility.Collapsed + FrmSetupUI.HintCustom.Visibility = Visibility.Visible + FrmSetupUI.HintCustomWarn.Visibility = If(Setup.Get("HintCustomWarn"), Visibility.Collapsed, Visibility.Visible) + FrmSetupUI.HintCustom.Text = $"从 PCL 文件夹下的 Custom.xaml 读取主页内容。{vbCrLf}你可以手动编辑该文件,向主页添加文本、图片、常用网站、快捷启动等功能。" + FrmSetupUI.HintCustom.EventType = "" + FrmSetupUI.HintCustom.EventData = "" + Case 2 '联网 + FrmSetupUI.PanCustomPreset.Visibility = Visibility.Collapsed + FrmSetupUI.PanCustomLocal.Visibility = Visibility.Collapsed + FrmSetupUI.PanCustomNet.Visibility = Visibility.Visible + FrmSetupUI.HintCustom.Visibility = Visibility.Visible + FrmSetupUI.HintCustomWarn.Visibility = If(Setup.Get("HintCustomWarn"), Visibility.Collapsed, Visibility.Visible) + FrmSetupUI.HintCustom.Text = $"从指定网址联网获取主页内容。服主也可以用于动态更新服务器公告。{vbCrLf}如果你制作了稳定运行的联网主页,可以点击这条提示投稿,若合格即可加入预设!" + FrmSetupUI.HintCustom.EventType = "打开网页" + FrmSetupUI.HintCustom.EventData = "https://github.com/Hex-Dragon/PCL2/discussions/2528" + Case 3 '预设 + FrmSetupUI.PanCustomPreset.Visibility = Visibility.Visible + FrmSetupUI.PanCustomLocal.Visibility = Visibility.Collapsed + FrmSetupUI.PanCustomNet.Visibility = Visibility.Collapsed + FrmSetupUI.HintCustom.Visibility = Visibility.Collapsed + FrmSetupUI.HintCustomWarn.Visibility = Visibility.Collapsed + End Select + FrmSetupUI.CardCustom.TriggerForceResize() + End Sub + '主题 Private Sub LabLauncherTheme5Unlock_MouseLeftButtonUp(sender As Object, e As MouseButtonEventArgs) Handles LabLauncherTheme5Unlock.MouseLeftButtonUp RadioLauncherTheme5Gray.Opacity -= 0.23 From c492d74568bb231a7b90de0ba78e2dad70e8f709 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=84=E5=A5=9A=E6=A2=A6=E7=81=B5?= Date: Wed, 30 Apr 2025 07:00:24 +0800 Subject: [PATCH 06/22] =?UTF-8?q?chore:=E4=BF=AE=E6=94=B9=E5=91=BD?= =?UTF-8?q?=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Pages/PageDownload/Comp/PageDownloadResourcePack.xaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plain Craft Launcher 2/Pages/PageDownload/Comp/PageDownloadResourcePack.xaml b/Plain Craft Launcher 2/Pages/PageDownload/Comp/PageDownloadResourcePack.xaml index 6526571..91932d5 100644 --- a/Plain Craft Launcher 2/Pages/PageDownload/Comp/PageDownloadResourcePack.xaml +++ b/Plain Craft Launcher 2/Pages/PageDownload/Comp/PageDownloadResourcePack.xaml @@ -19,7 +19,7 @@ - + From 1a71b72ab9612f7b8735962e2ea97ea465b2a7fa Mon Sep 17 00:00:00 2001 From: wyc-26 Date: Thu, 1 May 2025 09:33:39 +0800 Subject: [PATCH 07/22] =?UTF-8?q?feat(PageDownloadCompDetail):=20=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E4=B8=BA=E8=B5=84=E6=BA=90=E5=8C=85=E5=92=8C=E5=85=89?= =?UTF-8?q?=E5=BD=B1=E5=8C=85=E9=80=89=E6=8B=A9=E9=BB=98=E8=AE=A4=E4=B8=8B?= =?UTF-8?q?=E8=BD=BD=E4=BD=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Comp/PageDownloadCompDetail.xaml.vb | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/Plain Craft Launcher 2/Pages/PageDownload/Comp/PageDownloadCompDetail.xaml.vb b/Plain Craft Launcher 2/Pages/PageDownload/Comp/PageDownloadCompDetail.xaml.vb index 2da61cc..33fdde5 100644 --- a/Plain Craft Launcher 2/Pages/PageDownload/Comp/PageDownloadCompDetail.xaml.vb +++ b/Plain Craft Launcher 2/Pages/PageDownload/Comp/PageDownloadCompDetail.xaml.vb @@ -382,6 +382,42 @@ Log("[Comp] 使用适合的游戏版本作为默认下载位置(" & SelectedVersion.Name & ")") End If End If + ElseIf File.Type = CompType.ResourcePack OrElse File.Type = CompType.Shader Then + Dim IsVersionSuitable As Func(Of McVersion, Boolean) = + Function(Version) + If Not Version.IsLoaded Then Version.Load() + If File.GameVersions.Any(Function(v) v.Contains(".")) AndAlso + Not File.GameVersions.Any(Function(v) v.Contains(".") AndAlso v = Version.Version.McName) Then Return False + Return False + End Function + If McVersionCurrent IsNot Nothing Then + DefaultFolder = McVersionCurrent.PathIndie & If(File.Type = CompType.ResourcePack, "resourcepacks\", "shaderpacks\") + Directory.CreateDirectory(DefaultFolder) + Log("[Comp] 使用当前版本的对应资源文件夹作为默认下载位置(" & McVersionCurrent.Name & ")") + Else + Dim NeedLoad As Boolean = McVersionListLoader.State <> LoadState.Finished + If NeedLoad Then + Hint("正在查找适合的游戏版本……") + LoaderFolderRun(McVersionListLoader, PathMcFolder, LoaderFolderRunType.ForceRun, MaxDepth:=1, ExtraPath:="versions\", WaitForExit:=True) + End If + Dim SuitableVersions As New List(Of McVersion) + For Each Version As McVersion In McVersionList.Values.SelectMany(Function(l) l) + If IsVersionSuitable(Version) Then SuitableVersions.Add(Version) + Next + If Not SuitableVersions.Any() Then + DefaultFolder = PathMcFolder + If NeedLoad Then + Hint("当前 MC 文件夹中没有找到适合这个资源的版本!") + Else + Log("[Comp] 由于当前版本不兼容,使用当前的 MC 文件夹作为默认下载位置") + End If + Else + Dim SelectedVersion = SuitableVersions.LastOrDefault() + DefaultFolder = SelectedVersion.PathIndie & If(File.Type = CompType.ResourcePack, "resourcepacks\", "shaderpacks\") + Directory.CreateDirectory(DefaultFolder) + Log("[Comp] 使用适合的游戏版本作为默认下载位置(" & SelectedVersion.Name & ")") + End If + End If End If '获取基本信息 Dim FileName As String From cfa7ce16bdc593e71b15a4001f6fef5de12e9ccb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=84=E5=A5=9A=E6=A2=A6=E7=81=B5?= Date: Thu, 1 May 2025 18:43:03 +0800 Subject: [PATCH 08/22] =?UTF-8?q?fix:=E5=BC=BA=E5=88=B6=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=20HTTPS=20=E9=81=BF=E5=85=8D=E8=8E=B7=E5=8F=96=E7=9A=AE?= =?UTF-8?q?=E8=82=A4=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Plain Craft Launcher 2/Modules/Minecraft/ModMinecraft.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plain Craft Launcher 2/Modules/Minecraft/ModMinecraft.vb b/Plain Craft Launcher 2/Modules/Minecraft/ModMinecraft.vb index 945aae4..196092e 100644 --- a/Plain Craft Launcher 2/Modules/Minecraft/ModMinecraft.vb +++ b/Plain Craft Launcher 2/Modules/Minecraft/ModMinecraft.vb @@ -1595,7 +1595,7 @@ OnLoaded: Try For Each SkinProperty In GetJson(SkinString)("properties") If SkinProperty("name") = "textures" Then - SkinValue = SkinProperty("value") + SkinValue = SkinProperty("value").Replace("http:","https:") Exit Try End If Next From e6d7c06f29c4ea233972d49e2423787b4fca46f8 Mon Sep 17 00:00:00 2001 From: wyc-26 Date: Thu, 1 May 2025 20:32:59 +0800 Subject: [PATCH 09/22] =?UTF-8?q?refactor(PageDownloadCompDetail):=20?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=80=89=E6=8B=A9=E9=BB=98=E8=AE=A4=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E4=BD=8D=E7=BD=AE=E9=83=A8=E5=88=86=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Comp/PageDownloadCompDetail.xaml.vb | 76 +++++++------------ 1 file changed, 28 insertions(+), 48 deletions(-) diff --git a/Plain Craft Launcher 2/Pages/PageDownload/Comp/PageDownloadCompDetail.xaml.vb b/Plain Craft Launcher 2/Pages/PageDownload/Comp/PageDownloadCompDetail.xaml.vb index 33fdde5..9d09fba 100644 --- a/Plain Craft Launcher 2/Pages/PageDownload/Comp/PageDownloadCompDetail.xaml.vb +++ b/Plain Craft Launcher 2/Pages/PageDownload/Comp/PageDownloadCompDetail.xaml.vb @@ -319,7 +319,14 @@ End Select '确认默认保存位置 Dim DefaultFolder As String = Nothing - If File.Type = CompType.Mod Then + Dim ResourceFolderName As String = "" + Select Case Project.Type + Case CompType.Mod : ResourceFolderName = "mods" + Case CompType.ResourcePack : ResourceFolderName = "resourcepacks" + Case CompType.Shader : ResourceFolderName = "shaderpacks" + End Select + Dim IsVersionSuitable As Func(Of McVersion, Boolean) + If Project.Type = CompType.Mod Then '获取 Mod 所需的加载器种类 Dim AllowForge As Boolean? = Nothing, AllowFabric As Boolean? = Nothing If File.ModLoaders.Any Then '从文件中获取 @@ -329,13 +336,12 @@ AllowForge = Project.ModLoaders.Contains(CompModLoaderType.Forge) OrElse File.ModLoaders.Contains(CompModLoaderType.NeoForge) AllowFabric = Project.ModLoaders.Contains(CompModLoaderType.Fabric) End If - If AllowForge IsNot Nothing AndAlso Not AllowForge AndAlso - AllowFabric IsNot Nothing AndAlso Not AllowFabric Then + If AllowForge IsNot Nothing AndAlso Not AllowForge AndAlso AllowFabric IsNot Nothing AndAlso Not AllowFabric Then AllowForge = Nothing : AllowFabric = Nothing End If Log("[Comp] 允许 Forge:" & If(AllowForge, "未知") & ",允许 Fabric:" & If(AllowFabric, "未知")) - '判断某个版本是否符合要求 - Dim IsVersionSuitable As Func(Of McVersion, Boolean) = + '判断某个版本是否符合 Mod 要求 + IsVersionSuitable = Function(Version) If Not Version.IsLoaded Then Version.Load() If Not Version.Modable Then Return False @@ -346,14 +352,24 @@ If AllowFabric AndAlso Version.Version.HasFabric Then Return True Return False End Function - '获取 Mod 默认下载位置 + ElseIf {CompType.ResourcePack, CompType.Shader}.Contains(Project.Type) Then + '判断某个版本是否符合资源包和光影要求 + IsVersionSuitable = + Function(Version) + If Not Version.IsLoaded Then Version.Load() + If File.GameVersions.Any(Function(v) v.Contains(".") AndAlso v = Version.Version.McName) Then Return True + Return False + End Function + End If + If Not String.IsNullOrWhiteSpace(ResourceFolderName) AndAlso IsVersionSuitable IsNot Nothing Then + '获取常规资源默认下载位置 If CachedFolder IsNot Nothing Then DefaultFolder = CachedFolder Log("[Comp] 使用上次下载时的文件夹作为默认下载位置") ElseIf McVersionCurrent IsNot Nothing AndAlso IsVersionSuitable(McVersionCurrent) Then - DefaultFolder = McVersionCurrent.PathIndie & "mods\" + DefaultFolder = McVersionCurrent.PathIndie & $"{ResourceFolderName}\" Directory.CreateDirectory(DefaultFolder) - Log("[Comp] 使用当前版本的 mods 文件夹作为默认下载位置(" & McVersionCurrent.Name & ")") + Log($"[Comp] 使用当前版本的 {ResourceFolderName} 文件夹作为默认下载位置({McVersionCurrent.Name})") Else Dim NeedLoad As Boolean = McVersionListLoader.State <> LoadState.Finished If NeedLoad Then @@ -367,53 +383,17 @@ If Not SuitableVersions.Any() Then DefaultFolder = PathMcFolder If NeedLoad Then - Hint("当前 MC 文件夹中没有找到适合这个 Mod 的版本!") + Hint("当前 MC 文件夹中没有找到适合此资源文件的版本!") Else Log("[Comp] 由于当前版本不兼容,使用当前的 MC 文件夹作为默认下载位置") End If - Else '选择 Mod 数量最多的版本 + Else '选择资源数量最多的版本 Dim SelectedVersion = SuitableVersions.OrderBy( Function(v) - Dim Info As New DirectoryInfo(v.PathIndie & "mods\") + Dim Info As New DirectoryInfo(v.PathIndie & $"{ResourceFolderName}\") Return If(Info.Exists, Info.GetFiles().Length, -1) End Function).LastOrDefault() - DefaultFolder = SelectedVersion.PathIndie & "mods\" - Directory.CreateDirectory(DefaultFolder) - Log("[Comp] 使用适合的游戏版本作为默认下载位置(" & SelectedVersion.Name & ")") - End If - End If - ElseIf File.Type = CompType.ResourcePack OrElse File.Type = CompType.Shader Then - Dim IsVersionSuitable As Func(Of McVersion, Boolean) = - Function(Version) - If Not Version.IsLoaded Then Version.Load() - If File.GameVersions.Any(Function(v) v.Contains(".")) AndAlso - Not File.GameVersions.Any(Function(v) v.Contains(".") AndAlso v = Version.Version.McName) Then Return False - Return False - End Function - If McVersionCurrent IsNot Nothing Then - DefaultFolder = McVersionCurrent.PathIndie & If(File.Type = CompType.ResourcePack, "resourcepacks\", "shaderpacks\") - Directory.CreateDirectory(DefaultFolder) - Log("[Comp] 使用当前版本的对应资源文件夹作为默认下载位置(" & McVersionCurrent.Name & ")") - Else - Dim NeedLoad As Boolean = McVersionListLoader.State <> LoadState.Finished - If NeedLoad Then - Hint("正在查找适合的游戏版本……") - LoaderFolderRun(McVersionListLoader, PathMcFolder, LoaderFolderRunType.ForceRun, MaxDepth:=1, ExtraPath:="versions\", WaitForExit:=True) - End If - Dim SuitableVersions As New List(Of McVersion) - For Each Version As McVersion In McVersionList.Values.SelectMany(Function(l) l) - If IsVersionSuitable(Version) Then SuitableVersions.Add(Version) - Next - If Not SuitableVersions.Any() Then - DefaultFolder = PathMcFolder - If NeedLoad Then - Hint("当前 MC 文件夹中没有找到适合这个资源的版本!") - Else - Log("[Comp] 由于当前版本不兼容,使用当前的 MC 文件夹作为默认下载位置") - End If - Else - Dim SelectedVersion = SuitableVersions.LastOrDefault() - DefaultFolder = SelectedVersion.PathIndie & If(File.Type = CompType.ResourcePack, "resourcepacks\", "shaderpacks\") + DefaultFolder = SelectedVersion.PathIndie & $"{ResourceFolderName}\" Directory.CreateDirectory(DefaultFolder) Log("[Comp] 使用适合的游戏版本作为默认下载位置(" & SelectedVersion.Name & ")") End If From 825334cb9db135b6c1d56136fc01911dbc3f404e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=84=E5=A5=9A=E6=A2=A6=E7=81=B5?= Date: Sat, 3 May 2025 14:10:30 +0800 Subject: [PATCH 10/22] Revert(88be968866c7ae4041838fd9bd2cde373762303b): fix Hex-Dragon#6222 --- .../Pages/PageSetup/ModSetup.vb | 37 ++++++++++++++++++ .../Pages/PageSetup/PageSetupUI.xaml.vb | 39 ------------------- 2 files changed, 37 insertions(+), 39 deletions(-) diff --git a/Plain Craft Launcher 2/Pages/PageSetup/ModSetup.vb b/Plain Craft Launcher 2/Pages/PageSetup/ModSetup.vb index 949ff5d..6c4440f 100644 --- a/Plain Craft Launcher 2/Pages/PageSetup/ModSetup.vb +++ b/Plain Craft Launcher 2/Pages/PageSetup/ModSetup.vb @@ -585,6 +585,43 @@ End Select End Sub + '主页 + Public Sub UiCustomType(Value As Integer) + If FrmSetupUI Is Nothing Then Exit Sub + Select Case Value + Case 0 '无 + FrmSetupUI.PanCustomPreset.Visibility = Visibility.Collapsed + FrmSetupUI.PanCustomLocal.Visibility = Visibility.Collapsed + FrmSetupUI.PanCustomNet.Visibility = Visibility.Collapsed + FrmSetupUI.HintCustom.Visibility = Visibility.Collapsed + FrmSetupUI.HintCustomWarn.Visibility = Visibility.Collapsed + Case 1 '本地 + FrmSetupUI.PanCustomPreset.Visibility = Visibility.Collapsed + FrmSetupUI.PanCustomLocal.Visibility = Visibility.Visible + FrmSetupUI.PanCustomNet.Visibility = Visibility.Collapsed + FrmSetupUI.HintCustom.Visibility = Visibility.Visible + FrmSetupUI.HintCustomWarn.Visibility = If(Setup.Get("HintCustomWarn"), Visibility.Collapsed, Visibility.Visible) + FrmSetupUI.HintCustom.Text = $"从 PCL 文件夹下的 Custom.xaml 读取主页内容。{vbCrLf}你可以手动编辑该文件,向主页添加文本、图片、常用网站、快捷启动等功能。" + FrmSetupUI.HintCustom.EventType = "" + FrmSetupUI.HintCustom.EventData = "" + Case 2 '联网 + FrmSetupUI.PanCustomPreset.Visibility = Visibility.Collapsed + FrmSetupUI.PanCustomLocal.Visibility = Visibility.Collapsed + FrmSetupUI.PanCustomNet.Visibility = Visibility.Visible + FrmSetupUI.HintCustom.Visibility = Visibility.Visible + FrmSetupUI.HintCustomWarn.Visibility = If(Setup.Get("HintCustomWarn"), Visibility.Collapsed, Visibility.Visible) + FrmSetupUI.HintCustom.Text = $"从指定网址联网获取主页内容。服主也可以用于动态更新服务器公告。{vbCrLf}如果你制作了稳定运行的联网主页,可以点击这条提示投稿,若合格即可加入预设!" + FrmSetupUI.HintCustom.EventType = "打开网页" + FrmSetupUI.HintCustom.EventData = "https://github.com/Hex-Dragon/PCL2/discussions/2528" + Case 3 '预设 + FrmSetupUI.PanCustomPreset.Visibility = Visibility.Visible + FrmSetupUI.PanCustomLocal.Visibility = Visibility.Collapsed + FrmSetupUI.PanCustomNet.Visibility = Visibility.Collapsed + FrmSetupUI.HintCustom.Visibility = Visibility.Collapsed + FrmSetupUI.HintCustomWarn.Visibility = Visibility.Collapsed + End Select + FrmSetupUI.CardCustom.TriggerForceResize() + End Sub '顶部栏 Public Sub UiLogoType(Value As Integer) diff --git a/Plain Craft Launcher 2/Pages/PageSetup/PageSetupUI.xaml.vb b/Plain Craft Launcher 2/Pages/PageSetup/PageSetupUI.xaml.vb index f42c80d..9798b6d 100644 --- a/Plain Craft Launcher 2/Pages/PageSetup/PageSetupUI.xaml.vb +++ b/Plain Craft Launcher 2/Pages/PageSetup/PageSetupUI.xaml.vb @@ -185,7 +185,6 @@ End Sub Private Shared Sub RadioBoxChange(sender As MyRadioBox, e As Object) Handles RadioLogoType0.Check, RadioLogoType1.Check, RadioLogoType2.Check, RadioLogoType3.Check, RadioLauncherTheme0.Check, RadioLauncherTheme1.Check, RadioLauncherTheme2.Check, RadioLauncherTheme3.Check, RadioLauncherTheme4.Check, RadioLauncherTheme5.Check, RadioLauncherTheme6.Check, RadioLauncherTheme7.Check, RadioLauncherTheme8.Check, RadioLauncherTheme9.Check, RadioLauncherTheme10.Check, RadioLauncherTheme11.Check, RadioLauncherTheme12.Check, RadioLauncherTheme13.Check, RadioLauncherTheme14.Check, RadioCustomType0.Check, RadioCustomType1.Check, RadioCustomType2.Check, RadioCustomType3.Check If AniControlEnabled = 0 Then Setup.Set(sender.Tag.ToString.Split("/")(0), Val(sender.Tag.ToString.Split("/")(1))) - UiCustomType(Setup.Get("UiCustomType")) End Sub '背景图片 @@ -426,44 +425,6 @@ Refresh: "直接将主页文件拖进 PCL 窗口也可以快捷加载。", "主页自定义教程") End Sub - '主页卡片的实际处理 - Public Shared Sub UiCustomType(Value As Integer) - If FrmSetupUI Is Nothing Then Exit Sub - Select Case Value - Case 0 '无 - FrmSetupUI.PanCustomPreset.Visibility = Visibility.Collapsed - FrmSetupUI.PanCustomLocal.Visibility = Visibility.Collapsed - FrmSetupUI.PanCustomNet.Visibility = Visibility.Collapsed - FrmSetupUI.HintCustom.Visibility = Visibility.Collapsed - FrmSetupUI.HintCustomWarn.Visibility = Visibility.Collapsed - Case 1 '本地 - FrmSetupUI.PanCustomPreset.Visibility = Visibility.Collapsed - FrmSetupUI.PanCustomLocal.Visibility = Visibility.Visible - FrmSetupUI.PanCustomNet.Visibility = Visibility.Collapsed - FrmSetupUI.HintCustom.Visibility = Visibility.Visible - FrmSetupUI.HintCustomWarn.Visibility = If(Setup.Get("HintCustomWarn"), Visibility.Collapsed, Visibility.Visible) - FrmSetupUI.HintCustom.Text = $"从 PCL 文件夹下的 Custom.xaml 读取主页内容。{vbCrLf}你可以手动编辑该文件,向主页添加文本、图片、常用网站、快捷启动等功能。" - FrmSetupUI.HintCustom.EventType = "" - FrmSetupUI.HintCustom.EventData = "" - Case 2 '联网 - FrmSetupUI.PanCustomPreset.Visibility = Visibility.Collapsed - FrmSetupUI.PanCustomLocal.Visibility = Visibility.Collapsed - FrmSetupUI.PanCustomNet.Visibility = Visibility.Visible - FrmSetupUI.HintCustom.Visibility = Visibility.Visible - FrmSetupUI.HintCustomWarn.Visibility = If(Setup.Get("HintCustomWarn"), Visibility.Collapsed, Visibility.Visible) - FrmSetupUI.HintCustom.Text = $"从指定网址联网获取主页内容。服主也可以用于动态更新服务器公告。{vbCrLf}如果你制作了稳定运行的联网主页,可以点击这条提示投稿,若合格即可加入预设!" - FrmSetupUI.HintCustom.EventType = "打开网页" - FrmSetupUI.HintCustom.EventData = "https://github.com/Hex-Dragon/PCL2/discussions/2528" - Case 3 '预设 - FrmSetupUI.PanCustomPreset.Visibility = Visibility.Visible - FrmSetupUI.PanCustomLocal.Visibility = Visibility.Collapsed - FrmSetupUI.PanCustomNet.Visibility = Visibility.Collapsed - FrmSetupUI.HintCustom.Visibility = Visibility.Collapsed - FrmSetupUI.HintCustomWarn.Visibility = Visibility.Collapsed - End Select - FrmSetupUI.CardCustom.TriggerForceResize() - End Sub - '主题 Private Sub LabLauncherTheme5Unlock_MouseLeftButtonUp(sender As Object, e As MouseButtonEventArgs) Handles LabLauncherTheme5Unlock.MouseLeftButtonUp RadioLauncherTheme5Gray.Opacity -= 0.23 From 85bd89fbc0bd82074749ba06ca6b5f83eb6a6fc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=84=E5=A5=9A=E6=A2=A6=E7=81=B5?= Date: Sat, 3 May 2025 14:13:13 +0800 Subject: [PATCH 11/22] =?UTF-8?q?fix(PageSetupUI):=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E4=BA=86=E5=86=85=E5=AE=B9=E8=A7=81=20ModSet?= =?UTF-8?q?up=20=E7=9A=84=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Plain Craft Launcher 2/Pages/PageSetup/PageSetupUI.xaml.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plain Craft Launcher 2/Pages/PageSetup/PageSetupUI.xaml.vb b/Plain Craft Launcher 2/Pages/PageSetup/PageSetupUI.xaml.vb index 9798b6d..5e3cbe1 100644 --- a/Plain Craft Launcher 2/Pages/PageSetup/PageSetupUI.xaml.vb +++ b/Plain Craft Launcher 2/Pages/PageSetup/PageSetupUI.xaml.vb @@ -89,7 +89,7 @@ Catch Setup.Reset("UiCustomPreset") End Try - CType(FindName("RadioCustomType" & Setup.Load("UiCustomType")), MyRadioBox).Checked = True + CType(FindName("RadioCustomType" & Setup.Load("UiCustomType",ForceReload:=True)), MyRadioBox).Checked = True TextCustomNet.Text = Setup.Get("UiCustomNet") '功能隐藏 From c72cf1e3d5e74675b1fcef7d77755d2c8088346d Mon Sep 17 00:00:00 2001 From: written143 <171932393+written143@users.noreply.github.com> Date: Wed, 7 May 2025 00:30:18 +0800 Subject: [PATCH 12/22] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=99=AE=E9=80=9A?= =?UTF-8?q?=E6=8A=AB=E9=A3=8E=E7=9A=84=E7=BF=BB=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Plain Craft Launcher 2/Pages/PageLaunch/MySkin.xaml.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plain Craft Launcher 2/Pages/PageLaunch/MySkin.xaml.vb b/Plain Craft Launcher 2/Pages/PageLaunch/MySkin.xaml.vb index ebbbc96..b4d4351 100644 --- a/Plain Craft Launcher 2/Pages/PageLaunch/MySkin.xaml.vb +++ b/Plain Craft Launcher 2/Pages/PageLaunch/MySkin.xaml.vb @@ -243,7 +243,7 @@ Retry: {"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", "村民救援披风"}, - {"Mojang Office", "Mojang 办公室披风"}, {"Home", "家园披风"}, {"Menace", "入侵披风"}, {"Yearn", "渴望披风"} + {"Mojang Office", "Mojang 办公室披风"}, {"Home", "家园披风"}, {"Menace", "入侵披风"}, {"Yearn", "渴望披风"}, {"Common", "普通披风"} } Dim SelectionControl As New List(Of IMyRadio) From {New MyRadioBox With {.Text = "无披风"}} For Each Cape In SkinData("capes") From 5594dbdb8e2a96628b50d8afc09c580bf6c8efe9 Mon Sep 17 00:00:00 2001 From: written143 <171932393+written143@users.noreply.github.com> Date: Thu, 8 May 2025 20:04:13 +0800 Subject: [PATCH 13/22] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=96=84=E7=85=8E?= =?UTF-8?q?=E9=A5=BC=E6=8A=AB=E9=A3=8E=E5=92=8C=E5=88=9B=E5=A7=8B=E4=BA=BA?= =?UTF-8?q?=E6=8A=AB=E9=A3=8E=E7=9A=84=E7=BF=BB=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Plain Craft Launcher 2/Pages/PageLaunch/MySkin.xaml.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plain Craft Launcher 2/Pages/PageLaunch/MySkin.xaml.vb b/Plain Craft Launcher 2/Pages/PageLaunch/MySkin.xaml.vb index b4d4351..7cff33b 100644 --- a/Plain Craft Launcher 2/Pages/PageLaunch/MySkin.xaml.vb +++ b/Plain Craft Launcher 2/Pages/PageLaunch/MySkin.xaml.vb @@ -243,7 +243,7 @@ Retry: {"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", "村民救援披风"}, - {"Mojang Office", "Mojang 办公室披风"}, {"Home", "家园披风"}, {"Menace", "入侵披风"}, {"Yearn", "渴望披风"}, {"Common", "普通披风"} + {"Mojang Office", "Mojang 办公室披风"}, {"Home", "家园披风"}, {"Menace", "入侵披风"}, {"Yearn", "渴望披风"}, {"Common", "普通披风"}, {"The Pan", "薄煎饼披风"}, {"Founder's", "创始人披风"} } Dim SelectionControl As New List(Of IMyRadio) From {New MyRadioBox With {.Text = "无披风"}} For Each Cape In SkinData("capes") From 0f8632a10b501ce4c1f00090a5db359cf8514527 Mon Sep 17 00:00:00 2001 From: written143 <171932393+written143@users.noreply.github.com> Date: Fri, 9 May 2025 17:53:49 +0800 Subject: [PATCH 14/22] Fix --- Plain Craft Launcher 2/Pages/PageLaunch/MySkin.xaml.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plain Craft Launcher 2/Pages/PageLaunch/MySkin.xaml.vb b/Plain Craft Launcher 2/Pages/PageLaunch/MySkin.xaml.vb index 7cff33b..0baead9 100644 --- a/Plain Craft Launcher 2/Pages/PageLaunch/MySkin.xaml.vb +++ b/Plain Craft Launcher 2/Pages/PageLaunch/MySkin.xaml.vb @@ -243,7 +243,7 @@ Retry: {"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", "村民救援披风"}, - {"Mojang Office", "Mojang 办公室披风"}, {"Home", "家园披风"}, {"Menace", "入侵披风"}, {"Yearn", "渴望披风"}, {"Common", "普通披风"}, {"The Pan", "薄煎饼披风"}, {"Founder's", "创始人披风"} + {"Mojang Office", "Mojang 办公室披风"}, {"Home", "家园披风"}, {"Menace", "入侵披风"}, {"Yearn", "渴望披风"}, {"Common", "普通披风"}, {"Pan", "薄煎饼披风"}, {"Founder's", "创始人披风"} } Dim SelectionControl As New List(Of IMyRadio) From {New MyRadioBox With {.Text = "无披风"}} For Each Cape In SkinData("capes") From ca3eb311b641e016997761fa12898166c518aee9 Mon Sep 17 00:00:00 2001 From: wyc-26 Date: Fri, 9 May 2025 18:13:21 +0800 Subject: [PATCH 15/22] =?UTF-8?q?fix(PageSetupUI):=20=E4=BF=AE=E6=AD=A3?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E9=9A=90=E8=97=8F=E4=B8=AD=E7=9A=84=E9=80=89?= =?UTF-8?q?=E9=A1=B9=E5=8D=A1=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Plain Craft Launcher 2/Pages/PageSetup/PageSetupUI.xaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plain Craft Launcher 2/Pages/PageSetup/PageSetupUI.xaml b/Plain Craft Launcher 2/Pages/PageSetup/PageSetupUI.xaml index da4f899..0603257 100644 --- a/Plain Craft Launcher 2/Pages/PageSetup/PageSetupUI.xaml +++ b/Plain Craft Launcher 2/Pages/PageSetup/PageSetupUI.xaml @@ -282,7 +282,7 @@ - + From 1c0bd6d02a3b72d0381ade99271821f48c0950c2 Mon Sep 17 00:00:00 2001 From: Open-KFC <1811593346@qq.com> Date: Fri, 9 May 2025 23:27:35 +0800 Subject: [PATCH 16/22] =?UTF-8?q?fix(ImageTitleLogo):=20=E4=BF=9D=E8=AF=81?= =?UTF-8?q?=E5=9C=A8=E9=87=8D=E6=96=B0=E8=AE=BE=E7=BD=AE=E6=A0=87=E9=A2=98?= =?UTF-8?q?=E6=A0=8F=E5=9B=BE=E7=89=87=E6=97=B6=E5=BE=97=E5=88=B0=E5=88=B7?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Plain Craft Launcher 2/Pages/PageSetup/PageSetupUI.xaml.vb | 1 + 1 file changed, 1 insertion(+) diff --git a/Plain Craft Launcher 2/Pages/PageSetup/PageSetupUI.xaml.vb b/Plain Craft Launcher 2/Pages/PageSetup/PageSetupUI.xaml.vb index 9798b6d..427a9c6 100644 --- a/Plain Craft Launcher 2/Pages/PageSetup/PageSetupUI.xaml.vb +++ b/Plain Craft Launcher 2/Pages/PageSetup/PageSetupUI.xaml.vb @@ -281,6 +281,7 @@ File.Delete(Path & "PCL\Logo.png") CopyFile(FileName, Path & "PCL\Logo.png") '设置当前显示 + FrmMain.ImageTitleLogo.Source = Nothing '防止因为 Source 属性前后的值相同而不更新 (#5628) FrmMain.ImageTitleLogo.Source = Path & "PCL\Logo.png" Catch ex As Exception If ex.Message.Contains("参数无效") Then From b15c3e1da25526fb8d0c7b39a63521427a7eb11e Mon Sep 17 00:00:00 2001 From: Open-KFC <1811593346@qq.com> Date: Tue, 13 May 2025 06:51:34 +0800 Subject: [PATCH 17/22] =?UTF-8?q?fix(FileDrag):=20=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E5=B0=86=E6=96=87=E4=BB=B6=E6=8B=96=E6=94=BE?= =?UTF-8?q?=E5=88=B0=E5=8F=AF=E7=BC=96=E8=BE=91=E6=96=87=E5=AD=97=E6=8E=A7?= =?UTF-8?q?=E4=BB=B6=E4=B8=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Plain Craft Launcher 2/FormMain.xaml.vb | 52 +++++++++++++++++++++---- 1 file changed, 45 insertions(+), 7 deletions(-) diff --git a/Plain Craft Launcher 2/FormMain.xaml.vb b/Plain Craft Launcher 2/FormMain.xaml.vb index 7cbbc0f..e174163 100644 --- a/Plain Craft Launcher 2/FormMain.xaml.vb +++ b/Plain Craft Launcher 2/FormMain.xaml.vb @@ -211,6 +211,9 @@ Public Class FormMain '刷新主题 ThemeCheckAll(False) Setup.Load("UiLauncherTheme") + '注册一些事件 + [AddHandler](DragDrop.DragEnterEvent, New DragEventHandler(AddressOf HandleDragEnter), handledEventsToo:=True) + [AddHandler](DragDrop.DragOverEvent, New DragEventHandler(AddressOf HandleDragOver), handledEventsToo:=True) '加载 UI InitializeComponent() Opacity = 0 @@ -651,14 +654,46 @@ Public Class FormMain End Sub '文件拖放 - Private Sub FrmMain_PreviewDragOver(sender As Object, e As DragEventArgs) Handles Me.PreviewDragOver - If e.Data.GetFormats.Contains("FileDrop") Then - e.Effects = DragDropEffects.Link - Else - e.Effects = DragDropEffects.None - End If + Private Sub HandleDragEnter(sender As Object, e As DragEventArgs) + ProcessDragEventLast(sender, e) End Sub - Private Sub FrmMain_Drop(sender As Object, e As DragEventArgs) Handles Me.PreviewDrop + Private Sub HandleDragOver(sender As Object, e As DragEventArgs) + ProcessDragEventLast(sender, e) + End Sub + ''' + ''' 被窗口关心的文件拖动,以及它们对应的拖动类型 + ''' + Private Function ComputeMouseEffectFromDraggingData(Data As IDataObject) As DragDropEffects + If Data.GetDataPresent(DataFormats.Text) Then + Dim Str As String = Data.GetData(DataFormats.Text) + If Str.StartsWithF("authlib-injector:yggdrasil-server:") Then Return DragDropEffects.Copy + If Str.StartsWithF("file:///") Then Return DragDropEffects.Copy + ElseIf Data.GetDataPresent(DataFormats.FileDrop) Then + Dim Files As String() = Data.GetData(DataFormats.FileDrop) + If Files IsNot Nothing AndAlso Files.Length > 0 Then Return DragDropEffects.Link + End If + Return DragDropEffects.None + End Function + ''' + ''' 在子元素完成处理之后处理那些子元素不关心或子元素无法接收的拖拽文件 + ''' + Private Sub ProcessDragEventLast(sender As Object, e As DragEventArgs) + Try + If e.Handled AndAlso (e.Effects <> DragDropEffects.None) Then Exit Sub + If Not e.Handled Then e.Handled = True + Static PrevData As IDataObject, PrevEffects As DragDropEffects '不知道这 cache 会不会出问题,但是这段代码调用频率挺高的 + If e.Data Is PrevData Then + e.Effects = PrevEffects + Else + e.Effects = ComputeMouseEffectFromDraggingData(e.Data) + PrevData = e.Data + PrevEffects = e.Effects + End If + Catch ex As Exception + Log(ex, "处理文件拖放鼠标效果时的未知错误", LogLevel.Feedback) + End Try + End Sub + Private Sub FrmMain_Drop(sender As Object, e As DragEventArgs) Handles Me.Drop Try If e.Data.GetDataPresent(DataFormats.Text) Then '获取文本 @@ -668,6 +703,7 @@ Public Class FormMain If Str.StartsWithF("authlib-injector:yggdrasil-server:") Then 'Authlib 拖拽 e.Handled = True + e.Effects = DragDropEffects.Copy Dim AuthlibServer As String = Net.WebUtility.UrlDecode(Str.Substring("authlib-injector:yggdrasil-server:".Length)) Log("[System] Authlib 拖拽:" & AuthlibServer) If Not String.IsNullOrEmpty(New ValidateHttp().Validate(AuthlibServer)) Then @@ -712,6 +748,7 @@ Public Class FormMain '文件拖拽(例如从浏览器下载窗口拖入) Dim FilePath = Net.WebUtility.UrlDecode(Str).Substring("file:///".Length).Replace("/", "\") e.Handled = True + e.Effects = DragDropEffects.Copy FileDrag(New List(Of String) From {FilePath}) End If Catch ex As Exception @@ -726,6 +763,7 @@ Public Class FormMain Exit Sub End If e.Handled = True + e.Effects = DragDropEffects.Link FileDrag(CType(FilePathRaw, IEnumerable(Of String))) End If Catch ex As Exception From ae8b807ad85d67c0fa49c5e9463a25584ef904f9 Mon Sep 17 00:00:00 2001 From: Open-KFC <1811593346@qq.com> Date: Wed, 14 May 2025 10:43:09 +0800 Subject: [PATCH 18/22] =?UTF-8?q?fix(LaunchArg):=20=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E7=AA=97=E5=8F=A3=E5=A4=A7=E5=B0=8F=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Plain Craft Launcher 2/Modules/Minecraft/ModLaunch.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plain Craft Launcher 2/Modules/Minecraft/ModLaunch.vb b/Plain Craft Launcher 2/Modules/Minecraft/ModLaunch.vb index fba118f..70db6db 100644 --- a/Plain Craft Launcher 2/Modules/Minecraft/ModLaunch.vb +++ b/Plain Craft Launcher 2/Modules/Minecraft/ModLaunch.vb @@ -1688,7 +1688,7 @@ NextVersion: Case 3 '自定义 GameSize = New Size(Math.Max(100, Setup.Get("LaunchArgumentWindowWidth")), Math.Max(100, Setup.Get("LaunchArgumentWindowHeight"))) Case Else - GameSize = New Size(875, 540) + GameSize = New Size(854, 480) End Select If McVersionCurrent.Version.McCodeMain <= 12 AndAlso McLaunchJavaSelected.VersionCode <= 8 AndAlso McLaunchJavaSelected.Version.Revision >= 200 AndAlso McLaunchJavaSelected.Version.Revision <= 321 AndAlso From fa2d66cc454cd839dc1a742ec4643e7c963c78e3 Mon Sep 17 00:00:00 2001 From: wyc-26 Date: Sun, 18 May 2025 10:15:30 +0800 Subject: [PATCH 19/22] =?UTF-8?q?fix(PageVersionOverall):=20=E7=BC=93?= =?UTF-8?q?=E5=AD=98=E9=97=AE=E9=A2=98=E5=AF=BC=E8=87=B4=E5=88=87=E6=8D=A2?= =?UTF-8?q?=E8=AF=AD=E8=A8=80=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Pages/PageVersion/PageVersionOverall.xaml.vb | 1 + 1 file changed, 1 insertion(+) diff --git a/Plain Craft Launcher 2/Pages/PageVersion/PageVersionOverall.xaml.vb b/Plain Craft Launcher 2/Pages/PageVersion/PageVersionOverall.xaml.vb index 2f03cf4..a65df9f 100644 --- a/Plain Craft Launcher 2/Pages/PageVersion/PageVersionOverall.xaml.vb +++ b/Plain Craft Launcher 2/Pages/PageVersion/PageVersionOverall.xaml.vb @@ -326,6 +326,7 @@ If(IsHintIndie, vbCrLf & "由于该版本开启了版本隔离,删除版本时该版本对应的存档、资源包、Mod 等文件也将被一并删除!", ""), "版本删除确认", , "取消",, IsHintIndie OrElse IsShiftPressed) Case 1 + IniClearCache(PageVersionLeft.Version.PathIndie & "options.txt") IniClearCache(PageVersionLeft.Version.Path & "PCL\Setup.ini") If IsShiftPressed Then DeleteDirectory(PageVersionLeft.Version.Path) From 30556c23479da44990f6403bede5ed04f891d722 Mon Sep 17 00:00:00 2001 From: Open-KFC <1811593346@qq.com> Date: Sun, 2 Mar 2025 22:06:29 +0800 Subject: [PATCH 20/22] =?UTF-8?q?fix=20#5665=20=E5=9C=A8=E6=A8=A1=E7=BB=84?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E4=B8=AD=E5=88=92=E8=BF=87=E9=BC=A0=E6=A0=87?= =?UTF-8?q?=E6=97=B6=E5=A6=82=E6=9E=9C=E9=BC=A0=E6=A0=87=E5=9C=A8=E6=A8=A1?= =?UTF-8?q?=E7=BB=84=E6=9D=A1=E7=9B=AE=E5=88=97=E8=A1=A8=E4=B9=8B=E5=A4=96?= =?UTF-8?q?=E6=9D=BE=E5=BC=80=E4=BC=9A=E5=AF=BC=E8=87=B4=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E4=B8=8E=E6=82=AC=E6=B5=AE=E5=8D=A1=E7=89=87=E7=9A=84=E6=8C=89?= =?UTF-8?q?=E9=92=AE=E4=BA=A4=E4=BA=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Pages/PageVersion/MyLocalModItem.xaml.vb | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Plain Craft Launcher 2/Pages/PageVersion/MyLocalModItem.xaml.vb b/Plain Craft Launcher 2/Pages/PageVersion/MyLocalModItem.xaml.vb index a7bc54b..822b249 100644 --- a/Plain Craft Launcher 2/Pages/PageVersion/MyLocalModItem.xaml.vb +++ b/Plain Craft Launcher 2/Pages/PageVersion/MyLocalModItem.xaml.vb @@ -150,6 +150,15 @@ Public Class MyLocalModItem Next End Sub + '在鼠标离开整个ModItem列表视图(即不悬停在任何一个ModItem上)时,取消划过状态以及启用CardSelect的命中 #5665 + Private Sub Button_MouseLeaveModItems(sender As Object, e As Object) Handles Me.MouseLeave + If Parent Is Nothing Then Exit Sub + If Swiping AndAlso TypeOf Mouse.DirectlyOver IsNot MyLocalModItem Then + Swiping = False + FrmVersionMod.CardSelect.IsHitTestVisible = True + End If + End Sub + '勾选状态 Public Event Check(sender As Object, e As RouteEventArgs) Public Event Changed(sender As Object, e As RouteEventArgs) From 3ce005b06b56aac1e839c2ccc34c64c478f67fa9 Mon Sep 17 00:00:00 2001 From: Pigeon0v0 <60414767+Pigeon0v0@users.noreply.github.com> Date: Sun, 25 May 2025 11:10:46 +0800 Subject: [PATCH 21/22] =?UTF-8?q?imp(export):=20=E6=8E=92=E9=99=A4=20HMCL?= =?UTF-8?q?=20=E7=89=88=E6=9C=AC=E9=85=8D=E7=BD=AE=E4=B8=8E=E8=87=AA?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=20Log4j2=20=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Pages/PageVersion/PageVersionExport.xaml.vb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Plain Craft Launcher 2/Pages/PageVersion/PageVersionExport.xaml.vb b/Plain Craft Launcher 2/Pages/PageVersion/PageVersionExport.xaml.vb index 7473e86..d5b2305 100644 --- a/Plain Craft Launcher 2/Pages/PageVersion/PageVersionExport.xaml.vb +++ b/Plain Craft Launcher 2/Pages/PageVersion/PageVersionExport.xaml.vb @@ -256,6 +256,8 @@ Public Class PageVersionExport Yield "!*.log" Yield "!*.dat_old" Yield "!*.BakaCoreInfo" + Yield "!hmclversion.cfg" + Yield "!log4j2.xml" Yield "" End If End Function From 6b0c923777b0458fe214007731275cafd1afcb8f 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: Sat, 31 May 2025 16:53:00 +0800 Subject: [PATCH 22/22] 2.10.1 --- Plain Craft Launcher 2/Application.xaml | 8 +- Plain Craft Launcher 2/Application.xaml.vb | 24 +- .../Controls/MyButton.xaml.vb | 6 +- Plain Craft Launcher 2/Controls/MyCard.vb | 107 +- .../Controls/MyCheckBox.xaml.vb | 12 +- Plain Craft Launcher 2/Controls/MyComboBox.vb | 4 +- .../Controls/MyComboBoxItem.vb | 2 +- .../MyDropShadow.vb} | 107 +- .../Controls/MyExtraButton.xaml.vb | 10 +- .../Controls/MyExtraTextButton.xaml.vb | 4 +- Plain Craft Launcher 2/Controls/MyHint.xaml | 16 +- .../Controls/MyHint.xaml.vb | 111 +- .../Controls/MyIconButton.xaml.vb | 2 +- .../Controls/MyIconTextButton.xaml.vb | 2 +- Plain Craft Launcher 2/Controls/MyImage.vb | 18 +- .../Controls/MyListItem.xaml.vb | 24 +- .../Controls/MyLoading.xaml.vb | 12 +- Plain Craft Launcher 2/Controls/MyMenuItem.vb | 2 +- .../Controls/MyMsg/MyMsgInput.xaml.vb | 4 +- .../Controls/MyMsg/MyMsgSelect.xaml.vb | 4 +- .../Controls/MyMsg/MyMsgText.xaml.vb | 6 +- Plain Craft Launcher 2/Controls/MyPageLeft.vb | 23 +- .../Controls/MyPageRight.vb | 22 +- .../Controls/MyRadioBox.xaml.vb | 10 +- .../Controls/MyRadioButton.xaml.vb | 12 +- .../Controls/MyScrollViewer.vb | 4 +- .../Controls/MySlider.xaml.vb | 14 +- Plain Craft Launcher 2/Controls/MyTextBox.vb | 10 +- .../Controls/MyTextButton.vb | 2 +- Plain Craft Launcher 2/FormMain.xaml | 18 +- Plain Craft Launcher 2/FormMain.xaml.vb | 171 +- .../Modules/Base/ModAnimation.vb | 22 +- .../Modules/Base/ModBase.vb | 72 +- .../Modules/Base/ModLoader.vb | 100 +- Plain Craft Launcher 2/Modules/Base/ModNet.vb | 38 +- .../Modules/Minecraft/ModComp.vb | 97 +- .../Modules/Minecraft/ModCrash.vb | 159 +- .../Modules/Minecraft/ModDownload.vb | 6 +- .../Modules/Minecraft/ModJava.vb | 7 +- .../Modules/Minecraft/ModLaunch.vb | 44 +- .../Modules/Minecraft/ModMinecraft.vb | 66 +- .../Modules/Minecraft/ModMod.vb | 32 +- .../Modules/Minecraft/ModModpack.vb | 19 +- .../Modules/Minecraft/ModWatcher.vb | 29 +- Plain Craft Launcher 2/Modules/ModEvent.vb | 10 +- Plain Craft Launcher 2/Modules/ModMain.vb | 37 +- Plain Craft Launcher 2/Modules/ModSecret.vb | 69 +- .../My Project/AssemblyInfo.vb | 4 +- .../PageDownload/Comp/MyCompItem.xaml.vb | 12 +- .../Pages/PageDownload/Comp/PageComp.xaml | 2 +- .../Pages/PageDownload/Comp/PageComp.xaml.vb | 11 +- .../Comp/PageDownloadCompDetail.xaml.vb | 111 +- .../PageDownload/Comp/PageDownloadShader.xaml | 7 +- .../Pages/PageDownload/ModDownloadLib.vb | 60 +- .../PageDownload/PageDownloadForge.xaml.vb | 2 +- .../PageDownload/PageDownloadInstall.xaml | 8 +- .../PageDownload/PageDownloadInstall.xaml.vb | 140 +- .../PageDownload/PageDownloadLeft.xaml.vb | 8 +- .../Pages/PageLaunch/MyMsgLogin.xaml.vb | 4 +- .../Pages/PageLaunch/MySkin.xaml.vb | 17 +- .../Pages/PageLaunch/PageLaunchLeft.xaml.vb | 28 +- .../Pages/PageLaunch/PageLaunchRight.xaml.vb | 14 +- .../PageLaunch/PageLoginAuthSkin.xaml.vb | 3 +- .../Pages/PageLaunch/PageLoginLegacy.xaml | 2 +- .../Pages/PageLaunch/PageLoginMs.xaml.vb | 2 +- .../Pages/PageLaunch/PageLoginMsSkin.xaml.vb | 12 +- .../Pages/PageLink/PageLinkHiper.xaml | 1 - .../Pages/PageLink/PageLinkHiper.xaml.vb | 20 +- .../Pages/PageLink/PageLinkIoi.xaml | 2 +- .../Pages/PageLink/PageLinkLeft.xaml.vb | 6 +- .../Pages/PageOther/PageOtherAbout.xaml | 474 +++--- .../Pages/PageOther/PageOtherAbout.xaml.vb | 2 +- .../Pages/PageOther/PageOtherLeft.xaml.vb | 18 +- .../Pages/PageSelectLeft.xaml.vb | 40 +- .../Pages/PageSelectRight.xaml.vb | 2 +- .../Pages/PageSetup/ModSetup.vb | 18 +- .../Pages/PageSetup/PageSetupLaunch.xaml | 32 +- .../Pages/PageSetup/PageSetupLaunch.xaml.vb | 38 +- .../Pages/PageSetup/PageSetupLeft.xaml.vb | 6 +- .../Pages/PageSetup/PageSetupLink.xaml.vb | 2 +- .../Pages/PageSetup/PageSetupSystem.xaml.vb | 12 +- .../Pages/PageSetup/PageSetupUI.xaml | 8 +- .../Pages/PageSetup/PageSetupUI.xaml.vb | 33 +- .../Pages/PageSpeedLeft.xaml.vb | 15 +- .../Pages/PageVersion/MyLocalModItem.xaml.vb | 51 +- .../Pages/PageVersion/PageVersionExport.xaml | 10 +- .../PageVersion/PageVersionExport.xaml.vb | 9 +- .../Pages/PageVersion/PageVersionLeft.xaml.vb | 2 +- .../Pages/PageVersion/PageVersionMod.xaml | 2 +- .../Pages/PageVersion/PageVersionMod.xaml.vb | 12 +- .../PageVersion/PageVersionOverall.xaml.vb | 25 +- .../Pages/PageVersion/PageVersionSetup.xaml | 4 +- .../PageVersion/PageVersionSetup.xaml.vb | 28 +- .../Plain Craft Launcher 2.vbproj | 10 +- Plain Craft Launcher 2/Resources/Custom.xaml | 11 +- Plain Craft Launcher 2/Resources/Help.zip | Bin 82737 -> 85408 bytes .../Resources/Language/en_US.xaml | 10 - .../Resources/Language/zh_CN.xaml | 10 - Plain Craft Launcher 2/Resources/ModData.txt | 1398 +++++++++++++---- 99 files changed, 2617 insertions(+), 1719 deletions(-) rename Plain Craft Launcher 2/{Modules/Reference/SystemDropShadowChrome.vb => Controls/MyDropShadow.vb} (77%) delete mode 100644 Plain Craft Launcher 2/Resources/Language/en_US.xaml delete mode 100644 Plain Craft Launcher 2/Resources/Language/zh_CN.xaml diff --git a/Plain Craft Launcher 2/Application.xaml b/Plain Craft Launcher 2/Application.xaml index 02926d8..a24bad7 100644 --- a/Plain Craft Launcher 2/Application.xaml +++ b/Plain Craft Launcher 2/Application.xaml @@ -8,12 +8,6 @@ - - - - - - @@ -66,7 +60,7 @@ #01eaf2fe - +