From 4dea96f5e4791a5bbe051b08e412b44d8a679280 Mon Sep 17 00:00:00 2001 From: Griatch Date: Thu, 14 Feb 2013 17:55:05 +0100 Subject: [PATCH] Some further fixes. --- src/commands/default/building.py | 4 ++++ src/commands/default/system.py | 12 ++++++++++-- src/players/models.py | 4 +++- src/players/player.py | 4 +++- 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/src/commands/default/building.py b/src/commands/default/building.py index 6589f1f463..9a26beede7 100644 --- a/src/commands/default/building.py +++ b/src/commands/default/building.py @@ -1614,6 +1614,10 @@ class CmdExamine(ObjManipCommand): string = "\n{wName/key{n: {c%s{n (%s)" % (obj.name, obj.dbref) if hasattr(obj, "aliases") and obj.aliases: string += "\n{wAliases{n: %s" % (", ".join(utils.make_iter(obj.aliases))) + if hasattr(obj, "sessid") and obj.sessid: + string += "\n{wsession{n: %s" % obj.sessid + elif hasattr(obj, "sessions") and obj.sessions: + string += "\n{wsession(s){n: %s" % (", ".join(str(sess.sessid) for sess in obj.sessions)) if hasattr(obj, "has_player") and obj.has_player: string += "\n{wPlayer{n: {c%s{n" % obj.player.name perms = obj.player.permissions diff --git a/src/commands/default/system.py b/src/commands/default/system.py index 412b721755..48f4eed591 100644 --- a/src/commands/default/system.py +++ b/src/commands/default/system.py @@ -156,7 +156,11 @@ class CmdPy(MuxCommand): 'ev':ev, 'inherits_from':utils.inherits_from} - caller.msg(">>> %s" % pycode, data={"raw":True}, sessid=self.sessid) + try: + caller.msg(">>> %s" % pycode, data={"raw":True}, sessid=self.sessid) + except TypeError: + caller.msg(">>> %s" % pycode, data={"raw":True}) + mode = "eval" try: @@ -185,7 +189,11 @@ class CmdPy(MuxCommand): ret = "\n".join("{n<<< %s" % line for line in errlist if line) if ret != None: - caller.msg(ret, sessid=self.sessid) + try: + caller.msg(ret, sessid=self.sessid) + except TypeError: + caller.msg(ret) + # helper function. Kept outside so it can be imported and run # by other commands. diff --git a/src/players/models.py b/src/players/models.py index 7755656251..89c172e92e 100644 --- a/src/players/models.py +++ b/src/players/models.py @@ -613,7 +613,7 @@ class PlayerDB(TypedObject): break return cmdhandler.cmdhandler(self.typeclass, raw_string, sessid=sessid) - def search(self, ostring, return_character=False): + def search(self, ostring, return_character=False, **kwargs): """ This is similar to the ObjectDB search method but will search for Players only. Errors will be echoed, and None returned if no Player is found. @@ -621,6 +621,8 @@ class PlayerDB(TypedObject): return_character - will try to return the character the player controls instead of the Player object itself. If no Character exists (since Player is OOC), None will be returned. + Extra keywords are ignored, but are allowed in call in order to make API more consistent + with objects.models.TypedObject.search. """ matches = _GA(self, "__class__").objects.player_search(ostring) matches = _AT_SEARCH_RESULT(self, ostring, matches, global_search=True) diff --git a/src/players/player.py b/src/players/player.py index 84977cfb57..62caacd6eb 100644 --- a/src/players/player.py +++ b/src/players/player.py @@ -136,10 +136,12 @@ class Player(TypeClass): """ return self.dbobj.execute_cmd(raw_string, sessid=sessid) - def search(self, ostring, return_character=False): + def search(self, ostring, return_character=False, **kwargs): """ This method mimicks object.search if self.character is set. Otherwise only other Players can be searched with this method. + extra keywords are accepted but ignored to make API more consistent with + TypedObject.search. """ return self.dbobj.search(ostring, return_character=return_character)