As my friends and I were trying to start up a gaming community, we created an irc channel on QuakeNet. We wanted to have our own bot in our channel to supress profanity, provide users with information on community related events and services (e.g. our VoIP-server). At first, I started writing a bot in python, but I later moved over to using C#. The reasoning behind the switch was that I wanted to create a module based bot and I preferred the C# approach (creating class libraries and dumping them into a "modules"-folder).
I got the networking part set up pretty quickly, but creating the various classes needed to hold information about for instance channels and users proved a challenge. To deal with this structural conundrum, I used some code from an open source project called IRC.NET (launchpad.net/ircdotnet) that is licensed undet the MIT license.