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
|
# madoka 4.2 flood
#
# flood.mpi
# Copyright(c)1998- cookie / The madoka project
#
&list_add($plugin_list, 'flood');
&list_add($per_sec, 'flood');
$t_count = 0;
1;
sub flood {
$cl_fld = ($cl_fld < 100) ? 0 : $cl_fld - 100 if $fld == $fld_tm;
$fld -- if $fld > $fld_tm;
&mes("[flood] $fld / $fld_tm / $cl_fld\n", 'D')
if $fld > $fld_tm || $cl_fld > 0;
&send('sv', ' ') if $#mes_buf >= 0;
&ctcp() if $t_count == 0;
}
sub flood_send {
my $mes = $_[0];
$mes =~ s/\r*\n$//;
if ($mes && $mes ne ' ') {
$fld_tm = time;
$fld = $fld_tm if $fld < $fld_tm;
if (($fld <= $fld_tm + 8 && $cl_fld + length($mes) < 500) ||
$mes =~ /\001DCC /) {
print SERVER "$mes\r\n";
$fld += 2;
$cl_fld += length($mes);
my($chan, $pr) = ($mes =~ /^PRIVMSG ([^ ]+) :(.*)/);
my($chanr, $chanv) = &alias_chan($chan);
&mes(">$chanv:$us_nick< $pr\n", $chanr) if $pr;
} else {
unshift(@mes_buf, $mes);
}
}
}
|