diff options
Diffstat (limited to 'src/main/java/net/minecraft/server/DispenseBehaviorArmor.java')
-rw-r--r-- | src/main/java/net/minecraft/server/DispenseBehaviorArmor.java | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/main/java/net/minecraft/server/DispenseBehaviorArmor.java b/src/main/java/net/minecraft/server/DispenseBehaviorArmor.java new file mode 100644 index 00000000..06e77b62 --- /dev/null +++ b/src/main/java/net/minecraft/server/DispenseBehaviorArmor.java @@ -0,0 +1,32 @@ +package net.minecraft.server; + +import java.util.List; + +final class DispenseBehaviorArmor extends DispenseBehaviorItem { + + DispenseBehaviorArmor() {} + + protected ItemStack b(ISourceBlock isourceblock, ItemStack itemstack) { + EnumFacing enumfacing = BlockDispenser.j_(isourceblock.h()); + int i = isourceblock.getBlockX() + enumfacing.c(); + int j = isourceblock.getBlockY() + enumfacing.d(); + int k = isourceblock.getBlockZ() + enumfacing.e(); + AxisAlignedBB axisalignedbb = AxisAlignedBB.a().a((double) i, (double) j, (double) k, (double) (i + 1), (double) (j + 1), (double) (k + 1)); + List list = isourceblock.k().a(EntityLiving.class, axisalignedbb, (IEntitySelector) (new EntitySelectorEquipable(itemstack))); + + if (list.size() > 0) { + EntityLiving entityliving = (EntityLiving) list.get(0); + int l = entityliving instanceof EntityHuman ? 1 : 0; + int i1 = EntityLiving.b(itemstack); + ItemStack itemstack1 = itemstack.cloneItemStack(); + + itemstack1.count = 1; + entityliving.setEquipment(i1 - l, itemstack1); + entityliving.a(i1, 2.0F); + --itemstack.count; + return itemstack; + } else { + return super.b(isourceblock, itemstack); + } + } +} |