From e41f2ff6b27b4f5c3f5f291f177bf5e561543cdd Mon Sep 17 00:00:00 2001
From: Evennia docbuilder action
Date: Sun, 24 Jul 2022 06:52:16 +0000
Subject: [PATCH] Updated HTML docs
---
docs/0.9.5/.buildinfo | 2 +-
docs/0.9.5/Default-Commands.html | 30 ++++----
docs/0.9.5/_sources/Default-Commands.md.txt | 30 ++++----
.../api/evennia.commands.default.account.html | 2 +-
.../api/evennia.commands.default.admin.html | 2 +-
...evennia.commands.default.batchprocess.html | 2 +-
.../evennia.commands.default.building.html | 2 +-
.../api/evennia.commands.default.comms.html | 2 +-
.../api/evennia.commands.default.general.html | 8 +--
.../api/evennia.commands.default.system.html | 6 +-
.../evennia.commands.default.unloggedin.html | 8 +--
docs/0.9.5/api/evennia.contrib.chargen.html | 2 +-
.../api/evennia.contrib.email_login.html | 8 +--
.../api/evennia.contrib.extended_room.html | 2 +-
...vennia.contrib.ingame_python.commands.html | 2 +-
docs/0.9.5/api/evennia.contrib.rpsystem.html | 4 +-
...b.tutorial_examples.cmdset_red_button.html | 6 +-
...vennia.contrib.tutorial_world.objects.html | 4 +-
.../evennia.contrib.tutorial_world.rooms.html | 6 +-
docs/0.9.5/api/evennia.utils.eveditor.html | 2 +-
docs/0.9.5/api/evennia.utils.evmore.html | 2 +-
docs/1.0-dev/.buildinfo | 2 +-
docs/1.0-dev/Howtos/NPC-shop-Tutorial.html | 2 +-
docs/1.0-dev/Howtos/Tutorial-Vehicles.html | 4 +-
.../evennia/commands/default/building.html | 5 +-
.../evennia/commands/default/general.html | 8 +--
.../full_systems/evscaperoom/commands.html | 2 +-
.../full_systems/evscaperoom/room.html | 4 +-
.../game_systems/clothing/clothing.html | 6 +-
.../contrib/grid/slow_exit/slow_exit.html | 2 +-
.../contrib/grid/wilderness/wilderness.html | 2 +-
.../contrib/rpg/rpsystem/rpsystem.html | 52 +++++++++-----
.../evennia/contrib/rpg/rpsystem/tests.html | 35 +++++++--
.../tutorials/tutorial_world/rooms.html | 28 ++++----
.../tutorials/tutorial_world/tests.html | 4 +-
.../_modules/evennia/objects/objects.html | 68 +++++++++++++-----
.../server/game_index_client/client.html | 1 -
.../_sources/Howtos/NPC-shop-Tutorial.md.txt | 2 +-
.../_sources/Howtos/Tutorial-Vehicles.md.txt | 4 +-
.../api/evennia.commands.default.account.html | 4 +-
...evennia.commands.default.batchprocess.html | 4 +-
.../evennia.commands.default.building.html | 8 +--
.../api/evennia.commands.default.general.html | 16 ++---
.../api/evennia.commands.default.tests.html | 2 +-
.../evennia.commands.default.unloggedin.html | 12 ++--
....base_systems.email_login.email_login.html | 12 ++--
...b.base_systems.ingame_python.commands.html | 4 +-
...systems.mux_comms_cmds.mux_comms_cmds.html | 4 +-
...rib.full_systems.evscaperoom.commands.html | 24 +++----
...contrib.full_systems.evscaperoom.room.html | 4 +-
...ontrib.game_systems.clothing.clothing.html | 4 +-
...trib.game_systems.turnbattle.tb_basic.html | 4 +-
...trib.game_systems.turnbattle.tb_equip.html | 4 +-
...trib.game_systems.turnbattle.tb_items.html | 4 +-
...trib.game_systems.turnbattle.tb_magic.html | 4 +-
...trib.game_systems.turnbattle.tb_range.html | 4 +-
...trib.grid.extended_room.extended_room.html | 4 +-
...ia.contrib.grid.wilderness.wilderness.html | 2 +-
.../api/evennia.contrib.rpg.dice.dice.html | 4 +-
...evennia.contrib.rpg.rpsystem.rpsystem.html | 4 +-
.../evennia.contrib.rpg.rpsystem.tests.html | 9 ++-
...ntrib.tutorials.red_button.red_button.html | 16 ++---
...trib.tutorials.tutorial_world.objects.html | 8 +--
...ontrib.tutorials.tutorial_world.rooms.html | 34 +++++----
docs/1.0-dev/api/evennia.objects.objects.html | 59 ++++++++++++---
docs/1.0-dev/api/evennia.utils.eveditor.html | 4 +-
docs/1.0-dev/api/evennia.utils.evmenu.html | 4 +-
docs/1.0-dev/api/evennia.utils.evmore.html | 4 +-
docs/1.0-dev/genindex.html | 14 ++--
docs/1.0-dev/objects.inv | Bin 140925 -> 140934 bytes
docs/1.0-dev/searchindex.js | 2 +-
71 files changed, 382 insertions(+), 267 deletions(-)
diff --git a/docs/0.9.5/.buildinfo b/docs/0.9.5/.buildinfo
index 6c78cf48b4..ba2ddbb3ea 100644
--- a/docs/0.9.5/.buildinfo
+++ b/docs/0.9.5/.buildinfo
@@ -1,4 +1,4 @@
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
-config: d0941aadd143a99f74c117fdcb4a88d1
+config: 5fe7f891b0e577c9ccfd1992bb9ff906
tags: 645f666f9bcd5a90fca523b33c5a78b7
diff --git a/docs/0.9.5/Default-Commands.html b/docs/0.9.5/Default-Commands.html
index 2a60a06563..b87296f9bb 100644
--- a/docs/0.9.5/Default-Commands.html
+++ b/docs/0.9.5/Default-Commands.html
@@ -53,27 +53,27 @@ with Batch-Processor’s interactive mode.
-__unloggedin_look_command [l, look] (cmdset: UnloggedinCmdSet, help-category: General)
+__unloggedin_look_command [look, l] (cmdset: UnloggedinCmdSet, help-category: General)
about [version] (cmdset: CharacterCmdSet, help-category: System)
access [hierarchy, groups] (cmdset: CharacterCmdSet, help-category: General)
-accounts [account, listaccounts] (cmdset: CharacterCmdSet, help-category: System)
+accounts [listaccounts, account] (cmdset: CharacterCmdSet, help-category: System)
addcom [aliaschan, chanalias] (cmdset: AccountCmdSet, help-category: Comms)
alias [setobjalias] (cmdset: CharacterCmdSet, help-category: Building)
allcom (cmdset: AccountCmdSet, help-category: Comms)
batchcode [batchcodes] (cmdset: CharacterCmdSet, help-category: Building)
-batchcommands [batchcmd, batchcommand] (cmdset: CharacterCmdSet, help-category: Building)
+batchcommands [batchcommand, batchcmd] (cmdset: CharacterCmdSet, help-category: Building)
cboot (cmdset: AccountCmdSet, help-category: Comms)
ccreate [channelcreate] (cmdset: AccountCmdSet, help-category: Comms)
cdesc (cmdset: AccountCmdSet, help-category: Comms)
cdestroy (cmdset: AccountCmdSet, help-category: Comms)
cemit [cmsg] (cmdset: AccountCmdSet, help-category: Comms)
-channels [all channels, chanlist, clist, comlist, channellist] (cmdset: AccountCmdSet, help-category: Comms)
+channels [channellist, clist, comlist, all channels, chanlist] (cmdset: AccountCmdSet, help-category: Comms)
charcreate (cmdset: AccountCmdSet, help-category: General)
chardelete (cmdset: AccountCmdSet, help-category: General)
clock (cmdset: AccountCmdSet, help-category: Comms)
cmdsets [listcmsets] (cmdset: CharacterCmdSet, help-category: Building)
color (cmdset: AccountCmdSet, help-category: General)
-connect [con, co, conn] (cmdset: UnloggedinCmdSet, help-category: General)
+connect [conn, con, co] (cmdset: UnloggedinCmdSet, help-category: General)
copy (cmdset: CharacterCmdSet, help-category: Building)
cpattr (cmdset: CharacterCmdSet, help-category: Building)
create (cmdset: CharacterCmdSet, help-category: Building)
@@ -91,7 +91,7 @@ with give (cmdset: CharacterCmdSet, help-category: General)
grapevine2chan (cmdset: AccountCmdSet, help-category: Comms)
help [?] (cmdset: AccountCmdSet, help-category: General)
-help [h, ?] (cmdset: UnloggedinCmdSet, help-category: General)
+help [?, h] (cmdset: UnloggedinCmdSet, help-category: General)
home (cmdset: CharacterCmdSet, help-category: General)
ic [puppet] (cmdset: AccountCmdSet, help-category: General)
info (cmdset: UnloggedinCmdSet, help-category: General)
@@ -100,29 +100,29 @@ with ircstatus (cmdset: AccountCmdSet, help-category: Comms)
link (cmdset: CharacterCmdSet, help-category: Building)
lock [locks] (cmdset: CharacterCmdSet, help-category: Building)
-look [l, ls] (cmdset: AccountCmdSet, help-category: General)
-look [l, ls] (cmdset: CharacterCmdSet, help-category: General)
+look [ls, l] (cmdset: AccountCmdSet, help-category: General)
+look [ls, l] (cmdset: CharacterCmdSet, help-category: General)
mvattr (cmdset: CharacterCmdSet, help-category: Building)
name [rename] (cmdset: CharacterCmdSet, help-category: Building)
-nick [nicks, nickname] (cmdset: AccountCmdSet, help-category: General)
-objects [db, stats, listobjects, listobjs] (cmdset: CharacterCmdSet, help-category: System)
+nick [nickname, nicks] (cmdset: AccountCmdSet, help-category: General)
+objects [stats, db, listobjs, listobjects] (cmdset: CharacterCmdSet, help-category: System)
ooc [unpuppet] (cmdset: AccountCmdSet, help-category: General)
open (cmdset: CharacterCmdSet, help-category: Building)
option [options] (cmdset: AccountCmdSet, help-category: General)
page [tell] (cmdset: AccountCmdSet, help-category: Comms)
password (cmdset: AccountCmdSet, help-category: General)
-pose [emote, :] (cmdset: CharacterCmdSet, help-category: General)
+pose [:, emote] (cmdset: CharacterCmdSet, help-category: General)
py [!] (cmdset: AccountCmdSet, help-category: System)
quell [unquell] (cmdset: AccountCmdSet, help-category: General)
quit (cmdset: AccountCmdSet, help-category: General)
-quit [q, qu] (cmdset: UnloggedinCmdSet, help-category: General)
+quit [qu, q] (cmdset: UnloggedinCmdSet, help-category: General)
reload [restart] (cmdset: AccountCmdSet, help-category: System)
reset [reboot] (cmdset: AccountCmdSet, help-category: System)
rss2chan (cmdset: AccountCmdSet, help-category: Comms)
-say [’, “] (cmdset: CharacterCmdSet, help-category: General)
+say [”, ‘] (cmdset: CharacterCmdSet, help-category: General)
screenreader (cmdset: UnloggedinCmdSet, help-category: General)
script [addscript] (cmdset: CharacterCmdSet, help-category: Building)
-scripts [globalscript, listscripts] (cmdset: CharacterCmdSet, help-category: System)
+scripts [listscripts, globalscript] (cmdset: CharacterCmdSet, help-category: System)
server [serverload, serverprocess] (cmdset: CharacterCmdSet, help-category: System)
service [services] (cmdset: CharacterCmdSet, help-category: System)
sessions (cmdset: SessionCmdSet, help-category: General)
@@ -138,7 +138,7 @@ with tickers (cmdset: CharacterCmdSet, help-category: System)
time [uptime] (cmdset: CharacterCmdSet, help-category: System)
tunnel [tun] (cmdset: CharacterCmdSet, help-category: Building)
-typeclass [swap, parent, update, type] (cmdset: CharacterCmdSet, help-category: Building)
+typeclass [parent, update, type, swap] (cmdset: CharacterCmdSet, help-category: Building)
unlink (cmdset: CharacterCmdSet, help-category: Building)
whisper (cmdset: CharacterCmdSet, help-category: General)
who [doing] (cmdset: AccountCmdSet, help-category: General)
diff --git a/docs/0.9.5/_sources/Default-Commands.md.txt b/docs/0.9.5/_sources/Default-Commands.md.txt
index be57fdfe9b..9477bdfe10 100644
--- a/docs/0.9.5/_sources/Default-Commands.md.txt
+++ b/docs/0.9.5/_sources/Default-Commands.md.txt
@@ -14,27 +14,27 @@ with [EvEditor](./EvEditor.md), flipping pages in [EvMore](./EvMore.md) or using
[Batch-Processor](./Batch-Processors.md)'s interactive mode.
```
-- [**__unloggedin_look_command** [l, look]](evennia.commands.default.unloggedin.CmdUnconnectedLook) (cmdset: [UnloggedinCmdSet](evennia.commands.default.cmdset_unloggedin.UnloggedinCmdSet), help-category: _General_)
+- [**__unloggedin_look_command** [look, l]](evennia.commands.default.unloggedin.CmdUnconnectedLook) (cmdset: [UnloggedinCmdSet](evennia.commands.default.cmdset_unloggedin.UnloggedinCmdSet), help-category: _General_)
- [**about** [version]](evennia.commands.default.system.CmdAbout) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _System_)
- [**access** [hierarchy, groups]](evennia.commands.default.general.CmdAccess) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _General_)
-- [**accounts** [account, listaccounts]](evennia.commands.default.system.CmdAccounts) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _System_)
+- [**accounts** [listaccounts, account]](evennia.commands.default.system.CmdAccounts) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _System_)
- [**addcom** [aliaschan, chanalias]](evennia.commands.default.comms.CmdAddCom) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_)
- [**alias** [setobjalias]](evennia.commands.default.building.CmdSetObjAlias) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_)
- [**allcom**](evennia.commands.default.comms.CmdAllCom) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_)
- [**batchcode** [batchcodes]](evennia.commands.default.batchprocess.CmdBatchCode) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_)
-- [**batchcommands** [batchcmd, batchcommand]](evennia.commands.default.batchprocess.CmdBatchCommands) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_)
+- [**batchcommands** [batchcommand, batchcmd]](evennia.commands.default.batchprocess.CmdBatchCommands) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_)
- [**cboot**](evennia.commands.default.comms.CmdCBoot) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_)
- [**ccreate** [channelcreate]](evennia.commands.default.comms.CmdChannelCreate) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_)
- [**cdesc**](evennia.commands.default.comms.CmdCdesc) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_)
- [**cdestroy**](evennia.commands.default.comms.CmdCdestroy) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_)
- [**cemit** [cmsg]](evennia.commands.default.comms.CmdCemit) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_)
-- [**channels** [all channels, chanlist, clist, comlist, channellist]](evennia.commands.default.comms.CmdChannels) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_)
+- [**channels** [channellist, clist, comlist, all channels, chanlist]](evennia.commands.default.comms.CmdChannels) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_)
- [**charcreate**](evennia.commands.default.account.CmdCharCreate) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_)
- [**chardelete**](evennia.commands.default.account.CmdCharDelete) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_)
- [**clock**](evennia.commands.default.comms.CmdClock) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_)
- [**cmdsets** [listcmsets]](evennia.commands.default.building.CmdListCmdSets) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_)
- [**color**](evennia.commands.default.account.CmdColorTest) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_)
-- [**connect** [con, co, conn]](evennia.commands.default.unloggedin.CmdUnconnectedConnect) (cmdset: [UnloggedinCmdSet](evennia.commands.default.cmdset_unloggedin.UnloggedinCmdSet), help-category: _General_)
+- [**connect** [conn, con, co]](evennia.commands.default.unloggedin.CmdUnconnectedConnect) (cmdset: [UnloggedinCmdSet](evennia.commands.default.cmdset_unloggedin.UnloggedinCmdSet), help-category: _General_)
- [**copy**](evennia.commands.default.building.CmdCopy) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_)
- [**cpattr**](evennia.commands.default.building.CmdCpAttr) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_)
- [**create**](evennia.commands.default.building.CmdCreate) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_)
@@ -52,7 +52,7 @@ with [EvEditor](./EvEditor.md), flipping pages in [EvMore](./EvMore.md) or using
- [**give**](evennia.commands.default.general.CmdGive) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _General_)
- [**grapevine2chan**](evennia.commands.default.comms.CmdGrapevine2Chan) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_)
- [**help** [?]](evennia.commands.default.help.CmdHelp) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_)
-- [**help** [h, ?]](evennia.commands.default.unloggedin.CmdUnconnectedHelp) (cmdset: [UnloggedinCmdSet](evennia.commands.default.cmdset_unloggedin.UnloggedinCmdSet), help-category: _General_)
+- [**help** [?, h]](evennia.commands.default.unloggedin.CmdUnconnectedHelp) (cmdset: [UnloggedinCmdSet](evennia.commands.default.cmdset_unloggedin.UnloggedinCmdSet), help-category: _General_)
- [**home**](evennia.commands.default.general.CmdHome) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _General_)
- [**ic** [puppet]](evennia.commands.default.account.CmdIC) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_)
- [**info**](evennia.commands.default.unloggedin.CmdUnconnectedInfo) (cmdset: [UnloggedinCmdSet](evennia.commands.default.cmdset_unloggedin.UnloggedinCmdSet), help-category: _General_)
@@ -61,29 +61,29 @@ with [EvEditor](./EvEditor.md), flipping pages in [EvMore](./EvMore.md) or using
- [**ircstatus**](evennia.commands.default.comms.CmdIRCStatus) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_)
- [**link**](evennia.commands.default.building.CmdLink) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_)
- [**lock** [locks]](evennia.commands.default.building.CmdLock) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_)
-- [**look** [l, ls]](evennia.commands.default.account.CmdOOCLook) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_)
-- [**look** [l, ls]](evennia.commands.default.general.CmdLook) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _General_)
+- [**look** [ls, l]](evennia.commands.default.account.CmdOOCLook) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_)
+- [**look** [ls, l]](evennia.commands.default.general.CmdLook) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _General_)
- [**mvattr**](evennia.commands.default.building.CmdMvAttr) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_)
- [**name** [rename]](evennia.commands.default.building.CmdName) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_)
-- [**nick** [nicks, nickname]](evennia.commands.default.general.CmdNick) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_)
-- [**objects** [db, stats, listobjects, listobjs]](evennia.commands.default.system.CmdObjects) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _System_)
+- [**nick** [nickname, nicks]](evennia.commands.default.general.CmdNick) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_)
+- [**objects** [stats, db, listobjs, listobjects]](evennia.commands.default.system.CmdObjects) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _System_)
- [**ooc** [unpuppet]](evennia.commands.default.account.CmdOOC) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_)
- [**open**](evennia.commands.default.building.CmdOpen) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_)
- [**option** [options]](evennia.commands.default.account.CmdOption) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_)
- [**page** [tell]](evennia.commands.default.comms.CmdPage) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_)
- [**password**](evennia.commands.default.account.CmdPassword) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_)
-- [**pose** [emote, :]](evennia.commands.default.general.CmdPose) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _General_)
+- [**pose** [:, emote]](evennia.commands.default.general.CmdPose) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _General_)
- [**py** [!]](evennia.commands.default.system.CmdPy) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _System_)
- [**quell** [unquell]](evennia.commands.default.account.CmdQuell) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_)
- [**quit**](evennia.commands.default.account.CmdQuit) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_)
-- [**quit** [q, qu]](evennia.commands.default.unloggedin.CmdUnconnectedQuit) (cmdset: [UnloggedinCmdSet](evennia.commands.default.cmdset_unloggedin.UnloggedinCmdSet), help-category: _General_)
+- [**quit** [qu, q]](evennia.commands.default.unloggedin.CmdUnconnectedQuit) (cmdset: [UnloggedinCmdSet](evennia.commands.default.cmdset_unloggedin.UnloggedinCmdSet), help-category: _General_)
- [**reload** [restart]](evennia.commands.default.system.CmdReload) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _System_)
- [**reset** [reboot]](evennia.commands.default.system.CmdReset) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _System_)
- [**rss2chan**](evennia.commands.default.comms.CmdRSS2Chan) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_)
-- [**say** [', "]](evennia.commands.default.general.CmdSay) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _General_)
+- [**say** [", ']](evennia.commands.default.general.CmdSay) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _General_)
- [**screenreader**](evennia.commands.default.unloggedin.CmdUnconnectedScreenreader) (cmdset: [UnloggedinCmdSet](evennia.commands.default.cmdset_unloggedin.UnloggedinCmdSet), help-category: _General_)
- [**script** [addscript]](evennia.commands.default.building.CmdScript) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_)
-- [**scripts** [globalscript, listscripts]](evennia.commands.default.system.CmdScripts) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _System_)
+- [**scripts** [listscripts, globalscript]](evennia.commands.default.system.CmdScripts) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _System_)
- [**server** [serverload, serverprocess]](evennia.commands.default.system.CmdServerLoad) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _System_)
- [**service** [services]](evennia.commands.default.system.CmdService) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _System_)
- [**sessions**](evennia.commands.default.account.CmdSessions) (cmdset: [SessionCmdSet](evennia.commands.default.cmdset_session.SessionCmdSet), help-category: _General_)
@@ -99,7 +99,7 @@ with [EvEditor](./EvEditor.md), flipping pages in [EvMore](./EvMore.md) or using
- [**tickers**](evennia.commands.default.system.CmdTickers) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _System_)
- [**time** [uptime]](evennia.commands.default.system.CmdTime) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _System_)
- [**tunnel** [tun]](evennia.commands.default.building.CmdTunnel) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_)
-- [**typeclass** [swap, parent, update, type]](evennia.commands.default.building.CmdTypeclass) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_)
+- [**typeclass** [parent, update, type, swap]](evennia.commands.default.building.CmdTypeclass) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_)
- [**unlink**](evennia.commands.default.building.CmdUnLink) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_)
- [**whisper**](evennia.commands.default.general.CmdWhisper) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _General_)
- [**who** [doing]](evennia.commands.default.account.CmdWho) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_)
diff --git a/docs/0.9.5/api/evennia.commands.default.account.html b/docs/0.9.5/api/evennia.commands.default.account.html
index b0883f258d..d998c2f3e5 100644
--- a/docs/0.9.5/api/evennia.commands.default.account.html
+++ b/docs/0.9.5/api/evennia.commands.default.account.html
@@ -72,7 +72,7 @@ method. Otherwise all text will be returned to all connected sessions.
-
-
aliases = ['l', 'ls']
+aliases = ['ls', 'l']
diff --git a/docs/0.9.5/api/evennia.commands.default.admin.html b/docs/0.9.5/api/evennia.commands.default.admin.html
index 1fdb15eef8..fc745748e6 100644
--- a/docs/0.9.5/api/evennia.commands.default.admin.html
+++ b/docs/0.9.5/api/evennia.commands.default.admin.html
@@ -241,7 +241,7 @@ to accounts respectively.
-
-
aliases = ['pemit', 'remit']
+aliases = ['remit', 'pemit']
diff --git a/docs/0.9.5/api/evennia.commands.default.batchprocess.html b/docs/0.9.5/api/evennia.commands.default.batchprocess.html
index 161ff09962..eddc3b8e06 100644
--- a/docs/0.9.5/api/evennia.commands.default.batchprocess.html
+++ b/docs/0.9.5/api/evennia.commands.default.batchprocess.html
@@ -77,7 +77,7 @@ skipping, reloading etc.
-
-
aliases = ['batchcmd', 'batchcommand']
+aliases = ['batchcommand', 'batchcmd']
diff --git a/docs/0.9.5/api/evennia.commands.default.building.html b/docs/0.9.5/api/evennia.commands.default.building.html
index 4dbae4ecca..2e26408a38 100644
--- a/docs/0.9.5/api/evennia.commands.default.building.html
+++ b/docs/0.9.5/api/evennia.commands.default.building.html
@@ -1186,7 +1186,7 @@ server settings.
-
-
aliases = ['swap', 'parent', 'update', 'type']
+aliases = ['parent', 'update', 'type', 'swap']
diff --git a/docs/0.9.5/api/evennia.commands.default.comms.html b/docs/0.9.5/api/evennia.commands.default.comms.html
index 64e5d024eb..3db818f24d 100644
--- a/docs/0.9.5/api/evennia.commands.default.comms.html
+++ b/docs/0.9.5/api/evennia.commands.default.comms.html
@@ -221,7 +221,7 @@ Use addcom/delcom to join and leave channels
-
-
aliases = ['all channels', 'chanlist', 'clist', 'comlist', 'channellist']
+aliases = ['channellist', 'clist', 'comlist', 'all channels', 'chanlist']
diff --git a/docs/0.9.5/api/evennia.commands.default.general.html b/docs/0.9.5/api/evennia.commands.default.general.html
index 2860fe060f..a6bc6a5d02 100644
--- a/docs/0.9.5/api/evennia.commands.default.general.html
+++ b/docs/0.9.5/api/evennia.commands.default.general.html
@@ -109,7 +109,7 @@ look *<account&g
-
-
aliases = ['l', 'ls']
+aliases = ['ls', 'l']
@@ -197,7 +197,7 @@ for everyone to use, you need build privileges and the alias command.
-
-
aliases = ['nicks', 'nickname']
+aliases = ['nickname', 'nicks']
@@ -497,7 +497,7 @@ placing it in their inventory.
-
-
aliases = ["'", '"']
+aliases = ['"', "'"]
@@ -593,7 +593,7 @@ automatically begin with your name.
-
-
aliases = ['emote', ':']
+aliases = [':', 'emote']
diff --git a/docs/0.9.5/api/evennia.commands.default.system.html b/docs/0.9.5/api/evennia.commands.default.system.html
index 4675190e9f..d9ab832005 100644
--- a/docs/0.9.5/api/evennia.commands.default.system.html
+++ b/docs/0.9.5/api/evennia.commands.default.system.html
@@ -296,7 +296,7 @@ required since whole classes of scripts often have the same name.
-
-
aliases = ['globalscript', 'listscripts']
+aliases = ['listscripts', 'globalscript']
@@ -351,7 +351,7 @@ given, <nr> defaults to 10.
-
-
aliases = ['db', 'stats', 'listobjects', 'listobjs']
+aliases = ['stats', 'db', 'listobjs', 'listobjects']
@@ -611,7 +611,7 @@ If not given, <nr> defaults to 10.
-
-
aliases = ['account', 'listaccounts']
+aliases = ['listaccounts', 'account']
diff --git a/docs/0.9.5/api/evennia.commands.default.unloggedin.html b/docs/0.9.5/api/evennia.commands.default.unloggedin.html
index 6fb73d54bb..fbba4e2ebd 100644
--- a/docs/0.9.5/api/evennia.commands.default.unloggedin.html
+++ b/docs/0.9.5/api/evennia.commands.default.unloggedin.html
@@ -61,7 +61,7 @@ connect “account name” “pass word”
-
-
aliases = ['con', 'co', 'conn']
+aliases = ['conn', 'con', 'co']
@@ -165,7 +165,7 @@ version is a bit more complicated.
-
-
aliases = ['q', 'qu']
+aliases = ['qu', 'q']
@@ -210,7 +210,7 @@ All it does is display the connect screen.
-
-
aliases = ['l', 'look']
+aliases = ['look', 'l']
@@ -254,7 +254,7 @@ for simplicity. It shows a pane of info.
-
-
aliases = ['h', '?']
+aliases = ['?', 'h']
diff --git a/docs/0.9.5/api/evennia.contrib.chargen.html b/docs/0.9.5/api/evennia.contrib.chargen.html
index d12901c845..e7f84087a5 100644
--- a/docs/0.9.5/api/evennia.contrib.chargen.html
+++ b/docs/0.9.5/api/evennia.contrib.chargen.html
@@ -79,7 +79,7 @@ at them with this command.
-
-
aliases = ['l', 'ls']
+aliases = ['ls', 'l']
diff --git a/docs/0.9.5/api/evennia.contrib.email_login.html b/docs/0.9.5/api/evennia.contrib.email_login.html
index f315d3c8c2..2f46099bcd 100644
--- a/docs/0.9.5/api/evennia.contrib.email_login.html
+++ b/docs/0.9.5/api/evennia.contrib.email_login.html
@@ -76,7 +76,7 @@ the module given by settings.CONNECTION_SCREEN_MODULE.
-
-
aliases = ['con', 'co', 'conn']
+aliases = ['conn', 'con', 'co']
@@ -173,7 +173,7 @@ version is a bit more complicated.
-
-
aliases = ['q', 'qu']
+aliases = ['qu', 'q']
@@ -213,7 +213,7 @@ All it does is display the connect screen.
-
-
aliases = ['l', 'look']
+aliases = ['look', 'l']
@@ -252,7 +252,7 @@ for simplicity. It shows a pane of info.
-
-
aliases = ['h', '?']
+aliases = ['?', 'h']
diff --git a/docs/0.9.5/api/evennia.contrib.extended_room.html b/docs/0.9.5/api/evennia.contrib.extended_room.html
index 82cd005b3a..06d3ab50ad 100644
--- a/docs/0.9.5/api/evennia.contrib.extended_room.html
+++ b/docs/0.9.5/api/evennia.contrib.extended_room.html
@@ -278,7 +278,7 @@ look *<account&g
-
-
aliases = ['l', 'ls']
+aliases = ['ls', 'l']
diff --git a/docs/0.9.5/api/evennia.contrib.ingame_python.commands.html b/docs/0.9.5/api/evennia.contrib.ingame_python.commands.html
index 43cb95ffd7..0af38e6f08 100644
--- a/docs/0.9.5/api/evennia.contrib.ingame_python.commands.html
+++ b/docs/0.9.5/api/evennia.contrib.ingame_python.commands.html
@@ -54,7 +54,7 @@
-
-
aliases = ['@calls', '@callback', '@callbacks']
+aliases = ['@callback', '@callbacks', '@calls']
diff --git a/docs/0.9.5/api/evennia.contrib.rpsystem.html b/docs/0.9.5/api/evennia.contrib.rpsystem.html
index 80729fb150..9855c49ce1 100644
--- a/docs/0.9.5/api/evennia.contrib.rpsystem.html
+++ b/docs/0.9.5/api/evennia.contrib.rpsystem.html
@@ -625,7 +625,7 @@ a different language.
-
-
aliases = ["'", '"']
+aliases = ['"', "'"]
@@ -775,7 +775,7 @@ Using the command without arguments will list all current recogs.
-
-
aliases = ['recognize', 'forget']
+aliases = ['forget', 'recognize']
diff --git a/docs/0.9.5/api/evennia.contrib.tutorial_examples.cmdset_red_button.html b/docs/0.9.5/api/evennia.contrib.tutorial_examples.cmdset_red_button.html
index cb4e0aa9aa..4018dd2e27 100644
--- a/docs/0.9.5/api/evennia.contrib.tutorial_examples.cmdset_red_button.html
+++ b/docs/0.9.5/api/evennia.contrib.tutorial_examples.cmdset_red_button.html
@@ -107,7 +107,7 @@ push the lid of the button away.
-
-
aliases = ['press', 'push', 'press button']
+aliases = ['press button', 'press', 'push']
@@ -198,7 +198,7 @@ of causing the lamp to break.
-
-
aliases = ['open', 'open button']
+aliases = ['open button', 'open']
@@ -284,7 +284,7 @@ of causing the lamp to break.
-
-
aliases = ['ex', 'feel', 'l', 'get', 'examine', 'listen']
+aliases = ['examine', 'listen', 'l', 'ex', 'get', 'feel']
diff --git a/docs/0.9.5/api/evennia.contrib.tutorial_world.objects.html b/docs/0.9.5/api/evennia.contrib.tutorial_world.objects.html
index dc75be20ee..116a3d5111 100644
--- a/docs/0.9.5/api/evennia.contrib.tutorial_world.objects.html
+++ b/docs/0.9.5/api/evennia.contrib.tutorial_world.objects.html
@@ -527,7 +527,7 @@ yellow/green - horizontal roots
-
-
aliases = ['button', 'push button', 'press button']
+aliases = ['press button', 'push button', 'button']
@@ -692,7 +692,7 @@ parry - forgoes your attack but will make you harder to hit on next
-
-
aliases = ['slash', 'chop', 'pierce', 'parry', 'hit', 'stab', 'bash', 'defend', 'fight', 'thrust', 'kill']
+aliases = ['stab', 'kill', 'hit', 'thrust', 'chop', 'defend', 'parry', 'pierce', 'bash', 'fight', 'slash']
diff --git a/docs/0.9.5/api/evennia.contrib.tutorial_world.rooms.html b/docs/0.9.5/api/evennia.contrib.tutorial_world.rooms.html
index a077a62372..9c4530f346 100644
--- a/docs/0.9.5/api/evennia.contrib.tutorial_world.rooms.html
+++ b/docs/0.9.5/api/evennia.contrib.tutorial_world.rooms.html
@@ -176,7 +176,7 @@ code except for adding in the details.
-
-
aliases = ['l', 'ls']
+aliases = ['ls', 'l']
@@ -675,7 +675,7 @@ if they fall off the bridge.
-
-
aliases = ['h', '?']
+aliases = ['?', 'h']
@@ -822,7 +822,7 @@ to find something.
-
-
aliases = ['feel', 'l', 'fiddle', 'feel around', 'search']
+aliases = ['fiddle', 'l', 'feel around', 'search', 'feel']
diff --git a/docs/0.9.5/api/evennia.utils.eveditor.html b/docs/0.9.5/api/evennia.utils.eveditor.html
index ffcdb0b382..71f1b9ec76 100644
--- a/docs/0.9.5/api/evennia.utils.eveditor.html
+++ b/docs/0.9.5/api/evennia.utils.eveditor.html
@@ -267,7 +267,7 @@ indentation.
-
-
aliases = [':uu', ':<', ':!', ':::', ':h', ':i', ':', ':>', ':fd', ':dw', ':=', ':UU', ':dd', ':I', ':wq', ':p', '::', ':DD', ':x', ':S', ':s', ':fi', ':q', ':y', ':echo', ':r', ':A', ':j', ':u', ':q!', ':w', ':f']
+aliases = [':s', ':y', ':q!', ':f', ':', ':wq', ':h', ':!', ':p', ':I', ':>', ':echo', ':dw', ':S', ':w', ':uu', ':x', ':dd', ':UU', ':=', ':r', '::', ':<', ':u', ':q', ':DD', ':::', ':A', ':i', ':fi', ':fd', ':j']
diff --git a/docs/0.9.5/api/evennia.utils.evmore.html b/docs/0.9.5/api/evennia.utils.evmore.html
index a70e699205..fcb9d4920f 100644
--- a/docs/0.9.5/api/evennia.utils.evmore.html
+++ b/docs/0.9.5/api/evennia.utils.evmore.html
@@ -77,7 +77,7 @@ the caller.msg() construct every time the page is updated.
-
-
aliases = ['t', 'q', 'n', 'abort', 'a', 'quit', 'top', 'e', 'end', 'next', 'b', 'back']
+aliases = ['back', 'a', 'next', 'abort', 'quit', 'b', 'e', 't', 'end', 'n', 'top', 'q']
diff --git a/docs/1.0-dev/.buildinfo b/docs/1.0-dev/.buildinfo
index ffc7b5b122..a737aa96cd 100644
--- a/docs/1.0-dev/.buildinfo
+++ b/docs/1.0-dev/.buildinfo
@@ -1,4 +1,4 @@
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
-config: 3b35cb9451c4a577a2ebb78dc0bd78ad
+config: 4172de01fa675de362f3dc4707266eb8
tags: 645f666f9bcd5a90fca523b33c5a78b7
diff --git a/docs/1.0-dev/Howtos/NPC-shop-Tutorial.html b/docs/1.0-dev/Howtos/NPC-shop-Tutorial.html
index 7bf6db5445..0d65eb5f20 100644
--- a/docs/1.0-dev/Howtos/NPC-shop-Tutorial.html
+++ b/docs/1.0-dev/Howtos/NPC-shop-Tutorial.html
@@ -167,7 +167,7 @@ circumstances. Let’s create it now.
if wealth >= value:
rtext = f"You pay {value} gold and purchase {ware.key}!"
caller.db.gold -= value
- ware.move_to(caller, quiet=True)
+ ware.move_to(caller, quiet=True, move_type="buy")
else:
rtext = f"You cannot afford {value} gold for {ware.key}!"
caller.msg(rtext)
diff --git a/docs/1.0-dev/Howtos/Tutorial-Vehicles.html b/docs/1.0-dev/Howtos/Tutorial-Vehicles.html
index 4df77d4d22..39e1dba5e5 100644
--- a/docs/1.0-dev/Howtos/Tutorial-Vehicles.html
+++ b/docs/1.0-dev/Howtos/Tutorial-Vehicles.html
@@ -123,7 +123,7 @@ available to whomever is either inside it or in the same room as the train.
def func(self):
train = self.obj
self.caller.msg("You board the train.")
- self.caller.move_to(train)
+ self.caller.move_to(train, move_type="board")
class CmdLeaveTrain(Command):
@@ -144,7 +144,7 @@ available to whomever is either inside it or in the same room as the train.
def func(self):
train = self.obj
parent = train.location
- self.caller.move_to(parent)
+ self.caller.move_to(parent, move_type="disembark")
class CmdSetTrain(CmdSet):
diff --git a/docs/1.0-dev/_modules/evennia/commands/default/building.html b/docs/1.0-dev/_modules/evennia/commands/default/building.html
index 06d798fcfd..b6f04d2797 100644
--- a/docs/1.0-dev/_modules/evennia/commands/default/building.html
+++ b/docs/1.0-dev/_modules/evennia/commands/default/building.html
@@ -645,7 +645,7 @@
if "drop" in self.switches:
if caller.location:
obj.home = caller.location
- obj.move_to(caller.location, quiet=True)
+ obj.move_to(caller.location, quiet=True, move_type="drop")
if string:
caller.msg(string)
@@ -1035,7 +1035,7 @@
)
caller.msg("%s%s%s" % (room_string, exit_to_string, exit_back_string))
if new_room and "teleport" in self.switches:
- caller.move_to(new_room)
+ caller.move_to(new_room, move_type="teleport")
[docs]class CmdTunnel(COMMAND_DEFAULT_CLASS):
@@ -3751,6 +3751,7 @@
quiet="quiet" in self.switches,
emit_to_obj=caller,
use_destination="intoexit" not in self.switches,
+
move_type="teleport"
):
if obj_to_teleport == caller:
diff --git a/docs/1.0-dev/_modules/evennia/commands/default/general.html b/docs/1.0-dev/_modules/evennia/commands/default/general.html
index 4800ed2a40..366ff8630e 100644
--- a/docs/1.0-dev/_modules/evennia/commands/default/general.html
+++ b/docs/1.0-dev/_modules/evennia/commands/default/general.html
@@ -91,7 +91,7 @@
caller.msg("You are already home!")
else:
caller.msg("There's no place like home ...")
-
caller.move_to(home)
+ caller.move_to(home, move_type="teleport")
[docs]class CmdLook(COMMAND_DEFAULT_CLASS):
@@ -476,7 +476,7 @@
if not obj.at_pre_get(caller):
return
-
success = obj.move_to(caller, quiet=True)
+
success = obj.move_to(caller, quiet=True, move_type="get")
if not success:
caller.msg("This can't be picked up.")
else:
@@ -526,7 +526,7 @@
if not obj.at_pre_drop(caller):
return
-
success = obj.move_to(caller.location, quiet=True)
+
success = obj.move_to(caller.location, quiet=True, move_type="drop")
if not success:
caller.msg("This couldn't be dropped.")
else:
@@ -580,7 +580,7 @@
return
# give object
-
success = to_give.move_to(target, quiet=True)
+
success = to_give.move_to(target, quiet=True, move_type="get")
if not success:
caller.msg("This could not be given.")
else:
diff --git a/docs/1.0-dev/_modules/evennia/contrib/full_systems/evscaperoom/commands.html b/docs/1.0-dev/_modules/evennia/contrib/full_systems/evscaperoom/commands.html
index ecfd86dd2b..835c371d8f 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/full_systems/evscaperoom/commands.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/full_systems/evscaperoom/commands.html
@@ -278,7 +278,7 @@
# manually call move hooks
self.room.msg_room(self.caller, f"|r{self.caller.key} gave up and was whisked away!|n")
self.room.at_object_leave(self.caller, self.caller.home)
-
self.caller.move_to(self.caller.home, quiet=True, move_hooks=False)
+
self.caller.move_to(self.caller.home, quiet=True, move_hooks=False, move_type="teleport")
# back to menu
run_evscaperoom_menu(self.caller)
diff --git a/docs/1.0-dev/_modules/evennia/contrib/full_systems/evscaperoom/room.html b/docs/1.0-dev/_modules/evennia/contrib/full_systems/evscaperoom/room.html
index 00687f7426..332f506379 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/full_systems/evscaperoom/room.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/full_systems/evscaperoom/room.html
@@ -227,7 +227,7 @@
# Evennia hooks
-
[docs] def at_object_receive(self, moved_obj, source_location):
+
[docs] def at_object_receive(self, moved_obj, source_location, move_type="move", **kwargs):
"""
Called when an object arrives in the room. This can be used to
sum up the situation, set tags etc.
@@ -237,7 +237,7 @@
self.log(f"JOIN: {moved_obj} joined room")
self.state.character_enters(moved_obj)
-
[docs] def at_object_leave(self, moved_obj, target_location, **kwargs):
+
[docs] def at_object_leave(self, moved_obj, target_location, move_type="move", **kwargs):
"""
Called when an object leaves the room; if this is a Character we need
to clean them up and move them to the menu state.
diff --git a/docs/1.0-dev/_modules/evennia/contrib/game_systems/clothing/clothing.html b/docs/1.0-dev/_modules/evennia/contrib/game_systems/clothing/clothing.html
index 8cee9e6c3e..c708a3bf3d 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/game_systems/clothing/clothing.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/game_systems/clothing/clothing.html
@@ -653,7 +653,7 @@
if obj.db.worn:
obj.remove(caller, quiet=True)
-
obj.move_to(caller.location, quiet=True)
+
obj.move_to(caller.location, quiet=True, move_type="drop")
caller.msg("You drop %s." % (obj.name,))
caller.location.msg_contents("%s drops %s." % (caller.name, obj.name), exclude=caller)
# Call the object script's at_drop() method.
@@ -706,10 +706,10 @@
# Remove clothes if they're given.
if to_give.db.worn:
to_give.remove(caller)
-
to_give.move_to(caller.location, quiet=True)
+
to_give.move_to(caller.location, quiet=True, move_type="remove")
# give object
caller.msg("You give %s to %s." % (to_give.key, target.key))
-
to_give.move_to(target, quiet=True)
+
to_give.move_to(target, quiet=True, move_type="give")
target.msg("%s gives you %s." % (caller.key, to_give.key))
# Call the object script's at_give() method.
to_give.at_give(caller, target)
diff --git a/docs/1.0-dev/_modules/evennia/contrib/grid/slow_exit/slow_exit.html b/docs/1.0-dev/_modules/evennia/contrib/grid/slow_exit/slow_exit.html
index ca1018911b..8d2f84fce1 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/grid/slow_exit/slow_exit.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/grid/slow_exit/slow_exit.html
@@ -124,7 +124,7 @@
def move_callback():
"This callback will be called by utils.delay after move_delay seconds."
source_location = traversing_object.location
-
if traversing_object.move_to(target_location):
+
if traversing_object.move_to(target_location, move_type="traverse"):
self.at_post_traverse(traversing_object, source_location)
else:
if self.db.err_traverse:
diff --git a/docs/1.0-dev/_modules/evennia/contrib/grid/wilderness/wilderness.html b/docs/1.0-dev/_modules/evennia/contrib/grid/wilderness/wilderness.html
index b7dba3af9d..525374910d 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/grid/wilderness/wilderness.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/grid/wilderness/wilderness.html
@@ -580,7 +580,7 @@
# This object wasn't in the wilderness yet. Let's add it.
itemcoords[moved_obj] = self.coordinates
-
[docs] def at_object_leave(self, moved_obj, target_location):
+
[docs] def at_object_leave(self, moved_obj, target_location, move_type="move", **kwargs):
"""
Called just before an object leaves from inside this object. This is a
default Evennia hook.
diff --git a/docs/1.0-dev/_modules/evennia/contrib/rpg/rpsystem/rpsystem.html b/docs/1.0-dev/_modules/evennia/contrib/rpg/rpsystem/rpsystem.html
index 6955fdbfb6..352b245dad 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/rpg/rpsystem/rpsystem.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/rpg/rpsystem/rpsystem.html
@@ -244,7 +244,7 @@
_RE_REF = re.compile(r"\{+\#([0-9]+[\^\~tv]{0,1})\}+")
# This regex is used to quickly reference one self in an emote.
-
_RE_SELF_REF = re.compile(r"/me|@", _RE_FLAGS)
+
_RE_SELF_REF = re.compile(r"(/me|@)(?=\W+)", _RE_FLAGS)
# regex for non-alphanumberic end of a string
_RE_CHAREND = re.compile(r"\W+$", _RE_FLAGS)
@@ -277,6 +277,26 @@
[docs]class LanguageError(Exception):
pass
+
def _get_case_ref(string):
+
"""
+
Helper function which parses capitalization and
+
returns the appropriate case-ref character for emotes.
+
"""
+
# default to retaining the original case
+
case = "~"
+
# internal flags for the case used for the original /query
+
# - t for titled input (like /Name)
+
# - ^ for all upercase input (like /NAME)
+
# - v for lower-case input (like /name)
+
# - ~ for mixed case input (like /nAmE)
+
if string.istitle():
+
case = "t"
+
elif string.isupper():
+
case = "^"
+
elif string.islower():
+
case = "v"
+
+
return case
# emoting mechanisms
[docs]def parse_language(speaker, emote):
@@ -381,7 +401,7 @@
"""
# build a list of candidates with all possible referrable names
# include 'me' keyword for self-ref
-
candidate_map = [(sender, "me")]
+
candidate_map = []
for obj in candidates:
# check if sender has any recogs for obj and add
if hasattr(sender, "recog"):
@@ -407,6 +427,15 @@
errors = []
obj = None
nmatches = 0
+
# first, find and replace any self-refs
+
for self_match in list(_RE_SELF_REF.finditer(string)):
+
matched = self_match.group()
+
case = _get_case_ref(matched.lstrip(_PREFIX)) if case_sensitive else ""
+
key = f"#{sender.id}{case}"
+
# replaced with ref
+
string = _RE_SELF_REF.sub(f"{{{key}}}", string, count=1)
+
mapping[key] = sender
+
for marker_match in reversed(list(_RE_OBJ_REF_START.finditer(string))):
# we scan backwards so we can replace in-situ without messing
# up later occurrences. Given a marker match, query from
@@ -498,24 +527,9 @@
errors.append(_EMOTE_NOMATCH_ERROR.format(ref=marker_match.group()))
elif nmatches == 1:
# a unique match - parse into intermediary representation
-
case = "~" # retain original case of sdesc
-
if case_sensitive:
-
# case sensitive mode
-
# internal flags for the case used for the original /query
-
# - t for titled input (like /Name)
-
# - ^ for all upercase input (like /NAME)
-
# - v for lower-case input (like /name)
-
# - ~ for mixed case input (like /nAmE)
-
matchtext = marker_match.group().lstrip(_PREFIX)
-
if matchtext.istitle():
-
case = "t"
-
elif matchtext.isupper():
-
case = "^"
-
elif matchtext.islower():
-
case = "v"
-
-
key = f"#{obj.id}{case}"
+
case = _get_case_ref(marker_match.group()) if case_sensitive else ""
# recombine emote with matched text replaced by ref
+
key = f"#{obj.id}{case}"
string = f"{head}{{{key}}}{tail}"
mapping[key] = obj
diff --git a/docs/1.0-dev/_modules/evennia/contrib/rpg/rpsystem/tests.html b/docs/1.0-dev/_modules/evennia/contrib/rpg/rpsystem/tests.html
index bbc46e7f77..08aa8564e2 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/rpg/rpsystem/tests.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/rpg/rpsystem/tests.html
@@ -139,6 +139,7 @@
recog10 = "Mr Sender"
emote = 'With a flair, /me looks at /first and /colliding sdesc-guy. She says "This is a test."'
case_emote = "/Me looks at /first. Then, /me looks at /FIRST, /First and /Colliding twice."
+
poss_emote = "/Me frowns at /first for trying to steal /me's test."
[docs]class TestRPSystem(BaseEvenniaTest):
@@ -182,18 +183,21 @@
),
)
-
[docs] def parse_sdescs_and_recogs(self):
+
[docs] def test_parse_sdescs_and_recogs(self):
speaker = self.speaker
speaker.sdesc.add(sdesc0)
self.receiver1.sdesc.add(sdesc1)
self.receiver2.sdesc.add(sdesc2)
+
id0 = f"#{speaker.id}"
+
id1 = f"#{self.receiver1.id}"
+
id2 = f"#{self.receiver2.id}"
candidates = (self.receiver1, self.receiver2)
result = (
-
'With a flair, {#9} looks at {#10} and {#11}. She says "This is a test."',
+
'With a flair, {'+id0+'} looks at {'+id1+'} and {'+id2+'}. She says "This is a test."',
{
-
"#11": "Another nice colliding sdesc-guy for tests",
-
"#10": "The first receiver of emotes.",
-
"#9": "A nice sender of emotes",
+
id2: self.receiver2,
+
id1: self.receiver1,
+
id0: speaker,
},
)
self.assertEqual(
@@ -206,6 +210,27 @@
result,
)
+
[docs] def test_possessive_selfref(self):
+
speaker = self.speaker
+
speaker.sdesc.add(sdesc0)
+
self.receiver1.sdesc.add(sdesc1)
+
self.receiver2.sdesc.add(sdesc2)
+
id0 = f"#{speaker.id}"
+
id1 = f"#{self.receiver1.id}"
+
id2 = f"#{self.receiver2.id}"
+
candidates = (self.receiver1, self.receiver2)
+
result = (
+
"{"+id0+"} frowns at {"+id1+"} for trying to steal {"+id0+"}'s test.",
+
{
+
id1: self.receiver1,
+
id0: speaker,
+
},
+
)
+
self.assertEqual(
+
rpsystem.parse_sdescs_and_recogs(speaker, candidates, poss_emote, case_sensitive=False),
+
result,
+
)
+
[docs] def test_get_sdesc(self):
looker = self.speaker # Sender
target = self.receiver1 # Receiver1
diff --git a/docs/1.0-dev/_modules/evennia/contrib/tutorials/tutorial_world/rooms.html b/docs/1.0-dev/_modules/evennia/contrib/tutorials/tutorial_world/rooms.html
index dc87906b8a..416d134365 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/tutorials/tutorial_world/rooms.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/tutorials/tutorial_world/rooms.html
@@ -267,7 +267,7 @@
)
return
-
self.caller.move_to(outro_room)
+
self.caller.move_to(outro_room, move_type="teleport")
[docs]class TutorialRoomCmdSet(CmdSet):
@@ -301,7 +301,7 @@
)
self.cmdset.add_default(TutorialRoomCmdSet)
-
[docs] def at_object_receive(self, new_arrival, source_location):
+
[docs] def at_object_receive(self, new_arrival, source_location, move_type="move", **kwargs):
"""
When an object enter a tutorial room we tell other objects in
the room about it by trying to call a hook on them. The Mob object
@@ -493,7 +493,7 @@
"the account."
)
-
[docs] def at_object_receive(self, character, source_location):
+
[docs] def at_object_receive(self, character, source_location, move_type="move", **kwargs):
"""
Assign properties on characters
"""
@@ -565,7 +565,7 @@
# Move to the east room.
eexit = search_object(self.obj.db.east_exit)
if eexit:
-
caller.move_to(eexit[0])
+
caller.move_to(eexit[0], move_type="traverse")
else:
caller.msg("No east exit was found for this room. Contact an admin.")
return
@@ -612,7 +612,7 @@
# Move to the west room.
wexit = search_object(self.obj.db.west_exit)
if wexit:
-
caller.move_to(wexit[0])
+
caller.move_to(wexit[0], move_type="traverse")
else:
caller.msg("No west exit was found for this room. Contact an admin.")
return
@@ -700,7 +700,7 @@
fall_exit = search_object(self.obj.db.fall_exit)
if fall_exit:
self.caller.msg("|r%s|n" % FALL_MESSAGE)
-
self.caller.move_to(fall_exit[0], quiet=True)
+
self.caller.move_to(fall_exit[0], quiet=True, move_type="fall")
# inform others on the bridge
self.obj.msg_contents(
"A plank gives way under %s's feet and "
@@ -812,7 +812,7 @@
# send a message most of the time
self.msg_contents("|w%s|n" % random.choice(BRIDGE_WEATHER))
-
[docs] def at_object_receive(self, character, source_location):
+
[docs] def at_object_receive(self, character, source_location, move_type="move", **kwargs):
"""
This hook is called by the engine whenever the player is moved
into this room.
@@ -838,7 +838,7 @@
character.db.tutorial_bridge_position = 0
character.execute_cmd("look")
-
[docs] def at_object_leave(self, character, target_location):
+
[docs] def at_object_leave(self, character, target_location, move_type="move", **kwargs):
"""
This is triggered when the player leaves the bridge room.
"""
@@ -1080,7 +1080,7 @@
# put players in darkness
char.msg("The room is completely dark.")
-
[docs] def at_object_receive(self, obj, source_location):
+
[docs] def at_object_receive(self, obj, source_location, move_type="move", **kwargs):
"""
Called when an object enters the room.
"""
@@ -1090,7 +1090,7 @@
# in case the new guy carries light with them
self.check_light_state()
-
[docs] def at_object_leave(self, obj, target_location):
+
[docs] def at_object_leave(self, obj, target_location, move_type="move", **kwargs):
"""
In case people leave with the light, we make sure to clear the
DarkCmdSet if necessary. This also works if they are
@@ -1145,7 +1145,7 @@
self.db.failure_teleport_msg = "You fail!"
self.db.failure_teleport_to = "dark cell"
-
[docs] def at_object_receive(self, character, source_location):
+
[docs] def at_object_receive(self, character, source_location, move_type="move", **kwargs):
"""
This hook is called by the engine whenever the player is moved into
this room.
@@ -1172,7 +1172,7 @@
else:
character.msg(self.db.failure_teleport_msg)
# teleport quietly to the new place
-
character.move_to(results[0], quiet=True, move_hooks=False)
+
character.move_to(results[0], quiet=True, move_hooks=False, move_type="teleport")
# we have to call this manually since we turn off move_hooks
# - this is necessary to make the target dark room aware of an
# already carried light.
@@ -1209,7 +1209,7 @@
"character."
)
-
[docs] def at_object_receive(self, character, source_location):
+
[docs] def at_object_receive(self, character, source_location, move_type="move", **kwargs):
"""
Do cleanup.
"""
@@ -1225,7 +1225,7 @@
obj.delete()
character.tags.clear(category="tutorial_world")
-
[docs] def at_object_leave(self, character, destination):
+
[docs] def at_object_leave(self, character, destination, move_type="move", **kwargs):
if character.account:
character.account.execute_cmd("unquell")
diff --git a/docs/1.0-dev/_modules/evennia/contrib/tutorials/tutorial_world/tests.html b/docs/1.0-dev/_modules/evennia/contrib/tutorials/tutorial_world/tests.html
index 85227ca168..c050112472 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/tutorials/tutorial_world/tests.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/tutorials/tutorial_world/tests.html
@@ -202,7 +202,7 @@
[docs] def test_bridgeroom(self):
room = create_object(tutrooms.BridgeRoom, key="bridgeroom")
room.update_weather()
-
self.char1.move_to(room)
+
self.char1.move_to(room, move_type="teleport")
self.call(
tutrooms.CmdBridgeHelp(),
"",
@@ -223,7 +223,7 @@
[docs] def test_darkroom(self):
room = create_object(tutrooms.DarkRoom, key="darkroom")
-
self.char1.move_to(room)
+
self.char1.move_to(room, move_type="teleport")
self.call(tutrooms.CmdDarkHelp(), "", "Can't help you until")
[docs] def test_teleportroom(self):
diff --git a/docs/1.0-dev/_modules/evennia/objects/objects.html b/docs/1.0-dev/_modules/evennia/objects/objects.html
index eedba77b53..5aaa06475d 100644
--- a/docs/1.0-dev/_modules/evennia/objects/objects.html
+++ b/docs/1.0-dev/_modules/evennia/objects/objects.html
@@ -878,6 +878,7 @@
use_destination=True,
to_none=False,
move_hooks=True,
+
move_type="move",
**kwargs,
):
"""
@@ -899,6 +900,11 @@
move_hooks (bool): If False, turn off the calling of move-related hooks
(at_pre/post_move etc) with quiet=True, this is as quiet a move
as can be done.
+
move_type (str): The "kind of move" being performed, such as "teleport", "traverse",
+
"get", "give", or "drop". The value can be arbitrary. By default, it only affects
+
the text message generated by announce_move_to and announce_move_from by defining
+
their {"type": move_type} for outgoing text. This can be used for altering
+
messages and/or overloaded hook behaviors.
Keyword Args:
Passed on to announce_move_to and announce_move_from hooks.
@@ -948,7 +954,7 @@
# Before the move, call eventual pre-commands.
if move_hooks:
try:
-
if not self.at_pre_move(destination, **kwargs):
+
if not self.at_pre_move(destination, move_type=move_type, **kwargs):
return False
except Exception as err:
logerr(errtxt.format(err="at_pre_move()"), err)
@@ -960,7 +966,7 @@
# Call hook on source location
if move_hooks and source_location:
try:
-
source_location.at_object_leave(self, destination, **kwargs)
+
source_location.at_object_leave(self, destination, move_type=move_type, **kwargs)
except Exception as err:
logerr(errtxt.format(err="at_object_leave()"), err)
return False
@@ -968,7 +974,7 @@
if not quiet:
# tell the old room we are leaving
try:
-
self.announce_move_from(destination, **kwargs)
+
self.announce_move_from(destination, move_type=move_type, **kwargs)
except Exception as err:
logerr(errtxt.format(err="announce_move_from()"), err)
return False
@@ -983,7 +989,7 @@
if not quiet:
# Tell the new room we are there.
try:
-
self.announce_move_to(source_location, **kwargs)
+
self.announce_move_to(source_location, move_type=move_type, **kwargs)
except Exception as err:
logerr(errtxt.format(err="announce_move_to()"), err)
return False
@@ -992,7 +998,7 @@
# Perform eventual extra commands on the receiving location
# (the object has already arrived at this point)
try:
-
destination.at_object_receive(self, source_location, **kwargs)
+
destination.at_object_receive(self, source_location, move_type=move_type, **kwargs)
except Exception as err:
logerr(errtxt.format(err="at_object_receive()"), err)
return False
@@ -1001,7 +1007,7 @@
# (usually calling 'look')
if move_hooks:
try:
-
self.at_post_move(source_location, **kwargs)
+
self.at_post_move(source_location, move_type=move_type, **kwargs)
except Exception as err:
logerr(errtxt.format(err="at_post_move"), err)
return False
@@ -1062,7 +1068,7 @@
# Famous last words: The account should never see this.
string = "This place should not exist ... contact an admin."
obj.msg(_(string))
-
obj.move_to(home)
+
obj.move_to(home, move_type="teleport")
[docs] @classmethod
def create(cls, key, account=None, **kwargs):
@@ -1514,13 +1520,17 @@
# hooks called when moving the object
-
[docs] def at_pre_move(self, destination, **kwargs):
+
[docs] def at_pre_move(self, destination, move_type="move", **kwargs):
"""
Called just before starting to move this object to
destination.
Args:
destination (Object): The object we are moving to
+
move_type (str): The type of move. "give", "traverse", etc.
+
This is an arbitrary string provided to obj.move_to().
+
Useful for altering messages or altering logic depending
+
on the kind of movement.
**kwargs (dict): Arbitrary, optional arguments for users
overriding the call (unused by default).
@@ -1538,7 +1548,7 @@
# deprecated alias
at_before_move = at_pre_move
-
[docs] def announce_move_from(self, destination, msg=None, mapping=None, **kwargs):
+
[docs] def announce_move_from(self, destination, msg=None, mapping=None, move_type="move", **kwargs):
"""
Called if the move is to be announced. This is
called while we are still standing in the old
@@ -1548,6 +1558,10 @@
destination (Object): The place we are going to.
msg (str, optional): a replacement message.
mapping (dict, optional): additional mapping objects.
+
move_type (str): The type of move. "give", "traverse", etc.
+
This is an arbitrary string provided to obj.move_to().
+
Useful for altering messages or altering logic depending
+
on the kind of movement.
**kwargs (dict): Arbitrary, optional arguments for users
overriding the call (unused by default).
@@ -1583,9 +1597,9 @@
}
)
-
location.msg_contents(string, exclude=(self,), from_obj=self, mapping=mapping)
+
location.msg_contents((string, {"type": move_type}), exclude=(self,), from_obj=self, mapping=mapping)
-
[docs] def announce_move_to(self, source_location, msg=None, mapping=None, **kwargs):
+
[docs] def announce_move_to(self, source_location, msg=None, mapping=None, move_type="move", **kwargs):
"""
Called after the move if the move was not quiet. At this point
we are standing in the new location.
@@ -1594,6 +1608,10 @@
source_location (Object): The place we came from
msg (str, optional): the replacement message if location.
mapping (dict, optional): additional mapping objects.
+
move_type (str): The type of move. "give", "traverse", etc.
+
This is an arbitrary string provided to obj.move_to().
+
Useful for altering messages or altering logic depending
+
on the kind of movement.
**kwargs (dict): Arbitrary, optional arguments for users
overriding the call (unused by default).
@@ -1647,9 +1665,9 @@
}
)
-
destination.msg_contents(string, exclude=(self,), from_obj=self, mapping=mapping)
+
destination.msg_contents((string, {"type": move_type}), exclude=(self,), from_obj=self, mapping=mapping)
-
[docs] def at_post_move(self, source_location, **kwargs):
+
[docs] def at_post_move(self, source_location, move_type="move", **kwargs):
"""
Called after move has completed, regardless of quiet mode or
not. Allows changes to the object due to the location it is
@@ -1657,6 +1675,10 @@
Args:
source_location (Object): Wwhere we came from. This may be `None`.
+
move_type (str): The type of move. "give", "traverse", etc.
+
This is an arbitrary string provided to obj.move_to().
+
Useful for altering messages or altering logic depending
+
on the kind of movement.
**kwargs (dict): Arbitrary, optional arguments for users
overriding the call (unused by default).
@@ -1666,20 +1688,24 @@
# deprecated
at_after_move = at_post_move
-
[docs] def at_object_leave(self, moved_obj, target_location, **kwargs):
+
[docs] def at_object_leave(self, moved_obj, target_location, move_type="move", **kwargs):
"""
Called just before an object leaves from inside this object
Args:
moved_obj (Object): The object leaving
target_location (Object): Where `moved_obj` is going.
+
move_type (str): The type of move. "give", "traverse", etc.
+
This is an arbitrary string provided to obj.move_to().
+
Useful for altering messages or altering logic depending
+
on the kind of movement.
**kwargs (dict): Arbitrary, optional arguments for users
overriding the call (unused by default).
"""
pass
-
[docs] def at_object_receive(self, moved_obj, source_location, **kwargs):
+
[docs] def at_object_receive(self, moved_obj, source_location, move_type="move", **kwargs):
"""
Called after an object has been moved into this object.
@@ -1687,6 +1713,10 @@
moved_obj (Object): The object moved into this one
source_location (Object): Where `moved_object` came from.
Note that this could be `None`.
+
move_type (str): The type of move. "give", "traverse", etc.
+
This is an arbitrary string provided to obj.move_to().
+
Useful for altering messages or altering logic depending
+
on the kind of movement.
**kwargs (dict): Arbitrary, optional arguments for users
overriding the call (unused by default).
@@ -2423,7 +2453,7 @@
# add the default cmdset
self.cmdset.add_default(settings.CMDSET_CHARACTER, persistent=True)
-
[docs] def at_post_move(self, source_location, **kwargs):
+
[docs] def at_post_move(self, source_location, move_type="move", **kwargs):
"""
We make sure to look around after a move.
@@ -2690,9 +2720,9 @@
"""
if self.obj.destination:
-
return " (exit to %s)" % self.obj.destination.get_display_name(caller)
+
return " (exit to %s)" % self.obj.destination.get_display_name(caller, **kwargs)
else:
-
return " (%s)" % self.obj.get_display_name(caller)
+
return " (%s)" % self.obj.get_display_name(caller, **kwargs)
#
@@ -2901,7 +2931,7 @@
"""
source_location = traversing_object.location
-
if traversing_object.move_to(target_location):
+
if traversing_object.move_to(target_location, move_type="traverse"):
self.at_post_traverse(traversing_object, source_location)
else:
if self.db.err_traverse:
diff --git a/docs/1.0-dev/_modules/evennia/server/game_index_client/client.html b/docs/1.0-dev/_modules/evennia/server/game_index_client/client.html
index 0f8455399b..41fdbc4410 100644
--- a/docs/1.0-dev/_modules/evennia/server/game_index_client/client.html
+++ b/docs/1.0-dev/_modules/evennia/server/game_index_client/client.html
@@ -46,7 +46,6 @@
"""
import urllib.request, urllib.parse, urllib.error
import platform
-
import warnings
import django
from django.conf import settings
diff --git a/docs/1.0-dev/_sources/Howtos/NPC-shop-Tutorial.md.txt b/docs/1.0-dev/_sources/Howtos/NPC-shop-Tutorial.md.txt
index db37508f95..209f2d17f3 100644
--- a/docs/1.0-dev/_sources/Howtos/NPC-shop-Tutorial.md.txt
+++ b/docs/1.0-dev/_sources/Howtos/NPC-shop-Tutorial.md.txt
@@ -130,7 +130,7 @@ def menunode_inspect_and_buy(caller, raw_string):
if wealth >= value:
rtext = f"You pay {value} gold and purchase {ware.key}!"
caller.db.gold -= value
- ware.move_to(caller, quiet=True)
+ ware.move_to(caller, quiet=True, move_type="buy")
else:
rtext = f"You cannot afford {value} gold for {ware.key}!"
caller.msg(rtext)
diff --git a/docs/1.0-dev/_sources/Howtos/Tutorial-Vehicles.md.txt b/docs/1.0-dev/_sources/Howtos/Tutorial-Vehicles.md.txt
index a62aa485f3..acb074de6a 100644
--- a/docs/1.0-dev/_sources/Howtos/Tutorial-Vehicles.md.txt
+++ b/docs/1.0-dev/_sources/Howtos/Tutorial-Vehicles.md.txt
@@ -86,7 +86,7 @@ class CmdEnterTrain(Command):
def func(self):
train = self.obj
self.caller.msg("You board the train.")
- self.caller.move_to(train)
+ self.caller.move_to(train, move_type="board")
class CmdLeaveTrain(Command):
@@ -107,7 +107,7 @@ class CmdLeaveTrain(Command):
def func(self):
train = self.obj
parent = train.location
- self.caller.move_to(parent)
+ self.caller.move_to(parent, move_type="disembark")
class CmdSetTrain(CmdSet):
diff --git a/docs/1.0-dev/api/evennia.commands.default.account.html b/docs/1.0-dev/api/evennia.commands.default.account.html
index 4b41f8be9e..f1fc66fbaa 100644
--- a/docs/1.0-dev/api/evennia.commands.default.account.html
+++ b/docs/1.0-dev/api/evennia.commands.default.account.html
@@ -84,7 +84,7 @@ method. Otherwise all text will be returned to all connected sessions.
-
-
aliases = ['l', 'ls']
+aliases = ['ls', 'l']
@@ -115,7 +115,7 @@ method. Otherwise all text will be returned to all connected sessions.
-
-
search_index_entry = {'aliases': 'l ls', 'category': 'general', 'key': 'look', 'no_prefix': ' l ls', 'tags': '', 'text': '\n look while out-of-character\n\n Usage:\n look\n\n Look in the ooc state.\n '}
+search_index_entry = {'aliases': 'ls l', 'category': 'general', 'key': 'look', 'no_prefix': ' ls l', 'tags': '', 'text': '\n look while out-of-character\n\n Usage:\n look\n\n Look in the ooc state.\n '}
diff --git a/docs/1.0-dev/api/evennia.commands.default.batchprocess.html b/docs/1.0-dev/api/evennia.commands.default.batchprocess.html
index 66715808ac..63c99c3dbb 100644
--- a/docs/1.0-dev/api/evennia.commands.default.batchprocess.html
+++ b/docs/1.0-dev/api/evennia.commands.default.batchprocess.html
@@ -89,7 +89,7 @@ skipping, reloading etc.
-
-
aliases = ['batchcommand', 'batchcmd']
+aliases = ['batchcmd', 'batchcommand']
@@ -120,7 +120,7 @@ skipping, reloading etc.
-
-
search_index_entry = {'aliases': 'batchcommand batchcmd', 'category': 'building', 'key': 'batchcommands', 'no_prefix': ' batchcommand batchcmd', 'tags': '', 'text': '\n build from batch-command file\n\n Usage:\n batchcommands[/interactive] <python.path.to.file>\n\n Switch:\n interactive - this mode will offer more control when\n executing the batch file, like stepping,\n skipping, reloading etc.\n\n Runs batches of commands from a batch-cmd text file (*.ev).\n\n '}
+search_index_entry = {'aliases': 'batchcmd batchcommand', 'category': 'building', 'key': 'batchcommands', 'no_prefix': ' batchcmd batchcommand', 'tags': '', 'text': '\n build from batch-command file\n\n Usage:\n batchcommands[/interactive] <python.path.to.file>\n\n Switch:\n interactive - this mode will offer more control when\n executing the batch file, like stepping,\n skipping, reloading etc.\n\n Runs batches of commands from a batch-cmd text file (*.ev).\n\n '}
diff --git a/docs/1.0-dev/api/evennia.commands.default.building.html b/docs/1.0-dev/api/evennia.commands.default.building.html
index 54e2075984..db3e4d2f86 100644
--- a/docs/1.0-dev/api/evennia.commands.default.building.html
+++ b/docs/1.0-dev/api/evennia.commands.default.building.html
@@ -1296,7 +1296,7 @@ server settings.
-
-
aliases = ['@type', '@swap', '@update', '@parent', '@typeclasses']
+aliases = ['@type', '@typeclasses', '@parent', '@update', '@swap']
@@ -1327,7 +1327,7 @@ server settings.
-
-
search_index_entry = {'aliases': '@type @swap @update @parent @typeclasses', 'category': 'building', 'key': '@typeclass', 'no_prefix': 'typeclass type swap update parent typeclasses', 'tags': '', 'text': "\n set or change an object's typeclass\n\n Usage:\n typeclass[/switch] <object> [= typeclass.path]\n typeclass/prototype <object> = prototype_key\n\n typeclasses or typeclass/list/show [typeclass.path]\n swap - this is a shorthand for using /force/reset flags.\n update - this is a shorthand for using the /force/reload flag.\n\n Switch:\n show, examine - display the current typeclass of object (default) or, if\n given a typeclass path, show the docstring of that typeclass.\n update - *only* re-run at_object_creation on this object\n meaning locks or other properties set later may remain.\n reset - clean out *all* the attributes and properties on the\n object - basically making this a new clean object. This will also\n reset cmdsets!\n force - change to the typeclass also if the object\n already has a typeclass of the same name.\n list - show available typeclasses. Only typeclasses in modules actually\n imported or used from somewhere in the code will show up here\n (those typeclasses are still available if you know the path)\n prototype - clean and overwrite the object with the specified\n prototype key - effectively making a whole new object.\n\n Example:\n type button = examples.red_button.RedButton\n type/prototype button=a red button\n\n If the typeclass_path is not given, the current object's typeclass is\n assumed.\n\n View or set an object's typeclass. If setting, the creation hooks of the\n new typeclass will be run on the object. If you have clashing properties on\n the old class, use /reset. By default you are protected from changing to a\n typeclass of the same name as the one you already have - use /force to\n override this protection.\n\n The given typeclass must be identified by its location using python\n dot-notation pointing to the correct module and class. If no typeclass is\n given (or a wrong typeclass is given). Errors in the path or new typeclass\n will lead to the old typeclass being kept. The location of the typeclass\n module is searched from the default typeclass directory, as defined in the\n server settings.\n\n "}
+search_index_entry = {'aliases': '@type @typeclasses @parent @update @swap', 'category': 'building', 'key': '@typeclass', 'no_prefix': 'typeclass type typeclasses parent update swap', 'tags': '', 'text': "\n set or change an object's typeclass\n\n Usage:\n typeclass[/switch] <object> [= typeclass.path]\n typeclass/prototype <object> = prototype_key\n\n typeclasses or typeclass/list/show [typeclass.path]\n swap - this is a shorthand for using /force/reset flags.\n update - this is a shorthand for using the /force/reload flag.\n\n Switch:\n show, examine - display the current typeclass of object (default) or, if\n given a typeclass path, show the docstring of that typeclass.\n update - *only* re-run at_object_creation on this object\n meaning locks or other properties set later may remain.\n reset - clean out *all* the attributes and properties on the\n object - basically making this a new clean object. This will also\n reset cmdsets!\n force - change to the typeclass also if the object\n already has a typeclass of the same name.\n list - show available typeclasses. Only typeclasses in modules actually\n imported or used from somewhere in the code will show up here\n (those typeclasses are still available if you know the path)\n prototype - clean and overwrite the object with the specified\n prototype key - effectively making a whole new object.\n\n Example:\n type button = examples.red_button.RedButton\n type/prototype button=a red button\n\n If the typeclass_path is not given, the current object's typeclass is\n assumed.\n\n View or set an object's typeclass. If setting, the creation hooks of the\n new typeclass will be run on the object. If you have clashing properties on\n the old class, use /reset. By default you are protected from changing to a\n typeclass of the same name as the one you already have - use /force to\n override this protection.\n\n The given typeclass must be identified by its location using python\n dot-notation pointing to the correct module and class. If no typeclass is\n given (or a wrong typeclass is given). Errors in the path or new typeclass\n will lead to the old typeclass being kept. The location of the typeclass\n module is searched from the default typeclass directory, as defined in the\n server settings.\n\n "}
@@ -1482,7 +1482,7 @@ If object is not specified, the current location is examined.
-
-
aliases = ['@exam', '@ex']
+aliases = ['@ex', '@exam']
@@ -1750,7 +1750,7 @@ the cases, see the module doc.
-
-
search_index_entry = {'aliases': '@exam @ex', 'category': 'building', 'key': '@examine', 'no_prefix': 'examine exam ex', 'tags': '', 'text': '\n get detailed information about an object\n\n Usage:\n examine [<object>[/attrname]]\n examine [*<account>[/attrname]]\n\n Switch:\n account - examine an Account (same as adding *)\n object - examine an Object (useful when OOC)\n script - examine a Script\n channel - examine a Channel\n\n The examine command shows detailed game info about an\n object and optionally a specific attribute on it.\n If object is not specified, the current location is examined.\n\n Append a * before the search string to examine an account.\n\n '}
+search_index_entry = {'aliases': '@ex @exam', 'category': 'building', 'key': '@examine', 'no_prefix': 'examine ex exam', 'tags': '', 'text': '\n get detailed information about an object\n\n Usage:\n examine [<object>[/attrname]]\n examine [*<account>[/attrname]]\n\n Switch:\n account - examine an Account (same as adding *)\n object - examine an Object (useful when OOC)\n script - examine a Script\n channel - examine a Channel\n\n The examine command shows detailed game info about an\n object and optionally a specific attribute on it.\n If object is not specified, the current location is examined.\n\n Append a * before the search string to examine an account.\n\n '}
diff --git a/docs/1.0-dev/api/evennia.commands.default.general.html b/docs/1.0-dev/api/evennia.commands.default.general.html
index 05a77500ef..cf0dcf4186 100644
--- a/docs/1.0-dev/api/evennia.commands.default.general.html
+++ b/docs/1.0-dev/api/evennia.commands.default.general.html
@@ -126,7 +126,7 @@ look
*<account&g
-
-
aliases = ['l', 'ls']
+aliases = ['ls', 'l']
@@ -157,7 +157,7 @@ look *<account&g
-
-
search_index_entry = {'aliases': 'l ls', 'category': 'general', 'key': 'look', 'no_prefix': ' l ls', 'tags': '', 'text': '\n look at location or object\n\n Usage:\n look\n look <obj>\n look *<account>\n\n Observes your location or objects in your vicinity.\n '}
+search_index_entry = {'aliases': 'ls l', 'category': 'general', 'key': 'look', 'no_prefix': ' ls l', 'tags': '', 'text': '\n look at location or object\n\n Usage:\n look\n look <obj>\n look *<account>\n\n Observes your location or objects in your vicinity.\n '}
@@ -219,7 +219,7 @@ for everyone to use, you need build privileges and the alias command.
-
-
aliases = ['nicks', 'nickname']
+aliases = ['nickname', 'nicks']
@@ -251,7 +251,7 @@ for everyone to use, you need build privileges and the alias command.
-
-
search_index_entry = {'aliases': 'nicks nickname', 'category': 'general', 'key': 'nick', 'no_prefix': ' nicks nickname', 'tags': '', 'text': '\n define a personal alias/nick by defining a string to\n match and replace it with another on the fly\n\n Usage:\n nick[/switches] <string> [= [replacement_string]]\n nick[/switches] <template> = <replacement_template>\n nick/delete <string> or number\n nicks\n\n Switches:\n inputline - replace on the inputline (default)\n object - replace on object-lookup\n account - replace on account-lookup\n list - show all defined aliases (also "nicks" works)\n delete - remove nick by index in /list\n clearall - clear all nicks\n\n Examples:\n nick hi = say Hello, I\'m Sarah!\n nick/object tom = the tall man\n nick build $1 $2 = create/drop $1;$2\n nick tell $1 $2=page $1=$2\n nick tm?$1=page tallman=$1\n nick tm\\=$1=page tallman=$1\n\n A \'nick\' is a personal string replacement. Use $1, $2, ... to catch arguments.\n Put the last $-marker without an ending space to catch all remaining text. You\n can also use unix-glob matching for the left-hand side <string>:\n\n * - matches everything\n ? - matches 0 or 1 single characters\n [abcd] - matches these chars in any order\n [!abcd] - matches everything not among these chars\n \\= - escape literal \'=\' you want in your <string>\n\n Note that no objects are actually renamed or changed by this command - your nicks\n are only available to you. If you want to permanently add keywords to an object\n for everyone to use, you need build privileges and the alias command.\n\n '}
+search_index_entry = {'aliases': 'nickname nicks', 'category': 'general', 'key': 'nick', 'no_prefix': ' nickname nicks', 'tags': '', 'text': '\n define a personal alias/nick by defining a string to\n match and replace it with another on the fly\n\n Usage:\n nick[/switches] <string> [= [replacement_string]]\n nick[/switches] <template> = <replacement_template>\n nick/delete <string> or number\n nicks\n\n Switches:\n inputline - replace on the inputline (default)\n object - replace on object-lookup\n account - replace on account-lookup\n list - show all defined aliases (also "nicks" works)\n delete - remove nick by index in /list\n clearall - clear all nicks\n\n Examples:\n nick hi = say Hello, I\'m Sarah!\n nick/object tom = the tall man\n nick build $1 $2 = create/drop $1;$2\n nick tell $1 $2=page $1=$2\n nick tm?$1=page tallman=$1\n nick tm\\=$1=page tallman=$1\n\n A \'nick\' is a personal string replacement. Use $1, $2, ... to catch arguments.\n Put the last $-marker without an ending space to catch all remaining text. You\n can also use unix-glob matching for the left-hand side <string>:\n\n * - matches everything\n ? - matches 0 or 1 single characters\n [abcd] - matches these chars in any order\n [!abcd] - matches everything not among these chars\n \\= - escape literal \'=\' you want in your <string>\n\n Note that no objects are actually renamed or changed by this command - your nicks\n are only available to you. If you want to permanently add keywords to an object\n for everyone to use, you need build privileges and the alias command.\n\n '}
@@ -274,7 +274,7 @@ inv
-
-
aliases = ['inv', 'i']
+aliases = ['i', 'inv']
@@ -305,7 +305,7 @@ inv
-
-
search_index_entry = {'aliases': 'inv i', 'category': 'general', 'key': 'inventory', 'no_prefix': ' inv i', 'tags': '', 'text': '\n view inventory\n\n Usage:\n inventory\n inv\n\n Shows your inventory.\n '}
+search_index_entry = {'aliases': 'i inv', 'category': 'general', 'key': 'inventory', 'no_prefix': ' i inv', 'tags': '', 'text': '\n view inventory\n\n Usage:\n inventory\n inv\n\n Shows your inventory.\n '}
@@ -549,7 +549,7 @@ placing it in their inventory.
-
-
aliases = ['"', "'"]
+aliases = ["'", '"']
@@ -580,7 +580,7 @@ placing it in their inventory.
-
-
search_index_entry = {'aliases': '" \'', 'category': 'general', 'key': 'say', 'no_prefix': ' " \'', 'tags': '', 'text': '\n speak as your character\n\n Usage:\n say <message>\n\n Talk to those in your current location.\n '}
+search_index_entry = {'aliases': '\' "', 'category': 'general', 'key': 'say', 'no_prefix': ' \' "', 'tags': '', 'text': '\n speak as your character\n\n Usage:\n say <message>\n\n Talk to those in your current location.\n '}
diff --git a/docs/1.0-dev/api/evennia.commands.default.tests.html b/docs/1.0-dev/api/evennia.commands.default.tests.html
index aaf663f892..9ecda8d9b2 100644
--- a/docs/1.0-dev/api/evennia.commands.default.tests.html
+++ b/docs/1.0-dev/api/evennia.commands.default.tests.html
@@ -772,7 +772,7 @@ main test suite started with
Test the batch processor.
-
-
red_button = <module 'evennia.contrib.tutorials.red_button.red_button' from '/tmp/tmpk626wdxt/62136b5f7dc2d54b72813b2bb2d55cdc685aed37/evennia/contrib/tutorials/red_button/red_button.py'>
+red_button = <module 'evennia.contrib.tutorials.red_button.red_button' from '/tmp/tmppa13r6sb/78167dfd3f20cf80799bed0efadf376904813569/evennia/contrib/tutorials/red_button/red_button.py'>
diff --git a/docs/1.0-dev/api/evennia.commands.default.unloggedin.html b/docs/1.0-dev/api/evennia.commands.default.unloggedin.html
index e57ebcdb33..bccea8d5b4 100644
--- a/docs/1.0-dev/api/evennia.commands.default.unloggedin.html
+++ b/docs/1.0-dev/api/evennia.commands.default.unloggedin.html
@@ -73,7 +73,7 @@ connect “account name” “pass word”
-
-
aliases = ['conn', 'con', 'co']
+aliases = ['conn', 'co', 'con']
@@ -108,7 +108,7 @@ there is no object yet before the account has logged in)
-
-
search_index_entry = {'aliases': 'conn con co', 'category': 'general', 'key': 'connect', 'no_prefix': ' conn con co', 'tags': '', 'text': '\n connect to the game\n\n Usage (at login screen):\n connect accountname password\n connect "account name" "pass word"\n\n Use the create command to first create an account before logging in.\n\n If you have spaces in your name, enclose it in double quotes.\n '}
+search_index_entry = {'aliases': 'conn co con', 'category': 'general', 'key': 'connect', 'no_prefix': ' conn co con', 'tags': '', 'text': '\n connect to the game\n\n Usage (at login screen):\n connect accountname password\n connect "account name" "pass word"\n\n Use the create command to first create an account before logging in.\n\n If you have spaces in your name, enclose it in double quotes.\n '}
@@ -237,7 +237,7 @@ All it does is display the connect screen.
-
-
aliases = ['look', 'l']
+aliases = ['l', 'look']
@@ -263,7 +263,7 @@ All it does is display the connect screen.
-
-
search_index_entry = {'aliases': 'look l', 'category': 'general', 'key': '__unloggedin_look_command', 'no_prefix': ' look l', 'tags': '', 'text': '\n look when in unlogged-in state\n\n Usage:\n look\n\n This is an unconnected version of the look command for simplicity.\n\n This is called by the server and kicks everything in gear.\n All it does is display the connect screen.\n '}
+search_index_entry = {'aliases': 'l look', 'category': 'general', 'key': '__unloggedin_look_command', 'no_prefix': ' l look', 'tags': '', 'text': '\n look when in unlogged-in state\n\n Usage:\n look\n\n This is an unconnected version of the look command for simplicity.\n\n This is called by the server and kicks everything in gear.\n All it does is display the connect screen.\n '}
@@ -286,7 +286,7 @@ for simplicity. It shows a pane of info.
-
-
aliases = ['?', 'h']
+aliases = ['h', '?']
@@ -312,7 +312,7 @@ for simplicity. It shows a pane of info.
-
-
search_index_entry = {'aliases': '? h', 'category': 'general', 'key': 'help', 'no_prefix': ' ? h', 'tags': '', 'text': '\n get help when in unconnected-in state\n\n Usage:\n help\n\n This is an unconnected version of the help command,\n for simplicity. It shows a pane of info.\n '}
+search_index_entry = {'aliases': 'h ?', 'category': 'general', 'key': 'help', 'no_prefix': ' h ?', 'tags': '', 'text': '\n get help when in unconnected-in state\n\n Usage:\n help\n\n This is an unconnected version of the help command,\n for simplicity. It shows a pane of info.\n '}
diff --git a/docs/1.0-dev/api/evennia.contrib.base_systems.email_login.email_login.html b/docs/1.0-dev/api/evennia.contrib.base_systems.email_login.email_login.html
index 71bf12abbd..be8835d55a 100644
--- a/docs/1.0-dev/api/evennia.contrib.base_systems.email_login.email_login.html
+++ b/docs/1.0-dev/api/evennia.contrib.base_systems.email_login.email_login.html
@@ -90,7 +90,7 @@ the module given by settings.CONNECTION_SCREEN_MODULE.
-
-
aliases = ['conn', 'con', 'co']
+aliases = ['conn', 'co', 'con']
@@ -120,7 +120,7 @@ there is no object yet before the account has logged in)
-
-
search_index_entry = {'aliases': 'conn con co', 'category': 'general', 'key': 'connect', 'no_prefix': ' conn con co', 'tags': '', 'text': '\n Connect to the game.\n\n Usage (at login screen):\n connect <email> <password>\n\n Use the create command to first create an account before logging in.\n '}
+search_index_entry = {'aliases': 'conn co con', 'category': 'general', 'key': 'connect', 'no_prefix': ' conn co con', 'tags': '', 'text': '\n Connect to the game.\n\n Usage (at login screen):\n connect <email> <password>\n\n Use the create command to first create an account before logging in.\n '}
@@ -242,7 +242,7 @@ All it does is display the connect screen.
-
-
aliases = ['look', 'l']
+aliases = ['l', 'look']
@@ -268,7 +268,7 @@ All it does is display the connect screen.
-
-
search_index_entry = {'aliases': 'look l', 'category': 'general', 'key': '__unloggedin_look_command', 'no_prefix': ' look l', 'tags': '', 'text': '\n This is an unconnected version of the `look` command for simplicity.\n\n This is called by the server and kicks everything in gear.\n All it does is display the connect screen.\n '}
+search_index_entry = {'aliases': 'l look', 'category': 'general', 'key': '__unloggedin_look_command', 'no_prefix': ' l look', 'tags': '', 'text': '\n This is an unconnected version of the `look` command for simplicity.\n\n This is called by the server and kicks everything in gear.\n All it does is display the connect screen.\n '}
@@ -286,7 +286,7 @@ for simplicity. It shows a pane of info.
-
-
aliases = ['?', 'h']
+aliases = ['h', '?']
@@ -312,7 +312,7 @@ for simplicity. It shows a pane of info.
-
-
search_index_entry = {'aliases': '? h', 'category': 'general', 'key': 'help', 'no_prefix': ' ? h', 'tags': '', 'text': '\n This is an unconnected version of the help command,\n for simplicity. It shows a pane of info.\n '}
+search_index_entry = {'aliases': 'h ?', 'category': 'general', 'key': 'help', 'no_prefix': ' h ?', 'tags': '', 'text': '\n This is an unconnected version of the help command,\n for simplicity. It shows a pane of info.\n '}
diff --git a/docs/1.0-dev/api/evennia.contrib.base_systems.ingame_python.commands.html b/docs/1.0-dev/api/evennia.contrib.base_systems.ingame_python.commands.html
index 8513a49ffc..9a3c68aeb8 100644
--- a/docs/1.0-dev/api/evennia.contrib.base_systems.ingame_python.commands.html
+++ b/docs/1.0-dev/api/evennia.contrib.base_systems.ingame_python.commands.html
@@ -67,7 +67,7 @@
-
-
aliases = ['@calls', '@callbacks', '@callback']
+aliases = ['@callback', '@callbacks', '@calls']
@@ -148,7 +148,7 @@ on user permission.
-
-
search_index_entry = {'aliases': '@calls @callbacks @callback', 'category': 'building', 'key': '@call', 'no_prefix': 'call calls callbacks callback', 'tags': '', 'text': '\n Command to edit callbacks.\n '}
+search_index_entry = {'aliases': '@callback @callbacks @calls', 'category': 'building', 'key': '@call', 'no_prefix': 'call callback callbacks calls', 'tags': '', 'text': '\n Command to edit callbacks.\n '}
diff --git a/docs/1.0-dev/api/evennia.contrib.base_systems.mux_comms_cmds.mux_comms_cmds.html b/docs/1.0-dev/api/evennia.contrib.base_systems.mux_comms_cmds.mux_comms_cmds.html
index 9a40c4b31b..a32382d911 100644
--- a/docs/1.0-dev/api/evennia.contrib.base_systems.mux_comms_cmds.mux_comms_cmds.html
+++ b/docs/1.0-dev/api/evennia.contrib.base_systems.mux_comms_cmds.mux_comms_cmds.html
@@ -111,7 +111,7 @@ aliases to an already joined channel.
-
-
aliases = ['aliaschan', 'chanalias']
+aliases = ['chanalias', 'aliaschan']
@@ -142,7 +142,7 @@ aliases to an already joined channel.
-
-
search_index_entry = {'aliases': 'aliaschan chanalias', 'category': 'comms', 'key': 'addcom', 'no_prefix': ' aliaschan chanalias', 'tags': '', 'text': '\n Add a channel alias and/or subscribe to a channel\n\n Usage:\n addcom [alias=] <channel>\n\n Joins a given channel. If alias is given, this will allow you to\n refer to the channel by this alias rather than the full channel\n name. Subsequent calls of this command can be used to add multiple\n aliases to an already joined channel.\n '}
+search_index_entry = {'aliases': 'chanalias aliaschan', 'category': 'comms', 'key': 'addcom', 'no_prefix': ' chanalias aliaschan', 'tags': '', 'text': '\n Add a channel alias and/or subscribe to a channel\n\n Usage:\n addcom [alias=] <channel>\n\n Joins a given channel. If alias is given, this will allow you to\n refer to the channel by this alias rather than the full channel\n name. Subsequent calls of this command can be used to add multiple\n aliases to an already joined channel.\n '}
diff --git a/docs/1.0-dev/api/evennia.contrib.full_systems.evscaperoom.commands.html b/docs/1.0-dev/api/evennia.contrib.full_systems.evscaperoom.commands.html
index e9cefb19f1..8ac43270aa 100644
--- a/docs/1.0-dev/api/evennia.contrib.full_systems.evscaperoom.commands.html
+++ b/docs/1.0-dev/api/evennia.contrib.full_systems.evscaperoom.commands.html
@@ -162,7 +162,7 @@ the operation will be general or on the room.
-
-
aliases = ['abort', 'quit', 'chicken out', 'q']
+aliases = ['abort', 'chicken out', 'q', 'quit']
@@ -186,7 +186,7 @@ set in self.parse())
-
-
search_index_entry = {'aliases': 'abort quit chicken out q', 'category': 'evscaperoom', 'key': 'give up', 'no_prefix': ' abort quit chicken out q', 'tags': '', 'text': '\n Give up\n\n Usage:\n give up\n\n Abandons your attempts at escaping and of ever winning the pie-eating contest.\n\n '}
+search_index_entry = {'aliases': 'abort chicken out q quit', 'category': 'evscaperoom', 'key': 'give up', 'no_prefix': ' abort chicken out q quit', 'tags': '', 'text': '\n Give up\n\n Usage:\n give up\n\n Abandons your attempts at escaping and of ever winning the pie-eating contest.\n\n '}
@@ -207,7 +207,7 @@ set in self.parse())
-
-
aliases = ['l', 'ls']
+aliases = ['ls', 'l']
@@ -241,7 +241,7 @@ set in self.parse())
-
-
search_index_entry = {'aliases': 'l ls', 'category': 'evscaperoom', 'key': 'look', 'no_prefix': ' l ls', 'tags': '', 'text': '\n Look at the room, an object or the currently focused object\n\n Usage:\n look [obj]\n\n '}
+search_index_entry = {'aliases': 'ls l', 'category': 'evscaperoom', 'key': 'look', 'no_prefix': ' ls l', 'tags': '', 'text': '\n Look at the room, an object or the currently focused object\n\n Usage:\n look [obj]\n\n '}
@@ -322,7 +322,7 @@ shout
-
-
aliases = [';', 'shout', 'whisper']
+aliases = [';', 'whisper', 'shout']
@@ -351,7 +351,7 @@ set in self.parse())
-
-
search_index_entry = {'aliases': '; shout whisper', 'category': 'general', 'key': 'say', 'no_prefix': ' ; shout whisper', 'tags': '', 'text': '\n Perform an communication action.\n\n Usage:\n say <text>\n whisper\n shout\n\n '}
+search_index_entry = {'aliases': '; whisper shout', 'category': 'general', 'key': 'say', 'no_prefix': ' ; whisper shout', 'tags': '', 'text': '\n Perform an communication action.\n\n Usage:\n say <text>\n whisper\n shout\n\n '}
@@ -379,7 +379,7 @@ emote /me points to /box and /lever.
-
-
aliases = [':', 'pose']
+aliases = ['pose', ':']
@@ -418,7 +418,7 @@ set in self.parse())
-
-
search_index_entry = {'aliases': ': pose', 'category': 'general', 'key': 'emote', 'no_prefix': ' : pose', 'tags': '', 'text': '\n Perform a free-form emote. Use /me to\n include yourself in the emote and /name\n to include other objects or characters.\n Use "..." to enact speech.\n\n Usage:\n emote <emote>\n :<emote\n\n Example:\n emote /me smiles at /peter\n emote /me points to /box and /lever.\n\n '}
+search_index_entry = {'aliases': 'pose :', 'category': 'general', 'key': 'emote', 'no_prefix': ' pose :', 'tags': '', 'text': '\n Perform a free-form emote. Use /me to\n include yourself in the emote and /name\n to include other objects or characters.\n Use "..." to enact speech.\n\n Usage:\n emote <emote>\n :<emote\n\n Example:\n emote /me smiles at /peter\n emote /me points to /box and /lever.\n\n '}
@@ -441,7 +441,7 @@ looks and what actions is available.
-
-
aliases = ['ex', 'examine', 'unfocus', 'e']
+aliases = ['unfocus', 'ex', 'e', 'examine']
@@ -470,7 +470,7 @@ set in self.parse())
-
-
search_index_entry = {'aliases': 'ex examine unfocus e', 'category': 'evscaperoom', 'key': 'focus', 'no_prefix': ' ex examine unfocus e', 'tags': '', 'text': '\n Focus your attention on a target.\n\n Usage:\n focus <obj>\n\n Once focusing on an object, use look to get more information about how it\n looks and what actions is available.\n\n '}
+search_index_entry = {'aliases': 'unfocus ex e examine', 'category': 'evscaperoom', 'key': 'focus', 'no_prefix': ' unfocus ex e examine', 'tags': '', 'text': '\n Focus your attention on a target.\n\n Usage:\n focus <obj>\n\n Once focusing on an object, use look to get more information about how it\n looks and what actions is available.\n\n '}
@@ -532,7 +532,7 @@ set in self.parse())
-
-
aliases = ['i', 'give', 'inventory', 'inv']
+aliases = ['inventory', 'i', 'inv', 'give']
@@ -556,7 +556,7 @@ set in self.parse())
-
-
search_index_entry = {'aliases': 'i give inventory inv', 'category': 'evscaperoom', 'key': 'get', 'no_prefix': ' i give inventory inv', 'tags': '', 'text': '\n Use focus / examine instead.\n\n '}
+search_index_entry = {'aliases': 'inventory i inv give', 'category': 'evscaperoom', 'key': 'get', 'no_prefix': ' inventory i inv give', 'tags': '', 'text': '\n Use focus / examine instead.\n\n '}
diff --git a/docs/1.0-dev/api/evennia.contrib.full_systems.evscaperoom.room.html b/docs/1.0-dev/api/evennia.contrib.full_systems.evscaperoom.room.html
index 9072ba6307..304036e031 100644
--- a/docs/1.0-dev/api/evennia.contrib.full_systems.evscaperoom.room.html
+++ b/docs/1.0-dev/api/evennia.contrib.full_systems.evscaperoom.room.html
@@ -194,14 +194,14 @@ tagcategory.
-
-
at_object_receive(moved_obj, source_location)[source]
+at_object_receive(moved_obj, source_location, move_type='move', **kwargs)[source]
Called when an object arrives in the room. This can be used to
sum up the situation, set tags etc.
-
-
at_object_leave(moved_obj, target_location, **kwargs)[source]
+at_object_leave(moved_obj, target_location, move_type='move', **kwargs)[source]
Called when an object leaves the room; if this is a Character we need
to clean them up and move them to the menu state.
diff --git a/docs/1.0-dev/api/evennia.contrib.game_systems.clothing.clothing.html b/docs/1.0-dev/api/evennia.contrib.game_systems.clothing.clothing.html
index 3304dc8c6d..735d68fcf6 100644
--- a/docs/1.0-dev/api/evennia.contrib.game_systems.clothing.clothing.html
+++ b/docs/1.0-dev/api/evennia.contrib.game_systems.clothing.clothing.html
@@ -643,7 +643,7 @@ inv
-
-
aliases = ['inv', 'i']
+aliases = ['i', 'inv']
@@ -674,7 +674,7 @@ inv
-
-
search_index_entry = {'aliases': 'inv i', 'category': 'general', 'key': 'inventory', 'no_prefix': ' inv i', 'tags': '', 'text': '\n view inventory\n\n Usage:\n inventory\n inv\n\n Shows your inventory.\n '}
+search_index_entry = {'aliases': 'i inv', 'category': 'general', 'key': 'inventory', 'no_prefix': ' i inv', 'tags': '', 'text': '\n view inventory\n\n Usage:\n inventory\n inv\n\n Shows your inventory.\n '}
diff --git a/docs/1.0-dev/api/evennia.contrib.game_systems.turnbattle.tb_basic.html b/docs/1.0-dev/api/evennia.contrib.game_systems.turnbattle.tb_basic.html
index 8556688b9e..a0cfe3814c 100644
--- a/docs/1.0-dev/api/evennia.contrib.game_systems.turnbattle.tb_basic.html
+++ b/docs/1.0-dev/api/evennia.contrib.game_systems.turnbattle.tb_basic.html
@@ -623,7 +623,7 @@ if there are still any actions you can take.
-
-
aliases = ['wait', 'hold']
+aliases = ['hold', 'wait']
@@ -649,7 +649,7 @@ if there are still any actions you can take.
-
-
search_index_entry = {'aliases': 'wait hold', 'category': 'combat', 'key': 'pass', 'no_prefix': ' wait hold', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}
+search_index_entry = {'aliases': 'hold wait', 'category': 'combat', 'key': 'pass', 'no_prefix': ' hold wait', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}
diff --git a/docs/1.0-dev/api/evennia.contrib.game_systems.turnbattle.tb_equip.html b/docs/1.0-dev/api/evennia.contrib.game_systems.turnbattle.tb_equip.html
index ea6c9eab80..4917940612 100644
--- a/docs/1.0-dev/api/evennia.contrib.game_systems.turnbattle.tb_equip.html
+++ b/docs/1.0-dev/api/evennia.contrib.game_systems.turnbattle.tb_equip.html
@@ -518,7 +518,7 @@ if there are still any actions you can take.
-
-
aliases = ['wait', 'hold']
+aliases = ['hold', 'wait']
@@ -538,7 +538,7 @@ if there are still any actions you can take.
-
-
search_index_entry = {'aliases': 'wait hold', 'category': 'combat', 'key': 'pass', 'no_prefix': ' wait hold', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}
+search_index_entry = {'aliases': 'hold wait', 'category': 'combat', 'key': 'pass', 'no_prefix': ' hold wait', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}
diff --git a/docs/1.0-dev/api/evennia.contrib.game_systems.turnbattle.tb_items.html b/docs/1.0-dev/api/evennia.contrib.game_systems.turnbattle.tb_items.html
index d352f4e704..7f0b2673e0 100644
--- a/docs/1.0-dev/api/evennia.contrib.game_systems.turnbattle.tb_items.html
+++ b/docs/1.0-dev/api/evennia.contrib.game_systems.turnbattle.tb_items.html
@@ -641,7 +641,7 @@ if there are still any actions you can take.
-
-
aliases = ['wait', 'hold']
+aliases = ['hold', 'wait']
@@ -661,7 +661,7 @@ if there are still any actions you can take.
-
-
search_index_entry = {'aliases': 'wait hold', 'category': 'combat', 'key': 'pass', 'no_prefix': ' wait hold', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}
+search_index_entry = {'aliases': 'hold wait', 'category': 'combat', 'key': 'pass', 'no_prefix': ' hold wait', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}
diff --git a/docs/1.0-dev/api/evennia.contrib.game_systems.turnbattle.tb_magic.html b/docs/1.0-dev/api/evennia.contrib.game_systems.turnbattle.tb_magic.html
index 069c94c28f..1fbdf077da 100644
--- a/docs/1.0-dev/api/evennia.contrib.game_systems.turnbattle.tb_magic.html
+++ b/docs/1.0-dev/api/evennia.contrib.game_systems.turnbattle.tb_magic.html
@@ -420,7 +420,7 @@ if there are still any actions you can take.
-
-
aliases = ['wait', 'hold']
+aliases = ['hold', 'wait']
@@ -440,7 +440,7 @@ if there are still any actions you can take.
-
-
search_index_entry = {'aliases': 'wait hold', 'category': 'combat', 'key': 'pass', 'no_prefix': ' wait hold', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}
+search_index_entry = {'aliases': 'hold wait', 'category': 'combat', 'key': 'pass', 'no_prefix': ' hold wait', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}
diff --git a/docs/1.0-dev/api/evennia.contrib.game_systems.turnbattle.tb_range.html b/docs/1.0-dev/api/evennia.contrib.game_systems.turnbattle.tb_range.html
index 47fe6be620..66421ba3be 100644
--- a/docs/1.0-dev/api/evennia.contrib.game_systems.turnbattle.tb_range.html
+++ b/docs/1.0-dev/api/evennia.contrib.game_systems.turnbattle.tb_range.html
@@ -880,7 +880,7 @@ if there are still any actions you can take.
-
-
aliases = ['wait', 'hold']
+aliases = ['hold', 'wait']
@@ -900,7 +900,7 @@ if there are still any actions you can take.
-
-
search_index_entry = {'aliases': 'wait hold', 'category': 'combat', 'key': 'pass', 'no_prefix': ' wait hold', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}
+search_index_entry = {'aliases': 'hold wait', 'category': 'combat', 'key': 'pass', 'no_prefix': ' hold wait', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}
diff --git a/docs/1.0-dev/api/evennia.contrib.grid.extended_room.extended_room.html b/docs/1.0-dev/api/evennia.contrib.grid.extended_room.extended_room.html
index e97c9c1631..d284ddea0f 100644
--- a/docs/1.0-dev/api/evennia.contrib.grid.extended_room.extended_room.html
+++ b/docs/1.0-dev/api/evennia.contrib.grid.extended_room.extended_room.html
@@ -291,7 +291,7 @@ look *<account&g
-
-
aliases = ['l', 'ls']
+aliases = ['ls', 'l']
@@ -311,7 +311,7 @@ look *<account&g
-
-
search_index_entry = {'aliases': 'l ls', 'category': 'general', 'key': 'look', 'no_prefix': ' l ls', 'tags': '', 'text': '\n look\n\n Usage:\n look\n look <obj>\n look <room detail>\n look *<account>\n\n Observes your location, details at your location or objects in your vicinity.\n '}
+search_index_entry = {'aliases': 'ls l', 'category': 'general', 'key': 'look', 'no_prefix': ' ls l', 'tags': '', 'text': '\n look\n\n Usage:\n look\n look <obj>\n look <room detail>\n look *<account>\n\n Observes your location, details at your location or objects in your vicinity.\n '}
diff --git a/docs/1.0-dev/api/evennia.contrib.grid.wilderness.wilderness.html b/docs/1.0-dev/api/evennia.contrib.grid.wilderness.wilderness.html
index 25cb3f4543..d0afbe7e9f 100644
--- a/docs/1.0-dev/api/evennia.contrib.grid.wilderness.wilderness.html
+++ b/docs/1.0-dev/api/evennia.contrib.grid.wilderness.wilderness.html
@@ -421,7 +421,7 @@ default Evennia hook.
-
-
at_object_leave(moved_obj, target_location)[source]
+at_object_leave(moved_obj, target_location, move_type='move', **kwargs)[source]
Called just before an object leaves from inside this object. This is a
default Evennia hook.
diff --git a/docs/1.0-dev/api/evennia.contrib.rpg.dice.dice.html b/docs/1.0-dev/api/evennia.contrib.rpg.dice.dice.html
index 426cf798dd..113012046b 100644
--- a/docs/1.0-dev/api/evennia.contrib.rpg.dice.dice.html
+++ b/docs/1.0-dev/api/evennia.contrib.rpg.dice.dice.html
@@ -246,7 +246,7 @@ everyone but the person rolling.
-
-
aliases = ['@dice', 'roll']
+aliases = ['roll', '@dice']
@@ -272,7 +272,7 @@ everyone but the person rolling.
-
-
search_index_entry = {'aliases': '@dice roll', 'category': 'general', 'key': 'dice', 'no_prefix': ' dice roll', 'tags': '', 'text': "\n roll dice\n\n Usage:\n dice[/switch] <nr>d<sides> [modifier] [success condition]\n\n Switch:\n hidden - tell the room the roll is being done, but don't show the result\n secret - don't inform the room about neither roll nor result\n\n Examples:\n dice 3d6 + 4\n dice 1d100 - 2 < 50\n\n This will roll the given number of dice with given sides and modifiers.\n So e.g. 2d6 + 3 means to 'roll a 6-sided die 2 times and add the result,\n then add 3 to the total'.\n Accepted modifiers are +, -, * and /.\n A success condition is given as normal Python conditionals\n (<,>,<=,>=,==,!=). So e.g. 2d6 + 3 > 10 means that the roll will succeed\n only if the final result is above 8. If a success condition is given, the\n outcome (pass/fail) will be echoed along with how much it succeeded/failed\n with. The hidden/secret switches will hide all or parts of the roll from\n everyone but the person rolling.\n "}
+search_index_entry = {'aliases': 'roll @dice', 'category': 'general', 'key': 'dice', 'no_prefix': ' roll dice', 'tags': '', 'text': "\n roll dice\n\n Usage:\n dice[/switch] <nr>d<sides> [modifier] [success condition]\n\n Switch:\n hidden - tell the room the roll is being done, but don't show the result\n secret - don't inform the room about neither roll nor result\n\n Examples:\n dice 3d6 + 4\n dice 1d100 - 2 < 50\n\n This will roll the given number of dice with given sides and modifiers.\n So e.g. 2d6 + 3 means to 'roll a 6-sided die 2 times and add the result,\n then add 3 to the total'.\n Accepted modifiers are +, -, * and /.\n A success condition is given as normal Python conditionals\n (<,>,<=,>=,==,!=). So e.g. 2d6 + 3 > 10 means that the roll will succeed\n only if the final result is above 8. If a success condition is given, the\n outcome (pass/fail) will be echoed along with how much it succeeded/failed\n with. The hidden/secret switches will hide all or parts of the roll from\n everyone but the person rolling.\n "}
diff --git a/docs/1.0-dev/api/evennia.contrib.rpg.rpsystem.rpsystem.html b/docs/1.0-dev/api/evennia.contrib.rpg.rpsystem.rpsystem.html
index a1e318733c..c3f978a47a 100644
--- a/docs/1.0-dev/api/evennia.contrib.rpg.rpsystem.rpsystem.html
+++ b/docs/1.0-dev/api/evennia.contrib.rpg.rpsystem.rpsystem.html
@@ -640,7 +640,7 @@ a different language.
-
-
aliases = ['"', "'"]
+aliases = ["'", '"']
@@ -671,7 +671,7 @@ a different language.
-
-
search_index_entry = {'aliases': '" \'', 'category': 'general', 'key': 'say', 'no_prefix': ' " \'', 'tags': '', 'text': '\n speak as your character\n\n Usage:\n say <message>\n\n Talk to those in your current location.\n '}
+search_index_entry = {'aliases': '\' "', 'category': 'general', 'key': 'say', 'no_prefix': ' \' "', 'tags': '', 'text': '\n speak as your character\n\n Usage:\n say <message>\n\n Talk to those in your current location.\n '}
diff --git a/docs/1.0-dev/api/evennia.contrib.rpg.rpsystem.tests.html b/docs/1.0-dev/api/evennia.contrib.rpg.rpsystem.tests.html
index 70bccb8e5e..e7e83b8ebd 100644
--- a/docs/1.0-dev/api/evennia.contrib.rpg.rpsystem.tests.html
+++ b/docs/1.0-dev/api/evennia.contrib.rpg.rpsystem.tests.html
@@ -124,8 +124,13 @@
--
-
parse_sdescs_and_recogs()[source]
+-
+
test_parse_sdescs_and_recogs()[source]
+
+
+
+-
+
test_possessive_selfref()[source]
diff --git a/docs/1.0-dev/api/evennia.contrib.tutorials.red_button.red_button.html b/docs/1.0-dev/api/evennia.contrib.tutorials.red_button.red_button.html
index 1973197b92..a794693532 100644
--- a/docs/1.0-dev/api/evennia.contrib.tutorials.red_button.red_button.html
+++ b/docs/1.0-dev/api/evennia.contrib.tutorials.red_button.red_button.html
@@ -96,7 +96,7 @@ such as when closing the lid and un-blinding a character.
-
-
aliases = ['press', 'push', 'press button']
+aliases = ['push', 'press button', 'press']
@@ -125,7 +125,7 @@ check if the lid is open or closed.
-
-
search_index_entry = {'aliases': 'press push press button', 'category': 'general', 'key': 'push button', 'no_prefix': ' press push press button', 'tags': '', 'text': '\n Push the red button (lid closed)\n\n Usage:\n push button\n\n '}
+search_index_entry = {'aliases': 'push press button press', 'category': 'general', 'key': 'push button', 'no_prefix': ' push press button press', 'tags': '', 'text': '\n Push the red button (lid closed)\n\n Usage:\n push button\n\n '}
@@ -195,7 +195,7 @@ check if the lid is open or closed.
-
-
aliases = ['smash lid', 'break lid', 'smash']
+aliases = ['smash lid', 'smash', 'break lid']
@@ -222,7 +222,7 @@ break.
-
-
search_index_entry = {'aliases': 'smash lid break lid smash', 'category': 'general', 'key': 'smash glass', 'no_prefix': ' smash lid break lid smash', 'tags': '', 'text': '\n Smash the protective glass.\n\n Usage:\n smash glass\n\n Try to smash the glass of the button.\n\n '}
+search_index_entry = {'aliases': 'smash lid smash break lid', 'category': 'general', 'key': 'smash glass', 'no_prefix': ' smash lid smash break lid', 'tags': '', 'text': '\n Smash the protective glass.\n\n Usage:\n smash glass\n\n Try to smash the glass of the button.\n\n '}
@@ -322,7 +322,7 @@ be mutually exclusive.
-
-
aliases = ['press', 'push', 'press button']
+aliases = ['push', 'press button', 'press']
@@ -351,7 +351,7 @@ set in self.parse())
-
-
search_index_entry = {'aliases': 'press push press button', 'category': 'general', 'key': 'push button', 'no_prefix': ' press push press button', 'tags': '', 'text': '\n Push the red button\n\n Usage:\n push button\n\n '}
+search_index_entry = {'aliases': 'push press button press', 'category': 'general', 'key': 'push button', 'no_prefix': ' push press button press', 'tags': '', 'text': '\n Push the red button\n\n Usage:\n push button\n\n '}
@@ -449,7 +449,7 @@ be mutually exclusive.
-
-
aliases = ['examine', 'l', 'feel', 'ex', 'get', 'listen']
+aliases = ['listen', 'get', 'feel', 'examine', 'l', 'ex']
@@ -475,7 +475,7 @@ be mutually exclusive.
-
-
search_index_entry = {'aliases': 'examine l feel ex get listen', 'category': 'general', 'key': 'look', 'no_prefix': ' examine l feel ex get listen', 'tags': '', 'text': "\n Looking around in darkness\n\n Usage:\n look <obj>\n\n ... not that there's much to see in the dark.\n\n "}
+search_index_entry = {'aliases': 'listen get feel examine l ex', 'category': 'general', 'key': 'look', 'no_prefix': ' listen get feel examine l ex', 'tags': '', 'text': "\n Looking around in darkness\n\n Usage:\n look <obj>\n\n ... not that there's much to see in the dark.\n\n "}
diff --git a/docs/1.0-dev/api/evennia.contrib.tutorials.tutorial_world.objects.html b/docs/1.0-dev/api/evennia.contrib.tutorials.tutorial_world.objects.html
index 6ba1969e87..38e9cd5687 100644
--- a/docs/1.0-dev/api/evennia.contrib.tutorials.tutorial_world.objects.html
+++ b/docs/1.0-dev/api/evennia.contrib.tutorials.tutorial_world.objects.html
@@ -507,7 +507,7 @@ shift green root up/down
-
-
aliases = ['move', 'push', 'pull', 'shiftroot']
+aliases = ['shiftroot', 'push', 'move', 'pull']
@@ -543,7 +543,7 @@ yellow/green - horizontal roots
-
-
search_index_entry = {'aliases': 'move push pull shiftroot', 'category': 'tutorialworld', 'key': 'shift', 'no_prefix': ' move push pull shiftroot', 'tags': '', 'text': '\n Shifts roots around.\n\n Usage:\n shift blue root left/right\n shift red root left/right\n shift yellow root up/down\n shift green root up/down\n\n '}
+search_index_entry = {'aliases': 'shiftroot push move pull', 'category': 'tutorialworld', 'key': 'shift', 'no_prefix': ' shiftroot push move pull', 'tags': '', 'text': '\n Shifts roots around.\n\n Usage:\n shift blue root left/right\n shift red root left/right\n shift yellow root up/down\n shift green root up/down\n\n '}
@@ -730,7 +730,7 @@ parry - forgoes your attack but will make you harder to hit on next
-
-
aliases = ['stab', 'bash', 'thrust', 'chop', 'defend', 'kill', 'hit', 'fight', 'slash', 'parry', 'pierce']
+aliases = ['defend', 'stab', 'parry', 'thrust', 'pierce', 'hit', 'kill', 'slash', 'fight', 'chop', 'bash']
@@ -756,7 +756,7 @@ parry - forgoes your attack but will make you harder to hit on next
-
-
search_index_entry = {'aliases': 'stab bash thrust chop defend kill hit fight slash parry pierce', 'category': 'tutorialworld', 'key': 'attack', 'no_prefix': ' stab bash thrust chop defend kill hit fight slash parry pierce', 'tags': '', 'text': '\n Attack the enemy. Commands:\n\n stab <enemy>\n slash <enemy>\n parry\n\n stab - (thrust) makes a lot of damage but is harder to hit with.\n slash - is easier to land, but does not make as much damage.\n parry - forgoes your attack but will make you harder to hit on next\n enemy attack.\n\n '}
+search_index_entry = {'aliases': 'defend stab parry thrust pierce hit kill slash fight chop bash', 'category': 'tutorialworld', 'key': 'attack', 'no_prefix': ' defend stab parry thrust pierce hit kill slash fight chop bash', 'tags': '', 'text': '\n Attack the enemy. Commands:\n\n stab <enemy>\n slash <enemy>\n parry\n\n stab - (thrust) makes a lot of damage but is harder to hit with.\n slash - is easier to land, but does not make as much damage.\n parry - forgoes your attack but will make you harder to hit on next\n enemy attack.\n\n '}
diff --git a/docs/1.0-dev/api/evennia.contrib.tutorials.tutorial_world.rooms.html b/docs/1.0-dev/api/evennia.contrib.tutorials.tutorial_world.rooms.html
index 819dcb683f..6851b56d59 100644
--- a/docs/1.0-dev/api/evennia.contrib.tutorials.tutorial_world.rooms.html
+++ b/docs/1.0-dev/api/evennia.contrib.tutorials.tutorial_world.rooms.html
@@ -199,7 +199,7 @@ code except for adding in the details.
-
-
aliases = ['l', 'ls']
+aliases = ['ls', 'l']
@@ -214,7 +214,7 @@ code except for adding in the details.
-
-
search_index_entry = {'aliases': 'l ls', 'category': 'tutorialworld', 'key': 'look', 'no_prefix': ' l ls', 'tags': '', 'text': '\n looks at the room and on details\n\n Usage:\n look <obj>\n look <room detail>\n look *<account>\n\n Observes your location, details at your location or objects\n in your vicinity.\n\n Tutorial: This is a child of the default Look command, that also\n allows us to look at "details" in the room. These details are\n things to examine and offers some extra description without\n actually having to be actual database objects. It uses the\n return_detail() hook on TutorialRooms for this.\n '}
+search_index_entry = {'aliases': 'ls l', 'category': 'tutorialworld', 'key': 'look', 'no_prefix': ' ls l', 'tags': '', 'text': '\n looks at the room and on details\n\n Usage:\n look <obj>\n look <room detail>\n look *<account>\n\n Observes your location, details at your location or objects\n in your vicinity.\n\n Tutorial: This is a child of the default Look command, that also\n allows us to look at "details" in the room. These details are\n things to examine and offers some extra description without\n actually having to be actual database objects. It uses the\n return_detail() hook on TutorialRooms for this.\n '}
@@ -304,7 +304,7 @@ It defines a cmdset on itself for reading tutorial info about the location.
-
-
at_object_receive(new_arrival, source_location)[source]
+at_object_receive(new_arrival, source_location, move_type='move', **kwargs)[source]
When an object enter a tutorial room we tell other objects in
the room about it by trying to call a hook on them. The Mob object
uses this to cheaply get notified of enemies without having
@@ -550,7 +550,7 @@ self.add().
-
-
at_object_receive(character, source_location)[source]
+at_object_receive(character, source_location, move_type='move', **kwargs)[source]
Assign properties on characters
@@ -767,7 +767,7 @@ if they fall off the bridge.
-
-
aliases = ['?', 'h']
+aliases = ['h', '?']
@@ -793,7 +793,7 @@ if they fall off the bridge.
-
-
search_index_entry = {'aliases': '? h', 'category': 'tutorial world', 'key': 'help', 'no_prefix': ' ? h', 'tags': '', 'text': '\n Overwritten help command while on the bridge.\n '}
+search_index_entry = {'aliases': 'h ?', 'category': 'tutorial world', 'key': 'help', 'no_prefix': ' h ?', 'tags': '', 'text': '\n Overwritten help command while on the bridge.\n '}
@@ -866,14 +866,14 @@ over the bridge a little more interesting.
-
-
at_object_receive(character, source_location)[source]
+at_object_receive(character, source_location, move_type='move', **kwargs)[source]
This hook is called by the engine whenever the player is moved
into this room.
-
-
at_object_leave(character, target_location)[source]
+at_object_leave(character, target_location, move_type='move', **kwargs)[source]
This is triggered when the player leaves the bridge room.
@@ -919,7 +919,7 @@ to find something.
-
-
aliases = ['l', 'fiddle', 'feel', 'feel around', 'search']
+aliases = ['feel', 'feel around', 'search', 'l', 'fiddle']
@@ -947,7 +947,7 @@ random chance of eventually finding a light source.
-
-
search_index_entry = {'aliases': 'l fiddle feel feel around search', 'category': 'tutorialworld', 'key': 'look', 'no_prefix': ' l fiddle feel feel around search', 'tags': '', 'text': '\n Look around in darkness\n\n Usage:\n look\n\n Look around in the darkness, trying\n to find something.\n '}
+search_index_entry = {'aliases': 'feel feel around search l fiddle', 'category': 'tutorialworld', 'key': 'look', 'no_prefix': ' feel feel around search l fiddle', 'tags': '', 'text': '\n Look around in darkness\n\n Usage:\n look\n\n Look around in the darkness, trying\n to find something.\n '}
@@ -1120,13 +1120,13 @@ the room and also by the Light sources when they turn on.
-
-
at_object_receive(obj, source_location)[source]
+at_object_receive(obj, source_location, move_type='move', **kwargs)[source]
Called when an object enters the room.
-
-
at_object_leave(obj, target_location)[source]
+at_object_leave(obj, target_location, move_type='move', **kwargs)[source]
In case people leave with the light, we make sure to clear the
DarkCmdSet if necessary. This also works if they are
teleported away.
@@ -1178,7 +1178,7 @@ failure_teleport_msg - message to echo while teleporting to failure
-
-
at_object_receive(character, source_location)[source]
+at_object_receive(character, source_location, move_type='move', **kwargs)[source]
This hook is called by the engine whenever the player is moved into
this room.
@@ -1222,19 +1222,23 @@ character of tutorial-related attributes.
-
-
at_object_receive(character, source_location)[source]
+at_object_receive(character, source_location, move_type='move', **kwargs)[source]
Do cleanup.
-
-
at_object_leave(character, destination)[source]
+at_object_leave(character, destination, move_type='move', **kwargs)[source]
Called just before an object leaves from inside this object
- Parameters
moved_obj (Object) – The object leaving
target_location (Object) – Where moved_obj is going.
+move_type (str) – The type of move. “give”, “traverse”, etc.
+This is an arbitrary string provided to obj.move_to().
+Useful for altering messages or altering logic depending
+on the kind of movement.
**kwargs (dict) – Arbitrary, optional arguments for users
overriding the call (unused by default).
diff --git a/docs/1.0-dev/api/evennia.objects.objects.html b/docs/1.0-dev/api/evennia.objects.objects.html
index a31e5e2798..847dc57df9 100644
--- a/docs/1.0-dev/api/evennia.objects.objects.html
+++ b/docs/1.0-dev/api/evennia.objects.objects.html
@@ -621,7 +621,7 @@ depending on who the recipient is.
-
-
move_to(destination, quiet=False, emit_to_obj=None, use_destination=True, to_none=False, move_hooks=True, **kwargs)[source]
+move_to(destination, quiet=False, emit_to_obj=None, use_destination=True, to_none=False, move_hooks=True, move_type='move', **kwargs)[source]
Moves this object to a new location.
- Parameters
@@ -641,6 +641,11 @@ moving to a None location. If you want to run hooks, run them manually
move_hooks (bool) – If False, turn off the calling of move-related hooks
(at_pre/post_move etc) with quiet=True, this is as quiet a move
as can be done.
+move_type (str) – The “kind of move” being performed, such as “teleport”, “traverse”,
+“get”, “give”, or “drop”. The value can be arbitrary. By default, it only affects
+the text message generated by announce_move_to and announce_move_from by defining
+their {“type”: move_type} for outgoing text. This can be used for altering
+messages and/or overloaded hook behaviors.
- Keyword Arguments
@@ -974,13 +979,17 @@ based on the access result.
-
-
at_pre_move(destination, **kwargs)[source]
+at_pre_move(destination, move_type='move', **kwargs)[source]
Called just before starting to move this object to
destination.
- Parameters
destination (Object) – The object we are moving to
+move_type (str) – The type of move. “give”, “traverse”, etc.
+This is an arbitrary string provided to obj.move_to().
+Useful for altering messages or altering logic depending
+on the kind of movement.
**kwargs (dict) – Arbitrary, optional arguments for users
overriding the call (unused by default).
@@ -996,13 +1005,17 @@ before it is even started.
-
-
at_before_move(destination, **kwargs)
+at_before_move(destination, move_type='move', **kwargs)
Called just before starting to move this object to
destination.
- Parameters
destination (Object) – The object we are moving to
+move_type (str) – The type of move. “give”, “traverse”, etc.
+This is an arbitrary string provided to obj.move_to().
+Useful for altering messages or altering logic depending
+on the kind of movement.
**kwargs (dict) – Arbitrary, optional arguments for users
overriding the call (unused by default).
@@ -1018,7 +1031,7 @@ before it is even started.
-
-
announce_move_from(destination, msg=None, mapping=None, **kwargs)[source]
+announce_move_from(destination, msg=None, mapping=None, move_type='move', **kwargs)[source]
Called if the move is to be announced. This is
called while we are still standing in the old
location.
@@ -1028,6 +1041,10 @@ location.
destination (Object) – The place we are going to.
msg (str, optional) – a replacement message.
mapping (dict, optional) – additional mapping objects.
+move_type (str) – The type of move. “give”, “traverse”, etc.
+This is an arbitrary string provided to obj.move_to().
+Useful for altering messages or altering logic depending
+on the kind of movement.
**kwargs (dict) – Arbitrary, optional arguments for users
overriding the call (unused by default).
@@ -1046,7 +1063,7 @@ destination: the location of the object after moving.
-
-
announce_move_to(source_location, msg=None, mapping=None, **kwargs)[source]
+announce_move_to(source_location, msg=None, mapping=None, move_type='move', **kwargs)[source]
Called after the move if the move was not quiet. At this point
we are standing in the new location.
@@ -1055,6 +1072,10 @@ we are standing in the new location.
source_location (Object) – The place we came from
msg (str, optional) – the replacement message if location.
mapping (dict, optional) – additional mapping objects.
+move_type (str) – The type of move. “give”, “traverse”, etc.
+This is an arbitrary string provided to obj.move_to().
+Useful for altering messages or altering logic depending
+on the kind of movement.
**kwargs (dict) – Arbitrary, optional arguments for users
overriding the call (unused by default).
@@ -1074,7 +1095,7 @@ destination: the location of the object after moving.
-
-
at_post_move(source_location, **kwargs)[source]
+at_post_move(source_location, move_type='move', **kwargs)[source]
Called after move has completed, regardless of quiet mode or
not. Allows changes to the object due to the location it is
now in.
@@ -1082,6 +1103,10 @@ now in.
- Parameters
source_location (Object) – Wwhere we came from. This may be None.
+move_type (str) – The type of move. “give”, “traverse”, etc.
+This is an arbitrary string provided to obj.move_to().
+Useful for altering messages or altering logic depending
+on the kind of movement.
**kwargs (dict) – Arbitrary, optional arguments for users
overriding the call (unused by default).
@@ -1091,7 +1116,7 @@ overriding the call (unused by default).
-
-
at_after_move(source_location, **kwargs)
+at_after_move(source_location, move_type='move', **kwargs)
Called after move has completed, regardless of quiet mode or
not. Allows changes to the object due to the location it is
now in.
@@ -1099,6 +1124,10 @@ now in.
- Parameters
source_location (Object) – Wwhere we came from. This may be None.
+move_type (str) – The type of move. “give”, “traverse”, etc.
+This is an arbitrary string provided to obj.move_to().
+Useful for altering messages or altering logic depending
+on the kind of movement.
**kwargs (dict) – Arbitrary, optional arguments for users
overriding the call (unused by default).
@@ -1108,13 +1137,17 @@ overriding the call (unused by default).
-
-
at_object_leave(moved_obj, target_location, **kwargs)[source]
+at_object_leave(moved_obj, target_location, move_type='move', **kwargs)[source]
Called just before an object leaves from inside this object
- Parameters
moved_obj (Object) – The object leaving
target_location (Object) – Where moved_obj is going.
+move_type (str) – The type of move. “give”, “traverse”, etc.
+This is an arbitrary string provided to obj.move_to().
+Useful for altering messages or altering logic depending
+on the kind of movement.
**kwargs (dict) – Arbitrary, optional arguments for users
overriding the call (unused by default).
@@ -1124,7 +1157,7 @@ overriding the call (unused by default).
-
-
at_object_receive(moved_obj, source_location, **kwargs)[source]
+at_object_receive(moved_obj, source_location, move_type='move', **kwargs)[source]
Called after an object has been moved into this object.
- Parameters
@@ -1132,6 +1165,10 @@ overriding the call (unused by default).
moved_obj (Object) – The object moved into this one
source_location (Object) – Where moved_object came from.
Note that this could be None.
+move_type (str) – The type of move. “give”, “traverse”, etc.
+This is an arbitrary string provided to obj.move_to().
+Useful for altering messages or altering logic depending
+on the kind of movement.
**kwargs (dict) – Arbitrary, optional arguments for users
overriding the call (unused by default).
@@ -1818,13 +1855,13 @@ Character object works).
-
-
at_post_move(source_location, **kwargs)[source]
+at_post_move(source_location, move_type='move', **kwargs)[source]
We make sure to look around after a move.
-
-
at_after_move(source_location, **kwargs)
+at_after_move(source_location, move_type='move', **kwargs)
We make sure to look around after a move.
diff --git a/docs/1.0-dev/api/evennia.utils.eveditor.html b/docs/1.0-dev/api/evennia.utils.eveditor.html
index 54dc0162ef..c3301f18b6 100644
--- a/docs/1.0-dev/api/evennia.utils.eveditor.html
+++ b/docs/1.0-dev/api/evennia.utils.eveditor.html
@@ -287,7 +287,7 @@ indentation.
-
-
aliases = [':I', ':dw', ':i', ':', ':x', ':S', ':fi', ':w', ':uu', ':dd', ':u', ':wq', ':A', ':j', '::', ':>', ':q', ':UU', ':y', ':s', ':p', ':=', ':f', ':<', ':q!', ':fd', ':!', ':DD', ':r', ':h', ':echo', ':::']
+aliases = [':r', ':j', ':h', ':UU', ':s', ':y', ':i', ':w', ':::', ':dw', ':x', ':echo', ':u', ':S', ':<', '::', ':>', ':!', ':dd', ':uu', ':', ':I', ':q', ':wq', ':fi', ':p', ':DD', ':q!', ':fd', ':=', ':f', ':A']
@@ -315,7 +315,7 @@ efficient presentation.
-
-
search_index_entry = {'aliases': ':I :dw :i : :x :S :fi :w :uu :dd :u :wq :A :j :: :> :q :UU :y :s :p := :f :< :q! :fd :! :DD :r :h :echo :::', 'category': 'general', 'key': ':editor_command_group', 'no_prefix': ' :I :dw :i : :x :S :fi :w :uu :dd :u :wq :A :j :: :> :q :UU :y :s :p := :f :< :q! :fd :! :DD :r :h :echo :::', 'tags': '', 'text': '\n Commands for the editor\n '}
+search_index_entry = {'aliases': ':r :j :h :UU :s :y :i :w ::: :dw :x :echo :u :S :< :: :> :! :dd :uu : :I :q :wq :fi :p :DD :q! :fd := :f :A', 'category': 'general', 'key': ':editor_command_group', 'no_prefix': ' :r :j :h :UU :s :y :i :w ::: :dw :x :echo :u :S :< :: :> :! :dd :uu : :I :q :wq :fi :p :DD :q! :fd := :f :A', 'tags': '', 'text': '\n Commands for the editor\n '}
diff --git a/docs/1.0-dev/api/evennia.utils.evmenu.html b/docs/1.0-dev/api/evennia.utils.evmenu.html
index ed1a9bcaf4..bc4c1ae939 100644
--- a/docs/1.0-dev/api/evennia.utils.evmenu.html
+++ b/docs/1.0-dev/api/evennia.utils.evmenu.html
@@ -954,7 +954,7 @@ single question.
+aliases = ['n', 'a', 'abort', 'no', '__nomatch_command', 'yes', 'y']
@@ -980,7 +980,7 @@ single question.
+search_index_entry = {'aliases': 'n a abort no __nomatch_command yes y', 'category': 'general', 'key': '__noinput_command', 'no_prefix': ' n a abort no __nomatch_command yes y', 'tags': '', 'text': '\n Handle a prompt for yes or no. Press [return] for the default choice.\n\n '}
diff --git a/docs/1.0-dev/api/evennia.utils.evmore.html b/docs/1.0-dev/api/evennia.utils.evmore.html
index c87fefca1c..71a6ff3b9b 100644
--- a/docs/1.0-dev/api/evennia.utils.evmore.html
+++ b/docs/1.0-dev/api/evennia.utils.evmore.html
@@ -88,7 +88,7 @@ the caller.msg() construct every time the page is updated.
-
-
aliases = ['q', 'next', 'n', 'abort', 'a', 't', 'end', 'e', 'p', 'quit', 'top', 'previous']
+aliases = ['top', 't', 'end', 'n', 'a', 'p', 'e', 'abort', 'next', 'q', 'quit', 'previous']
@@ -114,7 +114,7 @@ the caller.msg() construct every time the page is updated.
-
-
search_index_entry = {'aliases': 'q next n abort a t end e p quit top previous', 'category': 'general', 'key': '__noinput_command', 'no_prefix': ' q next n abort a t end e p quit top previous', 'tags': '', 'text': '\n Manipulate the text paging. Catch no-input with aliases.\n '}
+search_index_entry = {'aliases': 'top t end n a p e abort next q quit previous', 'category': 'general', 'key': '__noinput_command', 'no_prefix': ' top t end n a p e abort next q quit previous', 'tags': '', 'text': '\n Manipulate the text paging. Catch no-input with aliases.\n '}
diff --git a/docs/1.0-dev/genindex.html b/docs/1.0-dev/genindex.html
index e79ef995c6..75a19e4f0f 100644
--- a/docs/1.0-dev/genindex.html
+++ b/docs/1.0-dev/genindex.html
@@ -14390,12 +14390,8 @@
- parse_opts() (in module evennia.contrib.utils.tree_select.tree_select)
- - parse_sdescs_and_recogs() (evennia.contrib.rpg.rpsystem.tests.TestRPSystem method)
-
-
- parse_to_any() (evennia.utils.funcparser.FuncParser method)
- ParseError
@@ -18697,6 +18693,8 @@
- test_parse_for_things() (evennia.contrib.full_systems.evscaperoom.tests.TestUtils method)
- test_parse_language() (evennia.contrib.rpg.rpsystem.tests.TestRPSystem method)
+
+ - test_parse_sdescs_and_recogs() (evennia.contrib.rpg.rpsystem.tests.TestRPSystem method)
- test_password() (evennia.commands.default.tests.TestAccount method)
@@ -18739,6 +18737,8 @@
- test_pos_shortcut() (evennia.contrib.rpg.traits.tests.TestNumericTraitOperators method)
- test_pose() (evennia.commands.default.tests.TestGeneral method)
+
+ - test_possessive_selfref() (evennia.contrib.rpg.rpsystem.tests.TestRPSystem method)
- test_pre_craft() (evennia.contrib.game_systems.crafting.tests.TestCraftingRecipeBase method)
@@ -18895,11 +18895,11 @@
- test_shortest_path_04() (evennia.contrib.grid.xyzgrid.tests.TestMap3 method)
- test_shortest_path_05() (evennia.contrib.grid.xyzgrid.tests.TestMap3 method)
-
- - test_shortest_path_06() (evennia.contrib.grid.xyzgrid.tests.TestMap3 method)
+ - test_shortest_path_06() (evennia.contrib.grid.xyzgrid.tests.TestMap3 method)
+
- test_shortest_path_07() (evennia.contrib.grid.xyzgrid.tests.TestMap3 method)
- test_shortest_path_08() (evennia.contrib.grid.xyzgrid.tests.TestMap3 method)
diff --git a/docs/1.0-dev/objects.inv b/docs/1.0-dev/objects.inv
index 48b92b3254652ba33262fb65b3a9e96789ae4c43..0465787693c542aef4537f153879f7c0b408a33c 100644
GIT binary patch
delta 99763
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
z
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 |