Compsoc's Highly Over-engineered Object-oriented Bot
Java JavaScript HTML Perl PHP Shell
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


This is Choob, our Java IRC bot.

License: LGPL (don't ask why)

How to run Maven Choob

Ensure you're using the right software

  • MySQL 5.1+
  • Java 6. Java 7 should work but is mostly untested (we have to work around some things: 1d5ad0a91).
  • Maven 3. Maven 2 (2.2.1 tested) fails to resolve the dependencies that it creates. Worst. Maven3 is packaged for Ubuntu (as of Precise (2012-04-28)) and Debian (as of Wheezy (testing as of 2012-04)), both in the maven package.

# On Debian/Ubuntu, that'd be:

sudo apt-get install mysql-server default-jdk git curl
sudo apt-get install maven || \
  curl | tar zxv
export PATH=$(pwd)/apache-maven-3.0.4/bin:$PATH

# Download and compile

git clone choob
cd choob

# this will download literally the entire Internet, and take _over four minutes_.
mvn package
java -jar target/choob-*.jar setup

# Create the MySQL user

mysql -uroot -p
CREATE USER choob@localhost IDENTIFIED BY 'choob';
GRANT ALL PRIVILEGES ON choob.* TO choob@localhost;

# Setup database and config

(Windows doesn't support this \ syntax, so you need to do it all on one line, with no backslashes.)

java -jar target/choob-1.0-SNAPSHOT.jar setup \
   dbServer=localhost dbUser=choob dbPass=choob database=choob \ ircChannel=#bots \
   botNick=ChoobTrac \

# Start the bot

java -jar target/choob-*.jar

# Set-up the bot for use in Eclipse

if you've never used mvn eclipse before, you need to:

mvn eclipse:configure-workspace -Dworkspace=/path/to/workspace

mvn clean eclipse:eclipse
mvn eclipse:eclipse -DdownloadSources=true -DdownloadJavadocs=true &

Running in the Eclipse debugger

If you run in the (Eclipse) debugger, Choob will attempt to allow Eclipse to compile things. This makes debugging inside plugins work, at the expense of the Choob security model (and intervals, and..) being crippled.

You'll see: Still waiting for your IDE to create the class...

You need to:

  • Turn on automatic workspace refresh. Window -> Preferences -> search for "refresh" -> Workspace -> Refresh Automatically.
  • Add tmp as a source folder. It'll show at the bottom, below all the other source folders. Right click -> build path -> use as source folder.

If you'd rather just debug Choob itself with the classic plugin model, set the property choobDebuggerHack=false.