You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

CHANGELOG 7.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. vNEXT (in development)
  2. * Replaced Ktor dependency with custom socket handling, which fixes
  3. fatal issue when connecting to servers over TLS that request a
  4. client certificate.
  5. * Added NicknameChangeRequired event for the case when a nickname is
  6. not allowed during connection and *MUST* be changed
  7. v0.11.0
  8. * Added SourcedEvent interface for events that have a user source attached
  9. * Added ChannelJoinFailed event
  10. * Added ChannelMembershipAdjustment interface for events that concern
  11. users joining/leaving channels
  12. * Added missing user parameter to ModeChangedEvent
  13. v0.10.3
  14. * Fix issue parsing CTCPs when the content contained multi-byte chars
  15. * Fixed multiple issues when receiving malformed input from the server:
  16. * Invalid server-time tags are now ignored and the current time used
  17. * PRIVMSGs, NOTICEs and TOPICs with no target/message are now ignored
  18. * CAPs with invalid or missing arguments are now ignored
  19. * Better handling for duplicate JOIN messages
  20. * Ignored messages are now logged more consistently
  21. v0.10.2
  22. * Fix handling of multiple long lines sometimes dropping part of the line
  23. * Support lines with 8191 bytes of tags, as allowed by the message-tags spec
  24. * Fix a few more instances of occasional ConcurrentModificationExceptions
  25. v0.10.1
  26. * Added NickChangeFailed event for when nicknames are in use, banned, etc
  27. * Added sendPart method
  28. * Fix occasional ConcurrentModificationException when adding state
  29. * (Internal) Moved message processors into their own package
  30. * (Internal) Added ExperimentalIrcClient interface for features not yet ready for release
  31. v0.10.0
  32. * Batch start and end events are no longer included in BatchReceived events
  33. * Batches now expose complete metadata from their start event
  34. * Added support for labelled-replies capability and label message tags
  35. * Added support for message-tags capability after it moved from draft
  36. * Added new methods for sending raw lines to the IRC server
  37. * send(tagMap(...), command, arguments) replaces send(line)
  38. * send(command, arguments) is available if no tags are to be sent
  39. * the line is built automatically (with spaces/' :' added appropriately)
  40. * send(line) is deprecated and will be removed after v1.0.0
  41. * Add 'alwaysEchoMessages' behaviour that makes it easier to deal with servers
  42. that don't support the echo message capability
  43. * Added TargetedEvent, a subclass of IrcEvent, for all events that are
  44. targeted to a user or channel
  45. * (Internal) Added annotation to track removal of deprecated methods
  46. * (Internal) Migrate unit tests to use Mockk instead of Mockito
  47. v0.9.0
  48. * Improve DSL for creating an IrcClient to allow parameters to be passed to server and profile
  49. e.g. IrcClient { server("irc.example.com", 6667) }
  50. * Add behaviour options
  51. * requestModesOnJoin - automatically sends a MODE request when joining a channel
  52. * Events now have a `metadata` property instead of a `time` (and time is available in metadata)
  53. * IrcEvent.time is now deprecated but will remain until after v1.0.0.
  54. * Metadata now contains the message ID, if any.
  55. * ActionReceived.messageId and MessageReceived.messageId are now deprecated, to be removed after v1.0.0.
  56. * Metadata now contains the event's batch ID, if any.
  57. * Added support for batches
  58. * All events in a batch are buffered until the batch is finished
  59. * The events are then published together in a single `BatchReceived` event
  60. * Added support for CHGHOST messages
  61. * (Internal) Improve performance when the MessageHandler is finding a processor for a message
  62. * (Internal) Introduced event mutators
  63. * Event mutators are now responsible for handling changing events in response to state
  64. e.g. ChannelFanOutMutator creates Channel* events for global quits/nick changes/etc
  65. * Event handlers now just handle events, and don't return anything
  66. v0.8.0
  67. * Added support for SCRAM-SHA-1 and SCRAM-SHA-256 SASL mechanisms
  68. * Added MotdLineReceived event
  69. * Added topic events and state
  70. * Add utility method IrcClient.isChannel(String) to identify if a target is a channel or not
  71. * (Internal) Move event handlers into their own package
  72. v0.7.0
  73. * Fixed experimental API warnings when using IrcClient
  74. * IrcClients are now constructed using a DSL
  75. * Users of the library no longer need to care about the implementing class
  76. * Facilitates adding more options in the future without breaking existing implementations
  77. * SASL improvements
  78. * The enabled mechanisms can now be configured (in the SASL DSL)
  79. * Added support for EXTERNAL mechanism, disabled by default
  80. * Now attempts to renegotiate if the server doesn't recognise the SASL mechanism that was tried
  81. * Added UserNickChanged and corresponding ChannelNickChanged events
  82. * Added ServerConnectionError, raised when connecting to the server fails
  83. * (Internal) Minor version updates for Gradle, Kotlin and JUnit
  84. v0.6.0
  85. * Changed USER command to not send the server name, per modern standards
  86. * Added support for SASL authentication (with PLAIN mechanism)
  87. * Removed some unused test code
  88. * Fixed handling of user mode changes on channels (op/deop/etc)
  89. * Message extensions:
  90. * Added support for IRCv3 message tags v3.3
  91. * Exposed message IDs in MessageReceived and ActionReceived events
  92. * When sending a message you can now indicate what it is in reply to
  93. * Added sendTagMessage() to send message tags without any content
  94. * The reply() utility automatically marks messages as a reply
  95. * Added react() utility to send a reaction client tag
  96. * State is now reset when the client is disconnected, so you can immediately reconnect
  97. * (Internal) improved how coroutines and channels are used in LineBufferedSocket
  98. v0.5.0
  99. * Server state:
  100. * Added ServerConnecting and ServerDisconnected events
  101. * Server status now starts as Disconnected rather than Connecting
  102. * Improved error message when features are of an unexpected type
  103. * Channel modes:
  104. * CHANMODES feature is now stored as an array, not a single comma-separated string
  105. * Added ChanModeType enum, and method in ServerState to get the type of a mode
  106. * Added ModeChanged event, for user and channel mode changes and discovery
  107. * Added modes and modesDiscovered to ChannelState
  108. * Other new events:
  109. * Added MotdFinished event
  110. * Added UserAccountChanged event
  111. * Added ChannelUserKicked event
  112. * Added NoticeReceived event
  113. * Added CtcpReplyReceived event
  114. * Improved some documentation
  115. v0.4.0
  116. * Added CtcpReceived and ActionReceived events
  117. * Added sendCtcp and sendAction message builders
  118. * Fix issue with messages being sent out of order, which sometimes caused problems connecting to passworded servers
  119. * Added 'network' server feature
  120. * Added serverName field to ServerState
  121. v0.3.1
  122. * Added more documentation to public methods/classes
  123. * Fixed exception when sending multiple lines at once (e.g. when connecting!)
  124. v0.3.0
  125. * Simplified how messages are constructed.
  126. Instead of: client.send(joinMessage("#channel"))
  127. Now use: client.sendJoin("#channel")
  128. * Added reply utility to easily send replies to message events
  129. * Server state improvements:
  130. * Added status field to ServerState
  131. * ServerConnected event is emitted as soon as the socket is connected
  132. * ServerReady event is emitted after logging in, negotiating, etc
  133. * Added extra debugging to show what type of events are being dispatched
  134. * Added ChannelQuit event, raised for each channel a user is in when they quit
  135. * (Internal) Event handlers can now return more events to emit
  136. v0.2.1
  137. * Added documentation and reduced visibility of some internal methods/classes
  138. * (Internal) Enabled Travis, Codacy and Coveralls
  139. v0.2.0
  140. * Added support for connecting over TLS
  141. * Simplified how event handlers are registered
  142. * Improved use of coroutines so users don't have to worry about them
  143. * (Internal) Upgraded to Gradle 5.1.1