Fixed issue with enchantments reseting under certain conditions

This commit is contained in:
Nathan Adams 2011-11-27 02:45:34 +00:00
parent 139ad8c34a
commit 894ab9f949
2 changed files with 8 additions and 6 deletions

View File

@ -37,6 +37,7 @@ import org.bukkit.block.Biome;
import org.bukkit.generator.BlockPopulator;
import org.bukkit.Difficulty;
import org.bukkit.craftbukkit.block.CraftBlock;
import org.bukkit.craftbukkit.inventory.CraftItemStack;
public class CraftWorld implements World {
private final WorldServer world;
@ -290,12 +291,8 @@ public class CraftWorld implements World {
}
public org.bukkit.entity.Item dropItem(Location loc, ItemStack item) {
net.minecraft.server.ItemStack stack = new net.minecraft.server.ItemStack(
item.getTypeId(),
item.getAmount(),
item.getDurability()
);
EntityItem entity = new EntityItem(world, loc.getX(), loc.getY(), loc.getZ(), stack);
CraftItemStack clone = new CraftItemStack(item);
EntityItem entity = new EntityItem(world, loc.getX(), loc.getY(), loc.getZ(), clone.getHandle());
entity.pickupDelay = 10;
world.addEntity(entity);
// TODO this is inconsistent with how Entity.getBukkitEntity() works.

View File

@ -26,6 +26,7 @@ public class CraftItemStack extends ItemStack {
public CraftItemStack(ItemStack item) {
this(item.getTypeId(), item.getAmount(), item.getDurability());
addEnchantments(item.getEnchantments());
}
/* 'Overwritten' constructors from ItemStack, yay for Java sucking */
@ -202,4 +203,8 @@ public class CraftItemStack extends ItemStack {
tag.a("ench", (NBTBase)list);
}
public net.minecraft.server.ItemStack getHandle() {
return item;
}
}