rendered paste bodyuse strict;
use vars qw($VERSION %IRSSI);
use FileHandle;
use IPC::Open2;
use Irssi;
$VERSION = '1.00';
%IRSSI = (
authors => 'sloow',
contact => 'sloow@sloow.org',
name => 'Experimental',
license => 'Public Domain',
);
my ($Reader, $Writer, $pid);
my $GameOn = 0;
# This sub will handle ALL incoming private messages
sub server_msgs {
my ($server, $data2, $nick, $address) = @_;
my ($target, $text) = split(/ :/, $data2, 2);
if ( ($target =~ /^\#testing123$/) && ($nick =~ /^micro500$/i) )
{
my $answer;
if ($text =~ /^Game has begun/)
{
$server->command("msg #testing123 Looks like the start of a game!");
$GameOn = 1;
$pid = open2(\*Reader, \*Writer, './solver');
Writer->autoflush();
$server->command("msg #testing123 Started solver pid = " .$pid);
print Writer $text . "\n";
chomp($answer = <$Reader>);
print $answer;
$server->command("msg #testing123 Bot says " . $answer);
}
elsif ($GameOn && ($text =~ /^The/ || $text =~ /^Digit/))
{
$server->command("msg #testing123 Looks like a clue!");
print Writer $text . "\n";
chomp($answer = <$Reader>);
print $answer;
$server->command("msg #testing123 Bot says " . $answer);
}
elsif ($GameOn && $text =~ /found the correct code/)
{
$server->command("msg #testing123 Looks like the game is over!");
$GameOn = 0;
close Writer;
close Reader;
waitpid($pid, 0)
}
}
}
Irssi::signal_add("event privmsg", "server_msgs");