annotate ItemCountAddons/DataStore (without guilds).lua @ 82:f885805da5d6

Added options to toggle the automatic refilling. This defaults to true. Normalized property amount names; a move has a ?num? that must be moved and a location has a ?count? indicating the amount of items at that slot. Target/source item verification should now be working properly for guilds. When ?bank? is included in the local item count, we will skip trying to auto refill from this.
author Zerotorescue
date Thu, 06 Jan 2011 10:48:56 +0100
parents 06fee4208bf2
children
rev   line source
Zerotorescue@17 1 do
Zerotorescue@17 2
Zerotorescue@17 3 local function GetTotalCount(itemId)
Zerotorescue@17 4 local realm = GetRealmName();
Zerotorescue@17 5
Zerotorescue@17 6 local totalCount = 0;
Zerotorescue@17 7
Zerotorescue@17 8 -- Process all accounts
Zerotorescue@17 9 for accountName in pairs(DataStore:GetAccounts()) do
Zerotorescue@17 10
Zerotorescue@17 11 -- Process all charracters
Zerotorescue@17 12 for characterName, character in pairs(DataStore:GetCharacters(realm, accountName)) do
Zerotorescue@17 13 -- Get only useful info (currency / gear shouldn't contain the stuff we are interested in)
Zerotorescue@54 14 local bag, bank = DataStore:GetContainerItemCount(character, itemId) or 0, 0;
Zerotorescue@54 15 local auctionHouse = DataStore:GetAuctionHouseItemCount(character, itemId) or 0;
Zerotorescue@54 16 local mail = DataStore:GetMailItemCount(character, itemId) or 0;
Zerotorescue@17 17
Zerotorescue@17 18 totalCount = totalCount + bag + bank + auctionHouse + mail;
Zerotorescue@17 19 end
Zerotorescue@17 20 end
Zerotorescue@17 21
Zerotorescue@17 22 return totalCount or -1;
Zerotorescue@17 23 end
Zerotorescue@17 24
Zerotorescue@17 25 local function GetCharacterCount(itemId)
Zerotorescue@17 26 local character = DataStore:GetCharacter();
Zerotorescue@17 27
Zerotorescue@54 28 local bag, bank = DataStore:GetContainerItemCount(character, itemId) or 0, 0;
Zerotorescue@54 29 local auctionHouse = DataStore:GetAuctionHouseItemCount(character, itemId) or 0;
Zerotorescue@54 30 local mail = DataStore:GetMailItemCount(character, itemId) or 0;
Zerotorescue@17 31
Zerotorescue@17 32 return bag, bank, auctionHouse, mail;
Zerotorescue@17 33 end
Zerotorescue@17 34
Zerotorescue@17 35 local function IsEnabled()
Zerotorescue@17 36 return (DataStore and DataStore.GetContainerItemCount and DataStore.GetAuctionHouseItemCount and DataStore.GetMailItemCount);
Zerotorescue@17 37 end
Zerotorescue@17 38
Zerotorescue@17 39 IMRegisterItemCountAddon("DataStore (without guilds)", GetTotalCount, GetCharacterCount, IsEnabled);
Zerotorescue@17 40
Zerotorescue@17 41 end