diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java index dd5388e44d..969e25e916 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -3,6 +3,8 @@ package org.bukkit.craftbukkit; import com.google.common.collect.MapMaker; import java.io.File; import java.util.Set; +import org.apache.commons.lang.Validate; + import org.bukkit.craftbukkit.entity.*; import org.bukkit.entity.*; import org.bukkit.entity.Entity; @@ -299,6 +301,8 @@ public class CraftWorld implements World { } public org.bukkit.entity.Item dropItem(Location loc, ItemStack item) { + Validate.notNull(item, "Cannot drop a Null item."); + Validate.isTrue(item.getTypeId() != 0, "Cannot drop AIR."); CraftItemStack clone = new CraftItemStack(item); EntityItem entity = new EntityItem(world, loc.getX(), loc.getY(), loc.getZ(), clone.getHandle()); entity.pickupDelay = 10; diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java index b8f045d083..b5391b35c9 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java @@ -27,7 +27,7 @@ public class CraftInventory implements org.bukkit.inventory.Inventory { } public ItemStack getItem(int index) { - return new CraftItemStack(getInventory().getItem(index)); + return getInventory().getItem(index).id == 0 ? null : new CraftItemStack(getInventory().getItem(index)); } public ItemStack[] getContents() { @@ -59,7 +59,7 @@ public class CraftInventory implements org.bukkit.inventory.Inventory { } public void setItem(int index, ItemStack item) { - getInventory().setItem(index, (item == null ? null : CraftItemStack.createNMSItemStack(item))); + getInventory().setItem(index, ((item == null || item.getTypeId() == 0) ? null : CraftItemStack.createNMSItemStack(item))); } public boolean contains(int materialId) { @@ -170,7 +170,7 @@ public class CraftInventory implements org.bukkit.inventory.Inventory { ItemStack[] inventory = getContents(); for (int i = 0; i < inventory.length; i++) { if (inventory[i] == null) continue; - + boolean equals = false; if (withAmount) {