xanChat

xanChat

20.1k Downloads

Dragonfligh Pre-Patch...

Natlyz opened this issue ยท 21 comments

commented

Hello!

With pre-patch release the addon seems to be broken ๐Ÿ˜ฐ

8x bad argument #2 to '?' (Usage: self:SetParent([parent]))
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "=[C]"]: in function SetParent' [string "@Interface/AddOns/XanChat/xanChat.lua"]:866: in function <Interface/AddOns/XanChat/xanChat.lua:795> [string "@Interface/AddOns/XanChat/xanChat.lua"]:1004: in function <Interface/AddOns/XanChat/xanChat.lua:1003> [string "@Interface/AddOns/XanChat/xanChat.lua"]:1682: in function EnableAddon'
[string "@Interface/AddOns/XanChat/xanChat.lua"]:26: in function <Interface/AddOns/XanChat/xanChat.lua:15>

Locals:
(*temporary) = "bad argument #2 to '?' (Usage: self:SetParent([parent]))"

commented

It looks like they just disabled and reworked a lot of their code to break addons. Why am I not surprised. They do this every patch and every expansion. I'll take a look at it, but without an active account this will be interesting.

commented

It looks like they just disabled and reworked a lot of their code to break addons. Why am I not surprised. They do this every patch and every expansion. I'll take a look at it, but without an active account this will be interesting.

Thanks! Btw, you don't need an active subscription anymore. You can can make and play any character up to lvl20 for free.

commented

"SetItemRef" is broken and it seems all chat addon authors are taking a break until Blizzard fixes their code.

commented

"SetItemRef" is broken and it seems all chat addon authors are taking a break until Blizzard fixes their code.

Interesting, so they broke it and its affected every chat addon out there. Can you point in my the direction of this discussion. Perhaps it will shed some light on other issues my addon has. I'm fixing things as I can one addon at a time so it's a bit frustrating XD. They really did a mess with this expansion.

commented

"SetItemRef" is broken and it seems all chat addon authors are taking a break until Blizzard fixes their code.

Interesting, so they broke it and its affected every chat addon out there. Can you point in my the direction of this discussion. Perhaps it will shed some light on other issues my addon has. I'm fixing things as I can one addon at a time so it's a bit frustrating XD. They really did a mess with this expansion.

I heard that from Lightspark in his LS:UI addon's discord: https://discord.com/invite/7QcJgQkDYD (everyone is welcome to join)
He's on some "addon dev" discord where they discuss all the stuff Blizzard did to the UI.

commented

Sup, aforementioned "Lightspark" here ๐Ÿค” I discovered it while experimenting with the Glass addon, I was rewriting it to see if it's worth taking it over or nah.

SetItemRef which handles clicks on player names, item links, outfit links, basically all links in the game, isn't broken, it works perfectly fine, but it taints the UI like crazy if it's called from insecure code aka addons.

For instance, here I make link handling insecure via ChatFrame1:SetScript("OnHyperlinkClick", ChatFrame_OnHyperlinkShow) and the layout editor becomes super grumpy.

rip_sir.mp4
And ofc in combat you'll be greeted with Interface action failed because of an AddOn., you won't be able to hide chat tabs while in combat either, and all the good stuff :D

The worst part is that, it's not broken, it works perfectly fine within the secure environment. SetItemRef just does A LOT while handling links, like, it opens frames and whatnot, there's prob even some potential for abuse. So the chance of Blizz adding a wrapper that would "sanitise" our input before passing it to SetItemRef is highly unlikely, already asked some people in the know...

That said, I have no idea if you even use SetItemRef in your code, I'm just here because @Natlyz told me about this discussion ๐Ÿ˜ But you should be safe as long as your chat addon doesn't use it.

It does use SetItemRef actually and I'm going to have to tackle this problem once I get to it. I'm moving down the line in terms of ALL MY ADDONS. So as you can imagine I'm extremely frustrated trying to fix them all after Blizzard blundering continued mess for addon authors after every patch or expansion.

Thank you SOOO much for taking the time to post here and explain the situation. It sheds some light as to what is going on and gives me a clear picture as to why the problems are happening. The taint situation is going to be problematic as if you say it has been updated to reflect more changes in the code, I suspect this will fire a lot of taint problems. Which no way around it I may have to sacrifice functionality if I cannot find a proper way to reduce tainting.

