Mercurial > wow > inventory
view ItemCountAddons/DataStore (with guilds).lua @ 49:51d85a84b40c
Added a public to-do list to help me keep track of things I discussed or had planned to implement and to let you know what will come.
author | Zerotorescue |
---|---|
date | Fri, 17 Dec 2010 00:51:00 +0100 |
parents | 8f5c02113c5c |
children | 06fee4208bf2 |
line wrap: on
line source
do local function GetTotalCount(itemId) local realm = GetRealmName(); local totalCount = 0; local guilds = {}; -- Process all accounts for accountName in pairs(DataStore:GetAccounts()) do -- Process all charracters for characterName, character in pairs(DataStore:GetCharacters(realm, accountName)) 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 -- Process all guilds for guildName, guild in pairs(DataStore:GetGuilds(realm, accountName)) do if not guilds[guildName] then -- We don't want itemcounts from a single guild to be counted twice, so first to present data wins guilds[guildName] = true; local guild = DataStore:GetGuildBankItemCount(guild, itemId); totalCount = totalCount + guild; end end 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 (with guilds)", GetTotalCount, GetCharacterCount, IsEnabled); end