IRC Client Library 0.3.0 released!
11 Aug 2015Version 0.3.0 of the Kitteh IRC Client Library has been released.
This release contains many substantial changes to the API.
Changes
- [BREAKING] Migrated from
null
toOptional
:- Any API method that previously could return
null
now returns anOptional
. - With the exception of some utility classes,
null
is no longer a valid parameter.- Instead, methods without that parameter are provided.
- Pay attention to the JSR305 annotations
@Nonnull
and@Nullable
.
- Any API method that previously could return
- [BREAKING] New authentication API:
AuthManager
(new package) now acceptsAuthProtocol
instances.- As these cannot be added in the
ClientBuilder
, utilizeClientBuilder#after(Consumer<Client>)
. - SASL SUPPORT added.
- Added
ClientBuilder#after(Consumer<Client>)
for defining tasks to perform on the new client prior to connection. - [BREAKING] New modes API:
- Channel modes are now available shortly after joining, and are tracked on the
Channel
object. ChannelMode
describes a channel mode possible.ChannelUserMode
now a subclass.
ChannelModeStatus
describes a change in mode.ChannelModeStatusList
describes a set of changes and can be exported to a String:- Example:
+msb *!*@*
- Example:
ServerInfo
now provides this updated mode information.
- Channel modes are now available shortly after joining, and are tracked on the
- Added
KittehServerMessageException
:- Thrown when the client falls over attempting to process a message from the server.
- Please provide me with these as you encounter them.
- Added the original, unprocessed message contents to the command and numeric reception events.
- Added
toString()
output for nearly all classes (except events). - Added a concept of staleness and snapshot re-use.
Snapshot
s are now reused if no change has occurred.User
andChannel
can be stale, and have aisStale()
method to see if the snapshot is up to date.
- Renamed many methods to more logical names.
Fixes
Client#getChannel(String)
now returns only tracked channels.- Properly track users across nick changes.
- Client was misplacing users who renamed only changing case.