Add party support
This commit is contained in:
@@ -26,12 +26,14 @@ package net.runelite.client.plugins.performancestats;
|
|||||||
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
import net.runelite.http.api.ws.messages.party.PartyMemberMessage;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
class Performance
|
class Performance extends PartyMemberMessage
|
||||||
{
|
{
|
||||||
private static final double TICK_LENGTH = 0.6;
|
private static final double TICK_LENGTH = 0.6;
|
||||||
|
|
||||||
|
@Setter
|
||||||
String username;
|
String username;
|
||||||
|
|
||||||
double damageDealt = 0;
|
double damageDealt = 0;
|
||||||
|
|||||||
@@ -92,6 +92,17 @@ public class PerformanceStatsOverlay extends Overlay
|
|||||||
final String[] rowElements = createRowElements(performance);
|
final String[] rowElements = createRowElements(performance);
|
||||||
tableComponent.addRow(rowElements);
|
tableComponent.addRow(rowElements);
|
||||||
|
|
||||||
|
for (Performance p : tracker.getPartyDataMap().values())
|
||||||
|
{
|
||||||
|
if (p.getMemberId().equals(performance.getMemberId()))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
final String[] eles = createRowElements(p);
|
||||||
|
tableComponent.addRow(eles);
|
||||||
|
}
|
||||||
|
|
||||||
return panelComponent.render(graphics);
|
return panelComponent.render(graphics);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -26,6 +26,10 @@ package net.runelite.client.plugins.performancestats;
|
|||||||
|
|
||||||
import com.google.inject.Provides;
|
import com.google.inject.Provides;
|
||||||
import java.text.DecimalFormat;
|
import java.text.DecimalFormat;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.UUID;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@@ -47,10 +51,17 @@ import net.runelite.client.chat.QueuedMessage;
|
|||||||
import net.runelite.client.config.ConfigManager;
|
import net.runelite.client.config.ConfigManager;
|
||||||
import net.runelite.client.eventbus.Subscribe;
|
import net.runelite.client.eventbus.Subscribe;
|
||||||
import net.runelite.client.events.OverlayMenuClicked;
|
import net.runelite.client.events.OverlayMenuClicked;
|
||||||
|
import net.runelite.client.events.PartyChanged;
|
||||||
import net.runelite.client.game.NPCManager;
|
import net.runelite.client.game.NPCManager;
|
||||||
import net.runelite.client.plugins.Plugin;
|
import net.runelite.client.plugins.Plugin;
|
||||||
import net.runelite.client.plugins.PluginDescriptor;
|
import net.runelite.client.plugins.PluginDescriptor;
|
||||||
import net.runelite.client.ui.overlay.OverlayManager;
|
import net.runelite.client.ui.overlay.OverlayManager;
|
||||||
|
import net.runelite.client.util.Text;
|
||||||
|
import net.runelite.client.ws.PartyMember;
|
||||||
|
import net.runelite.client.ws.PartyService;
|
||||||
|
import net.runelite.client.ws.WSClient;
|
||||||
|
import net.runelite.http.api.ws.messages.party.UserPart;
|
||||||
|
import net.runelite.http.api.ws.messages.party.UserSync;
|
||||||
|
|
||||||
@PluginDescriptor(
|
@PluginDescriptor(
|
||||||
name = "Performance Stats",
|
name = "Performance Stats",
|
||||||
@@ -86,6 +97,12 @@ public class PerformanceStatsPlugin extends Plugin
|
|||||||
@Inject
|
@Inject
|
||||||
private NPCManager npcManager;
|
private NPCManager npcManager;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private PartyService partyService;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private WSClient wsClient;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
private boolean enabled = false;
|
private boolean enabled = false;
|
||||||
@Getter
|
@Getter
|
||||||
@@ -100,6 +117,10 @@ public class PerformanceStatsPlugin extends Plugin
|
|||||||
private boolean hopping;
|
private boolean hopping;
|
||||||
private int pausedTicks = 0;
|
private int pausedTicks = 0;
|
||||||
|
|
||||||
|
// Party System
|
||||||
|
@Getter
|
||||||
|
private final Map<UUID, Performance> partyDataMap = Collections.synchronizedMap(new HashMap<>());
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
PerformanceStatsConfig getConfig(ConfigManager configManager)
|
PerformanceStatsConfig getConfig(ConfigManager configManager)
|
||||||
{
|
{
|
||||||
@@ -110,12 +131,14 @@ public class PerformanceStatsPlugin extends Plugin
|
|||||||
protected void startUp()
|
protected void startUp()
|
||||||
{
|
{
|
||||||
overlayManager.add(performanceTrackerOverlay);
|
overlayManager.add(performanceTrackerOverlay);
|
||||||
|
wsClient.registerMessage(Performance.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void shutDown()
|
protected void shutDown()
|
||||||
{
|
{
|
||||||
overlayManager.remove(performanceTrackerOverlay);
|
overlayManager.remove(performanceTrackerOverlay);
|
||||||
|
wsClient.unregisterMessage(Performance.class);
|
||||||
disable();
|
disable();
|
||||||
reset();
|
reset();
|
||||||
}
|
}
|
||||||
@@ -256,6 +279,10 @@ public class PerformanceStatsPlugin extends Plugin
|
|||||||
submit();
|
submit();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final String name = client.getLocalPlayer().getName();
|
||||||
|
performance.setUsername(Text.removeTags(name));
|
||||||
|
sendPerformance();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Subscribe
|
@Subscribe
|
||||||
@@ -381,4 +408,43 @@ public class PerformanceStatsPlugin extends Plugin
|
|||||||
.append(")")
|
.append(")")
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void sendPerformance()
|
||||||
|
{
|
||||||
|
final PartyMember me = partyService.getLocalMember();
|
||||||
|
if (me != null && me.getMemberId() != null)
|
||||||
|
{
|
||||||
|
performance.setMemberId(me.getMemberId());
|
||||||
|
wsClient.send(performance);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Subscribe
|
||||||
|
public void onPerformance(final Performance performance)
|
||||||
|
{
|
||||||
|
partyDataMap.put(performance.getMemberId(), performance);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Subscribe
|
||||||
|
public void onUserSync(final UserSync event)
|
||||||
|
{
|
||||||
|
if (isEnabled())
|
||||||
|
{
|
||||||
|
sendPerformance();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Subscribe
|
||||||
|
public void onUserPart(final UserPart event)
|
||||||
|
{
|
||||||
|
partyDataMap.remove(event.getMemberId());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Subscribe
|
||||||
|
public void onPartyChanged(final PartyChanged event)
|
||||||
|
{
|
||||||
|
// Reset party
|
||||||
|
partyDataMap.clear();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user