From a7f85296100b3dfd6c7f9d39789b46c48c7db2d7 Mon Sep 17 00:00:00 2001 From: Cal Date: Fri, 5 Apr 2024 11:31:58 -0600 Subject: [PATCH] fix numbered target cmd parse --- evennia/commands/default/general.py | 2 +- evennia/commands/default/tests.py | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/evennia/commands/default/general.py b/evennia/commands/default/general.py index 88c15f74f4..5b27318a03 100644 --- a/evennia/commands/default/general.py +++ b/evennia/commands/default/general.py @@ -397,7 +397,7 @@ class NumberedTargetCommand(COMMAND_DEFAULT_CLASS): """ super().parse() self.number = 0 - if hasattr(self, "lhs"): + if getattr(self, "lhs", None): # handle self.lhs but don't require it count, *args = self.lhs.split(maxsplit=1) # we only use the first word as a count if it's a number and diff --git a/evennia/commands/default/tests.py b/evennia/commands/default/tests.py index 6bc69f602a..f7fc7f1fd2 100644 --- a/evennia/commands/default/tests.py +++ b/evennia/commands/default/tests.py @@ -134,6 +134,17 @@ class TestGeneral(BaseEvenniaCommandTest): self.obj2.location = self.char1 self.call(general.CmdGive(), "2 Obj = Char2", "You give two Objs") + def test_numbered_target_command(self): + class CmdTest(general.NumberedTargetCommand): + key = "test" + + def func(self): + self.msg(f"Number: {self.number} Args: {self.args}") + + self.call(CmdTest(), "", "Number: 0 Args: ") + self.call(CmdTest(), "obj", "Number: 0 Args: obj") + self.call(CmdTest(), "1 obj", "Number: 1 Args: obj") + def test_mux_command(self): class CmdTest(MuxCommand): key = "test"