Could you not skip the event subtables and instead just do a search on the triggers table when an event happens, since you are registering specific events?
Code:
local addon = CreateFrame("Frame", "EscortEventAlert")
local triggers = {
["<monster emote message>"] = true,
["<monster say message>"] = true,
["<monster whisper message>"] = true
}
addon:RegisterEvent("CHAT_MSG_MONSTER_EMOTE")
addon:RegisterEvent("CHAT_MSG_MONSTER_SAY")
addon:RegisterEvent("CHAT_MSG_MONSTER_WHISPER")
local function OnEvent(self, event, msg, monster)
if triggers[msg] then
PlaySound("RaidWarning")
RaidWarningFrame:AddMessage(monster.." needs help")
end
end
addon:SetScript("OnEvent", OnEvent)