RPSystem sdesc command to support clear/view sdesc. Resolve #3073.

This commit is contained in:
Griatch 2023-02-26 12:11:22 +01:00
parent e47c69dc24
commit d4074a5dba
3 changed files with 27 additions and 2 deletions

View file

@ -2,6 +2,7 @@
## Main branch (git)
- Feature: RPSystem contrib `sdesc` command can now view/delete your sdesc.
- Bug fix: Change so `script obj = [scriptname|id]` is required to manipulate scripts
on objects; `script scriptname|id` only works on global scripts.
- Doc: Add warning about `Django-wiki` (in wiki tutorial) only supporting Django <4.0.

View file

@ -725,6 +725,13 @@ class SdescHandler:
return sdesc
def clear(self):
"""
Clear sdesc.
"""
self.obj.attributes.remove("_sdesc")
def get(self):
"""
Simple getter. The sdesc should never be allowed to
@ -959,6 +966,8 @@ class CmdSdesc(RPCommand): # set/look at own sdesc
Usage:
sdesc <short description>
sdesc - view current sdesc
sdesc clear - remove sdesc
Assigns a short description to yourself.
@ -971,8 +980,18 @@ class CmdSdesc(RPCommand): # set/look at own sdesc
"Assign the sdesc"
caller = self.caller
if not self.args:
caller.msg("Usage: sdesc <sdesc-text>")
return
sdesc = caller.sdesc.get()
if not sdesc:
caller.msg("You have no short description set.")
else:
caller.msg(f'Your short description is "{sdesc}".')
elif self.args == "clear":
ret = yield "Do you want to clear your sdesc? [Y]/n?"
if ret.lower() in ("n", "no"):
caller.msg("Aborted.")
else:
caller.sdesc.clear()
caller.msg(f'Cleared sdesc, using name "{caller.key}".')
else:
# strip non-alfanum chars from end of sdesc
sdesc = _RE_CHAREND.sub("", self.args)

View file

@ -339,6 +339,9 @@ class TestRPSystemCommands(BaseEvenniaCommandTest):
"Char2's sdesc was set to 'BarFoo Character'.",
caller=self.char2,
)
self.call(rpsystem.CmdSdesc(), "", 'Your short description is "Foobar Character".')
self.call(rpsystem.CmdSay(), "Hello!", 'Char says, "Hello!"')
self.call(rpsystem.CmdEmote(), "/me smiles to /BarFoo.", "Char smiles to BarFoo Character")
@ -368,3 +371,5 @@ class TestRPSystemCommands(BaseEvenniaCommandTest):
"You will now know them only as 'BarFoo Character'",
cmdstring="forget",
)
self.call(rpsystem.CmdSdesc(), "clear", 'Cleared sdesc, using name "Char".', inputs=["Y"])