本帖最后由 632b781af97903 于 2022-4-22 12:40 编辑
我的插件里有写 PlayerInteractEvent,另外一个插件也有;都是判断手持物品 右键方块或右键空气
我写的里面检测到 物品是指定名称 就 setCancelled(true);另外一个插件检测到 物品是指定名称 就执行操作
监听等级 LOWEST和MONITOR都试过了,可以限制这个方块的物品禁止放置,但是依然可以执行操作
他的就直接写的 EventHandler
我的插件里有写 PlayerInteractEvent,另外一个插件也有;都是判断手持物品 右键方块或右键空气
我写的里面检测到 物品是指定名称 就 setCancelled(true);另外一个插件检测到 物品是指定名称 就执行操作
监听等级 LOWEST和MONITOR都试过了,可以限制这个方块的物品禁止放置,但是依然可以执行操作
他的就直接写的 EventHandler
您的描述有点混乱,没有听太清楚你的意思
如果确定要取消操作,请把取消操作的event设置优先级高于另一个event即可
如果确定要取消操作,请把取消操作的event设置优先级高于另一个event即可
金瓯 发表于 2022-4-22 07:34
您的描述有点混乱,没有听太清楚你的意思
如果确定要取消操作,请把取消操作的event设置优先级高于另一个ev ...
监听等级 LOWEST和MONITOR都试过了
我写的
这个得注销它的监听器
HandlerList.getRegisteredListeners(@NotNull Plugin plugin) 返回一个 ArrayList<RegisteredListener> 可以获得某个插注册的所有监听器
然后遍历这个list 使用RegisteredListener::getListener() 方法对listener的类型进行判断(instanceof 或者对class 包名进行判断) 如果是你要的监听器那就用
HandlerList.unregisterAll(@NotNull Listener listener) 来注销这个监听器
HandlerList.getRegisteredListeners(@NotNull Plugin plugin) 返回一个 ArrayList<RegisteredListener> 可以获得某个插注册的所有监听器
然后遍历这个list 使用RegisteredListener::getListener() 方法对listener的类型进行判断(instanceof 或者对class 包名进行判断) 如果是你要的监听器那就用
HandlerList.unregisterAll(@NotNull Listener listener) 来注销这个监听器