Mercurial > hg > skillbot
comparison skillbot.pl @ 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 | 10587dbd634b |
children | 1d57373d1c04 |
comparison
equal
deleted
inserted
replaced
19:40154257e632 | 21:7bcc70b2121a |
---|---|
104 $self->add_handler(376, \&on_connect); | 104 $self->add_handler(376, \&on_connect); |
105 $self->add_handler(433, \&on_nick_taken); | 105 $self->add_handler(433, \&on_nick_taken); |
106 $self->add_handler('cversion', \&on_cversion); | 106 $self->add_handler('cversion', \&on_cversion); |
107 $self->add_handler('cping', \&on_ping); | 107 $self->add_handler('cping', \&on_ping); |
108 $self->add_handler('join', \&on_join); | 108 $self->add_handler('join', \&on_join); |
109 $self->add_handler('public', \&on_public); | |
109 } | 110 } |
110 | 111 |
111 sub irc_debug | 112 sub irc_debug |
112 { | 113 { |
113 my ($fmt, @args) = @_; | 114 my ($fmt, @args) = @_; |
214 irc_debug("Disconnected from %s (%s). Attempting to reconnect...", | 215 irc_debug("Disconnected from %s (%s). Attempting to reconnect...", |
215 $event->from, ($event->args())[0]); | 216 $event->from, ($event->args())[0]); |
216 | 217 |
217 while (! $self->connect()) { | 218 while (! $self->connect()) { |
218 irc_debug("%s", $@); | 219 irc_debug("%s", $@); |
220 } | |
221 } | |
222 | |
223 sub on_public | |
224 { | |
225 my ($self, $event) = @_; | |
226 my ($their_nick, $msg) = ($event->nick, $event->args); | |
227 | |
228 if ($msg =~ /^\!eta/i) { | |
229 my $found = 0; | |
230 for my $f (@friends) { | |
231 if ($f->{nick} eq $their_nick) { | |
232 my $text = (defined $f->{skill} | |
233 ? sprintf("Currently training %s (finish in %s)", | |
234 $f->{skill}->name, | |
235 $f->{skill}->time_remaining) | |
236 : "No skill currently training"); | |
237 | |
238 $self->privmsg('#' . $config{channel}, sprintf( | |
239 chr(2) . "%s:" . chr(15) . " %s", | |
240 $f->{char}->name, encode("utf8", $text))); | |
241 $found++; | |
242 } | |
243 } | |
244 | |
245 if ($found == 0) { | |
246 $self->privmsg('#' . $config{channel}, "No characters found"); | |
247 } | |
219 } | 248 } |
220 } | 249 } |
221 | 250 |
222 sub on_notice | 251 sub on_notice |
223 { | 252 { |