Download
(2MB)
Download
Updated: 05-24-21 02:26 AM
Pictures
File Info
Compatibility:
The Burning Crusade Classic (2.5.1)
Shadowlands patch (9.0.5)
Classic Patch (1.13.7)
Updated:05-24-21 02:26 AM
Created:05-02-18 03:31 PM
Downloads:28,156
Favorites:18
MD5:

Guild Roster Manager  Popular! (More than 5000 hits)

Version: R1.9294
by: Arkaan [More]

GUILD ROSTER MANAGER

Check out the official website here for much more detailed addon info

JOIN-UP ON DISCORD

Join Discord Here or Copy This Link: https://discord.gg/mnnqyPWURZ

Join up to chat about the addon, offer suggestions, report bugs, or even just chat about guild management related things. All help in this regard is greatly appreciated! I respond much faster to Discord posts than I do anywhere else and am more likely to respond faster to any issues you might be encountering.

GRM FEATURES

Snapshot of features (more details with screenshots on website)

  • Automatically syncing data! That's right! The data we are about to go over will be shared with other GRM addon users in your guild to help keep all players on the same page, especially the leadership. The editing privileges can also be controlled so only trusted ranks will have the power to share their edits with others.
  • Alt/Main management - Easily set groupings
  • Macro Tool to assist in mass kicking inactive players, promoting and demoting
  • No need to click each name in the roster now. You can just Mouse Over a player in the guild roster and a window will appear with their details
  • Mouseover window has additional player details beyond the defaults:
  • - Join Date, Promotion Date, as well as their histories (like the date of each promotion)
  • - Player's RL birthday can be set
  • - List of alts, as well as the "main" in the alt grouping.
  • - A new custom note with 150 character limit can be set.
  • - Character counts when editing the player notes
  • Upcoming Join Date Anniversaries and Birthdays can be easily added to the in-game Guild Calendar (Retail Version only)
  • Ban List that will inform you if someone banned rejoins the guild
  • Auto-Add join date to public, officer, or custom note when a player joins the guild
  • Guild Log Notification for when changes have occurred:
  • Joined or Rejoined log entries (with who did the invite in Retail version)
  • - Kicked or Left (with who kicked in Retail)
  • - Level Up notification
  • - Changes to public, officer, and custom notes
  • - Notification if an inactive player returns
  • - Promotions or Demotions (and who did them in Retail)
  • - Name-Change detection
  • - Recommendations to remove a player if offline too long, based on setting.
  • - and several others.
  • Export Tool to make it easy to export all guild player details, including core player details as well as GRM specific. Export the Log, as well as former member details too.
  • Notifications can be set for players to inform you if say, a guildie is inactive, when they become active again.

Click here for short video explanation of the addon

Features Detailed In More Depth On Site

Check out the official website here for much more detailed addon info

***Note:** Each update will be tagged with **Classic/Retail/Both** for context*

_______________________

**VERSION R1.9294 RELEASE - May 24th, 2021**

* Fixed a bug that could cause the guild window to open when in combat and a new player joins - How annoying! This only affects Classic realms.


**VERSION R1.9293 RELEASE - May 22nd, 2021**

* Class coloring of the names should once again work in TBC.

**VERSION R1.9292 RELEASE - May 21st, 2021**

* Minor fixes for the public note in GRM Classic build and prevention of 1 Lua error


**VERSION R1.9291 RELEASE - May 18th, 2021**

* Typo fix pointing to wrong files in the retail .toc file

**VERSION R1.929 RELEASE - May 18th, 2021**

* Compatibility with TBC - also updates for new "Classic Era" - and finally, brings retail all into the same codebase.

* Another minor bandaid fix to some alt group issues until the major release is ready

Note: this is not a feature or bug update, but a compatibility one for TBC launch and unifying the codebase now. Larger update is pending soon, hopefully by June 1st (at least beta release on Discord).


**VERSION R1.928 RELEASE - March 9th, 2021**

* Compatibility release for the new 9.0.5 update

* Minor bandaid fix for some alt grouping issues. This will disassociate broken groups and you will need to rebuild them, but it is a temporary fix tile major release.

* Yes, this is the longest gap between releases ever. My next update is fairly significant and it is taking me a very very long time. It will be worth it. Join the discord channel for early access to beta within the next few weeks most likely


**VERSION R1.927 RELEASE - December 10th, 2020**

* Major bug fix for issue corrupting the log that has been overlooked since November 19th and can happen to anyone... BAD! Never before happened. If you have an in-game backup that predates this, or a windows backup, this can be fixed. It does not affect ALL people, but it effects enough to be a major issue.


**VERSION R1.926 RELEASE - November 27th, 2020**

***BUG FIXES***

* Pretty significant bug where some nested tables grew VERY large if you were experiencing a crash in a previous patch, so it built over and over. This cleans up the flaw and the database. Example, a 50MB database that experience this flaw would drop to roughly 10MB. It was a fairly big flaw, but it affected very few people it seems.

* Fixed an issue with some players not being able to patch properly from the previous update. This should resolve it.


**VERSION R1.925 RELEASE - November 24th, 2020**

***BUG FIXES***

* Fixed a long time bug that was causing the addon not to load for a very small number of people, and was basically the remnants of a very old bug that finally is getting quashed.

* Fixed an issue where a rank being renamed could spam the log more than 1 time before self-resolving...


**VERSION R1.924 RELEASE - November 22nd, 2020**

* Fixed a lot of errors in relation to last update

* Also - no more spammy notifications of addon being outdated... this should only occur once per session. oops!


**VERSION R1.923 RELEASE - November 20th, 2020**

* Minor bug fix that broke Classic

**VERSION R1.922 RELEASE - November 20th, 2020**

***BUG FIXES***

* Found an issue where the addon would not configure properly for some people who had remnants of an old unresolved DB conversion bug. This likely affects very few people but it should self-resolve now.

* Sync was crashing for many players with latest build due to a slight oversight in a change. This is now resolved.

* Sync was skipping syncing join and promotion dates as well in many cases. This is now resolved. Oops!

* Fixed the "Macro Rules" button tooltip on the mouseover window to now properly show status of of each macro rule category.

* The macro Rules button on the mouseover should no longer pop back up when editing the custom note.

* Demotions were not working in Classic. They are working now.

* Fixed an issue where export was not working... again!


***QUALITY OF LIFE***

* The macro tool will now attempt to properly validate that the promotion and demotion changes occurred at the end. It will inform you if they have been validated, and if not, then it will also inform you.

* Did a thorough cleanup of unused variables and global writes to ensure GRM isn't polluting the global space.


**VERSION R1.921 RELEASE - November 19th, 2020**

*FULLY COMPATIBLE WITH 9.0.2 UPDATE!*


***NEW FEATURE - MACRO TOOL UPGRADE***

**Promotions and Demotion Feature with Rules Added!**

*This has been a long time coming. While it may not seem that complicated, there were a lot of pieces under the hood that needed to come together to make this work, coupled with the less time I was able to spend on the addon this year due to RL obligations with work and increased time with the kids around due to schools being closed. I have to say, my vision for GRM has always been centered on a single principle, however. Does it make your life as an officer or a leader easier? Does it save you time? If so, I want it...*

*I have been in guild leadership for coming on, I think, 13 years. I have been the casual leader, and I have worn the shoes of leader that hustles and promotes and recruits and grinds for status and rank. At the end of the day, the one thing in leadership that never changes is the opportunity you have to build your guild how you want to and get to experience the game how you want to. That's the main reason I do it. I get to build my guild and shape it with the culture I wish to have. But, there is one caveat. Time. The more time you spend doing administrative work, the less time you get to actually "play" the game, to join events with your friends and your members of the guild. Coming home after a long day at work, sometimes you'd rather just jump into some BGs with friends than have to spend an hour doing busy stuff. I get it. That is why I know that this "macro tool" here is more than just a "feature" of an addon. It is something that can help you leaders get back some of your time that gets lost into the black hole of administrative obligations forever. Burnout in leadership is a real thing. If there is just a small way I can help lower the burden of leadership, I am happy to be a part of it.*

**PROMOTIONS**

