local addonname, shared = ... ---@cast shared HeimdallShared ---@cast addonname string ---@diagnostic disable-next-line: missing-fields shared.AgentTracker = {} function shared.AgentTracker.Init() ---@type table local channelRosterFrame = CreateFrame("Frame") channelRosterFrame:RegisterEvent("CHANNEL_ROSTER_UPDATE") channelRosterFrame:SetScript("OnEvent", function(self, event, index) if not Heimdall_Data.config.agentTracker.enabled then return end local name = GetChannelDisplayInfo(index) if name ~= Heimdall_Data.config.agentTracker.masterChannel then return end local count = select(5, GetChannelDisplayInfo(index)) for i = 1, count do local name = GetChannelRosterInfo(index, i) if name then Heimdall_Data.config.agents[name] = date("%Y-%m-%dT%H:%M:%S") end end --shared.dumpTable(Heimdall_Data.config.agents) end) local agentTrackerChannelSniffer = CreateFrame("Frame") agentTrackerChannelSniffer:RegisterEvent("CHAT_MSG_CHANNEL") agentTrackerChannelSniffer:SetScript("OnEvent", function(self, event, msg, sender, ...) if not Heimdall_Data.config.agentTracker.enabled then return end local channelId = select(6, ...) local channelname = GetChannelName(channelId) if not channelname then return end if channelname ~= Heimdall_Data.config.who.notifyChannel then return end local agentName = sender if not agentName then return end Heimdall_Data.config.agents[agentName] = date("%Y-%m-%dT%H:%M:%S") end) print("Heimdall - AgentTracker loaded") end