From a587cb5c8204bb7175ce04d4d0e4ea996a458624 Mon Sep 17 00:00:00 2001 From: Kyleeld <48519776+Kyleeld@users.noreply.github.com> Date: Fri, 17 May 2019 08:43:45 +0100 Subject: [PATCH] Freeze additions (#275) * Update FreezeTimersOverlay.java * add FreezeInfo.Java --- .../plugins/freezetimers/FreezeInfo.java | 15 ++++++++++++ .../freezetimers/FreezeTimersOverlay.java | 24 ++++++++++++++++++- 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 runelite-client/src/main/java/net/runelite/client/plugins/freezetimers/FreezeInfo.java diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/freezetimers/FreezeInfo.java b/runelite-client/src/main/java/net/runelite/client/plugins/freezetimers/FreezeInfo.java new file mode 100644 index 0000000000..bc08d81168 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/plugins/freezetimers/FreezeInfo.java @@ -0,0 +1,15 @@ +package net.runelite.client.plugins.freezetimers; + +import lombok.Builder; +import lombok.Getter; +import net.runelite.api.Actor; +import net.runelite.api.coords.LocalPoint; + +@Builder +public class FreezeInfo +{ + @Getter + private final Actor actor; + @Getter + private final LocalPoint freezePoint; +} \ No newline at end of file diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/freezetimers/FreezeTimersOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/freezetimers/FreezeTimersOverlay.java index 9a9bf58828..1652556f9b 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/freezetimers/FreezeTimersOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/freezetimers/FreezeTimersOverlay.java @@ -1,5 +1,6 @@ /* * Copyright (c) 2019, ganom + * Copyright (c) 2019, kyle * Copyright (c) 2019, pklite * All rights reserved. * @@ -24,6 +25,7 @@ */ package net.runelite.client.plugins.freezetimers; +import com.google.common.eventbus.Subscribe; import java.awt.Color; import static java.awt.Color.RED; import static java.awt.Color.WHITE; @@ -32,10 +34,14 @@ import java.awt.Font; import java.awt.Graphics2D; import java.awt.Polygon; import java.awt.image.BufferedImage; +import java.util.Map; +import java.util.HashMap; import javax.inject.Inject; import net.runelite.api.Actor; import net.runelite.api.Client; +import net.runelite.api.events.PlayerDespawned; import net.runelite.api.GraphicID; +import net.runelite.api.Player; import net.runelite.api.Point; import net.runelite.client.ui.FontManager; import net.runelite.client.ui.overlay.Overlay; @@ -47,7 +53,7 @@ import net.runelite.client.util.ImageUtil; public class FreezeTimersOverlay extends Overlay { - + private final Map freezes = new HashMap<>(); private final FreezeTimersConfig config; private final Client client; private final Font timerFont = FontManager.getRunescapeBoldFont().deriveFont(14.0f); @@ -84,6 +90,22 @@ public class FreezeTimersOverlay extends Overlay return null; } + @Subscribe + public void onPlayerDespawned(PlayerDespawned playerDespawned) + { + final Player player = playerDespawned.getPlayer(); + // All despawns ok: death, teleports, log out, runs away from screen + if (config.showPlayers() | config.showNpcs() | config.FreezeTimers() | config.Veng() | config.TB()) + { + this.remove(player); + } + + } + + public void remove(Actor actor) + { + freezes.remove(actor.getName()); + } private void renderOverlayFor(Graphics2D g, Actor actor) { if (timers.areAllTimersZero(actor))