Fixed a bug in search error reporting. Made accept to change a player's name. Closes PR: Resolves #820, Resolves #821, Resolves #822, Resolves #823.

This commit is contained in:
Griatch 2015-10-16 22:34:40 +02:00
parent 7037ac2e5f
commit 0c7ee1bdfc
2 changed files with 26 additions and 4 deletions

View file

@ -1093,7 +1093,8 @@ class CmdName(ObjManipCommand):
Usage:
@name obj = name;alias1;alias2
Rename an object to something new.
Rename an object to something new. Use *obj to
rename a player.
"""
@ -1107,12 +1108,30 @@ class CmdName(ObjManipCommand):
caller = self.caller
if not self.args:
string = "Usage: @name <obj> = <newname>[;alias;alias;...]"
caller.msg(string)
caller.msg("Usage: @name <obj> = <newname>[;alias;alias;...]")
return
if self.lhs_objs:
objname = self.lhs_objs[0]['name']
if objname.startswith("*"):
# player mode
obj = caller.player.search(objname.lstrip("*"))
if obj:
if self.rhs_objs[0]['aliases']:
caller.msg("Players can't have aliases.")
return
newname = self.rhs
if not newname:
caller.msg("No name defined!")
return
if not obj.access(caller, "edit"):
caller.mgs("You don't have right to edit this player %s." % obj)
return
obj.username = newname
obj.save()
caller.msg("Player's name changed to '%s'." % newname)
return
# object search, also with *
obj = caller.search(objname)
if not obj:
return
@ -1125,6 +1144,9 @@ class CmdName(ObjManipCommand):
if not newname and not aliases:
caller.msg("No names or aliases defined!")
return
if not obj.access(caller, "edit"):
caller.msg("You don't have the right to edit %s." % obj)
return
# change the name and set aliases:
if newname:
obj.name = newname

View file

@ -1536,7 +1536,7 @@ def at_search_result(matches, caller, query="", quiet=False, **kwargs):
error = ""
if not matches:
# no results.
error = kwargs.get("nofound_string", _("Could not find '%s'." % query))
error = kwargs.get("nofound_string") or _("Could not find '%s'." % query)
matches = None
elif len(matches) > 1:
error = kwargs.get("multimatch_string", None)