summaryrefslogtreecommitdiffstats
path: root/src/main/java/net/minecraft/server/ItemStack.java
diff options
context:
space:
mode:
authorTravis Watkins <amaranth@ubuntu.com>2013-03-16 13:14:09 -0500
committerTravis Watkins <amaranth@ubuntu.com>2013-03-16 13:14:09 -0500
commit6d88d545e9a516bf5e7fed3190fc5680e4d9b908 (patch)
tree40c463bd0adca2664cb7139c5985c6065752ccef /src/main/java/net/minecraft/server/ItemStack.java
parenta76a5bd36f052470d2f4112f7de9286dabbc2f12 (diff)
downloadcraftbukkit-6d88d545e9a516bf5e7fed3190fc5680e4d9b908.tar
craftbukkit-6d88d545e9a516bf5e7fed3190fc5680e4d9b908.tar.gz
craftbukkit-6d88d545e9a516bf5e7fed3190fc5680e4d9b908.tar.lz
craftbukkit-6d88d545e9a516bf5e7fed3190fc5680e4d9b908.tar.xz
craftbukkit-6d88d545e9a516bf5e7fed3190fc5680e4d9b908.zip
Filter data for items that shouldn't have it and filter wool.
We used to fall Item.filterData() for this but that method is meant for converting item data to block data during placement and does the wrong thing for this case. Instead we just see if the item should have data and if not set it to zero. We also have to filter wool data explicitly because clients crash when given invalid wool data.
Diffstat (limited to 'src/main/java/net/minecraft/server/ItemStack.java')
-rw-r--r--src/main/java/net/minecraft/server/ItemStack.java13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/main/java/net/minecraft/server/ItemStack.java b/src/main/java/net/minecraft/server/ItemStack.java
index cd6dd070..09b46789 100644
--- a/src/main/java/net/minecraft/server/ItemStack.java
+++ b/src/main/java/net/minecraft/server/ItemStack.java
@@ -149,6 +149,19 @@ public final class ItemStack {
}
public void setData(int i) {
+ // CraftBukkit start - filter out data for items that shouldn't have it
+ if (!this.usesData()) {
+ this.damage = 0;
+ return;
+ }
+
+ // Filter wool to avoid confusing the client
+ if (this.id == Block.WOOL.id) {
+ this.damage = Math.min(15, i);
+ return;
+ }
+ // CraftBukkit end
+
this.damage = i;
if (this.damage < 0) {
this.damage = 0;