cn.nukkit.event.Listener Maven / Gradle / Ivy
package cn.nukkit.event;
/**
* 所有的监听事件的类必须实现的接口。
* An interface implemented by all classes that handles events.
*
* 插件要监听事件,需要一个类实现这个接口,在这个类里编写方法来监听。这个类称作监听类。
* 监听类中监听事件的方法称作事件的处理器。一个监听类可以包含多个不同的事件处理器。
* 实现监听类后,插件需要在插件管理器中注册这个监听类。
* If a plugin need to listen events, there must be a class implement this interface. This class is called a listener class.
* Methods with specified parameters should be written in order to listen events. This method is called a handler.
* One listener class could contain many different handlers.
* After implemented the listener class, plugin should register it in plugin manager.
*
* 事件监听器被注册后,Nukkit会在需要监听的事件发生时,使用反射来调用监听类中对应的处理器。
* After registered, Nukkit will call the handler in the listener classes by reflection when a event happens.
*
* 这是一个编写监听类和处理器的例子。注意的是,标签{@code @EventHandler}和参数的类型是必需的:
* Here is an example for writing a listener class and a handler method.
* Note that for the handler, tag {@code @EventHandler} and the parameter is required:
*
* public class ExampleListener implements Listener {
* {@code @EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = false)}
* public void onBlockBreak(BlockBreakEvent event) {
* int blockID = event.getBlock().getPackId();
* if (blockID == Block.STONE) {
* event.getPlayer().sendMessage("Oops, my ExampleListener won't let you break a stone!")
* event.setCancelled(true);
* }
* }
* }
*
*
* 关于注册监听类,请看:{@link cn.nukkit.plugin.PluginManager#registerEvents}.
* For registering listener class, See: {@link cn.nukkit.plugin.PluginManager#registerEvents}.
*
* 关于处理器的优先级和处理器是否忽略被取消的事件,请看:{@link EventHandler}.
* For the priority of handler and whether the handler ignore cancelled events or not, See: {@link EventHandler}.
*
* @author Unknown(code) @ Nukkit Project
* @author 粉鞋大妈(javadoc) @ Nukkit Project
* @see cn.nukkit.event.Event
* @since Nukkit 1.0 | Nukkit API 1.0.0
*/
public interface Listener {
}