view ItemCountAddons/DataStore (current account only).lua @ 73:6216b754350d

Default size for the summary window increase to 700 pixels (from 650). Cached item name and rarity no longer have a default and will be nil if the value is unknown. Cached item name, rarity and link can now be updated when the itemlink element is build. Item element now gets the item table passed rather than just the item id. If the item link is already known, this prevent an additional GetItemInfo call.
author Zerotorescue
date Fri, 24 Dec 2010 16:10:20 +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