ascott18 / TellMeWhen

TellMeWhen is a combat tracking AddOn for World of Warcraft Retail and Classic
https://wow.curseforge.com/projects/tellmewhen
GNU General Public License v3.0
80 stars 11 forks source link

[Bug]: Evoker cooldown tracking doesn't work after switching specs #2017

Closed puupitus closed 1 year ago

puupitus commented 1 year ago

WoW Version

Retail

TellMeWhen Version

10.0.2

Describe the bug

When switching from Devastation to Preservation specialization on Evoker, the Preservation Empower abilities (Dream Breath, Spiritbloom) cooldown tracking doesn't work. When the spells are on cooldown, my cooldown tracker says they are ready. Relogging as Preservation fixes this. It only happens if I switch my specialization from Devastation. My Preservation cooldown bar linked on the string.

Export Strings

^1^T^SScale^N0.7 ^SRows^N2 ^STextureName^SSmoother ^SPoint^T ^Sy^N520 ^Sx^F5610566558116970 ^f-59^Spoint ^SBOTTOM^SrelativePoint ^SBOTTOM^t ^SLocked^B ^SEnabledSpecs^T ^N1467^b ^N577^b ^t^SGUID^STMW:group:1ZTGCAeQ2t4t ^SColumns^N12 ^SIcons^T ^N1^T ^SShowTimer^B ^SType^Scooldown ^SName^STip~`the~`Scales ^SShowTimerText^B ^SShowTimerTextnoOCC^B ^SClockGCD^B ^SStates^T ^N2^T ^SAlpha^N1 ^t^t^SEnabled^B ^t^N2^T ^SShowTimer^B ^SType^Scooldown ^SName^SFire~`Breath ^SShowTimerText^B ^SShowTimerTextnoOCC^B ^SClockGCD^B ^SEvents^T ^N1^T ^SType^SAnimations ^SAnimation^SACTVTNGLOW ^SEvent^SOnFinish ^t^Sn^N1 ^t^SStates^T ^N2^T ^SAlpha^N1 ^t^t^SEnabled^B ^t^N3^T ^SShowTimer^B ^SType^Scooldown ^SName^SDream~`Breath ^SShowTimerText^B ^SShowTimerTextnoOCC^B ^SClockGCD^B ^SEvents^T ^N1^T ^SType^SAnimations ^SAnimation^SACTVTNGLOW ^SEvent^SOnFinish ^t^Sn^N1 ^t^SStates^T ^N2^T ^SAlpha^N1 ^t^t^SEnabled^B ^t^N4^T ^SShowTimer^B ^SType^Scooldown ^SName^SSpiritbloom ^SShowTimerText^B ^SShowTimerTextnoOCC^B ^SClockGCD^B ^SEvents^T ^N1^T ^SType^SAnimations ^SAnimation^SACTVTNGLOW ^SEvent^SOnFinish ^t^Sn^N1 ^t^SStates^T ^N2^T ^SAlpha^N1 ^t^t^SEnabled^B ^t^N5^T ^SShowTimer^B ^SType^Scooldown ^SName^SVerdant~`Embrace ^SShowTimerText^B ^SShowTimerTextnoOCC^B ^SClockGCD^B ^SStates^T ^N2^T ^SAlpha^N1 ^t^t^SEnabled^B ^t^N6^T ^SShowTimer^B ^SType^Sbuff ^SName^SEssence~`Burst ^SClockGCD^B ^SEvents^T ^N1^T ^SType^SAnimations ^SAnimation^SACTVTNGLOW ^SEvent^SWCSP ^SOnConditionConditions^T ^N1^T ^SType^SBUFFDUR ^SOperator^S> ^SName^SEssence~`Burst ^t^Sn^N1 ^t^t^Sn^N1 ^t^SStates^T ^N2^T ^SColor^Sffffffffd ^SAlpha^N1 ^t^t^SRangeCheck^B ^SEnabled^B ^t^N7^T ^SShowTimer^B ^SType^Scooldown ^SName^SLiving~`Flame ^SShowTimerText^B ^SShowTimerTextnoOCC^B ^SClockGCD^B ^SStates^T ^N2^T ^SAlpha^N1 ^t^t^SRangeCheck^B ^SEnabled^B ^t^N8^T ^SShowTimer^B ^SType^Scooldown ^SName^SReversion ^SShowTimerText^B ^SShowTimerTextnoOCC^B ^SClockGCD^B ^SStates^T ^N2^T ^SAlpha^N1 ^t^t^SRangeCheck^B ^SEnabled^B ^t^N9^T ^SShowTimer^B ^SType^Scooldown ^SName^SEmerald~`Blossom ^SShowTimerText^B ^SShowTimerTextnoOCC^B ^SClockGCD^B ^SStates^T ^N2^T ^SAlpha^N1 ^t^t^SEnabled^B ^t^N10^T ^SShowTimer^B ^SType^Scooldown ^SName^SQuell ^SShowTimerText^B ^SShowTimerTextnoOCC^B ^SClockGCD^B ^SStates^T ^N2^T ^SAlpha^N1 ^t^t^SEnabled^B ^t^N11^T ^SShowTimer^B ^SType^Scooldown ^SName^SWing~`Buffet ^SShowTimerText^B ^SShowTimerTextnoOCC^B ^SClockGCD^B ^SStates^T ^N2^T ^SAlpha^N1 ^t^t^SEnabled^B ^t^N12^T ^SShowTimer^B ^SType^Scooldown ^SName^SHover ^SShowTimerText^B ^SShowTimerTextnoOCC^B ^SClockGCD^B ^SStates^T ^N2^T ^SAlpha^N1 ^t^t^SEnabled^B ^t^N13^T ^SShowTimer^B ^SType^Scooldown ^SName^SDeep~`Breath ^SShowTimerText^B ^SShowTimerTextnoOCC^B ^SClockGCD^B ^SStates^T ^N2^T ^SAlpha^N1 ^t^t^SEnabled^B ^t^N14^T ^SShowTimer^B ^SType^Scooldown ^SName^SRewind ^SShowTimerText^B ^SShowTimerTextnoOCC^B ^SClockGCD^B ^SStates^T ^N2^T ^SAlpha^N1 ^t^t^SEnabled^B ^t^N15^T ^SShowTimer^B ^SType^Scooldown ^SName^SObsidian~`Scales ^SShowTimerText^B ^SShowTimerTextnoOCC^B ^SClockGCD^B ^SStates^T ^N2^T ^SAlpha^N1 ^t^t^SEnabled^B ^t^N16^T ^SShowTimer^B ^SType^Scooldown ^SName^SEmerald~`Communion ^SShowTimerText^B ^SShowTimerTextnoOCC^B ^SClockGCD^B ^SStates^T ^N2^T ^SAlpha^N1 ^t^t^SEnabled^B ^t^N17^T ^SShowTimer^B ^SType^Scooldown ^SName^SZephyr ^SShowTimerText^B ^SShowTimerTextnoOCC^B ^SClockGCD^B ^SStates^T ^N2^T ^SAlpha^N1 ^t^t^SEnabled^B ^t^N18^T ^SShowTimer^B ^SType^Scooldown ^SShowTimerText^B ^SName^SRescue ^SShowTimerTextnoOCC^B ^SClockGCD^B ^SStates^T ^N2^T ^SAlpha^N1 ^t^t^SEnabled^B ^t^N19^T ^SShowTimer^B ^SType^Scooldown ^SShowTimerText^B ^SName^STime~`Dilation ^SShowTimerTextnoOCC^B ^SClockGCD^B ^SStates^T ^N2^T ^SAlpha^N1 ^t^t^SEnabled^B ^t^N21^T ^SShowTimer^B ^SType^Scooldown ^SName^SStasis;~`Dream~`Flight ^SShowTimerText^B ^SShowTimerTextnoOCC^B ^SClockGCD^B ^SStates^T ^N2^T ^SAlpha^N1 ^t^t^SEnabled^B ^t^N22^T ^SShowTimer^B ^SType^Scooldown ^SName^SLandslide ^SShowTimerText^B ^SShowTimerTextnoOCC^B ^SClockGCD^B ^SStates^T ^N2^T ^SAlpha^N1 ^t^t^SEnabled^B ^t^N23^T ^SShowTimer^B ^SType^Scooldown ^SName^STail~`Swipe ^SShowTimerText^B ^SShowTimerTextnoOCC^B ^SClockGCD^B ^SStates^T ^N2^T ^SAlpha^N1 ^t^t^SEnabled^B ^t^N24^T ^SShowTimer^B ^SType^Scooldown ^SName^SSoulshape ^SShowTimerText^B ^SShowTimerTextnoOCC^B ^SClockGCD^B ^SStates^T ^N2^T ^SAlpha^N1 ^t^t^SEnabled^B ^t^t^SName^SPreservation ^SSettingsPerView^T ^Sicon^T ^SSpacingY^N1 ^SSpacingX^N1.7 ^t^t^t^N100200^S~`~| ^Sgroup^N5 ^^
Alwies commented 1 year ago

