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 5af733a2b2..59b5adbe9a 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 @@ -43,7 +43,6 @@ import net.runelite.api.Client; import net.runelite.api.GraphicsObject; import net.runelite.api.MainBufferProvider; import net.runelite.api.MenuAction; -import net.runelite.api.MessageNode; import net.runelite.api.Projectile; import net.runelite.api.Region; import net.runelite.api.RenderOverview; @@ -55,7 +54,6 @@ import net.runelite.api.events.GameTick; import net.runelite.api.events.GraphicsObjectCreated; import net.runelite.api.events.MenuOptionClicked; import net.runelite.api.events.ProjectileMoved; -import net.runelite.api.events.SetMessage; import net.runelite.api.widgets.Widget; import static net.runelite.api.widgets.WidgetInfo.WORLD_MAP_VIEW; import net.runelite.client.Notifier; @@ -407,18 +405,6 @@ public class Hooks eventBus.post(projectileMoved); } - public static void setMessage(MessageNode messageNode, int type, String name, String sender, String value) - { - SetMessage setMessage = new SetMessage(); - setMessage.setMessageNode(messageNode); - setMessage.setType(ChatMessageType.of(type)); - setMessage.setName(name); - setMessage.setSender(sender); - setMessage.setValue(value); - - eventBus.post(setMessage); - } - public static void updateNpcs() { // The NPC update event seem to run every server tick, diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSMessageNodeMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSMessageNodeMixin.java index 0a6eff03dc..41e2f4ef4d 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSMessageNodeMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSMessageNodeMixin.java @@ -25,8 +25,11 @@ package net.runelite.mixins; import net.runelite.api.ChatMessageType; +import net.runelite.api.events.SetMessage; import net.runelite.api.mixins.Inject; +import net.runelite.api.mixins.MethodHook; import net.runelite.api.mixins.Mixin; +import static net.runelite.client.callback.Hooks.eventBus; import net.runelite.rs.api.RSMessageNode; @Mixin(RSMessageNode.class) @@ -35,6 +38,18 @@ public abstract class RSMessageNodeMixin implements RSMessageNode @Inject private String runeLiteFormatMessage; + @Inject + RSMessageNodeMixin() + { + final SetMessage setMessage = new SetMessage(); + setMessage.setMessageNode(this); + setMessage.setType(getType()); + setMessage.setName(getName()); + setMessage.setSender(getSender()); + setMessage.setValue(getValue()); + eventBus.post(setMessage); + } + @Inject @Override public ChatMessageType getType() @@ -55,4 +70,17 @@ public abstract class RSMessageNodeMixin implements RSMessageNode { this.runeLiteFormatMessage = runeLiteFormatMessage; } + + @Inject + @MethodHook(value = "setMessage", end = true) + public void setMessage(int type, String name, String sender, String value) + { + final SetMessage setMessage = new SetMessage(); + setMessage.setMessageNode(this); + setMessage.setType(ChatMessageType.of(type)); + setMessage.setName(name); + setMessage.setSender(sender); + setMessage.setValue(value); + eventBus.post(setMessage); + } }