From 55d956a799edd198eaf427f3ef0b36d899e91440 Mon Sep 17 00:00:00 2001 From: Griatch Date: Mon, 16 Jan 2017 18:12:18 +0100 Subject: [PATCH] In Evmenu, make sure to not assign the Session from the Command until the caller has been correctly identified. --- evennia/utils/evmenu.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/evennia/utils/evmenu.py b/evennia/utils/evmenu.py index f03d1cc8f..306c5e21b 100644 --- a/evennia/utils/evmenu.py +++ b/evennia/utils/evmenu.py @@ -242,7 +242,6 @@ class CmdEvMenuNode(Command): caller = self.caller # we store Session on the menu since this can be hard to # get in multisession environemtns if caller is a Player. - caller.ndb._menutree._session = self.session menu = caller.ndb._menutree if not menu: if _restore(caller): @@ -258,9 +257,11 @@ class CmdEvMenuNode(Command): if not menu: # can't restore from a session err = "Menu object not found as %s.ndb._menutree!" % (orig_caller) - orig_caller.msg(err) # don't use session here, it's a backup + orig_caller.msg(err) # don't give the session as a kwarg here, direct to original raise EvMenuError(err) - + # we must do this after the caller with the menui has been correctly identified since it + # can be either Player, Object or Session (in the latter case this info will be superfluous). + caller.ndb._menutree._session = self.session # we have a menu, use it. menu._input_parser(menu, self.raw_string, caller)