簡介
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-data | minecraft-data 的 BDS 1.26.51 數據補充層 |
@bedboo/agent | 基於 bedboo 的腳本化生存智能體(生存智能體) |