Mercurial > wow > inventory
view Plugins/ItemCountAddons/DataStore (with guilds).lua @ 84:3bec0ea44607
Cleaned the Inventorium folder; moved all classes to classes directory, modules to modules directory and support addons to plugins directory. In addition support addons are now references within XML files rather than inside the TOC.
Fixed the default local item count setting, you can now exclude bag and AH data from it.
Fixed some mover algorithm bugs. Mover can no longer freeze the game but instead will terminate the process after a 1000 passes.
Now reversing the moves table after making it, rather than every single time it is used.
Fixed guild bank support.
Now displaying the amount of items moved.
Scanner now scans all guild bank tabs rather than only the current.
Fixed a bug with local item data not being retrieved properly.
Disabled ?enterClicksFirstButton? within dialogs as this causes the dialog to consume all keypress.
Events are now at the addon object rather than local.
author | Zerotorescue |
---|---|
date | Thu, 06 Jan 2011 20:05:30 +0100 |
parents | ItemCountAddons/DataStore (with guilds).lua@06fee4208bf2 |
children | de18ef96983b |
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) 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 -- 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) or 0; 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) 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 (with guilds)", GetTotalCount, GetCharacterCount, IsEnabled); end