is it possible to mute specific people client side with this?
I think you could effectively accomplish this, yes - you could make a custom filter, with that person's name as the expression (say "Player1"), and then use the "Invert" option to only include chat that DOESN'T have that player's name in it. You could add additional players by forming your expression like:
(Player1|Player2)
You could even get a bit crazier with the filter and add some conditions to make sure it only matches on messages they send, such as using a positive zero-width lookahead to check for a colon after the name.
Ugh, still getting extra forward-slashes... bug is not apparently fixed. It's happening maybe 5% of the time, at random, to me.
I've been getting this constantly, and only since I updated to 1.4.1
The fix I found was making a keybind using a macro mod to ask me to input text after a forward slash.
I was going to ask about the chat history, but I'm glad I saw the post saying to use CTRL+UP|DOWN.
Good job, and hope you can fix some of the bugs xD
I've been getting this constantly, and only since I updated to 1.4.1
The fix I found was making a keybind using a macro mod to ask me to input text after a forward slash.
I was going to ask about the chat history, but I'm glad I saw the post saying to use CTRL+UP|DOWN.
Good job, and hope you can fix some of the bugs xD
Man, I wish I could reproduce this issue that reliably, then I'd be able to find the cause much better
Can you describe to me briefly how you're verifying the presence of extra forward slashes? That may help me track it down - usually when I get it, I attempt to use a command (e.g /list), and nothing happens. When I type the command, I only type and see the one single forward slash, but after getting no response, I go up through my sent history, and it shows extra forward slashes (///list). Is that consistent with the issues you're seeing, or do you have some different symptoms?
Something occurred to me that may help hone in on the forward-slash issue - to those of you who are experiencing frequently, do you typically use the "/" key to open the chat interface when typing commands? Typically I usually use the "t" key to open the interface, and then type "/" to start a command. Does this issue occur less frequently (if at all) if you use the "t" key instead?
I can't confirm the "///" issue as I haven't used the most recent update due to the fact I relied heavily on the "up and down" arrow key functionality which has been replaced with "Ctrl+up and Ctrl+down" in the most recent updates. I would enjoy the additional feature of making the up-down key previous-messages sent function toggle-able, as I used it alot.
Something I noticed, when a message comes onto my server (EG "[ServerName] Announcement") It automatically makes a channel called [ServerName] and filters stuff to it. Is this an intentional feature of 1.3.2 or a advantaged bug?
BAI1
If your delimiters (global settings) are set to "Brackets", then making that channel is pretty much the central purpose of the entire mod. For cases like this which aren't truly chat channels but announcements (it's not possible for the mod to differentiate), add that to your Ignored Channels list (global settings).
Also, since you mentioned the up/down + ctrl issue (adding that toggle will likely be part of the next non-bugfix update) - it would be a big help to me if you could elaborate on what you don't like about this, and if you have any ideas as to how it could be made better.
I don't really get the issue myself - I mean, of course I'm used to using up/down keys for the sent history, but I knew that when I made the input field multiple rows, using the arrow keys to move up and down in the field would be instinctual. I know some people aren't happy with it, but I just don't understand why it's so difficult to hold down the control key.
Until I can add some more settings, I'd like to find a happy medium that is the most useful and intuitive for the most people - it seems like a change might be necessary.
I think maybe I see what you're getting at.... let me propose something (and it may be what you had in mind anyways). Say you've sent a bunch of three-line-high messages for some reason, and you want to go back through your sent history.
You hit "t", and get a blank input field. You hit "Up" once as normal, and go back to the previously sent (three-line) message, with the cursor at the end of the bottom line. You hit "Up" again, and the cursor moves up to the second/middle line. Up again, and now you're at the top line. If you hit up one more time, you go back to through your sent history one more message, with the cursor at the end of the bottom line of the next prior message.
Would this be more ideal? If you send primarily one-line-tall messages (which still could mean multiple sends to the server, depending on your screen width), you wouldn't even noticed that Up/Down has changed at all.
(this should go without saying, but in this scenario if you're way back in your send history and hit "Down" at the bottom line of a message, you'd switch to the next-sent message in your history, with your cursor in the top line.)
Exactly my thoughts! It sounds like a good idea and I would like that.
Developing that (maybe) you could add a function on top of that to have Ctrl go up a whole message. I have no idea how that'd work or anything, but suggestions are always good.
BAI1
Love the idea of keeping the control key the same while making the other changes. The proposed modifications were just a few additional lines of code in the end. Included this and (finally - I believe) a legitimate bug fix for the forward-slash issue in the new release.
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 am having an issue. When I first installed the mod, the only chat tab I saw was global, with the default asterisk. No other channels I am a member of showed up on the tabs. How do I add channels to tabs?
I am having an issue. When I first installed the mod, the only chat tab I saw was global, with the default asterisk. No other channels I am a member of showed up on the tabs. How do I add channels to tabs?
Well, that's pretty much expected behavior for a fresh install. TabbyChat will attempt to create tabs based on what it perceives to be chat channels, determined by a combination of user settings and chat parsing. Basically, if the name of a chat channel appears at the beginning of every line surrounded by supported characters (such as brackets), TabbyChat can automatically make tabs for those channels and display that chat there. More customization can be had by defining your own chat filters.
If you can post a screenshot that might show a bit of chat like what you typically see on the server you play on, I might be able to point you in a few good directions towards making this mod more helpful for you.
Something occurred to me that may help hone in on the forward-slash issue - to those of you who are experiencing frequently, do you typically use the "/" key to open the chat interface when typing commands? Typically I usually use the "t" key to open the interface, and then type "/" to start a command. Does this issue occur less frequently (if at all) if you use the "t" key instead?
Yes, this was the issue, and its fixed in the latest version. Thank you and good job
Ok, here's what I'm thinking... previously, there has been requests to have the chat logs split up by channel. I think making that change would be beneficial to including some past chat history in a relatively clean and resource-light way. So currently, there is a "TabbyChatLogs" folder in your ".minecraft" directory. I'll probably change the logging such that, within that folder, there is a subfolder for each server. Within those folders, a new folder for each day. Then, within that folder, the chat logs for that day will be kept. Those logs will consist of one single unified log holding all chat, and additionally another log file for each tab.
When you login to a server, TabbyChat can go looking for pre-existing and recent log files for that server, scan through the last X number of lines for each tab, and add that text (in white or gray or something) to the tab. So, perhaps it will only show the history for tabs that are created on that initial connection - the Default Channels setting plus any custom filters. That's a lot easier than trying to scan through and process a single log file for X number of messages for each of Y number of tabs.
Alternatively, I could write it so that TabbyChat attempts to find chat history for a tab whenever it's created... that might be more useful, so I could give it a shot and see if there's a significant performance issue.
Also, I could consider switching the folder paths around, so you get a new folder in "TabbyChatLogs" for each day, and then a new folder in that one for each server. That would probably make it more difficult to find chat history though.
I'd be happy to hear any thoughts or preferences anyone has on this proposal.
Ok, here's what I'm thinking... previously, there has been requests to have the chat logs split up by channel. I think making that change would be beneficial to including some past chat history in a relatively clean and resource-light way. So currently, there is a "TabbyChatLogs" folder in your ".minecraft" directory. I'll probably change the logging such that, within that folder, there is a subfolder for each server. Within those folders, a new folder for each day. Then, within that folder, the chat logs for that day will be kept. Those logs will consist of one single unified log holding all chat, and additionally another log file for each tab.
When you login to a server, TabbyChat can go looking for pre-existing and recent log files for that server, scan through the last X number of lines for each tab, and add that text (in white or gray or something) to the tab. So, perhaps it will only show the history for tabs that are created on that initial connection - the Default Channels setting plus any custom filters. That's a lot easier than trying to scan through and process a single log file for X number of messages for each of Y number of tabs.
Alternatively, I could write it so that TabbyChat attempts to find chat history for a tab whenever it's created... that might be more useful, so I could give it a shot and see if there's a significant performance issue.
Also, I could consider switching the folder paths around, so you get a new folder in "TabbyChatLogs" for each day, and then a new folder in that one for each server. That would probably make it more difficult to find chat history though.
I'd be happy to hear any thoughts or preferences anyone has on this proposal.
This would create quite a lot of files and folders.
For temporary chat history, I'd recommend having a temporary file(s) that stores the last x number of lines/tabs (as well as archiving all content to the day's log to the actual log files). Sorting the logs into server (domains might be best especially for hosts that have multiple servers with the same population that traverses said servers - i.e. minez) folder, but having files within it (without folders) for each day would be best. Servers from different domains should have separated log files since its a different group of ppl on a different domain.
Tabs (if stored separately, should have 1 folder per tab, not day - annoying to have to move between 10 different folders to check logs for 10 days).
Good job with this mod! I recently became a Helper (sub-classed Moderator) on the server I play on and there was already about 6 Chats I had to deal with... Now I have them all nicely sorted out now. :3
Also, I bring you a list of mods that work with this one:
• Minecraft Forge
• OptiFine (already known)
• Friends Overlay
• CodeChickenCore
• NEI (Not Enough Items)
• Rei's Minimap
• Advance HUD (Already known)
• Inventory Tweaks (Already known)
• New Dungeon
• Dungeon Pack
• Backpacks
One thing i do ask though is the ability to Rearrange the Tabs, the ability to rename the tabs, and a way to have multiple chats in one tab (like Global and Local in one tab while have Staff Chat in another.)
Edit: Ok, I missed that part. Kinda wish there was a Video Tutorial for it though o.o I think I will ask ChazOffTopic to do one. :3
Good job with this mod! I recently became a Helper (sub-classed Moderator) on the server I play on and there was already about 6 Chats I had to deal with... Now I have them all nicely sorted out now. :3
Also, I bring you a list of mods that work with this one:
• Minecraft Forge
• OptiFine (already known)
• Friends Overlay
• CodeChickenCore
• NEI (Not Enough Items)
• Rei's Minimap
• Advance HUD (Already known)
• Inventory Tweaks (Already known)
• New Dungeon
• Dungeon Pack
• Backpacks
One thing i do ask though is the ability to Rearrange the Tabs, the ability to rename the tabs, and a way to have multiple chats in one tab (like Global and Local in one tab while have Staff Chat in another.)
Edit: Ok, I missed that part. Kinda wish there was a Video Tutorial for it though o.o I think I will ask ChazOffTopic to do one. :3
Thanks for the excellent compatibility info, I've updated the OP.
Moving and renaming tabs both are definitely on my roadmap. Renaming tabs will likely appear sooner, and in conjunction with the ability to automatically add a server command to the beginning of every chat, specific to the tab (e.g. the "global" tab could be configured to put "/global" in front of every chat).
Moving/Rearranging might take a while... part of me wants this to work similar to a web browser, where you can drag the tabs around to rearrange, or drag the tab off the chat box to make a new additional chat box. I'm a little concerned doing this might be a lot more work than I want to bite off. If I look into it and decide this to be the case, than rearranging tabs might come sooner.
Filter 1: Chat (Anti spam filter)
Inverse match: ON
Filter to new tab: ON
Audio notification: OFF
Case-sensitive: OFF
Highlight matching text as: OFF
Filter Expression: has voted @|tenancy pay received
Filter 2: GretarJ (My mention channel)
Inverse match: OFF
Filter to new tab: ON
Audio notification: ON
Case-sensitive: OFF
Highlight matching text as: ON
Filter Expression: has been received from|-> me|GretarJ|Gretar|Greta|GreterJ|Greter|Gret
I have 2 problems.
People keep butchering my name so I want to catch different forms of it. This setup however notifies me everytime I write something.
I tried to add
GretarJ(?!:)
but then "Gretar" would catch it.. how can I get around this?
An even bigger problem is that when I write something globally, on the server I play on you add an asterisk "*" in front of what you say. When I do that I disconnect and get the following message
Filter 1: Chat (Anti spam filter)
Inverse match: ON
Filter to new tab: ON
Audio notification: OFF
Case-sensitive: OFF
Highlight matching text as: OFF
Filter Expression: has voted @|tenancy pay received
Filter 2: GretarJ (My mention channel)
Inverse match: OFF
Filter to new tab: ON
Audio notification: ON
Case-sensitive: OFF
Highlight matching text as: ON
Filter Expression: has been received from|-> me|GretarJ|Gretar|Greta|GreterJ|Greter|Gret
I have 2 problems.
People keep butchering my name so I want to catch different forms of it. This setup however notifies me everytime I write something.
I tried to add
GretarJ(?!:)
but then "Gretar" would catch it.. how can I get around this?
An even bigger problem is that when I write something globally, on the server I play on you add an asterisk "*" in front of what you say. When I do that I disconnect and get the following message
But again, thanks for an awesome plugin! Hope you, or somebody else, can help me
Cheers.
OK, regarding the array index exception, can you give me a bit more of that excerpt the next time it happens? Like, the 4 or 5 lines that follow that statement/ Also, if at all possible... a screenshot of some chat that causes the exception. I can't really reproduce it on my end.
Catching a wide range of username spellings while omitting your own chat can be a giant pain in the butt. I usually have to combine multiple filters to get what I want there. I'd suggest a handful of filters setup with the following expressions:
The easy one:
has been received from|-> me|Greter
The last part of that will also catch "GreterJ"
The ugly one:
GretarJ(?!:)|Gretar(?!J)|Greta(?!r)|Gret(?!a)
I think that would do it. Obviously, you could combine them if you really wanted.
The Meaning of Life, the Universe, and Everything.
Join Date:
9/11/2012
Posts:
83
Location:
地獄
Minecraft:
________
Member Details
I keep crashing with a NullPointerException error. It only happens when I try type something in chat, so I assume it may be something to do with this mod. Its only started since I updated my .jar to contain the 1.4.2 version.
Here is a crash report:
Minecraft has crashed!
----------------------
Minecraft has stopped running because it encountered a problem; Updating screen events
A full error report has been saved to /Users/tene/Library/Application Support/minecraft/crash-reports/crash-2012-12-04_15.13.50-client.txt - Please include a copy of that file (Not this screen!) if you report this crash to anyone; without it, they will not be able to help fix the crash
--- BEGIN ERROR REPORT 8e4f9304 --------
Full report at:
/Users/tene/Library/Application Support/minecraft/crash-reports/crash-2012-12-04_15.13.50-client.txt
Please show that file to Mojang, NOT just this screen!
Generated 12/4/12 3:13 PM
-- Head --
Stacktrace:
at asw.a(GuiChat.java:158)
at aue.n(SourceFile:150)
at aue.m(SourceFile:114)
-- Affected screen --
Details:
Screen name: ~~ERROR~~ NullPointerException: null
-- Affected level --
Details:
Level name: MpServer
All players: 1 total; [ayk['tenebraemaximus'/22587702, l='MpServer', x=142.24, y=45.62, z=-307.07]]
Chunk stats: MultiplayerChunkCache: 157
Level seed: 0
Level generator: ID 00 - default, ver 1. Features enabled: false
Level generator options:
Level spawn location: World: (-1832,89,1124), Chunk: (at 8,5,4 in -115,70; contains blocks -1840,0,1120 to -1825,255,1135), Region: (-4,2; contains chunks -128,64 to -97,95, blocks -2048,0,1024 to -1537,255,1535)
Level time: 272226771 game time, 272226771 day time
Level dimension: 0
Level storage version: 0x00000 - Unknown?
Level weather: Rain time: 0 (now: false), thunder time: 0 (now: false)
Level game mode: Game mode: creative (ID 1). Hardcore: false. Cheats: false
Forced entities: 1 total; [ayk['tenebraemaximus'/22587702, l='MpServer', x=142.24, y=45.62, z=-307.07]]
Retry entities: 0 total; []
Stacktrace:
at ayh.a(WorldClient.java:438)
at net.minecraft.client.Minecraft.b(SourceFile:1870)
at net.minecraft.client.Minecraft.run(SourceFile:543)
at java.lang.Thread.run(Thread.java:680)
-- System Details --
Details:
Minecraft Version: 1.4.5
Operating System: Mac OS X (i386) version 10.7.5
Java Version: 1.6.0_37, Apple Inc.
Java VM Version: Java HotSpot(TM) Client VM (mixed mode), Apple Inc.
Memory: 478178184 bytes (456 MB) / 550305792 bytes (524 MB) up to 1070399488 bytes (1020 MB)
LiteLoader Mods: 1 loaded mod(s)
- Macro / Keybind Mod version 0.9.6.1
JVM Flags: 3 total; -Xbootclasspath/a:/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Resources/LauncherSupport.jar -Xms512M -Xmx1024M
AABB Pool Size: 2638 (147728 bytes; 0 MB) allocated, 2 (112 bytes; 0 MB) used
Suspicious classes: IWrUpdater, Config, WrUpdaterThreaded, ...[acs.tabbychat.TabbyChat, GlobalSettings, TimeStampEnum, ...], [bspkrs.util.ModVersionChecker], [bspkrs.util.client.ColorThreshold, HUDUtils], [com.mumfrey.liteloader.LiteMod, Tickable, InitCompleteListener, ...], [com.mumfrey.liteloader.core.LiteLoader, HookChat, HookLogin, ...], [com.mumfrey.liteloader.util.ModUtilities, PrivateFields, StaticFields], [net.eq2online.jinput.JInputComponentRegistry], [net.eq2online.macros.LiteModMacros, AutoDiscoveryAgent, AutoDiscoveryState], [net.eq2online.macros.compatibility.AbstractionLayer, DelegateDisconnect, GuiButton, ...], [net.eq2online.macros.compatibility.hooks.ITimerTickListener, Packet22CollectHookable, TimerHookable], [net.eq2online.macros.core.MacroModCore, Macros, MacroTemplate, ...], [net.eq2online.macros.core.params.Type], [net.eq2online.macros.event.MacroEventManager, MacroEvent, MacroEventDispatcher, ...], [net.eq2online.macros.event.providers.OnJoinGameProvider, OnChatProvider, OnInventorySlotChangeProvider, ...], [net.eq2online.macros.gui.controls.GuiListBox, GuiListBoxIconic, GuiListBoxFilebound, ...], [net.eq2online.macros.gui.controls.specialised.GuiListBoxFile, GuiListBoxPlaces, GuiListBoxFriends, ...], [net.eq2online.macros.gui.designable.DesignableGui, DesignableGuiLayout, DesignableGuiControl, ...], [net.eq2online.macros.gui.designable.editor.GuiDialogBoxControlProperties, GuiDialogBoxButtonProperties, GuiDialogBoxLabelProperties, ...], [net.eq2online.macros.gui.dialogs.GuiDialogBoxFirstRunPrompt, GuiDialogBoxStartupErrors], [net.eq2online.macros.gui.helpers.ListProvider, HelperThumbnailImage, HelperUserSkinDownload], [net.eq2online.macros.gui.layout.LayoutPanel, LayoutPanelStandard, LayoutPanelKeys, ...], [net.eq2online.macros.gui.list.ListObjectGeneric, ListObjectEditable, ListObjectEditInPlace], [net.eq2online.macros.gui.screens.GuiControlsEx, GuiScreenWithHeader, GuiEditThumbnails, ...], [net.eq2online.macros.gui.shared.GuiScreenEx, GuiDialogBox, GuiControlEx], [net.eq2online.macros.input.IInputHandlerModule, InputHandler, KeyInjectionProxy, ...], [net.eq2online.macros.interfaces.ILocalisationProvider, ISaveSettings, ISettingsProvider, ...], [net.eq2online.macros.permissions.MacroModPermissions], [net.eq2online.macros.rendering.FontRendererLegacy, RenderEngineHelper], [net.eq2online.macros.scripting.IErrorLogger, Documentor, ScriptActionProvider, ...], [net.eq2online.macros.scripting.actions.ScriptActionAchievementGet, ScriptActionClearChat, ScriptActionGui, ...], [net.eq2online.macros.scripting.actions.game.ScriptActionSlotClick, ScriptActionCraft, ScriptActionCraftAndWait, ...], [net.eq2online.macros.scripting.actions.input.ScriptActionKey, ScriptActionKeyUp, ScriptActionKeyDown, ...], [net.eq2online.macros.scripting.actions.lang.ScriptActionAssign, ScriptActionDec, ScriptActionDo, ...], [net.eq2online.macros.scripting.actions.mod.ScriptActionConfig, ScriptActionImport, ScriptActionUnimport], [net.eq2online.macros.scripting.actions.option.ScriptActionBind, ScriptActionFog, ScriptActionGamma, ...], [net.eq2online.macros.scripting.api.IScriptActionProvider, IVariableProvider, ICounterProvider, ...], [net.eq2online.macros.scripting.crafting.IAutoCraftingInitiator, AutoCraftingManager], [net.eq2online.macros.scripting.exceptions.ScriptException], [net.eq2online.macros.scripting.iterators.ScriptedIteratorEnchantments, ScriptedIteratorPlayers], [net.eq2online.macros.struct.ItemInfo, Place], [net.eq2online.permissions.PermissionsManagerBootstrap, PermissionsEventListener, PermissionsManager, ...], [net.eq2online.permissions.impl.PermissionsManagerClient, LocalPermissions], [net.eq2online.xml.Xml, Xmlns], [net.java.games.input.ControllerEnvironment, DirectAndRawInputEnvironmentPlugin, DefaultControllerEnvironment, ...], [net.java.games.util.plugins.Plugins, Plugin], [reifnsk.minimap.ReiMinimap, GuiScreenInterface, GuiOptionScreen, ...]
IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
ModLoader: Mods loaded: 4
ModLoader 1.4.5
mod_TooManyItems 1.4.5 2012-11-19
ArmorStatusHUD v1.4(1.4.5)
mod_ReiMinimap v3.2_05 [1.4.5]
LWJGL: 2.4.2
OpenGL: NVIDIA GeForce 320M OpenGL Engine GL version 2.1 NVIDIA-7.32.12, NVIDIA Corporation
Is Modded: Very likely; Jar signature invalidated
Type: Client (map_client.txt)
Texture Pack: Default
Profiler Position: N/A (disabled)
Vec3 Pool Size: 1464 (81984 bytes; 0 MB) allocated, 19 (1064 bytes; 0 MB) used
java.lang.NullPointerException
at asw.a(GuiChat.java:158)
at aue.n(SourceFile:150)
at aue.m(SourceFile:114)
at net.minecraft.client.Minecraft.l(SourceFile:1085)
at net.minecraft.client.Minecraft.J(SourceFile:582)
at net.minecraft.client.Minecraft.run(SourceFile:534)
at java.lang.Thread.run(Thread.java:680)
--- END ERROR REPORT ed0373cf ----------
This will match anything that starts with "Gret" (and some other things) to the next whitespace except if the word is "GretarJ:".
BUT my second problem still remains. It has to do with this filter. When I type something starting with an asterisk (global chat on my server) I get a screen that says:
I think you could effectively accomplish this, yes - you could make a custom filter, with that person's name as the expression (say "Player1"), and then use the "Invert" option to only include chat that DOESN'T have that player's name in it. You could add additional players by forming your expression like:
(Player1|Player2)
You could even get a bit crazier with the filter and add some conditions to make sure it only matches on messages they send, such as using a positive zero-width lookahead to check for a colon after the name.
I've been getting this constantly, and only since I updated to 1.4.1
The fix I found was making a keybind using a macro mod to ask me to input text after a forward slash.
I was going to ask about the chat history, but I'm glad I saw the post saying to use CTRL+UP|DOWN.
Good job, and hope you can fix some of the bugs xD
Click Here To Check Out The Server Forums
Server IP: play.pokemonserver.net
Man, I wish I could reproduce this issue that reliably, then I'd be able to find the cause much better
Can you describe to me briefly how you're verifying the presence of extra forward slashes? That may help me track it down - usually when I get it, I attempt to use a command (e.g /list), and nothing happens. When I type the command, I only type and see the one single forward slash, but after getting no response, I go up through my sent history, and it shows extra forward slashes (///list). Is that consistent with the issues you're seeing, or do you have some different symptoms?
If your delimiters (global settings) are set to "Brackets", then making that channel is pretty much the central purpose of the entire mod. For cases like this which aren't truly chat channels but announcements (it's not possible for the mod to differentiate), add that to your Ignored Channels list (global settings).
Also, since you mentioned the up/down + ctrl issue (adding that toggle will likely be part of the next non-bugfix update) - it would be a big help to me if you could elaborate on what you don't like about this, and if you have any ideas as to how it could be made better.
I don't really get the issue myself - I mean, of course I'm used to using up/down keys for the sent history, but I knew that when I made the input field multiple rows, using the arrow keys to move up and down in the field would be instinctual. I know some people aren't happy with it, but I just don't understand why it's so difficult to hold down the control key.
Until I can add some more settings, I'd like to find a happy medium that is the most useful and intuitive for the most people - it seems like a change might be necessary.
You hit "t", and get a blank input field. You hit "Up" once as normal, and go back to the previously sent (three-line) message, with the cursor at the end of the bottom line. You hit "Up" again, and the cursor moves up to the second/middle line. Up again, and now you're at the top line. If you hit up one more time, you go back to through your sent history one more message, with the cursor at the end of the bottom line of the next prior message.
Would this be more ideal? If you send primarily one-line-tall messages (which still could mean multiple sends to the server, depending on your screen width), you wouldn't even noticed that Up/Down has changed at all.
(this should go without saying, but in this scenario if you're way back in your send history and hit "Down" at the bottom line of a message, you'd switch to the next-sent message in your history, with your cursor in the top line.)
Love the idea of keeping the control key the same while making the other changes. The proposed modifications were just a few additional lines of code in the end. Included this and (finally - I believe) a legitimate bug fix for the forward-slash issue in the new release.
I am having an issue. When I first installed the mod, the only chat tab I saw was global, with the default asterisk. No other channels I am a member of showed up on the tabs. How do I add channels to tabs?
Well, that's pretty much expected behavior for a fresh install. TabbyChat will attempt to create tabs based on what it perceives to be chat channels, determined by a combination of user settings and chat parsing. Basically, if the name of a chat channel appears at the beginning of every line surrounded by supported characters (such as brackets), TabbyChat can automatically make tabs for those channels and display that chat there. More customization can be had by defining your own chat filters.
If you can post a screenshot that might show a bit of chat like what you typically see on the server you play on, I might be able to point you in a few good directions towards making this mod more helpful for you.
Yes, this was the issue, and its fixed in the latest version. Thank you and good job
Click Here To Check Out The Server Forums
Server IP: play.pokemonserver.net
When you login to a server, TabbyChat can go looking for pre-existing and recent log files for that server, scan through the last X number of lines for each tab, and add that text (in white or gray or something) to the tab. So, perhaps it will only show the history for tabs that are created on that initial connection - the Default Channels setting plus any custom filters. That's a lot easier than trying to scan through and process a single log file for X number of messages for each of Y number of tabs.
Alternatively, I could write it so that TabbyChat attempts to find chat history for a tab whenever it's created... that might be more useful, so I could give it a shot and see if there's a significant performance issue.
Also, I could consider switching the folder paths around, so you get a new folder in "TabbyChatLogs" for each day, and then a new folder in that one for each server. That would probably make it more difficult to find chat history though.
I'd be happy to hear any thoughts or preferences anyone has on this proposal.
This would create quite a lot of files and folders.
For temporary chat history, I'd recommend having a temporary file(s) that stores the last x number of lines/tabs (as well as archiving all content to the day's log to the actual log files). Sorting the logs into server (domains might be best especially for hosts that have multiple servers with the same population that traverses said servers - i.e. minez) folder, but having files within it (without folders) for each day would be best. Servers from different domains should have separated log files since its a different group of ppl on a different domain.
Tabs (if stored separately, should have 1 folder per tab, not day - annoying to have to move between 10 different folders to check logs for 10 days).
logs\
-> temporary.txt
-> temporary_tab1.txt
-> temporary_tab2.txt
-> yourminecraftserver\
->-> TabbyChatLog_11-29-2012.txt
->-> TabbyChatLog_11-30-2012.txt
->-> tab1\
->->-> TabbyChatLog_tab1_11-29-2012.txt
->->-> TabbyChatLog_tab1_11-30-2012.txt
->-> tab2\
->->-> TabbyChatLog_tab2_11-29-2012.txt
->->-> TabbyChatLog_tab2_11-30-2012.txt
-> otherminecraftserver\
->-> TabbyChatLog_11-29-2012.txt
->-> TabbyChatLog_11-30-2012.txt
Also, I bring you a list of mods that work with this one:
• Minecraft Forge
• OptiFine (already known)
• Friends Overlay
• CodeChickenCore
• NEI (Not Enough Items)
• Rei's Minimap
• Advance HUD (Already known)
• Inventory Tweaks (Already known)
• New Dungeon
• Dungeon Pack
• Backpacks
One thing i do ask though is the ability to Rearrange the Tabs, the ability to rename the tabs,
and a way to have multiple chats in one tab (like Global and Local in one tab while have Staff Chat in another.)Edit: Ok, I missed that part. Kinda wish there was a Video Tutorial for it though o.o I think I will ask ChazOffTopic to do one. :3
Thanks for the excellent compatibility info, I've updated the OP.
Moving and renaming tabs both are definitely on my roadmap. Renaming tabs will likely appear sooner, and in conjunction with the ability to automatically add a server command to the beginning of every chat, specific to the tab (e.g. the "global" tab could be configured to put "/global" in front of every chat).
Moving/Rearranging might take a while... part of me wants this to work similar to a web browser, where you can drag the tabs around to rearrange, or drag the tab off the chat box to make a new additional chat box. I'm a little concerned doing this might be a lot more work than I want to bite off. If I look into it and decide this to be the case, than rearranging tabs might come sooner.
I have set up 2 filters.
Filter 1: Chat (Anti spam filter)
Inverse match: ON
Filter to new tab: ON
Audio notification: OFF
Case-sensitive: OFF
Highlight matching text as: OFF
Filter Expression: has voted @|tenancy pay received
Filter 2: GretarJ (My mention channel)
Inverse match: OFF
Filter to new tab: ON
Audio notification: ON
Case-sensitive: OFF
Highlight matching text as: ON
Filter Expression: has been received from|-> me|GretarJ|Gretar|Greta|GreterJ|Greter|Gret
I have 2 problems.
People keep butchering my name so I want to catch different forms of it. This setup however notifies me everytime I write something.
I tried to add but then "Gretar" would catch it.. how can I get around this?
An even bigger problem is that when I write something globally, on the server I play on you add an asterisk "*" in front of what you say. When I do that I disconnect and get the following message
Internal exception: java.lang.ArrayIndexOutOfBoundsException: -1
But again, thanks for an awesome plugin! Hope you, or somebody else, can help me
Cheers.
OK, regarding the array index exception, can you give me a bit more of that excerpt the next time it happens? Like, the 4 or 5 lines that follow that statement/ Also, if at all possible... a screenshot of some chat that causes the exception. I can't really reproduce it on my end.
Catching a wide range of username spellings while omitting your own chat can be a giant pain in the butt. I usually have to combine multiple filters to get what I want there. I'd suggest a handful of filters setup with the following expressions:
The easy one:
The last part of that will also catch "GreterJ"
The ugly one:
I think that would do it. Obviously, you could combine them if you really wanted.
Here is a crash report:
Minecraft has crashed!
----------------------
Minecraft has stopped running because it encountered a problem; Updating screen events
A full error report has been saved to /Users/tene/Library/Application Support/minecraft/crash-reports/crash-2012-12-04_15.13.50-client.txt - Please include a copy of that file (Not this screen!) if you report this crash to anyone; without it, they will not be able to help fix the crash
--- BEGIN ERROR REPORT 8e4f9304 --------
Full report at:
/Users/tene/Library/Application Support/minecraft/crash-reports/crash-2012-12-04_15.13.50-client.txt
Please show that file to Mojang, NOT just this screen!
Generated 12/4/12 3:13 PM
-- Head --
Stacktrace:
at asw.a(GuiChat.java:158)
at aue.n(SourceFile:150)
at aue.m(SourceFile:114)
-- Affected screen --
Details:
Screen name: ~~ERROR~~ NullPointerException: null
-- Affected level --
Details:
Level name: MpServer
All players: 1 total; [ayk['tenebraemaximus'/22587702, l='MpServer', x=142.24, y=45.62, z=-307.07]]
Chunk stats: MultiplayerChunkCache: 157
Level seed: 0
Level generator: ID 00 - default, ver 1. Features enabled: false
Level generator options:
Level spawn location: World: (-1832,89,1124), Chunk: (at 8,5,4 in -115,70; contains blocks -1840,0,1120 to -1825,255,1135), Region: (-4,2; contains chunks -128,64 to -97,95, blocks -2048,0,1024 to -1537,255,1535)
Level time: 272226771 game time, 272226771 day time
Level dimension: 0
Level storage version: 0x00000 - Unknown?
Level weather: Rain time: 0 (now: false), thunder time: 0 (now: false)
Level game mode: Game mode: creative (ID 1). Hardcore: false. Cheats: false
Forced entities: 1 total; [ayk['tenebraemaximus'/22587702, l='MpServer', x=142.24, y=45.62, z=-307.07]]
Retry entities: 0 total; []
Stacktrace:
at ayh.a(WorldClient.java:438)
at net.minecraft.client.Minecraft.b(SourceFile:1870)
at net.minecraft.client.Minecraft.run(SourceFile:543)
at java.lang.Thread.run(Thread.java:680)
-- System Details --
Details:
Minecraft Version: 1.4.5
Operating System: Mac OS X (i386) version 10.7.5
Java Version: 1.6.0_37, Apple Inc.
Java VM Version: Java HotSpot(TM) Client VM (mixed mode), Apple Inc.
Memory: 478178184 bytes (456 MB) / 550305792 bytes (524 MB) up to 1070399488 bytes (1020 MB)
LiteLoader Mods: 1 loaded mod(s)
- Macro / Keybind Mod version 0.9.6.1
JVM Flags: 3 total; -Xbootclasspath/a:/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Resources/LauncherSupport.jar -Xms512M -Xmx1024M
AABB Pool Size: 2638 (147728 bytes; 0 MB) allocated, 2 (112 bytes; 0 MB) used
Suspicious classes: IWrUpdater, Config, WrUpdaterThreaded, ...[acs.tabbychat.TabbyChat, GlobalSettings, TimeStampEnum, ...], [bspkrs.util.ModVersionChecker], [bspkrs.util.client.ColorThreshold, HUDUtils], [com.mumfrey.liteloader.LiteMod, Tickable, InitCompleteListener, ...], [com.mumfrey.liteloader.core.LiteLoader, HookChat, HookLogin, ...], [com.mumfrey.liteloader.util.ModUtilities, PrivateFields, StaticFields], [net.eq2online.jinput.JInputComponentRegistry], [net.eq2online.macros.LiteModMacros, AutoDiscoveryAgent, AutoDiscoveryState], [net.eq2online.macros.compatibility.AbstractionLayer, DelegateDisconnect, GuiButton, ...], [net.eq2online.macros.compatibility.hooks.ITimerTickListener, Packet22CollectHookable, TimerHookable], [net.eq2online.macros.core.MacroModCore, Macros, MacroTemplate, ...], [net.eq2online.macros.core.params.Type], [net.eq2online.macros.event.MacroEventManager, MacroEvent, MacroEventDispatcher, ...], [net.eq2online.macros.event.providers.OnJoinGameProvider, OnChatProvider, OnInventorySlotChangeProvider, ...], [net.eq2online.macros.gui.controls.GuiListBox, GuiListBoxIconic, GuiListBoxFilebound, ...], [net.eq2online.macros.gui.controls.specialised.GuiListBoxFile, GuiListBoxPlaces, GuiListBoxFriends, ...], [net.eq2online.macros.gui.designable.DesignableGui, DesignableGuiLayout, DesignableGuiControl, ...], [net.eq2online.macros.gui.designable.editor.GuiDialogBoxControlProperties, GuiDialogBoxButtonProperties, GuiDialogBoxLabelProperties, ...], [net.eq2online.macros.gui.dialogs.GuiDialogBoxFirstRunPrompt, GuiDialogBoxStartupErrors], [net.eq2online.macros.gui.helpers.ListProvider, HelperThumbnailImage, HelperUserSkinDownload], [net.eq2online.macros.gui.layout.LayoutPanel, LayoutPanelStandard, LayoutPanelKeys, ...], [net.eq2online.macros.gui.list.ListObjectGeneric, ListObjectEditable, ListObjectEditInPlace], [net.eq2online.macros.gui.screens.GuiControlsEx, GuiScreenWithHeader, GuiEditThumbnails, ...], [net.eq2online.macros.gui.shared.GuiScreenEx, GuiDialogBox, GuiControlEx], [net.eq2online.macros.input.IInputHandlerModule, InputHandler, KeyInjectionProxy, ...], [net.eq2online.macros.interfaces.ILocalisationProvider, ISaveSettings, ISettingsProvider, ...], [net.eq2online.macros.permissions.MacroModPermissions], [net.eq2online.macros.rendering.FontRendererLegacy, RenderEngineHelper], [net.eq2online.macros.scripting.IErrorLogger, Documentor, ScriptActionProvider, ...], [net.eq2online.macros.scripting.actions.ScriptActionAchievementGet, ScriptActionClearChat, ScriptActionGui, ...], [net.eq2online.macros.scripting.actions.game.ScriptActionSlotClick, ScriptActionCraft, ScriptActionCraftAndWait, ...], [net.eq2online.macros.scripting.actions.input.ScriptActionKey, ScriptActionKeyUp, ScriptActionKeyDown, ...], [net.eq2online.macros.scripting.actions.lang.ScriptActionAssign, ScriptActionDec, ScriptActionDo, ...], [net.eq2online.macros.scripting.actions.mod.ScriptActionConfig, ScriptActionImport, ScriptActionUnimport], [net.eq2online.macros.scripting.actions.option.ScriptActionBind, ScriptActionFog, ScriptActionGamma, ...], [net.eq2online.macros.scripting.api.IScriptActionProvider, IVariableProvider, ICounterProvider, ...], [net.eq2online.macros.scripting.crafting.IAutoCraftingInitiator, AutoCraftingManager], [net.eq2online.macros.scripting.exceptions.ScriptException], [net.eq2online.macros.scripting.iterators.ScriptedIteratorEnchantments, ScriptedIteratorPlayers], [net.eq2online.macros.struct.ItemInfo, Place], [net.eq2online.permissions.PermissionsManagerBootstrap, PermissionsEventListener, PermissionsManager, ...], [net.eq2online.permissions.impl.PermissionsManagerClient, LocalPermissions], [net.eq2online.xml.Xml, Xmlns], [net.java.games.input.ControllerEnvironment, DirectAndRawInputEnvironmentPlugin, DefaultControllerEnvironment, ...], [net.java.games.util.plugins.Plugins, Plugin], [reifnsk.minimap.ReiMinimap, GuiScreenInterface, GuiOptionScreen, ...]
IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
ModLoader: Mods loaded: 4
ModLoader 1.4.5
mod_TooManyItems 1.4.5 2012-11-19
ArmorStatusHUD v1.4(1.4.5)
mod_ReiMinimap v3.2_05 [1.4.5]
LWJGL: 2.4.2
OpenGL: NVIDIA GeForce 320M OpenGL Engine GL version 2.1 NVIDIA-7.32.12, NVIDIA Corporation
Is Modded: Very likely; Jar signature invalidated
Type: Client (map_client.txt)
Texture Pack: Default
Profiler Position: N/A (disabled)
Vec3 Pool Size: 1464 (81984 bytes; 0 MB) allocated, 19 (1064 bytes; 0 MB) used
java.lang.NullPointerException
at asw.a(GuiChat.java:158)
at aue.n(SourceFile:150)
at aue.m(SourceFile:114)
at net.minecraft.client.Minecraft.l(SourceFile:1085)
at net.minecraft.client.Minecraft.J(SourceFile:582)
at net.minecraft.client.Minecraft.run(SourceFile:534)
at java.lang.Thread.run(Thread.java:680)
--- END ERROR REPORT ed0373cf ----------
Click Here To Check Out The Server Forums
Server IP: play.pokemonserver.net
This will match anything that starts with "Gret" (and some other things) to the next whitespace except if the word is "GretarJ:".
BUT my second problem still remains. It has to do with this filter. When I type something starting with an asterisk (global chat on my server) I get a screen that says:
Nothing else. It's not a crash so I'm not getting any reports from this. When I remove the filter everything is normal.
Cheers!