本帖最后由 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就行了