TIP
使用本外置登录方案,您必须在 server.properties 中将 online-mode 设置为 true。
如果您正在使用 BungeeCord,那么在所有服务端上都需要加载 authlib-injector,但应只有 BungeeCord 打开 online-mode,其它服务端应关闭 online-mode。
示例:
用于启动 Minecraft 服务端的脚本一般来说是长这样的(使用 .bat 文件的用户请使用文本编辑器打开修改。您的启动命令可能与示例有些不同,这是正常的。在您自己的启动命令中能找到类似 -jar xxx.jar 的部分即可):
java -Xmx1024M -Xms1024M -jar minecraft_server.1.12.2.jar nogui
接下来请在启动命令中 正确的位置(-jar xxx.jar
之前)插入 -javaagent
(opens new window)参数。
假设:
您下载到了文件名为 authlib-injector-1.1.18-daa6fb4.jar
的文件
并将其放到了与服务端核心 minecraft_server.1.12.2.jar
相同的目录下
您的 Yggdrasil 服务器 API Root 为 https://example.com/api/yggdrasil
那么您应该将上面的示例启动命令修改为这样:
java -Xmx1024M -Xms1024M -javaagent:authlib-injector-1.1.18-daa6fb4.jar=https://example.com/api/yggdrasil -jar minecraft_server.1.12.2.jar nogui
正确加载 authlib-injector
需要注意的是,authlib-injector 是通过 JVM 的 -javaagent
参数来实现运行时字节码替换的,所以您必须保证:
启动器支持使用自定义 Yggdrasil API 进行认证
Minecraft 游戏本体正确加载了 authlib-injector
Minecraft 服务端加载了 authlib-injector(必须 online-mode=true
)
以上三者必须使用同一个 Yggdrasil API。
否则会出现:
等情况。