From 7ea1e581b7897c4b033014e9ddd4ef09144c7902 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Tue, 23 Aug 2016 20:12:43 +0200 Subject: [PATCH] Fixed Wireless Transmitter crashing when it is transmitting to a removed dimension, fixes #285 --- CHANGELOG.md | 1 + .../apiimpl/network/NetworkNodeGraph.java | 22 +++++++++++-------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6ba7c82a1..6bed66999 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ - Fixed Grid Filter only updating the Grid when reopening the GUI - Fixed Wireless Grid not working cross dimensionally - Fixed Grid not displaying items after changing redstone mode +- Fixed Wireless Transmitter crashing when it is transmitting to a removed dimension - Priority field and detector amount field can now display 4 digits at a time **Features** diff --git a/src/main/java/refinedstorage/apiimpl/network/NetworkNodeGraph.java b/src/main/java/refinedstorage/apiimpl/network/NetworkNodeGraph.java index 562c98c35..a5322e772 100755 --- a/src/main/java/refinedstorage/apiimpl/network/NetworkNodeGraph.java +++ b/src/main/java/refinedstorage/apiimpl/network/NetworkNodeGraph.java @@ -73,17 +73,21 @@ public class NetworkNodeGraph implements INetworkNodeGraph { if (transmitter.canTransmit()) { if (!transmitter.isSameDimension()) { - NetworkNodeGraph dimensionGraph = new NetworkNodeGraph(controller) { - @Override - public World getWorld() { - return DimensionManager.getWorld(transmitter.getReceiverDimension()); - } - }; + final World dimensionWorld = DimensionManager.getWorld(transmitter.getReceiverDimension()); - dimensionGraph.rebuild(transmitter.getReceiver(), false); + if (dimensionWorld != null) { + NetworkNodeGraph dimensionGraph = new NetworkNodeGraph(controller) { + @Override + public World getWorld() { + return dimensionWorld; + } + }; - newNodes.addAll(dimensionGraph.all()); - newNodeHashes.addAll(dimensionGraph.allHashes()); + dimensionGraph.rebuild(transmitter.getReceiver(), false); + + newNodes.addAll(dimensionGraph.all()); + newNodeHashes.addAll(dimensionGraph.allHashes()); + } } else { BlockPos receiver = transmitter.getReceiver();