From 1552b8d9fcae43b1858025b14c8f0aece99347d3 Mon Sep 17 00:00:00 2001 From: James Munson Date: Sat, 22 Jun 2019 01:47:19 -0700 Subject: [PATCH 1/4] Moved pile stuff in player indicators to the pileindicators --- .../pileindicators/PileIndicatorsConfig.java | 23 ++++++++++ .../pileindicators/PileIndicatorsOverlay.java | 29 +++++++++++- .../pileindicators/PileIndicatorsPlugin.java | 45 +++++++++++++++++++ .../PlayerIndicatorsConfig.java | 40 ----------------- .../PlayerIndicatorsOverlay.java | 4 -- .../PlayerIndicatorsPlugin.java | 41 ----------------- .../PlayerIndicatorsService.java | 8 +--- .../PlayerIndicatorsTileOverlay.java | 23 ---------- 8 files changed, 97 insertions(+), 116 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/pileindicators/PileIndicatorsConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/pileindicators/PileIndicatorsConfig.java index f761236a96..2a2c0a8460 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/pileindicators/PileIndicatorsConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/pileindicators/PileIndicatorsConfig.java @@ -187,4 +187,27 @@ public interface PileIndicatorsConfig extends Config { return false; } + + @ConfigItem( + position = 13, + keyName = "drawPileHull", + name = "Draws the hull of the pile.", + description = "Draws the hull of the pile for best visibility." + ) + default boolean drawPileHull() + { + return false; + } + + @ConfigItem( + position = 14, + keyName = "highlightPile", + name = "Highlight Pile", + description = "Highlights Pile Onscreen" + ) + default boolean highlightPile() + { + return false; + } + } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/pileindicators/PileIndicatorsOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/pileindicators/PileIndicatorsOverlay.java index 98bb064132..2e21a36cd6 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/pileindicators/PileIndicatorsOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/pileindicators/PileIndicatorsOverlay.java @@ -26,6 +26,7 @@ package net.runelite.client.plugins.pileindicators; import net.runelite.api.Actor; import net.runelite.api.Client; +import net.runelite.client.plugins.playerindicators.PlayerIndicatorsService; import net.runelite.client.ui.overlay.*; import javax.inject.Inject; @@ -38,14 +39,16 @@ public class PileIndicatorsOverlay extends Overlay private final Client client; private final PileIndicatorsPlugin plugin; private final PileIndicatorsConfig config; + private final PlayerIndicatorsService playerIndicatorsService; @Inject - PileIndicatorsOverlay(final Client client, final PileIndicatorsPlugin plugin, final PileIndicatorsConfig config) + PileIndicatorsOverlay(final Client client, final PileIndicatorsPlugin plugin, final PileIndicatorsConfig config, PlayerIndicatorsService playerIndicatorsService) { super(plugin); this.client = client; this.plugin = plugin; this.config = config; + this.playerIndicatorsService = playerIndicatorsService; setLayer(OverlayLayer.ABOVE_SCENE); setPosition(OverlayPosition.DYNAMIC); @@ -57,7 +60,18 @@ public class PileIndicatorsOverlay extends Overlay public Dimension render(Graphics2D graphics) { ArrayList> stackList = plugin.getStacks(); + if (config.drawPileHull()) + { + playerIndicatorsService.forEachPlayer((player, color) -> + { + if (plugin.isPile(player)) + { + Polygon objectClickbox = player.getConvexHull(); + renderPoly(graphics, config.playerPileColor(), objectClickbox); + } + }); + } if (stackList != null) { for (ArrayList actorArrayList : stackList) @@ -89,4 +103,17 @@ public class PileIndicatorsOverlay extends Overlay return null; } + + private void renderPoly(Graphics2D graphics, Color color, Polygon polygon) + { + if (polygon != null) + { + graphics.setColor(color); + graphics.setStroke(new BasicStroke(2)); + graphics.draw(polygon); + graphics.setColor(new Color(color.getRed(), color.getGreen(), color.getBlue(), 20)); + graphics.fill(polygon); + } + } + } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/pileindicators/PileIndicatorsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/pileindicators/PileIndicatorsPlugin.java index 4685d1a64f..241ad63f0a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/pileindicators/PileIndicatorsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/pileindicators/PileIndicatorsPlugin.java @@ -28,7 +28,9 @@ import com.google.inject.Binder; import com.google.inject.Provides; import lombok.extern.slf4j.Slf4j; import net.runelite.api.*; +import net.runelite.api.events.GameTick; import net.runelite.client.config.ConfigManager; +import net.runelite.client.eventbus.Subscribe; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginType; @@ -38,6 +40,8 @@ import javax.inject.Inject; import javax.inject.Singleton; import java.awt.*; import java.util.ArrayList; +import java.util.List; +import java.util.Objects; @PluginDescriptor( name = "Pile Indicators", @@ -64,6 +68,9 @@ public class PileIndicatorsPlugin extends Plugin @Inject private PileIndicatorsOverlay overlay; + private List pileList; + private ArrayList callers = new ArrayList<>(); + @Provides PileIndicatorsConfig provideConfig(ConfigManager configManager) { @@ -87,6 +94,35 @@ public class PileIndicatorsPlugin extends Plugin overlayManager.remove(overlay); } + @Subscribe + public void onGameTick(GameTick gameTick) + { + if (config.highlightPile() && callers != null) + { + for (Player p : client.getPlayers()) + { + for (String name : callers) + { + Actor pile; + String finalName = name.toLowerCase().replace("_", " "); + if (p.getName().toLowerCase().replace("_", " ").equals(finalName)) + { + pile = p.getInteracting(); + if (pile != null) + { + pileList.set(callers.indexOf(name), pile.getName()); + //pileList.add(pile.getName()); + } + else + { + pileList.set(callers.indexOf(name), ""); + } + } + } + } + } + } + protected ArrayList> getStacks() { ArrayList> outerArrayList = new ArrayList<>(); @@ -159,6 +195,15 @@ public class PileIndicatorsPlugin extends Plugin return null; } + boolean isPile(Player player) + { + if (Objects.nonNull(pileList) && pileList.size() > 0) + { + return pileList.contains(player.getName()); + } + return false; + } + protected PileType getPileType(ArrayList pile) { PileType pileType = null; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsConfig.java index be6e7f0067..b19e0f85a1 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsConfig.java @@ -365,46 +365,6 @@ public interface PlayerIndicatorsConfig extends Config return Color.WHITE; } - @ConfigItem( - position = 27, - keyName = "highlightPile", - name = "Highlight Pile", - description = "Highlights Pile Onscreen", - group = "Callers" - ) - default boolean highlightPile() - { - return false; - } - - @ConfigItem( - position = 29, - keyName = "drawPileHull", - name = "Draws the hull of the pile.", - description = "Draws the hull of the pile for best visibility.", - group = "Callers" - ) - default boolean drawPileHull() - { - return false; - } - - @Range( - min = 1, - max = 10 - ) - @ConfigItem( - position = 30, - keyName = "pileColor", - name = "Pile Color", - description = "Color of Indicated Pile", - group = "Callers" - ) - default Color pileColor() - { - return Color.WHITE; - } - @ConfigItem( position = 27, keyName = "unchargedGlory", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsOverlay.java index 85ff9f4192..bd9d0bed03 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsOverlay.java @@ -172,10 +172,6 @@ public class PlayerIndicatorsOverlay extends Overlay { name = "[C] " + name; } - if (config.highlightPile() && playerIndicatorsPlugin.isPile(actor)) - { - name = "[P] " + name; - } if (config.showCombatLevel()) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsPlugin.java index 2bf360fdc2..e3b0ad3f90 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsPlugin.java @@ -128,35 +128,6 @@ public class PlayerIndicatorsPlugin extends Plugin } } - @Subscribe - public void onGameTick(GameTick gameTick) - { - if (config.highlightPile() && callers != null) - { - for (Player p : client.getPlayers()) - { - for (String name : callers) - { - Actor pile; - String finalName = name.toLowerCase().replace("_", " "); - if (p.getName().toLowerCase().replace("_", " ").equals(finalName)) - { - pile = p.getInteracting(); - if (pile != null) - { - pileList.set(callers.indexOf(name), pile.getName()); - //pileList.add(pile.getName()); - } - else - { - pileList.set(callers.indexOf(name), ""); - } - } - } - } - } - } - @Subscribe public void onClanMemberJoined(ClanMemberJoined event) { @@ -213,14 +184,6 @@ public class PlayerIndicatorsPlugin extends Plugin return false; } - boolean isPile(Player player) - { - if (Objects.nonNull(pileList) && pileList.size() > 0) - { - return pileList.contains(player.getName()); - } - return false; - } @Subscribe public void onMenuEntryAdded(MenuEntryAdded menuEntryAdded) @@ -328,10 +291,6 @@ public class PlayerIndicatorsPlugin extends Plugin { color = config.callerColor(); } - if (config.colorPlayerMenu() && config.highlightPile() && this.isPile(player)) - { - color = config.pileColor(); - } if (image != -1 || color != null) { MenuEntry[] menuEntries = client.getMenuEntries(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsService.java b/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsService.java index 0fae391e05..51717af33f 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsService.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsService.java @@ -50,8 +50,7 @@ public class PlayerIndicatorsService public void forEachPlayer(final BiConsumer consumer) { if (!config.highlightOwnPlayer() && !config.drawClanMemberNames() - && !config.highlightFriends() && !config.highlightNonClanMembers() && !config.highlightTargets() - && !config.highlightPile() && !config.highlightCallers() && !config.highlightTeamMembers()) + && !config.highlightFriends() && !config.highlightNonClanMembers() && !config.highlightTargets() && !config.highlightCallers() && !config.highlightTeamMembers()) { return; } @@ -107,11 +106,6 @@ public class PlayerIndicatorsService { consumer.accept(player, config.callerColor()); } - if (config.highlightPile() && playerIndicatorsPlugin.isPile(player) - && !player.isClanMember()) - { - consumer.accept(player, config.pileColor()); - } } } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsTileOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsTileOverlay.java index bf69efda5f..473ef5f221 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsTileOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsTileOverlay.java @@ -58,18 +58,6 @@ public class PlayerIndicatorsTileOverlay extends Overlay @Override public Dimension render(Graphics2D graphics) { - if (config.drawPileHull()) - { - playerIndicatorsService.forEachPlayer((player, color) -> - { - if (playerIndicatorsPlugin.isPile(player)) - { - Polygon objectClickbox = player.getConvexHull(); - - renderPoly(graphics, config.pileColor(), objectClickbox); - } - }); - } if (!config.drawTiles() /*&& !config.drawPlayerHull()*/) { return null; @@ -89,15 +77,4 @@ public class PlayerIndicatorsTileOverlay extends Overlay return null; } - private void renderPoly(Graphics2D graphics, Color color, Polygon polygon) - { - if (polygon != null) - { - graphics.setColor(color); - graphics.setStroke(new BasicStroke(2)); - graphics.draw(polygon); - graphics.setColor(new Color(color.getRed(), color.getGreen(), color.getBlue(), 20)); - graphics.fill(polygon); - } - } } From fc3547bb73dbdf2e2a52e465f1d326d436499b22 Mon Sep 17 00:00:00 2001 From: James Munson Date: Sat, 22 Jun 2019 14:51:06 -0700 Subject: [PATCH 2/4] Checkstyle --- .../plugins/playerindicators/PlayerIndicatorsPlugin.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsPlugin.java index e3b0ad3f90..12358a2273 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsPlugin.java @@ -29,9 +29,7 @@ import java.awt.Color; import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import java.util.Objects; import javax.inject.Inject; -import net.runelite.api.Actor; import net.runelite.api.ClanMember; import net.runelite.api.ClanMemberRank; import static net.runelite.api.ClanMemberRank.UNRANKED; @@ -54,7 +52,6 @@ import net.runelite.api.Player; import net.runelite.api.events.ClanMemberJoined; import net.runelite.api.events.ClanMemberLeft; import net.runelite.api.events.ConfigChanged; -import net.runelite.api.events.GameTick; import net.runelite.api.events.MenuEntryAdded; import net.runelite.client.config.ConfigManager; import net.runelite.client.eventbus.Subscribe; From 42654621f07f2fe14c2cccd3d2e5cb973a407df0 Mon Sep 17 00:00:00 2001 From: James Munson Date: Sat, 22 Jun 2019 14:58:31 -0700 Subject: [PATCH 3/4] How did i miss this --- .../plugins/playerindicators/PlayerIndicatorsTileOverlay.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsTileOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsTileOverlay.java index 473ef5f221..5ae7299db6 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsTileOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsTileOverlay.java @@ -25,8 +25,6 @@ package net.runelite.client.plugins.playerindicators; -import java.awt.BasicStroke; -import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics2D; import java.awt.Polygon; From 9d07e360f5b61a98560d40a32fd64c37432ea921 Mon Sep 17 00:00:00 2001 From: James Munson Date: Sat, 22 Jun 2019 14:58:57 -0700 Subject: [PATCH 4/4] How did i miss this --- .../client/plugins/playerindicators/PlayerIndicatorsConfig.java | 1 - 1 file changed, 1 deletion(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsConfig.java index b19e0f85a1..47ce1fd775 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsConfig.java @@ -29,7 +29,6 @@ import net.runelite.api.ClanMemberRank; import net.runelite.client.config.Config; import net.runelite.client.config.ConfigGroup; import net.runelite.client.config.ConfigItem; -import net.runelite.client.config.Range; @ConfigGroup("playerindicators") public interface PlayerIndicatorsConfig extends Config