From ffa0bc5ebf0acb0a41c184b129b78a9cce688245 Mon Sep 17 00:00:00 2001 From: Ammar Askar Date: Wed, 11 Jul 2012 16:40:34 +0100 Subject: [PATCH] Delay queuing of stairs and blocks by 1 tick to allow data to update. Fixes #146 and #143 --- .../LogBlock/listeners/BlockPlaceLogging.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/de/diddiz/LogBlock/listeners/BlockPlaceLogging.java b/src/de/diddiz/LogBlock/listeners/BlockPlaceLogging.java index 8ff7eb0..536f831 100644 --- a/src/de/diddiz/LogBlock/listeners/BlockPlaceLogging.java +++ b/src/de/diddiz/LogBlock/listeners/BlockPlaceLogging.java @@ -26,12 +26,27 @@ public class BlockPlaceLogging extends LoggingListener final int type = event.getBlock().getTypeId(); final BlockState before = event.getBlockReplacedState(); final BlockState after = event.getBlockPlaced().getState(); + final String playerName = event.getPlayer().getName(); if (type == 0 && event.getItemInHand() != null) { if (event.getItemInHand().getTypeId() == 51) return; after.setTypeId(event.getItemInHand().getTypeId()); after.setData(new MaterialData(event.getItemInHand().getTypeId())); } + // Delay queuing of stairs and blocks by 1 tick to allow the raw data to update + if (type == 53 || type == 67 || type == 108 || type == 109 || type == 114 || type == 128 || type == 134 || type == 135 || type == 136 || type == 26) { + LogBlock.getInstance().getServer().getScheduler().scheduleSyncDelayedTask(LogBlock.getInstance(), new Runnable() + { + @Override + public void run() { + if (before.getTypeId() == 0) + consumer.queueBlockPlace(playerName, after); + else + consumer.queueBlockReplace(playerName, before, after); + } + }, 1L); + return; + } if (wcfg.isLogging(Logging.SIGNTEXT) && (type == 63 || type == 68)) return; if (before.getTypeId() == 0)