OSDN Git Service

Fix #36822: Build a Docker image for Shogi-server
[shogi-server/shogi-server.git] / shogi-server
index 8073889..530dbb1 100755 (executable)
@@ -82,6 +82,8 @@ OPTIONS
                 Least time in second per move: 0, 1 (default 1).
                   - 0: The new rule that CSA introduced in November 2014.
                   - 1: The old rule before it.
+        --max-identifier n
+               maximum length of an identifier
         --max-moves n
                 when a game with the n-th move played does not end, make the game a draw.
                 Default 256. 0 disables this feature.
@@ -206,6 +208,7 @@ def parse_command_line
     ["--daemon",              GetoptLong::REQUIRED_ARGUMENT],
     ["--floodgate-games",     GetoptLong::REQUIRED_ARGUMENT],
     ["--least-time-per-move", GetoptLong::REQUIRED_ARGUMENT],
+    ["--max-identifier",      GetoptLong::REQUIRED_ARGUMENT],
     ["--max-moves",           GetoptLong::REQUIRED_ARGUMENT],
     ["--pid-file",            GetoptLong::REQUIRED_ARGUMENT],
     ["--player-log-dir",      GetoptLong::REQUIRED_ARGUMENT])
@@ -278,10 +281,13 @@ def check_command_line
     $options["floodgate-history"] = nil
   end
 
-  $options["max-moves"] ||= 256
+  $options["max-moves"] ||= ShogiServer::Default_Max_Moves
   $options["max-moves"] = $options["max-moves"].to_i
 
-  $options["least-time-per-move"] ||= 0
+  $options["max-identifier"] ||= ShogiServer::Default_Max_Identifier_Length
+  $options["max-identifier"] = $options["max-identifier"].to_i
+
+  $options["least-time-per-move"] ||= ShogiServer::Default_Least_Time_Per_Move
   $options["least-time-per-move"] = $options["least-time-per-move"].to_i
 end
 
@@ -356,8 +362,9 @@ def login_loop(client)
           # can override the current player.
           if (current_player.password == player.password &&
               (current_player.status != "game" ||
-               Time.now - current_player.modifiled_at > ONE_DAY))
-            log_message("user %s login forcely (previously modified at %s)" % [player.name, player.modified_at])
+               Time.now - current_player.last_command_at > ONE_DAY))
+            log_message("player %s login forcibly, nudging the former player" % [player.name])
+            log_message("  the former player was in %s and received the last command at %s" % [current_player.status, current_player.last_command_at])
             current_player.kill
           else
             login.incorrect_duplicated_player(str)