关于近期Minecraft正版用户无法登录服务器的临时解决方案

您所在的位置:网站首页 我的世界服务器官网登录失败 关于近期Minecraft正版用户无法登录服务器的临时解决方案

关于近期Minecraft正版用户无法登录服务器的临时解决方案

2024-04-13 21:26| 来源: 网络整理| 查看: 265

近期 Minecraft 正版登录 api 由于懂的都懂的原因被屏蔽了,因此国内部分地区无法直接使用 Minecraft 正版登录,我整了一下午才暂时搞定了这个问题。本文讲述的是如何使用 https://github.com/CaaMoe/MultiLogin 实现第三方登录服务和正版登录并存,并且使不同方式登录的玩家共享游戏内玩家账号数据(如背包物品、装备、成就、统计数据等)。

此教程需要服务器配合修改才能生效,若客户端能正常进行正版登录则无需查看该文章。

一、Minecraft 登录的大致原理

Minecraft 正版用户在创建时会获得一个唯一的随机 UUID,并使用该 UUID 和 Mojang 的服务器进行验证。离线登录时则是根据玩家名称直接生成的 UUID。第三方登录也是同理,会给每个用户创建一个第三方的不同的 UUID 。

Minecraft 服务器识别实体或玩家都是使用的 UUID ,而并非是用户名(虽然不允许同名玩家同时登录),这也是为什么在更改 Minecraft 用户名过后,服务器也能正确识别出原用户,而不会当作一个新用户进行处理。

因此,使用离线方式登录或是使用第三方服务登录都会导致玩家的 UUID 发生变化,所以即使用户名相同也不会共享原先的账号数据。

二、使用第三方登录的局限

Minecraft 官方登录使用的是 Yggdrasil 协议,只要实现了该协议就可以整出一个使用第三方认证方式登录的服务器。使用 Authlib Injector 等手段即可修改原先的验证服务器,从而使用第三方服务进行正版登录。

但是使用这种方法,服务器也只能同时选择一种登录协议,无法做到同时处理正版登录和其他方式登录的用户。

最关键的是,由于上述原因,使用第三方登录服务产生的用户 UUID 会和正版用户的 UUID 不一样,这样登录会导致登录进来的用户全都是新号,除非手动修改先前所有用户数据的 UUID(如果你非要修改的话,找到 world/playerdata 等文件夹下由 UUID 命名的文件,重命名为新的玩家 UUID 即可) 。

使用离线模式+密码验证也是同理,也会导致用户的 UUID 发生变化,从而无法继续使用先前的用户信息。

三、MultiLogin 的作用

MultiLogin 就可以解决上述各种问题。该插件可以做到同时支持多种认证协议,并且处理由此产生的UUID和用户名冲突等相关问题。

我想出的解决方案是使用第三方皮肤站 Little Skin(该网站也支持 Yggdrasil 协议的登录认证)进行登录,同时使用 MultiLogin 的 profile 功能使得使用 Little Skin 方式登录的用户也能直接使用正版用户的角色。这样就可以做到在支持原先正版登录的同时,也支持使用Little Skin方式登录,并且用两种方式登录还能共用同一个玩家数据。

四、具体配置方法

安装MultiLogin(废话)

修改配置文件,参照 https://github.com/CaaMoe/MultiLogin/blob/v6/core/src/main/resources/examples/template_cn_full.yml 。正版登录可以在配置文件里设置代理,同时也可以添加其他的第三方认证服务器。

获取用户的 Minecraft 正版 UUID(有多种方法,如查看服务器日志文件、访问https://namemc.com/profile/玩家名称、调用 Mojang Api、查看 Essentials 的缓存等),然后执行指令

/multilogin profile create 正版用户名 正版用户UUID

来手动添加正版用户的数据。之后让Little Skin用户先登录下服务器让 MultiLogin 生成登录数据,再输入指令

/multilogin profile set 正版用户名 LittleSkin验证服务ID  LittleSkin用户名

来将 Little Skin 用户绑定到正版用户 UUID 上,这样下次该用户登录时也会被插件切换成正版用户的 UUID。

至此就能实现可以同时使用Minecraft正版用户和第三方服务登录同一个玩家账号了,可以让用户自行选择用哪种方法登录,并且正版登录玩家不会受到任何影响。

PS:虽然本文并未提及,但使用离线模式+密码验证也可以用上述方法让离线用户重新绑定正版用户的 UUID,包括使用其他第三方服务也一样。这里的关键就是让使用其他方法登录的玩家用 MultiLogin 让他们也切换到和正版账号一样的 UUID



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3