WoW:Hooking outgoing chat messages: Difference between revisions

From AddOn Studio
Jump to navigation Jump to search
(The previous code was very outdated and caused tainting)
m (Move page script moved page Hooking outgoing chat messages to Hooking outgoing chat messages without leaving a redirect)
 
(No difference)

Latest revision as of 04:48, 15 August 2023

To modify outgoing chat messages we are going to hook the ChatEdit_ParseText function. However, this function also handles macros; so to avoid tainting we must use hooksecurefunc() to hook the function properly. Otherwise, your macros will no longer work.

  -- Place this code in the OnLoad function of your addon
  hooksecurefunc('ChatEdit_ParseText',MyAddon_ParseText);

MyAddon_ParseText will now be called after ChatEdit_ParseText has had a chance to handle macros and slash commands.

  function MyAddon_ParseText(chatEntry, send)
     -- This function actually gets called every time the user hits a key. But the
     -- send flag will only be set when he hits return to send the message.
     if (send == 1) then
        local text = chatEntry:GetText(); -- Here's how you get the original text
        local newText = text;             -- here's where you can modify the text to your liking
        chatEntry:SetText( newText );     -- send the new text back to the UI
     end
  end