Snapshots are on Drone. Only the latest files are kept.
Features
Enhanced chat box
Movable
Resizable
Separate incoming chat into tabs
Timestamped chat
Chat logging
Advanced chat visibility (Always shown, normal, and never shown)
Filters
Spellchecking
Anti spam
Seamless multi-messages (up to 300 chars)
Installation
Install LiteLoader.
Put MnmUtils litemod in mods folder.
Put TabbyChat-2 litemod in mods folder.
Run Minecraft.
If LiteLoader complains about dependencies, put TabbyChat in mods/1.8
Quick Start
Press T to open chat. To move, the chat around, click and drag the tray at the top. To resize it, drag the anchor in the top right corner. Click on a tab to switch to it. Shift click to remove it.
To access settings for a specific channel, right click on its tab. Right clicking on the default tab will open the general settings. You can configure your channel and PM settings in the Server section. Ignored channels can also be set in this section.
If chat logging is enabled, logged chat will be saved in .minecraft/logs/chat/${server}. The latest is stored as plain text. Anything earlier are gzip compressed.
Anti spam will keep track of the last message received. If the next one matches it, it appends [xN] to the previous message where N is the number of times the message was received.
The source is available on github. It is licenced under Apache Public Licence v2.
Downloads for older Minecraft versions can be found on the old thread.
Current Features
Main
Auto-search for new channel and PM tabs.
Custom filters to change and redirect chat messages to a specific tab
Filters
Highlight matching text (with colors and/or formatting)
Play notification sound
Send message to specific tab or all tabs
Prevent message from displaying.
Additional
Unread message notifications
Timestamps prepended to chat messages
Suppress spammed chat messages
Log all chat to log file with timestamp
Interactive scroll bar
Dynamically movable/re-sizable chat box
Multi-line chat with configurable transmission delay
Mouse controls and keybinds for interacting with Tabbychat
Spell-checking and spelling suggestions.
Vanilla Fixes
Links are clickable without server assistance.
Current input text retained after window resize.
Lowered "Leave Bed" button when sleeping.
Installation
Install FML/Forge or LiteLoader, depending on which version you use.
Place the downloaded file into .minecraft/mods
Note:If you use the LiteLoader version, ensure the file extension is .litemod. Some web browsers (Internet Explorer) attempt to fix the file extension to .zip.
Run the FML/Forge or LiteLoader profile
Tabbychat is compatible with many mods. If you find one that's not, report it
Images/Videos
Changelog
1.11.2.2
Fix FML version with liteloader installed
1.11.2.0
Chat is now processed before it is word wrapped
Chat now properly word wraps while the chatbox is being resized.
Left side of messages no longer get cut off!!!
Fix opacity levels of 20% or under being transparent
Make chat persistent again.
Fix most recent messages being at the top when tab tray is anchored.
No longer sends illegal characters (kicked from server)
Update some language files (Russian, French, Swedish)
Fix misaligned context menus while chat is scaled.
Channel data is now a gzip compressed json file.
Read and save logs at UTF-8
Paginate tab completions.
Fix for mods that provide a null string component (Damage Indicators)
Fix for mods that mess with the chat rendering (Dual Hotbars)
Possibly others....
1.11.1.65
Change log date format to yyyy-MM-dd
(FML) Fix chat not loading completely until it's opened, causing recieved chat to dissapear
Change LiteMod to behave more like FMLMod
Change how it detects if LiteLoader will load it.
Change the console log text when it will.
Fix possible Java 6 issue.
1.11.1.59
Slightly improve Macros support.
Fix chat logging when server ip has a port.
Properly save server (config and logs) when it uses IPv6
Fix chat getting logged twice sometimes.
1.11.1.57
Fix spellcheck settings not loading on startup
1.11.1.56
Fix crash when custom pm regex is invalid
Remove lonely '=' from spelling.cfg
Dictionary list only plays click sound when a word entry is clicked.
Add "{$player}" to custom pms, representing the sender name.
Fix sent history cursor not resetting after message is sent while pinned
Fix current chat text resetting when window is re-sized or goes fullscreen (vanilla)
Fix losing text while going through sent history
Move and rename where * is logged. Now at logs/tabbychat/serverip/all_date.log.
Write other channels to * log when split log by channel is enabled.
Gzip old logs to save space.
Fix "(From Player):" and "(To Player):" pms
Revert Twitch chat channel. Make your own filter for it.
Fix crash when opening the spelling settings when FML is not installed.
Lowered "Leave Bed" button by 10 to lessen the chance it's over chat.
1.11.1.42
Restore LiteLoader support
Fix spelling suggestions not showing
Fix setting titles needing a restart after a lang change
Fix Send filter matches to all tabs causing crash
Fix exiting bed not making chant dissapear
Make PM tabs only flash when there is activity
1.11.1.33
Port to 1.7.10
Add spell check user dictionary
Add settings gui to add words to it
Add context menus (right click on chat)
Add spelling suggestions (shows in context menus)
Add API for adding things to the chat screen
Added custom PM regex
Fixed some bugs
I didn't keep track of changelogs in 1.7.2 well as it was mostly beta. Check github. For changes before 1.7.2, check the old thread.
With the licence, there is nothing stopping you from packaging this into a modpack. If it's a private modpack, you don't have to do anything. If it's public, you also don't have to do anything, but I would appreciate it if you posted about it here. Just don't PM me or create issues for modpack permissions. The only exception is if you use this in a commercial way. That is, selling it. Ads are fine.
That is a different but similar issue. The Flo-auc messages announcing players winning auctions are not multi-line, I know from experience.
BAI1
Sorry, I was not clear enough. I did not mean that the actual messages are multi-line, what I meant is that they are displayed over multiple lines i.e., they are long enough that the message wraps and takes up 2 or more lines in the chat window.
The issue that he's reporting here is that his inverse matched filter did not properly filter out that single [ebay] message on the right. As you can see that message wraps to the next line, while all of the shorter single-line messages are properly filtered out.
I forgot to mention this in my first reply but there is a workaround for this. You simply have to elongate the chat window so that the entire message fits on a single line. It will take up more of your screen, but if you play around with the opacity settings you should be fine.
If permitted by Killjoy sure, but note that there are minor GUI bugs with the Spelling tab and on two settings in the Server settings tab. Function wise I believe it's exactly the same.
Another thing to note, I make modifications to the logging date format because using YYYYMMDD it auto-arranges in proper chronological order. Personally I prefer the YYYYMMDD format however I can easily revert this back.
BAI1
Post it and I'll add it to the OP.
If you do a PR with the log dates, I'll merge it. I'd do it myself, but I'm a bit busy with other projects. Remember that I moved the repo onto my own account instead of Dykam's.
Would it be at all possible to have a translator tool within this mod? One that automatically detected the language and attempted to convert it to the native language set by the client (much like Google translate). I know this would be a seriously awesome feature but may be hard to do?
Um no. First of all, it won't be able to work with that mod because it's 2 major versions behind. Also it's not open source so I can't even use it as a code reference. The main reason is that translation's just not in the scope of this mod. It would also butcher the chat more than it already is. If you really want translations, it's best to do it on the server side so it doesn't ruin the chat components.
I've been trying to do just that (hide messages from the Smart Moving mod) and I've encountered some strange behavior. I'm prepared to write it off as that particular mod writing messages in an unusual way (since I haven't tried to filter messages from any other mod yet), but I made a video demonstrating it in case it's of any value to you.
I've found a bug with 1.11.1.59. I have it set up so it has a tab for chat which filters out [mb] messages and /msg notifications, and another tab which shows them. However if the [mb] messages are 2 lines or more within chat, it also shows up in the main chat tab.
There's a bug in the most recent version of TabbyChat. TCGuiNewChat isn't set up until either the T button is pressed or the Server started. This means that if you log into a server with a MOTD, the fancy chat border doesn't render, and when you hit T and set up the Gui, it wipes the MOTD from the chat history.
An easy fix for the FML-loaded side is to just add this:
@SubscribeEvent
public void clientTick(ClientTickEvent event){
GuiNewChatTC.getInstance();
}
to TabbyChatMod.java. This won't add any computational expense but it will fix the MOTD bug. I haven't used LiteLoader, so I can't say how to edit this on the LiteLoader side also, and this fix won't work if FML isn't present. I'm sure you're smart enough to figure out how to port this simple code to LiteLoader's loading (given that you made it work with LiteLoader), so that should be fine.
Rollback Post to RevisionRollBack
[13:26:51] <+Bax> Sappert: I'm very clean for someone who licks rocks for science
[13:27:02] <+Bax> Sappert: FOR SCIENCE!
[13:27:14] <+Bax> RaNdOmCoW26: well you see that is your problem
[13:27:23] <+Bax> RaNdOmCoW26: you are comparing yourself to fellow rock lickers
[13:27:36] <+Bax> Sappert: 90% of my social life is rock lickers
[13:27:41] <+Bax> Sappert: or clay eaters
[13:27:47] <+Bax> RaNdOmCoW26: compare yourself to other people who are not rock lickers or clay eaters
[13:28:10] <+Bax> RaNdOmCoW26: then how do you fare?
[13:28:21] <+Bax> Sappert: I fare excellent
I was actually doing that before (but a different method) and it proved to be too laggy. It was being called too often, so I moved to to be called right after the server started. I guess I should've tested it in multiplayer, too. I'll see what I can do, but don't except another release until 1.8.
I was actually doing that before (but a different method) and it proved to be too laggy. It was being called too often, so I moved to to be called right after the server started. I guess I should've tested it in multiplayer, too. I'll see what I can do, but don't except another release until 1.8.
I've run into trouble with things like that too. For my mods, the way I check if there's a new world is that every tick in-game, I calculate System.identityHashCode(mc.theWorld). (This is the hashCode method that works for == rather than for .equals(). It's a native method and basically revolves around C pointer arithmetic.) If the identity hash code is different from the stored int value, then I know a new world was loaded this tick and I run onNewWorldLoaded(). On preInit, I set the stored value to 0 and I know that a world is the first-loaded world if the stored value is 0. I can be safe that I'll never accidentally get 0 again because 0 is the identity has code for null, and I check if the world object is non-null before I check to see if it's different.
But anyway, I appreciate that TabbyChat is open-source because I can do things like make my own fixes or backport TabbyChat's most recent version to 1.7.2 (the server I play on is very slow to update). That's what open-source is about
Rollback Post to RevisionRollBack
[13:26:51] <+Bax> Sappert: I'm very clean for someone who licks rocks for science
[13:27:02] <+Bax> Sappert: FOR SCIENCE!
[13:27:14] <+Bax> RaNdOmCoW26: well you see that is your problem
[13:27:23] <+Bax> RaNdOmCoW26: you are comparing yourself to fellow rock lickers
[13:27:36] <+Bax> Sappert: 90% of my social life is rock lickers
[13:27:41] <+Bax> Sappert: or clay eaters
[13:27:47] <+Bax> RaNdOmCoW26: compare yourself to other people who are not rock lickers or clay eaters
[13:28:10] <+Bax> RaNdOmCoW26: then how do you fare?
[13:28:21] <+Bax> Sappert: I fare excellent
Also, I have a feature request. My server doesn't use /msg for private messages; it uses /w. (It stands for whisper.) I tweaked TabbyChat so my personal build uses /w, but it would be great to see this as a configurable option.
Another configurable option request: Pardon me if I'm being dumb, but I don't see a way to check the "hide prefix while typing" by default for private messages. As in, I want it to automatically check the box "hide prefix while typing" when a new player sends me a private message, or at least be given a configurable option to do so.
One last request: I really, really, really, really, like the anti-spam feature. It's so great for sign shops. Although, if a message appears in the middle of my spam, or say I'm being spammed by two different things at once, then the counter resets itself. Would it be possible to add an option "anti-spam lookback number" where instead of deleting a message if it's identical to the previous message, it will instead delete a message if it's identical to any one of the past N messages, where N is that number. This way, if there's multiple different server-wide messages that keep broadcasting over and over, they'll all collapse for some large enough N. This would be great.
Thanks,
thebombzen
Rollback Post to RevisionRollBack
[13:26:51] <+Bax> Sappert: I'm very clean for someone who licks rocks for science
[13:27:02] <+Bax> Sappert: FOR SCIENCE!
[13:27:14] <+Bax> RaNdOmCoW26: well you see that is your problem
[13:27:23] <+Bax> RaNdOmCoW26: you are comparing yourself to fellow rock lickers
[13:27:36] <+Bax> Sappert: 90% of my social life is rock lickers
[13:27:41] <+Bax> Sappert: or clay eaters
[13:27:47] <+Bax> RaNdOmCoW26: compare yourself to other people who are not rock lickers or clay eaters
[13:28:10] <+Bax> RaNdOmCoW26: then how do you fare?
[13:28:21] <+Bax> Sappert: I fare excellent
For your first 2 issues, right click the channel tab. As for the last, I don't really know of an ideal way to do that that's both effective and appealing. Maybe in the future.
On a related note, I'm currently working on a (mostly) complete rewrite of the mod, so I'm going to put feature requests on hold. I'm going to make everything modular to make it easier to add, remove, or change things both for me and other modders who wants compatibility with TabbyChat. FML support will likely be dropped because I'm making heavy use of the LiteAPI.
For your first 2 issues, right click the channel tab. As for the last, I don't really know of an ideal way to do that that's both effective and appealing. Maybe in the future.
On a related note, I'm currently working on a (mostly) complete rewrite of the mod, so I'm going to put feature requests on hold. I'm going to make everything modular to make it easier to add, remove, or change things both for me and other modders who wants compatibility with TabbyChat. FML support will likely be dropped because I'm making heavy use of the LiteAPI.
That's probably for the better. I think jumbling two different APIs is too much work, especially when LiteLoader and FML/Forge are perfectly compatible with each other. Also, for the first two issues, I know that I can right-click the tabs, but I have to change the setting for every new player's PM tab. If I change one PM tab to /w and I check the box, when I then PM another player, the settings go back to the default for the new player and only remain changed for the one I specifically changed it for. This is where my frustration comes from.
Rollback Post to RevisionRollBack
[13:26:51] <+Bax> Sappert: I'm very clean for someone who licks rocks for science
[13:27:02] <+Bax> Sappert: FOR SCIENCE!
[13:27:14] <+Bax> RaNdOmCoW26: well you see that is your problem
[13:27:23] <+Bax> RaNdOmCoW26: you are comparing yourself to fellow rock lickers
[13:27:36] <+Bax> Sappert: 90% of my social life is rock lickers
[13:27:41] <+Bax> Sappert: or clay eaters
[13:27:47] <+Bax> RaNdOmCoW26: compare yourself to other people who are not rock lickers or clay eaters
[13:28:10] <+Bax> RaNdOmCoW26: then how do you fare?
[13:28:21] <+Bax> Sappert: I fare excellent
TabbyChat 2.0 for MC1.8
Original mod by RocketMan10404, and now maintained by myself.
Old thread: http://www.minecraftforum.net/forums/mapping-and-modding/minecraft-mods/1286567-tabbychat-v1-10-00-smp-chat-overhaul
Downloads
In case the above don't work: tabbychat - MnmUtils (required)
Snapshots are on Drone. Only the latest files are kept.
Features
Installation
Quick Start
Press T to open chat. To move, the chat around, click and drag the tray at the top. To resize it, drag the anchor in the top right corner. Click on a tab to switch to it. Shift click to remove it.
To access settings for a specific channel, right click on its tab. Right clicking on the default tab will open the general settings. You can configure your channel and PM settings in the Server section. Ignored channels can also be set in this section.
If chat logging is enabled, logged chat will be saved in .minecraft/logs/chat/${server}. The latest is stored as plain text. Anything earlier are gzip compressed.
Anti spam will keep track of the last message received. If the next one matches it, it appends [xN] to the previous message where N is the number of times the message was received.
The source is available on github. It is licenced under Apache Public Licence v2.
Old 1.7
1.7 Downloads
TabbyChat-1.7.10-1.11.2.2
FML | LiteLoader | Dev | Source
TabbyChat-1.7.2-1.11.1.65
FML | LiteLoader | Dev | Source
Downloads for older Minecraft versions can be found on the old thread.
Current Features
Main
Filters
Additional
Vanilla Fixes
Installation
Tabbychat is compatible with many mods. If you find one that's not, report it
Images/Videos
Changelog
1.11.2.2
1.11.2.0
1.11.1.65
1.11.1.59
1.11.1.57
I didn't keep track of changelogs in 1.7.2 well as it was mostly beta. Check github. For changes before 1.7.2, check the old thread.
Source and License
Source is available on github. http://github.com/killjoy1221/tabbychat
This code is released under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 (CC-NC-SA) license, the contents of which are available at http://creativecommons.org/licenses/by-nc-sa/3.0/legalcode
Modpacks
With the licence, there is nothing stopping you from packaging this into a modpack. If it's a private modpack, you don't have to do anything. If it's public, you also don't have to do anything, but I would appreciate it if you posted about it here. Just don't PM me or create issues for modpack permissions. The only exception is if you use this in a commercial way. That is, selling it. Ads are fine.
tl;dr As long as you don't sell it, yes.
Want to talk?
I have an IRC channel on irc.esper.net. #TabbyChat
http://webchat.esper.net/?channels=TabbyChat
Mods I work on and maintain:
TabbyChat | Mine Little Pony
My Blog
Sorry, I was not clear enough. I did not mean that the actual messages are multi-line, what I meant is that they are displayed over multiple lines i.e., they are long enough that the message wraps and takes up 2 or more lines in the chat window.
The issue that he's reporting here is that his inverse matched filter did not properly filter out that single [ebay] message on the right. As you can see that message wraps to the next line, while all of the shorter single-line messages are properly filtered out.
I forgot to mention this in my first reply but there is a workaround for this. You simply have to elongate the chat window so that the entire message fits on a single line. It will take up more of your screen, but if you play around with the opacity settings you should be fine.
Post it and I'll add it to the OP.
If you do a PR with the log dates, I'll merge it. I'd do it myself, but I'm a bit busy with other projects. Remember that I moved the repo onto my own account instead of Dykam's.
Mods I work on and maintain:
TabbyChat | Mine Little Pony
My Blog
Mods I work on and maintain:
TabbyChat | Mine Little Pony
My Blog
Mods I work on and maintain:
TabbyChat | Mine Little Pony
My Blog
Um no. First of all, it won't be able to work with that mod because it's 2 major versions behind. Also it's not open source so I can't even use it as a code reference. The main reason is that translation's just not in the scope of this mod. It would also butcher the chat more than it already is. If you really want translations, it's best to do it on the server side so it doesn't ruin the chat components.
Mods I work on and maintain:
TabbyChat | Mine Little Pony
My Blog
You could create a filter that matches any swear word, then set it the highlighting to Magic. That's the one that has random characters.
Mods I work on and maintain:
TabbyChat | Mine Little Pony
My Blog
Great! Nice job!
Not directly. You'll have to make a filter for that and set it to hide from chat.
Mods I work on and maintain:
TabbyChat | Mine Little Pony
My Blog
Below is a screenshot of the main chat tab.
And these are my filter settings:
An easy fix for the FML-loaded side is to just add this:
to TabbyChatMod.java. This won't add any computational expense but it will fix the MOTD bug. I haven't used LiteLoader, so I can't say how to edit this on the LiteLoader side also, and this fix won't work if FML isn't present. I'm sure you're smart enough to figure out how to port this simple code to LiteLoader's loading (given that you made it work with LiteLoader), so that should be fine.
[13:26:51] <+Bax> Sappert: I'm very clean for someone who licks rocks for science
[13:27:02] <+Bax> Sappert: FOR SCIENCE!
[13:27:14] <+Bax> RaNdOmCoW26: well you see that is your problem
[13:27:23] <+Bax> RaNdOmCoW26: you are comparing yourself to fellow rock lickers
[13:27:36] <+Bax> Sappert: 90% of my social life is rock lickers
[13:27:41] <+Bax> Sappert: or clay eaters
[13:27:47] <+Bax> RaNdOmCoW26: compare yourself to other people who are not rock lickers or clay eaters
[13:28:10] <+Bax> RaNdOmCoW26: then how do you fare?
[13:28:21] <+Bax> Sappert: I fare excellent
Edit: Done
Mods I work on and maintain:
TabbyChat | Mine Little Pony
My Blog
I've run into trouble with things like that too. For my mods, the way I check if there's a new world is that every tick in-game, I calculate System.identityHashCode(mc.theWorld). (This is the hashCode method that works for == rather than for .equals(). It's a native method and basically revolves around C pointer arithmetic.) If the identity hash code is different from the stored int value, then I know a new world was loaded this tick and I run onNewWorldLoaded(). On preInit, I set the stored value to 0 and I know that a world is the first-loaded world if the stored value is 0. I can be safe that I'll never accidentally get 0 again because 0 is the identity has code for null, and I check if the world object is non-null before I check to see if it's different.
But anyway, I appreciate that TabbyChat is open-source because I can do things like make my own fixes or backport TabbyChat's most recent version to 1.7.2 (the server I play on is very slow to update). That's what open-source is about
[13:26:51] <+Bax> Sappert: I'm very clean for someone who licks rocks for science
[13:27:02] <+Bax> Sappert: FOR SCIENCE!
[13:27:14] <+Bax> RaNdOmCoW26: well you see that is your problem
[13:27:23] <+Bax> RaNdOmCoW26: you are comparing yourself to fellow rock lickers
[13:27:36] <+Bax> Sappert: 90% of my social life is rock lickers
[13:27:41] <+Bax> Sappert: or clay eaters
[13:27:47] <+Bax> RaNdOmCoW26: compare yourself to other people who are not rock lickers or clay eaters
[13:28:10] <+Bax> RaNdOmCoW26: then how do you fare?
[13:28:21] <+Bax> Sappert: I fare excellent
Another configurable option request: Pardon me if I'm being dumb, but I don't see a way to check the "hide prefix while typing" by default for private messages. As in, I want it to automatically check the box "hide prefix while typing" when a new player sends me a private message, or at least be given a configurable option to do so.
One last request: I really, really, really, really, like the anti-spam feature. It's so great for sign shops. Although, if a message appears in the middle of my spam, or say I'm being spammed by two different things at once, then the counter resets itself. Would it be possible to add an option "anti-spam lookback number" where instead of deleting a message if it's identical to the previous message, it will instead delete a message if it's identical to any one of the past N messages, where N is that number. This way, if there's multiple different server-wide messages that keep broadcasting over and over, they'll all collapse for some large enough N. This would be great.
Thanks,
thebombzen
[13:26:51] <+Bax> Sappert: I'm very clean for someone who licks rocks for science
[13:27:02] <+Bax> Sappert: FOR SCIENCE!
[13:27:14] <+Bax> RaNdOmCoW26: well you see that is your problem
[13:27:23] <+Bax> RaNdOmCoW26: you are comparing yourself to fellow rock lickers
[13:27:36] <+Bax> Sappert: 90% of my social life is rock lickers
[13:27:41] <+Bax> Sappert: or clay eaters
[13:27:47] <+Bax> RaNdOmCoW26: compare yourself to other people who are not rock lickers or clay eaters
[13:28:10] <+Bax> RaNdOmCoW26: then how do you fare?
[13:28:21] <+Bax> Sappert: I fare excellent
On a related note, I'm currently working on a (mostly) complete rewrite of the mod, so I'm going to put feature requests on hold. I'm going to make everything modular to make it easier to add, remove, or change things both for me and other modders who wants compatibility with TabbyChat. FML support will likely be dropped because I'm making heavy use of the LiteAPI.
Mods I work on and maintain:
TabbyChat | Mine Little Pony
My Blog
That's probably for the better. I think jumbling two different APIs is too much work, especially when LiteLoader and FML/Forge are perfectly compatible with each other. Also, for the first two issues, I know that I can right-click the tabs, but I have to change the setting for every new player's PM tab. If I change one PM tab to /w and I check the box, when I then PM another player, the settings go back to the default for the new player and only remain changed for the one I specifically changed it for. This is where my frustration comes from.
[13:26:51] <+Bax> Sappert: I'm very clean for someone who licks rocks for science
[13:27:02] <+Bax> Sappert: FOR SCIENCE!
[13:27:14] <+Bax> RaNdOmCoW26: well you see that is your problem
[13:27:23] <+Bax> RaNdOmCoW26: you are comparing yourself to fellow rock lickers
[13:27:36] <+Bax> Sappert: 90% of my social life is rock lickers
[13:27:41] <+Bax> Sappert: or clay eaters
[13:27:47] <+Bax> RaNdOmCoW26: compare yourself to other people who are not rock lickers or clay eaters
[13:28:10] <+Bax> RaNdOmCoW26: then how do you fare?
[13:28:21] <+Bax> Sappert: I fare excellent