annotate Modules/Collected.lua @ 79:136aa3dd4dda

The keep free space will now cause the opener to partially loot mail when you are near the keep free space requirement, rather than skipping the entire mail. The config has been changed to reflect this.
author Zerotorescue
date Thu, 16 Sep 2010 17:20:34 +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