diff --git a/CHANGELOG.md b/CHANGELOG.md index 8a7c399ec..6245610a3 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ - Fixed fluids not caring about NBT tags (raoulvdberge) - Fixed fluids that have less than 1 bucket stored render only partly in Fluid Grid (raoulvdberge) - Fixed Fluid Interface voiding bucket when shift clicking to out slot (raoulvdberge) +- Fixed wrong machine connection logic (raoulvdberge) - Updated to Forge 2077 (raoulvdberge) ### 0.9.4 diff --git a/src/main/java/refinedstorage/apiimpl/network/NetworkNodeGraph.java b/src/main/java/refinedstorage/apiimpl/network/NetworkNodeGraph.java index d13d9c349..73827aca5 100755 --- a/src/main/java/refinedstorage/apiimpl/network/NetworkNodeGraph.java +++ b/src/main/java/refinedstorage/apiimpl/network/NetworkNodeGraph.java @@ -107,19 +107,23 @@ public class NetworkNodeGraph implements INetworkNodeGraph { } } + List oldNodes = new ArrayList<>(nodes); + + this.nodes = newNodes; + boolean changed = false; if (notify) { - for (INetworkNode newNode : newNodes) { - if (!nodes.contains(newNode)) { - newNode.onConnected(controller); + for (INetworkNode node : nodes) { + if (!oldNodes.contains(node)) { + node.onConnected(controller); changed = true; } } - for (INetworkNode oldNode : nodes) { - if (!newNodes.contains(oldNode)) { + for (INetworkNode oldNode : oldNodes) { + if (!nodes.contains(oldNode)) { oldNode.onDisconnected(controller); changed = true; @@ -127,8 +131,6 @@ public class NetworkNodeGraph implements INetworkNodeGraph { } } - this.nodes = newNodes; - if (changed) { controller.getDataManager().sendParameterToWatchers(TileController.NODES); }