diff -r 8c7da08df048 -r 170afc3ac39f gameServer/Actions.hs
--- a/gameServer/Actions.hs Sun Jan 27 21:46:25 2013 +0400
+++ b/gameServer/Actions.hs Mon Jan 28 00:50:00 2013 +0400
@@ -85,7 +85,7 @@
rnf (AnswerClients chans msg) = chans `deepseq` msg `deepseq` ()
rnf a = a `seq` ()
---instance NFData B.ByteString
+instance NFData B.ByteString
instance NFData (Chan a)
@@ -648,12 +648,19 @@
processAction Stats = do
cls <- allClientsS
- let stats = versions cls
- processAction $ Warning stats
- where
- versions = B.concat . ((:) "
"])
- . concatMap (\(p, n :: Int) -> ["", protoNumber2ver p, " | ", showB n, " |
"])
- . Map.toList . Map.fromListWith (+) . map (\c -> (clientProto c, 1))
+ rms <- allRoomsS
+ let clientsMap = Map.fromListWith (+) . map (\c -> (clientProto c, 1 :: Int)) $ cls
+ let roomsMap = Map.fromListWith (+) . map (\c -> (roomProto c, 1 :: Int)) . filter ((/=) 0 . roomProto) $ rms
+ let keys = Map.keysSet clientsMap `Set.union` Map.keysSet roomsMap
+ let versionsStats = B.concat . ((:) ""])
+ . concatMap (\p -> [
+ "", protoNumber2ver p
+ , " | ", showB $ Map.findWithDefault 0 p clientsMap
+ , " | ", showB $ Map.findWithDefault 0 p roomsMap
+ , " |
"])
+ . Set.toList $ keys
+ processAction $ Warning versionsStats
+
#if defined(OFFICIAL_SERVER)
processAction SaveReplay = do