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
|
package ASM::Actions;
use strict;
use warnings;
sub new
{
my $module = shift;
my $self = {};
my $tbl = {
"ban" => \&ban,
"kban" => \&kban,
"kick" => \&kick,
"none" => \&none,
"quiet" => \&quiet,
};
$self->{ftbl} = $tbl;
bless($self);
return $self;
}
sub do
{
my $self = shift;
my $item = shift;
return $self->{ftbl}->{$item}->(@_);
}
sub ban {
my ($conn, $event, $chan) = @_;
$::oq->o_send( $conn, "mode $chan +b *!*\@$event->{host}" );
return "mode $chan -b *!*\@$event->{host}";
}
sub kban {
my ($conn, $event, $chan) = @_;
$::oq->o_send($conn, "mode $chan +b *!*\@$event->{host}");
$::oq->o_send($conn, "kick $chan $event->{nick} :Spamming");
return "mode $chan -b *!*\@$event->{host}";
}
sub kick {
my ($conn, $event, $chan) = @_;
$::oq->o_send($conn, "kick $chan $event->{nick} :Spamming");
return "";
}
sub none {
return "";
}
sub quiet {
my ($conn, $event, $chan) = @_;
$::oq->o_send( $conn, "mode $chan +b %*!*\@$event->{host}" );
return "mode $chan -b %*!*\@$event->{host}";
}
1;
|