Current Features/Functionality
TabbyChat is a client-side mod for Minecraft that aims to make the multiplayer chat interface more organized, managable, and user-friendly. It can be installed (or loaded) into the Minecraft client by patching minecraft.jar or loaded at runtime via several different supported APIs.
Primary Features
The primary feature of TabbyChat is to organize chat messages into different channels, and to represent those channels via tab-like buttons displayed above the chat interface. There are several different ways to configure TabbyChat to organize chat, including:
Auto-searching for new chat channels or PM messages
Selecting the appropriate Chat-Channel delimiters and manually creating the desired tabs
Using custom filters to direct messages matching the desired expression to a specific tab
Custom Filters
Custom filters allow the user to tell TabbyChat to perform various actions when a chat message matches the defined Regular Expression. These actions include the following:
Highlight the matching text (with color and/or formatting)
Play a notification sound
Send the message to a specific tab
Send the message to all tabs
Prevent the message from displaying
Additional Features
Unread Message Notifications
Timestamps prepended to chat messages
Suppress spammed chat messages
Log all chat to logfile with timestamps
Force Unicode font rendering
Interactive scroll bar
Dynamically movable/resizable chat box
Customize the number of messages retained (displayed) for each tab
Customize the length of time a message remains on-screen during normal gameplay
Each tab can have a 'command prefix' that can be applied to your messages
Multi-line chat with configurable transmission delay
New mouse controls and Key-binds added for interacting with TabbyChat
Spell-checking
Screenshots/Videos
Other videos:
Mod review in Spanish highlighting the dynamic chat box (version 1.8 and up):
Here's a mod review in English:
If you speak German, perhaps you'll enjoy this mod review:
I don't really know though, since I don't. Hopefully he's saying nice things.
New Feature - Spellchecking: Implementation of Jazzy library (jazzy.sourceforge.net) for spellchecking contents of the chat-input box periodically while typing. Misspelled words will have a dashed red line below them, and a simple english-language dictionary file is included in the mod distribution. For more advanced or alternate-language dictionaries, download dictionary zip files from here, extract the ".dic" file, rename it to match the Minecraft locale (e.g. en_US.dic), and place it in "config/tabbychat" in your minecraft directory. Additionally, you can create a file there called "user.dic" containing any other words (one per line) that you'd like to be ignored for spellchecking purposes.
New Feature - Chat Opacity: a new checkbox in the advanced settings tab will now allow the chatbox text to be rendered fully opaque regardless of the chat opacity setting, which would still apply to the background of the chatbox.
Bugfix: keybinds involving the Shift key will now work for the right-shift button.
Bugfix: fixed some issues with Emoticons compatibility
Bugfix: fixed issue causing double-spaces between /msg prefix and message when using tab command prefixes
Bugfix: fixed issue with "message too long" kicks from server when the player attempts to send a 99-character-long chat message.
Bugfix: minor improvements to chatbox/scrollbar fading
New in 1.9.02
Bugfix: Corrected a few null-pointer exception issues with dynamic tab naming
New in 1.9.01
Bugfix: New tabs not created if Auto-channel searching is disabled (primarily affected dynamic tab names)
Bugfix: Tabs marked as unread even if the message was seen in the current active tab, when that tab is not the master tab.
Functionality change: In prior releases, the "Auto-channel searching" setting only affected the creation of new tabs - TabbyChat would still scan each message for channels, even with this disabled, and send messages to currently-existing tabs. Now, with this setting disabled, no channel searching will be performed whatsoever. If this affects you, I suggest migrating to custom filters for this purpose.
Swedish translation added to mod directly
Estonian translation updated for new settings
New in 1.9.00
Bugfix: Split messages displaying in wrong order when chatbox is anchored to the top of the window (chat displayed top-to-bottom)
Functionality change: To facilitate the previous bugfix, timestamps are no longer concatenated with the chat message directly, and are now instead a separate property of the chat message. The timestamp will now be set for every message according to the timestamp style setting, and will be either displayed or not according to the "Timestamp chat" setting.
New feature: Dynamic Tab Names for Custom Filters. More details in this post.
Old Versions
New in 1.8.12
Bugfix: additional blank lines present in chatlogs
Bugfix: occasional ArrayIndexOutOfBoundsException in TabbyChat.spamCheck
Bugfix: PM messages not appearing in their tab until it is refreshed
Added previously-absent "designer" right-click menu entry for Macro/Keybind mod
New feature: Pin chat interface open - keeps the chat interface from closing after sending a message by hitting "enter". The 'pin' button is just to the left of the resize handle on the chatbox (upper-right corner typically).
New in 1.8.11
Bugfix: Auto-PM searching not finding PMs from usernames containing either underscores or numbers
Bugfix: Tabs with unread notifications disabled still showed notifications
Bugfix: Right-click menus in the Macro/Keybind mod were not displayed when using TabbyChat
Bugfix: Pre-existing newline characters are lost during chat processing
New in 1.8.10
Bugfix: Master tab showing unread notifications
Bugfix: Newly-created tabs not appearing while chat interface is active
Bugfix: IndexOutOfBoundsException when a server, plugin, or mod attempts to send a null chat line (for whatever stupid reason)
Chat scaling ability back-ported to 1.4.7 version, new slider located in Advanced settings menu
Build for LiteLoader 1.6.2 now present
New in 1.8.09
Fixed some pervasive issues with split-chat-ordering
New in 1.8.08
Changes to Estonian translation, French translation built-in
Background update checking finally moved FULLY background
Improvements to chat processing
Added option to enable/disable auto-searching for PMs to Server settings
Added option to suppress display of the command prefix for a tab in the Tab settings (courtesy of xMopx)
Fixed issue with reversing chat in 1.5.2 version, if you're getting this, download again
New in 1.8.07
Bugfix: Unable to use AltGr (sometimes called the "Compose" key) key combos the conflict with TabbyChat key binds to enter special characters in the chat box.
Bugfix: Better exception handling for invalid Pattern expressions (warning message printed in "TabbyChat" channel)
New built-in languages supported: Finnish and Ukranian
Better language handling: TabbyChat no longer needs Minecraft to be restarted to catch a language change.
New in 1.8.06
Bugfix: Improvements to filter storage and handling, should eliminate periodic issues where TabbyChat would mis-calculate the number of defined filters and throw a NPE in the 'applyFilterToDirtyChat' method.
Improvement to multi-line chat sends, any additional sends beyond the first will be checked to see if they accidentally begin with a "/", and if so, will be prefixed with an underscore. This does not apply to situations where a command prefix found in the tab definitions or first send are carried through to the following sends.
Improvement to filter highlighting - filters will now apply highlighting more aggressively to the portion of the chat that matches the filter expression. Any color/formatting codes present in the matching portion of the chat will be removed for filters that are configured to apply highlighting
The currently-available language translations (Russian, German, Spanish, and Estonian) are now included in the compiled mod, and do not need to be downloaded separately. However, any language files in ".minecraft/config/tabbychat/lang" will take precedence over the built-in translations.
New in 1.8.05
Bugfix: Added button to chat interface to "leave bed" when in bed.
Bugfix: Re-added ability in text input field to cut, copy, paste, and select-all (note - this only works for the bottom line of text)
Layout tweaks to settings interface
Bugfix: Corrected issue where folders were not created for new server settings (i.e. server, filters, and chat channel data)
New in 1.8.04
Bugfix: Resolved issue with Chat Channel data repeatedly saving/reloading when connected to servers with a specified port number
Bugfix (1.4.7 versions only): Resolved occasional issue with Filter Settings interface not responding
Slight optimizations to filter matching
Key binding change: switching active tabs can now be done with "Ctrl+Tab" (next tab), "Ctrl+Shift+Tab" (previous tab), and "Ctrl+Number" (where number is 1-9 - activates the specific tab numbered by display order). Previous key binds using Alt have been removed. Additionally, "Ctrl+O" in the chat interface will open TabbyChat's settings interface.
New in 1.8.03
Bugfix: corrected issue where chat input box wasn't pre-populated with text in all cases it should be. This should improve compatibility with other mods in general, particularly the Macro/Keybind mod.
Bugfix: corrected inability to change timestamp preferences
New in 1.8.02
Bugfix: Chat channel/PM searching should now handle non-US characters appropriately.
Various internal code improvements, slight appearance changes
Single Player functionality: TabbyChat will no longer disable itself on single player worlds (although you may still disable it yourself). Typical 'server specific' settings will be stored in a folder called 'singleplayer'.
New in 1.8.01
Bugfix: Fixed order of settings screens, missing text on filter screen for "Hide chat" and "Expression"
Improved command prefixes and multi-line chats: under conditions where a tab's command prefix was added to the beginning of a message (i.e. a command prefix has been set for a tab, and that tab is the only active tab), that command prefix will be prepended to each line of a multi-line chat. Under other conditions, previous rules apply (i.e. if the chat begins with /, that will be prepended to each transmission, unless it begins with /msg, in which case /msg will be prepended.
Timestamps will now ALWAYS be added to the chat log. As such, the timestamp style setting is always enabled, regardless of whether or not timestamps are displayed in the chatbox, as this setting defines the style used in the chatlogs as well.
Added key bindings to tab switching: hold Left-Alt and hit the Left/Right keys to switch the active tab left/right, or hold Left-Alt and hit a number to go to that tab by display order. This only occurs if a single tab is currently active.
New in 1.8.00
Movable and resizable chatbox - see below pic. When dragging the chatbox to the absolute top edge of the screen, the box will 'snap' there and reverse orientation, drawing tabs below the chatbox and rendering chat messages top-to-bottom. This can be set back to normal by dragging the chatbox back to the bottom of the screen. (Note: You don't have to leave it there for either case)
LiteLoader version available - see download area
Additional language support - to enable support for other languages, the appropriate language file should be downloaded and placed in ".minecraft/config/tabbychat/lang". This folder may need to be created. No language files have been completed yet, but German, Chinese, and Italian are in the works.
Removed some chatbox size controls from the Advanced Settings screen. Unfocused Height setting now applies as a max percentage of the Focused Height
New in 1.7.08
Changes for compatibility with Rei's minimap on servers that support entity rendering
New in 1.7.07
Much improved compatibility with the Macro/Keybind mod
Various internal optimizations and changes for robustness
Changed appearance of scrollbar
Added option to set display color of timestamps
Server-side changes to updated version checking - from now on, the user will only be notified if an updated version exists for their specific version of Minecraft
Fix for chat not being sent to existing tabs when auto-search is off
New in 1.7.04
Bugfix for Tab playername completion
New in 1.7.03
Bugfix: Further fixes to ConcurrentModification exceptions
Disabling auto-search will now disable attempts to catch PM messages
TabbyChat Update messages are not loaded from previous chat history
Various internal improvements to concurrent functionality
Settings files from versions prior to 1.5.00 are no longer supported
New in 1.7.02
Bugfix: Fixed issue where using Tab-autocomplete on playernames would freeze the client if more than one match were found.
New in 1.7.01
Bugfix: PM message patterns requiring the username will be skipped if the username is not set for this server (for some reason).
Bugfix: Semaphore gates added to chat list modifications to prevent thrown exceptions for list index out-of-bounds and concurrent modification.
Bugfix: Fixed issue where matching PMs clears PM tab contents if it already exists.
New in 1.7.00
New tab-specific settings: Set a tab alias, command prefix, enable/disable unread notifications per tab, and change the order of tab display (see "Tab Settings" above for more info)
Tab/Channel data for each server is now saved to disk and loaded on client startup. This contains current tabs, tab settings, activation/unread status, and the chat contents of each tab, which are displayed in gray with a note relaying the time of last save.
TabbyChat checks for updated versions are now executed in the background
Support for additional private message formats: Private messages displayed in the following formats will be caught by TabbyChat, placed in their own (new) tab, and have their chat command prefix defined as "/msg "
New delimiter patterns added in 1.6.04 actually work now
Way too many to list here
New in 1.6.04
New Option "Force Unicode Chat Rendering" in Advanced menu
This is vanilla Minecraft functionality, but is typically not used for English language users; I'm not fully aware as to the details of this. Therefore, this option will be disabled by default, but enabling it will result in much better-looking font rendering. Example:
Changed auto-search functionality to ignore color/format codes if delimiter color/formatting is not specified in Server Config.
Added two more delimiter patterns: "<(Combo)Pl.>" and "<[Combo]Pl.>". As described there, "combo" would be the name of the chat channel found, and "Pl." represents the player's name who sent the message (auto-searching will find the channel name and ignore the player name).
Fixed Unread Notifications - they totally weren't appearing at all. This has likely been the case for all 1.6 versions.
New in 1.6.03
Fixed issue with textboxes in Advanced Settings not saving their values
When looking for PMs/sends/tells to make new tabs for, TabbyChat will assume they're delimited using Brackets[] instead of whatever the current server's delimiter setting is.
New in 1.6.02
Fixed bug with 'exclusion' filters not applying to all tabs correctly.
New in 1.6.01
Fix for NOT fixing text box limitations in the filter interface
TabbyChat can now be installed either by patching (as usual), or through ModLoader, or through Forge
New in 1.5.08
Fixed issue where text boxes in settings interface were limiting contents to 32 characters
New in 1.5.07
Fix to prevent crash that occurred occasionally when clicking on tabs
New in 1.5.06
Fixed some issues with mouse cursor tracking when clicking on the chatbox, causing the client to check for a URL to launch
Chatbox will no longer automatically scroll to the bottom when new chat is received.
Fixed issue with Filter config screen where some highlighting colors could not be selected
New in 1.5.05
If chat logging is enabled, a 'header' line will be logged upon sign-on to a server, in the form of "BEGIN CHAT LOGGING FOR () -- "
Fixed issue where chatlog folder/file may not get created correctly if not present
Fixed issue where chat input field would grow continuously in height while the client window is being resized.
New in 1.5.04
Fixed bug where number of filters was tracked incorrectly, causing frequent nullpointer exceptions
Fixed issue where filter options for case sensitivity and inverse matching would not enable correctly
Fixed issue where slider values would not load from settings files correctly
New in 1.5.03
Enabled audio notifications for inverse filter matches
Added exception handlers for invalid filter patterns
New in 1.5.02
Fixed critical bug in settings save routine, thanks to hunterk11 and D_s_P
New in 1.5.01Bugfixes:
Fixed issue with multi-line chats being sent out of order
Multi-line chats are now sent from a single-threaded, synchronous process with a configurable time-delay between sends.
Fixed issue with custom filters finding multiple matches in a single chat and applying color codes incorrectly
Fixed bug where attempting to send a single space as chat would crash the client
Changes to functionality:
The destination tab for chat messages will now be located by tab name only
In prior versions, creating two filters that both sent chat to tabs with the same name would result in two tabs with the same name, one for each filter. Now, only one tab of that name will be created, and both filters will send their matches to that tab. This also applies to pre-existing tabs from other chat channels.
Settings are stored in four separate, human-readable files - two for global settings in config/TabbyChat, and two for server settings in config/TabbyChat/.
If the new settings files are not found upon loading, TabbyChat will attempt to find and import settings from the previous settings format/location.
For servers with a specified port, the settings folder will be named "()".
Colon characters will be removed as they may cause issues with some Windows filesystems.
Auto-searching for new channels is now a server-specific setting
New custom filter options - filters may now be configured to send matches to all tabs, or to exclude matches from being displayed (* tab unaffected)
Additional options for notification sounds on filter matches
New timestamp style options added (with seconds)
Reduce spam with the "Consolidate spammed chat" option (General Config)
When enabled, consecutively-repeated chat messages in a tab will not show multiple times, but instead will append a counter to the end of the original message, e.g. "[10x]"
Enable/disable unread notification flashing
Configurable delay time between multi-line chat sends (Advanced Settings)
Customize display size of the chat box, similar to new client "Multiplayer" settings, but as a percentage of current window size (from 20% to 100% for width, focused height, and unfocused height)
Configure the length of time a chat message is displayed when the chatbox is un-focused (Advanced Settings)
New in 1.4.5
Updated for Minecraft 1.5
TabbyChat should play well with the new chatbox settings in 1.5 for chatbox width, focused/unfocused height, and scale. Chats will appear formatted to whatever the chatbox width is at the time the message is received, and past chats will not change with the setting - only newly-received chats. Furthermore, as new tab buttons are created, they will fill the same available width as before, regardless of chatbox width setting.
Included workaround for random crashing on random keypresses immediately after closing chat interface
I could never reproduce the issue, so I can't say for sure this is definitely fixed, but I released a beta version with a fix in the thread, and no one I know of complained of crashing after trying it, so here's hoping it works. New in 1.4.4
Fixed bug in custom filter highlighting
In cases where a custom filter was configured to highlight text using either the default color or default formatting, a StringIndexOutOfBounds Exception may have occurred in previous versions New in 1.4.3
Fixed a long-overlooked bug
Fixed ArrayIndexOutOfBounds Exception when a highlighting filter is applied on a line of chat where the filter expression matches before any formatting codes are present New in 1.4.2
Corrected bug fix for extra forward-slashes when using the forward slash key to open the chat interface
Changed Up/Down key functionality again
Now, the Up/Down keys will still move the cursor up or down a line when a multiple-line chat is present in the input field. However, when the cursor is already at the top or bottom line in the input field, continuing to press the up or down key will go backward or forward through the sent history (respectively). You can also hold the Ctrl key while pressing up and down to bypass the cursor movement on multiline inputs and directly scroll through sent history.
Fixed compatibility with current dev released of AdvancedHUD
New in 1.4.1
Attempted bug fix for extra forward-slashes in some sent chats
New in 1.4.0
Now you can type out more than one 'message' at a time.
Settings files have been moved to the "config" folder
Chat Logs have been moved to a folder within your '.minecraft' folder called "TabbyChatLogs"
New in 1.3.2
Fixed some massive timestamp-related bugs.
Honestly, I'm not sure how timestamps were working at all, other than in the logs New in 1.3.1
Fixed bug where chat command history was lost after accessing the settings menu
Fixed bug where chat may not reappear correctly after accessing and leaving the settings menu
Shifted the scroll bar slightly to the right so chat is less obscured
New in 1.3.0
Ability to select multiple tabs at once (or no tabs at all)
Use Left Control-Clicking to select additional chat tabs and view multiple chat channels at the same time. Alternatively, you can use this method to Un-select all chat tabs, effectively turning chat off.
Various bug fixes, fixing the TabbyChat on/off/singleplayer functionality
Slight change to display of tab names
New in 1.2.2
Bug fix: custom filters and multi-line chat
Custom filters now handle multi-line chat by checking the entire message at once, instead of each line separately. New in 1.2.1
Unread notifications disabled for global "*" tab
New in 1.2.0
Tab background color fixes/enhancements
Normal tab background colors now match the chat window background, and both tab backgrounds and text now adhere to the user's "chat opacity" game setting. Additionally, where tab text was sometimes colored to reflect its state (blue for active, yellow for hovered, and red for unread), the tab background will now be colored appropriately as well.
Unread Chat Notifications during normal gameplay
Previously, new/unread chat in a particular tab would cause that tab's text to appear in red while the chat window was active. Now, whenever any chat is received during normal gameplay (i.e. not in 'chat' mode), any tabs that have unread messages will appear briefly and fade away in the chat area. New in 1.1.0
TabbyChat will now automatically check for existing updated versions.
If found, a message will appear in chat as well as it's own dedicated chat tab. This will only happen once upon joining a multiplayer server, per client-execution. New in 1.0.2
Fixed bug for filtered chat sent to its own tab not live-updating
Change to tabs being flagged unread:
If a message is received from the server, and determined to be displayed in the currently-active tab, no other tabs will be flagged as unread. Previously, other tabs would still be flagged as unread unless the player was currently viewing the * Tab. New in 1.0.1
Fixed bug in inverse filters (not applying)
New in 1.0.0
Improved exception handling in filter management GUI
New in 0.3.9
Fixed issue where log files would not contain timestamps if turned on
New in 0.3.8
Updated for 1.4.2 compatibility
Presets for Timestamp formats added
New in 0.3.7
When timestamps are turned on, chat area is made wider to accommodate
New in 0.3.6
Various bug fixes and performance improvements
Scroll bar added to right side of active chat window
Text color and style support for filter highlighting and delimiter matching
Added compatibility with Advanced HUD
New in 0.3.3
Fixed class name conflict with "Inventory Tweaks" mod causing crash
Changed timestamp formats to military time
New in 0.3.2
Various bugs fixed
New settings menu
Added various features (explained below)
RoadmapTabbyChat is very young, and relatively light on features. I certainly have more in mind and in planning right now, and am more than happy to hear additional feature ideas and requests. Here's what is currently planned:
Upcoming features:
More compatibility with the Macro/Keybind mod
Additional language support
Movable chatbox
Compatibility with Minecraft 1.6 chat system changes
Likely to follow soon after:
Optionally disable update notifications
Remove channel info from chat within channel tab
Split log files up by chat channel (optional)
Ability to lock focus on the chat interface after each message send
Hopefully somewhere down the road:
Possible profanity filtering
Friends list/display
Download
Live Download Graph: Updates every half-hour, started 10/01/13
TabbyChat for Minecraft 1.6.1 [Standalone/Forge/Modloader]
TabbyChat for Minecraft 1.5.1 [Standalone/Forge/Modloader] [LiteLoader]
Language Files*TabbyChat will read the language option set for the Minecraft client and attempt to load the appropriate language file. TabbyChat will look for these files in ".minecraft/config/tabbychat/lang"
All current and old versions, as well as language files, can be found here.Installation
Due to the new launcher, mod installation procedures have changed quite a bit. If using ModLoader, Forge, or LiteLoader, follow the installation procedures for those APIs and add the appropriate version of TabbyChat as directed. If installing TabbyChat standalone, here's my recommendation:
Create a copy of your ".minecraft/versions/1.6.1" folder inside the versions folder to represent your modded client if you have not already done so. Make sure to rename both the jar and json file, as well as the "id" line WITHIN the json file, to the same name as your new folder.
Inside your ".minecraft/libraries" folder, create the following directory structure: "mods/TabbyChat/" and put the TabbyChat download inside that version folder - e.g. your TabbyChat download will now be in ".minecraft/libraries/mods/TabbyChat/1.8.07/TabbyChat-1.8.07.jar"
Edit the json file from step 1 (in your new version folder) to contain the following line in the 'libraries' section:
{ "name": "mods:TabbyChat:1.8.07" },
4. Setup a profile in your launcher to use your new version folder, and you're good to go.
(You may need to delete the META-INF folder from your new client jar if you receive errors regarding digital signatures of base class files.)
TabbyChat has been shown to be compatible with ModLoader and Forge (in general), Optifine, Rei's Minimap, Inventory Tweaks, Not Enough Items, Friends Overlay, and many more (pretty much anything not related to chat). Donations
Thanks to adf.ly revenue from the past 6 months as well as one generous donation, I've managed to purchase a VPS subscription, and have moved all files to that host. While I don't particularly need donations in order to continue development work on TabbyChat, they would be helpful in covering VPS fees.I hope you find TabbyChat useful and enjoyable, and would love to hear about it in this thread. However, if you'd like to show your appreciate through donation, I will accept donations in the form of Bitcoin to the following address:1FKEb858pTCWx2uVTLXTNXfqG3zc37XggPor alternatively, paypal donations to [email protected]If you choose to donate, you have my heartfelt thanks!
Source/License
TabbyChat source code can be found on github. Feel free to report issues there, as well.The mod itself as well as the source code are released under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 (CC-NC-SA) license, the contents of which are available at http://creativecommo...a/3.0/legalcode
[represent]
- Highlighting/Notification Sounds when your player name is mentioned
At it's most basic, catching mentions of your player name is pretty simple - simply define a custom filter with your player name as its expression, and enable whatever type of highlighting and notification sound you may prefer.
If you test this in practice, you may notice pretty quickly that it leaves a bit to be desired. Most noticeable is that you'll likely see highlighted matches and hear notification sounds every time you send a chat message. So, here I'll explain how to craft a better filter expression to avoid this.
For the sake of this example, let's assume your player name is "Onetwothree". On top of that, we'll assume it's fairly common for your server friends to call you "one" or perhaps "onetwo". Furthermore, we'll assume that, on your favorite server, your chat messages look like this:
[G] Onetwothree: Hello everybody
So, what we need is an expression that can match "one", "onetwo", or "onetwothree", but definitely not "onetwothree:". What we need to employ here is a Regular Expression construct called a "Negative zero-width lookbehind", which means we want our expression to enforce that it is specifically NOT followed by a certain character (or sub-expression). This construct takes the form
(?!X)
where X is the character or sub-expression that should NOT be present after prior expression.
So, in practice, here's what our example expression would look like:
one(?!t)|onetwo(?!t)|onetwothree(?!:)
This is essentially three different expressions with logical OR statements between them - we're looking for "one" not followed by a t, or "onetwo" not followed by a t, or "onetwothree" not followed by a colon. The last expression is the most intuitive - we've already established that we want to ignore mentions of our name followed by a colon. The reason we need the first two is to cover other forms of our name, and the reason we need more look-behinds there is that, without them, the shorter mentions will still match "onetwothree:" whenever we chat.
Here is how we can adapt this example to several other situations:
You're only concerned about two forms of your name (e.g. "Onetwo")
Expression: one(?!t)|onetwo(?!:)
You want to match four forms of your name (e.g. "Onetwothreefour")
Expression: one(?!t)|onetwo(?!t)|onetwothree(?!f)|onetwothreefour(?!:)
On your server, your chats end with ">"
Expression: one(?!t)|onetwo(?!t)|onetwothree(?!>)
On your server, there is a space between your name and the colon (or other character)
Expression: one(?!t)|onetwo(?!t)|onetwothree(?!
On your server, there may or may not be a space between your name and the colon:
Expression: one(?!t)|onetwo(?!t)|onetwothree(?![ ]?:)
*Brackets not explicitly necessary, I prefer them around spaces for readability
The expression I use:
Expression: rocket(?!m)|rocketman(?!1)|rocketman10404(?!:)
You want the highlighting to apply to the entire line when your name is mentioned:
Expression: .*(one(?!t)|onetwo(?!t)|onetwothree(?!:)).*
So, there you have it. If this doesn't cover you, and you're not sure how to adapt it to fit your needs, feel free to ask in this thread.
- I created a filter to hide chat messages, but it doesn't apply to the
tab
True, TabbyChat explicitly avoids many modifications to the chat in the
tab. The purpose of this tab is to serve as an un-touched reference of chat should be concerned that somehow, something (like a filter) is hiding/moving messages you don't want it to, and you want to be absolutely sure you're not missing anything.
If you still want to see the 'raw' chat, but have filters that hide chat still apply, simply define a new filter to be a copy of the
tab using the following expression, and sending that chat to a new tab:
.*
This expression will always match everything, thus essentially copying the
tab. However, filters that hide chat will still keep it hidden from this tab.
I have some ideas for your mod.
Able to set how many lines of chat you can see when you press "T" (You can still scroll to see more text)
Able to send color, bold, italics, and underlined text.
Also cool mod.
I have some ideas for your mod.
Able to set how many lines of chat you can see when you press "T" (You can still scroll to see more text)
Able to send color, bold, italics, and underlined text.
Also cool mod.
I had just thought about doing something kinda like that earlier today actually (the number of visible lines) - I should be able to pull that off, so I'll keep it in mind. Along with that, I might look into setting how many lines of chat you can see and/or how long they stick around when you DON'T have the chat input active. I'm not sure, I'm trying to limit myself to not editing any more base classes, but I should be able to pull off your suggestion within the classes I've currently modified.
I'll have to look into the chat colors a bit more - that's a great idea too, but I think vanilla servers might kick you if you try and send styled text. Although really, TabbyChat isn't going to be nearly as useful to people on vanilla servers (except for maybe filtering and logging?)
Would it be possible for this mod to add a scroll bar to the chat?
Another good idea - in fact, you're the second to suggest it, and I attempted to implement one after the first suggestion. There should be a scroll bar in TabbyChat already - the white vertical line near the right-hand border of the chat window. Take a look at the very first screenshot in the OP. I suppose it's not the most visually obvious scrollbar, but you can drag the bar up and down, click anywhere on it, etc.
Thank you so much for this mod, it's really useful when dealing with exceptionally large/a large number of servers (MineZ/Ghostcraft/HCFactions in my case)
I am trying to create a channel that shows everything EXCEPT things that start with "NCP:"
I have it as:
General
Inverse Match [On] Case-sensitive [On]
Filter to new tab[On] Highlight matching [Off]
Audio Notification [Off]
Filter expression: NCP:
I also tried using "NCP:", "^NCP", and "^NCP:"
With inverse turned off, it behaves as intended, with all text starting with NCP going to a new tab, however, with inverse turned on, it sends all chat, including 'NCP:' chat to my 'General' tab.
What am I doing wrong?
One more request- a lot of messages are colored (for example, death messages on MineZ start with the player's name in yellow), would it be possible to make a way to say 'Anything with a yellow first word goes to this tab'?
Thank you so much for this mod, it's really useful when dealing with exceptionally large/a large number of servers (MineZ/Ghostcraft/HCFactions in my case)
I am trying to create a channel that shows everything EXCEPT things that start with "NCP:"
I have it as:
General
Inverse Match [On] Case-sensitive [On]
Filter to new tab[On] Highlight matching [Off]
Audio Notification [Off]
Filter expression: NCP:
I also tried using "NCP:", "^NCP", and "^NCP:"
With inverse turned off, it behaves as intended, with all text starting with NCP going to a new tab, however, with inverse turned on, it sends all chat, including 'NCP:' chat to my 'General' tab.
What am I doing wrong?
One more request- a lot of messages are colored (for example, death messages on MineZ start with the player's name in yellow), would it be possible to make a way to say 'Anything with a yellow first word goes to this tab'?
I apologize, there was in fact something wrong with inverse matching - blame my horrible testing procedures. A new version has been added to the OP, it should work as intended now. Thank you for catching and reporting that.
As for the colored messages, it should be possible, but it'll take a bit of rework - currently, filters are applied on un-colored messages, as I didn't want people to have to account for color/format codes all over the place in their expressions. I'll put it on the list though.
Thank you so much for this mod, it's really useful when dealing with exceptionally large/a large number of servers (MineZ/Ghostcraft/HCFactions in my case)
I am trying to create a channel that shows everything EXCEPT things that start with "NCP:"
I have it as:
General
Inverse Match [On] Case-sensitive [On]
Filter to new tab[On] Highlight matching [Off]
Audio Notification [Off]
Filter expression: NCP:
I also tried using "NCP:", "^NCP", and "^NCP:"
I just posted another update fixing a fairly major issue I found recently that may have been affecting you. If you were able to get your filter-tab to work, but it didn't appear to be displaying new messages in real-time (only after switching tabs), try the new version for a fix.
I have been searching for something similar to this for some time, maybe not with all the features you have included, I am surprised I found this mod and am surprised it hasn't gained popularity as fast as I would expect it, being rather unique in what it adds to the game.
I am installing this as I type and am going to have lots of fun using it.
BAI1
Ha, I know, right? I've been searching so hard for some sort of chat-tab mod ever since I started playing on servers - I was so excited when I found Improved Chat (but never could find an updated version or get it to work).
Honestly I don't find myself using a lot of TabbyChat's functionality, oddly enough, except for mostly chat highlighting and dings. Personally I'm too concerned about what might be unread in other tabs. The next feature I'm going to work on is checking for updates (which shouldn't be too hard), and then immediately after that, I need to find some way to get the client to indicate when there are non-visible chat messages received in other tabs when the chat window is not active.
It does this now when the chat window IS active, but obviously I do spend a fair amount of play time not chatting. Hopefully I'll get something added soon.
This mod is AWESOME!
Thank you so much!
I was about to write my own until I found this. This makes playing on busy servers MUCH more enjoyable!
If there's only one thing I would recommend, it's saving each tab in separate log files. This would make post game analysis much easier.
Great work!
Love the mod, and have enjoyed using it for the past day, however I am having issues with the RegEXP filtering. I have set 3 filters, one for normal player chat, one for anything a staff member says and one for any in-game automatic announcements. Code as follows, along with specifications:
Players
Issues I am having is that the [MayhemServers] announcements are showing in all chat channels, and it's showing when players go AFK in all channels, and I have set the filters to it shouldn't do either of those in the other channels. I have tried various filters, and I managed to get it working once but it would only work on one specific announcement. I have double checked spelling of everything and stuff, and it's all fine. I am thinking it is something in the RegEXP code I have put but I can't confirm it. Am I doing something wrong?
BAI1
I have a few ideas that will hopefully work (let me know if they don't so I can look into it further).
Your expressions pretty much look correct, except you need parenthesis surrounding the OR'd words, and make sure there's no pipe at the beginning or end... it looks like there might be at the beginning. So, for Players:
Concerning your announcements, make sure there's no pipe-character before MayhemServers (I don't think there should be... correct me if you actually see those in-game). It could probably match on its own without a filter if you increase the settings for "Max length of channel name search" in the global settings - the default is 10, I believe, and that's 12 characters.
Also, beware that filters operate on chat including color/formatting codes, so if the words you're trying to match with a filter are colored, you may need to adjust your expression to accommodate - I can help with that if this is the case.
You know what, I was horribly mistaken - the custom filters deal with colored chat, but the mod actually pulls out all the color codes, stores their previous positions, and then attempts to match the regular expression. Afterwards, it applies any highlighting as necessary and re-inserts the color codes.
So, the custom filters actually DO ignore the text color/formatting codes. My brain got sidetracked by all the code dealing with the removal/re-insertion. My apologies.
Also, for clarification of the max length setting - it's an upper limit on the expected channel names when auto-searching for channels. So the channel search expression is built by the channel delimiters (looks like it's brackets in your case), and then some number of alphanumeric characters between 1 and this setting.
For example, on the server I play on, TabbyChat automatically catches, creates tabs for, and re-directs chat starting with [g], [TC], [MOD], etc. - but not [Announcement] since "Announcement" is more characters than my max length setting. So these announcement messages will only show on the first tab (asterisk).
I think the inverse filtering is still broken in the latest version, it's not working for me.
Could you please double check you uploaded the right files?
I think the inverse filtering is still broken in the latest version, it's not working for me.
Could you please double check you uploaded the right files?
As best as I can tell, it's working for me in my testing. Just to be sure, the downloaded file for the version you're using is "[1.4.2]TabbyChat 1.1.0.zip", correct?
Assuming it is, could you describe a bit more how you're applying the Inverse matching, and how what you're seeing is different from what you're expecting? It's quite possible there are some potential applications that haven't occurred to me to test, and therefore may not be working correctly.
As best as I can tell, it's working for me in my testing. Just to be sure, the downloaded file for the version you're using is "[1.4.2]TabbyChat 1.1.0.zip", correct?
Assuming it is, could you describe a bit more how you're applying the Inverse matching, and how what you're seeing is different from what you're expecting? It's quite possible there are some potential applications that haven't occurred to me to test, and therefore may not be working correctly.
Yes I installed the 1.1.0 version.
Non inverse filters work fine, and combining them with ORs works also, but there is some unformated text I still want to be able to see (shop prices), so I need a filter that keeps everything except certain tags.
I disabled auto-search for new channels, and created a filter like this:
Inverse match: ON
Filter to new tab: ON
Case sensitive: ON
Filter expr: ^\[SHOUT:Main\]
And it creates a tab with everything, including the shout messages.
Any ideas?
I'll look into that tonight then. I may not have tested it very well with auto-search off, so perhaps that added a wrinkle. It would be a huge help if you could provide a bit of a log, or perhaps a screenshot showing some of the chat you expected the filter to operate on. Thanks!
TabbyChat (v1.10.00)
Contents:
Current Features/Functionality
TabbyChat is a client-side mod for Minecraft that aims to make the multiplayer chat interface more organized, managable, and user-friendly. It can be installed (or loaded) into the Minecraft client by patching minecraft.jar or loaded at runtime via several different supported APIs.
Primary Features
The primary feature of TabbyChat is to organize chat messages into different channels, and to represent those channels via tab-like buttons displayed above the chat interface. There are several different ways to configure TabbyChat to organize chat, including:
Custom Filters
Custom filters allow the user to tell TabbyChat to perform various actions when a chat message matches the defined Regular Expression. These actions include the following:
Additional Features
Screenshots/Videos
Other videos:
Here's a mod review in English:
If you speak German, perhaps you'll enjoy this mod review: I don't really know though, since I don't. Hopefully he's saying nice things.
Apparently so (also German):
Documentation
Detailed documentation for the use and configuration of TabbyChat can be found at the TabbyChat Wiki on my github page.For a good regular expression reference when crafting custom chat filters, see http://www.regular-e.../reference.htmland here's an excellent reference for testing filter expressions: http://www.regexplan...java/index.html
*** ChangeLog:
New in 1.10.00
New in 1.9.02
New in 1.9.01
New in 1.9.00
Old Versions
RoadmapTabbyChat is very young, and relatively light on features. I certainly have more in mind and in planning right now, and am more than happy to hear additional feature ideas and requests. Here's what is currently planned:
More compatibility with the Macro/Keybind modAdditional language supportMovable chatboxDownload
Latest version
No-longer supported
Language Files*TabbyChat will read the language option set for the Minecraft client and attempt to load the appropriate language file. TabbyChat will look for these files in ".minecraft/config/tabbychat/lang"
All current and old versions, as well as language files, can be found here.Installation
Due to the new launcher, mod installation procedures have changed quite a bit. If using ModLoader, Forge, or LiteLoader, follow the installation procedures for those APIs and add the appropriate version of TabbyChat as directed. If installing TabbyChat standalone, here's my recommendation:
TabbyChat has been shown to be compatible with ModLoader and Forge (in general), Optifine, Rei's Minimap, Inventory Tweaks, Not Enough Items, Friends Overlay, and many more (pretty much anything not related to chat).
Donations
Source/License
TabbyChat source code can be found on github. Feel free to report issues there, as well.The mod itself as well as the source code are released under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 (CC-NC-SA) license, the contents of which are available at http://creativecommo...a/3.0/legalcode
[represent]
- Highlighting/Notification Sounds when your player name is mentioned
At it's most basic, catching mentions of your player name is pretty simple - simply define a custom filter with your player name as its expression, and enable whatever type of highlighting and notification sound you may prefer.
If you test this in practice, you may notice pretty quickly that it leaves a bit to be desired. Most noticeable is that you'll likely see highlighted matches and hear notification sounds every time you send a chat message. So, here I'll explain how to craft a better filter expression to avoid this.
For the sake of this example, let's assume your player name is "Onetwothree". On top of that, we'll assume it's fairly common for your server friends to call you "one" or perhaps "onetwo". Furthermore, we'll assume that, on your favorite server, your chat messages look like this:
So, what we need is an expression that can match "one", "onetwo", or "onetwothree", but definitely not "onetwothree:". What we need to employ here is a Regular Expression construct called a "Negative zero-width lookbehind", which means we want our expression to enforce that it is specifically NOT followed by a certain character (or sub-expression). This construct takes the form where X is the character or sub-expression that should NOT be present after prior expression.
So, in practice, here's what our example expression would look like:
This is essentially three different expressions with logical OR statements between them - we're looking for "one" not followed by a t, or "onetwo" not followed by a t, or "onetwothree" not followed by a colon. The last expression is the most intuitive - we've already established that we want to ignore mentions of our name followed by a colon. The reason we need the first two is to cover other forms of our name, and the reason we need more look-behinds there is that, without them, the shorter mentions will still match "onetwothree:" whenever we chat.
Here is how we can adapt this example to several other situations:
So, there you have it. If this doesn't cover you, and you're not sure how to adapt it to fit your needs, feel free to ask in this thread.
- I created a filter to hide chat messages, but it doesn't apply to the
tab
True, TabbyChat explicitly avoids many modifications to the chat in the
tab. The purpose of this tab is to serve as an un-touched reference of chat should be concerned that somehow, something (like a filter) is hiding/moving messages you don't want it to, and you want to be absolutely sure you're not missing anything.
If you still want to see the 'raw' chat, but have filters that hide chat still apply, simply define a new filter to be a copy of the
tab using the following expression, and sending that chat to a new tab:
This expression will always match everything, thus essentially copying the
tab. However, filters that hide chat will still keep it hidden from this tab.
Able to set how many lines of chat you can see when you press "T" (You can still scroll to see more text)
Able to send color, bold, italics, and underlined text.
Also cool mod.
I had just thought about doing something kinda like that earlier today actually (the number of visible lines) - I should be able to pull that off, so I'll keep it in mind. Along with that, I might look into setting how many lines of chat you can see and/or how long they stick around when you DON'T have the chat input active. I'm not sure, I'm trying to limit myself to not editing any more base classes, but I should be able to pull off your suggestion within the classes I've currently modified.
I'll have to look into the chat colors a bit more - that's a great idea too, but I think vanilla servers might kick you if you try and send styled text. Although really, TabbyChat isn't going to be nearly as useful to people on vanilla servers (except for maybe filtering and logging?)
Another good idea - in fact, you're the second to suggest it, and I attempted to implement one after the first suggestion. There should be a scroll bar in TabbyChat already - the white vertical line near the right-hand border of the chat window. Take a look at the very first screenshot in the OP. I suppose it's not the most visually obvious scrollbar, but you can drag the bar up and down, click anywhere on it, etc.
How about adding in Mod Update Manager so it can automatically search for updates?
I am trying to create a channel that shows everything EXCEPT things that start with "NCP:"
I have it as:
General
Inverse Match [On] Case-sensitive [On]
Filter to new tab[On] Highlight matching [Off]
Audio Notification [Off]
Filter expression: NCP:
I also tried using "NCP:", "^NCP", and "^NCP:"
With inverse turned off, it behaves as intended, with all text starting with NCP going to a new tab, however, with inverse turned on, it sends all chat, including 'NCP:' chat to my 'General' tab.
What am I doing wrong?
One more request- a lot of messages are colored (for example, death messages on MineZ start with the player's name in yellow), would it be possible to make a way to say 'Anything with a yellow first word goes to this tab'?
I apologize, there was in fact something wrong with inverse matching - blame my horrible testing procedures. A new version has been added to the OP, it should work as intended now. Thank you for catching and reporting that.
As for the colored messages, it should be possible, but it'll take a bit of rework - currently, filters are applied on un-colored messages, as I didn't want people to have to account for color/format codes all over the place in their expressions. I'll put it on the list though.
I just posted another update fixing a fairly major issue I found recently that may have been affecting you. If you were able to get your filter-tab to work, but it didn't appear to be displaying new messages in real-time (only after switching tabs), try the new version for a fix.
Ha, I know, right? I've been searching so hard for some sort of chat-tab mod ever since I started playing on servers - I was so excited when I found Improved Chat (but never could find an updated version or get it to work).
Honestly I don't find myself using a lot of TabbyChat's functionality, oddly enough, except for mostly chat highlighting and dings. Personally I'm too concerned about what might be unread in other tabs. The next feature I'm going to work on is checking for updates (which shouldn't be too hard), and then immediately after that, I need to find some way to get the client to indicate when there are non-visible chat messages received in other tabs when the chat window is not active.
It does this now when the chat window IS active, but obviously I do spend a fair amount of play time not chatting. Hopefully I'll get something added soon.
Thank you so much!
I was about to write my own until I found this. This makes playing on busy servers MUCH more enjoyable!
If there's only one thing I would recommend, it's saving each tab in separate log files. This would make post game analysis much easier.
Great work!
I'll add your suggestion to my list (will update the roadmap soon).
I have a few ideas that will hopefully work (let me know if they don't so I can look into it further).
Your expressions pretty much look correct, except you need parenthesis surrounding the OR'd words, and make sure there's no pipe at the beginning or end... it looks like there might be at the beginning. So, for Players:
And for staff:
Concerning your announcements, make sure there's no pipe-character before MayhemServers (I don't think there should be... correct me if you actually see those in-game). It could probably match on its own without a filter if you increase the settings for "Max length of channel name search" in the global settings - the default is 10, I believe, and that's 12 characters.
Also, beware that filters operate on chat including color/formatting codes, so if the words you're trying to match with a filter are colored, you may need to adjust your expression to accommodate - I can help with that if this is the case.
So, the custom filters actually DO ignore the text color/formatting codes. My brain got sidetracked by all the code dealing with the removal/re-insertion. My apologies.
Also, for clarification of the max length setting - it's an upper limit on the expected channel names when auto-searching for channels. So the channel search expression is built by the channel delimiters (looks like it's brackets in your case), and then some number of alphanumeric characters between 1 and this setting.
For example, on the server I play on, TabbyChat automatically catches, creates tabs for, and re-directs chat starting with [g], [TC], [MOD], etc. - but not [Announcement] since "Announcement" is more characters than my max length setting. So these announcement messages will only show on the first tab (asterisk).
Could you please double check you uploaded the right files?
As best as I can tell, it's working for me in my testing. Just to be sure, the downloaded file for the version you're using is "[1.4.2]TabbyChat 1.1.0.zip", correct?
Assuming it is, could you describe a bit more how you're applying the Inverse matching, and how what you're seeing is different from what you're expecting? It's quite possible there are some potential applications that haven't occurred to me to test, and therefore may not be working correctly.
Yes I installed the 1.1.0 version.
Non inverse filters work fine, and combining them with ORs works also, but there is some unformated text I still want to be able to see (shop prices), so I need a filter that keeps everything except certain tags.
I disabled auto-search for new channels, and created a filter like this:
Inverse match: ON
Filter to new tab: ON
Case sensitive: ON
Filter expr: ^\[SHOUT:Main\]
And it creates a tab with everything, including the shout messages.
Any ideas?