1. Jonas
  2. Eldis3


Clone wiki

Eldis3 / Home

About Eldis3

Eldis3 is a simple IRC bot written in Java and JavaScript. The core, which handles connections to the IRC server(s), is written in Java, and the actual commands are implemented as JavaScript functions.

Setting up Eldis3

After fetching the source, compile it with mkdir bin; javac -cp src -d bin src/Main.java. This should give you a directory "bin" with the class file hierarchy.

Next, if we try to run eldis3 (./eldis3 in the eldis3 folder), we should now get an error about data/data.json. Time to create it! Create the folder data, and then create a file data.json in it, containing:

  "servers": {
    "MyServer": {
      "address": "irc.example.net",
      "port": 6667,
      "nick": "Eldis3-ex",
      "channels": {}
  "users": {
    "yourHostName.some.isp.com": {
       "level": 5

This should be enough to get you started. Now run ./eldis3, and hopefully it won't complain.


  • 2010-10-10: Added support for HTTP POST requests and pastebin. Also fixed toJson for recursive data structures, but this could be improved more.
  • 2010-10-09: Reworked core to allow for multiple triggers (commands, CTCPs, karma modifiers).
  • 2010-09-28: Separated register and registerRaw.

Todo list

  • Add support for automagic nick-specific prefix.
  • Add IAL-style user list handling (track join, part, quit, nick).
  • Move translations to separate file(s).
  • Separate register and registerRaw. 33a21248c45c 2010-09-28
  • Auto-saving timer.
  • Auto-reconnect on disconnection.
  • Eldis3 CLI ("server"-like, manage servers, users and so on).
  • Add CTCP support (custom prefix?)
  • Fix NaN at connection output (port). ?
  • Refactor to allow for mapping different triggers to different sets of commands. 2d60801c5398 2010-10-09
  • Add support for bot pastebinning stuff. fc9661210501 2010-10-10
  • Add debugging utils (Debug object, for use with eval). 18f60b7c4ca3 2010-10-10
    • Add debug command (debug = eval but with (Debug) {}).
  • Add support for calling JS function for unhandled commands.
  • Develop proper event system.
  • Rename Trigger → Handler?
  • Add karma feature.
  • Eldis.socketRead: rename to socketGet, add optional param getData.
  • Eldis.state.self is broken: needs to be per-network and then set on setParameters (per message).
  • Add better version support: +version, CTCP VERSION, pastebinning etc. can utilise the same data.
    • Should also use hg revision (if available). 205cac01d082 2010-10-10
  • Add proper recursion for Eldis.toJson.
  • Add alternatives to hg for +recompile: tar.gz, zip?
  • Eldis3 needs profiling! Startup and handling of messages is getting really slow.