diff --git a/src/de/diddiz/LogBlock/Config.java b/src/de/diddiz/LogBlock/Config.java index 7c1ee15..f5cc10b 100644 --- a/src/de/diddiz/LogBlock/Config.java +++ b/src/de/diddiz/LogBlock/Config.java @@ -19,6 +19,7 @@ public class Config { final boolean dumpDeletedLog; final boolean logBlockCreations; final boolean logBlockDestroyings; + final boolean logBlockInstaBreak; final boolean logSignTexts; final boolean logExplosions; final boolean logFire; @@ -82,6 +83,8 @@ public class Config { config.setProperty("logging.logBlockCreations", true); if (!subkeys.contains("logBlockDestroyings")) config.setProperty("logging.logBlockDestroyings", true); + if (!subkeys.contains("logBlockInstaBreak")) + config.setProperty("logging.logBlockInstaBreak", true); if (!subkeys.contains("logSignTexts")) config.setProperty("logging.logSignTexts", false); if (!subkeys.contains("logExplosions")) @@ -125,6 +128,7 @@ public class Config { dumpDeletedLog = config.getBoolean("clearlog.dumpDeletedLog", true); logBlockCreations = config.getBoolean("logging.logBlockCreations", true); logBlockDestroyings = config.getBoolean("logging.logBlockDestroyings", true); + logBlockInstaBreak = config.getBoolean("logging.logBlockInstaBreak", true); logSignTexts = config.getBoolean("logging.logSignTexts", false); logExplosions = config.getBoolean("logging.logExplosions", false); logFire = config.getBoolean("logging.logFire", false); diff --git a/src/de/diddiz/LogBlock/LBBlockListener.java b/src/de/diddiz/LogBlock/LBBlockListener.java index 6a235aa..f2c7be6 100644 --- a/src/de/diddiz/LogBlock/LBBlockListener.java +++ b/src/de/diddiz/LogBlock/LBBlockListener.java @@ -3,6 +3,7 @@ package de.diddiz.LogBlock; import org.bukkit.Material; import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.block.BlockBurnEvent; +import org.bukkit.event.block.BlockDamageEvent; import org.bukkit.event.block.BlockListener; import org.bukkit.event.block.BlockPlaceEvent; import org.bukkit.event.block.LeavesDecayEvent; @@ -27,6 +28,11 @@ public class LBBlockListener extends BlockListener logblock.consumer.queueBlock(event.getPlayer().getName(), event.getBlock(), event.getBlock().getTypeId(), 0, event.getBlock().getData()); } + public void onBlockDamage(BlockDamageEvent event) { + if (!event.isCancelled() && event.getInstaBreak()) + logblock.consumer.queueBlock(event.getPlayer().getName(), event.getBlock(), event.getBlock().getTypeId(), 0, event.getBlock().getData()); + } + public void onSignChange(SignChangeEvent event) { if (!event.isCancelled()) logblock.consumer.queueBlock(event.getPlayer().getName(), event.getBlock(), 0, event.getBlock().getTypeId(), event.getBlock().getData(), "sign [" + event.getLine(0) + "] [" + event.getLine(1) + "] [" + event.getLine(2) + "] [" + event.getLine(3) + "]", null); diff --git a/src/de/diddiz/LogBlock/LogBlock.java b/src/de/diddiz/LogBlock/LogBlock.java index e0358fc..af18304 100644 --- a/src/de/diddiz/LogBlock/LogBlock.java +++ b/src/de/diddiz/LogBlock/LogBlock.java @@ -16,7 +16,7 @@ import org.bukkit.Material; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import org.bukkit.event.Event; +import org.bukkit.event.Event.Priority; import org.bukkit.event.Event.Type; import org.bukkit.inventory.ItemStack; import org.bukkit.plugin.Plugin; @@ -89,28 +89,30 @@ public class LogBlock extends JavaPlugin LBPlayerListener lbPlayerListener = new LBPlayerListener(this); LBEntityListener lbEntityListener = new LBEntityListener(this); PluginManager pm = getServer().getPluginManager(); - pm.registerEvent(Type.PLAYER_INTERACT, new LBToolPlayerListener(this), Event.Priority.Normal, this); - pm.registerEvent(Type.PLAYER_JOIN, lbPlayerListener, Event.Priority.Normal, this); + pm.registerEvent(Type.PLAYER_INTERACT, new LBToolPlayerListener(this), Priority.Normal, this); + pm.registerEvent(Type.PLAYER_JOIN, lbPlayerListener, Priority.Normal, this); if (config.logBlockCreations) { - pm.registerEvent(Type.BLOCK_PLACE, lbBlockListener, Event.Priority.Monitor, this); - pm.registerEvent(Type.PLAYER_BUCKET_EMPTY, lbPlayerListener, Event.Priority.Monitor, this); + pm.registerEvent(Type.BLOCK_PLACE, lbBlockListener, Priority.Monitor, this); + pm.registerEvent(Type.PLAYER_BUCKET_EMPTY, lbPlayerListener, Priority.Monitor, this); } if (config.logBlockDestroyings) { - pm.registerEvent(Type.BLOCK_BREAK, lbBlockListener, Event.Priority.Monitor, this); - pm.registerEvent(Type.PLAYER_BUCKET_FILL, lbPlayerListener, Event.Priority.Monitor, this); + pm.registerEvent(Type.BLOCK_BREAK, lbBlockListener, Priority.Monitor, this); + pm.registerEvent(Type.PLAYER_BUCKET_FILL, lbPlayerListener, Priority.Monitor, this); } + if (config.logBlockInstaBreak) + pm.registerEvent(Type.BLOCK_DAMAGE, lbBlockListener, Priority.Monitor, this); if (config.logSignTexts) - pm.registerEvent(Type.SIGN_CHANGE, lbBlockListener, Event.Priority.Monitor, this); + pm.registerEvent(Type.SIGN_CHANGE, lbBlockListener, Priority.Monitor, this); if (config.logFire) - pm.registerEvent(Type.BLOCK_BURN, lbBlockListener, Event.Priority.Monitor, this); + pm.registerEvent(Type.BLOCK_BURN, lbBlockListener, Priority.Monitor, this); if (config.logExplosions) - pm.registerEvent(Type.ENTITY_EXPLODE, lbEntityListener, Event.Priority.Monitor, this); + pm.registerEvent(Type.ENTITY_EXPLODE, lbEntityListener, Priority.Monitor, this); if (config.logLeavesDecay) - pm.registerEvent(Type.LEAVES_DECAY, lbBlockListener, Event.Priority.Monitor, this); + pm.registerEvent(Type.LEAVES_DECAY, lbBlockListener, Priority.Monitor, this); if (config.logChestAccess) - pm.registerEvent(Type.PLAYER_INTERACT, lbPlayerListener, Event.Priority.Monitor, this); + pm.registerEvent(Type.PLAYER_INTERACT, lbPlayerListener, Priority.Monitor, this); if (config.logKills) - pm.registerEvent(Type.ENTITY_DAMAGE, lbEntityListener, Event.Priority.Monitor, this); + pm.registerEvent(Type.ENTITY_DAMAGE, lbEntityListener, Priority.Monitor, this); consumer = new Consumer(this); if (config.useBukkitScheduler) { if (getServer().getScheduler().scheduleAsyncRepeatingTask(this, consumer, config.delay * 20, config.delay * 20) > 0)