From 341cad090ef362bd63486238ca944bacfe52bf37 Mon Sep 17 00:00:00 2001 From: Pragmatic Software Date: Tue, 17 Feb 2015 01:47:28 -0800 Subject: [PATCH] Take tied ranking positions into account when determining offset --- modules/cjeopardy/cjeopardy_scores.pl | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/modules/cjeopardy/cjeopardy_scores.pl b/modules/cjeopardy/cjeopardy_scores.pl index d84d1ab7..483298c1 100755 --- a/modules/cjeopardy/cjeopardy_scores.pl +++ b/modules/cjeopardy/cjeopardy_scores.pl @@ -219,19 +219,23 @@ if (lc $command eq 'rank') { @$players = sort $sort_method @$players; my @ranking; - my $i = 0; - $offset--; + my $rank = 0; + my $last_value = -1; foreach my $player (@$players) { next if $player->{nick} eq 'keep2play'; - next if $i++ < $offset; my $entry = $ranks{$opt}->{print}->($player); - push @ranking, "#$i $entry" if defined $entry; - last if scalar @ranking >= 15; + if (defined $entry) { + my ($value) = $entry =~ /[^:]+:\s+(.*)/; + $rank++ if $value ne $last_value; + $last_value = $value; + next if $rank < $offset; + push @ranking, "#$rank $entry" if defined $entry; + last if scalar @ranking >= 15; + } } if (not scalar @ranking) { if ($offset) { - $offset++; print "No rankings available for $channel at offset #$offset.\n"; } else { print "No rankings available for $channel yet.\n";