mirror of
https://github.com/evennia/evennia.git
synced 2026-03-16 21:06:30 +01:00
Add AT_EXIT_TRAVERSE signal. Resolve #2687
This commit is contained in:
parent
3084da788f
commit
caa7347fab
4 changed files with 14 additions and 12 deletions
|
|
@ -219,6 +219,7 @@ Increase requirements: Django 4.1+, Twisted 22.10+ Python 3.9, 3.10, 3.11. Post
|
|||
the given left indent but crops/fills to the width. Used in EvCells.
|
||||
- `EvTable` now supports passing `EvColumn`s as a list directly, (`EvTable(table=[colA,colB])`)
|
||||
- Add `tags=` search criterion to `DefaultObject.search`.
|
||||
- Add `AT_EXIT_TRAVERSE` signal, firing when an exit is traversed.
|
||||
|
||||
## Evennia 0.9.5
|
||||
|
||||
|
|
|
|||
|
|
@ -93,6 +93,7 @@ Extra
|
|||
- `SIGNAL_SCRIPT_POST_CREATE` - fires when a script is first created, after any hooks.
|
||||
- `SIGNAL_CHANNEL_POST_CREATE` - fires when a Channel is first created, after any hooks.
|
||||
- `SIGNAL_HELPENTRY_POST_CREATE` - fires when a help entry is first created.
|
||||
- `SIGNAL_EXIT_TRAVERSED` - fires when an exit is traversed, just after `at_traverse` hook. The `sender` is the exit itself, `traverser=` keyword hold the one traversing the exit.
|
||||
|
||||
The `evennia.signals` module also gives you conveneient access to the default Django signals (these
|
||||
use a
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ from evennia.commands.cmdsethandler import CmdSetHandler
|
|||
from evennia.objects.manager import ObjectManager
|
||||
from evennia.objects.models import ObjectDB
|
||||
from evennia.scripts.scripthandler import ScriptHandler
|
||||
from evennia.server.signals import SIGNAL_EXIT_TRAVERSED
|
||||
from evennia.typeclasses.attributes import ModelAttributeBackend, NickHandler
|
||||
from evennia.typeclasses.models import TypeclassBase
|
||||
from evennia.utils import ansi, create, funcparser, logger, search
|
||||
|
|
@ -2886,6 +2887,7 @@ class ExitCommand(_COMMAND_DEFAULT_CLASS):
|
|||
if self.obj.access(self.caller, "traverse"):
|
||||
# we may traverse the exit.
|
||||
self.obj.at_traverse(self.caller, self.obj.destination)
|
||||
SIGNAL_EXIT_TRAVERSED.send(sender=self.obj, traverser=self.caller)
|
||||
else:
|
||||
# exit is locked
|
||||
if self.obj.db.err_traverse:
|
||||
|
|
|
|||
|
|
@ -87,13 +87,17 @@ SIGNAL_HELPENTRY_POST_CREATE = Signal()
|
|||
# first created, after all hooks.
|
||||
SIGNAL_CHANNEL_POST_CREATE = Signal()
|
||||
|
||||
# The sender is the exit used when traversing, as well as 'traverser', for the one traversing
|
||||
# Called just after at_traverse hook.
|
||||
SIGNAL_EXIT_TRAVERSED = Signal()
|
||||
|
||||
# Django default signals (https://docs.djangoproject.com/en/2.2/topics/signals/)
|
||||
|
||||
from django.core.signals import request_finished # " ends.
|
||||
from django.core.signals import request_started # Sent when HTTP request begins.
|
||||
from django.db.backends.signals import ( # Sent when making initial connection to database
|
||||
from django.db.backends.signals import (
|
||||
connection_created,
|
||||
)
|
||||
) # Sent when making initial connection to database
|
||||
from django.db.models.signals import m2m_changed # Sent when a ManyToManyField changes.
|
||||
from django.db.models.signals import post_delete # after "
|
||||
from django.db.models.signals import post_init # end
|
||||
|
|
@ -101,15 +105,9 @@ from django.db.models.signals import post_migrate # after "
|
|||
from django.db.models.signals import post_save # after "
|
||||
from django.db.models.signals import pre_delete # Sent before an object is deleted.
|
||||
from django.db.models.signals import pre_migrate # Sent before migration starts
|
||||
from django.db.models.signals import pre_save # Sent before a typeclass' .save is called.
|
||||
from django.db.models.signals import (
|
||||
pre_save, # Sent before a typeclass' .save is called.
|
||||
)
|
||||
from django.db.models.signals import ( # Sent at start of typeclass __init__ (before at_init)
|
||||
pre_init,
|
||||
)
|
||||
from django.test.signals import (
|
||||
setting_changed, # Sent when setting changes from override
|
||||
)
|
||||
from django.test.signals import (
|
||||
template_rendered, # Sent when test system renders template
|
||||
)
|
||||
) # Sent at start of typeclass __init__ (before at_init)
|
||||
from django.test.signals import setting_changed # Sent when setting changes from override
|
||||
from django.test.signals import template_rendered # Sent when test system renders template
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue