From 66974716efe16c928fd86a0def1bd096632b51d5 Mon Sep 17 00:00:00 2001
From: Nicholas Ignoffo <speedynutty68@gmail.com>
Date: Tue, 18 Oct 2016 16:59:50 -0700
Subject: [PATCH] Fix deserialization of EnumDemonWillType

---
 .../WayofTime/bloodmagic/api/soul/EnumDemonWillType.java   | 2 --
 .../bloodmagic/entity/mob/EntityAspectedDemonBase.java     | 4 +++-
 .../bloodmagic/entity/mob/EntitySentientSpecter.java       | 3 ++-
 .../bloodmagic/entity/projectile/EntitySentientArrow.java  | 4 +++-
 .../bloodmagic/item/armour/ItemSentientArmour.java         | 7 ++-----
 .../WayofTime/bloodmagic/item/soul/ItemSentientAxe.java    | 7 ++-----
 .../WayofTime/bloodmagic/item/soul/ItemSentientBow.java    | 4 +++-
 .../bloodmagic/item/soul/ItemSentientPickaxe.java          | 7 ++-----
 .../WayofTime/bloodmagic/item/soul/ItemSentientShovel.java | 7 ++-----
 .../WayofTime/bloodmagic/item/soul/ItemSentientSword.java  | 7 ++-----
 .../java/WayofTime/bloodmagic/item/soul/ItemSoulGem.java   | 3 ++-
 .../WayofTime/bloodmagic/tile/TileInversionPillar.java     | 3 ++-
 12 files changed, 25 insertions(+), 33 deletions(-)

diff --git a/src/main/java/WayofTime/bloodmagic/api/soul/EnumDemonWillType.java b/src/main/java/WayofTime/bloodmagic/api/soul/EnumDemonWillType.java
index 752b70bb..df58f660 100644
--- a/src/main/java/WayofTime/bloodmagic/api/soul/EnumDemonWillType.java
+++ b/src/main/java/WayofTime/bloodmagic/api/soul/EnumDemonWillType.java
@@ -2,10 +2,8 @@ package WayofTime.bloodmagic.api.soul;
 
 import java.util.Locale;
 
-import lombok.Getter;
 import net.minecraft.util.IStringSerializable;
 
-@Getter
 public enum EnumDemonWillType implements IStringSerializable
 {
     DEFAULT("default"),
diff --git a/src/main/java/WayofTime/bloodmagic/entity/mob/EntityAspectedDemonBase.java b/src/main/java/WayofTime/bloodmagic/entity/mob/EntityAspectedDemonBase.java
index 212100eb..a3ba864b 100644
--- a/src/main/java/WayofTime/bloodmagic/entity/mob/EntityAspectedDemonBase.java
+++ b/src/main/java/WayofTime/bloodmagic/entity/mob/EntityAspectedDemonBase.java
@@ -14,6 +14,8 @@ import WayofTime.bloodmagic.gson.Serializers;
 
 import com.google.common.base.Predicate;
 
+import java.util.Locale;
+
 public abstract class EntityAspectedDemonBase extends EntityDemonBase
 {
     protected static final DataParameter<EnumDemonWillType> TYPE = EntityDataManager.<EnumDemonWillType>createKey(EntityAspectedDemonBase.class, Serializers.WILL_TYPE_SERIALIZER);
@@ -223,7 +225,7 @@ public abstract class EntityAspectedDemonBase extends EntityDemonBase
             setType(EnumDemonWillType.DEFAULT);
         } else
         {
-            setType(EnumDemonWillType.valueOf(tag.getString(Constants.NBT.WILL_TYPE)));
+            setType(EnumDemonWillType.valueOf(tag.getString(Constants.NBT.WILL_TYPE).toUpperCase(Locale.ENGLISH)));
         }
     }
 
diff --git a/src/main/java/WayofTime/bloodmagic/entity/mob/EntitySentientSpecter.java b/src/main/java/WayofTime/bloodmagic/entity/mob/EntitySentientSpecter.java
index da5229fe..6e6c15a9 100644
--- a/src/main/java/WayofTime/bloodmagic/entity/mob/EntitySentientSpecter.java
+++ b/src/main/java/WayofTime/bloodmagic/entity/mob/EntitySentientSpecter.java
@@ -2,6 +2,7 @@ package WayofTime.bloodmagic.entity.mob;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Locale;
 
 import javax.annotation.Nullable;
 
@@ -457,7 +458,7 @@ public class EntitySentientSpecter extends EntityDemonBase
             type = EnumDemonWillType.DEFAULT;
         } else
         {
-            type = EnumDemonWillType.valueOf(tag.getString(Constants.NBT.WILL_TYPE));
+            type = EnumDemonWillType.valueOf(tag.getString(Constants.NBT.WILL_TYPE).toUpperCase(Locale.ENGLISH));
         }
 
         wasGivenSentientArmour = tag.getBoolean("sentientArmour");
