From e061a2ca8cea741b79c547558782c5f859b7fa9b Mon Sep 17 00:00:00 2001 From: Elijah Perrault Date: Thu, 3 Feb 2011 20:27:49 -0700 Subject: [PATCH] Properly parse NICK and update chanusers. --- doc/CHANGELOG | 1 + src/Parser/IRC.pm | 13 +++++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/doc/CHANGELOG b/doc/CHANGELOG index 19f04b1..442713d 100644 --- a/doc/CHANGELOG +++ b/doc/CHANGELOG @@ -3,6 +3,7 @@ Auto IRC Bot 3.0: Change Log 3.0 Indev ================================================================== + * Properly parse NICK and update chanusers. * Added --enable-ssl to ./install for the future SSL support. * Added chanstatus-based permissions. This works via user:chanstatus. diff --git a/src/Parser/IRC.pm b/src/Parser/IRC.pm index f3390ab..9a685a4 100644 --- a/src/Parser/IRC.pm +++ b/src/Parser/IRC.pm @@ -329,7 +329,8 @@ sub cjoin sub nick { my ($svr, ($uex, undef, $nex)) = @_; - + $nex = substr($nex, 1); + my %src = API::IRC::usrc(substr($uex, 1)); # Check if this is coming from ourselves. @@ -339,7 +340,15 @@ sub nick delete $botnick{$svr}{newnick} if (defined $botnick{$svr}{newnick}); } else { - # It isn't. Trigger on_nick. + # It isn't. Update chanusers and trigger on_nick. + foreach my $chk (keys %{ $chanusers{$svr} }) { + if (defined $chanusers{$svr}{$chk}{$src{nick}}) { + print "1\n"; + $chanusers{$svr}{$chk}{$nex} = $chanusers{$svr}{$chk}{$src{nick}}; + print "$nex set to $chanusers{$svr}{$chk}{$nex}\n"; + delete $chanusers{$svr}{$chk}{$src{nick}}; + } + } API::Std::event_run("on_nick", ($svr, %src, $nex)); }