From aa008dff0f9bedbe88e1fe79831776b0a52eb90a Mon Sep 17 00:00:00 2001 From: md_5 Date: Tue, 1 Mar 2016 08:32:46 +1100 Subject: Update to Minecraft 1.9 --- nms-patches/ItemArmor.patch | 81 ++++++++++++++++++++++----------------------- 1 file changed, 40 insertions(+), 41 deletions(-) (limited to 'nms-patches/ItemArmor.patch') diff --git a/nms-patches/ItemArmor.patch b/nms-patches/ItemArmor.patch index e6beb5ee..4750c060 100644 --- a/nms-patches/ItemArmor.patch +++ b/nms-patches/ItemArmor.patch @@ -1,8 +1,8 @@ --- a/net/minecraft/server/ItemArmor.java +++ b/net/minecraft/server/ItemArmor.java -@@ -3,6 +3,11 @@ - import com.google.common.base.Predicates; +@@ -5,6 +5,11 @@ import java.util.List; + import java.util.UUID; +// CraftBukkit start +import org.bukkit.craftbukkit.inventory.CraftItemStack; @@ -11,49 +11,48 @@ + public class ItemArmor extends Item { - private static final int[] k = new int[] { 11, 16, 15, 13}; -@@ -20,7 +25,34 @@ - EntityLiving entityliving = (EntityLiving) list.get(0); - int l = entityliving instanceof EntityHuman ? 1 : 0; - int i1 = EntityInsentient.c(itemstack); -- ItemStack itemstack1 = itemstack.cloneItemStack(); + private static final int[] m = new int[] { 13, 15, 16, 11}; +@@ -35,7 +40,33 @@ + } else { + EntityLiving entityliving = (EntityLiving) list.get(0); + EnumItemSlot enumitemslot = EntityInsentient.d(itemstack); +- ItemStack itemstack1 = itemstack.cloneItemStack(); ++ // CraftBukkit start ++ ItemStack itemstack1 = itemstack.cloneAndSubtract(1); ++ World world = isourceblock.getWorld(); ++ org.bukkit.block.Block block = world.getWorld().getBlockAt(isourceblock.getBlockPosition().getX(), isourceblock.getBlockPosition().getY(), isourceblock.getBlockPosition().getZ()); ++ CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemstack1); + -+ // CraftBukkit start -+ ItemStack itemstack1 = itemstack.cloneAndSubtract(1); -+ World world = isourceblock.getWorld(); -+ org.bukkit.block.Block block = world.getWorld().getBlockAt(isourceblock.getBlockPosition().getX(), isourceblock.getBlockPosition().getY(), isourceblock.getBlockPosition().getZ()); -+ CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemstack1); ++ BlockDispenseEvent event = new BlockDispenseEvent(block, craftItem.clone(), new org.bukkit.util.Vector(0, 0, 0)); ++ if (!BlockDispenser.eventFired) { ++ world.getServer().getPluginManager().callEvent(event); ++ } + -+ BlockDispenseEvent event = new BlockDispenseEvent(block, craftItem.clone(), new org.bukkit.util.Vector(0, 0, 0)); -+ if (!BlockDispenser.eventFired) { -+ world.getServer().getPluginManager().callEvent(event); -+ } ++ if (event.isCancelled()) { ++ itemstack.count++; ++ return itemstack; ++ } + -+ if (event.isCancelled()) { -+ itemstack.count++; ++ if (!event.getItem().equals(craftItem)) { ++ itemstack.count++; ++ // Chain to handler for new item ++ ItemStack eventStack = CraftItemStack.asNMSCopy(event.getItem()); ++ IDispenseBehavior idispensebehavior = (IDispenseBehavior) BlockDispenser.REGISTRY.get(eventStack.getItem()); ++ if (idispensebehavior != IDispenseBehavior.NONE && idispensebehavior != ItemArmor.b) { ++ idispensebehavior.a(isourceblock, eventStack); + return itemstack; + } -+ -+ if (!event.getItem().equals(craftItem)) { -+ itemstack.count++; -+ // Chain to handler for new item -+ ItemStack eventStack = CraftItemStack.asNMSCopy(event.getItem()); -+ IDispenseBehavior idispensebehavior = (IDispenseBehavior) BlockDispenser.REGISTRY.get(eventStack.getItem()); -+ if (idispensebehavior != IDispenseBehavior.NONE && idispensebehavior != this) { -+ idispensebehavior.a(isourceblock, eventStack); -+ return itemstack; -+ } -+ } -+ // CraftBukkit end ++ } ++ // CraftBukkit end - itemstack1.count = 1; - entityliving.setEquipment(i1 - l, itemstack1); -@@ -28,7 +60,7 @@ - ((EntityInsentient) entityliving).a(i1, 2.0F); - } + itemstack1.count = 1; + entityliving.setSlot(enumitemslot, itemstack1); +@@ -43,7 +74,7 @@ + ((EntityInsentient) entityliving).a(enumitemslot, 2.0F); + } -- --itemstack.count; -+ // --itemstack.count; // CraftBukkit - handled above - return itemstack; - } else { - return super.b(isourceblock, itemstack); +- --itemstack.count; ++ // --itemstack.count; // CraftBukkit - handled above + return itemstack; + } + } -- cgit v1.2.3