Skip to content

EmakiForge

EmakiForge 负责锻造流程:玩家放入目标装备、图纸和材料后,模块检查配方、容量和条件,再改造目标装备或生成新装备。品质、材料贡献和结果展示都在这里配置。

基本信息

项目
模块版本4.8.0
主命令/emakiforge
别名/eforge/ef
硬依赖EmakiCoreLib
软依赖EmakiAttribute、EmakiItem、PlaceholderAPI
主要权限emakiforge.useemakiforge.bookemakiforge.reloademakiforge.debugemakiforge.admin

核心概念

概念说明
图纸控制玩家是否能执行某个锻造配方。
材料玩家投入的资源,可以影响成功、品质或最终属性。
配方定义输入要求、容量、条件、结果和动作。
容量限制可投入材料的 capacity_cost 总和。
品质锻造结果的确定性加权等级,可配保底。
配方书玩家查看可用配方的 GUI。

默认配置目录

text
plugins/EmakiForge/
├── config.yml
├── recipes/
│   └── example_recipe.yml
├── gui/
│   ├── forge_gui.yml
│   └── recipe_book.yml
├── lang/
│   ├── zh_CN.yml
│   └── en_US.yml
└── data/

先改 recipes/。它决定锻造玩法的输入、容量、条件、结果和动作。data/PlayerDataStore 维护,按玩家 UUID 存放 <uuid>.yml 锻造计数与保底计数。

config.yml 主配置

quality 各字段见品质系统history 各字段见锻造历史记录。其余顶层字段如下:

字段类型默认说明
versionstring4.8.0配置结构版本标记;默认资源版本由资源同步流程维护。源码内部迁移常量另为 4.5.11,不要混用。
languagestringzh_CN使用 lang/<language>.yml 语言文件。
release_default_databooleantrue缺失时是否释放内置默认锻造数据(recipes/example_recipe.yml、GUI 与语言文件等)。
op_bypassbooleanfalsetrue 时 OP 可在命令权限检查中走旁路;为 false 时仍须持有对应权限节点。只有顶层 op_bypass 缺失时才回退读取旧键 permission.op_bypass,并在启动时告警。
condition.invalid_as_failurebooleantrue条件表达式非法时按失败处理;为 false 时非法条件不阻断锻造。
number_format.defaultstring0.##通用数值的 DecimalFormat 模板。
number_format.integerstring0整数数值的格式模板。
number_format.percentagestring0.##%百分比数值的格式模板。

功能页面

页面内容
命令与权限锻造、配方书、重载、列表和调试命令。
配方系统输入、图纸、结果、动作和配方匹配。
材料系统材料贡献、容量、品质修正和效果写入。
品质系统品质池、保底、物品元数据和确定性算法。
锻造历史记录玩家锻造数据、自动保存和异常排查。
GUI锻造界面与配方书模板。
审计结果物品的锻造审计数据与材料签名。
占位符PlaceholderAPI 输出。
CoreLib 动作Forge 注册的刷新动作。
API 接入EmakiForgeApi 静态门面。
事件 APIForgeStartEventForgeCompletedEvent

典型锻造流程

  1. 玩家用 /ef forge 打开锻造 GUI。
  2. 在图纸槽放入图纸,Forge 按图纸物品源自动匹配配方。
  3. 在必需材料槽和可选材料槽放入材料。
  4. 模块检查配方、条件、容量和材料数量。
  5. 玩家点击确认槽,触发 actions.pre
  6. 按玩家 + 配方 + 材料指纹计算确定性品质与保底。
  7. 生成 result.success.outputs 中的主产物,并附加 forge layer 快照。
  8. 依次执行 result.success.actionsactions.success → 品质动作;失败时执行 actions.failure
  9. CoreLib 物品装配服务重建物品展示。
  10. 安装 EmakiAttribute 时,材料的 ea_attribute 效果写入结构化 PDC 属性层。

与 Attribute 的关系

Forge 可以不安装 Attribute 运行基础锻造功能。材料的 ea_attribute 效果需要 EmakiAttribute 才会生效:此时属性通过 EmakiAttribute 的权威 API 写入结构化 PDC layer,参与真实战斗计算,而不是只显示在 Lore 中。

EmakiAttribute 未安装时,Forge 走 no-op 路径:锻造照常完成,只是不写入属性 payload,不会报错或中断流程。