From d305dd3e430207359dd1e34db6df70e0c6e915f8 Mon Sep 17 00:00:00 2001 From: Pigeon0v0 Date: Sun, 16 Jun 2024 13:19:17 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=89=88=E6=9C=AC=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E4=B8=8D=E8=83=BD=E6=AD=A3=E5=B8=B8=E6=98=BE=E7=A4=BA=E6=A0=B8?= =?UTF-8?q?=E5=BF=83=20NeoForge=20=E7=89=88=E6=9C=AC=20fix:=20=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E5=AE=89=E8=A3=85=E9=A1=B5=20NeoForge=20=E5=AD=98?= =?UTF-8?q?=E5=9C=A8=E5=A4=9A=E4=BD=99=E7=9A=84=E6=8F=8F=E8=BF=B0=20chores?= =?UTF-8?q?:=20NeoForge=20Icon=20=E6=98=BE=E7=A4=BA=EF=BC=8C=E4=BD=86?= =?UTF-8?q?=E7=9B=AE=E5=89=8D=E6=9C=89=E7=82=B9=E5=B0=8F=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Images/Icons/NeoForged.png | Bin 0 -> 4395 bytes .../Images/Icons/NeoForgedLarge.png | Bin 0 -> 1123 bytes .../Modules/Minecraft/ModMinecraft.vb | 49 ++++++++++++++++-- .../Pages/PageDownload/ModDownloadLib.vb | 4 +- .../PageDownload/PageDownloadInstall.xaml | 2 +- .../PageDownload/PageDownloadInstall.xaml.vb | 2 +- .../Pages/PageVersion/PageVersionOverall.xaml | 1 + Plain Craft Launcher 2/Resources/Custom.xaml | 2 + 8 files changed, 51 insertions(+), 9 deletions(-) create mode 100644 Plain Craft Launcher 2/Images/Icons/NeoForged.png create mode 100644 Plain Craft Launcher 2/Images/Icons/NeoForgedLarge.png diff --git a/Plain Craft Launcher 2/Images/Icons/NeoForged.png b/Plain Craft Launcher 2/Images/Icons/NeoForged.png new file mode 100644 index 0000000000000000000000000000000000000000..a9f8076f3d25782eb7fc55f0ef491ecba1c13eed GIT binary patch literal 4395 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 literal 0 HcmV?d00001 diff --git a/Plain Craft Launcher 2/Images/Icons/NeoForgedLarge.png b/Plain Craft Launcher 2/Images/Icons/NeoForgedLarge.png new file mode 100644 index 0000000000000000000000000000000000000000..55848a69dfab001562da00828f41574339f6910f GIT binary patch literal 1123 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrU=i?iaSW-L^JcES$CN^e3<0}fkT0hsRLrzJF^SY&)I(cI=d$AZkF-tHEUvWa_bAfKf1Z#HQ)UGDQU*W#%bRk zoO-(8xOKrU>leE;Hp$!1p80)N^#ycG?-+hKyZUz8$D~GK2-l#p#C!Fq(uzFRAMYF+9yUetiCwpdAE)Kooc3yh@t$tba&D?jtReXIH z)Bbyg+SBajtey3bcg=Lom2f`pk{|rSksaz^B(L8&&$uV@{^97K?`F&{TK`sl`(}P; zVaMm!uKg*HzieZiJ^$s^M{AcYo>#ANZ&k&czcXfH1l}FP4FX$2eP`Xwxi4v)oi)dJ zv*^jL1yPe`MjD^C*t#Y3X8N+tr<<}mn@SB>8c~8%=ck0k)|uYdZaj`L6bzsHdE=Zc zXLKiart;|Qy_uO7_&C@(>%y63mlvmf`+Du5YuI=7`*V8dA3wGD`$zpW+U$vnByQg?WI$BiGU_BZ!S`>0%- z;d$jn>cd<;P@D;D<&`bV%ijIRg#8J!X_yn-Im(jY!O$C zZlYhOc-43QrvL5p=1uu&cNs0|Go->ickVo}RQUg2nCrH|IoBl$9a4C2)i1Kvxb6Mw<&;$S!O7GzS literal 0 HcmV?d00001 diff --git a/Plain Craft Launcher 2/Modules/Minecraft/ModMinecraft.vb b/Plain Craft Launcher 2/Modules/Minecraft/ModMinecraft.vb index 458a42a..efb1dfb 100644 --- a/Plain Craft Launcher 2/Modules/Minecraft/ModMinecraft.vb +++ b/Plain Craft Launcher 2/Modules/Minecraft/ModMinecraft.vb @@ -1,4 +1,5 @@ Imports System.IO.Compression +Imports MS.Internal Public Module ModMinecraft @@ -345,7 +346,7 @@ Public Module ModMinecraft End If Next End If - '从 Forge Arguments 中获取版本号 + '从 Forge / NeoForge Arguments 中获取版本号 If JsonObject("arguments") IsNot Nothing AndAlso JsonObject("arguments")("game") IsNot Nothing Then Dim Mark As Boolean = False For Each Argument In JsonObject("arguments")("game") @@ -729,12 +730,20 @@ Recheck: State = McVersionState.Fabric Version.FabricVersion = If(RegexSeek(RealJson, "(?<=(net.fabricmc:fabric-loader:)|(org.quiltmc:quilt-loader:))[0-9\.]+(\+build.[0-9]+)?"), "未知版本").Replace("+build", "") Version.HasFabric = True - ElseIf RealJson.Contains("minecraftforge") Then + ElseIf RealJson.Contains("minecraftforge") AndAlso Not RealJson.Contains("neoforge") Then State = McVersionState.Forge Version.ForgeVersion = RegexSeek(RealJson, "(?<=forge:[0-9\.]+(_pre[0-9]*)?\-)[0-9\.]+") If Version.ForgeVersion Is Nothing Then Version.ForgeVersion = RegexSeek(RealJson, "(?<=net\.minecraftforge:minecraftforge:)[0-9\.]+") If Version.ForgeVersion Is Nothing Then Version.ForgeVersion = If(RegexSeek(RealJson, "(?<=net\.minecraftforge:fmlloader:[0-9\.]+-)[0-9\.]+"), "未知版本") Version.HasForge = True + ElseIf RealJson.Contains("neoforge") Then + State = McVersionState.NeoForge + Dim JsonStr1() As String = RealJson.Replace(" ", "").Split("""--fml.neoForgeVersion""," & vbCrLf & """") '这里的实现比较抽象,正则我写不会 + Dim JsonStr2() As String = JsonStr1(1).Split("""") + Version.NeoForgeVersion = JsonStr2(0) + If Version.NeoForgeVersion Is Nothing Then Version.NeoForgeVersion = RegexSeek(RealJson, "(?<=""--fml.neoForgeVersion"",)[0-9\.]+") + If Version.NeoForgeVersion Is Nothing Then Version.NeoForgeVersion = If(RegexSeek(RealJson, "(?<=net\.minecraftforge:fmlloader:[0-9\.]+-)[0-9\.]+"), "未知版本") + Version.HasNeoForge = True End If Version.IsApiLoaded = True End Select @@ -752,6 +761,8 @@ ExitDataLoad: Logo = PathImage & "Blocks/CobbleStone.png" Case McVersionState.Forge Logo = PathImage & "Blocks/Anvil.png" + Case McVersionState.NeoForge + Logo = PathImage & "Icons/NeoForged.png" Case McVersionState.Fabric Logo = PathImage & "Blocks/Fabric.png" Case McVersionState.OptiFine @@ -780,7 +791,7 @@ ExitDataLoad: End If Case McVersionState.Old Info = "远古版本" - Case McVersionState.Original, McVersionState.Forge, McVersionState.Fabric, McVersionState.OptiFine, McVersionState.LiteLoader + Case McVersionState.Original, McVersionState.Forge, McVersionState.NeoForge, McVersionState.Fabric, McVersionState.OptiFine, McVersionState.LiteLoader Info = Version.ToString Case McVersionState.Fool Info = GetMcFoolName(Version.McName) @@ -813,6 +824,7 @@ ExitDataLoad: WriteIni(Path & "PCL\Setup.ini", "VersionOptiFine", Version.OptiFineVersion) WriteIni(Path & "PCL\Setup.ini", "VersionLiteLoader", Version.HasLiteLoader) WriteIni(Path & "PCL\Setup.ini", "VersionForge", Version.ForgeVersion) + WriteIni(Path & "PCL\Setup.ini", "VersionNeoForge", Version.NeoForgeVersion) WriteIni(Path & "PCL\Setup.ini", "VersionApiCode", Version.SortCode) WriteIni(Path & "PCL\Setup.ini", "VersionOriginal", Version.McName) WriteIni(Path & "PCL\Setup.ini", "VersionOriginalMain", Version.McCodeMain) @@ -852,6 +864,7 @@ ExitDataLoad: OptiFine Old Forge + NeoForge LiteLoader Fabric End Enum @@ -903,6 +916,17 @@ ExitDataLoad: ''' Public ForgeVersion As String = "" + 'NeoForge + + ''' + ''' 该版本是否安装了 NeoForge。 + ''' + Public HasNeoForge As Boolean = False + ''' + ''' NeoForge 版本号,如 31.1.2、14.23.5.2847。 + ''' + Public NeoForgeVersion As String = "" + 'Fabric ''' @@ -929,6 +953,7 @@ ExitDataLoad: Public Overrides Function ToString() As String ToString = "" If HasForge Then ToString += ", Forge" & If(ForgeVersion = "未知版本", "", " " & ForgeVersion) + If HasNeoForge Then ToString += ", NeoForge" & If(NeoForgeVersion = "未知版本", "", " " & NeoForgeVersion) If HasFabric Then ToString += ", Fabric" & If(FabricVersion = "未知版本", "", " " & FabricVersion) If HasOptiFine Then ToString += ", OptiFine" & If(OptiFineVersion = "未知版本", "", " " & OptiFineVersion) If HasLiteLoader Then ToString += ", LiteLoader" @@ -965,6 +990,16 @@ ExitDataLoad: Else Throw New Exception("无效的 Forge 版本:" & ForgeVersion) End If + ElseIf HasNeoForge Then + If NeoForgeVersion = "未知版本" Then Return 0 + Dim SubVersions = NeoForgeVersion.Split(".") + If SubVersions.Length = 4 Then + _SortCode = Val(SubVersions(0)) * 1000000 + Val(SubVersions(1)) * 10000 + Val(SubVersions(3)) + ElseIf SubVersions.Length = 3 Then + _SortCode = Val(SubVersions(0)) * 1000000 + Val(SubVersions(1)) * 10000 + Val(SubVersions(2)) + Else + Throw New Exception("无效的 NeoForge 版本:" & NeoForgeVersion) + End If ElseIf HasOptiFine Then If OptiFineVersion = "未知版本" Then Return 0 '由对应原版次级版本号(2 位)、字母(2 位)、末尾数字(2 位)、测试标记(2 位,正式版为 99,Pre[x] 为 50+x,Beta[x] 为 x)组成 @@ -1175,6 +1210,7 @@ OnLoaded: Dim VersionInfo As New McVersionInfo With { .FabricVersion = ReadIni(Version.Path & "PCL\Setup.ini", "VersionFabric", ""), .ForgeVersion = ReadIni(Version.Path & "PCL\Setup.ini", "VersionForge", ""), + .NeoForgeVersion = ReadIni(Version.Path & "PCL\Setup.ini", "VersionNeoForge", ""), .OptiFineVersion = ReadIni(Version.Path & "PCL\Setup.ini", "VersionOptiFine", ""), .HasLiteLoader = ReadIni(Version.Path & "PCL\Setup.ini", "VersionLiteLoader", False), .SortCode = ReadIni(Version.Path & "PCL\Setup.ini", "VersionApiCode", -1), @@ -1185,6 +1221,7 @@ OnLoaded: } VersionInfo.HasFabric = VersionInfo.FabricVersion.Count > 1 VersionInfo.HasForge = VersionInfo.ForgeVersion.Count > 1 + VersionInfo.HasNeoForge = VersionInfo.NeoForgeVersion.Count > 1 VersionInfo.HasOptiFine = VersionInfo.OptiFineVersion.Count > 1 Version.Version = VersionInfo End If @@ -1273,7 +1310,7 @@ OnLoaded: McVersionFilter(VersionList, VersionListOriginal, {McVersionState.Fool}, McVersionCardType.Fool) '筛选 API 版本 - McVersionFilter(VersionList, VersionListOriginal, {McVersionState.Forge, McVersionState.LiteLoader, McVersionState.Fabric}, McVersionCardType.API) + McVersionFilter(VersionList, VersionListOriginal, {McVersionState.Forge, McVersionState.NeoForge, McVersionState.LiteLoader, McVersionState.Fabric}, McVersionCardType.API) '将老版本预先分类入不常用,只剩余原版、快照、OptiFine Dim VersionUseful As New List(Of McVersion) @@ -1407,7 +1444,7 @@ OnLoaded: End Function) End If - 'API 版本:优先按版本排序,此后【先放 Fabric,再放 Forge(按版本号从高到低排序),最后放 LiteLoader(按名称排序)】 + 'API 版本:优先按版本排序,此后【先放 Fabric,再放 Forge,再放 NeoForge(按版本号从高到低排序),最后放 LiteLoader(按名称排序)】 If ResultVersionList.ContainsKey(McVersionCardType.API) Then ResultVersionList(McVersionCardType.API) = Sort(ResultVersionList(McVersionCardType.API), Function(Left As McVersion, Right As McVersion) @@ -1419,6 +1456,8 @@ OnLoaded: Return Left.Version.HasFabric ElseIf Left.Version.HasForge Xor Right.Version.HasForge Then Return Left.Version.HasForge + ElseIf Left.Version.HasNeoForge Xor Right.Version.HasNeoForge Then + Return Left.Version.HasNeoForge ElseIf Not Left.Version.SortCode <> Right.Version.SortCode Then Return Left.Version.SortCode > Right.Version.SortCode Else diff --git a/Plain Craft Launcher 2/Pages/PageDownload/ModDownloadLib.vb b/Plain Craft Launcher 2/Pages/PageDownload/ModDownloadLib.vb index 8b5bc2f..a8ca4d7 100644 --- a/Plain Craft Launcher 2/Pages/PageDownload/ModDownloadLib.vb +++ b/Plain Craft Launcher 2/Pages/PageDownload/ModDownloadLib.vb @@ -2194,9 +2194,9 @@ Retry: .Title = If(Entry.IsBeta, Entry.StdVersion & "-beta", Entry.StdVersion), .SnapsToDevicePixels = True, .Height = 42, .Type = MyListItem.CheckType.Clickable, .Tag = Entry, .Info = If(Entry.IsBeta, "测试版", "稳定版") & If(Entry.ReleaseTime = "", - If(ModeDebug, "种类:" & Entry.Category & If(Entry.Branch Is Nothing, "", ",开发分支:" & Entry.Branch), ""), + If(ModeDebug, If(Entry.Category IsNot Nothing, "种类:" & Entry.Category, "") & If(Entry.Branch Is Nothing, "", ",开发分支:" & Entry.Branch), ""), "发布于 " & Entry.ReleaseTime & If(ModeDebug, ",种类:" & Entry.Category & If(Entry.Branch Is Nothing, "", ",开发分支:" & Entry.Branch), "")), - .Logo = PathImage & "Blocks/Anvil.png" + .Logo = PathImage & "Icons/NeoForged.png" } AddHandler NewItem.Click, OnClick '建立菜单 diff --git a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadInstall.xaml b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadInstall.xaml index 69c47f3..b16b864 100644 --- a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadInstall.xaml +++ b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadInstall.xaml @@ -89,7 +89,7 @@ - + diff --git a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadInstall.xaml.vb b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadInstall.xaml.vb index 17ded34..ef6a2f9 100644 --- a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadInstall.xaml.vb +++ b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadInstall.xaml.vb @@ -541,7 +541,7 @@ ElseIf SelectedForge IsNot Nothing Then Return "pack://application:,,,/images/Blocks/Anvil.png" ElseIf SelectedNeoForge IsNot Nothing Then - Return "pack://application:,,,/images/Blocks/Anvil.png" + Return "pack://application:,,,/images/Icons/NeoForged.png" ElseIf SelectedLiteLoader IsNot Nothing Then Return "pack://application:,,,/images/Blocks/Egg.png" ElseIf SelectedOptiFine IsNot Nothing Then diff --git a/Plain Craft Launcher 2/Pages/PageVersion/PageVersionOverall.xaml b/Plain Craft Launcher 2/Pages/PageVersion/PageVersionOverall.xaml index 3452357..50b7b9f 100644 --- a/Plain Craft Launcher 2/Pages/PageVersion/PageVersionOverall.xaml +++ b/Plain Craft Launcher 2/Pages/PageVersion/PageVersionOverall.xaml @@ -37,6 +37,7 @@ + diff --git a/Plain Craft Launcher 2/Resources/Custom.xaml b/Plain Craft Launcher 2/Resources/Custom.xaml index f35be1d..f0236e4 100644 --- a/Plain Craft Launcher 2/Resources/Custom.xaml +++ b/Plain Craft Launcher 2/Resources/Custom.xaml @@ -202,6 +202,8 @@ + +