EmakiForge
EmakiForge 负责锻造流程:玩家放入目标装备、图纸和材料后,模块检查配方、容量和条件,再改造目标装备或生成新装备。品质、材料贡献和结果展示都在这里配置。
基本信息
| 项目 | 值 |
|---|---|
| 模块版本 | 4.8.0 |
| 主命令 | /emakiforge |
| 别名 | /eforge、/ef |
| 硬依赖 | EmakiCoreLib |
| 软依赖 | EmakiAttribute、EmakiItem、PlaceholderAPI |
| 主要权限 | emakiforge.use、emakiforge.book、emakiforge.reload、emakiforge.debug、emakiforge.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 各字段见锻造历史记录。其余顶层字段如下:
| 字段 | 类型 | 默认 | 说明 |
|---|---|---|---|
version | string | 4.8.0 | 配置结构版本标记;默认资源版本由资源同步流程维护。源码内部迁移常量另为 4.5.11,不要混用。 |
language | string | zh_CN | 使用 lang/<language>.yml 语言文件。 |
release_default_data | boolean | true | 缺失时是否释放内置默认锻造数据(recipes/example_recipe.yml、GUI 与语言文件等)。 |
op_bypass | boolean | false | 为 true 时 OP 可在命令权限检查中走旁路;为 false 时仍须持有对应权限节点。只有顶层 op_bypass 缺失时才回退读取旧键 permission.op_bypass,并在启动时告警。 |
condition.invalid_as_failure | boolean | true | 条件表达式非法时按失败处理;为 false 时非法条件不阻断锻造。 |
number_format.default | string | 0.## | 通用数值的 DecimalFormat 模板。 |
number_format.integer | string | 0 | 整数数值的格式模板。 |
number_format.percentage | string | 0.##% | 百分比数值的格式模板。 |
功能页面
| 页面 | 内容 |
|---|---|
| 命令与权限 | 锻造、配方书、重载、列表和调试命令。 |
| 配方系统 | 输入、图纸、结果、动作和配方匹配。 |
| 材料系统 | 材料贡献、容量、品质修正和效果写入。 |
| 品质系统 | 品质池、保底、物品元数据和确定性算法。 |
| 锻造历史记录 | 玩家锻造数据、自动保存和异常排查。 |
| GUI | 锻造界面与配方书模板。 |
| 审计 | 结果物品的锻造审计数据与材料签名。 |
| 占位符 | PlaceholderAPI 输出。 |
| CoreLib 动作 | Forge 注册的刷新动作。 |
| API 接入 | EmakiForgeApi 静态门面。 |
| 事件 API | ForgeStartEvent、ForgeCompletedEvent。 |
典型锻造流程
- 玩家用
/ef forge打开锻造 GUI。 - 在图纸槽放入图纸,Forge 按图纸物品源自动匹配配方。
- 在必需材料槽和可选材料槽放入材料。
- 模块检查配方、条件、容量和材料数量。
- 玩家点击确认槽,触发
actions.pre。 - 按玩家 + 配方 + 材料指纹计算确定性品质与保底。
- 生成
result.success.outputs中的主产物,并附加 forge layer 快照。 - 依次执行
result.success.actions→actions.success→ 品质动作;失败时执行actions.failure。 - CoreLib 物品装配服务重建物品展示。
- 安装 EmakiAttribute 时,材料的
ea_attribute效果写入结构化 PDC 属性层。
与 Attribute 的关系
Forge 可以不安装 Attribute 运行基础锻造功能。材料的 ea_attribute 效果需要 EmakiAttribute 才会生效:此时属性通过 EmakiAttribute 的权威 API 写入结构化 PDC layer,参与真实战斗计算,而不是只显示在 Lore 中。
EmakiAttribute 未安装时,Forge 走 no-op 路径:锻造照常完成,只是不写入属性 payload,不会报错或中断流程。