簡體   English   中英

我使用“minecraft-launcher-lib”創建更簡單的啟動器的代碼不斷拋出錯誤

[英]My code for using the “minecraft-launcher-lib” to create a simpler launcher keeps throwing an error

我正在嘗試制作一個始終在 Python 中打開 1.8.9 的 Minecraft 啟動器,因為我發現 minecraft-launcher-lib python ZEFE90A8E604A7C840E88D03A67F6B7D 在我看來比使用批處理效果更好。 它適用於 1.14.3 - 1.16.5(這是我測試過的)。 問題是我使用的是 Minecraft 1.8.9,它在 LWJGL 中使用名為“org.lwjgl.DefaultSysImplementation.getPointerSize()”的 function 不斷拋出錯誤。 LWJGL 代表“LightWeight Java Game Library”,這是 Mojang 用來制作 Minecraft 的游戲庫。 我的代碼有問題嗎,或者任何人都可以向我解釋並解決這個問題嗎?

代碼:

import subprocess

#Get latest version
latest_version = minecraft_launcher_lib.utils.get_latest_version()["release"]
print(latest_version)

#Get Minecraft directory
minecraft_directory = minecraft_launcher_lib.utils.get_minecraft_directory()
print(minecraft_directory)

#Login
login_data = minecraft_launcher_lib.account.login_user(<username>,<password>)
print(login_data)

version_list = minecraft_launcher_lib.utils.get_version_list()
print(version_list)

#Get Minecraft command
options = {
    "username": login_data["selectedProfile"]["name"],
    "uuid": login_data["selectedProfile"]["id"],
    "token": login_data["accessToken"]
}
minecraft_command = minecraft_launcher_lib.command.get_minecraft_command("20w14infinite",minecraft_directory,options)
print(minecraft_command)

#Start Minecraft
subprocess.call(minecraft_command)

錯誤:

java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_265]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_265]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_265]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_265]
    at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
    at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
Caused by: java.lang.UnsatisfiedLinkError: org.lwjgl.DefaultSysImplementation.getPointerSize()I
    at org.lwjgl.DefaultSysImplementation.getPointerSize(Native Method) ~[DefaultSysImplementation.class:?]
    at org.lwjgl.Sys.<clinit>(Sys.java:118) ~[Sys.class:?]
    at net.minecraft.client.Minecraft.func_71386_F(Minecraft.java:2756) ~[ave.class:?]
    at net.minecraft.client.main.Main.main(SourceFile:41) ~[Main.class:?]
    ... 6 more
[20:05:04] [main/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:1052]: net.minecraftforge.fml.relauncher.FMLSecurityManager$ExitTrappedException
[20:05:04] [main/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:1052]:    at net.minecraftforge.fml.relauncher.FMLSecurityManager.checkPermission(FMLSecurityManager.java:30)
[20:05:04] [main/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:1052]:    at java.lang.SecurityManager.checkExit(SecurityManager.java:761)
[20:05:04] [main/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:1052]:    at java.lang.Runtime.exit(Runtime.java:107)
[20:05:04] [main/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:1052]:    at java.lang.System.exit(System.java:973)
[20:05:04] [main/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:1052]:    at net.minecraft.launchwrapper.Launch.launch(Launch.java:138)
[20:05:04] [main/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:1052]:    at net.minecraft.launchwrapper.Launch.main(Launch.java:28)

Process finished with exit code 0

所以,我弄清楚是什么導致它給出錯誤。 生成的命令有 1 個小錯誤。 它試圖訪問一些甚至不存在的本地人。 所以,我在 .minecraft 文件夾中創建了一個 natives 文件夾,並將錯誤的路徑更改為 natives 的路徑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM