diff --git a/scripts/clones.pl b/scripts/clones.pl index 45fa2033..59c22c3f 100644 --- a/scripts/clones.pl +++ b/scripts/clones.pl @@ -1,10 +1,11 @@ # /CLONES - Display clones in the active channel +# Modified by Roi Dayan. dejavo@punkass.com -use Irssi; use strict; sub cmd_clones { my ($data, $server, $channel) = @_; + my $min_show_count = ($data =~ /^[0-9]+$/) ? $data : 2; if (!$channel || $channel->{type} ne "CHANNEL") { Irssi::print("No active channel in window"); @@ -12,16 +13,26 @@ sub cmd_clones { } my %hostnames = {}; + my %hostnicks = {}; + my @hosttmp = {}; foreach my $nick ($channel->nicks()) { - $hostnames{$nick->{host}}++; + my @hosttmp = split(/\@/,$nick->{host}); + $hostnames{$hosttmp[1]}++; + $hostnicks{$hosttmp[1]} = $hostnicks{$hosttmp[1]}.$hostnames{$hosttmp[1]}.". ".$nick->{nick}."!".$nick->{host}."\n"; + $hostnicks{$hosttmp[1]} =~ s/^,//; +# $hostnicks{$hosttmp[1]} =~ s/\n$//; + } + + foreach my $nick (keys %hostnicks) { + $hostnicks{$nick} =~ s/\n$//; } my $count = 0; foreach my $host (keys %hostnames) { my $clones = $hostnames{$host}; - if ($clones >= 2) { + if ($clones >= $min_show_count) { $channel->print("Clones:") if ($count == 0); - $channel->print("$host: $clones"); + $channel->print("$host: $clones $hostnicks{$host}"); $count++; } }