开启辅助访问      

站内搜索

搜索
热搜: 下载 1.19 1.20

Minecraft(我的世界)苦力怕论坛

[服务器工具] 存档UUID重映射器

发表于 2024-2-25 22:38:20 | 显示全部楼层 |阅读模式 IP:北京
软件资源发布
中文名: 存档UUID重映射器
外语名: UUID Remapper
来源: 原创
支持版本: 1.18.x 1.19.x 1.20.x 
原帖地址: https://github.com/CaveNightingale/uuid-remapper
下载地址: https://github.com/CaveNightingale/uuid-remapper
软件版本: 1.0.0
最后更新: 2024-02-25
编写语言: Rust
语言支持: English 
本帖最后由 洞穴夜莺 于 2024-2-25 23:09 编辑

截图 2024-02-14 11-35-29.png
接上一帖:https://klpbbs.com/thread-129321-1-1.html

这个工具可以用于将服务器存档从正版验证迁移至离线模式、从离线模式迁移至正版验证、为离线模式下的玩家改名、转移一个账号的数据到另一个账号等。同时保留账号上的玩家位置、状态、物品栏、统计信息、成就、驯服的动物、吸引的仇恨等几乎所有数据。

一些模组,比如 Luckperms ,使用数据库保存玩家信息,需要另外修改 。

其主要工作方式是查找 NBT 文件和文本文件及它们的文件名中的 UUID ,并对找到的文件中的每个 UUID 替换为新的 UUID。查找范围和模式为:
  • 文本文件:*.txt, *.json, *.json5, *.toml, *.yml, *.yaml, *.properties,模式:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx、xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  • NBT文件:*.nbt, *.dat, *.mca, *.mcc,模式:{*UUIDMost: xyL, *UUIDLeast: zwL}、[I; x, y, z, w]、字符串字段模式同文本文件
  • 上述两类文件的文件名,模式同文本文件。

目前这个程序在我维护的服务器上处理了70GiB的存档(1.18.2),暂未发现问题。

用法:
  1. uuid-remapper <PATH> <MAPPING_KIND> <MAPPING_FILE> [-t <THREAD_COUNT>] [-yes] [-no]
复制代码
  • <PATH>是需要重映射的路径,程序会扫描这个路径下的文件并进行处理,例如/var/minecraft
  • <MAPPING_KIND>是函数的输入格式,见后文,例如csv
  • <MAPPING_FILE>是函数的输入路径,见后文,例如func.csv
  • [-t <THREAD_COUNT>]指定使用的线程数量,如果不写,使用24线程
  • [-y]跳过确认步骤
  • [-n]不进行修改,用于调试


重映射函数
总共有8种输入格式,下面介绍每种输入格式:
csv
除了第一行表头被忽略以外,剩下每行两个以逗号分隔的UUID x,y表示从x映射到y,例如
  1. 旧UUID,新UUID
  2. c50d0fb23bc24da5bcd63b50c99dcd5a,fb1ad51ecf1f41f78fd110dff164b17d
复制代码
表示将文件夹中的c50d0fb23bc24da5bcd63b50c99dcd5a替换为fb1ad51ecf1f41f78fd110dff164b17d。
使用常见的表格处理工具,例如Excel、Libreoffice Calc便可制作这样的文件。

json
文件包含一个JSON对象,其中的键值对"x": "y"表示从"x"映射到"y",例如
  1. {
  2.     "c50d0fb23bc24da5bcd63b50c99dcd5a": "fb1ad51ecf1f41f78fd110dff164b17d"
  3. }
复制代码
表示将文件夹中的c50d0fb23bc24da5bcd63b50c99dcd5a替换为fb1ad51ecf1f41f78fd110dff164b17d。
许多编程语言,比如Javascript、Java、Python、Rust,可以很方便地操纵这种文件格式。

list-to-offline
文件是一个玩家清单,表示将这些玩家的正版UUID映射到离线UUID,程序通过Mojang API查询用户正版UUID,大小写敏感,例如
  1. CaveNightingale
  2. Notch
复制代码
表示将文件夹中CaveNightingale和Notch的正版UUID替换为离线UUID。
此种输入往往只需要将白名单申请共享文档中的用户名一列复制下来便可获得。

list-to-online
和上面一样,但是离线UUID替换为正版UUID。

usercache-to-offline
此种格式文件中带有一个JSON数组,数组中的元素是对象,每个对象有一个字段name保存用户的名称,将所有name字段的值取出则得到list-to-offline的输入,例如
  1. [
  2.     {
  3.         "name": "CaveNightingale"
  4.     },
  5.     {
  6.         "name": "Notch"
  7.     }
  8. ]
