Color RealID whispers by class?
Google searched yielded nothing but ElvUI and ShestakUI links.
I'm looking for a standalone addon that colors RealID whispers by class. RealID whispers aren't that confusing to tell apart because they use real names, but Battle Tags really get to me for some reason. Many times now have I sent a whisper to the wrong person because I'm whispering different battle tags and they're all similar length and same color. Just coloring the name would go a long way for me. Does anyone know if such an addon exists? |
Try PhanxChat. The description I read on that addon says that it replaces RealID names with character names. Its possible that it also colors by class or this change makes the color by class option in the default blizz chat settings work for them as well.
Apart from that I don't see a specific addon that does just what you want, but it might be worth trying out the chat addons to see if they do what you want as well as other stuff. |
Quote:
I'm also fairly happy with my current chat addon, and this is the only functionality I sorely miss. I cut Chatter for this because I felt Chatter was too cluttered for my needs, not to mention the bugs with channel name replacements. I tried looking into adding the functionality by ripping some code out of ElvUI, but that ended up horribly confusing. |
Ah, didn't realise you wanted to add it to a compilation.
I'll have a dabble before I head off to bed to see if I can rig up something small. |
Quote:
Quote:
|
1 Attachment(s)
Give this a whirl. I couldn't test it properly as the person I usually chat to for hours on end wasn't in game today. And my only other bnet friend online was in and out of dungeons and it bugged out on the only message I got rofl.
Did some tweaking and added some messages for debugging purposes. Just set debugMessages to false and the messages will stop appearing on the next UI reload. Let me know if it still doesn't work and send a screenshot of those debug messages in that instance and I'll spend some time on it when my chatty friend next logs in, before start playing. |
Yes, you can include my addons in compilations, but you cannot modify them in any way.
If you want to modify one of my addons for your compilation, you have to rename it, removing all traces of the original name, so it cannot possibly be confused with the original addon, and nobody will come to me looking for help if/when it breaks. If you want an addon that just colors RealID names by class, you are also free to copy the code from PhanxChat that does that, and use it to write your own addon. All of this is clearly spelled out in the LICENSE.txt file in the addon folder, by the way. |
Quote:
And it would've been modified, good to know that you prefer renaming the addon completely rather than pulling the addon. I'll try out the addon Xrystal, and report back on any issues I come across after this flex. Thanks a ton! |
Quote:
|
Quote:
EDIT: As for the addon, all my RealID friends logged out when I wanted to test it, so it'll have to wait until tomorrow. EDIT#2: Okay, I've done some testing with a friend. With the addon enabled, I don't even see his messages. They're just completely gone. Without it, it displays just fine. He's on the same server as me. He's a RealID friend, not a BattleTag friend. He does not have any special characters in his name or character name, or realm name. No apostrophes, nothing. I tried with my chat addon enabled and disabled, no change. Debug messages seem to work fine. I've blocked out his name, but that's it. It does show as Player Name (CharName-Server Name) in classcolor under that block. That is the entire message I get when he sends a whisper to me with debugging on. It doesn't show the actual whisper still, but I'm unsure if that's intentional or not when debugging. |
Quote:
The correct way to do it, is AFAIK the following: lua Code:
lua Code:
Aside from that, the code creates 2 tables for each bnet whisper. Blegh :P |
1 Attachment(s)
hmm, thought I had the correct return values, but perhaps not .. will take another look. And monitor my bnet friend messages today.
Oops, yes, forgot to add in the false value at the front of the 2 return lines to make sure the messages get output again. Brain was working but fingers weren't rofl. Version attached to this message contains that extra change. Will see what I see happening tonight and will report back if it is doing what I am expecting it to do based on your initial post. Based on your post after testing it sounds like the only problem was due to the missing false/true value as to whether to filter the message away. Adding that false in should make it work. edit (after testing) : Well good news is that coloring seems to work, bad news is it is display extra stuff so it could be the way I am formatting the color that is wrong. |
Code:
local function ColorBNetWhispers(self,event,message,sender,...) Code:
local function ColorBNetWhispers(self, event, message, sender, _, _, _, flags, _, _, _, _, lineID, _, presenceID) |
Quote:
When trying to reply to a player, currently, it'll return "Unable to whisper 'ExamplePlayer (Example-Example Server)'.", classcolored and all. I'm unsure if this is a problem with the formatting, or if it'll be a lasting issue. |
You're going to have to pre-hook the chat frame's AddMessage method instead of using a chat filter. Chat filters are intended for changing the message text only; changing other values will have other (mostly undesirable) effects on how the chat system processes the message before displaying it in the chat frame. See PhanxChat for a working example.
|
1 Attachment(s)
Thanks Phanx, will do.
Edit: Okay, gonna take me a while to figure this out ... Any time I try to adjust AddMessage function it crashes wow, so I guess I am doing something wrong somewhere rofl. Edit2: Good News is it now color codes the Names and shows the Toon Name and Server based on toggle setting to do so. Bad News is that it currently crashes if you log in / reload and you don't have any realID friends online or seems to go into an infinite loop and crashes if your realID friend logs off. Phanx or anyone else, is there anything you can see in this code that may cause that as I can't seem to see anything that I am not covering myself for so that it simply returns an unformatted message string. Removed the toast test since the crashing/hanging etc as it isn't really need in this instance so will see if that might be the cause of the issue but just in case it isn't the cause, here is the code in its entirety and a download version if you prefer. Lua Code:
|
Code:
addonData.XRICEvents:SetScript("OnEvent",function(self,event,...) See here for a quick and untested (but clean) conversion of the relevant parts of PhanxChat into a standalone addon: http://www.wowace.com/paste/lmszetyg58bn621q/ |
Thanks for the input Phanx. Did a bit of research on the difference between table based variables and standalone variables and there is a slight improvement on performance and of course readability. I am guessing that is why you are saying not to use them, you weren't clear there. I will of course take it under advisement when finalising the addon beyond this testing phase.
Looking at your extracted example I am assuming the temporary window element is required due to the fact that you can move a RealID conversation into a separate chat frame. Will add that element in and test it. Thanks again. As to the initial crashing of the game when no one was online, removing the unnecessary toast test seemed to stop that from happening. Next test is to see what happens when a friend logs in and then out. So time to wait. |
Quote:
Code:
local firstName = local short = gsub(realName, "|Kf", "|Kg") Code:
local firstName = gsub(realName, "|Kf", "|Kg") |
So far my version is working fine now apart from temporary chat frames. Still need to test and fix that scenario. But friends logging in and out don't seem to be crashing the game and neither does not having a friend online ( which at the moment seems to be 90% of the time nowadays rofl ).
|
Quote:
If you don't mind, ofcourse. |
Yeah the last one attached was the version that didn't seem to crash anymore so give it a whirl again. The version I have been tested just has the changes for the temporary chat frame to test .. but sure go ahead and use what's here. Let me know if something else goes gaga on it or you spot something that isn't doing what you expected. I'll update the thread once I have a proper addon up and running that's been properly tested.
|
Quote:
|
Hmm, my battle tag friends haven't logged in for months .. only have a few real id friends so that's all I've been able to test with. And yeah, I can hear the fireworks outside already. My friends are in the states so I usually get to see them later in the day but today probably not much at all. I'll try and find some battle tag friends amongst the regular guildies and look into that element.
Does it show Battle Tags as the name when chatting to them ? All my friends have names that display so never have seen the battle tags appearing. |
Quote:
If I whisper someone with the battle tag MrExample, it'll show as Quote:
EDIT: Why write it when a picture says a thousand words? EDIT#2: A RealID friend logged in, and I tested it further. I get the same result with RealID friends, no classcolor on the name. The login message is classcolored, through. |
2 Attachment(s)
Hmm, very weird. I don't think I made any more changes since the last post to the messaging. I guess more tests and screenshots. No friends online at the moment so I can't test yet.
Well here's the latest I have with the added attempt at it working in the Temporary Chat Frame as well which the last test it didn't work but tests against 2 of my realID friends after I last posted the files showed their real name/character and realm names were all colored with that character's class. And here's the last screenshot I took when I last uploaded that file. Just in case it is affecting it .. are you using a chat addon that formats the output ? Perhaps it is overriding my changes with its own. |
Xrystal, the main problem with your implmentation (aside from questionable coding practices) is that you're spending CPU and memory re-coloring the same name with the same color every time you get a message. It's more efficient to just update a static list whenever a friend's status changes, so you can just do a simple table lookup for each message, instead of needing to call functions and format strings.
Quote:
Quote:
|
Thanks Phanx,
I appreciate your input regarding my programming practices. I found that usage somewhere in a lua tutorial or another addon somewhere during a hunt to investigate something a few months back and found it useful for my event argument tracking. http://www.lua.org/pil/5.1.html Quote:
At the time when I saw that being demonstrated I felt that 1 line holding the values of whatever arguments that current event needed would be a lot better than several lines of specific values being used. In this instance, however, at least so far, it doesn't look to be needed, and will if it stays that way be rectified. So please don't look at one piece of code and question my programming practice on what is essentially a beta version when you come to think of it. I agree with your notice of the fact I am recoloring every time a chat is sent and received, in my case that is minimal but in the instance of someone playing one toon and chatting significantly I can see the flaw in it. Will look into changing that ready for my next test session. |
Quote:
|
I wouldn't say that it's unreasonable to expect a beginning programmer (who doesn't event know the phrase "best practices") to assume that the official documentation is exemplary in both what one can do and how one should do it. Lord knows I wasn't filtering examples through any kind of sanity filter when I was learning BASIC, HTML and JavaScript back in middle school and high school -- I didn't have a programming sanity filter at that point.
|
3 Attachment(s)
Thanks pelf. I'm not a novice programmer but the only lua programming I have done is with wow, and programming I did 20 years ago is somewhat outdated now, and definitely rusty. The way lua uses tables is different to the way that other programming languages I have used. Hence, why I usually make some changes when I am pointed away from it.
Some of the coding I have seen in addon's blow my head away but I use those to find out how they do what they do which then makes me realise that some of my addons are due a rewrite rofl. Anyway, thanks to Cooper's ( on these forums ) assistance I have managed to rewrite the addon so that as much as possible is done when the player logs in or their friends logs in so that the AddMessage function just has to print it. Please find the new version with all the changes including the temporary chat window part with a couple of screenshots. Let me know if this is working for you now Wimpface. |
It seems to be working fine! I'll do more extensive testing and report back if I find any issues.
Thanks a ton, Xrystal. Saved me from many misstells. :D EDIT: Found a conflict, haste's iiLinks. |
1 Attachment(s)
What happens when that addon is active ? Does what it do get ignored because mine overrides it or does mine get ignored because it overrides mine ?
A quick look at their code it sounds like what is probably happening is that by the time my addon gets to using it's version of AddMessage iiLinks version has changed what message is now there which means the pattern matching and formatting I have is now broken. This probably explains why there are no small addons that do little bits and pieces of the chatframe as it is more likely to be overwritten by others that are also installed and changing the same functionality. Will have to monitor and check to see what happens when someone logs in .. Edit: Well a real id friend logging in message was not affected by the ilinks addon so far. Here is a picture showing the iLinks addon working on an item link and the playerBNLink apparently working fine when my friend logs in. But can see that messages sent messes up ... then I get logged out .. weird. |
Quote:
|
Looks like I need to reverse this block of code :
local AddMessage = function(self, text,...) if(type(text) == "string") then text = text:gsub("|H(.-)|h%[(.-)%]|h", "|H%1|h%2|h") end return origs[self](self, text, ...) end so that my addon is back to using the default player link or add in a check so that it ignores BNPlayer links. And again my friends log off, so will take a break for now and see who is online later before I head off to bed. |
Quote:
|
3 Attachment(s)
Okay, thankfully I have a couple of cool Battle Net friends that are quite happy with me sending them test messages while they run dungeons and stuff rofl, so finally got it figured out and with the help of this thread : http://www.wowinterface.com/forums/s...ad.php?t=38821 I learnt what pattern change I needed to make.
It now works whether iiLinks is loaded or not. New version and screenshots attached. Let me know if this works now for you Wimpface. |
Sorry for the late response, I'll try it out together with iiLinks as soon as a friend logs on.
Don't know how to thank you! EDIT: It works! I found a teeny tiny bug if you're a perfectionist, but it's barely noticeable. I'm super happy right now. The login-message has brackets and isn't classcolored. I'm going to try with different options turned off and on. God what a wonderful person you are. |
Yeah I noticed the login message had stopped being coloured and added it to the list of things to figure out.
I also noticed that for some reason when my friend was toon hopping it wasn't recognising the realmName which was somehow "" rather than nil or a value so it displayed the "-" separator but not the realm itself so changed that, but now it seems that it doesn't show the realm at all, at least for toon hoppers. And the brackets are probably an after affect of the iiLinks addon removing them and me adding them to make my addon work, was hoping iiLinks would remove the ones I added after making my change but maybe not. I didn't notice them at my end but will check it out over the next week or so. Let me know if something crops up over the next few days or so and I'll add it to my list of things to figure out. |
Quote:
Quote:
|
I don't think that's it, I think the fact that both problems exist on just that element means that the fix I did for the normal chat display doesn't catch the log in and log out segments. So it adds the brackets but because it isn't processing them properly for some reason they never get removed again, like the regular chat ones do.
So, at present I'm monitoring the actual log in and log out events to see what is different. |
3 Attachment(s)
As I suspected it was just a case of trapping the logging in message so that I don't add the brackets in as iiLinks ignores it, similar to the Temporary Chat Frame.
Think its at the point where it is pretty much doing what you want consistently, and as you can see sometimes the realm name does appear, so my trap to validate before displaying just stops unknown realms from displaying until it gets updated later on. So, final version and more screenshots added. Will post up an official version over the next day or so, which will only include allowing customisation of the settings in the game and saving them if I decide to add that facility. edit: Rereading that last paragraph doesn't come across the way I meant .. I meant that the only addition to this code will be if I allow customisation of the settings. |
You're a saint Xrystal, thank you so much for taking the time and effort to do this. :)
|
Is this still possible? Can't figure it out atm :/
|
All times are GMT -6. The time now is 05:56 PM. |
vBulletin © 2024, Jelsoft Enterprises Ltd
© 2004 - 2022 MMOUI