基于 WorldEdit 的全自动建筑模板插件 | Author: LuMickZi
适用于 Paper 1.21+ ~ 26.1.x(其他版本未测试)
GitHub: LuMicZi/Aibuild
| 功能 | 说明 |
|---|---|
| 📚 模板管理 | 自动扫描 plugins/Aibuild/schematics/ 下的 .schem / .schematic / .litematic 文件 |
| 🖥️ 图形界面 (GUI) | 54 格 GUI,分页浏览,左键进入编辑模式,右键预览 |
| 🏗️ 交互式编辑 | 粒子线框闪烁预览,走动平移、鼠标旋转/升降、聊天按钮确认 |
| 🎨 彩色帮助菜单 | 可点击执行的彩色指令帮助,支持 Tab 补全 |
| ↩️ 撤销支持 | 每次建造后自动记录区域快照,可一键撤销恢复原始地形 |
| 🔭 选区工具 | 烈焰棒选区工具,左键设点1、右键设点2,对齐建筑到选区 |
| 🌐 多语言 | 内置英文 / 简体中文双语包,运行时可切换,支持 & 颜色码 |
| 🔐 权限系统 | 细粒度权限(build / preview / gui / tool / undo / reload) |
| ⚡ 快速粘贴 | 使用 EditSession.fastMode() 避免大型建筑阻塞主线程 watchdog |
| 🧩 Litematic 支持 | 内置 NBT 解析器,无需额外依赖即可加载 .litematic 格式 |
- Java 21 或更高版本(若使用 WorldEdit 7.4.3 则需 Java 25+)
- Paper 服务器(1.21+ ~ 26.1.x 已验证)
- WorldEdit 插件(worldedit-bukkit-7.x.x.jar)
# 1. 构建(如果你是从源码构建)
mvn clean package
# 2. 复制到服务器
cp target/Aibuild-1.0.0.jar /path/to/server/plugins/
# 3. 重启服务器首次启动后,插件会自动生成以下目录结构:
plugins/
└── Aibuild/
├── config.yml # 主配置文件(语言、文件夹路径、粒子线框)
├── languages/
│ ├── messages_en.yml # 英文语言包(可自行翻译/修改)
│ └── messages_zh_CN.yml # 中文语言包
└── schematics/ # 放你的 .schem / .schematic / .litematic 文件
├── 浮空之城.schem
├── castle.schematic
└── ...
把 .schem、.schematic 或 .litematic 文件拖到 plugins/Aibuild/schematics/ 目录。
然后执行:
/aibuild reload # 重新扫描模板
/aibuild gui # 打开 GUI
# 左键点击模板 → 进入交互式编辑模式
进入编辑模式后:
- 走动 → 建筑线框跟随你平移
- 左键(手持工具)→ 顺时针旋转 90°
- 右键(手持工具)→ 逆时针旋转 90°
- 潜行+左键 → 建筑升高 1 格
- 潜行+右键 → 建筑降低 1 格
- 聊天框显示四个可点击按钮:
[对齐视角][确认建造][取消建造][撤销上次建造]
/aibuild gui # 打开模板 GUI
/ab gui # 简写
- 左键附魔书 → 进入交互式编辑模式
- 右键附魔书 → 预览放置位置
- 底栏:上一页 / 撤销 / 信息 / 确认 / 下一页
所有命令均支持 Tab 补全:
| 命令 | 权限 | 说明 |
|---|---|---|
/aibuild list |
aibuild.use |
列出所有模板 |
/aibuild build <名> |
aibuild.build |
在当前位置建造 |
/aibuild preview <名> |
aibuild.preview |
预览放置位置 |
/aibuild confirm |
aibuild.build |
确认预览/编辑并建造 |
/aibuild cancel |
aibuild.use |
取消当前预览/编辑 |
/aibuild align |
aibuild.use |
对齐玩家视角(编辑模式) |
/aibuild gui |
aibuild.gui |
打开图形界面 |
/aibuild tool |
aibuild.tool |
获取选区工具 |
/aibuild undo |
aibuild.undo |
撤销上次建造 |
/aibuild reload |
aibuild.reload |
重新加载配置/模板 |
/aibuild language <en|zh_cn> |
aibuild.reload |
切换显示语言 |
/aibuild help |
aibuild.use |
显示彩色可点击帮助 |
所有命令的简写:/ab 代替 /aibuild
输入 /aibuild help 后,每条指令都可点击直接执行,无需手打。
# 1. 打开 GUI,左键点击想建的模板
/ab gui
# 2. 走动调整位置,左键旋转方向,潜行+右键降低高度
# 满意后点击聊天框的 [确认建造]
# 3. 不满意?点击 [撤销上次建造] 或输入 /ab undo
/ab undo
# 4. 重新放了新的 .schem 文件
/ab reload
# 5. 想切中文?
/ab language zh_cn
默认所有权限仅 OP 可用。用权限管理插件(如 LuckPerms / PermissionsEx)授予玩家:
| 权限节点 | 控制内容 | 默认 |
|---|---|---|
aibuild.use |
基础使用权限(总开关) | op |
aibuild.build |
建造模板(放置方块) | op |
aibuild.preview |
预览建筑放置位置 | op |
aibuild.gui |
打开图形界面 | op |
aibuild.tool |
获取和使用选区工具 | op |
aibuild.undo |
撤销建造 | op |
aibuild.reload |
重新加载配置 / 切换语言 | op |
所有消息支持 & 颜色码(如 &a 绿色、&c 红色、&e 黄色)。
切换语言:
/aibuild language en # 切换为英文
/aibuild language zh_cn # 切换为中文
修改语言包:直接编辑 plugins/Aibuild/languages/ 下的 YAML 文件,/aibuild reload 生效。
language: "en"
schematic-folder: schematics
frame: # 选区粒子线框
enabled: true
density: 2
color: [255, 40, 40]
size: 1.0
preview: # 预览粒子线框
enabled: true
density: 1
color: [40, 255, 80]
size: 1.5
editor: # 编辑模式闪烁线框
enabled: true
density: 1
color: [255, 200, 0]
size: 1.8
blink-on: 4
blink-off: 3git clone https://github.com/LuMicZi/Aibuild.git
cd Aibuild/
mvn clean package
# 输出位置
target/Aibuild-1.0.0.jar依赖(Maven 会自动下载):
| 依赖 | 用途 |
|---|---|
io.papermc.paper:paper-api |
Bukkit/Paper 插件 API |
com.sk89q.worldedit:worldedit-core + :worldedit-bukkit |
模板解析 + 编辑会话 |
Aibuild/
├── pom.xml # Maven 构建配置
└── src/main/
├── java/com/aibuild/
│ ├── Aibuild.java # 插件主类(启动、语言、配置)
│ ├── command/AibuildCommand.java # 命令处理 + Tab 补全 + 彩色帮助
│ ├── gui/SchematicGui.java # GUI:附魔书 + 编辑模式入口
│ └── manager/
│ ├── SchematicManager.java # 粘贴 + 撤销 + 预览
│ ├── PlacementEditor.java # 交互式编辑:旋转/平移/对齐/确认
│ ├── FrameRenderer.java # 粒子线框渲染(选区/预览/编辑)
│ ├── SelectionManager.java # 选区工具(编辑模式优先)
│ └── LitematicLoader.java # Litematic 格式加载器
└── resources/
├── plugin.yml # 插件描述 + 权限 + GitHub 地址
├── config.yml # 用户配置
├── messages_en.yml # 英文语言包
└── messages_zh_CN.yml # 中文语言包
Q: 服务器启动报 "Aibuild requires WorldEdit"?
A: 你的 plugins/ 目录下没有 WorldEdit。安装 worldedit-bukkit-7.x.x.jar 后重启。
Q: 编译报错 "class file has wrong version 69"?
A: WorldEdit 7.4.3 使用 Java 25 编译(class version 69)。需要 JDK 25+ 编译,或降级 pom.xml 中 WorldEdit 版本为 7.3.10(兼容 JDK 21)。
Q: 建筑位置不对?
A: 编辑模式下走动即可平移建筑,左键旋转,潜行+左右键升降。满意后点击 [确认建造]。
Q: 大型建筑粘贴时服务器卡死?
A: 已通过 editSession.setFastMode(true) 优化。超大建筑(50万+方块)建议拆分。
Q: 撤销能多次撤销吗?
A: 目前是一次撤销。建造时自动快照原始方块,撤销时完整恢复地形。
- ✅ 支持 Paper 1.21+ ~ 26.1.x
- ✅ GUI 54 格图形界面(分页浏览)
- ✅ 交互式编辑模式(粒子闪烁线框 + 走动平移 + 旋转/升降 + 聊天按钮)
- ✅ 命令行建造 / 预览 / 撤销
- ✅ Tab 补全 + 彩色可点击帮助菜单
- ✅ 中英双语(运行时切换,支持
&颜色码) - ✅ 权限系统(细粒度控制)
- ✅ 选区工具(对齐到选区一角)
- ✅ Litematic 格式支持(内置 NBT 解析器)
- ✅
EditSession.fastMode()快速粘贴 - ✅ 自动生成配置 + 语言文件
LuMickZi
GitHub: LuMicZi/Aibuild