Mercurial > hg > skillbot
changeset 21:7bcc70b2121a
Adding !eta handler to report current training status
author | Dominic Cleal <dominic@computerkb.co.uk> |
---|---|
date | Sat, 06 Dec 2008 22:54:12 +0000 |
parents | 40154257e632 |
children | 1d57373d1c04 |
files | skillbot.pl |
diffstat | 1 files changed, 29 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/skillbot.pl Sat Dec 06 19:58:31 2008 +0000 +++ b/skillbot.pl Sat Dec 06 22:54:12 2008 +0000 @@ -106,6 +106,7 @@ $self->add_handler('cversion', \&on_cversion); $self->add_handler('cping', \&on_ping); $self->add_handler('join', \&on_join); + $self->add_handler('public', \&on_public); } sub irc_debug @@ -219,6 +220,34 @@ } } +sub on_public +{ + my ($self, $event) = @_; + my ($their_nick, $msg) = ($event->nick, $event->args); + + if ($msg =~ /^\!eta/i) { + my $found = 0; + for my $f (@friends) { + if ($f->{nick} eq $their_nick) { + my $text = (defined $f->{skill} + ? sprintf("Currently training %s (finish in %s)", + $f->{skill}->name, + $f->{skill}->time_remaining) + : "No skill currently training"); + + $self->privmsg('#' . $config{channel}, sprintf( + chr(2) . "%s:" . chr(15) . " %s", + $f->{char}->name, encode("utf8", $text))); + $found++; + } + } + + if ($found == 0) { + $self->privmsg('#' . $config{channel}, "No characters found"); + } + } +} + sub on_notice { my ($self, $event) = @_;