diff --git a/src/main/scala/li/cil/oc/server/network/Network.scala b/src/main/scala/li/cil/oc/server/network/Network.scala index 637280ec6..dc4b7b5c2 100644 --- a/src/main/scala/li/cil/oc/server/network/Network.scala +++ b/src/main/scala/li/cil/oc/server/network/Network.scala @@ -253,10 +253,13 @@ private class Network private(private val data: mutable.Map[String, Network.Vert // editing stuff or using mods to clone blocks (e.g. WorldEdit). otherNetwork.data.filter(entry => data.contains(entry._1)).toArray.foreach { case (address, node: Network.Vertex) => - val neighbors = node.data.neighbors.toArray // Copy to be on the safe side. + val neighbors = node.edges.map(_.other(node)) node.data.remove() node.data.address = java.util.UUID.randomUUID().toString - neighbors.foreach(_.connect(node.data)) + if (neighbors.isEmpty) + otherNetwork.addNew(node.data) + else + neighbors.foreach(_.data.connect(node.data)) } if (addedNode.reachability == Visibility.Neighbors)