LibGuildBankComm-1.0
A Perfect World
There are many addons that take a snapshot of the guild bank; however, since most users only use one of them, and none of them speak the same data type, guild members have snapshots that are out of sync with each other. LibGuildBankComm-1.0 takes the snapshot and standardizes the data, so any addons that support it all speak the same language. Further, when one user visits the guild bank, then all users with the lib are updated automatically to the latest contents.
Security and Bandwidth
Sends contents of the guild bank over the addon comm channel. LibGuildBankComm-1.0 uses AceComm-3.0, LibCompress, and AceSerialize-3.0 to minimize traffic. The lib does check to make certain the player can view any given guild tab, and if not, dumps that page's item information. It does, however, keep the page name and icon. When the player quits a guild, everything is wiped: number of tabs, guild funds, tab contents, name, and icon.
What Data is Sent
Each guild bank tab is individually scanned and transmitted, so only pages that the user has permission to view are sent, and a similar check is done when receiving. Along for the ride are the number of tabs and the guild bank money in raw copper numbers. Data is requested on PLAYER_LOGIN() and broadcast on GUILDBANKFRAME_CLOSED(). Should the player's guild rank change, and thus possible tab view permission changes, the lib requests and updates.
Further, it should be noted that only guild bank tabs that have been changed in some way are transmitted. The change could be name, icon, or items' quantity or position. No change to a tab means that tab is skipped.
API and Callbacks
See the API page or the Examples page for more details.
Bugs and Suggestions
Found bugs or have a suggestion? Post here.
Forum Thread
Want to read about the birthing pains, or leave a comment that doesn't fit right on the bug tracker? Got you covered.
Thank you
Starinnia, for letting me borrow Mobile Vault's page scanning code; Phanx, OrionShock, Starinnia, and many others for helping and guiding me along coding this beast, especially after they realized the uses for this library.