diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/dpscounter/DpsConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/dpscounter/DpsConfig.java index 5fc88bf342..6845168f09 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/dpscounter/DpsConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/dpscounter/DpsConfig.java @@ -1,10 +1,11 @@ package net.runelite.client.plugins.dpscounter; +import net.runelite.client.config.Config; import net.runelite.client.config.ConfigGroup; import net.runelite.client.config.ConfigItem; @ConfigGroup("dpscounter") -public interface DpsConfig +public interface DpsConfig extends Config { @ConfigItem( position = 0, diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/dpscounter/DpsCounterPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/dpscounter/DpsCounterPlugin.java index a61d77bae2..64315aba19 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/dpscounter/DpsCounterPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/dpscounter/DpsCounterPlugin.java @@ -128,6 +128,12 @@ public class DpsCounterPlugin extends Plugin DpsMember dpsMember = members.computeIfAbsent(name, n -> new DpsMember(name)); dpsMember.addDamage(hit); + if (dpsMember.isPaused()) + { + dpsMember.unpause(); + log.debug("Unpausing {}", dpsMember.getName()); + } + if (hit > 0 && !partyService.getMembers().isEmpty()) { // Check the player is attacking the boss @@ -162,6 +168,12 @@ public class DpsCounterPlugin extends Plugin DpsMember dpsMember = members.computeIfAbsent(name, DpsMember::new); dpsMember.addDamage(dpsUpdate.getHit()); + + if (dpsMember.isPaused()) + { + dpsMember.unpause(); + log.debug("Unpausing {}", dpsMember.getName()); + } } @Subscribe diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/dpscounter/DpsMember.java b/runelite-client/src/main/java/net/runelite/client/plugins/dpscounter/DpsMember.java index b83425834b..5c1ca5a85c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/dpscounter/DpsMember.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/dpscounter/DpsMember.java @@ -1,5 +1,6 @@ package net.runelite.client.plugins.dpscounter; +import java.time.Duration; import java.time.Instant; import lombok.Getter; import lombok.RequiredArgsConstructor; @@ -34,4 +35,20 @@ class DpsMember { end = Instant.now(); } + + boolean isPaused() + { + return end != null; + } + + void unpause() + { + if (end == null) + { + return; + } + + start = start.plus(Duration.between(end, Instant.now()); + end = null; + } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/dpscounter/DpsOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/dpscounter/DpsOverlay.java index 52fe67dd6e..2d1f664fe7 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/dpscounter/DpsOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/dpscounter/DpsOverlay.java @@ -5,7 +5,7 @@ import java.awt.Graphics2D; import java.text.DecimalFormat; import java.util.Map; import javax.inject.Inject; -import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG; +import static net.runelite.api.MenuAction.RUNELITE_OVERLAY; import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayMenuEntry; import net.runelite.client.ui.overlay.components.LineComponent; @@ -30,7 +30,7 @@ public class DpsOverlay extends Overlay this.dpsCounterPlugin = dpsCounterPlugin; this.dpsConfig = dpsConfig; this.partyService = partyService; - getMenuEntries().add(new OverlayMenuEntry(RUNELITE_OVERLAY_CONFIG, "Reset", "DPS counter")); + getMenuEntries().add(new OverlayMenuEntry(RUNELITE_OVERLAY, "Reset", "DPS counter")); } @Override