From 69fab516733f159e28d77afb04d4b6711c7e836c Mon Sep 17 00:00:00 2001 From: Jake <73198594+jaborsh@users.noreply.github.com> Date: Sat, 7 Mar 2026 00:15:31 -0800 Subject: [PATCH] cmdhandler: Add Deferred understanding to _progressive_cmd_run --- evennia/commands/cmdhandler.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/evennia/commands/cmdhandler.py b/evennia/commands/cmdhandler.py index aaa4bcdd85..d7183b5f6c 100644 --- a/evennia/commands/cmdhandler.py +++ b/evennia/commands/cmdhandler.py @@ -36,7 +36,7 @@ from traceback import format_exc from django.conf import settings from django.utils.translation import gettext as _ from twisted.internet import reactor -from twisted.internet.defer import inlineCallbacks +from twisted.internet.defer import Deferred, inlineCallbacks from twisted.internet.task import deferLater from evennia.commands.cmdset import CmdSet @@ -251,6 +251,9 @@ def _progressive_cmd_run(cmd, generator, response=None): utils.delay(value, _progressive_cmd_run, cmd, generator) elif isinstance(value, str): _GET_INPUT(cmd.caller, value, _process_input, cmd=cmd, generator=generator) + elif isinstance(value, Deferred): + value.addCallback(lambda result: _progressive_cmd_run(cmd, generator, response=result)) + value.addErrback(lambda fail: generator.throw(fail.type, fail.value, fail.tb)) else: raise ValueError("unknown type for a yielded value in command: {}".format(type(value)))