mirror of
https://github.com/EngineHub/WorldGuard.git
synced 2024-09-28 22:57:29 +02:00
Deal with bamboo as growth from spread event listener.
Closes #1673, #1674.
This commit is contained in:
parent
59c146f59a
commit
035a645de0
@ -31,12 +31,14 @@
|
|||||||
import com.sk89q.worldguard.protection.flags.Flags;
|
import com.sk89q.worldguard.protection.flags.Flags;
|
||||||
import com.sk89q.worldguard.protection.flags.StateFlag;
|
import com.sk89q.worldguard.protection.flags.StateFlag;
|
||||||
import com.sk89q.worldguard.util.SpongeUtil;
|
import com.sk89q.worldguard.util.SpongeUtil;
|
||||||
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.block.data.Waterlogged;
|
import org.bukkit.block.data.Waterlogged;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.entity.Snowman;
|
import org.bukkit.entity.Snowman;
|
||||||
|
import org.bukkit.event.Cancellable;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
@ -610,13 +612,20 @@ public void onBlockSpread(BlockSpreadEvent event) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
handleGrow(event, event.getBlock().getLocation(), newType);
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
||||||
public void onBlockGrow(BlockGrowEvent event) {
|
public void onBlockGrow(BlockGrowEvent event) {
|
||||||
WorldConfiguration wcfg = getWorldConfig(event.getBlock().getWorld());
|
Location loc = event.getBlock().getLocation();
|
||||||
final Material type = event.getNewState().getType();
|
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 (Materials.isCrop(type)) {
|
||||||
if (wcfg.disableCropGrowth) {
|
if (wcfg.disableCropGrowth) {
|
||||||
event.setCancelled(false);
|
event.setCancelled(false);
|
||||||
@ -624,7 +633,7 @@ public void onBlockGrow(BlockGrowEvent event) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (wcfg.useRegions && !StateFlag.test(WorldGuard.getInstance().getPlatform().getRegionContainer().createQuery()
|
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);
|
event.setCancelled(true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user