diff --git a/src/main/java/WayofTime/bloodmagic/entity/projectile/EntitySentientArrow.java b/src/main/java/WayofTime/bloodmagic/entity/projectile/EntitySentientArrow.java
index db1a7162..c9dc343e 100644
--- a/src/main/java/WayofTime/bloodmagic/entity/projectile/EntitySentientArrow.java
+++ b/src/main/java/WayofTime/bloodmagic/entity/projectile/EntitySentientArrow.java
@@ -13,6 +13,8 @@ import WayofTime.bloodmagic.api.Constants;
 import WayofTime.bloodmagic.api.soul.EnumDemonWillType;
 import WayofTime.bloodmagic.api.soul.PlayerDemonWillHandler;
 
+import java.util.Locale;
+
 public class EntitySentientArrow extends EntityTippedArrow
 {
     public double reimbursedAmountOnHit = 0;
@@ -63,7 +65,7 @@ public class EntitySentientArrow extends EntityTippedArrow
         super.readEntityFromNBT(tag);
 
         reimbursedAmountOnHit = tag.getDouble("reimbursement");
-        type = EnumDemonWillType.valueOf(tag.getString(Constants.NBT.WILL_TYPE));
+        type = EnumDemonWillType.valueOf(tag.getString(Constants.NBT.WILL_TYPE).toUpperCase(Locale.ENGLISH));
     }
 
     @Override
diff --git a/src/main/java/WayofTime/bloodmagic/item/armour/ItemSentientArmour.java b/src/main/java/WayofTime/bloodmagic/item/armour/ItemSentientArmour.java
index 87fd66f4..f5dc8800 100644
--- a/src/main/java/WayofTime/bloodmagic/item/armour/ItemSentientArmour.java
+++ b/src/main/java/WayofTime/bloodmagic/item/armour/ItemSentientArmour.java
@@ -1,9 +1,6 @@
 package WayofTime.bloodmagic.item.armour;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
+import java.util.*;
 
 import net.minecraft.client.renderer.ItemMeshDefinition;
 import net.minecraft.client.renderer.block.model.ModelResourceLocation;
@@ -480,7 +477,7 @@ public class ItemSentientArmour extends ItemArmor implements ISpecialArmor, IMes
             return EnumDemonWillType.DEFAULT;
         }
 
-        return EnumDemonWillType.valueOf(tag.getString(Constants.NBT.WILL_TYPE));
+        return EnumDemonWillType.valueOf(tag.getString(Constants.NBT.WILL_TYPE).toUpperCase(Locale.ENGLISH));
     }
 
     public void setCurrentType(EnumDemonWillType type, ItemStack stack)
diff --git a/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientAxe.java b/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientAxe.java
index e04b45d8..492042d5 100644
--- a/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientAxe.java
+++ b/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientAxe.java
@@ -1,9 +1,6 @@
 package WayofTime.bloodmagic.item.soul;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.UUID;
+import java.util.*;
 
 import javax.annotation.Nullable;
 
@@ -263,7 +260,7 @@ public class ItemSentientAxe extends ItemAxe implements IDemonWillWeapon, IMeshP
             return EnumDemonWillType.DEFAULT;
         }
 
-        return EnumDemonWillType.valueOf(tag.getString(Constants.NBT.WILL_TYPE));
+        return EnumDemonWillType.valueOf(tag.getString(Constants.NBT.WILL_TYPE).toUpperCase(Locale.ENGLISH));
     }
 
     public void setCurrentType(ItemStack stack, EnumDemonWillType type)
diff --git a/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientBow.java b/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientBow.java
index fd5564ac..29505a45 100644
--- a/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientBow.java
+++ b/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientBow.java
@@ -33,6 +33,8 @@ import WayofTime.bloodmagic.entity.mob.EntitySentientSpecter;
 import WayofTime.bloodmagic.entity.projectile.EntitySentientArrow;
 import WayofTime.bloodmagic.registry.ModItems;
 
+import java.util.Locale;
+
 public class ItemSentientBow extends ItemBow implements IMultiWillTool, ISentientTool//, IMeshProvider
 {
     public static int[] soulBracket = new int[] { 16, 60, 200, 400, 1000 };
@@ -141,7 +143,7 @@ public class ItemSentientBow extends ItemBow implements IMultiWillTool, ISentien
             return EnumDemonWillType.DEFAULT;
         }
 
-        return EnumDemonWillType.valueOf(tag.getString(Constants.NBT.WILL_TYPE));
+        return EnumDemonWillType.valueOf(tag.getString(Constants.NBT.WILL_TYPE).toUpperCase(Locale.ENGLISH));
     }
 
     public double getDamageModifier(EnumDemonWillType type, int willBracket)
diff --git a/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientPickaxe.java b/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientPickaxe.java
index 79d74434..b2fd79dd 100644
--- a/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientPickaxe.java
+++ b/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientPickaxe.java
@@ -1,9 +1,6 @@
 package WayofTime.bloodmagic.item.soul;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.UUID;
