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