forked from ornfelt/azerothcore_lua_scripts
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathEventCapture.lua
More file actions
48 lines (43 loc) · 1.36 KB
/
EventCapture.lua
File metadata and controls
48 lines (43 loc) · 1.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
-- will capture events and spit them out into a json
-- Init frame to listen for events
abFrame = CreateFrame("FRAME", "AbotEventFrame")
abEventTable = {}
function abEventHandler(self, event, ...)
table.insert(abEventTable, {time(), event, {...}})
end
if abFrame:GetScript("OnEvent") == nil then
abFrame:SetScript("OnEvent", abEventHandler)
end
-- register/unregister for event
abFrame:RegisterEvent("eventName")
abFrame:UnregisterEvent("eventName")
-- dump the events to a json
abEventJson='['
for a,b in pairs(abEventTable)do
abEventJson=abEventJson..'{'
for c,d in pairs(b)do
if type(d)=="table"then
abEventJson=abEventJson..'\"args\": ['
for e,f in pairs(d)do
abEventJson=abEventJson..'\"'..f..'\"'
if e<=table.getn(d)then
abEventJson=abEventJson..','
end
end;
abEventJson=abEventJson..']}'
if a<table.getn(abEventTable)then
abEventJson=abEventJson..','
end
else
if type(d)=="string"then
abEventJson=abEventJson..'\"event\": \"'..d..'\",'
else
abEventJson=abEventJson..'\"time\": \"'..d..'\",'
end
end
end
end;
abEventJson=abEventJson..']'
abEventTable={}
-- on exit call
abFrame:UnregisterAllEvents()