mirror of
https://github.com/evennia/evennia.git
synced 2026-04-01 05:27:17 +02:00
Server can be connected to, not yet get to a command line; may need to work on different app_labels.
This commit is contained in:
parent
0b5e2b94ff
commit
749715a193
5 changed files with 33 additions and 37 deletions
|
|
@ -130,7 +130,7 @@ def get_and_merge_cmdsets(caller, session, player, obj,
|
|||
if location and not obj_cmdset.no_objs:
|
||||
# Gather all cmdsets stored on objects in the room and
|
||||
# also in the caller's inventory and the location itself
|
||||
local_objlist = yield (location.contents_get(exclude=obj.dbobj) +
|
||||
local_objlist = yield (location.contents_get(exclude=obj) +
|
||||
obj.contents +
|
||||
[location])
|
||||
for lobj in local_objlist:
|
||||
|
|
@ -283,11 +283,11 @@ def cmdhandler(called_by, raw_string, _testing=False, callertype="session", sess
|
|||
session = called_by
|
||||
player = session.player
|
||||
if player:
|
||||
obj = yield _GA(player.dbobj, "get_puppet")(session.sessid)
|
||||
obj = yield player.get_puppet(session.sessid)
|
||||
elif callertype == "player":
|
||||
player = called_by
|
||||
if sessid:
|
||||
obj = yield _GA(player.dbobj, "get_puppet")(sessid)
|
||||
obj = yield player.get_puppet(sessid)
|
||||
elif callertype == "object":
|
||||
obj = called_by
|
||||
else:
|
||||
|
|
|
|||
|
|
@ -252,14 +252,14 @@ class ObjectDB(TypedObject):
|
|||
raise RuntimeError
|
||||
elif loc == None:
|
||||
raise RuntimeWarning
|
||||
return is_loc_loop(_GA(_GA(loc, "dbobj"), "db_location"), depth + 1)
|
||||
return is_loc_loop(loc.db_location, depth + 1)
|
||||
try:
|
||||
is_loc_loop(location)
|
||||
except RuntimeWarning:
|
||||
pass
|
||||
# actually set the field
|
||||
_SA(_GA(self, "dbobj"), "db_location", _GA(location, "dbobj") if location else location)
|
||||
_GA(_GA(self, "dbobj"), "save")(update_fields=["db_location"])
|
||||
self.db_location = location
|
||||
self.save(update_fields=["db_location"])
|
||||
except RuntimeError:
|
||||
errmsg = "Error: %s.location = %s creates a location loop." % (self.key, location)
|
||||
logger.log_errmsg(errmsg)
|
||||
|
|
@ -271,8 +271,8 @@ class ObjectDB(TypedObject):
|
|||
|
||||
def __location_del(self):
|
||||
"Cleanly delete the location reference"
|
||||
_SA(_GA(self, "dbobj"), "db_location", None)
|
||||
_GA(_GA(self, "dbobj"), "save")(upate_fields=["db_location"])
|
||||
self.db_location = None
|
||||
self.save(update_fields=["db_location"])
|
||||
location = property(__location_get, __location_set, __location_del)
|
||||
|
||||
class Meta:
|
||||
|
|
@ -323,8 +323,7 @@ class ObjectDB(TypedObject):
|
|||
exclude is one or more objects to not return
|
||||
"""
|
||||
if exclude:
|
||||
exclude = [obj.dbobj for obj in make_iter(exclude)]
|
||||
return ObjectDB.objects.get_contents(self, excludeobj=exclude)
|
||||
return ObjectDB.objects.get_contents(self, excludeobj=make_iter(exclude))
|
||||
return ObjectDB.objects.get_contents(self)
|
||||
contents = property(contents_get)
|
||||
|
||||
|
|
@ -423,7 +422,7 @@ class ObjectDB(TypedObject):
|
|||
# location(s) were given
|
||||
candidates = []
|
||||
for obj in make_iter(location):
|
||||
candidates.extend([o.dbobj for o in obj.contents])
|
||||
candidates.extend(obj.contents)
|
||||
else:
|
||||
# local search. Candidates are self.contents, self.location
|
||||
# and self.location.contents
|
||||
|
|
@ -434,8 +433,6 @@ class ObjectDB(TypedObject):
|
|||
else:
|
||||
# normally we are included in location.contents
|
||||
candidates.append(self)
|
||||
# db manager expects database objects
|
||||
candidates = [obj.dbobj for obj in candidates]
|
||||
|
||||
results = ObjectDB.objects.object_search(searchdata,
|
||||
attribute_name=attribute_name,
|
||||
|
|
|
|||
|
|
@ -268,7 +268,7 @@ class Object(ObjectDB):
|
|||
if searchdata.lower() in ("me", "self",):
|
||||
return self
|
||||
|
||||
return self.dbobj.search(searchdata,
|
||||
return super(Object, self).search(searchdata,
|
||||
global_search=global_search,
|
||||
use_nicks=use_nicks,
|
||||
typeclass=typeclass,
|
||||
|
|
@ -305,7 +305,7 @@ class Object(ObjectDB):
|
|||
# searchdata is a string; wrap some common self-references
|
||||
if searchdata.lower() in ("me", "self",):
|
||||
return self.player
|
||||
return self.dbobj.search_player(searchdata, quiet=quiet)
|
||||
return super(Object, self).search_player(searchdata, quiet=quiet)
|
||||
|
||||
def execute_cmd(self, raw_string, sessid=None, **kwargs):
|
||||
"""
|
||||
|
|
@ -333,7 +333,7 @@ class Object(ObjectDB):
|
|||
useful for coders intending to implement some sort of nested
|
||||
command structure.
|
||||
"""
|
||||
return self.dbobj.execute_cmd(raw_string, sessid=sessid, **kwargs)
|
||||
return super(Object, self).execute_cmd(raw_string, sessid=sessid, **kwargs)
|
||||
|
||||
def msg(self, text=None, from_obj=None, sessid=None, **kwargs):
|
||||
"""
|
||||
|
|
@ -347,7 +347,7 @@ class Object(ObjectDB):
|
|||
default to self.sessid or from_obj.sessid.
|
||||
"""
|
||||
|
||||
self.dbobj.msg(text=text, from_obj=from_obj, sessid=sessid, **kwargs)
|
||||
super(Object, self).msg(text=text, from_obj=from_obj, sessid=sessid, **kwargs)
|
||||
|
||||
def msg_contents(self, text=None, exclude=None, from_obj=None, **kwargs):
|
||||
"""
|
||||
|
|
@ -356,7 +356,7 @@ class Object(ObjectDB):
|
|||
exclude is a list of objects not to send to. See self.msg() for
|
||||
more info.
|
||||
"""
|
||||
self.dbobj.msg_contents(text, exclude=exclude,
|
||||
super(Object, self).msg_contents(text, exclude=exclude,
|
||||
from_obj=from_obj, **kwargs)
|
||||
|
||||
def move_to(self, destination, quiet=False,
|
||||
|
|
@ -387,7 +387,7 @@ class Object(ObjectDB):
|
|||
emit_to_obj.
|
||||
|
||||
"""
|
||||
return self.dbobj.move_to(destination, quiet=quiet,
|
||||
return super(Object, self).move_to(destination, quiet=quiet,
|
||||
emit_to_obj=emit_to_obj,
|
||||
use_destination=use_destination)
|
||||
|
||||
|
|
@ -402,7 +402,7 @@ class Object(ObjectDB):
|
|||
<old_key>_copy by default.
|
||||
Returns: Object (copy of this one)
|
||||
"""
|
||||
return self.dbobj.copy(new_key=new_key)
|
||||
return super(Object, self).copy(new_key=new_key)
|
||||
|
||||
def delete(self):
|
||||
"""
|
||||
|
|
@ -415,7 +415,7 @@ class Object(ObjectDB):
|
|||
were errors during deletion or deletion otherwise
|
||||
failed.
|
||||
"""
|
||||
return self.dbobj.delete()
|
||||
return super(Object, self).delete()
|
||||
|
||||
# methods inherited from the typeclass system
|
||||
|
||||
|
|
@ -434,7 +434,7 @@ class Object(ObjectDB):
|
|||
|
||||
Returns: Boolean
|
||||
"""
|
||||
return self.dbobj.is_typeclass(typeclass, exact=exact)
|
||||
return super(Object, self).is_typeclass(typeclass, exact=exact)
|
||||
|
||||
def swap_typeclass(self, new_typeclass, clean_attributes=False, no_default=True):
|
||||
"""
|
||||
|
|
@ -470,7 +470,7 @@ class Object(ObjectDB):
|
|||
|
||||
|
||||
"""
|
||||
return self.dbobj.swap_typeclass(new_typeclass,
|
||||
return super(Object, self).swap_typeclass(new_typeclass,
|
||||
clean_attributes=clean_attributes, no_default=no_default)
|
||||
|
||||
def access(self, accessing_obj, access_type='read', default=False, **kwargs):
|
||||
|
|
@ -483,7 +483,7 @@ class Object(ObjectDB):
|
|||
default (bool) - what to return if no lock of access_type was found
|
||||
**kwargs - passed to at_access hook along with result,accessing_obj and access_type
|
||||
"""
|
||||
result = self.dbobj.access(accessing_obj, access_type=access_type, default=default)
|
||||
result = super(Object, self).access(accessing_obj, access_type=access_type, default=default)
|
||||
self.at_access(result, accessing_obj, access_type, **kwargs)
|
||||
return result
|
||||
|
||||
|
|
@ -504,7 +504,7 @@ class Object(ObjectDB):
|
|||
permission on the object.
|
||||
(example: 'Builders')
|
||||
"""
|
||||
return self.dbobj.check_permstring(permstring)
|
||||
return super(Object, self).check_permstring(permstring)
|
||||
|
||||
def __eq__(self, other):
|
||||
"""
|
||||
|
|
|
|||
|
|
@ -124,7 +124,7 @@ class Player(PlayerDB):
|
|||
handles the sessid).
|
||||
kwargs - extra data to send through protocol
|
||||
"""
|
||||
self.msg(text=text, from_obj=from_obj, sessid=sessid, **kwargs)
|
||||
super(Player, self).msg(text=text, from_obj=from_obj, sessid=sessid, **kwargs)
|
||||
|
||||
def swap_character(self, new_character, delete_old_character=False):
|
||||
"""
|
||||
|
|
@ -135,7 +135,7 @@ class Player(PlayerDB):
|
|||
|
||||
Returns: True/False depending on if swap suceeded or not.
|
||||
"""
|
||||
return self.swap_character(new_character, delete_old_character=delete_old_character)
|
||||
return super(Player, self).swap_character(new_character, delete_old_character=delete_old_character)
|
||||
|
||||
def execute_cmd(self, raw_string, sessid=None, **kwargs):
|
||||
"""
|
||||
|
|
@ -163,7 +163,7 @@ class Player(PlayerDB):
|
|||
be useful for coders intending to implement some sort of nested
|
||||
command structure.
|
||||
"""
|
||||
return self.execute_cmd(raw_string, sessid=sessid, **kwargs)
|
||||
return super(Player, self).execute_cmd(raw_string, sessid=sessid, **kwargs)
|
||||
|
||||
def search(self, searchdata, return_puppet=False, **kwargs):
|
||||
"""
|
||||
|
|
@ -183,7 +183,7 @@ class Player(PlayerDB):
|
|||
# handle wrapping of common terms
|
||||
if searchdata.lower() in ("me", "*me", "self", "*self",):
|
||||
return self
|
||||
return self.search(searchdata, return_puppet=return_puppet, **kwargs)
|
||||
return super(Player, self).search(searchdata, return_puppet=return_puppet, **kwargs)
|
||||
|
||||
def is_typeclass(self, typeclass, exact=False):
|
||||
"""
|
||||
|
|
@ -200,7 +200,7 @@ class Player(PlayerDB):
|
|||
|
||||
Returns: Boolean
|
||||
"""
|
||||
return self.is_typeclass(typeclass, exact=exact)
|
||||
return super(Player, self).is_typeclass(typeclass, exact=exact)
|
||||
|
||||
def swap_typeclass(self, new_typeclass, clean_attributes=False, no_default=True):
|
||||
"""
|
||||
|
|
@ -235,7 +235,7 @@ class Player(PlayerDB):
|
|||
boolean True/False depending on if the swap worked or not.
|
||||
|
||||
"""
|
||||
self.swap_typeclass(new_typeclass,
|
||||
super(Player, self).swap_typeclass(new_typeclass,
|
||||
clean_attributes=clean_attributes, no_default=no_default)
|
||||
|
||||
def access(self, accessing_obj, access_type='read', default=False, **kwargs):
|
||||
|
|
@ -248,7 +248,7 @@ class Player(PlayerDB):
|
|||
default (bool) - what to return if no lock of access_type was found
|
||||
**kwargs - passed to the at_access hook along with the result.
|
||||
"""
|
||||
result = self.access(accessing_obj, access_type=access_type, default=default)
|
||||
result = super(Player, self).access(accessing_obj, access_type=access_type, default=default)
|
||||
self.at_access(result, accessing_obj, access_type, **kwargs)
|
||||
return result
|
||||
|
||||
|
|
@ -261,7 +261,7 @@ class Player(PlayerDB):
|
|||
on the object. (example: 'Builders')
|
||||
Note that this method does -not- call the at_access hook.
|
||||
"""
|
||||
return self.check_permstring(permstring)
|
||||
return super(Player, self).check_permstring(permstring)
|
||||
|
||||
## player hooks
|
||||
|
||||
|
|
|
|||
|
|
@ -44,7 +44,6 @@ class ScriptDBManager(TypedObjectManager):
|
|||
"""
|
||||
if not obj:
|
||||
return []
|
||||
obj = obj.dbobj
|
||||
player = _GA(_GA(obj, "__class__"), "__name__") == "PlayerDB"
|
||||
if key:
|
||||
dbref = self.dbref(key)
|
||||
|
|
@ -161,7 +160,7 @@ class ScriptDBManager(TypedObjectManager):
|
|||
# turn off the activity flag for all remaining scripts
|
||||
scripts = self.get_all_scripts()
|
||||
for script in scripts:
|
||||
script.dbobj.is_active = False
|
||||
script.is_active = False
|
||||
|
||||
elif not scripts:
|
||||
# normal operation
|
||||
|
|
@ -180,7 +179,7 @@ class ScriptDBManager(TypedObjectManager):
|
|||
|
||||
#print "scripts to validate: [%s]" % (", ".join(script.key for script in scripts))
|
||||
for script in scripts:
|
||||
#print "validating %s (%i) (init_mode=%s)" % (script.key, id(script.dbobj), init_mode)
|
||||
#print "validating %s (%i) (init_mode=%s)" % (script.key, id(script), init_mode)
|
||||
if script.is_valid():
|
||||
nr_started += script.start(force_restart=init_mode)
|
||||
#print "back from start. nr_started=", nr_started
|
||||
|
|
@ -212,7 +211,7 @@ class ScriptDBManager(TypedObjectManager):
|
|||
return [dbref_match]
|
||||
|
||||
# not a dbref; normal search
|
||||
obj_restriction = obj and Q(db_obj=obj.dbobj) or Q()
|
||||
obj_restriction = obj and Q(db_obj=obj) or Q()
|
||||
timed_restriction = only_timed and Q(interval__gt=0) or Q()
|
||||
scripts = self.filter(timed_restriction & obj_restriction & Q(db_key__iexact=ostring))
|
||||
return scripts
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue