Prat 3.0
In loving memory of Jon Akthar (Sylvanaar)
Hello WoW community, I'm LuciferCatnip, Sylvanaar was my coworker and my mentor. It goes without saying that Jon was an amazingly talented individual. He always seemed to know everything... but he once said to me "It's not about knowing the answers, it's about asking the right questions", he always challenged me to ask me the right questions until I would arrive at the answer on my own terms. Jon was also a champion of the open source movement, and so with special thanks to Gil from Curseforge as well as Sylvanaar's family, there's no better way to honor Sylvanaar's legacy than to keep his project going strong in the community.
If you'd like to help maintain Prat, please reach out to MysticalOS or LuciferCatnip directly. Thank you so much.
About
Prat-3.0 is a chat enhancement addon for World of Warcraft.
It is made up of 30+ smaller "modules" which each provide additional functionality, and can be enabled or disabled individually.
In game, type /prat for a menu. Or use the icon on one of the many data broker hosts.
Prat has just about every feature you can think of, and then some. Really. When I get some more time, I'll try and put together a full list (Even I have lost count)
(Thanks to Dreamsight for this partial list)
- Sync your chat settings across your account (Beta)
- AI powered spam filter (Beta)
- Change arrows, buttons, mouse scroll for chat scroll, scroll speed
- you can add player color per channel, color per level, color per class
- timestamps (styled)
- whether to show timestamp (what format the timestamp should be in)
- whether to show players level
- you can select the option for channel "stickys" (last channel you used you auto use when hitting enter, that sort of thing – or last thing someone said)
- change the looks of the chat's editbox - as well as where it appears (you can even undock it and move it to where you'd like it to be)
- chat fading, fading delay
- You can change the font to a list of fonts, add an outline to it, monochrome it (if you don’t mind messing with files a bit you could probably even add other fonts to that list)
- change the chat frame/chat box appearance
- Keep chat history between game sessions
- Set channel abbreviations
- set brackets and color(or something instead of brackets)round player/lvl
- alt invite option (press keyboard “alt” button and click on the player’s name to auto inv them)
- raid icon
- invite links - click them to invite the person
- URL copying
- Full chat copying + copy button
- Click timestamp to copy line
- Configurable alerts when your name or other word is mentioned
- enables tell target /tt which whispers your target
- Alias options - make macros into short commands
- See names of players Alt characters
- change chat sounds (incoming and outgoing as well as per channel)
- Achievements info and grats
- Full chat search and search box
- Customizable filters for advanced users
- Show item icon next to item links and player class icon next to player names
- Icon-only options for newcomers chat
- Optional flashing or font color change for chat tabs when a new message comes in.
You can enable/disable all Prat modules - don't have to have the ones you don't use running
While trying to reduce resource utilization, it is also important to note that some people prefer the features, and don't care that an addon uses 500k more.
The addon is resetting the backdrop inset every time I log out. Its by default set to 4 but I need it on 1.
Greetings !
I've just started using Prat, trying to understand a bit what does what, but I'm getting several lua error messages, the first one directly after loading the ui, the others when clicking or altering its parameters in the Interface section ; the last one is specific to the "Substitution" module.
1) Message: Interface\AddOns\Prat-3.0\modules\ChannelSticky.lua:444: attempt to index local 'chan' (a nil value)
Time: 10/11/17 21:53:00
Count: 1
Stack: Interface\AddOns\Prat-3.0\modules\ChannelSticky.lua:444: attempt to index local 'chan' (a nil value)
(tail call): ?
Interface\AddOns\Prat-3.0\modules\ChannelSticky.lua:444: in function `BuildChannelList'
Interface\AddOns\Prat-3.0\modules\ChannelSticky.lua:334: in function `OnModuleEnable'
Interface\AddOns\Prat-3.0\addon\modules.lua:182: in function <Interface\AddOns\Prat-3.0\addon\modules.lua:174>
(tail call): ?
[C]: ?
[string "safecall Dispatcher[1]"]:9: in function <[string "safecall Dispatcher[1]"]:5>
(tail call): ?
...ns\BasicThreatBar\Libs\AceAddon-3.0\AceAddon-3.0.lua:558: in function `EnableAddon'
...ns\BasicThreatBar\Libs\AceAddon-3.0\AceAddon-3.0.lua:571: in function `EnableAddon'
...ns\BasicThreatBar\Libs\AceAddon-3.0\AceAddon-3.0.lua:651: in function <...ns\BasicThreatBar\Libs\AceAddon-3.0\AceAddon-3.0.lua:636>
[C]: in function `LoadAddOn'
Interface\FrameXML\UIParent.lua:421: in function `UIParentLoadAddOn'
Interface\FrameXML\UIParent.lua:516: in function `TimeManager_LoadUI'
Interface\FrameXML\UIParent.lua:1083: in function <Interface\FrameXML\UIParent.lua:980>
Locals: <none>
2) Message: ...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0.lua:1822: AceConfigRegistry-3.0:ValidateOptionsTable(): Prat.args.display.args.Prat_ChannelSticky.plugins.ctype.instance_chat.name: expected a string or funcref, got 'nil'
Time: 10/11/17 21:57:16
Count: 1
Stack: ...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0.lua:1822: AceConfigRegistry-3.0:ValidateOptionsTable(): Prat.args.display.args.Prat_ChannelSticky.plugins.ctype.instance_chat.name: expected a string or funcref, got 'nil'
(tail call): ?
[C]: ?
...-3.0\AceConfigRegistry-3.0\AceConfigRegistry-3.0.lua:50: in function <...-3.0\AceConfigRegistry-3.0\AceConfigRegistry-3.0.lua:45>
...-3.0\AceConfigRegistry-3.0\AceConfigRegistry-3.0.lua:188: in function <...-3.0\AceConfigRegistry-3.0\AceConfigRegistry-3.0.lua:183>
...-3.0\AceConfigRegistry-3.0\AceConfigRegistry-3.0.lua:222: in function <...-3.0\AceConfigRegistry-3.0\AceConfigRegistry-3.0.lua:197>
...-3.0\AceConfigRegistry-3.0\AceConfigRegistry-3.0.lua:241: in function <...-3.0\AceConfigRegistry-3.0\AceConfigRegistry-3.0.lua:197>
...-3.0\AceConfigRegistry-3.0\AceConfigRegistry-3.0.lua:232: in function <...-3.0\AceConfigRegistry-3.0\AceConfigRegistry-3.0.lua:197>
...-3.0\AceConfigRegistry-3.0\AceConfigRegistry-3.0.lua:232: in function <...-3.0\AceConfigRegistry-3.0\AceConfigRegistry-3.0.lua:197>
...-3.0\AceConfigRegistry-3.0\AceConfigRegistry-3.0.lua:260: in function `ValidateOptionsTable'
...-3.0\AceConfigRegistry-3.0\AceConfigRegistry-3.0.lua:302: in function `app'
...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0.lua:1822: in function `Open'
...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0.lua:1915: in function <...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0.lua:1913>
(tail call): ?
[C]: ?
[string "safecall Dispatcher[2]"]:9: in function <[string "safecall Dispatcher[2]"]:5>
(tail call): ?
...AddOns\BasicThreatBar\libs\AceGUI-3.0\AceGUI-3.0.lua:314: in function `Fire'
...GUI-3.0\widgets\AceGUIContainer-BlizOptionsGroup.lua:20: in function <...GUI-3.0\widgets\AceGUIContainer-BlizOptionsGroup.lua:19>
[C]: in function `Show'
Interface\FrameXML\InterfaceOptionsFrame.lua:28: in function `InterfaceOptionsList_DisplayPanel'
Interface\FrameXML\InterfaceOptionsFrame.lua:46: in function `InterfaceOptionsListButton_OnClick'
[string "*:OnClick"]:2: in function <[string "*:OnClick"]:1>
Locals: <none>
3) Message: ...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0.lua:1822: AceConfigRegistry-3.0:ValidateOptionsTable(): Prat.args.display.args.Prat_ChannelSticky.plugins.ctype.instance_chat.name: expected a string or funcref, got 'nil'
Time: 10/11/17 21:57:51
Count: 214
Stack: ...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0.lua:1822: AceConfigRegistry-3.0:ValidateOptionsTable(): Prat.args.display.args.Prat_ChannelSticky.plugins.ctype.instance_chat.name: expected a string or funcref, got 'nil'
[C]: ?
[C]: ?
...-3.0\AceConfigRegistry-3.0\AceConfigRegistry-3.0.lua:50: in function <...-3.0\AceConfigRegistry-3.0\AceConfigRegistry-3.0.lua:45>
...-3.0\AceConfigRegistry-3.0\AceConfigRegistry-3.0.lua:188: in function <...-3.0\AceConfigRegistry-3.0\AceConfigRegistry-3.0.lua:183>
...-3.0\AceConfigRegistry-3.0\AceConfigRegistry-3.0.lua:222: in function <...-3.0\AceConfigRegistry-3.0\AceConfigRegistry-3.0.lua:197>
...-3.0\AceConfigRegistry-3.0\AceConfigRegistry-3.0.lua:241: in function <...-3.0\AceConfigRegistry-3.0\AceConfigRegistry-3.0.lua:197>
...-3.0\AceConfigRegistry-3.0\AceConfigRegistry-3.0.lua:232: in function <...-3.0\AceConfigRegistry-3.0\AceConfigRegistry-3.0.lua:197>
...-3.0\AceConfigRegistry-3.0\AceConfigRegistry-3.0.lua:232: in function <...-3.0\AceConfigRegistry-3.0\AceConfigRegistry-3.0.lua:197>
...-3.0\AceConfigRegistry-3.0\AceConfigRegistry-3.0.lua:260: in function `ValidateOptionsTable'
...-3.0\AceConfigRegistry-3.0\AceConfigRegistry-3.0.lua:302: in function `app'
...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0.lua:1822: in function `Open'
...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0.lua:1750: in function <...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0.lua:1716>
Locals:
4) Message: Interface\AddOns\Prat-3.0\modules\ChannelSticky.lua:379: attempt to call method 'ResgisterSmartGroup' (a nil value)
Time: 10/11/17 21:58:04
Count: 1
Stack: Interface\AddOns\Prat-3.0\modules\ChannelSticky.lua:379: attempt to call method 'ResgisterSmartGroup' (a nil value)
(tail call): ?
Interface\AddOns\Prat-3.0\modules\ChannelSticky.lua:379: in function `OnModuleDisable'
Interface\AddOns\Prat-3.0\addon\modules.lua:188: in function <Interface\AddOns\Prat-3.0\addon\modules.lua:186>
(tail call): ?
[C]: ?
[string "safecall Dispatcher[1]"]:9: in function <[string "safecall Dispatcher[1]"]:5>
(tail call): ?
...ns\BasicThreatBar\Libs\AceAddon-3.0\AceAddon-3.0.lua:593: in function <...ns\BasicThreatBar\Libs\AceAddon-3.0\AceAddon-3.0.lua:586>
(tail call): ?
Interface\AddOns\Prat-3.0\addon\options.lua:12101: in function <Interface\AddOns\Prat-3.0\addon\options.lua:12085>
(tail call): ?
[C]: ?
...
[string "safecall Dispatcher[3]"]:9: in function <[string "safecall Dispatcher[3]"]:5>
(tail call): ?
...AddOns\BasicThreatBar\libs\AceGUI-3.0\AceGUI-3.0.lua:314: in function `Fire'
...it\libs\AceGUI-3.0\widgets\AceGUIWidget-DropDown.lua:442: in function <...it\libs\AceGUI-3.0\widgets\AceGUIWidget-DropDown.lua:433>
(tail call): ?
[C]: ?
[string "safecall Dispatcher[3]"]:9: in function <[string "safecall Dispatcher[3]"]:5>
(tail call): ?
...AddOns\BasicThreatBar\libs\AceGUI-3.0\AceGUI-3.0.lua:314: in function `Fire'
...s\AceGUI-3.0\widgets\AceGUIWidget-DropDown-Items.lua:351: in function <...s\AceGUI-3.0\widgets\AceGUIWidget-DropDown-Items.lua:341>
Locals: <none>
5) Message: Interface\AddOns\Prat-3.0\modules\Substitutions.lua:1404: attempt to index local 'e' (a nil value)
Time: 10/12/17 00:14:37
Count: 1
Stack: Interface\AddOns\Prat-3.0\modules\Substitutions.lua:1404: attempt to index local 'e' (a nil value)
(tail call): ?
Interface\AddOns\Prat-3.0\modules\Substitutions.lua:1404: in function <Interface\AddOns\Prat-3.0\modules\Substitutions.lua:1400>
(tail call): ?
[C]: ?
[string "safecall Dispatcher[4]"]:9: in function <[string "safecall Dispatcher[4]"]:5>
(tail call): ?
...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0.lua:813: in function <...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0.lua:639>
(tail call): ?
[C]: ?
[string "safecall Dispatcher[4]"]:9: in function <[string "safecall Dispatcher[4]"]:5>
(tail call): ?
...AddOns\BasicThreatBar\libs\AceGUI-3.0\AceGUI-3.0.lua:314: in function `Fire'
...lkit\libs\AceGUI-3.0\widgets\AceGUIWidget-Button.lua:22: in function <...lkit\libs\AceGUI-3.0\widgets\AceGUIWidget-Button.lua:19>
Locals: <none>
Desactivating both the "Channel Sticky" and "Substitution" modules seems to solve the problem - no error messages left after that -, which is fine to me, as I didn't want to use them. But it's still worth reporting...
In fact, I've first suspected a mess with "BasicThreatBar" (an addon I'm testing) and its ACEGUI libraries, which are mentionned several times in those errors, but after I deactivated it, the same errors returned but concerning "Dominos" this time, then (after disabling this one) with another, etc. In the end, the lua errors always involve the same ACEGUI files (and lots of addons installed have them), but no addon in particular. So the only method to get rid of those (though they don't seem to really bother...) seemed to desactivate the concerned modules.
As a second miror report, clicking on the upper or lower scrolling buttons in Prat seems to bring the dreaded troubles caused by update 7.3's way of handling sound files... So I had to quote ( -- ) lines 814, 815, 816 and 908 of Originalbuttons.lua, in the module folder. Just a temporary measure...
Lastly, as a simple suggestion, I've noticed your "TellTarget" module, which is nice, but didn't see a "WhisperTarget" (/wt), something I had with "BasicChatMods" for example. Does it exist in Prat ? And if not, would it be hard to implement ? As, at least in my opinion, it's even more useful than /tt ...
Edit : Sorry for spamming such a long message. I've moved the lua errors in a 'spoiler' frame and opened an issue on Wowace.
Thanks for your work anyway ! Cheers !
Benjamin
Since 7.3 the icons are loaded in the chat delayed. For example: The B-Net icons when someone comes online is delayed and displayed. The same is with dbm, wim and the icons of Blizzard. Does anyone have an idea what that is?
How about a module which shows tooltips for links in chat while just hovering over them? Something like this:
It's a cool idea, but I feel like there are already some out there. I'd consider it as a contribution? Do you want to email me, or submit a patch to the repository.
Sure, there are addons out there which can do the same. But why install another addon when Prat can also show the tooltips I'd like to see? ^^
This code is the version I use for myself, but it is not heavily tested. I found no errors while using it, but as I'm the only user, this is not a real field test :D
You can take the code and I can also email it to you if you want. But I know nothing about patches or repositories ^^
To all those who are too lazy to scroll down a little to check previous comments or check recent tickets on the project site (5 seperate tickets all for the same issue!):
It's really easy to fix the CopyChat.lua:868 error:
Open <path to wow>\Interface\Addons\Prat-3.0\modules\CopyChat.Lua in your text editor of choice (I prefer Notepad++) and change line 868 to:
PlaySound(SOUNDKIT.IG_CHAT_BOTTOM);
Many thanks to "crappyusername" for posting this fix down in the comments on Sep 19 2017. Somehow the author(s) missed this fix from the current 3.6.33 version, but hopefully they'll get it corrected ASAP.
Please also remember that all those who create and maintain addons do so in their own time and provide their addons for the rest of us to enjoy free of charge. As such, try not to be an immature moron in your comments when requesting updates! ;)
Sorry I have not been around. Thank you for letting me know about the SoundKit issue. I will fix it right now.
after the update does not work the chat copy (the fix before the update functioned), why make an update that does not work?
Made the same fix to latest release and it worked for me
ridiculous the copy function still doesnt work and i need to edit files AND this addon causes some problems with the interface not allowing me to set focus on someone and forcing me to /reload
Just wanted to say tyvm for such a great addon. Been using it a long time and it is the best chat addon out there.
There is a very easy fix for this.
Go to "Prat-3.0\modules" and locate "CopyChat.lua"
edit and go to 868th line, there should be "PlaySound("igChatBottom");"
Delete that line and save. Reload UI. It should be working now.
Greate fix, now my copy/past works again
/Cheers
The correct fix can be found by simply scrolling down a little bit further! Seriously, just 6 comments before you posted! Was it just to difficult to scroll down that far!
tyvm it worked
for the love of god, update this. it's ridiculous to have to wait this long. people are going to start moving over to something more reliable.
Do you think being a jerk is going to get it done any faster?
/sad