]> git.donarmstrong.com Git - infobot.git/blobdiff - blootbot/src/Modules/BZFlag.pl
backlog is a param
[infobot.git] / blootbot / src / Modules / BZFlag.pl
index 690e7b58bc81caf9c95f0532a1ef8c4eaa1516be..33538af2434f5fd3a56fd3c59c85836133c364de 100755 (executable)
@@ -28,7 +28,7 @@ sub BZFlag {
        my ($message) = @_;
        my ($retval);
        if ($no_BZFlag) {
-               &main::status("BZFlag module requires Socket.");
+               &::status("BZFlag module requires Socket.");
                return 'BZFlag module not active';
        }
        if ($message =~ /^bzfquery\s+([^:]*)(?::([0-9]*))?$/xi) {
@@ -52,7 +52,6 @@ sub list {
        my $res = $ua->request($req);
        my %servers;
        my $totalServers = 0;
-       my $totalPlayers = 0;
        for my $line (split("\n",$res->content)) {
                my ($serverport, $version, $flags, $ip, $comments) = split(" ",$line,5);
                # not "(A4)18" to handle old dumb perl
@@ -63,10 +62,11 @@ sub list {
                my $playerSize = hex($rogueSize) + hex($redSize) + hex($greenSize)
                                + hex($blueSize) + hex($purpleSize) + hex($observerSize);
                $servers{$serverport} = $playerSize;
+         $servers{$version} += $playerSize;
+               $servers{'PLAYERS'} += $playerSize;
                $totalServers += 1;
-               $totalPlayers += $playerSize;
        }
-       $response .= "s=$totalServers p=$totalPlayers";
+       $response .= "s=$totalServers";
        foreach my $key (sort {$servers{$b} <=> $servers{$a}} (keys(%servers))) {
                if ($servers{$key} > 0) {
                        $response .= " $key($servers{$key})";
@@ -117,7 +117,7 @@ sub querytext {
        my ($servernameport) = @_;
        my ($servername,$port) = split(":",$servernameport);
        if ($no_BZFlag) {
-               &main::status("BZFlag module requires Socket.");
+               &::status("BZFlag module requires Socket.");
                return 'BZFlag module not active';
        }
        #my @teamName = ("Rogue", "Red", "Green", "Blue", "Purple", "Observer", "Rabbit");
@@ -155,6 +155,7 @@ sub querytext {
 
        # quit if version isn't valid
        return 'not a bzflag server' if ($magic ne "BZFS");
+       $response .= "$major$minor$something$revision ";
        # check version
        if ($version eq "BZFS0026") {
                # 1.11.x handled here
@@ -165,7 +166,6 @@ sub querytext {
                # send game request
                print S1 pack("n2", 0, 0x7167);
 
-               # FIXME the packets are wrong from here down
                # get reply
                return 'server read error' unless read(S1, $buffer, 46) == 46;
     my ($infolen,$infocode,$style,$maxPlayers,$maxShots,