annotate ItemCountAddons/DataStore (without guilds).lua @ 61:d903b0a151d3
Command handler function is now private, no need to keep it global when you can use the global SlashCmdList["INVENTORIUM"](msg) instead.
Added database updating mechanism.
All database vars are now stored in profiles rather than global.
Now refreshing options when a different profile is selected.
Fixed an issue with minimum local and global stock values not being inherited from the defaults.
author |
Zerotorescue |
date |
Wed, 22 Dec 2010 15:04:09 +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
|