annotate Plugins/ItemCountAddons/DataStore (current account only).lua @ 109:3bbad0429d87
Now only giving the ?bags are full? message once per item rather then for every queued move.
Neater coding for the container functions and prepared mailbox support (although this is not currently planned to be further developed for the moment).
Updated todo list to include mailbox support.
author |
Zerotorescue |
date |
Wed, 12 Jan 2011 22:48:25 +0100 |
parents |
3bec0ea44607 |
children |
de18ef96983b |
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 charracters on this account (GetCharacters defaults to THIS_ACCOUNT)
|
Zerotorescue@17
|
9 for characterName, character in pairs(DataStore:GetCharacters(realm, nil)) do
|
Zerotorescue@17
|
10 -- Get only useful info (currency / gear shouldn't contain the stuff we are interested in)
|
Zerotorescue@54
|
11 local bag, bank = DataStore:GetContainerItemCount(character, itemId) or 0, 0;
|
Zerotorescue@54
|
12 local auctionHouse = DataStore:GetAuctionHouseItemCount(character, itemId) or 0;
|
Zerotorescue@54
|
13 local mail = DataStore:GetMailItemCount(character, itemId) or 0;
|
Zerotorescue@17
|
14
|
Zerotorescue@17
|
15 totalCount = totalCount + bag + bank + auctionHouse + mail;
|
Zerotorescue@17
|
16 end
|
Zerotorescue@17
|
17
|
Zerotorescue@17
|
18 return totalCount or -1;
|
Zerotorescue@17
|
19 end
|
Zerotorescue@17
|
20
|
Zerotorescue@17
|
21 local function GetCharacterCount(itemId)
|
Zerotorescue@17
|
22 local character = DataStore:GetCharacter();
|
Zerotorescue@17
|
23
|
Zerotorescue@54
|
24 local bag, bank = DataStore:GetContainerItemCount(character, itemId) or 0, 0;
|
Zerotorescue@54
|
25 local auctionHouse = DataStore:GetAuctionHouseItemCount(character, itemId) or 0;
|
Zerotorescue@54
|
26 local mail = DataStore:GetMailItemCount(character, itemId) or 0;
|
Zerotorescue@17
|
27
|
Zerotorescue@17
|
28 return bag, bank, auctionHouse, mail;
|
Zerotorescue@17
|
29 end
|
Zerotorescue@17
|
30
|
Zerotorescue@17
|
31 local function IsEnabled()
|
Zerotorescue@17
|
32 return (DataStore and DataStore.GetContainerItemCount and DataStore.GetAuctionHouseItemCount and DataStore.GetMailItemCount);
|
Zerotorescue@17
|
33 end
|
Zerotorescue@17
|
34
|
Zerotorescue@17
|
35 IMRegisterItemCountAddon("DataStore (current account only)", GetTotalCount, GetCharacterCount, IsEnabled);
|
Zerotorescue@17
|
36
|
Zerotorescue@17
|
37 end
|