|
Zerotorescue@0
|
1 local MailOpener = LibStub("AceAddon-3.0"):GetAddon("MailOpener");
|
|
Zerotorescue@0
|
2 local Collected = MailOpener:NewModule("Collected", "AceEvent-3.0", "AceTimer-3.0");
|
|
Zerotorescue@0
|
3
|
|
Zerotorescue@0
|
4 local previousGold, earned, sessionEarned;
|
|
Zerotorescue@0
|
5 local previousFreeSlotsAvailable, itemsGained, sessionItemsgained;
|
|
Zerotorescue@0
|
6 local previousMailCount, mailOpened, sessionMailOpened;
|
|
Zerotorescue@0
|
7 local timeStarted, sessionTimeSpent; -- even though the first contains GetTime(), the second var will be filled with actual seconds
|
|
Zerotorescue@0
|
8 local updated;
|
|
Zerotorescue@0
|
9
|
|
Zerotorescue@0
|
10 function Collected:OnInitialize()
|
|
Zerotorescue@0
|
11 local defaults = {
|
|
Zerotorescue@0
|
12 profile = {
|
|
Zerotorescue@0
|
13 trackGold = true,
|
|
Zerotorescue@0
|
14 trackItems = true,
|
|
Zerotorescue@0
|
15 trackMail = true,
|
|
Zerotorescue@0
|
16 sessionSummary = false,
|
|
Zerotorescue@0
|
17 batchSummary = false,
|
|
Zerotorescue@0
|
18 },
|
|
Zerotorescue@0
|
19 };
|
|
Zerotorescue@0
|
20
|
|
Zerotorescue@0
|
21 -- Register our saved variables NameSpace
|
|
Zerotorescue@0
|
22 self.db = MailOpener.db:RegisterNamespace("Collected", defaults);
|
|
Zerotorescue@0
|
23 end
|
|
Zerotorescue@0
|
24
|
|
Zerotorescue@0
|
25 function Collected:OnEnable()
|
|
Zerotorescue@0
|
26 self:Debug("OnEnable");
|
|
Zerotorescue@0
|
27
|
|
Zerotorescue@0
|
28 self:RegisterEvent("MAIL_SHOW");
|
|
Zerotorescue@0
|
29
|
|
Zerotorescue@0
|
30 MailOpener:TogglePostalModule("Rake", false);
|
|
Zerotorescue@0
|
31
|
|
Zerotorescue@0
|
32 sessionEarned = 0;
|
|
Zerotorescue@0
|
33 sessionItemsgained = 0;
|
|
Zerotorescue@0
|
34 sessionMailOpened = 0;
|
|
Zerotorescue@0
|
35 sessionTimeSpent = 0;
|
|
Zerotorescue@0
|
36
|
|
Zerotorescue@0
|
37 -- If we were toggling this module on while the mailbox is opened we must register all events again
|
|
Zerotorescue@0
|
38 if MailFrame:IsVisible() then
|
|
Zerotorescue@0
|
39 self:MAIL_SHOW();
|
|
Zerotorescue@0
|
40 end
|
|
Zerotorescue@0
|
41 end
|
|
Zerotorescue@0
|
42
|
|
Zerotorescue@0
|
43 -- Even though Ace can unregister our events it's neater to do it manually too
|
|
Zerotorescue@0
|
44 function Collected:OnDisable()
|
|
Zerotorescue@0
|
45 self:Debug("OnDisable");
|
|
Zerotorescue@0
|
46
|
|
Zerotorescue@0
|
47 self:UnregisterEvent("MAIL_SHOW");
|
|
Zerotorescue@0
|
48
|
|
Zerotorescue@0
|
49 self:Stop();
|
|
Zerotorescue@0
|
50
|
|
Zerotorescue@0
|
51 MailOpener:TogglePostalModule("Rake", true);
|
|
Zerotorescue@0
|
52 end
|
|
Zerotorescue@0
|
53
|
|
Zerotorescue@0
|
54 function Collected:MAIL_SHOW()
|
|
Zerotorescue@0
|
55 self:Debug("MAIL_SHOW");
|
|
Zerotorescue@0
|
56
|
|
Zerotorescue@0
|
57 -- Unbind / reset all previous events and settings
|
|
Zerotorescue@0
|
58 self:Stop();
|
|
Zerotorescue@0
|
59
|
|
Zerotorescue@0
|
60 self:RegisterEvent("MAIL_CLOSED");
|
|
Zerotorescue@0
|
61
|
|
Zerotorescue@0
|
62 if self.db.profile.batchSummary then
|
|
Zerotorescue@0
|
63 self:RegisterMessage("MO_OPEN_COMPLETE");
|
|
Zerotorescue@0
|
64 end
|
|
Zerotorescue@0
|
65
|
|
Zerotorescue@0
|
66 -- Money
|
|
Zerotorescue@0
|
67 if self.db.profile.trackGold then
|
|
Zerotorescue@0
|
68 self:RegisterEvent("PLAYER_MONEY");
|
|
Zerotorescue@0
|
69
|
|
Zerotorescue@0
|
70 previousGold = GetMoney();
|
|
Zerotorescue@0
|
71 earned = 0;
|
|
Zerotorescue@0
|
72 end
|
|
Zerotorescue@0
|
73
|
|
Zerotorescue@0
|
74 -- Items
|
|
Zerotorescue@0
|
75 if self.db.profile.trackItems then
|
|
Zerotorescue@0
|
76 self:RegisterEvent("BAG_UPDATE");
|
|
Zerotorescue@0
|
77
|
|
Zerotorescue@0
|
78 previousFreeSlotsAvailable = self:GetNumFreeSlots();
|
|
Zerotorescue@0
|
79 itemsGained = 0;
|
|
Zerotorescue@0
|
80 end
|
|
Zerotorescue@0
|
81
|
|
Zerotorescue@0
|
82 -- Mail
|
|
Zerotorescue@0
|
83 if self.db.profile.trackMail then
|
|
Zerotorescue@0
|
84 self:RegisterEvent("MAIL_INBOX_UPDATE");
|
|
Zerotorescue@0
|
85
|
|
Zerotorescue@0
|
86 previousMailCount = nil;
|
|
Zerotorescue@0
|
87 mailOpened = 0;
|
|
Zerotorescue@0
|
88 end
|
|
Zerotorescue@0
|
89
|
|
Zerotorescue@0
|
90 -- Time Spent
|
|
Zerotorescue@0
|
91 if self.db.profile.trackTimeSpent then
|
|
Zerotorescue@0
|
92 timeStarted = GetTime();
|
|
Zerotorescue@0
|
93 end
|
|
Zerotorescue@0
|
94 end
|
|
Zerotorescue@0
|
95
|
|
Zerotorescue@0
|
96 function Collected:MAIL_CLOSED()
|
|
Zerotorescue@0
|
97 self:Debug("MAIL_CLOSED");
|
|
Zerotorescue@0
|
98
|
|
Zerotorescue@0
|
99 self:Summarize();
|
|
Zerotorescue@0
|
100
|
|
Zerotorescue@0
|
101 self:Stop();
|
|
Zerotorescue@0
|
102 end
|
|
Zerotorescue@0
|
103
|
|
Zerotorescue@0
|
104 function Collected:PLAYER_MONEY()
|
|
Zerotorescue@0
|
105 -- Sending mail does not interest us, so only remember what we earned
|
|
Zerotorescue@0
|
106 local currentGold = GetMoney();
|
|
Zerotorescue@0
|
107
|
|
Zerotorescue@0
|
108 if currentGold > previousGold then
|
|
Zerotorescue@0
|
109 local goldEarned = ( currentGold - previousGold );
|
|
Zerotorescue@0
|
110
|
|
Zerotorescue@0
|
111 earned = ( earned + goldEarned );
|
|
Zerotorescue@0
|
112
|
|
Zerotorescue@0
|
113 updated = true;
|
|
Zerotorescue@0
|
114
|
|
Zerotorescue@0
|
115 if self.db.profile.sessionSummary then
|
|
Zerotorescue@0
|
116 sessionEarned = ( sessionEarned + goldEarned );
|
|
Zerotorescue@0
|
117 end
|
|
Zerotorescue@0
|
118 end
|
|
Zerotorescue@0
|
119
|
|
Zerotorescue@0
|
120 previousGold = currentGold;
|
|
Zerotorescue@0
|
121 end
|
|
Zerotorescue@0
|
122
|
|
Zerotorescue@0
|
123 function Collected:BAG_UPDATE()
|
|
Zerotorescue@0
|
124 -- Sending mail does not interest us, so only remember what we earned
|
|
Zerotorescue@0
|
125 local freeSlotAvailable = self:GetNumFreeSlots();
|
|
Zerotorescue@0
|
126
|
|
Zerotorescue@0
|
127 if freeSlotAvailable < previousFreeSlotsAvailable then
|
|
Zerotorescue@0
|
128 -- we lost a slot, so gained an item
|
|
Zerotorescue@0
|
129
|
|
Zerotorescue@0
|
130 local gained = ( previousFreeSlotsAvailable - freeSlotAvailable );
|
|
Zerotorescue@0
|
131
|
|
Zerotorescue@0
|
132 itemsGained = ( itemsGained + gained );
|
|
Zerotorescue@0
|
133
|
|
Zerotorescue@0
|
134 updated = true;
|
|
Zerotorescue@0
|
135
|
|
Zerotorescue@0
|
136 if self.db.profile.sessionSummary then
|
|
Zerotorescue@0
|
137 sessionItemsgained = ( sessionItemsgained + gained );
|
|
Zerotorescue@0
|
138 end
|
|
Zerotorescue@0
|
139
|
|
Zerotorescue@0
|
140 --We may need the lines below if we get inaccurate counts
|
|
Zerotorescue@0
|
141 -- previousFreeSlotsAvailable = ( previousFreeSlotsAvailable - gained );
|
|
Zerotorescue@0
|
142 --elseif freeSlotAvailable > previousFreeSlotsAvailable then
|
|
Zerotorescue@0
|
143 -- an additional slot available, so we lost an item
|
|
Zerotorescue@0
|
144
|
|
Zerotorescue@0
|
145 -- local lost = ( freeSlotAvailable - previousFreeSlotsAvailable );
|
|
Zerotorescue@0
|
146
|
|
Zerotorescue@0
|
147 -- previousFreeSlotsAvailable = ( previousFreeSlotsAvailable + lost );
|
|
Zerotorescue@0
|
148 end
|
|
Zerotorescue@0
|
149
|
|
Zerotorescue@0
|
150 previousFreeSlotsAvailable = freeSlotAvailable;
|
|
Zerotorescue@0
|
151 end
|
|
Zerotorescue@0
|
152
|
|
Zerotorescue@0
|
153 function Collected:MAIL_INBOX_UPDATE()
|
|
Zerotorescue@0
|
154 local numItems, _ = GetInboxNumItems();
|
|
Zerotorescue@0
|
155
|
|
Zerotorescue@0
|
156 if previousMailCount == nil then
|
|
Zerotorescue@0
|
157 previousMailCount = numItems;
|
|
Zerotorescue@0
|
158 else
|
|
Zerotorescue@0
|
159 if numItems < previousMailCount then
|
|
Zerotorescue@0
|
160 -- We lost a mail, which means we opened one without text
|
|
Zerotorescue@0
|
161
|
|
Zerotorescue@0
|
162 --local opened = ( previousMailCount - numItems );
|
|
Zerotorescue@0
|
163
|
|
Zerotorescue@0
|
164 mailOpened = ( mailOpened + 1 );
|
|
Zerotorescue@0
|
165
|
|
Zerotorescue@0
|
166 updated = true;
|
|
Zerotorescue@0
|
167
|
|
Zerotorescue@0
|
168 if self.db.profile.sessionSummary then
|
|
Zerotorescue@0
|
169 sessionMailOpened = ( sessionMailOpened + 1 );
|
|
Zerotorescue@0
|
170 end
|
|
Zerotorescue@0
|
171 end
|
|
Zerotorescue@0
|
172
|
|
Zerotorescue@0
|
173 previousMailCount = numItems;
|
|
Zerotorescue@0
|
174 end
|
|
Zerotorescue@0
|
175 end
|
|
Zerotorescue@0
|
176
|
|
Zerotorescue@0
|
177 function Collected:MO_OPEN_COMPLETE()
|
|
Zerotorescue@0
|
178 -- Only summarize when changed
|
|
Zerotorescue@0
|
179 if updated then
|
|
Zerotorescue@0
|
180 self:Summarize();
|
|
Zerotorescue@0
|
181
|
|
Zerotorescue@0
|
182 updated = false;
|
|
Zerotorescue@0
|
183 end
|
|
Zerotorescue@0
|
184 end
|
|
Zerotorescue@0
|
185
|
|
Zerotorescue@0
|
186 function Collected:Stop()
|
|
Zerotorescue@0
|
187 self:UnregisterEvent("MAIL_CLOSED");
|
|
Zerotorescue@0
|
188
|
|
Zerotorescue@0
|
189 -- Batch summary
|
|
Zerotorescue@0
|
190 self:UnregisterMessage("MO_OPEN_COMPLETE");
|
|
Zerotorescue@0
|
191
|
|
Zerotorescue@0
|
192 -- Clear any var in the memory remaining
|
|
Zerotorescue@0
|
193
|
|
Zerotorescue@0
|
194 -- Money
|
|
Zerotorescue@0
|
195 self:UnregisterEvent("PLAYER_MONEY");
|
|
Zerotorescue@0
|
196 previousGold = nil;
|
|
Zerotorescue@0
|
197 earned = nil;
|
|
Zerotorescue@0
|
198
|
|
Zerotorescue@0
|
199 -- Items
|
|
Zerotorescue@0
|
200 self:UnregisterEvent("BAG_UPDATE");
|
|
Zerotorescue@0
|
201 previousFreeSlotsAvailable = nil;
|
|
Zerotorescue@0
|
202 itemsGained = nil;
|
|
Zerotorescue@0
|
203
|
|
Zerotorescue@0
|
204 -- Mail
|
|
Zerotorescue@0
|
205 self:UnregisterEvent("MAIL_INBOX_UPDATE");
|
|
Zerotorescue@0
|
206 previousMailCount = nil;
|
|
Zerotorescue@0
|
207 mailOpened = nil;
|
|
Zerotorescue@0
|
208
|
|
Zerotorescue@0
|
209 -- Time Spent
|
|
Zerotorescue@0
|
210 timeStarted = nil;
|
|
Zerotorescue@0
|
211 end
|
|
Zerotorescue@0
|
212
|
|
Zerotorescue@0
|
213 function Collected:Summarize()
|
|
Zerotorescue@0
|
214 -- Message buffer, append details we have data for
|
|
Zerotorescue@0
|
215 local printMessage = "";
|
|
Zerotorescue@0
|
216
|
|
Zerotorescue@0
|
217 local timeSpent;
|
|
Zerotorescue@0
|
218 if timeStarted then
|
|
Zerotorescue@0
|
219 timeSpent = ( GetTime() - timeStarted );
|
|
Zerotorescue@0
|
220
|
|
Zerotorescue@0
|
221 if self.db.profile.sessionSummary and self.db.profile.trackTimeSpent then
|
|
Zerotorescue@0
|
222 sessionTimeSpent = ( sessionTimeSpent + timeSpent );
|
|
Zerotorescue@0
|
223 end
|
|
Zerotorescue@0
|
224 end
|
|
Zerotorescue@0
|
225
|
|
Zerotorescue@0
|
226 -- Did we record any mail being opened?
|
|
Zerotorescue@0
|
227 if mailOpened and mailOpened > 0 then
|
|
Zerotorescue@0
|
228 -- Time Spent
|
|
Zerotorescue@1
|
229 if timeSpent and timeSpent > 0 then
|
|
Zerotorescue@0
|
230 printMessage = printMessage .. format("Collected a total of %d mails within %d minutes and %d seconds. ", mailOpened, floor( timeSpent / 60 ), ( timeSpent % 60 ));
|
|
Zerotorescue@0
|
231 else
|
|
Zerotorescue@0
|
232 printMessage = printMessage .. format("Collected a total of %d mails. ", mailOpened);
|
|
Zerotorescue@0
|
233 end
|
|
Zerotorescue@1
|
234 elseif timeSpent and timeSpent > 0 then
|
|
Zerotorescue@0
|
235 printMessage = printMessage .. format("Spent %d minutes and %d seconds collecting mail. ", floor( timeSpent / 60 ), ( timeSpent % 60 ));
|
|
Zerotorescue@0
|
236 end
|
|
Zerotorescue@0
|
237
|
|
Zerotorescue@0
|
238 -- Did we record any items or gold being looted?
|
|
Zerotorescue@0
|
239 if (itemsGained and itemsGained > 0) and (earned and earned > 0) then
|
|
Zerotorescue@0
|
240 printMessage = printMessage .. format("From these mails you gained %d items and %s.", itemsGained, MailOpener:FormatMoney(earned));
|
|
Zerotorescue@0
|
241 elseif itemsGained and itemsGained > 0 then
|
|
Zerotorescue@0
|
242 printMessage = printMessage .. format("From these mails you gained %d items.", itemsGained);
|
|
Zerotorescue@0
|
243 elseif earned and earned > 0 then
|
|
Zerotorescue@0
|
244 printMessage = printMessage .. format("From these mails you gained %s.", MailOpener:FormatMoney(earned));
|
|
Zerotorescue@0
|
245 end
|
|
Zerotorescue@0
|
246
|
|
Zerotorescue@0
|
247 -- Did we record anything? print that!
|
|
Zerotorescue@0
|
248 if printMessage ~= "" then
|
|
Zerotorescue@0
|
249 print("|cff15ff00Mail Opener|r: " .. printMessage);
|
|
Zerotorescue@0
|
250 end
|
|
Zerotorescue@0
|
251
|
|
Zerotorescue@0
|
252 if self.db.profile.sessionSummary and ((sessionMailOpened and (not mailOpened or sessionMailOpened > mailOpened)) or (sessionTimeSpent and (not timeSpent or sessionTimeSpent > timeSpent)) or (sessionEarned and (not earned or sessionEarned > earned)) or (sessionItemsgained and (not itemsGained or sessionItemsgained > itemsGained))) then
|
|
Zerotorescue@0
|
253 -- Message buffer, append details we have data for
|
|
Zerotorescue@0
|
254 printMessage = "|cff15ff00Mail Opener|r: (Session summary) ";
|
|
Zerotorescue@0
|
255
|
|
Zerotorescue@0
|
256 -- Did we record any mail being opened?
|
|
Zerotorescue@0
|
257 if sessionMailOpened and sessionMailOpened > 0 then
|
|
Zerotorescue@0
|
258 -- Time Spent
|
|
Zerotorescue@1
|
259 if sessionTimeSpent and sessionTimeSpent > 0 then
|
|
Zerotorescue@0
|
260 printMessage = printMessage .. format("Collected a total of %d mails within %d minutes and %d seconds this session. ", sessionMailOpened, floor( sessionTimeSpent / 60 ), ( sessionTimeSpent % 60 ));
|
|
Zerotorescue@0
|
261 else
|
|
Zerotorescue@0
|
262 printMessage = printMessage .. format("Collected a total of %d mails this session. ", sessionMailOpened);
|
|
Zerotorescue@0
|
263 end
|
|
Zerotorescue@0
|
264 elseif sessionTimeSpent then
|
|
Zerotorescue@0
|
265 printMessage = printMessage .. format("Spent %d minutes and %d seconds collecting mail this session. ", floor( sessionTimeSpent / 60 ), ( sessionTimeSpent % 60 ));
|
|
Zerotorescue@0
|
266 end
|
|
Zerotorescue@0
|
267
|
|
Zerotorescue@0
|
268 -- Did we record any items or gold being looted?
|
|
Zerotorescue@0
|
269 if (sessionItemsgained and sessionItemsgained > 0) and (sessionEarned and sessionEarned > 0) then
|
|
Zerotorescue@0
|
270 printMessage = printMessage .. format("From these mails you gained %d items and %s.", sessionItemsgained, MailOpener:FormatMoney(sessionEarned));
|
|
Zerotorescue@0
|
271 elseif sessionItemsgained and sessionItemsgained > 0 then
|
|
Zerotorescue@0
|
272 printMessage = printMessage .. format("From these mails you gained %d items.", sessionItemsgained);
|
|
Zerotorescue@0
|
273 elseif sessionEarned and sessionEarned > 0 then
|
|
Zerotorescue@0
|
274 printMessage = printMessage .. format("From these mails you gained %s.", MailOpener:FormatMoney(sessionEarned));
|
|
Zerotorescue@0
|
275 end
|
|
Zerotorescue@0
|
276
|
|
Zerotorescue@0
|
277 -- Did we record anything? print that!
|
|
Zerotorescue@0
|
278 if printMessage ~= "" then
|
|
Zerotorescue@0
|
279 print(printMessage);
|
|
Zerotorescue@0
|
280 end
|
|
Zerotorescue@0
|
281 end
|
|
Zerotorescue@0
|
282 end
|
|
Zerotorescue@0
|
283
|
|
Zerotorescue@0
|
284 function Collected:GetNumFreeSlots()
|
|
Zerotorescue@0
|
285 local slotsAvailable = 0;
|
|
Zerotorescue@0
|
286 for bag = 0, 4 do
|
|
Zerotorescue@0
|
287 slotsAvailable = ( slotsAvailable + GetContainerNumFreeSlots(bag) );
|
|
Zerotorescue@0
|
288 end
|
|
Zerotorescue@0
|
289
|
|
Zerotorescue@0
|
290 return slotsAvailable;
|
|
Zerotorescue@0
|
291 end
|
|
Zerotorescue@0
|
292
|
|
Zerotorescue@0
|
293 function Collected:GetOptionsGroup()
|
|
Zerotorescue@0
|
294 local configGroup = {
|
|
Zerotorescue@0
|
295 order = 400,
|
|
Zerotorescue@0
|
296 type = "group",
|
|
Zerotorescue@0
|
297 name = "Collected",
|
|
Zerotorescue@0
|
298 desc = "Change settings for the collected module.",
|
|
Zerotorescue@0
|
299 args = {
|
|
Zerotorescue@0
|
300 General = {
|
|
Zerotorescue@0
|
301 order = 10,
|
|
Zerotorescue@0
|
302 type = "group",
|
|
Zerotorescue@0
|
303 inline = true,
|
|
Zerotorescue@0
|
304 name = "General",
|
|
Zerotorescue@0
|
305 args = {
|
|
Zerotorescue@0
|
306 description = {
|
|
Zerotorescue@0
|
307 order = 10,
|
|
Zerotorescue@0
|
308 type = "description",
|
|
Zerotorescue@0
|
309 name = function()
|
|
Zerotorescue@0
|
310 local default = "With this button you can completely toggle this module |cff00ff00on|r or |cffff0000off|r. This setting will be remembered and the module will be automatically toggled |cff00ff00on|r or |cffff0000off|r upon logon as it was last set.\n\n";
|
|
Zerotorescue@0
|
311
|
|
Zerotorescue@0
|
312 if self:IsEnabled() then
|
|
Zerotorescue@0
|
313 return default .. "Status: |cff00ff00Enabled|r";
|
|
Zerotorescue@0
|
314 else
|
|
Zerotorescue@0
|
315 return default .. "Status: |cffff0000Disabled|r";
|
|
Zerotorescue@0
|
316 end
|
|
Zerotorescue@0
|
317 end,
|
|
Zerotorescue@0
|
318 },
|
|
Zerotorescue@0
|
319 disable = {
|
|
Zerotorescue@0
|
320 order = 20,
|
|
Zerotorescue@0
|
321 type = "execute",
|
|
Zerotorescue@0
|
322 name = function()
|
|
Zerotorescue@0
|
323 if self:IsEnabled() then
|
|
Zerotorescue@0
|
324 return "Disable Module";
|
|
Zerotorescue@0
|
325 else
|
|
Zerotorescue@0
|
326 return "Enable Module";
|
|
Zerotorescue@0
|
327 end
|
|
Zerotorescue@0
|
328 end,
|
|
Zerotorescue@0
|
329 desc = "Click here to completely toggle this module on or off.",
|
|
Zerotorescue@0
|
330 width = "double",
|
|
Zerotorescue@0
|
331 func = function()
|
|
Zerotorescue@0
|
332 if self:IsEnabled() then
|
|
Zerotorescue@0
|
333 self:Disable();
|
|
Zerotorescue@0
|
334
|
|
Zerotorescue@0
|
335 MailOpener.db.profile.modules[self:GetName()] = false;
|
|
Zerotorescue@0
|
336 else
|
|
Zerotorescue@0
|
337 self:Enable();
|
|
Zerotorescue@0
|
338
|
|
Zerotorescue@0
|
339 MailOpener.db.profile.modules[self:GetName()] = true;
|
|
Zerotorescue@0
|
340 end
|
|
Zerotorescue@0
|
341 end,
|
|
Zerotorescue@0
|
342 },
|
|
Zerotorescue@0
|
343 },
|
|
Zerotorescue@0
|
344 },
|
|
Zerotorescue@0
|
345 TrackStats = {
|
|
Zerotorescue@0
|
346 order = 20,
|
|
Zerotorescue@0
|
347 type = "group",
|
|
Zerotorescue@0
|
348 inline = true,
|
|
Zerotorescue@0
|
349 name = "Track Stats",
|
|
Zerotorescue@0
|
350 args = {
|
|
Zerotorescue@0
|
351 description = {
|
|
Zerotorescue@0
|
352 order = 10,
|
|
Zerotorescue@0
|
353 type = "description",
|
|
Zerotorescue@0
|
354 name = "You can select what things to track. Toggling something off will stop tracking of it completely and reduce the resources used by Mail Opener (although you shouldn't notice a difference).",
|
|
Zerotorescue@0
|
355 },
|
|
Zerotorescue@0
|
356 AHHeader = {
|
|
Zerotorescue@0
|
357 order = 15,
|
|
Zerotorescue@0
|
358 type = "header",
|
|
Zerotorescue@0
|
359 name = "",
|
|
Zerotorescue@0
|
360 },
|
|
Zerotorescue@0
|
361 trackGold = {
|
|
Zerotorescue@0
|
362 order = 20,
|
|
Zerotorescue@0
|
363 type = "toggle",
|
|
Zerotorescue@0
|
364 name = "Track |cfffed000gold gained|r",
|
|
Zerotorescue@0
|
365 desc = "Track the amount of gold gained and display it when closing the mailbox.",
|
|
Zerotorescue@0
|
366 set = function(i, v)
|
|
Zerotorescue@0
|
367 self.db.profile.trackGold = v;
|
|
Zerotorescue@0
|
368
|
|
Zerotorescue@0
|
369 if MailFrame:IsVisible() then
|
|
Zerotorescue@0
|
370 self:MAIL_SHOW();
|
|
Zerotorescue@0
|
371 end
|
|
Zerotorescue@0
|
372 end,
|
|
Zerotorescue@0
|
373 get = function() return self.db.profile.trackGold; end,
|
|
Zerotorescue@0
|
374 },
|
|
Zerotorescue@0
|
375 trackItems = {
|
|
Zerotorescue@0
|
376 order = 30,
|
|
Zerotorescue@0
|
377 type = "toggle",
|
|
Zerotorescue@0
|
378 name = "Track |cfffed000items gained|r",
|
|
Zerotorescue@0
|
379 desc = "Track the amount of items gained and display it when closing the mailbox.",
|
|
Zerotorescue@0
|
380 set = function(i, v)
|
|
Zerotorescue@0
|
381 self.db.profile.trackItems = v;
|
|
Zerotorescue@0
|
382
|
|
Zerotorescue@0
|
383 if MailFrame:IsVisible() then
|
|
Zerotorescue@0
|
384 self:MAIL_SHOW();
|
|
Zerotorescue@0
|
385 end
|
|
Zerotorescue@0
|
386 end,
|
|
Zerotorescue@0
|
387 get = function() return self.db.profile.trackItems; end,
|
|
Zerotorescue@0
|
388 },
|
|
Zerotorescue@0
|
389 trackMail = {
|
|
Zerotorescue@0
|
390 order = 40,
|
|
Zerotorescue@0
|
391 type = "toggle",
|
|
Zerotorescue@0
|
392 name = "Track |cfffed000mail opened|r",
|
|
Zerotorescue@0
|
393 desc = "Track the amount of mail received and display it when closing the mailbox.",
|
|
Zerotorescue@0
|
394 set = function(i, v)
|
|
Zerotorescue@0
|
395 self.db.profile.trackMail = v;
|
|
Zerotorescue@0
|
396
|
|
Zerotorescue@0
|
397 if MailFrame:IsVisible() then
|
|
Zerotorescue@0
|
398 self:MAIL_SHOW();
|
|
Zerotorescue@0
|
399 end
|
|
Zerotorescue@0
|
400 end,
|
|
Zerotorescue@0
|
401 get = function() return self.db.profile.trackMail; end,
|
|
Zerotorescue@0
|
402 },
|
|
Zerotorescue@0
|
403 trackTimeSpent = {
|
|
Zerotorescue@0
|
404 order = 50,
|
|
Zerotorescue@0
|
405 type = "toggle",
|
|
Zerotorescue@0
|
406 name = "Track |cfffed000time spent|r",
|
|
Zerotorescue@0
|
407 desc = "Track the amount of time spent at the mailbox.",
|
|
Zerotorescue@0
|
408 set = function(i, v)
|
|
Zerotorescue@0
|
409 self.db.profile.trackTimeSpent = v;
|
|
Zerotorescue@0
|
410
|
|
Zerotorescue@0
|
411 if MailFrame:IsVisible() then
|
|
Zerotorescue@0
|
412 self:MAIL_SHOW();
|
|
Zerotorescue@0
|
413 end
|
|
Zerotorescue@0
|
414 end,
|
|
Zerotorescue@0
|
415 get = function() return self.db.profile.trackTimeSpent; end,
|
|
Zerotorescue@0
|
416 },
|
|
Zerotorescue@0
|
417 },
|
|
Zerotorescue@0
|
418 },
|
|
Zerotorescue@0
|
419 Summarize = {
|
|
Zerotorescue@0
|
420 order = 30,
|
|
Zerotorescue@0
|
421 type = "group",
|
|
Zerotorescue@0
|
422 inline = true,
|
|
Zerotorescue@0
|
423 name = "Summarize",
|
|
Zerotorescue@0
|
424 args = {
|
|
Zerotorescue@0
|
425 sessionSummary = {
|
|
Zerotorescue@0
|
426 order = 20,
|
|
Zerotorescue@0
|
427 type = "toggle",
|
|
Zerotorescue@0
|
428 name = "Also show a summary of the recorded stats within the entire session",
|
|
Zerotorescue@0
|
429 desc = "Also show a summary of the recorded stats within the entire session (since your last login or /reload).",
|
|
Zerotorescue@0
|
430 set = function(i, v)
|
|
Zerotorescue@0
|
431 self.db.profile.sessionSummary = v;
|
|
Zerotorescue@0
|
432
|
|
Zerotorescue@0
|
433 if MailFrame:IsVisible() then
|
|
Zerotorescue@0
|
434 self:MAIL_SHOW();
|
|
Zerotorescue@0
|
435 end
|
|
Zerotorescue@0
|
436 end,
|
|
Zerotorescue@0
|
437 get = function() return self.db.profile.sessionSummary; end,
|
|
Zerotorescue@0
|
438 width = "full",
|
|
Zerotorescue@0
|
439 },
|
|
Zerotorescue@0
|
440 batchSummary = {
|
|
Zerotorescue@0
|
441 order = 30,
|
|
Zerotorescue@0
|
442 type = "toggle",
|
|
Zerotorescue@0
|
443 name = "Show a summary of the recorded stats whenever it updated after opening the current batch has finished",
|
|
Zerotorescue@0
|
444 desc = "Show a summary of the recorded stats whenever it has been updated after opening the current batch of mails has finished.",
|
|
Zerotorescue@0
|
445 set = function(i, v)
|
|
Zerotorescue@0
|
446 self.db.profile.batchSummary = v;
|
|
Zerotorescue@0
|
447
|
|
Zerotorescue@0
|
448 if MailFrame:IsVisible() then
|
|
Zerotorescue@0
|
449 self:MAIL_SHOW();
|
|
Zerotorescue@0
|
450 end
|
|
Zerotorescue@0
|
451 end,
|
|
Zerotorescue@0
|
452 get = function() return self.db.profile.batchSummary; end,
|
|
Zerotorescue@0
|
453 width = "full",
|
|
Zerotorescue@0
|
454 },
|
|
Zerotorescue@0
|
455 },
|
|
Zerotorescue@0
|
456 },
|
|
Zerotorescue@0
|
457 },
|
|
Zerotorescue@0
|
458 };
|
|
Zerotorescue@0
|
459
|
|
Zerotorescue@0
|
460 return configGroup;
|
|
Zerotorescue@0
|
461 end
|
|
Zerotorescue@0
|
462
|
|
Zerotorescue@0
|
463 function Collected:Debug(t)
|
|
Zerotorescue@0
|
464 return MailOpener:Debug("|cffff0000Collected|r:" .. t);
|
|
Zerotorescue@0
|
465 end |