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.
Retail. After a /reload.
1x ...rfacePrat-3.0-3.8.26\modules\ChannelColorMemory.lua:322: attempt to index local 'color' (a nil value)
[string "@Prat-3.0-3.8.26\modules\ChannelColorMemory.lua"]:322: in function `?'
[string "@Ace3\CallbackHandler-1.0\CallbackHandler-1.0-7.lua"]:119: in function <...Ons\Ace3\CallbackHandler-1.0\CallbackHandler-1.0.lua:119>
[string "=[C]"]: ?
[string "@Ace3\CallbackHandler-1.0\CallbackHandler-1.0-7.lua"]:29: in function <...Ons\Ace3\CallbackHandler-1.0\CallbackHandler-1.0.lua:25>
[string "@Ace3\CallbackHandler-1.0\CallbackHandler-1.0-7.lua"]:64: in function `Fire'
[string "@Ace3\AceEvent-3.0\AceEvent-3.0-4.lua"]:120: in function <Ace3\AceEvent-3.0\AceEvent-3.0.lua:119>
When I log into retail the chat editbox does not come up at all ( i can still type I just can't see what Im typing). Only way I've found to fix it is to open up prat options and toggle the edit box to a different position and back again and it fixes it.
Any sort of fix for #112 ?
anyone know how to get rid of the 2 pages on the top left of the chat boxes when i click on them it says chat frame 1 trying to get rid pages button
Hello, I have a question. I used to use the chat from elvui and they have chat loot icons in there. Is there no option for Chat Loot Icons here in "prat 3.0"? Then the chat would be so perfect.
Many thanks for making the chat fade. And that you can change the background color! Thank you so much! I was just looking for a function to create a minimal Ui.
I just got this error when logging into Classic. I could be wrong, but it looks to me like it's a misspelling of the word "select" in line 735 of the code.
2020-07-07 17:00:42
ID: 1
Error occured in: Global
Count: 1
Message: ..\AddOns\Prat-3.0\modules\Memory.lua line 735:
attempt to call global 'selct' (a nil value)
Debug:
Prat-3.0\modules\Memory.lua:735: ?()
...\AddOns\DataStore\libs\AceTimer-3.0\AceTimer-3.0.lua:55:
...\AddOns\DataStore\libs\AceTimer-3.0\AceTimer-3.0.lua:50
Locals:
self = <table> {
GetChannelMap = <function> defined @Interface\AddOns\Prat-3.0\modules\Memory.lua:659
SetDefaultModuleLibraries = <function> defined @Interface\AddOns\DataStore\libs\AceAddon-3.0\AceAddon-3.0.lua:367
errorcount = 1
CheckChannels = <function> defined @Interface\AddOns\Prat-3.0\modules\Memory.lua:670
Enable = <function> defined @Interface\AddOns\DataStore\libs\AceAddon-3.0\AceAddon-3.0.lua:294
NewModule = <function> defined @Interface\AddOns\DataStore\libs\AceAddon-3.0\AceAddon-3.0.lua:235
LoadSettings = <function> defined @Interface\AddOns\Prat-3.0\modules\Memory.lua:775
EnableModule = <function> defined @Interface\AddOns\DataStore\libs\AceAddon-3.0\AceAddon-3.0.lua:332
modules = <table> {
}
GetModule = <function> defined @Interface\AddOns\DataStore\libs\AceAddon-3.0\AceAddon-3.0.lua:210
IterateEmbeds = <function> defined @Interface\AddOns\DataStore\libs\AceAddon-3.0\AceAddon-3.0.lua:442
Disable = <function> defined @Interface\AddOns\DataStore\libs\AceAddon-3.0\AceAddon-3.0.lua:314
SecureHookScript = <function> defined @Interface\AddOns\HandyNotes_NPCs (Classic)\libs\AceHook-3.0\AceHook-3.0.lua:410
defaultModuleLibraries = <table> {
}
TimeLeft = <function> defined @Interface\AddOns\DataStore\libs\AceTimer-3.0\AceTimer-3.0.lua:172
Prat_PreAddMessage = <function> defined @Interface\AddOns\Prat-3.0\modules\Memory.lua:856
ready = true
RawHookScript = <function> defined @Interface\AddOns\HandyNotes_NPCs (Classic)\libs\AceHook-3.0\AceHook-3.0.lua:395
ScheduleRepeatingTimer = <function> defined @Interface\AddOns\DataStore\libs\AceTimer-3.0\AceTimer-3.0.lua:129
CancelAllTimers = <function> defined @Interface\AddOns\DataStore\libs\AceTimer-3.0\AceTimer-3.0.lua:160
LoadFrameSettingsForFrame = <function> defined @Interface\AddOns\Prat-3.0\modules\Memory.lua:560
defaultModuleState = true
GetName = <function> defined @Interface\AddOns\DataStore\libs\AceAddon-3.0\AceAddon-3.0.lua:279
baseName = "Prat-3.0"
UnregisterAllEvents = <function> defined @Interface\AddOns\DataStore\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:174
SaveSettingsForFrame = <function> defined @Interface\AddOns\Prat-3.0\modules\Memory.lua:534
name = "Prat_Memory"
LeavePlaceholderChannels = <function> defined @Interface\AddOns\Prat-3.0\modules\Memory.lua:646
IsEnabled = <function> defined @Interface\AddOns\DataStore\libs\AceAddon-3.0\AceAddon-3.0.lua:451
orderedModules = <table> {
}
ScheduleTimer = <function> defined @Interface\AddOns\DataStore\libs\AceTimer-3.0\AceTimer-3.0.lua:94
DisableModule = <function> defined @Interface\AddOns\DataStore\libs\AceAddon-3.0\AceAddon-3.0.lua:350
SetDefaultModulePrototype = <function> defined @Interface\AddOns\DataStore\libs\AceAddon-3.0\AceAddon-3.0.lua:409
LoadChatSettingsForFrame = <function> defined @Interface\AddOns\Prat-3.0\modules\Memory.lua:605
needsLoading = true
SaveSettings = <function> defined @Interface\AddOns\Prat-3.0\modules\Memory.lua:515
RegisterMessage = <function> defined @Interface\AddOns\DataStore\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:90
HookScript = <function> defined @Interface\AddOns\HandyNotes_NPCs (Classic)\libs\AceHook-3.0\AceHook-3.0.lua:366
OnModuleEnable = <function> defined @Interface\AddOns\Prat-3.0\modules\Memory.lua:503
PLAYER_ENTERING_WORLD = <function> defined @Interface\AddOns\Prat-3.0\modules\Memory.lua:495
IsHooked = <function> defined @Interface\AddOns\HandyNotes_NPCs (Classic)\libs\AceHook-3.0\AceHook-3.0.lua:493
PL = <table> {
}
CancelTimer = <function> defined @Interface\AddOns\DataStore\libs\AceTimer-3.0\AceTimer-3.0.lua:147
IsModule = <function> defined @Interface\AddOns\DataStore\libs\AceAddon-3.0\AceAddon-3.0.lua:217
db = <table> {
}
SetDefaultModuleState = <function> defined @Interface\AddOns\DataStore\libs\AceAddon-3.0\AceAddon-3.0.lua:387
RestoreChannels = <function> defined @Interface\AddOns\Prat-3.0\modules\Memory.lua:719
SendMessage = <function> defined @Interface\AddOns\DataStore\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:59
SetEnabledState = <function> defined @Interface\AddOns\DataStore\
AddOns:
Swatter, v8.2.6377 (SwimmingSeadragon)
Altoholic, vClassic v1.13.4-014
Armory, vv1.7.0
AucAdvanced, v8.2.6430 (SwimmingSeadragon)
AucFilterBasic, v8.2.6364 (SwimmingSeadragon)
AucStatHistogram, v8.2.6366 (SwimmingSeadragon)
AucStatiLevel, v8.2.6370 (SwimmingSeadragon)
AucStatPurchased, v8.2.6367 (SwimmingSeadragon)
AucStatSimple, v8.2.6399 (SwimmingSeadragon)
AucStatStdDev, v8.2.6369 (SwimmingSeadragon)
AucUtilFixAH, v8.2.6371 (SwimmingSeadragon)
BagBrother, v
Bagnon, v8.3.5
BeanCounter, v8.2.6434 (SwimmingSeadragon)
DataStore, vv1.13.013
DataStoreAuctions, vv1.13-013
DataStoreCharacters, vv1.13-013
DataStoreContainers, vv1.13-013
DataStoreCrafts, vv1.13-013
DataStoreInventory, vv1.13-013
DataStoreMails, vv1.13-013
DataStoreQuests, vv1.13-013
DataStoreReputations, vv1.13-013
Dominos, v8.3.11
DominosCast, v
DominosProgress, v
DominosRoll, v
Enchantrix, v8.2.6428 (SwimmingSeadragon)
GatherMate2, v1.45.5
GatherMateSharing, vv1.12
GTFO, v4.55
HandyNotes, vv1.5.10
HandyNotesNPCsClassic, v1.23
Informant, v8.2.6374 (SwimmingSeadragon)
NovaWorldBuffs, v1.69
Pawn, v2.3.29
Postal, vv3.6.1
Prat30, v3.8.25-11-g44ac97d
Prat30Libraries, v
Questie, v6.0.0
SellJunk, v3.0.20
SexyMap, vv5-classic
SortBags, v1.0.0
Stubby, v8.2.6376 (SwimmingSeadragon)
TomTom, vv11304-1.1.2
VendorPrice, v1.3.5
BlizRuntimeLib_enUS v1.13.5.11305 <none>
(ck=596)
In reply to Telstars:
Should be fixed - thank you!
Got this error after removing the communities from my chat window, and my communities got re-added... I can't get rid of them!!!
Message: Interface\FrameXML\SocialQueue.lua:219: attempt to index local 'rhs' (a nil value)
Time: Mon Jul 6 16:58:37 2020
Count: 1
Stack: Interface\FrameXML\SocialQueue.lua:219: attempt to index local 'rhs' (a nil value)
[string "@Interface\FrameXML\SocialQueue.lua"]:219: in function <Interface\FrameXML\SocialQueue.lua:217>
[string "=[C]"]: in function `sort'
[string "@Interface\FrameXML\SocialQueue.lua"]:217: in function `SocialQueueUtil_SortGroupMembers'
[string "@Interface\FrameXML\QuickJoin.lua"]:391: in function `UpdateAll'
[string "@Interface\FrameXML\QuickJoin.lua"]:379: in function `Init'
[string "@Interface\FrameXML\QuickJoin.lua"]:347: in function `UpdateAll'
[string "@Interface\FrameXML\QuickJoin.lua"]:321: in function `Init'
[string "@Interface\FrameXML\QuickJoin.lua"]:19: in function <Interface\FrameXML\QuickJoin.lua:12>
Locals: lhs = <table> {
clubId = 361316881
guid = "Player-104-061FE3E7"
}
rhs = nil
lhsName = ""
_ = ""
lhsRelationship = "bnfriend"
(*temporary) = <function> defined @Interface\FrameXML\SocialQueue.lua:170
(*temporary) = <table> {
isFriend = false
isDND = false
isFavorite = false
gameAccountInfo = <table> {
}
accountName = ""
battleTag = "Zhagas#1618"
note = ""
rafLinkType = 0
bnetAccountID = 170
appearOffline = false
customMessage = ""
lastOnlineTime = 1594072366
customMessageTime = 0
isAFK = false
isBattleTagFriend = false
}
(*temporary) = ""
(*temporary) = ""
(*temporary) = "bnfriend"
(*temporary) = "|HBNplayer::170:0:0:0"
(*temporary) = "attempt to index local 'rhs' (a nil value)"
relationshipPriorityOrdering = <table> {
guild = 3
club = 4
bnfriend = 1
wowfriend = 2
}
There seems to be an Issue that the Memory Feature tries to reconnect to the Trade Channel even if you are not in the city. After you go into a city. it will not join the channel. You have to rejoin it manually or with a UI reload. Also I noticed, the rejoin will be tried 3-5 times. My guildmate mentioned that I left and rejoined a custom channel 5 times after reloading the UI. Disabled this feature for now since the trade channel thing is annoying me too much now.
In reply to Breakerzeus:
If you don't mind helping the cause - can you make a bug report and follow up on requests for additional information.
This did happen with earlier implementations, but about 2 weeks ago it stabilized, and these mishaps do not occur for me.
You also need to understand how it works. If you are not in the right channels, or they have the wrong channel number. It leaves all your channels, and joins them anew in order to get them on the correct numbered channel.
If something goes wrong and the end result of channel joining is incorrect, it repeats the process starting with leaving all the channels. After a few attempts it gives up.
In reply to sylvanaar:
Thanks for the reply. I have created a report: https://github.com/sylvanaar/prat-3-0/issues/114
PS: I tried to reinstall the addon but it won't change anything.
Getting that error pretty often, mostly at login
11x Prat-3.0-3.8.25-7-g7ac82a6\modules\Scrollback.lua:144: attempt to index a nil value
Prat-3.0-3.8.25-7-g7ac82a6\modules\Scrollback.lua:144: in function <Prat-3.0\modules\Scrollback.lua:142>
(tail call): ?
[C]: in function `AddMessage'
FrameXML\RestrictedInfrastructure.lua:94: in function <FrameXML\RestrictedInfrastructure.lua:93>
[C]: ?
FrameXML\RestrictedInfrastructure.lua:109: in function <FrameXML\RestrictedInfrastructure.lua:107>
[C]: ?
[C]: ?
FrameXML\RestrictedInfrastructure.lua:117: in function `print'
SavedClassic\SavedClassic-1.19.lua:17: in function <SavedClassic\SavedClassic.lua:17>
SavedClassic\SavedClassic-1.19.lua:153: in function <SavedClassic\SavedClassic.lua:152>
[C]: ?
...ceAdiBags\libs\AceAddon-3.0\AceAddon-3.0-12.lua:70: in function <...ceAdiBags\libs\AceAddon-3.0\AceAddon-3.0.lua:65>
...ceAdiBags\libs\AceAddon-3.0\AceAddon-3.0-12.lua:527: in function `EnableAddon'
In reply to GregoryWW:
Still have this error even with latest version
In reply to GregoryWW:
Fix didn't make it into the release - but it should be on the alpha
In reply to sylvanaar:
Using latest alpha and still get this on login with unguilded character.
Timestamp that I normally use is server time, so I unchecked the "Use local time" from the option, however, it is still using local time for me, I don't know why
Hi!
Is there a way to have chat history accross characters?
So if I log over to a twink, I can continue chatting in guild chat, or scroll up in looking for group, see messages that were sent when I was back on the other char?
Thanks,
Marco
In reply to dieckde:
Its a requested feature - however it will use a lot of memory. I am thinking about it - but if you want you should add a feature request on GitHub
In reply to sylvanaar:
I will go ahead and enlist this on Github.
But doesn't it already store history chat per character, and shows the last X lines that happened to the character?
Why should memory usage be different if this doesn't happen on a per-character, but on a per-account (or per-realm / per-faction) basis?
hello
is their away to hide the combat log tab?