Java Battle.net Bot
contents The Java Battle.net Bot
Starting the Bot

Command-line Options
Message System
Access levels
Groups
Users
Contact
the java battle.net bot So, it's time for 1.1.0 now. This version is much easier to use, which causes this readme to become shorter. I've removed the parts where I explain the format of the config and database files, because you can now do that graphically. If you want to edit them manually anyway, there are instructions in the beginning of each file.

Additional info will probably be put up in the near future on the page:
http://home.swipnet.se/hefa/javabot

Some changes are:
change home channel service
fully graphical interface
new database file format which isn't backwards compatible, but the bot knows how to convert it
channel logging of everything done in the channel
stability improved a lot!
starting the bot Unfortunately, running Java applications isn't as easy it should be. It depends on your Java Runtime Environment (JRE). I'll rewrite these instructions in the near future... But first, to make things easier for most of you, this is one way of doing it on a Win32 platform:

1. Download the JavaSoft JRE for Win32 from:
http://www.javasoft.com/products/jdk/1.2/jre/download-windows.html
(Just click the "continue" button in the middle of the page)

2. Install it
You know how to do that :-)

3. Run the bot
Open a DOS prompt, change directory to where you unzipped the bot, and type:
java -jar bot.jar

If you've already got a JRE installed that's 1.1 compatible, type:
jre -cp bot.jar Bot (caps Bot correctly)

Other OSes and JREs
I cannot write here how to do it on every JRE (nor do I know), so you'll have to check the readme files. Some info you might need to look for is the following:

First of all, javabot is a Java application, not an applet. This meens it doesn't run in a web browser, and it does more than just display nifty graphics (although the text scroller is rather impressive, if I may say so myself). It can be run on any JRE that is compatible with Java 1.1 or later. It is a Java JAR file (bot.jar), and does have a Java 1.2 main-class header. If you're not running a 1.2 compatible JRE, the main class is called "Bot" (.class), case sensitive. Javabot is not a package. Javabot uses the following standard Java packages:
java.lang, java.util, java.io, java.net, java.awt, java.awt.event

As I said, javabot is written in Java 1.1. I have tested it on Win 95/98/NT4,
Mac, Linux 2.0/2.2 and Solaris. I am pretty sure it will run anywhere.
command-line options If you intend to use the bot in a graphical environment (as I centainly recommend), you can just skip this part. Really, all this can be changed in the console too.

-console awt

Graphical, fun to use interface with chat and one hell of an about window. This is the default console :)

-console text
Textish console, not too fancy, no send capability.

-console none
Only display messages, good for running it as a background process.

-timeout <time in seconds>
Sets socket timeout, useful on the extremely rare occations when battle.net lags (Blizzard please hire me! :-). Default is 120 seconds.

-nolog
Turns off logging.

-loglevel <level>
Sets minimum level of messages that will be written to log file. See part about messages below. Default is 1.

-msglevel <level>
Sets minimum level of messages that will be sent to console. See part about messages below. Default is 2.
message system Messages are short text strings generared on various places in the program. Every message also has a priority from 0, lowest, to 3, highest. These priorities are:

3: Errors, Exceptions, bad stuff
2: Running related things, normal messages
1: Messages related to user-generated events
0: Debug, socket input and output

Don't log level 0 unless you want to exceed your quota... As noted above, the default console message level is 2, and 1 for logging. Those values have proved to be suitable (unless when debugging), that's why they're called the Default Values... :-)
access levels Access levels determine what a user is allowed to do. A user has a level, through its group, and a command requires one. You can change the level of any command in the Access Levels menu item in the Bot submenu of the Settings menu (you'll find it :-). A group's access level is changed by choosing Edit Group in the Users menu, under the correct group. A user has the access level of the group it is a member of.

You can have almost as many access levels as you like. The limit is that it has to be within the range of about -2.1 to +2.1 billion.
groups There is absolutely no limit on the amount of groups you can create. There are 6 default groups with different access levels shipped with the bot as default. It might be a very good idea to create a group for say each clan in your channel. This way they can for instance memo within the clan by using the "memo group" service, and you can easily change the whole group's access level if you want.

So, a group must have a name and an access level. What more? Well, you might want to put your enemies in a certain group. That group should have Auto Kick and Auto Ignore turned on. It might also be suitable to put all unknow people who enter the channel in a certain guest group. That group should probably have Auto Remove on.

A group also has default values for Notify Me, Notify Others, Channel Monitoring, and the ability to override the user's choice on these settings. All this can easily be edited in the Group Editor, which can be found by clicking Edit Group in the Users menu.
users Users are of course what this is all about!

One of the main features of the javabot is its notify function, which I will try to explain. As no other battle.net bot can (/me proud), the javabot continuously searches for its users on battle.net, detecting logons and logoffs. This is called the notify function. Every user has the ability to either receive notifies of other users' logons/logoffs, or trigger a notify by itself when it logs on or off. These options are called Notify Me, and Notify Others.

There is also a function called Channel Monitoring, which lets users know when people enter/leave the channel. This is only sent to users who have the Channel Monitoring option turned on.

Note: groups may override every one of these settings!

Edition of users is best done with the User Editor, which can be invoked by clicking on the user's name, under the appropriate group, in the users menu.
contact If you want to contact me, please write to javabot@swipnet.se.

hefa - Henrik Falck