BlessAzek
本帖最后由 3174941841 于 2021-2-27 21:58 编辑

自己弄的插件用到了自定义监听器
去插件百科搜了一下Bukkit能不能自定义监听事件
是可以的
但是怎么去传入数据到事件中啊???
例子:
这是我的一段代码:
  1. public class MemberMuteEvent extends Event {
  2. // 这个str是要传入的
  3.     private String str;
  4.     private static final HandlerList handlers = new HandlerList();

  5.     public MemberMuteEvent(String str) {
  6.         this.str = str;
  7.     }

  8.     public HandlerList getHandlers() {
  9.         return handlers;
  10.     }

  11.     public static HandlerList getHandlerList() {
  12.         return handlers;
  13.     }
  14. }
复制代码


然后去用 EventHandler 注解监听这个事件
  1.     @EventHandler
  2.     private void onMute(MemberMuteEvent event) {
  3.         sender.sendMessage(event.getDurationSeconds() + "");
  4.     }
复制代码



怎么去每次触发这个事件的时候传入 str 这个字符串?

大阔
自定义事件是需要调用call触发的

洞穴夜莺
你直接写public final String str;不就能在你的监听器里访问到str了嘛

BlessAzek
大阔 发表于 2021-2-27 21:50
自定义事件是需要调用call触发的

所以无法实现自动监听嘛。。。。


BlessAzek
洞穴夜莺 发表于 2021-2-27 21:50
你直接写public final String str;不就能在你的监听器里访问到str了嘛

emm不是怎么明白
怎么说

BlessAzek
我悟了!!!

大阔
3174941841 发表于 2021-2-27 21:53
所以无法实现自动监听嘛。。。。

怎么可能那么智能啊

离渊丶
Bukkit.getPluginManager().callEvent();

研究一下这个方法 在触发时call自己的event就行了

第一页 上一页 下一页 最后一页