基岩版 1.26.45
1.26.45 协议族的说明:协议 2169,BDS 1.26.45.1。向 createBot 传入 version: '1.26.45' 或
version: '1.26.45.1',此时 bot.version 为 '1.26.45',bot.protocolVersion 为 2169。以下内容均在运行中的
BDS 1.26.45.1 上验证,并与默认版本 BDS 1.26.51.1 对比(参见 BDS 笔记 与
连接与版本)。
数据
@bedboo/bedrock-data 提供 data/1.26.45/,由 scripts/generate.js --version 1.26.45 生成,来源:
| 来源 | 固定版本 |
|---|---|
| minecraft-data | 3.119.0(bd8b5c60),data/bedrock/1.26.40(minecraft-data 将 1.26.45 的方块、物品与材质指向这里) |
| CloudburstMC/Data | 040a6cc9(26.50 之前的最后一次提交;方块转储仍名为 block_properties.json) |
| gophertunnel | 7f058e5d("Updated for 1.26.45",协议 2169) |
| pmmp/BedrockData | bdb44a48(1.26.30,与 1.26.51 相同) |
| 实机探测 | scripts/probe/1.26.45.json(BDS 1.26.45.1) |
与 1.26.51 相比:
- 方块: 17 499 个方块状态(1.26.51 为 22 091)。每个状态的哈希都与 BDS 转储一致(与 1.26.51 一样只有
unknown在允许列表中);碰撞箱覆盖使用同一份允许列表(门、end_portal_frame)。 - 物品: 1 976 个物品,全部与 BDS 运行时物品状态一致。
shelf_mushroom尚不存在,因此配方标签minecraft:mushrooms_for_stew只展开为棕色与红色蘑菇。 - 生物群系: 88 个原版生物群系,ID 0..194。
dappled_forest(195)在 1.26.50 才加入。 - 实体: 没有
cushion实体。其余探测到的碰撞箱尺寸与 1.26.51 相同。 - 状态效果与附魔: ID 与 1.26.51 相同(效果 1..37,附魔 0..41)。
协议差异
minecraft-data 的 1.26.45 协议与 1.26.40 完全相同。与 1.26.51(协议 2193)相比,以下差异涉及 bedboo 读写的内容:
- 双重可选字段(特性
optionalsHavePresenceFlag,与 1.26.40 相同):player_auth_input的可选部分 (物品交互及其动作、物品堆叠请求、方块动作、载具旋转、预测载具)以及每个交易动作的window_id/flags前各有一个客户端 总是写为true的外层存在标志(gophertunnelDoubleOptionalFunc;minecraft-data 的*_presence字段),且input_data本身也是可选的。bedboo 在该协议族的序列化器中填入这些标志(lib/bedrock/presence.js);若不设置, bedrock-protocol 会将其写为false,按协议读取的一方之后的每个字段都会错位一个字节。 inventory_transaction:transaction_type与actions为可选字段;item_use数据没有hand字段 (没有副手使用交易:服务器使用主手)。item_stack_response: 多出containers_presence/item_stack_id_presence标志;读取方式不变。- 读取但未使用的差异:
boss_event多一个player_id,move_entity_delta没有ticks,play_sound没有bypass_listener_range_check/playback_position_seconds,dimension_data的高度字段名为max_height/min_height,子区块高度图为 256 字节缓冲区,camera_presets没有起始旋转,serverbound_pack_setting_change没有字符串列表值。 - 1.26.45 中不存在:
set_player_furnace_options与record_started(bedboo 均未使用)。
服务器差异
- 默认传输层: BDS 1.26.45.1 默认
transport=raknet(特性defaultTransportIsNethernet为 false)。在server.properties中选择 NetherNet 同样可用。 - 命令:
available_commands将command参数类型(/execute … run <command>)编号为 88 而非 90,因此bot.tabComplete与 1.26.40 一样为其使用 1.26.40 的表。bedboo 补全的其他参数类型 ID(目标 8/10、坐标 64/65、消息 68、 原始文本 70、JSON 74)均相同。没有/serveridentity命令。 - 与 1.26.51 相同:世界时间来自
sync_world_clocks(没有set_time)、生成后的加载界面门槛、加入流程,以及状态效果、 附魔与物品堆叠请求的编号。
测试
BEDBOO_VERSION=1.26.45 pnpm test 针对该协议族运行单元测试(CI 的 unit 矩阵包含它)。没有
test/fixtures/1.26.45/join_flat 抓包:回放已录制加入流程的测试依赖 1.26.51 抓包的细节(实体 ID、配方网络 ID、
物品数量),在 1.26.45 上会被跳过。