## $Id$
## Copyright (C) 2004 NABEYA Kenichi (aka nanami@2ch)
-## Copyright (C) 2007-2008 Daigo Moriwaki (daigo at debian dot org)
+## Copyright (C) 2007-2012 Daigo Moriwaki (daigo at debian dot org)
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
end
cmd.time = time
+ player.last_command_at = time
return cmd
end
end
def call
- if (! Login::good_game_name?(@game_name))
+ if (!ShogiServer::available?)
+ @player.write_safe("##[ERROR] As the service is going to shutdown shortly, starting new games is not allowed now.\n")
+ return :continue
+ elsif (! Login::good_game_name?(@game_name))
@player.write_safe(sprintf("##[ERROR] bad game name: %s.\n", @game_name))
- if (/^(.+)-\d+-\d+$/ =~ @game_name)
+ if (/^(.+)-\d+-\d+F?$/ =~ @game_name)
if Login::good_identifier?($1)
# do nothing
else
board = Board.new
begin
board.set_from_moves(moves_array)
- rescue => err
+ rescue
# it will never happen since moves have already been checked
log_error "Failed to set up a buoy game: #{moves}"
return :continue
# found two players: p1 and p2
log_info("Starting a buoy game: %s with %s and %s" % [@game_name, p1.name, p2.name])
buoy.decrement_count(buoy_game)
- game = Game::new(@game_name, p1, p2, board)
+ Game::new(@game_name, p1, p2, board)
return :continue
rescue WrongMoves => e
@player.write_safe("##[GETBUOYCOUNT] %s\n" % [buoy_game.count])
end
@player.write_safe("##[GETBUOYCOUNT] +OK\n")
+ return :continue
end
end
byo_time = nil
if @source_game.split("+").size >= 2 &&
- /^([^-]+)-(\d+)-(\d+)/ =~ @source_game.split("+")[1]
+ /^([^-]+)-(\d+)-(\d+F?)/ =~ @source_game.split("+")[1]
name = $1
total_time = $2
byo_time = $3