Slamd64

Please see www.slamd64.com for information on Slamd64.

Twitter

MKbot

Summary

MKbot is a modular IRC bot written in C++, using the Qt 4 toolkit. It currently works on networks running hybrid-ircd such as Freenode, and the unreal3 ircd.

Key features

Where to download

MKbot-0.2 Initial release
MKbot-0.3 0.2->0.3 patch Fixed a major bug in the tells plugin

Quick-start

Firstly, install Qt 4 if you haven't already. Once you have Qt 4 installed, download the MKbot source, and extract it (tar jxfv mkbot-$VERSION.tar.bz2).

Go into the created directory (MKbot-$VERSION), and type:

qmake
make

"make" may take a long time.

Once it is completed,type "./launch" and the bot should launch, asking you some essential configuration questions (this will only happen the first time). If it complains about missing libraries, hit ctrl-c to kill the script, and uncomment and edit the LD_LIBRARY_PATH line in launch to point to the path where your Qt 4 libaries are stored.

On a fresh install, the bot will not join any channels, and only has the config, security, and pluginLoader plugins loaded. You will probably want to load the admin and help plugins by sending the following in a private message to the bot:

security.auth
pluginloader.load help
pluginloader.load admin

You will also want to change the access rules very quickly:

security.grant your-username-here // //
security.revoke // // //

See Help.Help for information on the above commands and plugins. All commands are of the form <plugin>.<command>, however one-word short versions can be made with the aliases plugin; load it and see help.help aliases for more information.

Included plugins

Architecture

Header files defining the interface:

Loading plugins

  1. Core loads plugin.so file
  2. Core calls "getObject(CoreInterface*)" method in plugin to get a pointer to an object implementing PluginInterface
  3. In it's constructor, the plugin calls '(CoreInterface*)->registerCommand(this, "command", CommandInterface*)'. (Each command is implemented as a class implementing CommandInterface.

Runtime

  1. Core parses each message
  2. Core calls the "go" method in the appropriate CommandInterface object

Valid XHTML Valid CSS