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.
why when i "copy" text" do i only get 10 lines or so?
First of all, thank you again for re-enabling Smart Group using my suggested code from before. Now, I come with a change.
My previous code didn't account for the difference in queued instances and home instances. This code should encompass any situation now. Even though I think arenas have instance chat, I assume they still use party chat. I don't pvp much, so I'm not quite sure of that.
Added. Thank you for your contribution to the project!
You are very welcome!
please forgive, total newb here... how do i change the format of the time stamp? and I am visually challenged so I changed the font size, but need a really big chat window now... how do I resize and undock it?
thank you,
sammy
I've been getting horrid errors repeatedly. this is the one that keeps happening captured by bugsack
101x Prat-3.0-3.6.1\modules\PlayerNames.lua:1460: Usage: GetPlayerInfoByGUID("playerGUID")
[C]: in function `GetPlayerInfoByGUID'
Prat-3.0-3.6.1\modules\PlayerNames.lua:1460: in function `?'
...Ons\Ace3\CallbackHandler-1.0\CallbackHandler-1.0-6.lua:145: in function <...Ons\Ace3\CallbackHandler-1.0\CallbackHandler-1.0.lua:145>
[string "safecall Dispatcher[4]"]:4: in function <[string "safecall Dispatcher[4]"]:4>
[C]: ?
[string "safecall Dispatcher[4]"]:13: in function `?'
...Ons\Ace3\CallbackHandler-1.0\CallbackHandler-1.0-6.lua:90: in function `Fire'
Prat-3.0-3.6.1\addon\addon.lua:277: in function <Prat-3.0\addon\addon.lua:259>
(tail call): ?
(tail call): ?
WIM\Modules\History-History.lua:1261: in function `func'
WIM\Modules\History-History.lua:1175: in function `Process'
WIM\Modules\History-History.lua:1195: in function <WIM\Modules\History.lua:1186>
Locals:
nil
I just resurrected one of my character to play with, and i noticed when i start to facesmash (quickly) normal 1-9 buttons to cast spells (regardless of actually being in a combat, or even having a target), my framerate drops noticeably, and my camera movement goes a bit choppy. so i turned off every addon and it was fine, then started to enable one by one, and got choppy again at Prat3. Then did the same again, but with the modules, and PlayerNames was the one i could toggle for noticeable lagginess. Then went to its option and played the same routine over and finally found the "Color Names Everywhere" as the final culprit, so i turned that off.
I have no error message, but if this information helps anyone, there you go ^^
Ps: these buttons are macros, and do contain names as target for spells. if this is relevant.
block addon greeting messages ?
Having a small issue.
Little problem with Prat. Every time I reload the ui or start the game up the chat background has turned white. All I need to do is open the settings and hit ok as they are still correct. The chatframe alpha in the settings does nothing to help. Have also tried many other things before resorting to posting this.
Here is a vid I made to show you.
Should be fixed now
Message: Interface\AddOns\Prat-3.0\services\chatsections.lua:607: attempt to call field 'RAID_CLASS_COLORS' (a table value)
Time: 12/21/15 23:22:38
Count: 139
Stack: Interface\AddOns\Prat-3.0\services\chatsections.lua:607: in function `SplitChatMessage'
Interface\AddOns\Prat-3.0\addon\addon.lua:600: in function <Interface\AddOns\Prat-3.0\addon\addon.lua:575>
(tail call): ?
Interface\FrameXML\ChatFrame.lua:2721: in function `ChatFrame_OnEvent'
[string "*:OnEvent"]:1: in function <[string "*:OnEvent"]:1>
Locals: frame = ChatFrame10 {
0 = <userdata>
isUninteractable = false
flashTimer = 0
isInitialized = 1
originalShow = <function> defined =[C]:-1
tellTimer = 11147.884
resizeButton = ChatFrame10ResizeButton {
}
buttonFrame = ChatFrame10ButtonFrame {
}
Hide = <function> defined @Interface\FrameXML\FrameLocks.lua:121
alternativeDefaultLanguage = "Common"
oldAlpha = 0.15686275064945
channelList = <table> {
}
defaultLanguage = "Common"
clickAnywhereButton = ChatFrame10ClickAnywhereButton {
}
buttonSide = "left"
editBox = ChatFrame10EditBox {
}
Show = <function> defined @Interface\FrameXML\FrameLocks.lua:125
isLocked = true
name = "Chat 10"
originalHide = <function> defined =[C]:-1
zoneChannelList = <table> {
}
AddMessage = <function> defined @Interface\AddOns\BigDebuffs\libs\AceHook-3.0\AceHook-3.0.lua:100
messageTypeList = <table> {
}
}
event = "CHAT_MSG_CHANNEL"
arg1 = "{g1} you are"
arg2 = "Kronenburg-Outland"
arg3 = ""
arg4 = "2. Trade - City"
arg5 = "Kronenburg"
arg6 = ""
arg7 = 2
arg8 = 2
arg9 = "Trade - City"
arg10 = 0
arg11 = 7195
arg12 = "Player-1301-07C4CB5B"
arg13 = 0
arg14 = false
arg15 = false
arg16 = nil
arg17 = nil
type = "CHANNEL"
info = <table> {
colorNameByClass = false
flashTab = false
b = 0.75294125080109
r = 1
id = 18
sticky = 1
flashTabOnGeneral = false
g = 0.75294125080109
}
s = <table> {
GUID = "Player-1301-07C4CB5B"
lL = ""
Ll = ""
nN = ""
cC = "["
LANGUAGE_NOSHOW = ""
Cc = "] "
CHANNELNUM = "2"
ZONE = "City"
TYPEPREFIX = ""
PLAYERLINKDATA = ":7195:CHANNEL:2"
PLAYERLINK = "Kronenburg"
Zz = ""
CHANNEL = "Trade"
CHANLINK = "channel:channel:2"
zZ = " - "
NN = ""
MESSAGE = "{g1} you are"
}
kill = nil
newarg1 = "{g1} you are"
newarg2 = "Kronenburg-Outland"
newarg3 = ""
newarg4 = "2. Trade - City"
newarg5 = "Kronenburg"
newarg6 = ""
newarg7 = 2
newarg8 = 2
newarg9 = "Trade - City"
newarg10 = 0
newarg11 = 7195
newarg12 = "Player-1301-07C4CB5B"
newarg13 = 0
newarg14 = false
newarg15 = false
newarg16 = nil
newarg17 = nil
chatGroup = "CHANNEL"
chatTarget = "2"
presenceID = nil
chatget = "%s: "
arg2 = "Kronenburg"
arg6 = ""
arg3 = ""
arg9 = "Trade - City"
arg7 = 2
term = "g1"
(for generator) = <function> defined =[C]:-1
(for state) = nil
(for control) = "{g1}"
tag = "{g1}"
groupIndex = 1
groupList = "["
(for index) = 1
(for limit) = 2
(for step) = 1
i = 1
name = "Vánishbrb-Aegwynn"
rank = 2
subgroup = 1
level = 100
class = "Rogue"
classFileName = "ROGUE"
(*temporary) = <table> {
HUNTER = <table> {
}
WARRIOR = <table> {
}
PALADIN = <table> {
}
MAGE = <table> {
}
PRIEST = <table> {
}
WARLOCK = <table> {
}
SHAMAN = <table> {
}
DEATHKNIGHT = <table> {
}
DRUID = <table> {
}
MONK = <table> {
}
ROGUE = <table> {
}
}
(*temporary) = "ROGUE"
(*temporary) = "attempt to call field 'RAID_CLASS_COLORS' (a table value)"
strsub = <function> defined =[C]:-1
_G = <table> {
ContainerFrame5Item7 = ContainerFrame5Item7 {
}
MultiCastActionButton6Cooldown = MultiCastActionButton6Cooldown {
}
MerchantItem9ItemButtonStock = MerchantItem9ItemButtonStock {
}
GetTrainerServiceTypeFilter = <function> defined =[C]:-1
UNIT_NAMES_COMBATLOG_TOOLTIP = "Color unit names."
UNIT_NAMEPLATES_TYPE_TOOLTIP_3 = "This method avoids overlapping nameplates by spreading them out horizontally and vertically."
AchievementFrameStatsBG = AchievementFrameStatsBG {
}
SetTrainerServiceTypeFilter = <function> defined =[C]:-1
EventTraceFrameButton7HideButton = EventTraceFrameButton7H
I got this error with a short freeze, any solution ?
Is there a way to have two outputs for a custom filter? I would like to have a trigger send me a message through default & raid warning (to alert me to it), as the default output option doesn't really add anything that makes it stand out from normal chatter.
Additionally, is there a way to exclude self from the filter? My macro has my filter word and it'd be really cool to not see it come through an output method!
There is a secondary output option yes. I am not sure how you are using it, but it is possible in some cases
Yeah I saw the secondary output, but it greyed out all the output options and it didn't output it to anything, from what I saw.
http://imgur.com/a/D0vzW here is my filter with options
Also, I noticed that the filters are case sensitive, is there a way to turn that off?
No way to turn of case sensitive. The search string a a lua regex so you could do something like [Ff][Oo][Oo][Bb][Aa][Rr]
So you can't check secondary output? Hrm. I'm not sure why that is. I'll have to look into it.
I can turn on "secondary output" in the first picture in the album, but it greys out all options in the third picture.
And thanks for the help!
Sooo what i can do with those lags dude? I hope you will answer...
Do you have an error mod installed. Install Bugrabber and see if there are a bunch of errors occuring. That is usually the cause.
buggrubber doesnt show any errors =\
I posted an error in a reply to your first comment about the lag. It's just slightly down the page.
There's also a ticket on wowace that reports the same exact error as what I posted. It's this ticket: http://www.wowace.com/addons/prat-3-0/tickets/750-chatsections-error/