IRC Client Library 3.2.3 released!

Version 3.2.3 of the Kitteh IRC Client Library has been released!


  • Fixed bug where toString on the client builder could cause a NullPointerException.
    • Thanks, kashike!

IRC Client Library 3.2.2 released!

Version 3.2.2 of the Kitteh IRC Client Library has been released!


  • Fixed new bug introduced by version 3.2.1 that caused paramaterless commands to throw an exception.

IRC Client Library 3.2.1 released!

Version 3.2.1 of the Kitteh IRC Client Library has been released!


  • Fixed bug where trailing spaces in the trailing parameter (spaces-allowed parameter after the : character) would be lost.

IRC Client Library 3.2.0 released!

Version 3.2.0 of the Kitteh IRC Client Library has been released!

Bug fixes

  • Fixed error in kick handling code that resulted in events not firing as expected.
  • Fixed varargs version of Client#addKeyProtectedChannel so it actually works.
    • Thanks, kashike!

Making things public

A long term goal is to ensure as many KICL classes as possible refer to each other only via interfaces, so that large sections of KICL can be swapped out if the user so desires. Here are the latest movements in that direction:

  • Default EventManager implementation made public (DefaultEventManager).
  • Default AuthManager implementation made public (DefaultAuthManager).
  • CTCP processing class CTCPUtil made public.
  • ServerMessage default implementations made public (DefaultServerMessage).
  • Listener, used for exception/input/output listening made public.
  • Exposed Client#getExceptionListener().
  • Default mode classes made public:
    • ModeInfo, ChannelMode, ChannelUserMode, UserMode.

Other changes

  • Updated to use latest Netty (4.1.12).
  • Now uses MBassador without unnecessary reflection.
    • Thanks, kashike!
  • Introducing temporary measures (until 4.0.0) for server-based kicking:
    • ChannelKickByServerEvent and UnexpectedChannelLeaveViaKickByServerEvent.
    • These events are already deprecated, so you're aware just how temporary they are.

IRC Client Library 3.1.0 released!

Version 3.1.0 of the Kitteh IRC Client Library has been released!

Twitch Support

KICL now has a lot better support for Twitch's IRC setup.

  • Introducing the TwitchListener:
    • The Twitch listener, if added prior to connection, will request Twitch's IRCv3 capabilities.
    • Causes the incorrect 004 response to not fire an exception.
    • Upon instantiation, registers 25 Twitch message tag classes.
    • Fires 5 Twitch events.
  • Introducing the TwitchDelaySender:
    • Set up to follow Twitch's limitations on message sending.
    • Options for default or "I am mod or op in all channels" limits.

Little Changes

  • Updated to use latest Netty (4.1.11).
  • Added new methods Client#sendCTCPReply:
    • Now you can directly send the reply instead of use #setReply in the events.
    • This means async listeners to the CTCP events can respond via API.
  • Renamed some Threads to use "KICL" instead of "Kitteh IRC Client" in their names.
  • Updated to MBassador 1.3.0.
  • Modified several ServerMessageException messages:
  • Added Client#getChannels(Collection<String>):
    • Gets a Set of all channels the Client is in that match the given collection.
  • Added User#getOperatorInformation():
    • Moved from WhoisData.
    • For non-whois information, may just contain a * per WHO response.
  • Added ServerMessage#getTag methods:
    • One for tag by name, one for tag by name matching class.
  • Added MessageTagManager.DefaultMessageTag:
    • A default implementation!