首页 > 解决方案 > 为什么事件没有被激活,即使我有一个监听器和@EvenHandler?

问题描述

所以我正在开发一个插件,但我的任何事件都没有被激活。

例如,我有这个事件:

@EventHandler
public void onPlayerDeath(PlayerDeathEvent event){
  Bukkit.getBanList(BanList.Type.NAME).addBan(event.getEntity().getName(), "Du bist hiermit aus Combat ausgeschieden!", null, "");
}

它在一个类中,该类被实现为侦听器。这就是在我的类中扩展 JavaPlugin(EditTeams 是监听器):

EditTeams events = new EditTeams();
public void onEnable(){
    Bukkit.getPluginManager().registerEvents(events, this);
}

我环顾四周,但找不到问题所在。

标签: javaeventsbukkit

解决方案


只需将@Override注释添加到您的onEnable()方法中。如果这不起作用,只需测试调用哪些方法

EditTeams events = new EditTeams();
public void onEnable(){
    System.out.println("OnEnable() triggered");
    Bukkit.getPluginManager().registerEvents(events, this);
}

@EventHandler
public void onPlayerDeath(PlayerDeathEvent event){
  System.out.println("PlayerDeathEvent Triggered.");
  Bukkit.getBanList(BanList.Type.NAME).addBan(event.getEntity().getName(), "Du bist hiermit aus Combat ausgeschieden!", null, "");
}

您的 Sysout 中是否有任何异常/堆栈跟踪?


推荐阅读