Download

While I could probably make a kewl looking website, I'd rather just give you the download and instructions. That's right, I'm lazy.

Download HAL9000, click the following link:

Install

Once you've downloaded HAL do the following commands:


  1) tar -zxvf hal-2.02.02.tar.gz
  2) cd hal-2.02.02
  3) ./configure
  4) make install
  5) cd sql/tables/v2.02.02;
  6) mysql -f hal < hal.sql
  7) mysql -f hal < hal.help.sql
  8) mysql -f hal < hal.help_option.sql
  9) mysql -f hal_dcc < hal_dcc.sql
  10) cd ../../..
  11) cp etc/example.conf etc/hal.conf
 *12) pico etc/hal.conf
  13) ./hal -i       
  14) The above command puts HAL into a console mode 
      where you can inject the needed records into your 
      mySQL tables to set the bots nick, server, realname, 
      initial channel to join and initial users.

  * Or whatever text editor you use.

Record Management and Injection Mode
------------------------------------
 
To create your initial bot, access and channel records, type
the following commands in order and replace the values
enclosed in  with the specified information required. 
For example, if you see  that means type in the nick
name you desire without the <> charaters.  Any variables
enclosed in [] are optional and may not need to be specified.
 
All commands in the injection console must be prefixed with 
a / character.
 
 o /ADD BOT <nick> <server> <port> <realname>
 o /ADD USER <username> <password> <level>
 o /ADD USER HOSTMASK <username> <hostmask>
 o /ADD CHANNEL <bot nick> <#channel> [key]
 
Make sure to add a user for yourself at level 1000 (highest)
and any trusted users at 999 to prevent any chance of your
access being removed by another authenticated user.

Once you've finished in console mode type /QUIT to exit out.
You should have written down the ID number that the
/ADD BOT command returned so you can start your HAL.

To start the bot type the following:

./hal <id>

Hopefully you added a channel for HAL to join and your
access.  Login to the IRC network you sent HAL to
and use the following command to login:

/msg <bot nick> LOGIN <username> <password>

Once logged in you should be able to either:

/msg <bot nick> DCC CHAT

Or:

/DCC CHAT <bot nick>


