annotate Modules/Collected.lua @ 60:4cd3b02f6840

Added a part for Mail Opener tips to the bottom of the general config. Also, the first time you start the config you will be prompted to enable continuous opening or not.
author Zerotorescue
date Mon, 13 Sep 2010 23:58:48 +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