diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/woodcutting/Axe.java b/runelite-client/src/main/java/net/runelite/client/plugins/woodcutting/Axe.java index 040e551876..54b579e5ae 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/woodcutting/Axe.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/woodcutting/Axe.java @@ -52,6 +52,7 @@ import static net.runelite.api.ItemID.MITHRIL_AXE; import static net.runelite.api.ItemID.RUNE_AXE; import static net.runelite.api.ItemID.STEEL_AXE; import static net.runelite.api.ItemID._3RD_AGE_AXE; +import net.runelite.api.Player; @AllArgsConstructor @Getter @@ -87,6 +88,11 @@ enum Axe AXE_ANIM_IDS = builder.build(); } + boolean matchesChoppingAnimation(final Player player) + { + return player != null && animId == player.getAnimation(); + } + static Axe findAxeByAnimId(int animId) { return AXE_ANIM_IDS.get(animId); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/woodcutting/WoodcuttingOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/woodcutting/WoodcuttingOverlay.java index 5aa6f0cde2..6f863cdda7 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/woodcutting/WoodcuttingOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/woodcutting/WoodcuttingOverlay.java @@ -81,7 +81,7 @@ class WoodcuttingOverlay extends Overlay panelComponent.getChildren().clear(); Axe axe = plugin.getAxe(); - if (axe != null && axe.getAnimId() == client.getLocalPlayer().getAnimation()) + if (axe != null && axe.matchesChoppingAnimation(client.getLocalPlayer())) { panelComponent.getChildren().add(TitleComponent.builder() .text("Woodcutting") 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 8b42ed7d6c..7241e6b847 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 @@ -32,6 +32,7 @@ import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.regex.Pattern; +import javax.annotation.Nullable; import javax.inject.Inject; import lombok.AccessLevel; import lombok.Getter; @@ -92,9 +93,11 @@ public class WoodcuttingPlugin extends Plugin private WoodcuttingConfig config; @Getter + @Nullable private WoodcuttingSession session; @Getter + @Nullable private Axe axe; @Getter @@ -149,13 +152,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) { @@ -176,7 +185,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()) @@ -268,4 +277,4 @@ public class WoodcuttingPlugin extends Plugin this.axe = axe; } } -} \ No newline at end of file +} 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 ac5d66130e..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 @@ -26,17 +26,17 @@ package net.runelite.client.plugins.woodcutting; import java.time.Instant; -public class WoodcuttingSession +class WoodcuttingSession { - private Instant lastLogCut; + private Instant lastChopping; - public void setLastLogCut() + void setLastChopping() { - lastLogCut = Instant.now(); + lastChopping = Instant.now(); } - public Instant getLastLogCut() + Instant getLastChopping() { - return lastLogCut; + return lastChopping; } }