IRC Client Library 3.3.0 released!

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

New features

  • New event UserAccountStatusEvent for when account-notify informs the client of someone signing in or out.
  • New event UserAwayMessageEvent for when away-notify informs the client of someone going away or returning.
  • The away message is now available in User if known (via away-notify).
  • A KittehNagException is fired if the client uses an insecure trust manager factory.
    • Thanks, kashike!
  • Newest items moved into public API:
    • Default CapabilityManager implementation made public (DefaultCapabilityManager).
    • Can be set in the builder.
    • Default CapabilityState implementation made public (DefaultCapabilityState).
    • Default WhoisData implementation made public (DefaultWhoisData).
    • Comes with its own builder, too!

Smaller changes

  • Included cap-notify in CapabilityManager.Defaults.
    • Already supported implicitly when capabilities are negotiated.
  • ServerInfo#toString() now provides the information it contains.
  • Updated to MBassador 1.3.1 which allows for new filter definitions.
    • Thanks, kashike!
  • Updated to latest (4.1.15) Netty.

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.