Mercurial > wow > breuesk
comparison Admin.lua @ 98:0cd1d46e7b66
Admin detection from a string of the format "BSKADMIN: admin1, admin2, ..." in the guild info box
author | John@Doomsday |
---|---|
date | Fri, 27 Apr 2012 09:41:26 -0400 |
parents | |
children | 5914125bb4ea |
comparison
equal
deleted
inserted
replaced
97:19fd02bff870 | 98:0cd1d46e7b66 |
---|---|
1 local bsk=bsk | |
2 local _G=_G | |
3 local table=table | |
4 local pairs=pairs | |
5 local setmetatable=setmetatable | |
6 local ipairs=ipairs | |
7 local string=string | |
8 local sformat=string.format | |
9 local strsplit=strsplit | |
10 local tostring=tostring | |
11 local type=type | |
12 local unpack=unpack | |
13 local getn=getn | |
14 setfenv(1,bsk) | |
15 | |
16 adminList = {} | |
17 | |
18 local function GuildRosterUpdate() | |
19 local guildInfoText = _G.GetGuildInfoText() | |
20 local newAdminList = {} | |
21 for line in guildInfoText:gmatch("[^\r\n]+") do | |
22 local l,r = line:match("(.*):(.*)") -- could use wow strsplit had I known about it before writing this | |
23 l = string.trim(l or "") | |
24 r = string.trim(r or "") | |
25 if l == "BSKADMIN" then -- found a juicy line. may contain multiple, comma delimited | |
26 local admins = {strsplit(", ",r)} | |
27 for _,a in pairs(admins) do | |
28 a = string.trim(a or "") | |
29 if a ~= "" then | |
30 newAdminList[a] = true | |
31 end | |
32 end | |
33 end | |
34 end | |
35 | |
36 if _G.next(adminList) ~= nil then -- had old admins. don't want to spam on initial load | |
37 -- diff new vs old | |
38 for a in pairs(adminList) do | |
39 if not newAdminList[a] then | |
40 print("Admin removed:", a) | |
41 end | |
42 end | |
43 for a in pairs(newAdminList) do | |
44 if not adminList[a] then | |
45 print("Admin added:",a) | |
46 end | |
47 end | |
48 end | |
49 adminList = newAdminList | |
50 end | |
51 | |
52 function InitializeAdmin() | |
53 if not event then | |
54 _G.error("BSK: Improper order of initialization") | |
55 end | |
56 event:RegisterEvent("GUILD_ROSTER_UPDATE",GuildRosterUpdate) | |
57 _G.GuildRoster() -- will eventually force the event to fire | |
58 end | |
59 | |
60 |