diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/screenmarkers/ScreenMarkerOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/screenmarkers/ScreenMarkerOverlay.java index 08857c532e..8635378738 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/screenmarkers/ScreenMarkerOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/screenmarkers/ScreenMarkerOverlay.java @@ -29,6 +29,7 @@ import java.awt.BasicStroke; import java.awt.Dimension; import java.awt.Graphics2D; import lombok.Getter; +import lombok.NonNull; import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayLayer; import net.runelite.client.ui.overlay.OverlayPosition; @@ -40,7 +41,7 @@ public class ScreenMarkerOverlay extends Overlay private final ScreenMarker marker; private final ScreenMarkerRenderable screenMarkerRenderable; - ScreenMarkerOverlay(ScreenMarker marker) + ScreenMarkerOverlay(@NonNull ScreenMarker marker) { this.marker = marker; this.screenMarkerRenderable = new ScreenMarkerRenderable(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/screenmarkers/ScreenMarkerPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/screenmarkers/ScreenMarkerPlugin.java index 798bd61aae..9ca3c9c46d 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/screenmarkers/ScreenMarkerPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/screenmarkers/ScreenMarkerPlugin.java @@ -36,14 +36,15 @@ import java.awt.image.BufferedImage; import java.time.Instant; import java.util.ArrayList; import java.util.List; +import java.util.Objects; import java.util.stream.Collectors; import java.util.stream.Stream; import javax.inject.Inject; import lombok.AccessLevel; import lombok.Getter; -import net.runelite.client.events.ConfigChanged; import net.runelite.client.config.ConfigManager; import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.events.ConfigChanged; import net.runelite.client.input.MouseManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -184,9 +185,10 @@ public class ScreenMarkerPlugin extends Plugin public void finishCreation(boolean aborted) { - if (!aborted) + ScreenMarker marker = currentMarker; + if (!aborted && marker != null) { - final ScreenMarkerOverlay screenMarkerOverlay = new ScreenMarkerOverlay(currentMarker); + final ScreenMarkerOverlay screenMarkerOverlay = new ScreenMarkerOverlay(marker); screenMarkerOverlay.setPreferredLocation(overlay.getBounds().getLocation()); screenMarkerOverlay.setPreferredSize(overlay.getBounds().getSize()); @@ -254,6 +256,6 @@ public class ScreenMarkerPlugin extends Plugin { }.getType()); - return screenMarkerData.stream().map(ScreenMarkerOverlay::new); + return screenMarkerData.stream().filter(Objects::nonNull).map(ScreenMarkerOverlay::new); } }