Move map clue checking to MenuOptionClicked
Closes #4607 Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
This commit is contained in:
@@ -57,7 +57,6 @@ import net.runelite.api.events.GameStateChanged;
|
||||
import net.runelite.api.events.GameTick;
|
||||
import net.runelite.api.events.ItemContainerChanged;
|
||||
import net.runelite.api.events.MenuOptionClicked;
|
||||
import net.runelite.api.queries.InventoryItemQuery;
|
||||
import net.runelite.api.queries.NPCQuery;
|
||||
import net.runelite.api.widgets.Widget;
|
||||
import net.runelite.api.widgets.WidgetInfo;
|
||||
@@ -146,7 +145,6 @@ public class ClueScrollPlugin extends Plugin
|
||||
private BufferedImage emoteImage;
|
||||
private BufferedImage mapArrow;
|
||||
private Integer clueItemId;
|
||||
private boolean clueItemChanged = false;
|
||||
private boolean worldMapPointsSet = false;
|
||||
|
||||
@Provides
|
||||
@@ -169,7 +167,7 @@ public class ClueScrollPlugin extends Plugin
|
||||
overlayManager.remove(clueScrollOverlay);
|
||||
overlayManager.remove(clueScrollEmoteOverlay);
|
||||
overlayManager.remove(clueScrollWorldOverlay);
|
||||
resetClue();
|
||||
resetClue(true);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
@@ -194,7 +192,7 @@ public class ClueScrollPlugin extends Plugin
|
||||
return;
|
||||
}
|
||||
|
||||
resetClue();
|
||||
resetClue(true);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
@@ -207,7 +205,7 @@ public class ClueScrollPlugin extends Plugin
|
||||
if (itemComposition != null && itemComposition.getName().startsWith("Clue scroll"))
|
||||
{
|
||||
clueItemId = itemComposition.getId();
|
||||
clueItemChanged = true;
|
||||
updateClue(MapClue.forItemId(clueItemId));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -223,7 +221,7 @@ public class ClueScrollPlugin extends Plugin
|
||||
// Check if clue was removed from inventory
|
||||
if (items.noneMatch(item -> itemManager.getItemComposition(item.getId()).getId() == clueItemId))
|
||||
{
|
||||
resetClue();
|
||||
resetClue(true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -248,7 +246,7 @@ public class ClueScrollPlugin extends Plugin
|
||||
{
|
||||
if (event.getGameState() == GameState.LOGIN_SCREEN)
|
||||
{
|
||||
resetClue();
|
||||
resetClue(true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -342,7 +340,7 @@ public class ClueScrollPlugin extends Plugin
|
||||
if (clue instanceof EmoteClue)
|
||||
{
|
||||
ItemContainer equipment = client.getItemContainer(InventoryID.EQUIPMENT);
|
||||
|
||||
|
||||
if (equipment != null)
|
||||
{
|
||||
equippedItems = equipment.getItems();
|
||||
@@ -383,12 +381,7 @@ public class ClueScrollPlugin extends Plugin
|
||||
// so the clue window doesn't have to be open.
|
||||
if (clue != null)
|
||||
{
|
||||
if (clue != this.clue)
|
||||
{
|
||||
resetClue();
|
||||
}
|
||||
|
||||
this.clue = clue;
|
||||
updateClue(clue);
|
||||
this.clueTimeout = Instant.now();
|
||||
}
|
||||
}
|
||||
@@ -427,19 +420,18 @@ public class ClueScrollPlugin extends Plugin
|
||||
return mapArrow;
|
||||
}
|
||||
|
||||
private void resetClue()
|
||||
private void resetClue(boolean withItemId)
|
||||
{
|
||||
if (!clueItemChanged)
|
||||
{
|
||||
clueItemId = null;
|
||||
}
|
||||
|
||||
if (clue instanceof LocationsClueScroll)
|
||||
{
|
||||
((LocationsClueScroll) clue).reset();
|
||||
}
|
||||
|
||||
clueItemChanged = false;
|
||||
if (withItemId)
|
||||
{
|
||||
clueItemId = null;
|
||||
}
|
||||
|
||||
clue = null;
|
||||
worldMapPointManager.removeIf(ClueScrollWorldMapPoint.class::isInstance);
|
||||
worldMapPointsSet = false;
|
||||
@@ -522,30 +514,11 @@ public class ClueScrollPlugin extends Plugin
|
||||
}
|
||||
|
||||
// We have unknown clue, reset
|
||||
resetClue();
|
||||
resetClue(true);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
Item[] result = queryRunner.runQuery(new InventoryItemQuery(InventoryID.INVENTORY));
|
||||
|
||||
if (result == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
for (Item item : result)
|
||||
{
|
||||
MapClue clue = MapClue.forItemId(item.getId());
|
||||
|
||||
if (clue != null)
|
||||
{
|
||||
clueItemId = item.getId();
|
||||
clueItemChanged = true;
|
||||
return clue;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -621,4 +594,15 @@ public class ClueScrollPlugin extends Plugin
|
||||
worldMapPointManager.add(new ClueScrollWorldMapPoint(point, this));
|
||||
}
|
||||
}
|
||||
|
||||
private void updateClue(final ClueScroll clue)
|
||||
{
|
||||
if (clue == null || clue == this.clue)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
resetClue(false);
|
||||
this.clue = clue;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user