From d1d6d26b60396244e6420b22cb8bd467bbdb0564 Mon Sep 17 00:00:00 2001 From: Adam Date: Tue, 21 Aug 2018 08:50:08 -0400 Subject: [PATCH] agility plugin: fix brimhaven timer resetting when failing obstacles --- .../client/plugins/agility/AgilityPlugin.java | 32 +++++++++++-------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/agility/AgilityPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/agility/AgilityPlugin.java index 735a070cf2..7e24af80ce 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/agility/AgilityPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/agility/AgilityPlugin.java @@ -32,6 +32,7 @@ import java.util.Map; import java.util.Objects; import javax.inject.Inject; import lombok.Getter; +import lombok.extern.slf4j.Slf4j; import net.runelite.api.Client; import net.runelite.api.Item; 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", tags = {"grace", "marks", "overlay", "shortcuts", "skilling", "traps"} ) +@Slf4j public class AgilityPlugin extends Plugin { private static final int AGILITY_ARENA_REGION_ID = 11157; @@ -238,24 +240,26 @@ public class AgilityPlugin extends Plugin { if (isInAgilityArena()) { + // Hint arrow has no plane, and always returns the current plane WorldPoint newTicketPosition = client.getHintArrowPoint(); - if (!Objects.equals(lastArenaTicketPosition, newTicketPosition)) - { - // 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"); - } + WorldPoint oldTickPosition = lastArenaTicketPosition; - if (config.showAgilityArenaTimer()) - { - showNewAgilityArenaTimer(); - } + lastArenaTicketPosition = newTicketPosition; + + 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(); + } } } }