screenmarkers: prevent null marker creation

This is happening and I can't see why. Avoid creating and loading null
markers.
This commit is contained in:
Adam
2020-02-03 21:26:50 -05:00
parent 9a103f8ccd
commit 5216b03090
2 changed files with 8 additions and 5 deletions

View File

@@ -29,6 +29,7 @@ import java.awt.BasicStroke;
import java.awt.Dimension; import java.awt.Dimension;
import java.awt.Graphics2D; import java.awt.Graphics2D;
import lombok.Getter; import lombok.Getter;
import lombok.NonNull;
import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.Overlay;
import net.runelite.client.ui.overlay.OverlayLayer; import net.runelite.client.ui.overlay.OverlayLayer;
import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayPosition;
@@ -40,7 +41,7 @@ public class ScreenMarkerOverlay extends Overlay
private final ScreenMarker marker; private final ScreenMarker marker;
private final ScreenMarkerRenderable screenMarkerRenderable; private final ScreenMarkerRenderable screenMarkerRenderable;
ScreenMarkerOverlay(ScreenMarker marker) ScreenMarkerOverlay(@NonNull ScreenMarker marker)
{ {
this.marker = marker; this.marker = marker;
this.screenMarkerRenderable = new ScreenMarkerRenderable(); this.screenMarkerRenderable = new ScreenMarkerRenderable();

View File

@@ -36,14 +36,15 @@ import java.awt.image.BufferedImage;
import java.time.Instant; import java.time.Instant;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.Stream; import java.util.stream.Stream;
import javax.inject.Inject; import javax.inject.Inject;
import lombok.AccessLevel; import lombok.AccessLevel;
import lombok.Getter; import lombok.Getter;
import net.runelite.client.events.ConfigChanged;
import net.runelite.client.config.ConfigManager; import net.runelite.client.config.ConfigManager;
import net.runelite.client.eventbus.Subscribe; import net.runelite.client.eventbus.Subscribe;
import net.runelite.client.events.ConfigChanged;
import net.runelite.client.input.MouseManager; import net.runelite.client.input.MouseManager;
import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginDescriptor;
@@ -184,9 +185,10 @@ public class ScreenMarkerPlugin extends Plugin
public void finishCreation(boolean aborted) 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.setPreferredLocation(overlay.getBounds().getLocation());
screenMarkerOverlay.setPreferredSize(overlay.getBounds().getSize()); screenMarkerOverlay.setPreferredSize(overlay.getBounds().getSize());
@@ -254,6 +256,6 @@ public class ScreenMarkerPlugin extends Plugin
{ {
}.getType()); }.getType());
return screenMarkerData.stream().map(ScreenMarkerOverlay::new); return screenMarkerData.stream().filter(Objects::nonNull).map(ScreenMarkerOverlay::new);
} }
} }