Does this happen every time for you? I've had it happen twice and been looking out for what causes it since.

But haven't been able to find that additional variable. I've swapped specs a ton of time as well.

puupitus commented 1 year ago

Does this happen every time for you? I've had it happen twice and been looking out for what causes it since.

But haven't been able to find that additional variable. I've swapped specs a ton of time as well.

Yes, it happens every time. When I switch to Preservation, the two Preservation empower auras don't work. (Fire Breath aura works, though)

Screenshot: https://imgur.com/hGhtkoO

Cleric670 commented 1 year ago

AHHH!! I was just setting up all my P-evoker stuff and THAT'S why it's not working for many of my spells. I thought maybe I had just set up something wrong on my end but I've done this literal thousands of times.

Here's the evoker spells that are currently not working when you switch specs.

-Spiritbloom -Dream Breath -Echo -Living Flame -Fire Breath -Deep Breath

Yes some of those abilities are Devastation abilities as well, they work in Devastation spec but not in Preservation.

I also threw a .LUA error which is likely pointing to the actual culprit.

4x ...ellMeWhen/Components/Core/Spells/ClassSpellCache.lua:171: attempt to index field 'SpellData' (a nil value)
[string "@TellMeWhen/Components/Core/Spells/ClassSpellCache.lua"]:171: in function `method'
[string "*Suggester.xml:16_OnEnter"]:11: in function <[string "*Suggester.xml:16_OnEnter"]:1>
[string "@TellMeWhen/Components/Core/Suggester/Suggester.lua"]:296: in function `SuggestingComplete'
[string "@TellMeWhen/Components/Core/Suggester/Suggester.lua"]:108: in function `DoSuggest'
[string "@TellMeWhen/Components/Core/Suggester/Suggester.lua"]:385: in function `NameOnCursor'
[string "@TellMeWhen/Components/Core/Suggester/Suggester.lua"]:504: in function <...s/TellMeWhen/Components/Core/Suggester/Suggester.lua:501>

