From 5f7c2a9deeb010acf59dd905a79b4f1259e46c32 Mon Sep 17 00:00:00 2001 From: Adam Date: Sat, 20 Feb 2021 11:11:09 -0500 Subject: [PATCH] corp plugin: use varbit changed event to track damage In masses it has been observed that the players damage counter can increment after the last hitsplat has been applied, which causes the final damage summary message to be incorrect --- .../client/plugins/corp/CorpPlugin.java | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/corp/CorpPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/corp/CorpPlugin.java index 284e8caea9..a6e9caf439 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/corp/CorpPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/corp/CorpPlugin.java @@ -43,6 +43,7 @@ import net.runelite.api.events.HitsplatApplied; import net.runelite.api.events.InteractingChanged; import net.runelite.api.events.NpcDespawned; import net.runelite.api.events.NpcSpawned; +import net.runelite.api.events.VarbitChanged; import net.runelite.client.chat.ChatColorType; import net.runelite.client.chat.ChatMessageBuilder; import net.runelite.client.chat.ChatMessageManager; @@ -191,12 +192,6 @@ public class CorpPlugin extends Plugin return; } - int myDamage = client.getVar(Varbits.CORP_DAMAGE); - // sometimes hitsplats are applied after the damage counter has been reset - if (myDamage > 0) - { - yourDamage = myDamage; - } totalDamage += hitsplatApplied.getHitsplat().getAmount(); } @@ -213,4 +208,18 @@ public class CorpPlugin extends Plugin players.add(source); } + + @Subscribe + public void onVarbitChanged(VarbitChanged varbitChanged) + { + if (corp != null) + { + int myDamage = client.getVar(Varbits.CORP_DAMAGE); + // avoid resetting our counter when the client's is reset + if (myDamage > 0) + { + yourDamage = myDamage; + } + } + } }