Changed it so that the Mending enchantment consumes the EXP before the Tome of Peritia does

This commit is contained in:
WayofTime 2016-04-29 19:55:23 -04:00
parent 172cf86348
commit aba4332699
3 changed files with 28 additions and 1 deletions

View file

@ -33,6 +33,13 @@ public class ItemExperienceBook extends Item implements IVariantProvider
setCreativeTab(BloodMagic.tabBloodMagic);
}
@Override
@SideOnly(Side.CLIENT)
public boolean hasEffect(ItemStack stack)
{
return true;
}
@Override
@SideOnly(Side.CLIENT)
public void addInformation(ItemStack stack, EntityPlayer player, List<String> tooltip, boolean advanced)

View file

@ -841,7 +841,7 @@ public class EventHandler
}
}
@SubscribeEvent
@SubscribeEvent(priority = EventPriority.LOWEST)
public void onExperiencePickup(PlayerPickupXpEvent event)
{
EntityPlayer player = event.getEntityPlayer();
@ -866,6 +866,15 @@ public class EventHandler
}
}
ItemStack itemstack = EnchantmentHelper.getEnchantedItem(Enchantments.MENDING, player);
if (itemstack != null && itemstack.isItemDamaged())
{
int i = Math.min(xpToDurability(event.getOrb().xpValue), itemstack.getItemDamage());
event.getOrb().xpValue -= durabilityToXp(i);
itemstack.setItemDamage(itemstack.getItemDamage() - i);
}
if (!player.worldObj.isRemote)
{
for (ItemStack stack : player.inventory.mainInventory)
@ -879,4 +888,14 @@ public class EventHandler
}
}
}
private int xpToDurability(int xp)
{
return xp * 2;
}
private int durabilityToXp(int durability)
{
return durability / 2;
}
}