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;