X-Git-Url: https://plomlompom.com/repos/?a=blobdiff_plain;f=new2%2Fplomrogue%2Fio.py;h=9f34b180f851793b04ce02e32c52b46ea9c68481;hb=f7f11798a90187ab83d038f737368317a99e15b0;hp=d740f8c42972879e9f911d21ba5edf5e6d9c1e84;hpb=2f73d4246c98d4b25d18d0faa987d9ed165a48ae;p=plomrogue2-experiments diff --git a/new2/plomrogue/io.py b/new2/plomrogue/io.py index d740f8c..9f34b18 100644 --- a/new2/plomrogue/io.py +++ b/new2/plomrogue/io.py @@ -4,11 +4,12 @@ import queue class GameIO(): - def __init__(self, game): + def __init__(self, game, save_file='savefile'): from plomrogue.parser import Parser self.clients = {} self.parser = Parser(game) self.game = game + self.save_file = save_file def loop(self, q): """Handle commands coming through queue q, run game, send results back.""" @@ -44,8 +45,13 @@ class GameIO(): 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.misc import quote @@ -63,7 +69,7 @@ class GameIO(): 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: