简体中文
事件 API
Forge 事件位于 emaki.jiuwu.craft.forge.api.event, 均为玩家 owner thread 上的同步 Bukkit 事件. 当前 GUI 锻造与公开 ForgeOperations.forgeAsync 共用事件约定
| 事件 | 触发时机 | 线程 | Cancellable | 可修改字段 | 取消/结果效果 | runtime 路径 |
|---|---|---|---|---|---|---|
ForgeStartEvent | 验证和 prepared forge 完成后, 异步执行与材料提交前 | 玩家 owner thread | 是 | successRate, 有限值 clamp 到 0–100, 非有限值变 0 | 取消时不排程执行, 不消耗材料; API 返回 CANCELLED | GUI 确认与 forgeAsync |
ForgeCompletedEvent | 正常 forge result 已解析后, 成功或可解析失败均可触发 | 玩家 owner thread | 否 | 无 | post 通知, 不可回滚 | GUI 完成与 forgeAsync 完成 |
ForgeStartEvent 的 player, recipeId, firstCraft 为只读. ForgeCompletedEvent 的 success, resultItem, quality, multiplier 为只读; 失败时 resultItem/quality 可为空
当 owner/generation 验证在 start 前失败时不会发开始事件. 完成阶段若玩家 owner 调度已退役, 结果仍会映射/结算, 但 completed event 可被跳过. 取消 start 不会产生 completed event. Catalog 校验, 打开 GUI/配方书和刷新物品本身不属于一次 forge attempt