diff --git a/src/de/anura/core/Setup.java b/src/de/anura/core/Setup.java index 14ca66a..b25920b 100644 --- a/src/de/anura/core/Setup.java +++ b/src/de/anura/core/Setup.java @@ -39,6 +39,7 @@ public class Setup { c.addDefault("on-join-to-spawn", false); c.addDefault("golf", false); c.addDefault("realtime-day", false); + c.addDefault("no-snow-melt", false); c.addDefault("spawn.world", "none"); c.addDefault("spawn.X", 0); c.addDefault("spawn.Y", 0); @@ -72,6 +73,7 @@ public class Setup { new BlockSpread(Core.getMainClass()); new DropItem(Core.getMainClass()); new EntityChangeBlock(Core.getMainClass()); + new BlockFade(Core.getMainClass()); } public static void setupClasses() { diff --git a/src/de/anura/core/events/BlockFade.java b/src/de/anura/core/events/BlockFade.java new file mode 100644 index 0000000..afc1c72 --- /dev/null +++ b/src/de/anura/core/events/BlockFade.java @@ -0,0 +1,24 @@ +package de.anura.core.events; + +import de.anura.core.API.Core; +import de.anura.core.AnuraCore; +import java.util.Arrays; +import org.bukkit.Material; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.block.BlockFadeEvent; + +public class BlockFade implements Listener { + + public BlockFade(AnuraCore plugin) { + plugin.getServer().getPluginManager().registerEvents(this, plugin); + } + + @EventHandler + public void onBlockFade(BlockFadeEvent event) { + Material[] cancelled = new Material[] { Material.ICE, Material.SNOW, Material.SNOW_BLOCK }; + if (Core.getMainClass().getConfig().getBoolean("no-snow-melt") && Arrays.asList(cancelled).contains(event.getBlock().getType())) { + event.setCancelled(true); + } + } +}