use lib get_info 'xchatdir';
use Xchat::XPI;
+use Xchat::XPI::Utils qw<irc_lc save_context>;
our $VERSION = '0.03';
my $serv = get_info 'server';
my $nick = $_[0][7];
- return EAT_NONE if $opers{$serv}{$nick};
- $opers{$serv}{$nick} = 1;
+ return EAT_NONE if $opers{$serv}{irc_lc($nick)};
+ $opers{$serv}{irc_lc($nick)} = $nick;
my $host = $_[0][4] . '@' . $_[0][5];
my %chans;
push @{$chans{$_->{type}}}, $_ for grep $_->{server} eq $serv,
get_list 'channels';
- my $oldctxt = get_context;
+ my $guard = save_context;
my $onachan;
for (@{$chans{2}}) {
print_op $nick, $host;
}
- set_context $oldctxt;
-
return EAT_NONE;
};
my ($nick) = $_[0][0] =~ /^:([^!]+)!/;
my $serv = get_info 'server';
- delete $opers{$serv}{$nick};
+ delete $opers{$serv}{irc_lc($nick)};
return EAT_NONE;
};
sub nick_cb {
my ($old, $new) = @{$_[0]};
+ $old = irc_lc $old;
+
my $ops = $opers{get_info 'server'};
if ($ops and $ops->{$old}) {
- $ops->{$new} = 1;
+ $ops->{irc_lc($new)} = $new;
delete $ops->{$old};
}
my ($name, @ops);
if ($isnet) {
$name = 'network';
- @ops = keys %{$opers{$serv}};
+ @ops = values %{$opers{$serv}};
} else {
$name = 'channel';
@ops = map $_->{nick},
- grep $opers{$serv}{$_->{nick}},
+ grep $opers{$serv}{irc_lc($_->{nick})},
get_list 'users';
}