本帖最后由 3174941841 于 2021-2-27 21:58 编辑 
自己弄的插件用到了自定义监听器
去插件百科搜了一下Bukkit能不能自定义监听事件
是可以的
但是怎么去传入数据到事件中啊???
例子:
这是我的一段代码:
复制代码
然后去用 EventHandler 注解监听这个事件
复制代码
怎么去每次触发这个事件的时候传入 str 这个字符串?
自己弄的插件用到了自定义监听器
去插件百科搜了一下Bukkit能不能自定义监听事件
是可以的
但是怎么去传入数据到事件中啊???
例子:
这是我的一段代码:
- public class MemberMuteEvent extends Event {
 
- // 这个str是要传入的
 
-     private String str;
 
-     private static final HandlerList handlers = new HandlerList();
 
 
-     public MemberMuteEvent(String str) {
 
-         this.str = str;
 
-     }
 
 
-     public HandlerList getHandlers() {
 
-         return handlers;
 
-     }
 
 
-     public static HandlerList getHandlerList() {
 
-         return handlers;
 
-     }
 
- }
然后去用 EventHandler 注解监听这个事件
-     @EventHandler
 
-     private void onMute(MemberMuteEvent event) {
 
-         sender.sendMessage(event.getDurationSeconds() + "");
 
-     }
 
怎么去每次触发这个事件的时候传入 str 这个字符串?
自定义事件是需要调用call触发的
你直接写public final String str;不就能在你的监听器里访问到str了嘛
我悟了!!!
Bukkit.getPluginManager().callEvent();
研究一下这个方法 在触发时call自己的event就行了
研究一下这个方法 在触发时call自己的event就行了
