/** * Only used in Vanilla. The Forge version is much different. Basically, this accepts the various * "objects" needed to work for an armor piece to be "damaged". * * <p>This is also where we can likely throw a damage item event. * * @param entity * @param damageSource * @param modifier * @param damage */ public static void acceptArmorModifier( EntityLivingBase entity, DamageSource damageSource, DamageModifier modifier, double damage) { Optional<DamageObject> property = modifier.getCause().first(DamageObject.class); final net.minecraft.item.ItemStack[] inventory = entity instanceof EntityPlayer ? ((EntityPlayer) entity).inventory.armorInventory : entity.getInventory(); if (property.isPresent()) { damage = Math.abs(damage) * 25; net.minecraft.item.ItemStack stack = inventory[property.get().slot]; int itemDamage = (int) (damage / 25D < 1 ? 1 : damage / 25D); stack.damageItem(itemDamage, entity); if (stack.stackSize <= 0) { inventory[property.get().slot] = null; } } }