X-Git-Url: http://git.vpit.fr/?p=perl%2Fscripts%2Fxchat.git;a=blobdiff_plain;f=opers.pl;fp=opers.pl;h=218b2d2dc8d8c34d85eb7bb3de68729b471179ce;hp=66c9c0b17974b39253a3c03c8b2e7c0e93eb39b5;hb=0a342794e65a5975f4574d143a600cad8eaa9c7d;hpb=edef44980a97323b66add1052bc737fe1e11975f diff --git a/opers.pl b/opers.pl index 66c9c0b..218b2d2 100755 --- a/opers.pl +++ b/opers.pl @@ -7,7 +7,7 @@ use Xchat qw<:all>; use lib get_info 'xchatdir'; use Xchat::XPI; -use Xchat::XPI::Utils qw; +use Xchat::XPI::Utils qw; our $VERSION = '0.03'; @@ -20,8 +20,8 @@ hook_server '352', sub { 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; @@ -63,7 +63,7 @@ hook_server 'QUIT', sub { my ($nick) = $_[0][0] =~ /^:([^!]+)!/; my $serv = get_info 'server'; - delete $opers{$serv}{$nick}; + delete $opers{$serv}{irc_lc($nick)}; return EAT_NONE; }; @@ -71,9 +71,11 @@ hook_server 'QUIT', sub { 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}; } @@ -101,11 +103,11 @@ hook_command 'OPSCAN', sub { 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'; }