复制代码
表示将文件夹中CaveNightingale和Notch的正版UUID替换为离线UUID。
这种格式的输入可以直接用服务端目录下的usercache.json或者whitelist.json,以便迁移所有玩家/当前白名单玩家的数据。

usercache-to-online
和上面一样,但是离线UUID替换为正版UUID。

offline-rename-csv
在离线UUID之间进行改名操作,格式见csv,但是原像和像都是用户名,例如
  1. 旧用户名,新用户名
  2. Notch,CaveNightingale
复制代码
表示将离线账号Notch名下的数据迁移给离线账号CaveNightingale。

offline-to-specific-csv
将离线账号的UUID迁移到指定账号,格式见csv,原像是用户名,像是UUID,例如
  1. 离线用户名,目标账号
  2. CaveAlt,fb1ad51ecf1f41f78fd110dff164b17d
复制代码

表示将离线账号CaveAlt替换为fb1ad51ecf1f41f78fd110dff164b17d(正版账号CaveNightingale)。

以上所有格式,对于函数中没有被定义的UUID,程序不作修改。对于涉及到正版UUID而给出的用户名没有正版账号的,等同于没有定义。

一个完整示例
  1. uuid-remapper /var/minecraft usercache-to-online /var/minecraft/usercache.json -t12
复制代码

将/var/minecraft文件夹中的服务端内所有玩家账号迁移到正版,使用12个线程。
如果不使用-y参数运行,将会被要求核对文件清单和UUID清单,必须回答yes或y(不区分大小写)


下载:
可从Github Release或者Github Action下载,文件是一样的。(由于论坛无法上传exe扩展名的文件,请从论坛下载的用户自行重命名添加.exe后缀)
平台文件查毒
X86_64 GNU/Linux uuid-remapper-v1.0.0-x86_64-linux (6.48 MB, 下载次数: 0) 查毒报告
X86_64 Windows uuid-remapper-v1.0.0-x86_64-windows (4.9 MB, 下载次数: 12) 查毒报告
X86_64 macOS uuid-remapper-v1.0.0-x86_64-macos (5.72 MB, 下载次数: 0) 查毒报告
源代码 uuid-remapper-v1.0.zip (34.48 KB, 下载次数: 0) 不适用

请在Github或者论坛提出BUG或者功能请求。
程序以Mit许可证分发,通俗地说,你可以无限制地修改、分发、使用本程序,只需要在分发时也一并发送一份Mit许可证文本。

编译
  1. cargo build --release
复制代码
编译结果在target/release下

水怪席:@Aurora_Feather @星河皓月xyz @凌雨林 @开心的阿诺 @Su·東紅 @wsseieiei @Pink_Dove

评分

参与人数 3铁粒 +65 收起 理由
开心的阿诺 + 30 好东西
星河皓月xyz + 30 苦力怕论坛感谢有你~
Pink_Dove + 5 虽然暂时金币不多,但还是支持一下.

查看全部评分

苦力怕论坛,感谢有您~
回复

使用道具 举报

发表于 2024-2-25 23:28:25 | 显示全部楼层 IP:广西
虽然我暂时用不上,但是就冲这句

“ 这个工具可以用于将服务器存档从正版验证迁移至离线模式、从离线模式迁移至正版验证、为离线模式下的玩家改名、转移一个账号的数据到另一个账号等。同时保留账号上的玩家位置、状态、物品栏、统计信息、成就、驯服的动物、吸引的仇恨等几乎所有数据。”

也得支持一下(
2# 2024-2-25 23:28:25 回复 收起回复
苦力怕论坛,感谢有您~
回复 支持

使用道具 举报

发表于 2024-2-26 20:02:20 | 显示全部楼层 IP:北京
竟然提到我了
能迁移账号的数据,看起来就很实用
3# 2024-2-26 20:02:20 回复 收起回复
苦力怕论坛,感谢有您~
回复 支持

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

本站
关于我们
联系我们
坛史纲要
官方
哔哩哔哩
技术博客
下载
网易版
安卓版
JAVA
反馈
意见建议
教程中心
更多
捐助本站
QQ群
QQ群

QQ群

访问手机版

访问手机版

手机版|小黑屋|系统状态|klpbbs.com

粤公网安备 44200002445329号 | 由 木韩网络 提供云服务 | GMT+8, 2024-4-28 08:47

声明:本站与Mojang以及微软公司没有从属关系

Powered by Discuz! X3.4 粤ICP备2023071842号