From: timriker Date: Mon, 25 Nov 2002 19:53:08 +0000 (+0000) Subject: sort X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=38b639634eda99c4c63563146ccf0c87805189b0;p=infobot.git sort git-svn-id: https://svn.code.sf.net/p/infobot/code/trunk/blootbot@713 c11ca15a-4712-0410-83d8-924469b57eb5 --- diff --git a/src/Modules/BZFlag.pl b/src/Modules/BZFlag.pl index b17e45d..980f760 100755 --- a/src/Modules/BZFlag.pl +++ b/src/Modules/BZFlag.pl @@ -48,6 +48,7 @@ sub BZFlag::list { my $req = HTTP::Request->new('GET', 'http://list.bzflag.org:5156/'); my $res = $ua->request($req); + my %servers; for my $line (split("\n",$res->content)) { my ($serverport, $version, $flags, $ip, $comments) = split(" ",$line,5); # not "(A4)18" to handle old dumb perl @@ -59,10 +60,13 @@ sub BZFlag::list { unpack("A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4", $flags); my $playerSize = hex($rogueSize) + hex($redSize) + hex($greenSize) + hex($blueSize) + hex($purpleSize); - if ($playerSize > 0) { - $response .= "$serverport($playerSize) "; - } + $servers{$serverport} = $playerSize; } + foreach my $key (sort {$servers{$b} <=> $servers{$a}} (keys(%servers))) { + if ($servers{$key} > 0) { + $response .= "$key($servers{$key}) "; + } + } &::performStrictReply($response); return; }