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.
In reply to MrFIXlT:
Sorry, TBCC.
In reply to MrFIXlT:
I got your latest package and got a huge number of Errors. I tried deleting all saved variables but didn't change anything.
I noticed that the error seens to reference to Ace Libraries in other Addon-Folders (most likely where the Lib got loaded first?). Maybe that helps tracking down the error?
Message: Interface\AddOns\Prat-3.0\modules\Bubbles.lua:466: attempt to call method 'SetBackdropBorderColor' (a nil value)
Time: Thu May 27 16:56:49 2021
Count: 32
Stack: Interface\AddOns\Prat-3.0\modules\Bubbles.lua:466: attempt to call method 'SetBackdropBorderColor' (a nil value)
[string "@Interface\AddOns\Prat-3.0\modules\Bubbles.lua"]:466: in function `?'
[string "@Interface\AddOns\Prat-3.0\modules\Bubbles.lua"]:547: in function `IterateChatBubbles'
[string "@Interface\AddOns\Prat-3.0\modules\Bubbles.lua"]:438: in function `FormatBubbles'
[string "@Interface\AddOns\Prat-3.0\modules\Bubbles.lua"]:403: in function <Interface\AddOns\Prat-3.0\modules\Bubbles.lua:399>
Locals: self = <table> {
SetDefaultModuleLibraries = <function> defined @Interface\AddOns\Details\Libs\AceAddon-3.0\AceAddon-3.0.lua:367
Enable = <function> defined @Interface\AddOns\Details\Libs\AceAddon-3.0\AceAddon-3.0.lua:294
NewModule = <function> defined @Interface\AddOns\Details\Libs\AceAddon-3.0\AceAddon-3.0.lua:235
update = <unnamed> {
}
EnableModule = <function> defined @Interface\AddOns\Details\Libs\AceAddon-3.0\AceAddon-3.0.lua:332
modules = <table> {
}
GetModule = <function> defined @Interface\AddOns\Details\Libs\AceAddon-3.0\AceAddon-3.0.lua:210
IterateEmbeds = <function> defined @Interface\AddOns\Details\Libs\AceAddon-3.0\AceAddon-3.0.lua:442
FormatCallback = <function> defined @Interface\AddOns\Prat-3.0\modules\Bubbles.lua:457
defaultModuleLibraries = <table> {
}
IterateChatBubbles = <function> defined @Interface\AddOns\Prat-3.0\modules\Bubbles.lua:531
SetDefaultModulePrototype = <function> defined @Interface\AddOns\Details\Libs\AceAddon-3.0\AceAddon-3.0.lua:409
font = true
name = "Prat_Bubbles"
IsEnabled = <function> defined @Interface\AddOns\Details\Libs\AceAddon-3.0\AceAddon-3.0.lua:451
orderedModules = <table> {
}
DisableModule = <function> defined @Interface\AddOns\Details\Libs\AceAddon-3.0\AceAddon-3.0.lua:350
FormatBubbles = <function> defined @Interface\AddOns\Prat-3.0\modules\Bubbles.lua:437
OnModuleDisable = <function> defined @Interface\AddOns\Prat-3.0\modules\Bubbles.lua:433
PL = <table> {
}
APLyOptions = <function> defined @Interface\AddOns\Prat-3.0\modules\Bubbles.lua:411
throttle = 0.100000
fontsize = 14
OnModuleEnable = <function> defined @Interface\AddOns\Prat-3.0\modules\Bubbles.lua:394
db = <table> {
}
SetDefaultModuleState = <function> defined @Interface\AddOns\Details\Libs\AceAddon-3.0\AceAddon-3.0.lua:387
icons = true
_classic_era = false
SetEnabledState = <function> defined @Interface\AddOns\Details\Libs\AceAddon-3.0\AceAddon-3.0.lua:424
format = true
enabledState = true
color = true
shorten = false
baseName = "Prat-3.0"
RestoreDefaultsCallback = <function> defined @Interface\AddOns\Prat-3.0\modules\Bubbles.lua:523
RestoreDefaults = <function> defined @Interface\AddOns\Prat-3.0\modules\Bubbles.lua:441
IsModule = <function> defined @Interface\AddOns\Details\Libs\AceAddon-3.0\AceAddon-3.0.lua:217
IterateModules = <function> defined @Interface\AddOns\Details\Libs\AceAddon-3.0\AceAddon-3.0.lua:437
OnValueChanged = <function> defined @Interface\AddOns\Prat-3.0\modules\Bubbles.lua:427
transparent = false
GetName = <function> defined @Interface\AddOns\Details\Libs\AceAddon-3.0\AceAddon-3.0.lua:279
moduleName = "Bubbles"
defaultModuleState = true
Disable = <function> defined @Interface\AddOns\Details\Libs\AceAddon-3.0\AceAddon-3.0.lua:314
}
frame = <unnamed> {
0 = <userdata>
String = <unnamed> {
}
BottomRightCorner = <unnamed> {
}
OnLoad = <function> defined @Interface\SharedXML\NineSlice.lua:266
TopEdge = <unnamed> {
}
Tail = <unnamed> {
}
layoutType = "ChatBubble"
RightEdge = <unnamed> {
}
LeftEdge = <unnamed> {
}
BottomEdge = <unnamed> {
}
Center = <unnamed> {
}
GetFrameLayoutType = <function> defined @Interface\SharedXML\NineSlice.lua:262
TopRightCorner = <unnamed> {
}
TopLeftCorner = <unnamed> {
}
inset = 16
BottomLeftCorner = <unnamed> {
}
}
fontstrin
In reply to Rerox:
If you go into your AddOns\Prat-3.0\frames\ subfolder is there a backdropcompat.xml file in there?
In reply to MrFIXlT:
yes
In reply to MrFIXlT:
Getting this error:
Message: [string "Prat_PopupFrame:OnLoad"]:1: attempt to call method 'SetBackdrop' (a nil value)
Time: Thu May 27 19:39:40 2021
Count: 1
Stack: [string "Prat_PopupFrame:OnLoad"]:1: attempt to call method 'SetBackdrop' (a nil value)
Locals:
In reply to MrFIXlT:
Thank you. However I got the following Lua Errors on Logon with installing your package.
Message: [string "Prat_PopupFrame:OnLoad"]:1: attempt to call method 'SetBackdrop' (a nil value)
Time: Thu May 27 18:40:37 2021
Count: 1
Stack: [string "Prat_PopupFrame:OnLoad"]:1: attempt to call method 'SetBackdrop' (a nil value)
[string "=[C]"]: in function `SetBackdrop'
[string "*:OnLoad"]:1: in function <[string "*:OnLoad"]:1>
Locals:
The following one I only get when any chat bubble is popping up and the Lua Error count keeps going until that chat bubble goes away.
Message: Interface\AddOns\Prat-3.0\modules\Bubbles.lua:466: attempt to call method 'SetBackdropBorderColor' (a nil value)
Time: Thu May 27 18:41:25 2021
Count: 104
Stack: Interface\AddOns\Prat-3.0\modules\Bubbles.lua:466: attempt to call method 'SetBackdropBorderColor' (a nil value)
[string "=[C]"]: in function `SetBackdropBorderColor'
[string "@Interface\AddOns\Prat-3.0\modules\Bubbles.lua"]:466: in function `?'
[string "@Interface\AddOns\Prat-3.0\modules\Bubbles.lua"]:547: in function `IterateChatBubbles'
[string "@Interface\AddOns\Prat-3.0\modules\Bubbles.lua"]:438: in function `FormatBubbles'
[string "@Interface\AddOns\Prat-3.0\modules\Bubbles.lua"]:403: in function <Interface\AddOns\Prat-3.0\modules\Bubbles.lua:399>
Locals:
In reply to mintik:
I was able to reproduce them finally, I'll try to fix them.
In reply to mintik:
Try the new package posted here
In reply to MrFIXlT:
Thank you, no Lua Errors.
I am having an issue with Prat whenever Chat bubbles appear from characters via party chat or /say.
Prat will throw errors for the duration of the bubble, then stop when the bubbles leave the screen.
In reply to Superthrust:
There is no 3.9.2 version for Prat, so that's an unofficial release.
You should report it to the person that made it.
Hey all, see MrFIXIT's changes below, but I took his (and a few others) fixes from the various forks and hosted a zip file of the updated Prat that works with BCC here:
https://github.com/glajchs/prat-3-0/files/6519747/Prat-3.9.2-bcc.zip
In reply to Puzzelda:
nvm found a fix
In reply to Puzzelda:
Thank you so much!
In reply to Puzzelda:
nice job
thanks a lot
In reply to Puzzelda:
Thanks man, you saved my life~
In reply to Puzzelda:
Thanks for the hard work fixing this. Getting an error with Original Buttons enabled.
3x Prat-3.0-3.9.2\modules\OriginalButtons.lua:609: attempt to index global 'QuickJoinToastButton' (a nil value)
[string "@Prat-3.0-3.9.2\modules\OriginalButtons.lua"]:609: in function `OnModuleEnable'
[string "@Prat-3.0-3.9.2\addon\modules.lua"]:189: in function <Prat-3.0\addon\modules.lua:178>
[string "=[C]"]: ?
[string "@4H-Assist\Libs\AceAddon-3.0\AceAddon-3.0-13.lua"]:70: in function <4H-Assist\Libs\AceAddon-3.0\AceAddon-3.0.lua:65>
[string "@4H-Assist\Libs\AceAddon-3.0\AceAddon-3.0-13.lua"]:527: in function <4H-Assist\Libs\AceAddon-3.0\AceAddon-3.0.lua:520>
[string "=(tail call)"]: ?
[string "@Prat-3.0-3.9.2\addon\options-Options.lua"]:518: in function <Prat-3.0\addon\options.lua:499>
[string "=[C]"]: ?
[string "@Attune\Libs\AceConfig-3.0-3\AceConfigDialog-3.0\AceConfigDialog-3.0-81.lua"]:51: in function <...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0.lua:49>
[string "@Attune\Libs\AceConfig-3.0-3\AceConfigDialog-3.0\AceConfigDialog-3.0-81.lua"]:847: in function <...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0.lua:668>
[string "=[C]"]: ?
[string "@4H-Assist\Libs\AceGUI-3.0\AceGUI-3.0-41.lua"]:72: in function <...face4H-Assist\Libs\AceGUI-3.0\AceGUI-3.0.lua:70>
[string "@4H-Assist\Libs\AceGUI-3.0\AceGUI-3.0-41.lua"]:306: in function `Fire'
[string "@4H-Assist\Libs\AceGUI-3.0-41\widgets\AceGUIWidget-DropDown.lua"]:437: in function <...st\Libs\AceGUI-3.0\widgets\AceGUIWidget-DropDown.lua:428>
[string "=[C]"]: ?
[string "@4H-Assist\Libs\AceGUI-3.0\AceGUI-3.0-41.lua"]:72: in function <...face4H-Assist\Libs\AceGUI-3.0\AceGUI-3.0.lua:70>
[string "@4H-Assist\Libs\AceGUI-3.0\AceGUI-3.0-41.lua"]:306: in function `Fire'
[string "@4H-Assist\Libs\AceGUI-3.0-41\widgets\AceGUIWidget-DropDown-Items.lua"]:351: in function <...s\AceGUI-3.0\widgets\AceGUIWidget-DropDown-Items.lua:341>
In reply to Puzzelda:
Thanks for the hard work fixing this. Getting an error with Original Buttons enabled.
3x Prat-3.0-3.9.2\modules\OriginalButtons.lua:609: attempt to index global 'QuickJoinToastButton' (a nil value)
In reply to Puzzelda:
You didn't actually. The client check fix is not in and there's other problems with that package.
I'd suggest people wait for an official release or if they want to try userfixes only do it if they understand what the code does.
Throwing random snippets into a file won't work really.
Prat is a complex addon, depending what modules and what options one has enabled / disabled you might not even get any errors or get more / different ones.
To fix Prat 3.9.1-1-g6978fc8-classic Prat 3.9.1-1-g6978fc8-classic
Prat-3.0\addon\addon.lua:91 to
You could apparently split the checks to separate flags for bcc / classic but it's not needed at the moment and keeps other conditional checks simple.
Then
Prat-3.0\modules\PlayerNames.lua:1131 replace that whole mess of dead code ("PARTY_MEMBERS_CHANGED" event hasn't existed since MoP)
DELETE that block and replace with
Save both files and you're done.