Bukkit 防止葡萄藤生长
Bukkit preventing vine growth
我正在写一个Bukkit插件来防止藤蔓生长,取消BlockGrowEvent后,藤蔓仍在生长和蔓延。我怎样才能防止藤蔓生长,甚至在藤蔓生长时事件也会触发?
代码:
@EventHandler (ignoreCancelled = true)
public void onVineGrow(BlockGrowEvent event){
event.setCancelled(true);
}
BlockGrowEvent
仅在小麦、甘蔗、仙人掌、西瓜或南瓜等植物(以及其他一些植物)生长时调用。要检测藤蔓蔓延,请收听 BlockSpreadEvent
。由于这个事件是可以取消的,当你处理这个事件时,藤蔓蔓延到的方块仍然是空气,所以要检查这个方块是藤蔓而不是火方块或蘑菇蔓延,你可以看看新的BlockState
被传播到的块并检查其类型 event.getNewState().getData().getItemType()
是否等于 Material.VINE
.
我正在写一个Bukkit插件来防止藤蔓生长,取消BlockGrowEvent后,藤蔓仍在生长和蔓延。我怎样才能防止藤蔓生长,甚至在藤蔓生长时事件也会触发?
代码:
@EventHandler (ignoreCancelled = true)
public void onVineGrow(BlockGrowEvent event){
event.setCancelled(true);
}
BlockGrowEvent
仅在小麦、甘蔗、仙人掌、西瓜或南瓜等植物(以及其他一些植物)生长时调用。要检测藤蔓蔓延,请收听 BlockSpreadEvent
。由于这个事件是可以取消的,当你处理这个事件时,藤蔓蔓延到的方块仍然是空气,所以要检查这个方块是藤蔓而不是火方块或蘑菇蔓延,你可以看看新的BlockState
被传播到的块并检查其类型 event.getNewState().getData().getItemType()
是否等于 Material.VINE
.