agility plugin: fix brimhaven timer resetting when failing obstacles

This commit is contained in:
Adam
2018-08-21 08:50:08 -04:00
parent bdeff5ee10
commit d1d6d26b60

View File

@@ -32,6 +32,7 @@ import java.util.Map;
import java.util.Objects; import java.util.Objects;
import javax.inject.Inject; import javax.inject.Inject;
import lombok.Getter; import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
import net.runelite.api.Client; import net.runelite.api.Client;
import net.runelite.api.Item; import net.runelite.api.Item;
import net.runelite.api.ItemID; import net.runelite.api.ItemID;
@@ -72,6 +73,7 @@ import net.runelite.client.ui.overlay.infobox.InfoBoxManager;
description = "Show helpful information about agility courses and obstacles", description = "Show helpful information about agility courses and obstacles",
tags = {"grace", "marks", "overlay", "shortcuts", "skilling", "traps"} tags = {"grace", "marks", "overlay", "shortcuts", "skilling", "traps"}
) )
@Slf4j
public class AgilityPlugin extends Plugin public class AgilityPlugin extends Plugin
{ {
private static final int AGILITY_ARENA_REGION_ID = 11157; private static final int AGILITY_ARENA_REGION_ID = 11157;
@@ -238,24 +240,26 @@ public class AgilityPlugin extends Plugin
{ {
if (isInAgilityArena()) if (isInAgilityArena())
{ {
// Hint arrow has no plane, and always returns the current plane
WorldPoint newTicketPosition = client.getHintArrowPoint(); WorldPoint newTicketPosition = client.getHintArrowPoint();
if (!Objects.equals(lastArenaTicketPosition, newTicketPosition)) WorldPoint oldTickPosition = lastArenaTicketPosition;
{
// We don't want to notify when players first enter the course
if (lastArenaTicketPosition != null && newTicketPosition != null)
{
if (config.notifyAgilityArena())
{
notifier.notify("Ticket location changed");
}
if (config.showAgilityArenaTimer()) lastArenaTicketPosition = newTicketPosition;
{
showNewAgilityArenaTimer(); if (oldTickPosition != null && newTicketPosition != null
} && (oldTickPosition.getX() != newTicketPosition.getX() || oldTickPosition.getY() != newTicketPosition.getY()))
{
log.debug("Ticked position moved from {} to {}", oldTickPosition, newTicketPosition);
if (config.notifyAgilityArena())
{
notifier.notify("Ticket location changed");
} }
lastArenaTicketPosition = newTicketPosition; if (config.showAgilityArenaTimer())
{
showNewAgilityArenaTimer();
}
} }
} }
} }