mirror of
https://github.com/evennia/evennia.git
synced 2026-03-20 06:46:31 +01:00
Changed default dbref search mechanic to require #N format and thus allow searching for objects named as integers (so "@create/drop 2" followed by 'look 2' will now work as expected instead of looking at the object with dbref=2). Doing "look #2" will now look at the object with dbref 2 (Limbo). Resolves Issue 284.
This commit is contained in:
parent
31daf5b013
commit
5b5328e6ca
3 changed files with 13 additions and 7 deletions
|
|
@ -67,12 +67,16 @@ class TypedObjectManager(idmapper.manager.SharedMemoryManager):
|
|||
Common ObjectManager for all dbobjects.
|
||||
"""
|
||||
|
||||
def dbref(self, dbref):
|
||||
def dbref(self, dbref, reqhash=True):
|
||||
"""
|
||||
Valid forms of dbref (database reference number)
|
||||
are either a string '#N' or an integer N.
|
||||
Output is the integer part.
|
||||
reqhash - require input to be on form "#N" to be
|
||||
identified as a dbref
|
||||
"""
|
||||
if reqhash and not (isinstance(dbref, basestring) and dbref.startswith("#")):
|
||||
return None
|
||||
if isinstance(dbref, basestring):
|
||||
dbref = dbref.lstrip('#')
|
||||
try:
|
||||
|
|
@ -98,7 +102,7 @@ class TypedObjectManager(idmapper.manager.SharedMemoryManager):
|
|||
"""
|
||||
Find object with given dbref
|
||||
"""
|
||||
dbref = self.dbref(dbref)
|
||||
dbref = self.dbref(dbref, reqhash=False)
|
||||
try:
|
||||
return self.get(id=dbref)
|
||||
except self.model.DoesNotExist:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue