跳到正文
本頁目錄

簡介

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 選項和基岩版擴展。