Free Chatty 0.9.2

Twitch has added information on the length of timeouts, which Chatty will now output by default behind deleted messages. Twitch Chat now also supports reason messages for timeouts/bans, which will be shown in Chatty only to the affected person as well as all mods.

You can now follow people directly out of Chatty using the commands /follow and /unfollow and via context menus under Miscellaneous. If you try to follow someone you are already following, it will show how long you are already following.

Important: To be able to follow/unfollow channels you first need to request new login data, because this feature requires the Follow channels access which Chatty didn't request before.

This version also adds initial support for the new re-sub notifications with attached messages.

Full Changelog

- Added display of timeout duration/reason (can be configured in the settings)
- Updated commands /ban and /timeout (/to) to allow giving a reason
- Added intitial support for new re-subscription messages
- Added ability to follow/unfollow channels, either through the context menus
(under Miscellaneous) or the new commands /follow and /unfollow
- Added support for FFZ Featured Emotes, which are frequently available in
channels of Speedrunning events (not to confuse with FFZ Feature Friday)
- Added setting (under Ignore - Ignored Users) to hide users ignored on chat
from joins/parts and userlist as well
- Added state display for emote-only mode in titlebar
- Added simple search to tables in the Settings Dialog (click into a table
column and start typing, Backspace or wait to reset search)
- Extended Stream Status Writer to include number of Followers/Subscribers
(only updates correctly when the Follower/Subscribers dialog is open)
- Updated help

- Added info to login dialog when token was set through -token parameter
- Added setting to prevent token from being set through -token parameter when
login data is already available in Chatty
- Added "Follow channels" access (you need to re-request login data to get it)

- Restrict size of session debug log file
- Automatically exit application when too many errors occur (which should never
happen, but if it does, this should prevent affecting the rest of the system)
- Added some Mac specific shortcuts
- Improved debug logging

