vanilla-wow-addons – Blame information for rev 1
?pathlinks?
Rev | Author | Line No. | Line |
---|---|---|---|
1 | office | 1 | --[[ |
2 | -- ////////////////////////////////////////////// |
||
3 | -- Variables Init |
||
4 | -- ////////////////////////////////////////////// |
||
5 | ]] |
||
6 | local rpgoGP_TITLE ="GuildProfiler"; |
||
7 | local rpgoGP_ABBR ="GP"; |
||
8 | local rpgoGP_AUTHOR ="calvin"; |
||
9 | local rpgoGP_EMAIL ="calvin@rpgoutfitter.com"; |
||
10 | local rpgoGP_URL ="www.rpgoutfitter.com"; |
||
11 | local rpgoGP_DATE ="March 29, 2006"; |
||
12 | local rpgoGP_PROVIDER ="rpgo"; |
||
13 | local rpgoGP_VERSION ="1.5.1"; |
||
14 | local rpgoGP_PROFILEDB ="1.5.1"; |
||
15 | -- ////////////////////////////////////////////// |
||
16 | if(not rpgoColorTitle) then rpgoColorTitle="909090"; end |
||
17 | if(not rpgoColorGreen) then rpgoColorGreen="00cc00"; end |
||
18 | if(not rpgoColorRed) then rpgoColorRed ="ff0000"; end |
||
19 | -- ////////////////////////////////////////////// |
||
20 | local rpgoAddonsInfoGP={ |
||
21 | name=rpgoGP_TITLE, |
||
22 | description="Export Guild Profiles for use out-of-game", |
||
23 | version=rpgoGP_VERSION, |
||
24 | releaseDate=rpgoGP_DATE, |
||
25 | author=rpgoGP_AUTHOR, |
||
26 | email=rpgoGP_EMAIL, |
||
27 | website=rpgoGP_URL, |
||
28 | category=MYADDONS_CATEGORY_OTHERS, |
||
29 | frame="rpgoGPframe", |
||
30 | }; |
||
31 | local rpgoAddonsHelpGP={ |
||
32 | "GuildProfileris an addon that extracts guild profile info including roster and rank info. This information can then be uploaded to your website to display your guild info.\n\n", |
||
33 | }; |
||
34 | local GPprefScan={Enabled=1,SmartScan=1,Lite=1,Debug=0}; |
||
35 | local rpgoGPlock,rpgoGPserver,rpgoGPguild; |
||
36 | local rpgoGPstate={}; |
||
37 | -- ////////////////////////////////////////////// |
||
38 | -- ////////////////////////////////////////////// |
||
39 | |||
40 | --[[////////////////////////////////////////////// |
||
41 | -- rpgoGP Core Functions |
||
42 | -- OnLoad,LoadVar,RegisterEvents,InitState,OnEvent |
||
43 | -- ////////////////////////////////////////////]] |
||
44 | |||
45 | --[[// OnLoad |
||
46 | -- ////////////////////////////////////////////]] |
||
47 | function rpgoGP_OnLoad() |
||
48 | this:RegisterEvent("ADDON_LOADED"); |
||
49 | this:RegisterEvent("VARIABLES_LOADED"); |
||
50 | SLASH_RPGOGP1="/gp"; |
||
51 | SlashCmdList["RPGOGP"]=rpgoGP_ChatCommand; |
||
52 | DEFAULT_CHAT_FRAME:AddMessage(rpgo_ColorizeTitle(rpgoGP_PROVIDER,rpgoGP_TITLE).." [v" .. rpgoGP_VERSION .. "] loaded."); |
||
53 | rpgoGP_debug(rpgo_ColorizeTitle(rpgoGP_PROVIDER,rpgoGP_ABBR).." running in DEBUG MODE."); |
||
54 | end |
||
55 | |||
56 | --[[// LoadVar |
||
57 | -- ////////////////////////////////////////////]] |
||
58 | function rpgoGP_LoadVar(toggle) |
||
59 | rpgoGP_InitState(); |
||
60 | rpgoGP_InitPrefs(); |
||
61 | rpgoGP_RegisterEvents(); |
||
62 | rpgoGPserver=GetCVar("realmName"); |
||
63 | rpgoGPstate={} |
||
64 | rpgoGPstate["LoadedVar"]=1; |
||
65 | end |
||
66 | |||
67 | --[[// RegisterEvents |
||
68 | -- ////////////////////////////////////////////]] |
||
69 | function rpgoGP_RegisterEvents() |
||
70 | local flagMode=0; |
||
71 | if(rpgoGPpref["Enabled"]==1 and rpgoGPpref["SmartScan"]==1) then |
||
72 | flagMode=1; |
||
73 | end |
||
74 | if(flagMode==1)then |
||
75 | rpgoGPframe:RegisterEvent("GUILD_MOTD"); |
||
76 | rpgoGPframe:RegisterEvent("GUILD_ROSTER_SHOW"); |
||
77 | rpgoGPframe:RegisterEvent("GUILD_ROSTER_CLOSED"); |
||
78 | rpgoGPframe:RegisterEvent("GUILD_ROSTER_UPDATE"); |
||
79 | rpgoGP_debug("RegisterEvents"); |
||
80 | else |
||
81 | rpgoGPframe:UnregisterEvent("GUILD_MOTD"); |
||
82 | rpgoGPframe:UnregisterEvent("GUILD_ROSTER_SHOW"); |
||
83 | rpgoGPframe:UnregisterEvent("GUILD_ROSTER_CLOSED"); |
||
84 | rpgoGPframe:UnregisterEvent("GUILD_ROSTER_UPDATE"); |
||
85 | rpgoGP_debug("UnregisterEvent"); |
||
86 | end |
||
87 | --[[ |
||
88 | event:GUILD_ROSTER_UPDATE |
||
89 | arg1:nil ==> system? |
||
90 | arg1:c ==> offline? |
||
91 | --]] |
||
92 | flagMode=nil; |
||
93 | end |
||
94 | |||
95 | |||
96 | --[[// EventHandler |
||
97 | -- ////////////////////////////////////////////]] |
||
98 | function rpgoGP_EventHandler(event,arg1) |
||
99 | if(rpgoDebugArg) then rpgoDebugArg(rpgoGP_ABBR,event,arg1); end |
||
100 | if(event=="ADDON_LOADED" and arg1==rpgoGP_TITLE) then |
||
101 | rpgo_myAddons(rpgoAddonsInfoGP,rpgoAddonsHelpGP); |
||
102 | rpgoGPframe:UnregisterEvent("ADDON_LOADED"); |
||
103 | return; |
||
104 | elseif(event=="VARIABLES_LOADED") then |
||
105 | rpgoGP_LoadVar(); |
||
106 | rpgoGPframe:UnregisterEvent("VARIABLES_LOADED"); |
||
107 | return; |
||
108 | end |
||
109 | if(rpgoGPpref["Enabled"]==0) then return; end |
||
110 | --if(rpgoLiteScan(rpgoGPpref["Lite"])) then return; end |
||
111 | |||
112 | debugprofilestart(); |
||
113 | if(event=="CHAT_MSG_SYSTEM") then |
||
114 | rpgoGP_ScanGuildInfo(arg1); |
||
115 | end |
||
116 | if(not rpgoGPlock and rpgoGPserver) then |
||
117 | rpgoGPlock=1; |
||
118 | if(not rpgoGPstate["Loaded"]) then |
||
119 | rpgoGP_InitProfile(); |
||
120 | end |
||
121 | if(event=="RPGOGP_SCAN") then |
||
122 | rpgoGP_UpdateProfile(); |
||
123 | elseif(event=="RPGOGP_EXPORT") then |
||
124 | rpgoGP_ForceExport(); |
||
125 | end |
||
126 | rpgoGPlock=nil; |
||
127 | end |
||
128 | rpgoGP_debug("time: "..debugprofilestop().."ms"); |
||
129 | end |
||
130 | |||
131 | --[[// InitState |
||
132 | -- ////////////////////////////////////////////]] |
||
133 | function rpgoGP_InitState(arg) |
||
134 | rpgoGPstate={}; |
||
135 | rpgoGPstate["Loaded"]=nil; |
||
136 | rpgoGPstate["LoadedVar"]=arg; |
||
137 | rpgoGPstate["Guild"]=nil; |
||
138 | rpgoGPstate["GuildNum"]=nil; |
||
139 | rpgoGPstate["GuildInfo"]=nil; |
||
140 | rpgoGPstate["OfficerNote"]=nil; |
||
141 | end |
||
142 | |||
143 | --[[// InitPrefs |
||
144 | -- ////////////////////////////////////////////]] |
||
145 | function rpgoGP_InitPrefs() |
||
146 | local pref,val; |
||
147 | if(not rpgoGPpref) then |
||
148 | rpgoGPpref={}; |
||
149 | end |
||
150 | for pref,val in GPprefScan do |
||
151 | if(not rpgoGPpref[pref]) then |
||
152 | rpgoGPpref[pref]=val; |
||
153 | end |
||
154 | end |
||
155 | --cleanup |
||
156 | for pref,val in rpgoGPpref do |
||
157 | if(not GPprefScan[pref]) then |
||
158 | rpgoGPpref[pref]=nil; |
||
159 | end |
||
160 | end |
||
161 | end |
||
162 | |||
163 | --[[////////////////////////////////////////////// |
||
164 | -- InitProfile |
||
165 | -- ////////////////////////////////////////////]] |
||
166 | function rpgoGP_InitProfile() |
||
167 | if (not rpgoGPstate["Loaded"]) then |
||
168 | if ( not myProfile ) then |
||
169 | myProfile={}; |
||
170 | end |
||
171 | if ( not myProfile[rpgoGPserver] ) then |
||
172 | myProfile[rpgoGPserver]={}; |
||
173 | end |
||
174 | end |
||
175 | rpgoGPstate["Loaded"]=1; |
||
176 | end |
||
177 | |||
178 | --[[////////////////////////////////////////////// |
||
179 | -- UpdateProfile |
||
180 | -- ////////////////////////////////////////////]] |
||
181 | function rpgoGP_UpdateProfile() |
||
182 | rpgoGP_InitProfile(); |
||
183 | rpgoGP_InitProfile(); |
||
184 | rpgoGP_GetGuildInfo(); |
||
185 | end |
||
186 | |||
187 | --[[////////////////////////////////////////////// |
||
188 | -- ForceExport |
||
189 | -- ////////////////////////////////////////////]] |
||
190 | function rpgoGP_ForceExport() |
||
191 | rpgoGP_InitState(1); |
||
192 | rpgoGP_InitProfile(); |
||
193 | rpgoGP_GetGuildInfo(); |
||
194 | rpgoGP_Show(); |
||
195 | end |
||
196 | |||
197 | --[[// ChatCommand |
||
198 | -- ////////////////////////////////////////////]] |
||
199 | function rpgoGP_ChatCommand(msg) |
||
200 | if(msg)then |
||
201 | msg=string.lower(msg); |
||
202 | if (msg=="off") then |
||
203 | rpgoGP_Toggle(0); |
||
204 | return; |
||
205 | elseif (msg=="on") then |
||
206 | rpgoGP_Toggle(1); |
||
207 | return; |
||
208 | elseif (msg=="show") then |
||
209 | rpgoGP_Show(); |
||
210 | return; |
||
211 | elseif (msg=="export") then |
||
212 | rpgoGP_EventHandler('RPGOGP_EXPORT'); |
||
213 | return; |
||
214 | elseif (msg=="smart on") then |
||
215 | rpgoGP_TogglePref("SmartScan",1); |
||
216 | return; |
||
217 | elseif (msg=="smart off") then |
||
218 | rpgoGP_TogglePref("SmartScan",0); |
||
219 | return; |
||
220 | elseif (msg=="debug") then |
||
221 | rpgoGP_Debug(); |
||
222 | return; |
||
223 | end |
||
224 | end |
||
225 | DEFAULT_CHAT_FRAME:AddMessage(rpgo_ColorizeTitle(rpgoGP_PROVIDER,rpgoGP_TITLE).." Usage [v" .. rpgoGP_VERSION .. "]"); |
||
226 | DEFAULT_CHAT_FRAME:AddMessage(" /gp -- This Message"); |
||
227 | DEFAULT_CHAT_FRAME:AddMessage(" /gp on -- Turns GuildProfiler on"); |
||
228 | DEFAULT_CHAT_FRAME:AddMessage(" /gp off -- Turns GuildProfiler off"); |
||
229 | DEFAULT_CHAT_FRAME:AddMessage(" /gp show"); |
||
230 | DEFAULT_CHAT_FRAME:AddMessage(" /gp export"); |
||
231 | if(rpgoGPpref["Enabled"]==1) then |
||
232 | DEFAULT_CHAT_FRAME:AddMessage(rpgo_ColorizeTitle(rpgoGP_PROVIDER,rpgoGP_ABBR)..": currently "..rpgo_ColorizeMsg(rpgoColorGreen,"enabled")); |
||
233 | if(rpgoGPpref["SmartScan"]==1) then |
||
234 | DEFAULT_CHAT_FRAME:AddMessage(rpgo_ColorizeTitle(rpgoGP_PROVIDER,rpgoGP_ABBR)..": smart mode "..rpgo_ColorizeMsg(rpgoColorGreen,"enabled")); |
||
235 | else |
||
236 | DEFAULT_CHAT_FRAME:AddMessage(rpgo_ColorizeTitle(rpgoGP_PROVIDER,rpgoGP_ABBR)..": smart mode "..rpgo_ColorizeMsg(rpgoColorRed,"disabled")); |
||
237 | end |
||
238 | else |
||
239 | DEFAULT_CHAT_FRAME:AddMessage(rpgo_ColorizeTitle(rpgoGP_PROVIDER,rpgoGP_ABBR)..": currently "..rpgo_ColorizeMsg(rpgoColorRed,"disabled")); |
||
240 | end |
||
241 | end |
||
242 | |||
243 | --[[// Toggle |
||
244 | -- ////////////////////////////////////////////]] |
||
245 | function rpgoGP_Toggle(toggle) |
||
246 | rpgoGPpref["Enabled"]=toggle; |
||
247 | if(toggle==1) then |
||
248 | if (rpgoGPserver) then rpgoGPserver=GetCVar("realmName"); end |
||
249 | rpgoGP_InitState(1); |
||
250 | elseif(toggle==0) then |
||
251 | rpgoGPstate=nil; |
||
252 | end |
||
253 | if(rpgoGPpref["Enabled"]==1) then |
||
254 | DEFAULT_CHAT_FRAME:AddMessage(rpgo_ColorizeTitle(rpgoGP_PROVIDER,rpgoGP_ABBR)..": "..rpgo_ColorizeMsg(rpgoColorGreen,"enabled")); |
||
255 | if(rpgoGPpref["SmartScan"]==1) then |
||
256 | DEFAULT_CHAT_FRAME:AddMessage(rpgo_ColorizeTitle(rpgoGP_PROVIDER,rpgoGP_ABBR)..": smart mode "..rpgo_ColorizeMsg(rpgoColorGreen,"enabled")); |
||
257 | else |
||
258 | DEFAULT_CHAT_FRAME:AddMessage(rpgo_ColorizeTitle(rpgoGP_PROVIDER,rpgoGP_ABBR)..": smart mode "..rpgo_ColorizeMsg(rpgoColorRed,"disabled")); |
||
259 | end |
||
260 | else |
||
261 | DEFAULT_CHAT_FRAME:AddMessage(rpgo_ColorizeTitle(rpgoGP_PROVIDER,rpgoGP_ABBR)..": "..rpgo_ColorizeMsg(rpgoColorRed,"disabled")); |
||
262 | end |
||
263 | rpgoGP_RegisterEvents(); |
||
264 | if ( (rpgoGPpref["Enabled"]==0) and myProfile["Guild"] ) then |
||
265 | myProfile[rpgoGPserver]["Guild"]=nil; |
||
266 | end |
||
267 | end |
||
268 | |||
269 | --[[// Toggle |
||
270 | -- ////////////////////////////////////////////]] |
||
271 | function rpgoGP_TogglePref(pref,toggle) |
||
272 | if(rpgoGPpref[pref] and toggle) then |
||
273 | rpgoGPpref[pref]=toggle; |
||
274 | end |
||
275 | if(rpgoGPpref and rpgoGPpref[pref]==1) then |
||
276 | DEFAULT_CHAT_FRAME:AddMessage(rpgo_ColorizeTitle(rpgoGP_PROVIDER,rpgoGP_ABBR)..": "..pref.." "..rpgo_ColorizeMsg(rpgoColorGreen,"on")); |
||
277 | else |
||
278 | DEFAULT_CHAT_FRAME:AddMessage(rpgo_ColorizeTitle(rpgoGP_PROVIDER,rpgoGP_ABBR)..": "..pref.." "..rpgo_ColorizeMsg(rpgoColorRed,"off")); |
||
279 | end |
||
280 | if(pref=="SmartScan") then |
||
281 | rpgoGP_RegisterEvents(); |
||
282 | rpgoGP_Toggle(rpgoGPpref["Enabled"]); |
||
283 | end |
||
284 | end |
||
285 | |||
286 | --[[// Debug |
||
287 | -- ////////////////////////////////////////////]] |
||
288 | function rpgoGP_Debug() |
||
289 | if (rpgoGPpref["Debug"]==1) then |
||
290 | rpgoGPpref["Debug"]=0; |
||
291 | else |
||
292 | rpgoGPpref["Debug"]=1; |
||
293 | rpgoGP_debug("Debug Mode: enabled"); |
||
294 | end |
||
295 | end |
||
296 | |||
297 | --[[// Show |
||
298 | -- ////////////////////////////////////////////]] |
||
299 | function rpgoGP_Show() |
||
300 | if( rpgoGPpref["Enabled"]==1) then |
||
301 | if(rpgoGPstate["Loaded"]==1 and rpgoGPstate["Guild"]) then |
||
302 | local msg=""; |
||
303 | DEFAULT_CHAT_FRAME:AddMessage(rpgo_ColorizeTitle(rpgoGP_PROVIDER,rpgoGP_ABBR)..": guild info scanned this session"); |
||
304 | if(rpgoGPstate["Guild"]==1) then |
||
305 | DEFAULT_CHAT_FRAME:AddMessage(" Profile for: '" .. rpgoGPguild .. "' on " .. rpgoGPserver); |
||
306 | if(rpgoGPstate["GuildNum"]) then |
||
307 | DEFAULT_CHAT_FRAME:AddMessage(" Members: " .. rpgoGPstate["GuildNum"]); |
||
308 | else |
||
309 | DEFAULT_CHAT_FRAME:AddMessage(" Members: not scanned"); |
||
310 | end |
||
311 | else |
||
312 | DEFAULT_CHAT_FRAME:AddMessage(" you are not in a guild"); |
||
313 | end |
||
314 | else |
||
315 | DEFAULT_CHAT_FRAME:AddMessage(rpgo_ColorizeTitle(rpgoGP_PROVIDER,rpgoGP_ABBR)..": "..rpgo_ColorizeMsg(rpgoColorRed," no guild info scanned this session")); |
||
316 | DEFAULT_CHAT_FRAME:AddMessage(" open your guild roster to scan guild information ('O'->'Guild')"); |
||
317 | DEFAULT_CHAT_FRAME:AddMessage(" or force the export with '/gp export'"); |
||
318 | end |
||
319 | else |
||
320 | DEFAULT_CHAT_FRAME:AddMessage(rpgo_ColorizeTitle(rpgoGP_PROVIDER,rpgoGP_ABBR)..": currently "..rpgo_ColorizeMsg(rpgoColorRed,"disabled")); |
||
321 | end |
||
322 | end |
||
323 | |||
324 | --[[////////////////////////////////////////////// |
||
325 | -- rpgoGP Extract functions |
||
326 | -- ////////////////////////////////////////////]] |
||
327 | function rpgoGP_GetGuildInfo() |
||
328 | GuildRoster(); |
||
329 | local isGuildMember=IsInGuild(); |
||
330 | local numGuildMembers=GetNumGuildMembers(true); |
||
331 | local showOfflineTemp=GetGuildRosterShowOffline(); |
||
332 | SetGuildRosterShowOffline(true); |
||
333 | if(not isGuildMember) then |
||
334 | rpgoGPstate["Guild"]=0; |
||
335 | elseif(rpgoGPstate["Guild"]~=isGuildMember or rpgoGPstate["GuildNum"]~=numGuildMembers) then |
||
336 | rpgoGPstate["Guild"]=isGuildMember; |
||
337 | local currHour, currMinute=GetGameTime(); |
||
338 | local pTime=GetTime(); |
||
339 | local name, rank, rankIndex, level, class, zone, group, note, officernote, online; |
||
340 | local yearsOffline, monthsOffline, daysOffline, hoursOffline; |
||
341 | local guildName, guildRankName, guildRankIndex=GetGuildInfo("player"); |
||
342 | local guildMemberTemp=nil; |
||
343 | local guildMemberNumTemp=nil; |
||
344 | if(myProfile[rpgoGPserver]["Guild"] and myProfile[rpgoGPserver]["Guild"]["Members"]) then |
||
345 | guildMemberTemp=myProfile[rpgoGPserver]["Guild"]["Members"]; |
||
346 | guildMemberNumTemp=myProfile[rpgoGPserver]["Guild"]["NumMembers"]; |
||
347 | end |
||
348 | myProfile[rpgoGPserver]["Guild"]= {}; |
||
349 | myProfile[rpgoGPserver]["Guild"]["Version"]=rpgoGP_PROFILEDB; |
||
350 | myProfile[rpgoGPserver]["Guild"]["GPversion"]=rpgoGP_VERSION; |
||
351 | myProfile[rpgoGPserver]["Guild"]["GPprovider"]=rpgoGP_PROVIDER; |
||
352 | myProfile[rpgoGPserver]["Guild"]["DBversion"]=rpgoGP_PROFILEDB; |
||
353 | myProfile[rpgoGPserver]["Guild"]["Guild"]=guildName; |
||
354 | myProfile[rpgoGPserver]["Guild"]["Motd"]=GetGuildRosterMOTD(); |
||
355 | myProfile[rpgoGPserver]["Guild"]["Info"]=GetGuildInfoText(); |
||
356 | myProfile[rpgoGPserver]["Guild"]["Hour"]=currHour; |
||
357 | myProfile[rpgoGPserver]["Guild"]["Minute"]=currMinute; |
||
358 | myProfile[rpgoGPserver]["Guild"]["DateExtracted"]=date(); |
||
359 | myProfile[rpgoGPserver]["Guild"]["Date"]=date(); |
||
360 | myProfile[rpgoGPserver]["Guild"]["DateUTC"]=date("!%m/%d/%y %H:%M:%S"); |
||
361 | myProfile[rpgoGPserver]["Guild"]["Locale"]=GetLocale(); |
||
362 | myProfile[rpgoGPserver]["Guild"]["Members"]=guildMemberTemp; |
||
363 | local _,faction=UnitFactionGroup("player"); |
||
364 | myProfile[rpgoGPserver]["Guild"]["Faction"]=faction; |
||
365 | if(numGuildMembers~=0) then |
||
366 | myProfile[rpgoGPserver]["Guild"]["NumMembers"]=numGuildMembers; |
||
367 | else |
||
368 | myProfile[rpgoGPserver]["Guild"]["NumMembers"]=guildMemberNumTemp; |
||
369 | end |
||
370 | guildMemberTemp=nil; |
||
371 | guildMemberNumTemp=nil; |
||
372 | rpgoGPguild=guildName; |
||
373 | rpgoGP_GetGuildMembers(numGuildMembers); |
||
374 | end |
||
375 | SetGuildRosterShowOffline(showOfflineTemp); |
||
376 | if(not rpgoGPstate["GuildInfo"]) then |
||
377 | rpgoGPframe:RegisterEvent("CHAT_MSG_SYSTEM"); |
||
378 | GuildInfo(); |
||
379 | rpgoGPstate["GuildInfo"]=1; |
||
380 | end |
||
381 | rpgoGP_GuildControl(); |
||
382 | end |
||
383 | |||
384 | function rpgoGP_GuildControl() |
||
385 | myProfile[rpgoGPserver]["Guild"]["Ranks"]={}; |
||
386 | myProfile[rpgoGPserver]["Guild"]["Ranks"]["Headers"]={}; |
||
387 | for i=1,MAX_GUILDCONTROL_OPTIONS do |
||
388 | myProfile[rpgoGPserver]["Guild"]["Ranks"]["Headers"]["Control"..i]=getglobal("GUILDCONTROL_OPTION"..i); |
||
389 | end |
||
390 | myProfile[rpgoGPserver]["Guild"]["Ranks"]["Index"]={}; |
||
391 | for i=1,GuildControlGetNumRanks() do |
||
392 | GuildControlSetRank(i); |
||
393 | myProfile[rpgoGPserver]["Guild"]["Ranks"]["Index"]["Rank"..i]={}; |
||
394 | myProfile[rpgoGPserver]["Guild"]["Ranks"]["Index"]["Rank"..i]["Index"]=i; |
||
395 | myProfile[rpgoGPserver]["Guild"]["Ranks"]["Index"]["Rank"..i]["Title"]=GuildControlGetRankName(i); |
||
396 | myProfile[rpgoGPserver]["Guild"]["Ranks"]["Index"]["Rank"..i]["Control"]=rpgoGP_GuildControlFlags(GuildControlGetRankFlags()); |
||
397 | end |
||
398 | end |
||
399 | |||
400 | function rpgoGP_GuildControlFlags(...) |
||
401 | local flags=''; |
||
402 | for i=1,arg.n,1 do |
||
403 | if(i>1) then flags=flags..':'; end |
||
404 | if(arg[i]) then |
||
405 | flags=flags..arg[i]; |
||
406 | else |
||
407 | flags=flags..0; |
||
408 | end |
||
409 | end |
||
410 | return(flags); |
||
411 | end |
||
412 | |||
413 | function rpgoGP_GetGuildMembers(numMembers) |
||
414 | rpgoGPstate["OfficerNote"]=CanViewOfficerNote(); |
||
415 | if(numMembers > 0 and (rpgoGPstate["GuildNum"]~=numMembers)) then |
||
416 | rpgoGPstate["GuildNum"]=0; |
||
417 | local guildMemberTemp=nil; |
||
418 | if(myProfile[rpgoGPserver]["Guild"] and myProfile[rpgoGPserver]["Guild"]["Members"]) then |
||
419 | guildMemberTemp=myProfile[rpgoGPserver]["Guild"]["Members"]; |
||
420 | end |
||
421 | myProfile[rpgoGPserver]["Guild"]["Members"]={}; |
||
422 | for i=1,numMembers do |
||
423 | name,rank,rankIndex,level,class,zone,note,officernote,online,status=GetGuildRosterInfo(i); |
||
424 | yearsOffline,monthsOffline,daysOffline,hoursOffline=GetGuildRosterLastOnline(i); |
||
425 | if(name~=nil)then |
||
426 | myProfile[rpgoGPserver]["Guild"]["Members"][name]={}; |
||
427 | myProfile[rpgoGPserver]["Guild"]["Members"][name]["Name"]=name; |
||
428 | myProfile[rpgoGPserver]["Guild"]["Members"][name]["Rank"]=rank; |
||
429 | myProfile[rpgoGPserver]["Guild"]["Members"][name]["RankIndex"]=rankIndex; |
||
430 | myProfile[rpgoGPserver]["Guild"]["Members"][name]["Level"]= level; |
||
431 | myProfile[rpgoGPserver]["Guild"]["Members"][name]["Class"]= class; |
||
432 | myProfile[rpgoGPserver]["Guild"]["Members"][name]["Zone"]= zone; |
||
433 | myProfile[rpgoGPserver]["Guild"]["Members"][name]["Group"]="no"; |
||
434 | myProfile[rpgoGPserver]["Guild"]["Members"][name]["Status"]=status; |
||
435 | myProfile[rpgoGPserver]["Guild"]["Members"][name]["Note"]= note; |
||
436 | if(rpgoGPstate["OfficerNote"] and officernote~="") then |
||
437 | myProfile[rpgoGPserver]["Guild"]["Members"][name]["OfficerNote"]=officernote; |
||
438 | elseif((guildMemberTemp) and guildMemberTemp[name]) then |
||
439 | myProfile[rpgoGPserver]["Guild"]["Members"][name]["OfficerNote"]=guildMemberTemp[name]["OfficerNote"]; |
||
440 | else |
||
441 | myProfile[rpgoGPserver]["Guild"]["Members"][name]["OfficerNote"]=officernote; |
||
442 | end |
||
443 | if(online) then |
||
444 | myProfile[rpgoGPserver]["Guild"]["Members"][name]["Online"]=online; |
||
445 | else |
||
446 | myProfile[rpgoGPserver]["Guild"]["Members"][name]["LastOnline"]= {}; |
||
447 | myProfile[rpgoGPserver]["Guild"]["Members"][name]["LastOnline"]["Hour"]= hoursOffline; |
||
448 | myProfile[rpgoGPserver]["Guild"]["Members"][name]["LastOnline"]["Day"]= daysOffline; |
||
449 | myProfile[rpgoGPserver]["Guild"]["Members"][name]["LastOnline"]["Month"]= monthsOffline; |
||
450 | myProfile[rpgoGPserver]["Guild"]["Members"][name]["LastOnline"]["Year"]= yearsOffline; |
||
451 | end |
||
452 | rpgoGPstate["GuildNum"]=rpgoGPstate["GuildNum"]+1; |
||
453 | end |
||
454 | end |
||
455 | if(numMembers ~= rpgoGPstate["GuildNum"]) then |
||
456 | myProfile[rpgoGPserver]["Guild"]["Members"]=guildMemberTemp; |
||
457 | end |
||
458 | guildMemberTemp=nil; |
||
459 | end |
||
460 | end |
||
461 | |||
462 | function rpgoGP_ScanGuildInfo(msg) |
||
463 | rpgoGP_debug("scanGI "..msg); |
||
464 | local d,p,a; |
||
465 | if(msg) then |
||
466 | _,_,d,p,a=string.find(msg,"%w+ (%d+[-.]%d+[-.]%d+), (%d+) %w+, (%d+) %w+"); |
||
467 | if(d and p and a) then |
||
468 | rpgoGP_debug("scanGI "..d.." "..p.." "..a); |
||
469 | myProfile[rpgoGPserver]["Guild"]["Created"]=d; |
||
470 | myProfile[rpgoGPserver]["Guild"]["NumAccounts"]=a; |
||
471 | rpgoGPframe:UnregisterEvent("CHAT_MSG_SYSTEM"); |
||
472 | end |
||
473 | end |
||
474 | end |
||
475 | |||
476 | --[[////////////////////////////////////////////// |
||
477 | -- general functions |
||
478 | -- ////////////////////////////////////////////]] |
||
479 | function rpgoOfficerNote(oNote,oldNote) |
||
480 | if(rpgoGPstate["OfficerNote"]) then |
||
481 | return oNote; |
||
482 | elseif(oldNote) then |
||
483 | return oldNote; |
||
484 | else |
||
485 | return ""; |
||
486 | end |
||
487 | end |
||
488 | |||
489 | --[[////////////////////////////////////////////// |
||
490 | -- general rpgo functions |
||
491 | -- ////////////////////////////////////////////]] |
||
492 | --[function] msg:string |
||
493 | function rpgoGP_debug(msg) |
||
494 | if(rpgoGPpref and rpgoGPpref["Debug"]==1) then |
||
495 | if(rpgoDebug) then rpgoDebug(rpgoGP_ABBR,msg); |
||
496 | else rpgo_VerboseMsg(rpgo_ColorizeTitle(rpgoGP_PROVIDER,rpgoGP_ABBR)..": ".."[" .. msg .. "]",1,0,0); end end |
||
497 | end |
||
498 | |||
499 | -- USAGE: rpgo_ColorizeTitle(provider,title) |
||
500 | if (not rpgo_ColorizeTitle) then rpgo_ColorizeTitle=function(provider,title) if(provider and title) then return rpgo_ColorizeMsg(rpgoColorTitle,provider.."-"..title); end end end |
||
501 | -- USAGE: rpgo_ColorizeMsg(color,msg) |
||
502 | if (not rpgo_ColorizeMsg) then rpgo_ColorizeMsg=function(color,msg) if(color and msg) then return "|cff"..color..msg.."|r"; end end end |
||
503 | -- Register the addon in myAddOns |
||
504 | if (not rpgo_myAddons) then rpgo_myAddons=function(info,help) if(myAddOnsFrame_Register) then myAddOnsFrame_Register(info, help); end end end |