В API WoW нет способа получить последнее сообщение чата определенного c канала. Вам придется обработать событие CHAT_MSG_CHANNEL
(см. Обработка событий ), чтобы прочитать все сообщения и сохранить самое новое. Специально для каналов say или yell (shout) есть события CHAT_MSG_SAY
и CHAT_MSG_YELL
соответственно.
Для этого вашему аддону необходимо иметь собственный Кадр, эти кадры могут регистрировать обработчики событий, и вам нужно будет сохранить последнее сообщение, полученное от этого обработчика, в локальной переменной в вашем скрипте (назовем это last_message
). Затем, когда ваш другой фрагмент кода выполняется, вы можете прочитать переменную last_message
:
local frame = CreateFrame("FRAME", "FooAddonFrame");
local last_message = nil;
frame:RegisterEvent("CHAT_MSG_CHANNEL");
local function eventHandler(self, event, ...)
-- Look up the arguments that are given to your specific event
-- and assign them to variables in order by retrieving them from
-- the `...` variable arguments
local msg, author, language, channel = ...
print("Hello World! Hello " .. event);
last_message = msg
end
frame:SetScript("OnEvent", eventHandler);