无论是从离线模式迁移到正版登录,还是从一个第三方认证平台更换到另一个认证平台,甚至只是修改了游戏昵称,都有可能导致玩家被服务器识别为一个全新的角色。
常见表现包括:
- 背包物品消失
- 经验等级归零
- 出生点重置
- 统计信息丢失
- 成就进度重置
- 死亡记录、游玩时长等数据消失
实际上,这些数据并没有真正丢失。
Minecraft 识别玩家时依赖的是 UUID(唯一玩家标识),而不是玩家昵称。当登录方式发生变化时,玩家对应的 UUID 也会发生改变,因此服务器会将其视为一个全新的玩家。
玩家的大部分数据文件都是以 UUID 作为文件名保存的,因此只要将旧 UUID 对应的数据迁移到新 UUID,即可完整继承原有角色的数据。
找到旧 UUID 和新 UUID
获取 UUID 的方法有很多,例如:
- 查看服务端控制台日志
- 将玩家加入白名单后,在白名单文件中查找
- 使用第三方认证的玩家可在对应平台查看
- 离线登录的玩家可通过在线工具计算离线 UUID
在开始迁移前,需要先确认玩家的旧 UUID 和新 UUID。
需要迁移的数据
玩家的主要数据通常保存在以下三个位置:
| 路径 | 作用 |
|---|---|
| 存档/playerdata/uuid.dat | 保存玩家背包、装备、末影箱、经验等级、位置等数据 |
| 存档/advancements/uuid.json | 保存玩家进度和成就 |
| 存档/stats/uuid.json | 保存游玩时长、死亡次数、挖掘统计等信息 |
如果希望实现完整迁移,这三个位置的数据都需要一并处理。
迁移方法
操作前建议先备份整个存档,以防误操作导致数据损坏或丢失。
如果新 UUID 对应的玩家已经进入过服务器,则需要先删除其对应的数据文件。
随后将上述三个目录中旧 UUID 对应的文件复制一份,并将文件名修改为新 UUID:
- playerdata/旧UUID.dat → 新UUID.dat
- advancements/旧UUID.json → 新UUID.json
- stats/旧UUID.json → 新UUID.json
完成后重新启动服务器,玩家再次进入游戏时即可继承原有数据。
特殊情况
部分插件或模组会额外保存玩家数据,例如经济系统、权限系统、家园插件、领地插件等。
这些数据通常也会通过 UUID 或玩家名称进行关联,因此仅迁移原版存档数据并不一定能够完全恢复所有内容。
如果服务器安装了相关插件或模组,还需要根据其数据存储方式进行额外迁移,具体情况需结合实际环境处理。