From 035a645de0a3d579e2d1c15415bccf9948c39d3f Mon Sep 17 00:00:00 2001 From: wizjany Date: Fri, 27 Nov 2020 09:10:28 -0500 Subject: [PATCH] Deal with bamboo as growth from spread event listener. Closes #1673, #1674. --- .../bukkit/listener/WorldGuardBlockListener.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/WorldGuardBlockListener.java b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/WorldGuardBlockListener.java index fa52c994..db64b953 100644 --- a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/WorldGuardBlockListener.java +++ b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/WorldGuardBlockListener.java @@ -31,12 +31,14 @@ import com.sk89q.worldguard.protection.flags.Flags; import com.sk89q.worldguard.protection.flags.StateFlag; import com.sk89q.worldguard.util.SpongeUtil; +import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.World; import org.bukkit.block.Block; import org.bukkit.block.data.Waterlogged; import org.bukkit.entity.Player; import org.bukkit.entity.Snowman; +import org.bukkit.event.Cancellable; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; @@ -610,13 +612,20 @@ public void onBlockSpread(BlockSpreadEvent event) { return; } } + + handleGrow(event, event.getBlock().getLocation(), newType); } @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true) public void onBlockGrow(BlockGrowEvent event) { - WorldConfiguration wcfg = getWorldConfig(event.getBlock().getWorld()); + Location loc = event.getBlock().getLocation(); final Material type = event.getNewState().getType(); + handleGrow(event, loc, type); + } + + private void handleGrow(Cancellable event, Location loc, Material type) { + WorldConfiguration wcfg = getWorldConfig(loc.getWorld()); if (Materials.isCrop(type)) { if (wcfg.disableCropGrowth) { event.setCancelled(false); @@ -624,7 +633,7 @@ public void onBlockGrow(BlockGrowEvent event) { } if (wcfg.useRegions && !StateFlag.test(WorldGuard.getInstance().getPlatform().getRegionContainer().createQuery() - .queryState(BukkitAdapter.adapt(event.getBlock().getLocation()), (RegionAssociable) null, Flags.CROP_GROWTH))) { + .queryState(BukkitAdapter.adapt(loc), (RegionAssociable) null, Flags.CROP_GROWTH))) { event.setCancelled(true); return; }