这篇文章也可以在我的博客中查看
前言
上篇文章我们讲到如何在客户端使用皮肤。但提到多人联机中需要服务端的支持。但其实对服务端而言,这并不只是一个更换皮肤的问题,而是一个认证系统的问题,因此这篇文章我们谈谈如何配置服务端,使其支持第三方认证,并支持皮肤。
Yggdrasil
Yggdrasil是MC所采用的身份认证系统,第三方认证服务器通过实现Yggdrasil认证接口,并劫持官方认证链接到指定链接,即可替代官方认证服务器对玩家身份进行“认证”。
皮肤信息传输也随认证信息一起返回,因此,如果第三方认证服务器是皮肤站(比如LittleSkin),就意味着皮肤数据可以在多人游戏中使用。
有关更多第三方认证服务器的客户端配置,请见上篇文章
authlib-injector
authlib-injector是劫持官方认证链接的解决方案之一。
将authlib-injector下载到服务器后,即可使用以下命令启动服务端,以将官方认证服务器替换为指定第三方认证服务器:
java -Xmx1024M -Xms1024M -javaagent:authlib-injector-1.1.18-daa6fb4.jar=https://example.com/api/yggdrasil -jar minecraft_server.jar nogui
其中
authlib-injector-1.1.18-daa6fb4.jar
是jar
文件的路径,如果没放在服务端根目录,注意修改路径。https://example.com/api/yggdrasil
为Yggdrasil
服务器 API根路径,具体需要看第三方认证服务器的文档。- 后面的部分就是正常启动参数
然后修改server.properties
文件,开启在线认证:
online-mode=true
但不推荐使用这个方法,因为它是替换了原有的官方认证服务器,这意味着,正版玩家将无法登入服务器。
MultiLogin
MultiLogin解决了上述只能存在一个认证服务器的问题,它允许最多同时存在128个认证服务器。但是他的缺点是:他是插件,只能安装在插件服务器。如果你的服务器是不能安装插件的纯净服或mod服,那就没办法用这个插件了。
其使用的方式非常简单,按照一般插件安装的方法即可。
同样需要修改server.properties
文件,开启在线认证:
online-mode=true
裝插件首次运行后,会在插件目录产生MultiLogin
目录。我们需要打开并修改其中的配置文件。其配置文件的存放路径位于MultiLogin/services
目录。
MultiLogin/examples
有编辑配置文件的详细模板,GitHub仓库的Wiki也有配置相关的文档可以参考。
再次提醒:在
services
目录下的配置文件才会生效
总结
- 通过劫持官方认证服务器地址可以使用第三方认证服务器认证。
- authlib-injector可以替换官方认证服务器为皮肤站,但也就意味着正版玩家无法登录。
- MultiLogin支持多个认证服务器共存,正版玩家和皮肤站注册玩家可以一起玩,但它只能安装在支持插件的服务器上。
- 无论使用哪种方式,离线玩家都将无法登录服务器,请购买正版或注册游戏服务器支持的第三方认证服务器(咨询服主)。