01
2021-12-17
jrmu
#!/usr/bin/perl
02
2021-12-17
jrmu
use strict;
03
2021-12-17
jrmu
use warnings;
05
2021-12-17
jrmu
package GreetBot;
06
2021-12-17
jrmu
use base qw(Bot::BasicBot);
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()) {
15
2021-12-17
jrmu
$self->say(
16
2021-12-17
jrmu
channel => $arguments->{channel},
17
2021-12-17
jrmu
body => "Welcome, $nick!",
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.",
30
2021-12-17
jrmu
sub emoted {
31
2021-12-17
jrmu
my $self = shift;
32
2021-12-17
jrmu
my $arguments = shift;
34
2021-12-17
jrmu
$self->emote(
35
2021-12-17
jrmu
channel => $arguments->{channel},
36
2021-12-17
jrmu
body => "$arguments->{body} too",
40
2021-12-17
jrmu
sub noticed {
41
2021-12-17
jrmu
my $self = shift;
42
2021-12-17
jrmu
my $arguments = shift;
44
2021-12-17
jrmu
my $nick = $arguments->{who};
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?",
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))],
60
2021-12-17
jrmu
sub topic {
61
2021-12-17
jrmu
my $self = shift;
62
2021-12-17
jrmu
my $arguments = shift;
64
2021-12-17
jrmu
if ($arguments->{who} eq $self->pocoirc->nick_name()) {
67
2021-12-17
jrmu
$self->pocoirc->yield('topic' => $arguments->{channel} => "$arguments->{topic} || Don't change the topic!");
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;
75
2021-12-17
jrmu
if ($newnick eq $self->pocoirc->nick_name()) {
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.",
86
2021-12-17
jrmu
package main;
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',
95
2021-12-17
jrmu
$bot->run();