diff --git a/nms-patches/net/minecraft/world/entity/EntityLiving.patch b/nms-patches/net/minecraft/world/entity/EntityLiving.patch index bb4d87ee7..47047e8e2 100644 --- a/nms-patches/net/minecraft/world/entity/EntityLiving.patch +++ b/nms-patches/net/minecraft/world/entity/EntityLiving.patch @@ -37,10 +37,12 @@ public abstract class EntityLiving extends Entity implements Attackable { private static final Logger LOGGER = LogUtils.getLogger(); -@@ -246,6 +276,19 @@ +@@ -245,7 +275,20 @@ + protected BehaviorController brain; protected boolean skipDropExperience; private final EnumMap>> activeLocationDependentEnchantments; - protected final EntityEquipment equipment; +- protected final EntityEquipment equipment; ++ public final EntityEquipment equipment; + // CraftBukkit start + public int expToDrop; + public ArrayList drops = new ArrayList(); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractHorse.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractHorse.java index 58f9f27fd..7ab0ca5f8 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractHorse.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractHorse.java @@ -111,6 +111,6 @@ public abstract class CraftAbstractHorse extends CraftAnimals implements Abstrac @Override public AbstractHorseInventory getInventory() { - return new CraftInventoryAbstractHorse(getHandle().inventory); + return new CraftInventoryAbstractHorse(getHandle().inventory, getHandle().equipment); } } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHorse.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHorse.java index cbe461cd9..6ffe46476 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHorse.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHorse.java @@ -1,7 +1,6 @@ package org.bukkit.craftbukkit.entity; import com.google.common.base.Preconditions; -import net.minecraft.world.entity.EnumItemSlot; import net.minecraft.world.entity.animal.horse.EntityHorse; import net.minecraft.world.entity.animal.horse.HorseColor; import net.minecraft.world.entity.animal.horse.HorseStyle; @@ -60,7 +59,7 @@ public class CraftHorse extends CraftAbstractHorse implements Horse { @Override public HorseInventory getInventory() { - return new CraftInventoryHorse(getHandle().inventory, getHandle().createEquipmentSlotContainer(EnumItemSlot.BODY)); + return new CraftInventoryHorse(getHandle().inventory, getHandle().equipment); } @Override diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLlama.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLlama.java index b9953f55a..cb9881240 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLlama.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLlama.java @@ -1,7 +1,6 @@ package org.bukkit.craftbukkit.entity; import com.google.common.base.Preconditions; -import net.minecraft.world.entity.EnumItemSlot; import net.minecraft.world.entity.animal.horse.EntityLlama; import org.bukkit.craftbukkit.CraftServer; import org.bukkit.craftbukkit.inventory.CraftInventoryLlama; @@ -35,7 +34,7 @@ public class CraftLlama extends CraftChestedHorse implements Llama { @Override public LlamaInventory getInventory() { - return new CraftInventoryLlama(getHandle().inventory, getHandle().createEquipmentSlotContainer(EnumItemSlot.BODY)); + return new CraftInventoryLlama(getHandle().inventory, getHandle().equipment); } @Override diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryAbstractHorse.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryAbstractHorse.java index add8d95b9..adb91ab22 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryAbstractHorse.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryAbstractHorse.java @@ -1,22 +1,28 @@ package org.bukkit.craftbukkit.inventory; import net.minecraft.world.IInventory; +import net.minecraft.world.entity.EntityEquipment; +import net.minecraft.world.entity.EnumItemSlot; import org.bukkit.inventory.AbstractHorseInventory; import org.bukkit.inventory.ItemStack; public class CraftInventoryAbstractHorse extends CraftInventory implements AbstractHorseInventory { - public CraftInventoryAbstractHorse(IInventory inventory) { + protected final EntityEquipment equipment; + + public CraftInventoryAbstractHorse(IInventory inventory, EntityEquipment equipment) { super(inventory); + this.equipment = equipment; } @Override public ItemStack getSaddle() { - return getItem(0); + net.minecraft.world.item.ItemStack item = equipment.get(EnumItemSlot.SADDLE); + return item.isEmpty() ? null : CraftItemStack.asCraftMirror(item); } @Override public void setSaddle(ItemStack stack) { - setItem(0, stack); + equipment.set(EnumItemSlot.SADDLE, CraftItemStack.asNMSCopy(stack)); } } diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryHorse.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryHorse.java index 478ac8cb8..63c4ba368 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryHorse.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryHorse.java @@ -1,26 +1,25 @@ package org.bukkit.craftbukkit.inventory; import net.minecraft.world.IInventory; +import net.minecraft.world.entity.EntityEquipment; +import net.minecraft.world.entity.EnumItemSlot; import org.bukkit.inventory.HorseInventory; import org.bukkit.inventory.ItemStack; public class CraftInventoryHorse extends CraftInventoryAbstractHorse implements HorseInventory { - private final IInventory bodyArmorInventory; - - public CraftInventoryHorse(IInventory inventory, IInventory bodyArmorInventory) { - super(inventory); - this.bodyArmorInventory = bodyArmorInventory; + public CraftInventoryHorse(IInventory inventory, EntityEquipment equipment) { + super(inventory, equipment); } @Override public ItemStack getArmor() { - net.minecraft.world.item.ItemStack item = bodyArmorInventory.getItem(0); + net.minecraft.world.item.ItemStack item = equipment.get(EnumItemSlot.BODY); return item.isEmpty() ? null : CraftItemStack.asCraftMirror(item); } @Override public void setArmor(ItemStack stack) { - bodyArmorInventory.setItem(0, CraftItemStack.asNMSCopy(stack)); + equipment.set(EnumItemSlot.BODY, CraftItemStack.asNMSCopy(stack)); } } diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryLlama.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryLlama.java index 729b33469..424cc86a1 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryLlama.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryLlama.java @@ -1,26 +1,25 @@ package org.bukkit.craftbukkit.inventory; import net.minecraft.world.IInventory; +import net.minecraft.world.entity.EntityEquipment; +import net.minecraft.world.entity.EnumItemSlot; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.LlamaInventory; public class CraftInventoryLlama extends CraftInventoryAbstractHorse implements LlamaInventory { - private final IInventory bodyArmorInventory; - - public CraftInventoryLlama(IInventory inventory, IInventory bodyArmorInventory) { - super(inventory); - this.bodyArmorInventory = bodyArmorInventory; + public CraftInventoryLlama(IInventory inventory, EntityEquipment equipment) { + super(inventory, equipment); } @Override public ItemStack getDecor() { - net.minecraft.world.item.ItemStack item = bodyArmorInventory.getItem(0); + net.minecraft.world.item.ItemStack item = equipment.get(EnumItemSlot.BODY); return item.isEmpty() ? null : CraftItemStack.asCraftMirror(item); } @Override public void setDecor(ItemStack stack) { - bodyArmorInventory.setItem(0, CraftItemStack.asNMSCopy(stack)); + equipment.set(EnumItemSlot.BODY, CraftItemStack.asNMSCopy(stack)); } }