Skip to content

A lightweight, simple to use and implement, IRC library with support for DCC download (no upload)

License

Notifications You must be signed in to change notification settings

spreedated/SimpleIRCLib

 
 

Repository files navigation

SimpleIRCLib for Csharp

THIS LIBRARY IS STILL IN DEVELOPMENT STARTING AT V2.0.0 THIS LIBRARY IS NOT BACK-WARDS COMPATIBLE WITH PREVIOUS VERSIONS!

This library is designed to make communication through IRC easier to implement in your application. In comparison to other C# IRC libraries, this library also enables you to download using the DCC (XDCC) protocol, used by IRC.

It's main features are:

  • Is simple to use.
  • Is simple to implement
  • It's lightweight
  • Multiple channel support
  • DCC Download support

NuGet

NuGet Package

Version

1.0.0:

  • First release version

1.0.1:

  • Fixed bug where leaving out debug callback would cause nullreferenceexception.

1.1.1:

  • Added split in username | message
  • Added quit/disconnect method
  • removed usesless getters and setters
  • fixed a few more less significant bugs

1.1.2:

  • Removed getDownloadProgress, now download information can be retreived within the downloadStatusChangedCallback.
  • Fixed error when you try to check if client is running before connecting to a server!

1.1.3:

  • Code mostly reworked by following feedback from this post: reddit, such as:
  • removed static fields
  • removed inheriting classes
  • text now being parsed through regex
  • for receiving messages: a async task instead of a thread
  • getDownloadProgress/downloadStatusChangedCallback has different way of operation (see below)
  • addes status attribute for downloadstatus/progress

1.1.3 -> 1.1.7:

  • stability issues fixed

1.1.8:

  • bugfixes, see commit description

1.1.9:

  • bugfixes, see commit description

1.2.0

  • Functionality update: Added method to retreive all the users in the current channel, as well as in other channels (but most of them will be hidden, so not very usefull ^^).

1.2.1

  • Functionality update: Send Raw Messages (such as NICK, PRIVMSG etc.)
  • Functionality update: Retreive Raw Data
  • Functionality update: Send /msg using normal sendMessage() function
  • Functionality update: Receive Notice message just like PRIVMSG (end user sees the source of the notice, for example: NickServ: bla bla bla)
  • Code update: changed parsing messages a bit.

1.2.2

  • Fixed issue with downloading filesizes larger than 4Gb.

1.2.3

  • Abort download only deletes file if it was actually downloading the file.(had issues where it would still delete even if the file was already done downloading)

1.2.4

  • Bug where some DCC SEND messages from bots were not detected & parsed properly.
  • Should support IPv6 now. (Not really tested).
  • Added function to check if download thread is still running.
  • Added some debug messages for debugging purposes.
  • Default download directory is now set to the same directory where the libary resides.
  • Added flag to check if an error occured of any kind within the library (doesn't tell what kind of error yet).

2.0.0

  • Rewritten IrcConnect class (now called IrcClient) to prevent Race conditions!
  • Added timeout warnings.
  • Added support for TLS/SSL
  • Added better error handeling using the error codes from RFC 1459 IRC Protocol
  • Added full support for receiving and sending to seperate channels
  • Added comments and changed names to fit C# code convention
  • Under the hood DCC fixes for more stability and error handeling when downloads go wrong
  • Changed Action based callback methods to Event handlers

2.1.0

  • Support for multiple .NET FrameWorks such as: .NET 4.5, .NET 4.6, .NET 4.7 & .NET CORE 2.0 & .NET CORE 2.1
  • Renamed a few properties.

2.1.1 & 2.1.2

  • DCC Fixes

2.2.0

  • Moved from multiple target framework to single framework: NETStandard2.0.

Wiki

To get a better picture of the available methods and properties, go to this wiki: SimpleIRCLib Wiki

For a full WinForms example, go to: WinForm Example

For a simplified console example: Console Example

Tutorial

A winform example including video tutorial (v1.1.2) OLD - NOT SUPPORTED FOR v2.0.0: YouTube

-New v2.0.0 and up tutorial comming soon!

Development

I will try to fix (significant) bugs as quick as possible, but due to my study taking a rollercoaster dive in a few days it might take a while before an actual update will appear. It is very barebone and does need some refinement. So, progress in development will come down to how much free time I have and how much of it I want to spend working on this library.

Todos

  • Some DCC fixes, most things seem to work, but there are some odd cases where it might not work.
  • More readable code (getting better)
  • Renaming some stupidly named names

Disclaimer

This library is still in alpha stadium, many things might go wrong and therefore I am not responsible for whatever happens while you use this application.

License

MIT

Free Software, Hell Yeah!

About

A lightweight, simple to use and implement, IRC library with support for DCC download (no upload)

Resources

License

Stars

Watchers

Forks

Languages

  • C# 100.0%