sub print_op { print $ph "\002$_[0]\002 ($_[1]) \002is an IRC operator\n"; 1 }
hook_server '352', sub {
- return EAT_NONE unless (rindex $_[0][8], '*') >= 0;
+ return EAT_NONE unless 0 <= rindex $_[0][8], '*';
my $serv = get_info 'server';
my $nick = $_[0][7];
if (!$opers{$serv}{$nick}) {
$opers{$serv}{$nick} = 1;
my $host = $_[0][4].'@'.$_[0][5];
my %chans;
- push @{$chans{$_->{type}}}, $_ for grep { $_->{server} eq $serv }
+ push @{$chans{$_->{type}}}, $_ for grep $_->{server} eq $serv,
get_list 'channels';
my $oldctxt = get_context;
- my $onachan = grep { $_ } map {
- set_context($_->{context}) && user_info($nick) && print_op($nick, $host)
+ my $onachan = grep $_, map {
+ set_context $_->{context}
+ and user_info $nick
+ and print_op $nick, $host
} @{$chans{2}};
do {
- set_context($_->{context}) && print_op($nick, $host)
+ set_context $_->{context}
+ and print_op $nick, $host
} for ($onachan ? () : @{$chans{1}}),
- grep { !nickcmp($_->{channel}, $nick) } @{$chans{3}};
+ grep !nickcmp($_->{channel}, $nick), @{$chans{3}};
set_context $oldctxt;
}
return EAT_NONE;
};
hook_server 'QUIT', sub {
- my ($nick) = ($_[0][0] =~ /^:([^!]+)!/);
+ my ($nick) = $_[0][0] =~ /^:([^!]+)!/;
my $serv = get_info 'server';
delete $opers{$serv}{$nick};
return EAT_NONE;
}
my ($chan, $isnet) = (get_info('channel'), 0);
for (get_list 'channels') {
- if ($_->{type} eq 1 && $_->{channel} eq $chan) { $isnet = 1; last; }
+ if ($_->{type} eq 1 && $_->{channel} eq $chan) {
+ $isnet = 1;
+ last;
+ }
}
my ($name, @ops) = ($isnet) ? ('network', keys %{$opers{$serv}})
- : ('channel', map { $_->{nick} }
- grep { $opers{$serv}{$_->{nick}} }
+ : ('channel', map $_->{nick},
+ grep $opers{$serv}{$_->{nick}},
get_list 'users');
if (@ops) {
print $ph 'IRC operators on this '.$name." : \002@ops\n";