From 23abe86f946486f5aaa6035da6fc244d61135c97 Mon Sep 17 00:00:00 2001
From: timriker <timriker@c11ca15a-4712-0410-83d8-924469b57eb5>
Date: Thu, 8 Dec 2016 05:57:56 +0000
Subject: [PATCH] dunno

git-svn-id: https://svn.code.sf.net/p/infobot/code/trunk@1945 c11ca15a-4712-0410-83d8-924469b57eb5
---
 src/CommandStubs.pl     |  4 ++--
 src/Modules/BZFlag.pl   | 25 +++++++++++++++++--------
 src/Modules/DumpVars.pl |  8 ++++----
 3 files changed, 23 insertions(+), 14 deletions(-)

diff --git a/src/CommandStubs.pl b/src/CommandStubs.pl
index d2d3ecf..65dc132 100644
--- a/src/CommandStubs.pl
+++ b/src/CommandStubs.pl
@@ -49,7 +49,7 @@ sub parseCmdHook {
 
     &shmFlush();
 
-    if ( !defined %cmdhooks ) {
+    if ( !%cmdhooks ) {
         &WARN('%cmdhooks does not exist.');
         return 0;
     }
@@ -679,7 +679,7 @@ sub verstats_flush {
 
     return unless ( scalar @vernicktodo );
 
-    $conn->schedule( 3, \&verstats_flush() );
+    $conn->schedule( 3, \&verstats_flush );
 }
 
 sub do_text_counters {
diff --git a/src/Modules/BZFlag.pl b/src/Modules/BZFlag.pl
index 73b156c..083173f 100644
--- a/src/Modules/BZFlag.pl
+++ b/src/Modules/BZFlag.pl
@@ -51,7 +51,7 @@ sub list {
     $ua->timeout(5);
 
     my $req =
-      HTTP::Request->new( 'GET', 'http://db.bzflag.org/db/?action=LIST' );
+      HTTP::Request->new( 'GET', 'http://my.bzflag.org/db/?action=LIST' );
     my $res = $ua->request($req);
     my %servers;
     my $totalServers = 0;
@@ -60,13 +60,22 @@ sub list {
           split( " ", $line, 5 );
 
         # not "(A4)18" to handle old dumb perl
-        my (
-            $style,          $maxShots,     $shakeWins,    $shakeTimeout,
-            $maxPlayerScore, $maxTeamScore, $maxTime,      $maxPlayers,
-            $rogueSize,      $rogueMax,     $redSize,      $redMax,
-            $greenSize,      $greenMax,     $blueSize,     $blueMax,
-            $purpleSize,     $purpleMax,    $observerSize, $observerMax
-        ) = unpack( 'A4A4A4A4A4A4A4A2A2A2A2A2A2A2A2A2A2A2A2A2', $flags );
+	my ($style, $type, $maxShots, $shakeWins, $shakeTimeout, $maxPlayerScore, $maxTeamScore, $maxTime,
+	    $maxPlayers, $rogueSize, $rogueMax, $redSize, $redMax, $greenSize, $greenMax,
+	    $blueSize, $blueMax, $purpleSize, $purpleMax, $observerSize, $observerMax);
+	if (length($flags) == 54) {
+	  ($style, $maxShots, $shakeWins, $shakeTimeout, $maxPlayerScore, $maxTeamScore, $maxTime,
+	      $maxPlayers, $rogueSize, $rogueMax, $redSize, $redMax, $greenSize, $greenMax,
+	      $blueSize, $blueMax, $purpleSize, $purpleMax, $observerSize, $observerMax) =
+	      unpack("A4A4A4A4A4A4A4A2A2A2A2A2A2A2A2A2A2A2A2A2", $flags);
+	} elsif (length($flags) == 58) {
+	  ($style, $type, $maxShots, $shakeWins, $shakeTimeout, $maxPlayerScore, $maxTeamScore, $maxTime,
+	      $maxPlayers, $rogueSize, $rogueMax, $redSize, $redMax, $greenSize, $greenMax,
+	      $blueSize, $blueMax, $purpleSize, $purpleMax, $observerSize, $observerMax) =
+	      unpack("A4A4A4A4A4A4A4A4A2A2A2A2A2A2A2A2A2A2A2A2A2", $flags);
+	} else {
+	  next;
+	}
         my $playerSize =
           hex($rogueSize) + hex($redSize) + hex($greenSize) + hex($blueSize) +
           hex($purpleSize) + hex($observerSize);
diff --git a/src/Modules/DumpVars.pl b/src/Modules/DumpVars.pl
index 3ca982d..9b4ac4f 100644
--- a/src/Modules/DumpVars.pl
+++ b/src/Modules/DumpVars.pl
@@ -33,7 +33,7 @@ sub DumpNames(\%$) {
 
         foreach $symname ( sort keys %$package ) {
             local *sym = $$package{$symname};
-            next unless ( defined %sym );
+            next unless ( %sym );
             next unless ( $symname =~ /::/ );
             &dumpvarslog("   $symname");
             $countlines++;
@@ -67,7 +67,7 @@ sub DumpNames(\%$) {
     # Lists.
     foreach $symname ( sort keys %$package ) {
         local *sym = $$package{$symname};
-        next unless ( defined @sym );
+        next unless ( @sym );
 
         &dumpvarslog(
             "List '$packname' \@$symname (" . scalar( @{$symname} ) . ")" );
@@ -87,7 +87,7 @@ sub DumpNames(\%$) {
     # Hashes.
     foreach $symname ( sort keys %$package ) {
         local *sym = $$package{$symname};
-        next unless ( defined %sym );
+        next unless ( %sym );
         next if ( $symname =~ /::/ );
 
         &dumpvarslog("Hash '$packname' \%$symname");
@@ -109,7 +109,7 @@ sub DumpNames(\%$) {
 
     foreach $symname ( sort keys %$package ) {
         local *sym = $$package{$symname};
-        next unless ( defined %sym );
+        next unless ( %sym );
         next unless ( $symname =~ /::/ );
         next if ( $symname eq 'main::' );
 
-- 
2.39.5