You are correct though in your assumption that Blizzard will probably NOT add a wrapper around it. They in general are usually extremely reluctant to help out addon authors and just tell you to work with what you got.

This should be interesting once I get to it. XD

commented

Sup, aforementioned "Lightspark" here ๐Ÿค” I discovered it while experimenting with the Glass addon, I was rewriting it to see if it's worth taking it over or nah.

SetItemRef which handles clicks on player names, item links, outfit links, basically all links in the game, isn't broken, it works perfectly fine, but it taints the UI like crazy if it's called from insecure code aka addons.

For instance, here I make link handling insecure via ChatFrame1:SetScript("OnHyperlinkClick", ChatFrame_OnHyperlinkShow) and the layout editor becomes super grumpy.

rip_sir.mp4

And ofc in combat you'll be greeted with Interface action failed because of an AddOn., you won't be able to hide chat tabs while in combat either, and all the good stuff :D

The worst part is that, it's not broken, it works perfectly fine within the secure environment. SetItemRef just does A LOT while handling links, like, it opens frames and whatnot, there's prob even some potential for abuse. So the chance of Blizz adding a wrapper that would "sanitise" our input before passing it to SetItemRef is highly unlikely, already asked some people in the know...

That said, I have no idea if you even use SetItemRef in your code, I'm just here because @Natlyz told me about this discussion ๐Ÿ˜ But you should be safe as long as your chat addon doesn't use it.

commented

This gives us hope ๐Ÿ˜Š

commented

YW! <3

Man, I just came up with a workaround for the issue!

<Frame name="YourHyperlinkPropagator" propagateHyperlinksToParent="true" virtual="true"/>

Add this template to whatever you're using to display your messages, and then parent it to Blizz ChatFrame#, this will make them handle all the links for you without actually tainting the code! I just found that attribute, it's an XML only thing, but it works flawlessly! Now I need to check if it's possible to chain it...

Guess it's time to restart my work on Glass XD

-- edit

Yes, it's possible to chain them! All the frames that are between ChatFrame# and your custom chat message need to inherit that template! ๐Ÿฅณ ๐ŸŽ‰ Damn, I "love" undocumented features ๐Ÿ˜’๐Ÿ”ซ

commented

YW! <3

Man, I just came up with a workaround for the issue!

<Frame name="YourHyperlinkPropagator" propagateHyperlinksToParent="true" virtual="true"/>

Add this template to whatever you're using to display your messages, and then parent it to Blizz ChatFrame#, this will make them handle all the links for you without actually tainting the code! I just found that attribute, it's an XML only thing, but it works flawlessly! Now I need to check if it's possible to chain it...

Guess it's time to restart my work on Glass XD

-- edit

Yes, it's possible to chain them! All the frames that are between ChatFrame# and your custom chat message need to inherit that template! ๐Ÿฅณ ๐ŸŽ‰ Damn, I "love" undocumented features ๐Ÿ˜’๐Ÿ”ซ

WOW Nice find! Also YEAH.... tell me about it when it comes to undocumented features. I've had my fair share with them and it's WONDERFUL when you can't see any active decompiled use of them in the official Blizzard code other than a single line. Fun times!! Especially when you to experiment to figure out what exactly it's doing since it's undocumented.

Thank you so much for this awesome find! I hope it's working okay and not exploding the addon on your end. I'm nearly done going down the list with my other addons before I tackle this one. :) Big hug! Thanks for updates!

commented

I wait with abated breath for an update. Thank you for working on this great addon.

commented

I wait with abated breath for an update. Thank you for working on this great addon.

Aww thank you! I didn't think so many people actually used this addon. So that's kind of nice to know ๐Ÿ˜„

I'm going to work on this next once the servers go back up after maintenance. I'm going to also see about adding support for Classic and WOTLK. But that may be a bust since they share completely different chat systems and restrictions.

commented

I wait with abated breath for an update. Thank you for working on this great addon.

Aww thank you! I didn't think so many people actually used this addon. So that's kind of nice to know ๐Ÿ˜„

I'm going to work on this next once the servers go back up after maintenance. I'm going to also see about adding support for Classic and WOTLK. But that may be a bust since they share completely different chat systems and restrictions.

Well, in case you weren't aware, Phanx was an author who had, for MANY years, produced some really great quality-of-life addons. One such addon was PhanxChat. However, he left WoW back in, I want to say BfA, and his addon died. YOUR addon is a wonderful replacement.

commented

I'm doing my best promoting this addon among the members of Gnomeunity.

