Report abuse

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#!/usr/bin/perl -w
use strict;
use warnings;
use diagnostics;
use IO::Socket;
use IO::Socket::INET;

    my $server = shift || 'irc.rizon.net';
    my $port   = shift || 6667;
    my $user   = 'I r teh NeenBot';
    my $nick   = shift || 'NeenBot';
    my $chan   = shift || '#blobot';
    my $upass  = 'rea34floz';
    our $crlf = "\015\012";
    our $nickname;
    our $text;
    our $conn = IO::Socket::INET->new(
        PeerAddr => $server,
        PeerPort => $port,
        Proto    => 'tcp',
        Timeout  => '30'
    ) || die "$_";

    sendcmd("USER $user $user $user $user");
    sendcmd("NICK $nick");
    sendcmd("PRIVMSG NickServ :IDENTIFY rea34floz");
    $b = 0;
    while (<$conn>) {
    # this is 
    my ($nick, $chan, $text);
        sendcmd("PONG $1") if /^PING (.*)$/;
        if ($b == 0 && /376/) {
            sendcmd("JOIN $chan");
            $b = 1;
        }

        to_shell($nick, $chan, $text) if ($nick, $chan, $text) = (/^:(.*?)\!.*?@.*? PRIVMSG (.*) :(.*)/);
                
        join_chan($2, $1) if /^:(.*?)\!.*?@.*? PRIVMSG $chan :!join (.*)/;
        
        say($3, $4) if /^:(.*?)\!.*?@.*? PRIVMSG $chan :!say (.*) #(.*)/;
        
        act($3, $4) if /^:(.*?)\!.*?@.*? PRIVMSG $chan :!act (.*) #(.*)/;
        
        killbot("Domon") if /^:Domon\!.*?@.*? PRIVMSG $chan :\@die/;
        killbot("neen") if /^:neen\!.*?@.*? PRIVMSG $chan :\@die/;
        raw($3, $4) if /^:(.*?)\!.*?@.*? PRIVMSG $chan :!raw (.*)/;
        print "$_" unless /^:(.*?)\!.*?@.*? PRIVMSG $chan :!act (.*) #(.*)/;
    }

sub to_shell {
    
    my ($nick, $text) = @_;
    print "$chan; $nick said: $text\n"; 
}

sub join_chan {
    
    my ($channel,$nick) = @_;
    sendcmd("PRIVMSG $chan Joining $channel, $nick!");
    sendcmd("JOIN $channel");
    print "Joining $channel\n";
}

sub say {
    
    my ($msg, $channel) = @_;
    sendcmd("PRIVMSG $channel $msg");   
}

sub killbot {
    
    my ($nick) = @_;
    sendcmd("PRIVMSG $chan Goodbye");
    print "Die command received from $nick. Goodbye.\n";
    sendcmd("QUIT");
}

sub sendcmd {
    
    my ($cmd) = @_;
    print $conn "$cmd$crlf" 
}