Re-Fixing TRP NPC/DM Tags#18
Open
Tildemancer wants to merge 16 commits into
Open
Conversation
The addon needs to know whether it can currently access the parameters it needs to process a message. This is sometimes restricted by the WoW client (e.g. in boss encounters), and this revision adds checks for that. The output window (main/snooper) won't update during those times.
…dling Added secret checks to prevent client from throwing Lua errors
Step-by-step howto for end-user use until the addon author pushes this fix (or something like it) in the official releases.
Updated the instructions for downloading listener.lua.
Updated the readme to clarify the purpose of the addon and its functionality.
Integrating raptormama's fixes
src/listener.lua Added TRP3 NPC message detection and parsing. Added recovery of NPC speaker names from TRP3 APIs. Added support for storing NPC display metadata (name, short name, icon, color). Added handling for anonymous (| ) emotes. Added helper functions for NPC name/icon formatting. Improved compatibility with TRP3 companion profiles. src/snoop2.lua Apply NPC speaker support to Snoop windows. Apply anonymous-emote handling to Snoop windows. Prevent NPC names from becoming clickable player links. Support custom NPC colors in Snoop displays. Keep Snoop presentation consistent with the main Listener window.
dmtags.lua line 120 called UnitName(unit) before unit was assigned
moved the check after "local unit = frame:GetAttribute("unit")" and guarded it as "if unit and canaccessvalue(UnitName(unit)) then"
Trying to wrap so it stops tainting things
trying to guard from a taint i got in delves it scans every frame, now it shouldn't
Author
|
Just for the record, haven't had Listener throw any issues since my last pull so assuming it's good to go |
TRP changed how possessives (i.e. 's), were handled sometime in midnight added a helper function. this asks whether the message has been stripped by trp: local function GetTRPOwnershipEmotePrefix( lineID ) if lineID == nil then return nil end local trp = _G.TRP3_API if not trp or not trp.chat or not trp.chat.getOwnershipNameID then return nil end if trp.chat.getOwnershipNameID() == lineID then return "'s " end end if it does/has, it changes it back in listener's frame using local trpEmotePrefix = originalEmotePrefix or GetTRPOwnershipEmotePrefix( a11 ) if event == "EMOTE" and trpEmotePrefix and message:sub(1, #trpEmotePrefix) ~= trpEmotePrefix then message = trpEmotePrefix .. message end
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Downstream of raptormama's commit, necessarily, since it hasn't been merged yet and I ain't rewriting all that
Did a cursory inspection and it didn't look suspicious, so that's my base now
This is incredibly hacky garbage code that almost certainly can be improved but it works on my machine, and it'll have to do until we get an official update. May I cordially invite you to show me up in every way
Anyway;
providence note for https://github.com/raptormama/listener and their 12.0.5 sanitation efforts
src/listener.lua
Added TRP3 NPC message detection and parsing.
Added recovery of NPC speaker names from TRP3 APIs.
Added support for storing NPC display metadata (name, short name, icon, color).
Added handling for anonymous (| ) emotes. (also nuked old formatting)
Added helper functions for NPC name/icon formatting.
Improved compatibility with TRP3 companion profiles.
ui/ListenerFrame.lua
Display NPC speakers using their NPC names instead of player names.
Show custom NPC icons and colors.
Prevent NPC names from being rendered as clickable player links.
Improve display of anonymous emotes.
Use stored NPC metadata when rendering chat history.
src/snoop2.lua
Apply NPC speaker support to Snooper windows.
Apply anonymous-emote handling to Snooper windows.
Prevent NPC names from becoming clickable player links.
Support custom NPC colors in Snooper displays.
Keep Snooper presentation consistent with the main Listener window.