Guild Delta
When you login, Guild Delta displays changes ("deltas", in math terms) to the guild roster since the last time you logged in. Specifically, names of players who have joined the guild or are no longer in the guild. See below for tracking other kinds of changes.
If you're here about 5.4.2 changes, read Oddities below!
I didn't like being unaware that people had left my (large) guild merely because I happened to not be online at the time they left. And I kept being surprised to find that people I knew had joined the guild when I was offline. So I wrote this simple tool to discover changes in the roster.
Guild Delta only updates its list when you login. After that, it becomes totally inactive and removes as much of itself from memory as it can. This means that even players who join/leave the guild while you are online will be listed the next time you login. This is deliberate.
By default, text is printed to the combat log window so that it won't get lost in the flood of crap that shows up in the main chat window during login. You can use the /guilddelta command to change this, or from the Escape->Interface->AddOns menu.
Starting in release 4, there is basic support for logging all of the deltas for later review. This is disabled by default, use /guilddelta to activate it. The logging is somewhat primitive.
You can dump the guild roster to a text window using the Snapshot button or '/guilddelta output snapshot'. The text is suitable for pasting into a text editor using a fixed-width font. (Line endings are a little weird, that's just how WoW does it and there's nothing I can do about that. Any strings using high-ASCII letters will cause the spacing to be odd; that's also a WoW quirk.)
If you have downloaded this addon from anywhere other than directly from Curse or WoWInterface, then it is outdated at best and infected with viruses at worst. Clone sites not only leech bandwidth, lately they've been adding malware as well. Get your addons from safe sites with a good reputation!
Notes and Oddities
- In game version 5.4.2, Blizzard changed the guild roster API to always include the realm name of a player, in order to support connected realms. Unfortunately this means that all your guildmembers will look like they've left, and a brand new roster all joined. It's a one-time flood of noise that they didn't document in patch notes (before, or ever).
- If you are promoted to officer rank, any existing officer notes will all be printed out the next time you login, even though they haven't "changed" recently.
- Public/officer notes which are erased get no special mention; that is, there is no notification such as PlayerX's note used to be "complete noob spec" but is now empty when logging in.
- If GuildDelta reports that a player has left the guild, but Blizzard's builtin Guild Log window makes no mention of the departure, it means that the player has transferred to another faction/realm.
- Players who rename their character will be reported as the old player name leaving and the new player name joining.
- If you are no longer in a particular guild, you can (and should) clear that guild's information from memory; use the /guilddelta command to see the list of known guilds. If, however, a player is not in any guild at all when logging in, then the addon will not even register itself and in fact unloads itself from memory as much as Blizzard permits. This means that there will not be a /guilddelta command available! Either log on to a character in a guild (any guild), or if you have no characters anywhere in any guild, then... stop loading a guild-related addon. :-)
Localization
If you're a reasonably proficient speaker of non-English languages, any translations you can do would be welcome! Just make changes at http://www.wowace.com/addons/guild-delta/localization/ and then send me a PM to notify me. I can offer nothing in return except public credit, my appreciation, and a beverage of your choice if you're ever in town.
Thanks!
Every so often when logging onto a character, Guild Delta will show that officer notes were changed, and then lists all the officer notes that were changed. The list it shows are every toon that has an officer note, but none of them were touched.
If I log in again, it will say no changes were made. I can log in 15-20 times without it showing any changes, but on the 21st login, it will show officer notes changes when no changes were actually made.
I've already cleared out the guild data and had it reinitialize, but it's still happening.
The most recent version tries to handle the "minimized" windows; whatever chat window the user has chosen is used as a starting point, and the addon will look for a non-minimized window for displaying.
@Zidomo: Good ideas, and thank you. Confirmation-of-no-change is easy to add; a color picker may take a bit longer.
Two things so far. The default chat text color of the output is really hard to see. Am not color-blind; the very dark magenta is only slightly better than true black in the visibility department :D.
Sure some may like it, but not everyone. So I modified the RGB values on line 195 in gd.lua to get something more visible. Went green here (0/255,255/255,0/255); others may prefer powder blue, etc.. I'm sure others will run into the same issue. So maybe change those default values? Or have access to the Blizzard color picker integrated?
And one more request. Have an option to print out a line in chat telling that no changes have occurred instead of only printing when they have?
Basically so you can confirm that no changes have happened when offline and not be questioning whether there is a problem with the mod, some other chat mod interfering with the output, lag interfering, etc.. Its an option the Guild Check mod had and is reassuring to those who like positive confirmation on nil values :).
Most people have the general channel up upon log in, and since Guild Delta reports changes upon log in, my personal feeling is that Guild Delta should be defaulted to print in the General Channel not the Combat Log (which a lot of us hide until we are in a raid or whatever).
Anyhoo, works well, great addon.
If not, then it's not even installed or loaded.
If it does, then click "Print Chatframe Numbers" and try moving the setting to a window that's visible. Not everybody has the same number for their combat log.
Once you had the Guild Log window open, you could show any or all of guild joins/leaves, rank changes, not changes, and toons leveling. You could turn each type on or off at will - so if you wanted to check out when ____ joined, it was really easy. With that window, a complete history of every change is kept.
What do you think?
New file uploaded, it'll take a little while for the servers to propagate it out to curse.
1x GuildDelta\GuildDelta.lua:15: attempt to index upvalue 'chatframe' (a nil value)
(tail call): ?:
GuildDelta\GuildDelta.lua:197: in function `GuildDelta_OnEvent'
<string>:"*:OnEvent":1: in function <[string "*:OnEvent"]:1>
Locals:
(*temporary) = "GUILD_ROSTER_UPDATE"
(*temporary) = "GUILD_ROSTER_UPDATE"
(*temporary) = <function> defined =[C]:-1
---
1x <string>:"GuildDelta:OnLoad":1: attempt to index global 'this' (a nil value)
Locals:
---
It's great for me in my medium sized side-guild too, as I don't log in so often there.
But I also forget to check backwards in the log...
Users may notice that the output from GuildDelta will be delayed a little longer than what they're used to. This is because the builtin timer fires 15 seconds after initial loadup.