Does anyone remember why AceAddon-2.0 sets its own flag to determine if the player is logged in yet (AceAddon.playerLoginFired) instead of just using IsLoggedIn() ? I'm guessing it's because Ace2 was written before IsLoggedIn() was added (in patch 2.1), but I'm not sure.
On the 3.3.5 PTR the hack being used to determine whether this flag should be set when an addon is loaded no longer works, resulting in AceAddon calling an addon's OnEnable immediately after its OnInitialize, instead of after all addons' OnInitialize, resulting in errors in addons (eg. Grid modules) which expect other addons (eg. other Grid modules) to be initialized before they are enabled.
I've locally modified AceAddon-2.0 to check IsLoggedIn() instead of checking the "playerLoginFired" flag on line 549 in the RegisterOnEnable function, and this resolves the issue with Grid. I'm can't think of any way this could adversely affect other addons, but I wanted to double-check and see if anyone more familiar with Ace2 development history had any thoughts on the matter.
Okay well, apparently the Ace2 repo is locked down, since it tells me I am not authorized to commit the change. Can someone with access to the Ace2 repo please commit the following changes to AceAddon-2.0.lua:
Remove line 1347:
self.playerLoginFired = oldLib and oldLib.playerLoginFired or DEFAULT_CHAT_FRAME and DEFAULT_CHAT_FRAME.defaultLanguage
Remove line 977:
self.playerLoginFired = true
Replace lines 546-549:
if DEFAULT_CHAT_FRAME and DEFAULT_CHAT_FRAME.defaultLanguage then -- HACK
AceAddon.playerLoginFired = true
if AceAddon.playerLoginFired then