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 3da2cfd60a..a7905322f9 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 @@ -38,7 +38,6 @@ import java.awt.event.MouseEvent; import java.awt.event.MouseWheelEvent; import java.awt.image.BufferedImage; import java.awt.image.VolatileImage; -import net.runelite.api.ChatMessageType; import net.runelite.api.Client; import net.runelite.api.GraphicsObject; import net.runelite.api.MainBufferProvider; @@ -47,7 +46,6 @@ import net.runelite.api.Region; import net.runelite.api.RenderOverview; import net.runelite.api.TextureProvider; import net.runelite.api.WorldMapManager; -import net.runelite.api.events.ChatMessage; import net.runelite.api.events.GameTick; import net.runelite.api.events.GraphicsObjectCreated; import net.runelite.api.events.MenuOptionClicked; @@ -368,19 +366,6 @@ public class Hooks return menuOptionClicked.isConsumed(); } - public static void addChatMessage(int type, String name, String message, String sender) - { - if (log.isDebugEnabled()) - { - log.debug("Chat message type {}: {}", ChatMessageType.of(type), message); - } - - ChatMessageType chatMessageType = ChatMessageType.of(type); - ChatMessage chatMessage = new ChatMessage(chatMessageType, name, message, sender); - - eventBus.post(chatMessage); - } - 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/RSClientMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java index 8a7122dcca..89940a16c4 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java @@ -64,6 +64,7 @@ import net.runelite.api.WorldType; import net.runelite.api.coords.LocalPoint; import net.runelite.api.coords.WorldPoint; import net.runelite.api.events.BoostedLevelChanged; +import net.runelite.api.events.ChatMessage; import net.runelite.api.events.ClanChanged; import net.runelite.api.events.DraggingWidgetChanged; import net.runelite.api.events.ExperienceChanged; @@ -92,6 +93,7 @@ import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.callback.Hooks; import static net.runelite.client.callback.Hooks.deferredEventBus; import static net.runelite.client.callback.Hooks.eventBus; +import static net.runelite.client.callback.Hooks.log; import net.runelite.rs.api.RSClanMemberManager; import net.runelite.rs.api.RSClient; import net.runelite.rs.api.RSDeque; @@ -1034,4 +1036,18 @@ public abstract class RSClientMixin implements RSClient { Hooks.updateNpcs(); } + + @Inject + @MethodHook("addChatMessage") + public static void onAddChatMessage(int type, String name, String message, String sender) + { + if (log.isDebugEnabled()) + { + log.debug("Chat message type {}: {}", ChatMessageType.of(type), message); + } + + final ChatMessageType chatMessageType = ChatMessageType.of(type); + final ChatMessage chatMessage = new ChatMessage(chatMessageType, name, message, sender); + eventBus.post(chatMessage); + } } \ No newline at end of file