Skip to content

事件 API

Forge 事件位于 emaki.jiuwu.craft.forge.api.event,均为玩家 owner thread 上的同步 Bukkit 事件。当前 GUI 锻造与公开 ForgeOperations.forgeAsync 共用事件契约。

事件触发时机线程Cancellable可修改字段取消/结果效果runtime 路径
ForgeStartEvent验证和 prepared forge 完成后、异步执行与材料提交前玩家 owner threadsuccessRate,有限值 clamp 到 0–100,非有限值变 0取消时不排程执行、不消耗材料;API 返回 CANCELLEDGUI 确认与 forgeAsync
ForgeCompletedEvent正常 forge result 已解析后,成功或可解析失败均可触发玩家 owner threadpost 通知,不可回滚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。