diff options
Diffstat (limited to 'modules/event.pl')
| -rw-r--r-- | modules/event.pl | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/modules/event.pl b/modules/event.pl index bd76fb1..b74c4d0 100644 --- a/modules/event.pl +++ b/modules/event.pl @@ -596,9 +596,19 @@ sub on_mode $::log->sqlIncident( $chan, $idx ) if $idx; } } + if ($ex[1] =~ /^\*\!\*\@(.*)$/) { + my $ip = ASM::Util->getHostIP($1); + $::sc{$chan}{ipbans}{$ip} = { bannedBy => $event->{from}, bannedOn => time } if defined($ip); + } + } + } + elsif ( $ex[0] eq '-b' ) { + delete $::sc{$chan}{bans}{$ex[1]}; + if ($ex[1] =~ /^\*\!\*\@(.*)$/) { + my $ip = ASM::Util->getHostIP($1); + delete $::sc{$chan}{ipbans}{$ip} if defined($ip); } } - elsif ( $ex[0] eq '-b' ) { delete $::sc{$chan}{bans}{$ex[1]}; } elsif ( $ex[0] eq '+q' ) { $::sc{$chan}{quiets}{$ex[1]} = { bannedBy => $event->{from}, bannedOn => time }; @@ -610,9 +620,19 @@ sub on_mode $::log->sqlIncident( $chan, $idx ) if $idx; } } + if ($ex[1] =~ /^\*\!\*\@(.*)$/) { + my $ip = ASM::Util->getHostIP($1); + $::sc{$chan}{ipquiets}{$ip} = { bannedBy => $event->{from}, bannedOn => time } if defined($ip); + } + } + } + elsif ( $ex[0] eq '-q' ) { + delete $::sc{$chan}{quiets}{$ex[1]}; + if ($ex[1] =~ /^\*\!\*\@(.*)$/) { + my $ip = ASM::Util->getHostIP($1); + delete $::sc{$chan}{ipquiets}{$ip} if defined($ip); } } - elsif ( $ex[0] eq '-q' ) { delete $::sc{$chan}{quiets}{$ex[1]}; } else { my ($what, $mode) = split (//, $ex[0]); @@ -652,6 +672,10 @@ sub on_banlist my ($conn, $event) = @_; my ($me, $chan, $ban, $banner, $bantime) = @{$event->{args}}; $::sc{lc $chan}{bans}{$ban} = { bannedBy => $banner, bannedOn => $bantime }; + if ($ban =~ /^\*\!\*\@(.*)$/) { + my $ip = ASM::Util->getHostIP($1); + $::sc{lc $chan}{ipbans}{$ip} = { bannedBy => $banner, bannedOn => $bantime } if defined($ip); + } } sub on_quietlist @@ -659,6 +683,10 @@ sub on_quietlist my ($conn, $event) = @_; my ($me, $chan, $mode, $ban, $banner, $bantime) = @{$event->{args}}; $::sc{lc $chan}{quiets}{$ban} = { bannedBy => $banner, bannedOn => $bantime }; + if ($ban =~ /^\*\!\*\@(.*)$/) { + my $ip = ASM::Util->getHostIP($1); + $::sc{lc $chan}{ipquiets}{$ip} = { bannedBy => $banner, bannedOn => $bantime } if defined($ip); + } } sub on_channelurlis |
