事件监听的这些handlers 作用是啥, 英文翻译过来 不是很理解
监听需要注册在监听列表中, 然后按顺序去执行监听事件吗 bake() 这个 '烤' 不是很理解
求经验大佬解释
监听需要注册在监听列表中, 然后按顺序去执行监听事件吗 bake() 这个 '烤' 不是很理解
求经验大佬解释
bake de 意思应该是烘干吧
你可以按F4去看源码,实际上就是里面有几个list(按优先级)和一个数组,bake就是按照优先级把lsit里面所有的listener存到一个数组里面,这样调用起来更方便
此外,HandlerList是存储listener的,并且不是让你在这里添加的
你应该使用Bukkit.getPluginManager().registerEvents 或者 registerEvent
Listener接口由监听类实现,并且在需要的方法上打“org.bukkit.event.EventHandler”注解,里面可以设置优先级
public class Test implements Listener { @EventHandler
public void onXXX(XXXEvent e) {
}
}
此外,HandlerList是存储listener的,并且不是让你在这里添加的
你应该使用Bukkit.getPluginManager().registerEvents 或者 registerEvent
Listener接口由监听类实现,并且在需要的方法上打“org.bukkit.event.EventHandler”注解,里面可以设置优先级
public class Test implements Listener { @EventHandler
public void onXXX(XXXEvent e) {
}
}
https://bukkit.windit.net/javado ... ndlerList.html#bake()
文档说是借鉴了 lahwran 的 fastevents 是一个最简单的事件处理模型
https://github.com/lahwran/fastevents
你可以看一下源码就知道了,bake 大体就是 将 handler注册的listener 全部放入一个二维数组中,数组的遍历效率高,属于一个优化的操作
这个Handler相当于一个容器,存放事件监听器,你可以利用这个进行监听器的管理
每次callevent 相当于遍历所有handler的这个数组,找到这个事件对应的监听器并处理的过程,
不过在bukkit中进行了改造,具体我就不细说了,自己看源码去
文档说是借鉴了 lahwran 的 fastevents 是一个最简单的事件处理模型
https://github.com/lahwran/fastevents
你可以看一下源码就知道了,bake 大体就是 将 handler注册的listener 全部放入一个二维数组中,数组的遍历效率高,属于一个优化的操作
这个Handler相当于一个容器,存放事件监听器,你可以利用这个进行监听器的管理
每次callevent 相当于遍历所有handler的这个数组,找到这个事件对应的监听器并处理的过程,
不过在bukkit中进行了改造,具体我就不细说了,自己看源码去