GuildComm is a new (still under development) low-level addon that solves the challenge of storing a lot of guild-wide data and sharing it between all members. It is a peer-to-peer design that allows every guild member to act as a relay for transmitting the data to all other members, even as people log on and off.
Potential applications of GuildComm:
- Making player talents, gearsets, tradeskills, etc. available to any guildie at all times
- Radically enhanced raid scheduling including players automatically storing their bound Raid IDs for continuation scheduling
- Adding personal scheduling information e.g. "I'm available to raid at these times, but going on vacation this weekend"
- Managing DKP/EPGP/etc. and other per-player data without multiple addons competing for the extremely limited officer-note field
- Addition of more guild info to Guild Bank, MotD, etc.
Features of GuildComm: (to-be-implemented in parentheses)
- Automatic master election (attempts to assign the task to the most capable machine online at the time)
- Filesystem-style storage allows multiple addons to store and retrieve data in a manner that fits the addon
- Minimum-traffic peer-to-peer protocol uses folder signatures and timestamps to ensure everybody is kept up to date
- (Officer-level files are password-encrypted so all guildies help disseminate them but only officers can see them)
- (Special file types designed to accommodate multiple editors, e.g. officers tracking DKP and attendance, comments, etc.)
- Uses ChatThrottleLib for all communications, (with a big-message layer on top)
- Very simple API: File_Set(path,data), File_Get(path)
Addons using GuildComm Edit
- GuildComm-PlayerInfo - Stores a vast amount of player info including tradeskills, (gear, talents, main/alt character bindings, optional personal information ("A/S/L") for access by other players
- (GuildComm-Social - Displays the information from GuildComm-PlayerInfo in a pop-out of the Social window (like Outfitter))
GuildComm API Edit
The API is extremely simple (so far), consisting of nothing more than Set and Get commands. (Multi-writer files as used by officers and other such functions will come as implemented)
- String - Location of the "file" to set, e.g. "Player/R/Rhuidean/Tradeskill/Cooking"
- String - The actual data to set e.g. "|cffffd000|Htrade:2550:1:75:1000000...." for a tradeskill link
data = GuildComm:File_Set("path");
- String - Location of the file to retrieve, e.g. "Player/R/Rhuidean/Tradeskill/Cooking"
- String - Returned data