mirror of
https://github.com/evennia/evennia.git
synced 2026-03-16 21:06:30 +01:00
Add teleport: and teleport_here: default locks to in-game entities. Resolve #3029
This commit is contained in:
parent
2ad58051bb
commit
a6df975624
5 changed files with 99 additions and 27 deletions
|
|
@ -3,6 +3,9 @@
|
|||
## Main
|
||||
|
||||
- Bug fix: Evtable options showed spurious empty lines if set without desc
|
||||
- Usage fix: The `teleport:` and `teleport_here:` locks where checked in
|
||||
`CmdTeleport`, but not actually set on any entities. These locks are now
|
||||
set with defaults on all objects,characters,rooms and exits.
|
||||
|
||||
## Evennia 1.2.0
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,12 @@
|
|||
# Changelog
|
||||
|
||||
## Main
|
||||
|
||||
- Bug fix: Evtable options showed spurious empty lines if set without desc
|
||||
- Usage fix: The `teleport:` and `teleport_here:` locks where checked in
|
||||
`CmdTeleport`, but not actually set on any entities. These locks are now
|
||||
set with defaults on all objects,characters,rooms and exits.
|
||||
|
||||
## Evennia 1.2.0
|
||||
|
||||
- Bug fix: `TagHandler.get` did not consistently cast to string (aMiss-aWry)
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@ import re
|
|||
from django.conf import settings
|
||||
from django.core.paginator import Paginator
|
||||
from django.db.models import Max, Min, Q
|
||||
|
||||
from evennia import InterruptCommand
|
||||
from evennia.commands.cmdhandler import get_and_merge_cmdsets
|
||||
from evennia.locks.lockhandler import LockException
|
||||
|
|
|
|||
|
|
@ -13,7 +13,6 @@ from collections import defaultdict
|
|||
import inflect
|
||||
from django.conf import settings
|
||||
from django.utils.translation import gettext as _
|
||||
|
||||
from evennia.commands import cmdset
|
||||
from evennia.commands.cmdsethandler import CmdSetHandler
|
||||
from evennia.objects.manager import ObjectManager
|
||||
|
|
@ -1546,6 +1545,8 @@ class DefaultObject(ObjectDB, metaclass=TypeclassBase):
|
|||
"call:true()", # allow to call commands on this object
|
||||
"tell:perm(Admin)", # allow emits to this object
|
||||
"puppet:pperm(Developer)",
|
||||
"teleport:true()",
|
||||
"teleport_here:true()",
|
||||
]
|
||||
)
|
||||
) # lock down puppeting only to staff by default
|
||||
|
|
@ -2635,7 +2636,14 @@ class DefaultCharacter(DefaultObject):
|
|||
"""
|
||||
super().basetype_setup()
|
||||
self.locks.add(
|
||||
";".join(["get:false()", "call:false()"]) # noone can pick up the character
|
||||
";".join(
|
||||
[
|
||||
"get:false()",
|
||||
"call:false()",
|
||||
"teleport:perm(Admin)",
|
||||
"teleport_here:perm(Admin)",
|
||||
]
|
||||
) # noone can pick up the character
|
||||
) # no commands can be called on character from outside
|
||||
# add the default cmdset
|
||||
self.cmdset.add_default(settings.CMDSET_CHARACTER, persistent=True)
|
||||
|
|
@ -2862,7 +2870,7 @@ class DefaultRoom(DefaultObject):
|
|||
|
||||
super().basetype_setup()
|
||||
self.locks.add(
|
||||
";".join(["get:false()", "puppet:false()"])
|
||||
";".join(["get:false()", "puppet:false()", "teleport:false()", "teleport_here:true()"])
|
||||
) # would be weird to puppet a room ...
|
||||
self.location = None
|
||||
|
||||
|
|
@ -3078,6 +3086,8 @@ class DefaultExit(DefaultObject):
|
|||
"puppet:false()", # would be weird to puppet an exit ...
|
||||
"traverse:all()", # who can pass through exit by default
|
||||
"get:false()", # noone can pick up the exit
|
||||
"teleport:false()",
|
||||
"teleport_here:false()",
|
||||
]
|
||||
)
|
||||
)
|
||||
|
|
|
|||
|
|
@ -10,7 +10,6 @@ from time import time
|
|||
import mock
|
||||
from anything import Something
|
||||
from django.test.utils import override_settings
|
||||
|
||||
from evennia.prototypes import menus as olc_menus
|
||||
from evennia.prototypes import protfuncs as protofuncs
|
||||
from evennia.prototypes import prototypes as protlib
|
||||
|
|
@ -116,6 +115,8 @@ class TestUtils(BaseEvenniaTest):
|
|||
"examine:perm(Builder)",
|
||||
"get:all()",
|
||||
"puppet:pperm(Developer)",
|
||||
"teleport:true()",
|
||||
"teleport_here:true()",
|
||||
"tell:perm(Admin)",
|
||||
"view:all()",
|
||||
]
|
||||
|
|
@ -170,11 +171,21 @@ class TestUtils(BaseEvenniaTest):
|
|||
"key": "Obj",
|
||||
"home": Something,
|
||||
"location": Something,
|
||||
"locks": (
|
||||
"call:true();control:perm(Developer);delete:perm(Admin);"
|
||||
"drop:holds();"
|
||||
"edit:perm(Admin);examine:perm(Builder);get:all();"
|
||||
"puppet:pperm(Developer);tell:perm(Admin);view:all()"
|
||||
"locks": ";".join(
|
||||
[
|
||||
"call:true()",
|
||||
"control:perm(Developer)",
|
||||
"delete:perm(Admin)",
|
||||
"drop:holds()",
|
||||
"edit:perm(Admin)",
|
||||
"examine:perm(Builder)",
|
||||
"get:all()",
|
||||
"puppet:pperm(Developer)",
|
||||
"teleport:true()",
|
||||
"teleport_here:true()",
|
||||
"tell:perm(Admin)",
|
||||
"view:all()",
|
||||
]
|
||||
),
|
||||
"prototype_desc": "Built from Obj",
|
||||
"prototype_key": Something,
|
||||
|
|
@ -192,11 +203,21 @@ class TestUtils(BaseEvenniaTest):
|
|||
"home": Something,
|
||||
"key": "Obj",
|
||||
"location": Something,
|
||||
"locks": (
|
||||
"call:true();control:perm(Developer);delete:perm(Admin);"
|
||||
"drop:holds();"
|
||||
"edit:perm(Admin);examine:perm(Builder);get:all();"
|
||||
"puppet:pperm(Developer);tell:perm(Admin);view:all()"
|
||||
"locks": ";".join(
|
||||
[
|
||||
"call:true()",
|
||||
"control:perm(Developer)",
|
||||
"delete:perm(Admin)",
|
||||
"drop:holds()",
|
||||
"edit:perm(Admin)",
|
||||
"examine:perm(Builder)",
|
||||
"get:all()",
|
||||
"puppet:pperm(Developer)",
|
||||
"teleport:true()",
|
||||
"teleport_here:true()",
|
||||
"tell:perm(Admin)",
|
||||
"view:all()",
|
||||
]
|
||||
),
|
||||
"new": "new_val",
|
||||
"permissions": ["Builder"],
|
||||
|
|
@ -217,12 +238,38 @@ class TestUtils(BaseEvenniaTest):
|
|||
"prototype_key": (Something, Something, "UPDATE"),
|
||||
"location": (Something, Something, "KEEP"),
|
||||
"locks": (
|
||||
"call:true();control:perm(Developer);delete:perm(Admin);"
|
||||
"drop:holds();edit:perm(Admin);examine:perm(Builder);"
|
||||
"get:all();puppet:pperm(Developer);tell:perm(Admin);view:all()",
|
||||
"call:true();control:perm(Developer);delete:perm(Admin);drop:holds();"
|
||||
"edit:perm(Admin);examine:perm(Builder);get:all();"
|
||||
"puppet:pperm(Developer);tell:perm(Admin);view:all()",
|
||||
";".join(
|
||||
[
|
||||
"call:true()",
|
||||
"control:perm(Developer)",
|
||||
"delete:perm(Admin)",
|
||||
"drop:holds()",
|
||||
"edit:perm(Admin)",
|
||||
"examine:perm(Builder)",
|
||||
"get:all()",
|
||||
"puppet:pperm(Developer)",
|
||||
"teleport:true()",
|
||||
"teleport_here:true()",
|
||||
"tell:perm(Admin)",
|
||||
"view:all()",
|
||||
]
|
||||
),
|
||||
";".join(
|
||||
[
|
||||
"call:true()",
|
||||
"control:perm(Developer)",
|
||||
"delete:perm(Admin)",
|
||||
"drop:holds()",
|
||||
"edit:perm(Admin)",
|
||||
"examine:perm(Builder)",
|
||||
"get:all()",
|
||||
"puppet:pperm(Developer)",
|
||||
"teleport:true()",
|
||||
"teleport_here:true()",
|
||||
"tell:perm(Admin)",
|
||||
"view:all()",
|
||||
]
|
||||
),
|
||||
"KEEP",
|
||||
),
|
||||
"prototype_tags": (None, None, "KEEP"),
|
||||
|
|
@ -303,6 +350,8 @@ class TestUtils(BaseEvenniaTest):
|
|||
"examine:perm(Builder)",
|
||||
"get:all()",
|
||||
"puppet:pperm(Developer)",
|
||||
"teleport:true()",
|
||||
"teleport_here:true()",
|
||||
"tell:perm(Admin)",
|
||||
"view:all()",
|
||||
]
|
||||
|
|
@ -700,12 +749,16 @@ class TestMenuModule(BaseEvenniaTest):
|
|||
"home": ("#2", "#2", "KEEP"),
|
||||
"key": ("TestChar", "TestChar", "KEEP"),
|
||||
"locks": (
|
||||
"boot:false();call:false();control:perm(Developer);delete:false();"
|
||||
"edit:false();examine:perm(Developer);get:false();msg:all();"
|
||||
"puppet:false();tell:perm(Admin);view:all()",
|
||||
"boot:false();call:false();control:perm(Developer);delete:false();"
|
||||
"edit:false();examine:perm(Developer);get:false();msg:all();"
|
||||
"puppet:false();tell:perm(Admin);view:all()",
|
||||
(
|
||||
"boot:false();call:false();control:perm(Developer);delete:false();"
|
||||
"edit:false();examine:perm(Developer);get:false();msg:all();"
|
||||
"puppet:false();tell:perm(Admin);view:all()"
|
||||
),
|
||||
(
|
||||
"boot:false();call:false();control:perm(Developer);delete:false();"
|
||||
"edit:false();examine:perm(Developer);get:false();msg:all();"
|
||||
"puppet:false();tell:perm(Admin);view:all()"
|
||||
),
|
||||
"KEEP",
|
||||
),
|
||||
"permissions": {"developer": ("developer", "developer", "KEEP")},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue