mirror of
https://github.com/evennia/evennia.git
synced 2026-04-02 14:07:16 +02:00
Renaming things and cleaning them up a bit.
This commit is contained in:
parent
a0907ec94d
commit
7685ce9623
1 changed files with 22 additions and 78 deletions
|
|
@ -207,10 +207,6 @@ class DefaultObject(ObjectDB, metaclass=TypeclassBase):
|
|||
# Used for sorting / filtering in inventories / room contents.
|
||||
_content_types = ("object",)
|
||||
|
||||
# lockstring of newly created objects, for easy overloading.
|
||||
# Will be formatted with the appropriate attributes.
|
||||
lockstring = "control:id({account_id}) or perm(Admin);delete:id({account_id}) or perm(Admin)"
|
||||
|
||||
objects = ObjectManager()
|
||||
|
||||
# populated by `return_appearance`
|
||||
|
|
@ -1011,7 +1007,7 @@ class DefaultObject(ObjectDB, metaclass=TypeclassBase):
|
|||
obj.move_to(home, move_type="teleport")
|
||||
|
||||
@classmethod
|
||||
def generate_default_locks(
|
||||
def get_default_lockstring(
|
||||
cls, account: "DefaultAccount" = None, caller: "DefaultObject" = None, **kwargs
|
||||
):
|
||||
"""
|
||||
|
|
@ -1025,10 +1021,11 @@ class DefaultObject(ObjectDB, metaclass=TypeclassBase):
|
|||
Returns:
|
||||
lockstring (str): A lockstring to use for this object.
|
||||
"""
|
||||
if cls.lockstring:
|
||||
account_id = account.id if account else -1
|
||||
return cls.lockstring.format(account_id=account_id)
|
||||
return ""
|
||||
pid = f"pid({account.id})" if account else None
|
||||
cid = f"id({caller.id})" if caller else None
|
||||
admin = "perm(Admin)"
|
||||
trio = " or ".join([x for x in [pid, cid, admin] if x])
|
||||
return ";".join([f"{x}:{trio}" for x in ["control", "delete", "edit"]])
|
||||
|
||||
@classmethod
|
||||
def create(
|
||||
|
|
@ -1079,7 +1076,7 @@ class DefaultObject(ObjectDB, metaclass=TypeclassBase):
|
|||
# Create a sane lockstring if one wasn't supplied
|
||||
lockstring = kwargs.get("locks")
|
||||
if (account or caller) and not lockstring:
|
||||
lockstring = cls.generate_default_locks(account=account, caller=caller, **kwargs)
|
||||
lockstring = cls.get_default_lockstring(account=account, caller=caller, **kwargs)
|
||||
kwargs["locks"] = lockstring
|
||||
|
||||
# Create object
|
||||
|
|
@ -2524,7 +2521,7 @@ class DefaultCharacter(DefaultObject):
|
|||
)
|
||||
|
||||
@classmethod
|
||||
def generate_default_locks(
|
||||
def get_default_lockstring(
|
||||
cls, account: "DefaultAccount" = None, caller: "DefaultObject" = None, **kwargs
|
||||
):
|
||||
"""
|
||||
|
|
@ -2538,12 +2535,17 @@ class DefaultCharacter(DefaultObject):
|
|||
Returns:
|
||||
lockstring (str): A lockstring to use for this object.
|
||||
"""
|
||||
if cls.lockstring:
|
||||
account_id = account.id if account else -1
|
||||
character = kwargs.get("character", None)
|
||||
character_id = character.id if character else -1
|
||||
return cls.lockstring.format(character_id=character.id, account_id=account_id)
|
||||
return ""
|
||||
pid = f"pid({account.id})" if account else None
|
||||
character = kwargs.get("character", None)
|
||||
cid = f"id({character})" if character else None
|
||||
|
||||
puppet = "puppet:" + " or ".join(
|
||||
[x for x in [pid, cid, "perm(Developer)", "pperm(Developer)"] if x]
|
||||
)
|
||||
delete = "delete:" + " or ".join([x for x in [pid, "perm(Admin)"] if x])
|
||||
edit = "edit:" + " or ".join([x for x in [pid, "perm(Admin)"] if x])
|
||||
|
||||
return ";".join([puppet, delete, edit])
|
||||
|
||||
@classmethod
|
||||
def create(cls, key, account=None, **kwargs):
|
||||
|
|
@ -2618,7 +2620,7 @@ class DefaultCharacter(DefaultObject):
|
|||
if not locks:
|
||||
# Allow only the character itself and the creator account to puppet this character
|
||||
# (and Developers).
|
||||
locks = cls.generate_default_locks(account=account, character=obj)
|
||||
locks = cls.get_default_lockstring(account=account, character=obj)
|
||||
|
||||
if locks:
|
||||
obj.locks.add(locks)
|
||||
|
|
@ -2826,35 +2828,6 @@ class DefaultRoom(DefaultObject):
|
|||
# Generally, a room isn't expected to HAVE a location, but maybe in some games?
|
||||
_content_types = ("room",)
|
||||
|
||||
# lockstring of newly created rooms, for easy overloading.
|
||||
# Will be formatted with the {id} of the creating object.
|
||||
lockstring = (
|
||||
"control:id({id}) or perm(Admin); "
|
||||
"delete:id({id}) or perm(Admin); "
|
||||
"edit:id({id}) or perm(Admin)"
|
||||
)
|
||||
|
||||
@classmethod
|
||||
def generate_default_locks(
|
||||
cls, account: "DefaultAccount" = None, caller: "DefaultObject" = None, **kwargs
|
||||
):
|
||||
"""
|
||||
Classmethod called during .create() to determine default locks for the object.
|
||||
|
||||
Args:
|
||||
account (Account): Account to attribute this object to.
|
||||
caller (DefaultObject): The object which is creating this one.
|
||||
**kwargs: Arbitrary input.
|
||||
|
||||
Returns:
|
||||
lockstring (str): A lockstring to use for this object.
|
||||
"""
|
||||
if cls.lockstring:
|
||||
room = kwargs.get("room")
|
||||
id = account.id if account else caller.id if caller else room.id
|
||||
return cls.lockstring.format(id=id)
|
||||
return ""
|
||||
|
||||
@classmethod
|
||||
def create(
|
||||
cls,
|
||||
|
|
@ -2914,7 +2887,7 @@ class DefaultRoom(DefaultObject):
|
|||
|
||||
# Add locks
|
||||
if not locks:
|
||||
locks = cls.generate_default_locks(account=account, caller=caller, room=obj)
|
||||
locks = cls.get_default_lockstring(account=account, caller=caller, room=obj)
|
||||
if locks:
|
||||
obj.locks.add(locks)
|
||||
|
||||
|
|
@ -3020,14 +2993,6 @@ class DefaultExit(DefaultObject):
|
|||
exit_command = ExitCommand
|
||||
priority = 101
|
||||
|
||||
# lockstring of newly created exits, for easy overloading.
|
||||
# Will be formatted with the {id} of the creating object.
|
||||
lockstring = (
|
||||
"control:id({id}) or perm(Admin); "
|
||||
"delete:id({id}) or perm(Admin); "
|
||||
"edit:id({id}) or perm(Admin)"
|
||||
)
|
||||
|
||||
# Helper classes and methods to implement the Exit. These need not
|
||||
# be overloaded unless one want to change the foundation for how
|
||||
# Exits work. See the end of the class for hook methods to overload.
|
||||
|
|
@ -3068,27 +3033,6 @@ class DefaultExit(DefaultObject):
|
|||
|
||||
# Command hooks
|
||||
|
||||
@classmethod
|
||||
def generate_default_locks(
|
||||
cls, account: "DefaultAccount" = None, caller: "DefaultObject" = None, **kwargs
|
||||
):
|
||||
"""
|
||||
Classmethod called during .create() to determine default locks for the object.
|
||||
|
||||
Args:
|
||||
account (Account): Account to attribute this object to.
|
||||
caller (DefaultObject): The object which is creating this one.
|
||||
**kwargs: Arbitrary input.
|
||||
|
||||
Returns:
|
||||
lockstring (str): A lockstring to use for this object.
|
||||
"""
|
||||
if cls.lockstring:
|
||||
room = kwargs.get("room", None)
|
||||
id = account.id if account else caller.id if caller else room.id if room else -1
|
||||
return cls.lockstring.format(id=id)
|
||||
return ""
|
||||
|
||||
@classmethod
|
||||
def create(
|
||||
cls,
|
||||
|
|
@ -3152,7 +3096,7 @@ class DefaultExit(DefaultObject):
|
|||
|
||||
# Set appropriate locks
|
||||
if not locks:
|
||||
locks = cls.generate_default_locks(account=account, caller=caller, exit=obj)
|
||||
locks = cls.get_default_lockstring(account=account, caller=caller, exit=obj)
|
||||
if locks:
|
||||
obj.locks.add(locks)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue