Permalink
Find file
Fetching contributors…
Cannot retrieve contributors at this time
98 lines (60 sloc) 2.71 KB
Henzell
-------
Henzell is the announcement and stats IRC bot for ##crawl on Freenode IRC.
Dependencies
------------
Henzell needs the Bot::BasicBot, DBI, and YAML::Any perl modules.
To install these on Debian, run:
sudo apt-get install libbot-basicbot-perl libclass-dbi-perl libyaml-perl
If you want to use Henzell with a non-DGL crawl, at least build it
with these flags:
make EXTERNAL_DEFINES="-DDGL_MILESTONES -DDGL_WHEREIS -DDGL_EXTENDED_LOGFILES"
Configuring Henzell
-------------------
Henzell can do several things based on how it's configured:
1. Make Crawl game announcements based on events in any number of
Crawl logfiles and milestones files (if announce=1 and
announce_channel is not empty).
2. Store new game events from any number of logfiles and milestone
files into a MySQL database (if sql_store=1).
3. Answer queries for games and milestones (if sql_queries=1).
You configure Henzell by supplying a henzell.rc in the *directory from
which you run Henzell*. You can alternatively specify the rc filename
as a command-line option with:
perl henzell.pl --rc=some/path/to/myweirdrc
Some sample henzell rc files are included in this repository
(henzell.rc.cao, henzell.rc.sequell, henzell.rc.ircnet).
Henzell for announcements
-------------------------
If you're running a Crawl server and want Henzell to make
announcements, edit def.logs and def.stones and add entries for your
Crawl logfiles and milestone files. Enable announcements (announce=1
and announce_channel=##crawl) in your henzell.rc.
Also choose a unique abbreviation for your server. For instance,
crawl.akrasiac.org is abbreviated as cao, and this must be set both in
henzell.rc and in def.logs/def.stones to identify local logs:
In def.logs:
[local:cao]
/home/crawl/chroot/var/games/crawl04/saves/logfile
In henzell.rc:
bot_nick = NotTheRealHenzell
host = cao
announce = 1
announce_channel = ##crawl
This unique abbreviation is quite important if you're using sql_store=1.
Henzell for SQL queries
-----------------------
This is a lot more complicated than a simple announcement bot:
1. Install MySQL, create a database 'henzell' and a username 'henzell', and
give the user access to the database with no password.
Tip: For security, it's a really good idea to make sure your MySQL
is listening only on localhost, or only on Unix sockets.
2. Set up the database schema with:
mysql -u henzell -p henzell < henzell.sql
3. Make sure def.logs and def.stones are set up correctly.
4. Run Henzell with an rc that includes:
sql_store = 1
sql_queries = 1
commands_file = commands/commands-sequell.txt
If you want the bot to do both announcements and SQL queries, you must
merge the commands files into one big list of commands.