From 7b623dbc2dedce6ab67a01486997028e879185d3 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, 23 Oct 2023 23:34:18 +0800 Subject: [PATCH] 2.6.10 --- .../Modules/Base/ModBase.vb | 8 +- .../Modules/Minecraft/ModCrash.vb | 5 +- .../My Project/AssemblyInfo.vb | 4 +- .../PageDownloadCompDetail.xaml.vb | 4 +- .../PageDownload/PageDownloadInstall.xaml.vb | 10 +- .../Pages/PageVersion/PageVersionMod.xaml.vb | 9 +- Plain Craft Launcher 2/Resources/Help.zip | Bin 76759 -> 76824 bytes Plain Craft Launcher 2/Resources/ModData.txt | 1791 ++++++++++++----- 8 files changed, 1311 insertions(+), 520 deletions(-) diff --git a/Plain Craft Launcher 2/Modules/Base/ModBase.vb b/Plain Craft Launcher 2/Modules/Base/ModBase.vb index 0238490..fc55387 100644 --- a/Plain Craft Launcher 2/Modules/Base/ModBase.vb +++ b/Plain Craft Launcher 2/Modules/Base/ModBase.vb @@ -11,12 +11,12 @@ Public Module ModBase #Region "声明" '下列版本信息由更新器自动修改 - Public Const VersionBaseName As String = "2.6.9" '不含分支前缀的显示用版本名 - Public Const VersionStandardCode As String = "2.6.9." & VersionBranchCode '标准格式的四段式版本号 + Public Const VersionBaseName As String = "2.6.10" '不含分支前缀的显示用版本名 + Public Const VersionStandardCode As String = "2.6.10." & VersionBranchCode '标准格式的四段式版本号 #If BETA Then - Public Const VersionCode As Integer = 304 'Release + Public Const VersionCode As Integer = 308 'Release #Else - Public Const VersionCode As Integer = 306 'Snapshot + Public Const VersionCode As Integer = 307 'Snapshot #End If '自动生成的版本信息 Public Const VersionDisplayName As String = VersionBranchName & " " & VersionBaseName diff --git a/Plain Craft Launcher 2/Modules/Minecraft/ModCrash.vb b/Plain Craft Launcher 2/Modules/Minecraft/ModCrash.vb index 9346c40..6a5d35c 100644 --- a/Plain Craft Launcher 2/Modules/Minecraft/ModCrash.vb +++ b/Plain Craft Launcher 2/Modules/Minecraft/ModCrash.vb @@ -667,8 +667,9 @@ NextStack: "core", "init", "mods", "main", "file", "game", "load", "read", "done", "util", "tile", "item", "base", "oshi", "forge", "setup", "block", "model", "mixin", "event", "unimi", "netty", "common", "server", "config", "loader", "launch", "entity", "assist", "client", "plugin", "modapi", "mojang", "shader", "events", "github", "recipe", - "preinit", "preload", "machine", "reflect", "channel", "general", "handler", "content", - "fastutil", "optifine", "scheduler", "minecraft", "transformers", "universal", "internal", "multipart", "minecraftforge", "override", "blockentity", "platform" + "preinit", "preload", "machine", "reflect", "channel", "general", "handler", "content", "systems", "modules", + "fastutil", "optifine", "internal", "platform", "override", + "listeners", "scheduler", "minecraft", "transformers", "universal", "multipart", "minecraftforge", "blockentity" }.Contains(Word.ToLower) Then Continue For PossibleWords.Add(Word.Trim) Next diff --git a/Plain Craft Launcher 2/My Project/AssemblyInfo.vb b/Plain Craft Launcher 2/My Project/AssemblyInfo.vb index c5d9fe3..226ee1a 100644 --- a/Plain Craft Launcher 2/My Project/AssemblyInfo.vb +++ b/Plain Craft Launcher 2/My Project/AssemblyInfo.vb @@ -51,6 +51,6 @@ Imports System.Runtime.InteropServices ' 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号 ' 方法是按如下所示使用“*” - - + + diff --git a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadCompDetail.xaml.vb b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadCompDetail.xaml.vb index d74926e..291aa3f 100644 --- a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadCompDetail.xaml.vb +++ b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadCompDetail.xaml.vb @@ -102,7 +102,9 @@ NewCard.SwapControl = NewStack PanMain.Children.Add(NewCard) '确定卡片是否展开 - If Pair.Key = TargetCardName OrElse CType(FrmMain.PageCurrent.Additional(1), List(Of String)).Contains(NewCard.Title) Then + If Pair.Key = TargetCardName OrElse + (FrmMain.PageCurrent.Additional IsNot Nothing AndAlso '#2761 + CType(FrmMain.PageCurrent.Additional(1), List(Of String)).Contains(NewCard.Title)) Then MyCard.StackInstall(NewStack, If(Project.Type = CompType.ModPack, 9, 8), Pair.Key) 'FUTURE: Res Else NewCard.IsSwaped = True diff --git a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadInstall.xaml.vb b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadInstall.xaml.vb index 0138f2d..9c850e7 100644 --- a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadInstall.xaml.vb +++ b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadInstall.xaml.vb @@ -597,7 +597,7 @@ ''' 获取 OptiFine 的加载异常信息。若正常则返回 Nothing。 ''' Private Function LoadOptiFineGetError() As String - If LoadOptiFine.State.LoadingState = MyLoading.MyLoadingState.Run Then Return "正在获取版本列表……" + If LoadOptiFine Is Nothing OrElse LoadOptiFine.State.LoadingState = MyLoading.MyLoadingState.Run Then Return "正在获取版本列表……" If LoadOptiFine.State.LoadingState = MyLoading.MyLoadingState.Error Then Return "获取版本列表失败:" & CType(LoadOptiFine.State, Object).Error.Message '检查 Forge 1.13 - 1.14.3:全部不兼容 If SelectedForge IsNot Nothing AndAlso @@ -700,7 +700,7 @@ ''' Private Function LoadLiteLoaderGetError() As String If Not SelectedMinecraftId.Contains("1.") OrElse Val(SelectedMinecraftId.Split(".")(1)) > 12 Then Return "没有可用版本" - If LoadLiteLoader.State.LoadingState = MyLoading.MyLoadingState.Run Then Return "正在获取版本列表……" + If LoadLiteLoader Is Nothing OrElse LoadLiteLoader.State.LoadingState = MyLoading.MyLoadingState.Run Then Return "正在获取版本列表……" If LoadLiteLoader.State.LoadingState = MyLoading.MyLoadingState.Error Then Return "获取版本列表失败:" & CType(LoadLiteLoader.State, Object).Error.Message For Each Version As DlLiteLoaderListEntry In DlLiteLoaderListLoader.Output.Value If Version.Inherit = SelectedMinecraftId Then Return Nothing @@ -845,7 +845,7 @@ ''' 获取 Fabric 的加载异常信息。若正常则返回 Nothing。 ''' Private Function LoadFabricGetError() As String - If LoadFabric.State.LoadingState = MyLoading.MyLoadingState.Run Then Return "正在获取版本列表……" + If LoadFabric Is Nothing OrElse LoadFabric.State.LoadingState = MyLoading.MyLoadingState.Run Then Return "正在获取版本列表……" If LoadFabric.State.LoadingState = MyLoading.MyLoadingState.Error Then Return "获取版本列表失败:" & CType(LoadFabric.State, Object).Error.Message For Each Version As JObject In DlFabricListLoader.Output.Value("game") If Version("version").ToString = SelectedMinecraftId.Replace("∞", "infinite").Replace("Combat Test 7c", "1.16_combat-3") Then @@ -945,7 +945,7 @@ ''' 获取 FabricApi 的加载异常信息。若正常则返回 Nothing。 ''' Private Function LoadFabricApiGetError() As String - If LoadFabricApi.State.LoadingState = MyLoading.MyLoadingState.Run Then Return "正在获取版本列表……" + If LoadFabricApi Is Nothing OrElse LoadFabricApi.State.LoadingState = MyLoading.MyLoadingState.Run Then Return "正在获取版本列表……" If LoadFabricApi.State.LoadingState = MyLoading.MyLoadingState.Error Then Return "获取版本列表失败:" & CType(LoadFabricApi.State, Object).Error.Message If DlFabricApiLoader.Output Is Nothing Then If SelectedFabric Is Nothing Then Return "需要安装 Fabric" @@ -1038,7 +1038,7 @@ ''' Private Function LoadOptiFabricGetError() As String If SelectedMinecraftId.StartsWith("1.14") OrElse SelectedMinecraftId.StartsWith("1.15") Then Return "不兼容老版本 Fabric,请手动下载 OptiFabric Origins" - If LoadOptiFabric.State.LoadingState = MyLoading.MyLoadingState.Run Then Return "正在获取版本列表……" + If LoadOptiFabric Is Nothing OrElse LoadOptiFabric.State.LoadingState = MyLoading.MyLoadingState.Run Then Return "正在获取版本列表……" If LoadOptiFabric.State.LoadingState = MyLoading.MyLoadingState.Error Then Return "获取版本列表失败:" & CType(LoadOptiFabric.State, Object).Error.Message If DlOptiFabricLoader.Output Is Nothing Then If SelectedFabric Is Nothing AndAlso SelectedOptiFine Is Nothing Then Return "需要安装 OptiFine 与 Fabric" diff --git a/Plain Craft Launcher 2/Pages/PageVersion/PageVersionMod.xaml.vb b/Plain Craft Launcher 2/Pages/PageVersion/PageVersionMod.xaml.vb index 106d83f..686fa06 100644 --- a/Plain Craft Launcher 2/Pages/PageVersion/PageVersionMod.xaml.vb +++ b/Plain Craft Launcher 2/Pages/PageVersion/PageVersionMod.xaml.vb @@ -375,10 +375,11 @@ Dim IndexOfLoader As Integer = McModLoader.Output.IndexOf(ModEntity) McModLoader.Output.RemoveAt(IndexOfLoader) McModLoader.Output.Insert(IndexOfLoader, NewModEntity) - Dim Parent As StackPanel = If(IsSearching, PanSearchList, PanItems) - Dim IndexOfUi As Integer = Parent.Children.IndexOf(Parent.Children.OfType(Of MyListItem).First(Function(i) CType(i.Tag, McMod) Is ModEntity)) - Parent.Children.RemoveAt(IndexOfUi) - Parent.Children.Insert(IndexOfUi, McModListItem(NewModEntity)) + Dim List = If(IsSearching, PanSearchList, PanItems).Children + Dim IndexOfUi As Integer = List.IndexOf(List.OfType(Of MyListItem).FirstOrDefault(Function(i) CType(i.Tag, McMod) Is ModEntity)) + If IndexOfUi = -1 Then Continue For '因为未知原因 Mod 的状态已经切换完了 + List.RemoveAt(IndexOfUi) + List.Insert(IndexOfUi, McModListItem(NewModEntity)) Next If Not IsSearching Then '改变禁用数量的显示 diff --git a/Plain Craft Launcher 2/Resources/Help.zip b/Plain Craft Launcher 2/Resources/Help.zip index bd5a837759d36c1ca6e35c09399851ca94d3988e..d1295a22dbe0aeac2ff39d3d137e24fcc190529c 100644 GIT binary patch delta 8886 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 VsK71Ge+HX;3y?&;zO=sP{6B&=qDue( delta 8687 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