50 lines
1.6 KiB
Lua
50 lines
1.6 KiB
Lua
local _, shared = ...
|
|
---@cast shared HeimdallShared
|
|
local ModuleName = "ChatSniffer"
|
|
|
|
---@class HeimdallChatSnifferConfig
|
|
---@field enabled boolean
|
|
---@field debug boolean
|
|
|
|
---@class ChatSniffer
|
|
shared.ChatSniffer = {
|
|
Init = function()
|
|
Heimdall_Chat = Heimdall_Chat or {}
|
|
local frame = CreateFrame("Frame")
|
|
frame:RegisterEvent("CHAT_MSG_SAY")
|
|
frame:RegisterEvent("CHAT_MSG_YELL")
|
|
frame:RegisterEvent("CHAT_MSG_CHANNEL")
|
|
frame:RegisterEvent("CHAT_MSG_WHISPER")
|
|
frame:RegisterEvent("CHAT_MSG_CHANNEL_JOIN")
|
|
frame:RegisterEvent("CHAT_MSG_CHANNEL_LEAVE")
|
|
frame:RegisterEvent("CHAT_MSG_EMOTE")
|
|
frame:RegisterEvent("CHAT_MSG_PARTY")
|
|
frame:RegisterEvent("CHAT_MSG_PARTY_LEADER")
|
|
frame:RegisterEvent("CHAT_MSG_RAID")
|
|
frame:RegisterEvent("CHAT_MSG_RAID_LEADER")
|
|
frame:RegisterEvent("CHAT_MSG_RAID_WARNING")
|
|
frame:RegisterEvent("CHAT_MSG_SYSTEM")
|
|
frame:RegisterEvent("CHAT_MSG_TEXT_EMOTE")
|
|
frame:RegisterEvent("CHAT_MSG_YELL")
|
|
frame:SetScript("OnEvent", function(self, event, msg, sender, language, channel)
|
|
if not Heimdall_Data.config.chatSniffer.enabled then return end
|
|
if not Heimdall_Data.config.chatSniffer.debug then
|
|
shared.dump(string.format("[%s] got message", { event, msg, sender, language, channel }))
|
|
end
|
|
local timestamp = date("%Y-%m-%d %H:%M:%S")
|
|
local log = string.format(
|
|
"%s|%s|%s|%s|%s|%s",
|
|
tostring(timestamp),
|
|
tostring(event),
|
|
tostring(sender),
|
|
tostring(msg),
|
|
tostring(language),
|
|
tostring(channel)
|
|
)
|
|
Heimdall_Chat[#Heimdall_Chat + 1] = log
|
|
end)
|
|
|
|
print(string.format("[%s] Module initialized", ModuleName))
|
|
end,
|
|
}
|