本插件只是基于 Blessing Skin 皮肤站原有的用户系统,完整实现了一套符合 Yggdrasil API 规范的 API(这一套规范就是 Mojang 官方用于 Minecraft 正版登录鉴权的 API)。
而我们必须使用 authlib-injector 这个程序,以在运行时将游戏内的【Mojang 正版登录的 API 地址】替换成【皮肤站提供的 Yggdrasil API 地址】,从而实现外置登录系统。
配置启动器:
目前已知的直接支持 authlib-injector 的启动器有:
[推荐] HMCL3这些启动器可以直接设定登录时使用的 Yggdrasil API 地址。如果你知道其他更多支持此功能的启动器,可以联系我添加到此列表中。
以 HMCL3 为例:
添加认证服务器:https://skin.secretmine.net/api/yggdrasil
为游戏服务端加载 authlib-injector:
注意:
使用本外置登录方案,你必须在 server.properties 中将 online-mode 设置为 true。
如果你正在使用 BungeeCord,那么在所有服务端上都需要加载 authlib-injector,但应只有 BungeeCord 打开 online-mode,其它服务端应关闭 online-mode。
如何修改服务器启动参数请参照:Wiki – 在 Minecraft 服务端使用 authlib-injector。
举个例子:
用于启动 Minecraft 服务端的脚本一般来说是长这样的(使用 .bat
文件的用户请使用文本编辑器打开修改。你的启动命令可能与示例有些不同,这是正常的。在你自己的启动命令中能找到类似 -jar xxx.jar
的部分即可):
java -Xmx1024M -Xms1024M -jar minecraft_server.1.12.2.jar nogui
接下来请在启动命令中正确的位置(-jar xxx.jar
之前)插入 -javaagent
参数。
假设:
- 你下载到了文件名为
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
- 如果你使用的是 HMCL3,此项工作已由启动器自动完成
- Minecraft 服务端加载了 authlib-injector(必须
online-mode=true
)
以上三者必须使用同一个 Yggdrasil API。
否则会出现:
- 无法登录
- 不显示皮肤或显示错乱
- 无法进入服务器
等情况,敬请知悉。
恭喜!
如果命运的齿轮没有出差错,你应该已经可以 正常登录、正常进入服务器并看到自己的皮肤 了。
如果没有,那很遗憾,请参阅 0x04 常见错误 Troubleshooting 来排除可能的错误原因。