From b96411c40bddd046b347f112ef5167f26e04f0c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20N=C3=BCcke?= Date: Wed, 23 Dec 2015 21:27:17 +0100 Subject: [PATCH] Don't create node / remove node in SimpleComponents when getComponentName returns null or an empty string. Merry Christmas, Vic. --- .../common/asm/template/StaticSimpleEnvironment.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/main/java/li/cil/oc/common/asm/template/StaticSimpleEnvironment.java b/src/main/java/li/cil/oc/common/asm/template/StaticSimpleEnvironment.java index 0a5bb420a..8b43a5719 100644 --- a/src/main/java/li/cil/oc/common/asm/template/StaticSimpleEnvironment.java +++ b/src/main/java/li/cil/oc/common/asm/template/StaticSimpleEnvironment.java @@ -1,5 +1,6 @@ package li.cil.oc.common.asm.template; +import com.google.common.base.Strings; import li.cil.oc.api.Network; import li.cil.oc.api.network.Environment; import li.cil.oc.api.network.Node; @@ -29,8 +30,15 @@ public final class StaticSimpleEnvironment { if (SideTracker.isClient()) { return null; } - if (!nodes.containsKey(self)) { - final String name = self.getComponentName(); + final String name = self.getComponentName(); + // If the name is null (or empty) this indicates we don't have a valid + // component right now, so if we have a node we kill it. + if (Strings.isNullOrEmpty(name)) { + final Node node = nodes.remove(self); + if (node != null) { + node.remove(); + } + } else if (!nodes.containsKey(self)) { nodes.put(self, Network. newNode(self, Visibility.Network). withComponent(name).