From 32b3a5b0acf41a2c6ededc5779c5a1e596424a9c Mon Sep 17 00:00:00 2001 From: Ben Spiers Date: Sun, 7 Sep 2014 00:15:23 +0100 Subject: [PATCH] Fix some potential NPE problems. --- .../common/recipe/inputs/AdvancedMachineInput.java | 7 +++++-- .../mekanism/common/recipe/inputs/ChemicalPairInput.java | 8 ++++++-- .../java/mekanism/common/recipe/inputs/FluidInput.java | 4 ++++ src/main/java/mekanism/common/recipe/inputs/GasInput.java | 4 ++++ .../java/mekanism/common/recipe/inputs/InfusionInput.java | 4 ++++ 5 files changed, 23 insertions(+), 4 deletions(-) diff --git a/src/main/java/mekanism/common/recipe/inputs/AdvancedMachineInput.java b/src/main/java/mekanism/common/recipe/inputs/AdvancedMachineInput.java index 3452c8db9..8661692da 100644 --- a/src/main/java/mekanism/common/recipe/inputs/AdvancedMachineInput.java +++ b/src/main/java/mekanism/common/recipe/inputs/AdvancedMachineInput.java @@ -61,13 +61,16 @@ public class AdvancedMachineInput extends MachineInput @Override public int hashIngredients() { - int hash = StackUtils.hashItemStack(itemStack) << 8 | gasType.getID(); - return hash; + return StackUtils.hashItemStack(itemStack) << 8 | gasType.getID(); } @Override public boolean testEquality(AdvancedMachineInput other) { + if(!isValid()) + { + return !other.isValid(); + } return StackUtils.equalsWildcardWithNBT(itemStack, other.itemStack) && gasType.getID() == other.gasType.getID(); } diff --git a/src/main/java/mekanism/common/recipe/inputs/ChemicalPairInput.java b/src/main/java/mekanism/common/recipe/inputs/ChemicalPairInput.java index eb8012c4e..fabbc2c29 100644 --- a/src/main/java/mekanism/common/recipe/inputs/ChemicalPairInput.java +++ b/src/main/java/mekanism/common/recipe/inputs/ChemicalPairInput.java @@ -147,8 +147,12 @@ public class ChemicalPairInput extends MachineInput @Override public boolean testEquality(ChemicalPairInput other) { - return (other.leftGas.hashCode() == leftGas.hashCode() && other.rightGas.hashCode() == rightGas.hashCode()) - || (other.leftGas.hashCode() == rightGas.hashCode() && other.rightGas.hashCode() == leftGas.hashCode()); + if(!isValid()) + { + return !other.isValid(); + } + return (other.leftGas.hashCode() == leftGas.hashCode() && other.rightGas.hashCode() == rightGas.hashCode()) + || (other.leftGas.hashCode() == rightGas.hashCode() && other.rightGas.hashCode() == leftGas.hashCode()); } @Override diff --git a/src/main/java/mekanism/common/recipe/inputs/FluidInput.java b/src/main/java/mekanism/common/recipe/inputs/FluidInput.java index 6dd2b2666..54ac66181 100644 --- a/src/main/java/mekanism/common/recipe/inputs/FluidInput.java +++ b/src/main/java/mekanism/common/recipe/inputs/FluidInput.java @@ -43,6 +43,10 @@ public class FluidInput extends MachineInput @Override public boolean testEquality(FluidInput other) { + if(!isValid()) + { + return !other.isValid(); + } return ingredient.equals(other.ingredient); } diff --git a/src/main/java/mekanism/common/recipe/inputs/GasInput.java b/src/main/java/mekanism/common/recipe/inputs/GasInput.java index 98e139eab..984cec26c 100644 --- a/src/main/java/mekanism/common/recipe/inputs/GasInput.java +++ b/src/main/java/mekanism/common/recipe/inputs/GasInput.java @@ -43,6 +43,10 @@ public class GasInput extends MachineInput @Override public boolean testEquality(GasInput other) { + if(!isValid()) + { + return !other.isValid(); + } return other.ingredient.hashCode() == ingredient.hashCode(); } diff --git a/src/main/java/mekanism/common/recipe/inputs/InfusionInput.java b/src/main/java/mekanism/common/recipe/inputs/InfusionInput.java index af1278c88..6525194bf 100644 --- a/src/main/java/mekanism/common/recipe/inputs/InfusionInput.java +++ b/src/main/java/mekanism/common/recipe/inputs/InfusionInput.java @@ -65,6 +65,10 @@ public class InfusionInput extends MachineInput @Override public boolean testEquality(InfusionInput other) { + if(!isValid()) + { + return !other.isValid(); + } return infuse.type == other.infuse.type && StackUtils.equalsWildcardWithNBT(inputStack, other.inputStack); }