diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/mining/MiningOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/mining/MiningOverlay.java index d2ab1e63bdd..82373418dd1 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/mining/MiningOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/mining/MiningOverlay.java @@ -28,6 +28,7 @@ import java.awt.Dimension; import java.awt.Graphics2D; import javax.inject.Inject; +import net.runelite.api.AnimationID; import net.runelite.api.Client; import net.runelite.api.MenuAction; import net.runelite.api.Skill; @@ -71,7 +72,7 @@ public Dimension render(Graphics2D graphics) } Pickaxe pickaxe = plugin.getPickaxe(); - if (pickaxe != null && pickaxe.matchesMiningAnimation(client.getLocalPlayer())) + if (pickaxe != null && (pickaxe.matchesMiningAnimation(client.getLocalPlayer()) || client.getLocalPlayer().getAnimation() == AnimationID.DENSE_ESSENCE_CHIPPING)) { panelComponent.getChildren().add(TitleComponent.builder() .text("Mining") diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/mining/MiningPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/mining/MiningPlugin.java index 310ba66f7e4..d8a3b8e2aae 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/mining/MiningPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/mining/MiningPlugin.java @@ -34,6 +34,7 @@ import javax.inject.Inject; import lombok.AccessLevel; import lombok.Getter; +import net.runelite.api.AnimationID; import net.runelite.api.ChatMessageType; import net.runelite.api.Client; import net.runelite.api.GameObject; @@ -176,10 +177,24 @@ public void onAnimationChanged(final AnimationChanged event) } int animId = local.getAnimation(); - Pickaxe pickaxe = Pickaxe.fromAnimation(animId); - if (pickaxe != null) + if (animId == AnimationID.DENSE_ESSENCE_CHIPPING) { - this.pickaxe = pickaxe; + // Can't use chat messages to start mining session on Dense Essence as they don't have a chat message when mined, + // so we track the session here instead. + if (session == null) + { + session = new MiningSession(); + } + + session.setLastMined(); + } + else + { + Pickaxe pickaxe = Pickaxe.fromAnimation(animId); + if (pickaxe != null) + { + this.pickaxe = pickaxe; + } } }