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