From aba43326991309a07b6e6ccfa1ad0ab638c7646d Mon Sep 17 00:00:00 2001 From: WayofTime Date: Fri, 29 Apr 2016 19:55:23 -0400 Subject: [PATCH] Changed it so that the Mending enchantment consumes the EXP before the Tome of Peritia does --- changelog.txt | 1 + .../bloodmagic/item/ItemExperienceBook.java | 7 +++++++ .../bloodmagic/util/handler/EventHandler.java | 21 ++++++++++++++++++- 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index 3f6184d6..5d8c69b8 100644 --- a/changelog.txt +++ b/changelog.txt @@ -4,6 +4,7 @@ Version 2.0.0-35 - Changed Living Armour so that it is now damagable. The Living Armour Chestplate will be damaged, but will not break. If it gets to ~0 durability, it will damage your LP network heavily. - Living Armour is now repairable in an anvil with Binding Reagent. - Started adding in the Alchemy Table... not really started. +- Changed it so that the Mending enchantment consumes the EXP before the Tome of Peritia does ------------------------------------------------------ Version 2.0.0-34 diff --git a/src/main/java/WayofTime/bloodmagic/item/ItemExperienceBook.java b/src/main/java/WayofTime/bloodmagic/item/ItemExperienceBook.java index 33f4fc5d..f1b24a30 100644 --- a/src/main/java/WayofTime/bloodmagic/item/ItemExperienceBook.java +++ b/src/main/java/WayofTime/bloodmagic/item/ItemExperienceBook.java @@ -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 tooltip, boolean advanced) diff --git a/src/main/java/WayofTime/bloodmagic/util/handler/EventHandler.java b/src/main/java/WayofTime/bloodmagic/util/handler/EventHandler.java index 0a8fbcce..c4e9fcf1 100644 --- a/src/main/java/WayofTime/bloodmagic/util/handler/EventHandler.java +++ b/src/main/java/WayofTime/bloodmagic/util/handler/EventHandler.java @@ -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; + } }