通过运行时修改 authlib 实现游戏外登录,并为 Yggdrasil 服务端的实现提供规范
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.circleci
src
.gitignore
LICENSE
README.md
build.gradle
settings.gradle

README.md

authlib-injector

circle ci license language require java 1.8+

通过运行时修改 authlib 实现游戏外登录,并为 Yggdrasil 服务端的实现提供规范。

关于该项目的详细介绍见 wiki

获取

您可以从这里获取最新的 authlib-injector。

构建

构建依赖:Gradle、JDK 8+。

执行以下命令:

gradle

构建输出位于 build/libs 下。

部署

需要服务端实现本规范中的扩展 API。 通过添加以下 JVM 参数来配置:

-javaagent:{authlib-injector.jar 的路径}={Yggdrasil 服务端的 URL(API Root)}

调试

调试输出

添加以下 JVM 参数:

-Dauthlibinjector.debug={要打印的调试信息类型}

调试信息类型有:

  • launch 有关 authlib-injector 加载的
  • transform 有关字节码修改的
  • transform.skipped 分析了却未执行字节码修改的类(用于性能分析)
  • config 有关配置获取的
  • httpd 有关本地 HTTP 服务器的(其负责在本地处理掉部分请求,而不是发送到 Yggdrasil 服务端)

可以指定多个类型,中间用 , 分隔。如果要打印以上所有调试信息,可以设置其为 all

保存修改过的类

添加以下 JVM 参数:

-Dauthlibinjector.dumpClass=true

修改过的类文件会保存在当前目录下。