Advertisement
Guest User

Untitled

a guest
Jun 25th, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 3.24 KB | None | 0 0
  1. #/usr/bin/perl
  2.  
  3. use strict;
  4. use warnings;
  5. #Use integer. Doesn't accept floats#
  6. use integer;
  7. use POE qw(Component::IRC);
  8. use POE::Component::SSLify qw( Client_SSLify );
  9.  
  10. my $nickname = 'NotMyBot';
  11. my $ircname = 'NotMyBot';
  12.  
  13. my $server = 'storm.psych0tik.net';
  14. my $port = '6697';
  15.  
  16. #my $channel = '#NotMyChannel';
  17. my $channel = '#Psych0Arena';
  18.  
  19. ##############################
  20. ##### #Psych0Stadium      ####
  21. ##### G000000ooooooaaall! ####
  22. ##############################
  23.  
  24. my $nickserv = 'NickServ';
  25. my $nickservPassword = "yhrei_43";
  26.  
  27. # We create a new PoCo-IRC object
  28. my $irc = POE::Component::IRC->spawn(
  29.    nick => $nickname,
  30.    ircname => $ircname,
  31.    server => $server,
  32.    port => $port,
  33.    UseSSL => 1,
  34. ) or die "Oh noooo! $!";
  35.  
  36. POE::Session->create(
  37.     package_states => [
  38.         main => [ qw(_default _start irc_001 irc_public irc_msg) ],
  39.     ],
  40.     heap => { irc => $irc },
  41. );
  42.  
  43. $poe_kernel->run();
  44.  
  45. sub _start {
  46.     my $heap = $_[HEAP];
  47.  
  48.     # retrieve our component's object from the heap where we stashed it
  49.     my $irc = $heap->{irc};
  50.  
  51.     $irc->yield( register => 'all' );
  52.     $irc->yield( connect => { } );
  53.     return;
  54. }
  55.  
  56. sub irc_001 {
  57.     my $sender = $_[SENDER];
  58.  
  59.     # Since this is an irc_* event, we can get the component's object by
  60.     # accessing the heap of the sender. Then we register and connect to the
  61.     # specified server.
  62.     my $irc = $sender->get_heap();
  63.  
  64.     print "Connected to ", $irc->server_name(), "\n";
  65.    
  66.     $irc->yield( privmsg => $nickserv => " IDENTIFY $nickservPassword" );
  67.  
  68.     # we join our channels
  69.     #$irc->yield( join => $channel );
  70.     $irc->yield( join => $channel, "Hesh00tsHescores!!" );
  71.     return;
  72. }
  73.  
  74. sub solve
  75. {
  76.    my $what=shift;
  77.    
  78.    if($what =~ /^SOLVE: ([\d+\-\+\*\/]+)/)
  79.    {
  80.         my $answer=eval $1;
  81.        
  82.         print "<!answer!> $1: $answer\n";
  83.         return $answer;
  84.    }
  85.    
  86. }
  87.  
  88.  
  89. sub irc_public {
  90.     my ($sender, $who, $where, $what) = @_[SENDER, ARG0 .. ARG2];
  91.     my $nick = ( split /!/, $who )[0];
  92.     my $channel = $where->[0];
  93.    
  94.     print "< $nick> $what\n";
  95.     if ( $nick =~ "DickServ" && $what =~ /^SOLVE: / )
  96.     {
  97.         my $answer = "!solve ";
  98.         $answer .= solve($what);
  99.  
  100.         $irc->yield( privmsg => $nick => "$answer"  );
  101.         stats();
  102.     }
  103.  
  104.    return;
  105. }
  106.  
  107.  
  108. sub getStats()
  109. {
  110.    $irc->yield( privmsg => 'DickServ' => '!stats' );
  111.    return;
  112. }
  113.  
  114.  
  115. sub stats
  116. {
  117.    my $what = shift;
  118.    print "#PrivMsg <DickServ> $what\n";
  119.    return;
  120. }
  121.  
  122.  
  123. sub irc_msg
  124. {
  125.    $irc->yield( privmsg => 'DickServ' => "!stats" );
  126.    my ($nick, $where, $what) = @_[ARG0 .. ARG2];
  127.                                                    
  128.    if($nick =~ 'DickServ')
  129.    {
  130.       stats($what);
  131.    }
  132.  
  133.  
  134.    else
  135.    {
  136.       print "-!-#PrivMsg <$nick> $what\n";
  137.    }
  138.    
  139.    return;
  140. }
  141.  
  142. # We registered for all events, this will produce some debug info.
  143. sub _default {
  144.     my ($event, $args) = @_[ARG0 .. $#_];
  145.     my @output = ( "$event: " );
  146.  
  147.     for my $arg (@$args) {
  148.         if ( ref $arg eq 'ARRAY' ) {
  149.             push( @output, '[' . join(', ', @$arg ) . ']' );
  150.         }
  151.         else {
  152.             push ( @output, "'$arg'" );
  153.         }
  154.     }
  155.     print join ' ', @output, "\n";
  156.     return 0;
  157. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement