BotPlug project page

What is BotPlug?
BotPlug is a very interesting IRC bot aimed at those who desire a structured and object oriented approach to their bot.

BotPlug was designed to be robust and flexible from the ground up. The result was a small core and a strong plugin architecture. A set of powerful core plugins are designed to deal with the most basic IRC protocol requests. An operator can then choose which plugins he wants to run on his bot.

The bot also provides access to an internal database, called the Registry. The core plugins use the registry heavily to maintain data internally. Plugins are encouraged to do the same, so information can be shared freely.

What OS does it run on?
Currently Botplug only compiles and runs on platforms supporting Win32. However, the only server we have access to runs Linux, so we aim at becoming a multiplatform application; developed on Windows and occasionally tested on Linux. Only parts of the source code has been ported to Linux right now.

Where can you get it?
No where.
You can download a plugin-template here. But you will need the BotPlug C++ Plugin SDK to compile it.

Who uses it?
No one, yet. But the authors of the bot intend to set it up.

What are plugins?
Plugins are executable files which connect to the bot through a socket. The bot provides an API to the plugins through a BotProxy class. A plugin-coder calls methods on an object instantiated from this class. The proxy forwards calls and their parameters to the bot which generates response, which in turn is sent back through the BotProxy to the plugin coder. For an extensible overview of the Bot API, check this page.

Efforts have been made on writing a "scripting language plugin" by incorporating some sort of a opensource scripting language into a plugin, so people can support the bot without the need of a compiler.

Plugins are written in C++ by extending functionality in classes provided in the BotPlug C++ Plugin SDK. Check out the BotPlug C++ Plugin SDK page for more info.

People:
Concept & ideas by fall, qfwfq and calvin
Programming by calvin and qfwfq