Commit Graph

118 Commits

Author SHA1 Message Date
Ben Harris 9ac8d3c920 add some more tests 2024-04-19 18:13:54 -04:00
Ben Harris c7407ec6a0 run formatter 2024-04-19 15:08:19 -04:00
Ben Harris 3fadf262e6 use string interpolation 2024-04-19 15:06:28 -04:00
Ben Harris 32d3731be9 add more robust parsing tests 2024-04-19 14:52:01 -04:00
Ben Harris 1e1da72ed2 ternary for setting Hostname 2024-04-19 01:12:23 -04:00
Ben Harris 80259bbad1 use TryAdd 2024-04-19 01:12:08 -04:00
Ben Harris f862c2cb93 single FirstOrDefault 2024-04-19 01:12:00 -04:00
Ben Harris 53add8700f netstandard and revert target type new 2024-04-19 00:24:48 -04:00
Ben Harris b82b8c259a .net 6, tidy up some warnings 2022-04-12 16:14:48 -04:00
Ben Harris d83294c7bc s/freenode/libera/ 2021-09-17 17:02:16 -04:00
Ben Harris 3049122294 .net 5.0 and apply formatting 2021-09-17 16:24:13 -04:00
Ben Harris f085b631a1 fix typo 2019-02-05 17:56:52 -05:00
Alexandre Oliveira f653863436 Use TryParse instead of TryParseExact
- Using TryParseExact would crash if the server
  sent us a time string with 2-digit milliseconds.
2018-03-05 23:30:42 -03:00
Alexandre Oliveira 89ba7e24f9 Check ISUPPORT against null and string.Empty
- Some IRC networks may specify ISUPPORT tokens without values,
  which the parser considers as being null, resulting in a crash.
2018-03-05 23:27:28 -03:00
Alexandre Oliveira f712abaaef Update tag parsing to differentiate null from empty string
- https://github.com/ircv3/ircv3-specifications/issues/334
2018-03-05 23:22:54 -03:00
Alexandre Oliveira bfddb78217 Add support for SASL PLAIN authentication 2017-12-20 22:00:42 -02:00
Alexandre Oliveira 85e09237fd Add handler for RPL_WHOREPLY (352) 2017-12-20 19:30:19 -02:00
Alexandre Oliveira 79d6f1c445 Add support for userhost-in-names cap 2017-12-20 17:09:28 -02:00
Alexandre Oliveira 6894e8923b Add support for chghost cap 2017-12-20 13:27:53 -02:00
Alexandre Oliveira 794812b946 Add support for account-notify cap 2017-10-13 12:57:01 -03:00
Alexandre Oliveira 8482381463 Fix invalid cast exception in WHOX query 2017-10-13 12:34:04 -03:00
Benjamin Moir f380779eba Add support for channel keys
Closes #57
2017-10-05 19:40:46 -03:00
Alexandre Oliveira 545896b79a Support WHOX queries 2017-10-04 21:07:35 -03:00
Alexandre Oliveira eda06354e1 Fix NRE thrown by messages with no message tags 2017-10-01 12:30:46 -03:00
HebaruSan 37e40aeffd Pass Part reason to PartChannel 2017-09-20 02:21:27 -05:00
Alexandre Oliveira e09248e092 Improve supported caps readability 2017-09-09 00:05:58 -03:00
Alexandre Oliveira e653691cf9 Add complete support for server-time cap 2017-09-09 00:05:48 -03:00
Alexandre Oliveira 85a69e9307 Fully support IRCv3.2 capability negotiation
- Added support for the cap-notify capability: http://ircv3.net/specs/extensions/cap-notify-3.2.html
2017-08-26 01:03:03 -03:00
Drew DeVault 7a3fa55e6d Merge pull request #81 from RockyTV/channel-issues
Fix channel issues
2017-08-25 21:08:21 -05:00
Alexandre Oliveira a8a77372ef Mirror IrcClient.Channels to IrcClient.User.Channels 2017-08-25 23:04:54 -03:00
Alexandre Oliveira 30345b81fd Compare channels by their names
- Talking in #ircdocs, a channel name is unique when server case mapping is applied.
- In short, #abc == #abc, #Abc != #abc
2017-08-25 23:04:45 -03:00
Alexandre Oliveira 879580ccde Support IRCv3.1 multi-prefix capability
- This client capability will make the server send us all prefixes a user may have in NAMES and WHO messages.

- http://ircv3.net/specs/extensions/multi-prefix-3.1.html
2017-08-25 23:02:17 -03:00
Alexandre Oliveira fac0878e00 Call event with the specified user 2017-08-25 19:48:27 -03:00
Alexandre Oliveira 09a7446a50 Remove user channel modes when they part the channel 2017-08-25 19:47:52 -03:00
Alexandre Oliveira 2d914b2114 Don't remove channel from client channel list when parting it
If we have a logic that handles user parts, leave parts to be handled by this logic. Removing the channel before letting ChatSharp parse parts make it so a user cannot join the same channel after parting it.
2017-08-25 19:44:07 -03:00
Alexandre Oliveira 8d91e92168 Remove useless Pool property from UserPoolView 2017-08-25 19:41:35 -03:00
Drew DeVault 018b6d80c2 Merge pull request #78 from RockyTV/ircv3
Add support for IRCv3 message tags
2017-08-19 12:44:17 -04:00
Alexandre Oliveira 56e0c6ffeb Add basic capability support
The library now supports capability negotiation.
2017-08-19 13:30:32 -03:00
Alexandre Oliveira 6df3f9fefc Check if user is not in channel before joining it
Moved the join logic to the null check statement because it wouldn't make sense to add a null channel to a user.
2017-08-19 02:32:36 -03:00
Alexandre Oliveira 79e46fd78b Add support for IRCv3 message tags
As defined in IRCv3, using the following spec as reference: http://ircv3.net/specs/core/message-tags-3.2.html
2017-08-18 22:55:25 -03:00
Alexandre Oliveira 793f56cd72 Port to .NET Standard 2.0 2017-08-18 20:16:42 -03:00
Andrej 9e8e73c1a8 Change from replie to reply 2017-01-05 15:08:00 +07:00
Andrej 3a587c6f59 Cosmetic changes 2017-01-05 09:50:57 +07:00
Andrej 4a498fc429 IRC server error replies handler
Handler of the IRC server error replies. See rfc1459 6.1 for details.
2017-01-05 09:39:42 +07:00
Andrej d11905962f actual Exception instead e.Message
Also removed the IRCClient project from this PR
2017-01-04 11:38:00 +07:00
Andrej 36b03fd4c2 Catching of "No such host is known" exception
I have added the catching of exception if server address is invalid or
no internet connection. Also I have added the IRCClient console
application for testing.
2017-01-04 10:57:14 +07:00
Alexandre Oliveira 57a01ca85f Throw IOE if destination is null on messages 2015-08-25 14:47:54 -03:00
Alexandre Oliveira 908741d5f8 Added method to send notices 2015-08-16 17:56:35 -03:00
Drew DeVault b1edf96cbc Add XML docs to all public members 2015-07-31 21:06:22 -04:00
Drew DeVault 00cccb986d Fix several bugs 2015-07-31 19:25:02 -04:00