diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/grounditems/GroundItemsOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/grounditems/GroundItemsOverlay.java index 36c74e7f77..00ee6b8a96 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/grounditems/GroundItemsOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/grounditems/GroundItemsOverlay.java @@ -1,5 +1,6 @@ /* * Copyright (c) 2017, Aria + * Copyright (c) 2018, Adam * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -95,6 +96,8 @@ public class GroundItemsOverlay extends Overlay return null; } + plugin.checkItems(); + graphics.setFont(FontManager.getRunescapeSmallFont()); offsetMap.clear(); final LocalPoint localLocation = player.getLocalLocation(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/grounditems/GroundItemsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/grounditems/GroundItemsPlugin.java index e3f5d138fc..6f23e313c5 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/grounditems/GroundItemsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/grounditems/GroundItemsPlugin.java @@ -1,5 +1,6 @@ /* * Copyright (c) 2017, Aria + * Copyright (c) 2018, Adam * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -66,7 +67,7 @@ import net.runelite.api.coords.LocalPoint; import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.FocusChanged; import net.runelite.api.events.GameStateChanged; -import net.runelite.api.events.GameTick; +import net.runelite.api.events.ItemLayerChanged; import net.runelite.api.events.MenuEntryAdded; import net.runelite.client.config.ConfigManager; import net.runelite.client.game.ItemManager; @@ -104,6 +105,7 @@ public class GroundItemsPlugin extends Plugin private List hiddenItemList = new ArrayList<>(); private List highlightedItemsList = new ArrayList<>(); + private boolean dirty; @Inject private GroundItemInputListener inputListener; @@ -199,15 +201,22 @@ public class GroundItemsPlugin extends Plugin } @Subscribe - public void onGameTick(final GameTick event) + public void onItemLayerChanged(ItemLayerChanged event) + { + dirty = true; + } + + void checkItems() { final Player player = client.getLocalPlayer(); - if (player == null || client.getViewportWidget() == null) + if (!dirty || player == null || client.getViewportWidget() == null) { return; } + dirty = false; + final Region region = client.getRegion(); final Tile[][][] tiles = region.getTiles(); final int z = client.getPlane(); @@ -330,6 +339,8 @@ public class GroundItemsPlugin extends Plugin .maximumSize(512L) .expireAfterAccess(10, TimeUnit.MINUTES) .build(new WildcardMatchLoader(hiddenItemList)); + + dirty = true; } private ItemPrice getItemPrice(ItemComposition itemComposition)