From 2b028410c3e72641c44b1a3a1d2dec5d3ec7e5b4 Mon Sep 17 00:00:00 2001 From: Cal Date: Mon, 27 Jan 2025 18:48:09 -0700 Subject: [PATCH] move call-lock check to building list of objects to check cmdset --- evennia/commands/cmdhandler.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/evennia/commands/cmdhandler.py b/evennia/commands/cmdhandler.py index e8bfe6c4c5..b0851523cc 100644 --- a/evennia/commands/cmdhandler.py +++ b/evennia/commands/cmdhandler.py @@ -361,7 +361,12 @@ def get_and_merge_cmdsets( local_objlist = yield ( location.contents_get(exclude=obj) + obj.contents_get() + [location] ) - local_objlist = [o for o in local_objlist if not o._is_deleted] + local_objlist = [ + o + for o in local_objlist + if not o._is_deleted + and o.access(caller, access_type="call", no_superuser_bypass=True) + ] for lobj in local_objlist: try: # call hook in case we need to do dynamic changing to cmdset @@ -375,12 +380,7 @@ def get_and_merge_cmdsets( chain.from_iterable( lobj.cmdset.cmdset_stack for lobj in local_objlist - if ( - lobj.cmdset.current - and lobj.access( - caller, access_type="call", no_superuser_bypass=True - ) - ) + if lobj.cmdset.current ) ) for cset in local_obj_cmdsets: