diff --git a/scripts/clones.pl b/scripts/clones.pl index a469a575..45fa2033 100644 --- a/scripts/clones.pl +++ b/scripts/clones.pl @@ -1,25 +1,32 @@ -# /CLONES - display real name of nick +# /CLONES - Display clones in the active channel use Irssi; use strict; sub cmd_clones { - my ($data, $server, $channel) = @_; - my (%hostnames, $host, @nicks, $nick); + my ($data, $server, $channel) = @_; - @nicks = $channel->nicks(); + if (!$channel || $channel->{type} ne "CHANNEL") { + Irssi::print("No active channel in window"); + return; + } - foreach $nick (@nicks) { - $hostnames{$nick->{host}}++; - } + my %hostnames = {}; + foreach my $nick ($channel->nicks()) { + $hostnames{$nick->{host}}++; + } - $channel->print("Clones:"); - foreach $host (keys %hostnames) { - my $clones = $hostnames{$host}; - if ($clones >= 2) { - $channel->print("$host: $clones"); - } - } + my $count = 0; + foreach my $host (keys %hostnames) { + my $clones = $hostnames{$host}; + if ($clones >= 2) { + $channel->print("Clones:") if ($count == 0); + $channel->print("$host: $clones"); + $count++; + } + } + + $channel->print("No clones in channel") if ($count == 0); } Irssi::command_bind('clones', 'cmd_clones');