Skip to content

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 才会生效

典型工作流 ​

  1. 先 /ems select pos1 与 /ems select pos2 框选一块区域, 记下回显的尺寸
  2. 再用 /ems structure export <名称> 把它导出成 structures/<名称>.nbt
  3. (可选) 手写 spawns/<名称>.yml 指定这个结构里要生成什么生物; 如果选区里有家具插件的方块, 家具记录会在导出时自动一起生成
  4. 用 /ems get <名称> [朝向] 就地预览效果, 满意后执行 /ems structure place <名称> <朝向> 正式放置
  5. 多方块: 执行 /ems multiblock export <id> 按选区记录机关布局, 玩家摆好形状后自动触发动作
  6. 想让某些原版结构被替换掉时, 在 config.yml 的 replace_rules 里加规则

与其他模块的关系 ​

模块协作方式
EmakiCoreLib必需依赖: 提供定时任务调度, 调试命令, 消息与配置检查; 多方块的触发动作由 CoreLib 执行
EmakiMobs / MythicMobs装了之后, spawns/ 里可以写 emakimobs: / mythicmobs: 开头的自定义生物 (两者都可不装)
ItemsAdder / Oraxen / Nexo / CraftEngine家具与自定义方块的来源. 没装对应插件时, 相关家具条目会被跳过并在控制台提示