aboutsummaryrefslogtreecommitdiff
path: root/diplomacy/server/request_managers.py
diff options
context:
space:
mode:
authornotoraptor <notoraptor@users.noreply.github.com>2019-07-18 14:48:29 -0400
committerPhilip Paquette <pcpaquette@gmail.com>2019-07-18 14:48:29 -0400
commit33105a895a0b3c2b266c66058f5a8ec930c88504 (patch)
tree76910adfc65c30e199e48785b5721291339dbd29 /diplomacy/server/request_managers.py
parentf8ee5f84abc5c9d0d56402f2943abad1dc74d3dd (diff)
Reset local orders for a power if we receive a power orders update.
- Does not allow to join a power which is eliminated. - When clicking on "reset", reset local orders only for current selected power.
Diffstat (limited to 'diplomacy/server/request_managers.py')
-rw-r--r--diplomacy/server/request_managers.py4
1 files changed, 4 insertions, 0 deletions
diff --git a/diplomacy/server/request_managers.py b/diplomacy/server/request_managers.py
index 5fa434e..59c0e88 100644
--- a/diplomacy/server/request_managers.py
+++ b/diplomacy/server/request_managers.py
@@ -393,6 +393,10 @@ def on_join_game(server, request, connection_handler):
if not server_game.has_power(power_name):
raise exceptions.MapPowerException(power_name)
+ # Forbid to play a power that is already eliminated.
+ if server_game.get_power(power_name).is_eliminated():
+ raise exceptions.ResponseException('%s is eliminated.' % power_name)
+
if username == constants.PRIVATE_BOT_USERNAME:
# Private bot is allowed to control any dummy power after game started
# (ie. after reached expected number of real players).