From f29a72ad3499a605331010db7a644b435ae3f47a Mon Sep 17 00:00:00 2001 From: Scott Burns Date: Thu, 16 May 2019 01:17:49 +0200 Subject: [PATCH] Refactor TickCounter --- .../plugins/safespot/SafeSpotPlugin.java | 2 +- .../tickcounter/TickCounterConfig.java | 141 +++++++++--------- .../tickcounter/TickCounterOverlay.java | 35 +++-- .../tickcounter/TickCounterPlugin.java | 80 ++++++---- 4 files changed, 148 insertions(+), 110 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/safespot/SafeSpotPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/safespot/SafeSpotPlugin.java index f63662c390..ae60adc295 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/safespot/SafeSpotPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/safespot/SafeSpotPlugin.java @@ -51,7 +51,7 @@ public class SafeSpotPlugin extends Plugin @Getter private ArrayList safeSpotList; - + @Getter private boolean safeSpotsRenderable = false; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/tickcounter/TickCounterConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/tickcounter/TickCounterConfig.java index cc5d9d3125..a08f012e7a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/tickcounter/TickCounterConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/tickcounter/TickCounterConfig.java @@ -1,77 +1,82 @@ package net.runelite.client.plugins.tickcounter; +import java.awt.Color; import net.runelite.client.config.Alpha; import net.runelite.client.config.Config; import net.runelite.client.config.ConfigGroup; import net.runelite.client.config.ConfigItem; -import java.awt.*; - @ConfigGroup("tickcounter") -public interface TickCounterConfig extends Config { - @ConfigItem( - keyName = "resetInstance", - name = "Reset on new instances", - description = "", - position = 1 - ) - default boolean instance() - { - return true; - } - @Alpha - @ConfigItem( - keyName = "selfColor", - name = "Your color", - description = "", - position = 4 - ) - default Color selfColor() - { - return Color.green; - } - @Alpha - @ConfigItem( - keyName = "totalColor", - name = "Total color", - description = "", - position = 6 - ) - default Color totalColor() - { - return Color.RED; - } - @Alpha - @ConfigItem( - keyName = "otherColor", - name = "Other players color", - description = "", - position = 5 - ) - default Color otherColor() - { - return Color.white; - } - @Alpha - @ConfigItem( - keyName = "bgColor", - name = "Background color", - description = "", - position = 3 - ) - default Color bgColor() - { - return new Color(70, 61, 50, 156); - } - @Alpha - @ConfigItem( - keyName = "titleColor", - name = "Title color", - description = "", - position = 2 - ) - default Color titleColor() - { - return Color.white; - } +public interface TickCounterConfig extends Config +{ + @ConfigItem( + keyName = "resetInstance", + name = "Reset on new instances", + description = "", + position = 1 + ) + default boolean instance() + { + return true; + } + + @Alpha + @ConfigItem( + keyName = "selfColor", + name = "Your color", + description = "", + position = 4 + ) + default Color selfColor() + { + return Color.green; + } + + @Alpha + @ConfigItem( + keyName = "totalColor", + name = "Total color", + description = "", + position = 6 + ) + default Color totalColor() + { + return Color.RED; + } + + @Alpha + @ConfigItem( + keyName = "otherColor", + name = "Other players color", + description = "", + position = 5 + ) + default Color otherColor() + { + return Color.white; + } + + @Alpha + @ConfigItem( + keyName = "bgColor", + name = "Background color", + description = "", + position = 3 + ) + default Color bgColor() + { + return new Color(70, 61, 50, 156); + } + + @Alpha + @ConfigItem( + keyName = "titleColor", + name = "Title color", + description = "", + position = 2 + ) + default Color titleColor() + { + return Color.white; + } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/tickcounter/TickCounterOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/tickcounter/TickCounterOverlay.java index 33e22fe1fa..de80c99739 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/tickcounter/TickCounterOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/tickcounter/TickCounterOverlay.java @@ -1,15 +1,12 @@ package net.runelite.client.plugins.tickcounter; -import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics2D; import java.util.ArrayList; import java.util.Comparator; import java.util.List; import java.util.Map.Entry; - import javax.inject.Inject; - import net.runelite.api.Client; import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayPosition; @@ -18,7 +15,8 @@ import net.runelite.client.ui.overlay.components.LineComponent; import net.runelite.client.ui.overlay.components.PanelComponent; import net.runelite.client.ui.overlay.components.TitleComponent; -public class TickCounterOverlay extends Overlay { +public class TickCounterOverlay extends Overlay +{ private TickCounterPlugin plugin; private TickCounterConfig config; @@ -26,7 +24,8 @@ public class TickCounterOverlay extends Overlay { private PanelComponent panelComponent = new PanelComponent(); @Inject - public TickCounterOverlay(TickCounterPlugin plugin,Client client,TickCounterConfig config) { + public TickCounterOverlay(TickCounterPlugin plugin, Client client, TickCounterConfig config) + { super(plugin); setPosition(OverlayPosition.DYNAMIC); setPosition(OverlayPosition.DETACHED); @@ -37,27 +36,31 @@ public class TickCounterOverlay extends Overlay { } @Override - public Dimension render(Graphics2D g) { + public Dimension render(Graphics2D g) + { List elems = panelComponent.getChildren(); elems.clear(); panelComponent.setBackgroundColor(config.bgColor()); elems.add(TitleComponent.builder().text("Combat counter").color(config.titleColor()).build()); List> list = new ArrayList<>(plugin.activity.entrySet()); - list.sort(new Comparator>() { - @Override - public int compare(Entry o1, Entry o2) { - int value = -Integer.compare(o1.getValue(), o2.getValue()); - if (value == 0) - value = o1.getKey().compareTo(o2.getKey()); - return value; + list.sort((o1, o2) -> { + int value = -Integer.compare(o1.getValue(), o2.getValue()); + if (value == 0) + { + value = o1.getKey().compareTo(o2.getKey()); } + return value; }); int total = 0; - for (Entry e : list) { + for (Entry e : list) + { total += e.getValue(); - if(e.getKey().equals(client.getLocalPlayer().getName())){ + if (e.getKey().equals(client.getLocalPlayer().getName())) + { elems.add(LineComponent.builder().leftColor(config.selfColor()).rightColor(config.selfColor()).left(e.getKey()).right(e.getValue().toString()).build()); - }else{ + } + else + { elems.add(LineComponent.builder().left(e.getKey()).right(e.getValue().toString()).leftColor(config.otherColor()).rightColor(config.otherColor()).build()); } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/tickcounter/TickCounterPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/tickcounter/TickCounterPlugin.java index f049b722c7..fd4a8a935a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/tickcounter/TickCounterPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/tickcounter/TickCounterPlugin.java @@ -1,13 +1,11 @@ package net.runelite.client.plugins.tickcounter; +import com.google.inject.Provides; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; - import javax.inject.Inject; - -import com.google.inject.Provides; import net.runelite.api.Actor; import net.runelite.api.Client; import net.runelite.api.Player; @@ -23,53 +21,66 @@ import net.runelite.client.plugins.PluginType; import net.runelite.client.ui.overlay.OverlayManager; @PluginDescriptor(name = "Tick Counter", - description = "Counts combat activity for nearby players", - enabledByDefault = false, - type = PluginType.PVP + description = "Counts combat activity for nearby players", + enabledByDefault = false, + type = PluginType.PVP ) -public class TickCounterPlugin extends Plugin { +public class TickCounterPlugin extends Plugin +{ @Inject private OverlayManager overlayManager; + @Inject private TickCounterConfig config; + @Inject private Client client; + @Provides TickCounterConfig provideConfig(ConfigManager configManager) { return configManager.getConfig(TickCounterConfig.class); } + @Inject private TickCounterOverlay overlay; Map activity = new HashMap<>(); private List blowpiping = new ArrayList<>(); - boolean instanced = false; - boolean prevInstance = false; + private boolean instanced = false; + private boolean prevInstance = false; @Override - protected void startUp() throws Exception { + protected void startUp() throws Exception + { overlayManager.add(overlay); } @Override - protected void shutDown() throws Exception { + protected void shutDown() throws Exception + { overlayManager.remove(overlay); activity.clear(); } @Subscribe - public void onAnimationChanged(AnimationChanged e) { + public void onAnimationChanged(AnimationChanged e) + { if (!(e.getActor() instanceof Player)) + { return; + } Player p = (Player) e.getActor(); int weapon = -1; if (p.getPlayerComposition() != null) + { weapon = p.getPlayerComposition().getEquipmentId(KitType.WEAPON); + } int delta = 0; - switch (p.getAnimation()) { + switch (p.getAnimation()) + { case 7617: // rune knife case 8194: // dragon knife case 8291: // dragon knife spec @@ -89,9 +100,13 @@ public class TickCounterPlugin extends Plugin { break; case 426: // bow shoot if (weapon == 20997) // twisted bow + { delta = 5; + } else // shortbow + { delta = 3; + } break; case 376: // dds poke case 377: // dds slash @@ -119,7 +134,8 @@ public class TickCounterPlugin extends Plugin { delta = 4; break; case 393: // staff bash - if (weapon == 13652) { // claw scratch + if (weapon == 13652) + { // claw scratch delta = 4; break; } @@ -135,9 +151,13 @@ public class TickCounterPlugin extends Plugin { break; case 401: if (weapon == 13576) // dwh bop + { delta = 6; + } else // used by pickaxe and axe + { delta = 5; + } break; case 1378: case 7045: @@ -158,37 +178,47 @@ public class TickCounterPlugin extends Plugin { case 1203: // chally spec delta = 7; break; - case -1: - blowpiping.remove(p); - break; + case -1: + blowpiping.remove(p); + break; } - if (delta > 0) { + if (delta > 0) + { String name = p.getName(); this.activity.put(name, this.activity.getOrDefault(name, 0) + delta); } } @Subscribe - public void onClientTick(ClientTick e) { + public void onClientTick(ClientTick e) + { /* * Hack for blowpipe since the AnimationChanged event doesn't fire when using a * blowpipe because of its speed. If blowpipe animation restarts, then add 2 */ - for (Player p : blowpiping) { + for (Player p : blowpiping) + { Actor rsp = p; - if (rsp.getActionFrame() == 0 && rsp.getActionFrameCycle() == 1) { + if (rsp.getActionFrame() == 0 && rsp.getActionFrameCycle() == 1) + { String name = p.getName(); - int activity = this.activity.getOrDefault(name, 0).intValue(); + int activity = this.activity.getOrDefault(name, 0); this.activity.put(name, activity + 2); } } } + @Subscribe - public void onGameTick(GameTick tick){ - if(!config.instance())return; + public void onGameTick(GameTick tick) + { + if (!config.instance()) + { + return; + } prevInstance = instanced; instanced = client.isInInstancedRegion(); - if(!prevInstance && instanced){ + if (!prevInstance && instanced) + { activity.clear(); } }