![Matching to Promotion Rules](https://i.imgur.com/PCUMGII.jpg)

![Unconfigured Promotion Settings](https://i.imgur.com/WhNgVwC.jpg)

**DEMOTIONS**

![Matching to Demotion Rules](https://i.imgur.com/QNSyRbK.jpg)

![Macro Button Improved Tooltip](https://i.imgur.com/zDg9lQB.jpg)

Bring up the Macro tool with any of the following SLASH commands.

```
/grm macro
/grm tool
/grm kick
/grm promote
/grm demote
```

**NOTABLE FEATURE ABSENT FROM MACRO TOOL**

* Rule sharing among officers. You cannot yet sync the rules to all the leadership in a guild. This is planned and coming very soon. I wanted to get this released first!

* I have plans to add an option to move all alts of a toon to the same rank of your choice and it will build a combo demotion/promotion macro if necessary

* Misc requests on filters... I am getting to them. Wanted to get out core tool ASAP for 9.0.2 update.

***NOTE*** - Please report to discord any errors you encounter, bugs, or recommendations for filters. There is a lot of overlap between the rules, but I did center the promotions to prioritize time at rank with demotions prioritizing inactivity, though you can customize your rules however you please.


***BUG FIXES***

* On exporting players, the column "headers" were not showing even if checked. This is now resolved.

* Issue with the verified promote date in some weird edge case getting set to nil after a sync, which then breaks future syncs. This shouldn't occur now.

* The new sync process, while much more efficient, can have a slightly longer behind the scenes "pre-check" of the data before identifying what needs to be sync'd. This time delay was not taken into consideration for so an error check was being triggered too soon, not to account for the change, causing sync to error in large guilds, whilst work perfectly fine in smaller. This should no longer happen.

* Fixed an issue if people had certain regex code in their player notes it now properly parses in consideration of the escape char so it doesn't fail in localizing log entries.

* Fixed a bit of a logic flow issue in the macro tool for kicking players if you were using the option under the rank selections to kick a player even if they were active, but still at a rank after X amount of time. It was overriding the main kick for inactivity and it doesn't seem to make sense to have both enabled, so now it is just one or the other. Furthermore, there was an issue where the actual epoch stamp was being set as the server time, not the actual date, so I fixed the logic issue, then in the "patches" the addon parses the entire databse and rebuilds the epoch stamp for all the rankHistory points by converting the string (text) timestamp to the actual epoch date in seconds. This may cause the patching process on updating the addon to the latest version to add a couple of seconds to the process.

* Fixed a bug that could occur where if you have global control set to NOT add the Join date to a player's note, but then you manually change the destination, like custom note instead of default officer... it was re-enabling it globally, but disabling locally. This is now resolved. It will only affect a small number of people as this was only first reporeted recently and it has been a long-existent bug,

* Fixed an issue where the rank being renamed was not reporting correctly. The addon will also detect the rank changes more easily, even if a rank was renamed that had no players in that rank. Before it was detecting a rank change if an existing player in that rank no longer had a matching rank name, yet the underlying rank index had not changed. Well, this could create some potential for oddities, like if a rank name was changed and no toons were currently members of that rank, GRM wouldn't notice. Another is that what if you changed the "new member" lowest rank name, then they joined the guild, well the addon didn't know how to handle that properly since the new member shows new current rank, but doesn't have a previous rank name to compare against. So, I rewrote the whole logic to be just a bit better and reliable in all instances of name change detection.

* The "Group Invite" button on the GRM mouseover window should now work with the new 9.0 API changes

* Fixed a bug with the macro tool setting the rules where you could uncheck all 3 of the radio buttons at the top for "all, alts only , mains only" - This should no longer be possible.

* Fixed a typo on the audit tab mouseover tooltip.

* Fixed an issue where if a player was holding on to a guild name with say an alt, so they could namechange a guild to it later, then they disbanded that guild then renamed their main guild with the name of that guild you just disbanded, then GRM was failing to detect the namechange as it was still finding the name in the database. GRM now properly compares against the guild GUID (the clubID) so this error should no longer occur.

**POST BETA BUG FIXES TO LIVE**

* Previous BETA update there was a fix needed to an old flaw that was found in how some epoch dates were stored in the rank history. This fixes that Beta bug for people who were using Macro Tool in beta. So, all the epoch stamps were reformatted and rebuilt to be sure they were all accurate using a Text string to integer epoch stamp formatter I wrote. However, if the string date was determined to be invalid I placed just an empty value there in the rank history as it was a sign of the old bug. Well, this is a problem for nested ranks in the array. If it was just the first rank ever, no biggie because it would just show the mouseover window for a player to set the promotion date, as if it was never set. However, if it was a later change, now I have an empty value which breaks some of the later logic. This update goes and recorrects this oversights and fixes those promotion date errors where you might see just an "!!" and nothing else there.

* Player Status should now properly show on the mouseover window. Anyone know how long this was not showing? I don't know when I broke this lol

* Fixed some behavior on the macro tool rules as it was not consistently disabling and enabling certain rule filter options when editing them.

* Fixed a BETA only bug where the timestamp formats were not showing correctly.

* Full "Kick Banned Players Still in Guild" is now fully working. If you a ban a player, or ban all of their alts, the main GRM window's BAN tab will show you all of the players who are banned but not yet removed from theh guild. In this case a button will appear giving you the option to kick all banned players. This will automatically bring up the macro tool and be ready to go.

![Easily mass kick banned players still in guild now](https://i.imgur.com/7HKwGjm.jpg)

* Fixed a bug where the "zone" and "time in zone" info was not disappearing underneath when editing or adding join/promo/birthdates. It would disappear and immediately reappear. It should now properly hide and reappear when completed.

* The text indicating how many times you need to press the macro key now reflects properly, including all the extra times as necessary if a player must be moved multiple ranks.

* Fixed a major issue with the macro demotions not working on merged realms. I have now gotten it to work on the merged realms, but there is a special condition that needs to be considered for guilds that have multiple players with the same name but from different realms in the same guild. Blizz does not handle this well so players will be informed on that rare edge case scenario that they will need to manually demote the players in the guild if they have the same name. Let's hope Blizz eventually revises this.

* Players should no longer be able to EDIT a macro tool rule if they don't have permissions set by guild leader to promote, demote, or kick

* Fixed an issue where if a player had a "verified" join or promotion date, if they left the guild and rejoined later, those old verified dates were not changed to their new ones. Even worse, if the new Rejoin date could not be verified it would keep the old verified date, so now the addon thinks a rejoin has verified info but they do not. The database has been cleaned up to people who have mismatching verified dates from their rank and join date histories. Be warned, you may end up with a few names that appear on your audit list again as not being complete, but this is just because it is wiping out incorrect data to begin with. This was actually a fairly significant bug. This same bug affected both promotion macro tool "time at rank" checking, and it also affected the advanced join date tool as being inaccurate for some players as it looked at the incorrect dates.

* Fixed a coloring issue of the system message in chat when a player goes offline. The parentheses was coloring the name of the player, if you were showing main and alt... looks clean now!

* Fixed a bug where the (Alt) and (main) tags on the mouseover window could overlap if you right-clicked someone on the alt list and set as main.

***QUALITY OF LIFE***

* No longer is just the "(Main)" title showing on players windows, but it now also shows the Alt title, though a slightly different chromatic shade.

* Huge cleanup of no longer used or duplicate strings from the language locale files. Special shoutout to @Mythos#7392 (Discord) for this huge cleanup (as well as some updated German translation work!)

* Macro tool - Cleaned up some of the rank selection, added some tooltips as well for the kick. Basically if the rank is equal to you or above you, it is now red indicated you cannot kick players from that rank, to prevent any confusion as to why they are not showing up in the list.

* Patch 8.3 introduced a bug that was causing disconnects of players, but not due to GRM, because of an error in coding on Blizz's end. However, the bug was very niche in who it targeted. It literally ONLY affected players in a guild who were officers with access to the new guild recruitment system. You see, it was firing a call to the server for information, and you were getting the event firing "CLUB_FINDER_RECRUITMENT_POST_RETURNED" - Well, if you kept the community frame window open the calls to the server snowballed to the point of sending hundreds and even thousands of calls a second, eventually causing the server to boot you offline. It was largely looked over because it only affected the unique situation of an officer who had his community window open to the guild page for 5-10+ minutes. So, as you can see, leadership in the guild could easily find themselves getting bumped, but it was a non-issue to most players. @Xulu on discord re-investigaed this bug to see if Blizz had resolved it in 9.0, which they have, so the temporary fix that I implemented to protect against these disconnects for GRM users is no longer necessary and it appears that Blizz has finally addressed the underlying code. That code is no longer necessary.

* The macro tool macros can now be spammed without risk of double spamming it. I added a protection against it by clearing the macro immediately after use so that you cannot spam click the macro again as you wait for it to be rebuilt. Current PCs it should rebuild the next macro within 0.025 seconds of clicking it, but there are people that like to mousehweel-hotkey their macros, like myself, and with the Logitech free-spinning stuff, I can punch out like 100 clicks a second, easily. So, now you have protections in place against it. This was probably a non-issue for most people.

* Removed some of the logic I added to the days/months selection in the macro tool. I realized how much I hated it auto-changing the date to a bigger number if I swapped back and forth on month and day. It was supposed to help be more convenient, but my guess is I coded it in a half stuper of sleep originally and my brain thought at the time, probably 2 or 3am, that it was a good idea. Ya... it wasn't. I purged all that logic now.

* The "safe list" you could put players on to ignore kick macro rules hav now been expanded to support promotion and demotions as well. Furthermore, you can also create a custom "extension" period of time where they will be removed from this list after X days expire.

* Github Readme has been updated to reflect addon features as well.


![Safe List Configuration](https://i.imgur.com/LsALIVk.jpg)


**VERSION R1.913 RELEASE - October 18th, 2020**

***BUG FIXES***

* Exporting only the alts should now work. Before it would always just show the mains even if you selected it to filter to only the alts.

* Fixed a bug where scanning for changes was causing a lua error when detecting level changes within a certain range (new bug from last update, minor oversight)

* Fixed an issue where if you were trying to export your guild roster it would error due to a 1 index overflow error of the array. I had modified the array to be more efficient for sync purposes, but forgot I used the same system on the export data and I had eliminated an index of the array that was not necessary, but now it causes the data to shift by 1. This shouldn't happen anymore.

***MISC***

* Building some custom function wrappers for Blizzard API to make a single codebase easier to deal with in the future since it doesn't seem Blizz is bringing the underlying 9.0 API to Classic anytime soon. The Naxx Classic PTR build does not have any of the 9.0 changes so just prepping adaptation.


**VERSION R1.912 RELEASE - October 18th, 2020**

***BUG FIXES***

- Fixed an issue where in some cases where if someone syncs data to a player through custom Note, it would update it, even if their rank was too low. This shouldn't happen anymore. Also noticed in some cases the cusotm notes were only going one direction. If the person initiating the sync had them, then the other could get them, but if they didn't they weren't getting them unless the other person initiated sync. Oops! Now it will properly work both sides.

* Minor oversight on the level squish. The log will no longer report that people leveled to a negative number...

* I noticed that in retail the /grm scan was taking a while to complete as it was not querying the Guild Event Log to process, it was doing the "classic" method, so there is now a condition for the build version and a manual /scan should now only take a few seconds to complete.

* The full proper sync file is attached now - uploaded an incomplete build one last time as I hadn't pushed changes to my "release" folder yet. Oops!


**VERSION R1.91 - october 13th 2020

***MASSIVE UPDATE FOR 9.0 Shadowlands launch!***

*The addon is now fully compatible with the new expansion and all of the underlying code and UI changes that came with it. You will find MANY of your old addons that have long worked for many years, even though they have not been updated, stop working this expansion. GRM should be working day 1. Hurray!*


***QUALITY OF LIFE***


* The Options for level filtering has been updated to match the new expansion in the GRM > Options > Scan tab

* If you choose 24hr or 12hr timing, the log will now reprocess the strings and update the timestamps to reflect the new formatting. This also applies if you change the timestamp format to a different one.

* Birthdays being included in the audit will be turned off by default now since most don't use the feature. This only applies to NEW GRM users, so veteran GRM users I have not undone any of your settings already in place.

* SYNC changes:

* * Data on the back end is now significantly more efficient and breaks down the entire database in a pre-sync comparison check on every piece of the data. Before, I broke it into blocks of 40 chunks of data for comparison, and if any pieces of info in that 40 was not the same it would compare all 40 between the 2 players just to find the 1 change. The concept finally has been expanded and now I do an exact 1:1 data point comparison pre-check between players before initiating a sync which ultimately makes it significantly more efficient, though it might add 2 to 4 seconds in pre-check sync time in very large guilds. The overall efficiency should cancel that out, however.

* * New option to delay when sync occurs after logging or, or to deactivate the auto-trigger altogether. You can now set the sync to trigger any period time after logging in from 10 seconds after and onward. For people that may have lots and lots of addons, or possibly are playing on older hardware, or maybe a netbook or something that might take longer, they can adjust it so the addon will restric any sync attempts until after the input number of seconds. The default will be 60 seconds after logging in, but some may wish to push earlier and some may want later. I personally set it to 15 seconds. I know one person would prefer it only loaded after 2 minutes. The choice is all yours now.

* * GRM will now go out of its way to prioritize other addons' data use on the comm channels. GRM data is not really that necessary to be needed instantly at all times, unlike many other addons, like say, DBM. So, with the server throttle limit, the last thing I want is GRM to clog up the channels, especially in a super large guild, and force them to the back of the que. As such, the sync algorithm has been updated that if any other data from other addons gets qued up GRM will delay its own sync data, allowing the others to pass through, then continue back on. This should eliminate any delays with other addons and hopefully eliminate any issues that might occur with addons clogging up the channels together and thus causing the throttle cap to be broken and in some cases, disconnects to occur. While I have not heard of any reports of disconnects in retail, there does seem to be some conflict with a couple of CLASSIC addons as to make this a possibility.

* Russian Language is now fully translated with the exception of just a couple of brand new lines I snuck in at the last minute. I also spent significant effort to ensure universally compatible UI formatting so no text was overlapping off frames and fit in buttons and so on. TY @Максим on Discord for the translation work

* Global controls were previously restricted that once set, only the guild leader could edit them, unless an officer manually removed the global control settings tring in the Guild Info. This restriction has been loosened so that any officer in a guild that has access to edit the guild info can now change the GRM settings that are "Global Controls." If the string of control tags is already exported to the Guild Info then they will automatically be updated as you make changes to your global settings. Be aware that it can take up to 60 seconds for the guild Info to refresh for other players in Classic, if they are not directly looking at the screen, so other players may not immediately receive the global control changes, but they will shortly. Retail it can update within 10 seconds or less and GRM sends out a call to other players informing them that a change has been made and to re-check the global control string for quicker updating.

* I noticed that on the public/officer note Blizz has some algorithm that actually changes note fonts on the fly. It detects if you are using cyrillic characters, Asian, or a combination, and then it sets the note font to an appropriate compatible one. It ONLY uses the horrible looking unversally compatible font if you give it a mess of various characters to screw with it, otherwise it sticks to the FrizQT fonts and the Cyrillic compatible one and so on. GRM's custom, officer, public note fonts will now mirror whatever font Blizz is using in that moment for compatibility. In the future I will likely give you the option to ignore this and just use the custom font, but for now I've been getting too many people who have mentioned some guildies with "???" in their notes, indicating incompatible font.

* Players now have the ability to disable the message "PLAYERNAME tried to sync with you but their addon is outdated. Remind them to update!" -- While useful, there are some cases where a player just doesn't upgrade and rather than spamming you once per session day after day, you can disable the notification to chat.



***BUG FIXES***

* Fixed a weird edge case where if you invited a new alt to a guild and immediately promoted to guild master, it could cause your next session not to load properly.

* Reprocessing the log when changing languages was causing an error due to processing the new log rules message in a new way - this has been fixed

* Fixed a Lua error that could occur if player performed a hardreset to do the on logoff handler.

* Fixed an issue with the Advanced Join Date tool where if you had a format where the month > 12 it would error out on parsing as it was not doing a proper boolean check that the month integer was valid and between 1-12 when passing through the enum.

* Fixed an issue where if you create a new toon, and before joining a guild, you logoff, then when you log back on and join a guild, it now overwrites your settings on all alts for that guild. This should no longer occur.

* "Add Join Date to:" should now properly translate in the Officer Options tab if you use a language other than English (and the accompanying translation has been made

* Added several missing localizations to the localization files - they were all just in the raw English and not being wrapped by my localization function.

* When swapping between languages I noticed some of the options dropdown menus were not updating to new language properly. They now should properly localize with the rest.

* (CLASSIC ONLY) - The roster class coloring was not working when you changed it to player status. It now works on both roster view options! Oops!


**VERSION R1.892: Sep 8th, 2020**

***BUG FIXES***

* Fixed a bug that cuased the patches to fail if you haven't loaded GRM in a very long time due to just a simple variable typo

* Setting a new ban would cause an error on other's GRM versions in the guild as it had a parsing error on the comm message. Normal sync would work. This would only affect live changes.



**VERSION R189 DATE: Sep 5th, 2020**


***QUALITY OF LIFE***

* EXPORT UPDATES:

![Export Tool Improvements](https://i.imgur.com/J3RS4v0.jpg)

* The Export window has been rebuilt. I realized it doesn't make a whole lot of sense to go from right to left. Why is the export copy window on the left anyway? lol - So, I rearranged it a bit and slightly expanded the height to make room for possible future export options.

* - Comma added as a delimiter in the EXPORT of data. Note, if comma is selected, since the alts are included as a comma separated list in the same column, the alts will be separated by semicolons, but only when comma delimiter is selected. Also, log entries the colon will be replaced with semicolon on all of them, so as to not mess up the columns.

* - "::" , "|" , "\t" all added as exort delimiters. The "\t" is representation of a "Tab" - if there are any formats you would still like included, please let me know. TY!

* Added the option in the Member/Former member export to only export players that are listed as a "main" in the guild, or the opposite, an alt.

* Added an additional option to mass check all or uncheck the member export filters. There's 17 buttons so it is a bit tedious to go through all of them

* Added the ability to export the "Rank History" of the player to the export info as well. This sort of messes up your old columns a bit as it didn't make sense adding this to the end, just be aware this inserts a column. Also of note, this only includes the most recent 10 rank changes. If someone has like a 50 rank change history, it is just too much text spam for export and will not be included. This shouldn't be an issue for 99.99% of the community.

* When exporting the member details or the former member details, the delimiter is no longer included at the end, as it is unnecessary and ultimately creates a new empty column.

**-----------**

* MACRO TOOL RULE UPDATES:

![Macro Tool Improvements](https://i.imgur.com/PdlJqo0.jpg)

* The Macro tool has essentially been reorganized from Left to Right, instead of the backwards order it was in previously. Great idea @Vishal. Oh and, the text explanation has been updated a bit with the macro being built, to make hotkey use more obvious.

![New filter rules can be added](https://i.imgur.com/S8sMUTY.jpg)

* - Apply specific rule to All, mains only, or alts only.

* - Now you can match notes that are just empty - Thank you to @ManuelSifredi on Github for the idea and the contributing to its implementation into GRM.

* - Activity filter at speicif rank(s) regardless of activity level. In other words, "If player has been at Initiate for x days/months" - it will recommend to kick. Easy way to keep track of purging players who never meet standards for promotion after X amount of time, even though they log on regularly and are not actually "inactive"

* - Added Guild reputation filter - Set the filter to players less than, equal to, or greater than a specific rank (Disabled in Classic)

* - Added a new custom message on the kick rule filters - Want a custom message to also appear in your log when this rule is flagged? Now you can set one, up to 80 characters in length.

* Recommend to kick log entries will now have the names properly colored to match their class.

* Cleaned up some text reporting in the Macro tool tooltip for plural and singular cases

* To remove confusion, if the player does not currently have the ability to remove people from the guild, they will no longer receiver the default kick recommendation notices, and they will also not be able to waste time trying to build rules in the macro tool until their rank permissions are expanded. Not that they could even use the macros before, as it would just fail and say unable to remove a player at their rank, but not it just informs them the feature is disabled and restricts the ability to build the macros.

**-----------**

* Since the occasional accidental click of the "Show Mouseover" button can occur, given its position at the top of the roster window, and in proxiity of the log and macro tool buttons, if unchecked the text will now display as red and make it more obvious to see.

* Updated some missing frames to skin for AddOnSkins ElvUI as well as added compatibility to the Group Info GRM Module. Fixed an issue with ElvUI AddOnSkins where the Log Extra options/configuration was getting pinned back in original location. Also updated some missing reskins, and the new ones. TUKUI also has accepted the latest updates.

* Update the font of the Public, officer, and Custom notes to match the built-in font used by Blizzard "ARIALN.TTF" that is essentially a universal UTF8 font compatible with all possible characters. It's not as pretty looking, but it basically eliminates the possibility of people adding characters to their notes tht end of showing ????? in stead. Of note, this won't change the reporting to the log, so you still need a compatible font in your log on note changing. This also applies to the export window so it reveals all text appropriately.

* The "Custom Notes:" on the mouseover window now says "Custom Public Notes:" so as to eliminate some confusion about this note as being public vs officer use only.

* When a player rejoins the guild the "Date Originally Joined" entry would include the hour of day as well, which is generally unnecessary. This is now removed. If you wish to reprocess all your old log entries, just change the language to another in the settings, then re-change back. Otherwise, it will only be updated on New entries.

* The text should no longer overlap the checkbox to ban the player when you are removing a player from the guild manually. This seemed to not be an issue for most people.

* Updated some German translation work. TY @Mythos for that commit. Also to @zeatt for the line improvement suggestion as well.

* The tooltip over the Sync option about sending outgoing data to all, but restricting incoming data, has been expanded to clarify chance of misunderstanding, as well as updated the tooltip as the Custom Note part was outdated.

![Default Tab Opening Selection](https://i.imgur.com/XuwpNij.jpg)

* Added a new option. You can now select a "default tab" to auto open everytime the core GRM window is open. No matter what you close it on, the next time you reopen it will auto reopen to your default selection. The dropdown choice will allow you to choose any tab as your default and the option can be found on the bottome left of the main "Options > General" tab.

![Audit Tab Incomplete Counter](https://i.imgur.com/hjAVkiG.jpg)

* Audit Tab now has an number indicator revealing how many are "incomplete" without needing to actually click on the audit window to see. The tooltip was also updated to assist here.

![Keep track of your progress easier!](https://i.imgur.com/Hs05WRU.jpg)

* After the first sync there is now an "Audit Report" on the % complete in the guild, and how many members are incomplete.

* Added Compatibility to the "LOIHCal" Addon - On the calendar, the side LOIH window would overlap the GRM alt details window, so if you have this addon installed that issue is now resolved and takes into consideration whether you have LOIH set as an overlay on default position, or beside the original window.

* Some decent code cleanuup which was a decent amount of time but overall lowers fingerprint of addon. You may not notice honestly lol.

* Normalized the interact distance of all "Check Buttons" in all GRM settings and frames to have their "hit rect" interact range be the exact same distance of the width of the string. It scales dynamically as needed, matches the font size, and I wrote a script so it scales it accordingly for perfect matching regardless of the language selected. This is a fairly decent quality of life improvement that took a little time, and maybe people won't notice, but it is significant enough to merit the time for it!

* Before, if you mass shifted a rank, the addon would mass spam you of it, even if the ranks were the same name, just indicating a slight difference in guild rank "integer index" - I've added some logic so that it will ONLY report when players do actually change ranks, even if you mass delete or add ranks and they shift up and down. The reason this seems simple on the surface but under the hood is a little more complicated is because Blizzard allows guilds to name ranks the very same name, so there have been several people in guilds I have encountered that want to know when people change rank, as they name all ranks the very same name (I know lol). So, I basically just added the hidden integer of the rank to tag them, but if there IS not muultiple ranks of the same name, it can be safely assumed the entire rank merely shifted and the spam can be silenced from reporting to the log.

![Shift ranks up and down easily](https://i.imgur.com/Dyp0uxo.jpg)

* (CLASSIC ONLY) - The Guild Control Rank permissions window, the guild leader now has the ability to mass shift ranks up and down with the click of a button, rather than needing to rename and then mass promote/demote.

* (CLASSIC ONLY) - The roster class coloring (which can be enabled and disabled in the GRM UI Options), has been expanded to include class coloring of the names in chat as well.


***BUG FIXES***

*NOTE: I am only mentioning the more notable bugs. There was a LOT of little things cleaned up and found not reported on here.*

* Fixed a MAJOR issue where names can become disassociated from an alt grouping during a sync. This can also affect mains being removed. This only occurred during a sync and should no longer be an issue. This was a very weird and latent issue that had been slipping by for months so it is good to finally be rid of it. Took a bit to track down. Thank you for the many reports that finally helped me trace the origin of it!

* Fixed an issue whre the "Active" and "Offline" status could pop up erroneously on players that were not actually currently online. It would happen if you had the calendar window open

* Issue that could arise in compatibility with some addons on adding the main tag to the chat should now be resolved, though I haven't tested this well. This should eliminate possible frustrations any addon devs might have wtih compatibility issue. I should note, that there are some major addons out there that are far more popular than GRM that do not even bother and just rely on their status as being so dominant. This is not well tested but I'd be curious to hear of any reports if the solution was not sufficient in some cases, though in theory, it *should* be!

* Fixed a bug that could occur when setting the global controls to the guild info that would say the string was too long, even though you had room. This is because it was rebuilding it wrong and appending an extre "grm^" at the front. In other words, you might end up with *grmgrmgrmgrmgrm^* before the other global control tags. I'd double check them to see if this has happened to you. In most cases it will not be an issue, but you may want to cleanup if wasting characters.

* Fixed a bug where resetting to default the "Only show on log changes" on the General options was only resetting using the scan reset default tab button.

* If a player had ElvUI installed there was some error that was occurring when logging off or reloading. It will now no longer happen. It was just triggering an unnecessary call to set a keybind on logoff while the. I never noticed since it was getting dumped into the previous session log of errors. This will no longer happen.

* GRM was overriding some tooltip scaling, but only if the tooltip size had been altered by an alternative addon, like Tiny Tooltips, and it would only happen only on the first time you loaded the GRM options. This must've existed > 1 year and only 1 reported this lol. It is now resolved as it only was noticeable in some cases anyway!

* Fixed an issue where the UI Scaling buttons in the GRM Options could overlap at the bottom if your were using certain game resoletions.

* Fixed an issue where an update is required, but a player has logged onto a newly created toon who has never logged on to GRM before, thus it encounters the update and has no profile to build off of and thus fails on a settings check and thus appear to reset all settings again, but if you successfully complete that session without realizing it it would then write over your old settings due to the Lua error, assuming the current settings were what you wanted. Oops!

* If swapping languages or date formats, the addon would reprocess the entire log to new format, or translation, but in some old old ban formats it was failing as it was set to the wrong index identifier as an unban. This will now auto-fix and resolve.

* Fixed a bug where sync could fail on some occasions when syncing the "main" info as there was an incorrect insert into a table, instead of setting a value as an integer, causing arithmetic lua error.

* Fixed an issue with major updates of people who have significantly large databases never getting through the update.

* Fixed a critical issue that would allow people with a certain bug from a long time ago, or far earlier version, to not be able to update the DB and thus GRM would be unfunctional without a full reset wipe of their data. This resolves this. Of note, this affected a very small number of people, but even 1 person is enough to need to resolve it.

* Danish/Dutch translations were missing a whole giant block of text strings so you would get spammed with errors. The translations are not really complete so not sure if anyone even noticed lol

* Found a bit of an edge case that could affect both retail and classic, but in some circumstances, after opening the calendar (in retail), the scanning would break it's loop and never actually scan for guild changes in the background within constraints of the time delay between checks. This could happen as well in Classic but is triggered in another way. Weird never to notice til now but it happened to me which caused me to track it down. This was actually a bit of a hunt and a lot of work for something that might seem so simple.

* Fixed a bug where it was refreshing and reprocessing the macro tool "rules" before confirming save of the macro filter rule. It was redundant as no changes had been saved, but wasted resources.

* Fixed an issue where sync could fail and get a lua error.

* Fixed an issue where it was not reporting the proper "time passed" since they had been in the guild when they were removed in some places instances of log reporting.

* Fixed an issue where you could not "reset defaults" on the Macro tool if you had removed all the rules. It would technically add it, but you would have to refresh the window manually before it updated and it would Lua error every time. No longer!

* (RETAIL ONLY) - Events added to the calendar already should now properly be auto-removed from the list of events to add for players who did not do them. It scans the calendar and verifies if the events has been already added and removes it from the queue if so.

* (CLASSIC ONLY) - On the GRM mouseover window you could click to edit the public note, and it would let you type it in, but if you didn't have permissions it would just not do anything. Now you cannot click the note to edit if you don't have a permission.

* (CLASSIC ONLY) - Roster coloring was sort of flickering a bit and when you clicked down it could reset and only rebuild after releasing mouse. It now hooks into the build function of the frame and essentially inserts itself to override the Blizz coloring completely now rather than updating after the fact. I can't believe how often Blizz fires that functin though... it is very spammy on the back end lol.

* (CLASSIC ONLY) - ColorPicker should now be properly draggable in Classic. It was erroring out due to a frame name difference. Small oversight with Classic compatibility.


**VERSION R1.881 DATE: April 30th 2020**

***NEW FEATURES***

**PLUGIN FRAMEWORK**

As time has passed, GRM has really grown to be a fairly large addon, ever growing with more and more features. While I attempt to focus on features that are within the **scope** of guild management, I find that there is room for a little bit of grey area feature support. Furthermore, I find that in many ways the overall addon can be useful for all players, but there are just some features that are completely unnecessary unless you are an officer. So, in an attempt to keep GRM's core from growing *too* bloated, I built an underlying framework to support my own "modules" - plugins, so to speak. Some things are just going to be far too niche for many guild members that there is just no reason to bloat the core addon with those features. I will use them, many leaders will use them, but maybe they will be better suited for a smaller module addon to the GRM core. An example of this is my future plans for the new retail "Recruitment" system. Clearly this only has to do with officers, so in the future I have it planned as another module rather than a core addon feature.

*Of note, if it still falls explicitly within the scope of the original core addon goal, that will not be compartmentalized off, but kept within the core of the addon. So, today I introduce the **first** GRM module!!!*

* New Options tab called "Modules" - and it will populate dynamically depending on if you have the module installed or not.


**GROUP INFO MODULE**

*If you are in a party or a raid group, you are now given a special GRM "Group Info" button you can mouseover - this will reveal various things about your raid group.*

* It will tell you the names of all the people currently in your group who are guildies.

* It will inform you if you are grouped with any *former* guildies. This particularly feature goes very deep in that it will inform you the date they left. It will let you know if they were previously banned from the guild. It will let you know if they have name-changed since leaving the guild. It will inform you of their known alts and if any of them are still currently in your guild.

* It will inform you of all the people you are grouped with that are on the same server, or a connected realm member

* Colored indicators will appear next to raid/party member names if you are within trade distance of the player. They will update on the fly. Yes, it can be disabled.

![Mouseover Information](https://i.imgur.com/MKwNQQv.jpg)

![Lock window, then mouseover each name for more details](https://i.imgur.com/Y6ySSca.jpg)

![Don't forget to check out the new Modules Options](https://i.imgur.com/M7ya4B3.jpg)


***QUALITY OF LIFE***

**BOTH**

* Re-translate the log on the fly now just by swapping languages. On occasion we have wonderful volunteers that submit translation work to *localize* the addon to your country. Well, the neat thing now is you can retroactively re-translate your log entries to the updates. Or, you can swap to new languages. Maybe you are tired of using English, which may not be your first language. Just swap to your native language and see the log auto-translated for you, if there are sufficient localization work done at least (any help here always appreciated). Of note, there are limitations here. If you have been using GRM for a long time, older log entries will not be re-translated as they are stored in just static strings as I was not yet storing any of the metadata to rebuild the log entries. Otherwise, the data to rebuild the strings has been stored for, if I remember, maybe the last 6 months or so. It is hard to express how much underlying work needed to happen to make this possible. I doubt many will use it as well lol.

* On the log entries where a player left the guild or was removed, it will now state if they were themselves the "main" that left. Previously it only stated if their main was still in the guild, thus identifying an alt as leaving. It is now more obvious if a "main" has left.

* Customization of the Log message coloring! That's right! You can now select and save your own coloring for the logs... particularly that pesky eyesore that is the "Recommendations" coloring! You can always reset to default. To get the color selection options to appear, just click the "Open Log Tools" button.

![New Color Customization for the log!](https://i.imgur.com/MaIpzjE.jpg)


* I removed the "NG" tag on system message names when people login or out - and I changed it to "Friend" as it just makes more sense. "Non-Guildie" I was needing to explain. I was originally just trying to keep the tag very small, but since it really only affects those limited system messages then "Friend" seems an appropriate tag

* The "Log Tools" button is now in a more obvious place. Many people seemed to not know there were additional controls for managing the core GRM log for your guild as the button was semi-obscure - it is now in an obvious place.

* The Ban list now has the ability to mass kick players who are on the ban list, yet are still in the guild. Just click the button (which will only appear as an option if you have players banned that are still currently in the guild), and it will open the Macro Tool with the names all populated in and ready to go.

![New Banning kick button](https://i.imgur.com/7o57y9d.jpg)

* MULTI-CHANNEL support for GRM reporting! The Custom Channel in the GRM > Options > General Tab you can now have multiple channels supported by separating with commas.

![Multi-Channel support](https://i.imgur.com/XKAjOye.jpg)

* The counter for the Macro Tool button above the roster, which states how many are ready to be kicked before you ever open the tool, will now properly update after a sync and if you remove or add any alts, as that can adjust how the rule applies to some. It typically only refreshes every 60 seconds, if visible, but now it is forced to update immediately on any of these actions so there is no confusion.

* Purged all unused and deprecated strings from the localization files now due to some modifications

***BUG FIXES***

**BOTH**

* Longstanding bug where alt groups had been getting disassociated on sync - this is due to a flaw in how the DB got updated for some people and I won't get into the specifics, but I had tried to bandaid it and it just was getting to the point of too many reports so I've basically had to take a bazooka to the problem to isolate and fix it. Unfortunately this has the side-effect of disassociating the alt groupings of any affected groups. The reason this had to be done is let's say in your group 2 different groupings of alts were affected and becoming associated/disassociated over and over. Well, the addon has know way to correctly identify which of those groupings was the accurate one. It can at least identify the inconsistencies, and the flaw, but not the fix, so it just purges all associations, and then the player will need to rebuild them. This should hopefully make that issue go away, yay!

* Export should now properly not include the birthdays if it is unchecked.

* Fixed an issue where the kickRules were not configuring properly

* Fixed an issue where if a player guild Name Changed it would cause the addon to not longer load properly.

* Fixed a bug where on some toons the game would crash out on early configuration of the addon. This is now fixed.

* Fixed a potential load bug for a player who possibly crashed in the middle of a large update previously. I ran a stress test on doing a massive overhaul where you install the first version of the addon, then the latest, and seeing how it processes all updates from the beginning of time. On one of my builds it crashed. It *might* just be some edge case as I couldn't recreate it on my 2 other accounts, oddly enough. But, it is accounted for and fixed even though I doubt anyone will encounter it lol.

* Fixed a bug where if you log on to a new toon for the first time using GRM it attempts to sync addon settings even though you have not even build the guild DB yet. It is a one-time only error and next session would go away, so that is my guess why I haven't seen it reported yet as it literally only affected first session of a first time GRM user, but this now should no longer occur at all!

* Fixed an issue where the Auto-Complete list of names when clicking it for selection to add to the Ban List (includes current and former members in the list), if you click it it was not properly populating the editBox for name selection. This is now resolved.

* Fixed a minor UI bug where if you were changing the font size the note, officer note, and custom Note would not update their font size until your next session or on reload. This now should happen immediately. I oddly had it wrapped in a protective function to prevent them from being resized and I have no reason why I did that however long ago lol.

* Fixed a minor bug in relation to the MainTag color select box not functioning properly in the General GRM Options

* The message when you tried to sync while grouped was erroneously stating you didn't have access to guild chat when it should just be stating sync was restricted while in group. This has caused some confusion and should now properly report why sync is not triggering while in group.

* Fixed an issue when the ban list syncs it wasn't storing the original player join date properly and not syncing some data as a result in some few cases.

* Fixed an issue where the Guild Info tag was not being checked as often as it should be for updates.

* Finally found the origin of that stupid bug that messed up some groupings of alts and it had to do with some stupid database diving that occured pre-DB overhaul as a prep for the DB overhaul, but deep and nesteed in the code I had a variable pointing to an int counter "r" when it should have been pointing to "s" and subsequent downstream mess occurred. Wow, funny how something so imple can cause so much hassle.

**VERSION R1.871 DATE: March 16th, 2020**

**Minor Bug Fixes**

* On importing the kick rules to new system, if you had it disabled, it is re-enabling it, except with inactivity filters disabled, which is bad because now it has created a rule which has all of your guild members selected as the only remaining rules enabled are "All Levels" and "All Ranks" - so you will get some spam lol. For new downloads this resolves that.

* Fixed a significant issue involving not being able to update the addon properly if you haven't updated from an older version pre-DB overhaul (so basically anything pre-January).

* Fixed an issue in retail wow when Ctrl-Clicking Audit and opening the old roster window it would force the window to the right and it never properly configured and reset the position. This will no longer happen.

**VERSION R1.87 DATE: March 12th, 2020**

***FEATURE RELEASE***

**Phase II Macro Tool Release - Custom Rules**

*My lenghty and probably unnecessary exposition that prefaces large releases*

Phase II has been a long time coming. As I began building the custom rules, the ideas began to expand. Initially I had sketched out some plans on where I wanted to go with the design, laid some groundwork, had some ambitions, and when I started building it my thoughts evolved and ultimately went a different direction altogether. Utility, user experience, and ease is generally what I find the most important and what I wanted this to be. This also took me a while, aside from the many real-life distractions and priorities I have had over this the last month, because I felt this feature was so important that I wanted to make sure I got it right. It's a lot of work and there is nothing more soul killing in design when you dump so much time into something, realize you hated it, and decide to start over from the ground up. I have been there.

You see, just for a little insight into my personal behavior and thought process, when I am building something for GRM, even though I can be presented with logical arguments from others and rationalize to myself as to why some ideas are good, I have no joy in building them if they don't "click" for me. I want to feel them, to be excited to put it together. As this remains a hobby project for me, I have to get enjoyment out of it, and I really do. So, for a while I would start development again, start adding UI frames and I just felt no energy in doing so, no excitement, no deep feeling that what I was building was "right" for the job. The underlying code was simple and had already been built, but then came designing and integrating it in meaningful ways. There was no passion inside for it. I was not having fun doing it because I didn't have a clear picture of what I wanted. So, after chipping away at it, going back to the drawing board on some design issues, pruning out some unnecessary filters that made no sense (like I built a filter for race/class which didn't make sense to just say, kick all gnomes from your guild). I can now say I am happy with the final design (and happy for continued suggestions on further improvements). While it is my personal preference in design, I hope that it is an overall improvement for people that use the GRM Macro Tool as well.

*Phase III plans, with promotion/demotions are going to be that much easier because much of the underlying infrastructure for it has now been built and I feel like I can see light at the end of the tunnel as I think about finalizing the that project now that Phase II is out of the way.*

*/end exposition*

**PHASE II FEATURES**

![Phase II Release](https://i.imgur.com/PlSSQav.jpg)

* Ability to add as many custom rules as you want. Want to build a rule for each rank, for level ranges and so on? Not a problem. In fact, if you ever build a rule where this is overlap, the tooltip when mousing over a player in the list will show you which rules apply to that player.

* Ability to Enable/Disable specific rules on the fly. No need to delete them, just temporarily disable.

* Additional Rule Filters: Specific ranks you want the rule to apply, level ranges, and even if you want to add people to the list that have a certain text match in any of their public,officer, or custom notes.

* The rules are so customizable that you could theoretically disable all the rules and just have it apply to a specific rank, so all the people that are then recommended to be kicked would just be a certain rank. Have fun with it!

* Ability to name each rule whatever you want.


***QUALITY OF LIFE***

**FIX TO RETAIL DISCONNECT BUG THAT BLIZZ HAS NOT YET ADDRESSED (that will affect any officer even if all addons disabled)**

Retail 8.3 Disconnect bug has been temporarily fixed until Blizzard can get their act together and resolve it. I love Blizzard, and I love Warcraft, but having this disconnect bug go unaddressed by Blizzard for months post 8.3 release is just unacceptable. So, I have decided to build my own fix to address it. Note, this disconnect bug **ONLY** affects officers because it is directly related to having access to the new guild recruitment system. If you have the Retail Guild Community window open and you are on the chat tab that has your guild chat scrollable history, the game gets stuck in a loop querying the server over and over and over again about the recruitment info, to the point it snowballs into hundreds and even thousands of calls a second. Eventually it just overloads and the server boots you. You can see the exact spam yourself. Just type `/etrace` - open your guild window, be on the chat tab, and look for this event being mass spammed: "CLUB_FINDER_RECRUITMENT_POST_RETURNED."

The fix is all done behind the scenes and automatically, but it is merely a stop-gap to address the issue until Blizz fixes it on their end of the code with an update. Having dissected their own code on the community frame, this is *NOT* a difficult fix and this is why I find it particularly frustrating that they have not even taken the short amount of time to address this, as a single developer on Blizz's team could probably properly fix it before lunch time the day they investigate it.

**BOTH**

* To get around the restrictions on addons promoting/demoting - with a little inspiration from the "Guild Search" addon and @gankenz on discord I was able to finagle a semi-solution that is very limited. Ctrl-Clicking a player's name in the audit, or any other GRM tool will now fully bring up the player member details window that has the promote/demote - Of note, due to the lock down and limitations of the community frame, I can only get this working using the Classic roster. So, in retail, you will notice now that Ctrl-clicking the names will now only bring up the Classic roster (/groster or Ctrl-J to bring it up).

* AddOnSkins profile has been updated - scrollbars now working properly. Some unskinned frames have now been skinned. New Macro Tool Custom Rules is updated as well.

* Mousewheel now properly works for scrolliing up and down when hovered over the scrollbar sliders, not just the windows themselves.

* Audit window will now properly refresh on the fly when using the macro tool, if the audit window is open and visible.

**CLASSIC**

* Names in the roster are now properly class colorized, even if you swap the status windows. Also, the side details popout window the name is now colorized. You can disable this class coloring in the GRM > Options > UI tab if you really wish to have a more authentic Classic experience. I'd imagine something as useful and unintrusive as this most will not have as much of an issue with.


***BUG FIXES***

**BOTH**

* Addon was erroring and failing to report players rejoining the guild. It now should properly.

* Every major bug reported on discord has been resolved.

* Resolved a bug that could happen shortly after login when interacting with other GRM users to inform the player on *who* currently is online with GRM installed.

* Fixed an issue where if editing the custom note you hit confirm with no changes it now properly resets and hides the confirm/cancel button.

* !note rule restrictions should properly work again if you disable the feature.

* Players that share the same name as their guild should now properly be added to the guild - It was looking at the guild names if already added to the guild on accident rather than guild members, so mostly unnoticed bug unless you

* Fixed an issue in reporting rank changes if you deleted a bunch of ranks and people shifted up or down.

* Fixed an issue where if you went from not allowing people of any GRM version to sync with you to instead restricting it to only the current version as you, it now properly wipes names already approved for sync. Before it would continue to allow outdated versions to sync if you enabled this and would only reset on a reload or relog.

* CustomNote sync seemed to only be working one direction, depending on who was the behind-the-scenes sync leader. It now is going both directions and should properly update the custom note.

* Custom note was not clearing the note properly - the new update should now fix that, and on your next sync, should properly collect the changes of any custom Notes that have been removed.

* Promotion dates in some cases were not getting set when a player joined the guildm even if they were verified joins.

* Audit list should now properly show player data as "incomplete" if it is Unverified ("!!")

* Fixed an issue where the Ban list would not load properly if you had a combination of players banned both outside the guild and some still in the guild.

* Also found an issue with the ban list where it would, in some cases, be missing 1 name from the ban list.

* Fixed an issue with the Advanced Join Date tool where it was using unverified dates to compare to the note rather than the verified.

* Creating a new toon, the addon settings were not being properly sync'd when the newly created toon received an invite to the guild. It should now properly absorb existing settings if you have it set to sync settings among all your alts.

* Minor bug that could cause a Lua error when trying to populate the tooltip on the Addon Users tab

* Fixed an issue where on mass kicking a player with the tool it would sometimes report them rejoining and then being promoted.

* fixed an issue whre you can get occasionally double recording of when you kick a player from the guild.

* Fixed a lua error that could occur on the "Macro Tool" button if opening community frame within seconds of logging in.

* Fixed an issue where if you use the macro tool, if the actual built-in /macro window was open, it would close it, then the ESC key would no longer work to bring up game menu. This is no longer a problem and the ESC key should work just normal again.


**RETAIL**

* Fixed an issue where it would error out the localization of the Death Knight class name when adding a custom ban on a player no longer in the guild that happens to be a Death Knight Class.

* Fixed another issue where it would fail to set the GUID properly on adding a ban on a player that was never a member of the guild or you don't have any metadata record of the player, so when it builds it it was setting to the GUID info incorrectly thus it would erroneously say on the ban list that the "player is no longer on the server." This is now resolved!

* Right click should work again on the roster when setting main

* Found an issue where you could theoretically encounter 2 join dates and the 2 one is set at an earlier date. How it works is if a player joins the guild they auto join at the lowest rank. The addon will record that rank. However, if let's say someone joins the guild while you are offline AND they get promoted, before you ever record them, the addon will take note that they joined the guild AND they were promoted. Here is the scenario. Let's say the day that they joined the guild was > 100 events ago, thus the date is unverified. If that is the case the addon puts a placeholder unverified date in the history tree as the date you logged in. But, then the addon detects they are no longer the same rank so they got a promotion, and now addon checks and guess what, their promotion <= 100 events that occurred, so now it can accurately report the date. You end up getting the first promotion/join date as an unverified date the day you logged in, but now the 2nd promotion received is given an accurate date X time previous, thus you end up with a potential for 2 promotion dates to be recorded, but 1 of them to be today and the other to be further in the past, even though it was a more recent promotion. Silly nuance, would be rare to find, but definitely possible to happen if you don't log on very much or are in an extremely high activity guild so events get pushed through faster.

* Fixed an issue where the promotion date was not properly getting added and the audit log was not reporting it properly even though the filters showed it was complete.


**CLASSIC**

* The guild export window the default button no longer overlaps the info on about the Guild Rep being disabled in Classic.

_______________________

**VERSION R1.86 DATE: Feb 3rd, 2020**

*Post DB overhaul cleanup and a few other things*


***QUALITY OF LIFE***

**BOTH**

* New addon description and info written up on Curseforge/Twitch and WowInterface

* Guild Info control tag mouseover in the options is improved and now gives more detailed explanation of what each control stands for.

![Guild Info Control Tags](https://i.imgur.com/eKyVYiM.jpg)

* If global control settings are detected as edited by someone else, if the GRM user currently has the GRM options window open, it should now update properly on the fly to the new updates.

* If Global controls are updated, it will no longer announce what the Join/Rejoin tags are if the global control is set to not even use them anyway, as this can be a little misleading when it reports them as it almost sounds like it is implying they are going to be used even if it is disabled.

* Options Officer tab now has the Join date destination Radial buttons in veritcal alignment, which is cleaner.

* Main will now be tagged in the leveled up info, so it's more clear when a person levels a toon

**CLASSIC**

* Roster names will now be colored to match their class in WOW Classic, just like in Retail!


***BUG FIXES***

**BOTH**

* Major bug fix where the 8.3 release (R1.85) would not work for some players. Now it should.

* Fixed a fairly major bug where any Promotion date edits would be overwritten on sync in certain cases even though they shouldn't have been.

* Found a lua error that could occur when trying to modify the system message of a player that just logged on before the guild was configured. Now it will properly wait til it is configured before tagging main/alt/NG on system message online/offline messages.

* Right click context menu sometimes was not showing the correct buttons or was not spaced properly.

* Fixed an simple Message reporting error where if the player didn't have enough room for the Control tags it would state {num} instead of the actual number. It should properly state the actual number of characters that need to be cleared from the guild Info to make room for the control tags.

* ColorPicker should now be draggable. It was erroring if you clicked the header.

* Found a bug where IF you had a player who had a birthhday set, but was not linked to any alt/main grouping, and then another player was the main in another grouping, if you adding the player with the birthdate set to the grouping that had the main, it would successfully clear the birthdate to match whatever the main had, but then it would erroneously attempt to add an empty string timestamp to the mouseover window for the birthdate rather than hiding the text, in this very specific situation, and showing the button.

* Birthday sync was not obeying the restrictions.

* Fixed an issue where the online status would not properly update from offline/online when swapping and selecting alts.

**RETAIL**

* Right click on the roster to set main or set as alt is working again on the community frame guild interface.


**VERSION R1.85 DATE: January 27th 2019**


***MASSIVE OVERHAUL***

*My single biggest code release update in the entire history of this addon, though maybe not as obvious on the front end.*

When I first built this addon I only imagined one thing, a simple log of changes. It had no other major interface. I built it purely with the intentions of it being a simple log of "what has changed since I last logged in" in the guild. This was important to me to track and I assumed I could build the thing in less than maybe 500 lines of code. I didn't even originally intend to make this addon public, it was just for personal use. However, some friends and guildies liked my very early version enough that they encouraged I do a public release, and down the rabbit hole I went!

Ultimately, this lack of foreward thinking and planning created some underlying issues in the long run. I built the addon in a very simple way that was not a big deal when it was small, and purely because the computational cost was so minimal to just use simple arrays and loop through them. When it was just my own simple guild and very little to check, this was not a big deal. As the addon grew and became more and more complex, as features kept getting added on, a level of multi-D array complexity crept in that became a pain to follow, and ultimately, it brought a level of inefficiency that caused resource wasting. Even worse, it made it more challenging to debug tool. I bandaid the database and increased lookup speeds by sorting the arrays and implementing a [Binary Search Algorithm](https://en.wikipedia.org/wiki/Binary_search_algorithm), but at the end of the day, Lua was built around taking advantage of associative arrays. I won't get into the technicality of this deeper, but just know that it is more like using a dictinary "key" in pair with the data you wish to store, and it is so much faster than scanning through just a traditional integer based array for the data.

So, as I kept building and building, improving, and enhancing things, I had this always in the back of my mind (thanks to @Xulu on Discord lol)... that one day I was going to have to go back and rebuild the underlying database(DB) and rewrite so much of this addon to take advantage of those changes. It was such a HUGE project that I dreaded it. I procrastinated it. I felt zero inspiration and motivation to do it. You see, at the end of the day, this is something I do for **fun** and it is really just a side hobby I find a lot of enjoyment with. So, the moment it becomes too tedious, a chore, or too draining on my life and it loses that fun? Well, that's the day I give it up. So, I avoided it... But, recently, as I was building on the addon more and more, with my major Phase 2 and Phase 3 releases ahead of me, the crushing force of revelation hit me... I was giving myself just more work to do in the long run. Everything I built now was just more work I had to rebuild later. It wasn't a matter of **IF** it needed to get done, it was a matter of **WHEN.** So, I relented, and the journey began. You could say it started off a bit melancholy and slow, wishing I was doing something else, but quickly I realized how enjoyable this was. The fruits of my labor were going to be so sweet. I could see the great benefits to myself. I could see how much of my time was spent fixing bugs that never would have occurred if the changes were in place, and no longer was this a dreary slog to the finish, but a fun and rewarding challenge that I couldn't wait to complete.

It took me more hours than I even dare try to tally or say here, but it was worth it. This all occurred in the midst of the house I was building coming to completion in mid-December, moving into the home, the holidays with relatives in town staying at the new house, a vacation I had planned because we were supposed to move in in November but the house got delayed a month, keeping my wife's rep at exalted as I worked on this when there was a nice "to-do" RL checklist in a new house that is enormous haha. But, here I am... finally! A massive underlying DB overhaul of the addon occurred. A massive rewrite of much of the underlying code to take advantage of these changes as well, and tons of other things peppered in between it all you will see below.

*Of note, the DB will take up maybe 5% more memory, at a gain of performance, so I think worth it.*


***WHAT IS NOT IN THIS UPDATE***

**PHASE 2 RELEASE - Macro tool Custom Rules**

* This is not out because even though I am about 90% complete here, I got distracted on this other major project and didn't finish it. It is my next priority, tied with updating the new recruitment system as a standalone addon next. There is SO many other things I addressed though in the meantime.

**PHASE 3 RELEASE - Macro tool Promote/Demote**

* These 2 phases are my core priority after this release. I know how important they are and how much of a quality of life improvement they will bring to the leadership, especially in Classic with that painful demotion/promtion system. These might seem simple implementations. They are not. They are substantial projects.


***QUALITY OF LIFE***

**BOTH**

* Restructuring of Global controls. The text string in the guild Info is now much leaner and takes up less space. Easier to parse and manage as well. Of note, this will not automatically remove the old string. This is because we want that old format to still be there until you get everyone properly upgraded, so only remove it once everyone is properly updated in the guild. You can add the new string in the meantime by exporting it from the GRM > Options > Officer Tab:

![Global Control Setting](https://i.imgur.com/opYCzdm.jpg)

* Guild Leaders can now edit the global controls from the Options interface without the need to go into the GuildInfo and delete things to edit them. This only works after first exporting the new control string to Guild Info. They will automatically be updated on the fly as changes are made. All other players, including officers with access to the Guild Info still will have those actions blocked from the interface and they will need to manually edit them.

* Players now have the ability to Globally Control adding the join date at all. Before, 1,2, or 3 index indicated which note destination to go to. Now, a ZERO will indicate the wish to disable adding join dates automatically when a player joins the guild. So, guild leaders can now globally disable the setting. Of course, this setting is *OFF* by default anyway.

* REMINDER - The old guild control tags will not be automatically deleted. I am leaving these up for you to remove on your own because if people are still using older versions, you may want them to obey those until they upgrade properly. Otherwise, you will need to re-export the new ones as GRM will not do it automatically for you as a result. I also added a recommendation reminder to add them to the GuildInfo as I think it is critical guilds get their players all on the same page with some of those sync settings.

* If guildInfo is too full and no room for global control string, the addon will now inform you the exact number of characters necessary to make room for the guild tags for global controls. Before it just said it couldn't be done.

* Huge rewrite of the right-click selection window on the mouseover window. The one where you set main/alt, etc. It should now remain properly and consistently sized with only selections that are important, and not lots of empty space.

* Added a new option in the right-click context window of the player mouseover. User can now set the promotion date to the same as the join, or the other way around. Now, when doing lots of configuring of newer players you only need to configure one of the dates, then either send it over, or pull it over, either way works. Just right click to see.

![Example of sending date over](https://i.imgur.com/EzLnxwT.jpg)


* Audit window has been adjusted slightly for a slightly cleaner interface to view and use the tools, and the birthday filter has been appropriately updated as a separate function and button and the one in the Options > UI, which completely disabled birthdays. I removed the green "Disabled" message as it didn't really make sense in the new interface.

![New Audit Changes](https://i.imgur.com/nZQYdzk.jpg)


* "Restore Defaults" buttons found on various pages, like options pages, Log tools, or even now a new one on the Export Tool page, will now only reset the settings to default of the page you are currently on. There is a tooltip option shown that you can still set reset all addon-wide by Ctrl-Clicking with a confirmation, but other than that it is easier than ever to reset to default for just those settings.

* The side checkboxes that filter the Log information, as well as what reports to chat will now only appear when looking at the log. There was no need for it to be visible on all the other tabs, but it was for some reason that just didn't click for me as being weird until now.

* In the JD Audit tool, it was not entirely clear at times that even though some players the join date should be moved or cleared or modified in some way, that this action was not possible because the default join date destination was already filled with a note and GRM errs on the side of NOT overwriting pre-existing notes, in case they are important. Now, it informs you that even though action needs to be taken, it will not because the note is full and it recommends manually making room. Furthermore, the JD Audit tool now shows the recommend "Steps" to take when going through the tool, starting from top to bottom.

* GRM will now auto-set a player to main if they are part of an alt grouping that has left the guild and they are the only remaining player in the guild

* Adding an alt should now be a little more obvious how it works. The "Press tab" now states "Press tab to cycle" as well as "Press enter to select". This was not super clear for new users. Also, I have include a top right close button now. Before you needed to Press the ESC key or click off the window. Now you can also press the close button if you prefer. Just makes it more obvious since it isn't necessarily obvious you can press the ESC key

* Ctrl-Clicking a player should now load their window on the first attempt. Before, if you had not opened the roster window you would have to ctrl-click twice. Once to bring up Community/Guild window, the otherto open the player. Now it should just open without needing to open the roster first.

* GRM will now automatically enable system messagess if they have been disabled. Be warned, any addon that silences system messages completely will break GRM functionality. Fast Guild Invite Classic currently has an issue, for example.

* The Macro Tool position will now be saved unique to each player rather than be sync'd to all your alts, even if you have it set to sync between all alts. All other frames that are draggable, like the minimap, do this.

* If a guild leader removes a rank, all ranks below it will see their indexes shift up. Before, you would end up reporting a mass spam change that you would have to deal with, and now it will check if the ranks are the same now.

* The macro tool top window message "Players the same rank or higher will not be shown" is now more appropriately placed on the Macro tool

* The Option in the Scan tab now properly states that the "Left Player" will show the Custom note, in addition to the public and officer, on log entries

* Backup data originally included the pending Calendar invites, which was essentially unnecessary to be included in backup data as it will scan and add/remove things dynamically.

* Backup info will now recommend a data purge in the tooltip to some guilds whose data was so old and players had not logged into those guilds for so long that they were in such an outdated format and they maybe just were old traces of guilds never properly cleared out... so now it recommends kicking them. Of course, the power remains in your control.

* Tooltip on syncing just outgoing information, not all incoming is now more clear for the player in the GRM > Options > Sync tab

* Cleaned up a lot of unused strings no longer being used from the transation profiles.

* And finally... massive DB overhaul that brings about massive efficiency improvements, speed improvements, and readability improvements.

**RETAIL**

* The "Show Mouseover* button should now only appear when looking at the guild community window, not any other. It was previously there even if looking at other communities.



***BUG FIXES***

**BOTH**

*In no particular order*

* Cyrillic or Asian characters were not being counted properly when counting an edit box by taking length of string and failing to account for UTF8 values. This is now resolved

* The !note should now properly allow a full 31 characters regardless of language. There is an additional message announcing if the !note is > than the 31 character cap.

* Fixed a major bug that plagued *SOME* users who experienced a crash in the middle of loading the addon when updating from an older version that caused the version to be saved *before* the new settings were implemented, causing an issue where it believed the version was updated but no patches were applied.

* Found a bug that could exist if you had not updated GRM in a while, created a new toon, then the first time you updated GRM was also the first time you logged on to a new toon, it could faily to load properly. This likely got missed because a reload/relog would self resolve it. But now this will prevent that from happening.

* On resetting defaults, it was not resetting the UI beyond the core GRM frame. It should now be properly set, as well as

* Addressed an issue in regards to the hotkey macro being tried to be created whilst in combat, which is restricted. The addon will now delay the creation of the macro while in combat and enable it when combat ends.

* Fixed an issue where on sync the Custom Notes were not always syncing in all cases when they should have been.

* Fixed a Lua error if you tried to export "former guildies" but there were none that had yet left the guild since GRM was installed.

* Fixed an issue where the Guild Creation date is not stored properly in the backup information when looking at the backup window.

* A translation error warning was triggering with the Korean version in regards to the "SYNC USERS" phrase. This is now resolved.

* Fixed an issue where a guild data backup cannot be loaded if you are trying to load an "Auto" backup, whilst you have no Manual configured. You had to have both saved to load the auto for some reason. It now works properly.

* Fixed an issue that could prevent the addon from loading due to a certain Dropdown Logic function not being loaded yet by Blizz. The addon now does a logic take to see if the function has been initialized yet by the client before loading the rest of the addon. This prevents GRM from trying to hook a Blizz frame that doesn't yet exist. this affects very very few people and I only ever got 1 report of it. Might be system loading speed issue that the addon will now compensate for.

* Custom Note stopping working with 8.3 release. You could no longer edit it or set a note because Blizz changed the way Edit Boxes lost focus if you clicked off of them, so what would happen is you would click the button to confirm, but you would lose focus on the click down, not the release up, so when the release up happened, triggering the button, the window had already lost focus and things would be hidden. This is resolved.

* Fixed an issue with the RGB settings on adjusting the background color the edit boxes would be over the +/- box

* Found a bug that could cause the players that left or were kicked to report incorrectly that they were only in the guild for 1 day. This is resolved in the new DB. Be warned, there was a formatting error in the old DB that needed to be cleared so the very few toons this affected their Join Dates will be reset and will need to be reconfigured, or just resync'd to another guildie. This will affect a VERY small number of names in yoru guild, and possibly none at all if you successfully dodge one of my updates that caused this issue a little while back.

* Fixed an issue where if you had more than 12 alts on a single toon, the scrolling window the bar on the right would disappear if you clicked it. Mousewheel scrolling still worked, but this is now resolved. You can click on it!

* Fixed an issue if you CTRL-Clicked a player in say, the Audit, often the player online/offline status and the Zone information was not accurate and was incorrectly reporting them as online, especially if using the old roster in retail, or all the time in Classic

* Right clicking the mouseover window should now have a proper anchored dropdown box regardless of player scale now.

* Fixed a bug where if you tried to add an alt it wouldn't let you and it would say "X player is already listed as an alt" - this should no longer be an issue. To clean up this bug some alt groupings might have had a player removed from them. This would be minimal. All you need to do is re-add.

* Had to fix MANY editBoxes as 8.3 did a stealth change to the Blizz edit Box template that needed to be adjusted for.

* Fixed an issue where a Lua error could occur when adding a new alt to a grouping who had the bday already set in some cases.

* New bug in 8.3 - when clicking the player to add as alt, or shift-clicking, it was not keeping focus on the edit box. Now it should keep focus so you can just press ENTER again to confirm adding the player

* The Clear lines within a range was clearing as if the log was not being filtered. It should now properly only clear the selected lines that you see. This should make it easier to say, clear just leveling spam, and so on.

* Taiwanese Client should now properly configure and not spam your chat window.

**RETAIL**

* With the inclusion of the new community guild recruitment feature, the reporting on guild joins modified slightly. Before I would look for the player that INVITED the player AND the time they joined. Well, now the recruitment through the new system only shows when they joined, but not who invited them. The addon has been modified to adapt to the new system and while it will still maintain and report *who* invited a player through traditional means, it will now state "Unknown" on who invited them... until a better system can be devised, if possible.

* Fixed a lua error that could occur when opening the old /groster - it was mostly inconsequential and didn't break anything, but bugs are a defect. This is now resolved.

* Promotions and Demotions should now properly report *WHEN* they occurred in retail

* The Log should now properly report *when* a player leaves or is removed from the guild, if it can be found in the last 100 log entries. It was only reporting the current day.

* Fixed an issue where the addon wouldn't initialize for "esMX" Spanish Clients in retail

* If a player was the "Vulpera" race and you tried to export their data with the export tool it would error out. This is now resolved.


_______________________

**VERSION R1.831 DATE: November 12th, 2019**


***BUG FIXES***

**CLASSIC**

* Fixed an issue where mouseover would not work for some people even though mouseover was enabled. Be warned, this had to reset everyone's setting in Classic on the mouseover tooltip being enabled/disabled as it was wrongly pointed at the communityFrame checkbox setting for the answer, which obviously doesn't apply in Classic. Just an accidental crossover mistake due to single codebase use.

**BOTH**

* Fixed an issue where when re-enabling the mosueover window it would appear over the player side/details window rather than the side of it.

* Fixed a very complicated issue that had to do with mass joining to a guild spam. Oops!


**VERSION R1.83 DATE: November 11th, 2019**

***HAPPY VETERAN'S DAY IN THE US!***

*Ok, MAJOR update for Classic users as I have finally addressed an annoying bug that plagues CLASSIC only. Basically, it could cause you to not only lock up, but super annoyingly lose keyboard focus when typing and also even close the player details side window on the roster automatically, making it impossible to keep open. Big thanks to @Dracaratos#2600 and @Denatherion#7293 for helping me trace a major bug here both through video recordings of the issue and for Dracratos letting me join his guild temporarily to see the bug for myself and trace the issue. It was SO unexpected how it was occurring. This update should now completely resolve that.*


***QUALITY OF LIFE***

**BOTH**

* LIve promotion/demotion detection occurs by analyzing the system messages. While this was handled by scanning the event log in Retail, in Classic this is even more effective in that before it would only register LIVE rank changes you made yourself, not your guildies. Now, it will function for all events even made by other players with full compatibility to all 11 clients (10 in Classic).

* Added a new right click dropdown menu for the Audit window as well as a mouseover highlight to the lines - The options will likely be expanded. For now you can now set as alt or set as main. My next step will likely be to bring the Add Alt autocomplete window over.

* Noticed something that bugged me. I am surprised more have not complained over this. But, when editing something in the mouseover window, when finishing, it auto-unlocks the window. This is ok, but only if the side member details window is not open. It doesn't make sense to allow mouseover if the member details window is currently open to be able to mouseover everyone else. So, it is now properly locked and doesn't unlock until first closed. And ESC key will do the job or closing the X button.

* Big efficiency boost in some of my On_Update checks for the frames and they are a bit more compartmentalized now in triggering only on the On_Show and disabling when hidden. Some key ones were not doing this. Probably not noticeable, but inefficient nonetheless.


***ADDITIONAL BUG FIXES***

**BOTH**

* Fixed a spacing issue on the "Addon Users" tab which shows you information on all the players with GRM installed.


**RETAIL**

* On a player joining it was reporting the name incorrectly if a player was detected to be set as "main" automatically, and also not setting as main due to a typo on the variable.



**VERSION R1.82 DATE: November 4th, 2019**

*MAJOR BUG FIX FOR CLASSIC!*

*There was an issue that seemed to be affecting people in Classic that could cause disconnects. First, there was a Lua error that could occur when syncing banned player data and it could end up messing up some of the throttles as it would crash in the middle of a loop before summing the amount of data sync'd for the throttle. Because it was just BAN information, other guilds who don't have an enormous amount of banned players maybe didn't even notice this. But those that did have some, it could happen. Also, to make it worse, the sync process was further flawed in Classic where a D/C could more-likely occur while grouped. Here is the ultimate weird problem with this... I dual-boxed 2 accounts to test this more thoroughly and I would join a group with 2 of my accounts on 2 toons and then force some data transfers back and forth. With certain testing I could recreate and force the disconnect every single time. So, I swap back to retail and I place myself into the exact same situation and no matter how much I tried to break it, there was no issue. So, it made me realize that there was ultimately a problem on the backend comms across the server that is only affective Classic.

So, I now have the option, do I just disable the sync process completely when grouped, only disable when just in combat, or should I just throttle harder in these situations? Well, then I decided to listen to the collect addon to addon noise among the popular raid addons in Classic (and even retail), and I was blown away by how much constant back and forth chatter there really is, especially when in combat. The global throttle cap on addon to addon comms is not that high, and it is shared globally by all addons. Well, GRM is really the lowest of lowest priorities to take up some of that important and limited global data when you are in a raid and especially, when in combat.

So, I hate to say it, but after thinking about it more and more, @Xulu#1278 (discord) really was right when it comes to the suggestion of just disabling sync when in a raid. This is why I have a compromise, and why I also agree. You see, a large guild a new sync might take a little bit of time to complete, so, it's not a great idea to initiate a sync because one is out of combat at that time, only to then have them enter combat... Ya, I could kill the sync immediately, but overall I hate that kind of user experience. So, I instead am going to throttle the retroactive sync process. The long synce that says it is beginning and ending. That is no longer going to be possible when grouped. However, the LIVE sync changes will be allowed. In other words, if you add a player as an alt, and you send that message out to the other GRM users in the guild, they will receive your update whether they are grouped or not. Only the bulk data sync will be restricted when grouped.*

***QUALITY OF LIFE***

**BOTH**

* Custom note will now be added to the log reports when a player leaves the guild, if there was a custom note, and it will also be displayed if a player rejoins the guild.

* I almost feel like this aversely affects QOL, but I have changed the minimum scan interval from 10 seconds to 20 seconds. While the default is 30, you could have manually set it to 10. I did a little testing this patch that I had never really done in the past in forcing lag on the system artificially. I wanted to see what would happen if I pushed the lag for 3 seconds then 5 then > 10 - just enough to lag long enough without getting kicked offline. Wow, I found witth a HUGE server lag spike you were really riding the line with the 10 second interval as a general scan I have it basically set to be spaced out a little, but push a sync cap, the addon doesn't know this and keeps running the numbers and sending server calls, and what happens is Warcraft quest them all up. With a hard lag, I could end up locking the game up for serveral seconds as it tries to triple scan changes to the guild due to que up queries. This just resolves that potential lag issue. 10 seconds per scan was a little overkill anyway and probably not necessary (it was originally set to 10 because the server refreshes the guild data every 10 seconds when the guild window is closed and every 1 second when guild window is opened).

* The mouseover history on the Join Date, which gives detailed info on if they left and rejoined. The tooltip states the number of times they have been in the guild at the bottom. This has now been moved to the top. In theory, a player could leave/join a 100 times and the tooltip will end up off screen and be unable to read (recommend right click and clear lol), but if you want to keep the info for fun, the number is now at the top to see.

* Massive improvement in reading and parsing the system messages.


***ADDITIONAL BUG FIXES***

**BOTH**

* An issue with exporting the guild player data, if you unchecked many of the filters, since I added the sex/race info, it aligns the export info incorrectly.

* Fixed an odd bug that could be related to updating an older version of the addon to the current ( Version 1.62 ). Thanks @Xulu for pointing this out.

* Fixed an issue where the LIVE reporting on who kicked who was inaccurate at times. There was an initial sloppy adaptation to implement compatibility in Classic when in Retail this was unnecessary thanks to the built-in event log for guilds. Well, it ended up having ripple effects that messed up reporting on occasion for bother retail AND classic lol. This has been cleaned up now.

* Fixed a lua error that could occur when a player is kicked or leaves a guild and they have GRM installed whilst looking at the mouseover window. In some instances, even though they are no longer in a guild, the built-in interface was not clearing the guild interface so the mouseover window stayed visible, expecting to be able to call the server for guild info when it obviously cannot. This will now add a check on if the player is in a guild or not in the On-Update for the mouseover info.

* In some cases if the player that left the guild did not have their name listed properly and it was blank.


**RETAIL**

* Fixed an issue where the mouseover window was not pinned properly to the Old /groster frame if you opened that first or used it exclusively. It would only pin once you clicked on a name. It now should appropriately be attached.


**VERSION R1.813 DATE: November 4th, 2019**

***NEW FEATURE***

*Relatively minor feature, but a great suggestion from @Vishal in Discord that I knew I wanted immediately!*

![Right-Click and set as main or alt in the chat window](https://i.imgur.com/xdtzzgZ.jpg)

* No need to open the roster when a player joins, and configure them. Once the addon detects they joined the guild you can just right-click their name in chat and set as main. You can also demote to alt the same way.


***BUG FIXES***

* Log button and macro tool button were floating and not hiding if you triggered the CommunitesFrame by the control panel click. This should now properly be hidden.

* They should also obey their current frames global scaling - I notice people with super high rez and very low scale the buttons wo8uld appear huge. They are now set as CommunitiesFrame as parent to inherit their scaling.

* Right click should now be properly pinned to their respective text on the mouseover window if you have differently scaled windows.

* When you sync all alts to the same join date, it now should properly say "Joined" and not "Rejoined" when populating a note.



**VERSION R1.810 DATE: November 2nd, 2019**

*Minor update fixing a few things and adding some additional details about the player including race/sex.*

![Race and Sex - Available both on Export and mouseover](https://i.imgur.com/Bkp0P6H.jpg)


***QUALITY OF LIFE***

**BOTH**

* Added Race/Sex information of a player. this can be found as an export option. Be aware, this might mess up your column allignment so you will need to readjust. I just couldn't add these details to the end without it not feeling right.

* Removed .toc CommunitiesFrame addon depencies. This is no longer necessary and also will prevent the addon from force loading Communities before your global C_Value settings configured, forcing them to be set to default, ignoring custom settings.


***BUG FIXES***

**BOTH**

* Fixed an issue that would crash the log and get it stuck in a loop on load

* Fixed a bug that could cause Live Kick detection to error out in some cases.

* Fixed a bug that would error out when trying to detect a LIVE kick or Left the guild change by parsing the system message.


**VERSION R1.801 DATE: October 31st, 2019**

*Quick bug fix that prevented the right-click drop down selection from working on most of the mouseover window items. Side-effect of something I missed when updating the alt list. Fixed*

* Also, added the Race/Sex metadata to each toon. I am not entirely sure what I will do with it yet, but it can be parsed out in the save (position 46/47 of the metadata array), or I will likely include it as an export option as well as maybe in the mouseover info when mousing over a player's name.



**VERSION R1.80 DATE: October 31st, 2019**

*Happy Halloween!*

***QUALITY OF LIFE***


**BOTH**

* Alt list cleaned up a bit with scroll slider only appearing if moused over. Placed better

* Same with the custom note scroll slider for long custom notes.

* Added scaling options for all the main GRM frames: The Core settings/Log frame, mouseover, Export, Macro Tool, and even the Advanced Join Date Audit Tool

![Scaling Options](https://i.imgur.com/toVo01b.jpg)
![Example Scale](https://i.imgur.com/RthqyZX.jpg)


***BUG FIXES***

**BOTH**

* Scaling issue fixed

* Buttons were appearing and are now disappearing.

* On some language clients the options slider on tooltip scale wasn't pinned right.

* Fixed a bug that caused a Lua error when changing languages

* Fixed a bug that could cause potential disconnects, particularly in Classic when in a group. Very old code that was somewhat inactive in Retail and irrelevant I forgot about that got reactivated again thanks to old frames existing again.

* A few other misc. things I won't mention here.



**VERSION 8.2.5R1.791 DATE: October 28th, 2019**

*Dumb Typo on the loading the log fix*


**VERSION 8.2.5R1.79 DATE: October 28th, 2019**

*Minor updates to smooth things out a bit in terms of pressing bugs people are encountering as my next release is larger and at least a week or two off. I want to get these parts out asap at least*


***QUALITY OF LIFE***

**BOTH**

* Change the tooltip over the guild Info to now just show the full guildInfo page - This is especially helpful in Classic, but overall just removes the spamminess that is now the globals. It wasn't so bad when there was only a couple.


***FIXED BUGS***

**BOTH**

* Fixed an issue where it is crashing on load for some people, particularly in Classic, as it is trying to pull the hotkey info for player push-to-talk to ensure GRM doesn't overwrite the Roster window call with the default "J" or ";" keybinds. - Well, it was calling the API to check the push-to-talk key before the interface had been loaded by Blizzard.

* Fixed an issue to prevent compatibility issues with other addons that call the dependency CommunitiesFrame to load immediately.

* Fixed an issue where mouseover frame was not working properly for some people (This resolves it for some people, need to hear if there are still some it does not resolve it for)

* Fixed an issue where some log entries for players leveling up did not show properly in the log

**RETAIL**

* Fixed an issue that could occur when trying to verify if a player just joined the guild and if they are a main or not.

**CLASSIC**

* Issue where GRM can lockup your game if 2 people in the guild promote/demote a player at the same time. It should uncheck itself from the circumstance in less than a second now.

* Fixed an issue where the addon will detect the wrong person as being promoted/demote as well.

**VERSION 8.2.5R1.78 DATE: October 23rd, 2019**

***QUALITY OF LIFE***

**BOTH**

* Exporting member/former member details will now only include the full "Name-Server" if you are in a merged realm guild.

* Hitting Level cap now has a more obvious chat/log message

***FIXED BUGS***

**BOTH**

* Roster keybind no longer set it to a default if you have it set to your Push-To-Talk in-game chat key.

* Fixed an issue where the Sync reporting should have only reported one time that a person had an outdated version of the addon.

**CLASSIC**

* Fixed a bug in relation to if a player updates the Guild Information, it was sending a retail only command for people to refresh the Guild Info and recheck for settings change. This is now fixed.

* Fixed a bug that affected exporting the member details in Classic version only due to differences in Class API


*Note: Each update will be tagged with **Classic/Retail/Both** for context*
**VERSION 8.2.5R1.77 DATE: October 22nd, 2019**

***NEW FEATURE***

*LONG INTRO*

If you are reading this, I want to share with you a parable. Bear with me, I am not preaching here, only sharing an applicable story. Let me tell you about *The Parable of the Unjust Judge.* It appears in the Gospel of Luke 18:1-8. This story is a parable of a judge who lacks compassion, who doe not care for what people thought, and who was essentially, *unjust.* This was not a good person and he had no issue letting others know he was not a good person. Something happens that bothers this judge. A woman goes to him and tells that she has been wronged, that she is seeking justice. He doesn't care. He brushes her off. He can't be bothered with her. She keeps coming back, over and over, begging for justice. Finally, the judge thinks to himself, "I'll just give her what she wants to be rid of her!" The *unjust* judge grants her justice.

The Biblical moral of the story was to show the people that they should pray often and not weary of it, being that if an unjust judge still granted what they asked if bothered enough, how much more would a loving God grant them what they asked. Yet, in my case, I find that I am comparing myself to the unjust judge.

You see, I had zero intention on getting to the "Export" tool anytime soon as I was interested in other projects, busy with them. It was far enough down the list to say that it would be a while before I got around to it. Then, something happened. About the last month or so, especially since Classic launch, I feel like the requests for exporting data have been coming almost daily. Over and over and over I was having to explain to people I did not have a method to export. It was like 10 to 1 compared to any other request. I have about half a dozen PMs on Curseforge requesting it, not including the comments on discord.

I was *wearied* by the requests. I just wanted to be rid of them! I just wanted to say, "Yup, just type /grm export, it's that easy!" But, I couldn't...

So, I did it. I built an "export" tool to assist in better exporting the Log, the Member details, as well as the former member details. It might *appear* to be such a simple feature, but overall this took me nearly 2000 lines of code to really have a solid user experience. I am sure there is room for improvement and suggestions as well, but I am glad to know that I now have an answer to people who ask about this feature.

_______________________

**DATA EXPORT TOOL**

![Log Details](https://i.imgur.com/MWgmxWT.jpg)
![Member Details](https://i.imgur.com/cetws2s.jpg)

*Access in 3 ways:
* /grm export
* Audit Window (top right)
* Log Tools window

*3 Main Data Exports: Log, Members, Former Members*

*Notable Features*

* Ability to choose specific ranges to export

* Auto build the next or previous block to export, to make the process easier.

* Filters for all Member Details you may or may not want to include.

* Delimiter selection to make it easier to copy the information to a txt file and import it into your favorite spreadsheet program. Of note, I have noticed that Googe Spreadsheets seems to handle special characters far better than Excel. Note, I only have 2 delimiters setup so far. I was going to have a custom and then I just realized how easy I was allowing players to break it if I did that lol. If you have a request for one, I would be happy to include it. I did want to include the "|" bar as a delimiter but for some reason the Lua code is not letting me set the text to an edit box if too large a size with the bars... So, something odd there I still need to discover.

**--------------**
**QUALITY OF LIFE**
**--------------**

**BOTH**

* Players can now disable the !note confirmation. It also no longer takes up actual guild chat lines, just GRM reported and printed to the chat window for GRM users.

* The !note messaging process has been completely rewritten to be more consistent. More importantly, it has been rebuilt to not spam the actual guild chat and instead only message GRM users *if* they have chat message enabled for public note updates. It is now wrapped in the checkbox on the "Public Note" chat and will be silent if not enabled.

* Player can now disable the "MAIN" tag - whilst still show the mainName - just set it to "No Tag"

* GRM will now enforce an instant Global Settings check for updates if the player edits the GuildInfo Global Control tags. There is no longer a long dely. It will instantly check

* There is now an indicator on the GRM mouseover window when it becomes "Locked" in place with an instruction on how to release the lock

* If you sync your addon with a player who is outdated, it now only reports one time that there was an attempted sync and it informs you (if more than 1) how many people have outdated addons online

* Macro Tool - The left-side macro now has a more detailed tooltip on what can be done and managed.

**RETAIL**

* Added a tooltip on the calendar for right click suggestion, as well as localized the string as it was not preiviously it seemed


**--------------**
**BUGS AND BUGS!**
**--------------**

**BOTH**

* Noticed an old delay in the system that was redundant, that would avoid reporting kicked players from the guild on the first pass on logon... this only applied when I was still adding names to friends list and delaying to check if they were still on server.

* Export log was in some cases not functioning. This has been remedied with the new export tool.

* Fixed an issue that could prevent the addon settings for some toons from loading properly and causing errors.

* Fixed a roster database issue that could occur where a player namechanged an alt to one of their own toons, like they server transferred one character, then namechanged a member of the guild into their name. There is now a check for this to ensure a correction to the database if necessary.

* Fixed an issue that could result in the wrong person getting banned when you kick a player from the guild and select to ban alts

* Fixed an issue with the Ban window not clearing and disappearing when on the screen confirming a kick of a player... it could end up hooked to things like the death window.

**RETAIL**

* Fixed an issue where it was reporting YOU as being the person that kicked someone when it was another officer.

* The old /groster default GameToolTip was not disappearing if closing the window. This should now be resolved.


**VERSION 8.2.5R1.76 DATE: October 1st, 2019**

***MAJOR OPTIMIZATION UPDATE***

*Optimized the code quite a bit on the back end. Restructured the database, sorted all my arrays properly. Implemented a binary search algorithm on all database queries. I probably should have done this originally, but the original scope of the addon in my mind when I started building it was a bit smaller. This is an ENORMOUS performance gain that cannot be understated compared to previous lookup methods. Of course, with the processing power and speed we do have these days it wasn't really noticeable for most, but for me, I think efficiency matters and this makes me feel a lot better! The structure using arrays(tables technically in Lua) like I have should now act correctly and be quite fast. We are talking some things that might take say 1,000,000 actions down to 10,000 actions. The gains cannot be understated. I should also mention a lot more went into this than just this optimization. I think it took me 15-20 hrs of work just on this one side project*

**--------------**
**QUALITY OF LIFE**
**--------------**

**BOTH**

* LOG now has font size control slider for specifically the log only. You can find it in the "Log Tools" window by clicking the bottom bottom left of the log.

* Global Controls can now be exported to the Guild Info notw with the click of a button in Options > Officer tab - the tooltip on the button will also state which are not yet exported

- In addition, all "Global Control" settings that can be set are now more obvious with a "(GC)" indicator in the options

* Player level now is stated in the log when they leave or are removed from the guild

* CHECK YOUR BAN LISTS!!! GRM will now indicate if the player is no longer on the server (or no longer exist from deleting toon, aka, no longer on server) - Clean up your ban lists! If they are no longer on your server this means their GUID is no longer valid, and as such GRM cannot detect if they return to the guild or not. Since they cannot return at this point, it is safe to remove them from your list

* CTRL-Click and CTRL-SHFT-ClK options have been expanded to the Event windows (not relevant for Classic) and Ban windows for continuity, to bring up player window or search for the player.

* If the player side details window is open on the Classic roster or the /groster in Retail, and you re-click on the name. If it hides the side window it will unfreeze the lock on the mouseover automatically. Otherwise you still need to hit the ESC key or click the X. Communities default interface setup by Blizz functions a little different so it doesn't apply to that window.

* Added a tooltip to the sync all settings option to make it more clear it is for each guild, not account wide.

* In regards to the macro tool, typing /grm tool to bring it up, you can also now type /grm macro to bring up the same window. Of note, /grm kick also works

* New text info on the macro tool explaining that people same rank or higher will not be included in the queue due to the inability to modify player ranks the same or higher than your own.

* Noticed some inconsistencies in full name-server showing often when unneeded so I normalized those messages a little.

* Hard Reset slash command and Options > Help button now has a confirmation box.

**CLASSIC**

* Events Window now has a Classic specific message explaining why the feature is disabled (no calendar)

* AddOnSkins file has been accepted and merged into the official TUKUI repository for those of you that use ElvUI AddOnSkins - the template is fully updated. They should have a release ready through their own system.


**--------------**
**BUGS AND BUGS!**
**--------------**

**BOTH**

* Scaling issue with the GRM mouseover window has been resolved. It was squishing the frame due to a top and bottom "pin" when it should have just been the top corner.

* Fixed an issue where if you were the same rank as the player, they were still showing up on the macro tool with a recommendation to kick. Now, it should only show them if they are below your rank.

* Fixed an issue where if a player's birthday was set to unknown, even if you updated it correctly by right-click to edit, and even if it showed correctly on the Audit window, the mouseover would still say "Unknown" after mousing off and back on... no longer!

* Some frames had their bottom edge being cut off at certain resolutions. This should be resolved now.

* Export of the Log should now properly work and obey the filter rules that you currently have set. It only can do up to 1000 lines to avoid too big of a clipboard copy with CTRL-C

**RETAIL**

* Tooltip bug on the old Roster. You mouseover it and it grows and grows and grows until you mouse off and then come back and it restarts. This has finally been completely squashed and it is compatible with Raider.IO


**VERSION 8.2R1.75 DATE: September 25th, 2019**

*Compatibility Path for 8.2.5, among other things. It is no2 working with 8.2.5!*


***NEW FEATURES***

![Note Trigger](https://i.imgur.com/sG7iA4C.jpg)

*The return of the !note feature! While this is mostly redundant in Retail, it plays a big role in Classic. It has been updated, onverted, and rebuilt for newer integration and for Classic! Of note, I have decided to keep the feature availabe in retail, for continuity between both versions, but I mostly find it useless in retail.*

*In Retail this has mostly become useless as players now have the ability to edit their own notes and not others, unless they are officers. However, in Classic, the problem returns of players being able to modify **ANY** guildie's public note, not just their own, just by having access to editing public notes. This can be frustrating for leadership as the server stores no log of *who* made the changes. So, the !note feature allows a guild to disable the editing of public notes, eliminating this issue, but allowing guild members to easily update their own public note with the use of the "trigger," as long as an officer with GRM installed is currently online.*

* It should be noted that this painstakingly takes advantage of the behind-the-scenes sync leadership role. It would be bad if there were 10 GRM users who were officers online at the same time and all 10 of them saw the !note designation and all 10 of them updated the public note and spammed to chat they did so. So, how do you determine which of all the current GRM users is the one that does it without there being too much of a delay behind the scenes? Well, good thing I already resolved this in regards to sync leadership for a decentralized database. This is not super well tested, but moderately and I'd be curious to hear from people if it is or is not functioning properly at all times.

**How the !note feature works**

* Any guildie, including a GRM user, just starts their /g Guild message with this *trigger*: "!note"

* Anything after the !note trigger will be set as the public note (up to 31 characters). The previous note will be overwritten completely.

* Examples: !note iLvl=115, Eng 250, Alch 300


**--------------**
**QUALITY OF LIFE**
**--------------**

* BOTH: Last online Header text now has a proper width cap set before it wraps it so that in some languages it is quite wide and can overlap with player name (like in PortuguesBR )


**--------------**
**BUGS AND BUGS!**
**--------------**

* RETAIL: Raider.IO tooltip should be working again now.

* CLASSIC: Noticed Portuguese BR localization file was not properly inserted into the .toc file in Classic. It was working in Retail, just not classic.

* CLASSIC: Found an issue where if an addon called the CommunitiesFrame dependcy, the mouseover window would stop working in Classic. Cleaned up!

* BOTH: Fixed a bug where a Lua error would occur when a player logged off a the Member Alert message would not be shown (line 2091), and only if they had "Main Tag" designation disabled.

* BOTH: Guild alerts should now properly show or not show main tag desigations based on the settgins

**VERSION 8.2R1.74 DATE: September 19th, 2019**

*Smoothing some more things out!!!*

*Note: Each update will be tagged with **Classic/Retail/Both** for context*

**--------------**
**QUALITY OF LIFE**
**--------------**

* BOTH: Brazilian Portuguese has been nearly fully transalted and is now selectable in the drop-down as an option. TY @@Drakar#0666 (Discord)

* BOTH: Logic on system message class coloring has been updated. You can now enable/disable "Guild member alert" system messages to include the class color rather than it be enabled by default in the General Options tab.

* BOTH: Scanning process in checking for changes is now improved. I actually haven't looked at this in quite a while but identified an inefficieny in it that could result in it skipping a pass, so even if you had it set to scan once per say, 30 seconds, it might only check for changes once per 60 seconds, on the 2nd attempt, or if you check every 10 seconds, then once per 20 seconds, skipping every other pass. This was a surprising improvement.

* BOTH: If a guild member that uses GRM is promoted or demoted themselves, their rank permissions should now be logged instantly so to avoid any confusion as to why sync permission may or may not functioning correctly. There may be a slight delay in Classic compared to retail here

* BOTH: The "Ignore Macro Tool Filters" button should now no longer overlap the alts window when you have 12 alts and will adjust its spacing if < 12 or > 12 or exactly 12, which is necessary

* BOTH: Language names are now translated in all 14 supported langues in their language selection dropdowns.

* BOTH Localization efforts for translation work can now create their very own /grm slash command. /grm not make sense in your language? Make your own acronym!!! Note, /grm will always work, it allows you to create an additional slash command trigger. I have placed the slash command option at the top of each locale file

* BOTH: Cleaned up a few grammar mistakes pointed out!

* BOTH: When making a global setting change to the custom note, it not only forces the sync rank restriction for all, it also will reset all the individual notes to the given rank level to normalize them. This is necessary as too many were forcing filtering out. This can be retriggered the next time the rank is restriction is changed for all or for all new settings.

**--------------**
**BUGS AND BUGS!**
**--------------**

* BOTH: The "Recommendations" to suggest to kick a player was only reporting on 1 name per pass due to an error. It now should properly report all of them together in a group.

* BOTH: Kicking all alts should now properly work consistently and populate the kick macro tool

* BOTH: Right click to confirm verified dates the button should now properly disappear when right-clicking player names to set as main/alt and should now be properly space when right-clicking Notification settting on player status - as well as fixed some unnoticed sizing issues too.

* RETAIL: Potentially fixed an issue of a growing tooltip bug in the roster. Let me know!

* RETAIL: Mouseover was not working on the Old Roster window after last update - as well as some other issues with checkbox on Community window. This is resolved now.

* RETAIL: Found a potential bug that can cause something to endlessly loop when lots of new people join back to back, quickly. Escape timer was re-engaging back to zero on each loop.


**VERSION 8.2R1.73 DATE: September 17th, 2019**

*A staggering amount of work went into this update over the last week. But, you see, I am motivated to get everything smoothed out as soon as possible so I can start enjoying Classic myself! With that being said, lots of busy work here, bug fixing, and even some new stuff. I find that as I dig into this port to Classic I keep stumbling upon old code where I go, "Why did I do it like that?" lol - so I keep getting distracted by all these little tangents. Thank you for your patience. Come check, see if your bug got fixed!*

*Note: Each update will be tagged with **Classic/Retail/Both** for context*

***NEW FEATURES***

* Added a "Confirm Date" button to the right-Click menu so you can just quickly confirm a date if it is already accurate. This applies to the "!!" unverified date tags. It should only appear if the date is unverified when you right click.

**--------------**
**QUALITY OF LIFE**
**--------------**

* RETAIL: Players promoted/demoted should now be detected instantly in retail, and no longer just when you do it, but if another officer in the guild changes someone's rank you will instantly update yours based on the system message. Please note that this does not work in Classic in full capacity due to limitations of the lack of a guild event log. The compromise is GRM will instantly detect your own changes, but not necessarily those of your officers when it comes to promotions/demotions. This may change in the future, but it will require me to go parse the strings for 11 clients rather than rely on the logs, so not priority.

* RETAIL: People kicked/leaving the guild should now also be consistently detected instantly. Same circumtstance for Classic as above.

* RETAIL: RankdropDown text now is updated when rank change occurs. For some reason Blizz has still not updated this text error on the CommunityFrame guild interface. I bandaid it for now for them.

* CLASSIC: The ability to ban a player when removing them from the guild, as well as ban all of their alts has been fully integrated in to Classic now. The window should now appear.

* BOTH: When kicking a player from the guild, if you select to kick all their alts as well, the process is now fully integrated into the Macro Tool, and the window will popup ready for hotkey action with the macro already built and ready to go. This will allow you to much easier kick all their alts within seconds of you kicking them as well.

* BOTH: There is now a 3rd option when a player leaves the guild. The log reports that the player was kicked, that they left the guild, or if it is not able to be determined, that they are no longer in the guild. The 3rd option applies more towards Classic, but can definitely apply in retail. It just makes more sense to say "The player is no longer in the guild" than "The player left the guild" when it cannot be determined if they were kicked or they left, because the action occurred when you were not online.

* BOTH: Mouseover window can now be disabled in Retail community frame, or in the Classic roster frame as well... Checkboxes are in slightly different positions but still obvious

* BOTH: The addon will no longer rely on adding people to your friends list to determine their server status, if they are there or not. A much more reliable and faster method has been implemented. Yay! In the next retail patch, the new recruitment interface will do away with that "hackery" completely as well. Thankfully! If you unfortunately encountered the annoying error of friends that were not removed from your lists due to a crash of GRM before it could... use the following script in chat (be warned, it will clear ALL non battle.net friends).

'/run GRM.ClearFriendsList()'

* BOTH: Disable and Enabling the Birthday feature is now available with a checkbox right in the Audit window (this will also hide the bday info on the mouseover window if disabled)

* BOTH: "Check All" option on the log side panel where you can filter everything now behaves better. The check all should auto be checked if all are already checked, and it will uncheck as you uncheck one. Overall UX is better

* BOTH: On Adding a player to the "Ignore List" for the Macro tool, you can now CTRL-Click their checkbox on the bottom left mouseover to either add or remove all their alts as well from or to the list.

* BOTH: Log should now properly refresh if a player rejoins the guild and the log is open without needing to click off and rejoin

* BOTH: Language should now properly localize when player changes them on the mouseoverTooltip button

* BOTH: Cleaned up the patching process a bit. This largely does not affect most players, but in the case of someone who installed a very early version of GRM and then updated to the most new version, many updates would need to be patched and applied and could be a bit of a resource hog the first time on login causing the game to possibly momentarily freeze until completion, or worst case, time-out altogether. Note, this would only affect someone that installed the addon probably > 1.5 to 2 years ago and never updated since then. But, I have to look forward in that as time goes on the potential issue can only exacerbate. This also smooths out any issues of freezing during an update as it breaks them up into blocks of 5 patches per 2 seconds through a recursive patching method that is just more efficient. It will even announce to the player when a patch is being applied and when that is completely, no longer just a "GRM update to version XXXX" - it will still say that, but in case of patches being applied, it will announce them, announce completion, and announce how much work was done.

**--------------**
**BUGS AND BUGS!**
**--------------**

* CLASSIC: Taint should (hopefully) no longer be an issue in Classic. Tthere was an issue where the addon would block certain actions from occurring due to taint. In retail the exact method is used with no taint in communities, but in Classic it was problematic due to a change in permissions and UI restrictions.

* CLASSIC: Addon should no longer, **for real this time lol**, report players were demoted to the same rank when nothing happened.

* CLASSIC: Character count should no longer appear on the popup window unless editing the MOTD

* CLASSIC: Mouseover should continue to work proprely on the "Guild Status" screen. Some cases it would hide and then stay hidden.

* CLASSIC: Fixed and issue with live tracking of changes in the guild would stop scanning periodically after a player joined the guild

* BOTH: Hybrid Scrollframes were throwing an error if you tried to scroll and there wasn't enough data that required there to even be scrolling. This used to not be an issue until I broke it recently of course! I accidentally had enabled the scrollwheel action when maxScrollLength equaled to zero, when it should have been disabled. Simple fix at least.

* BOTH: Addon was erroneously reporting player name changes and overwriting player names with a date timestamp! Oops! This also would end up with a downstream mess of issues, from false rank renames, etc...

* BOTH: Fixed an issue where even if you have disabled reporting to the CHAT that the player left the guild, it still did.

* BOTH: Players using Cyrillic characters were unable to properly input some names as bans due to a formatting issue and it not parsing it correctly with some input error protection. This is resolved now, but affected players using the Russian Client.


**VERSION 8.2R1.72 DATE: September 10th, 2019**

* Major bug fix - for many addon would not load in 1.71 update - this is resolved

* Player nameChanges should now report properly.


**VERSION 8.2R1.71 DATE: September 9th, 2019**

*More progress on the path to smoothing out Classic!*

**--------------**
**QUALITY OF LIFE**
**--------------**

* QOL1: Classic - Social Micro button should now properly show a localized tooltip for all languages

* QOL2: Classic - Ctrl-hotkey (typically CTRL-J) keybind is unnecessary in Classic and is now removed

* QOL3: Classic - Reputation on player mouseover window is not relevant in Classic and is now removed

* QOL4: Classic - Several irrelevant "Options" configurations are made more obvious to not be applicable in Classic.

* QOL5: Both - When closing the members detail window (where you can do promotions), it doesn't immediately release the pause on mouseover if the player mouseover frame is still visible. Either closing the window or 1 more ESC key will do it. Feels better, imo.

* QOL6: BOTH: When editing a player date, rather than the starting date being today's date, it will instead be the corresponding date that is to be edited.

**--------------**
**BUGS AND BUGS!**
**--------------**

* BUG1: Classic - Rank changes should now properly log when you promote and demote people!

* BUG2: Classic - Players should no longer be reported as having gotten a demotion when they join the guild, in some cases.

* BUG3: Classic - Players should be unhighlighted and unselected now with the Guild Roster properly as you mouseover from one to the next

* BUG4: Classic - Compatibility built with ElvUI again, since they are still calling many community frames, it can error out GRM.

* BUG5: Classic - Mouseover should now work on the roster window for both "Player Status" and "Guild Status" settings...

* BUG6: Classic - Mouseover window should now be properly pinned to the guild roster in all cases.

* BUG7: Classic - Critical German Client only bug that caused tons of /ginfo system message spam. Oops!

* BUG8: BOTH - Adding and removing ranks to a guild should properly report how many to the log now.

* BUG9: BOTH - Keybind for opening the roster should not overwrite yours now if it already exists. Oops!

* BUG10: BOTH - Found that when a player not only joins the guild, but is promoted to a higher rank than the initial, the log was reporting this. But, in some cases it was logging a double report of a rank. It would have 2 listing in the mouseover history of promotions of the same exact promotion on the same day. Furthermore, this could error out in Classic where if it was not found in the event log, since it can't be, it would report a nil, throwing an error on mouseover. Database is cleaned up and prevented from occurring. This CAN technically happen in retail, but less likely for reasons I won't bore you with.

* BUG11: BOTH - Macro tool the recommendations to kick if player offline was accidentally set to a default of after 75 months, or in other words, 6 years and 3 months offline lol. If you had not already changed this the settings will be reset to their proper default recommendation of 12 months. This does not re-enable it if you have it disabled. It only changes the stored month interval.

* BUG12: BOTH - The ESCAPE key should once again properly work if you open the macro tool. It was not bringing up the game menu after loading the macro tool and it was messing up some things.

* BUG13: BOTH - Critical storage wasting bug. If you ever used /grm clearguild it created a 2nd index of the backups, wastefully. This now purges the double backups and removes the bug

* BUG14: BOTH - Ban reason count 14/0 on first focus when adding a ban. For some reason it was tallying maxLetters rather than maxBytes. It has to be set to maxBytes for sync purposes, rather than letters, as some alt-code type special characters or asian characters can take up 3 bytes (but count only as 1 character). 75 characters could be 225 bytes in theory, whilst 75 Bytes is 75 bytes.


**VERSION 8.2R1.70 DATE: September 5th, 2019**

*Minor update in regards to smoothing out some bugs for both Classic and retail*

**--------------**
**BUGS AND BUGS!**
**--------------**

* BUG1: CLASSIC - Promotions/Demotions that you make should now properly instantly trigger the change to the roster and report to the log

* BUG2: CLASSIC - Fixed an issue that could cause a Lua error when an invited player joins the guild.

* BUG3: CLASSIC - Fixed an issue that could prevent a Classic addon user from loading GRM properly due to a previously loaded incompatible build. Popup window will appear on logon requiring you to confirm the action and reload the UI to resolve the bug.

* BUG4: Default recommend to kick a player was accidentally set to only announce after 75 months lol. Oops! Shoulda been 12

* BUG5: Join dates detected live should now properly again be stored as verified information of that moment (promotion/demotions already does)

* BUG6: Fixed a bug that would cause a Lua error when adding an alt to a "main" where the alt had their bday set to "unknown" - the alt would still add, but it would error out and fill to reset the addAlt window. This is resolved now.

* BUG7: The Macro Tool button should now be properly sized, and the 2 buttons above the roster have had their font size increase a bit.


**VERSION 8.2R1.69 DATE: September 4th, 2019**

**CLASSIC COMPATIBILITY RELEASE**

*That's right! I went ahead and ported this to WoW Classic. This was not a small undertaking. GRM is deeply integrated into the guild interface and with BFA 8.0 release of Communities I decided to go all-in and intertwine the addon into the modern interface. I even abandoned some old data pull methods relying on the original roster and instead relied on the speedier "CommunitiesUtil" and "C_Club" API collection. This is not accessible in Classic. It meant reverting a great deal of work, and then adapting it to what I had built since BFA had launched.*

*As such, I have somewhat made the assumption that one day Blizz might release TBC Classic, and even WOTLK Classic some years down the road. So, rather than go through this process again, maybe 2 or 3 years from now, I have decided to take pre-emptive action and I basically rebuilt much of the addon with a bit more flexibility for handling these changes on the future down to not just expansion changes, but even individual "Builds" or patches. This should save me some future headaches. I also did this very a very important reason. Coding is time-consuming. This is a hobby of mine, at the end of the day. I still have my wife and kids, my career, my other distractions in life, and as such GRM remains basically my interest as I have time to put into it. This is just me making sure that my time doesn't get too buried into it as it continues to grow. By ensuring I have only 1 single code-base I have to deal with, rather than 1 for Classic, and 1 for Retail (and if more epxansions came out 1 for each of them), I instead get to deal with just 1 single code-base and my life is a heck of a lot easier. This may help explain why my release of Classic maybe took a bit more time and effort than usual.*

**Limitiations of Classic:**

* No in-game Calendar. This means no adding anniversaries and birthdays to the calendar. As such, I have temporarily disabled anniversary/bday announcements until I decide what I want to do... I am considering making at least a Classic unique "list" of upcoming anniversaries and bdays for leadership to reference. Until then it is disabled.

* No guild event log. It did not exist in Classic. This is that tiny log you can click that tells you the last 100 events in your guild, like who kicked a player, who invited a player and so on. Since this log does not exist, while GRM can detect that a player joined the guild or left it, the addon cannot determine who invited the person, or who promoted them. Sadly, you will have to rely on just knowing they were promoted. There is currently no server data that provides this information in Classic.

* More untrustworthy dates. Because the addon cannot know the exact date a person joined the guild. For example, let's say you are offline 3 days, you logon and find 10 new memebers. Before, in retail, GRM could look at the event log and pull the exact dates (as long as it was within the last 100 events). Well, in Classic there is no way to know when in the last 3 days it occurred. So, it just adds a timestamp of when you logged in. Those dates are flagged with 2 red exclamation points as "unverified" - This prevents unverified data from syncing to others. To verify all you need to do is right click the date on the player mouseover window, edit it or confirm it.

* Some limitiations on the speed information is accessible. With Communities, if someone joined the guild I could pull their full data and build a metadata profile of their character instantly. With Classic I have to wait for a callback from the server indicating the data has been refreshed. This can take up to 10 seconds when a player joins for it to trigger them in the guild. If you currently have the roster window open, it will update in less than a second, but in Classic, if the Guild Roster is closed, it won't do on-the-fly updates of roster info.

* Yay, most features still work just fine!


***Classic Specific Updates***

* CLASSIC1: GRM fully ported and working!!!

* CLASSIC2: Opening the Guild Info now auto-focuses the edit box, it also only closes the Guild Info frame when pressing ESCAPE key rather than closing the entire guild roster.

* CLASSIC3: Social Micro Button (since there is no guild/community button in Classic), I added a tooltip explanation and the ability to CTRL-CLICK that button to open guild window. CTRL-J also works, and added the keybind default to "J" to open guild roster (it was not set by default)

* CLASSIC4: Icon texture was unavailable for the minimap, so in classic a different texture is used. This also applies to the macro button icons.


***NEW FEATURES***

**Tagging and Flagging unverified dates (TY @Ayr on Discord)**

*Previously briefly touched on this in regards to Classic unverified dates. Yes, this works retroactively with your databases, as the information was already there.*

*Unverified dates exist because they were not able to be verified by using the guild event log. You NEED to have verified data to be "safe to sync." However, if the date is not discovered, or you are playing Classic, then it becomes untrustworthy data. These dates will now be obviously tagged with a “!!” red in front of the dates on both the player window and the audit, as well as a mouseover tooltip explanation on how to resolve them. These will automatically be removed if you sync with a guildie with verified data, or you Edit the data yourself and confirm it. What we don't want to happen is say a guildie has been offline for 3 months, logs in, tags a bunch of dates as the day he logged in, since no other dates were discoverable, and then sync that bad data over, ultimately overwriting accurate data because it is logged as newer. That would be bad. He still has a reference point date from when he logged on, but he won’t share that with you until data is verified.*


**--------------**
**QUALITY OF LIFE**
**--------------**

* QOL1: AFK notification system, or players going offline/coming online, is now wholly independent of the roster process, so even if you have it to never scan for changes except when you logon. You can still right-click the AFK/Offline status of the player on the mouseover window and set to be notified of their return. If the roster window is open it will now notify you within 1 second of the update. If it is closed the server will push the information out within 10 seconds, so it is much much more reliable and usable.


**--------------**
**BUGS AND BUGS!**
**--------------**

* BUG1: Fixed an issue with the recruitment window getting repeated hooks causing message spam on a ginvite and some additional guild check spam on the back end was unnecessary ( TY @Xulu on Discord)

* BUG2: Fixed an issue where sync was not working properly in all cases in regards to birthday information.

* BUG3: In the GRM Macro tool "safe" list the tooltip was not stating the time offline properly for "Kick" actions being ignored.

* BUG4: Officer note change message was not being reported instantly to the chat log when manually editing the officer note with GRM

* BUG5: Audit frames should now properly update LIVE as changes between players are sync'd. Some data was not updating visually on the fly.

* BUG6: /grm center should now properly center frames again, storing the positions between sessions. Useful if a player drags a frame off screen

* BUG7: Fixed an issue that could prevent some people from getting GRM to initialize on first login.


**VERSION 8.2R1.68 DATE: August 28th, 2019**

**--------------**
**BUGS AND BUGS!**
**--------------**

* BUG1: Fixed an issue in regards to people that used the original /groster - the "OnUpdate" handler of the new Tool's button was erroring out.

* BUG2: Ignore recommendations unless all in the alt grouping were inactive was not filtering properly. This is now updated.

* BUG3: Frames should now properly auto-update and repopulate the lists on changes to the roster, such as settings changes, or add/remove alts


**VERSION 8.2R1.67 DATE: August 26th, 2019**

*NOTE: This is NOT a compatibility update for Classic. I am planning on it. I have built a lot of backend infrastructure to help the process. But, I am pushing this out because I wanted to be done with it so I can focus on Classic!*

***NEW FEATURES***

**Macro Tool**

*This new Macro Tool is to assist players in being able to do things far more streamlined and easier since Blizz restricted addons from kicking/promoting/demoting players. So, what the addon now does is compiles a list of names based on a set of rules configured by some filters and then it auto-creates a large macro. It crams as many names as it can into that macro. It then binds that macro to a hot-key (so you don't have to keep it on the bars). Upon pressing the macro it activates all actions, clears the macro and rebuilds a new macro from the names in the que. In theory, you should be able to spam the macro rather rapidly to complete all macro'd actions, like /gremove playerName (and kick 10-15 names at a time, depending on their name length). It should be noted that as of now only the "Kick" recommendation rules are currently implemented.

![GRM Macro Tool](https://i.imgur.com/8OeTMwW.jpg)

* Auto-build and rebuild the macro as needed

* Ability to create a "Safe" ignore list of players you want to be immune to the recommended filters. For example, maybe you want to kick everyone offline > 6 months, but you don't want to kick a specific person ever. Or, maybe some gets deployed 9 months, etc...

* Ability to ignore recommended actions as long as at least 1 toon in an alt grouping is say, active.

* Ability to adjust the macro on the fly and remove names quickly with only temporarily removing them from the que. Rebuilding the macro will re-add the names

* Ability to manage the "Ignore List" easily from within the tool.

* New Checkbox on the mouseover window in the bottome left corner to set a person as ignore.

* /grm tool or kick or promote or demote will all bring up the new Macro Tool (or just click the new button on the roster window)

*I am about 3000+ lines of code into this new tool, and a bit more work to go. This is why this release took so long*

**--------------**
**BUGS AND BUGS!**
**--------------**

* BUG1: Fixed a bug that seemed to affect a few people when trying to sync whilst in combat. Unfortunately there seems to have been a slight change on the backend server where some info is restricted when in combat. This no longer error out.


**VERSION 8.2R1.66 DATE: July 23rd, 2019**

*Needed to rush this out due to a potential bug that could affect only new users, but not all. Sort of an edge case that would prvent some from loading the first time, though it would load properly on their 2nd attempt after relog or reload. Now is should configure properly for all.*

***NEW FEATURES***

*Custom Note Tags for auto added join dates (for join and rejoin)*

* Change the "Joined: XXXX" or "Rejoined: XXXX" date tags to your own custom ones! This is found in the Officer Options tab.

* Global control of these custom tags has also been included using the key "g6^"

* Example: "g6^Joined:^^Rejoined:^^" (though using your own custom tags)

* - You MUST include the "^^" to verify the stop. Max number of characters is 16 per tag.

* - "g6^Joined:^^" - No need to force both, you can force just the Joined.

* - "g6^^^Rejoined:^^" - You can also just force the Rejoined, and ignore the joined (notice there still is the double ^^, but the joined is empty, no text).

* - "g6^Capt'sLog:^^Re-Recruited:^^" - Pure custom, so if a player joins, or rejoins, they date auto added to the officer note will be like "Capt's Log: 23 Jul '19'"

**--------------**
**QUALITY OF LIFE**
**--------------**

* QoL1: Dutch compatibility has been built-in. While it is not yet localized into Dutch, it can now be selected as a language option as we patiently await the translation work (as of now roughly 900 lines to do all. So much work!)

* QoL2: Cleaned up a littl ebit of unnecessary processing in the background that could be optimized a little bit.

**--------------**
**BUGS AND BUGS!**
**--------------**

* BUG1: Fixed another bug that could cause new addon users or new alts to trigger on load - it goes away after a reload - this is sort of an edge case and won't affect everyone.


**VERSION 8.2R1.65 DATE: July 22nd, 2019**

*Minor bug fix - addon would not load for NEW alts or new users of the addon as the LoadSettings was triggering a check on the new channel destination which had not yet been configured to default as of yet. This is now resolved.*


**VERSION 8.2R1.64 DATE: July 22nd, 2019**

***NEW FEATURES***

*Nothing too major. Some large stuff in the pipeline, so this is a minor cleanup patch with a couple Quality of Life improvements, and some added customization.*

* New1: Players now have the ability to choose which channel to send GRM messages to, in the General Options -

* - If you wish, GRM will create the channel for you when you type in a custom name, and if it doesn't exist, it will prompt you for permission to create it.

* - If you end up removing the custom channel GRM will automatically report to the defauly general chat channel again.

* - This chat window setting will not be sync'd between alts and will be character specific.

**--------------**
**QUALITY OF LIFE**
**--------------**

* QoL1: Italian is fully translated once again! TY @Nihal6#8125 (Discord)

* QoL2: Someone had pointed out that when clicking some custom values, the editbox disappears, though you can still type. This has been around forever and I decided a long time ago I was only ever going to fix it if someone reported it lol. Well, the time has finally come!!! So now, they are properly displaying :D

**--------------**
**BUGS AND BUGS!**
**--------------**

* Bug1: Fixed an issue that caused a Lua error on trying to export the player join dates to the designated note location if they were not there.

* Bug2: When manually clearing a range of lines from the log, the addon will now properly tell you the number of lines cleared, not falsely report only 1 line was cleared.

* Bug3: The font should now properly resize and change on the main log, the audit window, the backup window, and the Advanced Join Date Audit tool - before it would only refresh the size settings on a reload. It should now happen instantly on changing the setting.

* Bug4: There's actually a couple of other bugs I resolved and now, for the life of me, I don't even remember exactly what they were because I was too lazy to document it that night lol.


**VERSION 8.2R1.63 DATE: July 12th, 2019**

**--------------**
**QUALITY OF LIFE**
**--------------**

* QOL1: Audit Window has been rebuilt and now scrolls as a hybridscroll frame

* - In addition, birthdays have been added to the audit window, as well as the ability to set birthdays as "unknown" if you prefer, both in the audit and the player mouseover window.

* - It should be noted that in the GRM Options > UI tab, you can completely disable the birthday info if you choose not to track it in your guild, and the audit window will show that info as disabled and be considered "complete"

* QOL2: GRM window should now properly save its position. This is due to some changes in 8.2 that essentially made "SetUserPlaced" where Warcraft automatically stored the position you dragged the window between sessions. Now, I have to manually store the points as saved data and load it.

* QOL3: Fixed a couple misc. typos I noticed.

**--------------**
**BUGS AND BUGS!**
**--------------**

* BUG1: Fixed and issue with the built-in backup/restore not working properly as it was not loading the guild names properly to match to the database.

* BUG2: Tooltip should no longer permanently resize in some cases, like when opening the audit log.

* BUG3: Fixed a self-resolving sync bug, so that it doesn't happen at all.

* BUG4: Fixed an issue on removing a range of log entries where it would not remove index position 1

* BUG5: Title of the events was wrapping the text and messing allignment in some cases. Fixed

* BUG6: The Communities window will now properly open when in combat when using the MicroToolbarButton, not the hotkey.

* BUG7: Advanced Join Date Audit tool should now always stay properly anchored in place.


**VERSION 8.2R1.62 DATE: June 28th, 2019**

*Further smoothing out the 8.2 transition*

**VERSION 8.2R1.61 DATE: June 26th, 2019**

*Fixed an issue that some people were having with the 1.60 update*

**VERSION 8.2R1.60 DATE: June 26th, 2019**

*UPDATED FOR 8.2 COMPATIBILITY!!! Sorry for the delay. Forgot 8.2 was around the corner.*

**--------------**
**QUALITY OF LIFE**
**--------------**

* QoL1: Cleaned up the in-game backups a bit... they were just too bloated to offer 4 points with 2 auto. The amount of memory being used on just backups was huge, especially since it has limited usability and is not really a true file backup, just a restore point for your guild.

* QoL2: Backups have been cleaned up and are now a hybrid scrollframe

* QoL3: The positioning of the text has been shifted down ever so slightly on the old /guildroster to enable mouseover buttons

*Note - there are a few things I am working on that I did not have time to get to as getting 8.2 compatibility out there was priority, but I know the tooltip scaling is an issue when opening the audit window, and I actually am rectifying this, but don't expect me to have that til probably this weekend as I am rebuilding the Audi window differently and it is a bit of work. This issue does not resolve the problem @Nightdragon#2207 is facing either, which has proven to be far more complex of an issue than I initially realized. This is an issue that won't affect most people, but with his 17 guilds, 1000 members each, and 30,000+ log lines on each of the guilds, it is a massive amount of data and kind of an extreme edge case I am trying to resolve as Lua is reaching some internal limits on how the saved data is stored and how Blizz reimports it (funn enough, Lua 5.2 resolves this automatically, but it is not what Blizz uses, so I kind of have to come up with a "hacky" solution. Eventually...*


**VERSION 8.1.5R1.59 DATE: June 19th, 2019**

**--------------**
**QUALITY OF LIFE**
**--------------**

* QoL1: Italian translation is once again nearly 100% completed, I just added a few extra lines, but it is amazing how much work is done here. Thank you again @Nihal6#8125 (discord) for all your hard work on this Italian transaltion!

* QoL2: Cleaned up the tooltips and blocked actions for more obvious controls on global settings for the join date formatting and adding.

* QoL3: Changing the guildInfo g5^ global settings should now inform you without needing to reload.

* QoL4: Player can disable the GRM mouseover window on the old roster with a checkbox. I will likely include the same feature for the community frame soon, but for now the old roster mouseover can be disabled.

![Mouseover Frame Can Be enabled or disabled on old roster](https://i.imgur.com/NtmKkao.jpg)

**--------------**
**BUGS AND BUGS!**
**--------------**

* BUG1: Players should now be able to load the addon without issue. Before it was errneously creating a macro but would crash out if at 18 cap on personal.

* BUG2: The CTRL-CLICK on the event log and the audit window should now properly bring up the player window or the search

* BUG3: Some other misc. things I won't bother reporting since I am out of time and trying to get this update out before I am busy the remainder of the day lol

* GRM keybind Macro will now be properly placed in the general, not the character specific


**VERSION 8.1.5R1.58 DATE: June 17th, 2019**

**--------------**
**QUALITY OF LIFE**
**--------------**

* QoL1: Player Roster mouseover window now works again on the old Roster accessible with /guildroster or /groster

* QoL2: I have implemented an automatic hot-key macro to access the old roster. Just hit **CTRL-J** on your keyboard to bring it up. Of note, that "J" corresponds to the hotkey to bring up the communities interface, so if you have it set to a different key it will be "CTRL-YOURKEY"

* QoL3: The interface button to click on the bottom right of the default interface to bring up the community frame, you can now hold the CTRL key when clicking it to bring up the old guild roster interface instead.

* QoL4: The new BFA tooltip on the communities roster is now visible on the old guild roster as well.

**--------------**
**BUGS AND BUGS!**
**--------------**

* BUG1: Fixed a bug in relation to loading the guild recuitment addon frames .


**VERSION 8.1.5R1.57 DATE: June 14th, 2019**

*Nothing really **new**, just a cleanup of the previous release with a few QoL improvements. Of note, the main audit window is going to be revamped next, but I wanted to get this release out for the bugs*

**--------------**
**QUALITY OF LIFE**
**--------------**

* QoL1: Improved Scrolling controls on both the core log as well as the advanced Join date audit tool

* - Holding CTRL while scrolling = 3x speed

* - Holding CTRL-SHFT while scrolling = 12x speed (this is the core new thing, but many didn't seem to know you can do the others)

* - Holding SHFT will jump you instantly to top or bottom

* QoL2: Tooltip added to the core log over them, rather than wrapping the lines, you now have a tooltip to show the whole thing. **This tooltip can be disabled by using the log tools button on bottom left of log.**

* QoL3: Click to drag anywhere is now less janky on the advanced Join Date audit tool, the event tab, and the banned tab

* QoL4: You need to CTRL-Click the users names on the main audit window now, rather than click. I found myself accidentally opening the player windows when trying to drag the window. No more!


**--------------**
**BUGS AND BUGS!**
**--------------**

* BUG1: Log search should work properly again!

* BUG2: Main log should now scroll properly in all cases, as well as maintain proper sorting and positioning whilst filtering.

* BUG3: Lua error resolved when trying to mousewheel scroll on the Join Date audit tool and the main log's windows when they did not have a full page of items to display.

* BUG4: Main log should no longer go crazy and rebuild copies of all fontstrings if you change the language or font size in the options.

* BUG5: New Changes/Old Log brackets when logging in to changes should be consistent now.

* BUG6: The Log tool to clear lines within a selected range is once again working properly, and even more clean in its implementation, I might add.

* BUG7: Fixed a Lua error where the scan for changes was not working properly on new players - this was reported by many people on discord.

* BUG8: Addon should no longer merge 2 join dates erroneously to designated note. Oops!

* BUG9: Namechange should properly state their former name now, not their class. Another Oops!

* BUG10: Fixed a bug where string name coloring was not properly getting removed on the calendar adds for bdays or anniversaries. This also caused some calendar checks to thinkn it had not been added.

* BUG11: Recruitment window should now trigger their frames properly


**VERSION 8.1.5R1.56 DATE: June 7th, 2019**

*Long time between patches. Lots involved with this one behind the scenes. RL was a bit busy as well. Enjoy!*

***NEW FEATURES***

**Advanced Join Date Audit Tool**

![JD Audit Tool](https://i.imgur.com/nn1ZyXN.jpg)

**Note:** This particular feature developed somewhat spontaneously and was not entirely planned. I had noticed some issues due to incorrect date reporting to the player notes with the auto-tagging, and the resulting sync info being inconsistent. Let me give you an example. If a player joins the guild while you are not online, the event is logged server side in the Blizzard built-in guild event log. This log only contains the last 100 events. Well, in a large guild the log reach > 100 events in less than a day. Thus, the addon has no idea the **REAL** date the player say, joined the guild. As such, the way the addon compensates for this is it sets the join date as the day you logged on. However, on the back end, the addon does not store that date for sync purposes because it is what I would call untrustworthy sync data. What can happen is maybe you had another officer that did get the accurate information and they were logged on and determined the true join date, and thus when you next sync with them, you sync the proper date. However, previously, the addon was still adding the join date to the default not location you had chosen (typically officer). Thus, if the player who has the accurate sync information logged the event, but did not have the setting enabled to add the join date note, but you did, you now added the incorrect date to the note, whilst you ended up syncing the proper date. You now have mismatched dates, often by only a single day.

The goal of this tool was to be able to easily guild-wide rectify this. However, I built it in a way to go over it more carefully, with the ability to modify a single player, multiple players with the Shift-key selection, or the entire guild. I ended up adding some additional features as well that can be useful tools for people that wish to import their join dates from the notes as well. Of note, THIS WAS NOT SIMPLE work. Just this tool was > 2000 lines of code, not that the number really matters, just as a representation of the effort put into such a niche tool makes little sense beyond my own amusement. Believe me, building in parsing compatibility for 18 different note formats was a bit of a pain, but really, I tried to build this with the easiest and simplest user experience that could be had. I also got distracted and used this as my template to build my first custom hybrid scroll frame. You'll notice how smooth it is in scrolling

**JD AUDIT TOOL FEATURES**

* Automatically mass fix GRM save dates by using parsed notes. It will fully scan the public, officer, and custom notes and you have the option to either import those dates to GRM, or the other way around, export the GRM saved dates and fix the notes.

* This maintenance on the join dates can be done guild wide or it can be done with a custom selection of names. Just click the names you wish to modify and it will highlight them. Shift-click to select all names between 2. I recommend being careful with this and doing a sample selection first before feeling more comfortable with the tool.

* Cleanup all notes so that the join date is ONLY in the default settings location. This tool will inform you not only about date mismatches, but if you have the join date listed in multiple notes and it will give you the ability to purge the date from the other notes automatically whilst setting/keeping the join date only in the proper default note location

* Ability to mass export all the join dates to the default note as well.

* Ability to import all join dates from the note into GRM. This supports 18 different note formats (including all 15 optional formats in GRM), as well as the Joined or Rejoined headers.

* Be aware, to save on the complexity of the addon and the bloat, this will only successfully parse the dates if they are listed at the beginning of a note. Exameple "Joined: 05 Aug '18" or "05 Aug '18" will be detected, but "John's friend - "05 Aug '18" will not be parsed properly. While this one example is easy to support, the fact that I decided to build parsing support for, so far, 18 different date formats was a lot of tedious work and to then scan for the start point has so much variability to all of them that I decided to save myself the hassle and just make it so the addon will only detect dates if at beginning of note. This can easily be modified by juse changing the position of your note.

* If there is a date format you wish me to include support for I am willing to consider it. I have considered possibly supporting "custom" headers, like "Joined" or "Rejoined" and "CustomTag" but I did not build that yet.

* Tooltip helpers are added for this tool to help you find entries in the log, bring up their player window and so on.

* The link to it is found on on the audit page, at the bottom of the join date column.

*Final Note on the Advanced JD Audit Tool - Use with caution. It mass modifies player notes. That cannot be undone since they store server side.*

**--------------**
**QUALITY OF LIFE**
**--------------**

* QOL1: HYBRID SCROLL FRAMES!!! As a lot of people know, this is the superior way to truly do scroll frames. I suppose I never had imagined scrolling frames getting so absurdly large, not thinking long term, but when
@Xulu#1278 (discord) got on my case about them and when @Nightdragon#2207 (discord) mentioned how he has like 30,000 logged event entries in a single guild, of a 17 guild community, and with Xulu expressing his passion for it I finally relented. I basically didn't want to bother with it for various reasons, but one is I wanted to build a template system to make it more reusable. I ended up doing just that with the new JD Audit tool and I was able to reuse the template, for the most part, for the core log. This is not entirely true as the core log is a bit more complex due to the variety of different string heigts due to wrapping and multi-lines so I had to modify it slightly.

* QOL2: MORE SLASH COMMANDS! They are now expanded to support all GRM window tabs. Example */grm users* or */grm events* or /grm options (or opt) are all supported and will bring them up with a simple slash command. If it sounds right, it probably works. Please feel free to recommend additional slash commands. They are quite simple to implement and I am a believer of the command line.

* QoL3: Addon no longer auto-adds join dates if it is not found in the event log, to improve accuracy.

* QoL4: The addon will now attempt to add the join date to the note properly, if enabled, even if something is already there. Before it just ignored adding the note. Now, it will ensure it's not already there, then merge the existing note with the date, and if it fits, it will join them and add it.

* QoL5: NEW GLOBAL SETTING! Players can now add a +/- sign to the end of g5^X to force global use of the "Joined:" and "Rejoined:" headers. Example "g5^1+" means that the default join date will be added to the officer note like "Joined: 06 Jun '19" or "g5^1-" will just be "06 Jun '19" - forcing consistency among all officers.

* QoL6: Lots of code cleanup on the backend in some places I hadn't touched since the first days of coding lol.

* QoL7: GRM Core window is now draggable no matter where you click, on all tabs (it didn't work on the log and the audit window, you had to click near top bar previously)

* QoL8: A more clear notification is given if the player's own rank changes, thus triggering a sync check, if permissions open up to sync with someone else new data. The triggered sync should only occur when the addon user's own rank has moved up. The addon will inform you *why* it is triggering this. Before it just did it.

* QoL9: The "(main)" on the side alt grouping details window is now properly *below* the main, not above, keeping position consistent with the alt listings.

* QoL10: Player should no longer erroneously get "(NG)" tag on the "(player) has logged in" system message in chat after shortly logging in. This would occur due to the GRM database not being fully loaded yet, but the System message listener already being initialized. Now it waits to modify the incoming system messages in the chat window with the tags until GRM is fully loaded and ready in the background.

* QoL11: The FrameStrate of the core GRM frame is now set to MEDIUM, to reflect most frames in WOW so you can click other flames and have them come to the front without it permanently being set on top.

**--------------**
**BUGS AND BUGS!**
**--------------**

* BUG1: Fixed an issue that seems to affect a small % of the community on previous large update preventing them from fully updating properly.

* BUG2: Fixed an issue with tooltip scaling carrying over to non-addon tooltips. If GRM didn't auto-show on logon, and you selected the roster, typed /GRM the tooltip size would shrink small. Fixed!

* BUG3: Fixed an issue that could cause sync to fail (line 2313 error a few had reported).

* BUG4: Fixed an issue that could cause some reporting to never occor to the log in regars to a player rejoining the guild

* BUG5: Fixed an issue where class coloring was not being implemented properly on the promotion announcement entries of someone who just joined the guild and were promoted since before your last login.

* BUG6: Fixed some other minor misc. bugs, both cosmetic and on the back end I won't bore evryone with as they were likely not too noticeable.

* BUG7: Fixed an issue that could cause a clubID error if it never loaded properly when someone joins the guild.

* BUG8: Fixed an issue where leap year dates on non-leap years (Feb 29th) would be instead listed at Feb 1st, when they should have been listed at March 1st.


**VERSION 8.1.5R1.55 DATE: April 19th, 2019**

**--------------**
**QUALITY OF LIFE**
**--------------**

* QoL1: Added player tooltip mouseover compatibility for any other addons that utilize the guild community frame player tooltip (like Raider.io) - universal compatibility for all.

* QoL2: /grm audit and /grm ban slashcommands that bring up their respective windows is now available.

**--------------**
**BUGS AND BUGS!**
**--------------**

* BUG1: Fixed an issue where some people's database might not load properly initially.

* BUG2: Fixed an issue that could cause some sync data to be lost or never sent

* BUG3: Misc. tweaks here and there...


**VERSION 8.1.5R1.54 DATE: April 18th, 2019**

*Minor patch update that could prevent some player's addon from loading the database properly and updating. This would only affect few people, but needed to be addressed as I didn't see the error until a report*


**VERSION 8.1.5R1.53 DATE: April 17th, 2019**

*Minor efficiency update on the database that seemed to stall on some people's PCs. Should complete a little less resource intensive now*


**VERSION 8.1.5R1.52 DATE: April 17th, 2019**

* QoL1: Adding some infrastructur for adding in custom easter eggs I wish to add

* BUG1: Fixed an issue that could cause sync to error out if at the tail end of a sync when triggered again

* BUG2: Some misc. issues with the new sync process have been corrected

* BUG3: Fixed an issue that led to some repeated join date spreading, and also cleaned up the repeats.


**VERSION 8.1.5R1.51 DATE: April 12th, 2019**

* Fixed 2 misc. bugs related to previous patch that were quickly reported :D

**VERSION 8.1.5R1.50 DATE: April 12th, 2019**

*NOTE: One of the reasons I was hesitant to go down the rabbit hole that was this patch is I just knew it was going to take a lot of effort to put out, so I avoided focusing on some things to focus on others. It was something I had always wanted to revisit, and while the updates are not fully 100% implemented in all aspects, and while there is some work still to do, we are at a significantly improved position. The delay with this patch is because I got lured into finally getting it over with, got seduced by how much easier the implementation seemed at first, then once I was past the point of no return found about 50 tentacles of the code all over the pladce that I had to deal with to get it working consistently and flawlessly.*

***NEW FEATURES***

***SYNC SYSTEM OVERHAUL***

* Sync system has been significantly updated and in some places, completely rewritten. The entire pre-check algorithm has been rebuilt and some of the sharing methods are far more efficient now. This will become obvious very quickly. Thanks @Xulu#1278 for some suggestions here.

* Theoretically, this rewrite should be the final nail in the coffin to the occasional disconnect bug that has plagued some people inconsistently.

* The addon will now report *what* information was sync'd. I think I will expand this further, but it is better than "x items updated"

* The addon now states if a sync is even necessary or not and no longer syncs without it being necessary. Be aware, while it may state "No Updates" on your end, the person you sync'd with received some info from you, or else no sync would have occurred.

* Of note, if alt data needs to be shared, while still significantly improved, this is a bit more tedious an implementation and you may find that the other areas that sync ligning fast, in a matter of 2 or 3 seconds, maye find the alt system taking just a tiny bit longer. This will be rectified further probably in the next update.

**--------------**
**QUALITY OF LIFE**
**--------------**

* QoL1: "g1^" global setting is returning in modified form! Use it to control which timestamp format is universally used in the guild. Add "g1^1" to the guildInfo, anywhere, to force all players. Example g1^1 = default. or g1^15 = the last selection in the timestamp format dropdown window.

* QoL2: Sort the ban list by clicking on the headers

* QoL3: Sort the alt details window (the shift-click alt window) by clicking the column headers as well

* QoL4: Addon settings are now stored automatically and sync'd after every manually change of the settings rather than only on closing the window, which could create problems if you modify settings and logoff without closing GRM window which used to be the trigger.

* QoL5: The Add Ban window no longer auto-hides if you swap windows to look at say, the Log.

* QoL6: The ban list should now re-check the GUID returns more consistently when looking at it to determine if the player has left the server

* QoL7: Patch code is in the process of being re-written, with initial foundation set and this major patch implementing the new tools. This is to prevent the code-bloat occurring on the patches now that many fixes have come and gone.

* QoL8: Rebuilt some aspects of the database to be more consistently alligned between the 2 clients.

**--------------**
**BUGS AND BUGS!**
**--------------**

*Note - Many many bug fixes, so I will just report them in no particular of what was a bigger issue.

* Bug1: Fixed an issue that seems to have popped up in 8.1.5 in relation to some calendar bug reporting on some addons.

* Bug2: Fixed an issue that allowed players using special characters to type more than the 75 character limit in the ban note.

* Bug3: Fixed an issue with the ban reasons that allowed player to overshoot the char count limit and slimmed the reasons that did.

* Bug4: Fixed an issue where a returning player's join/promo dates could overwrite other's in a sync, which is not noticeable for players that login frequently, but let's say a player takes 6 months off the game, comes back, another guildie has rejoined since then. This could occur for people who had not logged on in a very long time with GRM outdated data.

* Bug5: Birthdates should now properly sync in all cases. Found an issue here that could prevent it from occurring. This includes when you remove a birthdate, for conformity.

* Bug6: Cleans up error related to mass copying of birthdate across the guild. This cleans that error up.

* Bug7: New toons and alts of yours that join the guild should no longer write-over addon options settings with defaults and should properly sync to the already existing settings now.

* Bug8: Fixed an issue where sync would re-trigger 1 more time than as necessary on a new build.

* Bug9: Fixed major issue with syncing alts properly that was also not obvious but could end up in some alts taking multiple syncs to get tagged properly rather than on first time.

* Bug10: Fixed an isse that could occur with players returning to the guild that possibly could cause the addon to crash due to a previous bug when they left so it never recorded the date they left. The addon cannot recover that info, but it will now at least say "Date Left: Unknown" in its place, when before it would Lua error out and crash. This may have gone unnoticed as it would not break the addon completely so you'd only see it with Lua error reporting tools.

* Bug11: Fixed an issue that could prevent custom notes from sync properly on the first attempt, thus often in a subsquent sync you will see it say it was updated, but it didn't happen initially. It should now be consistent.

* Bug12: Fixed a major database flaw that could be restored using old old backups. Surprised this one was never found but I found it as I was creating some integrity tests of the database. It would only potentially affect you if you had a very old back as my update forgot to account for the backup data.

* Bug13: Fixed an issue if clicking the minimap early and it has not initialized the database fully yet.

* Bug14: Made it so the addon sync process would not trigger until the exact moment the database updates have been fully processes and the players that left and joining players have all been analyzed and updated. This is only necessary for mega guilds that kick hundreds at a time.

* Bug15: Fixed double copying of dates to the custom note that could occur if multiple officers online at same time

* Bug16: Fixed several other misc. Lua errors that I don't think are necessary to report here.


**VERSION 8.1.5R1.45 DATE: March 16th, 2019**

*A felt a bit off my groove for a couple of weeks. Things feel a bit better now. This focused almost solely on the reported issues when I was gone, as well as some other misc. things that came as a result of those distractions.*


**--------------**
**QUALITY OF LIFE**
**--------------**

* QoL1: Italian localization is back to 100%!!! Thank you @Nihal6#8125

* QoL2: Guild namechange log entry now properly is timestamped in the log

* QoL3: Tooltips for alts should no longer show whilst moused over the date selection dropdown menus.


**--------------**
**BUGS AND BUGS!**
**--------------**

* BUG1: Fixed a bug that could occur if still processing people that are no longer in the guild whilst sync triggers

* BUG2: Fixed an issue that could cause bans to not sync properly due to a nil value that should have been an empty string. Source eliminated, cleanup fixed. This bug likely affected a lot of people that utilized the ban list frequently

* BUG3: Fixed a slight UI bug when syncing some live join date changes.

* BUG4: Fixed some issues with regards to alt lists having doubles do to some super weird edge case circumstance that was kind of fun to diagnose and solve

* BUG5: Fixed an issue that resolves a copy bug when a player server transfers and the server shows a temporary double copy of them on occasion. Seems rare, but reported 2 times now happening.

* BUG6: Added potential fix during the sync process where when it starts syncing ban list (maybe half way through the process), a player may disconnect due to breaking throttling limits. If this doesn't resolve it then it is some other part of sync process causing it and I will need to hands on it with people.


**VERSION 8.1.0R1.44 DATE: February 22nd, 2019**

*BUG1: The log is NOW properly fixed... I had everything working but commented out the fix for just this one issue. Oops!


**VERSION 8.1.0R1.43 DATE: February 22nd, 2019**

***NOTE*** *Pending Features not quite yet ready* - I wanted to mention them as there has been a lot of discussion in discord on them, but the note searching and the mass-kick macro tool are being worked on they just weren't quite ready for release and I think I need to get this out asap.

**--------------**
**QUALITY OF LIFE**
**--------------**

*Even MORE Ban feature improvements!*

* QOL1: Adding a ban, name autocomplete. As you type, a selection of name matches will now be given as suggested selections. They will pool both the current and former guildies names together for selection. Just start typing to match!

* QoL2: Added a word count as you type in the "Reason for the ban" portion, so you know how many characters you have to use.

* QOL3: The addon will now tell you when adding someone to the ban list if it is still possible to pull their data from the server, otherwise they will be flagged with "Unable to identify."

* QOL4: "Unable to Identify" flags added to ban roster for players who may no longer be on the server. This will allow you to cleanup your ban lists a little.

* QOL5: The addon will now collect any missing GUID data tags from players that left the guild pre-8.0, before data was readily available. I have a somewhat tricky way I collect GUIDs from players who are offline. This also helps me determine if the player still exists.

* QOL6: If adding a ban of a player who left the guild before GRM was installed, or maybe was never even in the guild, it will collect their metadata as much as possible from the server and build a profile behind the scenes. The ban system will also auto-correct any mistakes you make, such as class selection, when creating the ban.

* QOL7: The addon will now tell you when adding someone to the ban list if it is still possible to pull their data from the server

* QOL8: Lots of behind the scenes details. Hard to explain, but the process is better.


**--------------**
**BUGS AND BUGS!**
**--------------**

* BUG1: Fixed a major issue that could cause search to not work due to finding nil values in the log. This was a HUGE potential bug that is now quashed and cleaned up. Hard to understate this.

* BUG2: Search should now work properly in all instances when using apostrophes in the search box.

* BUG3: Fixed an error that could occur when a player rejoined, it was trying to report a nil line. You may have noticed the lack of reporting of rejoins the last 2 weeks.

* BUG4: Sync throttle was modified slightly to alleviate growing concerns about disconnects that seem to have recently popped up after long being quashed. I confirmed the bulk sync feature was nerf'd by Blizz as well in that short time window. This caused me to have to make some slight changes and possibly had some ripple effects. We'll see how it goes but I suspect things will be better now.

* BUG5: The alt details window should now properly reset to the top of the list when showing when clicking on each player's alt lists from the Calendar invite lists.

* BUG6: Minor visual bug on the word count cap to send messages to players that join guild as well as the backspace not registering count changes on guild recruitment custom message character count.

* BUG7: Fixed an issue where the ban list drop-down selection of classes would not re-localize when changing languages.

* BUG8: Noticed a small edge case that could cause a player to be left on friends list evne on cleanup when it was supposed to be a quick add > scan > remove only.


**VERSION 8.1.0R1.42 DATE: February 6th, 2019**

***NOTE*** *Nothing too new here, just some minor bug fixes for some minor inconveniences as I work on a few other major things in the background. Wanted to at least get this out there!*

**--------------**
**QUALITY OF LIFE**
**--------------**

* QOL1: French translation fully updated - TY @Enkh and Italian is like 99% complete. TY @Nihal6

* QOL2: The extra alt details window that can popout on the side with a shift-click will no longer go off screen if your game resolution is not wide enough, or scale is high. It will no overlap on the left. This is a rough stop-gap as I am actually building a new "snapping" and draggable window interface that will make it easier to place the frames around the window. We'll see what happens, but now this is a useful feature for those whose frame went off screen

* QOL3: The tooltip of the community/guild frame should no longer trigger through other frames and will now only show if there are no other windows on top of it.

* QOL4: When closing the side window to select how you want to sync all join dates, it no longer closes ALL windows, forcing you to reopen mouseover frame.

* QOL5: Noticed the Rejoins and rejoin bans were reporting in the log on separate log entry lines. This is now all on one line properly, which makes more sense. This only affects new log entries, not retroactive ones, for now.

* QOL6: Fixed some of the coloring as well to be more consistent with what they are doing.

* QOL7: Custom notes as "additional notes" now show properly without being a jumped mess of words when a player rejoins the guild.

**--------------**
**BUGS AND BUGS!**
**--------------**

* BUG1: Promotion/demotion changes were not always reporting to the log properly if the player hadn't logged on since you last checked.This was a simple modification I did last update I forgot to remove.

* BUG2: Promotion date was still saying "Unknown" in cases where it should not have been on player mouseover. This has been automatically corrected.

* BUG3: Inactive Returns were previously not being removed from the guild when filtered to just them, and using line number X through Y selection removal tool. This is now fixed.

* BUG4: Disabling or Enabling the reporting of when a player levels, to the log, is now working properly.

* BUG5: The timestamp formatting for Promotion/demotion log entries should now properly match the selected format of your choosing.

* BUG6: Fixed a bug where it would report a player's guild anniversary as "0 years" away on the same day they joined the guild. oops :D

* BUG7: Fixed a Lua error that could occur when a player first joins a guild whilst they had GRM installed and had just left a previous guild.

* BUG8: Fixed Lua error that could occur when setting a player's birthdate and syncing the info live to another currently online player. The data sync'd but the name didn't carry over properly for log msg in some cases.

* BUG9: Fixed an error where if you changed the birthdate of the player by adding them to an alt grouping, which auto-changed the bday to the "main," and it was not removing the old event date from the add to calendar window automatically like it should have


**VERSION 8.1.0R1.41 DATE: January 28th, 2019**

**NOTE!*** *Going down the list. It's funny... it always seems like I am taking 2 steps forward and 1 back in thbe progress. I am continually moving forward, but there's always something to distract me. The good thing is the side distractions, requests, bug fixes are all taking us step by step to a better addon.*

***NEW FEATURES***

* The player can now auto-focus the search box everytime the Log is opened, if they so choose. This is turned OFF by default. It skips the first time if set to load on logon.

* French Translation is complete (aside from my 1.41 updates which he did not have access to yet)! Thank @Enkh!!! Seriously, so much work

**--------------**
**QUALITY OF LIFE**
**--------------**

* QOL1: Due to some challenges in building metadata profiles of people who have left the guild, in the back and forth callbacks, delays in receiving info, a ban list could take 2 syncs. One, to sync most data, but if bans existed of players not in the guild, the other person who maybe was not in the guild when those profiles existed needs to create metadata profiles for them. this requires additional talk, and considering the delay, this could interrupt sync protocols. As such, after building the metadata profiles a subsequent sync would need to be done to complete the build for all ban list data to update. Now, the addon will determine the number of metadata profiles created of previous guildies, build them, then re-trigger a call, if necessary, for info, all automatically.

* QOL2: Italian translation has been updated and is current again (aside from 1.41 updates no one had yet). Ty @Nihal6

* QOL3: Noticed some inconsistencies in the Ban log reporting messages from sync vs live which should now use the same messages on both sides of the addon to addon comms.

* QOL4: The ban list log entries moving forward will now properly report on a single line. Previously they had the Ban info and the Reason as separate entries into the log. This is fixed now.

* QOL5: If a player is no longer in the guild, they are removed from any upcoming events que.

* QOL6: Alt details now sorts by default the time since Last Online, rather than alphabetically (with main still at the top) -- interestingly, I wrote some code here to sort levels and ranks, but I didn't have time to build front end interface. I need ot think of how I want to implement it in a nice QoL way. Until then, default sorting by last online now!

* QOL7: Extra alt Details frame now closes alone with the ESC key rather than both windows.

* QOL8: The addon now states who the player's Main was when they are removed or leave the guild - this is only half-implemented. It seems I am not fully tracking alt/main data as good as I should once they leave the guild when I should store a snapshot of it at the time they are kicked or leave. Instead it is an unreliable tool. I will need to build the tools for this to expand on the feature. Until then, you have this small thing.

**--------------**
**BUGS AND BUGS!**
**--------------**

* BUG1: Fixed a major bug with the sync system not functioning properly and causing a lua error on some received data. The root cause was squashed and was actually quite a bit more complicated than I anticipated. This is the bug most were getting. The rabbit hole was deep lol

* BUG2: All words should properly localize now when swapping languages on the new Level Options changes.

* BUG3: Fixed a minor bug with the ban list sync system that might occur in certain circumstances. The root cause of this was also found and squashed.

* BUG4: Fixed Lua error that could occur if hitting enter on the Level filter entry when no level is selected.

**VERSION 8.1.0R1.40 DATE: January 21st, 2019**

*Small typo fix on something was meant to be deleted*

**VERSION 8.1.0R1.39 DATE: January 21st, 2019** (Happy MLK Day to the USA users!)

***NOTE!*** - *I am currently in the process of just going down my to-do list, knocking out many things that were on the back burner. I am also trying to implement simple requests as they come as well as some bug fixing as priority as they come as well. As the addon grows, the complexity grows as well in adding features because there's just more and more tentacles to consider. For example, this update I managed to include the implementation of "who" banned a player, but this required a significant amount of work as the sync algorithm for the ban system, to maximize efficiency in packing in those 255 character size comm messages, as well as obeying throttle rules, is rather complex, and then to throw in a new piece of info into the mix, to carry over through several different channels not only required me to modify it slightly, I had to then add new parsing mechanisms on the other end because previously it assumed it was the end of the string, now I had to rewrite it to see this as the end of it. I had to expand array sizes, I had to build an entire front end feature to consider this. My point is that it seems "simple" for some features, like adding something as simple as the name of the player that originally set the ban on another, which in retrospect I probably should have originally included, but it took me a solid dozen hours+ of coding work just for this one simple feature, and testing to make sure it was solid. The good thing is this patch, since I dove into the ban system, sad that Blizzard didn't implement their own banning system in 8.1, I basically went all out in it too with some long overdue work on it. As a hobby project this is fun, but I do only have so many free hours in the day. I just figured I would let you guys know why maybe some things seem so simple but they actually take me a bit of time*

***NEW FEATURES***

* FEATURE1: The person who first added the ban will now be noted on mouseover of each of the bans. This cannot be retroactive, so it will say "unknown" for all existing bans. If you EDIT the ban and save it, your name will overwrite the person that set the ban as the most recent person to modify it is the one that is important.

* FEATURE2: More refined level filter options! Ability to set it to set milestones, and you can refine to which expansion cap milestones only if you want. Of note, if you have it set to announce when they hit say, 60, and you login and they went from 55 to 65, it will say in the log that they hit their 60 milestone, and are now currently at 65. It will only announce their highest milestone.

**--------------**
**QUALITY OF LIFE**
**--------------**

* QOL1: Player can now choose to set the log to only report an inactive return if ALL alts in that grouping are inactive. If at least one is active it won't report.

* QOL2: Rewrote the scannign algorithm to be about 95% more efficient. Yes, that is correct. Some major improvements as I hadn't revisited it in quite some time and it got me rethinking some efficiency angles and doing unnecessary work if they hadn't logged on since last check.

* QOL3: If there are currently people banned that are still in the guild, the guild tab will show a count as well as a tooltip warning to give you a heads up, in case you missed the log entry.

* QOL4: On the General Options - tooltip scale will actually adjust in size with the slider now so you can easily see.

* QOL5: Removing a ban from a player the text should now properly be class color coded of the player's names.

* QOL6: More obvious steps in adding or editing a ban

**--------------**
**BUGS AND BUGS!**
**--------------**

* BUG1: BAN LIST should now properly sync in all cases!

* BUG1: One caveat, in some edge cases it might take 2 syncs to build it all because if it is a new guildie using GRM, they have to create metadata profiles from scratch for players they may have never encountered and are no longer in the guild, so what happens is they first create a blank profile, then they tell the person sending the ban information that they do not have a profile of the player yet so the player then forwards the known metadata on to build the profile properly and THEN and only then can a proper ban be established. The problem is these back and forth comms are not instant, and for me to avoid things like latency bugs, almost like a TCP protocol where you wait for a callback, rather than UDP, then it takes some seconds. Due to my lack of desire to create separate trees for qued up ban data to que up these lists, if the callback isn't fast enough it just builds the profiles without acknowledging the given ban data yet, though the subsequent sync should then work. This only applies to people wwho just installed GRM in your guild, for the most part.

* BUG2: Ban List should now properly sync ban list edits (this also was previously inconsistent)

* BUG3: Ban List should now properly sync the "ban all alts" option as well when this is chose LIVE with 2 people online at the same time. Before it seems it would sync the one name, so the player setting the ban would ban all the alts properly, but the sync'd guildie would only receive a message to ban just the one intial toon, not the alts

* BUG4: Ban List should now properly merge if a person had some bans but were too low rank and then brought up to a higher ban sync ok rank.

* BUG5: Fixed an issue that can cause some translation spam when editing a ban the first time after logging in telling you player's class was wrong as well.

* BUG6: Fixed a Lua error issue that could occur when clicking minimap too soon after login. This apparently was only partially resolved before. It wasn't major, as it didn't break anything, just error'd before finished configuring.


**VERSION 8.1.0R1.38 DATE: January 9th, 2019**

**--------------**
**QUALITY OF LIFE**
**--------------**

* QOL1: All nearly 800 lines of translation work for ITALIAN is completed. TY @Nihal6
* QOL2: GRM sync message will be more obvious if /grm sync slash command failed to kickstart sync process properly

**--------------**
**BUGS AND BUGS!**
**--------------**

* BUG1: Fixed a bug that will only affect people who have never used the addon before from dumb mistake I made in 1.37 update!

**VERSION 8.1.0R1.37 DATE: January 6th, 2019**

***NEW FEATURES***

*"CHANGES" and "Old Log" headers will now be visible the first time you view the log on logging in to make it more obvious the extent of changes since last login.

**--------------**
**QUALITY OF LIFE**
**--------------**

* QOL1: g8^ purge functionality removed from the addon. After careful consideration, it just seems like too much power for guild leader to control other's data and I hate it exists now. So, removing.

* QOL2: GRM sync message will be more obvious if /grm sync slash command failed to kickstart sync process properly

**--------------**
**BUGS AND BUGS!**
**--------------**

* BUG1: Fixed an issue causing a Lua error in syncing the custom note, as well as an issue with sync disconnects in relation to this bug.

* BUG2: Fixed an issue that could cause the ctrl-shift-click of the log to remove the incorrect entry, though it was the same message (like X promoted to Y rank)- This is very edge case and likely no one even noticed lol


**VERSION 8.1.0R1.36 DATE: January 3rd, 2019**

*Forgot to add English Localizations to all languages, so if you used any language but English you likely got spammed with missing key errors*

**--------------**
**QUALITY OF LIFE**
**--------------**

* QOL1: Added the online / totalMember count to the roster tab. For some reason Blizz makes this only visible on the chat window. I find it useful on roster tab too.

**--------------**
**BUGS AND BUGS!**
**--------------**

* BUG1: Fixed a bug that seemed to be related to the new year and would have only popped up on Jan 1st and on. It likely would have stopped yuour addon from picking up new changes as it would break the scan until then.

* BUG2: Fixed an issue with large custom notes, as they were not splitting and sending backend comms properly if too large. The very large comms should now properly sync

* BUG3: Events were being announced on the calendar as dungeon events due to a change in the calendar in 8.0 that I didn't notice til now. They should now properly announce as a "OTHER" event for birthdays and anniversaries.

* BUG4: Resolved an issue that could make the main tagging not work properly if a person opens the calendar before the addon is fully loaded behind the scenes. Opening the calendar is fine, it just had an out of order check that should have been done sooner.


**VERSION 8.1.0R1.35 DATE: December 31st 2018**

*Minor update. Mostly some bug fixes. 1 new global configuration using guildInfo

**--------------**
**QUALITY OF LIFE**
**--------------**

* QOL1: New Global Setting! - g5^X can be added to the guild info to designate the location of the Join dates. g5^1 = officer note, 2 = public, 3 = custom

**--------------**
**BUGS AND BUGS!**
**--------------**

* BUG1: Fixed a bug that could allow the guild leader to purge their own data on accident using the g8+ tag! Oops!

* BUG2: Fixed a localization bug that would spam you about not knowing the key for a birthday translation.

* BUG3: Fixed a bug that could allow in some cases multiple copies of smae name to be added to alt list if spammed from a sync error (older version bug spaming backend comms to new version)

* BUG4: In relation to the previous bug, Cleans up broken alt lists that were broken from an older patch (some may have never noticed some groupings were broken)

* BUG5: Fixed a bug that could cause Lua error shortly after logging in if system message triggers, like "Player has gone offline" before it is configured properly.

* BUG6: Ban list "guild info" configuration of the global settings allowed the player to contradict allowed settings, with ban list restriction more loose than global.

* BUG7: Fixed an issue where the event announcing could be set to > 28 days (up to 98 days in advance). I wrote it to only scan 1 month in advance, not more, and thus to keep it clean I default it to 28 days in advnce as max announcement. This setting defaults to 14, but if you had it < 28, it will be reset down to max 28 and will no longer be editable a greater length of time than 4 weeks in advance.


**VERSION 8.1.0R1.34 DATE: December 16th 2018**

*Moderate update. Some bug fixes. Some bugs would be game-breaking for some players, and would not affect others. Thus, this needed to be pushed out asap!. A few other tweaks as well*

**--------------**
**QUALITY OF LIFE**
**--------------**

* QOL1: Alt names listed as the main should not be shrunk tiny anymore.

* QOL2: Added tooltip message that you can "Right click to edit" the dates...

**--------------**
**BUGS AND BUGS!**
**--------------**

* BUG1: Fixed an issue that can prevent alt list from showing.

* BUG2: If more than 10 names were on the event calendar a Lua error could occur selecting wrong player info.

* BUG3: Accidentally included a spam message in the guild sync spam on birthday updates being shared.

* BUG4: Not all upcoming events were being announced if they were the next month (particularly from December to January). This is fixed. You may get a bunch of new announcements to report to the calendar.

* BUG5: Blizzard made some backend changes to the calendar, so I had to adjust the way it checked if events were already added. If it is already posted on the calendar it will not appear on your events list with a suggestion to add it to the calendar needlessly. Thus, if one player or officer in the guild adds it to the calendar, then all other players will have the option removed as it will no longer be necessary to add it. You will still have a log announcement of it and it should appear in the guild chat community stream the first time you look at it after it has been added.


**VERSION 8.0.1R1.33 DATE: December 15th 2018**

*NOTE! The !note feature has been removed. One, it was mostly redundant, since Blizzard introduced the ability for people to edit their own notes only. But two, in 8.1 Blizz broke it anyway and it can no longer be used. Blizz "protected" all chat streams now, from guilds and communities, since they are now stored. Apparently this was in an effort to prevent addon developers from attempting to use custom channels as exotic database storage (which I was funny enough, considering lol). The downside is it KILLS the feature.*

***NEW FEATURES***

**BIRTHDAYS**

* *That's right! You can now input players birthdays. They are linked to the alt grouping. I have made this as simple as possible and automatic to use. Here are some details:*

* 1) Completely optional. You can disable this in the settings. Both the ability to store birthdays as well as even see it in the options are configurable.

* 2) The date is linked to the alt grouping as it is assumed that the birthday will be the same for all players in the grouping as it is based on RL birthdays

* 3) This linking will be automatic. If an alt does not have a birthday set, but is added to a grouping of alts that does, then I will auto-set the birthday. All the nuances of this are extremely tedious to iron out to automate this all. Example, what if two toons not grouped have different dates set, but you try to add one to the other, which date takes priorty? Well, I look at if one is listed as main. Well, what if neither are. What if both are? What if one player is part of a group of alts, with no one listed as main, and no birthday, but then you add one player who is a main and already has a date? Does it override all the others? What if not a main, but it has a date? What if the large grouping has a date set, but the main does not? You can begin to see how there can be a large divere group of things to consider. I ironed out every last one to automate this for the smartest efficiency.

* 4) It only stores the day and the month. I avoid allowing the addon users to ask for the year. I do this on purpose. Some people don't feel comfortable giving their age. Not that it is likely a big deal for 95% of the community, but this spares you leaders the awkwardness of bothering with asking. It is not necessary anyway, just the day and the month is important.

* 5) These birthday events will auto-trigger to be added to the calendar as they approach as well. I HIGHLY recommend having the box checked to only announce the "mains"

* 6) Data is completely syncable and sharable. This also takes advantage of a new algorithm I am implementeing a little here and there for sync efficiency. It takes a while so one thing at a time. It is speedy, but is still extra, new data.

**GUILD REP**

* *Yup! For some reason it is hard to determine player's guild rep now without opening the /groster old window. It will now be visible and properly colored based on rank in the top right for each player. It is fully localized*

* 1) This also is completely optional, and you can disable it in the new UI panel of the options.

**--------------**
**QUALITY OF LIFE**
**--------------**

* QoL1: While not necessarily obvious to the user, I place this as number 1 because of the extensive backend cleanup on the process of scanning the database for events to announce to be added to calendar. I also converted the database from the use of strings in many areas to ints, thus removing the need of any string parsing when checking events. This is enormously more efficient now.

* QoL2: Cleaned up a bit of the Alt alignment, some auto controlling the font size to fit, even if a player bumps font size to 125% (in some fonts this may make the "main" alt seem a bit small.

* QoL3: A bit cleaner backend method on detecting player rank permissions in chat. The older method was a bit tedious, but it was necessary after the odd changes in patch 7.3. Well, 8.1 reverted a few of those and they are actually easier to use now and better than ever before! Sometimes they get things right!

* QoL4: Custom note sync rank filter tooltip is more obvious now what it is and how it is unique for that toon only.

* QoL5: ESC key used a bit more logically and cleanly when jumping through frames you had open.

**--------------**
**BUGS AND BUGS!**
**--------------**

* BUG1: Fixed an issue that could cause disconnects in some circumstances during a sync. I am not certain this fixes ALL issues for all players, but this definitely will resolve it for many that possibly had issues.

* BUG2: Tightened the sync process a bit further as well to prevent a bulk sync that overlaps or I should say, comes to close to the server throttle cutoff. This will likely help some people who had disconnects.

* BUG3: Sync disconnect fix 3! Additional protections added to people with low FPS when first logging in to prevent a bulk sync, or throttle down to match FPS a bit (interestingly FPS does affect throttle rate).

* BUG4: Fixed an issue that can cause a protection error when trying to mass invite people from the guild recruitment window with GuildInvite lua script. Blizzard seems to have protected it so it cannot be looped, it can only run once per click without tainting. As such I have implemented the macro strategy, where I create a premade macro with all the /ginvite (name) on each line, and with a simple hot-key press it mass invites, if you wish.

* BUG5: Fixed a rejoin bug issue where if a player quits the guild, deletes a toon, makes a new toon with the same name, it counts it as a rejoin. It should now properly only rely on GUID data, not name comparisons. Oops!

* BUG6: Found some issues that could cause problems for people whose database had been upgraded/converted after a long time of not updating the addon, and then they used the backup recoverty tool.

* Bug7: Fixed some bugs around updating from VERY old versions of the addon.

* Bug8: Fixed an issue where the "Anniversary!" was not translating properly in some circumstances on non-English versions of the addon.

* Bug9: Fixed an issue that good mingle alt groups incorrectly when adding one from two groups listed with a main, from a toon that was not a main in the grouping.

* Bug10: Addon should no longer randomly announce "XXX player is already listed as an alt" erroneously.

* Bug11: Fixed an issue with ban list syncing. - It only addresses one issue, however, this is still bugged and doesn't always sync the ban lists properly.



**VERSION 8.0.1R1.32 DATE: November 22nd 2018**

*Note! There are some big changes in the works in a couple of areas, this is taking me a bit of time, but it is in regards to the core log. I've decided to implement a hybridscrollframe and also make the log more dynamic, less static. This has a lot of tentacles in the code to deal with so it is taking me a while. In the meantime I pushed out a rather critical update for a major disconnect bug and some minor features*

**--------------**
**QUALITY OF LIFE**
**--------------**

* QoL1: Functionality has been expanded in the ability to FORCE and unify settings. The player can now force set the sync rank for ban lists and custom notes as well.

* QoL2: Freeing up character space in the officer note, the Guild Info will now house the leader control tags to force settings. Example, g2^9 is not going to be placed into the guild info tab to work.

* QoL2: The addon will auto copy over your existing tags when you first login and configure this automatically for you.

* QoL3: The +GRM1 has been normalized to g1^+. If you used GRM1, then the addon will auto-convert the format, as well as copy it to the proper Guild Info tab.

* QoL4: Some formatting fixed that could occur in some cases with the alt list making them appear unalligned.

**--------------**
**BUGS AND BUGS!**
**--------------**

* Bug1: Major disconnect bug has been fixed that could occur if a player reloads and tries to auto-sync, with certain addons installed. This compatibility was hard to detect. It is now resolved in a new way so as to preserve compatibility with all addons. It might not kick them on logging in, but on a reload it would. Not anymore!

* Bug2: Manually moving the minimap icon could cause an error for new users. This is now resolved.

* Bug3: "Show main tag on all" in the settings was not showing it checked, even if enabled. This is now resolved.

* Bug4: Players that tried to manually trigger a sync with a /grm sync would often find it doesn't trigger without a 2nd attempt. Fixed!


**VERSION 8.0.1R1.31 DATE: November 2nd 2018**

**--------------**
**QUALITY OF LIFE**
**--------------**

* QoL1: Added the additional Main Tagging option to show the main tag on ALL toons, including the main, not just the alts

**--------------**
**BUGS AND BUGS!**
**--------------**

* Bug1: Accidentally included debug version of the addon's syunc, so you might have gotten a bit of spam in chat...

* Bug2: Players that were new to the addon that decided to manually move the minimap icon would get a lua error. I only updated this to build old databses, not add to new. Ooops!

* Bug3: Minimap position is something NOT sync'd between alts. This is intentional as on some alts people use different addons, so the one setting unique between toons is alts. The new Custom "drag anywhere" minimap button option should now properly reflect this.

* Bug4: Fixed an issue that could cause a Lua error in regards to minimap position when swapping between alts as well.


**VERSION 8.0.1R1.30 DATE: November 1st 2018**

**--------------**
**QUALITY OF LIFE**
**--------------**

*No major new features. Lots of bug fixing and quality of life adjustments for players, with some request implementations. Thank you for your patience!*

* QoL1: Syncing is less stuttery when syncing massive alt lists. There was some spaghetti code I had written a long time ago I had not revisited. OMG, it was rebuilding the entire database in a deep array copy every second lol. This could d/c at least some people, or make the game unbearable during the sync. Stutter removed!

* QoL2: The side box to input the name, when adding an alt, is now a scrollable list with up to 30 matches, to make those hard to match names easier to see. I can up the max limit, just let me know if 30 is good enough.

* QoL3: Sync is now disabled from triggering when a player /reloads -- there is no real need to trigger a sync on reload, on when logging in the first time.

* QoL4: Main/Alt tagging is now more obvious in chat, and it is also now in the System messages for when a player comes online or goes offline.

* QoL5: MOTD is now visible just by mousing over the GRM minimap button.

* QoL6: MINIMAP button can now be moved ANYWHERE (for you people that use those addons that make the map a non-sphere lol)

* QoL7: The optional message when sending a guild invite that can be included at the guild recruit window now makes it obvious you need to hit ENTER to save the message first.

* QoL8: I had built an optional DEBUG sync file for those with disconnect issues. Please ask me on discord and I will link you so we can diagnose the problem.

* QoL9: Slight optimization on just the Join Date sync information. This is just me doing a broad mass test right now on some minimal changes to my algorithm that will improve efficiency and make it a bit more lean and faster. If all seems good I will expand it to the rest of the sync data.


**--------------**
**BUGS AND BUGS!**
**--------------**

* Bug1: Syncing settings of NEW players that first get configured was not working at all. In fact, it was screwing things up! If you logged on a new alt for the first time this addon installed, not only would it not sync right, it would then overwrite all of your alts you had previously configured with default settings again. HOW ANNOYING!!! Fixed...

* Bug2: Audit Log should now properly sort the Promo dates when sorting ascending or descending.

* Bug3: Fixed miscellaneous bug that caused error in some rare cases when loading CommunityFrame for the 1st time.

* Bug4: Portuguese Client should no longer spam adding friends in the system messages as they are properly filtered now.

* Bug5: Korean client was completely broken due to inability to parse creation date. This addon will now work for them perfectly.

* Bug6: A similar but different parsing error in the early configuration of the addon was affecting Mandarin Chinese and Taiwanese clients. This is now resolved and they should work properly...

*Yes, I am really debugging and testing on all 11 supported client languages.*


**VERSION 8.0.1R1.29 DATE: October 13th 2018**

**--------------**
**NEW FEATURE**
**--------------**

***Improvements to the Guild Recruitment Window***

* Player can now INVITE ALL with one button and it will invite all the players currently online

* Player can now include a guild custom message that is sent to the player when they are invited to the guild. The message can be customized up to 255 characters, or not used at all

***"KICK ALL ALTS" has returned in pseudo form!***

* When kicking a player from the guild, you now have the option to remove all of their alts nearly automatically as well

* The way this works is the addon will build a macro for you that auto-populates all of the alt names into with a /gremove altName1

* Then, it keybinds the macro to "CTRL-SHIFT-K" - This allows you to access this guild kick macro without needing it on a toolbar (A message will remind you of keybind)

**--------------**
**QUALITY OF LIFE**
**--------------**

* QoL1: Guild Leader can now force rank restrictions logic with "g2^x" note in either the PUBLIC or OFFICER note. If it is in public, it mandates sync restriction settings guild-wide. If in officer, it only forces officer settings.

* QoL2: Cleaned up some of the UI interactions a bit. Might not be too noticeable, but they are overall better in some areas.

**--------------**
**BUGS AND BUGS!**
**--------------**

* Bug1: Fixed an issue related to guild sync where in some cases data would not be shared.

* Bug2: Fixed an issue where there are two copies of a player in the database from an old error if a player has not updated in a long time, fixed that, and ultimately fixed the audit log from being inaccurate on "number of incompletes"

* Bug3: The addon will no longer freeze WOW if you search the log with mature filter enabled.

* Bug4: Mature Language filter shouldn't cause repeat spam on note changes over and over again anymore if player has it enabled

* Bug5: Fixed a bug that could cause a lua error on Log tools line selection for mass deletion.

**VERSION 8.0.1R1.28 DATE: September 22nd, 2018**

***NOTE:** Long delay since last major patch was in relation to a recent job promotion at work resulting in a bit more workflow, as well as the BFA launch. I finally have a bit of a work breather, so I hammered this out. I know I didn't get everything, but I got a lot!"

**--------------**
**QUALITY OF LIFE**
**--------------**

* QoL1: Player can now set the Custom Note as a destination for auto-joinDate adding.

* QoL2: Player now has the option to set the kick recommendation to only recommend if ALL alts in a grouping have been offline past the deadline (enabled by default)

* QoL3: Log will now display the player's public and officer notes when they leave the guild. You can toggle this on and off in the settings (under scan options)

* QoL4: The Guild recruit window now has a mass purge button that allows you to mass remove ALL guild applicants with one button (with confirmation protection)

* QoL5: Guild Leader can now set Officer note to force all officers to mandated sync restriction rank (This clearly only works for officers, as they are the only that can read the officer note)

* QoL5: -- Use "g2^X" with X being the rank index. 0 = Guild Leader, 9 = Lowest initiate rank.

* QoL5: -- So, if the GL has 2 officer ranks and wants to restrict to that, it is 0 = GL, 1 = officerRank1, 2 = OfficerRank2, thus g2^2 = officer rank and above.

* QoL6: Added a couple of tooltips that are Guild Leader only, for their own use, with instruction on how to use officer note settings (they only appear if not utilized)

* QoL7: Add alt auto-complete names as you type are now shifted more to the left so longer names don't bleed over the edge.

* QoL8: Hard reset button added in the help options... same thing as /grm hardreset. DO NOT USE unless desperate to do full reset account wide of all addon datra.

**--------------**
**BUGS AND BUGS!**
**--------------**

* Bug1: Calendar invite list should scroll properly now.

* Bug2: Calendar Date player modified should now properly be displayed in the tooltip of the calendar as well.

* Bug3: Fixed 2 different issues that could lead to disconnect when syncing. BUT, I likely will need testers since many are disconnecting immediately.

* Bug4: Whispers were not working for some people who set their whispers to their own separate window. This has been resolved.

* Bug5: Fixed issue where Empty Officer notes were reported to the log as being added Thus "" was added was showing. (This may need some more testing)

* Bug6: Mouseover window should no longer spazz out while looking at guild professions window!

* Bug7: Fixed an issue that was causing syncing of settings among alts wrong.

* Bug8: Fixed a bug that could cause people who haven't updated in a long time to be unable to load the addon properly

* Bug9: Fixed an error that could prevent a player from updating their settings properly in 1.27

* Bug10: Fixed a bug that could cause a lua error if clicking the minimap icon too soon after logon. TY @TimeDrawsNigh

* Bug11: Player should no longer lose focus in ANY situation when typing in the calendar note windows.

* Bug12: Fixed issue on the Promotion date not showing properly in the tooltip and audit log, whilst the mouseover window did. @RedEvil11

* Bug13: System messages must be enabled for this addon to work. A source of problem for several players were those who had them disabled

* Bug13: -- The addon now properly informs them of this status and disables from moving forward until they are re-enabled, without causing error.

* Bug14: Main tag should properly show in all cases now when adding alts

* Bug15: Players with more than 12 alts could end up with misaligned alt lists. The width/wordwrap settings are now correct.

**VERSION 8.0.1R1.27 DATE: August 13th, 2018**

*MINOR UPDATE*

* Blizz made it so players can now edit their own note, even without being an officer. The addon now supports this.

* You can now toggle the public, officer, and custom note borders to be on or off in the general options.


**VERSION 8.0.1R1.26 DATE: August 8th, 2018**

**--------------**
**QUALITY OF LIFE**
**--------------**

* QoL1: Export log will now include the numbered lines if you wish.

* QoL2: Officer/Public/Custom note cleaned up a bit more to my liking... no need for the antiquated Blizz box

* QoL3: Officer/public notes should now update instantly if looking at Blizz's player details frame that pops out on clicking on the player. Before you had to click on it again to refresh. I force it now.

* QoL4: Cleaned up some custom note sync UX stuff. A little cleaner.

* QoL5: Blizz's StreamViewMarker is a little flawed and inconsistent on when we really want to scrollback in unread messages. I thus created my own tag.

* QoL6: Added right-click suggestion in tooltip on the mouseover alt names and player name, as many do not seem to know you can right click them for additional options, like setting as main.

**--------------**
**BUGS AND BUGS!**
**--------------**

* Bug1: Fixed an issue with retroactive !note tagging where it would scan past MORE than just the unread. Warning, you will need to logout at least once for this to trigger accurately.

* Bug2: Blizz finally fixed the CHAT_MSG_WHISPER and CHAT_MSG_GUILD properly, whcih broke my 1.25 workaround. But that's ok. It's proper now!

* Bug3: Fixed an issue with new players joining the guild where sometimes info wasn't saving accurate on first pass.

* Bug4: Add Alt should be working properly again in all cases

* Bug5: Fixed an issue that would allow new mouseover windows to popup, even though the member detail Blizz side frame was up.

* Bug6: Audit window should now properly auto-update as changes are made in ALL cases without needing to open/close the window.

* Bug7: Fixed an issue with auto-complete on the Add Alt when clicking the name instead of hitting enter.

* Bug8: Fixed an issue when syncing custom notes, shouldn't error out now, which might have crashed your sync.

* Bug9: Fixed an issue where in some cases a lua erorr could occur in showing the player promotion history on mouseover.


**VERSION 8.0.1R1.25DATE: July 29th, 2018**

**--------------**
**NEW FEATURE**
**--------------**

*The **!note** tagging can now be done by any player in the guild, whether an officer with GRM installed is online or not. What now happens is when an officer logs on with GRM installed, they will scan the previous history of unread messages (up to 250 missed messages), and if it sees any !note messages, it will verify that they were added or not. Then, it will update those public notes that have been missed, retroactively.*

**--------------**
**QUALITY OF LIFE**
**--------------**

* QoL1: Community frame scrolling for mouseover popup window - Keep the mouse cursor stationary, but use the mousewheel to scrool and you may have noticed that the player window did not update (not mine or Blizz's tooltip), only when you manually moved the mouse over each button.

* QoL1: Now, the names will updated on a static scroll.

* QoL2: In relation to this, I noticed that Blizz's player tooltip seemed to work fine on mouseover with the Community window "CHAT" tab, but not the "ROSTER" tab, so on the guild community, I have fixed it, and the tooltip should now be working properly (I will remove my code if Blizz ever fixes it)

* QoL2: I have also made it so Blizz's tooltip behaves like mine behaves, where it will auto-update if the mouse is stationary and you just use scrollwheel. I have also Class colorized the name in the tooltip

* QoL3: I have figured out a reasonable way to make it so when a player joins the guild, I can build their metadata profile nearly immediately (2 seconds or less), so their mouseover works well right away. You have no idea how decidedly complicated this was considering the server call only provided me updated player data on the backend once per 10 seconds minimum, so often massive delay. No More! This is actually partially due thanks to new CommunityFrame data stream.

* QoL4: Calendar main/alt tagging should no longer reset and disappear and so on on the Calendar invite windows - it was a little buggy before, and now it should be without issue

* QoL5: Added a <NG> tag in the calendar invites... it will show over players who are invited to your event but are "Not Guildies" -- if you can think of a better tag, please let me know.

* QoL6: Added the [M] brackets format to choose from now in the main tag formatting options. Also, I made it so the tag is standardized for both main/alt formatting, and the proper format will now also show in the calendars, not just the guildied chat

**--------------**
**BUGS AND BUGS!**
**--------------**

* Bug1: Major behind the scenes bug fix for some players who were unable to load up addon (where they logon and window pops up but all tabs are blank)

* Bug2: Main Tags are working again on all realms, including MERGED realms. "CHAT_MSG_GUILD" is still broken on Blizz's end so I had to add a new guid check to pull full details)

* Bug3: Fixed an issuere where the "Time since Promotion" mouseover info would report the player as having joined 17 years ago (there might be some edge cases here I haven't thought of, so please report if you see the "17 years ago" bug.

* Bug4: Fixed an issue that could cause Lua erros in conflict with other addons through addon to addon chat.


**VERSION 8.0.1R1.24 DATE: July 23rd, 2018**

**--------------**
**QUALITY OF LIFE**
**--------------**

* QoL1: Fixed some Audit Log column and fontstring allignment issues I didn't even notice until using non-English.

* QoL2: ElvUI AddOnSkins has been fully updated, and their author accepted and merged my file for their official next release (not sure when that will be)

* QoL2: I will post the file in Discord, so PM if you want it, or you can wait til their next release.

**--------------**
**BUGS AND BUGS!**
**--------------**

* Bug1: The Audit log should now properly be working again when you select the "Only show incomplete guildies" option!

* Bug2: Calendar Invite lists should work properly now, show proper alt/main tags, allow the right click context menu, and you should be able to click players with alts to see their side alt grouping window.

* Bug3: Calendar tooltips have been brought back and are working again... This was far more annoying and tedious a problem that would seem obvious :D

* Bug4: Fixed a Lua bug that could occur if you have version 1.23 and interacting with older versions of the addon (it didn't break anything, but Lua bug is annoying)

* Bug5: Fixed a translation spam error for those using non-English option when setting promo/join dates manually.

* Bug6: Possible fix for some people whose database is crashing completely on load...

**VERSION 8.0.1R1.23 DATE: July 21st, 2018**

**--------------**
**NEW FEATURE**
**--------------**

* Guild Leader can now add "-GRM1" or "+GRM1" to enable or disable, guild-wide, the !note adding ability.

* If an officer in the game logs in, they scan the officer note, and they will adhere to the restrictions of the GL's officer note, allowing the GL to control Officer settings. This will be expanded in the future

* RUSSIAN now included, about 50%+ translated so far. TY @OldCold on discord for this massive undertaking and help

* ITALIAN AND GERMAN 99% translated as well, special shout out to @Nehry for the German and @Nihal6 for the Italian

* Note: French Translation is underway... if you have any time to volunteer help, or wish to have a language added, please let me know!

**--------------**
**QUALITY OF LIFE**
**--------------**

* QoL1: Guild Recruitment Frame can now be shown without having to open the entire communities and roster frame with /grm recruit (also improved UX over default)

* QoL1: Or just click on the hyperlink when someone is ONLINE and requesting to join the guild

* Qol2: !note tagging is now compatible with Identity2 and Name2Chat addons.

* QoL4: Option to enable or disable the !note adding can be set, and even controlled guild-wide.

**--------------**
**BUGS AND BUGS!**
**--------------**

* Fixed a HUGE bug that would make x-realm guilds mouseover not work right for all players... This was due to Blizz finally fixing the whispering and name-server tagging properly

* Calendar bug that would cause a LOT of problems... like endlessly looping sync requests, Lua errors... unable to add anniversaries to calendar, etc. FIXED

* Player should now properly see the buttons and config of the guild recruitment window

* Lua errors resolved in many instances where configuration load order was out of sync.

* Fixed an issue that could cause player to disconnect when in the middle of a Data sync and opening the Communities window for the first time, at the same time.

**VERSION 8.0.1R1.22 DATE: July 20th, 2018**

**--------------**
**NEW FEATURE**
**--------------**

**PUBLIC NOTE TAGGING FOR NON OFFICERS**

*In patch 8.0 Blizz changed the permission and officer system of guilds. They also made it so only officers can edit public notes. You are not even able to edit just your own. This resolves that*

* Type "!note" in guild chat, and anything you type after it will be auto-set to your public note by any officer that is online with the addon installed.

* Example: **!note ilvl 300 MM Hunter - Eng/Alch**

* If I type this into guild chat, if an officer is online with GRM installed, they will then set my public note appropriately.

**--------------**
**QUALITY OF LIFE**
**--------------**

* Character count on MOTD and Guild info are now viewable again

**--------------**
**BUGS AND BUGS!**
**--------------**

* Alt grouping window on the Calendar events invite list should now close properly when closing calendar event

* Recruit window should now properly open its window.

* Request to join recruit window the top right buttons are now properly alligned.

* Guild window should now pop up appropriately when selecting player's names through things like the audit/events windows.

* Mouseover frame window flash should no longer occur when a non-guild community window is currently the focus.


**VERSION 8.0.1R1.21 DATE: July 17th, 2018**

*Massive changes had to occur to get this addon compatible with 8.0 changes. I am not sure many will appreciate the amount of effort that went in to make this happen. But, considering the extent of the updates, changes, and the addition of new features, I am certain there may be bumps along the way. Please report them ASAP so I can get them fixed quickly! Thank you!*

**--------------**
**NEW FEATURES**
**--------------**

* **SYNC ALGORITHM UPDATED FOR NEW EXPANSION!**

* - That's right, the sync algorithm has been updated to take advantage of the ability to do a bulk dump of data at 1.28MB/s within the 5-20 sec window after logging on. After that, it is rethrottled down to just over 4KB/s, which is an internal limit by Blizz.

* - This allows on first login to do a bulk sync and even complete an entire 1000 member sync within within 2-3 seconds of starting.

* - Of note, /reload does not reset the bulk data, on a full relog reopens it to the player. Throttle controls are smarter now as well, and even take into consideration Blizz's limitation of data comms on low FPS systems.

* **ALT GROUPING WINDOW**

* - On the player mouseover popup window, if you mouseover the player alts, hold SHIFT to popup a side panel with a grouping of alts with more exact data one them. Release shift for it to disappear

* - Shift-Click to keep the window open.

* **CALENDAR EVENT MAIN/ALT TAGGING**

* When looking at the invite list in a calendar, it will now show who the main/alt is for a player. The alt grouping window is also integrated for more info if you click on their name.

* **INFINITE SCROLLING**

* - While I have been a little hesitant to implement a hybrid scrollframe, I decided to keep the log from clogging the window too much, I implemented "infinite scrolling" algorithm on the main guild log, and the audit window. This should provide a smoother experience now for mega guilds.

* **AUTO MAIN TAGGING WHEN PLAYER JOINS**

* - If a player joins, while you are online, it checks the unique accounts counter, then tags the player automatically as "main" if the counter goes up, knowing it is an alt.

* - Of note, this is not always reliable, as the unique accounts is not always accurate and won't show it was a new person, even if it was, but in many instances it will work. This ONLY works live, not for players that joined when you were not online.

* - Also, there is a delay where it can take up to 10 seconds for the server to provide updated "unique account" info, so wait a few seconds on their join.

* **REQUEST TO JOIN RECRUIT WINDOW MANAGEMENT**

* - If a player request to join the guild and is currently ONLINE, the reporting is now cleanear.

* - The recruitment window now has the ability to navigate easier from one Online player to the next for invite. It will auto scroll to the first invite, and then you have next or previous buttons to continue

* - New option to Auto-popup the Recruitment window if a player comes online (or to popup once out of combat), and autoscroll to player name position


**--------------**
**QUALITY OF LIFE**
**--------------**

QoL1: Audit Log now shows the dates of the players join/promotions, rather than just "Ok"

QoL2: Audit Log each column can now be sorted, ascending/descending, by dates, etc...

QoL3: NameChange detection is now 100% flawless in BFA - due to the inclusion of GUID tags of players, namechange detection is easy to check

QoL4: In extension to this, rejoins are now flawless. This addon will absolutely now detect if a player quits the guild, namechanges outside of the guild, and rejoins the guild, it will now properly report they are rejoining the guild AND they namechanged. Great for people that get banned and think they can get back in with a name change (of note, GUID is reset on server transfer, so if they transfer back it won't detect)

QoL5: DateTime format has been added in the format "2018-07-17"

QoL6: Tooltips should now properly updated when hitting the ESC key, like on the events window panel.

QoL7: Ban List, Users, and Events windows should now have their columns properly alligned.

QoL8: Default scan time has been changed, for new players, from 10 to 30 seconds, to prevent spamminess.

QoL9: Default BFA position of the memberdetailframe was poorly placed over the side tabs. This fixes that.

QoL10: Lots and lots of code optimization on the backend thanks to some major code changes by Blizz. This addon fully takes advantage of them.

**--------------**
**BUGS AND BUGS!**
**--------------**

*In no specific order of important, as they ALL are improtant to me!*

* Bug1: Fixed Lua error that could occur on some people's event calendar when trying to ignore the anniversary event.

* Bug2: Count should now properly display when syncing... before it was counting "mains" as a sync count, even if there were no updates.

* Bug3: Fixed an issue where player names were not saving properly if added manually through the Ban list, and the first character was a special character.

* Bug4: Fixed issue where Ban list was saying there was a localization bug when trying to edit a ban.

* Bug5: Player settings should now properly sync between alts as in some cases this was not working for some people.

* Bug6: Guild Log button frame strata on the roster window should now be appropriately matched.

* Bug7: Fixed a major bug that made it not possible to add certain players to the ban list if you were in a guild that had a large number of people who had left the guild. This would ONLY be an issue for mega guilds.

* Bug8: Fixed an error related to a conflict with the chat-chat plugin for ElvUI

* Bug9: Fixed a bug that was causing the calendar "Mass Invite" window to close

* Bug 10: Fixed a bug for players using 24hr time notation instead of 12hr clock that could cause their join/promo dates to be Jan 1st, 2001

* Bug 11: Friends lists should now be properly cleaned up if you disconnect or logoff in the middle of an Online check of the Request to join players... where you log within that 1 second window before removing them.

* Bug 12: When banning a person and all their alts... the ban "reason" was not carrying over to the alts properly. It now is.


**VERSION 7.3.5R1.1530 DATE: June 4th, 2018**

*Prepping for some big updates in BFA... so please, be patient and I will make sure we are rolling good for some big improvements. Looks like guilds being integrated into communities too so that will require a significant rework of things as well!*

**QUALITY OF LIFE**

* QoL1: For new players that join the guild, adding join date to officer/public note is turned off for people that install this addon going forward. It is an optional feature that needs to be manually engaged.

* QoL2: Previously, when a player left the guild it wiped some data I deemed unnecessary and only stored things like dates and so on. It did not store the alt lists. I have no idea how I logically deduced that was a good idea lol. So, while the alt list is reset if they rejoin, as necessity, you now have access to their previous alts when they left the guild, thus if you choose to ban the player after they left, you will now be given the option to ban all their alts as well. This unfortunately cannot be retroactive.

* QoL3: Ban List management even more streamlined. When a player types in a name it autoformats the name, then if on tabbing or moving to another box, if it finds the player in the guild or in the LeftPlayers list, it auto populates their class and auto-formats the name for adding.

* QoL4: Count now included on the number of items added sync'd.

* QoL5: Status on being able or not to add events to guild calendar has been added to the window.

**BUG FIXES**

* BUG1: Tooltip was once again, erroneously scaling ALL game tooltips when it should have just been scaling this addon's only. This would make smaller fonts like in ElvUI really difficult for some people. This is now once again FIXED. Oops!

* BUG2: Major bug fix for broken databases that never fully converted right for people that maybe haven't updated in a very long time. Thanks @chay on Discord for letting me use your database to debug this one.

* BUG3: Due to some formatting issues and non-precise user input error protections, the addon will now re-analyze the entire database and properly format any player's names that were manually added to the ban list, so they can properly be detected if they rejoin the guild.

* BUG4: Addon Settings were not properly syncing between alts, if you had that setting selected, at least not always. It is now wrapped properly and should work now. The first toon you logon to, verify their settings, and then from there the settings should sync properly.

* BUG5: Rejoin data "time passed" since they left the guild should now be accurate.


**VERSION 7.3.5R1.1520 DATE: May 27th, 2018**

*Got a little busy with RL and a promotion at work, so understand if the updates haven't been quite as speedily. I still am doing a little here and there, of course!*

**QUALITY OF LIFE**

* QoL1: Italian translation is now included! Thank you so much @Nihal6

* QoL2: When exporting the log, it should now obey the filters too, it won't export the entire log, just what you see based on your filters.

* QoL3: On manually adding players to the ban list, it scans if the player has "alts" and automatically asks you if you would like to ban all of their alts as well. This was previously possible when banning players in the guild, but now, on manually adding a guild ban it will check

* QoL4: Players now have the ability to EDIT bans.

* QoL5: Ban player interface a bit more user friendly and higher quality. Better tab or shift-tab for navigation, even up/down arrow use on the dropdown menu if you prefer.

* QoL6: Added some tooltips for some buttons, if they are localized in a language with a very long phrase, the scaling might get too small, thus tooltips on button mouseover should help clarify some more.


**BUG FIXES

* Bug1: Fixed a bug that could occure when a player is not in the guild then joins the guild, triggering scan for update.

* Bug2: Fixed a bug that could cause the player to lose keyboard focus when trying to edit calendar event.

* Bug3: On some occasions the guild ranks were not properly setting their indexes due to ranks being added or removed. This could cause serious sync issues downstream, as well as log spam. Fixed!

* Bug4: Fixed an issue with the German translation where ti would spam you saying you didn't have a string translated.
Archived Files (5)
File Name
Version
Size
Author
Date
R1.9293
2MB
Arkaan
05-22-21 01:22 AM
R1.9292
2MB
Arkaan
05-21-21 02:51 PM
R1.9291
2MB
Arkaan
05-18-21 07:10 PM
R1.929
2MB
Arkaan
05-18-21 03:58 PM
R1.928_Retail_AND_Classic
2MB
Arkaan
03-09-21 11:52 AM


Post A Reply Comment Options
Unread 02-02-20, 11:16 PM  
Arkaan
A Kobold Labourer
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 10
Uploads: 1
Originally Posted by iamonefm
are there offline logs?
No, but you can /grm export and actually export your logs by copying them from within the in-game interface into another program, like word.
Report comment to moderator  
Reply With Quote
Unread 02-02-20, 11:15 PM  
Arkaan
A Kobold Labourer
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 10
Uploads: 1
Originally Posted by metalmight
Hey, since the item level of guild members is viewable on the official website, isn't there a way to add this information to the addon?
Sorry just noticed this. Of note, in the future hit up my discord for a quicker response. It is linked in the description.

Unfortunately, addons do not have access to outside net. They are locked down and restricted to the in-game API. The web API is quite different and gives access to the armory, something not able to be accessed from within the game. In-game, there is no actual way to access the player's ilvl unless you are grouped with them, or are within inspection distance. Even if they are in your guild, you cannot access it. So, there is not simple way to just pull the ilvl.

Now, there are 3rd party programs that people have written that are essentially desktop programs you have to install externally and what they do is pull data from the web API, then they will modify the \WTF\ folder's saved variables file and essentially set the information in, like TSM and Auction House historical data. This is a rather large amount of work to do so, and then I'd have to convince a bunch of people to go download this file for an already rather niche addon and while it interests me, and I understand why a person might want this, I have about 15 other things I'd put more priority into atm. Just "stay tuned" but don't expect anything near as ambitious as that in the meantime.
Report comment to moderator  
Reply With Quote
Unread 01-12-20, 02:31 AM  
metalmight
A Fallenroot Satyr

Forum posts: 25
File comments: 17
Uploads: 0
Hey, since the item level of guild members is viewable on the official website, isn't there a way to add this information to the addon?
Report comment to moderator  
Reply With Quote
Unread 11-27-19, 01:06 AM  
iamonefm
A Kobold Labourer

Forum posts: 1
File comments: 2
Uploads: 0
are there offline logs?
Report comment to moderator  
Reply With Quote
Unread 01-04-19, 06:35 PM  
Arkaan
A Kobold Labourer
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 10
Uploads: 1
Re: Greatest

Originally Posted by PeterGunn
You are the greatest thanks so much for this.
TY
Report comment to moderator  
Reply With Quote
Unread 01-04-19, 12:52 PM  
PeterGunn
A Deviate Faerie Dragon

Forum posts: 17
File comments: 53
Uploads: 0
Greatest

You are the greatest thanks so much for this.
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: