si_12
                                                        各位大佬
我想问下事件监听的原理是什么?

比如我想自定义一个玩家跳起来的事件

我要怎么一直检测玩家跳起来

然后在检测到之后 运行代码呢?

求各位大佬解答=-=





xsfcaDcsa
运行task检查

si_12

大佬 怎么检查?

2609848420
根据你的提问 我认为你已经掌握了监听与触发自定义事件 故略过
Bukkit.getScheduler().runTaskLater(Plugin, Runnable, int);
是Bukkit一个自带的循环运行的方法
new Runnable(){
    @Override
    public void run(){
        Location location = player.getLocation();
        //...省略
    }
}
具体思路是每隔一定时间循环获得玩家的Location中 (Y - 1) 是不是空气方块
参数中的int是隔的ticks

没有实际验证 如果错误请指出

壹陽峙
2609848420 发表于 2019-2-2 20:29
根据你的提问 我认为你已经掌握了监听与触发自定义事件 故略过
Bukkit.getScheduler().runTaskLater(Plugin ...

我觉得应该监听按键,毕竟这样的话,走下坡,走下悬崖什么的,也会被判定成跳跃

2609848420
壹陽峙 发表于 2019-2-4 00:37
我觉得应该监听按键,毕竟这样的话,走下坡,走下悬崖什么的,也会被判定成跳跃 ...

你是Forge么?Bukkit怎么监听按键..

壹陽峙
2609848420 发表于 2019-2-4 11:38
你是Forge么?Bukkit怎么监听按键..

emm,我不知道java自带的KeyListener能不能用上

2609848420
壹陽峙 发表于 2019-2-4 14:07
emm,我不知道java自带的KeyListener能不能用上

那是监听本地服务器的键盘输入
麻烦先了解一下客户端与服务端的运作原理再发言...

壹陽峙
2609848420 发表于 2019-2-4 17:09
那是监听本地服务器的键盘输入
麻烦先了解一下客户端与服务端的运作原理再发言... ...

好吧好吧,这方面我的确不知道。。
但是那个方法的确会监听到除跳跃外其他的动作。。
不过目前来说,我貌似觉得应该就只这种方法吧。。

哦快快快
本帖最后由 哦快快快 于 2019-2-6 20:09 编辑

不知道有没有有解决
一些小想法可不可以监听玩家移动,然后查看玩家跳跃的统计数据

RainIFunS
看统计信息那里有个跳跃的统计,说明应该有这个数据包,那么就把他找出来,监听一下
上面说的那个检测Y轴变化的太耗了

si_12
大佬 那我该怎么判断玩家是否进行了某些交互呢?
是写在哪里?