YuRelic Bukkit 事件
事件包名:
text
org.yutay.yurelic.api.eventYuRelic 的事件适合做活动倍率、区域规则、职业联动、外部审计和自定义菜单。监听后如果要修改 Bukkit 对象、背包或 GUI,请确认当前线程并按需切回主线程。
常用可取消事件
| 事件 | 触发场景 | 常用参数 | 举例 |
|---|---|---|---|
RelicOpenEvent | 开光写回前 | player、item、tier、relicId、resultPreview | 禁止黑名单世界开光,或给赞助玩家指定更高开光档位 |
RelicGainExpEvent | 灵器经验写入前 | player、relicId、item、source、amount、multiplier | 周末活动把 amount 提高到 2 倍,或在副本外限制经验来源 |
RelicCombatModifyEvent | YuRelic 将自身战斗修正写回伤害事件前 | player、target、item、baseDamage、modifiers、scene | 在竞技场把灵器加成封顶,避免 PVP 伤害溢出 |
RelicRepairEvent | 修复投入与完成前 | player、relicId、item、costType、costAmount、bodyBefore、bodyAfter | 给 VIP 修复消耗打折,或禁止战斗中修复 |
RelicRitualCostEvent | 仪式扣费前 | player、ritual、costType、costAmount、currency | 节日活动减免开光、注魂或觉醒成本 |
RelicResourceChangeEvent | 灵材发放或消耗 | player、resourceKey、amount、reason、balanceAfter | 记录稀有灵材来源,或阻止负数余额扣除 |
RelicSoulChangeEvent | 器魂注养或塑魂 | player、relicId、soulKey、levelBefore、levelAfter、reason | 禁止特定器魂在新手服塑魂 |
RelicTalentChangeEvent | 铭魂、选择、洗练 | player、relicId、talentKey、slot、action、oldValue、newValue | 阻止互斥天赋组合,或给活动天赋追加广播 |
RelicPotentialChangeEvent | 潜质淬炼 | player、relicId、oldPotential、newPotential、cost | 高峰期降低淬炼失败惩罚,或记录极品潜质出现 |
RelicPactChangeEvent | 灵契变更 | player、relicId、oldOwner、newOwner、action | 禁止已绑定活动物品重新认主 |
RelicAccessorySlotEvent | 饰品槽佩戴、卸下、解锁 | player、slot、accessory、action、cost | 限制同类饰品重复佩戴,或给会员解锁额外槽位 |
RelicHeritageAbsorbEvent | 承薪传承 | player、sourceRelicId、targetRelicId、ratio、cost | 活动期间提高传承比例,或禁止传承锁定灵器 |
RelicSealChangeEvent | 封存或启封 | player、relicId、sealed、reason | 拍卖前强制封存,交易完成后再启封 |
RelicTitleChangeEvent | 铸名或清名 | player、relicId、oldTitle、newTitle | 过滤违规称号,或给稀有称号加全服公告 |
RelicSalvageEvent | 归炉祭炼 | player、relicId、returns、confirmed | 阻止收藏标记的灵器归炉,或修改返还灵材 |
RelicGuardChangeEvent | 灵护状态变更 | player、relicId、guarded、reason | 对高评分灵器强制开启灵护 |
RelicMarketQuoteEvent | 商契估价 | player、relicId、baseQuote、finalQuote、modifiers | 给交易市场设置最低估价或手续费 |
RelicMarketTransferEvent | 流转印记 | player、relicId、from、to、price、channel | 记录玩家间高价转移,交给审计插件复核 |
RelicBlessingChangeEvent | 灵祝祝纹变更 | player、relicId、blessingKey、level、action | 限制临时祝纹过期时间,或追加节日祝纹 |
RelicInscriptionEvent | 铭纹刻入或磨去 | player、relicId、glyphKey、slot、action、cost | 只允许在主城铭纹台刻入高阶铭纹 |
RelicMilestoneClaimEvent | 器史里程碑领取 | player、relicId、milestoneKey、rewards | 给首次觉醒里程碑额外发放称号 |
RelicVowChangeEvent | 器愿承接、换愿、领取 | player、relicId、vowKey、progress、action | 替换当前世界无法完成的器愿目标 |
RelicStanceChangeEvent | 器势切换 | player、relicId、oldStance、newStance | 在副本内锁定防御器势,避免中途切换逃课 |
RelicTrialProgressEvent | 试炼进度变化 | player、relicId、trialKey、delta、progress | 把试炼进度同步到任务插件 |
RelicLootResourceEvent | 灵材掉落结算,包含 MythicMobs 与区域上下文 | player、entity、resourceKey、amount、world、region、source | 副本区域提高灵材掉落,主世界降低稀有掉落 |
RelicSoulResonanceEvent | 器魂共鸣触发 | player、relicId、soulKey、effect、power | 给特定职业降低共鸣冷却或调整强度 |
RelicDurabilityChangeEvent | 器体损耗、修复或损毁状态变化 | player、relicId、item、delta、bodyBefore、bodyAfter、cause | 领地保护区内取消器体损耗 |
RelicAppraiseEvent | 鉴灵札生成 | player、relicId、result、cost | 对高评分鉴定结果追加聊天公告 |
RelicRouteMasteryChangeEvent | 道韵精通变化 | player、relicId、route、oldMastery、newMastery | 道韵达到阈值时发放外部称号 |
通知事件
| 事件 | 触发场景 | 常用参数 | 举例 |
|---|---|---|---|
RelicLevelUpEvent | 灵器升级后 | player、relicId、oldLevel、newLevel、rewards | 灵器升到 10 级时发送全服提示 |
RelicBreakthroughReadyEvent | 生成突破候选后 | player、relicId、candidates、route | 把突破候选展示到自定义菜单 |
RelicStatBuildEvent | 属性管线计算完成 | player、relicId、attributes、context | 把最终属性同步给职业或面板插件 |
RelicRankQueryEvent | 天榜查询 | requester、rankType、page、results | 将天榜查询结果镜像到 Web 面板 |
RelicRankDetailEvent | 天榜详情查询 | requester、rankType、entry、relicId | 打开排行榜详情时补充玩家公会信息 |
RelicArchiveRecordEvent | 器藏记录生成 | player、relicId、record、reason | 新灵器入藏时发送 EasyBot 通知 |
监听示例
java
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.yutay.yurelic.api.event.RelicGainExpEvent;
public final class RelicActivityListener implements Listener {
@EventHandler(ignoreCancelled = true)
public void onRelicGainExp(RelicGainExpEvent event) {
if ("weekend_activity".equals(event.getSource())) {
event.setAmount(event.getAmount() * 2);
}
}
}