From 73769fa00ff5fb523fb9e05be381f52636ed6791 Mon Sep 17 00:00:00 2001 From: snowleo Date: Thu, 14 Apr 2011 22:11:35 +0000 Subject: [PATCH] [trunk] Do not rely on getItemInHand(); Bukkit-Bug: http://leaky.bukkit.org/issues/663 Fixes issue with data items and /unlimited git-svn-id: https://svn.java.net/svn/essentials~svn/trunk@1190 e251c2fe-e539-e718-e476-b85c1f46cddb --- .../com/earth2me/essentials/EssentialsBlockListener.java | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/EssentialsBlockListener.java b/Essentials/src/com/earth2me/essentials/EssentialsBlockListener.java index 2c453d6ad..eba2f4267 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsBlockListener.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsBlockListener.java @@ -7,6 +7,7 @@ import org.bukkit.block.*; import org.bukkit.craftbukkit.block.CraftSign; import org.bukkit.event.block.*; import org.bukkit.inventory.ItemStack; +import org.bukkit.material.MaterialData; public class EssentialsBlockListener extends BlockListener @@ -167,10 +168,9 @@ public class EssentialsBlockListener extends BlockListener } } final User user = User.get(event.getPlayer()); - final ItemStack is = event.getItemInHand(); - if (is.getType() == Material.AIR) { - is.setType(event.getBlockPlaced().getType()); - } + // Do not rely on getItemInHand(); + // http://leaky.bukkit.org/issues/663 + final ItemStack is = new ItemStack(event.getBlockPlaced().getType(), 1, (short)0, event.getBlockPlaced().getData()); switch(is.getType()) { case WOODEN_DOOR: is.setType(Material.WOOD_DOOR); @@ -204,7 +204,6 @@ public class EssentialsBlockListener extends BlockListener } boolean unlimitedForUser = user.hasUnlimited(is); if (unlimitedForUser) { - is.setAmount(1); Essentials.getStatic().getScheduler().scheduleSyncDelayedTask(Essentials.getStatic(), new Runnable() {