village-32k-trader 最开始很直接:进村庄,旁边生成一间小屋,拿泥土换矿物和 32K 装备。它适合自己开一个临时存档时快速拿资源,但玩几天后就有点没意思了。商人只是一个更花哨的 /give。
所以这次我把它改成了“村庄成长商店”。商店还是在自然村庄附近生成,不过玩家需要自己完成当前阶段的目标,做出对应任务道具后才能解锁下一档装备和物资。这样钻石、下界、末地和袭击这些原版流程就不会被商店一键跳过。
现在的版本和分支
当前开发目标是 Minecraft Java 26.1.2,数据包格式为 101.1;专用服务器需要 Java 25。
仓库的 main 分支仍是旧的 1.21.5 实现,早已停止更新。要使用新版本,请切换到 agent/support-26.1.2 分支。下载时别只看仓库首页,拿错 main 分支就会得到旧包。
商店不再只是发装备
玩家第一次走进自然村庄后,附近地表会生成一座 9×9 的商店屋。同一片 160 格范围内只建一座,免得村庄里到处都是房子。
右键商人会打开原版对话框。商品、任务和教程都用物品图标展示,不再把一长串菜单刷进聊天栏。忘记怎么打开时,站在商人 6 格内输入 /trigger vt_menu set 1 就行。
主线从挖钻石、进下界开始,后面要打末影龙、完成袭击、击杀凋灵,最后才轮到监守者。每一步都要先激活任务,再达成目标;过去挖过的矿、打过的怪不会倒灌进任务进度。提交时还得带上为这一阶段制作的任务道具,系统会消耗它。
我特别在意多人世界里互相蹭进度的问题。现在主线、困难终局和儿童守护线都是个人进度,甲完成末影龙不会让乙直接跳阶段。Boss 栏也按玩家单独显示,任务没激活时告诉你当前路线,激活后才列出目标和进度。
便携钥匙、黑市制裁和儿童线
管理员可以给指定玩家发一把绑定的便携商店钥匙。拿着它时,玩家不在村庄也能打开自己的商店。钥匙交给别人没有用,权限仍然登记在原来的玩家数据里。
商人不是无敌摆设。它被杀掉或移除后,大约 5 秒会补回,同时提高全服共享的黑市制裁等级。普通商品会因此变贵,任务物品和辅助用品仍按各自配方收费。这个设定多少有点恶趣味,但也防止有人把商人当成随手能拆的装饰。
数据包还有一条独立的儿童守护线。它把目标拆得更小,例如收集原木、做工作台、熬过夜晚;主线装备生效时,儿童线会暂停,避免高属性装备把成长过程直接跳掉。儿童路线的辅助用品和主线共用一个槽位,一次只能生效一件。
数据包版的边界
这是纯数据包,不需要 Paper 或插件加载器。所有进度保存在世界存档的计分板、实体标签和命令存储里,会随存档正常保存。
也正因为如此,它不能像 Paper 插件那样导出单个玩家的 JSON 档案,跨服务器迁移档案要用插件版。两个版本也不能安装到同一台服务器,否则商人、任务事件和奖励会重复触发。
安装方式还是老规矩:把数据包目录复制到 存档目录/datapacks/村庄32K商人/,进入世界执行 /reload,再走进一个自然村庄。完整的管理命令、备份和故障排查写在仓库的 数据包帮助文档 里。
目前我还在可丢弃的测试存档里跑完整流程,尤其是多人进度隔离、任务提交和装备效果。根目录的发行 ZIP 会等这些实机玩法测试结束后再更新。