From 9e4cd635add3fa6e202618893aa7667700620453 Mon Sep 17 00:00:00 2001 From: Maxwolf Goodliffe Date: Wed, 4 Jun 2014 05:08:28 -0700 Subject: [PATCH] Fixed bug where breaking a pipe would trigger a null pointer exception. --- .../mechanical/fluid/pipe/PipePressureNode.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/mechanical/src/main/scala/resonantinduction/mechanical/fluid/pipe/PipePressureNode.java b/mechanical/src/main/scala/resonantinduction/mechanical/fluid/pipe/PipePressureNode.java index 06922d4e5..1ec34d133 100644 --- a/mechanical/src/main/scala/resonantinduction/mechanical/fluid/pipe/PipePressureNode.java +++ b/mechanical/src/main/scala/resonantinduction/mechanical/fluid/pipe/PipePressureNode.java @@ -5,6 +5,7 @@ import net.minecraftforge.common.ForgeDirection; import net.minecraftforge.fluids.IFluidHandler; import resonant.api.grid.INode; import resonant.api.grid.INodeProvider; +import resonant.lib.grid.NodeRegistry; import resonant.lib.utility.WorldUtility; import resonantinduction.core.grid.fluid.FluidPressureNode; import resonantinduction.core.grid.fluid.IPressureNodeProvider; @@ -42,13 +43,21 @@ public class PipePressureNode extends FluidPressureNode { if (tile instanceof INodeProvider) { - INode check = ((INodeProvider) tile).getNode(FluidPressureNode.class, dir.getOpposite()); + // If anything happens while trying to access the node then forget about it. + INode check = null; + try + { + check = ((INodeProvider) tile).getNode(FluidPressureNode.class, dir.getOpposite()); + } + catch (Exception err) + { + check = null; + } - if (check instanceof FluidPressureNode && canConnect(dir, check) && ((FluidPressureNode) check).canConnect(dir.getOpposite(), this)) + if (check != null && check instanceof FluidPressureNode && canConnect(dir, check) && ((FluidPressureNode) check).canConnect(dir.getOpposite(), this)) { pipe().currentConnections = WorldUtility.setEnableSide(pipe().currentConnections, dir, true); connections.put(check, dir); - } } else if (canConnect(dir, tile))