view ItemCountAddons/DataStore (current account only).lua @ 18:3c70a3411025

.pkgmeta update to ignore the scroll ids retrieval ?howto?.
author Zerotorescue
date Wed, 20 Oct 2010 01:32:08 +0200
parents 8f5c02113c5c
children 06fee4208bf2
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);
			local auctionHouse = DataStore:GetAuctionHouseItemCount(character, itemId);
			local mail = DataStore:GetMailItemCount(character, itemId);
			
			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);
		local auctionHouse = DataStore:GetAuctionHouseItemCount(character, itemId);
		local mail = DataStore:GetMailItemCount(character, itemId);
		
		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