From ddfc6897d76bda02aab899500b037b4f83c60dba Mon Sep 17 00:00:00 2001 From: youzi-2333 Date: Tue, 20 Aug 2024 12:27:12 +0800 Subject: [PATCH] =?UTF-8?q?:bug:=20=E4=BF=AE=E5=A4=8D=E4=B8=80=E4=BA=9B?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Plain Craft Launcher 2/Modules/Base/ModValidate.vb | 5 +++-- Plain Craft Launcher 2/Modules/Minecraft/ModModpack.vb | 8 +++++--- .../Pages/PageVersion/PageVersionExport.xaml | 6 +----- .../Pages/PageVersion/PageVersionExport.xaml.vb | 9 ++++++++- 4 files changed, 17 insertions(+), 11 deletions(-) diff --git a/Plain Craft Launcher 2/Modules/Base/ModValidate.vb b/Plain Craft Launcher 2/Modules/Base/ModValidate.vb index c9b6aa0..9dd8a4c 100644 --- a/Plain Craft Launcher 2/Modules/Base/ModValidate.vb +++ b/Plain Craft Launcher 2/Modules/Base/ModValidate.vb @@ -314,6 +314,7 @@ End Class Public Class ValidateFolderPath Inherits Validate Public Property UseMinecraftCharCheck As Boolean = True + Public Property AllowNull As Boolean = False Public Sub New() End Sub Public Sub New(UseMinecraftCharCheck As Boolean) @@ -325,9 +326,9 @@ Public Class ValidateFolderPath If Not Str.TrimEnd("\").EndsWithF(":") Then Str = Str.TrimEnd("\") '检查是否为空 Dim LengthCheck As String = New ValidateNullOrWhiteSpace().Validate(Str) - If Not LengthCheck = "" Then Return LengthCheck + If Not AllowNull AndAlso Not LengthCheck = "" Then Return LengthCheck '检查长度 - LengthCheck = New ValidateLength(1, 254).Validate(Str) + LengthCheck = New ValidateLength(If(AllowNull, 0, 1), 254).Validate(Str) If Not LengthCheck = "" Then Return LengthCheck '检查开头 If Str.StartsWithF("\\Mac\") Then GoTo Fin diff --git a/Plain Craft Launcher 2/Modules/Minecraft/ModModpack.vb b/Plain Craft Launcher 2/Modules/Minecraft/ModModpack.vb index dd43998..ac4fd7f 100644 --- a/Plain Craft Launcher 2/Modules/Minecraft/ModModpack.vb +++ b/Plain Craft Launcher 2/Modules/Minecraft/ModModpack.vb @@ -987,9 +987,11 @@ Retry: '步骤 1:从 Modrinth 获取 Mod 工程信息,得到 URL Dim Mods As New List(Of McMod) - For Each m In Directory.EnumerateFiles(Version.Path & "mods\") - If m.EndsWithF(".jar") Then Mods.Add(New McMod(m)) - Next + If Directory.Exists(Version.Path & "mods\") Then + For Each m In Directory.EnumerateFiles(Version.Path & "mods\") + If m.EndsWithF(".jar") Then Mods.Add(New McMod(m)) + Next + End If '从 Modrinth 获取信息 Dim ModrinthHashes = Mods.Select(Function(m) m.ModrinthHash).ToList() diff --git a/Plain Craft Launcher 2/Pages/PageVersion/PageVersionExport.xaml b/Plain Craft Launcher 2/Pages/PageVersion/PageVersionExport.xaml index ea647d4..39cf72d 100644 --- a/Plain Craft Launcher 2/Pages/PageVersion/PageVersionExport.xaml +++ b/Plain Craft Launcher 2/Pages/PageVersion/PageVersionExport.xaml @@ -38,11 +38,7 @@ - - - - - + diff --git a/Plain Craft Launcher 2/Pages/PageVersion/PageVersionExport.xaml.vb b/Plain Craft Launcher 2/Pages/PageVersion/PageVersionExport.xaml.vb index 3f27dbd..c432673 100644 --- a/Plain Craft Launcher 2/Pages/PageVersion/PageVersionExport.xaml.vb +++ b/Plain Craft Launcher 2/Pages/PageVersion/PageVersionExport.xaml.vb @@ -14,6 +14,11 @@ Selected = New List(Of String) CurrentVer = PageVersionLeft.Version.Path End If + + TbExportName.ShowValidateResult = True + TbExportName.ValidateRules = New ObjectModel.Collection(Of Validate) From {New ValidateFileName() With {.AllowNull = True}} + TbExportName.Validate() + TbExportName.HintText = PageVersionLeft.Version.Name TbExportDesc.HintText = PageVersionLeft.Version.Info PanDisplayItem.Children.Clear() @@ -229,7 +234,9 @@ #Region "整合包信息 & 预览栏" Private Sub TbExportName_TextChanged(sender As MyTextBox, e As TextChangedEventArgs) Handles TbExportName.TextChanged - ItemVersion.Title = If(String.IsNullOrWhiteSpace(sender.Text), PageVersionLeft.Version.Name, sender.Text) + If String.IsNullOrEmpty(TbExportName.ValidateResult) Then + ItemVersion.Title = If(String.IsNullOrWhiteSpace(sender.Text), PageVersionLeft.Version.Name, sender.Text) + End If End Sub Private Sub TbExportDesc_TextChanged(sender As MyTextBox, e As TextChangedEventArgs) Handles TbExportDesc.TextChanged