GuildComm

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

 * 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
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)

GuildComm:File_Set
GuildComm:File_Set("path", "data");


 * path:String - Location of the "file" to set, e.g. "Player/R/Rhuidean/Tradeskill/Cooking"
 * data:String - The actual data to set e.g. "|cffffd000|Htrade:2550:1:75:1000000...." for a tradeskill link

GuildComm:File_Get
data = GuildComm:File_Set("path");


 * path:String - Location of the file to retrieve, e.g. "Player/R/Rhuidean/Tradeskill/Cooking"
 * data:String - Returned data