Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #/usr/bin/perl
- use strict;
- use warnings;
- #Use integer. Doesn't accept floats#
- use integer;
- use POE qw(Component::IRC);
- use POE::Component::SSLify qw( Client_SSLify );
- my $nickname = 'NotMyBot';
- my $ircname = 'NotMyBot';
- my $server = 'storm.psych0tik.net';
- my $port = '6697';
- #my $channel = '#NotMyChannel';
- my $channel = '#Psych0Arena';
- ##############################
- ##### #Psych0Stadium ####
- ##### G000000ooooooaaall! ####
- ##############################
- my $nickserv = 'NickServ';
- my $nickservPassword = "yhrei_43";
- # We create a new PoCo-IRC object
- my $irc = POE::Component::IRC->spawn(
- nick => $nickname,
- ircname => $ircname,
- server => $server,
- port => $port,
- UseSSL => 1,
- ) or die "Oh noooo! $!";
- POE::Session->create(
- package_states => [
- main => [ qw(_default _start irc_001 irc_public irc_msg) ],
- ],
- heap => { irc => $irc },
- );
- $poe_kernel->run();
- sub _start {
- my $heap = $_[HEAP];
- # retrieve our component's object from the heap where we stashed it
- my $irc = $heap->{irc};
- $irc->yield( register => 'all' );
- $irc->yield( connect => { } );
- return;
- }
- sub irc_001 {
- my $sender = $_[SENDER];
- # Since this is an irc_* event, we can get the component's object by
- # accessing the heap of the sender. Then we register and connect to the
- # specified server.
- my $irc = $sender->get_heap();
- print "Connected to ", $irc->server_name(), "\n";
- $irc->yield( privmsg => $nickserv => " IDENTIFY $nickservPassword" );
- # we join our channels
- #$irc->yield( join => $channel );
- $irc->yield( join => $channel, "Hesh00tsHescores!!" );
- return;
- }
- sub solve
- {
- my $what=shift;
- if($what =~ /^SOLVE: ([\d+\-\+\*\/]+)/)
- {
- my $answer=eval $1;
- print "<!answer!> $1: $answer\n";
- return $answer;
- }
- }
- sub irc_public {
- my ($sender, $who, $where, $what) = @_[SENDER, ARG0 .. ARG2];
- my $nick = ( split /!/, $who )[0];
- my $channel = $where->[0];
- print "< $nick> $what\n";
- if ( $nick =~ "DickServ" && $what =~ /^SOLVE: / )
- {
- my $answer = "!solve ";
- $answer .= solve($what);
- $irc->yield( privmsg => $nick => "$answer" );
- stats();
- }
- return;
- }
- sub getStats()
- {
- $irc->yield( privmsg => 'DickServ' => '!stats' );
- return;
- }
- sub stats
- {
- my $what = shift;
- print "#PrivMsg <DickServ> $what\n";
- return;
- }
- sub irc_msg
- {
- $irc->yield( privmsg => 'DickServ' => "!stats" );
- my ($nick, $where, $what) = @_[ARG0 .. ARG2];
- if($nick =~ 'DickServ')
- {
- stats($what);
- }
- else
- {
- print "-!-#PrivMsg <$nick> $what\n";
- }
- return;
- }
- # We registered for all events, this will produce some debug info.
- sub _default {
- my ($event, $args) = @_[ARG0 .. $#_];
- my @output = ( "$event: " );
- for my $arg (@$args) {
- if ( ref $arg eq 'ARRAY' ) {
- push( @output, '[' . join(', ', @$arg ) . ']' );
- }
- else {
- push ( @output, "'$arg'" );
- }
- }
- print join ' ', @output, "\n";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement