Days 水桶插件开发教程5.事件/监听器
这次简洁版 (懒+没人看不想更)
监听器 顾名思义 就是监控服务器的信息
具体监控什么信息呢?
就要用到事件了 事件分许多种
比如方块放置 液体流动 玩家加入 玩家移动等
1先创建一个监听器  可以新建一个类 也可以在主类中创建
他要求实现listen接口并且导入import org.bukkit.event.Listener;
像这样
Package  xx.xx.xx;
import org.bukkit.event.Listener;
public class PluginListener implements Listener {
}
2创建一个方法 参数为代表某个事件的类 并为他标记EventHandler
比如
@EventHandler
Public void name (BlockBreakEvent evt) {
}
创建一个监听器需要记住两点  让该类实现listener接口&添加EventHandler标记
然后创建好了监听器 还需要注册他 一般在主类启用方法中注册
getServer().getPluginManager().registerEvents(new ListenerClassName(), this);
其中ListenerClassName为监听器的类名 当选择创建在主类中时两个参数都为this
你可以在任何地方注册事件 让他启用
怎么注销?
HandlerList.unregisterAll(); 直接注销此插件中所有事件
一般在卸载方法中执行 或者 使用
BlockBreakEvent.getHandlerList().unregister(Listener/Plugin);
注销该监听器/主类中的BlockBreakEvent事件。
该处的Listener指监听器 Plugin 指主类
注销后 将不会继续监听。
可以代码补全来快速找到自己需要的关于事件的方法 假设我们事件参数为evt
输入evt.         (末尾有个点)
然后就会弹出一个框框 你可以在里面找需要的方法
比如玩家加入事件 PlayerJoinEvent evt
evt.getPlayer 就得到加入的那个玩家了
自定义事件不讲 暂时用不到。
作业:
从javadoc中寻找取消事件的方法 并写一个玩家进服全服公告的插件
没事就多翻翻 javadoc总会有收获的 =0=  事件什么的也在API
全服公告也有方法 还是在javadoc
别的教程你们也可以去翻一番 多多少少有些不一样 从多方面看问题才是最明智的。
有金币的拿金币来没金币的拿人气来 最好两样都拿来 不然。。我会越变越懒得!