Documents

    
DCC Command List:

 DCC (0)
  |-ACCESS (1) 0
  |-ADD (1) 0
  | |-CHANNEL (2) 550
  | | |-OPTION (3) 450
  | | `-USER (3) 400
  | |-GREETING (2) 100
  | |-MODULE (2) 999
  | |-OPTION (2) 999
  | `-USER (2) 400
  |   `-HOSTMASK (3) 400
  |-ANOTICE (1) 999
  |-BLOG (1) 100
  | `-MATCH (2) 100
  |-CHANNEL (1) 0
  |-COLOR (1) 0
  |-DEBUG (1) 999
  |-DIE (1) 0
  |-DNS (1) -1
  | |-NSLOOKUP (2) -1
  | `-WHOIS (2) -1
  |-HELP (1) 0
  | `-OPTION (2) 0
  |-IRC (1) 0
  | |-ACTION (2) 999
  | |-DEOP (2) 100
  | |-DEVOICE (2) 100
  | |-INVITE (2) 50
  | |-KICK (2) 100
  | |-KICKBAN (2) 100
  | |-MONITOR (2) 100
  | |-NAMES (2) 0
  | |-ONOTICE (2) 999
  | |-OP (2) 100
  | |-SAY (2) 999
  | |-TOPIC (2) 100
  | |-VOICE (2) 100
  | `-WHO (2) 0
  |-JOIN (1) 0
  |-KICK (1) 100
  |-KILL (1) 100
  |-LINKS (1) 0
  |-LOG (1) 999
  |-LOGIN (1) -1
  |-LOGOUT (1) 0
  |-MAJORDOMO (1) 800
  | |-ADD (2) 800
  | | |-LIST (3) 800
  | | `-USER (3) 800
  | |-MATCH (2) 800
  | | |-LIST (3) 800
  | | `-USER (3) 800
  | `-REMOVE (2) 800
  |   |-LIST (3) 800
  |   `-USER (3) 800
  |-MATCH (1) 0
  | |-BAN (2) 0
  | | |-COMMENT (3) 0
  | | |-HOSTMASK (3) 0
  | | `-LEVEL (3) 0
  | `-USER (2) 0
  |   |-LEVEL (3) 0
  |   `-USERNAME (3) 0
  |-ME (1) 0
  |-MSG (1) 0
  |-NAMES (1) 0
  |-NET (1) 0
  | |-RESTART (2) 999
  | |-SAY (2) 999
  | `-SHUTDOWN (2) 999
  |-NEWPASS (1) 0
  |-NICK (1) 0
  |-OVERRIDE (1) -1
  |-PAGE (1) 100
  |-PART (1) 0
  |-PICKUP (1) 999
  |-QUERY (1) -1
  |-QUIT (1) -1
  |-QUOTE (1) 999
  |-REFRESH (1) 0
  | `-CHANNEL (2) 0
  |-REMOVE (1) 0
  | |-CHANNEL (2) 0
  | | |-OPTION (3) 450
  | | `-USER (3) 400
  | |-GREETING (2) 100
  | |-MODULE (2) 999
  | |-OPTION (2) 999
  | `-USER (2) 400
  |   `-HOSTMASK (3) 400
  |-RESTART (1) 999
  |-SHOW (1) 0
  | |-CHANNEL (2) 0
  | | `-OPTIONS (3) 450
  | | `-OPTIONS (3) 450
  | |-OPTIONS (2) 450
  | `-USER (2) 0
  |   `-OPTIONS (3) 450
  |-SQUIT (1) 999
  |-TINYDNS (1) 800
  | |-ENABLE (2) 800
  | `-REFRESH (2) 800
  |-TOPIC (1) 0
  |-TREE (1) 0
  |-UNETDB (1) 800
  | |-ADD (2) 800
  | | |-OPER (3) 800
  | | | `-FLAG (4) 800
  | | |-SERVER (3) 800
  | | `-USER (3) 800
  | |-MODIFY (2) 800
  | | `-SERVER (3) 800
  | |   `-OPER (4) 800
  | |-REMOVE (2) 800
  | | |-OPER (3) 800
  | | | `-FLAG (4) 800
  | | |-SERVER (3) 800
  | | `-USER (3) 800
  | `-SHOW (2) 800
  |   |-FLAG (3) 800
  |   |-OPER (3) 800
  |   |-SERVER (3) 800
  |   `-SERVERS (3) 800
  |-WALLOPS (1) 100
  |-WHOIS (1) 0
  `-XDCC (1) 0
*** End: TREE

Each level of the tree is a word in the command,
for example:

.ADD USER <username> <password> [level]

NOTE: Some commands are from loadable modules.
      The modules can be found and compiled in
      the directdory "modules".

      For example:

      cd modules/infobot
      make install

      Once installed in DCC chat type the following
      command:

      .LOAD MODULE lib/libinfobot.so

DCC CHAT with HAL mimics an IRC server.  You can:

.JOIN <#channel>

And chat with others in the channel.  If HAL is in
#2010 on an IRC network and you .JOIN #2010 in DCC
CHAT you can assign other HAL users access to the
IRC server channel by:

.ADD CHANNEL USER <username> <level>

You must .JOIN a channel in HAL first before
you can assign access using the ADD CHANNEL USER
command.

IRC channels and virtual channels in DCC CHAT
are relative.

Using:

.WALLOPS <message>

You can communicate to anyone in DCC regardless of
the virtual channel they are in.
    
  
    
Linking multiple instances of HAL through DCC

If you are running two instances of HAL using
diferent nicks or even the same nick but
different networks, you can link them together
in DCC.

To do so you must add a connect record and an
accept record in the mySQL table named "hal_dcc".

For example say you have two bots:

HAL (id 1) with IP of 10.0.0.1 and SAL (id 2)
with IP of 10.0.0.2

To cause SAL to link up automatically with SAL
you would run the following commands in mySQL
on the "hal_dcc" db.

use hal_dcc;

INSERT INTO link (boid, type, nick, user, pass, 
ip, port, ping, active) VALUES ('1', 'ACCEPT',
'HAL<SAL', 'MyUsername', PASSWORD('mypass'), 
'10.0.0.2', '0', '300', 'Y');

INSERT INTO link (boid, type, nick, user, pass, 
ip, port, ping, active) VALUES ('1', 'CONNECT',
'SAL<HAL', 'MyUsername', 'mypass', 
'10.0.0.1', '8800', '300', 'Y');

You can verify they have linked or are linking
using the following diagnostic commands
in DCC CHAT:

.ANOTICE ON
.LOG ON
.LINKS

You do not have to restart the bots after adding
these records, they will automatically read the
tables and start trying to connect to each other.
    
  

Contact

    
If you have any questions I'll try to answer them
as best I can, I hang on Undernet IRC as
OmniDynmc in #2010.

Good luck!