gnome

commented

I've identified the issues with the mod and have worked around some of the restrictions. I'm reworking on how it processes the new Temporary Chat windows that are created now. That way they are also affected with any changes. In addition I'm reviewing each option to ensure they work as intended.

commented

That's great!

Not sure if that helps, but note that we now have new chat channels: Newcomer /4 and Trade (Services) /5.

commented

;) completed enjoy

commented

;) completed enjoy

Thanks, I'm going to test it thoroughly ๐Ÿ˜ˆ

commented

When opening the Edit Mode:

1x [ADDON_ACTION_FORBIDDEN] AddOn 'XanChat' tried to call the protected function 'ClearTarget()'.
[string "@Interface/AddOns/!BugGrabber/BugGrabber.lua"]:480: in function <Interface/AddOns/!BugGrabber/BugGrabber.lua:480>
[string "=[C]"]: in function `ClearTarget'
[string "@Interface/FrameXML/EditModeManager.lua"]:1496: in function `ResetTargetAndFocus'
[string "@Interface/FrameXML/EditModeManager.lua"]:1531: in function `RefreshTargetAndFocus'
[string "@Interface/FrameXML/EditModeManager.lua"]:1462: in function `OnEditModeEnter'
[string "@Interface/FrameXML/EditModeManager.lua"]:171: in function `EnterEditMode'
[string "@Interface/FrameXML/EditModeManager.lua"]:193: in function <Interface/FrameXML/EditModeManager.lua:191>
[string "=[C]"]: in function `Show'
[string "@Interface/FrameXML/UIParent.lua"]:2844: in function `SetUIPanel'
[string "@Interface/FrameXML/UIParent.lua"]:2648: in function `ShowUIPanel'
[string "@Interface/FrameXML/UIParent.lua"]:2552: in function <Interface/FrameXML/UIParent.lua:2548>
[string "=[C]"]: in function `SetAttribute'
[string "@Interface/FrameXML/UIParent.lua"]:3150: in function `ShowUIPanel'
[string "@Interface/FrameXML/FloatingChatFrame.lua"]:282: in function `func'
[string "@Interface/SharedXML/UIDropDownMenu.lua"]:1007: in function `UIDropDownMenuButton_OnClick'
[string "*UIDropDownMenuTemplates.xml:136_OnClick"]:1: in function <[string "*UIDropDownMenuTemplates.xml:136_OnClick"]:1>
commented

When opening the Edit Mode:

1x [ADDON_ACTION_FORBIDDEN] AddOn 'XanChat' tried to call the protected function 'ClearTarget()'.
[string "@Interface/AddOns/!BugGrabber/BugGrabber.lua"]:480: in function <Interface/AddOns/!BugGrabber/BugGrabber.lua:480>
[string "=[C]"]: in function `ClearTarget'
[string "@Interface/FrameXML/EditModeManager.lua"]:1496: in function `ResetTargetAndFocus'
[string "@Interface/FrameXML/EditModeManager.lua"]:1531: in function `RefreshTargetAndFocus'
[string "@Interface/FrameXML/EditModeManager.lua"]:1462: in function `OnEditModeEnter'
[string "@Interface/FrameXML/EditModeManager.lua"]:171: in function `EnterEditMode'
[string "@Interface/FrameXML/EditModeManager.lua"]:193: in function <Interface/FrameXML/EditModeManager.lua:191>
[string "=[C]"]: in function `Show'
[string "@Interface/FrameXML/UIParent.lua"]:2844: in function `SetUIPanel'
[string "@Interface/FrameXML/UIParent.lua"]:2648: in function `ShowUIPanel'
[string "@Interface/FrameXML/UIParent.lua"]:2552: in function <Interface/FrameXML/UIParent.lua:2548>
[string "=[C]"]: in function `SetAttribute'
[string "@Interface/FrameXML/UIParent.lua"]:3150: in function `ShowUIPanel'
[string "@Interface/FrameXML/FloatingChatFrame.lua"]:282: in function `func'
[string "@Interface/SharedXML/UIDropDownMenu.lua"]:1007: in function `UIDropDownMenuButton_OnClick'
[string "*UIDropDownMenuTemplates.xml:136_OnClick"]:1: in function <[string "*UIDropDownMenuTemplates.xml:136_OnClick"]:1>

Can you open a new ticket with these issues? It's a bit of a pain to keep going back to a closed ticket.

commented

Sure.