🖲️自定义事件
说明如何创建一个或多个事件
觉得内置事件太少,没有符合您需求的事件? 在本教程,将叫你创建属于您自己的事件。
package top.shadowpixel.shadowcore.api.function;在该包中,ShadowCore提供了强大的扩展事件的功能,接下来就让我们来学习一下。
类EventExpansion
这个抽象类是可执行事件的本体,继承这个类需要实现以下的抽象方法:
获取事件的版本
public abstract String getVersion();获取事件的作者
public abstract String getAuthor();获取参数列表
public abstract NamedParameterList[] getParametersList();表示执行该事件需要的参数,可以无参数,一个参数或多个参数。
获取标识符
public abstract String[] getIdentifies();标识符为事件行里事件的名称,可以有多个。
并且,需要添加一个构造函数
执行事件
有三个方法将会调用方法执行事件,调用哪一个方法将取决于调用时传入的参数,参数必须匹配事件的参数列表。
无参数
单参数
多参数
参数说明:
player - 发出事件的玩家,可为null
victim - 事件被执行的玩家,已包含发出事件的玩家
例如,有一个事件Title
可以看出,参数列表的组合有[], [title]和[title, subtitle, fadein, stay, fadeout]
那么,在调用事件时,就会有以下集中情况
当执行"[title] "时,会调用该方法:
当执行"[title] title=主标题"时,会调用该方法,并传入参数parameter=“主标题”:
当执行"[title] title=主标题 subtitle=副标题 fadein=10 stay=10 fadeout=10"时,会调用该方法,
传入一个map参数:
实例代码
类EventExpansionAddon
事件扩展的主类。创建一个主类,并继承该类,实现下列抽象方法:
然后, 创建一个集合, 将所有事件的类丢进这个集合, 实现方法getEvents() 然后返回。
之后,将项目打包,将得到的jar文件丢到plugins\ShadowCore\Expansions\Functions(可更改)中,使用重载指令,事件就被加载了。
使用监听器
主类中这么写。
标识符重复
可能会出现这么一个问题:事件扩展A和扩展B都有一个标识符为[bubble]的事件,为了分开调用,可以写成[A:Bubble]和[B:Bubble]来分别调用A和B的Bubble事件!
Last updated