《Minecraft》外置验证

介绍

MC正版登陆的时候,会验证微软账号,并且通过一个被 MOJANG 称之为 Yggdrasil 的验证服务器用来匹配正版玩家信息。

需求

正版皮肤

自己开过服务器的玩家会发现,如果你使用离线模式,也就是所谓盗版服,即使客户端使用正版登陆,在离线服里依然会没有皮肤。但是你去其他一些非正版公共服务器你可能能看到自己的皮肤,这是因为它们部署了外置 Yggdrasil 服务器。

正版验证服务器链接失败

如果服务端或者客户端遇到这个情况,就意味着正版玩家无法进入服务器,而自建服就是个好选择。

开始

我们的@yushijinhun为社区实现了一个在客户端实现第三方外置验证服务的注入器authlib-injector

这里分为两个部分:

  • 一个是需要自搭建的第三方外置验证服务器,也就是Yggdrasil本体,这通常需要域名以及为了安全性需要的https,国内知名的公共服务器就是“LittleSkin皮肤站”。
  • 第二是为游戏服务端,和客户端使用外置验证 authlib-injector 。国内第三方MC启动器如HMCL基本上都已经内置了这个功能,玩家只需要考虑选择使用哪个外置验证服务器就行了。

搭建Yggdrasil服务器

两个选择:

为服务器使用注入器

服务器下载jar文件: https://github.com/yushijinhun/authlib-injector/releases/

随后在服务器的启动指令中添加参数 -javaagent:authlib-injector.jar=http(s)://domain(ip:port)/api/yggdrasil 如:

1
java -javaagent:authlib-injector-1.2.5.jar=http://127.0.0.1:8080/api/yggdrasil -Xmx2G -jar fabric-server-launch.jar nogui

为客户端使用注入器

鉴于国内启动器都内置有就不用额外操作。对于像Prism Launcher这种上游明确表示不会支持authlib-injector的启动器,我们需要另辟蹊径。

如Prism Launcher支持在启动中添加包装器,使用mmcai_rs

注释

外置验证authlib-injector协议中支持为玩家优先匹配 正版账号ID 的皮肤还是 外置验证服务器 的皮肤。