跳到正文
本页目录

简介

bedboo 是一个兼容 mineflayer API 的 Minecraft 基岩版机器人库。它提供与 mineflayer 4.39.0 相同的 createBot()、相同的 bot.* 属性、方法和事件、 相同的 TypeScript 类型以及相同的插件系统,但它通过 bedrock-protocol 与基岩版专用服务器(BDS)通信。为 mineflayer 编写的机器人代码,包括 mineflayer-pathfinder 等生态插件,都可以直接在 BDS 上运行。

为什么

mineflayer 是用 JavaScript 编写 Minecraft 机器人的常用方式,拥有庞大的插件生态,但它面向的是 Java 版。基岩版使用不同的协议、 不同的方块和物品 ID、服务端权威的物品栏和方块破坏,以及自己的一套移动物理,因此 Java 版机器人及其插件无法加入基岩版服务器。 bedboo 在不发明新 API 的前提下弥合了这一差距:mineflayer 的文档、示例和插件都可以原样使用。

唯一的差异是 Java 版与基岩版之间的固有差异:基岩版的方块和物品名称、没有队伍、服务端权威的物品栏和方块破坏等等。每一项都列在 基岩版差异中。

支持范围

  • 服务器: BDS 1.26.51.x(protocol 2193;1.26.52.x 使用相同协议)。bot.version 为 '1.26.51'。
  • 传输层: 默认 RakNet;使用 transport: 'nethernet' 时为 NetherNet(BDS 的默认传输层)。
  • 认证: auth: 'offline'(默认)用于 online-mode=false 的服务器,auth: 'microsoft' 用于 Xbox Live。
  • 真实客户端: transport: 'bedd' 改为驱动由 Be.D.D. 托管的真实基岩版客户端。
  • 运行时: Node.js 24 或更高版本。RakNet 需要 x64(raknet-native 只提供 x64 预编译包);NetherNet 是纯 JavaScript 实现。

构建方式

  • 使用 bedrock-protocol 建立连接(RakNet 基于 raknet-native,NetherNet 基于 node-nethernet),使用 prismarine-auth 登录 Xbox Live;
  • prismarine-* 系列库(block、chat、chunk、entity、item、nbt、recipe、registry、windows、world)和 minecraft-data,并以 @bedboo/bedrock-data 作为 BDS 1.26.51 的数据补充层;
  • 一个从 prismarine-physics 分叉而来的基岩版移动引擎;
  • mineflayer 自身的插件,每个插件对应一个改编文件,各自保留原有的署名头。

对这些依赖的小修复以 pnpm 补丁的形式放在仓库的 patches/ 目录中,因此目前需要在 bedboo 的 monorepo 中使用它 (见你的第一个机器人)。

包

包
bedboo库本体
@bedboo/bedrock-dataminecraft-data 的 BDS 1.26.51 数据补充层
@bedboo/agent基于 bedboo 的脚本化生存智能体(生存智能体)

下一步

  • 你的第一个机器人:服务器设置、安装、一个会走到你身边的机器人。
  • 生态插件:在基岩版上使用 pathfinder、pvp、collectblock 等插件。
  • API:createBot 选项和基岩版扩展。