Bukkit防止葡萄树生长

时间:2016-04-29 11:01:35

标签: java plugins bukkit

我正在编写Bukkit插件以防止葡萄藤生长,取消BlockGrowEvent后,葡萄树仍在生长和蔓延。我怎样才能防止葡萄树生长,甚至在葡萄藤长大时会发生火灾?

代码:

@EventHandler (ignoreCancelled = true)
public void onVineGrow(BlockGrowEvent event){
    event.setCancelled(true);
}

1 个答案:

答案 0 :(得分:3)

仅当小麦,甘蔗,仙人掌,西瓜或南瓜等植物(以及其他一些植物)生长时才会调用BlockGrowEvent。要检测葡萄藤蔓延,请收听BlockSpreadEvent。由于这个事件是可以取消的,当你处理这个事件时,藤蔓蔓延的块仍然是空气,所以要检查块是藤蔓而不是火块或蘑菇蔓延,你可以看看新的正在传播的块的BlockState并检查其类型event.getNewState().getData().getItemType()是否等于Material.VINE