diff options
| author | Cerapter <cerap@protonmail.com> | 2018-09-15 02:33:18 +0200 |
|---|---|---|
| committer | Cerapter <cerap@protonmail.com> | 2018-09-15 02:33:18 +0200 |
| commit | fcd8f5b5abb2329aded120007319d581908c8a69 (patch) | |
| tree | 5a3530435821555b51555768725bde1e267bd9a0 /server/commands.py | |
| parent | 86f91ba3e862b683becbc2d35539bc06a636c925 (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.py | 24 |
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.') |