- Fixed not being able to join (and perform some other actions) through context
menu, for channels that contain spaces in the display name
- Added some account info to User Info Dialog (click on "More..")
- Added auto-unhost feature (to unhost when your stream goes live, disabled by
- Added new Twitch Player URL in context menu
- Added feature to automatically add Addressbook categories based on Subscriber
notifications (experimental)
- Added feature to automatically copy messages into clipboard
- Admin Dialog: Added error message for trying to set invalid stream status
- Added context menu entries to directly host channel
- Made URL detection a bit more lenient
- Updated help

- Added single-instance mode, with the ability to join channels in the already
running instance
- Added in-app announcements (Help - Announcements), for more reliable
communication of relevant news about Chatty (if new announcement is available
a window will pop up on start and a notification will be shown in the main
menu bar)
- Moved debug logs into separate directory
- Added /proc command to start native processes out of Chatty
- Made restoring window position more lenient for partly off-screen positions

- Bouncer: Some changes allowing you to connect to a Bouncer
- Whispers: Moved to main chat (AWS)
- Whispers: Hidden userlist for Whisper tabs by default
- Whispers: Added auto-responses for ignored/non-whitelisted users (disabled by
- Increased max reconnection attempts to 40
- Added `force_verify=true` parameter to Authorize URL (makes Twitch always ask
if you want to Authorize, makes sure you are logged in to the right account)
- Added some support for selecting the correct chat server

- Emote Dialog: Improved shown info a bit
- Added /emoteonly and /emoteonlyoff commands (in case they get enabled again)
- Added "emotesets" parameter to /refresh command
- Changed API URL (which is the source of emoteset information)
- ShortenDisplayOfExcessivelyLongEmoteCodesLookingOutTheirWindow

- Added more chat font size choices to GUI
- Added input font setting to GUI
- Added setting to prevent highlights from specific users (e.g. your own bots)
- Added setting to toggle closing of Emote Dialog when double-clicking on Emote
- Added setting to remember Status History table sorting order
- Added setting to toggle Usercolor correction
- Added setting to display more verbose uptime in titlebar (enabled by default)
- Added setting to toggle check for restoring off-screen window position
- Added setting to prepend arbitrary text to the window title
- Changed default for showing animated emotes to off
- Changed default for Min. Userlist Width to 0
- Changed default for Whisper Display Mode to per user
- Changed defaults for server/port (actively changed when updating to this
version, if setting values are on the previous default)
- Changed default for Highlight Mod Command to !highlight, ignore case for both
the channel and command setting
- Made setting names case-insensitive (for use with setting commands)
- Changed the process of saving settings in an attempt to make it more reliable
- Added menu entry to save settings manually

- Fixed Admin Dialog sizing causing display issues
- Fixed spam protection message being displayed on the wrong channel
- Fixed new Twitch Emotes code being one character short
- Fixed autojoin not working sometimes
- Fixed framerate of GIFs, which may break some GIFs that worked before, but
prevents high CPU usage (displaying animated GIFs in Java is hard)
- Check if Java supports opening URLs on the current platform and run native
command if necessary
- Fixed sounds not being closed when finished playing
- Fixed tabs not changing correctly on System Look&Feel
- Fixed error on host notification due to moving Whispers to AWS
Highlights / Important Information
  • If you want to use the /w (whisper) command and receive whispers in Chatty, read the Whisper Help (some configuration required).
  • Added feature to pause scrolling when moving the mouse over chat (you have to enable it in the settings under Chat).
  • Added Tabs drag and drop reordering, more menu options for closing and more.
  • Readded FFZ Feature Friday support and improved it.
  • Show more stream and channel state information (like slowmode, submode, etc.).
Full Changelog

#### New features
- Added experimental Whisper support (this will probably not be developed much
until Twitch moves Whispers to the new system, read help on how to enable)
- Improved TAB Completion: Added predictive sorting for names which gives users
who recently talked/highlighted you a higher priority, added setting to
toggle completion to common prefix (disabled by default)
- Added dedicated ignore user lists (separate for chat and whispers)

#### Chat Window
- Added Pause Chat when moving mouse over chat feature (enable in the settings)
- Changed Ctrl to be used to pause chat, use AltGr for selecting when clicking
on a username in chat
- Don't scroll down when scrolled up even when scroll down timeout has passed
while holding Ctrl
- Added one-click moderation when holding Ctrl (configure in the Chat settings)

#### Tabs
- Added manual resorting of tabs by drag and drop
- Added more menu entries to close tabs to Tab Context Menu
- Rejoin channels in the order the tabs were, when rejoining channels from last
session on start (depends on the Tab Order setting of course)
- Switch to tab when right-clicking on it (which wasn't the case everywhere)
- Optional mouse wheel scrolling through tabs (enable in the settings)

#### Emoticons
- Added FFZ Feature Friday again and improved support for it in Emotes Dialog
- Improved Emote Context Menu (open for Twitch emotes id,
added channel submenu for more emotes where it makes sense)
- Added setting to toggle animated emotes (BTTV GIF emotes)
- Allow global FFZ/BTTV emotes to be added to the favorites as well
- Don't show 150% size in Emotes Dialog Detail View when emote is too wide
- Sort Channel Subscriber Emotes alphabetically

#### Chat/Stream Info Display
- Improved display for long slowmode times in the titlebar
- Implemented new ROOMSTATE command, allowing for accurate display of
submode/slowmode/r9k in titlebar
- Added stream uptime to the titlebar, added settings to customize what is shown
in the titlebar a bit more (`View - Options - Titlebar`)
- Added stream uptime to Live Streams Dialog

#### Settings / Configuration
- Added timestamp option to "Log to file" settings (previously only changeable
with setting commands)
- Highlight/Ignore: Allow non-standard channels in `chan:`/`!chan:` prefixes
- Added setting for minimum userlist width
- Switched default ports to `6667,443` due to port 80 not being available
anymore for standard IRC
- Increased default chat buffer size
- Updated Settings Dialog
- Added `$globalmod` and `$anymod` status identifiers for Usericons/Usercolors
- Added `$first` option for Custom Usericon restriction to show them in front of
the regular Usericons
- Added setting for filtering of combining characters to change between off,
lenient and strict replacing (filter can circumvent performance issues)

#### Commands / Menus
- Added Copy Stream Name to Channel Context Menu (Miscellaneous submenu)
- Added hotkey action to close all/all shown notifications
- Added /openBackupDir command
- Added entries to the `Extra` menu to record/open Stream Highlights
- Added "Open" Channel Context Menu entry in Miscellaneous submenu
(which tries to open the leaderboards page for the current game)

#### Other Changes
- Added "Open in online help" button in Help window
- Show indication of action message (/me) in User Info Dialog chat history and
log files (star in front of the message)
- Apply bans/timeouts to Stream Chat
- Changed website URL to GitHub
- Improved debug output a bit, renamed current session debug log file
- Keep showing "Update Available" notification after restart
- Removed condition to use maximum reconnection delay when host could not be
- Updated help

#### Bugfixes
- Fixed error in slowmode message parsing
- Changed Ignore option `config:info` to only apply to info messages, not
regular chat messages
- Fixed tab not showing new message if message was highlighted with
`config:!notify` option
- Fixed message parsing from inadvertently ignoring some (rare) messages
- Fixed raw message parsing
- Fixed replacing of all linebreak characters when sending message
- Fixed wrong channel being cleared when "Clear chat when cleared by a
moderator" setting is enabled
- Fixed hotkey bug when opening/closing hotkey settings with global hotkeys
- Fixed off-by-one error for reconnection attempts
- Fixed sounds on Linux (hopefully)​
  • Improved Emoticon Dialog: Shows all global emotes and a detail view for emotes.
  • TAB Completion: Now supporting completion of emotes (Shift-TAB), setting names (TAB when typing after a setting command) and custom completion items which can be added in the settings. Also added popup showing info during completion and changed behaviour a bit accordingly.
  • Correctly capitalized names are now enabled by default, since support for the new display name tag that Twitch Chat provides has been added.
  • Added ability to write the current stream time to a textfile, aiding in making Stream Highlights (either by entering a command or allowing your mods to run the command).
Full Changelog

Core Changes:
- Connection: Implemented IRCv3 tags/commands/membership support
- Userlist: IRCv3 now supports optional joins/parts (correct userlist), which is
enabled by default in Chatty (doesn't mean joins/parts have to be shown)
- Added experimental support for secured connections

- Changed Emoticon parsing to use spaces as delimiter instead of word boundaries
(to match changes made to Twitch Chat)
- Scaling: Added settings to scale emotes in chat and the Emotes Dialog
- BTTV: Implemented BTTV Custom Channel Emotes, switched to new BTTV API
- IRCv3: Implemented new Twitch Emotes API, including using IRCv3 tags
- Emote Dialog: Added overview of all global emotes (Twitch and Other)
- Detail View: Added Detail View that can be opened for an emote with different
scaling and a table of information about the emote
- Context Menu: Added more entries and information
- Added emote image caching, making loading of emotes a bit faster and hopefully
more reliable if the server can't be reached at the time of loading
- Added feature to add custom emotes (locally), also allowing you to replace
other emotes
- FFZ: Switched to new API (and showing more info about the emotes)

TAB Completion:
- Changed to work with @ in front (or any other non-word characters around it)
- Added info popup to show completion information (how many items are found,
which item you are at while cycling through results)
- Added completion for emotes (Shift-TAB)
- Added completion for setting names (TAB when using after setting command)
- Added completion for some commands (TAB after /)
- Added support for custom completion items that you can add in the settings or
via the /customCompletion command

- Added fitting context menu to stream chat dialog
- Added setting to START inserting text a the top in Stream Chat
(but not insert text at the top in general), added streamChatResizable setting
- Added commands /clearStreamChat, /testStreamChat, /setStreamChatSize,

Other Enhancements:
- Added bot badge (bot names from BTTV/FFZ APIs and local setting)
- Added ability to record current stream time via commands to assist in creating
stream highlights
- Added setting to clear chat when channel is cleared by a moderator
- Hosting: Added info in the title which channel is being hosted, added warning
in chat when a channel is still being hosted when the stream is going live
- Streamlined reconnection messages a bit
- Output message if channel attempting to join doesn't exist on Twitch
- Added correctly capitalized names from IRCv3 display-name tag, removed
commands to change capitalization of names locally
- Added experimental showing of slowmode/submode status in the titlebar (only
shows correctly if mode toggled while you are already in the channel, until
chat sends that info on join as well)
- Added feature to locally set custom names for any user which show up in chat
and the userlist
- Highlighting: Added more prefix options
- Ignore: Added prefix option to ignore info messages
- Added Miscellaneous-menu to User Context menu and added entry Copy Name
(meaning copy to clipboard)
- Added Miscellaneous-menu to Channel Context menu and added entry to join
currently hosted channel
- Added /copy command which copies the given text to the clipboard
- Added /color command which redirects to the Twitch Chat /color command
- Added /livestreamer command to open streams/dialog via command
- Added /appinfo command
- Added /r9k and /r9koff commands
- Added workaround for Twitch API sometimes returning stream information with
missing channel object (no title available), assuming previous title
- Updated help

- Files: Moved cache files to be saved in the /cache folder
- Reduced Twitch API debug log spam a bit
- Increased join delay a bit
- Updated Settings Dialog layout to adjust to the dialog size better
- Changed Twitch API version calls to use v3 by default
- Changed Usericon image files starting with "http" to be interpreted as URL
- Disabled auto request of mods list for the time being, since mod status for
messages should always work and mod status in the userlist should probably
work if the userlist works in the first place
- Decreased Live Streams dialog scroll speed a bit

- Highlighting: Added highlightIgnored setting whether to try to highlight
messages that have already been ignored (disabled by default)
- Changed capitalizedNames (first letter only) setting to default to on (only
affects fresh settings)
- Debugging: Added setting to log raw IRC traffic to file (disabled by default)
- Added mainResizable setting to be able to turn off resizing of the main window
- Added setting to ignore Stream Status Notifications for Stream Offline
- Added some more support for different setting types to setting commands
- Changed setting commands to support numeric lists
- Changed Settings Dialog to only tell you to reconnect if you don't have to
also restart Chatty (required by a setting change)

- Fixed bug where channel would constantly be reopened when it failed to join
(especially happening on non-existing channels)
- Fixed bug where reonnection timer would sometimes not be cancelled
- Fixed synchronization that could lock up the GUI when performing API requests
- Fixed username case-sensitivity issues for commands
- Fixed error in stream status writer when stream doesn't have a game set
- StreamChat: Fixed bug where stream chat wouldn't scroll down properly
- Addressbook: Fixed remove commands issues with case-sensitivity
- Run correct commercial length in Admin Dialog when using a hotkey
- Fixed close channel hotkey to close active channel rather chan active tab
- Possibly fixed some info messages from Twitch Chat not showing up
- Changed "Mr. Freeman" to "Dr. Freeman"
- Fixed rare error in tables (like Follower Dialog)
- Fixed and enabled workaround for some combining characters causing performance
issues (replacing more than two combining characters in a row with ****)
  • You can now customize hotkeys (regular, application-wide and global hotkeys) that you can set to perform certain predefined actions and any command (Global Hotkeys Windows only).
  • Improved character display, allowing potentially more characters to be displayed (depending on what fallback fonts are available).
Important Information
  • If you were using a global commercial hotkey before, you will have to redefine it when changing to this version (in the Settings - Hotkeys).
Full Changelog

New features:
- Added customizable hotkeys feature allowing you to add/remove/change hotkeys
in the settings (Global Hotkeys Windows only)
- Added Stream Chat dialog (only regular messages, optional message timeout to
make them disappear after some time, mainly for testing right now)
- Added support for global mods
- Added $chan parameter to Custom Commands
- Log to file: Added setting to customize timestamp (via setting commands)

- Changed inputbox font to prevent bug where fallback fonts wouldn't work
properly in JTextPane
- Changed default for "Restore dialogs" setting to "Restore dialogs from last
session" (only if you start from fresh settings)
- Backup: Increased setting backup count to 5 backups
- Changed staff usermode symbol to & (text symbol, not the badge)
- Added scaling to emotes if the image is too big, set maximum size to 100x50
- Improved setting commands (added add/remove commands for String lists, save
default for lists/maps), improved help for setting commands
- Added "set:" commandline parameter to set any setting that can be set with the
/set command
- Changed to new BTTV emotes API
- Improved URL parsing a bit
- Updated help

- Fixed Simple Title menu setting not being updated correctly
- Set foreground color of Viewer History based on the current foreground color
of the dialog, so it fits the LAF
- Set Notification foreground color to black, in case a LAF uses another color
that doesn't go well with the yellow background (Notification colors should be
customizable eventually)