From b6f703a42c8c9e1d8dd28ff11377ea72d9070028 Mon Sep 17 00:00:00 2001 From: Robin Kupper Date: Sun, 7 Aug 2011 16:29:57 +0200 Subject: [PATCH] Added snow form and fade logging --- src/de/diddiz/LogBlock/Config.java | 13 +++++++++--- src/de/diddiz/LogBlock/LBBlockListener.java | 22 +++++++++++++++++++++ src/de/diddiz/LogBlock/LogBlock.java | 4 ++++ 3 files changed, 36 insertions(+), 3 deletions(-) diff --git a/src/de/diddiz/LogBlock/Config.java b/src/de/diddiz/LogBlock/Config.java index 73b2691..990561f 100644 --- a/src/de/diddiz/LogBlock/Config.java +++ b/src/de/diddiz/LogBlock/Config.java @@ -25,7 +25,7 @@ public class Config public final boolean useBukkitScheduler; public final int keepLogDays; public final boolean dumpDeletedLog; - public boolean logBlockPlacings, logBlockBreaks, logSignTexts, logExplosions, logFire, logLeavesDecay, logLavaFlow, logWaterFlow, logChestAccess, logButtonsAndLevers, logKills, logChat; + public boolean logBlockPlacings, logBlockBreaks, logSignTexts, logExplosions, logFire, logLeavesDecay, logLavaFlow, logWaterFlow, logChestAccess, logButtonsAndLevers, logKills, logChat, logSnowForm, logSnowFade; public final boolean logCreeperExplosionsAsPlayerWhoTriggeredThese; public final LogKillsLevel logKillsLevel; public final Set dontRollback, replaceAnyway; @@ -174,15 +174,18 @@ public class Config logKills = true; if (wcfg.logChat) logChat = true; + if (wcfg.logSnowForm) + logSnowForm = true; + if (wcfg.logSnowFade) + logSnowFade = true; } - } } class WorldConfig { public final String table; - public final boolean logBlockPlacings, logBlockBreaks, logSignTexts, logExplosions, logFire, logLeavesDecay, logLavaFlow, logWaterFlow, logChestAccess, logButtonsAndLevers, logKills, logChat; + public final boolean logBlockPlacings, logBlockBreaks, logSignTexts, logExplosions, logFire, logLeavesDecay, logLavaFlow, logWaterFlow, logChestAccess, logButtonsAndLevers, logKills, logChat, logSnowForm, logSnowFade; public WorldConfig(File file) { final Map def = new HashMap(); @@ -199,6 +202,8 @@ class WorldConfig def.put("logButtonsAndLevers", false); def.put("logKills", false); def.put("logChat", false); + def.put("logSnowForm", false); + def.put("logSnowFade", false); final Configuration config = new Configuration(file); config.load(); for (final Entry e : def.entrySet()) @@ -218,5 +223,7 @@ class WorldConfig logButtonsAndLevers = config.getBoolean("logButtonsAndLevers", false); logKills = config.getBoolean("logKills", false); logChat = config.getBoolean("logChat", false); + logSnowForm = config.getBoolean("logSnowForm", false); + logSnowFade = config.getBoolean("logSnowFade", false); } } diff --git a/src/de/diddiz/LogBlock/LBBlockListener.java b/src/de/diddiz/LogBlock/LBBlockListener.java index 01a2a0c..2bacb27 100644 --- a/src/de/diddiz/LogBlock/LBBlockListener.java +++ b/src/de/diddiz/LogBlock/LBBlockListener.java @@ -16,6 +16,8 @@ import org.bukkit.block.BlockState; import org.bukkit.block.Sign; import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.block.BlockBurnEvent; +import org.bukkit.event.block.BlockFadeEvent; +import org.bukkit.event.block.BlockFormEvent; import org.bukkit.event.block.BlockFromToEvent; import org.bukkit.event.block.BlockListener; import org.bukkit.event.block.BlockPlaceEvent; @@ -136,6 +138,26 @@ class LBBlockListener extends BlockListener consumer.queueSignPlace(event.getPlayer().getName(), event.getBlock().getLocation(), event.getBlock().getTypeId(), event.getBlock().getData(), event.getLines()); } + @Override + public void onBlockForm(BlockFormEvent event) { + final WorldConfig wcfg = worlds.get(event.getBlock().getWorld().getName().hashCode()); + if (!event.isCancelled() && wcfg != null) { + final int type = event.getNewState().getTypeId(); + if (wcfg.logSnowForm && (type == 78 || type == 79)) + consumer.queueBlockReplace("SnowForm", event.getBlock().getState(), event.getNewState()); + } + } + + @Override + public void onBlockFade(BlockFadeEvent event) { + final WorldConfig wcfg = worlds.get(event.getBlock().getWorld().getName().hashCode()); + if (!event.isCancelled() && wcfg != null) { + final int type = event.getBlock().getTypeId(); + if (wcfg.logSnowFade && (type == 78 || type == 79)) + consumer.queueBlockReplace("SnowFade", event.getBlock().getState(), event.getNewState()); + } + } + private void addError(String error) { errors.add(error); if (errors.size() == 20) diff --git a/src/de/diddiz/LogBlock/LogBlock.java b/src/de/diddiz/LogBlock/LogBlock.java index d3bea7c..1a15a54 100644 --- a/src/de/diddiz/LogBlock/LogBlock.java +++ b/src/de/diddiz/LogBlock/LogBlock.java @@ -186,6 +186,10 @@ public class LogBlock extends JavaPlugin pm.registerEvent(Type.SIGN_CHANGE, lbBlockListener, Priority.Monitor, this); if (config.logFire) pm.registerEvent(Type.BLOCK_BURN, lbBlockListener, Priority.Monitor, this); + if (config.logSnowForm) + pm.registerEvent(Type.BLOCK_FORM, lbBlockListener, Priority.Monitor, this); + if (config.logSnowFade) + pm.registerEvent(Type.BLOCK_FADE, lbBlockListener, Priority.Monitor, this); if (config.logExplosions) pm.registerEvent(Type.ENTITY_EXPLODE, lbEntityListener, Priority.Monitor, this); if (config.logLeavesDecay)