From 9f7fb2734cc186d56df72c7045b540cd86ec808a Mon Sep 17 00:00:00 2001 From: Griatch Date: Thu, 12 Oct 2017 18:00:39 +0200 Subject: [PATCH] Make `@py` output appear for all sessions in MULTISESSION_MODE=1 Resolves #1356. --- evennia/commands/default/help.py | 2 +- evennia/commands/default/system.py | 22 ++++++++++++---------- evennia/utils/evmore.py | 2 +- 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/evennia/commands/default/help.py b/evennia/commands/default/help.py index a79fc0a61b..ebce460748 100644 --- a/evennia/commands/default/help.py +++ b/evennia/commands/default/help.py @@ -75,7 +75,7 @@ class CmdHelp(Command): pass if usemore: - evmore.msg(self.caller, text) + evmore.msg(self.caller, text, session=self.session) return self.msg((text, {"type": "help"})) diff --git a/evennia/commands/default/system.py b/evennia/commands/default/system.py index 77a0dce864..fe5efa337d 100644 --- a/evennia/commands/default/system.py +++ b/evennia/commands/default/system.py @@ -161,7 +161,7 @@ def _run_code_snippet(caller, pycode, mode="eval", measure_time=False, # Try to retrieve the session session = caller if hasattr(caller, "sessions"): - session = caller.sessions.get()[0] + sessions = caller.sessions.all() # import useful variables import evennia @@ -175,11 +175,12 @@ def _run_code_snippet(caller, pycode, mode="eval", measure_time=False, } if show_input: - try: - caller.msg(">>> %s" % pycode, session=session, - options={"raw": True}) - except TypeError: - caller.msg(">>> %s" % pycode, options={"raw": True}) + for session in sessions: + try: + caller.msg(">>> %s" % pycode, session=session, + options={"raw": True}) + except TypeError: + caller.msg(">>> %s" % pycode, options={"raw": True}) try: try: @@ -206,10 +207,11 @@ def _run_code_snippet(caller, pycode, mode="eval", measure_time=False, errlist = errlist[4:] ret = "\n".join("%s" % line for line in errlist if line) - try: - caller.msg(ret, session=session, options={"raw": True}) - except TypeError: - caller.msg(ret, options={"raw": True}) + for session in sessions: + try: + caller.msg(ret, session=session, options={"raw": True}) + except TypeError: + caller.msg(ret, options={"raw": True}) class CmdPy(COMMAND_DEFAULT_CLASS): diff --git a/evennia/utils/evmore.py b/evennia/utils/evmore.py index 4043025d6f..169091396b 100644 --- a/evennia/utils/evmore.py +++ b/evennia/utils/evmore.py @@ -192,7 +192,7 @@ class EvMore(object): if self._npages <= 1 and not always_page: # no need for paging; just pass-through. - caller.msg(text=text, **kwargs) + caller.msg(text=text, session=self._session, **kwargs) else: # go into paging mode # first pass on the msg kwargs