From 224caee56e5f68be22a739d3ea01896304db211d Mon Sep 17 00:00:00 2001 From: zomb Date: Sun, 28 Feb 2016 15:41:32 -1000 Subject: [PATCH] Implements the ice-melt flag --- .../bukkit/listeners/PlotPlusListener.java | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/Bukkit/src/main/java/com/plotsquared/bukkit/listeners/PlotPlusListener.java b/Bukkit/src/main/java/com/plotsquared/bukkit/listeners/PlotPlusListener.java index d0d616d18..eea883097 100644 --- a/Bukkit/src/main/java/com/plotsquared/bukkit/listeners/PlotPlusListener.java +++ b/Bukkit/src/main/java/com/plotsquared/bukkit/listeners/PlotPlusListener.java @@ -31,12 +31,14 @@ import com.plotsquared.listener.PlotListener; import org.bukkit.Bukkit; import org.bukkit.GameMode; import org.bukkit.Material; +import org.bukkit.block.BlockState; import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.block.BlockDamageEvent; +import org.bukkit.event.block.BlockFadeEvent; import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.player.PlayerDropItemEvent; import org.bukkit.event.player.PlayerPickupItemEvent; @@ -105,7 +107,23 @@ public class PlotPlusListener extends PlotListener implements Listener { } }, 0l, 20l); } - + + @EventHandler(priority = EventPriority.HIGH) + public void onMelt(final BlockFadeEvent event) { + final BlockState state = event.getNewState(); + + if (state.getType() != Material.WATER && state.getType() != Material.STATIONARY_WATER) { + return; + } + final Plot plot = BukkitUtil.getLocation(state.getLocation()).getOwnedPlot(); + if (plot == null) { + return; + } + if (!FlagManager.isBooleanFlag(plot, "ice-melt", false)) { + event.setCancelled(true); + } + } + @EventHandler(priority = EventPriority.HIGH) public void onInteract(final BlockDamageEvent event) { final Player player = event.getPlayer();