Commit Graph

5 Commits

Author SHA1 Message Date
547f4beb7e M1+M2:1.21.1 构建跑通 + 协议客户端进 play 阶段
M1(构建):
- build.sh 编译 CP 加入 $OUT/fabric/*.jar,解决 net.fabricmc.* 找不到
- gen_1_21 内联 Sodium 通知改为委托共用 RenderCompat,补 reportRenderCompat
- 1.21.1 全量七步构建产物齐备(classes-intermediary.jar / names*.json / srg / inheritance.map)

M2(协议):
- login_start 按协议数据发 UUID(1.21 必填;1.20 可选)
- login_acknowledged / serverbound 包 id 改为查表,不再写死 0x00
- send() 实现压缩帧格式(varint(dataLen)+数据,小包不压)
- configuration 双向协商:发 settings、回 select_known_packs、拒 resource_pack
- protodef 补 bitflags / entityMetadataLoop / count(ctx引用) / compareTo 路径表达式
- NBT 读取器由占位符改为真实现(anonymousNbt 支撑 registry_data)
- 坏包容错:长度前缀是帧层权威,解不开整包丢弃并布告,不断流

实测:login→configuration(11 注册表)→play,位置 (5.5,-60.0,-0.5),map_chunk×9
判据:protodef 6→13 项(含线上真实 entity_metadata 字节回归);全量 77 项通过
2026-09-26 12:15:48 +08:00
b21b869e09 plan.md:M0 完成(空白测试服已起并可协议级探活) 2026-09-26 11:12:52 +08:00
c80b06552f plan.md:立起最顶层目的 —— 给 agent 一副能在 MC 里感知与行动的工具包
用户定调:插件目的是「让 agent 可以借助我们提供的工具包去玩我的世界」。

推论三条(改变工程重心):
  ① API 形状要照 LLM 用法设计,不是照程序员用法
     (mineflayer 是给写 bot 的人用的库;我们面向 LLM 直接调用)
  ② 感知 + 行动缺一不可 ⇒ 状态/事件/操作三层是正式骨架
  ③ 渲染是工具之一,不是全部 —— 之前把它当主线是重心错了

新增:
  §1c  空白测试服(不用现役服;现役 world 15G + mods 64,测不出边界)
  §1d  面向 LLM 的 API 形状(自省 / 可读返回 / 限量 / 失败要说清为什么)
  §6   里程碑重排:M0 测试服 → M1 修构建 → M2 协议客户端(真正的门槛)
       细渲染降到 M8(已能跑,只是接不上服务端真数据)
       拍照降为 M9(验证工具包的用例,不是工具包本身)

已核实的关键事实(写入 plan):
  · mineflayer 自述 'create minecraft bots with a stable, high level API'
    41 个 plugins 全是动作与感知,grep 行为树/目标选择 = 0 命中
    ⇒ 它是给 bot 开发者的库;决策在它之外,那是我们该留给 agent 的部分
2026-09-26 10:50:21 +08:00
7c7297ebad plan.md:按用户口径重写 —— 粗/细渲染分工、抽象模型(参考 mineflayer)、机位降为用例 2026-09-26 10:32:22 +08:00
c5560765a3 加 plan.md:工程计划(含 ass 粗渲染与聊天拍照的新方向) 2026-09-26 10:25:11 +08:00