Răsfoiți Sursa

Merge pull request #8464 from Big-Cake-jpg/main

refactor(launch): 根据 LWJGL 版本判断是否使用 LWJGL Unsafe Agent
龙腾猫跃 5 luni în urmă
părinte
comite
4f46b6b4a8
1 a modificat fișierele cu 18 adăugiri și 1 ștergeri
  1. 18 1
      Plain Craft Launcher 2/Modules/Minecraft/ModLaunch.vb

+ 18 - 1
Plain Craft Launcher 2/Modules/Minecraft/ModLaunch.vb

@@ -1326,6 +1326,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
 
@@ -1443,7 +1460,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)