Locals:
self = GameTooltip {
 0 = <userdata>
 SetQuestLogRewardSpell = <function> defined @SharedXML/Tooltip/TooltipDataHandler.lua:444
 SetQuestPartyProgress = <function> defined @SharedXML/Tooltip/TooltipDataHandler.lua:444
 info = <table> {
 }
 ProcessLineData = <function> defined @SharedXML/Tooltip/TooltipDataHandler.lua:303
 SetEnhancedConduit = <function> defined @SharedXML/Tooltip/TooltipDataHandler.lua:444
 SetPvpTalent = <function> defined @SharedXML/Tooltip/TooltipDataHandler.lua:444
 SetExistingSocketGem = <function> defined =[C]:-1
 SetHyperlink = <function> defined =[C]:-1
 SetUnit = <function> defined @SharedXML/Tooltip/TooltipDataHandler.lua:444
 SetAzeriteEssence = <function> defined @SharedXML/Tooltip/TooltipDataHandler.lua:444
 waitingForData = false
 SetTotem = <function> defined @SharedXML/Tooltip/TooltipDataHandler.lua:444
 SetVoidWithdrawalItem = <function> defined =[C]:-1
 shouldRefreshData = false
 SetRuneforgeResultItem = <function> defined @SharedXML/Tooltip/TooltipDataHandler.lua:444
 __tamedCounts = false
 SetInfoBackdropStyle = <function> defined @SharedXML/Tooltip/TooltipDataHandler.lua:338
 SetVoidDepositItem = <function> defined =[C]:-1
 CIMI_tooltipWritten = false
 SetTraitEntry = <function> defined @SharedXML/Tooltip/TooltipDataHandler.lua:444
 OnLoad = <function> defined @FrameXML/GameTooltip.lua:927
 shoppingTooltips = <table> {
 }
 SetSocketGem = <function> defined =[C]:-1
 SetPetAction = <function> defined @SharedXML/Tooltip/TooltipDataHandler.lua:444
 SetSlottedKeystone = <function> defined @SharedXML/Tooltip/TooltipDataHandler.lua:444
 SetItemInteractionItem = <function> defined @SharedXML/Tooltip/TooltipDataHandler.lua:444
 SetLFGDungeonReward = <function> defined @SharedXML/Tooltip/TooltipDataHandler.lua:444
 updateTooltipTimer = 0.152000
 GetSpell = <function> defined @FrameXML/GameTooltip.lua:990
 SetOwnedItemByID = <function> defined @SharedXML/Tooltip/TooltipDataHandler.lua:444
 ItemTooltip = Frame {
 }
 SetQuestLogSpecialItem = <function> defined @SharedXML/Tooltip/TooltipDataHandler.lua:444
 StatusBar = GameTooltipStatusBar {
 }
 SetLootCurrency = <function> defined @SharedXML/Tooltip/TooltipDataHandler.lua:444
 SetRecipeReagentItem = <function> defined =[C]:-1
 SetBuybackItem = <function> defined =[C]:-1
 SetWorldCursor = <function> defined @FrameXML/GameTooltip.lua:952
 SetAchievementByID = <function> defined @SharedXML/Tooltip/TooltipDataHandler.lua:444
 SetMerchantItem = <function> defined =[C]:-1
 SetPvpBrawl = <function> defined @SharedXML/Tooltip/TooltipDataHandler.lua:444
 SetLootItem = <function> defined =[C]:-1
 BottomOverlay = Texture {
 }
 SetTalent = <function> defined @SharedXML/Tooltip/TooltipDataHandler.lua:444
 SetMerchantCostItem = <function> defined @SharedXML/Tooltip/TooltipDataHandler.lua:444
 SetSocketedRelic = <function> defined @SharedXML/Tooltip/TooltipDataHandler.lua:444
 ProcessInfo = <function> defined @SharedXML/Tooltip/TooltipDataHandler.lua:236
 ProcessLines = <function> defined @SharedXML/Tooltip/TooltipDataHandler.lua:293
 NineSlice = Frame {
 }
 SetCompanionPet = <function> defined @SharedXML/Tooltip/TooltipDataHandler.lua:444
 GetUnit = <function> defined @FrameXML/GameTooltip.lua:994
 TextRight1 = GameTooltipTextRight1 {
 }
 SetLootRollItem = <function> defined =[C]:-1
 SetQuestCurrency = <function> defined @SharedXML/Tooltip/TooltipDataHandler.lua:444
 SetUnitDebuffByAuraInstanceID = <function> defined @SharedXML/Tooltip/TooltipDataHandler.lua:444
 SetBagItem = <function> defined =[C]:-1
 supportsDataRefresh = true
 SetAction = <function> defined @SharedXML/Tooltip/TooltipDataHandler.lua:444
 SetWeeklyReward = <function> defined =[C]:-1
 SetSpellByID = <function> defined @SharedXML/Tooltip/TooltipDataHandler.lu
ascott18 commented 1 year ago

@Cleric670 thanks for the additional info. The error you shared is entirely unrelated to this problem, but will be fixed nonetheless.

arieh commented 1 year ago

as far as I can tell this is mostly due to the fact that all the channel events dont fire for empowered spells. I've added the new empowered events where needed (I hope I got them all) in my Evoker PR

ascott18 commented 1 year ago

Casts are unrelated to cooldowns, so that's not the issue.

The issue is Blizzard. image

ascott18 commented 1 year ago

Of the spells listed by @Cleric670, the only ones that i can reproduce are Spiritbloom, Dream Breath, and sometimes Deep Breath.

Alwies commented 1 year ago

Was wondering why when I tested this initially I wasn't able to reproduce. Looked at it again with this new information and it seems related to the talent "Font of Magic", more specifically it only happens when the talent is not learned. Which would also make sense given the 2 spells it affects, why not eternity surge for example and it returning a different spellID.

Edit: correction Font of magic exists on both tree's so not sure why Eternity surge isn't affected.

Alwies commented 1 year ago

Ok I managed to reproduce it on eternity surge as well. It requires "Font of magic" to be learned in the Preservation tree and unlearned in the Devastation tree.

ascott18 commented 1 year ago

To clarify on Enternity Surge because it took me a minute: Setup those talents, and then log out and in as preservation before switching to devastation