From 5228a84fc479cea3732f3ca1de373f9b708f3629 Mon Sep 17 00:00:00 2001
From: Evennia docbuilder action
Date: Mon, 7 Nov 2022 17:18:33 +0000
Subject: [PATCH] Updated HTML docs
---
docs/0.9.5/.buildinfo | 2 +-
docs/0.9.5/Default-Commands.html | 22 ++---
docs/0.9.5/_sources/Default-Commands.md.txt | 22 ++---
.../evennia.commands.default.building.html | 6 +-
.../api/evennia.commands.default.comms.html | 2 +-
.../api/evennia.commands.default.general.html | 4 +-
.../api/evennia.commands.default.system.html | 4 +-
.../evennia.commands.default.unloggedin.html | 6 +-
docs/0.9.5/api/evennia.contrib.barter.html | 2 +-
docs/0.9.5/api/evennia.contrib.dice.html | 2 +-
.../api/evennia.contrib.email_login.html | 6 +-
...vennia.contrib.ingame_python.commands.html | 2 +-
docs/0.9.5/api/evennia.contrib.rpsystem.html | 2 +-
.../evennia.contrib.turnbattle.tb_basic.html | 2 +-
.../evennia.contrib.turnbattle.tb_equip.html | 2 +-
.../evennia.contrib.turnbattle.tb_items.html | 2 +-
.../evennia.contrib.turnbattle.tb_magic.html | 2 +-
.../evennia.contrib.turnbattle.tb_range.html | 2 +-
...b.tutorial_examples.cmdset_red_button.html | 6 +-
...vennia.contrib.tutorial_world.objects.html | 4 +-
.../evennia.contrib.tutorial_world.rooms.html | 4 +-
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/Coding/Changelog.html | 1 +
.../_modules/evennia/commands/cmdhandler.html | 28 +++---
.../evennia/commands/default/comms.html | 52 +++++------
.../evennia/contrib/rpg/traits/traits.html | 24 +++--
.../evennia/server/serversession.html | 21 +++--
.../_modules/evennia/utils/evtable.html | 87 +++++++-----------
.../_modules/evennia/utils/funcparser.html | 18 +++-
.../1.0-dev/_modules/evennia/utils/utils.html | 31 +++++--
docs/1.0-dev/_sources/Coding/Changelog.md.txt | 1 +
.../api/evennia.commands.default.account.html | 4 +-
.../api/evennia.commands.default.admin.html | 4 +-
...evennia.commands.default.batchprocess.html | 4 +-
.../evennia.commands.default.building.html | 12 +--
.../api/evennia.commands.default.comms.html | 4 +-
.../api/evennia.commands.default.general.html | 16 ++--
.../api/evennia.commands.default.system.html | 4 +-
.../api/evennia.commands.default.tests.html | 2 +-
.../evennia.commands.default.unloggedin.html | 16 ++--
....base_systems.email_login.email_login.html | 16 ++--
...b.base_systems.ingame_python.commands.html | 4 +-
...systems.mux_comms_cmds.mux_comms_cmds.html | 4 +-
...rib.full_systems.evscaperoom.commands.html | 20 ++--
...trib.grid.extended_room.extended_room.html | 4 +-
.../api/evennia.contrib.rpg.dice.dice.html | 4 +-
...evennia.contrib.rpg.rpsystem.rpsystem.html | 4 +-
.../evennia.contrib.rpg.traits.traits.html | 2 +-
...ntrib.tutorials.red_button.red_button.html | 16 ++--
...trib.tutorials.tutorial_world.objects.html | 16 ++--
...ontrib.tutorials.tutorial_world.rooms.html | 12 +--
...utils.git_integration.git_integration.html | 4 +-
.../api/evennia.server.serversession.html | 5 +
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/api/evennia.utils.utils.html | 11 +--
docs/1.0-dev/genindex.html | 4 +-
docs/1.0-dev/objects.inv | Bin 157515 -> 157524 bytes
docs/1.0-dev/searchindex.js | 2 +-
62 files changed, 296 insertions(+), 285 deletions(-)
diff --git a/docs/0.9.5/.buildinfo b/docs/0.9.5/.buildinfo
index 49b2b734d2..38dbab4e50 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: a880bc096f8529f201ba8eed5e4f026a
+config: 6577127c7bdc54da90db2f71dcfc95cd
tags: 645f666f9bcd5a90fca523b33c5a78b7
diff --git a/docs/0.9.5/Default-Commands.html b/docs/0.9.5/Default-Commands.html
index fa9f77443b..53efccfda5 100644
--- a/docs/0.9.5/Default-Commands.html
+++ b/docs/0.9.5/Default-Commands.html
@@ -55,7 +55,7 @@ with
__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)
+access [groups, hierarchy] (cmdset: CharacterCmdSet, help-category: General)
accounts [listaccounts, account] (cmdset: CharacterCmdSet, help-category: System)
addcom [aliaschan, chanalias] (cmdset: AccountCmdSet, help-category: Comms)
alias [setobjalias] (cmdset: CharacterCmdSet, help-category: Building)
@@ -67,13 +67,13 @@ with cdesc (cmdset: AccountCmdSet, help-category: Comms)
cdestroy (cmdset: AccountCmdSet, help-category: Comms)
cemit [cmsg] (cmdset: AccountCmdSet, help-category: Comms)
-channels [all channels, clist, channellist, chanlist, comlist] (cmdset: AccountCmdSet, help-category: Comms)
+channels [clist, channellist, comlist, chanlist, all channels] (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 [co, con, conn] (cmdset: UnloggedinCmdSet, help-category: General)
+connect [con, conn, co] (cmdset: UnloggedinCmdSet, help-category: General)
copy (cmdset: CharacterCmdSet, help-category: Building)
cpattr (cmdset: CharacterCmdSet, help-category: Building)
create (cmdset: CharacterCmdSet, help-category: Building)
@@ -85,13 +85,13 @@ with dig (cmdset: CharacterCmdSet, help-category: Building)
drop (cmdset: CharacterCmdSet, help-category: General)
encoding [encode] (cmdset: UnloggedinCmdSet, help-category: General)
-examine [ex, exam] (cmdset: AccountCmdSet, help-category: Building)
-find [search, locate] (cmdset: CharacterCmdSet, help-category: Building)
+examine [exam, ex] (cmdset: AccountCmdSet, help-category: Building)
+find [locate, search] (cmdset: CharacterCmdSet, help-category: Building)
get [grab] (cmdset: CharacterCmdSet, help-category: General)
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)
@@ -105,24 +105,24 @@ with mvattr (cmdset: CharacterCmdSet, help-category: Building)
name [rename] (cmdset: CharacterCmdSet, help-category: Building)
nick [nickname, nicks] (cmdset: AccountCmdSet, help-category: General)
-objects [listobjects, listobjs, db, stats] (cmdset: CharacterCmdSet, help-category: System)
+objects [listobjs, listobjects, stats, db] (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)
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 [serverprocess, serverload] (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 [update, type, parent, swap] (cmdset: CharacterCmdSet, help-category: Building)
+typeclass [type, swap, parent, update] (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 8e77eece12..51f5a1b202 100644
--- a/docs/0.9.5/_sources/Default-Commands.md.txt
+++ b/docs/0.9.5/_sources/Default-Commands.md.txt
@@ -16,7 +16,7 @@ with [EvEditor](./EvEditor.md), flipping pages in [EvMore](./EvMore.md) or using
- [**__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_)
+- [**access** [groups, hierarchy]](evennia.commands.default.general.CmdAccess) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _General_)
- [**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_)
@@ -28,13 +28,13 @@ with [EvEditor](./EvEditor.md), flipping pages in [EvMore](./EvMore.md) or using
- [**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, clist, channellist, chanlist, comlist]](evennia.commands.default.comms.CmdChannels) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_)
+- [**channels** [clist, channellist, comlist, chanlist, all channels]](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** [co, con, conn]](evennia.commands.default.unloggedin.CmdUnconnectedConnect) (cmdset: [UnloggedinCmdSet](evennia.commands.default.cmdset_unloggedin.UnloggedinCmdSet), help-category: _General_)
+- [**connect** [con, conn, 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_)
@@ -46,13 +46,13 @@ with [EvEditor](./EvEditor.md), flipping pages in [EvMore](./EvMore.md) or using
- [**dig**](evennia.commands.default.building.CmdDig) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_)
- [**drop**](evennia.commands.default.general.CmdDrop) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _General_)
- [**encoding** [encode]](evennia.commands.default.unloggedin.CmdUnconnectedEncoding) (cmdset: [UnloggedinCmdSet](evennia.commands.default.cmdset_unloggedin.UnloggedinCmdSet), help-category: _General_)
-- [**examine** [ex, exam]](evennia.commands.default.building.CmdExamine) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Building_)
-- [**find** [search, locate]](evennia.commands.default.building.CmdFind) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_)
+- [**examine** [exam, ex]](evennia.commands.default.building.CmdExamine) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Building_)
+- [**find** [locate, search]](evennia.commands.default.building.CmdFind) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_)
- [**get** [grab]](evennia.commands.default.general.CmdGet) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _General_)
- [**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_)
@@ -66,24 +66,24 @@ with [EvEditor](./EvEditor.md), flipping pages in [EvMore](./EvMore.md) or using
- [**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** [nickname, nicks]](evennia.commands.default.general.CmdNick) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_)
-- [**objects** [listobjects, listobjs, db, stats]](evennia.commands.default.system.CmdObjects) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _System_)
+- [**objects** [listobjs, listobjects, stats, db]](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_)
- [**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** [serverprocess, serverload]](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** [update, type, parent, swap]](evennia.commands.default.building.CmdTypeclass) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_)
+- [**typeclass** [type, swap, parent, update]](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.building.html b/docs/0.9.5/api/evennia.commands.default.building.html
index 532724dc7d..9725e93c81 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 = ['update', 'type', 'parent', 'swap']
+aliases = ['type', 'swap', 'parent', 'update']
@@ -1355,7 +1355,7 @@ If object is not specified, the current location is examined.
-
-
aliases = ['ex', 'exam']
+aliases = ['exam', 'ex']
@@ -1481,7 +1481,7 @@ one is given.
-
-
aliases = ['search', 'locate']
+aliases = ['locate', 'search']
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 0be133439f..d1439a2364 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', 'clist', 'channellist', 'chanlist', 'comlist']
+aliases = ['clist', 'channellist', 'comlist', 'chanlist', 'all channels']
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 7ad6623f9a..47f4ca1caf 100644
--- a/docs/0.9.5/api/evennia.commands.default.general.html
+++ b/docs/0.9.5/api/evennia.commands.default.general.html
@@ -593,7 +593,7 @@ automatically begin with your name.
-
-
aliases = [':', 'emote']
+aliases = ['emote', ':']
@@ -647,7 +647,7 @@ which permission groups you are a member of.
-
-
aliases = ['hierarchy', 'groups']
+aliases = ['groups', 'hierarchy']
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 88d4d8d434..9f8f625172 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 = ['listobjects', 'listobjs', 'db', 'stats']
+aliases = ['listobjs', 'listobjects', 'stats', 'db']
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 25016cf305..4c1a4f424f 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 = ['co', 'con', 'conn']
+aliases = ['con', 'conn', 'co']
@@ -165,7 +165,7 @@ version is a bit more complicated.
-
-
aliases = ['q', 'qu']
+aliases = ['qu', 'q']
@@ -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.barter.html b/docs/0.9.5/api/evennia.contrib.barter.html
index aaa45d309f..c0def718e9 100644
--- a/docs/0.9.5/api/evennia.contrib.barter.html
+++ b/docs/0.9.5/api/evennia.contrib.barter.html
@@ -653,7 +653,7 @@ try to influence the other part in the deal.
-
-
aliases = ['offers', 'deal']
+aliases = ['deal', 'offers']
diff --git a/docs/0.9.5/api/evennia.contrib.dice.html b/docs/0.9.5/api/evennia.contrib.dice.html
index 6dc941e2e3..31f97ae1cb 100644
--- a/docs/0.9.5/api/evennia.contrib.dice.html
+++ b/docs/0.9.5/api/evennia.contrib.dice.html
@@ -151,7 +151,7 @@ everyone but the person rolling.
-
-
aliases = ['@dice', 'roll']
+aliases = ['roll', '@dice']
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 bbd86578ac..c7abab6215 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 = ['co', 'con', 'conn']
+aliases = ['con', 'conn', 'co']
@@ -173,7 +173,7 @@ version is a bit more complicated.
-
-
aliases = ['q', 'qu']
+aliases = ['qu', 'q']
@@ -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.ingame_python.commands.html b/docs/0.9.5/api/evennia.contrib.ingame_python.commands.html
index bb06c69553..43cb95ffd7 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 = ['@callbacks', '@callback', '@calls']
+aliases = ['@calls', '@callback', '@callbacks']
diff --git a/docs/0.9.5/api/evennia.contrib.rpsystem.html b/docs/0.9.5/api/evennia.contrib.rpsystem.html
index 80729fb150..7efd4eb780 100644
--- a/docs/0.9.5/api/evennia.contrib.rpsystem.html
+++ b/docs/0.9.5/api/evennia.contrib.rpsystem.html
@@ -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.turnbattle.tb_basic.html b/docs/0.9.5/api/evennia.contrib.turnbattle.tb_basic.html
index 4383f10009..c337ec3963 100644
--- a/docs/0.9.5/api/evennia.contrib.turnbattle.tb_basic.html
+++ b/docs/0.9.5/api/evennia.contrib.turnbattle.tb_basic.html
@@ -562,7 +562,7 @@ if there are still any actions you can take.
-
-
aliases = ['hold', 'wait']
+aliases = ['wait', 'hold']
diff --git a/docs/0.9.5/api/evennia.contrib.turnbattle.tb_equip.html b/docs/0.9.5/api/evennia.contrib.turnbattle.tb_equip.html
index a9e6929a11..76ba8cab38 100644
--- a/docs/0.9.5/api/evennia.contrib.turnbattle.tb_equip.html
+++ b/docs/0.9.5/api/evennia.contrib.turnbattle.tb_equip.html
@@ -679,7 +679,7 @@ if there are still any actions you can take.
-
-
aliases = ['hold', 'wait']
+aliases = ['wait', 'hold']
diff --git a/docs/0.9.5/api/evennia.contrib.turnbattle.tb_items.html b/docs/0.9.5/api/evennia.contrib.turnbattle.tb_items.html
index c58f087ca3..5a993996d6 100644
--- a/docs/0.9.5/api/evennia.contrib.turnbattle.tb_items.html
+++ b/docs/0.9.5/api/evennia.contrib.turnbattle.tb_items.html
@@ -713,7 +713,7 @@ if there are still any actions you can take.
-
-
aliases = ['hold', 'wait']
+aliases = ['wait', 'hold']
diff --git a/docs/0.9.5/api/evennia.contrib.turnbattle.tb_magic.html b/docs/0.9.5/api/evennia.contrib.turnbattle.tb_magic.html
index 45e59490ce..9d00e31190 100644
--- a/docs/0.9.5/api/evennia.contrib.turnbattle.tb_magic.html
+++ b/docs/0.9.5/api/evennia.contrib.turnbattle.tb_magic.html
@@ -585,7 +585,7 @@ if there are still any actions you can take.
-
-
aliases = ['hold', 'wait']
+aliases = ['wait', 'hold']
diff --git a/docs/0.9.5/api/evennia.contrib.turnbattle.tb_range.html b/docs/0.9.5/api/evennia.contrib.turnbattle.tb_range.html
index 91da9c133f..bbd3dfc46f 100644
--- a/docs/0.9.5/api/evennia.contrib.turnbattle.tb_range.html
+++ b/docs/0.9.5/api/evennia.contrib.turnbattle.tb_range.html
@@ -997,7 +997,7 @@ if there are still any actions you can take.
-
-
aliases = ['hold', 'wait']
+aliases = ['wait', 'hold']
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 c6788baba3..4c23c6d582 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
@@ -155,7 +155,7 @@ lid-state respectively.
-
-
aliases = ['smash lid', 'smash', 'break lid']
+aliases = ['smash', 'smash lid', 'break lid']
@@ -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 = ['get', 'l', 'ex', 'examine', 'listen', 'feel']
+aliases = ['ex', 'examine', 'l', 'feel', 'get', 'listen']
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 fe73f416ae..9af16cce57 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
@@ -479,7 +479,7 @@ shift green root up/down
-
-
aliases = ['shiftroot', 'push', 'pull', 'move']
+aliases = ['pull', 'push', 'shiftroot', 'move']
@@ -692,7 +692,7 @@ parry - forgoes your attack but will make you harder to hit on next
-
-
aliases = ['parry', 'pierce', 'defend', 'fight', 'thrust', 'stab', 'chop', 'slash', 'hit', 'kill', 'bash']
+aliases = ['pierce', 'stab', 'parry', 'thrust', 'bash', 'fight', 'kill', 'slash', 'chop', 'hit', 'defend']
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 a471e55732..42d028f100 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
@@ -675,7 +675,7 @@ if they fall off the bridge.
-
-
aliases = ['h', '?']
+aliases = ['?', 'h']
@@ -822,7 +822,7 @@ to find something.
-
-
aliases = ['l', 'feel around', 'search', 'fiddle', 'feel']
+aliases = ['search', 'l', 'feel', 'feel around', 'fiddle']
diff --git a/docs/0.9.5/api/evennia.utils.eveditor.html b/docs/0.9.5/api/evennia.utils.eveditor.html
index e5344e235d..9320939082 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 = [':dw', ':I', ':', ':x', ':echo', ':r', ':wq', ':UU', ':s', ':<', ':A', ':w', ':uu', ':DD', '::', ':::', ':q!', ':h', ':p', ':dd', ':fi', ':f', ':fd', ':i', ':!', ':>', ':=', ':S', ':u', ':y', ':j', ':q']
+aliases = [':p', ':S', ':fi', ':uu', ':q!', '::', ':<', ':h', ':dw', ':dd', ':::', ':wq', ':j', ':DD', ':q', ':r', ':UU', ':echo', ':fd', ':s', ':A', ':u', ':', ':I', ':>', ':=', ':i', ':y', ':w', ':x', ':f', ':!']
diff --git a/docs/0.9.5/api/evennia.utils.evmore.html b/docs/0.9.5/api/evennia.utils.evmore.html
index 8c159db128..10b0e3cb85 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 = ['back', 'n', 'abort', 'q', 't', 'top', 'a', 'next', 'quit', 'b', 'end', 'e']
+aliases = ['abort', 'e', 'back', 'top', 't', 'b', 'a', 'n', 'next', 'end', 'quit', 'q']
diff --git a/docs/1.0-dev/.buildinfo b/docs/1.0-dev/.buildinfo
index c4c578401f..f030f92ba1 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: 7d02a7d17e174b705a1b69aa05c28690
+config: efd2dca4fdb29e676c562567a4090533
tags: 645f666f9bcd5a90fca523b33c5a78b7
diff --git a/docs/1.0-dev/Coding/Changelog.html b/docs/1.0-dev/Coding/Changelog.html
index 6c456ce381..5688724b17 100644
--- a/docs/1.0-dev/Coding/Changelog.html
+++ b/docs/1.0-dev/Coding/Changelog.html
@@ -378,6 +378,7 @@ main template (e.g. for single-character replacements).
(mainly for custom align/valign). EvCells now makes use of utils.justify.
utils.justify now supports align="a" (absolute alignments. This keeps
the given left indent but crops/fills to the width. Used in EvCells.
+EvTable now supports passing EvColumns as a list directly, (EvTable(table=[colA,colB]))
diff --git a/docs/1.0-dev/_modules/evennia/commands/cmdhandler.html b/docs/1.0-dev/_modules/evennia/commands/cmdhandler.html
index 6b3aadd148..10068d95e9 100644
--- a/docs/1.0-dev/_modules/evennia/commands/cmdhandler.html
+++ b/docs/1.0-dev/_modules/evennia/commands/cmdhandler.html
@@ -103,21 +103,21 @@
"""
-from collections import defaultdict
-from weakref import WeakValueDictionary
-from traceback import format_exc
-from itertools import chain
-from copy import copy
import types
-from twisted.internet import reactor
-from twisted.internet.task import deferLater
-from twisted.internet.defer import inlineCallbacks, returnValue
+from collections import defaultdict
+from copy import copy
+from itertools import chain
+from traceback import format_exc
+from weakref import WeakValueDictionary
+
from django.conf import settings
+from django.utils.translation import gettext as _
from evennia.commands.command import InterruptCommand
from evennia.utils import logger, utils
from evennia.utils.utils import string_suggestions
-
-from django.utils.translation import gettext as _
+from twisted.internet import reactor
+from twisted.internet.defer import inlineCallbacks, returnValue
+from twisted.internet.task import deferLater
_IN_GAME_ERRORS = settings.IN_GAME_ERRORS
@@ -216,7 +216,7 @@
)
_ERROR_RECURSION_LIMIT = _(
- "Command recursion limit ({recursion_limit}) " "reached for '{raw_cmdname}' ({cmdclass})."
+ "Command recursion limit ({recursion_limit}) reached for '{raw_cmdname}' ({cmdclass})."
)
@@ -554,8 +554,10 @@
cset.duplicates = cset.old_duplicates
# important - this syncs the CmdSetHandler's .current field with the
# true current cmdset!
- if cmdset:
- caller.cmdset.current = cmdset
+ # TODO - removed because this causes cmdset overlaps across sessions/accounts
+ # - see https://github.com/evennia/evennia/issues/2855
+ # if cmdset:
+ # caller.cmdset.current = cmdset
returnValue(cmdset)
except ErrorReported:
diff --git a/docs/1.0-dev/_modules/evennia/commands/default/comms.html b/docs/1.0-dev/_modules/evennia/commands/default/comms.html
index 70ebb46c71..c185888c1b 100644
--- a/docs/1.0-dev/_modules/evennia/commands/default/comms.html
+++ b/docs/1.0-dev/_modules/evennia/commands/default/comms.html
@@ -84,15 +84,15 @@
"""
from django.conf import settings
-from evennia.comms.models import Msg
-from evennia.accounts.models import AccountDB
from evennia.accounts import bots
-from evennia.locks.lockhandler import LockException
+from evennia.accounts.models import AccountDB
from evennia.comms.comms import DefaultChannel
+from evennia.comms.models import Msg
+from evennia.locks.lockhandler import LockException
from evennia.utils import create, logger, utils
+from evennia.utils.evmenu import ask_yes_no
from evennia.utils.logger import tail_log_file
from evennia.utils.utils import class_from_module, strip_unsafe_input
-from evennia.utils.evmenu import ask_yes_no
COMMAND_DEFAULT_CLASS = class_from_module(settings.COMMAND_DEFAULT_CLASS)
CHANNEL_DEFAULT_TYPECLASS = class_from_module(
@@ -361,8 +361,8 @@
return None
elif len(channels) > 1:
self.msg(
- "Multiple possible channel matches/alias for "
- f"'{channelname}':\n" + ", ".join(chan.key for chan in channels)
+ f"Multiple possible channel matches/alias for '{channelname}':\n"
+ + ", ".join(chan.key for chan in channels)
)
return None
return channels[0]
@@ -945,9 +945,7 @@
subscribed, _ = self.list_channels()
table = self.display_subbed_channels(subscribed)
- self.msg(
- "\n|wChannel subscriptions|n " f"(use |w/all|n to see all available):\n{table}"
- )
+ self.msg(f"\n|wChannel subscriptions|n (use |w/all|n to see all available):\n{table}")
return
if not self.switches and not self.args:
@@ -1013,8 +1011,8 @@
)
elif len(found_channels) > 1:
errors.append(
- "Multiple possible channel matches/alias for "
- "'{channel_name}':\n" + ", ".join(chan.key for chan in found_channels)
+ "Multiple possible channel matches/alias for '{channel_name}':\n"
+ + ", ".join(chan.key for chan in found_channels)
)
else:
channels.append(found_channels[0])
@@ -1041,7 +1039,7 @@
header = f"Channel |w{channel.key}|n"
self.msg(
f"{header}\n(use |w{channel.key} <msg>|n (or a channel-alias) "
- f"to chat and the 'channel' command "
+ "to chat and the 'channel' command "
f"to customize)\n{table}"
)
elif channel in available:
@@ -1091,9 +1089,7 @@
# un-subscribe from a channel
success, err = self.unsub_from_channel(channel)
if success:
- self.msg(
- f"You un-subscribed from channel {channel.key}. " "All aliases were cleared."
- )
+ self.msg(f"You un-subscribed from channel {channel.key}. All aliases were cleared.")
else:
self.msg(err)
return
@@ -1145,9 +1141,11 @@
ask_yes_no(
caller,
- prompt=f"Are you sure you want to delete channel '{channel.key}' "
- "(make sure name is correct!)?\nThis will disconnect and "
- "remove all users' aliases. {options}?",
+ prompt=(
+ f"Are you sure you want to delete channel '{channel.key}' "
+ "(make sure name is correct!)?\nThis will disconnect and "
+ "remove all users' aliases. {options}?"
+ ),
yes_action=_perform_delete,
no_action="Aborted.",
default="N",
@@ -1261,9 +1259,11 @@
)
ask_yes_no(
caller,
- prompt=f"Are you sure you want to boot user {target.key} from "
- f"channel(s) {channames} (make sure name/channels are correct{reasonwarn}). "
- "{options}?",
+ prompt=(
+ f"Are you sure you want to boot user {target.key} from "
+ f"channel(s) {channames} (make sure name/channels are correct{reasonwarn}). "
+ "{options}?"
+ ),
yes_action=_boot_user,
no_action="Aborted.",
default="Y",
@@ -1413,15 +1413,15 @@
caller = self.caller
# get the messages we've sent (not to channels)
- pages_we_sent = Msg.objects.get_messages_by_sender(caller)
+ pages_we_sent = Msg.objects.get_messages_by_sender(caller).order_by("-db_date_created")
# get last messages we've got
- pages_we_got = Msg.objects.get_messages_by_receiver(caller)
+ pages_we_got = Msg.objects.get_messages_by_receiver(caller).order_by("-db_date_created")
targets, message, number = [], None, None
if "last" in self.switches:
if pages_we_sent:
- recv = ",".join(obj.key for obj in pages_we_sent[-1].receivers)
- self.msg("You last paged |c%s|n:%s" % (recv, pages_we_sent[-1].message))
+ recv = ",".join(obj.key for obj in pages_we_sent[0].receivers)
+ self.msg(f"You last paged |c{recv}|n:{pages_we_sent[0].message}")
return
else:
self.msg("You haven't paged anyone yet.")
@@ -1461,7 +1461,7 @@
if not targets:
# no target given - send to last person we paged
if pages_we_sent:
- targets = pages_we_sent[-1].receivers
+ targets = pages_we_sent[0].receivers
else:
self.msg("Who do you want page?")
return
diff --git a/docs/1.0-dev/_modules/evennia/contrib/rpg/traits/traits.html b/docs/1.0-dev/_modules/evennia/contrib/rpg/traits/traits.html
index 3e75a558e5..9ec6699c10 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/rpg/traits/traits.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/rpg/traits/traits.html
@@ -529,13 +529,13 @@
"""
-from time import time
-from django.conf import settings
from functools import total_ordering
-from evennia.utils.dbserialize import _SaverDict
-from evennia.utils import logger
-from evennia.utils.utils import inherits_from, class_from_module, list_to_string, percent
+from time import time
+from django.conf import settings
+from evennia.utils import logger
+from evennia.utils.dbserialize import _SaverDict
+from evennia.utils.utils import class_from_module, inherits_from, list_to_string, percent
# Available Trait classes.
# This way the user can easily supply their own. Each
@@ -668,7 +668,7 @@
trait_cls = self._get_trait_class(trait_key=trait_key)
valid_keys = list_to_string(list(trait_cls.default_keys.keys()), endsep="or")
raise TraitException(
- "Trait object not settable directly. " f"Assign to {trait_key}.{valid_keys}."
+ f"Trait object not settable directly. Assign to {trait_key}.{valid_keys}."
)
def __setitem__(self, trait_key, value):
@@ -704,8 +704,7 @@
except KeyError:
raise TraitException(f"Trait class for {trait_type} could not be found.")
- @property
- def all(self):
+[docs] def all(self):
"""
Get all trait keys in this handler.
@@ -713,7 +712,7 @@
list: All Trait keys.
"""
-
return list(self.trait_data.keys())
+
return list(self.trait_data.keys())
[docs] def get(self, trait_key):
"""
@@ -945,8 +944,7 @@
if not isinstance(trait_data, _SaverDict):
logger.log_warn(
-
f"Non-persistent Trait data (type(trait_data)) "
-
f"loaded for {type(self).__name__}."
+
f"Non-persistent Trait data (type(trait_data)) loaded for {type(self).__name__}."
)
+ return True
+
+[docs] def get_display_name(self, *args, **kwargs):
+
if self.puppet:
+
return self.puppet.get_display_name(*args, **kwargs)
+
elif self.account:
+
return self.account.get_display_name(*args, **kwargs)
+
else:
+
return f"{self.protocol_key}({self.address})"
diff --git a/docs/1.0-dev/_modules/evennia/utils/evtable.html b/docs/1.0-dev/_modules/evennia/utils/evtable.html
index d0e1ec3d3b..855b15ea7d 100644
--- a/docs/1.0-dev/_modules/evennia/utils/evtable.html
+++ b/docs/1.0-dev/_modules/evennia/utils/evtable.html
@@ -547,23 +547,6 @@
else:
self.height = self.raw_height
- # prepare data
- # self.formatted = self._reformat()
-
- def _crop(self, text, width):
- """
- Apply cropping of text.
-
- Args:
- text (str): The text to crop.
- width (int): The width to crop `text` to.
-
- """
- if d_len(text) > width:
- crop_string = self.crop_string
- return text[: width - d_len(crop_string)] + crop_string
- return text
-
def _reformat(self):
"""
Apply all EvCells' formatting operations.
@@ -620,47 +603,20 @@
# too many lines. Crop and mark last line with crop_string
crop_string = self.crop_string
adjusted_data = adjusted_data[:-excess]
+ adjusted_data_length = len(adjusted_data[-1])
crop_string_length = len(crop_string)
- if len(adjusted_data[-1]) > crop_string_length:
+ if adjusted_data_length >= crop_string_length:
+ # replace with data[...]
+ # (note that if adjusted data is shorter than the crop-string,
+ # we skip the crop-string and just pass the cropped data.)
adjusted_data[-1] = adjusted_data[-1][:-crop_string_length] + crop_string
- else:
- adjusted_data[-1] += crop_string
+
elif excess < 0:
# too few lines. Fill to height.
adjusted_data.extend(["" for _ in range(excess)])
return adjusted_data
- def _center(self, text, width, pad_char):
- """
- Horizontally center text on line of certain width, using padding.
-
- Args:
- text (str): The text to center.
- width (int): How wide the area is (in characters) where `text`
- should be centered.
- pad_char (str): Which padding character to use.
-
- Returns:
- text (str): Centered text.
-
- """
- excess = width - d_len(text)
- if excess <= 0:
- return text
- if excess % 2:
- # uneven padding
- narrowside = (excess // 2) * pad_char
- widerside = narrowside + pad_char
- if width % 2:
- return narrowside + text + widerside
- else:
- return widerside + text + narrowside
- else:
- # even padding - same on both sides
- side = (excess // 2) * pad_char
- return side + text + side
-
def _align(self, data):
"""
Align list of rows of cell. Whitespace characters will be stripped
@@ -959,16 +915,19 @@
Get data, padded and aligned in the form of a list of lines.
"""
- self.formatted = self._reformat()
+ if not self.formatted:
+ self.formatted = self._reformat()
return self.formatted
def __repr__(self):
- self.formatted = self._reformat()
+ if not self.formatted:
+ self.formatted = self._reformat()
return str(ANSIString("<EvCel %s>" % self.formatted))
def __str__(self):
"returns cell contents on string form"
- self.formatted = self._reformat()
+ if not self.formatted:
+ self.formatted = self._reformat()
return str(ANSIString("\n").join(self.formatted))
@@ -1252,7 +1211,19 @@
self.options = kwargs
# use the temporary table to generate the table on the fly, as a list of EvColumns
- self.table = [EvColumn(*col, **kwargs) for col in table]
+ self.table = []
+ for col in table:
+ if isinstance(col, EvColumn):
+ self.add_column(col, **kwargs)
+ elif isinstance(col, (list, tuple)):
+ self.table.append(EvColumn(*col, **kwargs))
+ else:
+ raise RuntimeError(
+ "EvTable 'table' kwarg must be a list of EvColumns or a list-of-lists of"
+ f" strings. Found {type(col)}."
+ )
+
+ # self.table = [EvColumn(*col, **kwargs) for col in table]
# this is the actual working table
self.worktable = None
@@ -1614,7 +1585,12 @@
options = dict(list(self.options.items()) + list(kwargs.items()))
xpos = kwargs.get("xpos", None)
- column = EvColumn(*args, **options)
+
+ if args and isinstance(args[0], EvColumn):
+ column = args[0]
+ column.reformat(**kwargs)
+ else:
+ column = EvColumn(*args, **options)
wtable = self.ncols
htable = self.nrows
@@ -1652,7 +1628,6 @@
xpos = min(wtable - 1, max(0, int(xpos)))
self.table.insert(xpos, column)
self.ncols += 1
- # self._balance()
[docs] def add_row(self, *args, **kwargs):
"""
diff --git a/docs/1.0-dev/_modules/evennia/utils/funcparser.html b/docs/1.0-dev/_modules/evennia/utils/funcparser.html
index b0aab63197..960c998714 100644
--- a/docs/1.0-dev/_modules/evennia/utils/funcparser.html
+++ b/docs/1.0-dev/_modules/evennia/utils/funcparser.html
@@ -161,6 +161,7 @@
# state storage
fullstr: str = ""
infuncstr: str = ""
+
rawstr: str = ""
double_quoted: int = -1
current_kwarg: str = ""
open_lparens: int = 0
@@ -172,7 +173,7 @@
return self.funcname, self.args, self.kwargs
def __str__(self):
-
return self.fullstr + self.infuncstr
+
return self.prefix + self.rawstr + self.infuncstr
[docs]class ParsingError(RuntimeError):
@@ -445,6 +446,8 @@
curr_func.open_lparens = open_lparens
curr_func.open_lsquare = open_lsquare
curr_func.open_lcurly = open_lcurly
+
# we must strip the remaining funcstr so it's not counted twice
+
curr_func.rawstr = curr_func.rawstr[: -len(infuncstr)]
current_kwarg = ""
infuncstr = ""
double_quoted = -1
@@ -468,6 +471,8 @@
# in a function def (can be nested)
+
curr_func.rawstr += char
+
if exec_return != "" and char not in (",=)"):
# if exec_return is followed by any other character
# than one demarking an arg,kwarg or function-end
@@ -628,8 +633,15 @@
# these are malformed (no closing bracket) and we should get their
# strings as-is.
callstack.append(curr_func)
-
for _ in range(len(callstack)):
-
infuncstr = str(callstack.pop()) + infuncstr
+
for inum, _ in enumerate(range(len(callstack))):
+
funcstr = str(callstack.pop())
+
if inum == 0 and funcstr.endswith(infuncstr):
+
# avoid double-echo of nested function calls. This should
+
# produce a good result most of the time, but it's not 100%
+
# guaranteed to, since it can ignore genuine duplicates
+
infuncstr = funcstr
+
else:
+
infuncstr = funcstr + infuncstr
if not return_str and exec_return != "":
# return explicit return
diff --git a/docs/1.0-dev/_modules/evennia/utils/utils.html b/docs/1.0-dev/_modules/evennia/utils/utils.html
index 07f26231b5..03da606df4 100644
--- a/docs/1.0-dev/_modules/evennia/utils/utils.html
+++ b/docs/1.0-dev/_modules/evennia/utils/utils.html
@@ -2269,23 +2269,34 @@
another function; it will print which function called it.
Args:
-
callerdepth (int): Must be larger than 0. When > 1, it will
-
print the caller of the caller etc.
+
callerdepth (int or None): If None, show entire stack. If int, must be larger than 0.
+
When > 1, it will print the sequence to that depth.
Returns:
-
calledby (str): A debug string detailing which routine called
-
us.
+
calledby (str): A debug string detailing the code that called us.
"""
import inspect
+
def _stack_display(frame):
+
path = os.path.sep.join(frame[1].rsplit(os.path.sep, 2)[-2:])
+
return (
+
f"> called by '{frame[3]}': {path}:{frame[2]} >>>"
+
f" {frame[4][0].strip() if frame[4] else ''}"
+
)
+
stack = inspect.stack()
-
# we must step one extra level back in stack since we don't want
-
# to include the call of this function itself.
-
callerdepth = min(max(2, callerdepth + 1), len(stack) - 1)
-
frame = inspect.stack()[callerdepth]
-
path = os.path.sep.join(frame[1].rsplit(os.path.sep, 2)[-2:])
-
return "[called by '%s': %s:%s %s]" % (frame[3], path, frame[2], frame[4])
+
+
out = []
+
if callerdepth is None:
+
callerdepth = len(stack) - 1
+
+
# show range
+
for idepth in range(1, max(1, callerdepth + 1)):
+
# we must step one extra level back in stack since we don't want
+
# to include the call of this function itself.
+
out.append(_stack_display(stack[min(idepth + 1, len(stack) - 1)]))
+
return "\n".join(out[::-1])
[docs]def m_len(target):
diff --git a/docs/1.0-dev/_sources/Coding/Changelog.md.txt b/docs/1.0-dev/_sources/Coding/Changelog.md.txt
index e828aab54c..4f0286b25f 100644
--- a/docs/1.0-dev/_sources/Coding/Changelog.md.txt
+++ b/docs/1.0-dev/_sources/Coding/Changelog.md.txt
@@ -217,6 +217,7 @@ Up requirements to Django 4.0+, Twisted 22+, Python 3.9 or 3.10
(mainly for custom align/valign). `EvCells` now makes use of `utils.justify`.
- `utils.justify` now supports `align="a"` (absolute alignments. This keeps
the given left indent but crops/fills to the width. Used in EvCells.
+- `EvTable` now supports passing `EvColumn`s as a list directly, (`EvTable(table=[colA,colB])`)
## Evennia 0.9.5
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 af7a700db7..bad7f25c6e 100644
--- a/docs/1.0-dev/api/evennia.commands.default.account.html
+++ b/docs/1.0-dev/api/evennia.commands.default.account.html
@@ -131,7 +131,7 @@ method. Otherwise all text will be returned to all connected sessions.
-
-
aliases = ['ls', 'l']
+aliases = ['l', 'ls']
@@ -162,7 +162,7 @@ method. Otherwise all text will be returned to all connected sessions.
-
-
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 '}
+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 '}
diff --git a/docs/1.0-dev/api/evennia.commands.default.admin.html b/docs/1.0-dev/api/evennia.commands.default.admin.html
index 28ce07f999..eda4dad129 100644
--- a/docs/1.0-dev/api/evennia.commands.default.admin.html
+++ b/docs/1.0-dev/api/evennia.commands.default.admin.html
@@ -315,7 +315,7 @@ to accounts respectively.
-
-
aliases = ['remit', 'pemit']
+aliases = ['pemit', 'remit']
@@ -346,7 +346,7 @@ to accounts respectively.
-
-
search_index_entry = {'aliases': 'remit pemit', 'category': 'admin', 'key': 'emit', 'no_prefix': ' remit pemit', 'tags': '', 'text': '\n admin command for emitting message to multiple objects\n\n Usage:\n emit[/switches] [<obj>, <obj>, ... =] <message>\n remit [<obj>, <obj>, ... =] <message>\n pemit [<obj>, <obj>, ... =] <message>\n\n Switches:\n room - limit emits to rooms only (default)\n accounts - limit emits to accounts only\n contents - send to the contents of matched objects too\n\n Emits a message to the selected objects or to\n your immediate surroundings. If the object is a room,\n send to its contents. remit and pemit are just\n limited forms of emit, for sending to rooms and\n to accounts respectively.\n '}
+search_index_entry = {'aliases': 'pemit remit', 'category': 'admin', 'key': 'emit', 'no_prefix': ' pemit remit', 'tags': '', 'text': '\n admin command for emitting message to multiple objects\n\n Usage:\n emit[/switches] [<obj>, <obj>, ... =] <message>\n remit [<obj>, <obj>, ... =] <message>\n pemit [<obj>, <obj>, ... =] <message>\n\n Switches:\n room - limit emits to rooms only (default)\n accounts - limit emits to accounts only\n contents - send to the contents of matched objects too\n\n Emits a message to the selected objects or to\n your immediate surroundings. If the object is a room,\n send to its contents. remit and pemit are just\n limited forms of emit, for sending to rooms and\n to accounts respectively.\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 790dbbf58d..129c09be4a 100644
--- a/docs/1.0-dev/api/evennia.commands.default.batchprocess.html
+++ b/docs/1.0-dev/api/evennia.commands.default.batchprocess.html
@@ -136,7 +136,7 @@ skipping, reloading etc.
-
-
aliases = ['batchcommand', 'batchcmd']
+aliases = ['batchcmd', 'batchcommand']
@@ -167,7 +167,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 fdfd99fbed..24d5a6fc5a 100644
--- a/docs/1.0-dev/api/evennia.commands.default.building.html
+++ b/docs/1.0-dev/api/evennia.commands.default.building.html
@@ -590,7 +590,7 @@ You can specify the /force switch to bypass this confirmation.
-
-
aliases = ['@delete', '@del']
+aliases = ['@del', '@delete']
@@ -631,7 +631,7 @@ You can specify the /force switch to bypass this confirmation.
-
-
search_index_entry = {'aliases': '@delete @del', 'category': 'building', 'key': '@destroy', 'no_prefix': 'destroy delete del', 'tags': '', 'text': '\n permanently delete objects\n\n Usage:\n destroy[/switches] [obj, obj2, obj3, [dbref-dbref], ...]\n\n Switches:\n override - The destroy command will usually avoid accidentally\n destroying account objects. This switch overrides this safety.\n force - destroy without confirmation.\n Examples:\n destroy house, roof, door, 44-78\n destroy 5-10, flower, 45\n destroy/force north\n\n Destroys one or many objects. If dbrefs are used, a range to delete can be\n given, e.g. 4-10. Also the end points will be deleted. This command\n displays a confirmation before destroying, to make sure of your choice.\n You can specify the /force switch to bypass this confirmation.\n '}
+search_index_entry = {'aliases': '@del @delete', 'category': 'building', 'key': '@destroy', 'no_prefix': 'destroy del delete', 'tags': '', 'text': '\n permanently delete objects\n\n Usage:\n destroy[/switches] [obj, obj2, obj3, [dbref-dbref], ...]\n\n Switches:\n override - The destroy command will usually avoid accidentally\n destroying account objects. This switch overrides this safety.\n force - destroy without confirmation.\n Examples:\n destroy house, roof, door, 44-78\n destroy 5-10, flower, 45\n destroy/force north\n\n Destroys one or many objects. If dbrefs are used, a range to delete can be\n given, e.g. 4-10. Also the end points will be deleted. This command\n displays a confirmation before destroying, to make sure of your choice.\n You can specify the /force switch to bypass this confirmation.\n '}
@@ -1343,7 +1343,7 @@ server settings.
-
-
aliases = ['@type', '@update', '@typeclasses', '@swap', '@parent']
+aliases = ['@parent', '@typeclasses', '@swap', '@update', '@type']
@@ -1374,7 +1374,7 @@ server settings.
-
-
search_index_entry = {'aliases': '@type @update @typeclasses @swap @parent', 'category': 'building', 'key': '@typeclass', 'no_prefix': 'typeclass type update typeclasses swap parent', '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': '@parent @typeclasses @swap @update @type', 'category': 'building', 'key': '@typeclass', 'no_prefix': 'typeclass parent typeclasses swap update type', '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 "}
@@ -1529,7 +1529,7 @@ If object is not specified, the current location is examined.
-
-
aliases = ['@ex', '@exam']
+aliases = ['@exam', '@ex']
@@ -1797,7 +1797,7 @@ the cases, see the module doc.
-
-
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 '}
+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 '}
diff --git a/docs/1.0-dev/api/evennia.commands.default.comms.html b/docs/1.0-dev/api/evennia.commands.default.comms.html
index b2741edd0f..841d4c8136 100644
--- a/docs/1.0-dev/api/evennia.commands.default.comms.html
+++ b/docs/1.0-dev/api/evennia.commands.default.comms.html
@@ -933,7 +933,7 @@ ban mychannel1,mychannel2= EvilUser : Was banned for spamming.
-
-
aliases = ['@channels', '@chan']
+aliases = ['@chan', '@channels']
@@ -953,7 +953,7 @@ ban mychannel1,mychannel2= EvilUser : Was banned for spamming.
-
-
search_index_entry = {'aliases': '@channels @chan', 'category': 'comms', 'key': '@channel', 'no_prefix': 'channel channels chan', 'tags': '', 'text': "\n Use and manage in-game channels.\n\n Usage:\n channel channelname <msg>\n channel channel name = <msg>\n channel (show all subscription)\n channel/all (show available channels)\n channel/alias channelname = alias[;alias...]\n channel/unalias alias\n channel/who channelname\n channel/history channelname [= index]\n channel/sub channelname [= alias[;alias...]]\n channel/unsub channelname[,channelname, ...]\n channel/mute channelname[,channelname,...]\n channel/unmute channelname[,channelname,...]\n\n channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n channel/desc channelname = description\n channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n channel/ban channelname (list bans)\n channel/ban[/quiet] channelname[, channelname, ...] = subscribername [: reason]\n channel/unban[/quiet] channelname[, channelname, ...] = subscribername\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n\n # subtopics\n\n ## sending\n\n Usage: channel channelname msg\n channel channel name = msg (with space in channel name)\n\n This sends a message to the channel. Note that you will rarely use this\n command like this; instead you can use the alias\n\n channelname <msg>\n channelalias <msg>\n\n For example\n\n public Hello World\n pub Hello World\n\n (this shortcut doesn't work for aliases containing spaces)\n\n See channel/alias for help on setting channel aliases.\n\n ## alias and unalias\n\n Usage: channel/alias channel = alias[;alias[;alias...]]\n channel/unalias alias\n channel - this will list your subs and aliases to each channel\n\n Set one or more personal aliases for referencing a channel. For example:\n\n channel/alias warrior's guild = warrior;wguild;warchannel;warrior guild\n\n You can now send to the channel using all of these:\n\n warrior's guild Hello\n warrior Hello\n wguild Hello\n warchannel Hello\n\n Note that this will not work if the alias has a space in it. So the\n 'warrior guild' alias must be used with the `channel` command:\n\n channel warrior guild = Hello\n\n Channel-aliases can be removed one at a time, using the '/unalias' switch.\n\n ## who\n\n Usage: channel/who channelname\n\n List the channel's subscribers. Shows who are currently offline or are\n muting the channel. Subscribers who are 'muting' will not see messages sent\n to the channel (use channel/mute to mute a channel).\n\n ## history\n\n Usage: channel/history channel [= index]\n\n This will display the last |c20|n lines of channel history. By supplying an\n index number, you will step that many lines back before viewing those 20 lines.\n\n For example:\n\n channel/history public = 35\n\n will go back 35 lines and show the previous 20 lines from that point (so\n lines -35 to -55).\n\n ## sub and unsub\n\n Usage: channel/sub channel [=alias[;alias;...]]\n channel/unsub channel\n\n This subscribes you to a channel and optionally assigns personal shortcuts\n for you to use to send to that channel (see aliases). When you unsub, all\n your personal aliases will also be removed.\n\n ## mute and unmute\n\n Usage: channel/mute channelname\n channel/unmute channelname\n\n Muting silences all output from the channel without actually\n un-subscribing. Other channel members will see that you are muted in the /who\n list. Sending a message to the channel will automatically unmute you.\n\n ## create and destroy\n\n Usage: channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n\n Creates a new channel (or destroys one you control). You will automatically\n join the channel you create and everyone will be kicked and loose all aliases\n to a destroyed channel.\n\n ## lock and unlock\n\n Usage: channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n\n Note: this is an admin command.\n\n A lockstring is on the form locktype:lockfunc(). Channels understand three\n locktypes:\n listen - who may listen or join the channel.\n send - who may send messages to the channel\n control - who controls the channel. This is usually the one creating\n the channel.\n\n Common lockfuncs are all() and perm(). To make a channel everyone can\n listen to but only builders can talk on, use this:\n\n listen:all()\n send: perm(Builders)\n\n ## boot and ban\n\n Usage:\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n channel/ban channelname[, channelname, ...] = subscribername [: reason]\n channel/unban channelname[, channelname, ...] = subscribername\n channel/unban channelname\n channel/ban channelname (list bans)\n\n Booting will kick a named subscriber from channel(s) temporarily. The\n 'reason' will be passed to the booted user. Unless the /quiet switch is\n used, the channel will also be informed of the action. A booted user is\n still able to re-connect, but they'll have to set up their aliases again.\n\n Banning will blacklist a user from (re)joining the provided channels. It\n will then proceed to boot them from those channels if they were connected.\n The 'reason' and `/quiet` works the same as for booting.\n\n Example:\n boot mychannel1 = EvilUser : Kicking you to cool down a bit.\n ban mychannel1,mychannel2= EvilUser : Was banned for spamming.\n\n "}
+search_index_entry = {'aliases': '@chan @channels', 'category': 'comms', 'key': '@channel', 'no_prefix': 'channel chan channels', 'tags': '', 'text': "\n Use and manage in-game channels.\n\n Usage:\n channel channelname <msg>\n channel channel name = <msg>\n channel (show all subscription)\n channel/all (show available channels)\n channel/alias channelname = alias[;alias...]\n channel/unalias alias\n channel/who channelname\n channel/history channelname [= index]\n channel/sub channelname [= alias[;alias...]]\n channel/unsub channelname[,channelname, ...]\n channel/mute channelname[,channelname,...]\n channel/unmute channelname[,channelname,...]\n\n channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n channel/desc channelname = description\n channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n channel/ban channelname (list bans)\n channel/ban[/quiet] channelname[, channelname, ...] = subscribername [: reason]\n channel/unban[/quiet] channelname[, channelname, ...] = subscribername\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n\n # subtopics\n\n ## sending\n\n Usage: channel channelname msg\n channel channel name = msg (with space in channel name)\n\n This sends a message to the channel. Note that you will rarely use this\n command like this; instead you can use the alias\n\n channelname <msg>\n channelalias <msg>\n\n For example\n\n public Hello World\n pub Hello World\n\n (this shortcut doesn't work for aliases containing spaces)\n\n See channel/alias for help on setting channel aliases.\n\n ## alias and unalias\n\n Usage: channel/alias channel = alias[;alias[;alias...]]\n channel/unalias alias\n channel - this will list your subs and aliases to each channel\n\n Set one or more personal aliases for referencing a channel. For example:\n\n channel/alias warrior's guild = warrior;wguild;warchannel;warrior guild\n\n You can now send to the channel using all of these:\n\n warrior's guild Hello\n warrior Hello\n wguild Hello\n warchannel Hello\n\n Note that this will not work if the alias has a space in it. So the\n 'warrior guild' alias must be used with the `channel` command:\n\n channel warrior guild = Hello\n\n Channel-aliases can be removed one at a time, using the '/unalias' switch.\n\n ## who\n\n Usage: channel/who channelname\n\n List the channel's subscribers. Shows who are currently offline or are\n muting the channel. Subscribers who are 'muting' will not see messages sent\n to the channel (use channel/mute to mute a channel).\n\n ## history\n\n Usage: channel/history channel [= index]\n\n This will display the last |c20|n lines of channel history. By supplying an\n index number, you will step that many lines back before viewing those 20 lines.\n\n For example:\n\n channel/history public = 35\n\n will go back 35 lines and show the previous 20 lines from that point (so\n lines -35 to -55).\n\n ## sub and unsub\n\n Usage: channel/sub channel [=alias[;alias;...]]\n channel/unsub channel\n\n This subscribes you to a channel and optionally assigns personal shortcuts\n for you to use to send to that channel (see aliases). When you unsub, all\n your personal aliases will also be removed.\n\n ## mute and unmute\n\n Usage: channel/mute channelname\n channel/unmute channelname\n\n Muting silences all output from the channel without actually\n un-subscribing. Other channel members will see that you are muted in the /who\n list. Sending a message to the channel will automatically unmute you.\n\n ## create and destroy\n\n Usage: channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n\n Creates a new channel (or destroys one you control). You will automatically\n join the channel you create and everyone will be kicked and loose all aliases\n to a destroyed channel.\n\n ## lock and unlock\n\n Usage: channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n\n Note: this is an admin command.\n\n A lockstring is on the form locktype:lockfunc(). Channels understand three\n locktypes:\n listen - who may listen or join the channel.\n send - who may send messages to the channel\n control - who controls the channel. This is usually the one creating\n the channel.\n\n Common lockfuncs are all() and perm(). To make a channel everyone can\n listen to but only builders can talk on, use this:\n\n listen:all()\n send: perm(Builders)\n\n ## boot and ban\n\n Usage:\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n channel/ban channelname[, channelname, ...] = subscribername [: reason]\n channel/unban channelname[, channelname, ...] = subscribername\n channel/unban channelname\n channel/ban channelname (list bans)\n\n Booting will kick a named subscriber from channel(s) temporarily. The\n 'reason' will be passed to the booted user. Unless the /quiet switch is\n used, the channel will also be informed of the action. A booted user is\n still able to re-connect, but they'll have to set up their aliases again.\n\n Banning will blacklist a user from (re)joining the provided channels. It\n will then proceed to boot them from those channels if they were connected.\n The 'reason' and `/quiet` works the same as for booting.\n\n Example:\n boot mychannel1 = EvilUser : Kicking you to cool down a bit.\n ban mychannel1,mychannel2= EvilUser : Was banned for spamming.\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 5e0ad68de4..887ae0ef22 100644
--- a/docs/1.0-dev/api/evennia.commands.default.general.html
+++ b/docs/1.0-dev/api/evennia.commands.default.general.html
@@ -173,7 +173,7 @@ look
*<account&g
-
-
aliases = ['ls', 'l']
+aliases = ['l', 'ls']
@@ -204,7 +204,7 @@ look *<account&g
-
-
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 '}
+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 '}
@@ -266,7 +266,7 @@ for everyone to use, you need build privileges and the alias command.
-
-
aliases = ['nickname', 'nicks']
+aliases = ['nicks', 'nickname']
@@ -298,7 +298,7 @@ for everyone to use, you need build privileges and the alias command.
-
-
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 '}
+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 '}
@@ -707,7 +707,7 @@ automatically begin with your name.
-
-
aliases = [':', 'emote']
+aliases = ['emote', ':']
@@ -748,7 +748,7 @@ space.
-
-
search_index_entry = {'aliases': ': emote', 'category': 'general', 'key': 'pose', 'no_prefix': ' : emote', 'tags': '', 'text': "\n strike a pose\n\n Usage:\n pose <pose text>\n pose's <pose text>\n\n Example:\n pose is standing by the wall, smiling.\n -> others will see:\n Tom is standing by the wall, smiling.\n\n Describe an action being taken. The pose text will\n automatically begin with your name.\n "}
+search_index_entry = {'aliases': 'emote :', 'category': 'general', 'key': 'pose', 'no_prefix': ' emote :', 'tags': '', 'text': "\n strike a pose\n\n Usage:\n pose <pose text>\n pose's <pose text>\n\n Example:\n pose is standing by the wall, smiling.\n -> others will see:\n Tom is standing by the wall, smiling.\n\n Describe an action being taken. The pose text will\n automatically begin with your name.\n "}
@@ -771,7 +771,7 @@ which permission groups you are a member of.
-
-
aliases = ['groups', 'hierarchy']
+aliases = ['hierarchy', 'groups']
@@ -802,7 +802,7 @@ which permission groups you are a member of.
-
-
search_index_entry = {'aliases': 'groups hierarchy', 'category': 'general', 'key': 'access', 'no_prefix': ' groups hierarchy', 'tags': '', 'text': '\n show your current game access\n\n Usage:\n access\n\n This command shows you the permission hierarchy and\n which permission groups you are a member of.\n '}
+search_index_entry = {'aliases': 'hierarchy groups', 'category': 'general', 'key': 'access', 'no_prefix': ' hierarchy groups', 'tags': '', 'text': '\n show your current game access\n\n Usage:\n access\n\n This command shows you the permission hierarchy and\n which permission groups you are a member of.\n '}
diff --git a/docs/1.0-dev/api/evennia.commands.default.system.html b/docs/1.0-dev/api/evennia.commands.default.system.html
index d081351df9..1174771947 100644
--- a/docs/1.0-dev/api/evennia.commands.default.system.html
+++ b/docs/1.0-dev/api/evennia.commands.default.system.html
@@ -681,7 +681,7 @@ See
|luhttps://ww
-
-
aliases = ['@task', '@delays']
+aliases = ['@delays', '@task']
@@ -727,7 +727,7 @@ to all the variables defined therein.
-
-
search_index_entry = {'aliases': '@task @delays', 'category': 'system', 'key': '@tasks', 'no_prefix': 'tasks task delays', 'tags': '', 'text': "\n Display or terminate active tasks (delays).\n\n Usage:\n tasks[/switch] [task_id or function_name]\n\n Switches:\n pause - Pause the callback of a task.\n unpause - Process all callbacks made since pause() was called.\n do_task - Execute the task (call its callback).\n call - Call the callback of this task.\n remove - Remove a task without executing it.\n cancel - Stop a task from automatically executing.\n\n Notes:\n A task is a single use method of delaying the call of a function. Calls are created\n in code, using `evennia.utils.delay`.\n See |luhttps://www.evennia.com/docs/latest/Command-Duration.html|ltthe docs|le for help.\n\n By default, tasks that are canceled and never called are cleaned up after one minute.\n\n Examples:\n - `tasks/cancel move_callback` - Cancels all movement delays from the slow_exit contrib.\n In this example slow exits creates it's tasks with\n `utils.delay(move_delay, move_callback)`\n - `tasks/cancel 2` - Cancel task id 2.\n\n "}
+search_index_entry = {'aliases': '@delays @task', 'category': 'system', 'key': '@tasks', 'no_prefix': 'tasks delays task', 'tags': '', 'text': "\n Display or terminate active tasks (delays).\n\n Usage:\n tasks[/switch] [task_id or function_name]\n\n Switches:\n pause - Pause the callback of a task.\n unpause - Process all callbacks made since pause() was called.\n do_task - Execute the task (call its callback).\n call - Call the callback of this task.\n remove - Remove a task without executing it.\n cancel - Stop a task from automatically executing.\n\n Notes:\n A task is a single use method of delaying the call of a function. Calls are created\n in code, using `evennia.utils.delay`.\n See |luhttps://www.evennia.com/docs/latest/Command-Duration.html|ltthe docs|le for help.\n\n By default, tasks that are canceled and never called are cleaned up after one minute.\n\n Examples:\n - `tasks/cancel move_callback` - Cancels all movement delays from the slow_exit contrib.\n In this example slow exits creates it's tasks with\n `utils.delay(move_delay, move_callback)`\n - `tasks/cancel 2` - Cancel task id 2.\n\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 578d5cf723..6ce89769d2 100644
--- a/docs/1.0-dev/api/evennia.commands.default.tests.html
+++ b/docs/1.0-dev/api/evennia.commands.default.tests.html
@@ -900,7 +900,7 @@ main test suite started with
Test the batch processor.
-
-
red_button = <module 'evennia.contrib.tutorials.red_button.red_button' from '/tmp/tmpdvxp5pxx/be258cca8c69bc3d419134d8d8bab5c1046a5ecc/evennia/contrib/tutorials/red_button/red_button.py'>
+red_button = <module 'evennia.contrib.tutorials.red_button.red_button' from '/tmp/tmpaa_eqlqg/e9917c11a9d33f42e74a9191d1a127009e52e6d7/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 dd9daebd25..ae9c0247ef 100644
--- a/docs/1.0-dev/api/evennia.commands.default.unloggedin.html
+++ b/docs/1.0-dev/api/evennia.commands.default.unloggedin.html
@@ -120,7 +120,7 @@ connect “account name” “pass word”
-
-
aliases = ['con', 'co', 'conn']
+aliases = ['co', 'conn', 'con']
@@ -155,7 +155,7 @@ there is no object yet before the account has logged in)
-
-
search_index_entry = {'aliases': 'con co conn', 'category': 'general', 'key': 'connect', 'no_prefix': ' con co conn', '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': 'co conn con', 'category': 'general', 'key': 'connect', 'no_prefix': ' co conn 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 '}
@@ -179,7 +179,7 @@ create “account name” “pass word”
-
-
aliases = ['cre', 'cr']
+aliases = ['cr', 'cre']
@@ -210,7 +210,7 @@ create “account name” “pass word”
-
-
search_index_entry = {'aliases': 'cre cr', 'category': 'general', 'key': 'create', 'no_prefix': ' cre cr', 'tags': '', 'text': '\n create a new account account\n\n Usage (at login screen):\n create <accountname> <password>\n create "account name" "pass word"\n\n This creates a new account account.\n\n If you have spaces in your name, enclose it in double quotes.\n '}
+search_index_entry = {'aliases': 'cr cre', 'category': 'general', 'key': 'create', 'no_prefix': ' cr cre', 'tags': '', 'text': '\n create a new account account\n\n Usage (at login screen):\n create <accountname> <password>\n create "account name" "pass word"\n\n This creates a new account account.\n\n If you have spaces in your name, enclose it in double quotes.\n '}
@@ -234,7 +234,7 @@ version is a bit more complicated.
-
-
aliases = ['qu', 'q']
+aliases = ['q', 'qu']
@@ -260,7 +260,7 @@ version is a bit more complicated.
-
-
search_index_entry = {'aliases': 'qu q', 'category': 'general', 'key': 'quit', 'no_prefix': ' qu q', 'tags': '', 'text': '\n quit when in unlogged-in state\n\n Usage:\n quit\n\n We maintain a different version of the quit command\n here for unconnected accounts for the sake of simplicity. The logged in\n version is a bit more complicated.\n '}
+search_index_entry = {'aliases': 'q qu', 'category': 'general', 'key': 'quit', 'no_prefix': ' q qu', 'tags': '', 'text': '\n quit when in unlogged-in state\n\n Usage:\n quit\n\n We maintain a different version of the quit command\n here for unconnected accounts for the sake of simplicity. The logged in\n version is a bit more complicated.\n '}
@@ -333,7 +333,7 @@ for simplicity. It shows a pane of info.
-
-
aliases = ['?', 'h']
+aliases = ['h', '?']
@@ -359,7 +359,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 50a2c605b6..7620b3bc6e 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
@@ -137,7 +137,7 @@ the module given by settings.CONNECTION_SCREEN_MODULE.
-
-
aliases = ['con', 'co', 'conn']
+aliases = ['co', 'conn', 'con']
@@ -167,7 +167,7 @@ there is no object yet before the account has logged in)
-
-
search_index_entry = {'aliases': 'con co conn', 'category': 'general', 'key': 'connect', 'no_prefix': ' con co conn', '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': 'co conn con', 'category': 'general', 'key': 'connect', 'no_prefix': ' co conn 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 '}
@@ -189,7 +189,7 @@ there is no object yet before the account has logged in)
-
-
aliases = ['cre', 'cr']
+aliases = ['cr', 'cre']
@@ -225,7 +225,7 @@ name enclosed in quotes:
-
-
search_index_entry = {'aliases': 'cre cr', 'category': 'general', 'key': 'create', 'no_prefix': ' cre cr', 'tags': '', 'text': '\n Create a new account.\n\n Usage (at login screen):\n create "accountname" <email> <password>\n\n This creates a new account account.\n\n '}
+search_index_entry = {'aliases': 'cr cre', 'category': 'general', 'key': 'create', 'no_prefix': ' cr cre', 'tags': '', 'text': '\n Create a new account.\n\n Usage (at login screen):\n create "accountname" <email> <password>\n\n This creates a new account account.\n\n '}
@@ -244,7 +244,7 @@ version is a bit more complicated.
-
-
aliases = ['qu', 'q']
+aliases = ['q', 'qu']
@@ -270,7 +270,7 @@ version is a bit more complicated.
-
-
search_index_entry = {'aliases': 'qu q', 'category': 'general', 'key': 'quit', 'no_prefix': ' qu q', 'tags': '', 'text': '\n We maintain a different version of the `quit` command\n here for unconnected accounts for the sake of simplicity. The logged in\n version is a bit more complicated.\n '}
+search_index_entry = {'aliases': 'q qu', 'category': 'general', 'key': 'quit', 'no_prefix': ' q qu', 'tags': '', 'text': '\n We maintain a different version of the `quit` command\n here for unconnected accounts for the sake of simplicity. The logged in\n version is a bit more complicated.\n '}
@@ -333,7 +333,7 @@ for simplicity. It shows a pane of info.
-
-
aliases = ['?', 'h']
+aliases = ['h', '?']
@@ -359,7 +359,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 ee2699c248..dc7d3322f1 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
@@ -114,7 +114,7 @@
-
-
aliases = ['@callbacks', '@callback', '@calls']
+aliases = ['@callback', '@callbacks', '@calls']
@@ -195,7 +195,7 @@ on user permission.
-
-
search_index_entry = {'aliases': '@callbacks @callback @calls', 'category': 'building', 'key': '@call', 'no_prefix': 'call callbacks callback calls', '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 758fdd7995..7b980451e5 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
@@ -158,7 +158,7 @@ aliases to an already joined channel.
-
-
aliases = ['chanalias', 'aliaschan']
+aliases = ['aliaschan', 'chanalias']
@@ -189,7 +189,7 @@ aliases to an already joined channel.
-
-
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 '}
+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 '}
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 da33081da2..318cbfdd98 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
@@ -209,7 +209,7 @@ the operation will be general or on the room.
-
-
aliases = ['abort', 'chicken out', 'quit', 'q']
+aliases = ['q', 'chicken out', 'abort', 'quit']
@@ -233,7 +233,7 @@ set in self.parse())
-
-
search_index_entry = {'aliases': 'abort chicken out quit q', 'category': 'evscaperoom', 'key': 'give up', 'no_prefix': ' abort chicken out quit 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': 'q chicken out abort quit', 'category': 'evscaperoom', 'key': 'give up', 'no_prefix': ' q chicken out abort 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 '}
@@ -254,7 +254,7 @@ set in self.parse())
-
-
aliases = ['ls', 'l']
+aliases = ['l', 'ls']
@@ -288,7 +288,7 @@ set in self.parse())
-
-
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 '}
+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 '}
@@ -426,7 +426,7 @@ emote /me points to /box and /lever.
-
-
aliases = [':', 'pose']
+aliases = ['pose', ':']
@@ -465,7 +465,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 '}
@@ -488,7 +488,7 @@ looks and what actions is available.
-
-
aliases = ['examine', 'ex', 'unfocus', 'e']
+aliases = ['examine', 'e', 'ex', 'unfocus']
@@ -517,7 +517,7 @@ set in self.parse())
-
-
search_index_entry = {'aliases': 'examine ex unfocus e', 'category': 'evscaperoom', 'key': 'focus', 'no_prefix': ' examine ex 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': 'examine e ex unfocus', 'category': 'evscaperoom', 'key': 'focus', 'no_prefix': ' examine e ex unfocus', '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 '}
@@ -579,7 +579,7 @@ set in self.parse())
-
-
aliases = ['give', 'inv', 'inventory', 'i']
+aliases = ['inv', 'inventory', 'i', 'give']
@@ -603,7 +603,7 @@ set in self.parse())
-
-
search_index_entry = {'aliases': 'give inv inventory i', 'category': 'evscaperoom', 'key': 'get', 'no_prefix': ' give inv inventory i', 'tags': '', 'text': '\n Use focus / examine instead.\n\n '}
+search_index_entry = {'aliases': 'inv inventory i give', 'category': 'evscaperoom', 'key': 'get', 'no_prefix': ' inv inventory i give', 'tags': '', 'text': '\n Use focus / examine instead.\n\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 4d01868d90..a3e2c01355 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
@@ -338,7 +338,7 @@ look *<account&g
-
-
aliases = ['ls', 'l']
+aliases = ['l', 'ls']
@@ -358,7 +358,7 @@ look *<account&g
-
-
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 '}
+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 '}
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 a2ca7e1c6a..3c56f13b4e 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
@@ -303,7 +303,7 @@ everyone but the person rolling.
-
-
aliases = ['@dice', 'roll']
+aliases = ['roll', '@dice']
@@ -329,7 +329,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 e73f9b8114..facef702d5 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
@@ -863,7 +863,7 @@ Using the command without arguments will list all current recogs.
-
-
aliases = ['forget', 'recognize']
+aliases = ['recognize', 'forget']
@@ -890,7 +890,7 @@ Using the command without arguments will list all current recogs.
-
-
search_index_entry = {'aliases': 'forget recognize', 'category': 'general', 'key': 'recog', 'no_prefix': ' forget recognize', 'tags': '', 'text': '\n Recognize another person in the same room.\n\n Usage:\n recog\n recog sdesc as alias\n forget alias\n\n Example:\n recog tall man as Griatch\n forget griatch\n\n This will assign a personal alias for a person, or forget said alias.\n Using the command without arguments will list all current recogs.\n\n '}
+search_index_entry = {'aliases': 'recognize forget', 'category': 'general', 'key': 'recog', 'no_prefix': ' recognize forget', 'tags': '', 'text': '\n Recognize another person in the same room.\n\n Usage:\n recog\n recog sdesc as alias\n forget alias\n\n Example:\n recog tall man as Griatch\n forget griatch\n\n This will assign a personal alias for a person, or forget said alias.\n Using the command without arguments will list all current recogs.\n\n '}
diff --git a/docs/1.0-dev/api/evennia.contrib.rpg.traits.traits.html b/docs/1.0-dev/api/evennia.contrib.rpg.traits.traits.html
index dffdb819d8..b68104c43a 100644
--- a/docs/1.0-dev/api/evennia.contrib.rpg.traits.traits.html
+++ b/docs/1.0-dev/api/evennia.contrib.rpg.traits.traits.html
@@ -577,7 +577,7 @@ on the class, usually with lazy_property.
-
-property
all
+all()[source]
Get all trait keys in this handler.
- Returns
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 80398ba1f3..245e9c57ef 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
@@ -151,7 +151,7 @@ such as when closing the lid and un-blinding a character.
-
-
aliases = ['press', 'press button', 'push']
+aliases = ['press', 'push', 'press button']
@@ -180,7 +180,7 @@ check if the lid is open or closed.
-
-
search_index_entry = {'aliases': 'press press button push', 'category': 'general', 'key': 'push button', 'no_prefix': ' press press button push', 'tags': '', 'text': '\n Push the red button (lid closed)\n\n Usage:\n push button\n\n '}
+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 '}
@@ -250,7 +250,7 @@ check if the lid is open or closed.
-
-
aliases = ['smash lid', 'smash', 'break lid']
+aliases = ['break lid', 'smash', 'smash lid']
@@ -277,7 +277,7 @@ break.
-
-
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 '}
+search_index_entry = {'aliases': 'break lid smash smash lid', 'category': 'general', 'key': 'smash glass', 'no_prefix': ' break lid smash smash 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 '}
@@ -377,7 +377,7 @@ be mutually exclusive.
-
-
aliases = ['press', 'press button', 'push']
+aliases = ['press', 'push', 'press button']
@@ -406,7 +406,7 @@ set in self.parse())
-
-
search_index_entry = {'aliases': 'press press button push', 'category': 'general', 'key': 'push button', 'no_prefix': ' press press button push', 'tags': '', 'text': '\n Push the red button\n\n Usage:\n push button\n\n '}
+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 '}
@@ -504,7 +504,7 @@ be mutually exclusive.
-
-
aliases = ['get', 'feel', 'l', 'examine', 'ex', 'listen']
+aliases = ['l', 'feel', 'listen', 'examine', 'ex', 'get']
@@ -530,7 +530,7 @@ be mutually exclusive.
-
-
search_index_entry = {'aliases': 'get feel l examine ex listen', 'category': 'general', 'key': 'look', 'no_prefix': ' get feel l examine ex 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': 'l feel listen examine ex get', 'category': 'general', 'key': 'look', 'no_prefix': ' l feel listen examine ex get', '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 89ea355e72..65a7d70db3 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
@@ -423,7 +423,7 @@ of the object. We overload it with our own version.
-
-
aliases = ['light', 'burn']
+aliases = ['burn', 'light']
@@ -450,7 +450,7 @@ to sit on a “lightable” object, we operate only on self.obj.
-
-
search_index_entry = {'aliases': 'light burn', 'category': 'tutorialworld', 'key': 'on', 'no_prefix': ' light burn', 'tags': '', 'text': '\n Creates light where there was none. Something to burn.\n '}
+search_index_entry = {'aliases': 'burn light', 'category': 'tutorialworld', 'key': 'on', 'no_prefix': ' burn light', 'tags': '', 'text': '\n Creates light where there was none. Something to burn.\n '}
@@ -554,7 +554,7 @@ shift green root up/down
-
-
aliases = ['shiftroot', 'pull', 'push', 'move']
+aliases = ['pull', 'push', 'shiftroot', 'move']
@@ -590,7 +590,7 @@ yellow/green - horizontal roots
-
-
search_index_entry = {'aliases': 'shiftroot pull push move', 'category': 'tutorialworld', 'key': 'shift', 'no_prefix': ' shiftroot pull push move', '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': 'pull push shiftroot move', 'category': 'tutorialworld', 'key': 'shift', 'no_prefix': ' pull push shiftroot move', '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 '}
@@ -607,7 +607,7 @@ yellow/green - horizontal roots
-
-
aliases = ['push button', 'press button', 'button']
+aliases = ['push button', 'button', 'press button']
@@ -633,7 +633,7 @@ yellow/green - horizontal roots
-
-
search_index_entry = {'aliases': 'push button press button button', 'category': 'tutorialworld', 'key': 'press', 'no_prefix': ' push button press button button', 'tags': '', 'text': '\n Presses a button.\n '}
+search_index_entry = {'aliases': 'push button button press button', 'category': 'tutorialworld', 'key': 'press', 'no_prefix': ' push button button press button', 'tags': '', 'text': '\n Presses a button.\n '}
@@ -777,7 +777,7 @@ parry - forgoes your attack but will make you harder to hit on next
-
-
aliases = ['pierce', 'defend', 'parry', 'fight', 'stab', 'thrust', 'hit', 'chop', 'bash', 'kill', 'slash']
+aliases = ['chop', 'thrust', 'pierce', 'hit', 'stab', 'kill', 'parry', 'slash', 'defend', 'fight', 'bash']
@@ -803,7 +803,7 @@ parry - forgoes your attack but will make you harder to hit on next
-
-
search_index_entry = {'aliases': 'pierce defend parry fight stab thrust hit chop bash kill slash', 'category': 'tutorialworld', 'key': 'attack', 'no_prefix': ' pierce defend parry fight stab thrust hit chop bash kill slash', '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': 'chop thrust pierce hit stab kill parry slash defend fight bash', 'category': 'tutorialworld', 'key': 'attack', 'no_prefix': ' chop thrust pierce hit stab kill parry slash defend fight 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 cb7e44b2c5..0f0c1a37bc 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
@@ -246,7 +246,7 @@ code except for adding in the details.
-
-
aliases = ['ls', 'l']
+aliases = ['l', 'ls']
@@ -261,7 +261,7 @@ code except for adding in the details.
-
-
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 '}
+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 '}
@@ -814,7 +814,7 @@ if they fall off the bridge.
-
-
aliases = ['?', 'h']
+aliases = ['h', '?']
@@ -840,7 +840,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 '}
@@ -966,7 +966,7 @@ to find something.
-
-
aliases = ['feel', 'fiddle', 'l', 'search', 'feel around']
+aliases = ['feel around', 'l', 'feel', 'search', 'fiddle']
@@ -994,7 +994,7 @@ random chance of eventually finding a light source.
-
-
search_index_entry = {'aliases': 'feel fiddle l search feel around', 'category': 'tutorialworld', 'key': 'look', 'no_prefix': ' feel fiddle l search feel around', '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 around l feel search fiddle', 'category': 'tutorialworld', 'key': 'look', 'no_prefix': ' feel around l feel search 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 '}
diff --git a/docs/1.0-dev/api/evennia.contrib.utils.git_integration.git_integration.html b/docs/1.0-dev/api/evennia.contrib.utils.git_integration.git_integration.html
index 04c8281cd4..72fa930fcf 100644
--- a/docs/1.0-dev/api/evennia.contrib.utils.git_integration.git_integration.html
+++ b/docs/1.0-dev/api/evennia.contrib.utils.git_integration.git_integration.html
@@ -206,7 +206,7 @@ git evennia pull - Pull the latest evennia code.
-
-
directory = '/tmp/tmpdvxp5pxx/be258cca8c69bc3d419134d8d8bab5c1046a5ecc/evennia'
+directory = '/tmp/tmpaa_eqlqg/e9917c11a9d33f42e74a9191d1a127009e52e6d7/evennia'
@@ -267,7 +267,7 @@ git pull - Pull the latest code from your current branch.
-
-
directory = '/tmp/tmpdvxp5pxx/be258cca8c69bc3d419134d8d8bab5c1046a5ecc/evennia/game_template'
+directory = '/tmp/tmpaa_eqlqg/e9917c11a9d33f42e74a9191d1a127009e52e6d7/evennia/game_template'
diff --git a/docs/1.0-dev/api/evennia.server.serversession.html b/docs/1.0-dev/api/evennia.server.serversession.html
index f12430dde1..af8ad23775 100644
--- a/docs/1.0-dev/api/evennia.server.serversession.html
+++ b/docs/1.0-dev/api/evennia.server.serversession.html
@@ -405,6 +405,11 @@ property, e.g. obj.ndb.attr = value etc.
Dummy method to mimic the logged-in API.
+
+-
+
get_display_name(*args, **kwargs)[source]
+
+
diff --git a/docs/1.0-dev/api/evennia.utils.eveditor.html b/docs/1.0-dev/api/evennia.utils.eveditor.html
index a8142dde96..1a5578f5ef 100644
--- a/docs/1.0-dev/api/evennia.utils.eveditor.html
+++ b/docs/1.0-dev/api/evennia.utils.eveditor.html
@@ -334,7 +334,7 @@ indentation.
-
-
aliases = [':DD', ':fd', ':y', ':q', ':r', ':dw', ':j', ':I', ':u', ':uu', ':echo', ':>', ':h', ':q!', ':A', ':fi', ':S', ':UU', ':<', ':wq', ':i', ':dd', ':!', ':f', ':', ':::', ':x', ':s', ':=', ':w', '::', ':p']
+aliases = [':wq', ':A', ':x', ':y', '::', ':dd', ':fd', ':=', ':w', ':echo', ':DD', ':h', ':<', ':q!', ':i', ':p', ':s', ':q', ':u', ':j', ':UU', ':S', ':I', ':>', ':!', ':dw', ':r', ':', ':uu', ':f', ':::', ':fi']
@@ -362,7 +362,7 @@ efficient presentation.
-
-
search_index_entry = {'aliases': ':DD :fd :y :q :r :dw :j :I :u :uu :echo :> :h :q! :A :fi :S :UU :< :wq :i :dd :! :f : ::: :x :s := :w :: :p', 'category': 'general', 'key': ':editor_command_group', 'no_prefix': ' :DD :fd :y :q :r :dw :j :I :u :uu :echo :> :h :q! :A :fi :S :UU :< :wq :i :dd :! :f : ::: :x :s := :w :: :p', 'tags': '', 'text': '\n Commands for the editor\n '}
+search_index_entry = {'aliases': ':wq :A :x :y :: :dd :fd := :w :echo :DD :h :< :q! :i :p :s :q :u :j :UU :S :I :> :! :dw :r : :uu :f ::: :fi', 'category': 'general', 'key': ':editor_command_group', 'no_prefix': ' :wq :A :x :y :: :dd :fd := :w :echo :DD :h :< :q! :i :p :s :q :u :j :UU :S :I :> :! :dw :r : :uu :f ::: :fi', '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 6ed2370758..55f67d20a9 100644
--- a/docs/1.0-dev/api/evennia.utils.evmenu.html
+++ b/docs/1.0-dev/api/evennia.utils.evmenu.html
@@ -1009,7 +1009,7 @@ single question.
+aliases = ['a', 'abort', 'no', '__nomatch_command', 'y', 'n', 'yes']
@@ -1035,7 +1035,7 @@ single question.
+search_index_entry = {'aliases': 'a abort no __nomatch_command y n yes', 'category': 'general', 'key': '__noinput_command', 'no_prefix': ' a abort no __nomatch_command y n yes', '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 d632e41fd8..4d786fcf1f 100644
--- a/docs/1.0-dev/api/evennia.utils.evmore.html
+++ b/docs/1.0-dev/api/evennia.utils.evmore.html
@@ -135,7 +135,7 @@ the caller.msg() construct every time the page is updated.
-
-
aliases = ['q', 'abort', 'a', 'quit', 'top', 'end', 'previous', 't', 'n', 'next', 'p', 'e']
+aliases = ['q', 'abort', 'a', 'p', 't', 'end', 'e', 'quit', 'previous', 'top', 'n', 'next']
@@ -161,7 +161,7 @@ the caller.msg() construct every time the page is updated.
-
-
search_index_entry = {'aliases': 'q abort a quit top end previous t n next p e', 'category': 'general', 'key': '__noinput_command', 'no_prefix': ' q abort a quit top end previous t n next p e', 'tags': '', 'text': '\n Manipulate the text paging. Catch no-input with aliases.\n '}
+search_index_entry = {'aliases': 'q abort a p t end e quit previous top n next', 'category': 'general', 'key': '__noinput_command', 'no_prefix': ' q abort a p t end e quit previous top n next', 'tags': '', 'text': '\n Manipulate the text paging. Catch no-input with aliases.\n '}
diff --git a/docs/1.0-dev/api/evennia.utils.utils.html b/docs/1.0-dev/api/evennia.utils.utils.html
index 17addac602..c14a87c13f 100644
--- a/docs/1.0-dev/api/evennia.utils.utils.html
+++ b/docs/1.0-dev/api/evennia.utils.utils.html
@@ -1458,16 +1458,11 @@ this functionality is pretty much exclusively used by handlers.
another function; it will print which function called it.
- Parameters
-callerdepth (int) – Must be larger than 0. When > 1, it will
-print the caller of the caller etc.
+callerdepth (int or None) – If None, show entire stack. If int, must be larger than 0.
+When > 1, it will print the sequence to that depth.
- Returns
-calledby (str) –
-
-- A debug string detailing which routine called
us.
-
-
-
+calledby (str) – A debug string detailing the code that called us.
diff --git a/docs/1.0-dev/genindex.html b/docs/1.0-dev/genindex.html
index 2dff5ad324..0c46df238e 100644
--- a/docs/1.0-dev/genindex.html
+++ b/docs/1.0-dev/genindex.html
@@ -1348,7 +1348,7 @@
(evennia.contrib.rpg.rpsystem.rpsystem.RecogHandler method)
-
(evennia.contrib.rpg.traits.traits.TraitHandler property)
+ (evennia.contrib.rpg.traits.traits.TraitHandler method)
(evennia.contrib.tutorials.evadventure.equipment.EquipmentHandler method)
@@ -10131,6 +10131,8 @@
(evennia.contrib.rpg.rpsystem.rpsystem.ContribRPObject method)
(evennia.objects.objects.DefaultObject method)
+
+
(evennia.server.serversession.ServerSession method)
(evennia.typeclasses.models.TypedObject method)
diff --git a/docs/1.0-dev/objects.inv b/docs/1.0-dev/objects.inv
index 9ab27a744b48dee90f1d45c9fa1f88a9d745e7ff..2c17d76f2a4a454e1c4b3b3ca126c06d00b3a7c3 100644
GIT binary patch
delta 109471
zcmV)CK*GPv&I#1c39!q)e<)mHQ>4$yI6H*T*bGg>`j}iYsb{oG!y{OMXjt$`EOJqX
zlT?x0lq!Zt6eJ>+E#eSGiJc@-7lX+31hz%G>!Pul9}}}I7mV1l17g|r7$3l{yJ4m6
z$~lB|gSC#RJYcQjCr4a|?tvS!Y>Q+8s|=IS;HqC}xfk9QTMudhe=FBVvbL6%VXn3`
zknw6Y2jOHaM?7u>SBIQGi!GQB*OAxy?NEB)4|R^nVdMdf(nM>CWy}W0TNH_L0W2S5
z#xAk|b6w{)a{woys>D-gOm5
dU2P?3A{b7bp`WhU}e)kC&G+bnm2V_f8a5R+Izj{%V&GKFqnGuovB&$
zZ*Beb{GE06&}Izqom^mv{Z!`E07$mq?(e@{>m~Jn@P7Y)Ki2JI+U6|(xM+h=G;*@)
zH&Fq_N`HY&C36fzQhaOqgJ@Ll
z`n2a6f3OFAfqj*85h%$-jGuYek15N6p5%|aUq8vixNMHb_Qpl2QO68w1V(=58N+0$
z8w?WhiT98$-yqtokMxB7*0L>s!T`5Tb9xcGPnLFZp1VosV40t8a6alfzVOwkOD3C9
zFZ4okmf1BnI44^V79kIpJEC8`pGyCgYI%vqe+Az&;YV$-*jo)L^lr=E=XWOE;e`_gRkPJ)red8UP>0KhcMV+hcMX`aX9
zDvD@ao3zjNNzA8HsV$?iU78w(=Gv!SG_HjSUU<50oDE0k{MObD6TKa5Uo!Hp}`>^?~E^@S%e`kb8uOt%@qW7OT%#t%Ko=@1rg`bXw&@QFr
z0VF~mIr|iE=U@r0M8(X6JrWu6ix5X-&2Dq!7LfbQ5X(PDeGOWcSq?MtkA
zy)UayLw(`d58O2nGX``oJ?BCkxSZ1<4lK-R5a;OUG?n<=vZhEg7K09VHGpKgmuGqj
z5A~^1dsPuv$D0FS_}?s%rI_@F`O?9%fs{?!b|-AWWMx{VJJ#B5(-<$df7+xmU3@RT
z%=IRQTm7AlBRb~tAQ?ye`*dej|H29LP0O}1xsr~hZMKg@sRuo|rJn-gbBecMI5*GH
zA5&7U^Q6+Z#AOr_P{}W+pF-h{=Lgg|9m+o2wA#gdp*)XB7P;!IQg7l`n(5l4ulux!
z<$?54{kWWmM}=?0WPj2!VW3f$+J!Uv(%GX}MKLo1d*rKI)~CquSLvpcn~$xxFobZ`
zZO&Sg69Aj*fwh}jM$HcWYEM3=-mWKy!!kl&1{v(I4!NvS**cYJBiwkhEe6Z6)Bv(e
z2h_q)wCv(3Tp*K?#ZQ04%b_i>xvY+71ma>(B7Re+X=5{mY%>p_4c%bwNv&c!bFI*z
zrffJv4Z(PK@En*tw$o{z@Xp&C0(h{UIkp8?(V~Y6HxSaJ2iOl0p*cMaFkwH8%aDgJ
zgFKs9#v$scfhf+UdrX@+Oc7$amw_DG!#L(#@T7TU>g?Gh%}ak?VTVE^nVEu%#AX%=
zMPutzUc_QECu2uqGpn5-*+!dP9Fvt7T8+r63*XDZD~I(h2lQoFmvuotxbiEXRX~A>WbYtjMVD+{9ozDHI<
zH}vu79e8AiaXx=HV5b~^ZqVYhOTtM9aCzzjtNQjCsiN5DtaAV@yB(5TpA2r!@EroO
zPl7gkc=*Qj0O~fQ=nikYWYz=Oa&5XhvRjq{cYOP_U+&npYlq#DZI=tXBReeF^#OO=
zUTe>Q5G2k}u?!O@`W$+GVF8T#_0=Ah{xz*Sz5pOEu|R*hdjI9_)1~z+r)Uc>%WuK~
z@S9v;-2y1nKqJ9MR5WMS}OZ(k@5PRMiu!wSkAM&aHtU07xEdCri$kz=0
zk_#2z0|JUJlX%IOwi~)*ihd0w8cPm73@jwMT1pS$fe7rmTWC+)0$1*~YYGkv2wc0N
z1*(6OZK0zG@P~d(n=I`ht9IXtZ^pbFK$svc!SRUCD;Yy9v5eaa1JUCzFoKRoo*~V7-dE4FB=hYJ_1bavtO`0;W@I)%2wv>ih7M8C8`BnbG@B8wp4q83$rTzm%)Z#GIL
z`o&v}nLF|PTGX4gxKm4^FsjX2e3UA5o(Z@*ohJdVTIWens@Zue6{SPcd{yg!G3tNU
z2{MYcsNE?`ZdzTmBH#f*@=?#Pd!Z82>U4F%yJiUkE;xl5a!
z9^ovLQ%0d!*!2;FZJX33m;|pHsh;yfkmL!iH-0B-_!{pe|Jv3=18ut{V(|I)zIiJLen4_um;DrV9kPU37}rIw9ny3M&Y2ur=$I;x#U+P6`1z3Gp_@#1n_;_MoUQhUmqrT?t}?>o
z=;jsfOI3r#NZS7zIK1FaSU-Q3V3lzy9r_xnuuU2qB=uvGohq-Pv8C5#J+LR#pfd4s
zR_5K9-D!D&oG%eYXz1KG#Y_K;a257e3>K^V~a2w%^hdIac7G?c*5>d=j>
zPjX!1oR8+A&YT?dQyNmlvtnlPi
z!PGejhbws3tG+l4obJ5Hk4ewUW=y^j4m_g08%H|AAnSjYEl-?@ik!Ee)g>}oM!tCf
zstFp%VRC=P8q!Qw03s@h`JZXEtCJ?(@hTm63j^Y_2er@$8g?su4!BmC-v>jiDBQ&q
z_0FJw4Xl0cSPzX0TdwlalTCWz$VX31R^`x;4l^ijz?Ie9q8p~wB78^8zHVS4!ClIP
zY5W!nv`yAfKjg098Kify$JkgIpd0|1q%x3wKX7gO+7{hePLT(6c#ar
z71m>$HlbMZ-ex)t@-r66q4
z{Yld58HwT{Ex6jpo25k|Ygh+KBuRL+vs`~4;{<*9I7uH*S-xmU;UpD4hdyO0k;gjl
z?Q;aaeQkPx$UH?Gfuyef9CkL-s^L^^-Qct2`~jbY2~U8}!mIwB8Og&Xie@?m+xGF;
z%Ax4-S(-G0A8m@EwM*U_PSw^`Jyg+%lH;QXaXH(x%6ZktA*#y=JnH=CXeQN)7Z!h^
zy6YL^SUibbv=o7CJeUrdMju;>OCr->w|Ww=o0X9X~cWHY@u&CU3M@2
zcQ++6f4ygUjB5pW^`Vw47yFwhV+oi09zG1WqA})8!M>{O?%j9R4{gPA9I~`eTGp_|
z(GgE%lKS^FTIG;pl~digvrr)kFv4t~6B!NE_L
zm1&jk>`~3-j_6l+`?O{GEi3Ex`S!s0dV6x7(2vPt9Ne9*&dn|dt5Q=}TNi(tzWV4%
zU~axW6qRl4camiOhx0gP8Pr{hJ*wivp-b@d1&&QjsD5?*zES}iW<
z0Am&Zu|67`D$qndX&(JiHMu%zMJb5OJ3eh(Zn=O!^eaw_yo<@d((Bg8HgyqQhh2~i
zMklk|#wtwvC>@G&`6M7uraymJ`Xf&Jd6o&U4Sk&sza2f#jcO3*DbXwHSz5Hps)GWn
zMUTD=qNB(qsOUCM@eT&jtnH6LaopZukeL+P*la!Pdh5=Fy4bcap)Y>l_B<S+YeJDJdPZxih>zSnhdz%qD
zhP#=#;`*D3Hq~z{F*~&oUlg9*ObijK8>Zz<94*@oMcPJuH^|2NT|W?BfN)F@!*EX+
zH6M;DjNfLs=;xIAzCgdrld#jUYyp
za7q=`4B~|i^Fgcbo^^jcf(5?dxDwCvdt*CF9Y!U;zvWLX|IW6oWiHbk;l$eDKgij%
z@yPRUf%%Jix4iH`U$ijVWiGnWUw*E4ANf)&JIA#IysCyWDR{*?wc$rR
zU}fPLeTZ6?=89;coV~E?K3$v(_5tn~`+)-6_q^J5KqdVv>ji)E*NtB415ihf0k5*U
zZ0d?tebTgS%b!qW%k$U-Lm~bta0=$i?8p>9CW;K=%?gTdYCRnI8+ZYW_#W;Q0r(@l
zfW>-*KZKnY&u~ui2+ww>s0T8f<2uIe_VrNY-?7k#t$B5@xQ{J|k(&u1o>}ZHvqH;R
z0|wMG+1<}!@K}G_f&tY~P*Z0S1a3SLBOFP3eXuuaz-$r)S>u7dO#=ohZp$s!Bs-zW
zeAi}z7zPx!sz@}@5(EY7^r0?bV8G(W2m%IAE&yV{aG($Tn6?!x8kjsCU?i|63|9LD
z&@kpL4M*!!UI0I-+`Dkd4g-J(SC!!^okSA7(LgYL@|J&!yV=sRpQCFR#zBs+mFv~M
zHp^#So?)tzRm$Hm4vSO8!w4*vJ_iy+
zc^Au>cEj+;{6N?w0|rA~7c52aPZ}55-bNBMV>1L1o&m2CUDrk3g1=yeiu-yE1=h>e
z@Ob6^L7;z*`%XcNegwuX{fQ+82jW{8+7u-M8-bDE!pIVX1Me-|lqoO3Ux7l!Eq_gc
zS1=!kerVxcgoZ`b{khiX0)VQPpop5k)gABo1N&6`wmZJ7SdLX_
zN9edkc1(p=VE5+C2+(qppt!{&v&H;fSMbhg1jc{s;LjK$6wp-+4!r95d)1*@^a(!h
zJ2@qbR%|0v-6mGYdO0xe(<(0(*JT}DYc(u6Ui+!itI6)t2lm^6YpD_(QF(B<4O9lR
znMB9Vx%mj?fX`%P~*7cnCr;1^&CR9!*@JXn6LcU|Y_Le8JFXS1y?O
z{K|iC>T~|FZp)7&$?J9K1&15BZ50Zo$;PotL=F?ABx;#SQnIcakAS=E;6r&IdA_q*
zmF~x*7fxeT0*#DT$7b-jwQNo#XHgHPiOMANB;}jLW_UlGP38#_WKGMOq^Rp3Llc!U
z;zL^XG+?;6JcmH$^%xIfMP(EPnOMxrg%f|NmnGNPcfuR#33qV5KPI0C?KU*>RmpOm
zB1*q%S+#r;Q4oWE586+peVX$OxLW6%F5NO=GFhE3FZb{RXB7sxJQYYDWw9+pp$x(T
z>#3Csr8%S`zYv+}ixz@1bCJn8o@QA+Sme;2LtA1deYyk1m1{mKR$yR)YgH$(Pltbu
zgTb2c4;0g~lDa^4Q+{w@NbvUrjwjk&-FAeb%6)Q4%es1Kv&9u*#}_Zy|H;L2Nr%~B
zbzPUG=p-(05HL;}Ouiw?|(`Y|3^F394#*NGLeT+2H9k;^YQ~yr>w%GSI*DZE?$Lr+ErThA~``gcr#R1tT_%6U#Y1Q#$vrFVyqm|1Eq{`$9
z@)&HJ-FQ|Z9*26E7&O%bYkQT(XCvDFAIqL4oNQdIXddxW&}o{s?rVQhv(bqTlVr#=&jmwgiScIC^0}m{qrIZCeqhNa&3>o@
zSvyoS(p;=S^*X99#AtoGVI%ETx@=T$J@O!XYf00aCE7?7y*vpzXHt7s4Vbu}uId7BkWS3CT
zecB1E7RWv9>#k4gF5w{M$g4eTd9NEx7(fxvRqWAv(VrD&|E_=QTOcSV=Wh7}h!Jw}
z9&85GZJ^YAvRZiz3}=%$%mVSxq3ih;q%|qhUepsPEa74s5dg8ae-7@a9H9YrPvjUg
z?CU6@+Tt?(!N6*I~)$Ei66wULMCq=k4@eYOYk+y=ViB`;E|pB?Zmdl39&T7e|+)6
zQ2)urn?pX#i)zntEP`iaCPsMZe3onw0ezN44<4P3$>HFkw^MpGc9BSqLx?|z-DFRf9NEd`ORntn^6@is<(Y2u
zX4F5Wnaq#W^{I%IlIb+1opNT1TSFMXPU3TUYf^b*}B}c%N(Y
zI^AbJ$ZpyLXOB(Iy_(fy9To!Aak8#YJ3E8c{!#T!a%;#pE%G*P8Z+wj`n1L+?f_D~
zhoaPfB#*q`CpyWS#ZtKFl9GS?BYCceg^8LKWc@@_*1O~rJyAbX6!lMvqW+cKGJ2~1
zE$e@JOHbE-Btlk4PuG8{^6FTzrKj!x(AD=IN=ifS;?!&>icJs
zmSn~KE6Hohb?@Iv+S09hBIZ~;r*=Jc|0#FO(6x*IlXRt7vr18)=zl)2C$j2(l1oa5
zu3uZ=(FE|yF~FoH`G=ewCQ~%YPqgH`qb28OT5|qLOU}P&$@w=eIscKo>vnQxmX3d<
z|4e?SA!*v^IV}!aQ_b;eot0aPgP4Ry|8OQq_Xr6IqS61G2_n+tn<=8u$D7F^(yN;(
zBGHeVt=U`K|Clv=|44pXKZGB}{6tC2J4#}HrX=Q{l*Igtl9+!}5+fqhDyJgmc+Daa
z=XVfAB?x;djLz`<8F54cvzNlC1ZaORm5~V4Udo~pu)S19DR7(XA~E!SybFSWTQy76
z$%K_g&rihkyd$RPXJUH(Nleebi0Sz^F+Kl5Ob@wm^Mx)#5$8*7L`DG5YNHc#zSKr2
z?0hMXO62)c8KL0wr8p|_=d|%|eQ&0u(3s+$)cizB%{x+RekP^npQP0MidH>dLT%6Rq%?TmzO%_%^ZJ~8k6gANYaS31x=v
zq^^>VUrqoL$TgyVQVxF}DUvuQ!F5ijTw|q=Qhvgsi&Q!*WdeA#*Qz3ZG_5}T8#~}%
z-LgK7LUM)eHct7FtHz9O@fch%CV2>560smNdG1*vonw`j4FCCZd9Hdp8d#iX#B^8J
zBI1yJSwvHwF<=_=DGk0kzhJ~R=s95=Lz^?kF||2kJY$=)Vw!*3eY(R8bSC&X4}o3b
z4@B5u%~#d8`=+{jC@<(Gf%!^RJ&Z`of)T?V+tT8>XKMvmwbw=fRzzmQjoWnCD8P5@
zHY!kjK1YW$ynKdfpLTMPDrs0-@~#_CA;o=hl2o_|*0Z?0u_|Un
z2Z%qgd4{yx*N=bWn3)`4kHadb32WhD$0#`hBhFCWh+;K`I9+TriFmkp8o#oPfKF)K
z@NMIra1yuZCXCM|ln7&T4;;eybdOX1oIIq(!0?~YFE9z?wD$I4G~K0jLQpJstjD%5
zL4p4))_uT02B+9Cl*=JngP`hIABk;TfnXSsYefWu^@xAZLb-fKSVB2HA|*)5q$!3r
z1ufvLE=!wmNnK|VDe3FvTtLMN%e7WBY+F#*exnzKwfFHscUXkv1Mjr_$cMmv;ZZ1y
z%aS8+u1@rxvpzA-1&_?uCHr7kby9DWZrF60P|n&8iN|e0lMh3iJ|^5Pw)LX%>FfIu
zIW1rEp-_Jdmr}%Ma9SDVO;A@!UpI(P;lA+7kH&q;l^2gTc6}}+Jcny9BM2VLH~Pn_
zVMHE*svDu*NR&IK<>-?q@D-lzdCi!4P&f}Sd2o0Q@Obdx7@foN0Z(9T;doUjXt97L
z)or(f?SzehNFA^PJap%4LWb{nP0$#ft_d8i!*zd_0im;X%!Am`nuvg1!-R{{@tM%^
zIz0yp#17AlBxC%6wFoZ&qmy$Cj?n)&5TNxvW)xM9Q}TEnngd6lw!Iv}C|TE~JBC2v
zJ^^jd02+=PJlIft4tj-C4NpRF9DJ;pdOCU}+&VcBB0P3`1KWK7&(0@5vzp>_h9Jb5X
zLO5J{m%cpi9ZYW~_h}zbs{hB_+bze9B7JRgwe3TZl!~*W
z#3rfM^xV+EOfZQS637COq_S-<>M?(&&3141!TL!y+&v-?0mLs7p!PyyA|m|zJpTVZ
z;-|CmM6u`Dj%8S|Wt)Dg?P#tEbB$=u7;6(pfCsKc9Lw-((W-icxrk%9BCc~DLleCk
zatzs|WszeD7i%ES*G0Eb^%2lZRUQq0*{Y*cEm?6S)AHq6QoT%RmUN4i<%oYZzvH*h&ngAc}yT|b-361;vkksxAWYa&C`veQJ4
z_!XKNh+1VqSiEy;Rs#RIEEu;O=Bug
z{F=sOrua3DiB$1x8u3K2YZ`yYGA!8UOkdMDnrp(CDVj5EIyMP5epWG!X3~se8r5RO
zEMhh>9s32;U$lN4HJb=w%Nub;#50+|fFW}U3V4HmPV4HS2)zQQQp90T8OP2;7B!YV
zl5)~`b~J7W
zWpTLi9rFbIn4>sx@Us>jw6Vl?}p;f*oH6AdN12@umBOs
zuw2DF)|ji0M;<_TPn#fEz_bZp4-bLESH=VJurz1Y`mU_A_1$VKhmzjg#tKa^es|dA
z*fizGbLpU8ZdtvA+}x|9xfD5ygPOF<}Et-dch$>9JGIbq%;G5=&)%Hs<5`|
zNG3j7lli|Smoj!+fUhjF_N|=i%u@(@Olae<+Rm!<8e%irYqLPe|=dC1W_$4Zdg=zjuGA3HAl8mVqtt4!A2fgFWHAF*w
z)h{s5)6MGWi&Q?CjREj4`@A{$reGn!{ey=7X_OMyJC#zyo|E5|_I9ExKSxB-46iOP
zK3rUWy1YBRK0moVzq>lWzPz}(x%l`YBs*s0e}8dv`|^M6tH*rxg-zL4Us`YRo`G(i
zw_Q^odcqfoB0S2;FTIC8$~hnL%QEhF>#WOPG<9*SXh-?x|
z(6Dbts)&Cf;GC?%!@)U8;gJ4a%qjgN_?Is?FH~k;zP!A6S^57*Il=L5n`2jUSFHVm
zmv~AMhb0T=m}8;hX(3v)fZ8}0ETRTVC@A-l75vj|+EyV~S-8iiKy%a$=)g
zu9(;uU!*Am@`Ve^OB9k9E+8*kIKD~25R1zT7LI>0#WDrN!t?4yQ*Y^lVq^S9g#|mh
zRb6#?)h#d_vJmE9i{;oB?o&-9OV)=M?pN)kOV^2S*0+kShXo7Gm|~eCW8r!AqN%rZ
zaj`MJU}0IfjWLldSzuncjj@w1U1+{t8&hm|W&Q$#H5<`F#mB|=>Kmlz(#7aD+bo!Q
z8v1`SIX0$PGMfx+3+9bD?xxrB%i?QM&7Y1AvRCb6%w3$L=wB?J!#Lu>Z8!*;FEEmK
zvx>xgY2vB~+3=p1b9jK_<(TEA?w6rlrp~ZJ()l+rF_d@vl0x0G|M_O?_4&>13EeYr
z)j0({2KLpeEZD64j-Ue)WGWA?b;E}Inzet=Md{Dsj&euw-1?y!*6UECOAg
zHD~p6wID&uG8_%eF3Z9C;CyKgxMjU8LzA;ols_#Tk5=t-mZhSjILC7M@0IaD-X;&4
z1wRyq3d8E}zrfj-fYZGSb~q>=Qw_QgIGJIclbs}fMr$b&Xpon~=f^kmh)!l25x0Lt
zBs%P+>6XoUJRBQxdw4R#%cWGie|RXq&W3-=265Snm8m&v_Yidc+C5@eqIMfdX06>L
z{AH79_F6Dvn7M48e=WK>i=~1$e~DDVmne)n{;cItgIhGxosZ5LI@a&C&
z3jQKVGjoe0_C@BbuLI2a>+FzViF!Ncn6>T>;g_nvL!M>p@Q`iMT%Wxz4+&l@nP#rj
z*LA&}vpy?$^Vek+e2IFjx9>vg{(5CknG;yE-jhZzY6-H^w-ujSp-^4m!C
zTSuf2Xn;^yO7@`1uravuMmK*roa}b4+G(VT#An^tL$)uwAoI^h6W(x=#bN{mthVj$
z@U@5+i4Pr4VwB#E?|JCJ_3kmx=8d1)MtjP&2pUkVWzbVL(z~eGXpiYpJmr^g8t@Hy
z`pbh(IGyQLw(lPEsw-B$-S%+a4Xwt~Wty*DK=KVF0#b1(Vc>MMv<`pPFgmo+x&bS=
zti$VyYSYfmxGmP}GJnpRkY=?H9FTNM;2S(?_P*W})uqPgE__3}X*^*scg)JT&AzZ4
zqvLfY_{~P`KV7GU3&^DYa17tuIPD9zJ98W-V%*T7htiIv!Q(xqHo~0`4np>iP6#?P
zK!$QAe;>*_#?pfZqWXW&5e>q|;OZ&iXpW2=25|4Nj)(CniDA$bd=MIj4966QIed?6
z7~q3(y>}3f2B+Hxq4Ttv=w5&)=$gY(G!YMq9K{p)w8&9h{^t#%;pMTC+3SghJbz6Y
z!!K2M4NPTrpO-Jfv`j_OiI%J?I@8jXMQ2;Gx_rW;$jeol9{+!3vPa>2u}o4p7sx8U
zATWCtDY%Pfjmons^Q>Adc^1!cm1}{Vrmf}KGrEVJzxNtoFV%GoX%_0YhBV7`S_;dO
z^-iH#x?U($vsMfL!h;qvXi`NXad{Qy?;*9pJv%p{zS>vn+T;4J$=h9BwRvdLPoZqe
zpvSSIDOf*ORe67ThWp;Lr`ZS{*Vn&1XN~7x>I_W&YlJh9ES)cKGkvLC5!j1Hf(B8i
zcpXxhN}e+!Lws7Kd&w9h3n_0i;7CVcu}F1uH}kKkH36TQMg{Ns0>M8
zmh$CGr%Jw5>Ex?&pY!|Kr$IXOtBm%r`Ui{`j?1eT%B}(HiY9+A7tNI@E-yz3wuxVk
zZK=j=K;wTu_H!%)e=F<760WK1?aQ&z<&hWUn}7Xjz`)NVbuU74r!`m0Q&Q&%jmNUp
z>czUvA@5Q>CfrG0XgODhUaa98&@51q1`Jr>c3
z_3PD_e7#^L84@g7RYqhBRhSVESqNmVch5!lh-QCIUy_wI)~wlX4llsDSZTbd*7?`j
zi=aeZPH{Y-KD*))by3CZeYb?>9CkU?ub8gSb+f+CSq+~(1|#&B8yXp?mrBFye8ak!
zyqP`uRN&>*|16Hbu3QywKFb%mL5yW%uRWlM0<|fgB0BW+4Lx9bXB$V$p{T#}tcO
zG2nkfWCDvg4<5JeZ=#*bhX;^o4jELcX60`8wC&IGJ+!#Z$}g^CM-}+vHSiiBn3;<5
zIBG3tF6OASgYl$%jW(vX3XzD~Dn+zoO>wnVr=808N`DR_JW*$&mk;QDWt~yhWf4ur
zj2h4a#LIJUv#)p6etTCI)i+B2BO0t@G>CsWsWBhhw<>LtAM$%w@AhTZynI@}+GU&k
zt}D7S|2E`B1qJQ?@D13%Q8AC~myf1;#ZNuLPRk3&66=;~G3o{C)#MSu@uV+QmuUMo
zax}t);>IIFXyUn#~2e`tClz!zb9cdBu-(x(%;cSlx7wdAW<(
z(qzFSB7?#ElW%dwwC9Q@Ic5>}SlZ})f@28v0nZB%9#PYxY2#;AlPM;T9FJn0HcXsO
z`I4CzIRu=BKXt@4k?lna$ttVZa3WjZb@i@TMK$|zJat*(eG;H)m*asff**f(a7t}c
z(}B>1sg_H+0?uwmbeI@EqQ|80{4xR_6pd>E6}~A%$8?;>QXkPe1ygUK9>vNXFr%WY}=X#+y%2#C~$0bJ+z0&S8
z&K^0MYs9o?Tq2@D6B1--Zc2ZHrg2Uqo3gewnRZHpHUru8jhs2izfA%k)9D{UAK#eI
zK=w`Y_vnq{Ik=A)RL(^oy(%*Y@yph!Io4<<(@z;Z%s}=H>eO)UJNER^9K=wf;fW*o
z;p+eK52y9Is5Yy3&r^dn*UIg)*~UH?R;W+{}zY*Zwm6id60h>37!5<1%LHBCwy3)m7&w$NbDb8
z{l2bC5|Y9P_^*4%7+Iba1f7m`E0_
zrgAVmnC&GXMpHi$`{#tofd`XIxZLZc7xc#%oQq)+$3$lY5TEcYN82=O^7Juh|8;c=
z=YoGAiQ<&8!<;dn1Rg^NpQNi3Jb=r5Jc{LCcV*r5If65>Yy~B@jLdj9)H(Ue*}dlL
zQSvYQ-Jzorl;79&m$cpQp!bN=&x-QzJv>@%F$*xUv-r|JlD>b0JX0Jz?7Nc9ukZ5*fMJC%g~lLG10%u}
zb4x*aB!DpJ^7
zyCSVoJ3)?9>p45bs{ulSmi>0n@IiRG-?0pPuA46pW&IpZXcp%K`eeUjIW1frN_39}
z8>sDAMLJ+tv}s)9eUlzmgxlUDQ9XZpZ7QbfzTUS`jD@$c#F+w$f+zeE#m`NV-sai%
zwCE1OTvEbCnxu&Y{;p*HU%wC319$XNHXC1kNo%#{jWfWn-5BX4`6D>U^_B>&R(%j9
z3)3|1SfCXPlww4uD{CPbz%P;DD>&W;#TlCNT~p%;mFe*?p`CI^?4GX3F+zXCU6bR2
z4eY14(^b=9uGFsxWyGUVV#qgs#s}wXEJy5tH
zaz~}00ZOl8X!7(*h9Dms4|@b6ly+%5sY%9}LcxYp^+RfF5^C!TutUcnP`IL%)DOwZ
zoVFOqumAI7#)gBfjcQdyEAM|t{LDfmdZ|zw$nQ=szW;;J{4BrUZ#K{zjVqA!qsk&b
zN3zsawRkm_O@T7}yKkZ8+pW!OTspQ(`XnK*gnK3El`t=(9&G5!(x-jQbIf8EY`0(E
zr_M7c17*e#sg7~l2Y?d70=$L*$!c&$MN@38rL;$dKCnC0WjL{P5CwlOh5Ay!*BFds
zkO4&na!(nXQ{9(&P;#2Y&V^ed-7J*(YA?Ic)xK$97!P(g!Hi
z{2a+*16F0_;jcaZ5U6X7Z{7+j6S>-~0nU^!pqP5M~aHthzaW1+L&B|#S>
znRhjJz@vpXt=eknJ1sLj(0yQc#_*n@E4D1IXk|VG-5_;C{Rn?LCFo@2gIrXSH-u~`
z0_#0Wei&(}hg(Gyw1LDY><3p@deLIDy5@^%I7}W?6X>@tqMppeh4O9Iv7T_9-XBsp
zwVu{Znw3RnPJIPE5Jep5#HDv0D!D%-ctXBz5)3s~@u6-uqD8G!SlDXvvWE5Fn#~^M
z9z1;FHi~aYQB{BZ80@!F78ahFY(lc|#bm`v0Qkgxnr^&Z*++7_@1Rdi`x_#-l*Ni!
z(ZIm3%2#}(ifs;D;DB>4-Uv>`y(GCrxv>JvXDFBSau7La?S$MoV*KcL+U=W)C-XXg
z$o6H&Z-e+^;05@|@89tNpwbxyARmKHPkGZ6*d4NtaGQT^id9Mn==~+eCHqnOLHCJ%
z3HKW-@k?KAU3@&4t^Rh8uy0RWBHMg>&zipM9?nofZa%Onb(-x8FG(26Erz0977CSM
zC@cXGDml5jFsP`YK0oFaUn_?cd}!*ea~!KF8HjVM=m+5v87_fvVqbKuDC}Kl>urIx
z0atSJ6b^r<@n;FV3i{+f=l2QvLlTmIQo+I;`3r?^`W4-)0~lJ`8rt@8AZq88gFBoQD9bZ7_ywG==+snUOS+3FD|rw1@pwM}U{1*44GS$eI}
z4njN;p=3^qP*8q?GF06hsQQBh!<3FvJ`_{kf~e$9_9%;jBOsCrSHY&Fx)1B9s-u7_
zOTVVY03-5gKaX5vuDb0spDI4}7y0Rj|
zN^g?~YU_nL|c(it-dW>ZKoML{3R
zHTlz=4V8>jPB}J(rKsH(T^_5O8APh~*q?vT!4inxHqG|%-6?g@uZJcQQYBS^R9fM@>8(AIGID^7o9GXB6a}L$kCuTzx
z;TkFc!EnyLATd^HEccmQaNwt{NZ<`y2>WNK3Gbk!8`|noAl_ng_XOM%aJR$abhCfJ
zy#bzFV)mA{Y)Za0_o^0V57MRZ#Y8_7v&$Rw^{5DknrIe6U@51v9ZRrk=mNqcTQrN|
zD)*jl{hC~K(%5u4XXG~3Y#7(VotnMj?Aol*UbxC5Qm~`S+O588TDz|~*wlM%XCt`g_eKH
zn-=Cqc=xz24Nb%#1ho&`G2xCDG8u8om2v6y5}xf2y+aB^|i+ijuL2kSnE
zncXCPDji9KQ)N%XpaC0ceDUqA8Oeu&Z|QqDc`#6JpqDLnd|j?7Y=>fvv?hPycNez_
zxY2?gx;g0icw3pu?e=Av!r>4c)P!o{!MUX2x-t{IV%~W9h=x&>zI!HSt<8w(7!o#LlOKM<#!I_G
zLO~4|N$e3Qsn!F{-o
z^|P{FMGf3@CHAaR<85^dXAsoS^|P}5Ma|@MCDcsBC3mB)yQbddO;=EVe;b)17U3)D
z4BfLawfZe^OGe57JS*k58HR5vsh~#nby!s-grTU?Eo&W{gSz)$P2lwcU5EgRUdeYK
z`j7AJT7pR!ac>9jAmK;6l0KaG`Lu_pfP2AH>>JTtbnje*1H62h`wulxy;U7XAj=A%QkaX?&4FL{24d)YN=;kG1Vm0hu$ppO;chCCAC5v~iY
z(jTG8KwRiS&VDUu8$o6>&;3KN8a8>_e2}4e;W-2=(oWSt?0YDG=7)Wx<1_poGA6)D
z@RYs<9B(pU7cb6lq^qn-i?q$2&<+Co=&g!|Y7mEtcO_^n!jFF>EOc^_Kxk-s*@tBK
zgBq7NaAYxsmN{ja2i8~X#xf)@1*O3O`j7z!>Ek1Tq`S}BV#Vff*~XqQR#r{=4g6-g
z#eRnogFCKc?X*~b$7*1JnVJ}Q5C*p&CupJw