We are gearing up for release, so I'm restarting the thread.
Prat is a light framework for chat modules based on Ace2 libraries.
This thread marks the second major revision of Prat.
The Prat system consists of the core (Prat/Prat.lua) and a number of integrated Prat modules in the modules folder (Prat/modules/*). The core only provides a root slash command ("/prat") and registers a data file (PratDB). Each Prat module is a self-contained unit of functionality. You can choose to use some or all of the Prat modules depending on your individual needs. If you do not want to use a particular module, you can delete its file from the modules folder or you can toggle the module on/off as desired from inside the game.
The entire focus of the Prat system is to add chat related functionality to World of Warcraft. If you are looking for a feature or function that is not currently listed here as available or planned, then please take a moment to let the Prat Development Team know.
Why the name Prat?
Why the name Prat? That's a great question that I've seen asked quite often on the IRC channel. In theory the word Prat loosely translates to Chat in swedish. The system itself has nothing to do with Sweden, however inspiration for the name was drawn from thoughts of The Swedish Chef (Bork! Bork! Bork!), IKEA, Swiss Miss Hot Chocolate (Mmm..), Swedish Meatballs (Mmm..), and Swedish Swimsuit Models (Mmm..). It may help users to accept the name if they, too, think of these things. ^^
These are the authors currently working on the project:
* Sylvanaar of Proudmore
* Fin of Stormrage-EU
* Curney of Uther
If you are a developer interested in contributing to the Prat project, please contact a team member.
These modules are included in the Prat modules folder (Prat/modules/*):
* AddonMessages - Toggles showing hidden addon messages on and off (default=off).
* Buttons - Toggles the chat menu and chat window buttons on and off (default=off).
* ChannelColorMemory - Remembers the colors of channels by channel name.
* ChannelNames - Shortens channel names in the chatframe.
* ChannelSeparator - Separates various channel options in the Blizzard UI (default=on).
* ChatFrames - Options for manipulating chat frames.
* ChatLink - Enables item linking in all channels (default=CHATLINKmode).
* Editbox - Options for editbox position, width, and backdrop alpha (default=attachedTop,widthChatFrame1,visibleBackdrop).
* EventNames - Toggles showing event names on and off (default=off).
* Fading - Toggles the fading in chat windows on and off (default=off).
* FontSize - Sets the font size for chat windows (default=12).
* Highlight (text highlighting options coming soon)
* History - Expands chat history options.
* Justify - Sets the justification for chat windows (default=Left).
* Keybindings - Adds keybindings for different chat channels.
* PlayerNames - Color player names by class, set brackets around player names (default=angledBrackets).
* PopupMessage - Displays chat with your name in a pop up window.
* Scroll - Enables mousewheel scrolling for chat windows (default=on).
* StickyChannels - Toggles sticky of different chat channels on and off (default=on).
* TellTarget - Adds a slash command (/tt) to send a message to your target (default=on).
* Timestamps - Adds timestamps to chat windows (default=on).
* UrlCopy - Makes URL copying easy (default=on).
* Who - Perform a /chatwho on selected channel.
I just made a little handy script for the module AltNames. My guild uses the convention that the guild note for a member is the name of the main character for this member. I think a lot of guilds use something similar. So I figured I'd make a small script that links the note to names of each member. Using the library RollCall-1.0 it turned out to be very easy:
local RC = AceLibrary("RollCall-1.0")
local AltNames = Prat:GetModule("PratAltNames")
local note2name = string.trim
for name in RC:GetIterator("NAME", true) do
local note = RC:GetNote(name)
if type(note) == "string" then
local main = note2name(note)
if RC:HasMember(main) then
AltNames:addAlt(string.format("%s %s", name, main))
In case your guild notes have a different format (but still contains main name in a strict way), just customize the function note2name. It's a very simple script and it can of course not handle typos or otherwise wrong notes. But since it checks that the name obtained from the note is indeed a member, it should be safe to use. (You could modify it slightly to give a list of wrong or missing notes and alert your guild officer if you want.)
I'm not quite sure if this feature is general enough to be included in Prat. But feel free to do so if you want. :)
I am having an issue where the chat window keeps moving up and down on its own at random intervals. It's like it is adjusting itself to make room for another screen element, but there is no other visible screen element that I can see. Basically it shifts the whole chat window up about the same distance that one or two lines of text would take, and stays there for anywhere from 5 seconds to a couple minutes, then it goes back to its original position for the same duration. The movement isn't tied to anything I can find - I can just be running through a zone, or even standing still, not activating any interface elements or getting any text updates in the chat window and it will do it.
I am posting this here because the chat window is the only screen element that exhibits this behavior, but I guess it is entirely possible that something else is moving it. It started a couple weeks ago, I don't recall when. I assumed it would be a known bug and fixed soon, so I didn't worry about it much, but after awhile it seemed obvious that is wasn't getting fixed, so here I am, and I don't see anyone else reporting the same issue. I can always see it jumping out of the corner of my eye and it makes me think there's some new text in the chat window, but then there isn't. I can get a list of my addons and probably some screenshots later if needed. And I'm sorry if this isn't the place to post this (the official thread for Prat seemd the logical place to start though).
1. with one of the recent revisions i'm having trouble configuring prat via niagra. i hide the prat fubar plugin and i was using niagra to get to prat's waterfall config option. using niagra itself does not work to well for conifiguring prat, niagra shows disabled modules and it causes errors when clicking on those modules. anyway, i can no longer access the waterfall config unless i enable the fubar plugin.
can we get better support for niagra and/or a slash command to open up waterfall config (/prat config or something similar).
2. i would like to be able to filter out certain messages from the popup messages. an ignore option would be nice (i have a nickname of "sev", but i would like to ignore messages with the word "severing"). and an option to ignore loot messages with my name in them. could be handy to show loot messages, but i would like the option to ignore them.
and great job with this mod, does everything i could possible want for chat :D
Still no chance to get an option to change the alpha of the popup frame?
Date: 3:44:19 PM, Wednesday, April 11, 2007
Prat: By request, allow changing the alpha of the popup frame. Also fixed a bug with reloading when debug was enabled. And fixed a bug with the coloring of text on the popup frame.
Modified : /trunk/Prat/Prat.lua
Modified : /trunk/Prat/modules/PopupMessage.lua
Yes, it does not work right now, im guessing due to the second registration with aceconsole, it will be fixed shortly.
Date: 4:12:20 PM, Wednesday, April 11, 2007
Prat: Fixed the console options not displaying due to a 2nd aceconsole registration. Using undocumented and non-mixin API now.
Modified : /trunk/Prat/Prat.lua
I posted this on the Prat google project as well, but just in case, I'm going to post here as well:
Prat works great with normal chat frames. However, with DreamChat, only my
playerlevels and classcolors work. Timestamps do not display and colors
seem to be overridden by settings in DreamChat.
It'd be great if somehow Prat could override the DreamChat settings, or if there was a module for Prat that created similar functionality that DreamChat gives (minimize/maximizing the chat windows to one line/multiple dependent on activity)
Prat doesnt change the actual original color of the chat text, ie you set that up using the blizzard chatframe, and likewise would set it up using the dreamchat chatframe.
So guild is green for example on blizzard frames
What prat adds may be colored different, thats something that prat does, it doesnt really care what color the chat text is (except in one case in the ChatEvents module)
So the answer here to is configure the colors you want on the dreamchat frames, using those frames' configuration menu.
Timestamps probably dont work, i could make em work I suppose, but they would only appear on lines which were passed to prat. On the blizzard chat frames we have a hook installed to catch non-chat prints and timestamp them.
Also, any module which is enabled "per frame" you need to use ChatFrame7 to configure DreamChat frames. I have been draging my heels on expanding the "per frame" options, but your settings for chatframe7 in prat will apply to dreamchat. Remember though that only the text formatting modules will apply. Playername, channelname etc. What we might want to do is make sure that those modules which work on external frames, are all given a common category. If you would like to inventory which work and which dont, i'll be glad to mark them.
Prat can provide text rendering services to external chat frames, if there are other frames that you use, let me know, and i'll see if the developer is interested in supporting Prat.
So is there a way to make a module for Prat that would simulate how DreamChat works? Or is it too much work/impossible? It would just be easier (to me) to have a module in Prat that does the chat frame modification when enabled. There is also a strange bug I recently noticed with the WorldDefense (4) channel. If I have the replace disabled, it shows as [4. ]: message instead of [4. WorldDefense]: message.