自动建造

自动建造

使用Baritone API的Minecraft自动建造器

技术

AutoBuilder - Minecraft Fabric 模组

自动从 .schematic(Schematica)文件中收集材料并使用 Baritone 建造结构。

需求

Minecraft 26.1(Java 版 2026)

工具 版本
Java 25+
Gradle 9.4+
Fabric Loader 0.18.4+
Minecraft 26.1
Fabric API 匹配 MC 版本
Baritone 26.1 社区构建

Minecraft 1.21.8(备选)

工具 版本
Java 21+
Gradle 8.x
Fabric Loader 0.16.x
Minecraft 1.21.8
Fabric API 0.115.x+
Baritone v1.15.0+

设置

1. 获取 Baritone API jar

对于 MC 1.21.8(默认): 从官方发布页下载 baritone-api-fabric-1.15.0.jar 并放入 libs/ 目录。

对于 MC 26.1: 从议题 #5011 下载社区 Baritone API 构建,或从拉取请求 #4990 自行构建。将 jar 放入 libs/ 目录。

2. 配置版本

编辑 gradle.properties 文件:

  • MC 1.21.8(默认 - 使用 Java 21 构建):
minecraft_version=1.21.8
fabric_api_version=0.115.0+1.21.8
loader_version=0.16.14
java_version=21
  • MC 26.1(需要 Java 25):
minecraft_version=26.1
fabric_api_version=26.1.0
loader_version=0.18.4
java_version=25

同时将 gradle/wrapper/gradle-wrapper-26.1.properties 复制覆盖 gradle/wrapper/gradle-wrapper.properties。

3. 构建

./gradlew build

构建好的模组 jar 文件位于 build/libs/autobuilder-1.0.0.jar。

4. 安装

将模组 jar、Fabric API jar 和 Baritone API jar 放入你的 .minecraft/mods/ 文件夹。

5. 放置结构文件

将 .schematic 和 .schem 文件放入 .minecraft/autobuilder/schematics/ 目录。

命令

命令 描述
/autobuilder list 列出所有可用的结构
/autobuilder info <名称> 显示结构尺寸和方块信息
/autobuilder start <名称> 自动收集材料然后建造
/autobuilder gather <名称> 仅收集材料,不建造
/autobuilder cancel 取消当前建造任务
/autobuilder status 显示当前建造进度
/autobuilder reload 从磁盘重新加载结构文件

工作原理

  1. 加载:扫描 .minecraft/autobuilder/schematics/ 目录中的 .schematic/.schem 文件
  2. 分析:统计结构中每种所需的方块类型
  3. 库存检查:将需求与你的库存进行比较
  4. 收集:针对缺失的方块,使用 Baritone 的 MineProcess 自动挖掘
  5. 建造:一旦所有材料收集完毕,使用 Baritone 的 BuilderProcess 放置方块

架构

autobuilder/
├── src/main/java/com/autobuilder/
│   ├── AutoBuilderMod.java      # Fabric 入口点,心跳/命令注册
│   ├── command/
│   │   └── AutoBuildCommand.java # /autobuilder 命令树
│   ├── builder/
│   │   ├── BuildManager.java    # 协调收集-然后-建造流程
│   │   ├── BuildJob.java        # 跟踪单个建造操作
│   │   └── BuildState.java      # 状态机(空闲→分析→收集→建造→完成)
│   ├── gather/
│   │   ├── MaterialManager.java # 库存检查与自动挖掘
│   │   └── MaterialRequirement.java # 方块需求模型
│   ├── schematic/
│   │   ├── SchematicManager.java # 加载和缓存 .schematic 文件
│   │   └── SchematicInfo.java   # 结构元数据
│   ├── config/
│   │   └── AutoBuilderConfig.java # 模组配置
│   └── util/
│       ├── BlockCounter.java    # 扫描结构以统计方块数量
│       └── InventoryHelper.java # 玩家库存查询工具
├── build.gradle
├── settings.gradle
├── gradle.properties
└── gradle/wrapper/
    └── gradle-wrapper.properties