MCBBS Wiki欢迎您共同参与编辑!在参与编辑之前请先阅读Wiki方针

如果在编辑的过程中遇到了什么问题,可以去讨论板提问。

为了您能够无阻碍地参与编辑 未验证/绑定过邮箱的用户,请尽快绑定/验证

MCBBS Wiki GitHub群组已上线!

您可以在回声洞中发表吐槽!

服务器状态监控。点击进入

本站由MCBBS用户自行搭建,与MCBBS及东银河系漫游指南(北京)科技有限公司没有从属关系。点此了解 MCBBS Wiki 不是什么>>

用户:MashKJo/1.12.2模组开发教程/4.Forge事件系统:修订间差异

跳到导航 跳到搜索
(// Edit via Wikiplus)
→‎Minecraft事件的注册、取消和优先级:​ // Edit via Wikiplus
第70行: 第70行:


那么,如果真的找不到能用的事件,怎么办?尽管Forge的事件非常多,有的甚至做到了仅仅针对某个单一的游戏元素(如RenderItemInFrameEvent,这个事件影响物品在展示框中的渲染情况),但任何API都做不到完全满足使用者的需求。Forge官方早在多年前就停止了对1.12 Forge的维护,所以指望着去Pull Request是不行了。这个时候,你就只能考虑使用一些黑魔法了。
那么,如果真的找不到能用的事件,怎么办?尽管Forge的事件非常多,有的甚至做到了仅仅针对某个单一的游戏元素(如RenderItemInFrameEvent,这个事件影响物品在展示框中的渲染情况),但任何API都做不到完全满足使用者的需求。Forge官方早在多年前就停止了对1.12 Forge的维护,所以指望着去Pull Request是不行了。这个时候,你就只能考虑使用一些黑魔法了。
=== 事件的优先级 ===
我们可以为事件监听方法指定被调用的优先级,因为@SubscribeEvent注解中有一个参数priority,类型为EventPriority,是个枚举类,有五个实例:HIGHEST、HIGH、NORMAL、LOW、LOWEST。各自的含义应该不需要笔者多说。priority这一参数默认为NORMAL。
=== @Cancelable ===
这个注解用于修饰一个事件类:该事件可被取消。被取消的事件对应的其他尚未被调用的事件监听方法,则不会被调用,所以这个最好搭配着EventPriority来操作。
另外,@SubscribeEvent还有一个参数:boolean receiveCanceled,默认为false,设定为true则又可以让被取消的事件继续发挥作用。
=== @HasResult ===
这个注解同样用于修饰一个事件类,表明:该事件有“结果”——没错,事件监听方法一定为void,但是事件本身可以有结果——Event.Result这个枚举类中的三个实例:ALLOW、DEFAULT和DENY。它们的含义随着具体事件的类型而变化。这个说实话,不太常用,可以直接忽略。
行政员、​优秀编辑者、​界面管理员、​监督员、​管理员、​小部件编辑者
3,417

个编辑

我们提供服务需要使用Cookie。您使用我们的服务,即表示您同意我们使用Cookie。

导航菜单