Incompatibility with Krowi's Achievement Filter
orionshock opened this issue ยท 4 comments
Bug description
Incompatibility/Error with Questie & Krowi's Achievement Filter ( https://www.curseforge.com/wow/addons/krowi-achievement-filter )
Attempting to enable tracking using Krowi's Achievement UI spits out this error and doesn't track Achievement.
Not sure if this is more a problem with Questie or Krowi's Achievement Filter.
Error
9x ...ceQuestie/Modules/Tracker/QuestieTracker.lua:1934: bad argument #1 to 'strmatch' (string expected, got nil)
[string "=[C]"]: in function strmatch' [string "@Questie/Modules/Tracker/QuestieTracker.lua"]:1934: in function
TrackAchieve'
[string "@Questie/Modules/Tracker/QuestieTracker.lua"]:1601: in function <...ceQuestie/Modules/Tracker/QuestieTracker.lua:1601>
[string "=[C]"]: in function AddTrackedAchievement' [string "@Blizzard_AchievementUI/Blizzard_AchievementUI.lua"]:1007: in function
AchievementButton_ToggleTracking'
[string "@Krowi_AchievementFilter/GUI/AchievementButton/AchievementButtonMixin.lua"]:464: in function ProcessedModifiers' [string "@Krowi_AchievementFilter/GUI/AchievementButton/AchievementButtonMixin.lua"]:489: in function
Select'
[string "@Krowi_AchievementFilter/GUI/AchievementButton/AchievementButton.lua"]:29: in function <...ntFilter/GUI/AchievementButton/AchievementButton.lua:27>
Locals:
(*temporary) = nil
(temporary) = "(AchievementFrameAchievementsContainerButton%dTracked.)"
(*temporary) = "string expected, got nil"
Questie & WoW version
Classic Wrath - Questie 8.2.1 ( 5/7/23 Release on Curseforge )
Krowi's Achievement Filter version v56.4 (5/12/23 release on Curseforge)
If you're running the latest release, then line 1934 is this:
Questie/Modules/Tracker/QuestieTracker.lua
Line 1934 in df72b9f
Questie isn't able to find the "default" Blizzard "AchievementButton_ToggleTracking" check box.
Nothing we can really do about addons changing the Default Blizzard Achievement UI except maybe have Questie not look for it while Krowi is loaded. We don't like to do that because there are tons of addons out there and we can't possibly check each one to see what they are modifying, nor can we control how often it's update or if it's been deprecated.
My suggestion is to ask the Krowi team to handle that Blizzard Check Box and return the same values and frame name it returns. This would allow other addons to not worry about this feature in the Blizzard Achievement UI... not just Questie.
Hey, a little insight from my end, KAF does not replace any default Achievement UI stuff. It just adds more stuff and hides the original Achievements tab and adds a new one. The new tab however does indeed use different frames than the default ones. I'm more than happy to implement a compatibility fix on my end, the only thing I would need to know is what Questie changes and how I should adopt to it when both our addons are active.
Do I just need to call QuestieTracker:TrackAchieve(achieveId)
and QuestieTracker:UntrackAchieveId(achieveId)
to get the tracking fixed for the custom KAF stuff?
Heya! Thanks for stopping by.
-
Achievement frames:
Ah, so the original Blizzard frame isn't present. Explains the nil error on our end. I'll insert aIsAddOnLoaded("Krowi_AchievementFilter")
check and jump over theframeMatch = strmatch(mouseFocus, "(AchievementFrameAchievementsContainerButton%dTracked.*)")
code. No worries... We don't change any of the Blizzard Achievement frames. -
Tracking Achievements:
I'm not aware of any issues with Tracking Achievements while using Questie and Krowi. At least not that I'm aware of? The above error comes from within theQuestieTracker:TrackAchieve(achieveId)
function but it nil's out due to the missing Blizzard Global Frame Name and doesn't finish tracking the Achieve. Once my nil check is in place it should be just fine. We already hook the Blizzard functions so anything you guys are doing; as long as you stick to the Blizzard API's you'll be just fine. :) We do hide the Blizzard QuestWatch frame and remove any quests added to it, then insert them into the Questie Tracker. Questie has an option to "Show Blizzard Timer" vs it being embedded in the Tracker. In order to get this to work correctly, we have to keep the QuestWatch frame cleared of any Quests since the timer frame is now embedded inside the QuestWatch frame post-Wrath. It'll also flicker on/off in some edge cases...