From 3157eb4f364706caf85a460e7ddaf19c11143ab9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20N=C3=BCcke?= Date: Sat, 17 Jan 2015 00:44:35 +0100 Subject: [PATCH] Fixed logic for handling nodes with duplicate addresses when merging networks. Closes #824. --- src/main/scala/li/cil/oc/server/network/Network.scala | 10 +++++----- src/main/scala/li/cil/oc/server/network/Node.scala | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) 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 8e2f9355f..9727aa3f1 100644 --- a/src/main/scala/li/cil/oc/server/network/Network.scala +++ b/src/main/scala/li/cil/oc/server/network/Network.scala @@ -252,11 +252,11 @@ private class Network private(private val data: mutable.Map[String, Network.Vert // never happen in normal operation anyway. It *can* happen when NBT // editing stuff or using mods to clone blocks (e.g. WorldEdit). otherNetwork.data.filter(entry => data.contains(entry._1)).toArray.foreach { - case (address, node: MutableNode) => - val neighbors = node.neighbors.toArray // Copy to be on the safe side. - node.remove() - node.address = java.util.UUID.randomUUID().toString - neighbors.foreach(_.connect(node)) + case (address, node: Network.Vertex) => + val neighbors = node.data.neighbors.toArray // Copy to be on the safe side. + node.data.remove() + node.data.address = java.util.UUID.randomUUID().toString + neighbors.foreach(_.connect(node.data)) } if (addedNode.reachability == Visibility.Neighbors) diff --git a/src/main/scala/li/cil/oc/server/network/Node.scala b/src/main/scala/li/cil/oc/server/network/Node.scala index c18de90d0..bae0e6b08 100644 --- a/src/main/scala/li/cil/oc/server/network/Node.scala +++ b/src/main/scala/li/cil/oc/server/network/Node.scala @@ -11,8 +11,8 @@ import scala.collection.convert.WrapAsJava._ import scala.collection.convert.WrapAsScala._ trait Node extends ImmutableNode { - val host: Environment - val reachability: Visibility + def host: Environment + def reachability: Visibility final var address: String = null