annotate Modules/Collected.lua @ 62:1a4b2e73cef3

Changelog update. Added a few tips. Removed the useless welcome and goodbye notifications. Fixed wording of the filters at open all to make things clearer.
author Zerotorescue
date Tue, 14 Sep 2010 00:32:00 +0200
parents 8d1a34cec258
children eadff31e61e8
rev   line source
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@57 242 printMessage = printMessage .. format("Collected a total of %d mail within %d minutes and %d seconds. ", mailOpened, timeSpentMinutes, timeSpentSeconds);
Zerotorescue@37 243 else
Zerotorescue@57 244 printMessage = printMessage .. format("Collected a total of %d mail within %d seconds. ", mailOpened, timeSpentSeconds);
Zerotorescue@37 245 end
Zerotorescue@0 246 else
Zerotorescue@57 247 printMessage = printMessage .. format("Collected a total of %d mail. ", 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@57 284 printMessage = printMessage .. format("Collected a total of %d mail within %d minutes and %d seconds this session. ", mailOpened, timeSpentMinutes, timeSpentSeconds);
Zerotorescue@37 285 else
Zerotorescue@57 286 printMessage = printMessage .. format("Collected a total of %d mail within %d seconds this session. ", mailOpened, timeSpentSeconds);
Zerotorescue@37 287 end
Zerotorescue@0 288 else
Zerotorescue@57 289 printMessage = printMessage .. format("Collected a total of %d mail 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