From cbf9180bd49e4601b9b4e369c0b68fc11f7b876f Mon Sep 17 00:00:00 2001 From: Big-Cake-jpg Date: Sun, 5 Apr 2026 08:35:30 +0800 Subject: [PATCH] =?UTF-8?q?refactor(launch):=20=E6=A0=B9=E6=8D=AE=20LWJGL?= =?UTF-8?q?=20=E7=89=88=E6=9C=AC=E5=88=A4=E6=96=AD=E6=98=AF=E5=90=A6?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=20LWJGL=20Unsafe=20Agent?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Modules/Minecraft/ModLaunch.vb | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/Plain Craft Launcher 2/Modules/Minecraft/ModLaunch.vb b/Plain Craft Launcher 2/Modules/Minecraft/ModLaunch.vb index c684380..ac44347 100644 --- a/Plain Craft Launcher 2/Modules/Minecraft/ModLaunch.vb +++ b/Plain Craft Launcher 2/Modules/Minecraft/ModLaunch.vb @@ -1330,6 +1330,23 @@ Retry: #End Region +#Region "获取 LWJGL 版本" + Private Function McLaunchGetLwjglVersion(Mc As McInstance) As String + For Each library As McLibToken In McLibListGet(Mc, False) + If String.IsNullOrWhiteSpace(library.OriginalName) Then Continue For + + Dim parts = library.OriginalName.Split(":"c) + If parts.Length >= 3 AndAlso + parts(0).Equals("org.lwjgl", StringComparison.OrdinalIgnoreCase) AndAlso + parts(1).Equals("lwjgl", StringComparison.OrdinalIgnoreCase) Then + Return parts(2) + End If + Next + + Return Nothing + End Function +#End Region + #Region "启动参数" Private McLaunchArgument As String @@ -1447,7 +1464,7 @@ NextInstance: 'LUA Dim UseLUA As Boolean = Not Settings.Get("LaunchAdvanceDisableLUA") AndAlso Not Settings.Get("VersionAdvanceDisableLUA", McInstanceSelected) AndAlso - McLaunchJavaSelected.MajorVersion >= 25 AndAlso McInstanceSelected.Version.Drop >= 261 + McLaunchGetLwjglVersion(McInstanceSelected) = "3.4.1" If UseLUA Then Args.Add($"-javaagent:""{ExtractPatch("LUA")}""") McLaunchLog("使用 LUA:" & UseLUA)