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
|
||||
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();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user