From 4330d37f20bff970b81c852f6369bcc5b7712a89 Mon Sep 17 00:00:00 2001 From: Dan Feeney Date: Wed, 7 Sep 2016 08:13:49 -0500 Subject: [PATCH] fixed error occurring when caller does not have a player attribute --- evennia/utils/evmenu.py | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/evennia/utils/evmenu.py b/evennia/utils/evmenu.py index d299ab8fa..7b7818997 100644 --- a/evennia/utils/evmenu.py +++ b/evennia/utils/evmenu.py @@ -234,18 +234,19 @@ class CmdEvMenuNode(Command): if _restore(caller): return orig_caller = caller - caller = caller.player - menu = caller.ndb._menutree - if not menu: - if _restore(caller): - return - caller = self.session + if hasattr(caller, 'player'): + caller = caller.player menu = caller.ndb._menutree if not menu: - # can't restore from a session - err = "Menu object not found as %s.ndb._menutree!" % (orig_caller) - orig_caller.msg(err) - raise EvMenuError(err) + if _restore(caller): + return + caller = self.session + menu = caller.ndb._menutree + if not menu: + # can't restore from a session + err = "Menu object not found as %s.ndb._menutree!" % (orig_caller) + orig_caller.msg(err) + raise EvMenuError(err) # we have a menu, use it. menu._input_parser(menu, self.raw_string, caller)