aboutsummaryrefslogtreecommitdiff
path: root/server/commands.py
diff options
context:
space:
mode:
authorCerapter <cerap@protonmail.com>2018-09-15 02:33:18 +0200
committerCerapter <cerap@protonmail.com>2018-09-15 02:33:18 +0200
commitfcd8f5b5abb2329aded120007319d581908c8a69 (patch)
tree5a3530435821555b51555768725bde1e267bd9a0 /server/commands.py
parent86f91ba3e862b683becbc2d35539bc06a636c925 (diff)
Areas can now be spectatable, too.
- Makes it so that people can join, but can't type IC unless invited. - The CM can set it with `/area_spectate`.
Diffstat (limited to 'server/commands.py')
-rw-r--r--server/commands.py24
1 files changed, 16 insertions, 8 deletions
diff --git a/server/commands.py b/server/commands.py
index 925eac38..c84d8b7b 100644
--- a/server/commands.py
+++ b/server/commands.py
@@ -697,7 +697,7 @@ def ooc_cmd_uncm(client, arg):
client.is_cm = False
client.area.owned = False
client.area.blankposting_allowed = True
- if client.area.is_locked:
+ if client.area.is_locked != client.area.Locked.FREE:
client.area.unlock()
client.server.area_manager.send_arup_cms()
client.area.send_host_message('{} is no longer CM in this area.'.format(client.get_char_name()))
@@ -714,20 +714,28 @@ def ooc_cmd_area_lock(client, arg):
if not client.area.locking_allowed:
client.send_host_message('Area locking is disabled in this area.')
return
- if client.area.is_locked:
+ if client.area.is_locked == client.area.Locked.LOCKED:
client.send_host_message('Area is already locked.')
if client.is_cm:
- client.area.is_locked = True
- client.server.area_manager.send_arup_lock()
- client.area.send_host_message('Area is locked.')
- for i in client.area.clients:
- client.area.invite_list[i.id] = None
+ client.area.lock()
return
else:
raise ClientError('Only CM can lock the area.')
+
+def ooc_cmd_area_spectate(client, arg):
+ if not client.area.locking_allowed:
+ client.send_host_message('Area locking is disabled in this area.')
+ return
+ if client.area.is_locked == client.area.Locked.SPECTATABLE:
+ client.send_host_message('Area is already spectatable.')
+ if client.is_cm:
+ client.area.spectator()
+ return
+ else:
+ raise ClientError('Only CM can make the area spectatable.')
def ooc_cmd_area_unlock(client, arg):
- if not client.area.is_locked:
+ if client.area.is_locked == client.area.Locked.FREE:
raise ClientError('Area is already unlocked.')
if not client.is_cm:
raise ClientError('Only CM can unlock area.')