Added the holds() lock function to check for an name or id held in inventory.
This commit is contained in:
parent
a429047452
commit
857b253a6f
2 changed files with 30 additions and 12 deletions
|
|
@ -551,8 +551,10 @@ class CmdDig(ObjManipCommand):
|
||||||
Switches:
|
Switches:
|
||||||
teleport - move yourself to the new room
|
teleport - move yourself to the new room
|
||||||
|
|
||||||
Example:
|
Examples:
|
||||||
@dig kitchen = north; n, south;s : big_scary_door
|
@dig kitchen = north;n, south;s
|
||||||
|
@dig house:myrooms.MyHouseTypeclass
|
||||||
|
@dig sheer cliff;cliff;sheer = climb up, climb down
|
||||||
|
|
||||||
This command is a convenient way to build rooms quickly; it creates the new room and you can optionally
|
This command is a convenient way to build rooms quickly; it creates the new room and you can optionally
|
||||||
set up exits back and forth between your current room and the new one. You can add as many aliases as you
|
set up exits back and forth between your current room and the new one. You can add as many aliases as you
|
||||||
|
|
@ -585,7 +587,8 @@ class CmdDig(ObjManipCommand):
|
||||||
typeclass = room['option']
|
typeclass = room['option']
|
||||||
if not typeclass:
|
if not typeclass:
|
||||||
typeclass = settings.BASE_ROOM_TYPECLASS
|
typeclass = settings.BASE_ROOM_TYPECLASS
|
||||||
# analyze typeclass. If it starts at the evennia basedir,
|
|
||||||
|
# analyze typeclass path. If it starts at the evennia basedir,
|
||||||
# (i.e. starts with game or src) we let it be, otherwise we
|
# (i.e. starts with game or src) we let it be, otherwise we
|
||||||
# add a base path as defined in settings
|
# add a base path as defined in settings
|
||||||
if typeclass and not (typeclass.startswith('src.') or
|
if typeclass and not (typeclass.startswith('src.') or
|
||||||
|
|
@ -604,10 +607,10 @@ class CmdDig(ObjManipCommand):
|
||||||
to_exit = self.rhs_objs[0]
|
to_exit = self.rhs_objs[0]
|
||||||
if not to_exit["name"]:
|
if not to_exit["name"]:
|
||||||
exit_to_string = \
|
exit_to_string = \
|
||||||
"\n\rYou didn't give a name for the exit to the new room."
|
"\nYou didn't give a name for the exit to the new room."
|
||||||
elif not location:
|
elif not location:
|
||||||
exit_to_string = \
|
exit_to_string = \
|
||||||
"\n\rYou cannot create an exit from a None-location."
|
"\nYou cannot create an exit from a None-location."
|
||||||
else:
|
else:
|
||||||
# Build the exit to the new room from the current one
|
# Build the exit to the new room from the current one
|
||||||
typeclass = to_exit["option"]
|
typeclass = to_exit["option"]
|
||||||
|
|
@ -624,7 +627,7 @@ class CmdDig(ObjManipCommand):
|
||||||
location,
|
location,
|
||||||
aliases=to_exit["aliases"])
|
aliases=to_exit["aliases"])
|
||||||
new_to_exit.db._destination = new_room
|
new_to_exit.db._destination = new_room
|
||||||
exit_to_string = "\n\rCreated new Exit to new room: %s (aliases: %s)."
|
exit_to_string = "\nCreated new Exit to new room: %s (aliases: %s)."
|
||||||
exit_to_string = exit_to_string % (new_to_exit.name,
|
exit_to_string = exit_to_string % (new_to_exit.name,
|
||||||
new_to_exit.aliases)
|
new_to_exit.aliases)
|
||||||
|
|
||||||
|
|
@ -633,10 +636,10 @@ class CmdDig(ObjManipCommand):
|
||||||
back_exit = self.rhs_objs[1]
|
back_exit = self.rhs_objs[1]
|
||||||
if not back_exit["name"]:
|
if not back_exit["name"]:
|
||||||
exit_back_string = \
|
exit_back_string = \
|
||||||
"\n\rYou didn't give a name for the exit back here."
|
"\nYou didn't give a name for the exit back here."
|
||||||
elif not location:
|
elif not location:
|
||||||
exit_back_string = \
|
exit_back_string = \
|
||||||
"\n\rYou cannot create an exit back to a None-location."
|
"\nYou cannot create an exit back to a None-location."
|
||||||
else:
|
else:
|
||||||
typeclass = back_exit["option"]
|
typeclass = back_exit["option"]
|
||||||
if not typeclass:
|
if not typeclass:
|
||||||
|
|
@ -652,7 +655,7 @@ class CmdDig(ObjManipCommand):
|
||||||
new_room,
|
new_room,
|
||||||
aliases=back_exit["aliases"])
|
aliases=back_exit["aliases"])
|
||||||
new_back_exit.db._destination = location
|
new_back_exit.db._destination = location
|
||||||
exit_back_string = "\n\rExit back from new room: %s (aliases: %s)."
|
exit_back_string = "\nExit back from new room: %s (aliases: %s)."
|
||||||
exit_back_string = exit_back_string % (new_back_exit.name,
|
exit_back_string = exit_back_string % (new_back_exit.name,
|
||||||
new_back_exit.aliases)
|
new_back_exit.aliases)
|
||||||
caller.msg("%s%s%s" % (room_string, exit_to_string, exit_back_string))
|
caller.msg("%s%s%s" % (room_string, exit_to_string, exit_back_string))
|
||||||
|
|
@ -1183,7 +1186,7 @@ class CmdTypeclass(MuxCommand):
|
||||||
else:
|
else:
|
||||||
obj.swap_typeclass(typeclass, clean_attributes=reset)
|
obj.swap_typeclass(typeclass, clean_attributes=reset)
|
||||||
new_typeclass = obj.typeclass
|
new_typeclass = obj.typeclass
|
||||||
string = "%s's type is now %s (instead of %s).\n\r" % (obj.name,
|
string = "%s's type is now %s (instead of %s).\n" % (obj.name,
|
||||||
new_typeclass,
|
new_typeclass,
|
||||||
old_typeclass)
|
old_typeclass)
|
||||||
if reset:
|
if reset:
|
||||||
|
|
@ -1416,9 +1419,9 @@ class CmdExamine(ObjManipCommand):
|
||||||
if locks:
|
if locks:
|
||||||
string += "\n{wLocks{n: %s" % ("; ".join([lock for lock in locks.split(';')]))
|
string += "\n{wLocks{n: %s" % ("; ".join([lock for lock in locks.split(';')]))
|
||||||
if not (len(obj.cmdset.all()) == 1 and obj.cmdset.current.key == "Empty"):
|
if not (len(obj.cmdset.all()) == 1 and obj.cmdset.current.key == "Empty"):
|
||||||
string += "\n{wCurrent Cmdset (before permission checks){n:\n\r %s" % obj.cmdset
|
string += "\n{wCurrent Cmdset (before permission checks){n:\n %s" % obj.cmdset
|
||||||
if obj.scripts.all():
|
if obj.scripts.all():
|
||||||
string += "\n{wScripts{n:\n\r %s" % obj.scripts
|
string += "\n{wScripts{n:\n %s" % obj.scripts
|
||||||
# add the attributes
|
# add the attributes
|
||||||
string += self.format_attributes(obj)
|
string += self.format_attributes(obj)
|
||||||
# add the contents
|
# add the contents
|
||||||
|
|
|
||||||
|
|
@ -291,6 +291,21 @@ def attr_ne(accessing_obj, accessed_obj, *args, **kwargs):
|
||||||
"""
|
"""
|
||||||
return attr(accessing_obj, accessed_obj, *args, **{'compare':'ne'})
|
return attr(accessing_obj, accessed_obj, *args, **{'compare':'ne'})
|
||||||
|
|
||||||
|
def holds(accessing_obj, accessed_obj, objid, *args, **kwargs):
|
||||||
|
"""
|
||||||
|
Usage:
|
||||||
|
holds(object_id)
|
||||||
|
|
||||||
|
This is passed if accessing_obj 'contains' an object with the given
|
||||||
|
key name or dbref.
|
||||||
|
"""
|
||||||
|
dbref = utils.dbref(objid)
|
||||||
|
contains = accessing_obj.contains
|
||||||
|
if dbref and any((True for obj in contains if obj.id == dbref)):
|
||||||
|
return True
|
||||||
|
objid = objid.lower()
|
||||||
|
return any((True for obj in contains if obj.name.lower() == objid))
|
||||||
|
|
||||||
def superuser(*args, **kwargs):
|
def superuser(*args, **kwargs):
|
||||||
"""
|
"""
|
||||||
Only accepts an accesing_obj that is superuser (e.g. user #1)
|
Only accepts an accesing_obj that is superuser (e.g. user #1)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue