EmakiItem
EmakiItem 是轻量自定义物品模块,提供稳定物品 ID、基础属性、套装、触发动作、自动更新与 PlaceholderAPI 支持。它适合作为装备成长线的起点:先生成一件有稳定 ID 的装备,再交给 Forge、Strengthen、Gem、Attribute 和 Skills 继续扩展。
基本信息
| 项目 | 值 |
|---|---|
| 模块版本 | 2.6.2 |
| 主命令 | /emakiitem |
| 别名 | /ei |
| 硬依赖 | EmakiCoreLib |
| 软依赖 | EmakiAttribute、EmakiSkills、MythicMobs、PlaceholderAPI |
| 权限节点 | emakiitem.use、emakiitem.give、emakiitem.inspect、emakiitem.update、emakiitem.reload、emakiitem.debug、emakiitem.admin |
功能页面
| 页面 | 内容 |
|---|---|
| 命令与权限 | 列出与发放物品、检查手持物与组件、刷新物品与套装、重载与调试。 |
| 物品定义与套装 | items/*.yml 与 sets/*.yml 的字段、物品 ID 到 ItemStack 的生成规则。 |
| 触发器 | 交互、攻击、投射物、方块、丢弃等事件中执行动作。 |
| 物品更新策略 | 物品定义变更后把玩家手上的旧物品更新到新版本。 |
| 物品修复系统 | 耐久归零后的禁用状态与材料/货币修复流程。 |
| 跨模块集成 | 被 Attribute、Forge、Strengthen、Gem、Skills、Cooking 引用时的物品来源写法。 |
| MythicMobs 集成 | 在 MythicMobs 的 Drops 中掉落 EmakiItem 物品。 |
| 占位符 | PlaceholderAPI 输出。 |
| CoreLib 动作 | 主手物品更新、重绘、修复、耐久与原版 Data Component 动作。 |
| API | 通过 EmakiItemApi 创建、识别与查询物品。 |
| 事件 API | 物品流程的 Bukkit 事件与拦截点。 |
| JavaScript 脚本 | item 脚本模块、运行时物品定义与物品工厂。 |
核心能力
| 能力 | 说明 |
|---|---|
| 稳定物品 ID | 用配置 ID 标识物品,不依赖显示名。 |
| 物品组件 | 配置材质、名称、Lore、模型、附魔、flags、耐久等。 |
| 属性写入 | 可向 Attribute 提供属性 payload。 |
| 技能绑定 | 可让物品提供技能或技能解锁信息。 |
| 套装系统 | 根据装备件数触发属性、技能或 Lore。 |
| 触发器 | 在交互、攻击、投射物、方块、丢弃等事件中执行动作。 |
| 自动更新 | 玩家登录、切换手持、点击背包、拾取等场景刷新物品。 |
| 修复系统 | 耐久归零后进入禁用状态,可用材料或货币修复。 |
| ID alias 与迁移 | 支持物品 ID 改名映射,并可批量迁移配置与玩家背包。 |
默认配置目录
text
plugins/EmakiItem/
├── config.yml
├── id_aliases.yml
├── items/
├── sets/
├── gui/
└── lang/items/ 定义物品,sets/ 定义套装,gui/ 存放修复界面模板,id_aliases.yml 保存物品 ID 改名映射。
主配置
config.yml 只包含全局设置,物品行为写在各自的定义文件里。
| 配置键 | 类型 | 默认值 | 说明 |
|---|---|---|---|
version | string | 当前模块版本 | 默认配置结构标识,不建议手动修改。 |
language | string | zh_CN | 语言文件 ID,对应 lang/<language>.yml。 |
release_default_data | boolean | true | 是否释放 items/、sets/ 等默认示例数据。config.yml 与语言文件不受此项控制。 |
set_bonus.enabled | boolean | true | 是否启用套装加成系统。 |
set_bonus.refresh_triggers.join | boolean | true | 玩家进服时刷新套装状态。 |
set_bonus.refresh_triggers.held_change | boolean | true | 切换手持物品时刷新。 |
set_bonus.refresh_triggers.inventory_click | boolean | true | 点击背包时刷新。 |
set_bonus.refresh_triggers.inventory_drag | boolean | true | 拖拽物品时刷新。 |
set_bonus.refresh_triggers.pickup | boolean | true | 拾取物品时刷新。 |
set_bonus.refresh_triggers.interact | boolean | true | 交互时刷新。 |
set_bonus.refresh_triggers.command | boolean | true | 执行相关命令时允许刷新。 |
mythicmobs.enabled | boolean | true | MythicMobs 集成总开关。 |
mythicmobs.drops.enabled | boolean | true | 是否注册 MythicMobs 自定义 Drop。 |
mythicmobs.drops.names | list | emakiitem、ei_item | 可识别的 Drop 名称;为空时回退默认值。 |
set_bonus.refresh_triggers 控制套装状态刷新;物品自动更新由物品定义的 update.triggers 单独控制,二者互不覆盖。
典型物品生命周期
- 在
items/中定义物品 ID、材质、名称、Lore 和组件。 - 可选写入 Attribute 属性、Skills 技能或 set 信息。
- 管理员通过命令发放物品。
- 玩家使用装备。
- Item 在触发时机自动更新物品状态。
- Forge / Strengthen / Gem 可继续在该物品上写入自己的 layer。
- CoreLib 统一重建最终展示。
与其他模块的关系
| 模块 | 协作方式 |
|---|---|
| EmakiAttribute | Item 写入基础属性或套装属性。 |
| EmakiSkills | Item 写入装备技能 ID 与装备强制触发器;PDC 键由独立协议模块统一持有,不依赖 EmakiSkills 是否启用。 |
| EmakiForge | Forge 可以改造 EmakiItem 生成的装备。 |
| EmakiStrengthen | Strengthen 可以强化 EmakiItem 装备。 |
| EmakiGem | Gem 可以给 EmakiItem 装备开孔和镶嵌。 |
| MythicMobs | MythicMobs 怪物可以通过 Drops 掉落 EmakiItem 物品。 |