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