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!
