From a6947bfda0bd690af8b6f48d1581c852dfb59625 Mon Sep 17 00:00:00 2001 From: Chiizujin Date: Sat, 10 Dec 2022 12:48:48 +1100 Subject: [PATCH 1/3] Change get, drop, inv to use get_numbered_name() --- evennia/commands/default/general.py | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/evennia/commands/default/general.py b/evennia/commands/default/general.py index 11a6df71e3..8a73d49b2e 100644 --- a/evennia/commands/default/general.py +++ b/evennia/commands/default/general.py @@ -371,8 +371,9 @@ class CmdInventory(COMMAND_DEFAULT_CLASS): table = self.styled_table(border="header") for item in items: + singular, _ = item.get_numbered_name(1, self.caller) table.add_row( - f"|C{item.name}|n", + f"|C{singular}|n", "{}|n".format(utils.crop(raw_ansi(item.db.desc or ""), width=50) or ""), ) string = f"|wYou are carrying:\n{table}" @@ -424,8 +425,9 @@ class CmdGet(COMMAND_DEFAULT_CLASS): if not success: caller.msg("This can't be picked up.") else: - caller.msg(f"You pick up {obj.name}.") - caller.location.msg_contents(f"{caller.name} picks up {obj.name}.", exclude=caller) + singular, _ = obj.get_numbered_name(1, caller) + caller.msg(f"You pick up {singular}.") + caller.location.msg_contents(f"{caller.name} picks up {singular}.", exclude=caller) # calling at_get hook method obj.at_get(caller) @@ -472,8 +474,9 @@ class CmdDrop(COMMAND_DEFAULT_CLASS): if not success: caller.msg("This couldn't be dropped.") else: - caller.msg("You drop %s." % (obj.name,)) - caller.location.msg_contents(f"{caller.name} drops {obj.name}.", exclude=caller) + singular, _ = obj.get_numbered_name(1, caller) + caller.msg(f"You drop {singular}.") + caller.location.msg_contents(f"{caller.name} drops {singular}.", exclude=caller) # Call the object script's at_drop() method. obj.at_drop(caller) @@ -510,11 +513,13 @@ class CmdGive(COMMAND_DEFAULT_CLASS): target = caller.search(self.rhs) if not (to_give and target): return + + singular, _ = to_give.get_numbered_name(1, caller) if target == caller: - caller.msg(f"You keep {to_give.key} to yourself.") + caller.msg(f"You keep {singular} to yourself.") return if not to_give.location == caller: - caller.msg(f"You are not holding {to_give.key}.") + caller.msg(f"You are not holding {singular}.") return # calling at_pre_give hook method @@ -524,10 +529,10 @@ class CmdGive(COMMAND_DEFAULT_CLASS): # give object success = to_give.move_to(target, quiet=True, move_type="give") if not success: - caller.msg(f"You could not give {to_give.key}.") + caller.msg(f"You could not give {singular} to {target.key}.") else: - caller.msg(f"You give {to_give.key} to {target.key}.") - target.msg(f"{caller.key} gives you {to_give.key}.") + caller.msg(f"You give {singular} to {target.key}.") + target.msg(f"{caller.key} gives you {singular}.") # Call the object script's at_give() method. to_give.at_give(caller, target) From c1e9b5ecbed20101d16f485df32b5470f20cb754 Mon Sep 17 00:00:00 2001 From: Chiizujin Date: Sat, 10 Dec 2022 14:47:16 +1100 Subject: [PATCH 2/3] Update unit tests for get_numbered_name() change --- evennia/commands/default/tests.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/evennia/commands/default/tests.py b/evennia/commands/default/tests.py index 8d0e299d66..051a0e1976 100644 --- a/evennia/commands/default/tests.py +++ b/evennia/commands/default/tests.py @@ -112,13 +112,13 @@ class TestGeneral(BaseEvenniaCommandTest): self.call(general.CmdNick(), "/list", "Defined Nicks:") def test_get_and_drop(self): - self.call(general.CmdGet(), "Obj", "You pick up Obj.") - self.call(general.CmdDrop(), "Obj", "You drop Obj.") + self.call(general.CmdGet(), "Obj", "You pick up an Obj.") + self.call(general.CmdDrop(), "Obj", "You drop an Obj.") def test_give(self): self.call(general.CmdGive(), "Obj to Char2", "You aren't carrying Obj.") self.call(general.CmdGive(), "Obj = Char2", "You aren't carrying Obj.") - self.call(general.CmdGet(), "Obj", "You pick up Obj.") + self.call(general.CmdGet(), "Obj", "You pick up an Obj.") self.call(general.CmdGive(), "Obj to Char2", "You give") self.call(general.CmdGive(), "Obj = Char", "You give", caller=self.char2) From 6782f7d6358ded7ff826e6c8cae3cef40a2ead55 Mon Sep 17 00:00:00 2001 From: Chiizujin Date: Thu, 15 Dec 2022 11:49:46 +1100 Subject: [PATCH 3/3] Change get and drop to use funcparser embeds --- evennia/commands/default/general.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/evennia/commands/default/general.py b/evennia/commands/default/general.py index 8a73d49b2e..9fa6f52b22 100644 --- a/evennia/commands/default/general.py +++ b/evennia/commands/default/general.py @@ -426,8 +426,7 @@ class CmdGet(COMMAND_DEFAULT_CLASS): caller.msg("This can't be picked up.") else: singular, _ = obj.get_numbered_name(1, caller) - caller.msg(f"You pick up {singular}.") - caller.location.msg_contents(f"{caller.name} picks up {singular}.", exclude=caller) + caller.location.msg_contents(f"$You() $conj(pick) up {singular}.", from_obj=caller) # calling at_get hook method obj.at_get(caller) @@ -475,8 +474,7 @@ class CmdDrop(COMMAND_DEFAULT_CLASS): caller.msg("This couldn't be dropped.") else: singular, _ = obj.get_numbered_name(1, caller) - caller.msg(f"You drop {singular}.") - caller.location.msg_contents(f"{caller.name} drops {singular}.", exclude=caller) + caller.location.msg_contents(f"$You() $conj(drop) {singular}.", from_obj=caller) # Call the object script's at_drop() method. obj.at_drop(caller)