From 9e7f1cc910eac6b5069305d8166cbd44a7041606 Mon Sep 17 00:00:00 2001 From: Pahimar Date: Sat, 28 May 2016 08:53:01 -0400 Subject: [PATCH] NPE protection in the charge/tool modes --- .../pahimar/ee3/item/ItemDarkMatterAxe.java | 14 +++++++++----- .../pahimar/ee3/item/ItemDarkMatterHoe.java | 16 ++++++++++------ .../ee3/item/ItemDarkMatterPickAxe.java | 14 +++++++++----- .../pahimar/ee3/item/ItemDarkMatterShovel.java | 18 +++++++++++------- .../com/pahimar/ee3/item/ItemToolModalEE.java | 2 +- 5 files changed, 40 insertions(+), 24 deletions(-) diff --git a/src/main/java/com/pahimar/ee3/item/ItemDarkMatterAxe.java b/src/main/java/com/pahimar/ee3/item/ItemDarkMatterAxe.java index fc1545fe..cdc35a1a 100644 --- a/src/main/java/com/pahimar/ee3/item/ItemDarkMatterAxe.java +++ b/src/main/java/com/pahimar/ee3/item/ItemDarkMatterAxe.java @@ -47,7 +47,11 @@ public class ItemDarkMatterAxe extends ItemToolModalEE implements IKeyBound, ICh @Override public short getChargeLevel(ItemStack itemStack) { - return NBTHelper.getShort(itemStack, Names.NBT.CHARGE_LEVEL); + if (NBTHelper.getShort(itemStack, Names.NBT.CHARGE_LEVEL) != null) { + return NBTHelper.getShort(itemStack, Names.NBT.CHARGE_LEVEL); + } + + return 0; } @Override @@ -62,18 +66,18 @@ public class ItemDarkMatterAxe extends ItemToolModalEE implements IKeyBound, ICh @Override public void increaseChargeLevel(ItemStack itemStack) { - if (NBTHelper.getShort(itemStack, Names.NBT.CHARGE_LEVEL) < this.getMaxChargeLevel()) + if (getChargeLevel(itemStack) < this.getMaxChargeLevel()) { - NBTHelper.setShort(itemStack, Names.NBT.CHARGE_LEVEL, (short) (NBTHelper.getShort(itemStack, Names.NBT.CHARGE_LEVEL) + 1)); + NBTHelper.setShort(itemStack, Names.NBT.CHARGE_LEVEL, (short) (getChargeLevel(itemStack) + 1)); } } @Override public void decreaseChargeLevel(ItemStack itemStack) { - if (NBTHelper.getShort(itemStack, Names.NBT.CHARGE_LEVEL) > 0) + if (getChargeLevel(itemStack)> 0) { - NBTHelper.setShort(itemStack, Names.NBT.CHARGE_LEVEL, (short) (NBTHelper.getShort(itemStack, Names.NBT.CHARGE_LEVEL) - 1)); + NBTHelper.setShort(itemStack, Names.NBT.CHARGE_LEVEL, (short) (getChargeLevel(itemStack) - 1)); } } diff --git a/src/main/java/com/pahimar/ee3/item/ItemDarkMatterHoe.java b/src/main/java/com/pahimar/ee3/item/ItemDarkMatterHoe.java index ee932bfd..21b78783 100644 --- a/src/main/java/com/pahimar/ee3/item/ItemDarkMatterHoe.java +++ b/src/main/java/com/pahimar/ee3/item/ItemDarkMatterHoe.java @@ -85,7 +85,11 @@ public class ItemDarkMatterHoe extends ItemHoe implements IKeyBound, IChargeable @Override public short getChargeLevel(ItemStack itemStack) { - return NBTHelper.getShort(itemStack, Names.NBT.CHARGE_LEVEL); + if (NBTHelper.getShort(itemStack, Names.NBT.CHARGE_LEVEL) != null) { + return NBTHelper.getShort(itemStack, Names.NBT.CHARGE_LEVEL); + } + + return 0; } @Override @@ -100,18 +104,18 @@ public class ItemDarkMatterHoe extends ItemHoe implements IKeyBound, IChargeable @Override public void increaseChargeLevel(ItemStack itemStack) { - if (NBTHelper.getShort(itemStack, Names.NBT.CHARGE_LEVEL) < this.getMaxChargeLevel()) + if (getChargeLevel(itemStack) < this.getMaxChargeLevel()) { - NBTHelper.setShort(itemStack, Names.NBT.CHARGE_LEVEL, (short) (NBTHelper.getShort(itemStack, Names.NBT.CHARGE_LEVEL) + 1)); + NBTHelper.setShort(itemStack, Names.NBT.CHARGE_LEVEL, (short) (getChargeLevel(itemStack) + 1)); } } @Override public void decreaseChargeLevel(ItemStack itemStack) { - if (NBTHelper.getShort(itemStack, Names.NBT.CHARGE_LEVEL) > 0) + if (getChargeLevel(itemStack) > 0) { - NBTHelper.setShort(itemStack, Names.NBT.CHARGE_LEVEL, (short) (NBTHelper.getShort(itemStack, Names.NBT.CHARGE_LEVEL) - 1)); + NBTHelper.setShort(itemStack, Names.NBT.CHARGE_LEVEL, (short) (getChargeLevel(itemStack) - 1)); } } @@ -162,7 +166,7 @@ public class ItemDarkMatterHoe extends ItemHoe implements IKeyBound, IChargeable @Override public ToolMode getCurrentToolMode(ItemStack itemStack) { - if (NBTHelper.getShort(itemStack, Names.NBT.MODE) < ToolMode.TYPES.length) + if (NBTHelper.getShort(itemStack, Names.NBT.MODE) != null && NBTHelper.getShort(itemStack, Names.NBT.MODE) < ToolMode.TYPES.length) { return ToolMode.TYPES[NBTHelper.getShort(itemStack, Names.NBT.MODE)]; } diff --git a/src/main/java/com/pahimar/ee3/item/ItemDarkMatterPickAxe.java b/src/main/java/com/pahimar/ee3/item/ItemDarkMatterPickAxe.java index 8923b60b..8524f23e 100644 --- a/src/main/java/com/pahimar/ee3/item/ItemDarkMatterPickAxe.java +++ b/src/main/java/com/pahimar/ee3/item/ItemDarkMatterPickAxe.java @@ -78,7 +78,11 @@ public class ItemDarkMatterPickAxe extends ItemToolModalEE implements IKeyBound, @Override public short getChargeLevel(ItemStack itemStack) { - return NBTHelper.getShort(itemStack, Names.NBT.CHARGE_LEVEL); + if (NBTHelper.getShort(itemStack, Names.NBT.CHARGE_LEVEL) != null) { + return NBTHelper.getShort(itemStack, Names.NBT.CHARGE_LEVEL); + } + + return 0; } @Override @@ -93,18 +97,18 @@ public class ItemDarkMatterPickAxe extends ItemToolModalEE implements IKeyBound, @Override public void increaseChargeLevel(ItemStack itemStack) { - if (NBTHelper.getShort(itemStack, Names.NBT.CHARGE_LEVEL) < this.getMaxChargeLevel()) + if (getChargeLevel(itemStack) < this.getMaxChargeLevel()) { - NBTHelper.setShort(itemStack, Names.NBT.CHARGE_LEVEL, (short) (NBTHelper.getShort(itemStack, Names.NBT.CHARGE_LEVEL) + 1)); + NBTHelper.setShort(itemStack, Names.NBT.CHARGE_LEVEL, (short) (getChargeLevel(itemStack) + 1)); } } @Override public void decreaseChargeLevel(ItemStack itemStack) { - if (NBTHelper.getShort(itemStack, Names.NBT.CHARGE_LEVEL) > 0) + if (getChargeLevel(itemStack) > 0) { - NBTHelper.setShort(itemStack, Names.NBT.CHARGE_LEVEL, (short) (NBTHelper.getShort(itemStack, Names.NBT.CHARGE_LEVEL) - 1)); + NBTHelper.setShort(itemStack, Names.NBT.CHARGE_LEVEL, (short) (getChargeLevel(itemStack) - 1)); } } diff --git a/src/main/java/com/pahimar/ee3/item/ItemDarkMatterShovel.java b/src/main/java/com/pahimar/ee3/item/ItemDarkMatterShovel.java index c9f11308..605c58c9 100644 --- a/src/main/java/com/pahimar/ee3/item/ItemDarkMatterShovel.java +++ b/src/main/java/com/pahimar/ee3/item/ItemDarkMatterShovel.java @@ -45,9 +45,13 @@ public class ItemDarkMatterShovel extends ItemToolModalEE implements IKeyBound, } @Override - public short getChargeLevel(ItemStack itemStack) - { - return NBTHelper.getShort(itemStack, Names.NBT.CHARGE_LEVEL); + public short getChargeLevel(ItemStack itemStack) { + + if (NBTHelper.getShort(itemStack, Names.NBT.CHARGE_LEVEL) != null) { + return NBTHelper.getShort(itemStack, Names.NBT.CHARGE_LEVEL); + } + + return 0; } @Override @@ -62,18 +66,18 @@ public class ItemDarkMatterShovel extends ItemToolModalEE implements IKeyBound, @Override public void increaseChargeLevel(ItemStack itemStack) { - if (NBTHelper.getShort(itemStack, Names.NBT.CHARGE_LEVEL) < this.getMaxChargeLevel()) + if (getChargeLevel(itemStack) < this.getMaxChargeLevel()) { - NBTHelper.setShort(itemStack, Names.NBT.CHARGE_LEVEL, (short) (NBTHelper.getShort(itemStack, Names.NBT.CHARGE_LEVEL) + 1)); + NBTHelper.setShort(itemStack, Names.NBT.CHARGE_LEVEL, (short) (getChargeLevel(itemStack) + 1)); } } @Override public void decreaseChargeLevel(ItemStack itemStack) { - if (NBTHelper.getShort(itemStack, Names.NBT.CHARGE_LEVEL) > 0) + if (getChargeLevel(itemStack) > 0) { - NBTHelper.setShort(itemStack, Names.NBT.CHARGE_LEVEL, (short) (NBTHelper.getShort(itemStack, Names.NBT.CHARGE_LEVEL) - 1)); + NBTHelper.setShort(itemStack, Names.NBT.CHARGE_LEVEL, (short) (getChargeLevel(itemStack) - 1)); } } diff --git a/src/main/java/com/pahimar/ee3/item/ItemToolModalEE.java b/src/main/java/com/pahimar/ee3/item/ItemToolModalEE.java index aab7be1a..0e6bf048 100644 --- a/src/main/java/com/pahimar/ee3/item/ItemToolModalEE.java +++ b/src/main/java/com/pahimar/ee3/item/ItemToolModalEE.java @@ -26,7 +26,7 @@ public class ItemToolModalEE extends ItemToolEE implements IModalTool @Override public ToolMode getCurrentToolMode(ItemStack itemStack) { - if (NBTHelper.getShort(itemStack, Names.NBT.MODE) < ToolMode.TYPES.length) + if (NBTHelper.getShort(itemStack, Names.NBT.MODE) != null && NBTHelper.getShort(itemStack, Names.NBT.MODE) < ToolMode.TYPES.length) { return ToolMode.TYPES[NBTHelper.getShort(itemStack, Names.NBT.MODE)]; }