Fix herbiboar performance/blinking

Prevent NPE in herbiboar minimap overlay. This will remove any
performance and blinking issues.

Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
This commit is contained in:
Tomas Slusny
2018-04-21 22:30:35 +02:00
committed by Adam
parent 05883a6a2f
commit 3a073d1ade

View File

@@ -28,6 +28,8 @@ import com.google.inject.Inject;
import java.awt.Dimension; import java.awt.Dimension;
import java.awt.Graphics2D; import java.awt.Graphics2D;
import java.util.Set; import java.util.Set;
import net.runelite.api.Point;
import net.runelite.api.TileObject;
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;
@@ -55,14 +57,22 @@ public class HerbiboarMinimapOverlay extends Overlay
HerbiboarTrail currentTrail = plugin.getCurrentTrail(); HerbiboarTrail currentTrail = plugin.getCurrentTrail();
int finishId = plugin.getFinishId(); int finishId = plugin.getFinishId();
Set<Integer> shownTrailIds = plugin.getShownTrails(); Set<Integer> shownTrailIds = plugin.getShownTrails();
plugin.getTrails().keySet().forEach((x) ->
for (TileObject tileObject : plugin.getTrails().keySet())
{ {
int id = x.getId(); int id = tileObject.getId();
Point minimapLocation = tileObject.getMinimapLocation();
if (minimapLocation == null)
{
continue;
}
if (shownTrailIds.contains(id) && (finishId > 0 || (currentTrail != null && currentTrail.getTrailId() != id && currentTrail.getTrailId() + 1 != id))) if (shownTrailIds.contains(id) && (finishId > 0 || (currentTrail != null && currentTrail.getTrailId() != id && currentTrail.getTrailId() + 1 != id)))
{ {
OverlayUtil.renderMinimapLocation(graphics, x.getMinimapLocation(), config.getTrailColor()); OverlayUtil.renderMinimapLocation(graphics, minimapLocation, config.getTrailColor());
} }
}); }
} }
return null; return null;