IRC Client Library 3.0.2 released!
20 Feb 2017Version 3.0.2 of the Kitteh IRC Client Library has been released!
Changes
- Fixed mistakes preventing
@EchoMessage
and@ToSelf
from working.
Version 3.0.2 of the Kitteh IRC Client Library has been released!
@EchoMessage
and @ToSelf
from working.Version 3.0.1 of the Kitteh IRC Client Library has been released!
Client
shutdown.Version 3.0.0 of the Kitteh IRC Client Library has been released!
As this is a major update, there's a lot to discuss. I'm breaking it down into non-breaking and breaking changes, with headings under each for changes worth talking more about.
ServerMessage
is now accessible in ClientReceiveServerMessageEvent
and KittehServerMessageException
Client.Builder#queryChannelInformation()
to allow disabling automatic WHO
queries.Version.getVersion()
.toString()
.Strict Transport Security is a mechanism that lets servers specify to clients to only connect securely. Support for the draft IRCv3 specification for STS has been added. The documentation covers using STS in detail.
It is now possible to define the messages sent by default in the following situations:
The DefaultMessageMap
allows you to specify, for each DefaultMessageType
, the
default message to use in the above scenarios. A default implementation is provided
and is used automatically, though you can implement DefaultMessageMap
yourself.
Perhaps you want the reconnection message to be dynamic. Now you can do this.
All sections below, including separate headings, include some breaking changes.
.commands()
methods in Client
and Channel
.
Command
s for various... commands.Channel
are moved here.Client
now consistently reject channel
names perceived as invalid.RequestedChannelLeaveEvent
renamed to UnexpectedChannelLeaveEvent
.
Change
class, used in events, has migrated to the util
package.Replyable
helper has been accurately renamed to ReplyableEvent
.RequestedChannelJoinCompleteEvent
moved to the event.channel
package.UnexpectedChannelLeaveEvent
moved to the event.helper
package.KICL's libraries (MBassador, Netty) have been, until this point, shaded and relocated in the distributed jar file. This is no longer the default. Instead, the default jar you acquire by the groupId and artifactId does not have either shaded, and the compiled classes in that jar do not expect the library classes to be relocated. Instead, you must include these libraries yourself.
However, if you wish to continue using a pre-shaded, pre-relocated jar file you can acquire it
with the maven classifier conveniently named shaded
.
Previously, the words 'account', 'nickname', and 'username' had been overlapping in meaning. Account is now exclusively used to refer to a registered account with the server.
AbstractUserPassProtocol
is now AbstractAccountPassProtocol
.Username
(auth element class) is now Account
.Message delay handling has been completely rewritten. The methods for setting a numeric delay are no longer present because that is no longer the only way to affect messages sent by the client.
You can now define what is effectively a supplier of MessageSendingQueue
, a new
class that takes messages in and sends them to a consumer when it chooses, via a
function that takes in the Client
currently in use. This can be done in the builder,
and can be updated at any point via a method on Client
which will cause an immediate
change in actively used MessageSendingQueue
.
Two implementations are provided:
QueueProcessingThreadSender
:
QueueProcessingThread
, with a default-empty checkReady
method which allows for delaying in this method in subclasses.SingleDelaySender
:
SingleDelaySender.getSupplier(int)
provides convenience.
Update: 2.3.3 released. See below.
Version 2.3.0 of the Kitteh IRC Client Library has been released!
getClient()
method are now all of type ClientLinked
.
StringUtil
now possesses two toLowerCase()
methods, one taking ClientLinked
.StringUtil.toLowerCase(user, user.getNick())
.FilteringSubscriptionFactory
now available, so you can have your own MBassador instance use KICL's annotation-based filter system.PREFIX
in the ISUPPORT message will no longer cause exception explosions.equals()
and hashcode()
.
ModeStatusList#containsMode()
now actually works. So that's nice.:
with them.Version 2.2.0 of the Kitteh IRC Client Library has been released!
b
, e
, I
, and q
).
ModeInfo
describes a particular entry.ChannelModeInfoListEvent
firing when the full list is retrieved.Channel#setModeInfoTracking(ChannelMode, boolean)
lets you start tracking the mode list.
RequestedChannelJoinCompleteEvent
.Channel#getModeInfoList(ChannelMode)
gets the list, if it's being tracked.Format.stripAll()
to strip both color and other formats at once.