My irc bot shall have the possibility to do things at a certain time. Users need to be able to set (show and delete) alarms and get spoken to at the desired time.
Working with Bot::BasicBot::Pluggable I had the idea of using alarms of a POE::Kernel session. Should I go with that idea or is there a simpler/better way to achieve my goal?
When calling run() on the BasicBot object, I don't get the POE object back in any way, to start another session (at least, I didn't see a way). Could you point me into the right direction? How can I start two POE sessions, where one of them is the BasicBot which handles the irc conversations and the other session just takes care about alarms?
Thanks for your help!
This is how the bot is started:#!/usr/bin/perl use Modern::Perl; use Bot::BasicBot::Pluggable; my $bot = Bot::BasicBot::Pluggable->new( channels => ["#bottest"], server => "irc.test.test", port => "6667", nick => "bot", ); $bot->load('MyModule'); $bot->run();
...and the module where the bot reacts to things said/done in irc looks like this (excerpt):
package Bot::BasicBot::Pluggable::Module::MyModule; use warnings; use strict; use base qw(Bot::BasicBot::Pluggable::Module); sub init { my $self = shift; $self->config( { sc => 2 } ); } sub help { return "Does wild things"; } sub admin { my ($self, $msg) = @_; my $who = $msg->{who}; my $body = $msg->{body}; my $channel = $msg->{channel}; my $address = $msg->{address}; # if($address) { # return "you talk to me"; # } # ... } 1;
In reply to schedule alarms with POE and Bot::BasicBot::Pluggable ? by brengo
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |