#!/usr/bin/perl -w use strict; use Net::AIM; use VladimirBot; use IO::Socket; my $nick = "VladimirBot"; my $pass = 'awwaiid'; my $aim = new Net::AIM; #$aim->debug(1); my $conn2 = $aim->newconn( Screenname => $nick, Password => $pass) or die "Can't connect to AIM server.\n"; my $conn = $aim->getconn(); $conn->set_handler('config', \&on_config); $conn->set_handler('im_in', \&on_im); $conn->set_handler('error', \&on_error); #$aim->start; while(1) { # Process any AIM events $aim->do_one_loop(); } sub on_config { my ($self, $event) = @_; my ($str) = $event->args; $self->set_config($str); } sub on_error { my ($self, $event) = @_; my $error; my @stuff; ($error, @stuff) = $event->args; my $errstr = $event->trans($error); $errstr =~ s/\$(\d+)/$stuff[$1]/ge; print STDERR "ERROR: $errstr\n"; } sub on_im { my ($self, $event, $from, $to) = @_; my $args = $event->args; my ($nick, $auto_msg, $msg) = @$args; my $out; my $extra; $VladimirBot::extra{'aim'} = $self; #print $event->dump; if($msg eq 'reload') { eval 'use VladimirBot'; $out = "Reloaded."; } else { $out = VladimirBot::process($nick, $msg, $extra); } $self->send_im($nick, $out); }