Skip to content

v0.4.1 — 从 jar 到机器人能用

Choose a tag to compare

@xiaoxiao150 xiaoxiao150 released this 26 Oct 10:12
· 45 commits to main since this release

modsmith v0.4.1

把 Fabric 模组 jar 变成 mineflayer 机器人能用的语义清单 + 实测数字 id。

这一版能做什么

L1 —— 单个 mod 接入:inspect 提取方块/物品/配方/中文名,calibrate 上服务器量出 1.21.1 的静态注册表数字 id(带服务器 mods 指纹,换过 jar 就拒绝复用),verify 做合成冒烟。农夫乐事 3.3.6 在生产环境跑着。

L2 —— 换一个 mod 只要几条命令:recipes --discover 用配方名切段反推自定义序列化器文法,不需要 javap、不需要逐字节试。

  • 暮色森林 4.8.629 实测:2134 条配方全解析、17 个自定义序列化器、40 秒出表
  • 每个类型带出现次数、命中物品、首条样例值,以及线上同形的备选(i32/f32、ingredient/list[slot] 这类语义拆分由人对配方 JSON 拍板)
  • --accept 采纳入正式 sidesheet;名字从清单里的配方 type 字段反填
  • 名字清单不完整也能解(严格拟合优先,弱候选 + 整包校验换备选)

L3 —— 机器人真的能玩:

  • learn --infer:从清单证据推工作站,不需要模型。自定义配方类型 + 显式 tool 字段 + 方块名词干匹配 → two-step-use / sidecar-recipe / place-and-wait
  • probe --scan-blocks:把候选方块逐个右键一遍,记录开不开窗。实测到自定义界面就必须走侧车(原版客户端开不了私有菜单)
  • verify --stations:真做一遍。侧车型发命令、两步式真放料换工具右键;多原料逐个放
  • 侧车熟成任务持久化到 <world>/modsmith-sidecar-jobs.json,断线退回挂起、重启恢复、玩家回来接着算

农夫乐事端到端实测:

✓ cooking_pot:farmersdelight:cooking/mushroom_stew(2 种料)→ mushroom_stew
✓ cutting_board(两步,4 种料):leather ×4 + shears → leather

onboard 现在是七步一条龙:inspect → calibrate → probe(+扫描) → recipes → learn(+证据) → verify(+站点) → sidecar。

已知限制

  • 只支持 Fabric(Forge/NeoForge 的 FML 握手是另一套协议)
  • 单个方块只能配置一种 recipeType
  • learn 的 LLM 路径(非 --infer)本版未复验;规则路径已覆盖 FD/TF
  • 两步式站点只在农夫乐事砧板上实测过
  • 0.x 期间 manifest / sidesheet 格式可能破坏性变更

验证

121 个测试全绿(npm test,不连服务器);暮色森林与农夫乐事均在真服务器上实测。