Adds an overlay for the local player counter (#669)

* Adds an overlay for friendly/enemy player count from PvP tools

Signed-off-by: PKLite <stonewall@pklite.xyz>

* Prevents local player from being added to count

Signed-off-by: PKLite <stonewall@pklite.xyz>
This commit is contained in:
pklite
2019-06-20 04:41:15 -04:00
committed by James
parent 72c3963215
commit 4fbc35de96
2 changed files with 83 additions and 9 deletions

View File

@@ -0,0 +1,63 @@
/*
* ******************************************************************************
* * Copyright (c) 2019 RuneLitePlus
* * Redistributions and modifications of this software are permitted as long as this notice remains in its original unmodified state at the top of this file.
* * If there are any questions comments, or feedback about this software, please direct all inquiries directly to the file authors:
* * ST0NEWALL#9112
* * RuneLitePlus Discord: https://discord.gg/Q7wFtCe
* * RuneLitePlus website: https://runelitepl.us
* *****************************************************************************
*/
package net.runelite.client.plugins.pvptools;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.util.Arrays;
import javax.inject.Inject;
import net.runelite.client.ui.overlay.Overlay;
import net.runelite.client.ui.overlay.OverlayLayer;
import net.runelite.client.ui.overlay.OverlayPosition;
import net.runelite.client.ui.overlay.OverlayPriority;
import net.runelite.client.ui.overlay.components.table.TableComponent;
import net.runelite.client.ui.overlay.components.table.TableElement;
import net.runelite.client.ui.overlay.components.table.TableRow;
public class PlayerCountOverlay extends Overlay
{
private final PvpToolsPlugin pvpToolsPlugin;
private final PvpToolsConfig config;
@Inject
public PlayerCountOverlay(PvpToolsPlugin pvpToolsPlugin, PvpToolsConfig pvpToolsConfig)
{
this.pvpToolsPlugin = pvpToolsPlugin;
this.config = pvpToolsConfig;
setLayer(OverlayLayer.ABOVE_WIDGETS);
setPriority(OverlayPriority.HIGHEST);
setPosition(OverlayPosition.TOP_LEFT);
this.setPreferredPosition(OverlayPosition.TOP_LEFT);
}
@Override
public Dimension render(Graphics2D graphics)
{
if (config.countPlayers())
{
TableComponent tableComponent = new TableComponent();
TableElement[] firstRowElements = {
TableElement.builder().content("Friendly").color(Color.GREEN).build(),
TableElement.builder().content(String.valueOf(pvpToolsPlugin.getFriendlyPlayerCount())).build()};
TableRow firstRow = TableRow.builder().elements(Arrays.asList(firstRowElements)).build();
TableElement[] secondRowElements = {
TableElement.builder().content("Enemy").color(Color.RED).build(),
TableElement.builder().content(String.valueOf(pvpToolsPlugin.getEnemyPlayerCount())).build()};
TableRow secondRow = TableRow.builder().elements(Arrays.asList(secondRowElements)).build();
tableComponent.addRows(firstRow, secondRow);
return tableComponent.render(graphics);
}
return null;
}
}

View File

@@ -78,6 +78,9 @@ public class PvpToolsPlugin extends Plugin
@Inject
PvpToolsOverlay pvpToolsOverlay;
@Inject
PlayerCountOverlay playerCountOverlay;
boolean fallinHelperEnabled = false;
private PvpToolsPanel panel;
private MissingPlayersJFrame missingPlayersJFrame;
@@ -185,6 +188,10 @@ public class PvpToolsPlugin extends Plugin
private int[] overheadCount = new int[]{0, 0, 0};
private List ignoredSpells = new ArrayList();
@Getter
private int enemyPlayerCount = 0;
@Getter
private int friendlyPlayerCount = 0;
private List<String> getMissingMembers()
{
@@ -241,6 +248,7 @@ public class PvpToolsPlugin extends Plugin
protected void startUp() throws Exception
{
overlayManager.add(pvpToolsOverlay);
overlayManager.add(playerCountOverlay);
keyManager.registerKeyListener(fallinHotkeyListener);
keyManager.registerKeyListener(renderselfHotkeyListener);
@@ -278,6 +286,7 @@ public class PvpToolsPlugin extends Plugin
protected void shutDown() throws Exception
{
overlayManager.remove(pvpToolsOverlay);
overlayManager.remove(playerCountOverlay);
keyManager.unregisterKeyListener(fallinHotkeyListener);
keyManager.unregisterKeyListener(renderselfHotkeyListener);
clientToolbar.removeNavigation(navButton);
@@ -534,35 +543,37 @@ public class PvpToolsPlugin extends Plugin
panel.numMeleeJLabel.repaint();
}
/**
*
*/
private void updatePlayers()
{
friendlyPlayerCount = 0;
enemyPlayerCount = 0;
if (config.countPlayers())
{
int cc = 0;
int other = 0;
for (Player p : client.getPlayers())
{
if (Objects.nonNull(p))
{
if (p.equals(client.getLocalPlayer()))
{
continue;
}
if (PvPUtil.isAttackable(client, p))
{
if (p.isClanMember())
{
cc++;
friendlyPlayerCount++;
}
else
{
other++;
enemyPlayerCount++;
}
}
}
}
panel.numOther.setText(htmlLabel("Other Player Count: ", String.valueOf(other)));
panel.numCC.setText(htmlLabel("Friendly Player Count: ", String.valueOf(cc)));
panel.numOther.setText(htmlLabel("Other Player Count: ", String.valueOf(enemyPlayerCount)));
panel.numCC.setText(htmlLabel("Friendly Player Count: ", String.valueOf(friendlyPlayerCount)));
panel.numCC.repaint();
panel.numOther.repaint();
}