From dd771eaab752b877cd9dc7ea714caf0ac46c2df3 Mon Sep 17 00:00:00 2001 From: Jordan Atwood Date: Fri, 4 Oct 2019 08:12:55 -0700 Subject: [PATCH] woodcutting: Fix overlay hiding during long chop delays This fixes a bug where the overlay would become hidden when chopping at a tree without successfully chopping a log for longer than the configured timeout, and would display "NOT woodcutting" if a log was successfully chopped thereafter. Fixes runelite/runelite#7506 --- .../plugins/woodcutting/WoodcuttingPlugin.java | 12 +++++++++--- .../plugins/woodcutting/WoodcuttingSession.java | 10 +++++----- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/woodcutting/WoodcuttingPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/woodcutting/WoodcuttingPlugin.java index 82d0a730ce..750e887365 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/woodcutting/WoodcuttingPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/woodcutting/WoodcuttingPlugin.java @@ -148,13 +148,19 @@ public class WoodcuttingPlugin extends Plugin respawns.removeIf(TreeRespawn::isExpired); - if (session == null || session.getLastLogCut() == null) + if (session == null || session.getLastChopping() == null) { return; } + if (axe != null && axe.matchesChoppingAnimation(client.getLocalPlayer())) + { + session.setLastChopping(); + return; + } + Duration statTimeout = Duration.ofMinutes(config.statTimeout()); - Duration sinceCut = Duration.between(session.getLastLogCut(), Instant.now()); + Duration sinceCut = Duration.between(session.getLastChopping(), Instant.now()); if (sinceCut.compareTo(statTimeout) >= 0) { @@ -175,7 +181,7 @@ public class WoodcuttingPlugin extends Plugin session = new WoodcuttingSession(); } - session.setLastLogCut(); + session.setLastChopping(); } if (event.getMessage().contains("A bird's nest falls out of the tree") && config.showNestNotification()) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/woodcutting/WoodcuttingSession.java b/runelite-client/src/main/java/net/runelite/client/plugins/woodcutting/WoodcuttingSession.java index aaf2919c01..39d3bafe29 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/woodcutting/WoodcuttingSession.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/woodcutting/WoodcuttingSession.java @@ -28,15 +28,15 @@ import java.time.Instant; class WoodcuttingSession { - private Instant lastLogCut; + private Instant lastChopping; - void setLastLogCut() + void setLastChopping() { - lastLogCut = Instant.now(); + lastChopping = Instant.now(); } - Instant getLastLogCut() + Instant getLastChopping() { - return lastLogCut; + return lastChopping; } }