diff --git a/runelite-client/src/main/java/net/runelite/client/callback/Hooks.java b/runelite-client/src/main/java/net/runelite/client/callback/Hooks.java index ae1daeb971..9e8277cc50 100644 --- a/runelite-client/src/main/java/net/runelite/client/callback/Hooks.java +++ b/runelite-client/src/main/java/net/runelite/client/callback/Hooks.java @@ -61,7 +61,6 @@ import net.runelite.api.events.FocusChanged; import net.runelite.api.events.GameTick; import net.runelite.api.events.GraphicsObjectCreated; import net.runelite.api.events.HitsplatApplied; -import net.runelite.api.events.LocalPlayerDeath; import net.runelite.api.events.MenuOpened; import net.runelite.api.events.MenuOptionClicked; import net.runelite.api.events.PostItemComposition; @@ -454,15 +453,6 @@ public class Hooks shouldProcessGameTick = true; } - public static void onSetCombatInfo(Actor actor, int combatInfoId, int gameCycle, int var3, int var4, int healthRatio, int health) - { - if (healthRatio == 0 && actor == client.getLocalPlayer()) - { - LocalPlayerDeath event = new LocalPlayerDeath(); - eventBus.post(event); - } - } - public static void postItemComposition(ItemComposition itemComposition) { PostItemComposition event = new PostItemComposition(); diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSActorMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSActorMixin.java index 43791932ee..e39330a40f 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSActorMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSActorMixin.java @@ -39,11 +39,14 @@ import net.runelite.api.coords.WorldArea; import net.runelite.api.coords.WorldPoint; import net.runelite.api.events.AnimationChanged; import net.runelite.api.events.GraphicChanged; +import net.runelite.api.events.LocalPlayerDeath; import net.runelite.api.mixins.FieldHook; import net.runelite.api.mixins.Inject; +import net.runelite.api.mixins.MethodHook; import net.runelite.api.mixins.Mixin; import net.runelite.api.mixins.Shadow; import static net.runelite.client.callback.Hooks.eventBus; +import static net.runelite.client.callback.Hooks.log; import net.runelite.rs.api.RSActor; import net.runelite.rs.api.RSClient; import net.runelite.rs.api.RSCombatInfo1; @@ -227,4 +230,17 @@ public abstract class RSActorMixin implements RSActor return new WorldArea(this.getWorldLocation(), size, size); } + + @Inject + @MethodHook("setCombatInfo") + public void setCombatInfo(int combatInfoId, int gameCycle, int var3, int var4, int healthRatio, int health) + { + if (healthRatio == 0 && this == client.getLocalPlayer()) + { + log.debug("You died!"); + + LocalPlayerDeath event = new LocalPlayerDeath(); + eventBus.post(event); + } + } }