Blame
Date:
Tue Dec 21 08:11:28 2021 UTC
Message:
Added README to install dependencies
01
2021-12-17
jrmu
#!/usr/bin/perl
02
2021-12-17
jrmu
use strict;
03
2021-12-17
jrmu
use warnings;
04
2021-12-17
jrmu
05
2021-12-17
jrmu
package GreetBot;
06
2021-12-17
jrmu
use base qw(Bot::BasicBot);
07
2021-12-17
jrmu
08
2021-12-17
jrmu
sub chanjoin {
09
2021-12-17
jrmu
my $self = shift;
10
2021-12-17
jrmu
my $arguments = shift;
11
2021-12-17
jrmu
my $nick = $arguments->{who};
12
2021-12-17
jrmu
if ($nick eq $self->pocoirc->nick_name()) {
13
2021-12-17
jrmu
return;
14
2021-12-17
jrmu
}
15
2021-12-17
jrmu
$self->say(
16
2021-12-17
jrmu
channel => $arguments->{channel},
17
2021-12-17
jrmu
body => "Welcome, $nick!",
18
2021-12-17
jrmu
);
19
2021-12-17
jrmu
}
20
2021-12-17
jrmu
21
2021-12-17
jrmu
sub chanpart {
22
2021-12-17
jrmu
my $self = shift;
23
2021-12-17
jrmu
my $arguments = shift;
24
2021-12-17
jrmu
$self->say(
25
2021-12-17
jrmu
channel => $arguments->{channel},
26
2021-12-17
jrmu
body => "I'm sad to see $arguments->{who} go.",
27
2021-12-17
jrmu
);
28
2021-12-17
jrmu
}
29
2021-12-17
jrmu
30
2021-12-17
jrmu
sub emoted {
31
2021-12-17
jrmu
my $self = shift;
32
2021-12-17
jrmu
my $arguments = shift;
33
2021-12-17
jrmu
34
2021-12-17
jrmu
$self->emote(
35
2021-12-17
jrmu
channel => $arguments->{channel},
36
2021-12-17
jrmu
body => "$arguments->{body} too",
37
2021-12-17
jrmu
);
38
2021-12-17
jrmu
}
39
2021-12-17
jrmu
40
2021-12-17
jrmu
sub noticed {
41
2021-12-17
jrmu
my $self = shift;
42
2021-12-17
jrmu
my $arguments = shift;
43
2021-12-17
jrmu
44
2021-12-17
jrmu
my $nick = $arguments->{who};
45
2021-12-17
jrmu
46
2021-12-17
jrmu
my @notices = (
47
2021-12-17
jrmu
"$nick, please resend this in a normal message",
48
2021-12-17
jrmu
"I'm having a hard time reading your notice.",
49
2021-12-17
jrmu
"Good point, $nick.",
50
2021-12-17
jrmu
"Can you message on the public channel instead?",
51
2021-12-17
jrmu
);
52
2021-12-17
jrmu
53
2021-12-17
jrmu
$self->notice(
54
2021-12-17
jrmu
who => $nick,
55
2021-12-17
jrmu
channel => $arguments->{channel},
56
2021-12-17
jrmu
body => $notices[int(rand(4))],
57
2021-12-17
jrmu
);
58
2021-12-17
jrmu
}
59
2021-12-17
jrmu
60
2021-12-17
jrmu
sub topic {
61
2021-12-17
jrmu
my $self = shift;
62
2021-12-17
jrmu
my $arguments = shift;
63
2021-12-17
jrmu
64
2021-12-17
jrmu
if ($arguments->{who} eq $self->pocoirc->nick_name()) {
65
2021-12-17
jrmu
return;
66
2021-12-17
jrmu
}
67
2021-12-17
jrmu
$self->pocoirc->yield('topic' => $arguments->{channel} => "$arguments->{topic} || Don't change the topic!");
68
2021-12-17
jrmu
}
69
2021-12-17
jrmu
70
2021-12-17
jrmu
sub nick_change {
71
2021-12-17
jrmu
my $self = shift;
72
2021-12-17
jrmu
my $oldnick = shift;
73
2021-12-17
jrmu
my $newnick = shift;
74
2021-12-17
jrmu
75
2021-12-17
jrmu
if ($newnick eq $self->pocoirc->nick_name()) {
76
2021-12-17
jrmu
return;
77
2021-12-17
jrmu
}
78
2021-12-17
jrmu
79
2021-12-17
jrmu
$self->pocoirc->yield('nick' => "$oldnick");
80
2021-12-17
jrmu
$self->say(
81
2021-12-17
jrmu
who => "$newnick",
82
2021-12-17
jrmu
body => "If you don't mind, I'd like to use your old nick.",
83
2021-12-17
jrmu
);
84
2021-12-17
jrmu
}
85
2021-12-17
jrmu
86
2021-12-17
jrmu
package main;
87
2021-12-17
jrmu
88
2021-12-17
jrmu
my $bot = GreetBot->new(
89
2021-12-17
jrmu
server => 'irc.example.com',
90
2021-12-17
jrmu
port => '6667',
91
2021-12-17
jrmu
channels => ['#perl102'],
92
2021-12-17
jrmu
nick => 'nickname',
93
2021-12-17
jrmu
name => 'username',
94
2021-12-17
jrmu
);
95
2021-12-17
jrmu
$bot->run();
IRCNow