annotate Plugins/ItemCountAddons/DataStore (current account only).lua @ 110:67bd5057ecb7

Implemented vendor restocking with the mover. Comitting so I can always review this working version, but I?ll be disabling all part of it as it is not going to work properly without seriously compromising the code structure. Debug messages are now appended with ?Inventorium? (my MailOpener addon was making stuff difficult). Now properly removing the refill window from the displayed static popup windows list so new popups won?t be aligned at odd locations. Changed ?CreateMoverFrame? to not contain any scenario-specific info. All settings can be set with SetFrameSettings. Items that belong to speciality bags are now put there. Other items now ignore spaciality bags. Implemented test code for mailbox refill support. It has been disabled due to some issues but may be introduced later. The guild withdrawal limit is now taken into consideration. Queue is now reset before scanning again.
author Zerotorescue
date Fri, 14 Jan 2011 23:25:05 +0100
parents 3bec0ea44607
children de18ef96983b
rev   line source
Zerotorescue@17 1 do
Zerotorescue@17 2
Zerotorescue@17 3 local function GetTotalCount(itemId)
Zerotorescue@17 4 local realm = GetRealmName();
Zerotorescue@17 5
Zerotorescue@17 6 local totalCount = 0;
Zerotorescue@17 7
Zerotorescue@17 8 -- Process all charracters on this account (GetCharacters defaults to THIS_ACCOUNT)
Zerotorescue@17 9 for characterName, character in pairs(DataStore:GetCharacters(realm, nil)) do
Zerotorescue@17 10 -- Get only useful info (currency / gear shouldn't contain the stuff we are interested in)
Zerotorescue@54 11 local bag, bank = DataStore:GetContainerItemCount(character, itemId) or 0, 0;
Zerotorescue@54 12 local auctionHouse = DataStore:GetAuctionHouseItemCount(character, itemId) or 0;
Zerotorescue@54 13 local mail = DataStore:GetMailItemCount(character, itemId) or 0;
Zerotorescue@17 14
Zerotorescue@17 15 totalCount = totalCount + bag + bank + auctionHouse + mail;
Zerotorescue@17 16 end
Zerotorescue@17 17
Zerotorescue@17 18 return totalCount or -1;
Zerotorescue@17 19 end
Zerotorescue@17 20
Zerotorescue@17 21 local function GetCharacterCount(itemId)
Zerotorescue@17 22 local character = DataStore:GetCharacter();
Zerotorescue@17 23
Zerotorescue@54 24 local bag, bank = DataStore:GetContainerItemCount(character, itemId) or 0, 0;
Zerotorescue@54 25 local auctionHouse = DataStore:GetAuctionHouseItemCount(character, itemId) or 0;
Zerotorescue@54 26 local mail = DataStore:GetMailItemCount(character, itemId) or 0;
Zerotorescue@17 27
Zerotorescue@17 28 return bag, bank, auctionHouse, mail;
Zerotorescue@17 29 end
Zerotorescue@17 30
Zerotorescue@17 31 local function IsEnabled()
Zerotorescue@17 32 return (DataStore and DataStore.GetContainerItemCount and DataStore.GetAuctionHouseItemCount and DataStore.GetMailItemCount);
Zerotorescue@17 33 end
Zerotorescue@17 34
Zerotorescue@17 35 IMRegisterItemCountAddon("DataStore (current account only)", GetTotalCount, GetCharacterCount, IsEnabled);
Zerotorescue@17 36
Zerotorescue@17 37 end