annotate Plugins/ItemCountAddons/DataStore (without guilds).lua @ 88:f1c035694545

Now trying to continue moving item 0.5 seconds after the last ITEM_LOCK_CHANGED-event, rather than 1 second after BAG_UPDATE. Skipping items which are tagged locked by the client while not tagged as locked in our addon.
author Zerotorescue
date Fri, 07 Jan 2011 10:34:38 +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 accounts
Zerotorescue@17 9 for accountName in pairs(DataStore:GetAccounts()) do
Zerotorescue@17 10
Zerotorescue@17 11 -- Process all charracters
Zerotorescue@17 12 for characterName, character in pairs(DataStore:GetCharacters(realm, accountName)) do
Zerotorescue@17 13 -- Get only useful info (currency / gear shouldn't contain the stuff we are interested in)
Zerotorescue@54 14 local bag, bank = DataStore:GetContainerItemCount(character, itemId) or 0, 0;
Zerotorescue@54 15 local auctionHouse = DataStore:GetAuctionHouseItemCount(character, itemId) or 0;
Zerotorescue@54 16 local mail = DataStore:GetMailItemCount(character, itemId) or 0;
Zerotorescue@17 17
Zerotorescue@17 18 totalCount = totalCount + bag + bank + auctionHouse + mail;
Zerotorescue@17 19 end
Zerotorescue@17 20 end
Zerotorescue@17 21
Zerotorescue@17 22 return totalCount or -1;
Zerotorescue@17 23 end
Zerotorescue@17 24
Zerotorescue@17 25 local function GetCharacterCount(itemId)
Zerotorescue@17 26 local character = DataStore:GetCharacter();
Zerotorescue@17 27
Zerotorescue@54 28 local bag, bank = DataStore:GetContainerItemCount(character, itemId) or 0, 0;
Zerotorescue@54 29 local auctionHouse = DataStore:GetAuctionHouseItemCount(character, itemId) or 0;
Zerotorescue@54 30 local mail = DataStore:GetMailItemCount(character, itemId) or 0;
Zerotorescue@17 31
Zerotorescue@17 32 return bag, bank, auctionHouse, mail;
Zerotorescue@17 33 end
Zerotorescue@17 34
Zerotorescue@17 35 local function IsEnabled()
Zerotorescue@17 36 return (DataStore and DataStore.GetContainerItemCount and DataStore.GetAuctionHouseItemCount and DataStore.GetMailItemCount);
Zerotorescue@17 37 end
Zerotorescue@17 38
Zerotorescue@17 39 IMRegisterItemCountAddon("DataStore (without guilds)", GetTotalCount, GetCharacterCount, IsEnabled);
Zerotorescue@17 40
Zerotorescue@17 41 end