Implement ItemFactory and ItemMeta values. Adds BUKKIT-15
This commit is contained in:
@@ -124,7 +124,7 @@ public class ContainerEnchantTable extends Container {
|
||||
}
|
||||
|
||||
// CraftBukkit start
|
||||
CraftItemStack item = new CraftItemStack(itemstack);
|
||||
CraftItemStack item = CraftItemStack.asCraftMirror(itemstack);
|
||||
PrepareItemEnchantEvent event = new PrepareItemEnchantEvent(player, this.getBukkitView(), this.world.getWorld().getBlockAt(this.x, this.y, this.z), item, this.costs, i);
|
||||
this.world.getServer().getPluginManager().callEvent(event);
|
||||
|
||||
@@ -160,7 +160,7 @@ public class ContainerEnchantTable extends Container {
|
||||
EnchantmentInstance instance = (EnchantmentInstance) obj;
|
||||
enchants.put(org.bukkit.enchantments.Enchantment.getById(instance.enchantment.id), instance.level);
|
||||
}
|
||||
CraftItemStack item = new CraftItemStack(itemstack);
|
||||
CraftItemStack item = CraftItemStack.asCraftMirror(itemstack);
|
||||
|
||||
EnchantItemEvent event = new EnchantItemEvent((Player) entityhuman.getBukkitEntity(), this.getBukkitView(), this.world.getWorld().getBlockAt(this.x, this.y, this.z), item, this.costs[i], enchants, i);
|
||||
this.world.getServer().getPluginManager().callEvent(event);
|
||||
|
||||
@@ -41,9 +41,9 @@ public class DispenseBehaviorBoat extends DispenseBehaviorItem {
|
||||
// CraftBukkit start
|
||||
ItemStack itemstack1 = itemstack.a(1);
|
||||
org.bukkit.block.Block block = world.getWorld().getBlockAt(isourceblock.getBlockX(), isourceblock.getBlockY(), isourceblock.getBlockZ());
|
||||
org.bukkit.inventory.ItemStack bukkitItem = new CraftItemStack(itemstack1).clone();
|
||||
CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemstack1);
|
||||
|
||||
BlockDispenseEvent event = new BlockDispenseEvent(block, bukkitItem, new org.bukkit.util.Vector(d0, d1 + d3, d2));
|
||||
BlockDispenseEvent event = new BlockDispenseEvent(block, craftItem.clone(), new org.bukkit.util.Vector(d0, d1 + d3, d2));
|
||||
if (!BlockDispenser.eventFired) {
|
||||
world.getServer().getPluginManager().callEvent(event);
|
||||
}
|
||||
@@ -53,10 +53,10 @@ public class DispenseBehaviorBoat extends DispenseBehaviorItem {
|
||||
return itemstack;
|
||||
}
|
||||
|
||||
if (!event.getItem().equals(bukkitItem)) {
|
||||
if (!event.getItem().equals(craftItem)) {
|
||||
itemstack.count++;
|
||||
// Chain to handler for new item
|
||||
ItemStack eventStack = CraftItemStack.createNMSItemStack(event.getItem());
|
||||
ItemStack eventStack = CraftItemStack.asNMSCopy(event.getItem());
|
||||
IDispenseBehavior idispensebehavior = (IDispenseBehavior) BlockDispenser.a.a(eventStack.getItem());
|
||||
if (idispensebehavior != IDispenseBehavior.a && idispensebehavior != this) {
|
||||
idispensebehavior.a(isourceblock, eventStack);
|
||||
|
||||
@@ -38,9 +38,9 @@ public class DispenseBehaviorEmptyBucket extends DispenseBehaviorItem {
|
||||
|
||||
// CraftBukkit start
|
||||
org.bukkit.block.Block block = world.getWorld().getBlockAt(i, j, k);
|
||||
org.bukkit.inventory.ItemStack bukkitItem = new CraftItemStack(itemstack).clone();
|
||||
CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemstack);
|
||||
|
||||
BlockDispenseEvent event = new BlockDispenseEvent(block, bukkitItem, new org.bukkit.util.Vector(0, 0, 0));
|
||||
BlockDispenseEvent event = new BlockDispenseEvent(block, craftItem.clone(), new org.bukkit.util.Vector(0, 0, 0));
|
||||
if (!BlockDispenser.eventFired) {
|
||||
world.getServer().getPluginManager().callEvent(event);
|
||||
}
|
||||
@@ -49,9 +49,9 @@ public class DispenseBehaviorEmptyBucket extends DispenseBehaviorItem {
|
||||
return itemstack;
|
||||
}
|
||||
|
||||
if (!event.getItem().equals(bukkitItem)) {
|
||||
if (!event.getItem().equals(craftItem)) {
|
||||
// Chain to handler for new item
|
||||
ItemStack eventStack = CraftItemStack.createNMSItemStack(event.getItem());
|
||||
ItemStack eventStack = CraftItemStack.asNMSCopy(event.getItem());
|
||||
IDispenseBehavior idispensebehavior = (IDispenseBehavior) BlockDispenser.a.a(eventStack.getItem());
|
||||
if (idispensebehavior != IDispenseBehavior.a && idispensebehavior != this) {
|
||||
idispensebehavior.a(isourceblock, eventStack);
|
||||
|
||||
@@ -29,9 +29,9 @@ public class DispenseBehaviorFilledBucket extends DispenseBehaviorItem {
|
||||
int k2 = k + enumfacing.e();
|
||||
if (world.isEmpty(i2, j, k2) || world.getMaterial(i2, j, k2).isBuildable()) {
|
||||
org.bukkit.block.Block block = world.getWorld().getBlockAt(i, j, k);
|
||||
org.bukkit.inventory.ItemStack bukkitItem = new CraftItemStack(itemstack).clone();
|
||||
CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemstack);
|
||||
|
||||
BlockDispenseEvent event = new BlockDispenseEvent(block, bukkitItem, new org.bukkit.util.Vector(0, 0, 0));
|
||||
BlockDispenseEvent event = new BlockDispenseEvent(block, craftItem.clone(), new org.bukkit.util.Vector(0, 0, 0));
|
||||
if (!BlockDispenser.eventFired) {
|
||||
world.getServer().getPluginManager().callEvent(event);
|
||||
}
|
||||
@@ -40,9 +40,9 @@ public class DispenseBehaviorFilledBucket extends DispenseBehaviorItem {
|
||||
return itemstack;
|
||||
}
|
||||
|
||||
if (!event.getItem().equals(bukkitItem)) {
|
||||
if (!event.getItem().equals(craftItem)) {
|
||||
// Chain to handler for new item
|
||||
ItemStack eventStack = CraftItemStack.createNMSItemStack(event.getItem());
|
||||
ItemStack eventStack = CraftItemStack.asNMSCopy(event.getItem());
|
||||
IDispenseBehavior idispensebehavior = (IDispenseBehavior) BlockDispenser.a.a(eventStack.getItem());
|
||||
if (idispensebehavior != IDispenseBehavior.a && idispensebehavior != this) {
|
||||
idispensebehavior.a(isourceblock, eventStack);
|
||||
@@ -50,7 +50,7 @@ public class DispenseBehaviorFilledBucket extends DispenseBehaviorItem {
|
||||
}
|
||||
}
|
||||
|
||||
itembucket = (ItemBucket) CraftItemStack.createNMSItemStack(event.getItem()).getItem();
|
||||
itembucket = (ItemBucket) CraftItemStack.asNMSCopy(event.getItem()).getItem();
|
||||
}
|
||||
// CraftBukkit end
|
||||
|
||||
|
||||
@@ -30,9 +30,9 @@ public class DispenseBehaviorFireball extends DispenseBehaviorItem {
|
||||
// CraftBukkit start
|
||||
ItemStack itemstack1 = itemstack.a(1);
|
||||
org.bukkit.block.Block block = world.getWorld().getBlockAt(isourceblock.getBlockX(), isourceblock.getBlockY(), isourceblock.getBlockZ());
|
||||
org.bukkit.inventory.ItemStack bukkitItem = new CraftItemStack(itemstack1).clone();
|
||||
CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemstack1);
|
||||
|
||||
BlockDispenseEvent event = new BlockDispenseEvent(block, bukkitItem, new org.bukkit.util.Vector(d3, d4, d5));
|
||||
BlockDispenseEvent event = new BlockDispenseEvent(block, craftItem.clone(), new org.bukkit.util.Vector(d3, d4, d5));
|
||||
if (!BlockDispenser.eventFired) {
|
||||
world.getServer().getPluginManager().callEvent(event);
|
||||
}
|
||||
@@ -42,10 +42,10 @@ public class DispenseBehaviorFireball extends DispenseBehaviorItem {
|
||||
return itemstack;
|
||||
}
|
||||
|
||||
if (!event.getItem().equals(bukkitItem)) {
|
||||
if (!event.getItem().equals(craftItem)) {
|
||||
itemstack.count++;
|
||||
// Chain to handler for new item
|
||||
ItemStack eventStack = CraftItemStack.createNMSItemStack(event.getItem());
|
||||
ItemStack eventStack = CraftItemStack.asNMSCopy(event.getItem());
|
||||
IDispenseBehavior idispensebehavior = (IDispenseBehavior) BlockDispenser.a.a(eventStack.getItem());
|
||||
if (idispensebehavior != IDispenseBehavior.a && idispensebehavior != this) {
|
||||
idispensebehavior.a(isourceblock, eventStack);
|
||||
|
||||
@@ -50,9 +50,9 @@ public class DispenseBehaviorItem implements IDispenseBehavior {
|
||||
|
||||
// CraftBukkit start
|
||||
org.bukkit.block.Block block = world.getWorld().getBlockAt(isourceblock.getBlockX(), isourceblock.getBlockY(), isourceblock.getBlockZ());
|
||||
org.bukkit.inventory.ItemStack bukkitItem = new CraftItemStack(itemstack).clone();
|
||||
CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemstack);
|
||||
|
||||
BlockDispenseEvent event = new BlockDispenseEvent(block, bukkitItem, new org.bukkit.util.Vector(entityitem.motX, entityitem.motY, entityitem.motZ));
|
||||
BlockDispenseEvent event = new BlockDispenseEvent(block, craftItem.clone(), new org.bukkit.util.Vector(entityitem.motX, entityitem.motY, entityitem.motZ));
|
||||
if (!BlockDispenser.eventFired) {
|
||||
world.getServer().getPluginManager().callEvent(event);
|
||||
}
|
||||
@@ -61,14 +61,14 @@ public class DispenseBehaviorItem implements IDispenseBehavior {
|
||||
return false;
|
||||
}
|
||||
|
||||
entityitem.itemStack = CraftItemStack.createNMSItemStack(event.getItem());
|
||||
entityitem.itemStack = CraftItemStack.asNMSCopy(event.getItem());
|
||||
entityitem.motX = event.getVelocity().getX();
|
||||
entityitem.motY = event.getVelocity().getY();
|
||||
entityitem.motZ = event.getVelocity().getZ();
|
||||
|
||||
if (!event.getItem().equals(bukkitItem)) {
|
||||
if (!event.getItem().equals(craftItem)) {
|
||||
// Chain to handler for new item
|
||||
ItemStack eventStack = CraftItemStack.createNMSItemStack(event.getItem());
|
||||
ItemStack eventStack = CraftItemStack.asNMSCopy(event.getItem());
|
||||
IDispenseBehavior idispensebehavior = (IDispenseBehavior) BlockDispenser.a.a(eventStack.getItem());
|
||||
if (idispensebehavior != IDispenseBehavior.a && idispensebehavior.getClass() != DispenseBehaviorItem.class) {
|
||||
idispensebehavior.a(isourceblock, eventStack);
|
||||
|
||||
@@ -41,9 +41,9 @@ public class DispenseBehaviorMinecart extends DispenseBehaviorItem {
|
||||
// CraftBukkit start
|
||||
ItemStack itemstack1 = itemstack.a(1);
|
||||
org.bukkit.block.Block block = world.getWorld().getBlockAt(isourceblock.getBlockX(), isourceblock.getBlockY(), isourceblock.getBlockZ());
|
||||
org.bukkit.inventory.ItemStack bukkitItem = new CraftItemStack(itemstack1).clone();
|
||||
CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemstack1);
|
||||
|
||||
BlockDispenseEvent event = new BlockDispenseEvent(block, bukkitItem, new org.bukkit.util.Vector(d0, d1 + d3, d2));
|
||||
BlockDispenseEvent event = new BlockDispenseEvent(block, craftItem.clone(), new org.bukkit.util.Vector(d0, d1 + d3, d2));
|
||||
if (!BlockDispenser.eventFired) {
|
||||
world.getServer().getPluginManager().callEvent(event);
|
||||
}
|
||||
@@ -53,10 +53,10 @@ public class DispenseBehaviorMinecart extends DispenseBehaviorItem {
|
||||
return itemstack;
|
||||
}
|
||||
|
||||
if (!event.getItem().equals(bukkitItem)) {
|
||||
if (!event.getItem().equals(craftItem)) {
|
||||
itemstack.count++;
|
||||
// Chain to handler for new item
|
||||
ItemStack eventStack = CraftItemStack.createNMSItemStack(event.getItem());
|
||||
ItemStack eventStack = CraftItemStack.asNMSCopy(event.getItem());
|
||||
IDispenseBehavior idispensebehavior = (IDispenseBehavior) BlockDispenser.a.a(eventStack.getItem());
|
||||
if (idispensebehavior != IDispenseBehavior.a && idispensebehavior != this) {
|
||||
idispensebehavior.a(isourceblock, eventStack);
|
||||
@@ -64,7 +64,7 @@ public class DispenseBehaviorMinecart extends DispenseBehaviorItem {
|
||||
}
|
||||
}
|
||||
|
||||
itemstack1 = CraftItemStack.createNMSItemStack(event.getItem());
|
||||
itemstack1 = CraftItemStack.asNMSCopy(event.getItem());
|
||||
EntityMinecart entityminecart = new EntityMinecart(world, event.getVelocity().getX(), event.getVelocity().getY(), event.getVelocity().getZ(), ((ItemMinecart) itemstack1.getItem()).a);
|
||||
// CraftBukkit end
|
||||
|
||||
|
||||
@@ -23,9 +23,9 @@ public class DispenseBehaviorMonsterEgg extends DispenseBehaviorItem {
|
||||
World world = isourceblock.k();
|
||||
ItemStack itemstack1 = itemstack.a(1);
|
||||
org.bukkit.block.Block block = world.getWorld().getBlockAt(isourceblock.getBlockX(), isourceblock.getBlockY(), isourceblock.getBlockZ());
|
||||
org.bukkit.inventory.ItemStack bukkitItem = new CraftItemStack(itemstack1).clone();
|
||||
CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemstack1);
|
||||
|
||||
BlockDispenseEvent event = new BlockDispenseEvent(block, bukkitItem, new org.bukkit.util.Vector(d0, d1, d2));
|
||||
BlockDispenseEvent event = new BlockDispenseEvent(block, craftItem.clone(), new org.bukkit.util.Vector(d0, d1, d2));
|
||||
if (!BlockDispenser.eventFired) {
|
||||
world.getServer().getPluginManager().callEvent(event);
|
||||
}
|
||||
@@ -35,10 +35,10 @@ public class DispenseBehaviorMonsterEgg extends DispenseBehaviorItem {
|
||||
return itemstack;
|
||||
}
|
||||
|
||||
if (!event.getItem().equals(bukkitItem)) {
|
||||
if (!event.getItem().equals(craftItem)) {
|
||||
itemstack.count++;
|
||||
// Chain to handler for new item
|
||||
ItemStack eventStack = CraftItemStack.createNMSItemStack(event.getItem());
|
||||
ItemStack eventStack = CraftItemStack.asNMSCopy(event.getItem());
|
||||
IDispenseBehavior idispensebehavior = (IDispenseBehavior) BlockDispenser.a.a(eventStack.getItem());
|
||||
if (idispensebehavior != IDispenseBehavior.a && idispensebehavior != this) {
|
||||
idispensebehavior.a(isourceblock, eventStack);
|
||||
@@ -46,7 +46,7 @@ public class DispenseBehaviorMonsterEgg extends DispenseBehaviorItem {
|
||||
}
|
||||
}
|
||||
|
||||
itemstack1 = CraftItemStack.createNMSItemStack(event.getItem());
|
||||
itemstack1 = CraftItemStack.asNMSCopy(event.getItem());
|
||||
ItemMonsterEgg.a(isourceblock.k(), itemstack1.getData(), event.getVelocity().getX(), event.getVelocity().getY(), event.getVelocity().getZ());
|
||||
// itemstack.a(1); // Handled during event processing
|
||||
// CraftBukkit end
|
||||
|
||||
@@ -18,9 +18,9 @@ public abstract class DispenseBehaviorProjectile extends DispenseBehaviorItem {
|
||||
// CraftBukkit start
|
||||
ItemStack itemstack1 = itemstack.a(1);
|
||||
org.bukkit.block.Block block = world.getWorld().getBlockAt(isourceblock.getBlockX(), isourceblock.getBlockY(), isourceblock.getBlockZ());
|
||||
org.bukkit.inventory.ItemStack bukkitItem = new CraftItemStack(itemstack1).clone();
|
||||
CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemstack1);
|
||||
|
||||
BlockDispenseEvent event = new BlockDispenseEvent(block, bukkitItem, new org.bukkit.util.Vector((double) enumfacing.c(), 0.10000000149011612D, (double) enumfacing.e()));
|
||||
BlockDispenseEvent event = new BlockDispenseEvent(block, craftItem.clone(), new org.bukkit.util.Vector((double) enumfacing.c(), 0.10000000149011612D, (double) enumfacing.e()));
|
||||
if (!BlockDispenser.eventFired) {
|
||||
world.getServer().getPluginManager().callEvent(event);
|
||||
}
|
||||
@@ -30,13 +30,13 @@ public abstract class DispenseBehaviorProjectile extends DispenseBehaviorItem {
|
||||
return itemstack;
|
||||
}
|
||||
|
||||
if (!event.getItem().equals(bukkitItem)) {
|
||||
if (!event.getItem().equals(craftItem)) {
|
||||
itemstack.count++;
|
||||
// Chain to handler for new item
|
||||
ItemStack eventStack = CraftItemStack.createNMSItemStack(event.getItem());
|
||||
ItemStack eventStack = CraftItemStack.asNMSCopy(event.getItem());
|
||||
IDispenseBehavior idispensebehavior = (IDispenseBehavior) BlockDispenser.a.a(eventStack.getItem());
|
||||
if (idispensebehavior != IDispenseBehavior.a && idispensebehavior != this) {
|
||||
idispensebehavior.a(isourceblock, CraftItemStack.createNMSItemStack(event.getItem()));
|
||||
idispensebehavior.a(isourceblock, eventStack);
|
||||
return itemstack;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -88,9 +88,9 @@ public class EntityCow extends EntityAnimal {
|
||||
}
|
||||
|
||||
if (--itemstack.count <= 0) {
|
||||
entityhuman.inventory.setItem(entityhuman.inventory.itemInHandIndex, CraftItemStack.createNMSItemStack(event.getItemStack()));
|
||||
entityhuman.inventory.setItem(entityhuman.inventory.itemInHandIndex, CraftItemStack.asNMSCopy(event.getItemStack()));
|
||||
} else if (!entityhuman.inventory.pickup(new ItemStack(Item.MILK_BUCKET))) {
|
||||
entityhuman.drop(CraftItemStack.createNMSItemStack(event.getItemStack()));
|
||||
entityhuman.drop(CraftItemStack.asNMSCopy(event.getItemStack()));
|
||||
}
|
||||
// CraftBukkit end
|
||||
|
||||
|
||||
@@ -208,13 +208,13 @@ public class EntityGhast extends EntityFlying implements IMonster {
|
||||
int k;
|
||||
|
||||
if (j > 0) {
|
||||
loot.add(new CraftItemStack(Item.GHAST_TEAR.id, j));
|
||||
loot.add(CraftItemStack.asNewCraftStack(Item.GHAST_TEAR, j));
|
||||
}
|
||||
|
||||
j = this.random.nextInt(3) + this.random.nextInt(1 + i);
|
||||
|
||||
if (j > 0) {
|
||||
loot.add(new CraftItemStack(Item.SULPHUR.id, j));
|
||||
loot.add(CraftItemStack.asNewCraftStack(Item.SULPHUR, j));
|
||||
}
|
||||
|
||||
org.bukkit.craftbukkit.event.CraftEventFactory.callEntityDeathEvent(this, loot);
|
||||
|
||||
@@ -150,13 +150,13 @@ public class EntityIronGolem extends EntityGolem {
|
||||
int k;
|
||||
|
||||
if (j > 0) {
|
||||
loot.add(new CraftItemStack(Block.RED_ROSE.id, j));
|
||||
loot.add(CraftItemStack.asNewCraftStack(Item.byId[Block.RED_ROSE.id], j));
|
||||
}
|
||||
|
||||
k = 3 + this.random.nextInt(3);
|
||||
|
||||
if (k > 0) {
|
||||
loot.add(new CraftItemStack(Item.IRON_INGOT.id, k));
|
||||
loot.add(CraftItemStack.asNewCraftStack(Item.IRON_INGOT, k));
|
||||
}
|
||||
|
||||
org.bukkit.craftbukkit.event.CraftEventFactory.callEntityDeathEvent(this, loot);
|
||||
|
||||
@@ -894,7 +894,7 @@ public abstract class EntityLiving extends Entity {
|
||||
if (k < 5) {
|
||||
ItemStack itemstack = this.l(k <= 0 ? 1 : 0);
|
||||
if (itemstack != null) {
|
||||
loot.add(new org.bukkit.craftbukkit.inventory.CraftItemStack(itemstack));
|
||||
loot.add(org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(itemstack));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -188,7 +188,7 @@ public class EntityMinecart extends Entity implements IInventory {
|
||||
|
||||
itemstack.count -= k;
|
||||
// CraftBukkit - include enchantments in the new itemstack
|
||||
EntityItem entityitem = new EntityItem(this.world, this.locX + (double) f, this.locY + (double) f1, this.locZ + (double) f2, new ItemStack(itemstack.id, k, itemstack.getData(), itemstack.getEnchantments()));
|
||||
EntityItem entityitem = new EntityItem(this.world, this.locX + (double) f, this.locY + (double) f1, this.locZ + (double) f2, org.bukkit.craftbukkit.inventory.CraftItemStack.copyNMSStack(itemstack, k));
|
||||
float f3 = 0.05F;
|
||||
|
||||
entityitem.motX = (double) ((float) this.random.nextGaussian() * f3);
|
||||
|
||||
@@ -117,13 +117,13 @@ public class EntityPigZombie extends EntityZombie {
|
||||
int j = this.random.nextInt(2 + i);
|
||||
|
||||
if (j > 0) {
|
||||
loot.add(new CraftItemStack(Item.ROTTEN_FLESH.id, j));
|
||||
loot.add(CraftItemStack.asNewCraftStack(Item.ROTTEN_FLESH, j));
|
||||
}
|
||||
|
||||
j = this.random.nextInt(2 + i);
|
||||
|
||||
if (j > 0) {
|
||||
loot.add(new CraftItemStack(Item.GOLD_NUGGET.id, j));
|
||||
loot.add(CraftItemStack.asNewCraftStack(Item.GOLD_NUGGET, j));
|
||||
}
|
||||
|
||||
// Determine rare item drops and add them to the loot
|
||||
@@ -133,7 +133,7 @@ public class EntityPigZombie extends EntityZombie {
|
||||
if (k < 5) {
|
||||
ItemStack itemstack = this.l(k <= 0 ? 1 : 0);
|
||||
if (itemstack != null) {
|
||||
loot.add(new CraftItemStack(itemstack));
|
||||
loot.add(CraftItemStack.asCraftMirror(itemstack));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -240,13 +240,13 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
||||
if (!keepInventory) {
|
||||
for (int i = 0; i < this.inventory.items.length; ++i) {
|
||||
if (this.inventory.items[i] != null) {
|
||||
loot.add(new CraftItemStack(this.inventory.items[i]));
|
||||
loot.add(CraftItemStack.asCraftMirror(this.inventory.items[i]));
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < this.inventory.armor.length; ++i) {
|
||||
if (this.inventory.armor[i] != null) {
|
||||
loot.add(new CraftItemStack(this.inventory.armor[i]));
|
||||
loot.add(CraftItemStack.asCraftMirror(this.inventory.armor[i]));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -167,7 +167,7 @@ public class EntitySkeleton extends EntityMonster implements IRangedEntity {
|
||||
if (k < 5) {
|
||||
ItemStack itemstack = this.l(k <= 0 ? 1 : 0);
|
||||
if (itemstack != null) {
|
||||
loot.add(new org.bukkit.craftbukkit.inventory.CraftItemStack(itemstack));
|
||||
loot.add(org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(itemstack));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,13 +56,13 @@ public class ItemBucket extends Item {
|
||||
return itemstack;
|
||||
}
|
||||
|
||||
ItemStack result = CraftItemStack.createNMSItemStack(event.getItemStack()); // CraftBukkit - TODO: Check this stuff later... Not sure how this behavior should work
|
||||
ItemStack result = CraftItemStack.asNMSCopy(event.getItemStack()); // CraftBukkit - TODO: Check this stuff later... Not sure how this behavior should work
|
||||
if (--itemstack.count <= 0) {
|
||||
return result; // CraftBukkit
|
||||
}
|
||||
|
||||
if (!entityhuman.inventory.pickup(result)) { // CraftBukkit
|
||||
entityhuman.drop(CraftItemStack.createNMSItemStack(event.getItemStack())); // CraftBukkit
|
||||
entityhuman.drop(CraftItemStack.asNMSCopy(event.getItemStack())); // CraftBukkit
|
||||
}
|
||||
|
||||
return itemstack;
|
||||
@@ -81,13 +81,13 @@ public class ItemBucket extends Item {
|
||||
return itemstack;
|
||||
}
|
||||
|
||||
ItemStack result = CraftItemStack.createNMSItemStack(event.getItemStack()); // CraftBukkit - TODO: Check this stuff later... Not sure how this behavior should work
|
||||
ItemStack result = CraftItemStack.asNMSCopy(event.getItemStack()); // CraftBukkit - TODO: Check this stuff later... Not sure how this behavior should work
|
||||
if (--itemstack.count <= 0) {
|
||||
return result; // CraftBukkit
|
||||
}
|
||||
|
||||
if (!entityhuman.inventory.pickup(result)) { // CraftBukkit
|
||||
entityhuman.drop(CraftItemStack.createNMSItemStack(event.getItemStack())); // CraftBukkit
|
||||
entityhuman.drop(CraftItemStack.asNMSCopy(event.getItemStack())); // CraftBukkit
|
||||
}
|
||||
|
||||
return itemstack;
|
||||
@@ -101,7 +101,7 @@ public class ItemBucket extends Item {
|
||||
return itemstack;
|
||||
}
|
||||
|
||||
return CraftItemStack.createNMSItemStack(event.getItemStack());
|
||||
return CraftItemStack.asNMSCopy(event.getItemStack());
|
||||
}
|
||||
|
||||
int clickedX = i, clickedY = j, clickedZ = k;
|
||||
@@ -144,7 +144,7 @@ public class ItemBucket extends Item {
|
||||
// CraftBukkit end
|
||||
|
||||
if (this.a(world, d0, d1, d2, i, j, k) && !entityhuman.abilities.canInstantlyBuild) {
|
||||
return CraftItemStack.createNMSItemStack(event.getItemStack()); // CraftBukkit
|
||||
return CraftItemStack.asNMSCopy(event.getItemStack()); // CraftBukkit
|
||||
}
|
||||
}
|
||||
} else if (this.a == 0 && movingobjectposition.entity instanceof EntityCow) {
|
||||
@@ -156,7 +156,7 @@ public class ItemBucket extends Item {
|
||||
return itemstack;
|
||||
}
|
||||
|
||||
return CraftItemStack.createNMSItemStack(event.getItemStack());
|
||||
return CraftItemStack.asNMSCopy(event.getItemStack());
|
||||
// CraftBukkit end
|
||||
}
|
||||
|
||||
|
||||
@@ -41,21 +41,6 @@ public final class ItemStack {
|
||||
this.setData(k); // CraftBukkit
|
||||
}
|
||||
|
||||
// CraftBukkit start - used to create a new ItemStack, specifying the enchantments at time of creation.
|
||||
public ItemStack(int id, int count, int data, NBTTagList enchantments) {
|
||||
this(id, count, data);
|
||||
// taken from .addEnchantment
|
||||
if (enchantments != null && Item.byId[this.id].getMaxStackSize() == 1) {
|
||||
if (this.tag == null) {
|
||||
this.setTag(new NBTTagCompound());
|
||||
}
|
||||
|
||||
this.tag.set("ench", enchantments.clone()); // modify this part to use passed in enchantments list
|
||||
// TODO Books, Skulls, Item Names, Item Lore
|
||||
}
|
||||
}
|
||||
// CraftBukkit end
|
||||
|
||||
public static ItemStack a(NBTTagCompound nbttagcompound) {
|
||||
ItemStack itemstack = new ItemStack();
|
||||
|
||||
|
||||
@@ -35,13 +35,9 @@ public class NBTTagCompound extends NBTBase {
|
||||
} catch (java.io.IOException ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
// CraftBukkit end
|
||||
}
|
||||
|
||||
public void remove(String name) {
|
||||
map.remove(name);
|
||||
}
|
||||
// CraftBukkit end
|
||||
|
||||
void load(DataInput datainput) {
|
||||
this.map.clear();
|
||||
|
||||
|
||||
@@ -1230,11 +1230,11 @@ public class NetServerHandler extends NetHandler {
|
||||
if (cursor == null) {
|
||||
this.player.inventory.setCarried((ItemStack) null);
|
||||
} else {
|
||||
this.player.inventory.setCarried(CraftItemStack.createNMSItemStack(cursor));
|
||||
this.player.inventory.setCarried(CraftItemStack.asNMSCopy(cursor));
|
||||
}
|
||||
org.bukkit.inventory.ItemStack item = event.getCurrentItem();
|
||||
if (item != null) {
|
||||
itemstack = CraftItemStack.createNMSItemStack(item);
|
||||
itemstack = CraftItemStack.asNMSCopy(item);
|
||||
if (packet102windowclick.slot == -999) {
|
||||
this.player.drop(itemstack);
|
||||
} else {
|
||||
@@ -1307,16 +1307,16 @@ public class NetServerHandler extends NetHandler {
|
||||
if (item == null) {
|
||||
this.player.defaultContainer.setItem(packet107setcreativeslot.slot, (ItemStack) null);
|
||||
} else {
|
||||
this.player.defaultContainer.setItem(packet107setcreativeslot.slot, CraftItemStack.createNMSItemStack(item));
|
||||
this.player.defaultContainer.setItem(packet107setcreativeslot.slot, CraftItemStack.asNMSCopy(item));
|
||||
}
|
||||
} else if (item != null) {
|
||||
this.player.drop(CraftItemStack.createNMSItemStack(item));
|
||||
this.player.drop(CraftItemStack.asNMSCopy(item));
|
||||
}
|
||||
return;
|
||||
case DENY:
|
||||
// TODO: Will this actually work?
|
||||
if (packet107setcreativeslot.slot > -1) {
|
||||
this.player.netServerHandler.sendPacket(new Packet103SetSlot(this.player.defaultContainer.windowId, packet107setcreativeslot.slot, CraftItemStack.createNMSItemStack(item)));
|
||||
this.player.netServerHandler.sendPacket(new Packet103SetSlot(this.player.defaultContainer.windowId, packet107setcreativeslot.slot, CraftItemStack.asNMSCopy(item)));
|
||||
}
|
||||
return;
|
||||
case DEFAULT:
|
||||
|
||||
@@ -23,7 +23,7 @@ public class ShapedRecipes implements IRecipe {
|
||||
|
||||
// CraftBukkit start
|
||||
public org.bukkit.inventory.ShapedRecipe toBukkitRecipe() {
|
||||
CraftItemStack result = new CraftItemStack(this.result);
|
||||
CraftItemStack result = CraftItemStack.asCraftMirror(this.result);
|
||||
CraftShapedRecipe recipe = new CraftShapedRecipe(result, this);
|
||||
switch (this.height) {
|
||||
case 1:
|
||||
|
||||
@@ -22,7 +22,7 @@ public class ShapelessRecipes implements IRecipe {
|
||||
// CraftBukkit start
|
||||
@SuppressWarnings("unchecked")
|
||||
public org.bukkit.inventory.ShapelessRecipe toBukkitRecipe() {
|
||||
CraftItemStack result = new CraftItemStack(this.result);
|
||||
CraftItemStack result = CraftItemStack.asCraftMirror(this.result);
|
||||
CraftShapelessRecipe recipe = new CraftShapelessRecipe(result, this);
|
||||
for (ItemStack stack : (List<ItemStack>) this.ingredients) {
|
||||
if (stack != null) {
|
||||
|
||||
@@ -172,7 +172,7 @@ public class TileEntityFurnace extends TileEntity implements IInventory {
|
||||
if (!this.world.isStatic) {
|
||||
// CraftBukkit start - handle multiple elapsed ticks
|
||||
if (this.burnTime <= 0 && this.canBurn() && this.items[1] != null) { // CraftBukkit - == to <=
|
||||
CraftItemStack fuel = new CraftItemStack(this.items[1]);
|
||||
CraftItemStack fuel = CraftItemStack.asCraftMirror(this.items[1]);
|
||||
|
||||
FurnaceBurnEvent furnaceBurnEvent = new FurnaceBurnEvent(this.world.getWorld().getBlockAt(this.x, this.y, this.z), fuel, fuelTime(this.items[1]));
|
||||
this.world.getServer().getPluginManager().callEvent(furnaceBurnEvent);
|
||||
@@ -237,8 +237,8 @@ public class TileEntityFurnace extends TileEntity implements IInventory {
|
||||
ItemStack itemstack = RecipesFurnace.getInstance().getResult(this.items[0].getItem().id);
|
||||
|
||||
// CraftBukkit start
|
||||
CraftItemStack source = new CraftItemStack(this.items[0]);
|
||||
CraftItemStack result = new CraftItemStack(itemstack.cloneItemStack());
|
||||
CraftItemStack source = CraftItemStack.asCraftMirror(this.items[0]);
|
||||
CraftItemStack result = CraftItemStack.asCraftMirror(itemstack.cloneItemStack());
|
||||
|
||||
FurnaceSmeltEvent furnaceSmeltEvent = new FurnaceSmeltEvent(this.world.getWorld().getBlockAt(this.x, this.y, this.z), source, result);
|
||||
this.world.getServer().getPluginManager().callEvent(furnaceSmeltEvent);
|
||||
@@ -247,7 +247,7 @@ public class TileEntityFurnace extends TileEntity implements IInventory {
|
||||
return;
|
||||
}
|
||||
|
||||
itemstack = CraftItemStack.createNMSItemStack(furnaceSmeltEvent.getResult());
|
||||
itemstack = CraftItemStack.asNMSCopy(furnaceSmeltEvent.getResult());
|
||||
|
||||
if (this.items[2] == null) {
|
||||
this.items[2] = itemstack.cloneItemStack();
|
||||
|
||||
Reference in New Issue
Block a user