如题,我用了好多方法都不能阻止玩家打灭火焰。
某些场景里面,玩家将火破坏了就会导致场景比较滑稽。
我监听破坏方块事件来取消破坏,但是依然无法阻止
版本Spigot-1.12.2
某些场景里面,玩家将火破坏了就会导致场景比较滑稽。
我监听破坏方块事件来取消破坏,但是依然无法阻止
版本Spigot-1.12.2
PlayerInteractEvent 试过了吗
结冰的离季 发表于 2021-9-14 17:38
PlayerInteractEvent 试过了吗
哦哦哦!没想到,忘记试没试了,一会儿试一下,之前用了好多办法都不成功,后来就放着了
PlayerInteractEvent
getClickedBlock().getType().equals(Material.FIRE)
setCancelled(true);
getClickedBlock().getType().equals(Material.FIRE)
setCancelled(true);
本帖最后由 诺凡克罗诺 于 2021-9-15 10:07 编辑
实践证明无效!,我输出一下方块类型看下,或许不是Material.FIRE
我尝试输出交互方块类型,发现打火无法触发交互事件!,没有输出任何东西,交互其它方块都有输出
tallmoon 发表于 2021-9-14 19:50
PlayerInteractEvent
getClickedBlock().getType().equals(Material.FIRE)
setCancelled(true);
实践证明无效!,我输出一下方块类型看下,或许不是Material.FIRE
我尝试输出交互方块类型,发现打火无法触发交互事件!,没有输出任何东西,交互其它方块都有输出
诺凡克罗诺 发表于 2021-9-15 10:01
实践证明无效!,我输出一下方块类型看下,或许不是Material.FIRE
我尝试输出交互方块类型,发现打火无法触 ...
不太清楚你那边的版本

我是Paper1.16.5最新构建的版本
tallmoon 发表于 2021-9-15 10:16
不太清楚你那边的版本
我是Paper1.16.5最新构建的版本
1.12.2好像没有火方块,我刚才重新试了一下,交互火焰的时候其实是交互到接壤的方块,然后火焰就熄了,具体是交互到火焰底部/顶部/周围这些方块火焰就熄了,或许是火焰周围的方块会获得一个状态,具体我再看看
诺凡克罗诺 发表于 2021-9-15 10:34
1.12.2好像没有火方块,我刚才重新试了一下,交互火焰的时候其实是交互到接壤的方块,然后火焰就熄了,具 ...
已经解决!
从交互的方块面获得该面相对的方块判断这个方块的类型,代码如下
- Material material = e.getClickedBlock().getRelative(e.getBlockFace()).getType();
- if(material.equals(Material.FIRE)){
- e.setCancelled(true);
- }