平心而论,在我开测试服的时候顺便兼容了基岩版本加了Geyser插件(本人也是一位服主)
而在正式服,又忍受不了登录插件的许多毛病;在外网ip只有一个而且还是DDNS来连接的情况下,需要开不止一个服务器,本身就是个问题带端口也不好看主要是
在尝试跨服解决方案后又因为登录插件的问题导致有盗号漏洞
又想到了在很久之前因为没折腾出来基岩版的使用方案而被废弃的外置登录
在仔细看了Authlib-InjectorGeyser的关于基岩版使用外置的所有Issue之后,折腾出了这么些方案


准备环节

  1. 外置登录解决方案(这个应该不用多说了吧,这里用Blessing Skin加上其插件 Yggdrasil API 举例)
  2. Geyser(本文使用插件版,独立版未测试,但是理论可行,需要在启动参数后面加上Authlib-Injector的启动参数来修改验证地址 服务端也要改成一样的地址
  3. 一个Minecraft服务器

因为Geyser本身的问题,无法使用有多角色的外置登录解决方案,所以需要再加个插件
单角色限制 single-player-limit
由于载入之后需要选择一个角色来使用,其他角色会被清除(可能?)
所以推荐在没有玩家数据的情况下使用不然玩家数据不就gg了对吧(

开始操作

外置登录解决方案的配置

安装Blessing Skin的步骤就不赘述了,官方文档已经写得很清楚了
仅仅安装完Blessing Skin还不够,若要实现外置登录的功能,需要进入管理面板,左侧的插件市场,安装 Yggdrasil API 插件和 单角色限制 插件

如果出现 “严重错误 Undefined array key “packages” ” 请在.env文件的最后一行加入如下内容

1
PLUGINS_REGISTRY=https://d2jw1l0ullrzt6.cloudfront.net/registry_{lang}.json

Minecraft服务端与Geyser的配置

我想大家让服务器使用外置应该都是为了安全,和去掉登录插件(香草原版服务器无法使用插件功能)

在你的server.properties中开启正版验证(由于验证地址由Authlib-Injector修改成了外置登录的地址,所以这个正版验证会验证外置账户是否一致而不是Minecraft在线账户)

1
online-mode=true

如果你是插件版的Geyser,直接放入服务端的 Plugins 文件夹即可
如果你是独立版的Geyser,下载下来后修改配置文件让Geyser连接到Java版本服务器即可
具体步骤请看Geyser官方文档
如果你啃不动生肉,这里有非官方的中文文档,但是时效性问题,并不是最新的(怎么说呢,我因为这个原因排查了一个晚上版本的问题,最后才发现这两个手册已经差别很大了)

进入服务器方式

Java版本应该不用多说
基岩版只需要进入服务器后选择“使用 Mojang 账户登录”
随后输入邮箱与密码(如果上面没有载入 单角色限制 插件,你会出现 此服务器需要一个付费的Java账号 后被踢出服务器

(可选)修改登录文字

其实这个就简单了,不需要去改源码,下载下来的jar文件用Bandizip或者7zip打开后找到languages文件夹中的texts文件夹(./languages/texts)
在里面找到你对应的语言文件修改即可

结尾

到这里其实已经完成了(防火墙什么的应该不用说吧)
这么简单的东西对吧 我折腾了几周才摸索出来是怎么个回事


相关Issues:
https://github.com/yushijinhun/authlib-injector/issues/83
https://github.com/GeyserMC/MCProtocolLib/issues/552
https://github.com/yushijinhun/authlib-injector/issues/132
https://github.com/GeyserMC/Geyser/issues/1611
https://github.com/yushijinhun/authlib-injector/issues/132
https://github.com/GeyserMC/Geyser/issues/1000
https://github.com/yushijinhun/authlib-injector/issues/83
https://github.com/yushijinhun/authlib-injector/issues/220
https://github.com/GeyserMC/Geyser/issues/974
https://github.com/GeyserMC/Geyser/issues/1178

如果本文有些没提到的,你可以去以上Issues寻找解决方案或者在本文下留言(