annotate Modules/Collected.lua @ 49:b2b98cc0c544

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