From 557921950a0edf7635d86420bccf3aa6647cf077 Mon Sep 17 00:00:00 2001 From: Adam Date: Mon, 5 Jul 2021 12:16:03 -0400 Subject: [PATCH] object indicators: don't mark unnamed objects --- .../objectindicators/ObjectIndicatorsOverlay.java | 6 +++++- .../objectindicators/ObjectIndicatorsPlugin.java | 14 +++++++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/objectindicators/ObjectIndicatorsOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/objectindicators/ObjectIndicatorsOverlay.java index 087eff54f6..a984549712 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/objectindicators/ObjectIndicatorsOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/objectindicators/ObjectIndicatorsOverlay.java @@ -24,6 +24,7 @@ */ package net.runelite.client.plugins.objectindicators; +import com.google.common.base.Strings; import java.awt.BasicStroke; import java.awt.Color; import java.awt.Dimension; @@ -85,7 +86,10 @@ class ObjectIndicatorsOverlay extends Overlay // This is a multiloc composition = composition.getImpostor(); // Only mark the object if the name still matches - if (composition == null || !composition.getName().equals(colorTileObject.getName())) + if (composition == null + || Strings.isNullOrEmpty(composition.getName()) + || "null".equals(composition.getName()) + || !composition.getName().equals(colorTileObject.getName())) { continue; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/objectindicators/ObjectIndicatorsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/objectindicators/ObjectIndicatorsPlugin.java index 86a27c8915..5fe914b968 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/objectindicators/ObjectIndicatorsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/objectindicators/ObjectIndicatorsPlugin.java @@ -288,6 +288,18 @@ public class ObjectIndicatorsPlugin extends Plugin return; } + ObjectComposition objectComposition = client.getObjectDefinition(object.getId()); + if (objectComposition.getImpostorIds() == null) + { + // Multiloc names are instead checked in the overlay + String name = objectComposition.getName(); + if (Strings.isNullOrEmpty(name) || name.equals("null")) + { + // was marked, but name has changed + return; + } + } + for (ObjectPoint objectPoint : objectPoints) { if (worldPoint.getRegionX() == objectPoint.getRegionX() @@ -297,7 +309,7 @@ public class ObjectIndicatorsPlugin extends Plugin { log.debug("Marking object {} due to matching {}", object, objectPoint); objects.add(new ColorTileObject(object, - client.getObjectDefinition(object.getId()), + objectComposition, objectPoint.getName(), objectPoint.getColor())); break;