IRCv3 Support
This page documents IRCv3 features. With two exceptions noted, all of the IRCv3 3.1 and 3.2 specifications are implemented along with more recent specifications. Draft/WIP specs have some support (SNI).
See the CapabilityManager
and CapabilityRequestCommand
for more details.
Capabilities supported
- CAP
- The client starts the connection with
CAP LS 302
and will request a modifiable selection of capabilities. - It supports CAP spec 3.2, including the NEW and DEL commands.
- The client starts the connection with
- Standard Replies (FAIL, NOTE, WARN) and ACK.
- multi-prefix
- Prefixes sorted by importance according to ISUPPORT info.
- sasl
- This is requested if the below mechanism classes are used and given to the AuthManager.
- PLAIN -
SaslPlain
. - ECDSA-NIST256P-CHALLENGE -
SaslECDSANIST256PChallenge
. - EXTERNAL -
SaslExternal
.
- PLAIN -
- This is requested if the below mechanism classes are used and given to the AuthManager.
- account-notify
- Tracked for
User#getAccount()
. UserAccountStatusEvent
.
- Tracked for
- away-notify
- Boolean
User#isAway()
. User#getAwayMessage()
.UserAwayMessageEvent
.
- Boolean
- batch
- Bot mode
- extended-join
- Information tracked automagically.
- extended-monitor
- Message tags
- Getters in
ServerMessage
. - Custom class registration in
MessageTagManager
. - Message ID (
msgid
). - Labeled response (
label
and ACK messages) - Client-only tags.
talking
.- Tag-only (TAGMSG) messages.
- Getters in
- Monitor
MonitorCommand
to get the party started.MonitoredNickOnlineEvent
,MonitoredNickOfflineEvent
to track.MonitoredNickListEvent
,MonitoredNickListFullEvent
.
- account-tag
- cap-notify
- Not actually requested because it's implicitly enabled with
CAP LS 302
.
- Not actually requested because it's implicitly enabled with
- chghost
UserHostnameChangeEvent
andUserUserStringChangeEvent
.- Common shared
UserInfoChangeEvent
includes nick changes too.
- echo-message
- Not requested by default.
@EchoMessage
filter acquires only messages sent by self.
- invite-notify
- Not automatically requested.
- Picked up by
ChannelInviteEvent
.
- server-time
- userhost-in-names
- STS
- Supported as either 'sts' or 'draft/sts' capability.
STSPropertiesStorageManager
as default implementation.
- SNI
- Draft spec supported.
- Twitch capabilities optionally supported
- WEBIRC
- Supported in the client builder.
- For more information see here.
No plans to support
- Metadata
- The metadata 3.2 spec was deprecated.
- KICL will consider supporting a new spec if one is proposed.
- STARTTLS (
TLS
capability)- This is an officially deprecated STARTTLS approach, which is silly when the default KICL strategy is TLS.
- Use the TLS and STS support that KICL has built-in instead.