Mercurial > wow > inventory
view ItemCountAddons/DataStore (current account only).lua @ 81:58617c7827fa
Item refilling should now be working. Probably very slow if your bags, bank or guild bank is filled with over 200 unique items or so (needs some real testing, but know that it is a known (possible) issue).
author | Zerotorescue |
---|---|
date | Thu, 06 Jan 2011 01:01:25 +0100 |
parents | 06fee4208bf2 |
children |
line wrap: on
line source
do local function GetTotalCount(itemId) local realm = GetRealmName(); local totalCount = 0; -- Process all charracters on this account (GetCharacters defaults to THIS_ACCOUNT) for characterName, character in pairs(DataStore:GetCharacters(realm, nil)) do -- Get only useful info (currency / gear shouldn't contain the stuff we are interested in) local bag, bank = DataStore:GetContainerItemCount(character, itemId) or 0, 0; local auctionHouse = DataStore:GetAuctionHouseItemCount(character, itemId) or 0; local mail = DataStore:GetMailItemCount(character, itemId) or 0; totalCount = totalCount + bag + bank + auctionHouse + mail; end return totalCount or -1; end local function GetCharacterCount(itemId) local character = DataStore:GetCharacter(); local bag, bank = DataStore:GetContainerItemCount(character, itemId) or 0, 0; local auctionHouse = DataStore:GetAuctionHouseItemCount(character, itemId) or 0; local mail = DataStore:GetMailItemCount(character, itemId) or 0; return bag, bank, auctionHouse, mail; end local function IsEnabled() return (DataStore and DataStore.GetContainerItemCount and DataStore.GetAuctionHouseItemCount and DataStore.GetMailItemCount); end IMRegisterItemCountAddon("DataStore (current account only)", GetTotalCount, GetCharacterCount, IsEnabled); end