Core functionality broken with new patch
ireliamonster opened this issue ยท 14 comments
In the middle of the arena game my unit frames pop back to being unsorted. Issue persists with both Traditional and Taintless
1x [ADDON_ACTION_BLOCKED] AddOn 'FrameSort' tried to call the protected function 'CompactPartyFramePet4:AdjustPointsOffset()'.
[string "@!BugGrabber/BugGrabber.lua"]:481: in function <!BugGrabber/BugGrabber.lua:481>
[string "=[C]"]: in function `AdjustPointsOffset'
[string "@FrameSort/Modules/Sorting.lua"]:260: in function <FrameSort/Modules/Sorting.lua:181>
[string "@FrameSort/Modules/Sorting.lua"]:326: in function <FrameSort/Modules/Sorting.lua:271>
[string "@FrameSort/Modules/Sorting.lua"]:429: in function `callback'
[string "@FrameSort/Providers/Blizzard.lua"]:105: in function <FrameSort/Providers/Blizzard.lua:103>
Locals:
_ = Frame {
RegisterEvent = <function> defined @!BugGrabber/BugGrabber.lua:487
0 = <userdata>
UnregisterEvent = <function> defined @!BugGrabber/BugGrabber.lua:487
SetScript = <function> defined @!BugGrabber/BugGrabber.lua:487
}
event = "ADDON_ACTION_BLOCKED"
events = <table> {
ADDON_ACTION_BLOCKED = <function> defined @!BugGrabber/BugGrabber.lua:553
ADDON_ACTION_FORBIDDEN = <function> defined @!BugGrabber/BugGrabber.lua:553
PLAYER_LOGIN = <function> defined @!BugGrabber/BugGrabber.lua:547
LUA_WARNING = <function> defined @!BugGrabber/BugGrabber.lua:562
ADDON_LOADED = <function> defined @!BugGrabber/BugGrabber.lua:507
}
Oh my god, Blizzard have restricted the API function I was using to move frames.
https://wowpedia.fandom.com/wiki/API_ScriptRegionResizing_AdjustPointsOffset
This really really sucks and means I can only sort frames outside of combat which isn't sufficient because Blizzard refresh/unsort frames mid-combat on certain events (e.g. pet summons/dismisses, mind control, people joining/leaving group, boss kills).
This is a serious killer to my addon and I'm not sure there is anything I can do about it.
Am currently researching possible workarounds/solutions.
Why is the traditional method affected though? I thought that only changed the sorting function
Looks like I'm accidentally applying taintless sorting in some areas even when traditional mode is enabled. I'll fix that.
5.8.0 should no longer run taintless sorting when traditional is enabled, so that specific Lua error should disappear. I have limited time/ability to test at the moment so I can't verify.
Still researching a workaround/solution for the core functionality breaking.
Oh my god, Blizzard have restricted the API function I was using to move frames.
The api made automated combat rotations possible cause you could just move in diff frames on your cursor casting X and use an auto clicker. Sucks to see that your addon been affected by it. Ive also noticed that using sorting in combat on the Wrath PTR has been affected.
The api made automated combat rotations possible cause you could just move in diff frames on your cursor casting X and use an auto clicker. Sucks to see that your addon been affected by it. Ive also noticed that using sorting in combat on the Wrath PTR has been affected.
Ah ok, so that's the reason they blocked it.
I'm experimenting with SecureHandlerWrapScript and SecureGroupHeaderTemplate to see if they can help in some way, but if you have any other ideas please let me know!
I'm working on a new sorting method (called it "Secure") and have just published a release with it added.
Still further work to be done on it, but I'm hoping to confirm the approach will work.
More to come.
I'm working on a new sorting method (called it "Secure") and have just published a release with it added. Still further work to be done on it, but I'm hoping to confirm the approach will work.
More to come.
Does the new method allow sorting in combat?
Does the new method allow sorting in combat?
Sort of; I can't sort frames mid-combat, but I can try to retain their pre-sorted positions mid-combat.
I'm pretty sure a proper sort during combat is now physically impossible. What I can do though is call SetPoint()
mid-combat during some secure events which means I can move frames back to their sorted position if Blizzard move them during combat. Not sure whether I can cover all scenarios of when Blizzard move frames though.
I think this is the best we can do.
I've just published an update that switches people over to using the new Secure method if they are currently using Taintless, as it's now good enough to use as the default.
Will likely end up refactoring/merging Taintless and Secure to just the one method eventually.
Still have development to do in this space, but frames shouldn't lose their order mid-combat now.
FYI I've found and logged a relevant Blizzard bug:
#480 - GetPoint() returns nil values in combat from secure snippets
This prevents me from retrieving a frame's current position during combat which means I can't do calculations for things like the current visual order of frames and how much space is between them. Praying that Blizzard fix this ASAP.
FYI have been continuously working on this and releasing alpha versions with the latest development.
Hoping to release a production ready version soon.