From fbe062caf5c29d153a27b5ab2d06a6e3a795ef15 Mon Sep 17 00:00:00 2001
From: Travis Watkins <amaranth@ubuntu.com>
Date: Fri, 13 Dec 2013 18:52:33 -0600
Subject: [PATCH] Only filter data from block items, not all of them. Fixes
 BUKKIT-5047

---
 src/main/java/net/minecraft/server/ItemStack.java | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/src/main/java/net/minecraft/server/ItemStack.java b/src/main/java/net/minecraft/server/ItemStack.java
index 53c665b88a..b308e035c2 100644
--- a/src/main/java/net/minecraft/server/ItemStack.java
+++ b/src/main/java/net/minecraft/server/ItemStack.java
@@ -6,6 +6,8 @@ import java.util.Random;
 import net.minecraft.util.com.google.common.collect.HashMultimap;
 import net.minecraft.util.com.google.common.collect.Multimap;
 
+import org.bukkit.craftbukkit.util.CraftMagicNumbers; // CraftBukkit
+
 public final class ItemStack {
 
     public static final DecimalFormat a = new DecimalFormat("#.###");
@@ -155,13 +157,12 @@ public final class ItemStack {
             return;
         }
 
-        if (!(this.usesData() || this.getItem().usesDurability())) { // || this.id > 255)) {
-            i = 0;
-        }
-
-        // Filter wool to avoid confusing the client
-        if (this.getItem() == Item.getItemOf(Blocks.WOOL)) {
-            i = Math.min(15, i);
+        // Is this a block?
+        if (CraftMagicNumbers.getBlock(CraftMagicNumbers.getId(this.getItem())) != Blocks.AIR) {
+            // If vanilla doesn't use data on it don't allow any
+            if (!(this.usesData() || this.getItem().usesDurability())) {
+                i = 0;
+            }
         }
         // CraftBukkit end