简体中文
EmakiStructure
EmakiStructure 帮你做两件事: 结构生成 与 多方块结构交互
- 先用命令框选一块区域, 把它导出成结构模板 (
.nbt文件), 之后随时按指定朝向重新放到别处 - 你可以把"用方块摆出来的机关"记录成多方块定义, 玩家摆好形状后, 插件自动执行你配置的动作
- 生成中途如果被 reload 或停服打断, 插件会把地皮还原成生成前的样子
- 你可以在尚未生成的区块里, 把原版结构 (例如村庄) 换成你自己的模板
- 导出时插件会自动识别 ItemsAdder / Oraxen / Nexo / CraftEngine 放置的家具, 放置时按原样摆回去
基本信息
| 项目 | 值 |
|---|---|
| 模块版本 | 1.0.5 |
| 构建产物 | EmakiStructure-1.0.5.jar |
| API 坐标 | emaki.jiuwu.craft:emaki-structure-api:1.0.1 (只给开发者编译用, 不要放进 plugins/) |
| 主命令 | /emakistructure (别名 /ems, /estruct) |
| 必需依赖 | EmakiCoreLib (required: true) |
| 可选依赖 | MythicMobs, EmakiMobs, ItemsAdder, Oraxen, Nexo, CraftEngine (都不装也能用, 只是对应功能会停用) |
| 权限节点 | emakistructure.use, emakistructure.edit, emakistructure.reload, emakistructure.admin |
| 支持的平台 | Paper 26.1, 支持 Folia (folia-supported: true) |
NOTE
EmakiStructure 属于 .key 门控的私有模块: 只有源码仓库根目录存在 .key 文件时, 它才会参与默认构建. 如果你只是安装使用, 忽略这一条就行
功能页面
| 页面 | 内容 |
|---|---|
| 命令与权限 | 框选, 导出, 放置, 多方块与调试命令 |
| 结构模板 | 选区高亮, .nbt 导入导出校验, 生物点位与家具附属配置 |
| 多方块结构 | multiblocks/*.yml 定义, 触发与增量检测 |
| 配置详解 | config.yml 全部配置键说明 |
| API 与集成 | 给开发者: emaki-structure-api 门面与 MultiblockTriggerEvent |
核心能力
| 能力 | 说明 |
|---|---|
| 两点框选 | 用 /ems select pos1 / pos2 记下两个角点, adjust 微调大小, clear 取消; 框好的区域会用发光线框画在你眼前 |
| 结构模板 | 把选区导出成 structures/<名称>.nbt, 之后按朝向 (含左右镜像) 重新放置; 导入时会逐项检查体积, 颜色表, 方块自带数据的大小 |
| 生成时的保护 | 限制每 1/20 秒最多写多少方块, 服务器卡顿时自动降速, 排队超时自动中止, 支撑面不足时按策略处理 (skip/keep/fill), 以及防止玩家被生成的结构埋住 |
| 生成回滚 | 生成被 reload / 停服 / 超时 / 超限打断时, 只把被改动过的方块记进日志, 并据此还原到生成前的样子; 重启后会清理没提交完的记录 |
| 替换原版结构 | 对尚未生成的区块, 按 replace_rules 把原版结构 (如村庄) 换成你准备的模板; 已经生成的区块永远不会被改写 |
| 多方块结构 | 按选区导出 multiblocks/<id>.yml, 玩家摆好形状并交互时执行配置的动作; 支持形状校验, 冷却, 触发条件与增量检测 |
| 家具四源 | 导出时识别 ItemsAdder / Oraxen / Nexo / CraftEngine 的家具并记入 furniture/<模板>.yml, 放置时按朝向摆回, 回滚时移除 |
| 结构内生物 | spawns/<模板>.yml 里写好生物点位后, 结构生成时按点位 / 球形范围 / 区域范围生成生物 (支持 minecraft: / mythicmobs: / emakimobs: 前缀) |
默认配置目录
text
plugins/EmakiStructure/
├── config.yml
├── structures/ ← .nbt 结构模板 (由 structure export 生成)
├── multiblocks/ ← 多方块定义 (由 multiblock export 生成)
├── spawns/ ← 结构内生物点位 (手写)
├── furniture/ ← 家具记录 (导出结构时自动生成)
├── journal/ ← 生成回滚日志 (运行时自动生成)
├── replaced/ ← 已替换过的原版结构记录 (运行时自动生成)
└── lang/structures/ 与 multiblocks/ 通常由游戏内命令导出生成, 你也可以手工放进去; spawns/ 与 furniture/ 需要手写或由导出产生; journal/ 与 replaced/ 是插件运行时自动生成的, 不要手工编辑. 手工改过 spawns/ 等文件后, 执行一次 /ems reload 才会生效
典型工作流
- 先
/ems select pos1与/ems select pos2框选一块区域, 记下回显的尺寸 - 再用
/ems structure export <名称>把它导出成structures/<名称>.nbt - (可选) 手写
spawns/<名称>.yml指定这个结构里要生成什么生物; 如果选区里有家具插件的方块, 家具记录会在导出时自动一起生成 - 用
/ems get <名称> [朝向]就地预览效果, 满意后执行/ems structure place <名称> <朝向>正式放置 - 多方块: 执行
/ems multiblock export <id>按选区记录机关布局, 玩家摆好形状后自动触发动作 - 想让某些原版结构被替换掉时, 在
config.yml的replace_rules里加规则
与其他模块的关系
| 模块 | 协作方式 |
|---|---|
| EmakiCoreLib | 必需依赖: 提供定时任务调度, 调试命令, 消息与配置检查; 多方块的触发动作由 CoreLib 执行 |
| EmakiMobs / MythicMobs | 装了之后, spawns/ 里可以写 emakimobs: / mythicmobs: 开头的自定义生物 (两者都可不装) |
| ItemsAdder / Oraxen / Nexo / CraftEngine | 家具与自定义方块的来源. 没装对应插件时, 相关家具条目会被跳过并在控制台提示 |