Fix Thorns enchantment bypassing ISpecialArmor.damageArmor function. Closes #2463
This commit is contained in:
parent
2f5f9968e4
commit
5d2b8438c9
1 changed files with 43 additions and 0 deletions
|
@ -0,0 +1,43 @@
|
|||
--- ../src-base/minecraft/net/minecraft/enchantment/EnchantmentThorns.java
|
||||
+++ ../src-work/minecraft/net/minecraft/enchantment/EnchantmentThorns.java
|
||||
@@ -51,12 +51,12 @@
|
||||
|
||||
if (itemstack != null)
|
||||
{
|
||||
- itemstack.func_77972_a(3, p_151367_1_);
|
||||
+ damageArmor(itemstack, 3, p_151367_1_);
|
||||
}
|
||||
}
|
||||
else if (itemstack != null)
|
||||
{
|
||||
- itemstack.func_77972_a(1, p_151367_1_);
|
||||
+ damageArmor(itemstack, 1, p_151367_1_);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -69,4 +69,25 @@
|
||||
{
|
||||
return p_92095_0_ > 10 ? p_92095_0_ - 10 : 1 + p_92095_1_.nextInt(4);
|
||||
}
|
||||
+
|
||||
+ private void damageArmor(ItemStack stack, int amount, EntityLivingBase entity)
|
||||
+ {
|
||||
+ int slot = -1;
|
||||
+ int x = 0;
|
||||
+ for (ItemStack i : entity.func_184193_aE())
|
||||
+ {
|
||||
+ if (i == stack){
|
||||
+ slot = x;
|
||||
+ break;
|
||||
+ }
|
||||
+ x++;
|
||||
+ }
|
||||
+ if (slot == -1 || !(stack.func_77973_b() instanceof net.minecraftforge.common.ISpecialArmor))
|
||||
+ {
|
||||
+ stack.func_77972_a(1, entity);
|
||||
+ return;
|
||||
+ }
|
||||
+ net.minecraftforge.common.ISpecialArmor armor = (net.minecraftforge.common.ISpecialArmor)stack.func_77973_b();
|
||||
+ armor.damageArmor(entity, stack, DamageSource.func_92087_a(entity), amount, slot);
|
||||
+ }
|
||||
}
|
Loading…
Reference in a new issue