diff --git a/src/de/diddiz/LogBlock/Consumer.java b/src/de/diddiz/LogBlock/Consumer.java index 828fa87..636216b 100644 --- a/src/de/diddiz/LogBlock/Consumer.java +++ b/src/de/diddiz/LogBlock/Consumer.java @@ -74,13 +74,21 @@ public class Consumer extends TimerTask implements Runnable * @param after Blockstate of the block after actually being placed. */ public void queueBlockReplace(String playerName, BlockState before, BlockState after) { - queueBlockBreak(playerName, before); - queueBlockPlace(playerName, after); + if (before.getRawData() == 0) { + queueBlock(playerName, new Location(before.getWorld(), before.getX(), before.getY(), before.getZ()), before.getTypeId(), after.getTypeId(), after.getRawData()); + } else { + queueBlockBreak(playerName, before); + queueBlockPlace(playerName, after); + } } public void queueBlockReplace(String playerName, Location loc, int typeBefore, byte dataBefore, int typeAfter, byte dataAfter) { - queueBlockBreak(playerName, loc, typeBefore, dataBefore); - queueBlockPlace(playerName, loc, typeAfter, dataAfter); + if (dataBefore == 0) { + queueBlock(playerName, loc, typeBefore, typeAfter, dataAfter); + } else { + queueBlockBreak(playerName, loc, typeBefore, dataBefore); + queueBlockPlace(playerName, loc, typeAfter, dataAfter); + } } /** diff --git a/src/de/diddiz/LogBlock/LBBlockListener.java b/src/de/diddiz/LogBlock/LBBlockListener.java index c0668df..63012eb 100644 --- a/src/de/diddiz/LogBlock/LBBlockListener.java +++ b/src/de/diddiz/LogBlock/LBBlockListener.java @@ -19,6 +19,8 @@ public class LBBlockListener extends BlockListener consumer = logblock.getConsumer(); } + //TODO Flow listener + @Override public void onBlockPlace(BlockPlaceEvent event) { if (!event.isCancelled() && !(config.logSignTexts && (event.getBlock().getType() == Material.WALL_SIGN || event.getBlock().getType() == Material.SIGN_POST))) { @@ -26,8 +28,6 @@ public class LBBlockListener extends BlockListener final BlockState after = event.getBlockPlaced().getState(); if (before.getTypeId() == 0) consumer.queueBlockPlace(event.getPlayer().getName(), after); - else if (before.getRawData() == 0) - consumer.queueBlock(event.getPlayer().getName(), event.getBlock().getLocation(), before.getTypeId(), after.getTypeId(), after.getRawData()); else consumer.queueBlockReplace(event.getPlayer().getName(), before, after); }