]> git.donarmstrong.com Git - infobot.git/commitdiff
sort
authortimriker <timriker@c11ca15a-4712-0410-83d8-924469b57eb5>
Mon, 25 Nov 2002 19:53:08 +0000 (19:53 +0000)
committertimriker <timriker@c11ca15a-4712-0410-83d8-924469b57eb5>
Mon, 25 Nov 2002 19:53:08 +0000 (19:53 +0000)
git-svn-id: https://svn.code.sf.net/p/infobot/code/trunk/blootbot@713 c11ca15a-4712-0410-83d8-924469b57eb5

src/Modules/BZFlag.pl

index b17e45df4e4684a0aaaa1a1b43308d9d321e586d..980f760b2560899b33de9428dc4a427667f91d27 100755 (executable)
@@ -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;
 }