+import java.util.*;
 
 import javax.annotation.Nullable;
 
@@ -263,7 +260,7 @@ public class ItemSentientPickaxe extends ItemPickaxe implements IDemonWillWeapon
             return EnumDemonWillType.DEFAULT;
         }
 
-        return EnumDemonWillType.valueOf(tag.getString(Constants.NBT.WILL_TYPE));
+        return EnumDemonWillType.valueOf(tag.getString(Constants.NBT.WILL_TYPE).toUpperCase(Locale.ENGLISH));
     }
 
     public void setCurrentType(ItemStack stack, EnumDemonWillType type)
diff --git a/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientShovel.java b/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientShovel.java
index 8fab86aa..948de1c8 100644
--- a/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientShovel.java
+++ b/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientShovel.java
@@ -1,9 +1,6 @@
 package WayofTime.bloodmagic.item.soul;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.UUID;
+import java.util.*;
 
 import javax.annotation.Nullable;
 
@@ -263,7 +260,7 @@ public class ItemSentientShovel extends ItemSpade implements IDemonWillWeapon, I
             return EnumDemonWillType.DEFAULT;
         }
 
-        return EnumDemonWillType.valueOf(tag.getString(Constants.NBT.WILL_TYPE));
+        return EnumDemonWillType.valueOf(tag.getString(Constants.NBT.WILL_TYPE).toUpperCase(Locale.ENGLISH));
     }
 
     public void setCurrentType(ItemStack stack, EnumDemonWillType type)
diff --git a/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientSword.java b/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientSword.java
index 70398a57..8b99b28a 100644
--- a/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientSword.java
+++ b/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientSword.java
@@ -1,9 +1,6 @@
 package WayofTime.bloodmagic.item.soul;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.UUID;
+import java.util.*;
 
 import javax.annotation.Nullable;
 
@@ -235,7 +232,7 @@ public class ItemSentientSword extends ItemSword implements IDemonWillWeapon, IM
             return EnumDemonWillType.DEFAULT;
         }
 
-        return EnumDemonWillType.valueOf(tag.getString(Constants.NBT.WILL_TYPE));
+        return EnumDemonWillType.valueOf(tag.getString(Constants.NBT.WILL_TYPE).toUpperCase(Locale.ENGLISH));
     }
 
     public void setCurrentType(ItemStack stack, EnumDemonWillType type)
diff --git a/src/main/java/WayofTime/bloodmagic/item/soul/ItemSoulGem.java b/src/main/java/WayofTime/bloodmagic/item/soul/ItemSoulGem.java
index 69247742..4b310765 100644
--- a/src/main/java/WayofTime/bloodmagic/item/soul/ItemSoulGem.java
+++ b/src/main/java/WayofTime/bloodmagic/item/soul/ItemSoulGem.java
@@ -2,6 +2,7 @@ package WayofTime.bloodmagic.item.soul;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Locale;
 
 import javax.annotation.Nullable;
 
@@ -255,7 +256,7 @@ public class ItemSoulGem extends Item implements IDemonWillGem, IMeshProvider, I
             return EnumDemonWillType.DEFAULT;
         }
 
-        return EnumDemonWillType.valueOf(tag.getString(Constants.NBT.WILL_TYPE));
+        return EnumDemonWillType.valueOf(tag.getString(Constants.NBT.WILL_TYPE).toUpperCase(Locale.ENGLISH));
     }
 
     public void setCurrentType(EnumDemonWillType type, ItemStack soulGemStack)
diff --git a/src/main/java/WayofTime/bloodmagic/tile/TileInversionPillar.java b/src/main/java/WayofTime/bloodmagic/tile/TileInversionPillar.java
index 370a9fba..62bad390 100644
--- a/src/main/java/WayofTime/bloodmagic/tile/TileInversionPillar.java
+++ b/src/main/java/WayofTime/bloodmagic/tile/TileInversionPillar.java
@@ -2,6 +2,7 @@ package WayofTime.bloodmagic.tile;
 
 import java.util.Collections;
 import java.util.List;
+import java.util.Locale;
 
 import lombok.Getter;
 import lombok.Setter;
@@ -284,7 +285,7 @@ public class TileInversionPillar extends TileTicking
             type = EnumDemonWillType.DEFAULT;
         }
 
-        type = EnumDemonWillType.valueOf(tag.getString(Constants.NBT.WILL_TYPE));
+        type = EnumDemonWillType.valueOf(tag.getString(Constants.NBT.WILL_TYPE).toUpperCase(Locale.ENGLISH));
         currentInversion = tag.getDouble("currentInversion");
         currentInfectionRadius = tag.getInteger("currentInfectionRadius");
         consecutiveFailedChecks = tag.getInteger("consecutiveFailedChecks");