This is Choob, our Java IRC bot.
License: LGPL (don't ask why)
- 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.
sudo apt-get install mysql-server default-jdk git curl
# http://maven.apache.org/download.html
sudo apt-get install maven || \
curl http://mirror.lividpenguin.com/pub/apache/maven/binaries/apache-maven-3.0.4-bin.tar.gz | tar zxv
export PATH=$(pwd)/apache-maven-3.0.4/bin:$PATH
git clone https://github.com/UWCS/choob.git choob
cd choob
# this will download literally the entire Internet, and take _over four minutes_.
mvn package
java -jar target/choob-*.jar setup
mysql -uroot -p
CREATE USER choob@localhost IDENTIFIED BY 'choob';
CREATE DATABASE choob;
GRANT ALL PRIVILEGES ON choob.* TO choob@localhost;
java -jar target/choob-1.0-SNAPSHOT.jar setup \
dbServer=localhost dbUser=choob dbPass=choob database=choob \
ircServer=irc.uwcs.co.uk ircChannel=#bots \
botNick=ChoobTrac \
rootNick=YourNick
java -jar target/choob-*.jar
mvn eclipse:configure-workspace -Dworkspace=/path/to/workspace
mvn clean eclipse:eclipse
mvn eclipse:eclipse -DdownloadSources=true -DdownloadJavadocs=true &
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
.