From 34dec22eef20d1d93788cc17c07bfbc6dd391492 Mon Sep 17 00:00:00 2001 From: Scott Burns Date: Thu, 16 May 2019 01:14:16 +0200 Subject: [PATCH] Refactor PvpTools --- .../pvptools/CurrentPlayersJFrame.java | 20 ++- .../pvptools/MissingPlayersJFrame.java | 7 +- .../plugins/pvptools/PvpToolsConfig.java | 34 +++-- .../plugins/pvptools/PvpToolsOverlay.java | 13 +- .../plugins/pvptools/PvpToolsPanel.java | 32 ++--- .../plugins/pvptools/PvpToolsPlugin.java | 134 ++++++------------ 6 files changed, 93 insertions(+), 147 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/pvptools/CurrentPlayersJFrame.java b/runelite-client/src/main/java/net/runelite/client/plugins/pvptools/CurrentPlayersJFrame.java index e55b528c11..19daf25e0f 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/pvptools/CurrentPlayersJFrame.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/pvptools/CurrentPlayersJFrame.java @@ -9,20 +9,26 @@ package net.runelite.client.plugins.pvptools; -import net.runelite.api.Client; -import net.runelite.client.ui.FontManager; - -import javax.swing.*; -import java.awt.*; +import java.awt.BorderLayout; +import java.awt.Font; +import java.awt.Toolkit; import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.StringSelection; import java.awt.event.ActionListener; import java.util.List; +import javax.swing.JButton; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JList; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import net.runelite.api.Client; +import net.runelite.client.ui.FontManager; public class CurrentPlayersJFrame extends JFrame { - public JList currentPlayersJList; + public JList currentPlayersJList; CurrentPlayersJFrame(Client client, PvpToolsPlugin pvpToolsPlugin, List list) { @@ -35,7 +41,7 @@ public class CurrentPlayersJFrame extends JFrame JButton refreshJButton = new JButton("Refresh"); refreshJButton.addActionListener(pvpToolsPlugin.currentPlayersActionListener); JButton copyJButton = new JButton("Copy List"); - currentPlayersJList = new JList(list.toArray()); + currentPlayersJList = new JList<>(list.toArray()); ActionListener copyButtonActionListener = e -> { StringSelection stringSelection; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/pvptools/MissingPlayersJFrame.java b/runelite-client/src/main/java/net/runelite/client/plugins/pvptools/MissingPlayersJFrame.java index a30dd9a04e..08831d0fca 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/pvptools/MissingPlayersJFrame.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/pvptools/MissingPlayersJFrame.java @@ -10,28 +10,25 @@ package net.runelite.client.plugins.pvptools; import java.awt.BorderLayout; -import java.awt.Container; import java.awt.Font; import java.awt.Toolkit; import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.StringSelection; import java.awt.event.ActionListener; import java.util.List; -import java.util.Vector; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.JPanel; import javax.swing.JScrollPane; -import net.runelite.api.ClanMember; import net.runelite.api.Client; import net.runelite.client.ui.FontManager; public class MissingPlayersJFrame extends JFrame { - public JList missingPlayersJList; + public JList missingPlayersJList; MissingPlayersJFrame(Client client, PvpToolsPlugin pvpToolsPlugin, List list) { @@ -44,7 +41,7 @@ public class MissingPlayersJFrame extends JFrame JButton refreshJButton = new JButton("Refresh"); refreshJButton.addActionListener(pvpToolsPlugin.playersButtonActionListener); JButton copyJButton = new JButton("Copy List"); - missingPlayersJList = new JList(list.toArray()); + missingPlayersJList = new JList<>(list.toArray()); ActionListener copyButtonActionListener = e -> { StringSelection stringSelection; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/pvptools/PvpToolsConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/pvptools/PvpToolsConfig.java index 0c5f96b1c1..9b4e65ddb2 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/pvptools/PvpToolsConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/pvptools/PvpToolsConfig.java @@ -9,8 +9,6 @@ package net.runelite.client.plugins.pvptools; -import java.awt.Color; -import java.security.Key; import net.runelite.client.config.Config; import net.runelite.client.config.ConfigGroup; import net.runelite.client.config.ConfigItem; @@ -33,8 +31,7 @@ public interface PvpToolsConfig extends Config @ConfigItem( keyName = "countOverHeads", name = "Count Enemy Overheads", - description = "Counts the number of each protection prayer attackable targets not in your CC are currently" + - " using", + description = "Counts the number of each protection prayer attackable targets not in your CC are currently using", position = 4 ) default boolean countOverHeads() @@ -63,7 +60,7 @@ public interface PvpToolsConfig extends Config { return Keybind.NOT_SET; } - + @ConfigItem( keyName = "renderSelfHotkey", name = "Render Self Hotkey", @@ -100,11 +97,11 @@ public interface PvpToolsConfig extends Config } @ConfigItem( - keyName = "levelRangeAttackOptions", - name = "Moves Other Attack Options", - description = "Moves the attack option for people that are outside your level range", - position = 10, - group = "Right-Click Attack Options" + keyName = "levelRangeAttackOptions", + name = "Moves Other Attack Options", + description = "Moves the attack option for people that are outside your level range", + position = 10, + group = "Right-Click Attack Options" ) default boolean levelRangeAttackOptions() { @@ -125,18 +122,19 @@ public interface PvpToolsConfig extends Config @ConfigItem( keyName = "missingPlayers", name = "Missing CC Players", - description = "Adds a button to the PvP Tools panel that opens a window showing which CC members are not at" + - " the current players location", + description = "Adds a button to the PvP Tools panel that opens a window showing which CC members are not at the current players location", position = 15 ) - default boolean missingPlayersEnabled() { return true; } + default boolean missingPlayersEnabled() + { + return true; + } @ConfigItem( - keyName = "currentPlayers", - name = "Current CC Players", - description = "Adds a button to the PvP Tools panel that opens a window showing which CC members currently at" + - " the players location", - position = 16 + keyName = "currentPlayers", + name = "Current CC Players", + description = "Adds a button to the PvP Tools panel that opens a window showing which CC members currently at the players location", + position = 16 ) default boolean currentPlayersEnabled() { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/pvptools/PvpToolsOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/pvptools/PvpToolsOverlay.java index f9abf719c7..7d042374ac 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/pvptools/PvpToolsOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/pvptools/PvpToolsOverlay.java @@ -9,14 +9,13 @@ package net.runelite.client.plugins.pvptools; -import java.awt.*; -import java.util.ArrayList; -import java.util.Arrays; +import java.awt.BasicStroke; +import java.awt.Color; +import java.awt.Dimension; +import java.awt.Graphics2D; +import java.awt.Polygon; import javax.inject.Inject; - -import net.runelite.api.Actor; import net.runelite.api.Client; -import net.runelite.api.Player; import net.runelite.api.Point; import net.runelite.client.ui.FontManager; import net.runelite.client.ui.overlay.Overlay; @@ -40,7 +39,7 @@ public class PvpToolsOverlay extends Overlay setLayer(OverlayLayer.ABOVE_WIDGETS); setPriority(OverlayPriority.HIGH); setPosition(OverlayPosition.DYNAMIC); -} + } @Override diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/pvptools/PvpToolsPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/pvptools/PvpToolsPanel.java index 9d82932fa2..6e709ede39 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/pvptools/PvpToolsPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/pvptools/PvpToolsPanel.java @@ -33,21 +33,18 @@ public class PvpToolsPanel extends PluginPanel private final JLabel loggedLabel = new JLabel(); private final JRichTextPane emailLabel = new JRichTextPane(); - public JLabel numCC = new JLabel(); - public JLabel numOther = new JLabel(); - public JLabel numMageJLabel = new JLabel(" "); - public JLabel numRangeJLabel = new JLabel(" "); - public JLabel numMeleeJLabel = new JLabel(" "); - public JLabel totalRiskLabel = new JLabel(" "); - public JLabel riskProtectingItem = new JLabel(" "); - public JLabel biggestItemLabel = new JLabel("Protected Item: "); - public JButton missingPlayers = new JButton("Show missing CC members"); - public JButton currentPlayers = new JButton("Show current CC members"); - public JLabel numBrews = new JLabel(); - @Inject - private JPanel pvpToolsPanel = new JPanel(new GridLayout(11, 1)); + JLabel numCC = new JLabel(); + JLabel numOther = new JLabel(); + JLabel numMageJLabel = new JLabel(" "); + JLabel numRangeJLabel = new JLabel(" "); + JLabel numMeleeJLabel = new JLabel(" "); + JLabel totalRiskLabel = new JLabel(" "); + JLabel riskProtectingItem = new JLabel(" "); + JLabel biggestItemLabel = new JLabel("Protected Item: "); + JButton missingPlayers = new JButton("Show missing CC members"); + JButton currentPlayers = new JButton("Show current CC members"); + private JLabel numBrews = new JLabel(); private JPanel missingPlayersPanel = new JPanel(); - private JPanel currentPlayersPanel = new JPanel(); public static String htmlLabel(String key, String value) @@ -62,7 +59,6 @@ public class PvpToolsPanel extends PluginPanel setBorder(new EmptyBorder(10, 10, 10, 10)); - JPanel versionPanel = new JPanel(); versionPanel.setBackground(ColorScheme.DARKER_GRAY_COLOR); versionPanel.setBorder(new EmptyBorder(10, 10, 10, 10)); @@ -136,7 +132,7 @@ public class PvpToolsPanel extends PluginPanel } - public void disablePlayerCount() + void disablePlayerCount() { this.numOther.setText("Disabled"); this.numCC.setText("Disabled"); @@ -144,7 +140,7 @@ public class PvpToolsPanel extends PluginPanel this.numOther.repaint(); } - public void disablePrayerCount() + void disablePrayerCount() { this.numMageJLabel.setText("disabled"); this.numRangeJLabel.setText("disabled"); @@ -154,7 +150,7 @@ public class PvpToolsPanel extends PluginPanel this.numMeleeJLabel.repaint(); } - public void disableRiskCalculator() + void disableRiskCalculator() { this.totalRiskLabel.setText("disabled"); this.riskProtectingItem.setText("disabled"); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/pvptools/PvpToolsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/pvptools/PvpToolsPlugin.java index e03bf9f48b..2214df1493 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/pvptools/PvpToolsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/pvptools/PvpToolsPlugin.java @@ -20,7 +20,6 @@ import java.util.NavigableMap; import java.util.Objects; import java.util.TreeMap; import java.util.concurrent.CopyOnWriteArrayList; -import java.util.concurrent.ScheduledExecutorService; import java.util.stream.Collectors; import javax.inject.Inject; import lombok.AccessLevel; @@ -45,13 +44,11 @@ import net.runelite.api.events.PlayerSpawned; import net.runelite.client.config.ConfigManager; import net.runelite.client.eventbus.Subscribe; import net.runelite.client.game.AsyncBufferedImage; -import net.runelite.client.game.ClanManager; import net.runelite.client.game.ItemManager; import net.runelite.client.input.KeyManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginType; -import net.runelite.client.plugins.PluginManager; import net.runelite.client.plugins.clanchat.ClanChatPlugin; import static net.runelite.client.plugins.pvptools.PvpToolsPanel.htmlLabel; import net.runelite.client.ui.ClientToolbar; @@ -74,25 +71,30 @@ public class PvpToolsPlugin extends Plugin { @Inject PvpToolsOverlay pvpToolsOverlay; + boolean fallinHelperEnabled = false; private PvpToolsPanel panel; private MissingPlayersJFrame missingPlayersJFrame; private CurrentPlayersJFrame currentPlayersJFrame; private NavigationButton navButton; + @Getter(AccessLevel.PACKAGE) @Setter(AccessLevel.PACKAGE) private boolean attackHotKeyPressed; + @Getter(AccessLevel.PACKAGE) @Setter(AccessLevel.PACKAGE) private boolean hideAll; - @Inject - private ScheduledExecutorService executorService; + @Inject private OverlayManager overlayManager; + @Inject private Client client; + @Inject private ItemManager itemManager; + private PvpToolsPlugin uhPvpToolsPlugin = this; /** @@ -144,15 +146,6 @@ public class PvpToolsPlugin extends Plugin @Inject private PvpToolsConfig config; - @Inject - private PluginManager pluginManager; - - @Inject - private ClanManager clanManager; - - - private ClanChatPlugin clanChatPlugin; - /** * The HotKeyListener for the hot key assigned in the config that triggers the Fall In Helper feature */ @@ -163,7 +156,7 @@ public class PvpToolsPlugin extends Plugin toggleFallinHelper(); } }; - + private final HotkeyListener renderselfHotkeyListener = new HotkeyListener(() -> config.renderSelf()) { public void hotkeyPressed() @@ -174,23 +167,11 @@ public class PvpToolsPlugin extends Plugin private int[] overheadCount = new int[]{0, 0, 0}; - private Comparator itemPriceComparator = new Comparator() - { - @Override - public int compare(Item o1, Item o2) - { - return (itemManager.getItemPrice(itemManager.getItemComposition(o1.getId()).getPrice()) - - itemManager.getItemPrice(itemManager.getItemComposition(o2.getId()).getPrice())); - } - }; - - private String mtarget; - - public List getMissingMembers() + private List getMissingMembers() { CopyOnWriteArrayList ccMembers = ClanChatPlugin.getClanMembers(); - ArrayList missingMembers = new ArrayList(); - for (ClanMember clanMember:client.getClanMembers()) + ArrayList missingMembers = new ArrayList<>(); + for (ClanMember clanMember : client.getClanMembers()) { if (!Objects.isNull(clanMember)) { @@ -206,16 +187,13 @@ public class PvpToolsPlugin extends Plugin } return missingMembers; - - //Arrays.stream(Arrays.stream(client.getClanMembers()).filter(Objects::nonNull).map(ClanMember::getUsername) - //.toArray()).collect(Collectors.toList()); } - public List getCurrentMembers() + private List getCurrentMembers() { CopyOnWriteArrayList ccMembers = ClanChatPlugin.getClanMembers(); - ArrayList currentMembers = new ArrayList(); - for (ClanMember clanMember:client.getClanMembers()) + ArrayList currentMembers = new ArrayList<>(); + for (ClanMember clanMember : client.getClanMembers()) { if (!Objects.isNull(clanMember)) { @@ -231,13 +209,9 @@ public class PvpToolsPlugin extends Plugin } return currentMembers; - - //Arrays.stream(Arrays.stream(client.getClanMembers()).filter(Objects::nonNull).map(ClanMember::getUsername) - //.toArray()).collect(Collectors.toList()); } - @Provides PvpToolsConfig config(ConfigManager configManager) { @@ -247,7 +221,6 @@ public class PvpToolsPlugin extends Plugin @Override protected void startUp() throws Exception { - overlayManager.add(pvpToolsOverlay); keyManager.registerKeyListener(fallinHotkeyListener); @@ -399,79 +372,56 @@ public class PvpToolsPlugin extends Plugin @Subscribe public void onMenuEntryAdded(MenuEntryAdded menuEntryAdded) { - if (config.attackOptionsFriend() || config.attackOptionsClan() || config.levelRangeAttackOptions()) + if (config.attackOptionsFriend() || config.attackOptionsClan() || config.levelRangeAttackOptions()) + { + if (client.getGameState() != GameState.LOGGED_IN) { - if (client.getGameState() != GameState.LOGGED_IN) + return; + } + Player[] players = client.getCachedPlayers(); + Player player = null; + int identifier = menuEntryAdded.getIdentifier(); + if (identifier >= 0 && identifier < players.length) + { + player = players[identifier]; + } + if (player == null) + { + return; + } + if (attackHotKeyPressed && config.attackOptionsClan() || config.attackOptionsFriend() || + config.levelRangeAttackOptions()) + { + if (config.attackOptionsFriend() && player.isFriend()) { - return; + moveEntry(); } - Player[] players = client.getCachedPlayers(); - Player player = null; - int identifier = menuEntryAdded.getIdentifier(); - if (identifier >= 0 && identifier < players.length) + if (config.attackOptionsClan() && player.isClanMember()) { - player = players[identifier]; + moveEntry(); } - if (player == null) + if (config.levelRangeAttackOptions() && !PvPUtil.isAttackable(client, player)) { - return; - } - final String option = Text.removeTags(menuEntryAdded.getOption()).toLowerCase(); - final String mtarget = Text.removeTags(menuEntryAdded.getTarget()).toLowerCase(); - if (attackHotKeyPressed && config.attackOptionsClan() || config.attackOptionsFriend() || - config.levelRangeAttackOptions()) - { - if (config.attackOptionsFriend() && player.isFriend()) - { - moveEntry(mtarget); - } - if (config.attackOptionsClan() && player.isClanMember()) - { - moveEntry(mtarget); - } - if (config.levelRangeAttackOptions() && !PvPUtil.isAttackable(client, player)) - { - moveEntry(mtarget); - } + moveEntry(); } } + } } - private void moveEntry(String mtarget) + private void moveEntry() { - this.mtarget = mtarget; MenuEntry[] menuEntries = client.getMenuEntries(); MenuEntry lastEntry = menuEntries[menuEntries.length - 1]; - // strip out existing '); - if (idx != -1) - { - target = target.substring(idx + 1); - } - /*System.out.println("Contents : " + lastEntry.getTarget()); - System.out.println("Contents : " + lastEntry.getIdentifier()); - System.out.println("Contents : " + lastEntry.getOption()); - System.out.println("length : " + menuEntries.length);*/ - if (menuEntries[menuEntries.length - 1] != null) - { - //System.out.println(menuEntries.length + ": " + menuEntries[menuEntries.length-1]); - } if (lastEntry.getOption().contains("attack".toLowerCase())) { ArrayUtils.shift(menuEntries, 1); - //ArrayUtils.add(menuEntries, menuEntries.length - 2); - //menuEntries = ArrayUtils.remove(menuEntries, menuEntries.length - 1); - //menuEntrySwapperPlugin.swap("attack", option, mtarget, false); } if (lastEntry.getOption().equals("Attack")) { ArrayUtils.shift(menuEntries, 1); - - //menuEntries = ArrayUtils.sremove(menuEntries, menuEntries.length - 1); - //menuEntrySwapperPlugin.swap("attack", option, mtarget, false); } + client.setMenuEntries(menuEntries); }