Skip to content

事件 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 返回 CANCELLEDGUI 确认与 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