print('Killing server')
self.server.server_close()
- def handle_input(self, input_, connection_id=None):
- """Process input_ to command grammar, call command handler if found."""
+ def handle_input(self, input_, connection_id=None, god_mode=False):
+ """Process input_ to command grammar, call command handler if found.
+
+ Command handlers that have no connectin_i argument in their
+ signature will only be called if god_mode is set.
+
+ """
from inspect import signature
- from plomrogue.errors import GameError, ArgError
+ from plomrogue.errors import GameError, ArgError, PlayError
from plomrogue.misc import quote
def answer(connection_id, msg):
else:
if 'connection_id' in list(signature(command).parameters):
command(*args, connection_id=connection_id)
- else:
+ elif god_mode:
command(*args)
#if store and not hasattr(command, 'dont_save'):
# with open(self.game_file_name, 'a') as f:
# f.write(input_ + '\n')
except ArgError as e:
answer(connection_id, 'ARGUMENT_ERROR ' + quote(str(e)))
+ except PlayError as e:
+ answer(connection_id, 'PLAY_ERROR ' + quote(str(e)))
except GameError as e:
answer(connection_id, 'GAME_ERROR ' + quote(str(e)))