123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- vNEXT (in development)
-
- * Added NickChangeFailed event for when nicknames are in use, banned, etc
- * Added sendPart method
- * Fix occasional ConcurrentModificationException when adding state
- * (Internal) Moved message processors into their own package
-
- v0.10.0
-
- * Batch start and end events are no longer included in BatchReceived events
- * Batches now expose complete metadata from their start event
- * Added support for labelled-replies capability and label message tags
- * Added support for message-tags capability after it moved from draft
- * Added new methods for sending raw lines to the IRC server
- * send(tagMap(...), command, arguments) replaces send(line)
- * send(command, arguments) is available if no tags are to be sent
- * the line is built automatically (with spaces/' :' added appropriately)
- * send(line) is deprecated and will be removed after v1.0.0
- * Add 'alwaysEchoMessages' behaviour that makes it easier to deal with servers
- that don't support the echo message capability
- * Added TargetedEvent, a subclass of IrcEvent, for all events that are
- targeted to a user or channel
- * (Internal) Added annotation to track removal of deprecated methods
- * (Internal) Migrate unit tests to use Mockk instead of Mockito
-
- v0.9.0
-
- * Improve DSL for creating an IrcClient to allow parameters to be passed to server and profile
- e.g. IrcClient { server("irc.example.com", 6667) }
- * Add behaviour options
- * requestModesOnJoin - automatically sends a MODE request when joining a channel
- * Events now have a `metadata` property instead of a `time` (and time is available in metadata)
- * IrcEvent.time is now deprecated but will remain until after v1.0.0.
- * Metadata now contains the message ID, if any.
- * ActionReceived.messageId and MessageReceived.messageId are now deprecated, to be removed after v1.0.0.
- * Metadata now contains the event's batch ID, if any.
- * Added support for batches
- * All events in a batch are buffered until the batch is finished
- * The events are then published together in a single `BatchReceived` event
- * Added support for CHGHOST messages
- * (Internal) Improve performance when the MessageHandler is finding a processor for a message
- * (Internal) Introduced event mutators
- * Event mutators are now responsible for handling changing events in response to state
- e.g. ChannelFanOutMutator creates Channel* events for global quits/nick changes/etc
- * Event handlers now just handle events, and don't return anything
-
- v0.8.0
-
- * Added support for SCRAM-SHA-1 and SCRAM-SHA-256 SASL mechanisms
- * Added MotdLineReceived event
- * Added topic events and state
- * Add utility method IrcClient.isChannel(String) to identify if a target is a channel or not
- * (Internal) Move event handlers into their own package
-
- v0.7.0
-
- * Fixed experimental API warnings when using IrcClient
- * IrcClients are now constructed using a DSL
- * Users of the library no longer need to care about the implementing class
- * Facilitates adding more options in the future without breaking existing implementations
- * SASL improvements
- * The enabled mechanisms can now be configured (in the SASL DSL)
- * Added support for EXTERNAL mechanism, disabled by default
- * Now attempts to renegotiate if the server doesn't recognise the SASL mechanism that was tried
- * Added UserNickChanged and corresponding ChannelNickChanged events
- * Added ServerConnectionError, raised when connecting to the server fails
- * (Internal) Minor version updates for Gradle, Kotlin and JUnit
-
- v0.6.0
-
- * Changed USER command to not send the server name, per modern standards
- * Added support for SASL authentication (with PLAIN mechanism)
- * Removed some unused test code
- * Fixed handling of user mode changes on channels (op/deop/etc)
- * Message extensions:
- * Added support for IRCv3 message tags v3.3
- * Exposed message IDs in MessageReceived and ActionReceived events
- * When sending a message you can now indicate what it is in reply to
- * Added sendTagMessage() to send message tags without any content
- * The reply() utility automatically marks messages as a reply
- * Added react() utility to send a reaction client tag
- * State is now reset when the client is disconnected, so you can immediately reconnect
- * (Internal) improved how coroutines and channels are used in LineBufferedSocket
-
- v0.5.0
-
- * Server state:
- * Added ServerConnecting and ServerDisconnected events
- * Server status now starts as Disconnected rather than Connecting
- * Improved error message when features are of an unexpected type
- * Channel modes:
- * CHANMODES feature is now stored as an array, not a single comma-separated string
- * Added ChanModeType enum, and method in ServerState to get the type of a mode
- * Added ModeChanged event, for user and channel mode changes and discovery
- * Added modes and modesDiscovered to ChannelState
- * Other new events:
- * Added MotdFinished event
- * Added UserAccountChanged event
- * Added ChannelUserKicked event
- * Added NoticeReceived event
- * Added CtcpReplyReceived event
- * Improved some documentation
-
- v0.4.0
-
- * Added CtcpReceived and ActionReceived events
- * Added sendCtcp and sendAction message builders
- * Fix issue with messages being sent out of order, which sometimes caused problems connecting to passworded servers
- * Added 'network' server feature
- * Added serverName field to ServerState
-
- v0.3.1
-
- * Added more documentation to public methods/classes
- * Fixed exception when sending multiple lines at once (e.g. when connecting!)
-
- v0.3.0
-
- * Simplified how messages are constructed.
- Instead of: client.send(joinMessage("#channel"))
- Now use: client.sendJoin("#channel")
- * Added reply utility to easily send replies to message events
- * Server state improvements:
- * Added status field to ServerState
- * ServerConnected event is emitted as soon as the socket is connected
- * ServerReady event is emitted after logging in, negotiating, etc
- * Added extra debugging to show what type of events are being dispatched
- * Added ChannelQuit event, raised for each channel a user is in when they quit
- * (Internal) Event handlers can now return more events to emit
-
- v0.2.1
-
- * Added documentation and reduced visibility of some internal methods/classes
- * (Internal) Enabled Travis, Codacy and Coveralls
-
- v0.2.0
-
- * Added support for connecting over TLS
- * Simplified how event handlers are registered
- * Improved use of coroutines so users don't have to worry about them
- * (Internal) Upgraded to Gradle 5.1.1
|