annotate ItemCountAddons/DataStore (with guilds).lua @ 30:8177b5bcb883
Added tag ?NYI? to the ?Alert when below minimum? option.
Added ?Don't queue when below threshold? option. This isn?t functional yet, just a place holder to indicate it will be implemented at a later time.
Added initial functionality for ?virtual? groups (feel free to suggest a better name :P), with these groups you can override the defaults for multiple groups. By default, settings will be retrieved as CURRENT_GROUP -> DEFAULTS, with this it can become CURRENT_GROUP -> VIRTUAL_GROUP -> DEFAULTS. This will come in handy when managing a lot of groups. Full functionality is not yet implemented, it is just a placeholder to indicate it will be added.
Reduced the softmax for the restock target option from 1000 to 100 to make the slider actually useful. You can still enter a value of upto 100.000 in the edit box below.
author |
Zerotorescue |
date |
Fri, 29 Oct 2010 13:43:41 +0200 |
parents |
8f5c02113c5c |
children |
06fee4208bf2 |
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 local guilds = {};
|
Zerotorescue@17
|
9
|
Zerotorescue@17
|
10 -- Process all accounts
|
Zerotorescue@17
|
11 for accountName in pairs(DataStore:GetAccounts()) do
|
Zerotorescue@17
|
12
|
Zerotorescue@17
|
13 -- Process all charracters
|
Zerotorescue@17
|
14 for characterName, character in pairs(DataStore:GetCharacters(realm, accountName)) do
|
Zerotorescue@17
|
15 -- Get only useful info (currency / gear shouldn't contain the stuff we are interested in)
|
Zerotorescue@17
|
16 local bag, bank = DataStore:GetContainerItemCount(character, itemId);
|
Zerotorescue@17
|
17 local auctionHouse = DataStore:GetAuctionHouseItemCount(character, itemId);
|
Zerotorescue@17
|
18 local mail = DataStore:GetMailItemCount(character, itemId);
|
Zerotorescue@17
|
19
|
Zerotorescue@17
|
20 totalCount = totalCount + bag + bank + auctionHouse + mail;
|
Zerotorescue@17
|
21 end
|
Zerotorescue@17
|
22
|
Zerotorescue@17
|
23 -- Process all guilds
|
Zerotorescue@17
|
24 for guildName, guild in pairs(DataStore:GetGuilds(realm, accountName)) do
|
Zerotorescue@17
|
25 if not guilds[guildName] then
|
Zerotorescue@17
|
26 -- We don't want itemcounts from a single guild to be counted twice, so first to present data wins
|
Zerotorescue@17
|
27
|
Zerotorescue@17
|
28 guilds[guildName] = true;
|
Zerotorescue@17
|
29
|
Zerotorescue@17
|
30 local guild = DataStore:GetGuildBankItemCount(guild, itemId);
|
Zerotorescue@17
|
31
|
Zerotorescue@17
|
32 totalCount = totalCount + guild;
|
Zerotorescue@17
|
33 end
|
Zerotorescue@17
|
34 end
|
Zerotorescue@17
|
35 end
|
Zerotorescue@17
|
36
|
Zerotorescue@17
|
37 return totalCount or -1;
|
Zerotorescue@17
|
38 end
|
Zerotorescue@17
|
39
|
Zerotorescue@17
|
40 local function GetCharacterCount(itemId)
|
Zerotorescue@17
|
41 local character = DataStore:GetCharacter();
|
Zerotorescue@17
|
42
|
Zerotorescue@17
|
43 local bag, bank = DataStore:GetContainerItemCount(character, itemId);
|
Zerotorescue@17
|
44 local auctionHouse = DataStore:GetAuctionHouseItemCount(character, itemId);
|
Zerotorescue@17
|
45 local mail = DataStore:GetMailItemCount(character, itemId);
|
Zerotorescue@17
|
46
|
Zerotorescue@17
|
47 return bag, bank, auctionHouse, mail;
|
Zerotorescue@17
|
48 end
|
Zerotorescue@17
|
49
|
Zerotorescue@17
|
50 local function IsEnabled()
|
Zerotorescue@17
|
51 return (DataStore and DataStore.GetContainerItemCount and DataStore.GetAuctionHouseItemCount and DataStore.GetMailItemCount);
|
Zerotorescue@17
|
52 end
|
Zerotorescue@17
|
53
|
Zerotorescue@17
|
54 IMRegisterItemCountAddon("DataStore (with guilds)", GetTotalCount, GetCharacterCount, IsEnabled);
|
Zerotorescue@17
|
55
|
Zerotorescue@17
|
56 end
|