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:
@@ -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();
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user