mining plugin: track dense essence mining

Mining dense essense doesn't have a chat message so this starts the mining session based on animation instead.

Co-authored-by: chasertw123 <henderson.chase@gmail.com>
This commit is contained in:
Adam
2020-09-13 13:43:50 -04:00
parent 754fbf2b13
commit 5a524471f8
2 changed files with 20 additions and 4 deletions

View File

@@ -28,6 +28,7 @@ import java.awt.Color;
import java.awt.Dimension; import java.awt.Dimension;
import java.awt.Graphics2D; import java.awt.Graphics2D;
import javax.inject.Inject; import javax.inject.Inject;
import net.runelite.api.AnimationID;
import net.runelite.api.Client; import net.runelite.api.Client;
import net.runelite.api.MenuAction; import net.runelite.api.MenuAction;
import net.runelite.api.Skill; import net.runelite.api.Skill;
@@ -71,7 +72,7 @@ class MiningOverlay extends OverlayPanel
} }
Pickaxe pickaxe = plugin.getPickaxe(); 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() panelComponent.getChildren().add(TitleComponent.builder()
.text("Mining") .text("Mining")

View File

@@ -34,6 +34,7 @@ import javax.annotation.Nullable;
import javax.inject.Inject; import javax.inject.Inject;
import lombok.AccessLevel; import lombok.AccessLevel;
import lombok.Getter; import lombok.Getter;
import net.runelite.api.AnimationID;
import net.runelite.api.ChatMessageType; import net.runelite.api.ChatMessageType;
import net.runelite.api.Client; import net.runelite.api.Client;
import net.runelite.api.GameObject; import net.runelite.api.GameObject;
@@ -176,10 +177,24 @@ public class MiningPlugin extends Plugin
} }
int animId = local.getAnimation(); int animId = local.getAnimation();
Pickaxe pickaxe = Pickaxe.fromAnimation(animId); if (animId == AnimationID.DENSE_ESSENCE_CHIPPING)
if (pickaxe != null)
{ {
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;
}
} }
} }