Skip to content

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

MultiYggdrasil Injector

基于 authlib-injector 的多 Yggdrasil 认证源注入器,支持 Minecraft 服务端和 Velocity 代理。

功能特性

  • 支持多个 Yggdrasil 认证源(官方、BlessingSkin 皮肤站等)
  • 跨源皮肤可见:通过 MineSkin API 自动转换非 Mojang 皮肤为官方 CDN URL
  • 双模式部署:Java Agent(独立服 / Velocity)或 Velocity 辅助插件
  • 同一 jar 既是 agent 也是 plugin
  • 优先级排序机制(ordinal 越小越优先)
  • 自动生成示例配置文件

架构

Java Agent / Velocity Plugin
    ↓
URLFilter 链(HTTP 代理层)             TransformUnit 链(字节码层)
├─ MultiSourceSessionFilter (hasJoined)  ├─ ConstantURLTransformUnit (URL 重写)
├─ MultiSourceQueryProfileFilter         ├─ UnpackTexturesTransformUnit (域名检查绕过)
├─ MultiSourceQueryUUIDsFilter           ├─ YggdrasilKeyTransformUnit (公钥注入)
├─ * (来自 authlib-injector)             └─ * (来自 authlib-injector)
└─ DefaultURLRedirector
    ↓
MineSkinRestorer (皮肤 URL → textures.minecraft.net)

核心组件

组件 说明
MultiYggdrasilInjector Agent 入口,初始化 Filter + TransformUnit
MultiSourceSessionFilter hasJoined/join 跨源路由,皮肤签名剥离 + MineSkin 转换
MultiSourceQueryProfileFilter Profile 查询聚合
MultiSourceQueryUUIDsFilter UUID 查询聚合
UnpackTexturesTransformUnit 字节码绕过 isAllowedTextureDomain
YggdrasilKeyTransformUnit 注入多源公钥(复用 authlib-injector)
MineSkinRestorer 调用 MineSkin API,缓存结果
ConfigAgent / YggdrasilConfig 配置文件解析
MultiYggdrasilVelocityPlugin Velocity Plugin 入口

使用方法

构建

./gradlew shadowJar

产物:build/libs/MultiYggdrasilInjector-1.0.2.jar

配置

在服务端目录的 config/multi-yggdrasil.ini(首次运行自动生成):

[MojangOfficial]
type = OFFICIAL
sessionHost = https://sessionserver.mojang.com
servicesHost = https://api.minecraftservices.com
profilesHost = https://api.mojang.com
ordinal = 0

[LittleSkin]
type = BLESSING_SKIN
apiRoot = https://littleskin.cn/api/yggdrasil/
ordinal = 1

部署

独立服(Forge / Fabric / Spigot / Paper):

java -javaagent:MultiYggdrasilInjector-1.0.2.jar -jar server.jar nogui

服务端需保持 online-mode=true。

Velocity 代理:

必须同时使用 javaagent 和 plugin。同一 jar 两种用途:

  1. 将 jar 放入 Velocity 的 plugins/ 目录(配置管理 + 日志集成)
  2. 在 Velocity 启动参数中添加 -javaagent(字节码转换 + 多源认证)
java -javaagent:plugins/MultiYggdrasilInjector-1.0.2.jar -jar velocity.jar

配置文件放在 Velocity 根目录的 config/multi-yggdrasil.ini(首次运行自动生成)。

子服需设为 online-mode=false。

配置说明

源类型

类型 说明 必需字段
BLESSING_SKIN BlessingSkin 皮肤站(LittleSkin、MUA 等) apiRoot
OFFICIAL Mojang 官方或镜像 sessionHost, servicesHost, profilesHost

优先级

ordinal 值越小优先级越高。登录时按 ordinal 顺序尝试各源,首个成功即返回。

跨源皮肤

非 Mojang 域名的皮肤纹理(如 littleskin.cn)会被自动提交至 MineSkin API,返回 textures.minecraft.net 的 Mojang 签名版本。客户端域名检查自然通过,无需额外配置。

同一皮肤 URL 的结果会被缓存,后续登录零延迟。

许可证

MIT License

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages