S LogoS Logo

SkinnyBot

javaThis program is written in Java, you may wish to read this first.

SkinnyBot is an IRC bot framework based on the PircBot framework. PircBot provides all of the functionality you need for communicating with an IRC server. SkinnyBot takes this to the next level, by providing you with a fully functioning (in theory) IRC bot that allows you to customise it, by writing or downloading your own plugins.

When you load SkinnyBot, it looks in the config file, then connects to the specified server, and joins any listed channels. SkinnyBot is designed around a dynamic plugin structure. This means, that on its own, SkinnyBot doesn't do very much. You can however specify plugins in the config file. These plugins can be loaded, unloaded and re-loaded whilst the bot is still running. It is these plugins that decide the behaviour of the bot.

SkinnyBot presently comes supplied with 15 plugins that do various things from passing messages, to telling the time. A detailed explanation of all of the plugins can be found on the plugins page. The idea behind the plugin structure is that you can download SkinnyBot, then download or write your own plugins to make the bot behave the way you want.

Downloads:

PircBot PircBot.jar (External to this site) 150kb Approx.
SkinnyBot SkinnyBot.zip (Includes source files and javadocs). 227kb
net.skinnybrown common libraries Installation instructions here About 60kb

There is also an online version of the javadocs.

Useful links

Installing SkinnyBot

Writing your own plugins

Known Implementations of SkinnyBot

Name Author Location
Rodney Skinnybrown compsoc1.ukc.ac.uk #geeks, #bots

If you have created a SkinnyBot of your own, then tell me about it and I will feature it on the site. If you have written any plugins that you would like to see included in the next release, I will be happy to take a look. I am also open to suggestions.

To do:

  • Get the google search plugin working
  • Provide better handling of NickInUseExceptions
  • Do some more work on the GUI
  • Add random quit reasons
  • Allow plugins to register which events that they are interested in
  • Allow support for a default plugin which fires if none of the others have anything to say
  • Version History

  • 2.7 - SkinnyBot and it's plugins now fully supports all features of PircBot.
  • 2.6 - SkinnyBot is born. The idea of multiple config files was improved on; Rodney is now just a custom configuration of SkinnyBot. The classes have also been put into appropriate packages; in order to keep the main bot files separate from the plugins and the GUI classes.
  • 2.5 - Code severely re-structured so that it actually makes some sense to look at.
  • 2.4 - Fixed all (I think) of the bugs revealed by the error logger.
  • 2.3 - Error logging added (lots of those).
  • 2.2 - You can now run different bots of the same set of classes by specifying the config file at startup.
  • 2.1 - The concept of a config file is added, so that it is no longer necessary to re-compile every time you want to change configuration details.
  • 2.0 - Rodney goes dynamic! With some help from Marc Roberts, the plugin structure is properly implemented.
  • 1.5 - A pathetic attempt to implement dynamic plugins is made.
  • 1.2 - Made the keyword search look at whole words rather than just fragments, mainly to fix the bug where Rodney (as SkinnyBot was then known) would respond with "lol, I found that very funny" if somebody typed "Hololcaust" (a subtle typo with an extra l, to provide the substring of "lol").
  • 1.1 - Added some methods to search messages for keywords.
  • 1.0 - Initial cluster of if statements.