dirkobot/lib/Bot/BasicBot/Pluggable/Module/Restart.pm
2011-09-10 12:08:58 -04:00

39 lines
1 KiB
Perl

package Bot::BasicBot::Pluggable::Module::Restart;
use strict;
use warnings;
use Data::Dumper;
use base qw(Bot::BasicBot::Pluggable::Module);
use POE;
sub help {return ""}
sub mklog {
open(my $pbh, "-|", "/home/simcop/bin/mklog") or return "$!";
my $pb = <$pbh>;
return $pb;
}
sub seen {
my ($self, $mess) = @_;
if ($mess->{body} =~ /^\s*!mklog\s*$/ && $mess->{channel} eq "#dirkocraft-admin") {
return mklog();
} elsif ($mess->{body} =~ /^\s*!hardrestart\s*$/ && $mess->{channel} eq "#dirkocraft-admin") {
my $pb = mklog();
system("/home/simcop/bin/crash");
return "Restarting ". $pb;
} elsif ($mess->{body} =~ /^\s*!restart\s*$/ && $mess->{channel} eq "#dirkocraft-admin") {
POE::Kernel->post( 'bukkitdtach', 'queue_command', 'save-all' );
POE::Kernel->post( 'bukkitdtach', 'queue_command', 'stop' );
return "Performing soft restart, wait 4 minutes and then try !hardrestart\n";
} elsif ($mess->{channel} eq "#dirkocraft-admin") {
return 1;
}
return;
}
1;