X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=src%2FUserExtra.pl;h=9a5fa42eb67e1daf36fcc2165f849e73b3954ec2;hb=a8c0307437c9c3e2121c7b6f1b9ea9a89902b193;hp=87a87c11eed9c1164c02d5e1888095628420508f;hpb=a83d558bb88af54b1c4d989bb202c356072df389;p=infobot.git diff --git a/src/UserExtra.pl b/src/UserExtra.pl index 87a87c1..9a5fa42 100644 --- a/src/UserExtra.pl +++ b/src/UserExtra.pl @@ -44,9 +44,10 @@ sub chaninfo { my $mode; if ($chan eq "") { # all channels. - my $count = 0; my $i = keys %channels; my $reply = "i am on \002$i\002 ".&fixPlural("channel",$i); + my $tucount = 0; # total user count. + my $uucount = 0; # unique user count. my @array; ### line 1. @@ -60,19 +61,27 @@ sub chaninfo { } &pSReply($reply.": ".join(' ', @array)); - ### line 2. + ### total user count. foreach $chan (keys %channels) { - # crappy debugging... - # TODO: use $mask{chan} instead? - if ($chan =~ / /) { - &ERROR("bad channel: chan => '$chan'."); + $tucount += scalar(keys %{$channels{$chan}{''}}); + } + + ### unique user count. + my @nicks; + foreach $chan (keys %channels) { + foreach (keys %{ $channels{$chan}{''} }) { + next if (grep /^\Q$_\E$/, @nicks); + $uucount++; + push(@nicks, $_); } - $count += scalar(keys %{$channels{$chan}{''}}); } + + my $chans = scalar(keys %channels); &pSReply( - "i've cached \002$count\002 ".&fixPlural("user",$count). - " distributed over \002".scalar(keys %channels)."\002 ". - &fixPlural("channel",scalar(keys %channels))."." + "i've cached \002$tucount\002 ". &fixPlural("user",$tucount). + ", \002$uucount\002 unique ". &fixPlural("user",$uucount). + ", distributed over \002$chans\002 ". + &fixPlural("channel", $chans)."." ); return; @@ -650,11 +659,16 @@ sub userCommands { &msg($who, "I hope you're right. I'll try anyway."); } - my $str = "attempting to change nick to $param{'ircNick'}"; - &status($str); - &msg($who, $str); + if (! &IsNickInAnyChan( $param{ircNick} ) ) { + my $str = "attempting to change nick to $param{'ircNick'}"; + &status($str); + &msg($who, $str); + &nick($param{'ircNick'}); + } else { + &msg($who, "hrm... can't do it"); + &DEBUG("wN: nick is somewhere... should try later."); + } - &nick($param{'ircNick'}); return; }