
首次同步HUD
标记每个世界的首次——你的第一颗钻石、发现你家的苦力怕、第一次因饥饿而死——并像属于那个世界独有的成就那样宣告它们。客户端侧;适用于任何服务器。
首次同步
进度对每个人来说都是一样的。但你的世界不是。
首次同步会关注那些每个世界仅发生一次的事情——第一颗钻石、你活过的第一个夜晚、第一只发现你房子的苦力怕、第一次真正饿死你——并为每一次都量身打造一个弹出通知。然后它会把这件事记下来:是哪一天、你当时站在哪里、以及这是第几个“第一次”。
几个月后再翻看这本日志,它就成了那个存档的日记。
适用于任何服务器
整个模组都在你的客户端运行。服务器上没有任何东西,也不需要任何权限——服务器甚至无法察觉你安装了它。
这之所以可能,是因为构成一个“首次”的所有信息,客户端本来就已经知晓,否则它就无法渲染游戏:
| 它注意到什么 | 如何得知 |
|---|---|
| 首次获得某个物品 | 你自己的物品栏 |
| 首次遇到某种生物 | 在48格范围内、未隐身,并且视线清晰无遮挡 |
| 新的生物群系、新的维度 | 你站立的位置 |
| 死亡,以及死因 | 伤害数据包——真实的伤害类型,而非服务器的文本描述 |
| 爆炸,以及是否由苦力怕引起 | 爆炸数据包,加上观察附近哪些苦力怕正在膨胀 |
| 一次真正的交易、一次真正的附魔 | 交易报价的使用计数器和物品被附魔——而不仅仅是打开界面 |
| 深度、高度、降雨、雷暴、日出 | 普通的世界状态 |
每个世界一本日志——每个种子也是
日志存放在 <游戏文件夹>/first-time-sync/<世界>.json,每个世界一个文件。
仅靠名字是不够的:服务器在重置地图后会保留其地址。因此,文件还通过一个指纹来标识——即服务器在每次加入时发送给每个客户端的打乱世界种子,也就是原版用来放置生物群系的同一个数字。这个数字对于一个世界是稳定的,对下一个世界则不同,因此同一IP上的新地图会开启一本全新的日志。
通知
一个手绘风格、使用进度语言显示的弹窗,包含更多信息:
- 按稀有度着色的强调色,从普通到传奇
- 以物品、生物或地点作为图标
- 第二行是属于你的:
第 12 天 · #7 - 一个不断减少的时间条,以及落地时扫过的光效
- 随稀有度变化的声音,从轻柔的叮当声到挑战号角
“首次”事件往往会成批到来——踏入下界会同时触发一个维度、一个生物群系和三种生物——所以它们会排队并逐个出现,而不是堆叠成一片噪音。
日志
按 J 键,或输入 /firsts。可搜索、按类别过滤,并在底部看到尚未发生的灰色条目——首次列表的一半乐趣就在于那些尚未达成的项目。
/firsts - 打开日志。
/firsts recent - 在聊天栏显示最近10条记录
/firsts stats - 各分类的进度
/firsts world - 这是哪个世界,及其指纹
/firsts home set - 在你所站之处标记为家
/firsts export - 将日志导出为 Markdown 格式
/firsts demo - 预览一个通知弹窗
/firsts forget <id> - 删除一条记录
/firsts reset - 清空此世界的日志
这些都是客户端命令。服务器永远不会看到它们被输入。
关于“在家”
“一只苦力怕发现了你的房子”需要知道家在哪里。你的第一张床会自动成为家,也可通过 /firsts home set 手动设置。半径默认为48格,并且标记会记住其所在的维度,因此下界中相同的坐标不会计入。
安装到已经玩过的世界?
加入后的最初两秒是安静的:你口袋里已有的东西,以及你正站立的生物群系,会被记下而不弹出通知。它们并非今天发生的。在那之后,每次发现才算真正的发现。
配置
config/first-time-sync.json。通知弹窗、音效和聊天复制都可以分别关闭;无论何种方式,日志都会持续记录。精心策划的约230个里程碑目录可以扩展为涵盖所有物品、生物群系和生物的完整列表,适合想要全量信息流的玩家——包括模组内容。
诚实的局限
- 只有你的客户端收到爆炸信息时才会记录,也就是发生在视线范围内的情况。当你在下界时,一只苦力怕夷平你的基地将不会被记录——没有服务器端协助,这无法得知。
- 生物群系和深度每秒采样一次,因此仅仅擦过稀有生物群系角落半秒钟可能会被遗漏。
要求
Minecraft 26.2 · Fabric Loader 0.19.3+ · Fabric API · Java 25
包含英语和俄语。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。