diff --git a/runelite-api/src/main/java/net/runelite/api/AnimationID.java b/runelite-api/src/main/java/net/runelite/api/AnimationID.java index 8a1a5435bd..9bd54688ac 100644 --- a/runelite-api/src/main/java/net/runelite/api/AnimationID.java +++ b/runelite-api/src/main/java/net/runelite/api/AnimationID.java @@ -45,6 +45,7 @@ public final class AnimationID public static final int WOODCUTTING_3A_AXE = 7264; public static final int CONSUMING = 829; // consuming consumables public static final int FIREMAKING = 733; + public static final int DEATH = 836; public static final int COOKING_FIRE = 897; public static final int COOKING_RANGE = 896; public static final int COOKING_WINE = 7529; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/deathindicator/DeathIndicatorPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/deathindicator/DeathIndicatorPlugin.java index a14dec3129..1944ca3d9b 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/deathindicator/DeathIndicatorPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/deathindicator/DeathIndicatorPlugin.java @@ -36,13 +36,15 @@ import java.util.Set; import javax.imageio.ImageIO; import javax.inject.Inject; import lombok.extern.slf4j.Slf4j; +import static net.runelite.api.AnimationID.DEATH; import net.runelite.api.Client; import net.runelite.api.GameState; +import net.runelite.api.Player; import net.runelite.api.coords.WorldPoint; +import net.runelite.api.events.AnimationChanged; import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GameTick; -import net.runelite.api.events.LocalPlayerDeath; import net.runelite.client.config.ConfigManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -151,9 +153,13 @@ public class DeathIndicatorPlugin extends Plugin } @Subscribe - public void onLocalPlayerDeath(LocalPlayerDeath event) + public void onAnimationChanged(AnimationChanged animationChanged) { - if (client.isInInstancedRegion()) + Player local = client.getLocalPlayer(); + if (animationChanged.getActor() != local + || local.getAnimation() != DEATH + || client.isInInstancedRegion() + || local.getHealthRatio() != 0) { return; } @@ -304,8 +310,6 @@ public class DeathIndicatorPlugin extends Plugin config.deathLocationPlane(0); config.deathWorld(0); config.timeOfDeath(null); - - hasRespawned = false; } private void resetInfobox()