This page last changed on Feb 15, 2005 by gbevin.

The most important file is drone.xml. It allows you to configure your bot exactly as you want.

Below is a sample configuration file:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE drone SYSTEM "/dtd/drone.dtd">

<drone>
    <server name="codehaus">
        <output max="1500" amount="25" interval="1000"/>
        <timeout value="300000"/>
        <charset name="UTF-8"/>
        <address name="irc.codehaus.org" port="6667"/>
    </server>
    
    <bot name="testbot"
         nick="TestBot" altnick="TestBot_"
         realname="UWYN's Drone Bot (http://drone.codehaus.org/)"
         servername="codehaus">
         
        <channel name="#drone"/>
        
        <module classname="com.uwyn.drone.modules.Version"/>
        <module classname="com.uwyn.drone.modules.Ping"/>
        <module classname="com.uwyn.drone.modules.Help"/>
        <module classname="com.uwyn.drone.modules.Faq"/>
        <module classname="com.uwyn.drone.modules.Log"/>
        <module classname="com.uwyn.drone.modules.Seen"/>
    </bot>
</drone>

You can use the tag overview below to customize this to your needs.

If you use modules that store information, you'll probably want to configure the database next.

Supported tags

<drone>

This is the root tag and has to be used to start the configuration.

<server>

Declares a new server.

The following attributes are available:
namethe name of the server that will be used later to refer to it

<output>

Configures the output rate at which messages can be sent to the server. It's important to tune this well, otherwise the bot might be kicked from the server due to excess flood.

This tag is optional, if it's omitted, sensible default values will apply.

The following attributes are available:

maxThe amount of bytes that can be spewed out in one go when the buffer is empty, if more text is available the buffer will be filled and slowly emptied.
intervalThe interval at which the buffered text will be emptied.
amountThe amount of bytes that will be sent at each interval

<timeout>

Configures the amount of time Drone waits for data on the server socket. If no data is received in time, Drone pings the server and expects a response. If the response doesn't arrive within the timeout delay, Drone will reconnect to the server.

This tag is optional, if it's omitted, it will default to 5 minutes.

The following attributes are available:

valueThe timeout value in milliseconds.

<charset>

Configures the character set that Drone will use to decode the data it receives from the IRC server.

This tag is optional, if it's omitted, it will default to UTF-8.

The following attributes are available:

nameThe name of the character set.

<address>

An address at which the server can be reached. You can add as many address tags as you want, they will be tried in the order of declaration in case some of them might not be reachable.

The following attributes are available:
namethe domain name or ip address of the IRC server
portthe port where it can be reached, this attribute is optional and defaults to 6667 if it's not specified

<bot>

Creates a new bot that will run on an earlier defined server.

You can create as many bots as you like and the shipped modules will seperate the information according to the bots that you configured. So if you want to maintain different FAQs for different channels, just create different bots.

The following attributes are available:

nameThe unique name of this bot. This name will be used to refer to the bot and to store the information in the database.
nickThe nickname that the bot should use on IRC.
altnickThe alternative nickname that the bot should use in case the primary nickname is taken.
realnameThe real name of the bot that will show when people request information about your bot through IRC.
servernameThe server name to which the bot will connect. This has to correspond to the name of an earlier defined server.

<channel>

Makes the bot join a channel.

You can define as many channels as you want, the bot will join them all.

The following attributes are available:

nameThe name of the channel that has to be joined

<module>

Defines a module that should be activated for this bot.

You can define as many modules as you want, they will be activated in the order you declare them.

The following attributes are available:

classnameThe fully quantified class name of a Java class that extends the Module interface
Document generated by Confluence on Feb 15, 2005 12:31