From eceb041fab5292fc05bbecefcf319210ccadbcf1 Mon Sep 17 00:00:00 2001
From: WayofTime <wtime@live.ca>
Date: Sun, 7 Aug 2016 20:53:00 -0400
Subject: [PATCH] Fixed Quick Feet, Elytra, and the jumping one (lol) on
 servers

---
 .../item/armour/ItemLivingArmour.java         | 29 +++++++++++++++----
 .../handler/event/LivingArmourHandler.java    |  4 +--
 2 files changed, 26 insertions(+), 7 deletions(-)

diff --git a/src/main/java/WayofTime/bloodmagic/item/armour/ItemLivingArmour.java b/src/main/java/WayofTime/bloodmagic/item/armour/ItemLivingArmour.java
index 4af14de2..24721d71 100644
--- a/src/main/java/WayofTime/bloodmagic/item/armour/ItemLivingArmour.java
+++ b/src/main/java/WayofTime/bloodmagic/item/armour/ItemLivingArmour.java
@@ -275,18 +275,22 @@ public class ItemLivingArmour extends ItemArmor implements ISpecialArmor, IMeshP
                     if (Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) && Keyboard.isKeyDown(Keyboard.KEY_M))
                     {
                         StatTracker tracker = null;
-                        for (StatTracker searchTracker : armour.trackerMap.values()) {
-                            if (searchTracker != null && searchTracker.providesUpgrade(upgrade.getUniqueIdentifier())) {
+                        for (StatTracker searchTracker : armour.trackerMap.values())
+                        {
+                            if (searchTracker != null && searchTracker.providesUpgrade(upgrade.getUniqueIdentifier()))
+                            {
                                 tracker = searchTracker;
                                 break;
                             }
                         }
 
-                        if (tracker != null) {
+                        if (tracker != null)
+                        {
                             double progress = tracker.getProgress(armour, upgrade.getUpgradeLevel());
                             tooltip.add(TextHelper.localize("tooltip.BloodMagic.livingArmour.upgrade.progress", TextHelper.localize(upgrade.getUnlocalizedName()), MathHelper.clamp_int((int) (progress * 100D), 0, 100)));
                         }
-                    } else {
+                    } else
+                    {
                         tooltip.add(TextHelper.localize("tooltip.BloodMagic.livingArmour.upgrade.level", TextHelper.localize(upgrade.getUnlocalizedName()), upgrade.getUpgradeLevel() + 1));
                     }
                 }
@@ -328,7 +332,7 @@ public class ItemLivingArmour extends ItemArmor implements ISpecialArmor, IMeshP
                     if (LivingArmour.hasFullSet(player))
                     {
                         ItemStack chestStack = player.getItemStackFromSlot(EntityEquipmentSlot.CHEST);
-                        LivingArmourUpgrade upgrade = ItemLivingArmour.getUpgrade(Constants.Mod.MODID + ".upgrade.elytra", chestStack);
+                        LivingArmourUpgrade upgrade = ItemLivingArmour.getUpgradeFromNBT(Constants.Mod.MODID + ".upgrade.elytra", chestStack);
                         if (upgrade instanceof LivingArmourUpgradeElytra)
                         {
                             if (spPlayer.motionY > -0.5D)
@@ -507,6 +511,21 @@ public class ItemLivingArmour extends ItemArmor implements ISpecialArmor, IMeshP
         return null;
     }
 
+    public static LivingArmourUpgrade getUpgradeFromNBT(String uniqueIdentifier, ItemStack stack)
+    {
+        LivingArmour armour = getLivingArmourFromStack(stack);
+
+        for (Entry<String, LivingArmourUpgrade> entry : armour.upgradeMap.entrySet())
+        {
+            if (entry.getKey().equals(uniqueIdentifier))
+            {
+                return entry.getValue();
+            }
+        }
+
+        return null;
+    }
+
     public static boolean hasLivingArmour(ItemStack stack)
     {
         UUID uuid = Utils.getUUID(stack);
diff --git a/src/main/java/WayofTime/bloodmagic/util/handler/event/LivingArmourHandler.java b/src/main/java/WayofTime/bloodmagic/util/handler/event/LivingArmourHandler.java
index 0ebc1f43..1c53af35 100644
--- a/src/main/java/WayofTime/bloodmagic/util/handler/event/LivingArmourHandler.java
+++ b/src/main/java/WayofTime/bloodmagic/util/handler/event/LivingArmourHandler.java
@@ -109,7 +109,7 @@ public class LivingArmourHandler
 
                     if (!player.isSneaking())
                     {
-                        LivingArmourUpgrade upgrade = ItemLivingArmour.getUpgrade(Constants.Mod.MODID + ".upgrade.jump", chestStack);
+                        LivingArmourUpgrade upgrade = ItemLivingArmour.getUpgradeFromNBT(Constants.Mod.MODID + ".upgrade.jump", chestStack);
 
                         if (upgrade instanceof LivingArmourUpgradeJump)
                         {
@@ -163,7 +163,7 @@ public class LivingArmourHandler
                 LivingArmour armour = ItemLivingArmour.getLivingArmourFromStack(chestStack);
                 if (armour != null)
                 {
-                    LivingArmourUpgrade upgrade = ItemLivingArmour.getUpgrade(Constants.Mod.MODID + ".upgrade.movement", chestStack);
+                    LivingArmourUpgrade upgrade = ItemLivingArmour.getUpgradeFromNBT(Constants.Mod.MODID + ".upgrade.movement", chestStack);
 
                     if (upgrade instanceof LivingArmourUpgradeSpeed)
                     {