diff options
author | notoraptor <stevenbocco@gmail.com> | 2019-07-20 15:35:34 -0400 |
---|---|---|
committer | Philip Paquette <pcpaquette@gmail.com> | 2019-07-21 15:45:33 -0400 |
commit | 8b52f299150f834b676d4dde353e5f12cdbe4012 (patch) | |
tree | 7fe14e3536e384607f87bb6c28ccfe5010f6dc5e /diplomacy/server/request_managers.py | |
parent | 11af6bd80e1bc3f14dd66fc6508a9e7daf063a88 (diff) |
Fixed synchronization issues
- Added __enter__, __exit__, and .current_state() to game object
- set_orders throws an exception is the server phase is not the same as the client phase
- Returning only waiting dummy powers to bot
Diffstat (limited to 'diplomacy/server/request_managers.py')
-rw-r--r-- | diplomacy/server/request_managers.py | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/diplomacy/server/request_managers.py b/diplomacy/server/request_managers.py index 59c0e88..ff93977 100644 --- a/diplomacy/server/request_managers.py +++ b/diplomacy/server/request_managers.py @@ -71,6 +71,9 @@ def on_clear_orders(server, request, connection_handler): """ level = verify_request(server, request, connection_handler, observer_role=False) assert_game_not_finished(level.game) + if not request.phase or request.phase != level.game.current_short_phase: + raise exceptions.ResponseException( + 'Invalid order phase, received %s, server phase is %s' % (request.phase, level.game.current_short_phase)) level.game.clear_orders(level.power_name) Notifier(server, ignore_addresses=[request.address_in_game]).notify_cleared_orders(level.game, level.power_name) @@ -988,6 +991,9 @@ def on_set_orders(server, request, connection_handler): """ level = verify_request(server, request, connection_handler, observer_role=False, require_power=True) assert_game_not_finished(level.game) + if not request.phase or request.phase != level.game.current_short_phase: + raise exceptions.ResponseException( + 'Invalid order phase, received %s, server phase is %s' % (request.phase, level.game.current_short_phase)) power = level.game.get_power(level.power_name) previous_wait = power.wait power.clear_orders() |