annotate Modules/Collected.lua @ 99:312827521e2c v1.2.2-BETA

Changelog update.
author Zerotorescue
date Sun, 26 Sep 2010 15:12:51 +0200
parents bd80e4b4042f
children 5fe1f61452a1
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@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