This was originally written as just a text box replacement for tells and checking thechatlog without using sandbox if your multiboxing. After coding a majority of it I expanded to a bigger chat system replacement. Still a work in progress making style patterns for the text.
https://github.com/erupt321/ruptchat
__01.25.21__
Made auto undocked window hiding. This will allow the secondary tab to auto disappear when there's been no activity for 30 seconds. So for battle log if nothing has happened it will autohide, it'll reappear as soon as a log entry shows up.
__12.07.20__
I've been on a bit of a break from the game, but I've added support for the new Assist Channel, some
beta support for Rank #'s showing, but I do not have a mentor character to test fully atm. I've also
fixed some issues with the font calibrator. Namely if the system detects a font that is not support it
will default back to Arial font and re-calibrate again. There's alot of instances where players systems
just seem to not even support what is supposed to be a windows native font I have set. Windower's text
system does not actually detect if you give it a bad font and it will continue to set windows with any
font name you give it.
__09.01.20__
Small bug fix for Battle Flash mentions where the bg color change would also change other windows
bg color due to some issues with windowers text library.
__08.31.20__
Activated Bold/Italic settings if your font has a variant. Also made window format copying function to run after different window cosmetic options are run.
_08.21.20__
Added vanilla_mode option which turns off the styles portion of the addon and enables direct text from the vanilla client, still not 100% on all color codes for this mode. This option can be accessed from //rchat vanilla_mode or from the setup menu.
Did some rewrites on the save functions that was having issues with the recent inclusion of battle log to the saved file. Old table was not being wiped and was causing a error during the save if currently had a large unpurged battle log.
__08.20.20__
Added cacheing for font data now, Should only need on font calibration to populate everything. Fine tuning the wrapping functions some more, namely for breaking up words instead of wrapping to the next line.
__08.18.20__
Huge backend change to how fonts are handled and how width is handled in the addon.
First big thing is there is now a Font Calibrator built into the addon. What this does is load a new font and attempt to figure out if its a Monospace font or not and then detect how large the average letter is to more accurately map out click controls and word wrap functions.
With this change width settings have changed from Character based to Pixel based width settings. So if you had a 115 width prior your new width is probably going to be more like 700.
I've also tweeked some default settings for first time users, I've made both the strict* settings on by default as this is one of the most common questions I get about the addon. The default font has been changed to 'Lucida Sans Typewriter', this was only chosen because it's a default installed windows monospace font.
About monospace vs non. Monospaced fonts have exact width size per character which is the ideal type of font for this addon. If you notice your window moving even with strict on maybe a couple
pixels chances are you aren't using a monospace font. The font calibrator will tell you if your font is 100% monospaced during it's test. For non monospaced font I have put alot of work into
trying to make the addon accomodate for your font's shortcomings. There's a new option called enhancedwhitespace which is defaulted to on. If the addon detects you aren't using a monospace font
it'll try to use this alternative whitespace character to build the menu's. There is a chance some fonts don't actually have this character and will show up as blocky garbage in the menu. You can disable this using the rChat setup menu by right clicking [rChat] or //rchat enhancedwhitespace.
Hopefully this will new addition will help some new users that are scared about switching their
chat windows over.
__08.15.20__
Made a setup menu, if you right click on the [rChat] in the main menu a setup menu will open up, which you can then click on all the setup options to do either a quick setting change or just to view all your changes. Right clicking the [rChat] again will close the menu.
__08.14.20__
Rewrote the scrolling code and chat processor to be universally compatible with scrolling ability.
Now undocked tab can be scrolled just like the Main window and Drops window, and in the future adding
new scrollable windows will be much simplified.
__08.13.20__
Mostly backend cleaning up code and seperating the single file lua into seperate packages.
__08.11.20__
This is a big update as in I've rewritten alot of the backend on tab handling and made click maps fully dynamic. This all in preparation for one of the funner features I've been able to release.
Customizable Tabs.
You now have a tabs.lua file which includes all the tab settings for the addon. Within this file you can add and delete tabs, Rename them, change the ordering. You can also create new custom tabs which you can put custom chat id's you'd like them to receive.
One example:
You set ['All_Exclusions'] = {148,161}
This will now filter out chat id's 148, and 161 from the 'All' type tab. Which are instance queue messages and moogle/campaign messages.
Now we make a Custom Tab with this in your tabs.lua.
{name='Custom',ids={148, 161},tab_type='Normal'},
Now all queue messages and moogle messages will filter into that tab solely. The same can be done with battle chat types to record spell casts perhaps in their own tab.
You can combine Tell/LS1/LS2 into a single tab if you'd like. On initial reload when you've renamed tabs your tables will be empty. You can modify your chat log and rename old tables to your new ones if you want your history to resume.
If you'd like to figure out what chat id's are to what, I have very brief descriptions for quite a few of them in the styles.lua file. But just enable //rchat debug and you can see what id's go for what chat types to use in your custom settings.
__08.08.20__
Changed autotranslate phrases to show up with {}'s in the chatlog and be easier to see.
Added some more effects to Autotranslate bracers, colored them like they are in vanilla chat!
__08.07.20__
After some testing with the archive feature I have changed the way writes are performed to
not degrade performance under heavy logging situations like cleaving or alliance fights.
Archive textlines will buffer until the next scheduled log write. You can always force the log
to write by either reloading the addon or using //rchat save.
I also updated a style format that was causing Erase's to not display properly.
Added //rchat dropswindow toggle.
If splitdrops is active this will enable or disable the window from popping up unless you do abilities
//rchat showdrops to force it.
I also redid how the chat windows are updated to avoid the window processing 8 times a second
when chat packet comes in with multiple entries. Window should just process after last one to make
things smoother.
__08.06.20__
Reworked many of the battle filters, and some of the other filters that can glitch
out here and there with double spaces or reives Area names being misformated. Also
added a format for Zone in message, which means I added a color to the template for that
as well. I also added 2 more chat id's to the incoming_pause list, I haven't had anything
issues with these yet.
__08.05.20__
Added a echo color to the styles / template file.
__08.04.20__
Added Drop window in previous version, fixed some issues it caused with the find function.
Drop window is scrollable just like the main window.
use //rchat splitdrops to enable
Added Archive setting, this will make permanent archive files by CharacterName-Month.log.
Use //rchat archive to enable
Features
*Most usability is point and click.
*Window is draggable as well as clickable.
*All tabs are clickable, all text windows are mouse wheel scrollable. Holding down ALT and clicking a tab will open a second window for that tab's chat.
*Clicking the [ - ] in the upper right corner will minimize the text box and leave just the tab menu.
*New tells recieved while in a none "All"/"Tell" tab will provide a Notification.
*Search system for searching through current tab. Can click to search next until finished.
*Can save as much chat log lines as you'd like but anything over 5000 can lag during save.
*Mentions can be added that alert you when a word is mentioned in a tab.
Newest Features
*Added Color Templates to enable custom color profiles saved in between code updates.
Console Commands
//rchat save (Force a chatlog save)
//rchat find <search terms> (Search current selected tab for search terms
//rchat mentions (Shows mention phrases you have saved for tabs)
//rchat addmention <tab> <phrase> (Add mention phrase for tab)
//rchat delmention <tab> <phrase> (Remove mention phrase for tab)
//rchat hide (Hide's text box from showing)
//rchat show (Show hidden text box)
//rchat drag (Disable Draggable boxes; requested option)
//rchat alpha <0-255> (Change background transparency)
//rchat size <font size> (Change font size, this will increase whole window size)
//rchat font <font name> (Change font, some fonts that are grossly different sizes will affect clickables)
//rchat length <Log Length> (Change log length size)
//rchat dlength <Undocked Length> (Same as Log Length, if set to 0 will use Log_Length settings)
//rchat width <Log Width> (Change log width size; when wordwrap should take effect)
//rchat dwidth <Undocked Width> (Same as Log Width, if set to 0 will use Log_Width settings)
//rchat strict_width (Toggle maintaining the max log width; avoid box shrinking and expanding)
//rchat tab [tab name] (Change tab's without mouse input, goes to next tab if empty)
//rchat undock [tab name] (Opens a second dedicated chat window for that tab, off if empty)
//rchat snapback (When enabled the undocked window will follow your main window
//rchat battle_all (Toggle Battle Chat showing in the All tab)
//rchat battle_off (Toggle Battle Chat being process at all; totally off)
//rchat battle_flash (Toggle Battle Messages forced pop on screen with flashing)
//rchat chatinput (Toggle a small box showing currently typed text)
//rchat inputlocation (Toggle if the chatinput box is on Top or Bottom orientation)
//rchat splitdrops (Toggle if you'd like drops to goto their own window)
*Drops window fades after 30 seconds from last addition*
//rchat showdrops (Forces drops window to open for 120 seconds)
//rchat incoming_pause **EXPERIMENTAL** (Will turn off vanilla windows receiving chat. Coupled with the "Reactive window sizing" setting will make your chat log vanish. This is more visually appealing but you'll be solely relying on this addon for all ingame text. If in doubt just unpause it again.)
===Issues===
*If mouse input lags, enable hardware mouse in windower settings.
*Timestamps could possibly cause some false reads on filters, do recommend you turn it off.
**Usage Examples**
My current usage is keeping battle_all = off, this prevents battle log messages in my main log window
then I launch a undocked 'battle' window so that I now have a split window setup. If I want to scroll
my battle log I'll just click into battle on my main window and scroll. If I'm in the middle of a /tell
conversation I will change the undocked to 'tell'. Plenty of options to customize how you want your windows
setup through log_length / log_width.


