#!/usr/bin/perl
package main;
my $bot = Perlbot->new (no_run => 0, server => 'swiftco.dal.net', chan
+nels => ['#randomtestingchannel']);
$SIG{'INT'} = 'Handler';
$SIG{'TERM'} = 'Handler';
sub Handler {
$bot->{_shutdown} = 1;
$bot->shutdown('Leaving.');
};
$bot->run;
package Perlbot;
use strict;
use warnings;
use POE;
use base qw(Bot::BasicBot);
sub irc_disconnected_state {
my $self = $_[OBJECT];
if ( $self->{_shutdown} ) {
$poe_kernel->alarm_remove_all();
$poe_kernel->alias_remove($_) for $poe_kernel->alias_list();
return;
}
$self->SUPER::irc_disconnected_state( @_ );
}
sub irc_error_state {
my $self = $_[OBJECT];
if ( $self->{_shutdown} ) {
$poe_kernel->alarm_remove_all();
$poe_kernel->alias_remove($_) for $poe_kernel->alias_list();
return;
}
$self->SUPER::irc_error_state( @_ );
}
It is icky nasty though. |