diff --git a/docs/0.9.5/.buildinfo b/docs/0.9.5/.buildinfo index 0659aa4145..40edf11548 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: a67c638a2a995a925a24c16ff083abc0 +config: 038fdb322c369db1cc82eabb59d37c56 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/0.9.5/A-voice-operated-elevator-using-events.html b/docs/0.9.5/A-voice-operated-elevator-using-events.html index d674cb6d91..b8282a4f19 100644 --- a/docs/0.9.5/A-voice-operated-elevator-using-events.html +++ b/docs/0.9.5/A-voice-operated-elevator-using-events.html @@ -567,6 +567,7 @@ shown in the next tutorial.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/API-refactoring.html b/docs/0.9.5/API-refactoring.html index 6861a9281a..983ae14474 100644 --- a/docs/0.9.5/API-refactoring.html +++ b/docs/0.9.5/API-refactoring.html @@ -143,6 +143,7 @@ easier passthrough on extension.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Accounts.html b/docs/0.9.5/Accounts.html index 59128d028c..da1e626c0e 100644 --- a/docs/0.9.5/Accounts.html +++ b/docs/0.9.5/Accounts.html @@ -204,6 +204,7 @@ any.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Add-a-simple-new-web-page.html b/docs/0.9.5/Add-a-simple-new-web-page.html index e64eefa1f1..4f2bde777a 100644 --- a/docs/0.9.5/Add-a-simple-new-web-page.html +++ b/docs/0.9.5/Add-a-simple-new-web-page.html @@ -210,6 +210,7 @@ to.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Add-a-wiki-on-your-website.html b/docs/0.9.5/Add-a-wiki-on-your-website.html index 54226343d6..c36cd3853b 100644 --- a/docs/0.9.5/Add-a-wiki-on-your-website.html +++ b/docs/0.9.5/Add-a-wiki-on-your-website.html @@ -416,6 +416,7 @@ necessary. If you’re interested in supporting this little project, you are mo
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Adding-Command-Tutorial.html b/docs/0.9.5/Adding-Command-Tutorial.html index 60b984080b..c9b59a502f 100644 --- a/docs/0.9.5/Adding-Command-Tutorial.html +++ b/docs/0.9.5/Adding-Command-Tutorial.html @@ -307,6 +307,7 @@ default character cmdset defaults to being defined as

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Adding-Object-Typeclass-Tutorial.html b/docs/0.9.5/Adding-Object-Typeclass-Tutorial.html index 607f8f648a..bace599daa 100644 --- a/docs/0.9.5/Adding-Object-Typeclass-Tutorial.html +++ b/docs/0.9.5/Adding-Object-Typeclass-Tutorial.html @@ -217,6 +217,7 @@ objects you can use 0.9.5 (v0.9.5 branch) +
    diff --git a/docs/0.9.5/Administrative-Docs.html b/docs/0.9.5/Administrative-Docs.html index d63adb6af6..ed33a01cae 100644 --- a/docs/0.9.5/Administrative-Docs.html +++ b/docs/0.9.5/Administrative-Docs.html @@ -161,6 +161,7 @@ Settings

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Apache-Config.html b/docs/0.9.5/Apache-Config.html index db6192a54d..5a7e79ec5b 100644 --- a/docs/0.9.5/Apache-Config.html +++ b/docs/0.9.5/Apache-Config.html @@ -285,6 +285,7 @@ port but this should be applicable also to other types of proxies (like nginx).<
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Arxcode-installing-help.html b/docs/0.9.5/Arxcode-installing-help.html index a698b3cd6d..6373af7e8d 100644 --- a/docs/0.9.5/Arxcode-installing-help.html +++ b/docs/0.9.5/Arxcode-installing-help.html @@ -326,6 +326,7 @@ on localhost at port 4000, and the webserver at http://localhost:4001/

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Async-Process.html b/docs/0.9.5/Async-Process.html index f6091063b7..f95b858aab 100644 --- a/docs/0.9.5/Async-Process.html +++ b/docs/0.9.5/Async-Process.html @@ -358,6 +358,7 @@ your own liking.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Attributes.html b/docs/0.9.5/Attributes.html index 0aed612bb8..5518beeb21 100644 --- a/docs/0.9.5/Attributes.html +++ b/docs/0.9.5/Attributes.html @@ -528,6 +528,7 @@ those will check for the 0.9.5 (v0.9.5 branch) +
    diff --git a/docs/0.9.5/Banning.html b/docs/0.9.5/Banning.html index b23c77133f..57477151fc 100644 --- a/docs/0.9.5/Banning.html +++ b/docs/0.9.5/Banning.html @@ -246,6 +246,7 @@ password of any account, including the superuser or admin accounts. This is a fe
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Batch-Code-Processor.html b/docs/0.9.5/Batch-Code-Processor.html index 88f1b7686b..f30f26efc8 100644 --- a/docs/0.9.5/Batch-Code-Processor.html +++ b/docs/0.9.5/Batch-Code-Processor.html @@ -373,6 +373,7 @@ executed. When the code runs it has no knowledge of what file those strings wher
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Batch-Command-Processor.html b/docs/0.9.5/Batch-Command-Processor.html index 436e7a7498..dbf2c40841 100644 --- a/docs/0.9.5/Batch-Command-Processor.html +++ b/docs/0.9.5/Batch-Command-Processor.html @@ -297,6 +297,7 @@ mode instead, see its readme for install instructions.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Batch-Processors.html b/docs/0.9.5/Batch-Processors.html index 1821724d33..3c976e12c9 100644 --- a/docs/0.9.5/Batch-Processors.html +++ b/docs/0.9.5/Batch-Processors.html @@ -151,6 +151,7 @@ allowed.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Bootstrap-&-Evennia.html b/docs/0.9.5/Bootstrap-&-Evennia.html index a639ce6b4c..21f911e811 100644 --- a/docs/0.9.5/Bootstrap-&-Evennia.html +++ b/docs/0.9.5/Bootstrap-&-Evennia.html @@ -196,6 +196,7 @@ started/introduction/) or read one of our other web tutorials.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Bootstrap-Components-and-Utilities.html b/docs/0.9.5/Bootstrap-Components-and-Utilities.html index 79eb84b3b2..7d95dc74aa 100644 --- a/docs/0.9.5/Bootstrap-Components-and-Utilities.html +++ b/docs/0.9.5/Bootstrap-Components-and-Utilities.html @@ -202,6 +202,7 @@ over 0.9.5 (v0.9.5 branch) +
    diff --git a/docs/0.9.5/Builder-Docs.html b/docs/0.9.5/Builder-Docs.html index 42efd1521f..5a3b403315 100644 --- a/docs/0.9.5/Builder-Docs.html +++ b/docs/0.9.5/Builder-Docs.html @@ -121,6 +121,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Building-Permissions.html b/docs/0.9.5/Building-Permissions.html index c9dead9140..c70eb8bced 100644 --- a/docs/0.9.5/Building-Permissions.html +++ b/docs/0.9.5/Building-Permissions.html @@ -166,6 +166,7 @@ levels. Note that you cannot escalate your permissions this way; If the Characte
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Building-Quickstart.html b/docs/0.9.5/Building-Quickstart.html index 855ca6208e..f028a397ad 100644 --- a/docs/0.9.5/Building-Quickstart.html +++ b/docs/0.9.5/Building-Quickstart.html @@ -359,6 +359,7 @@ World-Introduction).

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Building-a-mech-tutorial.html b/docs/0.9.5/Building-a-mech-tutorial.html index ee4a357dcf..1bac287559 100644 --- a/docs/0.9.5/Building-a-mech-tutorial.html +++ b/docs/0.9.5/Building-a-mech-tutorial.html @@ -391,6 +391,7 @@ shooting goodness would be made available to you only when you enter it.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Building-menus.html b/docs/0.9.5/Building-menus.html index d8dc23f346..e76079f738 100644 --- a/docs/0.9.5/Building-menus.html +++ b/docs/0.9.5/Building-menus.html @@ -1662,6 +1662,7 @@ exhaustive but user-friendly.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Choosing-An-SQL-Server.html b/docs/0.9.5/Choosing-An-SQL-Server.html index f64c31ec8f..351c81f236 100644 --- a/docs/0.9.5/Choosing-An-SQL-Server.html +++ b/docs/0.9.5/Choosing-An-SQL-Server.html @@ -377,6 +377,7 @@ others. If you try other databases out, consider expanding this page with instru
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Client-Support-Grid.html b/docs/0.9.5/Client-Support-Grid.html index c7167d842c..6409e24b75 100644 --- a/docs/0.9.5/Client-Support-Grid.html +++ b/docs/0.9.5/Client-Support-Grid.html @@ -239,6 +239,7 @@ parameter to disable it for that Evennia account permanently.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Coding-FAQ.html b/docs/0.9.5/Coding-FAQ.html index e7ff36a455..f8f7df0086 100644 --- a/docs/0.9.5/Coding-FAQ.html +++ b/docs/0.9.5/Coding-FAQ.html @@ -610,6 +610,7 @@ discussion where some suitable fonts are suggested.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Coding-Introduction.html b/docs/0.9.5/Coding-Introduction.html index bedb0a8cda..18819499fa 100644 --- a/docs/0.9.5/Coding-Introduction.html +++ b/docs/0.9.5/Coding-Introduction.html @@ -196,6 +196,7 @@ can’t find the answer in the docs, don’t be shy to ask questions! The
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Coding-Utils.html b/docs/0.9.5/Coding-Utils.html index 5553d7a098..3e1929a095 100644 --- a/docs/0.9.5/Coding-Utils.html +++ b/docs/0.9.5/Coding-Utils.html @@ -457,6 +457,7 @@ instructions.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Command-Cooldown.html b/docs/0.9.5/Command-Cooldown.html index 6582c35a2d..70a9b03432 100644 --- a/docs/0.9.5/Command-Cooldown.html +++ b/docs/0.9.5/Command-Cooldown.html @@ -232,6 +232,7 @@ other types of attacks for a while before the warrior can recover.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Command-Duration.html b/docs/0.9.5/Command-Duration.html index 63a7c3c391..959dd29703 100644 --- a/docs/0.9.5/Command-Duration.html +++ b/docs/0.9.5/Command-Duration.html @@ -719,6 +719,7 @@ callback when the server comes back up (it will resume the countdown and ignore
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Command-Prompt.html b/docs/0.9.5/Command-Prompt.html index d78420198f..cee957ffbc 100644 --- a/docs/0.9.5/Command-Prompt.html +++ b/docs/0.9.5/Command-Prompt.html @@ -277,6 +277,7 @@ directly the easiest way is to just wrap those with a multiple inheritance to yo
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Command-Sets.html b/docs/0.9.5/Command-Sets.html index 265ae1e7ec..b519a5e154 100644 --- a/docs/0.9.5/Command-Sets.html +++ b/docs/0.9.5/Command-Sets.html @@ -502,6 +502,7 @@ commands having any combination of the keys and/or aliases “kick”, “punch
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Command-System.html b/docs/0.9.5/Command-System.html index 7d1e0f76d0..835fc631ee 100644 --- a/docs/0.9.5/Command-System.html +++ b/docs/0.9.5/Command-System.html @@ -98,6 +98,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Commands.html b/docs/0.9.5/Commands.html index 2854cd18e7..29ebe737f3 100644 --- a/docs/0.9.5/Commands.html +++ b/docs/0.9.5/Commands.html @@ -874,6 +874,7 @@ on.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Communications.html b/docs/0.9.5/Communications.html index 7f947956d8..1f609137ff 100644 --- a/docs/0.9.5/Communications.html +++ b/docs/0.9.5/Communications.html @@ -213,6 +213,7 @@ for channel communication (since the default ChannelCommand instead logs to a fi
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Connection-Screen.html b/docs/0.9.5/Connection-Screen.html index ed8f991932..eb6747fad1 100644 --- a/docs/0.9.5/Connection-Screen.html +++ b/docs/0.9.5/Connection-Screen.html @@ -128,6 +128,7 @@ tutorial section on how to add new commands to a default command set.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Continuous-Integration.html b/docs/0.9.5/Continuous-Integration.html index aab24a2295..1b108a2f72 100644 --- a/docs/0.9.5/Continuous-Integration.html +++ b/docs/0.9.5/Continuous-Integration.html @@ -418,6 +418,7 @@ build steps could be added or removed at this point, adding some features like U
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Contributing-Docs.html b/docs/0.9.5/Contributing-Docs.html index 17dadbdd16..57f6cf314b 100644 --- a/docs/0.9.5/Contributing-Docs.html +++ b/docs/0.9.5/Contributing-Docs.html @@ -804,6 +804,7 @@ to understand our friendly Google-style docstrings used in classes and functions
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Contributing.html b/docs/0.9.5/Contributing.html index f3d03a767a..de8a113fe4 100644 --- a/docs/0.9.5/Contributing.html +++ b/docs/0.9.5/Contributing.html @@ -209,6 +209,7 @@ UBBFWIuVDEZxC0M_2pM6ywO&dispatch=5885d80a13c0db1f8e263663d3faee8d66f31424b43
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Coordinates.html b/docs/0.9.5/Coordinates.html index 9ef410322a..f43d9be5ee 100644 --- a/docs/0.9.5/Coordinates.html +++ b/docs/0.9.5/Coordinates.html @@ -580,6 +580,7 @@ square (E, G, M and O) are not in this circle. So we remove them.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Custom-Protocols.html b/docs/0.9.5/Custom-Protocols.html index bc3a36ba8a..b29c32889b 100644 --- a/docs/0.9.5/Custom-Protocols.html +++ b/docs/0.9.5/Custom-Protocols.html @@ -435,6 +435,7 @@ ways.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Customize-channels.html b/docs/0.9.5/Customize-channels.html index 8aba37a025..3b326dbd23 100644 --- a/docs/0.9.5/Customize-channels.html +++ b/docs/0.9.5/Customize-channels.html @@ -766,6 +766,7 @@ lg/avenew/blob/master/commands/comms.py)

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Debugging.html b/docs/0.9.5/Debugging.html index bf814a0e69..b636f33650 100644 --- a/docs/0.9.5/Debugging.html +++ b/docs/0.9.5/Debugging.html @@ -374,6 +374,7 @@ topic here.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Default-Command-Help.html b/docs/0.9.5/Default-Command-Help.html index 6fd279e76e..3c564053e8 100644 --- a/docs/0.9.5/Default-Command-Help.html +++ b/docs/0.9.5/Default-Command-Help.html @@ -3020,6 +3020,7 @@ ttps://github.com/evennia/evennia/tree/master/evennia/commands/default/cmdset_un
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Default-Exit-Errors.html b/docs/0.9.5/Default-Exit-Errors.html index 22f63f2bce..25a1ba90ba 100644 --- a/docs/0.9.5/Default-Exit-Errors.html +++ b/docs/0.9.5/Default-Exit-Errors.html @@ -254,6 +254,7 @@ matching “north” exit-command.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Developer-Central.html b/docs/0.9.5/Developer-Central.html index 1470374ab0..da8562a7fa 100644 --- a/docs/0.9.5/Developer-Central.html +++ b/docs/0.9.5/Developer-Central.html @@ -250,6 +250,7 @@ over time

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Dialogues-in-events.html b/docs/0.9.5/Dialogues-in-events.html index cd5ddde147..2ee86526f1 100644 --- a/docs/0.9.5/Dialogues-in-events.html +++ b/docs/0.9.5/Dialogues-in-events.html @@ -337,6 +337,7 @@ events).

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Directory-Overview.html b/docs/0.9.5/Directory-Overview.html index 974e2a7d91..3b789663c3 100644 --- a/docs/0.9.5/Directory-Overview.html +++ b/docs/0.9.5/Directory-Overview.html @@ -173,6 +173,7 @@ having to import from their actual locations inside the source tree.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Docs-refactoring.html b/docs/0.9.5/Docs-refactoring.html index f4d48e451f..e7a28f5236 100644 --- a/docs/0.9.5/Docs-refactoring.html +++ b/docs/0.9.5/Docs-refactoring.html @@ -206,6 +206,7 @@ call return_appearance

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Dynamic-In-Game-Map.html b/docs/0.9.5/Dynamic-In-Game-Map.html index 2ff20d1b7d..a7d58f395f 100644 --- a/docs/0.9.5/Dynamic-In-Game-Map.html +++ b/docs/0.9.5/Dynamic-In-Game-Map.html @@ -812,6 +812,7 @@ also look into up/down directions and figure out how to display that in a good w
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/EvEditor.html b/docs/0.9.5/EvEditor.html index 0b44bad3e7..29a8d06246 100644 --- a/docs/0.9.5/EvEditor.html +++ b/docs/0.9.5/EvEditor.html @@ -336,6 +336,7 @@ editor can be useful if you want to test the code you have typed but add new lin
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/EvMenu.html b/docs/0.9.5/EvMenu.html index 1d8279cdc2..8f67355368 100644 --- a/docs/0.9.5/EvMenu.html +++ b/docs/0.9.5/EvMenu.html @@ -1779,6 +1779,7 @@ until the exit node.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/EvMore.html b/docs/0.9.5/EvMore.html index 781453b2b5..1d5544be6b 100644 --- a/docs/0.9.5/EvMore.html +++ b/docs/0.9.5/EvMore.html @@ -129,6 +129,7 @@ paging.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Evennia-API.html b/docs/0.9.5/Evennia-API.html index 7dc51ca4fb..57aa56a793 100644 --- a/docs/0.9.5/Evennia-API.html +++ b/docs/0.9.5/Evennia-API.html @@ -220,6 +220,7 @@ The flat API is defined in 0.9.5 (v0.9.5 branch) +
    diff --git a/docs/0.9.5/Evennia-Game-Index.html b/docs/0.9.5/Evennia-Game-Index.html index b43699d783..0b8017efc3 100644 --- a/docs/0.9.5/Evennia-Game-Index.html +++ b/docs/0.9.5/Evennia-Game-Index.html @@ -182,6 +182,7 @@ if you are not ready for players yet.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Evennia-Introduction.html b/docs/0.9.5/Evennia-Introduction.html index 8b3e1d8eb5..088371ecb7 100644 --- a/docs/0.9.5/Evennia-Introduction.html +++ b/docs/0.9.5/Evennia-Introduction.html @@ -271,6 +271,7 @@ your own game, you will end up with a small (very small) game that you can build
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Evennia-for-Diku-Users.html b/docs/0.9.5/Evennia-for-Diku-Users.html index bc32698fea..5f04d05cb9 100644 --- a/docs/0.9.5/Evennia-for-Diku-Users.html +++ b/docs/0.9.5/Evennia-for-Diku-Users.html @@ -359,6 +359,7 @@ your mob.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Evennia-for-MUSH-Users.html b/docs/0.9.5/Evennia-for-MUSH-Users.html index 79e1b279dd..ea33cce3ee 100644 --- a/docs/0.9.5/Evennia-for-MUSH-Users.html +++ b/docs/0.9.5/Evennia-for-MUSH-Users.html @@ -324,6 +324,7 @@ question in our 0.9.5 (v0.9.5 branch) +
    diff --git a/docs/0.9.5/Evennia-for-roleplaying-sessions.html b/docs/0.9.5/Evennia-for-roleplaying-sessions.html index ffff5010fc..5eea4976c2 100644 --- a/docs/0.9.5/Evennia-for-roleplaying-sessions.html +++ b/docs/0.9.5/Evennia-for-roleplaying-sessions.html @@ -1147,6 +1147,7 @@ when the message was sent.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Execute-Python-Code.html b/docs/0.9.5/Execute-Python-Code.html index 4e330d36ff..7e3dabd9b9 100644 --- a/docs/0.9.5/Execute-Python-Code.html +++ b/docs/0.9.5/Execute-Python-Code.html @@ -216,6 +216,7 @@ Out[3]: [<ObjectDB: Harry>, <ObjectDB: Limbo>, ...]
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/First-Steps-Coding.html b/docs/0.9.5/First-Steps-Coding.html index 8b35ba3f9f..f63d6a0c9f 100644 --- a/docs/0.9.5/First-Steps-Coding.html +++ b/docs/0.9.5/First-Steps-Coding.html @@ -440,6 +440,7 @@ developers.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Game-Planning.html b/docs/0.9.5/Game-Planning.html index 6d8f3fb88e..5a458b03ae 100644 --- a/docs/0.9.5/Game-Planning.html +++ b/docs/0.9.5/Game-Planning.html @@ -314,6 +314,7 @@ have made their dream game a reality!

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Gametime-Tutorial.html b/docs/0.9.5/Gametime-Tutorial.html index d93fc182dd..da34fb1856 100644 --- a/docs/0.9.5/Gametime-Tutorial.html +++ b/docs/0.9.5/Gametime-Tutorial.html @@ -472,6 +472,7 @@ same way as described for the default one above.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Getting-Started.html b/docs/0.9.5/Getting-Started.html index 582bd05fa6..a2498ad453 100644 --- a/docs/0.9.5/Getting-Started.html +++ b/docs/0.9.5/Getting-Started.html @@ -587,6 +587,7 @@ virus software interfering. Try disabling or changing your anti-virus software s
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Glossary.html b/docs/0.9.5/Glossary.html index c7ae3966d2..6b600b5324 100644 --- a/docs/0.9.5/Glossary.html +++ b/docs/0.9.5/Glossary.html @@ -463,6 +463,7 @@ activated whenever you want to use the 0.9.5 (v0.9.5 branch) +
    diff --git a/docs/0.9.5/Grapevine.html b/docs/0.9.5/Grapevine.html index 450dfe7476..be278eeaf5 100644 --- a/docs/0.9.5/Grapevine.html +++ b/docs/0.9.5/Grapevine.html @@ -157,6 +157,7 @@ it to your channel in-game.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Guest-Logins.html b/docs/0.9.5/Guest-Logins.html index a6d58ada55..4c85d96a07 100644 --- a/docs/0.9.5/Guest-Logins.html +++ b/docs/0.9.5/Guest-Logins.html @@ -113,6 +113,7 @@ of nine names from
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/HAProxy-Config.html b/docs/0.9.5/HAProxy-Config.html index 91f472b68e..9211f3afaa 100644 --- a/docs/0.9.5/HAProxy-Config.html +++ b/docs/0.9.5/HAProxy-Config.html @@ -230,6 +230,7 @@ Linux mechanism for running things at specific times.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Help-System-Tutorial.html b/docs/0.9.5/Help-System-Tutorial.html index 485a4e6d9f..ababc9558e 100644 --- a/docs/0.9.5/Help-System-Tutorial.html +++ b/docs/0.9.5/Help-System-Tutorial.html @@ -672,6 +672,7 @@ themselves links to display their details.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Help-System.html b/docs/0.9.5/Help-System.html index 25829764ef..9edc9dde08 100644 --- a/docs/0.9.5/Help-System.html +++ b/docs/0.9.5/Help-System.html @@ -228,6 +228,7 @@ definition
    :

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/How-To-Get-And-Give-Help.html b/docs/0.9.5/How-To-Get-And-Give-Help.html index 32d732b303..10213c22ab 100644 --- a/docs/0.9.5/How-To-Get-And-Give-Help.html +++ b/docs/0.9.5/How-To-Get-And-Give-Help.html @@ -150,6 +150,7 @@ mage/*
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/How-to-connect-Evennia-to-Twitter.html b/docs/0.9.5/How-to-connect-Evennia-to-Twitter.html index e61dcbf09a..9a990a5738 100644 --- a/docs/0.9.5/How-to-connect-Evennia-to-Twitter.html +++ b/docs/0.9.5/How-to-connect-Evennia-to-Twitter.html @@ -239,6 +239,7 @@ help.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/IRC.html b/docs/0.9.5/IRC.html index ef09012f3c..f6a44d66ed 100644 --- a/docs/0.9.5/IRC.html +++ b/docs/0.9.5/IRC.html @@ -175,6 +175,7 @@ name of the IRC channel you used (#evennia here).

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Implementing-a-game-rule-system.html b/docs/0.9.5/Implementing-a-game-rule-system.html index 342eb2c3c4..0ccd925240 100644 --- a/docs/0.9.5/Implementing-a-game-rule-system.html +++ b/docs/0.9.5/Implementing-a-game-rule-system.html @@ -533,6 +533,7 @@ tag dummy=training_dummy

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Inputfuncs.html b/docs/0.9.5/Inputfuncs.html index 4da62ff822..bc38fb4063 100644 --- a/docs/0.9.5/Inputfuncs.html +++ b/docs/0.9.5/Inputfuncs.html @@ -289,6 +289,7 @@ add more. By default the following fields/attributes can be monitored:

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Installing-on-Android.html b/docs/0.9.5/Installing-on-Android.html index db8142d733..9838aecc5a 100644 --- a/docs/0.9.5/Installing-on-Android.html +++ b/docs/0.9.5/Installing-on-Android.html @@ -211,6 +211,7 @@ killed if your phone is heavily taxed. Termux seems to keep a notification up to
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Internationalization.html b/docs/0.9.5/Internationalization.html index b7c8958687..eadb1b5a57 100644 --- a/docs/0.9.5/Internationalization.html +++ b/docs/0.9.5/Internationalization.html @@ -180,6 +180,7 @@ your own repository clone) so we can integrate your translation into Evennia!

    0.9.5 (v0.9.5 branch) +
    diff --git a/docs/0.9.5/Learn-Python-for-Evennia-The-Hard-Way.html b/docs/0.9.5/Learn-Python-for-Evennia-The-Hard-Way.html index 0db7ca29a6..6f611f8c21 100644 --- a/docs/0.9.5/Learn-Python-for-Evennia-The-Hard-Way.html +++ b/docs/0.9.5/Learn-Python-for-Evennia-The-Hard-Way.html @@ -151,6 +151,7 @@ commands when obtaining a weapon.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Licensing.html b/docs/0.9.5/Licensing.html index ce5fe86736..eb9cd9197f 100644 --- a/docs/0.9.5/Licensing.html +++ b/docs/0.9.5/Licensing.html @@ -108,6 +108,7 @@ as Evennia itself, unless the individual contributor has specifically defined ot
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Links.html b/docs/0.9.5/Links.html index 77b212925c..8fc5f5854a 100644 --- a/docs/0.9.5/Links.html +++ b/docs/0.9.5/Links.html @@ -288,6 +288,7 @@ programming curriculum for different skill levels

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Locks.html b/docs/0.9.5/Locks.html index 5f2d4e1944..8e22ac7ab7 100644 --- a/docs/0.9.5/Locks.html +++ b/docs/0.9.5/Locks.html @@ -639,6 +639,7 @@ interface. It’s stand-alone from the permissions described above.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Manually-Configuring-Color.html b/docs/0.9.5/Manually-Configuring-Color.html index 24624d8120..453748ca0e 100644 --- a/docs/0.9.5/Manually-Configuring-Color.html +++ b/docs/0.9.5/Manually-Configuring-Color.html @@ -310,6 +310,7 @@ regardless of if Evennia thinks their client supports it or not.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Mass-and-weight-for-objects.html b/docs/0.9.5/Mass-and-weight-for-objects.html index 2b3cdf252e..47b60faff3 100644 --- a/docs/0.9.5/Mass-and-weight-for-objects.html +++ b/docs/0.9.5/Mass-and-weight-for-objects.html @@ -218,6 +218,7 @@ default_cmdsets.py file:

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Messagepath.html b/docs/0.9.5/Messagepath.html index 1568fa109f..066f6af9ed 100644 --- a/docs/0.9.5/Messagepath.html +++ b/docs/0.9.5/Messagepath.html @@ -411,6 +411,7 @@ information needed between server and client.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/MonitorHandler.html b/docs/0.9.5/MonitorHandler.html index 8a78b216b0..195003bb72 100644 --- a/docs/0.9.5/MonitorHandler.html +++ b/docs/0.9.5/MonitorHandler.html @@ -186,6 +186,7 @@ the monitor to remove:

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/NPC-shop-Tutorial.html b/docs/0.9.5/NPC-shop-Tutorial.html index 3c8fbfdafc..b7a47b3098 100644 --- a/docs/0.9.5/NPC-shop-Tutorial.html +++ b/docs/0.9.5/NPC-shop-Tutorial.html @@ -570,6 +570,7 @@ it well stocked.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/New-Models.html b/docs/0.9.5/New-Models.html index 61845a5fa2..2b3e0706bf 100644 --- a/docs/0.9.5/New-Models.html +++ b/docs/0.9.5/New-Models.html @@ -376,6 +376,7 @@ lot more information about querying the database.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Nicks.html b/docs/0.9.5/Nicks.html index b75144b590..23c9b3c19e 100644 --- a/docs/0.9.5/Nicks.html +++ b/docs/0.9.5/Nicks.html @@ -225,6 +225,7 @@ basically the unchanged strings you enter to the 0.9.5 (v0.9.5 branch) +
    diff --git a/docs/0.9.5/OOB.html b/docs/0.9.5/OOB.html index 7b0ee834a7..7204d95d01 100644 --- a/docs/0.9.5/OOB.html +++ b/docs/0.9.5/OOB.html @@ -274,6 +274,7 @@ same example ("
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Objects.html b/docs/0.9.5/Objects.html index 09c78c554d..e19caa9c93 100644 --- a/docs/0.9.5/Objects.html +++ b/docs/0.9.5/Objects.html @@ -294,6 +294,7 @@ and display this as an error message. If this is not found, the Exit will instea
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Online-Setup.html b/docs/0.9.5/Online-Setup.html index b4be05979a..b624ba274f 100644 --- a/docs/0.9.5/Online-Setup.html +++ b/docs/0.9.5/Online-Setup.html @@ -655,6 +655,7 @@ https://aws.amazon.com/cloud9/

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Parsing-command-arguments,-theory-and-best-practices.html b/docs/0.9.5/Parsing-command-arguments,-theory-and-best-practices.html index 4e5a188693..785380c288 100644 --- a/docs/0.9.5/Parsing-command-arguments,-theory-and-best-practices.html +++ b/docs/0.9.5/Parsing-command-arguments,-theory-and-best-practices.html @@ -1082,6 +1082,7 @@ code.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Portal-And-Server.html b/docs/0.9.5/Portal-And-Server.html index 29f1b15555..393dea7b0b 100644 --- a/docs/0.9.5/Portal-And-Server.html +++ b/docs/0.9.5/Portal-And-Server.html @@ -97,6 +97,7 @@ This allows the two programs to communicate seamlessly.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Profiling.html b/docs/0.9.5/Profiling.html index ad9132a198..cb43f62212 100644 --- a/docs/0.9.5/Profiling.html +++ b/docs/0.9.5/Profiling.html @@ -217,6 +217,7 @@ course hard to actually mimic human user behavior. For this, actual real-game te
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Python-3.html b/docs/0.9.5/Python-3.html index 50af061571..c7b9be395d 100644 --- a/docs/0.9.5/Python-3.html +++ b/docs/0.9.5/Python-3.html @@ -176,6 +176,7 @@ ened&group=status&milestone=Python-3.x)

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Python-basic-introduction.html b/docs/0.9.5/Python-basic-introduction.html index a1449a6a02..3095c0dace 100644 --- a/docs/0.9.5/Python-basic-introduction.html +++ b/docs/0.9.5/Python-basic-introduction.html @@ -344,6 +344,7 @@ about objects and to explore the Evennia library.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Python-basic-tutorial-part-two.html b/docs/0.9.5/Python-basic-tutorial-part-two.html index 4bdb5e2e82..c314d3dcdc 100644 --- a/docs/0.9.5/Python-basic-tutorial-part-two.html +++ b/docs/0.9.5/Python-basic-tutorial-part-two.html @@ -616,6 +616,7 @@ of the beginning-level 0.9.5 (v0.9.5 branch) +
    diff --git a/docs/0.9.5/Quirks.html b/docs/0.9.5/Quirks.html index 834b3e0427..c105a00672 100644 --- a/docs/0.9.5/Quirks.html +++ b/docs/0.9.5/Quirks.html @@ -212,6 +212,7 @@ instructions, use the following command to fix it:

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/RSS.html b/docs/0.9.5/RSS.html index 304082b586..3a619464b3 100644 --- a/docs/0.9.5/RSS.html +++ b/docs/0.9.5/RSS.html @@ -142,6 +142,7 @@ same channels as 0.9.5 (v0.9.5 branch) +
    diff --git a/docs/0.9.5/Roadmap.html b/docs/0.9.5/Roadmap.html index 36b11887f3..52d0ca9206 100644 --- a/docs/0.9.5/Roadmap.html +++ b/docs/0.9.5/Roadmap.html @@ -75,6 +75,7 @@ Page.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Running-Evennia-in-Docker.html b/docs/0.9.5/Running-Evennia-in-Docker.html index 3c4a66efca..0dba9bcb5a 100644 --- a/docs/0.9.5/Running-Evennia-in-Docker.html +++ b/docs/0.9.5/Running-Evennia-in-Docker.html @@ -389,6 +389,7 @@ line.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Screenshot.html b/docs/0.9.5/Screenshot.html index b3cc216882..10bd4af83b 100644 --- a/docs/0.9.5/Screenshot.html +++ b/docs/0.9.5/Screenshot.html @@ -86,6 +86,7 @@ interface for editing the database online.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Scripts.html b/docs/0.9.5/Scripts.html index a1988b87d9..a7281afc5a 100644 --- a/docs/0.9.5/Scripts.html +++ b/docs/0.9.5/Scripts.html @@ -549,6 +549,7 @@ tutorial.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Security.html b/docs/0.9.5/Security.html index 81b9c0ac0c..3bd3336c4d 100644 --- a/docs/0.9.5/Security.html +++ b/docs/0.9.5/Security.html @@ -239,6 +239,7 @@ ISP snooping.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Server-Conf.html b/docs/0.9.5/Server-Conf.html index 1083e54120..725466549e 100644 --- a/docs/0.9.5/Server-Conf.html +++ b/docs/0.9.5/Server-Conf.html @@ -199,6 +199,7 @@ know about if you are an Evennia developer.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Sessions.html b/docs/0.9.5/Sessions.html index 71d6be3ce6..a8f0dd3cb5 100644 --- a/docs/0.9.5/Sessions.html +++ b/docs/0.9.5/Sessions.html @@ -279,6 +279,7 @@ module for details on the capabilities of the 0.9.5 (v0.9.5 branch) +
    diff --git a/docs/0.9.5/Setting-up-PyCharm.html b/docs/0.9.5/Setting-up-PyCharm.html index 4bb9e4fd55..ffe2a9220b 100644 --- a/docs/0.9.5/Setting-up-PyCharm.html +++ b/docs/0.9.5/Setting-up-PyCharm.html @@ -216,6 +216,7 @@ still running in interactive mode.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Signals.html b/docs/0.9.5/Signals.html index ce3204e445..1b47ce6789 100644 --- a/docs/0.9.5/Signals.html +++ b/docs/0.9.5/Signals.html @@ -212,6 +212,7 @@ decorator (only relevant for unit testing)

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Soft-Code.html b/docs/0.9.5/Soft-Code.html index f68dba4fe6..9b9c00623e 100644 --- a/docs/0.9.5/Soft-Code.html +++ b/docs/0.9.5/Soft-Code.html @@ -166,6 +166,7 @@ pseudo-softcode plugin aimed at developers wanting to script their game from ins
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Spawner-and-Prototypes.html b/docs/0.9.5/Spawner-and-Prototypes.html index 4b1655960a..6ddcab3d2a 100644 --- a/docs/0.9.5/Spawner-and-Prototypes.html +++ b/docs/0.9.5/Spawner-and-Prototypes.html @@ -438,6 +438,7 @@ the api docs.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Start-Stop-Reload.html b/docs/0.9.5/Start-Stop-Reload.html index ca59b9443d..6eecb58ad5 100644 --- a/docs/0.9.5/Start-Stop-Reload.html +++ b/docs/0.9.5/Start-Stop-Reload.html @@ -293,6 +293,7 @@ In-game you should now get the message that the Server has successfully restarte
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Static-In-Game-Map.html b/docs/0.9.5/Static-In-Game-Map.html index ddfceb2549..1c2dc12e9b 100644 --- a/docs/0.9.5/Static-In-Game-Map.html +++ b/docs/0.9.5/Static-In-Game-Map.html @@ -695,6 +695,7 @@ system
    .

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Tags.html b/docs/0.9.5/Tags.html index ba92b75323..4d691fe830 100644 --- a/docs/0.9.5/Tags.html +++ b/docs/0.9.5/Tags.html @@ -293,6 +293,7 @@ is found in the 0.9.5 (v0.9.5 branch) +
    diff --git a/docs/0.9.5/Text-Encodings.html b/docs/0.9.5/Text-Encodings.html index 4abf03893e..75291a0fe8 100644 --- a/docs/0.9.5/Text-Encodings.html +++ b/docs/0.9.5/Text-Encodings.html @@ -153,6 +153,7 @@ the Wikipedia article 0.9.5 (v0.9.5 branch) +
    diff --git a/docs/0.9.5/TextTags.html b/docs/0.9.5/TextTags.html index b14ead6f57..3cbd29fad8 100644 --- a/docs/0.9.5/TextTags.html +++ b/docs/0.9.5/TextTags.html @@ -466,6 +466,7 @@ value will be a float (so 0.9.5 (v0.9.5 branch) +
    diff --git a/docs/0.9.5/TickerHandler.html b/docs/0.9.5/TickerHandler.html index 360f696c5f..aaed420af5 100644 --- a/docs/0.9.5/TickerHandler.html +++ b/docs/0.9.5/TickerHandler.html @@ -219,6 +219,7 @@ same time without input from something else.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Turn-based-Combat-System.html b/docs/0.9.5/Turn-based-Combat-System.html index 1317b45370..8512de1fc2 100644 --- a/docs/0.9.5/Turn-based-Combat-System.html +++ b/docs/0.9.5/Turn-based-Combat-System.html @@ -925,6 +925,7 @@ show others what’s going on.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Tutorial-Aggressive-NPCs.html b/docs/0.9.5/Tutorial-Aggressive-NPCs.html index d5ecc46e64..9c4509af1f 100644 --- a/docs/0.9.5/Tutorial-Aggressive-NPCs.html +++ b/docs/0.9.5/Tutorial-Aggressive-NPCs.html @@ -231,6 +231,7 @@ AI code).

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Tutorial-NPCs-listening.html b/docs/0.9.5/Tutorial-NPCs-listening.html index aaed74e74c..c2bcdac9ce 100644 --- a/docs/0.9.5/Tutorial-NPCs-listening.html +++ b/docs/0.9.5/Tutorial-NPCs-listening.html @@ -241,6 +241,7 @@ Which way to go depends on the design requirements of your particular game.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Tutorial-Searching-For-Objects.html b/docs/0.9.5/Tutorial-Searching-For-Objects.html index 77ee8067ad..c5a50fa599 100644 --- a/docs/0.9.5/Tutorial-Searching-For-Objects.html +++ b/docs/0.9.5/Tutorial-Searching-For-Objects.html @@ -572,6 +572,7 @@ in a format like the following:

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Tutorial-Tweeting-Game-Stats.html b/docs/0.9.5/Tutorial-Tweeting-Game-Stats.html index e9eaeaa419..ceab90f1f3 100644 --- a/docs/0.9.5/Tutorial-Tweeting-Game-Stats.html +++ b/docs/0.9.5/Tutorial-Tweeting-Game-Stats.html @@ -244,6 +244,7 @@ as mygame/typeclass
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Tutorial-Vehicles.html b/docs/0.9.5/Tutorial-Vehicles.html index 4c414daa04..bc579a96ee 100644 --- a/docs/0.9.5/Tutorial-Vehicles.html +++ b/docs/0.9.5/Tutorial-Vehicles.html @@ -641,6 +641,7 @@ direction to which room it goes.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Tutorial-World-Introduction.html b/docs/0.9.5/Tutorial-World-Introduction.html index ef8d681dd4..3fd938beb5 100644 --- a/docs/0.9.5/Tutorial-World-Introduction.html +++ b/docs/0.9.5/Tutorial-World-Introduction.html @@ -204,6 +204,7 @@ itself.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Tutorial-for-basic-MUSH-like-game.html b/docs/0.9.5/Tutorial-for-basic-MUSH-like-game.html index e42ccde366..bc9eb87b5c 100644 --- a/docs/0.9.5/Tutorial-for-basic-MUSH-like-game.html +++ b/docs/0.9.5/Tutorial-for-basic-MUSH-like-game.html @@ -978,6 +978,7 @@ as the 0.9.5 (v0.9.5 branch) +
    diff --git a/docs/0.9.5/Tutorials.html b/docs/0.9.5/Tutorials.html index def0f1789c..7b0f79e872 100644 --- a/docs/0.9.5/Tutorials.html +++ b/docs/0.9.5/Tutorials.html @@ -262,6 +262,7 @@ to MUSH-style servers.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Typeclasses.html b/docs/0.9.5/Typeclasses.html index e4dc74d813..67ceb53520 100644 --- a/docs/0.9.5/Typeclasses.html +++ b/docs/0.9.5/Typeclasses.html @@ -444,6 +444,7 @@ comments for examples and solutions.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Understanding-Color-Tags.html b/docs/0.9.5/Understanding-Color-Tags.html index a08999a348..24020f0d7c 100644 --- a/docs/0.9.5/Understanding-Color-Tags.html +++ b/docs/0.9.5/Understanding-Color-Tags.html @@ -255,6 +255,7 @@ push it over the limit, so to speak.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Unit-Testing.html b/docs/0.9.5/Unit-Testing.html index d83b8ffe06..28ed152d4f 100644 --- a/docs/0.9.5/Unit-Testing.html +++ b/docs/0.9.5/Unit-Testing.html @@ -632,6 +632,7 @@ string.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Updating-Your-Game.html b/docs/0.9.5/Updating-Your-Game.html index 64343df49d..87a35d8505 100644 --- a/docs/0.9.5/Updating-Your-Game.html +++ b/docs/0.9.5/Updating-Your-Game.html @@ -224,6 +224,7 @@ you then just run e
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Using-MUX-as-a-Standard.html b/docs/0.9.5/Using-MUX-as-a-Standard.html index a23d64b10a..9dca79e6b5 100644 --- a/docs/0.9.5/Using-MUX-as-a-Standard.html +++ b/docs/0.9.5/Using-MUX-as-a-Standard.html @@ -208,6 +208,7 @@ something to the effect of

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Using-Travis.html b/docs/0.9.5/Using-Travis.html index 642d53290a..c6bbd3b38e 100644 --- a/docs/0.9.5/Using-Travis.html +++ b/docs/0.9.5/Using-Travis.html @@ -133,6 +133,7 @@ to that for making tests fitting your game.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Version-Control.html b/docs/0.9.5/Version-Control.html index 781bd816b0..ea828b13bf 100644 --- a/docs/0.9.5/Version-Control.html +++ b/docs/0.9.5/Version-Control.html @@ -547,6 +547,7 @@ understand the underlying ideas behind GIT
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Weather-Tutorial.html b/docs/0.9.5/Weather-Tutorial.html index cace73ced1..1850a418b3 100644 --- a/docs/0.9.5/Weather-Tutorial.html +++ b/docs/0.9.5/Weather-Tutorial.html @@ -152,6 +152,7 @@ weather came before it. Expanding it to be more realistic is a useful exercise.<
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Web-Character-Generation.html b/docs/0.9.5/Web-Character-Generation.html index 8efbb6d052..af25ad048e 100644 --- a/docs/0.9.5/Web-Character-Generation.html +++ b/docs/0.9.5/Web-Character-Generation.html @@ -986,6 +986,7 @@ to see what happens. And do the same while checking the checkbox!

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Web-Character-View-Tutorial.html b/docs/0.9.5/Web-Character-View-Tutorial.html index a831ee7507..bf23815d74 100644 --- a/docs/0.9.5/Web-Character-View-Tutorial.html +++ b/docs/0.9.5/Web-Character-View-Tutorial.html @@ -369,6 +369,7 @@ here.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Web-Features.html b/docs/0.9.5/Web-Features.html index 94cfe1536a..ebd9611988 100644 --- a/docs/0.9.5/Web-Features.html +++ b/docs/0.9.5/Web-Features.html @@ -233,6 +233,7 @@ implementation, the relevant django “applications” in default Evennia are 0.9.5 (v0.9.5 branch) +
    diff --git a/docs/0.9.5/Web-Tutorial.html b/docs/0.9.5/Web-Tutorial.html index 66c17b98ad..6314ef31c0 100644 --- a/docs/0.9.5/Web-Tutorial.html +++ b/docs/0.9.5/Web-Tutorial.html @@ -205,6 +205,7 @@ possibilities exist.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Webclient-brainstorm.html b/docs/0.9.5/Webclient-brainstorm.html index d6565d49d7..cb7b77158f 100644 --- a/docs/0.9.5/Webclient-brainstorm.html +++ b/docs/0.9.5/Webclient-brainstorm.html @@ -426,6 +426,7 @@ could stay in this mode, but they could also “lock” the gui layout at any ti
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Webclient.html b/docs/0.9.5/Webclient.html index 6fc676b93e..9f59f633d8 100644 --- a/docs/0.9.5/Webclient.html +++ b/docs/0.9.5/Webclient.html @@ -365,6 +365,7 @@ clear your browser cache before loading the webclient page.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Wiki-Index.html b/docs/0.9.5/Wiki-Index.html index 086489210f..d63888acbb 100644 --- a/docs/0.9.5/Wiki-Index.html +++ b/docs/0.9.5/Wiki-Index.html @@ -288,6 +288,7 @@ character-info

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/Zones.html b/docs/0.9.5/Zones.html index 053f864c8d..013f56d5c1 100644 --- a/docs/0.9.5/Zones.html +++ b/docs/0.9.5/Zones.html @@ -143,6 +143,7 @@ properly search the inheritance tree.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/django/conf.html b/docs/0.9.5/_modules/django/conf.html index 0e97cc768a..fd4c1db87c 100644 --- a/docs/0.9.5/_modules/django/conf.html +++ b/docs/0.9.5/_modules/django/conf.html @@ -320,6 +320,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/django/db/models/fields/related_descriptors.html b/docs/0.9.5/_modules/django/db/models/fields/related_descriptors.html index ee9361f294..ccbc1a14fc 100644 --- a/docs/0.9.5/_modules/django/db/models/fields/related_descriptors.html +++ b/docs/0.9.5/_modules/django/db/models/fields/related_descriptors.html @@ -1202,6 +1202,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/django/db/models/manager.html b/docs/0.9.5/_modules/django/db/models/manager.html index 9c96bce2d0..0297812e92 100644 --- a/docs/0.9.5/_modules/django/db/models/manager.html +++ b/docs/0.9.5/_modules/django/db/models/manager.html @@ -266,6 +266,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/django/db/models/query_utils.html b/docs/0.9.5/_modules/django/db/models/query_utils.html index 1366e335d0..c207c03c9d 100644 --- a/docs/0.9.5/_modules/django/db/models/query_utils.html +++ b/docs/0.9.5/_modules/django/db/models/query_utils.html @@ -401,6 +401,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/django/utils/functional.html b/docs/0.9.5/_modules/django/utils/functional.html index 4fc32eba9e..5fa777fb41 100644 --- a/docs/0.9.5/_modules/django/utils/functional.html +++ b/docs/0.9.5/_modules/django/utils/functional.html @@ -498,6 +498,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia.html b/docs/0.9.5/_modules/evennia.html index dffb0ec2a8..c92c52ef48 100644 --- a/docs/0.9.5/_modules/evennia.html +++ b/docs/0.9.5/_modules/evennia.html @@ -532,6 +532,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/accounts/accounts.html b/docs/0.9.5/_modules/evennia/accounts/accounts.html index c281c0a936..49986dd7ff 100644 --- a/docs/0.9.5/_modules/evennia/accounts/accounts.html +++ b/docs/0.9.5/_modules/evennia/accounts/accounts.html @@ -73,7 +73,7 @@ SIGNAL_OBJECT_POST_PUPPET, SIGNAL_OBJECT_POST_UNPUPPET, ) -from evennia.typeclasses.attributes import NickHandler, ModelAttributeBackend +from evennia.typeclasses.attributes import NickHandler from evennia.scripts.scripthandler import ScriptHandler from evennia.commands.cmdsethandler import CmdSetHandler from evennia.utils.optionhandler import OptionHandler @@ -81,7 +81,7 @@ from django.utils.translation import gettext as _ from random import getrandbits -__all__ = ("DefaultAccount", "DefaultGuest") +__all__ = ("DefaultAccount",) _SESSIONS = None @@ -93,10 +93,10 @@ # Create throttles for too many account-creations and login attempts CREATION_THROTTLE = Throttle( - name='creation', limit=settings.CREATION_THROTTLE_LIMIT, timeout=settings.CREATION_THROTTLE_TIMEOUT + limit=settings.CREATION_THROTTLE_LIMIT, timeout=settings.CREATION_THROTTLE_TIMEOUT ) LOGIN_THROTTLE = Throttle( - name='login', limit=settings.LOGIN_THROTTLE_LIMIT, timeout=settings.LOGIN_THROTTLE_TIMEOUT + limit=settings.LOGIN_THROTTLE_LIMIT, timeout=settings.LOGIN_THROTTLE_TIMEOUT ) @@ -225,7 +225,7 @@ - at_server_reload() - at_server_shutdown() - """ + """ objects = AccountManager() @@ -240,7 +240,7 @@
    [docs] @lazy_property def nicks(self): - return NickHandler(self, ModelAttributeBackend)
    + return NickHandler(self)
    [docs] @lazy_property def sessions(self): @@ -721,6 +721,9 @@ ) Character = class_from_module(character_typeclass) + if "location" not in kwargs: + kwargs["location"] = ObjectDB.objects.get_id(settings.START_LOCATION) + # Create the character character, errs = Character.create( character_key, @@ -1588,21 +1591,21 @@ return look_string
    -
    [docs]class DefaultGuest(DefaultAccount): +class DefaultGuest(DefaultAccount): """ This class is used for guest logins. Unlike Accounts, Guests and their characters are deleted after disconnection. """ -
    [docs] @classmethod + @classmethod def create(cls, **kwargs): """ Forwards request to cls.authenticate(); returns a DefaultGuest object if one is available for use. """ - return cls.authenticate(**kwargs)
    + return cls.authenticate(**kwargs) -
    [docs] @classmethod + @classmethod def authenticate(cls, **kwargs): """ Gets or creates a Guest account object. @@ -1674,9 +1677,9 @@ logger.log_trace() return None, errors - return account, errors
    + return account, errors -
    [docs] def at_post_login(self, session=None, **kwargs): + def at_post_login(self, session=None, **kwargs): """ In theory, guests only have one character regardless of which MULTISESSION_MODE we're in. They don't get a choice. @@ -1688,9 +1691,9 @@ """ self._send_to_connect_channel(_("|G{key} connected|n").format(key=self.key)) - self.puppet_object(session, self.db._last_puppet)
    + self.puppet_object(session, self.db._last_puppet) -
    [docs] def at_server_shutdown(self): + def at_server_shutdown(self): """ We repeat the functionality of `at_disconnect()` here just to be on the safe side. @@ -1699,9 +1702,9 @@ characters = self.db._playable_characters for character in characters: if character: - character.delete()
    + character.delete() -
    [docs] def at_post_disconnect(self, **kwargs): + def at_post_disconnect(self, **kwargs): """ Once having disconnected, destroy the guest's characters and @@ -1715,7 +1718,7 @@ for character in characters: if character: character.delete() - self.delete()
    + self.delete()
    @@ -1743,6 +1746,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/accounts/admin.html b/docs/0.9.5/_modules/evennia/accounts/admin.html index 1c140c4611..cd53223cc8 100644 --- a/docs/0.9.5/_modules/evennia/accounts/admin.html +++ b/docs/0.9.5/_modules/evennia/accounts/admin.html @@ -431,6 +431,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/accounts/bots.html b/docs/0.9.5/_modules/evennia/accounts/bots.html index d2aec4f67c..f53972160f 100644 --- a/docs/0.9.5/_modules/evennia/accounts/bots.html +++ b/docs/0.9.5/_modules/evennia/accounts/bots.html @@ -645,6 +645,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/accounts/manager.html b/docs/0.9.5/_modules/evennia/accounts/manager.html index e22154ce73..99e3d58cd0 100644 --- a/docs/0.9.5/_modules/evennia/accounts/manager.html +++ b/docs/0.9.5/_modules/evennia/accounts/manager.html @@ -255,6 +255,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/accounts/models.html b/docs/0.9.5/_modules/evennia/accounts/models.html index 7c76c14f79..3c1a6803a5 100644 --- a/docs/0.9.5/_modules/evennia/accounts/models.html +++ b/docs/0.9.5/_modules/evennia/accounts/models.html @@ -247,6 +247,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/commands/cmdhandler.html b/docs/0.9.5/_modules/evennia/commands/cmdhandler.html index 81743e249b..851fb15035 100644 --- a/docs/0.9.5/_modules/evennia/commands/cmdhandler.html +++ b/docs/0.9.5/_modules/evennia/commands/cmdhandler.html @@ -893,6 +893,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/commands/cmdparser.html b/docs/0.9.5/_modules/evennia/commands/cmdparser.html index 9dea37b23f..8c5bccc349 100644 --- a/docs/0.9.5/_modules/evennia/commands/cmdparser.html +++ b/docs/0.9.5/_modules/evennia/commands/cmdparser.html @@ -289,6 +289,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/commands/cmdset.html b/docs/0.9.5/_modules/evennia/commands/cmdset.html index c15a9369c4..fb8e82d770 100644 --- a/docs/0.9.5/_modules/evennia/commands/cmdset.html +++ b/docs/0.9.5/_modules/evennia/commands/cmdset.html @@ -399,14 +399,18 @@ """ perm = "perm" if self.permanent else "non-perm" - options = ", ".join([ - "{}:{}".format(opt, "T" if getattr(self, opt) else "F") - for opt in ("no_exits", "no_objs", "no_channels", "duplicates") - if getattr(self, opt) is not None - ]) + options = ", ".join( + [ + "{}:{}".format(opt, "T" if getattr(self, opt) else "F") + for opt in ("no_exits", "no_objs", "no_channels", "duplicates") + if getattr(self, opt) is not None + ] + ) options = (", " + options) if options else "" - return f"<CmdSet {self.key}, {self.mergetype}, {perm}, prio {self.priority}{options}>: " + ", ".join( - [str(cmd) for cmd in sorted(self.commands, key=lambda o: o.key)]) + return ( + f"<CmdSet {self.key}, {self.mergetype}, {perm}, prio {self.priority}{options}>: " + + ", ".join([str(cmd) for cmd in sorted(self.commands, key=lambda o: o.key)]) + ) def __iter__(self): """ @@ -740,6 +744,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/commands/cmdsethandler.html b/docs/0.9.5/_modules/evennia/commands/cmdsethandler.html index 0bbf73953f..318692b2b8 100644 --- a/docs/0.9.5/_modules/evennia/commands/cmdsethandler.html +++ b/docs/0.9.5/_modules/evennia/commands/cmdsethandler.html @@ -372,7 +372,7 @@ if mergelist: # current is a result of mergers - mergelist="+".join(mergelist) + mergelist = "+".join(mergelist) strings.append(f" <Merged {mergelist}>: {self.current}") else: # current is a single cmdset @@ -720,6 +720,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/commands/command.html b/docs/0.9.5/_modules/evennia/commands/command.html index 8808bd578c..0fe45ff6cb 100644 --- a/docs/0.9.5/_modules/evennia/commands/command.html +++ b/docs/0.9.5/_modules/evennia/commands/command.html @@ -125,15 +125,6 @@ break cls.help_category = cls.help_category.lower() - # pre-prepare a help index entry for quicker lookup - cls.search_index_entry = { - "key": cls.key, - "aliases": " ".join(cls.aliases), - "category": cls.help_category, - "text": cls.__doc__, - "tags": "", - } -
    [docs]class CommandMeta(type): """ @@ -560,6 +551,20 @@ )[0] return settings.CLIENT_DEFAULT_WIDTH
    +
    [docs] def client_height(self): + """ + Get the client screenheight for the session using this command. + + Returns: + client height (int): The height (in characters) of the client window. + + """ + if self.session: + return self.session.protocol_flags.get( + "SCREENHEIGHT", {0: settings.CLIENT_DEFAULT_HEIGHT} + )[0] + return settings.CLIENT_DEFAULT_HEIGHT
    +
    [docs] def styled_table(self, *args, **kwargs): """ Create an EvTable styled by on user preferences. @@ -741,6 +746,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/commands/default/account.html b/docs/0.9.5/_modules/evennia/commands/default/account.html index 03a3904fc5..86be78b350 100644 --- a/docs/0.9.5/_modules/evennia/commands/default/account.html +++ b/docs/0.9.5/_modules/evennia/commands/default/account.html @@ -1120,6 +1120,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/commands/default/admin.html b/docs/0.9.5/_modules/evennia/commands/default/admin.html index 22e91d046c..b7ef580b12 100644 --- a/docs/0.9.5/_modules/evennia/commands/default/admin.html +++ b/docs/0.9.5/_modules/evennia/commands/default/admin.html @@ -661,6 +661,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/commands/default/batchprocess.html b/docs/0.9.5/_modules/evennia/commands/default/batchprocess.html index 72a06c0a6e..4ec691320a 100644 --- a/docs/0.9.5/_modules/evennia/commands/default/batchprocess.html +++ b/docs/0.9.5/_modules/evennia/commands/default/batchprocess.html @@ -887,6 +887,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/commands/default/building.html b/docs/0.9.5/_modules/evennia/commands/default/building.html index d9e132ed2b..ffe093eff8 100644 --- a/docs/0.9.5/_modules/evennia/commands/default/building.html +++ b/docs/0.9.5/_modules/evennia/commands/default/building.html @@ -2557,12 +2557,14 @@ def _format_options(cmdset): """helper for cmdset-option display""" + def _truefalse(string, value): if value is None: return "" if value: return f"{string}: T" return f"{string}: F" + options = ", ".join( _truefalse(opt, getattr(cmdset, opt)) for opt in ("no_exits", "no_objs", "no_channels", "duplicates") @@ -2579,7 +2581,8 @@ continue options = _format_options(cmdset) stored.append( - f"{cmdset.path} [{cmdset.key}] ({cmdset.mergetype}, prio {cmdset.priority}{options})") + f"{cmdset.path} [{cmdset.key}] ({cmdset.mergetype}, prio {cmdset.priority}{options})" + ) output["Stored Cmdset(s)"] = "\n " + "\n ".join(stored) # this gets all components of the currently merged set @@ -2617,13 +2620,15 @@ # the resulting merged cmdset options = _format_options(current_cmdset) merged = [ - f"<Current merged cmdset> ({current_cmdset.mergetype} prio {current_cmdset.priority}{options})"] + f"<Current merged cmdset> ({current_cmdset.mergetype} prio {current_cmdset.priority}{options})" + ] # the merge stack for cmdset in all_cmdsets: options = _format_options(cmdset) merged.append( - f"{cmdset.path} [{cmdset.key}] ({cmdset.mergetype} prio {cmdset.priority}{options})") + f"{cmdset.path} [{cmdset.key}] ({cmdset.mergetype} prio {cmdset.priority}{options})" + ) output["Merged Cmdset(s)"] = "\n " + "\n ".join(merged) # list the commands available to this object @@ -3884,6 +3889,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/commands/default/cmdset_account.html b/docs/0.9.5/_modules/evennia/commands/default/cmdset_account.html index d930757d48..509ad7bcef 100644 --- a/docs/0.9.5/_modules/evennia/commands/default/cmdset_account.html +++ b/docs/0.9.5/_modules/evennia/commands/default/cmdset_account.html @@ -143,6 +143,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/commands/default/cmdset_character.html b/docs/0.9.5/_modules/evennia/commands/default/cmdset_character.html index 1bcb95195e..9b147e4422 100644 --- a/docs/0.9.5/_modules/evennia/commands/default/cmdset_character.html +++ b/docs/0.9.5/_modules/evennia/commands/default/cmdset_character.html @@ -158,6 +158,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/commands/default/cmdset_session.html b/docs/0.9.5/_modules/evennia/commands/default/cmdset_session.html index 4f142ba409..07941561e3 100644 --- a/docs/0.9.5/_modules/evennia/commands/default/cmdset_session.html +++ b/docs/0.9.5/_modules/evennia/commands/default/cmdset_session.html @@ -84,6 +84,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/commands/default/cmdset_unloggedin.html b/docs/0.9.5/_modules/evennia/commands/default/cmdset_unloggedin.html index 5daac68589..02428c1f67 100644 --- a/docs/0.9.5/_modules/evennia/commands/default/cmdset_unloggedin.html +++ b/docs/0.9.5/_modules/evennia/commands/default/cmdset_unloggedin.html @@ -93,6 +93,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/commands/default/comms.html b/docs/0.9.5/_modules/evennia/commands/default/comms.html index 3f2f46c7fb..cfa1b526d8 100644 --- a/docs/0.9.5/_modules/evennia/commands/default/comms.html +++ b/docs/0.9.5/_modules/evennia/commands/default/comms.html @@ -874,7 +874,7 @@ receiver = f"|n,{clr}".join([obj.name for obj in page.receivers]) if sending: template = to_template - sender = f"{sender} " if multi_send else "" + sender = f"{sender} " if multi_send else "" receiver = f" {receiver}" if multi_recv else f" {receiver}" else: template = from_template @@ -889,7 +889,6 @@ receiver=receiver, message=page.message, ) - ) lastpages = "\n ".join(listing) @@ -1423,6 +1422,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/commands/default/general.html b/docs/0.9.5/_modules/evennia/commands/default/general.html index 709fadace9..7897045eb9 100644 --- a/docs/0.9.5/_modules/evennia/commands/default/general.html +++ b/docs/0.9.5/_modules/evennia/commands/default/general.html @@ -420,10 +420,13 @@ string = "You are not carrying anything." else: from evennia.utils.ansi import raw as raw_ansi + table = self.styled_table(border="header") for item in items: - table.add_row(f"|C{item.name}|n", - "{}|n".format(utils.crop(raw_ansi(item.db.desc), width=50) or "")) + table.add_row( + f"|C{item.name}|n", + "{}|n".format(utils.crop(raw_ansi(item.db.desc), width=50) or ""), + ) string = f"|wYou are carrying:\n{table}" self.caller.msg(string) @@ -794,6 +797,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/commands/default/help.html b/docs/0.9.5/_modules/evennia/commands/default/help.html index c446fbde14..6f37dde654 100644 --- a/docs/0.9.5/_modules/evennia/commands/default/help.html +++ b/docs/0.9.5/_modules/evennia/commands/default/help.html @@ -53,14 +53,8 @@ from evennia.commands.command import Command from evennia.help.models import HelpEntry from evennia.utils import create, evmore -from evennia.utils.ansi import ANSIString from evennia.utils.eveditor import EvEditor -from evennia.utils.utils import ( - string_suggestions, - class_from_module, - inherits_from, - format_grid, -) +from evennia.utils.utils import string_suggestions, class_from_module COMMAND_DEFAULT_CLASS = class_from_module(settings.COMMAND_DEFAULT_CLASS) HELP_MORE = settings.HELP_MORE @@ -71,73 +65,8 @@ _DEFAULT_WIDTH = settings.CLIENT_DEFAULT_WIDTH _SEP = "|C" + "-" * _DEFAULT_WIDTH + "|n" -_LUNR = None -_LUNR_EXCEPTION = None - -class HelpCategory: - def __init__(self, key): - self.key = key - - @property - def search_index_entry(self): - return { - "key": str(self), - "aliases": "", - "category": self.key, - "tags": "", - "text": "", - } - - def __str__(self): - return f"Category: {self.key}" - - def __eq__(self, other): - return str(self).lower() == str(other).lower() - - def __hash__(self): - return id(self) - - -def help_search_with_index(query, candidate_entries, suggestion_maxnum=5): - """ - Lunr-powered fast index search and suggestion wrapper - """ - global _LUNR, _LUNR_EXCEPTION - if not _LUNR: - # we have to delay-load lunr because it messes with logging if it's imported - # before twisted's logging has been set up - from lunr import lunr as _LUNR - from lunr.exceptions import QueryParseError as _LUNR_EXCEPTION - - indx = [cnd.search_index_entry for cnd in candidate_entries] - mapping = {indx[ix]["key"]: cand for ix, cand in enumerate(candidate_entries)} - - search_index = _LUNR( - ref="key", - fields=[ - {"field_name": "key", "boost": 10}, - {"field_name": "aliases", "boost": 9}, - {"field_name": "category", "boost": 8}, - {"field_name": "tags", "boost": 5}, - {"field_name": "text", "boost": 1}, - ], - documents=indx, - ) - try: - matches = search_index.search(query)[:suggestion_maxnum] - except _LUNR_EXCEPTION: - # this is a user-input problem - matches = [] - - # matches (objs), suggestions (strs) - return ( - [mapping[match["ref"]] for match in matches], - [str(match["ref"]) for match in matches], # + f" (score {match['score']})") # good debug - ) - - -
    [docs]class CmdHelp(Command): +
    [docs]class CmdHelp(COMMAND_DEFAULT_CLASS): """ View help or a list of topics @@ -179,7 +108,7 @@ if type(self).help_more: usemore = True - if self.session and self.session.protocol_key in ("websocket", "ajax/comet",): + if self.session and self.session.protocol_key in ("websocket", "ajax/comet"): try: options = self.account.db._saved_webclient_options if options and options["helppopup"]: @@ -209,49 +138,44 @@ Returns the formatted string, ready to be sent. """ - start = f"{_SEP}\n" - title = f"|CHelp for |w{title}|n" if title else "" - aliases = ( - " |C(aliases: {}|C)|n".format("|C,|n ".join(f"|w{ali}|n" for ali in aliases)) - if aliases else "") - help_text = ( - f"\n{dedent(help_text.rstrip())}"if help_text else "") - suggested = ( - "\n\n|CSuggested:|n {}".format( - fill("|C,|n ".join(f"|w{sug}|n" for sug in suggested))) - if suggested else "") - end = f"\n{_SEP}" + string = _SEP + "\n" + if title: + string += "|CHelp for |w%s|n" % title + if aliases: + string += " |C(aliases: %s|C)|n" % ("|C,|n ".join("|w%s|n" % ali for ali in aliases)) + if help_text: + string += "\n%s" % dedent(help_text.rstrip()) + if suggested: + string += "\n\n|CSuggested:|n " + string += "%s" % fill("|C,|n ".join("|w%s|n" % sug for sug in suggested)) + string.strip() + string += "\n" + _SEP + return string
    - return "".join((start, title, aliases, help_text, suggested, end))
    - -
    [docs] def format_help_list(self, hdict_cmds, hdict_db): +
    [docs] @staticmethod + def format_help_list(hdict_cmds, hdict_db): """ Output a category-ordered list. The input are the pre-loaded help files for commands and database-helpfiles respectively. You can override this method to return a custom display of the list of commands and topics. """ - category_clr = "|w" - topic_clr = "|G" - width = self.client_width() - grid = [] - verbatim_elements = [] - for category in sorted(set(list(hdict_cmds.keys()) + list(hdict_db.keys()))): - - category_str = f"-- {category.title()} " - grid.append( - ANSIString( - category_clr + category_str + "-" * (width - len(category_str)) + topic_clr + string = "" + if hdict_cmds and any(hdict_cmds.values()): + string += "\n" + _SEP + "\n |CCommand help entries|n\n" + _SEP + for category in sorted(hdict_cmds.keys()): + string += "\n |w%s|n:\n" % (str(category).title()) + string += "|G" + fill("|C, |G".join(sorted(hdict_cmds[category]))) + "|n" + if hdict_db and any(hdict_db.values()): + string += "\n\n" + _SEP + "\n\r |COther help entries|n\n" + _SEP + for category in sorted(hdict_db.keys()): + string += "\n\r |w%s|n:\n" % (str(category).title()) + string += ( + "|G" + + fill(", ".join(sorted([str(topic) for topic in hdict_db[category]]))) + + "|n" ) - ) - verbatim_elements.append(len(grid) - 1) - - entries = sorted(set(hdict_cmds.get(category, []) + hdict_db.get(category, []))) - grid.extend(entries) - - gridrows = format_grid(grid, width, sep=" ", verbatim_elements=verbatim_elements) - gridrows = ANSIString("\n").join(gridrows) - return gridrows
    + return string
    [docs] def check_show_help(self, cmd, caller): """ @@ -292,7 +216,7 @@ False: the command shouldn't appear in the table. """ - return True
    + return cmd.access(caller, "view", default=True)
    [docs] def parse(self): """ @@ -325,8 +249,8 @@ ] all_categories = list( set( - [HelpCategory(cmd.help_category) for cmd in all_cmds] - + [HelpCategory(topic.help_category) for topic in all_topics] + [cmd.help_category.lower() for cmd in all_cmds] + + [topic.help_category.lower() for topic in all_topics] ) ) @@ -339,59 +263,92 @@ # system, but not be displayed in the table, or be displayed differently. for cmd in all_cmds: if self.should_list_cmd(cmd, caller): - key = (cmd.auto_help_display_key - if hasattr(cmd, "auto_help_display_key") else cmd.key) + key = ( + cmd.auto_help_display_key + if hasattr(cmd, "auto_help_display_key") + else cmd.key + ) hdict_cmd[cmd.help_category].append(key) [hdict_topic[topic.help_category].append(topic.key) for topic in all_topics] # report back self.msg_help(self.format_help_list(hdict_cmd, hdict_topic)) return - # Try to access a particular help entry or category - entries = [cmd for cmd in all_cmds if cmd] + list(HelpEntry.objects.all()) + all_categories + # Try to access a particular command - for match_query in [f"{query}~1", f"{query}*"]: - # We first do an exact word-match followed by a start-by query - matches, suggestions = help_search_with_index( - match_query, entries, suggestion_maxnum=self.suggestion_maxnum + # build vocabulary of suggestions and rate them by string similarity. + suggestions = None + if suggestion_maxnum > 0: + vocabulary = ( + [cmd.key for cmd in all_cmds if cmd] + + [topic.key for topic in all_topics] + + all_categories ) + [vocabulary.extend(cmd.aliases) for cmd in all_cmds] + suggestions = [ + sugg + for sugg in string_suggestions( + query, set(vocabulary), cutoff=suggestion_cutoff, maxnum=suggestion_maxnum + ) + if sugg != query + ] + if not suggestions: + suggestions = [ + sugg for sugg in vocabulary if sugg != query and sugg.startswith(query) + ] - if matches: - match = matches[0] - if isinstance(match, HelpCategory): - formatted = self.format_help_list( - { - match.key: [ - cmd.key - for cmd in all_cmds - if match.key.lower() == cmd.help_category - ] - }, - { - match.key: [ - topic.key - for topic in all_topics - if match.key.lower() == topic.help_category - ] - }, - ) - elif inherits_from(match, "evennia.commands.command.Command"): - formatted = self.format_help_entry( - match.key, - match.get_help(caller, cmdset), - aliases=match.aliases, - suggested=suggestions[1:], - ) - else: - formatted = self.format_help_entry( - match.key, - match.entrytext, - aliases=match.aliases.all(), - suggested=suggestions[1:], - ) + # try an exact command auto-help match + match = [cmd for cmd in all_cmds if cmd == query] - self.msg_help(formatted) - return + if not match: + # try an inexact match with prefixes stripped from query and cmds + _query = query[1:] if query[0] in CMD_IGNORE_PREFIXES else query + + match = [ + cmd + for cmd in all_cmds + for m in cmd._matchset + if m == _query or m[0] in CMD_IGNORE_PREFIXES and m[1:] == _query + ] + + if len(match) == 1: + cmd = match[0] + key = cmd.auto_help_display_key if hasattr(cmd, "auto_help_display_key") else cmd.key + formatted = self.format_help_entry( + key, cmd.get_help(caller, cmdset), aliases=cmd.aliases, suggested=suggestions, + ) + self.msg_help(formatted) + return + + # try an exact database help entry match + match = list(HelpEntry.objects.find_topicmatch(query, exact=True)) + if len(match) == 1: + formatted = self.format_help_entry( + match[0].key, + match[0].entrytext, + aliases=match[0].aliases.all(), + suggested=suggestions, + ) + self.msg_help(formatted) + return + + # try to see if a category name was entered + if query in all_categories: + self.msg_help( + self.format_help_list( + { + query: [ + cmd.auto_help_display_key + if hasattr(cmd, "auto_help_display_key") + else cmd.key + for cmd in all_cmds + if cmd.help_category == query + ] + }, + {query: [topic.key for topic in all_topics if topic.help_category == query]}, + ) + ) + return # no exact matches found. Just give suggestions. self.msg( @@ -472,10 +429,7 @@ self.msg("You have to define a topic!") return topicstrlist = topicstr.split(";") - topicstr, aliases = ( - topicstrlist[0], - topicstrlist[1:] if len(topicstr) > 1 else [], - ) + topicstr, aliases = (topicstrlist[0], topicstrlist[1:] if len(topicstr) > 1 else []) aliastxt = ("(aliases: %s)" % ", ".join(aliases)) if aliases else "" old_entry = None @@ -504,7 +458,7 @@ helpentry = old_entry else: helpentry = create.create_help_entry( - topicstr, self.rhs, category=category, locks=lockstring, aliases=aliases, + topicstr, self.rhs, category=category, locks=lockstring, aliases=aliases ) self.caller.db._editing_help = helpentry @@ -612,6 +566,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/commands/default/muxcommand.html b/docs/0.9.5/_modules/evennia/commands/default/muxcommand.html index 4fd360f40d..59386d81ef 100644 --- a/docs/0.9.5/_modules/evennia/commands/default/muxcommand.html +++ b/docs/0.9.5/_modules/evennia/commands/default/muxcommand.html @@ -336,6 +336,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/commands/default/syscommands.html b/docs/0.9.5/_modules/evennia/commands/default/syscommands.html index 5f79b778fe..fa95d71445 100644 --- a/docs/0.9.5/_modules/evennia/commands/default/syscommands.html +++ b/docs/0.9.5/_modules/evennia/commands/default/syscommands.html @@ -219,6 +219,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/commands/default/system.html b/docs/0.9.5/_modules/evennia/commands/default/system.html index d1fa067b92..b9b475454b 100644 --- a/docs/0.9.5/_modules/evennia/commands/default/system.html +++ b/docs/0.9.5/_modules/evennia/commands/default/system.html @@ -434,9 +434,7 @@ if noecho: prompt = "..." if console.push(line) else main_prompt else: - if line: - self.caller.msg(f">>> {line}") - prompt = line if console.push(line) else main_prompt + prompt = line if console.push(line) else f"{line}\n{main_prompt}" except SystemExit: break self.msg("|gClosing the Python console.|n") @@ -997,7 +995,7 @@ "|wIn-Game time", "|wReal time x %g" % gametime.TIMEFACTOR, align="l", - width=78, + width=77, border_top=0, ) epochtxt = "Epoch (%s)" % ("from settings" if settings.TIME_GAME_EPOCH else "server start") @@ -1248,6 +1246,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/commands/default/tests.html b/docs/0.9.5/_modules/evennia/commands/default/tests.html index 4a31d6b5a8..37882fd43a 100644 --- a/docs/0.9.5/_modules/evennia/commands/default/tests.html +++ b/docs/0.9.5/_modules/evennia/commands/default/tests.html @@ -314,21 +314,8 @@
    [docs]class TestHelp(CommandTest): -
    [docs] def setUp(self): - super().setUp() - # we need to set up a logger here since lunr takes over the logger otherwise - import logging - - logging.basicConfig(level=logging.ERROR)
    - -
    [docs] def tearDown(self): - super().tearDown() - import logging - - logging.disable(level=logging.ERROR)
    -
    [docs] def test_help(self): - self.call(help.CmdHelp(), "", "Admin", cmdset=CharacterCmdSet())
    + self.call(help.CmdHelp(), "", "Command help entries", cmdset=CharacterCmdSet())
    [docs] def test_set_help(self): self.call( @@ -1025,8 +1012,11 @@ self.call(building.CmdSetHome(), "Obj = Room2", "Home location of Obj was set to Room")
    [docs] def test_list_cmdsets(self): - self.call(building.CmdListCmdSets(), "", - "<CmdSetHandler> stack:\n <CmdSet DefaultCharacter, Union, perm, prio 0>:") + self.call( + building.CmdListCmdSets(), + "", + "<CmdSetHandler> stack:\n <CmdSet DefaultCharacter, Union, perm, prio 0>:", + ) self.call(building.CmdListCmdSets(), "NotFound", "Could not find 'NotFound'")
    [docs] def test_typeclass(self): @@ -1664,6 +1654,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/commands/default/unloggedin.html b/docs/0.9.5/_modules/evennia/commands/default/unloggedin.html index ab244e1bef..e784be87a5 100644 --- a/docs/0.9.5/_modules/evennia/commands/default/unloggedin.html +++ b/docs/0.9.5/_modules/evennia/commands/default/unloggedin.html @@ -335,7 +335,6 @@ |wquit|n - abort the connection First create an account e.g. with |wcreate Anna c67jHL8p|n -(If you have spaces in your name, use double quotes: |wcreate "Anna the Barbarian" c67jHL8p|n Next you can connect to the game: |wconnect Anna c67jHL8p|n You can use the |wlook|n command if you want to see the connect screen again. @@ -563,6 +562,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/comms/admin.html b/docs/0.9.5/_modules/evennia/comms/admin.html index ad2ae0b866..a36b4cf9bb 100644 --- a/docs/0.9.5/_modules/evennia/comms/admin.html +++ b/docs/0.9.5/_modules/evennia/comms/admin.html @@ -189,6 +189,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/comms/channelhandler.html b/docs/0.9.5/_modules/evennia/comms/channelhandler.html index ae3b49d233..25a8fe3ad9 100644 --- a/docs/0.9.5/_modules/evennia/comms/channelhandler.html +++ b/docs/0.9.5/_modules/evennia/comms/channelhandler.html @@ -65,7 +65,7 @@ """ from django.conf import settings -from evennia.commands import cmdset, command +from evennia.commands import cmdset from evennia.utils.logger import tail_log_file from evennia.utils.utils import class_from_module from django.utils.translation import gettext as _ @@ -76,9 +76,9 @@ _CHANNEL_HANDLER_CLASS = None _CHANNEL_COMMAND_CLASS = None _CHANNELDB = None +_COMMAND_DEFAULT_CLASS = class_from_module(settings.COMMAND_DEFAULT_CLASS) - -
    [docs]class ChannelCommand(command.Command): +
    [docs]class ChannelCommand(_COMMAND_DEFAULT_CLASS): """ {channelkey} channel @@ -389,6 +389,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/comms/comms.html b/docs/0.9.5/_modules/evennia/comms/comms.html index e8ce97d763..701398e32d 100644 --- a/docs/0.9.5/_modules/evennia/comms/comms.html +++ b/docs/0.9.5/_modules/evennia/comms/comms.html @@ -888,6 +888,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/comms/managers.html b/docs/0.9.5/_modules/evennia/comms/managers.html index dbaa20278f..14155842e4 100644 --- a/docs/0.9.5/_modules/evennia/comms/managers.html +++ b/docs/0.9.5/_modules/evennia/comms/managers.html @@ -481,6 +481,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/comms/models.html b/docs/0.9.5/_modules/evennia/comms/models.html index ce6515df8c..a6525c27cc 100644 --- a/docs/0.9.5/_modules/evennia/comms/models.html +++ b/docs/0.9.5/_modules/evennia/comms/models.html @@ -807,6 +807,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/contrib/barter.html b/docs/0.9.5/_modules/evennia/contrib/barter.html index 1b23ea62eb..e4d970819b 100644 --- a/docs/0.9.5/_modules/evennia/contrib/barter.html +++ b/docs/0.9.5/_modules/evennia/contrib/barter.html @@ -963,6 +963,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/contrib/building_menu.html b/docs/0.9.5/_modules/evennia/contrib/building_menu.html index 6ccf06be5f..5af84562ef 100644 --- a/docs/0.9.5/_modules/evennia/contrib/building_menu.html +++ b/docs/0.9.5/_modules/evennia/contrib/building_menu.html @@ -1333,6 +1333,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/contrib/chargen.html b/docs/0.9.5/_modules/evennia/contrib/chargen.html index 06efaf4cb9..0f7fcddc7c 100644 --- a/docs/0.9.5/_modules/evennia/contrib/chargen.html +++ b/docs/0.9.5/_modules/evennia/contrib/chargen.html @@ -260,6 +260,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/contrib/clothing.html b/docs/0.9.5/_modules/evennia/contrib/clothing.html index 52518421eb..1b2f139ba7 100644 --- a/docs/0.9.5/_modules/evennia/contrib/clothing.html +++ b/docs/0.9.5/_modules/evennia/contrib/clothing.html @@ -810,6 +810,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/contrib/custom_gametime.html b/docs/0.9.5/_modules/evennia/contrib/custom_gametime.html index 54043ca70a..df3f49abb4 100644 --- a/docs/0.9.5/_modules/evennia/contrib/custom_gametime.html +++ b/docs/0.9.5/_modules/evennia/contrib/custom_gametime.html @@ -375,6 +375,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/contrib/dice.html b/docs/0.9.5/_modules/evennia/contrib/dice.html index 962a2c934b..c9d8430550 100644 --- a/docs/0.9.5/_modules/evennia/contrib/dice.html +++ b/docs/0.9.5/_modules/evennia/contrib/dice.html @@ -328,6 +328,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/contrib/email_login.html b/docs/0.9.5/_modules/evennia/contrib/email_login.html index aa599d9a0c..74a2980f52 100644 --- a/docs/0.9.5/_modules/evennia/contrib/email_login.html +++ b/docs/0.9.5/_modules/evennia/contrib/email_login.html @@ -429,6 +429,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/contrib/extended_room.html b/docs/0.9.5/_modules/evennia/contrib/extended_room.html index 661d916ed9..0529399161 100644 --- a/docs/0.9.5/_modules/evennia/contrib/extended_room.html +++ b/docs/0.9.5/_modules/evennia/contrib/extended_room.html @@ -659,6 +659,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/contrib/fieldfill.html b/docs/0.9.5/_modules/evennia/contrib/fieldfill.html index 83fd205dbc..0e5314dcc9 100644 --- a/docs/0.9.5/_modules/evennia/contrib/fieldfill.html +++ b/docs/0.9.5/_modules/evennia/contrib/fieldfill.html @@ -782,6 +782,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/contrib/gendersub.html b/docs/0.9.5/_modules/evennia/contrib/gendersub.html index 54fd4023f9..8c6ce206e9 100644 --- a/docs/0.9.5/_modules/evennia/contrib/gendersub.html +++ b/docs/0.9.5/_modules/evennia/contrib/gendersub.html @@ -223,6 +223,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/contrib/health_bar.html b/docs/0.9.5/_modules/evennia/contrib/health_bar.html index 6929dde319..cb3f34e2a5 100644 --- a/docs/0.9.5/_modules/evennia/contrib/health_bar.html +++ b/docs/0.9.5/_modules/evennia/contrib/health_bar.html @@ -186,6 +186,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/contrib/ingame_python/callbackhandler.html b/docs/0.9.5/_modules/evennia/contrib/ingame_python/callbackhandler.html index 1764d73012..c10f5f6951 100644 --- a/docs/0.9.5/_modules/evennia/contrib/ingame_python/callbackhandler.html +++ b/docs/0.9.5/_modules/evennia/contrib/ingame_python/callbackhandler.html @@ -291,6 +291,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/contrib/ingame_python/commands.html b/docs/0.9.5/_modules/evennia/contrib/ingame_python/commands.html index f9c4e4daf8..91c9dfe333 100644 --- a/docs/0.9.5/_modules/evennia/contrib/ingame_python/commands.html +++ b/docs/0.9.5/_modules/evennia/contrib/ingame_python/commands.html @@ -649,6 +649,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/contrib/ingame_python/eventfuncs.html b/docs/0.9.5/_modules/evennia/contrib/ingame_python/eventfuncs.html index 72e9cba9a9..7b6abf92df 100644 --- a/docs/0.9.5/_modules/evennia/contrib/ingame_python/eventfuncs.html +++ b/docs/0.9.5/_modules/evennia/contrib/ingame_python/eventfuncs.html @@ -157,6 +157,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/contrib/ingame_python/scripts.html b/docs/0.9.5/_modules/evennia/contrib/ingame_python/scripts.html index 2b2a097825..6c6eeb9ed7 100644 --- a/docs/0.9.5/_modules/evennia/contrib/ingame_python/scripts.html +++ b/docs/0.9.5/_modules/evennia/contrib/ingame_python/scripts.html @@ -734,6 +734,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/contrib/ingame_python/tests.html b/docs/0.9.5/_modules/evennia/contrib/ingame_python/tests.html index 23dca5d9ff..4c15322636 100644 --- a/docs/0.9.5/_modules/evennia/contrib/ingame_python/tests.html +++ b/docs/0.9.5/_modules/evennia/contrib/ingame_python/tests.html @@ -609,6 +609,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/contrib/ingame_python/typeclasses.html b/docs/0.9.5/_modules/evennia/contrib/ingame_python/typeclasses.html index 296e27a5a5..6ff876c8ca 100644 --- a/docs/0.9.5/_modules/evennia/contrib/ingame_python/typeclasses.html +++ b/docs/0.9.5/_modules/evennia/contrib/ingame_python/typeclasses.html @@ -985,6 +985,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/contrib/ingame_python/utils.html b/docs/0.9.5/_modules/evennia/contrib/ingame_python/utils.html index fcb8d82b05..ec1ace86a0 100644 --- a/docs/0.9.5/_modules/evennia/contrib/ingame_python/utils.html +++ b/docs/0.9.5/_modules/evennia/contrib/ingame_python/utils.html @@ -329,6 +329,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/contrib/mail.html b/docs/0.9.5/_modules/evennia/contrib/mail.html index 360514435e..942693b8ef 100644 --- a/docs/0.9.5/_modules/evennia/contrib/mail.html +++ b/docs/0.9.5/_modules/evennia/contrib/mail.html @@ -425,6 +425,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/contrib/mapbuilder.html b/docs/0.9.5/_modules/evennia/contrib/mapbuilder.html index fb6bc0c266..ceb780c539 100644 --- a/docs/0.9.5/_modules/evennia/contrib/mapbuilder.html +++ b/docs/0.9.5/_modules/evennia/contrib/mapbuilder.html @@ -568,6 +568,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/contrib/menu_login.html b/docs/0.9.5/_modules/evennia/contrib/menu_login.html index de5f6cd6ba..93e41d7dfd 100644 --- a/docs/0.9.5/_modules/evennia/contrib/menu_login.html +++ b/docs/0.9.5/_modules/evennia/contrib/menu_login.html @@ -320,6 +320,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/contrib/multidescer.html b/docs/0.9.5/_modules/evennia/contrib/multidescer.html index bb8fa53665..a2955fa8e1 100644 --- a/docs/0.9.5/_modules/evennia/contrib/multidescer.html +++ b/docs/0.9.5/_modules/evennia/contrib/multidescer.html @@ -336,6 +336,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/contrib/puzzles.html b/docs/0.9.5/_modules/evennia/contrib/puzzles.html index a4fd4bd33a..89ec8efd7b 100644 --- a/docs/0.9.5/_modules/evennia/contrib/puzzles.html +++ b/docs/0.9.5/_modules/evennia/contrib/puzzles.html @@ -880,6 +880,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/contrib/random_string_generator.html b/docs/0.9.5/_modules/evennia/contrib/random_string_generator.html index 18f102f567..0199189e0f 100644 --- a/docs/0.9.5/_modules/evennia/contrib/random_string_generator.html +++ b/docs/0.9.5/_modules/evennia/contrib/random_string_generator.html @@ -420,6 +420,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/contrib/rplanguage.html b/docs/0.9.5/_modules/evennia/contrib/rplanguage.html index 6b23d05c3a..c1bb12d195 100644 --- a/docs/0.9.5/_modules/evennia/contrib/rplanguage.html +++ b/docs/0.9.5/_modules/evennia/contrib/rplanguage.html @@ -101,46 +101,21 @@ Below is an example of "elvish", using "rounder" vowels and sounds: ```python - # vowel/consonant grammar possibilities - grammar = ("v vv vvc vcc vvcc cvvc vccv vvccv vcvccv vcvcvcc vvccvvcc " - "vcvvccvvc cvcvvcvvcc vcvcvvccvcvv") - - # all not in this group is considered a consonant + phonemes = "oi oh ee ae aa eh ah ao aw ay er ey ow ia ih iy " \ + "oy ua uh uw y p b t d f v t dh s z sh zh ch jh k " \ + "ng g m n l r w", vowels = "eaoiuy" - - # you need a representative of all of the minimal grammars here, so if a - # grammar v exists, there must be atleast one phoneme available with only - # one vowel in it - phonemes = ("oi oh ee ae aa eh ah ao aw ay er ey ow ia ih iy " - "oy ua uh uw y p b t d f v t dh s z sh zh ch jh k " - "ng g m n l r w") - - # how much the translation varies in length compared to the original. 0 is - # smallest, higher values give ever bigger randomness (including removing - # short words entirely) + grammar = "v vv vvc vcc vvcc cvvc vccv vvccv vcvccv vcvcvcc vvccvvcc " \ + "vcvvccvvc cvcvvcvvcc vcvcvvccvcvv", word_length_variance = 1 - - # if a proper noun (word starting with capitalized letter) should be - # translated or not. If not (default) it means e.g. names will remain - # unchanged across languages. - noun_translate = False - - # all proper nouns (words starting with a capital letter not at the beginning - # of a sentence) can have either a postfix or -prefix added at all times noun_postfix = "'la" - - # words in dict will always be translated this way. The 'auto_translations' - # is instead a list or filename to file with words to use to help build a - # bigger dictionary by creating random translations of each word in the - # list *once* and saving the result for subsequent use. manual_translations = {"the":"y'e", "we":"uyi", "she":"semi", "he":"emi", "you": "do", 'me':'mi','i':'me', 'be':"hy'e", 'and':'y'} rplanguage.add_language(key="elvish", phonemes=phonemes, grammar=grammar, word_length_variance=word_length_variance, - noun_translate=noun_translate, noun_postfix=noun_postfix, vowels=vowels, - manual_translations=manual_translations, + manual_translations=manual_translations auto_translations="my_word_file.txt") ``` @@ -183,8 +158,7 @@ _RE_FLAGS = re.MULTILINE + re.IGNORECASE + re.DOTALL + re.UNICODE _RE_GRAMMAR = re.compile(r"vv|cc|v|c", _RE_FLAGS) _RE_WORD = re.compile(r"\w+", _RE_FLAGS) -# superfluous chars, except ` ... ` -_RE_EXTRA_CHARS = re.compile(r"\s+(?!... )(?=\W)|[,.?;](?!.. )(?=[,?;]|\s+[,.?;])", _RE_FLAGS) +_RE_EXTRA_CHARS = re.compile(r"\s+(?=\W)|[,.?;](?=[,.?;]|\s+[,.?;])", _RE_FLAGS)
    [docs]class LanguageError(RuntimeError): @@ -265,13 +239,9 @@ 0 means a minimal variance, higher variance may mean words have wildly varying length; this strongly affects how the language "looks". - noun_translate (bool, optional): If a proper noun should be translated or - not. By default they will not, allowing for e.g. the names of characters - to be understandable. A 'noun' is identified as a capitalized word - *not at the start of a sentence*. This simple metric means that names - starting a sentence always will be translated (- but hey, maybe - the fantasy language just never uses a noun at the beginning of - sentences, who knows?) + noun_translate (bool, optional): If a proper noun, identified as a + capitalized word, should be translated or not. By default they + will not, allowing for e.g. the names of characters to be understandable. noun_prefix (str, optional): A prefix to go before every noun in this language (if any). noun_postfix (str, optuonal): A postfix to go after every noun @@ -316,7 +286,7 @@ # {"vv": ["ea", "oh", ...], ...} grammar2phonemes = defaultdict(list) for phoneme in phonemes.split(): - if re.search(r"\W", phoneme): + if re.search("\W", phoneme): raise LanguageError("The phoneme '%s' contains an invalid character" % phoneme) gram = "".join(["v" if char in vowels else "c" for char in phoneme]) grammar2phonemes[gram].append(phoneme) @@ -324,7 +294,7 @@ # allowed grammar are grouped by length gramdict = defaultdict(list) for gram in grammar.split(): - if re.search(r"\W|(!=[cv])", gram): + if re.search("\W|(!=[cv])", gram): raise LanguageError( "The grammar '%s' is invalid (only 'c' and 'v' are allowed)" % gram ) @@ -351,13 +321,7 @@ # use the corresponding length structure = choice(grammar[wlen]) for match in _RE_GRAMMAR.finditer(structure): - try: - new_word += choice(grammar2phonemes[match.group()]) - except IndexError: - raise IndexError( - "Could not find a matching phoneme for the grammar " - f"'{match.group()}'. Make there is at least one phoneme matching this " - "combination of consonants and vowels.") + new_word += choice(grammar2phonemes[match.group()]) translation[word.lower()] = new_word.lower() if manual_translations: @@ -396,11 +360,6 @@ word = match.group() lword = len(word) - # find out what preceeded this word - wpos = match.start() - preceeding = match.string[:wpos].strip() - start_sentence = preceeding.endswith((".", "!", "?")) or not preceeding - if len(word) <= self.level: # below level. Don't translate new_word = word @@ -410,6 +369,11 @@ if not new_word: # no dictionary translation. Generate one + # find out what preceeded this word + wpos = match.start() + preceeding = match.string[:wpos].strip() + start_sentence = preceeding.endswith((".", "!", "?")) or not preceeding + # make up translation on the fly. Length can # vary from un-translated word. wlen = max( @@ -444,30 +408,24 @@ break if word.istitle(): - if not start_sentence: - # this is a noun. We miss nouns at the start of - # sentences this way, but it's as good as we can get - # with this simple analysis. Maybe the fantasy language - # just don't consider nouns at the beginning of - # sentences, who knows? - if not self.language.get("noun_translate", False): - # don't translate what we identify as proper nouns (names) - new_word = word + title_word = "" + if not start_sentence and not self.language.get("noun_translate", False): + # don't translate what we identify as proper nouns (names) + title_word = word + elif new_word: + title_word = new_word - # add noun prefix and/or postfix - new_word = "{prefix}{word}{postfix}".format( - prefix=self.language["noun_prefix"], - word=new_word.capitalize(), - postfix=self.language["noun_postfix"], + if title_word: + # Regardless of if we translate or not, we will add the custom prefix/postfixes + new_word = "%s%s%s" % ( + self.language["noun_prefix"], + title_word.capitalize(), + self.language["noun_postfix"], ) if len(word) > 1 and word.isupper(): # keep LOUD words loud also when translated new_word = new_word.upper() - - if start_sentence: - new_word = new_word.capitalize() - return new_word
    [docs] def translate(self, text, level=0.0, language="default"): @@ -574,18 +532,19 @@ return list(_LANGUAGE_HANDLER.attributes.get("language_storage", {}))
    -# ----------------------------------------------------------------------------- +# ------------------------------------------------------------ # # Whisper obscuration # -# This obsucration table is designed by obscuring certain vowels first, -# following by consonants that tend to be more audible over long distances, -# like s. Finally it does non-auditory replacements, like exclamation marks and -# capitalized letters (assumed to be spoken louder) that may still give a user -# some idea of the sentence structure. Then the word lengths are also -# obfuscated and finally the whisper length itself. +# This obsucration table is designed by obscuring certain +# vowels first, following by consonants that tend to be +# more audible over long distances, like s. Finally it +# does non-auditory replacements, like exclamation marks +# and capitalized letters (assumed to be spoken louder) that may still +# give a user some idea of the sentence structure. Then the word +# lengths are also obfuscated and finally the whisper # length itself. # -# ------------------------------------------------------------------------------ +# ------------------------------------------------------------ _RE_WHISPER_OBSCURE = [ @@ -652,6 +611,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/contrib/rpsystem.html b/docs/0.9.5/_modules/evennia/contrib/rpsystem.html index 71a8ac8e58..134211d89d 100644 --- a/docs/0.9.5/_modules/evennia/contrib/rpsystem.html +++ b/docs/0.9.5/_modules/evennia/contrib/rpsystem.html @@ -324,8 +324,7 @@ the markers and a tuple (langname, saytext), where langname can be None. Raises: - evennia.contrib.rpsystem.LanguageError: If an invalid language was - specified. + rplanguage.LanguageError: If an invalid language was specified. Notes: Note that no errors are raised if the wrong language identifier @@ -1691,6 +1690,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/contrib/security/auditing/outputs.html b/docs/0.9.5/_modules/evennia/contrib/security/auditing/outputs.html index a6c3d36dc1..1fc120c46e 100644 --- a/docs/0.9.5/_modules/evennia/contrib/security/auditing/outputs.html +++ b/docs/0.9.5/_modules/evennia/contrib/security/auditing/outputs.html @@ -126,6 +126,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/contrib/security/auditing/server.html b/docs/0.9.5/_modules/evennia/contrib/security/auditing/server.html index b3b9373e4f..fb9b79e5c8 100644 --- a/docs/0.9.5/_modules/evennia/contrib/security/auditing/server.html +++ b/docs/0.9.5/_modules/evennia/contrib/security/auditing/server.html @@ -315,6 +315,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/contrib/security/auditing/tests.html b/docs/0.9.5/_modules/evennia/contrib/security/auditing/tests.html index f0eac123e2..0f4fc21d81 100644 --- a/docs/0.9.5/_modules/evennia/contrib/security/auditing/tests.html +++ b/docs/0.9.5/_modules/evennia/contrib/security/auditing/tests.html @@ -180,6 +180,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/contrib/simpledoor.html b/docs/0.9.5/_modules/evennia/contrib/simpledoor.html index 7289e8f49f..9987b40550 100644 --- a/docs/0.9.5/_modules/evennia/contrib/simpledoor.html +++ b/docs/0.9.5/_modules/evennia/contrib/simpledoor.html @@ -238,6 +238,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/contrib/slow_exit.html b/docs/0.9.5/_modules/evennia/contrib/slow_exit.html index ca3fc720f0..d460f3bfa0 100644 --- a/docs/0.9.5/_modules/evennia/contrib/slow_exit.html +++ b/docs/0.9.5/_modules/evennia/contrib/slow_exit.html @@ -210,6 +210,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/contrib/talking_npc.html b/docs/0.9.5/_modules/evennia/contrib/talking_npc.html index 5a9ab5edf0..4558517d06 100644 --- a/docs/0.9.5/_modules/evennia/contrib/talking_npc.html +++ b/docs/0.9.5/_modules/evennia/contrib/talking_npc.html @@ -199,6 +199,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/contrib/tree_select.html b/docs/0.9.5/_modules/evennia/contrib/tree_select.html index 3406c08317..3b728bf379 100644 --- a/docs/0.9.5/_modules/evennia/contrib/tree_select.html +++ b/docs/0.9.5/_modules/evennia/contrib/tree_select.html @@ -643,6 +643,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/contrib/turnbattle/tb_basic.html b/docs/0.9.5/_modules/evennia/contrib/turnbattle/tb_basic.html index 5f9387907e..5934ac3106 100644 --- a/docs/0.9.5/_modules/evennia/contrib/turnbattle/tb_basic.html +++ b/docs/0.9.5/_modules/evennia/contrib/turnbattle/tb_basic.html @@ -846,6 +846,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/contrib/turnbattle/tb_equip.html b/docs/0.9.5/_modules/evennia/contrib/turnbattle/tb_equip.html index 77c3e716fb..bc14aeb562 100644 --- a/docs/0.9.5/_modules/evennia/contrib/turnbattle/tb_equip.html +++ b/docs/0.9.5/_modules/evennia/contrib/turnbattle/tb_equip.html @@ -1204,6 +1204,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/contrib/turnbattle/tb_items.html b/docs/0.9.5/_modules/evennia/contrib/turnbattle/tb_items.html index f8c9e1b69a..ee573b5042 100644 --- a/docs/0.9.5/_modules/evennia/contrib/turnbattle/tb_items.html +++ b/docs/0.9.5/_modules/evennia/contrib/turnbattle/tb_items.html @@ -1523,6 +1523,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/contrib/turnbattle/tb_magic.html b/docs/0.9.5/_modules/evennia/contrib/turnbattle/tb_magic.html index 248535aebe..8ab65b61df 100644 --- a/docs/0.9.5/_modules/evennia/contrib/turnbattle/tb_magic.html +++ b/docs/0.9.5/_modules/evennia/contrib/turnbattle/tb_magic.html @@ -1445,6 +1445,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/contrib/turnbattle/tb_range.html b/docs/0.9.5/_modules/evennia/contrib/turnbattle/tb_range.html index 3685cd2341..1fdea0faeb 100644 --- a/docs/0.9.5/_modules/evennia/contrib/turnbattle/tb_range.html +++ b/docs/0.9.5/_modules/evennia/contrib/turnbattle/tb_range.html @@ -683,6 +683,7 @@ Args: to_init (object): Object to initialize range field for. + Keyword Args: anchor_obj (object): Object to copy range values from, or None for a random object. add_distance (int): Distance to put between to_init object and anchor object. @@ -1501,6 +1502,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/contrib/tutorial_examples/bodyfunctions.html b/docs/0.9.5/_modules/evennia/contrib/tutorial_examples/bodyfunctions.html index 755919266d..27b865f0a6 100644 --- a/docs/0.9.5/_modules/evennia/contrib/tutorial_examples/bodyfunctions.html +++ b/docs/0.9.5/_modules/evennia/contrib/tutorial_examples/bodyfunctions.html @@ -132,6 +132,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/contrib/tutorial_examples/cmdset_red_button.html b/docs/0.9.5/_modules/evennia/contrib/tutorial_examples/cmdset_red_button.html index 828903223b..c96dd552c8 100644 --- a/docs/0.9.5/_modules/evennia/contrib/tutorial_examples/cmdset_red_button.html +++ b/docs/0.9.5/_modules/evennia/contrib/tutorial_examples/cmdset_red_button.html @@ -401,6 +401,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/contrib/tutorial_examples/red_button.html b/docs/0.9.5/_modules/evennia/contrib/tutorial_examples/red_button.html index 840f4f1f23..6615627360 100644 --- a/docs/0.9.5/_modules/evennia/contrib/tutorial_examples/red_button.html +++ b/docs/0.9.5/_modules/evennia/contrib/tutorial_examples/red_button.html @@ -233,6 +233,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/contrib/tutorial_examples/red_button_scripts.html b/docs/0.9.5/_modules/evennia/contrib/tutorial_examples/red_button_scripts.html index 2a445b09e2..3df91fd796 100644 --- a/docs/0.9.5/_modules/evennia/contrib/tutorial_examples/red_button_scripts.html +++ b/docs/0.9.5/_modules/evennia/contrib/tutorial_examples/red_button_scripts.html @@ -351,6 +351,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/contrib/tutorial_examples/tests.html b/docs/0.9.5/_modules/evennia/contrib/tutorial_examples/tests.html index cc9d822278..1c18be75ee 100644 --- a/docs/0.9.5/_modules/evennia/contrib/tutorial_examples/tests.html +++ b/docs/0.9.5/_modules/evennia/contrib/tutorial_examples/tests.html @@ -137,6 +137,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/contrib/tutorial_world/intro_menu.html b/docs/0.9.5/_modules/evennia/contrib/tutorial_world/intro_menu.html index b41800e589..a52f34460e 100644 --- a/docs/0.9.5/_modules/evennia/contrib/tutorial_world/intro_menu.html +++ b/docs/0.9.5/_modules/evennia/contrib/tutorial_world/intro_menu.html @@ -473,9 +473,8 @@ and the main window. - Use |y<Return>|n (or click the arrow on the right) to send your input. -- Use |yCtrl + <up/down-arrow>|n to step back and forth in your command-history. -- Use |yCtrl + <Return>|n to add a new line to your input without sending. -(Cmd instead of Ctrl-key on Macs) +- Use |yShift + <up/down-arrow>|n to step back and forth in your command-history. +- Use |yShift + <Return>|n to add a new line to your input without sending. There is also some |wextra|n info to learn about customizing the webclient. @@ -848,6 +847,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/contrib/tutorial_world/mob.html b/docs/0.9.5/_modules/evennia/contrib/tutorial_world/mob.html index ca9919f223..c4da7b208f 100644 --- a/docs/0.9.5/_modules/evennia/contrib/tutorial_world/mob.html +++ b/docs/0.9.5/_modules/evennia/contrib/tutorial_world/mob.html @@ -110,7 +110,7 @@ stationary (idling) until attacked. aggressive: if set, will attack Characters in the same room using whatever Weapon it - carries (see tutorial_world.objects.TutorialWeapon). + carries (see tutorial_world.objects.Weapon). if unset, the mob will never engage in combat no matter what. hunting: if set, the mob will pursue enemies trying @@ -209,9 +209,9 @@ be "ticked". Args: - interval (int or None): The number of seconds + interval (int): The number of seconds between ticks - hook_key (str or None): The name of the method + hook_key (str): The name of the method (on this mob) to call every interval seconds. stop (bool, optional): Just stop the @@ -413,11 +413,16 @@ return # we use the same attack commands as defined in - # tutorial_world.objects.TutorialWeapon, assuming that + # tutorial_world.objects.Weapon, assuming that # the mob is given a Weapon to attack with. attack_cmd = random.choice(("thrust", "pierce", "stab", "slash", "chop")) self.execute_cmd("%s %s" % (attack_cmd, target)) + if target.db.health is None: + # This is not an attackable target + logger.log_err(f"{self.key} found {target} had an `health` attribute of `None`.") + return + # analyze the current state if target.db.health <= 0: # we reduced the target to <= 0 health. Move them to the @@ -502,6 +507,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/contrib/tutorial_world/objects.html b/docs/0.9.5/_modules/evennia/contrib/tutorial_world/objects.html index 46bb51fb09..96f196d763 100644 --- a/docs/0.9.5/_modules/evennia/contrib/tutorial_world/objects.html +++ b/docs/0.9.5/_modules/evennia/contrib/tutorial_world/objects.html @@ -55,8 +55,8 @@ Obelisk LightSource CrumblingWall -TutorialWeapon -TutorialWeaponRack +Weapon +WeaponRack """ @@ -832,7 +832,7 @@ # ------------------------------------------------------------- # -# TutorialWeapon - object type +# Weapon - object type # # A weapon is necessary in order to fight in the tutorial # world. A weapon (which here is assumed to be a bladed @@ -972,7 +972,7 @@ self.add(CmdAttack()) -
    [docs]class TutorialWeapon(TutorialObject): +
    [docs]class Weapon(TutorialObject): """ This defines a bladed weapon. @@ -984,7 +984,7 @@ """ -
    [docs] def at_object_creation(self): +
    [docs] def at_object_creation(self): """Called at first creation of the object""" super().at_object_creation() self.db.hit = 0.4 # hit chance @@ -993,7 +993,7 @@ self.db.magic = False self.cmdset.add_default(CmdSetWeapon, permanent=True)
    -
    [docs] def reset(self): +
    [docs] def reset(self): """ When reset, the weapon is simply deleted, unless it has a place to return to. @@ -1023,7 +1023,7 @@ WEAPON_PROTOTYPES = { "weapon": { - "typeclass": "evennia.contrib.tutorial_world.objects.TutorialWeapon", + "typeclass": "evennia.contrib.tutorial_world.objects.Weapon", "key": "Weapon", "hit": 0.2, "parry": 0.2, @@ -1168,7 +1168,7 @@ self.add(CmdGetWeapon())
    -
    [docs]class TutorialWeaponRack(TutorialObject): +
    [docs]class WeaponRack(TutorialObject): """ This object represents a weapon store. When people use the "get weapon" command on this rack, it will produce one @@ -1185,7 +1185,7 @@ """ -
    [docs] def at_object_creation(self): +
    [docs] def at_object_creation(self): """ called at creation """ @@ -1199,12 +1199,13 @@ |wstab/thrust/pierce <target>|n - poke at the enemy. More damage but harder to hit. |wslash/chop/bash <target>|n - swipe at the enemy. Less damage but easier to hit. |wdefend/parry|n - protect yourself and make yourself harder to hit.) - """).strip() + """ + ).strip() self.db.no_more_weapons_msg = "you find nothing else of use." self.db.available_weapons = ["knife", "dagger", "sword", "club"]
    -
    [docs] def produce_weapon(self, caller): +
    [docs] def produce_weapon(self, caller): """ This will produce a new weapon from the rack, assuming the caller hasn't already gotten one. When @@ -1250,6 +1251,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/contrib/tutorial_world/rooms.html b/docs/0.9.5/_modules/evennia/contrib/tutorial_world/rooms.html index 0c5870723a..54ff3cab6e 100644 --- a/docs/0.9.5/_modules/evennia/contrib/tutorial_world/rooms.html +++ b/docs/0.9.5/_modules/evennia/contrib/tutorial_world/rooms.html @@ -119,6 +119,7 @@ helptext += "\n\n (Write 'give up' if you want to abandon your quest.)" caller.msg(helptext)
    + # for the @detail command we inherit from MuxCommand, since # we want to make use of MuxCommand's pre-parsing of '=' in the # argument. @@ -243,22 +244,26 @@ looking_at_obj.at_desc(looker=caller) return
    +
    [docs]class CmdTutorialGiveUp(default_cmds.MuxCommand): """ Give up the tutorial-world quest and return to Limbo, the start room of the server. """ + key = "give up" - aliases = ['abort'] + aliases = ["abort"]
    [docs] def func(self): outro_room = OutroRoom.objects.all() if outro_room: outro_room = outro_room[0] else: - self.caller.msg("That didn't work (seems like a bug). " - "Try to use the |wteleport|n command instead.") + self.caller.msg( + "That didn't work (seems like a bug). " + "Try to use the |wteleport|n command instead." + ) return self.caller.move_to(outro_room)
    @@ -426,6 +431,7 @@ # # ------------------------------------------------------------- +
    [docs]class CmdEvenniaIntro(Command): """ Start the Evennia intro wizard. @@ -434,10 +440,12 @@ intro """ + key = "intro"
    [docs] def func(self): from .intro_menu import init_menu + # quell also superusers if self.caller.account: self.caller.account.execute_cmd("quell") @@ -493,6 +501,7 @@ character.account.execute_cmd("quell") character.msg("(Auto-quelling while in tutorial-world)")
    + # ------------------------------------------------------------- # # Bridge - unique room @@ -1206,7 +1215,6 @@
    [docs] def at_object_leave(self, character, destination): if character.account: character.account.execute_cmd("unquell")
    -
    @@ -1234,6 +1242,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/contrib/unixcommand.html b/docs/0.9.5/_modules/evennia/contrib/unixcommand.html index f95934046e..52cf770b52 100644 --- a/docs/0.9.5/_modules/evennia/contrib/unixcommand.html +++ b/docs/0.9.5/_modules/evennia/contrib/unixcommand.html @@ -361,6 +361,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/contrib/wilderness.html b/docs/0.9.5/_modules/evennia/contrib/wilderness.html index 53a5a171a3..0737208566 100644 --- a/docs/0.9.5/_modules/evennia/contrib/wilderness.html +++ b/docs/0.9.5/_modules/evennia/contrib/wilderness.html @@ -843,6 +843,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/help/admin.html b/docs/0.9.5/_modules/evennia/help/admin.html index a4e70f6f12..194971bc0e 100644 --- a/docs/0.9.5/_modules/evennia/help/admin.html +++ b/docs/0.9.5/_modules/evennia/help/admin.html @@ -122,6 +122,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/help/manager.html b/docs/0.9.5/_modules/evennia/help/manager.html index b54de3144b..4e5af3dbe3 100644 --- a/docs/0.9.5/_modules/evennia/help/manager.html +++ b/docs/0.9.5/_modules/evennia/help/manager.html @@ -218,6 +218,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/help/models.html b/docs/0.9.5/_modules/evennia/help/models.html index 817d1e1151..291cf39a7f 100644 --- a/docs/0.9.5/_modules/evennia/help/models.html +++ b/docs/0.9.5/_modules/evennia/help/models.html @@ -114,8 +114,7 @@ db_tags = models.ManyToManyField( Tag, blank=True, - help_text="tags on this object. Tags are simple string markers to " - "identify, group and alias objects.", + help_text="tags on this object. Tags are simple string markers to identify, group and alias objects.", ) # (deprecated, only here to allow MUX helpfile load (don't use otherwise)). # TODO: remove this when not needed anymore. @@ -165,19 +164,6 @@ """ return self.locks.check(accessing_obj, access_type=access_type, default=default) - @property - def search_index_entry(self): - """ - Property for easily retaining a search index entry for this object. - """ - return { - "key": self.db_key, - "aliases": " ".join(self.aliases.all()), - "category": self.db_help_category, - "text": self.db_entrytext, - "tags": " ".join(str(tag) for tag in self.tags.all()), - } - # # Web/Django methods # @@ -359,6 +345,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/locks/lockfuncs.html b/docs/0.9.5/_modules/evennia/locks/lockfuncs.html index 9c7520d688..679f6a3451 100644 --- a/docs/0.9.5/_modules/evennia/locks/lockfuncs.html +++ b/docs/0.9.5/_modules/evennia/locks/lockfuncs.html @@ -580,6 +580,8 @@ Only true if accessed_obj has the specified tag and optional category. """ + if hasattr(accessed_obj, "obj"): + accessed_obj = accessed_obj.obj tagkey = args[0] if args else None category = args[1] if len(args) > 1 else None return bool(accessed_obj.tags.get(tagkey, category=category)) @@ -611,6 +613,9 @@ in your inventory will also pass the lock). """ + if hasattr(accessed_obj, "obj"): + accessed_obj = accessed_obj.obj + def _recursive_inside(obj, accessed_obj, lvl=1): if obj.location: if obj.location == accessed_obj: @@ -764,6 +769,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/locks/lockhandler.html b/docs/0.9.5/_modules/evennia/locks/lockhandler.html index 8a96c96e91..489bd9fa9e 100644 --- a/docs/0.9.5/_modules/evennia/locks/lockhandler.html +++ b/docs/0.9.5/_modules/evennia/locks/lockhandler.html @@ -823,6 +823,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/objects/admin.html b/docs/0.9.5/_modules/evennia/objects/admin.html index f0bcdd1c0b..2f188f2aa5 100644 --- a/docs/0.9.5/_modules/evennia/objects/admin.html +++ b/docs/0.9.5/_modules/evennia/objects/admin.html @@ -263,6 +263,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/objects/manager.html b/docs/0.9.5/_modules/evennia/objects/manager.html index a9fdaf34aa..2e6e16a471 100644 --- a/docs/0.9.5/_modules/evennia/objects/manager.html +++ b/docs/0.9.5/_modules/evennia/objects/manager.html @@ -665,6 +665,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/objects/models.html b/docs/0.9.5/_modules/evennia/objects/models.html index e82164cbb9..cc8156c0d4 100644 --- a/docs/0.9.5/_modules/evennia/objects/models.html +++ b/docs/0.9.5/_modules/evennia/objects/models.html @@ -54,7 +54,6 @@ the database object. Like everything else, they can be accessed transparently through the decorating TypeClass. """ -from collections import defaultdict from django.conf import settings from django.db import models from django.core.exceptions import ObjectDoesNotExist @@ -84,49 +83,34 @@ """ self.obj = obj - self._pkcache = set() + self._pkcache = {} self._idcache = obj.__class__.__instance_cache__ - self._typecache = defaultdict(set) self.init() -
    [docs] def load(self): - """ - Retrieves all objects from database. Used for initializing. - - Returns: - Objects (list of ObjectDB) - """ - return list(self.obj.locations_set.all())
    -
    [docs] def init(self): """ Re-initialize the content cache """ - objects = self.load() - self._pkcache = {obj.pk for obj in objects} - for obj in objects: - for ctype in obj._content_types: - self._typecache[ctype].add(obj.pk)
    + self._pkcache.update( + dict((obj.pk, None) for obj in ObjectDB.objects.filter(db_location=self.obj) if obj.pk) + ) -
    [docs] def get(self, exclude=None, content_type=None): +
    [docs] def get(self, exclude=None): """ Return the contents of the cache. Args: exclude (Object or list of Object): object(s) to ignore - content_type (str or None): Filter list by a content-type. If None, don't filter. Returns: objects (list): the Objects inside this location """ - if content_type is not None: - pks = self._typecache[content_type] + if exclude: + pks = [pk for pk in self._pkcache if pk not in [excl.pk for excl in make_iter(exclude)]] else: pks = self._pkcache - if exclude: - pks = pks - {excl.pk for excl in make_iter(exclude)} try: return [self._idcache[pk] for pk in pks] except KeyError: @@ -136,9 +120,10 @@ try: return [self._idcache[pk] for pk in pks] except KeyError: - # this means an actual failure of caching. Return real database match. - logger.log_err("contents cache failed for %s." % self.obj.key) - return self.load()
    + # this means the central instance_cache was totally flushed. + # Re-fetching from database will rebuild the necessary parts of the cache + # for next fetch. + return list(ObjectDB.objects.filter(db_location=self.obj))
    [docs] def add(self, obj): """ @@ -148,9 +133,7 @@ obj (Object): object to add """ - self._pkcache.add(obj.pk) - for ctype in obj._content_types: - self._typecache[ctype].add(obj.pk)
    + self._pkcache[obj.pk] = None
    [docs] def remove(self, obj): """ @@ -160,10 +143,7 @@ obj (Object): object to remove """ - self._pkcache.remove(obj.pk) - for ctype in obj._content_types: - if obj.pk in self._typecache[ctype]: - self._typecache[ctype].remove(obj.pk)
    + self._pkcache.pop(obj.pk, None)
    [docs] def clear(self): """ @@ -171,7 +151,6 @@ """ self._pkcache = {} - self._typecache = defaultdict(set) self.init()
    @@ -451,6 +430,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/objects/objects.html b/docs/0.9.5/_modules/evennia/objects/objects.html index 102c7d4809..241efa11a8 100644 --- a/docs/0.9.5/_modules/evennia/objects/objects.html +++ b/docs/0.9.5/_modules/evennia/objects/objects.html @@ -53,7 +53,7 @@ from django.conf import settings from evennia.typeclasses.models import TypeclassBase -from evennia.typeclasses.attributes import NickHandler, ModelAttributeBackend +from evennia.typeclasses.attributes import NickHandler from evennia.objects.manager import ObjectManager from evennia.objects.models import ObjectDB from evennia.scripts.scripthandler import ScriptHandler @@ -65,6 +65,7 @@ from evennia.utils import logger from evennia.utils import ansi from evennia.utils.utils import ( + class_from_module, variable_from_module, lazy_property, make_iter, @@ -81,6 +82,7 @@ _SESSIONS = None _AT_SEARCH_RESULT = variable_from_module(*settings.SEARCH_AT_RESULT.rsplit(".", 1)) +_COMMAND_DEFAULT_CLASS = class_from_module(settings.COMMAND_DEFAULT_CLASS) # the sessid_max is based on the length of the db_sessid csv field (excluding commas) _SESSID_MAX = 16 if _MULTISESSION_MODE in (1, 3) else 1 @@ -245,9 +247,6 @@ """ - # Used for sorting / filtering in inventories / room contents. - _content_types = ("object",) - # lockstring of newly created objects, for easy overloading. # Will be formatted with the appropriate attributes. lockstring = "control:id({account_id}) or perm(Admin);delete:id({account_id}) or perm(Admin)" @@ -266,7 +265,7 @@
    [docs] @lazy_property def nicks(self): - return NickHandler(self, ModelAttributeBackend)
    + return NickHandler(self)
    [docs] @lazy_property def sessions(self): @@ -301,7 +300,7 @@ and not self.db_account.attributes.get("_quell") ) -
    [docs] def contents_get(self, exclude=None, content_type=None): +
    [docs] def contents_get(self, exclude=None): """ Returns the contents of this object, i.e. all objects that has this object set as its location. @@ -310,18 +309,17 @@ Args: exclude (Object): Object to exclude from returned contents list - content_type (str): A content_type to filter by. None for no - filtering. Returns: contents (list): List of contents of this Object. Notes: - Also available as the `contents` property, minus exclusion - and filtering. + Also available as the `contents` property. """ - return self.contents_cache.get(exclude=exclude, content_type=content_type)
    + con = self.contents_cache.get(exclude=exclude) + # print "contents_get:", self, con, id(self), calledby() # DEBUG + return con
    [docs] def contents_set(self, *args): "You cannot replace this property" @@ -417,7 +415,6 @@ nofound_string=None, multimatch_string=None, use_dbref=None, - stacked=0, ): """ Returns an Object matching a search string/condition @@ -446,9 +443,7 @@ to search. Note that this is used to query the *contents* of a location and will not match for the location itself - if you want that, don't set this or use `candidates` to specify - exactly which objects should be searched. If this nor candidates are - given, candidates will include caller's inventory, current location and - all objects in the current location. + exactly which objects should be searched. attribute_name (str): Define which property to search. If set, no key+alias search will be performed. This can be used to search database fields (db_ will be automatically @@ -476,19 +471,10 @@ will be treated like a normal string. If `None` (default), the ability to query by #dbref is turned on if `self` has the permission 'Builder' and is turned off otherwise. - stacked (int, optional): If > 0, multimatches will be analyzed to determine if they - only contains identical objects; these are then assumed 'stacked' and no multi-match - error will be generated, instead `stacked` number of matches will be returned. If - `stacked` is larger than number of matches, returns that number of matches. If - the found stack is a mix of objects, return None and handle the multi-match - error depending on the value of `quiet`. Returns: - Object: If finding a match an `quiet=False` - None: If not finding a unique match and `quiet=False`. - list: With 0, 1 or more matching objects if `quiet=True` - list: With 2 or more matching objects if `stacked` is a positive integer and - the matched stack has only object-copies. + match (Object, None or list): will return an Object/None if `quiet=False`, + otherwise it will return a list of 0, 1 or more matches. Notes: To find Accounts, use eg. `evennia.account_search`. If @@ -556,29 +542,8 @@ use_dbref=use_dbref, ) - nresults = len(results) - if stacked > 0 and nresults > 1: - # handle stacks, disable multimatch errors - nstack = nresults - if not exact: - # we re-run exact match agains one of the matches to - # make sure we were not catching partial matches not belonging - # to the stack - nstack = len(ObjectDB.objects.get_objs_with_key_or_alias( - results[0].key, - exact=True, - candidates=list(results), - typeclasses=[typeclass] if typeclass else None - )) - if nstack == nresults: - # a valid stack, return multiple results - return list(results)[:stacked] - if quiet: - # don't auto-handle error messaging return list(results) - - # handle error messages return _AT_SEARCH_RESULT( results, self, @@ -1735,26 +1700,20 @@ **kwargs (dict): Arbitrary, optional arguments for users overriding the call (unused by default). """ - - def filter_visible(obj_list): - # Helper method to determine if objects are visible to the looker. - return [obj for obj in obj_list if obj != looker and obj.access(looker, "view")] - if not looker: return "" - # get and identify all objects - exits_list = filter_visible(self.contents_get(content_type="exit")) - users_list = filter_visible(self.contents_get(content_type="character")) - things_list = filter_visible(self.contents_get(content_type="object")) - - things = defaultdict(list) - - for thing in things_list: - things[thing.key].append(thing) - users = [f"|c{user.key}|n" for user in users_list] - exits = [ex.key for ex in exits_list] - + visible = (con for con in self.contents if con != looker and con.access(looker, "view")) + exits, users, things = [], [], defaultdict(list) + for con in visible: + key = con.get_display_name(looker) + if con.destination: + exits.append(key) + elif con.has_account: + users.append("|c%s|n" % key) + else: + # things can be pluralized + things[key].append(con) # get description, build string string = "|c%s|n\n" % self.get_display_name(looker) desc = self.db.desc @@ -2025,7 +1984,9 @@ # whisper mode msg_type = "whisper" msg_self = ( - '{self} whisper to {all_receivers}, "|n{speech}|n"' if msg_self is True else msg_self + '{self} whisper to {all_receivers}, "|n{speech}|n"' + if msg_self is True + else msg_self ) msg_receivers = msg_receivers or '{object} whispers: "|n{speech}|n"' msg_location = None @@ -2112,9 +2073,6 @@ """ - # Tuple of types used for indexing inventory contents. Characters generally wouldn't be in - # anyone's inventory, but this also governs displays in room contents. - _content_types = ("character",) # lockstring of newly created rooms, for easy overloading. # Will be formatted with the appropriate attributes. lockstring = ( @@ -2154,13 +2112,6 @@ # If no typeclass supplied, use this class kwargs["typeclass"] = kwargs.pop("typeclass", cls) - # Normalize to latin characters and validate, if necessary, the supplied key - key = cls.normalize_name(key) - - if not cls.validate_name(key): - errors.append("Invalid character name.") - return obj, errors - # Set the supplied key as the name of the intended object kwargs["key"] = key @@ -2210,38 +2161,6 @@ return obj, errors
    -
    [docs] @classmethod - def normalize_name(cls, name): - """ - Normalize the character name prior to creating. Note that this should be refactored - to support i18n for non-latin scripts, but as we (currently) have no bug reports requesting better - support of non-latin character sets, requiring character names to be latinified is an acceptable option. - - Args: - name (str) : The name of the character - - Returns: - latin_name (str) : A valid name. - """ - - from evennia.utils.utils import latinify - - latin_name = latinify(name, default="X") - return latin_name
    - -
    [docs] @classmethod - def validate_name(cls, name): - """ Validate the character name prior to creating. Overload this function to add custom validators - - Args: - name (str) : The name of the character - Returns: - valid (bool) : True if character creation should continue; False if it should fail - - """ - - return True # Default validator does not perform any operations
    -
    [docs] def basetype_setup(self): """ Setup character-specific security. @@ -2370,10 +2289,6 @@ location is always `None`. """ - # A tuple of strings used for indexing this object inside an inventory. - # Generally, a room isn't expected to HAVE a location, but maybe in some games? - _content_types = ("room",) - # lockstring of newly created rooms, for easy overloading. # Will be formatted with the {id} of the creating object. lockstring = ( @@ -2472,8 +2387,7 @@ # Default Exit command, used by the base exit object # - -
    [docs]class ExitCommand(command.Command): +
    [docs]class ExitCommand(_COMMAND_DEFAULT_CLASS): """ This is a command that simply cause the caller to traverse the object it is attached to. @@ -2533,7 +2447,6 @@ """ - _content_types = ("exit",) exit_command = ExitCommand priority = 101 @@ -2776,6 +2689,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/prototypes/menus.html b/docs/0.9.5/_modules/evennia/prototypes/menus.html index e1c97263a2..fc44730ef7 100644 --- a/docs/0.9.5/_modules/evennia/prototypes/menus.html +++ b/docs/0.9.5/_modules/evennia/prototypes/menus.html @@ -2825,6 +2825,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/prototypes/protfuncs.html b/docs/0.9.5/_modules/evennia/prototypes/protfuncs.html index 43c839622d..808973401e 100644 --- a/docs/0.9.5/_modules/evennia/prototypes/protfuncs.html +++ b/docs/0.9.5/_modules/evennia/prototypes/protfuncs.html @@ -412,6 +412,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/prototypes/prototypes.html b/docs/0.9.5/_modules/evennia/prototypes/prototypes.html index c664159cdb..1a463a637f 100644 --- a/docs/0.9.5/_modules/evennia/prototypes/prototypes.html +++ b/docs/0.9.5/_modules/evennia/prototypes/prototypes.html @@ -1032,6 +1032,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/prototypes/spawner.html b/docs/0.9.5/_modules/evennia/prototypes/spawner.html index 5be9ea18b7..a78953aadd 100644 --- a/docs/0.9.5/_modules/evennia/prototypes/spawner.html +++ b/docs/0.9.5/_modules/evennia/prototypes/spawner.html @@ -956,15 +956,8 @@ val = prot.pop("location", None) create_kwargs["db_location"] = init_spawn_value(val, value_to_obj) - val = prot.pop("home", None) - if val: - create_kwargs["db_home"] = init_spawn_value(val, value_to_obj) - else: - try: - create_kwargs["db_home"] = init_spawn_value(settings.DEFAULT_HOME, value_to_obj) - except ObjectDB.DoesNotExist: - # settings.DEFAULT_HOME not existing is common for unittests - pass + val = prot.pop("home", settings.DEFAULT_HOME) + create_kwargs["db_home"] = init_spawn_value(val, value_to_obj) val = prot.pop("destination", None) create_kwargs["db_destination"] = init_spawn_value(val, value_to_obj) @@ -982,8 +975,8 @@ val = prot.pop("tags", []) tags = [] - for (tag, category, *data) in val: - tags.append((init_spawn_value(tag, str), category, data[0] if data else None)) + for (tag, category, data) in val: + tags.append((init_spawn_value(tag, str), category, data)) prototype_key = prototype.get("prototype_key", None) if prototype_key: @@ -1003,9 +996,8 @@ # the rest are attribute tuples (attrname, value, category, locks) val = make_iter(prot.pop("attrs", [])) attributes = [] - for (attrname, value, *rest) in val: - attributes.append((attrname, init_spawn_value(value), - rest[0] if rest else None, rest[1] if len(rest) > 1 else None)) + for (attrname, value, category, locks) in val: + attributes.append((attrname, init_spawn_value(value), category, locks)) simple_attributes = [] for key, value in ( @@ -1066,6 +1058,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/scripts/admin.html b/docs/0.9.5/_modules/evennia/scripts/admin.html index e792e08d4f..cc75a3dc4d 100644 --- a/docs/0.9.5/_modules/evennia/scripts/admin.html +++ b/docs/0.9.5/_modules/evennia/scripts/admin.html @@ -157,6 +157,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/scripts/manager.html b/docs/0.9.5/_modules/evennia/scripts/manager.html index 86e07dfc7d..88ef5b6fd8 100644 --- a/docs/0.9.5/_modules/evennia/scripts/manager.html +++ b/docs/0.9.5/_modules/evennia/scripts/manager.html @@ -352,6 +352,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/scripts/models.html b/docs/0.9.5/_modules/evennia/scripts/models.html index 2eccc6ddf6..2d92c1fad3 100644 --- a/docs/0.9.5/_modules/evennia/scripts/models.html +++ b/docs/0.9.5/_modules/evennia/scripts/models.html @@ -247,6 +247,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/scripts/monitorhandler.html b/docs/0.9.5/_modules/evennia/scripts/monitorhandler.html index d82350e344..7c0d2b3cbf 100644 --- a/docs/0.9.5/_modules/evennia/scripts/monitorhandler.html +++ b/docs/0.9.5/_modules/evennia/scripts/monitorhandler.html @@ -271,6 +271,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/scripts/scripthandler.html b/docs/0.9.5/_modules/evennia/scripts/scripthandler.html index 1b37001575..5fdf039c59 100644 --- a/docs/0.9.5/_modules/evennia/scripts/scripthandler.html +++ b/docs/0.9.5/_modules/evennia/scripts/scripthandler.html @@ -238,6 +238,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/scripts/scripts.html b/docs/0.9.5/_modules/evennia/scripts/scripts.html index 67088c7385..c5a32f84ab 100644 --- a/docs/0.9.5/_modules/evennia/scripts/scripts.html +++ b/docs/0.9.5/_modules/evennia/scripts/scripts.html @@ -782,6 +782,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/scripts/taskhandler.html b/docs/0.9.5/_modules/evennia/scripts/taskhandler.html index cbc790c263..ccecc89b46 100644 --- a/docs/0.9.5/_modules/evennia/scripts/taskhandler.html +++ b/docs/0.9.5/_modules/evennia/scripts/taskhandler.html @@ -269,6 +269,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/scripts/tickerhandler.html b/docs/0.9.5/_modules/evennia/scripts/tickerhandler.html index 8f018f4809..671fa1bb02 100644 --- a/docs/0.9.5/_modules/evennia/scripts/tickerhandler.html +++ b/docs/0.9.5/_modules/evennia/scripts/tickerhandler.html @@ -709,6 +709,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/server/admin.html b/docs/0.9.5/_modules/evennia/server/admin.html index 7c81950812..bd30b73627 100644 --- a/docs/0.9.5/_modules/evennia/server/admin.html +++ b/docs/0.9.5/_modules/evennia/server/admin.html @@ -91,6 +91,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/server/amp_client.html b/docs/0.9.5/_modules/evennia/server/amp_client.html index 22184bf308..38d761736f 100644 --- a/docs/0.9.5/_modules/evennia/server/amp_client.html +++ b/docs/0.9.5/_modules/evennia/server/amp_client.html @@ -46,11 +46,9 @@ """ import os -from django.conf import settings from evennia.server.portal import amp from twisted.internet import protocol from evennia.utils import logger -from evennia.utils.utils import class_from_module
    [docs]class AMPClientFactory(protocol.ReconnectingClientFactory): @@ -76,7 +74,7 @@ """ self.server = server - self.protocol = class_from_module(settings.AMP_CLIENT_PROTOCOL_CLASS) + self.protocol = AMPServerClientProtocol self.maxDelay = 10 # not really used unless connecting to multiple servers, but # avoids having to check for its existence on the protocol @@ -318,6 +316,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/server/connection_wizard.html b/docs/0.9.5/_modules/evennia/server/connection_wizard.html index df6a754424..5c1a174bf2 100644 --- a/docs/0.9.5/_modules/evennia/server/connection_wizard.html +++ b/docs/0.9.5/_modules/evennia/server/connection_wizard.html @@ -587,6 +587,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/server/deprecations.html b/docs/0.9.5/_modules/evennia/server/deprecations.html index 8f1bd7ef23..1e8046b918 100644 --- a/docs/0.9.5/_modules/evennia/server/deprecations.html +++ b/docs/0.9.5/_modules/evennia/server/deprecations.html @@ -190,6 +190,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/server/evennia_launcher.html b/docs/0.9.5/_modules/evennia/server/evennia_launcher.html index b97fc61956..ec06b35aca 100644 --- a/docs/0.9.5/_modules/evennia/server/evennia_launcher.html +++ b/docs/0.9.5/_modules/evennia/server/evennia_launcher.html @@ -2300,7 +2300,7 @@ if option in ("makemessages", "compilemessages"): # some commands don't require the presence of a game directory to work need_gamedir = False - if option in ("shell", "check", "makemigrations", "createsuperuser", "shell_plus"): + if option in ("shell", "check", "makemigrations", "createsuperuser"): # some django commands requires the database to exist, # or evennia._init to have run before they work right. check_db = True @@ -2360,6 +2360,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/server/game_index_client/client.html b/docs/0.9.5/_modules/evennia/server/game_index_client/client.html index 8bd17ab813..074ec6deab 100644 --- a/docs/0.9.5/_modules/evennia/server/game_index_client/client.html +++ b/docs/0.9.5/_modules/evennia/server/game_index_client/client.html @@ -245,6 +245,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/server/game_index_client/service.html b/docs/0.9.5/_modules/evennia/server/game_index_client/service.html index 62207a870c..300a808f99 100644 --- a/docs/0.9.5/_modules/evennia/server/game_index_client/service.html +++ b/docs/0.9.5/_modules/evennia/server/game_index_client/service.html @@ -124,6 +124,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/server/initial_setup.html b/docs/0.9.5/_modules/evennia/server/initial_setup.html index 3692efefe1..1696d7fe72 100644 --- a/docs/0.9.5/_modules/evennia/server/initial_setup.html +++ b/docs/0.9.5/_modules/evennia/server/initial_setup.html @@ -305,6 +305,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/server/inputfuncs.html b/docs/0.9.5/_modules/evennia/server/inputfuncs.html index 9c70ff15ef..078490b16b 100644 --- a/docs/0.9.5/_modules/evennia/server/inputfuncs.html +++ b/docs/0.9.5/_modules/evennia/server/inputfuncs.html @@ -528,6 +528,7 @@ Keyword Args: <option name>: an option to save + """ account = session.account @@ -683,6 +684,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/server/manager.html b/docs/0.9.5/_modules/evennia/server/manager.html index 80456887a5..0d98323ba3 100644 --- a/docs/0.9.5/_modules/evennia/server/manager.html +++ b/docs/0.9.5/_modules/evennia/server/manager.html @@ -119,6 +119,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/server/models.html b/docs/0.9.5/_modules/evennia/server/models.html index addb04a3f9..4f41a91606 100644 --- a/docs/0.9.5/_modules/evennia/server/models.html +++ b/docs/0.9.5/_modules/evennia/server/models.html @@ -201,6 +201,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/server/portal/amp.html b/docs/0.9.5/_modules/evennia/server/portal/amp.html index 115947d20c..9de336098a 100644 --- a/docs/0.9.5/_modules/evennia/server/portal/amp.html +++ b/docs/0.9.5/_modules/evennia/server/portal/amp.html @@ -56,7 +56,7 @@ import pickle from twisted.internet.defer import DeferredList, Deferred -from evennia.utils.utils import variable_from_module +from evennia.utils.utils import to_str, variable_from_module # delayed import _LOGGER = None @@ -606,6 +606,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/server/portal/amp_server.html b/docs/0.9.5/_modules/evennia/server/portal/amp_server.html index 8bc6f50e2f..02de7991fa 100644 --- a/docs/0.9.5/_modules/evennia/server/portal/amp_server.html +++ b/docs/0.9.5/_modules/evennia/server/portal/amp_server.html @@ -52,7 +52,6 @@ from django.conf import settings from subprocess import Popen, STDOUT from evennia.utils import logger -from evennia.utils.utils import class_from_module def _is_windows(): @@ -98,7 +97,7 @@ """ self.portal = portal - self.protocol = class_from_module(settings.AMP_SERVER_PROTOCOL_CLASS) + self.protocol = AMPServerProtocol self.broadcasts = [] self.server_connection = None self.launcher_connection = None @@ -116,7 +115,7 @@ protocol (Protocol): The created protocol. """ - self.portal.amp_protocol = self.protocol() + self.portal.amp_protocol = AMPServerProtocol() self.portal.amp_protocol.factory = self return self.portal.amp_protocol @@ -548,6 +547,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/server/portal/grapevine.html b/docs/0.9.5/_modules/evennia/server/portal/grapevine.html index d6b841da00..8940c58202 100644 --- a/docs/0.9.5/_modules/evennia/server/portal/grapevine.html +++ b/docs/0.9.5/_modules/evennia/server/portal/grapevine.html @@ -425,6 +425,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/server/portal/irc.html b/docs/0.9.5/_modules/evennia/server/portal/irc.html index abe0524974..ca5f44c17e 100644 --- a/docs/0.9.5/_modules/evennia/server/portal/irc.html +++ b/docs/0.9.5/_modules/evennia/server/portal/irc.html @@ -544,6 +544,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/server/portal/mccp.html b/docs/0.9.5/_modules/evennia/server/portal/mccp.html index 8eee961ddb..f9a4476e91 100644 --- a/docs/0.9.5/_modules/evennia/server/portal/mccp.html +++ b/docs/0.9.5/_modules/evennia/server/portal/mccp.html @@ -156,6 +156,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/server/portal/mssp.html b/docs/0.9.5/_modules/evennia/server/portal/mssp.html index e79a6d49e3..93421e6548 100644 --- a/docs/0.9.5/_modules/evennia/server/portal/mssp.html +++ b/docs/0.9.5/_modules/evennia/server/portal/mssp.html @@ -201,6 +201,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/server/portal/mxp.html b/docs/0.9.5/_modules/evennia/server/portal/mxp.html index ce7d29bad4..f91826dd26 100644 --- a/docs/0.9.5/_modules/evennia/server/portal/mxp.html +++ b/docs/0.9.5/_modules/evennia/server/portal/mxp.html @@ -150,6 +150,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/server/portal/naws.html b/docs/0.9.5/_modules/evennia/server/portal/naws.html index db4ced8c84..0002736333 100644 --- a/docs/0.9.5/_modules/evennia/server/portal/naws.html +++ b/docs/0.9.5/_modules/evennia/server/portal/naws.html @@ -150,6 +150,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/server/portal/portal.html b/docs/0.9.5/_modules/evennia/server/portal/portal.html index 4ca4bf555f..17035cc0d2 100644 --- a/docs/0.9.5/_modules/evennia/server/portal/portal.html +++ b/docs/0.9.5/_modules/evennia/server/portal/portal.html @@ -68,7 +68,7 @@ evennia._init() -from evennia.utils.utils import get_evennia_version, mod_import, make_iter, class_from_module +from evennia.utils.utils import get_evennia_version, mod_import, make_iter from evennia.server.portal.portalsessionhandler import PORTAL_SESSIONS from evennia.utils import logger from evennia.server.webserver import EvenniaReverseProxyResource @@ -327,8 +327,6 @@ from evennia.server.portal import telnet - _telnet_protocol = class_from_module(settings.TELNET_PROTOCOL_CLASS) - for interface in TELNET_INTERFACES: ifacestr = "" if interface not in ("0.0.0.0", "::") or len(TELNET_INTERFACES) > 1: @@ -337,7 +335,7 @@ pstring = "%s:%s" % (ifacestr, port) factory = telnet.TelnetServerFactory() factory.noisy = False - factory.protocol = _telnet_protocol + factory.protocol = telnet.TelnetProtocol factory.sessionhandler = PORTAL_SESSIONS telnet_service = internet.TCPServer(port, factory, interface=interface) telnet_service.setName("EvenniaTelnet%s" % pstring) @@ -352,8 +350,6 @@ from evennia.server.portal import telnet_ssl - _ssl_protocol = class_from_module(settings.SSL_PROTOCOL_CLASS) - for interface in SSL_INTERFACES: ifacestr = "" if interface not in ("0.0.0.0", "::") or len(SSL_INTERFACES) > 1: @@ -363,7 +359,7 @@ factory = protocol.ServerFactory() factory.noisy = False factory.sessionhandler = PORTAL_SESSIONS - factory.protocol = _ssl_protocol + factory.protocol = telnet_ssl.SSLProtocol ssl_context = telnet_ssl.getSSLContext() if ssl_context: @@ -387,8 +383,6 @@ from evennia.server.portal import ssh - _ssh_protocol = class_from_module(settings.SSH_PROTOCOL_CLASS) - for interface in SSH_INTERFACES: ifacestr = "" if interface not in ("0.0.0.0", "::") or len(SSH_INTERFACES) > 1: @@ -396,7 +390,11 @@ for port in SSH_PORTS: pstring = "%s:%s" % (ifacestr, port) factory = ssh.makeFactory( - {"protocolFactory": _ssh_protocol, "protocolArgs": (), "sessions": PORTAL_SESSIONS,} + { + "protocolFactory": ssh.SshProtocol, + "protocolArgs": (), + "sessions": PORTAL_SESSIONS, + } ) factory.noisy = False ssh_service = internet.TCPServer(port, factory, interface=interface) @@ -412,7 +410,6 @@ # Start a reverse proxy to relay data to the Server-side webserver websocket_started = False - _websocket_protocol = class_from_module(settings.WEBSOCKET_PROTOCOL_CLASS) for interface in WEBSERVER_INTERFACES: ifacestr = "" if interface not in ("0.0.0.0", "::") or len(WEBSERVER_INTERFACES) > 1: @@ -447,7 +444,7 @@ factory = Websocket() factory.noisy = False - factory.protocol = _websocket_protocol + factory.protocol = webclient.WebSocketClient factory.sessionhandler = PORTAL_SESSIONS websocket_service = internet.TCPServer(port, factory, interface=w_interface) websocket_service.setName("EvenniaWebSocket%s:%s" % (w_ifacestr, port)) @@ -503,6 +500,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/server/portal/portalsessionhandler.html b/docs/0.9.5/_modules/evennia/server/portal/portalsessionhandler.html index d217675278..34b5cbcee0 100644 --- a/docs/0.9.5/_modules/evennia/server/portal/portalsessionhandler.html +++ b/docs/0.9.5/_modules/evennia/server/portal/portalsessionhandler.html @@ -48,10 +48,8 @@ from collections import deque, namedtuple from twisted.internet import reactor from django.conf import settings -from evennia.server.sessionhandler import SessionHandler -from evennia.server.portal.amp import PCONN, PDISCONN, PCONNSYNC, PDISCONNALL +from evennia.server.sessionhandler import SessionHandler, PCONN, PDISCONN, PCONNSYNC, PDISCONNALL from evennia.utils.logger import log_trace -from evennia.utils.utils import class_from_module # module import _MOD_IMPORT = None @@ -111,19 +109,6 @@ """ self.connection_time = time.time() -
    [docs] def generate_sessid(self): - """ - Simply generates a sessid that's guaranteed to be unique for this Portal run. - - Returns: - sessid - - """ - self.latest_sessid += 1 - if self.latest_sessid in self: - return self.generate_sessid() - return self.latest_sessid
    -
    [docs] def connect(self, session): """ Called by protocol at first connect. This adds a not-yet @@ -147,7 +132,8 @@ if not session.sessid: # if the session already has a sessid (e.g. being inherited in the # case of a webclient auto-reconnect), keep it - session.sessid = self.generate_sessid() + self.latest_sessid += 1 + session.sessid = self.latest_sessid session.server_connected = False _CONNECTION_QUEUE.appendleft(session) if len(_CONNECTION_QUEUE) > 1: @@ -518,9 +504,7 @@ log_trace()
    -_PORTAL_SESSION_HANDLER_CLASS = class_from_module(settings.PORTAL_SESSION_HANDLER_CLASS) - -PORTAL_SESSIONS = _PORTAL_SESSION_HANDLER_CLASS() +PORTAL_SESSIONS = PortalSessionHandler()
    @@ -548,6 +532,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/server/portal/rss.html b/docs/0.9.5/_modules/evennia/server/portal/rss.html index f340cc6462..d10e5853aa 100644 --- a/docs/0.9.5/_modules/evennia/server/portal/rss.html +++ b/docs/0.9.5/_modules/evennia/server/portal/rss.html @@ -229,6 +229,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/server/portal/ssh.html b/docs/0.9.5/_modules/evennia/server/portal/ssh.html index 25aca839ad..d03a960971 100644 --- a/docs/0.9.5/_modules/evennia/server/portal/ssh.html +++ b/docs/0.9.5/_modules/evennia/server/portal/ssh.html @@ -84,9 +84,10 @@ from twisted.python import components from django.conf import settings +from evennia.server import session from evennia.accounts.models import AccountDB from evennia.utils import ansi -from evennia.utils.utils import to_str, class_from_module +from evennia.utils.utils import to_str _RE_N = re.compile(r"\|n$") _RE_SCREENREADER_REGEX = re.compile( @@ -114,8 +115,6 @@ _PRIVATE_KEY_FILE, _PUBLIC_KEY_FILE ) -_BASE_SESSION_CLASS = class_from_module(settings.BASE_SESSION_CLASS) - # not used atm
    [docs]class SSHServerFactory(protocol.ServerFactory): @@ -126,7 +125,7 @@ return "SSH"
    -
    [docs]class SshProtocol(Manhole, _BASE_SESSION_CLASS): +
    [docs]class SshProtocol(Manhole, session.Session): """ Each account connecting over ssh gets this protocol assigned to them. All communication between game and account goes through @@ -319,18 +318,18 @@ text (str): The first argument is always the text string to send. No other arguments are considered. Keyword Args: - options (dict): Send-option flags (booleans) + options (dict): Send-option flags: - - mxp: enforce mxp link support. - - ansi: enforce no ansi colors. - - xterm256: enforce xterm256 colors, regardless of ttype setting. - - nocolor: strip all colors. - - raw: pass string through without any ansi processing - (i.e. include evennia ansi markers but do not + - mxp: Enforce MXP link support. + - ansi: Enforce no ANSI colors. + - xterm256: Enforce xterm256 colors, regardless of TTYPE setting. + - nocolor: Strip all colors. + - raw: Pass string through without any ansi processing + (i.e. include Evennia ansi markers but do not convert them into ansi tokens) - - echo: turn on/off line echo on the client. turn + - echo: Turn on/off line echo on the client. Turn off line echo for client, for example for password. - note that it must be actively turned back on again! + Note that it must be actively turned back on again! """ # print "telnet.send_text", args,kwargs # DEBUG @@ -593,6 +592,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/server/portal/ssl.html b/docs/0.9.5/_modules/evennia/server/portal/ssl.html index a4370cd45a..e38eb36536 100644 --- a/docs/0.9.5/_modules/evennia/server/portal/ssl.html +++ b/docs/0.9.5/_modules/evennia/server/portal/ssl.html @@ -59,7 +59,7 @@ raise ImportError(errstr.format(err=error)) from django.conf import settings -from evennia.utils.utils import class_from_module +from evennia.server.portal.telnet import TelnetProtocol _GAME_DIR = settings.GAME_DIR @@ -84,10 +84,8 @@ {exestring} """ -_TELNET_PROTOCOL_CLASS = class_from_module(settings.TELNET_PROTOCOL_CLASS) - -
    [docs]class SSLProtocol(_TELNET_PROTOCOL_CLASS): +
    [docs]class SSLProtocol(TelnetProtocol): """ Communication is the same as telnet, except data transfer is done with encryption. @@ -183,6 +181,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/server/portal/suppress_ga.html b/docs/0.9.5/_modules/evennia/server/portal/suppress_ga.html index 25295c2096..a7463d89fb 100644 --- a/docs/0.9.5/_modules/evennia/server/portal/suppress_ga.html +++ b/docs/0.9.5/_modules/evennia/server/portal/suppress_ga.html @@ -132,6 +132,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/server/portal/telnet.html b/docs/0.9.5/_modules/evennia/server/portal/telnet.html index 8fce71899c..83e8c938f4 100644 --- a/docs/0.9.5/_modules/evennia/server/portal/telnet.html +++ b/docs/0.9.5/_modules/evennia/server/portal/telnet.html @@ -66,11 +66,12 @@ LINEMODE_TRAPSIG, ) from django.conf import settings +from evennia.server.session import Session from evennia.server.portal import ttype, mssp, telnet_oob, naws, suppress_ga from evennia.server.portal.mccp import Mccp, mccp_compress, MCCP from evennia.server.portal.mxp import Mxp, mxp_parse from evennia.utils import ansi -from evennia.utils.utils import to_bytes, class_from_module +from evennia.utils.utils import to_bytes _RE_N = re.compile(r"\|n$") _RE_LEND = re.compile(br"\n$|\r$|\r\n$|\r\x00$|", re.MULTILINE) @@ -96,9 +97,6 @@ ) -_BASE_SESSION_CLASS = class_from_module(settings.BASE_SESSION_CLASS) - -
    [docs]class TelnetServerFactory(protocol.ServerFactory): "This is only to name this better in logs" noisy = False @@ -107,7 +105,7 @@ return "Telnet"
    -
    [docs]class TelnetProtocol(Telnet, StatefulTelnetProtocol, _BASE_SESSION_CLASS): +
    [docs]class TelnetProtocol(Telnet, StatefulTelnetProtocol, Session): """ Each player connecting over telnet (ie using most traditional mud clients) gets a telnet protocol instance assigned to them. All @@ -430,19 +428,19 @@ text (str): The first argument is always the text string to send. No other arguments are considered. Keyword Args: - options (dict): Send-option flags + options (dict): Send-option flags: - - mxp: Enforce MXP link support. - - ansi: Enforce no ANSI colors. - - xterm256: Enforce xterm256 colors, regardless of TTYPE. - - noxterm256: Enforce no xterm256 color support, regardless of TTYPE. - - nocolor: Strip all Color, regardless of ansi/xterm256 setting. - - raw: Pass string through without any ansi processing - (i.e. include Evennia ansi markers but do not - convert them into ansi tokens) - - echo: Turn on/off line echo on the client. Turn - off line echo for client, for example for password. - Note that it must be actively turned back on again! + - mxp: Enforce MXP link support. + - ansi: Enforce no ANSI colors. + - xterm256: Enforce xterm256 colors, regardless of TTYPE. + - noxterm256: Enforce no xterm256 color support, regardless of TTYPE. + - nocolor: Strip all Color, regardless of ansi/xterm256 setting. + - raw: Pass string through without any ansi processing + (i.e. include Evennia ansi markers but do not + convert them into ansi tokens) + - echo: Turn on/off line echo on the client. Turn + off line echo for client, for example for password. + Note that it must be actively turned back on again! """ text = args[0] if args else "" @@ -557,6 +555,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/server/portal/telnet_oob.html b/docs/0.9.5/_modules/evennia/server/portal/telnet_oob.html index 45f892ad9b..1f08758ae7 100644 --- a/docs/0.9.5/_modules/evennia/server/portal/telnet_oob.html +++ b/docs/0.9.5/_modules/evennia/server/portal/telnet_oob.html @@ -51,16 +51,21 @@ instruct the client to play sounds or to update a graphical health bar. -Note that in Evennia's Web client, all send commands are "OOB -commands", (including the "text" one), there is no equivalence to -MSDP/GMCP for the webclient since it doesn't need it. +> Note that in Evennia's Web client, all send commands are "OOB commands", +(including the "text" one), there is no equivalence to MSDP/GMCP for the +webclient since it doesn't need it. This implements the following telnet OOB communication protocols: -- MSDP (Mud Server Data Protocol), as per http://tintin.sourceforge.net/msdp/ +- MSDP (Mud Server Data Protocol), as per + http://tintin.sourceforge.net/msdp/ - GMCP (Generic Mud Communication Protocol) as per http://www.ironrealms.com/rapture/manual/files/FeatGMCP-txt.html#Generic_MUD_Communication_Protocol%28GMCP%29 +Following the lead of KaVir's protocol snippet, we first check if client +supports MSDP and if not, we fallback to GMCP with a MSDP header where +applicable. + ---- """ @@ -197,16 +202,16 @@ MSDP structures on these forms: :: - [cmdname, [], {}] -> VAR cmdname VAL "" - [cmdname, [arg], {}] -> VAR cmdname VAL arg - [cmdname, [args],{}] -> VAR cmdname VAL ARRAYOPEN VAL arg VAL arg ... ARRAYCLOSE - [cmdname, [], {kwargs}] -> VAR cmdname VAL TABLEOPEN VAR key VAL val ... TABLECLOSE + [cmdname, [], {}] -> VAR cmdname VAL "" + [cmdname, [arg], {}] -> VAR cmdname VAL arg + [cmdname, [args],{}] -> VAR cmdname VAL ARRAYOPEN VAL arg VAL arg ... ARRAYCLOSE + [cmdname, [], {kwargs}] -> VAR cmdname VAL TABLEOPEN VAR key VAL val ... TABLECLOSE [cmdname, [args], {kwargs}] -> VAR cmdname VAL ARRAYOPEN VAL arg VAL arg ... ARRAYCLOSE VAR cmdname VAL TABLEOPEN VAR key VAL val ... TABLECLOSE - Further nesting is not supported, so if an array argument - consists of an array (for example), that array will be - json-converted to a string. + Further nesting is not supported, so if an array argument consists + of an array (for example), that array will be json-converted to a + string. """ msdp_cmdname = "{msdp_var}{msdp_cmdname}{msdp_val}".format( @@ -276,10 +281,11 @@ [cmd.name, [arg], {}] -> Cmd.Name arg [cmd.name, [args],{}] -> Cmd.Name [args] [cmd.name, [], {kwargs}] -> Cmd.Name {kwargs} - [cmdname, [args, {kwargs}] -> Core.Cmdname [[args],{kwargs}] + [cmdname, [args, {kwargs}] -> Core.Cmdname [[args],{kwargs}] Notes: - There are also a few default mappings between evennia outputcmds and GMCP: + There are also a few default mappings between evennia outputcmds and + GMCP: :: client_options -> Core.Supports.Get @@ -506,6 +512,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/server/portal/telnet_ssl.html b/docs/0.9.5/_modules/evennia/server/portal/telnet_ssl.html index f6ed6df800..dcb9cba79e 100644 --- a/docs/0.9.5/_modules/evennia/server/portal/telnet_ssl.html +++ b/docs/0.9.5/_modules/evennia/server/portal/telnet_ssl.html @@ -221,6 +221,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/server/portal/tests.html b/docs/0.9.5/_modules/evennia/server/portal/tests.html index e2e5e5efa9..420fa1447f 100644 --- a/docs/0.9.5/_modules/evennia/server/portal/tests.html +++ b/docs/0.9.5/_modules/evennia/server/portal/tests.html @@ -386,6 +386,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/server/portal/ttype.html b/docs/0.9.5/_modules/evennia/server/portal/ttype.html index 3fbab4c42d..dd9fcd74cf 100644 --- a/docs/0.9.5/_modules/evennia/server/portal/ttype.html +++ b/docs/0.9.5/_modules/evennia/server/portal/ttype.html @@ -252,6 +252,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/server/portal/webclient.html b/docs/0.9.5/_modules/evennia/server/portal/webclient.html index 0b2a14f7f1..6b1a586f1d 100644 --- a/docs/0.9.5/_modules/evennia/server/portal/webclient.html +++ b/docs/0.9.5/_modules/evennia/server/portal/webclient.html @@ -58,8 +58,10 @@ import re import json import html +from twisted.internet.protocol import Protocol from django.conf import settings -from evennia.utils.utils import mod_import, class_from_module +from evennia.server.session import Session +from evennia.utils.utils import to_str, mod_import from evennia.utils.ansi import parse_ansi from evennia.utils.text2html import parse_html from autobahn.twisted.websocket import WebSocketServerProtocol @@ -79,10 +81,10 @@ # called when the browser is navigating away from the page GOING_AWAY = WebSocketServerProtocol.CLOSE_STATUS_CODE_GOING_AWAY -_BASE_SESSION_CLASS = class_from_module(settings.BASE_SESSION_CLASS) +STATE_CLOSING = WebSocketServerProtocol.STATE_CLOSING -
    [docs]class WebSocketClient(WebSocketServerProtocol, _BASE_SESSION_CLASS): +
    [docs]class WebSocketClient(WebSocketServerProtocol, Session): """ Implements the server-side of the Websocket connection. """ @@ -300,6 +302,8 @@ return else: return + # just to be sure + text = to_str(text) flags = self.protocol_flags @@ -373,6 +377,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/server/portal/webclient_ajax.html b/docs/0.9.5/_modules/evennia/server/portal/webclient_ajax.html index e31780dc41..ce3827ece0 100644 --- a/docs/0.9.5/_modules/evennia/server/portal/webclient_ajax.html +++ b/docs/0.9.5/_modules/evennia/server/portal/webclient_ajax.html @@ -533,6 +533,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/server/profiling/dummyrunner.html b/docs/0.9.5/_modules/evennia/server/profiling/dummyrunner.html index 4e4917aae4..3cf222be99 100644 --- a/docs/0.9.5/_modules/evennia/server/profiling/dummyrunner.html +++ b/docs/0.9.5/_modules/evennia/server/profiling/dummyrunner.html @@ -500,6 +500,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/server/profiling/dummyrunner_settings.html b/docs/0.9.5/_modules/evennia/server/profiling/dummyrunner_settings.html index a5a35389a0..fec91d70db 100644 --- a/docs/0.9.5/_modules/evennia/server/profiling/dummyrunner_settings.html +++ b/docs/0.9.5/_modules/evennia/server/profiling/dummyrunner_settings.html @@ -47,15 +47,15 @@ The settings are global variables: -- TIMESTEP - time in seconds between each 'tick' -- CHANCE_OF_ACTION - chance 0-1 of action happening -- CHANCE_OF_LOGIN - chance 0-1 of login happening -- TELNET_PORT - port to use, defaults to settings.TELNET_PORT -- ACTIONS - see below +TIMESTEP - time in seconds between each 'tick' +CHANCE_OF_ACTION - chance 0-1 of action happening +CHANCE_OF_LOGIN - chance 0-1 of login happening +TELNET_PORT - port to use, defaults to settings.TELNET_PORT +ACTIONS - see below ACTIONS is a tuple -```python +``` (login_func, logout_func, (0.3, func1), (0.1, func2) ... ) ``` @@ -78,14 +78,14 @@ The client object has the following relevant properties and methods: - key - an optional client key. This is only used for dummyrunner output. - Default is "Dummy-<cid>" + Default is "Dummy-<cid>" - cid - client id - gid - globally unique id, hashed with time stamp - istep - the current step - exits - an empty list. Can be used to store exit names - objs - an empty list. Can be used to store object names - counter() - returns a unique increasing id, hashed with time stamp - to make it unique also between dummyrunner instances. + to make it unique also between dummyrunner instances. The return should either be a single command string or a tuple of command strings. This list of commands will always be executed every @@ -93,7 +93,7 @@ (no randomness) and allows for setting up a more complex chain of commands (such as creating an account and logging in). ----- +--- """ # Dummy runner settings @@ -358,6 +358,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/server/profiling/memplot.html b/docs/0.9.5/_modules/evennia/server/profiling/memplot.html index c030ecf094..2f24b78b6f 100644 --- a/docs/0.9.5/_modules/evennia/server/profiling/memplot.html +++ b/docs/0.9.5/_modules/evennia/server/profiling/memplot.html @@ -182,6 +182,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/server/profiling/test_queries.html b/docs/0.9.5/_modules/evennia/server/profiling/test_queries.html index 0f67c7e9cf..b7b04fbef6 100644 --- a/docs/0.9.5/_modules/evennia/server/profiling/test_queries.html +++ b/docs/0.9.5/_modules/evennia/server/profiling/test_queries.html @@ -109,6 +109,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/server/profiling/tests.html b/docs/0.9.5/_modules/evennia/server/profiling/tests.html index 9803c9497d..a703d585f1 100644 --- a/docs/0.9.5/_modules/evennia/server/profiling/tests.html +++ b/docs/0.9.5/_modules/evennia/server/profiling/tests.html @@ -228,6 +228,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/server/profiling/timetrace.html b/docs/0.9.5/_modules/evennia/server/profiling/timetrace.html index 031074087c..6f8d587b7c 100644 --- a/docs/0.9.5/_modules/evennia/server/profiling/timetrace.html +++ b/docs/0.9.5/_modules/evennia/server/profiling/timetrace.html @@ -106,6 +106,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/server/server.html b/docs/0.9.5/_modules/evennia/server/server.html index 891a6349b4..8631e9a235 100644 --- a/docs/0.9.5/_modules/evennia/server/server.html +++ b/docs/0.9.5/_modules/evennia/server/server.html @@ -40,12 +40,12 @@

    Source code for evennia.server.server

     """
    -This module implements the main Evennia server process, the core of the game
    -engine.
    +This module implements the main Evennia server process, the core of
    +the game engine.
     
    -This module should be started with the 'twistd' executable since it sets up all
    -the networking features.  (this is done automatically by
    -evennia/server/server_runner.py).
    +This module should be started with the 'twistd' executable since it
    +sets up all the networking features.  (this is done automatically
    +by evennia/server/server_runner.py).
     
     """
     import time
    @@ -63,7 +63,6 @@
     django.setup()
     
     import evennia
    -import importlib
     
     evennia._init()
     
    @@ -73,6 +72,7 @@
     from evennia.accounts.models import AccountDB
     from evennia.scripts.models import ScriptDB
     from evennia.server.models import ServerConfig
    +from evennia.server import initial_setup
     
     from evennia.utils.utils import get_evennia_version, mod_import, make_iter
     from evennia.utils import logger
    @@ -382,7 +382,6 @@
             Once finished the last_initial_setup_step is set to -1.
             """
             global INFO_DICT
    -        initial_setup = importlib.import_module(settings.INITIAL_SETUP_MODULE)
             last_initial_setup_step = ServerConfig.objects.conf("last_initial_setup_step")
             if not last_initial_setup_step:
                 # None is only returned if the config does not exist,
    @@ -441,17 +440,18 @@
             """
             Shuts down the server from inside it.
     
    -        mode - sets the server restart mode.
    -           - 'reload' - server restarts, no "persistent" scripts
    -             are stopped, at_reload hooks called.
    -           - 'reset' - server restarts, non-persistent scripts stopped,
    -             at_shutdown hooks called but sessions will not
    -             be disconnected.
    -           - 'shutdown' - like reset, but server will not auto-restart.
    -        _reactor_stopping - this is set if server is stopped by a kill
    -           command OR this method was already called
    -           once - in both cases the reactor is
    -           dead/stopping already.
    +        Keyword Args:
    +            mode (str): Sets the server restart mode:
    +            - 'reload': server restarts, no "persistent" scripts
    +              are stopped, at_reload hooks called.
    +            - 'reset' - server restarts, non-persistent scripts stopped,
    +              at_shutdown hooks called but sessions will not
    +              be disconnected.
    +            -'shutdown' - like reset, but server will not auto-restart.
    +            _reactor_stopping: This is set if server is stopped by a kill
    +                command OR this method was already called
    +                once - in both cases the reactor is dead/stopping already.
    +
             """
             if _reactor_stopping and hasattr(self, "shutdown_complete"):
                 # this means we have already passed through this method
    @@ -797,6 +797,7 @@
       
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/server/serversession.html b/docs/0.9.5/_modules/evennia/server/serversession.html index 16fed0c893..636268c2e8 100644 --- a/docs/0.9.5/_modules/evennia/server/serversession.html +++ b/docs/0.9.5/_modules/evennia/server/serversession.html @@ -47,16 +47,16 @@ It is stored on the Server side (as opposed to protocol-specific sessions which are stored on the Portal side) """ +import weakref import time from django.utils import timezone from django.conf import settings from evennia.comms.models import ChannelDB from evennia.utils import logger -from evennia.utils.utils import make_iter, lazy_property, class_from_module +from evennia.utils.utils import make_iter, lazy_property from evennia.commands.cmdsethandler import CmdSetHandler from evennia.server.session import Session from evennia.scripts.monitorhandler import MONITOR_HANDLER -from evennia.typeclasses.attributes import AttributeHandler, InMemoryAttributeBackend, DbHolder _GA = object.__getattribute__ _SA = object.__setattr__ @@ -66,7 +66,123 @@ # i18n from django.utils.translation import gettext as _ -_BASE_SESSION_CLASS = class_from_module(settings.BASE_SESSION_CLASS) +# Handlers for Session.db/ndb operation + + +
    [docs]class NDbHolder(object): + """Holder for allowing property access of attributes""" + +
    [docs] def __init__(self, obj, name, manager_name="attributes"): + _SA(self, name, _GA(obj, manager_name)) + _SA(self, "name", name)
    + + def __getattribute__(self, attrname): + if attrname == "all": + # we allow to overload our default .all + attr = _GA(self, _GA(self, "name")).get("all") + return attr if attr else _GA(self, "all") + return _GA(self, _GA(self, "name")).get(attrname) + + def __setattr__(self, attrname, value): + _GA(self, _GA(self, "name")).add(attrname, value) + + def __delattr__(self, attrname): + _GA(self, _GA(self, "name")).remove(attrname) + +
    [docs] def get_all(self): + return _GA(self, _GA(self, "name")).all()
    + + all = property(get_all)
    + + +
    [docs]class NAttributeHandler(object): + """ + NAttributeHandler version without recache protection. + This stand-alone handler manages non-database saving. + It is similar to `AttributeHandler` and is used + by the `.ndb` handler in the same way as `.db` does + for the `AttributeHandler`. + """ + +
    [docs] def __init__(self, obj): + """ + Initialized on the object + """ + self._store = {} + self.obj = weakref.proxy(obj)
    + +
    [docs] def has(self, key): + """ + Check if object has this attribute or not. + + Args: + key (str): The Nattribute key to check. + + Returns: + has_nattribute (bool): If Nattribute is set or not. + + """ + return key in self._store
    + +
    [docs] def get(self, key, default=None): + """ + Get the named key value. + + Args: + key (str): The Nattribute key to get. + + Returns: + the value of the Nattribute. + + """ + return self._store.get(key, default)
    + +
    [docs] def add(self, key, value): + """ + Add new key and value. + + Args: + key (str): The name of Nattribute to add. + value (any): The value to store. + + """ + self._store[key] = value
    + +
    [docs] def remove(self, key): + """ + Remove Nattribute from storage. + + Args: + key (str): The name of the Nattribute to remove. + + """ + if key in self._store: + del self._store[key]
    + +
    [docs] def clear(self): + """ + Remove all NAttributes from handler. + + """ + self._store = {}
    + +
    [docs] def all(self, return_tuples=False): + """ + List the contents of the handler. + + Args: + return_tuples (bool, optional): Defines if the Nattributes + are returns as a list of keys or as a list of `(key, value)`. + + Returns: + nattributes (list): A list of keys `[key, key, ...]` or a + list of tuples `[(key, value), ...]` depending on the + setting of `return_tuples`. + + """ + if return_tuples: + return [(key, value) for (key, value) in self._store.items() if not key.startswith("_")] + return [key for key in self._store if not key.startswith("_")]
    # ------------------------------------------------------------- @@ -74,7 +190,7 @@ # ------------------------------------------------------------- -
    [docs]class ServerSession(_BASE_SESSION_CLASS): +
    [docs]class ServerSession(Session): """ This class represents an account's session and is a template for individual protocols to communicate with Evennia. @@ -100,10 +216,6 @@ cmdset_storage = property(__cmdset_storage_get, __cmdset_storage_set) - @property - def id(self): - return self.sessid -
    [docs] def at_sync(self): """ This is called whenever a session has been resynced with the @@ -273,7 +385,7 @@ Update the protocol_flags and sync them with Portal. Keyword Args: - protocol_flag (any): A key and value to set in the + any: A key:value pair to set in the protocol_flags dictionary. Notes: @@ -305,13 +417,14 @@ the respective inputfuncs. Keyword Args: - kwargs (any): Incoming data from protocol on + any: Incoming data from protocol on the form `{"commandname": ((args), {kwargs}),...}` Notes: This method is here in order to give the user a single place to catch and possibly process all incoming data from the client. It should usually always end by sending this data off to `self.sessionhandler.call_inputfuncs(self, **kwargs)`. + """ self.sessionhandler.call_inputfuncs(self, **kwargs)
    @@ -321,9 +434,7 @@ Args: text (str): String input. - - Keyword Args: - any (str or tuple): Send-commands identified + kwargs (str or tuple): Send-commands identified by their keys. Or "options", carrying options for the protocol(s). @@ -419,7 +530,7 @@
    [docs] @lazy_property def nattributes(self): - return AttributeHandler(self, InMemoryAttributeBackend)
    + return NAttributeHandler(self)
    [docs] @lazy_property def attributes(self): @@ -437,7 +548,7 @@ try: return self._ndb_holder except AttributeError: - self._ndb_holder = DbHolder(self, "nattrhandler", manager_name="nattributes") + self._ndb_holder = NDbHolder(self, "nattrhandler", manager_name="nattributes") return self._ndb_holder
    # @ndb.setter @@ -493,6 +604,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/server/session.html b/docs/0.9.5/_modules/evennia/server/session.html index 05b5446de1..9554fe2211 100644 --- a/docs/0.9.5/_modules/evennia/server/session.html +++ b/docs/0.9.5/_modules/evennia/server/session.html @@ -53,7 +53,7 @@ # ------------------------------------------------------------ -
    [docs]class Session: +
    [docs]class Session(object): """ This class represents a player's session and is a template for both portal- and server-side sessions. @@ -76,6 +76,26 @@ """ + # names of attributes that should be affected by syncing. + _attrs_to_sync = ( + "protocol_key", + "address", + "suid", + "sessid", + "uid", + "csessid", + "uname", + "logged_in", + "puid", + "conn_time", + "cmd_last", + "cmd_last_visible", + "cmd_total", + "protocol_flags", + "server_data", + "cmdset_storage_string", + ) +
    [docs] def init_session(self, protocol_key, address, sessionhandler): """ Initialize the Session. This should be called by the protocol when @@ -142,9 +162,9 @@ the keys given by self._attrs_to_sync. """ - return { - attr: getattr(self, attr) for attr in settings.SESSION_SYNC_ATTRS if hasattr(self, attr) - }
    + return dict( + (key, value) for key, value in self.__dict__.items() if key in self._attrs_to_sync + )
    [docs] def load_sync_data(self, sessdata): """ @@ -240,6 +260,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/server/sessionhandler.html b/docs/0.9.5/_modules/evennia/server/sessionhandler.html index 91f82309e3..dc84b99b47 100644 --- a/docs/0.9.5/_modules/evennia/server/sessionhandler.html +++ b/docs/0.9.5/_modules/evennia/server/sessionhandler.html @@ -45,12 +45,12 @@ There are two similar but separate stores of sessions: -- ServerSessionHandler - this stores generic game sessions - for the game. These sessions has no knowledge about - how they are connected to the world. -- PortalSessionHandler - this stores sessions created by - twisted protocols. These are dumb connectors that - handle network communication but holds no game info. + - ServerSessionHandler - this stores generic game sessions + for the game. These sessions has no knowledge about + how they are connected to the world. + - PortalSessionHandler - this stores sessions created by + twisted protocols. These are dumb connectors that + handle network communication but holds no game info. """ import time @@ -59,14 +59,12 @@ from evennia.commands.cmdhandler import CMD_LOGINSTART from evennia.utils.logger import log_trace from evennia.utils.utils import ( - variable_from_module, class_from_module, + variable_from_module, is_iter, make_iter, delay, callables_from_module, - class_from_module, ) -from evennia.server.portal import amp from evennia.server.signals import SIGNAL_ACCOUNT_POST_LOGIN, SIGNAL_ACCOUNT_POST_LOGOUT from evennia.server.signals import SIGNAL_ACCOUNT_POST_FIRST_LOGIN, SIGNAL_ACCOUNT_POST_LAST_LOGOUT from evennia.utils.inlinefuncs import parse_inlinefunc @@ -90,6 +88,25 @@ DUMMYSESSION = DummySession() +# AMP signals +PCONN = chr(1) # portal session connect +PDISCONN = chr(2) # portal session disconnect +PSYNC = chr(3) # portal session sync +SLOGIN = chr(4) # server session login +SDISCONN = chr(5) # server session disconnect +SDISCONNALL = chr(6) # server session disconnect all +SSHUTD = chr(7) # server shutdown +SSYNC = chr(8) # server session sync +SCONN = chr(11) # server portal connection (for bots) +PCONNSYNC = chr(12) # portal post-syncing session +PDISCONNALL = chr(13) # portal session discnnect all +SRELOAD = chr(14) # server reloading (have portal start a new server) +SSTART = chr(15) # server start (portal must already be running anyway) +PSHUTD = chr(16) # portal (+server) shutdown +SSHUTD = chr(17) # server shutdown +PSTATUS = chr(18) # ping server or portal status +SRESET = chr(19) # server shutdown in reset mode + # i18n from django.utils.translation import gettext as _ @@ -116,7 +133,8 @@ global _ServerSession, _AccountDB, _ServerConfig, _ScriptDB if not _ServerSession: # we allow optional arbitrary serversession class for overloading - _ServerSession = class_from_module(settings.SERVER_SESSION_CLASS) + modulename, classname = settings.SERVER_SESSION_CLASS.rsplit(".", 1) + _ServerSession = variable_from_module(modulename, classname) if not _AccountDB: from evennia.accounts.models import AccountDB as _AccountDB if not _ServerConfig: @@ -124,10 +142,10 @@ if not _ScriptDB: from evennia.scripts.models import ScriptDB as _ScriptDB # including once to avoid warnings in Python syntax checkers - assert _ServerSession, "ServerSession class could not load" - assert _AccountDB, "AccountDB class could not load" - assert _ServerConfig, "ServerConfig class could not load" - assert _ScriptDB, "ScriptDB class c ould not load" + assert _ServerSession + assert _AccountDB + assert _ServerConfig + assert _ScriptDB # ----------------------------------------------------------- @@ -196,20 +214,23 @@ Args: session (Session): The relevant session instance. - kwargs (dict) Each keyword represents a send-instruction, with the keyword itself being the name + kwargs (dict) Each keyword represents a + send-instruction, with the keyword itself being the name of the instruction (like "text"). Suitable values for each keyword are: - - arg -> [[arg], {}] - - [args] -> [[args], {}] - - {kwargs} -> [[], {kwargs}] - - [args, {kwargs}] -> [[arg], {kwargs}] - - [[args], {kwargs}] -> [[args], {kwargs}] + :: + + arg -> [[arg], {}] + [args] -> [[args], {}] + {kwargs} -> [[], {kwargs}] + [args, {kwargs}] -> [[arg], {kwargs}] + [[args], {kwargs}] -> [[args], {kwargs}] Returns: kwargs (dict): A cleaned dictionary of cmdname:[[args],{kwargs}] pairs, - where the keys, args and kwargs have all been converted to - send-safe entities (strings or numbers), and inlinefuncs have been - applied. + where the keys, args and kwargs have all been converted to + send-safe entities (strings or numbers), and inlinefuncs have been + applied. """ options = kwargs.pop("options", None) or {} @@ -473,7 +494,7 @@ """ self.server.amp_protocol.send_AdminServer2Portal( - DUMMYSESSION, operation=amp.SCONN, protocol_path=protocol_path, config=configdict + DUMMYSESSION, operation=SCONN, protocol_path=protocol_path, config=configdict )
    [docs] def portal_restart_server(self): @@ -481,14 +502,14 @@ Called by server when reloading. We tell the portal to start a new server instance. """ - self.server.amp_protocol.send_AdminServer2Portal(DUMMYSESSION, operation=amp.SRELOAD)
    + self.server.amp_protocol.send_AdminServer2Portal(DUMMYSESSION, operation=SRELOAD)
    [docs] def portal_reset_server(self): """ Called by server when reloading. We tell the portal to start a new server instance. """ - self.server.amp_protocol.send_AdminServer2Portal(DUMMYSESSION, operation=amp.SRESET)
    + self.server.amp_protocol.send_AdminServer2Portal(DUMMYSESSION, operation=SRESET)
    [docs] def portal_shutdown(self): """ @@ -496,7 +517,7 @@ itself down) """ - self.server.amp_protocol.send_AdminServer2Portal(DUMMYSESSION, operation=amp.PSHUTD)
    + self.server.amp_protocol.send_AdminServer2Portal(DUMMYSESSION, operation=PSHUTD)
    [docs] def login(self, session, account, force=False, testmode=False): """ @@ -544,7 +565,7 @@ # sync the portal to the session if not testmode: self.server.amp_protocol.send_AdminServer2Portal( - session, operation=amp.SLOGIN, sessiondata={"logged_in": True, "uid": session.uid} + session, operation=SLOGIN, sessiondata={"logged_in": True, "uid": session.uid} ) account.at_post_login(session=session) if nsess < 2: @@ -589,7 +610,7 @@ if sync_portal: # inform portal that session should be closed. self.server.amp_protocol.send_AdminServer2Portal( - session, operation=amp.SDISCONN, reason=reason + session, operation=SDISCONN, reason=reason )
    [docs] def all_sessions_portal_sync(self): @@ -600,7 +621,7 @@ """ sessdata = self.get_all_sync_data() return self.server.amp_protocol.send_AdminServer2Portal( - DUMMYSESSION, operation=amp.SSYNC, sessiondata=sessdata + DUMMYSESSION, operation=SSYNC, sessiondata=sessdata )
    [docs] def session_portal_sync(self, session): @@ -611,7 +632,7 @@ """ sessdata = {session.sessid: session.get_sync_data()} return self.server.amp_protocol.send_AdminServer2Portal( - DUMMYSESSION, operation=amp.SSYNC, sessiondata=sessdata, clean=False + DUMMYSESSION, operation=SSYNC, sessiondata=sessdata, clean=False )
    [docs] def session_portal_partial_sync(self, session_data): @@ -624,7 +645,7 @@ """ return self.server.amp_protocol.send_AdminServer2Portal( - DUMMYSESSION, operation=amp.SSYNC, sessiondata=session_data, clean=False + DUMMYSESSION, operation=SSYNC, sessiondata=session_data, clean=False )
    [docs] def disconnect_all_sessions(self, reason="You have been disconnected."): @@ -640,7 +661,7 @@ del session # tell portal to disconnect all sessions self.server.amp_protocol.send_AdminServer2Portal( - DUMMYSESSION, operation=amp.SDISCONNALL, reason=reason + DUMMYSESSION, operation=SDISCONNALL, reason=reason )
    [docs] def disconnect_duplicate_sessions( @@ -783,9 +804,8 @@ Given a client identification hash (for session types that offer them) return all sessions with a matching hash. - Args + Args: csessid (str): The session hash. - Returns: sessions (list): The sessions with matching .csessid, if any. @@ -848,9 +868,9 @@
    [docs] def call_inputfuncs(self, session, **kwargs): """ - Split incoming data into its inputfunc counterparts. This should be - called by the `serversession.data_in` as - `sessionhandler.call_inputfunc(self, **kwargs)`. + Split incoming data into its inputfunc counterparts. + This should be called by the serversession.data_in + as `sessionhandler.call_inputfunc(self, **kwargs)`. We also intercept OOB communication here. @@ -858,8 +878,8 @@ sessions (Session): Session. Keyword Args: - any (tuple): Incoming data from protocol, each - on the form `commandname=((args), {kwargs})`. + kwargs (any): Incoming data from protocol on + the form `{"commandname": ((args), {kwargs}),...}` """ @@ -880,11 +900,7 @@ log_trace()
    -# import class from settings -_SESSION_HANDLER_CLASS = class_from_module(settings.SERVER_SESSION_HANDLER_CLASS) - -# Instantiate class. These globals are used to provide singleton-like behavior. -SESSION_HANDLER = _SESSION_HANDLER_CLASS() +SESSION_HANDLER = ServerSessionHandler() SESSIONS = SESSION_HANDLER # legacy @@ -913,6 +929,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/server/throttle.html b/docs/0.9.5/_modules/evennia/server/throttle.html index 78f6aa0df3..b14669f3e4 100644 --- a/docs/0.9.5/_modules/evennia/server/throttle.html +++ b/docs/0.9.5/_modules/evennia/server/throttle.html @@ -39,8 +39,7 @@

    Source code for evennia.server.throttle

    -from django.core.cache import caches
    -from collections import deque
    +from collections import defaultdict, deque
     from evennia.utils import logger
     import time
     
    @@ -54,8 +53,8 @@
     
         This version of the throttle is usable by both the terminal server as well
         as the web server, imposes limits on memory consumption by using deques
    -    with length limits instead of open-ended lists, and uses native Django 
    -    caches for automatic key eviction and persistence configurability.
    +    with length limits instead of open-ended lists, and removes sparse keys when
    +    no recent failures have been recorded.
         """
     
         error_msg = "Too many failed attempts; you must wait a few minutes before trying again."
    @@ -65,7 +64,6 @@
             Allows setting of throttle parameters.
     
             Keyword Args:
    -            name (str): Name of this throttle.
                 limit (int): Max number of failures before imposing limiter
                 timeout (int): number of timeout seconds after
                     max number of tries has been reached.
    @@ -73,37 +71,9 @@
                     rolling window; this is NOT the same as the limit after which
                     the throttle is imposed!
             """
    -        try:
    -            self.storage = caches['throttle']
    -        except Exception as e:
    -            logger.log_trace("Throttle: Errors encountered; using default cache.")
    -            self.storage = caches['default']
    -            
    -        self.name = kwargs.get('name', 'undefined-throttle')
    -        self.limit = kwargs.get("limit", 5)
    -        self.cache_size = kwargs.get('cache_size', self.limit)
    +        self.storage = defaultdict(deque)
    +        self.cache_size = self.limit = kwargs.get("limit", 5)
             self.timeout = kwargs.get("timeout", 5 * 60)
    - -
    [docs] def get_cache_key(self, *args, **kwargs): - """ - Creates a 'prefixed' key containing arbitrary terms to prevent key - collisions in the same namespace. - - """ - return '-'.join((self.name, *args))
    - -
    [docs] def touch(self, key, *args, **kwargs): - """ - Refreshes the timeout on a given key and ensures it is recorded in the - key register. - - Args: - key(str): Key of entry to renew. - - """ - cache_key = self.get_cache_key(key) - if self.storage.touch(cache_key, self.timeout): - self.record_key(key)
    [docs] def get(self, ip=None): """ @@ -121,18 +91,9 @@ """ if ip: - cache_key = self.get_cache_key(str(ip)) - return self.storage.get(cache_key, deque(maxlen=self.cache_size)) + return self.storage.get(ip, deque(maxlen=self.cache_size)) else: - keys_key = self.get_cache_key('keys') - keys = self.storage.get_or_set(keys_key, set(), self.timeout) - data = self.storage.get_many((self.get_cache_key(x) for x in keys)) - - found_keys = set(data.keys()) - if len(keys) != len(found_keys): - self.storage.set(keys_key, found_keys, self.timeout) - - return data
    + return self.storage
    [docs] def update(self, ip, failmsg="Exceeded threshold."): """ @@ -147,77 +108,24 @@ None """ - cache_key = self.get_cache_key(ip) - # Get current status previously_throttled = self.check(ip) - # Get previous failures, if any - entries = self.storage.get(cache_key, []) - entries.append(time.time()) - - # Store updated record - self.storage.set(cache_key, deque(entries, maxlen=self.cache_size), self.timeout) + # Enforce length limits + if not self.storage[ip].maxlen: + self.storage[ip] = deque(maxlen=self.cache_size) + + self.storage[ip].append(time.time()) # See if this update caused a change in status currently_throttled = self.check(ip) # If this makes it engage, log a single activation event if not previously_throttled and currently_throttled: - logger.log_sec(f"Throttle Activated: {failmsg} (IP: {ip}, {self.limit} hits in {self.timeout} seconds.)") - - self.record_ip(ip)
    - -
    [docs] def remove(self, ip, *args, **kwargs): - """ - Clears data stored for an IP from the throttle. - - Args: - ip(str): IP to clear. - - """ - exists = self.get(ip) - if not exists: return False - - cache_key = self.get_cache_key(ip) - self.storage.delete(cache_key) - self.unrecord_ip(ip) - - # Return True if NOT exists - return ~bool(self.get(ip))
    - -
    [docs] def record_ip(self, ip, *args, **kwargs): - """ - Tracks keys as they are added to the cache (since there is no way to - get a list of keys after-the-fact). - - Args: - ip(str): IP being added to cache. This should be the original - IP, not the cache-prefixed key. - - """ - keys_key = self.get_cache_key('keys') - keys = self.storage.get(keys_key, set()) - keys.add(ip) - self.storage.set(keys_key, keys, self.timeout) - return True
    - -
    [docs] def unrecord_ip(self, ip, *args, **kwargs): - """ - Forces removal of a key from the key registry. - - Args: - ip(str): IP to remove from list of keys. - - """ - keys_key = self.get_cache_key('keys') - keys = self.storage.get(keys_key, set()) - try: - keys.remove(ip) - self.storage.set(keys_key, keys, self.timeout) - return True - except KeyError: - return False
    + logger.log_sec( + "Throttle Activated: %s (IP: %s, %i hits in %i seconds.)" + % (failmsg, ip, self.limit, self.timeout) + )
    [docs] def check(self, ip): """ @@ -235,20 +143,17 @@ """ now = time.time() ip = str(ip) - - cache_key = self.get_cache_key(ip) # checking mode - latest_fails = self.storage.get(cache_key) + latest_fails = self.storage[ip] if latest_fails and len(latest_fails) >= self.limit: # too many fails recently if now - latest_fails[-1] < self.timeout: # too soon - timeout in play - self.touch(cache_key) return True else: # timeout has passed. clear faillist - self.remove(ip) + del self.storage[ip] return False else: return False
    @@ -279,6 +184,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/server/validators.html b/docs/0.9.5/_modules/evennia/server/validators.html index 4e6044ae92..0d1e242c46 100644 --- a/docs/0.9.5/_modules/evennia/server/validators.html +++ b/docs/0.9.5/_modules/evennia/server/validators.html @@ -156,6 +156,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/server/webserver.html b/docs/0.9.5/_modules/evennia/server/webserver.html index c0d50a76fc..bbd63713c6 100644 --- a/docs/0.9.5/_modules/evennia/server/webserver.html +++ b/docs/0.9.5/_modules/evennia/server/webserver.html @@ -366,6 +366,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/typeclasses/admin.html b/docs/0.9.5/_modules/evennia/typeclasses/admin.html index e5b1a7fb70..2fbecfa6ea 100644 --- a/docs/0.9.5/_modules/evennia/typeclasses/admin.html +++ b/docs/0.9.5/_modules/evennia/typeclasses/admin.html @@ -410,6 +410,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/typeclasses/attributes.html b/docs/0.9.5/_modules/evennia/typeclasses/attributes.html index 507040ff99..a83d3b6a24 100644 --- a/docs/0.9.5/_modules/evennia/typeclasses/attributes.html +++ b/docs/0.9.5/_modules/evennia/typeclasses/attributes.html @@ -53,8 +53,6 @@ import fnmatch import weakref -from collections import defaultdict - from django.db import models from django.conf import settings from django.utils.encoding import smart_str @@ -74,7 +72,7 @@ # ------------------------------------------------------------- -
    [docs]class IAttribute: +
    [docs]class Attribute(SharedMemoryModel): """ Attributes are things that are specific to different types of objects. For example, a drink container needs to store its fill level, whereas an exit @@ -96,112 +94,6 @@ - category (str): Optional character string for grouping the Attribute. - This class is an API/Interface/Abstract base class; do not instantiate it directly. - """ - -
    [docs] @lazy_property - def locks(self): - return LockHandler(self)
    - - key = property(lambda self: self.db_key) - strvalue = property(lambda self: self.db_strvalue) - category = property(lambda self: self.db_category) - model = property(lambda self: self.db_model) - attrtype = property(lambda self: self.db_attrtype) - date_created = property(lambda self: self.db_date_created) - - def __lock_storage_get(self): - return self.db_lock_storage - - def __lock_storage_set(self, value): - self.db_lock_storage = value - - def __lock_storage_del(self): - self.db_lock_storage = "" - - lock_storage = property(__lock_storage_get, __lock_storage_set, __lock_storage_del) - -
    [docs] def access(self, accessing_obj, access_type="read", default=False, **kwargs): - """ - Determines if another object has permission to access. - - Args: - accessing_obj (object): Entity trying to access this one. - access_type (str, optional): Type of access sought, see - the lock documentation. - default (bool, optional): What result to return if no lock - of access_type was found. The default, `False`, means a lockdown - policy, only allowing explicit access. - kwargs (any, optional): Not used; here to make the API consistent with - other access calls. - - Returns: - result (bool): If the lock was passed or not. - - """ - result = self.locks.check(accessing_obj, access_type=access_type, default=default) - return result
    - - # - # - # Attribute methods - # - # - - def __str__(self): - return smart_str("%s(%s)" % (self.db_key, self.id)) - - def __repr__(self): - return "%s(%s)" % (self.db_key, self.id)
    - - -
    [docs]class InMemoryAttribute(IAttribute): - """ - This Attribute is used purely for NAttributes/NAttributeHandler. It has no database backend. - """ - - # Primary Key has no meaning for an InMemoryAttribute. This merely serves to satisfy other code. - -
    [docs] def __init__(self, pk, **kwargs): - """ - Create an Attribute that exists only in Memory. - - Args: - pk (int): This is a fake 'primary key' / id-field. It doesn't actually have to be unique, but is fed an - incrementing number from the InMemoryBackend by default. This is needed only so Attributes can be - sorted. Some parts of the API also see the lack of a .pk field as a sign that the Attribute was - deleted. - **kwargs: Other keyword arguments are used to construct the actual Attribute. - """ - self.id = pk - self.pk = pk - - # Copy all kwargs to local properties. We use db_ for compatability here. - for key, value in kwargs.items(): - # Value and locks are special. We must call the wrappers. - if key == "value": - self.value = value - elif key == "lock_storage": - self.lock_storage = value - else: - setattr(self, f"db_{key}", value)
    - - # value property (wraps db_value) - def __value_get(self): - return self.db_value - - def __value_set(self, new_value): - self.db_value = new_value - - def __value_del(self): - pass - - value = property(__value_get, __value_set, __value_del)
    - - -
    [docs]class Attribute(IAttribute, SharedMemoryModel): - """ - This attribute is stored via Django. Most Attributes will be using this class. """ # @@ -258,10 +150,35 @@ # Database manager # objects = managers.AttributeManager() +
    [docs] @lazy_property + def locks(self): + return LockHandler(self)
    + class Meta(object): "Define Django meta options" verbose_name = "Evennia Attribute" + # read-only wrappers + key = property(lambda self: self.db_key) + strvalue = property(lambda self: self.db_strvalue) + category = property(lambda self: self.db_category) + model = property(lambda self: self.db_model) + attrtype = property(lambda self: self.db_attrtype) + date_created = property(lambda self: self.db_date_created) + + def __lock_storage_get(self): + return self.db_lock_storage + + def __lock_storage_set(self, value): + self.db_lock_storage = value + self.save(update_fields=["db_lock_storage"]) + + def __lock_storage_del(self): + self.db_lock_storage = "" + self.save(update_fields=["db_lock_storage"]) + + lock_storage = property(__lock_storage_get, __lock_storage_set, __lock_storage_del) + # Wrapper properties to easily set database fields. These are # @property decorators that allows to access these fields using # normal python operations (without having to remember to save() @@ -270,20 +187,6 @@ # value = self.attr and del self.attr respectively (where self # is the object in question). - # lock_storage wrapper. Overloaded for saving to database. - def __lock_storage_get(self): - return self.db_lock_storage - - def __lock_storage_set(self, value): - super().__lock_storage_set(value) - self.save(update_fields=["db_lock_storage"]) - - def __lock_storage_del(self): - super().__lock_storage_del() - self.save(update_fields=["db_lock_storage"]) - - lock_storage = property(__lock_storage_get, __lock_storage_set, __lock_storage_del) - # value property (wraps db_value) # @property def __value_get(self): @@ -302,6 +205,7 @@ see self.__value_get. """ self.db_value = to_pickle(new_value) + # print("value_set, self.db_value:", repr(self.db_value)) # DEBUG self.save(update_fields=["db_value"]) # @value.deleter @@ -309,7 +213,40 @@ """Deleter. Allows for del attr.value. This removes the entire attribute.""" self.delete() - value = property(__value_get, __value_set, __value_del)
    + value = property(__value_get, __value_set, __value_del) + + # + # + # Attribute methods + # + # + + def __str__(self): + return smart_str("%s[category=%s](#%s)" % (self.db_key, self.db_category, self.id)) + + def __repr__(self): + return "%s[category=%s](#%s)" % (self.db_key, self.db_category, self.id) + +
    [docs] def access(self, accessing_obj, access_type="attrread", default=False, **kwargs): + """ + Determines if another object has permission to access. + + Args: + accessing_obj (object): Entity trying to access this one. + access_type (str, optional): Type of access sought, see + the lock documentation. + default (bool, optional): What result to return if no lock + of access_type was found. The default, `False`, means a lockdown + policy, only allowing explicit access. + kwargs (any, optional): Not used; here to make the API consistent with + other access calls. + + Returns: + result (bool): If the lock was passed or not. + + """ + result = self.locks.check(accessing_obj, access_type=access_type, default=default) + return result
    # @@ -317,145 +254,59 @@ # -
    [docs]class IAttributeBackend: +
    [docs]class AttributeHandler(object): """ - Abstract interface for the backends used by the Attribute Handler. - - All Backends must implement this base class. + Handler for adding Attributes to the object. """ + _m2m_fieldname = "db_attributes" _attrcreate = "attrcreate" _attredit = "attredit" _attrread = "attrread" - _attrclass = None + _attrtype = None -
    [docs] def __init__(self, handler, attrtype): - self.handler = handler - self.obj = handler.obj - self._attrtype = attrtype - self._objid = handler.obj.id +
    [docs] def __init__(self, obj): + """Initialize handler.""" + self.obj = obj + self._objid = obj.id + self._model = to_str(obj.__dbclass__.__name__.lower()) self._cache = {} # store category names fully cached self._catcache = {} # full cache was run on all attributes self._cache_complete = False
    -
    [docs] def query_all(self): - """ - Fetch all Attributes from this object. + def _query_all(self): + "Fetch all Attributes on this object" + query = { + "%s__id" % self._model: self._objid, + "attribute__db_model__iexact": self._model, + "attribute__db_attrtype": self._attrtype, + } + return [ + conn.attribute + for conn in getattr(self.obj, self._m2m_fieldname).through.objects.filter(**query) + ] - Returns: - attrlist (list): A list of Attribute objects. - """ - raise NotImplementedError()
    - -
    [docs] def query_key(self, key, category): - """ - - Args: - key (str): The key of the Attribute being searched for. - category (str or None): The category of the desired Attribute. - - Returns: - attribute (IAttribute): A single Attribute. - """ - raise NotImplementedError()
    - -
    [docs] def query_category(self, category): - """ - Returns every matching Attribute as a list, given a category. - - This method calls up whatever storage the backend uses. - - Args: - category (str or None): The category to query. - - Returns: - attrs (list): The discovered Attributes. - """ - raise NotImplementedError()
    - - def _full_cache(self): + def _fullcache(self): """Cache all attributes of this object""" if not _TYPECLASS_AGGRESSIVE_CACHE: return - attrs = self.query_all() - self._cache = { - f"{to_str(attr.key).lower()}-{attr.category.lower() if attr.category else None}": attr + attrs = self._query_all() + self._cache = dict( + ( + "%s-%s" + % ( + to_str(attr.db_key).lower(), + attr.db_category.lower() if attr.db_category is not None else None, + ), + attr, + ) for attr in attrs - } + ) self._cache_complete = True - def _get_cache_key(self, key, category): - """ - - - Args: - key (str): The key of the Attribute being searched for. - category (str or None): The category of the desired Attribute. - - Returns: - attribute (IAttribute): A single Attribute. - """ - cachekey = "%s-%s" % (key, category) - cachefound = False - try: - attr = _TYPECLASS_AGGRESSIVE_CACHE and self._cache[cachekey] - cachefound = True - except KeyError: - attr = None - - if attr and (not hasattr(attr, "pk") and attr.pk is None): - # clear out Attributes deleted from elsewhere. We must search this anew. - attr = None - cachefound = False - del self._cache[cachekey] - if cachefound and _TYPECLASS_AGGRESSIVE_CACHE: - if attr: - return [attr] # return cached entity - else: - return [] # no such attribute: return an empty list - else: - conn = self.query_key(key, category) - if conn: - attr = conn[0].attribute - if _TYPECLASS_AGGRESSIVE_CACHE: - self._cache[cachekey] = attr - return [attr] if attr.pk else [] - else: - # There is no such attribute. We will explicitly save that - # in our cache to avoid firing another query if we try to - # retrieve that (non-existent) attribute again. - if _TYPECLASS_AGGRESSIVE_CACHE: - self._cache[cachekey] = None - return [] - - def _get_cache_category(self, category): - """ - Retrieves Attribute list (by category) from cache. - - Args: - category (str or None): The category to query. - - Returns: - attrs (list): The discovered Attributes. - """ - catkey = "-%s" % category - if _TYPECLASS_AGGRESSIVE_CACHE and catkey in self._catcache: - return [attr for key, attr in self._cache.items() if key.endswith(catkey) and attr] - else: - # we have to query to make this category up-date in the cache - attrs = self.query_category(category) - if _TYPECLASS_AGGRESSIVE_CACHE: - for attr in attrs: - if attr.pk: - cachekey = "%s-%s" % (attr.key, category) - self._cache[cachekey] = attr - # mark category cache as up-to-date - self._catcache[catkey] = True - return attrs - - def _get_cache(self, key=None, category=None): + def _getcache(self, key=None, category=None): """ Retrieve from cache or database (always caches) @@ -481,31 +332,85 @@ key = key.strip().lower() if key else None category = category.strip().lower() if category is not None else None if key: - return self._get_cache_key(key, category) - return self._get_cache_category(category) + cachekey = "%s-%s" % (key, category) + cachefound = False + try: + attr = _TYPECLASS_AGGRESSIVE_CACHE and self._cache[cachekey] + cachefound = True + except KeyError: + attr = None -
    [docs] def get(self, key=None, category=None): - """ - Frontend for .get_cache. Retrieves Attribute(s). + if attr and (not hasattr(attr, "pk") and attr.pk is None): + # clear out Attributes deleted from elsewhere. We must search this anew. + attr = None + cachefound = False + del self._cache[cachekey] + if cachefound and _TYPECLASS_AGGRESSIVE_CACHE: + if attr: + return [attr] # return cached entity + else: + return [] # no such attribute: return an empty list + else: + query = { + "%s__id" % self._model: self._objid, + "attribute__db_model__iexact": self._model, + "attribute__db_attrtype": self._attrtype, + "attribute__db_key__iexact": key.lower(), + "attribute__db_category__iexact": category.lower() if category else None, + } + if not self.obj.pk: + return [] + conn = getattr(self.obj, self._m2m_fieldname).through.objects.filter(**query) + if conn: + attr = conn[0].attribute + if _TYPECLASS_AGGRESSIVE_CACHE: + self._cache[cachekey] = attr + return [attr] if attr.pk else [] + else: + # There is no such attribute. We will explicitly save that + # in our cache to avoid firing another query if we try to + # retrieve that (non-existent) attribute again. + if _TYPECLASS_AGGRESSIVE_CACHE: + self._cache[cachekey] = None + return [] + else: + # only category given (even if it's None) - we can't + # assume the cache to be complete unless we have queried + # for this category before + catkey = "-%s" % category + if _TYPECLASS_AGGRESSIVE_CACHE and catkey in self._catcache: + return [attr for key, attr in self._cache.items() if key.endswith(catkey) and attr] + else: + # we have to query to make this category up-date in the cache + query = { + "%s__id" % self._model: self._objid, + "attribute__db_model__iexact": self._model, + "attribute__db_attrtype": self._attrtype, + "attribute__db_category__iexact": category.lower() if category else None, + } + attrs = [ + conn.attribute + for conn in getattr(self.obj, self._m2m_fieldname).through.objects.filter( + **query + ) + ] + if _TYPECLASS_AGGRESSIVE_CACHE: + for attr in attrs: + if attr.pk: + cachekey = "%s-%s" % (attr.db_key, category) + self._cache[cachekey] = attr + # mark category cache as up-to-date + self._catcache[catkey] = True + return attrs - Args: - key (str, optional): Attribute key to query for - category (str, optional): Attribiute category - - Returns: - args (list): Returns a list of zero or more matches - found from cache or database. - """ - return self._get_cache(key, category)
    - - def _set_cache(self, key, category, attr_obj): + def _setcache(self, key, category, attr_obj): """ Update cache. Args: key (str): A cleaned key string category (str or None): A cleaned category name - attr_obj (IAttribute): The newly saved attribute + attr_obj (Attribute): The newly saved attribute """ if not _TYPECLASS_AGGRESSIVE_CACHE: @@ -519,7 +424,7 @@ self._catcache.pop(catkey, None) self._cache_complete = False - def _delete_cache(self, key, category): + def _delcache(self, key, category): """ Remove attribute from cache @@ -542,7 +447,7 @@ self._catcache.pop(catkey, None) self._cache_complete = False -
    [docs] def reset_cache(self): +
    [docs] def reset_cache(self): """ Reset cache from the outside. """ @@ -550,431 +455,6 @@ self._cache = {} self._catcache = {}
    -
    [docs] def do_create_attribute(self, key, category, lockstring, value, strvalue): - """ - Does the hard work of actually creating Attributes, whatever is needed. - - Args: - key (str): The Attribute's key. - category (str or None): The Attribute's category, or None - lockstring (str): Any locks for the Attribute. - value (obj): The Value of the Attribute. - strvalue (bool): Signifies if this is a strvalue Attribute. Value MUST be a string or - this will lead to Trouble. Ignored for InMemory attributes. - - Returns: - attr (IAttribute): The new Attribute. - """ - raise NotImplementedError()
    - -
    [docs] def create_attribute(self, key, category, lockstring, value, strvalue=False, cache=True): - """ - Creates Attribute (using the class specified for the backend), (optionally) caches it, and returns it. - - This MUST actively save the Attribute to whatever database backend is used, AND - call self.set_cache(key, category, new_attrobj) - - Args: - key (str): The Attribute's key. - category (str or None): The Attribute's category, or None - lockstring (str): Any locks for the Attribute. - value (obj): The Value of the Attribute. - strvalue (bool): Signifies if this is a strvalue Attribute. Value MUST be a string or - this will lead to Trouble. Ignored for InMemory attributes. - cache (bool): Whether to cache the new Attribute - - Returns: - attr (IAttribute): The new Attribute. - """ - attr = self.do_create_attribute(key, category, lockstring, value, strvalue) - if cache: - self._set_cache(key, category, attr) - return attr
    - -
    [docs] def do_update_attribute(self, attr, value): - """ - Simply sets a new Value to an Attribute. - - Args: - attr (IAttribute): The Attribute being changed. - value (obj): The Value for the Attribute. - - """ - raise NotImplementedError()
    - -
    [docs] def do_batch_update_attribute(self, attr_obj, category, lock_storage, new_value, strvalue): - """ - Called opnly by batch add. For the database backend, this is a method - of updating that can alter category and lock-storage. - - Args: - attr_obj (IAttribute): The Attribute being altered. - category (str or None): The attribute's (new) category. - lock_storage (str): The attribute's new locks. - new_value (obj): The Attribute's new value. - strvalue (bool): Signifies if this is a strvalue Attribute. Value MUST be a string or - this will lead to Trouble. Ignored for InMemory attributes. - """ - raise NotImplementedError()
    - -
    [docs] def do_batch_finish(self, attr_objs): - """ - Called after batch_add completed. Used for handling database operations - and/or caching complications. - - Args: - attr_objs (list of IAttribute): The Attributes created/updated thus far. - - """ - raise NotImplementedError()
    - -
    [docs] def batch_add(self, *args, **kwargs): - """ - Batch-version of `.add()`. This is more efficient than repeat-calling - `.add` when having many Attributes to add. - - Args: - *args (tuple): Tuples of varying length representing the - Attribute to add to this object. Supported tuples are - - - (key, value) - - (key, value, category) - - (key, value, category, lockstring) - - (key, value, category, lockstring, default_access) - - Raises: - RuntimeError: If trying to pass a non-iterable as argument. - - Notes: - The indata tuple order matters, so if you want a lockstring but no - category, set the category to `None`. This method does not have the - ability to check editing permissions and is mainly used internally. - It does not use the normal `self.add` but applies the Attributes - directly to the database. - - """ - new_attrobjs = [] - strattr = kwargs.get("strattr", False) - for tup in args: - if not is_iter(tup) or len(tup) < 2: - raise RuntimeError("batch_add requires iterables as arguments (got %r)." % tup) - ntup = len(tup) - keystr = str(tup[0]).strip().lower() - new_value = tup[1] - category = str(tup[2]).strip().lower() if ntup > 2 and tup[2] is not None else None - lockstring = tup[3] if ntup > 3 else "" - - attr_objs = self._get_cache(keystr, category) - - if attr_objs: - attr_obj = attr_objs[0] - # update an existing attribute object - self.do_batch_update_attribute(attr_obj, category, lockstring, new_value, strattr) - else: - new_attr = self.do_create_attribute( - keystr, category, lockstring, new_value, strvalue=strattr - ) - new_attrobjs.append(new_attr) - if new_attrobjs: - self.do_batch_finish(new_attrobjs)
    - -
    [docs] def do_delete_attribute(self, attr): - """ - Does the hard work of actually deleting things. - - Args: - attr (IAttribute): The attribute to delete. - """ - raise NotImplementedError()
    - -
    [docs] def delete_attribute(self, attr): - """ - Given an Attribute, deletes it. Also remove it from cache. - - Args: - attr (IAttribute): The attribute to delete. - """ - if not attr: - return - self._delete_cache(attr.key, attr.category) - self.do_delete_attribute(attr)
    - -
    [docs] def update_attribute(self, attr, value): - """ - Simply updates an Attribute. - - Args: - attr (IAttribute): The attribute to delete. - value (obj): The new value. - """ - self.do_update_attribute(attr, value)
    - -
    [docs] def do_batch_delete(self, attribute_list): - """ - Given a list of attributes, deletes them all. - The default implementation is fine, but this is overridable since some databases may allow - for a better method. - - Args: - attribute_list (list of IAttribute): - """ - for attribute in attribute_list: - self.delete_attribute(attribute)
    - -
    [docs] def clear_attributes(self, category, accessing_obj, default_access): - """ - Remove all Attributes on this object. - - Args: - category (str, optional): If given, clear only Attributes - of this category. - accessing_obj (object, optional): If given, check the - `attredit` lock on each Attribute before continuing. - default_access (bool, optional): Use this permission as - fallback if `access_obj` is given but there is no lock of - type `attredit` on the Attribute in question. - - """ - category = category.strip().lower() if category is not None else None - - if not self._cache_complete: - self._full_cache() - - if category is not None: - attrs = [attr for attr in self._cache.values() if attr.category == category] - else: - attrs = self._cache.values() - - if accessing_obj: - self.do_batch_delete( - [ - attr - for attr in attrs - if attr.access(accessing_obj, self._attredit, default=default_access) - ] - ) - else: - # have to cast the results to a list or we'll get a RuntimeError for removing from the dict we're iterating - self.do_batch_delete(list(attrs)) - self.reset_cache()
    - -
    [docs] def get_all_attributes(self): - """ - Simply returns all Attributes of this object, sorted by their IDs. - - Returns: - attributes (list of IAttribute) - """ - if _TYPECLASS_AGGRESSIVE_CACHE: - if not self._cache_complete: - self._full_cache() - return sorted([attr for attr in self._cache.values() if attr], key=lambda o: o.id) - else: - return sorted([attr for attr in self.query_all() if attr], key=lambda o: o.id)
    - - -
    [docs]class InMemoryAttributeBackend(IAttributeBackend): - """ - This Backend for Attributes stores NOTHING in the database. Everything is kept in memory, and normally lost - on a crash, reload, shared memory flush, etc. It generates IDs for the Attributes it manages, but these are - of little importance beyond sorting and satisfying the caching logic to know an Attribute hasn't been - deleted out from under the cache's nose. - - """ - - _attrclass = InMemoryAttribute - -
    [docs] def __init__(self, handler, attrtype): - super().__init__(handler, attrtype) - self._storage = dict() - self._category_storage = defaultdict(list) - self._id_counter = 0
    - - def _next_id(self): - """ - Increments the internal ID counter and returns the new value. - - Returns: - next_id (int): A simple integer. - """ - self._id_counter += 1 - return self._id_counter - -
    [docs] def query_all(self): - return self._storage.values()
    - -
    [docs] def query_key(self, key, category): - found = self._storage.get((key, category), None) - if found: - return [found] - return []
    - -
    [docs] def query_category(self, category): - if category is None: - return self._storage.values() - return self._category_storage.get(category, [])
    - -
    [docs] def do_create_attribute(self, key, category, lockstring, value, strvalue): - """ - See parent class. - - strvalue has no meaning for InMemory attributes. - - """ - new_attr = self._attrclass( - pk=self._next_id(), key=key, category=category, lock_storage=lockstring, value=value - ) - self._storage[(key, category)] = new_attr - self._category_storage[category].append(new_attr) - return new_attr
    - -
    [docs] def do_update_attribute(self, attr, value): - attr.value = value
    - -
    [docs] def do_batch_update_attribute(self, attr_obj, category, lock_storage, new_value, strvalue): - """ - No need to bother saving anything. Just set some values. - """ - attr_obj.db_category = category - attr_obj.db_lock_storage = lock_storage if lock_storage else "" - attr_obj.value = new_value
    - -
    [docs] def do_batch_finish(self, attr_objs): - """ - Nothing to do here for In-Memory. - - Args: - attr_objs (list of IAttribute): The Attributes created/updated thus far. - """ - pass
    - -
    [docs] def do_delete_attribute(self, attr): - """ - Removes the Attribute from local storage. Once it's out of the cache, garbage collection will handle the rest. - - Args: - attr (IAttribute): The attribute to delete. - """ - del self._storage[(attr.key, attr.category)] - self._category_storage[attr.category].remove(attr)
    - - -
    [docs]class ModelAttributeBackend(IAttributeBackend): - """ - Uses Django models for storing Attributes. - """ - - _attrclass = Attribute - _m2m_fieldname = "db_attributes" - -
    [docs] def __init__(self, handler, attrtype): - super().__init__(handler, attrtype) - self._model = to_str(handler.obj.__dbclass__.__name__.lower())
    - -
    [docs] def query_all(self): - query = { - "%s__id" % self._model: self._objid, - "attribute__db_model__iexact": self._model, - "attribute__db_attrtype": self._attrtype, - } - return [ - conn.attribute - for conn in getattr(self.obj, self._m2m_fieldname).through.objects.filter(**query) - ]
    - -
    [docs] def query_key(self, key, category): - query = { - "%s__id" % self._model: self._objid, - "attribute__db_model__iexact": self._model, - "attribute__db_attrtype": self._attrtype, - "attribute__db_key__iexact": key.lower(), - "attribute__db_category__iexact": category.lower() if category else None, - } - if not self.obj.pk: - return [] - return getattr(self.obj, self._m2m_fieldname).through.objects.filter(**query)
    - -
    [docs] def query_category(self, category): - query = { - "%s__id" % self._model: self._objid, - "attribute__db_model__iexact": self._model, - "attribute__db_attrtype": self._attrtype, - "attribute__db_category__iexact": category.lower() if category else None, - } - return [ - conn.attribute - for conn in getattr(self.obj, self._m2m_fieldname).through.objects.filter(**query) - ]
    - -
    [docs] def do_create_attribute(self, key, category, lockstring, value, strvalue): - kwargs = { - "db_key": key, - "db_category": category, - "db_model": self._model, - "db_lock_storage": lockstring if lockstring else "", - "db_attrtype": self._attrtype, - } - if strvalue: - kwargs["db_value"] = None - kwargs["db_strvalue"] = value - else: - kwargs["db_value"] = to_pickle(value) - kwargs["db_strvalue"] = None - new_attr = self._attrclass(**kwargs) - new_attr.save() - getattr(self.obj, self._m2m_fieldname).add(new_attr) - self._set_cache(key, category, new_attr) - return new_attr
    - -
    [docs] def do_update_attribute(self, attr, value): - attr.value = value
    - -
    [docs] def do_batch_update_attribute(self, attr_obj, category, lock_storage, new_value, strvalue): - attr_obj.db_category = category - attr_obj.db_lock_storage = lock_storage if lock_storage else "" - if strvalue: - # store as a simple string (will not notify OOB handlers) - attr_obj.db_strvalue = new_value - attr_obj.value = None - else: - # store normally (this will also notify OOB handlers) - attr_obj.value = new_value - attr_obj.db_strvalue = None - attr_obj.save(update_fields=["db_strvalue", "db_value", "db_category", "db_lock_storage"])
    - -
    [docs] def do_batch_finish(self, attr_objs): - # Add new objects to m2m field all at once - getattr(self.obj, self._m2m_fieldname).add(*attr_objs)
    - -
    [docs] def do_delete_attribute(self, attr): - try: - attr.delete() - except AssertionError: - # This could happen if the Attribute has already been deleted. - pass
    - - -
    [docs]class AttributeHandler: - """ - Handler for adding Attributes to the object. - """ - - _attrcreate = "attrcreate" - _attredit = "attredit" - _attrread = "attrread" - _attrtype = None - -
    [docs] def __init__(self, obj, backend_class): - """ - Setup the AttributeHandler. - - Args: - obj (TypedObject): An Account, Object, Channel, ServerSession (not technically a typed object), etc. - backend_class (IAttributeBackend class): The class of the backend to use. - """ - self.obj = obj - self.backend = backend_class(self, self._attrtype)
    -
    [docs] def has(self, key=None, category=None): """ Checks if the given Attribute (or list of Attributes) exists on @@ -996,7 +476,7 @@ category = category.strip().lower() if category is not None else None for keystr in make_iter(key): keystr = key.strip().lower() - ret.extend(bool(attr) for attr in self.backend.get(keystr, category)) + ret.extend(bool(attr) for attr in self._getcache(keystr, category)) return ret[0] if len(ret) == 1 else ret
    [docs] def get( @@ -1054,7 +534,7 @@ ret = [] for keystr in make_iter(key): # it's okay to send a None key - attr_objs = self.backend.get(keystr, category) + attr_objs = self._getcache(keystr, category) if attr_objs: ret.extend(attr_objs) elif raise_exception: @@ -1119,16 +599,35 @@ return category = category.strip().lower() if category is not None else None + keystr = key.strip().lower() - attr_obj = self.backend.get(key, category) + attr_obj = self._getcache(key, category) if attr_obj: # update an existing attribute object attr_obj = attr_obj[0] - self.backend.update_attribute(attr_obj, value) + if strattr: + # store as a simple string (will not notify OOB handlers) + attr_obj.db_strvalue = value + attr_obj.save(update_fields=["db_strvalue"]) + else: + # store normally (this will also notify OOB handlers) + attr_obj.value = value else: # create a new Attribute (no OOB handlers can be notified) - self.backend.create_attribute(keystr, category, lockstring, value, strattr)
    + kwargs = { + "db_key": keystr, + "db_category": category, + "db_model": self._model, + "db_attrtype": self._attrtype, + "db_value": None if strattr else to_pickle(value), + "db_strvalue": value if strattr else None, + } + new_attr = Attribute(**kwargs) + new_attr.save() + getattr(self.obj, self._m2m_fieldname).add(new_attr) + # update cache + self._setcache(keystr, category, new_attr)
    [docs] def batch_add(self, *args, **kwargs): """ @@ -1140,10 +639,10 @@ length) representing the Attribute to add to this object. Supported tuples are - - (key, value) - - (key, value, category) - - (key, value, category, lockstring) - - (key, value, category, lockstring, default_access) + - `(key, value)` + - `(key, value, category)` + - `(key, value, category, lockstring)` + - `(key, value, category, lockstring, default_access)` Keyword Args: strattr (bool): If `True`, value must be a string. This @@ -1163,7 +662,50 @@ to the database. """ - self.backend.batch_add(*args, **kwargs)
    + new_attrobjs = [] + strattr = kwargs.get("strattr", False) + for tup in args: + if not is_iter(tup) or len(tup) < 2: + raise RuntimeError("batch_add requires iterables as arguments (got %r)." % tup) + ntup = len(tup) + keystr = str(tup[0]).strip().lower() + new_value = tup[1] + category = str(tup[2]).strip().lower() if ntup > 2 and tup[2] is not None else None + lockstring = tup[3] if ntup > 3 else "" + + attr_objs = self._getcache(keystr, category) + + if attr_objs: + attr_obj = attr_objs[0] + # update an existing attribute object + attr_obj.db_category = category + attr_obj.db_lock_storage = lockstring or "" + attr_obj.save(update_fields=["db_category", "db_lock_storage"]) + if strattr: + # store as a simple string (will not notify OOB handlers) + attr_obj.db_strvalue = new_value + attr_obj.save(update_fields=["db_strvalue"]) + else: + # store normally (this will also notify OOB handlers) + attr_obj.value = new_value + else: + # create a new Attribute (no OOB handlers can be notified) + kwargs = { + "db_key": keystr, + "db_category": category, + "db_model": self._model, + "db_attrtype": self._attrtype, + "db_value": None if strattr else to_pickle(new_value), + "db_strvalue": new_value if strattr else None, + "db_lock_storage": lockstring or "", + } + new_attr = Attribute(**kwargs) + new_attr.save() + new_attrobjs.append(new_attr) + self._setcache(keystr, category, new_attr) + if new_attrobjs: + # Add new objects to m2m field all at once + getattr(self.obj, self._m2m_fieldname).add(*new_attrobjs)
    [docs] def remove( self, @@ -1212,13 +754,20 @@ for keystr in make_iter(key): keystr = keystr.lower() - attr_objs = self.backend.get(keystr, category) + attr_objs = self._getcache(keystr, category) for attr_obj in attr_objs: if not ( accessing_obj and not attr_obj.access(accessing_obj, self._attredit, default=default_access) ): - self.backend.delete_attribute(attr_obj) + try: + attr_obj.delete() + except AssertionError: + print("Assertionerror for attr.delete()") + # this happens if the attr was already deleted + pass + finally: + self._delcache(keystr, category) if not attr_objs and raise_exception: raise AttributeError
    @@ -1236,7 +785,27 @@ type `attredit` on the Attribute in question. """ - self.backend.clear_attributes(category, accessing_obj, default_access)
    + category = category.strip().lower() if category is not None else None + + if not self._cache_complete: + self._fullcache() + + if category is not None: + attrs = [attr for attr in self._cache.values() if attr.category == category] + else: + attrs = self._cache.values() + + if accessing_obj: + [ + attr.delete() + for attr in attrs + if attr and attr.access(accessing_obj, self._attredit, default=default_access) + ] + else: + [attr.delete() for attr in attrs if attr and attr.pk] + self._cache = {} + self._catcache = {} + self._cache_complete = False
    [docs] def all(self, accessing_obj=None, default_access=True): """ @@ -1255,7 +824,12 @@ their values!) in the handler. """ - attrs = self.backend.get_all_attributes() + if _TYPECLASS_AGGRESSIVE_CACHE: + if not self._cache_complete: + self._fullcache() + attrs = sorted([attr for attr in self._cache.values() if attr], key=lambda o: o.id) + else: + attrs = sorted([attr for attr in self._query_all() if attr], key=lambda o: o.id) if accessing_obj: return [ @@ -1264,42 +838,7 @@ if attr.access(accessing_obj, self._attredit, default=default_access) ] else: - return attrs
    - -
    [docs] def reset_cache(self): - self.backend.reset_cache()
    - - -# DbHolders for .db and .ndb properties on Typeclasses. - -_GA = object.__getattribute__ -_SA = object.__setattr__ - - -
    [docs]class DbHolder(object): - "Holder for allowing property access of attributes" - -
    [docs] def __init__(self, obj, name, manager_name="attributes"): - _SA(self, name, _GA(obj, manager_name)) - _SA(self, "name", name)
    - - def __getattribute__(self, attrname): - if attrname == "all": - # we allow to overload our default .all - attr = _GA(self, _GA(self, "name")).get("all") - return attr if attr else _GA(self, "all") - return _GA(self, _GA(self, "name")).get(attrname) - - def __setattr__(self, attrname, value): - _GA(self, _GA(self, "name")).add(attrname, value) - - def __delattr__(self, attrname): - _GA(self, _GA(self, "name")).remove(attrname) - -
    [docs] def get_all(self): - return _GA(self, _GA(self, "name")).get_all_attributes()
    - - all = property(get_all)
    + return attrs # Nick templating @@ -1351,13 +890,13 @@ matched by the in_template. Returns: - regex (regex): Regex to match against strings - template (str): Template with markers ``{arg1}, {arg2}``, etc for - replacement using the standard .format method. + (regex, str): Regex to match against strings and a template + Template with markers `{arg1}`, `{arg2}`, etc for + replacement using the standard `.format` method. Raises: - evennia.typecalasses.attributes.NickTemplateInvalid: If the in/out - template does not have a matching number of `$args`. + attributes.NickTemplateInvalid: If the in/out template does not have a matching + number of $args. """ @@ -1542,6 +1081,95 @@ if is_match: break return raw_string + + +
    [docs]class NAttributeHandler(object): + """ + This stand-alone handler manages non-database saving. + It is similar to `AttributeHandler` and is used + by the `.ndb` handler in the same way as `.db` does + for the `AttributeHandler`. + """ + +
    [docs] def __init__(self, obj): + """ + Initialized on the object + """ + self._store = {} + self.obj = weakref.proxy(obj)
    + +
    [docs] def has(self, key): + """ + Check if object has this attribute or not. + + Args: + key (str): The Nattribute key to check. + + Returns: + has_nattribute (bool): If Nattribute is set or not. + + """ + return key in self._store
    + +
    [docs] def get(self, key): + """ + Get the named key value. + + Args: + key (str): The Nattribute key to get. + + Returns: + the value of the Nattribute. + + """ + return self._store.get(key, None)
    + +
    [docs] def add(self, key, value): + """ + Add new key and value. + + Args: + key (str): The name of Nattribute to add. + value (any): The value to store. + + """ + self._store[key] = value
    + +
    [docs] def remove(self, key): + """ + Remove Nattribute from storage. + + Args: + key (str): The name of the Nattribute to remove. + + """ + if key in self._store: + del self._store[key]
    + +
    [docs] def clear(self): + """ + Remove all NAttributes from handler. + + """ + self._store = {}
    + +
    [docs] def all(self, return_tuples=False): + """ + List the contents of the handler. + + Args: + return_tuples (bool, optional): Defines if the Nattributes + are returns as a list of keys or as a list of `(key, value)`. + + Returns: + nattributes (list): A list of keys `[key, key, ...]` or a + list of tuples `[(key, value), ...]` depending on the + setting of `return_tuples`. + + """ + if return_tuples: + return [(key, value) for (key, value) in self._store.items() if not key.startswith("_")] + return [key for key in self._store if not key.startswith("_")]
    @@ -1569,6 +1197,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/typeclasses/managers.html b/docs/0.9.5/_modules/evennia/typeclasses/managers.html index de1999135f..409edc607f 100644 --- a/docs/0.9.5/_modules/evennia/typeclasses/managers.html +++ b/docs/0.9.5/_modules/evennia/typeclasses/managers.html @@ -75,12 +75,14 @@ self, key=None, category=None, value=None, strvalue=None, obj=None, attrtype=None, **kwargs ): """ - Return Attribute objects by key, by category, by value, by strvalue, by - object (it is stored on) or with a combination of those criteria. + Return Attribute objects by key, by category, by value, by + `strvalue`, by object (it is stored on) or with a combination of + those criteria. Args: - key (str, optional): The attribute's key to search for - category (str, optional): The category of the attribute(s) to search for. + key (str, optional): The attribute's key to search for. + category (str, optional): The category of the attribute(s) + to search for. value (str, optional): The attribute value to search for. Note that this is not a very efficient operation since it will query for a pickled entity. Mutually exclusive to @@ -91,13 +93,13 @@ precedence if given. obj (Object, optional): On which object the Attribute to search for is. - attrype (str, optional): An attribute-type to search for. + attrtype (str, optional): An attribute-type to search for. By default this is either `None` (normal Attributes) or `"nick"`. - **kwargs (any): Currently unused. Reserved for future use. + kwargs (any): Currently unused. Reserved for future use. Returns: - list: The matching Attributes. + attributes (list): The matching Attributes. """ dbmodel = self.model.__dbclass__.__name__.lower() @@ -215,7 +217,7 @@ to search for. obj (Object, optional): On which object the Tag to search for is. - tagtype (str, optional): One of `None` (normal tags), + tagtype (str, optional): One of None (normal tags), "alias" or "permission" global_search (bool, optional): Include all possible tags, not just tags on this object @@ -618,7 +620,7 @@ for parent in (parent for parent in parents if hasattr(parent, "path")): query = query | Q(db_typeclass_path__exact=parent.path) # actually query the database - return super().filter(query) + return self.filter(query) class TypeclassManager(TypedObjectManager): @@ -914,6 +916,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/typeclasses/models.html b/docs/0.9.5/_modules/evennia/typeclasses/models.html index 025560fb25..a7254e7b9f 100644 --- a/docs/0.9.5/_modules/evennia/typeclasses/models.html +++ b/docs/0.9.5/_modules/evennia/typeclasses/models.html @@ -65,6 +65,8 @@ This module also contains the Managers for the respective models; inherit from these to create custom managers. +---- + """ from django.db.models import signals @@ -77,13 +79,7 @@ from django.utils.encoding import smart_str from django.utils.text import slugify -from evennia.typeclasses.attributes import ( - Attribute, - AttributeHandler, - ModelAttributeBackend, - InMemoryAttributeBackend, -) -from evennia.typeclasses.attributes import DbHolder +from evennia.typeclasses.attributes import Attribute, AttributeHandler, NAttributeHandler from evennia.typeclasses.tags import Tag, TagHandler, AliasHandler, PermissionHandler from evennia.utils.idmapper.models import SharedMemoryModel, SharedMemoryModelBase @@ -207,6 +203,35 @@ return new_class +class DbHolder(object): + """ + Holder for allowing property access of attributes. + + """ + + def __init__(self, obj, name, manager_name="attributes"): + _SA(self, name, _GA(obj, manager_name)) + _SA(self, "name", name) + + def __getattribute__(self, attrname): + if attrname == "all": + # we allow to overload our default .all + attr = _GA(self, _GA(self, "name")).get("all") + return attr if attr else _GA(self, "all") + return _GA(self, _GA(self, "name")).get(attrname) + + def __setattr__(self, attrname, value): + _GA(self, _GA(self, "name")).add(attrname, value) + + def __delattr__(self, attrname): + _GA(self, _GA(self, "name")).remove(attrname) + + def get_all(self): + return _GA(self, _GA(self, "name")).all() + + all = property(get_all) + + # # Main TypedObject abstraction # @@ -330,10 +355,8 @@ than use the one in the model. Args: - Passed through to parent. - - Keyword Args: - Passed through to parent. + *args: Passed through to parent. + **kwargs: Passed through to parent. Notes: The loading mechanism will attempt the following steps: @@ -360,7 +383,7 @@ # initialize all handlers in a lazy fashion
    [docs] @lazy_property def attributes(self): - return AttributeHandler(self, ModelAttributeBackend)
    + return AttributeHandler(self)
    [docs] @lazy_property def locks(self): @@ -380,7 +403,7 @@
    [docs] @lazy_property def nattributes(self): - return AttributeHandler(self, InMemoryAttributeBackend)
    + return NAttributeHandler(self)
    [docs] class Meta(object): """ @@ -657,7 +680,7 @@ superuser lock bypass (be careful with this one). Keyword Args: - kwar (any): Ignored, but is there to make the api + kwargs (any): Ignored, but is there to make the api consistent with the object-typeclass method access, which use it to feed to its hook methods. @@ -746,18 +769,18 @@ def __db_get(self): """ Attribute handler wrapper. Allows for the syntax + :: - ```python obj.db.attrname = value - # and + and value = obj.db.attrname - # and + and del obj.db.attrname - # and + and all_attr = obj.db.all() - # (unless there is an attribute - # named 'all', in which case that will be returned instead). - ``` + + (unless there is an attribute named 'all', in which case that will be + returned instead). """ try: @@ -768,14 +791,14 @@ # @db.setter def __db_set(self, value): - "Stop accidentally replacing the db object" + """Stop accidentally replacing the db object""" string = "Cannot assign directly to db object! " string += "Use db.attr=value instead." raise Exception(string) # @db.deleter def __db_del(self): - "Stop accidental deletion." + """Stop accidental deletion.""" raise Exception("Cannot delete the db object!") db = property(__db_get, __db_set, __db_del) @@ -787,10 +810,23 @@ # @property ndb def __ndb_get(self): """ - A non-attr_obj store (ndb: NonDataBase). Everything stored - to this is guaranteed to be cleared when a server is shutdown. - Syntax is same as for the _get_db_holder() method and - property, e.g. obj.ndb.attr = value etc. + A non-attr_obj store (NonDataBase). Everything stored to this is + guaranteed to be cleared when a server is shutdown. Syntax is same as + for the `.db` property, e.g. + :: + + obj.ndb.attrname = value + and + value = obj.ndb.attrname + and + del obj.ndb.attrname + and + all_attr = obj.ndb.all() + + What makes this preferable over just assigning properties directly on + the object is that Evennia can track caching for these properties and + for example avoid wiping objects with set `.ndb` data on cache flushes. + """ try: return self._ndb_holder @@ -895,28 +931,33 @@
    [docs] @classmethod def web_get_create_url(cls): """ + Returns the URI path for a View that allows users to create new instances of this object. - ex. Chargen = '/characters/create/' - - For this to work, the developer must have defined a named view somewhere - in urls.py that follows the format 'modelname-action', so in this case - a named view of 'character-create' would be referenced by this method. - - ex. - url(r'characters/create/', ChargenView.as_view(), name='character-create') - - If no View has been created and defined in urls.py, returns an - HTML anchor. - - This method is naive and simply returns a path. Securing access to - the actual view and limiting who can create new objects is the - developer's responsibility. - Returns: path (str): URI path to object creation page, if defined. + Examples: + :: + + Chargen = '/characters/create/' + + For this to work, the developer must have defined a named view somewhere + in urls.py that follows the format 'modelname-action', so in this case + a named view of 'character-create' would be referenced by this method. + :: + + url(r'characters/create/', ChargenView.as_view(), name='character-create') + + If no View has been created and defined in urls.py, returns an + HTML anchor. + + Notes: + This method is naive and simply returns a path. Securing access to + the actual view and limiting who can create new objects is the + developer's responsibility. + """ try: return reverse("%s-create" % slugify(cls._meta.verbose_name)) @@ -932,24 +973,21 @@ path (str): URI path to object detail page, if defined. Examples: + :: - ```python - Oscar (Character) = '/characters/oscar/1/' - ``` + Oscar (Character) = '/characters/oscar/1/' For this to work, the developer must have defined a named view somewhere in urls.py that follows the format 'modelname-action', so in this case a named view of 'character-detail' would be referenced by this method. + :: - - ```python - url(r'characters/(?P<slug>[\w\d\-]+)/(?P<pk>[0-9]+)/$', CharDetailView.as_view(), name='character-detail') - ``` If no View has been created and defined in urls.py, returns an HTML anchor. + Notes: This method is naive and simply returns a path. Securing access to the actual view and limiting who can view this object is the developer's responsibility. @@ -969,26 +1007,25 @@ object. Returns: - str: URI path to object puppet page, if defined. + path (str): URI path to object puppet page, if defined. Examples: + :: - ```python - Oscar (Character) = '/characters/oscar/1/puppet/' - ``` + Oscar (Character) = '/characters/oscar/1/puppet/' For this to work, the developer must have defined a named view somewhere in urls.py that follows the format 'modelname-action', so in this case a named view of 'character-puppet' would be referenced by this method. + :: - ```python - url(r'characters/(?P<slug>[\w\d\-]+)/(?P<pk>[0-9]+)/puppet/$', - CharPuppetView.as_view(), name='character-puppet') - ``` + url(r'characters/(?P<slug>[\w\d\-]+)/(?P<pk>[0-9]+)/puppet/$', + CharPuppetView.as_view(), name='character-puppet') If no View has been created and defined in urls.py, returns an HTML anchor. + Notes: This method is naive and simply returns a path. Securing access to the actual view and limiting who can view this object is the developer's responsibility. @@ -1009,31 +1046,29 @@ object. Returns: - str: URI path to object update page, if defined. + path (str): URI path to object update page, if defined. Examples: + :: - ```python - Oscar (Character) = '/characters/oscar/1/change/' - ``` + Oscar (Character) = '/characters/oscar/1/change/' For this to work, the developer must have defined a named view somewhere in urls.py that follows the format 'modelname-action', so in this case a named view of 'character-update' would be referenced by this method. + :: - ```python - url(r'characters/(?P<slug>[\w\d\-]+)/(?P<pk>[0-9]+)/change/$', - CharUpdateView.as_view(), name='character-update') - ``` + url(r'characters/(?P<slug>[\w\d\-]+)/(?P<pk>[0-9]+)/change/$', + CharUpdateView.as_view(), name='character-update') If no View has been created and defined in urls.py, returns an HTML anchor. + Notes: This method is naive and simply returns a path. Securing access to the actual view and limiting who can modify objects is the developer's responsibility. - """ try: return reverse( @@ -1051,27 +1086,25 @@ path (str): URI path to object deletion page, if defined. Examples: + :: - ```python - Oscar (Character) = '/characters/oscar/1/delete/' - ``` + Oscar (Character) = '/characters/oscar/1/delete/' - For this to work, the developer must have defined a named view - somewhere in urls.py that follows the format 'modelname-action', so - in this case a named view of 'character-detail' would be referenced - by this method. + For this to work, the developer must have defined a named view somewhere + in urls.py that follows the format 'modelname-action', so in this case + a named view of 'character-detail' would be referenced by this method. + :: - ```python - url(r'characters/(?P<slug>[\w\d\-]+)/(?P<pk>[0-9]+)/delete/$', - CharDeleteView.as_view(), name='character-delete') - ``` + url(r'characters/(?P<slug>[\w\d\-]+)/(?P<pk>[0-9]+)/delete/$', + CharDeleteView.as_view(), name='character-delete') - If no View has been created and defined in urls.py, returns an HTML - anchor. + If no View has been created and defined in urls.py, returns an + HTML anchor. + Notes: This method is naive and simply returns a path. Securing access to - the actual view and limiting who can delete this object is the - developer's responsibility. + the actual view and limiting who can delete this object is the developer's + responsibility. """ @@ -1112,6 +1145,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/typeclasses/tags.html b/docs/0.9.5/_modules/evennia/typeclasses/tags.html index 5186546930..478b1d5b9b 100644 --- a/docs/0.9.5/_modules/evennia/typeclasses/tags.html +++ b/docs/0.9.5/_modules/evennia/typeclasses/tags.html @@ -360,40 +360,6 @@ getattr(self.obj, self._m2m_fieldname).add(tagobj) self._setcache(tagstr, category, tagobj) -
    [docs] def has(self, tag=None, category=None, return_list=False): - """ - Checks if the given Tag (or list of Tags) exists on the object. - - Args: - tag (str or iterable): The Tag key or tags to check for. - If `None`, search by category. - category (str, optional): Limit the check to Tags with this - category (note, that `None` is the default category). - - Returns: - has_tag (bool or list): If the Tag exists on this object or not. - If `tag` was given as an iterable then the return is a list of booleans. - - Raises: - ValueError: If neither `tag` nor `category` is given. - - """ - ret = [] - category = category.strip().lower() if category is not None else None - if tag: - for tag_str in make_iter(tag): - tag_str = tag_str.strip().lower() - ret.extend(bool(tag) for tag in self._getcache(tag_str, category)) - elif category: - ret.extend(bool(tag) for tag in self._getcache(category=category)) - else: - raise ValueError("Either tag or category must be provided.") - - if return_list: - return ret - - return ret[0] if len(ret) == 1 else ret
    -
    [docs] def get(self, key=None, default=None, category=None, return_tagobj=False, return_list=False): """ Get the tag for the given key, category or combination of the two. @@ -596,6 +562,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/utils/ansi.html b/docs/0.9.5/_modules/evennia/utils/ansi.html index 98e8ac6018..cf68f10a99 100644 --- a/docs/0.9.5/_modules/evennia/utils/ansi.html +++ b/docs/0.9.5/_modules/evennia/utils/ansi.html @@ -42,64 +42,19 @@ """ ANSI - Gives colour to text. -Use the codes defined in the *ANSIParser* class to apply colour to text. The -`parse_ansi` function in this module parses text for markup and `strip_ansi` -removes it. +Use the codes defined in ANSIPARSER in your text +to apply colour to text according to the ANSI standard. -You should usually not need to call `parse_ansi` explicitly; it is run by -Evennia just before returning data to/from the user. Alternative markup is -possible by overriding the parser class (see also contrib/ for deprecated -markup schemes). - - -Supported standards: - -- ANSI 8 bright and 8 dark fg (foreground) colors -- ANSI 8 dark bg (background) colors -- 'ANSI' 8 bright bg colors 'faked' with xterm256 (bright bg not included in ANSI standard) -- Xterm256 - 255 fg/bg colors + 26 greyscale fg/bg colors - -## Markup - -ANSI colors: `r` ed, `g` reen, `y` ellow, `b` lue, `m` agenta, `c` yan, `n` ormal (no color). Capital -letters indicate the 'dark' variant. - -- `|r` fg bright red -- `|R` fg dark red -- `|[r` bg bright red -- `|[R` bg dark red -- `|[R|g` bg dark red, fg bright green +Examples: ```python "This is |rRed text|n and this is normal again." - ``` -Xterm256 colors are given as RGB (Red-Green-Blue), with values 0-5: - -- `|500` fg bright red -- `|050` fg bright green -- `|005` fg bright blue -- `|110` fg dark brown -- `|425` fg pink -- `|[431` bg orange - -Xterm256 greyscale: - -- `|=a` fg black -- `|=g` fg dark grey -- `|=o` fg middle grey -- `|=v` fg bright grey -- `|=z` fg white -- `|[=r` bg middle grey - -```python -"This is |500Red text|n and this is normal again." -"This is |[=jText on dark grey background" - -``` - ----- +Mostly you should not need to call `parse_ansi()` explicitly; +it is run by Evennia just before returning data to/from the +user. Depreciated example forms are available by extending +the ansi mapping. """ import functools @@ -171,7 +126,7 @@ to ANSI command sequences We also allow to escape colour codes - by prepending with an extra `|`. + by prepending with an extra |. """ @@ -1532,6 +1487,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/utils/batchprocessors.html b/docs/0.9.5/_modules/evennia/utils/batchprocessors.html index 8713abb12c..6f7a86a26c 100644 --- a/docs/0.9.5/_modules/evennia/utils/batchprocessors.html +++ b/docs/0.9.5/_modules/evennia/utils/batchprocessors.html @@ -41,22 +41,24 @@

    Source code for evennia.utils.batchprocessors

     """
     This module contains the core methods for the Batch-command- and
    -Batch-code-processors respectively. In short, these are two different ways to
    -build a game world using a normal text-editor without having to do so 'on the
    -fly' in-game. They also serve as an automatic backup so you can quickly
    -recreate a world also after a server reset. The functions in this module is
    -meant to form the backbone of a system called and accessed through game
    -commands.
    +Batch-code-processors respectively. In short, these are two different
    +ways to build a game world using a normal text-editor without having
    +to do so 'on the fly' in-game. They also serve as an automatic backup
    +so you can quickly recreate a world also after a server reset. The
    +functions in this module is meant to form the backbone of a system
    +called and accessed through game commands.
     
    -The Batch-command processor is the simplest. It simply runs a list of in-game
    -commands in sequence by reading them from a text file. The advantage of this is
    -that the builder only need to remember the normal in-game commands. They are
    -also executing with full permission checks etc, making it relatively safe for
    -builders to use. The drawback is that in-game there is really a
    -builder-character walking around building things, and it can be important to
    -create rooms and objects in the right order, so the character can move between
    -them. Also objects that affects players (such as mobs, dark rooms etc) will
    -affect the building character too, requiring extra care to turn off/on.
    +The Batch-command processor is the simplest. It simply runs a list of
    +in-game commands in sequence by reading them from a text file. The
    +advantage of this is that the builder only need to remember the normal
    +in-game commands. They are also executing with full permission checks
    +etc, making it relatively safe for builders to use. The drawback is
    +that in-game there is really a builder-character walking around
    +building things, and it can be important to create rooms and objects
    +in the right order, so the character can move between them. Also
    +objects that affects players (such as mobs, dark rooms etc) will
    +affect the building character too, requiring extra care to turn
    +off/on.
     
     The Batch-code processor is a more advanced system that accepts full
     Python code, executing in chunks. The advantage of this is much more
    @@ -70,7 +72,8 @@
     recommended that the batch-code processor is limited only to
     superusers or highly trusted staff.
     
    -# Batch-command processor file syntax
    +Batch-Command processor file syntax
    +-----------------------------------
     
     The batch-command processor accepts 'batchcommand files' e.g
     `batch.ev`, containing a sequence of valid Evennia commands in a
    @@ -78,39 +81,31 @@
     had been run at the game prompt.
     
     Each Evennia command must be delimited by a line comment to mark its
    -end.
    -
    -::
    -
    -    look
    -    # delimiting comment
    -    create/drop box
    -    # another required comment
    -
    -One can also inject another batchcmdfile:
    -
    -::
    -
    -    #INSERT path.batchcmdfile
    -
    -This way entire game worlds can be created and planned offline; it is
    +end. This way entire game worlds can be created and planned offline; it is
     especially useful in order to create long room descriptions where a
     real offline text editor is often much better than any online text
     editor or prompt.
     
    -## Example of batch.ev file:
    +There is only one batchcommand-specific entry to use in a batch-command
    +files (all others are just like in-game commands):
     
    +- `#INSERT path.batchcmdfile` - this as the first entry on a line will
    +  import and run a batch.ev file in this position, as if it was
    +  written in this file.
    +
    +
    +Example of batch.ev file:
     ::
     
         # batch file
         # all lines starting with # are comments; they also indicate
         # that a command definition is over.
     
    -    create box
    +    @create box
     
         # this comment ends the @create command.
     
    -    set box/desc = A large box.
    +    @set box/desc = A large box.
     
         Inside are some scattered piles of clothing.
     
    @@ -122,22 +117,25 @@
         # is ignored.  An empty line in the command definition is parsed as a \n
         # (so two empty lines becomes a new paragraph).
     
    -    teleport #221
    +    @teleport #221
     
         # (Assuming #221 is a warehouse or something.)
         # (remember, this comment ends the @teleport command! Don'f forget it)
     
         # Example of importing another file at this point.
    -    #IMPORT examples.batch
    +    #INSERT examples.batch
     
    -    drop box
    +    @drop box
     
         # Done, the box is in the warehouse! (this last comment is not necessary to
    -    # close the drop command since it's the end of the file)
    +    # close the @drop command since it's the end of the file)
    +
     
     An example batch file is `contrib/examples/batch_example.ev`.
     
    -# Batch-code processor file syntax
    +
    +Batch-Code processor file syntax
    +--------------------------------
     
     The Batch-code processor accepts full python modules (e.g. `batch.py`)
     that looks identical to normal Python files. The difference from
    @@ -171,14 +169,13 @@
     Importing works as normal. The following variables are automatically
     made available in the script namespace.
     
    -- `caller` - The object executing the batchscript
    +- `caller` -  The object executing the batchscript
     - `DEBUG` - This is a boolean marking if the batchprocessor is running
    -            in debug mode. It can be checked to e.g. delete created objects
    -            when running a CODE block multiple times during testing.
    -            (avoids creating a slew of same-named db objects)
    -
    -## Example batch.py file
    +  in debug mode. It can be checked to e.g. delete created objects
    +  when running a CODE block multiple times during testing.
    +  (avoids creating a slew of same-named db objects)
     
    +Example batch.py file:
     ::
     
         #HEADER
    @@ -207,6 +204,8 @@
     
         script = create.create_script()
     
    +----
    +
     """
     import re
     import codecs
    @@ -244,7 +243,7 @@
             file_ending (str): The file ending of this file (.ev or .py)
     
         Returns:
    -        text (str): The text content of the batch file.
    +        str: The text content of the batch file.
     
         Raises:
             IOError: If problems reading file.
    @@ -291,30 +290,22 @@
     
     
    [docs] def parse_file(self, pythonpath): """ - This parses the lines of a batch-command-file. + This parses the lines of a batchfile according to the following + rules: - Args: - pythonpath (str): The dot-python path to the file. - - Returns: - list: A list of all parsed commands with arguments, as strings. - - Notes: - Parsing follows the following rules: - - 1. A `#` at the beginning of a line marks the end of the command before - it. It is also a comment and any number of # can exist on - subsequent lines (but not inside comments). - 2. #INSERT at the beginning of a line imports another - batch-cmd file file and pastes it into the batch file as if - it was written there. - 3. Commands are placed alone at the beginning of a line and their - arguments are considered to be everything following (on any - number of lines) until the next comment line beginning with #. - 4. Newlines are ignored in command definitions - 5. A completely empty line in a command line definition is condered - a newline (so two empty lines is a paragraph). - 6. Excess spaces and indents inside arguments are stripped. + 1. `#` at the beginning of a line marks the end of the command before + it. It is also a comment and any number of # can exist on + subsequent lines (but not inside comments). + 2. `#INSERT` at the beginning of a line imports another + batch-cmd file file and pastes it into the batch file as if + it was written there. + 3. Commands are placed alone at the beginning of a line and their + arguments are considered to be everything following (on any + number of lines) until the next comment line beginning with #. + 4. Newlines are ignored in command definitions + 5. A completely empty line in a command line definition is condered + a newline (so two empty lines is a paragraph). + 6. Excess spaces and indents inside arguments are stripped. """ @@ -363,23 +354,21 @@
    [docs] def parse_file(self, pythonpath): """ - This parses the lines of a batch-code file + This parses the lines of a batchfile according to the following + rules: Args: pythonpath (str): The dot-python path to the file. Returns: - list: A list of all `#CODE` blocks, each with - prepended `#HEADER` block data. If no `#CODE` - blocks were found, this will be a list of one element - containing all code in the file (so a normal Python file). + codeblocks (list): A list of all #CODE blocks, each with + prepended #HEADER data. If no #CODE blocks were found, + this will be a list of one element. Notes: - Parsing is done according to the following rules: - 1. Code before a #CODE/HEADER block are considered part of - the first code/header block or is the ONLY block if no - `#CODE/HEADER` blocks are defined. + the first code/header block or is the ONLY block if no + #CODE/HEADER blocks are defined. 2. Lines starting with #HEADER starts a header block (ends other blocks) 3. Lines starting with #CODE begins a code block (ends other blocks) 4. Lines starting with #INSERT are on form #INSERT filename. Code from @@ -388,7 +377,6 @@ 5. Code after the last block is considered part of the last header/code block - """ text = "".join(read_batchfile(pythonpath, file_ending=".py")) @@ -505,6 +493,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/utils/containers.html b/docs/0.9.5/_modules/evennia/utils/containers.html index b202e7f94f..7944f3161e 100644 --- a/docs/0.9.5/_modules/evennia/utils/containers.html +++ b/docs/0.9.5/_modules/evennia/utils/containers.html @@ -308,6 +308,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/utils/create.html b/docs/0.9.5/_modules/evennia/utils/create.html index 015dc2bba7..dfc231f939 100644 --- a/docs/0.9.5/_modules/evennia/utils/create.html +++ b/docs/0.9.5/_modules/evennia/utils/create.html @@ -40,19 +40,27 @@

    Source code for evennia.utils.create

     """
    -This module gathers all the essential database-creation functions for the game
    -engine's various object types.
    +This module gathers all the essential database-creation
    +functions for the game engine's various object types.
     
    -Only objects created 'stand-alone' are in here. E.g. object Attributes are
    -always created through their respective objects handlers.
    +Only objects created 'stand-alone' are in here, e.g. object Attributes
    +are always created directly through their respective objects.
     
    -Each `creation_*` function also has an alias named for the entity being created,
    -such as create_object() and object(). This is for consistency with the
    -utils.search module and allows you to do the shorter `create.object()`.
    +Each creation_* function also has an alias named for the entity being
    +created, such as create_object() and object().  This is for
    +consistency with the utils.search module and allows you to do the
    +shorter "create.object()".
     
    -The respective object managers hold more methods for manipulating and searching
    -objects already existing in the database.
    +The respective object managers hold more methods for manipulating and
    +searching objects already existing in the database.
     
    +Models covered:
    + Objects
    + Scripts
    + Help
    + Message
    + Channel
    + Accounts
     """
     from django.conf import settings
     from django.db import IntegrityError
    @@ -114,20 +122,21 @@
         Keyword Args:
             typeclass (class or str): Class or python path to a typeclass.
             key (str): Name of the new object. If not set, a name of
    -            `#dbref` will be set.
    +            #dbref will be set.
             home (Object or str): Obj or #dbref to use as the object's
                 home location.
             permissions (list): A list of permission strings or tuples (permstring, category).
             locks (str): one or more lockstrings, separated by semicolons.
             aliases (list): A list of alternative keys or tuples (aliasstring, category).
             tags (list): List of tag keys or tuples (tagkey, category) or (tagkey, category, data).
    -        destination (Object or str): Obj or #dbref to use as an Exit's target.
    +        destination (Object or str): Obj or #dbref to use as an Exit's
    +            target.
             report_to (Object): The object to return error messages to.
             nohome (bool): This allows the creation of objects without a
                 default home location; only used when creating the default
                 location itself or during unittests.
             attributes (list): Tuples on the form (key, value) or (key, value, category),
    -            (key, value, lockstring) or (key, value, lockstring, default_access).
    +           (key, value, lockstring) or (key, value, lockstring, default_access).
                 to set as Attributes on the new object.
             nattributes (list): Non-persistent tuples on the form (key, value). Note that
                 adding this rarely makes sense since this data will not survive a reload.
    @@ -261,8 +270,9 @@
             report_to (Object): The object to return error messages to.
             desc (str): Optional description of script
             tags (list): List of tags or tuples (tag, category).
    -        attributes (list): List if tuples (key, value) or (key, value, category)
    -           (key, value, lockstring) or (key, value, lockstring, default_access).
    +        attributes (list): List of tuples `(key, value)`, `(key, value, category)`,
    +           `(key, value, category, lockstring)` or
    +           `(key, value, category, lockstring, default_access)`.
     
         Returns:
             script (obj): An instance of the script created
    @@ -650,6 +660,7 @@
       
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/utils/dbserialize.html b/docs/0.9.5/_modules/evennia/utils/dbserialize.html index 23d8b8c568..bec9bd996a 100644 --- a/docs/0.9.5/_modules/evennia/utils/dbserialize.html +++ b/docs/0.9.5/_modules/evennia/utils/dbserialize.html @@ -657,7 +657,7 @@ that saves assigned data to the database. Skip if not serializing onto a given object. If db_obj is given, this function will convert lists, dicts and sets to their - _SaverList, _SaverDict and _SaverSet counterparts. + `_SaverList`, `_SaverDict` and `_SaverSet` counterparts. Returns: data (any): Unpickled data. @@ -822,6 +822,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/utils/eveditor.html b/docs/0.9.5/_modules/evennia/utils/eveditor.html index 052d2e472b..0314cf9172 100644 --- a/docs/0.9.5/_modules/evennia/utils/eveditor.html +++ b/docs/0.9.5/_modules/evennia/utils/eveditor.html @@ -42,49 +42,54 @@ """ EvEditor (Evennia Line Editor) -This implements an advanced line editor for editing longer texts in-game. The -editor mimics the command mechanisms of the "VI" editor (a famous line-by-line -editor) as far as reasonable. +This implements an advanced line editor for editing longer texts +in-game. The editor mimics the command mechanisms of the "VI" editor +(a famous line-by-line editor) as far as reasonable. Features of the editor: -- undo/redo. -- edit/replace on any line of the buffer. -- search&replace text anywhere in buffer. -- formatting of buffer, or selection, to certain width + indentations. -- allow to echo the input or not, depending on your client. -- in-built help + - undo/redo. + - edit/replace on any line of the buffer. + - search&replace text anywhere in buffer. + - formatting of buffer, or selection, to certain width + indentations. + - allow to echo the input or not, depending on your client. -To use the editor, just import EvEditor from this module and initialize it: +To use the editor, just import EvEditor from this module +and initialize it: +:: -```python -from evennia.utils.eveditor import EvEditor + from evennia.utils.eveditor import EvEditor + EvEditor(caller, loadfunc=None, savefunc=None, quitfunc=None, key="", persistent=True) -# set up an editor to edit the caller's 'desc' Attribute -def _loadfunc(caller): - return caller.db.desc +- `caller` is the user of the editor, the one to see all feedback. +- `loadfunc(caller)` is called when the editor is first launched; the + return from this function is loaded as the starting buffer in the + editor. +- `safefunc(caller, buffer)` is called with the current buffer when + saving in the editor. The function should return True/False depending + on if the saving was successful or not. +- `quitfunc(caller)` is called when the editor exits. If this is given, + no automatic quit messages will be given. +- `key` is an optional identifier for the editing session, to be + displayed in the editor. +- `persistent` means the editor state will be saved to the database making it + survive a server reload. Note that using this mode, the load- save- + and quit-funcs must all be possible to pickle - notable unusable + callables are class methods and functions defined inside other + functions. With persistent=False, no such restriction exists. +- `code` set to True activates features on the EvEditor to enter Python code. -def _savefunc(caller, buffer): - caller.db.desc = buffer.strip() - return True +In addition, the EvEditor can be used to enter Python source code, +and offers basic handling of indentation. -def _quitfunc(caller): - caller.msg("Custom quit message") - -# start the editor -EvEditor(caller, loadfunc=None, savefunc=None, quitfunc=None, key="", - persistent=True, code=False) -``` - -The editor can also be used to format Python code and be made to -survive a reload. See the `EvEditor` class for more details. +---- """ import re from django.conf import settings from evennia import Command, CmdSet -from evennia.utils import is_iter, fill, dedent, logger, justify, to_str +from evennia.utils import is_iter, fill, dedent, logger, justify, to_str, utils from evennia.utils.ansi import raw from evennia.commands import cmdhandler @@ -94,6 +99,7 @@ _CMD_NOINPUT = cmdhandler.CMD_NOINPUT _RE_GROUP = re.compile(r"\".*?\"|\'.*?\'|\S*") +_COMMAND_DEFAULT_CLASS = utils.class_from_module(settings.COMMAND_DEFAULT_CLASS) # use NAWS in the future? _DEFAULT_WIDTH = settings.CLIENT_DEFAULT_WIDTH @@ -207,7 +213,7 @@ # ------------------------------------------------------------- -
    [docs]class CmdSaveYesNo(Command): +
    [docs]class CmdSaveYesNo(_COMMAND_DEFAULT_CLASS): """ Save the editor state on quit. This catches nomatches (defaults to Yes), and avoid saves only if @@ -238,7 +244,7 @@ """Stores the yesno question""" key = "quitsave_yesno" - priority = 1 + priority = 150 # override other cmdsets. mergetype = "Replace"
    [docs] def at_cmdset_creation(self): @@ -253,7 +259,7 @@ # ------------------------------------------------------------- -
    [docs]class CmdEditorBase(Command): +
    [docs]class CmdEditorBase(_COMMAND_DEFAULT_CLASS): """ Base parent for editor commands """ @@ -265,18 +271,17 @@
    [docs] def parse(self): """ - Handles pre-parsing. Editor commands are on the form - - :: + Handles pre-parsing + Usage: :cmd [li] [w] [txt] Where all arguments are optional. - - `li` - line number (int), starting from 1. This could also - be a range given as <l>:<l>. - - `w` - word(s) (string), could be encased in quotes. - - `txt` - extra text (string), could be encased in quotes. + - li - line number (int), starting from 1. This could also + be a range given as <l>:<l>. + - w - word(s) (string), could be encased in quotes. + - txt - extra text (string), could be encased in quotes. """ @@ -1180,6 +1185,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/utils/evform.html b/docs/0.9.5/_modules/evennia/utils/evform.html index 78b195201c..bca8e25ef8 100644 --- a/docs/0.9.5/_modules/evennia/utils/evform.html +++ b/docs/0.9.5/_modules/evennia/utils/evform.html @@ -54,34 +54,32 @@ object when displaying the form. Example of input file `testform.py`: +:: -```python -FORMCHAR = "x" -TABLECHAR = "c" + FORMCHAR = "x" + TABLECHAR = "c" -FORM = ''' -.------------------------------------------------. -| | -| Name: xxxxx1xxxxx Player: xxxxxxx2xxxxxxx | -| xxxxxxxxxxx | -| | - >----------------------------------------------< -| | -| Desc: xxxxxxxxxxx STR: x4x DEX: x5x | -| xxxxx3xxxxx INT: x6x STA: x7x | -| xxxxxxxxxxx LUC: x8x MAG: x9x | -| | - >----------------------------------------------< -| | | -| cccccccc | ccccccccccccccccccccccccccccccccccc | -| cccccccc | ccccccccccccccccccccccccccccccccccc | -| cccAcccc | ccccccccccccccccccccccccccccccccccc | -| cccccccc | ccccccccccccccccccccccccccccccccccc | -| cccccccc | cccccccccccccccccBccccccccccccccccc | -| | | -------------------------------------------------- -''' -``` + FORM = ''' + .------------------------------------------------. + | | + | Name: xxxxx1xxxxx Player: xxxxxxx2xxxxxxx | + | xxxxxxxxxxx | + | | + >----------------------------------------------< + | | + | Desc: xxxxxxxxxxx STR: x4x DEX: x5x | + | xxxxx3xxxxx INT: x6x STA: x7x | + | xxxxxxxxxxx LUC: x8x MAG: x9x | + | | + >----------------------------------------------< + | | | + | cccccccc | ccccccccccccccccccccccccccccccccccc | + | cccccccc | ccccccccccccccccccccccccccccccccccc | + | cccAcccc | ccccccccccccccccccccccccccccccccccc | + | cccccccc | ccccccccccccccccccccccccccccccccccc | + | cccccccc | cccccccccccccccccBccccccccccccccccc | + | | | + ------------------------------------------------- The first line of the `FORM` string is ignored. The forms and table markers must mark out complete, unbroken rectangles, each containing @@ -95,8 +93,8 @@ Use as follows: +:: -```python from evennia import EvForm, EvTable # create a new form from the template @@ -128,10 +126,9 @@ "B": tableB}) print(form) -``` + This produces the following result: - :: .------------------------------------------------. @@ -155,6 +152,7 @@ | | | ------------------------------------------------ + The marked forms have been replaced with EvCells of text and with EvTables. The form can be updated by simply re-applying `form.map()` with the updated data. @@ -232,16 +230,15 @@
    [docs] def __init__(self, filename=None, cells=None, tables=None, form=None, **kwargs): """ - Initiate the form + Initiate the form. Keyword Args: filename (str): Path to template file. - cells (dict): A dictionary mapping `{id: text}` - tables (dict): A dictionary mapping `{id: EvTable}`. - form (dict): A dictionary - `{"FORMCHAR":char, "TABLECHAR":char, "FORM":templatestring}`. - If this is given, filename is not read. - + cells (dict): A dictionary mapping of `{id:text}`. + tables (dict): A dictionary mapping of `{id:EvTable}`. + form (dict): A dictionary of + `{"FORMCHAR":char, "TABLECHAR":char, "FORM":templatestring}`. + if this is given, filename is not read. Notes: Other kwargs are fed as options to the EvCells and EvTables (see `evtable.EvCell` and `evtable.EvTable` for more info). @@ -534,6 +531,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/utils/evmenu.html b/docs/0.9.5/_modules/evennia/utils/evmenu.html index 1b467091ad..b61a72acbe 100644 --- a/docs/0.9.5/_modules/evennia/utils/evmenu.html +++ b/docs/0.9.5/_modules/evennia/utils/evmenu.html @@ -40,14 +40,12 @@

    Source code for evennia.utils.evmenu

     """
    -EvMenu
    -
    -This implements a full menu system for Evennia.
    +The EvMenu is a full in-game menu system for Evennia.
     
     To start the menu, just import the EvMenu class from this module.
    -Example usage:
     
    -```python
    +Example usage:
    +::
     
         from evennia.utils.evmenu import EvMenu
     
    @@ -55,11 +53,10 @@
              startnode="node1",
              cmdset_mergetype="Replace", cmdset_priority=1,
              auto_quit=True, cmd_on_exit="look", persistent=True)
    -```
     
     Where `caller` is the Object to use the menu on - it will get a new
    -cmdset while using the Menu. The menu_module_path is the python path
    -to a python module containing function definitions.  By adjusting the
    +cmdset while using the Menu. The `menu_module_path` is the python path
    +to a python module containing function definitions. By adjusting the
     keyword options of the Menu() initialization call you can start the
     menu at different places in the menu definition file, adjust if the
     menu command should overload the normal commands or not, etc.
    @@ -73,8 +70,7 @@
     
     The menu is defined in a module (this can be the same module as the
     command definition too) with function definitions:
    -
    -```python
    +::
     
         def node1(caller):
             # (this is the start node if called like above)
    @@ -88,9 +84,8 @@
         def another_node(caller, input_string, **kwargs):
             # code
             return text, options
    -```
     
    -Where caller is the object using the menu and input_string is the
    +Where `caller` is the object using the menu and input_string is the
     command entered by the user on the *previous* node (the command
     entered to get to this node). The node function code will only be
     executed once per node-visit and the system will accept nodes with
    @@ -107,42 +102,42 @@
     menu is immediately exited and the default "look" command is called.
     
     - `text` (str, tuple or None): Text shown at this node. If a tuple, the
    -   second element in the tuple is a help text to display at this
    -   node when the user enters the menu help command there.
    +  second element in the tuple is a help text to display at this
    +  node when the user enters the menu help command there.
     - `options` (tuple, dict or None): If `None`, this exits the menu.
       If a single dict, this is a single-option node. If a tuple,
    -  it should be a tuple of option dictionaries. Option dicts have the following keys:
    +  it should be a tuple of option dictionaries. Option dicts have
    +  the following keys:
     
       - `key` (str or tuple, optional): What to enter to choose this option.
    -    If a tuple, it must be a tuple of strings, where the first string is the
    -    key which will be shown to the user and the others are aliases.
    -    If unset, the options' number will be used. The special key `_default`
    -    marks this option as the default fallback when no other option matches
    -    the user input. There can only be one `_default` option per node. It
    -    will not be displayed in the list.
    +      If a tuple, it must be a tuple of strings, where the first string is the
    +      key which will be shown to the user and the others are aliases.
    +      If unset, the options' number will be used. The special key `_default`
    +      marks this option as the default fallback when no other option matches
    +      the user input. There can only be one `_default` option per node. It
    +      will not be displayed in the list.
       - `desc` (str, optional): This describes what choosing the option will do.
       - `goto` (str, tuple or callable): If string, should be the name of node to go to
    -    when this option is selected. If a callable, it has the signature
    -    `callable(caller[,raw_input][,**kwargs])`. If a tuple, the first element
    -    is the callable and the second is a dict with the `**kwargs` to pass to
    -    the callable. Those kwargs will also be passed into the next node if possible.
    -    Such a callable should return either a str or a (str, dict), where the
    -    string is the name of the next node to go to and the dict is the new,
    -    (possibly modified) kwarg to pass into the next node. If the callable returns
    -    None or the empty string, the current node will be revisited.
    +      when this option is selected. If a callable, it has the signature
    +      `callable(caller[,raw_input][,**kwargs])`. If a tuple, the first element
    +      is the callable and the second is a dict with the kwargs to pass to
    +      the callable. Those kwargs will also be passed into the next node if possible.
    +      Such a callable should return either a str or a (str, dict), where the
    +      string is the name of the next node to go to and the dict is the new,
    +      (possibly modified) kwarg to pass into the next node. If the callable returns
    +      None or the empty string, the current node will be revisited.
       - `exec` (str, callable or tuple, optional): This takes the same input as `goto` above
    -    and runs before it. If given a node name, the node will be executed but will not
    -    be considered the next node. If node/callback returns str or (str, dict), these will
    -    replace the `goto` step (`goto` callbacks will not fire), with the string being the
    -    next node name and the optional dict acting as the kwargs-input for the next node.
    -    If an exec callable returns the empty string (only), the current node is re-run.
    +      and runs before it. If given a node name, the node will be executed but will not
    +      be considered the next node. If node/callback returns str or (str, dict), these will
    +      replace the `goto` step (`goto` callbacks will not fire), with the string being the
    +      next node name and the optional dict acting as the kwargs-input for the next node.
    +      If an exec callable returns `None`, the current node is re-run.
     
    -If `key` is not given, the option will automatically be identified by
    +If key is not given, the option will automatically be identified by
     its number 1..N.
     
     Example:
    -
    -```python
    +::
     
         # in menu_module.py
     
    @@ -178,11 +173,8 @@
             text = "This ends the menu since there are no options."
             return text, None
     
    -```
    -
     When starting this menu with  `Menu(caller, "path.to.menu_module")`,
     the first node will look something like this:
    -
     ::
     
         This is a node text
    @@ -201,8 +193,9 @@
     reaching a node without any options.
     
     
    -For a menu demo, import `CmdTestMenu` from this module and add it to
    -your default cmdset. Run it with this module, like `testmenu evennia.utils.evmenu`.
    +For a menu demo, import CmdTestMenu from this module and add it to
    +your default cmdset. Run it with this module, like `testmenu
    +evennia.utils.evmenu`.
     
     
     ## Menu generation from template string
    @@ -218,13 +211,10 @@
     For maximum flexibility you can inject normally-created nodes in the menu tree
     before passing it to EvMenu. If that's not needed, you can also create a menu
     in one step with:
    -
    -```python
    +::
     
         evmenu.template2menu(caller, menu_template, goto_callables)
     
    -```
    -
     The `goto_callables` is a mapping `{"funcname": callable, ...}`, where each
     callable must be a module-global function on the form
     `funcname(caller, raw_string, **kwargs)` (like any goto-callable). The
    @@ -302,9 +292,9 @@
     key:values will be converted to strings/numbers with literal_eval before passed
     into the callable.
     
    -The \\> option takes a glob or regex to perform different actions depending
    -on user input. Make sure to sort these in increasing order of generality since
    -they will be tested in sequence.
    +The "> " option takes a glob or regex to perform different actions depending on user
    +input. Make sure to sort these in increasing order of generality since they
    +will be tested in sequence.
     
     ----
     
    @@ -583,7 +573,9 @@
                     by default in all nodes of the menu. This will print out the current state of
                     the menu. Deactivate for production use! When the debug flag is active, the
                     `persistent` flag is deactivated.
    -            **kwargs: All kwargs will become initialization variables on `caller.ndb._menutree`,
    +
    +        Keyword Args:
    +            any (any): All kwargs will become initialization variables on `caller.ndb._evmenu`,
                     to be available at run.
     
             Raises:
    @@ -783,6 +775,30 @@
             Call a node-like callable, with a variable number of raw_string, *args, **kwargs, all of
             which should work also if not present (only `caller` is always required). Return its result.
     
    +        Viable node-like callable forms:
    +        ::
    +
    +            _callname(caller)
    +            _callname(caller, raw_string)
    +            _callname(caller, **kwargs)
    +            _callname(caller, raw_string, **kwargs)
    +
    +        If this is a node:
    +
    +        - `caller` is the one using the menu.
    +        - `raw_string` is the users exact input on the *previous* node.
    +        - `**kwargs` is either passed through the previous node or returned
    +          along with the node name from the goto-callable leading to this node.
    +
    +        If this is a goto-callable:
    +
    +        - `caller` is the one using the menu.
    +        - `raw_string` is the user's exact input when chosing the option that triggered
    +          this goto-callable.
    +        - `**kwargs` is any extra dict passed to the callable in the option
    +          definition, or (if no explit kwarg was given to the callable) the
    +          previous node's kwarg, if any.
    +
             """
             try:
                 try:
    @@ -987,7 +1003,8 @@
                 raw_string (str): The raw default string entered on the
                     previous node (only used if the node accepts it as an
                     argument)
    -            **kwargs: Extra arguments to goto callables.
    +        Keyword Args:
    +            any: Extra arguments to goto callables.
     
             """
     
    @@ -1360,29 +1377,33 @@
             option_generator (callable or list): A list of strings indicating the options, or a callable
                 that is called as option_generator(caller) to produce such a list.
             select (callable or str, optional): Node to redirect a selection to. Its `**kwargs` will
    -            contain the `available_choices` list and `selection` will hold one of the elements in
    -            that list.  If a callable, it will be called as
    -            `select(caller, menuchoice, **kwargs)` where menuchoice is the chosen option as a
    -            string and `available_choices` is a kwarg mapping the option keys to the choices
    -            offered by the option_generator. The callable whould return the name of the target node
    -            to goto after this selection (or None to repeat the list-node). Note that if this is not
    -            given, the decorated node must itself provide a way to continue from the node!
    +            contain the `available_choices` list and `selection` will hold one
    +            of the elements in that list.  If a callable, it will be called as
    +            `select(caller, menuchoice, **kwargs)` where menuchoice is the
    +            chosen option as a string and `available_choices` is the list of available
    +            options offered by the option_generator. The callable whould return
    +            the name of the target node to goto after this selection (or None to repeat the
    +            list-node).  Note that if this is not given, the decorated node
    +            must itself provide a way to continue from the node!
             pagesize (int): How many options to show per page.
     
         Example:
    +        ::
     
    -        ```python
    -        list_node(['foo', 'bar'], select)
    -        def node_index(caller):
    -            text = "describing the list"
    -            return text, []
    -        ```
    +            def _selectfunc(caller, menuchoice, **kwargs):
    +                # menuchoice would be either 'foo' or 'bar' here
    +                # kwargs['available_choices'] would be the list ['foo', 'bar']
    +                return "the_next_node_to_go_to"
    +
    +            @list_node(['foo', 'bar'], _selectfunc)
    +            def node_index(caller):
    +                text = "describing the list"
    +                return text, []
     
         Notes:
    -        All normal `goto` or `exec` callables returned from the decorated nodes
    -        will, if they accept `**kwargs`, get a new kwarg 'available_choices'
    -        injected. These are the ordered list of named options (descs) visible
    -        on the current node page.
    +        All normal `goto` or `exec` callables returned from the decorated nodes will, if they accept
    +        `**kwargs`, get a new kwarg `available_choices` injected. This is the ordered list of named
    +        options (descs) visible on the current node page.
     
         """
     
    @@ -1603,51 +1624,60 @@
     
     
    [docs]def get_input(caller, prompt, callback, session=None, *args, **kwargs): """ - This is a helper function for easily request input from the caller. + This is a helper function for easily request input from + the caller. Args: - caller (Account or Object): The entity being asked the question. This - should usually be an object controlled by a user. - prompt (str): This text will be shown to the user, in order to let them - know their input is needed. + caller (Account or Object): The entity being asked + the question. This should usually be an object + controlled by a user. + prompt (str): This text will be shown to the user, + in order to let them know their input is needed. callback (callable): A function that will be called - when the user enters a reply. It must take three arguments: the - `caller`, the `prompt` text and the `result` of the input given by - the user. If the callback doesn't return anything or return False, - the input prompt will be cleaned up and exited. If returning True, - the prompt will remain and continue to accept input. + when the user enters a reply. It must take three + arguments: the `caller`, the `prompt` text and the + `result` of the input given by the user. If the + callback doesn't return anything or return False, + the input prompt will be cleaned up and exited. If + returning True, the prompt will remain and continue to + accept input. session (Session, optional): This allows to specify the - session to send the prompt to. It's usually only needed if `caller` - is an Account in multisession modes greater than 2. The session is - then updated by the command and is available (for example in - callbacks) through `caller.ndb.getinput._session`. - *args (any): Extra arguments to pass to `callback`. To utilise `*args` - (and `**kwargs`), a value for the `session` argument must also be - provided. - **kwargs (any): Extra kwargs to pass to `callback`. + session to send the prompt to. It's usually only + needed if `caller` is an Account in multisession modes + greater than 2. The session is then updated by the + command and is available (for example in callbacks) + through `caller.ndb.getinput._session`. + args, kwargs (optional): Extra arguments will be + passed to the fall back function as a list 'args' + and all keyword arguments as a dictionary 'kwargs'. + To utilise `*args` and `**kwargs`, a value for the + session argument must be provided (None by default) + and the callback function must take `*args` and + `**kwargs` as arguments. Raises: RuntimeError: If the given callback is not callable. Notes: - The result value sent to the callback is raw and not processed in any - way. This means that you will get the ending line return character from - most types of client inputs. So make sure to strip that before doing a - comparison. + The result value sent to the callback is raw and not + processed in any way. This means that you will get + the ending line return character from most types of + client inputs. So make sure to strip that before + doing a comparison. - When the prompt is running, a temporary object `caller.ndb._getinput` - is stored; this will be removed when the prompt finishes. + When the prompt is running, a temporary object + `caller.ndb._getinput` is stored; this will be removed + when the prompt finishes. + If you need the specific Session of the caller (which + may not be easy to get if caller is an account in higher + multisession modes), then it is available in the + callback through `caller.ndb._getinput._session`. - If you need the specific Session of the caller (which may not be easy - to get if caller is an account in higher multisession modes), then it - is available in the callback through `caller.ndb._getinput._session`. - This is why the `session` is required as input. - - It's not recommended to 'chain' `get_input` into a sequence of - questions. This will result in the caller stacking ever more instances - of InputCmdSets. While they will all be cleared on concluding the - get_input chain, EvMenu should be considered for anything beyond a - single question. + Chaining get_input functions will result in the caller + stacking ever more instances of InputCmdSets. Whilst + they will all be cleared on concluding the get_input + chain, EvMenu should be considered for anything beyond + a single question. """ if not callable(callback): @@ -1671,9 +1701,7 @@ _RE_NODE = re.compile(r"##\s*?NODE\s+?(?P<nodename>\S[\S\s]*?)$", re.I + re.M) _RE_OPTIONS_SEP = re.compile(r"##\s*?OPTIONS\s*?$", re.I + re.M) _RE_CALLABLE = re.compile(r"\S+?\(\)", re.I + re.M) -_RE_CALLABLE = re.compile( - r"(?P<funcname>\S+?)(?:\((?P<kwargs>[\S\s]+?)\)|\(\))", re.I + re.M -) +_RE_CALLABLE = re.compile(r"(?P<funcname>\S+?)(?:\((?P<kwargs>[\S\s]+?)\)|\(\))", re.I + re.M) _HELP_NO_OPTION_MATCH = _("Choose an option or try 'help'.") @@ -1687,8 +1715,8 @@ # Input/option/goto handler functions that allows for dynamically generated # nodes read from the menu template. -def _process_callable(caller, goto, goto_callables, raw_string, - current_nodename, kwargs): + +def _process_callable(caller, goto, goto_callables, raw_string, current_nodename, kwargs): """ Central helper for parsing a goto-callable (`funcname(**kwargs)`) out of the right-hand-side of the template options and map this to an actual @@ -1704,12 +1732,18 @@ for kwarg in gotokwargs.split(","): if kwarg and "=" in kwarg: key, value = [part.strip() for part in kwarg.split("=", 1)] - if key in ("evmenu_goto", "evmenu_gotomap", "_current_nodename", - "evmenu_current_nodename", "evmenu_goto_callables"): + if key in ( + "evmenu_goto", + "evmenu_gotomap", + "_current_nodename", + "evmenu_current_nodename", + "evmenu_goto_callables", + ): raise RuntimeError( f"EvMenu template error: goto-callable '{goto}' uses a " f"kwarg ({kwarg}) that is reserved for the EvMenu templating " - "system. Rename the kwarg.") + "system. Rename the kwarg." + ) try: key = literal_eval(key) except ValueError: @@ -1736,8 +1770,7 @@ goto = kwargs["evmenu_goto"] goto_callables = kwargs["evmenu_goto_callables"] current_nodename = kwargs["evmenu_current_nodename"] - return _process_callable(caller, goto, goto_callables, raw_string, - current_nodename, kwargs) + return _process_callable(caller, goto, goto_callables, raw_string, current_nodename, kwargs) def _generated_input_goto_func(caller, raw_string, **kwargs): @@ -1757,13 +1790,15 @@ # start with glob patterns for pattern, goto in gotomap.items(): if fnmatch(raw_string.lower(), pattern): - return _process_callable(caller, goto, goto_callables, raw_string, - current_nodename, kwargs) + return _process_callable( + caller, goto, goto_callables, raw_string, current_nodename, kwargs + ) # no glob pattern match; try regex for pattern, goto in gotomap.items(): if pattern and re.match(pattern, raw_string.lower(), flags=re.I + re.M): - return _process_callable(caller, goto, goto_callables, raw_string, - current_nodename, kwargs) + return _process_callable( + caller, goto, goto_callables, raw_string, current_nodename, kwargs + ) # no match, show error raise EvMenuGotoAbortMessage(_HELP_NO_OPTION_MATCH) @@ -1794,6 +1829,7 @@ dict: A `{"node": nodefunc}` menutree suitable to pass into EvMenu. """ + def _validate_kwarg(goto, kwarg): """ Validate goto-callable kwarg is on correct form. @@ -1803,14 +1839,21 @@ f"EvMenu template error: goto-callable '{goto}' has a " f"non-kwarg argument ({kwarg}). All callables in the " "template must have only keyword-arguments, or no " - "args at all.") + "args at all." + ) key, _ = [part.strip() for part in kwarg.split("=", 1)] - if key in ("evmenu_goto", "evmenu_gotomap", "_current_nodename", - "evmenu_current_nodename", "evmenu_goto_callables"): + if key in ( + "evmenu_goto", + "evmenu_gotomap", + "_current_nodename", + "evmenu_current_nodename", + "evmenu_goto_callables", + ): raise RuntimeError( f"EvMenu template error: goto-callable '{goto}' uses a " f"kwarg ({kwarg}) that is reserved for the EvMenu templating " - "system. Rename the kwarg.") + "system. Rename the kwarg." + ) def _parse_options(nodename, optiontxt, goto_callables): """ @@ -1840,7 +1883,7 @@ if match: kwargs = match.group("kwargs") if kwargs: - for kwarg in kwargs.split(','): + for kwarg in kwargs.split(","): _validate_kwarg(goto, kwarg) # parse key [;aliases|pattern] @@ -1852,7 +1895,7 @@ if main_key.startswith(_OPTION_INPUT_MARKER): # if we have a pattern, build the arguments for _default later - pattern = main_key[len(_OPTION_INPUT_MARKER):].strip() + pattern = main_key[len(_OPTION_INPUT_MARKER) :].strip() inputparsemap[pattern] = goto else: # a regular goto string/callable target @@ -1913,12 +1956,7 @@
    [docs]def template2menu( - caller, - menu_template, - goto_callables=None, - startnode="start", - persistent=False, - **kwargs, + caller, menu_template, goto_callables=None, startnode="start", persistent=False, **kwargs, ): """ Helper function to generate and start an EvMenu based on a menu template @@ -1943,12 +1981,7 @@ """ goto_callables = goto_callables or {} menu_tree = parse_menu_template(caller, menu_template, goto_callables) - return EvMenu( - caller, - menu_tree, - persistent=persistent, - **kwargs, - )
    + return EvMenu(caller, menu_tree, persistent=persistent, **kwargs,)
    @@ -1976,6 +2009,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/utils/evmore.html b/docs/0.9.5/_modules/evennia/utils/evmore.html index d4e027ff24..2a5ee12c19 100644 --- a/docs/0.9.5/_modules/evennia/utils/evmore.html +++ b/docs/0.9.5/_modules/evennia/utils/evmore.html @@ -43,34 +43,29 @@ """ EvMore - pager mechanism -This is a pager for displaying long texts and allows stepping up and down in -the text (the name comes from the traditional 'more' unix command). +This is a pager for displaying long texts and allows stepping up and +down in the text (the name comes from the traditional 'more' unix +command). To use, simply pass the text through the EvMore object: - - -```python +:: from evennia.utils.evmore import EvMore text = some_long_text_output() EvMore(caller, text, always_page=False, session=None, justify_kwargs=None, **kwargs) -``` -One can also use the convenience function `msg` from this module to avoid -having to set up the `EvMenu` object manually: - -```python +One can also use the convenience function msg from this module: +:: from evennia.utils import evmore text = some_long_text_output() evmore.msg(caller, text, always_page=False, session=None, justify_kwargs=None, **kwargs) -``` -The `always_page` argument decides if the pager is used also if the text is not long -enough to need to scroll, `session` is used to determine which session to relay -to and `justify_kwargs` are kwargs to pass to utils.utils.justify in order to +Where always_page decides if the pager is used also if the text is not long +enough to need to scroll, session is used to determine which session to relay +to and `justify_kwargs` are kwargs to pass to `utils.utils.justify` in order to change the formatting of the text. The remaining `**kwargs` will be passed on to the `caller.msg()` construct every time the page is updated. @@ -82,8 +77,7 @@ from django.core.paginator import Paginator from evennia import Command, CmdSet from evennia.commands import cmdhandler -from evennia.utils.ansi import ANSIString -from evennia.utils.utils import make_iter, inherits_from, justify, dedent +from evennia.utils.utils import make_iter, inherits_from, justify _CMD_NOMATCH = cmdhandler.CMD_NOMATCH _CMD_NOINPUT = cmdhandler.CMD_NOINPUT @@ -94,8 +88,6 @@ _EVTABLE = None -_LBR = ANSIString("\n") - # text _DISPLAY = """{text} @@ -177,9 +169,10 @@ return qs.count()
    -
    [docs]class EvMore(object): +
    [docs]class EvMore: """ - The main pager object + The main pager object. + """
    [docs] def __init__( @@ -197,15 +190,16 @@ ): """ - Initialization of the EvMore pager. + Initialization of the Evmore input handler. Args: caller (Object or Account): Entity reading the text. inp (str, EvTable, Paginator or iterator): The text or data to put under paging. - If a string, paginage normally. If this text contains - one or more `\\\\f` format symbol, automatic pagination and justification - are force-disabled and page-breaks will only happen after each `\\\\f`. + one or more \\\\f (backslash + f) format symbols, automatic + pagination and justification are force-disabled and + page-breaks will only happen after each \\\\f. - If `EvTable`, the EvTable will be paginated with the same setting on each page if it is too long. The table decorations will be considered in the size of the page. @@ -213,9 +207,8 @@ expected to be a line in the final display. Each line will be run through `iter_callable`. - always_page (bool, optional): If `False`, the - pager will only kick in if `inp` is too big - to fit the screen. + always_page (bool, optional): If `False`, the pager will only kick + in if `inp` is too big to fit the screen. session (Session, optional): If given, this session will be used to determine the screen width and will receive all output. justify (bool, optional): If set, auto-justify long lines. This must be turned @@ -231,29 +224,51 @@ the caller when the more page exits. Note that this will be using whatever cmdset the user had *before* the evmore pager was activated (so none of the evmore commands will be available when this is run). - kwargs (any, optional): These will be passed on to the `caller.msg` method. + kwargs (any, any): These will be passed on to the `caller.msg` method. Examples: + Basic use: + :: - ```python - super_long_text = " ... " - EvMore(caller, super_long_text) - ``` - Paginator - ```python - from django.core.paginator import Paginator - query = ObjectDB.objects.all() - pages = Paginator(query, 10) # 10 objs per page - EvMore(caller, pages) - ``` - Every page an EvTable - ```python - from evennia import EvTable - def _to_evtable(page): - table = ... # convert page to a table - return EvTable(*headers, table=table, ...) - EvMore(caller, pages, page_formatter=_to_evtable) - ``` + super_long_text = " ... " + EvMore(caller, super_long_text) + + Paginated query data - this is an optimization to avoid fetching + database data until it's actually paged to. + :: + + from django.core.paginator import Paginator + + query = ObjectDB.objects.all() + pages = Paginator(query, 10) # 10 objs per page + EvMore(caller, pages) + + Automatic split EvTable over multiple EvMore pages + :: + + table = EvMore(*header, table=tabledata) + EvMore(caller, table) + + Every page a separate EvTable (optimization for very large data sets) + :: + + from evennia import EvTable, EvMore + + class TableEvMore(EvMore): + def init_pages(self, data): + pages = # depends on data type + super().init_pages(pages) + + def page_formatter(self, page): + table = EvTable() + + for line in page: + cols = # split raw line into columns + table.add_row(*cols) + + return str(table) + + TableEvMore(caller, pages) """ self._caller = caller @@ -440,12 +455,9 @@
    [docs] def init_f_str(self, text): """ - The input contains `\\f` markers. We use `\\f` to indicate the user wants to - enforce their line breaks on their own. If so, we do no automatic - line-breaking/justification at all. - - Args: - text (str): The string to format with f-markers. + The input contains \\\\f (backslash + f) markers. We use \\\\f to indicate + the user wants to enforce their line breaks on their own. If so, we do + no automatic line-breaking/justification at all. """ self._data = text.split("\f") @@ -474,7 +486,7 @@ lines = text.split("\n") self._data = [ - _LBR.join(lines[i : i + self.height]) for i in range(0, len(lines), self.height) + "\n".join(lines[i : i + self.height]) for i in range(0, len(lines), self.height) ] self._npages = len(self._data)
    @@ -492,13 +504,15 @@ Notes: If overridden, this method must perform the following actions: - - read and re-store `self._data` (the incoming data set) if needed for pagination to work. + - read and re-store `self._data` (the incoming data set) if needed + for pagination to work. - set `self._npages` to the total number of pages. Default is 1. - set `self._paginator` to a callable that will take a page number 1...N and return the data to display on that page (not any decorations or next/prev buttons). If only wanting to change the paginator, override `self.paginator` instead. - - set `self._page_formatter` to a callable that will receive the page from `self._paginator` - and format it with one element per line. Default is `str`. Or override `self.page_formatter` + - set `self._page_formatter` to a callable that will receive the + page from `self._paginator` and format it with one element per + line. Default is `str`. Or override `self.page_formatter` directly instead. By default, helper methods are called that perform these actions @@ -576,6 +590,40 @@ """ EvMore-supported version of msg, mimicking the normal msg method. + Args: + caller (Object or Account): Entity reading the text. + text (str, EvTable or iterator): The text or data to put under paging. + + - If a string, paginage normally. If this text contains + one or more \\\\f (backslash + f) format symbol, automatic pagination is disabled + and page-breaks will only happen after each \\\\f. + - If `EvTable`, the EvTable will be paginated with the same + setting on each page if it is too long. The table + decorations will be considered in the size of the page. + - Otherwise `text` is converted to an iterator, where each step is + is expected to be a line in the final display, and each line + will be run through repr(). + + always_page (bool, optional): If `False`, the + pager will only kick in if `text` is too big + to fit the screen. + session (Session, optional): If given, this session will be used + to determine the screen width and will receive all output. + justify (bool, optional): If set, justify long lines in output. Disable for + fixed-format output, like tables. + justify_kwargs (dict, bool or None, optional): If given, this should + be valid keyword arguments to the utils.justify() function. If False, + no justification will be done. + exit_on_lastpage (bool, optional): Immediately exit pager when reaching the last page. + use_evtable (bool, optional): If True, each page will be rendered as an + EvTable. For this to work, `text` must be an iterable, where each element + is the table (list of list) to render on that page. + evtable_args (tuple, optional): The args to use for EvTable on each page. + evtable_kwargs (dict, optional): The kwargs to use for EvTable on each + page (except `table`, which is supplied by EvMore per-page). + kwargs (any, optional): These will be passed on + to the `caller.msg` method. + """ EvMore( caller, @@ -587,9 +635,6 @@ exit_on_lastpage=exit_on_lastpage, **kwargs, )
    - - -msg.__doc__ += dedent(EvMore.__init__.__doc__)
    @@ -617,6 +662,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/utils/evtable.html b/docs/0.9.5/_modules/evennia/utils/evtable.html index c3c1968a52..2499e1065c 100644 --- a/docs/0.9.5/_modules/evennia/utils/evtable.html +++ b/docs/0.9.5/_modules/evennia/utils/evtable.html @@ -40,25 +40,21 @@

    Source code for evennia.utils.evtable

     """
    -This is an advanced ASCII table creator. It was inspired by Prettytable
    -(https://code.google.com/p/prettytable/) but shares no code and is considerably
    -more advanced, supporting auto-balancing of incomplete tables and ANSI colors among
    -other things.
    +This is an advanced ASCII table creator. It was inspired by
    +[prettytable](https://code.google.com/p/prettytable/) but shares no code.
     
     Example usage:
    +::
     
    -```python
    -  from evennia.utils import evtable
    +    from evennia.utils import evtable
     
    -  table = evtable.EvTable("Heading1", "Heading2",
    +    table = evtable.EvTable("Heading1", "Heading2",
                       table=[[1,2,3],[4,5,6],[7,8,9]], border="cells")
    -  table.add_column("This is long data", "This is even longer data")
    -  table.add_row("This is a single row")
    -  print table
    -```
    +    table.add_column("This is long data", "This is even longer data")
    +    table.add_row("This is a single row")
    +    print table
     
     Result:
    -
     ::
     
         +----------------------+----------+---+--------------------------+
    @@ -75,15 +71,13 @@
     
     As seen, the table will automatically expand with empty cells to make
     the table symmetric. Tables can be restricted to a given width:
    +::
     
    -```python
    -  table.reformat(width=50, align="l")
    -```
    +    table.reformat(width=50, align="l")
     
     (We could just have added these keywords to the table creation call)
     
     This yields the following result:
    -
     ::
     
         +-----------+------------+-----------+-----------+
    @@ -104,22 +98,17 @@
         | row       |            |           |           |
         +-----------+------------+-----------+-----------+
     
    -
     Table-columns can be individually formatted. Note that if an
     individual column is set with a specific width, table auto-balancing
     will not affect this column (this may lead to the full table being too
     wide, so be careful mixing fixed-width columns with auto- balancing).
     Here we change the width and alignment of the column at index 3
     (Python starts from 0):
    -
    -```python
    -
    -table.reformat_column(3, width=30, align="r")
    -print table
    -```
    -
     ::
     
    +    table.reformat_column(3, width=30, align="r")
    +    print table
    +
         +-----------+-------+-----+-----------------------------+---------+
         | Heading1  | Headi |     |                             |         |
         |           | ng2   |     |                             |         |
    @@ -142,14 +131,15 @@
     vertically. This will lead to text contents being cropped. Each cell
     can only shrink to a minimum width and height of 1.
     
    -`EvTable` is intended to be used with `ANSIString` for supporting ANSI-coloured
    -string types.
    +`EvTable` is intended to be used with [ANSIString](evennia.utils.ansi#ansistring)
    +for supporting ANSI-coloured string types.
     
    -When a cell is auto-wrapped across multiple lines, ANSI-reset sequences will be
    -put at the end of each wrapped line. This means that the colour of a wrapped
    -cell will not "bleed", but it also means that eventual colour outside the table
    -will not transfer "across" a table, you need to re-set the color to have it
    -appear on both sides of the table string.
    +When a cell is auto-wrapped across multiple lines, ANSI-reset
    +sequences will be put at the end of each wrapped line. This means that
    +the colour of a wrapped cell will not "bleed", but it also means that
    +eventual colour outside the table will not transfer "across" a table,
    +you need to re-set the color to have it appear on both sides of the
    +table string.
     
     ----
     
    @@ -1826,6 +1816,7 @@
       
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/utils/gametime.html b/docs/0.9.5/_modules/evennia/utils/gametime.html index b2655ae0ea..fb45e7f058 100644 --- a/docs/0.9.5/_modules/evennia/utils/gametime.html +++ b/docs/0.9.5/_modules/evennia/utils/gametime.html @@ -334,6 +334,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/utils/idmapper/manager.html b/docs/0.9.5/_modules/evennia/utils/idmapper/manager.html index 66331c912c..0aea66e882 100644 --- a/docs/0.9.5/_modules/evennia/utils/idmapper/manager.html +++ b/docs/0.9.5/_modules/evennia/utils/idmapper/manager.html @@ -99,6 +99,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/utils/idmapper/models.html b/docs/0.9.5/_modules/evennia/utils/idmapper/models.html index 51873e54f9..018ef1faf4 100644 --- a/docs/0.9.5/_modules/evennia/utils/idmapper/models.html +++ b/docs/0.9.5/_modules/evennia/utils/idmapper/models.html @@ -739,6 +739,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/utils/idmapper/tests.html b/docs/0.9.5/_modules/evennia/utils/idmapper/tests.html index accaf705ee..23a7887805 100644 --- a/docs/0.9.5/_modules/evennia/utils/idmapper/tests.html +++ b/docs/0.9.5/_modules/evennia/utils/idmapper/tests.html @@ -144,6 +144,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/utils/inlinefuncs.html b/docs/0.9.5/_modules/evennia/utils/inlinefuncs.html index e07e7eece6..c0df8c0455 100644 --- a/docs/0.9.5/_modules/evennia/utils/inlinefuncs.html +++ b/docs/0.9.5/_modules/evennia/utils/inlinefuncs.html @@ -43,22 +43,20 @@ Inline functions (nested form). This parser accepts nested inlinefunctions on the form +:: -```python -$funcname(arg, arg, ...) -``` + $funcname(arg, arg, ...) -embedded in any text where any arg can be another ``$funcname()`` call. +embedded in any text where any arg can be another `$funcname{}` call. This functionality is turned off by default - to activate, `settings.INLINEFUNC_ENABLED` must be set to `True`. -Each token starts with `$funcname(` where there must be no space -between the `$funcname` and `"("`. The inlinefunc ends with a matched ending parentesis. -`")"`. +Each token starts with `$funcname(` where there must be no space between the +$funcname and "(". It ends with a matched ending parentesis ")". -Inside the inlinefunc definition, one can use `\` to escape. This is +Inside the inlinefunc definition, one can use \\\\ to escape. This is mainly needed for escaping commas in flowing text (which would -otherwise be interpreted as an argument separator), or to escape `)` +otherwise be interpreted as an argument separator), or to escape `}` when not intended to close the function block. Enclosing text in matched `\"\"\"` (triple quotes) or `'''` (triple single-quotes) will also escape *everything* within without needing to escape individual @@ -68,11 +66,10 @@ modules defined by `settings.INLINEFUNC_MODULES`. They are identified by their function name (and ignored if this name starts with `_`). They should be on the following form: +:: -```python -def funcname (*args, **kwargs): + def funcname (*args, **kwargs): # ... -``` Here, the arguments given to `$funcname(arg1,arg2)` will appear as the `*args` tuple. This will be populated by the arguments given to the @@ -96,9 +93,8 @@ the `stackfull` inlinefunc is appended to the end. By default this is an error message. -Syntax errors, notably failing to completely closing all inlinefunc -blocks, will lead to the entire string remaining unparsed. Inlineparsing should -never traceback. +Syntax errors, notably not completely closing all inlinefunc blocks, will lead +to the entire string remaining unparsed. ---- @@ -136,9 +132,10 @@ given range. Example: - `$random()` - `$random(5)` - `$random(5, 10)` + + - `$random()` + - `$random(5)` + - `$random(5, 10)` """ nargs = len(args) @@ -618,16 +615,16 @@ Args: in_template (str): The template to be used for nick recognition. out_template (str): The template to be used to replace the string - matched by the in_template. + matched by the `in_template`. Returns: - regex (regex): Regex to match against strings - template (str): Template with markers {arg1}, {arg2}, etc for - replacement using the standard .format method. + regex, template (regex, str): Regex to match against strings and a + template with markers `{arg1}`, `{arg2}`, etc for replacement using the + standard `.format` method. Raises: - evennia.utils.inlinefuncs.NickTemplateInvalid: If the in/out template - does not have a matching number of $args. + inlinefuncs.NickTemplateInvalid: If the in/out template does not have a matching + number of $args. """ # create the regex for in_template @@ -691,6 +688,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/utils/logger.html b/docs/0.9.5/_modules/evennia/utils/logger.html index 1897a1d492..f5aa6db02e 100644 --- a/docs/0.9.5/_modules/evennia/utils/logger.html +++ b/docs/0.9.5/_modules/evennia/utils/logger.html @@ -600,6 +600,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/utils/optionclasses.html b/docs/0.9.5/_modules/evennia/utils/optionclasses.html index 4d117b49a6..cbfe4831e1 100644 --- a/docs/0.9.5/_modules/evennia/utils/optionclasses.html +++ b/docs/0.9.5/_modules/evennia/utils/optionclasses.html @@ -39,7 +39,13 @@

    Source code for evennia.utils.optionclasses

    -import datetime
    +"""
    +Option classes store user- or server Options in a generic way
    +while also providing validation.
    +
    +"""
    +
    +import datetime
     from evennia import logger
     from evennia.utils.ansi import strip_ansi
     from evennia.utils.validatorfuncs import _TZ_DICT
    @@ -47,7 +53,7 @@
     from evennia.utils import validatorfuncs
     
     
    -
    [docs]class BaseOption(object): +
    [docs]class BaseOption: """ Abstract Class to deal with encapsulating individual Options. An Option has a name/key, a description to display in relevant commands and menus, and a @@ -151,8 +157,8 @@
    [docs] def save(self, **kwargs): """ Stores the current value using `.handler.save_handler(self.key, value, **kwargs)` - where `kwargs` are a combination of those passed into this function and - the ones specified by the `OptionHandler`. + where kwargs are a combination of those passed into this function and the + ones specified by the OptionHandler. Keyword Args: any (any): Not used by default. These are passed in from self.set @@ -389,6 +395,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/utils/optionhandler.html b/docs/0.9.5/_modules/evennia/utils/optionhandler.html index 0a7c4e8ac6..cf5c69399f 100644 --- a/docs/0.9.5/_modules/evennia/utils/optionhandler.html +++ b/docs/0.9.5/_modules/evennia/utils/optionhandler.html @@ -246,6 +246,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/utils/picklefield.html b/docs/0.9.5/_modules/evennia/utils/picklefield.html index 4f5ed6fb9b..8bf0655d84 100644 --- a/docs/0.9.5/_modules/evennia/utils/picklefield.html +++ b/docs/0.9.5/_modules/evennia/utils/picklefield.html @@ -327,7 +327,7 @@ return value
    [docs] def value_to_string(self, obj): - value = self.value_from_object(obj) + value = self._get_val_from_obj(obj) return self.get_db_prep_value(value)
    [docs] def get_internal_type(self): @@ -368,6 +368,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/utils/search.html b/docs/0.9.5/_modules/evennia/utils/search.html index 61d8b357ff..fcd0b6c76c 100644 --- a/docs/0.9.5/_modules/evennia/utils/search.html +++ b/docs/0.9.5/_modules/evennia/utils/search.html @@ -77,7 +77,6 @@ "search_message", "search_channel", "search_help_entry", - "search_tag", "search_script_tag", "search_account_tag", "search_channel_tag", @@ -420,6 +419,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/utils/test_resources.html b/docs/0.9.5/_modules/evennia/utils/test_resources.html index b0af527d15..93c1d71e3e 100644 --- a/docs/0.9.5/_modules/evennia/utils/test_resources.html +++ b/docs/0.9.5/_modules/evennia/utils/test_resources.html @@ -80,18 +80,18 @@ should directly give the module pathname to unload. Example: + :: - ```python - # (in a test method) - unload_module(foo) - with mock.patch("foo.GLOBALTHING", "mockval"): - import foo - ... # test code using foo.GLOBALTHING, now set to 'mockval' - ``` + # (in a test method) + unload_module(foo) + with mock.patch("foo.GLOBALTHING", "mockval"): + import foo + ... # test code using foo.GLOBALTHING, now set to 'mockval' - This allows for mocking constants global to the module, since - otherwise those would not be mocked (since a module is only - loaded once). + Notes: + This allows for mocking constants global to the module, since + otherwise those would not be mocked (since a module is only + loaded once). """ if isinstance(module, str): @@ -241,6 +241,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/utils/text2html.html b/docs/0.9.5/_modules/evennia/utils/text2html.html index 718f7ef32e..629bd78a19 100644 --- a/docs/0.9.5/_modules/evennia/utils/text2html.html +++ b/docs/0.9.5/_modules/evennia/utils/text2html.html @@ -434,6 +434,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/utils/utils.html b/docs/0.9.5/_modules/evennia/utils/utils.html index 416b9983b2..dbbadff81f 100644 --- a/docs/0.9.5/_modules/evennia/utils/utils.html +++ b/docs/0.9.5/_modules/evennia/utils/utils.html @@ -385,7 +385,7 @@ return "\n".join(rows) -
    [docs]def iter_to_str(initer, endsep="and", addquote=False): +
    [docs]def iter_to_string(initer, endsep="and", addquote=False): """ This pretty-formats an iterable list as string output, adding an optional alternative separator to the second to last entry. If `addquote` @@ -401,17 +401,17 @@ values with double quotes. Returns: - str: The list represented as a string. + liststr (str): The list represented as a string. Examples: ```python - >>> list_to_string([1,2,3], endsep='') - '1, 2, 3' - >>> list_to_string([1,2,3], ensdep='and') - '1, 2 and 3' - >>> list_to_string([1,2,3], endsep='and', addquote=True) - '"1", "2" and "3"' + # no endsep: + [1,2,3] -> '1, 2, 3' + # with endsep=='and': + [1,2,3] -> '1, 2 and 3' + # with addquote and endsep + [1,2,3] -> '"1", "2" and "3"' ``` """ @@ -432,9 +432,8 @@ return ", ".join(str(v) for v in initer[:-1]) + "%s %s" % (endsep, initer[-1])
    -# legacy aliases -list_to_string = iter_to_str -iter_to_string = iter_to_str +# legacy alias +list_to_string = iter_to_string
    [docs]def wildcard_to_regexp(instring): @@ -892,7 +891,7 @@ the text with "?" in place of problematic characters. If the specified encoding cannot be found, the protocol flag is reset to utf-8. In any case, returns bytes. - Notes: + Note: If `text` is already bytes, return it as is. """ @@ -932,7 +931,7 @@ Returns: decoded_text (str): The decoded text. - Notes: + Note: If `text` is already str, return it as is. """ if isinstance(text, str): @@ -986,17 +985,18 @@ distance from parent. Args: - obj (any): Object to analyze. This may be either an instance or - a class. - parent (any): Can be either an instance, a class or the python - path to the class. + obj (any): Object to analyze. This may be either an instance + or a class. + parent (any): Can be either instance, class or python path to class. Returns: inherits_from (bool): If `parent` is a parent to `obj` or not. Notes: - What differentiates this function from Python's `isinstance()` is the - flexibility in the types allowed for the object and parent being compared. + What differs this function from e.g. `isinstance()` is that `obj` + may be both an instance and a class, and parent may be an + instance, a class, or the python path to a class (counting from + the evennia root directory). """ @@ -1044,7 +1044,8 @@ shortcut to having to use the full backend name. Args: - name (str): One of 'sqlite3', 'mysql', 'postgresql' or 'oracle'. + name (str): One of 'sqlite3', 'mysql', 'postgresql' + or 'oracle'. Returns: uses (bool): If the given database is used or not. @@ -1068,19 +1069,20 @@ timedelay (int or float): The delay in seconds callback (callable): Will be called as `callback(*args, **kwargs)` after `timedelay` seconds. - *args: Will be used as arguments to callback + args (any, optional): Will be used as arguments to callback Keyword Args: - persistent (bool): Make the delay persistent over a reboot or reload. - any: Any other keywords will be use as keyword arguments to callback. + persistent (bool, optional): should make the delay persistent + over a reboot or reload + any (any): Will be used as keyword arguments to callback. Returns: - deferred: Will fire with callback after `timedelay` seconds. Note that - if `timedelay()` is used in the - commandhandler callback chain, the callback chain can be - defined directly in the command body and don't need to be - specified here. + deferred (deferred): Will fire with callback after + `timedelay` seconds. Note that if `timedelay()` is used in the + commandhandler callback chain, the callback chain can be + defined directly in the command body and don't need to be + specified here. - Notes: + Note: The task handler (`evennia.scripts.taskhandler.TASK_HANDLER`) will be called for persistent or non-persistent tasks. If persistent is set to True, the callback, its arguments @@ -1111,16 +1113,17 @@ executed with `*args` and non-reserved `**kwargs` as arguments. The callable will be executed using ProcPool, or in a thread if ProcPool is not available. + Keyword Args: at_return (callable): Should point to a callable with one - argument. It will be called with the return value from - to_execute. + argument. It will be called with the return value from + to_execute. at_return_kwargs (dict): This dictionary will be used as - keyword arguments to the at_return callback. + keyword arguments to the at_return callback. at_err (callable): This will be called with a Failure instance - if there is an error in to_execute. + if there is an error in to_execute. at_err_kwargs (dict): This dictionary will be used as keyword - arguments to the at_err errback. + arguments to the at_err errback. Notes: All other `*args` and `**kwargs` will be passed on to @@ -1206,7 +1209,7 @@
    [docs]def has_parent(basepath, obj): """ - Checks if `basepath` is somewhere in obj's parent tree. + Checks if `basepath` is somewhere in `obj`'s parent tree. Args: basepath (str): Python dotpath to compare against obj path. @@ -1453,7 +1456,7 @@
    [docs]def class_from_module(path, defaultpaths=None): """ - Return a class from a module, given the class' full python path. This is + Return a class from a module, given the module's path. This is primarily used to convert db_typeclass_path:s to classes. Args: @@ -1574,8 +1577,8 @@ Returns: suggestions (list): Suggestions from `vocabulary` with a - similarity-rating that higher than or equal to `cutoff`. - Could be empty if there are no matches. + similarity-rating that higher than or equal to `cutoff`. + Could be empty if there are no matches. """ return [ @@ -1643,9 +1646,11 @@
    [docs]def format_table(table, extra_space=1): """ - Format a 2D array of strings into a multi-column table. + Note: `evennia.utils.evtable` is more powerful than this, but this function + can be useful when the number of columns and rows are unknown and must be + calculated on the fly. - Args: + Args. table (list): A list of lists to represent columns in the table: `[[val,val,val,...], [val,val,val,...], ...]`, where each val will be placed on a separate row in the @@ -1655,30 +1660,26 @@ padding (in characters) should be left between columns. Returns: - list: A list of lists representing the rows to print out one by one. + table (list): A list of lists representing the rows to print + out one by one. Notes: The function formats the columns to be as wide as the widest member of each column. - `evennia.utils.evtable` is more powerful than this, but this - function can be useful when the number of columns and rows are - unknown and must be calculated on the fly. + Example: + :: - Examples: :: - - ftable = format_table([[1,2,3], [4,5,6]]) - string = "" - for ir, row in enumarate(ftable): - if ir == 0: - # make first row white - string += "\\n|w" + "".join(row) + "|n" - else: - string += "\\n" + "".join(row) - print(string) + ftable = format_table([[...], [...], ...]) + for ir, row in enumarate(ftable): + if ir == 0: + # make first row white + string += "\\\\n|w" + ""join(row) + "|n" + else: + string += "\\\\n" + "".join(row) + print(string) """ - if not table: return [[]] @@ -1694,191 +1695,6 @@ return ftable
    -
    [docs]def percent(value, minval, maxval, formatting="{:3.1f}%"): - """ - Get a value in an interval as a percentage of its position - in that interval. This also understands negative numbers. - - Args: - value (number): This should be a value minval<=value<=maxval. - minval (number or None): Smallest value in interval. This could be None - for an open interval (then return will always be 100%) - maxval (number or None): Biggest value in interval. This could be None - for an open interval (then return will always be 100%) - formatted (str, optional): This is a string that should - accept one formatting tag. This will receive the - current value as a percentage. If None, the - raw float will be returned instead. - Returns: - str or float: The formatted value or the raw percentage as a float. - Notes: - We try to handle a weird interval gracefully. - - - If either maxval or minval is None (open interval), we (aribtrarily) assume 100%. - - If minval > maxval, we return 0%. - - If minval == maxval == value we are looking at a single value match and return 100%. - - If minval == maxval != value we return 0%. - - If value not in [minval..maxval], we set value to the closest - boundary, so the result will be 0% or 100%, respectively. - - """ - result = None - if None in (minval, maxval): - # we have no boundaries, percent calculation makes no sense, - # we set this to 100% since it - result = 100.0 - elif minval > maxval: - # interval has no width so we cannot - # occupy any position within it. - result = 0.0 - elif minval == maxval == value: - # this is a single value that we match - result = 100.0 - elif minval == maxval != value: - # interval has no width so we cannot be in it. - result = 0.0 - - if result is None: - # constrain value to interval - value = min(max(minval, value), maxval) - - # these should both be >0 - dpart = value - minval - dfull = maxval - minval - result = (dpart / dfull) * 100.0 - - if isinstance(formatting, str): - return formatting.format(result) - return result
    - - -import functools # noqa - - -
    [docs]def percentile(iterable, percent, key=lambda x: x): - """ - Find the percentile of a list of values. - - Args: - iterable (iterable): A list of values. Note N MUST BE already sorted. - percent (float): A value from 0.0 to 1.0. - key (callable, optional). Function to compute value from each element of N. - - Returns: - float: The percentile of the values - - """ - if not iterable: - return None - k = (len(iterable) - 1) * percent - f = math.floor(k) - c = math.ceil(k) - if f == c: - return key(iterable[int(k)]) - d0 = key(iterable[int(f)]) * (c - k) - d1 = key(iterable[int(c)]) * (k - f) - return d0 + d1
    - - -
    [docs]def format_grid(elements, width=78, sep=" ", verbatim_elements=None): - """ - This helper function makes a 'grid' output, where it distributes the given - string-elements as evenly as possible to fill out the given width. - will not work well if the variation of length is very big! - - Args: - elements (iterable): A 1D list of string elements to put in the grid. - width (int, optional): The width of the grid area to fill. - sep (str, optional): The extra separator to put between words. If - set to the empty string, words may run into each other. - verbatim_elements (list, optional): This is a list of indices pointing to - specific items in the `elements` list. An element at this index will - not be included in the calculation of the slot sizes. It will still - be inserted into the grid at the correct position and may be surrounded - by padding unless filling the entire line. This is useful for embedding - decorations in the grid, such as horizontal bars. - - Returns: - gridstr: The grid as a list of ready-formatted rows. We return it - like this to make it easier to insert decorations between rows, such - as horizontal bars. - """ - if not verbatim_elements: - verbatim_elements = [] - - nelements = len(elements) - # add sep to all but the very last element - elements = [elements[ie] + sep for ie in range(nelements - 1)] + [elements[-1]] - wls = [len(elem) for elem in elements] - wls_percentile = [wl for iw, wl in enumerate(wls) if iw not in verbatim_elements] - # from pudb import debugger - # debugger.Debugger().set_trace() - - # get the nth percentile as a good representation of average width - averlen = int(percentile(sorted(wls_percentile), 0.9)) + 2 # include extra space - aver_per_row = width // averlen + 1 - - if aver_per_row == 1: - # one line per row, output directly since this is trivial - # we use rstrip here to remove extra spaces added by sep - return [ - crop(element.rstrip(), width) + " " * max(0, width - len(element.rstrip())) - for iel, element in enumerate(elements) - ] - - indices = [averlen * ind for ind in range(aver_per_row - 1)] - - rows = [] - ic = 0 - row = "" - for ie, element in enumerate(elements): - - wl = wls[ie] - lrow = len(row) - debug = row.replace(" ", ".") - - if lrow + wl > width: - # this slot extends outside grid, move to next line - row += " " * (width - lrow) - rows.append(row) - if wl >= width: - # remove sep if this fills the entire line - element = element.rstrip() - row = crop(element, width) - ic = 0 - elif ic >= aver_per_row - 1: - # no more slots available on this line - row += " " * max(0, (width - lrow)) - rows.append(row) - row = crop(element, width) - ic = 0 - else: - try: - while lrow > max(0, indices[ic]): - # slot too wide, extend into adjacent slot - ic += 1 - row += " " * max(0, indices[ic] - lrow) - except IndexError: - # we extended past edge of grid, crop or move to next line - if ic == 0: - row = crop(element, width) - else: - row += " " * max(0, width - lrow) - rows.append(row) - ic = 0 - else: - # add a new slot - row += element + " " * max(0, averlen - wl) - ic += 1 - - if ie >= nelements - 1: - # last element, make sure to store - row += " " * max(0, width - len(row)) - rows.append(row) - - return rows
    - -
    [docs]def get_evennia_pids(): """ Get the currently valid PIDs (Process IDs) of the Portal and @@ -1890,13 +1706,13 @@ Examples: This can be used to determine if we are in a subprocess by + something like: ```python self_pid = os.getpid() server_pid, portal_pid = get_evennia_pids() is_subprocess = self_pid not in (server_pid, portal_pid) ``` - """ server_pidfile = os.path.join(settings.GAME_DIR, "server.pid") portal_pidfile = os.path.join(settings.GAME_DIR, "portal.pid") @@ -2112,15 +1928,16 @@ query (str, optional): The search query used to produce `matches`. quiet (bool, optional): If `True`, no messages will be echoed to caller on errors. + Keyword Args: nofound_string (str): Replacement string to echo on a notfound error. multimatch_string (str): Replacement string to echo on a multimatch error. Returns: processed_result (Object or None): This is always a single result - or `None`. If `None`, any error reporting/handling should - already have happened. The returned object is of the type we are - checking multimatches for (e.g. Objects or Commands) + or `None`. If `None`, any error reporting/handling should + already have happened. The returned object is of the type we are + checking multimatches for (e.g. Objects or Commands) """ @@ -2179,10 +1996,10 @@ Keyword Args: size_limit (int): Use this to limit the number of elements - alloweds to be in this list. By default the overshooting elements - will be removed in FIFO order. + alloweds to be in this list. By default the overshooting elements + will be removed in FIFO order. fifo (bool, optional): Defaults to `True`. Remove overshooting elements - in FIFO order. If `False`, remove in FILO order. + in FIFO order. If `False`, remove in FILO order. """ super().__init__() @@ -2249,10 +2066,10 @@ from this parent. Returns: - dict: On the form `{"typeclass.path": typeclass, ...}` + typeclasses (dict): On the form {"typeclass.path": typeclass, ...} Notes: - This will dynamically retrieve all abstract django models inheriting at any distance + This will dynamicall retrieve all abstract django models inheriting at any distance from the TypedObject base (aka a Typeclass) so it will work fine with any custom classes being added. @@ -2275,19 +2092,14 @@
    [docs]def interactive(func): """ - Decorator to make a method pausable with `yield(seconds)` - and able to ask for user-input with `response=yield(question)`. - For the question-asking to work, one of the args or kwargs to the - decorated function must be named 'caller'. + Decorator to make a method pausable with yield(seconds) and able to ask for + user-input with `response=yield(question)`. For the question-asking to + work, 'caller' must the name of an argument or kwarg to the decorated + function. - Raises: - ValueError: If asking an interactive question but the decorated - function has no arg or kwarg named 'caller'. - ValueError: If passing non int/float to yield using for pausing. + Example: + :: - Examples: - - ```python @interactive def myfunc(caller): caller.msg("This is a test") @@ -2299,10 +2111,9 @@ yield(5) else: # ... - ``` Notes: - This turns the decorated function or method into a generator. + This turns the method into a generator! """ from evennia.utils.evmenu import get_input @@ -2373,6 +2184,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/utils/validatorfuncs.html b/docs/0.9.5/_modules/evennia/utils/validatorfuncs.html index a59becde86..9be05fee0d 100644 --- a/docs/0.9.5/_modules/evennia/utils/validatorfuncs.html +++ b/docs/0.9.5/_modules/evennia/utils/validatorfuncs.html @@ -89,10 +89,12 @@ account (AccountDB): The Account performing this lookup. Unless `from_tz` is provided, the account's timezone option will be used. from_tz (pytz.timezone): An instance of a pytz timezone object from the - user. If not provided, tries to use the timezone option of `account`. + user. If not provided, tries to use the timezone option of the `account`. If neither one is provided, defaults to UTC. + Returns: datetime in UTC. + Raises: ValueError: If encountering a malformed timezone, date string or other format error. @@ -300,6 +302,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/web/utils/backends.html b/docs/0.9.5/_modules/evennia/web/utils/backends.html index 1f1af6595a..1702767ae9 100644 --- a/docs/0.9.5/_modules/evennia/web/utils/backends.html +++ b/docs/0.9.5/_modules/evennia/web/utils/backends.html @@ -109,6 +109,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/web/utils/general_context.html b/docs/0.9.5/_modules/evennia/web/utils/general_context.html index b25b615f63..91b11c018c 100644 --- a/docs/0.9.5/_modules/evennia/web/utils/general_context.html +++ b/docs/0.9.5/_modules/evennia/web/utils/general_context.html @@ -164,6 +164,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/web/utils/middleware.html b/docs/0.9.5/_modules/evennia/web/utils/middleware.html index 02aa7b2a62..368b5780f9 100644 --- a/docs/0.9.5/_modules/evennia/web/utils/middleware.html +++ b/docs/0.9.5/_modules/evennia/web/utils/middleware.html @@ -138,6 +138,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/web/utils/tests.html b/docs/0.9.5/_modules/evennia/web/utils/tests.html index 795f3ebbe2..6798bcb0a4 100644 --- a/docs/0.9.5/_modules/evennia/web/utils/tests.html +++ b/docs/0.9.5/_modules/evennia/web/utils/tests.html @@ -137,6 +137,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/web/webclient/views.html b/docs/0.9.5/_modules/evennia/web/webclient/views.html index 733fa5d74c..65348ca2c1 100644 --- a/docs/0.9.5/_modules/evennia/web/webclient/views.html +++ b/docs/0.9.5/_modules/evennia/web/webclient/views.html @@ -96,6 +96,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/web/website/forms.html b/docs/0.9.5/_modules/evennia/web/website/forms.html index 5aebcd85ac..a0f9609747 100644 --- a/docs/0.9.5/_modules/evennia/web/website/forms.html +++ b/docs/0.9.5/_modules/evennia/web/website/forms.html @@ -238,6 +238,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/web/website/templatetags/addclass.html b/docs/0.9.5/_modules/evennia/web/website/templatetags/addclass.html index ec374493e3..669e8be8fe 100644 --- a/docs/0.9.5/_modules/evennia/web/website/templatetags/addclass.html +++ b/docs/0.9.5/_modules/evennia/web/website/templatetags/addclass.html @@ -83,6 +83,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/web/website/tests.html b/docs/0.9.5/_modules/evennia/web/website/tests.html index 5952069b17..fb836f531b 100644 --- a/docs/0.9.5/_modules/evennia/web/website/tests.html +++ b/docs/0.9.5/_modules/evennia/web/website/tests.html @@ -355,6 +355,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/evennia/web/website/views.html b/docs/0.9.5/_modules/evennia/web/website/views.html index 31fbcf2303..871201800f 100644 --- a/docs/0.9.5/_modules/evennia/web/website/views.html +++ b/docs/0.9.5/_modules/evennia/web/website/views.html @@ -1187,6 +1187,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/functools.html b/docs/0.9.5/_modules/functools.html index 3308922bd5..011055a779 100644 --- a/docs/0.9.5/_modules/functools.html +++ b/docs/0.9.5/_modules/functools.html @@ -914,6 +914,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/index.html b/docs/0.9.5/_modules/index.html index 7390cab74e..fe6f5a4513 100644 --- a/docs/0.9.5/_modules/index.html +++ b/docs/0.9.5/_modules/index.html @@ -259,6 +259,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/typeclasses/accounts.html b/docs/0.9.5/_modules/typeclasses/accounts.html index 4f1fe80709..c54f97f500 100644 --- a/docs/0.9.5/_modules/typeclasses/accounts.html +++ b/docs/0.9.5/_modules/typeclasses/accounts.html @@ -169,6 +169,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/typeclasses/channels.html b/docs/0.9.5/_modules/typeclasses/channels.html index 003b7905b7..0993a2f98d 100644 --- a/docs/0.9.5/_modules/typeclasses/channels.html +++ b/docs/0.9.5/_modules/typeclasses/channels.html @@ -127,6 +127,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/typeclasses/characters.html b/docs/0.9.5/_modules/typeclasses/characters.html index 268beea0f1..002ed2a907 100644 --- a/docs/0.9.5/_modules/typeclasses/characters.html +++ b/docs/0.9.5/_modules/typeclasses/characters.html @@ -99,6 +99,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_modules/typeclasses/objects.html b/docs/0.9.5/_modules/typeclasses/objects.html index 27437bd36d..01a23f1ecf 100644 --- a/docs/0.9.5/_modules/typeclasses/objects.html +++ b/docs/0.9.5/_modules/typeclasses/objects.html @@ -227,6 +227,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/_static/nature.css b/docs/0.9.5/_static/nature.css index 5c0df42795..81f2fb719c 100644 --- a/docs/0.9.5/_static/nature.css +++ b/docs/0.9.5/_static/nature.css @@ -398,16 +398,6 @@ code.descname { padding: 5px; } -/* The develop-branch warning header */ - -.develop { - background-color: #ffe4e4; - align-content: center; - width: auto; - text-align: center; - letter-spacing: 15px; -} - /* -- screen sizes ------------------------------------------------------------------ */ diff --git a/docs/0.9.5/api/evennia-api.html b/docs/0.9.5/api/evennia-api.html index 2787e8e0ee..746874e481 100644 --- a/docs/0.9.5/api/evennia-api.html +++ b/docs/0.9.5/api/evennia-api.html @@ -264,19 +264,10 @@
  • evennia.utils +
    diff --git a/docs/0.9.5/api/evennia.accounts.accounts.html b/docs/0.9.5/api/evennia.accounts.accounts.html index cd742779d7..5d417de81a 100644 --- a/docs/0.9.5/api/evennia.accounts.accounts.html +++ b/docs/0.9.5/api/evennia.accounts.accounts.html @@ -939,94 +939,6 @@ overriding the call (unused by default).

  • -
    -
    -class evennia.accounts.accounts.DefaultGuest(*args, **kwargs)[source]
    -

    Bases: evennia.accounts.accounts.DefaultAccount

    -

    This class is used for guest logins. Unlike Accounts, Guests and -their characters are deleted after disconnection.

    -
    -
    -classmethod create(**kwargs)[source]
    -

    Forwards request to cls.authenticate(); returns a DefaultGuest object -if one is available for use.

    -
    - -
    -
    -classmethod authenticate(**kwargs)[source]
    -

    Gets or creates a Guest account object.

    -
    -
    Keyword Arguments
    -

    ip (str, optional) – IP address of requestor; used for ban checking, -throttling and logging

    -
    -
    Returns
    -

    account (Object) – Guest account object, if available -errors (list): List of error messages accrued during this request.

    -
    -
    -
    - -
    -
    -at_post_login(session=None, **kwargs)[source]
    -

    In theory, guests only have one character regardless of which -MULTISESSION_MODE we’re in. They don’t get a choice.

    -
    -
    Parameters
    -
      -
    • session (Session, optional) – Session connecting.

    • -
    • **kwargs (dict) – Arbitrary, optional arguments for users -overriding the call (unused by default).

    • -
    -
    -
    -
    - -
    -
    -at_server_shutdown()[source]
    -

    We repeat the functionality of at_disconnect() here just to -be on the safe side.

    -
    - -
    -
    -at_post_disconnect(**kwargs)[source]
    -

    Once having disconnected, destroy the guest’s characters and

    -
    -
    Parameters
    -

    **kwargs (dict) – Arbitrary, optional arguments for users -overriding the call (unused by default).

    -
    -
    -
    - -
    -
    -exception DoesNotExist
    -

    Bases: evennia.accounts.accounts.DefaultAccount.DoesNotExist

    -
    - -
    -
    -exception MultipleObjectsReturned
    -

    Bases: evennia.accounts.accounts.DefaultAccount.MultipleObjectsReturned

    -
    - -
    -
    -path = 'evennia.accounts.accounts.DefaultGuest'
    -
    - -
    -
    -typename = 'DefaultGuest'
    -
    - -
    - @@ -1062,6 +974,7 @@ overriding the call (unused by default).

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.accounts.admin.html b/docs/0.9.5/api/evennia.accounts.admin.html index b28eed9508..d581408522 100644 --- a/docs/0.9.5/api/evennia.accounts.admin.html +++ b/docs/0.9.5/api/evennia.accounts.admin.html @@ -373,6 +373,7 @@ has a slightly different workflow.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.accounts.bots.html b/docs/0.9.5/api/evennia.accounts.bots.html index a178430d46..795e9a7d08 100644 --- a/docs/0.9.5/api/evennia.accounts.bots.html +++ b/docs/0.9.5/api/evennia.accounts.bots.html @@ -483,6 +483,7 @@ triggered by the bot_data_in Inputfunc.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.accounts.html b/docs/0.9.5/api/evennia.accounts.html index bb8742e940..06788cdd55 100644 --- a/docs/0.9.5/api/evennia.accounts.html +++ b/docs/0.9.5/api/evennia.accounts.html @@ -85,6 +85,7 @@ more Objects depending on settings. An Account has no in-game existence.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.accounts.manager.html b/docs/0.9.5/api/evennia.accounts.manager.html index 0d0671bca8..724e73b2ed 100644 --- a/docs/0.9.5/api/evennia.accounts.manager.html +++ b/docs/0.9.5/api/evennia.accounts.manager.html @@ -80,6 +80,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.accounts.models.html b/docs/0.9.5/api/evennia.accounts.models.html index d7712e1570..5492c97b92 100644 --- a/docs/0.9.5/api/evennia.accounts.models.html +++ b/docs/0.9.5/api/evennia.accounts.models.html @@ -401,6 +401,7 @@ class built by **create_forward_many_to_many_manager()** define
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.commands.cmdhandler.html b/docs/0.9.5/api/evennia.commands.cmdhandler.html index 9c6090ec92..7e2fe21924 100644 --- a/docs/0.9.5/api/evennia.commands.cmdhandler.html +++ b/docs/0.9.5/api/evennia.commands.cmdhandler.html @@ -172,6 +172,7 @@ default Evennia.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.commands.cmdparser.html b/docs/0.9.5/api/evennia.commands.cmdparser.html index 5f5cdf6983..274847b680 100644 --- a/docs/0.9.5/api/evennia.commands.cmdparser.html +++ b/docs/0.9.5/api/evennia.commands.cmdparser.html @@ -195,6 +195,7 @@ the remaining arguments, and the matched cmdobject from the cmdset.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.commands.cmdset.html b/docs/0.9.5/api/evennia.commands.cmdset.html index bf7723312c..6a45821e37 100644 --- a/docs/0.9.5/api/evennia.commands.cmdset.html +++ b/docs/0.9.5/api/evennia.commands.cmdset.html @@ -412,6 +412,7 @@ self.add().

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.commands.cmdsethandler.html b/docs/0.9.5/api/evennia.commands.cmdsethandler.html index 0450a27c7c..c385eee7ee 100644 --- a/docs/0.9.5/api/evennia.commands.cmdsethandler.html +++ b/docs/0.9.5/api/evennia.commands.cmdsethandler.html @@ -380,6 +380,7 @@ handled automatically by @reload).

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.commands.command.html b/docs/0.9.5/api/evennia.commands.command.html index 8f6909a52a..2642740d0d 100644 --- a/docs/0.9.5/api/evennia.commands.command.html +++ b/docs/0.9.5/api/evennia.commands.command.html @@ -374,6 +374,17 @@ commands the caller can use.

    +
    +
    +client_height()[source]
    +

    Get the client screenheight for the session using this command.

    +
    +
    Returns
    +

    client height (int) – The height (in characters) of the client window.

    +
    +
    +
    +
    styled_table(*args, **kwargs)[source]
    @@ -426,11 +437,6 @@ detailing the contents of the table.

    save_for_next = False
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'command', 'tags': '', 'text': '\n Base command\n\n Usage:\n command [args]\n\n This is the base command class. Inherit from this\n to create new commands.\n\n The cmdhandler makes the following variables available to the\n command methods (so you can always assume them to be there):\n self.caller - the game object calling the command\n self.cmdstring - the command name used to trigger this command (allows\n you to know which alias was used, for example)\n cmd.args - everything supplied to the command following the cmdstring\n (this is usually what is parsed in self.parse())\n cmd.cmdset - the cmdset from which this command was matched (useful only\n seldomly, notably for help-type commands, to create dynamic\n help entries and lists)\n cmd.obj - the object on which this command is defined. If a default command,\n this is usually the same as caller.\n cmd.rawstring - the full raw string input, including any args and no parsing.\n\n The following class properties can/should be defined on your child class:\n\n key - identifier for command (e.g. "look")\n aliases - (optional) list of aliases (e.g. ["l", "loo"])\n locks - lock string (default is "cmd:all()")\n help_category - how to organize this help entry in help system\n (default is "General")\n auto_help - defaults to True. Allows for turning off auto-help generation\n arg_regex - (optional) raw string regex defining how the argument part of\n the command should look in order to match for this command\n (e.g. must it be a space between cmdname and arg?)\n auto_help_display_key - (optional) if given, this replaces the string shown\n in the auto-help listing. This is particularly useful for system-commands\n whose actual key is not really meaningful.\n\n (Note that if auto_help is on, this initial string is also used by the\n system to create the help entry for the command, so it\'s a good idea to\n format it similar to this one). This behavior can be changed by\n overriding the method \'get_help\' of a command: by default, this\n method returns cmd.__doc__ (that is, this very docstring, or\n the docstring of your command). You can, however, extend or\n replace this without disabling auto_help.\n '}
    -
    -
    @@ -475,6 +481,7 @@ detailing the contents of the table.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.commands.default.account.html b/docs/0.9.5/api/evennia.commands.default.account.html index d45c4de576..4f4415b6c1 100644 --- a/docs/0.9.5/api/evennia.commands.default.account.html +++ b/docs/0.9.5/api/evennia.commands.default.account.html @@ -69,7 +69,7 @@ method. Otherwise all text will be returned to all connected sessions.

    -aliases = ['ls', 'l']
    +aliases = ['l', 'ls']
    @@ -98,11 +98,6 @@ method. Otherwise all text will be returned to all connected sessions.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': 'ls l', 'category': 'general', 'key': 'look', 'tags': '', 'text': '\n look while out-of-character\n\n Usage:\n look\n\n Look in the ooc state.\n '}
    -
    -
    @@ -157,11 +152,6 @@ as you the account have access right to puppet it.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': 'puppet', 'category': 'general', 'key': 'ic', 'tags': '', 'text': '\n control an object you have permission to puppet\n\n Usage:\n ic <character>\n\n Go in-character (IC) as a given Character.\n\n This will attempt to "become" a different object assuming you have\n the right to do so. Note that it\'s the ACCOUNT character that puppets\n characters/objects and which needs to have the correct permission!\n\n You cannot become an object that is already controlled by another\n account. In principle <character> can be any in-game object as long\n as you the account have access right to puppet it.\n '}
    -
    -
    @@ -211,11 +201,6 @@ as you the account have access right to puppet it.

    lock_storage = 'cmd:pperm(Player)'
    -
    -
    -search_index_entry = {'aliases': 'unpuppet', 'category': 'general', 'key': 'ooc', 'tags': '', 'text': '\n stop puppeting and go ooc\n\n Usage:\n ooc\n\n Go out-of-character (OOC).\n\n This will leave your current character and put you in a incorporeal OOC state.\n '}
    -
    -
    @@ -264,11 +249,6 @@ as you the account have access right to puppet it.

    lock_storage = 'cmd:pperm(Player)'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'password', 'tags': '', 'text': '\n change your password\n\n Usage:\n password <old password> = <new password>\n\n Changes your password. Make sure to pick a safe one.\n '}
    -
    -
    @@ -325,11 +305,6 @@ game. Use the /all switch to disconnect from all sessions.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'quit', 'tags': '', 'text': '\n quit the game\n\n Usage:\n quit\n\n Switch:\n all - disconnect all connected sessions\n\n Gracefully disconnect your current session from the\n game. Use the /all switch to disconnect from all sessions.\n '}
    -
    -
    @@ -381,11 +356,6 @@ if you want.

    lock_storage = 'cmd:pperm(Player)'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'charcreate', 'tags': '', 'text': '\n create a new character\n\n Usage:\n charcreate <charname> [= desc]\n\n Create a new character, optionally giving it a description. You\n may use upper-case letters in the name - you will nevertheless\n always be able to access your character using lower-case letters\n if you want.\n '}
    -
    -
    @@ -444,11 +414,6 @@ later connecting with a client with different capabilities.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': 'options', 'category': 'general', 'key': 'option', 'tags': '', 'text': '\n Set an account option\n\n Usage:\n option[/save] [name = value]\n\n Switches:\n save - Save the current option settings for future logins.\n clear - Clear the saved options.\n\n This command allows for viewing and setting client interface\n settings. Note that saved options may not be able to be used if\n later connecting with a client with different capabilities.\n\n\n '}
    -
    -
    @@ -497,11 +462,6 @@ later connecting with a client with different capabilities.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'sessions', 'tags': '', 'text': '\n check your connected session(s)\n\n Usage:\n sessions\n\n Lists the sessions currently connected to your account.\n\n '}
    -
    -
    @@ -552,11 +512,6 @@ also for those with all permissions.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': 'doing', 'category': 'general', 'key': 'who', 'tags': '', 'text': '\n list who is currently online\n\n Usage:\n who\n doing\n\n Shows who is currently online. Doing is an alias that limits info\n also for those with all permissions.\n '}
    -
    -
    @@ -636,11 +591,6 @@ Takes a table of columns [[val,val,…],[val,val,…],…]

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'color', 'tags': '', 'text': '\n testing which colors your client support\n\n Usage:\n color ansi||xterm256\n\n Prints a color map along with in-mud color codes to use to produce\n them. It also tests what is supported in your client. Choices are\n 16-color ansi (supported in most muds) or the 256-color xterm256\n standard. No checking is done to determine your client supports\n color - if not you will see rubbish appear.\n '}
    -
    -
    @@ -696,11 +646,6 @@ Use the unquell command to revert back to normal operation.

    lock_storage = 'cmd:pperm(Player)'
    -
    -
    -search_index_entry = {'aliases': 'unquell', 'category': 'general', 'key': 'quell', 'tags': '', 'text': "\n use character's permissions instead of account's\n\n Usage:\n quell\n unquell\n\n Normally the permission level of the Account is used when puppeting a\n Character/Object to determine access. This command will switch the lock\n system to make use of the puppeted Object's permissions instead. This is\n useful mainly for testing.\n Hierarchical permission quelling only work downwards, thus an Account cannot\n use a higher-permission Character to escalate their permission level.\n Use the unquell command to revert back to normal operation.\n "}
    -
    -
    @@ -744,11 +689,6 @@ Use the unquell command to revert back to normal operation.

    lock_storage = 'cmd:pperm(Player)'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'chardelete', 'tags': '', 'text': '\n delete a character - this cannot be undone!\n\n Usage:\n chardelete <charname>\n\n Permanently deletes one of your characters.\n '}
    -
    -
    @@ -806,11 +746,6 @@ to all the variables defined therein.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'style', 'tags': '', 'text': '\n In-game style options\n\n Usage:\n style\n style <option> = <value>\n\n Configure stylings for in-game display elements like table borders, help\n entriest etc. Use without arguments to see all available options.\n\n '}
    -
    - @@ -848,6 +783,7 @@ to all the variables defined therein.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.commands.default.admin.html b/docs/0.9.5/api/evennia.commands.default.admin.html index 0374ccfb4e..78a7330985 100644 --- a/docs/0.9.5/api/evennia.commands.default.admin.html +++ b/docs/0.9.5/api/evennia.commands.default.admin.html @@ -89,11 +89,6 @@ supplied it will be echoed to the user unless /quiet is set.

    lock_storage = 'cmd:perm(boot) or perm(Admin)'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'admin', 'key': 'boot', 'tags': '', 'text': '\n kick an account from the server.\n\n Usage\n boot[/switches] <account obj> [: reason]\n\n Switches:\n quiet - Silently boot without informing account\n sid - boot by session id instead of name or dbref\n\n Boot an account object from the server. If a reason is\n supplied it will be echoed to the user unless /quiet is set.\n '}
    -
    -
    @@ -168,11 +163,6 @@ values in each tuple is set to the empty string.

    lock_storage = 'cmd:perm(ban) or perm(Developer)'
    -
    -
    -search_index_entry = {'aliases': 'bans', 'category': 'admin', 'key': 'ban', 'tags': '', 'text': "\n ban an account from the server\n\n Usage:\n ban [<name or ip> [: reason]]\n\n Without any arguments, shows numbered list of active bans.\n\n This command bans a user from accessing the game. Supply an optional\n reason to be able to later remember why the ban was put in place.\n\n It is often preferable to ban an account from the server than to\n delete an account with accounts/delete. If banned by name, that account\n account can no longer be logged into.\n\n IP (Internet Protocol) address banning allows blocking all access\n from a specific address or subnet. Use an asterisk (*) as a\n wildcard.\n\n Examples:\n ban thomas - ban account 'thomas'\n ban/ip 134.233.2.111 - ban specific ip address\n ban/ip 134.233.2.* - ban all in a subnet\n ban/ip 134.233.*.* - even wider ban\n\n A single IP filter can be easy to circumvent by changing computers\n or requesting a new IP address. Setting a wide IP block filter with\n wildcards might be tempting, but remember that it may also\n accidentally block innocent users connecting from the same country\n or region.\n\n "}
    -
    -
    @@ -219,11 +209,6 @@ unban.

    lock_storage = 'cmd:perm(unban) or perm(Developer)'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'admin', 'key': 'unban', 'tags': '', 'text': '\n remove a ban from an account\n\n Usage:\n unban <banid>\n\n This will clear an account name/ip ban previously set with the ban\n command. Use this command without an argument to view a numbered\n list of bans. Use the numbers in this list to select which one to\n unban.\n\n '}
    -
    -
    @@ -253,7 +238,7 @@ to accounts respectively.

    -aliases = ['pemit', 'remit']
    +aliases = ['remit', 'pemit']
    @@ -282,11 +267,6 @@ to accounts respectively.

    lock_storage = 'cmd:perm(emit) or perm(Builder)'
    -
    -
    -search_index_entry = {'aliases': 'pemit remit', 'category': 'admin', 'key': 'emit', '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 '}
    -
    -
    @@ -330,11 +310,6 @@ to accounts respectively.

    lock_storage = 'cmd:perm(newpassword) or perm(Admin)'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'admin', 'key': 'userpassword', 'tags': '', 'text': "\n change the password of an account\n\n Usage:\n userpassword <user obj> = <new password>\n\n Set an account's password.\n "}
    -
    -
    @@ -388,11 +363,6 @@ or account. If no permission is given, list all permissions on <object>.lock_storage = 'cmd:perm(perm) or perm(Developer)'
    -
    -
    -search_index_entry = {'aliases': 'setperm', 'category': 'admin', 'key': 'perm', 'tags': '', 'text': '\n set the permissions of an account/object\n\n Usage:\n perm[/switch] <object> [= <permission>[,<permission>,...]]\n perm[/switch] *<account> [= <permission>[,<permission>,...]]\n\n Switches:\n del - delete the given permission from <object> or <account>.\n account - set permission on an account (same as adding * to name)\n\n This command sets/clears individual permission strings on an object\n or account. If no permission is given, list all permissions on <object>.\n '}
    -
    -
    @@ -437,11 +407,6 @@ including all currently unlogged in.

    lock_storage = 'cmd:perm(wall) or perm(Admin)'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'admin', 'key': 'wall', 'tags': '', 'text': '\n make an announcement to all\n\n Usage:\n wall <message>\n\n Announces a message to all connected sessions\n including all currently unlogged in.\n '}
    -
    -
    @@ -491,11 +456,6 @@ including all currently unlogged in.

    lock_storage = 'cmd:perm(spawn) or perm(Builder)'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'building', 'key': 'force', 'tags': '', 'text': '\n forces an object to execute a command\n\n Usage:\n force <object>=<command string>\n\n Example:\n force bob=get stick\n '}
    -
    - @@ -533,6 +493,7 @@ including all currently unlogged in.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.commands.default.batchprocess.html b/docs/0.9.5/api/evennia.commands.default.batchprocess.html index 049127d046..482b3ae549 100644 --- a/docs/0.9.5/api/evennia.commands.default.batchprocess.html +++ b/docs/0.9.5/api/evennia.commands.default.batchprocess.html @@ -103,11 +103,6 @@ skipping, reloading etc.

    lock_storage = 'cmd:perm(batchcommands) or perm(Developer)'
    -
    -
    -search_index_entry = {'aliases': 'batchcmd batchcommand', 'category': 'building', 'key': 'batchcommands', '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 '}
    -
    -
    @@ -166,11 +161,6 @@ object copies behind when testing out the script.

    lock_storage = 'cmd:superuser()'
    -
    -
    -search_index_entry = {'aliases': 'batchcodes', 'category': 'building', 'key': 'batchcode', 'tags': '', 'text': '\n build from batch-code file\n\n Usage:\n batchcode[/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 debug - auto-delete all objects that has been marked as\n deletable in the script file (see example files for\n syntax). This is useful so as to to not leave multiple\n object copies behind when testing out the script.\n\n Runs batches of commands from a batch-code text file (*.py).\n\n '}
    -
    - @@ -208,6 +198,7 @@ object copies behind when testing out the script.

  • 0.9.5 (v0.9.5 branch)
  • +
    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 8b8dceb615..a22a3a84a6 100644 --- a/docs/0.9.5/api/evennia.commands.default.building.html +++ b/docs/0.9.5/api/evennia.commands.default.building.html @@ -85,11 +85,6 @@ the cases, see the module doc.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'command', 'tags': '', 'text': "\n This is a parent class for some of the defining objmanip commands\n since they tend to have some more variables to define new objects.\n\n Each object definition can have several components. First is\n always a name, followed by an optional alias list and finally an\n some optional data, such as a typeclass or a location. A comma ','\n separates different objects. Like this:\n\n name1;alias;alias;alias:option, name2;alias;alias ...\n\n Spaces between all components are stripped.\n\n A second situation is attribute manipulation. Such commands\n are simpler and offer combinations\n\n objname/attr/attr/attr, objname/attr, ...\n\n "}
    -
    -
    @@ -151,11 +146,6 @@ by everyone.

    lock_storage = 'cmd:perm(setobjalias) or perm(Builder)'
    -
    -
    -search_index_entry = {'aliases': 'setobjalias', 'category': 'building', 'key': 'alias', 'tags': '', 'text': "\n adding permanent aliases for object\n\n Usage:\n alias <obj> [= [alias[,alias,alias,...]]]\n alias <obj> =\n alias/category <obj> = [alias[,alias,...]:<category>\n\n Switches:\n category - requires ending input with :category, to store the\n given aliases with the given category.\n\n Assigns aliases to an object so it can be referenced by more\n than one name. Assign empty to remove all aliases from object. If\n assigning a category, all aliases given will be using this category.\n\n Observe that this is not the same thing as personal aliases\n created with the 'nick' command! Aliases set with alias are\n changing the object in question, making those aliases usable\n by everyone.\n "}
    -
    -
    @@ -201,11 +191,6 @@ one exact copy of the original object will be created with the name lock_storage = 'cmd:perm(copy) or perm(Builder)'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'building', 'key': 'copy', 'tags': '', 'text': "\n copy an object and its properties\n\n Usage:\n copy <original obj> [= <new_name>][;alias;alias..]\n [:<new_location>] [,<new_name2> ...]\n\n Create one or more copies of an object. If you don't supply any targets,\n one exact copy of the original object will be created with the name *_copy.\n "}
    -
    -
    @@ -298,11 +283,6 @@ required and get the attribute from the object.

    lock_storage = 'cmd:perm(cpattr) or perm(Builder)'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'building', 'key': 'cpattr', 'tags': '', 'text': "\n copy attributes between objects\n\n Usage:\n cpattr[/switch] <obj>/<attr> = <obj1>/<attr1> [,<obj2>/<attr2>,<obj3>/<attr3>,...]\n cpattr[/switch] <obj>/<attr> = <obj1> [,<obj2>,<obj3>,...]\n cpattr[/switch] <attr> = <obj1>/<attr1> [,<obj2>/<attr2>,<obj3>/<attr3>,...]\n cpattr[/switch] <attr> = <obj1>[,<obj2>,<obj3>,...]\n\n Switches:\n move - delete the attribute from the source object after copying.\n\n Example:\n cpattr coolness = Anna/chillout, Anna/nicety, Tom/nicety\n ->\n copies the coolness attribute (defined on yourself), to attributes\n on Anna and Tom.\n\n Copy the attribute one object to one or more attributes on another object.\n If you don't supply a source object, yourself is used.\n "}
    -
    -
    @@ -357,11 +337,6 @@ object. If you don’t supply a source object, yourself is used.

    lock_storage = 'cmd:perm(mvattr) or perm(Builder)'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'building', 'key': 'mvattr', 'tags': '', 'text': "\n move attributes between objects\n\n Usage:\n mvattr[/switch] <obj>/<attr> = <obj1>/<attr1> [,<obj2>/<attr2>,<obj3>/<attr3>,...]\n mvattr[/switch] <obj>/<attr> = <obj1> [,<obj2>,<obj3>,...]\n mvattr[/switch] <attr> = <obj1>/<attr1> [,<obj2>/<attr2>,<obj3>/<attr3>,...]\n mvattr[/switch] <attr> = <obj1>[,<obj2>,<obj3>,...]\n\n Switches:\n copy - Don't delete the original after moving.\n\n Move an attribute from one object to one or more attributes on another\n object. If you don't supply a source object, yourself is used.\n "}
    -
    -
    @@ -430,11 +405,6 @@ object of this type like this:

    lock_storage = 'cmd:perm(create) or perm(Builder)'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'building', 'key': 'create', 'tags': '', 'text': "\n create new objects\n\n Usage:\n create[/drop] <objname>[;alias;alias...][:typeclass], <objname>...\n\n switch:\n drop - automatically drop the new object into your current\n location (this is not echoed). This also sets the new\n object's home to the current location rather than to you.\n\n Creates one or more new objects. If typeclass is given, the object\n is created as a child of this typeclass. The typeclass script is\n assumed to be located under types/ and any further\n directory structure is given in Python notation. So if you have a\n correct typeclass 'RedButton' defined in\n types/examples/red_button.py, you could create a new\n object of this type like this:\n\n create/drop button;red : examples.red_button.RedButton\n\n "}
    -
    -
    @@ -491,11 +461,6 @@ describe the current room.

    lock_storage = 'cmd:perm(desc) or perm(Builder)'
    -
    -
    -search_index_entry = {'aliases': 'describe', 'category': 'building', 'key': 'desc', 'tags': '', 'text': '\n describe an object or the current room.\n\n Usage:\n desc [<obj> =] <description>\n\n Switches:\n edit - Open up a line editor for more advanced editing.\n\n Sets the "desc" attribute on an object. If an object is not given,\n describe the current room.\n '}
    -
    -
    @@ -528,7 +493,7 @@ You can specify the /force switch to bypass this confirmation.

    -aliases = ['delete', 'del']
    +aliases = ['del', 'delete']
    @@ -567,11 +532,6 @@ You can specify the /force switch to bypass this confirmation.

    lock_storage = 'cmd:perm(destroy) or perm(Builder)'
    -
    -
    -search_index_entry = {'aliases': 'delete del', 'category': 'building', 'key': 'destroy', '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 '}
    -
    -
    @@ -641,11 +601,6 @@ would be ‘north;no;n’.

    lock_storage = 'cmd:perm(dig) or perm(Builder)'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'building', 'key': 'dig', 'tags': '', 'text': "\n build new rooms and connect them to the current location\n\n Usage:\n dig[/switches] <roomname>[;alias;alias...][:typeclass]\n [= <exit_to_there>[;alias][:typeclass]]\n [, <exit_to_here>[;alias][:typeclass]]\n\n Switches:\n tel or teleport - move yourself to the new room\n\n Examples:\n dig kitchen = north;n, south;s\n dig house:myrooms.MyHouseTypeclass\n dig sheer cliff;cliff;sheer = climb up, climb down\n\n This command is a convenient way to build rooms quickly; it creates the\n new room and you can optionally set up exits back and forth between your\n current room and the new one. You can add as many aliases as you\n like to the name of the room and the exits in question; an example\n would be 'north;no;n'.\n "}
    -
    -
    @@ -716,11 +671,6 @@ For more flexibility and power in creating rooms, use dig.

    lock_storage = 'cmd: perm(tunnel) or perm(Builder)'
    -
    -
    -search_index_entry = {'aliases': 'tun', 'category': 'building', 'key': 'tunnel', 'tags': '', 'text': '\n create new rooms in cardinal directions only\n\n Usage:\n tunnel[/switch] <direction>[:typeclass] [= <roomname>[;alias;alias;...][:typeclass]]\n\n Switches:\n oneway - do not create an exit back to the current location\n tel - teleport to the newly created room\n\n Example:\n tunnel n\n tunnel n = house;mike\'s place;green building\n\n This is a simple way to build using pre-defined directions:\n |wn,ne,e,se,s,sw,w,nw|n (north, northeast etc)\n |wu,d|n (up and down)\n |wi,o|n (in and out)\n The full names (north, in, southwest, etc) will always be put as\n main name for the exit, using the abbreviation as an alias (so an\n exit will always be able to be used with both "north" as well as\n "n" for example). Opposite directions will automatically be\n created back from the new room unless the /oneway switch is given.\n For more flexibility and power in creating rooms, use dig.\n '}
    -
    -
    @@ -776,11 +726,6 @@ currently set destination.

    lock_storage = 'cmd:perm(link) or perm(Builder)'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'building', 'key': 'link', 'tags': '', 'text': '\n link existing rooms together with exits\n\n Usage:\n link[/switches] <object> = <target>\n link[/switches] <object> =\n link[/switches] <object>\n\n Switch:\n twoway - connect two exits. For this to work, BOTH <object>\n and <target> must be exit objects.\n\n If <object> is an exit, set its destination to <target>. Two-way operation\n instead sets the destination to the *locations* of the respective given\n arguments.\n The second form (a lone =) sets the destination to None (same as\n the unlink command) and the third form (without =) just shows the\n currently set destination.\n '}
    -
    -
    @@ -831,11 +776,6 @@ and call func in CmdLink

    lock_storage = 'cmd:perm(unlink) or perm(Builder)'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'building', 'key': 'unlink', 'tags': '', 'text': '\n remove exit-connections between rooms\n\n Usage:\n unlink <Object>\n\n Unlinks an object, for example an exit, disconnecting\n it from whatever it was connected to.\n '}
    -
    -
    @@ -884,11 +824,6 @@ It is also a convenient target of the “home” command.

    lock_storage = 'cmd:perm(sethome) or perm(Builder)'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'building', 'key': 'sethome', 'tags': '', 'text': '\n set an object\'s home location\n\n Usage:\n sethome <obj> [= <home_location>]\n sethom <obj>\n\n The "home" location is a "safety" location for objects; they\n will be moved there if their current location ceases to exist. All\n objects should always have a home location for this reason.\n It is also a convenient target of the "home" command.\n\n If no location is given, just view the object\'s home location.\n '}
    -
    -
    @@ -933,11 +868,6 @@ to a user. Defaults to yourself.

    lock_storage = 'cmd:perm(listcmdsets) or perm(Builder)'
    -
    -
    -search_index_entry = {'aliases': 'listcmsets', 'category': 'building', 'key': 'cmdsets', 'tags': '', 'text': '\n list command sets defined on an object\n\n Usage:\n cmdsets <obj>\n\n This displays all cmdsets assigned\n to a user. Defaults to yourself.\n '}
    -
    -
    @@ -982,11 +912,6 @@ rename an account.

    lock_storage = 'cmd:perm(rename) or perm(Builder)'
    -
    -
    -search_index_entry = {'aliases': 'rename', 'category': 'building', 'key': 'name', 'tags': '', 'text': '\n change the name and/or aliases of an object\n\n Usage:\n name <obj> = <newname>;alias1;alias2\n\n Rename an object to something new. Use *obj to\n rename an account.\n\n '}
    -
    -
    @@ -1048,11 +973,6 @@ as well as the self.create_exit() method.

    lock_storage = 'cmd:perm(open) or perm(Builder)'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'building', 'key': 'open', 'tags': '', 'text': '\n open a new exit from the current room\n\n Usage:\n open <new exit>[;alias;alias..][:typeclass] [,<return exit>[;alias;..][:typeclass]]] = <destination>\n\n Handles the creation of exits. If a destination is given, the exit\n will point there. The <return exit> argument sets up an exit at the\n destination leading back to the current room. Destination name\n can be given both as a #dbref and a name, if that name is globally\n unique.\n\n '}
    -
    -
    @@ -1208,11 +1128,6 @@ with older attrs that might have been named with []’s.

    lock_storage = 'cmd:perm(set) or perm(Builder)'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'building', 'key': 'set', 'tags': '', 'text': '\n set attribute on an object or account\n\n Usage:\n set <obj>/<attr> = <value>\n set <obj>/<attr> =\n set <obj>/<attr>\n set *<account>/<attr> = <value>\n\n Switch:\n edit: Open the line editor (string values only)\n script: If we\'re trying to set an attribute on a script\n channel: If we\'re trying to set an attribute on a channel\n account: If we\'re trying to set an attribute on an account\n room: Setting an attribute on a room (global search)\n exit: Setting an attribute on an exit (global search)\n char: Setting an attribute on a character (global search)\n character: Alias for char, as above.\n\n Sets attributes on objects. The second example form above clears a\n previously set attribute while the third form inspects the current value of\n the attribute (if any). The last one (with the star) is a shortcut for\n operating on a player Account rather than an Object.\n\n The most common data to save with this command are strings and\n numbers. You can however also set Python primitives such as lists,\n dictionaries and tuples on objects (this might be important for\n the functionality of certain custom objects). This is indicated\n by you starting your value with one of |c\'|n, |c"|n, |c(|n, |c[|n\n or |c{ |n.\n\n Once you have stored a Python primitive as noted above, you can include\n |c[<key>]|n in <attr> to reference nested values in e.g. a list or dict.\n\n Remember that if you use Python primitives like this, you must\n write proper Python syntax too - notably you must include quotes\n around your strings or you will get an error.\n\n '}
    -
    -
    @@ -1267,7 +1182,7 @@ server settings.

    -aliases = ['update', 'type', 'swap', 'parent']
    +aliases = ['type', 'swap', 'update', 'parent']
    @@ -1296,11 +1211,6 @@ server settings.

    lock_storage = 'cmd:perm(typeclass) or perm(Builder)'
    -
    -
    -search_index_entry = {'aliases': 'update type swap parent', 'category': 'building', 'key': 'typeclass', '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 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.\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 "}
    -
    -
    @@ -1348,11 +1258,6 @@ matching the given attribute-wildcard search string.

    lock_storage = 'cmd:perm(wipe) or perm(Builder)'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'building', 'key': 'wipe', 'tags': '', 'text': "\n clear all attributes from an object\n\n Usage:\n wipe <object>[/<attr>[/<attr>...]]\n\n Example:\n wipe box\n wipe box/colour\n\n Wipes all of an object's attributes, or optionally only those\n matching the given attribute-wildcard search string.\n "}
    -
    -
    @@ -1420,11 +1325,6 @@ them by ‘;’, i.e:

    lock_storage = 'cmd: perm(locks) or perm(Builder)'
    -
    -
    -search_index_entry = {'aliases': 'locks', 'category': 'building', 'key': 'lock', 'tags': '', 'text': "\n assign a lock definition to an object\n\n Usage:\n lock <object or *account>[ = <lockstring>]\n or\n lock[/switch] <object or *account>/<access_type>\n\n Switch:\n del - delete given access type\n view - view lock associated with given access type (default)\n\n If no lockstring is given, shows all locks on\n object.\n\n Lockstring is of the form\n access_type:[NOT] func1(args)[ AND|OR][ NOT] func2(args) ...]\n Where func1, func2 ... valid lockfuncs with or without arguments.\n Separator expressions need not be capitalized.\n\n For example:\n 'get: id(25) or perm(Admin)'\n The 'get' lock access_type is checked e.g. by the 'get' command.\n An object locked with this example lock will only be possible to pick up\n by Admins or by an object with id=25.\n\n You can add several access_types after one another by separating\n them by ';', i.e:\n 'get:id(25); delete:perm(Builder)'\n "}
    -
    -
    @@ -1546,11 +1446,6 @@ non-persistent data stored on object

    lock_storage = 'cmd:perm(examine) or perm(Builder)'
    -
    -
    -search_index_entry = {'aliases': 'exam ex', 'category': 'building', 'key': 'examine', '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\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 '}
    -
    -
    @@ -1582,7 +1477,7 @@ one is given.

    -aliases = ['search', 'locate']
    +aliases = ['locate', 'search']
    @@ -1611,11 +1506,6 @@ one is given.

    lock_storage = 'cmd:perm(find) or perm(Builder)'
    -
    -
    -search_index_entry = {'aliases': 'search locate', 'category': 'building', 'key': 'find', 'tags': '', 'text': '\n search the database for objects\n\n Usage:\n find[/switches] <name or dbref or *account> [= dbrefmin[-dbrefmax]]\n locate - this is a shorthand for using the /loc switch.\n\n Switches:\n room - only look for rooms (location=None)\n exit - only look for exits (destination!=None)\n char - only look for characters (BASE_CHARACTER_TYPECLASS)\n exact - only exact matches are returned.\n loc - display object location if exists and match has one result\n startswith - search for names starting with the string, rather than containing\n\n Searches the database for an object of a particular name or exact #dbref.\n Use *accountname to search for an account. The switches allows for\n limiting object matches to certain game entities. Dbrefmin and dbrefmax\n limits matches to within the given dbrefs range, or above/below if only\n one is given.\n '}
    -
    -
    @@ -1689,11 +1579,6 @@ teleported to the target location.

    lock_storage = 'cmd:perm(teleport) or perm(Builder)'
    -
    -
    -search_index_entry = {'aliases': 'teleport', 'category': 'building', 'key': 'tel', 'tags': '', 'text': "\n teleport object to another location\n\n Usage:\n tel/switch [<object> to||=] <target location>\n\n Examples:\n tel Limbo\n tel/quiet box = Limbo\n tel/tonone box\n\n Switches:\n quiet - don't echo leave/arrive messages to the source/target\n locations for the move.\n intoexit - if target is an exit, teleport INTO\n the exit object instead of to its destination\n tonone - if set, teleport the object to a None-location. If this\n switch is set, <target location> is ignored.\n Note that the only way to retrieve\n an object from a None location is by direct #dbref\n reference. A puppeted object cannot be moved to None.\n loc - teleport object to the target's location instead of its contents\n\n Teleports an object somewhere. If no object is given, you yourself are\n teleported to the target location.\n "}
    -
    -
    @@ -1751,11 +1636,6 @@ the object.

    lock_storage = 'cmd:perm(script) or perm(Builder)'
    -
    -
    -search_index_entry = {'aliases': 'addscript', 'category': 'building', 'key': 'script', 'tags': '', 'text': '\n attach a script to an object\n\n Usage:\n script[/switch] <obj> [= script_path or <scriptkey>]\n\n Switches:\n start - start all non-running scripts on object, or a given script only\n stop - stop all scripts on objects, or a given script only\n\n If no script path/key is given, lists all scripts active on the given\n object.\n Script path can be given from the base location for scripts as given in\n settings. If adding a new script, it will be started automatically\n (no /start switch is needed). Using the /start or /stop switches on an\n object without specifying a script key/path will start/stop ALL scripts on\n the object.\n '}
    -
    -
    @@ -1822,11 +1702,6 @@ enough to for most grouping schemes.

    lock_storage = 'cmd:perm(tag) or perm(Builder)'
    -
    -
    -search_index_entry = {'aliases': 'tags', 'category': 'building', 'key': 'tag', 'tags': '', 'text': '\n handles the tags of an object\n\n Usage:\n tag[/del] <obj> [= <tag>[:<category>]]\n tag/search <tag>[:<category]\n\n Switches:\n search - return all objects with a given Tag\n del - remove the given tag. If no tag is specified,\n clear all tags on object.\n\n Manipulates and lists tags on objects. Tags allow for quick\n grouping of and searching for objects. If only <obj> is given,\n list all tags on the object. If /search is used, list objects\n with the given tag.\n The category can be used for grouping tags themselves, but it\n should be used with restrain - tags on their own are usually\n enough to for most grouping schemes.\n '}
    -
    -
    @@ -1933,11 +1808,6 @@ displays a list of available prototypes.

    lock_storage = 'cmd:perm(spawn) or perm(Builder)'
    -
    -
    -search_index_entry = {'aliases': 'olc', 'category': 'building', 'key': 'spawn', 'tags': '', 'text': '\n spawn objects from prototype\n\n Usage:\n spawn[/noloc] <prototype_key>\n spawn[/noloc] <prototype_dict>\n\n spawn/search [prototype_keykey][;tag[,tag]]\n spawn/list [tag, tag, ...]\n spawn/list modules - list only module-based prototypes\n spawn/show [<prototype_key>]\n spawn/update <prototype_key>\n\n spawn/save <prototype_dict>\n spawn/edit [<prototype_key>]\n olc - equivalent to spawn/edit\n\n Switches:\n noloc - allow location to be None if not specified explicitly. Otherwise,\n location will default to caller\'s current location.\n search - search prototype by name or tags.\n list - list available prototypes, optionally limit by tags.\n show, examine - inspect prototype by key. If not given, acts like list.\n raw - show the raw dict of the prototype as a one-line string for manual editing.\n save - save a prototype to the database. It will be listable by /list.\n delete - remove a prototype from database, if allowed to.\n update - find existing objects with the same prototype_key and update\n them with latest version of given prototype. If given with /save,\n will auto-update all objects with the old version of the prototype\n without asking first.\n edit, menu, olc - create/manipulate prototype in a menu interface.\n\n Example:\n spawn GOBLIN\n spawn {"key":"goblin", "typeclass":"monster.Monster", "location":"#2"}\n spawn/save {"key": "grunt", prototype: "goblin"};;mobs;edit:all()\n \x0c\n Dictionary keys:\n |wprototype_parent |n - name of parent prototype to use. Required if typeclass is\n not set. Can be a path or a list for multiple inheritance (inherits\n left to right). If set one of the parents must have a typeclass.\n |wtypeclass |n - string. Required if prototype_parent is not set.\n |wkey |n - string, the main object identifier\n |wlocation |n - this should be a valid object or #dbref\n |whome |n - valid object or #dbref\n |wdestination|n - only valid for exits (object or dbref)\n |wpermissions|n - string or list of permission strings\n |wlocks |n - a lock-string\n |waliases |n - string or list of strings.\n |wndb_|n<name> - value of a nattribute (ndb_ is stripped)\n\n |wprototype_key|n - name of this prototype. Unique. Used to store/retrieve from db\n and update existing prototyped objects if desired.\n |wprototype_desc|n - desc of this prototype. Used in listings\n |wprototype_locks|n - locks of this prototype. Limits who may use prototype\n |wprototype_tags|n - tags of this prototype. Used to find prototype\n\n any other keywords are interpreted as Attributes and their values.\n\n The available prototypes are defined globally in modules set in\n settings.PROTOTYPE_MODULES. If spawn is used without arguments it\n displays a list of available prototypes.\n\n '}
    -
    - @@ -1975,6 +1845,7 @@ displays a list of available prototypes.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.commands.default.cmdset_account.html b/docs/0.9.5/api/evennia.commands.default.cmdset_account.html index 0dbe399a09..7b81f5bb35 100644 --- a/docs/0.9.5/api/evennia.commands.default.cmdset_account.html +++ b/docs/0.9.5/api/evennia.commands.default.cmdset_account.html @@ -107,6 +107,7 @@ command method rather than caller.msg().

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.commands.default.cmdset_character.html b/docs/0.9.5/api/evennia.commands.default.cmdset_character.html index 3905257f8c..c053524fe6 100644 --- a/docs/0.9.5/api/evennia.commands.default.cmdset_character.html +++ b/docs/0.9.5/api/evennia.commands.default.cmdset_character.html @@ -105,6 +105,7 @@ Account cmdset. Account commands remain available also to Characters.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.commands.default.cmdset_session.html b/docs/0.9.5/api/evennia.commands.default.cmdset_session.html index 3d8f81ac2d..7cfb7a0dbb 100644 --- a/docs/0.9.5/api/evennia.commands.default.cmdset_session.html +++ b/docs/0.9.5/api/evennia.commands.default.cmdset_session.html @@ -102,6 +102,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.commands.default.cmdset_unloggedin.html b/docs/0.9.5/api/evennia.commands.default.cmdset_unloggedin.html index 346e8077ca..1c12cd1ea6 100644 --- a/docs/0.9.5/api/evennia.commands.default.cmdset_unloggedin.html +++ b/docs/0.9.5/api/evennia.commands.default.cmdset_unloggedin.html @@ -104,6 +104,7 @@ of the state instance in this module.

  • 0.9.5 (v0.9.5 branch)
  • +
    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 96361e709c..971487a781 100644 --- a/docs/0.9.5/api/evennia.commands.default.comms.html +++ b/docs/0.9.5/api/evennia.commands.default.comms.html @@ -63,7 +63,7 @@ aliases to an already joined channel.

    -aliases = ['aliaschan', 'chanalias']
    +aliases = ['chanalias', 'aliaschan']
    @@ -92,11 +92,6 @@ aliases to an already joined channel.

    lock_storage = 'cmd:not pperm(channel_banned)'
    -
    -
    -search_index_entry = {'aliases': 'aliaschan chanalias', 'category': 'comms', 'key': 'addcom', '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 '}
    -
    -
    @@ -149,11 +144,6 @@ for that channel.

    lock_storage = 'cmd:not perm(channel_banned)'
    -
    -
    -search_index_entry = {'aliases': 'delchanalias delaliaschan', 'category': 'comms', 'key': 'delcom', 'tags': '', 'text': "\n remove a channel alias and/or unsubscribe from channel\n\n Usage:\n delcom <alias or channel>\n delcom/all <channel>\n\n If the full channel name is given, unsubscribe from the\n channel. If an alias is given, remove the alias but don't\n unsubscribe. If the 'all' switch is used, remove all aliases\n for that channel.\n "}
    -
    -
    @@ -205,11 +195,6 @@ channels that you control.

    lock_storage = 'cmd: not pperm(channel_banned)'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'comms', 'key': 'allcom', 'tags': '', 'text': "\n perform admin operations on all channels\n\n Usage:\n allcom [on | off | who | destroy]\n\n Allows the user to universally turn off or on all channels they are on, as\n well as perform a 'who' for all channels they are on. Destroy deletes all\n channels that you control.\n\n Without argument, works like comlist.\n "}
    -
    -
    @@ -233,7 +218,7 @@ Use addcom/delcom to join and leave channels

    -aliases = ['clist', 'comlist', 'all channels', 'chanlist', 'channellist']
    +aliases = ['channellist', 'chanlist', 'comlist', 'clist', 'all channels']
    @@ -262,11 +247,6 @@ Use addcom/delcom to join and leave channels

    lock_storage = 'cmd: not pperm(channel_banned)'
    -
    -
    -search_index_entry = {'aliases': 'clist comlist all channels chanlist channellist', 'category': 'comms', 'key': 'channels', 'tags': '', 'text': "\n list all channels available to you\n\n Usage:\n channels\n clist\n comlist\n\n Lists all channels available to you, whether you listen to them or not.\n Use 'comlist' to only view your current channel subscriptions.\n Use addcom/delcom to join and leave channels\n "}
    -
    -
    @@ -315,11 +295,6 @@ Use addcom/delcom to join and leave channels

    lock_storage = 'cmd: not pperm(channel_banned)'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'comms', 'key': 'cdestroy', 'tags': '', 'text': '\n destroy a channel you created\n\n Usage:\n cdestroy <channel>\n\n Destroys a channel that you control.\n '}
    -
    -
    @@ -375,11 +350,6 @@ Use addcom/delcom to join and leave channels

    lock_storage = 'cmd: not pperm(channel_banned)'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'comms', 'key': 'cboot', 'tags': '', 'text': "\n kick an account from a channel you control\n\n Usage:\n cboot[/quiet] <channel> = <account> [:reason]\n\n Switch:\n quiet - don't notify the channel\n\n Kicks an account or object from a channel you control.\n\n "}
    -
    -
    @@ -438,11 +408,6 @@ provide the /sendername switch.

    lock_storage = 'cmd: not pperm(channel_banned) and pperm(Player)'
    -
    -
    -search_index_entry = {'aliases': 'cmsg', 'category': 'comms', 'key': 'cemit', 'tags': '', 'text': "\n send an admin message to a channel you control\n\n Usage:\n cemit[/switches] <channel> = <message>\n\n Switches:\n sendername - attach the sender's name before the message\n quiet - don't echo the message back to sender\n\n Allows the user to broadcast a message over a channel as long as\n they control it. It does not show the user's name unless they\n provide the /sendername switch.\n\n "}
    -
    -
    @@ -491,11 +456,6 @@ provide the /sendername switch.

    lock_storage = 'cmd: not pperm(channel_banned)'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'comms', 'key': 'cwho', 'tags': '', 'text': '\n show who is listening to a channel\n\n Usage:\n cwho <channel>\n\n List who is connected to a given channel you have access to.\n '}
    -
    -
    @@ -544,11 +504,6 @@ provide the /sendername switch.

    lock_storage = 'cmd:not pperm(channel_banned) and pperm(Player)'
    -
    -
    -search_index_entry = {'aliases': 'channelcreate', 'category': 'comms', 'key': 'ccreate', 'tags': '', 'text': '\n create a new channel\n\n Usage:\n ccreate <new channel>[;alias;alias...] = description\n\n Creates a new channel owned by you.\n '}
    -
    -
    @@ -598,11 +553,6 @@ lockstring was given, view the current lock definitions.

    lock_storage = 'cmd:not pperm(channel_banned)'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'comms', 'key': 'clock', 'tags': '', 'text': '\n change channel locks of a channel you control\n\n Usage:\n clock <channel> [= <lockstring>]\n\n Changes the lock access restrictions of a channel. If no\n lockstring was given, view the current lock definitions.\n '}
    -
    -
    @@ -652,11 +602,6 @@ channel lists.

    lock_storage = 'cmd:not pperm(channel_banned)'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'comms', 'key': 'cdesc', 'tags': '', 'text': '\n describe a channel you control\n\n Usage:\n cdesc <channel> = <description>\n\n Changes the description of the channel as shown in\n channel lists.\n '}
    -
    -
    @@ -716,11 +661,6 @@ argument is given, you will get a list of your latest messages.

    lock_storage = 'cmd:not pperm(page_banned)'
    -
    -
    -search_index_entry = {'aliases': 'tell', 'category': 'comms', 'key': 'page', 'tags': '', 'text': "\n send a private message to another account\n\n Usage:\n page[/switches] [<account>,<account>,... = <message>]\n tell ''\n page <number>\n\n Switch:\n last - shows who you last messaged\n list - show your last <number> of tells/pages (default)\n\n Send a message to target user (if online). If no\n argument is given, you will get a list of your latest messages.\n "}
    -
    -
    @@ -798,11 +738,6 @@ Provide an optional bot class path to use a custom bot.

    lock_storage = 'cmd:serversetting(IRC_ENABLED) and pperm(Developer)'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'comms', 'key': 'irc2chan', 'tags': '', 'text': '\n Link an evennia channel to an external IRC channel\n\n Usage:\n irc2chan[/switches] <evennia_channel> = <ircnetwork> <port> <#irchannel> <botname>[:typeclass]\n irc2chan/delete botname|#dbid\n\n Switches:\n /delete - this will delete the bot and remove the irc connection\n to the channel. Requires the botname or #dbid as input.\n /remove - alias to /delete\n /disconnect - alias to /delete\n /list - show all irc<->evennia mappings\n /ssl - use an SSL-encrypted connection\n\n Example:\n irc2chan myircchan = irc.dalnet.net 6667 #mychannel evennia-bot\n irc2chan public = irc.freenode.net 6667 #evgaming #evbot:accounts.mybot.MyBot\n\n This creates an IRC bot that connects to a given IRC network and\n channel. If a custom typeclass path is given, this will be used\n instead of the default bot class.\n The bot will relay everything said in the evennia channel to the\n IRC channel and vice versa. The bot will automatically connect at\n server start, so this command need only be given once. The\n /disconnect switch will permanently delete the bot. To only\n temporarily deactivate it, use the |wservices|n command instead.\n Provide an optional bot class path to use a custom bot.\n '}
    -
    -
    @@ -854,11 +789,6 @@ messages sent to either channel will be lost.

    lock_storage = 'cmd:serversetting(IRC_ENABLED) and perm(ircstatus) or perm(Builder))'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'comms', 'key': 'ircstatus', 'tags': '', 'text': "\n Check and reboot IRC bot.\n\n Usage:\n ircstatus [#dbref ping||nicklist||reconnect]\n\n If not given arguments, will return a list of all bots (like\n irc2chan/list). The 'ping' argument will ping the IRC network to\n see if the connection is still responsive. The 'nicklist' argument\n (aliases are 'who' and 'users') will return a list of users on the\n remote IRC channel. Finally, 'reconnect' will force the client to\n disconnect and reconnect again. This may be a last resort if the\n client has silently lost connection (this may happen if the remote\n network experience network issues). During the reconnection\n messages sent to either channel will be lost.\n\n "}
    -
    -
    @@ -931,11 +861,6 @@ to identify the connection uniquely.

    lock_storage = 'cmd:serversetting(RSS_ENABLED) and pperm(Developer)'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'comms', 'key': 'rss2chan', 'tags': '', 'text': '\n link an evennia channel to an external RSS feed\n\n Usage:\n rss2chan[/switches] <evennia_channel> = <rss_url>\n\n Switches:\n /disconnect - this will stop the feed and remove the connection to the\n channel.\n /remove - "\n /list - show all rss->evennia mappings\n\n Example:\n rss2chan rsschan = http://code.google.com/feeds/p/evennia/updates/basic\n\n This creates an RSS reader that connects to a given RSS feed url. Updates\n will be echoed as a title and news link to the given channel. The rate of\n updating is set with the RSS_UPDATE_INTERVAL variable in settings (default\n is every 10 minutes).\n\n When disconnecting you need to supply both the channel and url again so as\n to identify the connection uniquely.\n '}
    -
    -
    @@ -1009,11 +934,6 @@ must be added to game settings.

    lock_storage = 'cmd:serversetting(GRAPEVINE_ENABLED) and pperm(Developer)'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'comms', 'key': 'grapevine2chan', 'tags': '', 'text': '\n Link an Evennia channel to an exteral Grapevine channel\n\n Usage:\n grapevine2chan[/switches] <evennia_channel> = <grapevine_channel>\n grapevine2chan/disconnect <connection #id>\n\n Switches:\n /list - (or no switch): show existing grapevine <-> Evennia\n mappings and available grapevine chans\n /remove - alias to disconnect\n /delete - alias to disconnect\n\n Example:\n grapevine2chan mygrapevine = gossip\n\n This creates a link between an in-game Evennia channel and an external\n Grapevine channel. The game must be registered with the Grapevine network\n (register at https://grapevine.haus) and the GRAPEVINE_* auth information\n must be added to game settings.\n '}
    -
    - @@ -1051,6 +971,7 @@ must be added to game settings.

  • 0.9.5 (v0.9.5 branch)
  • +
    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 42874d9344..f2012f055b 100644 --- a/docs/0.9.5/api/evennia.commands.default.general.html +++ b/docs/0.9.5/api/evennia.commands.default.general.html @@ -85,11 +85,6 @@ lock_storage = 'cmd:perm(home) or perm(Builder)'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'home', 'tags': '', 'text': "\n move to your character's home location\n\n Usage:\n home\n\n Teleports you to your home location.\n "}
    -
    -
    @@ -111,7 +106,7 @@ look *<account&g
    -aliases = ['ls', 'l']
    +aliases = ['l', 'ls']
    @@ -140,11 +135,6 @@ look *<account&g lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': 'ls l', 'category': 'general', 'key': 'look', '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 '}
    -
    -
    @@ -234,11 +224,6 @@ for everyone to use, you need build privileges and the alias command.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': 'nickname nicks', 'category': 'general', 'key': 'nick', '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 '}
    -
    -
    @@ -288,11 +273,6 @@ inv

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': 'inv i', 'category': 'general', 'key': 'inventory', 'tags': '', 'text': '\n view inventory\n\n Usage:\n inventory\n inv\n\n Shows your inventory.\n '}
    -
    -
    @@ -343,11 +323,6 @@ look at you.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'setdesc', 'tags': '', 'text': '\n describe yourself\n\n Usage:\n setdesc <description>\n\n Add a description to yourself. This\n will be visible to people when they\n look at you.\n '}
    -
    -
    @@ -397,11 +372,6 @@ your inventory.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': 'grab', 'category': 'general', 'key': 'get', 'tags': '', 'text': '\n pick up something\n\n Usage:\n get <obj>\n\n Picks up an object from your location and puts it in\n your inventory.\n '}
    -
    -
    @@ -451,11 +421,6 @@ location you are currently in.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'drop', 'tags': '', 'text': '\n drop something\n\n Usage:\n drop <obj>\n\n Lets you drop an object from your inventory into the\n location you are currently in.\n '}
    -
    -
    @@ -510,11 +475,6 @@ placing it in their inventory.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'give', 'tags': '', 'text': '\n give away something to someone\n\n Usage:\n give <inventory obj> <to||=> <target>\n\n Gives an items from your inventory to another character,\n placing it in their inventory.\n '}
    -
    -
    @@ -558,11 +518,6 @@ placing it in their inventory.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': '" \'', 'category': 'general', 'key': 'say', 'tags': '', 'text': '\n speak as your character\n\n Usage:\n say <message>\n\n Talk to those in your current location.\n '}
    -
    -
    @@ -608,11 +563,6 @@ others in the room being informed.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'whisper', 'tags': '', 'text': '\n Speak privately as your character to another\n\n Usage:\n whisper <character> = <message>\n whisper <char1>, <char2> = <message>\n\n Talk privately to one or more characters in your current location, without\n others in the room being informed.\n '}
    -
    -
    @@ -674,11 +624,6 @@ space.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': 'emote :', 'category': 'general', 'key': 'pose', '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 "}
    -
    -
    @@ -728,11 +673,6 @@ which permission groups you are a member of.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': 'hierarchy groups', 'category': 'general', 'key': 'access', '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 '}
    -
    - @@ -770,6 +710,7 @@ which permission groups you are a member of.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.commands.default.help.html b/docs/0.9.5/api/evennia.commands.default.help.html index ef2fac29c2..ab220bd95d 100644 --- a/docs/0.9.5/api/evennia.commands.default.help.html +++ b/docs/0.9.5/api/evennia.commands.default.help.html @@ -46,7 +46,7 @@ creation of other help topics such as RP help or game-world aides.

    class evennia.commands.default.help.CmdHelp(**kwargs)[source]
    -

    Bases: evennia.commands.command.Command

    +

    Bases: evennia.commands.default.muxcommand.MuxCommand

    View help or a list of topics

    Usage:

    help <topic or command> @@ -125,7 +125,7 @@ entry is displayed.

    -format_help_list(hdict_cmds, hdict_db)[source]
    +static format_help_list(hdict_cmds, hdict_db)[source]

    Output a category-ordered list. The input are the pre-loaded help files for commands and database-helpfiles respectively. You can override this method to return a @@ -199,11 +199,6 @@ False: the command shouldn’t appear in the table.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': '?', 'category': 'general', 'key': 'help', 'tags': '', 'text': '\n View help or a list of topics\n\n Usage:\n help <topic or command>\n help list\n help all\n\n This will search for help on commands and other\n topics related to the game.\n '}
    -
    -
    @@ -266,11 +261,6 @@ is to let everyone read the help file.

    lock_storage = 'cmd:perm(Helper)'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'building', 'key': 'sethelp', 'tags': '', 'text': '\n Edit the help database.\n\n Usage:\n help[/switches] <topic>[[;alias;alias][,category[,locks]] [= <text>]\n\n Switches:\n edit - open a line editor to edit the topic\'s help text.\n replace - overwrite existing help topic.\n append - add text to the end of existing topic with a newline between.\n extend - as append, but don\'t add a newline.\n delete - remove help topic.\n\n Examples:\n sethelp throw = This throws something at ...\n sethelp/append pickpocketing,Thievery = This steals ...\n sethelp/replace pickpocketing, ,attr(is_thief) = This steals ...\n sethelp/edit thievery\n\n This command manipulates the help database. A help entry can be created,\n appended/merged to and deleted. If you don\'t assign a category, the\n "General" category will be used. If no lockstring is specified, default\n is to let everyone read the help file.\n\n '}
    -
    -
    @@ -308,6 +298,7 @@ is to let everyone read the help file.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.commands.default.html b/docs/0.9.5/api/evennia.commands.default.html index 52ed101607..e7055de057 100644 --- a/docs/0.9.5/api/evennia.commands.default.html +++ b/docs/0.9.5/api/evennia.commands.default.html @@ -94,6 +94,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.commands.default.muxcommand.html b/docs/0.9.5/api/evennia.commands.default.muxcommand.html index 11c4dd2ebb..8fb20e4604 100644 --- a/docs/0.9.5/api/evennia.commands.default.muxcommand.html +++ b/docs/0.9.5/api/evennia.commands.default.muxcommand.html @@ -183,11 +183,6 @@ to all the variables defined therein.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'command', 'tags': '', 'text': "\n This sets up the basis for a MUX command. The idea\n is that most other Mux-related commands should just\n inherit from this and don't have to implement much\n parsing of their own unless they do something particularly\n advanced.\n\n Note that the class's __doc__ string (this text) is\n used by Evennia to create the automatic help entry for\n the command, so make sure to document consistently here.\n "}
    -
    -
    @@ -228,11 +223,6 @@ character is actually attached to this Account and Session.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'command', 'tags': '', 'text': '\n This is an on-Account version of the MuxCommand. Since these commands sit\n on Accounts rather than on Characters/Objects, we need to check\n this in the parser.\n\n Account commands are available also when puppeting a Character, it\'s\n just that they are applied with a lower priority and are always\n available, also when disconnected from a character (i.e. "ooc").\n\n This class makes sure that caller is always an Account object, while\n creating a new property "character" that is set only if a\n character is actually attached to this Account and Session.\n '}
    -
    - @@ -270,6 +260,7 @@ character is actually attached to this Account and Session.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.commands.default.syscommands.html b/docs/0.9.5/api/evennia.commands.default.syscommands.html index 89d95a172b..4140b419f5 100644 --- a/docs/0.9.5/api/evennia.commands.default.syscommands.html +++ b/docs/0.9.5/api/evennia.commands.default.syscommands.html @@ -88,11 +88,6 @@ the line is just added to the editor buffer).

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'general', 'key': '__noinput_command', 'tags': '', 'text': '\n This is called when there is no input given\n '}
    -
    -
    @@ -131,11 +126,6 @@ the line is just added to the editor buffer).

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'general', 'key': '__nomatch_command', 'tags': '', 'text': '\n No command was found matching the given input.\n '}
    -
    -
    @@ -184,11 +174,6 @@ the raw_cmdname is the cmdname unmodified by eventual prefix-st lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'general', 'key': '__multimatch_command', 'tags': '', 'text': "\n Multiple command matches.\n\n The cmdhandler adds a special attribute 'matches' to this\n system command.\n\n matches = [(cmdname, args, cmdobj, cmdlen, mratio, raw_cmdname) , (cmdname, ...), ...]\n\n Here, `cmdname` is the command's name and `args` the rest of the incoming string,\n without said command name. `cmdobj` is the Command instance, the cmdlen is\n the same as len(cmdname) and mratio is a measure of how big a part of the\n full input string the cmdname takes up - an exact match would be 1.0. Finally,\n the `raw_cmdname` is the cmdname unmodified by eventual prefix-stripping.\n\n "}
    -
    -
    @@ -303,11 +288,6 @@ the already formatted input.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'general', 'key': '__send_to_channel_command', 'tags': '', 'text': '\n This is a special command that the cmdhandler calls\n when it detects that the command given matches\n an existing Channel object key (or alias).\n '}
    -
    - @@ -345,6 +325,7 @@ the already formatted input.

  • 0.9.5 (v0.9.5 branch)
  • +
    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 f38438ca49..293f1a0317 100644 --- a/docs/0.9.5/api/evennia.commands.default.system.html +++ b/docs/0.9.5/api/evennia.commands.default.system.html @@ -82,11 +82,6 @@ reset to purge) and at_reload() hooks will be called.

    lock_storage = 'cmd:perm(reload) or perm(Developer)'
    -
    -
    -search_index_entry = {'aliases': 'restart', 'category': 'system', 'key': 'reload', 'tags': '', 'text': '\n reload the server\n\n Usage:\n reload [reason]\n\n This restarts the server. The Portal is not\n affected. Non-persistent scripts will survive a reload (use\n reset to purge) and at_reload() hooks will be called.\n '}
    -
    -
    @@ -139,11 +134,6 @@ cmdsets etc will be wiped.

    lock_storage = 'cmd:perm(reload) or perm(Developer)'
    -
    -
    -search_index_entry = {'aliases': 'reboot', 'category': 'system', 'key': 'reset', 'tags': '', 'text': '\n reset and reboot the server\n\n Usage:\n reset\n\n Notes:\n For normal updating you are recommended to use reload rather\n than this command. Use shutdown for a complete stop of\n everything.\n\n This emulates a cold reboot of the Server component of Evennia.\n The difference to shutdown is that the Server will auto-reboot\n and that it does not affect the Portal, so no users will be\n disconnected. Contrary to reload however, all shutdown hooks will\n be called and any non-database saved scripts, ndb-attributes,\n cmdsets etc will be wiped.\n\n '}
    -
    -
    @@ -187,11 +177,6 @@ cmdsets etc will be wiped.

    lock_storage = 'cmd:perm(shutdown) or perm(Developer)'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'system', 'key': 'shutdown', 'tags': '', 'text': '\n stop the server completely\n\n Usage:\n shutdown [announcement]\n\n Gracefully shut down both Server and Portal.\n '}
    -
    -
    @@ -279,11 +264,6 @@ should only be accessible by trusted server admins/superusers.|n

    lock_storage = 'cmd:perm(py) or perm(Developer)'
    -
    -
    -search_index_entry = {'aliases': '!', 'category': 'system', 'key': 'py', 'tags': '', 'text': "\n execute a snippet of python code\n\n Usage:\n py [cmd]\n py/edit\n py/time <cmd>\n py/clientraw <cmd>\n py/noecho\n\n Switches:\n time - output an approximate execution time for <cmd>\n edit - open a code editor for multi-line code experimentation\n clientraw - turn off all client-specific escaping. Note that this may\n lead to different output depending on prototocol (such as angular brackets\n being parsed as HTML in the webclient but not in telnet clients)\n noecho - in Python console mode, turn off the input echo (e.g. if your client\n does this for you already)\n\n Without argument, open a Python console in-game. This is a full console,\n accepting multi-line Python code for testing and debugging. Type `exit()` to\n return to the game. If Evennia is reloaded, the console will be closed.\n\n Enter a line of instruction after the 'py' command to execute it\n immediately. Separate multiple commands by ';' or open the code editor\n using the /edit switch (all lines added in editor will be executed\n immediately when closing or using the execute command in the editor).\n\n A few variables are made available for convenience in order to offer access\n to the system (you can import more at execution time).\n\n Available variables in py environment:\n self, me : caller\n here : caller.location\n evennia : the evennia API\n inherits_from(obj, parent) : check object inheritance\n\n You can explore The evennia API from inside the game by calling\n the `__doc__` property on entities:\n py evennia.__doc__\n py evennia.managers.__doc__\n\n |rNote: In the wrong hands this command is a severe security risk. It\n should only be accessible by trusted server admins/superusers.|n\n\n "}
    -
    -
    @@ -347,11 +327,6 @@ required since whole classes of scripts often have the same name.

    lock_storage = 'cmd:perm(listscripts) or perm(Admin)'
    -
    -
    -search_index_entry = {'aliases': 'listscripts globalscript', 'category': 'system', 'key': 'scripts', 'tags': '', 'text': '\n list and manage all running scripts\n\n Usage:\n scripts[/switches] [#dbref, key, script.path or <obj>]\n\n Switches:\n start - start a script (must supply a script path)\n stop - stops an existing script\n kill - kills a script - without running its cleanup hooks\n validate - run a validation on the script(s)\n\n If no switches are given, this command just views all active\n scripts. The argument can be either an object, at which point it\n will be searched for all scripts defined on it, or a script name\n or #dbref. For using the /stop switch, a unique script #dbref is\n required since whole classes of scripts often have the same name.\n\n Use script for managing commands on objects.\n '}
    -
    -
    @@ -373,7 +348,7 @@ given, <nr> defaults to 10.

    -aliases = ['listobjs', 'stats', 'listobjects', 'db']
    +aliases = ['stats', 'db', 'listobjs', 'listobjects']
    @@ -397,11 +372,6 @@ given, <nr> defaults to 10.

    lock_storage = 'cmd:perm(listobjects) or perm(Builder)'
    -
    -
    -search_index_entry = {'aliases': 'listobjs stats listobjects db', 'category': 'system', 'key': 'objects', 'tags': '', 'text': '\n statistics on objects in the database\n\n Usage:\n objects [<nr>]\n\n Gives statictics on objects in database as well as\n a list of <nr> latest objects in database. If not\n given, <nr> defaults to 10.\n '}
    -
    -
    @@ -459,11 +429,6 @@ in the list.

    lock_storage = 'cmd:perm(service) or perm(Developer)'
    -
    -
    -search_index_entry = {'aliases': 'services', 'category': 'system', 'key': 'service', 'tags': '', 'text': '\n manage system services\n\n Usage:\n service[/switch] <service>\n\n Switches:\n list - shows all available services (default)\n start - activates or reactivate a service\n stop - stops/inactivate a service (can often be restarted)\n delete - tries to permanently remove a service\n\n Service management system. Allows for the listing,\n starting, and stopping of services. If no switches\n are given, services will be listed. Note that to operate on the\n service you have to supply the full (green or red) name as given\n in the list.\n '}
    -
    -
    @@ -507,11 +472,6 @@ in the list.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': 'version', 'category': 'system', 'key': 'about', 'tags': '', 'text': '\n show Evennia info\n\n Usage:\n about\n\n Display info about the game engine.\n '}
    -
    -
    @@ -556,11 +516,6 @@ and the current time stamp.

    lock_storage = 'cmd:perm(time) or perm(Player)'
    -
    -
    -search_index_entry = {'aliases': 'uptime', 'category': 'system', 'key': 'time', 'tags': '', 'text': '\n show server time statistics\n\n Usage:\n time\n\n List Server time statistics such as uptime\n and the current time stamp.\n '}
    -
    -
    @@ -600,7 +555,7 @@ the released memory will instead be re-used by the program.

    -aliases = ['serverload', 'serverprocess']
    +aliases = ['serverprocess', 'serverload']
    @@ -629,11 +584,6 @@ the released memory will instead be re-used by the program.

    lock_storage = 'cmd:perm(list) or perm(Developer)'
    -
    -
    -search_index_entry = {'aliases': 'serverload serverprocess', 'category': 'system', 'key': 'server', 'tags': '', 'text': "\n show server load and memory statistics\n\n Usage:\n server[/mem]\n\n Switches:\n mem - return only a string of the current memory usage\n flushmem - flush the idmapper cache\n\n This command shows server load statistics and dynamic memory\n usage. It also allows to flush the cache of accessed database\n objects.\n\n Some Important statistics in the table:\n\n |wServer load|n is an average of processor usage. It's usually\n between 0 (no usage) and 1 (100% usage), but may also be\n temporarily higher if your computer has multiple CPU cores.\n\n The |wResident/Virtual memory|n displays the total memory used by\n the server process.\n\n Evennia |wcaches|n all retrieved database entities when they are\n loaded by use of the idmapper functionality. This allows Evennia\n to maintain the same instances of an entity and allowing\n non-persistent storage schemes. The total amount of cached objects\n are displayed plus a breakdown of database object types.\n\n The |wflushmem|n switch allows to flush the object cache. Please\n note that due to how Python's memory management works, releasing\n caches may not show you a lower Residual/Virtual memory footprint,\n the released memory will instead be re-used by the program.\n\n "}
    -
    -
    @@ -671,6 +621,7 @@ the released memory will instead be re-used by the program.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.commands.default.tests.html b/docs/0.9.5/api/evennia.commands.default.tests.html index 7bcdeb4c24..7a10da7f98 100644 --- a/docs/0.9.5/api/evennia.commands.default.tests.html +++ b/docs/0.9.5/api/evennia.commands.default.tests.html @@ -138,18 +138,6 @@ output sent to caller.msg in the game

    class evennia.commands.default.tests.TestHelp(methodName='runTest')[source]

    Bases: evennia.commands.default.tests.CommandTest

    -
    -
    -setUp()[source]
    -

    Sets up testing environment

    -
    - -
    -
    -tearDown()[source]
    -

    Hook method for deconstructing the test fixture after testing it.

    -
    -
    test_help()[source]
    @@ -611,11 +599,6 @@ set in self.parse())

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'interrupt', 'tags': '', 'text': '\n Base command\n\n Usage:\n command [args]\n\n This is the base command class. Inherit from this\n to create new commands.\n\n The cmdhandler makes the following variables available to the\n command methods (so you can always assume them to be there):\n self.caller - the game object calling the command\n self.cmdstring - the command name used to trigger this command (allows\n you to know which alias was used, for example)\n cmd.args - everything supplied to the command following the cmdstring\n (this is usually what is parsed in self.parse())\n cmd.cmdset - the cmdset from which this command was matched (useful only\n seldomly, notably for help-type commands, to create dynamic\n help entries and lists)\n cmd.obj - the object on which this command is defined. If a default command,\n this is usually the same as caller.\n cmd.rawstring - the full raw string input, including any args and no parsing.\n\n The following class properties can/should be defined on your child class:\n\n key - identifier for command (e.g. "look")\n aliases - (optional) list of aliases (e.g. ["l", "loo"])\n locks - lock string (default is "cmd:all()")\n help_category - how to organize this help entry in help system\n (default is "General")\n auto_help - defaults to True. Allows for turning off auto-help generation\n arg_regex - (optional) raw string regex defining how the argument part of\n the command should look in order to match for this command\n (e.g. must it be a space between cmdname and arg?)\n auto_help_display_key - (optional) if given, this replaces the string shown\n in the auto-help listing. This is particularly useful for system-commands\n whose actual key is not really meaningful.\n\n (Note that if auto_help is on, this initial string is also used by the\n system to create the help entry for the command, so it\'s a good idea to\n format it similar to this one). This behavior can be changed by\n overriding the method \'get_help\' of a command: by default, this\n method returns cmd.__doc__ (that is, this very docstring, or\n the docstring of your command). You can, however, extend or\n replace this without disabling auto_help.\n '}
    -
    -
    @@ -696,6 +679,7 @@ set in self.parse())

  • 0.9.5 (v0.9.5 branch)
  • +
    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 b52798dbf6..8a914d49c2 100644 --- a/docs/0.9.5/api/evennia.commands.default.unloggedin.html +++ b/docs/0.9.5/api/evennia.commands.default.unloggedin.html @@ -58,7 +58,7 @@ connect “account name” “pass word”

    -aliases = ['conn', 'co', 'con']
    +aliases = ['co', 'conn', 'con']
    @@ -91,11 +91,6 @@ there is no object yet before the account has logged in)

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': 'conn co con', 'category': 'general', 'key': 'connect', '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 '}
    -
    -
    @@ -117,7 +112,7 @@ create “account name” “pass word”

    -aliases = ['cre', 'cr']
    +aliases = ['cr', 'cre']
    @@ -146,11 +141,6 @@ create “account name” “pass word”

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': 'cre cr', 'category': 'general', 'key': 'create', '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 '}
    -
    -
    @@ -172,7 +162,7 @@ version is a bit more complicated.

    -aliases = ['q', 'qu']
    +aliases = ['qu', 'q']
    @@ -196,11 +186,6 @@ version is a bit more complicated.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': 'q qu', 'category': 'general', 'key': 'quit', '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 '}
    -
    -
    @@ -246,11 +231,6 @@ All it does is display the connect screen.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': 'look l', 'category': 'general', 'key': '__unloggedin_look_command', 'tags': '', 'text': '\n look when in unlogged-in state\n\n Usage:\n look\n\n This is an unconnected version of the look command for simplicity.\n\n This is called by the server and kicks everything in gear.\n All it does is display the connect screen.\n '}
    -
    -
    @@ -295,11 +275,6 @@ for simplicity. It shows a pane of info.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': '? h', 'category': 'general', 'key': 'help', '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 '}
    -
    - @@ -337,6 +312,7 @@ for simplicity. It shows a pane of info.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.commands.html b/docs/0.9.5/api/evennia.commands.html index 211fc22586..40ccc3cac6 100644 --- a/docs/0.9.5/api/evennia.commands.html +++ b/docs/0.9.5/api/evennia.commands.html @@ -110,6 +110,7 @@ Evennia.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.comms.admin.html b/docs/0.9.5/api/evennia.comms.admin.html index d2211f5ff1..338167c5be 100644 --- a/docs/0.9.5/api/evennia.comms.admin.html +++ b/docs/0.9.5/api/evennia.comms.admin.html @@ -262,6 +262,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.comms.channelhandler.html b/docs/0.9.5/api/evennia.comms.channelhandler.html index 0a93f2aa83..13c311ad9e 100644 --- a/docs/0.9.5/api/evennia.comms.channelhandler.html +++ b/docs/0.9.5/api/evennia.comms.channelhandler.html @@ -59,7 +59,7 @@ does this for you.

    class evennia.comms.channelhandler.ChannelCommand(**kwargs)[source]
    -

    Bases: evennia.commands.command.Command

    +

    Bases: evennia.commands.default.muxcommand.MuxCommand

    {channelkey} channel

    {channeldesc}

    @@ -140,11 +140,6 @@ the already formatted input.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'channel names', 'key': 'general', 'tags': '', 'text': '\n {channelkey} channel\n\n {channeldesc}\n\n Usage:\n {lower_channelkey} <message>\n {lower_channelkey}/history [start]\n {lower_channelkey} off - mutes the channel\n {lower_channelkey} on - unmutes the channel\n\n Switch:\n history: View 20 previous messages, either from the end or\n from <start> number of messages from the end.\n\n Example:\n {lower_channelkey} Hello World!\n {lower_channelkey}/history\n {lower_channelkey}/history 30\n\n '}
    -
    -
    @@ -298,6 +293,7 @@ or more channels.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.comms.comms.html b/docs/0.9.5/api/evennia.comms.comms.html index 54860d6fdd..867c7ca2e7 100644 --- a/docs/0.9.5/api/evennia.comms.comms.html +++ b/docs/0.9.5/api/evennia.comms.comms.html @@ -766,6 +766,7 @@ responsibility.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.comms.html b/docs/0.9.5/api/evennia.comms.html index 88811304a4..9ab68d309c 100644 --- a/docs/0.9.5/api/evennia.comms.html +++ b/docs/0.9.5/api/evennia.comms.html @@ -85,6 +85,7 @@ as code related to external communication like IRC or RSS.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.comms.managers.html b/docs/0.9.5/api/evennia.comms.managers.html index 427bc180d1..5b3bb2a188 100644 --- a/docs/0.9.5/api/evennia.comms.managers.html +++ b/docs/0.9.5/api/evennia.comms.managers.html @@ -363,6 +363,7 @@ case sensitive) match.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.comms.models.html b/docs/0.9.5/api/evennia.comms.models.html index 00befc6625..a8d15e5a3e 100644 --- a/docs/0.9.5/api/evennia.comms.models.html +++ b/docs/0.9.5/api/evennia.comms.models.html @@ -715,6 +715,7 @@ object the first time, the query is executed.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.contrib.barter.html b/docs/0.9.5/api/evennia.contrib.barter.html index 68289e51cb..bb517b63ac 100644 --- a/docs/0.9.5/api/evennia.contrib.barter.html +++ b/docs/0.9.5/api/evennia.contrib.barter.html @@ -402,11 +402,6 @@ available to the command

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'command', 'tags': '', 'text': '\n Base command for Trade commands to inherit from. Implements the\n custom parsing.\n '}
    -
    -
    @@ -450,11 +445,6 @@ available to the command

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'trade', 'key': 'trade help', 'tags': '', 'text': '\n help command for the trade system.\n\n Usage:\n trade help\n\n Displays help for the trade commands.\n '}
    -
    -
    @@ -499,11 +489,6 @@ standing offer.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'trading', 'key': 'offer', 'tags': '', 'text': '\n offer one or more items in trade.\n\n Usage:\n offer <object> [, object2, ...][:emote]\n\n Offer objects in trade. This will replace the currently\n standing offer.\n '}
    -
    -
    @@ -551,11 +536,6 @@ the current offer using the ‘offers’ command.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': 'agree', 'category': 'trading', 'key': 'accept', 'tags': '', 'text': "\n accept the standing offer\n\n Usage:\n accept [:emote]\n agreee [:emote]\n\n This will accept the current offer. The other party must also accept\n for the deal to go through. You can use the 'decline' command to change\n your mind as long as the other party has not yet accepted. You can inspect\n the current offer using the 'offers' command.\n "}
    -
    -
    @@ -602,11 +582,6 @@ decline the old offer.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'trading', 'key': 'decline', 'tags': '', 'text': "\n decline the standing offer\n\n Usage:\n decline [:emote]\n\n This will decline a previously 'accept'ed offer (so this allows you to\n change your mind). You can only use this as long as the other party\n has not yet accepted the deal. Also, changing the offer will automatically\n decline the old offer.\n "}
    -
    -
    @@ -651,11 +626,6 @@ determine if it’s worth your while.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': 'eval', 'category': 'trading', 'key': 'evaluate', 'tags': '', 'text': "\n evaluate objects on offer\n\n Usage:\n evaluate <offered object>\n\n This allows you to examine any object currently on offer, to\n determine if it's worth your while.\n "}
    -
    -
    @@ -680,7 +650,7 @@ try to influence the other part in the deal.

    -aliases = ['deal', 'offers']
    +aliases = ['offers', 'deal']
    @@ -704,11 +674,6 @@ try to influence the other part in the deal.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': 'deal offers', 'category': 'trading', 'key': 'status', 'tags': '', 'text': "\n show a list of the current deal\n\n Usage:\n status\n deal\n offers\n\n Shows the currently suggested offers on each sides of the deal. To\n accept the current deal, use the 'accept' command. Use 'offer' to\n change your deal. You might also want to use 'say', 'emote' etc to\n try to influence the other part in the deal.\n "}
    -
    -
    @@ -753,11 +718,6 @@ finish trade [:say]

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': 'finish trade', 'category': 'trading', 'key': 'end trade', 'tags': '', 'text': '\n end the trade prematurely\n\n Usage:\n end trade [:say]\n finish trade [:say]\n\n This ends the trade prematurely. No trade will take place.\n\n '}
    -
    -
    @@ -832,11 +792,6 @@ info to your choice.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': 'barter', 'category': 'general', 'key': 'trade', 'tags': '', 'text': '\n Initiate trade with another party\n\n Usage:\n trade <other party> [:say]\n trade <other party> accept [:say]\n trade <other party> decline [:say]\n\n Initiate trade with another party. The other party needs to repeat\n this command with trade accept/decline within a minute in order to\n properly initiate the trade action. You can use the decline option\n yourself if you want to retract an already suggested trade. The\n optional say part works like the say command and allows you to add\n info to your choice.\n '}
    -
    - @@ -874,6 +829,7 @@ info to your choice.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.contrib.building_menu.html b/docs/0.9.5/api/evennia.contrib.building_menu.html index 168aa9ea9e..8bb42cfdd2 100644 --- a/docs/0.9.5/api/evennia.contrib.building_menu.html +++ b/docs/0.9.5/api/evennia.contrib.building_menu.html @@ -250,11 +250,6 @@ overloading evential same-named class properties.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'general', 'key': '__noinput_command', 'tags': '', 'text': 'No input has been found.'}
    -
    -
    @@ -301,11 +296,6 @@ overloading evential same-named class properties.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'general', 'key': '__nomatch_command', 'tags': '', 'text': 'No input has been found.'}
    -
    -
    @@ -870,11 +860,6 @@ set in self.parse())

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'general', 'key': '@edit', 'tags': '', 'text': "\n Generic building command.\n\n Syntax:\n @edit [object]\n\n Open a building menu to edit the specified object. This menu allows to\n change the object's key and description.\n\n Examples:\n @edit here\n @edit self\n @edit #142\n\n "}
    -
    - @@ -912,6 +897,7 @@ set in self.parse())

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.contrib.chargen.html b/docs/0.9.5/api/evennia.contrib.chargen.html index 05a3755f78..54a5f22be0 100644 --- a/docs/0.9.5/api/evennia.contrib.chargen.html +++ b/docs/0.9.5/api/evennia.contrib.chargen.html @@ -76,7 +76,7 @@ at them with this command.

    -aliases = ['ls', 'l']
    +aliases = ['l', 'ls']
    @@ -106,11 +106,6 @@ that is checked by the @ic command directly.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': 'ls l', 'category': 'general', 'key': 'look', 'tags': '', 'text': '\n ooc look\n\n Usage:\n look\n look <character>\n\n This is an OOC version of the look command. Since an Account doesn\'t\n have an in-game existence, there is no concept of location or\n "self".\n\n If any characters are available for you to control, you may look\n at them with this command.\n '}
    -
    -
    @@ -156,11 +151,6 @@ attribute on ourselves to remember it.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'create', 'tags': '', 'text': '\n creates a character\n\n Usage:\n create <character name>\n\n This will create a new character, assuming\n the given character name does not already exist.\n '}
    -
    -
    @@ -216,6 +206,7 @@ attribute on ourselves to remember it.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.contrib.clothing.html b/docs/0.9.5/api/evennia.contrib.clothing.html index 62a5754c13..587ce5e33a 100644 --- a/docs/0.9.5/api/evennia.contrib.clothing.html +++ b/docs/0.9.5/api/evennia.contrib.clothing.html @@ -358,11 +358,6 @@ provide will be displayed after the clothing’s name.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'clothing', 'key': 'wear', 'tags': '', 'text': "\n Puts on an item of clothing you are holding.\n\n Usage:\n wear <obj> [wear style]\n\n Examples:\n wear shirt\n wear scarf wrapped loosely about the shoulders\n\n All the clothes you are wearing are appended to your description.\n If you provide a 'wear style' after the command, the message you\n provide will be displayed after the clothing's name.\n "}
    -
    -
    @@ -403,11 +398,6 @@ off the covering item first.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'clothing', 'key': 'remove', 'tags': '', 'text': "\n Takes off an item of clothing.\n\n Usage:\n remove <obj>\n\n Removes an item of clothing you are wearing. You can't remove\n clothes that are covered up by something else - you must take\n off the covering item first.\n "}
    -
    -
    @@ -448,11 +438,6 @@ You can’t remove an item of clothing if it’s covered.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'clothing', 'key': 'cover', 'tags': '', 'text': "\n Covers a worn item of clothing with another you're holding or wearing.\n\n Usage:\n cover <obj> [with] <obj>\n\n When you cover a clothing item, it is hidden and no longer appears in\n your description until it's uncovered or the item covering it is removed.\n You can't remove an item of clothing if it's covered.\n "}
    -
    -
    @@ -494,11 +479,6 @@ it is also covered by something else.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'clothing', 'key': 'uncover', 'tags': '', 'text': "\n Reveals a worn item of clothing that's currently covered up.\n\n Usage:\n uncover <obj>\n\n When you uncover an item of clothing, you allow it to appear in your\n description without having to take off the garment that's currently\n covering it. You can't uncover an item of clothing if the item covering\n it is also covered by something else.\n "}
    -
    -
    @@ -548,11 +528,6 @@ location you are currently in.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'drop', 'tags': '', 'text': '\n drop something\n\n Usage:\n drop <obj>\n\n Lets you drop an object from your inventory into the\n location you are currently in.\n '}
    -
    -
    @@ -602,11 +577,6 @@ placing it in their inventory.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'give', 'tags': '', 'text': '\n give away something to someone\n\n Usage:\n give <inventory obj> = <target>\n\n Gives an items from your inventory to another character,\n placing it in their inventory.\n '}
    -
    -
    @@ -656,11 +626,6 @@ inv

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': 'inv i', 'category': 'general', 'key': 'inventory', 'tags': '', 'text': '\n view inventory\n\n Usage:\n inventory\n inv\n\n Shows your inventory.\n '}
    -
    -
    @@ -724,6 +689,7 @@ items.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.contrib.color_markups.html b/docs/0.9.5/api/evennia.contrib.color_markups.html index fd9c1cf920..6d86b9d271 100644 --- a/docs/0.9.5/api/evennia.contrib.color_markups.html +++ b/docs/0.9.5/api/evennia.contrib.color_markups.html @@ -115,6 +115,7 @@ COLOR_ANSI_BRIGHT_BGS_EXTRA_MAP = color_markups.CURLY_COLOR_ANSI_BRIGHT_BGS_EXTR
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.contrib.custom_gametime.html b/docs/0.9.5/api/evennia.contrib.custom_gametime.html index 9872a486d0..d2591c36b2 100644 --- a/docs/0.9.5/api/evennia.contrib.custom_gametime.html +++ b/docs/0.9.5/api/evennia.contrib.custom_gametime.html @@ -302,6 +302,7 @@ The time is given in units as keyword arguments.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.contrib.dice.html b/docs/0.9.5/api/evennia.contrib.dice.html index 910b9bb685..861da9e1dc 100644 --- a/docs/0.9.5/api/evennia.contrib.dice.html +++ b/docs/0.9.5/api/evennia.contrib.dice.html @@ -148,7 +148,7 @@ everyone but the person rolling.

    -aliases = ['roll', '@dice']
    +aliases = ['@dice', 'roll']
    @@ -172,11 +172,6 @@ everyone but the person rolling.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': 'roll @dice', 'category': 'general', 'key': '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 "}
    -
    -
    @@ -233,6 +228,7 @@ Add with @py self.cmdset.add(“contrib.dice.DiceCmdSet”)

  • 0.9.5 (v0.9.5 branch)
  • +
    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 680f63964c..d6ddea8c52 100644 --- a/docs/0.9.5/api/evennia.contrib.email_login.html +++ b/docs/0.9.5/api/evennia.contrib.email_login.html @@ -73,7 +73,7 @@ the module given by settings.CONNECTION_SCREEN_MODULE.

    -aliases = ['conn', 'co', 'con']
    +aliases = ['co', 'conn', 'con']
    @@ -101,11 +101,6 @@ there is no object yet before the account has logged in)

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': 'conn co con', 'category': 'general', 'key': 'connect', '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 '}
    -
    -
    @@ -125,7 +120,7 @@ there is no object yet before the account has logged in)

    -aliases = ['cre', 'cr']
    +aliases = ['cr', 'cre']
    @@ -159,11 +154,6 @@ name enclosed in quotes:

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': 'cre cr', 'category': 'general', 'key': 'create', '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 '}
    -
    -
    @@ -180,7 +170,7 @@ version is a bit more complicated.

    -aliases = ['q', 'qu']
    +aliases = ['qu', 'q']
    @@ -204,11 +194,6 @@ version is a bit more complicated.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': 'q qu', 'category': 'general', 'key': 'quit', '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 '}
    -
    -
    @@ -249,11 +234,6 @@ All it does is display the connect screen.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': 'look l', 'category': 'general', 'key': '__unloggedin_look_command', 'tags': '', 'text': '\n This is an unconnected version of the `look` command for simplicity.\n\n This is called by the server and kicks everything in gear.\n All it does is display the connect screen.\n '}
    -
    -
    @@ -293,11 +273,6 @@ for simplicity. It shows a pane of info.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': '? h', 'category': 'general', 'key': 'help', 'tags': '', 'text': '\n This is an unconnected version of the help command,\n for simplicity. It shows a pane of info.\n '}
    -
    - @@ -335,6 +310,7 @@ for simplicity. It shows a pane of info.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.contrib.extended_room.html b/docs/0.9.5/api/evennia.contrib.extended_room.html index d5131ae83f..8313f26f3a 100644 --- a/docs/0.9.5/api/evennia.contrib.extended_room.html +++ b/docs/0.9.5/api/evennia.contrib.extended_room.html @@ -275,7 +275,7 @@ look *<account&g
    -aliases = ['ls', 'l']
    +aliases = ['l', 'ls']
    @@ -293,11 +293,6 @@ look *<account&g lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': 'ls l', 'category': 'general', 'key': 'look', '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 '}
    -
    -
    @@ -361,11 +356,6 @@ version of the desc command.

    lock_storage = 'cmd:perm(desc) or perm(Builder)'
    -
    -
    -search_index_entry = {'aliases': 'describe', 'category': 'building', 'key': 'desc', 'tags': '', 'text': '\n `desc` - describe an object or room.\n\n Usage:\n desc[/switch] [<obj> =] <description>\n\n Switches for `desc`:\n spring - set description for <season> in current room.\n summer\n autumn\n winter\n\n Sets the "desc" attribute on an object. If an object is not given,\n describe the current room.\n\n You can also embed special time markers in your room description, like this:\n\n ```\n <night>In the darkness, the forest looks foreboding.</night>.\n ```\n\n Text marked this way will only display when the server is truly at the given\n timeslot. The available times are night, morning, afternoon and evening.\n\n Note that seasons and time-of-day slots only work on rooms in this\n version of the `desc` command.\n\n '}
    -
    -
    @@ -424,11 +414,6 @@ to all the variables defined therein.

    lock_storage = 'cmd:perm(Builder)'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'building', 'key': '@detail', 'tags': '', 'text': '\n sets a detail on a room\n\n Usage:\n @detail[/del] <key> [= <description>]\n @detail <key>;<alias>;... = description\n\n Example:\n @detail\n @detail walls = The walls are covered in ...\n @detail castle;ruin;tower = The distant ruin ...\n @detail/del wall\n @detail/del castle;ruin;tower\n\n This command allows to show the current room details if you enter it\n without any argument. Otherwise, sets or deletes a detail on the current\n room, if this room supports details like an extended room. To add new\n detail, just use the @detail command, specifying the key, an equal sign\n and the description. You can assign the same description to several\n details using the alias syntax (replace key by alias1;alias2;alias3;...).\n To remove one or several details, use the @detail/del switch.\n\n '}
    -
    -
    @@ -472,11 +457,6 @@ to all the variables defined therein.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'time', 'tags': '', 'text': '\n Check the game time\n\n Usage:\n time\n\n Shows the current in-game time and season.\n '}
    -
    -
    @@ -534,6 +514,7 @@ self.add().

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.contrib.fieldfill.html b/docs/0.9.5/api/evennia.contrib.fieldfill.html index 246e57e1d9..eaa69b0944 100644 --- a/docs/0.9.5/api/evennia.contrib.fieldfill.html +++ b/docs/0.9.5/api/evennia.contrib.fieldfill.html @@ -363,11 +363,6 @@ send

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'testmenu', 'tags': '', 'text': "\n This test command will initialize a menu that presents you with a form.\n You can fill out the fields of this form in any order, and then type in\n 'send' to send a message to another online player, which will reach them\n after a delay you specify.\n\n Usage:\n <field> = <new value>\n clear <field>\n help\n look\n quit\n send\n "}
    -
    -
    @@ -433,6 +428,7 @@ send

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.contrib.gendersub.html b/docs/0.9.5/api/evennia.contrib.gendersub.html index 59c7f0ef9b..60f82442a5 100644 --- a/docs/0.9.5/api/evennia.contrib.gendersub.html +++ b/docs/0.9.5/api/evennia.contrib.gendersub.html @@ -109,11 +109,6 @@ default cmdset before it becomes available.

    lock_storage = 'cmd:all();call:all()'
    -
    -
    -search_index_entry = {'aliases': '@sex', 'category': 'general', 'key': '@gender', 'tags': '', 'text': '\n Sets gender on yourself\n\n Usage:\n @gender male||female||neutral||ambiguous\n\n '}
    -
    -
    @@ -212,6 +207,7 @@ All extra kwargs will be passed on to the protocol.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.contrib.health_bar.html b/docs/0.9.5/api/evennia.contrib.health_bar.html index 18b11b32d2..1b3646c5ec 100644 --- a/docs/0.9.5/api/evennia.contrib.health_bar.html +++ b/docs/0.9.5/api/evennia.contrib.health_bar.html @@ -130,6 +130,7 @@ readers will be unable to read the graphical aspect of the bar.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.contrib.html b/docs/0.9.5/api/evennia.contrib.html index d23dfc2164..f13af0d8e8 100644 --- a/docs/0.9.5/api/evennia.contrib.html +++ b/docs/0.9.5/api/evennia.contrib.html @@ -153,6 +153,7 @@ useful but are deemed too game-specific to go into the core library.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.contrib.ingame_python.callbackhandler.html b/docs/0.9.5/api/evennia.contrib.ingame_python.callbackhandler.html index 9a3c6ff520..d0b5f62f9c 100644 --- a/docs/0.9.5/api/evennia.contrib.ingame_python.callbackhandler.html +++ b/docs/0.9.5/api/evennia.contrib.ingame_python.callbackhandler.html @@ -308,6 +308,7 @@ the expected fields for a callback (code, author, valid…).

  • 0.9.5 (v0.9.5 branch)
  • +
    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 031f78ae43..e9bff601d9 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 @@ -51,7 +51,7 @@
    -aliases = ['@callback', '@calls', '@callbacks']
    +aliases = ['@callbacks', '@callback', '@calls']
    @@ -130,11 +130,6 @@ on user permission.

    lock_storage = 'cmd:perm(developer)'
    -
    -
    -search_index_entry = {'aliases': '@callback @calls @callbacks', 'category': 'building', 'key': '@call', 'tags': '', 'text': '\n Command to edit callbacks.\n '}
    -
    -
    @@ -172,6 +167,7 @@ on user permission.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.contrib.ingame_python.eventfuncs.html b/docs/0.9.5/api/evennia.contrib.ingame_python.eventfuncs.html index 6239cfe993..b7a942a9d3 100644 --- a/docs/0.9.5/api/evennia.contrib.ingame_python.eventfuncs.html +++ b/docs/0.9.5/api/evennia.contrib.ingame_python.eventfuncs.html @@ -140,6 +140,7 @@ to be called from inside another event.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.contrib.ingame_python.html b/docs/0.9.5/api/evennia.contrib.ingame_python.html index 700d5ad88b..ae259251fb 100644 --- a/docs/0.9.5/api/evennia.contrib.ingame_python.html +++ b/docs/0.9.5/api/evennia.contrib.ingame_python.html @@ -84,6 +84,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.contrib.ingame_python.scripts.html b/docs/0.9.5/api/evennia.contrib.ingame_python.scripts.html index 582bfcfbdb..77474495f5 100644 --- a/docs/0.9.5/api/evennia.contrib.ingame_python.scripts.html +++ b/docs/0.9.5/api/evennia.contrib.ingame_python.scripts.html @@ -429,6 +429,7 @@ restart only twice.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.contrib.ingame_python.tests.html b/docs/0.9.5/api/evennia.contrib.ingame_python.tests.html index d4035506fe..e81f68542c 100644 --- a/docs/0.9.5/api/evennia.contrib.ingame_python.tests.html +++ b/docs/0.9.5/api/evennia.contrib.ingame_python.tests.html @@ -215,6 +215,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.contrib.ingame_python.typeclasses.html b/docs/0.9.5/api/evennia.contrib.ingame_python.typeclasses.html index 55470909d9..72c435c0ab 100644 --- a/docs/0.9.5/api/evennia.contrib.ingame_python.typeclasses.html +++ b/docs/0.9.5/api/evennia.contrib.ingame_python.typeclasses.html @@ -466,6 +466,7 @@ deletion is aborted.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.contrib.ingame_python.utils.html b/docs/0.9.5/api/evennia.contrib.ingame_python.utils.html index a63c75ccb3..75bebcd569 100644 --- a/docs/0.9.5/api/evennia.contrib.ingame_python.utils.html +++ b/docs/0.9.5/api/evennia.contrib.ingame_python.utils.html @@ -193,6 +193,7 @@ either “yes” or “okay” (maybe ‘say I don’t like it, but okay’).

    0.9.5 (v0.9.5 branch) +
    diff --git a/docs/0.9.5/api/evennia.contrib.mail.html b/docs/0.9.5/api/evennia.contrib.mail.html index db8c5b0d4a..3a6e9fbebd 100644 --- a/docs/0.9.5/api/evennia.contrib.mail.html +++ b/docs/0.9.5/api/evennia.contrib.mail.html @@ -217,11 +217,6 @@ the newly created mails.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': 'mail', 'category': 'general', 'key': '@mail', 'tags': '', 'text': '\n Communicate with others by sending mail.\n\n Usage:\n @mail - Displays all the mail an account has in their mailbox\n @mail <#> - Displays a specific message\n @mail <accounts>=<subject>/<message>\n - Sends a message to the comma separated list of accounts.\n @mail/delete <#> - Deletes a specific message\n @mail/forward <account list>=<#>[/<Message>]\n - Forwards an existing message to the specified list of accounts,\n original message is delivered with optional Message prepended.\n @mail/reply <#>=<message>\n - Replies to a message #. Prepends message to the original\n message text.\n Switches:\n delete - deletes a message\n forward - forward a received message to another object with an optional message attached.\n reply - Replies to a received message, appending the original message to the bottom.\n Examples:\n @mail 2\n @mail Griatch=New mail/Hey man, I am sending you a message!\n @mail/delete 6\n @mail/forward feend78 Griatch=4/You guys should read this.\n @mail/reply 9=Thanks for the info!\n\n '}
    -
    -
    @@ -290,11 +285,6 @@ reply - Replies to a received message, appending the original message to the b lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': 'mail', 'category': 'general', 'key': '@mail', 'tags': '', 'text': '\n Communicate with others by sending mail.\n\n Usage:\n @mail - Displays all the mail an account has in their mailbox\n @mail <#> - Displays a specific message\n @mail <accounts>=<subject>/<message>\n - Sends a message to the comma separated list of accounts.\n @mail/delete <#> - Deletes a specific message\n @mail/forward <account list>=<#>[/<Message>]\n - Forwards an existing message to the specified list of accounts,\n original message is delivered with optional Message prepended.\n @mail/reply <#>=<message>\n - Replies to a message #. Prepends message to the original\n message text.\n Switches:\n delete - deletes a message\n forward - forward a received message to another object with an optional message attached.\n reply - Replies to a received message, appending the original message to the bottom.\n Examples:\n @mail 2\n @mail Griatch=New mail/Hey man, I am sending you a message!\n @mail/delete 6\n @mail/forward feend78 Griatch=4/You guys should read this.\n @mail/reply 9=Thanks for the info!\n\n '}
    -
    - @@ -332,6 +322,7 @@ reply - Replies to a received message, appending the original message to the b
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.contrib.mapbuilder.html b/docs/0.9.5/api/evennia.contrib.mapbuilder.html index c0aeeca3e9..5651199327 100644 --- a/docs/0.9.5/api/evennia.contrib.mapbuilder.html +++ b/docs/0.9.5/api/evennia.contrib.mapbuilder.html @@ -232,11 +232,6 @@ how many times the map is iterated over.

    lock_storage = 'cmd:superuser()'
    -
    -
    -search_index_entry = {'aliases': '@buildmap', 'category': 'building', 'key': '@mapbuilder', 'tags': '', 'text': '\n Build a map from a 2D ASCII map.\n\n Usage:\n @mapbuilder[/switch] <path.to.file.MAPNAME> <path.to.file.MAP_LEGEND>\n\n Switches:\n one - execute build instructions once without automatic exit creation\n two - execute build instructions twice without automatic exit creation\n\n Example:\n @mapbuilder world.gamemap.MAP world.maplegend.MAP_LEGEND\n @mapbuilder evennia.contrib.mapbuilder.EXAMPLE1_MAP EXAMPLE1_LEGEND\n @mapbuilder/two evennia.contrib.mapbuilder.EXAMPLE2_MAP EXAMPLE2_LEGEND\n (Legend path defaults to map path)\n\n This is a command which takes two inputs:\n A string of ASCII characters representing a map and a dictionary of\n functions containing build instructions. The characters of the map are\n iterated over and compared to a list of trigger characters. When a match\n is found the corresponding function is executed generating the rooms,\n exits and objects as defined by the users build instructions. If a\n character is not a match to a provided trigger character (including spaces)\n it is simply skipped and the process continues. By default exits are\n automatically generated but is turned off by switches which also determines\n how many times the map is iterated over.\n '}
    -
    - @@ -274,6 +269,7 @@ how many times the map is iterated over.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.contrib.menu_login.html b/docs/0.9.5/api/evennia.contrib.menu_login.html index ddf26f3231..95cdaea8cf 100644 --- a/docs/0.9.5/api/evennia.contrib.menu_login.html +++ b/docs/0.9.5/api/evennia.contrib.menu_login.html @@ -141,11 +141,6 @@ to the menu’s own look command.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'general', 'key': '__unloggedin_look_command', 'tags': '', 'text': "\n An unloggedin version of the look command. This is called by the server\n when the account first connects. It sets up the menu before handing off\n to the menu's own look command.\n\n "}
    -
    - @@ -183,6 +178,7 @@ to the menu’s own look command.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.contrib.multidescer.html b/docs/0.9.5/api/evennia.contrib.multidescer.html index 3d4108fa4d..12ca386f6f 100644 --- a/docs/0.9.5/api/evennia.contrib.multidescer.html +++ b/docs/0.9.5/api/evennia.contrib.multidescer.html @@ -115,11 +115,6 @@ description in use and db.multidesc to store all descriptions.< lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': 'desc', 'category': 'general', 'key': '+desc', 'tags': '', 'text': '\n Manage multiple descriptions\n\n Usage:\n +desc [key] - show current desc desc with <key>\n +desc <key> = <text> - add/replace desc with <key>\n +desc/list - list descriptions (abbreviated)\n +desc/list/full - list descriptions (full texts)\n +desc/edit <key> - add/edit desc <key> in line editor\n +desc/del <key> - delete desc <key>\n +desc/swap <key1>-<key2> - swap positions of <key1> and <key2> in list\n +desc/set <key> [+key+...] - set desc as default or combine multiple descs\n\n Notes:\n When combining multiple descs with +desc/set <key> + <key2> + ...,\n any keys not matching an actual description will be inserted\n as plain text. Use e.g. ansi line break ||/ to add a new\n paragraph and + + or ansi space ||_ to add extra whitespace.\n\n '}
    -
    - @@ -157,6 +152,7 @@ description in use and db.multidesc to store all descriptions.<
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.contrib.puzzles.html b/docs/0.9.5/api/evennia.contrib.puzzles.html index 66f18f4833..a12877ce1e 100644 --- a/docs/0.9.5/api/evennia.contrib.puzzles.html +++ b/docs/0.9.5/api/evennia.contrib.puzzles.html @@ -205,11 +205,6 @@ to all the variables defined therein.

    lock_storage = 'cmd:perm(puzzle) or perm(Builder)'
    -
    -
    -search_index_entry = {'aliases': '@puzzlerecipe', 'category': 'puzzles', 'key': '@puzzle', 'tags': '', 'text': "\n Creates a puzzle recipe. A puzzle consists of puzzle-parts that\n the player can 'use' together to create a specified result.\n\n Usage:\n @puzzle name,<part1[,part2,...>] = <result1[,result2,...]>\n\n Example:\n create/drop balloon\n create/drop glass of water\n create/drop water balloon\n @puzzle waterballon,balloon,glass of water = water balloon\n @del ballon, glass of water, water balloon\n @armpuzzle #1\n\n Notes:\n Each part and result are objects that must (temporarily) exist and be placed in their\n corresponding location in order to create the puzzle. After the creation of the puzzle,\n these objects are not needed anymore and can be deleted. Components of the puzzle\n will be re-created by use of the `@armpuzzle` command later.\n\n "}
    -
    -
    @@ -273,11 +268,6 @@ to all the variables defined therein.

    lock_storage = 'cmd:perm(puzzleedit) or perm(Builder)'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'puzzles', 'key': '@puzzleedit', 'tags': '', 'text': "\n Edits puzzle properties\n\n Usage:\n @puzzleedit[/delete] <#dbref>\n @puzzleedit <#dbref>/use_success_message = <Custom message>\n @puzzleedit <#dbref>/use_success_location_message = <Custom message from {caller} producing {result_names}>\n @puzzleedit <#dbref>/mask = attr1[,attr2,...]>\n @puzzleedit[/addpart] <#dbref> = <obj[,obj2,...]>\n @puzzleedit[/delpart] <#dbref> = <obj[,obj2,...]>\n @puzzleedit[/addresult] <#dbref> = <obj[,obj2,...]>\n @puzzleedit[/delresult] <#dbref> = <obj[,obj2,...]>\n\n Switches:\n addpart - adds parts to the puzzle\n delpart - removes parts from the puzzle\n addresult - adds results to the puzzle\n delresult - removes results from the puzzle\n delete - deletes the recipe. Existing parts and results aren't modified\n\n mask - attributes to exclude during matching (e.g. location, desc, etc.)\n use_success_location_message containing {result_names} and {caller} will\n automatically be replaced with correct values. Both are optional.\n\n When removing parts/results, it's possible to remove all.\n\n "}
    -
    -
    @@ -325,11 +315,6 @@ to all the variables defined therein.

    lock_storage = 'cmd:perm(armpuzzle) or perm(Builder)'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'puzzles', 'key': '@armpuzzle', 'tags': '', 'text': '\n Arms a puzzle by spawning all its parts.\n\n Usage:\n @armpuzzle <puzzle #dbref>\n\n Notes:\n Create puzzles with `@puzzle`; get list of\n defined puzzles using `@lspuzzlerecipes`.\n\n '}
    -
    -
    @@ -378,11 +363,6 @@ to all the variables defined therein.

    lock_storage = 'cmd:pperm(use) or pperm(Player)'
    -
    -
    -search_index_entry = {'aliases': 'combine', 'category': 'puzzles', 'key': 'use', 'tags': '', 'text': '\n Use an object, or a group of objects at once.\n\n\n Example:\n You look around you and see a pole, a long string, and a needle.\n\n use pole, long string, needle\n\n Genius! You built a fishing pole.\n\n\n Usage:\n use <obj1> [,obj2,...]\n '}
    -
    -
    @@ -427,11 +407,6 @@ to all the variables defined therein.

    lock_storage = 'cmd:perm(lspuzzlerecipes) or perm(Builder)'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'puzzles', 'key': '@lspuzzlerecipes', 'tags': '', 'text': '\n Searches for all puzzle recipes\n\n Usage:\n @lspuzzlerecipes\n '}
    -
    -
    @@ -476,11 +451,6 @@ to all the variables defined therein.

    lock_storage = 'cmd:perm(lsarmedpuzzles) or perm(Builder)'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'puzzles', 'key': '@lsarmedpuzzles', 'tags': '', 'text': '\n Searches for all armed puzzles\n\n Usage:\n @lsarmedpuzzles\n '}
    -
    -
    @@ -538,6 +508,7 @@ self.add().

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.contrib.random_string_generator.html b/docs/0.9.5/api/evennia.contrib.random_string_generator.html index 64c02ad01b..ac06806159 100644 --- a/docs/0.9.5/api/evennia.contrib.random_string_generator.html +++ b/docs/0.9.5/api/evennia.contrib.random_string_generator.html @@ -288,6 +288,7 @@ calling the get method.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.contrib.rplanguage.html b/docs/0.9.5/api/evennia.contrib.rplanguage.html index fe6b6c4a02..e6ab0b61c1 100644 --- a/docs/0.9.5/api/evennia.contrib.rplanguage.html +++ b/docs/0.9.5/api/evennia.contrib.rplanguage.html @@ -97,46 +97,18 @@ words compared to the original and can help change the “feel” for the language you are creating. You can also add your own dictionary and “fix” random words for a list of input words.

    Below is an example of “elvish”, using “rounder” vowels and sounds:

    -
    # vowel/consonant grammar possibilities
    -grammar = ("v vv vvc vcc vvcc cvvc vccv vvccv vcvccv vcvcvcc vvccvvcc "
    -           "vcvvccvvc cvcvvcvvcc vcvcvvccvcvv")
    -
    -# all not in this group is considered a consonant
    +
    phonemes = "oi oh ee ae aa eh ah ao aw ay er ey ow ia ih iy "                "oy ua uh uw y p b t d f v t dh s z sh zh ch jh k "                "ng g m n l r w",
     vowels = "eaoiuy"
    -
    -# you need a representative of all of the minimal grammars here, so if a
    -# grammar v exists, there must be atleast one phoneme available with only
    -# one vowel in it
    -phonemes = ("oi oh ee ae aa eh ah ao aw ay er ey ow ia ih iy "
    -            "oy ua uh uw y p b t d f v t dh s z sh zh ch jh k "
    -            "ng g m n l r w")
    -
    -# how much the translation varies in length compared to the original. 0 is
    -# smallest, higher values give ever bigger randomness (including removing
    -# short words entirely)
    +grammar = "v vv vvc vcc vvcc cvvc vccv vvccv vcvccv vcvcvcc vvccvvcc "               "vcvvccvvc cvcvvcvvcc vcvcvvccvcvv",
     word_length_variance = 1
    -
    -# if a proper noun (word starting with capitalized letter) should be
    -# translated or not. If not (default) it means e.g. names will remain
    -# unchanged across languages.
    -noun_translate = False
    -
    -# all proper nouns (words starting with a capital letter not at the beginning
    -# of a sentence) can have either a postfix or -prefix added at all times
     noun_postfix = "'la"
    -
    -# words in dict will always be translated this way. The 'auto_translations'
    -# is instead a list or filename to file with words to use to help build a
    -# bigger dictionary by creating random translations of each word in the
    -# list *once* and saving the result for subsequent use.
     manual_translations = {"the":"y'e", "we":"uyi", "she":"semi", "he":"emi",
                           "you": "do", 'me':'mi','i':'me', 'be':"hy'e", 'and':'y'}
     
     rplanguage.add_language(key="elvish", phonemes=phonemes, grammar=grammar,
                              word_length_variance=word_length_variance,
    -                         noun_translate=noun_translate,
                              noun_postfix=noun_postfix, vowels=vowels,
    -                         manual_translations=manual_translations,
    +                         manual_translations=manual_translations
                              auto_translations="my_word_file.txt")
     
    @@ -217,13 +189,9 @@ cvcvccc would be c+v+c+v+cc+c (a word like ‘galosch’).

    0 means a minimal variance, higher variance may mean words have wildly varying length; this strongly affects how the language “looks”.

    -
  • noun_translate (bool, optional) – If a proper noun should be translated or -not. By default they will not, allowing for e.g. the names of characters -to be understandable. A ‘noun’ is identified as a capitalized word -not at the start of a sentence. This simple metric means that names -starting a sentence always will be translated (- but hey, maybe -the fantasy language just never uses a noun at the beginning of -sentences, who knows?)

  • +
  • noun_translate (bool, optional) – If a proper noun, identified as a +capitalized word, should be translated or not. By default they +will not, allowing for e.g. the names of characters to be understandable.

  • noun_prefix (str, optional) – A prefix to go before every noun in this language (if any).

  • noun_postfix (str, optuonal) – A postfix to go after every noun @@ -400,6 +368,7 @@ means fully obscured.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.contrib.rpsystem.html b/docs/0.9.5/api/evennia.contrib.rpsystem.html index c28ceeef7a..f129e2b166 100644 --- a/docs/0.9.5/api/evennia.contrib.rpsystem.html +++ b/docs/0.9.5/api/evennia.contrib.rpsystem.html @@ -265,10 +265,7 @@ langname can be None.

    Raises
    -
    +

    rplanguage.LanguageError – If an invalid language was specified.

    Notes

    @@ -553,11 +550,6 @@ mechanism. This is useful for adding masks/hoods etc.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'command', 'tags': '', 'text': 'simple parent'}
    -
    -
    @@ -611,11 +603,6 @@ a different language.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': ':', 'category': 'general', 'key': 'emote', 'tags': '', 'text': '\n Emote an action, allowing dynamic replacement of\n text in the emote.\n\n Usage:\n emote text\n\n Example:\n emote /me looks around.\n emote With a flurry /me attacks /tall man with his sword.\n emote "Hello", /me says.\n\n Describes an event in the world. This allows the use of /ref\n markers to replace with the short descriptions or recognized\n strings of objects in the same room. These will be translated to\n emotes to match each person seeing it. Use "..." for saying\n things and langcode"..." without spaces to say something in\n a different language.\n\n '}
    -
    -
    @@ -659,11 +646,6 @@ a different language.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': '" \'', 'category': 'general', 'key': 'say', 'tags': '', 'text': '\n speak as your character\n\n Usage:\n say <message>\n\n Talk to those in your current location.\n '}
    -
    -
    @@ -707,11 +689,6 @@ a different language.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'sdesc', 'tags': '', 'text': '\n Assign yourself a short description (sdesc).\n\n Usage:\n sdesc <short description>\n\n Assigns a short description to yourself.\n\n '}
    -
    -
    @@ -770,11 +747,6 @@ sdesc in the emote, regardless of who is seeing it.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'pose', 'tags': '', 'text': "\n Set a static pose\n\n Usage:\n pose <pose>\n pose default <pose>\n pose reset\n pose obj = <pose>\n pose default obj = <pose>\n pose reset obj =\n\n Examples:\n pose leans against the tree\n pose is talking to the barkeep.\n pose box = is sitting on the floor.\n\n Set a static pose. This is the end of a full sentence that starts\n with your sdesc. If no full stop is given, it will be added\n automatically. The default pose is the pose you get when using\n pose reset. Note that you can use sdescs/recogs to reference\n people in your pose, but these always appear as that person's\n sdesc in the emote, regardless of who is seeing it.\n\n "}
    -
    -
    @@ -800,7 +772,7 @@ Using the command without arguments will list all current recogs.

    -aliases = ['recognize', 'forget']
    +aliases = ['forget', 'recognize']
    @@ -825,11 +797,6 @@ Using the command without arguments will list all current recogs.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': 'recognize forget', 'category': 'general', 'key': 'recog', '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 '}
    -
    -
    @@ -874,11 +841,6 @@ set in self.parse())

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': 'unmask', 'category': 'general', 'key': 'mask', 'tags': '', 'text': "\n Wear a mask\n\n Usage:\n mask <new sdesc>\n unmask\n\n This will put on a mask to hide your identity. When wearing\n a mask, your sdesc will be replaced by the sdesc you pick and\n people's recognitions of you will be disabled.\n\n "}
    -
    -
    @@ -1277,6 +1239,7 @@ the evennia.contrib.rplanguage module.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.contrib.security.auditing.html b/docs/0.9.5/api/evennia.contrib.security.auditing.html index c73fe929b8..3283eecd19 100644 --- a/docs/0.9.5/api/evennia.contrib.security.auditing.html +++ b/docs/0.9.5/api/evennia.contrib.security.auditing.html @@ -80,6 +80,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.contrib.security.auditing.outputs.html b/docs/0.9.5/api/evennia.contrib.security.auditing.outputs.html index 89ee2cd059..ed12ee6005 100644 --- a/docs/0.9.5/api/evennia.contrib.security.auditing.outputs.html +++ b/docs/0.9.5/api/evennia.contrib.security.auditing.outputs.html @@ -115,6 +115,7 @@ compromised or taken down, losing your logs along with it is no help!).

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.contrib.security.auditing.server.html b/docs/0.9.5/api/evennia.contrib.security.auditing.server.html index 4016b6d45f..71c5f66631 100644 --- a/docs/0.9.5/api/evennia.contrib.security.auditing.server.html +++ b/docs/0.9.5/api/evennia.contrib.security.auditing.server.html @@ -154,6 +154,7 @@ writing to log. Recording cleartext password attempts is bad policy.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.contrib.security.auditing.tests.html b/docs/0.9.5/api/evennia.contrib.security.auditing.tests.html index 1a08738a56..94e9aee2db 100644 --- a/docs/0.9.5/api/evennia.contrib.security.auditing.tests.html +++ b/docs/0.9.5/api/evennia.contrib.security.auditing.tests.html @@ -94,6 +94,7 @@ parsed from the Session object.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.contrib.security.html b/docs/0.9.5/api/evennia.contrib.security.html index 1b83b28767..3bf063a2fa 100644 --- a/docs/0.9.5/api/evennia.contrib.security.html +++ b/docs/0.9.5/api/evennia.contrib.security.html @@ -83,6 +83,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.contrib.simpledoor.html b/docs/0.9.5/api/evennia.contrib.simpledoor.html index 39ff275e12..df27b8ef01 100644 --- a/docs/0.9.5/api/evennia.contrib.simpledoor.html +++ b/docs/0.9.5/api/evennia.contrib.simpledoor.html @@ -179,11 +179,6 @@ unique.

    lock_storage = 'cmd:perm(open) or perm(Builder)'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'building', 'key': 'open', 'tags': '', 'text': '\n open a new exit from the current room\n\n Usage:\n open <new exit>[;alias;alias..][:typeclass] [,<return exit>[;alias;..][:typeclass]]] = <destination>\n\n Handles the creation of exits. If a destination is given, the exit\n will point there. The <return exit> argument sets up an exit at the\n destination leading back to the current room. Destination name\n can be given both as a #dbref and a name, if that name is globally\n unique.\n\n '}
    -
    -
    @@ -227,11 +222,6 @@ close <door>

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': 'close', 'category': 'general', 'key': 'open', 'tags': '', 'text': '\n Open and close a door\n\n Usage:\n open <door>\n close <door>\n\n '}
    -
    - @@ -269,6 +259,7 @@ close <door>

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.contrib.slow_exit.html b/docs/0.9.5/api/evennia.contrib.slow_exit.html index 4ad3798a48..680ebf4e95 100644 --- a/docs/0.9.5/api/evennia.contrib.slow_exit.html +++ b/docs/0.9.5/api/evennia.contrib.slow_exit.html @@ -133,11 +133,6 @@ is assumed.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'setspeed', 'tags': '', 'text': "\n set your movement speed\n\n Usage:\n setspeed stroll|walk|run|sprint\n\n This will set your movement speed, determining how long time\n it takes to traverse exits. If no speed is set, 'walk' speed\n is assumed.\n "}
    -
    -
    @@ -177,11 +172,6 @@ stored deferred from the exit traversal above.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'stop', 'tags': '', 'text': '\n stop moving\n\n Usage:\n stop\n\n Stops the current movement, if any.\n '}
    -
    - @@ -219,6 +209,7 @@ stored deferred from the exit traversal above.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.contrib.talking_npc.html b/docs/0.9.5/api/evennia.contrib.talking_npc.html index f011233a00..083013e2d4 100644 --- a/docs/0.9.5/api/evennia.contrib.talking_npc.html +++ b/docs/0.9.5/api/evennia.contrib.talking_npc.html @@ -120,11 +120,6 @@ that NPC and give you options on what to talk about.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'talk', 'tags': '', 'text': '\n Talks to an npc\n\n Usage:\n talk\n\n This command is only available if a talkative non-player-character\n (NPC) is actually present. It will strike up a conversation with\n that NPC and give you options on what to talk about.\n '}
    -
    -
    @@ -221,6 +216,7 @@ the conversation defined above.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.contrib.tree_select.html b/docs/0.9.5/api/evennia.contrib.tree_select.html index 22278f2956..da9d68fb98 100644 --- a/docs/0.9.5/api/evennia.contrib.tree_select.html +++ b/docs/0.9.5/api/evennia.contrib.tree_select.html @@ -369,11 +369,6 @@ set in self.parse())

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'namecolor', 'tags': '', 'text': '\n Set or remove a special color on your name. Just an example for the\n easy menu selection tree contrib.\n '}
    -
    -
    @@ -428,6 +423,7 @@ to determine the color the player chose.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.contrib.turnbattle.html b/docs/0.9.5/api/evennia.contrib.turnbattle.html index 28ea10ec1a..811b193e17 100644 --- a/docs/0.9.5/api/evennia.contrib.turnbattle.html +++ b/docs/0.9.5/api/evennia.contrib.turnbattle.html @@ -82,6 +82,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    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 1710a7774e..311095c4f0 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 @@ -500,11 +500,6 @@ When it’s your turn, you can attack other characters.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'fight', 'tags': '', 'text': "\n Starts a fight with everyone in the same room as you.\n\n Usage:\n fight\n\n When you start a fight, everyone in the room who is able to\n fight is added to combat, and a turn order is randomly rolled.\n When it's your turn, you can attack other characters.\n "}
    -
    -
    @@ -544,11 +539,6 @@ a chance to hit, and if successful, will deal damage.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'attack', 'tags': '', 'text': '\n Attacks another character.\n\n Usage:\n attack <target>\n\n When in a fight, you may attack another character. The attack has\n a chance to hit, and if successful, will deal damage.\n '}
    -
    -
    @@ -588,11 +578,6 @@ if there are still any actions you can take.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': 'wait hold', 'category': 'combat', 'key': 'pass', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}
    -
    -
    @@ -633,11 +618,6 @@ fight ends.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': 'spare', 'category': 'combat', 'key': 'disengage', 'tags': '', 'text': "\n Passes your turn and attempts to end combat.\n\n Usage:\n disengage\n\n Ends your turn early and signals that you're trying to end\n the fight. If all participants in a fight disengage, the\n fight ends.\n "}
    -
    -
    @@ -677,11 +657,6 @@ rest if you’re not in a fight.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'rest', 'tags': '', 'text': "\n Recovers damage.\n\n Usage:\n rest\n\n Resting recovers your HP to its maximum, but you can only\n rest if you're not in a fight.\n "}
    -
    -
    @@ -723,11 +698,6 @@ topics related to the game.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': '?', 'category': 'general', 'key': 'help', 'tags': '', 'text': '\n View help or a list of topics\n\n Usage:\n help <topic or command>\n help list\n help all\n\n This will search for help on commands and other\n topics related to the game.\n '}
    -
    -
    @@ -788,6 +758,7 @@ topics related to the game.

  • 0.9.5 (v0.9.5 branch)
  • +
    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 fdbd7bc5cd..f388bd373a 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 @@ -617,11 +617,6 @@ When it’s your turn, you can attack other characters.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'fight', 'tags': '', 'text': "\n Starts a fight with everyone in the same room as you.\n\n Usage:\n fight\n\n When you start a fight, everyone in the room who is able to\n fight is added to combat, and a turn order is randomly rolled.\n When it's your turn, you can attack other characters.\n "}
    -
    -
    @@ -661,11 +656,6 @@ a chance to hit, and if successful, will deal damage.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'attack', 'tags': '', 'text': '\n Attacks another character.\n\n Usage:\n attack <target>\n\n When in a fight, you may attack another character. The attack has\n a chance to hit, and if successful, will deal damage.\n '}
    -
    -
    @@ -705,11 +695,6 @@ if there are still any actions you can take.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': 'wait hold', 'category': 'combat', 'key': 'pass', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}
    -
    -
    @@ -750,11 +735,6 @@ fight ends.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': 'spare', 'category': 'combat', 'key': 'disengage', 'tags': '', 'text': "\n Passes your turn and attempts to end combat.\n\n Usage:\n disengage\n\n Ends your turn early and signals that you're trying to end\n the fight. If all participants in a fight disengage, the\n fight ends.\n "}
    -
    -
    @@ -794,11 +774,6 @@ rest if you’re not in a fight.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'rest', 'tags': '', 'text': "\n Recovers damage.\n\n Usage:\n rest\n\n Resting recovers your HP to its maximum, but you can only\n rest if you're not in a fight.\n "}
    -
    -
    @@ -840,11 +815,6 @@ topics related to the game.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': '?', 'category': 'general', 'key': 'help', 'tags': '', 'text': '\n View help or a list of topics\n\n Usage:\n help <topic or command>\n help list\n help all\n\n This will search for help on commands and other\n topics related to the game.\n '}
    -
    -
    @@ -888,11 +858,6 @@ currently wielding.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'wield', 'tags': '', 'text': '\n Wield a weapon you are carrying\n\n Usage:\n wield <weapon>\n\n Select a weapon you are carrying to wield in combat. If\n you are already wielding another weapon, you will switch\n to the weapon you specify instead. Using this command in\n combat will spend your action for your turn. Use the\n "unwield" command to stop wielding any weapon you are\n currently wielding.\n '}
    -
    -
    @@ -932,11 +897,6 @@ weapon you are currently wielding and become unarmed.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'unwield', 'tags': '', 'text': '\n Stop wielding a weapon.\n\n Usage:\n unwield\n\n After using this command, you will stop wielding any\n weapon you are currently wielding and become unarmed.\n '}
    -
    -
    @@ -977,11 +937,6 @@ command to remove any armor you are wearing.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'don', 'tags': '', 'text': '\n Don armor that you are carrying\n\n Usage:\n don <armor>\n\n Select armor to wear in combat. You can\'t use this\n command in the middle of a fight. Use the "doff"\n command to remove any armor you are wearing.\n '}
    -
    -
    @@ -1022,11 +977,6 @@ You can’t use this command in combat.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'doff', 'tags': '', 'text': "\n Stop wearing armor.\n\n Usage:\n doff\n\n After using this command, you will stop wearing any\n armor you are currently using and become unarmored.\n You can't use this command in combat.\n "}
    -
    -
    @@ -1087,6 +1037,7 @@ You can’t use this command in combat.

  • 0.9.5 (v0.9.5 branch)
  • +
    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 a50cd8ac3f..30925f735d 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 @@ -651,11 +651,6 @@ When it’s your turn, you can attack other characters.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'fight', 'tags': '', 'text': "\n Starts a fight with everyone in the same room as you.\n\n Usage:\n fight\n\n When you start a fight, everyone in the room who is able to\n fight is added to combat, and a turn order is randomly rolled.\n When it's your turn, you can attack other characters.\n "}
    -
    -
    @@ -695,11 +690,6 @@ a chance to hit, and if successful, will deal damage.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'attack', 'tags': '', 'text': '\n Attacks another character.\n\n Usage:\n attack <target>\n\n When in a fight, you may attack another character. The attack has\n a chance to hit, and if successful, will deal damage.\n '}
    -
    -
    @@ -739,11 +729,6 @@ if there are still any actions you can take.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': 'wait hold', 'category': 'combat', 'key': 'pass', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}
    -
    -
    @@ -784,11 +769,6 @@ fight ends.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': 'spare', 'category': 'combat', 'key': 'disengage', 'tags': '', 'text': "\n Passes your turn and attempts to end combat.\n\n Usage:\n disengage\n\n Ends your turn early and signals that you're trying to end\n the fight. If all participants in a fight disengage, the\n fight ends.\n "}
    -
    -
    @@ -828,11 +808,6 @@ rest if you’re not in a fight.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'rest', 'tags': '', 'text': "\n Recovers damage.\n\n Usage:\n rest\n\n Resting recovers your HP to its maximum, but you can only\n rest if you're not in a fight.\n "}
    -
    -
    @@ -874,11 +849,6 @@ topics related to the game.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': '?', 'category': 'general', 'key': 'help', 'tags': '', 'text': '\n View help or a list of topics\n\n Usage:\n help <topic or command>\n help list\n help all\n\n This will search for help on commands and other\n topics related to the game.\n '}
    -
    -
    @@ -919,11 +889,6 @@ to attack others, and as such can only be used in combat.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'use', 'tags': '', 'text': '\n Use an item.\n\n Usage:\n use <item> [= target]\n\n An item can have various function - looking at the item may\n provide information as to its effects. Some items can be used\n to attack others, and as such can only be used in combat.\n '}
    -
    -
    @@ -1067,6 +1032,7 @@ items using the same function work differently.

  • 0.9.5 (v0.9.5 branch)
  • +
    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 4820c32136..fcd18b3a49 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 @@ -523,11 +523,6 @@ When it’s your turn, you can attack other characters.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'fight', 'tags': '', 'text': "\n Starts a fight with everyone in the same room as you.\n\n Usage:\n fight\n\n When you start a fight, everyone in the room who is able to\n fight is added to combat, and a turn order is randomly rolled.\n When it's your turn, you can attack other characters.\n "}
    -
    -
    @@ -567,11 +562,6 @@ a chance to hit, and if successful, will deal damage.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'attack', 'tags': '', 'text': '\n Attacks another character.\n\n Usage:\n attack <target>\n\n When in a fight, you may attack another character. The attack has\n a chance to hit, and if successful, will deal damage.\n '}
    -
    -
    @@ -611,11 +601,6 @@ if there are still any actions you can take.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': 'wait hold', 'category': 'combat', 'key': 'pass', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}
    -
    -
    @@ -656,11 +641,6 @@ fight ends.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': 'spare', 'category': 'combat', 'key': 'disengage', 'tags': '', 'text': "\n Passes your turn and attempts to end combat.\n\n Usage:\n disengage\n\n Ends your turn early and signals that you're trying to end\n the fight. If all participants in a fight disengage, the\n fight ends.\n "}
    -
    -
    @@ -714,11 +694,6 @@ fight ends.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'magic', 'key': 'learnspell', 'tags': '', 'text': "\n Learn a magic spell.\n\n Usage:\n learnspell <spell name>\n\n Adds a spell by name to your list of spells known.\n\n The following spells are provided as examples:\n\n |wmagic missile|n (3 MP): Fires three missiles that never miss. Can target\n up to three different enemies.\n\n |wflame shot|n (3 MP): Shoots a high-damage jet of flame at one target.\n\n |wcure wounds|n (5 MP): Heals damage on one target.\n\n |wmass cure wounds|n (10 MP): Like 'cure wounds', but can heal up to 5\n targets at once.\n\n |wfull heal|n (12 MP): Heals one target back to full HP.\n\n |wcactus conjuration|n (2 MP): Creates a cactus.\n "}
    -
    -
    @@ -766,11 +741,6 @@ function.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'magic', 'key': 'cast', 'tags': '', 'text': "\n Cast a magic spell that you know, provided you have the MP\n to spend on its casting.\n\n Usage:\n cast <spellname> [= <target1>, <target2>, etc...]\n\n Some spells can be cast on multiple targets, some can be cast\n on only yourself, and some don't need a target specified at all.\n Typing 'cast' by itself will give you a list of spells you know.\n "}
    -
    -
    @@ -810,11 +780,6 @@ only rest if you’re not in a fight.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'rest', 'tags': '', 'text': "\n Recovers damage and restores MP.\n\n Usage:\n rest\n\n Resting recovers your HP and MP to their maximum, but you can\n only rest if you're not in a fight.\n "}
    -
    -
    @@ -854,11 +819,6 @@ other targets in combat.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'status', 'tags': '', 'text': '\n Gives combat information.\n\n Usage:\n status\n\n Shows your current and maximum HP and your distance from\n other targets in combat.\n '}
    -
    -
    @@ -900,11 +860,6 @@ topics related to the game.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': '?', 'category': 'general', 'key': 'help', 'tags': '', 'text': '\n View help or a list of topics\n\n Usage:\n help <topic or command>\n help list\n help all\n\n This will search for help on commands and other\n topics related to the game.\n '}
    -
    -
    @@ -1016,6 +971,7 @@ instead of creating objects directly.

  • 0.9.5 (v0.9.5 branch)
  • +
    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 cd78f7fc8f..5c68240d47 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 @@ -814,11 +814,6 @@ When it’s your turn, you can attack other characters.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'fight', 'tags': '', 'text': "\n Starts a fight with everyone in the same room as you.\n\n Usage:\n fight\n\n When you start a fight, everyone in the room who is able to\n fight is added to combat, and a turn order is randomly rolled.\n When it's your turn, you can attack other characters.\n "}
    -
    -
    @@ -860,11 +855,6 @@ you. Use the ‘approach’ command to get closer to a target.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'attack', 'tags': '', 'text': "\n Attacks another character in melee.\n\n Usage:\n attack <target>\n\n When in a fight, you may attack another character. The attack has\n a chance to hit, and if successful, will deal damage. You can only\n attack engaged targets - that is, targets that are right next to\n you. Use the 'approach' command to get closer to a target.\n "}
    -
    -
    @@ -907,11 +897,6 @@ nearby enemies.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'shoot', 'tags': '', 'text': "\n Attacks another character from range.\n\n Usage:\n shoot <target>\n\n When in a fight, you may shoot another character. The attack has\n a chance to hit, and if successful, will deal damage. You can attack\n any target in combat by shooting, but can't shoot if there are any\n targets engaged with you. Use the 'withdraw' command to retreat from\n nearby enemies.\n "}
    -
    -
    @@ -951,11 +936,6 @@ characters you are 0 spaces away from.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'approach', 'tags': '', 'text': '\n Approaches an object.\n\n Usage:\n approach <target>\n\n Move one space toward a character or object. You can only attack\n characters you are 0 spaces away from.\n '}
    -
    -
    @@ -994,11 +974,6 @@ characters you are 0 spaces away from.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'withdraw', 'tags': '', 'text': '\n Moves away from an object.\n\n Usage:\n withdraw <target>\n\n Move one space away from a character or object.\n '}
    -
    -
    @@ -1038,11 +1013,6 @@ if there are still any actions you can take.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': 'wait hold', 'category': 'combat', 'key': 'pass', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}
    -
    -
    @@ -1083,11 +1053,6 @@ fight ends.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': 'spare', 'category': 'combat', 'key': 'disengage', 'tags': '', 'text': "\n Passes your turn and attempts to end combat.\n\n Usage:\n disengage\n\n Ends your turn early and signals that you're trying to end\n the fight. If all participants in a fight disengage, the\n fight ends.\n "}
    -
    -
    @@ -1127,11 +1092,6 @@ rest if you’re not in a fight.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'rest', 'tags': '', 'text': "\n Recovers damage.\n\n Usage:\n rest\n\n Resting recovers your HP to its maximum, but you can only\n rest if you're not in a fight.\n "}
    -
    -
    @@ -1171,11 +1131,6 @@ other targets in combat.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'status', 'tags': '', 'text': '\n Gives combat information.\n\n Usage:\n status\n\n Shows your current and maximum HP and your distance from\n other targets in combat.\n '}
    -
    -
    @@ -1217,11 +1172,6 @@ topics related to the game.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': '?', 'category': 'general', 'key': 'help', 'tags': '', 'text': '\n View help or a list of topics\n\n Usage:\n help <topic or command>\n help list\n help all\n\n This will search for help on commands and other\n topics related to the game.\n '}
    -
    -
    @@ -1282,6 +1232,7 @@ topics related to the game.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.contrib.tutorial_examples.bodyfunctions.html b/docs/0.9.5/api/evennia.contrib.tutorial_examples.bodyfunctions.html index 8d28f22b56..291a01dec3 100644 --- a/docs/0.9.5/api/evennia.contrib.tutorial_examples.bodyfunctions.html +++ b/docs/0.9.5/api/evennia.contrib.tutorial_examples.bodyfunctions.html @@ -128,6 +128,7 @@ a random check here so as to only return 33% of the time.

  • 0.9.5 (v0.9.5 branch)
  • +
    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 2e7134989e..224ef1bda5 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 @@ -86,11 +86,6 @@ push the lid of the button away.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': 'nudge', 'category': 'general', 'key': 'nudge lid', 'tags': '', 'text': "\n Try to nudge the button's lid\n\n Usage:\n nudge lid\n\n This command will have you try to\n push the lid of the button away.\n "}
    -
    -
    @@ -109,7 +104,7 @@ push the lid of the button away.

    -aliases = ['push', 'press', 'press button']
    +aliases = ['push', 'press button', 'press']
    @@ -138,11 +133,6 @@ lid-state respectively.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': 'push press press button', 'category': 'general', 'key': 'push button', 'tags': '', 'text': '\n Push the red button\n\n Usage:\n push button\n\n '}
    -
    -
    @@ -162,7 +152,7 @@ lid-state respectively.

    -aliases = ['smash', 'break lid', 'smash lid']
    +aliases = ['break lid', 'smash', 'smash lid']
    @@ -187,11 +177,6 @@ of causing the lamp to break.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': 'smash break lid smash lid', 'category': 'general', 'key': 'smash glass', 'tags': '', 'text': '\n smash glass\n\n Usage:\n smash glass\n\n Try to smash the glass of the button.\n '}
    -
    -
    @@ -234,11 +219,6 @@ of causing the lamp to break.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': 'open open button', 'category': 'general', 'key': 'open lid', 'tags': '', 'text': '\n open lid\n\n Usage:\n open lid\n\n '}
    -
    -
    @@ -282,11 +262,6 @@ of causing the lamp to break.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': 'close', 'category': 'general', 'key': 'close lid', 'tags': '', 'text': '\n close the lid\n\n Usage:\n close lid\n\n Closes the lid of the red button.\n '}
    -
    -
    @@ -306,7 +281,7 @@ of causing the lamp to break.

    -aliases = ['get', 'ex', 'examine', 'listen', 'feel', 'l']
    +aliases = ['examine', 'l', 'get', 'ex', 'listen', 'feel']
    @@ -330,11 +305,6 @@ of causing the lamp to break.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': 'get ex examine listen feel l', 'category': 'general', 'key': 'look', '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 "}
    -
    -
    @@ -377,11 +347,6 @@ of causing the lamp to break.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': 'h', 'category': 'general', 'key': 'help', 'tags': '', 'text': '\n Help function while in the blinded state\n\n Usage:\n help\n\n '}
    -
    -
    @@ -551,6 +516,7 @@ the button is pushed.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.contrib.tutorial_examples.example_batch_code.html b/docs/0.9.5/api/evennia.contrib.tutorial_examples.example_batch_code.html index 0d52c783ed..12d1ef7940 100644 --- a/docs/0.9.5/api/evennia.contrib.tutorial_examples.example_batch_code.html +++ b/docs/0.9.5/api/evennia.contrib.tutorial_examples.example_batch_code.html @@ -73,6 +73,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.contrib.tutorial_examples.html b/docs/0.9.5/api/evennia.contrib.tutorial_examples.html index 70080e5b52..e9f16f09cc 100644 --- a/docs/0.9.5/api/evennia.contrib.tutorial_examples.html +++ b/docs/0.9.5/api/evennia.contrib.tutorial_examples.html @@ -83,6 +83,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.contrib.tutorial_examples.red_button.html b/docs/0.9.5/api/evennia.contrib.tutorial_examples.red_button.html index 81ef4be953..5cd2459d03 100644 --- a/docs/0.9.5/api/evennia.contrib.tutorial_examples.red_button.html +++ b/docs/0.9.5/api/evennia.contrib.tutorial_examples.red_button.html @@ -172,6 +172,7 @@ to how often the message is echoed.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.contrib.tutorial_examples.red_button_scripts.html b/docs/0.9.5/api/evennia.contrib.tutorial_examples.red_button_scripts.html index 8689cdf589..db6eda19df 100644 --- a/docs/0.9.5/api/evennia.contrib.tutorial_examples.red_button_scripts.html +++ b/docs/0.9.5/api/evennia.contrib.tutorial_examples.red_button_scripts.html @@ -417,6 +417,7 @@ called directly, regardless of the value of self.start_delay
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.contrib.tutorial_examples.tests.html b/docs/0.9.5/api/evennia.contrib.tutorial_examples.tests.html index a50b4e7911..cf5bafedcd 100644 --- a/docs/0.9.5/api/evennia.contrib.tutorial_examples.tests.html +++ b/docs/0.9.5/api/evennia.contrib.tutorial_examples.tests.html @@ -109,6 +109,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.contrib.tutorial_world.html b/docs/0.9.5/api/evennia.contrib.tutorial_world.html index 97fc9b2263..112ac11ed9 100644 --- a/docs/0.9.5/api/evennia.contrib.tutorial_world.html +++ b/docs/0.9.5/api/evennia.contrib.tutorial_world.html @@ -82,6 +82,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.contrib.tutorial_world.intro_menu.html b/docs/0.9.5/api/evennia.contrib.tutorial_world.intro_menu.html index 1c5581abfa..a75066b662 100644 --- a/docs/0.9.5/api/evennia.contrib.tutorial_world.intro_menu.html +++ b/docs/0.9.5/api/evennia.contrib.tutorial_world.intro_menu.html @@ -264,6 +264,7 @@ option related to this node.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.contrib.tutorial_world.mob.html b/docs/0.9.5/api/evennia.contrib.tutorial_world.mob.html index c30cefba52..0a773630fa 100644 --- a/docs/0.9.5/api/evennia.contrib.tutorial_world.mob.html +++ b/docs/0.9.5/api/evennia.contrib.tutorial_world.mob.html @@ -87,11 +87,6 @@ to turn on/off the mob.”

    lock_storage = 'cmd:superuser()'
    -
    -
    -search_index_entry = {'aliases': 'moboff', 'category': 'general', 'key': 'mobon', 'tags': '', 'text': "\n Activates/deactivates Mob\n\n Usage:\n mobon <mob>\n moboff <mob>\n\n This turns the mob from active (alive) mode\n to inactive (dead) mode. It is used during\n building to activate the mob once it's\n prepared.\n "}
    -
    -
    @@ -127,7 +122,7 @@ the way it came. If unset, the mob will remain stationary (idling) until attacked.

    aggressive: if set, will attack Characters in

    the same room using whatever Weapon it -carries (see tutorial_world.objects.TutorialWeapon). +carries (see tutorial_world.objects.Weapon). if unset, the mob will never engage in combat no matter what.

    @@ -313,6 +308,7 @@ right away, also when patrolling on a very slow ticker.

  • 0.9.5 (v0.9.5 branch)
  • +
    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 cabdd89d6a..31b8134c11 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 @@ -49,8 +49,8 @@ TutorialClimbable Obelisk LightSource CrumblingWall -TutorialWeapon -TutorialWeaponRack

    +Weapon +WeaponRack

    class evennia.contrib.tutorial_world.objects.TutorialObject(*args, **kwargs)[source]
    @@ -133,11 +133,6 @@ Attribute “readable_text” on the object and displays that.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'tutorialworld', 'key': 'read', 'tags': '', 'text': '\n Usage:\n read [obj]\n\n Read some text of a readable object.\n '}
    -
    -
    @@ -235,11 +230,6 @@ Attribute and add the readable cmdset.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'tutorialworld', 'key': 'climb', 'tags': '', 'text': '\n Climb an object\n\n Usage:\n climb <object>\n\n This allows you to climb.\n '}
    -
    -
    @@ -385,11 +375,6 @@ to sit on a “lightable” object, we operate only on self.obj.

    lock_storage = 'cmd:holds()'
    -
    -
    -search_index_entry = {'aliases': 'burn light', 'category': 'tutorialworld', 'key': 'on', 'tags': '', 'text': '\n Creates light where there was none. Something to burn.\n '}
    -
    -
    @@ -491,7 +476,7 @@ shift green root up/down

    -aliases = ['push', 'move', 'shiftroot', 'pull']
    +aliases = ['shiftroot', 'push', 'pull', 'move']
    @@ -525,11 +510,6 @@ yellow/green - horizontal roots

    lock_storage = 'cmd:locattr(is_lit)'
    -
    -
    -search_index_entry = {'aliases': 'push move shiftroot pull', 'category': 'tutorialworld', 'key': 'shift', '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 '}
    -
    -
    @@ -568,11 +548,6 @@ yellow/green - horizontal roots

    lock_storage = 'cmd:objattr(button_exposed) and objlocattr(is_lit)'
    -
    -
    -search_index_entry = {'aliases': 'push button press button button', 'category': 'tutorialworld', 'key': 'press', 'tags': '', 'text': '\n Presses a button.\n '}
    -
    -
    @@ -714,7 +689,7 @@ parry - forgoes your attack but will make you harder to hit on next

    -aliases = ['defend', 'pierce', 'thrust', 'bash', 'stab', 'slash', 'chop', 'fight', 'hit', 'parry', 'kill']
    +aliases = ['slash', 'pierce', 'kill', 'bash', 'thrust', 'chop', 'hit', 'stab', 'parry', 'defend', 'fight']
    @@ -738,11 +713,6 @@ parry - forgoes your attack but will make you harder to hit on next

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': 'defend pierce thrust bash stab slash chop fight hit parry kill', 'category': 'tutorialworld', 'key': 'attack', '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 '}
    -
    -
    @@ -764,8 +734,8 @@ parry - forgoes your attack but will make you harder to hit on next

    -
    -class evennia.contrib.tutorial_world.objects.TutorialWeapon(*args, **kwargs)[source]
    +
    +class evennia.contrib.tutorial_world.objects.Weapon(*args, **kwargs)[source]

    Bases: evennia.contrib.tutorial_world.objects.TutorialObject

    This defines a bladed weapon.

    @@ -778,38 +748,38 @@ damage - base damage given (modified by hit success and

    -
    -at_object_creation()[source]
    +
    +at_object_creation()[source]

    Called at first creation of the object

    -
    -reset()[source]
    +
    +reset()[source]

    When reset, the weapon is simply deleted, unless it has a place to return to.

    -
    -exception DoesNotExist
    +
    +exception DoesNotExist

    Bases: evennia.contrib.tutorial_world.objects.TutorialObject.DoesNotExist

    -
    -exception MultipleObjectsReturned
    +
    +exception MultipleObjectsReturned

    Bases: evennia.contrib.tutorial_world.objects.TutorialObject.MultipleObjectsReturned

    -
    -path = 'evennia.contrib.tutorial_world.objects.TutorialWeapon'
    +
    +path = 'evennia.contrib.tutorial_world.objects.Weapon'
    -
    -typename = 'TutorialWeapon'
    +
    +typename = 'Weapon'
    @@ -855,11 +825,6 @@ itself handle all messages.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'tutorialworld', 'key': 'get weapon', 'tags': '', 'text': '\n Usage:\n get weapon\n\n This will try to obtain a weapon from the container.\n '}
    -
    -
    @@ -886,8 +851,8 @@ itself handle all messages.

    -
    -class evennia.contrib.tutorial_world.objects.TutorialWeaponRack(*args, **kwargs)[source]
    +
    +class evennia.contrib.tutorial_world.objects.WeaponRack(*args, **kwargs)[source]

    Bases: evennia.contrib.tutorial_world.objects.TutorialObject

    This object represents a weapon store. When people use the “get weapon” command on this rack, it will produce one @@ -905,14 +870,14 @@ grab another one.

    -
    -at_object_creation()[source]
    +
    +at_object_creation()[source]

    called at creation

    -
    -produce_weapon(caller)[source]
    +
    +produce_weapon(caller)[source]

    This will produce a new weapon from the rack, assuming the caller hasn’t already gotten one. When doing so, the caller will get Tagged with the id @@ -921,25 +886,25 @@ pulling weapons from it indefinitely.

    -
    -exception DoesNotExist
    +
    +exception DoesNotExist

    Bases: evennia.contrib.tutorial_world.objects.TutorialObject.DoesNotExist

    -
    -exception MultipleObjectsReturned
    +
    +exception MultipleObjectsReturned

    Bases: evennia.contrib.tutorial_world.objects.TutorialObject.MultipleObjectsReturned

    -
    -path = 'evennia.contrib.tutorial_world.objects.TutorialWeaponRack'
    +
    +path = 'evennia.contrib.tutorial_world.objects.WeaponRack'
    -
    -typename = 'TutorialWeaponRack'
    +
    +typename = 'WeaponRack'
    @@ -979,6 +944,7 @@ pulling weapons from it indefinitely.

  • 0.9.5 (v0.9.5 branch)
  • +
    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 48a7966bb2..9069c9178a 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 @@ -86,11 +86,6 @@ called tutorial_info and display that.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': 'tut', 'category': 'tutorialworld', 'key': 'tutorial', 'tags': '', 'text': '\n Get help during the tutorial\n\n Usage:\n tutorial [obj]\n\n This command allows you to get behind-the-scenes info\n about an object or the current location.\n\n '}
    -
    -
    @@ -144,11 +139,6 @@ the set_detail method and uses it.

    lock_storage = 'cmd:perm(Builder)'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'tutorialworld', 'key': '@detail', 'tags': '', 'text': '\n sets a detail on a room\n\n Usage:\n @detail <key> = <description>\n @detail <key>;<alias>;... = description\n\n Example:\n @detail walls = The walls are covered in ...\n @detail castle;ruin;tower = The distant ruin ...\n\n This sets a "detail" on the object this command is defined on\n (TutorialRoom for this tutorial). This detail can be accessed with\n the TutorialRoomLook command sitting on TutorialRoom objects (details\n are set as a simple dictionary on the room). This is a Builder command.\n\n We custom parse the key for the ;-separator in order to create\n multiple aliases to the detail all at once.\n '}
    -
    -
    @@ -183,7 +173,7 @@ code except for adding in the details.

    -aliases = ['ls', 'l']
    +aliases = ['l', 'ls']
    @@ -196,11 +186,6 @@ code except for adding in the details.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': 'ls l', 'category': 'tutorialworld', 'key': 'look', '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 '}
    -
    -
    @@ -237,11 +222,6 @@ to all the variables defined therein.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': 'abort', 'category': 'general', 'key': 'give up', 'tags': '', 'text': '\n Give up the tutorial-world quest and return to Limbo, the start room of the\n server.\n\n '}
    -
    -
    @@ -447,11 +427,6 @@ set in self.parse())

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'intro', 'tags': '', 'text': '\n Start the Evennia intro wizard.\n\n Usage:\n intro\n\n '}
    -
    -
    @@ -581,11 +556,6 @@ on the bridge, 0 - 4.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': 'e', 'category': 'tutorialworld', 'key': 'east', 'tags': '', 'text': '\n Go eastwards across the bridge.\n\n Tutorial info:\n This command relies on the caller having two Attributes\n (assigned by the room when entering):\n - east_exit: a unique name or dbref to the room to go to\n when exiting east.\n - west_exit: a unique name or dbref to the room to go to\n when exiting west.\n The room must also have the following Attributes\n - tutorial_bridge_posistion: the current position on\n on the bridge, 0 - 4.\n\n '}
    -
    -
    @@ -644,11 +614,6 @@ on the bridge, 0 - 4.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': 'w', 'category': 'tutorialworld', 'key': 'west', 'tags': '', 'text': '\n Go westwards across the bridge.\n\n Tutorial info:\n This command relies on the caller having two Attributes\n (assigned by the room when entering):\n - east_exit: a unique name or dbref to the room to go to\n when exiting east.\n - west_exit: a unique name or dbref to the room to go to\n when exiting west.\n The room must also have the following property:\n - tutorial_bridge_posistion: the current position on\n on the bridge, 0 - 4.\n\n '}
    -
    -
    @@ -693,11 +658,6 @@ if they fall off the bridge.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': 'l', 'category': 'tutorialworld', 'key': 'look', 'tags': '', 'text': '\n looks around at the bridge.\n\n Tutorial info:\n This command assumes that the room has an Attribute\n "fall_exit", a unique name or dbref to the place they end upp\n if they fall off the bridge.\n '}
    -
    -
    @@ -736,11 +696,6 @@ if they fall off the bridge.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': '? h', 'category': 'tutorial world', 'key': 'help', 'tags': '', 'text': '\n Overwritten help command while on the bridge.\n '}
    -
    -
    @@ -864,7 +819,7 @@ to find something.

    -aliases = ['search', 'feel around', 'fiddle', 'feel', 'l']
    +aliases = ['fiddle', 'l', 'search', 'feel around', 'feel']
    @@ -890,11 +845,6 @@ random chance of eventually finding a light source.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': 'search feel around fiddle feel l', 'category': 'tutorialworld', 'key': 'look', '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 '}
    -
    -
    @@ -933,11 +883,6 @@ random chance of eventually finding a light source.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'tutorialworld', 'key': 'help', 'tags': '', 'text': '\n Help command for the dark state.\n '}
    -
    -
    @@ -980,11 +925,6 @@ suggestions)

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'general', 'key': '__nomatch_command', 'tags': '', 'text': "\n This is a system command. Commands with special keys are used to\n override special sitations in the game. The CMD_NOMATCH is used\n when the given command is not found in the current command set (it\n replaces Evennia's default behavior or offering command\n suggestions)\n "}
    -
    -
    @@ -1246,6 +1186,7 @@ overriding the call (unused by default).

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.contrib.unixcommand.html b/docs/0.9.5/api/evennia.contrib.unixcommand.html index 29faf3225c..876ad2f2f3 100644 --- a/docs/0.9.5/api/evennia.contrib.unixcommand.html +++ b/docs/0.9.5/api/evennia.contrib.unixcommand.html @@ -317,11 +317,6 @@ use its add_argument method.

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'command', 'tags': '', 'text': '\n Unix-type commands, supporting short and long options.\n\n This command syntax uses the Unix-style commands with short options\n (-X) and long options (--something). The `argparse` module is\n used to parse the command.\n\n In order to use it, you should override two methods:\n - `init_parser`: this method is called when the command is created.\n It can be used to set options in the parser. `self.parser`\n contains the `argparse.ArgumentParser`, so you can add arguments\n here.\n - `func`: this method is called to execute the command, but after\n the parser has checked the arguments given to it are valid.\n You can access the namespace of valid arguments in `self.opts`\n at this point.\n\n The help of UnixCommands is derived from the docstring, in a\n slightly different way than usual: the first line of the docstring\n is used to represent the program description (the very short\n line at the top of the help message). The other lines below are\n used as the program\'s "epilog", displayed below the options. It\n means in your docstring, you don\'t have to write the options.\n They will be automatically provided by the parser and displayed\n accordingly. The `argparse` module provides a default \'-h\' or\n \'--help\' option on the command. Typing |whelp commandname|n will\n display the same as |wcommandname -h|n, though this behavior can\n be changed.\n\n '}
    -
    - @@ -359,6 +354,7 @@ use its add_argument method.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.contrib.wilderness.html b/docs/0.9.5/api/evennia.contrib.wilderness.html index 8d666087ab..2f8e5e5f5c 100644 --- a/docs/0.9.5/api/evennia.contrib.wilderness.html +++ b/docs/0.9.5/api/evennia.contrib.wilderness.html @@ -700,6 +700,7 @@ coordinate.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.help.admin.html b/docs/0.9.5/api/evennia.help.admin.html index f30c0f1b4f..f77382f8c0 100644 --- a/docs/0.9.5/api/evennia.help.admin.html +++ b/docs/0.9.5/api/evennia.help.admin.html @@ -199,6 +199,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.help.html b/docs/0.9.5/api/evennia.help.html index b700636523..825666ea1e 100644 --- a/docs/0.9.5/api/evennia.help.html +++ b/docs/0.9.5/api/evennia.help.html @@ -84,6 +84,7 @@ itself.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.help.manager.html b/docs/0.9.5/api/evennia.help.manager.html index 2b7e8e9763..07177dbe97 100644 --- a/docs/0.9.5/api/evennia.help.manager.html +++ b/docs/0.9.5/api/evennia.help.manager.html @@ -211,6 +211,7 @@ up in one easily separated category.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.help.models.html b/docs/0.9.5/api/evennia.help.models.html index df79f087a6..575eae66f8 100644 --- a/docs/0.9.5/api/evennia.help.models.html +++ b/docs/0.9.5/api/evennia.help.models.html @@ -139,12 +139,6 @@ access_type - type of access sought default - what to return if no lock of access_type was found

    -
    -
    -property search_index_entry
    -

    Property for easily retaining a search index entry for this object.

    -
    -
    web_get_admin_url()[source]
    @@ -379,6 +373,7 @@ object the first time, the query is executed.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.html b/docs/0.9.5/api/evennia.html index f79e0b3892..dec3e5b42b 100644 --- a/docs/0.9.5/api/evennia.html +++ b/docs/0.9.5/api/evennia.html @@ -369,19 +369,10 @@ with ‘q’, remove the break line and restart server when finished.

  • evennia.utils +
    diff --git a/docs/0.9.5/api/evennia.locks.html b/docs/0.9.5/api/evennia.locks.html index d150aac02e..37c5a146c6 100644 --- a/docs/0.9.5/api/evennia.locks.html +++ b/docs/0.9.5/api/evennia.locks.html @@ -85,6 +85,7 @@ also contains the default lock functions used in lock definitions.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.locks.lockfuncs.html b/docs/0.9.5/api/evennia.locks.lockfuncs.html index bdd868eeb0..b305e085da 100644 --- a/docs/0.9.5/api/evennia.locks.lockfuncs.html +++ b/docs/0.9.5/api/evennia.locks.lockfuncs.html @@ -537,6 +537,7 @@ unpacked to their real value. We only support basic properties.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.locks.lockhandler.html b/docs/0.9.5/api/evennia.locks.lockhandler.html index 643eeaaa80..d7de59b90f 100644 --- a/docs/0.9.5/api/evennia.locks.lockhandler.html +++ b/docs/0.9.5/api/evennia.locks.lockhandler.html @@ -445,6 +445,7 @@ among the locks defined by lockstring.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.objects.admin.html b/docs/0.9.5/api/evennia.objects.admin.html index 0292c2c9c8..1963f4bed7 100644 --- a/docs/0.9.5/api/evennia.objects.admin.html +++ b/docs/0.9.5/api/evennia.objects.admin.html @@ -332,6 +332,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.objects.html b/docs/0.9.5/api/evennia.objects.html index 79d65565b6..02bb99da8a 100644 --- a/docs/0.9.5/api/evennia.objects.html +++ b/docs/0.9.5/api/evennia.objects.html @@ -83,6 +83,7 @@ objects inherit from classes in this package.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.objects.manager.html b/docs/0.9.5/api/evennia.objects.manager.html index f639515d3e..9f2711e19f 100644 --- a/docs/0.9.5/api/evennia.objects.manager.html +++ b/docs/0.9.5/api/evennia.objects.manager.html @@ -80,6 +80,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.objects.models.html b/docs/0.9.5/api/evennia.objects.models.html index cce3f4d721..df585b6f25 100644 --- a/docs/0.9.5/api/evennia.objects.models.html +++ b/docs/0.9.5/api/evennia.objects.models.html @@ -69,17 +69,6 @@ handler is defined

    -
    -
    -load()[source]
    -

    Retrieves all objects from database. Used for initializing.

    -
    -
    Returns
    -

    Objects (list of ObjectDB)

    -
    -
    -
    -
    init()[source]
    @@ -88,14 +77,11 @@ handler is defined

    -get(exclude=None, content_type=None)[source]
    +get(exclude=None)[source]

    Return the contents of the cache.

    Parameters
    -
      -
    • exclude (Object or list of Object) – object(s) to ignore

    • -
    • content_type (str or None) – Filter list by a content-type. If None, don’t filter.

    • -
    +

    exclude (Object or list of Object) – object(s) to ignore

    Returns

    objects (list) – the Objects inside this location

    @@ -561,6 +547,7 @@ class built by **create_forward_many_to_many_manager()** define
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.objects.objects.html b/docs/0.9.5/api/evennia.objects.objects.html index 7559f89a97..a545cbc84f 100644 --- a/docs/0.9.5/api/evennia.objects.objects.html +++ b/docs/0.9.5/api/evennia.objects.objects.html @@ -197,26 +197,21 @@ currently connected to this object.

    -contents_get(exclude=None, content_type=None)[source]
    +contents_get(exclude=None)[source]

    Returns the contents of this object, i.e. all objects that has this object set as its location. This should be publically available.

    Parameters
    -
      -
    • exclude (Object) – Object to exclude from returned -contents list

    • -
    • content_type (str) – A content_type to filter by. None for no -filtering.

    • -
    +

    exclude (Object) – Object to exclude from returned +contents list

    Returns

    contents (list) – List of contents of this Object.

    Notes

    -

    Also available as the contents property, minus exclusion -and filtering.

    +

    Also available as the contents property.

    @@ -233,20 +228,15 @@ objects that has this object set as its location. This should be publically available.

    Parameters
    -
      -
    • exclude (Object) – Object to exclude from returned -contents list

    • -
    • content_type (str) – A content_type to filter by. None for no -filtering.

    • -
    +

    exclude (Object) – Object to exclude from returned +contents list

    Returns

    contents (list) – List of contents of this Object.

    Notes

    -

    Also available as the contents property, minus exclusion -and filtering.

    +

    Also available as the contents property.

    @@ -310,7 +300,7 @@ plural (str): The determined plural form of the key, including the count.

    -search(searchdata, global_search=False, use_nicks=True, typeclass=None, location=None, attribute_name=None, quiet=False, exact=False, candidates=None, nofound_string=None, multimatch_string=None, use_dbref=None, stacked=0)[source]
    +search(searchdata, global_search=False, use_nicks=True, typeclass=None, location=None, attribute_name=None, quiet=False, exact=False, candidates=None, nofound_string=None, multimatch_string=None, use_dbref=None)[source]

    Returns an Object matching a search string/condition

    Perform a standard object search in the database, handling multiple results and lack thereof gracefully. By default, only @@ -345,9 +335,7 @@ for a broader search.

    to search. Note that this is used to query the contents of a location and will not match for the location itself - if you want that, don’t set this or use candidates to specify -exactly which objects should be searched. If this nor candidates are -given, candidates will include caller’s inventory, current location and -all objects in the current location.

    +exactly which objects should be searched.

  • attribute_name (str) – Define which property to search. If set, no key+alias search will be performed. This can be used to search database fields (db_ will be automatically @@ -375,22 +363,14 @@ to find an object (globally) by its database-id 123. If False, will be treated like a normal string. If None (default), the ability to query by #dbref is turned on if self has the permission ‘Builder’ and is turned off otherwise.

  • -
  • stacked (int, optional) – If > 0, multimatches will be analyzed to determine if they -only contains identical objects; these are then assumed ‘stacked’ and no multi-match -error will be generated, instead stacked number of matches will be returned. If -stacked is larger than number of matches, returns that number of matches. If -the found stack is a mix of objects, return None and handle the multi-match -error depending on the value of quiet.

  • Returns
    -

    Object – If finding a match an quiet=False -None: If not finding a unique match and quiet=False. -list: With 0, 1 or more matching objects if quiet=True -list: With 2 or more matching objects if stacked is a positive integer and

    -
    -

    the matched stack has only object-copies.

    -
    +

    match (Object, None or list)

    +
    +
    will return an Object/None if quiet=False,

    otherwise it will return a list of 0, 1 or more matches.

    +
    +

    @@ -1514,36 +1494,6 @@ errors (list): A list of errors in string form, if any.

    -
    -
    -classmethod normalize_name(name)[source]
    -

    Normalize the character name prior to creating. Note that this should be refactored -to support i18n for non-latin scripts, but as we (currently) have no bug reports requesting better -support of non-latin character sets, requiring character names to be latinified is an acceptable option.

    -
    -
    Parameters
    -

    name (str) – The name of the character

    -
    -
    Returns
    -

    latin_name (str) – A valid name.

    -
    -
    -
    - -
    -
    -classmethod validate_name(name)[source]
    -

    Validate the character name prior to creating. Overload this function to add custom validators

    -
    -
    Parameters
    -

    name (str) – The name of the character

    -
    -
    Returns
    -

    valid (bool) – True if character creation should continue; False if it should fail

    -
    -
    -
    -
    basetype_setup()[source]
    @@ -1721,7 +1671,7 @@ cannot be picked up.

    class evennia.objects.objects.ExitCommand(**kwargs)[source]
    -

    Bases: evennia.commands.command.Command

    +

    Bases: evennia.commands.default.muxcommand.MuxCommand

    This is a command that simply cause the caller to traverse the object it is attached to.

    @@ -1773,11 +1723,6 @@ overriding the call (unused by default).

    lock_storage = 'cmd:all();'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'command', 'tags': '', 'text': '\n This is a command that simply cause the caller to traverse\n the object it is attached to.\n\n '}
    -
    -
    @@ -1977,6 +1922,7 @@ read for an error string instead.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.prototypes.html b/docs/0.9.5/api/evennia.prototypes.html index 1808f893fe..6a049f9497 100644 --- a/docs/0.9.5/api/evennia.prototypes.html +++ b/docs/0.9.5/api/evennia.prototypes.html @@ -81,6 +81,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.prototypes.menus.html b/docs/0.9.5/api/evennia.prototypes.menus.html index 291d4416fc..cf14d7ddec 100644 --- a/docs/0.9.5/api/evennia.prototypes.menus.html +++ b/docs/0.9.5/api/evennia.prototypes.menus.html @@ -186,6 +186,7 @@ prototype rather than creating a new one.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.prototypes.protfuncs.html b/docs/0.9.5/api/evennia.prototypes.protfuncs.html index b760e2d64a..5d7c082033 100644 --- a/docs/0.9.5/api/evennia.prototypes.protfuncs.html +++ b/docs/0.9.5/api/evennia.prototypes.protfuncs.html @@ -255,6 +255,7 @@ Validate that a #dbref input is valid.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.prototypes.prototypes.html b/docs/0.9.5/api/evennia.prototypes.prototypes.html index 14bb0bb4b0..18174aa8bd 100644 --- a/docs/0.9.5/api/evennia.prototypes.prototypes.html +++ b/docs/0.9.5/api/evennia.prototypes.prototypes.html @@ -489,6 +489,7 @@ validator (callable, optional): If given, this will be called with the value to<
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.prototypes.spawner.html b/docs/0.9.5/api/evennia.prototypes.spawner.html index 1bc4d57d49..ca8d017c0e 100644 --- a/docs/0.9.5/api/evennia.prototypes.spawner.html +++ b/docs/0.9.5/api/evennia.prototypes.spawner.html @@ -507,6 +507,7 @@ custom prototype_parents are given to this function.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.scripts.admin.html b/docs/0.9.5/api/evennia.scripts.admin.html index d35967c543..3128b06378 100644 --- a/docs/0.9.5/api/evennia.scripts.admin.html +++ b/docs/0.9.5/api/evennia.scripts.admin.html @@ -197,6 +197,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.scripts.html b/docs/0.9.5/api/evennia.scripts.html index 10bb6758c1..9d044dc61b 100644 --- a/docs/0.9.5/api/evennia.scripts.html +++ b/docs/0.9.5/api/evennia.scripts.html @@ -89,6 +89,7 @@ timed effects.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.scripts.manager.html b/docs/0.9.5/api/evennia.scripts.manager.html index 8045895f5f..64b3630bd1 100644 --- a/docs/0.9.5/api/evennia.scripts.manager.html +++ b/docs/0.9.5/api/evennia.scripts.manager.html @@ -80,6 +80,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.scripts.models.html b/docs/0.9.5/api/evennia.scripts.models.html index aa067aa101..c1905f75b4 100644 --- a/docs/0.9.5/api/evennia.scripts.models.html +++ b/docs/0.9.5/api/evennia.scripts.models.html @@ -371,6 +371,7 @@ class built by **create_forward_many_to_many_manager()** define
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.scripts.monitorhandler.html b/docs/0.9.5/api/evennia.scripts.monitorhandler.html index 758444bf13..ca26df81cd 100644 --- a/docs/0.9.5/api/evennia.scripts.monitorhandler.html +++ b/docs/0.9.5/api/evennia.scripts.monitorhandler.html @@ -189,6 +189,7 @@ all kwargs must be possible to pickle!

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.scripts.scripthandler.html b/docs/0.9.5/api/evennia.scripts.scripthandler.html index aee01401db..9de16947c4 100644 --- a/docs/0.9.5/api/evennia.scripts.scripthandler.html +++ b/docs/0.9.5/api/evennia.scripts.scripthandler.html @@ -193,6 +193,7 @@ be called regularly to crank the wheels.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.scripts.scripts.html b/docs/0.9.5/api/evennia.scripts.scripts.html index 95f0bc0657..bffc47ec31 100644 --- a/docs/0.9.5/api/evennia.scripts.scripts.html +++ b/docs/0.9.5/api/evennia.scripts.scripts.html @@ -424,6 +424,7 @@ to do it.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.scripts.taskhandler.html b/docs/0.9.5/api/evennia.scripts.taskhandler.html index c810fe194f..e61468292d 100644 --- a/docs/0.9.5/api/evennia.scripts.taskhandler.html +++ b/docs/0.9.5/api/evennia.scripts.taskhandler.html @@ -172,6 +172,7 @@ in the TaskHandler.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.scripts.tickerhandler.html b/docs/0.9.5/api/evennia.scripts.tickerhandler.html index ee8ac104b2..9bc0cf0642 100644 --- a/docs/0.9.5/api/evennia.scripts.tickerhandler.html +++ b/docs/0.9.5/api/evennia.scripts.tickerhandler.html @@ -417,6 +417,7 @@ non-db objects.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.server.admin.html b/docs/0.9.5/api/evennia.server.admin.html index 7b70e3d071..925e193a4e 100644 --- a/docs/0.9.5/api/evennia.server.admin.html +++ b/docs/0.9.5/api/evennia.server.admin.html @@ -120,6 +120,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.server.amp_client.html b/docs/0.9.5/api/evennia.server.amp_client.html index d81be28672..3a770bc286 100644 --- a/docs/0.9.5/api/evennia.server.amp_client.html +++ b/docs/0.9.5/api/evennia.server.amp_client.html @@ -255,6 +255,7 @@ operation, as defined by the global variables in
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.server.connection_wizard.html b/docs/0.9.5/api/evennia.server.connection_wizard.html index e7033c8bd0..bebcd06bc0 100644 --- a/docs/0.9.5/api/evennia.server.connection_wizard.html +++ b/docs/0.9.5/api/evennia.server.connection_wizard.html @@ -194,6 +194,7 @@ fails (and is expected to echo why if so).

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.server.deprecations.html b/docs/0.9.5/api/evennia.server.deprecations.html index 00550bdd04..091d4234ee 100644 --- a/docs/0.9.5/api/evennia.server.deprecations.html +++ b/docs/0.9.5/api/evennia.server.deprecations.html @@ -98,6 +98,7 @@ does not stop launch.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.server.evennia_launcher.html b/docs/0.9.5/api/evennia.server.evennia_launcher.html index ff3a480d20..3bc01b1af5 100644 --- a/docs/0.9.5/api/evennia.server.evennia_launcher.html +++ b/docs/0.9.5/api/evennia.server.evennia_launcher.html @@ -572,6 +572,7 @@ settings here. The result will be printed to the terminal.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.server.game_index_client.client.html b/docs/0.9.5/api/evennia.server.game_index_client.client.html index 5e5aa99429..773589a1c9 100644 --- a/docs/0.9.5/api/evennia.server.game_index_client.client.html +++ b/docs/0.9.5/api/evennia.server.game_index_client.client.html @@ -184,6 +184,7 @@ to this Protocol. The connection has been closed.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.server.game_index_client.html b/docs/0.9.5/api/evennia.server.game_index_client.html index b6c24340ba..a569bc4e0a 100644 --- a/docs/0.9.5/api/evennia.server.game_index_client.html +++ b/docs/0.9.5/api/evennia.server.game_index_client.html @@ -79,6 +79,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.server.game_index_client.service.html b/docs/0.9.5/api/evennia.server.game_index_client.service.html index 1319ff6a9c..aad9ff616e 100644 --- a/docs/0.9.5/api/evennia.server.game_index_client.service.html +++ b/docs/0.9.5/api/evennia.server.game_index_client.service.html @@ -103,6 +103,7 @@ to the Evennia Game Index.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.server.html b/docs/0.9.5/api/evennia.server.html index f9f8216dd0..042709b660 100644 --- a/docs/0.9.5/api/evennia.server.html +++ b/docs/0.9.5/api/evennia.server.html @@ -141,6 +141,7 @@ to connect to the game.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.server.initial_setup.html b/docs/0.9.5/api/evennia.server.initial_setup.html index 5ebb50cebc..4c3feebb32 100644 --- a/docs/0.9.5/api/evennia.server.initial_setup.html +++ b/docs/0.9.5/api/evennia.server.initial_setup.html @@ -133,6 +133,7 @@ steps need to be redone.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.server.inputfuncs.html b/docs/0.9.5/api/evennia.server.inputfuncs.html index c1b1cb9119..68f0491183 100644 --- a/docs/0.9.5/api/evennia.server.inputfuncs.html +++ b/docs/0.9.5/api/evennia.server.inputfuncs.html @@ -372,6 +372,7 @@ logging a missing inputfunc for it.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.server.manager.html b/docs/0.9.5/api/evennia.server.manager.html index fe165b6521..1d9c20ac17 100644 --- a/docs/0.9.5/api/evennia.server.manager.html +++ b/docs/0.9.5/api/evennia.server.manager.html @@ -111,6 +111,7 @@ value (str): If key was given, this is the stored value, or

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.server.models.html b/docs/0.9.5/api/evennia.server.models.html index 7ea4a2641b..41a6ad2bb7 100644 --- a/docs/0.9.5/api/evennia.server.models.html +++ b/docs/0.9.5/api/evennia.server.models.html @@ -165,6 +165,7 @@ object the first time, the query is executed.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.server.portal.amp.html b/docs/0.9.5/api/evennia.server.portal.amp.html index a1d4ac517f..d9a926e64d 100644 --- a/docs/0.9.5/api/evennia.server.portal.amp.html +++ b/docs/0.9.5/api/evennia.server.portal.amp.html @@ -548,6 +548,7 @@ function call

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.server.portal.amp_server.html b/docs/0.9.5/api/evennia.server.portal.amp_server.html index a9a30d0ccc..4f3f07d1f6 100644 --- a/docs/0.9.5/api/evennia.server.portal.amp_server.html +++ b/docs/0.9.5/api/evennia.server.portal.amp_server.html @@ -296,6 +296,7 @@ global variables in evennia/server/amp.py.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.server.portal.grapevine.html b/docs/0.9.5/api/evennia.server.portal.grapevine.html index 49648abde5..da0ad6938d 100644 --- a/docs/0.9.5/api/evennia.server.portal.grapevine.html +++ b/docs/0.9.5/api/evennia.server.portal.grapevine.html @@ -293,6 +293,7 @@ disconnect this protocol.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.server.portal.html b/docs/0.9.5/api/evennia.server.portal.html index 0f5706b0f8..0bff0b81a4 100644 --- a/docs/0.9.5/api/evennia.server.portal.html +++ b/docs/0.9.5/api/evennia.server.portal.html @@ -98,6 +98,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.server.portal.irc.html b/docs/0.9.5/api/evennia.server.portal.irc.html index 4442dd9320..a6cb2a6c6c 100644 --- a/docs/0.9.5/api/evennia.server.portal.irc.html +++ b/docs/0.9.5/api/evennia.server.portal.irc.html @@ -409,6 +409,7 @@ sessions.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.server.portal.mccp.html b/docs/0.9.5/api/evennia.server.portal.mccp.html index f122dd78b5..8d1ebfccd1 100644 --- a/docs/0.9.5/api/evennia.server.portal.mccp.html +++ b/docs/0.9.5/api/evennia.server.portal.mccp.html @@ -143,6 +143,7 @@ creating a zlib compression stream.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.server.portal.mssp.html b/docs/0.9.5/api/evennia.server.portal.mssp.html index 4386990a08..62aef1f8e1 100644 --- a/docs/0.9.5/api/evennia.server.portal.mssp.html +++ b/docs/0.9.5/api/evennia.server.portal.mssp.html @@ -144,6 +144,7 @@ operation.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.server.portal.mxp.html b/docs/0.9.5/api/evennia.server.portal.mxp.html index ea0ac09069..2e838a6c21 100644 --- a/docs/0.9.5/api/evennia.server.portal.mxp.html +++ b/docs/0.9.5/api/evennia.server.portal.mxp.html @@ -136,6 +136,7 @@ that supports it (mudlet, zmud, mushclient are a few)

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.server.portal.naws.html b/docs/0.9.5/api/evennia.server.portal.naws.html index 5088eff5b5..a6a8383ccb 100644 --- a/docs/0.9.5/api/evennia.server.portal.naws.html +++ b/docs/0.9.5/api/evennia.server.portal.naws.html @@ -132,6 +132,7 @@ operation.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.server.portal.portal.html b/docs/0.9.5/api/evennia.server.portal.portal.html index 0c913cf296..fcd1a05e7e 100644 --- a/docs/0.9.5/api/evennia.server.portal.portal.html +++ b/docs/0.9.5/api/evennia.server.portal.portal.html @@ -131,6 +131,7 @@ case it always needs to be restarted manually.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.server.portal.portalsessionhandler.html b/docs/0.9.5/api/evennia.server.portal.portalsessionhandler.html index 0ce64cb042..349c6c4fc5 100644 --- a/docs/0.9.5/api/evennia.server.portal.portalsessionhandler.html +++ b/docs/0.9.5/api/evennia.server.portal.portalsessionhandler.html @@ -62,17 +62,6 @@ to the server using the AMP connection.

    At this point, the AMP connection is already established.

    -
    -
    -generate_sessid()[source]
    -

    Simply generates a sessid that’s guaranteed to be unique for this Portal run.

    -
    -
    Returns
    -

    sessid

    -
    -
    -
    -
    connect(session)[source]
    @@ -332,6 +321,7 @@ method exixts, it sends the data to a method send_default.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.server.portal.rss.html b/docs/0.9.5/api/evennia.server.portal.rss.html index 619644fd59..dbb5fab2eb 100644 --- a/docs/0.9.5/api/evennia.server.portal.rss.html +++ b/docs/0.9.5/api/evennia.server.portal.rss.html @@ -173,6 +173,7 @@ on slow connections.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.server.portal.ssh.html b/docs/0.9.5/api/evennia.server.portal.ssh.html index 074dcd8972..8dc11416c1 100644 --- a/docs/0.9.5/api/evennia.server.portal.ssh.html +++ b/docs/0.9.5/api/evennia.server.portal.ssh.html @@ -224,18 +224,18 @@ reaching this point.

    are considered.

    Keyword Arguments
    -

    options (dict) –

    Send-option flags (booleans)

    +

    options (dict) –

    Send-option flags:

      -
    • mxp: enforce mxp link support.

    • -
    • ansi: enforce no ansi colors.

    • -
    • xterm256: enforce xterm256 colors, regardless of ttype setting.

    • -
    • nocolor: strip all colors.

    • -
    • raw: pass string through without any ansi processing -(i.e. include evennia ansi markers but do not +

    • mxp: Enforce MXP link support.

    • +
    • ansi: Enforce no ANSI colors.

    • +
    • xterm256: Enforce xterm256 colors, regardless of TTYPE setting.

    • +
    • nocolor: Strip all colors.

    • +
    • raw: Pass string through without any ansi processing +(i.e. include Evennia ansi markers but do not convert them into ansi tokens)

    • -
    • echo: turn on/off line echo on the client. turn +

    • echo: Turn on/off line echo on the client. Turn off line echo for client, for example for password. -note that it must be actively turned back on again!

    • +Note that it must be actively turned back on again!

    @@ -394,6 +394,7 @@ do not exist, the keypair is created.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.server.portal.ssl.html b/docs/0.9.5/api/evennia.server.portal.ssl.html index 4744bbf3a4..ad833722af 100644 --- a/docs/0.9.5/api/evennia.server.portal.ssl.html +++ b/docs/0.9.5/api/evennia.server.portal.ssl.html @@ -114,6 +114,7 @@ server-side.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.server.portal.suppress_ga.html b/docs/0.9.5/api/evennia.server.portal.suppress_ga.html index 674908a4b3..07275e02fb 100644 --- a/docs/0.9.5/api/evennia.server.portal.suppress_ga.html +++ b/docs/0.9.5/api/evennia.server.portal.suppress_ga.html @@ -122,6 +122,7 @@ protocol to set it up.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.server.portal.telnet.html b/docs/0.9.5/api/evennia.server.portal.telnet.html index 072f71de8d..a8b5513ba0 100644 --- a/docs/0.9.5/api/evennia.server.portal.telnet.html +++ b/docs/0.9.5/api/evennia.server.portal.telnet.html @@ -241,25 +241,19 @@ disconnect this protocol.

    are considered.

    Keyword Arguments
    -

    options (dict) –

    Send-option flags

    +

    options (dict) –

    Send-option flags:

    • mxp: Enforce MXP link support.

    • ansi: Enforce no ANSI colors.

    • xterm256: Enforce xterm256 colors, regardless of TTYPE.

    • noxterm256: Enforce no xterm256 color support, regardless of TTYPE.

    • nocolor: Strip all Color, regardless of ansi/xterm256 setting.

    • -
    • -
      raw: Pass string through without any ansi processing

      (i.e. include Evennia ansi markers but do not -convert them into ansi tokens)

      -
      -
      -
    • -
    • -
      echo: Turn on/off line echo on the client. Turn

      off line echo for client, for example for password. -Note that it must be actively turned back on again!

      -
      -
      -
    • +
    • raw: Pass string through without any ansi processing +(i.e. include Evennia ansi markers but do not +convert them into ansi tokens)

    • +
    • echo: Turn on/off line echo on the client. Turn +off line echo for client, for example for password. +Note that it must be actively turned back on again!

    @@ -315,6 +309,7 @@ Note that it must be actively turned back on again!

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.server.portal.telnet_oob.html b/docs/0.9.5/api/evennia.server.portal.telnet_oob.html index f0ab815eff..87862b5241 100644 --- a/docs/0.9.5/api/evennia.server.portal.telnet_oob.html +++ b/docs/0.9.5/api/evennia.server.portal.telnet_oob.html @@ -46,15 +46,19 @@ commands, by contrast, can have many forms and it is up to the client how and if they are handled. Examples of OOB instructions could be to instruct the client to play sounds or to update a graphical health bar.

    -

    Note that in Evennia’s Web client, all send commands are “OOB -commands”, (including the “text” one), there is no equivalence to -MSDP/GMCP for the webclient since it doesn’t need it.

    +

    > Note that in Evennia’s Web client, all send commands are “OOB commands”, +(including the “text” one), there is no equivalence to MSDP/GMCP for the +webclient since it doesn’t need it.

    This implements the following telnet OOB communication protocols:

    +

    Following the lead of KaVir’s protocol snippet, we first check if client +supports MSDP and if not, we fallback to GMCP with a MSDP header where +applicable.


    @@ -134,17 +138,17 @@ supported.

    Notes

    The output of this encoding will be MSDP structures on these forms:

    -
    [cmdname, [], {}]           -> VAR cmdname VAL ""
    -[cmdname, [arg], {}]        -> VAR cmdname VAL arg
    -[cmdname, [args],{}]        -> VAR cmdname VAL ARRAYOPEN VAL arg VAL arg ... ARRAYCLOSE
    -[cmdname, [], {kwargs}]     -> VAR cmdname VAL TABLEOPEN VAR key VAL val ... TABLECLOSE
    +
    [cmdname, [], {}]          -> VAR cmdname VAL ""
    +[cmdname, [arg], {}]       -> VAR cmdname VAL arg
    +[cmdname, [args],{}]       -> VAR cmdname VAL ARRAYOPEN VAL arg VAL arg ... ARRAYCLOSE
    +[cmdname, [], {kwargs}]    -> VAR cmdname VAL TABLEOPEN VAR key VAL val ... TABLECLOSE
     [cmdname, [args], {kwargs}] -> VAR cmdname VAL ARRAYOPEN VAL arg VAL arg ... ARRAYCLOSE
                                    VAR cmdname VAL TABLEOPEN VAR key VAL val ... TABLECLOSE
     
    -

    Further nesting is not supported, so if an array argument -consists of an array (for example), that array will be -json-converted to a string.

    +

    Further nesting is not supported, so if an array argument consists +of an array (for example), that array will be json-converted to a +string.

    @@ -171,11 +175,12 @@ be stripped on the Evennia side.

    [cmd.name, [arg], {}] -> Cmd.Name arg [cmd.name, [args],{}] -> Cmd.Name [args] [cmd.name, [], {kwargs}] -> Cmd.Name {kwargs} -[cmdname, [args, {kwargs}] -> Core.Cmdname [[args],{kwargs}] +[cmdname, [args, {kwargs}] -> Core.Cmdname [[args],{kwargs}]

    Notes

    -

    There are also a few default mappings between evennia outputcmds and GMCP:

    +

    There are also a few default mappings between evennia outputcmds and +GMCP:

    client_options -> Core.Supports.Get
     get_inputfuncs -> Core.Commands.Get
     get_value      -> Char.Value.Get
    @@ -285,6 +290,7 @@ We assume the structure is valid JSON.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.server.portal.telnet_ssl.html b/docs/0.9.5/api/evennia.server.portal.telnet_ssl.html index 67bb50e82f..2c9aa7e292 100644 --- a/docs/0.9.5/api/evennia.server.portal.telnet_ssl.html +++ b/docs/0.9.5/api/evennia.server.portal.telnet_ssl.html @@ -125,6 +125,7 @@ server-side.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.server.portal.tests.html b/docs/0.9.5/api/evennia.server.portal.tests.html index 9f29614391..1743d4573f 100644 --- a/docs/0.9.5/api/evennia.server.portal.tests.html +++ b/docs/0.9.5/api/evennia.server.portal.tests.html @@ -181,6 +181,7 @@ its inverse gives the correct string.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.server.portal.ttype.html b/docs/0.9.5/api/evennia.server.portal.ttype.html index 9f6d273c0e..522c421aa3 100644 --- a/docs/0.9.5/api/evennia.server.portal.ttype.html +++ b/docs/0.9.5/api/evennia.server.portal.ttype.html @@ -131,6 +131,7 @@ stored on protocol.protocol_flags under the TTYPE key.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.server.portal.webclient.html b/docs/0.9.5/api/evennia.server.portal.webclient.html index 5bfd8513d5..172afc06aa 100644 --- a/docs/0.9.5/api/evennia.server.portal.webclient.html +++ b/docs/0.9.5/api/evennia.server.portal.webclient.html @@ -248,6 +248,7 @@ client instead.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.server.portal.webclient_ajax.html b/docs/0.9.5/api/evennia.server.portal.webclient_ajax.html index d16be35253..d3345c08b4 100644 --- a/docs/0.9.5/api/evennia.server.portal.webclient_ajax.html +++ b/docs/0.9.5/api/evennia.server.portal.webclient_ajax.html @@ -373,6 +373,7 @@ client instead.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.server.profiling.dummyrunner.html b/docs/0.9.5/api/evennia.server.profiling.dummyrunner.html index 4ea5c0e107..13ae2e12fb 100644 --- a/docs/0.9.5/api/evennia.server.profiling.dummyrunner.html +++ b/docs/0.9.5/api/evennia.server.profiling.dummyrunner.html @@ -240,6 +240,7 @@ all “intelligence” of the dummy client.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.server.profiling.dummyrunner_settings.html b/docs/0.9.5/api/evennia.server.profiling.dummyrunner_settings.html index d9bc14d854..a8a4ccc213 100644 --- a/docs/0.9.5/api/evennia.server.profiling.dummyrunner_settings.html +++ b/docs/0.9.5/api/evennia.server.profiling.dummyrunner_settings.html @@ -42,17 +42,13 @@

    This module defines dummyrunner settings and sets up the actions available to dummy accounts.

    The settings are global variables:

    -
      -
    • TIMESTEP - time in seconds between each ‘tick’

    • -
    • CHANCE_OF_ACTION - chance 0-1 of action happening

    • -
    • CHANCE_OF_LOGIN - chance 0-1 of login happening

    • -
    • TELNET_PORT - port to use, defaults to settings.TELNET_PORT

    • -
    • ACTIONS - see below

    • -
    +

    TIMESTEP - time in seconds between each ‘tick’ +CHANCE_OF_ACTION - chance 0-1 of action happening +CHANCE_OF_LOGIN - chance 0-1 of login happening +TELNET_PORT - port to use, defaults to settings.TELNET_PORT +ACTIONS - see below

    ACTIONS is a tuple

    -
    (login_func, logout_func, (0.3, func1), (0.1, func2) ... )
    -
    -
    +

    (login_func, logout_func, (0.3, func1), (0.1, func2) … )

    where the first entry is the function to call on first connect, with a chance of occurring given by CHANCE_OF_LOGIN. This function is usually responsible for logging in the account. The second entry is always @@ -69,22 +65,28 @@ returns a string or a list of command strings to execute. Use the client object for optionally saving data between actions.

    The client object has the following relevant properties and methods:

      -
    • key - an optional client key. This is only used for dummyrunner output. -Default is “Dummy-<cid>”

    • +
    • +
      key - an optional client key. This is only used for dummyrunner output.

      Default is “Dummy-<cid>”

      +
      +
      +
    • cid - client id

    • gid - globally unique id, hashed with time stamp

    • istep - the current step

    • exits - an empty list. Can be used to store exit names

    • objs - an empty list. Can be used to store object names

    • -
    • counter() - returns a unique increasing id, hashed with time stamp -to make it unique also between dummyrunner instances.

    • +
    • +
      counter() - returns a unique increasing id, hashed with time stamp

      to make it unique also between dummyrunner instances.

      +
      +
      +

    The return should either be a single command string or a tuple of command strings. This list of commands will always be executed every TIMESTEP with a chance given by CHANCE_OF_ACTION by in the order given (no randomness) and allows for setting up a more complex chain of commands (such as creating an account and logging in).

    -
    +

    evennia.server.profiling.dummyrunner_settings.c_login(client)[source]
    @@ -204,6 +206,7 @@ commands (such as creating an account and logging in).

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.server.profiling.html b/docs/0.9.5/api/evennia.server.profiling.html index 5548e07a9c..76515e1438 100644 --- a/docs/0.9.5/api/evennia.server.profiling.html +++ b/docs/0.9.5/api/evennia.server.profiling.html @@ -84,6 +84,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.server.profiling.memplot.html b/docs/0.9.5/api/evennia.server.profiling.memplot.html index a08119cfaf..bcb07023ca 100644 --- a/docs/0.9.5/api/evennia.server.profiling.memplot.html +++ b/docs/0.9.5/api/evennia.server.profiling.memplot.html @@ -118,6 +118,7 @@ the script will append to this file if it already exists.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.server.profiling.settings_mixin.html b/docs/0.9.5/api/evennia.server.profiling.settings_mixin.html index d183fbca31..68727ef249 100644 --- a/docs/0.9.5/api/evennia.server.profiling.settings_mixin.html +++ b/docs/0.9.5/api/evennia.server.profiling.settings_mixin.html @@ -80,6 +80,7 @@ servers!

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.server.profiling.test_queries.html b/docs/0.9.5/api/evennia.server.profiling.test_queries.html index eccc6b1b39..a9d1719f09 100644 --- a/docs/0.9.5/api/evennia.server.profiling.test_queries.html +++ b/docs/0.9.5/api/evennia.server.profiling.test_queries.html @@ -82,6 +82,7 @@ to setup the environment to test.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.server.profiling.tests.html b/docs/0.9.5/api/evennia.server.profiling.tests.html index 97e10df002..b18d3c9ba0 100644 --- a/docs/0.9.5/api/evennia.server.profiling.tests.html +++ b/docs/0.9.5/api/evennia.server.profiling.tests.html @@ -176,6 +176,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.server.profiling.timetrace.html b/docs/0.9.5/api/evennia.server.profiling.timetrace.html index 6689997da4..c75192fe4d 100644 --- a/docs/0.9.5/api/evennia.server.profiling.timetrace.html +++ b/docs/0.9.5/api/evennia.server.profiling.timetrace.html @@ -91,6 +91,7 @@ This message will get attached time stamp.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.server.server.html b/docs/0.9.5/api/evennia.server.server.html index 0d14b244c6..959397a277 100644 --- a/docs/0.9.5/api/evennia.server.server.html +++ b/docs/0.9.5/api/evennia.server.server.html @@ -38,11 +38,11 @@

    evennia.server.server

    -

    This module implements the main Evennia server process, the core of the game -engine.

    -

    This module should be started with the ‘twistd’ executable since it sets up all -the networking features. (this is done automatically by -evennia/server/server_runner.py).

    +

    This module implements the main Evennia server process, the core of +the game engine.

    +

    This module should be started with the ‘twistd’ executable since it +sets up all the networking features. (this is done automatically +by evennia/server/server_runner.py).

    class evennia.server.server.Evennia(application)[source]
    @@ -99,20 +99,20 @@ Once finished the last_initial_setup_step is set to -1.

    shutdown(mode='reload', _reactor_stopping=False)[source]

    Shuts down the server from inside it.

    -
    -
    mode - sets the server restart mode.
      -
    • ‘reload’ - server restarts, no “persistent” scripts +

      +
      Keyword Arguments
      +
        +
      • mode (str) – Sets the server restart mode:

      • +
      • 'reload' (-) – server restarts, no “persistent” scripts are stopped, at_reload hooks called.

      • -
      • ‘reset’ - server restarts, non-persistent scripts stopped, -at_shutdown hooks called but sessions will not +

      • 'reset' - server restarts, non-persistent scripts stopped, (-) – at_shutdown hooks called but sessions will not be disconnected.

      • -
      • ‘shutdown’ - like reset, but server will not auto-restart.

      • +
      • - like reset, but server will not auto-restart. (-'shutdown') –

      • +
      • _reactor_stopping – This is set if server is stopped by a kill +command OR this method was already called +once - in both cases the reactor is dead/stopping already.

      -
      _reactor_stopping - this is set if server is stopped by a kill

      command OR this method was already called -once - in both cases the reactor is -dead/stopping already.

      -
    @@ -210,6 +210,7 @@ shutdown or a reset.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.server.serversession.html b/docs/0.9.5/api/evennia.server.serversession.html index b1ff61385e..455a18601f 100644 --- a/docs/0.9.5/api/evennia.server.serversession.html +++ b/docs/0.9.5/api/evennia.server.serversession.html @@ -43,6 +43,126 @@ a connection to the outside world but don’t know any details about how the connection actually happens (so it’s the same for telnet, web, ssh etc).

    It is stored on the Server side (as opposed to protocol-specific sessions which are stored on the Portal side)

    +
    +
    +class evennia.server.serversession.NDbHolder(obj, name, manager_name='attributes')[source]
    +

    Bases: object

    +

    Holder for allowing property access of attributes

    +
    +
    +__init__(obj, name, manager_name='attributes')[source]
    +

    Initialize self. See help(type(self)) for accurate signature.

    +
    + +
    +
    +get_all()[source]
    +
    + +
    +
    +property all
    +
    + +
    + +
    +
    +class evennia.server.serversession.NAttributeHandler(obj)[source]
    +

    Bases: object

    +

    NAttributeHandler version without recache protection. +This stand-alone handler manages non-database saving. +It is similar to AttributeHandler and is used +by the .ndb handler in the same way as .db does +for the AttributeHandler.

    +
    +
    +__init__(obj)[source]
    +

    Initialized on the object

    +
    + +
    +
    +has(key)[source]
    +

    Check if object has this attribute or not.

    +
    +
    Parameters
    +

    key (str) – The Nattribute key to check.

    +
    +
    Returns
    +

    has_nattribute (bool) – If Nattribute is set or not.

    +
    +
    +
    + +
    +
    +get(key, default=None)[source]
    +

    Get the named key value.

    +
    +
    Parameters
    +

    key (str) – The Nattribute key to get.

    +
    +
    Returns
    +

    the value of the Nattribute.

    +
    +
    +
    + +
    +
    +add(key, value)[source]
    +

    Add new key and value.

    +
    +
    Parameters
    +
      +
    • key (str) – The name of Nattribute to add.

    • +
    • value (any) – The value to store.

    • +
    +
    +
    +
    + +
    +
    +remove(key)[source]
    +

    Remove Nattribute from storage.

    +
    +
    Parameters
    +

    key (str) – The name of the Nattribute to remove.

    +
    +
    +
    + +
    +
    +clear()[source]
    +

    Remove all NAttributes from handler.

    +
    + +
    +
    +all(return_tuples=False)[source]
    +

    List the contents of the handler.

    +
    +
    Parameters
    +

    return_tuples (bool, optional) – Defines if the Nattributes +are returns as a list of keys or as a list of (key, value).

    +
    +
    Returns
    +

    nattributes (list)

    +
    +
    A list of keys [key, key, …] or a

    list of tuples [(key, value), …] depending on the +setting of return_tuples.

    +
    +
    +

    +
    +
    +
    + +
    +
    class evennia.server.serversession.ServerSession[source]
    @@ -63,11 +183,6 @@ through their session.

    property cmdset_storage
    -
    -
    -property id
    -
    -
    at_sync()[source]
    @@ -180,7 +295,7 @@ idle timers and command counters.

    Update the protocol_flags and sync them with Portal.

    Keyword Arguments
    -

    protocol_flag (any) – A key and value to set in the +

    any – A key:value pair to set in the protocol_flags dictionary.

    @@ -213,7 +328,7 @@ for the protocol(s).

    the respective inputfuncs.

    Keyword Arguments
    -

    kwargs (any) – Incoming data from protocol on +

    any – Incoming data from protocol on the form {“commandname”: ((args), {kwargs}),…}

    @@ -230,12 +345,12 @@ this data off to self.sessionhandler.call_inputfuncs(self, **kwargs)

    Wrapper to mimic msg() functionality of Objects and Accounts.

    Parameters
    -

    text (str) – String input.

    -
    -
    Keyword Arguments
    -

    any (str or tuple) – Send-commands identified +

      +
    • text (str) – String input.

    • +
    • kwargs (str or tuple) – Send-commands identified by their keys. Or “options”, carrying options -for the protocol(s).

      +for the protocol(s).

    • +
    @@ -381,6 +496,7 @@ property, e.g. obj.ndb.attr = value etc.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.server.session.html b/docs/0.9.5/api/evennia.server.session.html index 3f1f8e8491..d5f492f650 100644 --- a/docs/0.9.5/api/evennia.server.session.html +++ b/docs/0.9.5/api/evennia.server.session.html @@ -186,6 +186,7 @@ should overload this to format/handle the outgoing data as needed.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.server.sessionhandler.html b/docs/0.9.5/api/evennia.server.sessionhandler.html index 1d57f016a5..a0de7b4018 100644 --- a/docs/0.9.5/api/evennia.server.sessionhandler.html +++ b/docs/0.9.5/api/evennia.server.sessionhandler.html @@ -41,7 +41,8 @@

    This module defines handlers for storing sessions when handles sessions of users connecting to the server.

    There are two similar but separate stores of sessions:

    -
      +
      +
      • ServerSessionHandler - this stores generic game sessions

        for the game. These sessions has no knowledge about how they are connected to the world.

        @@ -55,6 +56,7 @@ handle network communication but holds no game info.

      +
      class evennia.server.sessionhandler.DummySession[source]
      @@ -118,22 +120,30 @@ sessions in store.

      Parameters
      • session (Session) – The relevant session instance.

      • -
      • kwargs (dict) – of the instruction (like “text”). Suitable values for each -keyword are: -- arg -> [[arg], {}] -- [args] -> [[args], {}] -- {kwargs} -> [[], {kwargs}] -- [args, {kwargs}] -> [[arg], {kwargs}] -- [[args], {kwargs}] -> [[args], {kwargs}]

      • +
      • kwargs (dict) –

        send-instruction, with the keyword itself being the name +of the instruction (like “text”). Suitable values for each +keyword are:

        +
        arg                ->  [[arg], {}]
        +[args]             ->  [[args], {}]
        +{kwargs}           ->  [[], {kwargs}]
        +[args, {kwargs}]   ->  [[arg], {kwargs}]
        +[[args], {kwargs}] ->  [[args], {kwargs}]
        +
        +
        +

      Returns
      -

      kwargs (dict) – A cleaned dictionary of cmdname:[[args],{kwargs}] pairs, -where the keys, args and kwargs have all been converted to +

      kwargs (dict)

      +
      +
      A cleaned dictionary of cmdname:[[args],{kwargs}] pairs,

      where the keys, args and kwargs have all been converted to send-safe entities (strings or numbers), and inlinefuncs have been applied.

      +

      +
      +
    @@ -482,13 +492,12 @@ object.

    sessions_from_csessid(csessid)[source]

    Given a client identification hash (for session types that offer them) return all sessions with a matching hash.

    -
    -
    Args

    csessid (str): The session hash.

    -
    -
    -
    Returns
    -

    sessions (list) – The sessions with matching .csessid, if any.

    +
    Parameters
    +

    csessid (str) – The session hash.

    +
    +
    Returns
    +

    sessions (list) – The sessions with matching .csessid, if any.

    @@ -545,17 +554,17 @@ this class’ sessionhandler.call_inputfunc with the
    call_inputfuncs(session, **kwargs)[source]
    -

    Split incoming data into its inputfunc counterparts. This should be -called by the serversession.data_in as -sessionhandler.call_inputfunc(self, **kwargs).

    +

    Split incoming data into its inputfunc counterparts. +This should be called by the serversession.data_in +as sessionhandler.call_inputfunc(self, **kwargs).

    We also intercept OOB communication here.

    Parameters

    sessions (Session) – Session.

    Keyword Arguments
    -

    any (tuple) – Incoming data from protocol, each -on the form commandname=((args), {kwargs}).

    +

    kwargs (any) – Incoming data from protocol on +the form {“commandname”: ((args), {kwargs}),…}

    @@ -597,6 +606,7 @@ on the form commandname=((args), {kwargs}).

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.server.signals.html b/docs/0.9.5/api/evennia.server.signals.html index 9d703a340d..de9bf00f01 100644 --- a/docs/0.9.5/api/evennia.server.signals.html +++ b/docs/0.9.5/api/evennia.server.signals.html @@ -38,20 +38,22 @@

    evennia.server.signals

    -

    This module brings Django Signals into Evennia. These are events that can be -subscribed to by importing a given Signal and using the following code.

    -
    THIS_SIGNAL.connect(callback, sender_object)
    +

    This module brings Django Signals into Evennia. These are events that +can be subscribed to by importing a given Signal and using the +following code.

    +
    THIS_SIGNAL.connect(callback, sender_object**)
     
    -

    When other code calls THIS_SIGNAL.send(sender, **kwargs), the callback will -be triggered.

    -

    Callbacks must be on the following format:

    +

    When other code calls THIS_SIGNAL.send(sender, **kwargs), the callback +will be triggered.

    +

    Callbacks must be in the following format:

    def my_callback(sender, **kwargs):
    -    # ...
    +    ...
     
    -

    This is used on top of hooks to make certain features easier to add to contribs -without necessitating a full takeover of hooks that may be in high demand.

    +

    This is used on top of hooks to make certain features easier to +add to contribs without necessitating a full takeover of hooks +that may be in high demand.

    @@ -87,6 +89,7 @@ without necessitating a full takeover of hooks that may be in high demand.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.server.throttle.html b/docs/0.9.5/api/evennia.server.throttle.html index c8205e7add..112ea0ebce 100644 --- a/docs/0.9.5/api/evennia.server.throttle.html +++ b/docs/0.9.5/api/evennia.server.throttle.html @@ -47,8 +47,8 @@ particular threshold.

    This version of the throttle is usable by both the terminal server as well as the web server, imposes limits on memory consumption by using deques -with length limits instead of open-ended lists, and uses native Django -caches for automatic key eviction and persistence configurability.

    +with length limits instead of open-ended lists, and removes sparse keys when +no recent failures have been recorded.

    error_msg = 'Too many failed attempts; you must wait a few minutes before trying again.'
    @@ -61,7 +61,6 @@ caches for automatic key eviction and persistence configurability.

    Keyword Arguments
      -
    • name (str) – Name of this throttle.

    • limit (int) – Max number of failures before imposing limiter

    • timeout (int) – number of timeout seconds after max number of tries has been reached.

    • @@ -73,25 +72,6 @@ the throttle is imposed!

    -
    -
    -get_cache_key(*args, **kwargs)[source]
    -

    Creates a ‘prefixed’ key containing arbitrary terms to prevent key -collisions in the same namespace.

    -
    - -
    -
    -touch(key, *args, **kwargs)[source]
    -

    Refreshes the timeout on a given key and ensures it is recorded in the -key register.

    -
    -
    Parameters
    -

    key (str) – Key of entry to renew.

    -
    -
    -
    -
    get(ip=None)[source]
    @@ -132,41 +112,6 @@ of throttle.

    -
    -
    -remove(ip, *args, **kwargs)[source]
    -

    Clears data stored for an IP from the throttle.

    -
    -
    Parameters
    -

    ip (str) – IP to clear.

    -
    -
    -
    - -
    -
    -record_ip(ip, *args, **kwargs)[source]
    -

    Tracks keys as they are added to the cache (since there is no way to -get a list of keys after-the-fact).

    -
    -
    Parameters
    -

    ip (str) – IP being added to cache. This should be the original -IP, not the cache-prefixed key.

    -
    -
    -
    - -
    -
    -unrecord_ip(ip, *args, **kwargs)[source]
    -

    Forces removal of a key from the key registry.

    -
    -
    Parameters
    -

    ip (str) – IP to remove from list of keys.

    -
    -
    -
    -
    check(ip)[source]
    @@ -225,6 +170,7 @@ fails recently.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.server.validators.html b/docs/0.9.5/api/evennia.server.validators.html index 6bb0f56d7a..4a1abdc227 100644 --- a/docs/0.9.5/api/evennia.server.validators.html +++ b/docs/0.9.5/api/evennia.server.validators.html @@ -135,6 +135,7 @@ by this validator.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.server.webserver.html b/docs/0.9.5/api/evennia.server.webserver.html index 22b8f4d744..b420ede9ed 100644 --- a/docs/0.9.5/api/evennia.server.webserver.html +++ b/docs/0.9.5/api/evennia.server.webserver.html @@ -293,6 +293,7 @@ directory this path represents.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.settings_default.html b/docs/0.9.5/api/evennia.settings_default.html index 847a2f657f..310e58faff 100644 --- a/docs/0.9.5/api/evennia.settings_default.html +++ b/docs/0.9.5/api/evennia.settings_default.html @@ -81,6 +81,7 @@ always be sure of what you have changed and what is default behaviour.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.typeclasses.admin.html b/docs/0.9.5/api/evennia.typeclasses.admin.html index 5835f3e752..592ee104c5 100644 --- a/docs/0.9.5/api/evennia.typeclasses.admin.html +++ b/docs/0.9.5/api/evennia.typeclasses.admin.html @@ -364,6 +364,7 @@ people used the admin at the same time

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.typeclasses.attributes.html b/docs/0.9.5/api/evennia.typeclasses.attributes.html index 62c7bee4a7..72fa93780f 100644 --- a/docs/0.9.5/api/evennia.typeclasses.attributes.html +++ b/docs/0.9.5/api/evennia.typeclasses.attributes.html @@ -44,9 +44,9 @@ both pure-string values and pickled arbitrary data.

    the Attribute- and NickHandlers as well as the NAttributeHandler, which is a non-db version of Attributes.

    -
    -class evennia.typeclasses.attributes.IAttribute[source]
    -

    Bases: object

    +
    +class evennia.typeclasses.attributes.Attribute(*args, **kwargs)[source]
    +

    Bases: evennia.utils.idmapper.models.SharedMemoryModel

    Attributes are things that are specific to different types of objects. For example, a drink container needs to store its fill level, whereas an exit needs to store its open/closed/locked/unlocked state. These are done via @@ -81,106 +81,6 @@ attributes on the fly as we like.

    -

    This class is an API/Interface/Abstract base class; do not instantiate it directly.

    -
    -
    -locks[source]
    -
    - -
    -
    -property key
    -
    - -
    -
    -property strvalue
    -
    - -
    -
    -property category
    -
    - -
    -
    -property model
    -
    - -
    -
    -property attrtype
    -
    - -
    -
    -property date_created
    -
    - -
    -
    -property lock_storage
    -
    - -
    -
    -access(accessing_obj, access_type='read', default=False, **kwargs)[source]
    -

    Determines if another object has permission to access.

    -
    -
    Parameters
    -
      -
    • accessing_obj (object) – Entity trying to access this one.

    • -
    • access_type (str, optional) – Type of access sought, see -the lock documentation.

    • -
    • default (bool, optional) – What result to return if no lock -of access_type was found. The default, False, means a lockdown -policy, only allowing explicit access.

    • -
    • kwargs (any, optional) – Not used; here to make the API consistent with -other access calls.

    • -
    -
    -
    Returns
    -

    result (bool) – If the lock was passed or not.

    -
    -
    -
    - -
    - -
    -
    -class evennia.typeclasses.attributes.InMemoryAttribute(pk, **kwargs)[source]
    -

    Bases: evennia.typeclasses.attributes.IAttribute

    -

    This Attribute is used purely for NAttributes/NAttributeHandler. It has no database backend.

    -
    -
    -__init__(pk, **kwargs)[source]
    -

    Create an Attribute that exists only in Memory.

    -
    -
    Parameters
    -
      -
    • pk (int) – This is a fake ‘primary key’ / id-field. It doesn’t actually have to be unique, but is fed an -incrementing number from the InMemoryBackend by default. This is needed only so Attributes can be -sorted. Some parts of the API also see the lack of a .pk field as a sign that the Attribute was -deleted.

    • -
    • **kwargs – Other keyword arguments are used to construct the actual Attribute.

    • -
    -
    -
    -
    - -
    -
    -property value
    -
    - -
    - -
    -
    -class evennia.typeclasses.attributes.Attribute(*args, **kwargs)[source]
    -

    Bases: evennia.typeclasses.attributes.IAttribute, evennia.utils.idmapper.models.SharedMemoryModel

    -

    This attribute is stored via Django. Most Attributes will be using this class.

    db_key
    @@ -237,6 +137,41 @@ object the first time, the query is executed.

    object the first time, the query is executed.

    +
    +
    +locks[source]
    +
    + +
    +
    +property key
    +
    + +
    +
    +property strvalue
    +
    + +
    +
    +property category
    +
    + +
    +
    +property model
    +
    + +
    +
    +property attrtype
    +
    + +
    +
    +property date_created
    +
    +
    property lock_storage
    @@ -251,6 +186,29 @@ as storing a dbobj which is then deleted elsewhere) out-of-sync. The overhead of unpickling seems hard to avoid.

    +
    +
    +access(accessing_obj, access_type='attrread', default=False, **kwargs)[source]
    +

    Determines if another object has permission to access.

    +
    +
    Parameters
    +
      +
    • accessing_obj (object) – Entity trying to access this one.

    • +
    • access_type (str, optional) – Type of access sought, see +the lock documentation.

    • +
    • default (bool, optional) – What result to return if no lock +of access_type was found. The default, False, means a lockdown +policy, only allowing explicit access.

    • +
    • kwargs (any, optional) – Not used; here to make the API consistent with +other access calls.

    • +
    +
    +
    Returns
    +

    result (bool) – If the lock was passed or not.

    +
    +
    +
    +
    exception DoesNotExist
    @@ -279,18 +237,6 @@ instances.

    class built by **create_forward_many_to_many_manager()** defined below.

    -
    -
    -property attrtype
    -

    A wrapper for getting database field db_attrtype.

    -
    - -
    -
    -property category
    -

    A wrapper for getting database field db_category.

    -
    -
    channeldb_set
    @@ -307,12 +253,6 @@ instances.

    class built by **create_forward_many_to_many_manager()** defined below.

    -
    -
    -property date_created
    -

    A wrapper for getting database field db_date_created.

    -
    -
    get_next_by_db_date_created(*, field=<django.db.models.fields.DateTimeField: db_date_created>, is_next=True, **kwargs)
    @@ -330,18 +270,6 @@ class built by **create_forward_many_to_many_manager()** define object the first time, the query is executed.

    -
    -
    -property key
    -

    A wrapper for getting database field db_key.

    -
    - -
    -
    -property model
    -

    A wrapper for getting database field db_model.

    -
    -
    objectdb_set
    @@ -379,12 +307,6 @@ instances.

    class built by **create_forward_many_to_many_manager()** defined below.

    -
    -
    -property strvalue
    -

    A wrapper for getting database field db_strvalue.

    -
    -
    typename = 'SharedMemoryModelBase'
    @@ -392,544 +314,21 @@ class built by **create_forward_many_to_many_manager()** define
    -
    -
    -class evennia.typeclasses.attributes.IAttributeBackend(handler, attrtype)[source]
    -

    Bases: object

    -

    Abstract interface for the backends used by the Attribute Handler.

    -

    All Backends must implement this base class.

    -
    -
    -__init__(handler, attrtype)[source]
    -

    Initialize self. See help(type(self)) for accurate signature.

    -
    - -
    -
    -query_all()[source]
    -

    Fetch all Attributes from this object.

    -
    -
    Returns
    -

    attrlist (list) – A list of Attribute objects.

    -
    -
    -
    - -
    -
    -query_key(key, category)[source]
    -
    -
    Parameters
    -
      -
    • key (str) – The key of the Attribute being searched for.

    • -
    • category (str or None) – The category of the desired Attribute.

    • -
    -
    -
    Returns
    -

    attribute (IAttribute) – A single Attribute.

    -
    -
    -
    - -
    -
    -query_category(category)[source]
    -

    Returns every matching Attribute as a list, given a category.

    -

    This method calls up whatever storage the backend uses.

    -
    -
    Parameters
    -

    category (str or None) – The category to query.

    -
    -
    Returns
    -

    attrs (list) – The discovered Attributes.

    -
    -
    -
    - -
    -
    -get(key=None, category=None)[source]
    -

    Frontend for .get_cache. Retrieves Attribute(s).

    -
    -
    Parameters
    -
      -
    • key (str, optional) – Attribute key to query for

    • -
    • category (str, optional) – Attribiute category

    • -
    -
    -
    Returns
    -

    args (list)

    -
    -
    Returns a list of zero or more matches

    found from cache or database.

    -
    -
    -

    -
    -
    -
    - -
    -
    -reset_cache()[source]
    -

    Reset cache from the outside.

    -
    - -
    -
    -do_create_attribute(key, category, lockstring, value, strvalue)[source]
    -

    Does the hard work of actually creating Attributes, whatever is needed.

    -
    -
    Parameters
    -
      -
    • key (str) – The Attribute’s key.

    • -
    • category (str or None) – The Attribute’s category, or None

    • -
    • lockstring (str) – Any locks for the Attribute.

    • -
    • value (obj) – The Value of the Attribute.

    • -
    • strvalue (bool) – Signifies if this is a strvalue Attribute. Value MUST be a string or -this will lead to Trouble. Ignored for InMemory attributes.

    • -
    -
    -
    Returns
    -

    attr (IAttribute) – The new Attribute.

    -
    -
    -
    - -
    -
    -create_attribute(key, category, lockstring, value, strvalue=False, cache=True)[source]
    -

    Creates Attribute (using the class specified for the backend), (optionally) caches it, and returns it.

    -

    This MUST actively save the Attribute to whatever database backend is used, AND -call self.set_cache(key, category, new_attrobj)

    -
    -
    Parameters
    -
      -
    • key (str) – The Attribute’s key.

    • -
    • category (str or None) – The Attribute’s category, or None

    • -
    • lockstring (str) – Any locks for the Attribute.

    • -
    • value (obj) – The Value of the Attribute.

    • -
    • strvalue (bool) – Signifies if this is a strvalue Attribute. Value MUST be a string or -this will lead to Trouble. Ignored for InMemory attributes.

    • -
    • cache (bool) – Whether to cache the new Attribute

    • -
    -
    -
    Returns
    -

    attr (IAttribute) – The new Attribute.

    -
    -
    -
    - -
    -
    -do_update_attribute(attr, value)[source]
    -

    Simply sets a new Value to an Attribute.

    -
    -
    Parameters
    -
      -
    • attr (IAttribute) – The Attribute being changed.

    • -
    • value (obj) – The Value for the Attribute.

    • -
    -
    -
    -
    - -
    -
    -do_batch_update_attribute(attr_obj, category, lock_storage, new_value, strvalue)[source]
    -

    Called opnly by batch add. For the database backend, this is a method -of updating that can alter category and lock-storage.

    -
    -
    Parameters
    -
      -
    • attr_obj (IAttribute) – The Attribute being altered.

    • -
    • category (str or None) – The attribute’s (new) category.

    • -
    • lock_storage (str) – The attribute’s new locks.

    • -
    • new_value (obj) – The Attribute’s new value.

    • -
    • strvalue (bool) – Signifies if this is a strvalue Attribute. Value MUST be a string or -this will lead to Trouble. Ignored for InMemory attributes.

    • -
    -
    -
    -
    - -
    -
    -do_batch_finish(attr_objs)[source]
    -

    Called after batch_add completed. Used for handling database operations -and/or caching complications.

    -
    -
    Parameters
    -

    attr_objs (list of IAttribute) – The Attributes created/updated thus far.

    -
    -
    -
    - -
    -
    -batch_add(*args, **kwargs)[source]
    -

    Batch-version of .add(). This is more efficient than repeat-calling -.add when having many Attributes to add.

    -
    -
    Parameters
    -

    *args (tuple) –

    Tuples of varying length representing the -Attribute to add to this object. Supported tuples are

    -
      -
    • (key, value)

    • -
    • (key, value, category)

    • -
    • (key, value, category, lockstring)

    • -
    • (key, value, category, lockstring, default_access)

    • -
    -

    -
    -
    Raises
    -

    RuntimeError – If trying to pass a non-iterable as argument.

    -
    -
    -

    Notes

    -

    The indata tuple order matters, so if you want a lockstring but no -category, set the category to None. This method does not have the -ability to check editing permissions and is mainly used internally. -It does not use the normal self.add but applies the Attributes -directly to the database.

    -
    - -
    -
    -do_delete_attribute(attr)[source]
    -

    Does the hard work of actually deleting things.

    -
    -
    Parameters
    -

    attr (IAttribute) – The attribute to delete.

    -
    -
    -
    - -
    -
    -delete_attribute(attr)[source]
    -

    Given an Attribute, deletes it. Also remove it from cache.

    -
    -
    Parameters
    -

    attr (IAttribute) – The attribute to delete.

    -
    -
    -
    - -
    -
    -update_attribute(attr, value)[source]
    -

    Simply updates an Attribute.

    -
    -
    Parameters
    -
      -
    • attr (IAttribute) – The attribute to delete.

    • -
    • value (obj) – The new value.

    • -
    -
    -
    -
    - -
    -
    -do_batch_delete(attribute_list)[source]
    -

    Given a list of attributes, deletes them all. -The default implementation is fine, but this is overridable since some databases may allow -for a better method.

    -
    -
    Parameters
    -

    attribute_list (list of IAttribute) –

    -
    -
    -
    - -
    -
    -clear_attributes(category, accessing_obj, default_access)[source]
    -

    Remove all Attributes on this object.

    -
    -
    Parameters
    -
      -
    • category (str, optional) – If given, clear only Attributes -of this category.

    • -
    • accessing_obj (object, optional) – If given, check the -attredit lock on each Attribute before continuing.

    • -
    • default_access (bool, optional) – Use this permission as -fallback if access_obj is given but there is no lock of -type attredit on the Attribute in question.

    • -
    -
    -
    -
    - -
    -
    -get_all_attributes()[source]
    -

    Simply returns all Attributes of this object, sorted by their IDs.

    -
    -
    Returns
    -

    attributes (list of IAttribute)

    -
    -
    -
    - -
    - -
    -
    -class evennia.typeclasses.attributes.InMemoryAttributeBackend(handler, attrtype)[source]
    -

    Bases: evennia.typeclasses.attributes.IAttributeBackend

    -

    This Backend for Attributes stores NOTHING in the database. Everything is kept in memory, and normally lost -on a crash, reload, shared memory flush, etc. It generates IDs for the Attributes it manages, but these are -of little importance beyond sorting and satisfying the caching logic to know an Attribute hasn’t been -deleted out from under the cache’s nose.

    -
    -
    -__init__(handler, attrtype)[source]
    -

    Initialize self. See help(type(self)) for accurate signature.

    -
    - -
    -
    -query_all()[source]
    -

    Fetch all Attributes from this object.

    -
    -
    Returns
    -

    attrlist (list) – A list of Attribute objects.

    -
    -
    -
    - -
    -
    -query_key(key, category)[source]
    -
    -
    Parameters
    -
      -
    • key (str) – The key of the Attribute being searched for.

    • -
    • category (str or None) – The category of the desired Attribute.

    • -
    -
    -
    Returns
    -

    attribute (IAttribute) – A single Attribute.

    -
    -
    -
    - -
    -
    -query_category(category)[source]
    -

    Returns every matching Attribute as a list, given a category.

    -

    This method calls up whatever storage the backend uses.

    -
    -
    Parameters
    -

    category (str or None) – The category to query.

    -
    -
    Returns
    -

    attrs (list) – The discovered Attributes.

    -
    -
    -
    - -
    -
    -do_create_attribute(key, category, lockstring, value, strvalue)[source]
    -

    See parent class.

    -

    strvalue has no meaning for InMemory attributes.

    -
    - -
    -
    -do_update_attribute(attr, value)[source]
    -

    Simply sets a new Value to an Attribute.

    -
    -
    Parameters
    -
      -
    • attr (IAttribute) – The Attribute being changed.

    • -
    • value (obj) – The Value for the Attribute.

    • -
    -
    -
    -
    - -
    -
    -do_batch_update_attribute(attr_obj, category, lock_storage, new_value, strvalue)[source]
    -

    No need to bother saving anything. Just set some values.

    -
    - -
    -
    -do_batch_finish(attr_objs)[source]
    -

    Nothing to do here for In-Memory.

    -
    -
    Parameters
    -

    attr_objs (list of IAttribute) – The Attributes created/updated thus far.

    -
    -
    -
    - -
    -
    -do_delete_attribute(attr)[source]
    -

    Removes the Attribute from local storage. Once it’s out of the cache, garbage collection will handle the rest.

    -
    -
    Parameters
    -

    attr (IAttribute) – The attribute to delete.

    -
    -
    -
    - -
    - -
    -
    -class evennia.typeclasses.attributes.ModelAttributeBackend(handler, attrtype)[source]
    -

    Bases: evennia.typeclasses.attributes.IAttributeBackend

    -

    Uses Django models for storing Attributes.

    -
    -
    -__init__(handler, attrtype)[source]
    -

    Initialize self. See help(type(self)) for accurate signature.

    -
    - -
    -
    -query_all()[source]
    -

    Fetch all Attributes from this object.

    -
    -
    Returns
    -

    attrlist (list) – A list of Attribute objects.

    -
    -
    -
    - -
    -
    -query_key(key, category)[source]
    -
    -
    Parameters
    -
      -
    • key (str) – The key of the Attribute being searched for.

    • -
    • category (str or None) – The category of the desired Attribute.

    • -
    -
    -
    Returns
    -

    attribute (IAttribute) – A single Attribute.

    -
    -
    -
    - -
    -
    -query_category(category)[source]
    -

    Returns every matching Attribute as a list, given a category.

    -

    This method calls up whatever storage the backend uses.

    -
    -
    Parameters
    -

    category (str or None) – The category to query.

    -
    -
    Returns
    -

    attrs (list) – The discovered Attributes.

    -
    -
    -
    - -
    -
    -do_create_attribute(key, category, lockstring, value, strvalue)[source]
    -

    Does the hard work of actually creating Attributes, whatever is needed.

    -
    -
    Parameters
    -
      -
    • key (str) – The Attribute’s key.

    • -
    • category (str or None) – The Attribute’s category, or None

    • -
    • lockstring (str) – Any locks for the Attribute.

    • -
    • value (obj) – The Value of the Attribute.

    • -
    • strvalue (bool) – Signifies if this is a strvalue Attribute. Value MUST be a string or -this will lead to Trouble. Ignored for InMemory attributes.

    • -
    -
    -
    Returns
    -

    attr (IAttribute) – The new Attribute.

    -
    -
    -
    - -
    -
    -do_update_attribute(attr, value)[source]
    -

    Simply sets a new Value to an Attribute.

    -
    -
    Parameters
    -
      -
    • attr (IAttribute) – The Attribute being changed.

    • -
    • value (obj) – The Value for the Attribute.

    • -
    -
    -
    -
    - -
    -
    -do_batch_update_attribute(attr_obj, category, lock_storage, new_value, strvalue)[source]
    -

    Called opnly by batch add. For the database backend, this is a method -of updating that can alter category and lock-storage.

    -
    -
    Parameters
    -
      -
    • attr_obj (IAttribute) – The Attribute being altered.

    • -
    • category (str or None) – The attribute’s (new) category.

    • -
    • lock_storage (str) – The attribute’s new locks.

    • -
    • new_value (obj) – The Attribute’s new value.

    • -
    • strvalue (bool) – Signifies if this is a strvalue Attribute. Value MUST be a string or -this will lead to Trouble. Ignored for InMemory attributes.

    • -
    -
    -
    -
    - -
    -
    -do_batch_finish(attr_objs)[source]
    -

    Called after batch_add completed. Used for handling database operations -and/or caching complications.

    -
    -
    Parameters
    -

    attr_objs (list of IAttribute) – The Attributes created/updated thus far.

    -
    -
    -
    - -
    -
    -do_delete_attribute(attr)[source]
    -

    Does the hard work of actually deleting things.

    -
    -
    Parameters
    -

    attr (IAttribute) – The attribute to delete.

    -
    -
    -
    - -
    -
    -class evennia.typeclasses.attributes.AttributeHandler(obj, backend_class)[source]
    +class evennia.typeclasses.attributes.AttributeHandler(obj)[source]

    Bases: object

    Handler for adding Attributes to the object.

    -__init__(obj, backend_class)[source]
    -

    Setup the AttributeHandler.

    -
    -
    Parameters
    -
      -
    • obj (TypedObject) – An Account, Object, Channel, ServerSession (not technically a typed object), etc.

    • -
    • backend_class (IAttributeBackend class) – The class of the backend to use.

    • -
    -
    -
    +__init__(obj)[source] +

    Initialize handler.

    +
    + +
    +
    +reset_cache()[source]
    +

    Reset cache from the outside.

    @@ -1044,12 +443,14 @@ repeat-calling add when having many Attributes to add.

    *args (tuple) –

    Each argument should be a tuples (can be of varying length) representing the Attribute to add to this object. Supported tuples are

    -
      -
    • (key, value)

    • -
    • (key, value, category)

    • -
    • (key, value, category, lockstring)

    • -
    • (key, value, category, lockstring, default_access)

    • +
      +
        +
      • (key, value)

      • +
      • (key, value, category)

      • +
      • (key, value, category, lockstring)

      • +
      • (key, value, category, lockstring, default_access)

      +

    Keyword Arguments
    @@ -1148,34 +549,6 @@ Attributes has no lock of type attrread defined on them.

    -
    -
    -reset_cache()[source]
    -
    - -
    - -
    -
    -class evennia.typeclasses.attributes.DbHolder(obj, name, manager_name='attributes')[source]
    -

    Bases: object

    -

    Holder for allowing property access of attributes

    -
    -
    -__init__(obj, name, manager_name='attributes')[source]
    -

    Initialize self. See help(type(self)) for accurate signature.

    -
    - -
    -
    -get_all()[source]
    -
    - -
    -
    -property all
    -
    -
    @@ -1197,15 +570,17 @@ matched by the in_template.

    Returns
    -

    regex (regex) – Regex to match against strings -template (str): Template with markers **{arg1}, {arg2}**, etc for -replacement using the standard .format method.

    +

    (regex, str)

    +
    +
    Regex to match against strings and a template

    Template with markers {arg1}, {arg2}, etc for +replacement using the standard .format method.

    +
    +
    +

    Raises
    -
      -
    • evennia.typecalasses.attributes.NickTemplateInvalid – If the in/out

    • -
    • template does not have a matching number of $args.

    • -
    +

    attributes.NickTemplateInvalid – If the in/out template does not have a matching +number of $args.

    @@ -1238,15 +613,7 @@ They also always use the strvalue fields for their data.

    __init__(*args, **kwargs)[source]
    -

    Setup the AttributeHandler.

    -
    -
    Parameters
    -
      -
    • obj (TypedObject) – An Account, Object, Channel, ServerSession (not technically a typed object), etc.

    • -
    • backend_class (IAttributeBackend class) – The class of the backend to use.

    • -
    -
    -
    +

    Initialize handler.

    @@ -1359,6 +726,102 @@ with nicks stored on the Account level.

    +
    +
    +class evennia.typeclasses.attributes.NAttributeHandler(obj)[source]
    +

    Bases: object

    +

    This stand-alone handler manages non-database saving. +It is similar to AttributeHandler and is used +by the .ndb handler in the same way as .db does +for the AttributeHandler.

    +
    +
    +__init__(obj)[source]
    +

    Initialized on the object

    +
    + +
    +
    +has(key)[source]
    +

    Check if object has this attribute or not.

    +
    +
    Parameters
    +

    key (str) – The Nattribute key to check.

    +
    +
    Returns
    +

    has_nattribute (bool) – If Nattribute is set or not.

    +
    +
    +
    + +
    +
    +get(key)[source]
    +

    Get the named key value.

    +
    +
    Parameters
    +

    key (str) – The Nattribute key to get.

    +
    +
    Returns
    +

    the value of the Nattribute.

    +
    +
    +
    + +
    +
    +add(key, value)[source]
    +

    Add new key and value.

    +
    +
    Parameters
    +
      +
    • key (str) – The name of Nattribute to add.

    • +
    • value (any) – The value to store.

    • +
    +
    +
    +
    + +
    +
    +remove(key)[source]
    +

    Remove Nattribute from storage.

    +
    +
    Parameters
    +

    key (str) – The name of the Nattribute to remove.

    +
    +
    +
    + +
    +
    +clear()[source]
    +

    Remove all NAttributes from handler.

    +
    + +
    +
    +all(return_tuples=False)[source]
    +

    List the contents of the handler.

    +
    +
    Parameters
    +

    return_tuples (bool, optional) – Defines if the Nattributes +are returns as a list of keys or as a list of (key, value).

    +
    +
    Returns
    +

    nattributes (list)

    +
    +
    A list of keys [key, key, …] or a

    list of tuples [(key, value), …] depending on the +setting of return_tuples.

    +
    +
    +

    +
    +
    +
    + +
    + @@ -1394,6 +857,7 @@ with nicks stored on the Account level.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.typeclasses.html b/docs/0.9.5/api/evennia.typeclasses.html index b2f3b7517a..c52ab5bae9 100644 --- a/docs/0.9.5/api/evennia.typeclasses.html +++ b/docs/0.9.5/api/evennia.typeclasses.html @@ -88,6 +88,7 @@ Attribute and Tag models are defined along with their handlers.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.typeclasses.managers.html b/docs/0.9.5/api/evennia.typeclasses.managers.html index ea58142f85..a269f637c9 100644 --- a/docs/0.9.5/api/evennia.typeclasses.managers.html +++ b/docs/0.9.5/api/evennia.typeclasses.managers.html @@ -49,13 +49,15 @@ all Attributes and TypedObjects).

    get_attribute(key=None, category=None, value=None, strvalue=None, obj=None, attrtype=None, **kwargs)[source]
    -

    Return Attribute objects by key, by category, by value, by strvalue, by -object (it is stored on) or with a combination of those criteria.

    +

    Return Attribute objects by key, by category, by value, by +strvalue, by object (it is stored on) or with a combination of +those criteria.

    Parameters
      -
    • key (str, optional) – The attribute’s key to search for

    • -
    • category (str, optional) – The category of the attribute(s) to search for.

    • +
    • key (str, optional) – The attribute’s key to search for.

    • +
    • category (str, optional) – The category of the attribute(s) +to search for.

    • value (str, optional) – The attribute value to search for. Note that this is not a very efficient operation since it will query for a pickled entity. Mutually exclusive to @@ -66,14 +68,14 @@ mutually exclusive to the value keyword and will take precedence if given.

    • obj (Object, optional) – On which object the Attribute to search for is.

    • -
    • attrype (str, optional) – An attribute-type to search for. +

    • attrtype (str, optional) – An attribute-type to search for. By default this is either None (normal Attributes) or “nick”.

    • -
    • **kwargs (any) – Currently unused. Reserved for future use.

    • +
    • kwargs (any) – Currently unused. Reserved for future use.

    Returns
    -

    list – The matching Attributes.

    +

    attributes (list) – The matching Attributes.

    @@ -165,7 +167,7 @@ stored on) or with a combination of those criteria.

    to search for.

  • obj (Object, optional) – On which object the Tag to search for is.

  • -
  • tagtype (str, optional) – One of None (normal tags), +

  • tagtype (str, optional) – One of None (normal tags), “alias” or “permission”

  • global_search (bool, optional) – Include all possible tags, not just tags on this object

  • @@ -480,6 +482,7 @@ Mutually exclusive to include_children.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.typeclasses.models.html b/docs/0.9.5/api/evennia.typeclasses.models.html index 8202074ccb..17dbb6b583 100644 --- a/docs/0.9.5/api/evennia.typeclasses.models.html +++ b/docs/0.9.5/api/evennia.typeclasses.models.html @@ -59,6 +59,7 @@ The admin should usually not have to deal directly with the database object layer.

    This module also contains the Managers for the respective models; inherit from these to create custom managers.

    +
    class evennia.typeclasses.models.TypedObject(*args, **kwargs)[source]
    @@ -157,10 +158,10 @@ a class based on the db_typeclass_path database field rather than use the one in the model.

    Parameters
    -

    through to parent. (Passed) –

    -
    -
    Keyword Arguments
    -

    through to parent. (Passed) –

    +
      +
    • *args – Passed through to parent.

    • +
    • **kwargs – Passed through to parent.

    • +

    Notes

    @@ -366,7 +367,7 @@ superuser lock bypass (be careful with this one).

    Keyword Arguments
    -

    kwar (any) – Ignored, but is there to make the api +

    kwargs (any) – Ignored, but is there to make the api consistent with the object-typeclass method access, which use it to feed to its hook methods.

    @@ -399,30 +400,36 @@ without involving any locks.

    property db

    Attribute handler wrapper. Allows for the syntax

    obj.db.attrname = value
    -# and
    +  and
     value = obj.db.attrname
    -# and
    +  and
     del obj.db.attrname
    -# and
    +  and
     all_attr = obj.db.all()
    -# (unless there is an attribute
    -#  named 'all', in which case that will be returned instead).
     
    +

    (unless there is an attribute named ‘all’, in which case that will be +returned instead).

    property ndb
    -

    NonDataBase). Everything stored -to this is guaranteed to be cleared when a server is shutdown. -Syntax is same as for the _get_db_holder() method and -property, e.g. obj.ndb.attr = value etc.

    -
    -
    Type
    -

    A non-attr_obj store (ndb

    -
    -
    +

    A non-attr_obj store (NonDataBase). Everything stored to this is +guaranteed to be cleared when a server is shutdown. Syntax is same as +for the .db property, e.g.

    +
    obj.ndb.attrname = value
    +  and
    +value = obj.ndb.attrname
    +  and
    +del obj.ndb.attrname
    +  and
    +all_attr = obj.ndb.all()
    +
    +
    +

    What makes this preferable over just assigning properties directly on +the object is that Evennia can track caching for these properties and +for example avoid wiping objects with set .ndb data on cache flushes.

    @@ -509,22 +516,27 @@ at/getting information for this object.

    classmethod web_get_create_url()[source]

    Returns the URI path for a View that allows users to create new instances of this object.

    -

    ex. Chargen = ‘/characters/create/’

    -

    For this to work, the developer must have defined a named view somewhere -in urls.py that follows the format ‘modelname-action’, so in this case -a named view of ‘character-create’ would be referenced by this method.

    -

    ex. -url(r’characters/create/’, ChargenView.as_view(), name=’character-create’)

    -

    If no View has been created and defined in urls.py, returns an -HTML anchor.

    -

    This method is naive and simply returns a path. Securing access to -the actual view and limiting who can create new objects is the -developer’s responsibility.

    Returns

    path (str) – URI path to object creation page, if defined.

    +

    Examples

    +
    Chargen = '/characters/create/'
    +
    +
    +

    For this to work, the developer must have defined a named view somewhere +in urls.py that follows the format ‘modelname-action’, so in this case +a named view of ‘character-create’ would be referenced by this method.

    +
    url(r'characters/create/', ChargenView.as_view(), name='character-create')
    +
    +
    +

    If no View has been created and defined in urls.py, returns an +HTML anchor.

    +

    Notes

    +

    This method is naive and simply returns a path. Securing access to +the actual view and limiting who can create new objects is the +developer’s responsibility.

    @@ -544,12 +556,12 @@ this object.

    For this to work, the developer must have defined a named view somewhere in urls.py that follows the format ‘modelname-action’, so in this case a named view of ‘character-detail’ would be referenced by this method.

    -
    url(r'characters/(?P<slug>[\w\d\-]+)/(?P<pk>[0-9]+)/$',
    -    CharDetailView.as_view(), name='character-detail')
    +
    CharDetailView.as_view(), name='character-detail')
     

    If no View has been created and defined in urls.py, returns an HTML anchor.

    +

    Notes

    This method is naive and simply returns a path. Securing access to the actual view and limiting who can view this object is the developer’s responsibility.

    @@ -562,7 +574,7 @@ developer’s responsibility.

    object.

    Returns
    -

    str – URI path to object puppet page, if defined.

    +

    path (str) – URI path to object puppet page, if defined.

    Examples

    @@ -578,6 +590,7 @@ a named view of ‘character-puppet’ would be referenced by this method.

    If no View has been created and defined in urls.py, returns an HTML anchor.

    +

    Notes

    This method is naive and simply returns a path. Securing access to the actual view and limiting who can view this object is the developer’s responsibility.

    @@ -590,7 +603,7 @@ responsibility.

    object.

    Returns
    -

    str – URI path to object update page, if defined.

    +

    path (str) – URI path to object update page, if defined.

    Examples

    @@ -606,6 +619,7 @@ a named view of ‘character-update’ would be referenced by this method.

    If no View has been created and defined in urls.py, returns an HTML anchor.

    +

    Notes

    This method is naive and simply returns a path. Securing access to the actual view and limiting who can modify objects is the developer’s responsibility.

    @@ -624,19 +638,19 @@ responsibility.

    Oscar (Character) = '/characters/oscar/1/delete/'
     
    -

    For this to work, the developer must have defined a named view -somewhere in urls.py that follows the format ‘modelname-action’, so -in this case a named view of ‘character-detail’ would be referenced -by this method.

    +

    For this to work, the developer must have defined a named view somewhere +in urls.py that follows the format ‘modelname-action’, so in this case +a named view of ‘character-detail’ would be referenced by this method.

    url(r'characters/(?P<slug>[\w\d\-]+)/(?P<pk>[0-9]+)/delete/$',
         CharDeleteView.as_view(), name='character-delete')
     
    -

    If no View has been created and defined in urls.py, returns an HTML -anchor.

    +

    If no View has been created and defined in urls.py, returns an +HTML anchor.

    +

    Notes

    This method is naive and simply returns a path. Securing access to -the actual view and limiting who can delete this object is the -developer’s responsibility.

    +the actual view and limiting who can delete this object is the developer’s +responsibility.

    @@ -662,12 +676,12 @@ this object.

    For this to work, the developer must have defined a named view somewhere in urls.py that follows the format ‘modelname-action’, so in this case a named view of ‘character-detail’ would be referenced by this method.

    -
    url(r'characters/(?P<slug>[\w\d\-]+)/(?P<pk>[0-9]+)/$',
    -    CharDetailView.as_view(), name='character-detail')
    +
    CharDetailView.as_view(), name='character-detail')
     

    If no View has been created and defined in urls.py, returns an HTML anchor.

    +

    Notes

    This method is naive and simply returns a path. Securing access to the actual view and limiting who can view this object is the developer’s responsibility.

    @@ -742,6 +756,7 @@ developer’s responsibility.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.typeclasses.tags.html b/docs/0.9.5/api/evennia.typeclasses.tags.html index afdb07b2a4..7a7bd52397 100644 --- a/docs/0.9.5/api/evennia.typeclasses.tags.html +++ b/docs/0.9.5/api/evennia.typeclasses.tags.html @@ -269,33 +269,6 @@ existing Tag object, this will be re-used and no new Tag will be created.

    -
    -
    -has(tag=None, category=None, return_list=False)[source]
    -

    Checks if the given Tag (or list of Tags) exists on the object.

    -
    -
    Parameters
    -
      -
    • tag (str or iterable) – The Tag key or tags to check for. -If None, search by category.

    • -
    • category (str, optional) – Limit the check to Tags with this -category (note, that None is the default category).

    • -
    -
    -
    Returns
    -

    has_tag (bool or list)

    -
    -
    If the Tag exists on this object or not.

    If tag was given as an iterable then the return is a list of booleans.

    -
    -
    -

    -
    -
    Raises
    -

    ValueError – If neither tag nor category is given.

    -
    -
    -
    -
    get(key=None, default=None, category=None, return_tagobj=False, return_list=False)[source]
    @@ -452,6 +425,7 @@ of a latter tuple with the same category).

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.utils.ansi.html b/docs/0.9.5/api/evennia.utils.ansi.html index 37ceb1c413..9ffa28b9ac 100644 --- a/docs/0.9.5/api/evennia.utils.ansi.html +++ b/docs/0.9.5/api/evennia.utils.ansi.html @@ -39,57 +39,16 @@

    evennia.utils.ansi

    ANSI - Gives colour to text.

    -

    Use the codes defined in the ANSIParser class to apply colour to text. The -parse_ansi function in this module parses text for markup and strip_ansi -removes it.

    -

    You should usually not need to call parse_ansi explicitly; it is run by -Evennia just before returning data to/from the user. Alternative markup is -possible by overriding the parser class (see also contrib/ for deprecated -markup schemes).

    -

    Supported standards:

    -
      -
    • ANSI 8 bright and 8 dark fg (foreground) colors

    • -
    • ANSI 8 dark bg (background) colors

    • -
    • ‘ANSI’ 8 bright bg colors ‘faked’ with xterm256 (bright bg not included in ANSI standard)

    • -
    • Xterm256 - 255 fg/bg colors + 26 greyscale fg/bg colors

    • -
    -
    -

    Markup

    -

    ANSI colors: r ed, g reen, y ellow, b lue, m agenta, c yan, n ormal (no color). Capital -letters indicate the ‘dark’ variant.

    -
      -
    • |r fg bright red

    • -
    • |R fg dark red

    • -
    • |[r bg bright red

    • -
    • |[R bg dark red

    • -
    • |[R|g bg dark red, fg bright green

    • -
    +

    Use the codes defined in ANSIPARSER in your text +to apply colour to text according to the ANSI standard.

    +

    Examples:

    "This is |rRed text|n and this is normal again."
     
    -

    Xterm256 colors are given as RGB (Red-Green-Blue), with values 0-5:

    -
      -
    • |500 fg bright red

    • -
    • |050 fg bright green

    • -
    • |005 fg bright blue

    • -
    • |110 fg dark brown

    • -
    • |425 fg pink

    • -
    • |[431 bg orange

    • -
    -

    Xterm256 greyscale:

    -
      -
    • |=a fg black

    • -
    • |=g fg dark grey

    • -
    • |=o fg middle grey

    • -
    • |=v fg bright grey

    • -
    • |=z fg white

    • -
    • |[=r bg middle grey

    • -
    -
    "This is |500Red text|n and this is normal again."
    -"This is |[=jText on dark grey background"
    -
    -
    -
    +

    Mostly you should not need to call parse_ansi() explicitly; +it is run by Evennia just before returning data to/from the +user. Depreciated example forms are available by extending +the ansi mapping.

    class evennia.utils.ansi.ANSIParser[source]
    @@ -97,7 +56,7 @@ letters indicate the ‘dark’ variant.

    A class that parses ANSI markup to ANSI command sequences

    We also allow to escape colour codes -by prepending with an extra |.

    +by prepending with an extra |.

    ansi_map = [('|n', '\x1b[0m'), ('|/', '\r\n'), ('|-', '\t'), ('|>', ' '), ('|_', ' '), ('|*', '\x1b[7m'), ('|^', '\x1b[5m'), ('|u', '\x1b[4m'), ('|r', '\x1b[1m\x1b[31m'), ('|g', '\x1b[1m\x1b[32m'), ('|y', '\x1b[1m\x1b[33m'), ('|b', '\x1b[1m\x1b[34m'), ('|m', '\x1b[1m\x1b[35m'), ('|c', '\x1b[1m\x1b[36m'), ('|w', '\x1b[1m\x1b[37m'), ('|x', '\x1b[1m\x1b[30m'), ('|R', '\x1b[22m\x1b[31m'), ('|G', '\x1b[22m\x1b[32m'), ('|Y', '\x1b[22m\x1b[33m'), ('|B', '\x1b[22m\x1b[34m'), ('|M', '\x1b[22m\x1b[35m'), ('|C', '\x1b[22m\x1b[36m'), ('|W', '\x1b[22m\x1b[37m'), ('|X', '\x1b[22m\x1b[30m'), ('|h', '\x1b[1m'), ('|H', '\x1b[22m'), ('|!R', '\x1b[31m'), ('|!G', '\x1b[32m'), ('|!Y', '\x1b[33m'), ('|!B', '\x1b[34m'), ('|!M', '\x1b[35m'), ('|!C', '\x1b[36m'), ('|!W', '\x1b[37m'), ('|!X', '\x1b[30m'), ('|[R', '\x1b[41m'), ('|[G', '\x1b[42m'), ('|[Y', '\x1b[43m'), ('|[B', '\x1b[44m'), ('|[M', '\x1b[45m'), ('|[C', '\x1b[46m'), ('|[W', '\x1b[47m'), ('|[X', '\x1b[40m')]
    @@ -885,7 +844,6 @@ with.

    -
    @@ -908,14 +866,6 @@ with.

    -

    Table of Contents

    - -
    +
    diff --git a/docs/0.9.5/api/evennia.utils.batchprocessors.html b/docs/0.9.5/api/evennia.utils.batchprocessors.html index 7d9c599fae..de79951d7b 100644 --- a/docs/0.9.5/api/evennia.utils.batchprocessors.html +++ b/docs/0.9.5/api/evennia.utils.batchprocessors.html @@ -39,21 +39,23 @@

    evennia.utils.batchprocessors

    This module contains the core methods for the Batch-command- and -Batch-code-processors respectively. In short, these are two different ways to -build a game world using a normal text-editor without having to do so ‘on the -fly’ in-game. They also serve as an automatic backup so you can quickly -recreate a world also after a server reset. The functions in this module is -meant to form the backbone of a system called and accessed through game -commands.

    -

    The Batch-command processor is the simplest. It simply runs a list of in-game -commands in sequence by reading them from a text file. The advantage of this is -that the builder only need to remember the normal in-game commands. They are -also executing with full permission checks etc, making it relatively safe for -builders to use. The drawback is that in-game there is really a -builder-character walking around building things, and it can be important to -create rooms and objects in the right order, so the character can move between -them. Also objects that affects players (such as mobs, dark rooms etc) will -affect the building character too, requiring extra care to turn off/on.

    +Batch-code-processors respectively. In short, these are two different +ways to build a game world using a normal text-editor without having +to do so ‘on the fly’ in-game. They also serve as an automatic backup +so you can quickly recreate a world also after a server reset. The +functions in this module is meant to form the backbone of a system +called and accessed through game commands.

    +

    The Batch-command processor is the simplest. It simply runs a list of +in-game commands in sequence by reading them from a text file. The +advantage of this is that the builder only need to remember the normal +in-game commands. They are also executing with full permission checks +etc, making it relatively safe for builders to use. The drawback is +that in-game there is really a builder-character walking around +building things, and it can be important to create rooms and objects +in the right order, so the character can move between them. Also +objects that affects players (such as mobs, dark rooms etc) will +affect the building character too, requiring extra care to turn +off/on.

    The Batch-code processor is a more advanced system that accepts full Python code, executing in chunks. The advantage of this is much more power; practically anything imaginable can be coded and handled using @@ -66,38 +68,33 @@ etc. You also need to know Python and Evennia’s API. Hence it’s recommended that the batch-code processor is limited only to superusers or highly trusted staff.

    -

    Batch-command processor file syntax

    +

    Batch-Command processor file syntax

    The batch-command processor accepts ‘batchcommand files’ e.g batch.ev, containing a sequence of valid Evennia commands in a simple format. The engine runs each command in sequence, as if they had been run at the game prompt.

    Each Evennia command must be delimited by a line comment to mark its -end.

    -
    look
    -# delimiting comment
    -create/drop box
    -# another required comment
    -
    -
    -

    One can also inject another batchcmdfile:

    -
    #INSERT path.batchcmdfile
    -
    -
    -

    This way entire game worlds can be created and planned offline; it is +end. This way entire game worlds can be created and planned offline; it is especially useful in order to create long room descriptions where a real offline text editor is often much better than any online text editor or prompt.

    -
    -

    Example of batch.ev file:

    +

    There is only one batchcommand-specific entry to use in a batch-command +files (all others are just like in-game commands):

    +
      +
    • #INSERT path.batchcmdfile - this as the first entry on a line will +import and run a batch.ev file in this position, as if it was +written in this file.

    • +
    +

    Example of batch.ev file:

    # batch file
     # all lines starting with # are comments; they also indicate
     # that a command definition is over.
     
    -create box
    +@create box
     
     # this comment ends the @create command.
     
    -set box/desc = A large box.
    +@set box/desc = A large box.
     
     Inside are some scattered piles of clothing.
     
    @@ -110,25 +107,24 @@ editor or prompt.

    # (so two empty lines becomes a new paragraph). -teleport #221 +@teleport #221 # (Assuming #221 is a warehouse or something.) # (remember, this comment ends the @teleport command! Don'f forget it) # Example of importing another file at this point. -#IMPORT examples.batch +#INSERT examples.batch -drop box +@drop box # Done, the box is in the warehouse! (this last comment is not necessary to -# close the drop command since it's the end of the file) +# close the @drop command since it's the end of the file)

    An example batch file is contrib/examples/batch_example.ev.

    -
    -

    Batch-code processor file syntax

    +

    Batch-Code processor file syntax

    The Batch-code processor accepts full python modules (e.g. batch.py) that looks identical to normal Python files. The difference from importing and running any Python module is that the batch-code module @@ -159,17 +155,13 @@ this file.

    Importing works as normal. The following variables are automatically made available in the script namespace.

      -
    • caller - The object executing the batchscript

    • -
    • -
      DEBUG - This is a boolean marking if the batchprocessor is running

      in debug mode. It can be checked to e.g. delete created objects +

    • caller - The object executing the batchscript

    • +
    • DEBUG - This is a boolean marking if the batchprocessor is running +in debug mode. It can be checked to e.g. delete created objects when running a CODE block multiple times during testing. -(avoids creating a slew of same-named db objects)

      -
    • -
      -
    • +(avoids creating a slew of same-named db objects)

    -
    -

    Example batch.py file

    +

    Example batch.py file:

    #HEADER
     
     from django.conf import settings
    @@ -197,6 +189,7 @@ when running a CODE block multiple times during testing.
     script = create.create_script()
     
    +
    evennia.utils.batchprocessors.read_batchfile(pythonpath, file_ending='.py')[source]
    @@ -213,7 +206,7 @@ or .py). The ending should not be included in the python path.

    Returns
    -

    text (str) – The text content of the batch file.

    +

    str – The text content of the batch file.

    Raises

    IOError – If problems reading file.

    @@ -229,22 +222,13 @@ or .py). The ending should not be included in the python path.

    parse_file(pythonpath)[source]
    -

    This parses the lines of a batch-command-file.

    -
    -
    Parameters
    -

    pythonpath (str) – The dot-python path to the file.

    -
    -
    Returns
    -

    list – A list of all parsed commands with arguments, as strings.

    -
    -
    -

    Notes

    -

    Parsing follows the following rules:

    +

    This parses the lines of a batchfile according to the following +rules:

      -
    1. A # at the beginning of a line marks the end of the command before +

    2. # at the beginning of a line marks the end of the command before it. It is also a comment and any number of # can exist on subsequent lines (but not inside comments).

    3. -
    4. #INSERT at the beginning of a line imports another +

    5. #INSERT at the beginning of a line imports another batch-cmd file file and pastes it into the batch file as if it was written there.

    6. Commands are placed alone at the beginning of a line and their @@ -279,28 +263,30 @@ a newline (so two empty lines is a paragraph).

    7. parse_file(pythonpath)[source]
      -

      This parses the lines of a batch-code file

      +

      This parses the lines of a batchfile according to the following +rules:

      Parameters

      pythonpath (str) – The dot-python path to the file.

      Returns
      -

      list

      +

      codeblocks (list)

      -
      A list of all #CODE blocks, each with

      prepended #HEADER block data. If no #CODE -blocks were found, this will be a list of one element -containing all code in the file (so a normal Python file).

      +
      A list of all #CODE blocks, each with

      prepended #HEADER data. If no #CODE blocks were found, +this will be a list of one element.

      Notes

      -

      Parsing is done according to the following rules:

        -
      1. Code before a #CODE/HEADER block are considered part of -the first code/header block or is the ONLY block if no -#CODE/HEADER blocks are defined.

      2. +
      3. +
        Code before a #CODE/HEADER block are considered part of

        the first code/header block or is the ONLY block if no +#CODE/HEADER blocks are defined.

        +
        +
        +
      4. Lines starting with #HEADER starts a header block (ends other blocks)

      5. Lines starting with #CODE begins a code block (ends other blocks)

      6. Lines starting with #INSERT are on form #INSERT filename. Code from @@ -333,7 +319,6 @@ namespace.

      -
    @@ -360,14 +345,8 @@ namespace.

    Table of Contents

    @@ -385,6 +364,7 @@ namespace.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.utils.containers.html b/docs/0.9.5/api/evennia.utils.containers.html index 7381d484f1..b559693850 100644 --- a/docs/0.9.5/api/evennia.utils.containers.html +++ b/docs/0.9.5/api/evennia.utils.containers.html @@ -220,6 +220,7 @@ scripts defined in settings.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.utils.create.html b/docs/0.9.5/api/evennia.utils.create.html index 97aabeefa2..b43cea3f92 100644 --- a/docs/0.9.5/api/evennia.utils.create.html +++ b/docs/0.9.5/api/evennia.utils.create.html @@ -38,15 +38,25 @@

    evennia.utils.create

    -

    This module gathers all the essential database-creation functions for the game -engine’s various object types.

    -

    Only objects created ‘stand-alone’ are in here. E.g. object Attributes are -always created through their respective objects handlers.

    -

    Each creation_* function also has an alias named for the entity being created, -such as create_object() and object(). This is for consistency with the -utils.search module and allows you to do the shorter create.object().

    -

    The respective object managers hold more methods for manipulating and searching -objects already existing in the database.

    +

    This module gathers all the essential database-creation +functions for the game engine’s various object types.

    +

    Only objects created ‘stand-alone’ are in here, e.g. object Attributes +are always created directly through their respective objects.

    +

    Each creation_* function also has an alias named for the entity being +created, such as create_object() and object(). This is for +consistency with the utils.search module and allows you to do the +shorter “create.object()”.

    +

    The respective object managers hold more methods for manipulating and +searching objects already existing in the database.

    +
    +
    Models covered:

    Objects +Scripts +Help +Message +Channel +Accounts

    +
    +
    evennia.utils.create.create_object(typeclass=None, key=None, location=None, home=None, permissions=None, locks=None, aliases=None, tags=None, destination=None, report_to=None, nohome=False, attributes=None, nattributes=None)[source]
    @@ -56,21 +66,25 @@ objects already existing in the database.

    • typeclass (class or str) – Class or python path to a typeclass.

    • key (str) – Name of the new object. If not set, a name of -#dbref will be set.

    • +#dbref will be set.

    • home (Object or str) – Obj or #dbref to use as the object’s home location.

    • permissions (list) – A list of permission strings or tuples (permstring, category).

    • locks (str) – one or more lockstrings, separated by semicolons.

    • aliases (list) – A list of alternative keys or tuples (aliasstring, category).

    • tags (list) – List of tag keys or tuples (tagkey, category) or (tagkey, category, data).

    • -
    • destination (Object or str) – Obj or #dbref to use as an Exit’s target.

    • +
    • destination (Object or str) – Obj or #dbref to use as an Exit’s +target.

    • report_to (Object) – The object to return error messages to.

    • nohome (bool) – This allows the creation of objects without a default home location; only used when creating the default location itself or during unittests.

    • -
    • attributes (list) – Tuples on the form (key, value) or (key, value, category), -(key, value, lockstring) or (key, value, lockstring, default_access). -to set as Attributes on the new object.

    • +
    • attributes (list) –

      Tuples on the form (key, value) or (key, value, category), +(key, value, lockstring) or (key, value, lockstring, default_access).

      +
      +

      to set as Attributes on the new object.

      +
      +

    • nattributes (list) – Non-persistent tuples on the form (key, value). Note that adding this rarely makes sense since this data will not survive a reload.

    @@ -118,8 +132,9 @@ created or if the start method must be called explicitly.

    report_to (Object) – The object to return error messages to.

  • desc (str) – Optional description of script

  • tags (list) – List of tags or tuples (tag, category).

  • -
  • attributes (list) – List if tuples (key, value) or (key, value, category) -(key, value, lockstring) or (key, value, lockstring, default_access).

  • +
  • attributes (list) – List of tuples (key, value), (key, value, category), +(key, value, category, lockstring) or +(key, value, category, lockstring, default_access).

  • Returns
    @@ -290,6 +305,7 @@ operations and is thus not suitable for play-testing the game.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.utils.dbserialize.html b/docs/0.9.5/api/evennia.utils.dbserialize.html index 0a0aea062e..9062fc27b8 100644 --- a/docs/0.9.5/api/evennia.utils.dbserialize.html +++ b/docs/0.9.5/api/evennia.utils.dbserialize.html @@ -87,7 +87,7 @@ will save to when they update. It must have a ‘value’ property that saves assigned data to the database. Skip if not serializing onto a given object. If db_obj is given, this function will convert lists, dicts and sets to their -_SaverList, _SaverDict and _SaverSet counterparts.

    +_SaverList, _SaverDict and _SaverSet counterparts.

    Returns
    @@ -155,6 +155,7 @@ _SaverList, _SaverDict and _SaverSet counterparts.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.utils.eveditor.html b/docs/0.9.5/api/evennia.utils.eveditor.html index b3949805d2..5a241f9d61 100644 --- a/docs/0.9.5/api/evennia.utils.eveditor.html +++ b/docs/0.9.5/api/evennia.utils.eveditor.html @@ -39,43 +39,51 @@

    evennia.utils.eveditor

    EvEditor (Evennia Line Editor)

    -

    This implements an advanced line editor for editing longer texts in-game. The -editor mimics the command mechanisms of the “VI” editor (a famous line-by-line -editor) as far as reasonable.

    +

    This implements an advanced line editor for editing longer texts +in-game. The editor mimics the command mechanisms of the “VI” editor +(a famous line-by-line editor) as far as reasonable.

    Features of the editor:

    -
      +
      +
      • undo/redo.

      • edit/replace on any line of the buffer.

      • search&replace text anywhere in buffer.

      • formatting of buffer, or selection, to certain width + indentations.

      • allow to echo the input or not, depending on your client.

      • -
      • in-built help

      -

      To use the editor, just import EvEditor from this module and initialize it:

      +
      +

      To use the editor, just import EvEditor from this module +and initialize it:

      from evennia.utils.eveditor import EvEditor
      -
      -# set up an editor to edit the caller's 'desc' Attribute
      -def _loadfunc(caller):
      -    return caller.db.desc
      -
      -def _savefunc(caller, buffer):
      -    caller.db.desc = buffer.strip()
      -    return True
      -
      -def _quitfunc(caller):
      -    caller.msg("Custom quit message")
      -
      -# start the editor
      -EvEditor(caller, loadfunc=None, savefunc=None, quitfunc=None, key="",
      -         persistent=True, code=False)
      +EvEditor(caller, loadfunc=None, savefunc=None, quitfunc=None, key="", persistent=True)
       
      -

      The editor can also be used to format Python code and be made to -survive a reload. See the EvEditor class for more details.

      +
        +
      • caller is the user of the editor, the one to see all feedback.

      • +
      • loadfunc(caller) is called when the editor is first launched; the +return from this function is loaded as the starting buffer in the +editor.

      • +
      • safefunc(caller, buffer) is called with the current buffer when +saving in the editor. The function should return True/False depending +on if the saving was successful or not.

      • +
      • quitfunc(caller) is called when the editor exits. If this is given, +no automatic quit messages will be given.

      • +
      • key is an optional identifier for the editing session, to be +displayed in the editor.

      • +
      • persistent means the editor state will be saved to the database making it +survive a server reload. Note that using this mode, the load- save- +and quit-funcs must all be possible to pickle - notable unusable +callables are class methods and functions defined inside other +functions. With persistent=False, no such restriction exists.

      • +
      • code set to True activates features on the EvEditor to enter Python code.

      • +
      +

      In addition, the EvEditor can be used to enter Python source code, +and offers basic handling of indentation.

      +
      class evennia.utils.eveditor.CmdSaveYesNo(**kwargs)[source]
      -

      Bases: evennia.commands.command.Command

      +

      Bases: evennia.commands.default.muxcommand.MuxCommand

      Save the editor state on quit. This catches nomatches (defaults to Yes), and avoid saves only if command was given specifically as “no” or “n”.

      @@ -115,11 +123,6 @@ command was given specifically as “no” or “n”.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': '__noinput_command', 'category': 'general', 'key': '__nomatch_command', 'tags': '', 'text': '\n Save the editor state on quit. This catches\n nomatches (defaults to Yes), and avoid saves only if\n command was given specifically as "no" or "n".\n '}
      -
      -
    @@ -134,7 +137,7 @@ command was given specifically as “no” or “n”.

    -priority = 1
    +priority = 150
    @@ -158,7 +161,7 @@ command was given specifically as “no” or “n”.

    class evennia.utils.eveditor.CmdEditorBase(**kwargs)[source]
    -

    Bases: evennia.commands.command.Command

    +

    Bases: evennia.commands.default.muxcommand.MuxCommand

    Base parent for editor commands

    @@ -178,19 +181,17 @@ command was given specifically as “no” or “n”.

    parse()[source]
    -

    Handles pre-parsing. Editor commands are on the form

    -
    :cmd [li] [w] [txt]
    -
    -
    -

    Where all arguments are optional.

    -
      -
    • -
      li - line number (int), starting from 1. This could also

      be a range given as <l>:<l>.

      +

      Handles pre-parsing

      +
      +
      Usage:

      :cmd [li] [w] [txt]

      -
    • -
    • w - word(s) (string), could be encased in quotes.

    • -
    • txt - extra text (string), could be encased in quotes.

    • +

      Where all arguments are optional.

      +
        +
      • li - line number (int), starting from 1. This could also +be a range given as <l>:<l>.

      • +
      • w - word(s) (string), could be encased in quotes.

      • +
      • txt - extra text (string), could be encased in quotes.

    @@ -214,11 +215,6 @@ command was given specifically as “no” or “n”.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'command', 'tags': '', 'text': '\n Base parent for editor commands\n '}
    -
    -
    @@ -254,11 +250,6 @@ indentation.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': '__noinput_command', 'category': 'general', 'key': '__nomatch_command', 'tags': '', 'text': '\n No command match - Inputs line of text into buffer.\n '}
    -
    -
    @@ -273,7 +264,7 @@ indentation.

    -aliases = [':q', ':p', ':S', ':uu', ':dw', ':A', ':j', ':s', ':wq', ':dd', ':x', ':y', ':r', ':echo', ':!', ':DD', ':w', ':q!', ':fd', ':>', ':', ':I', ':f', ':u', ':UU', ':i', ':::', ':fi', ':=', ':<', ':h', '::']
    +aliases = [':UU', ':fi', ':p', ':!', ':=', ':u', ':fd', ':>', ':h', ':w', ':uu', ':s', ':y', ':dd', ':x', ':q', ':S', ':A', ':f', ':echo', ':r', ':::', ':wq', ':', '::', ':j', ':I', ':<', ':DD', ':q!', ':i', ':dw']
    @@ -299,11 +290,6 @@ efficient presentation.

    lock_storage = 'cmd:all()'
    -
    -
    -search_index_entry = {'aliases': ':q :p :S :uu :dw :A :j :s :wq :dd :x :y :r :echo :! :DD :w :q! :fd :> : :I :f :u :UU :i ::: :fi := :< :h ::', 'category': 'general', 'key': ':editor_command_group', 'tags': '', 'text': '\n Commands for the editor\n '}
    -
    -
    @@ -522,6 +508,7 @@ formatting information.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.utils.evform.html b/docs/0.9.5/api/evennia.utils.evform.html index 7fe1612655..74d269ada1 100644 --- a/docs/0.9.5/api/evennia.utils.evform.html +++ b/docs/0.9.5/api/evennia.utils.evform.html @@ -72,7 +72,6 @@ object when displaying the form.

    | cccccccc | cccccccccccccccccBccccccccccccccccc | | | | ------------------------------------------------- -'''

    The first line of the FORM string is ignored. The forms and table @@ -163,16 +162,16 @@ EvCell or Tables.

    __init__(filename=None, cells=None, tables=None, form=None, **kwargs)[source]
    -

    Initiate the form

    +

    Initiate the form.

    Keyword Arguments
    • filename (str) – Path to template file.

    • -
    • cells (dict) – A dictionary mapping {id: text}

    • -
    • tables (dict) – A dictionary mapping {id: EvTable}.

    • -
    • form (dict) – A dictionary +

    • cells (dict) – A dictionary mapping of {id:text}.

    • +
    • tables (dict) – A dictionary mapping of {id:EvTable}.

    • +
    • form (dict) – A dictionary of {“FORMCHAR”:char, “TABLECHAR”:char, “FORM”:templatestring}. -If this is given, filename is not read.

    • +if this is given, filename is not read.

    @@ -251,6 +250,7 @@ If this is given, filename is not read.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.utils.evmenu.html b/docs/0.9.5/api/evennia.utils.evmenu.html index 9c9056c184..bcd7211fbc 100644 --- a/docs/0.9.5/api/evennia.utils.evmenu.html +++ b/docs/0.9.5/api/evennia.utils.evmenu.html @@ -38,10 +38,9 @@

    evennia.utils.evmenu

    -

    EvMenu

    -

    This implements a full menu system for Evennia.

    -

    To start the menu, just import the EvMenu class from this module. -Example usage:

    +

    The EvMenu is a full in-game menu system for Evennia.

    +

    To start the menu, just import the EvMenu class from this module.

    +

    Example usage:

    from evennia.utils.evmenu import EvMenu
     
     EvMenu(caller, menu_module_path,
    @@ -51,8 +50,8 @@ Example usage:

    Where caller is the Object to use the menu on - it will get a new -cmdset while using the Menu. The menu_module_path is the python path -to a python module containing function definitions. By adjusting the +cmdset while using the Menu. The menu_module_path is the python path +to a python module containing function definitions. By adjusting the keyword options of the Menu() initialization call you can start the menu at different places in the menu definition file, adjust if the menu command should overload the normal commands or not, etc.

    @@ -78,7 +77,7 @@ command definition too) with function definitions:

    return text, options
    -

    Where caller is the object using the menu and input_string is the +

    Where caller is the object using the menu and input_string is the command entered by the user on the previous node (the command entered to get to this node). The node function code will only be executed once per node-visit and the system will accept nodes with @@ -92,43 +91,50 @@ deleted when the menu is exited.

    returned as None as well. If the options are returned as None, the menu is immediately exited and the default “look” command is called.

      -
    • -
      text (str, tuple or None): Text shown at this node. If a tuple, the

      second element in the tuple is a help text to display at this -node when the user enters the menu help command there.

      -
      -
      -
    • +
    • text (str, tuple or None): Text shown at this node. If a tuple, the +second element in the tuple is a help text to display at this +node when the user enters the menu help command there.

    • options (tuple, dict or None): If None, this exits the menu. If a single dict, this is a single-option node. If a tuple, -it should be a tuple of option dictionaries. Option dicts have the following keys:

      +it should be a tuple of option dictionaries. Option dicts have +the following keys:

        -
      • key (str or tuple, optional): What to enter to choose this option. -If a tuple, it must be a tuple of strings, where the first string is the +

      • +
        key (str or tuple, optional): What to enter to choose this option.

        If a tuple, it must be a tuple of strings, where the first string is the key which will be shown to the user and the others are aliases. If unset, the options’ number will be used. The special key _default marks this option as the default fallback when no other option matches the user input. There can only be one _default option per node. It -will not be displayed in the list.

      • +will not be displayed in the list.

        +
    +
    +
  • desc (str, optional): This describes what choosing the option will do.

  • -
  • goto (str, tuple or callable): If string, should be the name of node to go to -when this option is selected. If a callable, it has the signature +

  • +
    goto (str, tuple or callable): If string, should be the name of node to go to

    when this option is selected. If a callable, it has the signature callable(caller[,raw_input][,**kwargs]). If a tuple, the first element -is the callable and the second is a dict with the **kwargs to pass to +is the callable and the second is a dict with the kwargs to pass to the callable. Those kwargs will also be passed into the next node if possible. Such a callable should return either a str or a (str, dict), where the string is the name of the next node to go to and the dict is the new, (possibly modified) kwarg to pass into the next node. If the callable returns -None or the empty string, the current node will be revisited.

  • -
  • exec (str, callable or tuple, optional): This takes the same input as goto above -and runs before it. If given a node name, the node will be executed but will not +None or the empty string, the current node will be revisited.

    + +
  • + +
  • +
    exec (str, callable or tuple, optional): This takes the same input as goto above

    and runs before it. If given a node name, the node will be executed but will not be considered the next node. If node/callback returns str or (str, dict), these will replace the goto step (goto callbacks will not fire), with the string being the next node name and the optional dict acting as the kwargs-input for the next node. -If an exec callable returns the empty string (only), the current node is re-run.

  • +If an exec callable returns None, the current node is re-run.

    + +
    + -

    If key is not given, the option will automatically be identified by +

    If key is not given, the option will automatically be identified by its number 1..N.

    Example:

    # in menu_module.py
    @@ -182,8 +188,9 @@ same Using help will show the help text, otherwise a list of
     available commands while in menu mode.

    The menu tree is exited either by using the in-menu quit command or by reaching a node without any options.

    -

    For a menu demo, import CmdTestMenu from this module and add it to -your default cmdset. Run it with this module, like testmenu evennia.utils.evmenu.

    +

    For a menu demo, import CmdTestMenu from this module and add it to +your default cmdset. Run it with this module, like testmenu +evennia.utils.evmenu.

    diff --git a/docs/0.9.5/api/evennia.utils.evtable.html b/docs/0.9.5/api/evennia.utils.evtable.html index 1ed2f215a4..a59cf78cd5 100644 --- a/docs/0.9.5/api/evennia.utils.evtable.html +++ b/docs/0.9.5/api/evennia.utils.evtable.html @@ -38,15 +38,13 @@

    evennia.utils.evtable

    -

    This is an advanced ASCII table creator. It was inspired by Prettytable -(https://code.google.com/p/prettytable/) but shares no code and is considerably -more advanced, supporting auto-balancing of incomplete tables and ANSI colors among -other things.

    +

    This is an advanced ASCII table creator. It was inspired by +[prettytable](https://code.google.com/p/prettytable/) but shares no code.

    Example usage:

    from evennia.utils import evtable
     
     table = evtable.EvTable("Heading1", "Heading2",
    -                table=[[1,2,3],[4,5,6],[7,8,9]], border="cells")
    +              table=[[1,2,3],[4,5,6],[7,8,9]], border="cells")
     table.add_column("This is long data", "This is even longer data")
     table.add_row("This is a single row")
     print table
    @@ -100,9 +98,8 @@ Here we change the width and alignment of the column at index 3
     (Python starts from 0):

    table.reformat_column(3, width=30, align="r")
     print table
    -
    -
    -
    +-----------+-------+-----+-----------------------------+---------+
    +
    ++-----------+-------+-----+-----------------------------+---------+
     | Heading1  | Headi |     |                             |         |
     |           | ng2   |     |                             |         |
     +~~~~~~~~~~~+~~~~~~~+~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~+
    @@ -123,13 +120,14 @@ Here we change the width and alignment of the column at index 3
     

    If the height is restricted, cells will be restricted from expanding vertically. This will lead to text contents being cropped. Each cell can only shrink to a minimum width and height of 1.

    -

    EvTable is intended to be used with ANSIString for supporting ANSI-coloured -string types.

    -

    When a cell is auto-wrapped across multiple lines, ANSI-reset sequences will be -put at the end of each wrapped line. This means that the colour of a wrapped -cell will not “bleed”, but it also means that eventual colour outside the table -will not transfer “across” a table, you need to re-set the color to have it -appear on both sides of the table string.

    +

    EvTable is intended to be used with [ANSIString](evennia.utils.ansi#ansistring) +for supporting ANSI-coloured string types.

    +

    When a cell is auto-wrapped across multiple lines, ANSI-reset +sequences will be put at the end of each wrapped line. This means that +the colour of a wrapped cell will not “bleed”, but it also means that +eventual colour outside the table will not transfer “across” a table, +you need to re-set the color to have it appear on both sides of the +table string.


    @@ -640,6 +638,7 @@ given from 0 to Ncolumns-1.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.utils.gametime.html b/docs/0.9.5/api/evennia.utils.gametime.html index 870c712978..1673991dd3 100644 --- a/docs/0.9.5/api/evennia.utils.gametime.html +++ b/docs/0.9.5/api/evennia.utils.gametime.html @@ -262,6 +262,7 @@ the epoch set by settings.TIME_GAME_EPOCH will still apply.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.utils.html b/docs/0.9.5/api/evennia.utils.html index 4f935a3957..857d6d9b80 100644 --- a/docs/0.9.5/api/evennia.utils.html +++ b/docs/0.9.5/api/evennia.utils.html @@ -43,19 +43,10 @@ modules in Evennia. It also holds the idmapper in-memory caching functionality.

    diff --git a/docs/0.9.5/api/evennia.utils.idmapper.html b/docs/0.9.5/api/evennia.utils.idmapper.html index 27fa001199..5436dd6292 100644 --- a/docs/0.9.5/api/evennia.utils.idmapper.html +++ b/docs/0.9.5/api/evennia.utils.idmapper.html @@ -81,6 +81,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.utils.idmapper.manager.html b/docs/0.9.5/api/evennia.utils.idmapper.manager.html index df105ba5cb..bc2aea0160 100644 --- a/docs/0.9.5/api/evennia.utils.idmapper.manager.html +++ b/docs/0.9.5/api/evennia.utils.idmapper.manager.html @@ -86,6 +86,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.utils.idmapper.models.html b/docs/0.9.5/api/evennia.utils.idmapper.models.html index 78a32c6abe..f74e1195f1 100644 --- a/docs/0.9.5/api/evennia.utils.idmapper.models.html +++ b/docs/0.9.5/api/evennia.utils.idmapper.models.html @@ -298,6 +298,7 @@ catch in an easy way here. Ideas are appreciated. /Griatch

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.utils.idmapper.tests.html b/docs/0.9.5/api/evennia.utils.idmapper.tests.html index 52878fc061..dd174f834f 100644 --- a/docs/0.9.5/api/evennia.utils.idmapper.tests.html +++ b/docs/0.9.5/api/evennia.utils.idmapper.tests.html @@ -403,6 +403,7 @@ object the first time, the query is executed.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.utils.inlinefuncs.html b/docs/0.9.5/api/evennia.utils.inlinefuncs.html index ec6d1dc010..0e292f9c43 100644 --- a/docs/0.9.5/api/evennia.utils.inlinefuncs.html +++ b/docs/0.9.5/api/evennia.utils.inlinefuncs.html @@ -43,15 +43,14 @@
    $funcname(arg, arg, ...)
     
    -

    embedded in any text where any arg can be another **$funcname()** call. +

    embedded in any text where any arg can be another $funcname{} call. This functionality is turned off by default - to activate, settings.INLINEFUNC_ENABLED must be set to True.

    -

    Each token starts with $funcname( where there must be no space -between the $funcname and “(“. The inlinefunc ends with a matched ending parentesis. -“)”.

    -

    Inside the inlinefunc definition, one can use ** to escape. This is +

    Each token starts with $funcname( where there must be no space between the +$funcname and “(“. It ends with a matched ending parentesis “)”.

    +

    Inside the inlinefunc definition, one can use \ to escape. This is mainly needed for escaping commas in flowing text (which would -otherwise be interpreted as an argument separator), or to escape **) +otherwise be interpreted as an argument separator), or to escape } when not intended to close the function block. Enclosing text in matched “”” (triple quotes) or ‘’’ (triple single-quotes) will also escape everything within without needing to escape individual @@ -61,7 +60,7 @@ modules defined by settings.INLINEFUNC_MODULES. They are identi by their function name (and ignored if this name starts with _). They should be on the following form:

    def funcname (*args, **kwargs):
    -    # ...
    +# ...
     

    Here, the arguments given to $funcname(arg1,arg2) will appear as the @@ -85,9 +84,8 @@ When this happens, the original parsed string is returned and the result of the stackfull inlinefunc is appended to the end. By default this is an error message.

    -

    Syntax errors, notably failing to completely closing all inlinefunc -blocks, will lead to the entire string remaining unparsed. Inlineparsing should -never traceback.

    +

    Syntax errors, notably not completely closing all inlinefunc blocks, will lead +to the entire string remaining unparsed.


    @@ -111,9 +109,11 @@ never traceback.

    value will be returned. Otherwise it will be an integer value in the given range.

    Example

    -

    $random() -$random(5) -$random(5, 10)

    +
      +
    • $random()

    • +
    • $random(5)

    • +
    • $random(5, 10)

    • +
    @@ -296,19 +296,17 @@ it. It is passed to the inlinefunc.

    • in_template (str) – The template to be used for nick recognition.

    • out_template (str) – The template to be used to replace the string -matched by the in_template.

    • +matched by the in_template.

    Returns
    -

    regex (regex) – Regex to match against strings -template (str): Template with markers {arg1}, {arg2}, etc for -replacement using the standard .format method.

    +

    regex, template (regex, str) – Regex to match against strings and a +template with markers {arg1}, {arg2}, etc for replacement using the +standard .format method.

    Raises
    -
    +

    inlinefuncs.NickTemplateInvalid – If the in/out template does not have a matching +number of $args.

    @@ -366,6 +364,7 @@ etc to match the regex.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.utils.logger.html b/docs/0.9.5/api/evennia.utils.logger.html index ed8f9fb396..0678d6728e 100644 --- a/docs/0.9.5/api/evennia.utils.logger.html +++ b/docs/0.9.5/api/evennia.utils.logger.html @@ -429,6 +429,7 @@ all if the file is shorter than nlines.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.utils.optionclasses.html b/docs/0.9.5/api/evennia.utils.optionclasses.html index a8640bba95..9c31ab6817 100644 --- a/docs/0.9.5/api/evennia.utils.optionclasses.html +++ b/docs/0.9.5/api/evennia.utils.optionclasses.html @@ -38,6 +38,8 @@

    evennia.utils.optionclasses

    +

    Option classes store user- or server Options in a generic way +while also providing validation.

    class evennia.utils.optionclasses.BaseOption(handler, key, description, default)[source]
    @@ -114,8 +116,8 @@ passing extra instructions into the validator.

    save(**kwargs)[source]

    Stores the current value using .handler.save_handler(self.key, value, **kwargs) -where kwargs are a combination of those passed into this function and -the ones specified by the OptionHandler.

    +where kwargs are a combination of those passed into this function and the +ones specified by the OptionHandler.

    Keyword Arguments

    any (any) – Not used by default. These are passed in from self.set @@ -888,6 +890,7 @@ entries are processed.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.utils.optionhandler.html b/docs/0.9.5/api/evennia.utils.optionhandler.html index d9cd25fcfc..86ad7aaeb5 100644 --- a/docs/0.9.5/api/evennia.utils.optionhandler.html +++ b/docs/0.9.5/api/evennia.utils.optionhandler.html @@ -196,6 +196,7 @@ than their values.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.utils.picklefield.html b/docs/0.9.5/api/evennia.utils.picklefield.html index 9b4b16b12f..b29f31021a 100644 --- a/docs/0.9.5/api/evennia.utils.picklefield.html +++ b/docs/0.9.5/api/evennia.utils.picklefield.html @@ -240,6 +240,7 @@ This is used by the serialization framework.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.utils.search.html b/docs/0.9.5/api/evennia.utils.search.html index 60a94c8025..0a21fc1885 100644 --- a/docs/0.9.5/api/evennia.utils.search.html +++ b/docs/0.9.5/api/evennia.utils.search.html @@ -192,36 +192,6 @@ case sensitive) match.

    -
    -
    -evennia.utils.search.search_tag(key=None, category=None, tagtype=None, **kwargs)
    -

    Find object based on tag or category.

    -
    -
    Parameters
    -
      -
    • key (str, optional) – The tag key to search for.

    • -
    • category (str, optional) – The category of tag -to search for. If not set, uncategorized -tags will be searched.

    • -
    • tagtype (str, optional) – ‘type’ of Tag, by default -this is either None (a normal Tag), alias or -permission. This always apply to all queried tags.

    • -
    • kwargs (any) – Other optional parameter that may be supported -by the manager method.

    • -
    -
    -
    Returns
    -

    matches (list)

    -
    -
    List of Objects with tags matching

    the search criteria, or an empty list if no -matches were found.

    -
    -
    -

    -
    -
    -
    -
    evennia.utils.search.search_script_tag(key=None, category=None, tagtype=None, **kwargs)[source]
    @@ -347,6 +317,7 @@ matches were found.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.utils.test_resources.html b/docs/0.9.5/api/evennia.utils.test_resources.html index 3f710373a9..61b7456f49 100644 --- a/docs/0.9.5/api/evennia.utils.test_resources.html +++ b/docs/0.9.5/api/evennia.utils.test_resources.html @@ -69,6 +69,7 @@ should directly give the module pathname to unload.

    ... # test code using foo.GLOBALTHING, now set to 'mockval' +

    Notes

    This allows for mocking constants global to the module, since otherwise those would not be mocked (since a module is only loaded once).

    @@ -202,6 +203,7 @@ It helps ensure your tests are run with your own objects.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.utils.text2html.html b/docs/0.9.5/api/evennia.utils.text2html.html index 5ccf10da55..55ff47d647 100644 --- a/docs/0.9.5/api/evennia.utils.text2html.html +++ b/docs/0.9.5/api/evennia.utils.text2html.html @@ -430,6 +430,7 @@ into html statements.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.utils.utils.html b/docs/0.9.5/api/evennia.utils.utils.html index 25f2b00bb4..db0ff86bcc 100644 --- a/docs/0.9.5/api/evennia.utils.utils.html +++ b/docs/0.9.5/api/evennia.utils.utils.html @@ -230,8 +230,8 @@ Defaults to client’s default width.

    -
    -evennia.utils.utils.iter_to_str(initer, endsep='and', addquote=False)[source]
    +
    +evennia.utils.utils.iter_to_string(initer, endsep='and', addquote=False)[source]

    This pretty-formats an iterable list as string output, adding an optional alternative separator to the second to last entry. If addquote is True, the outgoing strings will be surrounded by quotes.

    @@ -248,16 +248,16 @@ values with double quotes.

    Returns
    -

    str – The list represented as a string.

    +

    liststr (str) – The list represented as a string.

    Examples

    -
    >>> list_to_string([1,2,3], endsep='')
    -'1, 2, 3'
    ->>> list_to_string([1,2,3], ensdep='and')
    -'1, 2 and 3'
    ->>> list_to_string([1,2,3], endsep='and', addquote=True)
    -'"1", "2" and "3"'
    +
    # no endsep:
    +   [1,2,3] -> '1, 2, 3'
    +# with endsep=='and':
    +   [1,2,3] -> '1, 2 and 3'
    +# with addquote and endsep
    +   [1,2,3] -> '"1", "2" and "3"'
     
    @@ -281,49 +281,16 @@ values with double quotes.

    Returns
    -

    str – The list represented as a string.

    +

    liststr (str) – The list represented as a string.

    Examples

    -
    >>> list_to_string([1,2,3], endsep='')
    -'1, 2, 3'
    ->>> list_to_string([1,2,3], ensdep='and')
    -'1, 2 and 3'
    ->>> list_to_string([1,2,3], endsep='and', addquote=True)
    -'"1", "2" and "3"'
    -
    -
    - - -
    -
    -evennia.utils.utils.iter_to_string(initer, endsep='and', addquote=False)
    -

    This pretty-formats an iterable list as string output, adding an optional -alternative separator to the second to last entry. If addquote -is True, the outgoing strings will be surrounded by quotes.

    -
    -
    Parameters
    -
      -
    • initer (any) – Usually an iterable to print. Each element must be possible to -present with a string. Note that if this is a generator, it will be -consumed by this operation.

    • -
    • endsep (str, optional) – If set, the last item separator will -be replaced with this value.

    • -
    • addquote (bool, optional) – This will surround all outgoing -values with double quotes.

    • -
    -
    -
    Returns
    -

    str – The list represented as a string.

    -
    -
    -

    Examples

    -
    >>> list_to_string([1,2,3], endsep='')
    -'1, 2, 3'
    ->>> list_to_string([1,2,3], ensdep='and')
    -'1, 2 and 3'
    ->>> list_to_string([1,2,3], endsep='and', addquote=True)
    -'"1", "2" and "3"'
    +
    # no endsep:
    +   [1,2,3] -> '1, 2, 3'
    +# with endsep=='and':
    +   [1,2,3] -> '1, 2 and 3'
    +# with addquote and endsep
    +   [1,2,3] -> '"1", "2" and "3"'
     
    @@ -582,8 +549,10 @@ be found, the protocol flag is reset to utf-8. In any case, returns bytes.

    -

    Notes

    +
    +

    Note

    If text is already bytes, return it as is.

    +
    @@ -604,8 +573,10 @@ falling back to settings.ENCODINGS.

    decoded_text (str) – The decoded text.

    -

    Notes

    +
    +

    Note

    If text is already str, return it as is.

    +
    @@ -631,10 +602,9 @@ distance from parent.

    Parameters
      -
    • obj (any) – Object to analyze. This may be either an instance or -a class.

    • -
    • parent (any) – Can be either an instance, a class or the python -path to the class.

    • +
    • obj (any) – Object to analyze. This may be either an instance +or a class.

    • +
    • parent (any) – Can be either instance, class or python path to class.

    Returns
    @@ -642,8 +612,10 @@ path to the class.

    Notes

    -

    What differentiates this function from Python’s isinstance() is the -flexibility in the types allowed for the object and parent being compared.

    +

    What differs this function from e.g. isinstance() is that obj +may be both an instance and a class, and parent may be an +instance, a class, or the python path to a class (counting from +the evennia root directory).

    @@ -666,7 +638,10 @@ any results if called from inside the game.

    shortcut to having to use the full backend name.

    Parameters
    -

    name (str) – One of ‘sqlite3’, ‘mysql’, ‘postgresql’ or ‘oracle’.

    +
      +
    • name (str) – One of ‘sqlite3’, ‘mysql’, ‘postgresql’

    • +
    • 'oracle'. (or) –

    • +
    Returns

    uses (bool) – If the given database is used or not.

    @@ -684,24 +659,30 @@ shortcut to having to use the full backend name.

  • timedelay (int or float) – The delay in seconds

  • callback (callable) – Will be called as callback(*args, **kwargs) after timedelay seconds.

  • -
  • *args – Will be used as arguments to callback

  • +
  • args (any, optional) – Will be used as arguments to callback

  • Keyword Arguments
      -
    • persistent (bool) – Make the delay persistent over a reboot or reload.

    • -
    • any – Any other keywords will be use as keyword arguments to callback.

    • +
    • persistent (bool, optional) – should make the delay persistent +over a reboot or reload

    • +
    • any (any) – Will be used as keyword arguments to callback.

    Returns
    -

    deferred – Will fire with callback after timedelay seconds. Note that -if timedelay() is used in the +

    deferred (deferred)

    +
    +
    Will fire with callback after

    timedelay seconds. Note that if timedelay() is used in the commandhandler callback chain, the callback chain can be defined directly in the command body and don’t need to be specified here.

    -

    Notes

    +

    +
    +
    +
    +

    Note

    The task handler (evennia.scripts.taskhandler.TASK_HANDLER) will be called for persistent or non-persistent tasks. If persistent is set to True, the callback, its arguments @@ -709,6 +690,7 @@ and other keyword arguments will be saved in the database, assuming they can be. The callback will be executed even after a server restart/reload, taking into account the specified delay (and server down time).

    +
    @@ -772,7 +754,7 @@ some checks for runtime libraries.

    evennia.utils.utils.has_parent(basepath, obj)[source]
    -

    Checks if basepath is somewhere in obj’s parent tree.

    +

    Checks if basepath is somewhere in obj’s parent tree.

    Parameters
      @@ -956,7 +938,7 @@ importing directly from path doesn’t work.

      evennia.utils.utils.class_from_module(path, defaultpaths=None)[source]
      -

      Return a class from a module, given the class’ full python path. This is +

      Return a class from a module, given the module’s path. This is primarily used to convert db_typeclass_path:s to classes.

      Parameters
      @@ -978,7 +960,7 @@ try subsequent imports by prepending those paths to path.

      evennia.utils.utils.object_from_module(path, defaultpaths=None)
      -

      Return a class from a module, given the class’ full python path. This is +

      Return a class from a module, given the module’s path. This is primarily used to convert db_typeclass_path:s to classes.

      Parameters
      @@ -1045,11 +1027,15 @@ the value, the more exact a match is required).

    Returns
    -

    suggestions (list) – Suggestions from vocabulary with a -similarity-rating that higher than or equal to cutoff. +

    suggestions (list)

    +
    +
    Suggestions from vocabulary with a

    similarity-rating that higher than or equal to cutoff. Could be empty if there are no matches.

    +

    +
    +
    @@ -1080,125 +1066,47 @@ array) instead of strings.

    evennia.utils.utils.format_table(table, extra_space=1)[source]
    -

    Format a 2D array of strings into a multi-column table.

    -
    -
    Parameters
    -
      -
    • table (list) – A list of lists to represent columns in the -table: [[val,val,val,…], [val,val,val,…], …], where +

      Note: evennia.utils.evtable is more powerful than this, but this function +can be useful when the number of columns and rows are unknown and must be +calculated on the fly.

      +
      +
      Args.
      +
      table (list): A list of lists to represent columns in the

      table: [[val,val,val,…], [val,val,val,…], …], where each val will be placed on a separate row in the column. All columns must have the same number of rows (some -positions may be empty though).

    • -
    • extra_space (int, optional) – Sets how much minimum extra -padding (in characters) should be left between columns.

    • -
    +positions may be empty though).

    -
    Returns
    -

    list – A list of lists representing the rows to print out one by one.

    +
    extra_space (int, optional): Sets how much minimum extra

    padding (in characters) should be left between columns.

    +
    +
    +
    +
    +
    +
    Returns
    +

    table (list)

    +
    +
    A list of lists representing the rows to print

    out one by one.

    +
    +
    +

    Notes

    The function formats the columns to be as wide as the widest member of each column.

    -

    evennia.utils.evtable is more powerful than this, but this -function can be useful when the number of columns and rows are -unknown and must be calculated on the fly.

    -

    Examples:

    -
    ftable = format_table([[1,2,3], [4,5,6]])
    -string = ""
    +

    Example

    +
    ftable = format_table([[...], [...], ...])
     for ir, row in enumarate(ftable):
         if ir == 0:
             # make first row white
    -        string += "\n|w" + "".join(row) + "|n"
    +        string += "\\n|w" + ""join(row) + "|n"
         else:
    -        string += "\n" + "".join(row)
    +        string += "\\n" + "".join(row)
     print(string)
     
    -
    -
    -evennia.utils.utils.percent(value, minval, maxval, formatting='{:3.1f}%')[source]
    -

    Get a value in an interval as a percentage of its position -in that interval. This also understands negative numbers.

    -
    -
    Parameters
    -
      -
    • value (number) – This should be a value minval<=value<=maxval.

    • -
    • minval (number or None) – Smallest value in interval. This could be None -for an open interval (then return will always be 100%)

    • -
    • maxval (number or None) – Biggest value in interval. This could be None -for an open interval (then return will always be 100%)

    • -
    • formatted (str, optional) – This is a string that should -accept one formatting tag. This will receive the -current value as a percentage. If None, the -raw float will be returned instead.

    • -
    -
    -
    Returns
    -

    str or float – The formatted value or the raw percentage as a float.

    -
    -
    -

    Notes

    -

    We try to handle a weird interval gracefully.

    -
      -
    • If either maxval or minval is None (open interval), we (aribtrarily) assume 100%.

    • -
    • If minval > maxval, we return 0%.

    • -
    • If minval == maxval == value we are looking at a single value match and return 100%.

    • -
    • If minval == maxval != value we return 0%.

    • -
    • If value not in [minval..maxval], we set value to the closest -boundary, so the result will be 0% or 100%, respectively.

    • -
    -
    - -
    -
    -evennia.utils.utils.percentile(iterable, percent, key=<function <lambda>>)[source]
    -

    Find the percentile of a list of values.

    -
    -
    Parameters
    -
      -
    • iterable (iterable) – A list of values. Note N MUST BE already sorted.

    • -
    • percent (float) – A value from 0.0 to 1.0.

    • -
    • key (callable, optional) –

    • -
    -
    -
    Returns
    -

    float – The percentile of the values

    -
    -
    -
    - -
    -
    -evennia.utils.utils.format_grid(elements, width=78, sep=' ', verbatim_elements=None)[source]
    -

    This helper function makes a ‘grid’ output, where it distributes the given -string-elements as evenly as possible to fill out the given width. -will not work well if the variation of length is very big!

    -
    -
    Parameters
    -
      -
    • elements (iterable) – A 1D list of string elements to put in the grid.

    • -
    • width (int, optional) – The width of the grid area to fill.

    • -
    • sep (str, optional) – The extra separator to put between words. If -set to the empty string, words may run into each other.

    • -
    • verbatim_elements (list, optional) – This is a list of indices pointing to -specific items in the elements list. An element at this index will -not be included in the calculation of the slot sizes. It will still -be inserted into the grid at the correct position and may be surrounded -by padding unless filling the entire line. This is useful for embedding -decorations in the grid, such as horizontal bars.

    • -
    -
    -
    Returns
    -

    gridstr – The grid as a list of ready-formatted rows. We return it -like this to make it easier to insert decorations between rows, such -as horizontal bars.

    -
    -
    -
    -
    evennia.utils.utils.get_evennia_pids()[source]
    @@ -1215,7 +1123,8 @@ Server by trying to access a PID file.

    Examples

    -

    This can be used to determine if we are in a subprocess by

    +

    This can be used to determine if we are in a subprocess by +something like:

    self_pid = os.getpid()
     server_pid, portal_pid = get_evennia_pids()
     is_subprocess = self_pid not in (server_pid, portal_pid)
    @@ -1372,12 +1281,16 @@ on errors.

    Returns
    -

    processed_result (Object or None) – This is always a single result -or None. If None, any error reporting/handling should +

    processed_result (Object or None)

    +
    +
    This is always a single result

    or None. If None, any error reporting/handling should already have happened. The returned object is of the type we are checking multimatches for (e.g. Objects or Commands)

    +

    +
    +
    @@ -1436,11 +1349,11 @@ of the game directory.

    from this parent.

    Returns
    -

    dict – On the form {“typeclass.path”: typeclass, …}

    +

    typeclasses (dict) – On the form {“typeclass.path”: typeclass, …}

    Notes

    -

    This will dynamically retrieve all abstract django models inheriting at any distance +

    This will dynamicall retrieve all abstract django models inheriting at any distance from the TypedObject base (aka a Typeclass) so it will work fine with any custom classes being added.

    @@ -1448,20 +1361,11 @@ classes being added.

    evennia.utils.utils.interactive(func)[source]
    -

    Decorator to make a method pausable with yield(seconds) -and able to ask for user-input with response=yield(question). -For the question-asking to work, one of the args or kwargs to the -decorated function must be named ‘caller’.

    -
    -
    Raises
    -
      -
    • ValueError – If asking an interactive question but the decorated -function has no arg or kwarg named ‘caller’.

    • -
    • ValueError – If passing non int/float to yield using for pausing.

    • -
    -
    -
    -

    Examples

    +

    Decorator to make a method pausable with yield(seconds) and able to ask for +user-input with response=yield(question). For the question-asking to +work, ‘caller’ must the name of an argument or kwarg to the decorated +function.

    +

    Example:

    @interactive
     def myfunc(caller):
         caller.msg("This is a test")
    @@ -1476,7 +1380,7 @@ function has no arg or kwarg named ‘caller’.

    Notes

    -

    This turns the decorated function or method into a generator.

    +

    This turns the method into a generator!

    @@ -1514,6 +1418,7 @@ function has no arg or kwarg named ‘caller’.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.utils.validatorfuncs.html b/docs/0.9.5/api/evennia.utils.validatorfuncs.html index fb20d343b2..3ce66840e8 100644 --- a/docs/0.9.5/api/evennia.utils.validatorfuncs.html +++ b/docs/0.9.5/api/evennia.utils.validatorfuncs.html @@ -65,7 +65,7 @@ inputer’s timezone. Always returns a result in UTC.

  • account (AccountDB) – The Account performing this lookup. Unless from_tz is provided, the account’s timezone option will be used.

  • from_tz (pytz.timezone) – An instance of a pytz timezone object from the -user. If not provided, tries to use the timezone option of account. +user. If not provided, tries to use the timezone option of the account. If neither one is provided, defaults to UTC.

  • @@ -193,6 +193,7 @@ If neither one is provided, defaults to UTC.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.web.html b/docs/0.9.5/api/evennia.web.html index 1f1006c0b2..6a864dd83c 100644 --- a/docs/0.9.5/api/evennia.web.html +++ b/docs/0.9.5/api/evennia.web.html @@ -109,6 +109,7 @@ found under the server package).

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.web.urls.html b/docs/0.9.5/api/evennia.web.urls.html index fa7efb0520..e2f73e5e84 100644 --- a/docs/0.9.5/api/evennia.web.urls.html +++ b/docs/0.9.5/api/evennia.web.urls.html @@ -73,6 +73,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.web.utils.backends.html b/docs/0.9.5/api/evennia.web.utils.backends.html index 1a365ca0c1..8ad66060f2 100644 --- a/docs/0.9.5/api/evennia.web.utils.backends.html +++ b/docs/0.9.5/api/evennia.web.utils.backends.html @@ -99,6 +99,7 @@ an already authenticated account and bypass authentication.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.web.utils.general_context.html b/docs/0.9.5/api/evennia.web.utils.general_context.html index c879c50449..605e38c067 100644 --- a/docs/0.9.5/api/evennia.web.utils.general_context.html +++ b/docs/0.9.5/api/evennia.web.utils.general_context.html @@ -98,6 +98,7 @@ is automatically added to context of all views.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.web.utils.html b/docs/0.9.5/api/evennia.web.utils.html index 6a39b7ad80..f406999ddf 100644 --- a/docs/0.9.5/api/evennia.web.utils.html +++ b/docs/0.9.5/api/evennia.web.utils.html @@ -81,6 +81,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.web.utils.middleware.html b/docs/0.9.5/api/evennia.web.utils.middleware.html index 0a8af04aeb..d85fa77016 100644 --- a/docs/0.9.5/api/evennia.web.utils.middleware.html +++ b/docs/0.9.5/api/evennia.web.utils.middleware.html @@ -91,6 +91,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.web.utils.tests.html b/docs/0.9.5/api/evennia.web.utils.tests.html index fcc2a9c268..884a3bb134 100644 --- a/docs/0.9.5/api/evennia.web.utils.tests.html +++ b/docs/0.9.5/api/evennia.web.utils.tests.html @@ -99,6 +99,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.web.webclient.html b/docs/0.9.5/api/evennia.web.webclient.html index 61585d9cb9..3cd6d3246d 100644 --- a/docs/0.9.5/api/evennia.web.webclient.html +++ b/docs/0.9.5/api/evennia.web.webclient.html @@ -79,6 +79,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.web.webclient.urls.html b/docs/0.9.5/api/evennia.web.webclient.urls.html index 067826914b..2e5c07a036 100644 --- a/docs/0.9.5/api/evennia.web.webclient.urls.html +++ b/docs/0.9.5/api/evennia.web.webclient.urls.html @@ -75,6 +75,7 @@ webpage ‘application’.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.web.webclient.views.html b/docs/0.9.5/api/evennia.web.webclient.views.html index bac3db5dd8..ad5cab4275 100644 --- a/docs/0.9.5/api/evennia.web.webclient.views.html +++ b/docs/0.9.5/api/evennia.web.webclient.views.html @@ -81,6 +81,7 @@ page and serve it eventual static content.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.web.website.forms.html b/docs/0.9.5/api/evennia.web.website.forms.html index 6b2b9205dd..5fef7b68e0 100644 --- a/docs/0.9.5/api/evennia.web.website.forms.html +++ b/docs/0.9.5/api/evennia.web.website.forms.html @@ -311,6 +311,7 @@ wish to allow.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.web.website.html b/docs/0.9.5/api/evennia.web.website.html index 8ca0d806b2..a056875e66 100644 --- a/docs/0.9.5/api/evennia.web.website.html +++ b/docs/0.9.5/api/evennia.web.website.html @@ -89,6 +89,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.web.website.templatetags.addclass.html b/docs/0.9.5/api/evennia.web.website.templatetags.addclass.html index d9a21857ee..2445c1e172 100644 --- a/docs/0.9.5/api/evennia.web.website.templatetags.addclass.html +++ b/docs/0.9.5/api/evennia.web.website.templatetags.addclass.html @@ -78,6 +78,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.web.website.templatetags.html b/docs/0.9.5/api/evennia.web.website.templatetags.html index fbf5d86bdd..0380e22fec 100644 --- a/docs/0.9.5/api/evennia.web.website.templatetags.html +++ b/docs/0.9.5/api/evennia.web.website.templatetags.html @@ -78,6 +78,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.web.website.tests.html b/docs/0.9.5/api/evennia.web.website.tests.html index 864a8530db..948934cf34 100644 --- a/docs/0.9.5/api/evennia.web.website.tests.html +++ b/docs/0.9.5/api/evennia.web.website.tests.html @@ -444,6 +444,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.web.website.urls.html b/docs/0.9.5/api/evennia.web.website.urls.html index 9a4b3653be..843bab5faf 100644 --- a/docs/0.9.5/api/evennia.web.website.urls.html +++ b/docs/0.9.5/api/evennia.web.website.urls.html @@ -74,6 +74,7 @@
  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/api/evennia.web.website.views.html b/docs/0.9.5/api/evennia.web.website.views.html index f09012382e..6a3df7bd05 100644 --- a/docs/0.9.5/api/evennia.web.website.views.html +++ b/docs/0.9.5/api/evennia.web.website.views.html @@ -860,6 +860,7 @@ instead of pk and slug.

  • 0.9.5 (v0.9.5 branch)
  • +
    diff --git a/docs/0.9.5/genindex.html b/docs/0.9.5/genindex.html index 5fdba2bed1..e7b87c272a 100644 --- a/docs/0.9.5/genindex.html +++ b/docs/0.9.5/genindex.html @@ -194,6 +194,10 @@
  • (evennia.server.profiling.dummyrunner.DummyFactory method)
  • (evennia.server.server.Evennia method) +
  • +
  • (evennia.server.serversession.NAttributeHandler method) +
  • +
  • (evennia.server.serversession.NDbHolder method)
  • (evennia.server.serversession.ServerSession method)
  • @@ -215,15 +219,7 @@
  • (evennia.typeclasses.attributes.AttributeHandler method)
  • -
  • (evennia.typeclasses.attributes.DbHolder method) -
  • -
  • (evennia.typeclasses.attributes.IAttributeBackend method) -
  • -
  • (evennia.typeclasses.attributes.InMemoryAttribute method) -
  • -
  • (evennia.typeclasses.attributes.InMemoryAttributeBackend method) -
  • -
  • (evennia.typeclasses.attributes.ModelAttributeBackend method) +
  • (evennia.typeclasses.attributes.NAttributeHandler method)
  • (evennia.typeclasses.attributes.NickHandler method)
  • @@ -313,7 +309,7 @@
  • (evennia.server.serversession.ServerSession method)
  • -
  • (evennia.typeclasses.attributes.IAttribute method) +
  • (evennia.typeclasses.attributes.Attribute method)
  • (evennia.typeclasses.models.TypedObject method)
  • @@ -498,8 +494,12 @@
  • (evennia.scripts.tickerhandler.TickerHandler method)
  • (evennia.scripts.tickerhandler.TickerPool method) +
  • +
  • (evennia.server.serversession.NAttributeHandler method)
  • (evennia.typeclasses.attributes.AttributeHandler method) +
  • +
  • (evennia.typeclasses.attributes.NAttributeHandler method)
  • (evennia.typeclasses.attributes.NickHandler method)
  • @@ -1072,10 +1072,14 @@
  • (evennia.scripts.scripthandler.ScriptHandler method)
  • (evennia.scripts.tickerhandler.TickerHandler method) +
  • +
  • (evennia.server.serversession.NAttributeHandler method) +
  • +
  • (evennia.server.serversession.NDbHolder property)
  • (evennia.typeclasses.attributes.AttributeHandler method)
  • -
  • (evennia.typeclasses.attributes.DbHolder property) +
  • (evennia.typeclasses.attributes.NAttributeHandler method)
  • (evennia.typeclasses.tags.TagHandler method)
  • @@ -1118,6 +1122,8 @@
  • (evennia.server.portal.amp.MsgStatus attribute)
  • + + -
  • at_post_disconnect() (evennia.accounts.accounts.DefaultAccount method) - -
  • at_post_login() (evennia.accounts.accounts.DefaultAccount method) - -
  • at_post_portal_sync() (evennia.server.server.Evennia method)
  • at_post_puppet() (evennia.contrib.ingame_python.typeclasses.EventCharacter method) @@ -1891,8 +1887,6 @@
  • at_server_shutdown() (evennia.accounts.accounts.DefaultAccount method)
  • attrtype() (evennia.typeclasses.attributes.Attribute property) - -
  • audit() (evennia.contrib.security.auditing.server.AuditedServerSession method)
  • AuditedServerSession (class in evennia.contrib.security.auditing.server) @@ -2031,8 +2021,6 @@
  • authenticate() (evennia.accounts.accounts.DefaultAccount class method)
  • @@ -2111,8 +2099,6 @@
  • batch_add() (evennia.typeclasses.attributes.AttributeHandler method)
  • @@ -2307,11 +2293,7 @@
  • category() (evennia.typeclasses.attributes.Attribute property) - -
  • Category.DoesNotExist
  • Category.MultipleObjectsReturned @@ -2526,14 +2508,16 @@
  • (evennia.scripts.monitorhandler.MonitorHandler method)
  • (evennia.scripts.tickerhandler.TickerHandler method) +
  • +
  • (evennia.server.serversession.NAttributeHandler method)
  • (evennia.typeclasses.attributes.AttributeHandler method) +
  • +
  • (evennia.typeclasses.attributes.NAttributeHandler method)
  • (evennia.typeclasses.tags.TagHandler method)
  • -
  • clear_attributes() (evennia.typeclasses.attributes.IAttributeBackend method) -
  • clear_client_lists() (evennia.server.profiling.tests.TestDummyrunnerSettings method)
  • clear_contents() (evennia.objects.objects.DefaultObject method) @@ -2541,6 +2525,8 @@
  • clear_exits() (evennia.objects.objects.DefaultObject method)
  • client_disconnect() (evennia.server.portal.webclient_ajax.AjaxWebClient method) +
  • +
  • client_height() (evennia.commands.command.Command method)
  • client_options() (in module evennia.server.inputfuncs)
  • @@ -2804,14 +2790,14 @@
  • CmdInterrupt (class in evennia.commands.default.tests)
  • + + - + + - -
  • delete_attribute() (evennia.typeclasses.attributes.IAttributeBackend method) -
  • delete_default() (evennia.commands.cmdsethandler.CmdSetHandler method)
  • delete_prototype() (in module evennia.prototypes.prototypes) @@ -3990,40 +3960,6 @@
  • do_attack() (evennia.contrib.tutorial_world.mob.Mob method)
  • -
  • do_batch_delete() (evennia.typeclasses.attributes.IAttributeBackend method) -
  • -
  • do_batch_finish() (evennia.typeclasses.attributes.IAttributeBackend method) - -
  • -
  • do_batch_update_attribute() (evennia.typeclasses.attributes.IAttributeBackend method) - -
  • -
  • do_create_attribute() (evennia.typeclasses.attributes.IAttributeBackend method) - -
  • -
  • do_delete_attribute() (evennia.typeclasses.attributes.IAttributeBackend method) - -
  • do_gmcp() (evennia.server.portal.telnet_oob.TelnetOOB method)
  • do_hunting() (evennia.contrib.tutorial_world.mob.Mob method) @@ -4050,14 +3986,6 @@
  • do_unpickle() (in module evennia.utils.dbserialize)
  • -
  • do_update_attribute() (evennia.typeclasses.attributes.IAttributeBackend method) - -
  • DoNothing (class in evennia.scripts.scripts)
  • DoNothing.DoesNotExist @@ -6014,14 +5942,12 @@
  • format_diff() (in module evennia.prototypes.spawner)
  • format_external() (evennia.comms.comms.DefaultChannel method) -
  • -
  • format_grid() (in module evennia.utils.utils)
  • format_help() (evennia.contrib.unixcommand.UnixCommandParser method)
  • format_help_entry() (evennia.commands.default.help.CmdHelp static method)
  • -
  • format_help_list() (evennia.commands.default.help.CmdHelp method) +
  • format_help_list() (evennia.commands.default.help.CmdHelp static method)
  • format_message() (evennia.comms.comms.DefaultChannel method)
  • @@ -6556,8 +6482,6 @@
  • GenderCharacter.MultipleObjectsReturned
  • general_context() (in module evennia.web.utils.general_context) -
  • -
  • generate_sessid() (evennia.server.portal.portalsessionhandler.PortalSessionHandler method)
  • GenericBuildingCmd (class in evennia.contrib.building_menu)
  • @@ -6585,6 +6509,8 @@
  • (evennia.objects.objects.ObjectSessionHandler method)
  • (evennia.scripts.scripthandler.ScriptHandler method) +
  • +
  • (evennia.server.serversession.NAttributeHandler method)
  • (evennia.server.sessionhandler.SessionHandler method)
  • @@ -6592,7 +6518,7 @@
  • (evennia.typeclasses.attributes.AttributeHandler method)
  • -
  • (evennia.typeclasses.attributes.IAttributeBackend method) +
  • (evennia.typeclasses.attributes.NAttributeHandler method)
  • (evennia.typeclasses.attributes.NickHandler method)
  • @@ -6627,9 +6553,7 @@
  • get_alias() (evennia.typeclasses.managers.TypedObjectManager method)
  • -
  • get_all() (evennia.typeclasses.attributes.DbHolder method) -
  • -
  • get_all_attributes() (evennia.typeclasses.attributes.IAttributeBackend method) +
  • get_all() (evennia.server.serversession.NDbHolder method)
  • get_all_cached_instances() (evennia.utils.idmapper.models.SharedMemoryModel class method)
  • @@ -6676,8 +6600,6 @@
  • get_by_permission() (evennia.typeclasses.managers.TypedObjectManager method)
  • get_by_tag() (evennia.typeclasses.managers.TypedObjectManager method) -
  • -
  • get_cache_key() (evennia.server.throttle.Throttle method)
  • get_cached_instance() (evennia.utils.idmapper.models.SharedMemoryModel class method)
  • @@ -6781,10 +6703,10 @@
  • (evennia.typeclasses.models.TypedObject method)
  • - - +
    • get_form() (evennia.objects.admin.ObjectDBAdmin method)
    • get_formset() (evennia.typeclasses.admin.AttributeInline method) @@ -7066,11 +6988,13 @@
    • has() (evennia.commands.cmdsethandler.CmdSetHandler method)
    • has_account() (evennia.objects.objects.DefaultObject property) @@ -7647,10 +7571,6 @@

      I

      - + - + + - + -
    • model() (evennia.typeclasses.attributes.Attribute property) - -
    • -
    • ModelAttributeBackend (class in evennia.typeclasses.attributes)
    • module @@ -10506,6 +10404,12 @@
    • (evennia.contrib.ingame_python.callbackhandler.Callback property)
    • (evennia.typeclasses.models.TypedObject property) +
    • + +
    • NAttributeHandler (class in evennia.server.serversession) + +
    • nattributes (evennia.server.serversession.ServerSession attribute) @@ -10527,6 +10431,8 @@
    • ndb_get() (evennia.server.serversession.ServerSession method)
    • ndb_set() (evennia.server.serversession.ServerSession method) +
    • +
    • NDbHolder (class in evennia.server.serversession)
    • negotiate_sizes() (evennia.server.portal.naws.Naws method)
    • @@ -10705,8 +10611,6 @@
    • none() (in module evennia.locks.lockfuncs)
    • normal (evennia.utils.text2html.TextToHTMLparser attribute) -
    • -
    • normalize_name() (evennia.objects.objects.DefaultCharacter class method)
    • normalize_username() (evennia.accounts.accounts.DefaultAccount class method)
    • @@ -11099,8 +11003,6 @@
    • path (evennia.accounts.accounts.DefaultAccount attribute)
    • -
    • record_ip() (evennia.server.throttle.Throttle method) -
    • RedButton (class in evennia.contrib.tutorial_examples.red_button)
    • RedButton.DoesNotExist @@ -11851,9 +11723,11 @@
    • (evennia.scripts.tickerhandler.TickerPool method)
    • -
    • (evennia.server.throttle.Throttle method) +
    • (evennia.server.serversession.NAttributeHandler method)
    • (evennia.typeclasses.attributes.AttributeHandler method) +
    • +
    • (evennia.typeclasses.attributes.NAttributeHandler method)
    • (evennia.typeclasses.attributes.NickHandler method)
    • @@ -11911,7 +11785,7 @@
    • (evennia.contrib.tutorial_world.objects.TutorialObject method)
    • -
    • (evennia.contrib.tutorial_world.objects.TutorialWeapon method) +
    • (evennia.contrib.tutorial_world.objects.Weapon method)
    • (evennia.locks.lockhandler.LockHandler method)
    • @@ -11919,8 +11793,6 @@
    • reset_cache() (evennia.typeclasses.attributes.AttributeHandler method)
    • @@ -12285,492 +12157,6 @@
    • search_help() (evennia.help.manager.HelpEntryManager method)
    • search_help_entry() (in module evennia.utils.search) -
    • -
    • search_index_entry (evennia.commands.command.Command attribute) - -
    • -
    • validate_email_address() (in module evennia.utils.utils) -
    • -
    • validate_name() (evennia.objects.objects.DefaultCharacter class method)
    • +
      diff --git a/docs/0.9.5/index.html b/docs/0.9.5/index.html index b32a1be9cb..c4693d0385 100644 --- a/docs/0.9.5/index.html +++ b/docs/0.9.5/index.html @@ -107,6 +107,7 @@ time.

    • 0.9.5 (v0.9.5 branch)
    • +
      diff --git a/docs/0.9.5/objects.inv b/docs/0.9.5/objects.inv index 926ce16a25..1b1144509c 100644 Binary files a/docs/0.9.5/objects.inv and b/docs/0.9.5/objects.inv differ diff --git a/docs/0.9.5/py-modindex.html b/docs/0.9.5/py-modindex.html index 86f6b7ac46..9552195864 100644 --- a/docs/0.9.5/py-modindex.html +++ b/docs/0.9.5/py-modindex.html @@ -1174,6 +1174,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      diff --git a/docs/0.9.5/search.html b/docs/0.9.5/search.html index c0288fa32b..983dc6d7a3 100644 --- a/docs/0.9.5/search.html +++ b/docs/0.9.5/search.html @@ -78,6 +78,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      diff --git a/docs/0.9.5/searchindex.js b/docs/0.9.5/searchindex.js index 3a23c74011..6ff7b2a818 100644 --- a/docs/0.9.5/searchindex.js +++ b/docs/0.9.5/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["A-voice-operated-elevator-using-events","API-refactoring","Accounts","Add-a-simple-new-web-page","Add-a-wiki-on-your-website","Adding-Command-Tutorial","Adding-Object-Typeclass-Tutorial","Administrative-Docs","Apache-Config","Arxcode-installing-help","Async-Process","Attributes","Banning","Batch-Code-Processor","Batch-Command-Processor","Batch-Processors","Bootstrap-&-Evennia","Bootstrap-Components-and-Utilities","Builder-Docs","Building-Permissions","Building-Quickstart","Building-a-mech-tutorial","Building-menus","Choosing-An-SQL-Server","Client-Support-Grid","Coding-FAQ","Coding-Introduction","Coding-Utils","Command-Cooldown","Command-Duration","Command-Prompt","Command-Sets","Command-System","Commands","Communications","Connection-Screen","Continuous-Integration","Contributing","Contributing-Docs","Coordinates","Custom-Protocols","Customize-channels","Debugging","Default-Command-Help","Default-Exit-Errors","Developer-Central","Dialogues-in-events","Directory-Overview","Docs-refactoring","Dynamic-In-Game-Map","EvEditor","EvMenu","EvMore","Evennia-API","Evennia-Game-Index","Evennia-Introduction","Evennia-for-Diku-Users","Evennia-for-MUSH-Users","Evennia-for-roleplaying-sessions","Execute-Python-Code","First-Steps-Coding","Game-Planning","Gametime-Tutorial","Getting-Started","Glossary","Grapevine","Guest-Logins","HAProxy-Config","Help-System","Help-System-Tutorial","How-To-Get-And-Give-Help","How-to-connect-Evennia-to-Twitter","IRC","Implementing-a-game-rule-system","Inputfuncs","Installing-on-Android","Internationalization","Learn-Python-for-Evennia-The-Hard-Way","Licensing","Links","Locks","Manually-Configuring-Color","Mass-and-weight-for-objects","Messagepath","MonitorHandler","NPC-shop-Tutorial","New-Models","Nicks","OOB","Objects","Online-Setup","Parsing-command-arguments,-theory-and-best-practices","Portal-And-Server","Profiling","Python-3","Python-basic-introduction","Python-basic-tutorial-part-two","Quirks","RSS","Roadmap","Running-Evennia-in-Docker","Screenshot","Scripts","Security","Server-Conf","Sessions","Setting-up-PyCharm","Signals","Soft-Code","Spawner-and-Prototypes","Start-Stop-Reload","Static-In-Game-Map","Tags","Text-Encodings","TextTags","TickerHandler","Turn-based-Combat-System","Tutorial-Aggressive-NPCs","Tutorial-NPCs-listening","Tutorial-Searching-For-Objects","Tutorial-Tweeting-Game-Stats","Tutorial-Vehicles","Tutorial-World-Introduction","Tutorial-for-basic-MUSH-like-game","Tutorials","Typeclasses","Understanding-Color-Tags","Unit-Testing","Updating-Your-Game","Using-MUX-as-a-Standard","Using-Travis","Version-Control","Weather-Tutorial","Web-Character-Generation","Web-Character-View-Tutorial","Web-Features","Web-Tutorial","Webclient","Webclient-brainstorm","Wiki-Index","Zones","api/evennia","api/evennia-api","api/evennia.accounts","api/evennia.accounts.accounts","api/evennia.accounts.admin","api/evennia.accounts.bots","api/evennia.accounts.manager","api/evennia.accounts.models","api/evennia.commands","api/evennia.commands.cmdhandler","api/evennia.commands.cmdparser","api/evennia.commands.cmdset","api/evennia.commands.cmdsethandler","api/evennia.commands.command","api/evennia.commands.default","api/evennia.commands.default.account","api/evennia.commands.default.admin","api/evennia.commands.default.batchprocess","api/evennia.commands.default.building","api/evennia.commands.default.cmdset_account","api/evennia.commands.default.cmdset_character","api/evennia.commands.default.cmdset_session","api/evennia.commands.default.cmdset_unloggedin","api/evennia.commands.default.comms","api/evennia.commands.default.general","api/evennia.commands.default.help","api/evennia.commands.default.muxcommand","api/evennia.commands.default.syscommands","api/evennia.commands.default.system","api/evennia.commands.default.tests","api/evennia.commands.default.unloggedin","api/evennia.comms","api/evennia.comms.admin","api/evennia.comms.channelhandler","api/evennia.comms.comms","api/evennia.comms.managers","api/evennia.comms.models","api/evennia.contrib","api/evennia.contrib.barter","api/evennia.contrib.building_menu","api/evennia.contrib.chargen","api/evennia.contrib.clothing","api/evennia.contrib.color_markups","api/evennia.contrib.custom_gametime","api/evennia.contrib.dice","api/evennia.contrib.email_login","api/evennia.contrib.extended_room","api/evennia.contrib.fieldfill","api/evennia.contrib.gendersub","api/evennia.contrib.health_bar","api/evennia.contrib.ingame_python","api/evennia.contrib.ingame_python.callbackhandler","api/evennia.contrib.ingame_python.commands","api/evennia.contrib.ingame_python.eventfuncs","api/evennia.contrib.ingame_python.scripts","api/evennia.contrib.ingame_python.tests","api/evennia.contrib.ingame_python.typeclasses","api/evennia.contrib.ingame_python.utils","api/evennia.contrib.mail","api/evennia.contrib.mapbuilder","api/evennia.contrib.menu_login","api/evennia.contrib.multidescer","api/evennia.contrib.puzzles","api/evennia.contrib.random_string_generator","api/evennia.contrib.rplanguage","api/evennia.contrib.rpsystem","api/evennia.contrib.security","api/evennia.contrib.security.auditing","api/evennia.contrib.security.auditing.outputs","api/evennia.contrib.security.auditing.server","api/evennia.contrib.security.auditing.tests","api/evennia.contrib.simpledoor","api/evennia.contrib.slow_exit","api/evennia.contrib.talking_npc","api/evennia.contrib.tree_select","api/evennia.contrib.turnbattle","api/evennia.contrib.turnbattle.tb_basic","api/evennia.contrib.turnbattle.tb_equip","api/evennia.contrib.turnbattle.tb_items","api/evennia.contrib.turnbattle.tb_magic","api/evennia.contrib.turnbattle.tb_range","api/evennia.contrib.tutorial_examples","api/evennia.contrib.tutorial_examples.bodyfunctions","api/evennia.contrib.tutorial_examples.cmdset_red_button","api/evennia.contrib.tutorial_examples.example_batch_code","api/evennia.contrib.tutorial_examples.red_button","api/evennia.contrib.tutorial_examples.red_button_scripts","api/evennia.contrib.tutorial_examples.tests","api/evennia.contrib.tutorial_world","api/evennia.contrib.tutorial_world.intro_menu","api/evennia.contrib.tutorial_world.mob","api/evennia.contrib.tutorial_world.objects","api/evennia.contrib.tutorial_world.rooms","api/evennia.contrib.unixcommand","api/evennia.contrib.wilderness","api/evennia.help","api/evennia.help.admin","api/evennia.help.manager","api/evennia.help.models","api/evennia.locks","api/evennia.locks.lockfuncs","api/evennia.locks.lockhandler","api/evennia.objects","api/evennia.objects.admin","api/evennia.objects.manager","api/evennia.objects.models","api/evennia.objects.objects","api/evennia.prototypes","api/evennia.prototypes.menus","api/evennia.prototypes.protfuncs","api/evennia.prototypes.prototypes","api/evennia.prototypes.spawner","api/evennia.scripts","api/evennia.scripts.admin","api/evennia.scripts.manager","api/evennia.scripts.models","api/evennia.scripts.monitorhandler","api/evennia.scripts.scripthandler","api/evennia.scripts.scripts","api/evennia.scripts.taskhandler","api/evennia.scripts.tickerhandler","api/evennia.server","api/evennia.server.admin","api/evennia.server.amp_client","api/evennia.server.connection_wizard","api/evennia.server.deprecations","api/evennia.server.evennia_launcher","api/evennia.server.game_index_client","api/evennia.server.game_index_client.client","api/evennia.server.game_index_client.service","api/evennia.server.initial_setup","api/evennia.server.inputfuncs","api/evennia.server.manager","api/evennia.server.models","api/evennia.server.portal","api/evennia.server.portal.amp","api/evennia.server.portal.amp_server","api/evennia.server.portal.grapevine","api/evennia.server.portal.irc","api/evennia.server.portal.mccp","api/evennia.server.portal.mssp","api/evennia.server.portal.mxp","api/evennia.server.portal.naws","api/evennia.server.portal.portal","api/evennia.server.portal.portalsessionhandler","api/evennia.server.portal.rss","api/evennia.server.portal.ssh","api/evennia.server.portal.ssl","api/evennia.server.portal.suppress_ga","api/evennia.server.portal.telnet","api/evennia.server.portal.telnet_oob","api/evennia.server.portal.telnet_ssl","api/evennia.server.portal.tests","api/evennia.server.portal.ttype","api/evennia.server.portal.webclient","api/evennia.server.portal.webclient_ajax","api/evennia.server.profiling","api/evennia.server.profiling.dummyrunner","api/evennia.server.profiling.dummyrunner_settings","api/evennia.server.profiling.memplot","api/evennia.server.profiling.settings_mixin","api/evennia.server.profiling.test_queries","api/evennia.server.profiling.tests","api/evennia.server.profiling.timetrace","api/evennia.server.server","api/evennia.server.serversession","api/evennia.server.session","api/evennia.server.sessionhandler","api/evennia.server.signals","api/evennia.server.throttle","api/evennia.server.validators","api/evennia.server.webserver","api/evennia.settings_default","api/evennia.typeclasses","api/evennia.typeclasses.admin","api/evennia.typeclasses.attributes","api/evennia.typeclasses.managers","api/evennia.typeclasses.models","api/evennia.typeclasses.tags","api/evennia.utils","api/evennia.utils.ansi","api/evennia.utils.batchprocessors","api/evennia.utils.containers","api/evennia.utils.create","api/evennia.utils.dbserialize","api/evennia.utils.eveditor","api/evennia.utils.evform","api/evennia.utils.evmenu","api/evennia.utils.evmore","api/evennia.utils.evtable","api/evennia.utils.gametime","api/evennia.utils.idmapper","api/evennia.utils.idmapper.manager","api/evennia.utils.idmapper.models","api/evennia.utils.idmapper.tests","api/evennia.utils.inlinefuncs","api/evennia.utils.logger","api/evennia.utils.optionclasses","api/evennia.utils.optionhandler","api/evennia.utils.picklefield","api/evennia.utils.search","api/evennia.utils.test_resources","api/evennia.utils.text2html","api/evennia.utils.utils","api/evennia.utils.validatorfuncs","api/evennia.web","api/evennia.web.urls","api/evennia.web.utils","api/evennia.web.utils.backends","api/evennia.web.utils.general_context","api/evennia.web.utils.middleware","api/evennia.web.utils.tests","api/evennia.web.webclient","api/evennia.web.webclient.urls","api/evennia.web.webclient.views","api/evennia.web.website","api/evennia.web.website.forms","api/evennia.web.website.templatetags","api/evennia.web.website.templatetags.addclass","api/evennia.web.website.tests","api/evennia.web.website.urls","api/evennia.web.website.views","index","toc"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":1,"sphinx.ext.todo":2,"sphinx.ext.viewcode":1,sphinx:56},filenames:["A-voice-operated-elevator-using-events.md","API-refactoring.md","Accounts.md","Add-a-simple-new-web-page.md","Add-a-wiki-on-your-website.md","Adding-Command-Tutorial.md","Adding-Object-Typeclass-Tutorial.md","Administrative-Docs.md","Apache-Config.md","Arxcode-installing-help.md","Async-Process.md","Attributes.md","Banning.md","Batch-Code-Processor.md","Batch-Command-Processor.md","Batch-Processors.md","Bootstrap-&-Evennia.md","Bootstrap-Components-and-Utilities.md","Builder-Docs.md","Building-Permissions.md","Building-Quickstart.md","Building-a-mech-tutorial.md","Building-menus.md","Choosing-An-SQL-Server.md","Client-Support-Grid.md","Coding-FAQ.md","Coding-Introduction.md","Coding-Utils.md","Command-Cooldown.md","Command-Duration.md","Command-Prompt.md","Command-Sets.md","Command-System.md","Commands.md","Communications.md","Connection-Screen.md","Continuous-Integration.md","Contributing.md","Contributing-Docs.md","Coordinates.md","Custom-Protocols.md","Customize-channels.md","Debugging.md","Default-Command-Help.md","Default-Exit-Errors.md","Developer-Central.md","Dialogues-in-events.md","Directory-Overview.md","Docs-refactoring.md","Dynamic-In-Game-Map.md","EvEditor.md","EvMenu.md","EvMore.md","Evennia-API.md","Evennia-Game-Index.md","Evennia-Introduction.md","Evennia-for-Diku-Users.md","Evennia-for-MUSH-Users.md","Evennia-for-roleplaying-sessions.md","Execute-Python-Code.md","First-Steps-Coding.md","Game-Planning.md","Gametime-Tutorial.md","Getting-Started.md","Glossary.md","Grapevine.md","Guest-Logins.md","HAProxy-Config.md","Help-System.md","Help-System-Tutorial.md","How-To-Get-And-Give-Help.md","How-to-connect-Evennia-to-Twitter.md","IRC.md","Implementing-a-game-rule-system.md","Inputfuncs.md","Installing-on-Android.md","Internationalization.md","Learn-Python-for-Evennia-The-Hard-Way.md","Licensing.md","Links.md","Locks.md","Manually-Configuring-Color.md","Mass-and-weight-for-objects.md","Messagepath.md","MonitorHandler.md","NPC-shop-Tutorial.md","New-Models.md","Nicks.md","OOB.md","Objects.md","Online-Setup.md","Parsing-command-arguments,-theory-and-best-practices.md","Portal-And-Server.md","Profiling.md","Python-3.md","Python-basic-introduction.md","Python-basic-tutorial-part-two.md","Quirks.md","RSS.md","Roadmap.md","Running-Evennia-in-Docker.md","Screenshot.md","Scripts.md","Security.md","Server-Conf.md","Sessions.md","Setting-up-PyCharm.md","Signals.md","Soft-Code.md","Spawner-and-Prototypes.md","Start-Stop-Reload.md","Static-In-Game-Map.md","Tags.md","Text-Encodings.md","TextTags.md","TickerHandler.md","Turn-based-Combat-System.md","Tutorial-Aggressive-NPCs.md","Tutorial-NPCs-listening.md","Tutorial-Searching-For-Objects.md","Tutorial-Tweeting-Game-Stats.md","Tutorial-Vehicles.md","Tutorial-World-Introduction.md","Tutorial-for-basic-MUSH-like-game.md","Tutorials.md","Typeclasses.md","Understanding-Color-Tags.md","Unit-Testing.md","Updating-Your-Game.md","Using-MUX-as-a-Standard.md","Using-Travis.md","Version-Control.md","Weather-Tutorial.md","Web-Character-Generation.md","Web-Character-View-Tutorial.md","Web-Features.md","Web-Tutorial.md","Webclient.md","Webclient-brainstorm.md","Wiki-Index.md","Zones.md","api/evennia.rst","api/evennia-api.rst","api/evennia.accounts.rst","api/evennia.accounts.accounts.rst","api/evennia.accounts.admin.rst","api/evennia.accounts.bots.rst","api/evennia.accounts.manager.rst","api/evennia.accounts.models.rst","api/evennia.commands.rst","api/evennia.commands.cmdhandler.rst","api/evennia.commands.cmdparser.rst","api/evennia.commands.cmdset.rst","api/evennia.commands.cmdsethandler.rst","api/evennia.commands.command.rst","api/evennia.commands.default.rst","api/evennia.commands.default.account.rst","api/evennia.commands.default.admin.rst","api/evennia.commands.default.batchprocess.rst","api/evennia.commands.default.building.rst","api/evennia.commands.default.cmdset_account.rst","api/evennia.commands.default.cmdset_character.rst","api/evennia.commands.default.cmdset_session.rst","api/evennia.commands.default.cmdset_unloggedin.rst","api/evennia.commands.default.comms.rst","api/evennia.commands.default.general.rst","api/evennia.commands.default.help.rst","api/evennia.commands.default.muxcommand.rst","api/evennia.commands.default.syscommands.rst","api/evennia.commands.default.system.rst","api/evennia.commands.default.tests.rst","api/evennia.commands.default.unloggedin.rst","api/evennia.comms.rst","api/evennia.comms.admin.rst","api/evennia.comms.channelhandler.rst","api/evennia.comms.comms.rst","api/evennia.comms.managers.rst","api/evennia.comms.models.rst","api/evennia.contrib.rst","api/evennia.contrib.barter.rst","api/evennia.contrib.building_menu.rst","api/evennia.contrib.chargen.rst","api/evennia.contrib.clothing.rst","api/evennia.contrib.color_markups.rst","api/evennia.contrib.custom_gametime.rst","api/evennia.contrib.dice.rst","api/evennia.contrib.email_login.rst","api/evennia.contrib.extended_room.rst","api/evennia.contrib.fieldfill.rst","api/evennia.contrib.gendersub.rst","api/evennia.contrib.health_bar.rst","api/evennia.contrib.ingame_python.rst","api/evennia.contrib.ingame_python.callbackhandler.rst","api/evennia.contrib.ingame_python.commands.rst","api/evennia.contrib.ingame_python.eventfuncs.rst","api/evennia.contrib.ingame_python.scripts.rst","api/evennia.contrib.ingame_python.tests.rst","api/evennia.contrib.ingame_python.typeclasses.rst","api/evennia.contrib.ingame_python.utils.rst","api/evennia.contrib.mail.rst","api/evennia.contrib.mapbuilder.rst","api/evennia.contrib.menu_login.rst","api/evennia.contrib.multidescer.rst","api/evennia.contrib.puzzles.rst","api/evennia.contrib.random_string_generator.rst","api/evennia.contrib.rplanguage.rst","api/evennia.contrib.rpsystem.rst","api/evennia.contrib.security.rst","api/evennia.contrib.security.auditing.rst","api/evennia.contrib.security.auditing.outputs.rst","api/evennia.contrib.security.auditing.server.rst","api/evennia.contrib.security.auditing.tests.rst","api/evennia.contrib.simpledoor.rst","api/evennia.contrib.slow_exit.rst","api/evennia.contrib.talking_npc.rst","api/evennia.contrib.tree_select.rst","api/evennia.contrib.turnbattle.rst","api/evennia.contrib.turnbattle.tb_basic.rst","api/evennia.contrib.turnbattle.tb_equip.rst","api/evennia.contrib.turnbattle.tb_items.rst","api/evennia.contrib.turnbattle.tb_magic.rst","api/evennia.contrib.turnbattle.tb_range.rst","api/evennia.contrib.tutorial_examples.rst","api/evennia.contrib.tutorial_examples.bodyfunctions.rst","api/evennia.contrib.tutorial_examples.cmdset_red_button.rst","api/evennia.contrib.tutorial_examples.example_batch_code.rst","api/evennia.contrib.tutorial_examples.red_button.rst","api/evennia.contrib.tutorial_examples.red_button_scripts.rst","api/evennia.contrib.tutorial_examples.tests.rst","api/evennia.contrib.tutorial_world.rst","api/evennia.contrib.tutorial_world.intro_menu.rst","api/evennia.contrib.tutorial_world.mob.rst","api/evennia.contrib.tutorial_world.objects.rst","api/evennia.contrib.tutorial_world.rooms.rst","api/evennia.contrib.unixcommand.rst","api/evennia.contrib.wilderness.rst","api/evennia.help.rst","api/evennia.help.admin.rst","api/evennia.help.manager.rst","api/evennia.help.models.rst","api/evennia.locks.rst","api/evennia.locks.lockfuncs.rst","api/evennia.locks.lockhandler.rst","api/evennia.objects.rst","api/evennia.objects.admin.rst","api/evennia.objects.manager.rst","api/evennia.objects.models.rst","api/evennia.objects.objects.rst","api/evennia.prototypes.rst","api/evennia.prototypes.menus.rst","api/evennia.prototypes.protfuncs.rst","api/evennia.prototypes.prototypes.rst","api/evennia.prototypes.spawner.rst","api/evennia.scripts.rst","api/evennia.scripts.admin.rst","api/evennia.scripts.manager.rst","api/evennia.scripts.models.rst","api/evennia.scripts.monitorhandler.rst","api/evennia.scripts.scripthandler.rst","api/evennia.scripts.scripts.rst","api/evennia.scripts.taskhandler.rst","api/evennia.scripts.tickerhandler.rst","api/evennia.server.rst","api/evennia.server.admin.rst","api/evennia.server.amp_client.rst","api/evennia.server.connection_wizard.rst","api/evennia.server.deprecations.rst","api/evennia.server.evennia_launcher.rst","api/evennia.server.game_index_client.rst","api/evennia.server.game_index_client.client.rst","api/evennia.server.game_index_client.service.rst","api/evennia.server.initial_setup.rst","api/evennia.server.inputfuncs.rst","api/evennia.server.manager.rst","api/evennia.server.models.rst","api/evennia.server.portal.rst","api/evennia.server.portal.amp.rst","api/evennia.server.portal.amp_server.rst","api/evennia.server.portal.grapevine.rst","api/evennia.server.portal.irc.rst","api/evennia.server.portal.mccp.rst","api/evennia.server.portal.mssp.rst","api/evennia.server.portal.mxp.rst","api/evennia.server.portal.naws.rst","api/evennia.server.portal.portal.rst","api/evennia.server.portal.portalsessionhandler.rst","api/evennia.server.portal.rss.rst","api/evennia.server.portal.ssh.rst","api/evennia.server.portal.ssl.rst","api/evennia.server.portal.suppress_ga.rst","api/evennia.server.portal.telnet.rst","api/evennia.server.portal.telnet_oob.rst","api/evennia.server.portal.telnet_ssl.rst","api/evennia.server.portal.tests.rst","api/evennia.server.portal.ttype.rst","api/evennia.server.portal.webclient.rst","api/evennia.server.portal.webclient_ajax.rst","api/evennia.server.profiling.rst","api/evennia.server.profiling.dummyrunner.rst","api/evennia.server.profiling.dummyrunner_settings.rst","api/evennia.server.profiling.memplot.rst","api/evennia.server.profiling.settings_mixin.rst","api/evennia.server.profiling.test_queries.rst","api/evennia.server.profiling.tests.rst","api/evennia.server.profiling.timetrace.rst","api/evennia.server.server.rst","api/evennia.server.serversession.rst","api/evennia.server.session.rst","api/evennia.server.sessionhandler.rst","api/evennia.server.signals.rst","api/evennia.server.throttle.rst","api/evennia.server.validators.rst","api/evennia.server.webserver.rst","api/evennia.settings_default.rst","api/evennia.typeclasses.rst","api/evennia.typeclasses.admin.rst","api/evennia.typeclasses.attributes.rst","api/evennia.typeclasses.managers.rst","api/evennia.typeclasses.models.rst","api/evennia.typeclasses.tags.rst","api/evennia.utils.rst","api/evennia.utils.ansi.rst","api/evennia.utils.batchprocessors.rst","api/evennia.utils.containers.rst","api/evennia.utils.create.rst","api/evennia.utils.dbserialize.rst","api/evennia.utils.eveditor.rst","api/evennia.utils.evform.rst","api/evennia.utils.evmenu.rst","api/evennia.utils.evmore.rst","api/evennia.utils.evtable.rst","api/evennia.utils.gametime.rst","api/evennia.utils.idmapper.rst","api/evennia.utils.idmapper.manager.rst","api/evennia.utils.idmapper.models.rst","api/evennia.utils.idmapper.tests.rst","api/evennia.utils.inlinefuncs.rst","api/evennia.utils.logger.rst","api/evennia.utils.optionclasses.rst","api/evennia.utils.optionhandler.rst","api/evennia.utils.picklefield.rst","api/evennia.utils.search.rst","api/evennia.utils.test_resources.rst","api/evennia.utils.text2html.rst","api/evennia.utils.utils.rst","api/evennia.utils.validatorfuncs.rst","api/evennia.web.rst","api/evennia.web.urls.rst","api/evennia.web.utils.rst","api/evennia.web.utils.backends.rst","api/evennia.web.utils.general_context.rst","api/evennia.web.utils.middleware.rst","api/evennia.web.utils.tests.rst","api/evennia.web.webclient.rst","api/evennia.web.webclient.urls.rst","api/evennia.web.webclient.views.rst","api/evennia.web.website.rst","api/evennia.web.website.forms.rst","api/evennia.web.website.templatetags.rst","api/evennia.web.website.templatetags.addclass.rst","api/evennia.web.website.tests.rst","api/evennia.web.website.urls.rst","api/evennia.web.website.views.rst","index.md","toc.md"],objects:{"":{evennia:[141,0,0,"-"]},"evennia.accounts":{accounts:[144,0,0,"-"],admin:[145,0,0,"-"],bots:[146,0,0,"-"],manager:[147,0,0,"-"],models:[148,0,0,"-"]},"evennia.accounts.accounts":{DefaultAccount:[144,1,1,""],DefaultGuest:[144,1,1,""]},"evennia.accounts.accounts.DefaultAccount":{"delete":[144,3,1,""],DoesNotExist:[144,2,1,""],MultipleObjectsReturned:[144,2,1,""],access:[144,3,1,""],at_access:[144,3,1,""],at_account_creation:[144,3,1,""],at_cmdset_get:[144,3,1,""],at_disconnect:[144,3,1,""],at_failed_login:[144,3,1,""],at_first_login:[144,3,1,""],at_first_save:[144,3,1,""],at_init:[144,3,1,""],at_look:[144,3,1,""],at_msg_receive:[144,3,1,""],at_msg_send:[144,3,1,""],at_password_change:[144,3,1,""],at_post_disconnect:[144,3,1,""],at_post_login:[144,3,1,""],at_pre_login:[144,3,1,""],at_server_reload:[144,3,1,""],at_server_shutdown:[144,3,1,""],authenticate:[144,3,1,""],basetype_setup:[144,3,1,""],character:[144,3,1,""],characters:[144,3,1,""],cmdset:[144,4,1,""],connection_time:[144,3,1,""],create:[144,3,1,""],create_character:[144,3,1,""],disconnect_session_from_account:[144,3,1,""],execute_cmd:[144,3,1,""],get_all_puppets:[144,3,1,""],get_puppet:[144,3,1,""],get_username_validators:[144,3,1,""],idle_time:[144,3,1,""],is_banned:[144,3,1,""],msg:[144,3,1,""],nicks:[144,4,1,""],normalize_username:[144,3,1,""],objects:[144,4,1,""],options:[144,4,1,""],path:[144,4,1,""],puppet:[144,3,1,""],puppet_object:[144,3,1,""],scripts:[144,4,1,""],search:[144,3,1,""],sessions:[144,4,1,""],set_password:[144,3,1,""],typename:[144,4,1,""],unpuppet_all:[144,3,1,""],unpuppet_object:[144,3,1,""],validate_password:[144,3,1,""],validate_username:[144,3,1,""]},"evennia.accounts.accounts.DefaultGuest":{DoesNotExist:[144,2,1,""],MultipleObjectsReturned:[144,2,1,""],at_post_disconnect:[144,3,1,""],at_post_login:[144,3,1,""],at_server_shutdown:[144,3,1,""],authenticate:[144,3,1,""],create:[144,3,1,""],path:[144,4,1,""],typename:[144,4,1,""]},"evennia.accounts.admin":{AccountAttributeInline:[145,1,1,""],AccountDBAdmin:[145,1,1,""],AccountDBChangeForm:[145,1,1,""],AccountDBCreationForm:[145,1,1,""],AccountForm:[145,1,1,""],AccountInline:[145,1,1,""],AccountTagInline:[145,1,1,""]},"evennia.accounts.admin.AccountAttributeInline":{media:[145,3,1,""],model:[145,4,1,""],related_field:[145,4,1,""]},"evennia.accounts.admin.AccountDBAdmin":{add_fieldsets:[145,4,1,""],add_form:[145,4,1,""],fieldsets:[145,4,1,""],form:[145,4,1,""],inlines:[145,4,1,""],list_display:[145,4,1,""],media:[145,3,1,""],response_add:[145,3,1,""],save_model:[145,3,1,""],user_change_password:[145,3,1,""]},"evennia.accounts.admin.AccountDBChangeForm":{Meta:[145,1,1,""],base_fields:[145,4,1,""],clean_username:[145,3,1,""],declared_fields:[145,4,1,""],media:[145,3,1,""]},"evennia.accounts.admin.AccountDBChangeForm.Meta":{fields:[145,4,1,""],model:[145,4,1,""]},"evennia.accounts.admin.AccountDBCreationForm":{Meta:[145,1,1,""],base_fields:[145,4,1,""],clean_username:[145,3,1,""],declared_fields:[145,4,1,""],media:[145,3,1,""]},"evennia.accounts.admin.AccountDBCreationForm.Meta":{fields:[145,4,1,""],model:[145,4,1,""]},"evennia.accounts.admin.AccountForm":{Meta:[145,1,1,""],base_fields:[145,4,1,""],declared_fields:[145,4,1,""],media:[145,3,1,""]},"evennia.accounts.admin.AccountForm.Meta":{app_label:[145,4,1,""],fields:[145,4,1,""],model:[145,4,1,""]},"evennia.accounts.admin.AccountInline":{extra:[145,4,1,""],fieldsets:[145,4,1,""],form:[145,4,1,""],max_num:[145,4,1,""],media:[145,3,1,""],model:[145,4,1,""],template:[145,4,1,""]},"evennia.accounts.admin.AccountTagInline":{media:[145,3,1,""],model:[145,4,1,""],related_field:[145,4,1,""]},"evennia.accounts.bots":{Bot:[146,1,1,""],BotStarter:[146,1,1,""],GrapevineBot:[146,1,1,""],IRCBot:[146,1,1,""],RSSBot:[146,1,1,""]},"evennia.accounts.bots.Bot":{DoesNotExist:[146,2,1,""],MultipleObjectsReturned:[146,2,1,""],at_server_shutdown:[146,3,1,""],basetype_setup:[146,3,1,""],execute_cmd:[146,3,1,""],msg:[146,3,1,""],path:[146,4,1,""],start:[146,3,1,""],typename:[146,4,1,""]},"evennia.accounts.bots.BotStarter":{DoesNotExist:[146,2,1,""],MultipleObjectsReturned:[146,2,1,""],at_repeat:[146,3,1,""],at_script_creation:[146,3,1,""],at_server_reload:[146,3,1,""],at_server_shutdown:[146,3,1,""],at_start:[146,3,1,""],path:[146,4,1,""],typename:[146,4,1,""]},"evennia.accounts.bots.GrapevineBot":{DoesNotExist:[146,2,1,""],MultipleObjectsReturned:[146,2,1,""],at_msg_send:[146,3,1,""],execute_cmd:[146,3,1,""],factory_path:[146,4,1,""],msg:[146,3,1,""],path:[146,4,1,""],start:[146,3,1,""],typename:[146,4,1,""]},"evennia.accounts.bots.IRCBot":{DoesNotExist:[146,2,1,""],MultipleObjectsReturned:[146,2,1,""],at_msg_send:[146,3,1,""],execute_cmd:[146,3,1,""],factory_path:[146,4,1,""],get_nicklist:[146,3,1,""],msg:[146,3,1,""],path:[146,4,1,""],ping:[146,3,1,""],reconnect:[146,3,1,""],start:[146,3,1,""],typename:[146,4,1,""]},"evennia.accounts.bots.RSSBot":{DoesNotExist:[146,2,1,""],MultipleObjectsReturned:[146,2,1,""],execute_cmd:[146,3,1,""],path:[146,4,1,""],start:[146,3,1,""],typename:[146,4,1,""]},"evennia.accounts.manager":{AccountManager:[147,1,1,""]},"evennia.accounts.models":{AccountDB:[148,1,1,""]},"evennia.accounts.models.AccountDB":{DoesNotExist:[148,2,1,""],MultipleObjectsReturned:[148,2,1,""],account_subscription_set:[148,4,1,""],cmdset_storage:[148,3,1,""],db_attributes:[148,4,1,""],db_cmdset_storage:[148,4,1,""],db_is_bot:[148,4,1,""],db_is_connected:[148,4,1,""],db_tags:[148,4,1,""],get_next_by_date_joined:[148,3,1,""],get_next_by_db_date_created:[148,3,1,""],get_previous_by_date_joined:[148,3,1,""],get_previous_by_db_date_created:[148,3,1,""],groups:[148,4,1,""],hide_from_accounts_set:[148,4,1,""],id:[148,4,1,""],is_bot:[148,3,1,""],is_connected:[148,3,1,""],key:[148,3,1,""],logentry_set:[148,4,1,""],name:[148,3,1,""],objectdb_set:[148,4,1,""],objects:[148,4,1,""],path:[148,4,1,""],receiver_account_set:[148,4,1,""],scriptdb_set:[148,4,1,""],sender_account_set:[148,4,1,""],typename:[148,4,1,""],uid:[148,3,1,""],user_permissions:[148,4,1,""]},"evennia.commands":{"default":[155,0,0,"-"],cmdhandler:[150,0,0,"-"],cmdparser:[151,0,0,"-"],cmdset:[152,0,0,"-"],cmdsethandler:[153,0,0,"-"],command:[154,0,0,"-"]},"evennia.commands.cmdhandler":{InterruptCommand:[150,2,1,""],cmdhandler:[150,5,1,""]},"evennia.commands.cmdparser":{build_matches:[151,5,1,""],cmdparser:[151,5,1,""],create_match:[151,5,1,""],try_num_prefixes:[151,5,1,""]},"evennia.commands.cmdset":{CmdSet:[152,1,1,""]},"evennia.commands.cmdset.CmdSet":{__init__:[152,3,1,""],add:[152,3,1,""],at_cmdset_creation:[152,3,1,""],count:[152,3,1,""],duplicates:[152,4,1,""],errmessage:[152,4,1,""],get:[152,3,1,""],get_all_cmd_keys_and_aliases:[152,3,1,""],get_system_cmds:[152,3,1,""],key:[152,4,1,""],key_mergetypes:[152,4,1,""],make_unique:[152,3,1,""],mergetype:[152,4,1,""],no_channels:[152,4,1,""],no_exits:[152,4,1,""],no_objs:[152,4,1,""],path:[152,4,1,""],permanent:[152,4,1,""],priority:[152,4,1,""],remove:[152,3,1,""],to_duplicate:[152,4,1,""]},"evennia.commands.cmdsethandler":{CmdSetHandler:[153,1,1,""],import_cmdset:[153,5,1,""]},"evennia.commands.cmdsethandler.CmdSetHandler":{"delete":[153,3,1,""],__init__:[153,3,1,""],add:[153,3,1,""],add_default:[153,3,1,""],all:[153,3,1,""],clear:[153,3,1,""],delete_default:[153,3,1,""],get:[153,3,1,""],has:[153,3,1,""],has_cmdset:[153,3,1,""],remove:[153,3,1,""],remove_default:[153,3,1,""],reset:[153,3,1,""],update:[153,3,1,""]},"evennia.commands.command":{Command:[154,1,1,""],CommandMeta:[154,1,1,""],InterruptCommand:[154,2,1,""]},"evennia.commands.command.Command":{__init__:[154,3,1,""],access:[154,3,1,""],aliases:[154,4,1,""],arg_regex:[154,4,1,""],at_post_cmd:[154,3,1,""],at_pre_cmd:[154,3,1,""],auto_help:[154,4,1,""],client_width:[154,3,1,""],execute_cmd:[154,3,1,""],func:[154,3,1,""],get_command_info:[154,3,1,""],get_extra_info:[154,3,1,""],get_help:[154,3,1,""],help_category:[154,4,1,""],is_exit:[154,4,1,""],key:[154,4,1,""],lock_storage:[154,4,1,""],lockhandler:[154,4,1,""],locks:[154,4,1,""],match:[154,3,1,""],msg:[154,3,1,""],msg_all_sessions:[154,4,1,""],parse:[154,3,1,""],save_for_next:[154,4,1,""],search_index_entry:[154,4,1,""],set_aliases:[154,3,1,""],set_key:[154,3,1,""],styled_footer:[154,3,1,""],styled_header:[154,3,1,""],styled_separator:[154,3,1,""],styled_table:[154,3,1,""]},"evennia.commands.command.CommandMeta":{__init__:[154,3,1,""]},"evennia.commands.default":{account:[156,0,0,"-"],admin:[157,0,0,"-"],batchprocess:[158,0,0,"-"],building:[159,0,0,"-"],cmdset_account:[160,0,0,"-"],cmdset_character:[161,0,0,"-"],cmdset_session:[162,0,0,"-"],cmdset_unloggedin:[163,0,0,"-"],comms:[164,0,0,"-"],general:[165,0,0,"-"],help:[166,0,0,"-"],muxcommand:[167,0,0,"-"],syscommands:[168,0,0,"-"],system:[169,0,0,"-"],unloggedin:[171,0,0,"-"]},"evennia.commands.default.account":{CmdCharCreate:[156,1,1,""],CmdCharDelete:[156,1,1,""],CmdColorTest:[156,1,1,""],CmdIC:[156,1,1,""],CmdOOC:[156,1,1,""],CmdOOCLook:[156,1,1,""],CmdOption:[156,1,1,""],CmdPassword:[156,1,1,""],CmdQuell:[156,1,1,""],CmdQuit:[156,1,1,""],CmdSessions:[156,1,1,""],CmdStyle:[156,1,1,""],CmdWho:[156,1,1,""]},"evennia.commands.default.account.CmdCharCreate":{account_caller:[156,4,1,""],aliases:[156,4,1,""],func:[156,3,1,""],help_category:[156,4,1,""],key:[156,4,1,""],lock_storage:[156,4,1,""],locks:[156,4,1,""],search_index_entry:[156,4,1,""]},"evennia.commands.default.account.CmdCharDelete":{aliases:[156,4,1,""],func:[156,3,1,""],help_category:[156,4,1,""],key:[156,4,1,""],lock_storage:[156,4,1,""],locks:[156,4,1,""],search_index_entry:[156,4,1,""]},"evennia.commands.default.account.CmdColorTest":{account_caller:[156,4,1,""],aliases:[156,4,1,""],func:[156,3,1,""],help_category:[156,4,1,""],key:[156,4,1,""],lock_storage:[156,4,1,""],locks:[156,4,1,""],search_index_entry:[156,4,1,""],slice_bright_bg:[156,4,1,""],slice_bright_fg:[156,4,1,""],slice_dark_bg:[156,4,1,""],slice_dark_fg:[156,4,1,""],table_format:[156,3,1,""]},"evennia.commands.default.account.CmdIC":{account_caller:[156,4,1,""],aliases:[156,4,1,""],func:[156,3,1,""],help_category:[156,4,1,""],key:[156,4,1,""],lock_storage:[156,4,1,""],locks:[156,4,1,""],search_index_entry:[156,4,1,""]},"evennia.commands.default.account.CmdOOC":{account_caller:[156,4,1,""],aliases:[156,4,1,""],func:[156,3,1,""],help_category:[156,4,1,""],key:[156,4,1,""],lock_storage:[156,4,1,""],locks:[156,4,1,""],search_index_entry:[156,4,1,""]},"evennia.commands.default.account.CmdOOCLook":{account_caller:[156,4,1,""],aliases:[156,4,1,""],func:[156,3,1,""],help_category:[156,4,1,""],key:[156,4,1,""],lock_storage:[156,4,1,""],locks:[156,4,1,""],search_index_entry:[156,4,1,""]},"evennia.commands.default.account.CmdOption":{account_caller:[156,4,1,""],aliases:[156,4,1,""],func:[156,3,1,""],help_category:[156,4,1,""],key:[156,4,1,""],lock_storage:[156,4,1,""],locks:[156,4,1,""],search_index_entry:[156,4,1,""],switch_options:[156,4,1,""]},"evennia.commands.default.account.CmdPassword":{account_caller:[156,4,1,""],aliases:[156,4,1,""],func:[156,3,1,""],help_category:[156,4,1,""],key:[156,4,1,""],lock_storage:[156,4,1,""],locks:[156,4,1,""],search_index_entry:[156,4,1,""]},"evennia.commands.default.account.CmdQuell":{account_caller:[156,4,1,""],aliases:[156,4,1,""],func:[156,3,1,""],help_category:[156,4,1,""],key:[156,4,1,""],lock_storage:[156,4,1,""],locks:[156,4,1,""],search_index_entry:[156,4,1,""]},"evennia.commands.default.account.CmdQuit":{account_caller:[156,4,1,""],aliases:[156,4,1,""],func:[156,3,1,""],help_category:[156,4,1,""],key:[156,4,1,""],lock_storage:[156,4,1,""],locks:[156,4,1,""],search_index_entry:[156,4,1,""],switch_options:[156,4,1,""]},"evennia.commands.default.account.CmdSessions":{account_caller:[156,4,1,""],aliases:[156,4,1,""],func:[156,3,1,""],help_category:[156,4,1,""],key:[156,4,1,""],lock_storage:[156,4,1,""],locks:[156,4,1,""],search_index_entry:[156,4,1,""]},"evennia.commands.default.account.CmdStyle":{aliases:[156,4,1,""],func:[156,3,1,""],help_category:[156,4,1,""],key:[156,4,1,""],list_styles:[156,3,1,""],lock_storage:[156,4,1,""],search_index_entry:[156,4,1,""],set:[156,3,1,""],switch_options:[156,4,1,""]},"evennia.commands.default.account.CmdWho":{account_caller:[156,4,1,""],aliases:[156,4,1,""],func:[156,3,1,""],help_category:[156,4,1,""],key:[156,4,1,""],lock_storage:[156,4,1,""],locks:[156,4,1,""],search_index_entry:[156,4,1,""]},"evennia.commands.default.admin":{CmdBan:[157,1,1,""],CmdBoot:[157,1,1,""],CmdEmit:[157,1,1,""],CmdForce:[157,1,1,""],CmdNewPassword:[157,1,1,""],CmdPerm:[157,1,1,""],CmdUnban:[157,1,1,""],CmdWall:[157,1,1,""]},"evennia.commands.default.admin.CmdBan":{aliases:[157,4,1,""],func:[157,3,1,""],help_category:[157,4,1,""],key:[157,4,1,""],lock_storage:[157,4,1,""],locks:[157,4,1,""],search_index_entry:[157,4,1,""]},"evennia.commands.default.admin.CmdBoot":{aliases:[157,4,1,""],func:[157,3,1,""],help_category:[157,4,1,""],key:[157,4,1,""],lock_storage:[157,4,1,""],locks:[157,4,1,""],search_index_entry:[157,4,1,""],switch_options:[157,4,1,""]},"evennia.commands.default.admin.CmdEmit":{aliases:[157,4,1,""],func:[157,3,1,""],help_category:[157,4,1,""],key:[157,4,1,""],lock_storage:[157,4,1,""],locks:[157,4,1,""],search_index_entry:[157,4,1,""],switch_options:[157,4,1,""]},"evennia.commands.default.admin.CmdForce":{aliases:[157,4,1,""],func:[157,3,1,""],help_category:[157,4,1,""],key:[157,4,1,""],lock_storage:[157,4,1,""],locks:[157,4,1,""],perm_used:[157,4,1,""],search_index_entry:[157,4,1,""]},"evennia.commands.default.admin.CmdNewPassword":{aliases:[157,4,1,""],func:[157,3,1,""],help_category:[157,4,1,""],key:[157,4,1,""],lock_storage:[157,4,1,""],locks:[157,4,1,""],search_index_entry:[157,4,1,""]},"evennia.commands.default.admin.CmdPerm":{aliases:[157,4,1,""],func:[157,3,1,""],help_category:[157,4,1,""],key:[157,4,1,""],lock_storage:[157,4,1,""],locks:[157,4,1,""],search_index_entry:[157,4,1,""],switch_options:[157,4,1,""]},"evennia.commands.default.admin.CmdUnban":{aliases:[157,4,1,""],func:[157,3,1,""],help_category:[157,4,1,""],key:[157,4,1,""],lock_storage:[157,4,1,""],locks:[157,4,1,""],search_index_entry:[157,4,1,""]},"evennia.commands.default.admin.CmdWall":{aliases:[157,4,1,""],func:[157,3,1,""],help_category:[157,4,1,""],key:[157,4,1,""],lock_storage:[157,4,1,""],locks:[157,4,1,""],search_index_entry:[157,4,1,""]},"evennia.commands.default.batchprocess":{CmdBatchCode:[158,1,1,""],CmdBatchCommands:[158,1,1,""]},"evennia.commands.default.batchprocess.CmdBatchCode":{aliases:[158,4,1,""],func:[158,3,1,""],help_category:[158,4,1,""],key:[158,4,1,""],lock_storage:[158,4,1,""],locks:[158,4,1,""],search_index_entry:[158,4,1,""],switch_options:[158,4,1,""]},"evennia.commands.default.batchprocess.CmdBatchCommands":{aliases:[158,4,1,""],func:[158,3,1,""],help_category:[158,4,1,""],key:[158,4,1,""],lock_storage:[158,4,1,""],locks:[158,4,1,""],search_index_entry:[158,4,1,""],switch_options:[158,4,1,""]},"evennia.commands.default.building":{CmdCopy:[159,1,1,""],CmdCpAttr:[159,1,1,""],CmdCreate:[159,1,1,""],CmdDesc:[159,1,1,""],CmdDestroy:[159,1,1,""],CmdDig:[159,1,1,""],CmdExamine:[159,1,1,""],CmdFind:[159,1,1,""],CmdLink:[159,1,1,""],CmdListCmdSets:[159,1,1,""],CmdLock:[159,1,1,""],CmdMvAttr:[159,1,1,""],CmdName:[159,1,1,""],CmdOpen:[159,1,1,""],CmdScript:[159,1,1,""],CmdSetAttribute:[159,1,1,""],CmdSetHome:[159,1,1,""],CmdSetObjAlias:[159,1,1,""],CmdSpawn:[159,1,1,""],CmdTag:[159,1,1,""],CmdTeleport:[159,1,1,""],CmdTunnel:[159,1,1,""],CmdTypeclass:[159,1,1,""],CmdUnLink:[159,1,1,""],CmdWipe:[159,1,1,""],ObjManipCommand:[159,1,1,""]},"evennia.commands.default.building.CmdCopy":{aliases:[159,4,1,""],func:[159,3,1,""],help_category:[159,4,1,""],key:[159,4,1,""],lock_storage:[159,4,1,""],locks:[159,4,1,""],search_index_entry:[159,4,1,""]},"evennia.commands.default.building.CmdCpAttr":{aliases:[159,4,1,""],check_from_attr:[159,3,1,""],check_has_attr:[159,3,1,""],check_to_attr:[159,3,1,""],func:[159,3,1,""],get_attr:[159,3,1,""],help_category:[159,4,1,""],key:[159,4,1,""],lock_storage:[159,4,1,""],locks:[159,4,1,""],search_index_entry:[159,4,1,""],switch_options:[159,4,1,""]},"evennia.commands.default.building.CmdCreate":{aliases:[159,4,1,""],func:[159,3,1,""],help_category:[159,4,1,""],key:[159,4,1,""],lock_storage:[159,4,1,""],locks:[159,4,1,""],new_obj_lockstring:[159,4,1,""],search_index_entry:[159,4,1,""],switch_options:[159,4,1,""]},"evennia.commands.default.building.CmdDesc":{aliases:[159,4,1,""],edit_handler:[159,3,1,""],func:[159,3,1,""],help_category:[159,4,1,""],key:[159,4,1,""],lock_storage:[159,4,1,""],locks:[159,4,1,""],search_index_entry:[159,4,1,""],switch_options:[159,4,1,""]},"evennia.commands.default.building.CmdDestroy":{aliases:[159,4,1,""],confirm:[159,4,1,""],default_confirm:[159,4,1,""],func:[159,3,1,""],help_category:[159,4,1,""],key:[159,4,1,""],lock_storage:[159,4,1,""],locks:[159,4,1,""],search_index_entry:[159,4,1,""],switch_options:[159,4,1,""]},"evennia.commands.default.building.CmdDig":{aliases:[159,4,1,""],func:[159,3,1,""],help_category:[159,4,1,""],key:[159,4,1,""],lock_storage:[159,4,1,""],locks:[159,4,1,""],new_room_lockstring:[159,4,1,""],search_index_entry:[159,4,1,""],switch_options:[159,4,1,""]},"evennia.commands.default.building.CmdExamine":{account_mode:[159,4,1,""],aliases:[159,4,1,""],arg_regex:[159,4,1,""],detail_color:[159,4,1,""],format_attributes:[159,3,1,""],format_output:[159,3,1,""],func:[159,3,1,""],header_color:[159,4,1,""],help_category:[159,4,1,""],key:[159,4,1,""],list_attribute:[159,3,1,""],lock_storage:[159,4,1,""],locks:[159,4,1,""],quell_color:[159,4,1,""],search_index_entry:[159,4,1,""],separator:[159,4,1,""]},"evennia.commands.default.building.CmdFind":{aliases:[159,4,1,""],func:[159,3,1,""],help_category:[159,4,1,""],key:[159,4,1,""],lock_storage:[159,4,1,""],locks:[159,4,1,""],search_index_entry:[159,4,1,""],switch_options:[159,4,1,""]},"evennia.commands.default.building.CmdLink":{aliases:[159,4,1,""],func:[159,3,1,""],help_category:[159,4,1,""],key:[159,4,1,""],lock_storage:[159,4,1,""],locks:[159,4,1,""],search_index_entry:[159,4,1,""]},"evennia.commands.default.building.CmdListCmdSets":{aliases:[159,4,1,""],func:[159,3,1,""],help_category:[159,4,1,""],key:[159,4,1,""],lock_storage:[159,4,1,""],locks:[159,4,1,""],search_index_entry:[159,4,1,""]},"evennia.commands.default.building.CmdLock":{aliases:[159,4,1,""],func:[159,3,1,""],help_category:[159,4,1,""],key:[159,4,1,""],lock_storage:[159,4,1,""],locks:[159,4,1,""],search_index_entry:[159,4,1,""]},"evennia.commands.default.building.CmdMvAttr":{aliases:[159,4,1,""],func:[159,3,1,""],help_category:[159,4,1,""],key:[159,4,1,""],lock_storage:[159,4,1,""],locks:[159,4,1,""],search_index_entry:[159,4,1,""],switch_options:[159,4,1,""]},"evennia.commands.default.building.CmdName":{aliases:[159,4,1,""],func:[159,3,1,""],help_category:[159,4,1,""],key:[159,4,1,""],lock_storage:[159,4,1,""],locks:[159,4,1,""],search_index_entry:[159,4,1,""]},"evennia.commands.default.building.CmdOpen":{aliases:[159,4,1,""],create_exit:[159,3,1,""],func:[159,3,1,""],help_category:[159,4,1,""],key:[159,4,1,""],lock_storage:[159,4,1,""],locks:[159,4,1,""],new_obj_lockstring:[159,4,1,""],search_index_entry:[159,4,1,""]},"evennia.commands.default.building.CmdScript":{aliases:[159,4,1,""],func:[159,3,1,""],help_category:[159,4,1,""],key:[159,4,1,""],lock_storage:[159,4,1,""],locks:[159,4,1,""],search_index_entry:[159,4,1,""],switch_options:[159,4,1,""]},"evennia.commands.default.building.CmdSetAttribute":{aliases:[159,4,1,""],check_attr:[159,3,1,""],check_obj:[159,3,1,""],do_nested_lookup:[159,3,1,""],edit_handler:[159,3,1,""],func:[159,3,1,""],help_category:[159,4,1,""],key:[159,4,1,""],lock_storage:[159,4,1,""],locks:[159,4,1,""],nested_re:[159,4,1,""],not_found:[159,4,1,""],rm_attr:[159,3,1,""],search_for_obj:[159,3,1,""],search_index_entry:[159,4,1,""],set_attr:[159,3,1,""],split_nested_attr:[159,3,1,""],view_attr:[159,3,1,""]},"evennia.commands.default.building.CmdSetHome":{aliases:[159,4,1,""],func:[159,3,1,""],help_category:[159,4,1,""],key:[159,4,1,""],lock_storage:[159,4,1,""],locks:[159,4,1,""],search_index_entry:[159,4,1,""]},"evennia.commands.default.building.CmdSetObjAlias":{aliases:[159,4,1,""],func:[159,3,1,""],help_category:[159,4,1,""],key:[159,4,1,""],lock_storage:[159,4,1,""],locks:[159,4,1,""],search_index_entry:[159,4,1,""],switch_options:[159,4,1,""]},"evennia.commands.default.building.CmdSpawn":{aliases:[159,4,1,""],func:[159,3,1,""],help_category:[159,4,1,""],key:[159,4,1,""],lock_storage:[159,4,1,""],locks:[159,4,1,""],search_index_entry:[159,4,1,""],switch_options:[159,4,1,""]},"evennia.commands.default.building.CmdTag":{aliases:[159,4,1,""],arg_regex:[159,4,1,""],func:[159,3,1,""],help_category:[159,4,1,""],key:[159,4,1,""],lock_storage:[159,4,1,""],locks:[159,4,1,""],options:[159,4,1,""],search_index_entry:[159,4,1,""]},"evennia.commands.default.building.CmdTeleport":{aliases:[159,4,1,""],func:[159,3,1,""],help_category:[159,4,1,""],key:[159,4,1,""],lock_storage:[159,4,1,""],locks:[159,4,1,""],rhs_split:[159,4,1,""],search_index_entry:[159,4,1,""],switch_options:[159,4,1,""]},"evennia.commands.default.building.CmdTunnel":{aliases:[159,4,1,""],directions:[159,4,1,""],func:[159,3,1,""],help_category:[159,4,1,""],key:[159,4,1,""],lock_storage:[159,4,1,""],locks:[159,4,1,""],search_index_entry:[159,4,1,""],switch_options:[159,4,1,""]},"evennia.commands.default.building.CmdTypeclass":{aliases:[159,4,1,""],func:[159,3,1,""],help_category:[159,4,1,""],key:[159,4,1,""],lock_storage:[159,4,1,""],locks:[159,4,1,""],search_index_entry:[159,4,1,""],switch_options:[159,4,1,""]},"evennia.commands.default.building.CmdUnLink":{aliases:[159,4,1,""],func:[159,3,1,""],help_category:[159,4,1,""],help_key:[159,4,1,""],key:[159,4,1,""],lock_storage:[159,4,1,""],locks:[159,4,1,""],search_index_entry:[159,4,1,""]},"evennia.commands.default.building.CmdWipe":{aliases:[159,4,1,""],func:[159,3,1,""],help_category:[159,4,1,""],key:[159,4,1,""],lock_storage:[159,4,1,""],locks:[159,4,1,""],search_index_entry:[159,4,1,""]},"evennia.commands.default.building.ObjManipCommand":{aliases:[159,4,1,""],help_category:[159,4,1,""],key:[159,4,1,""],lock_storage:[159,4,1,""],parse:[159,3,1,""],search_index_entry:[159,4,1,""]},"evennia.commands.default.cmdset_account":{AccountCmdSet:[160,1,1,""]},"evennia.commands.default.cmdset_account.AccountCmdSet":{at_cmdset_creation:[160,3,1,""],key:[160,4,1,""],path:[160,4,1,""],priority:[160,4,1,""]},"evennia.commands.default.cmdset_character":{CharacterCmdSet:[161,1,1,""]},"evennia.commands.default.cmdset_character.CharacterCmdSet":{at_cmdset_creation:[161,3,1,""],key:[161,4,1,""],path:[161,4,1,""],priority:[161,4,1,""]},"evennia.commands.default.cmdset_session":{SessionCmdSet:[162,1,1,""]},"evennia.commands.default.cmdset_session.SessionCmdSet":{at_cmdset_creation:[162,3,1,""],key:[162,4,1,""],path:[162,4,1,""],priority:[162,4,1,""]},"evennia.commands.default.cmdset_unloggedin":{UnloggedinCmdSet:[163,1,1,""]},"evennia.commands.default.cmdset_unloggedin.UnloggedinCmdSet":{at_cmdset_creation:[163,3,1,""],key:[163,4,1,""],path:[163,4,1,""],priority:[163,4,1,""]},"evennia.commands.default.comms":{CmdAddCom:[164,1,1,""],CmdAllCom:[164,1,1,""],CmdCBoot:[164,1,1,""],CmdCWho:[164,1,1,""],CmdCdesc:[164,1,1,""],CmdCdestroy:[164,1,1,""],CmdCemit:[164,1,1,""],CmdChannelCreate:[164,1,1,""],CmdChannels:[164,1,1,""],CmdClock:[164,1,1,""],CmdDelCom:[164,1,1,""],CmdGrapevine2Chan:[164,1,1,""],CmdIRC2Chan:[164,1,1,""],CmdIRCStatus:[164,1,1,""],CmdPage:[164,1,1,""],CmdRSS2Chan:[164,1,1,""]},"evennia.commands.default.comms.CmdAddCom":{account_caller:[164,4,1,""],aliases:[164,4,1,""],func:[164,3,1,""],help_category:[164,4,1,""],key:[164,4,1,""],lock_storage:[164,4,1,""],locks:[164,4,1,""],search_index_entry:[164,4,1,""]},"evennia.commands.default.comms.CmdAllCom":{account_caller:[164,4,1,""],aliases:[164,4,1,""],func:[164,3,1,""],help_category:[164,4,1,""],key:[164,4,1,""],lock_storage:[164,4,1,""],locks:[164,4,1,""],search_index_entry:[164,4,1,""]},"evennia.commands.default.comms.CmdCBoot":{account_caller:[164,4,1,""],aliases:[164,4,1,""],func:[164,3,1,""],help_category:[164,4,1,""],key:[164,4,1,""],lock_storage:[164,4,1,""],locks:[164,4,1,""],search_index_entry:[164,4,1,""],switch_options:[164,4,1,""]},"evennia.commands.default.comms.CmdCWho":{account_caller:[164,4,1,""],aliases:[164,4,1,""],func:[164,3,1,""],help_category:[164,4,1,""],key:[164,4,1,""],lock_storage:[164,4,1,""],locks:[164,4,1,""],search_index_entry:[164,4,1,""]},"evennia.commands.default.comms.CmdCdesc":{account_caller:[164,4,1,""],aliases:[164,4,1,""],func:[164,3,1,""],help_category:[164,4,1,""],key:[164,4,1,""],lock_storage:[164,4,1,""],locks:[164,4,1,""],search_index_entry:[164,4,1,""]},"evennia.commands.default.comms.CmdCdestroy":{account_caller:[164,4,1,""],aliases:[164,4,1,""],func:[164,3,1,""],help_category:[164,4,1,""],key:[164,4,1,""],lock_storage:[164,4,1,""],locks:[164,4,1,""],search_index_entry:[164,4,1,""]},"evennia.commands.default.comms.CmdCemit":{account_caller:[164,4,1,""],aliases:[164,4,1,""],func:[164,3,1,""],help_category:[164,4,1,""],key:[164,4,1,""],lock_storage:[164,4,1,""],locks:[164,4,1,""],search_index_entry:[164,4,1,""],switch_options:[164,4,1,""]},"evennia.commands.default.comms.CmdChannelCreate":{account_caller:[164,4,1,""],aliases:[164,4,1,""],func:[164,3,1,""],help_category:[164,4,1,""],key:[164,4,1,""],lock_storage:[164,4,1,""],locks:[164,4,1,""],search_index_entry:[164,4,1,""]},"evennia.commands.default.comms.CmdChannels":{account_caller:[164,4,1,""],aliases:[164,4,1,""],func:[164,3,1,""],help_category:[164,4,1,""],key:[164,4,1,""],lock_storage:[164,4,1,""],locks:[164,4,1,""],search_index_entry:[164,4,1,""]},"evennia.commands.default.comms.CmdClock":{account_caller:[164,4,1,""],aliases:[164,4,1,""],func:[164,3,1,""],help_category:[164,4,1,""],key:[164,4,1,""],lock_storage:[164,4,1,""],locks:[164,4,1,""],search_index_entry:[164,4,1,""]},"evennia.commands.default.comms.CmdDelCom":{account_caller:[164,4,1,""],aliases:[164,4,1,""],func:[164,3,1,""],help_category:[164,4,1,""],key:[164,4,1,""],lock_storage:[164,4,1,""],locks:[164,4,1,""],search_index_entry:[164,4,1,""]},"evennia.commands.default.comms.CmdGrapevine2Chan":{aliases:[164,4,1,""],func:[164,3,1,""],help_category:[164,4,1,""],key:[164,4,1,""],lock_storage:[164,4,1,""],locks:[164,4,1,""],search_index_entry:[164,4,1,""],switch_options:[164,4,1,""]},"evennia.commands.default.comms.CmdIRC2Chan":{aliases:[164,4,1,""],func:[164,3,1,""],help_category:[164,4,1,""],key:[164,4,1,""],lock_storage:[164,4,1,""],locks:[164,4,1,""],search_index_entry:[164,4,1,""],switch_options:[164,4,1,""]},"evennia.commands.default.comms.CmdIRCStatus":{aliases:[164,4,1,""],func:[164,3,1,""],help_category:[164,4,1,""],key:[164,4,1,""],lock_storage:[164,4,1,""],locks:[164,4,1,""],search_index_entry:[164,4,1,""]},"evennia.commands.default.comms.CmdPage":{account_caller:[164,4,1,""],aliases:[164,4,1,""],func:[164,3,1,""],help_category:[164,4,1,""],key:[164,4,1,""],lock_storage:[164,4,1,""],locks:[164,4,1,""],search_index_entry:[164,4,1,""],switch_options:[164,4,1,""]},"evennia.commands.default.comms.CmdRSS2Chan":{aliases:[164,4,1,""],func:[164,3,1,""],help_category:[164,4,1,""],key:[164,4,1,""],lock_storage:[164,4,1,""],locks:[164,4,1,""],search_index_entry:[164,4,1,""],switch_options:[164,4,1,""]},"evennia.commands.default.general":{CmdAccess:[165,1,1,""],CmdDrop:[165,1,1,""],CmdGet:[165,1,1,""],CmdGive:[165,1,1,""],CmdHome:[165,1,1,""],CmdInventory:[165,1,1,""],CmdLook:[165,1,1,""],CmdNick:[165,1,1,""],CmdPose:[165,1,1,""],CmdSay:[165,1,1,""],CmdSetDesc:[165,1,1,""],CmdWhisper:[165,1,1,""]},"evennia.commands.default.general.CmdAccess":{aliases:[165,4,1,""],arg_regex:[165,4,1,""],func:[165,3,1,""],help_category:[165,4,1,""],key:[165,4,1,""],lock_storage:[165,4,1,""],locks:[165,4,1,""],search_index_entry:[165,4,1,""]},"evennia.commands.default.general.CmdDrop":{aliases:[165,4,1,""],arg_regex:[165,4,1,""],func:[165,3,1,""],help_category:[165,4,1,""],key:[165,4,1,""],lock_storage:[165,4,1,""],locks:[165,4,1,""],search_index_entry:[165,4,1,""]},"evennia.commands.default.general.CmdGet":{aliases:[165,4,1,""],arg_regex:[165,4,1,""],func:[165,3,1,""],help_category:[165,4,1,""],key:[165,4,1,""],lock_storage:[165,4,1,""],locks:[165,4,1,""],search_index_entry:[165,4,1,""]},"evennia.commands.default.general.CmdGive":{aliases:[165,4,1,""],arg_regex:[165,4,1,""],func:[165,3,1,""],help_category:[165,4,1,""],key:[165,4,1,""],lock_storage:[165,4,1,""],locks:[165,4,1,""],rhs_split:[165,4,1,""],search_index_entry:[165,4,1,""]},"evennia.commands.default.general.CmdHome":{aliases:[165,4,1,""],arg_regex:[165,4,1,""],func:[165,3,1,""],help_category:[165,4,1,""],key:[165,4,1,""],lock_storage:[165,4,1,""],locks:[165,4,1,""],search_index_entry:[165,4,1,""]},"evennia.commands.default.general.CmdInventory":{aliases:[165,4,1,""],arg_regex:[165,4,1,""],func:[165,3,1,""],help_category:[165,4,1,""],key:[165,4,1,""],lock_storage:[165,4,1,""],locks:[165,4,1,""],search_index_entry:[165,4,1,""]},"evennia.commands.default.general.CmdLook":{aliases:[165,4,1,""],arg_regex:[165,4,1,""],func:[165,3,1,""],help_category:[165,4,1,""],key:[165,4,1,""],lock_storage:[165,4,1,""],locks:[165,4,1,""],search_index_entry:[165,4,1,""]},"evennia.commands.default.general.CmdNick":{aliases:[165,4,1,""],func:[165,3,1,""],help_category:[165,4,1,""],key:[165,4,1,""],lock_storage:[165,4,1,""],locks:[165,4,1,""],parse:[165,3,1,""],search_index_entry:[165,4,1,""],switch_options:[165,4,1,""]},"evennia.commands.default.general.CmdPose":{aliases:[165,4,1,""],func:[165,3,1,""],help_category:[165,4,1,""],key:[165,4,1,""],lock_storage:[165,4,1,""],locks:[165,4,1,""],parse:[165,3,1,""],search_index_entry:[165,4,1,""]},"evennia.commands.default.general.CmdSay":{aliases:[165,4,1,""],func:[165,3,1,""],help_category:[165,4,1,""],key:[165,4,1,""],lock_storage:[165,4,1,""],locks:[165,4,1,""],search_index_entry:[165,4,1,""]},"evennia.commands.default.general.CmdSetDesc":{aliases:[165,4,1,""],arg_regex:[165,4,1,""],func:[165,3,1,""],help_category:[165,4,1,""],key:[165,4,1,""],lock_storage:[165,4,1,""],locks:[165,4,1,""],search_index_entry:[165,4,1,""]},"evennia.commands.default.general.CmdWhisper":{aliases:[165,4,1,""],func:[165,3,1,""],help_category:[165,4,1,""],key:[165,4,1,""],lock_storage:[165,4,1,""],locks:[165,4,1,""],search_index_entry:[165,4,1,""]},"evennia.commands.default.help":{CmdHelp:[166,1,1,""],CmdSetHelp:[166,1,1,""]},"evennia.commands.default.help.CmdHelp":{aliases:[166,4,1,""],arg_regex:[166,4,1,""],check_show_help:[166,3,1,""],format_help_entry:[166,3,1,""],format_help_list:[166,3,1,""],func:[166,3,1,""],help_category:[166,4,1,""],help_more:[166,4,1,""],key:[166,4,1,""],lock_storage:[166,4,1,""],locks:[166,4,1,""],msg_help:[166,3,1,""],parse:[166,3,1,""],return_cmdset:[166,4,1,""],search_index_entry:[166,4,1,""],should_list_cmd:[166,3,1,""],suggestion_cutoff:[166,4,1,""],suggestion_maxnum:[166,4,1,""]},"evennia.commands.default.help.CmdSetHelp":{aliases:[166,4,1,""],func:[166,3,1,""],help_category:[166,4,1,""],key:[166,4,1,""],lock_storage:[166,4,1,""],locks:[166,4,1,""],search_index_entry:[166,4,1,""],switch_options:[166,4,1,""]},"evennia.commands.default.muxcommand":{MuxAccountCommand:[167,1,1,""],MuxCommand:[167,1,1,""]},"evennia.commands.default.muxcommand.MuxAccountCommand":{account_caller:[167,4,1,""],aliases:[167,4,1,""],help_category:[167,4,1,""],key:[167,4,1,""],lock_storage:[167,4,1,""],search_index_entry:[167,4,1,""]},"evennia.commands.default.muxcommand.MuxCommand":{aliases:[167,4,1,""],at_post_cmd:[167,3,1,""],at_pre_cmd:[167,3,1,""],func:[167,3,1,""],get_command_info:[167,3,1,""],has_perm:[167,3,1,""],help_category:[167,4,1,""],key:[167,4,1,""],lock_storage:[167,4,1,""],parse:[167,3,1,""],search_index_entry:[167,4,1,""]},"evennia.commands.default.syscommands":{SystemMultimatch:[168,1,1,""],SystemNoInput:[168,1,1,""],SystemNoMatch:[168,1,1,""],SystemSendToChannel:[168,1,1,""]},"evennia.commands.default.syscommands.SystemMultimatch":{aliases:[168,4,1,""],func:[168,3,1,""],help_category:[168,4,1,""],key:[168,4,1,""],lock_storage:[168,4,1,""],locks:[168,4,1,""],search_index_entry:[168,4,1,""]},"evennia.commands.default.syscommands.SystemNoInput":{aliases:[168,4,1,""],func:[168,3,1,""],help_category:[168,4,1,""],key:[168,4,1,""],lock_storage:[168,4,1,""],locks:[168,4,1,""],search_index_entry:[168,4,1,""]},"evennia.commands.default.syscommands.SystemNoMatch":{aliases:[168,4,1,""],func:[168,3,1,""],help_category:[168,4,1,""],key:[168,4,1,""],lock_storage:[168,4,1,""],locks:[168,4,1,""],search_index_entry:[168,4,1,""]},"evennia.commands.default.syscommands.SystemSendToChannel":{aliases:[168,4,1,""],func:[168,3,1,""],help_category:[168,4,1,""],key:[168,4,1,""],lock_storage:[168,4,1,""],locks:[168,4,1,""],parse:[168,3,1,""],search_index_entry:[168,4,1,""]},"evennia.commands.default.system":{CmdAbout:[169,1,1,""],CmdObjects:[169,1,1,""],CmdPy:[169,1,1,""],CmdReload:[169,1,1,""],CmdReset:[169,1,1,""],CmdScripts:[169,1,1,""],CmdServerLoad:[169,1,1,""],CmdService:[169,1,1,""],CmdShutdown:[169,1,1,""],CmdTime:[169,1,1,""]},"evennia.commands.default.system.CmdAbout":{aliases:[169,4,1,""],func:[169,3,1,""],help_category:[169,4,1,""],key:[169,4,1,""],lock_storage:[169,4,1,""],locks:[169,4,1,""],search_index_entry:[169,4,1,""]},"evennia.commands.default.system.CmdObjects":{aliases:[169,4,1,""],func:[169,3,1,""],help_category:[169,4,1,""],key:[169,4,1,""],lock_storage:[169,4,1,""],locks:[169,4,1,""],search_index_entry:[169,4,1,""]},"evennia.commands.default.system.CmdPy":{aliases:[169,4,1,""],func:[169,3,1,""],help_category:[169,4,1,""],key:[169,4,1,""],lock_storage:[169,4,1,""],locks:[169,4,1,""],search_index_entry:[169,4,1,""],switch_options:[169,4,1,""]},"evennia.commands.default.system.CmdReload":{aliases:[169,4,1,""],func:[169,3,1,""],help_category:[169,4,1,""],key:[169,4,1,""],lock_storage:[169,4,1,""],locks:[169,4,1,""],search_index_entry:[169,4,1,""]},"evennia.commands.default.system.CmdReset":{aliases:[169,4,1,""],func:[169,3,1,""],help_category:[169,4,1,""],key:[169,4,1,""],lock_storage:[169,4,1,""],locks:[169,4,1,""],search_index_entry:[169,4,1,""]},"evennia.commands.default.system.CmdScripts":{aliases:[169,4,1,""],excluded_typeclass_paths:[169,4,1,""],func:[169,3,1,""],help_category:[169,4,1,""],key:[169,4,1,""],lock_storage:[169,4,1,""],locks:[169,4,1,""],search_index_entry:[169,4,1,""],switch_options:[169,4,1,""]},"evennia.commands.default.system.CmdServerLoad":{aliases:[169,4,1,""],func:[169,3,1,""],help_category:[169,4,1,""],key:[169,4,1,""],lock_storage:[169,4,1,""],locks:[169,4,1,""],search_index_entry:[169,4,1,""],switch_options:[169,4,1,""]},"evennia.commands.default.system.CmdService":{aliases:[169,4,1,""],func:[169,3,1,""],help_category:[169,4,1,""],key:[169,4,1,""],lock_storage:[169,4,1,""],locks:[169,4,1,""],search_index_entry:[169,4,1,""],switch_options:[169,4,1,""]},"evennia.commands.default.system.CmdShutdown":{aliases:[169,4,1,""],func:[169,3,1,""],help_category:[169,4,1,""],key:[169,4,1,""],lock_storage:[169,4,1,""],locks:[169,4,1,""],search_index_entry:[169,4,1,""]},"evennia.commands.default.system.CmdTime":{aliases:[169,4,1,""],func:[169,3,1,""],help_category:[169,4,1,""],key:[169,4,1,""],lock_storage:[169,4,1,""],locks:[169,4,1,""],search_index_entry:[169,4,1,""]},"evennia.commands.default.tests":{CmdInterrupt:[170,1,1,""],CommandTest:[170,1,1,""],TestAccount:[170,1,1,""],TestAdmin:[170,1,1,""],TestBatchProcess:[170,1,1,""],TestBuilding:[170,1,1,""],TestComms:[170,1,1,""],TestGeneral:[170,1,1,""],TestHelp:[170,1,1,""],TestInterruptCommand:[170,1,1,""],TestSystem:[170,1,1,""],TestSystemCommands:[170,1,1,""],TestUnconnectedCommand:[170,1,1,""]},"evennia.commands.default.tests.CmdInterrupt":{aliases:[170,4,1,""],func:[170,3,1,""],help_category:[170,4,1,""],key:[170,4,1,""],lock_storage:[170,4,1,""],parse:[170,3,1,""],search_index_entry:[170,4,1,""]},"evennia.commands.default.tests.CommandTest":{call:[170,3,1,""]},"evennia.commands.default.tests.TestAccount":{test_char_create:[170,3,1,""],test_char_delete:[170,3,1,""],test_color_test:[170,3,1,""],test_ic:[170,3,1,""],test_ic__nonaccess:[170,3,1,""],test_ic__other_object:[170,3,1,""],test_ooc:[170,3,1,""],test_ooc_look:[170,3,1,""],test_option:[170,3,1,""],test_password:[170,3,1,""],test_quell:[170,3,1,""],test_quit:[170,3,1,""],test_sessions:[170,3,1,""],test_who:[170,3,1,""]},"evennia.commands.default.tests.TestAdmin":{test_ban:[170,3,1,""],test_emit:[170,3,1,""],test_force:[170,3,1,""],test_perm:[170,3,1,""],test_wall:[170,3,1,""]},"evennia.commands.default.tests.TestBatchProcess":{test_batch_commands:[170,3,1,""]},"evennia.commands.default.tests.TestBuilding":{test_attribute_commands:[170,3,1,""],test_copy:[170,3,1,""],test_create:[170,3,1,""],test_desc:[170,3,1,""],test_desc_default_to_room:[170,3,1,""],test_destroy:[170,3,1,""],test_destroy_sequence:[170,3,1,""],test_dig:[170,3,1,""],test_do_nested_lookup:[170,3,1,""],test_empty_desc:[170,3,1,""],test_examine:[170,3,1,""],test_exit_commands:[170,3,1,""],test_find:[170,3,1,""],test_list_cmdsets:[170,3,1,""],test_lock:[170,3,1,""],test_name:[170,3,1,""],test_nested_attribute_commands:[170,3,1,""],test_script:[170,3,1,""],test_set_home:[170,3,1,""],test_set_obj_alias:[170,3,1,""],test_spawn:[170,3,1,""],test_split_nested_attr:[170,3,1,""],test_tag:[170,3,1,""],test_teleport:[170,3,1,""],test_tunnel:[170,3,1,""],test_tunnel_exit_typeclass:[170,3,1,""],test_typeclass:[170,3,1,""]},"evennia.commands.default.tests.TestComms":{setUp:[170,3,1,""],test_all_com:[170,3,1,""],test_cboot:[170,3,1,""],test_cdesc:[170,3,1,""],test_cdestroy:[170,3,1,""],test_cemit:[170,3,1,""],test_channels:[170,3,1,""],test_clock:[170,3,1,""],test_cwho:[170,3,1,""],test_page:[170,3,1,""],test_toggle_com:[170,3,1,""]},"evennia.commands.default.tests.TestGeneral":{test_access:[170,3,1,""],test_get_and_drop:[170,3,1,""],test_give:[170,3,1,""],test_home:[170,3,1,""],test_inventory:[170,3,1,""],test_look:[170,3,1,""],test_mux_command:[170,3,1,""],test_nick:[170,3,1,""],test_pose:[170,3,1,""],test_say:[170,3,1,""],test_whisper:[170,3,1,""]},"evennia.commands.default.tests.TestHelp":{setUp:[170,3,1,""],tearDown:[170,3,1,""],test_help:[170,3,1,""],test_set_help:[170,3,1,""]},"evennia.commands.default.tests.TestInterruptCommand":{test_interrupt_command:[170,3,1,""]},"evennia.commands.default.tests.TestSystem":{test_about:[170,3,1,""],test_objects:[170,3,1,""],test_py:[170,3,1,""],test_scripts:[170,3,1,""],test_server_load:[170,3,1,""]},"evennia.commands.default.tests.TestSystemCommands":{test_channelcommand:[170,3,1,""],test_multimatch:[170,3,1,""],test_simple_defaults:[170,3,1,""]},"evennia.commands.default.tests.TestUnconnectedCommand":{test_info_command:[170,3,1,""]},"evennia.commands.default.unloggedin":{CmdUnconnectedConnect:[171,1,1,""],CmdUnconnectedCreate:[171,1,1,""],CmdUnconnectedHelp:[171,1,1,""],CmdUnconnectedLook:[171,1,1,""],CmdUnconnectedQuit:[171,1,1,""]},"evennia.commands.default.unloggedin.CmdUnconnectedConnect":{aliases:[171,4,1,""],arg_regex:[171,4,1,""],func:[171,3,1,""],help_category:[171,4,1,""],key:[171,4,1,""],lock_storage:[171,4,1,""],locks:[171,4,1,""],search_index_entry:[171,4,1,""]},"evennia.commands.default.unloggedin.CmdUnconnectedCreate":{aliases:[171,4,1,""],arg_regex:[171,4,1,""],func:[171,3,1,""],help_category:[171,4,1,""],key:[171,4,1,""],lock_storage:[171,4,1,""],locks:[171,4,1,""],search_index_entry:[171,4,1,""]},"evennia.commands.default.unloggedin.CmdUnconnectedHelp":{aliases:[171,4,1,""],func:[171,3,1,""],help_category:[171,4,1,""],key:[171,4,1,""],lock_storage:[171,4,1,""],locks:[171,4,1,""],search_index_entry:[171,4,1,""]},"evennia.commands.default.unloggedin.CmdUnconnectedLook":{aliases:[171,4,1,""],func:[171,3,1,""],help_category:[171,4,1,""],key:[171,4,1,""],lock_storage:[171,4,1,""],locks:[171,4,1,""],search_index_entry:[171,4,1,""]},"evennia.commands.default.unloggedin.CmdUnconnectedQuit":{aliases:[171,4,1,""],func:[171,3,1,""],help_category:[171,4,1,""],key:[171,4,1,""],lock_storage:[171,4,1,""],locks:[171,4,1,""],search_index_entry:[171,4,1,""]},"evennia.comms":{admin:[173,0,0,"-"],channelhandler:[174,0,0,"-"],comms:[175,0,0,"-"],managers:[176,0,0,"-"],models:[177,0,0,"-"]},"evennia.comms.admin":{ChannelAdmin:[173,1,1,""],ChannelAttributeInline:[173,1,1,""],ChannelTagInline:[173,1,1,""],MsgAdmin:[173,1,1,""]},"evennia.comms.admin.ChannelAdmin":{fieldsets:[173,4,1,""],inlines:[173,4,1,""],list_display:[173,4,1,""],list_display_links:[173,4,1,""],list_select_related:[173,4,1,""],media:[173,3,1,""],ordering:[173,4,1,""],raw_id_fields:[173,4,1,""],response_add:[173,3,1,""],save_as:[173,4,1,""],save_model:[173,3,1,""],save_on_top:[173,4,1,""],search_fields:[173,4,1,""],subscriptions:[173,3,1,""]},"evennia.comms.admin.ChannelAttributeInline":{media:[173,3,1,""],model:[173,4,1,""],related_field:[173,4,1,""]},"evennia.comms.admin.ChannelTagInline":{media:[173,3,1,""],model:[173,4,1,""],related_field:[173,4,1,""]},"evennia.comms.admin.MsgAdmin":{list_display:[173,4,1,""],list_display_links:[173,4,1,""],list_select_related:[173,4,1,""],media:[173,3,1,""],ordering:[173,4,1,""],save_as:[173,4,1,""],save_on_top:[173,4,1,""],search_fields:[173,4,1,""]},"evennia.comms.channelhandler":{ChannelCommand:[174,1,1,""],ChannelHandler:[174,1,1,""]},"evennia.comms.channelhandler.ChannelCommand":{aliases:[174,4,1,""],arg_regex:[174,4,1,""],func:[174,3,1,""],get_extra_info:[174,3,1,""],help_category:[174,4,1,""],is_channel:[174,4,1,""],key:[174,4,1,""],lock_storage:[174,4,1,""],obj:[174,4,1,""],parse:[174,3,1,""],search_index_entry:[174,4,1,""]},"evennia.comms.channelhandler.ChannelHandler":{__init__:[174,3,1,""],add:[174,3,1,""],add_channel:[174,3,1,""],clear:[174,3,1,""],get:[174,3,1,""],get_cmdset:[174,3,1,""],remove:[174,3,1,""],update:[174,3,1,""]},"evennia.comms.comms":{DefaultChannel:[175,1,1,""]},"evennia.comms.comms.DefaultChannel":{"delete":[175,3,1,""],DoesNotExist:[175,2,1,""],MultipleObjectsReturned:[175,2,1,""],access:[175,3,1,""],at_channel_creation:[175,3,1,""],at_first_save:[175,3,1,""],at_init:[175,3,1,""],basetype_setup:[175,3,1,""],channel_prefix:[175,3,1,""],connect:[175,3,1,""],create:[175,3,1,""],disconnect:[175,3,1,""],distribute_message:[175,3,1,""],format_external:[175,3,1,""],format_message:[175,3,1,""],format_senders:[175,3,1,""],get_absolute_url:[175,3,1,""],has_connection:[175,3,1,""],message_transform:[175,3,1,""],msg:[175,3,1,""],mute:[175,3,1,""],mutelist:[175,3,1,""],objects:[175,4,1,""],path:[175,4,1,""],pose_transform:[175,3,1,""],post_join_channel:[175,3,1,""],post_leave_channel:[175,3,1,""],post_send_message:[175,3,1,""],pre_join_channel:[175,3,1,""],pre_leave_channel:[175,3,1,""],pre_send_message:[175,3,1,""],tempmsg:[175,3,1,""],typename:[175,4,1,""],unmute:[175,3,1,""],web_get_admin_url:[175,3,1,""],web_get_create_url:[175,3,1,""],web_get_delete_url:[175,3,1,""],web_get_detail_url:[175,3,1,""],web_get_update_url:[175,3,1,""],wholist:[175,3,1,""]},"evennia.comms.managers":{ChannelDBManager:[176,1,1,""],ChannelManager:[176,1,1,""],CommError:[176,2,1,""],MsgManager:[176,1,1,""],identify_object:[176,5,1,""],to_object:[176,5,1,""]},"evennia.comms.managers.ChannelDBManager":{channel_search:[176,3,1,""],get_all_channels:[176,3,1,""],get_channel:[176,3,1,""],get_subscriptions:[176,3,1,""],search_channel:[176,3,1,""]},"evennia.comms.managers.MsgManager":{get_message_by_id:[176,3,1,""],get_messages_by_channel:[176,3,1,""],get_messages_by_receiver:[176,3,1,""],get_messages_by_sender:[176,3,1,""],identify_object:[176,3,1,""],message_search:[176,3,1,""],search_message:[176,3,1,""]},"evennia.comms.models":{ChannelDB:[177,1,1,""],Msg:[177,1,1,""],TempMsg:[177,1,1,""]},"evennia.comms.models.ChannelDB":{DoesNotExist:[177,2,1,""],MultipleObjectsReturned:[177,2,1,""],channel_set:[177,4,1,""],db_account_subscriptions:[177,4,1,""],db_attributes:[177,4,1,""],db_object_subscriptions:[177,4,1,""],db_tags:[177,4,1,""],get_next_by_db_date_created:[177,3,1,""],get_previous_by_db_date_created:[177,3,1,""],hide_from_channels_set:[177,4,1,""],id:[177,4,1,""],objects:[177,4,1,""],path:[177,4,1,""],subscriptions:[177,4,1,""],typename:[177,4,1,""]},"evennia.comms.models.Msg":{DoesNotExist:[177,2,1,""],MultipleObjectsReturned:[177,2,1,""],__init__:[177,3,1,""],access:[177,3,1,""],channels:[177,3,1,""],date_created:[177,3,1,""],db_date_created:[177,4,1,""],db_header:[177,4,1,""],db_hide_from_accounts:[177,4,1,""],db_hide_from_channels:[177,4,1,""],db_hide_from_objects:[177,4,1,""],db_lock_storage:[177,4,1,""],db_message:[177,4,1,""],db_receivers_accounts:[177,4,1,""],db_receivers_channels:[177,4,1,""],db_receivers_objects:[177,4,1,""],db_receivers_scripts:[177,4,1,""],db_sender_accounts:[177,4,1,""],db_sender_external:[177,4,1,""],db_sender_objects:[177,4,1,""],db_sender_scripts:[177,4,1,""],db_tags:[177,4,1,""],get_next_by_db_date_created:[177,3,1,""],get_previous_by_db_date_created:[177,3,1,""],header:[177,3,1,""],hide_from:[177,3,1,""],id:[177,4,1,""],lock_storage:[177,3,1,""],locks:[177,4,1,""],message:[177,3,1,""],objects:[177,4,1,""],path:[177,4,1,""],receivers:[177,3,1,""],remove_receiver:[177,3,1,""],remove_sender:[177,3,1,""],sender_external:[177,3,1,""],senders:[177,3,1,""],tags:[177,4,1,""],typename:[177,4,1,""]},"evennia.comms.models.TempMsg":{__init__:[177,3,1,""],access:[177,3,1,""],locks:[177,4,1,""],remove_receiver:[177,3,1,""],remove_sender:[177,3,1,""]},"evennia.contrib":{barter:[179,0,0,"-"],building_menu:[180,0,0,"-"],chargen:[181,0,0,"-"],clothing:[182,0,0,"-"],color_markups:[183,0,0,"-"],custom_gametime:[184,0,0,"-"],dice:[185,0,0,"-"],email_login:[186,0,0,"-"],extended_room:[187,0,0,"-"],fieldfill:[188,0,0,"-"],gendersub:[189,0,0,"-"],health_bar:[190,0,0,"-"],ingame_python:[191,0,0,"-"],mail:[199,0,0,"-"],mapbuilder:[200,0,0,"-"],menu_login:[201,0,0,"-"],multidescer:[202,0,0,"-"],puzzles:[203,0,0,"-"],random_string_generator:[204,0,0,"-"],rplanguage:[205,0,0,"-"],rpsystem:[206,0,0,"-"],security:[207,0,0,"-"],simpledoor:[212,0,0,"-"],slow_exit:[213,0,0,"-"],talking_npc:[214,0,0,"-"],tree_select:[215,0,0,"-"],turnbattle:[216,0,0,"-"],tutorial_examples:[222,0,0,"-"],tutorial_world:[229,0,0,"-"],unixcommand:[234,0,0,"-"],wilderness:[235,0,0,"-"]},"evennia.contrib.barter":{CmdAccept:[179,1,1,""],CmdDecline:[179,1,1,""],CmdEvaluate:[179,1,1,""],CmdFinish:[179,1,1,""],CmdOffer:[179,1,1,""],CmdStatus:[179,1,1,""],CmdTrade:[179,1,1,""],CmdTradeBase:[179,1,1,""],CmdTradeHelp:[179,1,1,""],CmdsetTrade:[179,1,1,""],TradeHandler:[179,1,1,""],TradeTimeout:[179,1,1,""]},"evennia.contrib.barter.CmdAccept":{aliases:[179,4,1,""],func:[179,3,1,""],help_category:[179,4,1,""],key:[179,4,1,""],lock_storage:[179,4,1,""],locks:[179,4,1,""],search_index_entry:[179,4,1,""]},"evennia.contrib.barter.CmdDecline":{aliases:[179,4,1,""],func:[179,3,1,""],help_category:[179,4,1,""],key:[179,4,1,""],lock_storage:[179,4,1,""],locks:[179,4,1,""],search_index_entry:[179,4,1,""]},"evennia.contrib.barter.CmdEvaluate":{aliases:[179,4,1,""],func:[179,3,1,""],help_category:[179,4,1,""],key:[179,4,1,""],lock_storage:[179,4,1,""],locks:[179,4,1,""],search_index_entry:[179,4,1,""]},"evennia.contrib.barter.CmdFinish":{aliases:[179,4,1,""],func:[179,3,1,""],help_category:[179,4,1,""],key:[179,4,1,""],lock_storage:[179,4,1,""],locks:[179,4,1,""],search_index_entry:[179,4,1,""]},"evennia.contrib.barter.CmdOffer":{aliases:[179,4,1,""],func:[179,3,1,""],help_category:[179,4,1,""],key:[179,4,1,""],lock_storage:[179,4,1,""],locks:[179,4,1,""],search_index_entry:[179,4,1,""]},"evennia.contrib.barter.CmdStatus":{aliases:[179,4,1,""],func:[179,3,1,""],help_category:[179,4,1,""],key:[179,4,1,""],lock_storage:[179,4,1,""],locks:[179,4,1,""],search_index_entry:[179,4,1,""]},"evennia.contrib.barter.CmdTrade":{aliases:[179,4,1,""],func:[179,3,1,""],help_category:[179,4,1,""],key:[179,4,1,""],lock_storage:[179,4,1,""],locks:[179,4,1,""],search_index_entry:[179,4,1,""]},"evennia.contrib.barter.CmdTradeBase":{aliases:[179,4,1,""],help_category:[179,4,1,""],key:[179,4,1,""],lock_storage:[179,4,1,""],parse:[179,3,1,""],search_index_entry:[179,4,1,""]},"evennia.contrib.barter.CmdTradeHelp":{aliases:[179,4,1,""],func:[179,3,1,""],help_category:[179,4,1,""],key:[179,4,1,""],lock_storage:[179,4,1,""],locks:[179,4,1,""],search_index_entry:[179,4,1,""]},"evennia.contrib.barter.CmdsetTrade":{at_cmdset_creation:[179,3,1,""],key:[179,4,1,""],path:[179,4,1,""]},"evennia.contrib.barter.TradeHandler":{__init__:[179,3,1,""],accept:[179,3,1,""],decline:[179,3,1,""],finish:[179,3,1,""],get_other:[179,3,1,""],join:[179,3,1,""],list:[179,3,1,""],msg_other:[179,3,1,""],offer:[179,3,1,""],search:[179,3,1,""],unjoin:[179,3,1,""]},"evennia.contrib.barter.TradeTimeout":{DoesNotExist:[179,2,1,""],MultipleObjectsReturned:[179,2,1,""],at_repeat:[179,3,1,""],at_script_creation:[179,3,1,""],is_valid:[179,3,1,""],path:[179,4,1,""],typename:[179,4,1,""]},"evennia.contrib.building_menu":{BuildingMenu:[180,1,1,""],BuildingMenuCmdSet:[180,1,1,""],Choice:[180,1,1,""],CmdNoInput:[180,1,1,""],CmdNoMatch:[180,1,1,""],GenericBuildingCmd:[180,1,1,""],GenericBuildingMenu:[180,1,1,""],menu_edit:[180,5,1,""],menu_quit:[180,5,1,""],menu_setattr:[180,5,1,""]},"evennia.contrib.building_menu.BuildingMenu":{__init__:[180,3,1,""],add_choice:[180,3,1,""],add_choice_edit:[180,3,1,""],add_choice_quit:[180,3,1,""],close:[180,3,1,""],current_choice:[180,3,1,""],display:[180,3,1,""],display_choice:[180,3,1,""],display_title:[180,3,1,""],init:[180,3,1,""],joker_key:[180,4,1,""],keys_go_back:[180,4,1,""],min_shortcut:[180,4,1,""],move:[180,3,1,""],open:[180,3,1,""],open_parent_menu:[180,3,1,""],open_submenu:[180,3,1,""],relevant_choices:[180,3,1,""],restore:[180,3,1,""],sep_keys:[180,4,1,""]},"evennia.contrib.building_menu.BuildingMenuCmdSet":{at_cmdset_creation:[180,3,1,""],key:[180,4,1,""],path:[180,4,1,""],priority:[180,4,1,""]},"evennia.contrib.building_menu.Choice":{__init__:[180,3,1,""],enter:[180,3,1,""],format_text:[180,3,1,""],keys:[180,3,1,""],leave:[180,3,1,""],nomatch:[180,3,1,""]},"evennia.contrib.building_menu.CmdNoInput":{__init__:[180,3,1,""],aliases:[180,4,1,""],func:[180,3,1,""],help_category:[180,4,1,""],key:[180,4,1,""],lock_storage:[180,4,1,""],locks:[180,4,1,""],search_index_entry:[180,4,1,""]},"evennia.contrib.building_menu.CmdNoMatch":{__init__:[180,3,1,""],aliases:[180,4,1,""],func:[180,3,1,""],help_category:[180,4,1,""],key:[180,4,1,""],lock_storage:[180,4,1,""],locks:[180,4,1,""],search_index_entry:[180,4,1,""]},"evennia.contrib.building_menu.GenericBuildingCmd":{aliases:[180,4,1,""],func:[180,3,1,""],help_category:[180,4,1,""],key:[180,4,1,""],lock_storage:[180,4,1,""],search_index_entry:[180,4,1,""]},"evennia.contrib.building_menu.GenericBuildingMenu":{init:[180,3,1,""]},"evennia.contrib.chargen":{CmdOOCCharacterCreate:[181,1,1,""],CmdOOCLook:[181,1,1,""],OOCCmdSetCharGen:[181,1,1,""]},"evennia.contrib.chargen.CmdOOCCharacterCreate":{aliases:[181,4,1,""],func:[181,3,1,""],help_category:[181,4,1,""],key:[181,4,1,""],lock_storage:[181,4,1,""],locks:[181,4,1,""],search_index_entry:[181,4,1,""]},"evennia.contrib.chargen.CmdOOCLook":{aliases:[181,4,1,""],func:[181,3,1,""],help_category:[181,4,1,""],key:[181,4,1,""],lock_storage:[181,4,1,""],locks:[181,4,1,""],search_index_entry:[181,4,1,""]},"evennia.contrib.chargen.OOCCmdSetCharGen":{at_cmdset_creation:[181,3,1,""],path:[181,4,1,""]},"evennia.contrib.clothing":{ClothedCharacter:[182,1,1,""],ClothedCharacterCmdSet:[182,1,1,""],Clothing:[182,1,1,""],CmdCover:[182,1,1,""],CmdDrop:[182,1,1,""],CmdGive:[182,1,1,""],CmdInventory:[182,1,1,""],CmdRemove:[182,1,1,""],CmdUncover:[182,1,1,""],CmdWear:[182,1,1,""],clothing_type_count:[182,5,1,""],get_worn_clothes:[182,5,1,""],order_clothes_list:[182,5,1,""],single_type_count:[182,5,1,""]},"evennia.contrib.clothing.ClothedCharacter":{DoesNotExist:[182,2,1,""],MultipleObjectsReturned:[182,2,1,""],path:[182,4,1,""],return_appearance:[182,3,1,""],typename:[182,4,1,""]},"evennia.contrib.clothing.ClothedCharacterCmdSet":{at_cmdset_creation:[182,3,1,""],key:[182,4,1,""],path:[182,4,1,""]},"evennia.contrib.clothing.Clothing":{DoesNotExist:[182,2,1,""],MultipleObjectsReturned:[182,2,1,""],at_get:[182,3,1,""],path:[182,4,1,""],remove:[182,3,1,""],typename:[182,4,1,""],wear:[182,3,1,""]},"evennia.contrib.clothing.CmdCover":{aliases:[182,4,1,""],func:[182,3,1,""],help_category:[182,4,1,""],key:[182,4,1,""],lock_storage:[182,4,1,""],search_index_entry:[182,4,1,""]},"evennia.contrib.clothing.CmdDrop":{aliases:[182,4,1,""],arg_regex:[182,4,1,""],func:[182,3,1,""],help_category:[182,4,1,""],key:[182,4,1,""],lock_storage:[182,4,1,""],locks:[182,4,1,""],search_index_entry:[182,4,1,""]},"evennia.contrib.clothing.CmdGive":{aliases:[182,4,1,""],arg_regex:[182,4,1,""],func:[182,3,1,""],help_category:[182,4,1,""],key:[182,4,1,""],lock_storage:[182,4,1,""],locks:[182,4,1,""],search_index_entry:[182,4,1,""]},"evennia.contrib.clothing.CmdInventory":{aliases:[182,4,1,""],arg_regex:[182,4,1,""],func:[182,3,1,""],help_category:[182,4,1,""],key:[182,4,1,""],lock_storage:[182,4,1,""],locks:[182,4,1,""],search_index_entry:[182,4,1,""]},"evennia.contrib.clothing.CmdRemove":{aliases:[182,4,1,""],func:[182,3,1,""],help_category:[182,4,1,""],key:[182,4,1,""],lock_storage:[182,4,1,""],search_index_entry:[182,4,1,""]},"evennia.contrib.clothing.CmdUncover":{aliases:[182,4,1,""],func:[182,3,1,""],help_category:[182,4,1,""],key:[182,4,1,""],lock_storage:[182,4,1,""],search_index_entry:[182,4,1,""]},"evennia.contrib.clothing.CmdWear":{aliases:[182,4,1,""],func:[182,3,1,""],help_category:[182,4,1,""],key:[182,4,1,""],lock_storage:[182,4,1,""],search_index_entry:[182,4,1,""]},"evennia.contrib.custom_gametime":{GametimeScript:[184,1,1,""],custom_gametime:[184,5,1,""],gametime_to_realtime:[184,5,1,""],real_seconds_until:[184,5,1,""],realtime_to_gametime:[184,5,1,""],schedule:[184,5,1,""],time_to_tuple:[184,5,1,""]},"evennia.contrib.custom_gametime.GametimeScript":{DoesNotExist:[184,2,1,""],MultipleObjectsReturned:[184,2,1,""],at_repeat:[184,3,1,""],at_script_creation:[184,3,1,""],path:[184,4,1,""],typename:[184,4,1,""]},"evennia.contrib.dice":{CmdDice:[185,1,1,""],DiceCmdSet:[185,1,1,""],roll_dice:[185,5,1,""]},"evennia.contrib.dice.CmdDice":{aliases:[185,4,1,""],func:[185,3,1,""],help_category:[185,4,1,""],key:[185,4,1,""],lock_storage:[185,4,1,""],locks:[185,4,1,""],search_index_entry:[185,4,1,""]},"evennia.contrib.dice.DiceCmdSet":{at_cmdset_creation:[185,3,1,""],path:[185,4,1,""]},"evennia.contrib.email_login":{CmdUnconnectedConnect:[186,1,1,""],CmdUnconnectedCreate:[186,1,1,""],CmdUnconnectedHelp:[186,1,1,""],CmdUnconnectedLook:[186,1,1,""],CmdUnconnectedQuit:[186,1,1,""]},"evennia.contrib.email_login.CmdUnconnectedConnect":{aliases:[186,4,1,""],func:[186,3,1,""],help_category:[186,4,1,""],key:[186,4,1,""],lock_storage:[186,4,1,""],locks:[186,4,1,""],search_index_entry:[186,4,1,""]},"evennia.contrib.email_login.CmdUnconnectedCreate":{aliases:[186,4,1,""],func:[186,3,1,""],help_category:[186,4,1,""],key:[186,4,1,""],lock_storage:[186,4,1,""],locks:[186,4,1,""],parse:[186,3,1,""],search_index_entry:[186,4,1,""]},"evennia.contrib.email_login.CmdUnconnectedHelp":{aliases:[186,4,1,""],func:[186,3,1,""],help_category:[186,4,1,""],key:[186,4,1,""],lock_storage:[186,4,1,""],locks:[186,4,1,""],search_index_entry:[186,4,1,""]},"evennia.contrib.email_login.CmdUnconnectedLook":{aliases:[186,4,1,""],func:[186,3,1,""],help_category:[186,4,1,""],key:[186,4,1,""],lock_storage:[186,4,1,""],locks:[186,4,1,""],search_index_entry:[186,4,1,""]},"evennia.contrib.email_login.CmdUnconnectedQuit":{aliases:[186,4,1,""],func:[186,3,1,""],help_category:[186,4,1,""],key:[186,4,1,""],lock_storage:[186,4,1,""],locks:[186,4,1,""],search_index_entry:[186,4,1,""]},"evennia.contrib.extended_room":{CmdExtendedRoomDesc:[187,1,1,""],CmdExtendedRoomDetail:[187,1,1,""],CmdExtendedRoomGameTime:[187,1,1,""],CmdExtendedRoomLook:[187,1,1,""],ExtendedRoom:[187,1,1,""],ExtendedRoomCmdSet:[187,1,1,""]},"evennia.contrib.extended_room.CmdExtendedRoomDesc":{aliases:[187,4,1,""],func:[187,3,1,""],help_category:[187,4,1,""],key:[187,4,1,""],lock_storage:[187,4,1,""],reset_times:[187,3,1,""],search_index_entry:[187,4,1,""],switch_options:[187,4,1,""]},"evennia.contrib.extended_room.CmdExtendedRoomDetail":{aliases:[187,4,1,""],func:[187,3,1,""],help_category:[187,4,1,""],key:[187,4,1,""],lock_storage:[187,4,1,""],locks:[187,4,1,""],search_index_entry:[187,4,1,""]},"evennia.contrib.extended_room.CmdExtendedRoomGameTime":{aliases:[187,4,1,""],func:[187,3,1,""],help_category:[187,4,1,""],key:[187,4,1,""],lock_storage:[187,4,1,""],locks:[187,4,1,""],search_index_entry:[187,4,1,""]},"evennia.contrib.extended_room.CmdExtendedRoomLook":{aliases:[187,4,1,""],func:[187,3,1,""],help_category:[187,4,1,""],key:[187,4,1,""],lock_storage:[187,4,1,""],search_index_entry:[187,4,1,""]},"evennia.contrib.extended_room.ExtendedRoom":{DoesNotExist:[187,2,1,""],MultipleObjectsReturned:[187,2,1,""],at_object_creation:[187,3,1,""],del_detail:[187,3,1,""],get_time_and_season:[187,3,1,""],path:[187,4,1,""],replace_timeslots:[187,3,1,""],return_appearance:[187,3,1,""],return_detail:[187,3,1,""],set_detail:[187,3,1,""],typename:[187,4,1,""],update_current_description:[187,3,1,""]},"evennia.contrib.extended_room.ExtendedRoomCmdSet":{at_cmdset_creation:[187,3,1,""],path:[187,4,1,""]},"evennia.contrib.fieldfill":{CmdTestMenu:[188,1,1,""],FieldEvMenu:[188,1,1,""],display_formdata:[188,5,1,""],form_template_to_dict:[188,5,1,""],init_delayed_message:[188,5,1,""],init_fill_field:[188,5,1,""],menunode_fieldfill:[188,5,1,""],sendmessage:[188,5,1,""],verify_online_player:[188,5,1,""]},"evennia.contrib.fieldfill.CmdTestMenu":{aliases:[188,4,1,""],func:[188,3,1,""],help_category:[188,4,1,""],key:[188,4,1,""],lock_storage:[188,4,1,""],search_index_entry:[188,4,1,""]},"evennia.contrib.fieldfill.FieldEvMenu":{node_formatter:[188,3,1,""]},"evennia.contrib.gendersub":{GenderCharacter:[189,1,1,""],SetGender:[189,1,1,""]},"evennia.contrib.gendersub.GenderCharacter":{DoesNotExist:[189,2,1,""],MultipleObjectsReturned:[189,2,1,""],at_object_creation:[189,3,1,""],msg:[189,3,1,""],path:[189,4,1,""],typename:[189,4,1,""]},"evennia.contrib.gendersub.SetGender":{aliases:[189,4,1,""],func:[189,3,1,""],help_category:[189,4,1,""],key:[189,4,1,""],lock_storage:[189,4,1,""],locks:[189,4,1,""],search_index_entry:[189,4,1,""]},"evennia.contrib.health_bar":{display_meter:[190,5,1,""]},"evennia.contrib.ingame_python":{callbackhandler:[192,0,0,"-"],commands:[193,0,0,"-"],eventfuncs:[194,0,0,"-"],scripts:[195,0,0,"-"],tests:[196,0,0,"-"],typeclasses:[197,0,0,"-"],utils:[198,0,0,"-"]},"evennia.contrib.ingame_python.callbackhandler":{Callback:[192,1,1,""],CallbackHandler:[192,1,1,""]},"evennia.contrib.ingame_python.callbackhandler.Callback":{author:[192,3,1,""],code:[192,3,1,""],created_on:[192,3,1,""],name:[192,3,1,""],number:[192,3,1,""],obj:[192,3,1,""],parameters:[192,3,1,""],updated_by:[192,3,1,""],updated_on:[192,3,1,""],valid:[192,3,1,""]},"evennia.contrib.ingame_python.callbackhandler.CallbackHandler":{__init__:[192,3,1,""],add:[192,3,1,""],all:[192,3,1,""],call:[192,3,1,""],edit:[192,3,1,""],format_callback:[192,3,1,""],get:[192,3,1,""],get_variable:[192,3,1,""],remove:[192,3,1,""],script:[192,4,1,""]},"evennia.contrib.ingame_python.commands":{CmdCallback:[193,1,1,""]},"evennia.contrib.ingame_python.commands.CmdCallback":{accept_callback:[193,3,1,""],add_callback:[193,3,1,""],aliases:[193,4,1,""],del_callback:[193,3,1,""],edit_callback:[193,3,1,""],func:[193,3,1,""],get_help:[193,3,1,""],help_category:[193,4,1,""],key:[193,4,1,""],list_callbacks:[193,3,1,""],list_tasks:[193,3,1,""],lock_storage:[193,4,1,""],locks:[193,4,1,""],search_index_entry:[193,4,1,""]},"evennia.contrib.ingame_python.eventfuncs":{call_event:[194,5,1,""],deny:[194,5,1,""],get:[194,5,1,""]},"evennia.contrib.ingame_python.scripts":{EventHandler:[195,1,1,""],TimeEventScript:[195,1,1,""],complete_task:[195,5,1,""]},"evennia.contrib.ingame_python.scripts.EventHandler":{DoesNotExist:[195,2,1,""],MultipleObjectsReturned:[195,2,1,""],accept_callback:[195,3,1,""],add_callback:[195,3,1,""],add_event:[195,3,1,""],at_script_creation:[195,3,1,""],at_start:[195,3,1,""],call:[195,3,1,""],del_callback:[195,3,1,""],edit_callback:[195,3,1,""],get_callbacks:[195,3,1,""],get_events:[195,3,1,""],get_variable:[195,3,1,""],handle_error:[195,3,1,""],path:[195,4,1,""],set_task:[195,3,1,""],typename:[195,4,1,""]},"evennia.contrib.ingame_python.scripts.TimeEventScript":{DoesNotExist:[195,2,1,""],MultipleObjectsReturned:[195,2,1,""],at_repeat:[195,3,1,""],at_script_creation:[195,3,1,""],path:[195,4,1,""],typename:[195,4,1,""]},"evennia.contrib.ingame_python.tests":{TestCmdCallback:[196,1,1,""],TestDefaultCallbacks:[196,1,1,""],TestEventHandler:[196,1,1,""]},"evennia.contrib.ingame_python.tests.TestCmdCallback":{setUp:[196,3,1,""],tearDown:[196,3,1,""],test_accept:[196,3,1,""],test_add:[196,3,1,""],test_del:[196,3,1,""],test_list:[196,3,1,""],test_lock:[196,3,1,""]},"evennia.contrib.ingame_python.tests.TestDefaultCallbacks":{setUp:[196,3,1,""],tearDown:[196,3,1,""],test_exit:[196,3,1,""]},"evennia.contrib.ingame_python.tests.TestEventHandler":{setUp:[196,3,1,""],tearDown:[196,3,1,""],test_accept:[196,3,1,""],test_add_validation:[196,3,1,""],test_call:[196,3,1,""],test_del:[196,3,1,""],test_edit:[196,3,1,""],test_edit_validation:[196,3,1,""],test_handler:[196,3,1,""],test_start:[196,3,1,""]},"evennia.contrib.ingame_python.typeclasses":{EventCharacter:[197,1,1,""],EventExit:[197,1,1,""],EventObject:[197,1,1,""],EventRoom:[197,1,1,""]},"evennia.contrib.ingame_python.typeclasses.EventCharacter":{DoesNotExist:[197,2,1,""],MultipleObjectsReturned:[197,2,1,""],announce_move_from:[197,3,1,""],announce_move_to:[197,3,1,""],at_after_move:[197,3,1,""],at_before_move:[197,3,1,""],at_before_say:[197,3,1,""],at_object_delete:[197,3,1,""],at_post_puppet:[197,3,1,""],at_pre_unpuppet:[197,3,1,""],at_say:[197,3,1,""],callbacks:[197,4,1,""],path:[197,4,1,""],typename:[197,4,1,""]},"evennia.contrib.ingame_python.typeclasses.EventExit":{DoesNotExist:[197,2,1,""],MultipleObjectsReturned:[197,2,1,""],at_traverse:[197,3,1,""],callbacks:[197,4,1,""],path:[197,4,1,""],typename:[197,4,1,""]},"evennia.contrib.ingame_python.typeclasses.EventObject":{DoesNotExist:[197,2,1,""],MultipleObjectsReturned:[197,2,1,""],at_drop:[197,3,1,""],at_get:[197,3,1,""],callbacks:[197,4,1,""],path:[197,4,1,""],typename:[197,4,1,""]},"evennia.contrib.ingame_python.typeclasses.EventRoom":{DoesNotExist:[197,2,1,""],MultipleObjectsReturned:[197,2,1,""],at_object_delete:[197,3,1,""],callbacks:[197,4,1,""],path:[197,4,1,""],typename:[197,4,1,""]},"evennia.contrib.ingame_python.utils":{InterruptEvent:[198,2,1,""],get_event_handler:[198,5,1,""],get_next_wait:[198,5,1,""],keyword_event:[198,5,1,""],phrase_event:[198,5,1,""],register_events:[198,5,1,""],time_event:[198,5,1,""]},"evennia.contrib.mail":{CmdMail:[199,1,1,""],CmdMailCharacter:[199,1,1,""]},"evennia.contrib.mail.CmdMail":{aliases:[199,4,1,""],func:[199,3,1,""],get_all_mail:[199,3,1,""],help_category:[199,4,1,""],key:[199,4,1,""],lock:[199,4,1,""],lock_storage:[199,4,1,""],parse:[199,3,1,""],search_index_entry:[199,4,1,""],search_targets:[199,3,1,""],send_mail:[199,3,1,""]},"evennia.contrib.mail.CmdMailCharacter":{account_caller:[199,4,1,""],aliases:[199,4,1,""],help_category:[199,4,1,""],key:[199,4,1,""],lock_storage:[199,4,1,""],search_index_entry:[199,4,1,""]},"evennia.contrib.mapbuilder":{CmdMapBuilder:[200,1,1,""],build_map:[200,5,1,""],example1_build_forest:[200,5,1,""],example1_build_mountains:[200,5,1,""],example1_build_temple:[200,5,1,""],example2_build_forest:[200,5,1,""],example2_build_horizontal_exit:[200,5,1,""],example2_build_verticle_exit:[200,5,1,""]},"evennia.contrib.mapbuilder.CmdMapBuilder":{aliases:[200,4,1,""],func:[200,3,1,""],help_category:[200,4,1,""],key:[200,4,1,""],lock_storage:[200,4,1,""],locks:[200,4,1,""],search_index_entry:[200,4,1,""]},"evennia.contrib.menu_login":{CmdUnloggedinLook:[201,1,1,""],UnloggedinCmdSet:[201,1,1,""],node_enter_password:[201,5,1,""],node_enter_username:[201,5,1,""],node_quit_or_login:[201,5,1,""]},"evennia.contrib.menu_login.CmdUnloggedinLook":{aliases:[201,4,1,""],arg_regex:[201,4,1,""],func:[201,3,1,""],help_category:[201,4,1,""],key:[201,4,1,""],lock_storage:[201,4,1,""],locks:[201,4,1,""],search_index_entry:[201,4,1,""]},"evennia.contrib.menu_login.UnloggedinCmdSet":{at_cmdset_creation:[201,3,1,""],key:[201,4,1,""],path:[201,4,1,""],priority:[201,4,1,""]},"evennia.contrib.multidescer":{CmdMultiDesc:[202,1,1,""],DescValidateError:[202,2,1,""]},"evennia.contrib.multidescer.CmdMultiDesc":{aliases:[202,4,1,""],func:[202,3,1,""],help_category:[202,4,1,""],key:[202,4,1,""],lock_storage:[202,4,1,""],locks:[202,4,1,""],search_index_entry:[202,4,1,""]},"evennia.contrib.puzzles":{CmdArmPuzzle:[203,1,1,""],CmdCreatePuzzleRecipe:[203,1,1,""],CmdEditPuzzle:[203,1,1,""],CmdListArmedPuzzles:[203,1,1,""],CmdListPuzzleRecipes:[203,1,1,""],CmdUsePuzzleParts:[203,1,1,""],PuzzleRecipe:[203,1,1,""],PuzzleSystemCmdSet:[203,1,1,""],maskout_protodef:[203,5,1,""],proto_def:[203,5,1,""]},"evennia.contrib.puzzles.CmdArmPuzzle":{aliases:[203,4,1,""],func:[203,3,1,""],help_category:[203,4,1,""],key:[203,4,1,""],lock_storage:[203,4,1,""],locks:[203,4,1,""],search_index_entry:[203,4,1,""]},"evennia.contrib.puzzles.CmdCreatePuzzleRecipe":{aliases:[203,4,1,""],confirm:[203,4,1,""],default_confirm:[203,4,1,""],func:[203,3,1,""],help_category:[203,4,1,""],key:[203,4,1,""],lock_storage:[203,4,1,""],locks:[203,4,1,""],search_index_entry:[203,4,1,""]},"evennia.contrib.puzzles.CmdEditPuzzle":{aliases:[203,4,1,""],func:[203,3,1,""],help_category:[203,4,1,""],key:[203,4,1,""],lock_storage:[203,4,1,""],locks:[203,4,1,""],search_index_entry:[203,4,1,""]},"evennia.contrib.puzzles.CmdListArmedPuzzles":{aliases:[203,4,1,""],func:[203,3,1,""],help_category:[203,4,1,""],key:[203,4,1,""],lock_storage:[203,4,1,""],locks:[203,4,1,""],search_index_entry:[203,4,1,""]},"evennia.contrib.puzzles.CmdListPuzzleRecipes":{aliases:[203,4,1,""],func:[203,3,1,""],help_category:[203,4,1,""],key:[203,4,1,""],lock_storage:[203,4,1,""],locks:[203,4,1,""],search_index_entry:[203,4,1,""]},"evennia.contrib.puzzles.CmdUsePuzzleParts":{aliases:[203,4,1,""],func:[203,3,1,""],help_category:[203,4,1,""],key:[203,4,1,""],lock_storage:[203,4,1,""],locks:[203,4,1,""],search_index_entry:[203,4,1,""]},"evennia.contrib.puzzles.PuzzleRecipe":{DoesNotExist:[203,2,1,""],MultipleObjectsReturned:[203,2,1,""],path:[203,4,1,""],save_recipe:[203,3,1,""],typename:[203,4,1,""]},"evennia.contrib.puzzles.PuzzleSystemCmdSet":{at_cmdset_creation:[203,3,1,""],path:[203,4,1,""]},"evennia.contrib.random_string_generator":{ExhaustedGenerator:[204,2,1,""],RandomStringGenerator:[204,1,1,""],RandomStringGeneratorScript:[204,1,1,""],RejectedRegex:[204,2,1,""]},"evennia.contrib.random_string_generator.RandomStringGenerator":{__init__:[204,3,1,""],all:[204,3,1,""],clear:[204,3,1,""],get:[204,3,1,""],remove:[204,3,1,""],script:[204,4,1,""]},"evennia.contrib.random_string_generator.RandomStringGeneratorScript":{DoesNotExist:[204,2,1,""],MultipleObjectsReturned:[204,2,1,""],at_script_creation:[204,3,1,""],path:[204,4,1,""],typename:[204,4,1,""]},"evennia.contrib.rplanguage":{LanguageError:[205,2,1,""],LanguageExistsError:[205,2,1,""],LanguageHandler:[205,1,1,""],add_language:[205,5,1,""],available_languages:[205,5,1,""],obfuscate_language:[205,5,1,""],obfuscate_whisper:[205,5,1,""]},"evennia.contrib.rplanguage.LanguageHandler":{DoesNotExist:[205,2,1,""],MultipleObjectsReturned:[205,2,1,""],add:[205,3,1,""],at_script_creation:[205,3,1,""],path:[205,4,1,""],translate:[205,3,1,""],typename:[205,4,1,""]},"evennia.contrib.rpsystem":{CmdEmote:[206,1,1,""],CmdMask:[206,1,1,""],CmdPose:[206,1,1,""],CmdRecog:[206,1,1,""],CmdSay:[206,1,1,""],CmdSdesc:[206,1,1,""],ContribRPCharacter:[206,1,1,""],ContribRPObject:[206,1,1,""],ContribRPRoom:[206,1,1,""],EmoteError:[206,2,1,""],LanguageError:[206,2,1,""],RPCommand:[206,1,1,""],RPSystemCmdSet:[206,1,1,""],RecogError:[206,2,1,""],RecogHandler:[206,1,1,""],SdescError:[206,2,1,""],SdescHandler:[206,1,1,""],ordered_permutation_regex:[206,5,1,""],parse_language:[206,5,1,""],parse_sdescs_and_recogs:[206,5,1,""],regex_tuple_from_key_alias:[206,5,1,""],send_emote:[206,5,1,""]},"evennia.contrib.rpsystem.CmdEmote":{aliases:[206,4,1,""],func:[206,3,1,""],help_category:[206,4,1,""],key:[206,4,1,""],lock_storage:[206,4,1,""],locks:[206,4,1,""],search_index_entry:[206,4,1,""]},"evennia.contrib.rpsystem.CmdMask":{aliases:[206,4,1,""],func:[206,3,1,""],help_category:[206,4,1,""],key:[206,4,1,""],lock_storage:[206,4,1,""],search_index_entry:[206,4,1,""]},"evennia.contrib.rpsystem.CmdPose":{aliases:[206,4,1,""],func:[206,3,1,""],help_category:[206,4,1,""],key:[206,4,1,""],lock_storage:[206,4,1,""],parse:[206,3,1,""],search_index_entry:[206,4,1,""]},"evennia.contrib.rpsystem.CmdRecog":{aliases:[206,4,1,""],func:[206,3,1,""],help_category:[206,4,1,""],key:[206,4,1,""],lock_storage:[206,4,1,""],parse:[206,3,1,""],search_index_entry:[206,4,1,""]},"evennia.contrib.rpsystem.CmdSay":{aliases:[206,4,1,""],func:[206,3,1,""],help_category:[206,4,1,""],key:[206,4,1,""],lock_storage:[206,4,1,""],locks:[206,4,1,""],search_index_entry:[206,4,1,""]},"evennia.contrib.rpsystem.CmdSdesc":{aliases:[206,4,1,""],func:[206,3,1,""],help_category:[206,4,1,""],key:[206,4,1,""],lock_storage:[206,4,1,""],locks:[206,4,1,""],search_index_entry:[206,4,1,""]},"evennia.contrib.rpsystem.ContribRPCharacter":{DoesNotExist:[206,2,1,""],MultipleObjectsReturned:[206,2,1,""],at_before_say:[206,3,1,""],at_object_creation:[206,3,1,""],get_display_name:[206,3,1,""],path:[206,4,1,""],process_language:[206,3,1,""],process_recog:[206,3,1,""],process_sdesc:[206,3,1,""],recog:[206,4,1,""],sdesc:[206,4,1,""],typename:[206,4,1,""]},"evennia.contrib.rpsystem.ContribRPObject":{DoesNotExist:[206,2,1,""],MultipleObjectsReturned:[206,2,1,""],at_object_creation:[206,3,1,""],get_display_name:[206,3,1,""],path:[206,4,1,""],return_appearance:[206,3,1,""],search:[206,3,1,""],typename:[206,4,1,""]},"evennia.contrib.rpsystem.ContribRPRoom":{DoesNotExist:[206,2,1,""],MultipleObjectsReturned:[206,2,1,""],path:[206,4,1,""],typename:[206,4,1,""]},"evennia.contrib.rpsystem.RPCommand":{aliases:[206,4,1,""],help_category:[206,4,1,""],key:[206,4,1,""],lock_storage:[206,4,1,""],parse:[206,3,1,""],search_index_entry:[206,4,1,""]},"evennia.contrib.rpsystem.RPSystemCmdSet":{at_cmdset_creation:[206,3,1,""],path:[206,4,1,""]},"evennia.contrib.rpsystem.RecogHandler":{__init__:[206,3,1,""],add:[206,3,1,""],all:[206,3,1,""],get:[206,3,1,""],get_regex_tuple:[206,3,1,""],remove:[206,3,1,""]},"evennia.contrib.rpsystem.SdescHandler":{__init__:[206,3,1,""],add:[206,3,1,""],get:[206,3,1,""],get_regex_tuple:[206,3,1,""]},"evennia.contrib.security":{auditing:[208,0,0,"-"]},"evennia.contrib.security.auditing":{outputs:[209,0,0,"-"],server:[210,0,0,"-"],tests:[211,0,0,"-"]},"evennia.contrib.security.auditing.outputs":{to_file:[209,5,1,""],to_syslog:[209,5,1,""]},"evennia.contrib.security.auditing.server":{AuditedServerSession:[210,1,1,""]},"evennia.contrib.security.auditing.server.AuditedServerSession":{audit:[210,3,1,""],data_in:[210,3,1,""],data_out:[210,3,1,""],mask:[210,3,1,""]},"evennia.contrib.security.auditing.tests":{AuditingTest:[211,1,1,""]},"evennia.contrib.security.auditing.tests.AuditingTest":{test_audit:[211,3,1,""],test_mask:[211,3,1,""]},"evennia.contrib.simpledoor":{CmdOpen:[212,1,1,""],CmdOpenCloseDoor:[212,1,1,""],SimpleDoor:[212,1,1,""]},"evennia.contrib.simpledoor.CmdOpen":{aliases:[212,4,1,""],create_exit:[212,3,1,""],help_category:[212,4,1,""],key:[212,4,1,""],lock_storage:[212,4,1,""],search_index_entry:[212,4,1,""]},"evennia.contrib.simpledoor.CmdOpenCloseDoor":{aliases:[212,4,1,""],func:[212,3,1,""],help_category:[212,4,1,""],key:[212,4,1,""],lock_storage:[212,4,1,""],locks:[212,4,1,""],search_index_entry:[212,4,1,""]},"evennia.contrib.simpledoor.SimpleDoor":{"delete":[212,3,1,""],DoesNotExist:[212,2,1,""],MultipleObjectsReturned:[212,2,1,""],at_failed_traverse:[212,3,1,""],at_object_creation:[212,3,1,""],path:[212,4,1,""],setdesc:[212,3,1,""],setlock:[212,3,1,""],typename:[212,4,1,""]},"evennia.contrib.slow_exit":{CmdSetSpeed:[213,1,1,""],CmdStop:[213,1,1,""],SlowExit:[213,1,1,""]},"evennia.contrib.slow_exit.CmdSetSpeed":{aliases:[213,4,1,""],func:[213,3,1,""],help_category:[213,4,1,""],key:[213,4,1,""],lock_storage:[213,4,1,""],search_index_entry:[213,4,1,""]},"evennia.contrib.slow_exit.CmdStop":{aliases:[213,4,1,""],func:[213,3,1,""],help_category:[213,4,1,""],key:[213,4,1,""],lock_storage:[213,4,1,""],search_index_entry:[213,4,1,""]},"evennia.contrib.slow_exit.SlowExit":{DoesNotExist:[213,2,1,""],MultipleObjectsReturned:[213,2,1,""],at_traverse:[213,3,1,""],path:[213,4,1,""],typename:[213,4,1,""]},"evennia.contrib.talking_npc":{CmdTalk:[214,1,1,""],END:[214,5,1,""],TalkingCmdSet:[214,1,1,""],TalkingNPC:[214,1,1,""],info1:[214,5,1,""],info2:[214,5,1,""],info3:[214,5,1,""],menu_start_node:[214,5,1,""]},"evennia.contrib.talking_npc.CmdTalk":{aliases:[214,4,1,""],func:[214,3,1,""],help_category:[214,4,1,""],key:[214,4,1,""],lock_storage:[214,4,1,""],locks:[214,4,1,""],search_index_entry:[214,4,1,""]},"evennia.contrib.talking_npc.TalkingCmdSet":{at_cmdset_creation:[214,3,1,""],key:[214,4,1,""],path:[214,4,1,""]},"evennia.contrib.talking_npc.TalkingNPC":{DoesNotExist:[214,2,1,""],MultipleObjectsReturned:[214,2,1,""],at_object_creation:[214,3,1,""],path:[214,4,1,""],typename:[214,4,1,""]},"evennia.contrib.tree_select":{CmdNameColor:[215,1,1,""],change_name_color:[215,5,1,""],dashcount:[215,5,1,""],go_up_one_category:[215,5,1,""],index_to_selection:[215,5,1,""],init_tree_selection:[215,5,1,""],is_category:[215,5,1,""],menunode_treeselect:[215,5,1,""],optlist_to_menuoptions:[215,5,1,""],parse_opts:[215,5,1,""]},"evennia.contrib.tree_select.CmdNameColor":{aliases:[215,4,1,""],func:[215,3,1,""],help_category:[215,4,1,""],key:[215,4,1,""],lock_storage:[215,4,1,""],search_index_entry:[215,4,1,""]},"evennia.contrib.turnbattle":{tb_basic:[217,0,0,"-"],tb_equip:[218,0,0,"-"],tb_items:[219,0,0,"-"],tb_magic:[220,0,0,"-"],tb_range:[221,0,0,"-"]},"evennia.contrib.turnbattle.tb_basic":{ACTIONS_PER_TURN:[217,6,1,""],BattleCmdSet:[217,1,1,""],CmdAttack:[217,1,1,""],CmdCombatHelp:[217,1,1,""],CmdDisengage:[217,1,1,""],CmdFight:[217,1,1,""],CmdPass:[217,1,1,""],CmdRest:[217,1,1,""],TBBasicCharacter:[217,1,1,""],TBBasicTurnHandler:[217,1,1,""],apply_damage:[217,5,1,""],at_defeat:[217,5,1,""],combat_cleanup:[217,5,1,""],get_attack:[217,5,1,""],get_damage:[217,5,1,""],get_defense:[217,5,1,""],is_in_combat:[217,5,1,""],is_turn:[217,5,1,""],resolve_attack:[217,5,1,""],roll_init:[217,5,1,""],spend_action:[217,5,1,""]},"evennia.contrib.turnbattle.tb_basic.BattleCmdSet":{at_cmdset_creation:[217,3,1,""],key:[217,4,1,""],path:[217,4,1,""]},"evennia.contrib.turnbattle.tb_basic.CmdAttack":{aliases:[217,4,1,""],func:[217,3,1,""],help_category:[217,4,1,""],key:[217,4,1,""],lock_storage:[217,4,1,""],search_index_entry:[217,4,1,""]},"evennia.contrib.turnbattle.tb_basic.CmdCombatHelp":{aliases:[217,4,1,""],func:[217,3,1,""],help_category:[217,4,1,""],key:[217,4,1,""],lock_storage:[217,4,1,""],search_index_entry:[217,4,1,""]},"evennia.contrib.turnbattle.tb_basic.CmdDisengage":{aliases:[217,4,1,""],func:[217,3,1,""],help_category:[217,4,1,""],key:[217,4,1,""],lock_storage:[217,4,1,""],search_index_entry:[217,4,1,""]},"evennia.contrib.turnbattle.tb_basic.CmdFight":{aliases:[217,4,1,""],func:[217,3,1,""],help_category:[217,4,1,""],key:[217,4,1,""],lock_storage:[217,4,1,""],search_index_entry:[217,4,1,""]},"evennia.contrib.turnbattle.tb_basic.CmdPass":{aliases:[217,4,1,""],func:[217,3,1,""],help_category:[217,4,1,""],key:[217,4,1,""],lock_storage:[217,4,1,""],search_index_entry:[217,4,1,""]},"evennia.contrib.turnbattle.tb_basic.CmdRest":{aliases:[217,4,1,""],func:[217,3,1,""],help_category:[217,4,1,""],key:[217,4,1,""],lock_storage:[217,4,1,""],search_index_entry:[217,4,1,""]},"evennia.contrib.turnbattle.tb_basic.TBBasicCharacter":{DoesNotExist:[217,2,1,""],MultipleObjectsReturned:[217,2,1,""],at_before_move:[217,3,1,""],at_object_creation:[217,3,1,""],path:[217,4,1,""],typename:[217,4,1,""]},"evennia.contrib.turnbattle.tb_basic.TBBasicTurnHandler":{DoesNotExist:[217,2,1,""],MultipleObjectsReturned:[217,2,1,""],at_repeat:[217,3,1,""],at_script_creation:[217,3,1,""],at_stop:[217,3,1,""],initialize_for_combat:[217,3,1,""],join_fight:[217,3,1,""],next_turn:[217,3,1,""],path:[217,4,1,""],start_turn:[217,3,1,""],turn_end_check:[217,3,1,""],typename:[217,4,1,""]},"evennia.contrib.turnbattle.tb_equip":{ACTIONS_PER_TURN:[218,6,1,""],BattleCmdSet:[218,1,1,""],CmdAttack:[218,1,1,""],CmdCombatHelp:[218,1,1,""],CmdDisengage:[218,1,1,""],CmdDoff:[218,1,1,""],CmdDon:[218,1,1,""],CmdFight:[218,1,1,""],CmdPass:[218,1,1,""],CmdRest:[218,1,1,""],CmdUnwield:[218,1,1,""],CmdWield:[218,1,1,""],TBEArmor:[218,1,1,""],TBEWeapon:[218,1,1,""],TBEquipCharacter:[218,1,1,""],TBEquipTurnHandler:[218,1,1,""],apply_damage:[218,5,1,""],at_defeat:[218,5,1,""],combat_cleanup:[218,5,1,""],get_attack:[218,5,1,""],get_damage:[218,5,1,""],get_defense:[218,5,1,""],is_in_combat:[218,5,1,""],is_turn:[218,5,1,""],resolve_attack:[218,5,1,""],roll_init:[218,5,1,""],spend_action:[218,5,1,""]},"evennia.contrib.turnbattle.tb_equip.BattleCmdSet":{at_cmdset_creation:[218,3,1,""],key:[218,4,1,""],path:[218,4,1,""]},"evennia.contrib.turnbattle.tb_equip.CmdAttack":{aliases:[218,4,1,""],func:[218,3,1,""],help_category:[218,4,1,""],key:[218,4,1,""],lock_storage:[218,4,1,""],search_index_entry:[218,4,1,""]},"evennia.contrib.turnbattle.tb_equip.CmdCombatHelp":{aliases:[218,4,1,""],func:[218,3,1,""],help_category:[218,4,1,""],key:[218,4,1,""],lock_storage:[218,4,1,""],search_index_entry:[218,4,1,""]},"evennia.contrib.turnbattle.tb_equip.CmdDisengage":{aliases:[218,4,1,""],func:[218,3,1,""],help_category:[218,4,1,""],key:[218,4,1,""],lock_storage:[218,4,1,""],search_index_entry:[218,4,1,""]},"evennia.contrib.turnbattle.tb_equip.CmdDoff":{aliases:[218,4,1,""],func:[218,3,1,""],help_category:[218,4,1,""],key:[218,4,1,""],lock_storage:[218,4,1,""],search_index_entry:[218,4,1,""]},"evennia.contrib.turnbattle.tb_equip.CmdDon":{aliases:[218,4,1,""],func:[218,3,1,""],help_category:[218,4,1,""],key:[218,4,1,""],lock_storage:[218,4,1,""],search_index_entry:[218,4,1,""]},"evennia.contrib.turnbattle.tb_equip.CmdFight":{aliases:[218,4,1,""],func:[218,3,1,""],help_category:[218,4,1,""],key:[218,4,1,""],lock_storage:[218,4,1,""],search_index_entry:[218,4,1,""]},"evennia.contrib.turnbattle.tb_equip.CmdPass":{aliases:[218,4,1,""],func:[218,3,1,""],help_category:[218,4,1,""],key:[218,4,1,""],lock_storage:[218,4,1,""],search_index_entry:[218,4,1,""]},"evennia.contrib.turnbattle.tb_equip.CmdRest":{aliases:[218,4,1,""],func:[218,3,1,""],help_category:[218,4,1,""],key:[218,4,1,""],lock_storage:[218,4,1,""],search_index_entry:[218,4,1,""]},"evennia.contrib.turnbattle.tb_equip.CmdUnwield":{aliases:[218,4,1,""],func:[218,3,1,""],help_category:[218,4,1,""],key:[218,4,1,""],lock_storage:[218,4,1,""],search_index_entry:[218,4,1,""]},"evennia.contrib.turnbattle.tb_equip.CmdWield":{aliases:[218,4,1,""],func:[218,3,1,""],help_category:[218,4,1,""],key:[218,4,1,""],lock_storage:[218,4,1,""],search_index_entry:[218,4,1,""]},"evennia.contrib.turnbattle.tb_equip.TBEArmor":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_before_drop:[218,3,1,""],at_before_give:[218,3,1,""],at_drop:[218,3,1,""],at_give:[218,3,1,""],at_object_creation:[218,3,1,""],path:[218,4,1,""],typename:[218,4,1,""]},"evennia.contrib.turnbattle.tb_equip.TBEWeapon":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_drop:[218,3,1,""],at_give:[218,3,1,""],at_object_creation:[218,3,1,""],path:[218,4,1,""],typename:[218,4,1,""]},"evennia.contrib.turnbattle.tb_equip.TBEquipCharacter":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_before_move:[218,3,1,""],at_object_creation:[218,3,1,""],path:[218,4,1,""],typename:[218,4,1,""]},"evennia.contrib.turnbattle.tb_equip.TBEquipTurnHandler":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_repeat:[218,3,1,""],at_script_creation:[218,3,1,""],at_stop:[218,3,1,""],initialize_for_combat:[218,3,1,""],join_fight:[218,3,1,""],next_turn:[218,3,1,""],path:[218,4,1,""],start_turn:[218,3,1,""],turn_end_check:[218,3,1,""],typename:[218,4,1,""]},"evennia.contrib.turnbattle.tb_items":{BattleCmdSet:[219,1,1,""],CmdAttack:[219,1,1,""],CmdCombatHelp:[219,1,1,""],CmdDisengage:[219,1,1,""],CmdFight:[219,1,1,""],CmdPass:[219,1,1,""],CmdRest:[219,1,1,""],CmdUse:[219,1,1,""],DEF_DOWN_MOD:[219,6,1,""],ITEMFUNCS:[219,6,1,""],TBItemsCharacter:[219,1,1,""],TBItemsCharacterTest:[219,1,1,""],TBItemsTurnHandler:[219,1,1,""],add_condition:[219,5,1,""],apply_damage:[219,5,1,""],at_defeat:[219,5,1,""],combat_cleanup:[219,5,1,""],condition_tickdown:[219,5,1,""],get_attack:[219,5,1,""],get_damage:[219,5,1,""],get_defense:[219,5,1,""],is_in_combat:[219,5,1,""],is_turn:[219,5,1,""],itemfunc_add_condition:[219,5,1,""],itemfunc_attack:[219,5,1,""],itemfunc_cure_condition:[219,5,1,""],itemfunc_heal:[219,5,1,""],resolve_attack:[219,5,1,""],roll_init:[219,5,1,""],spend_action:[219,5,1,""],spend_item_use:[219,5,1,""],use_item:[219,5,1,""]},"evennia.contrib.turnbattle.tb_items.BattleCmdSet":{at_cmdset_creation:[219,3,1,""],key:[219,4,1,""],path:[219,4,1,""]},"evennia.contrib.turnbattle.tb_items.CmdAttack":{aliases:[219,4,1,""],func:[219,3,1,""],help_category:[219,4,1,""],key:[219,4,1,""],lock_storage:[219,4,1,""],search_index_entry:[219,4,1,""]},"evennia.contrib.turnbattle.tb_items.CmdCombatHelp":{aliases:[219,4,1,""],func:[219,3,1,""],help_category:[219,4,1,""],key:[219,4,1,""],lock_storage:[219,4,1,""],search_index_entry:[219,4,1,""]},"evennia.contrib.turnbattle.tb_items.CmdDisengage":{aliases:[219,4,1,""],func:[219,3,1,""],help_category:[219,4,1,""],key:[219,4,1,""],lock_storage:[219,4,1,""],search_index_entry:[219,4,1,""]},"evennia.contrib.turnbattle.tb_items.CmdFight":{aliases:[219,4,1,""],func:[219,3,1,""],help_category:[219,4,1,""],key:[219,4,1,""],lock_storage:[219,4,1,""],search_index_entry:[219,4,1,""]},"evennia.contrib.turnbattle.tb_items.CmdPass":{aliases:[219,4,1,""],func:[219,3,1,""],help_category:[219,4,1,""],key:[219,4,1,""],lock_storage:[219,4,1,""],search_index_entry:[219,4,1,""]},"evennia.contrib.turnbattle.tb_items.CmdRest":{aliases:[219,4,1,""],func:[219,3,1,""],help_category:[219,4,1,""],key:[219,4,1,""],lock_storage:[219,4,1,""],search_index_entry:[219,4,1,""]},"evennia.contrib.turnbattle.tb_items.CmdUse":{aliases:[219,4,1,""],func:[219,3,1,""],help_category:[219,4,1,""],key:[219,4,1,""],lock_storage:[219,4,1,""],search_index_entry:[219,4,1,""]},"evennia.contrib.turnbattle.tb_items.TBItemsCharacter":{DoesNotExist:[219,2,1,""],MultipleObjectsReturned:[219,2,1,""],apply_turn_conditions:[219,3,1,""],at_before_move:[219,3,1,""],at_object_creation:[219,3,1,""],at_turn_start:[219,3,1,""],at_update:[219,3,1,""],path:[219,4,1,""],typename:[219,4,1,""]},"evennia.contrib.turnbattle.tb_items.TBItemsCharacterTest":{DoesNotExist:[219,2,1,""],MultipleObjectsReturned:[219,2,1,""],at_object_creation:[219,3,1,""],path:[219,4,1,""],typename:[219,4,1,""]},"evennia.contrib.turnbattle.tb_items.TBItemsTurnHandler":{DoesNotExist:[219,2,1,""],MultipleObjectsReturned:[219,2,1,""],at_repeat:[219,3,1,""],at_script_creation:[219,3,1,""],at_stop:[219,3,1,""],initialize_for_combat:[219,3,1,""],join_fight:[219,3,1,""],next_turn:[219,3,1,""],path:[219,4,1,""],start_turn:[219,3,1,""],turn_end_check:[219,3,1,""],typename:[219,4,1,""]},"evennia.contrib.turnbattle.tb_magic":{ACTIONS_PER_TURN:[220,6,1,""],BattleCmdSet:[220,1,1,""],CmdAttack:[220,1,1,""],CmdCast:[220,1,1,""],CmdCombatHelp:[220,1,1,""],CmdDisengage:[220,1,1,""],CmdFight:[220,1,1,""],CmdLearnSpell:[220,1,1,""],CmdPass:[220,1,1,""],CmdRest:[220,1,1,""],CmdStatus:[220,1,1,""],TBMagicCharacter:[220,1,1,""],TBMagicTurnHandler:[220,1,1,""],apply_damage:[220,5,1,""],at_defeat:[220,5,1,""],combat_cleanup:[220,5,1,""],get_attack:[220,5,1,""],get_damage:[220,5,1,""],get_defense:[220,5,1,""],is_in_combat:[220,5,1,""],is_turn:[220,5,1,""],resolve_attack:[220,5,1,""],roll_init:[220,5,1,""],spell_attack:[220,5,1,""],spell_conjure:[220,5,1,""],spell_healing:[220,5,1,""],spend_action:[220,5,1,""]},"evennia.contrib.turnbattle.tb_magic.BattleCmdSet":{at_cmdset_creation:[220,3,1,""],key:[220,4,1,""],path:[220,4,1,""]},"evennia.contrib.turnbattle.tb_magic.CmdAttack":{aliases:[220,4,1,""],func:[220,3,1,""],help_category:[220,4,1,""],key:[220,4,1,""],lock_storage:[220,4,1,""],search_index_entry:[220,4,1,""]},"evennia.contrib.turnbattle.tb_magic.CmdCast":{aliases:[220,4,1,""],func:[220,3,1,""],help_category:[220,4,1,""],key:[220,4,1,""],lock_storage:[220,4,1,""],search_index_entry:[220,4,1,""]},"evennia.contrib.turnbattle.tb_magic.CmdCombatHelp":{aliases:[220,4,1,""],func:[220,3,1,""],help_category:[220,4,1,""],key:[220,4,1,""],lock_storage:[220,4,1,""],search_index_entry:[220,4,1,""]},"evennia.contrib.turnbattle.tb_magic.CmdDisengage":{aliases:[220,4,1,""],func:[220,3,1,""],help_category:[220,4,1,""],key:[220,4,1,""],lock_storage:[220,4,1,""],search_index_entry:[220,4,1,""]},"evennia.contrib.turnbattle.tb_magic.CmdFight":{aliases:[220,4,1,""],func:[220,3,1,""],help_category:[220,4,1,""],key:[220,4,1,""],lock_storage:[220,4,1,""],search_index_entry:[220,4,1,""]},"evennia.contrib.turnbattle.tb_magic.CmdLearnSpell":{aliases:[220,4,1,""],func:[220,3,1,""],help_category:[220,4,1,""],key:[220,4,1,""],lock_storage:[220,4,1,""],search_index_entry:[220,4,1,""]},"evennia.contrib.turnbattle.tb_magic.CmdPass":{aliases:[220,4,1,""],func:[220,3,1,""],help_category:[220,4,1,""],key:[220,4,1,""],lock_storage:[220,4,1,""],search_index_entry:[220,4,1,""]},"evennia.contrib.turnbattle.tb_magic.CmdRest":{aliases:[220,4,1,""],func:[220,3,1,""],help_category:[220,4,1,""],key:[220,4,1,""],lock_storage:[220,4,1,""],search_index_entry:[220,4,1,""]},"evennia.contrib.turnbattle.tb_magic.CmdStatus":{aliases:[220,4,1,""],func:[220,3,1,""],help_category:[220,4,1,""],key:[220,4,1,""],lock_storage:[220,4,1,""],search_index_entry:[220,4,1,""]},"evennia.contrib.turnbattle.tb_magic.TBMagicCharacter":{DoesNotExist:[220,2,1,""],MultipleObjectsReturned:[220,2,1,""],at_before_move:[220,3,1,""],at_object_creation:[220,3,1,""],path:[220,4,1,""],typename:[220,4,1,""]},"evennia.contrib.turnbattle.tb_magic.TBMagicTurnHandler":{DoesNotExist:[220,2,1,""],MultipleObjectsReturned:[220,2,1,""],at_repeat:[220,3,1,""],at_script_creation:[220,3,1,""],at_stop:[220,3,1,""],initialize_for_combat:[220,3,1,""],join_fight:[220,3,1,""],next_turn:[220,3,1,""],path:[220,4,1,""],start_turn:[220,3,1,""],turn_end_check:[220,3,1,""],typename:[220,4,1,""]},"evennia.contrib.turnbattle.tb_range":{ACTIONS_PER_TURN:[221,6,1,""],BattleCmdSet:[221,1,1,""],CmdApproach:[221,1,1,""],CmdAttack:[221,1,1,""],CmdCombatHelp:[221,1,1,""],CmdDisengage:[221,1,1,""],CmdFight:[221,1,1,""],CmdPass:[221,1,1,""],CmdRest:[221,1,1,""],CmdShoot:[221,1,1,""],CmdStatus:[221,1,1,""],CmdWithdraw:[221,1,1,""],TBRangeCharacter:[221,1,1,""],TBRangeObject:[221,1,1,""],TBRangeTurnHandler:[221,1,1,""],apply_damage:[221,5,1,""],approach:[221,5,1,""],at_defeat:[221,5,1,""],combat_cleanup:[221,5,1,""],combat_status_message:[221,5,1,""],distance_inc:[221,5,1,""],get_attack:[221,5,1,""],get_damage:[221,5,1,""],get_defense:[221,5,1,""],get_range:[221,5,1,""],is_in_combat:[221,5,1,""],is_turn:[221,5,1,""],resolve_attack:[221,5,1,""],roll_init:[221,5,1,""],spend_action:[221,5,1,""],withdraw:[221,5,1,""]},"evennia.contrib.turnbattle.tb_range.BattleCmdSet":{at_cmdset_creation:[221,3,1,""],key:[221,4,1,""],path:[221,4,1,""]},"evennia.contrib.turnbattle.tb_range.CmdApproach":{aliases:[221,4,1,""],func:[221,3,1,""],help_category:[221,4,1,""],key:[221,4,1,""],lock_storage:[221,4,1,""],search_index_entry:[221,4,1,""]},"evennia.contrib.turnbattle.tb_range.CmdAttack":{aliases:[221,4,1,""],func:[221,3,1,""],help_category:[221,4,1,""],key:[221,4,1,""],lock_storage:[221,4,1,""],search_index_entry:[221,4,1,""]},"evennia.contrib.turnbattle.tb_range.CmdCombatHelp":{aliases:[221,4,1,""],func:[221,3,1,""],help_category:[221,4,1,""],key:[221,4,1,""],lock_storage:[221,4,1,""],search_index_entry:[221,4,1,""]},"evennia.contrib.turnbattle.tb_range.CmdDisengage":{aliases:[221,4,1,""],func:[221,3,1,""],help_category:[221,4,1,""],key:[221,4,1,""],lock_storage:[221,4,1,""],search_index_entry:[221,4,1,""]},"evennia.contrib.turnbattle.tb_range.CmdFight":{aliases:[221,4,1,""],func:[221,3,1,""],help_category:[221,4,1,""],key:[221,4,1,""],lock_storage:[221,4,1,""],search_index_entry:[221,4,1,""]},"evennia.contrib.turnbattle.tb_range.CmdPass":{aliases:[221,4,1,""],func:[221,3,1,""],help_category:[221,4,1,""],key:[221,4,1,""],lock_storage:[221,4,1,""],search_index_entry:[221,4,1,""]},"evennia.contrib.turnbattle.tb_range.CmdRest":{aliases:[221,4,1,""],func:[221,3,1,""],help_category:[221,4,1,""],key:[221,4,1,""],lock_storage:[221,4,1,""],search_index_entry:[221,4,1,""]},"evennia.contrib.turnbattle.tb_range.CmdShoot":{aliases:[221,4,1,""],func:[221,3,1,""],help_category:[221,4,1,""],key:[221,4,1,""],lock_storage:[221,4,1,""],search_index_entry:[221,4,1,""]},"evennia.contrib.turnbattle.tb_range.CmdStatus":{aliases:[221,4,1,""],func:[221,3,1,""],help_category:[221,4,1,""],key:[221,4,1,""],lock_storage:[221,4,1,""],search_index_entry:[221,4,1,""]},"evennia.contrib.turnbattle.tb_range.CmdWithdraw":{aliases:[221,4,1,""],func:[221,3,1,""],help_category:[221,4,1,""],key:[221,4,1,""],lock_storage:[221,4,1,""],search_index_entry:[221,4,1,""]},"evennia.contrib.turnbattle.tb_range.TBRangeCharacter":{DoesNotExist:[221,2,1,""],MultipleObjectsReturned:[221,2,1,""],at_before_move:[221,3,1,""],at_object_creation:[221,3,1,""],path:[221,4,1,""],typename:[221,4,1,""]},"evennia.contrib.turnbattle.tb_range.TBRangeObject":{DoesNotExist:[221,2,1,""],MultipleObjectsReturned:[221,2,1,""],at_before_drop:[221,3,1,""],at_before_get:[221,3,1,""],at_before_give:[221,3,1,""],at_drop:[221,3,1,""],at_get:[221,3,1,""],at_give:[221,3,1,""],path:[221,4,1,""],typename:[221,4,1,""]},"evennia.contrib.turnbattle.tb_range.TBRangeTurnHandler":{DoesNotExist:[221,2,1,""],MultipleObjectsReturned:[221,2,1,""],at_repeat:[221,3,1,""],at_script_creation:[221,3,1,""],at_stop:[221,3,1,""],init_range:[221,3,1,""],initialize_for_combat:[221,3,1,""],join_fight:[221,3,1,""],join_rangefield:[221,3,1,""],next_turn:[221,3,1,""],path:[221,4,1,""],start_turn:[221,3,1,""],turn_end_check:[221,3,1,""],typename:[221,4,1,""]},"evennia.contrib.tutorial_examples":{bodyfunctions:[223,0,0,"-"],cmdset_red_button:[224,0,0,"-"],red_button:[226,0,0,"-"],red_button_scripts:[227,0,0,"-"],tests:[228,0,0,"-"]},"evennia.contrib.tutorial_examples.bodyfunctions":{BodyFunctions:[223,1,1,""]},"evennia.contrib.tutorial_examples.bodyfunctions.BodyFunctions":{DoesNotExist:[223,2,1,""],MultipleObjectsReturned:[223,2,1,""],at_repeat:[223,3,1,""],at_script_creation:[223,3,1,""],path:[223,4,1,""],send_random_message:[223,3,1,""],typename:[223,4,1,""]},"evennia.contrib.tutorial_examples.cmdset_red_button":{BlindCmdSet:[224,1,1,""],CmdBlindHelp:[224,1,1,""],CmdBlindLook:[224,1,1,""],CmdCloseLid:[224,1,1,""],CmdNudge:[224,1,1,""],CmdOpenLid:[224,1,1,""],CmdPush:[224,1,1,""],CmdSmashGlass:[224,1,1,""],DefaultCmdSet:[224,1,1,""],LidClosedCmdSet:[224,1,1,""],LidOpenCmdSet:[224,1,1,""]},"evennia.contrib.tutorial_examples.cmdset_red_button.BlindCmdSet":{at_cmdset_creation:[224,3,1,""],key:[224,4,1,""],mergetype:[224,4,1,""],no_exits:[224,4,1,""],no_objs:[224,4,1,""],path:[224,4,1,""]},"evennia.contrib.tutorial_examples.cmdset_red_button.CmdBlindHelp":{aliases:[224,4,1,""],func:[224,3,1,""],help_category:[224,4,1,""],key:[224,4,1,""],lock_storage:[224,4,1,""],locks:[224,4,1,""],search_index_entry:[224,4,1,""]},"evennia.contrib.tutorial_examples.cmdset_red_button.CmdBlindLook":{aliases:[224,4,1,""],func:[224,3,1,""],help_category:[224,4,1,""],key:[224,4,1,""],lock_storage:[224,4,1,""],locks:[224,4,1,""],search_index_entry:[224,4,1,""]},"evennia.contrib.tutorial_examples.cmdset_red_button.CmdCloseLid":{aliases:[224,4,1,""],func:[224,3,1,""],help_category:[224,4,1,""],key:[224,4,1,""],lock_storage:[224,4,1,""],locks:[224,4,1,""],search_index_entry:[224,4,1,""]},"evennia.contrib.tutorial_examples.cmdset_red_button.CmdNudge":{aliases:[224,4,1,""],func:[224,3,1,""],help_category:[224,4,1,""],key:[224,4,1,""],lock_storage:[224,4,1,""],locks:[224,4,1,""],search_index_entry:[224,4,1,""]},"evennia.contrib.tutorial_examples.cmdset_red_button.CmdOpenLid":{aliases:[224,4,1,""],func:[224,3,1,""],help_category:[224,4,1,""],key:[224,4,1,""],lock_storage:[224,4,1,""],locks:[224,4,1,""],search_index_entry:[224,4,1,""]},"evennia.contrib.tutorial_examples.cmdset_red_button.CmdPush":{aliases:[224,4,1,""],func:[224,3,1,""],help_category:[224,4,1,""],key:[224,4,1,""],lock_storage:[224,4,1,""],locks:[224,4,1,""],search_index_entry:[224,4,1,""]},"evennia.contrib.tutorial_examples.cmdset_red_button.CmdSmashGlass":{aliases:[224,4,1,""],func:[224,3,1,""],help_category:[224,4,1,""],key:[224,4,1,""],lock_storage:[224,4,1,""],locks:[224,4,1,""],search_index_entry:[224,4,1,""]},"evennia.contrib.tutorial_examples.cmdset_red_button.DefaultCmdSet":{at_cmdset_creation:[224,3,1,""],key:[224,4,1,""],mergetype:[224,4,1,""],path:[224,4,1,""]},"evennia.contrib.tutorial_examples.cmdset_red_button.LidClosedCmdSet":{at_cmdset_creation:[224,3,1,""],key:[224,4,1,""],key_mergetype:[224,4,1,""],path:[224,4,1,""]},"evennia.contrib.tutorial_examples.cmdset_red_button.LidOpenCmdSet":{at_cmdset_creation:[224,3,1,""],key:[224,4,1,""],key_mergetype:[224,4,1,""],path:[224,4,1,""]},"evennia.contrib.tutorial_examples.red_button":{RedButton:[226,1,1,""]},"evennia.contrib.tutorial_examples.red_button.RedButton":{DoesNotExist:[226,2,1,""],MultipleObjectsReturned:[226,2,1,""],at_object_creation:[226,3,1,""],blink:[226,3,1,""],break_lamp:[226,3,1,""],close_lid:[226,3,1,""],open_lid:[226,3,1,""],path:[226,4,1,""],press_button:[226,3,1,""],typename:[226,4,1,""]},"evennia.contrib.tutorial_examples.red_button_scripts":{BlindedState:[227,1,1,""],BlinkButtonEvent:[227,1,1,""],CloseLidEvent:[227,1,1,""],ClosedLidState:[227,1,1,""],DeactivateButtonEvent:[227,1,1,""],OpenLidState:[227,1,1,""]},"evennia.contrib.tutorial_examples.red_button_scripts.BlindedState":{DoesNotExist:[227,2,1,""],MultipleObjectsReturned:[227,2,1,""],at_script_creation:[227,3,1,""],at_start:[227,3,1,""],at_stop:[227,3,1,""],path:[227,4,1,""],typename:[227,4,1,""]},"evennia.contrib.tutorial_examples.red_button_scripts.BlinkButtonEvent":{DoesNotExist:[227,2,1,""],MultipleObjectsReturned:[227,2,1,""],at_repeat:[227,3,1,""],at_script_creation:[227,3,1,""],is_valid:[227,3,1,""],path:[227,4,1,""],typename:[227,4,1,""]},"evennia.contrib.tutorial_examples.red_button_scripts.CloseLidEvent":{DoesNotExist:[227,2,1,""],MultipleObjectsReturned:[227,2,1,""],at_repeat:[227,3,1,""],at_script_creation:[227,3,1,""],is_valid:[227,3,1,""],path:[227,4,1,""],typename:[227,4,1,""]},"evennia.contrib.tutorial_examples.red_button_scripts.ClosedLidState":{DoesNotExist:[227,2,1,""],MultipleObjectsReturned:[227,2,1,""],at_script_creation:[227,3,1,""],at_start:[227,3,1,""],at_stop:[227,3,1,""],is_valid:[227,3,1,""],path:[227,4,1,""],typename:[227,4,1,""]},"evennia.contrib.tutorial_examples.red_button_scripts.DeactivateButtonEvent":{DoesNotExist:[227,2,1,""],MultipleObjectsReturned:[227,2,1,""],at_repeat:[227,3,1,""],at_script_creation:[227,3,1,""],at_start:[227,3,1,""],path:[227,4,1,""],typename:[227,4,1,""]},"evennia.contrib.tutorial_examples.red_button_scripts.OpenLidState":{DoesNotExist:[227,2,1,""],MultipleObjectsReturned:[227,2,1,""],at_script_creation:[227,3,1,""],at_start:[227,3,1,""],at_stop:[227,3,1,""],is_valid:[227,3,1,""],path:[227,4,1,""],typename:[227,4,1,""]},"evennia.contrib.tutorial_examples.tests":{TestBodyFunctions:[228,1,1,""]},"evennia.contrib.tutorial_examples.tests.TestBodyFunctions":{script_typeclass:[228,4,1,""],setUp:[228,3,1,""],tearDown:[228,3,1,""],test_at_repeat:[228,3,1,""],test_send_random_message:[228,3,1,""]},"evennia.contrib.tutorial_world":{intro_menu:[230,0,0,"-"],mob:[231,0,0,"-"],objects:[232,0,0,"-"],rooms:[233,0,0,"-"]},"evennia.contrib.tutorial_world.intro_menu":{DemoCommandSetComms:[230,1,1,""],DemoCommandSetHelp:[230,1,1,""],DemoCommandSetRoom:[230,1,1,""],TutorialEvMenu:[230,1,1,""],do_nothing:[230,5,1,""],goto_cleanup_cmdsets:[230,5,1,""],goto_command_demo_comms:[230,5,1,""],goto_command_demo_help:[230,5,1,""],goto_command_demo_room:[230,5,1,""],init_menu:[230,5,1,""],send_testing_tagged:[230,5,1,""]},"evennia.contrib.tutorial_world.intro_menu.DemoCommandSetComms":{at_cmdset_creation:[230,3,1,""],key:[230,4,1,""],no_exits:[230,4,1,""],no_objs:[230,4,1,""],path:[230,4,1,""],priority:[230,4,1,""]},"evennia.contrib.tutorial_world.intro_menu.DemoCommandSetHelp":{at_cmdset_creation:[230,3,1,""],key:[230,4,1,""],path:[230,4,1,""],priority:[230,4,1,""]},"evennia.contrib.tutorial_world.intro_menu.DemoCommandSetRoom":{at_cmdset_creation:[230,3,1,""],key:[230,4,1,""],no_exits:[230,4,1,""],no_objs:[230,4,1,""],path:[230,4,1,""],priority:[230,4,1,""]},"evennia.contrib.tutorial_world.intro_menu.TutorialEvMenu":{close_menu:[230,3,1,""],options_formatter:[230,3,1,""]},"evennia.contrib.tutorial_world.mob":{CmdMobOnOff:[231,1,1,""],Mob:[231,1,1,""],MobCmdSet:[231,1,1,""]},"evennia.contrib.tutorial_world.mob.CmdMobOnOff":{aliases:[231,4,1,""],func:[231,3,1,""],help_category:[231,4,1,""],key:[231,4,1,""],lock_storage:[231,4,1,""],locks:[231,4,1,""],search_index_entry:[231,4,1,""]},"evennia.contrib.tutorial_world.mob.Mob":{DoesNotExist:[231,2,1,""],MultipleObjectsReturned:[231,2,1,""],at_hit:[231,3,1,""],at_init:[231,3,1,""],at_new_arrival:[231,3,1,""],at_object_creation:[231,3,1,""],do_attack:[231,3,1,""],do_hunting:[231,3,1,""],do_patrol:[231,3,1,""],path:[231,4,1,""],set_alive:[231,3,1,""],set_dead:[231,3,1,""],start_attacking:[231,3,1,""],start_hunting:[231,3,1,""],start_idle:[231,3,1,""],start_patrolling:[231,3,1,""],typename:[231,4,1,""]},"evennia.contrib.tutorial_world.mob.MobCmdSet":{at_cmdset_creation:[231,3,1,""],path:[231,4,1,""]},"evennia.contrib.tutorial_world.objects":{CmdAttack:[232,1,1,""],CmdClimb:[232,1,1,""],CmdGetWeapon:[232,1,1,""],CmdLight:[232,1,1,""],CmdPressButton:[232,1,1,""],CmdRead:[232,1,1,""],CmdSetClimbable:[232,1,1,""],CmdSetCrumblingWall:[232,1,1,""],CmdSetLight:[232,1,1,""],CmdSetReadable:[232,1,1,""],CmdSetWeapon:[232,1,1,""],CmdSetWeaponRack:[232,1,1,""],CmdShiftRoot:[232,1,1,""],CrumblingWall:[232,1,1,""],LightSource:[232,1,1,""],Obelisk:[232,1,1,""],TutorialClimbable:[232,1,1,""],TutorialObject:[232,1,1,""],TutorialReadable:[232,1,1,""],TutorialWeapon:[232,1,1,""],TutorialWeaponRack:[232,1,1,""]},"evennia.contrib.tutorial_world.objects.CmdAttack":{aliases:[232,4,1,""],func:[232,3,1,""],help_category:[232,4,1,""],key:[232,4,1,""],lock_storage:[232,4,1,""],locks:[232,4,1,""],search_index_entry:[232,4,1,""]},"evennia.contrib.tutorial_world.objects.CmdClimb":{aliases:[232,4,1,""],func:[232,3,1,""],help_category:[232,4,1,""],key:[232,4,1,""],lock_storage:[232,4,1,""],locks:[232,4,1,""],search_index_entry:[232,4,1,""]},"evennia.contrib.tutorial_world.objects.CmdGetWeapon":{aliases:[232,4,1,""],func:[232,3,1,""],help_category:[232,4,1,""],key:[232,4,1,""],lock_storage:[232,4,1,""],locks:[232,4,1,""],search_index_entry:[232,4,1,""]},"evennia.contrib.tutorial_world.objects.CmdLight":{aliases:[232,4,1,""],func:[232,3,1,""],help_category:[232,4,1,""],key:[232,4,1,""],lock_storage:[232,4,1,""],locks:[232,4,1,""],search_index_entry:[232,4,1,""]},"evennia.contrib.tutorial_world.objects.CmdPressButton":{aliases:[232,4,1,""],func:[232,3,1,""],help_category:[232,4,1,""],key:[232,4,1,""],lock_storage:[232,4,1,""],locks:[232,4,1,""],search_index_entry:[232,4,1,""]},"evennia.contrib.tutorial_world.objects.CmdRead":{aliases:[232,4,1,""],func:[232,3,1,""],help_category:[232,4,1,""],key:[232,4,1,""],lock_storage:[232,4,1,""],locks:[232,4,1,""],search_index_entry:[232,4,1,""]},"evennia.contrib.tutorial_world.objects.CmdSetClimbable":{at_cmdset_creation:[232,3,1,""],path:[232,4,1,""]},"evennia.contrib.tutorial_world.objects.CmdSetCrumblingWall":{at_cmdset_creation:[232,3,1,""],key:[232,4,1,""],path:[232,4,1,""],priority:[232,4,1,""]},"evennia.contrib.tutorial_world.objects.CmdSetLight":{at_cmdset_creation:[232,3,1,""],key:[232,4,1,""],path:[232,4,1,""],priority:[232,4,1,""]},"evennia.contrib.tutorial_world.objects.CmdSetReadable":{at_cmdset_creation:[232,3,1,""],path:[232,4,1,""]},"evennia.contrib.tutorial_world.objects.CmdSetWeapon":{at_cmdset_creation:[232,3,1,""],path:[232,4,1,""]},"evennia.contrib.tutorial_world.objects.CmdSetWeaponRack":{at_cmdset_creation:[232,3,1,""],key:[232,4,1,""],path:[232,4,1,""]},"evennia.contrib.tutorial_world.objects.CmdShiftRoot":{aliases:[232,4,1,""],func:[232,3,1,""],help_category:[232,4,1,""],key:[232,4,1,""],lock_storage:[232,4,1,""],locks:[232,4,1,""],parse:[232,3,1,""],search_index_entry:[232,4,1,""]},"evennia.contrib.tutorial_world.objects.CrumblingWall":{DoesNotExist:[232,2,1,""],MultipleObjectsReturned:[232,2,1,""],at_after_traverse:[232,3,1,""],at_failed_traverse:[232,3,1,""],at_init:[232,3,1,""],at_object_creation:[232,3,1,""],open_wall:[232,3,1,""],path:[232,4,1,""],reset:[232,3,1,""],return_appearance:[232,3,1,""],typename:[232,4,1,""]},"evennia.contrib.tutorial_world.objects.LightSource":{DoesNotExist:[232,2,1,""],MultipleObjectsReturned:[232,2,1,""],at_init:[232,3,1,""],at_object_creation:[232,3,1,""],light:[232,3,1,""],path:[232,4,1,""],typename:[232,4,1,""]},"evennia.contrib.tutorial_world.objects.Obelisk":{DoesNotExist:[232,2,1,""],MultipleObjectsReturned:[232,2,1,""],at_object_creation:[232,3,1,""],path:[232,4,1,""],return_appearance:[232,3,1,""],typename:[232,4,1,""]},"evennia.contrib.tutorial_world.objects.TutorialClimbable":{DoesNotExist:[232,2,1,""],MultipleObjectsReturned:[232,2,1,""],at_object_creation:[232,3,1,""],path:[232,4,1,""],typename:[232,4,1,""]},"evennia.contrib.tutorial_world.objects.TutorialObject":{DoesNotExist:[232,2,1,""],MultipleObjectsReturned:[232,2,1,""],at_object_creation:[232,3,1,""],path:[232,4,1,""],reset:[232,3,1,""],typename:[232,4,1,""]},"evennia.contrib.tutorial_world.objects.TutorialReadable":{DoesNotExist:[232,2,1,""],MultipleObjectsReturned:[232,2,1,""],at_object_creation:[232,3,1,""],path:[232,4,1,""],typename:[232,4,1,""]},"evennia.contrib.tutorial_world.objects.TutorialWeapon":{DoesNotExist:[232,2,1,""],MultipleObjectsReturned:[232,2,1,""],at_object_creation:[232,3,1,""],path:[232,4,1,""],reset:[232,3,1,""],typename:[232,4,1,""]},"evennia.contrib.tutorial_world.objects.TutorialWeaponRack":{DoesNotExist:[232,2,1,""],MultipleObjectsReturned:[232,2,1,""],at_object_creation:[232,3,1,""],path:[232,4,1,""],produce_weapon:[232,3,1,""],typename:[232,4,1,""]},"evennia.contrib.tutorial_world.rooms":{BridgeCmdSet:[233,1,1,""],BridgeRoom:[233,1,1,""],CmdBridgeHelp:[233,1,1,""],CmdDarkHelp:[233,1,1,""],CmdDarkNoMatch:[233,1,1,""],CmdEast:[233,1,1,""],CmdEvenniaIntro:[233,1,1,""],CmdLookBridge:[233,1,1,""],CmdLookDark:[233,1,1,""],CmdSetEvenniaIntro:[233,1,1,""],CmdTutorial:[233,1,1,""],CmdTutorialGiveUp:[233,1,1,""],CmdTutorialLook:[233,1,1,""],CmdTutorialSetDetail:[233,1,1,""],CmdWest:[233,1,1,""],DarkCmdSet:[233,1,1,""],DarkRoom:[233,1,1,""],IntroRoom:[233,1,1,""],OutroRoom:[233,1,1,""],TeleportRoom:[233,1,1,""],TutorialRoom:[233,1,1,""],TutorialRoomCmdSet:[233,1,1,""],WeatherRoom:[233,1,1,""]},"evennia.contrib.tutorial_world.rooms.BridgeCmdSet":{at_cmdset_creation:[233,3,1,""],key:[233,4,1,""],path:[233,4,1,""],priority:[233,4,1,""]},"evennia.contrib.tutorial_world.rooms.BridgeRoom":{DoesNotExist:[233,2,1,""],MultipleObjectsReturned:[233,2,1,""],at_object_creation:[233,3,1,""],at_object_leave:[233,3,1,""],at_object_receive:[233,3,1,""],path:[233,4,1,""],typename:[233,4,1,""],update_weather:[233,3,1,""]},"evennia.contrib.tutorial_world.rooms.CmdBridgeHelp":{aliases:[233,4,1,""],func:[233,3,1,""],help_category:[233,4,1,""],key:[233,4,1,""],lock_storage:[233,4,1,""],locks:[233,4,1,""],search_index_entry:[233,4,1,""]},"evennia.contrib.tutorial_world.rooms.CmdDarkHelp":{aliases:[233,4,1,""],func:[233,3,1,""],help_category:[233,4,1,""],key:[233,4,1,""],lock_storage:[233,4,1,""],locks:[233,4,1,""],search_index_entry:[233,4,1,""]},"evennia.contrib.tutorial_world.rooms.CmdDarkNoMatch":{aliases:[233,4,1,""],func:[233,3,1,""],help_category:[233,4,1,""],key:[233,4,1,""],lock_storage:[233,4,1,""],locks:[233,4,1,""],search_index_entry:[233,4,1,""]},"evennia.contrib.tutorial_world.rooms.CmdEast":{aliases:[233,4,1,""],func:[233,3,1,""],help_category:[233,4,1,""],key:[233,4,1,""],lock_storage:[233,4,1,""],locks:[233,4,1,""],search_index_entry:[233,4,1,""]},"evennia.contrib.tutorial_world.rooms.CmdEvenniaIntro":{aliases:[233,4,1,""],func:[233,3,1,""],help_category:[233,4,1,""],key:[233,4,1,""],lock_storage:[233,4,1,""],search_index_entry:[233,4,1,""]},"evennia.contrib.tutorial_world.rooms.CmdLookBridge":{aliases:[233,4,1,""],func:[233,3,1,""],help_category:[233,4,1,""],key:[233,4,1,""],lock_storage:[233,4,1,""],locks:[233,4,1,""],search_index_entry:[233,4,1,""]},"evennia.contrib.tutorial_world.rooms.CmdLookDark":{aliases:[233,4,1,""],func:[233,3,1,""],help_category:[233,4,1,""],key:[233,4,1,""],lock_storage:[233,4,1,""],locks:[233,4,1,""],search_index_entry:[233,4,1,""]},"evennia.contrib.tutorial_world.rooms.CmdSetEvenniaIntro":{at_cmdset_creation:[233,3,1,""],key:[233,4,1,""],path:[233,4,1,""]},"evennia.contrib.tutorial_world.rooms.CmdTutorial":{aliases:[233,4,1,""],func:[233,3,1,""],help_category:[233,4,1,""],key:[233,4,1,""],lock_storage:[233,4,1,""],locks:[233,4,1,""],search_index_entry:[233,4,1,""]},"evennia.contrib.tutorial_world.rooms.CmdTutorialGiveUp":{aliases:[233,4,1,""],func:[233,3,1,""],help_category:[233,4,1,""],key:[233,4,1,""],lock_storage:[233,4,1,""],search_index_entry:[233,4,1,""]},"evennia.contrib.tutorial_world.rooms.CmdTutorialLook":{aliases:[233,4,1,""],func:[233,3,1,""],help_category:[233,4,1,""],key:[233,4,1,""],lock_storage:[233,4,1,""],search_index_entry:[233,4,1,""]},"evennia.contrib.tutorial_world.rooms.CmdTutorialSetDetail":{aliases:[233,4,1,""],func:[233,3,1,""],help_category:[233,4,1,""],key:[233,4,1,""],lock_storage:[233,4,1,""],locks:[233,4,1,""],search_index_entry:[233,4,1,""]},"evennia.contrib.tutorial_world.rooms.CmdWest":{aliases:[233,4,1,""],func:[233,3,1,""],help_category:[233,4,1,""],key:[233,4,1,""],lock_storage:[233,4,1,""],locks:[233,4,1,""],search_index_entry:[233,4,1,""]},"evennia.contrib.tutorial_world.rooms.DarkCmdSet":{at_cmdset_creation:[233,3,1,""],key:[233,4,1,""],mergetype:[233,4,1,""],path:[233,4,1,""],priority:[233,4,1,""]},"evennia.contrib.tutorial_world.rooms.DarkRoom":{DoesNotExist:[233,2,1,""],MultipleObjectsReturned:[233,2,1,""],at_init:[233,3,1,""],at_object_creation:[233,3,1,""],at_object_leave:[233,3,1,""],at_object_receive:[233,3,1,""],check_light_state:[233,3,1,""],path:[233,4,1,""],typename:[233,4,1,""]},"evennia.contrib.tutorial_world.rooms.IntroRoom":{DoesNotExist:[233,2,1,""],MultipleObjectsReturned:[233,2,1,""],at_object_creation:[233,3,1,""],at_object_receive:[233,3,1,""],path:[233,4,1,""],typename:[233,4,1,""]},"evennia.contrib.tutorial_world.rooms.OutroRoom":{DoesNotExist:[233,2,1,""],MultipleObjectsReturned:[233,2,1,""],at_object_creation:[233,3,1,""],at_object_leave:[233,3,1,""],at_object_receive:[233,3,1,""],path:[233,4,1,""],typename:[233,4,1,""]},"evennia.contrib.tutorial_world.rooms.TeleportRoom":{DoesNotExist:[233,2,1,""],MultipleObjectsReturned:[233,2,1,""],at_object_creation:[233,3,1,""],at_object_receive:[233,3,1,""],path:[233,4,1,""],typename:[233,4,1,""]},"evennia.contrib.tutorial_world.rooms.TutorialRoom":{DoesNotExist:[233,2,1,""],MultipleObjectsReturned:[233,2,1,""],at_object_creation:[233,3,1,""],at_object_receive:[233,3,1,""],path:[233,4,1,""],return_detail:[233,3,1,""],set_detail:[233,3,1,""],typename:[233,4,1,""]},"evennia.contrib.tutorial_world.rooms.TutorialRoomCmdSet":{at_cmdset_creation:[233,3,1,""],key:[233,4,1,""],path:[233,4,1,""],priority:[233,4,1,""]},"evennia.contrib.tutorial_world.rooms.WeatherRoom":{DoesNotExist:[233,2,1,""],MultipleObjectsReturned:[233,2,1,""],at_object_creation:[233,3,1,""],path:[233,4,1,""],typename:[233,4,1,""],update_weather:[233,3,1,""]},"evennia.contrib.unixcommand":{HelpAction:[234,1,1,""],ParseError:[234,2,1,""],UnixCommand:[234,1,1,""],UnixCommandParser:[234,1,1,""]},"evennia.contrib.unixcommand.UnixCommand":{__init__:[234,3,1,""],aliases:[234,4,1,""],func:[234,3,1,""],get_help:[234,3,1,""],help_category:[234,4,1,""],init_parser:[234,3,1,""],key:[234,4,1,""],lock_storage:[234,4,1,""],parse:[234,3,1,""],search_index_entry:[234,4,1,""]},"evennia.contrib.unixcommand.UnixCommandParser":{__init__:[234,3,1,""],format_help:[234,3,1,""],format_usage:[234,3,1,""],print_help:[234,3,1,""],print_usage:[234,3,1,""]},"evennia.contrib.wilderness":{WildernessExit:[235,1,1,""],WildernessMapProvider:[235,1,1,""],WildernessRoom:[235,1,1,""],WildernessScript:[235,1,1,""],create_wilderness:[235,5,1,""],enter_wilderness:[235,5,1,""],get_new_coordinates:[235,5,1,""]},"evennia.contrib.wilderness.WildernessExit":{DoesNotExist:[235,2,1,""],MultipleObjectsReturned:[235,2,1,""],at_traverse:[235,3,1,""],at_traverse_coordinates:[235,3,1,""],mapprovider:[235,3,1,""],path:[235,4,1,""],typename:[235,4,1,""],wilderness:[235,3,1,""]},"evennia.contrib.wilderness.WildernessMapProvider":{at_prepare_room:[235,3,1,""],exit_typeclass:[235,4,1,""],get_location_name:[235,3,1,""],is_valid_coordinates:[235,3,1,""],room_typeclass:[235,4,1,""]},"evennia.contrib.wilderness.WildernessRoom":{DoesNotExist:[235,2,1,""],MultipleObjectsReturned:[235,2,1,""],at_object_leave:[235,3,1,""],at_object_receive:[235,3,1,""],coordinates:[235,3,1,""],get_display_name:[235,3,1,""],location_name:[235,3,1,""],path:[235,4,1,""],set_active_coordinates:[235,3,1,""],typename:[235,4,1,""],wilderness:[235,3,1,""]},"evennia.contrib.wilderness.WildernessScript":{DoesNotExist:[235,2,1,""],MultipleObjectsReturned:[235,2,1,""],at_after_object_leave:[235,3,1,""],at_script_creation:[235,3,1,""],at_start:[235,3,1,""],get_obj_coordinates:[235,3,1,""],get_objs_at_coordinates:[235,3,1,""],is_valid_coordinates:[235,3,1,""],itemcoordinates:[235,3,1,""],mapprovider:[235,3,1,""],move_obj:[235,3,1,""],path:[235,4,1,""],typename:[235,4,1,""]},"evennia.help":{admin:[237,0,0,"-"],manager:[238,0,0,"-"],models:[239,0,0,"-"]},"evennia.help.admin":{HelpEntryAdmin:[237,1,1,""],HelpEntryForm:[237,1,1,""],HelpTagInline:[237,1,1,""]},"evennia.help.admin.HelpEntryAdmin":{fieldsets:[237,4,1,""],form:[237,4,1,""],inlines:[237,4,1,""],list_display:[237,4,1,""],list_display_links:[237,4,1,""],list_select_related:[237,4,1,""],media:[237,3,1,""],ordering:[237,4,1,""],save_as:[237,4,1,""],save_on_top:[237,4,1,""],search_fields:[237,4,1,""]},"evennia.help.admin.HelpEntryForm":{Meta:[237,1,1,""],base_fields:[237,4,1,""],declared_fields:[237,4,1,""],media:[237,3,1,""]},"evennia.help.admin.HelpEntryForm.Meta":{fields:[237,4,1,""],model:[237,4,1,""]},"evennia.help.admin.HelpTagInline":{media:[237,3,1,""],model:[237,4,1,""],related_field:[237,4,1,""]},"evennia.help.manager":{HelpEntryManager:[238,1,1,""]},"evennia.help.manager.HelpEntryManager":{all_to_category:[238,3,1,""],find_apropos:[238,3,1,""],find_topicmatch:[238,3,1,""],find_topics_with_category:[238,3,1,""],find_topicsuggestions:[238,3,1,""],get_all_categories:[238,3,1,""],get_all_topics:[238,3,1,""],search_help:[238,3,1,""]},"evennia.help.models":{HelpEntry:[239,1,1,""]},"evennia.help.models.HelpEntry":{DoesNotExist:[239,2,1,""],MultipleObjectsReturned:[239,2,1,""],access:[239,3,1,""],aliases:[239,4,1,""],db_entrytext:[239,4,1,""],db_help_category:[239,4,1,""],db_key:[239,4,1,""],db_lock_storage:[239,4,1,""],db_staff_only:[239,4,1,""],db_tags:[239,4,1,""],entrytext:[239,3,1,""],get_absolute_url:[239,3,1,""],help_category:[239,3,1,""],id:[239,4,1,""],key:[239,3,1,""],lock_storage:[239,3,1,""],locks:[239,4,1,""],objects:[239,4,1,""],path:[239,4,1,""],search_index_entry:[239,3,1,""],staff_only:[239,3,1,""],tags:[239,4,1,""],typename:[239,4,1,""],web_get_admin_url:[239,3,1,""],web_get_create_url:[239,3,1,""],web_get_delete_url:[239,3,1,""],web_get_detail_url:[239,3,1,""],web_get_update_url:[239,3,1,""]},"evennia.locks":{lockfuncs:[241,0,0,"-"],lockhandler:[242,0,0,"-"]},"evennia.locks.lockfuncs":{"false":[241,5,1,""],"true":[241,5,1,""],all:[241,5,1,""],attr:[241,5,1,""],attr_eq:[241,5,1,""],attr_ge:[241,5,1,""],attr_gt:[241,5,1,""],attr_le:[241,5,1,""],attr_lt:[241,5,1,""],attr_ne:[241,5,1,""],dbref:[241,5,1,""],has_account:[241,5,1,""],holds:[241,5,1,""],id:[241,5,1,""],inside:[241,5,1,""],inside_rec:[241,5,1,""],locattr:[241,5,1,""],none:[241,5,1,""],objattr:[241,5,1,""],objlocattr:[241,5,1,""],objtag:[241,5,1,""],pdbref:[241,5,1,""],perm:[241,5,1,""],perm_above:[241,5,1,""],pid:[241,5,1,""],pperm:[241,5,1,""],pperm_above:[241,5,1,""],self:[241,5,1,""],serversetting:[241,5,1,""],superuser:[241,5,1,""],tag:[241,5,1,""]},"evennia.locks.lockhandler":{LockException:[242,2,1,""],LockHandler:[242,1,1,""]},"evennia.locks.lockhandler.LockHandler":{"delete":[242,3,1,""],__init__:[242,3,1,""],add:[242,3,1,""],all:[242,3,1,""],append:[242,3,1,""],cache_lock_bypass:[242,3,1,""],check:[242,3,1,""],check_lockstring:[242,3,1,""],clear:[242,3,1,""],get:[242,3,1,""],remove:[242,3,1,""],replace:[242,3,1,""],reset:[242,3,1,""],validate:[242,3,1,""]},"evennia.objects":{admin:[244,0,0,"-"],manager:[245,0,0,"-"],models:[246,0,0,"-"],objects:[247,0,0,"-"]},"evennia.objects.admin":{ObjectAttributeInline:[244,1,1,""],ObjectCreateForm:[244,1,1,""],ObjectDBAdmin:[244,1,1,""],ObjectEditForm:[244,1,1,""],ObjectTagInline:[244,1,1,""]},"evennia.objects.admin.ObjectAttributeInline":{media:[244,3,1,""],model:[244,4,1,""],related_field:[244,4,1,""]},"evennia.objects.admin.ObjectCreateForm":{Meta:[244,1,1,""],base_fields:[244,4,1,""],declared_fields:[244,4,1,""],media:[244,3,1,""],raw_id_fields:[244,4,1,""]},"evennia.objects.admin.ObjectCreateForm.Meta":{fields:[244,4,1,""],model:[244,4,1,""]},"evennia.objects.admin.ObjectDBAdmin":{add_fieldsets:[244,4,1,""],add_form:[244,4,1,""],fieldsets:[244,4,1,""],form:[244,4,1,""],get_fieldsets:[244,3,1,""],get_form:[244,3,1,""],inlines:[244,4,1,""],list_display:[244,4,1,""],list_display_links:[244,4,1,""],list_filter:[244,4,1,""],list_select_related:[244,4,1,""],media:[244,3,1,""],ordering:[244,4,1,""],raw_id_fields:[244,4,1,""],response_add:[244,3,1,""],save_as:[244,4,1,""],save_model:[244,3,1,""],save_on_top:[244,4,1,""],search_fields:[244,4,1,""]},"evennia.objects.admin.ObjectEditForm":{Meta:[244,1,1,""],base_fields:[244,4,1,""],declared_fields:[244,4,1,""],media:[244,3,1,""]},"evennia.objects.admin.ObjectEditForm.Meta":{fields:[244,4,1,""]},"evennia.objects.admin.ObjectTagInline":{media:[244,3,1,""],model:[244,4,1,""],related_field:[244,4,1,""]},"evennia.objects.manager":{ObjectManager:[245,1,1,""]},"evennia.objects.models":{ContentsHandler:[246,1,1,""],ObjectDB:[246,1,1,""]},"evennia.objects.models.ContentsHandler":{__init__:[246,3,1,""],add:[246,3,1,""],clear:[246,3,1,""],get:[246,3,1,""],init:[246,3,1,""],load:[246,3,1,""],remove:[246,3,1,""]},"evennia.objects.models.ObjectDB":{DoesNotExist:[246,2,1,""],MultipleObjectsReturned:[246,2,1,""],account:[246,3,1,""],at_db_location_postsave:[246,3,1,""],cmdset_storage:[246,3,1,""],contents_cache:[246,4,1,""],db_account:[246,4,1,""],db_account_id:[246,4,1,""],db_attributes:[246,4,1,""],db_cmdset_storage:[246,4,1,""],db_destination:[246,4,1,""],db_destination_id:[246,4,1,""],db_home:[246,4,1,""],db_home_id:[246,4,1,""],db_location:[246,4,1,""],db_location_id:[246,4,1,""],db_sessid:[246,4,1,""],db_tags:[246,4,1,""],destination:[246,3,1,""],destinations_set:[246,4,1,""],get_next_by_db_date_created:[246,3,1,""],get_previous_by_db_date_created:[246,3,1,""],hide_from_objects_set:[246,4,1,""],home:[246,3,1,""],homes_set:[246,4,1,""],id:[246,4,1,""],location:[246,3,1,""],locations_set:[246,4,1,""],object_subscription_set:[246,4,1,""],objects:[246,4,1,""],path:[246,4,1,""],receiver_object_set:[246,4,1,""],scriptdb_set:[246,4,1,""],sender_object_set:[246,4,1,""],sessid:[246,3,1,""],typename:[246,4,1,""]},"evennia.objects.objects":{DefaultCharacter:[247,1,1,""],DefaultExit:[247,1,1,""],DefaultObject:[247,1,1,""],DefaultRoom:[247,1,1,""],ExitCommand:[247,1,1,""],ObjectSessionHandler:[247,1,1,""]},"evennia.objects.objects.DefaultCharacter":{DoesNotExist:[247,2,1,""],MultipleObjectsReturned:[247,2,1,""],at_after_move:[247,3,1,""],at_post_puppet:[247,3,1,""],at_post_unpuppet:[247,3,1,""],at_pre_puppet:[247,3,1,""],basetype_setup:[247,3,1,""],connection_time:[247,3,1,""],create:[247,3,1,""],idle_time:[247,3,1,""],lockstring:[247,4,1,""],normalize_name:[247,3,1,""],path:[247,4,1,""],typename:[247,4,1,""],validate_name:[247,3,1,""]},"evennia.objects.objects.DefaultExit":{DoesNotExist:[247,2,1,""],MultipleObjectsReturned:[247,2,1,""],at_cmdset_get:[247,3,1,""],at_failed_traverse:[247,3,1,""],at_init:[247,3,1,""],at_traverse:[247,3,1,""],basetype_setup:[247,3,1,""],create:[247,3,1,""],create_exit_cmdset:[247,3,1,""],exit_command:[247,4,1,""],lockstring:[247,4,1,""],path:[247,4,1,""],priority:[247,4,1,""],typename:[247,4,1,""]},"evennia.objects.objects.DefaultObject":{"delete":[247,3,1,""],DoesNotExist:[247,2,1,""],MultipleObjectsReturned:[247,2,1,""],access:[247,3,1,""],announce_move_from:[247,3,1,""],announce_move_to:[247,3,1,""],at_access:[247,3,1,""],at_after_move:[247,3,1,""],at_after_traverse:[247,3,1,""],at_before_drop:[247,3,1,""],at_before_get:[247,3,1,""],at_before_give:[247,3,1,""],at_before_move:[247,3,1,""],at_before_say:[247,3,1,""],at_cmdset_get:[247,3,1,""],at_desc:[247,3,1,""],at_drop:[247,3,1,""],at_failed_traverse:[247,3,1,""],at_first_save:[247,3,1,""],at_get:[247,3,1,""],at_give:[247,3,1,""],at_init:[247,3,1,""],at_look:[247,3,1,""],at_msg_receive:[247,3,1,""],at_msg_send:[247,3,1,""],at_object_creation:[247,3,1,""],at_object_delete:[247,3,1,""],at_object_leave:[247,3,1,""],at_object_post_copy:[247,3,1,""],at_object_receive:[247,3,1,""],at_post_puppet:[247,3,1,""],at_post_unpuppet:[247,3,1,""],at_pre_puppet:[247,3,1,""],at_pre_unpuppet:[247,3,1,""],at_say:[247,3,1,""],at_server_reload:[247,3,1,""],at_server_shutdown:[247,3,1,""],at_traverse:[247,3,1,""],basetype_posthook_setup:[247,3,1,""],basetype_setup:[247,3,1,""],clear_contents:[247,3,1,""],clear_exits:[247,3,1,""],cmdset:[247,4,1,""],contents:[247,3,1,""],contents_get:[247,3,1,""],contents_set:[247,3,1,""],copy:[247,3,1,""],create:[247,3,1,""],execute_cmd:[247,3,1,""],exits:[247,3,1,""],for_contents:[247,3,1,""],get_display_name:[247,3,1,""],get_numbered_name:[247,3,1,""],has_account:[247,3,1,""],is_connected:[247,3,1,""],is_superuser:[247,3,1,""],lockstring:[247,4,1,""],move_to:[247,3,1,""],msg:[247,3,1,""],msg_contents:[247,3,1,""],nicks:[247,4,1,""],objects:[247,4,1,""],path:[247,4,1,""],return_appearance:[247,3,1,""],scripts:[247,4,1,""],search:[247,3,1,""],search_account:[247,3,1,""],sessions:[247,4,1,""],typename:[247,4,1,""]},"evennia.objects.objects.DefaultRoom":{DoesNotExist:[247,2,1,""],MultipleObjectsReturned:[247,2,1,""],basetype_setup:[247,3,1,""],create:[247,3,1,""],lockstring:[247,4,1,""],path:[247,4,1,""],typename:[247,4,1,""]},"evennia.objects.objects.ExitCommand":{aliases:[247,4,1,""],func:[247,3,1,""],get_extra_info:[247,3,1,""],help_category:[247,4,1,""],key:[247,4,1,""],lock_storage:[247,4,1,""],obj:[247,4,1,""],search_index_entry:[247,4,1,""]},"evennia.objects.objects.ObjectSessionHandler":{__init__:[247,3,1,""],add:[247,3,1,""],all:[247,3,1,""],clear:[247,3,1,""],count:[247,3,1,""],get:[247,3,1,""],remove:[247,3,1,""]},"evennia.prototypes":{menus:[249,0,0,"-"],protfuncs:[250,0,0,"-"],prototypes:[251,0,0,"-"],spawner:[252,0,0,"-"]},"evennia.prototypes.menus":{OLCMenu:[249,1,1,""],node_apply_diff:[249,5,1,""],node_destination:[249,5,1,""],node_examine_entity:[249,5,1,""],node_home:[249,5,1,""],node_index:[249,5,1,""],node_key:[249,5,1,""],node_location:[249,5,1,""],node_prototype_desc:[249,5,1,""],node_prototype_key:[249,5,1,""],node_prototype_save:[249,5,1,""],node_prototype_spawn:[249,5,1,""],node_validate_prototype:[249,5,1,""],start_olc:[249,5,1,""]},"evennia.prototypes.menus.OLCMenu":{display_helptext:[249,3,1,""],helptext_formatter:[249,3,1,""],nodetext_formatter:[249,3,1,""],options_formatter:[249,3,1,""]},"evennia.prototypes.protfuncs":{add:[250,5,1,""],base_random:[250,5,1,""],center_justify:[250,5,1,""],choice:[250,5,1,""],dbref:[250,5,1,""],div:[250,5,1,""],eval:[250,5,1,""],full_justify:[250,5,1,""],left_justify:[250,5,1,""],mult:[250,5,1,""],obj:[250,5,1,""],objlist:[250,5,1,""],protkey:[250,5,1,""],randint:[250,5,1,""],random:[250,5,1,""],right_justify:[250,5,1,""],sub:[250,5,1,""],toint:[250,5,1,""]},"evennia.prototypes.prototypes":{DbPrototype:[251,1,1,""],PermissionError:[251,2,1,""],PrototypeEvMore:[251,1,1,""],ValidationError:[251,2,1,""],check_permission:[251,5,1,""],create_prototype:[251,5,1,""],delete_prototype:[251,5,1,""],format_available_protfuncs:[251,5,1,""],homogenize_prototype:[251,5,1,""],init_spawn_value:[251,5,1,""],list_prototypes:[251,5,1,""],load_module_prototypes:[251,5,1,""],protfunc_parser:[251,5,1,""],prototype_to_str:[251,5,1,""],save_prototype:[251,5,1,""],search_objects_with_prototype:[251,5,1,""],search_prototype:[251,5,1,""],validate_prototype:[251,5,1,""],value_to_obj:[251,5,1,""],value_to_obj_or_any:[251,5,1,""]},"evennia.prototypes.prototypes.DbPrototype":{DoesNotExist:[251,2,1,""],MultipleObjectsReturned:[251,2,1,""],at_script_creation:[251,3,1,""],path:[251,4,1,""],prototype:[251,3,1,""],typename:[251,4,1,""]},"evennia.prototypes.prototypes.PrototypeEvMore":{__init__:[251,3,1,""],init_pages:[251,3,1,""],page_formatter:[251,3,1,""],prototype_paginator:[251,3,1,""]},"evennia.prototypes.spawner":{Unset:[252,1,1,""],batch_create_object:[252,5,1,""],batch_update_objects_with_prototype:[252,5,1,""],flatten_diff:[252,5,1,""],flatten_prototype:[252,5,1,""],format_diff:[252,5,1,""],prototype_diff:[252,5,1,""],prototype_diff_from_object:[252,5,1,""],prototype_from_object:[252,5,1,""],spawn:[252,5,1,""]},"evennia.scripts":{admin:[254,0,0,"-"],manager:[255,0,0,"-"],models:[256,0,0,"-"],monitorhandler:[257,0,0,"-"],scripthandler:[258,0,0,"-"],scripts:[259,0,0,"-"],taskhandler:[260,0,0,"-"],tickerhandler:[261,0,0,"-"]},"evennia.scripts.admin":{ScriptAttributeInline:[254,1,1,""],ScriptDBAdmin:[254,1,1,""],ScriptTagInline:[254,1,1,""]},"evennia.scripts.admin.ScriptAttributeInline":{media:[254,3,1,""],model:[254,4,1,""],related_field:[254,4,1,""]},"evennia.scripts.admin.ScriptDBAdmin":{fieldsets:[254,4,1,""],inlines:[254,4,1,""],list_display:[254,4,1,""],list_display_links:[254,4,1,""],list_select_related:[254,4,1,""],media:[254,3,1,""],ordering:[254,4,1,""],raw_id_fields:[254,4,1,""],save_as:[254,4,1,""],save_model:[254,3,1,""],save_on_top:[254,4,1,""],search_fields:[254,4,1,""]},"evennia.scripts.admin.ScriptTagInline":{media:[254,3,1,""],model:[254,4,1,""],related_field:[254,4,1,""]},"evennia.scripts.manager":{ScriptManager:[255,1,1,""]},"evennia.scripts.models":{ScriptDB:[256,1,1,""]},"evennia.scripts.models.ScriptDB":{DoesNotExist:[256,2,1,""],MultipleObjectsReturned:[256,2,1,""],account:[256,3,1,""],db_account:[256,4,1,""],db_account_id:[256,4,1,""],db_attributes:[256,4,1,""],db_desc:[256,4,1,""],db_interval:[256,4,1,""],db_is_active:[256,4,1,""],db_obj:[256,4,1,""],db_obj_id:[256,4,1,""],db_persistent:[256,4,1,""],db_repeats:[256,4,1,""],db_start_delay:[256,4,1,""],db_tags:[256,4,1,""],desc:[256,3,1,""],get_next_by_db_date_created:[256,3,1,""],get_previous_by_db_date_created:[256,3,1,""],id:[256,4,1,""],interval:[256,3,1,""],is_active:[256,3,1,""],obj:[256,3,1,""],object:[256,3,1,""],objects:[256,4,1,""],path:[256,4,1,""],persistent:[256,3,1,""],receiver_script_set:[256,4,1,""],repeats:[256,3,1,""],sender_script_set:[256,4,1,""],start_delay:[256,3,1,""],typename:[256,4,1,""]},"evennia.scripts.monitorhandler":{MonitorHandler:[257,1,1,""]},"evennia.scripts.monitorhandler.MonitorHandler":{__init__:[257,3,1,""],add:[257,3,1,""],all:[257,3,1,""],at_update:[257,3,1,""],clear:[257,3,1,""],remove:[257,3,1,""],restore:[257,3,1,""],save:[257,3,1,""]},"evennia.scripts.scripthandler":{ScriptHandler:[258,1,1,""]},"evennia.scripts.scripthandler.ScriptHandler":{"delete":[258,3,1,""],__init__:[258,3,1,""],add:[258,3,1,""],all:[258,3,1,""],get:[258,3,1,""],start:[258,3,1,""],stop:[258,3,1,""],validate:[258,3,1,""]},"evennia.scripts.scripts":{DefaultScript:[259,1,1,""],DoNothing:[259,1,1,""],Store:[259,1,1,""]},"evennia.scripts.scripts.DefaultScript":{DoesNotExist:[259,2,1,""],MultipleObjectsReturned:[259,2,1,""],at_idmapper_flush:[259,3,1,""],at_repeat:[259,3,1,""],at_script_creation:[259,3,1,""],at_server_reload:[259,3,1,""],at_server_shutdown:[259,3,1,""],at_start:[259,3,1,""],at_stop:[259,3,1,""],create:[259,3,1,""],force_repeat:[259,3,1,""],is_valid:[259,3,1,""],path:[259,4,1,""],pause:[259,3,1,""],remaining_repeats:[259,3,1,""],reset_callcount:[259,3,1,""],restart:[259,3,1,""],start:[259,3,1,""],stop:[259,3,1,""],time_until_next_repeat:[259,3,1,""],typename:[259,4,1,""],unpause:[259,3,1,""]},"evennia.scripts.scripts.DoNothing":{DoesNotExist:[259,2,1,""],MultipleObjectsReturned:[259,2,1,""],at_script_creation:[259,3,1,""],path:[259,4,1,""],typename:[259,4,1,""]},"evennia.scripts.scripts.Store":{DoesNotExist:[259,2,1,""],MultipleObjectsReturned:[259,2,1,""],at_script_creation:[259,3,1,""],path:[259,4,1,""],typename:[259,4,1,""]},"evennia.scripts.taskhandler":{TaskHandler:[260,1,1,""]},"evennia.scripts.taskhandler.TaskHandler":{__init__:[260,3,1,""],add:[260,3,1,""],create_delays:[260,3,1,""],do_task:[260,3,1,""],load:[260,3,1,""],remove:[260,3,1,""],save:[260,3,1,""]},"evennia.scripts.tickerhandler":{Ticker:[261,1,1,""],TickerHandler:[261,1,1,""],TickerPool:[261,1,1,""]},"evennia.scripts.tickerhandler.Ticker":{__init__:[261,3,1,""],add:[261,3,1,""],remove:[261,3,1,""],stop:[261,3,1,""],validate:[261,3,1,""]},"evennia.scripts.tickerhandler.TickerHandler":{__init__:[261,3,1,""],add:[261,3,1,""],all:[261,3,1,""],all_display:[261,3,1,""],clear:[261,3,1,""],remove:[261,3,1,""],restore:[261,3,1,""],save:[261,3,1,""],ticker_pool_class:[261,4,1,""]},"evennia.scripts.tickerhandler.TickerPool":{__init__:[261,3,1,""],add:[261,3,1,""],remove:[261,3,1,""],stop:[261,3,1,""],ticker_class:[261,4,1,""]},"evennia.server":{admin:[263,0,0,"-"],amp_client:[264,0,0,"-"],connection_wizard:[265,0,0,"-"],deprecations:[266,0,0,"-"],evennia_launcher:[267,0,0,"-"],game_index_client:[268,0,0,"-"],initial_setup:[271,0,0,"-"],inputfuncs:[272,0,0,"-"],manager:[273,0,0,"-"],models:[274,0,0,"-"],portal:[275,0,0,"-"],profiling:[297,0,0,"-"],server:[305,0,0,"-"],serversession:[306,0,0,"-"],session:[307,0,0,"-"],sessionhandler:[308,0,0,"-"],signals:[309,0,0,"-"],throttle:[310,0,0,"-"],validators:[311,0,0,"-"],webserver:[312,0,0,"-"]},"evennia.server.admin":{ServerConfigAdmin:[263,1,1,""]},"evennia.server.admin.ServerConfigAdmin":{list_display:[263,4,1,""],list_display_links:[263,4,1,""],list_select_related:[263,4,1,""],media:[263,3,1,""],ordering:[263,4,1,""],save_as:[263,4,1,""],save_on_top:[263,4,1,""],search_fields:[263,4,1,""]},"evennia.server.amp_client":{AMPClientFactory:[264,1,1,""],AMPServerClientProtocol:[264,1,1,""]},"evennia.server.amp_client.AMPClientFactory":{__init__:[264,3,1,""],buildProtocol:[264,3,1,""],clientConnectionFailed:[264,3,1,""],clientConnectionLost:[264,3,1,""],factor:[264,4,1,""],initialDelay:[264,4,1,""],maxDelay:[264,4,1,""],noisy:[264,4,1,""],startedConnecting:[264,3,1,""]},"evennia.server.amp_client.AMPServerClientProtocol":{connectionMade:[264,3,1,""],data_to_portal:[264,3,1,""],send_AdminServer2Portal:[264,3,1,""],send_MsgServer2Portal:[264,3,1,""],server_receive_adminportal2server:[264,3,1,""],server_receive_msgportal2server:[264,3,1,""],server_receive_status:[264,3,1,""]},"evennia.server.connection_wizard":{ConnectionWizard:[265,1,1,""],node_game_index_fields:[265,5,1,""],node_game_index_start:[265,5,1,""],node_mssp_start:[265,5,1,""],node_start:[265,5,1,""],node_view_and_apply_settings:[265,5,1,""]},"evennia.server.connection_wizard.ConnectionWizard":{__init__:[265,3,1,""],ask_choice:[265,3,1,""],ask_continue:[265,3,1,""],ask_input:[265,3,1,""],ask_node:[265,3,1,""],ask_yesno:[265,3,1,""],display:[265,3,1,""]},"evennia.server.deprecations":{check_errors:[266,5,1,""],check_warnings:[266,5,1,""]},"evennia.server.evennia_launcher":{AMPLauncherProtocol:[267,1,1,""],MsgLauncher2Portal:[267,1,1,""],MsgStatus:[267,1,1,""],check_database:[267,5,1,""],check_main_evennia_dependencies:[267,5,1,""],collectstatic:[267,5,1,""],create_game_directory:[267,5,1,""],create_secret_key:[267,5,1,""],create_settings_file:[267,5,1,""],create_superuser:[267,5,1,""],del_pid:[267,5,1,""],error_check_python_modules:[267,5,1,""],evennia_version:[267,5,1,""],get_pid:[267,5,1,""],getenv:[267,5,1,""],init_game_directory:[267,5,1,""],kill:[267,5,1,""],list_settings:[267,5,1,""],main:[267,5,1,""],query_info:[267,5,1,""],query_status:[267,5,1,""],reboot_evennia:[267,5,1,""],reload_evennia:[267,5,1,""],run_connect_wizard:[267,5,1,""],run_dummyrunner:[267,5,1,""],run_menu:[267,5,1,""],send_instruction:[267,5,1,""],set_gamedir:[267,5,1,""],show_version_info:[267,5,1,""],start_evennia:[267,5,1,""],start_only_server:[267,5,1,""],start_portal_interactive:[267,5,1,""],start_server_interactive:[267,5,1,""],stop_evennia:[267,5,1,""],stop_server_only:[267,5,1,""],tail_log_files:[267,5,1,""],wait_for_status:[267,5,1,""],wait_for_status_reply:[267,5,1,""]},"evennia.server.evennia_launcher.AMPLauncherProtocol":{__init__:[267,3,1,""],receive_status_from_portal:[267,3,1,""],wait_for_status:[267,3,1,""]},"evennia.server.evennia_launcher.MsgLauncher2Portal":{allErrors:[267,4,1,""],arguments:[267,4,1,""],commandName:[267,4,1,""],errors:[267,4,1,""],key:[267,4,1,""],response:[267,4,1,""],reverseErrors:[267,4,1,""]},"evennia.server.evennia_launcher.MsgStatus":{allErrors:[267,4,1,""],arguments:[267,4,1,""],commandName:[267,4,1,""],errors:[267,4,1,""],key:[267,4,1,""],response:[267,4,1,""],reverseErrors:[267,4,1,""]},"evennia.server.game_index_client":{client:[269,0,0,"-"],service:[270,0,0,"-"]},"evennia.server.game_index_client.client":{EvenniaGameIndexClient:[269,1,1,""],QuietHTTP11ClientFactory:[269,1,1,""],SimpleResponseReceiver:[269,1,1,""],StringProducer:[269,1,1,""]},"evennia.server.game_index_client.client.EvenniaGameIndexClient":{__init__:[269,3,1,""],handle_egd_response:[269,3,1,""],send_game_details:[269,3,1,""]},"evennia.server.game_index_client.client.QuietHTTP11ClientFactory":{noisy:[269,4,1,""]},"evennia.server.game_index_client.client.SimpleResponseReceiver":{__init__:[269,3,1,""],connectionLost:[269,3,1,""],dataReceived:[269,3,1,""]},"evennia.server.game_index_client.client.StringProducer":{__init__:[269,3,1,""],pauseProducing:[269,3,1,""],startProducing:[269,3,1,""],stopProducing:[269,3,1,""]},"evennia.server.game_index_client.service":{EvenniaGameIndexService:[270,1,1,""]},"evennia.server.game_index_client.service.EvenniaGameIndexService":{__init__:[270,3,1,""],name:[270,4,1,""],startService:[270,3,1,""],stopService:[270,3,1,""]},"evennia.server.initial_setup":{at_initial_setup:[271,5,1,""],collectstatic:[271,5,1,""],create_channels:[271,5,1,""],create_objects:[271,5,1,""],get_god_account:[271,5,1,""],handle_setup:[271,5,1,""],reset_server:[271,5,1,""]},"evennia.server.inputfuncs":{"default":[272,5,1,""],bot_data_in:[272,5,1,""],client_options:[272,5,1,""],echo:[272,5,1,""],external_discord_hello:[272,5,1,""],get_client_options:[272,5,1,""],get_inputfuncs:[272,5,1,""],get_value:[272,5,1,""],hello:[272,5,1,""],login:[272,5,1,""],monitor:[272,5,1,""],monitored:[272,5,1,""],msdp_list:[272,5,1,""],msdp_report:[272,5,1,""],msdp_send:[272,5,1,""],msdp_unreport:[272,5,1,""],repeat:[272,5,1,""],supports_set:[272,5,1,""],text:[272,5,1,""],unmonitor:[272,5,1,""],unrepeat:[272,5,1,""],webclient_options:[272,5,1,""]},"evennia.server.manager":{ServerConfigManager:[273,1,1,""]},"evennia.server.manager.ServerConfigManager":{conf:[273,3,1,""]},"evennia.server.models":{ServerConfig:[274,1,1,""]},"evennia.server.models.ServerConfig":{DoesNotExist:[274,2,1,""],MultipleObjectsReturned:[274,2,1,""],db_key:[274,4,1,""],db_value:[274,4,1,""],id:[274,4,1,""],key:[274,3,1,""],objects:[274,4,1,""],path:[274,4,1,""],store:[274,3,1,""],typename:[274,4,1,""],value:[274,3,1,""]},"evennia.server.portal":{amp:[276,0,0,"-"],amp_server:[277,0,0,"-"],grapevine:[278,0,0,"-"],irc:[279,0,0,"-"],mccp:[280,0,0,"-"],mssp:[281,0,0,"-"],mxp:[282,0,0,"-"],naws:[283,0,0,"-"],portal:[284,0,0,"-"],portalsessionhandler:[285,0,0,"-"],rss:[286,0,0,"-"],ssh:[287,0,0,"-"],ssl:[288,0,0,"-"],suppress_ga:[289,0,0,"-"],telnet:[290,0,0,"-"],telnet_oob:[291,0,0,"-"],telnet_ssl:[292,0,0,"-"],tests:[293,0,0,"-"],ttype:[294,0,0,"-"],webclient:[295,0,0,"-"],webclient_ajax:[296,0,0,"-"]},"evennia.server.portal.amp":{AMPMultiConnectionProtocol:[276,1,1,""],AdminPortal2Server:[276,1,1,""],AdminServer2Portal:[276,1,1,""],Compressed:[276,1,1,""],FunctionCall:[276,1,1,""],MsgLauncher2Portal:[276,1,1,""],MsgPortal2Server:[276,1,1,""],MsgServer2Portal:[276,1,1,""],MsgStatus:[276,1,1,""],dumps:[276,5,1,""],loads:[276,5,1,""]},"evennia.server.portal.amp.AMPMultiConnectionProtocol":{__init__:[276,3,1,""],broadcast:[276,3,1,""],connectionLost:[276,3,1,""],connectionMade:[276,3,1,""],dataReceived:[276,3,1,""],data_in:[276,3,1,""],errback:[276,3,1,""],makeConnection:[276,3,1,""],receive_functioncall:[276,3,1,""],send_FunctionCall:[276,3,1,""]},"evennia.server.portal.amp.AdminPortal2Server":{allErrors:[276,4,1,""],arguments:[276,4,1,""],commandName:[276,4,1,""],errors:[276,4,1,""],key:[276,4,1,""],response:[276,4,1,""],reverseErrors:[276,4,1,""]},"evennia.server.portal.amp.AdminServer2Portal":{allErrors:[276,4,1,""],arguments:[276,4,1,""],commandName:[276,4,1,""],errors:[276,4,1,""],key:[276,4,1,""],response:[276,4,1,""],reverseErrors:[276,4,1,""]},"evennia.server.portal.amp.Compressed":{fromBox:[276,3,1,""],fromString:[276,3,1,""],toBox:[276,3,1,""],toString:[276,3,1,""]},"evennia.server.portal.amp.FunctionCall":{allErrors:[276,4,1,""],arguments:[276,4,1,""],commandName:[276,4,1,""],errors:[276,4,1,""],key:[276,4,1,""],response:[276,4,1,""],reverseErrors:[276,4,1,""]},"evennia.server.portal.amp.MsgLauncher2Portal":{allErrors:[276,4,1,""],arguments:[276,4,1,""],commandName:[276,4,1,""],errors:[276,4,1,""],key:[276,4,1,""],response:[276,4,1,""],reverseErrors:[276,4,1,""]},"evennia.server.portal.amp.MsgPortal2Server":{allErrors:[276,4,1,""],arguments:[276,4,1,""],commandName:[276,4,1,""],errors:[276,4,1,""],key:[276,4,1,""],response:[276,4,1,""],reverseErrors:[276,4,1,""]},"evennia.server.portal.amp.MsgServer2Portal":{allErrors:[276,4,1,""],arguments:[276,4,1,""],commandName:[276,4,1,""],errors:[276,4,1,""],key:[276,4,1,""],response:[276,4,1,""],reverseErrors:[276,4,1,""]},"evennia.server.portal.amp.MsgStatus":{allErrors:[276,4,1,""],arguments:[276,4,1,""],commandName:[276,4,1,""],errors:[276,4,1,""],key:[276,4,1,""],response:[276,4,1,""],reverseErrors:[276,4,1,""]},"evennia.server.portal.amp_server":{AMPServerFactory:[277,1,1,""],AMPServerProtocol:[277,1,1,""],getenv:[277,5,1,""]},"evennia.server.portal.amp_server.AMPServerFactory":{__init__:[277,3,1,""],buildProtocol:[277,3,1,""],logPrefix:[277,3,1,""],noisy:[277,4,1,""]},"evennia.server.portal.amp_server.AMPServerProtocol":{connectionLost:[277,3,1,""],data_to_server:[277,3,1,""],get_status:[277,3,1,""],portal_receive_adminserver2portal:[277,3,1,""],portal_receive_launcher2portal:[277,3,1,""],portal_receive_server2portal:[277,3,1,""],portal_receive_status:[277,3,1,""],send_AdminPortal2Server:[277,3,1,""],send_MsgPortal2Server:[277,3,1,""],send_Status2Launcher:[277,3,1,""],start_server:[277,3,1,""],stop_server:[277,3,1,""],wait_for_disconnect:[277,3,1,""],wait_for_server_connect:[277,3,1,""]},"evennia.server.portal.grapevine":{GrapevineClient:[278,1,1,""],RestartingWebsocketServerFactory:[278,1,1,""]},"evennia.server.portal.grapevine.GrapevineClient":{__init__:[278,3,1,""],at_login:[278,3,1,""],data_in:[278,3,1,""],disconnect:[278,3,1,""],onClose:[278,3,1,""],onMessage:[278,3,1,""],onOpen:[278,3,1,""],send_authenticate:[278,3,1,""],send_channel:[278,3,1,""],send_default:[278,3,1,""],send_heartbeat:[278,3,1,""],send_subscribe:[278,3,1,""],send_unsubscribe:[278,3,1,""]},"evennia.server.portal.grapevine.RestartingWebsocketServerFactory":{__init__:[278,3,1,""],buildProtocol:[278,3,1,""],clientConnectionFailed:[278,3,1,""],clientConnectionLost:[278,3,1,""],factor:[278,4,1,""],initialDelay:[278,4,1,""],maxDelay:[278,4,1,""],reconnect:[278,3,1,""],start:[278,3,1,""],startedConnecting:[278,3,1,""]},"evennia.server.portal.irc":{IRCBot:[279,1,1,""],IRCBotFactory:[279,1,1,""],parse_ansi_to_irc:[279,5,1,""],parse_irc_to_ansi:[279,5,1,""]},"evennia.server.portal.irc.IRCBot":{action:[279,3,1,""],at_login:[279,3,1,""],channel:[279,4,1,""],data_in:[279,3,1,""],disconnect:[279,3,1,""],factory:[279,4,1,""],get_nicklist:[279,3,1,""],irc_RPL_ENDOFNAMES:[279,3,1,""],irc_RPL_NAMREPLY:[279,3,1,""],lineRate:[279,4,1,""],logger:[279,4,1,""],nickname:[279,4,1,""],pong:[279,3,1,""],privmsg:[279,3,1,""],send_channel:[279,3,1,""],send_default:[279,3,1,""],send_ping:[279,3,1,""],send_privmsg:[279,3,1,""],send_reconnect:[279,3,1,""],send_request_nicklist:[279,3,1,""],signedOn:[279,3,1,""],sourceURL:[279,4,1,""]},"evennia.server.portal.irc.IRCBotFactory":{__init__:[279,3,1,""],buildProtocol:[279,3,1,""],clientConnectionFailed:[279,3,1,""],clientConnectionLost:[279,3,1,""],factor:[279,4,1,""],initialDelay:[279,4,1,""],maxDelay:[279,4,1,""],reconnect:[279,3,1,""],start:[279,3,1,""],startedConnecting:[279,3,1,""]},"evennia.server.portal.mccp":{Mccp:[280,1,1,""],mccp_compress:[280,5,1,""]},"evennia.server.portal.mccp.Mccp":{__init__:[280,3,1,""],do_mccp:[280,3,1,""],no_mccp:[280,3,1,""]},"evennia.server.portal.mssp":{Mssp:[281,1,1,""]},"evennia.server.portal.mssp.Mssp":{__init__:[281,3,1,""],do_mssp:[281,3,1,""],get_player_count:[281,3,1,""],get_uptime:[281,3,1,""],no_mssp:[281,3,1,""]},"evennia.server.portal.mxp":{Mxp:[282,1,1,""],mxp_parse:[282,5,1,""]},"evennia.server.portal.mxp.Mxp":{__init__:[282,3,1,""],do_mxp:[282,3,1,""],no_mxp:[282,3,1,""]},"evennia.server.portal.naws":{Naws:[283,1,1,""]},"evennia.server.portal.naws.Naws":{__init__:[283,3,1,""],do_naws:[283,3,1,""],negotiate_sizes:[283,3,1,""],no_naws:[283,3,1,""]},"evennia.server.portal.portal":{Portal:[284,1,1,""],Websocket:[284,1,1,""]},"evennia.server.portal.portal.Portal":{__init__:[284,3,1,""],get_info_dict:[284,3,1,""],shutdown:[284,3,1,""]},"evennia.server.portal.portalsessionhandler":{PortalSessionHandler:[285,1,1,""]},"evennia.server.portal.portalsessionhandler.PortalSessionHandler":{__init__:[285,3,1,""],announce_all:[285,3,1,""],at_server_connection:[285,3,1,""],connect:[285,3,1,""],count_loggedin:[285,3,1,""],data_in:[285,3,1,""],data_out:[285,3,1,""],disconnect:[285,3,1,""],disconnect_all:[285,3,1,""],generate_sessid:[285,3,1,""],server_connect:[285,3,1,""],server_disconnect:[285,3,1,""],server_disconnect_all:[285,3,1,""],server_logged_in:[285,3,1,""],server_session_sync:[285,3,1,""],sessions_from_csessid:[285,3,1,""],sync:[285,3,1,""]},"evennia.server.portal.rss":{RSSBotFactory:[286,1,1,""],RSSReader:[286,1,1,""]},"evennia.server.portal.rss.RSSBotFactory":{__init__:[286,3,1,""],start:[286,3,1,""]},"evennia.server.portal.rss.RSSReader":{__init__:[286,3,1,""],data_in:[286,3,1,""],disconnect:[286,3,1,""],get_new:[286,3,1,""],update:[286,3,1,""]},"evennia.server.portal.ssh":{AccountDBPasswordChecker:[287,1,1,""],ExtraInfoAuthServer:[287,1,1,""],PassAvatarIdTerminalRealm:[287,1,1,""],SSHServerFactory:[287,1,1,""],SshProtocol:[287,1,1,""],TerminalSessionTransport_getPeer:[287,1,1,""],getKeyPair:[287,5,1,""],makeFactory:[287,5,1,""]},"evennia.server.portal.ssh.AccountDBPasswordChecker":{__init__:[287,3,1,""],credentialInterfaces:[287,4,1,""],noisy:[287,4,1,""],requestAvatarId:[287,3,1,""]},"evennia.server.portal.ssh.ExtraInfoAuthServer":{auth_password:[287,3,1,""],noisy:[287,4,1,""]},"evennia.server.portal.ssh.PassAvatarIdTerminalRealm":{noisy:[287,4,1,""]},"evennia.server.portal.ssh.SSHServerFactory":{logPrefix:[287,3,1,""],noisy:[287,4,1,""]},"evennia.server.portal.ssh.SshProtocol":{__init__:[287,3,1,""],at_login:[287,3,1,""],connectionLost:[287,3,1,""],connectionMade:[287,3,1,""],data_out:[287,3,1,""],disconnect:[287,3,1,""],getClientAddress:[287,3,1,""],handle_EOF:[287,3,1,""],handle_FF:[287,3,1,""],handle_INT:[287,3,1,""],handle_QUIT:[287,3,1,""],lineReceived:[287,3,1,""],noisy:[287,4,1,""],sendLine:[287,3,1,""],send_default:[287,3,1,""],send_prompt:[287,3,1,""],send_text:[287,3,1,""],terminalSize:[287,3,1,""]},"evennia.server.portal.ssh.TerminalSessionTransport_getPeer":{__init__:[287,3,1,""],noisy:[287,4,1,""]},"evennia.server.portal.ssl":{SSLProtocol:[288,1,1,""],getSSLContext:[288,5,1,""],verify_SSL_key_and_cert:[288,5,1,""]},"evennia.server.portal.ssl.SSLProtocol":{__init__:[288,3,1,""]},"evennia.server.portal.suppress_ga":{SuppressGA:[289,1,1,""]},"evennia.server.portal.suppress_ga.SuppressGA":{__init__:[289,3,1,""],will_suppress_ga:[289,3,1,""],wont_suppress_ga:[289,3,1,""]},"evennia.server.portal.telnet":{TelnetProtocol:[290,1,1,""],TelnetServerFactory:[290,1,1,""]},"evennia.server.portal.telnet.TelnetProtocol":{__init__:[290,3,1,""],applicationDataReceived:[290,3,1,""],at_login:[290,3,1,""],connectionLost:[290,3,1,""],connectionMade:[290,3,1,""],dataReceived:[290,3,1,""],data_in:[290,3,1,""],data_out:[290,3,1,""],disableLocal:[290,3,1,""],disableRemote:[290,3,1,""],disconnect:[290,3,1,""],enableLocal:[290,3,1,""],enableRemote:[290,3,1,""],handshake_done:[290,3,1,""],sendLine:[290,3,1,""],send_default:[290,3,1,""],send_prompt:[290,3,1,""],send_text:[290,3,1,""],toggle_nop_keepalive:[290,3,1,""]},"evennia.server.portal.telnet.TelnetServerFactory":{logPrefix:[290,3,1,""],noisy:[290,4,1,""]},"evennia.server.portal.telnet_oob":{TelnetOOB:[291,1,1,""]},"evennia.server.portal.telnet_oob.TelnetOOB":{__init__:[291,3,1,""],data_out:[291,3,1,""],decode_gmcp:[291,3,1,""],decode_msdp:[291,3,1,""],do_gmcp:[291,3,1,""],do_msdp:[291,3,1,""],encode_gmcp:[291,3,1,""],encode_msdp:[291,3,1,""],no_gmcp:[291,3,1,""],no_msdp:[291,3,1,""]},"evennia.server.portal.telnet_ssl":{SSLProtocol:[292,1,1,""],getSSLContext:[292,5,1,""],verify_or_create_SSL_key_and_cert:[292,5,1,""]},"evennia.server.portal.telnet_ssl.SSLProtocol":{__init__:[292,3,1,""]},"evennia.server.portal.tests":{TestAMPServer:[293,1,1,""],TestIRC:[293,1,1,""],TestTelnet:[293,1,1,""],TestWebSocket:[293,1,1,""]},"evennia.server.portal.tests.TestAMPServer":{setUp:[293,3,1,""],test_amp_in:[293,3,1,""],test_amp_out:[293,3,1,""],test_large_msg:[293,3,1,""]},"evennia.server.portal.tests.TestIRC":{test_bold:[293,3,1,""],test_colors:[293,3,1,""],test_identity:[293,3,1,""],test_italic:[293,3,1,""],test_plain_ansi:[293,3,1,""]},"evennia.server.portal.tests.TestTelnet":{setUp:[293,3,1,""],test_mudlet_ttype:[293,3,1,""]},"evennia.server.portal.tests.TestWebSocket":{setUp:[293,3,1,""],tearDown:[293,3,1,""],test_data_in:[293,3,1,""],test_data_out:[293,3,1,""]},"evennia.server.portal.ttype":{Ttype:[294,1,1,""]},"evennia.server.portal.ttype.Ttype":{__init__:[294,3,1,""],will_ttype:[294,3,1,""],wont_ttype:[294,3,1,""]},"evennia.server.portal.webclient":{WebSocketClient:[295,1,1,""]},"evennia.server.portal.webclient.WebSocketClient":{__init__:[295,3,1,""],at_login:[295,3,1,""],data_in:[295,3,1,""],disconnect:[295,3,1,""],get_client_session:[295,3,1,""],nonce:[295,4,1,""],onClose:[295,3,1,""],onMessage:[295,3,1,""],onOpen:[295,3,1,""],sendLine:[295,3,1,""],send_default:[295,3,1,""],send_prompt:[295,3,1,""],send_text:[295,3,1,""]},"evennia.server.portal.webclient_ajax":{AjaxWebClient:[296,1,1,""],AjaxWebClientSession:[296,1,1,""],LazyEncoder:[296,1,1,""],jsonify:[296,5,1,""]},"evennia.server.portal.webclient_ajax.AjaxWebClient":{__init__:[296,3,1,""],allowedMethods:[296,4,1,""],at_login:[296,3,1,""],client_disconnect:[296,3,1,""],get_client_sessid:[296,3,1,""],isLeaf:[296,4,1,""],lineSend:[296,3,1,""],mode_close:[296,3,1,""],mode_init:[296,3,1,""],mode_input:[296,3,1,""],mode_keepalive:[296,3,1,""],mode_receive:[296,3,1,""],render_POST:[296,3,1,""]},"evennia.server.portal.webclient_ajax.AjaxWebClientSession":{__init__:[296,3,1,""],at_login:[296,3,1,""],data_in:[296,3,1,""],data_out:[296,3,1,""],disconnect:[296,3,1,""],get_client_session:[296,3,1,""],send_default:[296,3,1,""],send_prompt:[296,3,1,""],send_text:[296,3,1,""]},"evennia.server.portal.webclient_ajax.LazyEncoder":{"default":[296,3,1,""]},"evennia.server.profiling":{dummyrunner:[298,0,0,"-"],dummyrunner_settings:[299,0,0,"-"],memplot:[300,0,0,"-"],settings_mixin:[301,0,0,"-"],test_queries:[302,0,0,"-"],tests:[303,0,0,"-"],timetrace:[304,0,0,"-"]},"evennia.server.profiling.dummyrunner":{DummyClient:[298,1,1,""],DummyFactory:[298,1,1,""],gidcounter:[298,5,1,""],idcounter:[298,5,1,""],makeiter:[298,5,1,""],start_all_dummy_clients:[298,5,1,""]},"evennia.server.profiling.dummyrunner.DummyClient":{connectionLost:[298,3,1,""],connectionMade:[298,3,1,""],counter:[298,3,1,""],dataReceived:[298,3,1,""],error:[298,3,1,""],logout:[298,3,1,""],step:[298,3,1,""]},"evennia.server.profiling.dummyrunner.DummyFactory":{__init__:[298,3,1,""],protocol:[298,4,1,""]},"evennia.server.profiling.dummyrunner_settings":{c_creates_button:[299,5,1,""],c_creates_obj:[299,5,1,""],c_digs:[299,5,1,""],c_examines:[299,5,1,""],c_help:[299,5,1,""],c_idles:[299,5,1,""],c_login:[299,5,1,""],c_login_nodig:[299,5,1,""],c_logout:[299,5,1,""],c_looks:[299,5,1,""],c_moves:[299,5,1,""],c_moves_n:[299,5,1,""],c_moves_s:[299,5,1,""],c_socialize:[299,5,1,""]},"evennia.server.profiling.memplot":{Memplot:[300,1,1,""]},"evennia.server.profiling.memplot.Memplot":{DoesNotExist:[300,2,1,""],MultipleObjectsReturned:[300,2,1,""],at_repeat:[300,3,1,""],at_script_creation:[300,3,1,""],path:[300,4,1,""],typename:[300,4,1,""]},"evennia.server.profiling.test_queries":{count_queries:[302,5,1,""]},"evennia.server.profiling.tests":{TestDummyrunnerSettings:[303,1,1,""],TestMemPlot:[303,1,1,""]},"evennia.server.profiling.tests.TestDummyrunnerSettings":{clear_client_lists:[303,3,1,""],perception_method_tests:[303,3,1,""],setUp:[303,3,1,""],test_c_creates_button:[303,3,1,""],test_c_creates_obj:[303,3,1,""],test_c_digs:[303,3,1,""],test_c_examines:[303,3,1,""],test_c_help:[303,3,1,""],test_c_login:[303,3,1,""],test_c_login_no_dig:[303,3,1,""],test_c_logout:[303,3,1,""],test_c_looks:[303,3,1,""],test_c_move_n:[303,3,1,""],test_c_move_s:[303,3,1,""],test_c_moves:[303,3,1,""],test_c_socialize:[303,3,1,""],test_idles:[303,3,1,""]},"evennia.server.profiling.tests.TestMemPlot":{test_memplot:[303,3,1,""]},"evennia.server.profiling.timetrace":{timetrace:[304,5,1,""]},"evennia.server.server":{Evennia:[305,1,1,""]},"evennia.server.server.Evennia":{__init__:[305,3,1,""],at_post_portal_sync:[305,3,1,""],at_server_cold_start:[305,3,1,""],at_server_cold_stop:[305,3,1,""],at_server_reload_start:[305,3,1,""],at_server_reload_stop:[305,3,1,""],at_server_start:[305,3,1,""],at_server_stop:[305,3,1,""],get_info_dict:[305,3,1,""],run_init_hooks:[305,3,1,""],run_initial_setup:[305,3,1,""],shutdown:[305,3,1,""],sqlite3_prep:[305,3,1,""],update_defaults:[305,3,1,""]},"evennia.server.serversession":{ServerSession:[306,1,1,""]},"evennia.server.serversession.ServerSession":{__init__:[306,3,1,""],access:[306,3,1,""],at_cmdset_get:[306,3,1,""],at_disconnect:[306,3,1,""],at_login:[306,3,1,""],at_sync:[306,3,1,""],attributes:[306,4,1,""],cmdset_storage:[306,3,1,""],data_in:[306,3,1,""],data_out:[306,3,1,""],db:[306,3,1,""],execute_cmd:[306,3,1,""],get_account:[306,3,1,""],get_character:[306,3,1,""],get_client_size:[306,3,1,""],get_puppet:[306,3,1,""],get_puppet_or_account:[306,3,1,""],id:[306,3,1,""],log:[306,3,1,""],msg:[306,3,1,""],nattributes:[306,4,1,""],ndb:[306,3,1,""],ndb_del:[306,3,1,""],ndb_get:[306,3,1,""],ndb_set:[306,3,1,""],update_flags:[306,3,1,""],update_session_counters:[306,3,1,""]},"evennia.server.session":{Session:[307,1,1,""]},"evennia.server.session.Session":{at_sync:[307,3,1,""],data_in:[307,3,1,""],data_out:[307,3,1,""],disconnect:[307,3,1,""],get_sync_data:[307,3,1,""],init_session:[307,3,1,""],load_sync_data:[307,3,1,""]},"evennia.server.sessionhandler":{DummySession:[308,1,1,""],ServerSessionHandler:[308,1,1,""],SessionHandler:[308,1,1,""],delayed_import:[308,5,1,""]},"evennia.server.sessionhandler.DummySession":{sessid:[308,4,1,""]},"evennia.server.sessionhandler.ServerSessionHandler":{__init__:[308,3,1,""],account_count:[308,3,1,""],all_connected_accounts:[308,3,1,""],all_sessions_portal_sync:[308,3,1,""],announce_all:[308,3,1,""],call_inputfuncs:[308,3,1,""],data_in:[308,3,1,""],data_out:[308,3,1,""],disconnect:[308,3,1,""],disconnect_all_sessions:[308,3,1,""],disconnect_duplicate_sessions:[308,3,1,""],get_inputfuncs:[308,3,1,""],login:[308,3,1,""],portal_connect:[308,3,1,""],portal_disconnect:[308,3,1,""],portal_disconnect_all:[308,3,1,""],portal_reset_server:[308,3,1,""],portal_restart_server:[308,3,1,""],portal_session_sync:[308,3,1,""],portal_sessions_sync:[308,3,1,""],portal_shutdown:[308,3,1,""],session_from_account:[308,3,1,""],session_from_sessid:[308,3,1,""],session_portal_partial_sync:[308,3,1,""],session_portal_sync:[308,3,1,""],sessions_from_account:[308,3,1,""],sessions_from_character:[308,3,1,""],sessions_from_csessid:[308,3,1,""],sessions_from_puppet:[308,3,1,""],start_bot_session:[308,3,1,""],validate_sessions:[308,3,1,""]},"evennia.server.sessionhandler.SessionHandler":{clean_senddata:[308,3,1,""],get:[308,3,1,""],get_all_sync_data:[308,3,1,""],get_sessions:[308,3,1,""]},"evennia.server.throttle":{Throttle:[310,1,1,""]},"evennia.server.throttle.Throttle":{__init__:[310,3,1,""],check:[310,3,1,""],error_msg:[310,4,1,""],get:[310,3,1,""],get_cache_key:[310,3,1,""],record_ip:[310,3,1,""],remove:[310,3,1,""],touch:[310,3,1,""],unrecord_ip:[310,3,1,""],update:[310,3,1,""]},"evennia.server.validators":{EvenniaPasswordValidator:[311,1,1,""],EvenniaUsernameAvailabilityValidator:[311,1,1,""]},"evennia.server.validators.EvenniaPasswordValidator":{__init__:[311,3,1,""],get_help_text:[311,3,1,""],validate:[311,3,1,""]},"evennia.server.webserver":{DjangoWebRoot:[312,1,1,""],EvenniaReverseProxyResource:[312,1,1,""],HTTPChannelWithXForwardedFor:[312,1,1,""],LockableThreadPool:[312,1,1,""],PrivateStaticRoot:[312,1,1,""],WSGIWebServer:[312,1,1,""],Website:[312,1,1,""]},"evennia.server.webserver.DjangoWebRoot":{__init__:[312,3,1,""],empty_threadpool:[312,3,1,""],getChild:[312,3,1,""]},"evennia.server.webserver.EvenniaReverseProxyResource":{getChild:[312,3,1,""],render:[312,3,1,""]},"evennia.server.webserver.HTTPChannelWithXForwardedFor":{allHeadersReceived:[312,3,1,""]},"evennia.server.webserver.LockableThreadPool":{__init__:[312,3,1,""],callInThread:[312,3,1,""],lock:[312,3,1,""]},"evennia.server.webserver.PrivateStaticRoot":{directoryListing:[312,3,1,""]},"evennia.server.webserver.WSGIWebServer":{__init__:[312,3,1,""],startService:[312,3,1,""],stopService:[312,3,1,""]},"evennia.server.webserver.Website":{log:[312,3,1,""],logPrefix:[312,3,1,""],noisy:[312,4,1,""]},"evennia.typeclasses":{admin:[315,0,0,"-"],attributes:[316,0,0,"-"],managers:[317,0,0,"-"],models:[318,0,0,"-"],tags:[319,0,0,"-"]},"evennia.typeclasses.admin":{AttributeForm:[315,1,1,""],AttributeFormSet:[315,1,1,""],AttributeInline:[315,1,1,""],TagAdmin:[315,1,1,""],TagForm:[315,1,1,""],TagFormSet:[315,1,1,""],TagInline:[315,1,1,""]},"evennia.typeclasses.admin.AttributeForm":{Meta:[315,1,1,""],__init__:[315,3,1,""],base_fields:[315,4,1,""],clean_attr_value:[315,3,1,""],declared_fields:[315,4,1,""],media:[315,3,1,""],save:[315,3,1,""]},"evennia.typeclasses.admin.AttributeForm.Meta":{fields:[315,4,1,""]},"evennia.typeclasses.admin.AttributeFormSet":{save:[315,3,1,""]},"evennia.typeclasses.admin.AttributeInline":{extra:[315,4,1,""],form:[315,4,1,""],formset:[315,4,1,""],get_formset:[315,3,1,""],media:[315,3,1,""],model:[315,4,1,""],related_field:[315,4,1,""]},"evennia.typeclasses.admin.TagAdmin":{fields:[315,4,1,""],list_display:[315,4,1,""],list_filter:[315,4,1,""],media:[315,3,1,""],search_fields:[315,4,1,""]},"evennia.typeclasses.admin.TagForm":{Meta:[315,1,1,""],__init__:[315,3,1,""],base_fields:[315,4,1,""],declared_fields:[315,4,1,""],media:[315,3,1,""],save:[315,3,1,""]},"evennia.typeclasses.admin.TagForm.Meta":{fields:[315,4,1,""]},"evennia.typeclasses.admin.TagFormSet":{save:[315,3,1,""]},"evennia.typeclasses.admin.TagInline":{extra:[315,4,1,""],form:[315,4,1,""],formset:[315,4,1,""],get_formset:[315,3,1,""],media:[315,3,1,""],model:[315,4,1,""],related_field:[315,4,1,""]},"evennia.typeclasses.attributes":{Attribute:[316,1,1,""],AttributeHandler:[316,1,1,""],DbHolder:[316,1,1,""],IAttribute:[316,1,1,""],IAttributeBackend:[316,1,1,""],InMemoryAttribute:[316,1,1,""],InMemoryAttributeBackend:[316,1,1,""],ModelAttributeBackend:[316,1,1,""],NickHandler:[316,1,1,""],NickTemplateInvalid:[316,2,1,""],initialize_nick_templates:[316,5,1,""],parse_nick_template:[316,5,1,""]},"evennia.typeclasses.attributes.Attribute":{DoesNotExist:[316,2,1,""],MultipleObjectsReturned:[316,2,1,""],accountdb_set:[316,4,1,""],attrtype:[316,3,1,""],category:[316,3,1,""],channeldb_set:[316,4,1,""],date_created:[316,3,1,""],db_attrtype:[316,4,1,""],db_category:[316,4,1,""],db_date_created:[316,4,1,""],db_key:[316,4,1,""],db_lock_storage:[316,4,1,""],db_model:[316,4,1,""],db_strvalue:[316,4,1,""],db_value:[316,4,1,""],get_next_by_db_date_created:[316,3,1,""],get_previous_by_db_date_created:[316,3,1,""],id:[316,4,1,""],key:[316,3,1,""],lock_storage:[316,3,1,""],model:[316,3,1,""],objectdb_set:[316,4,1,""],path:[316,4,1,""],scriptdb_set:[316,4,1,""],strvalue:[316,3,1,""],typename:[316,4,1,""],value:[316,3,1,""]},"evennia.typeclasses.attributes.AttributeHandler":{__init__:[316,3,1,""],add:[316,3,1,""],all:[316,3,1,""],batch_add:[316,3,1,""],clear:[316,3,1,""],get:[316,3,1,""],has:[316,3,1,""],remove:[316,3,1,""],reset_cache:[316,3,1,""]},"evennia.typeclasses.attributes.DbHolder":{__init__:[316,3,1,""],all:[316,3,1,""],get_all:[316,3,1,""]},"evennia.typeclasses.attributes.IAttribute":{access:[316,3,1,""],attrtype:[316,3,1,""],category:[316,3,1,""],date_created:[316,3,1,""],key:[316,3,1,""],lock_storage:[316,3,1,""],locks:[316,4,1,""],model:[316,3,1,""],strvalue:[316,3,1,""]},"evennia.typeclasses.attributes.IAttributeBackend":{__init__:[316,3,1,""],batch_add:[316,3,1,""],clear_attributes:[316,3,1,""],create_attribute:[316,3,1,""],delete_attribute:[316,3,1,""],do_batch_delete:[316,3,1,""],do_batch_finish:[316,3,1,""],do_batch_update_attribute:[316,3,1,""],do_create_attribute:[316,3,1,""],do_delete_attribute:[316,3,1,""],do_update_attribute:[316,3,1,""],get:[316,3,1,""],get_all_attributes:[316,3,1,""],query_all:[316,3,1,""],query_category:[316,3,1,""],query_key:[316,3,1,""],reset_cache:[316,3,1,""],update_attribute:[316,3,1,""]},"evennia.typeclasses.attributes.InMemoryAttribute":{__init__:[316,3,1,""],value:[316,3,1,""]},"evennia.typeclasses.attributes.InMemoryAttributeBackend":{__init__:[316,3,1,""],do_batch_finish:[316,3,1,""],do_batch_update_attribute:[316,3,1,""],do_create_attribute:[316,3,1,""],do_delete_attribute:[316,3,1,""],do_update_attribute:[316,3,1,""],query_all:[316,3,1,""],query_category:[316,3,1,""],query_key:[316,3,1,""]},"evennia.typeclasses.attributes.ModelAttributeBackend":{__init__:[316,3,1,""],do_batch_finish:[316,3,1,""],do_batch_update_attribute:[316,3,1,""],do_create_attribute:[316,3,1,""],do_delete_attribute:[316,3,1,""],do_update_attribute:[316,3,1,""],query_all:[316,3,1,""],query_category:[316,3,1,""],query_key:[316,3,1,""]},"evennia.typeclasses.attributes.NickHandler":{__init__:[316,3,1,""],add:[316,3,1,""],get:[316,3,1,""],has:[316,3,1,""],nickreplace:[316,3,1,""],remove:[316,3,1,""]},"evennia.typeclasses.managers":{TypedObjectManager:[317,1,1,""]},"evennia.typeclasses.managers.TypedObjectManager":{create_tag:[317,3,1,""],dbref:[317,3,1,""],dbref_search:[317,3,1,""],get_alias:[317,3,1,""],get_attribute:[317,3,1,""],get_by_alias:[317,3,1,""],get_by_attribute:[317,3,1,""],get_by_nick:[317,3,1,""],get_by_permission:[317,3,1,""],get_by_tag:[317,3,1,""],get_dbref_range:[317,3,1,""],get_id:[317,3,1,""],get_nick:[317,3,1,""],get_permission:[317,3,1,""],get_tag:[317,3,1,""],get_typeclass_totals:[317,3,1,""],object_totals:[317,3,1,""],typeclass_search:[317,3,1,""]},"evennia.typeclasses.models":{TypedObject:[318,1,1,""]},"evennia.typeclasses.models.TypedObject":{"delete":[318,3,1,""],Meta:[318,1,1,""],__init__:[318,3,1,""],access:[318,3,1,""],aliases:[318,4,1,""],at_idmapper_flush:[318,3,1,""],at_rename:[318,3,1,""],attributes:[318,4,1,""],check_permstring:[318,3,1,""],date_created:[318,3,1,""],db:[318,3,1,""],db_attributes:[318,4,1,""],db_date_created:[318,4,1,""],db_key:[318,4,1,""],db_lock_storage:[318,4,1,""],db_tags:[318,4,1,""],db_typeclass_path:[318,4,1,""],dbid:[318,3,1,""],dbref:[318,3,1,""],get_absolute_url:[318,3,1,""],get_display_name:[318,3,1,""],get_extra_info:[318,3,1,""],get_next_by_db_date_created:[318,3,1,""],get_previous_by_db_date_created:[318,3,1,""],is_typeclass:[318,3,1,""],key:[318,3,1,""],lock_storage:[318,3,1,""],locks:[318,4,1,""],name:[318,3,1,""],nattributes:[318,4,1,""],ndb:[318,3,1,""],objects:[318,4,1,""],path:[318,4,1,""],permissions:[318,4,1,""],set_class_from_typeclass:[318,3,1,""],swap_typeclass:[318,3,1,""],tags:[318,4,1,""],typeclass_path:[318,3,1,""],typename:[318,4,1,""],web_get_admin_url:[318,3,1,""],web_get_create_url:[318,3,1,""],web_get_delete_url:[318,3,1,""],web_get_detail_url:[318,3,1,""],web_get_puppet_url:[318,3,1,""],web_get_update_url:[318,3,1,""]},"evennia.typeclasses.models.TypedObject.Meta":{"abstract":[318,4,1,""],ordering:[318,4,1,""],verbose_name:[318,4,1,""]},"evennia.typeclasses.tags":{AliasHandler:[319,1,1,""],PermissionHandler:[319,1,1,""],Tag:[319,1,1,""],TagHandler:[319,1,1,""]},"evennia.typeclasses.tags.Tag":{DoesNotExist:[319,2,1,""],MultipleObjectsReturned:[319,2,1,""],accountdb_set:[319,4,1,""],channeldb_set:[319,4,1,""],db_category:[319,4,1,""],db_data:[319,4,1,""],db_key:[319,4,1,""],db_model:[319,4,1,""],db_tagtype:[319,4,1,""],helpentry_set:[319,4,1,""],id:[319,4,1,""],msg_set:[319,4,1,""],objectdb_set:[319,4,1,""],objects:[319,4,1,""],scriptdb_set:[319,4,1,""]},"evennia.typeclasses.tags.TagHandler":{__init__:[319,3,1,""],add:[319,3,1,""],all:[319,3,1,""],batch_add:[319,3,1,""],clear:[319,3,1,""],get:[319,3,1,""],has:[319,3,1,""],remove:[319,3,1,""],reset_cache:[319,3,1,""]},"evennia.utils":{ansi:[321,0,0,"-"],batchprocessors:[322,0,0,"-"],containers:[323,0,0,"-"],create:[324,0,0,"-"],dbserialize:[325,0,0,"-"],eveditor:[326,0,0,"-"],evform:[327,0,0,"-"],evmenu:[328,0,0,"-"],evmore:[329,0,0,"-"],evtable:[330,0,0,"-"],gametime:[331,0,0,"-"],idmapper:[332,0,0,"-"],inlinefuncs:[336,0,0,"-"],logger:[337,0,0,"-"],optionclasses:[338,0,0,"-"],optionhandler:[339,0,0,"-"],picklefield:[340,0,0,"-"],search:[341,0,0,"-"],test_resources:[342,0,0,"-"],text2html:[343,0,0,"-"],utils:[344,0,0,"-"],validatorfuncs:[345,0,0,"-"]},"evennia.utils.ansi":{ANSIMeta:[321,1,1,""],ANSIParser:[321,1,1,""],ANSIString:[321,1,1,""],parse_ansi:[321,5,1,""],raw:[321,5,1,""],strip_ansi:[321,5,1,""],strip_raw_ansi:[321,5,1,""]},"evennia.utils.ansi.ANSIMeta":{__init__:[321,3,1,""]},"evennia.utils.ansi.ANSIParser":{ansi_escapes:[321,4,1,""],ansi_map:[321,4,1,""],ansi_map_dict:[321,4,1,""],ansi_re:[321,4,1,""],ansi_regex:[321,4,1,""],ansi_sub:[321,4,1,""],ansi_xterm256_bright_bg_map:[321,4,1,""],ansi_xterm256_bright_bg_map_dict:[321,4,1,""],brightbg_sub:[321,4,1,""],mxp_re:[321,4,1,""],mxp_sub:[321,4,1,""],parse_ansi:[321,3,1,""],strip_mxp:[321,3,1,""],strip_raw_codes:[321,3,1,""],sub_ansi:[321,3,1,""],sub_brightbg:[321,3,1,""],sub_xterm256:[321,3,1,""],xterm256_bg:[321,4,1,""],xterm256_bg_sub:[321,4,1,""],xterm256_fg:[321,4,1,""],xterm256_fg_sub:[321,4,1,""],xterm256_gbg:[321,4,1,""],xterm256_gbg_sub:[321,4,1,""],xterm256_gfg:[321,4,1,""],xterm256_gfg_sub:[321,4,1,""]},"evennia.utils.ansi.ANSIString":{__init__:[321,3,1,""],capitalize:[321,3,1,""],center:[321,3,1,""],clean:[321,3,1,""],count:[321,3,1,""],decode:[321,3,1,""],encode:[321,3,1,""],endswith:[321,3,1,""],expandtabs:[321,3,1,""],find:[321,3,1,""],format:[321,3,1,""],index:[321,3,1,""],isalnum:[321,3,1,""],isalpha:[321,3,1,""],isdigit:[321,3,1,""],islower:[321,3,1,""],isspace:[321,3,1,""],istitle:[321,3,1,""],isupper:[321,3,1,""],join:[321,3,1,""],ljust:[321,3,1,""],lower:[321,3,1,""],lstrip:[321,3,1,""],partition:[321,3,1,""],raw:[321,3,1,""],re_format:[321,4,1,""],replace:[321,3,1,""],rfind:[321,3,1,""],rindex:[321,3,1,""],rjust:[321,3,1,""],rsplit:[321,3,1,""],rstrip:[321,3,1,""],split:[321,3,1,""],startswith:[321,3,1,""],strip:[321,3,1,""],swapcase:[321,3,1,""],translate:[321,3,1,""],upper:[321,3,1,""]},"evennia.utils.batchprocessors":{BatchCodeProcessor:[322,1,1,""],BatchCommandProcessor:[322,1,1,""],read_batchfile:[322,5,1,""],tb_filename:[322,5,1,""],tb_iter:[322,5,1,""]},"evennia.utils.batchprocessors.BatchCodeProcessor":{code_exec:[322,3,1,""],parse_file:[322,3,1,""]},"evennia.utils.batchprocessors.BatchCommandProcessor":{parse_file:[322,3,1,""]},"evennia.utils.containers":{Container:[323,1,1,""],GlobalScriptContainer:[323,1,1,""],OptionContainer:[323,1,1,""]},"evennia.utils.containers.Container":{__init__:[323,3,1,""],all:[323,3,1,""],get:[323,3,1,""],load_data:[323,3,1,""],storage_modules:[323,4,1,""]},"evennia.utils.containers.GlobalScriptContainer":{__init__:[323,3,1,""],all:[323,3,1,""],get:[323,3,1,""],load_data:[323,3,1,""],start:[323,3,1,""]},"evennia.utils.containers.OptionContainer":{storage_modules:[323,4,1,""]},"evennia.utils.create":{create_account:[324,5,1,""],create_channel:[324,5,1,""],create_help_entry:[324,5,1,""],create_message:[324,5,1,""],create_object:[324,5,1,""],create_script:[324,5,1,""]},"evennia.utils.dbserialize":{dbserialize:[325,5,1,""],dbunserialize:[325,5,1,""],do_pickle:[325,5,1,""],do_unpickle:[325,5,1,""],from_pickle:[325,5,1,""],to_pickle:[325,5,1,""]},"evennia.utils.eveditor":{CmdEditorBase:[326,1,1,""],CmdEditorGroup:[326,1,1,""],CmdLineInput:[326,1,1,""],CmdSaveYesNo:[326,1,1,""],EvEditor:[326,1,1,""],EvEditorCmdSet:[326,1,1,""],SaveYesNoCmdSet:[326,1,1,""]},"evennia.utils.eveditor.CmdEditorBase":{aliases:[326,4,1,""],editor:[326,4,1,""],help_category:[326,4,1,""],help_entry:[326,4,1,""],key:[326,4,1,""],lock_storage:[326,4,1,""],locks:[326,4,1,""],parse:[326,3,1,""],search_index_entry:[326,4,1,""]},"evennia.utils.eveditor.CmdEditorGroup":{aliases:[326,4,1,""],arg_regex:[326,4,1,""],func:[326,3,1,""],help_category:[326,4,1,""],key:[326,4,1,""],lock_storage:[326,4,1,""],search_index_entry:[326,4,1,""]},"evennia.utils.eveditor.CmdLineInput":{aliases:[326,4,1,""],func:[326,3,1,""],help_category:[326,4,1,""],key:[326,4,1,""],lock_storage:[326,4,1,""],search_index_entry:[326,4,1,""]},"evennia.utils.eveditor.CmdSaveYesNo":{aliases:[326,4,1,""],func:[326,3,1,""],help_category:[326,4,1,""],help_cateogory:[326,4,1,""],key:[326,4,1,""],lock_storage:[326,4,1,""],locks:[326,4,1,""],search_index_entry:[326,4,1,""]},"evennia.utils.eveditor.EvEditor":{__init__:[326,3,1,""],decrease_indent:[326,3,1,""],deduce_indent:[326,3,1,""],display_buffer:[326,3,1,""],display_help:[326,3,1,""],get_buffer:[326,3,1,""],increase_indent:[326,3,1,""],load_buffer:[326,3,1,""],quit:[326,3,1,""],save_buffer:[326,3,1,""],swap_autoindent:[326,3,1,""],update_buffer:[326,3,1,""],update_undo:[326,3,1,""]},"evennia.utils.eveditor.EvEditorCmdSet":{at_cmdset_creation:[326,3,1,""],key:[326,4,1,""],mergetype:[326,4,1,""],path:[326,4,1,""]},"evennia.utils.eveditor.SaveYesNoCmdSet":{at_cmdset_creation:[326,3,1,""],key:[326,4,1,""],mergetype:[326,4,1,""],path:[326,4,1,""],priority:[326,4,1,""]},"evennia.utils.evform":{EvForm:[327,1,1,""]},"evennia.utils.evform.EvForm":{__init__:[327,3,1,""],map:[327,3,1,""],reload:[327,3,1,""]},"evennia.utils.evmenu":{CmdEvMenuNode:[328,1,1,""],CmdGetInput:[328,1,1,""],EvMenu:[328,1,1,""],EvMenuCmdSet:[328,1,1,""],EvMenuError:[328,2,1,""],EvMenuGotoAbortMessage:[328,2,1,""],InputCmdSet:[328,1,1,""],get_input:[328,5,1,""],list_node:[328,5,1,""],parse_menu_template:[328,5,1,""],template2menu:[328,5,1,""]},"evennia.utils.evmenu.CmdEvMenuNode":{aliases:[328,4,1,""],auto_help_display_key:[328,4,1,""],func:[328,3,1,""],get_help:[328,3,1,""],help_category:[328,4,1,""],key:[328,4,1,""],lock_storage:[328,4,1,""],locks:[328,4,1,""],search_index_entry:[328,4,1,""]},"evennia.utils.evmenu.CmdGetInput":{aliases:[328,4,1,""],func:[328,3,1,""],help_category:[328,4,1,""],key:[328,4,1,""],lock_storage:[328,4,1,""],search_index_entry:[328,4,1,""]},"evennia.utils.evmenu.EvMenu":{"goto":[328,3,1,""],__init__:[328,3,1,""],close_menu:[328,3,1,""],display_helptext:[328,3,1,""],display_nodetext:[328,3,1,""],extract_goto_exec:[328,3,1,""],helptext_formatter:[328,3,1,""],msg:[328,3,1,""],node_border_char:[328,4,1,""],node_formatter:[328,3,1,""],nodetext_formatter:[328,3,1,""],options_formatter:[328,3,1,""],parse_input:[328,3,1,""],print_debug_info:[328,3,1,""],run_exec:[328,3,1,""],run_exec_then_goto:[328,3,1,""]},"evennia.utils.evmenu.EvMenuCmdSet":{at_cmdset_creation:[328,3,1,""],key:[328,4,1,""],mergetype:[328,4,1,""],no_channels:[328,4,1,""],no_exits:[328,4,1,""],no_objs:[328,4,1,""],path:[328,4,1,""],priority:[328,4,1,""]},"evennia.utils.evmenu.InputCmdSet":{at_cmdset_creation:[328,3,1,""],key:[328,4,1,""],mergetype:[328,4,1,""],no_channels:[328,4,1,""],no_exits:[328,4,1,""],no_objs:[328,4,1,""],path:[328,4,1,""],priority:[328,4,1,""]},"evennia.utils.evmore":{CmdMore:[329,1,1,""],CmdMoreLook:[329,1,1,""],CmdSetMore:[329,1,1,""],EvMore:[329,1,1,""],msg:[329,5,1,""],queryset_maxsize:[329,5,1,""]},"evennia.utils.evmore.CmdMore":{aliases:[329,4,1,""],auto_help:[329,4,1,""],func:[329,3,1,""],help_category:[329,4,1,""],key:[329,4,1,""],lock_storage:[329,4,1,""],search_index_entry:[329,4,1,""]},"evennia.utils.evmore.CmdMoreLook":{aliases:[329,4,1,""],auto_help:[329,4,1,""],func:[329,3,1,""],help_category:[329,4,1,""],key:[329,4,1,""],lock_storage:[329,4,1,""],search_index_entry:[329,4,1,""]},"evennia.utils.evmore.CmdSetMore":{at_cmdset_creation:[329,3,1,""],key:[329,4,1,""],path:[329,4,1,""],priority:[329,4,1,""]},"evennia.utils.evmore.EvMore":{__init__:[329,3,1,""],display:[329,3,1,""],init_django_paginator:[329,3,1,""],init_evtable:[329,3,1,""],init_f_str:[329,3,1,""],init_iterable:[329,3,1,""],init_pages:[329,3,1,""],init_queryset:[329,3,1,""],init_str:[329,3,1,""],page_back:[329,3,1,""],page_end:[329,3,1,""],page_formatter:[329,3,1,""],page_next:[329,3,1,""],page_quit:[329,3,1,""],page_top:[329,3,1,""],paginator:[329,3,1,""],paginator_django:[329,3,1,""],paginator_index:[329,3,1,""],paginator_slice:[329,3,1,""],start:[329,3,1,""]},"evennia.utils.evtable":{ANSITextWrapper:[330,1,1,""],EvCell:[330,1,1,""],EvColumn:[330,1,1,""],EvTable:[330,1,1,""],fill:[330,5,1,""],wrap:[330,5,1,""]},"evennia.utils.evtable.EvCell":{__init__:[330,3,1,""],get:[330,3,1,""],get_height:[330,3,1,""],get_min_height:[330,3,1,""],get_min_width:[330,3,1,""],get_width:[330,3,1,""],reformat:[330,3,1,""],replace_data:[330,3,1,""]},"evennia.utils.evtable.EvColumn":{__init__:[330,3,1,""],add_rows:[330,3,1,""],reformat:[330,3,1,""],reformat_cell:[330,3,1,""]},"evennia.utils.evtable.EvTable":{__init__:[330,3,1,""],add_column:[330,3,1,""],add_header:[330,3,1,""],add_row:[330,3,1,""],get:[330,3,1,""],reformat:[330,3,1,""],reformat_column:[330,3,1,""]},"evennia.utils.gametime":{TimeScript:[331,1,1,""],game_epoch:[331,5,1,""],gametime:[331,5,1,""],portal_uptime:[331,5,1,""],real_seconds_until:[331,5,1,""],reset_gametime:[331,5,1,""],runtime:[331,5,1,""],schedule:[331,5,1,""],server_epoch:[331,5,1,""],uptime:[331,5,1,""]},"evennia.utils.gametime.TimeScript":{DoesNotExist:[331,2,1,""],MultipleObjectsReturned:[331,2,1,""],at_repeat:[331,3,1,""],at_script_creation:[331,3,1,""],path:[331,4,1,""],typename:[331,4,1,""]},"evennia.utils.idmapper":{manager:[333,0,0,"-"],models:[334,0,0,"-"],tests:[335,0,0,"-"]},"evennia.utils.idmapper.manager":{SharedMemoryManager:[333,1,1,""]},"evennia.utils.idmapper.manager.SharedMemoryManager":{get:[333,3,1,""]},"evennia.utils.idmapper.models":{SharedMemoryModel:[334,1,1,""],SharedMemoryModelBase:[334,1,1,""],WeakSharedMemoryModel:[334,1,1,""],WeakSharedMemoryModelBase:[334,1,1,""],cache_size:[334,5,1,""],conditional_flush:[334,5,1,""],flush_cache:[334,5,1,""],flush_cached_instance:[334,5,1,""],update_cached_instance:[334,5,1,""]},"evennia.utils.idmapper.models.SharedMemoryModel":{"delete":[334,3,1,""],Meta:[334,1,1,""],at_idmapper_flush:[334,3,1,""],cache_instance:[334,3,1,""],flush_cached_instance:[334,3,1,""],flush_from_cache:[334,3,1,""],flush_instance_cache:[334,3,1,""],get_all_cached_instances:[334,3,1,""],get_cached_instance:[334,3,1,""],objects:[334,4,1,""],path:[334,4,1,""],save:[334,3,1,""],typename:[334,4,1,""]},"evennia.utils.idmapper.models.SharedMemoryModel.Meta":{"abstract":[334,4,1,""]},"evennia.utils.idmapper.models.WeakSharedMemoryModel":{Meta:[334,1,1,""],path:[334,4,1,""],typename:[334,4,1,""]},"evennia.utils.idmapper.models.WeakSharedMemoryModel.Meta":{"abstract":[334,4,1,""]},"evennia.utils.idmapper.tests":{Article:[335,1,1,""],Category:[335,1,1,""],RegularArticle:[335,1,1,""],RegularCategory:[335,1,1,""],SharedMemorysTest:[335,1,1,""]},"evennia.utils.idmapper.tests.Article":{DoesNotExist:[335,2,1,""],MultipleObjectsReturned:[335,2,1,""],category2:[335,4,1,""],category2_id:[335,4,1,""],category:[335,4,1,""],category_id:[335,4,1,""],id:[335,4,1,""],name:[335,4,1,""],path:[335,4,1,""],typename:[335,4,1,""]},"evennia.utils.idmapper.tests.Category":{DoesNotExist:[335,2,1,""],MultipleObjectsReturned:[335,2,1,""],article_set:[335,4,1,""],id:[335,4,1,""],name:[335,4,1,""],path:[335,4,1,""],regulararticle_set:[335,4,1,""],typename:[335,4,1,""]},"evennia.utils.idmapper.tests.RegularArticle":{DoesNotExist:[335,2,1,""],MultipleObjectsReturned:[335,2,1,""],category2:[335,4,1,""],category2_id:[335,4,1,""],category:[335,4,1,""],category_id:[335,4,1,""],id:[335,4,1,""],name:[335,4,1,""],objects:[335,4,1,""]},"evennia.utils.idmapper.tests.RegularCategory":{DoesNotExist:[335,2,1,""],MultipleObjectsReturned:[335,2,1,""],article_set:[335,4,1,""],id:[335,4,1,""],name:[335,4,1,""],objects:[335,4,1,""],regulararticle_set:[335,4,1,""]},"evennia.utils.idmapper.tests.SharedMemorysTest":{setUp:[335,3,1,""],testMixedReferences:[335,3,1,""],testObjectDeletion:[335,3,1,""],testRegularReferences:[335,3,1,""],testSharedMemoryReferences:[335,3,1,""]},"evennia.utils.inlinefuncs":{"null":[336,5,1,""],InlinefuncError:[336,2,1,""],NickTemplateInvalid:[336,2,1,""],ParseStack:[336,1,1,""],clr:[336,5,1,""],crop:[336,5,1,""],initialize_nick_templates:[336,5,1,""],nomatch:[336,5,1,""],pad:[336,5,1,""],parse_inlinefunc:[336,5,1,""],parse_nick_template:[336,5,1,""],random:[336,5,1,""],raw:[336,5,1,""],space:[336,5,1,""]},"evennia.utils.inlinefuncs.ParseStack":{__init__:[336,3,1,""],append:[336,3,1,""]},"evennia.utils.logger":{EvenniaLogFile:[337,1,1,""],PortalLogObserver:[337,1,1,""],ServerLogObserver:[337,1,1,""],WeeklyLogFile:[337,1,1,""],log_dep:[337,5,1,""],log_depmsg:[337,5,1,""],log_err:[337,5,1,""],log_errmsg:[337,5,1,""],log_file:[337,5,1,""],log_info:[337,5,1,""],log_infomsg:[337,5,1,""],log_msg:[337,5,1,""],log_sec:[337,5,1,""],log_secmsg:[337,5,1,""],log_server:[337,5,1,""],log_trace:[337,5,1,""],log_tracemsg:[337,5,1,""],log_warn:[337,5,1,""],log_warnmsg:[337,5,1,""],tail_log_file:[337,5,1,""],timeformat:[337,5,1,""]},"evennia.utils.logger.EvenniaLogFile":{num_lines_to_append:[337,4,1,""],readlines:[337,3,1,""],rotate:[337,3,1,""],seek:[337,3,1,""],settings:[337,4,1,""]},"evennia.utils.logger.PortalLogObserver":{emit:[337,3,1,""],prefix:[337,4,1,""],timeFormat:[337,4,1,""]},"evennia.utils.logger.ServerLogObserver":{prefix:[337,4,1,""]},"evennia.utils.logger.WeeklyLogFile":{__init__:[337,3,1,""],shouldRotate:[337,3,1,""],suffix:[337,3,1,""],write:[337,3,1,""]},"evennia.utils.optionclasses":{BaseOption:[338,1,1,""],Boolean:[338,1,1,""],Color:[338,1,1,""],Datetime:[338,1,1,""],Duration:[338,1,1,""],Email:[338,1,1,""],Future:[338,1,1,""],Lock:[338,1,1,""],PositiveInteger:[338,1,1,""],SignedInteger:[338,1,1,""],Text:[338,1,1,""],Timezone:[338,1,1,""],UnsignedInteger:[338,1,1,""]},"evennia.utils.optionclasses.BaseOption":{"default":[338,3,1,""],__init__:[338,3,1,""],changed:[338,3,1,""],deserialize:[338,3,1,""],display:[338,3,1,""],load:[338,3,1,""],save:[338,3,1,""],serialize:[338,3,1,""],set:[338,3,1,""],validate:[338,3,1,""],value:[338,3,1,""]},"evennia.utils.optionclasses.Boolean":{deserialize:[338,3,1,""],display:[338,3,1,""],serialize:[338,3,1,""],validate:[338,3,1,""]},"evennia.utils.optionclasses.Color":{deserialize:[338,3,1,""],display:[338,3,1,""],validate:[338,3,1,""]},"evennia.utils.optionclasses.Datetime":{deserialize:[338,3,1,""],serialize:[338,3,1,""],validate:[338,3,1,""]},"evennia.utils.optionclasses.Duration":{deserialize:[338,3,1,""],serialize:[338,3,1,""],validate:[338,3,1,""]},"evennia.utils.optionclasses.Email":{deserialize:[338,3,1,""],validate:[338,3,1,""]},"evennia.utils.optionclasses.Future":{validate:[338,3,1,""]},"evennia.utils.optionclasses.Lock":{validate:[338,3,1,""]},"evennia.utils.optionclasses.PositiveInteger":{deserialize:[338,3,1,""],validate:[338,3,1,""]},"evennia.utils.optionclasses.SignedInteger":{deserialize:[338,3,1,""],validate:[338,3,1,""]},"evennia.utils.optionclasses.Text":{deserialize:[338,3,1,""]},"evennia.utils.optionclasses.Timezone":{"default":[338,3,1,""],deserialize:[338,3,1,""],serialize:[338,3,1,""],validate:[338,3,1,""]},"evennia.utils.optionclasses.UnsignedInteger":{deserialize:[338,3,1,""],validate:[338,3,1,""],validator_key:[338,4,1,""]},"evennia.utils.optionhandler":{InMemorySaveHandler:[339,1,1,""],OptionHandler:[339,1,1,""]},"evennia.utils.optionhandler.InMemorySaveHandler":{__init__:[339,3,1,""],add:[339,3,1,""],get:[339,3,1,""]},"evennia.utils.optionhandler.OptionHandler":{__init__:[339,3,1,""],all:[339,3,1,""],get:[339,3,1,""],set:[339,3,1,""]},"evennia.utils.picklefield":{PickledFormField:[340,1,1,""],PickledObject:[340,1,1,""],PickledObjectField:[340,1,1,""],PickledWidget:[340,1,1,""],dbsafe_decode:[340,5,1,""],dbsafe_encode:[340,5,1,""],wrap_conflictual_object:[340,5,1,""]},"evennia.utils.picklefield.PickledFormField":{__init__:[340,3,1,""],clean:[340,3,1,""],default_error_messages:[340,4,1,""],widget:[340,4,1,""]},"evennia.utils.picklefield.PickledObjectField":{__init__:[340,3,1,""],formfield:[340,3,1,""],from_db_value:[340,3,1,""],get_db_prep_lookup:[340,3,1,""],get_db_prep_value:[340,3,1,""],get_default:[340,3,1,""],get_internal_type:[340,3,1,""],pre_save:[340,3,1,""],value_to_string:[340,3,1,""]},"evennia.utils.picklefield.PickledWidget":{media:[340,3,1,""],render:[340,3,1,""],value_from_datadict:[340,3,1,""]},"evennia.utils.search":{search_account:[341,5,1,""],search_account_tag:[341,5,1,""],search_channel:[341,5,1,""],search_channel_tag:[341,5,1,""],search_help_entry:[341,5,1,""],search_message:[341,5,1,""],search_object:[341,5,1,""],search_script:[341,5,1,""],search_script_tag:[341,5,1,""],search_tag:[341,5,1,""]},"evennia.utils.test_resources":{EvenniaTest:[342,1,1,""],LocalEvenniaTest:[342,1,1,""],mockdeferLater:[342,5,1,""],mockdelay:[342,5,1,""],unload_module:[342,5,1,""]},"evennia.utils.test_resources.EvenniaTest":{account_typeclass:[342,4,1,""],character_typeclass:[342,4,1,""],exit_typeclass:[342,4,1,""],object_typeclass:[342,4,1,""],room_typeclass:[342,4,1,""],script_typeclass:[342,4,1,""],setUp:[342,3,1,""],tearDown:[342,3,1,""]},"evennia.utils.test_resources.LocalEvenniaTest":{account_typeclass:[342,4,1,""],character_typeclass:[342,4,1,""],exit_typeclass:[342,4,1,""],object_typeclass:[342,4,1,""],room_typeclass:[342,4,1,""],script_typeclass:[342,4,1,""]},"evennia.utils.text2html":{TextToHTMLparser:[343,1,1,""],parse_html:[343,5,1,""]},"evennia.utils.text2html.TextToHTMLparser":{bg_colormap:[343,4,1,""],bgfgstart:[343,4,1,""],bgfgstop:[343,4,1,""],bgstart:[343,4,1,""],bgstop:[343,4,1,""],blink:[343,4,1,""],colorback:[343,4,1,""],colorcodes:[343,4,1,""],convert_linebreaks:[343,3,1,""],convert_urls:[343,3,1,""],fg_colormap:[343,4,1,""],fgstart:[343,4,1,""],fgstop:[343,4,1,""],hilite:[343,4,1,""],inverse:[343,4,1,""],normal:[343,4,1,""],parse:[343,3,1,""],re_bgfg:[343,4,1,""],re_bgs:[343,4,1,""],re_blink:[343,4,1,""],re_blinking:[343,3,1,""],re_bold:[343,3,1,""],re_color:[343,3,1,""],re_dblspace:[343,4,1,""],re_double_space:[343,3,1,""],re_fgs:[343,4,1,""],re_hilite:[343,4,1,""],re_inverse:[343,4,1,""],re_inversing:[343,3,1,""],re_mxplink:[343,4,1,""],re_normal:[343,4,1,""],re_string:[343,4,1,""],re_uline:[343,4,1,""],re_underline:[343,3,1,""],re_unhilite:[343,4,1,""],re_url:[343,4,1,""],remove_backspaces:[343,3,1,""],remove_bells:[343,3,1,""],sub_dblspace:[343,3,1,""],sub_mxp_links:[343,3,1,""],sub_text:[343,3,1,""],tabstop:[343,4,1,""],underline:[343,4,1,""],unhilite:[343,4,1,""]},"evennia.utils.utils":{LimitedSizeOrderedDict:[344,1,1,""],all_from_module:[344,5,1,""],at_search_result:[344,5,1,""],callables_from_module:[344,5,1,""],calledby:[344,5,1,""],check_evennia_dependencies:[344,5,1,""],class_from_module:[344,5,1,""],columnize:[344,5,1,""],crop:[344,5,1,""],datetime_format:[344,5,1,""],dbid_to_obj:[344,5,1,""],dbref:[344,5,1,""],dbref_to_obj:[344,5,1,""],dedent:[344,5,1,""],deepsize:[344,5,1,""],delay:[344,5,1,""],display_len:[344,5,1,""],fill:[344,5,1,""],format_grid:[344,5,1,""],format_table:[344,5,1,""],fuzzy_import_from_module:[344,5,1,""],get_all_typeclasses:[344,5,1,""],get_evennia_pids:[344,5,1,""],get_evennia_version:[344,5,1,""],get_game_dir_path:[344,5,1,""],has_parent:[344,5,1,""],host_os_is:[344,5,1,""],inherits_from:[344,5,1,""],init_new_account:[344,5,1,""],interactive:[344,5,1,""],is_iter:[344,5,1,""],iter_to_str:[344,5,1,""],iter_to_string:[344,5,1,""],justify:[344,5,1,""],latinify:[344,5,1,""],lazy_property:[344,1,1,""],list_to_string:[344,5,1,""],m_len:[344,5,1,""],make_iter:[344,5,1,""],mod_import:[344,5,1,""],mod_import_from_path:[344,5,1,""],object_from_module:[344,5,1,""],pad:[344,5,1,""],percent:[344,5,1,""],percentile:[344,5,1,""],pypath_to_realpath:[344,5,1,""],random_string_from_module:[344,5,1,""],run_async:[344,5,1,""],server_services:[344,5,1,""],string_from_module:[344,5,1,""],string_partial_matching:[344,5,1,""],string_similarity:[344,5,1,""],string_suggestions:[344,5,1,""],strip_control_sequences:[344,5,1,""],time_format:[344,5,1,""],to_bytes:[344,5,1,""],to_str:[344,5,1,""],uses_database:[344,5,1,""],validate_email_address:[344,5,1,""],variable_from_module:[344,5,1,""],wildcard_to_regexp:[344,5,1,""],wrap:[344,5,1,""]},"evennia.utils.utils.LimitedSizeOrderedDict":{__init__:[344,3,1,""],update:[344,3,1,""]},"evennia.utils.utils.lazy_property":{__init__:[344,3,1,""]},"evennia.utils.validatorfuncs":{"boolean":[345,5,1,""],color:[345,5,1,""],datetime:[345,5,1,""],duration:[345,5,1,""],email:[345,5,1,""],future:[345,5,1,""],lock:[345,5,1,""],positive_integer:[345,5,1,""],signed_integer:[345,5,1,""],text:[345,5,1,""],timezone:[345,5,1,""],unsigned_integer:[345,5,1,""]},"evennia.web":{urls:[347,0,0,"-"],utils:[348,0,0,"-"],webclient:[353,0,0,"-"],website:[356,0,0,"-"]},"evennia.web.utils":{backends:[349,0,0,"-"],general_context:[350,0,0,"-"],middleware:[351,0,0,"-"],tests:[352,0,0,"-"]},"evennia.web.utils.backends":{CaseInsensitiveModelBackend:[349,1,1,""]},"evennia.web.utils.backends.CaseInsensitiveModelBackend":{authenticate:[349,3,1,""]},"evennia.web.utils.general_context":{general_context:[350,5,1,""],set_game_name_and_slogan:[350,5,1,""],set_webclient_settings:[350,5,1,""]},"evennia.web.utils.middleware":{SharedLoginMiddleware:[351,1,1,""]},"evennia.web.utils.middleware.SharedLoginMiddleware":{__init__:[351,3,1,""],make_shared_login:[351,3,1,""]},"evennia.web.utils.tests":{TestGeneralContext:[352,1,1,""]},"evennia.web.utils.tests.TestGeneralContext":{maxDiff:[352,4,1,""],test_general_context:[352,3,1,""],test_set_game_name_and_slogan:[352,3,1,""],test_set_webclient_settings:[352,3,1,""]},"evennia.web.webclient":{urls:[354,0,0,"-"],views:[355,0,0,"-"]},"evennia.web.webclient.views":{webclient:[355,5,1,""]},"evennia.web.website":{forms:[357,0,0,"-"],templatetags:[358,0,0,"-"],tests:[360,0,0,"-"],urls:[361,0,0,"-"],views:[362,0,0,"-"]},"evennia.web.website.forms":{AccountForm:[357,1,1,""],CharacterForm:[357,1,1,""],CharacterUpdateForm:[357,1,1,""],EvenniaForm:[357,1,1,""],ObjectForm:[357,1,1,""]},"evennia.web.website.forms.AccountForm":{Meta:[357,1,1,""],base_fields:[357,4,1,""],declared_fields:[357,4,1,""],media:[357,3,1,""]},"evennia.web.website.forms.AccountForm.Meta":{field_classes:[357,4,1,""],fields:[357,4,1,""],model:[357,4,1,""]},"evennia.web.website.forms.CharacterForm":{Meta:[357,1,1,""],base_fields:[357,4,1,""],declared_fields:[357,4,1,""],media:[357,3,1,""]},"evennia.web.website.forms.CharacterForm.Meta":{fields:[357,4,1,""],labels:[357,4,1,""],model:[357,4,1,""]},"evennia.web.website.forms.CharacterUpdateForm":{base_fields:[357,4,1,""],declared_fields:[357,4,1,""],media:[357,3,1,""]},"evennia.web.website.forms.EvenniaForm":{base_fields:[357,4,1,""],clean:[357,3,1,""],declared_fields:[357,4,1,""],media:[357,3,1,""]},"evennia.web.website.forms.ObjectForm":{Meta:[357,1,1,""],base_fields:[357,4,1,""],declared_fields:[357,4,1,""],media:[357,3,1,""]},"evennia.web.website.forms.ObjectForm.Meta":{fields:[357,4,1,""],labels:[357,4,1,""],model:[357,4,1,""]},"evennia.web.website.templatetags":{addclass:[359,0,0,"-"]},"evennia.web.website.templatetags.addclass":{addclass:[359,5,1,""]},"evennia.web.website.tests":{AdminTest:[360,1,1,""],ChannelDetailTest:[360,1,1,""],ChannelListTest:[360,1,1,""],CharacterCreateView:[360,1,1,""],CharacterDeleteView:[360,1,1,""],CharacterListView:[360,1,1,""],CharacterManageView:[360,1,1,""],CharacterPuppetView:[360,1,1,""],CharacterUpdateView:[360,1,1,""],EvenniaWebTest:[360,1,1,""],IndexTest:[360,1,1,""],LoginTest:[360,1,1,""],LogoutTest:[360,1,1,""],PasswordResetTest:[360,1,1,""],RegisterTest:[360,1,1,""],WebclientTest:[360,1,1,""]},"evennia.web.website.tests.AdminTest":{unauthenticated_response:[360,4,1,""],url_name:[360,4,1,""]},"evennia.web.website.tests.ChannelDetailTest":{get_kwargs:[360,3,1,""],setUp:[360,3,1,""],url_name:[360,4,1,""]},"evennia.web.website.tests.ChannelListTest":{url_name:[360,4,1,""]},"evennia.web.website.tests.CharacterCreateView":{test_valid_access_multisession_0:[360,3,1,""],test_valid_access_multisession_2:[360,3,1,""],unauthenticated_response:[360,4,1,""],url_name:[360,4,1,""]},"evennia.web.website.tests.CharacterDeleteView":{get_kwargs:[360,3,1,""],test_invalid_access:[360,3,1,""],test_valid_access:[360,3,1,""],unauthenticated_response:[360,4,1,""],url_name:[360,4,1,""]},"evennia.web.website.tests.CharacterListView":{unauthenticated_response:[360,4,1,""],url_name:[360,4,1,""]},"evennia.web.website.tests.CharacterManageView":{unauthenticated_response:[360,4,1,""],url_name:[360,4,1,""]},"evennia.web.website.tests.CharacterPuppetView":{get_kwargs:[360,3,1,""],test_invalid_access:[360,3,1,""],unauthenticated_response:[360,4,1,""],url_name:[360,4,1,""]},"evennia.web.website.tests.CharacterUpdateView":{get_kwargs:[360,3,1,""],test_invalid_access:[360,3,1,""],test_valid_access:[360,3,1,""],unauthenticated_response:[360,4,1,""],url_name:[360,4,1,""]},"evennia.web.website.tests.EvenniaWebTest":{account_typeclass:[360,4,1,""],authenticated_response:[360,4,1,""],channel_typeclass:[360,4,1,""],character_typeclass:[360,4,1,""],exit_typeclass:[360,4,1,""],get_kwargs:[360,3,1,""],login:[360,3,1,""],object_typeclass:[360,4,1,""],room_typeclass:[360,4,1,""],script_typeclass:[360,4,1,""],setUp:[360,3,1,""],test_get:[360,3,1,""],test_get_authenticated:[360,3,1,""],test_valid_chars:[360,3,1,""],unauthenticated_response:[360,4,1,""],url_name:[360,4,1,""]},"evennia.web.website.tests.IndexTest":{url_name:[360,4,1,""]},"evennia.web.website.tests.LoginTest":{url_name:[360,4,1,""]},"evennia.web.website.tests.LogoutTest":{url_name:[360,4,1,""]},"evennia.web.website.tests.PasswordResetTest":{unauthenticated_response:[360,4,1,""],url_name:[360,4,1,""]},"evennia.web.website.tests.RegisterTest":{url_name:[360,4,1,""]},"evennia.web.website.tests.WebclientTest":{test_get:[360,3,1,""],test_get_disabled:[360,3,1,""],url_name:[360,4,1,""]},"evennia.web.website.views":{AccountCreateView:[362,1,1,""],AccountMixin:[362,1,1,""],ChannelDetailView:[362,1,1,""],ChannelListView:[362,1,1,""],ChannelMixin:[362,1,1,""],CharacterCreateView:[362,1,1,""],CharacterDeleteView:[362,1,1,""],CharacterDetailView:[362,1,1,""],CharacterListView:[362,1,1,""],CharacterManageView:[362,1,1,""],CharacterMixin:[362,1,1,""],CharacterPuppetView:[362,1,1,""],CharacterUpdateView:[362,1,1,""],EvenniaCreateView:[362,1,1,""],EvenniaDeleteView:[362,1,1,""],EvenniaDetailView:[362,1,1,""],EvenniaIndexView:[362,1,1,""],EvenniaUpdateView:[362,1,1,""],HelpDetailView:[362,1,1,""],HelpListView:[362,1,1,""],HelpMixin:[362,1,1,""],ObjectCreateView:[362,1,1,""],ObjectDeleteView:[362,1,1,""],ObjectDetailView:[362,1,1,""],ObjectUpdateView:[362,1,1,""],TypeclassMixin:[362,1,1,""],admin_wrapper:[362,5,1,""],evennia_admin:[362,5,1,""],to_be_implemented:[362,5,1,""]},"evennia.web.website.views.AccountCreateView":{form_valid:[362,3,1,""],success_url:[362,4,1,""],template_name:[362,4,1,""]},"evennia.web.website.views.AccountMixin":{form_class:[362,4,1,""],model:[362,4,1,""]},"evennia.web.website.views.ChannelDetailView":{attributes:[362,4,1,""],get_context_data:[362,3,1,""],get_object:[362,3,1,""],max_num_lines:[362,4,1,""],template_name:[362,4,1,""]},"evennia.web.website.views.ChannelListView":{get_context_data:[362,3,1,""],max_popular:[362,4,1,""],page_title:[362,4,1,""],paginate_by:[362,4,1,""],template_name:[362,4,1,""]},"evennia.web.website.views.ChannelMixin":{access_type:[362,4,1,""],get_queryset:[362,3,1,""],model:[362,4,1,""],page_title:[362,4,1,""]},"evennia.web.website.views.CharacterCreateView":{form_valid:[362,3,1,""],template_name:[362,4,1,""]},"evennia.web.website.views.CharacterDetailView":{access_type:[362,4,1,""],attributes:[362,4,1,""],get_queryset:[362,3,1,""],template_name:[362,4,1,""]},"evennia.web.website.views.CharacterListView":{access_type:[362,4,1,""],get_queryset:[362,3,1,""],page_title:[362,4,1,""],paginate_by:[362,4,1,""],template_name:[362,4,1,""]},"evennia.web.website.views.CharacterManageView":{page_title:[362,4,1,""],paginate_by:[362,4,1,""],template_name:[362,4,1,""]},"evennia.web.website.views.CharacterMixin":{form_class:[362,4,1,""],get_queryset:[362,3,1,""],model:[362,4,1,""],success_url:[362,4,1,""]},"evennia.web.website.views.CharacterPuppetView":{get_redirect_url:[362,3,1,""]},"evennia.web.website.views.CharacterUpdateView":{form_class:[362,4,1,""],template_name:[362,4,1,""]},"evennia.web.website.views.EvenniaCreateView":{page_title:[362,3,1,""]},"evennia.web.website.views.EvenniaDeleteView":{page_title:[362,3,1,""]},"evennia.web.website.views.EvenniaDetailView":{page_title:[362,3,1,""]},"evennia.web.website.views.EvenniaIndexView":{get_context_data:[362,3,1,""],template_name:[362,4,1,""]},"evennia.web.website.views.EvenniaUpdateView":{page_title:[362,3,1,""]},"evennia.web.website.views.HelpDetailView":{get_context_data:[362,3,1,""],get_object:[362,3,1,""],template_name:[362,4,1,""]},"evennia.web.website.views.HelpListView":{page_title:[362,4,1,""],paginate_by:[362,4,1,""],template_name:[362,4,1,""]},"evennia.web.website.views.HelpMixin":{get_queryset:[362,3,1,""],model:[362,4,1,""],page_title:[362,4,1,""]},"evennia.web.website.views.ObjectCreateView":{model:[362,4,1,""]},"evennia.web.website.views.ObjectDeleteView":{"delete":[362,3,1,""],access_type:[362,4,1,""],model:[362,4,1,""],template_name:[362,4,1,""]},"evennia.web.website.views.ObjectDetailView":{access_type:[362,4,1,""],attributes:[362,4,1,""],get_context_data:[362,3,1,""],get_object:[362,3,1,""],model:[362,4,1,""],template_name:[362,4,1,""]},"evennia.web.website.views.ObjectUpdateView":{access_type:[362,4,1,""],form_valid:[362,3,1,""],get_initial:[362,3,1,""],get_success_url:[362,3,1,""],model:[362,4,1,""]},"evennia.web.website.views.TypeclassMixin":{typeclass:[362,3,1,""]},evennia:{accounts:[143,0,0,"-"],commands:[149,0,0,"-"],comms:[172,0,0,"-"],contrib:[178,0,0,"-"],help:[236,0,0,"-"],locks:[240,0,0,"-"],objects:[243,0,0,"-"],prototypes:[248,0,0,"-"],scripts:[253,0,0,"-"],server:[262,0,0,"-"],set_trace:[141,5,1,""],settings_default:[313,0,0,"-"],typeclasses:[314,0,0,"-"],utils:[320,0,0,"-"],web:[346,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","exception","Python exception"],"3":["py","method","Python method"],"4":["py","attribute","Python attribute"],"5":["py","function","Python function"],"6":["py","data","Python data"]},objtypes:{"0":"py:module","1":"py:class","2":"py:exception","3":"py:method","4":"py:attribute","5":"py:function","6":"py:data"},terms:{"000":[0,25,46,82,114,343],"0000":[0,46],"0004":22,"001":[22,127,343],"002":343,"003":343,"004":343,"005":[114,321,343],"006":343,"007":343,"008":343,"009":343,"00sc":124,"010":[25,343],"011":343,"012":343,"013":343,"0131018167":79,"014":343,"015":343,"015public":25,"016":343,"017":343,"018":343,"019":343,"020":343,"020t":25,"021":343,"022":343,"023":343,"024":343,"0247":22,"025":343,"026":343,"027":343,"028":343,"029":343,"030":343,"030a":25,"031":343,"032":343,"033":[321,343],"034":[22,343],"035":343,"036":343,"037":343,"038":343,"039":343,"040":343,"040f":25,"041":343,"042":343,"043":343,"044":343,"045":343,"046":343,"047":343,"048":343,"049":343,"050":[321,343],"050f":25,"051":343,"052":343,"053":343,"054":[114,343],"055":[321,343],"056":343,"057":343,"058":343,"059":343,"060":343,"061":343,"062":343,"062022":363,"063":343,"064":343,"065":343,"066":343,"067":343,"068":343,"069":343,"070":343,"071":343,"072":343,"073":343,"074":343,"075":343,"076":343,"077":343,"078":343,"079":343,"080":343,"081":343,"082":343,"083":343,"084":343,"085":343,"086":343,"087":343,"088":343,"089":343,"090":343,"091":343,"092":343,"093":343,"094":343,"095":343,"096":343,"097":343,"098":343,"099":343,"0b16":24,"0d0":56,"0label":70,"0qoklqey5ebad1f0eyeqaylmcc8o":70,"0x045a0990":42,"0x852be2c":59,"100":[31,43,56,73,85,93,111,125,169,185,188,217,220,221,343,344,362],"1000":[56,93,100,116,217,218,219,220,221,251],"10000":362,"1000000":[82,93,337],"100m":343,"100mb":90,"100x100":70,"101":[31,247,343],"101m":343,"102":343,"102m":343,"103":343,"103m":343,"104":343,"104m":343,"105":343,"105m":343,"106":343,"106m":343,"107":343,"107m":343,"108":343,"108m":343,"109":343,"1098":125,"109m":343,"10m":67,"110":[321,329,343],"1106db5a5e1a":122,"110m":343,"111":[12,43,114,157,343],"111m":343,"112":343,"112m":343,"113":[90,343],"113m":343,"114":343,"114m":343,"115":343,"115600":56,"115m":343,"116":343,"116m":343,"117":343,"1172":138,"117m":343,"118":[115,343],"1184":23,"118m":343,"119":343,"119m":343,"11e7":101,"120":[31,343],"1200":327,"120m":343,"121":343,"121m":343,"122":343,"122m":343,"123":[131,134,247,343],"1234":[54,109,203],"123dark":81,"123m":343,"124":343,"12400":82,"124m":343,"125":343,"125m":343,"126":343,"126m":343,"127":[8,9,24,63,67,90,287,343],"127m":343,"128":343,"128m":343,"129":343,"129m":343,"12s":27,"130":343,"130m":343,"131":343,"131m":343,"132":343,"132m":343,"133":343,"133m":343,"134":[12,43,157,343],"134m":343,"135":343,"135m":343,"136":343,"136m":343,"137":343,"137m":343,"138":343,"138m":343,"139":343,"139m":343,"140":[25,42,141,343],"1400":327,"140313967648552":33,"140m":343,"141":[139,343],"141m":343,"142":[22,180,343],"1424724909023":70,"142m":343,"143":343,"143m":343,"144":343,"144m":343,"145":343,"145m":343,"146":343,"146m":343,"147":343,"147m":343,"148":343,"148m":343,"149":343,"149m":343,"150":343,"150m":343,"151":343,"151m":343,"152":343,"152m":343,"153":343,"153m":343,"154":343,"154m":343,"155":343,"155m":343,"156":[127,343],"156m":343,"157":343,"1577865600":62,"157m":343,"158":343,"158m":343,"159":343,"159m":343,"160":343,"160m":343,"161":343,"161m":343,"162":343,"162m":343,"163":343,"163m":343,"164":343,"164m":343,"165":343,"165m":343,"166":343,"166m":343,"167":343,"167m":343,"168":343,"168m":343,"169":343,"169m":343,"16m":343,"170":343,"170m":343,"171":343,"171m":343,"172":343,"172m":343,"173":343,"1730":79,"173m":343,"174":343,"174m":343,"175":343,"175m":343,"176":343,"1764":119,"176m":343,"177":343,"177m":343,"178":343,"178m":343,"179":343,"179m":343,"17m":343,"180":343,"180m":343,"181":343,"181m":343,"182":343,"182m":343,"183":343,"183m":343,"184":343,"184m":343,"185":343,"185m":343,"186":343,"186m":343,"187":343,"187m":343,"188":343,"188m":343,"189":343,"189m":343,"18m":343,"190":343,"1903":119,"190m":343,"191":343,"191m":343,"192":343,"192m":343,"193":343,"193m":343,"194":343,"194m":343,"195":343,"195m":343,"196":343,"196m":343,"197":343,"1970":62,"197m":343,"198":343,"198m":343,"199":343,"1996":79,"1998":79,"199m":343,"19m":343,"1_7":127,"1d100":[73,185],"1d2":56,"1d6":73,"1gb":90,"1st":62,"200":[343,360],"2001":79,"2003":79,"2004":79,"2008":344,"200m":343,"201":343,"2010":343,"2011":[124,181,214,232],"2012":[179,185,186,187],"2013":79,"2014":[21,213],"2015":[24,189,205,206],"2016":[99,199,200,201,202,212,214],"2017":[62,90,97,182,183,184,190,204,209,210,215,217,218,219,220,221,234,235],"2018":[9,180,188,198,203],"2019":[79,187,201],"201m":343,"202":343,"2020":[12,62,230,363],"2020_01_29":337,"2020_01_29__1":337,"2020_01_29__2":337,"202m":343,"203":[90,343],"203m":343,"204":343,"2048":67,"204m":343,"205":[327,343],"205m":343,"206":343,"206m":343,"207":343,"2076":119,"207m":343,"208":[91,343],"208m":343,"209":343,"209m":343,"20i":70,"20label":70,"20m":343,"210":343,"210m":343,"211":343,"211m":343,"212":[12,343],"2128":56,"212m":343,"213":343,"213m":343,"214":343,"214m":343,"215":343,"215m":343,"216":343,"216m":343,"217":343,"217m":343,"218":343,"218m":343,"219":[9,343],"219m":343,"21m":343,"220":343,"2207":204,"220m":343,"221":[322,343],"221m":343,"222":[114,321,343],"222m":343,"223":[12,343],"223m":343,"224":343,"224m":343,"225":[12,343],"225m":343,"226":343,"226m":343,"227":343,"227m":343,"228":343,"228m":343,"229":343,"22916c25":122,"229m":343,"22m":[321,343],"22nd":344,"230":[114,343],"230m":343,"231":343,"231m":343,"232":343,"232m":343,"233":[12,43,157,343],"233m":343,"234":[183,343],"234m":343,"235":343,"235m":343,"236":343,"236m":343,"237":[12,343],"237m":343,"238":343,"238m":343,"239":343,"239m":343,"23m":343,"240":343,"240m":343,"241":343,"241m":343,"242":343,"242m":343,"243":343,"243m":343,"244":343,"244m":343,"245":343,"245m":343,"246":343,"246m":343,"247":343,"247m":343,"248":343,"248m":343,"249":343,"249m":343,"24m":343,"250":343,"250m":343,"251":343,"251m":343,"252":343,"252m":343,"253":343,"253m":343,"254":343,"254m":343,"255":[24,321,343],"255fdonatecc":70,"255flg":70,"255fu":70,"255m":343,"256":[12,43,114,156,321],"25m":343,"26m":343,"27m":343,"280":71,"28comput":37,"28gmcp":291,"28m":343,"294267":101,"29m":343,"2d6":[58,185],"2gb":90,"2m1uhse7":133,"2pm6ywo":37,"300":[114,126,184,331],"3000000":82,"302":360,"30773728":101,"30m":[321,343],"31m":[321,343],"31st":62,"32bit":[24,63],"32m":[321,343],"32nd":58,"333":[12,114],"33333":59,"33m":[321,343],"340":56,"34m":[321,343],"358283996582031":93,"35m":[321,343],"360":62,"3600":62,"36m":[321,343],"37m":[321,343],"3872":119,"38m":343,"39m":343,"3abug":70,"3aissu":70,"3amast":70,"3aopen":70,"3c3ccec30f037be174d3":344,"3d6":185,"3rd":62,"4000":[9,36,63,67,75,90,95,100,101,103],"4001":[3,4,8,9,36,63,67,69,75,90,95,100,101,103,133,134,135,137,296],"4002":[8,36,67,90,100],"4003":90,"4004":90,"4005":90,"4006":90,"403":131,"404":69,"40m":[321,343],"41917":287,"41dd":122,"41m":[321,343],"4201":90,"425":321,"4280":55,"42m":[321,343],"430000":62,"431":321,"43m":[321,343],"443":[8,67,103],"444":114,"446ec839f567":122,"44m":[321,343],"45m":[27,321,343],"46d63c6d":122,"46m":[321,343],"474a3b9f":92,"47m":[321,343],"48m":343,"4993":94,"49be2168a6b8":101,"49m":343,"4er43233fwefwfw":9,"4th":[38,79],"500":[114,126,321,362],"50000":82,"500red":321,"502916":127,"503435":127,"505":321,"50m":343,"50mb":90,"5102":94,"516106":56,"51m":343,"520":114,"52m":343,"53d":122,"53m":343,"54m":343,"550":[321,327],"550n":25,"551e":25,"552w":25,"553b":25,"554i":25,"555":[114,204,321],"555e":25,"55m":343,"565000":62,"56m":343,"577349":343,"57kuswhxq":133,"57m":343,"5885d80a13c0db1f8e263663d3faee8d64ad11bbf4d2a5a1a0d303a50933f9":70,"5885d80a13c0db1f8e263663d3faee8d66f31424b43e9a70645c907a6cbd8fb4":37,"58m":343,"593":344,"59m":343,"5d5":56,"5x5":111,"600":[122,344],"60m":343,"614":138,"61m":343,"6299":122,"62cb3a1a":92,"62m":343,"6320":94,"63m":343,"64m":343,"6564":94,"65m":343,"6666":40,"6667":[43,72,79,146,164,308],"66m":343,"67m":343,"6833":94,"68m":343,"69m":343,"6d6":56,"70982813835144":93,"70m":343,"71m":343,"72m":343,"73m":343,"74m":343,"75m":343,"760000":62,"76m":343,"775":36,"77m":343,"78m":343,"7993":94,"7998":94,"79m":343,"7asq0rflw":122,"8080":90,"80m":343,"8111":36,"81m":343,"82m":343,"83m":343,"849":122,"84m":343,"85000":82,"85m":343,"86400":120,"86m":343,"87d6":122,"87m":343,"8820":101,"8859":[15,113],"88m":343,"89m":343,"8f64fec2670c":90,"900":[188,327],"9000":357,"90m":343,"90s":345,"91m":343,"92m":343,"93m":343,"94m":343,"95m":343,"96m":343,"97m":343,"981":204,"98m":343,"990":327,"99999":61,"99m":343,"9cdc":122,"\u6d4b\u8bd5":25,"abstract":[47,64,86,119,221,316,317,318,334,338,344],"boolean":[13,33,133,137,154,185,188,242,247,250,259,287,316,319,321,322,338,345],"break":[10,12,14,30,37,42,51,54,57,58,61,91,96,103,108,111,114,125,137,141,167,168,202,224,226,276,328,329,344],"byte":[15,27,94,113,269,276,278,287,295,344],"case":[1,6,8,10,11,12,13,14,15,21,22,25,27,28,29,31,33,34,37,38,40,41,42,43,44,46,49,51,55,58,59,60,61,62,64,69,74,79,80,81,82,83,86,88,89,91,95,96,100,102,103,105,107,108,109,110,111,113,114,116,119,120,121,123,125,127,128,131,133,137,144,146,151,153,156,159,165,167,168,174,175,176,179,180,182,185,187,188,196,204,206,211,233,238,239,241,242,247,251,256,258,272,276,280,284,298,305,308,316,317,318,319,321,323,334,341,344,349],"catch":[15,26,27,30,43,51,58,87,91,97,102,115,118,146,165,233,257,267,272,279,305,306,326,328,334,337,340,362],"char":[43,56,58,71,73,85,88,105,111,116,117,119,120,133,144,159,165,189,233,247,264,277,290,291,312,321,327,330],"class":[1,2,3,5,6,10,11,12,16,17,20,21,25,26,28,29,30,31,38,39,40,42,43,44,47,49,50,52,53,55,56,57,58,60,61,62,64,68,71,73,77,81,82,85,86,89,91,97,102,105,109,116,117,118,119,120,121,123,124,132,133,134,135,144,145,146,147,148,149,152,153,154,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,173,174,175,176,177,179,180,181,182,184,185,186,187,188,189,192,193,195,196,197,198,199,200,201,202,203,204,205,206,210,211,212,213,214,215,217,218,219,220,221,223,224,226,227,228,230,231,232,233,234,235,237,238,239,242,243,244,245,246,247,249,251,252,254,255,256,257,258,259,260,261,263,264,265,267,269,270,273,274,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,298,300,303,305,306,307,308,310,311,312,314,315,316,317,318,319,321,322,323,324,325,326,327,328,329,330,331,333,334,335,336,337,338,339,340,341,342,343,344,349,351,352,357,360,362],"const":234,"default":[0,1,2,3,4,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,27,29,31,32,33,34,35,36,38,39,40,41,42,45,46,47,49,50,51,53,56,57,58,59,62,63,64,65,66,67,68,69,71,72,75,76,77,81,82,83,85,86,87,88,89,90,91,93,95,96,97,100,101,102,103,104,105,106,107,109,111,112,113,114,116,117,118,119,121,123,124,125,126,127,128,129,131,133,134,135,136,138,139,140,141,142,144,145,146,148,149,150,151,152,153,154,175,177,179,180,181,182,183,184,185,186,187,188,189,190,193,195,196,197,199,200,202,203,205,206,209,210,212,213,214,215,217,218,219,220,221,224,231,233,234,235,236,238,239,240,242,247,251,252,256,257,259,261,265,267,269,271,272,273,277,289,290,291,296,298,299,305,306,307,308,312,313,316,317,318,319,321,323,324,326,328,329,330,333,334,336,337,338,339,340,341,344,345,349,357,362,364],"export":75,"final":[10,23,26,27,29,33,36,38,39,41,43,58,63,67,68,69,70,73,76,80,83,85,86,102,103,105,109,114,116,123,125,126,127,133,134,136,150,151,152,159,164,168,185,215,242,252,304,308,321,323,328,329,336],"float":[38,49,114,146,184,194,195,198,250,260,267,279,317,331,336,340,344],"function":[3,4,5,6,9,10,11,13,14,18,19,20,21,23,25,26,27,29,33,34,37,38,40,41,43,44,46,48,50,52,55,57,58,59,60,61,62,63,64,68,69,73,74,75,77,81,82,83,85,86,88,91,93,96,104,106,107,108,109,110,111,115,118,119,121,122,123,124,125,127,128,133,134,135,137,138,140,141,144,148,151,153,154,156,157,158,159,160,164,165,166,167,169,170,175,176,179,180,181,184,185,187,188,190,194,195,198,199,200,203,205,206,211,212,215,217,218,219,220,221,224,226,227,230,232,233,234,235,239,240,241,242,247,250,251,252,257,259,260,261,267,272,276,287,288,293,296,299,306,308,310,318,319,320,321,322,324,325,326,328,329,331,336,337,338,339,343,344,345,350,362],"g\u00e9n\u00e9ral":79,"goto":[85,230,328],"import":[0,2,3,4,5,6,9,10,11,13,14,15,16,19,20,21,22,25,27,28,29,30,31,33,39,40,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,68,69,71,72,73,74,76,77,80,81,82,83,84,85,86,89,90,91,93,94,96,97,102,103,104,105,106,107,110,111,112,113,114,115,116,117,118,119,120,121,123,125,126,127,132,133,134,135,136,137,138,140,141,153,159,169,174,179,180,181,182,183,184,185,187,188,198,199,200,202,204,205,206,212,213,215,217,218,219,220,221,227,232,233,235,238,242,251,252,261,267,271,279,280,301,305,308,309,316,318,322,323,326,327,328,329,330,341,342,344,362],"int":[11,25,31,39,49,51,56,58,74,85,91,114,123,125,134,144,146,151,152,154,176,179,182,184,185,188,190,192,194,195,198,200,206,215,217,218,219,220,221,234,247,252,258,259,260,261,264,265,267,271,272,276,277,278,279,281,285,286,287,295,296,298,308,310,312,316,317,321,324,326,327,328,329,330,331,334,336,337,341,344],"long":[9,10,15,20,22,23,25,26,27,29,33,37,38,40,43,44,46,49,51,52,55,58,60,62,64,68,71,72,73,78,79,80,81,85,86,87,90,105,108,111,113,115,118,121,125,126,127,129,131,133,135,138,139,156,159,164,179,186,195,203,213,220,227,234,276,281,296,321,322,329,330,344],"new":[0,2,5,9,11,12,13,14,16,19,20,21,22,23,24,25,26,27,29,31,33,34,35,36,37,38,39,40,41,43,44,45,49,50,51,54,55,57,61,62,63,64,65,67,68,70,71,72,73,75,76,77,78,79,80,81,82,83,84,85,88,89,90,91,92,93,94,95,96,98,100,101,104,105,106,107,108,109,111,112,116,117,118,121,122,123,124,128,129,131,132,134,135,136,137,138,139,144,145,146,152,153,154,156,157,159,164,167,168,170,171,173,174,175,180,181,182,186,187,188,192,195,197,199,200,201,202,203,204,205,206,212,213,215,217,218,219,220,221,231,232,233,235,239,242,244,246,247,249,251,252,254,256,259,260,261,264,267,276,277,278,279,285,286,287,292,299,307,308,312,316,317,318,319,321,322,324,327,328,329,330,334,336,337,338,360,362,363,364],"null":[8,86,315,336],"public":[25,34,41,43,58,65,67,72,90,93,100,103,131,134,164,247,312,330],"return":[3,4,6,10,11,15,20,21,22,25,27,28,29,30,33,36,38,39,40,41,42,43,44,48,49,50,52,58,60,62,64,68,69,71,73,74,76,77,80,81,82,83,85,89,91,93,95,96,97,100,102,103,107,108,109,110,111,112,114,116,117,118,119,121,123,125,127,129,133,134,137,138,144,145,146,148,150,151,152,153,154,156,159,164,166,169,170,174,175,176,177,179,180,182,184,185,187,188,190,192,193,194,195,197,198,199,200,203,204,205,206,210,211,212,215,217,218,219,220,221,223,230,231,232,233,234,235,237,238,239,241,242,244,246,247,249,250,251,252,257,258,259,261,264,265,267,272,273,276,277,279,280,281,282,284,285,286,287,288,290,291,292,294,295,296,298,299,305,306,308,310,311,312,315,316,317,318,319,321,322,323,324,325,326,328,329,330,331,334,336,337,338,339,340,341,343,344,345,350,357,362],"short":[20,22,29,38,39,42,46,51,54,57,58,61,62,70,71,83,87,89,95,96,103,110,112,114,123,129,137,140,180,182,195,202,205,206,227,234,252,322,344],"static":[38,49,58,83,94,124,127,135,136,137,139,166,180,192,206,214,312,324,355,362,364],"super":[5,22,25,31,40,41,49,57,58,60,62,81,89,96,118,121,123,125,180,182,206],"switch":[0,2,9,10,13,14,16,19,20,23,25,31,33,34,43,46,50,58,65,68,72,76,80,81,82,88,90,98,114,116,121,122,123,125,126,129,131,137,138,156,157,158,159,164,165,166,167,168,169,174,175,185,187,199,200,202,203,218,256,318,324,329,345],"th\u00ed":20,"throw":[11,22,43,66,75,109,131,133,153,166,344],"true":[1,2,4,5,10,11,13,20,21,22,25,26,27,29,31,33,34,38,40,41,49,50,51,54,56,58,62,65,66,68,69,72,74,76,80,81,83,84,85,86,87,90,91,96,98,100,102,105,114,115,116,117,120,121,122,123,125,126,127,133,135,137,138,144,148,150,152,153,154,156,159,164,166,167,170,173,174,175,176,177,179,180,182,183,184,185,188,190,192,195,197,200,203,204,205,206,212,215,217,218,219,220,221,224,226,230,231,235,237,241,242,244,246,247,249,251,252,254,256,257,258,259,260,261,263,265,267,272,273,276,278,285,290,295,296,306,308,310,312,315,316,317,318,321,324,326,328,329,330,331,334,336,339,340,341,344,345],"try":[0,4,5,6,8,9,10,11,12,13,15,16,20,21,22,23,25,26,27,29,30,38,39,42,43,44,46,48,49,50,51,54,55,56,57,58,60,61,63,64,65,66,67,68,69,73,74,75,77,80,81,86,90,91,93,95,96,97,102,103,108,109,110,111,113,118,119,120,121,123,124,126,127,133,134,135,136,137,138,140,144,148,152,154,159,175,177,179,180,186,196,204,205,206,212,213,217,218,219,220,221,224,227,231,232,233,235,239,247,251,259,264,267,276,291,292,296,310,315,316,318,321,323,324,326,327,340,344],"var":[67,83,88,137,200,209,291,322],"void":56,"while":[0,9,10,11,13,14,20,22,23,25,28,29,31,33,35,37,38,41,43,49,50,51,55,56,57,58,62,63,70,75,83,86,90,91,93,95,96,103,108,109,110,111,114,116,118,119,121,122,124,127,129,133,134,136,137,138,144,156,159,167,175,179,188,196,197,203,204,218,221,224,227,231,233,235,247,252,259,291,314,315,318,328,330,344,345,362,363],AIs:79,AND:[43,73,80,119,159,188,242,316],ARE:77,AWS:[90,100],Adding:[18,32,33,45,57,60,71,82,85,108,116,124,139,187,328,364],Age:[188,357],And:[0,4,9,10,11,21,22,25,26,29,33,36,41,42,46,51,57,61,62,69,73,80,86,91,96,105,111,126,133,138,153,182,215,217,218,219,220,221,364],Are:[33,61,79,82],Aye:46,BGs:126,Being:[58,81,122,123],But:[0,6,10,11,13,15,20,21,22,25,26,27,28,29,31,33,37,38,39,41,42,44,51,54,55,57,59,60,61,62,64,69,72,73,80,82,83,85,86,91,95,96,100,102,104,107,109,111,114,119,125,126,127,133,134,138,152,153,179,227,319,362],DNS:[67,90],DOING:188,DoS:285,Doing:[29,33,43,55,73,134,153,156],For:[0,2,5,6,8,9,12,13,14,16,17,19,20,21,22,23,25,27,29,31,33,36,37,38,39,41,42,43,46,49,51,55,56,57,58,59,62,63,64,69,72,73,76,79,80,81,83,85,86,88,90,91,93,95,96,98,100,102,103,105,109,110,111,113,114,116,121,123,126,127,129,131,132,133,134,135,136,138,139,140,152,153,159,169,174,175,176,177,180,182,185,187,188,189,197,198,200,206,212,214,215,218,231,239,242,252,287,296,316,318,321,325,328,338,340,344,357,362,364],GMs:58,Going:234,Has:[24,217,218,219,220,221],His:[57,189],IDE:[38,48,106],IDEs:57,IDs:[0,100,133,134,194,316,344],INTO:[43,159,188],IOS:24,IPs:[12,103,209,310],IRE:[88,291],Its:[41,62,69,80,83,86,89,105,189,252,326,328,344],LTS:97,NOT:[11,25,33,43,80,90,103,119,137,159,242,252,259,310,364],Not:[8,24,30,41,54,57,61,74,90,108,112,115,127,131,132,133,137,146,153,167,168,247,264,277,278,279,281,282,283,289,291,294,316,317,338],OBS:[19,43],ONE:103,Obs:127,One:[0,8,12,20,22,25,29,34,36,38,46,49,51,57,58,60,63,64,69,76,79,80,87,91,94,95,102,105,110,115,117,121,123,126,128,130,131,132,138,141,148,150,179,185,205,215,231,232,251,252,277,305,315,316,317,321,322,329,344],PRs:131,Such:[6,13,28,33,37,43,48,51,57,64,73,127,159,252,321,328],THAT:91,THE:[188,227],THEN:[153,188],THERE:188,TLS:103,That:[0,3,4,9,10,15,21,22,25,26,31,33,39,41,42,46,49,55,57,62,64,68,69,73,74,77,91,93,95,96,98,102,105,111,112,115,119,122,125,127,131,134,136,138,140,179,180,186,215,242,252,308,328],The:[0,2,4,5,6,7,8,9,12,15,17,20,21,23,24,25,27,28,30,31,33,34,36,37,38,39,40,42,43,44,45,48,52,53,54,55,56,57,59,60,61,62,63,64,66,67,68,70,72,73,74,75,76,78,79,80,81,82,84,86,87,88,89,90,91,92,94,95,97,98,100,101,102,103,104,105,106,107,108,110,111,112,113,114,115,118,119,120,121,122,124,125,126,127,128,129,131,132,133,134,136,137,138,139,140,144,146,147,148,150,151,152,153,154,156,159,163,164,165,166,167,168,169,170,171,173,174,175,176,177,179,180,182,184,185,186,187,188,189,190,192,193,194,195,197,198,199,200,203,204,205,206,212,213,215,217,218,219,220,221,223,224,226,227,230,231,232,233,234,235,236,238,239,241,242,246,247,249,250,251,252,255,256,257,258,259,261,264,265,266,267,269,271,272,274,276,277,278,279,280,281,282,283,284,285,286,287,289,290,291,292,294,295,296,298,299,304,305,306,307,308,312,315,316,317,318,319,321,322,323,324,325,326,327,328,329,330,331,332,334,336,337,338,339,340,341,342,344,345,357,362,363,364],Their:[51,73,103,109,114,124,189],Theirs:189,Then:[0,9,15,22,38,39,41,42,46,56,61,63,69,91,93,100,107,127,131,137,187],There:[0,5,8,10,11,13,14,15,19,20,21,22,23,25,26,27,31,33,34,38,41,46,49,51,55,57,58,60,61,62,64,68,69,72,73,77,79,80,81,85,86,88,89,90,91,93,95,96,97,98,102,103,104,105,107,108,111,112,113,114,116,117,118,119,121,123,125,127,128,133,136,138,139,167,187,188,215,217,218,219,220,221,235,252,261,272,291,308,321,322,328,336,363],These:[0,4,5,9,11,13,17,22,25,33,34,35,38,39,40,43,47,49,51,59,61,65,68,69,73,74,83,86,88,90,91,95,96,100,102,103,105,107,109,110,111,112,114,119,121,122,124,125,127,131,133,137,138,139,143,144,145,150,152,154,156,158,160,168,176,180,184,198,199,203,205,206,210,227,233,238,242,247,251,252,261,266,273,292,295,296,298,307,308,309,316,318,321,325,328,329,330,337,338,339,344],USE:[241,364],Use:[1,2,4,5,8,9,12,13,14,20,22,23,24,25,31,38,43,48,51,54,58,60,63,65,69,70,89,90,93,95,96,100,105,109,114,116,122,123,125,127,131,137,144,151,156,157,159,164,165,169,171,179,180,184,186,197,199,200,202,203,204,206,218,219,220,221,226,234,244,246,247,269,273,278,295,296,298,299,302,316,318,321,327,328,330,334,341,344],Used:[33,43,121,139,150,153,159,175,188,202,215,235,246,259,269,287,316,318,329,330,350],Useful:[12,51,90],Uses:[114,159,171,186,209,231,267,316,330,334],Using:[18,22,27,43,46,51,55,58,60,62,68,80,91,96,115,121,123,139,159,206,218,234,247,287,314,328,364],VCS:36,VHS:188,VPS:90,WILL:[24,91,259],WIS:58,WITH:[23,188],Will:[31,38,74,110,114,144,184,204,206,247,250,252,265,267,276,277,318,328,330,331,336,339,344],With:[8,11,15,19,23,55,57,77,87,100,111,114,122,123,141,144,180,206,247,252,321],Yes:[33,138,188,326],__1:337,__2:337,_________________:125,_________________________:51,______________________________:51,________________________________:51,_________________________________:125,______________________________________:328,______________________________________________:51,_______________________________________________:51,____________________________________________________:51,_________________________________________________________:85,__________________________________________________________:85,__all__:[145,237,244],__defaultclasspath__:318,__doc__:[33,43,59,68,154,167,169,170,239,324,328],__example__:97,__ge__:97,__getitem__:321,__init_:330,__init__:[3,6,11,40,47,49,53,96,97,107,125,152,153,154,174,177,179,180,192,204,206,226,234,242,246,247,251,257,258,260,261,264,265,267,269,270,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,294,295,296,298,305,306,308,310,311,312,315,316,318,319,321,323,326,327,328,329,330,336,337,338,339,340,344,351],__iter__:11,__multimatch_command:168,__noinput_command:[152,168,180,326,328,329],__nomatch_command:[168,180,233,326,328],__send_to_channel_command:168,__settingsclasspath__:318,__unloggedin_look_command:[171,186,201],_action_thre:51,_action_two:51,_all_:152,_asynctest:293,_attrs_to_sync:307,_attrtyp:316,_cach:318,_cached_cmdset:153,_call_or_get:180,_callback:[27,261],_char_index:321,_character_dbref:181,_check_password:51,_check_usernam:51,_clean_str:321,_cleanup_charact:116,_code_index:321,_copi:[43,159,247],_creation:125,_data:329,_default:[51,328],_defend:51,_differ:321,_errorcmdset:153,_event:198,_evmenu:328,_famili:119,_file:337,_flag:251,_footer:33,_format_diff_text_and_opt:252,_get_a_random_goblin_nam:109,_get_db_hold:[306,318],_get_top:69,_getinput:328,_gettabl:272,_http11clientfactori:269,_init_charact:116,_is_fight:29,_is_in_mage_guild:51,_ital:38,_italic_:54,_loadfunc:326,_menutre:[25,51,328],_monitor:272,_monitor_callback:84,_nicklist_cal:146,_npage:329,_oob_at_:334,_option:51,_page_formatt:329,_pagin:329,_pending_request:312,_permission_hierarchi:241,_ping_cal:146,_playable_charact:[69,133],_postsav:334,_prefix:206,_quell:241,_quitfunc:326,_raw_str:321,_reactor_stop:[284,305],_recog_obj2recog:206,_recog_obj2regex:206,_recog_ref2recog:206,_regex:206,_repeat:272,_safe_contents_upd:246,_savefunc:326,_saver:[11,325],_saverdict:[11,325],_saverlist:[11,325],_saverset:325,_sdesc:206,_select:51,_sensitive_:349,_session:328,_set:119,_set_attribut:51,_set_nam:51,_some_other_monitor_callback:84,_start_delai:261,_static:38,_stop_serv:284,_templat:38,_test:150,_to_evt:329,_validate_fieldnam:58,a076:101,a221:122,a2enmod:8,a8oc3d5b:100,a_off:179,a_python_func:38,aaaaaaa:133,aaaaaaaaezc:133,aaaaaaaaezg:133,aaaaaaaaezi:133,aardwolf:88,abbrevi:[43,76,114,159,202,336],abcd:[43,165],abi:60,abid:126,abil:[6,10,20,31,33,52,55,56,57,58,60,73,77,80,90,100,102,108,109,123,127,134,137,138,139,205,206,213,217,218,219,220,221,247,259,267,316],abl:[0,3,4,5,8,11,13,14,19,20,21,22,23,26,27,28,29,31,33,36,41,42,43,47,49,51,52,55,57,58,59,60,61,63,64,69,71,73,75,76,81,83,85,86,87,89,90,91,93,95,96,100,103,104,106,109,111,112,114,116,121,122,123,130,131,133,134,138,140,153,156,157,159,160,174,177,180,184,190,199,206,212,217,218,219,220,221,227,259,316,318,325,340,344,360],abod:241,abort:[25,27,33,51,52,77,89,122,144,154,159,175,197,213,233,247,250,328,329],about:[0,3,9,10,11,12,13,14,15,16,17,20,21,22,23,24,25,26,30,31,33,36,37,38,39,41,42,44,45,46,48,51,54,55,57,59,60,61,63,64,68,69,70,71,73,75,76,77,78,79,81,83,85,86,90,91,93,94,95,96,97,100,101,103,104,108,109,110,112,113,114,116,118,119,120,123,124,126,127,131,134,135,136,138,139,144,159,169,174,179,180,182,185,214,219,220,221,226,227,232,233,239,247,267,269,272,281,283,285,294,296,306,308,315,317,319,321,329,334,336,344,363],abov:[2,4,8,9,10,11,12,13,14,21,23,24,27,28,29,30,31,33,36,37,40,43,44,46,49,50,51,56,57,58,59,60,62,63,64,67,68,69,74,80,81,84,85,86,90,91,93,95,96,100,102,105,106,109,110,111,112,114,116,118,119,121,123,125,127,131,132,133,135,137,138,140,152,153,159,180,185,188,190,199,200,204,206,213,214,215,217,219,220,221,242,247,272,315,328,339,350],abridg:41,absolut:[27,38,56,62,79,91,134,182,184,185,189,327,331,344],absorb:74,abspath:344,abstractus:148,abus:[7,103],academi:79,accept:[11,14,22,23,27,31,37,43,51,54,58,59,74,80,88,90,95,96,109,114,115,125,131,133,134,138,144,150,151,169,179,185,188,193,196,204,205,206,213,231,233,241,247,267,272,285,311,312,317,322,328,336,340,344],accept_callback:[193,195],accesing_obj:241,access:[0,4,7,8,11,12,13,14,19,21,22,23,25,27,29,31,33,34,38,39,40,41,47,49,51,52,53,56,57,58,59,60,63,64,66,68,69,71,73,74,80,83,84,85,86,87,89,90,91,95,96,100,101,102,103,104,105,107,108,109,111,112,114,116,119,121,123,124,125,126,127,128,131,133,134,135,137,139,144,145,148,152,153,154,156,157,159,164,165,166,167,168,169,174,175,176,177,180,187,190,192,194,203,205,206,217,218,219,220,221,233,234,239,240,241,242,246,247,250,251,252,256,258,260,261,264,267,276,277,306,308,314,315,316,318,319,322,323,324,337,343,344,357,362],access_obj:[241,316],access_opt:345,access_token_kei:[71,120],access_token_secret:[71,120],access_typ:[43,68,144,154,159,175,177,239,241,242,247,316,318,362],accessed_obj:[25,80,121,241,242],accessing_obj:[1,11,25,80,121,144,175,177,239,241,242,247,316,318],accessing_object:[11,241],accessor:[148,177,239,246,256,316,318,319,335],accessori:63,accident:[15,31,38,43,123,138,157,159,306],accommod:4,accomod:[101,330],accompani:123,accomplish:[12,25,41,49,55],accord:[31,33,111,116,126,180,182,200,204,205,218,260,321,322],accordingli:[49,58,90,106,175,234],account1:360,account2:360,account:[0,4,6,9,11,12,14,17,19,20,21,22,24,25,27,31,33,34,35,37,41,45,47,49,50,51,52,53,55,56,57,61,62,65,66,69,71,74,80,81,83,87,89,90,91,92,96,100,104,105,107,108,109,110,111,112,114,119,120,122,123,125,126,127,129,131,133,134,135,138,139,141,142,149,150,151,152,153,154,155,157,159,160,161,164,165,166,167,171,174,175,176,177,180,181,182,184,186,187,188,190,192,193,195,197,199,200,201,206,209,212,217,219,220,221,224,227,230,231,232,233,235,239,241,242,246,247,249,251,253,256,267,271,272,287,298,299,306,307,308,316,318,321,324,328,329,338,339,341,342,344,345,349,357,360,362,364],account_cal:[156,164,167,199],account_count:308,account_id:[133,247],account_mod:159,account_nam:56,account_search:[206,247],account_subscription_set:148,account_typeclass:[342,360],accountattributeinlin:145,accountcmdset:[2,22,31,41,43,57,58,62,156,160,164,181,199],accountcreateview:362,accountdb:[53,119,125,133,141,144,145,148,175,239,314,315,318,338,345],accountdb_db_attribut:145,accountdb_db_tag:145,accountdb_set:[316,319],accountdbadmin:145,accountdbchangeform:145,accountdbcreationform:145,accountdbmanag:[147,148],accountdbpasswordcheck:287,accountform:[145,357,362],accountid:133,accountinlin:145,accountlist:58,accountmanag:[144,147],accountmixin:362,accountnam:[43,58,159,171,176,186,324],accounttaginlin:145,accru:144,accur:[22,154,177,192,218,221,252,260,265,267,269,270,278,287,288,290,292,295,296,316,321,336,339,340,351],accuraci:[46,91,218,219,220],accus:73,accustom:[87,124],acept:188,achiev:[0,22,27,33,57,114,124,126,138,220,267],ack:52,acquaint:57,acquir:323,across:[16,20,40,51,56,61,86,91,102,105,108,109,125,144,152,153,182,188,205,233,238,247,250,259,261,264,276,277,291,308,329,330],act:[2,8,13,23,29,31,34,37,43,49,51,56,58,61,70,77,95,102,105,110,111,123,139,141,159,177,188,215,241,264,276,277,296,316,319,323,328],action1:116,action2:116,action:[0,11,22,29,39,41,42,43,46,51,55,57,61,62,64,73,88,90,91,93,102,114,116,117,118,123,133,138,145,146,165,175,179,188,206,217,218,219,220,221,230,234,238,239,250,251,256,257,279,298,299,300,310,318,328,329,334],action_count:116,action_nam:[217,218,219,220,221],actiondict:116,actions_per_turn:[217,218,220,221],activ:[4,9,12,13,26,27,28,31,33,36,38,43,61,62,63,64,65,66,72,75,76,79,80,81,83,89,90,93,95,98,102,105,110,114,128,131,135,136,138,144,150,153,157,159,169,174,175,193,201,210,227,231,235,246,247,250,259,272,279,280,281,282,283,287,289,290,291,298,308,310,316,317,328,329,330,336,344],activest:343,actor:221,actual:[2,5,8,10,11,13,14,19,20,21,22,26,27,29,34,36,38,40,41,42,43,44,46,47,49,51,58,59,60,61,63,64,68,69,71,73,79,80,81,83,85,86,87,88,89,90,91,93,95,96,97,100,104,105,106,109,111,112,113,114,115,116,119,121,123,126,127,128,130,133,134,136,137,138,144,150,154,156,159,165,167,168,170,175,177,179,180,182,187,188,197,198,202,203,205,206,213,214,215,217,218,219,220,221,227,232,233,235,239,241,242,246,247,251,252,287,290,296,298,304,306,307,308,312,313,316,318,321,323,324,326,328,334,338,339,340,344,362],actual_return:127,adapt:[0,4,21,40,69,73,133],add:[0,2,5,6,8,9,10,11,13,14,15,16,17,19,20,21,22,24,26,29,30,31,33,34,35,36,37,38,39,40,41,42,43,44,46,47,48,49,50,51,54,55,57,58,61,62,64,65,66,67,68,69,71,73,74,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,93,94,95,96,98,100,102,104,105,106,109,111,112,113,114,115,116,117,118,119,120,121,123,124,125,127,128,131,132,133,134,135,137,138,139,140,141,144,148,152,153,159,164,165,166,168,174,175,179,180,181,182,183,185,186,187,192,193,195,196,197,198,199,200,201,202,203,205,206,209,212,213,215,217,218,219,220,221,223,224,226,227,230,231,232,233,234,241,242,246,247,250,252,256,257,258,260,261,267,272,273,277,280,281,283,285,289,296,298,299,301,309,316,319,322,326,327,328,329,330,334,336,337,339,340,362,364],add_:330,add_act:116,add_argu:234,add_callback:[193,195],add_channel:174,add_charact:116,add_choic:180,add_choice_:180,add_choice_edit:[22,180],add_choice_quit:[22,180],add_collumn:154,add_column:[58,330],add_condit:219,add_default:[21,31,85,96,121,153,224],add_dist:221,add_ev:195,add_fieldset:[145,244],add_form:[145,244],add_head:330,add_languag:205,add_row:[58,82,154,330],add_view:[145,173,244],add_xp:73,addblindedcmdset:227,addcallback:[33,247],addclass:[137,141,142,346,356,358],addcom:[58,164],added:[0,4,5,17,21,22,24,25,27,31,33,34,36,38,40,41,42,43,51,55,57,58,60,65,69,70,73,75,77,78,80,86,88,91,96,100,102,106,108,109,110,111,112,114,116,117,119,121,123,128,131,132,133,138,144,150,152,153,154,164,168,169,179,180,182,183,185,189,192,195,198,205,206,217,218,219,220,221,224,235,242,247,252,258,272,306,310,316,319,322,328,329,330,336,337,344,350],addendum:37,adding:[0,3,5,9,14,17,21,22,25,27,29,31,35,36,38,40,43,46,51,57,58,62,69,76,80,81,85,86,91,97,102,104,106,108,109,112,114,115,116,121,123,125,126,128,131,133,137,138,139,152,153,157,159,166,180,184,188,190,192,195,199,205,206,215,217,218,219,220,227,233,234,250,251,252,258,267,298,315,316,324,330,344],addingservermxp:282,addit:[4,8,22,25,31,36,37,46,49,50,51,58,62,69,76,82,88,90,91,103,104,109,114,119,134,144,146,153,154,175,180,183,192,193,195,197,200,205,209,215,221,234,242,247,260,278,306,316,318,328,357],addition:[25,111,119,221],additionalcmdset:31,addpart:203,addquot:344,addr:[264,277,278,279,324],address:[3,9,12,23,33,40,43,49,67,87,90,91,103,105,131,135,144,157,175,186,189,247,264,277,279,287,307,310,344,345,363],address_and_port:287,addresult:203,addscript:[43,159],addservic:40,adjac:[200,221,231],adject:97,adjoin:206,adjust:[0,33,37,63,126,133,190,328,330],admin:[2,9,11,12,15,19,21,33,34,41,49,58,61,68,69,72,80,85,86,98,101,110,119,121,123,133,134,138,141,142,143,148,149,155,159,164,166,169,171,172,175,186,231,236,239,242,243,246,247,253,262,276,277,314,318,324,340,362,363],admin_sit:[145,173,237,244,254,263,315],admin_wrapp:362,administr:[10,23,33,36,41,55,58,63,64,68,80,103,129,139,264,276,277,364],adminportal2serv:276,adminserver2port:276,adminstr:264,admintest:360,admit:39,adopt:[21,22,26,57,64,177,291],advanc:[10,12,13,22,28,31,33,39,40,43,44,51,55,58,64,79,86,93,104,105,108,109,111,119,123,124,125,139,159,167,187,200,204,206,217,218,219,220,221,226,282,322,326,327,328,330,364],advantag:[3,14,15,28,36,39,46,51,55,56,58,59,62,68,69,73,90,103,104,109,116,118,123,133,179,180,209,215,217,218,219,220,221,319,322],advent:181,adventur:[20,41,77,111,122,124],advic:79,advis:[0,22,25,77],aeioui:119,aesthet:50,aezo:133,affair:323,affect:[11,13,14,19,25,31,33,43,61,62,73,80,81,105,112,114,116,126,127,128,131,138,141,142,144,152,169,183,198,205,212,219,240,247,251,318,322,330,338],afford:[85,105],afraid:90,after:[0,5,8,9,10,11,14,15,20,21,22,25,27,28,29,30,31,33,36,38,39,41,43,44,46,49,50,51,55,58,60,63,67,68,76,77,79,80,83,85,86,90,91,96,100,102,103,107,114,116,117,121,122,123,126,127,128,130,131,133,136,138,139,144,152,153,154,155,156,159,167,169,170,174,175,179,180,182,184,185,186,187,188,190,195,197,203,205,206,215,217,218,219,220,221,227,228,231,232,233,234,235,246,247,250,252,257,259,267,289,290,293,305,306,307,308,310,312,316,321,322,323,326,328,329,334,336,339,342,343,344,362],after_mov:247,afternoon:187,afterthought:48,afterward:[20,29,69,86,91,119,131,180],again:[0,6,12,13,14,20,21,22,23,28,29,33,39,41,42,43,47,48,49,51,54,56,57,58,60,61,62,63,64,67,69,73,76,80,81,85,86,90,91,93,95,96,98,100,102,105,106,110,111,114,116,119,121,123,126,128,131,133,138,146,153,164,184,195,204,217,220,221,226,227,235,259,267,284,287,290,310,321,322,325,340,342],against:[6,11,21,31,33,37,57,58,83,90,103,116,119,125,127,144,151,152,174,206,217,218,219,220,221,242,247,251,252,285,310,316,318,336,341,344],age:[188,234,357],agenc:103,agent:36,agenta:[114,321],ages:188,aggreg:79,aggress:[11,14,75,122,124,139,231,318,364],aggressive_pac:231,agi:[11,60,127],agil:[11,60],agnost:[37,64,175],ago:[25,100,344],agre:[1,73,113,179],agree:179,ahead:[14,22,24,36,49,61,90,108,121,289],aid:[113,166,167,168,179,312],aim:[7,55,58,61,73,85,86,90,95,108,126,176,251],ain:46,ainnev:[73,119],air:[20,21,111],ajax:[40,55,90,137,296,307],ajaxwebcli:296,ajaxwebclientsess:296,aka:[9,11,93,203,344],alarm:[20,82],alert:[197,247],alexandrian:79,algebra:49,algorith:205,algorithm:344,alia:[2,6,9,20,21,22,31,33,41,44,48,51,57,58,59,60,63,87,89,90,95,105,111,112,119,125,127,129,131,145,148,151,154,156,159,164,165,166,167,168,170,173,174,187,192,206,212,228,231,233,235,237,241,244,246,247,250,252,254,256,261,272,298,315,317,318,319,324,340,341,342,357,362],alias1:[43,159,187],alias2:[43,159,187],alias3:187,alias:[2,13,20,21,22,25,27,29,31,33,34,41,43,44,45,48,51,58,60,74,81,82,85,87,89,109,111,116,119,123,129,131,140,144,152,154,156,157,158,159,164,165,166,167,168,169,170,171,174,175,176,179,180,181,182,185,186,187,188,189,193,199,200,201,202,203,206,212,213,214,215,217,218,219,220,221,224,231,232,233,234,235,238,239,246,247,252,317,318,319,324,326,328,329,337,341],aliaschan:[43,164],aliasdb:144,aliashandl:[315,319],aliasnam:252,aliasstr:324,align:[41,58,109,114,190,321,330,336,344],alik:68,alist:97,aliv:[55,231],alkarouri:343,all:[0,1,2,3,5,6,8,9,10,11,12,13,14,15,16,17,19,20,21,22,23,26,27,28,29,30,31,33,34,35,36,37,38,39,40,41,43,44,46,47,48,49,50,53,54,55,56,57,58,59,60,61,62,63,64,68,70,72,73,74,75,76,77,78,79,80,81,82,83,85,86,87,88,89,90,91,93,94,95,96,97,98,100,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,121,122,123,124,125,126,127,128,129,131,132,133,134,135,136,137,138,139,140,144,145,146,149,150,151,152,153,154,155,156,157,158,159,160,161,164,165,166,167,168,169,170,171,174,175,176,177,179,180,181,182,185,186,187,188,189,192,195,197,199,201,202,203,204,205,206,210,212,213,214,215,217,218,219,220,221,224,226,227,230,231,232,233,234,235,237,238,239,240,241,242,243,244,246,247,251,252,257,258,259,261,262,266,267,271,272,273,276,278,279,281,283,284,285,286,287,290,291,294,295,296,298,299,305,306,307,308,310,312,313,314,315,316,317,318,319,321,322,323,324,325,326,327,328,329,330,334,336,337,339,341,343,344,345,350,357,362,363],all_alias:112,all_attr:318,all_connected_account:308,all_displai:261,all_famili:119,all_from_modul:344,all_opt:339,all_receiv:247,all_room:13,all_script:102,all_sessions_portal_sync:308,all_to_categori:238,allcom:164,allerror:[267,276],allevi:[11,108,127,312],allheadersreceiv:312,alli:221,alloc:90,allow:[0,2,3,4,6,8,9,10,11,12,13,14,15,16,19,21,22,23,25,26,27,29,30,31,33,34,36,38,39,41,42,43,44,46,47,49,51,53,54,55,57,58,59,61,63,64,65,68,71,72,73,74,75,76,78,80,81,85,86,87,89,90,91,92,95,96,97,98,100,101,102,103,104,106,108,109,111,112,113,114,116,119,121,123,125,126,129,131,133,134,135,137,138,144,146,148,150,152,153,154,156,157,158,159,164,167,168,169,170,175,176,177,179,180,182,184,185,187,188,189,195,197,200,202,204,205,206,215,217,218,219,220,221,231,232,233,234,235,239,241,242,247,250,251,252,257,259,260,261,267,271,272,274,278,280,281,282,283,290,291,292,294,299,305,306,308,310,311,316,318,319,321,322,324,326,328,329,330,331,334,338,339,340,342,344,357,362],allow_dupl:152,allow_nan:296,allow_quit:328,allowed_attr:58,allowed_fieldnam:58,allowed_host:90,allowed_propnam:123,allowedmethod:296,allowext:312,almost:[19,33,41,95,115,119,125,180,182,269,276,314],alon:[13,29,49,51,56,58,73,80,86,87,116,127,138,152,261,272,298,322,324,330],alone_suffix:303,along:[5,12,33,43,48,51,60,64,70,74,78,88,91,93,96,100,104,107,114,121,122,139,144,156,179,185,205,209,215,220,242,247,296,314],alongsid:[5,38,67,188],alonw:256,alpha:[54,90,321],alphabet:[15,111,113,321],alreadi:[0,2,5,6,9,11,13,15,21,22,25,27,29,31,33,34,38,40,41,43,46,49,50,51,54,56,57,58,60,61,63,64,68,69,70,72,73,77,80,81,82,85,88,89,91,94,95,96,100,102,103,105,106,109,110,112,116,117,118,119,120,121,123,125,127,128,131,133,134,135,136,137,138,139,152,153,156,159,164,167,168,169,174,175,176,179,181,182,204,205,206,217,218,219,220,221,227,231,232,235,242,247,251,252,259,267,276,284,285,287,292,295,300,305,306,308,319,321,324,329,344,349],alredi:40,alright:179,also:[0,1,2,3,5,6,8,9,10,11,12,13,14,15,16,17,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,46,47,48,49,50,51,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,72,73,74,75,77,79,80,81,82,83,84,85,86,87,88,89,90,91,93,95,96,97,98,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,121,122,123,124,125,126,127,128,129,131,132,133,134,135,136,137,138,140,144,148,151,152,153,154,156,157,158,159,161,165,167,169,170,174,175,176,177,179,180,181,182,185,187,188,190,195,199,200,202,204,205,206,213,215,219,220,221,226,231,232,233,235,240,241,242,246,247,250,251,252,253,256,259,260,261,262,267,271,272,276,278,285,287,290,291,294,295,298,299,308,312,314,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,334,336,341,344,346,362,363],alt:321,alter:[0,4,23,41,64,111,137,316],altern:[23,29,33,34,38,51,55,57,63,64,68,72,76,81,87,90,111,112,114,118,119,122,131,133,138,140,167,168,175,203,206,221,224,241,242,285,321,324,336,344],although:[22,29,39,42,63,119,156,180,181,185,312,340,344],althougn:46,altogeth:[50,103,114],alu:33,alwai:[0,2,4,6,8,11,12,13,14,20,21,23,25,27,30,31,33,34,37,38,39,43,47,49,51,57,58,61,62,63,64,69,72,73,74,77,80,85,86,88,89,90,91,95,96,102,105,107,109,112,114,115,121,123,125,126,127,128,131,134,135,137,144,152,153,154,156,158,159,164,167,170,175,176,177,199,205,206,212,224,227,241,242,246,247,250,251,252,259,261,267,269,272,276,284,287,290,291,295,296,299,306,308,313,316,317,318,319,321,324,334,336,340,341,344,345,362],always_pag:329,always_return:267,amaz:75,amazon:[79,90],ambianc:108,ambigu:[41,154,174,189,247,318],ambiti:[108,129],amend:131,amfl:14,ammo:21,among:[2,35,36,43,62,64,79,89,104,111,123,127,165,182,224,232,242,330,341],amongst:[77,200],amor:196,amount:[11,16,37,43,61,68,73,102,103,114,123,169,217,218,219,220,221,247,308,326],amp:[40,83,92,94,105,141,142,262,264,267,275,277,285,293,305,308],amp_client:[141,142,262],amp_maxlen:293,amp_port:90,amp_serv:[141,142,262,275],ampclientfactori:264,ampersand:108,amphack:276,ampl:124,amplauncherprotocol:267,ampmulticonnectionprotocol:[264,276,277],ampprotocol:264,ampserverclientprotocol:264,ampserverfactori:277,ampserverprotocol:277,amsterdam:90,anaconda:9,analog:[49,83],analys:51,analysi:210,analyz:[15,33,41,51,80,118,150,159,175,206,247,251,252,257,267,329,344],anchor:[175,221,239,318],anchor_obj:221,ancient:114,andr:24,android:[139,364],anew:[63,111,267],angl:129,angri:41,angular:[43,169],ani:[0,1,2,5,6,8,10,11,12,14,15,16,19,20,21,22,23,24,25,27,30,31,33,34,36,37,38,39,40,41,42,43,44,48,49,50,51,54,56,57,58,59,60,61,63,64,65,68,70,72,73,74,76,77,79,80,81,82,83,84,85,86,87,88,89,90,91,95,96,97,98,100,102,103,104,105,107,109,112,114,115,116,117,118,119,121,122,123,125,126,127,128,129,131,133,134,135,136,137,138,139,140,144,148,150,151,152,153,154,156,157,159,165,169,170,175,176,177,179,180,181,182,186,187,188,189,190,194,199,202,204,205,206,209,210,213,217,218,219,220,221,223,224,231,233,234,235,241,242,247,250,251,252,256,257,259,260,261,264,265,267,269,271,272,276,277,279,285,286,287,290,291,295,296,298,306,307,308,312,316,317,318,319,321,322,323,325,326,327,328,329,330,336,337,338,339,340,341,343,344,362],anim:[27,52],anna:[43,58,63,72,117,118,123,159],annoi:[12,85,91],annot:79,announc:[25,37,43,79,116,123,128,157,169,197,217,218,219,220,221,247],announce_al:[285,308],announce_move_from:[25,77,89,197,247],announce_move_to:[25,77,89,197,247],annoy:144,anonym:[4,66,69,206],anonymous_add:206,anoth:[0,8,10,11,13,14,16,21,22,29,31,33,36,39,42,43,46,49,51,56,57,58,62,63,64,67,69,77,78,80,89,90,91,96,97,98,102,105,106,108,109,111,112,113,114,116,121,123,127,131,132,136,137,138,139,140,144,152,153,156,159,164,165,175,179,180,182,188,194,199,204,206,215,217,218,219,220,221,232,235,239,247,250,308,316,318,322,326,328,329,336,344],another_batch_fil:322,another_nod:328,another_script:102,anotherscript:102,ansi:[24,43,53,55,74,81,137,141,142,156,183,190,202,272,279,287,290,295,296,320,330,336,343,364],ansi_escap:321,ansi_map:321,ansi_map_dict:321,ansi_pars:321,ansi_r:321,ansi_regex:321,ansi_sub:321,ansi_xterm256_bright_bg_map:321,ansi_xterm256_bright_bg_map_dict:321,ansimatch:321,ansimeta:321,ansipars:321,ansistr:[141,321,330],ansitextwrapp:330,answer:[0,11,21,25,26,33,46,51,61,63,67,69,70,73,95,96,103,127,265,271],anti:63,anul:8,anwer:44,anybodi:[59,103],anymor:[4,181,195,203,204,235,328,340],anyon:[1,4,12,21,25,29,41,42,54,58,60,76,80,85,90,116,118,119,123,138],anyth:[0,1,5,11,13,16,19,20,22,23,26,29,31,33,34,40,41,42,46,49,51,56,61,63,64,69,73,80,82,83,85,87,89,90,91,94,95,96,100,102,104,106,111,116,118,121,123,125,127,128,130,131,133,135,136,137,138,152,154,168,180,206,215,217,218,219,220,221,242,279,313,316,322,328],anywai:[0,4,14,20,51,55,75,76,91,95,108,114,140,179,181,186],anywher:[33,51,60,64,95,96,125,134,326],apach:[7,23,90,103,139,312,364],apache2:8,apache_wsgi:8,apart:[2,11,20,27,34,47,55,63,80,81,100,104,125,126,127,134,221],api:[13,15,26,27,33,34,42,43,47,48,52,59,60,71,73,89,96,105,109,111,120,125,133,138,139,141,144,158,169,171,177,186,306,316,318,322,323,329,363,364],api_kei:71,api_secret:71,apostroph:15,app:[4,40,71,80,86,134,135,136,138,139],app_id:133,app_label:145,appar:[48,58,126],apparit:233,appeal:[51,61,114],appear:[9,10,21,22,25,26,27,30,38,43,47,48,51,60,63,65,66,68,72,80,82,90,95,96,100,102,104,106,111,114,123,126,127,131,137,138,141,156,166,182,195,206,212,235,247,291,292,315,318,330,336,337],append:[20,22,25,27,31,39,40,43,49,50,51,68,69,80,85,88,89,90,91,93,96,97,116,123,127,133,138,154,159,166,182,199,206,242,300,322,336,337,344],appendix:241,appendto:137,appform:133,appl:[179,247],appli:[0,8,9,13,16,22,23,31,33,36,37,51,60,80,81,102,106,111,115,121,125,126,128,133,144,150,152,167,183,217,218,219,220,221,235,242,247,251,252,256,261,308,316,317,318,321,322,327,330,331,341,344],applic:[8,40,63,79,80,86,94,100,103,112,124,128,133,134,135,136,144,187,188,221,267,270,280,284,305,306,312,354,362],applicationdatareceiv:290,applied_d:133,apply_damag:[217,218,219,220,221],apply_turn_condit:219,appnam:[11,80],appreci:[22,37,70,78,334],approach:[22,25,39,56,77,91,106,115,133,180,221],appropri:[8,9,23,31,33,36,55,71,91,106,119,121,129,133,138,144,157,175,190,267,306,338,340,344],approrpri:40,approv:[133,134,138],approxim:[5,43,169,344],april:62,apt:[8,63,67,75,90,103,131],arbitr:61,arbitrari:[11,13,19,27,46,59,64,80,96,97,100,111,125,137,138,139,140,144,175,187,215,221,233,247,252,259,265,276,296,310,316,325,336,337,340],arcan:129,archer:252,architectur:[80,252],archiv:[79,103],archwizard:252,area:[2,22,24,48,49,51,58,61,79,117,122,127,138,231,235,241,327,328,330,344],aren:[0,4,29,39,69,103,127,131,133,136,138,144,182,188,195,203,219,337,340],arg1:[80,154,167,168,170,250,316,336],arg2:[154,167,168,170,250,316,336],arg:[1,5,10,21,22,25,29,30,33,38,39,40,41,42,43,51,58,59,68,71,73,74,80,81,83,85,88,96,109,114,115,116,119,121,123,129,132,137,144,145,146,147,148,151,154,159,167,168,170,175,176,177,179,182,184,187,189,192,195,197,203,204,205,206,212,213,214,215,217,218,219,220,221,223,226,227,231,232,233,234,235,238,239,241,242,245,246,247,250,251,252,255,256,259,260,261,264,272,273,274,276,277,278,279,284,285,287,288,290,291,292,295,296,300,306,308,310,312,315,316,317,318,319,321,328,330,331,333,334,336,337,340,342,344,345,357,362],arg_regex:[41,44,154,159,165,166,170,171,174,182,201,326],arglist:[167,168],argpars:234,argu:11,argument:[3,4,5,10,12,14,20,21,22,23,25,27,29,31,33,34,40,41,42,43,46,48,50,52,57,58,59,62,69,74,80,81,83,85,87,88,89,93,95,96,102,109,111,114,115,119,123,124,125,127,129,134,139,144,146,150,151,153,154,156,157,159,164,165,166,167,168,169,170,175,176,180,182,184,187,188,189,192,194,195,197,200,204,205,206,210,212,217,218,219,220,221,233,234,242,247,250,251,252,257,259,260,261,265,267,272,276,278,279,285,286,287,290,291,295,296,298,299,306,307,308,310,311,316,317,318,319,321,322,324,326,327,328,329,330,334,336,338,340,341,344,362,364],argumentpars:234,argumnet:330,argumu:336,aribtrarili:344,aris:103,arm:[26,33,203],armi:85,armor:[29,82,182,218],armour:29,armouri:77,armpuzzl:203,armscii:[15,113],arnold:87,around:[0,4,10,13,14,15,21,23,29,31,34,38,39,42,43,49,55,58,61,63,64,69,70,71,73,77,79,80,85,89,90,91,96,109,111,113,114,116,117,119,121,123,129,136,138,139,159,167,168,182,184,194,203,206,221,224,231,232,233,235,247,321,322,330,337],arrai:[88,91,291,344],arrang:22,arrayclos:[88,291],arrayopen:[88,291],arriv:[0,25,29,43,73,77,83,105,159,279],arrow:[42,137],art:[114,122,327],articl:[4,15,21,39,41,48,57,61,79,113,127,131,335],article_set:335,artifact:330,artifici:73,arx:79,arxcod:[79,139,364],as_view:[175,239,318],ascii:[9,15,111,113,144,200,327,330,344],asciiusernamevalid:144,asdf:159,ashlei:[182,188,190,215,217,218,219,220,221],asian:344,asid:[9,227],ask:[1,10,21,23,26,34,37,42,43,46,48,50,54,58,63,67,68,69,70,73,84,90,91,93,97,119,124,131,133,152,154,159,179,184,193,201,204,234,265,267,294,328,331,344],ask_choic:265,ask_continu:265,ask_input:265,ask_nod:265,ask_yesno:265,asn:209,aspect:[48,51,57,60,64,68,73,86,109,127,190],assert:[116,127],assertequ:127,assertregex:127,asserttru:127,asset:[103,136,271],assetown:9,assign:[2,6,11,12,13,20,36,43,51,56,58,80,87,89,94,97,102,109,112,115,116,119,121,123,131,137,138,144,150,151,153,159,166,167,168,170,183,187,188,206,217,218,219,220,221,233,242,246,247,251,252,272,279,285,287,290,306,325],assist:90,associ:[4,11,29,43,51,79,83,90,105,122,135,138,144,149,159,175,192,195,206,247,306,308,317,362],assort:362,assum:[0,3,5,9,12,13,14,15,19,20,21,22,25,27,28,29,31,33,34,37,39,40,41,43,44,46,47,49,51,55,56,58,60,62,68,73,74,75,80,81,82,84,85,89,90,95,96,97,100,102,103,105,106,108,109,110,111,113,115,116,117,118,120,121,123,127,128,132,133,134,138,150,152,153,154,156,159,170,175,180,181,206,213,232,233,241,247,252,257,259,291,308,321,322,328,336,344,349,362],assumpt:151,assur:[49,125],asterisk:[2,12,38,43,157],astronaut:77,astronom:62,async:[133,139,344,364],asynccommand:10,asynchron:[27,28,29,33,45,55,64,92,93,139,146,247,276,277,291,337,344],at_:[125,334],at_access:[144,247],at_account_cr:[2,144],at_after_mov:[77,89,96,117,197,247],at_after_object_leav:235,at_after_travers:[89,197,232,247],at_befor:247,at_before_drop:[218,221,247],at_before_g:[218,221,247],at_before_get:[221,247],at_before_leav:89,at_before_mov:[25,77,89,197,217,218,219,220,221,247],at_before_sai:[96,197,206,247],at_channel_cr:175,at_char_ent:117,at_cmdset_cr:[5,21,22,25,30,31,33,41,44,57,58,62,81,85,116,121,123,152,160,161,162,163,179,180,181,182,185,187,199,201,202,203,206,214,217,218,219,220,221,224,230,231,232,233,326,328,329],at_cmdset_get:[144,247,306],at_db_location_postsav:246,at_defeat:[217,218,219,220,221],at_desc:247,at_disconnect:[144,306],at_drop:[197,218,221,247],at_end:256,at_err:[10,344],at_err_funct:10,at_err_kwarg:[10,344],at_failed_login:144,at_failed_travers:[89,197,212,232,247],at_first_login:144,at_first_sav:[144,175,247],at_first_start:318,at_get:[182,197,221,247],at_giv:[218,221,247],at_heard_sai:118,at_hit:231,at_idmapper_flush:[259,318,334],at_init:[6,107,125,144,175,231,232,233,247],at_initial_setup:[104,271],at_initial_setup_hook_modul:271,at_login:[40,125,278,279,287,290,295,296,306],at_look:[96,144,247],at_message_rec:144,at_message_send:144,at_msg_rec:[144,189,247],at_msg_send:[144,146,189,247],at_new_arriv:231,at_now_add:86,at_object_cr:[5,6,21,25,31,39,43,58,60,73,80,81,85,89,96,121,123,125,132,159,187,189,206,212,214,217,218,219,220,221,226,231,232,233,247,318],at_object_delet:[197,247],at_object_leav:[233,235,247],at_object_post_copi:247,at_object_rec:[89,117,233,235,247],at_password_chang:144,at_post_cmd:[30,33,150,154,167,170],at_post_command:33,at_post_disconnect:144,at_post_login:[25,144],at_post_portal_sync:305,at_post_puppet:[96,197,247],at_post_unpuppet:[96,247],at_pre_cmd:[33,150,154,167,170],at_pre_command:33,at_pre_login:144,at_pre_puppet:[96,247],at_pre_unpuppet:[197,247],at_prepare_room:235,at_reload:[43,169,305],at_renam:318,at_repeat:[102,116,120,121,125,146,179,184,195,217,218,219,220,221,223,227,259,300,331],at_return:[10,344],at_return_funct:10,at_return_kwarg:[10,344],at_sai:[118,197,247],at_script_cr:[102,116,120,121,146,179,184,195,204,205,217,218,219,220,221,223,227,235,251,259,300,331],at_search_result:[168,344],at_server_cold_start:305,at_server_cold_stop:305,at_server_connect:285,at_server_reload:[102,110,144,146,247,259],at_server_reload_start:305,at_server_reload_stop:[25,305],at_server_shutdown:[102,110,144,146,247,259],at_server_start:305,at_server_startstop:[25,104],at_server_stop:305,at_shutdown:305,at_start:[102,116,146,195,227,235,256,259],at_startstop_modul:261,at_stop:[102,116,121,217,218,219,220,221,227,259],at_sunris:62,at_sync:[306,307],at_tick:[115,261],at_travers:[89,197,213,235,247],at_traverse_coordin:235,at_turn_start:219,at_upd:[219,257],at_weather_upd:132,atlanti:24,atleast:205,atom:98,atop:235,atribut:325,att:51,attach:[4,11,21,41,43,56,58,64,77,89,95,102,105,110,112,119,140,154,159,164,167,189,199,215,235,242,247,258,304,315,319],attachmentsconfig:4,attack:[14,28,29,30,46,51,77,90,103,116,119,122,134,139,153,206,215,217,218,219,220,221,231,232,247,252,285],attack_count:220,attack_messag:73,attack_nam:220,attack_skil:252,attack_summari:73,attack_typ:221,attack_valu:[217,218,219,220,221],attempt:[0,2,22,24,29,31,43,51,60,61,87,91,103,106,119,120,135,156,159,187,210,212,217,218,219,220,221,264,267,272,305,310,318,344,362],attent:[38,56,58,89,103,111],attitud:57,attr1:[43,159,203],attr2:[43,159,203],attr3:[43,159],attr:[11,22,43,49,51,58,80,109,119,136,137,159,166,180,233,241,251,252,306,316,318,334,340],attr_categori:315,attr_eq:241,attr_g:[80,241],attr_gt:[80,241],attr_kei:315,attr_l:[80,241],attr_lockstr:315,attr_lt:[80,241],attr_n:[80,241],attr_nam:159,attr_obj:[316,318],attr_object:318,attr_typ:315,attr_valu:315,attract:37,attrcreat:[80,316],attread:11,attredit:[11,80,316],attrib:242,attribiut:316,attribut:[0,2,6,12,20,22,25,27,28,30,39,41,42,43,45,46,49,50,51,56,57,58,60,61,69,73,74,77,80,81,82,84,85,86,87,89,91,95,102,105,108,109,112,115,116,119,123,125,127,133,134,138,139,141,142,144,145,148,153,159,168,169,173,175,180,181,187,194,195,202,203,206,213,217,218,219,220,221,226,231,232,233,241,244,246,247,250,251,252,254,256,257,272,306,314,315,317,318,319,324,325,326,337,338,341,344,357,362,364],attribute1:123,attribute2:123,attribute_list:316,attribute_nam:[144,206,247,341],attributeerror:[42,60,86,306,316],attributeform:315,attributeformset:315,attributehandl:[1,125,316,339,344],attributeinlin:[145,173,244,254,315],attributeobject:11,attrkei:252,attrlist:316,attrnam:[11,43,51,80,109,125,159,241,318],attrread:[11,80,316],attrtyp:[11,316,317],attrvalu:51,attryp:317,atttribut:49,atyp:242,audibl:205,audio:137,audit:[141,142,175,178,207,247],audit_callback:209,auditedserversess:[209,210],auditingtest:211,aug:9,august:[9,344],aut:52,auth:[144,145,148,164,287,349,357,362],auth_password:287,auth_profile_modul:148,authent:[40,103,105,107,133,138,144,278,285,287,290,296,306,308,349,362],authenticated_respons:360,author:[41,90,126,144,192,195],auto:[0,5,12,14,21,31,32,33,34,38,42,43,45,51,63,67,71,89,95,96,105,122,131,133,138,141,144,148,150,154,158,159,166,169,170,205,206,227,236,239,242,247,252,256,259,261,264,267,278,288,295,296,305,308,318,323,329,330,349],auto_help:[33,41,44,51,68,69,154,170,188,230,249,328,329],auto_help_display_kei:[154,170,328],auto_id:[145,237,244,357],auto_look:[51,188,230,249,328],auto_now_add:86,auto_quit:[51,188,230,249,328],auto_transl:205,autobahn:[278,284,295],autodoc:38,autofield:133,autologin:349,autom:[14,36,57,58,67,79,86,100,103,110,362],automat:[0,6,10,14,19,22,23,27,30,31,34,37,38,41,43,46,47,50,51,55,58,60,62,64,65,66,67,68,71,72,80,81,84,85,86,90,96,97,100,102,104,105,109,111,116,117,118,119,121,122,123,124,125,126,128,131,135,136,139,140,144,152,153,154,159,164,165,167,174,179,180,181,182,194,195,196,200,201,203,204,205,206,214,221,226,227,234,242,246,247,258,259,260,261,272,281,284,287,292,305,308,310,322,326,328,329,330,344,350],automatical:261,autostart:[258,324],autumn:[97,99,187],avail:[0,5,7,8,10,11,13,16,21,22,23,25,26,31,33,36,38,39,40,41,42,43,44,46,48,49,51,53,57,58,60,62,63,64,65,72,74,75,76,77,78,79,80,81,82,85,88,89,90,91,95,96,98,100,102,104,105,106,108,109,110,111,113,114,116,119,121,122,123,125,127,128,130,131,133,134,137,138,139,141,144,150,151,152,153,154,156,159,161,164,165,166,167,168,169,170,171,179,180,181,185,187,189,195,199,202,204,205,206,214,215,217,218,219,220,221,224,232,233,241,242,247,250,251,252,256,272,296,299,310,322,323,328,329,330,336,344,362],available_choic:[51,328],available_func:336,available_funct:251,available_languag:205,available_weapon:232,avatar:[64,88,96,247,287],avatarid:287,avenew:41,avenu:182,averag:[13,43,90,93,169,195,205,234],avoid:[8,11,23,26,27,31,33,37,38,40,42,43,51,80,81,85,95,97,100,109,111,114,125,126,127,129,131,138,139,152,159,204,205,234,235,241,246,272,276,286,296,306,316,318,321,322,323,326,329,334],awai:[0,9,10,11,14,15,21,26,29,42,43,46,49,51,55,66,68,69,73,80,86,90,96,102,105,109,111,121,123,131,165,182,215,218,221,224,226,231,233,235,247,256,307,321,344],await:10,awar:[11,14,26,31,33,44,51,88,95,96,110,125,126,132,133,189,204,206,231,234,235,247,318,321],awesom:[63,135],aws:90,axhear:241,axi:200,azur:100,b3cbh3:133,b64decod:340,b64encod:340,b_offer:179,baaaad:127,babi:138,bacground:67,back:[0,3,5,10,11,12,13,14,20,21,22,23,25,26,27,29,31,33,34,36,38,43,46,49,50,51,56,58,60,61,63,64,67,69,73,74,81,83,85,86,87,90,91,95,96,97,100,102,105,106,110,111,113,116,118,119,121,122,123,125,126,131,133,135,137,141,144,153,156,159,164,168,179,180,206,212,215,220,224,249,259,267,272,276,279,285,287,290,305,318,325,328,329,337,344],back_exit:0,backbon:[133,322],backend:[23,36,109,127,135,141,142,316,344,346,348],backend_class:316,background:[10,17,29,51,67,90,103,110,114,126,133,183,190,321,336,362],backpack:31,backslash:114,backtick:[38,131],backtrack:131,backup:[10,89,90,105,131,168,322],backward:[50,51,58,121,337],bad:[0,22,24,37,41,58,64,70,76,85,119,127,210,269],bad_back:242,badg:130,bag:344,bake:100,balanc:[29,56,61,79,116,330],balk:95,ball:[31,59,104,151,152,252],ballon:203,balloon:203,ban:[7,25,80,139,144,157,242,364],band:[45,88,118,137,287,290,291],bandit:46,bandwidth:280,banid:[43,157],bank:61,bar:[51,82,83,84,88,112,135,137,190,206,215,291,328,344],bare:[33,55,58,73,104,190,218],barehandattack:56,bargain:86,barkeep:[42,206],barter:[61,63,102,117,141,142,178],bartl:79,bas:120,base:[3,4,6,9,13,16,17,20,21,22,23,30,33,34,36,38,39,41,42,43,49,51,53,55,56,57,58,60,61,63,64,67,69,72,73,75,77,79,80,83,85,86,89,90,94,96,100,102,103,105,108,111,113,115,119,120,123,124,125,126,127,129,130,133,134,136,137,138,139,141,144,145,146,147,148,150,152,153,154,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,173,174,175,176,177,179,180,181,182,184,185,186,187,188,189,192,193,195,196,197,198,199,200,201,202,203,204,205,206,210,211,212,213,214,215,217,218,219,220,221,223,224,226,227,228,230,231,232,233,234,235,237,238,239,242,244,245,246,247,249,251,252,254,255,256,257,258,259,260,261,263,264,265,267,269,270,273,274,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,298,299,300,303,305,306,307,308,310,311,312,315,316,317,318,319,321,322,323,326,327,328,329,330,331,333,334,335,336,337,338,339,340,341,342,343,344,349,351,352,357,360,362,364],base_account_typeclass:[2,141],base_channel_typeclass:141,base_char_typeclass:120,base_character_typeclass:[43,81,120,133,134,141,144,159],base_exit_typeclass:141,base_field:[145,237,244,315,357],base_guest_typeclass:[66,141],base_object_typeclass:[109,141,252,318],base_random:250,base_room_typeclass:141,base_script_path:241,base_script_typeclass:[102,141],base_set:9,baseclass:232,basecontain:323,baseinlineformset:315,baseline_index:344,baseobject:125,baseopt:338,basepath:344,basetyp:[247,322],basetype_posthook_setup:247,basetype_setup:[39,80,96,144,146,175,247],bash:[36,38,63,67,232],basi:[4,33,37,62,90,136,138,167,177,206,241,296,318,327],basic:[0,2,3,6,9,15,16,17,19,20,22,26,29,31,33,34,36,39,40,43,46,47,48,56,57,58,60,61,62,69,73,77,79,80,81,83,86,87,110,111,113,116,117,118,121,122,124,126,128,133,134,135,137,139,144,146,159,164,166,175,177,188,194,200,203,218,220,232,241,243,247,298,342,346,357,362,364],bat:[9,63],batch:[18,20,43,48,63,79,111,122,124,139,141,142,158,252,276,316,319,320,364],batch_add:[252,316,319],batch_cmd:14,batch_cod:[13,322],batch_code_insert:13,batch_create_object:252,batch_exampl:322,batch_import_path:[13,14],batch_insert_fil:14,batch_update_objects_with_prototyp:252,batchcmd:[43,158],batchcmdfil:[14,322],batchcod:[14,79,111,158],batchcode_map:111,batchcode_world:111,batchcodefil:13,batchcodeprocessor:322,batchcommand:[14,20,22,63,122,158,322],batchcommandprocessor:322,batchfil:[14,15,111,322],batchprocess:[141,142,149,155],batchprocessor:[13,141,142,158,320],batchscript:[13,322],batteri:144,battl:[79,103,116,122,217,218,219,220,221],battlecmdset:[217,218,219,220,221],baz:215,bazaar:108,beach:111,bear:[204,231],beat:[61,116],beaten:[116,233],beauti:[22,49,133],beazlei:79,becam:[29,126],becaus:[0,2,6,8,9,10,11,12,13,15,16,21,22,25,29,31,36,38,40,41,42,44,46,51,54,56,59,64,68,73,76,77,80,89,91,95,96,107,108,109,111,115,116,117,119,125,126,130,133,134,136,145,153,171,175,186,194,197,205,220,224,235,247,259,279,285,298,308,315,321,338,340],becom:[0,5,10,22,37,38,41,42,43,47,49,51,56,59,61,64,70,73,78,80,81,86,87,88,95,96,102,104,109,111,119,128,156,189,203,205,215,218,252,306,322,328],bed:61,been:[0,4,5,6,13,14,19,21,22,23,36,38,41,42,43,46,49,51,58,69,70,76,79,85,91,93,94,96,103,105,116,117,123,126,128,131,133,134,135,138,152,153,158,159,167,168,175,180,195,197,200,203,204,206,217,218,219,220,221,233,235,239,242,246,247,251,252,261,269,281,285,287,295,305,306,307,308,310,315,316,318,322,326,327,344,362],befit:125,befor:[1,4,10,11,12,13,14,15,20,21,22,25,27,28,29,31,33,37,41,42,43,46,48,49,51,56,57,58,60,61,67,69,71,75,77,79,80,81,84,85,86,90,91,93,96,97,100,102,103,104,106,107,108,109,111,112,113,114,115,116,117,118,119,121,123,124,125,126,127,131,132,133,134,135,137,138,139,144,150,151,154,159,164,167,171,175,184,186,187,188,189,190,194,197,198,201,205,206,209,210,215,217,218,219,220,221,226,227,230,232,233,235,241,242,246,247,250,252,259,260,261,267,276,285,287,293,301,303,305,306,310,312,316,321,322,323,324,328,329,330,331,335,337,340,344,362],beforehand:[11,131,323],beg:14,beggar:0,begin:[0,4,6,10,13,14,20,22,25,33,38,41,42,43,46,50,51,55,58,61,69,72,80,91,95,96,106,107,111,116,117,119,127,132,134,165,194,197,205,206,215,217,218,219,220,221,247,259,321,322,328,341],beginn:[55,60,77,79,91,95,124],behav:[11,13,20,22,29,69,91,95,107,110,127,251,344],behavior:[0,5,11,31,33,41,50,68,69,93,96,102,109,114,126,135,137,138,144,154,170,182,188,219,221,233,234,267,315,328],behaviour:[11,31,33,80,126,200,313,324,330,344],behind:[11,12,21,33,38,43,49,51,55,59,61,63,74,97,109,112,114,122,126,131,158,204,233,256,261,334],behvaior:329,being:[0,5,6,10,11,13,20,21,22,25,28,31,33,34,36,37,42,43,51,54,56,59,61,63,64,69,83,88,90,91,93,95,96,102,103,107,109,111,115,118,125,126,127,129,131,133,138,144,151,159,165,169,175,184,185,189,199,205,206,217,218,219,220,221,226,227,233,239,247,269,272,279,308,310,315,316,318,321,322,324,328,329,330,344,363],beipmu:24,belong:[4,14,43,64,83,95,103,112,119,133,140,153,206,215,235,239,250],below:[0,1,5,8,9,10,11,12,13,14,15,19,20,22,23,25,27,29,31,33,34,36,38,39,42,43,48,49,50,51,57,58,59,60,61,62,63,64,67,69,70,74,80,81,87,88,90,94,95,96,100,102,105,106,109,110,111,114,117,118,119,123,125,127,131,133,134,136,138,140,148,159,167,168,177,180,182,185,190,197,200,205,206,215,217,218,219,220,221,228,234,239,241,246,247,256,279,299,316,318,319,328,330,335,336],belt:77,beneath:27,benefici:[49,219],benefit:[78,90,100,103,108,127,153,316,322,328],besid:[0,14,31,106,111,190],best:[9,22,24,26,37,50,51,57,58,59,61,72,76,102,103,104,108,133,135,139,166,180,205,215,234,252,267,287,330,338,364],bet:[31,105,138,318],beta:[35,54,90],betray:51,better:[0,9,15,23,25,34,41,42,44,45,51,55,58,59,61,64,68,70,73,81,85,86,91,93,95,108,109,112,114,133,134,181,213,218,224,233,247,252,284,287,290,298,316,322],bettween:73,between:[0,2,10,14,22,25,28,31,33,36,38,39,40,41,43,46,49,56,57,58,64,67,69,73,76,83,85,87,88,90,91,100,102,105,109,112,113,114,116,120,121,122,123,124,126,131,137,138,140,151,154,159,164,166,169,170,177,179,182,183,194,195,197,198,199,200,202,204,205,206,215,217,218,219,220,221,247,252,261,267,276,279,286,287,290,291,298,299,306,319,321,322,324,328,330,331,336,344,351],bew:187,bewar:39,beyond:[1,2,9,22,25,33,37,52,57,64,88,89,90,102,127,134,154,159,170,177,180,206,215,233,251,316,318,328,330],bg_colormap:343,bgcolor:343,bgfgstart:343,bgfgstop:343,bgstart:343,bgstop:343,bias:159,bidirect:276,big:[9,11,13,14,20,25,28,29,33,37,45,57,73,80,96,122,138,140,151,168,322,329,341,344],bigger:[21,37,40,69,119,123,205],biggest:[72,138,344],biggui:33,bigmech:21,bigsw:29,bikesh:119,bill:[90,103],bin:[4,9,36,47,63,64,70,75,96,100],binari:[23,47,63,93,95,278,280,295],bind:67,birth:357,bit:[0,4,9,12,17,22,26,29,35,39,41,42,43,46,59,61,62,63,69,75,76,81,96,102,106,109,121,122,127,131,134,137,138,171,186,242,247,322],bitbucket:57,bite:[61,111],black:[73,114,126,321],blackbird:79,blackbox:138,blacklist:103,blade:232,blank:[51,86,117,134,144,188,321],blankmsg:188,blarg:83,blargh:109,blatant:12,blaufeuer:119,bleed:[114,131,330],blend:203,blender:203,bless:138,blind:[114,118,224,227],blindcmdset:224,blindedst:227,blindli:242,blink:[20,226,227,343],blinkbuttonev:227,blist:97,blob:[3,37,38,41,46,95,96,104,127,135,138],block:[3,12,25,28,43,50,51,55,58,64,69,80,90,91,97,102,103,110,114,123,129,133,134,139,157,158,159,187,221,230,231,232,235,249,286,322,328,336,344,362],blocking_cmdset:25,blockingcmdset:25,blockingroom:25,blocktitl:69,blog:[37,55,79,90,98],blowtorch:24,blue:[13,57,81,114,126,232,321],blueprint:[57,96,111,137],blurb:54,board:[34,49,61,79,80,121],boat:[31,121,153],bob:[33,43,81,138,157],bodi:[3,17,22,27,33,38,41,46,51,58,95,109,127,129,133,175,193,199,269,324,344],bodyfunct:[20,102,141,142,178,222,228],bog:21,boi:112,boiler:125,bold:54,bolt:252,bone:[55,73],bonu:[41,73,90,218,219,256],bonus:[29,218],boo:57,book:[3,49,57,62,73,79,91,95,109,135],bool:[2,31,33,34,51,74,84,102,144,145,146,148,150,151,152,153,154,159,173,175,176,177,179,180,182,184,185,188,190,192,195,197,200,204,205,206,215,217,218,219,220,221,226,235,238,242,244,246,247,250,251,252,254,256,257,258,259,260,261,267,272,273,278,279,284,285,286,290,295,296,304,306,308,310,316,317,318,319,321,322,324,326,328,329,330,331,334,336,339,341,343,344],booleanfield:[133,145,237],boom:[21,51],boot:[80,100,110,157,261],bootstrap:[4,124,138,139,364],border:[43,58,111,156,188,327,330],border_bottom:330,border_bottom_char:330,border_char:330,border_left:330,border_left_char:330,border_right:330,border_right_char:330,border_top:330,border_top_char:330,border_width:330,borderless:58,borderstyl:188,bore:[12,55,103],borrow:[31,63,152,276],bort:52,boss:58,bot:[43,47,65,72,93,103,119,133,141,142,143,148,164,175,272,278,279,286,308,362],bot_data_in:[146,272],both:[0,11,15,19,22,23,25,26,27,31,33,34,36,37,38,40,43,44,49,51,56,57,58,62,65,69,71,74,79,84,85,86,87,88,90,91,95,97,103,104,105,106,110,111,116,119,121,124,125,127,128,131,133,134,136,138,150,152,159,164,169,177,179,183,190,197,199,200,201,203,212,215,220,221,233,242,247,251,252,253,256,259,261,276,285,295,296,305,307,310,316,317,321,324,328,330,339,344],bother:[29,103,128,174,316],botnam:[43,72,164,279,308],botnet:103,botstart:146,bottom:[4,39,41,52,54,57,58,60,69,85,95,101,106,111,125,127,133,137,153,199,220,235,252,322,329,330],bought:85,bouncer:[27,103,327],bound:[6,27,57,108,192,344],boundari:344,bounti:70,bountysourc:70,bow:252,box:[0,3,8,20,42,43,46,58,63,66,69,70,71,73,80,87,90,104,106,109,111,123,135,138,159,206,241,276,322,357],brace:[0,22,25,41,91,197,247,321],bracket:[38,43,96,129,169,183],brainstorm:[139,364],branch:[9,36,37,38,41,63,70,100,204,215],branchnam:131,brandymail:199,bread:16,breadth:221,break_lamp:226,break_long_word:330,break_on_hyphen:330,breakdown:[43,169],breakpoint:[16,106,141],breez:[102,132],breviti:58,bribe:51,brick:82,bridg:[22,23,53,79,83,105,233],bridgecmdset:233,bridgeroom:233,brief:[3,16,19,20,21,25,46,58,60,85,86,95,96,101,110,124,131,139,188,234,247,311],briefer:[89,110],briefli:[16,90,110],bright:[81,114,126,183,321],brightbg_sub:321,brighten:114,brighter:114,brilliant:131,bring:[23,49,96,100,103,121,123,133,136,215,221,224,231,309],broad:39,broadcast:[43,164,276],broader:[39,206,247],broadli:94,broken:[61,108,114,205,226,227,336],brought:102,brown:321,brows:[3,9,25,39,55,58,62,69,85,90,91,103,106,123,131,136,137,138,362],browser:[3,8,9,16,38,55,63,64,67,69,70,75,77,90,95,96,101,103,133,134,135,136,137,138,295,296,362],brutal:234,bsd:78,bsite:135,btest:114,btn:[17,70],bucket:209,buf:326,buffer:[22,33,50,137,168,269,296,326],bug:[10,13,26,37,42,54,57,60,61,70,78,94,95,96,110,123,127,131,227,247,318],buggi:[11,328],bui:[85,138,179],build:[1,6,7,9,10,11,13,14,15,27,31,36,47,51,55,57,60,63,64,68,69,75,77,79,80,81,86,87,89,96,100,105,106,108,109,112,113,119,120,122,123,125,129,130,136,137,139,140,141,142,149,151,155,157,158,165,166,175,180,187,193,200,205,206,212,231,234,242,247,251,252,267,278,279,322,330,357,363,364],build_exit:200,build_forest:200,build_map:200,build_match:151,build_mountain:200,build_templ:200,builder:[2,4,14,19,22,25,43,56,58,60,61,68,80,85,108,109,112,114,123,124,139,157,159,164,165,169,180,182,187,188,200,203,206,212,233,234,235,242,247,250,298,318,322,363,364],buildier:252,building_menu:[141,142,178],buildingmenu:[22,180],buildingmenucmdset:180,buildmap:200,buildprotocol:[264,277,278,279],buildshop:85,built:[13,16,20,27,38,40,51,54,55,57,58,61,63,64,73,75,77,95,96,100,103,121,122,123,135,138,139,148,177,203,205,239,246,256,261,316,318,319,322,326,328,335],builtin:[94,280],bulk:[96,103],bullet:[38,61],bulletin:[61,79,80],bulletpoint:38,bunch:[15,27,58,108,113],burden:82,buri:[108,122],burn:[61,73,90,232],busi:[64,70,90,179],butch:96,butt:138,butter:16,button:[9,13,14,31,33,43,80,83,87,88,106,131,133,134,135,137,138,159,224,226,227,232,299,329],button_expos:232,buy_ware_result:85,byngyri:205,bypass:[4,10,19,20,43,58,80,116,126,144,159,175,212,241,242,318,324,341,349],bypass_superus:80,bytecod:321,bytestr:[276,344],bytestream:344,c6mq:70,c_creates_button:299,c_creates_obj:299,c_dig:299,c_examin:299,c_help:299,c_idl:299,c_login:299,c_login_nodig:299,c_logout:299,c_look:299,c_move:299,c_moves_:299,c_moves_n:299,c_social:299,cabinet:92,cabl:82,cach:[6,8,11,12,28,33,39,43,86,119,125,127,130,137,144,154,169,174,175,187,231,232,242,246,247,271,310,315,316,318,319,320,332,334,344],cache_inst:334,cache_lock_bypass:242,cache_s:[310,334],cached_properti:344,cactu:220,cake:31,calcul:[10,25,27,39,73,116,119,123,139,153,184,187,198,205,217,218,220,221,252,331,334,344,362],calculated_node_to_go_to:51,calculu:56,calendar:[184,198,331],call:[0,2,3,4,5,6,10,11,13,14,16,20,21,22,23,25,26,27,28,29,30,31,36,38,39,40,41,42,43,46,47,48,49,50,51,55,56,57,58,59,60,61,62,63,64,65,69,71,72,73,74,75,80,81,83,84,85,86,88,89,90,91,93,95,96,100,102,104,105,107,108,109,110,111,114,115,116,117,118,119,120,121,122,123,125,126,127,128,131,132,133,134,135,137,138,144,146,150,151,152,153,154,156,159,164,167,168,169,170,171,174,175,179,180,182,184,185,186,187,188,189,192,193,194,195,196,197,198,200,201,203,204,205,206,212,214,215,217,218,219,220,221,223,224,226,227,230,231,232,233,234,235,241,242,246,247,250,251,252,257,258,259,260,261,264,267,269,271,272,276,277,278,279,280,281,282,283,285,286,287,288,289,290,291,292,294,295,296,298,299,300,305,306,307,308,309,312,315,316,318,319,321,322,323,324,326,328,329,330,331,334,336,337,339,340,341,344,357,362],call_async:10,call_command:127,call_ev:[0,194],call_inputfunc:[83,306,308],callabl:[49,50,84,109,115,123,180,188,195,215,219,247,250,251,252,257,261,265,267,269,277,323,326,328,329,337,339,340,344],callables_from_modul:344,callbac:22,callback1:328,callback:[4,10,22,27,29,33,50,51,62,74,84,115,138,146,180,184,188,192,193,194,195,196,197,198,210,215,230,247,257,259,260,261,265,267,269,272,276,277,278,280,294,295,298,309,328,331,337,342,344,364],callback_nam:[192,195],callbackhandl:[141,142,178,191,197],called_bi:150,calledbi:344,caller:[5,10,11,13,21,22,25,27,28,29,30,33,38,41,42,43,44,49,50,56,58,59,60,71,73,80,81,82,83,85,86,87,88,89,91,111,115,116,119,121,123,125,129,137,146,150,151,152,154,156,159,160,164,165,166,167,168,169,170,174,180,188,193,199,200,201,203,206,214,215,230,232,233,234,235,242,247,249,251,322,326,328,329,336,338,344],callerdepth:344,callertyp:150,callinthread:312,calllback:194,callsign:[51,272],calm:111,came:[9,21,25,55,79,111,132,138,197,231,235,247],camp:111,campfir:111,campsit:111,can:[0,1,2,3,4,5,6,9,10,12,13,14,15,17,19,20,21,23,24,25,26,27,28,29,30,31,33,34,35,36,37,38,39,40,41,42,43,44,46,48,49,50,51,54,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,130,131,133,134,135,136,137,138,139,140,143,144,146,148,151,152,153,154,156,157,159,164,165,166,167,168,169,170,174,175,176,177,179,180,182,183,184,185,187,188,189,190,194,195,197,198,199,200,203,204,205,206,209,212,215,217,218,219,220,221,224,226,227,231,232,233,234,235,239,241,242,246,247,250,251,252,253,256,257,258,259,261,267,278,282,285,287,290,291,295,296,298,299,305,306,307,308,309,312,313,314,316,317,318,319,321,322,323,324,326,327,328,329,330,336,338,339,340,341,342,344,345,357,362,363],can_:194,cancel:[27,29,74,194,197,217,218,219,220,221,247],candid:[22,33,119,133,151,203,206,247,341],candl:153,cannot:[5,9,10,11,13,14,19,21,22,25,27,28,29,31,33,39,43,44,46,50,51,56,60,61,63,69,70,73,76,80,85,90,104,109,112,114,122,123,127,128,133,139,144,146,153,156,159,175,180,187,188,192,195,197,212,215,221,227,231,232,238,241,242,247,251,261,316,323,325,327,330,334,344],cantanker:338,cantclear:188,cantillon:79,cantmov:25,canva:49,capabl:[6,36,43,49,58,64,80,83,88,105,156,214,272,294,357],cape:57,capfirst:69,capit:[9,12,25,29,43,64,88,95,123,159,189,204,205,321],captcha:133,caption:38,captur:[25,91,138,337,362],car:[87,121],card:103,cardin:[43,44,49,58,159],care:[0,4,10,12,23,33,38,44,49,51,56,57,62,64,78,86,91,110,116,121,126,132,144,152,175,187,203,206,230,231,233,241,247,250,318,322,326,328,329,330,344],carefulli:[55,93,105,111,133],carri:[20,31,61,80,82,85,116,117,177,182,218,231,241,306,317],cascad:334,caseinsensitivemodelbackend:349,cast:[28,109,112,215,220],caster:[28,220],castl:[13,111,122,187,233],cat:[67,75],catchi:4,categor:112,categori:[1,5,11,33,36,39,43,51,68,69,86,109,112,119,127,140,154,155,156,157,158,159,164,165,166,167,168,169,170,171,174,179,180,181,182,185,186,187,188,189,193,199,200,201,202,203,206,212,213,214,215,217,218,219,220,221,224,231,232,233,234,238,239,241,247,251,252,316,317,319,324,326,328,329,335,338,341,344,362],categoris:56,category2:335,category2_id:335,category_id:335,category_index:215,cater:29,caught:[42,51,97,176],caus:[11,12,29,30,31,42,60,61,64,77,80,90,96,114,116,117,119,123,127,137,140,153,186,224,226,235,247,298,330,344],caution:[62,137,328],cave:46,caveat:[5,10],caveman:56,cblue:131,cboot:[12,164],cc1:63,cccacccc:327,ccccc2ccccc:58,cccccccc:327,ccccccccccc:58,cccccccccccccccccbccccccccccccccccc:327,ccccccccccccccccccccccccccccccccccc:327,ccreat:[41,58,65,72,98,164],cdesc:[41,164],cdestroi:164,cdmset:31,cdn:103,ceas:[43,77,159],cel:327,celebr:61,cell:[58,69,111,188,327,330],celltext:327,cemit:164,censu:317,center:[4,16,39,49,109,111,114,190,250,321,330,344],center_justifi:[109,250],centos7:67,centr:111,central:[26,55,61,64,74,100,111,123,124,127,132,138,139,144,153,177,247,252,276,324,328,334,363,364],centre_east:111,centre_north:111,centre_south:111,centre_west:111,centric:[9,80,105,123,206],cert:[8,288,292],certain:[13,14,16,19,25,29,31,33,37,38,43,48,64,75,80,88,90,97,102,105,107,108,114,115,121,138,159,176,179,205,209,227,232,235,241,259,267,273,290,294,309,315,316,317,326,330,341,344,357],certainli:[15,44,138],certbot:[67,90,103],certfil:[288,292],certif:[8,90,288,292],certonli:67,cet:337,cfg:67,cflag:75,cgi:[70,90],ch28s03:57,cha:[51,58],chain:[0,10,29,46,51,109,119,194,195,299,328,344],chain_1:0,chainedprotocol:287,chainsol:119,chair:[13,61,89,91,112,125],challeng:[73,79],chan:164,chanalia:[43,164],chanc:[21,22,28,31,54,61,66,73,115,116,122,131,152,217,218,219,220,221,224,232,233,299],chance_of_act:299,chance_of_login:299,chandler:116,chang:[2,3,4,7,8,9,11,12,13,14,15,16,19,20,21,22,23,26,29,30,31,33,34,35,36,37,39,41,42,43,45,47,49,50,51,53,54,57,61,62,63,64,66,67,68,71,73,74,75,77,78,80,81,83,84,85,86,87,89,90,91,94,95,96,100,102,104,105,107,109,110,111,112,114,115,116,118,121,123,125,126,127,132,133,134,135,137,138,139,144,145,153,154,156,157,159,164,165,170,173,175,179,180,182,186,187,189,190,192,195,197,201,202,205,206,212,213,215,217,218,219,220,221,231,232,233,234,235,239,244,247,252,254,256,257,259,261,267,272,283,298,305,306,313,315,316,318,322,325,326,329,330,337,338,339,340,362],change_name_color:215,changeabl:76,changelog:96,changepag:134,changepassword:12,chanlist:[43,164],channam:41,channel:[2,6,7,11,12,19,27,31,33,45,53,55,57,65,70,71,72,79,80,82,86,87,90,98,107,112,119,123,124,125,138,139,144,146,150,152,153,159,164,168,172,173,174,175,176,177,195,271,278,279,286,299,306,308,316,324,337,341,360,362,364],channel_:34,channel_ban:[41,164],channel_color:25,channel_command_class:[34,41],channel_connectinfo:306,channel_detail:362,channel_handl:[141,174],channel_list:362,channel_prefix:[25,175],channel_search:176,channel_set:177,channel_typeclass:360,channeladmin:173,channelam:174,channelattributeinlin:173,channelcmdset:31,channelcommand:[34,41,174],channelconnect:177,channelcr:[43,164],channelcreateview:175,channeldb:[41,53,125,141,173,175,177,314],channeldb_db_attribut:173,channeldb_db_tag:173,channeldb_set:[316,319],channeldbmanag:[176,177],channeldeleteview:175,channeldesc:[41,174],channeldetailtest:360,channeldetailview:[175,362],channelhandl:[34,41,141,142,150,172,175],channelkei:[41,174,176],channellist:[43,164],channellisttest:360,channellistview:362,channelmanag:[175,176],channelmixin:362,channelnam:[34,41,72,146,174,278],channeltaginlin:173,channelupdateview:175,char1:[43,73,127,165,360],char2:[43,73,127,165,360],char_health:233,char_nam:133,charac:84,charact:[0,2,5,9,11,14,15,17,19,20,21,22,23,27,28,29,30,31,33,34,36,39,40,41,42,43,45,47,49,50,51,53,55,56,57,62,68,69,71,74,76,77,80,81,83,85,86,87,88,91,95,97,102,105,111,113,114,116,117,118,119,120,121,122,124,125,127,129,135,136,138,139,141,143,144,151,152,154,156,159,160,161,165,166,167,174,175,180,181,182,187,188,189,190,192,194,195,197,199,200,202,204,205,206,209,214,215,217,218,219,220,221,223,231,232,233,235,239,242,247,259,272,293,306,311,316,318,321,322,327,328,330,336,342,344,345,357,360,362,364],character1:73,character2:73,character_cmdset:187,character_form:362,character_id:247,character_list:362,character_manage_list:362,character_typeclass:[127,144,342,360],charactercmdset:[5,21,22,25,30,31,41,43,44,57,58,60,62,81,123,161,180,182,187,199,202,212,217,218,219,220,221,233],charactercreateview:[360,362],characterdeleteview:[360,362],characterdetailview:362,characterform:[357,362],characterlistview:[360,362],charactermanageview:[360,362],charactermixin:362,characternam:114,characterpuppetview:[360,362],charactersheet:51,characterupdateform:[357,362],characterupdateview:[360,362],charapp:133,charat:188,charcreat:[0,46,69,156,181],chardata:58,chardelet:156,chardeleteview:[239,318],chardetailview:[239,318],charfield:[86,133,145,237,244,315,340,357],charg:90,chargen:[133,139,141,142,175,178,239,318],chargencmdset:123,chargenroom:123,chargenview:[239,318],charnam:[43,58,156],charpuppetview:318,charset:344,charsheet:58,charsheetform:58,charupdateview:[239,318],chase:122,chat:[1,2,9,26,34,37,48,55,57,58,60,63,65,70,72,79,80,98,123,131,139,296,337],chatroom:57,chatzilla:72,cheap:131,cheaper:[61,115],cheapest:90,cheapli:233,cheat:[23,38,73],cheatsheet:48,check:[0,4,5,12,13,14,19,22,25,26,27,28,29,31,33,36,37,38,39,40,41,42,43,44,46,49,51,54,56,58,60,63,65,67,68,69,70,71,73,77,81,82,85,86,87,89,90,91,95,97,98,100,102,103,106,109,110,111,112,114,115,116,117,118,119,121,123,125,127,128,130,131,133,136,138,139,144,145,150,151,152,153,154,156,158,159,164,165,166,167,169,171,175,177,179,181,182,186,187,188,195,199,217,218,219,220,221,223,224,227,231,233,234,235,241,242,246,247,251,252,256,258,259,266,267,271,276,282,287,306,308,310,311,312,315,316,318,319,321,322,324,338,339,344,345,362],check_attr:159,check_circular:296,check_databas:267,check_db:267,check_defeat:73,check_end_turn:116,check_error:266,check_evennia_depend:344,check_from_attr:159,check_grid:49,check_has_attr:159,check_light_st:233,check_lockstr:[4,80,242],check_main_evennia_depend:267,check_obj:159,check_permiss:251,check_permstr:[144,318],check_show_help:166,check_to_attr:159,check_warn:266,checkbox:133,checker:[15,49,94,241,287,345],checkout:[9,100,131],checkoutdir:36,chest:[80,91],child:[6,33,43,51,64,80,96,116,146,148,154,159,170,233,246,252,256,312,335],childhood:51,children:[21,33,64,96,112,117,119,125,148,246,247,256,267,317,335],chillout:[43,159],chime:27,chines:[25,79,113],chip:58,chmod:36,choci:180,chocol:60,choic:[4,15,23,33,43,51,55,60,78,90,91,95,105,107,109,113,116,119,124,127,129,132,144,156,159,179,180,188,217,234,250,265,326,328],choice1:129,choice2:129,choice3:129,choos:[7,9,10,13,38,49,51,57,62,64,67,72,73,85,101,106,116,120,123,126,133,135,138,139,140,214,215,217,218,219,220,221,224,231,280,328,343,364],chop:[33,232],chore:68,chose:[54,58,86,103,133,215],chosen:[22,51,88,106,116,132,138,188,190,328],chown:100,chractercmdset:233,christin:96,chrome:24,chronicl:188,chroot:67,chug:33,chunk:[13,69,111,269,322,336],church:27,church_clock:27,cid:299,cillum:52,circl:39,circuit:137,circular:[269,323],circumst:[46,51,57,85,119,152,220,357],circumv:[43,157],claim:83,clang:75,clank:0,clarif:[1,48],clarifi:25,clariti:[75,86,91,123],clash:[23,31,43,90,159,174,318],class_from_modul:344,classic:[3,13,79,105,112,115,116],classmethod:[39,144,175,239,247,259,318,334,351],classnam:11,classobj:318,claus:[78,118],clean:[1,4,17,25,28,43,48,51,76,110,111,114,116,122,131,145,152,154,159,175,179,206,217,218,219,220,221,227,232,233,235,247,256,267,271,285,295,308,315,318,321,326,328,334,340,343,344,357],clean_attr_valu:315,clean_attribut:[125,144,318],clean_cmdset:[125,318],clean_senddata:308,clean_str:321,clean_usernam:145,cleaned_data:133,cleaner:[91,123],cleanli:[64,102,105,110,150,154,164,174,188,269,278,284,295,308,326],cleanup:[1,11,22,33,40,43,45,50,51,102,127,145,169,179,230,233,328],clear:[1,4,11,12,15,22,29,33,37,38,40,43,48,50,59,61,64,69,70,73,81,104,110,111,112,113,115,125,128,129,131,132,137,138,153,156,157,159,165,174,188,204,206,227,233,242,246,247,257,261,269,306,310,316,318,319,328,334],clear_attribut:316,clear_client_list:303,clear_cont:[89,247],clear_exit:[89,247],clearal:[43,129,165],clearli:[12,37,48,128,227,334],cleartext:[210,324],clemesha:312,clever:[10,31,51,95,242],cleverli:105,click:[36,38,69,90,101,106,114,128,131,133,135,137,138,328],clickabl:[18,38],client:[3,7,8,9,12,22,23,25,30,33,36,40,43,45,50,52,54,55,60,63,64,65,67,72,74,75,79,81,84,91,95,96,100,101,103,104,105,107,108,111,113,114,116,117,126,128,136,138,139,141,142,144,146,154,156,164,169,210,262,264,268,270,272,276,277,278,279,280,281,282,283,285,287,289,290,291,292,294,295,296,298,299,305,306,307,308,325,326,328,343,344,362,364],client_address:40,client_default_height:52,client_disconnect:296,client_encod:23,client_opt:[272,291],client_secret:65,client_width:[33,154],clientconnectionfail:[264,278,279],clientconnectionlost:[264,278,279],clientfactori:298,clienthelp:137,clientraw:[43,169],clientsess:[295,296],cliff:[20,43,159],climat:112,climb:[33,43,55,77,93,159,232],climbabl:232,clipboard:[1,48],clist:[43,164],clock:[12,27,33,73,164],clone:[38,47,63,64,76,96,128,130],close:[0,14,22,25,38,39,40,41,43,46,48,50,51,64,69,76,90,94,96,100,103,105,106,110,125,131,133,137,169,171,179,180,186,190,212,221,224,226,227,230,269,277,278,285,287,295,296,308,316,322,328,336],close_lid:226,close_menu:[230,328],closedlidst:227,closelidev:227,closer:[205,221],closest:[39,114,344],cloth:[141,142,178,322],clothedcharact:182,clothedcharactercmdset:182,clothes_list:182,clothing_typ:182,clothing_type_count:182,clothing_type_ord:182,cloud:[90,100,102,103,132],cloud_keep:200,cloudi:102,clr:[114,251,336],cls:[39,144],clue:232,clunki:[131,221],clutter:[38,153],cma:131,cmd:[12,14,22,25,28,29,31,33,41,43,44,53,58,60,62,70,71,80,82,85,88,95,121,123,136,152,154,156,157,158,159,164,165,166,167,168,169,170,171,174,179,180,181,182,185,186,187,188,189,193,199,200,201,202,203,206,212,213,214,215,217,218,219,220,221,224,231,232,233,234,236,247,291,295,296,322,326,328,329],cmd_abil_result:127,cmd_arg:91,cmd_channel:[33,150],cmd_ignore_prefix:151,cmd_kei:91,cmd_last:105,cmd_last_vis:105,cmd_loginstart:33,cmd_multimatch:[33,150],cmd_na_m:88,cmd_name:88,cmd_noinput:[33,150,328],cmd_nomatch:[33,150,233,328],cmd_noperm:33,cmd_on_exit:[51,188,215,230,249,328],cmd_total:105,cmdabil:[60,127],cmdabout:169,cmdaccept:179,cmdaccess:165,cmdaddcom:164,cmdallcom:164,cmdapproach:221,cmdarmpuzzl:203,cmdasync:10,cmdattack:[29,73,116,123,217,218,219,220,221,232],cmdban:157,cmdbatchcod:158,cmdbatchcommand:158,cmdbigsw:29,cmdblindhelp:224,cmdblindlook:224,cmdblock:25,cmdboot:157,cmdbridgehelp:233,cmdbui:85,cmdbuildshop:85,cmdcallback:193,cmdcast:220,cmdcboot:164,cmdcdesc:164,cmdcdestroi:164,cmdcemit:164,cmdchannel:164,cmdchannelcr:164,cmdcharactercr:181,cmdcharcreat:156,cmdchardelet:156,cmdclimb:232,cmdclock:164,cmdcloselid:224,cmdcolortest:156,cmdcombathelp:[217,218,219,220,221],cmdconfigcolor:81,cmdconfirm:33,cmdconnect:41,cmdcopi:159,cmdcover:182,cmdcpattr:159,cmdcraftarmour:29,cmdcreat:159,cmdcreatenpc:123,cmdcreatepuzzlerecip:203,cmdcwho:164,cmddarkhelp:233,cmddarknomatch:233,cmddeclin:179,cmddefend:116,cmddelcom:164,cmddesc:[159,187],cmddestroi:159,cmddiagnos:30,cmddice:[58,185],cmddig:159,cmddisconnect:41,cmddisengag:[116,217,218,219,220,221],cmddoff:218,cmddon:218,cmddrop:[165,182],cmdeast:233,cmdecho:[5,29,33,38],cmdedit:180,cmdeditnpc:123,cmdeditorbas:326,cmdeditorgroup:326,cmdeditpuzzl:203,cmdemit:157,cmdemot:206,cmdentertrain:121,cmdevalu:179,cmdevenniaintro:233,cmdevmenunod:328,cmdexamin:159,cmdexiterror:44,cmdexiterroreast:44,cmdexiterrornorth:44,cmdexiterrorsouth:44,cmdexiterrorwest:44,cmdextendedroomdesc:187,cmdextendedroomdetail:187,cmdextendedroomgametim:187,cmdextendedroomlook:187,cmdfeint:116,cmdfight:[217,218,219,220,221],cmdfind:159,cmdfinish:179,cmdforc:157,cmdget:[25,165],cmdgetinput:328,cmdgetweapon:232,cmdgive:[165,182],cmdgmsheet:58,cmdgrapevine2chan:164,cmdhandler:[31,33,83,89,141,142,144,149,151,152,153,154,156,167,168,170,174,187,203,233,246,247,256,344],cmdhelp:[116,166,217,218,219,220,221],cmdhit:116,cmdhome:165,cmdic:156,cmdid:272,cmdinsid:121,cmdinterrupt:170,cmdinventori:[82,165,182],cmdirc2chan:164,cmdircstatu:164,cmdlaunch:21,cmdlearnspel:220,cmdleavetrain:121,cmdlen:[151,168],cmdlight:232,cmdline:267,cmdlineinput:326,cmdlink:159,cmdlistarmedpuzzl:203,cmdlistcmdset:159,cmdlisthangout:119,cmdlistpuzzlerecip:203,cmdlock:159,cmdlook:[30,127,165,181,187,233],cmdlookbridg:233,cmdlookdark:233,cmdmail:199,cmdmailcharact:199,cmdmakegm:58,cmdmapbuild:200,cmdmask:206,cmdmobonoff:231,cmdmore:329,cmdmorelook:329,cmdmultidesc:[57,202],cmdmvattr:159,cmdmycmd:[56,68],cmdname2:151,cmdname3:151,cmdname:[40,59,74,83,88,123,137,150,151,154,159,167,168,170,272,290,291,295,296,308],cmdnamecolor:215,cmdnewpassword:157,cmdnick:165,cmdnoinput:180,cmdnomatch:180,cmdnpc:123,cmdnudg:224,cmdobj:[150,151,168,170],cmdobj_kei:150,cmdobject:[150,151,169],cmdoffer:179,cmdooc:156,cmdooccharactercr:181,cmdooclook:[156,181],cmdopen:[159,212],cmdopenclosedoor:212,cmdopenlid:224,cmdoption:156,cmdpage:164,cmdparri:116,cmdparser:[104,141,142,149],cmdpass:[217,218,219,220,221],cmdpassword:156,cmdperm:157,cmdplant:234,cmdpoke:119,cmdpose:[116,165,206],cmdpressbutton:232,cmdpush:224,cmdpy:169,cmdquell:156,cmdquit:156,cmdread:232,cmdrecog:206,cmdreload:169,cmdremov:182,cmdreset:169,cmdrest:[217,218,219,220,221],cmdroll:91,cmdrss2chan:164,cmdsai:[116,165,206],cmdsaveyesno:326,cmdscript:[159,169],cmdsdesc:206,cmdser:328,cmdserverload:169,cmdservic:169,cmdsession:156,cmdset:[2,7,14,21,22,25,31,33,34,40,41,42,44,47,51,53,57,60,62,68,69,81,82,85,89,96,97,105,116,121,123,141,142,144,149,150,151,153,154,159,160,161,162,163,166,167,168,169,170,174,179,180,181,182,185,187,189,193,199,201,203,206,213,214,217,218,219,220,221,224,227,230,231,232,233,234,241,246,247,256,298,305,306,318,326,328,329],cmdset_account:[2,141,142,149,155,181],cmdset_charact:[5,96,141,142,149,155,182,217,218,219,220,221],cmdset_mergetyp:[51,188,230,249,328],cmdset_prior:[51,188,230,249,328],cmdset_red_button:[141,142,178,222],cmdset_sess:[105,141,142,149,155],cmdset_stack:153,cmdset_storag:[148,246,306],cmdset_trad:179,cmdset_unloggedin:[33,141,142,149,155,186,201],cmdsetattribut:159,cmdsetclimb:232,cmdsetcrumblingwal:232,cmdsetdesc:165,cmdsetevenniaintro:233,cmdsethandl:[105,141,142,149],cmdsethelp:166,cmdsethom:159,cmdsetkei:31,cmdsetkeystr:152,cmdsetlight:232,cmdsetmor:329,cmdsetobj:[152,153,160,161,162,163,179,180,181,182,185,187,201,203,206,214,217,218,219,220,221,224,230,231,232,233,326,328,329],cmdsetobjalia:159,cmdsetpow:123,cmdsetread:232,cmdsetspe:213,cmdsettestattr:50,cmdsettrad:179,cmdsettrain:121,cmdsetweapon:232,cmdsetweaponrack:232,cmdsheet:58,cmdshiftroot:232,cmdshoot:[21,221],cmdshutdown:169,cmdsmashglass:224,cmdsmile:33,cmdspawn:159,cmdspellfirestorm:28,cmdstatu:[179,220,221],cmdstop:213,cmdstring:[33,58,150,154,167,168,170],cmdstyle:156,cmdtag:159,cmdtalk:214,cmdteleport:159,cmdtest:[29,42,91],cmdtestid:33,cmdtestinput:51,cmdtestmenu:[51,188,328],cmdtime:[62,169],cmdtrade:179,cmdtradebas:179,cmdtradehelp:179,cmdtunnel:159,cmdtutori:233,cmdtutorialgiveup:233,cmdtutoriallook:233,cmdtutorialsetdetail:233,cmdtweet:71,cmdtypeclass:159,cmdunban:157,cmdunconnectedconnect:[171,186],cmdunconnectedcr:[171,186],cmdunconnectedhelp:[171,186],cmdunconnectedlook:[171,186],cmdunconnectedquit:[171,186],cmduncov:182,cmdunlink:159,cmdunloggedinlook:201,cmdunwield:218,cmduse:219,cmdusepuzzlepart:203,cmdwait:33,cmdwall:157,cmdwear:182,cmdwerewolf:25,cmdwest:233,cmdwhisper:165,cmdwho:156,cmdwield:218,cmdwipe:159,cmdwithdraw:221,cmset:153,cmsg:[43,164],cmud:24,cnf:[23,36],cnt:119,coast:[111,122],coastal:111,cockpit:21,code:[0,1,2,4,5,6,7,9,10,11,12,14,15,16,18,19,20,29,31,33,34,36,37,39,40,43,45,46,47,48,49,51,53,55,56,57,58,62,63,64,68,69,70,76,77,79,80,83,84,86,88,89,91,93,94,95,96,97,98,100,102,103,104,105,106,109,110,111,112,114,115,116,117,118,119,121,122,123,125,126,127,129,132,134,135,136,139,141,142,144,149,150,153,156,158,159,164,169,172,178,179,180,184,185,190,192,195,200,204,219,233,234,242,252,256,278,279,295,306,309,318,320,321,326,328,330,341,342,343,344,362,363,364],code_exec:322,codebas:[55,56,127,129,131,139,140,170],codeblock:38,codec:321,codefunc:326,coder:[22,26,56,61,79,96,124,150,247,363],codestyl:37,coerc:339,coexist:126,coin:[61,70,179],col:[3,16,330],cold:[12,43,110,169,252,257,261,305],cole:344,collabor:[4,61,64,90,131,166],collat:[83,251],collect:[11,26,31,136,150,152,203,259,316,344],collector:136,collectstat:[136,137,267,271],collid:[31,54,90,328],collis:[31,131,310],colon:[27,41,60,80,95,242],color:[16,18,20,33,38,49,51,53,58,59,63,69,74,79,95,109,111,114,124,129,137,139,154,156,183,190,206,215,230,234,251,272,279,287,290,295,296,321,330,336,338,343,345,364],color_ansi_bright_bg_extra_map:183,color_ansi_bright_bgs_extra_map:183,color_ansi_extra_map:183,color_markup:[141,142,178],color_no_default:183,color_typ:321,color_xterm256_extra_bg:183,color_xterm256_extra_fg:183,color_xterm256_extra_gbg:183,color_xterm256_extra_gfg:183,colorablecharact:81,colorback:343,colorcod:343,colour:[27,43,55,139,159,294,321,330],column:[16,38,46,49,58,64,69,86,111,137,154,156,235,330,344],com:[3,8,9,10,16,22,23,37,38,39,41,43,45,46,54,55,61,63,67,70,75,79,90,92,94,95,96,98,100,101,103,104,108,111,122,127,128,130,131,133,135,138,141,164,180,186,279,282,291,295,312,330,343,344,357],comb:1,combat:[11,14,25,28,31,46,55,63,64,73,79,102,108,109,111,117,122,124,125,131,139,153,217,218,219,220,221,231,256,364],combat_:[217,218,219,220,221],combat_cleanup:[217,218,219,220,221],combat_cmdset:116,combat_handl:116,combat_handler_:116,combat_movesleft:[217,218,219,220],combat_scor:123,combat_status_messag:221,combatcmdset:116,combathandl:116,combatscor:123,combatt:11,combin:[8,11,12,20,27,28,30,31,33,34,41,43,55,57,58,84,90,109,112,114,115,118,119,121,127,150,151,152,159,175,202,203,205,226,242,251,261,267,317,319,324,338,344],combo:105,come:[0,2,3,4,6,10,11,15,16,20,21,23,25,27,29,33,34,40,46,49,51,52,55,57,58,61,62,64,69,73,80,83,85,88,91,93,100,105,111,114,116,118,119,121,123,124,126,129,131,133,134,135,137,144,152,187,204,217,218,219,220,221,251,252,285,290,295,296,298,304,321,329,362],comet:[40,55,137,296],comfort:[15,55,69,91,131],comlist:[43,164],comm:[33,34,41,47,53,64,68,71,141,142,149,155,324],comma:[20,43,46,86,95,114,134,159,167,168,198,199,242,247,336],command:[0,2,4,6,8,9,10,11,12,13,15,18,19,20,21,23,24,26,27,34,36,38,40,46,47,48,49,50,51,52,55,56,57,59,61,63,64,65,66,69,72,74,75,76,77,79,80,82,83,86,87,89,90,92,93,95,96,98,102,103,104,105,106,108,109,110,111,112,113,114,117,118,119,120,122,124,125,126,128,129,130,131,136,137,138,139,140,141,142,144,146,174,175,178,179,180,181,182,185,186,187,188,189,191,194,196,197,199,200,201,202,203,206,210,212,213,214,215,217,218,219,220,221,224,226,227,230,231,232,233,234,235,236,239,241,242,247,251,252,256,264,267,272,276,277,285,287,290,291,295,296,298,299,305,306,318,320,321,324,326,328,329,338,341,344,362,364],command_default_arg_regex:33,command_default_class:25,command_pars:151,commandhandl:[74,153,168,344],commandmeta:154,commandnam:[33,74,83,234,267,276,306,308],commandset:[5,80,89,153,181],commandtest:[127,170,196],comment:[8,9,13,14,24,25,37,41,48,51,60,90,96,118,125,138,322,328],commerc:79,commerci:[90,106],commerror:176,commit:[15,23,25,36,37,38,64,66,98,100,108,128,130,209,315],commmand:[212,217,218,219,220,221],common:[1,6,10,12,15,16,20,26,27,30,33,38,40,41,43,51,53,59,60,61,62,63,64,68,69,73,74,79,80,83,88,90,91,94,97,105,107,109,112,113,115,116,119,123,124,125,131,133,139,152,159,179,205,206,213,242,256,295,299,317,327,329,339,341,344,350,362],commonli:[23,63,64,83,86,87,96,104,105,107,115,119,128,247],commonmark:38,commun:[8,22,23,33,40,41,45,47,53,55,57,60,64,70,72,79,83,88,90,91,92,103,106,113,114,137,139,161,172,174,175,176,177,199,230,246,264,276,277,287,288,290,291,292,293,306,308,324,325,340,364],compact:[85,134],compani:[64,88],compar:[4,9,13,15,27,28,29,31,41,44,58,73,83,85,91,97,116,119,123,127,131,136,170,200,203,205,217,218,219,220,221,241,242,252,321,344],comparison:[13,93,241,252,328],compartment:58,compass:20,compat:[14,21,51,94,159,330,337],compet:[15,88],compil:[9,33,38,47,56,63,75,76,90,94,95,108,159,165,166,171,174,182,201,206,321,326,343],compilemessag:76,complain:[42,60,86,91,110,128],complement:[26,107],complementari:113,complet:[2,10,11,13,14,15,22,23,25,27,31,33,36,37,43,44,49,50,58,59,61,62,64,67,70,77,81,85,88,89,90,95,96,102,104,105,107,109,110,111,122,123,127,128,131,139,144,152,153,154,167,169,174,183,187,188,190,195,197,200,218,233,247,267,269,277,278,295,316,322,327,328,329,336,341,344,357],complete_task:195,completli:227,complex:[11,14,15,20,31,33,51,59,61,62,64,73,76,77,86,93,96,100,104,108,111,115,116,123,127,138,153,196,204,214,252,299],complianc:[24,187],compliant:[39,291],complic:[0,10,22,29,41,43,49,69,90,91,111,133,134,171,186,188,215,316],compon:[29,33,40,43,49,58,90,93,94,96,102,110,114,116,124,127,135,137,138,139,159,169,175,176,177,184,203,205,252,253,256,259,267,296,324,327,341,344,364],componentid:137,componentnam:137,componentst:[137,138],compos:[100,188],composit:[293,317],comprehens:[34,55,63,80,93,96,103,124,125,127],compress:[74,272,276,280,340],compress_object:340,compris:144,compromis:[103,209],comput:[10,12,43,49,56,60,63,64,72,73,100,113,115,124,131,132,157,169,206,344,345],computation:115,comsystem:[164,177],con:[43,58,79,171,186],concaten:[67,321,336],concept:[11,37,38,39,40,46,57,61,69,76,77,92,96,115,124,131,139,181,202],conceptu:[49,51],concern:[25,44,63,76,88,95,96,152,204,239],conch:[94,287,290,298],conclud:[96,179,328],concurr:23,conda:9,conder:322,condit:[8,46,49,55,61,73,85,91,93,96,123,124,150,185,206,219,242,247,259,266,267,312,344],condition:25,condition_result:185,condition_tickdown:219,conditional_flush:334,conduct:136,conductor:121,conect:308,conf:[4,8,9,23,25,35,36,38,40,41,47,54,62,65,67,69,74,76,80,81,86,90,93,102,103,109,114,120,121,127,130,131,133,134,135,139,144,183,201,267,273,274,313,322,337,364],confer:[79,344],confid:[37,39,42],config:[2,4,9,36,40,59,63,90,98,103,106,130,131,137,138,139,263,267,269,273,274,285,364],config_1:2,config_2:2,config_3:2,config_color:81,config_fil:67,configcmd:81,configdict:[287,308],configur:[0,2,7,25,36,38,43,45,47,54,59,62,63,64,69,90,100,103,114,120,124,127,136,138,139,144,148,151,156,209,210,234,260,269,274,285,308,310,312,313,317,357,364],configut:106,configvalu:59,confirm:[8,33,43,63,103,137,159,186,203,291,294,362],conflict:[41,42,126],confus:[10,22,26,31,44,58,59,60,64,77,80,87,90,91,93,97,114,119,126,131,136,137,140,186,362],conid:286,conjur:220,conn:[43,171,186],conn_tim:105,connect:[0,2,4,7,8,9,11,12,13,17,18,23,24,25,31,33,34,40,41,46,47,49,55,57,60,63,64,65,66,67,69,72,74,76,77,80,83,85,88,89,91,92,93,96,98,100,101,102,103,104,105,107,110,111,114,120,123,125,126,127,136,137,139,144,146,148,156,157,159,164,171,175,177,186,190,192,193,195,197,201,210,213,246,247,253,262,264,267,269,276,277,278,279,280,285,286,287,290,295,296,298,299,305,306,307,308,309,312,316,318,324,340,364],connection_cr:107,connection_screen:[35,104,201],connection_screen_modul:186,connection_set:54,connection_tim:[144,247],connection_wizard:[141,142,262],connectiondon:269,connectionlost:[269,276,277,287,290,298],connectionmad:[264,276,287,290,298],connectionwizard:265,connector:[264,278,279,285,308],consecut:51,consequ:[90,153],consid:[0,4,10,12,13,14,23,26,27,31,33,37,39,40,44,46,51,55,57,61,63,64,70,74,78,80,82,85,86,90,93,96,97,102,103,105,109,112,113,114,115,119,121,125,131,133,134,135,144,152,153,188,203,205,206,221,234,247,252,256,272,287,290,317,322,323,328,329],consider:[68,86,104,111,118,241,252,330],consist:[2,11,17,33,38,44,46,48,51,68,80,86,92,95,96,109,110,114,116,122,123,135,137,144,151,167,176,179,203,205,236,242,250,252,291,296,306,315,316,318,324,330,344,362],consol:[9,19,23,26,38,42,43,60,63,64,75,83,90,93,95,96,97,100,106,114,123,137,138,169,206,267],conson:205,constant:[0,88,276,342],constantli:[96,117,233],constitu:[153,167,168],constraint:[0,23],construct:[20,29,34,36,51,64,119,133,138,252,311,316,321,329,357],constructor:[22,33,180,278],consum:[10,269,344],consumer_kei:[71,120],consumer_secret:[71,120],consumpt:[23,310],contact:[89,90,100],contain:[0,5,7,9,10,11,13,14,16,17,18,20,21,22,25,26,31,33,34,37,38,39,40,41,43,46,47,51,53,55,56,57,62,63,64,68,69,70,75,79,80,86,89,91,95,96,97,101,102,104,105,114,118,119,122,123,124,126,127,128,129,133,134,136,137,138,139,141,142,144,146,149,150,151,152,153,155,158,159,166,172,180,188,189,192,193,194,195,196,197,198,200,203,204,205,206,210,211,213,215,219,224,232,234,235,238,240,247,249,250,251,252,260,262,266,270,272,298,310,311,312,316,317,318,319,320,321,322,325,327,328,329,330,341,343,344,345,355,362,363],container:100,contempl:56,content:[3,4,13,16,17,21,27,38,39,43,48,49,51,56,58,69,77,79,82,85,89,90,91,93,95,96,117,119,121,123,125,131,133,134,137,138,139,154,157,159,206,246,247,315,319,321,322,323,326,328,330,341,346,355],content_typ:[246,247],contentof:330,contents_cach:246,contents_get:[119,247],contents_set:247,contentshandl:246,context:[46,51,55,69,91,114,119,126,133,180,195,288,292,350,362],contextu:112,continu:[7,10,11,21,27,29,33,37,42,45,46,49,51,55,58,60,69,71,75,85,86,90,95,96,112,114,115,116,119,123,124,127,136,139,200,247,265,276,312,316,328,337,344,364],contrari:[0,38,41,43,62,169,319],contrast:[56,90,96,113,138,291],contrib:[4,13,14,20,38,46,47,53,57,58,62,63,64,73,78,102,116,122,141,142,144,145,148,173,237,244,254,263,309,315,321,322,349,357,362,364],contribrpcharact:206,contribrpobject:206,contribrproom:206,contribut:[1,4,22,26,45,55,70,78,82,124,127,131,136,139,178,179,181,182,183,185,187,199,200,201,203,204,206,209,210,212,213,214,234,363,364],contributor:[78,180],control:[2,5,7,9,11,12,13,14,19,20,21,31,33,34,36,37,38,42,43,47,50,51,52,53,55,57,58,61,63,64,67,68,73,74,80,81,83,86,89,90,92,93,96,102,103,105,108,109,110,114,118,121,123,124,128,135,138,139,144,146,156,158,159,164,179,181,194,206,227,231,233,235,241,247,256,267,306,308,318,328,357,364],convei:[197,206,247],convenei:107,conveni:[8,9,10,11,21,34,36,40,41,43,51,55,57,59,69,74,80,86,89,96,98,102,106,108,109,110,125,127,133,140,144,159,169,180,199,200,247,310,322,323,328,329,337,340,341],convent:[0,31,86,96,107,119,126],convention:[41,154,174,247,318],convers:[51,87,121,127,138,205,214,295,296,321,344,363],convert:[11,27,39,40,49,51,59,62,64,79,81,83,85,87,88,103,109,113,114,119,126,128,157,184,185,188,215,241,251,252,257,276,278,287,290,291,308,312,321,325,328,329,330,331,336,340,343,344,363],convert_linebreak:343,convert_url:343,convinc:[51,90],cool:[3,9,21,22,26,38,43,61,79,159],cool_gui:80,cooldown:[29,116,124,139,364],coord:39,coordi:39,coordin:[49,124,137,139,200,221,235,364],coordx:39,coordz:39,cope:220,copi:[0,1,4,13,14,20,25,26,33,36,47,48,50,51,62,64,81,90,93,96,100,104,105,109,111,123,128,131,133,135,136,137,138,158,159,182,195,217,218,219,220,221,233,247,267,276,313,321,337,362],copy_object:247,copyright:[78,90],cor:138,core:[19,37,43,47,49,76,78,88,89,94,96,104,106,125,127,131,139,144,148,169,177,178,197,199,239,241,246,247,256,262,274,284,291,305,316,318,319,322,329,335,357,362],corner:[17,39,57,79,138,235,330],corner_bottom_left_char:330,corner_bottom_right_char:330,corner_char:330,corner_top_left_char:330,corner_top_right_char:330,corpu:205,correct:[10,11,14,21,23,27,30,31,33,37,43,48,50,60,80,91,113,114,121,123,126,150,156,159,176,187,203,228,242,282,285,287,293,307,321,344],correctli:[4,8,9,27,29,33,36,38,42,44,49,50,51,61,62,72,77,80,85,90,91,94,97,110,112,115,121,122,123,126,144,148,153,156,257,276,312,340],correl:252,correspond:[20,33,80,83,85,105,135,184,200,203,215,315,357],correspondingli:128,corrupt:56,cosi:111,cosin:344,cosmet:235,cost:[28,85,90,220,235],cottag:[111,114],could:[0,1,2,3,4,5,6,9,10,11,12,13,14,15,19,20,21,22,25,28,29,30,31,33,34,36,37,38,39,40,41,42,43,44,46,47,48,49,51,55,57,58,60,61,62,63,64,65,68,69,71,72,73,79,80,81,82,83,84,85,86,87,88,89,90,91,93,95,96,98,102,106,108,109,111,112,113,114,115,116,117,118,119,120,121,123,125,126,127,128,129,132,133,135,136,138,140,144,153,159,166,176,177,179,180,185,190,197,198,204,206,213,215,233,235,241,242,247,272,291,296,312,318,321,322,326,330,331,334,339,344],couldn:[11,19,39,44,64,76,91,126,134,140,204],count:[64,102,104,116,119,120,152,182,215,219,247,259,281,285,298,302,308,310,317,321,328,337],count_loggedin:285,count_queri:302,countdown:[20,29],counter:[6,22,29,69,85,105,116,128,146,233,285,298,299,306,328],counterpart:[13,114,272,308,325],countless:95,countnod:51,countri:[43,157],coupl:[22,48,69,100,117,131,213],cours:[0,4,9,12,15,21,22,26,33,38,41,46,57,61,64,77,78,91,93,106,108,114,115,122,123,124,132,140,218,221,230],courtesi:12,cousin:[91,129],cover:[6,8,9,13,14,23,29,37,40,48,51,57,59,63,79,80,86,90,95,96,120,127,131,182,187,233,247,344,363],coverag:127,coveral:127,cpanel:90,cpattr:159,cpu:[12,43,90,103,169],cpython:93,crack:[61,86],craft:[29,80,111,188],crank:[115,258],crash:[26,60,61,79,103,111,271,316],crate:[20,87,124],crawl:103,crawler:281,cre:[43,171,186],creat:[4,9,11,13,14,15,16,19,22,23,25,26,29,31,34,35,37,38,39,40,41,42,44,46,47,49,50,54,55,56,57,58,60,61,62,63,64,65,66,67,68,70,71,72,73,75,76,77,78,79,80,81,83,85,87,90,91,93,95,96,102,103,104,105,106,107,108,109,112,116,117,118,119,120,122,124,127,129,130,131,132,134,135,136,137,138,139,140,141,142,144,145,146,148,150,151,152,153,154,156,159,164,165,166,167,168,170,171,174,175,177,179,180,181,182,184,185,186,187,188,189,194,195,196,198,199,200,201,202,203,204,205,206,210,212,214,215,217,218,219,220,221,223,224,226,227,230,231,232,233,234,235,239,242,244,246,247,249,250,251,252,256,259,260,261,264,267,271,272,277,279,280,285,287,288,292,299,307,308,310,312,316,317,318,319,320,322,323,326,327,328,330,331,336,337,344,360,362,363],create_:[89,125],create_account:[107,125,141,324],create_attribut:316,create_cal:144,create_channel:[34,141,174,175,271,324],create_charact:[144,247],create_delai:260,create_exit:[159,212],create_exit_cmdset:247,create_forward_many_to_many_manag:[148,177,239,246,256,316,318,319,335],create_game_directori:267,create_grid:49,create_help_entri:[68,141,324],create_kwarg:252,create_match:151,create_messag:[34,141,324],create_object:[13,27,80,85,89,111,123,125,133,141,247,252,271,322,324],create_prototyp:[251,252],create_script:[56,102,116,125,141,259,322,324],create_secret_kei:267,create_settings_fil:267,create_superus:267,create_tag:317,create_wild:235,created_on:192,creater:53,createview:362,creation:[11,14,20,21,38,43,47,49,51,58,60,61,79,80,81,86,89,97,105,111,123,125,131,133,139,140,141,144,145,148,159,166,175,181,200,203,206,210,212,217,218,219,220,221,232,233,239,244,246,247,252,256,261,300,315,318,324,326,327,328,330,357,362,363],creation_:324,creativ:[79,108],creator:[51,53,79,80,111,123,140,166,175,200,217,218,219,220,221,247,330],cred:[94,131,287],credenti:[90,103,131,144,287],credentialinterfac:287,credit:[90,103,131,343,344],creset:131,crew:119,criteria:[51,119,176,194,204,251,317,341],criterion:[119,131,144,179,206,238,247,258,341,344],critic:[19,26,31,60,63,67,97,102,105,114,128,242,266,267,337],critici:318,cron:67,crontab:67,crop:[58,114,159,327,330,336,344],crop_str:330,cross:[111,138,233,330],crossbario:295,crossbow:29,crossroad:111,crowd:[61,103],crt:[8,67],crucial:[91,115],crude:0,cruft:1,crumblingwal:232,crumblingwall_cmdset:232,crush:21,cryptic:138,cryptocurr:103,cscore:123,csessid:[285,295,296,308],csession:[295,296],csrf_token:133,css:[17,55,124,135,136,137,343],cssclass:137,ctrl:[48,63,67,90,93,95,100,110,298],culpa:52,cumbersom:[51,121,128,215],cumul:299,cup:70,cupidatat:52,cur_valu:190,cure:[219,220],cure_condit:219,curi:49,curiou:108,curli:[41,96,183],curly_color_ansi_bright_bg_extra_map:183,curly_color_ansi_bright_bgs_extra_map:183,curly_color_ansi_extra_map:183,curly_color_xterm256_extra_bg:183,curly_color_xterm256_extra_fg:183,curly_color_xterm256_extra_gbg:183,curly_color_xterm256_extra_gfg:183,curr_sess:308,curr_tim:187,currenc:[85,120],current:[0,2,9,11,12,13,14,19,20,21,22,25,27,28,29,31,33,38,41,43,46,48,49,50,51,58,59,60,64,68,74,76,77,79,80,85,86,89,94,97,100,102,104,105,106,112,114,115,116,119,120,121,123,124,127,128,131,133,137,138,144,148,150,151,153,154,156,157,159,164,165,166,168,169,175,179,180,182,187,188,190,195,198,200,202,204,206,212,213,215,217,218,219,220,221,230,232,233,235,238,246,247,252,256,260,261,267,272,277,283,284,287,288,299,306,308,310,317,318,326,328,330,331,337,338,341,344,362],current_choic:180,current_cmdset:159,current_coordin:235,current_kei:[250,251],current_us:133,current_weath:102,currentroom:121,curriculum:79,curs:42,curv:[55,56],curx:49,custom:[0,2,6,11,12,14,15,16,17,18,20,21,25,26,27,30,31,33,34,35,43,49,53,55,56,58,60,61,64,65,66,68,69,71,73,74,78,79,83,85,86,87,89,90,97,100,102,104,109,110,112,114,116,117,118,119,121,122,123,125,126,132,133,136,138,139,140,144,145,146,147,148,150,152,153,154,159,164,165,166,174,175,179,181,182,184,185,187,188,189,195,197,198,200,203,205,206,209,210,230,232,233,235,238,241,245,247,249,250,251,252,255,261,263,267,271,273,276,298,307,318,323,326,328,329,330,334,336,338,339,343,344,349,362,364],custom_add:195,custom_cal:[195,198],custom_gametim:[62,141,142,178],custom_kei:251,custom_pattern:[3,4,69,133,134],customfunc:83,customis:235,customiz:[17,41,180,188,190,206],customlog:8,cut:[20,40,49,50,55,91,111,123,252],cute:136,cutoff:344,cvcc:205,cvccv:205,cvccvcv:205,cvcvcc:205,cvcvccc:205,cvcvccvv:205,cvcvcvcvv:205,cvcvvcvvcc:205,cvv:205,cvvc:205,cwho:164,cyan:[114,126],cyberspac:79,cycl:[13,14,25,56,61,62,132,217,218,219,220,221],cyril:15,da2pmzu:122,daemon:[8,67,93,100,103,110,284,312],dai:[25,27,36,56,61,62,100,103,108,120,126,131,132,139,184,187,331,337,344,345],daili:87,dailylogfil:337,dali:205,dalnet:[43,164],dam:56,damag:[14,21,28,61,73,85,103,116,122,217,218,219,220,221,231,232],damage_rang:220,damage_taken:56,damage_valu:[217,218,219,220,221],damn:79,damnedscholar:48,dandi:140,danger:[13,31,38,82,97,105,152],dare:33,dark:[13,14,17,31,73,79,111,114,122,126,153,187,224,233,241,256,321,322],darkcmdset:233,darker:[114,126],darkgrai:126,darkroom:233,darkroom_cmdset:233,darkstat:233,dash:[38,119,204,215],dashcount:215,data:[2,10,13,15,22,23,25,27,43,56,57,58,59,61,64,75,83,86,87,88,90,93,96,97,100,102,104,109,112,113,119,125,128,133,134,135,137,138,139,144,145,146,154,159,169,175,188,190,194,195,206,209,210,237,244,246,247,249,253,259,261,264,265,269,273,274,276,277,278,279,280,285,286,287,288,290,291,292,294,295,296,298,299,300,305,306,307,308,310,314,315,316,317,318,319,321,322,323,324,325,327,328,329,330,333,337,338,339,340,357,362],data_in:[40,83,210,276,278,279,285,286,290,295,296,306,307,308],data_out:[40,210,285,287,290,291,296,306,307,308],data_to_port:264,data_to_serv:277,databa:267,databas:[0,4,5,6,7,11,12,13,15,17,19,20,21,23,25,27,28,29,31,34,36,38,39,43,45,47,55,56,57,58,59,60,61,63,64,74,77,80,84,87,89,91,93,100,101,102,104,105,107,110,111,112,115,116,119,123,124,125,127,131,133,134,135,136,138,139,140,144,148,152,153,159,166,169,173,174,175,176,177,187,194,195,197,206,220,233,236,238,239,241,244,246,247,250,251,253,254,256,257,261,267,271,273,284,298,305,314,315,316,317,318,319,322,324,325,332,334,340,341,344,346],datareceiv:[269,276,290,298],dataset:251,datastor:86,datbas:119,date:[7,11,12,23,34,49,62,68,75,76,86,126,128,131,133,138,145,153,157,209,331,337,345],date_appli:133,date_cr:[125,144,148,177,256,316,318],date_join:[145,148],date_s:34,datetim:[62,125,133,316,331,337,338,344,345],datetime_format:344,datetimefield:[86,133,145,148,177,246,256,316,318,344],david:79,day_rot:337,db3:[23,111,128,131],db_:[84,86,119,125,206,247,257,272,341],db_account:[182,244,246,256],db_account__db_kei:244,db_account_id:[246,256],db_account_subscript:[173,177],db_attribut:[107,119,145,148,177,244,246,256,318],db_attrtyp:316,db_attryp:87,db_categori:[86,315,316,319],db_category__iequ:86,db_channel:173,db_cmdset_storag:[145,148,182,244,246],db_data:[315,319],db_date_cr:[86,148,173,177,182,246,256,316,318],db_desc:256,db_destin:[182,244,246],db_destination__isnul:120,db_destination_id:246,db_entrytext:[237,239],db_header:177,db_help_categori:[237,239],db_hide_from_account:177,db_hide_from_channel:177,db_hide_from_object:177,db_hide_from_receiv:177,db_hide_from_send:177,db_home:[182,244,246],db_home_id:246,db_index:86,db_interv:[254,256],db_is_act:256,db_is_bot:[145,148],db_is_connect:[145,148],db_kei:[69,84,86,119,125,145,173,182,194,237,239,244,254,257,263,274,315,316,318,319,357],db_key__contain:125,db_key__icontain:86,db_key__istartswith:119,db_key__startswith:[119,125],db_locat:[84,119,182,244,246],db_location__db_tags__db_kei:119,db_location__isnul:120,db_location_id:246,db_lock_storag:[145,173,177,182,237,239,244,316,318],db_messag:[173,177],db_model:[316,319],db_obj:[254,256,325],db_obj_id:256,db_object_subscript:[173,177],db_permiss:[86,145],db_persist:[254,256],db_properti:272,db_protototyp:251,db_receiv:173,db_receivers_account:177,db_receivers_channel:177,db_receivers_object:177,db_receivers_script:177,db_repeat:[254,256],db_sender:173,db_sender_account:177,db_sender_extern:177,db_sender_object:177,db_sender_script:177,db_sessid:[182,244,246],db_staff_onli:[237,239],db_start_delai:[254,256],db_strvalu:316,db_tag:[119,145,148,177,237,239,244,246,256,318,319],db_tags__db_categori:[39,119],db_tags__db_kei:[39,119,173],db_tags__db_key__in:39,db_tagtyp:[315,319],db_text:86,db_typeclass_path:[86,120,145,182,244,246,254,318,344],db_valu:[84,263,274,316],dbef:341,dbhandler:357,dbholder:316,dbid:[43,125,146,164,318],dbid_to_obj:344,dbmodel:317,dbobj:[11,316],dbobject:[11,317,318],dbprototyp:[169,251],dbref:[12,13,20,43,58,66,80,109,111,116,119,121,122,125,128,144,148,157,159,164,169,176,188,203,206,212,233,235,241,246,247,250,251,252,256,258,317,318,324,341,344],dbref_search:317,dbref_to_obj:344,dbrefmax:[43,159],dbrefmin:[43,159],dbsafe_decod:340,dbsafe_encod:340,dbserial:[11,97,141,142,257,320],dbshell:[23,86,110,128],dbunseri:325,ddesc:56,deactiv:[43,63,64,81,117,164,187,227,231,328],deactivatebuttonev:227,dead:[112,231,232,305,308,334],deadli:122,deal:[10,11,12,15,41,51,64,69,73,91,103,105,112,113,116,124,126,127,131,134,138,139,144,179,180,184,188,217,218,219,220,221,246,247,306,318,321,338,362],dealt:[167,168,219,220],dealth:219,death:[51,73,120],death_msg:231,death_pac:231,debat:91,debian:[8,23,63,67,131],debug:[14,27,43,45,51,59,72,74,91,95,102,106,135,139,150,154,158,169,188,230,249,267,272,278,279,290,312,322,328,337,344,364],debugg:[15,42,110,141],decemb:90,decend:[51,150],decent:[93,205],decic:205,decid:[4,14,15,25,33,41,46,58,61,69,73,85,86,88,90,103,105,112,114,116,126,138,150,179,217,242,329],deciph:48,decis:[73,115],declar:[114,340],declared_field:[145,237,244,315,357],declin:[51,179],decod:[15,291,321,344],decode_gmcp:291,decode_msdp:291,decoded_text:344,decompos:133,decompress:[276,340],deconstruct:[122,170,228,293,342],decor:[0,29,33,46,107,131,148,246,256,264,276,277,318,324,328,329,344],decoupl:[9,251],decoupled_mut:11,decreas:[220,233,326],decrease_ind:326,dedent:[50,344],dedic:[73,90,127],deduc:326,deduce_ind:326,deduct:[73,85,217,218,219,220,221],deem:[37,57,129,131,178,362],deep:79,deeper:[41,215],deepest:159,deepli:11,deepsiz:344,def:[1,3,4,5,6,10,11,21,22,25,27,28,29,30,31,33,38,39,40,41,42,44,48,49,50,51,56,57,58,60,62,69,71,73,74,79,80,81,82,84,85,89,91,95,96,102,107,109,111,114,116,117,118,119,120,121,123,125,127,132,133,134,180,187,234,235,250,296,309,326,328,329,336,344],def_down_mod:219,defalt_cmdset:71,default_access:[1,11,316,324],default_categori:238,default_channel:34,default_charact:189,default_cmd:[5,21,22,25,28,29,30,41,44,53,57,58,62,81,116,119,141,180,182,187,199],default_cmdset:[5,22,25,30,35,41,44,57,58,60,62,81,105,123,153,180,181,182,187,188,200,202,212,215,217,218,219,220,221],default_command:25,default_confirm:[159,203],default_error_messag:340,default_hom:[59,109],default_in:137,default_out:137,default_pass:324,default_screen_width:33,default_set:[3,127],default_transaction_isol:23,default_unload:137,defaultaccount:[2,41,43,53,64,125,141,144,146,160,247,342],defaultchannel:[6,53,125,141,175],defaultcharact:[5,6,22,25,43,53,57,58,60,62,73,81,86,89,96,123,125,127,141,144,161,180,182,189,197,206,217,218,219,220,221,247,342],defaultcmdset:[185,224],defaultdict:257,defaultexit:[6,53,85,89,125,141,197,212,213,232,235,247,342],defaultguest:[53,141,144],defaultlock:241,defaultmod:337,defaultobject:[5,6,26,53,60,64,82,85,86,89,96,111,117,119,121,125,141,144,182,197,206,214,218,221,226,232,247,318,342],defaultpath:344,defaultroom:[6,39,49,53,56,85,89,125,132,141,187,197,206,233,235,247,342],defaultscript:[53,56,102,116,120,121,125,141,146,179,184,195,203,204,205,217,218,219,220,221,223,227,235,251,258,259,300,331,342],defaultsess:[43,162],defaulttyp:312,defaultunloggedin:[43,163,201],defeat:[73,116,122,217,218,219,220,221,231],defeat_msg:231,defeat_msg_room:231,defend:[51,116,122,217,218,219,220,221,232,247],defens:[116,217,218,219,220,221],defense_valu:[217,218,219,220,221],defer:[10,27,29,33,94,133,145,148,150,177,187,213,239,246,247,256,260,264,274,276,277,308,312,316,318,319,335,337,344],deferredlist:312,defin:[0,2,4,5,10,11,12,13,14,20,21,22,25,27,30,35,36,38,40,42,43,44,46,49,50,53,55,56,57,58,59,61,62,64,68,69,73,74,77,78,81,83,85,88,89,91,95,96,97,104,106,109,111,113,114,115,117,119,121,123,125,126,127,129,133,135,136,137,138,139,141,143,145,148,150,152,153,154,156,159,165,167,168,169,170,173,175,176,177,180,182,183,184,185,187,188,194,195,198,200,203,204,205,206,214,215,219,220,223,224,227,232,233,236,237,238,239,240,241,242,243,244,246,247,251,252,256,259,261,262,264,267,274,277,298,299,306,307,308,311,314,316,317,318,319,321,322,323,326,328,331,335,336,339,341,344,346,357,362],define_charact:51,definit:[0,2,5,10,12,14,20,33,34,39,41,42,43,55,60,61,68,69,82,83,87,88,89,109,114,115,124,127,152,154,159,164,167,168,192,203,226,232,240,242,246,251,252,258,322,324,328,336,340],defit:51,deflist:312,degrad:127,degre:38,deindent:344,del:[11,12,29,43,58,80,116,122,157,159,187,202,203,250,318],del_callback:[193,195],del_detail:187,del_pid:267,delaccount:12,delai:[0,28,33,45,120,184,188,195,213,232,260,261,279,285,308,323,344],delaliaschan:[43,164],delayed_import:308,delchanalia:[43,164],delcom:[58,164],deleg:[148,177,239,246,256,316,318,319,335],delet:[2,4,7,11,12,13,20,22,23,31,43,50,51,63,66,68,80,87,89,98,100,102,105,107,111,112,116,122,128,131,144,153,156,157,158,159,164,165,166,169,174,175,177,187,192,193,195,196,197,199,202,203,212,227,232,239,242,247,251,257,258,259,261,273,285,306,315,316,318,321,322,328,334,360,362],delete_attribut:316,delete_default:[31,153],delete_prototyp:251,deletet:187,deleteview:362,deliber:[11,42,129],delic:182,delimit:[91,167,168,322],delin:48,deliv:[90,199,206],delpart:203,delresult:203,deltatim:344,delux:90,demand:[30,58,61,73,90,115,117,144,175,187,247,309,323],demo:[22,55,79,138,229,230,328],democommandsetcomm:230,democommandsethelp:230,democommandsetroom:230,demon:109,demonin:344,demonstr:[0,4,22,126,133,180,188,209,219],demowiki:4,deni:[8,103,194,198],denot:[56,114,134,322],denounc:327,depart:49,depend:[0,4,10,11,12,14,15,16,22,27,31,33,34,37,40,43,46,49,51,55,57,58,61,63,64,69,72,73,74,75,83,85,88,90,93,95,97,100,102,103,104,105,106,111,114,115,116,118,123,125,131,133,134,137,138,143,150,152,154,156,169,175,180,181,185,187,193,205,235,242,247,251,259,261,267,287,290,296,298,308,318,319,326,328,329,344],deplet:219,deploi:[38,46,90,103],deploy:[36,38,79,90,100,106],depmsg:337,deprec:[27,51,109,141,142,252,262,321,328,337,344],deprecationwarn:266,depth:[16,17,36,95,114,122,124,215,252],dequ:[11,310],deriv:[23,56,63,67,100,108,119,125,127,234,321,345],desc:[14,20,21,22,34,41,57,58,60,69,74,80,84,85,89,102,109,111,116,120,134,153,156,159,170,180,182,187,202,203,212,215,220,235,256,265,322,324,326,327,328,357,362],desc_al:231,desc_dead:231,desc_lamp_broken:226,desc_lid_clos:226,desc_lid_open:226,descend:[119,357],describ:[5,9,11,13,14,20,21,22,30,31,33,37,43,46,51,55,58,62,63,64,68,69,71,75,76,79,80,85,86,88,90,92,96,102,109,110,111,113,114,116,124,125,127,128,131,133,135,137,139,152,159,163,164,165,177,182,184,187,204,206,220,226,244,252,259,264,285,287,290,300,328,343,344,363],descripion:231,descript:[0,14,15,20,21,22,34,39,41,43,46,49,51,54,55,57,58,60,61,68,74,77,85,90,96,102,109,111,112,126,129,131,133,134,135,139,145,156,159,164,165,175,179,180,182,187,202,204,206,212,215,226,230,231,232,233,234,235,237,241,244,247,256,322,324,328,338,339],description_str:111,descvalidateerror:202,deseri:[11,97,338],deserunt:52,design:[14,16,23,26,33,37,39,41,55,57,61,79,89,91,108,109,111,112,117,118,119,124,129,133,138,153,159,180,194,206,209,232,247,322,338,344],desir:[1,4,27,28,29,43,49,57,58,59,91,108,112,114,115,119,121,123,133,137,159,183,205,242,267,312,316,324,330,345],desired_perm:242,desktop:[15,16,138],despit:[11,13,57,63,64,79,81,105,233],dest:[234,247],destin:[0,22,25,33,43,49,74,77,85,89,91,109,111,119,121,159,197,200,209,212,213,217,218,219,220,221,232,233,241,246,247,252,324,362],destinations_set:246,destroi:[0,20,89,103,116,127,144,146,159,164,203,219,247],destroy:212,destruct:[31,152],detach:106,detail:[2,5,9,12,15,19,20,22,26,30,33,34,37,41,46,51,58,60,61,63,64,80,88,89,90,91,93,95,96,105,109,111,114,116,118,122,124,125,128,129,131,134,135,136,139,145,153,154,159,175,180,187,203,204,206,218,233,235,239,244,251,252,269,270,306,308,318,321,326,336,344,360,362],detail_color:159,detailkei:[187,233],detailview:362,detect:[31,33,36,38,61,81,88,89,103,105,118,151,154,168,175,279],determ:317,determin:[2,4,13,15,20,27,29,31,33,34,39,43,44,49,50,51,52,63,73,80,82,83,85,87,93,102,109,110,116,123,136,137,144,145,152,153,154,156,167,173,175,179,200,205,206,213,215,217,218,219,220,221,232,239,242,244,247,251,291,316,317,318,321,326,329,344],detour:[21,83,308],dev:[1,23,37,55,57,61,63,64,67,71,76,79,90,95,98,138],develop:[3,9,15,16,19,20,25,26,27,33,36,37,38,42,43,48,54,55,56,58,60,61,63,64,68,70,71,72,76,77,80,86,88,90,91,93,94,96,97,99,104,106,108,109,111,114,123,126,131,133,135,136,137,138,139,157,158,164,169,175,192,193,198,209,227,239,247,252,313,318,322,328,363,364],devoid:321,dex:[11,51,58,327],dexter:[217,218,219,220,221],diagnos:[30,97],diagram:125,dialog:137,dialogu:[0,124,139,364],dice:[63,73,91,116,141,142,178],dicecmdset:185,dicenum:185,dicetyp:185,dict:[0,11,13,25,31,43,46,51,53,88,107,109,119,127,144,146,152,154,159,175,182,184,187,188,192,195,197,198,200,205,206,209,210,215,219,221,233,247,249,250,251,252,259,261,264,265,267,272,277,278,280,285,287,290,295,296,307,308,310,317,322,323,325,327,328,329,336,339,344,357,362],dictat:[31,62,117],dictionari:[0,10,11,13,25,31,43,49,55,56,62,69,73,80,96,97,102,109,116,124,134,138,157,159,182,184,187,188,192,195,198,200,205,206,209,210,211,215,219,220,233,235,242,252,272,285,294,306,307,308,310,317,321,323,327,328,334,338,339,340,344,357,362],did:[2,21,22,29,57,60,64,68,91,95,96,104,111,123,131,144,179,247,319,340,344],did_declin:179,didn:[5,20,22,38,41,42,44,49,51,58,59,61,72,80,91,100,104,119,121,126,127,133,136,140],die:[73,91,106,114,117,185,205,308],dies:231,diff:[75,131,185,252],differ:[0,2,8,9,11,13,14,15,16,19,20,21,22,24,25,27,31,33,37,38,39,40,41,42,43,44,46,47,49,50,51,54,55,57,58,61,62,63,64,66,68,69,70,73,79,80,82,83,84,87,88,91,93,95,96,100,102,103,105,106,107,109,110,111,112,113,114,115,116,118,119,120,121,124,126,127,129,131,133,136,137,138,139,140,141,144,145,150,152,153,156,159,168,169,171,175,180,184,185,186,195,196,199,204,206,213,215,217,218,219,220,221,224,234,235,247,249,251,252,256,259,261,265,269,291,296,298,315,316,318,322,324,328,337,340,344,362],differenti:[56,57,58,182,206,215,247,344],differet:61,difficult:[4,39,93,103,133,220,221],difficulti:133,dig:[0,20,31,33,40,57,58,89,93,96,109,121,123,140,159,212,299],digit:[12,90,114,127,204,311,321,337],digitalocean:[67,90],diku:[55,64,124,139,364],dikumud:129,dime:108,dimens:[49,55],dimension:58,diminish:114,dimli:111,dinner:46,dip:96,dir:[9,21,23,36,38,54,58,63,64,67,75,79,90,96,100,102,127,128,130,131,134,337,344],direct:[0,3,8,10,11,12,20,22,31,38,43,44,45,49,51,58,70,74,88,90,100,109,111,116,118,119,121,128,137,138,139,159,194,200,210,235,242,267,328,330,337,341,344,364],directli:[2,5,8,13,14,20,21,23,27,29,30,33,37,40,42,44,46,50,51,55,56,58,59,61,62,64,72,80,88,89,90,93,94,95,96,100,102,104,109,110,111,114,116,118,119,123,125,128,131,137,138,154,170,175,176,179,180,181,185,198,206,215,220,221,227,233,234,238,242,246,247,251,256,273,278,287,290,295,300,306,316,318,322,324,328,329,342,344],director:206,directori:[4,8,9,13,20,25,27,36,37,43,45,58,59,62,63,64,69,75,76,95,96,100,106,123,125,127,128,130,131,133,134,135,136,137,139,159,209,267,287,288,312,322,337,344,364],directorylist:312,dirnam:267,dirti:55,disabl:[0,4,24,25,50,63,80,81,106,114,127,137,154,170,188,206,215,234,242,290,329,334,345],disableloc:290,disableremot:290,disadvantag:[58,90,116,221],disambigu:[41,72,119,154,174,247,318],disappear:103,discard:[175,321],disconcert:41,disconnect:[2,11,12,40,41,43,55,57,60,92,97,105,107,110,112,116,123,128,137,144,156,159,164,167,169,175,201,247,277,278,279,285,286,287,290,295,296,299,305,306,307,308],disconnect_al:285,disconnect_all_sess:308,disconnect_duplicate_sess:308,disconnect_session_from_account:144,discontinu:24,discord:[9,63,72,79],discordia:108,discourag:[64,75],discov:[91,122,316],discoveri:210,discrimin:103,discuss:[1,4,25,26,33,37,45,48,55,63,69,70,116,138,139],discworld:88,disengag:[116,144,217,218,219,220,221],disk:[11,27,86,100,108,110,205,209,249],dislik:57,disonnect:11,dispatch:[37,70],dispel:126,displai:[0,17,22,25,30,31,33,38,42,43,46,50,51,58,59,60,61,68,69,73,80,81,82,83,85,88,89,91,93,101,102,103,104,111,114,116,119,123,124,133,134,135,136,137,138,139,145,154,156,159,166,169,171,173,175,179,180,182,186,187,188,190,193,195,197,199,201,206,215,230,232,233,234,235,237,247,251,252,254,265,267,284,302,305,310,318,319,326,327,328,329,330,338,339,340,343,344,345,357,362],display:261,display_buff:326,display_choic:180,display_formdata:188,display_help:326,display_helptext:[249,328],display_len:344,display_met:190,display_nodetext:328,display_titl:180,dispos:[111,203],disput:116,disregard:33,dist3:94,dist:[63,130],distanc:[6,27,39,46,49,64,125,205,220,221,247,344],distance_inc:221,distance_to_room:39,distant:[49,138,187,233],distinct:[55,64,105,140,221],distinguish:[22,154,215,221],distribut:[8,9,15,23,31,34,42,63,64,78,96,97,124,127,128,175,177,206,321,324,344],distribute_messag:175,distributor:34,distro:[8,23,63,67,72],disturb:[27,140],distutil:63,distutilserror:63,ditto:63,div:[3,16,17,38,109,137,250],dive:[22,41,63],diverg:83,divid:[13,64,69,184,233,344],dividend:184,divisiblebi:69,divisor:184,django:[2,3,4,9,12,15,23,25,36,39,55,63,69,73,76,79,86,94,101,103,104,107,112,113,120,124,125,127,128,134,136,137,139,144,145,148,171,173,175,177,186,237,239,244,246,251,254,256,263,266,267,273,274,287,293,295,296,303,309,310,311,312,315,316,318,319,322,325,329,333,334,335,340,342,344,346,349,352,357,362],django_admin:360,django_nyt:4,djangonytconfig:4,djangoproject:[23,94,357],djangowebroot:312,dmg:73,dnf:[8,63,67],do_attack:231,do_batch_delet:316,do_batch_finish:316,do_batch_update_attribut:316,do_create_attribut:316,do_delete_attribut:316,do_flush:[318,334],do_gmcp:291,do_hunt:231,do_mccp:280,do_msdp:291,do_mssp:281,do_mxp:282,do_naw:283,do_nested_lookup:159,do_not_exce:25,do_noth:230,do_patrol:231,do_pickl:325,do_task:260,do_unpickl:325,do_update_attribut:316,do_xterm256:321,doabl:[14,138],doc:[11,16,17,23,25,33,45,51,53,60,64,68,70,79,86,94,95,96,109,110,125,129,130,136,139,141,159,204,234,278,344,357,363,364],docker:[7,63,79,90,139,364],dockerfil:100,dockerhub:100,docstr:[1,5,25,38,41,43,68,74,96,154,159,170,180,193,205,206,215,233,234,328],documen:96,document:[0,3,5,6,9,16,17,20,22,23,24,25,26,29,41,43,46,47,48,52,55,57,58,60,64,68,70,76,79,83,86,90,94,96,103,104,106,111,114,118,121,122,123,124,125,127,131,133,135,136,139,153,167,180,204,234,316,319,327,334,362],dodg:218,doe:[2,4,5,9,11,20,21,23,24,25,26,29,31,33,37,38,39,40,41,43,49,51,54,55,56,57,58,60,61,63,64,68,69,73,78,80,85,88,89,91,95,96,100,102,104,109,110,111,112,113,114,116,117,118,119,121,123,125,126,127,129,131,132,133,136,137,138,140,144,146,156,164,167,169,171,174,181,182,183,186,187,200,202,203,215,217,218,219,220,221,232,233,234,235,247,251,252,259,266,267,271,272,273,276,279,287,288,294,316,318,323,328,336,337,340,344,349,357,362],doesn:[0,4,9,11,13,15,22,25,26,29,33,36,37,39,44,46,49,51,57,60,61,63,69,71,72,73,75,76,78,86,88,89,90,91,95,96,103,110,111,121,123,125,126,127,128,133,136,137,138,153,177,181,187,194,195,206,219,242,260,267,280,287,291,316,321,328,339,344],doesnotexist:[144,146,148,175,177,179,182,184,187,189,195,197,203,204,205,206,212,213,214,217,218,219,220,221,223,226,227,231,232,233,235,239,246,247,251,256,259,274,300,316,319,324,331,335],doff:218,dog:[27,96],doing:[2,4,10,11,27,29,31,33,36,38,39,43,46,49,51,57,58,59,60,61,64,69,70,79,80,89,90,95,96,97,105,110,114,115,119,125,126,127,133,134,137,138,144,156,179,182,194,206,215,217,218,219,220,221,226,231,232,235,241,247,261,298,328,334,340],dolor:52,dom:137,domain:[8,55,67,90,103,138,324],domexcept:90,dominion:9,dompc:9,don:[0,1,3,4,6,9,10,11,20,21,22,23,25,26,27,29,30,31,33,34,37,38,39,41,42,43,44,46,47,50,51,54,58,59,61,62,63,64,67,68,69,70,72,73,75,80,81,82,83,85,86,88,90,91,93,95,96,97,102,103,104,105,106,111,114,116,119,122,123,125,126,127,128,131,132,133,134,135,136,138,140,144,146,152,153,159,164,165,166,167,168,174,175,180,185,194,198,205,206,218,219,220,224,227,233,234,235,242,246,247,251,252,261,271,272,279,284,285,290,292,299,306,313,318,321,322,328,334,337,340,344,357,362],donald:93,donat:[70,90],done:[1,4,6,9,10,11,20,21,22,25,29,30,31,33,34,36,37,38,39,41,43,44,49,51,55,56,57,58,59,61,62,63,64,67,69,70,73,76,80,82,85,87,90,91,93,100,107,108,110,115,116,117,118,119,120,121,123,126,128,131,133,136,137,144,154,156,174,175,179,185,205,221,227,235,242,246,247,259,261,267,280,284,286,288,292,296,302,305,306,308,313,316,321,322,329,334,344,362],donoth:259,dont:[79,289],doom:252,door:[0,20,22,27,43,49,61,80,85,89,103,159,212],doorwai:212,dot:[22,43,119,153,159,322,344],dotal:[321,343],dotpath:344,doubl:[22,38,43,57,97,119,133,152,171,343,344],doublet:[152,153],doubt:[22,138,234],down:[0,4,6,11,12,21,22,29,31,33,36,38,39,41,43,49,50,51,55,57,58,61,63,73,81,85,86,90,91,93,96,100,102,103,104,106,108,111,114,119,122,123,136,137,144,159,169,195,209,215,218,219,232,235,241,247,252,259,261,267,269,276,277,284,285,305,306,308,321,329,330,344],download:[5,9,23,26,63,64,72,75,79,90,100,101,128,130,131,139],downtim:[29,103,331],downward:[43,156],dozen:[25,55,108],drag:137,draggabl:138,dragon:56,dramat:[11,61],drape:182,draw:[14,38,39,49,73,119,330],draw_room_on_map:49,drawback:[14,23,28,29,51,58,73,86,138,181,322],drawn:[49,58,111],drawtext:73,dream:[26,55,61,129],dress:182,drink:[316,318],drive:[9,19,21,61,63,64,96,100,121,131,133],driven:[25,79,123,214,249],driver:23,drizzl:[102,132],drop:[6,9,14,20,21,23,25,33,37,40,55,57,58,60,69,70,73,80,85,86,87,88,89,90,117,118,121,128,137,138,159,165,182,197,203,214,218,221,226,241,247,276,318,322,344],drop_whitespac:330,dropdown:[106,138],droplet:67,droplock:241,dropper:[197,218,221,247],drum:90,dry:67,dtobj:344,duck:[27,95],duckclient:24,due:[5,6,12,22,29,31,33,40,43,58,60,62,63,64,76,90,91,93,95,96,104,107,125,126,140,153,169,197,246,247,269,305,308,315,321,337],duh:108,dull:[20,26,111],dumb:[20,138,308,321],dummi:[9,33,54,59,80,93,127,206,242,267,285,298,299,306],dummycli:298,dummyfactori:298,dummyrunn:[141,142,262,267,285,297,299,301],dummyrunner_act:298,dummyrunner_actions_modul:298,dummyrunner_set:[93,141,142,262,267,297],dummyrunner_settings_modul:93,dummysess:308,dump:[34,209,276],dungeon:[55,77,112],dupic:31,duplic:[31,37,96,152,159,261,318,337],durat:[10,28,132,139,219,338,345,364],dure:[9,11,29,31,38,40,55,60,61,63,66,68,79,80,95,97,100,102,105,107,116,123,132,135,136,137,140,144,152,164,170,187,200,203,227,231,233,234,242,244,258,276,286,322,324,328,337,357],duti:64,dwarf:111,dwummte9mtk1jjeypxrydwubb:79,dying:[217,218,219,220,221],dynam:[2,3,34,43,68,82,86,90,111,114,115,124,133,137,138,139,144,148,154,166,169,170,174,177,188,206,215,217,218,219,220,221,239,246,247,256,261,316,318,319,324,326,328,335,338,344,362,364],dyndns_system:90,e_char_typeclass:120,ea45afb6:101,each:[0,1,2,4,5,10,11,13,19,20,22,27,29,31,33,34,36,38,39,40,42,43,48,49,51,55,56,57,58,59,61,62,64,69,73,77,80,82,83,85,86,95,96,97,100,102,104,105,108,109,111,112,114,115,116,119,121,123,124,125,126,127,132,133,136,137,138,140,144,151,152,153,157,159,168,175,179,181,182,183,187,188,200,203,205,206,215,217,219,220,221,228,235,239,242,246,247,252,258,261,269,272,285,287,290,294,299,306,307,308,316,318,319,321,322,324,326,327,328,329,330,334,336,344],eaoiui:205,earli:[36,138,217,218,219,220,221,269],earlier:[3,9,13,31,36,51,54,58,60,61,62,64,74,85,95,96,106,119,121,123,131,134,272],earn:124,earnest:124,earth:[82,103],eas:[31,33,39,86,90,100,126],easi:[0,5,10,13,17,22,23,26,29,33,38,39,43,46,51,55,56,61,62,67,68,69,72,73,76,79,81,82,85,88,89,90,100,102,106,108,111,113,116,118,123,125,126,127,128,131,133,134,138,140,153,157,164,182,188,215,328,334],easier:[1,4,10,11,12,22,25,37,38,39,47,51,55,56,57,58,61,62,69,73,86,90,91,95,96,102,109,126,136,205,215,217,218,219,220,221,232,260,309,319,344],easiest:[0,5,12,15,25,27,30,46,58,63,67,70,76,123,128,131,133,135,209,318],easili:[0,3,4,11,12,13,14,17,20,25,27,28,33,34,37,38,39,46,48,49,51,55,58,60,61,62,63,68,70,73,80,83,85,88,90,91,96,98,100,103,105,106,107,108,109,111,112,119,122,123,131,133,136,137,138,140,166,177,179,180,182,188,190,194,205,212,215,217,218,219,220,221,234,238,239,241,261,322,328,339],east:[25,44,49,111,159,200,233],east_exit:233,east_west:111,eastern:[62,111],eastward:233,eccel:330,echo1:29,echo2:29,echo3:29,echo:[5,10,12,20,26,27,28,29,33,36,38,43,44,49,50,55,59,65,71,90,95,96,98,100,104,109,110,116,118,123,132,140,144,146,157,159,164,169,182,185,197,206,226,231,232,233,247,265,272,287,290,326,344],echotest:5,econom:[55,79,86],economi:[61,73,102,108,120,179],ecosystem:100,ect:96,ed30a86b8c4ca887773594c2:122,edg:[16,27,131,330,344],edgi:49,edit:[0,1,4,5,6,9,11,13,14,23,25,26,30,33,35,37,40,41,43,46,48,54,56,58,59,60,61,62,67,68,69,70,75,76,79,80,81,86,95,96,97,100,101,104,106,109,111,114,128,133,134,135,136,137,138,157,159,166,169,180,186,188,192,193,195,196,201,202,203,237,242,244,247,249,251,252,316,326,357,362,364],edit_callback:[193,195],edit_handl:159,editcmd:22,editor:[0,5,9,15,21,22,33,38,43,45,46,53,57,60,63,67,76,79,95,96,97,108,109,111,131,139,159,166,168,169,180,202,256,322,326],editor_command_group:326,editorcmdset:326,editsheet:58,edu:124,effect:[6,10,11,14,27,28,29,31,35,39,43,56,57,58,61,73,87,95,104,107,110,111,114,115,116,117,124,126,127,128,129,138,140,141,142,144,152,153,159,168,185,195,218,219,220,226,227,231,233,240,247,253,256,280,336,344],effici:[11,26,28,29,39,55,56,64,76,79,86,87,93,95,103,112,115,119,125,132,179,206,213,242,247,261,316,317,319,326,329],effort:[37,56,131,134,362],egg:75,egg_info:63,egi:269,either:[0,4,9,12,13,17,23,27,29,31,33,34,37,38,39,41,43,44,46,49,51,56,57,58,69,73,80,83,90,91,93,95,97,102,103,105,109,110,111,112,114,116,119,121,122,123,125,126,128,131,137,138,144,146,152,153,154,164,169,174,175,176,180,192,198,199,201,205,206,212,215,217,220,221,242,247,251,252,256,258,259,261,265,276,288,292,299,317,318,319,328,330,336,337,339,341,344],elabor:[4,22,85,91,123],electr:[90,124],eleg:37,element:[16,17,22,41,43,51,55,91,114,151,156,180,184,204,205,247,252,316,317,319,322,327,328,329,344],elev:[46,82,124,139,364],elif:[0,41,49,51,58,73,102,116,117,123],elimin:[96,100,321],ellipsi:96,ellow:[114,321],els:[0,1,2,5,9,10,12,19,20,21,22,23,25,27,29,30,33,38,39,41,42,46,48,49,51,58,60,68,69,73,80,81,82,84,85,90,91,95,102,103,111,114,115,116,117,120,121,123,127,131,133,134,137,179,182,188,204,217,218,219,220,221,235,246,296,318,328,344],elsewher:[2,29,31,58,70,96,112,133,138,153,233,267,308,316],elvish:205,emac:[14,79],email:[63,64,67,131,144,145,186,324,338,344,345,357],email_login:[141,142,178],emailaddress:344,emailfield:[145,357],emb:[38,58,109,114,187,252],embark:121,embed:[109,114,125,138,250,327,336,344],emerg:[76,80,103],emi:205,emit:[25,34,108,137,153,157,175,189,247,306,337],emit_to_obj:[153,247],emitt:83,emo:21,emoji:24,emot:[33,41,43,55,68,116,165,179,205,206],emoteerror:206,emoteexcept:206,emphas:[38,61],emphasi:38,emploi:345,empti:[0,2,3,6,9,10,14,25,31,33,38,41,42,43,47,49,51,54,58,60,63,64,69,73,77,84,86,88,89,91,96,97,100,114,115,117,119,123,125,127,128,131,134,137,138,150,151,157,159,170,180,190,192,206,251,252,265,272,276,298,299,315,322,324,328,330,341,344],empty_color:190,empty_permit:[145,237,244,357],empty_threadpool:312,emptyset:31,emul:[43,64,75,105,123,129,169],enabl:[8,24,43,71,100,103,106,114,126,134,137,144,175,188,290,345],enable_recog:206,enableloc:290,enableremot:290,encamp:46,encapsul:338,encarnia:79,encas:326,enclos:[35,43,50,171,186,336],encod:[7,27,58,111,139,278,291,295,296,321,340,344,364],encode_gmcp:291,encode_msdp:291,encoded_text:344,encompass:27,encount:[60,95,153,345],encourag:[3,22,24,39,70,91,94],encrypt:[7,8,43,83,103,164,287,288,292],end:[1,5,6,8,9,10,11,13,14,19,20,21,22,23,25,27,28,29,31,33,34,38,39,40,43,47,50,51,54,55,58,60,62,64,65,67,69,73,76,80,81,83,86,87,88,90,91,93,95,96,100,105,107,108,109,114,116,118,119,121,122,123,126,128,131,133,134,135,137,138,140,144,146,152,153,159,165,166,174,179,181,182,185,190,202,206,214,215,217,218,219,220,221,233,238,250,271,278,279,287,290,291,301,306,310,312,317,321,322,324,328,329,330,336,337,344,362],end_convers:51,end_turn:116,endblock:[3,69,133,134],endclr:[114,336],endfor:[69,133,134],endhour:25,endif:[69,133,134],endlessli:103,endpoint:103,endsep:344,endswith:321,ened:94,enemi:[11,29,51,61,109,116,122,219,220,221,231,232,233],enemynam:51,enforc:[10,33,41,61,73,80,114,126,138,287,290,329,330,362],enforce_s:330,engag:[55,221,231],engin:[22,23,33,36,43,55,56,64,68,73,77,79,89,102,103,104,122,127,131,136,140,150,153,168,169,210,233,238,267,278,284,287,290,295,305,307,322,324],english:[15,76,79,97,113,139],enhanc:[59,81,114,209,321,362],enigmat:20,enjoi:[61,63,91,106],enough:[4,6,21,29,38,39,41,42,43,51,55,57,58,61,63,64,69,70,80,84,85,87,90,91,96,108,112,115,119,123,126,136,153,159,204,205,226,235,328,329,330],ensdep:344,ensur:[49,69,94,100,106,117,126,127,215,310,342,362],ensure_ascii:296,enter:[0,1,3,5,9,12,13,14,15,20,21,22,23,25,26,27,29,31,33,35,36,41,42,43,44,46,51,58,62,63,64,66,69,75,77,80,83,85,87,89,91,95,96,100,109,111,114,116,117,119,122,123,124,128,129,131,133,135,138,139,141,144,151,153,158,167,168,169,174,179,180,182,187,188,198,201,215,217,218,219,220,221,231,233,235,241,247,252,256,265,306,328,357],enter_guild:51,enter_nam:51,enter_wild:235,enterlock:241,enterpris:36,entir:[10,11,13,14,19,22,27,29,33,46,49,50,51,60,61,69,80,86,90,91,108,111,114,115,123,125,127,136,180,205,206,215,234,241,242,247,251,252,318,322,328,330,334,336,344,362],entireti:[51,73,188,328],entit:324,entiti:[6,11,27,34,43,47,51,53,55,59,61,64,80,84,87,89,102,105,107,109,112,116,119,125,126,139,143,144,154,159,169,175,176,177,206,212,241,247,249,250,251,252,253,256,257,259,261,308,316,317,319,324,328,329,333,341,344],entitii:107,entitl:90,entranc:111,entri:[4,5,11,15,24,25,27,31,33,34,43,47,48,51,53,54,58,59,63,69,70,72,77,80,83,91,95,107,119,121,131,138,139,144,154,166,167,170,190,197,204,215,217,218,219,220,221,236,237,238,239,242,247,261,286,299,310,316,322,324,326,328,330,337,338,341,344,345,362],entriest:[43,156],entrust:59,entrypoint:100,entrytext:[69,239,324],enul:8,enumar:344,enumer:134,env:[267,277],environ:[4,7,9,13,25,36,38,43,45,59,61,63,64,65,82,90,95,100,103,128,169,170,228,230,267,277,293,302,322,328,342,360],environment:267,eof:287,epic:79,epilog:234,epoch:[27,62,331],epollreactor:312,epub:79,equal:[0,16,19,20,25,31,33,39,46,91,93,96,97,114,121,152,187,206,217,218,219,220,221,247,344],equip:[14,57,114,182,217,218,220,221],equival:[10,11,13,40,43,47,63,87,88,101,103,104,110,114,128,143,159,238,285,291,316,344,362],eras:[9,95,221],err:[58,80,298,322],err_travers:[89,247],errback:[10,264,267,276,277,344],errmessag:152,errmsg:[123,337],erron:[113,123,276,330],error:[1,5,6,8,9,10,11,14,15,20,22,23,24,26,27,31,33,37,38,42,43,51,56,57,58,59,60,63,64,67,71,74,75,76,80,83,86,87,89,90,91,97,103,104,105,109,111,113,114,118,119,120,122,123,125,127,128,131,133,135,139,144,150,152,153,159,175,195,200,204,206,215,227,232,234,242,247,250,251,259,264,266,267,269,271,276,290,298,318,321,322,324,327,328,336,337,340,344,345,364],error_check_python_modul:267,error_class:[145,237,244,357],error_cmd:44,error_msg:310,errorlist:[145,237,244,357],errorlog:8,escal:[2,19,43,80,156,241],escap:[43,69,114,165,169,234,250,321,336,343,357],escript:[22,180],especi:[1,8,15,22,23,29,60,61,63,67,80,105,111,112,124,190,205,322],ess:52,essai:79,essenti:[28,49,56,67,75,79,106,113,176,267,324],est:52,establish:[33,61,73,105,144,197,217,247,264,276,278,285,287,290,295,298,305,307],estim:[30,252,334],esult:247,etc:[2,5,6,8,11,12,20,22,23,25,27,29,30,33,35,38,40,41,43,47,48,49,51,53,55,56,57,58,61,62,63,64,67,73,79,80,83,84,86,87,88,89,95,96,100,102,103,105,107,108,109,110,112,116,119,120,125,126,127,131,132,137,138,144,148,150,151,152,153,156,158,159,167,168,169,175,179,183,184,188,190,203,205,206,212,218,220,224,227,234,247,250,251,252,285,287,290,294,295,296,306,307,315,316,318,321,322,324,325,326,327,328,336,337,344,362],etern:51,euro:90,ev_channel:146,eval:[109,179,250],eval_rst:38,evalstr:242,evalu:[33,38,51,119,151,179,242,250,328],evbot:[43,164,308],evcast:79,evcel:[327,330],evcolor:79,evcolum:330,evcolumn:330,eve:344,eveditor:[22,45,53,139,141,142,180,320,364],eveditorcmdset:326,even:[1,4,6,9,11,12,14,19,21,22,25,26,27,29,31,37,39,41,42,43,46,49,50,51,54,55,56,57,58,60,61,62,63,64,69,70,73,77,80,85,86,90,91,93,97,102,103,105,106,108,110,114,115,116,118,119,122,123,125,126,129,131,135,138,152,154,157,182,184,187,188,197,205,217,218,219,220,221,233,234,247,252,290,328,330,334,344],evenli:[27,184,344],evenn:100,evenna:9,evenni:[4,127],evennia:[0,1,2,3,6,10,11,12,13,14,15,17,19,20,21,22,24,27,28,29,30,31,33,34,35,36,37,39,40,43,44,46,48,49,50,51,52,53,59,60,61,62,63,64,65,66,68,69,70,72,73,74,78,80,81,82,83,84,85,86,87,88,89,92,93,94,97,98,99,101,102,103,104,105,107,108,111,112,113,114,115,116,117,118,119,120,121,122,123,125,129,130,132,133,134,135,136,138,139,364],evennia_access:8,evennia_admin:362,evennia_channel:[43,65,72,98,164],evennia_dir:344,evennia_error:8,evennia_launch:[106,141,142,262,265],evennia_logo:136,evennia_vers:267,evennia_websocket_webcli:295,evennia_wsgi_apach:8,evenniacreateview:362,evenniadeleteview:362,evenniadetailview:362,evenniaform:357,evenniagameindexcli:269,evenniagameindexservic:270,evenniaindexview:362,evennialogfil:337,evenniapasswordvalid:311,evenniareverseproxyresourc:312,evenniaserv:92,evenniatest:[170,196,211,228,293,342,360],evenniaupdateview:362,evenniausernameavailabilityvalid:[144,311],evenniawebtest:360,event:[51,64,73,103,107,137,139,141,146,179,184,194,195,196,197,198,206,209,227,256,259,309,364],event_nam:[194,198],eventcharact:197,eventdict:337,eventexit:197,eventfunc:[0,141,142,178,191,195],eventhandl:195,eventi:[154,180,234],eventobject:197,eventroom:197,eventu:[4,11,12,19,25,29,33,41,58,61,70,76,80,83,88,90,110,116,119,123,133,136,144,150,151,168,170,185,197,205,206,233,242,247,251,252,264,272,298,306,307,319,323,324,328,330,355],evenv:[4,36,63,64,75,97,106],evenwidth:330,ever:[11,12,13,14,15,22,23,25,33,41,57,64,73,86,91,102,105,110,111,112,113,118,125,128,131,138,205,241,261,278,279,285,316,328],everi:[0,4,6,11,13,20,21,25,26,27,28,31,33,36,37,39,41,43,46,48,49,51,57,62,63,64,69,73,74,75,77,85,86,90,91,96,100,102,104,108,109,111,112,113,114,115,116,119,120,121,122,123,125,127,128,130,131,132,133,134,135,136,138,144,159,164,182,188,195,205,206,215,217,218,219,220,221,223,227,230,235,247,252,259,261,272,289,299,305,314,315,316,318,328,329,330],everror:195,everybodi:41,everyon:[19,21,24,33,34,43,51,58,61,64,71,73,77,78,80,87,98,102,110,112,114,116,121,123,127,128,131,132,159,165,166,185,217,218,219,220,221,247,285],everyth:[9,11,19,21,26,28,31,36,38,42,43,47,49,51,55,58,61,63,64,67,69,72,73,75,79,80,81,83,85,87,90,91,97,100,103,104,109,110,111,113,115,116,119,122,127,128,131,135,136,137,138,139,149,154,164,165,167,168,169,170,171,181,186,233,241,246,256,271,298,306,316,318,322,328,336],everywher:[9,56,94],evform:[27,45,53,141,142,320],evgam:[43,164],evgamedir:38,evict:310,evid:72,evil:[14,93,226,252],evmenu:[22,27,33,45,53,58,85,124,139,141,142,180,188,201,214,215,230,249,320,329,364],evmenucmdset:328,evmenuerror:328,evmenugotoabortmessag:328,evmenugotomessag:328,evmor:[45,139,141,142,251,320,364],evtabl:[27,33,45,49,53,82,111,141,142,154,188,251,320,327,329,344],exact:[33,41,43,51,80,93,95,96,119,129,138,144,151,159,168,176,206,221,238,247,251,252,317,318,340,341,344],exactli:[2,10,19,20,38,40,42,46,58,62,63,64,69,73,76,83,86,91,95,96,100,102,110,111,114,115,123,128,131,136,138,206,247,267,318,341],exam:[43,159],examin:[2,11,12,20,22,33,58,60,73,80,83,85,91,96,106,115,122,123,131,137,140,144,159,179,224,232,233,299],exampl:[0,2,4,5,6,8,10,11,13,14,15,17,19,20,21,22,25,27,28,29,30,31,33,36,37,38,40,41,43,44,48,49,55,56,57,58,59,60,61,62,63,64,67,68,71,74,77,81,82,84,85,86,87,88,89,91,93,95,96,97,98,100,103,104,105,106,109,110,111,112,114,115,117,118,119,121,122,123,124,125,126,129,130,131,132,133,135,136,138,139,140,141,142,144,148,151,152,153,154,157,158,159,164,165,166,167,168,170,174,176,177,179,180,182,184,185,187,188,189,190,199,200,203,204,205,206,209,212,213,214,215,217,218,219,220,221,223,226,227,231,233,234,235,239,242,246,247,252,256,259,261,272,287,290,291,296,299,308,312,315,316,318,319,320,321,323,327,328,329,330,331,335,336,337,338,341,342,344,345,357,362,363,364],example1_build_forest:200,example1_build_mountain:200,example1_build_templ:200,example1_legend:200,example1_map:200,example2_build_forest:200,example2_build_horizontal_exit:200,example2_build_verticle_exit:200,example2_legend:200,example2_map:200,example_batch_cod:[13,141,142,178,222],exapmpl:5,excalibur:85,exce:[82,217,218,219,220,221,310,334],exceed:310,excel:[56,67,79,80,102,108],excempt:152,except:[4,9,10,11,14,19,20,21,22,27,28,29,31,33,38,39,41,46,50,58,63,64,75,80,83,89,90,91,95,97,102,109,111,114,116,118,119,120,121,123,126,133,134,144,146,148,150,153,154,167,168,175,176,177,179,182,184,187,189,194,195,197,198,202,203,204,205,206,212,213,214,217,218,219,220,221,223,226,227,231,232,233,234,235,239,241,242,246,247,251,256,259,267,272,274,276,288,290,292,296,300,312,316,319,321,324,327,328,330,331,335,336,337,339,344],excepteur:52,excerpt:50,excess:[22,80,109,167,168,246,322],exchang:[13,90,102,179,325],excit:[20,35,54],exclam:21,exclud:[64,119,120,123,182,203,233,246,247,326,328],exclude_channel_messag:176,exclude_cov:182,excluded_typeclass_path:169,exclus:[51,61,80,83,247,256,317,328],exclusiv:324,exe:[63,106,128],exec:[51,85,109,252,328],exec_kwarg:328,exec_str:302,execcgi:8,execut:[0,9,10,12,13,14,19,22,25,28,29,31,33,36,43,45,46,47,50,51,55,62,63,64,69,75,83,85,87,89,91,95,102,106,109,111,114,119,127,128,137,139,144,146,148,149,150,154,157,158,166,167,169,170,177,180,195,200,206,215,233,234,239,241,242,246,247,251,252,253,256,260,264,272,274,277,278,284,287,290,295,299,302,305,306,316,318,319,322,328,329,335,336,344,364],execute_cmd:[2,33,89,117,118,123,144,146,154,247,272,306],execute_command:33,executor:36,exemplifi:[28,40,122],exercis:[21,41,42,58,85,95,96,111,116,123,132,293,303,335],exhaust:22,exhaustedgener:204,exidbobj:247,exis:44,exist:[0,2,3,5,11,12,13,20,21,22,25,27,31,33,35,36,39,40,41,43,44,46,48,49,51,56,57,58,60,61,64,65,68,69,70,72,76,80,86,96,97,100,102,105,109,111,112,115,116,117,123,124,128,131,134,136,138,139,143,144,145,146,152,153,154,159,164,166,167,168,169,175,180,181,187,192,194,195,198,199,202,203,205,206,213,220,232,235,241,242,246,247,249,252,259,260,267,271,273,287,288,292,300,305,306,308,316,317,318,319,322,324,326,327,328,330,337,339,344],existen:306,exit:[20,21,22,23,31,39,41,43,45,49,50,51,53,55,58,63,80,85,86,91,100,106,109,111,119,121,122,123,124,125,128,139,141,150,152,153,159,169,179,180,196,197,200,201,212,213,215,221,231,232,233,234,235,241,246,247,252,287,299,316,324,326,328,329,342,360,364],exit_alias:[159,212],exit_back:58,exit_cmd:[51,329],exit_command:247,exit_nam:[49,159,212],exit_on_lastpag:329,exit_ther:58,exit_to_her:[43,159],exit_to_ther:[43,159],exit_typeclass:[235,342,360],exitbuildingmenu:22,exitcmdset:[31,247],exitcommand:247,exitnam:212,exitobject:44,exixt:285,exot:33,exp:327,expand:[0,1,4,5,6,20,21,23,49,55,57,58,61,64,70,74,81,85,89,90,104,111,114,117,120,123,124,131,132,135,139,140,159,186,212,217,218,219,220,221,247,321,330],expand_tab:330,expandtab:[321,330],expans:[44,61],expect:[0,1,6,9,10,33,34,37,38,47,56,58,61,67,75,80,83,87,88,89,90,91,94,95,96,97,107,113,114,115,122,123,124,126,127,128,134,138,159,167,168,180,192,194,204,227,235,241,247,251,252,265,315,318,328,329,334,349,362],expected_return:127,expedit:96,expens:[90,115,119,341],experi:[26,42,51,57,60,61,62,63,73,77,81,90,95,100,111,122,131,135,139,164],experienc:[51,61,64,79,95],experienced_betray:51,experienced_viol:51,experiment:[43,74,169,173,244],explain:[20,22,33,39,48,51,55,58,64,71,79,86,119,121,124,126,127,129,131,134,136,139],explan:[25,31,33,39,64,69,77,114,124,139,311],explicit:[0,1,22,31,38,40,48,69,71,88,91,104,129,136,204,267,289,316],explicitli:[4,9,21,30,31,38,43,58,59,63,68,80,83,84,85,86,87,96,97,109,112,114,115,124,125,153,154,159,204,247,252,261,318,321,324,340],explor:[0,2,10,20,42,43,59,63,69,83,95,104,111,116,122,125,169],expos:[103,134],express:[3,33,38,43,51,56,80,109,119,127,134,135,140,159,184,204,221,250,344],ext:51,extend:[1,3,5,27,34,39,43,55,56,69,73,79,85,86,108,109,111,117,118,125,133,134,148,154,166,170,175,181,183,187,195,198,235,244,246,247,318,338,357,362],extended_room:[141,142,178],extendedloopingcal:261,extendedroom:187,extendedroomcmdset:187,extens:[1,3,9,23,38,51,55,56,61,63,64,88,96,97,104,111,114,127,138,148,210,217,282,290,324,333,343],extent:[22,56,73],exter:164,extern:[8,15,23,34,38,40,41,43,54,55,57,63,65,72,90,98,106,108,109,111,124,139,141,153,164,172,175,177,209,251,265,267,269],external_discord_hello:272,extra:[1,6,8,14,16,21,23,25,29,31,33,37,41,51,57,58,80,89,90,93,95,96,107,114,119,123,125,126,127,134,136,137,138,144,145,148,154,166,179,187,189,202,206,233,247,250,251,261,264,315,317,321,322,326,328,329,330,337,338,339,343,344],extra_environ:322,extra_spac:344,extract:[11,41,56,91,96,97,107,138,154,206,210,242,281,295,344],extract_goto_exec:328,extrainfoauthserv:287,extran:188,extrem:[26,56,91,110,128,217,218,220,221,280,338],eye:[60,97,111,114,252,329],eyed:136,eyes:[33,37,57],eyesight:[58,80,114],eyj0exaioijkv1qilcjhbgcioijiuzi1n:122,eyjzdwiioij1cm46yxbwoiisimlzcyi6invybjphcha6iiwib2jqijpbw3siagvpz2h0ijoipd04ndkilcjwyxroijoixc9m:122,f6d4ca9b2b22:100,face:[90,103,122,189,311,328],facil:337,fact:[10,11,14,21,29,33,55,57,58,61,76,83,89,103,106,114,117,123,125,126,134,138,140,308,310,336],facter:138,factor:[0,62,82,114,218,220,264,278,279],factori:[40,96,264,269,277,278,279,285,286,287,288,290,298],factory_path:146,fade:[108,205],fail:[4,9,10,11,12,13,14,24,27,31,41,51,60,61,63,89,91,103,107,109,110,113,116,117,121,127,153,168,175,185,206,212,232,241,242,247,251,259,264,265,267,271,278,279,289,310,315,316,318,336,338,340,344,362],failmsg:310,failtext:73,failur:[10,14,63,73,119,127,144,233,269,276,278,279,298,310,321,344],failure_teleport_msg:233,failure_teleport_to:233,faint:102,fair:[73,185],fairli:[39,69,75,182,188,215,218],fake:[183,298,308,316,321],fall:[26,31,38,60,62,64,73,97,102,111,113,141,144,168,189,206,233,344,357,362],fall_exit:233,fallback:[44,49,55,150,154,177,187,242,259,267,296,316,328,339,344],fals:[1,2,4,6,11,20,21,22,25,27,29,31,33,38,41,44,49,50,51,58,62,68,74,77,80,81,84,86,89,96,102,103,115,116,118,120,121,123,125,127,133,137,144,145,148,150,151,152,153,154,159,166,175,176,177,179,180,182,183,184,185,188,192,195,197,199,205,206,212,215,217,218,219,220,221,230,234,235,237,238,239,241,242,244,246,247,249,251,252,256,257,258,259,261,264,267,269,273,276,277,284,285,286,287,290,296,304,305,306,308,310,312,315,316,317,318,319,321,322,324,326,328,329,330,331,334,336,339,340,341,343,344,345,357],falsestr:188,falter:61,fame:122,famili:[9,51,57],familiar:[3,9,20,29,31,33,39,58,60,63,85,90,91,95,96,111,119,124,125,133],famou:[52,326],fan:79,fanci:[15,17,36,73,138,182],fanclub:119,fantasi:205,faq:[45,124,139,289,364],far:[0,13,20,21,22,31,33,39,41,44,46,49,51,54,55,57,59,61,75,88,90,91,95,96,100,106,111,114,119,131,138,152,221,235,241,269,294,316,326,334],fashion:111,fast:[11,15,23,26,27,29,56,62,64,82,89,108,115,131,157],faster:[23,62,93,119,175,177,179,316],fastest:[5,38],fatal:267,faulti:95,favor:27,favorit:[21,37],fear:27,featgmcp:291,featur:[0,4,12,15,17,20,22,25,26,27,31,33,34,36,37,42,45,46,47,48,49,50,56,57,59,61,62,63,64,70,72,78,81,85,91,96,103,107,109,111,114,119,122,123,124,125,128,129,131,138,139,144,153,154,187,195,206,215,234,261,284,305,309,318,326,344,362,364],februari:62,fed:[10,33,80,285,316,325,327],fedora:[8,63,67,131],feed:[7,15,43,49,51,55,73,98,109,128,139,146,164,269,286,287,318,329],feedback:[37,42,61,70,89,118,176,226,326],feedpars:[98,286],feedread:146,feel:[0,10,17,22,37,38,39,46,55,57,60,61,63,64,69,70,71,73,77,90,91,108,118,122,123,125,131,133,138,205,215,218,224,233],feend78:199,feint:116,felin:27,fellow:327,felt:[102,132],femal:189,fetch:[11,63,90,100,128,131,133,200,316,329,362],few:[0,4,6,9,10,11,15,17,20,23,31,33,34,36,38,41,42,43,49,50,55,59,60,61,64,66,73,74,79,80,86,88,89,91,103,110,114,116,119,121,122,123,126,127,131,138,169,184,205,227,246,282,291,310,321,330,344,362],fewer:[108,308,317],fg_colormap:343,fgstart:343,fgstop:343,fhii4:133,fiction:[51,55,62,77,328],fictional_word:205,fictiv:205,fiddl:233,fido:96,fie:102,field:[3,11,23,34,54,56,58,74,84,86,87,89,102,106,107,112,119,125,128,133,135,145,148,173,177,188,192,206,221,231,237,239,241,244,246,247,251,252,254,256,257,261,274,315,316,317,318,319,327,335,340,341,357,359,362],field_class:357,field_or_argnam:74,field_ord:357,fieldevmenu:188,fieldfil:[141,142,178],fieldnam:[58,84,188,257,318,334,357],fieldset:[145,173,237,244,254],fieldtyp:188,fifi:96,fifo:344,fifth:49,fight:[29,31,61,116,122,217,218,219,220,221,232],fighter:[217,218,219,220,221],figur:[3,12,26,33,37,38,42,49,80,83,90,91,93,96,97,119,121,131,133,138,179,181,184,206,251,267],file:[2,3,4,5,6,8,9,19,20,21,22,23,25,26,27,31,34,36,37,40,41,42,44,47,48,54,56,57,58,59,60,62,63,64,65,66,67,68,69,72,75,76,79,80,81,82,83,85,86,90,92,93,95,96,97,98,100,102,103,106,109,110,111,114,117,119,120,121,123,128,130,133,134,135,136,137,138,139,141,142,144,145,158,166,175,180,182,183,184,186,200,201,205,209,234,235,237,241,244,252,266,267,287,288,291,292,299,300,301,305,312,313,315,320,327,328,337,340,341,344,357,362],file_end:[322,344],filelogobserv:337,filenam:[27,60,131,205,322,327,337],filename1:267,filename2:267,filesystem:[63,100,103],fill:[36,41,49,50,58,61,65,70,106,111,114,119,122,133,135,188,250,315,316,321,327,329,330,344],fill_char:330,fill_color:190,fillabl:188,fillchar:[114,321,336,344],filo:344,filter:[31,34,39,43,69,86,106,114,119,120,125,133,138,152,157,175,180,187,206,246,247,344,362],filter_famili:[119,125],filthi:78,final_valu:10,find:[0,3,4,6,10,11,12,13,14,17,20,21,22,23,24,25,26,27,29,31,33,34,37,38,40,41,42,46,47,48,49,50,55,56,57,58,60,61,62,63,67,68,69,70,73,74,75,76,78,79,80,84,86,87,89,90,91,93,95,96,97,100,102,103,108,109,110,112,114,119,122,123,124,125,127,128,131,133,134,135,136,139,140,144,151,159,176,184,187,200,206,212,215,233,234,247,251,252,258,267,281,316,317,321,323,341,344],find_apropo:238,find_topicmatch:238,find_topics_with_categori:238,find_topicsuggest:238,fine:[12,15,20,33,41,44,46,64,85,86,89,95,105,112,115,118,122,123,138,146,233,316,324,344],finer:12,finish:[10,14,29,33,38,58,59,61,100,107,122,123,124,128,133,136,141,144,154,156,167,179,187,203,232,233,247,267,271,279,290,305,312,323,328,344],finish_chargen:51,finit:91,fire:[2,20,21,27,28,29,33,46,51,58,61,96,102,106,107,111,115,118,120,132,139,146,150,195,219,220,247,250,252,259,267,276,278,295,328,329,334,344],firebreath:58,firefox:72,firestorm:28,firestorm_lastcast:28,firewal:[67,90],first:[2,3,4,5,6,7,9,10,11,12,13,14,15,16,19,20,21,23,24,26,27,29,31,33,35,38,39,40,41,42,43,45,48,49,50,51,55,56,58,59,61,62,63,65,68,69,70,71,73,75,76,77,80,81,83,85,86,89,90,91,93,96,97,98,100,102,103,104,105,106,107,108,109,110,113,114,116,118,119,120,121,122,123,125,126,127,128,131,132,133,134,135,136,137,138,139,144,146,148,151,152,159,167,168,171,175,177,179,180,182,183,184,186,187,200,201,204,205,206,212,214,217,218,219,220,221,223,227,231,232,233,234,235,239,241,246,247,251,252,256,259,267,271,272,274,285,287,290,295,296,298,299,305,308,316,318,319,321,322,324,326,327,328,330,331,334,335,336,343,344,363,364],first_lin:123,first_nam:145,firsthand:80,firstli:[9,89,90,96,97],fish:[73,153,203],fist:252,fit:[11,23,39,47,51,58,80,88,121,129,130,133,218,221,327,329,330,344],five:[28,33,90,111,119,153,215,344,345],fix:[13,14,16,26,27,33,37,42,43,51,57,60,61,63,64,70,75,78,83,85,90,95,96,97,109,110,121,123,125,127,138,205,267,327,329,330,340,363],fix_sentence_end:330,fixer:119,fixing_strange_bug:131,fixtur:[170,228,293,303,335,342],flag:[9,13,14,20,28,29,30,31,33,40,41,43,51,58,61,74,76,83,86,108,115,123,131,144,150,152,154,159,231,241,242,247,267,274,278,287,290,295,306,326,328,344],flame:[28,220],flash:[14,227],flat:[22,26,27,45,47,48,53,56,59,60,96,125,141,252],flatfil:56,flaticon:79,flatten:252,flatten_diff:252,flatten_prototyp:252,flattened_diff:252,flatul:102,flavor:[20,90,220],flavour:[87,126],flaw:121,fled:[116,231],fledg:[15,90,108,123,133,158,185],flee:[116,117,221,231],fleevalu:116,flesh:[20,58],flexibl:[1,13,21,22,29,39,43,51,57,59,73,88,90,102,108,109,111,116,134,138,148,159,179,180,188,215,241,316,328,344,362],flick:345,flip:[51,81],flood:[27,50],floor:[0,82,206],flow:[17,36,40,55,61,70,83,86,115,131,137,324,328,336],flower:[12,20,43,61,87,89,119,159],flowerpot:[12,57],fluent:79,fluid:[16,17],flurri:206,flush:[23,33,43,111,128,169,259,316,318,334],flush_cach:334,flush_cached_inst:334,flush_from_cach:334,flush_instance_cach:334,flusher:334,flushmem:[43,169],fly:[3,12,21,27,31,33,34,43,51,55,64,85,102,109,119,138,144,165,167,168,175,177,239,247,261,274,285,288,292,316,322,331,344,362],focu:[4,61,70,116,124],focus:[56,57,61,77,79,106,123,124,221],foe:218,fold:215,folder:[3,5,8,13,14,21,27,30,38,47,49,55,57,58,60,63,64,69,73,75,76,86,95,96,100,103,106,110,111,116,117,118,123,127,128,130,133,134,135,136,137,200,217,218,219,220,221,267],folder_nam:64,foldernam:60,follow:[0,2,4,5,7,8,9,10,11,13,14,16,17,19,20,22,23,25,31,33,34,37,38,39,40,41,42,43,46,47,48,49,50,51,54,58,60,61,62,63,65,67,68,69,71,73,74,75,76,79,80,82,85,86,88,89,90,91,93,95,96,97,100,102,103,106,110,112,114,116,117,119,120,121,123,125,127,128,131,133,134,135,137,144,146,148,150,151,154,159,167,168,170,175,177,180,182,183,185,189,195,197,199,200,206,215,219,220,226,233,239,241,242,246,247,250,251,252,256,257,271,272,282,291,295,296,299,309,316,318,321,322,324,327,328,329,330,336,337,344],follwo:242,follwow:51,fond:62,font:[25,38,111,137],foo:[33,40,51,83,84,88,95,107,112,119,127,215,328,342],foo_bar:88,foobarfoo:12,foolish:226,footer:[69,133,154,329],footnot:[15,38],footprint:[43,169],footwear:57,for_cont:247,forai:96,forbid:41,forbidden:131,forc:[0,6,8,10,31,33,58,60,63,73,81,82,91,100,103,110,116,121,123,125,127,138,146,153,157,159,164,179,187,189,203,205,206,242,247,251,258,278,279,285,290,308,310,329,330,334],force_init:247,force_repeat:[102,116,259],force_restart:259,force_str:340,forcibl:[102,258],fore:305,forebod:187,foreground:[42,100,114,126,183,267,321,336],foreign:125,foreignkei:[148,246,256,315,318,335],forens:210,forest:[13,111,112,140,187,200],forest_meadow:112,forest_room:112,forestobj:140,forev:[61,102],forget:[3,9,10,13,25,27,33,41,54,62,72,79,82,85,86,95,96,100,123,131,206,322],forgo:232,forgotten:[28,49,77,85],fork:[9,79],forloop:69,form:[11,13,27,31,33,34,38,43,45,51,53,55,58,59,61,64,68,70,74,76,77,80,83,88,89,93,96,97,109,112,113,114,115,116,118,123,124,125,127,129,135,141,142,144,145,146,151,153,154,157,159,167,168,170,173,175,176,177,179,188,189,205,206,210,237,239,241,242,244,247,251,252,254,257,259,261,265,285,287,291,295,306,308,315,316,317,318,321,322,324,325,326,327,328,330,336,337,340,341,344,345,346,356,362],form_char:327,form_class:362,form_template_to_dict:188,form_url:145,form_valid:362,formal:[61,80,96,138,247,291],format:[0,14,17,19,22,23,27,31,33,37,38,41,42,46,48,55,58,62,68,69,76,79,81,83,88,96,98,103,108,109,111,113,114,119,124,129,131,133,138,152,154,156,159,166,168,170,174,175,180,182,183,184,188,198,206,209,215,219,230,234,235,239,247,249,251,252,257,267,272,282,287,307,309,316,318,321,322,324,326,328,329,330,331,336,337,339,344,345,363],format_attribut:159,format_available_protfunc:251,format_callback:192,format_diff:252,format_extern:175,format_grid:344,format_help:234,format_help_entri:166,format_help_list:166,format_messag:175,format_output:159,format_send:175,format_t:344,format_text:180,format_usag:234,formatt:[188,251,328,329],formatted_list:175,formcallback:188,formchar:[58,327],formdata:188,former:[17,23,64,126,328],formfield:340,formhelptext:188,formset:315,formstr:58,formtempl:188,formul:134,forth:[27,43,131,159,220],fortress:111,fortun:[4,33,39,48,69,122,128],forum:[1,9,37,48,55,57,63,90,98,128],forward:[13,14,20,38,42,45,50,51,62,69,90,121,126,144,148,177,199,209,239,246,256,312,316,318,319,327,329,335],forwardfor:67,forwardmanytoonedescriptor:[246,256,335],forwardonetoonedescriptor:[246,256,335],foul:109,found:[2,4,6,9,10,13,14,15,20,22,23,25,27,31,33,38,39,40,41,42,43,49,51,55,57,58,59,63,68,73,74,76,78,80,83,85,89,90,91,94,97,103,104,109,112,116,119,122,123,125,127,128,134,135,137,138,141,144,149,150,151,152,154,159,167,168,175,179,180,192,194,195,197,200,206,233,239,242,247,250,251,252,258,261,266,267,273,282,285,296,306,308,316,317,318,321,322,323,324,328,330,334,336,339,341,344,346],foundat:[49,55,77,79,217],four:[4,14,27,38,39,40,68,73,82,86,87,111,114,119,153,177,187,242],fourth:39,fqdn:90,fractal:56,fraction:127,frame:[137,138],framework:[3,16,64,94,124,133,136,137,170,217,220,340],frankli:129,free:[0,22,29,37,48,55,57,60,61,64,76,77,79,90,106,112,116,123,124,126,130,133,139,179,206,215,218,251],freedn:90,freedom:[14,26,44,63],freeform:[73,116,182],freeli:[55,77,100,103,322],freenod:[9,43,57,63,70,72,79,90,146,164,308],freepik:79,freetext:[176,341],freez:[29,33,42,194],frequenc:205,frequent:[91,180],frequentlyaskedquest:94,fresh:[11,31,58,128,267],freshli:111,fri:12,friarzen:138,friend:[37,58,61,82,103],friendli:[22,38,78,95,133,138,148],friendlier:[175,247],frighten:219,from:[0,2,3,5,6,8,9,10,11,12,13,14,15,16,17,19,21,22,23,26,27,28,29,30,31,33,34,35,36,37,38,39,40,41,42,43,44,46,47,48,49,50,52,54,56,57,58,59,61,62,63,64,66,67,68,69,70,71,72,73,74,75,76,79,80,81,82,83,84,85,86,87,89,91,92,93,95,97,98,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,134,135,136,139,140,141,142,144,146,148,149,150,151,152,153,154,156,157,158,159,164,165,166,167,168,169,170,171,173,174,175,176,177,179,180,181,182,183,184,185,186,187,188,189,194,195,197,198,199,200,202,203,204,205,206,209,210,211,212,213,215,217,218,219,220,221,224,226,227,231,232,233,234,235,238,239,241,242,243,246,247,251,252,256,257,258,259,260,261,264,267,272,273,274,276,277,278,279,280,284,285,286,287,290,295,296,299,301,305,306,307,308,310,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,329,330,331,334,335,336,337,338,340,341,343,344,345,357,362,363,364],from_channel:146,from_db_valu:340,from_nod:[51,328],from_obj:[81,83,118,144,146,154,189,247],from_pickl:325,from_tz:345,frombox:276,fromstr:276,fromtimestamp:331,front:[8,13,20,73,80,85,96,103,109,131,137,139],frontend:[215,316],frozen:[29,33,122,195],fruit:203,ftabl:344,ftp:343,fuel:[21,220],fugiat:52,fulfil:267,full:[4,9,13,14,15,16,17,20,21,23,24,25,26,27,33,37,38,43,51,55,57,58,59,60,61,64,73,75,80,84,88,89,90,95,96,97,100,101,102,105,108,109,110,111,115,116,117,119,121,123,124,125,127,128,131,133,134,135,136,146,151,153,154,158,159,164,168,169,170,179,180,185,187,190,202,205,206,215,220,230,234,242,252,257,279,285,298,308,309,316,318,322,326,328,330,344],full_justifi:[109,250],full_nam:87,full_result:185,fullchain:67,fuller:58,fullhost:67,fulli:[4,11,19,33,51,55,58,59,61,63,85,86,90,93,103,110,122,144,205,242,247,259,295,307,324,344],fullview:122,fun:[20,26,61,79,81,111,136],func1:[43,159,242,299],func2:[43,159,242,299],func:[5,10,21,22,25,28,29,30,33,38,42,44,50,51,56,58,60,62,71,73,80,81,82,83,85,91,116,119,121,123,150,154,156,157,158,159,164,165,166,167,168,169,170,171,174,179,180,181,182,184,185,186,187,188,189,193,199,200,201,202,203,206,212,213,214,215,217,218,219,220,221,224,231,232,233,234,241,242,247,278,299,303,312,326,328,329,331,344,362],funciton:220,funcnam:[74,114,242,250,261,328,336],funcool:79,functioncal:276,functionnam:[276,336],functool:63,fund:70,fundament:[33,57,77,89,95,96,112,247],furnitur:[13,112,125],further:[0,9,11,27,31,34,38,42,43,44,49,57,83,85,86,90,91,96,100,102,104,105,106,109,110,111,119,124,125,130,131,138,153,159,181,205,219,221,252,267,291,344],furthermor:[37,38,124,126],fuss:100,futur:[9,10,11,20,23,38,43,45,50,55,58,60,61,62,63,76,87,95,100,123,139,156,195,232,235,272,317,338,345,364],futurist:62,fuzzi:[76,238,341,344],fuzzy_import_from_modul:344,gadget:70,gag:24,gain:[11,29,61,73,93,154,177,206,242,247],galosch:205,gambl:185,game:[0,2,3,4,5,6,8,9,10,11,13,14,15,17,18,19,20,21,22,23,24,25,28,29,30,31,33,34,35,36,37,38,41,42,43,44,46,50,51,52,53,56,60,63,64,65,66,67,68,69,71,72,75,76,77,78,79,80,81,83,85,86,87,88,89,91,92,93,95,96,97,98,101,102,103,104,105,106,107,108,109,110,112,113,114,115,116,117,118,119,121,122,125,129,130,132,133,134,135,136,137,138,139,140,143,144,145,146,148,150,152,153,154,156,157,158,159,163,164,165,166,169,170,171,172,174,175,176,177,178,179,180,181,182,184,185,186,187,188,190,193,194,195,196,197,199,200,204,205,206,213,215,217,218,219,220,221,229,230,233,234,239,241,243,246,247,256,258,259,262,267,269,270,271,272,278,279,284,286,287,290,291,298,299,300,305,306,308,315,317,318,319,322,323,324,326,327,331,334,336,337,344,363,364],game_dir:[337,344],game_epoch:[27,331],game_index_cli:[141,142,262],game_index_en:54,game_index_list:54,game_map:200,game_nam:[54,350],game_slogan:[9,350],game_statu:54,game_templ:47,game_websit:54,gamedir:[51,100,109,267,313],gamedirnam:58,gameindexcli:270,gamemap:200,gameplai:[90,145],gamer:[65,72],gamesrc:27,gametim:[27,53,59,139,141,142,184,187,195,320,364],gametime_to_realtim:184,gametimescript:184,gammon:[79,282],gandalf:51,garbag:316,garden:79,garment:182,gatewai:[110,296],gather:[24,33,48,83,94,119,127,132,136,150,151,233,265,269,324,341],gave:[5,21,60,64,91,102,126],gbg:321,gcc:63,gear:[43,90,106,136,146,153,171,186],gemer:204,gen:17,gender:189,gendercharact:189,gendersub:[141,142,178],gener:[0,1,5,9,10,11,12,20,23,25,29,31,33,34,36,37,38,48,49,51,55,57,58,59,60,62,63,64,68,70,73,76,80,83,86,87,88,90,93,96,104,105,106,109,111,112,114,116,126,127,134,137,138,139,141,142,144,146,149,154,155,156,159,166,167,168,170,171,174,175,179,180,181,182,185,186,187,188,189,195,199,200,201,202,204,205,206,209,210,212,213,214,215,217,218,219,220,221,224,230,231,233,234,239,242,247,249,252,278,285,287,290,291,295,306,307,308,312,316,319,320,321,323,324,326,329,330,337,339,340,344,349,357,362,364],general_context:[141,142,346,348],generate_sessid:285,generic_mud_communication_protocol:291,genericbuildingcmd:180,genericbuildingmenu:180,genesi:90,geniu:203,genr:[37,64,281],geoff:234,geograph:140,geographi:39,geoip:209,geometr:111,geometri:111,get:[0,1,2,3,5,6,7,8,9,10,11,12,13,15,16,17,21,22,23,25,26,28,29,30,31,33,38,39,40,41,42,44,45,46,47,48,49,50,54,55,56,57,58,59,60,61,62,64,65,68,69,71,72,73,74,75,76,77,80,81,82,83,84,85,86,87,88,90,91,92,93,95,96,97,100,102,103,104,105,106,107,110,111,112,114,116,118,121,122,123,125,126,127,128,130,131,133,134,135,136,137,138,139,144,146,148,152,153,154,156,157,159,160,164,165,171,173,174,176,177,180,182,185,192,194,195,197,198,199,203,204,206,213,214,215,217,218,219,220,221,223,224,232,233,235,238,239,241,242,246,247,249,251,252,256,258,259,261,265,267,272,276,277,281,285,287,290,291,293,295,296,304,306,307,308,310,316,317,318,319,321,322,323,326,328,330,331,333,334,336,337,338,339,341,344,357,362,363,364],get_abl:60,get_absolute_url:[134,175,239,318],get_account:[242,306],get_al:316,get_alia:317,get_all_attribut:316,get_all_cached_inst:334,get_all_categori:238,get_all_channel:176,get_all_cmd_keys_and_alias:152,get_all_mail:199,get_all_puppet:144,get_all_sync_data:308,get_all_top:238,get_all_typeclass:344,get_and_merge_cmdset:153,get_attack:[217,218,219,220,221],get_attr:159,get_attribut:317,get_buff:326,get_by_alia:317,get_by_attribut:317,get_by_nick:317,get_by_permiss:317,get_by_tag:317,get_cach:316,get_cache_kei:310,get_cached_inst:334,get_callback:195,get_channel:[41,176],get_charact:306,get_client_opt:272,get_client_s:306,get_client_sess:[295,296],get_client_sessid:296,get_cmdset:174,get_command_info:[154,167],get_context_data:362,get_damag:[217,218,219,220,221],get_db_prep_lookup:340,get_db_prep_valu:340,get_dbref_rang:317,get_default:340,get_defens:[217,218,219,220,221],get_display_nam:[22,42,46,58,206,235,247,318],get_err_msg:[6,20,80],get_ev:195,get_evennia_pid:344,get_evennia_vers:344,get_event_handl:198,get_extra_info:[41,154,174,247,318],get_famili:[119,125],get_fieldset:244,get_form:244,get_formset:315,get_game_dir_path:344,get_god_account:271,get_height:330,get_help:[33,68,69,154,170,193,234,328],get_help_text:311,get_id:[133,317],get_info_dict:[284,305],get_initi:362,get_input:328,get_inputfunc:[272,291,308],get_internal_typ:340,get_kwarg:360,get_location_nam:235,get_mass:82,get_message_by_id:176,get_messages_by_channel:176,get_messages_by_receiv:176,get_messages_by_send:176,get_min_height:330,get_min_width:330,get_new:286,get_new_coordin:235,get_next_by_date_join:148,get_next_by_db_date_cr:[148,177,246,256,316,318],get_next_wait:198,get_nick:317,get_nicklist:[146,279],get_numbered_nam:247,get_obj_coordin:235,get_object:362,get_object_with_account:341,get_objs_at_coordin:235,get_oth:179,get_permiss:317,get_pid:267,get_player_count:281,get_previous_by_date_join:148,get_previous_by_db_date_cr:[148,177,246,256,316,318],get_puppet:[2,144,306],get_puppet_or_account:306,get_queryset:362,get_rang:221,get_redirect_url:362,get_regex_tupl:206,get_respons:351,get_room_at:39,get_rooms_around:39,get_sess:308,get_statu:277,get_subscript:176,get_success_url:362,get_sync_data:307,get_system_cmd:152,get_tag:317,get_time_and_season:187,get_typeclass_tot:317,get_uptim:281,get_username_valid:144,get_valu:[272,291],get_vari:[192,195],get_width:330,get_worn_cloth:182,getattr:84,getbootstrap:16,getchild:312,getclientaddress:[40,287],getel:137,getenv:[267,277],getfromlock:241,getgl:137,getinput:328,getkeypair:287,getloadavg:75,getpeer:287,getpid:344,getsizof:334,getsslcontext:[288,292],getston:33,getter:[148,177,182,197,206,218,221,246,247,274,316],gettext:76,gfg:321,ghostli:233,giant:[21,124],gid:[45,70,100,299],gidcount:298,gif:[70,133],gift:69,gist:[205,344],git:[9,23,25,36,38,45,47,63,75,76,79,86,90,100,108,124,128,130],gith:96,github:[3,9,25,37,41,43,45,46,57,63,70,75,76,79,95,96,98,104,127,130,131,135,138,180,295,312,344],githubusercont:101,gitignor:131,give:[0,1,2,3,4,5,9,10,11,12,13,15,18,19,20,21,22,23,25,26,27,30,33,38,39,41,46,48,51,52,55,57,58,59,60,61,62,63,64,68,69,73,75,77,79,80,82,85,88,89,90,91,93,94,96,98,100,102,103,105,107,109,110,111,112,113,114,115,116,117,118,119,122,123,124,125,127,128,133,134,136,138,139,140,150,152,153,156,165,167,168,169,174,176,180,181,182,187,204,205,214,215,217,218,219,220,221,224,233,235,241,247,256,293,306,312,318,321,330,341,342,344,363,364],givelock:241,given:[0,2,4,10,11,12,13,14,20,21,22,25,27,31,33,34,38,39,42,43,46,49,50,51,58,62,64,70,73,74,80,83,84,85,86,88,89,90,93,97,100,102,105,109,110,113,114,115,116,117,119,122,123,125,126,127,131,133,134,135,138,140,144,150,151,152,153,154,156,157,159,164,166,168,169,170,175,176,177,180,181,182,184,185,186,187,188,189,190,192,194,198,203,204,205,206,212,215,217,218,219,220,221,232,233,234,241,242,247,249,250,251,252,257,258,259,261,265,267,272,273,276,285,290,291,296,299,302,306,307,308,309,310,311,312,316,317,318,319,321,322,324,325,326,327,328,329,330,331,334,336,337,339,340,341,342,344,349,362],given_class:359,giver:[218,221,247],glad:91,glanc:[22,27,31,33,39,48,58,61,91,96,180,206],glance_exit:22,glass:[203,224,226,227],glob:[43,51,165,328],global:[13,22,33,34,35,43,45,51,56,61,64,67,74,85,89,100,104,105,108,109,114,115,120,125,131,132,137,138,140,159,187,195,204,206,212,241,247,250,252,253,256,264,267,272,274,277,298,299,322,323,324,328,331,336,341,342,344,350],global_script:[102,141,323],global_search:[13,22,27,58,91,144,206,247,317],globalscript:[43,169],globalscriptcontain:323,globalth:342,globe:[90,136],gloss:61,glossari:[63,139,364],glow:111,glppebr05ji:133,glu:92,glyph:276,gmcp:[55,74,83,291],gmsheet:58,gmud:24,gno:22,gnome:24,gnu:14,go_back:[51,215,328],go_back_func:51,go_up_one_categori:215,goal:[61,76,79,91,102,103,122,124,205],goals_of_input_valid:357,goblin:[43,51,109,159,252],goblin_arch:252,goblin_archwizard:252,goblin_shaman:109,goblin_wizard:252,goblinwieldingclub:109,god:[20,80,271],godlik:206,goe:[0,5,9,22,26,29,33,37,40,42,49,64,69,73,75,86,90,95,96,118,121,122,123,139,152,153,221,235,247,287,290,305,306,343,344,362],goff:204,going:[0,3,20,25,26,40,45,46,49,51,58,61,62,65,69,70,82,88,90,91,95,96,100,111,116,121,127,133,138,139,180,197,206,217,218,219,220,221,230,233,235,247,264,269,321,328],goings:269,gold:[51,82,85,109,322],gold_valu:85,golden:138,goldenlayout:138,goldenlayout_config:[137,138],goldenlayout_default_config:[137,138],gone:[5,12,77,80,85,100,102,131,259],good:[0,2,4,5,9,11,12,14,20,21,22,25,26,27,31,33,37,38,39,40,41,46,48,49,51,54,55,56,57,60,61,63,69,70,72,73,79,80,85,87,90,91,93,94,95,96,97,100,102,103,104,106,109,110,111,114,119,121,123,125,126,127,131,133,134,138,144,152,153,154,170,179,194,206,290,328],goodby:287,goodgui:242,googl:[38,43,70,75,79,90,164,330],googlegroup:92,googleusercont:[70,133],googli:136,gossip:[65,79,164],got:[10,13,95,96,116,128,138,215,232],goto_cal:[51,328],goto_cleanup_cmdset:230,goto_command_demo_comm:230,goto_command_demo_help:230,goto_command_demo_room:230,goto_kwarg:328,goto_next_room:121,goto_node2:51,goto_str_or_cal:51,gotostr_or_func:328,gotten:[55,95,131,221,232,247,294],graaah:117,grab:[20,33,43,73,133,165,175,232,362],gracefulli:[26,43,156,169,206,247,267,344],gradual:[13,14,29,61,79,96,205],grai:[114,126],grain:[115,324],gram:82,grammar:205,grammat:205,grand:11,grant:[19,23,80,131,177,217,218,219,220,221,241,242,251,316],granular:221,grapevin:[7,139,141,142,146,164,262,275,364],grapevine2chan:[65,164],grapevine_:164,grapevine_channel:[65,146,164],grapevine_client_id:65,grapevine_client_secret:65,grapevine_en:[65,164],grapevinebot:146,grapevinecli:278,graph:[49,131],graphic:[42,58,80,83,84,93,111,128,135,141,186,190,291],grasp:[126,133],grave:60,grayscal:183,great:[0,4,14,16,21,22,29,37,39,51,57,61,69,70,73,77,79,91,95,107,108,123,127,131,134,180,188,312],greater:[22,31,73,80,97,105,119,241,328],greatli:78,greek:15,green:[31,43,80,109,114,126,131,159,169,232,321],greenskin:252,greet:[9,35,46,95,104,105,117,272],greetjack:87,greg:79,grei:[109,126,321],grenad:89,grep:[75,131],greyscal:[114,321],greyskinnedgoblin:109,griatch:[21,70,86,119,122,179,181,183,184,185,186,187,189,199,201,202,205,206,212,213,214,230,232,327,334,340,343],grid:[7,16,111,123,139,221,235,344,364],gridstr:344,grief:12,griefer:134,grin:[33,41],grip:38,gritti:33,ground:[20,21,55,111],group:[4,9,10,12,19,21,26,33,37,41,43,46,55,68,70,79,91,94,100,102,109,112,125,127,139,140,145,148,155,159,165,176,187,203,205,232,233,247,251,252,276,315,316,319,321,324],grow:[13,25,26,61,63,79,110,278,279,330,344],grown:[9,25,51,129],grudg:73,grumbl:60,grungies1138:[199,214],grunt:[43,159,252],gthi:81,guarante:[11,37,61,67,80,86,90,102,185,195,251,285,306,318],guard:51,guess:[15,22,46,50,69,91,103,113,138,180,252],guest1:66,guest9:66,guest:[7,53,80,139,144,364],guest_en:[66,80],guest_hom:[66,133],guest_list:66,guest_start_loc:66,guestaccount:112,gui:[45,57,83,137,199,364],guid:[36,37,45,81,95,96,128,133,136],guidelin:[37,38,79],guild:[79,86,112,118],guild_memb:51,gun:[21,77],guru:55,h175:133,h189:133,h194:133,h60:133,habit:56,habitu:115,hack:[55,73,116,276],hacker:[79,103],had:[8,9,14,15,19,20,21,29,31,37,55,61,90,95,96,100,102,119,123,128,135,138,158,182,232,251,252,256,259,267,318,322,329,357],hadn:[61,62,131],half:[108,138,239],hall:49,hallwai:49,halt:[102,111],hand:[1,15,37,38,40,43,51,55,56,57,58,61,70,73,87,89,96,105,108,119,134,154,165,167,168,169,179,201],handi:[42,75,119,133,219],handl:[0,2,4,5,7,8,9,11,13,15,22,24,27,33,34,37,40,41,43,44,47,49,50,51,53,55,56,60,61,62,64,67,68,74,75,80,83,85,86,87,88,89,91,93,95,97,100,104,105,108,115,116,117,124,125,126,128,129,131,132,137,138,139,144,146,149,150,152,153,159,160,164,165,168,174,179,186,187,195,197,198,201,206,210,212,214,215,217,218,219,220,221,226,232,233,234,236,246,247,250,251,252,256,257,264,267,271,272,276,277,279,280,287,290,291,294,296,298,307,308,315,316,318,321,322,324,325,326,328,329,330,331,334,343,344,351],handle_egd_respons:269,handle_eof:287,handle_error:195,handle_ff:287,handle_foo_messag:[51,328],handle_int:287,handle_messag:[51,328],handle_message2:51,handle_numb:[51,328],handle_quit:287,handle_setup:271,handler:[2,11,31,33,41,47,64,73,80,83,84,86,87,89,102,104,105,112,115,125,139,144,150,153,168,172,174,177,179,192,195,196,198,206,231,235,241,242,246,247,252,257,258,260,261,272,284,285,305,308,314,315,316,318,319,323,324,327,328,338,339,344],handlertyp:319,handshak:[24,52,83,277,283,285,290],handshake_don:290,hang:[3,61,70,124],hangout:119,happen:[0,6,12,19,20,26,27,31,33,37,39,41,42,44,51,54,55,57,58,60,61,62,64,72,73,77,80,83,86,88,90,91,95,96,97,102,105,107,108,110,111,114,115,116,119,122,123,126,127,128,131,133,138,144,152,153,164,175,184,197,213,217,218,219,220,221,227,231,233,235,247,250,252,269,276,279,299,304,306,307,308,318,328,329,334,336,337,344],happend:252,happi:[13,119],happier:91,happili:96,haproxi:[90,139,364],hard:[9,10,11,13,15,19,26,27,31,33,38,40,41,58,61,63,64,76,79,88,90,93,96,97,100,102,109,112,115,119,121,127,131,133,138,139,168,188,215,256,267,316,318,328,364],hardcod:[57,58,77,100,111,140,316],harden:63,harder:[12,56,61,93,119,127,232],hardwar:[90,280],hare:79,harm:[11,29,219],harri:59,harvest:362,has:[0,2,4,8,9,10,11,12,13,14,15,16,19,20,21,22,23,25,27,28,29,31,33,34,36,37,39,40,41,42,43,44,46,47,49,50,51,53,54,56,57,58,59,60,61,62,63,64,65,67,68,69,70,71,74,75,76,77,78,79,80,83,85,86,87,88,89,90,91,93,94,95,96,97,100,101,102,103,104,105,107,109,110,112,113,114,115,116,117,118,119,121,122,123,125,126,127,128,129,131,132,133,134,135,136,137,138,139,143,144,145,146,151,152,153,154,156,158,159,164,167,168,169,170,171,174,175,176,179,180,184,185,186,187,188,195,197,199,200,203,204,206,215,217,218,219,220,221,223,231,232,233,234,235,239,241,242,246,247,251,252,256,259,261,267,269,271,272,276,279,281,285,289,294,295,299,305,306,307,308,310,315,316,317,318,319,324,326,327,328,330,334,336,337,338,341,344,357,360,362],has_account:[89,231,241,246,247],has_attribut:316,has_cmdset:153,has_connect:[41,175],has_drawn:49,has_nick:316,has_par:344,has_perm:[167,242],has_sub:175,has_tag:319,has_thorn:11,hasattr:[28,33],hash:[14,90,109,252,261,295,299,308,317],hasn:[22,49,204,232,315,316,362],hassl:62,hast:219,hat:[37,70,182],hau:[65,146,164,278],have:[0,1,2,3,4,5,6,9,10,11,12,13,14,15,16,19,20,21,22,23,25,26,27,28,29,30,31,33,34,35,36,37,38,39,40,41,42,43,44,46,47,48,49,50,51,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,100,102,103,104,105,106,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,144,146,150,152,153,154,156,159,161,164,167,168,169,170,171,175,176,177,179,180,181,182,184,186,187,188,189,194,195,197,198,202,204,205,206,209,210,215,217,218,219,220,221,224,227,233,234,238,239,241,246,247,250,251,252,253,256,258,259,260,261,272,277,280,281,285,287,290,291,305,306,307,308,313,314,315,316,317,318,319,321,322,323,324,325,327,328,329,330,336,337,340,341,342,344,345,357,362,363],haven:[4,22,29,42,62,67,77,109,111,117,118,120,127,128,133,134,138,310],hdict_cmd:166,hdict_db:166,head:[20,21,31,46,69,76,77,96,106,119,121,123,138,139],headach:[61,138],header:[9,13,14,27,34,37,38,63,89,95,103,129,138,154,175,177,199,206,247,322,324,329,330],header_color:159,header_line_char:330,headi:330,heading1:330,heading2:330,headless:[96,247],headlong:63,heal:[219,220,233],healing_rang:220,health:[30,61,73,84,88,90,109,116,190,252,291],health_bar:[141,142,178],hear:[29,46,61],heard:[111,122,241],heart:126,heartbeat:[115,278],heavi:[6,11,20,23,27,33,64,73,80,82,96,116,123,179,206,218,280,344],heavier:218,heavili:[9,27,37,40,57,75,86,104,180,217,218,219,220,221,318],heed:[105,242],heh:138,hei:[20,179,199,205],height:[52,74,137,141,272,287,306,327,330],held:[1,31,48,116,241],hello:[0,29,34,41,43,46,51,72,74,83,87,88,91,96,105,108,123,129,165,174,206,272,321],hello_funct:95,hello_valu:108,hello_world:[95,96,108],helmet:[29,77],help:[0,1,4,5,12,13,14,15,19,22,23,27,29,32,33,35,38,39,41,42,44,45,46,47,48,49,50,51,53,57,58,60,61,63,64,67,71,72,76,77,79,80,86,90,91,93,96,105,107,108,109,110,111,112,113,116,119,122,123,124,126,127,131,133,137,138,139,141,142,149,150,152,154,155,156,167,168,170,171,177,179,184,186,188,192,193,195,199,205,209,217,218,219,220,221,224,230,233,234,241,249,260,265,267,269,270,278,285,287,288,290,292,295,296,298,299,316,317,321,324,325,326,328,329,336,339,340,341,342,351,357,362,363,364],help_categori:[22,33,41,43,58,60,68,69,71,85,116,123,154,156,157,158,159,164,165,166,167,168,169,170,171,174,179,180,181,182,185,186,187,188,189,193,199,200,201,202,203,206,212,213,214,215,217,218,219,220,221,224,231,232,233,234,238,239,247,326,328,329,341],help_cateogori:326,help_detail:362,help_entri:326,help_kei:159,help_list:362,help_mor:166,help_system:69,help_text:[166,195,357],helpact:234,helpdetailview:362,helpentri:[69,80,237,238,239,324,362],helpentry_db_tag:237,helpentry_set:319,helpentryadmin:237,helpentryform:237,helpentrymanag:[238,239],helper:[19,41,43,51,58,67,80,109,119,141,144,153,156,159,166,173,176,180,184,205,247,251,252,264,276,277,296,308,322,328,329,337,342,343,344],helpfil:166,helplistview:362,helpmixin:362,helptaginlin:237,helptext:[51,249,328],helptext_formatt:[51,249,328],henc:[0,22,46,76,95,106,233,234,241,322],henceforth:[13,44,60,66,80,90,95,97,102,105,111,123,131,132,140,308],henddher:203,her:[122,127,182,189],herbal:327,herd:23,here:[0,2,3,4,5,9,10,11,13,14,15,16,17,19,20,21,22,23,24,25,27,29,30,33,36,37,38,39,40,41,42,43,44,46,47,48,49,51,53,56,57,58,59,61,62,63,64,65,67,69,70,71,72,73,74,75,76,77,79,80,81,83,84,85,86,87,88,89,91,92,95,98,100,101,102,103,104,105,106,107,108,109,110,111,113,114,115,116,117,118,119,120,121,123,125,126,127,128,129,130,131,133,134,135,136,137,144,146,152,153,154,159,167,168,169,171,175,179,180,181,182,184,185,186,194,195,204,205,206,213,217,218,219,220,223,224,227,231,232,233,234,235,239,242,247,251,252,259,267,269,272,276,278,284,285,287,290,305,306,308,314,315,316,318,321,324,328,330,334,336,344,346,362],hesit:[22,39],hfill_char:330,hidden:[11,49,61,64,96,122,131,137,177,182,185,234],hide:[9,11,20,31,33,34,41,61,73,80,96,111,138,166,177,185,206,224,232],hide_from:[34,177],hide_from_accounts_set:148,hide_from_channels_set:177,hide_from_objects_set:246,hieararci:241,hierarch:[2,19,43,80,156],hierarchi:[4,19,22,43,61,66,69,80,119,139,165,182,241],high:[4,8,20,31,55,63,80,122,152,220,247,309],higher:[7,19,25,31,41,43,44,51,56,58,62,63,73,80,90,105,108,119,123,128,144,152,156,169,205,217,218,219,220,221,233,241,269,328,344],highest:[31,58,321,344],highest_protocol:340,highli:[9,17,51,55,56,64,80,86,107,115,117,190,322,334],highlight:[14,38,57,58,114,126],hijack:134,hilight:343,hilit:343,hill:87,him:[41,46,51,189,206],hint:[1,25,55,63,79,93,95,109,110,123,124,128,136,139,184,313],hire:[85,103],his:[46,51,58,77,96,109,127,182,189,206,329,343],histogram:344,histor:[62,129,266,337],histori:[4,23,34,41,50,58,64,95,100,131,137,138,139,153,174,188,337],hit:[6,9,21,29,52,61,73,116,119,122,131,146,217,218,219,220,221,231,232,265,306,337,340],hit_msg:231,hite:114,hlxvkvaimj4:133,hmm:138,hnow:114,hobbi:[61,90],hobbit:62,hoc:55,hold:[2,6,9,13,14,16,21,26,31,34,36,38,41,47,49,51,58,61,63,64,66,73,77,80,85,89,96,97,100,102,104,105,106,109,111,112,114,116,119,123,125,131,133,136,140,152,153,178,180,182,185,204,214,215,217,218,219,220,221,229,231,232,236,241,242,251,252,253,257,262,274,276,285,295,296,298,308,318,319,320,324,327,328,330,332,337,344,346],holder:[9,69,90,316],home:[8,16,26,63,64,66,70,79,89,90,103,109,131,133,139,153,159,165,231,241,246,247,252,324,344],home_loc:[43,159],homepag:[27,63,79,90,93],homes_set:246,homogen:[27,164,251,252,256],homogenize_prototyp:251,honor:206,hood:[20,33,38,51,57,60,61,64,86,87,119,122,125,128,206,234],hook:[2,25,30,33,43,49,55,60,61,73,74,76,80,81,89,96,102,107,110,115,116,117,118,120,121,123,127,132,144,150,152,154,156,159,165,167,169,170,173,175,182,187,195,197,203,204,206,210,217,218,219,220,221,228,230,231,232,233,235,244,247,254,256,259,261,271,278,290,293,295,303,305,306,307,309,318,326,329,334,335,338,342,344,357,362],hooligan:12,hop:55,hope:[42,58,91],hopefulli:[8,26,41,49,90,111,133,137],horizon:62,horizont:[138,232,330,344],hors:27,host1plu:90,host:[7,12,23,26,27,61,64,67,89,98,100,102,103,131,135,205,312,344],host_os_i:344,hostnam:67,hotbutton:137,hotel:90,hotspot:103,hour:[27,62,132,184,331,344],hous:[43,90,109,159],housecat:27,hover:138,how:[0,1,3,4,5,6,7,8,10,11,12,13,14,15,17,19,20,21,22,25,26,27,28,29,30,31,35,37,38,39,40,41,42,43,44,45,46,48,49,51,55,56,57,60,61,62,63,64,66,68,69,72,73,75,77,80,81,82,83,84,85,86,87,88,90,91,93,94,95,96,97,102,103,104,105,106,108,109,110,111,112,116,117,118,119,120,123,124,126,127,128,130,131,132,133,134,135,136,137,138,139,140,145,146,151,153,154,168,169,170,173,174,175,180,182,184,185,189,200,204,205,206,213,215,219,220,221,226,231,235,237,241,246,247,252,256,261,267,272,277,281,286,291,294,298,305,306,307,308,312,315,318,322,326,328,329,330,337,338,343,344,357,363,364],howev:[0,2,4,5,10,11,12,13,14,15,17,20,22,23,29,30,31,33,37,38,40,41,43,44,46,50,55,58,59,60,62,70,73,77,80,85,88,90,91,108,109,110,111,113,114,115,120,123,125,128,129,131,132,135,153,154,159,166,169,170,180,188,190,195,204,215,220,227,241,321],howto:94,hpad_char:330,href:[17,69,133],hrs:184,htm:282,html5:55,html:[11,24,38,43,55,57,61,64,69,79,83,94,96,103,111,114,134,135,136,137,138,145,169,175,204,234,239,289,291,295,296,312,318,340,343,362],htmlchar:343,htop:110,http404:[69,134],http:[3,4,9,10,11,16,22,23,36,37,38,39,41,43,45,46,54,55,57,61,63,64,65,69,70,75,79,83,90,92,94,95,96,98,101,103,104,107,108,111,116,122,124,127,128,130,131,133,134,135,137,138,141,146,164,180,204,234,269,276,278,279,280,281,282,283,289,291,294,295,296,312,321,330,343,344,357],http_request:[103,135],httpchannel:312,httpchannelwithxforwardedfor:312,httpd:8,httprequest:144,httprespons:[145,173,244],httpresponseredirect:133,hub:[79,100,139,324],hue:114,huge:[3,16,21,29,39,61,62,86,127,235,329],huh:[22,33],human:[4,12,40,51,57,61,64,73,85,93,96,117,133,362],humanizeconfig:4,hundr:[72,113,133],hungri:86,hunt:[73,231],hunting_pac:231,hunting_skil:73,hurdl:49,hurt:30,huzzah:9,hwejfpoiwjrpw09:9,hxvgrbok3:122,hybrid:73,i18n:[47,76,247],iac:88,iattribut:316,iattributebackend:316,icon:[79,106,138],id_:[145,237,244,357],id_str:84,idcount:298,idea:[0,9,12,26,33,37,38,39,45,49,55,56,60,61,63,69,71,72,73,77,80,85,106,107,108,119,121,123,127,131,133,134,139,154,166,167,170,179,205,252,334,343,362,364],ideal:[1,6,33,37,46,48,90,129,138,148,242],idenfi:152,ident:[9,31,33,44,57,61,83,96,97,110,114,144,167,168,206,212,242,247,321,322],identif:[27,115,308],identifi:[0,8,23,28,30,31,33,38,39,41,42,43,49,50,51,58,61,69,74,83,84,88,93,97,102,109,115,116,119,125,134,138,151,154,159,164,167,168,170,174,176,180,187,205,206,215,233,242,247,251,258,261,264,267,272,274,277,291,295,304,306,308,316,317,321,327,328,336],identify_object:176,idl:[12,105,144,146,231,247,299,306,308],idle_command:33,idle_tim:[144,247],idle_timeout:146,idmap:334,idmapp:[43,86,125,141,142,169,177,239,274,300,316,317,318,320],idnum:176,ids:[12,58,121,187,298,308,327],idstr:[84,115,257,261,304],idtifi:176,idx:121,ietf:283,ifconfig:67,ifram:[137,138],ignor:[6,14,20,23,27,29,31,33,34,38,42,43,51,58,73,74,80,83,86,90,91,95,96,105,114,117,121,122,125,131,144,151,152,153,154,159,175,187,206,241,246,247,261,267,272,278,279,294,295,296,316,318,321,322,327,328,336,339,344,345],ignore_error:144,ignorecas:[159,165,166,171,174,182,201,321,326,343],ignoredext:312,ij9:122,illumin:111,illus:[10,96],imag:[4,17,63,69,70,90,101,106,122,133,135,136,137,138],imagesconfig:4,imagin:[14,29,31,46,48,51,61,77,116,117,122,132,138,322],imaginari:[21,61,79,111],imc2:34,imeplement:235,img:[17,70],immedi:[0,5,15,27,29,33,43,48,49,51,64,70,74,83,90,95,100,102,109,116,120,133,134,150,157,169,231,278,322,324,328,329],immobil:25,immort:231,immut:[11,261],imo:1,impact:[94,126],impati:63,imper:102,implement:[1,6,11,21,25,26,28,29,31,33,34,37,40,41,49,51,55,56,57,58,60,61,78,79,80,81,86,88,89,96,97,108,111,112,114,115,116,117,118,119,120,123,124,125,127,128,131,135,137,138,139,140,145,148,152,153,156,157,158,159,160,161,164,165,166,167,168,169,176,177,179,181,182,184,185,187,189,197,202,205,206,210,212,213,214,215,217,218,221,224,231,232,233,235,238,239,241,242,246,247,256,258,261,273,278,280,281,282,283,284,285,287,289,290,291,294,295,296,298,305,312,316,317,318,319,321,322,325,326,328,329,335,336,339,340,343,344,362,364],impli:[22,112],implicit:[91,114,126],implicit_keep:252,impmement:242,import_cmdset:153,importantli:[51,133,242],importerror:[4,9,344],impos:[55,79,310],imposs:[15,19,38,49,51,90,111,113,121,133,138,330],impract:[33,109,252],imprecis:334,impress:[42,111],improv:[0,11,37,61,70,76,91,128],in_game_error:[26,103],in_templ:[316,336],inabl:[63,103],inaccess:[0,80],inact:[102,231],inactiv:[43,169],inadvert:221,inadyn:90,inarticul:108,inbuilt:[67,112,123],incant:75,incarn:357,incid:210,includ:[2,4,6,9,12,13,16,20,21,22,27,30,31,33,36,37,38,39,41,43,44,48,51,53,55,58,60,61,62,63,64,69,73,74,75,78,79,80,84,85,88,89,91,93,95,96,100,101,102,104,105,106,107,108,109,111,112,114,115,116,119,121,125,127,131,133,134,135,136,137,138,144,150,151,152,154,157,158,159,167,168,170,174,179,182,187,188,189,195,197,200,205,206,210,215,217,218,219,220,221,224,227,233,234,235,241,247,267,285,287,290,291,304,307,316,317,318,319,321,322,323,324,325,327,328,330,331,337,344],include_account:316,include_children:317,include_par:317,include_prefix:151,include_unloggedin:[285,308],inclus:[317,336],incoher:126,incol:[58,327,330],incom:[33,40,88,90,96,104,139,145,146,151,168,173,210,218,244,254,276,280,283,286,290,291,295,296,298,306,307,308,312,328,329,336],incomplet:[154,213,330],inconsist:[10,97,204],incorpor:[43,156,330],incorrect:176,increas:[25,62,73,80,103,114,119,125,179,218,220,221,233,279,285,299,326,328],increase_ind:326,incred:[215,269],increment:[63,316],incur:27,indata:[40,316],inde:[9,55,90,91],indefinit:[102,219,232,324],indent:[0,9,13,14,27,38,50,51,57,60,95,129,137,296,322,326,328,344],independ:[0,56,64,102,126,179,201,209],indetermin:269,index1:133,index2:133,index:[7,38,43,49,56,61,68,79,85,86,90,108,111,121,135,136,151,165,179,215,232,239,265,269,270,312,319,321,329,330,344,357,360,362,364],index_to_select:215,indexerror:[134,235,317],indextest:360,indic:[0,8,22,38,43,49,51,62,85,91,95,111,119,146,159,166,167,168,189,210,215,256,278,279,287,294,295,308,310,312,321,322,328,329,344],individu:[0,11,13,14,18,21,22,33,34,41,43,46,48,49,55,57,58,59,71,73,78,85,88,90,96,109,111,132,153,157,174,185,192,195,220,227,241,249,250,252,306,319,321,330,336,338,339],ineffici:[115,117,321],infact:33,infinit:[0,61,63,146,235,251],inflict:[102,219],inflict_condit:219,influenc:[10,16,22,46,51,102,123,179,344],influenti:79,info1:214,info2:214,info3:214,info:[3,5,11,13,16,17,20,23,24,25,26,27,33,35,37,43,52,55,58,59,63,64,68,78,86,88,89,95,100,101,102,104,105,106,112,124,125,131,138,139,144,146,148,156,157,159,169,171,175,178,179,181,186,187,190,199,233,239,247,267,272,276,284,285,305,306,308,317,318,319,324,327,337,344],infomsg:337,inforamt:[206,235,247,318],inform:[0,2,3,6,8,9,18,20,22,23,25,27,28,33,34,36,38,41,43,46,48,51,55,60,65,66,68,69,73,83,84,85,86,91,94,95,96,100,102,103,104,105,109,112,114,116,117,119,120,123,124,127,131,132,133,134,135,136,137,138,139,144,146,154,157,159,164,165,169,174,177,180,185,197,204,206,210,211,219,220,221,239,247,259,267,272,281,282,283,285,294,307,308,317,318,321,324,326,337,344,357],infrastructur:[64,83,90,103,150,277],infrequ:46,ing:[9,14,58,185],ingam:46,ingame_python:[141,142,178],ingame_tim:62,ingo:[31,51,58,74,114,152,279,336],inher:[4,10,87,108],inherit:[2,5,6,22,27,30,31,33,36,40,42,43,57,60,64,69,81,86,89,96,102,109,114,117,119,123,125,127,148,152,154,159,167,169,170,175,177,179,180,182,187,189,197,203,206,213,217,218,219,220,221,230,231,233,234,243,246,247,252,256,258,307,314,317,318,326,329,330,334,342,344,362],inheritng:252,inherits_from:[43,117,134,169,344],inifinit:251,init:[6,9,22,38,40,47,49,58,60,63,75,83,95,104,106,131,137,138,179,180,188,224,246,258,267,285,286,296,308,344],init_delayed_messag:188,init_django_pagin:329,init_evt:329,init_f_str:329,init_fill_field:188,init_game_directori:267,init_iter:329,init_menu:230,init_mod:[153,258],init_new_account:344,init_pag:[251,329],init_pars:234,init_queryset:329,init_rang:221,init_sess:[40,307],init_spawn_valu:251,init_str:329,init_tree_select:215,init_tru:153,initi:[5,9,11,21,29,33,38,47,49,50,51,58,60,61,64,68,73,85,97,105,107,110,120,123,127,130,131,133,137,138,144,145,146,153,154,170,174,175,177,179,186,188,192,196,198,205,206,215,217,218,219,220,221,230,231,232,237,244,246,247,251,257,260,261,264,265,267,269,270,271,276,277,278,280,281,282,283,285,286,287,288,289,290,291,292,294,295,296,298,306,307,308,315,316,321,323,326,327,328,329,336,339,340,344,351,357,362],initial_formdata:188,initial_ind:330,initial_setup:[141,142,262,305],initialdelai:[264,278,279],initialize_for_combat:[217,218,219,220,221],initialize_nick_templ:[316,336],initil:295,inject:[96,103,306,322,328],inlin:[18,57,85,104,137,145,173,237,244,254,265,315,336],inlinefunc:[45,83,104,109,141,142,250,308,320],inlinefunc_en:[114,336],inlinefunc_modul:[114,336],inlinefunc_stack_maxs:114,inlinefuncerror:336,inlinefunct:[114,336],inlinepars:336,inmemori:316,inmemoryattribut:316,inmemoryattributebackend:316,inmemorybackend:316,inmemorysavehandl:339,inner:77,innoc:[12,43,157],innocu:103,inobject:276,inp:[51,159,176,251,265,329,344],inpect:51,input:[1,5,9,10,14,15,17,20,22,27,30,31,40,41,43,50,53,55,57,58,70,74,79,83,87,91,95,96,104,105,109,110,111,113,114,115,118,127,131,133,135,137,138,144,149,150,151,154,159,164,166,167,168,169,170,174,176,180,185,188,200,201,205,206,210,215,220,232,238,247,250,251,252,265,272,276,287,295,306,308,316,317,319,326,327,328,329,330,336,338,340,344,345,357],input_cmdset:328,input_func_modul:[74,272],input_str:328,input_validation_cheat_sheet:357,inputcmdset:328,inputcommand:[74,83,88],inputcompon:137,inputdebug:[74,272],inputfunc:[40,45,104,139,141,142,146,262,295,306,308,364],inputfunc_nam:295,inputfunct:74,inputhandl:141,inputlin:[43,87,165,316,317],insecur:90,insensit:[51,174,187,206,233,317,349],insert:[13,14,25,50,51,58,64,71,87,96,109,114,138,153,189,202,250,322,328,330,336,344],insid:[0,5,10,11,13,15,19,20,21,23,25,27,28,31,33,38,42,43,46,47,51,57,59,64,67,68,69,71,72,73,80,82,83,85,86,88,89,91,92,93,95,96,100,102,105,106,108,109,110,111,114,117,121,123,125,127,132,133,134,135,136,139,141,146,169,180,187,190,194,195,206,231,233,235,241,246,247,250,267,284,305,312,322,323,336,344],inside_rec:241,insiderecurs:241,insight:[20,41,42,122,136],insist:[90,91],inspect:[12,23,43,51,85,144,159,179,265,267,328],inspectdb:86,inspir:[33,41,73,116,127,129,181,189,330,344],instac:[154,247,306],instal:[0,3,5,14,20,26,37,38,41,42,46,47,54,55,57,58,59,60,64,65,76,77,79,95,96,97,98,101,103,106,108,110,124,127,128,130,134,138,139,141,179,181,182,183,185,186,187,199,201,202,203,206,210,212,213,217,218,219,220,221,363,364],installed_app:[4,69,86,127,133,134],instanc:[0,2,3,8,11,16,17,22,25,27,28,29,39,41,42,43,46,50,51,56,57,58,59,60,61,62,64,69,76,84,85,91,95,96,97,102,103,105,107,109,116,119,121,126,127,131,136,137,144,145,148,150,151,152,153,154,163,166,168,169,173,175,177,180,195,197,198,200,204,215,234,235,237,239,244,246,247,251,252,254,256,260,261,264,267,276,277,278,279,280,281,282,283,285,289,290,294,298,299,307,308,312,315,316,318,319,321,324,325,328,330,334,335,340,344,345,357],instanci:180,instant:136,instanti:[33,86,127,144,153,170,224,258,261,284,305,308,316,327],instantli:315,instead:[0,3,6,9,10,11,12,14,16,19,20,21,22,23,25,26,27,29,30,31,33,34,37,39,41,43,46,48,49,51,57,58,60,62,63,64,67,79,80,83,84,85,86,89,90,91,93,95,96,100,102,103,104,105,106,109,110,111,112,114,116,117,118,119,121,123,125,126,127,128,131,132,133,134,135,136,138,139,144,146,153,154,156,157,159,161,164,168,169,171,180,185,186,188,197,198,201,205,206,213,215,217,218,219,220,221,226,230,232,234,235,241,242,247,252,261,267,295,296,306,310,315,316,318,319,324,328,329,334,337,339,340,341,344,357,362],instig:157,instil:[140,219],instr:[276,344],instruct:[0,8,9,13,14,23,27,30,37,38,42,43,46,47,55,57,58,60,61,63,67,74,75,77,79,83,85,90,93,96,97,100,106,119,124,131,139,144,154,169,200,206,210,252,261,264,267,277,279,285,290,291,295,296,298,306,308,328,338],insult:94,integ:[25,31,33,39,85,91,105,109,114,123,125,151,182,184,185,188,217,218,219,220,221,233,241,247,250,317,336,340,344,345],integerfield:[133,357],integr:[4,7,41,45,61,64,76,79,103,134,137,139,170,206,270,272,328,364],intellig:[73,83,91,103,134,153,298],intend:[13,17,20,22,27,31,33,34,37,42,55,61,90,103,108,109,111,112,114,122,126,131,136,137,144,164,179,180,206,227,239,247,252,285,317,319,324,325,327,330,336,341,342,345,362],intens:[79,93,114],intent:[51,76,96,103,205,344],inter:13,interact:[2,20,23,29,33,40,42,43,51,55,56,59,61,77,79,100,106,108,110,116,122,133,138,141,158,221,226,267,284,322,337,344],intercept:308,interchang:[116,328,362],interest:[0,1,4,11,14,20,21,22,26,33,37,40,42,46,49,55,57,60,61,70,79,86,90,91,93,96,103,109,114,119,120,121,123,136,153,168,179,184,233,235],interf:63,interfac:[9,21,22,23,25,36,40,42,43,63,64,69,70,79,80,90,94,96,97,101,104,111,119,133,135,137,138,139,156,159,173,175,247,259,278,307,312,316,319,321,362],interfaceclass:287,interfer:[23,97,251],interim:[29,115],interlink:[284,305],intermediari:[206,242,257,328],intern:[10,11,15,27,34,38,40,51,63,76,80,87,88,90,100,102,103,104,105,107,109,110,112,113,116,128,144,146,174,177,186,189,206,235,247,251,258,295,296,316,318,319,321,325,328,330,336,344],internal:328,internal_port:90,internation:[7,113,139,364],internet:[10,12,16,33,40,43,63,67,72,90,94,103,124,157,264,269,277,278,279,287,290,298,312],interpret:[33,42,43,56,59,60,91,93,96,102,103,104,109,134,154,158,159,251,252,295,321,336,340],interrupt:[63,150,154,170,192,195,198,287],interruptcommand:[33,91,141,150,154],interruptev:198,intersect:[31,152],interv:[64,74,102,115,116,120,121,132,146,184,195,217,218,219,220,221,223,226,227,231,233,250,256,259,261,272,324,331,344],interval1:261,intim:[31,33],intimid:58,intoexit:[43,159],intpropv:123,intricaci:62,intrigu:54,intro:[4,69,122,124,134,230,233],intro_menu:[141,142,178,229],introduc:[26,29,31,57,73,97,123,124,127,131,139,206],introduct:[3,13,14,15,16,18,19,20,45,60,61,63,124,127,131,139,180,363,364],introductori:[55,63],introroom:233,introspect:203,intrus:126,intuit:[22,51,61,86,91,131,139,152],intxt:27,inv:[31,43,82,165,182],invalid:[11,41,60,91,109,144,188,206,227,251,330,340,344,345],invalid_formchar:327,inventori:[20,21,25,27,31,80,85,91,97,119,138,165,182,206,241,247,318],invers:[80,114,126,206,293,343],invert:[114,126],investig:90,invis:24,invit:[0,10,61,77],invitingli:20,invok:[11,13,14,102,209,241],involv:[40,56,61,68,75,80,89,105,107,116,123,188,221,318,319,321],ioerror:322,ipregex:157,ipstart:[63,100,110],iptabl:103,ipython:[26,58,59,96],irc2chan:[72,164],irc:[7,9,26,34,43,55,60,63,70,79,94,98,131,138,139,141,142,146,164,172,262,272,275,285,308,363,364],irc_botnam:146,irc_channel:146,irc_en:[72,164,241],irc_network:146,irc_port:146,irc_rpl_endofnam:279,irc_rpl_namrepli:279,irc_ssl:146,ircbot:[146,279],ircbotfactori:[146,279],ircclient:[279,308],ircclientfactori:285,irchannel:[43,72,164],ircnetwork:[43,72,164],ircstatu:164,iron:179,ironrealm:291,irregular:[223,231,233],irregular_echo:231,irrelev:[103,276],irur:52,is_account_object:56,is_act:[145,256],is_aggress:117,is_anonym:[4,69],is_anyon:4,is_authent:133,is_ban:144,is_bot:148,is_build:4,is_categori:215,is_channel:[33,41,174],is_connect:[148,247],is_craft:29,is_exit:[33,154],is_fight:29,is_full_moon:25,is_giving_light:232,is_gm:58,is_in_chargen:123,is_in_combat:[217,218,219,220,221],is_inst:27,is_it:344,is_iter:344,is_lit:[232,233],is_next:[148,177,246,256,316,318],is_o:344,is_ouch:11,is_prototype_bas:251,is_sai:118,is_staff:145,is_subprocess:344,is_superus:[2,4,144,145,148,242,247,324],is_thief:[43,166],is_turn:[217,218,219,220,221],is_typeclass:[144,318],is_valid:[102,121,133,179,227,256,259],is_valid_coordin:235,isalnum:321,isalpha:321,isbinari:[278,295],isclos:137,isconnect:137,isdigit:[58,114,321],isfiremag:28,isinst:[39,344],island:200,isleaf:296,islow:321,isn:[0,4,17,22,41,42,46,50,56,62,63,69,91,119,138,180,192,196,221,233,234,269,315,321,338,349],isnul:340,iso:[15,113],isol:[13,37,61,63,64,91,95,100,127],isp:[90,103],isspac:321,issu:[7,8,10,11,13,14,21,22,23,29,31,33,37,38,42,43,45,48,54,58,60,61,63,70,79,85,89,90,93,103,108,111,123,125,126,127,131,138,140,164,251,267,298,299,330,363],istart:[42,110,141],istep:299,istitl:321,isub:116,isupp:321,itch:[61,63],item:[20,43,47,51,59,63,68,69,82,85,86,116,117,138,165,179,182,188,206,219,224,235,247,286,316,336,344],item_consum:219,item_func:219,item_kwarg:219,item_selfonli:219,item_us:219,itemcoordin:235,itemfunc:219,itemfunc_add_condit:219,itemfunc_attack:219,itemfunc_cure_condit:219,itemfunc_h:219,iter:[11,49,51,59,97,112,119,138,144,200,206,235,247,252,259,296,298,316,318,319,321,322,325,329,344],iter_cal:329,iter_to_str:344,itl:[22,180],its:[0,2,3,5,9,11,12,14,15,16,20,21,22,23,25,27,29,31,33,37,38,39,40,41,42,43,44,49,50,51,52,55,56,57,58,60,61,62,63,64,65,68,69,70,72,73,75,80,81,82,83,84,85,86,88,89,90,91,93,94,95,96,98,100,101,102,103,104,105,109,111,114,115,117,118,119,121,122,123,124,125,126,127,128,129,130,131,133,134,135,136,137,138,139,144,145,146,148,150,151,152,153,154,157,159,167,168,169,175,176,179,180,188,189,195,197,203,205,206,213,215,217,218,219,220,221,226,227,231,232,234,235,241,246,247,252,259,260,261,267,272,276,280,293,294,295,296,299,307,308,312,313,315,316,317,318,319,322,327,328,330,334,336,337,338,339,340,341,344,357,362],itself:[0,4,9,11,15,17,20,21,22,23,25,27,29,33,36,37,40,41,44,45,46,47,49,51,55,60,63,64,68,75,77,78,80,82,85,86,89,96,104,105,106,111,114,115,116,118,119,122,123,125,127,131,133,134,135,136,144,146,174,175,180,185,188,198,204,206,215,220,223,232,233,235,236,241,247,249,252,260,267,291,296,308,312,315,316,319,321,324,326,328,339,341,346,357,362],iusernamepassword:287,iwar:85,iweb:90,iwebsocketclientchannelfactori:278,iwth:261,jack:87,jail:[12,13],jamochamud:24,jan:[12,62],januari:62,jarin:90,javascript:[55,83,88,103,135,136,137,138,295,296],jenkin:[123,182,188,190,215,217,218,219,220,221],jet:220,jetbrain:[79,106],jnwidufhjw4545_oifej:9,job:[33,41,67,69,80,144],jobfusc:205,john:[58,214],johnni:[209,210],johnsson:87,join:[9,22,34,43,49,58,61,63,65,72,96,112,116,119,123,133,144,164,175,179,205,321,344],join_fight:[217,218,219,220,221],join_rangefield:221,joiner:175,jointli:[64,153],joke:59,joker_kei:[22,180],journal:[61,111],jpg:122,jqueri:138,json:[83,88,137,138,209,278,291,295,296,325],jsondata:88,jsonencod:296,jsonifi:296,jtext:321,judgement:73,jump:[13,14,21,41,44,49,51,52,55,61,63,77,89,108,131,139,215,265],junk:276,just:[0,1,3,4,5,6,9,10,11,12,13,14,15,17,19,20,21,22,23,25,26,27,28,29,30,31,33,34,37,38,39,40,41,42,43,44,46,47,48,49,51,52,54,56,57,58,59,60,61,62,63,64,68,69,70,73,74,76,77,79,80,81,83,85,86,87,88,89,90,91,93,95,96,97,100,101,102,105,106,107,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,125,126,127,128,131,132,133,134,135,136,137,138,140,144,152,153,154,157,159,167,168,169,170,174,179,180,182,185,187,192,194,195,197,205,206,214,215,217,218,219,220,221,224,227,231,233,235,241,242,247,251,252,257,272,285,295,305,312,316,317,318,321,325,326,328,330,339,340,344,345,362],justif:[329,344],justifi:[96,109,250,321,329,344],justifii:329,justify_kwarg:329,kcachegrind:93,keen:37,keep:[0,1,4,7,9,11,13,14,15,16,20,25,26,29,30,33,34,42,45,48,51,56,57,58,60,61,62,63,64,68,69,73,75,76,77,78,81,82,85,91,92,95,96,97,100,105,109,116,118,121,122,126,128,131,132,133,134,138,146,153,187,190,195,204,209,227,232,233,251,252,258,269,310,328,330,344],keep_log:[34,175,324],keepal:[105,290,296],keeper:85,keepint:64,kei:[0,1,5,8,9,10,11,13,21,25,26,27,28,29,30,31,33,34,38,39,41,42,43,44,49,50,52,56,57,58,60,62,69,71,74,80,81,82,84,85,86,88,89,91,94,95,96,97,102,107,111,112,114,115,116,119,120,121,123,125,127,129,131,133,137,138,144,146,148,150,152,153,154,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,174,175,176,179,180,181,182,184,185,186,187,188,189,193,194,199,200,201,202,203,205,206,212,213,214,215,217,218,219,220,221,224,230,231,232,233,234,235,239,241,246,247,250,251,252,256,257,258,259,261,265,267,272,273,274,276,285,288,291,292,294,295,296,299,306,307,308,310,316,317,318,319,323,324,326,327,328,329,337,338,339,341,344,357,362],kept:[33,43,57,80,91,119,127,159,194,195,252,316],kept_opt:215,key1:202,key2:[51,202,247],key_mergetyp:[31,152,224],keyboard:138,keydown:137,keyerror:[251,261,339],keyfil:[288,292],keynam:[175,252,324],keypair:287,keys_go_back:[22,180],keystr:319,keystrok:287,keywod:330,keyword:[0,1,5,10,11,22,25,27,29,30,33,34,43,50,51,52,58,62,74,80,81,83,86,91,93,95,102,107,109,114,115,119,123,125,127,134,144,146,150,154,159,165,175,182,184,187,192,194,195,197,198,205,206,210,217,218,219,220,221,233,234,242,247,250,251,252,257,260,261,265,267,272,276,278,279,285,286,287,290,295,296,306,307,308,310,316,317,318,324,327,328,329,330,334,336,338,340,341,344,362],keyword_ev:198,kick:[12,31,43,51,58,90,146,152,157,164,171,186,247,329],kildclient:24,kill:[20,27,43,51,61,75,93,100,102,105,116,169,179,231,232,257,258,259,261,267,305,312],killsign:267,kilogram:82,kind:[0,11,37,38,40,80,91,97,104,116,118,119,121,133,138,217,218,219,220,242,318,345],kinda:138,kindli:126,kintmvlhf6m:133,kitchen:[43,44,159],knew:95,knock:51,knot:182,know:[0,2,5,6,8,10,11,13,14,15,16,20,21,22,23,26,29,31,33,37,38,39,40,41,42,43,44,48,49,51,54,56,57,58,60,61,64,67,69,70,72,73,74,79,80,81,82,83,84,85,86,89,90,91,93,95,96,97,98,100,102,104,105,110,111,113,114,116,117,118,119,121,125,126,127,128,131,132,133,134,136,138,139,154,158,159,167,168,170,174,179,194,199,205,215,220,232,246,247,272,306,308,315,316,322,323,328,344,362,363],knowledg:[13,15,33,55,77,289,308],known:[7,20,24,33,50,73,79,80,87,92,96,109,114,115,125,134,137,143,168,220,329],knuth:93,kobold:61,koster:79,kovash:51,kwar:318,kwarg:[1,10,25,29,33,40,41,51,58,59,74,80,81,83,84,88,96,107,109,114,115,118,121,125,132,134,137,144,145,146,147,148,150,154,156,157,158,159,164,165,166,167,168,169,170,171,174,175,176,177,179,180,181,182,184,185,186,187,188,189,192,193,194,195,197,199,200,201,202,203,204,205,206,210,212,213,214,215,217,218,219,220,221,223,224,226,227,230,231,232,233,234,235,238,239,241,242,244,245,246,247,249,250,251,252,255,256,257,259,260,261,264,265,272,273,274,276,277,278,279,284,285,286,287,288,290,291,292,295,296,300,306,307,308,309,310,312,315,316,317,318,319,321,326,327,328,329,330,331,333,334,336,337,338,339,340,341,342,344,345,357,362],l82:135,l93:96,label:[48,70,86,112,133,140,357],label_suffix:[145,237,244,357],laborum:52,lack:[13,38,56,61,70,129,206,247,316,344],ladder:58,lag:[49,63],lai:[1,48],lair:14,lambda:[10,39,51,69,109,195,252,344],lamp:[111,224,226,227],land:[91,116,231,232],landscap:[103,111],lang:205,langcod:206,langnam:206,languag:[7,15,38,40,47,55,56,57,58,64,79,91,95,103,108,113,114,118,124,125,127,129,130,137,139,205,206],language_cod:76,languageerror:[205,206],languageexistserror:205,languagehandl:205,larg:[10,11,13,14,16,20,23,37,51,55,56,61,86,90,96,97,108,109,122,127,205,235,251,285,322,327,334],larger:[14,20,49,57,61,68,80,82,86,108,187,247,293,321,334,344],largesword:86,laser:77,last:[4,11,13,14,22,26,29,31,33,34,36,42,43,48,51,54,58,60,69,74,76,86,87,89,90,91,95,96,105,107,110,116,121,122,126,127,131,134,136,137,150,151,153,159,164,165,179,184,187,195,197,206,215,217,218,219,220,221,227,247,271,321,322,323,328,329,330,331,337,344],last_cmd:33,last_initial_setup_step:305,last_login:145,last_nam:145,last_step:271,lastcast:28,lastli:[81,83,111,133,150],lastsit:25,late:[251,323],later:[0,2,9,11,12,13,22,23,33,34,38,40,43,46,55,58,60,61,63,64,69,73,74,76,81,83,84,86,90,95,97,109,111,114,115,117,120,121,123,125,131,133,138,139,140,152,156,157,159,167,168,184,203,206,252,261,287,319,344],latest:[20,21,27,31,36,38,43,58,63,64,75,83,98,131,159,164,169,197,247,252,286,310,328,337,363],latin:[15,113,247,344],latin_nam:247,latinifi:[247,344],latter:[6,27,29,34,64,77,80,89,91,95,115,126,206,256,258,319],launch:[14,21,54,63,75,85,90,93,102,106,110,122,127,138,153,224,266,267,277,279,298,326,344],launcher:[93,106,266,267,276,277,298],law:79,layer:[22,31,246,318],layout:[27,49,56,58,92,96,119,125,128,137,138,235],lazi:344,lazy_properti:344,lazyencod:296,lazyset:337,lc_messag:76,lcnorth:114,ldesc:56,ldflag:75,lead:[0,11,13,17,20,22,23,31,37,43,49,51,56,60,61,64,69,79,83,86,102,103,111,121,144,151,152,159,169,195,198,204,212,247,252,306,316,318,328,330,336,344],leak:135,lean:206,leap:[62,118],learn:[0,15,16,17,20,22,29,31,33,42,46,49,56,57,60,63,68,69,79,80,81,95,96,106,108,118,122,124,126,127,131,134,136,139,205,220,364],learnspel:220,least:[3,8,33,39,42,47,49,51,55,57,58,61,67,73,80,86,90,96,102,106,121,138,144,153,176,179,205,238,247,252,259,321,327,330,341,344],leasur:231,leather:85,leav:[0,2,20,21,22,25,43,58,60,73,74,77,85,93,95,102,103,116,123,137,138,156,158,159,164,175,179,180,233,235,241,247,295,296,328,334],leavelock:241,leaver:175,left:[22,27,33,36,39,41,43,57,69,74,80,85,86,91,101,102,109,111,114,137,138,144,159,165,167,168,190,217,218,219,220,221,232,235,242,250,252,318,321,330,344,363],left_justifi:[109,250],leg:304,legaci:[88,109,144,206],legal:[90,103],legend:[49,50,200],leisur:345,len:[25,49,58,71,85,109,114,116,119,120,121,151,168,184,344],lend:50,length:[22,23,25,49,62,66,68,71,83,86,90,91,95,122,151,184,188,190,198,205,206,269,310,316,321,330,344,362],lengthi:[1,25],lengthier:363,lenient:109,less:[22,34,44,51,56,61,64,73,86,90,91,106,108,116,119,132,133,139,184,218,220,316],let:[0,3,5,7,8,9,11,12,14,15,20,21,22,25,28,31,33,37,39,40,41,43,44,46,48,49,51,56,57,58,60,61,62,63,64,65,70,72,73,74,75,77,80,81,82,83,85,89,91,93,95,96,98,103,106,111,114,115,117,118,119,121,123,124,126,127,131,133,134,136,137,140,144,154,159,165,166,170,174,179,182,185,188,190,215,227,235,242,247,277,296,308,324,328,338,343,357,362,363],letsencrypt:[67,90],letter:[15,22,39,43,76,90,95,111,113,114,119,123,133,156,165,180,204,205,311,321,344],level:[2,11,13,19,20,22,26,27,30,36,38,40,41,43,47,50,51,55,57,58,61,66,69,71,73,79,80,85,90,95,96,104,105,108,111,112,119,122,125,130,133,138,139,140,144,156,161,162,180,181,184,199,205,215,241,247,251,252,269,306,316,318,324,326,331,336,344,362],lever:[33,125],leverag:[3,38],levi:86,lh3:133,lh6:133,lhs:[25,58,167,168],lhslist:[167,168],lib:[63,67,75,97],libapache2:8,libcrypt:75,libjpeg:75,librari:[6,11,13,26,45,53,56,57,63,64,75,76,78,79,91,95,100,103,108,109,125,127,128,133,136,137,138,178,204,234,251,252,280,318,330,344],licenc:321,licens:[37,45,79,106,139,204,321,364],lid:[224,226,227],lidclosedcmdset:224,lidopencmdset:224,lie:111,lies:[33,131],life:[11,37,62,87,95,126,184,231],lift:[20,73,80,96,123,221,242],lifter:80,light:[14,23,27,38,61,102,108,122,153,218,232,233,241,252,260,321],lightabl:232,lighter:[114,218],lightest:27,lightli:[16,218],lightsail:90,lightsourc:232,lightsource_cmdset:232,like:[0,2,3,5,6,8,9,10,11,12,14,15,16,17,19,20,21,22,23,25,26,27,28,29,30,31,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,49,51,52,53,54,55,57,58,59,60,61,62,63,64,65,67,68,69,70,71,72,73,74,75,76,77,79,80,81,83,84,85,86,88,89,90,91,93,95,96,97,100,102,103,104,105,106,107,108,109,111,112,114,115,116,117,118,119,120,121,125,126,127,128,129,131,132,133,134,135,136,137,138,139,140,144,146,148,149,151,152,153,156,158,159,164,167,168,171,172,175,176,179,180,182,186,187,188,189,190,198,200,204,205,206,212,213,215,217,218,219,220,221,224,227,233,234,235,239,241,242,246,247,250,251,252,272,280,296,301,305,307,308,316,317,318,321,322,324,327,328,329,330,331,334,338,340,341,344,357,362,364],limbo:[0,9,13,14,20,22,27,43,59,63,66,104,111,121,122,134,159,180,233,271],limbo_exit:111,limit:[0,2,6,11,16,19,20,25,26,27,28,31,33,34,37,43,46,51,53,55,58,61,64,68,71,80,86,90,91,95,102,104,109,112,116,123,125,126,127,138,140,144,156,157,158,159,175,176,182,195,206,215,217,219,220,227,238,239,242,247,252,256,259,261,272,285,310,316,317,318,319,322,324,326,337,341,344,362],limit_valu:144,limitedsizeordereddict:344,line:[0,4,5,9,10,13,14,15,19,22,23,25,26,27,29,30,31,33,34,36,38,39,41,43,45,46,48,51,53,54,56,57,58,59,60,61,62,63,67,69,74,76,81,83,86,87,89,90,91,92,93,95,96,97,98,100,104,108,109,110,111,114,119,121,123,125,127,128,133,134,137,138,139,141,144,150,153,159,166,168,169,180,185,186,188,200,201,202,205,206,215,234,235,251,267,272,287,290,295,306,318,322,326,327,328,329,330,337,344,357,362],linear:49,linebreak:[69,343],lineeditor:326,lineend:343,lineno:38,linenum:326,liner:279,linereceiv:[287,290],linesend:296,lingo:[57,86,105,135],linguist:344,link:[2,3,4,9,14,17,18,20,22,25,29,31,33,37,39,40,46,48,49,51,54,55,57,63,64,69,70,72,85,89,90,96,98,105,111,119,121,123,124,128,131,133,134,139,144,148,159,164,192,197,224,227,234,241,242,247,256,265,267,278,282,287,290,318,343,344,364],link_ok:241,linklock:241,linknam:54,linkref:38,linktext:38,linod:90,linux:[4,8,9,23,25,38,64,67,72,75,87,90,93,97,100,106,131,209,344],linuxtopia:57,liquid:318,list:[0,1,2,3,4,6,7,11,12,13,14,15,20,22,23,25,27,31,33,34,37,39,40,41,43,45,46,48,49,51,54,55,57,58,59,60,61,63,66,68,69,70,72,73,74,76,77,79,80,82,85,86,88,89,90,91,93,94,95,96,97,98,102,103,105,106,109,110,111,112,113,114,116,118,119,121,123,124,125,128,129,131,133,134,135,137,138,139,144,146,148,151,152,153,154,156,157,158,159,164,165,166,167,168,169,170,174,175,176,177,179,180,181,182,183,187,188,189,190,192,193,195,196,197,198,199,200,202,203,204,205,206,209,210,215,217,218,219,220,221,230,231,232,235,238,241,242,246,247,250,251,252,257,258,259,260,261,265,267,272,273,277,279,281,283,285,286,291,296,299,308,310,312,315,316,317,318,319,321,322,323,324,325,328,330,336,337,338,341,344,362,363],list_attribut:159,list_callback:193,list_displai:[145,173,237,244,254,263,315],list_display_link:[173,237,244,254,263],list_filt:[244,315],list_nod:328,list_of_all_rose_attribut:11,list_of_all_rose_ndb_attr:11,list_of_lycanthrop:119,list_of_myscript:102,list_prototyp:251,list_select_rel:[173,237,244,254,263],list_set:267,list_styl:156,list_task:193,list_to_str:344,listabl:[43,159],listcmdset:[43,159],listcmset:[43,159],listen:[2,12,34,41,43,67,80,103,105,124,137,139,164,175,205,206,224,241,362,364],listing_contact:54,listobj:[43,169],listobject:[43,169],listscript:[43,169],listview:362,lit:[232,233],liter:[13,20,38,43,57,66,94,109,165,250,321,340,344],literal_ev:[51,251,315,328],littl:[0,4,9,10,15,20,21,25,28,33,34,38,41,42,57,58,60,64,69,70,71,85,90,91,96,100,102,109,110,111,117,118,119,125,131,134,136,138,139,200,218,230,233,302,316,328,344,357],live:[8,23,38,60,63,67,70,79,90,100,106],ljust:321,lne:215,load:[6,11,12,13,15,26,29,31,33,43,44,50,51,56,57,58,60,61,69,73,82,83,97,103,106,109,111,121,123,127,136,137,138,148,153,165,166,169,177,187,195,205,239,242,246,247,256,260,271,274,276,307,316,318,319,322,323,326,335,338,339,342,344,355],load_buff:326,load_data:323,load_kwarg:339,load_module_prototyp:251,load_sync_data:307,loader:[51,318,344],loadfunc:[50,326,339],loc:[43,159],local0:67,local:[23,25,36,37,47,59,62,64,67,72,76,97,100,103,106,114,131,133,138,192,195,206,252,290,316],localecho:90,localevenniatest:342,localhost:[3,4,9,23,24,63,67,69,75,90,95,133,134,135,137,296],localstorag:138,locat:[0,2,4,6,8,9,11,12,13,20,21,25,27,30,31,33,35,38,39,43,46,47,48,49,51,57,58,59,63,64,66,73,74,77,80,85,89,90,91,96,100,102,103,109,111,112,114,117,118,119,121,122,123,125,127,128,131,133,135,136,137,140,144,150,159,165,169,176,180,181,182,187,197,200,203,206,212,231,233,235,241,246,247,252,296,305,317,318,319,322,324,328,330,337,341],location_nam:235,location_set:119,locations_set:[119,246],locattr:[232,241],lock:[4,6,10,12,19,20,21,22,23,25,28,29,31,33,34,39,41,44,45,47,48,53,58,60,62,68,71,82,85,89,90,96,104,109,110,112,123,125,133,138,139,141,142,144,145,154,156,157,158,159,164,165,166,168,169,170,171,175,177,179,180,181,182,185,186,187,189,192,193,195,196,199,200,201,202,203,206,212,214,224,231,232,233,235,237,239,246,247,251,252,312,316,318,324,326,328,338,345,364],lock_definit:242,lock_func_modul:[80,242],lock_storag:[154,156,157,158,159,164,165,166,167,168,169,170,171,174,177,179,180,181,182,185,186,187,188,189,193,199,200,201,202,203,206,212,213,214,215,217,218,219,220,221,224,231,232,233,234,239,247,316,318,326,328,329],lockabl:[58,212],lockablethreadpool:312,lockdown:[80,316],lockdown_mod:90,lockexcept:242,lockfunc1:80,lockfunc2:80,lockfunc:[25,33,43,53,80,104,121,141,142,159,240],lockhandl:[11,48,80,125,141,142,154,180,234,240,241],lockset:247,lockstr:[4,11,33,43,80,97,109,159,164,166,175,177,212,241,242,247,252,316,324],locktest:136,locktyp:[152,252],log:[2,4,5,6,8,10,11,12,20,21,23,24,25,33,34,35,36,39,43,44,45,47,51,53,55,57,58,59,60,63,64,65,66,67,71,72,73,74,75,76,83,86,89,90,93,94,100,101,102,105,106,107,110,111,114,121,122,123,128,130,131,133,134,135,137,138,144,153,157,171,175,181,186,188,201,209,210,247,256,267,272,276,277,281,284,285,287,290,298,299,300,306,308,310,312,318,324,336,337,344,362,364],log_dep:[27,337],log_depmsg:337,log_dir:209,log_err:[27,337],log_errmsg:337,log_fil:[27,337],log_info:[27,337],log_infomsg:337,log_msg:337,log_sec:337,log_secmsg:337,log_serv:337,log_trac:[27,102,118,120,337],log_tracemsg:337,log_typ:337,log_typemsg:337,log_warn:[27,337],log_warnmsg:337,logdir:36,logentry_set:148,logfil:[267,337,362],logged_in:105,loggedin:285,logger:[27,53,102,118,120,141,142,209,279,320],logic:[0,4,10,39,41,42,44,49,69,97,111,134,205,246,250,271,316,328,345],login:[2,4,7,9,25,33,35,43,51,55,69,70,80,90,97,101,105,107,131,133,139,144,156,171,186,201,242,271,272,287,290,295,296,299,308,344,349,351,360,362,364],login_func:299,loginrequiredmixin:362,logintest:360,logout:[298,299,360],logout_func:299,logouttest:360,logprefix:[277,287,290,312],lone:[43,61,111,159],long_descript:54,long_running_funct:10,long_text:52,longer:[0,21,25,29,33,41,43,50,52,54,58,69,79,86,91,102,115,124,125,126,129,152,157,175,182,205,206,213,217,218,219,220,221,257,326,330],longest:[27,206],longrun:33,loo:[154,170],look:[0,3,4,6,9,10,11,12,13,14,15,16,17,19,20,21,22,23,25,26,27,29,30,31,33,35,36,37,38,39,40,41,42,44,46,48,49,51,55,57,58,60,61,62,63,64,67,68,69,70,71,73,74,75,76,77,80,81,82,83,85,86,87,88,89,90,91,94,96,97,100,103,105,108,109,110,111,112,114,116,117,118,119,121,122,124,125,126,127,131,133,134,135,136,138,139,144,146,151,153,154,156,159,165,167,168,170,171,174,181,182,186,187,188,194,201,202,203,205,206,215,219,224,230,232,233,235,238,241,242,244,246,247,249,252,272,287,288,295,299,316,318,322,328,329,330,338,341,343,344,357,364],look_str:144,lookaccount:58,lookat:33,looker:[49,58,60,123,182,187,206,235,241,247,318],lookm:33,lookstr:247,lookup:[11,33,43,80,86,97,112,119,150,165,209,246,286,319,321,333,334,340,341,344,345],lookup_typ:340,lookup_usernam:51,lookuperror:321,loom:111,loop:[0,5,6,11,21,46,49,55,60,64,69,85,93,96,116,118,119,124,125,141,146,217,252,285],loopingcal:[259,270],loos:[14,37,144,182,221,238,287,298,322],loot:61,lop:119,lore:58,lose:[11,56,61,100,105,110,116,123,138,209,219,278,279,287,290],lost:[0,38,39,43,56,79,91,110,111,125,135,139,164,213,264,277,278,279,287,290,295,316,321],lot:[0,4,10,13,15,22,26,27,28,34,37,39,41,42,46,53,55,57,58,59,61,62,63,67,69,70,73,79,80,86,90,91,93,95,96,108,109,111,112,114,119,121,123,125,127,131,133,135,138,180,184,186,188,206,214,218,232,235,312],loud:21,love:137,low:[31,40,46,66,90,95,152],lower:[2,10,19,25,29,31,33,41,43,49,51,58,62,80,85,86,90,93,114,122,137,151,152,156,167,169,206,272,321],lower_channelkei:[41,174],lowercas:[95,154,321],lowest:[66,90,241,321],lpmud:129,lpthw:77,lsarmedpuzzl:203,lspuzzlerecip:203,lst:[49,324],lstart:50,lstrip:[91,119,321],ltto:114,luc:327,luciano:79,luck:[8,51,91,96],luckili:[60,80,111,127,131],lue:[114,321],lug:55,lunch:46,luxuri:[112,314],lycanthrop:119,lying:111,m2m:319,m2m_chang:107,m_len:344,mac:[9,23,24,38,64,93,100,106,131,344],machin:[13,25,100,106,131,231],macport:[63,131],macro:[4,116],macrosconfig:4,mad:131,made:[3,11,19,20,21,25,26,35,36,38,43,51,56,58,59,61,79,80,90,96,98,103,104,109,111,121,123,131,134,150,152,164,169,179,182,188,215,219,220,221,242,269,313,321,322,326,328,344],mag:[60,127,327],magazin:79,mage:[51,70],mage_guild_block:51,mage_guild_welcom:51,magenta:126,magic:[30,60,61,80,112,121,122,140,179,190,220,269],magic_meadow:112,magicalforest:140,magnific:51,mai:[0,4,6,8,9,10,11,13,19,20,21,23,25,27,28,29,31,33,34,37,38,40,41,42,43,48,51,54,56,57,60,62,63,64,66,67,69,70,71,73,75,77,79,80,81,83,84,86,87,88,89,90,93,94,95,96,97,100,102,103,104,105,106,108,109,110,111,114,115,116,118,119,120,123,125,127,128,130,131,133,134,135,136,144,146,150,151,152,154,156,157,159,164,169,175,176,178,179,181,182,184,188,190,197,205,206,217,218,219,220,221,224,232,233,241,242,247,250,251,252,253,269,299,306,308,309,313,315,316,318,319,321,323,324,325,326,328,330,331,336,338,341,344,362],mail:[9,34,37,51,55,57,60,61,70,79,93,116,128,141,142,176,177,178,241,363],mailbox:[34,199],maillock:241,main:[13,14,15,20,21,22,30,31,33,34,37,40,43,49,51,54,56,64,68,69,76,79,80,81,83,84,85,86,89,90,91,92,100,104,105,109,110,112,115,116,119,122,124,125,131,133,134,135,137,138,139,144,145,148,150,156,159,170,177,180,188,195,199,205,206,235,239,246,252,254,256,267,271,272,274,279,284,286,291,305,307,312,318,319,328,329,332,341,343,344],mainli:[10,12,33,34,43,51,57,79,83,89,93,96,105,156,236,316,322,336,344],maintain:[4,19,23,37,41,43,53,56,68,90,93,100,108,115,119,169,171,186,261,363],mainten:[90,103],major:[14,15,23,45,57,60,63,64,119,121,133],make:[0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,19,22,23,24,25,26,28,29,30,31,33,36,37,38,39,40,41,42,43,44,46,47,48,49,50,51,54,55,56,59,61,62,63,64,68,70,71,72,73,74,75,77,78,79,80,81,83,85,86,87,89,90,91,93,94,95,96,97,100,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,122,124,125,126,128,130,132,133,134,136,137,138,139,140,144,146,148,151,152,153,154,156,157,159,164,167,170,174,175,176,179,180,182,187,188,190,196,199,200,205,206,211,212,213,215,217,218,219,220,223,224,226,227,231,232,233,238,241,242,247,251,252,258,259,261,267,271,279,284,298,299,305,306,308,309,311,312,315,316,317,318,319,321,322,323,324,325,326,328,330,331,334,336,341,343,344,360,362,363],make_it:344,make_shared_login:351,make_uniqu:152,makeconnect:276,makefactori:287,makefil:38,makeit:298,makemessag:76,makemigr:[36,86,133],male:189,malevol:14,malform:345,malici:103,malign:242,man2x1:108,man:[43,87,90,108,129,165,199,206],mana:[28,30],manaag:237,manag:[2,7,9,11,31,39,40,43,53,56,57,59,80,83,85,86,89,93,96,100,102,105,110,115,119,125,127,128,131,133,138,141,142,143,144,148,169,170,172,174,175,177,197,202,206,221,227,233,236,239,243,246,247,251,253,256,261,262,267,274,314,316,318,319,320,323,324,332,335,337,341,344,360,362,364],manager_nam:316,manchest:344,mandat:357,mandatori:[0,22,107,109,129],maneuv:215,mangl:293,mango:203,manhol:[94,287],manhole_ssh:287,mani:[0,1,2,4,5,9,10,11,12,14,15,17,20,26,27,30,31,33,34,38,40,43,44,49,51,55,56,57,58,61,62,63,64,66,68,70,72,73,76,77,85,86,88,89,90,91,93,95,96,98,102,103,104,105,107,108,109,110,111,113,114,115,116,118,119,120,121,122,123,124,125,126,127,128,129,131,133,134,135,140,148,152,154,159,170,177,179,182,186,188,200,206,213,214,215,219,220,224,231,234,239,241,242,246,252,256,261,267,281,289,291,310,316,318,319,321,328,329,334,335,337,362],manifest:97,manipul:[0,11,22,31,41,43,44,51,64,86,102,109,123,159,166,176,187,192,238,247,273,324,329],manner:[14,175,206,235,247,285,318],manpow:37,manual:[4,6,14,20,21,23,30,33,34,38,40,55,58,60,61,63,68,79,80,85,86,89,90,97,102,109,110,111,114,117,119,121,122,124,125,128,131,134,139,140,141,146,159,215,224,227,230,234,247,252,259,267,284,291,328,329,363,364],manual_paus:259,manual_transl:205,manual_unpaus:259,manytomanydescriptor:[148,177,239,246,256,316,318,319],manytomanyfield:[148,177,239,246,256,316,318,319],map:[0,15,25,39,43,46,51,57,58,61,64,67,87,88,97,100,124,135,138,139,156,164,183,184,197,200,205,206,235,247,251,252,291,316,318,321,327,328,336,344,364],map_legend:200,map_modul:111,map_str:[49,111,235],mapbuild:[141,142,178],maplegend:200,mapnam:200,mapper:334,mapprovid:235,march:[79,337],margin:17,mark:[13,14,20,21,33,38,43,49,51,58,63,72,76,80,90,95,114,119,131,135,137,138,140,151,158,187,195,204,215,308,318,322,327,328,336,340],mark_categori:215,markdown:[1,4,38,48,54],marker:[13,20,33,43,51,64,87,114,138,165,187,189,197,206,215,247,279,287,290,295,296,316,319,321,327,329,336],market:90,markup:[38,81,114,136,139,141,142,183,320,343],mask:[203,206,210,211],maskout_protodef:203,mass:[61,124,139,364],massiv:[28,55],mast:43,master:[3,7,9,37,38,41,43,46,57,61,63,70,73,95,96,98,100,104,116,118,127,134,135,313],match:[9,11,20,22,27,31,33,39,41,43,44,49,51,57,58,62,68,74,76,80,83,86,87,88,89,91,102,104,105,109,111,112,114,118,119,125,128,131,133,134,135,136,137,138,144,150,151,152,153,154,157,159,165,166,168,170,174,176,180,183,184,187,188,198,199,200,201,202,203,206,220,235,238,241,242,247,251,252,258,261,272,273,285,298,308,316,317,318,319,321,326,328,330,336,339,341,343,344,345,362],match_index:151,matched_charact:188,matcher:51,matches2:86,matchobject:[321,343],mate:64,math:39,mathemat:152,matplotlib:300,matrix:330,matt:102,matter:[0,4,9,11,25,31,36,41,51,57,61,62,63,69,73,76,84,91,95,103,105,107,108,116,117,127,136,152,221,231,246,272,316],matur:[108,128,129],maverick:64,max:[16,25,49,71,114,116,188,206,310,337,344],max_damag:219,max_dbref:317,max_depth:344,max_dist:49,max_heal:219,max_l:49,max_length:[49,86,133,206],max_lin:330,max_num:145,max_num_lin:362,max_popular:362,max_rmem:334,max_siz:337,max_valu:[190,357],max_w:49,max_width:49,maxconn:67,maxdelai:[264,278,279],maxdepth:252,maxdiff:352,maximum:[16,39,71,86,91,111,114,144,188,190,217,218,219,220,221,247,252,312,321,328,330,336,344],maxlengthvalid:144,maxnum:344,maxrotatedfil:337,maxsplit:321,maxthread:312,maxval:[336,344],maxvalu:336,maxwidth:330,may_use_red_door:109,mayb:[6,9,11,13,14,21,22,25,27,31,33,38,44,48,49,54,61,63,68,69,70,73,82,85,86,90,109,116,119,122,138,140,153,179,198,205,285],mccp:[24,55,74,141,142,262,272,275],mccp_compress:280,meadow:[22,112,140],mean:[0,5,10,11,12,13,14,15,20,22,23,27,28,31,33,34,37,40,41,42,43,46,49,51,55,57,58,60,61,62,64,68,73,74,77,78,80,81,83,84,85,86,87,88,90,93,95,96,97,100,102,103,104,105,110,111,112,113,114,116,117,119,121,122,123,125,126,127,128,131,134,135,136,138,144,146,153,159,175,185,195,205,226,227,232,234,241,247,251,252,257,261,267,291,307,316,318,321,328,330,334,337,340,341],meaning:[154,170],meaningless:123,meant:[16,20,22,31,34,44,54,62,68,76,83,96,102,125,126,137,138,140,152,180,189,206,214,217,218,219,220,221,227,233,235,247,272,322],meantim:1,meanwhil:96,measur:[90,93,123,151,168,344],meat:133,mech:[124,139,364],mechan:[27,28,33,39,50,51,55,58,61,67,69,73,91,102,109,116,122,123,125,126,139,144,146,150,187,206,220,240,252,259,261,267,271,277,285,296,307,318,326,329,332,339,362],mechcmdset:21,mechcommand:21,mechcommandset:21,meck:21,media:[16,145,173,237,244,254,263,295,312,315,340,357],median:49,mediat:73,medium:16,mediumbox:276,meet:[25,36,61,122,194,235,311],mele:221,mem:[43,169],member:[9,11,43,70,86,165,167,168,247,344],membership:[4,9,119],memori:[6,12,23,28,31,33,43,56,75,86,90,93,113,125,135,144,169,175,227,247,261,300,310,316,320,329,334,339,344],memoryerror:63,memoryusag:300,memplot:[141,142,262,297],meni:180,mental:126,mention:[6,9,10,11,13,14,15,21,29,33,40,41,49,56,57,61,63,70,74,80,90,102,108,113,115,126,127,153,186],menu:[11,25,31,43,45,46,47,53,54,55,63,65,69,105,106,109,110,123,128,138,139,141,142,159,180,188,201,214,215,230,248,252,265,267,320,338,364],menu_cmdset:328,menu_data:51,menu_edit:180,menu_login:[141,142,178],menu_modul:328,menu_module_path:328,menu_quit:180,menu_setattr:180,menu_start_nod:214,menu_templ:328,menuchoic:[51,328],menudata:[188,230,249,328],menudebug:[51,328],menufil:328,menunode_fieldfil:188,menunode_inspect_and_bui:85,menunode_shopfront:85,menunode_treeselect:215,menunodename1:51,menunodename2:51,menunodename3:51,menuopt:215,menutre:[51,328],merchant:46,mercuri:108,mere:[117,190],merg:[3,5,22,33,37,43,44,51,57,62,64,97,131,139,150,151,152,153,166,224,233,235,252,256,291,328,336],merge_prior:328,merger:[5,31,37,111,152,153],mergetyp:[31,51,116,152,224,233,326,328],mess:[11,19,27,38,90,93,131,138,215],messag:[5,6,8,10,13,15,20,21,22,27,28,29,33,34,40,41,43,44,45,46,50,51,52,53,55,58,59,60,61,62,63,64,65,70,71,73,74,76,80,81,82,85,89,90,91,92,95,96,101,102,103,104,105,110,111,113,116,118,119,123,124,127,128,131,132,137,138,139,140,144,146,150,153,154,157,159,164,165,166,168,170,172,174,175,176,177,179,180,182,188,189,193,195,197,199,203,204,206,210,217,218,219,220,221,223,224,226,228,230,231,232,233,234,241,247,267,269,276,278,279,285,286,287,290,291,293,295,304,306,308,310,312,324,326,328,329,336,337,341,344],message_rout:137,message_search:176,message_transform:175,messagepath:[139,364],messagewindow:137,meta:[104,125,145,237,244,315,318,334,357],metaclass:[86,96,125,154,318],metadata:[210,269],metavar:234,meteor:82,meter:190,metho:174,method:[1,2,5,6,9,10,11,22,25,27,28,29,30,31,34,38,39,40,42,46,48,49,51,55,58,59,60,62,64,68,69,73,77,80,83,86,88,89,91,95,96,102,104,105,107,109,111,112,114,115,116,117,118,119,120,121,123,125,127,131,132,133,134,137,139,144,148,150,152,153,154,156,159,160,164,166,167,168,169,170,173,174,175,176,177,179,180,184,187,192,195,197,201,202,203,204,205,206,209,210,212,217,218,219,220,221,227,228,230,231,232,233,234,235,238,239,241,242,247,259,260,261,264,269,272,273,274,276,277,278,279,280,285,287,290,293,295,296,299,303,305,306,307,308,310,315,316,318,321,322,324,326,328,329,330,331,334,335,336,337,338,339,341,342,343,344,362],methodnam:[170,196,211,228,261,293,303,335,342,352,360],metric:[82,205],microsecond:11,microsoft:[63,111],mid:[29,108,121],middl:[29,33,49,90,218,321],middlewar:[141,142,346,348],midnight:[25,62],midst:122,midwai:114,mighht:91,might:[0,4,8,10,11,12,14,15,17,20,22,23,25,26,27,28,29,30,31,33,34,39,40,41,42,43,46,51,52,55,58,60,61,62,63,69,70,73,75,76,77,80,81,82,85,89,90,91,95,96,97,98,100,102,103,104,105,110,111,114,115,116,119,120,122,123,124,126,127,131,132,133,136,138,153,157,159,179,204,210,213,217,218,219,220,234,247,296,318,321,326,337,338,344,357,363],mighti:[29,111],migrat:[9,23,36,38,63,75,86,107,110,111,127,131,133,252],mike:[43,159],mileston:[94,139],million:[23,25,133],mime:324,mimic:[23,34,50,55,73,93,177,306,326],mimick:[50,64,73,138,298,326,329],mimim:319,min:[49,62,102,114,184,188,331,336],min_damag:219,min_dbref:317,min_heal:219,min_height:330,min_shortcut:[22,180],min_valu:357,min_width:330,mind:[10,12,13,14,37,41,45,51,54,55,56,57,60,61,122,126,134,138,179,190,195,204,269,344],mindex:151,mine:[46,103,138],mini:[55,111,124],miniatur:[61,122],minim:[61,103,105,116,138,205,252],minimalist:[33,58,108],minimum:[22,58,64,73,105,188,217,218,219,220,221,272,312,318,330,336,339,344],mininum:330,minlengthvalid:144,minor:[41,153,363],mint:[63,67,131],minthread:312,minu:[86,247,331],minut:[25,27,28,43,62,79,91,100,102,116,164,179,184,310,331,344],minval:[336,344],mirc:279,mirror:[72,79,105],mis:57,misanthrop:119,misc:138,miscelan:320,miscellan:47,mislead:41,mismatch:[74,344],miss:[49,57,60,63,70,90,94,95,97,217,218,219,220,221,251,272],missil:[21,220],mission:[41,69],mistak:[38,60,363],misus:90,mit:[79,124,321],mitig:[57,103,362],mix:[11,30,33,34,51,53,114,126,133,144,179,206,247,251,252,311,319,322,330],mixin:[251,301,362],mixtur:81,mkdir:[9,36,63],mktime:62,mob0:56,mob:[14,43,55,56,61,80,105,122,141,142,153,159,178,229,233,252,322],mob_data:56,mob_db:56,mob_vnum_1:56,mobcmdset:231,mobdb:56,mobil:[14,71,109,122,138,231,241],moboff:231,mobon:231,mock:[127,342],mock_channeldb:170,mock_get_vers:352,mock_random:228,mock_set:352,mock_tim:303,mockdeferlat:342,mockdelai:342,mocked_idmapp:303,mocked_o:303,mocked_open:303,mockup:138,mockval:342,mod:[8,103,251],mod_import:344,mod_import_from_path:344,mod_prototype_list:251,mod_proxy_http:8,mod_proxy_wstunnel:8,mod_sslj:8,mode:[2,8,31,41,42,43,50,51,67,69,74,79,93,100,103,106,116,117,123,133,135,138,141,158,169,175,181,197,199,231,247,251,258,267,272,277,284,295,296,305,322,326,328,337,344],mode_clos:296,mode_init:296,mode_input:296,mode_keepal:296,mode_rec:296,model:[9,11,34,41,45,59,64,69,73,80,87,96,104,112,115,119,125,132,135,136,139,141,142,143,144,145,172,173,175,176,236,237,243,244,247,253,254,257,261,262,263,273,314,315,316,317,319,320,325,332,333,335,340,341,344,357,362,364],model_inst:340,modeladmin:[173,237,244,254,263,315],modelattributebackend:316,modelbackend:349,modelbas:334,modelchoicefield:244,modelclass:[11,112],modelform:[145,237,244,315,357],modelmultiplechoicefield:[145,237,244],modelnam:[175,239,318],moder:[4,39,179],modern:[10,11,15,30,79,103,108,111,126,138,201,280],modif:[0,8,25,33,37,46,83,91,100,123,131,138,313,357],modifi:[0,2,4,11,20,22,25,26,31,33,34,38,39,40,43,44,46,51,53,55,56,57,58,60,68,73,78,85,89,93,96,100,104,105,109,110,111,114,118,119,122,123,125,128,131,135,137,138,139,140,144,145,153,175,180,185,187,189,195,197,203,206,213,217,218,219,220,221,232,234,239,247,252,261,318,322,328,334,340,343,357,362],modified_text:114,modul:[3,5,6,11,13,15,20,21,26,27,29,31,33,35,37,38,40,43,45,47,50,51,55,56,57,58,59,60,62,65,68,74,75,80,81,82,83,85,89,93,96,97,98,102,103,104,105,107,108,110,111,114,117,119,121,122,123,124,125,127,135,138,139,150,151,153,154,159,161,162,163,164,168,170,174,179,180,181,182,183,184,185,186,187,188,190,192,193,194,196,197,200,201,204,205,206,211,212,213,215,217,218,219,220,221,224,231,232,233,234,241,242,246,247,250,251,252,257,259,260,261,264,266,267,271,272,276,284,286,287,290,291,294,296,298,299,300,305,307,308,309,316,318,319,320,321,322,323,324,325,326,327,328,329,331,336,342,344,364],modular:55,modulepath:276,moifi:187,mollit:52,moment:[21,31,46,57,76,85,91,96,115,135,139,144,250,256],monei:[9,61,70,86,90,241],monetari:[37,179],monitor:[53,84,88,93,139,257,272,291,334],monitor_handl:[84,141,257],monitorhandl:[45,74,139,141,142,253,364],mono:25,monster:[29,43,57,61,64,89,109,159,252],month:[37,62,67,90,184,331,337,344],monthli:62,montorhandl:84,moo:[55,57,79,108,129],mood:[46,122],moon:[25,61,62,82],moor:122,moral:97,more:[0,1,2,3,4,5,9,10,11,12,13,14,15,17,19,20,21,22,23,25,26,27,28,31,33,34,35,36,37,39,40,41,42,43,44,46,49,50,51,52,55,56,58,59,60,61,62,63,64,66,67,68,69,70,71,72,73,74,75,76,77,79,83,85,86,87,88,89,90,91,93,94,95,96,97,100,102,103,104,105,108,109,110,111,112,113,114,115,116,118,119,121,122,123,124,125,126,127,131,132,133,134,136,137,138,141,143,144,145,148,151,152,153,158,159,165,169,171,174,178,179,180,181,182,184,186,187,190,195,198,200,204,205,206,213,214,215,217,218,219,220,221,226,231,232,233,234,235,241,244,247,250,251,252,277,279,282,298,299,308,313,316,317,321,322,324,325,326,327,328,329,330,334,341,344,345,357,362],more_command:329,moreov:[90,102],morn:[187,188],most:[0,4,6,8,9,10,11,13,17,22,23,25,27,30,31,33,35,37,38,39,40,41,42,43,46,47,48,49,51,56,57,58,59,60,61,62,63,64,69,73,74,77,80,82,83,86,88,89,90,91,93,95,96,97,100,103,104,105,107,108,111,113,114,115,116,117,119,121,123,125,126,128,129,133,137,138,140,144,148,152,153,156,159,167,177,180,190,205,206,213,217,218,219,220,221,239,241,242,246,247,251,252,256,290,295,305,316,317,318,319,328,329,334,335,344,362],mostli:[40,51,57,69,73,90,91,95,114,123,125,137,138,145,152,185,205,219,235,287],motiv:[13,14,37,55,61,70,89,278,279,285,286,287,290,295,296,307,308],mount:100,mountain:[108,111,200],mous:[114,137,328],move:[0,4,9,14,15,21,22,23,29,33,34,41,43,44,46,49,50,51,52,54,58,61,63,69,77,79,82,85,89,91,95,96,111,116,117,122,126,133,134,138,153,159,165,179,180,188,194,197,213,217,218,219,220,221,231,232,233,235,238,241,247,299,318,322,329],move_hook:247,move_obj:235,move_to:[0,85,89,121,197,213,247],movecommand:44,moved_obj:[233,235,247],moved_object:247,movement:[58,109,121,213,217,218,219,220,221,247],mover:221,mptt:4,mratio:[151,168],msdp:[55,83,272,291],msdp_list:272,msdp_report:272,msdp_send:272,msdp_unreport:272,msdp_var:291,msg:[0,2,5,10,11,13,22,25,27,28,29,30,33,38,40,41,42,44,46,50,51,52,53,56,58,59,60,62,71,73,80,82,84,85,86,88,89,91,95,96,105,111,112,114,116,118,119,121,123,127,129,137,138,141,144,146,154,156,160,164,170,173,175,176,177,189,197,199,210,234,242,247,278,279,306,315,322,324,326,328,329,337,341,344],msg_all:116,msg_all_sess:[33,154],msg_arriv:0,msg_content:[0,21,27,33,46,62,73,89,102,118,121,123,132,197,247],msg_help:166,msg_leav:0,msg_locat:[197,247],msg_other:179,msg_receiv:[197,247],msg_self:[197,247],msg_set:319,msgadmin:173,msglauncher2port:[267,276],msgmanag:[176,177],msgobj:[34,175],msgportal2serv:276,msgreturn:170,msgserver2port:276,msgstatu:[267,276],mssp:[55,104,141,142,262,275],mt1mywxzzsy5pxri:79,mt1mywxzzsy5pxrydwummte9mtk1jjeypxrydwubb:57,mtt:294,much:[0,4,10,11,13,14,15,20,22,23,25,26,29,37,38,39,41,42,49,51,56,59,61,62,63,64,67,69,73,76,79,80,82,89,90,91,93,94,96,109,111,113,115,116,119,120,121,125,127,132,133,134,138,148,153,158,167,180,184,185,205,206,215,221,224,232,307,321,322,323,330,344],muck:57,mud:[8,15,21,22,23,24,30,40,43,49,55,56,60,61,63,64,72,73,74,80,87,88,90,91,92,95,97,98,100,101,104,105,108,110,111,114,115,116,117,122,124,126,128,132,135,137,138,140,148,153,156,221,230,264,280,281,282,287,290,291,294,322,331],mudbyt:79,mudconnector:79,mudderi:79,muddev:63,mudform:327,mudinfo:34,mudlab:79,mudlet:[24,96,101,272,282],mudmast:24,mudramm:24,muhammad:343,mukluk:24,mul:250,mult:[109,250],multi:[10,22,31,38,43,51,55,61,95,96,100,104,105,119,122,123,151,169,206,215,247,308,328,344],multiaccount_mod:97,multidesc:[141,142,178],multilin:343,multimatch:[31,151,206,247,344],multimatch_str:[144,206,247,344],multimedia:137,multipl:[6,12,14,22,23,27,30,31,33,40,43,51,55,58,61,62,64,73,79,84,88,89,90,95,96,104,105,107,108,109,114,115,122,123,125,131,138,144,150,152,157,158,159,164,168,169,183,185,186,187,189,190,196,202,206,215,217,218,219,220,233,242,247,250,251,252,261,265,269,272,276,291,299,315,316,317,322,328,330,341,344],multiplay:[55,57,79],multipleobjectsreturn:[144,146,148,175,177,179,182,184,187,189,195,197,203,204,205,206,212,213,214,217,218,219,220,221,223,226,227,231,232,233,235,239,246,247,251,256,259,274,300,316,319,331,335],multipli:250,multisess:[2,41,69,328],multisession_mod:[24,33,64,105,123,133,144,156,160,181,189,247,308],multisession_modd:51,multitud:[57,111,114],multumatch:247,mundan:21,murri:344,mus3d1rmfizcy9osxiiita:122,muse:79,mush:[9,36,55,60,73,79,108,116,124,139,183,202,364],mushclient:[24,74,96,272,282],musher:79,mushman:108,musoapbox:[57,79],must:[0,1,2,4,5,8,10,11,15,24,25,29,31,33,37,38,40,43,48,49,50,51,56,58,61,62,63,64,65,67,71,72,74,76,80,81,83,84,85,87,89,90,93,95,96,97,100,103,104,109,110,112,113,114,115,116,117,119,123,125,127,128,131,133,135,136,137,140,146,151,152,154,159,164,169,170,174,175,176,179,182,183,184,186,197,201,203,205,206,210,215,217,218,219,220,221,226,227,230,232,233,239,241,247,250,251,257,261,267,272,285,287,290,307,309,310,315,316,317,318,321,322,323,324,325,326,327,328,329,331,336,338,339,340,341,343,344,345,362],must_be_default:153,mutabl:325,mute:[17,41,174,175],mutelist:[41,175],mutltidesc:202,mutual:317,mux2:129,mux:[20,21,33,34,41,45,55,58,103,108,139,141,142,149,167,168,183,240,364],mux_color_ansi_extra_map:183,mux_color_xterm256_extra_bg:183,mux_color_xterm256_extra_fg:183,mux_color_xterm256_extra_gbg:183,mux_color_xterm256_extra_gfg:183,muxaccountcommand:[167,199],muxaccountlookcommand:156,muxcommand:[5,25,28,29,30,33,44,53,58,119,123,141,142,149,155,156,157,158,159,164,165,166,168,169,171,182,185,186,187,193,199,200,202,203,212,214,219,220,233],mvattr:159,mxp:[24,55,74,114,141,142,262,272,275,287,290,321,328,343,344],mxp_pars:282,mxp_re:321,mxp_sub:321,my_callback:309,my_datastor:86,my_funct:29,my_github_password:131,my_github_usernam:131,my_identsystem:87,my_number_handl:51,my_object:29,my_port:40,my_portal_plugin:40,my_script:102,my_server_plugin:40,my_servic:40,my_word_fil:205,myaccount:112,myapp:86,myarx:9,myattr:[11,144],myawesomegam:67,mybot:[43,164],mycallable1:51,mycar2:87,mychair:112,mychan:34,mychannel:[12,43,164],mycharact:81,mychargen:51,myclass:60,mycmd:[33,68],mycmdset:[5,31,33],mycommand1:31,mycommand2:31,mycommand3:31,mycommand:[30,31,33,83],mycompon:137,myconf:36,mycontrib:127,mycss:137,mycssdiv:137,mycustom_protocol:40,mycustomcli:40,mycustomview:135,mydatastor:86,mydhaccount:100,mydhaccountt:100,mydhacct:100,myevennia:72,myevilcmdset:[31,152],myevmenu:51,myfix:131,myfunc:[10,115,127,344],myfunct:51,mygam:[2,3,5,6,9,13,14,21,23,25,26,27,30,31,35,40,42,44,47,49,51,53,54,56,57,58,60,62,63,65,67,69,71,73,74,75,76,80,81,82,85,86,89,90,93,95,96,100,102,104,106,109,110,111,114,116,118,119,120,121,123,125,127,128,131,133,134,135,136,137,180,181,183,187,199,200,201,202,212,213,292,342,344],mygamedir:38,mygamegam:81,myglobaleconomi:102,mygotocal:51,mygrapevin:164,myhandl:107,myhdaccount:100,myhousetypeclass:[43,159],myinstanc:86,myircchan:[43,164],mykwarg:51,mylayout:137,mylink:38,mylist2:11,mylist:[6,11,97,318],mylog:27,mymap:200,mymenu:51,mymethod:56,mymodul:115,mymud:[8,106],mymudgam:90,mynam:100,mynestedlist:325,mynod:51,mynoinputcommand:33,mynpc:123,myobj1:112,myobj2:112,myobj:[11,27,80,102,261],myobject:[5,11],myobjectcommand:25,myothercmdset:31,myownfactori:40,myownprototyp:109,mypassw:186,mypath:127,myplugin:137,myproc:40,myproc_en:40,myprotfunc:109,myroom:[43,56,102,112,159],myros:89,myscript:[102,112,125],myscriptpath:102,myserv:186,myservic:40,mysess:105,mysql:[36,55,64,128,344],mysqlclient:23,mysteri:[75,87],mytag1:137,mytag2:137,mythic:122,mytick:261,mytickerhandl:261,mytickerpool:261,mytop:20,mytup1:11,mytup:11,myvar:33,myview:135,naccount:308,naiv:[175,235,239,318],nake:33,name1:[43,159],name2:[43,159],name:[0,2,3,4,5,6,9,10,11,13,14,15,19,20,22,23,24,25,29,31,33,34,36,38,40,41,42,44,46,47,49,51,52,53,54,55,56,57,58,59,60,61,62,64,65,66,67,68,69,71,72,73,74,75,76,79,80,81,82,83,84,85,86,87,89,90,91,93,95,96,100,102,103,104,105,106,107,109,110,111,112,113,114,116,117,119,121,123,125,126,127,128,130,131,132,133,134,135,136,137,138,139,140,141,142,144,146,148,150,151,152,153,154,156,157,159,164,165,166,167,168,169,170,171,174,175,176,177,180,181,182,184,186,188,192,194,195,198,201,203,204,205,206,212,215,219,220,231,233,234,235,238,239,240,246,247,251,252,256,257,259,261,267,270,272,273,274,276,277,279,284,287,290,291,294,295,296,299,310,312,315,316,317,318,319,321,322,323,324,326,327,328,329,334,335,336,337,338,340,341,343,344,345,349,357,362],namecolor:215,namedtupl:192,nameerror:[42,95],namelist:199,namesak:97,namespac:[69,125,137,195,234,252,310,322],napoleon:38,narg:[114,234],narr:221,narrow:91,nativ:[34,38,42,51,88,102,209,310,312,362],nattempt:51,nattribut:[11,43,51,116,125,159,252,306,316,318,324,328],nattributehandl:316,natur:[11,15,27,55,79,88,112,146,330],natural_height:330,natural_kei:316,natural_width:330,navig:[9,48,49,51,106,111,128,133,134,221,362],naw:[24,52,141,142,262,275],nbsp:343,nchar:120,nclient:298,ncolumn:330,ncurs:141,ndb:[6,13,22,25,29,33,43,51,102,105,116,125,144,148,169,246,256,306,318,328],ndb_:[43,109,159,252],ndb_del:306,ndb_get:306,ndb_set:306,ndk:75,nearbi:[119,152,153,154,221],nearli:321,neat:[0,3,138,357],neatli:[108,344],necess:[40,95],necessari:[0,4,22,36,39,40,51,57,58,59,61,77,91,108,110,114,118,121,125,131,138,153,154,177,181,195,210,233,234,252,260,296,315,322,328,330,338,340,344],necessarili:[38,41,57,88,90,109,344],necessit:309,neck:[109,182],necklac:182,need:[1,2,3,4,5,6,8,9,10,11,13,14,15,19,20,21,22,23,25,26,27,28,29,30,31,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,49,50,51,54,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,79,80,81,82,83,84,85,86,87,88,89,90,91,93,94,95,96,97,98,100,102,103,104,105,106,109,110,111,112,113,114,115,116,117,118,119,121,122,123,124,125,126,127,128,130,131,133,134,135,136,137,138,140,144,146,148,152,154,156,159,164,165,167,170,174,175,179,180,186,187,189,193,194,195,196,200,203,204,205,206,215,217,218,219,220,221,227,231,232,233,234,235,241,242,246,247,251,252,259,267,269,271,272,276,284,291,296,298,306,307,308,312,315,316,318,321,322,324,328,329,330,331,336,338,339,341,344,362],need_gamedir:267,needl:203,neg:[62,126,152,326,344],negat:[114,119,242],negoti:[55,179,281,283,285,294,308],negotiate_s:283,neighbor:39,neither:[11,54,61,73,97,110,185,251,291,316,319,345],nenter:51,nest:[11,14,33,43,51,114,144,159,206,215,241,247,250,252,291,325,336],nested_mut:11,nested_r:159,nestl:111,net:[9,43,57,63,70,72,79,90,146,164,280,281,291,294,308],netrc:131,network:[40,43,53,55,64,65,70,71,72,79,90,103,113,139,146,164,278,279,284,305,308],neu:180,neutral:189,never:[12,14,26,27,31,33,51,54,56,60,61,62,64,80,86,88,91,95,96,104,114,115,118,119,121,125,127,131,133,144,194,205,206,220,221,231,242,247,306,325,336,344],nevertheless:[26,43,51,86,126,156,180],new_alias:154,new_arriv:233,new_attrobj:316,new_channel:58,new_charact:231,new_coordin:235,new_datastor:86,new_goto:328,new_kei:[107,154,247],new_loc:[43,159],new_menu:180,new_nam:[43,107,159],new_name2:[43,159],new_obj:[80,247,252],new_obj_lockstr:159,new_object:[109,252],new_raw_str:151,new_room_lockstr:159,new_ros:89,new_script:102,new_typeclass:[144,318],new_typeclass_path:125,new_valu:[84,316],newbi:[25,48,55,124,174],newcom:[96,117],newer:9,newindex:215,newli:[43,46,58,60,66,131,133,159,175,180,199,204,234,247,252,259,324],newlin:[33,43,137,166,322,330],newnam:[33,43,159,318],newpassword:[43,157],newstr:137,nexist:22,nexit:[120,127],next:[0,4,5,6,9,10,11,12,13,14,20,21,22,23,25,28,29,30,31,33,36,38,39,41,42,46,49,50,51,52,56,58,60,61,62,64,65,68,72,73,75,76,77,79,80,81,83,85,86,89,90,95,96,98,100,102,103,106,110,111,114,116,119,121,122,123,127,131,133,134,137,138,180,184,200,202,215,217,218,219,220,221,232,242,259,267,322,328,329,331,336,344,362],next_nod:51,next_turn:[217,218,219,220,221],nextrpi:79,nexu:45,nfkc:144,ng2:330,nginx:8,nice:[0,12,22,27,49,54,58,61,62,68,70,81,90,96,100,111,119,127,138,140,159,179,182,206,251],nicer:[20,60,96],niceti:[43,159],nick:[2,11,45,57,74,79,89,129,139,144,146,159,165,206,241,246,247,279,316,317,336,364],nick_typ:87,nickhandl:[11,87,316],nicklist:[146,164,279],nicknam:[43,87,89,129,131,165,206,246,247,279,316,317],nickreplac:316,nicktemplateinvalid:[316,336],nicktyp:[206,247],nifti:8,night:[58,61,132,138,187],nine:66,nineti:345,nit:[60,62],nline:337,nmrinwe1ztfhlmpwzyisindpzhroijoipd02mdaifv1dlcjhdwqiolsidxjuonnlcnzpy2u6aw1hz2uub3blcmf0aw9ucyjdfq:122,no_channel:[31,33,152,328],no_default:[125,144,318],no_exit:[31,33,116,152,224,230,328],no_gmcp:291,no_log:153,no_match:180,no_mccp:280,no_more_weapons_msg:232,no_msdp:291,no_mssp:281,no_mxp:282,no_naw:283,no_obj:[31,152,224,230,328],no_superuser_bypass:[144,175,242,247,318],no_tel:80,noansi:170,nobj:120,nocaptcha:133,nocaptcha_recaptcha:133,nocolor:[81,272,287,290,295,296],nodaemon:106,node1:[51,328],node2:[51,328],node3:[51,328],node:[13,85,109,188,201,215,230,249,265,328],node_abort:51,node_apply_diff:249,node_attack:51,node_background:51,node_betrayal_background:51,node_border_char:328,node_destin:249,node_enter_password:201,node_enter_usernam:201,node_examine_ent:249,node_exit:51,node_formatt:[51,188,328],node_four:51,node_game_index_field:265,node_game_index_start:265,node_hom:249,node_index:[249,328],node_kei:249,node_loc:249,node_login:51,node_matching_the_choic:51,node_mssp_start:265,node_mylist:51,node_on:51,node_parse_input:51,node_password:51,node_prototype_desc:249,node_prototype_kei:249,node_prototype_sav:249,node_prototype_spawn:249,node_quit_or_login:201,node_readus:51,node_select:51,node_set_nam:51,node_start:265,node_test:51,node_text:51,node_usernam:51,node_validate_prototyp:249,node_view_and_apply_set:265,node_view_sheet:51,node_violent_background:51,node_with_other_nam:328,nodefunc1:51,nodefunc2:51,nodefunc:328,nodekei:328,nodenam:[51,328],nodename_to_goto:51,nodestartfunc:51,nodetext:[51,188,249,328],nodetext_formatt:[51,188,249,328],noecho:[43,169],noerror:247,nofound_str:[144,206,247,344],nogoahead:289,nohom:324,nois:21,noisi:[90,264,269,277,287,290,312],noloc:[43,159],nomarkup:[74,81],nomatch:[22,168,180,326,336,344],nomatch_exit:22,nomatch_single_exit:22,nomigr:127,nomin:362,non:[4,6,14,15,20,22,27,29,31,33,38,43,44,49,50,52,55,58,61,62,63,64,65,68,70,74,82,86,88,102,105,109,110,114,122,124,125,126,131,137,139,140,144,146,148,150,152,159,169,175,177,185,195,204,212,214,215,232,238,246,247,251,252,256,257,258,259,260,261,267,276,290,291,305,306,308,316,318,321,324,325,326,328,330,336,341,344],nonc:295,nondatabas:[11,306,318],none:[0,1,2,10,11,13,14,15,22,25,30,31,33,34,39,40,41,42,43,44,49,50,51,56,58,60,62,64,69,74,77,80,81,83,84,85,86,87,88,91,96,102,105,111,112,114,116,118,119,121,123,144,145,146,150,151,152,153,154,156,159,160,161,162,163,166,167,168,170,173,174,175,176,177,179,180,181,182,185,187,188,189,192,194,195,197,198,201,203,204,205,206,212,214,215,217,218,219,220,221,224,230,231,232,233,234,235,237,238,241,242,244,246,247,249,250,251,252,254,257,258,259,261,264,265,267,269,273,276,277,278,279,286,287,295,296,306,307,308,310,311,312,315,316,317,318,319,321,322,323,324,325,326,327,328,329,330,331,334,336,337,339,340,341,344,345,349,352,357,362],nonpc:123,nonsens:205,noon:[20,60,73,76,80,96],nop:290,nopkeepal:[24,290],nor:[11,13,29,31,42,54,106,108,116,126,185,186,234,247,251,291,316,319],norecapcha:133,norecaptcha_secret_kei:133,norecaptcha_site_kei:133,norecaptchafield:133,normal:[2,3,5,6,9,10,11,13,14,15,19,20,21,23,25,27,29,30,31,33,34,38,43,44,46,49,51,55,56,57,58,60,62,64,66,68,69,72,74,75,76,80,81,82,83,85,86,87,88,90,93,96,97,100,102,104,105,109,110,111,112,113,114,116,119,121,122,123,125,126,127,128,134,135,137,138,140,144,146,148,150,151,152,153,154,156,159,166,169,174,175,179,184,185,197,217,218,219,220,221,231,234,235,246,247,249,252,259,261,267,276,279,280,281,283,285,299,306,308,314,316,317,318,321,322,325,328,329,334,336,341,343,344,346],normal_turn_end:116,normalize_nam:247,normalize_usernam:144,north:[0,20,22,43,44,46,49,89,111,114,121,159,180,200,213,299],north_south:111,northeast:[20,43,159,235],northern:[22,111],northwest:159,nose:316,not_don:312,not_error:267,not_found:159,notabl:[6,9,10,40,43,63,97,131,154,159,170,179,318,325,336,344],notat:[43,119,159,321,344],notdatabas:125,note:[0,1,2,4,5,6,9,11,12,13,19,20,21,23,24,25,27,29,41,42,43,48,49,57,58,59,60,61,62,63,64,69,70,73,74,75,76,80,83,85,86,88,89,90,93,94,95,96,100,102,103,105,106,107,109,110,113,114,115,116,117,119,121,123,124,125,126,128,130,131,133,134,135,136,137,141,144,146,151,152,153,154,156,159,160,161,165,166,167,169,170,171,174,175,176,179,181,182,183,184,185,186,187,189,194,195,197,198,200,201,202,203,204,205,206,212,213,215,217,218,219,220,221,224,226,227,233,234,235,241,242,246,247,251,252,259,261,264,267,272,276,277,279,280,284,285,286,287,290,291,292,294,295,298,300,301,306,308,312,313,316,317,318,319,321,322,323,324,325,326,327,328,329,330,331,334,336,337,339,340,341,344,350,364],notepad:63,notfound:344,notgm:58,noth:[0,10,11,14,20,22,27,29,33,34,42,56,57,60,62,83,85,89,95,108,111,115,116,127,144,159,168,215,217,220,221,231,235,247,259,279,316,318,328],nother:120,notic:[0,10,12,13,20,22,23,29,33,36,37,39,41,42,46,62,69,70,91,96,117,121,126,127,131,180,223,280,362],notif:[4,75,131,137,138,199],notifi:[43,98,164,217,218,219,220,221,233,251],notificationsconfig:4,notimplementederror:290,notion:[62,115,116],noun:[205,206],noun_postfix:205,noun_prefix:205,noun_transl:205,now:[0,2,3,5,6,9,10,11,12,14,20,21,22,23,25,27,28,29,31,33,36,39,41,46,48,49,51,55,56,57,58,60,61,62,63,64,65,67,69,71,72,73,75,76,77,79,80,81,82,83,85,86,89,90,91,95,96,97,98,100,102,103,105,106,108,109,110,111,114,115,117,118,119,121,123,125,126,127,128,131,133,134,135,136,137,138,140,153,179,184,188,195,197,215,226,235,242,247,279,287,308,340,342,344],nowher:[95,111],noxterm256:290,npc:[9,33,46,51,61,64,73,111,119,124,139,179,214,241,247,364],npcname:118,npcshop:85,nprot:120,nr_start:258,nroom:[22,120],nroom_desc:127,nrow:330,ntf:63,nuanc:114,nudg:[78,224,227,312],nuisanc:103,nulla:52,num:[49,80,206,247],num_lines_to_append:337,num_object:119,num_objects__gt:119,num_tag:119,number:[0,6,10,11,12,13,20,21,23,25,26,27,31,33,34,36,38,41,43,49,50,51,57,58,60,61,62,64,71,73,77,81,85,87,90,93,95,96,97,98,100,102,104,105,107,111,112,114,115,116,119,120,122,123,125,127,131,134,135,140,141,144,146,151,152,153,157,159,164,165,174,176,177,182,184,185,188,190,192,194,195,198,200,204,205,206,215,217,218,219,220,221,247,250,251,252,258,259,265,267,272,278,279,281,285,298,308,310,312,316,317,319,321,322,324,326,328,329,330,331,334,336,337,341,344,357],number_of_dummi:267,number_tweet_output:120,numbertweetoutput:120,numer:[61,73,97,190,321],numpi:300,o_o:138,obelisk:232,obfusc:[205,206],obfuscate_languag:[205,206],obfuscate_whisp:[205,206],obj1:[11,43,80,97,109,159,203,221],obj2:[11,43,80,97,109,127,159,203,221,322],obj3:[11,43,109,159],obj4:11,obj5:11,obj:[2,6,10,11,22,25,27,31,33,41,42,43,48,56,58,59,60,80,82,84,86,87,89,91,96,102,109,112,115,117,119,121,125,127,139,144,145,152,153,154,157,159,165,167,168,169,170,173,174,176,180,182,187,188,189,192,194,195,198,199,203,206,215,217,218,219,220,221,224,227,232,233,235,241,242,244,246,247,250,252,254,256,257,258,259,296,298,299,306,315,316,317,318,319,322,324,325,329,339,340,341,344],obj_desc:220,obj_detail:233,obj_kei:220,obj_prototyp:252,obj_to_chang:125,obj_typeclass:220,objattr:[232,241],objclass:[334,344],object1:33,object2:[33,179,247],object:[0,2,9,10,12,13,14,15,18,19,21,22,23,26,29,30,31,33,34,36,38,39,40,41,42,44,45,46,47,49,50,51,52,53,55,56,57,58,62,69,73,74,77,79,81,83,84,85,86,87,88,91,93,95,102,103,104,107,108,109,110,114,115,116,117,118,120,122,123,125,127,129,132,133,134,135,137,138,139,140,141,142,143,144,145,146,147,148,150,151,152,153,154,156,157,158,159,160,161,164,165,167,168,169,170,171,173,174,175,176,177,178,179,180,181,182,186,187,188,189,192,193,194,195,196,197,198,199,200,203,204,206,209,210,211,212,213,214,215,217,218,219,220,221,223,224,226,227,229,230,231,233,234,235,237,238,239,241,242,249,250,251,252,253,254,256,257,258,259,260,261,265,267,269,271,272,273,274,276,277,280,281,282,283,284,285,286,287,289,291,294,296,298,299,305,306,307,308,310,311,312,315,316,317,318,319,321,322,323,324,325,326,327,328,329,330,334,335,336,338,339,340,341,342,343,344,345,349,351,357,360,362,364],object_confirm_delet:362,object_detail:362,object_from_modul:344,object_id:134,object_search:134,object_subscription_set:246,object_tot:317,object_typeclass:[342,360],objectattributeinlin:244,objectcr:357,objectcreateform:244,objectcreateview:362,objectdb:[11,53,59,96,112,119,120,125,133,141,244,246,247,252,314,315,316,324,329,341],objectdb_db_attribut:244,objectdb_db_tag:[244,315],objectdb_set:[148,316,319],objectdbadmin:244,objectdbmanag:[245,246],objectdeleteview:362,objectdetailview:362,objectdoesnotexist:[148,177,239,246,256,274,316,319,335],objecteditform:244,objectform:357,objectmanag:[245,247,317],objectnam:[6,58],objects_objectdb:86,objectsessionhandl:[2,247],objecttaginlin:244,objectupd:357,objectupdateview:362,objid:80,objlist:[109,250],objlocattr:[232,241],objmanip:[43,159],objmanipcommand:159,objnam:[27,43,125,159],objparam:252,objs2:112,objsparam:252,objtag:241,objtyp:176,obnoxi:269,obs:318,obscur:[48,72,82,205,206],observ:[13,14,20,43,81,88,159,165,187,206,223,227,233,291,322,344],obtain:[0,33,39,63,77,90,91,93,100,180,232],obviou:[0,59,61,103,121,128,138,190,362],obvious:[0,4,14,49,55,105,108,121,319],occaecat:52,occas:128,occasion:[90,119],occation:330,occur:[9,10,25,33,42,57,60,102,137,168,175,204,219,234,242,247,299,328,337],occurr:[46,91,123,321],ocean:[90,122],ocw:124,odd:[22,49,61,103,126],odor:58,off:[0,11,14,20,23,24,29,31,33,36,40,41,43,49,50,51,55,61,64,66,74,80,81,86,88,90,100,103,107,108,110,114,115,122,123,126,135,138,139,144,154,164,169,170,174,175,182,188,200,201,206,227,231,233,242,247,272,280,287,290,306,318,321,322,324,326,328,329,330,336,337,345],off_bal:29,offend:12,offer:[1,4,11,14,22,26,28,31,33,34,37,39,40,43,44,50,51,55,56,57,59,62,64,72,73,74,76,83,86,87,89,90,91,96,102,106,108,109,111,114,115,116,123,124,127,128,129,131,132,137,138,152,153,158,159,169,179,180,187,205,233,249,257,308,328],offernam:179,offici:[38,72,100,103,127,131,337],officia:52,offlin:[9,15,79,90,109,158,175,322],offscreen:9,offset:[206,326,337],often:[2,5,10,11,15,22,26,28,31,33,40,41,42,43,46,48,49,51,57,59,61,62,64,76,86,88,90,91,93,95,96,97,102,103,104,105,112,114,115,116,119,128,131,146,152,157,167,168,169,175,180,215,217,218,219,220,221,224,226,242,246,256,258,267,272,286,306,316,318,322,324,330,337],ohloh:37,okai:[41,42,48,49,51,58,75,77,111,123,128,198],olc:[43,47,159,249,252],olcmenu:249,old:[0,1,5,9,21,25,27,31,38,39,43,50,51,55,56,58,60,63,80,81,85,88,90,105,106,111,114,122,123,125,126,128,138,144,152,153,156,159,174,179,197,206,242,247,252,276,317,318,321,324,363],old_default_set:127,old_kei:[107,247],old_nam:107,older:[2,9,24,55,63,64,79,105,159],oldnam:318,oliv:114,omiss:60,omit:[91,100,109],ommand:150,on_:180,on_bad_request:269,on_ent:[22,180],on_leav:[22,180],on_nomatch:[22,180],onbeforeunload:[83,137],onbuild:100,onc:[0,2,5,6,9,10,13,16,21,22,23,25,33,34,37,38,39,40,41,42,43,46,47,49,51,55,57,58,60,61,62,63,64,67,72,79,80,83,85,89,90,93,95,96,97,100,102,105,108,114,116,119,121,122,125,126,128,131,133,137,144,146,151,154,159,164,167,168,170,175,179,180,188,189,195,199,200,201,203,205,212,215,217,218,219,220,221,223,227,231,232,233,234,235,247,251,256,259,272,277,290,294,305,316,321,328,329,337,342,344],onclos:[40,278,295],onconnectionclos:[83,137],oncustomfunc:83,ond:319,ondefault:83,one:[0,1,2,3,4,5,9,10,11,12,13,14,15,16,19,20,21,22,23,25,26,27,28,29,31,33,34,35,36,37,38,41,42,43,44,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,67,68,69,70,72,73,74,76,77,79,80,81,82,83,85,86,87,88,89,90,91,92,93,95,96,97,98,100,102,103,104,105,106,108,109,111,112,113,114,115,116,118,119,121,122,123,125,126,127,128,131,132,133,134,135,136,137,138,140,143,144,148,151,152,153,154,156,157,159,165,168,170,174,175,176,177,179,180,182,185,187,189,195,198,199,200,204,205,206,214,215,217,218,219,220,221,224,227,230,232,233,234,235,238,239,241,242,244,246,247,249,250,251,252,256,260,261,267,269,271,272,277,278,279,287,290,291,306,307,308,312,314,316,317,318,321,322,324,325,327,328,329,330,331,334,335,336,337,339,340,341,342,344,345,357,360,362],ones:[4,9,14,20,22,27,31,33,57,58,65,72,74,80,81,83,90,95,100,103,109,114,116,126,127,135,152,153,154,177,180,195,197,217,218,219,220,221,241,251,252,271,276,308,321,330,338],onewai:[43,159],ongo:[28,91,116,179,213],ongotopt:[83,137],onkeydown:[83,137],onli:[0,2,4,5,6,9,10,11,12,13,14,15,19,20,21,22,24,25,26,27,28,29,31,33,34,37,39,40,41,42,43,44,46,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,67,68,69,71,72,73,74,77,79,80,81,82,83,85,86,87,88,89,90,91,93,94,95,96,100,102,103,104,105,106,107,109,111,112,114,116,117,118,119,121,122,123,124,125,126,127,130,131,132,133,134,135,136,137,138,140,141,144,145,146,150,151,152,153,154,156,157,158,159,164,165,166,167,168,169,170,175,176,177,179,180,181,182,185,187,188,190,195,197,199,205,206,214,215,217,218,219,220,221,223,226,227,232,233,234,235,239,241,242,247,250,251,252,256,258,259,261,267,271,272,279,282,284,285,287,290,299,305,306,308,310,311,312,315,316,317,318,319,321,322,323,324,326,328,329,330,334,336,337,339,340,341,342,344,357,362],onlin:[7,12,15,21,37,41,43,55,57,58,60,61,64,65,68,69,70,71,73,77,79,89,96,98,101,104,108,116,123,128,129,139,141,156,164,175,180,188,281,322,364],onloggedin:[83,137],onlook:247,only_tim:341,only_valid:252,onmessag:[40,278,295],onopen:[40,278,295],onoptionsui:137,onprompt:[83,137],onsend:[83,137],onset:[5,11],onsil:83,ontabcr:137,ontext:[83,137],onto:[25,31,33,44,55,60,61,72,90,95,121,137,153,224,233,246,279,325,328],onunknowncmd:137,onward:107,oob:[24,30,33,45,83,104,137,138,139,144,146,166,189,247,272,290,291,295,296,308,328,364],oobfunc:104,oobhandl:334,oobobject:102,ooc:[2,53,58,102,105,114,123,144,148,156,159,160,164,167,177,181,199,247],ooccmdsetchargen:181,ooclook:[105,181,329],opaqu:[15,103],open:[0,3,4,5,9,20,22,23,26,31,34,37,38,42,46,50,55,57,58,60,63,64,65,67,69,70,71,72,73,75,79,80,90,95,96,103,105,106,111,114,116,123,130,131,133,134,138,159,166,169,179,180,188,212,213,221,224,226,227,232,241,310,316,324,337,344,363],open_lid:226,open_parent_menu:180,open_submenu:[22,180],open_wal:232,openhatch:79,openlidst:227,openlock:241,opensoci:70,opensourc:321,oper:[9,11,12,14,22,27,33,41,42,43,46,51,57,59,60,61,63,64,67,72,74,80,82,88,89,90,95,96,97,102,109,110,112,115,119,124,126,131,137,139,144,150,152,154,156,159,164,169,175,180,185,206,227,232,242,247,250,252,261,264,267,276,277,281,283,287,289,290,296,298,299,306,307,316,317,318,321,324,328,329,330,334,344,364],opinion:[1,48],opnli:316,oppon:[11,73,218,220,231],opportun:[0,4,22,91,133,221],oppos:[27,89,103,110,114,306,319],opposit:[41,43,58,111,121,159,224],opt:[58,137,234],optim:[23,27,33,34,39,56,64,86,93,115,119,154,251,252,302,305,316],option100:51,option10:51,option11:51,option12:51,option13:51,option14:51,option1:51,option2:51,option3:51,option4:51,option5:51,option6:51,option7:51,option8:51,option9:51,option:[2,4,7,8,10,11,17,20,23,24,25,27,29,31,33,34,36,38,41,42,47,50,54,55,57,62,63,64,74,76,79,80,81,83,85,86,88,96,100,102,104,106,108,109,111,112,113,114,116,117,123,127,129,133,134,135,137,138,139,141,144,145,146,150,151,152,153,154,156,157,159,164,167,168,170,173,174,175,176,177,179,180,181,182,184,185,187,188,189,190,192,194,195,197,199,200,203,204,205,206,214,215,219,221,230,233,234,235,237,238,241,242,244,246,247,249,251,252,254,256,257,258,259,260,261,263,264,265,267,269,272,273,276,277,280,281,282,283,284,285,286,287,289,290,291,294,295,296,298,299,306,308,310,315,316,317,318,319,321,322,323,324,326,327,328,329,330,331,334,336,337,338,339,340,341,343,344,345,349],option_class:[141,323],option_dict:328,option_gener:328,option_kei:345,option_str:234,option_typ:339,option_valu:339,optiona:[144,264,318],optionalposit:1,optionclass:[141,142,320,323],optioncontain:323,optionhandl:[141,142,320,338],optionlist:[51,230,249,328],options2:137,options_dict:339,options_formatt:[51,188,230,249,328],optionsl:251,optionslist:230,optionstext:[51,188,328],optlist:215,optlist_to_menuopt:215,optuon:205,oracl:[23,344],orang:[114,203,234,321],orc:[57,61,109,117],orc_shaman:109,orchestr:100,order:[0,2,5,6,9,10,11,13,14,22,27,31,33,36,37,39,43,44,49,50,51,58,60,61,62,63,64,68,69,70,71,80,84,87,89,93,100,102,104,109,111,113,114,116,119,121,122,123,126,127,128,131,133,134,136,137,138,144,150,153,154,160,165,166,169,170,173,179,180,181,182,183,185,188,203,204,206,217,218,219,220,221,227,231,232,233,234,237,241,242,244,247,252,254,263,278,290,295,299,306,316,318,321,322,328,329,330,337,341,344,362],order_bi:119,order_clothes_list:182,ordered_clothes_list:182,ordered_permutation_regex:206,ordered_plugin:83,ordereddi:11,ordereddict:[11,344],ordin:321,org:[11,37,38,57,64,90,96,116,204,234,283,289,295,321,344,357],organ:[5,6,9,22,69,73,80,89,102,108,111,112,119,124,129,131,132,154,170],organiz:102,orient:[55,57,64,96,124],origin:[0,4,9,21,25,29,41,43,49,51,55,57,60,75,76,79,81,89,91,96,102,103,105,106,119,131,136,138,146,152,159,180,197,199,205,206,234,247,251,252,276,310,318,321,328,336,340,343,363],orioem2r:133,ormal:321,oscar:[175,239,318],osnam:344,oss:106,ostr:[144,176,238,341],osx:[63,131],other:[0,1,2,4,5,6,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,25,27,28,29,31,34,36,37,38,39,40,41,43,44,46,47,48,49,50,51,53,55,57,58,59,60,61,62,63,64,65,68,69,70,71,73,74,76,80,81,82,83,85,86,87,88,89,91,95,96,97,100,102,103,105,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,123,124,125,126,127,128,131,133,134,135,136,137,138,139,140,144,150,151,152,153,154,159,165,166,167,170,171,176,179,182,184,186,188,194,197,199,205,206,210,212,215,217,218,219,220,221,224,227,233,234,235,239,242,246,247,251,252,257,259,261,265,271,272,276,278,279,285,287,290,299,306,307,309,316,318,320,321,322,324,326,327,328,329,330,336,338,339,341,344,345,362],otherroom:212,otherwis:[0,4,11,15,23,25,27,29,31,33,37,39,41,42,43,51,59,62,68,69,76,78,83,86,89,90,91,95,97,100,102,103,105,109,114,121,123,131,135,141,151,152,156,159,175,179,183,187,188,192,195,206,217,218,219,220,221,235,242,247,250,251,252,259,267,278,279,287,306,310,311,315,321,328,329,336,337,341,342,344,362],our:[2,3,4,8,9,11,14,16,20,21,23,25,26,30,31,33,36,37,38,39,40,41,42,43,44,46,49,55,57,58,59,60,61,62,63,64,67,70,72,73,75,77,78,79,80,81,82,83,85,88,90,91,98,100,101,103,111,115,116,117,119,123,124,127,128,129,131,132,134,135,136,137,138,140,148,153,167,168,187,200,215,231,232,235,242,257,312,315,337,363],ourself:123,ourselv:[0,20,58,80,87,118,132,138,144,181,280,281,283,294],out:[0,1,3,6,8,9,10,12,13,14,15,16,17,19,20,21,22,23,26,28,29,33,34,37,38,39,41,42,43,44,45,46,47,48,49,51,53,54,55,56,57,59,60,61,62,63,64,66,69,70,71,77,79,80,86,88,89,90,91,93,95,96,97,100,102,104,105,108,109,111,114,116,117,118,119,121,122,123,126,127,129,131,133,135,137,138,139,143,144,151,152,156,158,159,179,181,184,186,188,199,205,206,209,210,212,213,217,218,219,220,221,227,230,232,241,251,252,259,267,269,291,295,296,298,307,308,315,316,325,327,328,330,336,343,344,357],out_templ:[316,336],outcom:[38,73,86,152,185,242,247,251],outdat:8,outdata:[40,308],outdoor:[112,119,122,132,233],outer:330,outermost:[11,29,74],outerwear:182,outfunc_nam:40,outgo:[67,88,90,96,105,146,197,247,279,291,307,344],outgoing_port:90,outlet:90,outlin:[36,43,111,133,278],outmessag:247,output:[4,14,20,22,26,27,34,40,43,51,52,58,74,79,88,91,95,96,100,105,106,108,110,111,113,114,116,120,121,123,126,128,129,135,137,138,141,142,154,159,166,169,170,178,180,184,189,207,208,210,217,218,219,220,221,251,267,272,287,291,299,306,321,328,329,337,340,344],outputcmd:291,outputcommand:[74,83],outputfunc:[40,59,83,247,272,278],outputfunc_nam:[40,272],outputfunct:83,outrank:317,outright:[12,90,363],outro:[122,233],outroroom:233,outsid:[0,13,15,20,21,38,39,57,64,67,73,88,96,100,104,108,109,110,112,121,134,204,220,231,241,291,306,307,316,319,330],outtempl:[316,336],outtxt:27,outward:[49,90],over:[1,6,8,11,13,14,15,16,17,27,28,31,33,34,36,37,38,39,40,43,45,48,49,51,54,57,58,59,60,61,73,77,81,83,85,88,90,93,94,96,97,100,103,105,108,111,112,113,114,115,116,118,119,125,126,127,128,129,133,136,137,138,144,153,164,174,176,188,200,212,215,217,218,219,220,221,227,233,261,271,285,287,290,292,296,298,300,313,318,322,334,340,344,362,363],overal:[10,56,57,68,71,86,90,152,167,168,218],overcom:111,overhead:[23,27,34,113,132,206,235,316],overhear:205,overlap:[31,62,205,321,330],overload:[5,22,30,31,33,40,44,47,51,55,57,60,74,76,89,96,97,104,114,115,117,123,136,144,152,154,168,175,180,181,187,189,203,206,212,213,217,218,219,220,221,230,231,232,233,234,247,252,261,271,290,307,326,328,329,330,338],overrid:[1,3,4,9,20,21,22,25,31,36,43,51,53,54,68,69,80,83,91,96,102,105,107,109,117,118,121,135,136,137,144,154,159,166,170,175,176,180,187,195,197,205,219,221,233,234,242,247,252,259,290,308,312,315,316,321,328,329,334,337,338,341,362],overridden:[4,40,96,136,138,144,159,180,234,329,362],override_set:107,overriden:[144,166,206],overrod:16,overrul:[2,80,144,153,206,247,330],overseen:73,overshadow:61,overshoot:344,oversight:57,overview:[15,16,18,23,45,46,57,68,77,96,103,139,364],overwhelm:[46,61],overwrit:[5,43,76,136,138,159,166,285,317,362],overwritten:[33,134,233,319],owasp:357,own:[1,3,4,5,6,8,9,10,11,13,17,19,20,21,22,25,26,27,29,30,31,34,37,38,41,43,45,47,51,55,57,61,62,63,64,67,68,71,72,75,76,77,78,80,81,83,85,86,87,88,91,93,95,96,98,101,102,103,104,105,107,108,109,111,112,114,119,121,122,123,124,125,127,128,129,131,132,133,134,135,136,138,139,148,150,151,152,153,159,164,167,182,184,187,188,199,201,205,206,210,217,218,219,220,221,232,234,235,241,242,247,252,272,299,307,318,321,322,323,329,330,334,337,338,342,344,362,364],owner:[4,19,80,85,144,242,338],owner_object:80,ownership:[90,100],p_id:133,pace:[122,231],pack:[83,276],packag:[8,9,23,41,47,63,64,72,75,78,88,90,93,96,97,100,108,127,128,135,141,143,149,155,172,178,229,236,240,243,253,262,267,276,291,295,314,320,346],package_nam:64,packagenam:64,packed_data:276,packeddict:[97,318],packedlist:[97,318],packet:[83,287],pad:[17,114,321,330,336,344],pad_bottom:330,pad_char:330,pad_left:330,pad_right:330,pad_top:330,pad_width:330,page:[7,8,9,12,13,14,16,17,20,21,23,25,26,28,31,33,36,37,38,40,45,48,51,52,55,57,58,59,60,61,64,67,70,72,73,75,76,77,79,80,81,88,89,90,94,96,99,100,101,103,104,106,108,110,124,125,126,127,129,130,131,133,134,137,138,139,164,165,175,239,241,244,251,254,296,315,318,328,329,344,346,355,362,363,364],page_back:329,page_ban:164,page_end:329,page_formatt:[251,329],page_next:329,page_quit:329,page_titl:362,page_top:329,pagelock:241,pageno:[251,329],pager:[52,139,329],pages:[51,328],pagin:[251,329],paginag:329,paginate_bi:362,paginated_db_queri:251,paginator_django:329,paginator_index:329,paginator_slic:329,pai:[56,70,85,90,103,232,241],paid:90,pain:[90,138],painstakingli:13,pair:[31,83,116,137,138,144,152,182,241,247,308,357,362],pal:87,palett:126,pallet:111,palm:188,palobject:70,pane:[43,88,137,138,171,186,230],panel:[67,106],panic:109,paper:[61,79,116],paperback:73,par:23,paradigm:[9,61,118,218],paragraph:[14,27,38,202,322,330,344],parallel:[57,62,69,317],paralyz:219,param:[67,159,247,259,261,269,279,312,337,345],paramat:[144,154,247,306],paramet:[0,22,24,31,36,39,42,46,49,62,91,100,106,119,127,141,144,145,146,150,151,152,153,154,159,166,173,174,175,176,177,179,180,182,184,185,187,188,189,190,192,193,194,195,197,198,199,200,204,205,206,209,210,212,215,217,218,219,220,221,226,230,233,234,235,238,242,244,246,247,249,251,252,254,257,258,259,260,261,264,265,266,267,269,271,272,273,274,276,277,278,279,280,281,282,283,284,285,286,287,289,290,291,292,294,295,296,298,304,305,306,307,308,310,311,312,316,317,318,319,321,322,323,324,325,326,327,328,329,330,331,334,336,337,338,339,341,342,343,344,345,349],paramount:127,paramt:345,paremt:252,parent1:109,parent2:109,parent:[2,6,22,25,27,31,33,38,40,43,44,60,64,81,89,96,109,114,118,121,123,125,140,148,156,159,167,169,180,197,206,215,234,241,246,247,251,252,256,316,317,318,326,335,337,344,362],parent_categori:215,parent_kei:[22,180],parent_model:[145,173,237,244,254,315],parentesi:336,parenthes:95,parentlock:241,pari:[79,90],pariatur:52,paricular:33,park:180,parlanc:3,parri:[116,232],parrot:118,pars:[3,15,31,33,38,40,43,50,51,63,81,83,88,97,104,108,109,114,123,124,129,134,139,149,150,151,154,159,165,166,167,168,169,170,174,179,180,185,186,187,199,206,209,210,211,215,232,233,234,242,247,250,251,252,272,279,282,291,295,296,316,321,322,326,327,328,336,343,344,364],parse_ansi:321,parse_ansi_to_irc:279,parse_fil:322,parse_html:343,parse_inlinefunc:336,parse_input:328,parse_irc_to_ansi:279,parse_languag:206,parse_menu_templ:[51,328],parse_nick_templ:[316,336],parse_opt:215,parse_sdescs_and_recog:206,parseabl:251,parsed_str:279,parseerror:234,parser:[33,41,47,79,104,108,109,134,150,151,156,159,167,168,174,186,187,203,205,206,232,233,234,250,251,286,321,336,343],parsestack:336,part1:203,part2:203,part:[1,4,5,9,11,13,14,15,16,20,22,23,26,29,33,36,37,38,39,40,41,42,44,45,46,48,49,51,57,58,60,61,68,69,70,73,76,80,85,86,88,90,91,92,94,95,102,105,106,111,114,116,117,119,122,123,124,125,127,131,135,136,137,138,139,140,151,152,154,167,168,170,175,179,180,185,203,206,215,220,233,238,241,242,250,251,267,271,296,307,310,312,316,317,321,322,326,328,336,344,364],part_a:179,part_b:179,parth:292,parti:[8,9,13,23,27,37,42,64,72,75,90,101,114,128,134,177,179,185],partial:[25,68,94,205,251,269,282,308,339,341,344,345],particip:[41,103,217,218,219,220,221],particular:[5,8,12,13,14,20,22,28,31,38,40,41,43,44,48,58,59,64,68,70,72,74,75,79,80,83,85,88,89,93,96,97,104,105,107,112,113,114,118,119,121,124,125,131,132,135,139,144,151,152,159,176,187,210,219,220,227,238,241,242,247,256,308,310,318,334,341,362],particularli:[0,4,12,38,39,51,55,127,154,167,170,206,252,271],partit:321,partli:[11,31,47,86,129,152],party_oth:179,pass:[4,10,21,23,25,27,28,29,30,33,36,40,43,49,51,52,62,69,74,80,82,83,85,88,90,91,95,96,100,102,105,107,109,110,111,115,117,119,121,125,127,130,134,138,139,144,146,152,171,182,184,185,188,189,194,200,209,210,212,215,217,218,219,220,221,232,241,242,247,251,257,261,265,277,285,287,290,295,296,306,312,316,318,327,328,329,330,336,337,338,339,340,343,344,362],passag:[83,116,182,232,233,331],passant:126,passavataridterminalrealm:287,passiv:[29,116,133],passthrough:[1,31,259],password1:[145,357],password2:[145,357],password:[4,9,12,23,35,36,51,64,74,80,103,131,139,144,145,156,157,171,186,201,204,210,272,287,290,311,324,349,357],password_chang:360,passwordresettest:360,past:[0,13,20,26,37,46,50,58,62,69,96,104,108,111,116,123,133,137,219,313,322,331,362],pastebin:37,patch:[125,342],path:[0,2,4,8,14,20,21,22,27,29,38,39,40,43,45,48,51,59,60,63,64,66,67,69,74,80,85,86,88,89,90,95,96,100,102,105,106,109,114,117,118,119,121,123,124,125,134,135,136,138,139,144,146,148,151,152,153,158,159,160,161,162,163,164,169,175,177,179,180,181,182,184,185,187,189,195,197,198,200,201,203,204,205,206,212,213,214,217,218,219,220,221,223,224,226,227,230,231,232,233,235,239,246,247,251,252,256,258,259,261,267,274,276,285,292,298,300,304,308,312,316,317,318,322,324,326,327,328,329,331,334,335,341,344,362],path_or_typeclass:198,pathnam:342,patient:[20,70],patreon:70,patrol:231,patrolling_pac:231,patron:[37,70],pattern:[3,4,16,51,69,87,127,133,134,135,140,157,206,311,344],paul:125,paus:[10,39,46,51,100,102,110,116,194,259,344],pausabl:344,pauseproduc:269,paxboard:79,payload:[278,295],paypal:[37,70],pdb:[139,141],pdbref:[80,241],pdf:79,peac:117,peek:[20,26,51,91],peer:[278,295],peform:272,peg:103,pem:67,pemit:[43,108,157],penalti:[86,219],pend:312,pennmush:[57,108,129],pentagon:103,peopl:[2,20,21,26,37,43,54,55,58,61,64,68,71,72,73,79,80,81,85,90,95,96,97,103,108,114,116,119,139,165,186,206,232,233,315,324],pep8:26,per:[2,4,11,19,33,38,41,47,51,58,60,62,64,69,83,86,89,93,100,105,109,112,116,119,123,138,144,175,187,205,217,218,219,220,221,231,251,280,281,283,291,294,310,328,329,330,334,337,338],perceiv:62,percent:[33,344],percentag:[116,317,344],percentil:344,perception_method_test:303,perfect:[50,55,61,75,100,131],perfectli:[4,69,96,112,129,138,321],perform:[11,13,14,22,23,25,39,41,42,43,51,52,55,59,71,74,75,80,89,91,93,97,102,103,114,116,117,123,133,134,150,152,156,159,164,175,180,182,188,194,195,206,209,215,217,218,219,220,221,227,247,250,256,257,276,290,298,299,316,317,318,325,328,329,336,338,341,344,345,357],perhap:[16,22,42,46,62,69,77,91,94,97,108,138],period:[90,95,96,100,103,127,128,130,344],perist:[34,125],perm:[4,11,12,19,22,25,33,58,68,71,80,85,109,112,123,133,148,157,158,159,164,165,166,169,187,193,203,212,233,239,241,242,246,247,256,316,318],perm_abov:[80,241],perm_us:157,perman:[4,5,12,21,24,25,31,43,51,85,90,96,122,123,138,144,152,153,156,159,164,165,169,197,205,247,260,318],permiss:[2,4,7,8,9,11,12,18,20,21,23,25,31,41,43,45,66,68,70,71,75,93,108,109,123,133,139,144,145,147,148,152,154,156,157,158,159,165,167,168,175,193,197,206,221,239,241,242,246,247,251,252,256,316,317,318,319,322,324,337,341,362,364],permission_account_default:[80,298],permission_func_modul:241,permission_guest_default:66,permission_hierarchi:[19,80,241,242],permissionerror:251,permissionhandl:[133,319],permissionshandl:315,permit:[41,78,159,311],permstr:[80,144,318,324],permut:206,perpetu:93,persis:29,persist:[0,6,21,22,27,31,33,34,43,51,55,56,57,60,64,79,84,86,89,102,104,105,109,110,115,116,121,123,125,144,148,159,169,175,176,177,180,184,188,195,205,206,213,215,217,218,219,220,221,227,230,232,239,246,247,249,250,251,256,257,258,259,260,261,272,273,274,305,306,310,314,318,324,326,328,330,331,344],person:[12,21,43,61,63,70,73,90,102,105,118,129,139,144,159,165,179,185,206,226],persona:96,perspect:[73,76,77,105],pertain:[103,126,136,350],pertin:[68,133],perus:137,peski:85,pester:[57,61],phase:[49,61],philosophi:80,phone:[16,64,75,139,204],phone_gener:204,phonem:205,php:[64,108,357],phrase:[46,198],phrase_ev:198,physic:[2,49,220,231],pick:[6,9,13,15,20,21,31,33,35,37,39,43,51,55,62,68,72,73,80,85,90,95,96,100,102,104,106,111,119,132,151,156,159,165,167,168,174,182,190,197,206,221,224,232,233,247,251,299],pickl:[11,29,83,115,257,261,264,274,276,277,316,317,325,326,328,340],pickle_protocol:340,pickledfield:340,pickledformfield:[315,340],pickledobject:340,pickledobjectfield:340,pickledwidget:340,picklefield:[141,142,315,320],pickpocket:[43,166],pickup:[197,221,247],pictur:[21,40,57,106,138],pid:[36,80,100,110,131,133,241,247,267,277,344],piddir:36,pidfil:267,piec:[10,13,59,61,64,93,122,203,294,322,329],pierc:232,piggyback:144,pile:[153,322],pillow:75,ping:[146,164,267,279],pink:[119,321],pip:[9,23,26,38,42,47,59,63,65,71,75,93,96,97,98,100,127,128,130,133,141],pipe:[105,279,325],pitfal:[14,26,114,126],pixel:24,pizza:[148,177,239,246,256,316,318,319],pkg:75,pki:8,place:[0,2,3,4,5,8,9,11,14,15,20,21,25,26,30,37,38,41,43,46,49,51,55,62,63,64,69,71,73,75,76,80,83,89,90,91,95,96,100,102,103,104,105,109,111,121,123,124,126,128,129,131,132,133,135,136,138,144,157,159,165,179,180,182,184,188,197,203,206,209,217,218,219,220,221,232,233,235,247,259,276,285,290,306,307,308,322,323,325,328,344],placehold:[134,242,247,330],plai:[0,2,11,14,19,22,29,39,46,55,58,61,64,68,73,75,81,83,90,91,95,105,111,114,116,121,122,123,124,132,133,138,144,217,221,291,308,324],plain:[13,14,38,58,86,88,123,179,180,202,252,272,298,325,362],plaintext:210,plan:[9,14,15,40,41,42,45,55,56,90,94,96,100,124,125,127,139,322,364],plane:121,planet:[62,79],plant:234,plate:[82,125,204],platform:[9,16,56,63,90,102,106,131],playabl:[133,360],player:[9,10,11,12,19,20,21,22,25,29,31,34,40,41,43,51,53,54,55,58,60,61,64,65,68,71,73,77,80,81,83,85,90,91,93,95,97,98,105,108,110,111,112,113,116,117,118,119,120,121,122,123,124,133,138,139,153,156,159,164,169,176,179,180,188,190,198,199,200,203,205,206,210,214,215,220,221,233,234,235,238,256,281,290,307,322,327,344,357,362],playernam:71,playerornpc:9,pleas:[4,5,8,16,17,26,31,37,43,51,63,70,71,72,75,78,90,93,94,109,111,114,117,118,120,124,125,127,131,133,169,269,298,334,340,357,363],pleasur:16,plenti:[14,55,60,129],plot:300,plu:[22,27,43,64,73,106,169],pluck:33,plug:[96,103,107,136,235],plugin:[4,40,45,47,53,55,72,79,83,104,108,138,206,265,364],plugin_handl:[83,137],plugin_manag:137,plural:[19,58,80,220,247],png:[70,92,101,136],po1x1jbkiv:37,pobject:226,pocoo:344,point:[0,2,4,5,8,13,14,15,20,21,22,25,27,29,31,33,34,36,37,38,39,42,43,49,51,55,56,60,61,62,63,67,69,73,75,81,83,85,86,88,89,90,91,93,95,97,100,102,104,105,106,112,113,115,116,121,123,125,127,130,131,133,134,135,136,138,139,144,150,154,159,167,168,169,179,189,197,200,206,212,217,233,234,235,247,249,251,261,267,271,285,287,295,306,308,315,316,318,322,328,336,344,362],pointer:[26,49,56,91],pointless:[6,10,89,115],poison:[219,252],poke:119,pole:203,polici:[43,45,90,94,103,139,210,239,311,316],polit:103,poll:[40,136,156,231,267,296],pong:279,pool:[23,31,115,261,312,325],poor:[48,58],poorli:103,pop:[10,23,25,38,48,58,85,106,138],popen:277,popul:[22,23,36,41,57,61,62,81,124,135,138,152,160,161,162,163,180,182,187,203,206,214,217,218,219,220,221,224,230,231,232,233,260,261,315,322,326,327,329,336],popular:[9,57,64,79,103,108,362],popup:[137,138],port:[0,8,9,23,36,43,54,55,63,67,72,94,100,101,110,146,164,276,279,287,299,308,312],portal:[40,43,45,47,53,79,88,89,90,93,94,103,104,106,110,121,128,137,139,141,142,146,169,183,262,264,267,305,306,307,308,331,337,344,364],portal_connect:308,portal_disconnect:308,portal_disconnect_al:308,portal_l:277,portal_pid:[277,344],portal_receive_adminserver2port:277,portal_receive_launcher2port:277,portal_receive_server2port:277,portal_receive_statu:277,portal_reset_serv:308,portal_restart_serv:308,portal_run:267,portal_service_plugin_modul:40,portal_services_plugin:[40,104],portal_services_plugin_modul:40,portal_sess:40,portal_session_sync:308,portal_sessions_sync:308,portal_shutdown:308,portal_st:267,portal_uptim:331,portallogobserv:337,portalsess:[40,105,285],portalsessiondata:308,portalsessionhandl:[40,141,142,262,275,286,308],portalsessionsdata:308,portion:[77,180,190],pose:[29,58,116,165,175,195,206],pose_transform:175,poser:175,posgresql:23,posit:[13,20,22,39,49,51,91,111,116,126,127,137,138,139,153,171,180,186,200,202,221,232,233,234,235,247,260,321,322,325,326,330,344,345],positive_integ:345,positiveinteg:338,posix:[337,344],possess:[7,77,189],possibl:[0,5,9,10,11,22,23,25,26,31,33,34,37,38,39,43,46,50,55,57,58,63,64,66,73,74,75,76,80,91,93,100,102,104,105,109,111,112,114,116,123,126,127,128,131,134,136,138,141,144,148,150,152,159,167,168,179,187,194,197,200,203,205,206,214,227,231,233,235,241,242,247,250,251,252,257,261,272,292,296,306,308,317,319,321,324,326,327,328,330,340,341,344],post:[5,31,34,37,55,57,58,61,63,69,70,71,80,98,107,111,120,133,136,210,296,362],post_delet:107,post_init:107,post_join_channel:175,post_leave_channel:175,post_migr:107,post_sav:107,post_send_messag:175,post_text:190,post_url_continu:[145,173,244],postfix:205,postgr:[23,64],postgresql:[55,344],postgresql_psycopg2:23,postinit:[83,137],posttext:188,postupd:[71,120],pot:12,potato:[24,234],potenti:[10,11,13,26,41,82,83,90,98,111,114,116,123,154,176,210,211,241,242,247,251,338,341,344],potion:[77,318],power:[15,19,20,29,30,31,33,42,43,46,50,51,55,56,58,61,64,80,89,96,109,111,116,122,123,137,138,152,153,158,159,215,220,234,322,328,344],powerfulli:0,pperm:[12,41,43,71,80,133,156,164,203,241,247],pperm_abov:241,pprofil:267,pprogram:267,practial:15,practic:[0,13,14,22,26,29,33,34,36,37,57,58,63,64,70,80,89,90,96,105,109,119,124,126,131,139,322,364],pre:[33,43,47,49,54,61,63,71,89,90,111,114,138,144,159,166,205,242,247,251,252,295,296,326,340],pre_delet:107,pre_init:107,pre_join_channel:175,pre_leave_channel:175,pre_migr:107,pre_sav:[107,340],pre_send_messag:175,pre_text:190,preced:[19,31,41,96,109,114,119,152,154,174,215,247,252,317,330],precend:150,precis:[11,96,126,321],predefin:[121,311],predict:[125,133],prefac:119,prefer:[21,22,23,31,37,43,47,55,57,71,80,90,91,96,106,109,111,123,131,137,138,152,154,157,175,180,206,218,231,238,247],prefix:[20,22,23,42,76,86,97,103,125,145,151,168,175,190,205,237,244,272,279,310,315,321,336,337,341,344,357],prefix_str:25,prematur:[27,93,179,259],prepai:90,prepar:[3,49,57,87,109,127,136,144,206,217,218,219,220,221,231,256,325,340,363],prepars:38,prepend:[199,206,247,321,322,328,344],prepopul:[315,362],preprocess:159,prerequisit:[9,36],prescrib:[55,57],preselect:138,presenc:[9,17,23,55,56,90,122,124,126,136,144,247,312,346],present:[1,4,8,22,42,46,48,49,51,62,69,77,85,91,96,97,104,105,116,123,131,138,180,188,190,204,205,214,215,234,252,326,344],preserv:[126,167,168,318,321,322,337,344],press:[9,14,15,22,26,31,33,42,51,63,80,83,88,95,96,100,106,110,180,224,226,227,232,265,328],press_button:226,pressabl:227,pressur:82,presto:20,presum:[62,73,153,337,338],pretend:75,pretext:188,pretti:[0,22,25,26,37,38,39,41,60,64,67,72,85,88,89,90,116,121,123,126,131,133,138,154,182,204,236,242,251,327,329,338,344],prettier:[0,357],prettifi:[57,344],prettili:62,pretty_corn:330,prettyt:[27,330],prev:[51,329],prev_entri:51,prevent:[11,20,33,38,46,62,95,194,221,234,310,315,329,362],preview:38,previou:[0,10,11,14,16,22,29,31,33,41,42,51,52,58,60,62,69,80,85,86,87,91,95,96,100,104,107,114,119,123,126,174,215,233,249,259,328,337,362],previous:[20,31,34,43,49,50,67,72,74,91,102,104,114,119,127,133,136,154,157,159,179,200,272,288,292,299,308,319],prgmr:90,price:[90,232],primari:[17,100,125,133,206,247,316,341],primarili:[2,12,34,36,37,55,61,108,144,179,206,238,285,325,344],primarli:38,primary_kei:133,prime:[150,179],primer:10,primit:[43,61,159,251],princess:[111,122],principl:[2,9,19,26,30,33,37,38,40,43,51,55,57,60,80,85,89,90,96,98,119,123,132,138,153,156,179,233],print:[4,9,10,11,21,25,26,27,40,42,43,50,51,58,59,83,86,91,95,96,97,110,113,125,156,185,205,234,251,266,267,327,328,329,330,336,337,344],print_debug_info:328,print_help:234,print_usag:234,printabl:293,printout:290,prio:[25,31,33,150,233],prior:[117,194,247],priorit:205,prioriti:[4,25,31,33,44,51,97,116,152,156,160,161,162,163,167,168,180,201,230,232,233,247,326,328,329],privat:[4,8,38,43,57,61,69,90,131,164,165,176,279,292],private_set:9,privatestaticroot:312,privileg:[21,23,43,60,63,65,72,98,123,165,206,235,247,318],privkei:67,privkeyfil:287,privmsg:279,prize:122,proactiv:115,probabl:[4,5,11,16,21,22,23,25,29,33,37,46,48,51,55,57,61,64,67,69,85,86,89,90,96,108,116,119,121,128,133,134,136,138,180,198,204,233,269,279,287,334,344,345],problem:[11,13,15,21,22,23,24,25,26,27,36,38,43,56,61,64,69,70,75,77,80,90,95,97,100,103,110,111,113,127,138,140,144,153,195,247,276,322],problemat:[25,344],proce:[14,15,100,121,126,294,362],procedud:51,procedur:[138,215,287,290],proceed:[131,344],process:[0,4,8,9,11,13,14,15,22,23,25,29,33,36,38,39,41,42,43,49,51,55,59,61,64,67,73,75,76,83,88,89,90,91,92,93,94,100,106,122,131,133,138,139,144,150,152,159,169,179,200,206,215,234,240,242,247,251,257,267,272,276,277,284,287,290,295,296,305,306,308,321,322,325,328,338,343,344,345,362,364],process_languag:206,process_recog:206,process_sdesc:206,processed_result:344,processj:[316,336],processor:[18,43,93,110,111,124,139,141,142,158,169,200,320,364],procpool:344,produc:[33,43,51,96,114,123,131,156,159,203,205,232,235,247,251,252,266,298,316,318,327,328,336,344],produce_weapon:232,producion:27,product:[23,26,36,90,93,103,106,128,131,135,298,301,328],production_set:9,prof:93,profession:[3,57,64,108],profil:[45,65,139,141,142,145,148,188,262,364],profile_templ:188,profit:138,profunc:109,prog:234,progmat:56,program:[2,10,15,23,39,43,53,56,57,63,64,67,70,75,77,79,86,90,92,93,95,96,100,103,106,108,110,114,124,127,128,169,234,262,267,290,296,298],programiz:39,programm:[91,95],programmat:[114,138],progress:[70,73,79,85,94,131,217,218,219,220,221,326,364],proident:52,project:[4,15,25,37,49,64,70,72,77,79,91,99,108,111,124,127,131,135,136,338],projectil:220,promis:26,promisqu:126,prompt:[9,12,23,24,26,42,54,63,64,75,83,88,96,100,111,124,125,137,139,154,215,265,279,290,295,296,322,328,364],promptli:14,prone:[1,128,153,318],pronoun:189,prop:61,propag:[8,152,271,340],proper:[15,21,23,27,36,39,43,44,56,57,61,64,85,91,96,100,103,116,123,127,131,133,135,137,138,159,179,180,196,205,327],properli:[9,29,58,62,69,84,106,108,117,125,126,127,128,131,133,140,154,179,211,233,241,261,287,344,362],properti:[5,6,13,22,25,39,43,53,55,56,57,59,61,68,73,80,81,84,86,87,96,97,104,109,110,111,115,116,119,121,123,126,127,144,145,146,148,154,156,159,167,169,170,173,175,177,180,188,192,194,203,206,215,217,219,220,221,231,232,233,234,235,237,239,241,242,244,246,247,251,252,254,256,258,259,263,272,274,279,285,299,306,307,308,315,316,318,319,323,325,328,338,339,340,341,344,357,362],propnam:123,propos:[50,138],proprietari:23,propval:123,propvalu:123,prosimii:[133,134],prospect:61,prot:252,prot_func_modul:[109,250],protect:[6,31,43,90,159],protfunc:[141,142,248,251],protfunc_modul:251,protfunc_pars:251,protfunct:251,protkei:[109,250,251],proto:[276,287],proto_def:203,protocol:[24,27,33,43,47,53,64,72,74,79,83,90,92,94,101,103,104,105,110,137,139,144,146,154,157,189,210,247,262,264,267,269,272,276,277,278,279,280,281,282,283,285,286,287,289,290,291,292,294,295,296,298,305,306,307,308,326,340,344,364],protocol_flag:[289,290,294,306],protocol_kei:307,protocol_path:[285,308],protodef:203,prototocol:[43,169],protototyp:[249,251,252],protototype_tag:109,prototoyp:250,prototyp:[43,45,46,47,53,55,120,139,141,142,159,169,203,218,219,232,364],prototype1:252,prototype2:252,prototype_:109,prototype_desc:[109,252],prototype_dict:[43,159],prototype_diff:252,prototype_diff_from_object:252,prototype_from_object:252,prototype_kei:[43,109,159,251,252],prototype_keykei:[43,159],prototype_lock:[109,252],prototype_modul:[43,109,159,251,252],prototype_pagin:251,prototype_par:[43,109,159,252],prototype_tag:252,prototype_to_str:251,prototypeevmor:251,prototypefunc:252,protpar:[251,252],protpart:251,provid:[0,3,4,11,12,16,17,22,25,29,33,36,38,41,43,47,55,69,75,77,90,91,96,97,100,102,103,108,109,119,124,125,126,127,131,133,134,136,137,138,144,154,159,164,175,180,182,188,190,193,200,203,204,215,217,218,219,220,221,234,235,241,247,259,287,310,317,328,338,339,340,344,345,357,362],provok:[42,79],proxi:[47,60,67,70,94,103,125,312,315],proxypass:8,proxypassrevers:8,prudent:36,prune:31,pseudo:[40,49,91,108,204,205],psionic:220,psql:23,psycopg2:23,pty:9,pub:41,pubkeyfil:287,publicli:[54,61,79],publish:[21,36,79,100],pudb:141,puff:56,pull:[25,31,33,36,37,38,64,100,128,131,136,198,227,232,269],pullrequest:37,punch:31,punish:221,puppet:[2,9,19,21,22,31,33,39,40,41,43,55,57,58,62,74,80,96,97,105,107,114,118,123,133,143,144,150,156,159,167,181,197,199,241,247,306,308,318,336,360,362],puppet_object:[2,144],purchas:[67,85],pure:[46,56,88,114,125,126,256,267,316,321],pure_ascii:344,purg:[11,43,110,125,169],purpos:[4,11,67,83,90,92,95,112,119,123,126,133,146,150,154,185,194,287,316,325,328,344],pursu:[122,231],push:[22,38,76,100,103,126,198,224,226,227,232],pushd:63,put:[0,2,3,5,6,10,12,13,14,19,20,21,23,25,33,37,38,42,43,46,49,50,51,57,58,60,61,64,70,73,77,79,80,83,85,86,87,89,90,95,96,102,103,104,105,106,109,111,114,116,121,122,123,125,127,129,133,135,136,138,153,156,157,159,161,165,181,182,188,190,206,215,217,218,219,220,221,223,227,242,276,290,329,330,344],putti:90,puzzl:[79,122,141,142,178,232,233],puzzle_desc:232,puzzle_kei:233,puzzle_nam:203,puzzle_valu:233,puzzleedit:203,puzzlerecip:203,puzzlesystemcmdset:203,pwd:100,py3:276,pyc:[47,95],pycharm:[38,45,139,364],pyflak:26,pylint:26,pyopenssl:65,pypath:344,pypath_prefix:344,pypath_to_realpath:344,pypi:[64,79,90,93,321],pypiwin32:[9,63],pyprof2calltre:93,pyramid:235,pyramidmapprovid:235,python2:[9,63,97],python37:63,python3:[63,64,75,94],python:[0,2,3,4,9,10,11,12,14,15,19,20,21,22,23,27,29,31,33,37,38,39,42,43,45,46,47,49,50,51,53,56,58,60,62,63,64,65,66,69,72,73,75,76,80,82,83,85,86,89,90,91,93,97,98,100,102,103,104,106,108,109,110,111,113,114,116,118,119,123,124,125,127,128,130,133,134,135,139,151,153,158,159,163,169,170,180,185,192,193,194,195,196,197,198,204,234,235,242,246,250,251,252,258,261,267,269,276,280,285,295,306,308,312,314,317,318,321,322,324,325,326,327,328,330,331,334,337,340,344,363,364],python_execut:64,python_path:[153,344],pythonista:79,pythonpath:[153,267,277,322],pytz:345,qualiti:[61,151],quell:[2,6,20,121,156,212],quell_color:159,queri:[11,16,34,39,56,64,83,86,94,109,112,131,148,177,206,238,239,246,247,250,251,252,256,274,287,302,316,317,318,319,329,335,341,344,345],quersyet:119,query_al:316,query_categori:316,query_info:267,query_kei:316,query_statu:267,queryset:[64,102,112,119,176,199,238,251,273,315,317,329,362],queryset_maxs:329,quest:[55,57,61,63,117,122,139,233],question:[8,10,22,26,33,34,43,50,51,57,61,63,67,70,73,90,96,124,127,131,135,159,246,264,265,316,326,328,344],queu:267,queue:[36,116,312],qui:52,quick:[5,18,22,31,33,38,39,43,48,55,61,70,79,90,91,95,97,108,112,116,119,124,138,140,146,159,180,205,252,272,316,319,330],quicker:[0,37,86,87],quickli:[10,11,15,25,33,34,39,43,48,51,86,89,96,112,114,120,128,136,139,159,180,205,319,322],quickstart:[95,139,364],quiescentcallback:269,quiet:[25,43,85,144,157,159,164,180,182,197,206,247,329,344],quiethttp11clientfactori:269,quietli:[29,83,88,316],quirk:[24,45,139,153,364],quit:[0,2,4,10,17,21,22,23,30,33,38,39,40,42,46,50,51,54,55,57,60,67,75,85,93,96,105,119,127,128,133,156,171,180,186,188,194,220,287,326,328,329],quitfunc:[50,326],quitfunc_arg:326,quitsave_yesno:326,quo:115,quot:[23,27,35,43,50,51,80,95,96,109,114,118,159,171,186,206,326,328,336,340,344],qux:215,ra4d24e8a3cab:35,race:[8,55,56,61,73,79,117,133,344],rack:232,radiu:[39,49,111],rage:122,rail:[64,121],railroad:121,rain:[102,119,122,132],raini:233,rais:[10,15,27,33,69,73,77,83,91,109,119,134,144,146,176,180,185,187,192,194,195,204,205,206,242,250,251,259,261,266,267,285,290,296,311,316,317,319,321,322,324,327,328,330,336,337,338,339,340,344,345],raise_error:[339,344],raise_except:[1,316],ram:[11,90],ramalho:79,ran:[13,36,42,90,127],rand:102,randint:[73,91,109,116,120,123,217,218,219,220,221,250,252],random:[9,20,35,46,60,73,90,91,102,104,109,114,116,120,123,132,204,205,217,218,219,220,221,223,224,226,228,232,233,235,250,252,298,299,336,344],random_string_from_modul:344,random_string_gener:[141,142,178],randomli:[86,93,102,120,132,217,218,219,220,221,231,232,250,267,299],randomstringgener:204,randomstringgeneratorscript:204,rang:[24,31,39,42,43,49,50,56,59,63,88,91,93,103,109,111,116,118,120,122,127,159,184,188,218,221,317,326,336,357,362],rank:[19,241],raph:79,raphkost:79,rapidli:153,raptur:291,rare:[10,22,33,34,38,63,86,104,106,115,128,242,324],rascal:112,rate:[33,37,43,64,90,164,261,267,286,344],rather:[2,3,11,13,20,22,25,26,29,33,37,38,39,41,43,47,55,57,60,61,64,71,86,89,91,93,95,97,102,104,110,111,112,115,116,127,128,129,131,134,135,138,144,148,152,156,159,160,164,167,169,179,190,194,197,202,206,217,218,219,220,221,236,241,247,249,251,252,315,316,318,321,330,336,339,340,343,362],ration:179,raw:[3,12,20,33,38,41,51,56,64,74,83,86,95,109,114,119,144,151,154,159,167,168,170,206,210,234,247,272,287,290,295,296,306,321,326,328,336,338,344],raw_cmdnam:[151,168],raw_desc:187,raw_id_field:[173,244,254],raw_input:[85,328],raw_nick:87,raw_str:[33,51,85,144,146,150,151,154,170,188,201,215,230,247,249,306,316,328],raw_templ:87,raw_text:201,rawstr:[154,170],rcannot:22,re_bg:343,re_bgfg:343,re_blink:343,re_bold:343,re_color:343,re_dblspac:343,re_double_spac:343,re_fg:343,re_format:321,re_hilit:343,re_invers:343,re_mxplink:343,re_norm:343,re_str:343,re_ulin:343,re_underlin:343,re_unhilit:343,re_url:343,reach:[20,22,39,51,73,87,88,90,95,101,121,122,141,154,188,192,221,241,287,291,310,328,329,336,341],reachabl:[64,115],react:[51,115,117,118,231,247],reactiv:[43,169],reactor:[94,278,305,312,342],read:[0,1,4,5,8,9,11,13,15,16,17,20,22,23,25,27,29,31,33,34,37,38,39,41,43,46,51,55,56,58,59,60,61,64,69,70,71,72,76,77,79,80,85,86,88,90,91,93,95,96,102,103,104,105,109,114,119,122,123,124,126,127,128,131,133,134,138,139,144,148,158,166,177,180,187,190,198,199,204,206,232,233,239,246,247,251,252,256,274,276,299,316,318,319,322,323,327,329,335,337,362,363],read_batchfil:322,read_default_fil:36,readabl:[1,27,38,49,51,93,96,108,114,115,125,232,321,328],readable_text:232,reader:[38,43,48,58,74,79,81,98,133,164,190,221,272,286],readi:[2,10,12,15,20,25,29,36,37,40,42,54,63,75,77,80,83,89,93,106,121,131,136,138,144,154,166,206,217,218,219,220,221,247,296,329,338,344],readili:[23,111],readin:327,readlin:337,readm:[14,37,46,47,53,130,131,178,210],readonlypasswordhashfield:145,readthedoc:[79,83],real:[2,10,21,22,27,31,38,39,42,46,55,58,59,62,63,66,67,72,73,89,90,93,95,100,108,109,110,111,116,119,123,125,126,131,148,153,177,179,184,205,206,219,241,298,322,331],real_address:2,real_nam:2,real_seconds_until:[184,331],real_word:205,realis:77,realist:[127,132],realiti:[21,55,56,61,77,79,111,126],realiz:[48,96,126,131],realli:[4,10,11,12,13,14,19,20,22,25,26,31,33,38,39,42,51,58,62,64,67,72,77,80,85,89,91,96,98,104,108,110,111,112,115,118,119,121,127,128,138,139,154,170,179,180,181,215,234,242,276,321,322,328,340],realm:287,realnam:89,realpython:10,realtim:[58,184],realtime_to_gametim:184,reason:[8,9,11,12,13,22,25,29,34,37,38,39,40,41,43,44,49,51,56,57,58,60,61,63,64,69,73,80,82,83,86,87,89,93,97,102,103,104,106,109,114,115,116,119,122,126,129,131,138,144,157,159,164,169,186,204,205,247,251,257,264,269,276,277,278,279,285,286,287,290,295,296,298,306,307,308,318,326,337,344,362],reasourc:109,reassign:49,reattach:[106,278,279],rebas:131,reboot:[11,27,28,43,50,55,67,84,86,90,100,102,105,115,116,128,144,153,164,169,183,188,231,232,247,256,257,258,259,261,267,307,308,326,328,344],reboot_evennia:267,rebuild:[58,63,100,128,279],rebuilt:33,rec:206,recach:233,recal:[95,138,232,362],recaptcha:133,receipt:[103,269],receiv:[31,33,34,37,41,42,51,52,58,77,83,87,91,105,113,114,117,127,133,137,138,144,152,153,170,171,175,176,177,186,197,199,200,206,210,247,269,272,276,278,279,285,295,296,305,306,324,329,341,344],receive_functioncal:276,receive_status_from_port:267,receivelock:241,receiver_account_set:148,receiver_object_set:246,receiver_script_set:256,recent:[4,17,25,60,67,94,123,310],recev:296,recip:[0,28,115,203],recipi:[34,58,144,176,199,276],reckon:9,reclaim:102,recog:[87,206],recog_regex:206,recogerror:206,recoghandl:206,recogn:[16,20,63,74,83,89,90,96,110,127,134,206,312],recognit:[206,316,336],recommend:[9,12,23,24,25,26,36,37,38,43,51,55,58,59,60,61,63,69,73,79,86,88,89,90,93,95,108,109,122,124,125,127,131,135,169,190,194,209,234,242,247,269,322,328,341],recommonmark:38,reconfigur:90,reconnect:[144,146,164,264,267,276,278,279,305,308],reconnectingclientfactori:[264,278,279],record:[15,23,90,123,210,221,310,357],record_ip:310,recours:12,recov:[27,28,29,56,217,218,219,220,221,242,344],recoveri:116,recreat:[23,63,102,111,128,146,153,322,323],rectangl:327,rectangular:[58,327],recur:64,recurs:[11,241,251],red:[13,14,20,31,43,59,80,87,95,109,114,126,159,169,224,226,227,232,321,336,345],red_bal:59,red_button:[13,14,20,43,87,141,142,159,178,222,224,227],red_button_script:[141,142,178,222,226],red_kei:80,redbutton:[13,14,20,43,87,159,224,226,227],redbuttonblind:227,redbuttonclos:227,redbuttondefault:224,redbuttonopen:227,redd:103,reddit:103,redefin:[22,33,55,89,247,357],redhat:[63,67],redirect:[8,22,40,69,96,105,133,135,180,328,362],redirectview:362,redistribut:34,redit:180,redo:[50,61,326],redon:271,redraw:287,reduc:[94,116,217,218,219,220,221,280],redund:321,reel:153,reen:[114,321],ref:[23,38,125,206,344,357],refactor:[45,57,139,247,363,364],refer:[0,8,9,13,19,20,22,31,33,34,37,40,43,46,48,49,51,56,57,62,64,69,73,79,80,86,87,88,89,90,95,96,100,104,105,106,109,110,111,116,118,119,124,125,126,127,129,130,131,133,134,144,153,159,164,168,179,188,197,200,204,206,217,218,219,220,221,241,247,258,261,269,279,299,307,315,317,328,334,340,341,362],referenc:[43,56,89,104,109,159,175,206,239,318,344],referenti:344,referr:90,refin:[49,119],reflect:[96,362],reflow:16,reformat:[252,330,337],reformat_cel:330,reformat_column:[111,330],refresh:[26,134,287,310],refus:12,regain:29,regard:[48,126,127,138,204],regardless:[12,19,31,33,58,73,80,81,83,102,105,114,119,121,125,127,138,144,152,179,189,197,206,224,227,247,259,261,284,287,290,305,307,316,319,322,334,337],regener:219,regex:[5,33,50,51,87,127,137,154,157,170,183,204,206,311,316,328,336,344],regex_nick:87,regex_tupl:206,regex_tuple_from_key_alia:206,regexfield:145,region:[43,58,90,140,157],regist:[65,71,83,103,104,116,120,131,133,135,137,138,144,164,198,231,232,257,267,278,279,285,308,310,312,321,336,360,362],register_error:321,register_ev:198,registercompon:137,registertest:360,registr:[65,362],registrar:67,registri:[204,310,312],regress:251,regul:242,regular:[3,17,33,38,51,69,79,90,96,105,115,127,132,134,135,146,152,182,203,204,226,227,233,242,261,319,334,344,363],regulararticl:335,regulararticle_set:335,regularcategori:335,regularli:[67,85,98,102,120,128,132,184,226,231,233,258,259,261,270,300,331],reilli:79,reinforc:79,reiniti:110,reinstal:63,reinvent:57,reject:[188,204],rejectedregex:204,rel:[10,13,14,19,22,31,49,51,82,104,123,131,133,184,200,221,322,328],relai:[27,33,43,72,105,144,164,179,189,247,285,308,328,329,344],relat:[28,31,33,34,43,47,51,56,57,72,79,94,96,102,103,104,110,125,132,137,138,139,145,148,149,152,166,167,172,176,177,184,198,210,217,218,219,220,221,230,233,239,246,247,256,259,261,272,308,315,316,318,319,321,328,335,337,346,350,357],related_field:[145,173,237,244,254,315],related_nam:[148,177,239,246,256,316,318,319,335],relationship:[34,49,119,125],relay:146,releas:[9,28,37,43,55,63,78,79,90,96,169],releg:1,relev:[3,9,11,14,22,30,33,37,38,47,58,62,79,80,89,94,96,107,112,114,116,119,123,124,125,133,135,140,144,145,150,152,179,180,241,242,258,259,281,299,306,307,308,315,321,326,328,338],relevant_choic:180,reli:[9,34,41,51,62,70,81,85,86,88,91,114,115,119,126,127,135,189,206,227,233,267,318,328],reliabl:[13,23,25,29,125,334],reliant:200,reload:[0,2,3,5,6,7,12,13,14,19,21,22,26,27,28,29,31,33,35,36,39,40,41,42,44,48,50,51,55,57,58,60,62,63,65,66,68,69,71,73,74,81,92,95,96,98,102,104,105,106,115,116,117,118,121,123,125,128,133,134,135,136,139,144,146,153,158,159,169,175,180,181,185,186,187,195,201,202,206,212,213,232,233,235,242,247,257,258,259,261,267,276,277,279,281,305,308,312,316,322,324,326,327,328,331,344,364],reload_evennia:267,remain:[13,19,30,31,33,43,50,51,58,77,90,91,96,97,107,109,110,113,151,153,159,161,165,175,181,184,187,205,217,218,219,220,221,231,247,259,267,295,296,328,329,336],remaind:[21,33,184],remaining_repeat:[102,259],remap:[38,316,336],remedi:60,rememb:[0,1,4,5,11,12,13,21,22,28,29,31,33,39,41,43,48,49,51,54,56,58,61,62,63,69,77,80,86,88,90,91,93,95,96,97,111,112,114,115,119,123,126,128,131,137,139,157,159,181,194,247,257,322,341],remind:[0,4,38,50],remit:[43,157],remnisc:57,remot:[25,100,103,164,276,278,290],remov:[0,1,4,9,11,12,21,22,27,31,36,39,41,43,48,50,51,55,58,69,80,81,84,85,87,89,91,93,98,102,115,116,122,127,128,131,133,136,138,141,152,153,157,159,164,165,166,169,174,175,177,180,182,187,188,192,196,203,204,205,206,215,217,218,219,220,221,224,242,246,247,252,257,260,261,267,285,296,308,310,316,319,321,325,328,334,340,342,343,344],remove_backspac:343,remove_bel:343,remove_charact:116,remove_default:[31,153],remove_receiv:177,remove_send:177,removeth:316,renam:[9,20,43,58,81,136,159,165,247,318],render:[3,22,38,69,81,102,107,133,134,136,145,166,190,237,244,312,315,338,340,355,357,362],render_post:296,renew:[29,58,67,310],reop:94,reorgan:[45,47],repair:[21,61],repeat:[0,42,61,62,75,88,93,102,110,111,116,118,121,136,139,144,146,179,184,204,215,256,259,267,272,291,316,324,328,331],repeatedli:[14,42,62,74,102,139,231,256,259,261,267,272,298],repeatlist:74,repetit:[62,116,204],replac:[5,6,9,22,23,25,29,30,31,33,36,38,41,43,50,51,57,69,74,80,87,89,94,95,96,100,104,105,109,111,114,116,119,134,135,136,137,138,144,151,152,153,154,157,165,166,170,179,181,183,186,187,188,192,195,197,202,203,205,206,224,227,230,233,234,242,247,249,251,252,279,282,295,296,306,316,321,326,327,328,330,336,343,344],replace_data:330,replace_timeslot:187,replace_whitespac:330,replacement_str:[43,165],replacement_templ:[43,165],replenish:[217,218,219,220,221],repli:[33,51,65,70,139,146,179,199,265,289,290,296,308,328],replic:[22,114,136],repo:[38,47,57,79,106,131,139],report:[22,24,26,33,37,43,61,63,70,73,75,84,91,93,94,97,102,103,104,115,116,127,131,136,138,159,192,195,206,234,247,267,272,279,282,283,290,291,295,306,308,321,324,328,344],report_to:324,repositori:[8,9,23,25,36,76,78,96,100,130,252],repositri:76,repr:[91,344],reprehenderit:52,repres:[0,2,9,20,21,22,25,31,33,40,46,49,53,56,61,62,64,69,77,86,89,95,96,105,107,113,116,119,125,126,127,133,136,144,150,174,176,182,188,190,192,197,198,200,204,205,206,210,212,215,219,232,233,234,247,252,261,264,278,279,295,296,306,307,308,312,316,317,321,323,324,328,329,330,340,344],represent:[2,11,28,40,58,64,73,77,86,87,88,105,113,119,126,176,192,195,206,251,256,276,295,296,319,325,331],reprocess:103,reproduc:[10,96,247],reput:209,reqhash:[317,344],reqiur:188,request:[3,8,26,37,40,43,51,63,69,80,90,103,107,119,123,131,133,134,135,139,144,145,146,157,173,179,195,244,247,251,254,267,269,276,279,281,286,287,289,296,312,315,319,328,349,350,351,355,362],request_finish:107,request_start:107,requestavatarid:287,requestfactori:312,requestor:[144,310],requir:[1,4,8,9,10,11,14,15,22,23,33,36,37,38,43,46,47,49,50,51,54,58,60,61,67,68,69,70,71,75,77,78,79,80,84,85,86,89,90,93,94,102,109,110,111,114,115,116,118,119,125,126,127,129,132,133,134,136,137,145,158,159,164,169,176,177,185,186,187,188,200,201,202,204,206,215,219,220,233,234,237,238,241,244,247,251,267,278,279,292,300,311,315,317,322,327,328,329,330,334,339,340,341,344,357,362],require_singl:251,requr:109,rerout:[138,156,160,279],rerun:[13,14,51,122],resart:259,research:[79,194],resembl:[25,55,129],resend:33,reserv:[1,10,33,95,96,111,251,311,317,336,344],reset:[0,7,12,15,17,23,27,29,31,33,44,50,60,66,73,81,102,104,105,111,114,116,121,123,125,126,139,144,146,153,159,169,174,184,195,206,227,232,242,258,259,267,271,277,287,305,316,319,322,330,331,336,342,344],reset_cach:[316,319],reset_callcount:[102,259],reset_gametim:[27,331],reset_serv:271,reset_tim:187,resid:[47,96,108,227,242],residu:[43,169,219],resist:[252,344],resiz:[58,138,327,330],resolut:[114,116],resolv:[26,29,42,60,70,90,95,104,116,131,203,217,218,219,220,221],resolve_attack:[217,218,219,220,221],resolve_combat:116,resort:[33,54,58,164,206,344],resourc:[9,23,26,28,38,41,47,48,53,56,90,94,95,96,103,108,115,124,127,135,136,139,220,257,265,296,312,323,342],respect:[0,6,23,33,43,48,58,80,104,105,123,125,157,159,166,179,199,203,206,213,224,242,247,306,307,318,319,322,324,330,341,344,357],respond:[0,46,51,61,83,84,107,110,117,118,126,294,298],respons:[7,10,16,17,37,49,51,60,63,64,70,85,88,90,91,118,120,121,144,146,153,164,175,197,233,235,239,247,265,267,269,276,299,308,318,338,340,344],response_add:[145,173,244],rest:[17,29,33,51,56,63,73,82,85,86,87,104,106,111,122,123,151,167,168,217,218,219,220,221,316,321,330],restart:[12,42,43,58,60,76,90,92,93,102,103,104,106,110,116,128,131,135,138,141,144,169,175,180,183,195,227,247,257,259,261,271,284,305,306,307,344],restartingwebsocketserverfactori:[146,278],restock:85,restor:[0,31,102,126,180,220,227,257,261],restrain:[43,159,241,327,344],restrict:[4,8,11,19,20,43,47,59,68,73,80,90,109,111,115,125,134,137,159,164,182,204,220,221,237,242,252,324,326,328,330,341],restructur:[38,56],result1:203,result2:[51,203],result:[10,11,23,27,30,31,33,38,43,44,48,51,58,59,73,80,88,90,91,95,96,97,104,105,109,114,115,116,118,119,123,124,126,127,131,134,135,136,144,151,152,154,159,166,175,177,179,185,188,200,203,204,205,206,209,217,218,219,220,221,233,238,242,247,250,251,252,259,267,276,299,316,318,321,326,327,328,330,334,336,337,338,341,344,345],result_nam:203,resum:[29,33,102],resurrect:231,resync:[146,276,306],ret:33,ret_index:344,retain:[10,27,31,51,97,111,138,189,239,252,313,318,322,324,337,344],retext:38,retract:179,retreat:221,retri:267,retriev:[0,33,43,69,74,86,96,97,108,112,119,123,139,140,144,148,150,153,159,169,174,176,187,194,238,241,246,251,265,272,273,279,285,294,316,319,325,334,339,341,344,362],retriv:[146,323],retroact:[58,125],retur:52,return_appear:[49,60,122,123,182,187,206,232,247],return_cmdset:166,return_detail:[187,233],return_iter:251,return_key_and_categori:319,return_list:[1,316,319],return_map:111,return_minimap:111,return_obj:[1,11,87,316,319,339],return_par:252,return_prototyp:120,return_puppet:144,return_tagobj:319,return_tupl:[87,185,316],returnv:33,returnvalu:10,reus:[25,334],reusabl:122,rev342453534:344,reveal:182,revers:[29,31,33,39,111,114,121,126,134,148,177,235,239,246,256,312,316,318,319,321,335],reverseerror:[267,276],reversemanytoonedescriptor:[148,246,335],reverseproxyresourc:312,revert:[43,90,126,131,156,238],review:[0,31,37,41,64,70,128,135],revis:61,revisit:[36,328],reviu:51,revok:58,revolutionari:131,rework:[29,61,201],rewritemim:70,rfc1073:283,rfc858:289,rfc:[283,289],rfind:321,rgb:[114,321],rgbmatch:321,rhel:8,rhostmush:[57,108,129],rhs:[25,58,167,168,170],rhs_split:[159,165,167,168],rhslist:[167,168],ricardo:344,riccardomurri:344,rich:[22,57,78,79,325],richard:79,rick:109,rid:[56,119,139],riddanc:12,ridden:[1,96],riddick:188,ride:121,right:[0,5,8,10,14,20,21,23,25,28,29,33,38,39,41,42,43,46,51,55,56,57,58,60,61,63,68,74,75,76,80,85,87,90,91,96,101,102,109,111,114,117,119,121,123,126,127,128,133,134,137,138,145,153,156,159,167,168,175,181,187,188,190,195,196,203,221,224,227,231,232,233,235,242,250,252,256,307,321,322,326,330,344,345],right_justifi:[109,250],rigid:57,rindex:321,ring:205,ripe:96,rise:[31,62],risen:62,risk:[38,43,57,63,90,123,138,158,169],rival:111,rjust:321,rm_attr:159,rnormal:114,rnote:[43,169],road:[31,46,111,121,152],roadmap:[45,139,364],roam:[122,153,231],roar:111,robot:[77,133],robust:[85,91,103],rock:[6,60,86,116,124,153],rocki:122,rod:153,role:[17,23,55,57,61,73,91,217],roleplai:[9,11,57,61,68,73,79,116,123,139,185,206,364],roll1:73,roll2:73,roll:[11,58,61,63,73,91,114,116,123,185,217,218,219,220,221,310],roll_challeng:73,roll_dic:185,roll_dmg:73,roll_hit:73,roll_init:[217,218,219,220,221],roll_result:185,roll_skil:73,roller:[73,116,185],rom:79,roof:[43,159],room1:127,room56:13,room:[9,12,13,14,15,20,21,22,27,31,33,42,43,44,45,46,53,55,56,57,59,62,63,64,73,77,80,85,91,96,102,104,108,109,111,112,116,117,118,119,120,121,122,123,124,125,127,129,132,133,140,141,142,150,151,152,153,157,159,165,170,178,180,182,185,187,194,197,200,206,212,213,214,217,218,219,220,221,229,230,231,232,234,235,241,247,256,271,299,322,342,360,364],room_count:119,room_dict:200,room_flag:56,room_lava:56,room_typeclass:[235,342,360],roombuildingmenu:[22,180],roomnam:[43,58,159],roomobj:119,roomref:121,root:[9,13,22,23,36,47,53,63,64,69,75,78,80,81,86,89,90,93,96,97,100,106,128,130,134,135,136,232,247,252,267,312,325],rose:[11,87,89,125],roster:[9,217,218,219,220,221],rosterentri:9,rot:127,rotat:337,rotatelength:337,roughli:[58,61,94,96,344],round:[17,205,221,330],rounder:205,rout:[5,20,49,56,121,137,144],router:90,routin:[206,302,341,344],row:[0,3,16,25,38,49,58,64,69,86,111,114,116,126,137,330,344],rpcharact:206,rpcommand:206,rpg:[58,60,73,124,185,221],rpi:79,rplanguag:[141,142,178,206],rpm:63,rpobject:206,rpsystem:[38,141,142,178,202,205],rpsystemcmdset:206,rred:321,rsa:[287,288],rspli8t:91,rsplit:[123,321],rsrc:70,rss2chan:[98,164],rss:[7,43,55,79,128,139,141,142,146,164,172,262,272,275,285,364],rss_enabl:[98,164],rss_rate:146,rss_update_interv:[43,164],rss_url:[43,98,146,164],rssbot:146,rssbotfactori:286,rsschan:[43,164],rssfactori:286,rssreader:286,rst:38,rstrip:[91,321],rsyslog:209,rtest2:114,rtext:85,rthe:22,rthi:114,rtype:312,rubbish:[43,156],rubi:64,rudimentari:231,ruin:[122,187,233],rule:[12,13,14,21,33,47,55,58,61,68,77,79,80,96,114,124,126,127,131,139,180,204,205,217,218,221,239,322,364],rulebook:116,rumour:122,run:[0,2,3,5,6,8,9,10,11,13,14,15,20,21,23,24,26,27,28,29,31,35,36,38,40,43,45,46,47,51,53,54,56,57,59,60,61,62,63,64,67,68,69,72,73,76,79,80,81,83,85,86,90,91,92,93,95,96,97,101,102,103,104,109,110,111,115,119,121,122,123,124,125,126,128,130,131,132,133,134,136,137,138,139,141,144,146,150,151,153,154,158,159,164,165,166,169,170,174,175,195,196,201,206,209,213,215,217,218,219,220,221,227,230,235,241,242,247,251,252,256,258,259,261,267,271,273,277,284,285,292,296,298,301,305,306,310,312,318,321,322,326,328,329,331,337,341,342,344,362,363,364],run_async:[10,344],run_connect_wizard:267,run_dummyrunn:267,run_exec:328,run_exec_then_goto:328,run_init_hook:305,run_initial_setup:305,run_menu:267,run_start_hook:[60,125,318],runexec:328,runexec_kwarg:328,runnabl:109,runner:[36,106,232,298],runsnak:93,runtest:[170,196,211,228,293,303,335,342,352,360],runtim:[12,27,33,62,154,180,234,331,344],runtimeerror:[73,144,146,192,195,198,204,205,251,259,285,316,328,336,344],runtimewarn:251,rusernam:51,rush:29,rusti:85,ruv:36,ryou:22,sad:[133,290],safe:[11,26,30,31,43,46,56,60,64,82,89,97,104,131,133,144,156,179,227,242,261,276,308,312,318,322,325,334,344],safer:[12,13],safest:[0,90,105,318],safeti:[2,43,56,89,90,123,125,139,159,179,246,322],sai:[0,5,6,10,12,14,17,20,22,25,26,27,29,31,33,39,40,41,44,46,51,56,57,58,60,61,62,63,64,69,73,77,78,80,89,90,91,93,96,109,114,116,117,118,119,123,125,126,127,128,129,131,137,138,139,140,153,165,179,181,185,188,197,198,205,206,215,227,233,247,328],said:[0,4,10,22,26,43,44,46,49,51,57,83,91,96,111,112,118,127,134,151,164,168,197,206,235,247,279,318,328],sake:[13,43,57,126,135,171,186,362],sale:85,same:[0,2,5,6,9,10,11,12,13,14,15,16,19,20,21,22,23,26,27,28,29,31,33,34,37,38,40,41,42,43,44,50,55,57,58,59,60,61,62,63,64,66,69,73,74,78,80,81,83,84,85,86,88,89,90,91,95,96,97,98,100,102,104,105,106,108,109,110,111,112,113,114,115,116,119,121,123,125,126,127,128,131,133,134,136,138,144,150,151,152,153,154,157,159,167,168,169,170,175,180,182,184,187,190,194,195,199,204,205,206,212,214,215,217,218,219,220,221,224,231,233,234,235,241,247,251,252,256,257,261,271,276,288,291,292,306,307,308,310,312,315,316,317,318,319,321,322,324,328,329,330,331,337,338,344,357,362],sampl:[8,36,56,100,215],san:190,sand:62,sandi:111,sane:[61,79,96,362],sanit:[357,362],saniti:[9,49,111,127,139,338],sarah:[43,129,165],sat:[21,140],satisfi:[108,167,316],satur:103,save:[0,1,9,15,21,22,24,27,29,33,34,36,41,42,43,46,48,50,51,54,56,64,67,84,86,87,89,95,97,100,102,103,105,107,109,110,112,115,116,123,125,127,131,133,138,144,145,156,159,169,173,175,176,177,180,195,205,242,244,246,247,249,251,252,254,257,259,260,261,265,272,285,299,300,305,312,315,316,318,325,326,334,338,339,340,344],save_a:[173,237,244,254,263],save_as_new:315,save_buff:326,save_data:338,save_for_next:[33,154],save_handl:338,save_kwarg:339,save_model:[145,173,244,254],save_nam:261,save_on_top:[173,237,244,254,263],save_prototyp:251,save_recip:203,savefunc:[50,326,339],savehandl:339,saver:325,saverdict:325,saverlist:325,saverset:325,saveyesnocmdset:326,saw:[10,46,69],say_text:118,saytext:206,scale:[23,57,61,73,106,114,205],scalewai:90,scan:[8,150,231,233],scarf:182,scatter:[219,322],scedul:331,scenario:58,scene:[11,21,38,55,59,61,73,74,97,109,112,114,116,122,126,204,233,256,261,334],schedul:[27,62,184,195,331],schema:[4,64,86,125,131,344],scheme:[28,33,43,63,86,114,159,169,321],scienc:[49,124],scientif:79,scissor:116,scm:9,scope:[29,55,64,74,124,134,138,204,324],score:[58,60,344],scraper:362,scratch:[40,46,57,58,61,63,123,124,128,136,139],scream:122,screen:[7,16,18,33,43,51,52,61,66,74,81,85,97,100,101,104,105,109,114,127,133,138,139,145,171,186,190,201,221,250,272,287,329,344,364],screenheight:[74,272],screenread:[74,272,295,296],screenshot2017:101,screenshot:[55,133,139,364],screenwidth:[74,154,272],script:[6,11,13,14,20,27,36,45,47,53,55,56,57,59,61,62,63,71,80,84,85,86,89,90,93,103,104,105,106,107,108,109,110,112,115,116,117,119,120,122,125,130,132,133,137,138,139,141,142,144,146,158,159,169,177,178,179,184,187,191,192,198,203,204,205,213,217,218,219,220,221,223,224,226,227,233,235,241,246,247,251,252,267,300,305,322,323,324,331,339,341,342,344,360,364],script_path:[43,159],script_search:59,script_typeclass:[228,342,360],scriptattributeinlin:254,scriptbas:259,scriptclass:258,scriptdb:[53,119,125,141,254,256,314],scriptdb_db_attribut:254,scriptdb_db_tag:254,scriptdb_set:[148,246,316,319],scriptdbadmin:254,scriptdbmanag:[255,256],scripthandl:[141,142,253],scriptkei:[43,159],scriptmanag:255,scriptnam:323,scripttaginlin:254,scroll:[20,45,52,63,77,95,96,97,123,138,329],scrub:308,scrypt:102,sdesc:[56,202,206],sdesc_regex:206,sdescerror:206,sdeschandl:206,sdk:63,sea:[111,122],seamless:206,seamlessli:[92,102],search:[0,2,9,13,21,22,30,33,41,42,43,48,50,55,58,59,60,64,68,70,73,76,87,89,94,96,102,104,109,116,123,124,125,127,131,134,136,139,140,141,142,144,150,152,154,159,166,169,176,179,194,199,203,206,217,218,219,220,221,233,235,238,239,241,247,250,251,258,273,316,317,318,319,320,321,324,326,344,363,364],search_:[27,59],search_account:[58,107,119,141,247,341],search_account_attribut:119,search_account_tag:[119,341],search_at_multimatch_input:247,search_at_result:[206,247],search_attribute_object:119,search_channel:[41,119,141,176,341],search_channel_tag:[119,341],search_field:[173,237,244,254,263,315],search_for_obj:159,search_help:[119,141,238],search_help_entri:341,search_helpentri:238,search_index_entri:[154,156,157,158,159,164,165,166,167,168,169,170,171,174,179,180,181,182,185,186,187,188,189,193,199,200,201,202,203,206,212,213,214,215,217,218,219,220,221,224,231,232,233,234,239,247,326,328,329],search_messag:[119,141,176,341],search_mod:206,search_multimatch_regex:247,search_object:[11,13,27,111,119,121,125,141,144,341],search_object_attribut:119,search_objects_with_prototyp:251,search_prototyp:251,search_script:[59,102,119,141,341],search_script_tag:[119,341],search_tag:[48,112,119,140,141,341],search_tag_account:112,search_tag_script:112,search_target:199,searchabl:194,searchdata:[144,206,247,341],searchstr:68,season:[61,187],sec:[10,29,62,74,184,279,331],secmsg:337,second:[0,10,11,14,16,21,22,25,27,29,31,33,38,39,41,43,51,62,63,69,80,85,86,88,90,91,95,100,102,103,104,109,110,114,115,116,119,120,121,123,126,127,132,134,144,146,151,159,184,194,195,198,200,206,213,217,218,219,220,221,223,227,231,241,247,252,259,261,267,272,281,286,299,310,321,324,328,331,337,344,345],secondari:[81,307],secondli:89,secreci:131,secret:[9,23,65,71,185,267],secret_kei:9,secret_set:[4,9,23,65,267],sect_insid:49,section:[1,4,9,11,15,18,21,22,23,25,26,29,31,33,35,36,38,39,40,48,51,58,60,62,63,68,69,75,77,80,86,89,90,93,95,96,100,111,113,119,124,125,127,133,137,138,139,187,205,252,321,322,328,345],sector:49,sector_typ:49,secur:[7,11,13,22,26,37,41,43,57,63,80,85,90,96,108,109,114,123,133,134,139,141,142,158,169,175,178,239,247,287,318,337,357,364],secure_attr:80,sed:36,sedcond:260,see:[0,1,2,3,4,5,8,9,10,11,12,13,14,19,20,21,22,23,25,26,27,28,29,30,31,32,33,34,35,37,38,39,40,41,42,43,44,46,48,49,50,51,52,53,55,56,57,58,59,60,61,62,63,64,65,68,70,71,72,74,75,76,80,81,82,83,86,87,88,89,90,91,93,95,96,98,100,101,102,103,104,105,106,108,109,110,111,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,130,131,132,133,134,135,136,137,138,139,144,154,156,158,159,164,165,166,167,168,170,175,177,178,179,180,186,190,192,199,203,204,205,206,210,213,214,215,217,218,219,220,221,223,224,226,231,233,234,235,241,246,247,260,265,267,269,270,278,279,280,281,283,287,288,290,292,294,295,296,298,299,307,308,312,316,321,324,325,326,327,330,336,339,340,344,351,357,362],seek:[122,242,337],seem:[4,22,24,31,39,41,56,61,63,75,94,109,110,119,121,122,123,137,138,316,322],seen:[0,22,29,31,34,40,46,49,51,57,58,69,81,91,95,96,102,105,111,119,120,121,126,127,131,180,251,279,330],sefsefiwwj3:9,segment:[121,312],seldomli:[154,170],select:[2,20,22,27,31,38,43,51,54,63,69,77,80,85,86,104,105,106,111,119,120,123,131,133,137,138,140,151,152,157,166,215,218,318,326,328],selet:328,self:[0,1,2,5,6,9,10,11,13,20,21,22,25,27,28,29,30,31,33,38,39,40,41,42,43,44,49,50,51,56,57,58,59,60,62,63,71,72,73,76,77,80,81,82,85,86,87,89,95,96,102,109,115,116,117,118,119,120,121,123,125,127,129,132,134,144,146,148,150,152,153,154,156,159,160,164,167,168,169,170,174,175,177,179,180,181,182,185,187,188,192,197,199,200,202,203,206,215,217,218,219,220,221,223,224,227,230,231,232,233,234,235,241,247,259,260,265,267,269,270,274,278,279,285,287,288,290,292,294,295,296,306,307,308,316,318,319,321,326,328,329,334,336,338,339,340,344,351],self_pid:344,selfaccount:58,sell:[78,85,179],semi:[93,132,138,205],semicolon:[80,242,324],send:[2,12,22,25,27,29,33,34,41,43,51,52,58,59,61,64,67,70,71,73,74,76,80,81,83,89,91,93,95,96,102,103,105,107,110,113,114,115,116,118,120,123,126,133,137,138,139,140,144,146,150,153,154,157,164,168,174,175,176,177,179,188,189,199,206,210,221,223,230,231,241,247,260,261,264,267,269,270,272,276,277,278,279,280,282,285,286,287,289,290,291,293,295,296,298,306,307,308,309,321,324,325,328,330,344],send_:[40,83,285],send_adminportal2serv:277,send_adminserver2port:264,send_authent:278,send_channel:[278,279],send_default:[40,83,278,279,285,287,290,295,296],send_defeated_to:231,send_emot:206,send_functioncal:276,send_game_detail:269,send_heartbeat:278,send_instruct:267,send_mail:199,send_msgportal2serv:277,send_msgserver2port:264,send_p:279,send_privmsg:279,send_prompt:[287,290,295,296],send_random_messag:223,send_reconnect:279,send_request_nicklist:279,send_status2launch:277,send_subscrib:278,send_testing_tag:230,send_text:[40,83,287,290,295,296],send_unsubscrib:278,sender:[34,41,43,107,144,146,164,175,176,177,179,206,247,278,309,334,341],sender_account_set:148,sender_extern:177,sender_object:309,sender_object_set:246,sender_script_set:256,sender_str:175,sendernam:[43,164],senderobj:324,sendlin:[287,290,295],sendmessag:[40,188],sens:[1,10,22,31,37,56,58,80,86,89,96,102,121,138,152,224,324,325,328],sensibl:[90,271],sensit:[11,51,58,80,176,180,184,187,195,210,211,238,317,331,341],sensivit:204,sent:[25,34,51,58,69,74,83,88,91,105,107,113,114,119,137,138,144,146,150,164,166,170,175,176,177,180,186,188,195,197,199,210,228,234,247,264,267,269,272,276,277,278,279,287,291,295,306,308,316,328,336,341],sentenc:[46,91,198,205,206],sep:[321,344],sep_kei:[22,180],separ:[8,11,13,14,20,23,29,31,33,37,40,43,46,48,51,57,58,61,62,64,71,72,75,77,80,84,85,86,87,89,91,92,93,95,96,98,101,102,103,105,106,112,114,115,119,121,123,126,129,131,133,136,137,138,140,151,153,154,159,165,166,167,168,169,175,180,195,198,199,205,206,215,217,218,219,220,221,224,233,235,238,242,246,247,251,257,261,286,291,296,308,321,322,324,327,336,341,344],separatli:29,seq:87,sequenc:[10,13,14,15,33,64,80,81,87,89,113,126,154,158,184,201,206,242,265,271,321,322,328,330,343,344],seri:[51,61,79,114,131,136,138,226,330],serial:[11,83,138,250,261,285,325,338,340],serializ:296,seriou:[39,110],serious:63,serv:[45,49,55,64,83,101,103,104,111,135,152,219,296,312,322,324,355],server:[0,2,4,9,10,11,12,13,15,19,21,25,26,27,28,29,31,33,34,35,36,37,38,40,41,45,47,51,53,54,55,56,57,58,59,60,62,63,64,65,66,67,69,70,71,72,73,74,75,78,79,80,81,83,84,86,88,89,91,93,94,95,96,97,100,101,102,103,106,107,109,110,111,113,114,115,116,118,121,122,124,125,127,128,130,131,133,134,135,136,137,138,139,141,142,144,146,153,157,159,164,169,171,175,178,180,183,186,187,195,201,202,206,207,208,209,212,213,227,231,232,233,235,247,256,257,258,259,261,313,318,322,324,325,328,331,334,337,344,346,363,364],server_connect:285,server_disconnect:285,server_disconnect_al:285,server_epoch:[27,331],server_l:277,server_logged_in:285,server_nam:104,server_pid:[277,344],server_receive_adminportal2serv:264,server_receive_msgportal2serv:264,server_receive_statu:264,server_reload:[257,261],server_run:267,server_runn:305,server_servic:344,server_services_plugin:[40,104],server_services_plugin_modul:40,server_session_class:105,server_session_sync:285,server_st:267,server_twistd_cmd:277,server_twisted_cmd:277,serverconf:[157,261],serverconfig:[260,261,273,274],serverconfigadmin:263,serverconfigmanag:[273,274],serverfactori:[277,287,290],serverload:[43,169],serverlogobserv:337,servermsg:337,servernam:[4,8,9,54,74,90,104],serverprocess:[43,169],serversess:[40,105,114,141,142,210,242,262,285,308,316],serversessionhandl:[40,105,308],serverset:[43,80,164,241],servic:[12,23,40,45,67,71,90,94,100,103,104,110,131,133,141,142,169,262,264,267,268,276,277,284,305,312,344],sessdata:[307,308],sessid:[2,33,105,123,246,247,264,276,277,285,308],session:[2,12,15,24,31,33,40,45,47,51,53,57,70,74,81,84,88,89,91,96,100,107,114,123,127,138,139,141,142,144,146,148,150,151,152,154,156,157,160,162,166,167,171,186,188,189,197,209,210,211,230,246,247,249,250,251,257,262,264,272,276,277,278,279,285,286,287,290,295,296,305,306,308,310,326,328,329,336,344,345,364],session_data:308,session_from_account:308,session_from_sessid:308,session_handl:[105,141],session_portal_partial_sync:308,session_portal_sync:308,sessioncmdset:[31,43,162],sessionhandl:[40,83,141,142,144,247,262,272,278,279,285,286,306,307],sessionid:285,sessionobject:336,sessions_from_account:308,sessions_from_charact:308,sessions_from_csessid:[285,308],sessions_from_puppet:308,sesslen:247,set:[0,2,3,6,7,8,10,11,12,13,14,15,16,17,19,20,21,22,23,24,25,26,27,29,30,32,33,34,35,36,37,38,39,40,41,42,44,45,46,47,50,52,53,55,56,57,58,59,60,61,63,64,66,67,68,69,71,74,75,76,82,83,85,86,87,89,91,93,95,96,97,100,102,105,107,108,109,110,111,112,113,114,116,117,119,120,121,124,125,126,128,129,130,133,134,135,136,137,138,139,141,143,144,146,148,150,151,152,153,154,156,157,159,160,161,162,163,164,166,167,168,170,172,174,180,181,182,183,184,185,186,187,188,189,193,195,197,198,201,202,203,205,206,209,212,213,215,217,218,219,220,221,224,226,227,228,230,231,232,233,234,235,237,241,242,246,247,250,251,252,258,259,261,264,266,267,271,272,273,274,277,278,280,281,283,284,287,289,290,292,293,298,299,301,303,305,306,307,308,310,312,313,315,316,317,318,319,321,322,323,324,325,326,327,328,329,330,331,334,335,336,337,338,339,340,341,342,343,344,345,350,357,360,364],set_active_coordin:235,set_al:231,set_alias:154,set_attr:159,set_cach:316,set_class_from_typeclass:318,set_dead:231,set_descript:51,set_detail:[187,233],set_game_name_and_slogan:350,set_gamedir:267,set_kei:154,set_nam:51,set_password:144,set_task:195,set_trac:[42,141],set_webclient_set:350,setcolor:81,setdesc:[57,165,212],setgend:189,sethelp:[20,68,166],sethom:159,setlock:212,setnam:40,setobjalia:[43,159],setperm:[43,157],setspe:213,sett:98,settabl:[74,86,290],setter:39,settestattr:50,settingnam:80,settings_chang:107,settings_default:[4,5,34,47,104,127,141,142,344],settings_ful:104,settings_mixin:[141,142,262,297],settl:[111,116],setup:[5,15,18,26,40,47,61,63,67,71,85,93,96,100,116,120,127,129,131,138,139,144,156,164,170,184,196,224,228,230,233,247,259,271,284,293,298,302,303,305,312,316,318,334,335,342,360,364],setup_str:302,setuptool:[63,75],sever:[0,11,14,19,22,29,31,33,36,41,42,43,48,50,52,55,56,57,59,62,69,79,80,102,104,109,113,116,119,125,137,158,159,167,168,169,187,194,195,231,233,247,293,294,319,324],sex:189,shall:[126,134],shaman:[57,109],shape:[20,22,39,58,61,111,235,330],sharabl:109,share:[9,25,31,36,37,42,46,57,59,63,64,65,80,86,90,102,103,105,112,116,119,125,133,135,145,194,195,252,261,298,316,317,319,330,344,351],sharedloginmiddlewar:351,sharedmemorymanag:[317,333],sharedmemorymodel:[177,239,316,318,334,335],sharedmemorymodelbas:[148,177,239,246,256,316,318,334,335],sharedmemorystest:335,shaw:[77,79],she:[0,22,33,56,91,126,180,189,205],sheer:[43,159],sheet:[23,38,51,133,134,137,327],sheet_lock:58,shell:[7,23,25,26,36,57,58,59,60,63,75,86,87,90,100,103,108,110,125,128,287],shield:[29,77,86],shift:[14,15,27,108,195,232,238,344],shiftroot:232,shine:[21,233],shini:344,ship:[55,64,75,79,111],shire:62,shirt:182,shoe:182,shoot:[21,220,221,327],shop:[51,57,108,124,139,364],shop_exit:85,shopcmdset:85,shopnam:85,shopper:85,short_descript:54,shortcom:85,shortcut:[0,3,22,23,27,29,31,33,38,43,47,59,69,91,96,100,107,116,119,125,129,133,134,141,146,153,154,159,180,192,235,242,247,338,344],shorten:[42,46,125,252],shorter:[40,61,104,108,117,118,125,132,175,205,317,324,337],shortest:[39,206],shorthand:[43,89,126,159],shortli:[0,22,77],shot:220,should:[0,1,2,3,4,5,6,8,9,10,11,12,13,14,15,16,19,20,22,23,24,25,26,27,29,31,33,34,37,38,39,40,41,42,43,46,47,48,51,55,57,58,59,60,61,62,63,64,65,66,67,68,69,72,73,74,75,76,77,80,81,82,83,85,86,88,89,90,91,93,94,95,96,97,98,100,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,119,121,122,123,124,125,126,127,128,129,130,131,133,134,135,136,137,138,139,140,144,146,148,150,152,153,154,156,158,159,160,163,166,167,169,170,174,175,177,180,182,184,187,192,195,197,198,199,200,202,203,204,205,206,209,217,218,219,220,221,224,227,230,231,233,234,241,242,246,247,249,250,251,252,256,258,259,260,261,265,266,267,271,274,278,284,287,290,291,293,295,296,299,305,306,307,308,310,311,313,315,316,318,319,321,322,324,325,326,328,329,330,331,336,337,338,339,340,342,344,345,357,360,362],should_join:175,should_leav:175,should_list_cmd:166,shoulddrop:[221,247],shoulder:[58,182],shouldget:[221,247],shouldgiv:[221,247],shouldmov:[197,217,218,219,220,221,247],shouldn:[0,13,21,22,29,41,48,58,93,126,166,180,195,198,220,298],shouldrot:337,shout:29,shove:21,show:[0,12,13,14,20,22,24,26,27,30,33,35,37,38,39,40,42,43,46,48,49,52,54,55,57,58,60,61,62,63,64,68,69,70,71,73,81,82,85,86,90,91,95,96,97,98,101,102,103,104,105,106,110,111,114,116,117,118,119,120,122,124,126,127,128,129,131,133,134,136,137,138,139,144,156,157,159,164,165,167,169,171,179,181,182,185,186,187,188,190,202,215,220,221,226,233,234,235,247,249,251,252,265,267,276,326,328,337,338,339,344,357],show_foot:329,show_map:49,show_non_edit:251,show_non_us:251,show_valu:190,show_version_info:267,show_warn:267,showcas:[31,111,200],shown:[0,4,9,22,25,29,35,41,43,49,51,54,57,62,68,109,114,121,133,138,154,157,164,166,168,170,180,182,204,206,232,247,267,328,329],showtim:62,shrink:330,shrug:46,shrunk:101,shuffl:27,shun:[26,90,108],shut:[0,4,29,43,93,100,102,104,137,144,169,247,259,261,267,269,276,277,284,285,305,308],shutdown:[12,19,31,58,93,102,105,110,144,146,169,261,267,276,277,284,305,306,318,324,328],shy:[26,61,129],sibl:[10,57,96,102],sid:[43,157],side:[0,1,11,24,36,38,43,48,49,58,73,74,83,91,105,112,119,126,127,133,137,138,144,146,148,165,167,168,177,179,185,212,239,246,256,264,276,277,285,288,291,292,295,306,307,308,316,318,319,321,330,335],sidestep:19,sidewai:330,sigint:267,sign:[0,14,20,46,83,90,91,106,115,123,132,187,247,261,316,321,345],signal:[45,93,110,139,141,142,217,218,219,220,221,262,267,290,296,298,334,364],signal_acccount_post_first_login:107,signal_account_:107,signal_account_post_connect:107,signal_account_post_cr:107,signal_account_post_last_logout:107,signal_account_post_login:107,signal_account_post_login_fail:107,signal_account_post_logout:107,signal_account_post_renam:107,signal_channel_post_cr:107,signal_helpentry_post_cr:107,signal_object_:107,signal_object_post_cr:107,signal_object_post_puppet:107,signal_object_post_unpuppet:107,signal_script_post_cr:107,signal_typed_object_post_renam:107,signatur:[33,73,154,177,192,260,265,267,269,270,278,287,288,290,292,295,296,316,321,328,336,339,340,351],signed_integ:345,signedinteg:338,signedon:279,signifi:[14,241,316],signific:97,significantli:50,signup:4,silenc:269,silenced_system_check:127,silent:[10,43,62,118,157,164,271,279],silli:[60,89,96,109],silvren:[55,90],similar:[0,11,13,20,21,22,25,33,41,48,51,55,58,64,67,68,73,77,86,89,90,96,102,106,121,125,129,136,137,140,144,154,156,170,180,188,197,205,217,218,219,220,221,235,239,247,308,319,324,328,344,362],similarli:[58,62,90,112,218,234,315],simpl:[0,2,4,5,6,9,10,13,14,15,17,25,26,28,30,31,33,35,38,39,40,41,43,46,49,50,55,56,57,58,59,60,61,64,67,69,70,73,74,76,77,81,85,86,88,89,90,91,95,96,98,100,103,105,108,109,111,112,116,117,118,119,120,122,123,124,126,132,133,135,139,159,174,179,180,181,186,187,188,189,194,197,199,203,204,205,206,212,213,214,215,217,218,219,220,221,223,224,231,232,233,235,236,246,247,250,252,259,277,286,288,322,323,354,355,357,364],simpledoor:[141,142,178],simplemu:24,simpler:[10,15,38,43,51,56,158,159,325,362],simpleresponsereceiv:269,simplest:[6,29,58,73,90,116,153,322,345],simpli:[5,8,11,12,13,17,20,21,22,23,25,29,31,37,38,39,40,41,47,49,51,55,58,59,61,63,71,72,73,80,81,83,85,96,102,103,104,109,112,114,118,121,123,125,127,128,131,132,138,140,144,152,153,154,170,171,174,175,180,186,187,196,197,200,206,213,215,217,218,219,220,221,224,232,239,247,285,316,318,322,323,327,329,344],simplic:[22,39,43,55,126,171,186,232],simplif:[45,116],simplifi:[10,69,94,100,111,116,118,192],simplist:[116,123,132,137,205,214],simul:[33,73,93,213],simultan:[58,88,116,344],sinc:[0,1,3,4,5,6,9,10,11,13,14,19,21,22,23,25,26,27,28,29,31,33,34,35,38,39,40,41,42,43,44,47,48,49,50,51,54,55,56,57,58,59,60,61,62,64,69,74,76,80,83,84,85,86,88,89,90,91,96,97,100,102,104,110,111,114,115,116,118,119,121,122,123,125,126,127,131,133,134,135,138,144,146,148,152,153,154,159,167,168,169,175,176,179,180,181,184,187,199,206,215,217,218,219,220,221,227,232,233,241,247,251,252,257,261,267,269,272,284,289,291,299,305,306,308,310,315,316,317,318,322,323,324,326,328,331,334,337,340,341,342,344,357],singl:[0,5,10,14,16,22,23,31,33,37,38,43,44,48,51,55,57,58,59,61,64,67,73,77,83,87,88,90,95,96,105,108,111,112,114,119,122,125,127,128,129,139,144,150,157,159,165,176,177,180,204,209,215,217,218,219,220,221,233,234,235,247,251,252,261,299,306,308,316,317,319,321,322,327,328,330,336,341,344,357],single_type_count:182,singleton:[84,105,115,174,257,260,323],singular:[58,61,247],sink:26,sint:52,sir:46,sit:[11,14,29,33,47,55,63,80,83,90,95,96,119,121,123,125,167,198,199,206,224,232,233,242,258,261,280,324,339,342],sitabl:125,sitat:233,site:[8,16,17,23,37,69,71,79,80,90,92,97,98,100,101,103,111,133,134,145,312,362],site_nam:59,situ:[11,318,325],situat:[0,6,11,22,33,37,42,43,46,62,76,83,86,102,105,119,125,131,153,154,159,194,334],six:[73,91,185,215],sixti:62,size:[16,24,42,49,58,97,101,108,111,137,138,141,235,269,283,321,327,329,330,334,337,344],size_limit:344,skeleton:123,sketch:[116,138],skill:[28,29,30,55,60,61,70,73,79,110,116,121,127,133,134,205,206,327],skill_combat:73,skillnam:73,skin:109,skip:[31,33,41,43,49,51,61,62,75,88,100,106,109,115,131,144,158,159,200,247,316,325],skipkei:296,skippabl:129,skull:109,sky:[102,132],slack:79,slam:188,slash:[20,38,41,55,73,116,122,232],slate:111,sleep:[10,29,33,73],slew:[61,73,75,322],slice:[119,156,321,329],slice_bright_bg:156,slice_bright_fg:156,slice_dark_bg:156,slice_dark_fg:156,slight:[8,91,184,195],slightli:[42,62,63,79,116,123,145,177,187,218,234,362],slightly_smiling_fac:138,slip:343,slogan:9,slot:[58,134,187,188,218,220,252,344],slow:[27,116,176,213,231,235,251,280,286,321,341,344],slow_exit:[141,142,178],slower:[62,77,90,93],slowexit:213,slowli:79,slug:[175,239,318,362],slugifi:362,small:[4,14,15,16,25,30,33,37,55,57,58,61,63,69,70,79,81,85,90,91,93,96,97,98,108,111,122,123,124,127,128,139,185,220,224,235,290,326,327,330,344],smaller:[13,14,16,38,101,330],smallest:[58,62,80,90,184,205,327,344],smallshield:86,smart:[41,77,91,235],smarter:109,smash:[61,224,227],smell:61,smelli:109,smile:[33,43,165],smith:327,smithi:29,smoothi:203,smoothli:134,smush:48,snake:136,snap:82,snapshot:131,snazzi:78,sneak:242,snetworkmethodssupportunicodeobjectsaswellasstr:94,snippet:[10,13,21,31,43,55,64,80,109,114,139,169,276,343,344],snoop:103,snuff:26,social:[55,71],socializechat:299,soft:[4,64,139,205,364],softcod:[129,139],softli:78,softwar:[36,63,90,131],solar:62,soldier:85,sole:[57,69,146],solid:[49,55,114],solo:[20,63,124],solut:[0,9,14,25,27,29,39,56,69,73,85,90,91,103,111,115,118,121,122,125,127,138,168,242],solv:[21,27,44,49,61,63,77,97,111,203,232],some:[0,3,4,5,6,8,9,11,12,13,14,15,16,20,21,22,23,24,25,26,27,28,29,31,33,36,37,38,40,42,43,45,46,48,49,50,51,55,57,58,60,61,62,63,64,67,69,70,72,73,74,75,77,78,79,80,82,83,85,86,87,89,90,91,94,95,96,97,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,121,122,123,124,125,126,127,128,131,133,134,136,137,138,139,144,153,154,159,161,165,168,169,175,176,179,180,181,186,195,197,198,204,205,212,215,218,219,220,221,226,227,230,232,233,234,235,242,247,251,252,256,269,271,276,279,305,316,318,321,322,327,328,331,334,337,338,344,357,362],some_long_text_output:329,somebodi:[0,138],somehow:[33,40,73,80,87,90,113,140,182,326],someon:[0,1,29,33,43,46,48,49,58,60,80,85,90,96,103,107,115,117,118,119,138,144,165,182,226,231,232,247],somepassword:23,someplac:231,someth:[0,3,4,6,8,9,10,11,12,14,20,22,23,25,27,29,30,33,38,39,40,41,43,44,46,49,51,52,56,57,58,59,60,61,62,64,65,67,68,69,70,71,72,73,75,80,82,83,85,86,89,90,91,93,95,96,102,104,107,108,109,111,114,115,119,123,125,127,128,129,133,134,135,137,138,139,144,152,154,159,165,166,167,179,180,182,189,197,198,200,204,206,213,217,218,219,220,221,232,233,234,235,242,247,252,306,318,322,328,329,338,344,362],sometim:[6,22,27,33,40,42,50,51,60,62,64,80,86,91,93,95,96,102,109,110,119,136,138,166],somewhat:[4,22,41,57,127,138,180],somewher:[0,12,37,43,73,80,90,109,121,125,131,159,175,239,318,344],soon:[42,61,69,72,96,100,105,127,226,296,344],sophist:[10,27,55,108,116],sorl:4,sorri:[80,242],sort:[3,6,11,31,39,49,59,61,64,69,73,83,84,90,105,110,112,116,117,135,140,179,190,217,218,219,220,221,233,247,252,256,316,317,318,328,344,357,362],sort_kei:296,sought:[144,151,175,239,247,316,318],soul:111,sound:[22,29,37,58,61,80,82,83,102,104,111,115,131,138,205,291],sourc:[0,4,9,10,12,15,16,17,20,21,22,23,27,31,36,37,46,47,55,57,60,63,64,67,68,72,75,76,79,88,89,94,96,97,108,122,127,128,130,131,134,139,141,144,145,146,147,148,150,151,152,153,154,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,173,174,175,176,177,179,180,181,182,184,185,186,187,188,189,190,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,209,210,211,212,213,214,215,217,218,219,220,221,223,224,226,227,228,230,231,232,233,234,235,237,238,239,241,242,244,245,246,247,249,250,251,252,254,255,256,257,258,259,260,261,263,264,265,266,267,269,270,271,272,273,274,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,298,299,300,302,303,304,305,306,307,308,310,311,312,315,316,317,318,319,321,322,323,324,325,326,327,328,329,330,331,333,334,335,336,337,338,339,340,341,342,343,344,345,349,350,351,352,355,357,359,360,362,363],source_loc:[25,77,96,117,197,232,233,235,247],source_object:[171,174,186],sourceforg:[280,281,291,294],sourceurl:279,south:[0,22,43,44,49,111,121,159,200,299],south_north:111,southeast:159,southern:111,southwest:[20,43,159],space:[9,20,21,22,25,33,35,38,41,43,46,48,49,51,57,68,80,87,91,95,102,109,111,114,116,118,126,129,137,138,151,154,159,165,167,168,170,171,174,200,202,205,206,221,232,247,250,311,318,321,322,327,328,330,336,343,344],spaceship:121,spacestart:343,spaghetti:[13,328],spam:[12,28,103,116,138,310],spammi:[12,116],span:[16,17,108],spanish:76,spare:[217,218,219,220,221],spatial:111,spawen:203,spawn:[47,53,55,93,120,122,137,138,141,157,159,203,218,219,249,250,251,252],spawner:[18,45,89,120,139,141,142,159,219,220,248,364],spd:134,speak:[0,15,19,41,43,46,60,94,96,113,117,118,126,133,165,197,206,241,247],speaker:[46,205,206],spear:109,special:[2,10,11,13,14,15,19,20,25,26,27,30,31,33,35,37,41,42,51,58,60,61,64,69,76,77,80,81,83,85,86,88,89,95,102,103,104,107,111,112,113,114,116,119,122,123,125,127,131,134,137,146,148,150,153,165,168,187,189,206,215,219,220,232,233,235,242,244,247,271,272,295,316,318,322,328,343],specif:[0,2,4,9,11,12,22,23,24,25,26,27,31,33,36,37,38,39,40,41,42,43,46,47,50,51,53,55,56,59,61,62,64,67,69,77,78,79,80,82,87,88,89,90,91,95,96,100,105,107,110,111,112,115,116,119,121,122,123,124,125,126,127,131,132,133,134,135,137,138,144,145,150,157,159,169,175,177,178,179,180,192,193,194,195,197,199,204,206,238,241,247,257,267,272,279,295,296,306,316,318,321,322,326,328,329,330,344,362],specifi:[3,11,12,16,19,21,22,27,29,31,38,39,43,46,49,51,54,58,62,63,68,83,84,86,88,90,91,98,100,102,103,105,109,111,112,114,115,119,123,127,134,136,150,151,159,166,175,180,182,183,185,187,188,192,194,195,199,203,204,206,215,218,219,220,235,241,242,247,250,251,252,257,278,304,316,319,321,322,324,327,328,331,338,339,340,344,357,362],spectacular:42,speech:[197,247],speechlock:241,speed:[11,47,62,82,86,87,93,116,134,213,252,285,319,341],spell:[15,19,28,57,60,109,112,215,220,252],spell_attack:220,spell_conjur:220,spell_heal:220,spell_nam:220,spellnam:220,spend:[39,89,91,119,217,218,219,220,221],spend_act:[217,218,219,220,221],spend_item_us:219,spent:220,sphinx:38,spin:[62,90],spit:[3,60,116],splashscreen:186,split:[9,25,31,33,41,58,91,104,105,111,118,121,123,131,136,138,151,167,168,184,232,235,249,293,308,321,322,331],split_2:138,split_nested_attr:159,splithandl:138,spoken:[0,46,72,197,205,206,247],spoof:315,spool:63,sport:87,spot:[57,64,144],spread:[70,73,109],spring:[82,124,187],sprint:213,sprofil:267,spunki:77,spyrit:24,sql:[7,36,56,57,64,86,125,139,302,364],sqlite3:[25,55,64,86,123,127,128,131,344],sqlite3_prep:305,sqlite:[23,86,128,305],sqllite:36,sqrt:39,squar:[38,39,129],squeez:86,src:[10,17,20,59,75,80,89,100,102,133,137,139,210],srcobj:[154,167],srun:271,srv:36,ssessionhandl:83,ssh:[9,25,40,55,64,83,90,94,105,110,141,142,262,275,306,307],ssh_interfac:90,ssh_port:90,sshd:103,sshfactori:287,sshprotocol:287,sshserverfactori:287,sshuserauthserv:287,ssl:[7,8,43,55,64,67,83,88,94,141,142,146,164,262,275,279,292,307],ssl_context:[288,292],ssl_interfac:90,ssl_port:90,sslcertificatefil:8,sslcertificatekeyfil:8,sslciphersuit:8,sslengin:8,ssllab:8,sslprotocol:[8,288,292],ssltest:8,sslv3:67,sta:327,stab:[29,122,232],stabil:[61,170,205],stabl:[37,40,56,60,100],stabli:[97,261],stack:[13,31,61,121,137,145,152,153,227,247,251,308,328,336],stackedinlin:145,stackexchang:127,stackful:336,stackoverflow:127,stacktrac:[251,336],staf:108,staff:[9,19,25,57,61,68,73,80,108,109,111,123,133,152,252,322],staff_onli:239,staffer:9,staffernam:9,stage:[2,36,56,61,77,111,123,131,133,145,173,244],stagger:279,stai:[1,31,49,51,63,90,91,121,125,126,138,235],stale:[100,125],stalker:362,stamina:[30,190,220],stamp:[27,43,96,105,125,137,144,148,157,169,246,256,299,304,318],stanc:[116,206],stand:[13,17,20,21,22,25,29,38,43,49,56,61,63,72,73,80,86,90,95,96,111,116,121,122,123,127,131,133,138,165,179,197,206,231,247,256,261,298,319,322,324,330],standalon:[67,103],standard:[0,1,6,8,9,15,21,27,30,41,43,50,57,58,59,63,64,79,83,88,91,95,103,113,114,116,120,126,131,136,139,141,144,156,185,186,206,234,241,247,287,289,294,311,316,321,330,331,336,345,364],stanza:277,star:[43,159],stare:131,start:[0,1,2,3,4,5,7,12,13,14,15,16,18,20,21,23,25,26,27,29,31,33,34,38,39,40,41,42,43,44,45,47,48,49,50,51,54,55,57,59,60,61,62,64,65,66,67,69,70,72,73,74,75,76,77,79,80,83,84,86,87,90,91,93,95,96,97,98,101,102,103,104,105,106,107,108,109,111,114,116,119,120,121,123,124,125,127,128,130,131,132,133,136,137,138,139,144,146,151,152,158,159,164,165,167,168,169,170,174,179,180,185,187,188,189,190,195,197,200,201,205,206,215,217,218,219,220,221,226,227,230,231,233,235,247,249,250,251,256,258,259,260,261,264,267,269,271,272,277,278,279,280,284,285,286,291,292,298,304,305,308,312,317,321,322,323,324,326,328,329,330,331,336,337,344,363,364],start_all_dummy_cli:298,start_attack:231,start_bot_sess:308,start_delai:[102,116,120,121,227,256,259,261,324],start_driv:121,start_evennia:267,start_hunt:231,start_idl:231,start_lines1:267,start_lines2:267,start_loc_on_grid:49,start_olc:249,start_only_serv:267,start_ov:51,start_patrol:231,start_plugin_servic:40,start_portal_interact:267,start_serv:277,start_server_interact:267,start_sunrise_ev:62,start_text:215,start_turn:[217,218,219,220,221],startapp:[69,86,133,134],startclr:[114,336],startedconnect:[264,278,279],starter:[9,136],starthour:25,startnod:[51,85,188,230,249,328],startnode_input:[51,188,230,249,328],startproduc:269,startservic:[270,312],startset:233,startswith:[41,43,84,159,321],starttupl:287,startup:[11,35,40,60,62,90,102,104,136,247,256,296,305,337],stat:[17,43,60,61,71,85,116,123,133,134,136,139,169,179,217,218,219,220,221,364],state:[11,13,14,31,33,42,43,50,51,55,56,64,80,95,100,102,105,110,114,116,121,122,126,127,131,137,138,144,150,152,153,156,163,171,174,201,212,217,218,219,220,221,224,227,231,233,252,256,258,259,261,267,287,316,326,328],state_unlog:163,statefultelnetprotocol:[290,298],statement:[10,13,14,27,31,42,49,51,55,58,59,83,86,94,95,96,118,119,124,247,322,343],static_overrid:[135,136,137],static_root:136,statict:[43,169],station:121,stationari:231,statist:[3,12,43,104,105,120,124,135,169,190,300,317,334],statu:[20,29,51,58,61,88,90,104,105,115,131,175,179,219,220,221,231,261,265,267,276,277,278,281,295,364],status:61,status_cod:269,stderr:234,stdin_open:100,stdout:[59,100,234,267,337],steadi:64,steal:[43,85,166],steer:121,step1:29,step2:29,step3:29,step:[0,4,7,8,13,14,21,23,29,31,33,36,38,39,41,43,45,46,50,51,58,63,69,73,77,82,85,86,91,97,100,102,106,108,121,122,123,126,127,128,134,138,139,158,180,233,259,261,271,283,294,298,299,308,318,322,325,326,328,329,363,364],stick:[15,33,38,43,51,63,113,157],still:[0,1,4,6,9,11,13,14,15,19,20,22,25,26,29,31,33,37,38,39,40,41,43,49,55,57,58,60,62,63,64,77,78,79,83,91,94,95,96,102,103,105,106,107,108,110,114,121,122,123,125,126,128,131,134,138,152,159,164,166,186,197,215,217,218,219,220,221,230,233,235,247,251,258,299,328,330,331,340,344],sting:111,stock:[34,55,85,101,210,357],stolen:[103,321],stone:[20,33,60],stoni:60,stop:[7,9,10,12,14,20,25,27,29,34,41,42,43,49,51,57,58,62,63,67,74,77,80,82,89,90,93,95,96,100,102,104,105,106,108,115,116,120,121,123,128,137,139,156,159,164,169,179,184,194,196,197,206,212,213,218,221,226,227,247,258,259,261,266,267,269,272,284,285,305,306,312,321,322,324,344,364],stop_driv:121,stop_evennia:267,stop_serv:277,stop_server_onli:267,stopproduc:269,stopservic:[270,312],storag:[11,13,23,28,29,33,43,47,56,64,73,85,86,96,102,125,133,138,148,169,174,177,198,205,235,242,246,247,251,252,256,259,261,274,310,314,316,318,323,338,339],storage_modul:323,storagecontain:102,storagescript:102,store:[0,2,9,13,15,21,23,27,28,29,31,33,34,37,39,40,41,43,44,46,47,49,50,55,56,57,58,60,61,64,69,73,75,80,82,85,86,87,89,91,95,97,100,102,104,105,112,113,115,116,119,121,123,125,127,128,131,133,134,135,136,137,138,139,144,146,148,153,156,157,159,160,162,167,168,174,177,179,187,188,195,202,204,205,206,210,213,214,219,223,232,233,235,241,242,246,250,251,252,253,257,258,259,260,261,267,271,272,273,274,277,279,280,281,283,291,294,299,305,306,307,308,310,312,316,317,318,319,321,323,324,325,326,327,328,329,334,336,338,339,340,344,357,362],store_kei:261,store_result:48,store_tru:234,stored_obj:25,storekei:[85,261],storenam:85,storeroom:85,storeroom_exit:85,storeroom_kei:85,storeroom_key_nam:85,stori:[3,9,97,133],storm:[28,119],storypag:3,storytel:123,stove:247,str:[0,10,11,22,25,27,39,40,50,51,58,59,60,73,74,84,91,96,113,114,119,125,127,133,134,141,144,146,150,151,152,153,154,159,166,170,174,175,176,177,179,180,182,184,187,188,189,190,192,193,194,195,197,198,199,200,204,205,206,210,212,215,217,218,219,220,221,230,233,234,235,238,239,242,246,247,250,251,252,257,258,259,261,264,265,267,272,273,274,276,277,278,279,280,282,285,286,287,290,291,292,295,296,298,304,305,306,307,308,310,311,312,315,316,317,318,319,321,322,323,324,326,327,328,329,330,336,337,338,339,340,341,342,343,344,345,349,362],straight:[49,68,126],straightforward:[25,41,85,91,121,123],strang:[6,8,14,29,41,56,131,153],strangl:90,strategi:[42,221],strattr:[1,11,316],strawberri:234,stream:[106,276,280,306],streamlin:[36,179],strength:[11,57,58,60,61,73,80,116,134],stress:[93,298],stretch:111,stribg:344,strict:[10,251,321],stricter:251,strictli:[19,51,59,77,133,186,220,330],strike:[43,51,82,116,165,214,220,221],string1:344,string2:344,string:[5,9,11,12,13,15,19,20,22,23,25,27,29,31,33,34,35,38,41,42,43,49,50,54,55,57,58,59,60,62,68,71,76,82,83,84,86,87,88,89,90,93,95,96,97,104,109,111,112,113,114,115,116,119,124,125,127,129,133,134,137,138,139,141,142,144,146,148,150,151,154,157,159,165,166,167,168,169,170,174,175,176,177,179,180,182,186,188,197,198,199,200,203,204,205,206,210,211,215,217,218,219,220,221,230,231,235,238,239,240,241,242,246,247,250,251,252,256,259,261,267,269,272,276,279,287,290,291,293,299,304,306,308,311,315,316,317,318,319,320,321,322,324,325,326,327,329,330,336,337,338,340,341,342,343,344,345,362,364],string_from_modul:344,string_partial_match:344,string_similar:344,string_suggest:344,stringproduc:269,strip:[21,22,33,38,41,43,51,58,74,81,85,108,109,114,118,123,151,159,167,168,206,252,272,287,290,291,321,322,326,328,336,344],strip_ansi:[81,321,343],strip_control_sequ:344,strip_mxp:321,strip_raw_ansi:321,strip_raw_cod:321,strippabl:328,stroll:213,strong:[80,114,123,343],strongest:80,strongli:[64,73,95,124,205],strp:122,strr:204,struct:56,structur:[9,11,33,37,41,43,45,47,48,49,51,55,56,59,63,64,68,69,80,83,88,95,96,109,119,133,134,136,138,159,206,247,250,251,252,291,296,319,325,328,354,361,362],strvalu:[11,316,317],stuck:[51,63],studi:59,stuff:[3,9,11,21,29,31,37,38,47,49,51,57,61,67,73,80,85,96,102,105,107,109,119,138,153,159,189,234,261,305,350],stumbl:97,stupidli:34,sturdi:327,stutter:108,style:[3,16,20,21,27,33,37,38,40,41,45,51,55,57,58,61,79,87,95,106,111,114,116,122,124,129,138,148,154,156,167,182,183,188,199,201,217,234,247,251,326,330,344],styled_foot:154,styled_head:[33,154],styled_separ:154,styled_t:[33,154],sub:[9,11,36,37,38,57,65,69,88,90,108,109,116,119,137,138,143,149,172,173,178,180,206,234,236,238,240,243,250,252,253,262,314,320,321,343,346],sub_ansi:321,sub_app:133,sub_brightbg:321,sub_dblspac:343,sub_mxp_link:343,sub_text:343,sub_xterm256:321,subclass:[27,64,105,109,118,119,125,159,180,235,246,251,256,277,290,296,315,318,335,340,344],subdir:127,subdirectori:[37,127],subdomain:[8,90,103],subfold:[47,86,95,96,134,135],subhead:38,subject:[36,39,81,86,90,124,189,199],submarin:121,submenu:[106,180,249],submenu_class:180,submenu_obj:180,submiss:[188,357],submit:[17,37,103,133,188,357,362],submitcmd:188,submodul:291,subnegoti:291,subnet:[12,43,157],subpackag:[88,127],subprocess:[25,344],subreddit:79,subscrib:[12,33,34,41,43,53,58,64,80,115,128,132,146,164,174,175,176,219,261,278,309],subscript:[33,43,58,79,115,132,164,173,176,177,261],subsequ:[10,11,33,43,95,116,164,205,322,344],subsequent_ind:330,subset:[56,112,127],subsid:125,substitut:[51,71,87,106,247,321,343],substr:321,subsubhead:38,subsubsubhead:38,subsystem:[9,63,86,242],subtitl:17,subtract:[85,250],subturn:116,subword:344,succ:241,succe:[61,116,185],succeed:[185,234],success:[73,116,123,134,144,175,179,185,217,218,219,220,221,224,232,233,242,251,267,271,318,326,338,344,362],success_teleport_msg:233,success_teleport_to:233,success_url:362,successfuli:203,successfulli:[10,28,33,36,60,77,110,111,130,144,203,232,235,247,259,267,279,311,318,362],suddenli:[26,97,318],sudo:[63,67,100,103],suffic:[17,57,61],suffici:[86,90,94,119],suffix:[27,97,114,321,336,337,344],suggest:[1,23,25,37,38,48,51,52,55,61,68,70,90,95,97,125,138,140,151,166,179,197,206,233,247,344],suggestion_cutoff:166,suggestion_maxnum:166,suit:[29,34,55,64,117,139,170,344,362],suitabl:[21,25,33,37,55,63,64,80,83,87,88,90,112,131,152,242,301,308,324,328],sum:[37,82,91,139,153],summar:[0,79,139],summari:[0,7,46,79,96,110,123,180],summer:187,sun:62,sunris:62,sunt:52,super_long_text:329,superclass:145,superfici:205,superflu:343,supersus:242,superus:[2,4,5,6,9,12,13,14,19,20,21,23,25,41,43,58,60,63,81,95,96,111,122,134,144,148,158,169,175,182,200,212,231,241,242,247,252,267,318,322,324],supplement:51,suppli:[10,11,27,34,37,43,51,58,59,63,68,72,74,84,88,93,102,105,109,112,114,115,116,123,127,148,153,154,157,159,164,169,170,176,180,184,186,187,190,246,247,251,256,261,278,308,318,326,331,341,344],supporst:294,support:[2,4,7,8,9,11,23,26,33,37,38,40,42,43,44,47,49,50,51,56,57,58,61,63,64,65,66,70,74,75,76,81,83,86,87,90,91,94,98,100,103,109,110,113,114,123,126,139,156,165,183,184,185,187,198,234,241,247,250,251,252,261,272,280,281,282,283,287,289,290,291,292,294,296,307,316,321,325,328,329,330,336,341,344,349,364],supports_set:[74,272],suppos:[0,33,51,61,76,83,109,119,138,144,180],supposedli:[67,205,291],suppress:[24,289],suppress_ga:[141,142,262,275],suppressga:289,supress:289,sur:79,sure:[0,2,4,5,8,9,11,12,13,14,15,19,20,21,23,25,28,29,30,31,33,36,37,38,41,42,43,44,49,51,57,58,60,61,62,63,67,71,72,73,75,78,80,81,86,87,89,90,91,93,95,96,97,100,102,105,106,109,110,111,112,113,115,116,118,123,125,126,127,128,131,133,134,136,137,138,140,144,146,152,153,154,156,159,164,167,174,176,180,182,196,200,204,205,206,211,215,220,223,227,231,232,233,238,241,242,247,251,252,258,259,267,271,277,279,284,305,311,312,313,315,317,318,321,323,325,328,334,340,341,343,344,360,362],surfac:[58,82,103],surpris:[22,39,69,80,91],surround:[31,33,43,111,116,119,129,157,200,231,340,344],surviv:[5,11,27,28,31,43,50,51,84,102,105,115,116,126,146,153,169,180,256,257,261,324,326,328],suscept:[27,56,242],suspect:133,suspend:[100,103,106],suspens:102,suspici:51,suspicion:133,svn:[36,108],swallow:[96,118,276,343],swap:[43,114,127,137,138,159,187,202,318,326],swap_autoind:326,swap_object:318,swap_typeclass:[60,125,144,318],swapcas:321,swapcont:138,swapper:318,swedish:76,sweep:102,swiftli:10,swing:[28,29,33,82],switch1:129,switch2:129,switch_opt:[156,157,158,159,164,165,166,167,168,169,187],sword:[20,28,33,61,73,77,85,86,119,179,206,252,341,344],symbol:[14,15,33,49,75,106,108,119,200,215,235,329],symlink:[38,63],symmetr:330,sync:[64,83,105,131,174,285,290,305,306,307,308,316,325],sync_port:308,syncdata:[307,308],syncdb:127,synchron:337,syntact:[242,344],syntax:[5,6,13,14,15,21,22,23,29,33,41,43,46,48,51,55,58,60,62,76,80,91,97,114,119,123,129,134,141,142,154,158,159,167,168,170,180,185,187,188,234,242,247,267,279,306,318,320,321,336,364],syntaxerror:60,sys_cmd:152,sys_game_tim:59,syscmdkei:[33,53,141],syscommand:[141,142,149,155,247],syslog:209,sysroot:75,system:[0,2,4,5,9,10,11,19,21,22,23,26,27,28,29,31,34,36,37,38,39,40,41,44,46,47,49,53,55,56,59,60,62,63,64,67,74,75,76,77,79,81,83,84,85,86,87,90,93,95,97,102,103,104,105,107,108,109,110,111,112,114,115,119,121,122,125,126,127,128,129,131,132,134,136,138,139,140,141,142,145,146,148,149,150,152,154,155,156,158,166,168,170,172,175,176,177,179,180,182,186,193,194,195,196,197,198,199,201,202,203,205,206,209,210,211,215,217,218,219,220,221,226,230,233,235,236,239,241,242,246,247,249,252,253,259,267,290,296,304,314,318,322,324,327,328,337,363,364],system_command:33,systemat:39,systemctl:8,systemd:67,systemmultimatch:168,systemnoinput:168,systemnomatch:168,systemsendtochannel:168,tab:[9,14,26,30,36,59,69,95,96,106,114,137,138,321,330,343],tabl:[0,4,13,15,43,45,46,48,53,58,59,64,69,82,88,97,111,113,114,119,125,128,134,154,156,166,169,188,291,310,321,327,329,330,341,344],table_char:327,table_format:156,table_lin:330,table_str:58,tablea:327,tableb:327,tablechar:[58,327],tableclos:[88,291],tablecol:330,tableopen:[88,291],tablet:16,tabletop:[58,73,79,124,217,221],tabsiz:[321,330],tabstop:343,tabularinlin:315,tack:[20,119,153],tackl:37,tactic:[73,116],taction:116,tag:[9,12,13,18,20,24,27,33,45,48,51,53,55,57,58,64,73,74,86,87,88,95,96,100,109,114,119,124,125,134,136,137,138,139,140,141,142,145,154,156,157,158,159,164,165,166,167,168,169,170,171,173,174,177,179,180,181,182,183,185,186,187,188,189,193,199,200,201,202,203,204,206,209,212,213,214,215,217,218,219,220,221,224,230,231,232,233,234,239,241,244,247,251,252,254,282,296,304,314,315,317,318,321,324,326,327,328,329,330,341,344,364],tag_categori:315,tag_data:315,tag_kei:315,tag_typ:315,tagadmin:315,tagform:315,tagformset:315,taghandl:[112,125,315,319],taginlin:[145,173,237,244,254,315],tagkei:[241,319,324],taglin:17,tagnam:252,tagstr:[252,319],tagtyp:[112,317,319,341],tail:[76,90,100,267,337],tail_log_fil:[267,337],tail_log_funct:337,tailor:[4,69,357],take:[0,3,4,9,10,11,13,14,15,16,17,19,20,21,22,25,26,27,28,29,31,33,37,40,42,46,49,51,52,55,56,57,58,62,64,69,70,74,75,76,77,79,80,83,85,90,91,95,96,103,104,105,106,108,109,111,114,116,119,121,122,123,124,125,126,127,133,134,136,138,139,144,146,151,152,156,168,174,177,179,182,184,187,188,200,203,204,206,209,213,215,217,218,219,220,221,230,231,233,242,250,252,271,287,295,307,308,317,318,321,326,327,328,329,338,344,345],taken:[31,43,56,64,103,116,120,121,123,165,186,209,217,218,219,220,221,287,311,321,324],takeov:309,taladan:48,tale:3,talk:[23,27,33,34,37,40,41,43,46,58,60,90,91,131,138,165,179,205,206,214,233,264],talker:[55,61],talki:64,talking_npc:[141,142,178],talkingcmdset:214,talkingnpc:214,tall:[43,129,165,206],tallman:[43,165],tandem:61,tantal:14,target1:220,target2:220,target:[21,25,28,29,30,33,34,40,43,58,73,88,103,114,116,119,123,127,136,138,144,154,159,164,165,169,177,182,185,187,197,199,215,217,218,219,220,221,231,235,247,317,321,324,328,344],target_loc:[197,213,233,235,247],target_obj:242,targetlist:199,task:[0,27,36,40,41,91,93,94,102,110,112,138,193,195,215,260,261,344],task_handl:[141,260,344],task_id:[195,260],taskhandl:[141,142,253,344],tast:[22,34,133],tavern:206,tax:[75,93],taylor:79,tb_basic:[141,142,178,216],tb_equip:[141,142,178,216],tb_filenam:322,tb_item:[141,142,178,216],tb_iter:322,tb_magic:[141,142,178,216],tb_rang:[141,142,178,216],tbbasiccharact:217,tbbasicturnhandl:217,tbearmor:218,tbequipcharact:218,tbequipturnhandl:218,tbeweapon:218,tbitemscharact:219,tbitemscharactertest:219,tbitemsturnhandl:219,tbmagiccharact:220,tbmagicturnhandl:220,tbodi:134,tbrangecharact:221,tbrangeobject:221,tbrangeturnhandl:221,tchar:116,tcp:[55,103],tcpserver:[40,312],teach:124,team:[33,36,61,64,70,108,131],teardown:[127,170,196,228,293,342],teaser:90,tech:79,technic:[4,6,9,10,11,19,20,23,39,40,51,64,70,83,90,108,112,114,119,125,139,179,316],techniqu:[29,139,321],tediou:[1,106,111],teenag:[21,103],tehom:[9,119],tehomcd:9,tel:[0,12,58,63,91,121,159],teleport:[12,14,20,43,58,85,122,140,159,165,233,241,322],teleportroom:233,televis:31,tell:[0,3,5,8,10,12,13,19,21,22,23,26,29,31,33,41,42,43,46,49,51,58,59,60,61,69,73,74,75,76,77,80,83,86,87,90,91,93,95,96,100,102,103,109,110,116,117,121,127,128,130,131,132,134,135,139,146,156,164,165,176,177,185,206,233,247,267,285,296,308,326,362],telnet:[9,15,25,30,40,43,55,63,64,75,79,83,94,100,101,103,105,110,114,137,138,141,142,169,262,275,280,281,282,283,287,288,289,291,292,294,298,306,307,343],telnet_:90,telnet_hostnam:54,telnet_interfac:90,telnet_oob:[88,141,142,262,275],telnet_port:[9,36,54,90,299],telnet_ssl:[141,142,262,275],telnetoob:291,telnetprotocol:[288,290,292],telnetserverfactori:290,teloutlock:241,temp:177,tempat:188,templ:200,templat:[2,3,4,5,27,31,43,47,64,81,87,104,107,109,123,125,131,134,135,136,137,138,141,142,145,165,167,188,230,267,296,306,307,316,320,327,336,355,362],template2menu:[51,328],template_nam:362,template_overrid:[4,135,136,137],template_regex:[316,336],template_rend:107,template_str:[51,87],templates_overrid:135,templatestr:327,templatetag:[141,142,346,356],templateview:362,tempmsg:[175,177],temporari:[6,11,110,122,127,131,153,177,198,217,218,219,220,221,261,328],temporarili:[20,26,31,43,51,60,90,97,102,127,164,169,175,195,203],tempt:[43,61,95,104,157],ten:[29,90,111],tend:[41,43,57,61,64,73,76,86,90,97,103,119,121,124,129,138,159,205,209],tent:[45,111,139],terabyt:25,term:[0,10,31,62,63,64,69,90,91,96,126,139,154,204,310],term_siz:[42,141],termin:[4,23,26,27,38,42,47,59,60,63,64,75,90,93,95,96,97,100,103,106,110,114,123,126,131,138,139,141,194,215,217,218,219,220,221,266,267,287,294,310,362],terminalrealm:287,terminals:287,terminalsessiontransport:287,terminalsessiontransport_getp:287,terrain:49,terribl:280,ters:102,test1:[11,74,330],test2:[11,33,74,114],test3:[11,330],test4:[11,330],test5:11,test6:11,test7:11,test8:11,test:[0,5,10,11,13,14,15,17,19,20,21,22,23,24,25,29,31,33,36,37,38,41,42,43,45,46,50,51,56,58,60,61,62,63,65,67,68,69,72,73,74,79,80,81,85,89,90,91,94,95,96,98,106,107,109,111,115,116,120,124,130,131,132,133,137,138,139,141,142,149,151,155,156,158,166,169,178,182,185,187,188,191,207,208,215,217,218,219,220,221,222,223,230,250,251,262,269,272,275,296,297,298,302,318,320,321,322,324,328,332,342,344,346,348,350,356,364],test_:127,test_about:170,test_accept:196,test_access:170,test_add:196,test_add_valid:196,test_all_com:170,test_alternative_cal:127,test_amp_in:293,test_amp_out:293,test_at_repeat:228,test_attribute_command:170,test_audit:211,test_ban:170,test_batch_command:170,test_bold:293,test_c_creates_button:303,test_c_creates_obj:303,test_c_dig:303,test_c_examin:303,test_c_help:303,test_c_login:303,test_c_login_no_dig:303,test_c_logout:303,test_c_look:303,test_c_mov:303,test_c_move_:303,test_c_move_n:303,test_c_soci:303,test_cal:196,test_cas:127,test_cboot:170,test_cdesc:170,test_cdestroi:170,test_cemit:170,test_channel:170,test_channelcommand:170,test_char_cr:170,test_char_delet:170,test_clock:170,test_color:293,test_color_test:170,test_copi:170,test_creat:170,test_cwho:170,test_data_in:293,test_data_out:293,test_del:196,test_desc:170,test_desc_default_to_room:170,test_destroi:170,test_destroy_sequ:170,test_dig:170,test_do_nested_lookup:170,test_edit:196,test_edit_valid:196,test_emit:170,test_empty_desc:170,test_examin:170,test_exit:196,test_exit_command:170,test_find:170,test_forc:170,test_general_context:352,test_get:360,test_get_and_drop:170,test_get_authent:360,test_get_dis:360,test_giv:170,test_handl:196,test_help:170,test_hom:170,test_ic:170,test_ic__nonaccess:170,test_ic__other_object:170,test_ident:293,test_idl:303,test_info_command:170,test_interrupt_command:170,test_invalid_access:360,test_inventori:170,test_ital:293,test_large_msg:293,test_list:196,test_list_cmdset:170,test_lock:[170,196],test_look:170,test_mask:211,test_memplot:303,test_menu:215,test_messag:304,test_mudlet_ttyp:293,test_multimatch:170,test_mux_command:170,test_mycmd_char:127,test_mycmd_room:127,test_nam:170,test_nested_attribute_command:170,test_nick:170,test_object:170,test_object_search:127,test_ooc:170,test_ooc_look:170,test_opt:170,test_pag:170,test_password:170,test_perm:170,test_pi:170,test_plain_ansi:293,test_pos:170,test_quel:170,test_queri:[141,142,262,297],test_quit:170,test_resourc:[127,141,142,170,196,211,228,293,320,360],test_return_valu:127,test_sai:170,test_script:170,test_send_random_messag:228,test_server_load:170,test_sess:170,test_set_game_name_and_slogan:352,test_set_help:170,test_set_hom:170,test_set_obj_alia:170,test_set_webclient_set:352,test_simpl:127,test_simple_default:170,test_spawn:170,test_split_nested_attr:170,test_start:196,test_tag:170,test_teleport:170,test_toggle_com:170,test_tunnel:170,test_tunnel_exit_typeclass:170,test_typeclass:170,test_upp:127,test_valid_access:360,test_valid_access_multisession_0:360,test_valid_access_multisession_2:360,test_valid_char:360,test_wal:170,test_whisp:170,test_who:170,test_without_migr:127,testabl:127,testaccount:170,testadmin:170,testampserv:293,testapp:133,testbatchprocess:170,testbodyfunct:228,testbuild:170,testcas:[127,293,303,335,342,352],testcmdcallback:196,testcomm:170,testcommand:51,testdefaultcallback:196,testdummyrunnerset:303,testdynamic:127,tester:[90,119,285],testeventhandl:196,testform:327,testgener:170,testgeneralcontext:352,testhelp:170,testid:33,testinterruptcommand:170,testirc:293,testmemplot:303,testmenu:[188,328],testmixedrefer:335,testmod:308,testmymodel:127,testnod:51,testobj:127,testobject:127,testobjectdelet:335,testok:91,testregularrefer:335,testresult:251,testset:127,testsharedmemoryrefer:335,teststr:127,testsystem:170,testsystemcommand:170,testtelnet:293,testunconnectedcommand:170,testvalu:11,testwebsocket:293,text2html:[141,142,320],text:[0,1,2,5,7,9,10,13,14,15,17,18,21,22,24,26,30,33,34,35,37,40,43,45,46,48,50,52,53,55,56,57,58,59,60,63,68,72,73,76,77,78,79,80,81,83,85,86,87,88,90,91,95,96,97,98,100,108,109,110,111,112,118,121,123,124,126,127,131,133,137,138,139,144,146,151,154,156,157,158,159,164,165,166,167,168,169,170,171,174,175,176,177,179,180,181,182,185,186,187,188,189,190,193,195,197,199,200,201,202,203,205,206,210,212,213,214,215,217,218,219,220,221,224,231,232,233,234,239,242,247,249,250,252,256,264,265,272,278,279,282,285,286,287,290,291,295,296,306,307,308,311,312,316,317,319,321,322,324,326,327,328,329,330,336,338,341,343,344,345,357,364],text_:38,text_color:190,text_exit:[22,180],text_single_exit:22,textarea:[340,357],textbook:40,textbox:357,textfield:[86,133],textstr:74,texttag:[81,126,139,364],texttohtmlpars:343,textual:39,textwrap:330,textwrapp:330,than:[0,2,4,6,8,11,13,14,16,19,23,25,26,29,31,33,35,37,38,39,42,43,46,47,49,51,52,54,55,57,58,60,61,62,64,68,69,71,73,76,80,82,86,89,90,91,93,95,97,103,104,105,106,109,110,112,113,114,115,116,119,122,123,125,126,127,128,129,131,134,135,137,138,139,144,148,151,152,153,156,157,158,159,160,164,167,169,179,180,181,184,190,195,197,204,205,206,213,215,217,218,219,220,221,232,234,241,247,249,250,251,267,293,308,313,315,316,317,318,321,322,328,329,330,334,336,337,339,340,341,343,344,362],thank:[4,102,134,138,199,312],thankfulli:133,thead:134,thei:[0,1,2,4,5,6,8,9,10,11,12,13,14,15,16,17,19,20,21,22,23,25,27,29,30,31,33,34,37,38,39,40,41,42,43,44,46,48,51,55,56,57,58,61,63,64,66,68,69,73,75,77,78,80,81,83,85,86,88,89,90,91,92,93,95,96,97,102,103,105,106,107,108,109,110,111,112,113,114,116,118,119,121,122,123,124,125,126,127,131,132,134,136,137,138,139,140,144,145,152,153,156,158,159,164,165,167,168,169,174,179,180,182,185,187,189,194,200,205,206,217,218,219,220,221,232,233,234,235,241,242,246,247,250,251,252,253,256,258,259,261,267,287,288,290,291,292,296,299,305,306,307,308,310,315,316,321,322,323,325,328,330,336,344,345,357,362],theirs:[116,181,189],them:[0,2,4,5,6,9,10,11,12,13,14,15,16,21,22,23,25,26,27,28,29,30,31,33,34,35,37,38,39,40,41,43,46,48,50,51,54,55,57,58,59,60,61,62,64,66,68,69,71,73,74,75,76,77,80,82,83,85,86,87,88,89,90,91,95,96,97,98,102,103,104,105,106,109,110,111,112,113,114,115,116,118,119,121,122,123,124,125,126,127,128,131,133,134,135,136,137,138,139,140,144,150,151,152,154,156,158,159,164,166,167,168,170,175,181,182,183,187,188,189,190,192,194,197,203,204,206,215,217,218,219,220,221,224,231,233,234,238,242,247,252,258,261,267,285,287,290,298,302,305,306,308,315,316,318,319,321,322,324,328,336,340,343,362],themat:61,theme:[61,134],themself:219,themselv:[0,11,19,21,28,31,33,43,49,51,55,58,69,72,73,80,81,85,89,97,102,107,113,119,121,123,125,127,132,138,140,159,206,247,256,259,267,317,319,340],theoret:[31,108],theori:[31,42,57,79,123,139,144,152,364],thereaft:87,therefor:[0,49,62,68,91,102,122,127,158,180,192],therein:[15,33,156,167,187,203,233],thereof:[206,247],thi:[0,1,2,3,4,5,6,8,9,10,11,12,13,14,15,16,18,19,20,21,22,23,24,25,26,27,28,29,30,31,33,34,35,36,37,38,39,40,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,70,71,72,73,74,75,76,77,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,143,144,145,146,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,192,193,194,195,197,198,199,200,201,202,203,204,205,206,209,210,212,213,214,215,217,218,219,220,221,223,224,226,227,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,246,247,250,251,252,253,254,256,257,258,259,260,261,262,264,265,266,267,269,271,272,273,274,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,294,295,296,298,299,300,301,302,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,334,335,336,337,338,339,340,341,342,343,344,345,346,349,350,354,355,357,361,362,363],thie:51,thief:61,thieveri:[43,166],thin:[10,22,29,111,182,337],thing:[0,1,3,4,5,6,8,9,10,11,12,13,15,19,20,21,22,25,26,27,28,29,30,31,33,34,37,39,40,41,43,46,47,48,49,50,51,55,58,59,60,61,63,64,67,69,70,71,73,74,75,76,79,80,82,83,85,86,89,90,91,93,95,96,97,100,102,103,104,105,107,108,109,110,111,114,115,116,118,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,144,152,153,159,175,179,180,187,195,205,206,215,221,227,230,233,234,241,242,246,247,250,271,276,280,312,315,316,318,321,322,330,336,340,362],think:[1,20,29,31,34,37,46,48,51,55,59,61,62,67,70,73,79,81,91,94,95,96,97,109,111,112,114,115,135,138,139,308,362],third:[0,8,9,23,27,37,38,39,42,43,51,64,69,72,75,90,96,101,114,121,127,128,134,159,321],thirdnod:51,this_sign:309,thoma:[12,43,87,157],thorn:[11,89],thorough:26,those:[2,3,4,6,9,11,13,14,15,19,20,21,23,28,30,31,33,35,36,43,44,47,48,51,55,56,57,58,60,61,62,64,68,71,73,77,78,79,80,81,85,86,88,89,90,95,96,103,105,109,110,111,112,114,118,119,121,123,124,125,127,128,130,131,135,136,138,153,154,156,159,165,166,170,176,180,206,210,215,217,232,233,242,250,251,252,290,295,317,318,328,329,330,338,339,342,344,357,362],though:[2,10,11,12,13,14,15,22,23,26,27,30,31,37,39,41,51,57,59,60,62,63,64,69,72,75,79,81,89,90,91,94,96,97,100,102,103,104,110,116,119,121,122,123,126,127,128,129,130,131,138,144,154,180,181,190,217,218,220,221,226,233,234,247,252,321,328,344],thought:[23,39,61,79,80,84,138],thousand:[39,90,111,133],thread:[23,27,55,79,94,110,286,312,337,344],threadpool:[94,312],threadsaf:315,threat:103,three:[0,4,12,13,16,22,25,31,33,38,46,51,69,80,83,85,87,89,90,114,133,134,135,151,215,220,242,258,321,328],threshold:[228,310,322],thrill:85,throttl:[141,142,144,262,272,285],through:[0,1,2,5,9,13,14,17,23,25,27,30,31,33,34,38,39,40,41,44,46,48,51,52,55,56,57,58,59,60,61,62,64,68,69,70,71,76,77,80,83,85,87,88,89,90,91,93,96,97,98,99,103,104,105,106,107,108,109,110,114,116,117,119,121,122,124,136,138,139,140,141,144,153,159,166,174,179,187,192,210,212,217,218,219,220,221,235,240,242,246,247,251,257,258,261,267,269,274,283,287,290,296,299,304,306,307,315,317,318,322,324,327,328,329,336,343,344,357,362],throughout:[11,20,49,51,55,104,219],throughput:[175,324],thrown:116,thrust:232,thu:[14,19,31,33,39,43,44,51,54,57,58,73,80,83,86,96,108,111,114,121,122,123,125,134,135,136,156,160,181,205,242,247,261,299,313,316,317,324],thub:43,thud:189,thumb:[114,131],thumbnail:4,thunder:23,thunderstorm:122,thusli:75,tick:[23,33,38,51,64,115,131,132,139,219,231,233,261,299],ticker1:[115,261],ticker2:[115,261],ticker:[53,55,74,102,132,139,146,231,233,257,261,272],ticker_class:261,ticker_handl:[115,132,141,261],ticker_pool_class:261,ticker_storag:261,tickerhandl:[27,45,102,116,132,139,141,142,213,219,233,253,364],tickerpool:261,tickerpool_layout:261,ticket:94,tidbit:55,tidi:100,tie:[83,116,138],tied:[64,119,153,166,182,224,227,239],tier:90,ties:[49,135,161],tight:182,tightli:103,tim:[182,188,190,215,217,218,219,220,221],time:[0,1,2,4,5,6,8,9,10,11,12,13,14,17,20,21,22,23,25,26,28,29,30,31,34,36,37,39,40,41,42,45,49,51,52,53,54,55,56,58,59,60,61,63,64,65,66,67,69,70,72,73,75,80,83,86,88,89,90,91,93,94,95,96,100,104,105,106,109,110,113,114,115,116,117,119,121,122,123,124,125,127,128,129,131,132,133,135,138,139,144,146,148,150,151,153,154,157,164,169,175,177,179,184,185,187,194,195,198,200,203,204,205,212,213,215,217,218,219,220,221,223,227,231,232,233,239,246,247,250,252,253,256,259,260,261,267,269,271,273,274,279,285,290,292,299,300,304,305,306,308,310,315,316,318,319,321,322,323,324,329,331,334,335,337,340,344,363],time_ev:198,time_factor:[27,62,184,331],time_format:[59,344],time_game_epoch:[27,62,331],time_to_tupl:184,time_unit:[62,184],time_until_next_repeat:[102,259],timedelai:[29,260,342,344],timedelta:[338,345],timeeventscript:195,timefactor:62,timeformat:[337,344],timeit:93,timeout:[63,67,116,120,290,310,334],timer:[20,27,33,47,56,64,83,102,115,116,187,219,223,226,232,253,259,261,298,306,341],timerobject:102,timescript:331,timeslot:187,timestamp:[25,27,310,331],timestep:299,timestr:337,timetrac:[141,142,262,297],timetupl:62,timezon:[23,337,338,345],tini:[23,39,81],tinker:97,tintin:[24,280,281,291,294],tinyfugu:24,tinymud:[57,108],tinymush:[57,108,129],tinymux:[57,108],tip:[12,37,70,79,103,112],tire:[20,153],titeuf87:235,titl:[17,22,34,43,48,69,98,137,164,166,180,238,321,324,362],titlebar:137,titleblock:69,tlen:71,tls:8,tlsv10:67,tlsv1:8,tmp:[36,63],to_be_impl:362,to_byt:344,to_cur:219,to_displai:180,to_dupl:152,to_execut:344,to_exit:0,to_fil:209,to_init:221,to_non:247,to_obj:[144,154,247],to_object:176,to_pickl:325,to_str:344,to_syslog:209,tobox:276,toc:363,todai:[138,190],todo:58,toe:108,togeth:[0,3,8,9,14,22,29,31,33,38,43,48,49,57,58,61,64,68,71,73,83,89,90,92,116,119,122,123,124,125,126,127,131,138,150,159,161,175,187,202,203,205,206,232,233,246,252,276,295,308,315,321,322,336,341],toggl:[81,290],toggle_nop_keepal:290,togglecolor:81,toint:[109,250],token:[71,122,247,287,290,322,336],told:[44,59,90,91,95,113,114,123,128,340],tolkien:62,tom:[43,58,87,123,129,159,165,189,206,327],tommi:[19,80,87],ton:[57,82],tone:114,tonon:[43,159],too:[0,4,6,9,11,12,13,14,17,20,21,22,25,27,29,33,38,39,41,42,43,46,47,48,49,51,57,58,59,60,61,63,69,73,80,83,84,85,91,93,96,106,114,116,121,122,123,125,128,131,133,138,157,159,178,215,220,224,241,259,272,276,310,312,322,327,328,329,330,341,344],took:[127,344],tool:[4,6,7,8,23,29,53,57,62,63,64,86,90,96,100,108,109,111,112,114,119,136,139],toolbox:79,tooltip:137,top:[5,9,13,22,26,29,31,33,38,39,47,48,50,52,57,58,59,60,63,68,69,75,79,85,93,95,96,101,102,104,110,111,112,117,123,125,130,131,133,134,138,139,148,153,177,180,182,184,202,206,215,234,235,239,246,256,267,309,316,318,319,322,329,330,337],topcistr:238,topic:[4,10,20,31,33,40,42,43,55,68,69,86,93,94,105,119,126,166,217,218,219,220,221,238,341,357,362],topicstr:238,tos:241,tostr:276,total:[27,43,62,80,82,91,93,102,104,105,114,118,139,169,185,304,329,330,331],total_num:334,touch:[8,38,54,60,96,97,103,104,114,310],tour:91,toward:[22,33,40,42,91,102,111,190,200,221,231],tower:[111,187,233],tportlock:241,trac:94,trace:[83,96,195,304,328],traceback:[6,13,27,57,60,95,97,102,110,114,123,127,133,135,195,202,250,276,318,322,336,337,344],tracemessag:304,track:[11,27,30,49,57,61,64,73,77,82,86,95,98,99,100,102,105,116,121,128,132,133,138,144,153,221,257,278,279,284,287,290,305,310,325,326,338],tracker:[43,61,70,131],trade:[46,179],tradehandl:179,trader:46,tradetimeout:179,tradit:[10,15,36,73,74,83,90,103,114,116,138,235,290,306,329],tradition:[57,83],traffic:[8,103,280],train:79,traindriv:121,traindrivingscript:121,training_dummi:73,trainobject:121,trainscript:121,trainstop:121,trainstoppedscript:121,trait:[27,38,73,252],transact:179,transfer:[85,133,153,278,288,292,330],transform:[36,175],transit:[89,124],translat:[14,40,45,79,87,88,113,114,126,205,206,252,269,321],transmiss:209,transmit:113,transpar:[67,105,126,137,138,246,261],transport:[276,287,296],transportfactori:287,transpos:126,trap:[14,82,122],traumat:51,travel:[49,82,83,88,96,213,235],travers:[11,44,49,80,85,89,121,197,212,213,231,232,235,241,247],traverse_:33,traversing_object:[197,212,213,235,247],travi:[45,139,364],tre:43,treasur:[9,235],treat:[10,14,33,64,95,96,105,111,112,119,125,138,144,150,153,175,189,247,252,308,328,330,341],tree:[3,11,33,38,43,47,51,61,63,64,77,80,96,131,140,180,206,215,234,247,252,267,296,312,328,344],tree_select:[141,142,178],treestr:215,treshold:334,tri:[11,12,14,24,29,33,43,51,58,61,80,83,87,90,91,105,107,113,116,119,133,138,151,169,179,181,188,224,232,233,271,310,344,345],trial:[94,106,293],tribal:111,trick:[8,22,51,79,138,318,357],tricki:[109,126,127,138],trickier:[9,69],trigger:[21,24,31,33,36,42,46,49,51,56,57,69,74,83,84,89,100,105,107,114,115,116,117,118,121,134,135,138,144,146,150,151,154,156,170,175,180,198,200,201,231,233,246,247,252,259,261,269,272,276,298,305,309,324,336],trim:321,trip:96,tripl:[27,38,96,114,336,344],trivial:[27,33,40,42,91,93,138],troll:12,troubl:[5,8,9,23,41,46,58,63,70,75,91,105,131,139,316,363],troubleshoot:9,troublesom:[12,13,14],trove:9,truestr:188,truli:[0,12,39,41,105,187],trust:[19,43,51,57,169,322],truth:42,truthfulli:33,try_num_prefix:151,ttarget:116,tto:290,ttp:43,tty:[9,100],ttype:[55,141,142,262,275,287,290],ttype_step:294,tuck:[111,224],tun:[43,159],tune:[67,126],tunnel:[0,20,22,44,49,58,121,159,292],tup:[39,206],tupl:[11,39,41,42,43,51,59,60,80,86,87,88,90,109,116,119,134,141,144,151,157,159,167,168,176,179,180,184,185,189,192,200,206,219,220,230,235,241,242,247,250,251,252,261,264,276,277,287,288,292,299,306,308,316,319,321,323,324,326,328,331,336,337,339,344],tupled:337,turbo:75,turkish:144,turn:[0,10,12,27,31,33,38,41,43,50,51,57,58,64,66,77,79,80,81,83,88,90,96,102,105,107,110,111,114,117,118,121,122,126,127,131,133,135,138,139,144,154,164,169,170,175,198,200,206,215,217,218,219,220,221,231,233,247,252,267,272,280,287,290,298,308,314,315,318,322,324,328,329,330,336,344,364],turn_act:116,turn_end_check:[217,218,219,220,221],turnbattl:[141,142,178],turnchar:219,tut:[122,233],tutor:230,tutori:[3,4,10,16,17,20,22,25,26,28,29,31,32,33,35,37,39,41,42,45,48,49,51,55,57,58,60,61,63,64,70,71,77,79,81,82,90,91,95,102,111,112,114,115,126,133,135,139,180,213,218,232,233,363,364],tutorial_bridge_posist:233,tutorial_cmdset:233,tutorial_exampl:[13,14,20,102,141,142,178],tutorial_info:233,tutorial_world:[20,22,63,122,141,142,178],tutorialclimb:232,tutorialevmenu:230,tutorialobject:[231,232],tutorialread:232,tutorialroom:[231,233],tutorialroomcmdset:233,tutorialroomlook:233,tutorialweapon:[231,232],tutorialweaponrack:232,tutorialworld:[232,233],tweak:[8,9,25,57,58,67,97,102,109,117,119,125,138,312,321],tweet:[124,139,364],tweet_output:120,tweet_stat:120,tweetstat:120,twenti:58,twice:[25,51,62,116,195,200,221,328],twist:[10,27,29,33,40,63,72,75,79,97,103,247,264,267,269,270,276,277,278,279,284,287,290,293,295,296,298,305,308,312,337,364],twistd:[63,106,110,284,305],twistedcli:40,twistedmatrix:94,twistedweb:103,twitch:[41,116],twitter:[7,55,120,139,364],twitter_api:71,two:[0,4,11,13,14,15,16,19,22,23,25,26,27,28,29,31,33,34,38,39,40,41,43,44,46,47,49,50,51,57,58,64,65,67,68,69,73,74,76,80,83,84,85,86,88,89,90,91,92,95,97,100,102,103,104,105,108,109,110,111,112,113,116,119,121,122,123,125,126,127,129,131,133,134,135,137,138,139,140,152,159,177,179,180,185,199,200,204,212,213,215,219,221,224,233,234,247,249,267,296,307,308,317,319,322,328,330,336,337,344,345,364],twowai:[43,159],txt:[9,38,40,50,75,78,90,96,146,205,283,291,326,328],tying:90,typclass:206,type:[0,8,12,14,16,17,19,20,21,22,24,25,26,27,28,29,31,33,34,35,37,38,41,42,43,44,46,47,49,50,51,55,56,57,58,59,61,62,64,73,75,77,79,80,81,82,83,86,87,88,90,91,95,96,97,102,103,105,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,125,126,128,133,137,138,139,144,146,154,159,166,169,170,171,175,176,177,180,182,186,188,192,195,197,198,199,200,206,213,217,218,219,220,221,227,232,233,234,239,241,242,246,247,251,252,260,261,265,267,269,270,278,279,285,287,288,290,291,292,294,295,296,298,306,308,312,315,316,317,318,319,321,322,324,325,328,329,330,336,339,340,341,344,345,351,357],type_count:182,typecalass:316,typecalss:195,typeclass:[0,2,5,9,11,12,13,20,21,22,25,26,27,33,34,39,44,47,48,49,56,58,60,61,62,66,69,73,76,77,80,82,83,84,85,89,91,96,102,105,107,109,111,112,116,117,118,120,121,122,123,127,132,133,134,139,141,142,144,145,146,147,148,153,159,164,173,175,176,177,178,182,187,191,194,195,198,203,206,212,213,214,217,218,219,220,221,226,233,235,237,238,241,242,244,245,246,247,251,252,254,255,256,257,259,261,305,323,324,341,342,344,357,360,362,364],typeclass_path:[43,102,119,125,148,159,256,317,318],typeclass_search:317,typeclassbas:96,typeclassmanag:[147,176,245,255],typeclassmixin:362,typedobject:[41,125,148,154,174,177,206,235,246,247,256,316,317,318,319,339,344],typedobjectmanag:[176,238,317],typeerror:[42,185,296],typenam:[22,144,146,148,175,177,179,182,184,187,189,195,197,203,204,205,206,212,213,214,217,218,219,220,221,223,226,227,231,232,233,235,239,246,247,251,256,259,274,300,316,318,331,334,335],typeobject:319,types_count:182,typic:[27,55,91,127,220,221,362],typo:[37,38,70,103,363],ubbfwiuvdezxc0m:37,ubuntu:[8,63,67,90,97,103,131],ufmboqvya4k:133,ufw:103,ugli:[56,109,137,338],uid:[100,148,279,286,307,308],uio:[57,79],uit:[22,180],ulrik:58,ultima:79,umlaut:15,unabl:[71,190],unaccept:33,unaffect:[51,116,219],unarm:218,unarmor:218,unassign:138,unauthenticated_respons:360,unavoid:115,unban:[12,157],unbias:185,unbroken:327,uncas:321,uncategor:341,unchang:[87,97,127,205,252,344],unclear:[30,363],uncolor:[81,114],uncom:[67,90],uncommit:131,uncompress:280,unconnect:[43,171,186],uncov:182,undefin:[36,86,112],under:[6,9,20,24,33,36,38,41,42,43,46,48,51,57,60,61,63,64,73,75,77,78,79,86,93,100,106,108,110,119,122,123,125,128,133,134,135,136,137,154,156,159,188,215,234,242,259,267,294,316,321,328,329,330,344,346,362],undergar:182,undergon:195,underli:[57,61,64,80,119,124,131],underlin:[330,343],underneath:[9,318],underscor:[0,38,51,74,88,95,97,114,119,152,344],underscror:152,understand:[4,10,15,24,25,26,29,30,31,33,37,38,39,41,42,44,48,49,55,60,61,63,79,81,83,91,95,96,103,104,105,109,111,113,114,123,124,127,131,133,134,136,139,151,152,204,205,206,312,321,344,364],understood:[83,91,111,127,295,296],undestand:25,undo:[50,103,326],undon:[43,156],undoubtedli:57,unexpect:[91,126,127,328],unexpectedli:334,unfamiliar:[63,74,80,88,90,118,124],unformat:[51,328,331],unfortun:[4,41,61],unhandl:60,unhappi:9,unhilit:343,unicod:[15,83,94,113,144,321,344],unicodeencodeerror:321,unicorn:119,unifi:[133,307],uniform:105,uninform:8,uninstal:63,uninstati:344,unintent:234,union:[31,51,152,224,328],uniqu:[2,12,13,20,31,33,35,36,38,40,43,46,51,55,57,60,61,64,71,80,83,84,90,95,96,102,105,109,112,119,123,125,127,137,138,144,150,152,154,159,164,169,171,175,176,181,184,186,194,200,204,205,206,212,215,218,219,231,233,238,247,251,252,261,264,276,277,285,298,299,307,308,316,317,318,319,324,326,338,341],unit:[27,31,34,36,37,45,47,55,62,64,79,82,107,124,130,139,176,184,198,219,269,324,331,344,350,364],unittest:[25,127,170,308,324,342],univers:[14,15,43,62,164],unix:[24,38,43,52,63,87,165,234,329,337,344],unixcommand:[141,142,178],unixcommandpars:234,unixtim:337,unjoin:179,unknown:[41,43,56,69,137,251,336,344],unleash:28,unless:[4,5,11,12,21,22,23,27,29,33,38,43,51,72,78,80,84,88,89,90,96,102,110,115,123,138,140,144,152,153,157,159,164,167,174,175,194,204,205,206,221,227,232,237,241,242,247,252,265,280,296,308,316,318,341,344,345],unlik:[37,51,64,73,90,107,127,144,180,219,318],unlimit:[235,259],unlink:159,unload:342,unload_modul:342,unlock:[58,77,80,316],unlocks_red_chest:80,unlog:[43,157,162,163,171,175,186,308],unloggedin:[105,141,142,149,155,201,308],unloggedincmdset:[35,43,105,163,186,201],unlucki:12,unmask:206,unmodifi:[151,168,187,328],unmonitor:272,unmut:[174,175],unnam:[112,152],unneccesari:113,unnecessari:[36,61],unneed:235,unpaced_data:276,unpack:[91,241],unpars:[74,87,151,295,296,336],unpaus:[100,102,259],unpickl:[83,276,316,325,340],unplay:[25,105],unpredict:344,unprivileg:252,unprogram:73,unpuppet:[43,96,107,123,156],unpuppet_al:144,unpuppet_object:[2,144],unquel:[20,43,80,122,156],unreal:79,unrecord_ip:310,unregist:135,unrel:[51,131,145],unrepeat:272,unreport:272,unsaf:[110,152,233],unsatisfactori:111,unsav:326,unsel:85,unset:[33,49,58,89,116,157,206,231,242,247,251,252,259,261,324,328,329,330,336,337],unsign:345,unsigned_integ:[338,345],unsignedinteg:338,unstabl:100,unstrip:151,unsubscrib:[43,58,115,164,261,278],unsuit:[19,251,319],unsur:[15,37,63,71,76,90,116,138,213],untag:137,untest:[24,61,63,127],until:[5,8,10,11,12,13,20,26,29,30,31,33,36,48,51,61,63,64,86,87,93,95,97,102,114,115,119,123,126,131,136,137,138,139,179,182,184,198,200,217,218,219,220,221,231,232,233,247,259,267,296,298,321,322,331,344],untouch:321,untrust:13,unus:[33,81,144,150,154,175,187,215,221,233,247,259,290,306,311,317],unusu:[103,119],unwant:139,unwield:218,unwieldli:153,upcom:54,updat:[2,4,5,8,9,11,13,14,20,23,24,28,29,30,33,36,38,39,43,45,49,51,55,57,58,61,62,63,64,68,71,73,75,76,79,81,83,84,86,88,89,90,91,95,97,98,100,102,115,116,123,127,133,134,135,136,137,138,139,145,146,153,154,159,164,167,169,170,174,175,183,187,195,206,220,233,239,242,246,247,249,250,252,257,283,285,286,291,305,306,308,310,315,316,318,325,326,327,328,329,330,334,344,357,360,362,364],update_attribut:316,update_buff:326,update_cached_inst:334,update_charsheet:58,update_current_descript:187,update_default:305,update_flag:306,update_po:49,update_session_count:306,update_undo:326,update_weath:233,updated_bi:192,updated_on:192,updatemethod:[137,138],updateview:362,upfir:106,upgrad:[63,64,75],upload:[4,63,64,90,100],upon:[14,29,61,80,86,90,96,100,103,113,117,123,188,210,217,218,219,220,221,258,269,278,310,329,362],upp:233,upper:[29,39,43,86,101,114,127,138,156,321],uppercas:[114,321],upping:114,ups:7,upsel:90,upsid:[41,235],upstart:[40,258],upstream:[26,64,104,128],upt:153,uptim:[12,27,43,62,169,281,331],urfgar:109,uri:[175,239,318],url:[8,38,43,64,70,90,98,131,134,135,136,138,141,142,146,164,175,239,286,296,312,318,343,346,353,356,362],url_nam:360,url_or_ref:38,url_to_online_repo:131,urlencod:69,urlpattern:[3,4,69,133,134,135],usabl:[4,43,66,114,123,159,180,190,219,241,310,328],usag:[0,5,12,21,22,23,28,29,30,33,38,41,42,43,51,58,60,64,68,71,73,81,82,85,90,91,93,94,109,115,116,119,121,123,124,129,154,156,157,158,159,164,165,166,169,170,171,174,179,180,181,182,184,185,186,187,188,189,199,200,202,203,205,206,210,212,213,214,217,218,219,220,221,224,230,231,232,233,234,235,241,250,267,328,330,334],use:[0,2,3,4,5,6,8,9,10,11,12,13,14,15,16,17,19,20,21,22,23,24,25,26,27,28,29,31,33,34,35,36,37,38,39,40,41,42,43,46,47,48,49,50,51,52,54,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,76,79,80,81,82,83,84,85,86,87,88,89,90,91,93,94,95,96,98,100,102,103,104,105,106,107,108,109,111,112,113,114,116,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,144,145,146,148,150,151,152,153,154,156,159,160,164,165,167,168,169,170,174,175,177,179,180,181,182,185,187,189,190,194,197,198,199,200,202,203,204,205,206,212,214,215,217,218,219,220,221,223,224,226,230,231,232,233,234,235,241,242,246,247,251,252,259,260,261,265,272,276,289,291,292,295,298,299,306,307,308,315,316,317,318,319,321,322,323,324,326,327,328,329,330,334,336,337,338,340,344,345,362],use_dbref:[206,247,341],use_destin:247,use_i18n:76,use_item:219,use_nick:[144,206,247],use_required_attribut:[145,237,244,357],use_success_location_messag:203,use_success_messag:203,use_xterm256:321,useabl:235,used:[0,2,3,7,9,10,11,13,15,16,17,19,20,22,23,24,27,29,30,31,34,35,38,40,41,43,46,47,48,50,51,52,54,55,56,57,58,59,60,62,63,64,67,68,69,72,73,74,79,80,82,83,84,85,86,87,88,89,90,91,93,94,95,96,100,102,103,104,105,107,108,109,110,111,112,113,114,115,116,118,119,120,121,122,123,124,125,126,127,128,129,131,133,134,135,136,137,139,141,144,145,146,150,152,153,154,156,159,164,166,167,168,169,170,175,179,180,182,184,186,187,188,189,190,192,194,195,197,198,199,200,204,205,206,213,215,217,218,219,220,221,231,232,233,234,235,238,240,241,242,244,247,250,251,252,258,259,260,261,262,264,265,269,272,273,276,277,278,279,280,281,282,283,284,285,287,289,290,291,294,295,296,299,306,308,309,315,316,317,318,319,320,321,322,324,325,326,328,329,330,336,337,338,339,340,341,344,345,350,357,362,363],used_kei:80,useful:[0,1,4,5,10,11,12,13,14,15,16,17,18,19,20,22,23,25,26,27,28,29,30,31,34,36,37,38,39,41,42,43,46,47,48,50,51,53,57,58,59,60,63,64,66,69,70,80,81,87,89,90,91,93,95,96,102,104,107,109,110,111,112,114,115,116,119,120,123,124,125,127,131,132,133,138,139,150,152,153,154,156,158,159,166,167,168,170,178,179,180,194,195,199,205,206,210,233,234,235,241,247,251,252,259,267,287,316,318,322,328,331,340,344],useless:231,uselock:241,user:[2,4,7,8,10,11,12,13,14,20,22,23,25,28,29,30,31,35,36,37,38,40,41,42,43,49,50,51,52,55,60,63,64,65,66,67,68,70,71,72,74,75,76,77,79,80,81,85,87,88,90,91,93,95,97,98,100,101,104,105,107,109,113,114,119,121,122,123,125,126,127,133,134,135,136,137,138,139,144,145,146,148,151,154,157,159,164,169,174,175,176,177,180,182,187,189,193,195,200,201,206,209,210,215,219,221,227,233,235,239,241,242,247,252,259,262,265,271,279,286,287,290,295,296,306,308,311,316,318,321,326,328,329,330,336,338,344,345,349,357,362,364],user_change_password:145,user_input:51,user_permiss:[145,148],useradmin:145,userauth:[94,287],userchangeform:145,usercreationform:[145,357],usernam:[2,4,12,35,51,74,100,107,119,131,134,144,145,148,186,287,311,349,357],username__contain:119,usernamefield:357,userpassword:[12,157],uses:[0,5,9,13,15,16,17,22,23,29,30,31,33,34,38,39,40,44,57,64,68,69,80,81,86,88,90,94,98,107,109,112,113,114,115,119,124,125,127,130,131,136,137,152,179,185,187,199,201,205,206,219,226,227,233,234,235,242,256,261,276,296,310,316,319,336,337,338,344],uses_databas:344,using:[2,4,5,6,8,9,10,11,12,13,14,15,19,20,21,22,23,24,25,26,27,28,29,30,31,33,34,36,37,38,39,41,43,45,46,47,49,50,51,53,55,56,57,58,59,60,61,62,63,64,67,68,70,71,72,73,74,77,78,79,80,81,83,85,86,87,88,89,90,91,93,95,96,97,100,101,102,103,105,107,108,109,110,111,112,114,115,116,117,118,120,121,122,123,124,125,126,128,129,131,132,133,134,137,138,139,140,144,148,150,153,154,156,158,159,164,167,168,169,174,179,180,181,184,185,187,188,190,194,200,201,203,205,206,212,213,214,215,217,218,219,220,221,224,230,231,233,234,235,242,247,250,251,252,256,259,260,261,278,279,280,285,286,290,296,299,309,310,312,316,318,319,321,322,326,328,329,331,336,337,338,339,340,341,342,344,346,357,362,363,364],usr:[63,64,75,100],usual:[0,2,4,5,6,8,9,11,19,20,21,22,23,25,26,27,29,30,31,33,34,37,38,40,41,43,46,47,50,51,52,57,59,60,62,63,64,67,72,74,80,81,87,89,90,91,93,95,96,97,100,102,105,106,109,110,112,114,115,119,124,125,126,127,131,133,136,144,146,151,152,153,154,156,159,165,169,170,174,175,177,184,194,195,197,198,204,205,206,233,234,242,246,247,252,259,267,269,274,299,306,315,316,318,321,323,324,328,329,337,339,341,344],utc:[23,345],utf8:[23,36,70],utf:[15,24,58,74,111,113,272,278,295,330,344],util:[8,10,11,13,14,16,34,41,45,47,48,49,50,51,52,57,58,59,62,63,81,82,85,86,89,96,97,102,103,111,114,117,124,127,133,134,137,139,141,142,145,158,170,175,177,178,184,187,188,191,195,196,211,213,220,228,230,237,239,244,247,249,251,259,260,274,293,298,315,316,317,318,346,357,360,364],utilis:328,uyi:205,v19:63,vagu:21,val1:250,val2:250,val:[11,88,144,156,250,291,344],valid:[1,11,13,26,30,31,33,42,43,44,51,58,60,67,69,88,89,90,91,95,96,97,102,103,109,110,114,119,123,133,134,141,142,144,151,153,159,167,168,169,176,179,180,188,192,195,196,200,204,206,215,220,226,227,232,233,234,235,242,247,249,250,251,252,257,258,259,260,261,262,265,267,291,295,306,317,319,322,324,328,338,339,340,341,343,344,345,357,362],valid_handl:338,validate_email_address:344,validate_nam:247,validate_onli:242,validate_password:[51,144],validate_prototyp:251,validate_sess:308,validate_usernam:144,validationerror:[144,251,311,338,340],validator_config:144,validator_kei:338,validatorfunc:[141,142,320],valign:330,valu:[0,2,4,6,10,11,12,17,20,22,25,27,28,31,33,39,41,42,43,49,50,58,59,60,61,62,64,67,69,73,74,77,80,81,82,84,85,86,87,88,90,97,102,111,114,115,116,123,125,126,127,128,133,134,137,138,139,144,148,150,152,154,156,157,159,170,175,177,180,182,185,188,189,190,192,195,196,200,203,204,205,206,211,217,218,219,220,221,227,228,233,235,239,241,242,246,247,250,251,252,256,258,259,261,265,272,273,274,276,285,290,291,306,307,308,313,316,317,318,319,321,323,324,325,326,327,328,334,335,336,338,339,340,341,344,345,350,357,362],valuabl:122,value1:109,value2:109,value_from_datadict:340,value_to_obj:251,value_to_obj_or_ani:251,value_to_str:340,valueerror:[41,91,109,123,180,202,204,316,319,321,324,336,344,345],valuei:111,values_list:119,valuex:111,vanilla:[9,26,49,56,58,86,101,125],vaniti:51,vari:[30,40,60,64,82,108,114,125,131,193,205,221,306,316,318],variabl:[0,3,5,11,13,28,31,33,38,41,43,46,49,51,55,56,58,64,66,69,80,83,88,91,95,96,97,100,103,104,106,109,113,121,124,133,134,135,137,138,144,148,150,154,156,159,164,167,168,169,170,183,187,188,192,194,195,198,203,233,241,246,247,251,252,264,267,277,280,281,283,287,289,299,306,313,321,322,328,344,350],variable_from_modul:344,variable_nam:[192,195],variablenam:344,varianc:205,variant:[11,55,112,153,180,186,213,278,321],variat:[62,73,116,152,187,205,227,344],varieti:[55,82,116,120,219,220],variou:[5,6,11,15,33,37,40,41,46,47,48,53,57,62,67,69,73,77,81,88,89,90,93,94,97,102,103,105,109,110,112,114,115,116,123,124,125,127,137,139,152,168,184,205,206,215,219,220,231,232,242,246,247,252,253,261,299,324,330,341,342],varnam:291,vast:[23,60,86,108,111,119],vastli:64,vcc:205,vccv:205,vccvccvc:205,vcpython27:9,vcv:205,vcvccv:205,vcvcvcc:205,vcvcvvccvcvv:205,vcvvccvvc:205,vector:344,vehicl:[21,124,139,364],velit:52,venu:[131,176],venv:[63,75],verb:[25,303],verbal:[197,247],verbatim_el:344,verbos:[26,38,116,127,206],verbose_nam:[133,318],veri:[0,2,4,5,6,8,9,10,11,13,14,17,20,21,22,23,26,27,28,29,31,33,35,37,38,39,40,41,42,46,49,50,51,52,55,56,57,58,60,61,64,67,68,70,72,73,74,77,78,79,80,85,86,88,90,91,93,95,96,97,104,107,108,109,110,111,112,114,115,116,119,121,122,123,125,127,128,129,131,132,134,137,138,139,140,144,146,152,154,170,175,177,180,182,194,195,204,205,206,212,213,214,215,220,227,231,234,235,238,246,251,271,317,319,324,326,328,344,362],verif:90,verifi:[36,51,63,90,131,159,188,220,292],verify_online_play:188,verify_or_create_ssl_key_and_cert:292,verify_ssl_key_and_cert:288,verifyfunc:188,versa:[40,43,61,88,105,116,164,276],version:[2,4,7,11,13,14,20,21,23,24,29,30,31,33,35,36,37,41,43,47,51,54,57,60,61,63,64,74,75,76,79,81,86,87,90,91,95,96,100,108,111,114,123,124,125,126,128,136,137,139,159,167,169,171,181,182,186,187,201,206,218,219,220,221,224,232,247,252,267,272,286,310,315,316,321,329,344,357,363,364],version_info:267,versionad:38,versionchang:38,versu:55,vertic:[138,232,330,344],very_strong:242,very_weak:80,vest:103,vet:109,veteran:79,vfill_char:330,via:[10,11,27,37,40,51,52,55,56,57,63,70,73,74,83,85,86,90,92,93,101,103,108,109,114,119,123,125,126,131,137,172,176,177,209,246,256,316,319,321,335],viabl:231,vice:[40,43,61,88,105,116,164,276],vicin:[33,43,165,187,233],video:[79,95,114,137],vienv:9,view:[1,4,17,27,34,38,41,42,43,50,51,52,55,58,60,63,64,72,80,82,86,90,96,101,102,110,111,115,116,123,124,131,136,139,141,142,144,156,157,159,164,165,166,169,174,175,182,206,217,218,219,220,221,235,237,239,247,249,302,318,329,346,350,353,356,357,364],view_attr:159,viewabl:[53,55,166],viewer:[25,38,69,206,235,241,247,318],viewport:42,vim:[14,50,79,326],vincent:[41,180,187,201,204,234],violent:51,virtual:[4,41,43,55,57,59,63,79,90,124,169,187,331],virtual_env:75,virtualenv:[9,23,26,36,38,63,75,76,90,93,95,96,97,100,106,110,128],virtualhost:8,viru:63,visibl:[13,25,31,36,38,43,48,54,61,63,67,69,81,90,96,105,114,123,125,131,139,165,206,241,247,279,312,328,344],visiblelock:241,vision:[11,58,61],visit:[22,49,90,111,133,134,234,328],visitor:[103,134,135],vista:63,visual:[25,57,63,93,114,137,144,166,190,363],vital:91,vlgeoff:184,vlovfgjyq2qvcdougpb6c8due7skt:70,vniftg:63,vnum:56,vocabulari:[46,344],voic:[33,46,124,139,364],volatil:251,volum:[21,61,100,111],volund:119,voluntari:37,volupt:52,vowel:[119,205],vpad_char:330,vulner:[29,103],vvc:205,vvcc:205,vvccv:205,vvccvvcc:205,vwcukflrfii:133,vwcukgy84ri:133,vwcukjfxeii:133,vwculn152ti:133,w001:127,w267:133,w321:133,w425:133,w607:133,wai:[0,2,5,6,9,10,11,12,13,14,15,19,20,21,22,23,27,28,30,31,33,37,38,39,40,41,42,43,44,46,48,49,54,55,56,57,58,61,62,63,64,68,69,70,72,73,74,75,79,80,82,83,84,85,86,87,88,89,90,91,92,93,95,96,97,98,102,103,104,105,106,107,109,110,111,112,113,114,115,116,117,118,119,121,122,123,124,125,126,127,128,129,131,132,133,136,138,139,140,144,151,152,159,166,175,179,184,185,187,188,190,194,197,198,205,212,213,215,217,218,219,220,221,224,230,231,232,234,242,247,251,259,261,267,272,276,287,308,310,312,313,314,317,319,322,327,328,330,334,337,340,362,364],wail:49,waist:182,wait:[0,10,20,25,27,28,29,33,42,51,102,121,138,146,194,198,217,218,219,220,221,259,267,277,296,298,310,324,344],wait_for_disconnect:277,wait_for_server_connect:277,wait_for_statu:267,wait_for_status_repli:267,waiter:267,wake:188,walias:[43,159],walk:[0,14,21,31,39,46,49,60,62,85,139,213,214,215,235,322],walki:64,wall:[111,157,165,187,232,233],wanna:[37,179],want:[0,2,3,4,5,6,8,9,10,11,12,13,14,15,19,20,21,22,23,24,25,26,27,28,29,30,31,33,34,35,37,38,39,40,41,42,43,44,46,48,49,50,51,54,57,58,60,61,62,63,64,66,67,68,69,70,71,72,73,74,75,76,77,78,80,81,82,83,84,85,86,87,88,89,90,91,93,95,96,97,98,102,103,104,105,106,107,108,109,110,111,113,114,115,118,119,121,122,123,125,126,127,128,131,132,133,134,135,136,137,138,140,144,152,153,154,156,165,170,174,179,180,186,187,188,190,197,204,206,209,215,217,218,219,220,221,227,233,235,237,241,242,247,252,259,261,283,285,291,298,308,313,315,316,318,326,328,329,334,340,344,357,362,363],wanted_id:80,ware:85,warehous:[209,322],wari:[114,235,247,318],warm:[102,110,271],warn:[8,23,27,31,59,60,63,64,90,91,93,104,105,111,128,134,138,140,152,174,210,266,267,292,337],warnmsg:337,warrior:[28,57,58,61,122,123],wasclean:[278,295],wasn:[0,42,134],wast:[6,14,115],watch:[14,84,106,139],water:[153,200,203],waterballon:203,wave:111,wcach:[43,169],wcactu:220,wcommandnam:234,wcure:220,wdestin:[43,159],weak:252,weakref:334,weaksharedmemorymodel:[274,334],weaksharedmemorymodelbas:[274,334],weakvalu:334,wealth:85,weapon:[29,51,61,64,73,77,82,85,86,109,116,122,218,231,232,252],weapon_ineffective_msg:231,weapon_prototyp:232,weaponrack_cmdset:232,wear:[82,182,206,218],wearabl:182,wearer:182,wearstyl:182,weather:[30,61,73,102,111,112,115,122,124,139,140,233,364],weather_script:102,weatherroom:[132,233],web:[4,8,9,16,17,23,25,30,38,47,53,55,57,61,63,64,67,69,72,75,76,79,80,83,94,95,101,109,110,119,139,141,142,173,269,271,281,285,291,295,296,306,310,312,319,325,364],web_client_url:54,web_get_admin_url:[175,239,318],web_get_create_url:[175,239,318],web_get_delete_url:[175,239,318],web_get_detail_url:[175,239,318],web_get_puppet_url:318,web_get_update_url:[175,239,318],webchargen:133,webchat:[70,79],webclient:[24,30,40,43,45,53,54,64,67,69,83,88,95,103,105,110,114,135,139,141,142,169,230,262,272,275,291,296,307,328,346,350,351,360,364],webclient_ajax:[137,141,142,262,275],webclient_en:103,webclient_opt:272,webclientdata:296,webclienttest:360,webpag:[8,17,77,90,354],webport:36,webscr:70,webserv:[3,7,8,9,23,36,40,47,55,67,90,100,101,104,135,139,141,142,262,346],webserver_en:103,webserver_interfac:[67,90],webserver_port:90,webservic:103,websit:[3,9,17,53,55,57,64,67,69,79,90,98,101,103,124,133,136,137,138,139,141,142,145,296,312,346,351,364],websocket:[40,55,64,90,100,137,278,284,295,307],websocket_client_interfac:[67,90],websocket_client_port:[67,90],websocket_client_url:[8,67,90],websocket_clos:295,websocketcli:295,websocketclientfactori:278,websocketclientprotocol:278,websocketserverfactori:284,websocketserverprotocol:295,weed:[26,119,152],week:[62,184,337,345],weeklylogfil:337,weigh:[82,298],weight:[23,38,61,108,124,139,190,205,317,364],weird:344,weirdli:96,welcom:[3,4,22,35,37,63,72,76,85],well:[2,4,6,9,11,12,16,17,19,21,22,23,25,26,33,37,38,39,40,41,43,44,45,46,49,50,51,52,55,57,58,61,62,64,66,68,69,71,74,75,81,85,88,89,91,96,98,103,104,105,106,108,109,113,116,118,119,120,123,124,125,127,128,131,133,134,135,136,138,148,152,153,154,159,164,169,172,179,182,187,194,202,205,206,215,219,220,221,226,231,247,256,262,267,276,278,279,285,302,310,315,316,317,321,325,328,331,340,344],went:[57,110,127,131,257,261],were:[1,10,11,13,24,31,33,37,38,42,44,51,58,59,64,69,77,82,85,86,91,100,102,104,108,109,119,123,125,126,127,137,144,151,152,153,204,215,247,251,314,318,322,341,344],weren:62,werewolf:25,werewolv:119,werkzeug:344,west:[20,25,44,49,111,159,200,233],west_east:111,west_exit:233,western:111,westward:233,wether:[179,324],wevennia:22,wflame:220,wflushmem:[43,169],wfull:220,what:[0,1,2,4,8,9,10,12,13,14,19,20,21,22,23,25,26,27,29,31,33,38,39,40,42,43,44,45,46,48,49,51,56,57,58,60,61,62,63,64,67,68,69,70,72,73,74,77,78,79,80,81,83,85,86,88,89,90,93,94,95,96,97,98,102,103,104,105,108,109,110,111,113,114,115,116,117,118,119,121,122,123,124,125,126,127,128,129,131,132,133,134,136,138,139,140,144,150,152,153,154,156,159,166,170,175,195,203,204,206,209,214,219,220,224,227,231,233,239,242,247,251,252,267,269,272,279,291,296,311,313,316,318,319,321,322,328,338,339,344,345,349,357,362,364],whatev:[2,11,14,21,22,23,27,33,40,43,46,48,51,56,58,61,64,67,78,82,89,91,100,102,111,123,127,131,133,134,138,144,146,153,159,188,220,231,232,247,252,256,257,278,287,290,295,308,316,329,338,362],whatnot:138,wheel:[57,63,75,115,258],whelp:234,when:[0,2,3,4,5,6,8,9,10,11,12,13,14,15,17,19,20,21,22,23,24,26,27,29,30,31,33,34,35,36,37,38,39,40,41,42,43,44,46,47,49,50,51,52,56,57,58,59,60,61,62,63,64,65,66,67,68,69,73,74,75,76,77,78,79,80,82,83,84,85,86,87,88,89,90,91,93,95,96,97,98,100,102,103,104,105,106,107,108,109,110,111,112,113,114,116,117,118,119,120,121,122,123,124,125,126,127,128,129,131,132,133,136,137,138,139,141,144,146,148,150,152,153,154,156,158,159,164,165,167,168,169,171,175,176,177,179,180,181,182,184,185,186,187,188,189,190,195,196,197,198,199,200,201,202,203,204,205,206,212,214,215,217,218,219,220,221,223,224,226,227,228,230,231,232,233,234,235,238,239,241,242,246,247,249,251,252,256,257,259,260,261,264,267,269,273,274,276,277,278,279,280,281,282,283,285,287,288,289,290,291,292,295,296,298,299,305,306,307,308,309,310,316,318,319,321,322,324,325,326,327,328,329,330,334,335,336,337,339,344,357,362],when_stop:267,whenev:[6,10,11,22,25,33,46,64,66,74,76,80,84,87,90,95,98,100,102,106,107,109,111,113,117,119,128,144,153,174,175,231,232,233,247,257,259,269,286,306,307,308],where:[0,1,3,6,9,10,11,12,13,14,20,21,22,25,26,29,31,33,36,38,39,40,41,42,43,46,48,49,50,51,52,56,57,58,59,61,62,64,69,73,75,76,80,83,85,86,88,90,91,95,100,102,103,104,105,108,109,111,113,114,117,118,119,121,122,123,124,125,127,131,133,134,135,136,137,138,139,151,152,157,159,165,168,175,176,181,185,197,199,200,205,206,210,219,232,233,235,241,242,247,250,251,252,257,267,269,272,276,299,304,308,315,318,321,322,326,328,329,330,336,338,339,344,362],wherea:[11,12,13,19,21,26,31,33,34,40,42,55,56,61,80,81,85,86,93,97,103,105,109,113,114,116,125,128,205,224,227,261,296,316,334],whereabout:122,wherebi:220,wherev:[11,63,64,67,100,111,127,180,209,219],whether:[0,12,39,43,46,51,55,62,69,77,121,144,146,153,159,164,166,175,188,215,217,218,219,220,221,241,247,261,278,295,310,316,317,321,336,338,340,344],whewiu:9,which:[0,1,3,4,5,6,9,10,11,12,13,14,15,19,20,22,24,25,26,27,28,29,30,31,33,34,36,37,38,39,40,41,42,43,44,46,49,51,52,56,57,58,59,60,61,62,63,64,65,66,67,69,71,72,73,74,76,77,80,81,82,83,85,86,87,88,89,90,91,93,94,95,96,97,100,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,125,126,127,131,132,133,134,135,136,137,138,139,140,144,146,150,152,153,154,156,157,159,165,167,168,169,170,174,175,176,177,179,180,181,182,183,184,187,188,190,197,198,199,200,202,206,209,210,212,214,215,217,218,219,220,221,226,227,231,232,233,234,235,239,242,246,247,251,252,256,257,259,260,261,264,266,267,271,272,279,285,287,295,296,298,299,306,307,308,310,313,315,316,317,318,319,321,322,324,325,328,329,330,331,334,336,337,338,340,341,342,344,349,350,357,362],whichev:[27,90,103,233],whilst:[77,111,200],whim:139,whisp:205,whisper:[46,165,197,198,205,206,247],white:[48,74,114,126,321,344],whitelist:74,whitepag:[1,48,138],whitespac:[14,27,33,58,81,119,123,167,168,202,206,321,322,330,344],who:[4,10,11,12,21,34,41,46,49,51,55,56,58,61,73,80,87,95,103,109,114,116,119,121,123,124,125,127,132,133,138,146,154,156,159,164,174,175,179,188,195,205,206,217,218,219,220,221,232,239,241,242,247,252,318,326,328],whoever:133,whole:[4,16,43,49,51,55,57,60,61,67,87,96,111,112,122,123,129,138,152,159,169,221,330],wholist:175,whome:[43,159],whomev:[73,114,121],whose:[88,114,119,125,144,154,170,195,206,215,217,218,219,220,221,272,323,328,344],whould:328,why:[0,11,12,20,22,25,38,39,41,43,44,46,51,55,60,63,64,82,91,95,96,103,111,123,125,126,139,157,204,217,220,221,264,265,328],whydonttwist:94,wide:[16,25,27,39,43,58,61,73,86,91,138,157,219,220,235,327,330,344],widen:12,wider:[12,25,39,43,157,330],widest:344,widget:[145,237,244,315,340,357],width:[16,17,25,27,33,49,74,109,111,114,141,154,250,272,287,306,321,326,327,329,330,336,344],wield:[61,82,109,218],wifi:[90,103],wiki:[1,9,33,37,43,45,48,55,58,64,70,79,94,96,108,111,116,124,125,138,180,295,363,364],wiki_account_handl:4,wiki_account_signup_allow:4,wiki_can:4,wiki_can_admin:4,wiki_can_assign:4,wiki_can_assign_own:4,wiki_can_change_permiss:4,wiki_can_delet:4,wiki_can_moder:4,wiki_can_read:4,wiki_can_writ:4,wikiconfig:4,wikimedia:37,wikipedia:[15,37,55,64,96,113,116,127,131,295],wild:[108,126,131],wildcard:[12,43,57,87,157,159,344],wildcard_to_regexp:344,wilder:[141,142,178],wildernessexit:235,wildernessmap:235,wildernessmapprovid:235,wildernessroom:235,wildernessscript:235,wildli:205,will_suppress_ga:289,will_ttyp:294,willing:[58,61,79],win10:63,win7:63,win8:63,win:[9,24,91,116,122],wind:[122,132],window:[4,23,25,31,38,44,45,49,52,64,72,76,83,88,89,93,95,96,97,101,105,106,110,128,131,137,138,154,166,267,283,306,310,329,344],windowid:306,windows10:63,wingd:111,winpti:9,winter:187,wintext:73,wip:38,wipe:[9,13,23,111,138,152,159,169,219],wire:[27,40,64,83,88,90,113,138,168,264,276,277,308,321],wis:58,wisdom:[60,93],wise:[6,11,13,14,15,26,58,60,80,96,118,131,135],wise_text:60,wiseobject:60,wiser:20,wiseword:60,wish:[33,36,39,75,120,131,136,180,221,321,343,357],with_metaclass:96,with_tag:203,withdraw:[116,221],withdrawl:221,within:[1,8,9,10,11,22,24,26,31,33,37,38,39,43,47,49,51,56,58,64,90,94,95,97,100,114,115,116,117,118,119,120,124,126,131,134,136,137,138,144,148,150,159,179,187,190,192,210,238,247,252,310,316,317,321,336,337,344,357,362],without:[0,8,11,12,13,14,16,20,21,22,23,25,27,29,30,31,33,35,37,38,40,42,43,44,46,49,50,51,55,57,58,59,60,61,63,64,66,67,76,80,86,88,90,91,92,93,96,97,100,101,104,107,108,109,114,115,118,119,121,123,125,126,127,128,129,131,133,136,138,139,144,146,151,154,156,157,159,164,165,167,168,169,170,177,179,181,182,187,192,195,197,200,205,206,212,215,217,220,221,231,233,242,247,250,251,252,259,260,276,287,290,291,298,308,309,316,318,321,322,324,325,326,328,329,336,340,341],withstand:80,wixmp:122,wiz:58,wizard:[109,233,252,265,267],wkei:[43,159],wlocat:[43,159],wlock:[43,159],wmagic:220,wmass:220,wndb_:[43,159],won:[0,2,4,10,11,12,13,15,21,22,23,29,31,38,41,42,46,57,61,63,69,73,78,81,83,85,86,91,95,96,100,111,114,119,123,125,127,134,137,138,153,188,204,223,224,226,227,312,321,336,340],wonder:[9,16,56,82,119,138],wont_suppress_ga:289,wont_ttyp:294,wooden:109,woosh:21,word:[14,27,33,43,46,49,50,62,69,70,72,76,88,89,91,93,94,95,96,97,111,119,122,126,131,136,151,167,168,171,186,198,205,206,279,326,341,344],word_fil:205,word_length_vari:205,wordi:205,work:[0,2,4,5,8,9,10,11,13,14,15,16,20,21,22,23,24,25,26,27,28,29,31,34,36,37,38,41,42,43,44,48,49,51,56,57,58,59,60,61,62,63,64,66,67,70,71,72,75,80,81,83,84,85,86,89,90,93,94,95,96,97,102,103,105,106,108,109,111,112,114,115,116,117,119,122,123,124,126,127,128,129,132,133,134,136,138,139,150,153,154,156,159,164,165,167,169,174,175,179,180,181,187,202,203,206,212,215,219,220,221,233,234,235,239,241,242,247,251,252,267,271,272,284,299,312,314,316,318,322,327,328,329,330,338,344,362,363,364],workaround:[63,100,131],workflow:[61,145],world:[9,10,11,13,14,15,21,27,31,33,34,39,41,47,49,51,55,57,58,60,62,63,64,68,72,73,78,79,80,82,86,90,96,104,108,109,111,113,116,117,121,123,124,127,131,139,144,158,159,166,174,179,184,200,202,206,217,218,219,220,221,232,233,235,239,256,306,308,321,322,331,363,364],world_map:111,worm:49,worm_has_map:49,worn:[182,218],worri:[0,11,15,36,39,41,51,55,104,113,114,123,127,138,179,227],worst:61,worth:[0,8,21,29,51,61,70,79,91,93,124,125,133,179],worthi:61,worthless:90,would:[0,1,4,6,8,9,10,11,13,14,15,16,19,20,21,22,25,27,29,31,33,36,38,39,41,42,43,44,46,48,49,51,55,56,57,58,60,61,62,63,64,68,69,73,77,80,81,82,85,86,88,89,90,91,93,95,96,100,102,105,106,109,111,112,114,115,116,117,118,119,121,123,125,126,127,128,133,134,135,136,138,140,144,151,152,153,159,168,175,179,184,195,197,205,215,224,227,234,235,239,241,242,251,252,279,315,318,321,322,325,328,336,339,340,342],wouldn:[39,126,138],wound:220,wow:[69,138],wpermiss:[43,159],wprototype_desc:[43,159],wprototype_kei:[43,159],wprototype_lock:[43,159],wprototype_par:[43,159],wprototype_tag:[43,159],wrap:[10,30,49,51,59,96,102,109,119,136,182,188,206,274,314,330,344],wrap_conflictual_object:340,wrapper:[10,27,29,51,74,86,93,105,119,125,144,148,175,176,177,212,239,246,247,256,260,272,274,306,315,316,318,319,321,330,334,335,337,344,362],wresid:[43,169],write:[0,4,10,11,14,15,16,20,22,23,25,27,31,33,34,37,38,41,43,44,46,48,51,56,58,62,63,65,68,69,71,72,87,88,91,93,94,96,108,123,124,125,129,131,138,159,166,174,180,197,209,210,234,247,280,337,342,362,363,364],writeabl:75,written:[15,27,38,54,56,57,58,61,79,103,109,127,133,134,166,209,322,362],wrong:[26,41,42,43,60,63,81,85,95,110,127,152,159,169,206],wserver:[43,169],wservic:[43,164],wsgi:[8,94,312],wsgi_resourc:312,wsgiwebserv:312,wsl:[38,63],wss:[8,67,90],wtypeclass:[43,159],wwhere:[197,247],www:[8,9,22,38,39,55,57,64,70,79,90,108,128,133,141,282,283,289,291,343,357],wyou:82,x0c:159,x1b:[321,343],x2x:58,x4x:327,x5x:327,x6x:327,x7x:327,x8x:327,x9x:327,x_r:39,xc8ymjkxnmmyns02mjk5ltq1m2qtytiyms00ndzlyzgzowy1njdcl2rhmnbtenutndzknjnjnmqtownkyy00mwrkltg3zdytmtew:122,xcode:63,xenial:130,xforward:312,xgettext:76,xit:[22,180],xmlcharrefreplac:321,xp_gain:73,xpo:330,xterm256:[43,55,74,81,83,137,156,183,190,272,287,290,321,364],xterm256_bg:321,xterm256_bg_sub:321,xterm256_fg:321,xterm256_fg_sub:321,xterm256_gbg:321,xterm256_gbg_sub:321,xterm256_gfg:321,xterm256_gfg_sub:321,xterm:[114,126],xterms256:114,xval:33,xxx:[25,42,204],xxxx:204,xxxxx1xxxxx:327,xxxxx3xxxxx:327,xxxxxxx2xxxxxxx:327,xxxxxxxxxx3xxxxxxxxxxx:58,xxxxxxxxxx4xxxxxxxxxxx:58,xxxxxxxxxxx:327,xxxxxxxxxxxxxx1xxxxxxxxxxxxxxx:58,xxxxxxxxxxxxxxxxxxxxxx:58,xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:58,xyz:87,y_r:39,yan:[114,321],yank:50,yeah:138,year:[25,55,61,62,88,90,108,184,331,337,344,357],yearli:[62,90],yellow:[114,126,131,232],yep:138,yes:[10,33,39,46,51,126,138,159,198,265,326,344],yesno:[51,326],yet:[0,2,4,12,14,22,25,28,35,36,41,42,46,49,51,54,60,63,64,67,76,79,86,90,94,96,105,109,111,119,121,128,130,131,133,134,138,144,171,179,186,195,200,242,246,285,308,312,321,362],yield:[10,23,33,80,108,159,210,330,344],yml:[100,130],yogurt:203,you:[0,1,2,3,4,5,6,8,9,10,11,12,13,14,15,16,17,19,20,21,22,23,24,25,27,28,29,30,31,33,34,35,36,37,38,39,40,41,42,43,44,46,47,48,49,50,51,54,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,95,96,97,98,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,144,153,154,156,159,164,165,166,167,168,169,170,171,174,179,180,181,182,183,184,187,188,190,193,194,195,197,198,199,200,201,202,203,204,205,206,209,210,212,213,214,215,217,218,219,220,221,223,224,226,227,232,233,234,235,237,241,242,247,252,258,259,261,269,278,279,280,296,298,308,310,312,313,316,318,321,322,324,327,328,330,331,340,341,344,357,362,363],young:77,your:[0,1,3,5,6,7,8,9,10,11,12,13,14,15,16,17,21,22,23,25,27,29,30,31,34,35,36,37,38,41,42,43,44,45,46,47,48,49,50,51,54,55,56,57,58,59,61,62,63,64,65,66,67,68,69,70,71,72,73,75,76,77,78,79,80,81,82,83,85,87,88,91,93,95,96,98,101,102,104,105,106,107,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,129,130,132,134,135,136,138,139,140,144,148,151,153,154,156,157,159,164,165,169,170,171,179,180,182,183,184,185,186,187,188,190,194,197,200,204,205,206,209,210,213,215,217,218,219,220,221,223,232,233,234,235,241,242,246,298,315,318,321,326,328,330,340,341,342,344,345,357,362,364],your_email:131,yourgam:209,yourhostnam:67,yournam:8,yourpassword:23,yourrepo:106,yourself:[0,2,5,6,14,16,19,22,23,26,31,37,42,43,51,55,58,63,69,70,73,78,80,86,89,90,91,96,102,108,111,119,123,125,130,131,135,159,165,179,189,206,212,220,223,328],yoursit:133,yourusernam:131,yourwebsit:133,yousuck:12,yousuckmor:12,youth:188,youtub:131,ypo:330,yrs:184,ythi:114,yum:[8,67,131],yvonn:58,z_r:39,zed:[77,79],zero:[20,27,109,206,247,316,321],zine:61,zip:103,zlib:[75,276,280],zmud:[24,282],zone:[18,46,55,56,70,79,112,119,122,124,139,319,337,364],zope:97,zopeinterfac:63,zuggsoft:282,zy1rozgc6mq:45},titles:["A voice operated elevator using events","API refactoring","Accounts","Add a simple new web page","Add a wiki on your website","Adding Command Tutorial","Adding Object Typeclass Tutorial","Administrative Docs","Apache Config","Arxcode installing help","Async Process","Attributes","Banning","Batch Code Processor","Batch Command Processor","Batch Processors","Bootstrap & Evennia","Bootstrap Components and Utilities","Builder Docs","Building Permissions","Building Quickstart","Building a mech tutorial","Building menus","Choosing An SQL Server","Client Support Grid","Coding FAQ","Coding Introduction","Coding Utils","Command Cooldown","Command Duration","Command Prompt","Command Sets","Command System","Commands","Communications","Connection Screen","Continuous Integration","Contributing","Contributing to Evennia Docs","Coordinates","Custom Protocols","Customize channels","Debugging","Default Command Help","Default Exit Errors","Developer Central","Dialogues in events","Directory Overview","Docs refactoring","Dynamic In Game Map","EvEditor","EvMenu","EvMore","API Summary","Evennia Game Index","Evennia Introduction","Evennia for Diku Users","Evennia for MUSH Users","Evennia for roleplaying sessions","Execute Python Code","First Steps Coding","Game Planning","Gametime Tutorial","Getting Started","Glossary","Grapevine","Guest Logins","HAProxy Config (Optional)","Help System","Help System Tutorial","How To Get And Give Help","How to connect Evennia to Twitter","IRC","Implementing a game rule system","Inputfuncs","Installing on Android","Internationalization","Learn Python for Evennia The Hard Way","Licensing","Links","Locks","Manually Configuring Color","Mass and weight for objects","Messagepath","MonitorHandler","NPC shop Tutorial","New Models","Nicks","OOB","Objects","Online Setup","Parsing command arguments, theory and best practices","Portal And Server","Profiling","Python 3","Python basic introduction","Python basic tutorial part two","Quirks","RSS","Roadmap","Running Evennia in Docker","Screenshot","Scripts","Security","Server Conf","Sessions","Setting up PyCharm","Signals","Soft Code","Spawner and Prototypes","Start Stop Reload","Static In Game Map","Tags","Text Encodings","TextTags","TickerHandler","Turn based Combat System","Tutorial Aggressive NPCs","Tutorial NPCs listening","Tutorial Searching For Objects","Tutorial Tweeting Game Stats","Tutorial Vehicles","Tutorial World Introduction","Tutorial for basic MUSH like game","Tutorials","Typeclasses","Understanding Color Tags","Unit Testing","Updating Your Game","Using MUX as a Standard","Using Travis","Version Control","Weather Tutorial","Web Character Generation","Web Character View Tutorial","Web Features","Web Tutorial","Webclient","Webclient brainstorm","Wiki Index","Zones","evennia","evennia","evennia.accounts","evennia.accounts.accounts","evennia.accounts.admin","evennia.accounts.bots","evennia.accounts.manager","evennia.accounts.models","evennia.commands","evennia.commands.cmdhandler","evennia.commands.cmdparser","evennia.commands.cmdset","evennia.commands.cmdsethandler","evennia.commands.command","evennia.commands.default","evennia.commands.default.account","evennia.commands.default.admin","evennia.commands.default.batchprocess","evennia.commands.default.building","evennia.commands.default.cmdset_account","evennia.commands.default.cmdset_character","evennia.commands.default.cmdset_session","evennia.commands.default.cmdset_unloggedin","evennia.commands.default.comms","evennia.commands.default.general","evennia.commands.default.help","evennia.commands.default.muxcommand","evennia.commands.default.syscommands","evennia.commands.default.system","evennia.commands.default.tests","evennia.commands.default.unloggedin","evennia.comms","evennia.comms.admin","evennia.comms.channelhandler","evennia.comms.comms","evennia.comms.managers","evennia.comms.models","evennia.contrib","evennia.contrib.barter","evennia.contrib.building_menu","evennia.contrib.chargen","evennia.contrib.clothing","evennia.contrib.color_markups","evennia.contrib.custom_gametime","evennia.contrib.dice","evennia.contrib.email_login","evennia.contrib.extended_room","evennia.contrib.fieldfill","evennia.contrib.gendersub","evennia.contrib.health_bar","evennia.contrib.ingame_python","evennia.contrib.ingame_python.callbackhandler","evennia.contrib.ingame_python.commands","evennia.contrib.ingame_python.eventfuncs","evennia.contrib.ingame_python.scripts","evennia.contrib.ingame_python.tests","evennia.contrib.ingame_python.typeclasses","evennia.contrib.ingame_python.utils","evennia.contrib.mail","evennia.contrib.mapbuilder","evennia.contrib.menu_login","evennia.contrib.multidescer","evennia.contrib.puzzles","evennia.contrib.random_string_generator","evennia.contrib.rplanguage","evennia.contrib.rpsystem","evennia.contrib.security","evennia.contrib.security.auditing","evennia.contrib.security.auditing.outputs","evennia.contrib.security.auditing.server","evennia.contrib.security.auditing.tests","evennia.contrib.simpledoor","evennia.contrib.slow_exit","evennia.contrib.talking_npc","evennia.contrib.tree_select","evennia.contrib.turnbattle","evennia.contrib.turnbattle.tb_basic","evennia.contrib.turnbattle.tb_equip","evennia.contrib.turnbattle.tb_items","evennia.contrib.turnbattle.tb_magic","evennia.contrib.turnbattle.tb_range","evennia.contrib.tutorial_examples","evennia.contrib.tutorial_examples.bodyfunctions","evennia.contrib.tutorial_examples.cmdset_red_button","evennia.contrib.tutorial_examples.example_batch_code","evennia.contrib.tutorial_examples.red_button","evennia.contrib.tutorial_examples.red_button_scripts","evennia.contrib.tutorial_examples.tests","evennia.contrib.tutorial_world","evennia.contrib.tutorial_world.intro_menu","evennia.contrib.tutorial_world.mob","evennia.contrib.tutorial_world.objects","evennia.contrib.tutorial_world.rooms","evennia.contrib.unixcommand","evennia.contrib.wilderness","evennia.help","evennia.help.admin","evennia.help.manager","evennia.help.models","evennia.locks","evennia.locks.lockfuncs","evennia.locks.lockhandler","evennia.objects","evennia.objects.admin","evennia.objects.manager","evennia.objects.models","evennia.objects.objects","evennia.prototypes","evennia.prototypes.menus","evennia.prototypes.protfuncs","evennia.prototypes.prototypes","evennia.prototypes.spawner","evennia.scripts","evennia.scripts.admin","evennia.scripts.manager","evennia.scripts.models","evennia.scripts.monitorhandler","evennia.scripts.scripthandler","evennia.scripts.scripts","evennia.scripts.taskhandler","evennia.scripts.tickerhandler","evennia.server","evennia.server.admin","evennia.server.amp_client","evennia.server.connection_wizard","evennia.server.deprecations","evennia.server.evennia_launcher","evennia.server.game_index_client","evennia.server.game_index_client.client","evennia.server.game_index_client.service","evennia.server.initial_setup","evennia.server.inputfuncs","evennia.server.manager","evennia.server.models","evennia.server.portal","evennia.server.portal.amp","evennia.server.portal.amp_server","evennia.server.portal.grapevine","evennia.server.portal.irc","evennia.server.portal.mccp","evennia.server.portal.mssp","evennia.server.portal.mxp","evennia.server.portal.naws","evennia.server.portal.portal","evennia.server.portal.portalsessionhandler","evennia.server.portal.rss","evennia.server.portal.ssh","evennia.server.portal.ssl","evennia.server.portal.suppress_ga","evennia.server.portal.telnet","evennia.server.portal.telnet_oob","evennia.server.portal.telnet_ssl","evennia.server.portal.tests","evennia.server.portal.ttype","evennia.server.portal.webclient","evennia.server.portal.webclient_ajax","evennia.server.profiling","evennia.server.profiling.dummyrunner","evennia.server.profiling.dummyrunner_settings","evennia.server.profiling.memplot","evennia.server.profiling.settings_mixin","evennia.server.profiling.test_queries","evennia.server.profiling.tests","evennia.server.profiling.timetrace","evennia.server.server","evennia.server.serversession","evennia.server.session","evennia.server.sessionhandler","evennia.server.signals","evennia.server.throttle","evennia.server.validators","evennia.server.webserver","evennia.settings_default","evennia.typeclasses","evennia.typeclasses.admin","evennia.typeclasses.attributes","evennia.typeclasses.managers","evennia.typeclasses.models","evennia.typeclasses.tags","evennia.utils","evennia.utils.ansi","evennia.utils.batchprocessors","evennia.utils.containers","evennia.utils.create","evennia.utils.dbserialize","evennia.utils.eveditor","evennia.utils.evform","evennia.utils.evmenu","evennia.utils.evmore","evennia.utils.evtable","evennia.utils.gametime","evennia.utils.idmapper","evennia.utils.idmapper.manager","evennia.utils.idmapper.models","evennia.utils.idmapper.tests","evennia.utils.inlinefuncs","evennia.utils.logger","evennia.utils.optionclasses","evennia.utils.optionhandler","evennia.utils.picklefield","evennia.utils.search","evennia.utils.test_resources","evennia.utils.text2html","evennia.utils.utils","evennia.utils.validatorfuncs","evennia.web","evennia.web.urls","evennia.web.utils","evennia.web.utils.backends","evennia.web.utils.general_context","evennia.web.utils.middleware","evennia.web.utils.tests","evennia.web.webclient","evennia.web.webclient.urls","evennia.web.webclient.views","evennia.web.website","evennia.web.website.forms","evennia.web.website.templatetags","evennia.web.website.templatetags.addclass","evennia.web.website.tests","evennia.web.website.urls","evennia.web.website.views","Evennia Documentation","Toc"],titleterms:{"2017":138,"2019":[1,48,138],"3rd":138,"9th":138,"case":0,"class":[22,27,33,41,51,96,125,127],"default":[5,6,25,30,43,44,55,60,74,80,137,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171],"final":[49,75],"function":[22,42,51,53,80,89,95,102,114],"goto":51,"import":[26,38,41,95],"new":[3,4,6,58,60,69,86,97,102,114,125,127,133],"public":54,"return":[51,59,105],"static":111,"super":19,"switch":41,"try":41,Adding:[0,4,5,6,9,20,25,31,39,40,41,44,74,86,112,121,133],And:[70,92],For:119,NOT:77,PMs:58,TLS:8,The:[3,10,11,13,14,16,18,19,22,26,29,41,46,47,49,50,51,58,69,77,83,85,93,96,109,116,123,135],USE:77,Use:[26,103],Using:[49,52,84,86,90,93,109,112,127,129,130,140],Will:25,Yes:51,__unloggedin_look_command:43,abort:29,about:[29,43,115,125,128],abus:12,access:43,access_typ:80,account:[2,43,58,64,97,143,144,145,146,147,148,156],activ:[57,133],actual:[33,125],add:[3,4,23,25,60],add_choic:22,addclass:359,addcom:43,adding:127,addit:[9,39,41,44,100],address:25,admin:[43,64,97,135,145,157,173,237,244,254,263,315],administr:7,advanc:[18,29,53,87,110],affect:241,aggress:117,alia:[43,97],alias:112,all:[25,51,67,69],allcom:43,alpha:61,altern:[9,106],amp:276,amp_client:264,amp_serv:277,analyz:93,android:75,ani:[13,55],annot:119,anoth:[38,41,119],ansi:[27,114,126,321],apach:8,api:[1,38,45,53,137],app:[69,133],arbitrari:51,area:[111,123],arg:91,arg_regex:33,argument:[1,51,91],arm:21,arx:9,arxcod:9,ascii:27,ask:[33,51],assign:[19,33],assort:[10,14,31,33,40,51,112,118],async:10,asynchron:10,attach:[106,107],attack:[73,123],attribut:[11,64,97,316],attributehandl:11,audit:[208,209,210,211],aug:[1,48],auto:68,automat:25,avail:[35,59,107],backend:349,ban:[12,43],barter:179,base:[25,109,116],basic:[4,13,14,18,55,71,95,96,123,127,136],batch:[13,14,15,322],batchcod:[13,43],batchcommand:43,batchprocess:[43,158],batchprocessor:322,befor:26,best:91,beta:61,between:[13,51,125],block:[13,29,38],blockquot:38,bodyfunct:223,bold:38,boot:[12,43],bootstrap:[16,17],border:17,bot:146,brainstorm:[45,138],branch:[51,131],bridg:77,brief:[55,69],briefli:88,bug:[38,97],build:[18,19,20,21,22,38,43,49,58,61,85,111,124,159],builder:18,building_menu:[22,180],busi:85,button:[17,20],calendar:62,call:33,callabl:51,callback:[0,46,137],callbackhandl:192,caller:51,can:[11,22,55],capcha:133,card:17,care:103,caveat:[13,14,75,114,125],cboot:43,ccreat:43,cdesc:43,cdestroi:43,cemit:43,central:45,certif:67,chainsol:138,chang:[0,5,6,25,38,58,60,76,97,103,108,128,131,136],channel:[25,34,41,43,58,64],channelhandl:174,charact:[6,24,25,46,58,60,61,64,73,82,89,96,123,133,134],charcreat:43,chardelet:43,chargen:[123,181],chat:138,cheat:42,check:[11,80],checker:26,checkpoint:133,choic:22,choos:23,clean:9,clickabl:114,client:[24,83,88,90,135,137,269],client_opt:74,clock:43,clone:[9,131],cloth:182,cloud9:90,cmdabout:43,cmdaccess:43,cmdaddcom:43,cmdallcom:43,cmdban:43,cmdbatchcod:43,cmdbatchcommand:43,cmdboot:43,cmdcboot:43,cmdcdesc:43,cmdcdestroi:43,cmdcemit:43,cmdchannel:43,cmdchannelcr:43,cmdcharcreat:43,cmdchardelet:43,cmdclock:43,cmdcolortest:43,cmdcopi:43,cmdcpattr:43,cmdcreat:43,cmdcwho:43,cmddelcom:43,cmddesc:43,cmddestroi:43,cmddig:43,cmddrop:43,cmdemit:43,cmdexamin:43,cmdfind:43,cmdforc:43,cmdget:43,cmdgive:43,cmdhandler:150,cmdhelp:43,cmdhome:43,cmdic:43,cmdinventori:43,cmdirc2chan:43,cmdlink:43,cmdlistcmdset:43,cmdlock:43,cmdlook:43,cmdmvattr:43,cmdname:43,cmdnewpassword:43,cmdnick:43,cmdobject:43,cmdooc:43,cmdooclook:43,cmdopen:43,cmdoption:43,cmdpage:43,cmdparser:151,cmdpassword:43,cmdperm:43,cmdpose:43,cmdpy:43,cmdquell:43,cmdquit:43,cmdreload:43,cmdreset:43,cmdrss2chan:43,cmdsai:43,cmdscript:43,cmdserverload:43,cmdservic:43,cmdsession:43,cmdset:[5,43,152],cmdset_account:160,cmdset_charact:161,cmdset_red_button:224,cmdset_sess:162,cmdset_unloggedin:163,cmdsetattribut:43,cmdsetdesc:43,cmdsethandl:153,cmdsethelp:43,cmdsethom:43,cmdsetobjalia:43,cmdshutdown:43,cmdspawn:43,cmdstyle:43,cmdtag:43,cmdteleport:43,cmdtime:43,cmdtunnel:43,cmdtypeclass:43,cmdunban:43,cmdunconnectedconnect:43,cmdunconnectedcr:43,cmdunconnectedhelp:43,cmdunconnectedlook:43,cmdunconnectedquit:43,cmdunlink:43,cmdwall:43,cmdwhisper:43,cmdwho:43,cmdwipe:43,code:[8,13,22,25,26,27,38,41,42,50,59,60,61,73,85,87,108,124,128,131,322],collabor:57,color:[17,25,27,43,81,126],color_markup:183,colour:114,combat:[116,123],comfort:100,comm:[43,164,172,173,174,175,176,177],command:[5,14,22,25,28,29,30,31,32,33,35,41,42,43,44,45,53,58,60,62,68,71,73,81,85,88,91,97,100,116,121,123,127,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,193,322],comment:[44,49],commit:131,commun:[13,34],complet:80,complex:[22,119],compon:[17,45],comput:90,concept:[45,49,116],conclud:[39,123],conclus:[22,41,91,111],condit:[25,119],conf:104,config:[8,53,67,81],configur:[8,23,65,67,71,72,81,98,106,131,133],congratul:61,connect:[35,43,54,71,90,97],connection_wizard:265,contain:[100,323],content:[25,55],continu:36,contrib:[22,37,124,127,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235],contribut:[37,38,53],control:131,convert:91,cooldown:28,coordin:39,copi:[8,43],core:[45,53,56,64],cpattr:43,cprofil:93,creat:[0,2,3,5,6,12,20,21,27,33,36,43,51,53,69,86,89,97,100,111,121,123,125,133,324],createnpc:123,creatur:100,credit:79,crop:27,current:[42,62],custom:[4,5,7,10,22,40,41,51,57,62,80,81,105,113,124,127,135,137],custom_gametim:184,cwho:43,data:[6,11,40,51,105,106],databas:[9,53,68,86,97,109,128],dbref:25,dbserial:325,deal:102,debug:[13,42,103],debugg:106,decor:[10,51],dedent:27,dedic:133,defaultobject:97,defin:[31,33,34,51,80,86,102,131],definit:80,delai:[10,27,29],delcom:43,delimit:25,demo:61,depend:[9,128],deploi:100,deprec:[38,266],desc:[43,51],descer:57,descript:100,design:85,destroi:43,detail:[43,69,133],develop:[45,57,79,100,103,110,124,127],dialogu:46,dice:[58,185],dictionari:51,differ:[56,125],dig:43,diku:56,direct:106,directori:[47,90,104],disabl:103,discuss:79,displai:[24,27,49,62],django:[64,80,110,119,133,135],doc:[7,18,26,38,48],docker:100,document:[37,38,129,363],don:[13,55,100],donat:37,down:[20,110,121],drop:43,dummi:73,dummyrunn:[93,298],dummyrunner_set:299,durat:29,dure:110,dynam:[33,49,51,127],earli:7,echo:74,edit:[22,38,50,123],editnpc:123,editor:50,effect:241,elev:0,email_login:186,emit:43,emul:56,encod:[15,113],encrypt:90,end:41,engin:124,enjoi:8,enter:121,entir:0,entri:[20,68],error:[44,95,102,110],eveditor:[50,326],evennia:[4,5,7,8,9,16,23,25,26,38,41,42,45,47,54,55,56,57,58,67,71,75,76,77,79,90,91,95,96,100,106,109,110,124,126,127,128,131,137,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363],evennia_launch:267,evenniatest:127,event:[0,46,62],eventfunc:194,everi:30,everyth:22,evform:[58,327],evmenu:[25,51,328],evmor:[52,329],evtabl:[25,58,330],examin:[42,43],exampl:[39,42,46,50,51,73,80,83,90,102,108,116,127,137,322],example_batch_cod:225,execut:[42,59],exercis:77,exist:[6,125],exit:[0,6,25,33,44,89],expand:[116,121],explan:22,explor:[26,96],extended_room:187,extern:103,familiar:[56,57],faq:25,faster:127,featur:[38,55,69,135],feel:56,field:64,fieldfil:188,file:[13,14,15,38,43,104,127,131,322],fill:27,find:[39,43,59],firewal:103,first:[0,22,46,57,60,95,124],fix:131,flexibl:38,folder:[9,26,131],forc:43,foreground:110,forget:97,fork:[37,131],form:[17,133,357],format:51,forum:79,framework:79,from:[4,20,25,51,55,60,90,96,100,133,137,138,328],front:136,full:[22,41,69,83],func:41,further:[8,10,136],futur:[21,138],game:[7,26,27,39,45,47,49,54,55,57,58,59,61,62,73,90,100,111,120,123,124,127,128,131],game_index_cli:[268,269,270],gamedir:38,gameplai:122,gametim:[62,331],gap:77,gendersub:189,gener:[17,22,41,43,45,79,123,124,133,165,328],general_context:350,get:[20,43,51,63,67,70,119],get_client_opt:74,get_input:51,get_inputfunc:74,get_valu:74,git:[64,131],github:[38,64],give:[43,70],given:112,global:[53,91,102],glossari:64,gmcp:88,godhood:20,goldenlayout:137,googl:133,grant:58,grapevin:[65,278],griatch:[1,48,138],grid:[24,49],group:119,guest:66,gui:138,guid:9,handl:[12,69,103,110],handler:[53,107,116],haproxi:67,hard:77,have:123,head:38,health_bar:190,hello:95,help:[9,20,26,37,43,68,69,70,166,236,237,238,239],here:[26,55,60,96],hierarchi:58,hint:8,home:43,hook:125,host:90,hous:20,how:[2,33,58,70,71,89,100,113,121,125],html:[3,133],http:[8,67],idea:138,idmapp:[332,333,334,335],imag:[100,103],implement:73,improv:69,index:[54,69,133,139],info:[79,110],inform:[45,90],infrastructur:73,ingame_python:[191,192,193,194,195,196,197,198],ingo:83,inherit:140,inherits_from:27,initi:[6,23,25,116],initial_setup:271,inlin:114,inlinefunc:[114,336],input:[33,51,88],inputfunc:[74,83,88,272],insid:119,instal:[4,7,8,9,23,63,67,71,75,90,100,122,131,133],instanc:[33,86,125],instruct:88,integr:36,interact:[10,13,14,26],interfac:103,internation:76,interpret:106,intro_menu:230,introduct:[9,26,49,51,55,93,95,111,122,133],inventori:[43,82],irc2chan:43,irc:[72,279],issu:24,ital:38,jan:138,johnni:1,join:41,jumbotron:17,just:55,kei:[22,51,109],keyword:46,kill:110,know:[55,103],known:97,kovitiku:48,languag:[51,76],last:25,latest:[100,128],latin:25,launch:[50,51],layout:[16,41,47],learn:[26,55,77],leav:[41,121],legend:24,let:[13,42,69,90],librari:[47,96],licens:78,life:7,lift:12,like:[13,56,123],limit:[13,14,119],line:[21,42,50],link:[38,43,79,94,114],linux:[36,63,110],list:[38,42],list_nod:51,listen:118,literatur:79,live:110,local:[38,90,91],lock:[11,43,80,121,240,241,242],lockdown:90,lockfunc:241,lockhandl:242,log:[9,27,69,95,103],logfil:106,logger:337,login:[66,74],logo:136,longer:46,look:[5,43,56,95,123],lookup:53,mac:[63,110],machin:90,magic:97,mail:[131,199],main:[38,53],make:[20,21,27,57,58,60,67,121,123,127,131],manag:[4,137,147,176,238,245,255,273,317,333],manual:[54,81],map:[49,111],mapbuild:200,mapper:49,mariadb:23,markup:321,mass:82,master:[58,131],match:97,mccp:280,mech:21,mechan:124,memplot:300,menu:[22,27,51,85,249,328],menu_login:201,merg:31,messag:[0,25,83,88],messagepath:83,method:[33,41,81,97],middlewar:351,migrat:[4,64,128],mind:131,mini:127,minimap:111,miscellan:124,mob:231,mod_proxi:8,mod_ssl:8,mod_wsgi:8,mode:[13,14,64,90,105,110],model:[53,86,127,133,148,177,239,246,256,274,318,334],modif:58,modifi:[8,30],modul:[71,73,94,95,109,116],monitor:74,monitorhandl:[84,257],more:[16,29,38,53,57,80,81,128,135],most:26,move:[25,121],msdp:88,msg:[34,81,83],mssp:281,mud:79,multi:57,multidesc:[57,202],multipl:[11,119],multisess:[64,105],mush:[57,123],mutabl:[11,97],mux:[129,241],muxcommand:167,mvattr:43,mxp:282,mysql:23,name:[12,43,88,97,241],naw:283,ndb:11,need:[0,55],nest:22,next:[57,63,71],nice:67,nick:[43,87],node:51,non:[11,25,28,54],nop:24,note:[8,10,14,15,31,33,38,40,51,87,112,118,122,127],npc:[85,117,118,123],number:91,object:[5,6,11,20,25,27,43,59,60,61,64,80,82,89,96,97,105,111,112,119,121,124,232,243,244,245,246,247],objmanipcommand:43,obtain:133,oct:138,octob:138,off:25,offici:79,olc:109,one:39,onli:[38,110],onlin:[38,90,131],oob:88,ooc:43,open:[43,85],oper:[0,10],option:[1,22,43,51,58,67,90,91,103,110],optionclass:338,optionhandl:339,other:[23,33,45,79,90,104],our:[0,22,69,95,96,108,121,133],out:[25,40,58],outgo:83,output:[59,127,209],outputcommand:88,outputfunc:88,outsid:[59,90],overal:73,overload:[81,125,135],overrid:97,overview:[36,47,86,116,136],own:[2,33,40,74,89,90,100,137],page:[3,4,43,69,135,136],parent:[57,86],pars:[25,41,91,95],part:96,parti:79,password:43,patch:37,path:[13,83],paus:[0,29,33],pax:9,pdb:42,perm:43,permiss:[19,58,80,112,122],perpetu:61,persist:[11,28,29,50],person:20,picklefield:340,pictur:133,pip:[4,64],plai:67,plan:[26,61,111],player:57,plugin:137,point:26,polici:129,port:[90,103],portal:[83,92,105,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296],portalsess:83,portalsessionhandl:[83,285],pose:43,posit:1,possibl:51,post:138,postgresql:23,practic:91,prepar:36,prerequisit:75,prevent:25,privileg:4,problem:108,process:[10,110],processor:[13,14,15,322],product:[21,100],profil:[93,297,298,299,300,301,302,303,304],program:[42,55],progress:77,project:[36,106],prompt:[30,51],properti:[2,11,31,33,34,51,64,89,102,105,112,125],protfunc:[109,250],protocol:[40,45,55,88],prototyp:[109,248,249,250,251,252],proxi:[8,90],publicli:131,pudb:42,puppet:64,push:[20,131],put:[67,69,131],puzzl:203,pycharm:106,python:[13,26,55,57,59,71,77,79,94,95,96],quell:[19,43,80,122],queri:[119,125],quick:[36,63],quickstart:20,quiet:91,quirk:97,quit:43,random_string_gener:204,read:[10,26,135,136],real:13,reboot:110,recapcha:133,receiv:[40,88],red_button:226,red_button_script:227,reduc:1,refactor:[1,48],refer:[25,38],regist:90,relat:[45,62],releas:[38,61],relev:90,reli:13,reload:[8,25,43,97,110],remark:123,rememb:38,remind:69,remot:[90,131],remov:[25,112],repeat:[51,74],repo:9,report:38,repositori:[26,37,38,64,131],request:38,requir:63,reset:[43,110,128],reshuffl:20,resourc:79,rest:38,restart:8,retriev:11,roadmap:99,role:58,roleplai:58,roller:58,rom:56,room:[0,6,25,39,49,58,61,82,89,233],rplanguag:205,rpsystem:206,rss2chan:43,rss:[98,286],rule:[31,73,116],run:[4,7,25,33,42,55,75,100,106,127],runner:127,safeti:13,sage:48,sai:43,same:[46,51],save:11,schema:128,score:123,screen:35,screenshot:101,script:[43,64,102,121,195,253,254,255,256,257,258,259,260,261],scripthandl:258,search:[27,31,39,53,86,91,112,119,341],secret:133,secur:[8,67,103,207,208,209,210,211],see:[69,97],select:25,self:91,send:[30,40,88],sent:30,separ:22,sept:[1,48],server:[7,8,23,43,76,90,92,104,105,123,210,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312],serverconf:104,serversess:[83,306],serversessionhandl:83,servic:[43,270],session:[25,43,58,64,83,105,307],sessionhandl:[105,308],set:[4,5,9,31,43,49,51,54,62,65,72,80,81,90,98,103,104,106,123,127,131],setdesc:43,sethelp:43,sethom:43,setpow:123,settings_default:313,settings_mixin:301,setup:[8,9,23,36,90],sever:[39,46,91],share:131,sharedmemorymodel:86,sheet:[42,58],shell:96,shop:85,shortcut:[11,53],show:[51,123],shut:110,shutdown:43,sidebar:38,signal:[107,309],simpl:[3,22,29,42,51,80,93,127],simpledoor:212,singl:11,singleton:53,site:[64,135],sitekei:133,slow_exit:213,soft:108,softcod:[57,108],solut:108,some:[39,41,56],somewher:55,sourc:[38,43,106],space:17,spawn:[43,57,109],spawner:[109,252],special:38,specif:5,spread:37,spuriou:24,sql:23,sqlite3:23,ssh:[88,103,287],ssl:[90,288],standard:[55,62,129],start:[9,58,63,85,100,110],stat:120,statu:[94,110],step:[5,9,20,42,57,60,61,65,71,72,75,98,124,131,133],stop:110,storag:51,store:[6,11,25,51,109],string:[51,80,91,94,328],strip:91,structur:38,studi:0,stuff:[55,123],style:[17,43],sub:22,subclass:89,subject:96,suit:127,summari:[12,53,55],superus:80,support:[24,55,88],suppress_ga:289,surround:42,swap:125,synchron:10,syntax:[26,38,57,110,322],syscommand:168,system:[16,32,33,43,45,61,68,69,73,80,116,123,124,169],tabl:[25,27,38,86],tag:[39,43,112,126,319],talking_npc:214,taskhandl:260,tb_basic:217,tb_equip:218,tb_item:219,tb_magic:220,tb_rang:221,teamciti:36,tech:61,technic:[38,55],tel:43,telnet:[24,88,90,290],telnet_oob:291,telnet_ssl:292,templat:[36,51,69,133,328],templatetag:[358,359],tempmsg:34,temporari:51,termux:75,test:[55,59,93,123,127,170,196,211,228,293,303,335,352,360],test_queri:302,test_resourc:342,text2html:343,text:[27,38,51,74,113,114,136],texttag:114,theori:91,thi:[41,69],thing:[38,56,57,119],third:79,throttl:310,through:[37,42,100],ticker:[64,115],tickerhandl:[115,261],tie:58,time:[27,33,43,62,102,108],time_format:27,timer:93,timetrac:304,tip:131,titeuf87:138,to_byt:27,to_str:27,toc:364,togeth:[67,69],tool:[12,27,79],traceback:26,track:131,train:[73,121],translat:76,travi:130,treat:13,tree_select:215,trick:131,troubleshoot:[60,63,75],ttype:294,tunnel:43,turn:[25,97,116],turnbattl:[216,217,218,219,220,221],tutori:[0,5,6,18,21,46,62,69,85,96,116,117,118,119,120,121,122,123,124,127,132,134,136],tutorial_exampl:[222,223,224,225,226,227,228],tutorial_world:[229,230,231,232,233],tweak:[60,96],tweet:[71,120],twist:[64,94],twitter:71,two:96,type:[2,5,6,11,60,89],typeclass:[6,43,45,53,57,64,81,97,119,124,125,140,197,314,315,316,317,318,319],unban:43,under:131,understand:126,ungm:58,uninstal:122,unit:127,unixcommand:234,unlink:43,unloggedin:[43,171],unmonitor:74,unrepeat:74,updat:[6,25,60,125,128,131],upgrad:128,upload:103,upstream:[97,131],url:[3,4,69,133,347,354,361],usag:[1,13,14,50],use:[55,97,115],used:[25,33],useful:[33,79],user:[19,33,56,57,69,103,124,131],userpassword:43,using:[0,42,119,127],util:[17,27,29,33,53,79,106,119,198,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,348,349,350,351,352],valid:[80,311],validatorfunc:345,valu:[51,109,119],variabl:[42,59],vehicl:121,verbatim:38,version:[38,131],versu:10,vhost:8,view:[3,68,69,133,134,135,355,362],virtualenv:64,voic:0,wai:[29,51,77],wall:43,want:[55,100],warn:38,weather:132,web:[3,45,88,90,97,103,124,133,134,135,136,137,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362],webclient:[137,138,295,353,354,355],webclient_ajax:296,webclient_gui:137,webserv:[103,312],websit:[4,135,356,357,358,359,360,361,362],websocket:[8,67],weight:82,what:[11,16,36,41,55,91,100],when:[25,115],where:[5,55,60,63,96],whisper:43,whitepag:45,who:[33,43],wiki:[4,139],wilder:235,willing:55,window:[9,63],wipe:43,wizard:54,word:37,work:[7,33,55,69,77,91,100,121,125,131],workaround:24,world:[18,20,61,95,122],write:[40,127,137],xterm256:[114,126],yield:[29,51],you:[26,55],your:[2,4,19,20,26,33,39,40,60,74,86,89,90,97,100,103,108,128,131,133,137],yourself:[20,60,61],zone:140}}) \ No newline at end of file +Search.setIndex({docnames:["A-voice-operated-elevator-using-events","API-refactoring","Accounts","Add-a-simple-new-web-page","Add-a-wiki-on-your-website","Adding-Command-Tutorial","Adding-Object-Typeclass-Tutorial","Administrative-Docs","Apache-Config","Arxcode-installing-help","Async-Process","Attributes","Banning","Batch-Code-Processor","Batch-Command-Processor","Batch-Processors","Bootstrap-&-Evennia","Bootstrap-Components-and-Utilities","Builder-Docs","Building-Permissions","Building-Quickstart","Building-a-mech-tutorial","Building-menus","Choosing-An-SQL-Server","Client-Support-Grid","Coding-FAQ","Coding-Introduction","Coding-Utils","Command-Cooldown","Command-Duration","Command-Prompt","Command-Sets","Command-System","Commands","Communications","Connection-Screen","Continuous-Integration","Contributing","Contributing-Docs","Coordinates","Custom-Protocols","Customize-channels","Debugging","Default-Command-Help","Default-Exit-Errors","Developer-Central","Dialogues-in-events","Directory-Overview","Docs-refactoring","Dynamic-In-Game-Map","EvEditor","EvMenu","EvMore","Evennia-API","Evennia-Game-Index","Evennia-Introduction","Evennia-for-Diku-Users","Evennia-for-MUSH-Users","Evennia-for-roleplaying-sessions","Execute-Python-Code","First-Steps-Coding","Game-Planning","Gametime-Tutorial","Getting-Started","Glossary","Grapevine","Guest-Logins","HAProxy-Config","Help-System","Help-System-Tutorial","How-To-Get-And-Give-Help","How-to-connect-Evennia-to-Twitter","IRC","Implementing-a-game-rule-system","Inputfuncs","Installing-on-Android","Internationalization","Learn-Python-for-Evennia-The-Hard-Way","Licensing","Links","Locks","Manually-Configuring-Color","Mass-and-weight-for-objects","Messagepath","MonitorHandler","NPC-shop-Tutorial","New-Models","Nicks","OOB","Objects","Online-Setup","Parsing-command-arguments,-theory-and-best-practices","Portal-And-Server","Profiling","Python-3","Python-basic-introduction","Python-basic-tutorial-part-two","Quirks","RSS","Roadmap","Running-Evennia-in-Docker","Screenshot","Scripts","Security","Server-Conf","Sessions","Setting-up-PyCharm","Signals","Soft-Code","Spawner-and-Prototypes","Start-Stop-Reload","Static-In-Game-Map","Tags","Text-Encodings","TextTags","TickerHandler","Turn-based-Combat-System","Tutorial-Aggressive-NPCs","Tutorial-NPCs-listening","Tutorial-Searching-For-Objects","Tutorial-Tweeting-Game-Stats","Tutorial-Vehicles","Tutorial-World-Introduction","Tutorial-for-basic-MUSH-like-game","Tutorials","Typeclasses","Understanding-Color-Tags","Unit-Testing","Updating-Your-Game","Using-MUX-as-a-Standard","Using-Travis","Version-Control","Weather-Tutorial","Web-Character-Generation","Web-Character-View-Tutorial","Web-Features","Web-Tutorial","Webclient","Webclient-brainstorm","Wiki-Index","Zones","api/evennia","api/evennia-api","api/evennia.accounts","api/evennia.accounts.accounts","api/evennia.accounts.admin","api/evennia.accounts.bots","api/evennia.accounts.manager","api/evennia.accounts.models","api/evennia.commands","api/evennia.commands.cmdhandler","api/evennia.commands.cmdparser","api/evennia.commands.cmdset","api/evennia.commands.cmdsethandler","api/evennia.commands.command","api/evennia.commands.default","api/evennia.commands.default.account","api/evennia.commands.default.admin","api/evennia.commands.default.batchprocess","api/evennia.commands.default.building","api/evennia.commands.default.cmdset_account","api/evennia.commands.default.cmdset_character","api/evennia.commands.default.cmdset_session","api/evennia.commands.default.cmdset_unloggedin","api/evennia.commands.default.comms","api/evennia.commands.default.general","api/evennia.commands.default.help","api/evennia.commands.default.muxcommand","api/evennia.commands.default.syscommands","api/evennia.commands.default.system","api/evennia.commands.default.tests","api/evennia.commands.default.unloggedin","api/evennia.comms","api/evennia.comms.admin","api/evennia.comms.channelhandler","api/evennia.comms.comms","api/evennia.comms.managers","api/evennia.comms.models","api/evennia.contrib","api/evennia.contrib.barter","api/evennia.contrib.building_menu","api/evennia.contrib.chargen","api/evennia.contrib.clothing","api/evennia.contrib.color_markups","api/evennia.contrib.custom_gametime","api/evennia.contrib.dice","api/evennia.contrib.email_login","api/evennia.contrib.extended_room","api/evennia.contrib.fieldfill","api/evennia.contrib.gendersub","api/evennia.contrib.health_bar","api/evennia.contrib.ingame_python","api/evennia.contrib.ingame_python.callbackhandler","api/evennia.contrib.ingame_python.commands","api/evennia.contrib.ingame_python.eventfuncs","api/evennia.contrib.ingame_python.scripts","api/evennia.contrib.ingame_python.tests","api/evennia.contrib.ingame_python.typeclasses","api/evennia.contrib.ingame_python.utils","api/evennia.contrib.mail","api/evennia.contrib.mapbuilder","api/evennia.contrib.menu_login","api/evennia.contrib.multidescer","api/evennia.contrib.puzzles","api/evennia.contrib.random_string_generator","api/evennia.contrib.rplanguage","api/evennia.contrib.rpsystem","api/evennia.contrib.security","api/evennia.contrib.security.auditing","api/evennia.contrib.security.auditing.outputs","api/evennia.contrib.security.auditing.server","api/evennia.contrib.security.auditing.tests","api/evennia.contrib.simpledoor","api/evennia.contrib.slow_exit","api/evennia.contrib.talking_npc","api/evennia.contrib.tree_select","api/evennia.contrib.turnbattle","api/evennia.contrib.turnbattle.tb_basic","api/evennia.contrib.turnbattle.tb_equip","api/evennia.contrib.turnbattle.tb_items","api/evennia.contrib.turnbattle.tb_magic","api/evennia.contrib.turnbattle.tb_range","api/evennia.contrib.tutorial_examples","api/evennia.contrib.tutorial_examples.bodyfunctions","api/evennia.contrib.tutorial_examples.cmdset_red_button","api/evennia.contrib.tutorial_examples.example_batch_code","api/evennia.contrib.tutorial_examples.red_button","api/evennia.contrib.tutorial_examples.red_button_scripts","api/evennia.contrib.tutorial_examples.tests","api/evennia.contrib.tutorial_world","api/evennia.contrib.tutorial_world.intro_menu","api/evennia.contrib.tutorial_world.mob","api/evennia.contrib.tutorial_world.objects","api/evennia.contrib.tutorial_world.rooms","api/evennia.contrib.unixcommand","api/evennia.contrib.wilderness","api/evennia.help","api/evennia.help.admin","api/evennia.help.manager","api/evennia.help.models","api/evennia.locks","api/evennia.locks.lockfuncs","api/evennia.locks.lockhandler","api/evennia.objects","api/evennia.objects.admin","api/evennia.objects.manager","api/evennia.objects.models","api/evennia.objects.objects","api/evennia.prototypes","api/evennia.prototypes.menus","api/evennia.prototypes.protfuncs","api/evennia.prototypes.prototypes","api/evennia.prototypes.spawner","api/evennia.scripts","api/evennia.scripts.admin","api/evennia.scripts.manager","api/evennia.scripts.models","api/evennia.scripts.monitorhandler","api/evennia.scripts.scripthandler","api/evennia.scripts.scripts","api/evennia.scripts.taskhandler","api/evennia.scripts.tickerhandler","api/evennia.server","api/evennia.server.admin","api/evennia.server.amp_client","api/evennia.server.connection_wizard","api/evennia.server.deprecations","api/evennia.server.evennia_launcher","api/evennia.server.game_index_client","api/evennia.server.game_index_client.client","api/evennia.server.game_index_client.service","api/evennia.server.initial_setup","api/evennia.server.inputfuncs","api/evennia.server.manager","api/evennia.server.models","api/evennia.server.portal","api/evennia.server.portal.amp","api/evennia.server.portal.amp_server","api/evennia.server.portal.grapevine","api/evennia.server.portal.irc","api/evennia.server.portal.mccp","api/evennia.server.portal.mssp","api/evennia.server.portal.mxp","api/evennia.server.portal.naws","api/evennia.server.portal.portal","api/evennia.server.portal.portalsessionhandler","api/evennia.server.portal.rss","api/evennia.server.portal.ssh","api/evennia.server.portal.ssl","api/evennia.server.portal.suppress_ga","api/evennia.server.portal.telnet","api/evennia.server.portal.telnet_oob","api/evennia.server.portal.telnet_ssl","api/evennia.server.portal.tests","api/evennia.server.portal.ttype","api/evennia.server.portal.webclient","api/evennia.server.portal.webclient_ajax","api/evennia.server.profiling","api/evennia.server.profiling.dummyrunner","api/evennia.server.profiling.dummyrunner_settings","api/evennia.server.profiling.memplot","api/evennia.server.profiling.settings_mixin","api/evennia.server.profiling.test_queries","api/evennia.server.profiling.tests","api/evennia.server.profiling.timetrace","api/evennia.server.server","api/evennia.server.serversession","api/evennia.server.session","api/evennia.server.sessionhandler","api/evennia.server.signals","api/evennia.server.throttle","api/evennia.server.validators","api/evennia.server.webserver","api/evennia.settings_default","api/evennia.typeclasses","api/evennia.typeclasses.admin","api/evennia.typeclasses.attributes","api/evennia.typeclasses.managers","api/evennia.typeclasses.models","api/evennia.typeclasses.tags","api/evennia.utils","api/evennia.utils.ansi","api/evennia.utils.batchprocessors","api/evennia.utils.containers","api/evennia.utils.create","api/evennia.utils.dbserialize","api/evennia.utils.eveditor","api/evennia.utils.evform","api/evennia.utils.evmenu","api/evennia.utils.evmore","api/evennia.utils.evtable","api/evennia.utils.gametime","api/evennia.utils.idmapper","api/evennia.utils.idmapper.manager","api/evennia.utils.idmapper.models","api/evennia.utils.idmapper.tests","api/evennia.utils.inlinefuncs","api/evennia.utils.logger","api/evennia.utils.optionclasses","api/evennia.utils.optionhandler","api/evennia.utils.picklefield","api/evennia.utils.search","api/evennia.utils.test_resources","api/evennia.utils.text2html","api/evennia.utils.utils","api/evennia.utils.validatorfuncs","api/evennia.web","api/evennia.web.urls","api/evennia.web.utils","api/evennia.web.utils.backends","api/evennia.web.utils.general_context","api/evennia.web.utils.middleware","api/evennia.web.utils.tests","api/evennia.web.webclient","api/evennia.web.webclient.urls","api/evennia.web.webclient.views","api/evennia.web.website","api/evennia.web.website.forms","api/evennia.web.website.templatetags","api/evennia.web.website.templatetags.addclass","api/evennia.web.website.tests","api/evennia.web.website.urls","api/evennia.web.website.views","index","toc"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":1,"sphinx.ext.todo":2,"sphinx.ext.viewcode":1,sphinx:56},filenames:["A-voice-operated-elevator-using-events.md","API-refactoring.md","Accounts.md","Add-a-simple-new-web-page.md","Add-a-wiki-on-your-website.md","Adding-Command-Tutorial.md","Adding-Object-Typeclass-Tutorial.md","Administrative-Docs.md","Apache-Config.md","Arxcode-installing-help.md","Async-Process.md","Attributes.md","Banning.md","Batch-Code-Processor.md","Batch-Command-Processor.md","Batch-Processors.md","Bootstrap-&-Evennia.md","Bootstrap-Components-and-Utilities.md","Builder-Docs.md","Building-Permissions.md","Building-Quickstart.md","Building-a-mech-tutorial.md","Building-menus.md","Choosing-An-SQL-Server.md","Client-Support-Grid.md","Coding-FAQ.md","Coding-Introduction.md","Coding-Utils.md","Command-Cooldown.md","Command-Duration.md","Command-Prompt.md","Command-Sets.md","Command-System.md","Commands.md","Communications.md","Connection-Screen.md","Continuous-Integration.md","Contributing.md","Contributing-Docs.md","Coordinates.md","Custom-Protocols.md","Customize-channels.md","Debugging.md","Default-Command-Help.md","Default-Exit-Errors.md","Developer-Central.md","Dialogues-in-events.md","Directory-Overview.md","Docs-refactoring.md","Dynamic-In-Game-Map.md","EvEditor.md","EvMenu.md","EvMore.md","Evennia-API.md","Evennia-Game-Index.md","Evennia-Introduction.md","Evennia-for-Diku-Users.md","Evennia-for-MUSH-Users.md","Evennia-for-roleplaying-sessions.md","Execute-Python-Code.md","First-Steps-Coding.md","Game-Planning.md","Gametime-Tutorial.md","Getting-Started.md","Glossary.md","Grapevine.md","Guest-Logins.md","HAProxy-Config.md","Help-System.md","Help-System-Tutorial.md","How-To-Get-And-Give-Help.md","How-to-connect-Evennia-to-Twitter.md","IRC.md","Implementing-a-game-rule-system.md","Inputfuncs.md","Installing-on-Android.md","Internationalization.md","Learn-Python-for-Evennia-The-Hard-Way.md","Licensing.md","Links.md","Locks.md","Manually-Configuring-Color.md","Mass-and-weight-for-objects.md","Messagepath.md","MonitorHandler.md","NPC-shop-Tutorial.md","New-Models.md","Nicks.md","OOB.md","Objects.md","Online-Setup.md","Parsing-command-arguments,-theory-and-best-practices.md","Portal-And-Server.md","Profiling.md","Python-3.md","Python-basic-introduction.md","Python-basic-tutorial-part-two.md","Quirks.md","RSS.md","Roadmap.md","Running-Evennia-in-Docker.md","Screenshot.md","Scripts.md","Security.md","Server-Conf.md","Sessions.md","Setting-up-PyCharm.md","Signals.md","Soft-Code.md","Spawner-and-Prototypes.md","Start-Stop-Reload.md","Static-In-Game-Map.md","Tags.md","Text-Encodings.md","TextTags.md","TickerHandler.md","Turn-based-Combat-System.md","Tutorial-Aggressive-NPCs.md","Tutorial-NPCs-listening.md","Tutorial-Searching-For-Objects.md","Tutorial-Tweeting-Game-Stats.md","Tutorial-Vehicles.md","Tutorial-World-Introduction.md","Tutorial-for-basic-MUSH-like-game.md","Tutorials.md","Typeclasses.md","Understanding-Color-Tags.md","Unit-Testing.md","Updating-Your-Game.md","Using-MUX-as-a-Standard.md","Using-Travis.md","Version-Control.md","Weather-Tutorial.md","Web-Character-Generation.md","Web-Character-View-Tutorial.md","Web-Features.md","Web-Tutorial.md","Webclient.md","Webclient-brainstorm.md","Wiki-Index.md","Zones.md","api/evennia.rst","api/evennia-api.rst","api/evennia.accounts.rst","api/evennia.accounts.accounts.rst","api/evennia.accounts.admin.rst","api/evennia.accounts.bots.rst","api/evennia.accounts.manager.rst","api/evennia.accounts.models.rst","api/evennia.commands.rst","api/evennia.commands.cmdhandler.rst","api/evennia.commands.cmdparser.rst","api/evennia.commands.cmdset.rst","api/evennia.commands.cmdsethandler.rst","api/evennia.commands.command.rst","api/evennia.commands.default.rst","api/evennia.commands.default.account.rst","api/evennia.commands.default.admin.rst","api/evennia.commands.default.batchprocess.rst","api/evennia.commands.default.building.rst","api/evennia.commands.default.cmdset_account.rst","api/evennia.commands.default.cmdset_character.rst","api/evennia.commands.default.cmdset_session.rst","api/evennia.commands.default.cmdset_unloggedin.rst","api/evennia.commands.default.comms.rst","api/evennia.commands.default.general.rst","api/evennia.commands.default.help.rst","api/evennia.commands.default.muxcommand.rst","api/evennia.commands.default.syscommands.rst","api/evennia.commands.default.system.rst","api/evennia.commands.default.tests.rst","api/evennia.commands.default.unloggedin.rst","api/evennia.comms.rst","api/evennia.comms.admin.rst","api/evennia.comms.channelhandler.rst","api/evennia.comms.comms.rst","api/evennia.comms.managers.rst","api/evennia.comms.models.rst","api/evennia.contrib.rst","api/evennia.contrib.barter.rst","api/evennia.contrib.building_menu.rst","api/evennia.contrib.chargen.rst","api/evennia.contrib.clothing.rst","api/evennia.contrib.color_markups.rst","api/evennia.contrib.custom_gametime.rst","api/evennia.contrib.dice.rst","api/evennia.contrib.email_login.rst","api/evennia.contrib.extended_room.rst","api/evennia.contrib.fieldfill.rst","api/evennia.contrib.gendersub.rst","api/evennia.contrib.health_bar.rst","api/evennia.contrib.ingame_python.rst","api/evennia.contrib.ingame_python.callbackhandler.rst","api/evennia.contrib.ingame_python.commands.rst","api/evennia.contrib.ingame_python.eventfuncs.rst","api/evennia.contrib.ingame_python.scripts.rst","api/evennia.contrib.ingame_python.tests.rst","api/evennia.contrib.ingame_python.typeclasses.rst","api/evennia.contrib.ingame_python.utils.rst","api/evennia.contrib.mail.rst","api/evennia.contrib.mapbuilder.rst","api/evennia.contrib.menu_login.rst","api/evennia.contrib.multidescer.rst","api/evennia.contrib.puzzles.rst","api/evennia.contrib.random_string_generator.rst","api/evennia.contrib.rplanguage.rst","api/evennia.contrib.rpsystem.rst","api/evennia.contrib.security.rst","api/evennia.contrib.security.auditing.rst","api/evennia.contrib.security.auditing.outputs.rst","api/evennia.contrib.security.auditing.server.rst","api/evennia.contrib.security.auditing.tests.rst","api/evennia.contrib.simpledoor.rst","api/evennia.contrib.slow_exit.rst","api/evennia.contrib.talking_npc.rst","api/evennia.contrib.tree_select.rst","api/evennia.contrib.turnbattle.rst","api/evennia.contrib.turnbattle.tb_basic.rst","api/evennia.contrib.turnbattle.tb_equip.rst","api/evennia.contrib.turnbattle.tb_items.rst","api/evennia.contrib.turnbattle.tb_magic.rst","api/evennia.contrib.turnbattle.tb_range.rst","api/evennia.contrib.tutorial_examples.rst","api/evennia.contrib.tutorial_examples.bodyfunctions.rst","api/evennia.contrib.tutorial_examples.cmdset_red_button.rst","api/evennia.contrib.tutorial_examples.example_batch_code.rst","api/evennia.contrib.tutorial_examples.red_button.rst","api/evennia.contrib.tutorial_examples.red_button_scripts.rst","api/evennia.contrib.tutorial_examples.tests.rst","api/evennia.contrib.tutorial_world.rst","api/evennia.contrib.tutorial_world.intro_menu.rst","api/evennia.contrib.tutorial_world.mob.rst","api/evennia.contrib.tutorial_world.objects.rst","api/evennia.contrib.tutorial_world.rooms.rst","api/evennia.contrib.unixcommand.rst","api/evennia.contrib.wilderness.rst","api/evennia.help.rst","api/evennia.help.admin.rst","api/evennia.help.manager.rst","api/evennia.help.models.rst","api/evennia.locks.rst","api/evennia.locks.lockfuncs.rst","api/evennia.locks.lockhandler.rst","api/evennia.objects.rst","api/evennia.objects.admin.rst","api/evennia.objects.manager.rst","api/evennia.objects.models.rst","api/evennia.objects.objects.rst","api/evennia.prototypes.rst","api/evennia.prototypes.menus.rst","api/evennia.prototypes.protfuncs.rst","api/evennia.prototypes.prototypes.rst","api/evennia.prototypes.spawner.rst","api/evennia.scripts.rst","api/evennia.scripts.admin.rst","api/evennia.scripts.manager.rst","api/evennia.scripts.models.rst","api/evennia.scripts.monitorhandler.rst","api/evennia.scripts.scripthandler.rst","api/evennia.scripts.scripts.rst","api/evennia.scripts.taskhandler.rst","api/evennia.scripts.tickerhandler.rst","api/evennia.server.rst","api/evennia.server.admin.rst","api/evennia.server.amp_client.rst","api/evennia.server.connection_wizard.rst","api/evennia.server.deprecations.rst","api/evennia.server.evennia_launcher.rst","api/evennia.server.game_index_client.rst","api/evennia.server.game_index_client.client.rst","api/evennia.server.game_index_client.service.rst","api/evennia.server.initial_setup.rst","api/evennia.server.inputfuncs.rst","api/evennia.server.manager.rst","api/evennia.server.models.rst","api/evennia.server.portal.rst","api/evennia.server.portal.amp.rst","api/evennia.server.portal.amp_server.rst","api/evennia.server.portal.grapevine.rst","api/evennia.server.portal.irc.rst","api/evennia.server.portal.mccp.rst","api/evennia.server.portal.mssp.rst","api/evennia.server.portal.mxp.rst","api/evennia.server.portal.naws.rst","api/evennia.server.portal.portal.rst","api/evennia.server.portal.portalsessionhandler.rst","api/evennia.server.portal.rss.rst","api/evennia.server.portal.ssh.rst","api/evennia.server.portal.ssl.rst","api/evennia.server.portal.suppress_ga.rst","api/evennia.server.portal.telnet.rst","api/evennia.server.portal.telnet_oob.rst","api/evennia.server.portal.telnet_ssl.rst","api/evennia.server.portal.tests.rst","api/evennia.server.portal.ttype.rst","api/evennia.server.portal.webclient.rst","api/evennia.server.portal.webclient_ajax.rst","api/evennia.server.profiling.rst","api/evennia.server.profiling.dummyrunner.rst","api/evennia.server.profiling.dummyrunner_settings.rst","api/evennia.server.profiling.memplot.rst","api/evennia.server.profiling.settings_mixin.rst","api/evennia.server.profiling.test_queries.rst","api/evennia.server.profiling.tests.rst","api/evennia.server.profiling.timetrace.rst","api/evennia.server.server.rst","api/evennia.server.serversession.rst","api/evennia.server.session.rst","api/evennia.server.sessionhandler.rst","api/evennia.server.signals.rst","api/evennia.server.throttle.rst","api/evennia.server.validators.rst","api/evennia.server.webserver.rst","api/evennia.settings_default.rst","api/evennia.typeclasses.rst","api/evennia.typeclasses.admin.rst","api/evennia.typeclasses.attributes.rst","api/evennia.typeclasses.managers.rst","api/evennia.typeclasses.models.rst","api/evennia.typeclasses.tags.rst","api/evennia.utils.rst","api/evennia.utils.ansi.rst","api/evennia.utils.batchprocessors.rst","api/evennia.utils.containers.rst","api/evennia.utils.create.rst","api/evennia.utils.dbserialize.rst","api/evennia.utils.eveditor.rst","api/evennia.utils.evform.rst","api/evennia.utils.evmenu.rst","api/evennia.utils.evmore.rst","api/evennia.utils.evtable.rst","api/evennia.utils.gametime.rst","api/evennia.utils.idmapper.rst","api/evennia.utils.idmapper.manager.rst","api/evennia.utils.idmapper.models.rst","api/evennia.utils.idmapper.tests.rst","api/evennia.utils.inlinefuncs.rst","api/evennia.utils.logger.rst","api/evennia.utils.optionclasses.rst","api/evennia.utils.optionhandler.rst","api/evennia.utils.picklefield.rst","api/evennia.utils.search.rst","api/evennia.utils.test_resources.rst","api/evennia.utils.text2html.rst","api/evennia.utils.utils.rst","api/evennia.utils.validatorfuncs.rst","api/evennia.web.rst","api/evennia.web.urls.rst","api/evennia.web.utils.rst","api/evennia.web.utils.backends.rst","api/evennia.web.utils.general_context.rst","api/evennia.web.utils.middleware.rst","api/evennia.web.utils.tests.rst","api/evennia.web.webclient.rst","api/evennia.web.webclient.urls.rst","api/evennia.web.webclient.views.rst","api/evennia.web.website.rst","api/evennia.web.website.forms.rst","api/evennia.web.website.templatetags.rst","api/evennia.web.website.templatetags.addclass.rst","api/evennia.web.website.tests.rst","api/evennia.web.website.urls.rst","api/evennia.web.website.views.rst","index.md","toc.md"],objects:{"":{evennia:[141,0,0,"-"]},"evennia.accounts":{accounts:[144,0,0,"-"],admin:[145,0,0,"-"],bots:[146,0,0,"-"],manager:[147,0,0,"-"],models:[148,0,0,"-"]},"evennia.accounts.accounts":{DefaultAccount:[144,1,1,""]},"evennia.accounts.accounts.DefaultAccount":{"delete":[144,3,1,""],DoesNotExist:[144,2,1,""],MultipleObjectsReturned:[144,2,1,""],access:[144,3,1,""],at_access:[144,3,1,""],at_account_creation:[144,3,1,""],at_cmdset_get:[144,3,1,""],at_disconnect:[144,3,1,""],at_failed_login:[144,3,1,""],at_first_login:[144,3,1,""],at_first_save:[144,3,1,""],at_init:[144,3,1,""],at_look:[144,3,1,""],at_msg_receive:[144,3,1,""],at_msg_send:[144,3,1,""],at_password_change:[144,3,1,""],at_post_disconnect:[144,3,1,""],at_post_login:[144,3,1,""],at_pre_login:[144,3,1,""],at_server_reload:[144,3,1,""],at_server_shutdown:[144,3,1,""],authenticate:[144,3,1,""],basetype_setup:[144,3,1,""],character:[144,3,1,""],characters:[144,3,1,""],cmdset:[144,4,1,""],connection_time:[144,3,1,""],create:[144,3,1,""],create_character:[144,3,1,""],disconnect_session_from_account:[144,3,1,""],execute_cmd:[144,3,1,""],get_all_puppets:[144,3,1,""],get_puppet:[144,3,1,""],get_username_validators:[144,3,1,""],idle_time:[144,3,1,""],is_banned:[144,3,1,""],msg:[144,3,1,""],nicks:[144,4,1,""],normalize_username:[144,3,1,""],objects:[144,4,1,""],options:[144,4,1,""],path:[144,4,1,""],puppet:[144,3,1,""],puppet_object:[144,3,1,""],scripts:[144,4,1,""],search:[144,3,1,""],sessions:[144,4,1,""],set_password:[144,3,1,""],typename:[144,4,1,""],unpuppet_all:[144,3,1,""],unpuppet_object:[144,3,1,""],validate_password:[144,3,1,""],validate_username:[144,3,1,""]},"evennia.accounts.admin":{AccountAttributeInline:[145,1,1,""],AccountDBAdmin:[145,1,1,""],AccountDBChangeForm:[145,1,1,""],AccountDBCreationForm:[145,1,1,""],AccountForm:[145,1,1,""],AccountInline:[145,1,1,""],AccountTagInline:[145,1,1,""]},"evennia.accounts.admin.AccountAttributeInline":{media:[145,3,1,""],model:[145,4,1,""],related_field:[145,4,1,""]},"evennia.accounts.admin.AccountDBAdmin":{add_fieldsets:[145,4,1,""],add_form:[145,4,1,""],fieldsets:[145,4,1,""],form:[145,4,1,""],inlines:[145,4,1,""],list_display:[145,4,1,""],media:[145,3,1,""],response_add:[145,3,1,""],save_model:[145,3,1,""],user_change_password:[145,3,1,""]},"evennia.accounts.admin.AccountDBChangeForm":{Meta:[145,1,1,""],base_fields:[145,4,1,""],clean_username:[145,3,1,""],declared_fields:[145,4,1,""],media:[145,3,1,""]},"evennia.accounts.admin.AccountDBChangeForm.Meta":{fields:[145,4,1,""],model:[145,4,1,""]},"evennia.accounts.admin.AccountDBCreationForm":{Meta:[145,1,1,""],base_fields:[145,4,1,""],clean_username:[145,3,1,""],declared_fields:[145,4,1,""],media:[145,3,1,""]},"evennia.accounts.admin.AccountDBCreationForm.Meta":{fields:[145,4,1,""],model:[145,4,1,""]},"evennia.accounts.admin.AccountForm":{Meta:[145,1,1,""],base_fields:[145,4,1,""],declared_fields:[145,4,1,""],media:[145,3,1,""]},"evennia.accounts.admin.AccountForm.Meta":{app_label:[145,4,1,""],fields:[145,4,1,""],model:[145,4,1,""]},"evennia.accounts.admin.AccountInline":{extra:[145,4,1,""],fieldsets:[145,4,1,""],form:[145,4,1,""],max_num:[145,4,1,""],media:[145,3,1,""],model:[145,4,1,""],template:[145,4,1,""]},"evennia.accounts.admin.AccountTagInline":{media:[145,3,1,""],model:[145,4,1,""],related_field:[145,4,1,""]},"evennia.accounts.bots":{Bot:[146,1,1,""],BotStarter:[146,1,1,""],GrapevineBot:[146,1,1,""],IRCBot:[146,1,1,""],RSSBot:[146,1,1,""]},"evennia.accounts.bots.Bot":{DoesNotExist:[146,2,1,""],MultipleObjectsReturned:[146,2,1,""],at_server_shutdown:[146,3,1,""],basetype_setup:[146,3,1,""],execute_cmd:[146,3,1,""],msg:[146,3,1,""],path:[146,4,1,""],start:[146,3,1,""],typename:[146,4,1,""]},"evennia.accounts.bots.BotStarter":{DoesNotExist:[146,2,1,""],MultipleObjectsReturned:[146,2,1,""],at_repeat:[146,3,1,""],at_script_creation:[146,3,1,""],at_server_reload:[146,3,1,""],at_server_shutdown:[146,3,1,""],at_start:[146,3,1,""],path:[146,4,1,""],typename:[146,4,1,""]},"evennia.accounts.bots.GrapevineBot":{DoesNotExist:[146,2,1,""],MultipleObjectsReturned:[146,2,1,""],at_msg_send:[146,3,1,""],execute_cmd:[146,3,1,""],factory_path:[146,4,1,""],msg:[146,3,1,""],path:[146,4,1,""],start:[146,3,1,""],typename:[146,4,1,""]},"evennia.accounts.bots.IRCBot":{DoesNotExist:[146,2,1,""],MultipleObjectsReturned:[146,2,1,""],at_msg_send:[146,3,1,""],execute_cmd:[146,3,1,""],factory_path:[146,4,1,""],get_nicklist:[146,3,1,""],msg:[146,3,1,""],path:[146,4,1,""],ping:[146,3,1,""],reconnect:[146,3,1,""],start:[146,3,1,""],typename:[146,4,1,""]},"evennia.accounts.bots.RSSBot":{DoesNotExist:[146,2,1,""],MultipleObjectsReturned:[146,2,1,""],execute_cmd:[146,3,1,""],path:[146,4,1,""],start:[146,3,1,""],typename:[146,4,1,""]},"evennia.accounts.manager":{AccountManager:[147,1,1,""]},"evennia.accounts.models":{AccountDB:[148,1,1,""]},"evennia.accounts.models.AccountDB":{DoesNotExist:[148,2,1,""],MultipleObjectsReturned:[148,2,1,""],account_subscription_set:[148,4,1,""],cmdset_storage:[148,3,1,""],db_attributes:[148,4,1,""],db_cmdset_storage:[148,4,1,""],db_is_bot:[148,4,1,""],db_is_connected:[148,4,1,""],db_tags:[148,4,1,""],get_next_by_date_joined:[148,3,1,""],get_next_by_db_date_created:[148,3,1,""],get_previous_by_date_joined:[148,3,1,""],get_previous_by_db_date_created:[148,3,1,""],groups:[148,4,1,""],hide_from_accounts_set:[148,4,1,""],id:[148,4,1,""],is_bot:[148,3,1,""],is_connected:[148,3,1,""],key:[148,3,1,""],logentry_set:[148,4,1,""],name:[148,3,1,""],objectdb_set:[148,4,1,""],objects:[148,4,1,""],path:[148,4,1,""],receiver_account_set:[148,4,1,""],scriptdb_set:[148,4,1,""],sender_account_set:[148,4,1,""],typename:[148,4,1,""],uid:[148,3,1,""],user_permissions:[148,4,1,""]},"evennia.commands":{"default":[155,0,0,"-"],cmdhandler:[150,0,0,"-"],cmdparser:[151,0,0,"-"],cmdset:[152,0,0,"-"],cmdsethandler:[153,0,0,"-"],command:[154,0,0,"-"]},"evennia.commands.cmdhandler":{InterruptCommand:[150,2,1,""],cmdhandler:[150,5,1,""]},"evennia.commands.cmdparser":{build_matches:[151,5,1,""],cmdparser:[151,5,1,""],create_match:[151,5,1,""],try_num_prefixes:[151,5,1,""]},"evennia.commands.cmdset":{CmdSet:[152,1,1,""]},"evennia.commands.cmdset.CmdSet":{__init__:[152,3,1,""],add:[152,3,1,""],at_cmdset_creation:[152,3,1,""],count:[152,3,1,""],duplicates:[152,4,1,""],errmessage:[152,4,1,""],get:[152,3,1,""],get_all_cmd_keys_and_aliases:[152,3,1,""],get_system_cmds:[152,3,1,""],key:[152,4,1,""],key_mergetypes:[152,4,1,""],make_unique:[152,3,1,""],mergetype:[152,4,1,""],no_channels:[152,4,1,""],no_exits:[152,4,1,""],no_objs:[152,4,1,""],path:[152,4,1,""],permanent:[152,4,1,""],priority:[152,4,1,""],remove:[152,3,1,""],to_duplicate:[152,4,1,""]},"evennia.commands.cmdsethandler":{CmdSetHandler:[153,1,1,""],import_cmdset:[153,5,1,""]},"evennia.commands.cmdsethandler.CmdSetHandler":{"delete":[153,3,1,""],__init__:[153,3,1,""],add:[153,3,1,""],add_default:[153,3,1,""],all:[153,3,1,""],clear:[153,3,1,""],delete_default:[153,3,1,""],get:[153,3,1,""],has:[153,3,1,""],has_cmdset:[153,3,1,""],remove:[153,3,1,""],remove_default:[153,3,1,""],reset:[153,3,1,""],update:[153,3,1,""]},"evennia.commands.command":{Command:[154,1,1,""],CommandMeta:[154,1,1,""],InterruptCommand:[154,2,1,""]},"evennia.commands.command.Command":{__init__:[154,3,1,""],access:[154,3,1,""],aliases:[154,4,1,""],arg_regex:[154,4,1,""],at_post_cmd:[154,3,1,""],at_pre_cmd:[154,3,1,""],auto_help:[154,4,1,""],client_height:[154,3,1,""],client_width:[154,3,1,""],execute_cmd:[154,3,1,""],func:[154,3,1,""],get_command_info:[154,3,1,""],get_extra_info:[154,3,1,""],get_help:[154,3,1,""],help_category:[154,4,1,""],is_exit:[154,4,1,""],key:[154,4,1,""],lock_storage:[154,4,1,""],lockhandler:[154,4,1,""],locks:[154,4,1,""],match:[154,3,1,""],msg:[154,3,1,""],msg_all_sessions:[154,4,1,""],parse:[154,3,1,""],save_for_next:[154,4,1,""],set_aliases:[154,3,1,""],set_key:[154,3,1,""],styled_footer:[154,3,1,""],styled_header:[154,3,1,""],styled_separator:[154,3,1,""],styled_table:[154,3,1,""]},"evennia.commands.command.CommandMeta":{__init__:[154,3,1,""]},"evennia.commands.default":{account:[156,0,0,"-"],admin:[157,0,0,"-"],batchprocess:[158,0,0,"-"],building:[159,0,0,"-"],cmdset_account:[160,0,0,"-"],cmdset_character:[161,0,0,"-"],cmdset_session:[162,0,0,"-"],cmdset_unloggedin:[163,0,0,"-"],comms:[164,0,0,"-"],general:[165,0,0,"-"],help:[166,0,0,"-"],muxcommand:[167,0,0,"-"],syscommands:[168,0,0,"-"],system:[169,0,0,"-"],unloggedin:[171,0,0,"-"]},"evennia.commands.default.account":{CmdCharCreate:[156,1,1,""],CmdCharDelete:[156,1,1,""],CmdColorTest:[156,1,1,""],CmdIC:[156,1,1,""],CmdOOC:[156,1,1,""],CmdOOCLook:[156,1,1,""],CmdOption:[156,1,1,""],CmdPassword:[156,1,1,""],CmdQuell:[156,1,1,""],CmdQuit:[156,1,1,""],CmdSessions:[156,1,1,""],CmdStyle:[156,1,1,""],CmdWho:[156,1,1,""]},"evennia.commands.default.account.CmdCharCreate":{account_caller:[156,4,1,""],aliases:[156,4,1,""],func:[156,3,1,""],help_category:[156,4,1,""],key:[156,4,1,""],lock_storage:[156,4,1,""],locks:[156,4,1,""]},"evennia.commands.default.account.CmdCharDelete":{aliases:[156,4,1,""],func:[156,3,1,""],help_category:[156,4,1,""],key:[156,4,1,""],lock_storage:[156,4,1,""],locks:[156,4,1,""]},"evennia.commands.default.account.CmdColorTest":{account_caller:[156,4,1,""],aliases:[156,4,1,""],func:[156,3,1,""],help_category:[156,4,1,""],key:[156,4,1,""],lock_storage:[156,4,1,""],locks:[156,4,1,""],slice_bright_bg:[156,4,1,""],slice_bright_fg:[156,4,1,""],slice_dark_bg:[156,4,1,""],slice_dark_fg:[156,4,1,""],table_format:[156,3,1,""]},"evennia.commands.default.account.CmdIC":{account_caller:[156,4,1,""],aliases:[156,4,1,""],func:[156,3,1,""],help_category:[156,4,1,""],key:[156,4,1,""],lock_storage:[156,4,1,""],locks:[156,4,1,""]},"evennia.commands.default.account.CmdOOC":{account_caller:[156,4,1,""],aliases:[156,4,1,""],func:[156,3,1,""],help_category:[156,4,1,""],key:[156,4,1,""],lock_storage:[156,4,1,""],locks:[156,4,1,""]},"evennia.commands.default.account.CmdOOCLook":{account_caller:[156,4,1,""],aliases:[156,4,1,""],func:[156,3,1,""],help_category:[156,4,1,""],key:[156,4,1,""],lock_storage:[156,4,1,""],locks:[156,4,1,""]},"evennia.commands.default.account.CmdOption":{account_caller:[156,4,1,""],aliases:[156,4,1,""],func:[156,3,1,""],help_category:[156,4,1,""],key:[156,4,1,""],lock_storage:[156,4,1,""],locks:[156,4,1,""],switch_options:[156,4,1,""]},"evennia.commands.default.account.CmdPassword":{account_caller:[156,4,1,""],aliases:[156,4,1,""],func:[156,3,1,""],help_category:[156,4,1,""],key:[156,4,1,""],lock_storage:[156,4,1,""],locks:[156,4,1,""]},"evennia.commands.default.account.CmdQuell":{account_caller:[156,4,1,""],aliases:[156,4,1,""],func:[156,3,1,""],help_category:[156,4,1,""],key:[156,4,1,""],lock_storage:[156,4,1,""],locks:[156,4,1,""]},"evennia.commands.default.account.CmdQuit":{account_caller:[156,4,1,""],aliases:[156,4,1,""],func:[156,3,1,""],help_category:[156,4,1,""],key:[156,4,1,""],lock_storage:[156,4,1,""],locks:[156,4,1,""],switch_options:[156,4,1,""]},"evennia.commands.default.account.CmdSessions":{account_caller:[156,4,1,""],aliases:[156,4,1,""],func:[156,3,1,""],help_category:[156,4,1,""],key:[156,4,1,""],lock_storage:[156,4,1,""],locks:[156,4,1,""]},"evennia.commands.default.account.CmdStyle":{aliases:[156,4,1,""],func:[156,3,1,""],help_category:[156,4,1,""],key:[156,4,1,""],list_styles:[156,3,1,""],lock_storage:[156,4,1,""],set:[156,3,1,""],switch_options:[156,4,1,""]},"evennia.commands.default.account.CmdWho":{account_caller:[156,4,1,""],aliases:[156,4,1,""],func:[156,3,1,""],help_category:[156,4,1,""],key:[156,4,1,""],lock_storage:[156,4,1,""],locks:[156,4,1,""]},"evennia.commands.default.admin":{CmdBan:[157,1,1,""],CmdBoot:[157,1,1,""],CmdEmit:[157,1,1,""],CmdForce:[157,1,1,""],CmdNewPassword:[157,1,1,""],CmdPerm:[157,1,1,""],CmdUnban:[157,1,1,""],CmdWall:[157,1,1,""]},"evennia.commands.default.admin.CmdBan":{aliases:[157,4,1,""],func:[157,3,1,""],help_category:[157,4,1,""],key:[157,4,1,""],lock_storage:[157,4,1,""],locks:[157,4,1,""]},"evennia.commands.default.admin.CmdBoot":{aliases:[157,4,1,""],func:[157,3,1,""],help_category:[157,4,1,""],key:[157,4,1,""],lock_storage:[157,4,1,""],locks:[157,4,1,""],switch_options:[157,4,1,""]},"evennia.commands.default.admin.CmdEmit":{aliases:[157,4,1,""],func:[157,3,1,""],help_category:[157,4,1,""],key:[157,4,1,""],lock_storage:[157,4,1,""],locks:[157,4,1,""],switch_options:[157,4,1,""]},"evennia.commands.default.admin.CmdForce":{aliases:[157,4,1,""],func:[157,3,1,""],help_category:[157,4,1,""],key:[157,4,1,""],lock_storage:[157,4,1,""],locks:[157,4,1,""],perm_used:[157,4,1,""]},"evennia.commands.default.admin.CmdNewPassword":{aliases:[157,4,1,""],func:[157,3,1,""],help_category:[157,4,1,""],key:[157,4,1,""],lock_storage:[157,4,1,""],locks:[157,4,1,""]},"evennia.commands.default.admin.CmdPerm":{aliases:[157,4,1,""],func:[157,3,1,""],help_category:[157,4,1,""],key:[157,4,1,""],lock_storage:[157,4,1,""],locks:[157,4,1,""],switch_options:[157,4,1,""]},"evennia.commands.default.admin.CmdUnban":{aliases:[157,4,1,""],func:[157,3,1,""],help_category:[157,4,1,""],key:[157,4,1,""],lock_storage:[157,4,1,""],locks:[157,4,1,""]},"evennia.commands.default.admin.CmdWall":{aliases:[157,4,1,""],func:[157,3,1,""],help_category:[157,4,1,""],key:[157,4,1,""],lock_storage:[157,4,1,""],locks:[157,4,1,""]},"evennia.commands.default.batchprocess":{CmdBatchCode:[158,1,1,""],CmdBatchCommands:[158,1,1,""]},"evennia.commands.default.batchprocess.CmdBatchCode":{aliases:[158,4,1,""],func:[158,3,1,""],help_category:[158,4,1,""],key:[158,4,1,""],lock_storage:[158,4,1,""],locks:[158,4,1,""],switch_options:[158,4,1,""]},"evennia.commands.default.batchprocess.CmdBatchCommands":{aliases:[158,4,1,""],func:[158,3,1,""],help_category:[158,4,1,""],key:[158,4,1,""],lock_storage:[158,4,1,""],locks:[158,4,1,""],switch_options:[158,4,1,""]},"evennia.commands.default.building":{CmdCopy:[159,1,1,""],CmdCpAttr:[159,1,1,""],CmdCreate:[159,1,1,""],CmdDesc:[159,1,1,""],CmdDestroy:[159,1,1,""],CmdDig:[159,1,1,""],CmdExamine:[159,1,1,""],CmdFind:[159,1,1,""],CmdLink:[159,1,1,""],CmdListCmdSets:[159,1,1,""],CmdLock:[159,1,1,""],CmdMvAttr:[159,1,1,""],CmdName:[159,1,1,""],CmdOpen:[159,1,1,""],CmdScript:[159,1,1,""],CmdSetAttribute:[159,1,1,""],CmdSetHome:[159,1,1,""],CmdSetObjAlias:[159,1,1,""],CmdSpawn:[159,1,1,""],CmdTag:[159,1,1,""],CmdTeleport:[159,1,1,""],CmdTunnel:[159,1,1,""],CmdTypeclass:[159,1,1,""],CmdUnLink:[159,1,1,""],CmdWipe:[159,1,1,""],ObjManipCommand:[159,1,1,""]},"evennia.commands.default.building.CmdCopy":{aliases:[159,4,1,""],func:[159,3,1,""],help_category:[159,4,1,""],key:[159,4,1,""],lock_storage:[159,4,1,""],locks:[159,4,1,""]},"evennia.commands.default.building.CmdCpAttr":{aliases:[159,4,1,""],check_from_attr:[159,3,1,""],check_has_attr:[159,3,1,""],check_to_attr:[159,3,1,""],func:[159,3,1,""],get_attr:[159,3,1,""],help_category:[159,4,1,""],key:[159,4,1,""],lock_storage:[159,4,1,""],locks:[159,4,1,""],switch_options:[159,4,1,""]},"evennia.commands.default.building.CmdCreate":{aliases:[159,4,1,""],func:[159,3,1,""],help_category:[159,4,1,""],key:[159,4,1,""],lock_storage:[159,4,1,""],locks:[159,4,1,""],new_obj_lockstring:[159,4,1,""],switch_options:[159,4,1,""]},"evennia.commands.default.building.CmdDesc":{aliases:[159,4,1,""],edit_handler:[159,3,1,""],func:[159,3,1,""],help_category:[159,4,1,""],key:[159,4,1,""],lock_storage:[159,4,1,""],locks:[159,4,1,""],switch_options:[159,4,1,""]},"evennia.commands.default.building.CmdDestroy":{aliases:[159,4,1,""],confirm:[159,4,1,""],default_confirm:[159,4,1,""],func:[159,3,1,""],help_category:[159,4,1,""],key:[159,4,1,""],lock_storage:[159,4,1,""],locks:[159,4,1,""],switch_options:[159,4,1,""]},"evennia.commands.default.building.CmdDig":{aliases:[159,4,1,""],func:[159,3,1,""],help_category:[159,4,1,""],key:[159,4,1,""],lock_storage:[159,4,1,""],locks:[159,4,1,""],new_room_lockstring:[159,4,1,""],switch_options:[159,4,1,""]},"evennia.commands.default.building.CmdExamine":{account_mode:[159,4,1,""],aliases:[159,4,1,""],arg_regex:[159,4,1,""],detail_color:[159,4,1,""],format_attributes:[159,3,1,""],format_output:[159,3,1,""],func:[159,3,1,""],header_color:[159,4,1,""],help_category:[159,4,1,""],key:[159,4,1,""],list_attribute:[159,3,1,""],lock_storage:[159,4,1,""],locks:[159,4,1,""],quell_color:[159,4,1,""],separator:[159,4,1,""]},"evennia.commands.default.building.CmdFind":{aliases:[159,4,1,""],func:[159,3,1,""],help_category:[159,4,1,""],key:[159,4,1,""],lock_storage:[159,4,1,""],locks:[159,4,1,""],switch_options:[159,4,1,""]},"evennia.commands.default.building.CmdLink":{aliases:[159,4,1,""],func:[159,3,1,""],help_category:[159,4,1,""],key:[159,4,1,""],lock_storage:[159,4,1,""],locks:[159,4,1,""]},"evennia.commands.default.building.CmdListCmdSets":{aliases:[159,4,1,""],func:[159,3,1,""],help_category:[159,4,1,""],key:[159,4,1,""],lock_storage:[159,4,1,""],locks:[159,4,1,""]},"evennia.commands.default.building.CmdLock":{aliases:[159,4,1,""],func:[159,3,1,""],help_category:[159,4,1,""],key:[159,4,1,""],lock_storage:[159,4,1,""],locks:[159,4,1,""]},"evennia.commands.default.building.CmdMvAttr":{aliases:[159,4,1,""],func:[159,3,1,""],help_category:[159,4,1,""],key:[159,4,1,""],lock_storage:[159,4,1,""],locks:[159,4,1,""],switch_options:[159,4,1,""]},"evennia.commands.default.building.CmdName":{aliases:[159,4,1,""],func:[159,3,1,""],help_category:[159,4,1,""],key:[159,4,1,""],lock_storage:[159,4,1,""],locks:[159,4,1,""]},"evennia.commands.default.building.CmdOpen":{aliases:[159,4,1,""],create_exit:[159,3,1,""],func:[159,3,1,""],help_category:[159,4,1,""],key:[159,4,1,""],lock_storage:[159,4,1,""],locks:[159,4,1,""],new_obj_lockstring:[159,4,1,""]},"evennia.commands.default.building.CmdScript":{aliases:[159,4,1,""],func:[159,3,1,""],help_category:[159,4,1,""],key:[159,4,1,""],lock_storage:[159,4,1,""],locks:[159,4,1,""],switch_options:[159,4,1,""]},"evennia.commands.default.building.CmdSetAttribute":{aliases:[159,4,1,""],check_attr:[159,3,1,""],check_obj:[159,3,1,""],do_nested_lookup:[159,3,1,""],edit_handler:[159,3,1,""],func:[159,3,1,""],help_category:[159,4,1,""],key:[159,4,1,""],lock_storage:[159,4,1,""],locks:[159,4,1,""],nested_re:[159,4,1,""],not_found:[159,4,1,""],rm_attr:[159,3,1,""],search_for_obj:[159,3,1,""],set_attr:[159,3,1,""],split_nested_attr:[159,3,1,""],view_attr:[159,3,1,""]},"evennia.commands.default.building.CmdSetHome":{aliases:[159,4,1,""],func:[159,3,1,""],help_category:[159,4,1,""],key:[159,4,1,""],lock_storage:[159,4,1,""],locks:[159,4,1,""]},"evennia.commands.default.building.CmdSetObjAlias":{aliases:[159,4,1,""],func:[159,3,1,""],help_category:[159,4,1,""],key:[159,4,1,""],lock_storage:[159,4,1,""],locks:[159,4,1,""],switch_options:[159,4,1,""]},"evennia.commands.default.building.CmdSpawn":{aliases:[159,4,1,""],func:[159,3,1,""],help_category:[159,4,1,""],key:[159,4,1,""],lock_storage:[159,4,1,""],locks:[159,4,1,""],switch_options:[159,4,1,""]},"evennia.commands.default.building.CmdTag":{aliases:[159,4,1,""],arg_regex:[159,4,1,""],func:[159,3,1,""],help_category:[159,4,1,""],key:[159,4,1,""],lock_storage:[159,4,1,""],locks:[159,4,1,""],options:[159,4,1,""]},"evennia.commands.default.building.CmdTeleport":{aliases:[159,4,1,""],func:[159,3,1,""],help_category:[159,4,1,""],key:[159,4,1,""],lock_storage:[159,4,1,""],locks:[159,4,1,""],rhs_split:[159,4,1,""],switch_options:[159,4,1,""]},"evennia.commands.default.building.CmdTunnel":{aliases:[159,4,1,""],directions:[159,4,1,""],func:[159,3,1,""],help_category:[159,4,1,""],key:[159,4,1,""],lock_storage:[159,4,1,""],locks:[159,4,1,""],switch_options:[159,4,1,""]},"evennia.commands.default.building.CmdTypeclass":{aliases:[159,4,1,""],func:[159,3,1,""],help_category:[159,4,1,""],key:[159,4,1,""],lock_storage:[159,4,1,""],locks:[159,4,1,""],switch_options:[159,4,1,""]},"evennia.commands.default.building.CmdUnLink":{aliases:[159,4,1,""],func:[159,3,1,""],help_category:[159,4,1,""],help_key:[159,4,1,""],key:[159,4,1,""],lock_storage:[159,4,1,""],locks:[159,4,1,""]},"evennia.commands.default.building.CmdWipe":{aliases:[159,4,1,""],func:[159,3,1,""],help_category:[159,4,1,""],key:[159,4,1,""],lock_storage:[159,4,1,""],locks:[159,4,1,""]},"evennia.commands.default.building.ObjManipCommand":{aliases:[159,4,1,""],help_category:[159,4,1,""],key:[159,4,1,""],lock_storage:[159,4,1,""],parse:[159,3,1,""]},"evennia.commands.default.cmdset_account":{AccountCmdSet:[160,1,1,""]},"evennia.commands.default.cmdset_account.AccountCmdSet":{at_cmdset_creation:[160,3,1,""],key:[160,4,1,""],path:[160,4,1,""],priority:[160,4,1,""]},"evennia.commands.default.cmdset_character":{CharacterCmdSet:[161,1,1,""]},"evennia.commands.default.cmdset_character.CharacterCmdSet":{at_cmdset_creation:[161,3,1,""],key:[161,4,1,""],path:[161,4,1,""],priority:[161,4,1,""]},"evennia.commands.default.cmdset_session":{SessionCmdSet:[162,1,1,""]},"evennia.commands.default.cmdset_session.SessionCmdSet":{at_cmdset_creation:[162,3,1,""],key:[162,4,1,""],path:[162,4,1,""],priority:[162,4,1,""]},"evennia.commands.default.cmdset_unloggedin":{UnloggedinCmdSet:[163,1,1,""]},"evennia.commands.default.cmdset_unloggedin.UnloggedinCmdSet":{at_cmdset_creation:[163,3,1,""],key:[163,4,1,""],path:[163,4,1,""],priority:[163,4,1,""]},"evennia.commands.default.comms":{CmdAddCom:[164,1,1,""],CmdAllCom:[164,1,1,""],CmdCBoot:[164,1,1,""],CmdCWho:[164,1,1,""],CmdCdesc:[164,1,1,""],CmdCdestroy:[164,1,1,""],CmdCemit:[164,1,1,""],CmdChannelCreate:[164,1,1,""],CmdChannels:[164,1,1,""],CmdClock:[164,1,1,""],CmdDelCom:[164,1,1,""],CmdGrapevine2Chan:[164,1,1,""],CmdIRC2Chan:[164,1,1,""],CmdIRCStatus:[164,1,1,""],CmdPage:[164,1,1,""],CmdRSS2Chan:[164,1,1,""]},"evennia.commands.default.comms.CmdAddCom":{account_caller:[164,4,1,""],aliases:[164,4,1,""],func:[164,3,1,""],help_category:[164,4,1,""],key:[164,4,1,""],lock_storage:[164,4,1,""],locks:[164,4,1,""]},"evennia.commands.default.comms.CmdAllCom":{account_caller:[164,4,1,""],aliases:[164,4,1,""],func:[164,3,1,""],help_category:[164,4,1,""],key:[164,4,1,""],lock_storage:[164,4,1,""],locks:[164,4,1,""]},"evennia.commands.default.comms.CmdCBoot":{account_caller:[164,4,1,""],aliases:[164,4,1,""],func:[164,3,1,""],help_category:[164,4,1,""],key:[164,4,1,""],lock_storage:[164,4,1,""],locks:[164,4,1,""],switch_options:[164,4,1,""]},"evennia.commands.default.comms.CmdCWho":{account_caller:[164,4,1,""],aliases:[164,4,1,""],func:[164,3,1,""],help_category:[164,4,1,""],key:[164,4,1,""],lock_storage:[164,4,1,""],locks:[164,4,1,""]},"evennia.commands.default.comms.CmdCdesc":{account_caller:[164,4,1,""],aliases:[164,4,1,""],func:[164,3,1,""],help_category:[164,4,1,""],key:[164,4,1,""],lock_storage:[164,4,1,""],locks:[164,4,1,""]},"evennia.commands.default.comms.CmdCdestroy":{account_caller:[164,4,1,""],aliases:[164,4,1,""],func:[164,3,1,""],help_category:[164,4,1,""],key:[164,4,1,""],lock_storage:[164,4,1,""],locks:[164,4,1,""]},"evennia.commands.default.comms.CmdCemit":{account_caller:[164,4,1,""],aliases:[164,4,1,""],func:[164,3,1,""],help_category:[164,4,1,""],key:[164,4,1,""],lock_storage:[164,4,1,""],locks:[164,4,1,""],switch_options:[164,4,1,""]},"evennia.commands.default.comms.CmdChannelCreate":{account_caller:[164,4,1,""],aliases:[164,4,1,""],func:[164,3,1,""],help_category:[164,4,1,""],key:[164,4,1,""],lock_storage:[164,4,1,""],locks:[164,4,1,""]},"evennia.commands.default.comms.CmdChannels":{account_caller:[164,4,1,""],aliases:[164,4,1,""],func:[164,3,1,""],help_category:[164,4,1,""],key:[164,4,1,""],lock_storage:[164,4,1,""],locks:[164,4,1,""]},"evennia.commands.default.comms.CmdClock":{account_caller:[164,4,1,""],aliases:[164,4,1,""],func:[164,3,1,""],help_category:[164,4,1,""],key:[164,4,1,""],lock_storage:[164,4,1,""],locks:[164,4,1,""]},"evennia.commands.default.comms.CmdDelCom":{account_caller:[164,4,1,""],aliases:[164,4,1,""],func:[164,3,1,""],help_category:[164,4,1,""],key:[164,4,1,""],lock_storage:[164,4,1,""],locks:[164,4,1,""]},"evennia.commands.default.comms.CmdGrapevine2Chan":{aliases:[164,4,1,""],func:[164,3,1,""],help_category:[164,4,1,""],key:[164,4,1,""],lock_storage:[164,4,1,""],locks:[164,4,1,""],switch_options:[164,4,1,""]},"evennia.commands.default.comms.CmdIRC2Chan":{aliases:[164,4,1,""],func:[164,3,1,""],help_category:[164,4,1,""],key:[164,4,1,""],lock_storage:[164,4,1,""],locks:[164,4,1,""],switch_options:[164,4,1,""]},"evennia.commands.default.comms.CmdIRCStatus":{aliases:[164,4,1,""],func:[164,3,1,""],help_category:[164,4,1,""],key:[164,4,1,""],lock_storage:[164,4,1,""],locks:[164,4,1,""]},"evennia.commands.default.comms.CmdPage":{account_caller:[164,4,1,""],aliases:[164,4,1,""],func:[164,3,1,""],help_category:[164,4,1,""],key:[164,4,1,""],lock_storage:[164,4,1,""],locks:[164,4,1,""],switch_options:[164,4,1,""]},"evennia.commands.default.comms.CmdRSS2Chan":{aliases:[164,4,1,""],func:[164,3,1,""],help_category:[164,4,1,""],key:[164,4,1,""],lock_storage:[164,4,1,""],locks:[164,4,1,""],switch_options:[164,4,1,""]},"evennia.commands.default.general":{CmdAccess:[165,1,1,""],CmdDrop:[165,1,1,""],CmdGet:[165,1,1,""],CmdGive:[165,1,1,""],CmdHome:[165,1,1,""],CmdInventory:[165,1,1,""],CmdLook:[165,1,1,""],CmdNick:[165,1,1,""],CmdPose:[165,1,1,""],CmdSay:[165,1,1,""],CmdSetDesc:[165,1,1,""],CmdWhisper:[165,1,1,""]},"evennia.commands.default.general.CmdAccess":{aliases:[165,4,1,""],arg_regex:[165,4,1,""],func:[165,3,1,""],help_category:[165,4,1,""],key:[165,4,1,""],lock_storage:[165,4,1,""],locks:[165,4,1,""]},"evennia.commands.default.general.CmdDrop":{aliases:[165,4,1,""],arg_regex:[165,4,1,""],func:[165,3,1,""],help_category:[165,4,1,""],key:[165,4,1,""],lock_storage:[165,4,1,""],locks:[165,4,1,""]},"evennia.commands.default.general.CmdGet":{aliases:[165,4,1,""],arg_regex:[165,4,1,""],func:[165,3,1,""],help_category:[165,4,1,""],key:[165,4,1,""],lock_storage:[165,4,1,""],locks:[165,4,1,""]},"evennia.commands.default.general.CmdGive":{aliases:[165,4,1,""],arg_regex:[165,4,1,""],func:[165,3,1,""],help_category:[165,4,1,""],key:[165,4,1,""],lock_storage:[165,4,1,""],locks:[165,4,1,""],rhs_split:[165,4,1,""]},"evennia.commands.default.general.CmdHome":{aliases:[165,4,1,""],arg_regex:[165,4,1,""],func:[165,3,1,""],help_category:[165,4,1,""],key:[165,4,1,""],lock_storage:[165,4,1,""],locks:[165,4,1,""]},"evennia.commands.default.general.CmdInventory":{aliases:[165,4,1,""],arg_regex:[165,4,1,""],func:[165,3,1,""],help_category:[165,4,1,""],key:[165,4,1,""],lock_storage:[165,4,1,""],locks:[165,4,1,""]},"evennia.commands.default.general.CmdLook":{aliases:[165,4,1,""],arg_regex:[165,4,1,""],func:[165,3,1,""],help_category:[165,4,1,""],key:[165,4,1,""],lock_storage:[165,4,1,""],locks:[165,4,1,""]},"evennia.commands.default.general.CmdNick":{aliases:[165,4,1,""],func:[165,3,1,""],help_category:[165,4,1,""],key:[165,4,1,""],lock_storage:[165,4,1,""],locks:[165,4,1,""],parse:[165,3,1,""],switch_options:[165,4,1,""]},"evennia.commands.default.general.CmdPose":{aliases:[165,4,1,""],func:[165,3,1,""],help_category:[165,4,1,""],key:[165,4,1,""],lock_storage:[165,4,1,""],locks:[165,4,1,""],parse:[165,3,1,""]},"evennia.commands.default.general.CmdSay":{aliases:[165,4,1,""],func:[165,3,1,""],help_category:[165,4,1,""],key:[165,4,1,""],lock_storage:[165,4,1,""],locks:[165,4,1,""]},"evennia.commands.default.general.CmdSetDesc":{aliases:[165,4,1,""],arg_regex:[165,4,1,""],func:[165,3,1,""],help_category:[165,4,1,""],key:[165,4,1,""],lock_storage:[165,4,1,""],locks:[165,4,1,""]},"evennia.commands.default.general.CmdWhisper":{aliases:[165,4,1,""],func:[165,3,1,""],help_category:[165,4,1,""],key:[165,4,1,""],lock_storage:[165,4,1,""],locks:[165,4,1,""]},"evennia.commands.default.help":{CmdHelp:[166,1,1,""],CmdSetHelp:[166,1,1,""]},"evennia.commands.default.help.CmdHelp":{aliases:[166,4,1,""],arg_regex:[166,4,1,""],check_show_help:[166,3,1,""],format_help_entry:[166,3,1,""],format_help_list:[166,3,1,""],func:[166,3,1,""],help_category:[166,4,1,""],help_more:[166,4,1,""],key:[166,4,1,""],lock_storage:[166,4,1,""],locks:[166,4,1,""],msg_help:[166,3,1,""],parse:[166,3,1,""],return_cmdset:[166,4,1,""],should_list_cmd:[166,3,1,""],suggestion_cutoff:[166,4,1,""],suggestion_maxnum:[166,4,1,""]},"evennia.commands.default.help.CmdSetHelp":{aliases:[166,4,1,""],func:[166,3,1,""],help_category:[166,4,1,""],key:[166,4,1,""],lock_storage:[166,4,1,""],locks:[166,4,1,""],switch_options:[166,4,1,""]},"evennia.commands.default.muxcommand":{MuxAccountCommand:[167,1,1,""],MuxCommand:[167,1,1,""]},"evennia.commands.default.muxcommand.MuxAccountCommand":{account_caller:[167,4,1,""],aliases:[167,4,1,""],help_category:[167,4,1,""],key:[167,4,1,""],lock_storage:[167,4,1,""]},"evennia.commands.default.muxcommand.MuxCommand":{aliases:[167,4,1,""],at_post_cmd:[167,3,1,""],at_pre_cmd:[167,3,1,""],func:[167,3,1,""],get_command_info:[167,3,1,""],has_perm:[167,3,1,""],help_category:[167,4,1,""],key:[167,4,1,""],lock_storage:[167,4,1,""],parse:[167,3,1,""]},"evennia.commands.default.syscommands":{SystemMultimatch:[168,1,1,""],SystemNoInput:[168,1,1,""],SystemNoMatch:[168,1,1,""],SystemSendToChannel:[168,1,1,""]},"evennia.commands.default.syscommands.SystemMultimatch":{aliases:[168,4,1,""],func:[168,3,1,""],help_category:[168,4,1,""],key:[168,4,1,""],lock_storage:[168,4,1,""],locks:[168,4,1,""]},"evennia.commands.default.syscommands.SystemNoInput":{aliases:[168,4,1,""],func:[168,3,1,""],help_category:[168,4,1,""],key:[168,4,1,""],lock_storage:[168,4,1,""],locks:[168,4,1,""]},"evennia.commands.default.syscommands.SystemNoMatch":{aliases:[168,4,1,""],func:[168,3,1,""],help_category:[168,4,1,""],key:[168,4,1,""],lock_storage:[168,4,1,""],locks:[168,4,1,""]},"evennia.commands.default.syscommands.SystemSendToChannel":{aliases:[168,4,1,""],func:[168,3,1,""],help_category:[168,4,1,""],key:[168,4,1,""],lock_storage:[168,4,1,""],locks:[168,4,1,""],parse:[168,3,1,""]},"evennia.commands.default.system":{CmdAbout:[169,1,1,""],CmdObjects:[169,1,1,""],CmdPy:[169,1,1,""],CmdReload:[169,1,1,""],CmdReset:[169,1,1,""],CmdScripts:[169,1,1,""],CmdServerLoad:[169,1,1,""],CmdService:[169,1,1,""],CmdShutdown:[169,1,1,""],CmdTime:[169,1,1,""]},"evennia.commands.default.system.CmdAbout":{aliases:[169,4,1,""],func:[169,3,1,""],help_category:[169,4,1,""],key:[169,4,1,""],lock_storage:[169,4,1,""],locks:[169,4,1,""]},"evennia.commands.default.system.CmdObjects":{aliases:[169,4,1,""],func:[169,3,1,""],help_category:[169,4,1,""],key:[169,4,1,""],lock_storage:[169,4,1,""],locks:[169,4,1,""]},"evennia.commands.default.system.CmdPy":{aliases:[169,4,1,""],func:[169,3,1,""],help_category:[169,4,1,""],key:[169,4,1,""],lock_storage:[169,4,1,""],locks:[169,4,1,""],switch_options:[169,4,1,""]},"evennia.commands.default.system.CmdReload":{aliases:[169,4,1,""],func:[169,3,1,""],help_category:[169,4,1,""],key:[169,4,1,""],lock_storage:[169,4,1,""],locks:[169,4,1,""]},"evennia.commands.default.system.CmdReset":{aliases:[169,4,1,""],func:[169,3,1,""],help_category:[169,4,1,""],key:[169,4,1,""],lock_storage:[169,4,1,""],locks:[169,4,1,""]},"evennia.commands.default.system.CmdScripts":{aliases:[169,4,1,""],excluded_typeclass_paths:[169,4,1,""],func:[169,3,1,""],help_category:[169,4,1,""],key:[169,4,1,""],lock_storage:[169,4,1,""],locks:[169,4,1,""],switch_options:[169,4,1,""]},"evennia.commands.default.system.CmdServerLoad":{aliases:[169,4,1,""],func:[169,3,1,""],help_category:[169,4,1,""],key:[169,4,1,""],lock_storage:[169,4,1,""],locks:[169,4,1,""],switch_options:[169,4,1,""]},"evennia.commands.default.system.CmdService":{aliases:[169,4,1,""],func:[169,3,1,""],help_category:[169,4,1,""],key:[169,4,1,""],lock_storage:[169,4,1,""],locks:[169,4,1,""],switch_options:[169,4,1,""]},"evennia.commands.default.system.CmdShutdown":{aliases:[169,4,1,""],func:[169,3,1,""],help_category:[169,4,1,""],key:[169,4,1,""],lock_storage:[169,4,1,""],locks:[169,4,1,""]},"evennia.commands.default.system.CmdTime":{aliases:[169,4,1,""],func:[169,3,1,""],help_category:[169,4,1,""],key:[169,4,1,""],lock_storage:[169,4,1,""],locks:[169,4,1,""]},"evennia.commands.default.tests":{CmdInterrupt:[170,1,1,""],CommandTest:[170,1,1,""],TestAccount:[170,1,1,""],TestAdmin:[170,1,1,""],TestBatchProcess:[170,1,1,""],TestBuilding:[170,1,1,""],TestComms:[170,1,1,""],TestGeneral:[170,1,1,""],TestHelp:[170,1,1,""],TestInterruptCommand:[170,1,1,""],TestSystem:[170,1,1,""],TestSystemCommands:[170,1,1,""],TestUnconnectedCommand:[170,1,1,""]},"evennia.commands.default.tests.CmdInterrupt":{aliases:[170,4,1,""],func:[170,3,1,""],help_category:[170,4,1,""],key:[170,4,1,""],lock_storage:[170,4,1,""],parse:[170,3,1,""]},"evennia.commands.default.tests.CommandTest":{call:[170,3,1,""]},"evennia.commands.default.tests.TestAccount":{test_char_create:[170,3,1,""],test_char_delete:[170,3,1,""],test_color_test:[170,3,1,""],test_ic:[170,3,1,""],test_ic__nonaccess:[170,3,1,""],test_ic__other_object:[170,3,1,""],test_ooc:[170,3,1,""],test_ooc_look:[170,3,1,""],test_option:[170,3,1,""],test_password:[170,3,1,""],test_quell:[170,3,1,""],test_quit:[170,3,1,""],test_sessions:[170,3,1,""],test_who:[170,3,1,""]},"evennia.commands.default.tests.TestAdmin":{test_ban:[170,3,1,""],test_emit:[170,3,1,""],test_force:[170,3,1,""],test_perm:[170,3,1,""],test_wall:[170,3,1,""]},"evennia.commands.default.tests.TestBatchProcess":{test_batch_commands:[170,3,1,""]},"evennia.commands.default.tests.TestBuilding":{test_attribute_commands:[170,3,1,""],test_copy:[170,3,1,""],test_create:[170,3,1,""],test_desc:[170,3,1,""],test_desc_default_to_room:[170,3,1,""],test_destroy:[170,3,1,""],test_destroy_sequence:[170,3,1,""],test_dig:[170,3,1,""],test_do_nested_lookup:[170,3,1,""],test_empty_desc:[170,3,1,""],test_examine:[170,3,1,""],test_exit_commands:[170,3,1,""],test_find:[170,3,1,""],test_list_cmdsets:[170,3,1,""],test_lock:[170,3,1,""],test_name:[170,3,1,""],test_nested_attribute_commands:[170,3,1,""],test_script:[170,3,1,""],test_set_home:[170,3,1,""],test_set_obj_alias:[170,3,1,""],test_spawn:[170,3,1,""],test_split_nested_attr:[170,3,1,""],test_tag:[170,3,1,""],test_teleport:[170,3,1,""],test_tunnel:[170,3,1,""],test_tunnel_exit_typeclass:[170,3,1,""],test_typeclass:[170,3,1,""]},"evennia.commands.default.tests.TestComms":{setUp:[170,3,1,""],test_all_com:[170,3,1,""],test_cboot:[170,3,1,""],test_cdesc:[170,3,1,""],test_cdestroy:[170,3,1,""],test_cemit:[170,3,1,""],test_channels:[170,3,1,""],test_clock:[170,3,1,""],test_cwho:[170,3,1,""],test_page:[170,3,1,""],test_toggle_com:[170,3,1,""]},"evennia.commands.default.tests.TestGeneral":{test_access:[170,3,1,""],test_get_and_drop:[170,3,1,""],test_give:[170,3,1,""],test_home:[170,3,1,""],test_inventory:[170,3,1,""],test_look:[170,3,1,""],test_mux_command:[170,3,1,""],test_nick:[170,3,1,""],test_pose:[170,3,1,""],test_say:[170,3,1,""],test_whisper:[170,3,1,""]},"evennia.commands.default.tests.TestHelp":{test_help:[170,3,1,""],test_set_help:[170,3,1,""]},"evennia.commands.default.tests.TestInterruptCommand":{test_interrupt_command:[170,3,1,""]},"evennia.commands.default.tests.TestSystem":{test_about:[170,3,1,""],test_objects:[170,3,1,""],test_py:[170,3,1,""],test_scripts:[170,3,1,""],test_server_load:[170,3,1,""]},"evennia.commands.default.tests.TestSystemCommands":{test_channelcommand:[170,3,1,""],test_multimatch:[170,3,1,""],test_simple_defaults:[170,3,1,""]},"evennia.commands.default.tests.TestUnconnectedCommand":{test_info_command:[170,3,1,""]},"evennia.commands.default.unloggedin":{CmdUnconnectedConnect:[171,1,1,""],CmdUnconnectedCreate:[171,1,1,""],CmdUnconnectedHelp:[171,1,1,""],CmdUnconnectedLook:[171,1,1,""],CmdUnconnectedQuit:[171,1,1,""]},"evennia.commands.default.unloggedin.CmdUnconnectedConnect":{aliases:[171,4,1,""],arg_regex:[171,4,1,""],func:[171,3,1,""],help_category:[171,4,1,""],key:[171,4,1,""],lock_storage:[171,4,1,""],locks:[171,4,1,""]},"evennia.commands.default.unloggedin.CmdUnconnectedCreate":{aliases:[171,4,1,""],arg_regex:[171,4,1,""],func:[171,3,1,""],help_category:[171,4,1,""],key:[171,4,1,""],lock_storage:[171,4,1,""],locks:[171,4,1,""]},"evennia.commands.default.unloggedin.CmdUnconnectedHelp":{aliases:[171,4,1,""],func:[171,3,1,""],help_category:[171,4,1,""],key:[171,4,1,""],lock_storage:[171,4,1,""],locks:[171,4,1,""]},"evennia.commands.default.unloggedin.CmdUnconnectedLook":{aliases:[171,4,1,""],func:[171,3,1,""],help_category:[171,4,1,""],key:[171,4,1,""],lock_storage:[171,4,1,""],locks:[171,4,1,""]},"evennia.commands.default.unloggedin.CmdUnconnectedQuit":{aliases:[171,4,1,""],func:[171,3,1,""],help_category:[171,4,1,""],key:[171,4,1,""],lock_storage:[171,4,1,""],locks:[171,4,1,""]},"evennia.comms":{admin:[173,0,0,"-"],channelhandler:[174,0,0,"-"],comms:[175,0,0,"-"],managers:[176,0,0,"-"],models:[177,0,0,"-"]},"evennia.comms.admin":{ChannelAdmin:[173,1,1,""],ChannelAttributeInline:[173,1,1,""],ChannelTagInline:[173,1,1,""],MsgAdmin:[173,1,1,""]},"evennia.comms.admin.ChannelAdmin":{fieldsets:[173,4,1,""],inlines:[173,4,1,""],list_display:[173,4,1,""],list_display_links:[173,4,1,""],list_select_related:[173,4,1,""],media:[173,3,1,""],ordering:[173,4,1,""],raw_id_fields:[173,4,1,""],response_add:[173,3,1,""],save_as:[173,4,1,""],save_model:[173,3,1,""],save_on_top:[173,4,1,""],search_fields:[173,4,1,""],subscriptions:[173,3,1,""]},"evennia.comms.admin.ChannelAttributeInline":{media:[173,3,1,""],model:[173,4,1,""],related_field:[173,4,1,""]},"evennia.comms.admin.ChannelTagInline":{media:[173,3,1,""],model:[173,4,1,""],related_field:[173,4,1,""]},"evennia.comms.admin.MsgAdmin":{list_display:[173,4,1,""],list_display_links:[173,4,1,""],list_select_related:[173,4,1,""],media:[173,3,1,""],ordering:[173,4,1,""],save_as:[173,4,1,""],save_on_top:[173,4,1,""],search_fields:[173,4,1,""]},"evennia.comms.channelhandler":{ChannelCommand:[174,1,1,""],ChannelHandler:[174,1,1,""]},"evennia.comms.channelhandler.ChannelCommand":{aliases:[174,4,1,""],arg_regex:[174,4,1,""],func:[174,3,1,""],get_extra_info:[174,3,1,""],help_category:[174,4,1,""],is_channel:[174,4,1,""],key:[174,4,1,""],lock_storage:[174,4,1,""],obj:[174,4,1,""],parse:[174,3,1,""]},"evennia.comms.channelhandler.ChannelHandler":{__init__:[174,3,1,""],add:[174,3,1,""],add_channel:[174,3,1,""],clear:[174,3,1,""],get:[174,3,1,""],get_cmdset:[174,3,1,""],remove:[174,3,1,""],update:[174,3,1,""]},"evennia.comms.comms":{DefaultChannel:[175,1,1,""]},"evennia.comms.comms.DefaultChannel":{"delete":[175,3,1,""],DoesNotExist:[175,2,1,""],MultipleObjectsReturned:[175,2,1,""],access:[175,3,1,""],at_channel_creation:[175,3,1,""],at_first_save:[175,3,1,""],at_init:[175,3,1,""],basetype_setup:[175,3,1,""],channel_prefix:[175,3,1,""],connect:[175,3,1,""],create:[175,3,1,""],disconnect:[175,3,1,""],distribute_message:[175,3,1,""],format_external:[175,3,1,""],format_message:[175,3,1,""],format_senders:[175,3,1,""],get_absolute_url:[175,3,1,""],has_connection:[175,3,1,""],message_transform:[175,3,1,""],msg:[175,3,1,""],mute:[175,3,1,""],mutelist:[175,3,1,""],objects:[175,4,1,""],path:[175,4,1,""],pose_transform:[175,3,1,""],post_join_channel:[175,3,1,""],post_leave_channel:[175,3,1,""],post_send_message:[175,3,1,""],pre_join_channel:[175,3,1,""],pre_leave_channel:[175,3,1,""],pre_send_message:[175,3,1,""],tempmsg:[175,3,1,""],typename:[175,4,1,""],unmute:[175,3,1,""],web_get_admin_url:[175,3,1,""],web_get_create_url:[175,3,1,""],web_get_delete_url:[175,3,1,""],web_get_detail_url:[175,3,1,""],web_get_update_url:[175,3,1,""],wholist:[175,3,1,""]},"evennia.comms.managers":{ChannelDBManager:[176,1,1,""],ChannelManager:[176,1,1,""],CommError:[176,2,1,""],MsgManager:[176,1,1,""],identify_object:[176,5,1,""],to_object:[176,5,1,""]},"evennia.comms.managers.ChannelDBManager":{channel_search:[176,3,1,""],get_all_channels:[176,3,1,""],get_channel:[176,3,1,""],get_subscriptions:[176,3,1,""],search_channel:[176,3,1,""]},"evennia.comms.managers.MsgManager":{get_message_by_id:[176,3,1,""],get_messages_by_channel:[176,3,1,""],get_messages_by_receiver:[176,3,1,""],get_messages_by_sender:[176,3,1,""],identify_object:[176,3,1,""],message_search:[176,3,1,""],search_message:[176,3,1,""]},"evennia.comms.models":{ChannelDB:[177,1,1,""],Msg:[177,1,1,""],TempMsg:[177,1,1,""]},"evennia.comms.models.ChannelDB":{DoesNotExist:[177,2,1,""],MultipleObjectsReturned:[177,2,1,""],channel_set:[177,4,1,""],db_account_subscriptions:[177,4,1,""],db_attributes:[177,4,1,""],db_object_subscriptions:[177,4,1,""],db_tags:[177,4,1,""],get_next_by_db_date_created:[177,3,1,""],get_previous_by_db_date_created:[177,3,1,""],hide_from_channels_set:[177,4,1,""],id:[177,4,1,""],objects:[177,4,1,""],path:[177,4,1,""],subscriptions:[177,4,1,""],typename:[177,4,1,""]},"evennia.comms.models.Msg":{DoesNotExist:[177,2,1,""],MultipleObjectsReturned:[177,2,1,""],__init__:[177,3,1,""],access:[177,3,1,""],channels:[177,3,1,""],date_created:[177,3,1,""],db_date_created:[177,4,1,""],db_header:[177,4,1,""],db_hide_from_accounts:[177,4,1,""],db_hide_from_channels:[177,4,1,""],db_hide_from_objects:[177,4,1,""],db_lock_storage:[177,4,1,""],db_message:[177,4,1,""],db_receivers_accounts:[177,4,1,""],db_receivers_channels:[177,4,1,""],db_receivers_objects:[177,4,1,""],db_receivers_scripts:[177,4,1,""],db_sender_accounts:[177,4,1,""],db_sender_external:[177,4,1,""],db_sender_objects:[177,4,1,""],db_sender_scripts:[177,4,1,""],db_tags:[177,4,1,""],get_next_by_db_date_created:[177,3,1,""],get_previous_by_db_date_created:[177,3,1,""],header:[177,3,1,""],hide_from:[177,3,1,""],id:[177,4,1,""],lock_storage:[177,3,1,""],locks:[177,4,1,""],message:[177,3,1,""],objects:[177,4,1,""],path:[177,4,1,""],receivers:[177,3,1,""],remove_receiver:[177,3,1,""],remove_sender:[177,3,1,""],sender_external:[177,3,1,""],senders:[177,3,1,""],tags:[177,4,1,""],typename:[177,4,1,""]},"evennia.comms.models.TempMsg":{__init__:[177,3,1,""],access:[177,3,1,""],locks:[177,4,1,""],remove_receiver:[177,3,1,""],remove_sender:[177,3,1,""]},"evennia.contrib":{barter:[179,0,0,"-"],building_menu:[180,0,0,"-"],chargen:[181,0,0,"-"],clothing:[182,0,0,"-"],color_markups:[183,0,0,"-"],custom_gametime:[184,0,0,"-"],dice:[185,0,0,"-"],email_login:[186,0,0,"-"],extended_room:[187,0,0,"-"],fieldfill:[188,0,0,"-"],gendersub:[189,0,0,"-"],health_bar:[190,0,0,"-"],ingame_python:[191,0,0,"-"],mail:[199,0,0,"-"],mapbuilder:[200,0,0,"-"],menu_login:[201,0,0,"-"],multidescer:[202,0,0,"-"],puzzles:[203,0,0,"-"],random_string_generator:[204,0,0,"-"],rplanguage:[205,0,0,"-"],rpsystem:[206,0,0,"-"],security:[207,0,0,"-"],simpledoor:[212,0,0,"-"],slow_exit:[213,0,0,"-"],talking_npc:[214,0,0,"-"],tree_select:[215,0,0,"-"],turnbattle:[216,0,0,"-"],tutorial_examples:[222,0,0,"-"],tutorial_world:[229,0,0,"-"],unixcommand:[234,0,0,"-"],wilderness:[235,0,0,"-"]},"evennia.contrib.barter":{CmdAccept:[179,1,1,""],CmdDecline:[179,1,1,""],CmdEvaluate:[179,1,1,""],CmdFinish:[179,1,1,""],CmdOffer:[179,1,1,""],CmdStatus:[179,1,1,""],CmdTrade:[179,1,1,""],CmdTradeBase:[179,1,1,""],CmdTradeHelp:[179,1,1,""],CmdsetTrade:[179,1,1,""],TradeHandler:[179,1,1,""],TradeTimeout:[179,1,1,""]},"evennia.contrib.barter.CmdAccept":{aliases:[179,4,1,""],func:[179,3,1,""],help_category:[179,4,1,""],key:[179,4,1,""],lock_storage:[179,4,1,""],locks:[179,4,1,""]},"evennia.contrib.barter.CmdDecline":{aliases:[179,4,1,""],func:[179,3,1,""],help_category:[179,4,1,""],key:[179,4,1,""],lock_storage:[179,4,1,""],locks:[179,4,1,""]},"evennia.contrib.barter.CmdEvaluate":{aliases:[179,4,1,""],func:[179,3,1,""],help_category:[179,4,1,""],key:[179,4,1,""],lock_storage:[179,4,1,""],locks:[179,4,1,""]},"evennia.contrib.barter.CmdFinish":{aliases:[179,4,1,""],func:[179,3,1,""],help_category:[179,4,1,""],key:[179,4,1,""],lock_storage:[179,4,1,""],locks:[179,4,1,""]},"evennia.contrib.barter.CmdOffer":{aliases:[179,4,1,""],func:[179,3,1,""],help_category:[179,4,1,""],key:[179,4,1,""],lock_storage:[179,4,1,""],locks:[179,4,1,""]},"evennia.contrib.barter.CmdStatus":{aliases:[179,4,1,""],func:[179,3,1,""],help_category:[179,4,1,""],key:[179,4,1,""],lock_storage:[179,4,1,""],locks:[179,4,1,""]},"evennia.contrib.barter.CmdTrade":{aliases:[179,4,1,""],func:[179,3,1,""],help_category:[179,4,1,""],key:[179,4,1,""],lock_storage:[179,4,1,""],locks:[179,4,1,""]},"evennia.contrib.barter.CmdTradeBase":{aliases:[179,4,1,""],help_category:[179,4,1,""],key:[179,4,1,""],lock_storage:[179,4,1,""],parse:[179,3,1,""]},"evennia.contrib.barter.CmdTradeHelp":{aliases:[179,4,1,""],func:[179,3,1,""],help_category:[179,4,1,""],key:[179,4,1,""],lock_storage:[179,4,1,""],locks:[179,4,1,""]},"evennia.contrib.barter.CmdsetTrade":{at_cmdset_creation:[179,3,1,""],key:[179,4,1,""],path:[179,4,1,""]},"evennia.contrib.barter.TradeHandler":{__init__:[179,3,1,""],accept:[179,3,1,""],decline:[179,3,1,""],finish:[179,3,1,""],get_other:[179,3,1,""],join:[179,3,1,""],list:[179,3,1,""],msg_other:[179,3,1,""],offer:[179,3,1,""],search:[179,3,1,""],unjoin:[179,3,1,""]},"evennia.contrib.barter.TradeTimeout":{DoesNotExist:[179,2,1,""],MultipleObjectsReturned:[179,2,1,""],at_repeat:[179,3,1,""],at_script_creation:[179,3,1,""],is_valid:[179,3,1,""],path:[179,4,1,""],typename:[179,4,1,""]},"evennia.contrib.building_menu":{BuildingMenu:[180,1,1,""],BuildingMenuCmdSet:[180,1,1,""],Choice:[180,1,1,""],CmdNoInput:[180,1,1,""],CmdNoMatch:[180,1,1,""],GenericBuildingCmd:[180,1,1,""],GenericBuildingMenu:[180,1,1,""],menu_edit:[180,5,1,""],menu_quit:[180,5,1,""],menu_setattr:[180,5,1,""]},"evennia.contrib.building_menu.BuildingMenu":{__init__:[180,3,1,""],add_choice:[180,3,1,""],add_choice_edit:[180,3,1,""],add_choice_quit:[180,3,1,""],close:[180,3,1,""],current_choice:[180,3,1,""],display:[180,3,1,""],display_choice:[180,3,1,""],display_title:[180,3,1,""],init:[180,3,1,""],joker_key:[180,4,1,""],keys_go_back:[180,4,1,""],min_shortcut:[180,4,1,""],move:[180,3,1,""],open:[180,3,1,""],open_parent_menu:[180,3,1,""],open_submenu:[180,3,1,""],relevant_choices:[180,3,1,""],restore:[180,3,1,""],sep_keys:[180,4,1,""]},"evennia.contrib.building_menu.BuildingMenuCmdSet":{at_cmdset_creation:[180,3,1,""],key:[180,4,1,""],path:[180,4,1,""],priority:[180,4,1,""]},"evennia.contrib.building_menu.Choice":{__init__:[180,3,1,""],enter:[180,3,1,""],format_text:[180,3,1,""],keys:[180,3,1,""],leave:[180,3,1,""],nomatch:[180,3,1,""]},"evennia.contrib.building_menu.CmdNoInput":{__init__:[180,3,1,""],aliases:[180,4,1,""],func:[180,3,1,""],help_category:[180,4,1,""],key:[180,4,1,""],lock_storage:[180,4,1,""],locks:[180,4,1,""]},"evennia.contrib.building_menu.CmdNoMatch":{__init__:[180,3,1,""],aliases:[180,4,1,""],func:[180,3,1,""],help_category:[180,4,1,""],key:[180,4,1,""],lock_storage:[180,4,1,""],locks:[180,4,1,""]},"evennia.contrib.building_menu.GenericBuildingCmd":{aliases:[180,4,1,""],func:[180,3,1,""],help_category:[180,4,1,""],key:[180,4,1,""],lock_storage:[180,4,1,""]},"evennia.contrib.building_menu.GenericBuildingMenu":{init:[180,3,1,""]},"evennia.contrib.chargen":{CmdOOCCharacterCreate:[181,1,1,""],CmdOOCLook:[181,1,1,""],OOCCmdSetCharGen:[181,1,1,""]},"evennia.contrib.chargen.CmdOOCCharacterCreate":{aliases:[181,4,1,""],func:[181,3,1,""],help_category:[181,4,1,""],key:[181,4,1,""],lock_storage:[181,4,1,""],locks:[181,4,1,""]},"evennia.contrib.chargen.CmdOOCLook":{aliases:[181,4,1,""],func:[181,3,1,""],help_category:[181,4,1,""],key:[181,4,1,""],lock_storage:[181,4,1,""],locks:[181,4,1,""]},"evennia.contrib.chargen.OOCCmdSetCharGen":{at_cmdset_creation:[181,3,1,""],path:[181,4,1,""]},"evennia.contrib.clothing":{ClothedCharacter:[182,1,1,""],ClothedCharacterCmdSet:[182,1,1,""],Clothing:[182,1,1,""],CmdCover:[182,1,1,""],CmdDrop:[182,1,1,""],CmdGive:[182,1,1,""],CmdInventory:[182,1,1,""],CmdRemove:[182,1,1,""],CmdUncover:[182,1,1,""],CmdWear:[182,1,1,""],clothing_type_count:[182,5,1,""],get_worn_clothes:[182,5,1,""],order_clothes_list:[182,5,1,""],single_type_count:[182,5,1,""]},"evennia.contrib.clothing.ClothedCharacter":{DoesNotExist:[182,2,1,""],MultipleObjectsReturned:[182,2,1,""],path:[182,4,1,""],return_appearance:[182,3,1,""],typename:[182,4,1,""]},"evennia.contrib.clothing.ClothedCharacterCmdSet":{at_cmdset_creation:[182,3,1,""],key:[182,4,1,""],path:[182,4,1,""]},"evennia.contrib.clothing.Clothing":{DoesNotExist:[182,2,1,""],MultipleObjectsReturned:[182,2,1,""],at_get:[182,3,1,""],path:[182,4,1,""],remove:[182,3,1,""],typename:[182,4,1,""],wear:[182,3,1,""]},"evennia.contrib.clothing.CmdCover":{aliases:[182,4,1,""],func:[182,3,1,""],help_category:[182,4,1,""],key:[182,4,1,""],lock_storage:[182,4,1,""]},"evennia.contrib.clothing.CmdDrop":{aliases:[182,4,1,""],arg_regex:[182,4,1,""],func:[182,3,1,""],help_category:[182,4,1,""],key:[182,4,1,""],lock_storage:[182,4,1,""],locks:[182,4,1,""]},"evennia.contrib.clothing.CmdGive":{aliases:[182,4,1,""],arg_regex:[182,4,1,""],func:[182,3,1,""],help_category:[182,4,1,""],key:[182,4,1,""],lock_storage:[182,4,1,""],locks:[182,4,1,""]},"evennia.contrib.clothing.CmdInventory":{aliases:[182,4,1,""],arg_regex:[182,4,1,""],func:[182,3,1,""],help_category:[182,4,1,""],key:[182,4,1,""],lock_storage:[182,4,1,""],locks:[182,4,1,""]},"evennia.contrib.clothing.CmdRemove":{aliases:[182,4,1,""],func:[182,3,1,""],help_category:[182,4,1,""],key:[182,4,1,""],lock_storage:[182,4,1,""]},"evennia.contrib.clothing.CmdUncover":{aliases:[182,4,1,""],func:[182,3,1,""],help_category:[182,4,1,""],key:[182,4,1,""],lock_storage:[182,4,1,""]},"evennia.contrib.clothing.CmdWear":{aliases:[182,4,1,""],func:[182,3,1,""],help_category:[182,4,1,""],key:[182,4,1,""],lock_storage:[182,4,1,""]},"evennia.contrib.custom_gametime":{GametimeScript:[184,1,1,""],custom_gametime:[184,5,1,""],gametime_to_realtime:[184,5,1,""],real_seconds_until:[184,5,1,""],realtime_to_gametime:[184,5,1,""],schedule:[184,5,1,""],time_to_tuple:[184,5,1,""]},"evennia.contrib.custom_gametime.GametimeScript":{DoesNotExist:[184,2,1,""],MultipleObjectsReturned:[184,2,1,""],at_repeat:[184,3,1,""],at_script_creation:[184,3,1,""],path:[184,4,1,""],typename:[184,4,1,""]},"evennia.contrib.dice":{CmdDice:[185,1,1,""],DiceCmdSet:[185,1,1,""],roll_dice:[185,5,1,""]},"evennia.contrib.dice.CmdDice":{aliases:[185,4,1,""],func:[185,3,1,""],help_category:[185,4,1,""],key:[185,4,1,""],lock_storage:[185,4,1,""],locks:[185,4,1,""]},"evennia.contrib.dice.DiceCmdSet":{at_cmdset_creation:[185,3,1,""],path:[185,4,1,""]},"evennia.contrib.email_login":{CmdUnconnectedConnect:[186,1,1,""],CmdUnconnectedCreate:[186,1,1,""],CmdUnconnectedHelp:[186,1,1,""],CmdUnconnectedLook:[186,1,1,""],CmdUnconnectedQuit:[186,1,1,""]},"evennia.contrib.email_login.CmdUnconnectedConnect":{aliases:[186,4,1,""],func:[186,3,1,""],help_category:[186,4,1,""],key:[186,4,1,""],lock_storage:[186,4,1,""],locks:[186,4,1,""]},"evennia.contrib.email_login.CmdUnconnectedCreate":{aliases:[186,4,1,""],func:[186,3,1,""],help_category:[186,4,1,""],key:[186,4,1,""],lock_storage:[186,4,1,""],locks:[186,4,1,""],parse:[186,3,1,""]},"evennia.contrib.email_login.CmdUnconnectedHelp":{aliases:[186,4,1,""],func:[186,3,1,""],help_category:[186,4,1,""],key:[186,4,1,""],lock_storage:[186,4,1,""],locks:[186,4,1,""]},"evennia.contrib.email_login.CmdUnconnectedLook":{aliases:[186,4,1,""],func:[186,3,1,""],help_category:[186,4,1,""],key:[186,4,1,""],lock_storage:[186,4,1,""],locks:[186,4,1,""]},"evennia.contrib.email_login.CmdUnconnectedQuit":{aliases:[186,4,1,""],func:[186,3,1,""],help_category:[186,4,1,""],key:[186,4,1,""],lock_storage:[186,4,1,""],locks:[186,4,1,""]},"evennia.contrib.extended_room":{CmdExtendedRoomDesc:[187,1,1,""],CmdExtendedRoomDetail:[187,1,1,""],CmdExtendedRoomGameTime:[187,1,1,""],CmdExtendedRoomLook:[187,1,1,""],ExtendedRoom:[187,1,1,""],ExtendedRoomCmdSet:[187,1,1,""]},"evennia.contrib.extended_room.CmdExtendedRoomDesc":{aliases:[187,4,1,""],func:[187,3,1,""],help_category:[187,4,1,""],key:[187,4,1,""],lock_storage:[187,4,1,""],reset_times:[187,3,1,""],switch_options:[187,4,1,""]},"evennia.contrib.extended_room.CmdExtendedRoomDetail":{aliases:[187,4,1,""],func:[187,3,1,""],help_category:[187,4,1,""],key:[187,4,1,""],lock_storage:[187,4,1,""],locks:[187,4,1,""]},"evennia.contrib.extended_room.CmdExtendedRoomGameTime":{aliases:[187,4,1,""],func:[187,3,1,""],help_category:[187,4,1,""],key:[187,4,1,""],lock_storage:[187,4,1,""],locks:[187,4,1,""]},"evennia.contrib.extended_room.CmdExtendedRoomLook":{aliases:[187,4,1,""],func:[187,3,1,""],help_category:[187,4,1,""],key:[187,4,1,""],lock_storage:[187,4,1,""]},"evennia.contrib.extended_room.ExtendedRoom":{DoesNotExist:[187,2,1,""],MultipleObjectsReturned:[187,2,1,""],at_object_creation:[187,3,1,""],del_detail:[187,3,1,""],get_time_and_season:[187,3,1,""],path:[187,4,1,""],replace_timeslots:[187,3,1,""],return_appearance:[187,3,1,""],return_detail:[187,3,1,""],set_detail:[187,3,1,""],typename:[187,4,1,""],update_current_description:[187,3,1,""]},"evennia.contrib.extended_room.ExtendedRoomCmdSet":{at_cmdset_creation:[187,3,1,""],path:[187,4,1,""]},"evennia.contrib.fieldfill":{CmdTestMenu:[188,1,1,""],FieldEvMenu:[188,1,1,""],display_formdata:[188,5,1,""],form_template_to_dict:[188,5,1,""],init_delayed_message:[188,5,1,""],init_fill_field:[188,5,1,""],menunode_fieldfill:[188,5,1,""],sendmessage:[188,5,1,""],verify_online_player:[188,5,1,""]},"evennia.contrib.fieldfill.CmdTestMenu":{aliases:[188,4,1,""],func:[188,3,1,""],help_category:[188,4,1,""],key:[188,4,1,""],lock_storage:[188,4,1,""]},"evennia.contrib.fieldfill.FieldEvMenu":{node_formatter:[188,3,1,""]},"evennia.contrib.gendersub":{GenderCharacter:[189,1,1,""],SetGender:[189,1,1,""]},"evennia.contrib.gendersub.GenderCharacter":{DoesNotExist:[189,2,1,""],MultipleObjectsReturned:[189,2,1,""],at_object_creation:[189,3,1,""],msg:[189,3,1,""],path:[189,4,1,""],typename:[189,4,1,""]},"evennia.contrib.gendersub.SetGender":{aliases:[189,4,1,""],func:[189,3,1,""],help_category:[189,4,1,""],key:[189,4,1,""],lock_storage:[189,4,1,""],locks:[189,4,1,""]},"evennia.contrib.health_bar":{display_meter:[190,5,1,""]},"evennia.contrib.ingame_python":{callbackhandler:[192,0,0,"-"],commands:[193,0,0,"-"],eventfuncs:[194,0,0,"-"],scripts:[195,0,0,"-"],tests:[196,0,0,"-"],typeclasses:[197,0,0,"-"],utils:[198,0,0,"-"]},"evennia.contrib.ingame_python.callbackhandler":{Callback:[192,1,1,""],CallbackHandler:[192,1,1,""]},"evennia.contrib.ingame_python.callbackhandler.Callback":{author:[192,3,1,""],code:[192,3,1,""],created_on:[192,3,1,""],name:[192,3,1,""],number:[192,3,1,""],obj:[192,3,1,""],parameters:[192,3,1,""],updated_by:[192,3,1,""],updated_on:[192,3,1,""],valid:[192,3,1,""]},"evennia.contrib.ingame_python.callbackhandler.CallbackHandler":{__init__:[192,3,1,""],add:[192,3,1,""],all:[192,3,1,""],call:[192,3,1,""],edit:[192,3,1,""],format_callback:[192,3,1,""],get:[192,3,1,""],get_variable:[192,3,1,""],remove:[192,3,1,""],script:[192,4,1,""]},"evennia.contrib.ingame_python.commands":{CmdCallback:[193,1,1,""]},"evennia.contrib.ingame_python.commands.CmdCallback":{accept_callback:[193,3,1,""],add_callback:[193,3,1,""],aliases:[193,4,1,""],del_callback:[193,3,1,""],edit_callback:[193,3,1,""],func:[193,3,1,""],get_help:[193,3,1,""],help_category:[193,4,1,""],key:[193,4,1,""],list_callbacks:[193,3,1,""],list_tasks:[193,3,1,""],lock_storage:[193,4,1,""],locks:[193,4,1,""]},"evennia.contrib.ingame_python.eventfuncs":{call_event:[194,5,1,""],deny:[194,5,1,""],get:[194,5,1,""]},"evennia.contrib.ingame_python.scripts":{EventHandler:[195,1,1,""],TimeEventScript:[195,1,1,""],complete_task:[195,5,1,""]},"evennia.contrib.ingame_python.scripts.EventHandler":{DoesNotExist:[195,2,1,""],MultipleObjectsReturned:[195,2,1,""],accept_callback:[195,3,1,""],add_callback:[195,3,1,""],add_event:[195,3,1,""],at_script_creation:[195,3,1,""],at_start:[195,3,1,""],call:[195,3,1,""],del_callback:[195,3,1,""],edit_callback:[195,3,1,""],get_callbacks:[195,3,1,""],get_events:[195,3,1,""],get_variable:[195,3,1,""],handle_error:[195,3,1,""],path:[195,4,1,""],set_task:[195,3,1,""],typename:[195,4,1,""]},"evennia.contrib.ingame_python.scripts.TimeEventScript":{DoesNotExist:[195,2,1,""],MultipleObjectsReturned:[195,2,1,""],at_repeat:[195,3,1,""],at_script_creation:[195,3,1,""],path:[195,4,1,""],typename:[195,4,1,""]},"evennia.contrib.ingame_python.tests":{TestCmdCallback:[196,1,1,""],TestDefaultCallbacks:[196,1,1,""],TestEventHandler:[196,1,1,""]},"evennia.contrib.ingame_python.tests.TestCmdCallback":{setUp:[196,3,1,""],tearDown:[196,3,1,""],test_accept:[196,3,1,""],test_add:[196,3,1,""],test_del:[196,3,1,""],test_list:[196,3,1,""],test_lock:[196,3,1,""]},"evennia.contrib.ingame_python.tests.TestDefaultCallbacks":{setUp:[196,3,1,""],tearDown:[196,3,1,""],test_exit:[196,3,1,""]},"evennia.contrib.ingame_python.tests.TestEventHandler":{setUp:[196,3,1,""],tearDown:[196,3,1,""],test_accept:[196,3,1,""],test_add_validation:[196,3,1,""],test_call:[196,3,1,""],test_del:[196,3,1,""],test_edit:[196,3,1,""],test_edit_validation:[196,3,1,""],test_handler:[196,3,1,""],test_start:[196,3,1,""]},"evennia.contrib.ingame_python.typeclasses":{EventCharacter:[197,1,1,""],EventExit:[197,1,1,""],EventObject:[197,1,1,""],EventRoom:[197,1,1,""]},"evennia.contrib.ingame_python.typeclasses.EventCharacter":{DoesNotExist:[197,2,1,""],MultipleObjectsReturned:[197,2,1,""],announce_move_from:[197,3,1,""],announce_move_to:[197,3,1,""],at_after_move:[197,3,1,""],at_before_move:[197,3,1,""],at_before_say:[197,3,1,""],at_object_delete:[197,3,1,""],at_post_puppet:[197,3,1,""],at_pre_unpuppet:[197,3,1,""],at_say:[197,3,1,""],callbacks:[197,4,1,""],path:[197,4,1,""],typename:[197,4,1,""]},"evennia.contrib.ingame_python.typeclasses.EventExit":{DoesNotExist:[197,2,1,""],MultipleObjectsReturned:[197,2,1,""],at_traverse:[197,3,1,""],callbacks:[197,4,1,""],path:[197,4,1,""],typename:[197,4,1,""]},"evennia.contrib.ingame_python.typeclasses.EventObject":{DoesNotExist:[197,2,1,""],MultipleObjectsReturned:[197,2,1,""],at_drop:[197,3,1,""],at_get:[197,3,1,""],callbacks:[197,4,1,""],path:[197,4,1,""],typename:[197,4,1,""]},"evennia.contrib.ingame_python.typeclasses.EventRoom":{DoesNotExist:[197,2,1,""],MultipleObjectsReturned:[197,2,1,""],at_object_delete:[197,3,1,""],callbacks:[197,4,1,""],path:[197,4,1,""],typename:[197,4,1,""]},"evennia.contrib.ingame_python.utils":{InterruptEvent:[198,2,1,""],get_event_handler:[198,5,1,""],get_next_wait:[198,5,1,""],keyword_event:[198,5,1,""],phrase_event:[198,5,1,""],register_events:[198,5,1,""],time_event:[198,5,1,""]},"evennia.contrib.mail":{CmdMail:[199,1,1,""],CmdMailCharacter:[199,1,1,""]},"evennia.contrib.mail.CmdMail":{aliases:[199,4,1,""],func:[199,3,1,""],get_all_mail:[199,3,1,""],help_category:[199,4,1,""],key:[199,4,1,""],lock:[199,4,1,""],lock_storage:[199,4,1,""],parse:[199,3,1,""],search_targets:[199,3,1,""],send_mail:[199,3,1,""]},"evennia.contrib.mail.CmdMailCharacter":{account_caller:[199,4,1,""],aliases:[199,4,1,""],help_category:[199,4,1,""],key:[199,4,1,""],lock_storage:[199,4,1,""]},"evennia.contrib.mapbuilder":{CmdMapBuilder:[200,1,1,""],build_map:[200,5,1,""],example1_build_forest:[200,5,1,""],example1_build_mountains:[200,5,1,""],example1_build_temple:[200,5,1,""],example2_build_forest:[200,5,1,""],example2_build_horizontal_exit:[200,5,1,""],example2_build_verticle_exit:[200,5,1,""]},"evennia.contrib.mapbuilder.CmdMapBuilder":{aliases:[200,4,1,""],func:[200,3,1,""],help_category:[200,4,1,""],key:[200,4,1,""],lock_storage:[200,4,1,""],locks:[200,4,1,""]},"evennia.contrib.menu_login":{CmdUnloggedinLook:[201,1,1,""],UnloggedinCmdSet:[201,1,1,""],node_enter_password:[201,5,1,""],node_enter_username:[201,5,1,""],node_quit_or_login:[201,5,1,""]},"evennia.contrib.menu_login.CmdUnloggedinLook":{aliases:[201,4,1,""],arg_regex:[201,4,1,""],func:[201,3,1,""],help_category:[201,4,1,""],key:[201,4,1,""],lock_storage:[201,4,1,""],locks:[201,4,1,""]},"evennia.contrib.menu_login.UnloggedinCmdSet":{at_cmdset_creation:[201,3,1,""],key:[201,4,1,""],path:[201,4,1,""],priority:[201,4,1,""]},"evennia.contrib.multidescer":{CmdMultiDesc:[202,1,1,""],DescValidateError:[202,2,1,""]},"evennia.contrib.multidescer.CmdMultiDesc":{aliases:[202,4,1,""],func:[202,3,1,""],help_category:[202,4,1,""],key:[202,4,1,""],lock_storage:[202,4,1,""],locks:[202,4,1,""]},"evennia.contrib.puzzles":{CmdArmPuzzle:[203,1,1,""],CmdCreatePuzzleRecipe:[203,1,1,""],CmdEditPuzzle:[203,1,1,""],CmdListArmedPuzzles:[203,1,1,""],CmdListPuzzleRecipes:[203,1,1,""],CmdUsePuzzleParts:[203,1,1,""],PuzzleRecipe:[203,1,1,""],PuzzleSystemCmdSet:[203,1,1,""],maskout_protodef:[203,5,1,""],proto_def:[203,5,1,""]},"evennia.contrib.puzzles.CmdArmPuzzle":{aliases:[203,4,1,""],func:[203,3,1,""],help_category:[203,4,1,""],key:[203,4,1,""],lock_storage:[203,4,1,""],locks:[203,4,1,""]},"evennia.contrib.puzzles.CmdCreatePuzzleRecipe":{aliases:[203,4,1,""],confirm:[203,4,1,""],default_confirm:[203,4,1,""],func:[203,3,1,""],help_category:[203,4,1,""],key:[203,4,1,""],lock_storage:[203,4,1,""],locks:[203,4,1,""]},"evennia.contrib.puzzles.CmdEditPuzzle":{aliases:[203,4,1,""],func:[203,3,1,""],help_category:[203,4,1,""],key:[203,4,1,""],lock_storage:[203,4,1,""],locks:[203,4,1,""]},"evennia.contrib.puzzles.CmdListArmedPuzzles":{aliases:[203,4,1,""],func:[203,3,1,""],help_category:[203,4,1,""],key:[203,4,1,""],lock_storage:[203,4,1,""],locks:[203,4,1,""]},"evennia.contrib.puzzles.CmdListPuzzleRecipes":{aliases:[203,4,1,""],func:[203,3,1,""],help_category:[203,4,1,""],key:[203,4,1,""],lock_storage:[203,4,1,""],locks:[203,4,1,""]},"evennia.contrib.puzzles.CmdUsePuzzleParts":{aliases:[203,4,1,""],func:[203,3,1,""],help_category:[203,4,1,""],key:[203,4,1,""],lock_storage:[203,4,1,""],locks:[203,4,1,""]},"evennia.contrib.puzzles.PuzzleRecipe":{DoesNotExist:[203,2,1,""],MultipleObjectsReturned:[203,2,1,""],path:[203,4,1,""],save_recipe:[203,3,1,""],typename:[203,4,1,""]},"evennia.contrib.puzzles.PuzzleSystemCmdSet":{at_cmdset_creation:[203,3,1,""],path:[203,4,1,""]},"evennia.contrib.random_string_generator":{ExhaustedGenerator:[204,2,1,""],RandomStringGenerator:[204,1,1,""],RandomStringGeneratorScript:[204,1,1,""],RejectedRegex:[204,2,1,""]},"evennia.contrib.random_string_generator.RandomStringGenerator":{__init__:[204,3,1,""],all:[204,3,1,""],clear:[204,3,1,""],get:[204,3,1,""],remove:[204,3,1,""],script:[204,4,1,""]},"evennia.contrib.random_string_generator.RandomStringGeneratorScript":{DoesNotExist:[204,2,1,""],MultipleObjectsReturned:[204,2,1,""],at_script_creation:[204,3,1,""],path:[204,4,1,""],typename:[204,4,1,""]},"evennia.contrib.rplanguage":{LanguageError:[205,2,1,""],LanguageExistsError:[205,2,1,""],LanguageHandler:[205,1,1,""],add_language:[205,5,1,""],available_languages:[205,5,1,""],obfuscate_language:[205,5,1,""],obfuscate_whisper:[205,5,1,""]},"evennia.contrib.rplanguage.LanguageHandler":{DoesNotExist:[205,2,1,""],MultipleObjectsReturned:[205,2,1,""],add:[205,3,1,""],at_script_creation:[205,3,1,""],path:[205,4,1,""],translate:[205,3,1,""],typename:[205,4,1,""]},"evennia.contrib.rpsystem":{CmdEmote:[206,1,1,""],CmdMask:[206,1,1,""],CmdPose:[206,1,1,""],CmdRecog:[206,1,1,""],CmdSay:[206,1,1,""],CmdSdesc:[206,1,1,""],ContribRPCharacter:[206,1,1,""],ContribRPObject:[206,1,1,""],ContribRPRoom:[206,1,1,""],EmoteError:[206,2,1,""],LanguageError:[206,2,1,""],RPCommand:[206,1,1,""],RPSystemCmdSet:[206,1,1,""],RecogError:[206,2,1,""],RecogHandler:[206,1,1,""],SdescError:[206,2,1,""],SdescHandler:[206,1,1,""],ordered_permutation_regex:[206,5,1,""],parse_language:[206,5,1,""],parse_sdescs_and_recogs:[206,5,1,""],regex_tuple_from_key_alias:[206,5,1,""],send_emote:[206,5,1,""]},"evennia.contrib.rpsystem.CmdEmote":{aliases:[206,4,1,""],func:[206,3,1,""],help_category:[206,4,1,""],key:[206,4,1,""],lock_storage:[206,4,1,""],locks:[206,4,1,""]},"evennia.contrib.rpsystem.CmdMask":{aliases:[206,4,1,""],func:[206,3,1,""],help_category:[206,4,1,""],key:[206,4,1,""],lock_storage:[206,4,1,""]},"evennia.contrib.rpsystem.CmdPose":{aliases:[206,4,1,""],func:[206,3,1,""],help_category:[206,4,1,""],key:[206,4,1,""],lock_storage:[206,4,1,""],parse:[206,3,1,""]},"evennia.contrib.rpsystem.CmdRecog":{aliases:[206,4,1,""],func:[206,3,1,""],help_category:[206,4,1,""],key:[206,4,1,""],lock_storage:[206,4,1,""],parse:[206,3,1,""]},"evennia.contrib.rpsystem.CmdSay":{aliases:[206,4,1,""],func:[206,3,1,""],help_category:[206,4,1,""],key:[206,4,1,""],lock_storage:[206,4,1,""],locks:[206,4,1,""]},"evennia.contrib.rpsystem.CmdSdesc":{aliases:[206,4,1,""],func:[206,3,1,""],help_category:[206,4,1,""],key:[206,4,1,""],lock_storage:[206,4,1,""],locks:[206,4,1,""]},"evennia.contrib.rpsystem.ContribRPCharacter":{DoesNotExist:[206,2,1,""],MultipleObjectsReturned:[206,2,1,""],at_before_say:[206,3,1,""],at_object_creation:[206,3,1,""],get_display_name:[206,3,1,""],path:[206,4,1,""],process_language:[206,3,1,""],process_recog:[206,3,1,""],process_sdesc:[206,3,1,""],recog:[206,4,1,""],sdesc:[206,4,1,""],typename:[206,4,1,""]},"evennia.contrib.rpsystem.ContribRPObject":{DoesNotExist:[206,2,1,""],MultipleObjectsReturned:[206,2,1,""],at_object_creation:[206,3,1,""],get_display_name:[206,3,1,""],path:[206,4,1,""],return_appearance:[206,3,1,""],search:[206,3,1,""],typename:[206,4,1,""]},"evennia.contrib.rpsystem.ContribRPRoom":{DoesNotExist:[206,2,1,""],MultipleObjectsReturned:[206,2,1,""],path:[206,4,1,""],typename:[206,4,1,""]},"evennia.contrib.rpsystem.RPCommand":{aliases:[206,4,1,""],help_category:[206,4,1,""],key:[206,4,1,""],lock_storage:[206,4,1,""],parse:[206,3,1,""]},"evennia.contrib.rpsystem.RPSystemCmdSet":{at_cmdset_creation:[206,3,1,""],path:[206,4,1,""]},"evennia.contrib.rpsystem.RecogHandler":{__init__:[206,3,1,""],add:[206,3,1,""],all:[206,3,1,""],get:[206,3,1,""],get_regex_tuple:[206,3,1,""],remove:[206,3,1,""]},"evennia.contrib.rpsystem.SdescHandler":{__init__:[206,3,1,""],add:[206,3,1,""],get:[206,3,1,""],get_regex_tuple:[206,3,1,""]},"evennia.contrib.security":{auditing:[208,0,0,"-"]},"evennia.contrib.security.auditing":{outputs:[209,0,0,"-"],server:[210,0,0,"-"],tests:[211,0,0,"-"]},"evennia.contrib.security.auditing.outputs":{to_file:[209,5,1,""],to_syslog:[209,5,1,""]},"evennia.contrib.security.auditing.server":{AuditedServerSession:[210,1,1,""]},"evennia.contrib.security.auditing.server.AuditedServerSession":{audit:[210,3,1,""],data_in:[210,3,1,""],data_out:[210,3,1,""],mask:[210,3,1,""]},"evennia.contrib.security.auditing.tests":{AuditingTest:[211,1,1,""]},"evennia.contrib.security.auditing.tests.AuditingTest":{test_audit:[211,3,1,""],test_mask:[211,3,1,""]},"evennia.contrib.simpledoor":{CmdOpen:[212,1,1,""],CmdOpenCloseDoor:[212,1,1,""],SimpleDoor:[212,1,1,""]},"evennia.contrib.simpledoor.CmdOpen":{aliases:[212,4,1,""],create_exit:[212,3,1,""],help_category:[212,4,1,""],key:[212,4,1,""],lock_storage:[212,4,1,""]},"evennia.contrib.simpledoor.CmdOpenCloseDoor":{aliases:[212,4,1,""],func:[212,3,1,""],help_category:[212,4,1,""],key:[212,4,1,""],lock_storage:[212,4,1,""],locks:[212,4,1,""]},"evennia.contrib.simpledoor.SimpleDoor":{"delete":[212,3,1,""],DoesNotExist:[212,2,1,""],MultipleObjectsReturned:[212,2,1,""],at_failed_traverse:[212,3,1,""],at_object_creation:[212,3,1,""],path:[212,4,1,""],setdesc:[212,3,1,""],setlock:[212,3,1,""],typename:[212,4,1,""]},"evennia.contrib.slow_exit":{CmdSetSpeed:[213,1,1,""],CmdStop:[213,1,1,""],SlowExit:[213,1,1,""]},"evennia.contrib.slow_exit.CmdSetSpeed":{aliases:[213,4,1,""],func:[213,3,1,""],help_category:[213,4,1,""],key:[213,4,1,""],lock_storage:[213,4,1,""]},"evennia.contrib.slow_exit.CmdStop":{aliases:[213,4,1,""],func:[213,3,1,""],help_category:[213,4,1,""],key:[213,4,1,""],lock_storage:[213,4,1,""]},"evennia.contrib.slow_exit.SlowExit":{DoesNotExist:[213,2,1,""],MultipleObjectsReturned:[213,2,1,""],at_traverse:[213,3,1,""],path:[213,4,1,""],typename:[213,4,1,""]},"evennia.contrib.talking_npc":{CmdTalk:[214,1,1,""],END:[214,5,1,""],TalkingCmdSet:[214,1,1,""],TalkingNPC:[214,1,1,""],info1:[214,5,1,""],info2:[214,5,1,""],info3:[214,5,1,""],menu_start_node:[214,5,1,""]},"evennia.contrib.talking_npc.CmdTalk":{aliases:[214,4,1,""],func:[214,3,1,""],help_category:[214,4,1,""],key:[214,4,1,""],lock_storage:[214,4,1,""],locks:[214,4,1,""]},"evennia.contrib.talking_npc.TalkingCmdSet":{at_cmdset_creation:[214,3,1,""],key:[214,4,1,""],path:[214,4,1,""]},"evennia.contrib.talking_npc.TalkingNPC":{DoesNotExist:[214,2,1,""],MultipleObjectsReturned:[214,2,1,""],at_object_creation:[214,3,1,""],path:[214,4,1,""],typename:[214,4,1,""]},"evennia.contrib.tree_select":{CmdNameColor:[215,1,1,""],change_name_color:[215,5,1,""],dashcount:[215,5,1,""],go_up_one_category:[215,5,1,""],index_to_selection:[215,5,1,""],init_tree_selection:[215,5,1,""],is_category:[215,5,1,""],menunode_treeselect:[215,5,1,""],optlist_to_menuoptions:[215,5,1,""],parse_opts:[215,5,1,""]},"evennia.contrib.tree_select.CmdNameColor":{aliases:[215,4,1,""],func:[215,3,1,""],help_category:[215,4,1,""],key:[215,4,1,""],lock_storage:[215,4,1,""]},"evennia.contrib.turnbattle":{tb_basic:[217,0,0,"-"],tb_equip:[218,0,0,"-"],tb_items:[219,0,0,"-"],tb_magic:[220,0,0,"-"],tb_range:[221,0,0,"-"]},"evennia.contrib.turnbattle.tb_basic":{ACTIONS_PER_TURN:[217,6,1,""],BattleCmdSet:[217,1,1,""],CmdAttack:[217,1,1,""],CmdCombatHelp:[217,1,1,""],CmdDisengage:[217,1,1,""],CmdFight:[217,1,1,""],CmdPass:[217,1,1,""],CmdRest:[217,1,1,""],TBBasicCharacter:[217,1,1,""],TBBasicTurnHandler:[217,1,1,""],apply_damage:[217,5,1,""],at_defeat:[217,5,1,""],combat_cleanup:[217,5,1,""],get_attack:[217,5,1,""],get_damage:[217,5,1,""],get_defense:[217,5,1,""],is_in_combat:[217,5,1,""],is_turn:[217,5,1,""],resolve_attack:[217,5,1,""],roll_init:[217,5,1,""],spend_action:[217,5,1,""]},"evennia.contrib.turnbattle.tb_basic.BattleCmdSet":{at_cmdset_creation:[217,3,1,""],key:[217,4,1,""],path:[217,4,1,""]},"evennia.contrib.turnbattle.tb_basic.CmdAttack":{aliases:[217,4,1,""],func:[217,3,1,""],help_category:[217,4,1,""],key:[217,4,1,""],lock_storage:[217,4,1,""]},"evennia.contrib.turnbattle.tb_basic.CmdCombatHelp":{aliases:[217,4,1,""],func:[217,3,1,""],help_category:[217,4,1,""],key:[217,4,1,""],lock_storage:[217,4,1,""]},"evennia.contrib.turnbattle.tb_basic.CmdDisengage":{aliases:[217,4,1,""],func:[217,3,1,""],help_category:[217,4,1,""],key:[217,4,1,""],lock_storage:[217,4,1,""]},"evennia.contrib.turnbattle.tb_basic.CmdFight":{aliases:[217,4,1,""],func:[217,3,1,""],help_category:[217,4,1,""],key:[217,4,1,""],lock_storage:[217,4,1,""]},"evennia.contrib.turnbattle.tb_basic.CmdPass":{aliases:[217,4,1,""],func:[217,3,1,""],help_category:[217,4,1,""],key:[217,4,1,""],lock_storage:[217,4,1,""]},"evennia.contrib.turnbattle.tb_basic.CmdRest":{aliases:[217,4,1,""],func:[217,3,1,""],help_category:[217,4,1,""],key:[217,4,1,""],lock_storage:[217,4,1,""]},"evennia.contrib.turnbattle.tb_basic.TBBasicCharacter":{DoesNotExist:[217,2,1,""],MultipleObjectsReturned:[217,2,1,""],at_before_move:[217,3,1,""],at_object_creation:[217,3,1,""],path:[217,4,1,""],typename:[217,4,1,""]},"evennia.contrib.turnbattle.tb_basic.TBBasicTurnHandler":{DoesNotExist:[217,2,1,""],MultipleObjectsReturned:[217,2,1,""],at_repeat:[217,3,1,""],at_script_creation:[217,3,1,""],at_stop:[217,3,1,""],initialize_for_combat:[217,3,1,""],join_fight:[217,3,1,""],next_turn:[217,3,1,""],path:[217,4,1,""],start_turn:[217,3,1,""],turn_end_check:[217,3,1,""],typename:[217,4,1,""]},"evennia.contrib.turnbattle.tb_equip":{ACTIONS_PER_TURN:[218,6,1,""],BattleCmdSet:[218,1,1,""],CmdAttack:[218,1,1,""],CmdCombatHelp:[218,1,1,""],CmdDisengage:[218,1,1,""],CmdDoff:[218,1,1,""],CmdDon:[218,1,1,""],CmdFight:[218,1,1,""],CmdPass:[218,1,1,""],CmdRest:[218,1,1,""],CmdUnwield:[218,1,1,""],CmdWield:[218,1,1,""],TBEArmor:[218,1,1,""],TBEWeapon:[218,1,1,""],TBEquipCharacter:[218,1,1,""],TBEquipTurnHandler:[218,1,1,""],apply_damage:[218,5,1,""],at_defeat:[218,5,1,""],combat_cleanup:[218,5,1,""],get_attack:[218,5,1,""],get_damage:[218,5,1,""],get_defense:[218,5,1,""],is_in_combat:[218,5,1,""],is_turn:[218,5,1,""],resolve_attack:[218,5,1,""],roll_init:[218,5,1,""],spend_action:[218,5,1,""]},"evennia.contrib.turnbattle.tb_equip.BattleCmdSet":{at_cmdset_creation:[218,3,1,""],key:[218,4,1,""],path:[218,4,1,""]},"evennia.contrib.turnbattle.tb_equip.CmdAttack":{aliases:[218,4,1,""],func:[218,3,1,""],help_category:[218,4,1,""],key:[218,4,1,""],lock_storage:[218,4,1,""]},"evennia.contrib.turnbattle.tb_equip.CmdCombatHelp":{aliases:[218,4,1,""],func:[218,3,1,""],help_category:[218,4,1,""],key:[218,4,1,""],lock_storage:[218,4,1,""]},"evennia.contrib.turnbattle.tb_equip.CmdDisengage":{aliases:[218,4,1,""],func:[218,3,1,""],help_category:[218,4,1,""],key:[218,4,1,""],lock_storage:[218,4,1,""]},"evennia.contrib.turnbattle.tb_equip.CmdDoff":{aliases:[218,4,1,""],func:[218,3,1,""],help_category:[218,4,1,""],key:[218,4,1,""],lock_storage:[218,4,1,""]},"evennia.contrib.turnbattle.tb_equip.CmdDon":{aliases:[218,4,1,""],func:[218,3,1,""],help_category:[218,4,1,""],key:[218,4,1,""],lock_storage:[218,4,1,""]},"evennia.contrib.turnbattle.tb_equip.CmdFight":{aliases:[218,4,1,""],func:[218,3,1,""],help_category:[218,4,1,""],key:[218,4,1,""],lock_storage:[218,4,1,""]},"evennia.contrib.turnbattle.tb_equip.CmdPass":{aliases:[218,4,1,""],func:[218,3,1,""],help_category:[218,4,1,""],key:[218,4,1,""],lock_storage:[218,4,1,""]},"evennia.contrib.turnbattle.tb_equip.CmdRest":{aliases:[218,4,1,""],func:[218,3,1,""],help_category:[218,4,1,""],key:[218,4,1,""],lock_storage:[218,4,1,""]},"evennia.contrib.turnbattle.tb_equip.CmdUnwield":{aliases:[218,4,1,""],func:[218,3,1,""],help_category:[218,4,1,""],key:[218,4,1,""],lock_storage:[218,4,1,""]},"evennia.contrib.turnbattle.tb_equip.CmdWield":{aliases:[218,4,1,""],func:[218,3,1,""],help_category:[218,4,1,""],key:[218,4,1,""],lock_storage:[218,4,1,""]},"evennia.contrib.turnbattle.tb_equip.TBEArmor":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_before_drop:[218,3,1,""],at_before_give:[218,3,1,""],at_drop:[218,3,1,""],at_give:[218,3,1,""],at_object_creation:[218,3,1,""],path:[218,4,1,""],typename:[218,4,1,""]},"evennia.contrib.turnbattle.tb_equip.TBEWeapon":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_drop:[218,3,1,""],at_give:[218,3,1,""],at_object_creation:[218,3,1,""],path:[218,4,1,""],typename:[218,4,1,""]},"evennia.contrib.turnbattle.tb_equip.TBEquipCharacter":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_before_move:[218,3,1,""],at_object_creation:[218,3,1,""],path:[218,4,1,""],typename:[218,4,1,""]},"evennia.contrib.turnbattle.tb_equip.TBEquipTurnHandler":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_repeat:[218,3,1,""],at_script_creation:[218,3,1,""],at_stop:[218,3,1,""],initialize_for_combat:[218,3,1,""],join_fight:[218,3,1,""],next_turn:[218,3,1,""],path:[218,4,1,""],start_turn:[218,3,1,""],turn_end_check:[218,3,1,""],typename:[218,4,1,""]},"evennia.contrib.turnbattle.tb_items":{BattleCmdSet:[219,1,1,""],CmdAttack:[219,1,1,""],CmdCombatHelp:[219,1,1,""],CmdDisengage:[219,1,1,""],CmdFight:[219,1,1,""],CmdPass:[219,1,1,""],CmdRest:[219,1,1,""],CmdUse:[219,1,1,""],DEF_DOWN_MOD:[219,6,1,""],ITEMFUNCS:[219,6,1,""],TBItemsCharacter:[219,1,1,""],TBItemsCharacterTest:[219,1,1,""],TBItemsTurnHandler:[219,1,1,""],add_condition:[219,5,1,""],apply_damage:[219,5,1,""],at_defeat:[219,5,1,""],combat_cleanup:[219,5,1,""],condition_tickdown:[219,5,1,""],get_attack:[219,5,1,""],get_damage:[219,5,1,""],get_defense:[219,5,1,""],is_in_combat:[219,5,1,""],is_turn:[219,5,1,""],itemfunc_add_condition:[219,5,1,""],itemfunc_attack:[219,5,1,""],itemfunc_cure_condition:[219,5,1,""],itemfunc_heal:[219,5,1,""],resolve_attack:[219,5,1,""],roll_init:[219,5,1,""],spend_action:[219,5,1,""],spend_item_use:[219,5,1,""],use_item:[219,5,1,""]},"evennia.contrib.turnbattle.tb_items.BattleCmdSet":{at_cmdset_creation:[219,3,1,""],key:[219,4,1,""],path:[219,4,1,""]},"evennia.contrib.turnbattle.tb_items.CmdAttack":{aliases:[219,4,1,""],func:[219,3,1,""],help_category:[219,4,1,""],key:[219,4,1,""],lock_storage:[219,4,1,""]},"evennia.contrib.turnbattle.tb_items.CmdCombatHelp":{aliases:[219,4,1,""],func:[219,3,1,""],help_category:[219,4,1,""],key:[219,4,1,""],lock_storage:[219,4,1,""]},"evennia.contrib.turnbattle.tb_items.CmdDisengage":{aliases:[219,4,1,""],func:[219,3,1,""],help_category:[219,4,1,""],key:[219,4,1,""],lock_storage:[219,4,1,""]},"evennia.contrib.turnbattle.tb_items.CmdFight":{aliases:[219,4,1,""],func:[219,3,1,""],help_category:[219,4,1,""],key:[219,4,1,""],lock_storage:[219,4,1,""]},"evennia.contrib.turnbattle.tb_items.CmdPass":{aliases:[219,4,1,""],func:[219,3,1,""],help_category:[219,4,1,""],key:[219,4,1,""],lock_storage:[219,4,1,""]},"evennia.contrib.turnbattle.tb_items.CmdRest":{aliases:[219,4,1,""],func:[219,3,1,""],help_category:[219,4,1,""],key:[219,4,1,""],lock_storage:[219,4,1,""]},"evennia.contrib.turnbattle.tb_items.CmdUse":{aliases:[219,4,1,""],func:[219,3,1,""],help_category:[219,4,1,""],key:[219,4,1,""],lock_storage:[219,4,1,""]},"evennia.contrib.turnbattle.tb_items.TBItemsCharacter":{DoesNotExist:[219,2,1,""],MultipleObjectsReturned:[219,2,1,""],apply_turn_conditions:[219,3,1,""],at_before_move:[219,3,1,""],at_object_creation:[219,3,1,""],at_turn_start:[219,3,1,""],at_update:[219,3,1,""],path:[219,4,1,""],typename:[219,4,1,""]},"evennia.contrib.turnbattle.tb_items.TBItemsCharacterTest":{DoesNotExist:[219,2,1,""],MultipleObjectsReturned:[219,2,1,""],at_object_creation:[219,3,1,""],path:[219,4,1,""],typename:[219,4,1,""]},"evennia.contrib.turnbattle.tb_items.TBItemsTurnHandler":{DoesNotExist:[219,2,1,""],MultipleObjectsReturned:[219,2,1,""],at_repeat:[219,3,1,""],at_script_creation:[219,3,1,""],at_stop:[219,3,1,""],initialize_for_combat:[219,3,1,""],join_fight:[219,3,1,""],next_turn:[219,3,1,""],path:[219,4,1,""],start_turn:[219,3,1,""],turn_end_check:[219,3,1,""],typename:[219,4,1,""]},"evennia.contrib.turnbattle.tb_magic":{ACTIONS_PER_TURN:[220,6,1,""],BattleCmdSet:[220,1,1,""],CmdAttack:[220,1,1,""],CmdCast:[220,1,1,""],CmdCombatHelp:[220,1,1,""],CmdDisengage:[220,1,1,""],CmdFight:[220,1,1,""],CmdLearnSpell:[220,1,1,""],CmdPass:[220,1,1,""],CmdRest:[220,1,1,""],CmdStatus:[220,1,1,""],TBMagicCharacter:[220,1,1,""],TBMagicTurnHandler:[220,1,1,""],apply_damage:[220,5,1,""],at_defeat:[220,5,1,""],combat_cleanup:[220,5,1,""],get_attack:[220,5,1,""],get_damage:[220,5,1,""],get_defense:[220,5,1,""],is_in_combat:[220,5,1,""],is_turn:[220,5,1,""],resolve_attack:[220,5,1,""],roll_init:[220,5,1,""],spell_attack:[220,5,1,""],spell_conjure:[220,5,1,""],spell_healing:[220,5,1,""],spend_action:[220,5,1,""]},"evennia.contrib.turnbattle.tb_magic.BattleCmdSet":{at_cmdset_creation:[220,3,1,""],key:[220,4,1,""],path:[220,4,1,""]},"evennia.contrib.turnbattle.tb_magic.CmdAttack":{aliases:[220,4,1,""],func:[220,3,1,""],help_category:[220,4,1,""],key:[220,4,1,""],lock_storage:[220,4,1,""]},"evennia.contrib.turnbattle.tb_magic.CmdCast":{aliases:[220,4,1,""],func:[220,3,1,""],help_category:[220,4,1,""],key:[220,4,1,""],lock_storage:[220,4,1,""]},"evennia.contrib.turnbattle.tb_magic.CmdCombatHelp":{aliases:[220,4,1,""],func:[220,3,1,""],help_category:[220,4,1,""],key:[220,4,1,""],lock_storage:[220,4,1,""]},"evennia.contrib.turnbattle.tb_magic.CmdDisengage":{aliases:[220,4,1,""],func:[220,3,1,""],help_category:[220,4,1,""],key:[220,4,1,""],lock_storage:[220,4,1,""]},"evennia.contrib.turnbattle.tb_magic.CmdFight":{aliases:[220,4,1,""],func:[220,3,1,""],help_category:[220,4,1,""],key:[220,4,1,""],lock_storage:[220,4,1,""]},"evennia.contrib.turnbattle.tb_magic.CmdLearnSpell":{aliases:[220,4,1,""],func:[220,3,1,""],help_category:[220,4,1,""],key:[220,4,1,""],lock_storage:[220,4,1,""]},"evennia.contrib.turnbattle.tb_magic.CmdPass":{aliases:[220,4,1,""],func:[220,3,1,""],help_category:[220,4,1,""],key:[220,4,1,""],lock_storage:[220,4,1,""]},"evennia.contrib.turnbattle.tb_magic.CmdRest":{aliases:[220,4,1,""],func:[220,3,1,""],help_category:[220,4,1,""],key:[220,4,1,""],lock_storage:[220,4,1,""]},"evennia.contrib.turnbattle.tb_magic.CmdStatus":{aliases:[220,4,1,""],func:[220,3,1,""],help_category:[220,4,1,""],key:[220,4,1,""],lock_storage:[220,4,1,""]},"evennia.contrib.turnbattle.tb_magic.TBMagicCharacter":{DoesNotExist:[220,2,1,""],MultipleObjectsReturned:[220,2,1,""],at_before_move:[220,3,1,""],at_object_creation:[220,3,1,""],path:[220,4,1,""],typename:[220,4,1,""]},"evennia.contrib.turnbattle.tb_magic.TBMagicTurnHandler":{DoesNotExist:[220,2,1,""],MultipleObjectsReturned:[220,2,1,""],at_repeat:[220,3,1,""],at_script_creation:[220,3,1,""],at_stop:[220,3,1,""],initialize_for_combat:[220,3,1,""],join_fight:[220,3,1,""],next_turn:[220,3,1,""],path:[220,4,1,""],start_turn:[220,3,1,""],turn_end_check:[220,3,1,""],typename:[220,4,1,""]},"evennia.contrib.turnbattle.tb_range":{ACTIONS_PER_TURN:[221,6,1,""],BattleCmdSet:[221,1,1,""],CmdApproach:[221,1,1,""],CmdAttack:[221,1,1,""],CmdCombatHelp:[221,1,1,""],CmdDisengage:[221,1,1,""],CmdFight:[221,1,1,""],CmdPass:[221,1,1,""],CmdRest:[221,1,1,""],CmdShoot:[221,1,1,""],CmdStatus:[221,1,1,""],CmdWithdraw:[221,1,1,""],TBRangeCharacter:[221,1,1,""],TBRangeObject:[221,1,1,""],TBRangeTurnHandler:[221,1,1,""],apply_damage:[221,5,1,""],approach:[221,5,1,""],at_defeat:[221,5,1,""],combat_cleanup:[221,5,1,""],combat_status_message:[221,5,1,""],distance_inc:[221,5,1,""],get_attack:[221,5,1,""],get_damage:[221,5,1,""],get_defense:[221,5,1,""],get_range:[221,5,1,""],is_in_combat:[221,5,1,""],is_turn:[221,5,1,""],resolve_attack:[221,5,1,""],roll_init:[221,5,1,""],spend_action:[221,5,1,""],withdraw:[221,5,1,""]},"evennia.contrib.turnbattle.tb_range.BattleCmdSet":{at_cmdset_creation:[221,3,1,""],key:[221,4,1,""],path:[221,4,1,""]},"evennia.contrib.turnbattle.tb_range.CmdApproach":{aliases:[221,4,1,""],func:[221,3,1,""],help_category:[221,4,1,""],key:[221,4,1,""],lock_storage:[221,4,1,""]},"evennia.contrib.turnbattle.tb_range.CmdAttack":{aliases:[221,4,1,""],func:[221,3,1,""],help_category:[221,4,1,""],key:[221,4,1,""],lock_storage:[221,4,1,""]},"evennia.contrib.turnbattle.tb_range.CmdCombatHelp":{aliases:[221,4,1,""],func:[221,3,1,""],help_category:[221,4,1,""],key:[221,4,1,""],lock_storage:[221,4,1,""]},"evennia.contrib.turnbattle.tb_range.CmdDisengage":{aliases:[221,4,1,""],func:[221,3,1,""],help_category:[221,4,1,""],key:[221,4,1,""],lock_storage:[221,4,1,""]},"evennia.contrib.turnbattle.tb_range.CmdFight":{aliases:[221,4,1,""],func:[221,3,1,""],help_category:[221,4,1,""],key:[221,4,1,""],lock_storage:[221,4,1,""]},"evennia.contrib.turnbattle.tb_range.CmdPass":{aliases:[221,4,1,""],func:[221,3,1,""],help_category:[221,4,1,""],key:[221,4,1,""],lock_storage:[221,4,1,""]},"evennia.contrib.turnbattle.tb_range.CmdRest":{aliases:[221,4,1,""],func:[221,3,1,""],help_category:[221,4,1,""],key:[221,4,1,""],lock_storage:[221,4,1,""]},"evennia.contrib.turnbattle.tb_range.CmdShoot":{aliases:[221,4,1,""],func:[221,3,1,""],help_category:[221,4,1,""],key:[221,4,1,""],lock_storage:[221,4,1,""]},"evennia.contrib.turnbattle.tb_range.CmdStatus":{aliases:[221,4,1,""],func:[221,3,1,""],help_category:[221,4,1,""],key:[221,4,1,""],lock_storage:[221,4,1,""]},"evennia.contrib.turnbattle.tb_range.CmdWithdraw":{aliases:[221,4,1,""],func:[221,3,1,""],help_category:[221,4,1,""],key:[221,4,1,""],lock_storage:[221,4,1,""]},"evennia.contrib.turnbattle.tb_range.TBRangeCharacter":{DoesNotExist:[221,2,1,""],MultipleObjectsReturned:[221,2,1,""],at_before_move:[221,3,1,""],at_object_creation:[221,3,1,""],path:[221,4,1,""],typename:[221,4,1,""]},"evennia.contrib.turnbattle.tb_range.TBRangeObject":{DoesNotExist:[221,2,1,""],MultipleObjectsReturned:[221,2,1,""],at_before_drop:[221,3,1,""],at_before_get:[221,3,1,""],at_before_give:[221,3,1,""],at_drop:[221,3,1,""],at_get:[221,3,1,""],at_give:[221,3,1,""],path:[221,4,1,""],typename:[221,4,1,""]},"evennia.contrib.turnbattle.tb_range.TBRangeTurnHandler":{DoesNotExist:[221,2,1,""],MultipleObjectsReturned:[221,2,1,""],at_repeat:[221,3,1,""],at_script_creation:[221,3,1,""],at_stop:[221,3,1,""],init_range:[221,3,1,""],initialize_for_combat:[221,3,1,""],join_fight:[221,3,1,""],join_rangefield:[221,3,1,""],next_turn:[221,3,1,""],path:[221,4,1,""],start_turn:[221,3,1,""],turn_end_check:[221,3,1,""],typename:[221,4,1,""]},"evennia.contrib.tutorial_examples":{bodyfunctions:[223,0,0,"-"],cmdset_red_button:[224,0,0,"-"],red_button:[226,0,0,"-"],red_button_scripts:[227,0,0,"-"],tests:[228,0,0,"-"]},"evennia.contrib.tutorial_examples.bodyfunctions":{BodyFunctions:[223,1,1,""]},"evennia.contrib.tutorial_examples.bodyfunctions.BodyFunctions":{DoesNotExist:[223,2,1,""],MultipleObjectsReturned:[223,2,1,""],at_repeat:[223,3,1,""],at_script_creation:[223,3,1,""],path:[223,4,1,""],send_random_message:[223,3,1,""],typename:[223,4,1,""]},"evennia.contrib.tutorial_examples.cmdset_red_button":{BlindCmdSet:[224,1,1,""],CmdBlindHelp:[224,1,1,""],CmdBlindLook:[224,1,1,""],CmdCloseLid:[224,1,1,""],CmdNudge:[224,1,1,""],CmdOpenLid:[224,1,1,""],CmdPush:[224,1,1,""],CmdSmashGlass:[224,1,1,""],DefaultCmdSet:[224,1,1,""],LidClosedCmdSet:[224,1,1,""],LidOpenCmdSet:[224,1,1,""]},"evennia.contrib.tutorial_examples.cmdset_red_button.BlindCmdSet":{at_cmdset_creation:[224,3,1,""],key:[224,4,1,""],mergetype:[224,4,1,""],no_exits:[224,4,1,""],no_objs:[224,4,1,""],path:[224,4,1,""]},"evennia.contrib.tutorial_examples.cmdset_red_button.CmdBlindHelp":{aliases:[224,4,1,""],func:[224,3,1,""],help_category:[224,4,1,""],key:[224,4,1,""],lock_storage:[224,4,1,""],locks:[224,4,1,""]},"evennia.contrib.tutorial_examples.cmdset_red_button.CmdBlindLook":{aliases:[224,4,1,""],func:[224,3,1,""],help_category:[224,4,1,""],key:[224,4,1,""],lock_storage:[224,4,1,""],locks:[224,4,1,""]},"evennia.contrib.tutorial_examples.cmdset_red_button.CmdCloseLid":{aliases:[224,4,1,""],func:[224,3,1,""],help_category:[224,4,1,""],key:[224,4,1,""],lock_storage:[224,4,1,""],locks:[224,4,1,""]},"evennia.contrib.tutorial_examples.cmdset_red_button.CmdNudge":{aliases:[224,4,1,""],func:[224,3,1,""],help_category:[224,4,1,""],key:[224,4,1,""],lock_storage:[224,4,1,""],locks:[224,4,1,""]},"evennia.contrib.tutorial_examples.cmdset_red_button.CmdOpenLid":{aliases:[224,4,1,""],func:[224,3,1,""],help_category:[224,4,1,""],key:[224,4,1,""],lock_storage:[224,4,1,""],locks:[224,4,1,""]},"evennia.contrib.tutorial_examples.cmdset_red_button.CmdPush":{aliases:[224,4,1,""],func:[224,3,1,""],help_category:[224,4,1,""],key:[224,4,1,""],lock_storage:[224,4,1,""],locks:[224,4,1,""]},"evennia.contrib.tutorial_examples.cmdset_red_button.CmdSmashGlass":{aliases:[224,4,1,""],func:[224,3,1,""],help_category:[224,4,1,""],key:[224,4,1,""],lock_storage:[224,4,1,""],locks:[224,4,1,""]},"evennia.contrib.tutorial_examples.cmdset_red_button.DefaultCmdSet":{at_cmdset_creation:[224,3,1,""],key:[224,4,1,""],mergetype:[224,4,1,""],path:[224,4,1,""]},"evennia.contrib.tutorial_examples.cmdset_red_button.LidClosedCmdSet":{at_cmdset_creation:[224,3,1,""],key:[224,4,1,""],key_mergetype:[224,4,1,""],path:[224,4,1,""]},"evennia.contrib.tutorial_examples.cmdset_red_button.LidOpenCmdSet":{at_cmdset_creation:[224,3,1,""],key:[224,4,1,""],key_mergetype:[224,4,1,""],path:[224,4,1,""]},"evennia.contrib.tutorial_examples.red_button":{RedButton:[226,1,1,""]},"evennia.contrib.tutorial_examples.red_button.RedButton":{DoesNotExist:[226,2,1,""],MultipleObjectsReturned:[226,2,1,""],at_object_creation:[226,3,1,""],blink:[226,3,1,""],break_lamp:[226,3,1,""],close_lid:[226,3,1,""],open_lid:[226,3,1,""],path:[226,4,1,""],press_button:[226,3,1,""],typename:[226,4,1,""]},"evennia.contrib.tutorial_examples.red_button_scripts":{BlindedState:[227,1,1,""],BlinkButtonEvent:[227,1,1,""],CloseLidEvent:[227,1,1,""],ClosedLidState:[227,1,1,""],DeactivateButtonEvent:[227,1,1,""],OpenLidState:[227,1,1,""]},"evennia.contrib.tutorial_examples.red_button_scripts.BlindedState":{DoesNotExist:[227,2,1,""],MultipleObjectsReturned:[227,2,1,""],at_script_creation:[227,3,1,""],at_start:[227,3,1,""],at_stop:[227,3,1,""],path:[227,4,1,""],typename:[227,4,1,""]},"evennia.contrib.tutorial_examples.red_button_scripts.BlinkButtonEvent":{DoesNotExist:[227,2,1,""],MultipleObjectsReturned:[227,2,1,""],at_repeat:[227,3,1,""],at_script_creation:[227,3,1,""],is_valid:[227,3,1,""],path:[227,4,1,""],typename:[227,4,1,""]},"evennia.contrib.tutorial_examples.red_button_scripts.CloseLidEvent":{DoesNotExist:[227,2,1,""],MultipleObjectsReturned:[227,2,1,""],at_repeat:[227,3,1,""],at_script_creation:[227,3,1,""],is_valid:[227,3,1,""],path:[227,4,1,""],typename:[227,4,1,""]},"evennia.contrib.tutorial_examples.red_button_scripts.ClosedLidState":{DoesNotExist:[227,2,1,""],MultipleObjectsReturned:[227,2,1,""],at_script_creation:[227,3,1,""],at_start:[227,3,1,""],at_stop:[227,3,1,""],is_valid:[227,3,1,""],path:[227,4,1,""],typename:[227,4,1,""]},"evennia.contrib.tutorial_examples.red_button_scripts.DeactivateButtonEvent":{DoesNotExist:[227,2,1,""],MultipleObjectsReturned:[227,2,1,""],at_repeat:[227,3,1,""],at_script_creation:[227,3,1,""],at_start:[227,3,1,""],path:[227,4,1,""],typename:[227,4,1,""]},"evennia.contrib.tutorial_examples.red_button_scripts.OpenLidState":{DoesNotExist:[227,2,1,""],MultipleObjectsReturned:[227,2,1,""],at_script_creation:[227,3,1,""],at_start:[227,3,1,""],at_stop:[227,3,1,""],is_valid:[227,3,1,""],path:[227,4,1,""],typename:[227,4,1,""]},"evennia.contrib.tutorial_examples.tests":{TestBodyFunctions:[228,1,1,""]},"evennia.contrib.tutorial_examples.tests.TestBodyFunctions":{script_typeclass:[228,4,1,""],setUp:[228,3,1,""],tearDown:[228,3,1,""],test_at_repeat:[228,3,1,""],test_send_random_message:[228,3,1,""]},"evennia.contrib.tutorial_world":{intro_menu:[230,0,0,"-"],mob:[231,0,0,"-"],objects:[232,0,0,"-"],rooms:[233,0,0,"-"]},"evennia.contrib.tutorial_world.intro_menu":{DemoCommandSetComms:[230,1,1,""],DemoCommandSetHelp:[230,1,1,""],DemoCommandSetRoom:[230,1,1,""],TutorialEvMenu:[230,1,1,""],do_nothing:[230,5,1,""],goto_cleanup_cmdsets:[230,5,1,""],goto_command_demo_comms:[230,5,1,""],goto_command_demo_help:[230,5,1,""],goto_command_demo_room:[230,5,1,""],init_menu:[230,5,1,""],send_testing_tagged:[230,5,1,""]},"evennia.contrib.tutorial_world.intro_menu.DemoCommandSetComms":{at_cmdset_creation:[230,3,1,""],key:[230,4,1,""],no_exits:[230,4,1,""],no_objs:[230,4,1,""],path:[230,4,1,""],priority:[230,4,1,""]},"evennia.contrib.tutorial_world.intro_menu.DemoCommandSetHelp":{at_cmdset_creation:[230,3,1,""],key:[230,4,1,""],path:[230,4,1,""],priority:[230,4,1,""]},"evennia.contrib.tutorial_world.intro_menu.DemoCommandSetRoom":{at_cmdset_creation:[230,3,1,""],key:[230,4,1,""],no_exits:[230,4,1,""],no_objs:[230,4,1,""],path:[230,4,1,""],priority:[230,4,1,""]},"evennia.contrib.tutorial_world.intro_menu.TutorialEvMenu":{close_menu:[230,3,1,""],options_formatter:[230,3,1,""]},"evennia.contrib.tutorial_world.mob":{CmdMobOnOff:[231,1,1,""],Mob:[231,1,1,""],MobCmdSet:[231,1,1,""]},"evennia.contrib.tutorial_world.mob.CmdMobOnOff":{aliases:[231,4,1,""],func:[231,3,1,""],help_category:[231,4,1,""],key:[231,4,1,""],lock_storage:[231,4,1,""],locks:[231,4,1,""]},"evennia.contrib.tutorial_world.mob.Mob":{DoesNotExist:[231,2,1,""],MultipleObjectsReturned:[231,2,1,""],at_hit:[231,3,1,""],at_init:[231,3,1,""],at_new_arrival:[231,3,1,""],at_object_creation:[231,3,1,""],do_attack:[231,3,1,""],do_hunting:[231,3,1,""],do_patrol:[231,3,1,""],path:[231,4,1,""],set_alive:[231,3,1,""],set_dead:[231,3,1,""],start_attacking:[231,3,1,""],start_hunting:[231,3,1,""],start_idle:[231,3,1,""],start_patrolling:[231,3,1,""],typename:[231,4,1,""]},"evennia.contrib.tutorial_world.mob.MobCmdSet":{at_cmdset_creation:[231,3,1,""],path:[231,4,1,""]},"evennia.contrib.tutorial_world.objects":{CmdAttack:[232,1,1,""],CmdClimb:[232,1,1,""],CmdGetWeapon:[232,1,1,""],CmdLight:[232,1,1,""],CmdPressButton:[232,1,1,""],CmdRead:[232,1,1,""],CmdSetClimbable:[232,1,1,""],CmdSetCrumblingWall:[232,1,1,""],CmdSetLight:[232,1,1,""],CmdSetReadable:[232,1,1,""],CmdSetWeapon:[232,1,1,""],CmdSetWeaponRack:[232,1,1,""],CmdShiftRoot:[232,1,1,""],CrumblingWall:[232,1,1,""],LightSource:[232,1,1,""],Obelisk:[232,1,1,""],TutorialClimbable:[232,1,1,""],TutorialObject:[232,1,1,""],TutorialReadable:[232,1,1,""],Weapon:[232,1,1,""],WeaponRack:[232,1,1,""]},"evennia.contrib.tutorial_world.objects.CmdAttack":{aliases:[232,4,1,""],func:[232,3,1,""],help_category:[232,4,1,""],key:[232,4,1,""],lock_storage:[232,4,1,""],locks:[232,4,1,""]},"evennia.contrib.tutorial_world.objects.CmdClimb":{aliases:[232,4,1,""],func:[232,3,1,""],help_category:[232,4,1,""],key:[232,4,1,""],lock_storage:[232,4,1,""],locks:[232,4,1,""]},"evennia.contrib.tutorial_world.objects.CmdGetWeapon":{aliases:[232,4,1,""],func:[232,3,1,""],help_category:[232,4,1,""],key:[232,4,1,""],lock_storage:[232,4,1,""],locks:[232,4,1,""]},"evennia.contrib.tutorial_world.objects.CmdLight":{aliases:[232,4,1,""],func:[232,3,1,""],help_category:[232,4,1,""],key:[232,4,1,""],lock_storage:[232,4,1,""],locks:[232,4,1,""]},"evennia.contrib.tutorial_world.objects.CmdPressButton":{aliases:[232,4,1,""],func:[232,3,1,""],help_category:[232,4,1,""],key:[232,4,1,""],lock_storage:[232,4,1,""],locks:[232,4,1,""]},"evennia.contrib.tutorial_world.objects.CmdRead":{aliases:[232,4,1,""],func:[232,3,1,""],help_category:[232,4,1,""],key:[232,4,1,""],lock_storage:[232,4,1,""],locks:[232,4,1,""]},"evennia.contrib.tutorial_world.objects.CmdSetClimbable":{at_cmdset_creation:[232,3,1,""],path:[232,4,1,""]},"evennia.contrib.tutorial_world.objects.CmdSetCrumblingWall":{at_cmdset_creation:[232,3,1,""],key:[232,4,1,""],path:[232,4,1,""],priority:[232,4,1,""]},"evennia.contrib.tutorial_world.objects.CmdSetLight":{at_cmdset_creation:[232,3,1,""],key:[232,4,1,""],path:[232,4,1,""],priority:[232,4,1,""]},"evennia.contrib.tutorial_world.objects.CmdSetReadable":{at_cmdset_creation:[232,3,1,""],path:[232,4,1,""]},"evennia.contrib.tutorial_world.objects.CmdSetWeapon":{at_cmdset_creation:[232,3,1,""],path:[232,4,1,""]},"evennia.contrib.tutorial_world.objects.CmdSetWeaponRack":{at_cmdset_creation:[232,3,1,""],key:[232,4,1,""],path:[232,4,1,""]},"evennia.contrib.tutorial_world.objects.CmdShiftRoot":{aliases:[232,4,1,""],func:[232,3,1,""],help_category:[232,4,1,""],key:[232,4,1,""],lock_storage:[232,4,1,""],locks:[232,4,1,""],parse:[232,3,1,""]},"evennia.contrib.tutorial_world.objects.CrumblingWall":{DoesNotExist:[232,2,1,""],MultipleObjectsReturned:[232,2,1,""],at_after_traverse:[232,3,1,""],at_failed_traverse:[232,3,1,""],at_init:[232,3,1,""],at_object_creation:[232,3,1,""],open_wall:[232,3,1,""],path:[232,4,1,""],reset:[232,3,1,""],return_appearance:[232,3,1,""],typename:[232,4,1,""]},"evennia.contrib.tutorial_world.objects.LightSource":{DoesNotExist:[232,2,1,""],MultipleObjectsReturned:[232,2,1,""],at_init:[232,3,1,""],at_object_creation:[232,3,1,""],light:[232,3,1,""],path:[232,4,1,""],typename:[232,4,1,""]},"evennia.contrib.tutorial_world.objects.Obelisk":{DoesNotExist:[232,2,1,""],MultipleObjectsReturned:[232,2,1,""],at_object_creation:[232,3,1,""],path:[232,4,1,""],return_appearance:[232,3,1,""],typename:[232,4,1,""]},"evennia.contrib.tutorial_world.objects.TutorialClimbable":{DoesNotExist:[232,2,1,""],MultipleObjectsReturned:[232,2,1,""],at_object_creation:[232,3,1,""],path:[232,4,1,""],typename:[232,4,1,""]},"evennia.contrib.tutorial_world.objects.TutorialObject":{DoesNotExist:[232,2,1,""],MultipleObjectsReturned:[232,2,1,""],at_object_creation:[232,3,1,""],path:[232,4,1,""],reset:[232,3,1,""],typename:[232,4,1,""]},"evennia.contrib.tutorial_world.objects.TutorialReadable":{DoesNotExist:[232,2,1,""],MultipleObjectsReturned:[232,2,1,""],at_object_creation:[232,3,1,""],path:[232,4,1,""],typename:[232,4,1,""]},"evennia.contrib.tutorial_world.objects.Weapon":{DoesNotExist:[232,2,1,""],MultipleObjectsReturned:[232,2,1,""],at_object_creation:[232,3,1,""],path:[232,4,1,""],reset:[232,3,1,""],typename:[232,4,1,""]},"evennia.contrib.tutorial_world.objects.WeaponRack":{DoesNotExist:[232,2,1,""],MultipleObjectsReturned:[232,2,1,""],at_object_creation:[232,3,1,""],path:[232,4,1,""],produce_weapon:[232,3,1,""],typename:[232,4,1,""]},"evennia.contrib.tutorial_world.rooms":{BridgeCmdSet:[233,1,1,""],BridgeRoom:[233,1,1,""],CmdBridgeHelp:[233,1,1,""],CmdDarkHelp:[233,1,1,""],CmdDarkNoMatch:[233,1,1,""],CmdEast:[233,1,1,""],CmdEvenniaIntro:[233,1,1,""],CmdLookBridge:[233,1,1,""],CmdLookDark:[233,1,1,""],CmdSetEvenniaIntro:[233,1,1,""],CmdTutorial:[233,1,1,""],CmdTutorialGiveUp:[233,1,1,""],CmdTutorialLook:[233,1,1,""],CmdTutorialSetDetail:[233,1,1,""],CmdWest:[233,1,1,""],DarkCmdSet:[233,1,1,""],DarkRoom:[233,1,1,""],IntroRoom:[233,1,1,""],OutroRoom:[233,1,1,""],TeleportRoom:[233,1,1,""],TutorialRoom:[233,1,1,""],TutorialRoomCmdSet:[233,1,1,""],WeatherRoom:[233,1,1,""]},"evennia.contrib.tutorial_world.rooms.BridgeCmdSet":{at_cmdset_creation:[233,3,1,""],key:[233,4,1,""],path:[233,4,1,""],priority:[233,4,1,""]},"evennia.contrib.tutorial_world.rooms.BridgeRoom":{DoesNotExist:[233,2,1,""],MultipleObjectsReturned:[233,2,1,""],at_object_creation:[233,3,1,""],at_object_leave:[233,3,1,""],at_object_receive:[233,3,1,""],path:[233,4,1,""],typename:[233,4,1,""],update_weather:[233,3,1,""]},"evennia.contrib.tutorial_world.rooms.CmdBridgeHelp":{aliases:[233,4,1,""],func:[233,3,1,""],help_category:[233,4,1,""],key:[233,4,1,""],lock_storage:[233,4,1,""],locks:[233,4,1,""]},"evennia.contrib.tutorial_world.rooms.CmdDarkHelp":{aliases:[233,4,1,""],func:[233,3,1,""],help_category:[233,4,1,""],key:[233,4,1,""],lock_storage:[233,4,1,""],locks:[233,4,1,""]},"evennia.contrib.tutorial_world.rooms.CmdDarkNoMatch":{aliases:[233,4,1,""],func:[233,3,1,""],help_category:[233,4,1,""],key:[233,4,1,""],lock_storage:[233,4,1,""],locks:[233,4,1,""]},"evennia.contrib.tutorial_world.rooms.CmdEast":{aliases:[233,4,1,""],func:[233,3,1,""],help_category:[233,4,1,""],key:[233,4,1,""],lock_storage:[233,4,1,""],locks:[233,4,1,""]},"evennia.contrib.tutorial_world.rooms.CmdEvenniaIntro":{aliases:[233,4,1,""],func:[233,3,1,""],help_category:[233,4,1,""],key:[233,4,1,""],lock_storage:[233,4,1,""]},"evennia.contrib.tutorial_world.rooms.CmdLookBridge":{aliases:[233,4,1,""],func:[233,3,1,""],help_category:[233,4,1,""],key:[233,4,1,""],lock_storage:[233,4,1,""],locks:[233,4,1,""]},"evennia.contrib.tutorial_world.rooms.CmdLookDark":{aliases:[233,4,1,""],func:[233,3,1,""],help_category:[233,4,1,""],key:[233,4,1,""],lock_storage:[233,4,1,""],locks:[233,4,1,""]},"evennia.contrib.tutorial_world.rooms.CmdSetEvenniaIntro":{at_cmdset_creation:[233,3,1,""],key:[233,4,1,""],path:[233,4,1,""]},"evennia.contrib.tutorial_world.rooms.CmdTutorial":{aliases:[233,4,1,""],func:[233,3,1,""],help_category:[233,4,1,""],key:[233,4,1,""],lock_storage:[233,4,1,""],locks:[233,4,1,""]},"evennia.contrib.tutorial_world.rooms.CmdTutorialGiveUp":{aliases:[233,4,1,""],func:[233,3,1,""],help_category:[233,4,1,""],key:[233,4,1,""],lock_storage:[233,4,1,""]},"evennia.contrib.tutorial_world.rooms.CmdTutorialLook":{aliases:[233,4,1,""],func:[233,3,1,""],help_category:[233,4,1,""],key:[233,4,1,""],lock_storage:[233,4,1,""]},"evennia.contrib.tutorial_world.rooms.CmdTutorialSetDetail":{aliases:[233,4,1,""],func:[233,3,1,""],help_category:[233,4,1,""],key:[233,4,1,""],lock_storage:[233,4,1,""],locks:[233,4,1,""]},"evennia.contrib.tutorial_world.rooms.CmdWest":{aliases:[233,4,1,""],func:[233,3,1,""],help_category:[233,4,1,""],key:[233,4,1,""],lock_storage:[233,4,1,""],locks:[233,4,1,""]},"evennia.contrib.tutorial_world.rooms.DarkCmdSet":{at_cmdset_creation:[233,3,1,""],key:[233,4,1,""],mergetype:[233,4,1,""],path:[233,4,1,""],priority:[233,4,1,""]},"evennia.contrib.tutorial_world.rooms.DarkRoom":{DoesNotExist:[233,2,1,""],MultipleObjectsReturned:[233,2,1,""],at_init:[233,3,1,""],at_object_creation:[233,3,1,""],at_object_leave:[233,3,1,""],at_object_receive:[233,3,1,""],check_light_state:[233,3,1,""],path:[233,4,1,""],typename:[233,4,1,""]},"evennia.contrib.tutorial_world.rooms.IntroRoom":{DoesNotExist:[233,2,1,""],MultipleObjectsReturned:[233,2,1,""],at_object_creation:[233,3,1,""],at_object_receive:[233,3,1,""],path:[233,4,1,""],typename:[233,4,1,""]},"evennia.contrib.tutorial_world.rooms.OutroRoom":{DoesNotExist:[233,2,1,""],MultipleObjectsReturned:[233,2,1,""],at_object_creation:[233,3,1,""],at_object_leave:[233,3,1,""],at_object_receive:[233,3,1,""],path:[233,4,1,""],typename:[233,4,1,""]},"evennia.contrib.tutorial_world.rooms.TeleportRoom":{DoesNotExist:[233,2,1,""],MultipleObjectsReturned:[233,2,1,""],at_object_creation:[233,3,1,""],at_object_receive:[233,3,1,""],path:[233,4,1,""],typename:[233,4,1,""]},"evennia.contrib.tutorial_world.rooms.TutorialRoom":{DoesNotExist:[233,2,1,""],MultipleObjectsReturned:[233,2,1,""],at_object_creation:[233,3,1,""],at_object_receive:[233,3,1,""],path:[233,4,1,""],return_detail:[233,3,1,""],set_detail:[233,3,1,""],typename:[233,4,1,""]},"evennia.contrib.tutorial_world.rooms.TutorialRoomCmdSet":{at_cmdset_creation:[233,3,1,""],key:[233,4,1,""],path:[233,4,1,""],priority:[233,4,1,""]},"evennia.contrib.tutorial_world.rooms.WeatherRoom":{DoesNotExist:[233,2,1,""],MultipleObjectsReturned:[233,2,1,""],at_object_creation:[233,3,1,""],path:[233,4,1,""],typename:[233,4,1,""],update_weather:[233,3,1,""]},"evennia.contrib.unixcommand":{HelpAction:[234,1,1,""],ParseError:[234,2,1,""],UnixCommand:[234,1,1,""],UnixCommandParser:[234,1,1,""]},"evennia.contrib.unixcommand.UnixCommand":{__init__:[234,3,1,""],aliases:[234,4,1,""],func:[234,3,1,""],get_help:[234,3,1,""],help_category:[234,4,1,""],init_parser:[234,3,1,""],key:[234,4,1,""],lock_storage:[234,4,1,""],parse:[234,3,1,""]},"evennia.contrib.unixcommand.UnixCommandParser":{__init__:[234,3,1,""],format_help:[234,3,1,""],format_usage:[234,3,1,""],print_help:[234,3,1,""],print_usage:[234,3,1,""]},"evennia.contrib.wilderness":{WildernessExit:[235,1,1,""],WildernessMapProvider:[235,1,1,""],WildernessRoom:[235,1,1,""],WildernessScript:[235,1,1,""],create_wilderness:[235,5,1,""],enter_wilderness:[235,5,1,""],get_new_coordinates:[235,5,1,""]},"evennia.contrib.wilderness.WildernessExit":{DoesNotExist:[235,2,1,""],MultipleObjectsReturned:[235,2,1,""],at_traverse:[235,3,1,""],at_traverse_coordinates:[235,3,1,""],mapprovider:[235,3,1,""],path:[235,4,1,""],typename:[235,4,1,""],wilderness:[235,3,1,""]},"evennia.contrib.wilderness.WildernessMapProvider":{at_prepare_room:[235,3,1,""],exit_typeclass:[235,4,1,""],get_location_name:[235,3,1,""],is_valid_coordinates:[235,3,1,""],room_typeclass:[235,4,1,""]},"evennia.contrib.wilderness.WildernessRoom":{DoesNotExist:[235,2,1,""],MultipleObjectsReturned:[235,2,1,""],at_object_leave:[235,3,1,""],at_object_receive:[235,3,1,""],coordinates:[235,3,1,""],get_display_name:[235,3,1,""],location_name:[235,3,1,""],path:[235,4,1,""],set_active_coordinates:[235,3,1,""],typename:[235,4,1,""],wilderness:[235,3,1,""]},"evennia.contrib.wilderness.WildernessScript":{DoesNotExist:[235,2,1,""],MultipleObjectsReturned:[235,2,1,""],at_after_object_leave:[235,3,1,""],at_script_creation:[235,3,1,""],at_start:[235,3,1,""],get_obj_coordinates:[235,3,1,""],get_objs_at_coordinates:[235,3,1,""],is_valid_coordinates:[235,3,1,""],itemcoordinates:[235,3,1,""],mapprovider:[235,3,1,""],move_obj:[235,3,1,""],path:[235,4,1,""],typename:[235,4,1,""]},"evennia.help":{admin:[237,0,0,"-"],manager:[238,0,0,"-"],models:[239,0,0,"-"]},"evennia.help.admin":{HelpEntryAdmin:[237,1,1,""],HelpEntryForm:[237,1,1,""],HelpTagInline:[237,1,1,""]},"evennia.help.admin.HelpEntryAdmin":{fieldsets:[237,4,1,""],form:[237,4,1,""],inlines:[237,4,1,""],list_display:[237,4,1,""],list_display_links:[237,4,1,""],list_select_related:[237,4,1,""],media:[237,3,1,""],ordering:[237,4,1,""],save_as:[237,4,1,""],save_on_top:[237,4,1,""],search_fields:[237,4,1,""]},"evennia.help.admin.HelpEntryForm":{Meta:[237,1,1,""],base_fields:[237,4,1,""],declared_fields:[237,4,1,""],media:[237,3,1,""]},"evennia.help.admin.HelpEntryForm.Meta":{fields:[237,4,1,""],model:[237,4,1,""]},"evennia.help.admin.HelpTagInline":{media:[237,3,1,""],model:[237,4,1,""],related_field:[237,4,1,""]},"evennia.help.manager":{HelpEntryManager:[238,1,1,""]},"evennia.help.manager.HelpEntryManager":{all_to_category:[238,3,1,""],find_apropos:[238,3,1,""],find_topicmatch:[238,3,1,""],find_topics_with_category:[238,3,1,""],find_topicsuggestions:[238,3,1,""],get_all_categories:[238,3,1,""],get_all_topics:[238,3,1,""],search_help:[238,3,1,""]},"evennia.help.models":{HelpEntry:[239,1,1,""]},"evennia.help.models.HelpEntry":{DoesNotExist:[239,2,1,""],MultipleObjectsReturned:[239,2,1,""],access:[239,3,1,""],aliases:[239,4,1,""],db_entrytext:[239,4,1,""],db_help_category:[239,4,1,""],db_key:[239,4,1,""],db_lock_storage:[239,4,1,""],db_staff_only:[239,4,1,""],db_tags:[239,4,1,""],entrytext:[239,3,1,""],get_absolute_url:[239,3,1,""],help_category:[239,3,1,""],id:[239,4,1,""],key:[239,3,1,""],lock_storage:[239,3,1,""],locks:[239,4,1,""],objects:[239,4,1,""],path:[239,4,1,""],staff_only:[239,3,1,""],tags:[239,4,1,""],typename:[239,4,1,""],web_get_admin_url:[239,3,1,""],web_get_create_url:[239,3,1,""],web_get_delete_url:[239,3,1,""],web_get_detail_url:[239,3,1,""],web_get_update_url:[239,3,1,""]},"evennia.locks":{lockfuncs:[241,0,0,"-"],lockhandler:[242,0,0,"-"]},"evennia.locks.lockfuncs":{"false":[241,5,1,""],"true":[241,5,1,""],all:[241,5,1,""],attr:[241,5,1,""],attr_eq:[241,5,1,""],attr_ge:[241,5,1,""],attr_gt:[241,5,1,""],attr_le:[241,5,1,""],attr_lt:[241,5,1,""],attr_ne:[241,5,1,""],dbref:[241,5,1,""],has_account:[241,5,1,""],holds:[241,5,1,""],id:[241,5,1,""],inside:[241,5,1,""],inside_rec:[241,5,1,""],locattr:[241,5,1,""],none:[241,5,1,""],objattr:[241,5,1,""],objlocattr:[241,5,1,""],objtag:[241,5,1,""],pdbref:[241,5,1,""],perm:[241,5,1,""],perm_above:[241,5,1,""],pid:[241,5,1,""],pperm:[241,5,1,""],pperm_above:[241,5,1,""],self:[241,5,1,""],serversetting:[241,5,1,""],superuser:[241,5,1,""],tag:[241,5,1,""]},"evennia.locks.lockhandler":{LockException:[242,2,1,""],LockHandler:[242,1,1,""]},"evennia.locks.lockhandler.LockHandler":{"delete":[242,3,1,""],__init__:[242,3,1,""],add:[242,3,1,""],all:[242,3,1,""],append:[242,3,1,""],cache_lock_bypass:[242,3,1,""],check:[242,3,1,""],check_lockstring:[242,3,1,""],clear:[242,3,1,""],get:[242,3,1,""],remove:[242,3,1,""],replace:[242,3,1,""],reset:[242,3,1,""],validate:[242,3,1,""]},"evennia.objects":{admin:[244,0,0,"-"],manager:[245,0,0,"-"],models:[246,0,0,"-"],objects:[247,0,0,"-"]},"evennia.objects.admin":{ObjectAttributeInline:[244,1,1,""],ObjectCreateForm:[244,1,1,""],ObjectDBAdmin:[244,1,1,""],ObjectEditForm:[244,1,1,""],ObjectTagInline:[244,1,1,""]},"evennia.objects.admin.ObjectAttributeInline":{media:[244,3,1,""],model:[244,4,1,""],related_field:[244,4,1,""]},"evennia.objects.admin.ObjectCreateForm":{Meta:[244,1,1,""],base_fields:[244,4,1,""],declared_fields:[244,4,1,""],media:[244,3,1,""],raw_id_fields:[244,4,1,""]},"evennia.objects.admin.ObjectCreateForm.Meta":{fields:[244,4,1,""],model:[244,4,1,""]},"evennia.objects.admin.ObjectDBAdmin":{add_fieldsets:[244,4,1,""],add_form:[244,4,1,""],fieldsets:[244,4,1,""],form:[244,4,1,""],get_fieldsets:[244,3,1,""],get_form:[244,3,1,""],inlines:[244,4,1,""],list_display:[244,4,1,""],list_display_links:[244,4,1,""],list_filter:[244,4,1,""],list_select_related:[244,4,1,""],media:[244,3,1,""],ordering:[244,4,1,""],raw_id_fields:[244,4,1,""],response_add:[244,3,1,""],save_as:[244,4,1,""],save_model:[244,3,1,""],save_on_top:[244,4,1,""],search_fields:[244,4,1,""]},"evennia.objects.admin.ObjectEditForm":{Meta:[244,1,1,""],base_fields:[244,4,1,""],declared_fields:[244,4,1,""],media:[244,3,1,""]},"evennia.objects.admin.ObjectEditForm.Meta":{fields:[244,4,1,""]},"evennia.objects.admin.ObjectTagInline":{media:[244,3,1,""],model:[244,4,1,""],related_field:[244,4,1,""]},"evennia.objects.manager":{ObjectManager:[245,1,1,""]},"evennia.objects.models":{ContentsHandler:[246,1,1,""],ObjectDB:[246,1,1,""]},"evennia.objects.models.ContentsHandler":{__init__:[246,3,1,""],add:[246,3,1,""],clear:[246,3,1,""],get:[246,3,1,""],init:[246,3,1,""],remove:[246,3,1,""]},"evennia.objects.models.ObjectDB":{DoesNotExist:[246,2,1,""],MultipleObjectsReturned:[246,2,1,""],account:[246,3,1,""],at_db_location_postsave:[246,3,1,""],cmdset_storage:[246,3,1,""],contents_cache:[246,4,1,""],db_account:[246,4,1,""],db_account_id:[246,4,1,""],db_attributes:[246,4,1,""],db_cmdset_storage:[246,4,1,""],db_destination:[246,4,1,""],db_destination_id:[246,4,1,""],db_home:[246,4,1,""],db_home_id:[246,4,1,""],db_location:[246,4,1,""],db_location_id:[246,4,1,""],db_sessid:[246,4,1,""],db_tags:[246,4,1,""],destination:[246,3,1,""],destinations_set:[246,4,1,""],get_next_by_db_date_created:[246,3,1,""],get_previous_by_db_date_created:[246,3,1,""],hide_from_objects_set:[246,4,1,""],home:[246,3,1,""],homes_set:[246,4,1,""],id:[246,4,1,""],location:[246,3,1,""],locations_set:[246,4,1,""],object_subscription_set:[246,4,1,""],objects:[246,4,1,""],path:[246,4,1,""],receiver_object_set:[246,4,1,""],scriptdb_set:[246,4,1,""],sender_object_set:[246,4,1,""],sessid:[246,3,1,""],typename:[246,4,1,""]},"evennia.objects.objects":{DefaultCharacter:[247,1,1,""],DefaultExit:[247,1,1,""],DefaultObject:[247,1,1,""],DefaultRoom:[247,1,1,""],ExitCommand:[247,1,1,""],ObjectSessionHandler:[247,1,1,""]},"evennia.objects.objects.DefaultCharacter":{DoesNotExist:[247,2,1,""],MultipleObjectsReturned:[247,2,1,""],at_after_move:[247,3,1,""],at_post_puppet:[247,3,1,""],at_post_unpuppet:[247,3,1,""],at_pre_puppet:[247,3,1,""],basetype_setup:[247,3,1,""],connection_time:[247,3,1,""],create:[247,3,1,""],idle_time:[247,3,1,""],lockstring:[247,4,1,""],path:[247,4,1,""],typename:[247,4,1,""]},"evennia.objects.objects.DefaultExit":{DoesNotExist:[247,2,1,""],MultipleObjectsReturned:[247,2,1,""],at_cmdset_get:[247,3,1,""],at_failed_traverse:[247,3,1,""],at_init:[247,3,1,""],at_traverse:[247,3,1,""],basetype_setup:[247,3,1,""],create:[247,3,1,""],create_exit_cmdset:[247,3,1,""],exit_command:[247,4,1,""],lockstring:[247,4,1,""],path:[247,4,1,""],priority:[247,4,1,""],typename:[247,4,1,""]},"evennia.objects.objects.DefaultObject":{"delete":[247,3,1,""],DoesNotExist:[247,2,1,""],MultipleObjectsReturned:[247,2,1,""],access:[247,3,1,""],announce_move_from:[247,3,1,""],announce_move_to:[247,3,1,""],at_access:[247,3,1,""],at_after_move:[247,3,1,""],at_after_traverse:[247,3,1,""],at_before_drop:[247,3,1,""],at_before_get:[247,3,1,""],at_before_give:[247,3,1,""],at_before_move:[247,3,1,""],at_before_say:[247,3,1,""],at_cmdset_get:[247,3,1,""],at_desc:[247,3,1,""],at_drop:[247,3,1,""],at_failed_traverse:[247,3,1,""],at_first_save:[247,3,1,""],at_get:[247,3,1,""],at_give:[247,3,1,""],at_init:[247,3,1,""],at_look:[247,3,1,""],at_msg_receive:[247,3,1,""],at_msg_send:[247,3,1,""],at_object_creation:[247,3,1,""],at_object_delete:[247,3,1,""],at_object_leave:[247,3,1,""],at_object_post_copy:[247,3,1,""],at_object_receive:[247,3,1,""],at_post_puppet:[247,3,1,""],at_post_unpuppet:[247,3,1,""],at_pre_puppet:[247,3,1,""],at_pre_unpuppet:[247,3,1,""],at_say:[247,3,1,""],at_server_reload:[247,3,1,""],at_server_shutdown:[247,3,1,""],at_traverse:[247,3,1,""],basetype_posthook_setup:[247,3,1,""],basetype_setup:[247,3,1,""],clear_contents:[247,3,1,""],clear_exits:[247,3,1,""],cmdset:[247,4,1,""],contents:[247,3,1,""],contents_get:[247,3,1,""],contents_set:[247,3,1,""],copy:[247,3,1,""],create:[247,3,1,""],execute_cmd:[247,3,1,""],exits:[247,3,1,""],for_contents:[247,3,1,""],get_display_name:[247,3,1,""],get_numbered_name:[247,3,1,""],has_account:[247,3,1,""],is_connected:[247,3,1,""],is_superuser:[247,3,1,""],lockstring:[247,4,1,""],move_to:[247,3,1,""],msg:[247,3,1,""],msg_contents:[247,3,1,""],nicks:[247,4,1,""],objects:[247,4,1,""],path:[247,4,1,""],return_appearance:[247,3,1,""],scripts:[247,4,1,""],search:[247,3,1,""],search_account:[247,3,1,""],sessions:[247,4,1,""],typename:[247,4,1,""]},"evennia.objects.objects.DefaultRoom":{DoesNotExist:[247,2,1,""],MultipleObjectsReturned:[247,2,1,""],basetype_setup:[247,3,1,""],create:[247,3,1,""],lockstring:[247,4,1,""],path:[247,4,1,""],typename:[247,4,1,""]},"evennia.objects.objects.ExitCommand":{aliases:[247,4,1,""],func:[247,3,1,""],get_extra_info:[247,3,1,""],help_category:[247,4,1,""],key:[247,4,1,""],lock_storage:[247,4,1,""],obj:[247,4,1,""]},"evennia.objects.objects.ObjectSessionHandler":{__init__:[247,3,1,""],add:[247,3,1,""],all:[247,3,1,""],clear:[247,3,1,""],count:[247,3,1,""],get:[247,3,1,""],remove:[247,3,1,""]},"evennia.prototypes":{menus:[249,0,0,"-"],protfuncs:[250,0,0,"-"],prototypes:[251,0,0,"-"],spawner:[252,0,0,"-"]},"evennia.prototypes.menus":{OLCMenu:[249,1,1,""],node_apply_diff:[249,5,1,""],node_destination:[249,5,1,""],node_examine_entity:[249,5,1,""],node_home:[249,5,1,""],node_index:[249,5,1,""],node_key:[249,5,1,""],node_location:[249,5,1,""],node_prototype_desc:[249,5,1,""],node_prototype_key:[249,5,1,""],node_prototype_save:[249,5,1,""],node_prototype_spawn:[249,5,1,""],node_validate_prototype:[249,5,1,""],start_olc:[249,5,1,""]},"evennia.prototypes.menus.OLCMenu":{display_helptext:[249,3,1,""],helptext_formatter:[249,3,1,""],nodetext_formatter:[249,3,1,""],options_formatter:[249,3,1,""]},"evennia.prototypes.protfuncs":{add:[250,5,1,""],base_random:[250,5,1,""],center_justify:[250,5,1,""],choice:[250,5,1,""],dbref:[250,5,1,""],div:[250,5,1,""],eval:[250,5,1,""],full_justify:[250,5,1,""],left_justify:[250,5,1,""],mult:[250,5,1,""],obj:[250,5,1,""],objlist:[250,5,1,""],protkey:[250,5,1,""],randint:[250,5,1,""],random:[250,5,1,""],right_justify:[250,5,1,""],sub:[250,5,1,""],toint:[250,5,1,""]},"evennia.prototypes.prototypes":{DbPrototype:[251,1,1,""],PermissionError:[251,2,1,""],PrototypeEvMore:[251,1,1,""],ValidationError:[251,2,1,""],check_permission:[251,5,1,""],create_prototype:[251,5,1,""],delete_prototype:[251,5,1,""],format_available_protfuncs:[251,5,1,""],homogenize_prototype:[251,5,1,""],init_spawn_value:[251,5,1,""],list_prototypes:[251,5,1,""],load_module_prototypes:[251,5,1,""],protfunc_parser:[251,5,1,""],prototype_to_str:[251,5,1,""],save_prototype:[251,5,1,""],search_objects_with_prototype:[251,5,1,""],search_prototype:[251,5,1,""],validate_prototype:[251,5,1,""],value_to_obj:[251,5,1,""],value_to_obj_or_any:[251,5,1,""]},"evennia.prototypes.prototypes.DbPrototype":{DoesNotExist:[251,2,1,""],MultipleObjectsReturned:[251,2,1,""],at_script_creation:[251,3,1,""],path:[251,4,1,""],prototype:[251,3,1,""],typename:[251,4,1,""]},"evennia.prototypes.prototypes.PrototypeEvMore":{__init__:[251,3,1,""],init_pages:[251,3,1,""],page_formatter:[251,3,1,""],prototype_paginator:[251,3,1,""]},"evennia.prototypes.spawner":{Unset:[252,1,1,""],batch_create_object:[252,5,1,""],batch_update_objects_with_prototype:[252,5,1,""],flatten_diff:[252,5,1,""],flatten_prototype:[252,5,1,""],format_diff:[252,5,1,""],prototype_diff:[252,5,1,""],prototype_diff_from_object:[252,5,1,""],prototype_from_object:[252,5,1,""],spawn:[252,5,1,""]},"evennia.scripts":{admin:[254,0,0,"-"],manager:[255,0,0,"-"],models:[256,0,0,"-"],monitorhandler:[257,0,0,"-"],scripthandler:[258,0,0,"-"],scripts:[259,0,0,"-"],taskhandler:[260,0,0,"-"],tickerhandler:[261,0,0,"-"]},"evennia.scripts.admin":{ScriptAttributeInline:[254,1,1,""],ScriptDBAdmin:[254,1,1,""],ScriptTagInline:[254,1,1,""]},"evennia.scripts.admin.ScriptAttributeInline":{media:[254,3,1,""],model:[254,4,1,""],related_field:[254,4,1,""]},"evennia.scripts.admin.ScriptDBAdmin":{fieldsets:[254,4,1,""],inlines:[254,4,1,""],list_display:[254,4,1,""],list_display_links:[254,4,1,""],list_select_related:[254,4,1,""],media:[254,3,1,""],ordering:[254,4,1,""],raw_id_fields:[254,4,1,""],save_as:[254,4,1,""],save_model:[254,3,1,""],save_on_top:[254,4,1,""],search_fields:[254,4,1,""]},"evennia.scripts.admin.ScriptTagInline":{media:[254,3,1,""],model:[254,4,1,""],related_field:[254,4,1,""]},"evennia.scripts.manager":{ScriptManager:[255,1,1,""]},"evennia.scripts.models":{ScriptDB:[256,1,1,""]},"evennia.scripts.models.ScriptDB":{DoesNotExist:[256,2,1,""],MultipleObjectsReturned:[256,2,1,""],account:[256,3,1,""],db_account:[256,4,1,""],db_account_id:[256,4,1,""],db_attributes:[256,4,1,""],db_desc:[256,4,1,""],db_interval:[256,4,1,""],db_is_active:[256,4,1,""],db_obj:[256,4,1,""],db_obj_id:[256,4,1,""],db_persistent:[256,4,1,""],db_repeats:[256,4,1,""],db_start_delay:[256,4,1,""],db_tags:[256,4,1,""],desc:[256,3,1,""],get_next_by_db_date_created:[256,3,1,""],get_previous_by_db_date_created:[256,3,1,""],id:[256,4,1,""],interval:[256,3,1,""],is_active:[256,3,1,""],obj:[256,3,1,""],object:[256,3,1,""],objects:[256,4,1,""],path:[256,4,1,""],persistent:[256,3,1,""],receiver_script_set:[256,4,1,""],repeats:[256,3,1,""],sender_script_set:[256,4,1,""],start_delay:[256,3,1,""],typename:[256,4,1,""]},"evennia.scripts.monitorhandler":{MonitorHandler:[257,1,1,""]},"evennia.scripts.monitorhandler.MonitorHandler":{__init__:[257,3,1,""],add:[257,3,1,""],all:[257,3,1,""],at_update:[257,3,1,""],clear:[257,3,1,""],remove:[257,3,1,""],restore:[257,3,1,""],save:[257,3,1,""]},"evennia.scripts.scripthandler":{ScriptHandler:[258,1,1,""]},"evennia.scripts.scripthandler.ScriptHandler":{"delete":[258,3,1,""],__init__:[258,3,1,""],add:[258,3,1,""],all:[258,3,1,""],get:[258,3,1,""],start:[258,3,1,""],stop:[258,3,1,""],validate:[258,3,1,""]},"evennia.scripts.scripts":{DefaultScript:[259,1,1,""],DoNothing:[259,1,1,""],Store:[259,1,1,""]},"evennia.scripts.scripts.DefaultScript":{DoesNotExist:[259,2,1,""],MultipleObjectsReturned:[259,2,1,""],at_idmapper_flush:[259,3,1,""],at_repeat:[259,3,1,""],at_script_creation:[259,3,1,""],at_server_reload:[259,3,1,""],at_server_shutdown:[259,3,1,""],at_start:[259,3,1,""],at_stop:[259,3,1,""],create:[259,3,1,""],force_repeat:[259,3,1,""],is_valid:[259,3,1,""],path:[259,4,1,""],pause:[259,3,1,""],remaining_repeats:[259,3,1,""],reset_callcount:[259,3,1,""],restart:[259,3,1,""],start:[259,3,1,""],stop:[259,3,1,""],time_until_next_repeat:[259,3,1,""],typename:[259,4,1,""],unpause:[259,3,1,""]},"evennia.scripts.scripts.DoNothing":{DoesNotExist:[259,2,1,""],MultipleObjectsReturned:[259,2,1,""],at_script_creation:[259,3,1,""],path:[259,4,1,""],typename:[259,4,1,""]},"evennia.scripts.scripts.Store":{DoesNotExist:[259,2,1,""],MultipleObjectsReturned:[259,2,1,""],at_script_creation:[259,3,1,""],path:[259,4,1,""],typename:[259,4,1,""]},"evennia.scripts.taskhandler":{TaskHandler:[260,1,1,""]},"evennia.scripts.taskhandler.TaskHandler":{__init__:[260,3,1,""],add:[260,3,1,""],create_delays:[260,3,1,""],do_task:[260,3,1,""],load:[260,3,1,""],remove:[260,3,1,""],save:[260,3,1,""]},"evennia.scripts.tickerhandler":{Ticker:[261,1,1,""],TickerHandler:[261,1,1,""],TickerPool:[261,1,1,""]},"evennia.scripts.tickerhandler.Ticker":{__init__:[261,3,1,""],add:[261,3,1,""],remove:[261,3,1,""],stop:[261,3,1,""],validate:[261,3,1,""]},"evennia.scripts.tickerhandler.TickerHandler":{__init__:[261,3,1,""],add:[261,3,1,""],all:[261,3,1,""],all_display:[261,3,1,""],clear:[261,3,1,""],remove:[261,3,1,""],restore:[261,3,1,""],save:[261,3,1,""],ticker_pool_class:[261,4,1,""]},"evennia.scripts.tickerhandler.TickerPool":{__init__:[261,3,1,""],add:[261,3,1,""],remove:[261,3,1,""],stop:[261,3,1,""],ticker_class:[261,4,1,""]},"evennia.server":{admin:[263,0,0,"-"],amp_client:[264,0,0,"-"],connection_wizard:[265,0,0,"-"],deprecations:[266,0,0,"-"],evennia_launcher:[267,0,0,"-"],game_index_client:[268,0,0,"-"],initial_setup:[271,0,0,"-"],inputfuncs:[272,0,0,"-"],manager:[273,0,0,"-"],models:[274,0,0,"-"],portal:[275,0,0,"-"],profiling:[297,0,0,"-"],server:[305,0,0,"-"],serversession:[306,0,0,"-"],session:[307,0,0,"-"],sessionhandler:[308,0,0,"-"],signals:[309,0,0,"-"],throttle:[310,0,0,"-"],validators:[311,0,0,"-"],webserver:[312,0,0,"-"]},"evennia.server.admin":{ServerConfigAdmin:[263,1,1,""]},"evennia.server.admin.ServerConfigAdmin":{list_display:[263,4,1,""],list_display_links:[263,4,1,""],list_select_related:[263,4,1,""],media:[263,3,1,""],ordering:[263,4,1,""],save_as:[263,4,1,""],save_on_top:[263,4,1,""],search_fields:[263,4,1,""]},"evennia.server.amp_client":{AMPClientFactory:[264,1,1,""],AMPServerClientProtocol:[264,1,1,""]},"evennia.server.amp_client.AMPClientFactory":{__init__:[264,3,1,""],buildProtocol:[264,3,1,""],clientConnectionFailed:[264,3,1,""],clientConnectionLost:[264,3,1,""],factor:[264,4,1,""],initialDelay:[264,4,1,""],maxDelay:[264,4,1,""],noisy:[264,4,1,""],startedConnecting:[264,3,1,""]},"evennia.server.amp_client.AMPServerClientProtocol":{connectionMade:[264,3,1,""],data_to_portal:[264,3,1,""],send_AdminServer2Portal:[264,3,1,""],send_MsgServer2Portal:[264,3,1,""],server_receive_adminportal2server:[264,3,1,""],server_receive_msgportal2server:[264,3,1,""],server_receive_status:[264,3,1,""]},"evennia.server.connection_wizard":{ConnectionWizard:[265,1,1,""],node_game_index_fields:[265,5,1,""],node_game_index_start:[265,5,1,""],node_mssp_start:[265,5,1,""],node_start:[265,5,1,""],node_view_and_apply_settings:[265,5,1,""]},"evennia.server.connection_wizard.ConnectionWizard":{__init__:[265,3,1,""],ask_choice:[265,3,1,""],ask_continue:[265,3,1,""],ask_input:[265,3,1,""],ask_node:[265,3,1,""],ask_yesno:[265,3,1,""],display:[265,3,1,""]},"evennia.server.deprecations":{check_errors:[266,5,1,""],check_warnings:[266,5,1,""]},"evennia.server.evennia_launcher":{AMPLauncherProtocol:[267,1,1,""],MsgLauncher2Portal:[267,1,1,""],MsgStatus:[267,1,1,""],check_database:[267,5,1,""],check_main_evennia_dependencies:[267,5,1,""],collectstatic:[267,5,1,""],create_game_directory:[267,5,1,""],create_secret_key:[267,5,1,""],create_settings_file:[267,5,1,""],create_superuser:[267,5,1,""],del_pid:[267,5,1,""],error_check_python_modules:[267,5,1,""],evennia_version:[267,5,1,""],get_pid:[267,5,1,""],getenv:[267,5,1,""],init_game_directory:[267,5,1,""],kill:[267,5,1,""],list_settings:[267,5,1,""],main:[267,5,1,""],query_info:[267,5,1,""],query_status:[267,5,1,""],reboot_evennia:[267,5,1,""],reload_evennia:[267,5,1,""],run_connect_wizard:[267,5,1,""],run_dummyrunner:[267,5,1,""],run_menu:[267,5,1,""],send_instruction:[267,5,1,""],set_gamedir:[267,5,1,""],show_version_info:[267,5,1,""],start_evennia:[267,5,1,""],start_only_server:[267,5,1,""],start_portal_interactive:[267,5,1,""],start_server_interactive:[267,5,1,""],stop_evennia:[267,5,1,""],stop_server_only:[267,5,1,""],tail_log_files:[267,5,1,""],wait_for_status:[267,5,1,""],wait_for_status_reply:[267,5,1,""]},"evennia.server.evennia_launcher.AMPLauncherProtocol":{__init__:[267,3,1,""],receive_status_from_portal:[267,3,1,""],wait_for_status:[267,3,1,""]},"evennia.server.evennia_launcher.MsgLauncher2Portal":{allErrors:[267,4,1,""],arguments:[267,4,1,""],commandName:[267,4,1,""],errors:[267,4,1,""],key:[267,4,1,""],response:[267,4,1,""],reverseErrors:[267,4,1,""]},"evennia.server.evennia_launcher.MsgStatus":{allErrors:[267,4,1,""],arguments:[267,4,1,""],commandName:[267,4,1,""],errors:[267,4,1,""],key:[267,4,1,""],response:[267,4,1,""],reverseErrors:[267,4,1,""]},"evennia.server.game_index_client":{client:[269,0,0,"-"],service:[270,0,0,"-"]},"evennia.server.game_index_client.client":{EvenniaGameIndexClient:[269,1,1,""],QuietHTTP11ClientFactory:[269,1,1,""],SimpleResponseReceiver:[269,1,1,""],StringProducer:[269,1,1,""]},"evennia.server.game_index_client.client.EvenniaGameIndexClient":{__init__:[269,3,1,""],handle_egd_response:[269,3,1,""],send_game_details:[269,3,1,""]},"evennia.server.game_index_client.client.QuietHTTP11ClientFactory":{noisy:[269,4,1,""]},"evennia.server.game_index_client.client.SimpleResponseReceiver":{__init__:[269,3,1,""],connectionLost:[269,3,1,""],dataReceived:[269,3,1,""]},"evennia.server.game_index_client.client.StringProducer":{__init__:[269,3,1,""],pauseProducing:[269,3,1,""],startProducing:[269,3,1,""],stopProducing:[269,3,1,""]},"evennia.server.game_index_client.service":{EvenniaGameIndexService:[270,1,1,""]},"evennia.server.game_index_client.service.EvenniaGameIndexService":{__init__:[270,3,1,""],name:[270,4,1,""],startService:[270,3,1,""],stopService:[270,3,1,""]},"evennia.server.initial_setup":{at_initial_setup:[271,5,1,""],collectstatic:[271,5,1,""],create_channels:[271,5,1,""],create_objects:[271,5,1,""],get_god_account:[271,5,1,""],handle_setup:[271,5,1,""],reset_server:[271,5,1,""]},"evennia.server.inputfuncs":{"default":[272,5,1,""],bot_data_in:[272,5,1,""],client_options:[272,5,1,""],echo:[272,5,1,""],external_discord_hello:[272,5,1,""],get_client_options:[272,5,1,""],get_inputfuncs:[272,5,1,""],get_value:[272,5,1,""],hello:[272,5,1,""],login:[272,5,1,""],monitor:[272,5,1,""],monitored:[272,5,1,""],msdp_list:[272,5,1,""],msdp_report:[272,5,1,""],msdp_send:[272,5,1,""],msdp_unreport:[272,5,1,""],repeat:[272,5,1,""],supports_set:[272,5,1,""],text:[272,5,1,""],unmonitor:[272,5,1,""],unrepeat:[272,5,1,""],webclient_options:[272,5,1,""]},"evennia.server.manager":{ServerConfigManager:[273,1,1,""]},"evennia.server.manager.ServerConfigManager":{conf:[273,3,1,""]},"evennia.server.models":{ServerConfig:[274,1,1,""]},"evennia.server.models.ServerConfig":{DoesNotExist:[274,2,1,""],MultipleObjectsReturned:[274,2,1,""],db_key:[274,4,1,""],db_value:[274,4,1,""],id:[274,4,1,""],key:[274,3,1,""],objects:[274,4,1,""],path:[274,4,1,""],store:[274,3,1,""],typename:[274,4,1,""],value:[274,3,1,""]},"evennia.server.portal":{amp:[276,0,0,"-"],amp_server:[277,0,0,"-"],grapevine:[278,0,0,"-"],irc:[279,0,0,"-"],mccp:[280,0,0,"-"],mssp:[281,0,0,"-"],mxp:[282,0,0,"-"],naws:[283,0,0,"-"],portal:[284,0,0,"-"],portalsessionhandler:[285,0,0,"-"],rss:[286,0,0,"-"],ssh:[287,0,0,"-"],ssl:[288,0,0,"-"],suppress_ga:[289,0,0,"-"],telnet:[290,0,0,"-"],telnet_oob:[291,0,0,"-"],telnet_ssl:[292,0,0,"-"],tests:[293,0,0,"-"],ttype:[294,0,0,"-"],webclient:[295,0,0,"-"],webclient_ajax:[296,0,0,"-"]},"evennia.server.portal.amp":{AMPMultiConnectionProtocol:[276,1,1,""],AdminPortal2Server:[276,1,1,""],AdminServer2Portal:[276,1,1,""],Compressed:[276,1,1,""],FunctionCall:[276,1,1,""],MsgLauncher2Portal:[276,1,1,""],MsgPortal2Server:[276,1,1,""],MsgServer2Portal:[276,1,1,""],MsgStatus:[276,1,1,""],dumps:[276,5,1,""],loads:[276,5,1,""]},"evennia.server.portal.amp.AMPMultiConnectionProtocol":{__init__:[276,3,1,""],broadcast:[276,3,1,""],connectionLost:[276,3,1,""],connectionMade:[276,3,1,""],dataReceived:[276,3,1,""],data_in:[276,3,1,""],errback:[276,3,1,""],makeConnection:[276,3,1,""],receive_functioncall:[276,3,1,""],send_FunctionCall:[276,3,1,""]},"evennia.server.portal.amp.AdminPortal2Server":{allErrors:[276,4,1,""],arguments:[276,4,1,""],commandName:[276,4,1,""],errors:[276,4,1,""],key:[276,4,1,""],response:[276,4,1,""],reverseErrors:[276,4,1,""]},"evennia.server.portal.amp.AdminServer2Portal":{allErrors:[276,4,1,""],arguments:[276,4,1,""],commandName:[276,4,1,""],errors:[276,4,1,""],key:[276,4,1,""],response:[276,4,1,""],reverseErrors:[276,4,1,""]},"evennia.server.portal.amp.Compressed":{fromBox:[276,3,1,""],fromString:[276,3,1,""],toBox:[276,3,1,""],toString:[276,3,1,""]},"evennia.server.portal.amp.FunctionCall":{allErrors:[276,4,1,""],arguments:[276,4,1,""],commandName:[276,4,1,""],errors:[276,4,1,""],key:[276,4,1,""],response:[276,4,1,""],reverseErrors:[276,4,1,""]},"evennia.server.portal.amp.MsgLauncher2Portal":{allErrors:[276,4,1,""],arguments:[276,4,1,""],commandName:[276,4,1,""],errors:[276,4,1,""],key:[276,4,1,""],response:[276,4,1,""],reverseErrors:[276,4,1,""]},"evennia.server.portal.amp.MsgPortal2Server":{allErrors:[276,4,1,""],arguments:[276,4,1,""],commandName:[276,4,1,""],errors:[276,4,1,""],key:[276,4,1,""],response:[276,4,1,""],reverseErrors:[276,4,1,""]},"evennia.server.portal.amp.MsgServer2Portal":{allErrors:[276,4,1,""],arguments:[276,4,1,""],commandName:[276,4,1,""],errors:[276,4,1,""],key:[276,4,1,""],response:[276,4,1,""],reverseErrors:[276,4,1,""]},"evennia.server.portal.amp.MsgStatus":{allErrors:[276,4,1,""],arguments:[276,4,1,""],commandName:[276,4,1,""],errors:[276,4,1,""],key:[276,4,1,""],response:[276,4,1,""],reverseErrors:[276,4,1,""]},"evennia.server.portal.amp_server":{AMPServerFactory:[277,1,1,""],AMPServerProtocol:[277,1,1,""],getenv:[277,5,1,""]},"evennia.server.portal.amp_server.AMPServerFactory":{__init__:[277,3,1,""],buildProtocol:[277,3,1,""],logPrefix:[277,3,1,""],noisy:[277,4,1,""]},"evennia.server.portal.amp_server.AMPServerProtocol":{connectionLost:[277,3,1,""],data_to_server:[277,3,1,""],get_status:[277,3,1,""],portal_receive_adminserver2portal:[277,3,1,""],portal_receive_launcher2portal:[277,3,1,""],portal_receive_server2portal:[277,3,1,""],portal_receive_status:[277,3,1,""],send_AdminPortal2Server:[277,3,1,""],send_MsgPortal2Server:[277,3,1,""],send_Status2Launcher:[277,3,1,""],start_server:[277,3,1,""],stop_server:[277,3,1,""],wait_for_disconnect:[277,3,1,""],wait_for_server_connect:[277,3,1,""]},"evennia.server.portal.grapevine":{GrapevineClient:[278,1,1,""],RestartingWebsocketServerFactory:[278,1,1,""]},"evennia.server.portal.grapevine.GrapevineClient":{__init__:[278,3,1,""],at_login:[278,3,1,""],data_in:[278,3,1,""],disconnect:[278,3,1,""],onClose:[278,3,1,""],onMessage:[278,3,1,""],onOpen:[278,3,1,""],send_authenticate:[278,3,1,""],send_channel:[278,3,1,""],send_default:[278,3,1,""],send_heartbeat:[278,3,1,""],send_subscribe:[278,3,1,""],send_unsubscribe:[278,3,1,""]},"evennia.server.portal.grapevine.RestartingWebsocketServerFactory":{__init__:[278,3,1,""],buildProtocol:[278,3,1,""],clientConnectionFailed:[278,3,1,""],clientConnectionLost:[278,3,1,""],factor:[278,4,1,""],initialDelay:[278,4,1,""],maxDelay:[278,4,1,""],reconnect:[278,3,1,""],start:[278,3,1,""],startedConnecting:[278,3,1,""]},"evennia.server.portal.irc":{IRCBot:[279,1,1,""],IRCBotFactory:[279,1,1,""],parse_ansi_to_irc:[279,5,1,""],parse_irc_to_ansi:[279,5,1,""]},"evennia.server.portal.irc.IRCBot":{action:[279,3,1,""],at_login:[279,3,1,""],channel:[279,4,1,""],data_in:[279,3,1,""],disconnect:[279,3,1,""],factory:[279,4,1,""],get_nicklist:[279,3,1,""],irc_RPL_ENDOFNAMES:[279,3,1,""],irc_RPL_NAMREPLY:[279,3,1,""],lineRate:[279,4,1,""],logger:[279,4,1,""],nickname:[279,4,1,""],pong:[279,3,1,""],privmsg:[279,3,1,""],send_channel:[279,3,1,""],send_default:[279,3,1,""],send_ping:[279,3,1,""],send_privmsg:[279,3,1,""],send_reconnect:[279,3,1,""],send_request_nicklist:[279,3,1,""],signedOn:[279,3,1,""],sourceURL:[279,4,1,""]},"evennia.server.portal.irc.IRCBotFactory":{__init__:[279,3,1,""],buildProtocol:[279,3,1,""],clientConnectionFailed:[279,3,1,""],clientConnectionLost:[279,3,1,""],factor:[279,4,1,""],initialDelay:[279,4,1,""],maxDelay:[279,4,1,""],reconnect:[279,3,1,""],start:[279,3,1,""],startedConnecting:[279,3,1,""]},"evennia.server.portal.mccp":{Mccp:[280,1,1,""],mccp_compress:[280,5,1,""]},"evennia.server.portal.mccp.Mccp":{__init__:[280,3,1,""],do_mccp:[280,3,1,""],no_mccp:[280,3,1,""]},"evennia.server.portal.mssp":{Mssp:[281,1,1,""]},"evennia.server.portal.mssp.Mssp":{__init__:[281,3,1,""],do_mssp:[281,3,1,""],get_player_count:[281,3,1,""],get_uptime:[281,3,1,""],no_mssp:[281,3,1,""]},"evennia.server.portal.mxp":{Mxp:[282,1,1,""],mxp_parse:[282,5,1,""]},"evennia.server.portal.mxp.Mxp":{__init__:[282,3,1,""],do_mxp:[282,3,1,""],no_mxp:[282,3,1,""]},"evennia.server.portal.naws":{Naws:[283,1,1,""]},"evennia.server.portal.naws.Naws":{__init__:[283,3,1,""],do_naws:[283,3,1,""],negotiate_sizes:[283,3,1,""],no_naws:[283,3,1,""]},"evennia.server.portal.portal":{Portal:[284,1,1,""],Websocket:[284,1,1,""]},"evennia.server.portal.portal.Portal":{__init__:[284,3,1,""],get_info_dict:[284,3,1,""],shutdown:[284,3,1,""]},"evennia.server.portal.portalsessionhandler":{PortalSessionHandler:[285,1,1,""]},"evennia.server.portal.portalsessionhandler.PortalSessionHandler":{__init__:[285,3,1,""],announce_all:[285,3,1,""],at_server_connection:[285,3,1,""],connect:[285,3,1,""],count_loggedin:[285,3,1,""],data_in:[285,3,1,""],data_out:[285,3,1,""],disconnect:[285,3,1,""],disconnect_all:[285,3,1,""],server_connect:[285,3,1,""],server_disconnect:[285,3,1,""],server_disconnect_all:[285,3,1,""],server_logged_in:[285,3,1,""],server_session_sync:[285,3,1,""],sessions_from_csessid:[285,3,1,""],sync:[285,3,1,""]},"evennia.server.portal.rss":{RSSBotFactory:[286,1,1,""],RSSReader:[286,1,1,""]},"evennia.server.portal.rss.RSSBotFactory":{__init__:[286,3,1,""],start:[286,3,1,""]},"evennia.server.portal.rss.RSSReader":{__init__:[286,3,1,""],data_in:[286,3,1,""],disconnect:[286,3,1,""],get_new:[286,3,1,""],update:[286,3,1,""]},"evennia.server.portal.ssh":{AccountDBPasswordChecker:[287,1,1,""],ExtraInfoAuthServer:[287,1,1,""],PassAvatarIdTerminalRealm:[287,1,1,""],SSHServerFactory:[287,1,1,""],SshProtocol:[287,1,1,""],TerminalSessionTransport_getPeer:[287,1,1,""],getKeyPair:[287,5,1,""],makeFactory:[287,5,1,""]},"evennia.server.portal.ssh.AccountDBPasswordChecker":{__init__:[287,3,1,""],credentialInterfaces:[287,4,1,""],noisy:[287,4,1,""],requestAvatarId:[287,3,1,""]},"evennia.server.portal.ssh.ExtraInfoAuthServer":{auth_password:[287,3,1,""],noisy:[287,4,1,""]},"evennia.server.portal.ssh.PassAvatarIdTerminalRealm":{noisy:[287,4,1,""]},"evennia.server.portal.ssh.SSHServerFactory":{logPrefix:[287,3,1,""],noisy:[287,4,1,""]},"evennia.server.portal.ssh.SshProtocol":{__init__:[287,3,1,""],at_login:[287,3,1,""],connectionLost:[287,3,1,""],connectionMade:[287,3,1,""],data_out:[287,3,1,""],disconnect:[287,3,1,""],getClientAddress:[287,3,1,""],handle_EOF:[287,3,1,""],handle_FF:[287,3,1,""],handle_INT:[287,3,1,""],handle_QUIT:[287,3,1,""],lineReceived:[287,3,1,""],noisy:[287,4,1,""],sendLine:[287,3,1,""],send_default:[287,3,1,""],send_prompt:[287,3,1,""],send_text:[287,3,1,""],terminalSize:[287,3,1,""]},"evennia.server.portal.ssh.TerminalSessionTransport_getPeer":{__init__:[287,3,1,""],noisy:[287,4,1,""]},"evennia.server.portal.ssl":{SSLProtocol:[288,1,1,""],getSSLContext:[288,5,1,""],verify_SSL_key_and_cert:[288,5,1,""]},"evennia.server.portal.ssl.SSLProtocol":{__init__:[288,3,1,""]},"evennia.server.portal.suppress_ga":{SuppressGA:[289,1,1,""]},"evennia.server.portal.suppress_ga.SuppressGA":{__init__:[289,3,1,""],will_suppress_ga:[289,3,1,""],wont_suppress_ga:[289,3,1,""]},"evennia.server.portal.telnet":{TelnetProtocol:[290,1,1,""],TelnetServerFactory:[290,1,1,""]},"evennia.server.portal.telnet.TelnetProtocol":{__init__:[290,3,1,""],applicationDataReceived:[290,3,1,""],at_login:[290,3,1,""],connectionLost:[290,3,1,""],connectionMade:[290,3,1,""],dataReceived:[290,3,1,""],data_in:[290,3,1,""],data_out:[290,3,1,""],disableLocal:[290,3,1,""],disableRemote:[290,3,1,""],disconnect:[290,3,1,""],enableLocal:[290,3,1,""],enableRemote:[290,3,1,""],handshake_done:[290,3,1,""],sendLine:[290,3,1,""],send_default:[290,3,1,""],send_prompt:[290,3,1,""],send_text:[290,3,1,""],toggle_nop_keepalive:[290,3,1,""]},"evennia.server.portal.telnet.TelnetServerFactory":{logPrefix:[290,3,1,""],noisy:[290,4,1,""]},"evennia.server.portal.telnet_oob":{TelnetOOB:[291,1,1,""]},"evennia.server.portal.telnet_oob.TelnetOOB":{__init__:[291,3,1,""],data_out:[291,3,1,""],decode_gmcp:[291,3,1,""],decode_msdp:[291,3,1,""],do_gmcp:[291,3,1,""],do_msdp:[291,3,1,""],encode_gmcp:[291,3,1,""],encode_msdp:[291,3,1,""],no_gmcp:[291,3,1,""],no_msdp:[291,3,1,""]},"evennia.server.portal.telnet_ssl":{SSLProtocol:[292,1,1,""],getSSLContext:[292,5,1,""],verify_or_create_SSL_key_and_cert:[292,5,1,""]},"evennia.server.portal.telnet_ssl.SSLProtocol":{__init__:[292,3,1,""]},"evennia.server.portal.tests":{TestAMPServer:[293,1,1,""],TestIRC:[293,1,1,""],TestTelnet:[293,1,1,""],TestWebSocket:[293,1,1,""]},"evennia.server.portal.tests.TestAMPServer":{setUp:[293,3,1,""],test_amp_in:[293,3,1,""],test_amp_out:[293,3,1,""],test_large_msg:[293,3,1,""]},"evennia.server.portal.tests.TestIRC":{test_bold:[293,3,1,""],test_colors:[293,3,1,""],test_identity:[293,3,1,""],test_italic:[293,3,1,""],test_plain_ansi:[293,3,1,""]},"evennia.server.portal.tests.TestTelnet":{setUp:[293,3,1,""],test_mudlet_ttype:[293,3,1,""]},"evennia.server.portal.tests.TestWebSocket":{setUp:[293,3,1,""],tearDown:[293,3,1,""],test_data_in:[293,3,1,""],test_data_out:[293,3,1,""]},"evennia.server.portal.ttype":{Ttype:[294,1,1,""]},"evennia.server.portal.ttype.Ttype":{__init__:[294,3,1,""],will_ttype:[294,3,1,""],wont_ttype:[294,3,1,""]},"evennia.server.portal.webclient":{WebSocketClient:[295,1,1,""]},"evennia.server.portal.webclient.WebSocketClient":{__init__:[295,3,1,""],at_login:[295,3,1,""],data_in:[295,3,1,""],disconnect:[295,3,1,""],get_client_session:[295,3,1,""],nonce:[295,4,1,""],onClose:[295,3,1,""],onMessage:[295,3,1,""],onOpen:[295,3,1,""],sendLine:[295,3,1,""],send_default:[295,3,1,""],send_prompt:[295,3,1,""],send_text:[295,3,1,""]},"evennia.server.portal.webclient_ajax":{AjaxWebClient:[296,1,1,""],AjaxWebClientSession:[296,1,1,""],LazyEncoder:[296,1,1,""],jsonify:[296,5,1,""]},"evennia.server.portal.webclient_ajax.AjaxWebClient":{__init__:[296,3,1,""],allowedMethods:[296,4,1,""],at_login:[296,3,1,""],client_disconnect:[296,3,1,""],get_client_sessid:[296,3,1,""],isLeaf:[296,4,1,""],lineSend:[296,3,1,""],mode_close:[296,3,1,""],mode_init:[296,3,1,""],mode_input:[296,3,1,""],mode_keepalive:[296,3,1,""],mode_receive:[296,3,1,""],render_POST:[296,3,1,""]},"evennia.server.portal.webclient_ajax.AjaxWebClientSession":{__init__:[296,3,1,""],at_login:[296,3,1,""],data_in:[296,3,1,""],data_out:[296,3,1,""],disconnect:[296,3,1,""],get_client_session:[296,3,1,""],send_default:[296,3,1,""],send_prompt:[296,3,1,""],send_text:[296,3,1,""]},"evennia.server.portal.webclient_ajax.LazyEncoder":{"default":[296,3,1,""]},"evennia.server.profiling":{dummyrunner:[298,0,0,"-"],dummyrunner_settings:[299,0,0,"-"],memplot:[300,0,0,"-"],settings_mixin:[301,0,0,"-"],test_queries:[302,0,0,"-"],tests:[303,0,0,"-"],timetrace:[304,0,0,"-"]},"evennia.server.profiling.dummyrunner":{DummyClient:[298,1,1,""],DummyFactory:[298,1,1,""],gidcounter:[298,5,1,""],idcounter:[298,5,1,""],makeiter:[298,5,1,""],start_all_dummy_clients:[298,5,1,""]},"evennia.server.profiling.dummyrunner.DummyClient":{connectionLost:[298,3,1,""],connectionMade:[298,3,1,""],counter:[298,3,1,""],dataReceived:[298,3,1,""],error:[298,3,1,""],logout:[298,3,1,""],step:[298,3,1,""]},"evennia.server.profiling.dummyrunner.DummyFactory":{__init__:[298,3,1,""],protocol:[298,4,1,""]},"evennia.server.profiling.dummyrunner_settings":{c_creates_button:[299,5,1,""],c_creates_obj:[299,5,1,""],c_digs:[299,5,1,""],c_examines:[299,5,1,""],c_help:[299,5,1,""],c_idles:[299,5,1,""],c_login:[299,5,1,""],c_login_nodig:[299,5,1,""],c_logout:[299,5,1,""],c_looks:[299,5,1,""],c_moves:[299,5,1,""],c_moves_n:[299,5,1,""],c_moves_s:[299,5,1,""],c_socialize:[299,5,1,""]},"evennia.server.profiling.memplot":{Memplot:[300,1,1,""]},"evennia.server.profiling.memplot.Memplot":{DoesNotExist:[300,2,1,""],MultipleObjectsReturned:[300,2,1,""],at_repeat:[300,3,1,""],at_script_creation:[300,3,1,""],path:[300,4,1,""],typename:[300,4,1,""]},"evennia.server.profiling.test_queries":{count_queries:[302,5,1,""]},"evennia.server.profiling.tests":{TestDummyrunnerSettings:[303,1,1,""],TestMemPlot:[303,1,1,""]},"evennia.server.profiling.tests.TestDummyrunnerSettings":{clear_client_lists:[303,3,1,""],perception_method_tests:[303,3,1,""],setUp:[303,3,1,""],test_c_creates_button:[303,3,1,""],test_c_creates_obj:[303,3,1,""],test_c_digs:[303,3,1,""],test_c_examines:[303,3,1,""],test_c_help:[303,3,1,""],test_c_login:[303,3,1,""],test_c_login_no_dig:[303,3,1,""],test_c_logout:[303,3,1,""],test_c_looks:[303,3,1,""],test_c_move_n:[303,3,1,""],test_c_move_s:[303,3,1,""],test_c_moves:[303,3,1,""],test_c_socialize:[303,3,1,""],test_idles:[303,3,1,""]},"evennia.server.profiling.tests.TestMemPlot":{test_memplot:[303,3,1,""]},"evennia.server.profiling.timetrace":{timetrace:[304,5,1,""]},"evennia.server.server":{Evennia:[305,1,1,""]},"evennia.server.server.Evennia":{__init__:[305,3,1,""],at_post_portal_sync:[305,3,1,""],at_server_cold_start:[305,3,1,""],at_server_cold_stop:[305,3,1,""],at_server_reload_start:[305,3,1,""],at_server_reload_stop:[305,3,1,""],at_server_start:[305,3,1,""],at_server_stop:[305,3,1,""],get_info_dict:[305,3,1,""],run_init_hooks:[305,3,1,""],run_initial_setup:[305,3,1,""],shutdown:[305,3,1,""],sqlite3_prep:[305,3,1,""],update_defaults:[305,3,1,""]},"evennia.server.serversession":{NAttributeHandler:[306,1,1,""],NDbHolder:[306,1,1,""],ServerSession:[306,1,1,""]},"evennia.server.serversession.NAttributeHandler":{__init__:[306,3,1,""],add:[306,3,1,""],all:[306,3,1,""],clear:[306,3,1,""],get:[306,3,1,""],has:[306,3,1,""],remove:[306,3,1,""]},"evennia.server.serversession.NDbHolder":{__init__:[306,3,1,""],all:[306,3,1,""],get_all:[306,3,1,""]},"evennia.server.serversession.ServerSession":{__init__:[306,3,1,""],access:[306,3,1,""],at_cmdset_get:[306,3,1,""],at_disconnect:[306,3,1,""],at_login:[306,3,1,""],at_sync:[306,3,1,""],attributes:[306,4,1,""],cmdset_storage:[306,3,1,""],data_in:[306,3,1,""],data_out:[306,3,1,""],db:[306,3,1,""],execute_cmd:[306,3,1,""],get_account:[306,3,1,""],get_character:[306,3,1,""],get_client_size:[306,3,1,""],get_puppet:[306,3,1,""],get_puppet_or_account:[306,3,1,""],log:[306,3,1,""],msg:[306,3,1,""],nattributes:[306,4,1,""],ndb:[306,3,1,""],ndb_del:[306,3,1,""],ndb_get:[306,3,1,""],ndb_set:[306,3,1,""],update_flags:[306,3,1,""],update_session_counters:[306,3,1,""]},"evennia.server.session":{Session:[307,1,1,""]},"evennia.server.session.Session":{at_sync:[307,3,1,""],data_in:[307,3,1,""],data_out:[307,3,1,""],disconnect:[307,3,1,""],get_sync_data:[307,3,1,""],init_session:[307,3,1,""],load_sync_data:[307,3,1,""]},"evennia.server.sessionhandler":{DummySession:[308,1,1,""],ServerSessionHandler:[308,1,1,""],SessionHandler:[308,1,1,""],delayed_import:[308,5,1,""]},"evennia.server.sessionhandler.DummySession":{sessid:[308,4,1,""]},"evennia.server.sessionhandler.ServerSessionHandler":{__init__:[308,3,1,""],account_count:[308,3,1,""],all_connected_accounts:[308,3,1,""],all_sessions_portal_sync:[308,3,1,""],announce_all:[308,3,1,""],call_inputfuncs:[308,3,1,""],data_in:[308,3,1,""],data_out:[308,3,1,""],disconnect:[308,3,1,""],disconnect_all_sessions:[308,3,1,""],disconnect_duplicate_sessions:[308,3,1,""],get_inputfuncs:[308,3,1,""],login:[308,3,1,""],portal_connect:[308,3,1,""],portal_disconnect:[308,3,1,""],portal_disconnect_all:[308,3,1,""],portal_reset_server:[308,3,1,""],portal_restart_server:[308,3,1,""],portal_session_sync:[308,3,1,""],portal_sessions_sync:[308,3,1,""],portal_shutdown:[308,3,1,""],session_from_account:[308,3,1,""],session_from_sessid:[308,3,1,""],session_portal_partial_sync:[308,3,1,""],session_portal_sync:[308,3,1,""],sessions_from_account:[308,3,1,""],sessions_from_character:[308,3,1,""],sessions_from_csessid:[308,3,1,""],sessions_from_puppet:[308,3,1,""],start_bot_session:[308,3,1,""],validate_sessions:[308,3,1,""]},"evennia.server.sessionhandler.SessionHandler":{clean_senddata:[308,3,1,""],get:[308,3,1,""],get_all_sync_data:[308,3,1,""],get_sessions:[308,3,1,""]},"evennia.server.throttle":{Throttle:[310,1,1,""]},"evennia.server.throttle.Throttle":{__init__:[310,3,1,""],check:[310,3,1,""],error_msg:[310,4,1,""],get:[310,3,1,""],update:[310,3,1,""]},"evennia.server.validators":{EvenniaPasswordValidator:[311,1,1,""],EvenniaUsernameAvailabilityValidator:[311,1,1,""]},"evennia.server.validators.EvenniaPasswordValidator":{__init__:[311,3,1,""],get_help_text:[311,3,1,""],validate:[311,3,1,""]},"evennia.server.webserver":{DjangoWebRoot:[312,1,1,""],EvenniaReverseProxyResource:[312,1,1,""],HTTPChannelWithXForwardedFor:[312,1,1,""],LockableThreadPool:[312,1,1,""],PrivateStaticRoot:[312,1,1,""],WSGIWebServer:[312,1,1,""],Website:[312,1,1,""]},"evennia.server.webserver.DjangoWebRoot":{__init__:[312,3,1,""],empty_threadpool:[312,3,1,""],getChild:[312,3,1,""]},"evennia.server.webserver.EvenniaReverseProxyResource":{getChild:[312,3,1,""],render:[312,3,1,""]},"evennia.server.webserver.HTTPChannelWithXForwardedFor":{allHeadersReceived:[312,3,1,""]},"evennia.server.webserver.LockableThreadPool":{__init__:[312,3,1,""],callInThread:[312,3,1,""],lock:[312,3,1,""]},"evennia.server.webserver.PrivateStaticRoot":{directoryListing:[312,3,1,""]},"evennia.server.webserver.WSGIWebServer":{__init__:[312,3,1,""],startService:[312,3,1,""],stopService:[312,3,1,""]},"evennia.server.webserver.Website":{log:[312,3,1,""],logPrefix:[312,3,1,""],noisy:[312,4,1,""]},"evennia.typeclasses":{admin:[315,0,0,"-"],attributes:[316,0,0,"-"],managers:[317,0,0,"-"],models:[318,0,0,"-"],tags:[319,0,0,"-"]},"evennia.typeclasses.admin":{AttributeForm:[315,1,1,""],AttributeFormSet:[315,1,1,""],AttributeInline:[315,1,1,""],TagAdmin:[315,1,1,""],TagForm:[315,1,1,""],TagFormSet:[315,1,1,""],TagInline:[315,1,1,""]},"evennia.typeclasses.admin.AttributeForm":{Meta:[315,1,1,""],__init__:[315,3,1,""],base_fields:[315,4,1,""],clean_attr_value:[315,3,1,""],declared_fields:[315,4,1,""],media:[315,3,1,""],save:[315,3,1,""]},"evennia.typeclasses.admin.AttributeForm.Meta":{fields:[315,4,1,""]},"evennia.typeclasses.admin.AttributeFormSet":{save:[315,3,1,""]},"evennia.typeclasses.admin.AttributeInline":{extra:[315,4,1,""],form:[315,4,1,""],formset:[315,4,1,""],get_formset:[315,3,1,""],media:[315,3,1,""],model:[315,4,1,""],related_field:[315,4,1,""]},"evennia.typeclasses.admin.TagAdmin":{fields:[315,4,1,""],list_display:[315,4,1,""],list_filter:[315,4,1,""],media:[315,3,1,""],search_fields:[315,4,1,""]},"evennia.typeclasses.admin.TagForm":{Meta:[315,1,1,""],__init__:[315,3,1,""],base_fields:[315,4,1,""],declared_fields:[315,4,1,""],media:[315,3,1,""],save:[315,3,1,""]},"evennia.typeclasses.admin.TagForm.Meta":{fields:[315,4,1,""]},"evennia.typeclasses.admin.TagFormSet":{save:[315,3,1,""]},"evennia.typeclasses.admin.TagInline":{extra:[315,4,1,""],form:[315,4,1,""],formset:[315,4,1,""],get_formset:[315,3,1,""],media:[315,3,1,""],model:[315,4,1,""],related_field:[315,4,1,""]},"evennia.typeclasses.attributes":{Attribute:[316,1,1,""],AttributeHandler:[316,1,1,""],NAttributeHandler:[316,1,1,""],NickHandler:[316,1,1,""],NickTemplateInvalid:[316,2,1,""],initialize_nick_templates:[316,5,1,""],parse_nick_template:[316,5,1,""]},"evennia.typeclasses.attributes.Attribute":{DoesNotExist:[316,2,1,""],MultipleObjectsReturned:[316,2,1,""],access:[316,3,1,""],accountdb_set:[316,4,1,""],attrtype:[316,3,1,""],category:[316,3,1,""],channeldb_set:[316,4,1,""],date_created:[316,3,1,""],db_attrtype:[316,4,1,""],db_category:[316,4,1,""],db_date_created:[316,4,1,""],db_key:[316,4,1,""],db_lock_storage:[316,4,1,""],db_model:[316,4,1,""],db_strvalue:[316,4,1,""],db_value:[316,4,1,""],get_next_by_db_date_created:[316,3,1,""],get_previous_by_db_date_created:[316,3,1,""],id:[316,4,1,""],key:[316,3,1,""],lock_storage:[316,3,1,""],locks:[316,4,1,""],model:[316,3,1,""],objectdb_set:[316,4,1,""],path:[316,4,1,""],scriptdb_set:[316,4,1,""],strvalue:[316,3,1,""],typename:[316,4,1,""],value:[316,3,1,""]},"evennia.typeclasses.attributes.AttributeHandler":{__init__:[316,3,1,""],add:[316,3,1,""],all:[316,3,1,""],batch_add:[316,3,1,""],clear:[316,3,1,""],get:[316,3,1,""],has:[316,3,1,""],remove:[316,3,1,""],reset_cache:[316,3,1,""]},"evennia.typeclasses.attributes.NAttributeHandler":{__init__:[316,3,1,""],add:[316,3,1,""],all:[316,3,1,""],clear:[316,3,1,""],get:[316,3,1,""],has:[316,3,1,""],remove:[316,3,1,""]},"evennia.typeclasses.attributes.NickHandler":{__init__:[316,3,1,""],add:[316,3,1,""],get:[316,3,1,""],has:[316,3,1,""],nickreplace:[316,3,1,""],remove:[316,3,1,""]},"evennia.typeclasses.managers":{TypedObjectManager:[317,1,1,""]},"evennia.typeclasses.managers.TypedObjectManager":{create_tag:[317,3,1,""],dbref:[317,3,1,""],dbref_search:[317,3,1,""],get_alias:[317,3,1,""],get_attribute:[317,3,1,""],get_by_alias:[317,3,1,""],get_by_attribute:[317,3,1,""],get_by_nick:[317,3,1,""],get_by_permission:[317,3,1,""],get_by_tag:[317,3,1,""],get_dbref_range:[317,3,1,""],get_id:[317,3,1,""],get_nick:[317,3,1,""],get_permission:[317,3,1,""],get_tag:[317,3,1,""],get_typeclass_totals:[317,3,1,""],object_totals:[317,3,1,""],typeclass_search:[317,3,1,""]},"evennia.typeclasses.models":{TypedObject:[318,1,1,""]},"evennia.typeclasses.models.TypedObject":{"delete":[318,3,1,""],Meta:[318,1,1,""],__init__:[318,3,1,""],access:[318,3,1,""],aliases:[318,4,1,""],at_idmapper_flush:[318,3,1,""],at_rename:[318,3,1,""],attributes:[318,4,1,""],check_permstring:[318,3,1,""],date_created:[318,3,1,""],db:[318,3,1,""],db_attributes:[318,4,1,""],db_date_created:[318,4,1,""],db_key:[318,4,1,""],db_lock_storage:[318,4,1,""],db_tags:[318,4,1,""],db_typeclass_path:[318,4,1,""],dbid:[318,3,1,""],dbref:[318,3,1,""],get_absolute_url:[318,3,1,""],get_display_name:[318,3,1,""],get_extra_info:[318,3,1,""],get_next_by_db_date_created:[318,3,1,""],get_previous_by_db_date_created:[318,3,1,""],is_typeclass:[318,3,1,""],key:[318,3,1,""],lock_storage:[318,3,1,""],locks:[318,4,1,""],name:[318,3,1,""],nattributes:[318,4,1,""],ndb:[318,3,1,""],objects:[318,4,1,""],path:[318,4,1,""],permissions:[318,4,1,""],set_class_from_typeclass:[318,3,1,""],swap_typeclass:[318,3,1,""],tags:[318,4,1,""],typeclass_path:[318,3,1,""],typename:[318,4,1,""],web_get_admin_url:[318,3,1,""],web_get_create_url:[318,3,1,""],web_get_delete_url:[318,3,1,""],web_get_detail_url:[318,3,1,""],web_get_puppet_url:[318,3,1,""],web_get_update_url:[318,3,1,""]},"evennia.typeclasses.models.TypedObject.Meta":{"abstract":[318,4,1,""],ordering:[318,4,1,""],verbose_name:[318,4,1,""]},"evennia.typeclasses.tags":{AliasHandler:[319,1,1,""],PermissionHandler:[319,1,1,""],Tag:[319,1,1,""],TagHandler:[319,1,1,""]},"evennia.typeclasses.tags.Tag":{DoesNotExist:[319,2,1,""],MultipleObjectsReturned:[319,2,1,""],accountdb_set:[319,4,1,""],channeldb_set:[319,4,1,""],db_category:[319,4,1,""],db_data:[319,4,1,""],db_key:[319,4,1,""],db_model:[319,4,1,""],db_tagtype:[319,4,1,""],helpentry_set:[319,4,1,""],id:[319,4,1,""],msg_set:[319,4,1,""],objectdb_set:[319,4,1,""],objects:[319,4,1,""],scriptdb_set:[319,4,1,""]},"evennia.typeclasses.tags.TagHandler":{__init__:[319,3,1,""],add:[319,3,1,""],all:[319,3,1,""],batch_add:[319,3,1,""],clear:[319,3,1,""],get:[319,3,1,""],remove:[319,3,1,""],reset_cache:[319,3,1,""]},"evennia.utils":{ansi:[321,0,0,"-"],batchprocessors:[322,0,0,"-"],containers:[323,0,0,"-"],create:[324,0,0,"-"],dbserialize:[325,0,0,"-"],eveditor:[326,0,0,"-"],evform:[327,0,0,"-"],evmenu:[328,0,0,"-"],evmore:[329,0,0,"-"],evtable:[330,0,0,"-"],gametime:[331,0,0,"-"],idmapper:[332,0,0,"-"],inlinefuncs:[336,0,0,"-"],logger:[337,0,0,"-"],optionclasses:[338,0,0,"-"],optionhandler:[339,0,0,"-"],picklefield:[340,0,0,"-"],search:[341,0,0,"-"],test_resources:[342,0,0,"-"],text2html:[343,0,0,"-"],utils:[344,0,0,"-"],validatorfuncs:[345,0,0,"-"]},"evennia.utils.ansi":{ANSIMeta:[321,1,1,""],ANSIParser:[321,1,1,""],ANSIString:[321,1,1,""],parse_ansi:[321,5,1,""],raw:[321,5,1,""],strip_ansi:[321,5,1,""],strip_raw_ansi:[321,5,1,""]},"evennia.utils.ansi.ANSIMeta":{__init__:[321,3,1,""]},"evennia.utils.ansi.ANSIParser":{ansi_escapes:[321,4,1,""],ansi_map:[321,4,1,""],ansi_map_dict:[321,4,1,""],ansi_re:[321,4,1,""],ansi_regex:[321,4,1,""],ansi_sub:[321,4,1,""],ansi_xterm256_bright_bg_map:[321,4,1,""],ansi_xterm256_bright_bg_map_dict:[321,4,1,""],brightbg_sub:[321,4,1,""],mxp_re:[321,4,1,""],mxp_sub:[321,4,1,""],parse_ansi:[321,3,1,""],strip_mxp:[321,3,1,""],strip_raw_codes:[321,3,1,""],sub_ansi:[321,3,1,""],sub_brightbg:[321,3,1,""],sub_xterm256:[321,3,1,""],xterm256_bg:[321,4,1,""],xterm256_bg_sub:[321,4,1,""],xterm256_fg:[321,4,1,""],xterm256_fg_sub:[321,4,1,""],xterm256_gbg:[321,4,1,""],xterm256_gbg_sub:[321,4,1,""],xterm256_gfg:[321,4,1,""],xterm256_gfg_sub:[321,4,1,""]},"evennia.utils.ansi.ANSIString":{__init__:[321,3,1,""],capitalize:[321,3,1,""],center:[321,3,1,""],clean:[321,3,1,""],count:[321,3,1,""],decode:[321,3,1,""],encode:[321,3,1,""],endswith:[321,3,1,""],expandtabs:[321,3,1,""],find:[321,3,1,""],format:[321,3,1,""],index:[321,3,1,""],isalnum:[321,3,1,""],isalpha:[321,3,1,""],isdigit:[321,3,1,""],islower:[321,3,1,""],isspace:[321,3,1,""],istitle:[321,3,1,""],isupper:[321,3,1,""],join:[321,3,1,""],ljust:[321,3,1,""],lower:[321,3,1,""],lstrip:[321,3,1,""],partition:[321,3,1,""],raw:[321,3,1,""],re_format:[321,4,1,""],replace:[321,3,1,""],rfind:[321,3,1,""],rindex:[321,3,1,""],rjust:[321,3,1,""],rsplit:[321,3,1,""],rstrip:[321,3,1,""],split:[321,3,1,""],startswith:[321,3,1,""],strip:[321,3,1,""],swapcase:[321,3,1,""],translate:[321,3,1,""],upper:[321,3,1,""]},"evennia.utils.batchprocessors":{BatchCodeProcessor:[322,1,1,""],BatchCommandProcessor:[322,1,1,""],read_batchfile:[322,5,1,""],tb_filename:[322,5,1,""],tb_iter:[322,5,1,""]},"evennia.utils.batchprocessors.BatchCodeProcessor":{code_exec:[322,3,1,""],parse_file:[322,3,1,""]},"evennia.utils.batchprocessors.BatchCommandProcessor":{parse_file:[322,3,1,""]},"evennia.utils.containers":{Container:[323,1,1,""],GlobalScriptContainer:[323,1,1,""],OptionContainer:[323,1,1,""]},"evennia.utils.containers.Container":{__init__:[323,3,1,""],all:[323,3,1,""],get:[323,3,1,""],load_data:[323,3,1,""],storage_modules:[323,4,1,""]},"evennia.utils.containers.GlobalScriptContainer":{__init__:[323,3,1,""],all:[323,3,1,""],get:[323,3,1,""],load_data:[323,3,1,""],start:[323,3,1,""]},"evennia.utils.containers.OptionContainer":{storage_modules:[323,4,1,""]},"evennia.utils.create":{create_account:[324,5,1,""],create_channel:[324,5,1,""],create_help_entry:[324,5,1,""],create_message:[324,5,1,""],create_object:[324,5,1,""],create_script:[324,5,1,""]},"evennia.utils.dbserialize":{dbserialize:[325,5,1,""],dbunserialize:[325,5,1,""],do_pickle:[325,5,1,""],do_unpickle:[325,5,1,""],from_pickle:[325,5,1,""],to_pickle:[325,5,1,""]},"evennia.utils.eveditor":{CmdEditorBase:[326,1,1,""],CmdEditorGroup:[326,1,1,""],CmdLineInput:[326,1,1,""],CmdSaveYesNo:[326,1,1,""],EvEditor:[326,1,1,""],EvEditorCmdSet:[326,1,1,""],SaveYesNoCmdSet:[326,1,1,""]},"evennia.utils.eveditor.CmdEditorBase":{aliases:[326,4,1,""],editor:[326,4,1,""],help_category:[326,4,1,""],help_entry:[326,4,1,""],key:[326,4,1,""],lock_storage:[326,4,1,""],locks:[326,4,1,""],parse:[326,3,1,""]},"evennia.utils.eveditor.CmdEditorGroup":{aliases:[326,4,1,""],arg_regex:[326,4,1,""],func:[326,3,1,""],help_category:[326,4,1,""],key:[326,4,1,""],lock_storage:[326,4,1,""]},"evennia.utils.eveditor.CmdLineInput":{aliases:[326,4,1,""],func:[326,3,1,""],help_category:[326,4,1,""],key:[326,4,1,""],lock_storage:[326,4,1,""]},"evennia.utils.eveditor.CmdSaveYesNo":{aliases:[326,4,1,""],func:[326,3,1,""],help_category:[326,4,1,""],help_cateogory:[326,4,1,""],key:[326,4,1,""],lock_storage:[326,4,1,""],locks:[326,4,1,""]},"evennia.utils.eveditor.EvEditor":{__init__:[326,3,1,""],decrease_indent:[326,3,1,""],deduce_indent:[326,3,1,""],display_buffer:[326,3,1,""],display_help:[326,3,1,""],get_buffer:[326,3,1,""],increase_indent:[326,3,1,""],load_buffer:[326,3,1,""],quit:[326,3,1,""],save_buffer:[326,3,1,""],swap_autoindent:[326,3,1,""],update_buffer:[326,3,1,""],update_undo:[326,3,1,""]},"evennia.utils.eveditor.EvEditorCmdSet":{at_cmdset_creation:[326,3,1,""],key:[326,4,1,""],mergetype:[326,4,1,""],path:[326,4,1,""]},"evennia.utils.eveditor.SaveYesNoCmdSet":{at_cmdset_creation:[326,3,1,""],key:[326,4,1,""],mergetype:[326,4,1,""],path:[326,4,1,""],priority:[326,4,1,""]},"evennia.utils.evform":{EvForm:[327,1,1,""]},"evennia.utils.evform.EvForm":{__init__:[327,3,1,""],map:[327,3,1,""],reload:[327,3,1,""]},"evennia.utils.evmenu":{CmdEvMenuNode:[328,1,1,""],CmdGetInput:[328,1,1,""],EvMenu:[328,1,1,""],EvMenuCmdSet:[328,1,1,""],EvMenuError:[328,2,1,""],EvMenuGotoAbortMessage:[328,2,1,""],InputCmdSet:[328,1,1,""],get_input:[328,5,1,""],list_node:[328,5,1,""],parse_menu_template:[328,5,1,""],template2menu:[328,5,1,""]},"evennia.utils.evmenu.CmdEvMenuNode":{aliases:[328,4,1,""],auto_help_display_key:[328,4,1,""],func:[328,3,1,""],get_help:[328,3,1,""],help_category:[328,4,1,""],key:[328,4,1,""],lock_storage:[328,4,1,""],locks:[328,4,1,""]},"evennia.utils.evmenu.CmdGetInput":{aliases:[328,4,1,""],func:[328,3,1,""],help_category:[328,4,1,""],key:[328,4,1,""],lock_storage:[328,4,1,""]},"evennia.utils.evmenu.EvMenu":{"goto":[328,3,1,""],__init__:[328,3,1,""],close_menu:[328,3,1,""],display_helptext:[328,3,1,""],display_nodetext:[328,3,1,""],extract_goto_exec:[328,3,1,""],helptext_formatter:[328,3,1,""],msg:[328,3,1,""],node_border_char:[328,4,1,""],node_formatter:[328,3,1,""],nodetext_formatter:[328,3,1,""],options_formatter:[328,3,1,""],parse_input:[328,3,1,""],print_debug_info:[328,3,1,""],run_exec:[328,3,1,""],run_exec_then_goto:[328,3,1,""]},"evennia.utils.evmenu.EvMenuCmdSet":{at_cmdset_creation:[328,3,1,""],key:[328,4,1,""],mergetype:[328,4,1,""],no_channels:[328,4,1,""],no_exits:[328,4,1,""],no_objs:[328,4,1,""],path:[328,4,1,""],priority:[328,4,1,""]},"evennia.utils.evmenu.InputCmdSet":{at_cmdset_creation:[328,3,1,""],key:[328,4,1,""],mergetype:[328,4,1,""],no_channels:[328,4,1,""],no_exits:[328,4,1,""],no_objs:[328,4,1,""],path:[328,4,1,""],priority:[328,4,1,""]},"evennia.utils.evmore":{CmdMore:[329,1,1,""],CmdMoreLook:[329,1,1,""],CmdSetMore:[329,1,1,""],EvMore:[329,1,1,""],msg:[329,5,1,""],queryset_maxsize:[329,5,1,""]},"evennia.utils.evmore.CmdMore":{aliases:[329,4,1,""],auto_help:[329,4,1,""],func:[329,3,1,""],help_category:[329,4,1,""],key:[329,4,1,""],lock_storage:[329,4,1,""]},"evennia.utils.evmore.CmdMoreLook":{aliases:[329,4,1,""],auto_help:[329,4,1,""],func:[329,3,1,""],help_category:[329,4,1,""],key:[329,4,1,""],lock_storage:[329,4,1,""]},"evennia.utils.evmore.CmdSetMore":{at_cmdset_creation:[329,3,1,""],key:[329,4,1,""],path:[329,4,1,""],priority:[329,4,1,""]},"evennia.utils.evmore.EvMore":{__init__:[329,3,1,""],display:[329,3,1,""],init_django_paginator:[329,3,1,""],init_evtable:[329,3,1,""],init_f_str:[329,3,1,""],init_iterable:[329,3,1,""],init_pages:[329,3,1,""],init_queryset:[329,3,1,""],init_str:[329,3,1,""],page_back:[329,3,1,""],page_end:[329,3,1,""],page_formatter:[329,3,1,""],page_next:[329,3,1,""],page_quit:[329,3,1,""],page_top:[329,3,1,""],paginator:[329,3,1,""],paginator_django:[329,3,1,""],paginator_index:[329,3,1,""],paginator_slice:[329,3,1,""],start:[329,3,1,""]},"evennia.utils.evtable":{ANSITextWrapper:[330,1,1,""],EvCell:[330,1,1,""],EvColumn:[330,1,1,""],EvTable:[330,1,1,""],fill:[330,5,1,""],wrap:[330,5,1,""]},"evennia.utils.evtable.EvCell":{__init__:[330,3,1,""],get:[330,3,1,""],get_height:[330,3,1,""],get_min_height:[330,3,1,""],get_min_width:[330,3,1,""],get_width:[330,3,1,""],reformat:[330,3,1,""],replace_data:[330,3,1,""]},"evennia.utils.evtable.EvColumn":{__init__:[330,3,1,""],add_rows:[330,3,1,""],reformat:[330,3,1,""],reformat_cell:[330,3,1,""]},"evennia.utils.evtable.EvTable":{__init__:[330,3,1,""],add_column:[330,3,1,""],add_header:[330,3,1,""],add_row:[330,3,1,""],get:[330,3,1,""],reformat:[330,3,1,""],reformat_column:[330,3,1,""]},"evennia.utils.gametime":{TimeScript:[331,1,1,""],game_epoch:[331,5,1,""],gametime:[331,5,1,""],portal_uptime:[331,5,1,""],real_seconds_until:[331,5,1,""],reset_gametime:[331,5,1,""],runtime:[331,5,1,""],schedule:[331,5,1,""],server_epoch:[331,5,1,""],uptime:[331,5,1,""]},"evennia.utils.gametime.TimeScript":{DoesNotExist:[331,2,1,""],MultipleObjectsReturned:[331,2,1,""],at_repeat:[331,3,1,""],at_script_creation:[331,3,1,""],path:[331,4,1,""],typename:[331,4,1,""]},"evennia.utils.idmapper":{manager:[333,0,0,"-"],models:[334,0,0,"-"],tests:[335,0,0,"-"]},"evennia.utils.idmapper.manager":{SharedMemoryManager:[333,1,1,""]},"evennia.utils.idmapper.manager.SharedMemoryManager":{get:[333,3,1,""]},"evennia.utils.idmapper.models":{SharedMemoryModel:[334,1,1,""],SharedMemoryModelBase:[334,1,1,""],WeakSharedMemoryModel:[334,1,1,""],WeakSharedMemoryModelBase:[334,1,1,""],cache_size:[334,5,1,""],conditional_flush:[334,5,1,""],flush_cache:[334,5,1,""],flush_cached_instance:[334,5,1,""],update_cached_instance:[334,5,1,""]},"evennia.utils.idmapper.models.SharedMemoryModel":{"delete":[334,3,1,""],Meta:[334,1,1,""],at_idmapper_flush:[334,3,1,""],cache_instance:[334,3,1,""],flush_cached_instance:[334,3,1,""],flush_from_cache:[334,3,1,""],flush_instance_cache:[334,3,1,""],get_all_cached_instances:[334,3,1,""],get_cached_instance:[334,3,1,""],objects:[334,4,1,""],path:[334,4,1,""],save:[334,3,1,""],typename:[334,4,1,""]},"evennia.utils.idmapper.models.SharedMemoryModel.Meta":{"abstract":[334,4,1,""]},"evennia.utils.idmapper.models.WeakSharedMemoryModel":{Meta:[334,1,1,""],path:[334,4,1,""],typename:[334,4,1,""]},"evennia.utils.idmapper.models.WeakSharedMemoryModel.Meta":{"abstract":[334,4,1,""]},"evennia.utils.idmapper.tests":{Article:[335,1,1,""],Category:[335,1,1,""],RegularArticle:[335,1,1,""],RegularCategory:[335,1,1,""],SharedMemorysTest:[335,1,1,""]},"evennia.utils.idmapper.tests.Article":{DoesNotExist:[335,2,1,""],MultipleObjectsReturned:[335,2,1,""],category2:[335,4,1,""],category2_id:[335,4,1,""],category:[335,4,1,""],category_id:[335,4,1,""],id:[335,4,1,""],name:[335,4,1,""],path:[335,4,1,""],typename:[335,4,1,""]},"evennia.utils.idmapper.tests.Category":{DoesNotExist:[335,2,1,""],MultipleObjectsReturned:[335,2,1,""],article_set:[335,4,1,""],id:[335,4,1,""],name:[335,4,1,""],path:[335,4,1,""],regulararticle_set:[335,4,1,""],typename:[335,4,1,""]},"evennia.utils.idmapper.tests.RegularArticle":{DoesNotExist:[335,2,1,""],MultipleObjectsReturned:[335,2,1,""],category2:[335,4,1,""],category2_id:[335,4,1,""],category:[335,4,1,""],category_id:[335,4,1,""],id:[335,4,1,""],name:[335,4,1,""],objects:[335,4,1,""]},"evennia.utils.idmapper.tests.RegularCategory":{DoesNotExist:[335,2,1,""],MultipleObjectsReturned:[335,2,1,""],article_set:[335,4,1,""],id:[335,4,1,""],name:[335,4,1,""],objects:[335,4,1,""],regulararticle_set:[335,4,1,""]},"evennia.utils.idmapper.tests.SharedMemorysTest":{setUp:[335,3,1,""],testMixedReferences:[335,3,1,""],testObjectDeletion:[335,3,1,""],testRegularReferences:[335,3,1,""],testSharedMemoryReferences:[335,3,1,""]},"evennia.utils.inlinefuncs":{"null":[336,5,1,""],InlinefuncError:[336,2,1,""],NickTemplateInvalid:[336,2,1,""],ParseStack:[336,1,1,""],clr:[336,5,1,""],crop:[336,5,1,""],initialize_nick_templates:[336,5,1,""],nomatch:[336,5,1,""],pad:[336,5,1,""],parse_inlinefunc:[336,5,1,""],parse_nick_template:[336,5,1,""],random:[336,5,1,""],raw:[336,5,1,""],space:[336,5,1,""]},"evennia.utils.inlinefuncs.ParseStack":{__init__:[336,3,1,""],append:[336,3,1,""]},"evennia.utils.logger":{EvenniaLogFile:[337,1,1,""],PortalLogObserver:[337,1,1,""],ServerLogObserver:[337,1,1,""],WeeklyLogFile:[337,1,1,""],log_dep:[337,5,1,""],log_depmsg:[337,5,1,""],log_err:[337,5,1,""],log_errmsg:[337,5,1,""],log_file:[337,5,1,""],log_info:[337,5,1,""],log_infomsg:[337,5,1,""],log_msg:[337,5,1,""],log_sec:[337,5,1,""],log_secmsg:[337,5,1,""],log_server:[337,5,1,""],log_trace:[337,5,1,""],log_tracemsg:[337,5,1,""],log_warn:[337,5,1,""],log_warnmsg:[337,5,1,""],tail_log_file:[337,5,1,""],timeformat:[337,5,1,""]},"evennia.utils.logger.EvenniaLogFile":{num_lines_to_append:[337,4,1,""],readlines:[337,3,1,""],rotate:[337,3,1,""],seek:[337,3,1,""],settings:[337,4,1,""]},"evennia.utils.logger.PortalLogObserver":{emit:[337,3,1,""],prefix:[337,4,1,""],timeFormat:[337,4,1,""]},"evennia.utils.logger.ServerLogObserver":{prefix:[337,4,1,""]},"evennia.utils.logger.WeeklyLogFile":{__init__:[337,3,1,""],shouldRotate:[337,3,1,""],suffix:[337,3,1,""],write:[337,3,1,""]},"evennia.utils.optionclasses":{BaseOption:[338,1,1,""],Boolean:[338,1,1,""],Color:[338,1,1,""],Datetime:[338,1,1,""],Duration:[338,1,1,""],Email:[338,1,1,""],Future:[338,1,1,""],Lock:[338,1,1,""],PositiveInteger:[338,1,1,""],SignedInteger:[338,1,1,""],Text:[338,1,1,""],Timezone:[338,1,1,""],UnsignedInteger:[338,1,1,""]},"evennia.utils.optionclasses.BaseOption":{"default":[338,3,1,""],__init__:[338,3,1,""],changed:[338,3,1,""],deserialize:[338,3,1,""],display:[338,3,1,""],load:[338,3,1,""],save:[338,3,1,""],serialize:[338,3,1,""],set:[338,3,1,""],validate:[338,3,1,""],value:[338,3,1,""]},"evennia.utils.optionclasses.Boolean":{deserialize:[338,3,1,""],display:[338,3,1,""],serialize:[338,3,1,""],validate:[338,3,1,""]},"evennia.utils.optionclasses.Color":{deserialize:[338,3,1,""],display:[338,3,1,""],validate:[338,3,1,""]},"evennia.utils.optionclasses.Datetime":{deserialize:[338,3,1,""],serialize:[338,3,1,""],validate:[338,3,1,""]},"evennia.utils.optionclasses.Duration":{deserialize:[338,3,1,""],serialize:[338,3,1,""],validate:[338,3,1,""]},"evennia.utils.optionclasses.Email":{deserialize:[338,3,1,""],validate:[338,3,1,""]},"evennia.utils.optionclasses.Future":{validate:[338,3,1,""]},"evennia.utils.optionclasses.Lock":{validate:[338,3,1,""]},"evennia.utils.optionclasses.PositiveInteger":{deserialize:[338,3,1,""],validate:[338,3,1,""]},"evennia.utils.optionclasses.SignedInteger":{deserialize:[338,3,1,""],validate:[338,3,1,""]},"evennia.utils.optionclasses.Text":{deserialize:[338,3,1,""]},"evennia.utils.optionclasses.Timezone":{"default":[338,3,1,""],deserialize:[338,3,1,""],serialize:[338,3,1,""],validate:[338,3,1,""]},"evennia.utils.optionclasses.UnsignedInteger":{deserialize:[338,3,1,""],validate:[338,3,1,""],validator_key:[338,4,1,""]},"evennia.utils.optionhandler":{InMemorySaveHandler:[339,1,1,""],OptionHandler:[339,1,1,""]},"evennia.utils.optionhandler.InMemorySaveHandler":{__init__:[339,3,1,""],add:[339,3,1,""],get:[339,3,1,""]},"evennia.utils.optionhandler.OptionHandler":{__init__:[339,3,1,""],all:[339,3,1,""],get:[339,3,1,""],set:[339,3,1,""]},"evennia.utils.picklefield":{PickledFormField:[340,1,1,""],PickledObject:[340,1,1,""],PickledObjectField:[340,1,1,""],PickledWidget:[340,1,1,""],dbsafe_decode:[340,5,1,""],dbsafe_encode:[340,5,1,""],wrap_conflictual_object:[340,5,1,""]},"evennia.utils.picklefield.PickledFormField":{__init__:[340,3,1,""],clean:[340,3,1,""],default_error_messages:[340,4,1,""],widget:[340,4,1,""]},"evennia.utils.picklefield.PickledObjectField":{__init__:[340,3,1,""],formfield:[340,3,1,""],from_db_value:[340,3,1,""],get_db_prep_lookup:[340,3,1,""],get_db_prep_value:[340,3,1,""],get_default:[340,3,1,""],get_internal_type:[340,3,1,""],pre_save:[340,3,1,""],value_to_string:[340,3,1,""]},"evennia.utils.picklefield.PickledWidget":{media:[340,3,1,""],render:[340,3,1,""],value_from_datadict:[340,3,1,""]},"evennia.utils.search":{search_account:[341,5,1,""],search_account_tag:[341,5,1,""],search_channel:[341,5,1,""],search_channel_tag:[341,5,1,""],search_help_entry:[341,5,1,""],search_message:[341,5,1,""],search_object:[341,5,1,""],search_script:[341,5,1,""],search_script_tag:[341,5,1,""]},"evennia.utils.test_resources":{EvenniaTest:[342,1,1,""],LocalEvenniaTest:[342,1,1,""],mockdeferLater:[342,5,1,""],mockdelay:[342,5,1,""],unload_module:[342,5,1,""]},"evennia.utils.test_resources.EvenniaTest":{account_typeclass:[342,4,1,""],character_typeclass:[342,4,1,""],exit_typeclass:[342,4,1,""],object_typeclass:[342,4,1,""],room_typeclass:[342,4,1,""],script_typeclass:[342,4,1,""],setUp:[342,3,1,""],tearDown:[342,3,1,""]},"evennia.utils.test_resources.LocalEvenniaTest":{account_typeclass:[342,4,1,""],character_typeclass:[342,4,1,""],exit_typeclass:[342,4,1,""],object_typeclass:[342,4,1,""],room_typeclass:[342,4,1,""],script_typeclass:[342,4,1,""]},"evennia.utils.text2html":{TextToHTMLparser:[343,1,1,""],parse_html:[343,5,1,""]},"evennia.utils.text2html.TextToHTMLparser":{bg_colormap:[343,4,1,""],bgfgstart:[343,4,1,""],bgfgstop:[343,4,1,""],bgstart:[343,4,1,""],bgstop:[343,4,1,""],blink:[343,4,1,""],colorback:[343,4,1,""],colorcodes:[343,4,1,""],convert_linebreaks:[343,3,1,""],convert_urls:[343,3,1,""],fg_colormap:[343,4,1,""],fgstart:[343,4,1,""],fgstop:[343,4,1,""],hilite:[343,4,1,""],inverse:[343,4,1,""],normal:[343,4,1,""],parse:[343,3,1,""],re_bgfg:[343,4,1,""],re_bgs:[343,4,1,""],re_blink:[343,4,1,""],re_blinking:[343,3,1,""],re_bold:[343,3,1,""],re_color:[343,3,1,""],re_dblspace:[343,4,1,""],re_double_space:[343,3,1,""],re_fgs:[343,4,1,""],re_hilite:[343,4,1,""],re_inverse:[343,4,1,""],re_inversing:[343,3,1,""],re_mxplink:[343,4,1,""],re_normal:[343,4,1,""],re_string:[343,4,1,""],re_uline:[343,4,1,""],re_underline:[343,3,1,""],re_unhilite:[343,4,1,""],re_url:[343,4,1,""],remove_backspaces:[343,3,1,""],remove_bells:[343,3,1,""],sub_dblspace:[343,3,1,""],sub_mxp_links:[343,3,1,""],sub_text:[343,3,1,""],tabstop:[343,4,1,""],underline:[343,4,1,""],unhilite:[343,4,1,""]},"evennia.utils.utils":{LimitedSizeOrderedDict:[344,1,1,""],all_from_module:[344,5,1,""],at_search_result:[344,5,1,""],callables_from_module:[344,5,1,""],calledby:[344,5,1,""],check_evennia_dependencies:[344,5,1,""],class_from_module:[344,5,1,""],columnize:[344,5,1,""],crop:[344,5,1,""],datetime_format:[344,5,1,""],dbid_to_obj:[344,5,1,""],dbref:[344,5,1,""],dbref_to_obj:[344,5,1,""],dedent:[344,5,1,""],deepsize:[344,5,1,""],delay:[344,5,1,""],display_len:[344,5,1,""],fill:[344,5,1,""],format_table:[344,5,1,""],fuzzy_import_from_module:[344,5,1,""],get_all_typeclasses:[344,5,1,""],get_evennia_pids:[344,5,1,""],get_evennia_version:[344,5,1,""],get_game_dir_path:[344,5,1,""],has_parent:[344,5,1,""],host_os_is:[344,5,1,""],inherits_from:[344,5,1,""],init_new_account:[344,5,1,""],interactive:[344,5,1,""],is_iter:[344,5,1,""],iter_to_string:[344,5,1,""],justify:[344,5,1,""],latinify:[344,5,1,""],lazy_property:[344,1,1,""],list_to_string:[344,5,1,""],m_len:[344,5,1,""],make_iter:[344,5,1,""],mod_import:[344,5,1,""],mod_import_from_path:[344,5,1,""],object_from_module:[344,5,1,""],pad:[344,5,1,""],pypath_to_realpath:[344,5,1,""],random_string_from_module:[344,5,1,""],run_async:[344,5,1,""],server_services:[344,5,1,""],string_from_module:[344,5,1,""],string_partial_matching:[344,5,1,""],string_similarity:[344,5,1,""],string_suggestions:[344,5,1,""],strip_control_sequences:[344,5,1,""],time_format:[344,5,1,""],to_bytes:[344,5,1,""],to_str:[344,5,1,""],uses_database:[344,5,1,""],validate_email_address:[344,5,1,""],variable_from_module:[344,5,1,""],wildcard_to_regexp:[344,5,1,""],wrap:[344,5,1,""]},"evennia.utils.utils.LimitedSizeOrderedDict":{__init__:[344,3,1,""],update:[344,3,1,""]},"evennia.utils.utils.lazy_property":{__init__:[344,3,1,""]},"evennia.utils.validatorfuncs":{"boolean":[345,5,1,""],color:[345,5,1,""],datetime:[345,5,1,""],duration:[345,5,1,""],email:[345,5,1,""],future:[345,5,1,""],lock:[345,5,1,""],positive_integer:[345,5,1,""],signed_integer:[345,5,1,""],text:[345,5,1,""],timezone:[345,5,1,""],unsigned_integer:[345,5,1,""]},"evennia.web":{urls:[347,0,0,"-"],utils:[348,0,0,"-"],webclient:[353,0,0,"-"],website:[356,0,0,"-"]},"evennia.web.utils":{backends:[349,0,0,"-"],general_context:[350,0,0,"-"],middleware:[351,0,0,"-"],tests:[352,0,0,"-"]},"evennia.web.utils.backends":{CaseInsensitiveModelBackend:[349,1,1,""]},"evennia.web.utils.backends.CaseInsensitiveModelBackend":{authenticate:[349,3,1,""]},"evennia.web.utils.general_context":{general_context:[350,5,1,""],set_game_name_and_slogan:[350,5,1,""],set_webclient_settings:[350,5,1,""]},"evennia.web.utils.middleware":{SharedLoginMiddleware:[351,1,1,""]},"evennia.web.utils.middleware.SharedLoginMiddleware":{__init__:[351,3,1,""],make_shared_login:[351,3,1,""]},"evennia.web.utils.tests":{TestGeneralContext:[352,1,1,""]},"evennia.web.utils.tests.TestGeneralContext":{maxDiff:[352,4,1,""],test_general_context:[352,3,1,""],test_set_game_name_and_slogan:[352,3,1,""],test_set_webclient_settings:[352,3,1,""]},"evennia.web.webclient":{urls:[354,0,0,"-"],views:[355,0,0,"-"]},"evennia.web.webclient.views":{webclient:[355,5,1,""]},"evennia.web.website":{forms:[357,0,0,"-"],templatetags:[358,0,0,"-"],tests:[360,0,0,"-"],urls:[361,0,0,"-"],views:[362,0,0,"-"]},"evennia.web.website.forms":{AccountForm:[357,1,1,""],CharacterForm:[357,1,1,""],CharacterUpdateForm:[357,1,1,""],EvenniaForm:[357,1,1,""],ObjectForm:[357,1,1,""]},"evennia.web.website.forms.AccountForm":{Meta:[357,1,1,""],base_fields:[357,4,1,""],declared_fields:[357,4,1,""],media:[357,3,1,""]},"evennia.web.website.forms.AccountForm.Meta":{field_classes:[357,4,1,""],fields:[357,4,1,""],model:[357,4,1,""]},"evennia.web.website.forms.CharacterForm":{Meta:[357,1,1,""],base_fields:[357,4,1,""],declared_fields:[357,4,1,""],media:[357,3,1,""]},"evennia.web.website.forms.CharacterForm.Meta":{fields:[357,4,1,""],labels:[357,4,1,""],model:[357,4,1,""]},"evennia.web.website.forms.CharacterUpdateForm":{base_fields:[357,4,1,""],declared_fields:[357,4,1,""],media:[357,3,1,""]},"evennia.web.website.forms.EvenniaForm":{base_fields:[357,4,1,""],clean:[357,3,1,""],declared_fields:[357,4,1,""],media:[357,3,1,""]},"evennia.web.website.forms.ObjectForm":{Meta:[357,1,1,""],base_fields:[357,4,1,""],declared_fields:[357,4,1,""],media:[357,3,1,""]},"evennia.web.website.forms.ObjectForm.Meta":{fields:[357,4,1,""],labels:[357,4,1,""],model:[357,4,1,""]},"evennia.web.website.templatetags":{addclass:[359,0,0,"-"]},"evennia.web.website.templatetags.addclass":{addclass:[359,5,1,""]},"evennia.web.website.tests":{AdminTest:[360,1,1,""],ChannelDetailTest:[360,1,1,""],ChannelListTest:[360,1,1,""],CharacterCreateView:[360,1,1,""],CharacterDeleteView:[360,1,1,""],CharacterListView:[360,1,1,""],CharacterManageView:[360,1,1,""],CharacterPuppetView:[360,1,1,""],CharacterUpdateView:[360,1,1,""],EvenniaWebTest:[360,1,1,""],IndexTest:[360,1,1,""],LoginTest:[360,1,1,""],LogoutTest:[360,1,1,""],PasswordResetTest:[360,1,1,""],RegisterTest:[360,1,1,""],WebclientTest:[360,1,1,""]},"evennia.web.website.tests.AdminTest":{unauthenticated_response:[360,4,1,""],url_name:[360,4,1,""]},"evennia.web.website.tests.ChannelDetailTest":{get_kwargs:[360,3,1,""],setUp:[360,3,1,""],url_name:[360,4,1,""]},"evennia.web.website.tests.ChannelListTest":{url_name:[360,4,1,""]},"evennia.web.website.tests.CharacterCreateView":{test_valid_access_multisession_0:[360,3,1,""],test_valid_access_multisession_2:[360,3,1,""],unauthenticated_response:[360,4,1,""],url_name:[360,4,1,""]},"evennia.web.website.tests.CharacterDeleteView":{get_kwargs:[360,3,1,""],test_invalid_access:[360,3,1,""],test_valid_access:[360,3,1,""],unauthenticated_response:[360,4,1,""],url_name:[360,4,1,""]},"evennia.web.website.tests.CharacterListView":{unauthenticated_response:[360,4,1,""],url_name:[360,4,1,""]},"evennia.web.website.tests.CharacterManageView":{unauthenticated_response:[360,4,1,""],url_name:[360,4,1,""]},"evennia.web.website.tests.CharacterPuppetView":{get_kwargs:[360,3,1,""],test_invalid_access:[360,3,1,""],unauthenticated_response:[360,4,1,""],url_name:[360,4,1,""]},"evennia.web.website.tests.CharacterUpdateView":{get_kwargs:[360,3,1,""],test_invalid_access:[360,3,1,""],test_valid_access:[360,3,1,""],unauthenticated_response:[360,4,1,""],url_name:[360,4,1,""]},"evennia.web.website.tests.EvenniaWebTest":{account_typeclass:[360,4,1,""],authenticated_response:[360,4,1,""],channel_typeclass:[360,4,1,""],character_typeclass:[360,4,1,""],exit_typeclass:[360,4,1,""],get_kwargs:[360,3,1,""],login:[360,3,1,""],object_typeclass:[360,4,1,""],room_typeclass:[360,4,1,""],script_typeclass:[360,4,1,""],setUp:[360,3,1,""],test_get:[360,3,1,""],test_get_authenticated:[360,3,1,""],test_valid_chars:[360,3,1,""],unauthenticated_response:[360,4,1,""],url_name:[360,4,1,""]},"evennia.web.website.tests.IndexTest":{url_name:[360,4,1,""]},"evennia.web.website.tests.LoginTest":{url_name:[360,4,1,""]},"evennia.web.website.tests.LogoutTest":{url_name:[360,4,1,""]},"evennia.web.website.tests.PasswordResetTest":{unauthenticated_response:[360,4,1,""],url_name:[360,4,1,""]},"evennia.web.website.tests.RegisterTest":{url_name:[360,4,1,""]},"evennia.web.website.tests.WebclientTest":{test_get:[360,3,1,""],test_get_disabled:[360,3,1,""],url_name:[360,4,1,""]},"evennia.web.website.views":{AccountCreateView:[362,1,1,""],AccountMixin:[362,1,1,""],ChannelDetailView:[362,1,1,""],ChannelListView:[362,1,1,""],ChannelMixin:[362,1,1,""],CharacterCreateView:[362,1,1,""],CharacterDeleteView:[362,1,1,""],CharacterDetailView:[362,1,1,""],CharacterListView:[362,1,1,""],CharacterManageView:[362,1,1,""],CharacterMixin:[362,1,1,""],CharacterPuppetView:[362,1,1,""],CharacterUpdateView:[362,1,1,""],EvenniaCreateView:[362,1,1,""],EvenniaDeleteView:[362,1,1,""],EvenniaDetailView:[362,1,1,""],EvenniaIndexView:[362,1,1,""],EvenniaUpdateView:[362,1,1,""],HelpDetailView:[362,1,1,""],HelpListView:[362,1,1,""],HelpMixin:[362,1,1,""],ObjectCreateView:[362,1,1,""],ObjectDeleteView:[362,1,1,""],ObjectDetailView:[362,1,1,""],ObjectUpdateView:[362,1,1,""],TypeclassMixin:[362,1,1,""],admin_wrapper:[362,5,1,""],evennia_admin:[362,5,1,""],to_be_implemented:[362,5,1,""]},"evennia.web.website.views.AccountCreateView":{form_valid:[362,3,1,""],success_url:[362,4,1,""],template_name:[362,4,1,""]},"evennia.web.website.views.AccountMixin":{form_class:[362,4,1,""],model:[362,4,1,""]},"evennia.web.website.views.ChannelDetailView":{attributes:[362,4,1,""],get_context_data:[362,3,1,""],get_object:[362,3,1,""],max_num_lines:[362,4,1,""],template_name:[362,4,1,""]},"evennia.web.website.views.ChannelListView":{get_context_data:[362,3,1,""],max_popular:[362,4,1,""],page_title:[362,4,1,""],paginate_by:[362,4,1,""],template_name:[362,4,1,""]},"evennia.web.website.views.ChannelMixin":{access_type:[362,4,1,""],get_queryset:[362,3,1,""],model:[362,4,1,""],page_title:[362,4,1,""]},"evennia.web.website.views.CharacterCreateView":{form_valid:[362,3,1,""],template_name:[362,4,1,""]},"evennia.web.website.views.CharacterDetailView":{access_type:[362,4,1,""],attributes:[362,4,1,""],get_queryset:[362,3,1,""],template_name:[362,4,1,""]},"evennia.web.website.views.CharacterListView":{access_type:[362,4,1,""],get_queryset:[362,3,1,""],page_title:[362,4,1,""],paginate_by:[362,4,1,""],template_name:[362,4,1,""]},"evennia.web.website.views.CharacterManageView":{page_title:[362,4,1,""],paginate_by:[362,4,1,""],template_name:[362,4,1,""]},"evennia.web.website.views.CharacterMixin":{form_class:[362,4,1,""],get_queryset:[362,3,1,""],model:[362,4,1,""],success_url:[362,4,1,""]},"evennia.web.website.views.CharacterPuppetView":{get_redirect_url:[362,3,1,""]},"evennia.web.website.views.CharacterUpdateView":{form_class:[362,4,1,""],template_name:[362,4,1,""]},"evennia.web.website.views.EvenniaCreateView":{page_title:[362,3,1,""]},"evennia.web.website.views.EvenniaDeleteView":{page_title:[362,3,1,""]},"evennia.web.website.views.EvenniaDetailView":{page_title:[362,3,1,""]},"evennia.web.website.views.EvenniaIndexView":{get_context_data:[362,3,1,""],template_name:[362,4,1,""]},"evennia.web.website.views.EvenniaUpdateView":{page_title:[362,3,1,""]},"evennia.web.website.views.HelpDetailView":{get_context_data:[362,3,1,""],get_object:[362,3,1,""],template_name:[362,4,1,""]},"evennia.web.website.views.HelpListView":{page_title:[362,4,1,""],paginate_by:[362,4,1,""],template_name:[362,4,1,""]},"evennia.web.website.views.HelpMixin":{get_queryset:[362,3,1,""],model:[362,4,1,""],page_title:[362,4,1,""]},"evennia.web.website.views.ObjectCreateView":{model:[362,4,1,""]},"evennia.web.website.views.ObjectDeleteView":{"delete":[362,3,1,""],access_type:[362,4,1,""],model:[362,4,1,""],template_name:[362,4,1,""]},"evennia.web.website.views.ObjectDetailView":{access_type:[362,4,1,""],attributes:[362,4,1,""],get_context_data:[362,3,1,""],get_object:[362,3,1,""],model:[362,4,1,""],template_name:[362,4,1,""]},"evennia.web.website.views.ObjectUpdateView":{access_type:[362,4,1,""],form_valid:[362,3,1,""],get_initial:[362,3,1,""],get_success_url:[362,3,1,""],model:[362,4,1,""]},"evennia.web.website.views.TypeclassMixin":{typeclass:[362,3,1,""]},evennia:{accounts:[143,0,0,"-"],commands:[149,0,0,"-"],comms:[172,0,0,"-"],contrib:[178,0,0,"-"],help:[236,0,0,"-"],locks:[240,0,0,"-"],objects:[243,0,0,"-"],prototypes:[248,0,0,"-"],scripts:[253,0,0,"-"],server:[262,0,0,"-"],set_trace:[141,5,1,""],settings_default:[313,0,0,"-"],typeclasses:[314,0,0,"-"],utils:[320,0,0,"-"],web:[346,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","exception","Python exception"],"3":["py","method","Python method"],"4":["py","attribute","Python attribute"],"5":["py","function","Python function"],"6":["py","data","Python data"]},objtypes:{"0":"py:module","1":"py:class","2":"py:exception","3":"py:method","4":"py:attribute","5":"py:function","6":"py:data"},terms:{"000":[0,25,46,82,114,343],"0000":[0,46],"0004":22,"001":[22,127,343],"002":343,"003":343,"004":343,"005":[114,321,343],"006":343,"007":343,"008":343,"009":343,"00sc":124,"010":[25,343],"011":343,"012":343,"013":343,"0131018167":79,"014":343,"015":343,"015public":25,"016":343,"017":343,"018":343,"019":343,"020":343,"020t":25,"021":343,"022":343,"023":343,"024":343,"0247":22,"025":343,"026":343,"027":343,"028":343,"029":343,"030":343,"030a":25,"031":343,"032":343,"033":[321,343],"034":[22,343],"035":343,"036":343,"037":343,"038":343,"039":343,"040":343,"040f":25,"041":343,"042":343,"043":343,"044":343,"045":343,"046":343,"047":343,"048":343,"049":343,"050":[321,343],"050f":25,"051":343,"052":343,"053":343,"054":[114,343],"055":[321,343],"056":343,"057":343,"058":343,"059":343,"060":343,"061":343,"062":343,"062022":363,"063":343,"064":343,"065":343,"066":343,"067":343,"068":343,"069":343,"070":343,"071":343,"072":343,"073":343,"074":343,"075":343,"076":343,"077":343,"078":343,"079":343,"080":343,"081":343,"082":343,"083":343,"084":343,"085":343,"086":343,"087":343,"088":343,"089":343,"090":343,"091":343,"092":343,"093":343,"094":343,"095":343,"096":343,"097":343,"098":343,"099":343,"0b16":24,"0d0":56,"0label":70,"0qoklqey5ebad1f0eyeqaylmcc8o":70,"0x045a0990":42,"0x852be2c":59,"100":[31,43,56,73,85,93,111,125,169,185,188,217,220,221,343,362],"1000":[56,93,100,116,217,218,219,220,221,251],"10000":362,"1000000":[82,93,337],"100m":343,"100mb":90,"100x100":70,"101":[31,247,343],"101m":343,"102":343,"102m":343,"103":343,"103m":343,"104":343,"104m":343,"105":343,"105m":343,"106":343,"106m":343,"107":343,"107m":343,"108":343,"108m":343,"109":343,"1098":125,"109m":343,"10m":67,"110":[329,343],"1106db5a5e1a":122,"110m":343,"111":[12,43,114,157,343],"111m":343,"112":343,"112m":343,"113":[90,343],"113m":343,"114":343,"114m":343,"115":343,"115600":56,"115m":343,"116":343,"116m":343,"117":343,"1172":138,"117m":343,"118":[115,343],"1184":23,"118m":343,"119":343,"119m":343,"11e7":101,"120":[31,343],"1200":327,"120m":343,"121":343,"121m":343,"122":343,"122m":343,"123":[131,134,247,343],"1234":[54,109,203],"123dark":81,"123m":343,"124":343,"12400":82,"124m":343,"125":343,"125m":343,"126":343,"126m":343,"127":[8,9,24,63,67,90,287,343],"127m":343,"128":343,"128m":343,"129":343,"129m":343,"12s":27,"130":343,"130m":343,"131":343,"131m":343,"132":343,"132m":343,"133":343,"133m":343,"134":[12,43,157,343],"134m":343,"135":343,"135m":343,"136":343,"136m":343,"137":343,"137m":343,"138":343,"138m":343,"139":343,"139m":343,"140":[25,42,141,343],"1400":327,"140313967648552":33,"140m":343,"141":[139,343],"141m":343,"142":[22,180,343],"1424724909023":70,"142m":343,"143":343,"143m":343,"144":343,"144m":343,"145":343,"145m":343,"146":343,"146m":343,"147":343,"147m":343,"148":343,"148m":343,"149":343,"149m":343,"150":[326,343],"150m":343,"151":343,"151m":343,"152":343,"152m":343,"153":343,"153m":343,"154":343,"154m":343,"155":343,"155m":343,"156":[127,343],"156m":343,"157":343,"1577865600":62,"157m":343,"158":343,"158m":343,"159":343,"159m":343,"160":343,"160m":343,"161":343,"161m":343,"162":343,"162m":343,"163":343,"163m":343,"164":343,"164m":343,"165":343,"165m":343,"166":343,"166m":343,"167":343,"167m":343,"168":343,"168m":343,"169":343,"169m":343,"16m":343,"170":343,"170m":343,"171":343,"171m":343,"172":343,"172m":343,"173":343,"1730":79,"173m":343,"174":343,"174m":343,"175":343,"175m":343,"176":343,"1764":119,"176m":343,"177":343,"177m":343,"178":343,"178m":343,"179":343,"179m":343,"17m":343,"180":343,"180m":343,"181":343,"181m":343,"182":343,"182m":343,"183":343,"183m":343,"184":343,"184m":343,"185":343,"185m":343,"186":343,"186m":343,"187":343,"187m":343,"188":343,"188m":343,"189":343,"189m":343,"18m":343,"190":343,"1903":119,"190m":343,"191":343,"191m":343,"192":343,"192m":343,"193":343,"193m":343,"194":343,"194m":343,"195":343,"195m":343,"196":343,"196m":343,"197":343,"1970":62,"197m":343,"198":343,"198m":343,"199":343,"1996":79,"1998":79,"199m":343,"19m":343,"1_7":127,"1d100":[73,185],"1d2":56,"1d6":73,"1gb":90,"1st":62,"200":[343,360],"2001":79,"2003":79,"2004":79,"2008":344,"200m":343,"201":343,"2010":343,"2011":[124,181,214,232],"2012":[179,185,186,187],"2013":79,"2014":[21,213],"2015":[24,189,205,206],"2016":[99,199,200,201,202,212,214],"2017":[62,90,97,182,183,184,190,204,209,210,215,217,218,219,220,221,234,235],"2018":[9,180,188,198,203],"2019":[79,187,201],"201m":343,"202":343,"2020":[12,62,230,363],"2020_01_29":337,"2020_01_29__1":337,"2020_01_29__2":337,"202m":343,"203":[90,343],"203m":343,"204":343,"2048":67,"204m":343,"205":[327,343],"205m":343,"206":343,"206m":343,"207":343,"2076":119,"207m":343,"208":[91,343],"208m":343,"209":343,"209m":343,"20i":70,"20label":70,"20m":343,"210":343,"210m":343,"211":343,"211m":343,"212":[12,343],"2128":56,"212m":343,"213":343,"213m":343,"214":343,"214m":343,"215":343,"215m":343,"216":343,"216m":343,"217":343,"217m":343,"218":343,"218m":343,"219":[9,343],"219m":343,"21m":343,"220":343,"2207":204,"220m":343,"221":[322,343],"221m":343,"222":[114,321,343],"222m":343,"223":[12,343],"223m":343,"224":343,"224m":343,"225":[12,343],"225m":343,"226":343,"226m":343,"227":343,"227m":343,"228":343,"228m":343,"229":343,"22916c25":122,"229m":343,"22m":[321,343],"22nd":344,"230":[114,343],"230m":343,"231":343,"231m":343,"232":343,"232m":343,"233":[12,43,157,343],"233m":343,"234":[183,343],"234m":343,"235":343,"235m":343,"236":343,"236m":343,"237":[12,343],"237m":343,"238":343,"238m":343,"239":343,"239m":343,"23m":343,"240":343,"240m":343,"241":343,"241m":343,"242":343,"242m":343,"243":343,"243m":343,"244":343,"244m":343,"245":343,"245m":343,"246":343,"246m":343,"247":343,"247m":343,"248":343,"248m":343,"249":343,"249m":343,"24m":343,"250":343,"250m":343,"251":343,"251m":343,"252":343,"252m":343,"253":343,"253m":343,"254":343,"254m":343,"255":[24,343],"255fdonatecc":70,"255flg":70,"255fu":70,"255m":343,"256":[12,43,114,156,321],"25m":343,"26m":343,"27m":343,"280":71,"28comput":37,"28gmcp":291,"28m":343,"294267":101,"29m":343,"2d6":[58,185],"2gb":90,"2m1uhse7":133,"2pm6ywo":37,"300":[114,126,184,331],"3000000":82,"302":360,"30773728":101,"30m":[321,343],"31m":[321,343],"31st":62,"32bit":[24,63],"32m":[321,343],"32nd":58,"333":[12,114],"33333":59,"33m":[321,343],"340":56,"34m":[321,343],"358283996582031":93,"35m":[321,343],"360":62,"3600":62,"36m":[321,343],"37m":[321,343],"3872":119,"38m":343,"39m":343,"3abug":70,"3aissu":70,"3amast":70,"3aopen":70,"3c3ccec30f037be174d3":344,"3d6":185,"3rd":62,"4000":[9,36,63,67,75,90,95,100,101,103],"4001":[3,4,8,9,36,63,67,69,75,90,95,100,101,103,133,134,135,137,296],"4002":[8,36,67,90,100],"4003":90,"4004":90,"4005":90,"4006":90,"403":131,"404":69,"40m":[321,343],"41917":287,"41dd":122,"41m":[321,343],"4201":90,"4280":55,"42m":[321,343],"430000":62,"43m":[321,343],"443":[8,67,103],"444":114,"446ec839f567":122,"44m":[321,343],"45m":[27,321,343],"46d63c6d":122,"46m":[321,343],"474a3b9f":92,"47m":[321,343],"48m":343,"4993":94,"49be2168a6b8":101,"49m":343,"4er43233fwefwfw":9,"4th":[38,79],"500":[114,126,321,362],"50000":82,"502916":127,"503435":127,"505":321,"50m":343,"50mb":90,"5102":94,"516106":56,"51m":343,"520":114,"52m":343,"53d":122,"53m":343,"54m":343,"550":[321,327],"550n":25,"551e":25,"552w":25,"553b":25,"554i":25,"555":[114,204,321],"555e":25,"55m":343,"565000":62,"56m":343,"577349":343,"57kuswhxq":133,"57m":343,"5885d80a13c0db1f8e263663d3faee8d64ad11bbf4d2a5a1a0d303a50933f9":70,"5885d80a13c0db1f8e263663d3faee8d66f31424b43e9a70645c907a6cbd8fb4":37,"58m":343,"593":344,"59m":343,"5d5":56,"5x5":111,"600":[122,344],"60m":343,"614":138,"61m":343,"6299":122,"62cb3a1a":92,"62m":343,"6320":94,"63m":343,"64m":343,"6564":94,"65m":343,"6666":40,"6667":[43,72,79,146,164,308],"66m":343,"67m":343,"6833":94,"68m":343,"69m":343,"6d6":56,"70982813835144":93,"70m":343,"71m":343,"72m":343,"73m":343,"74m":343,"75m":343,"760000":62,"76m":343,"775":36,"77m":343,"78m":343,"7993":94,"7998":94,"79m":343,"7asq0rflw":122,"8080":90,"80m":343,"8111":36,"81m":343,"82m":343,"83m":343,"849":122,"84m":343,"85000":82,"85m":343,"86400":120,"86m":343,"87d6":122,"87m":343,"8820":101,"8859":[15,113],"88m":343,"89m":343,"8f64fec2670c":90,"900":[188,327],"9000":357,"90m":343,"90s":345,"91m":343,"92m":343,"93m":343,"94m":343,"95m":343,"96m":343,"97m":343,"981":204,"98m":343,"990":327,"99999":61,"99m":343,"9cdc":122,"\u6d4b\u8bd5":25,"abstract":[47,64,86,119,221,317,318,334,338,344],"boolean":[13,33,133,137,154,185,188,242,247,250,259,316,321,322,338,345],"break":[10,12,14,30,37,42,51,54,57,58,61,91,96,103,108,111,114,125,137,141,167,168,202,224,226,276,328,329,344],"byte":[15,27,94,113,269,276,278,287,295,344],"case":[1,6,8,10,11,12,13,14,15,21,22,25,27,28,29,31,33,34,37,38,40,41,42,43,44,46,49,51,55,58,59,60,61,62,64,69,74,79,80,81,82,83,86,88,89,91,95,96,100,102,103,105,107,108,109,110,111,113,114,116,119,120,121,123,125,127,128,131,133,137,144,146,151,153,156,159,165,167,168,174,175,176,179,180,182,185,187,188,196,204,206,211,233,238,239,241,242,247,251,256,258,272,276,280,284,298,305,308,316,317,318,319,321,323,334,341,344,349],"catch":[15,26,27,30,43,51,58,87,91,97,102,115,118,146,165,233,257,267,272,279,305,306,326,328,334,337,340,362],"char":[43,56,58,71,73,85,88,105,111,116,117,119,120,133,144,159,165,189,233,247,264,277,290,291,312,321,327,330],"class":[1,2,3,5,6,10,11,12,16,17,20,21,25,26,28,29,30,31,38,39,40,42,43,44,47,49,50,52,53,55,56,57,58,60,61,62,64,68,71,73,77,81,82,85,86,89,91,97,102,105,109,116,117,118,119,120,121,123,124,132,133,134,135,144,145,146,147,148,149,152,153,154,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,173,174,175,176,177,179,180,181,182,184,185,186,187,188,189,192,193,195,196,197,198,199,200,201,202,203,204,205,206,210,211,212,213,214,215,217,218,219,220,221,223,224,226,227,228,230,231,232,233,234,235,237,238,239,242,243,244,245,246,247,249,251,252,254,255,256,257,258,259,260,261,263,264,265,267,269,270,273,274,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,298,300,303,305,306,307,308,310,311,312,314,315,316,317,318,319,321,322,323,324,325,326,327,328,329,330,331,333,334,335,336,337,338,339,340,341,342,343,344,349,351,352,357,360,362],"const":234,"default":[0,1,2,3,4,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,27,29,31,32,33,34,35,36,38,39,40,41,42,45,46,47,49,50,51,53,56,57,58,59,62,63,64,65,66,67,68,69,71,72,75,76,77,81,82,83,85,86,87,88,89,90,91,93,95,96,97,100,101,102,103,104,105,106,107,109,111,112,113,114,116,117,118,119,121,123,124,125,126,127,128,129,131,133,134,135,136,138,139,140,141,142,144,145,146,148,149,150,151,152,153,154,174,175,177,179,180,181,182,183,184,185,186,187,188,189,190,193,195,196,197,199,200,202,203,205,206,209,210,212,213,214,215,217,218,219,220,221,224,231,233,234,235,236,238,239,240,242,247,251,252,256,257,259,261,265,267,269,271,272,273,277,289,290,291,296,298,299,305,306,307,308,312,313,316,317,318,319,321,323,324,326,328,329,330,333,334,336,337,338,339,340,341,344,345,349,357,362,364],"export":75,"final":[10,23,26,27,29,33,36,38,39,41,43,58,63,67,68,69,70,73,76,80,83,85,86,102,103,105,109,114,116,123,125,126,127,133,134,136,150,151,152,159,164,168,185,215,242,252,304,308,321,323,328,329,336],"float":[38,49,114,146,184,194,195,198,250,260,267,279,317,331,336,340,344],"function":[3,4,5,6,9,10,11,13,14,18,19,20,21,23,25,26,27,29,33,34,37,38,40,41,43,44,46,48,50,52,55,57,58,59,60,61,62,63,64,68,69,73,74,75,77,81,82,83,85,86,88,91,93,96,104,106,107,108,109,110,111,115,118,119,121,122,123,124,125,127,128,133,134,135,137,138,140,141,148,151,153,154,156,157,158,159,160,164,165,166,167,169,170,175,176,179,180,181,184,185,187,188,190,194,195,198,199,200,203,205,206,211,212,215,217,218,219,220,221,224,226,227,230,232,233,234,235,239,240,241,242,247,250,251,252,257,259,260,261,267,272,276,287,288,293,296,299,306,308,310,318,319,320,321,322,324,325,326,328,329,331,336,337,338,339,343,344,345,350,362],"g\u00e9n\u00e9ral":79,"goto":[85,230,328],"import":[0,2,3,4,5,6,9,10,11,13,14,15,16,19,20,21,22,25,27,28,29,30,31,33,39,40,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,68,69,71,72,73,74,76,77,80,81,82,83,84,85,86,89,90,91,93,94,96,97,102,103,104,105,106,107,110,111,112,113,114,115,116,117,118,119,120,121,123,125,126,127,132,133,134,135,136,137,138,140,141,153,159,169,174,179,180,181,182,183,184,185,187,188,198,199,200,202,204,205,206,212,213,215,217,218,219,220,221,227,232,233,235,238,242,251,252,261,267,271,279,280,301,305,308,309,318,322,323,326,327,328,329,330,341,342,344,362],"int":[11,25,31,39,49,51,56,58,74,85,91,114,123,125,134,144,146,151,152,154,176,179,182,184,185,188,190,192,194,195,198,200,206,215,217,218,219,220,221,234,247,252,258,259,260,261,264,265,267,271,272,276,277,278,279,281,285,286,287,295,296,298,308,310,312,317,321,324,326,327,328,329,330,331,334,336,337,341,344],"long":[9,10,15,20,22,23,25,26,27,29,33,37,38,40,43,44,46,49,51,52,55,58,60,62,64,68,71,72,73,78,79,80,81,85,86,87,90,105,108,111,113,115,118,121,125,126,127,129,131,133,135,138,139,156,159,164,179,186,195,203,213,220,227,234,276,281,296,321,322,329,330,344],"new":[0,2,5,9,11,12,13,14,16,19,20,21,22,23,24,25,26,27,29,31,33,34,35,36,37,38,39,40,41,43,44,45,49,50,51,54,55,57,61,62,63,64,65,67,68,70,71,72,73,75,76,77,78,79,80,81,82,83,84,85,88,89,90,91,92,93,94,95,96,98,100,101,104,105,106,107,108,109,111,112,116,117,118,121,122,123,124,128,129,131,132,134,135,136,137,138,139,144,145,146,152,153,154,156,157,159,164,167,168,170,171,173,174,175,180,181,182,186,187,188,192,195,197,199,200,201,202,203,204,205,206,212,213,215,217,218,219,220,221,231,232,233,235,239,242,244,246,247,249,251,252,254,256,259,260,261,264,267,276,277,278,279,285,286,287,292,299,306,307,308,312,316,317,318,319,321,322,324,327,328,329,330,334,336,337,338,360,362,363,364],"null":[8,86,315,336],"public":[25,34,41,43,58,65,67,72,90,93,100,103,131,134,164,247,312,330],"return":[3,4,6,10,11,15,20,21,22,25,27,28,29,30,33,36,38,39,40,41,42,43,44,48,49,50,52,58,60,62,64,68,69,71,73,74,76,77,80,81,82,83,85,89,91,93,95,96,97,100,102,103,107,108,109,110,111,112,114,116,117,118,119,121,123,125,127,129,133,134,137,138,144,145,146,148,150,151,152,153,154,156,159,164,166,169,170,174,175,176,177,179,180,182,184,185,187,188,190,192,193,194,195,197,198,199,200,203,204,205,206,210,211,212,215,217,218,219,220,221,223,230,231,232,233,234,235,237,238,239,241,242,244,246,247,249,250,251,252,257,258,259,261,264,265,267,272,273,276,277,279,280,281,282,284,285,286,287,288,290,291,292,294,295,296,298,299,305,306,308,310,311,312,315,316,317,318,319,321,322,323,324,325,326,328,329,330,331,334,336,337,338,339,340,341,343,344,345,350,357,362],"short":[20,22,29,38,39,42,46,51,54,57,58,61,62,70,71,83,87,89,95,96,103,110,112,114,123,129,137,140,180,182,195,202,205,206,227,234,252,322,344],"static":[38,49,58,83,94,124,127,135,136,137,139,166,180,192,206,214,312,324,355,362,364],"super":[5,22,25,31,40,41,49,57,58,60,62,81,89,96,118,121,123,125,180,182,206,329],"switch":[0,2,9,10,13,14,16,19,20,23,25,31,33,34,43,46,50,58,65,68,72,76,80,81,82,88,90,98,114,116,121,122,123,125,126,129,131,137,138,156,157,158,159,164,165,166,167,168,169,174,175,185,187,199,200,202,203,218,256,318,324,329,345],"th\u00ed":20,"throw":[11,22,43,66,75,109,131,133,153,166,344],"true":[1,2,4,5,10,11,13,20,21,22,25,26,27,29,31,33,34,38,40,41,49,50,51,54,56,58,62,65,66,68,69,72,74,76,80,81,83,84,85,86,87,90,91,96,98,100,102,105,114,115,116,117,120,121,122,123,125,126,127,133,135,137,138,144,148,150,152,153,154,156,159,164,166,167,170,173,174,175,176,177,179,180,182,183,184,185,188,190,192,195,197,200,203,204,205,206,212,215,217,218,219,220,221,224,226,230,231,235,237,241,242,244,246,247,249,251,252,254,256,257,258,259,260,261,263,265,267,272,273,276,278,285,290,295,296,306,308,310,312,315,316,317,318,321,324,326,328,329,330,331,334,336,339,340,341,344,345],"try":[0,4,5,6,8,9,10,11,12,13,15,16,20,21,22,23,25,26,27,29,30,38,39,42,43,44,46,48,49,50,51,54,55,56,57,58,60,61,63,64,65,66,67,68,69,73,74,75,77,80,81,86,90,91,93,95,96,97,102,103,108,109,110,111,113,118,119,120,121,123,124,126,127,133,134,135,136,137,138,140,144,148,152,154,159,175,177,179,180,186,196,204,205,206,212,213,217,218,219,220,221,224,227,231,232,233,235,239,247,251,259,264,267,276,291,292,296,310,315,316,318,321,323,324,326,327,340,344],"var":[67,83,88,137,200,209,291,322],"void":56,"while":[0,9,10,11,13,14,20,22,23,25,28,29,31,33,35,37,38,41,43,49,50,51,55,56,57,58,62,63,70,75,83,86,90,91,93,95,96,103,108,109,110,111,114,116,118,119,121,122,124,127,129,133,134,136,137,138,144,156,159,167,175,179,188,196,197,203,204,218,221,224,227,231,233,235,247,252,259,291,314,315,318,328,330,338,344,345,362,363],AIs:79,AND:[43,73,80,119,159,188,242],ARE:77,AWS:[90,100],Adding:[18,32,33,45,57,60,71,82,85,108,116,124,139,187,328,364],Age:[188,357],And:[0,4,9,10,11,21,22,25,26,29,33,36,41,42,46,51,57,61,62,69,73,80,86,91,96,105,111,126,133,138,153,182,215,217,218,219,220,221,364],Are:[33,61,79,82],Aye:46,BGs:126,Being:[58,81,122,123],But:[0,6,10,11,13,15,20,21,22,25,26,27,28,29,31,33,37,38,39,41,42,44,51,54,55,57,59,60,61,62,64,69,72,73,80,82,83,85,86,91,95,96,100,102,104,107,109,111,114,119,125,126,127,133,134,138,152,153,179,227,319,362],DNS:[67,90],DOING:188,DoS:285,Doing:[29,33,43,55,73,134,153,156],For:[0,2,5,6,8,9,12,13,14,16,17,19,20,21,22,23,25,27,29,31,33,36,37,38,39,41,42,43,46,49,51,55,56,57,58,59,62,63,64,69,72,73,76,79,80,81,83,85,86,88,90,91,93,95,96,98,100,102,103,105,109,110,111,113,114,116,121,123,126,127,129,131,132,133,134,135,136,138,139,140,152,153,159,169,174,175,176,177,180,182,185,187,188,189,197,198,200,206,212,214,215,218,231,239,242,252,287,296,316,318,321,325,328,329,338,340,344,357,362,364],GMs:58,Going:234,Has:[24,217,218,219,220,221],His:[57,189],IDE:[38,48,106],IDEs:57,IDs:[0,100,133,134,194,344],INTO:[43,159,188],IOS:24,IPs:[12,103,209,310],IRE:[88,291],Its:[41,62,69,80,83,86,89,105,189,252,326,328,344],LTS:97,NOT:[11,25,33,43,80,90,103,119,137,159,242,252,259,310,364],Not:[8,24,30,41,54,57,61,74,90,108,112,115,127,131,132,133,137,146,153,167,168,247,264,277,278,279,281,282,283,289,291,294,316,317,338],OBS:[19,43],ONE:103,Obs:127,One:[0,8,12,20,22,25,29,34,36,38,46,49,51,57,58,60,63,64,69,76,79,80,87,91,94,95,102,105,110,115,117,121,123,126,128,130,131,132,138,141,148,150,179,185,205,215,231,232,251,252,277,305,315,316,317,321,329,344],PRs:131,Such:[6,13,28,33,37,43,48,51,57,64,73,127,159,252,321,328],THAT:91,THE:[188,227],THEN:[153,188],THERE:188,TLS:103,That:[0,3,4,9,10,15,21,22,25,26,31,33,39,41,42,46,49,55,57,62,64,68,69,73,74,77,91,93,95,96,98,102,105,111,112,115,119,122,125,127,131,134,136,138,140,179,180,186,215,242,252,308,328],The:[0,2,4,5,6,7,8,9,12,15,17,20,21,23,24,25,27,28,30,31,33,34,36,37,38,39,40,42,43,44,45,48,52,53,54,55,56,57,59,60,61,62,63,64,66,67,68,70,72,73,74,75,76,78,79,80,81,82,84,86,87,88,89,90,91,92,94,95,97,98,100,101,102,103,104,105,106,107,108,110,111,112,113,114,115,118,119,120,121,122,124,125,126,127,128,129,131,132,133,134,136,137,138,139,140,144,146,147,148,150,151,152,153,154,156,159,163,164,165,166,167,168,169,170,171,173,174,175,176,177,179,180,182,184,185,186,187,188,189,190,192,193,194,195,197,198,199,200,203,204,205,206,212,213,215,217,218,219,220,221,223,224,226,227,230,231,232,233,234,235,236,238,239,241,242,246,247,249,250,251,252,255,256,257,258,259,261,264,265,266,267,269,271,272,274,276,277,278,279,280,281,282,283,284,285,286,287,289,290,291,292,294,295,296,298,299,304,305,306,307,308,312,315,316,317,318,319,321,322,323,324,325,326,327,328,329,330,331,332,334,336,337,338,339,340,341,342,344,345,357,362,363,364],Their:[51,73,103,109,114,124,189],Theirs:189,Then:[0,9,15,22,38,39,41,42,46,56,61,63,69,91,93,100,107,127,131,137,187],There:[0,5,8,10,11,13,14,15,19,20,21,22,23,25,26,27,31,33,34,38,41,46,49,51,55,57,58,60,61,62,64,68,69,72,73,77,79,80,81,85,86,88,89,90,91,93,95,96,97,98,102,103,104,105,107,108,111,112,113,114,116,117,118,119,121,123,125,127,128,133,136,138,139,167,187,188,215,217,218,219,220,221,235,252,261,272,291,308,321,322,328,336,363],These:[0,4,5,9,11,13,17,22,25,33,34,35,38,39,40,43,47,49,51,59,61,65,68,69,73,74,83,86,88,90,91,95,96,100,102,103,105,107,109,110,111,112,114,119,121,122,124,125,127,131,133,137,138,139,143,144,145,150,152,154,156,158,160,168,176,180,184,198,199,203,205,206,210,227,233,238,242,247,251,252,261,266,273,292,295,296,298,307,308,309,316,318,321,325,328,329,330,337,338,339,344],USE:[241,364],Use:[1,2,4,5,8,9,12,13,14,20,22,23,24,25,31,38,43,48,51,54,58,60,63,65,69,70,89,90,93,95,96,100,105,109,114,116,122,123,125,127,131,137,144,151,156,157,159,164,165,169,171,179,180,184,186,197,199,200,202,203,204,206,218,219,220,221,226,234,244,246,247,269,273,278,295,296,298,299,302,316,318,321,327,328,330,334,341,344],Used:[33,43,121,139,150,153,159,175,188,202,215,235,259,269,287,318,329,330,350],Useful:[12,51,90],Uses:[114,159,171,186,209,231,267,330,334],Using:[18,22,27,43,46,51,55,58,60,62,68,80,91,96,115,121,123,139,159,206,218,234,247,287,314,328,364],VCS:36,VHS:188,VPS:90,WILL:[24,91,259],WIS:58,WITH:[23,188],Will:[31,38,74,110,114,144,184,204,206,247,250,252,265,267,276,277,318,328,330,331,336,339,344],With:[8,11,15,19,23,55,57,77,87,100,111,114,122,123,141,144,180,206,252,321,326],Yes:[33,138,188,326],__1:337,__2:337,_________________:125,_________________________:51,______________________________:51,________________________________:51,_________________________________:125,______________________________________:328,______________________________________________:51,_______________________________________________:51,____________________________________________________:51,_________________________________________________________:85,__________________________________________________________:85,__all__:[145,237,244],__defaultclasspath__:318,__doc__:[33,43,59,68,154,167,169,170,239,324,328],__example__:97,__ge__:97,__getitem__:321,__init_:330,__init__:[3,6,11,40,47,49,53,96,97,107,125,152,153,154,174,177,179,180,192,204,206,226,234,242,246,247,251,257,258,260,261,264,265,267,269,270,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,294,295,296,298,305,306,308,310,311,312,315,316,318,319,321,323,326,327,328,329,330,336,337,338,339,340,344,351],__iter__:11,__multimatch_command:168,__noinput_command:[152,168,180,326,328,329],__nomatch_command:[168,180,233,326,328],__send_to_channel_command:168,__settingsclasspath__:318,__unloggedin_look_command:[171,186,201],_action_thre:51,_action_two:51,_all_:152,_asynctest:293,_attrs_to_sync:307,_attrtyp:316,_cach:318,_cached_cmdset:153,_call_or_get:180,_callback:[27,261],_char_index:321,_character_dbref:181,_check_password:51,_check_usernam:51,_clean_str:321,_cleanup_charact:116,_code_index:321,_copi:[43,159,247],_creation:125,_data:329,_default:[51,328],_defend:51,_differ:321,_errorcmdset:153,_event:198,_evmenu:328,_famili:119,_file:337,_flag:251,_footer:33,_format_diff_text_and_opt:252,_get_a_random_goblin_nam:109,_get_db_hold:306,_get_top:69,_getinput:328,_gettabl:272,_http11clientfactori:269,_init_charact:116,_is_fight:29,_is_in_mage_guild:51,_ital:38,_italic_:54,_menutre:[25,51],_monitor:272,_monitor_callback:84,_nicklist_cal:146,_npage:329,_oob_at_:334,_option:51,_page_formatt:329,_pagin:329,_pending_request:312,_permission_hierarchi:241,_ping_cal:146,_playable_charact:[69,133],_postsav:334,_prefix:206,_quell:241,_raw_str:321,_reactor_stop:[284,305],_recog_obj2recog:206,_recog_obj2regex:206,_recog_ref2recog:206,_regex:206,_repeat:272,_safe_contents_upd:246,_saver:[11,325],_saverdict:[11,325],_saverlist:[11,325],_saverset:325,_sdesc:206,_select:51,_selectfunc:328,_sensitive_:349,_session:328,_set:119,_set_attribut:51,_set_nam:51,_some_other_monitor_callback:84,_start_delai:261,_static:38,_stop_serv:284,_templat:38,_test:150,_validate_fieldnam:58,a076:101,a221:122,a2enmod:8,a8oc3d5b:100,a_off:179,a_python_func:38,aaaaaaa:133,aaaaaaaaezc:133,aaaaaaaaezg:133,aaaaaaaaezi:133,aardwolf:88,abbrevi:[43,76,114,159,202,336],abcd:[43,165],abi:60,abid:126,abil:[6,10,20,31,33,52,55,56,57,58,60,73,77,80,90,100,102,108,109,123,127,134,137,138,139,205,206,213,217,218,219,220,221,247,259,267,316],abl:[0,3,4,5,8,11,13,14,19,20,21,22,23,26,27,28,29,31,33,36,41,42,43,47,49,51,52,55,57,58,59,60,61,63,64,69,71,73,75,76,81,83,85,86,87,89,90,91,93,95,96,100,103,104,106,109,111,112,114,116,121,122,123,130,131,133,134,138,140,153,156,157,159,160,174,177,180,184,190,199,206,212,217,218,219,220,221,227,259,316,318,325,340,344,360],abod:241,abort:[25,27,33,51,52,77,89,122,144,154,159,175,197,213,233,247,250,328,329],about:[0,3,9,10,11,12,13,14,15,16,17,20,21,22,23,24,25,26,30,31,33,36,37,38,39,41,42,44,45,46,48,51,54,55,57,59,60,61,63,64,68,69,70,71,73,75,76,77,78,79,81,83,85,86,90,91,93,94,95,96,97,100,101,103,104,108,109,110,112,113,114,116,118,119,120,123,124,126,127,131,134,135,136,138,139,144,159,169,174,179,180,182,185,214,219,220,221,226,227,232,233,239,247,267,269,272,281,283,285,294,296,306,308,315,317,319,321,329,334,336,344,363],abov:[2,4,8,9,10,11,12,13,14,21,23,24,27,28,29,30,31,33,36,37,40,43,44,46,49,50,51,56,57,58,59,60,62,63,64,67,68,69,74,80,81,84,85,86,90,91,93,95,96,100,102,105,106,109,110,111,112,114,116,118,119,121,123,125,127,131,132,133,135,137,138,140,152,153,159,180,185,188,190,199,200,204,206,213,214,215,217,219,220,221,242,247,272,315,328,339,350],abridg:41,absolut:[27,38,56,62,79,91,134,182,184,185,189,327,331,344],absorb:74,abspath:344,abstractus:148,abus:[7,103],academi:79,accept:[11,14,22,23,27,31,37,43,51,54,58,59,74,80,88,90,95,96,109,114,115,125,131,133,134,138,144,150,151,169,179,185,188,193,196,204,205,206,213,231,233,241,267,272,285,311,312,317,322,328,336,340,344],accept_callback:[193,195],accesing_obj:241,access:[0,4,7,8,11,12,13,14,19,21,22,23,25,27,29,31,33,34,38,39,40,41,47,49,51,52,53,56,57,58,59,60,63,64,66,68,69,71,73,74,80,83,84,85,86,87,89,90,91,95,96,100,101,102,103,104,105,107,108,109,111,112,114,116,119,121,123,124,125,126,127,128,131,133,134,135,137,139,144,145,148,152,153,154,156,157,159,164,165,166,167,168,169,174,175,176,177,180,187,190,192,194,203,205,206,217,218,219,220,221,233,234,239,240,241,242,246,247,250,251,252,256,258,260,261,264,267,276,277,306,308,314,315,316,318,319,322,323,324,337,343,344,357,362],access_obj:[241,316],access_opt:345,access_token_kei:[71,120],access_token_secret:[71,120],access_typ:[43,68,144,154,159,175,177,239,241,242,247,316,318,362],accessed_obj:[25,80,121,241,242],accessing_obj:[1,11,25,80,121,144,175,177,239,241,242,247,316,318],accessing_object:[11,241],accessor:[148,177,239,246,256,316,318,319,335],accessori:63,accident:[15,31,38,43,123,138,157,159,306],accommod:4,accomod:[101,330],accompani:123,accomplish:[12,25,41,49,55],accord:[31,33,111,116,126,180,182,200,204,205,218,260,321,322],accordingli:[49,58,90,106,175,234],account1:360,account2:360,account:[0,4,6,9,11,12,14,17,19,20,21,22,24,25,27,31,33,34,35,37,41,45,47,49,50,51,52,53,55,56,57,61,62,65,66,69,71,74,80,81,83,87,89,90,91,92,96,100,104,105,107,108,109,110,111,112,114,119,120,122,123,125,126,127,129,131,133,134,135,138,139,141,142,149,150,151,152,153,154,155,157,159,160,161,164,165,166,167,171,174,175,176,177,180,181,182,184,186,187,188,190,192,193,195,197,199,200,201,206,209,212,217,219,220,221,224,227,230,231,232,233,235,239,241,242,246,247,249,251,253,256,267,271,272,287,298,299,306,307,308,316,318,321,324,328,329,338,339,341,342,344,345,349,357,360,362,364],account_cal:[156,164,167,199],account_count:308,account_id:[133,247],account_mod:159,account_nam:56,account_search:[206,247],account_subscription_set:148,account_typeclass:[342,360],accountattributeinlin:145,accountcmdset:[2,22,31,41,43,57,58,62,156,160,164,181,199],accountcreateview:362,accountdb:[53,119,125,133,141,144,145,148,175,239,314,315,318,338,345],accountdb_db_attribut:145,accountdb_db_tag:145,accountdb_set:[316,319],accountdbadmin:145,accountdbchangeform:145,accountdbcreationform:145,accountdbmanag:[147,148],accountdbpasswordcheck:287,accountform:[145,357,362],accountid:133,accountinlin:145,accountlist:58,accountmanag:[144,147],accountmixin:362,accountnam:[43,58,159,171,176,186,324],accounttaginlin:145,accur:[22,154,177,192,218,221,252,260,265,267,269,270,278,287,288,290,292,295,296,306,321,336,339,340,351],accuraci:[46,91,218,219,220],accus:73,accustom:[87,124],acept:188,achiev:[0,22,27,33,57,114,124,126,138,220,267],ack:52,acquaint:57,acquir:323,across:[16,20,40,51,56,61,86,91,102,105,108,109,125,144,152,153,182,188,233,238,247,250,259,261,264,276,277,291,308,329,330],act:[2,8,13,23,29,31,34,37,43,49,51,56,58,61,70,77,95,102,105,110,111,123,139,141,159,177,188,215,241,264,276,277,296,316,319,323,328],action1:116,action2:116,action:[0,11,22,29,39,41,42,43,46,51,55,57,61,62,64,73,88,90,91,93,102,114,116,117,118,123,133,138,145,146,165,175,179,188,206,217,218,219,220,221,230,234,238,239,250,251,256,257,279,298,299,300,310,318,328,329,334],action_count:116,action_nam:[217,218,219,220,221],actiondict:116,actions_per_turn:[217,218,220,221],activ:[4,9,12,13,26,27,28,31,33,36,38,43,61,62,63,64,65,66,72,75,76,79,80,81,83,89,90,93,95,98,102,105,110,114,128,131,135,136,138,144,150,153,157,159,169,174,175,193,201,210,227,231,235,246,247,250,259,272,279,280,281,282,283,287,289,290,291,298,308,310,317,326,328,329,330,336,344],activest:343,actor:221,actual:[2,5,8,10,11,13,14,19,20,21,22,26,27,29,34,36,38,40,41,42,43,44,46,47,49,51,58,59,60,61,63,64,68,69,71,73,79,80,81,83,85,86,87,88,89,90,91,93,95,96,97,100,104,105,106,109,111,112,113,114,115,116,119,121,123,126,127,128,130,133,134,136,137,138,144,150,154,156,159,165,167,168,170,175,177,179,180,182,187,188,197,198,202,203,205,206,213,214,215,217,218,219,220,221,227,232,233,235,239,241,242,246,247,251,252,287,290,296,298,304,306,307,308,312,313,318,321,323,324,326,328,329,334,338,339,340,344,362],actual_return:127,adapt:[0,4,21,40,69,73,133],add:[0,2,5,6,8,9,10,11,13,14,15,16,17,19,20,21,22,24,26,29,30,31,33,34,35,36,37,38,39,40,41,42,43,44,46,47,48,49,50,51,54,55,57,58,61,62,64,65,66,67,68,69,71,73,74,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,93,94,95,96,98,100,102,104,105,106,109,111,112,113,114,115,116,117,118,119,120,121,123,124,125,127,128,131,132,133,134,135,137,138,139,140,141,144,148,152,153,159,164,165,166,168,174,175,179,180,181,182,183,185,186,187,192,193,195,196,197,198,199,200,201,202,203,205,206,209,212,213,215,217,218,219,220,221,223,224,226,227,230,231,232,233,234,241,242,246,247,250,252,256,257,258,260,261,267,272,273,277,280,281,283,285,289,296,298,299,301,306,309,316,319,322,326,327,328,329,330,334,336,337,339,340,362,364],add_:330,add_act:116,add_argu:234,add_callback:[193,195],add_channel:174,add_charact:116,add_choic:180,add_choice_:180,add_choice_edit:[22,180],add_choice_quit:[22,180],add_collumn:154,add_column:[58,330],add_condit:219,add_default:[21,31,85,96,121,153,224],add_dist:221,add_ev:195,add_fieldset:[145,244],add_form:[145,244],add_head:330,add_languag:205,add_row:[58,82,154,329,330],add_view:[145,173,244],add_xp:73,addblindedcmdset:227,addcallback:[33,247],addclass:[137,141,142,346,356,358],addcom:[58,164],added:[0,4,5,17,21,22,24,25,27,31,33,34,36,38,40,41,42,43,51,55,57,58,60,65,69,70,73,75,77,78,80,86,88,91,96,100,102,106,108,109,110,111,112,114,116,117,119,121,123,128,131,132,133,138,144,150,152,153,154,164,168,169,179,180,182,183,185,189,192,195,198,206,217,218,219,220,221,224,235,242,247,252,258,272,306,316,319,322,328,329,330,336,337,344,350],addendum:37,adding:[0,3,5,9,14,17,21,22,25,27,29,31,35,36,38,40,43,46,51,57,58,62,69,76,80,81,85,86,91,97,102,104,106,108,109,112,114,115,116,121,123,125,126,128,131,133,137,138,139,152,153,157,159,166,180,184,188,190,192,195,199,205,206,215,217,218,219,220,227,233,234,250,251,252,258,267,298,315,316,324,330,344],addingservermxp:282,addit:[4,8,22,25,31,36,37,46,49,50,51,58,62,69,76,82,88,90,91,103,104,109,114,119,134,144,146,153,154,175,180,183,192,193,195,197,200,205,209,215,221,234,242,247,260,278,306,316,318,326,328,357],addition:[25,111,119,221],additionalcmdset:31,addpart:203,addquot:344,addr:[264,277,278,279,324],address:[3,9,12,23,33,40,43,49,67,87,90,91,103,105,131,135,144,157,175,186,189,247,264,277,279,287,307,310,344,345,363],address_and_port:287,addresult:203,addscript:[43,159],addservic:40,adjac:[200,221,231],adject:97,adjoin:206,adjust:[0,33,37,63,126,133,190,328,330],admin:[2,9,11,12,15,19,21,33,34,41,49,58,61,68,69,72,80,85,86,98,101,110,119,121,123,133,134,138,141,142,143,148,149,155,159,164,166,169,171,172,175,186,231,236,239,242,243,246,247,253,262,276,277,314,318,324,340,362,363],admin_sit:[145,173,237,244,254,263,315],admin_wrapp:362,administr:[10,23,33,36,41,55,58,63,64,68,80,103,129,139,264,276,277,364],adminportal2serv:276,adminserver2port:276,adminstr:264,admintest:360,admit:39,adopt:[21,22,26,57,64,177,291],advanc:[10,12,13,22,28,31,33,39,40,43,44,51,55,58,64,79,86,93,104,105,108,109,111,119,123,124,125,139,159,167,187,200,204,206,217,218,219,220,221,226,282,322,326,327,328,330,364],advantag:[3,14,15,28,36,39,46,51,55,56,58,59,62,68,69,73,90,103,104,109,116,118,123,133,179,180,209,215,217,218,219,220,221,319,322],advent:181,adventur:[20,41,77,111,122,124],advic:79,advis:[0,22,25,77],aeioui:119,aesthet:50,aezo:133,affair:323,affect:[11,13,14,19,25,31,33,43,61,62,73,80,81,105,112,114,116,126,127,128,131,138,141,142,144,152,169,183,198,205,212,219,240,247,251,318,322,330,338],afford:[85,105],afraid:90,after:[0,5,8,9,10,11,14,15,20,21,22,25,27,28,29,30,31,33,36,38,39,41,43,44,46,49,50,51,55,58,60,63,67,68,76,77,79,80,83,85,86,90,91,96,100,102,103,107,114,116,117,121,122,123,126,127,128,130,131,133,136,138,139,144,152,153,154,155,156,159,167,169,170,174,175,179,180,182,184,185,186,187,188,190,195,197,203,205,206,215,217,218,219,220,221,227,228,231,232,233,234,235,246,247,250,252,257,259,267,289,290,293,305,306,307,308,310,312,316,321,322,323,326,328,329,334,336,339,342,343,344,362],after_mov:247,afternoon:187,afterthought:48,afterward:[20,29,69,86,91,119,131,180],again:[0,6,12,13,14,20,21,22,23,28,29,33,39,41,42,43,47,48,49,51,54,56,57,58,60,61,62,63,64,67,69,73,76,80,81,85,86,90,91,93,95,96,98,100,102,105,106,110,111,114,116,119,121,123,126,128,131,133,138,146,153,164,184,195,204,217,220,221,226,227,235,259,267,284,287,290,310,321,322,325,340,342],against:[6,11,21,31,33,37,57,58,83,90,103,116,119,125,127,144,151,152,174,206,217,218,219,220,221,242,247,251,252,285,310,316,318,336,341,344],age:[188,234,357],agenc:103,agent:36,agenta:114,ages:188,aggreg:79,aggress:[11,14,75,122,124,139,231,318,364],aggressive_pac:231,agi:[11,60,127],agil:[11,60],agnost:[37,64,175],ago:[25,100,344],agre:[1,73,113,179],agree:179,ahead:[14,22,24,36,49,61,90,108,121,289],aid:[113,166,167,168,179,312],aim:[7,55,58,61,73,85,86,90,95,108,126,176,251],ain:46,ainnev:[73,119],air:[20,21,111],ajax:[40,55,90,137,296,307],ajaxwebcli:296,ajaxwebclientsess:296,aka:[9,11,93,203,344],alarm:[20,82],alert:[197,247],alexandrian:79,algebra:49,algorith:205,algorithm:344,alia:[2,6,9,20,21,22,31,33,41,44,48,51,57,58,59,60,63,87,89,90,95,105,111,112,119,125,127,129,131,145,148,151,154,156,159,164,165,166,167,168,170,173,174,187,192,206,212,228,231,233,235,237,241,244,246,247,250,252,254,256,261,272,298,315,317,318,319,324,340,341,342,357,362],alias1:[43,159,187],alias2:[43,159,187],alias3:187,alias:[2,13,20,21,22,25,27,29,31,33,34,41,43,44,45,48,51,58,60,74,81,82,85,87,89,109,111,116,119,123,129,131,140,144,152,154,156,157,158,159,164,165,166,167,168,169,170,171,174,175,176,179,180,181,182,185,186,187,188,189,193,199,200,201,202,203,206,212,213,214,215,217,218,219,220,221,224,231,232,233,234,235,238,239,246,247,252,317,318,319,324,326,328,329,337,341],aliaschan:[43,164],aliasdb:144,aliashandl:[315,319],aliasnam:252,aliasstr:324,align:[41,58,109,114,190,321,330,336,344],alik:68,alist:97,aliv:[55,231],alkarouri:343,all:[0,1,2,3,5,6,8,9,10,11,12,13,14,15,16,17,19,20,21,22,23,26,27,28,29,30,31,33,34,35,36,37,38,39,40,41,43,44,46,47,48,49,50,53,54,55,56,57,58,59,60,61,62,63,64,68,70,72,73,74,75,76,77,78,79,80,81,82,83,85,86,87,88,89,90,91,93,94,95,96,97,98,100,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,121,122,123,124,125,126,127,128,129,131,132,133,134,135,136,137,138,139,140,144,145,146,149,150,151,152,153,154,155,156,157,158,159,160,161,164,165,166,167,168,169,170,171,174,175,176,177,179,180,181,182,185,186,187,188,189,192,195,197,199,201,202,203,204,205,206,210,212,213,214,215,217,218,219,220,221,224,226,227,230,231,232,233,234,235,237,238,239,240,241,242,243,244,246,247,251,252,257,258,259,261,262,266,267,271,272,273,276,278,279,281,283,284,285,286,287,290,291,294,295,296,298,299,305,306,307,308,310,312,313,314,315,316,317,318,319,321,322,323,324,325,326,327,328,329,330,334,336,337,339,341,343,344,345,350,357,362,363],all_alias:112,all_attr:318,all_connected_account:308,all_displai:261,all_famili:119,all_from_modul:344,all_opt:339,all_receiv:247,all_room:13,all_script:102,all_sessions_portal_sync:308,all_to_categori:238,allcom:164,allerror:[267,276],allevi:[11,108,127,312],allheadersreceiv:312,alli:221,alloc:90,allow:[0,2,3,4,6,8,9,10,11,12,13,14,15,16,19,21,22,23,25,26,27,29,30,31,33,34,36,38,39,41,42,43,44,46,47,49,51,53,54,55,57,58,59,61,63,64,65,68,71,72,73,74,75,76,78,80,81,85,86,87,89,90,91,92,95,96,97,98,100,101,102,103,104,106,108,109,111,112,113,114,116,119,121,123,125,126,129,131,133,134,135,137,138,144,146,148,150,152,153,154,156,157,158,159,164,167,168,169,170,175,176,177,179,180,182,184,185,187,188,189,195,197,200,202,204,205,206,215,217,218,219,220,221,231,232,233,234,235,239,241,242,247,250,251,252,257,259,260,261,267,271,272,274,278,280,281,282,283,290,291,292,294,299,305,306,308,310,311,316,318,319,321,322,324,326,328,329,330,331,334,338,339,340,342,344,357,362],allow_dupl:152,allow_nan:296,allow_quit:328,allowed_attr:58,allowed_fieldnam:58,allowed_host:90,allowed_propnam:123,allowedmethod:296,allowext:312,almost:[19,33,41,95,115,119,125,180,182,269,276,314],alon:[13,29,49,51,56,58,73,80,86,87,116,127,138,152,261,272,298,306,316,322,324,330],alone_suffix:303,along:[5,12,33,43,48,51,60,64,70,74,78,88,91,93,96,100,104,107,114,121,122,139,144,156,179,185,205,209,215,220,242,247,296,314],alongsid:[5,38,67,188],alonw:256,alpha:[54,90,321],alphabet:[15,111,113,321],alreadi:[0,2,5,6,9,11,13,15,21,22,25,27,29,31,33,34,38,40,41,43,46,49,50,51,54,56,57,58,60,61,63,64,68,69,70,72,73,77,80,81,82,85,88,89,91,94,95,96,100,102,103,105,106,109,110,112,116,117,118,119,120,121,123,125,127,128,131,133,134,135,136,137,138,139,152,153,156,159,164,167,168,169,174,175,176,179,181,182,204,205,206,217,218,219,220,221,227,231,232,235,242,247,251,252,259,267,276,284,285,287,292,295,300,305,306,308,319,321,324,329,344,349],alredi:40,alright:179,also:[0,1,2,3,5,6,8,9,10,11,12,13,14,15,16,17,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,46,47,48,49,50,51,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,72,73,74,75,77,79,80,81,82,83,84,85,86,87,88,89,90,91,93,95,96,97,98,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,121,122,123,124,125,126,127,128,129,131,132,133,134,135,136,137,138,140,144,148,151,152,153,154,156,157,158,159,161,165,167,169,170,174,175,176,177,179,180,181,182,185,187,188,190,195,199,200,202,204,205,206,213,215,219,220,221,226,231,232,233,235,240,241,242,246,247,250,251,252,253,256,259,260,261,262,267,271,272,276,278,285,287,290,291,294,295,298,299,308,312,314,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,334,336,338,341,344,346,362,363],alt:321,alter:[0,4,23,41,64,111,137],altern:[23,29,33,34,38,51,55,57,63,64,68,72,76,81,87,90,111,112,114,118,119,122,131,133,138,140,167,168,175,203,206,221,224,241,242,285,324,336,344],although:[22,29,39,42,63,119,156,180,181,185,312,340,344],althougn:46,altogeth:[50,103,114],alu:33,alwai:[0,2,4,6,8,11,12,13,14,20,21,23,25,27,30,31,33,34,37,38,39,43,47,49,51,57,58,61,62,63,64,69,72,73,74,77,80,85,86,88,89,90,91,95,96,102,105,107,109,112,114,115,121,123,125,126,127,128,131,134,135,137,144,152,153,154,156,158,159,164,167,170,175,176,177,199,205,206,212,224,227,241,242,246,247,250,251,252,259,261,267,269,272,276,284,287,290,291,295,296,299,306,308,313,316,317,318,319,321,324,334,336,340,341,344,345,362],always_pag:329,always_return:267,amaz:75,amazon:[79,90],ambianc:108,ambigu:[41,154,174,189,247,318],ambiti:[108,129],amend:131,amfl:14,ammo:21,among:[2,35,36,43,62,64,79,89,104,111,123,127,165,182,224,232,242,341],amongst:[77,200],amor:196,amount:[11,16,37,43,61,68,73,102,103,114,123,169,217,218,219,220,221,247,308,326],amp:[40,83,92,94,105,141,142,262,264,267,275,277,285,293,305,308],amp_client:[141,142,262],amp_maxlen:293,amp_port:90,amp_serv:[141,142,262,275],ampclientfactori:264,ampersand:108,amphack:276,ampl:124,amplauncherprotocol:267,ampmulticonnectionprotocol:[264,276,277],ampprotocol:264,ampserverclientprotocol:264,ampserverfactori:277,ampserverprotocol:277,amsterdam:90,anaconda:9,analog:[49,83],analys:51,analysi:210,analyz:[15,33,41,51,80,118,150,159,175,206,251,252,257,267,329,344],anchor:[175,221,239,318],anchor_obj:221,ancient:114,andr:24,android:[139,364],anew:[63,111,267],angl:129,angri:41,angular:[43,169],ani:[0,1,2,5,6,8,10,11,12,14,15,16,19,20,21,22,23,24,25,27,30,31,33,34,36,37,38,39,40,41,42,43,44,48,49,50,51,54,56,57,58,59,60,61,63,64,65,68,70,72,73,74,76,77,79,80,81,82,83,84,85,86,87,88,89,90,91,95,96,97,98,100,102,103,104,105,107,109,112,114,115,116,117,118,119,121,122,123,125,126,127,128,129,131,133,134,135,136,137,138,139,140,144,148,150,151,152,153,154,156,157,159,165,169,170,175,176,177,179,180,181,182,186,187,188,189,190,194,199,202,204,205,206,209,210,213,217,218,219,220,221,223,224,231,233,234,235,241,242,247,250,251,252,256,257,259,260,261,264,265,267,269,271,272,276,277,279,285,286,287,290,291,295,296,298,306,307,308,312,316,317,318,319,321,322,323,325,326,327,328,329,330,336,337,338,339,340,341,343,344,362],anim:[27,52],anna:[43,58,63,72,117,118,123,159],annoi:[12,85,91],annot:79,announc:[25,37,43,79,116,123,128,157,169,197,217,218,219,220,221,247],announce_al:[285,308],announce_move_from:[25,77,89,197,247],announce_move_to:[25,77,89,197,247],annoy:144,anonym:[4,66,69,206],anonymous_add:206,anoth:[0,8,10,11,13,14,16,21,22,29,31,33,36,39,42,43,46,49,51,56,57,58,62,63,64,67,69,77,78,80,89,90,91,96,97,98,102,105,106,108,109,111,112,113,114,116,121,123,127,131,132,136,137,138,139,140,144,152,153,156,159,164,165,175,179,180,182,188,194,199,204,206,215,217,218,219,220,221,232,235,239,247,250,308,316,318,322,326,328,329,336,344],another_batch_fil:322,another_nod:328,another_script:102,anotherscript:102,ansi:[24,43,53,55,74,81,137,141,142,156,183,190,202,272,279,287,290,295,296,320,330,336,343,364],ansi_escap:321,ansi_map:321,ansi_map_dict:321,ansi_pars:321,ansi_r:321,ansi_regex:321,ansi_sub:321,ansi_xterm256_bright_bg_map:321,ansi_xterm256_bright_bg_map_dict:321,ansimatch:321,ansimeta:321,ansipars:321,ansistr:[141,321,330],ansitextwrapp:330,answer:[0,11,21,25,26,33,46,51,61,63,67,69,70,73,95,96,103,127,265,271],anti:63,anul:8,anwer:44,anybodi:[59,103],anymor:[4,181,195,203,204,235,328,340],anyon:[1,4,12,21,25,29,41,42,54,58,60,76,80,85,90,116,118,119,123,138],anyth:[0,1,5,11,13,16,19,20,22,23,26,29,31,33,34,40,41,42,46,49,51,56,61,63,64,69,73,80,82,83,85,87,89,90,91,94,95,96,100,102,104,106,111,116,118,121,123,125,127,128,130,131,133,135,136,137,138,152,154,168,180,206,215,217,218,219,220,221,242,279,313,322,328],anywai:[0,4,14,20,51,55,75,76,91,95,108,114,140,179,181,186],anywher:[33,51,60,64,95,96,125,134,326],apach:[7,23,90,103,139,312,364],apache2:8,apache_wsgi:8,apart:[2,11,20,27,34,47,55,63,80,81,100,104,125,126,127,134,221],api:[13,15,26,27,33,34,42,43,47,48,52,59,60,71,73,89,96,105,109,111,120,125,133,138,139,141,144,158,169,171,177,186,306,316,318,322,323,329,363,364],api_kei:71,api_secret:71,apostroph:15,app:[4,40,71,80,86,134,135,136,138,139],app_id:133,app_label:145,appar:[48,58,126],apparit:233,appeal:[51,61,114],appear:[9,10,21,22,25,26,27,30,38,43,47,48,51,60,63,65,66,68,72,80,82,90,95,96,100,102,104,106,111,114,123,126,127,131,137,138,141,156,166,182,195,206,212,235,247,291,292,315,318,330,336,337],append:[20,22,25,27,31,39,40,43,49,50,51,68,69,80,85,88,89,90,91,93,96,97,116,123,127,133,138,154,159,166,182,199,206,242,300,322,336,337,344],appendix:241,appendto:137,appform:133,appl:[179,247],appli:[0,8,9,13,16,22,23,31,33,36,37,51,60,80,81,102,106,111,115,121,125,126,128,133,144,150,152,167,183,217,218,219,220,221,235,242,247,251,252,256,261,308,316,317,318,321,322,327,330,331,341,344],applic:[8,40,63,79,80,86,94,100,103,112,124,128,133,134,135,136,144,187,188,221,267,270,280,284,291,305,306,312,354,362],applicationdatareceiv:290,applied_d:133,apply_damag:[217,218,219,220,221],apply_turn_condit:219,appnam:[11,80],appreci:[22,37,70,78,334],approach:[22,25,39,56,77,91,106,115,133,180,221],appropri:[8,9,23,31,33,36,55,71,91,106,119,121,129,133,138,144,157,175,190,267,306,338,340,344],approrpri:40,approv:[133,134,138],approxim:[5,43,169,344],april:62,apt:[8,63,67,75,90,103,131],arbitr:61,arbitrari:[11,13,19,27,46,59,64,80,96,97,100,111,125,137,138,139,140,144,175,187,215,221,233,247,252,259,265,276,296,316,325,336,337,340],arcan:129,archer:252,architectur:[80,252],archiv:[79,103],archwizard:252,area:[2,22,24,48,49,51,58,61,79,117,122,127,138,231,235,241,327,328,330],aren:[0,4,29,39,69,103,127,131,133,136,138,144,182,188,195,203,219,337,340],arg1:[80,154,167,168,170,250,316,336],arg2:[154,167,168,170,250,316,336],arg:[1,5,10,21,22,25,29,30,33,38,39,40,41,42,43,51,58,59,68,71,73,74,80,81,83,85,88,96,109,114,115,116,119,121,123,129,132,137,144,145,146,147,148,151,154,159,167,168,170,175,176,177,179,182,184,187,189,192,195,197,203,204,205,206,212,213,214,215,217,218,219,220,221,223,226,227,231,232,233,234,235,238,239,241,242,245,246,247,250,251,252,255,256,259,260,261,264,272,273,274,276,277,278,279,284,285,287,288,290,291,292,295,296,300,306,308,312,315,316,317,318,319,321,328,329,330,331,333,334,336,337,340,342,344,345,357,362],arg_regex:[41,44,154,159,165,166,170,171,174,182,201,326],arglist:[167,168],argpars:234,argu:11,argument:[3,4,5,10,12,14,20,21,22,23,25,27,29,31,33,34,40,41,42,43,46,48,50,52,57,58,59,62,69,74,80,81,83,85,87,88,89,93,95,96,102,109,111,114,115,119,123,124,125,127,129,134,139,144,146,150,151,153,154,156,157,159,164,165,166,167,168,169,170,175,176,180,182,184,187,188,189,192,194,195,197,200,204,205,206,210,212,217,218,219,220,221,233,234,242,247,250,251,252,257,259,260,261,265,267,272,276,278,279,285,286,287,290,291,295,296,298,299,305,306,307,308,310,311,316,317,318,319,321,322,324,326,327,328,329,330,334,336,338,340,341,344,362,364],argumentpars:234,argumnet:330,argumu:336,aris:103,arm:[26,33,203],armi:85,armor:[29,82,182,218],armour:29,armouri:77,armpuzzl:203,armscii:[15,113],arnold:87,around:[0,4,10,13,14,15,21,23,29,31,34,38,39,42,43,49,55,58,61,63,64,69,70,71,73,77,79,80,85,89,90,91,96,109,111,113,114,116,117,119,121,123,129,136,138,139,159,167,168,182,184,194,203,206,221,224,231,232,233,235,247,321,322,330,337],arrai:[88,91,291,344],arrang:22,arrayclos:[88,291],arrayopen:[88,291],arriv:[0,25,29,43,73,77,83,105,159,279],arrow:[42,137],art:[114,122,327],articl:[4,15,21,39,41,48,57,61,79,113,127,131,335],article_set:335,artifact:330,artifici:73,arx:79,arxcod:[79,139,364],as_view:[175,239,318],ascii:[9,15,111,113,144,200,327,330,344],asciiusernamevalid:144,asdf:159,ashlei:[182,188,190,215,217,218,219,220,221],asian:344,asid:[9,227],ask:[1,10,21,23,26,34,37,42,43,46,48,50,54,58,63,67,68,69,70,73,84,90,91,93,97,119,124,131,133,152,154,159,179,184,193,201,204,234,265,267,294,328,331,344],ask_choic:265,ask_continu:265,ask_input:265,ask_nod:265,ask_yesno:265,asn:209,aspect:[48,51,57,60,64,68,73,86,109,127,190],assert:[116,127],assertequ:127,assertregex:127,asserttru:127,asset:[103,136,271],assetown:9,assign:[2,6,11,12,13,20,36,43,51,56,58,80,87,89,94,97,102,109,112,115,116,119,121,123,131,137,138,144,150,151,153,159,166,167,168,170,183,187,188,206,217,218,219,220,221,233,242,246,247,251,252,272,279,285,287,290,306,318,325],assist:90,associ:[4,11,29,43,51,79,83,90,105,122,135,138,144,149,159,175,192,195,206,247,306,308,317,362],assort:362,assum:[0,3,5,9,12,13,14,15,19,20,21,22,25,27,28,29,31,33,34,37,39,40,41,43,44,46,47,49,51,55,56,58,60,62,68,73,74,75,80,81,82,84,85,89,90,95,96,97,100,102,103,105,106,108,109,110,111,113,115,116,117,118,120,121,123,127,128,132,133,134,138,150,152,153,154,156,159,170,175,180,181,206,213,232,233,241,247,252,257,259,291,308,321,322,328,336,344,349,362],assumpt:151,assur:[49,125],asterisk:[2,12,38,43,157],astronaut:77,astronom:62,async:[133,139,344,364],asynccommand:10,asynchron:[27,28,29,33,45,55,64,92,93,139,146,247,276,277,291,337,344],at_:[125,334],at_access:[144,247],at_account_cr:[2,144],at_after_mov:[77,89,96,117,197,247],at_after_object_leav:235,at_after_travers:[89,197,232,247],at_befor:247,at_before_drop:[218,221,247],at_before_g:[218,221,247],at_before_get:[221,247],at_before_leav:89,at_before_mov:[25,77,89,197,217,218,219,220,221,247],at_before_sai:[96,197,206,247],at_channel_cr:175,at_char_ent:117,at_cmdset_cr:[5,21,22,25,30,31,33,41,44,57,58,62,81,85,116,121,123,152,160,161,162,163,179,180,181,182,185,187,199,201,202,203,206,214,217,218,219,220,221,224,230,231,232,233,326,328,329],at_cmdset_get:[144,247,306],at_db_location_postsav:246,at_defeat:[217,218,219,220,221],at_desc:247,at_disconnect:[144,306],at_drop:[197,218,221,247],at_end:256,at_err:[10,344],at_err_funct:10,at_err_kwarg:[10,344],at_failed_login:144,at_failed_travers:[89,197,212,232,247],at_first_login:144,at_first_sav:[144,175,247],at_first_start:318,at_get:[182,197,221,247],at_giv:[218,221,247],at_heard_sai:118,at_hit:231,at_idmapper_flush:[259,318,334],at_init:[6,107,125,144,175,231,232,233,247],at_initial_setup:[104,271],at_initial_setup_hook_modul:271,at_login:[40,125,278,279,287,290,295,296,306],at_look:[96,144,247],at_message_rec:144,at_message_send:144,at_msg_rec:[144,189,247],at_msg_send:[144,146,189,247],at_new_arriv:231,at_now_add:86,at_object_cr:[5,6,21,25,31,39,43,58,60,73,80,81,85,89,96,121,123,125,132,159,187,189,206,212,214,217,218,219,220,221,226,231,232,233,247,318],at_object_delet:[197,247],at_object_leav:[233,235,247],at_object_post_copi:247,at_object_rec:[89,117,233,235,247],at_password_chang:144,at_post_cmd:[30,33,150,154,167,170],at_post_command:33,at_post_disconnect:144,at_post_login:[25,144],at_post_portal_sync:305,at_post_puppet:[96,197,247],at_post_unpuppet:[96,247],at_pre_cmd:[33,150,154,167,170],at_pre_command:33,at_pre_login:144,at_pre_puppet:[96,247],at_pre_unpuppet:[197,247],at_prepare_room:235,at_reload:[43,169,305],at_renam:318,at_repeat:[102,116,120,121,125,146,179,184,195,217,218,219,220,221,223,227,259,300,331],at_return:[10,344],at_return_funct:10,at_return_kwarg:[10,344],at_sai:[118,197,247],at_script_cr:[102,116,120,121,146,179,184,195,204,205,217,218,219,220,221,223,227,235,251,259,300,331],at_search_result:[168,344],at_server_cold_start:305,at_server_cold_stop:305,at_server_connect:285,at_server_reload:[102,110,144,146,247,259],at_server_reload_start:305,at_server_reload_stop:[25,305],at_server_shutdown:[102,110,144,146,247,259],at_server_start:305,at_server_startstop:[25,104],at_server_stop:305,at_shutdown:305,at_start:[102,116,146,195,227,235,256,259],at_startstop_modul:261,at_stop:[102,116,121,217,218,219,220,221,227,259],at_sunris:62,at_sync:[306,307],at_tick:[115,261],at_travers:[89,197,213,235,247],at_traverse_coordin:235,at_turn_start:219,at_upd:[219,257],at_weather_upd:132,atlanti:24,atom:98,atop:235,atribut:325,att:51,attach:[4,11,21,41,43,56,58,64,77,89,95,102,105,110,112,119,140,154,159,164,167,189,199,215,235,242,247,258,304,315,319],attachmentsconfig:4,attack:[14,28,29,30,46,51,77,90,103,116,119,122,134,139,153,206,215,217,218,219,220,221,231,232,247,252,285],attack_count:220,attack_messag:73,attack_nam:220,attack_skil:252,attack_summari:73,attack_typ:221,attack_valu:[217,218,219,220,221],attempt:[0,2,22,24,29,31,43,51,60,61,87,91,103,106,119,120,135,156,159,187,210,212,217,218,219,220,221,264,267,272,305,310,318,344,362],attent:[38,56,58,89,103,111],attitud:57,attr1:[43,159,203],attr2:[43,159,203],attr3:[43,159],attr:[11,22,43,49,51,58,80,109,119,136,137,159,166,180,233,241,251,252,306,334,340],attr_categori:315,attr_eq:241,attr_g:[80,241],attr_gt:[80,241],attr_kei:315,attr_l:[80,241],attr_lockstr:315,attr_lt:[80,241],attr_n:[80,241],attr_nam:159,attr_obj:318,attr_object:318,attr_typ:315,attr_valu:315,attract:37,attrcreat:[80,316],attread:11,attredit:[11,80,316],attrib:242,attribut:[0,2,6,12,20,22,25,27,28,30,39,41,42,43,45,46,49,50,51,56,57,58,60,61,69,73,74,77,80,81,82,84,85,86,87,89,91,95,102,105,108,109,112,115,116,119,123,125,127,133,134,138,139,141,142,144,145,148,153,159,168,169,173,175,180,181,187,194,195,202,203,206,213,217,218,219,220,221,226,231,232,233,241,244,246,247,250,251,252,254,256,257,272,306,314,315,317,318,319,324,325,337,338,341,344,357,362,364],attribute1:123,attribute2:123,attribute_nam:[144,206,247,341],attributeerror:[42,60,86,306,316],attributeform:315,attributeformset:315,attributehandl:[1,125,306,316,339,344],attributeinlin:[145,173,244,254,315],attributeobject:11,attrkei:252,attrnam:[11,43,51,80,109,125,159,241,318],attrread:[11,80,316],attrtyp:[11,316,317],attrvalu:51,attryp:317,atttribut:49,atyp:242,audibl:205,audio:137,audit:[141,142,175,178,207,247],audit_callback:209,auditedserversess:[209,210],auditingtest:211,aug:9,august:[9,344],aut:52,auth:[144,145,148,164,287,349,357,362],auth_password:287,auth_profile_modul:148,authent:[40,103,105,107,133,138,144,278,285,287,290,296,306,308,349,362],authenticated_respons:360,author:[41,90,126,144,192,195],auto:[0,5,12,14,21,31,32,33,34,38,42,43,45,51,63,67,71,89,95,96,105,122,131,133,138,141,144,148,150,154,158,159,166,169,170,205,206,227,236,239,242,247,252,256,259,261,264,267,278,288,295,296,305,308,318,323,329,330,349],auto_help:[33,41,44,51,68,69,154,170,188,230,249,328,329],auto_help_display_kei:[154,170,328],auto_id:[145,237,244,357],auto_look:[51,188,230,249,328],auto_now_add:86,auto_quit:[51,188,230,249,328],auto_transl:205,autobahn:[278,284,295],autodoc:38,autofield:133,autologin:349,autom:[14,36,57,58,67,79,86,100,103,110,362],automat:[0,6,10,14,19,22,23,27,30,31,34,37,38,41,43,46,47,50,51,55,58,60,62,64,65,66,67,68,71,72,80,81,84,85,86,90,96,97,100,102,104,105,109,111,116,117,118,119,121,122,123,124,125,126,128,131,135,136,139,140,144,152,153,154,159,164,165,167,174,179,180,181,182,194,195,196,200,201,203,204,205,206,214,221,226,227,234,242,246,247,258,259,260,261,272,281,284,287,292,305,308,322,326,328,329,330,344,350],automatical:261,autostart:[258,324],autumn:[97,99,187],avail:[0,5,7,8,10,11,13,16,21,22,23,25,26,31,33,36,38,39,40,41,42,43,44,46,48,49,51,53,57,58,60,62,63,64,65,72,74,75,76,77,78,79,80,81,82,85,88,89,90,91,95,96,98,100,102,104,105,106,108,109,110,111,113,114,116,119,121,122,123,125,127,128,130,131,133,134,137,138,139,141,144,150,151,152,153,154,156,159,161,164,165,166,167,168,169,170,171,179,180,181,185,187,189,195,199,202,204,205,206,214,215,217,218,219,220,221,224,232,233,241,242,247,250,251,252,256,272,296,299,310,321,322,323,328,329,330,336,344,362],available_choic:[51,328],available_func:336,available_funct:251,available_languag:205,available_weapon:232,avatar:[64,88,96,247,287],avatarid:287,avenew:41,avenu:182,averag:[13,43,90,93,169,195,205,234],avoid:[8,11,23,26,27,31,33,37,38,40,42,43,51,80,81,85,95,97,100,109,111,114,125,126,127,129,131,138,139,152,159,204,205,234,235,241,246,272,276,286,296,306,316,318,321,322,323,326,329,334],awai:[0,9,10,11,14,15,21,26,29,42,43,46,49,51,55,66,68,69,73,80,86,90,96,102,105,109,111,121,123,131,165,182,215,218,221,224,226,231,233,235,247,256,307,321,344],await:10,awar:[11,14,26,31,33,44,51,88,95,96,110,125,126,132,133,189,204,206,231,234,235,247,318,321],awesom:[63,135],aws:90,axhear:241,axi:200,azur:100,b3cbh3:133,b64decod:340,b64encod:340,b_offer:179,baaaad:127,babi:138,bacground:67,back:[0,3,5,10,11,12,13,14,20,21,22,23,25,26,27,29,31,33,34,36,38,43,46,49,50,51,56,58,60,61,63,64,67,69,73,74,81,83,85,86,87,90,91,95,96,97,100,102,105,106,110,111,113,116,118,119,121,122,123,125,126,131,133,135,137,141,144,153,156,159,164,168,179,180,206,212,215,220,224,249,259,267,272,276,279,285,287,290,305,318,325,328,329,337,344],back_exit:0,backbon:[133,322],backend:[23,36,109,127,135,141,142,344,346,348],background:[10,17,29,51,67,90,103,110,114,126,133,183,190,321,336,362],backpack:31,backslash:[114,329],backtick:[38,131],backtrack:131,backup:[10,89,90,105,131,168,322],backward:[50,51,58,121,337],bad:[0,22,24,37,41,58,64,70,76,85,119,127,210,269],bad_back:242,badg:130,bag:344,bake:100,balanc:[29,56,61,79,116,330],balk:95,ball:[31,59,104,151,152,252],ballon:203,balloon:203,ban:[7,25,80,139,144,157,242,364],band:[45,88,118,137,287,290,291],bandit:46,bandwidth:280,banid:[43,157],bank:61,bar:[51,82,83,84,88,112,135,137,190,206,215,291,328],bare:[33,55,58,73,104,190,218],barehandattack:56,bargain:86,barkeep:[42,206],barter:[61,63,102,117,141,142,178],bartl:79,bas:120,base:[3,4,6,9,13,16,17,20,21,22,23,30,33,34,36,38,39,41,42,43,49,51,53,55,56,57,58,60,61,63,64,67,69,72,73,75,77,79,80,83,85,86,89,90,94,96,100,102,103,105,108,111,113,115,119,120,123,124,125,126,127,129,130,133,134,136,137,138,139,141,144,145,146,147,148,150,152,153,154,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,173,174,175,176,177,179,180,181,182,184,185,186,187,188,189,192,193,195,196,197,198,199,200,201,202,203,204,205,206,210,211,212,213,214,215,217,218,219,220,221,223,224,226,227,228,230,231,232,233,234,235,237,238,239,242,244,245,246,247,249,251,252,254,255,256,257,258,259,260,261,263,264,265,267,269,270,273,274,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,298,299,300,303,305,306,307,308,310,311,312,315,316,317,318,319,321,322,323,326,327,328,329,330,331,333,334,335,336,337,338,339,340,341,342,343,344,349,351,352,357,360,362,364],base_account_typeclass:[2,141],base_channel_typeclass:141,base_char_typeclass:120,base_character_typeclass:[43,81,120,133,134,141,144,159],base_exit_typeclass:141,base_field:[145,237,244,315,357],base_guest_typeclass:[66,141],base_object_typeclass:[109,141,252,318],base_random:250,base_room_typeclass:141,base_script_path:241,base_script_typeclass:[102,141],base_set:9,baseclass:232,basecontain:323,baseinlineformset:315,baseline_index:344,baseobject:125,baseopt:338,basepath:344,basetyp:[247,322],basetype_posthook_setup:247,basetype_setup:[39,80,96,144,146,175,247],bash:[36,38,63,67,232],basi:[4,33,37,62,90,136,138,167,177,206,241,296,318,327],basic:[0,2,3,6,9,15,16,17,19,20,22,26,29,31,33,34,36,39,40,43,46,47,48,56,57,58,60,61,62,69,73,77,79,80,81,83,86,87,110,111,113,116,117,118,121,122,124,126,128,133,134,135,137,139,144,146,159,164,166,175,177,188,194,200,203,218,220,232,241,243,247,298,326,329,342,346,357,362,364],bat:[9,63],batch:[18,20,43,48,63,79,111,122,124,139,141,142,158,252,276,316,319,320,364],batch_add:[252,316,319],batch_cmd:14,batch_cod:[13,322],batch_code_insert:13,batch_create_object:252,batch_exampl:322,batch_import_path:[13,14],batch_insert_fil:14,batch_update_objects_with_prototyp:252,batchcmd:[43,158],batchcmdfil:[14,322],batchcod:[14,79,111,158],batchcode_map:111,batchcode_world:111,batchcodefil:13,batchcodeprocessor:322,batchcommand:[14,20,22,63,122,158,322],batchcommandprocessor:322,batchfil:[14,15,111,322],batchprocess:[141,142,149,155],batchprocessor:[13,141,142,158,320],batchscript:[13,322],batteri:144,battl:[79,103,116,122,217,218,219,220,221],battlecmdset:[217,218,219,220,221],baz:215,bazaar:108,beach:111,bear:[204,231],beat:[61,116],beaten:[116,233],beauti:[22,49,133],beazlei:79,becam:[29,126],becaus:[0,2,6,8,9,10,11,12,13,15,16,21,22,25,29,31,36,38,40,41,42,44,46,51,54,56,59,64,68,73,76,77,80,89,91,95,96,107,108,109,111,115,116,117,119,125,126,130,133,134,136,145,153,171,175,186,194,197,205,220,224,235,247,259,279,285,298,308,315,321,338,340],becom:[0,5,10,22,37,38,41,42,43,47,49,51,56,59,61,64,70,73,78,80,81,86,87,88,95,96,102,104,109,111,119,128,156,189,203,205,215,218,252,306,322,328],bed:61,been:[0,4,5,6,13,14,19,21,22,23,36,38,41,42,43,46,49,51,58,69,70,76,79,85,91,93,94,96,103,105,116,117,123,126,128,131,133,134,135,138,152,153,158,159,167,168,175,180,195,197,200,203,204,206,217,218,219,220,221,233,235,239,242,246,247,251,252,261,269,281,285,287,295,305,306,307,308,310,315,318,322,326,327,344,362],befit:125,befor:[1,4,10,11,12,13,14,15,20,21,22,25,27,28,29,31,33,37,41,42,43,46,48,49,51,56,57,58,60,61,67,69,71,75,77,79,80,81,84,85,86,90,91,93,96,97,100,102,103,104,106,107,108,109,111,112,113,114,115,116,117,118,119,121,123,124,125,126,127,131,132,133,134,135,137,138,139,144,150,151,154,159,164,167,171,175,184,186,187,188,189,190,194,197,198,201,205,206,209,210,215,217,218,219,220,221,226,227,230,232,233,235,241,242,246,247,250,252,259,260,261,267,276,285,287,293,301,303,305,306,310,312,316,321,322,323,324,328,329,330,331,335,337,340,344,362],beforehand:[11,131,323],beg:14,beggar:0,begin:[0,4,6,10,13,14,20,22,25,33,38,41,42,43,46,50,51,55,58,61,69,72,80,91,95,96,106,107,111,116,117,119,127,132,134,165,194,197,206,215,217,218,219,220,221,247,259,321,322,328,341],beginn:[55,60,77,79,91,95,124],behav:[11,13,20,22,29,69,91,95,107,110,127,251,344],behavior:[0,5,11,31,33,41,50,68,69,93,96,102,109,114,126,135,137,138,144,154,170,182,188,219,221,233,234,267,315,328],behaviour:[11,31,33,80,126,200,313,324,330,344],behind:[11,12,21,33,38,43,49,51,55,59,61,63,74,97,109,112,114,122,126,131,158,204,233,256,261,334],behvaior:329,being:[0,5,6,10,11,13,20,21,22,25,28,31,33,34,36,37,42,43,51,54,56,59,61,63,64,69,83,88,90,91,93,95,96,102,103,107,109,111,115,118,125,126,127,129,131,133,138,144,151,159,165,169,175,184,185,189,199,205,206,217,218,219,220,221,226,227,233,239,247,269,272,279,308,310,315,318,321,322,324,328,329,330,344,363],beipmu:24,belong:[4,14,43,64,83,95,103,112,119,133,140,153,206,215,235,239,250],below:[0,1,5,8,9,10,11,12,13,14,15,19,20,22,23,25,27,29,31,33,34,36,38,39,42,43,48,49,50,51,57,58,59,60,61,62,63,64,67,69,70,74,80,81,87,88,90,94,95,96,100,102,105,106,109,110,111,114,117,118,119,123,125,127,131,133,134,136,138,140,148,159,167,168,177,180,182,185,190,197,200,205,206,215,217,218,219,220,221,228,234,239,241,246,247,256,279,299,316,318,319,328,330,335,336],belt:77,beneath:27,benefici:[49,219],benefit:[78,90,100,103,108,127,153,316,322,328],besid:[0,14,31,106,111,190],best:[9,22,24,26,37,50,51,57,58,59,61,72,76,102,103,104,108,133,135,139,166,180,205,215,234,252,267,287,330,338,364],bet:[31,105,138,318],beta:[35,54,90],betray:51,better:[0,9,15,23,25,34,41,42,44,45,51,55,58,59,61,64,68,70,73,81,85,86,91,93,95,108,109,112,114,133,134,181,213,218,224,233,252,284,287,290,298,322],bettween:73,between:[0,2,10,14,22,25,28,31,33,36,38,39,40,41,43,46,49,56,57,58,64,67,69,73,76,83,85,87,88,90,91,100,102,105,109,112,113,114,116,120,121,122,123,124,126,131,137,138,140,151,154,159,164,166,169,170,177,179,182,183,194,195,197,198,199,200,202,204,205,206,215,217,218,219,220,221,247,252,261,267,276,279,286,287,290,291,298,299,306,319,321,322,324,328,330,331,336,344,351],bew:187,bewar:39,beyond:[1,2,9,22,25,33,37,52,57,64,88,89,90,102,127,134,154,159,170,177,180,206,215,233,251,318,328,330],bg_colormap:343,bgcolor:343,bgfgstart:343,bgfgstop:343,bgstart:343,bgstop:343,bias:159,bidirect:276,big:[9,11,13,14,20,25,28,29,33,37,45,57,73,80,96,122,138,140,151,168,322,329,341,344],bigger:[21,37,40,69,119,123],biggest:[72,138],biggui:33,bigmech:21,bigsw:29,bikesh:119,bill:[90,103],bin:[4,9,36,47,63,64,70,75,96,100],binari:[23,47,63,93,95,278,280,295],bind:67,birth:357,bit:[0,4,9,12,17,22,26,29,35,39,41,42,43,46,59,61,62,63,69,75,76,81,96,102,106,109,121,122,127,131,134,137,138,171,186,242,247,322],bitbucket:57,bite:[61,111],black:[73,114,126],blackbird:79,blackbox:138,blacklist:103,blade:232,blank:[51,86,117,134,144,188,321],blankmsg:188,blarg:83,blargh:109,blatant:12,blaufeuer:119,bleed:[114,131,330],blend:203,blender:203,bless:138,blind:[114,118,224,227],blindcmdset:224,blindedst:227,blindli:242,blink:[20,226,227,343],blinkbuttonev:227,blist:97,blob:[3,37,38,41,46,95,96,104,127,135,138],block:[3,12,25,28,43,50,51,55,58,64,69,80,90,91,97,102,103,110,114,123,129,133,134,139,157,158,159,187,221,230,231,232,235,249,286,322,328,336,344,362],blocking_cmdset:25,blockingcmdset:25,blockingroom:25,blocktitl:69,blog:[37,55,79,90,98],blowtorch:24,blue:[13,57,81,114,126,232],blueprint:[57,96,111,137],blurb:54,board:[34,49,61,79,80,121],boat:[31,121,153],bob:[33,43,81,138,157],bodi:[3,17,22,27,33,38,41,46,51,58,95,109,127,129,133,175,193,199,269,324,344],bodyfunct:[20,102,141,142,178,222,228],bog:21,boi:112,boiler:125,bold:54,bolt:252,bone:[55,73],bonu:[41,73,90,218,219,256],bonus:[29,218],boo:57,book:[3,49,57,62,73,79,91,95,109,135],bool:[2,31,33,34,51,74,84,102,144,145,146,148,150,151,152,153,154,159,173,175,176,177,179,180,182,184,185,188,190,192,195,197,200,204,205,206,215,217,218,219,220,221,226,235,238,242,244,246,247,250,251,252,254,256,257,258,259,260,261,267,272,273,278,279,284,285,286,290,295,296,304,306,308,310,316,317,318,319,321,322,324,326,328,329,330,331,334,336,339,341,343,344],booleanfield:[133,145,237],boom:[21,51],boot:[80,100,110,157,261],bootstrap:[4,124,138,139,364],border:[43,58,111,156,188,327,330],border_bottom:330,border_bottom_char:330,border_char:330,border_left:330,border_left_char:330,border_right:330,border_right_char:330,border_top:330,border_top_char:330,border_width:330,borderless:58,borderstyl:188,bore:[12,55,103],borrow:[31,63,152,276],bort:52,boss:58,bot:[43,47,65,72,93,103,119,133,141,142,143,148,164,175,272,278,279,286,308,362],bot_data_in:[146,272],both:[0,11,15,19,22,23,25,26,27,31,33,34,36,37,38,40,43,44,49,51,56,57,58,62,65,69,71,74,79,84,85,86,87,88,90,91,95,97,103,104,105,106,110,111,116,119,121,124,125,127,128,131,133,134,136,138,150,152,159,164,169,177,179,183,190,197,199,200,201,203,212,215,220,221,233,242,247,251,252,253,256,259,261,276,285,295,296,305,307,310,316,317,321,324,328,330,339,344],bother:[29,103,128,174],botnam:[43,72,164,279,308],botnet:103,botstart:146,bottom:[4,39,41,52,54,57,58,60,69,85,95,101,106,111,125,127,133,137,153,199,220,235,252,322,329,330],bought:85,bouncer:[27,103,327],bound:[6,27,57,108,192,344],bounti:70,bountysourc:70,bow:252,box:[0,3,8,20,42,43,46,58,63,66,69,70,71,73,80,87,90,104,106,109,111,123,135,138,159,206,241,276,322,357],brace:[0,22,25,41,91,197,247,321],bracket:[38,43,96,129,169,183],brainstorm:[139,364],branch:[9,36,37,38,41,63,70,100,204,215],branchnam:131,brandymail:199,bread:16,breadth:221,break_lamp:226,break_long_word:330,break_on_hyphen:330,breakdown:[43,169],breakpoint:[16,106,141],breez:[102,132],breviti:58,bribe:51,brick:82,bridg:[22,23,53,79,83,105,233],bridgecmdset:233,bridgeroom:233,brief:[3,16,19,20,21,25,46,58,60,85,86,95,96,101,110,124,131,139,188,234,247,311],briefer:[89,110],briefli:[16,90,110],bright:[81,114,126,183,321],brightbg_sub:321,brighten:114,brighter:114,brilliant:131,bring:[23,49,96,100,103,121,123,133,136,215,221,224,231,309],broad:39,broadcast:[43,164,276],broader:[39,206,247],broadli:94,broken:[61,108,114,205,226,227,336],brought:102,brows:[3,9,25,39,55,58,62,69,85,90,91,103,106,123,131,136,137,138,362],browser:[3,8,9,16,38,55,63,64,67,69,70,75,77,90,95,96,101,103,133,134,135,136,137,138,295,296,362],brutal:234,bsd:78,bsite:135,btest:114,btn:[17,70],bucket:209,buf:326,buffer:[22,33,50,137,168,269,296,326],bug:[10,13,26,37,42,54,57,60,61,70,78,94,95,96,110,123,127,131,227,318],buggi:[11,328],bui:[85,138,179],build:[1,6,7,9,10,11,13,14,15,27,31,36,47,51,55,57,60,63,64,68,69,75,77,79,80,81,86,87,89,96,100,105,106,108,109,112,113,119,120,122,123,125,129,130,136,137,139,140,141,142,149,151,155,157,158,165,166,175,180,187,193,200,205,206,212,231,234,242,247,251,252,267,278,279,322,330,357,363,364],build_exit:200,build_forest:200,build_map:200,build_match:151,build_mountain:200,build_templ:200,builder:[2,4,14,19,22,25,43,56,58,60,61,68,80,85,108,109,112,114,123,124,139,157,159,164,165,169,180,182,187,188,200,203,206,212,233,234,235,242,247,250,298,318,322,363,364],buildier:252,building_menu:[141,142,178],buildingmenu:[22,180],buildingmenucmdset:180,buildmap:200,buildprotocol:[264,277,278,279],buildshop:85,built:[13,16,20,27,38,40,51,54,55,57,58,61,63,64,73,75,77,95,96,100,103,121,122,123,135,138,139,148,177,203,205,239,246,256,261,316,318,319,322,328,335],builtin:[94,280],bulk:[96,103],bullet:[38,61],bulletin:[61,79,80],bulletpoint:38,bunch:[15,27,58,108,113],burden:82,buri:[108,122],burn:[61,73,90,232],busi:[64,70,90,179],butch:96,butt:138,butter:16,button:[9,13,14,31,33,43,80,83,87,88,106,131,133,134,135,137,138,159,224,226,227,232,299,329],button_expos:232,buy_ware_result:85,byngyri:205,bypass:[4,10,19,20,43,58,80,116,126,144,159,175,212,241,242,318,324,341,349],bypass_superus:80,bytecod:321,bytestr:[276,344],bytestream:344,c6mq:70,c_creates_button:299,c_creates_obj:299,c_dig:299,c_examin:299,c_help:299,c_idl:299,c_login:299,c_login_nodig:299,c_logout:299,c_look:299,c_move:299,c_moves_:299,c_moves_n:299,c_social:299,cabinet:92,cabl:82,cach:[6,8,11,12,28,33,39,43,86,119,125,127,130,137,144,154,169,174,175,187,231,232,242,246,247,271,315,316,318,319,320,332,334,344],cache_inst:334,cache_lock_bypass:242,cache_s:[310,334],cached_properti:344,cactu:220,cake:31,calcul:[10,25,27,39,73,116,119,123,139,153,184,187,198,205,217,218,220,221,252,331,334,344,362],calculated_node_to_go_to:51,calculu:56,calendar:[184,198,331],call:[0,2,3,4,5,6,10,11,13,14,16,20,21,22,23,25,26,27,28,29,30,31,36,38,39,40,41,42,43,46,47,48,49,50,51,55,56,57,58,59,60,61,62,63,64,65,69,71,72,73,74,75,80,81,83,84,85,86,88,89,90,91,93,95,96,100,102,104,105,107,108,109,110,111,114,115,116,117,118,119,120,121,122,123,125,126,127,128,131,132,133,134,135,137,138,144,146,150,151,152,153,154,156,159,164,167,168,169,170,171,174,175,179,180,182,184,185,186,187,188,189,192,193,194,195,196,197,198,200,201,203,204,205,206,212,214,215,217,218,219,220,221,223,224,226,227,230,231,232,233,234,235,241,242,246,247,250,251,252,257,258,259,260,261,264,267,269,271,272,276,277,278,279,280,281,282,283,285,286,287,288,289,290,291,292,294,295,296,298,299,300,305,306,307,308,309,312,315,316,318,319,321,322,323,324,326,328,329,330,331,334,336,337,339,340,341,344,357,362],call_async:10,call_command:127,call_ev:[0,194],call_inputfunc:[83,306,308],callabl:[49,50,84,109,115,123,180,188,195,215,219,247,250,251,252,257,261,265,267,269,277,323,326,328,329,337,339,340,344],callables_from_modul:344,callbac:22,callback1:328,callback:[4,10,22,27,29,33,50,51,62,74,84,115,138,146,180,184,188,192,193,194,195,196,197,198,210,215,230,247,257,259,260,261,265,267,269,272,276,277,278,280,294,295,298,309,328,331,337,342,344,364],callback_nam:[192,195],callbackhandl:[141,142,178,191,197],called_bi:150,calledbi:344,caller:[5,10,11,13,21,22,25,27,28,29,30,33,38,41,42,43,44,49,50,56,58,59,60,71,73,80,81,82,83,85,86,87,88,89,91,111,115,116,119,121,123,125,129,137,146,150,151,152,154,156,159,160,164,165,166,167,168,169,170,174,180,188,193,199,200,201,203,206,214,215,230,232,233,234,235,242,247,249,251,322,326,328,329,336,338,344],callerdepth:344,callertyp:150,callinthread:312,calllback:194,callsign:[51,272],calm:111,came:[9,21,25,55,79,111,132,138,197,231,235,247],camp:111,campfir:111,campsit:111,can:[0,1,2,3,4,5,6,9,10,12,13,14,15,17,19,20,21,23,24,25,26,27,28,29,30,31,33,34,35,36,37,38,39,40,41,42,43,44,46,48,49,50,51,54,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,130,131,133,134,135,136,137,138,139,140,143,144,146,148,151,152,153,154,156,157,159,164,165,166,167,168,169,170,174,175,176,177,179,180,182,183,184,185,187,188,189,190,194,195,197,198,199,200,203,204,205,206,209,212,215,217,218,219,220,221,224,226,227,231,232,233,234,235,239,241,242,246,247,250,251,252,253,256,257,258,259,261,267,278,282,285,287,290,291,295,296,298,299,305,306,307,308,309,312,313,314,316,317,318,319,321,322,323,324,326,327,328,329,330,336,338,339,340,341,342,344,345,357,362,363],can_:194,cancel:[27,29,74,194,197,217,218,219,220,221,247],candid:[22,33,119,133,151,203,206,247,341],candl:153,cannot:[5,9,10,11,13,14,19,21,22,25,27,28,29,31,33,39,43,44,46,50,51,56,60,61,63,69,70,73,76,80,85,90,104,109,112,114,122,123,127,128,133,139,144,146,153,156,159,175,180,187,188,192,195,197,212,215,221,227,231,232,238,241,242,247,251,261,316,323,325,327,330,334,344],cantanker:338,cantclear:188,cantillon:79,cantmov:25,canva:49,capabl:[6,36,43,49,58,64,80,83,88,105,156,214,272,294,357],cape:57,capfirst:69,capit:[9,12,25,29,43,64,88,95,123,159,189,204,205,321],captcha:133,caption:38,captur:[25,91,138,337,362],car:[87,121],card:103,cardin:[43,44,49,58,159],care:[0,4,10,12,23,33,38,44,49,51,56,57,62,64,78,86,91,110,116,121,126,132,144,152,175,187,203,206,230,231,233,241,247,250,318,322,326,328,329,330,344],carefulli:[55,93,105,111,133],carri:[20,31,61,80,82,85,116,117,177,182,218,231,241,306,317],cascad:334,caseinsensitivemodelbackend:349,cast:[28,109,112,215,220],caster:[28,220],castl:[13,111,122,187,233],cat:[67,75],catchi:4,categor:112,categori:[1,5,11,33,36,39,43,51,68,69,86,109,112,119,127,140,155,159,166,167,168,199,215,238,239,241,251,252,316,317,319,324,335,338,341,344,362],categoris:56,category2:335,category2_id:335,category_id:335,category_index:215,cater:29,caught:[42,51,97,176],caus:[11,12,29,30,31,42,60,61,64,77,80,90,96,114,116,117,119,123,127,137,140,153,186,224,226,235,247,298,330,344],caution:[62,137,328],cave:46,caveat:[5,10],caveman:56,cblue:131,cboot:[12,164],cc1:63,cccacccc:327,ccccc2ccccc:58,cccccccc:327,ccccccccccc:58,cccccccccccccccccbccccccccccccccccc:327,ccccccccccccccccccccccccccccccccccc:327,ccreat:[41,58,65,72,98,164],cdesc:[41,164],cdestroi:164,cdmset:31,cdn:103,ceas:[43,77,159],cel:327,celebr:61,cell:[58,69,111,188,327,330],celltext:327,cemit:164,censu:317,center:[4,16,39,49,109,111,114,190,250,321,330,344],center_justifi:[109,250],centos7:67,centr:111,central:[26,55,61,64,74,100,111,123,124,127,132,138,139,144,153,177,247,252,276,324,328,334,363,364],centre_east:111,centre_north:111,centre_south:111,centre_west:111,centric:[9,80,105,123,206],cert:[8,288,292],certain:[13,14,16,19,25,29,31,33,37,38,43,48,64,75,80,88,90,97,102,105,107,108,114,115,121,138,159,176,179,205,209,227,232,235,241,259,267,273,290,294,309,315,316,317,326,330,341,344,357],certainli:[15,44,138],certbot:[67,90,103],certfil:[288,292],certif:[8,90,288,292],certonli:67,cet:337,cfg:67,cflag:75,cgi:[70,90],ch28s03:57,cha:[51,58],chain:[0,10,29,46,51,109,119,194,195,299,328,344],chain_1:0,chainedprotocol:287,chainsol:119,chair:[13,61,89,91,112,125],challeng:[73,79],chan:164,chanalia:[43,164],chanc:[21,22,28,31,54,61,66,73,115,116,122,131,152,217,218,219,220,221,224,232,233,299],chance_of_act:299,chance_of_login:299,chandler:116,chang:[2,3,4,7,8,9,11,12,13,14,15,16,19,20,21,22,23,26,29,30,31,33,34,35,36,37,39,41,42,43,45,47,49,50,51,53,54,57,61,62,63,64,66,67,68,71,73,74,75,77,78,80,81,83,84,85,86,87,89,90,91,94,95,96,100,102,104,105,107,109,110,111,112,114,115,116,118,121,123,125,126,127,132,133,134,135,137,138,139,144,145,153,154,156,157,159,164,165,170,173,175,179,180,182,186,187,189,190,192,195,197,201,202,205,206,212,213,215,217,218,219,220,221,231,232,233,234,235,239,244,247,252,254,256,257,259,261,267,272,283,298,305,306,313,315,318,322,325,326,329,330,337,338,339,340,362],change_name_color:215,changeabl:76,changelog:96,changepag:134,changepassword:12,chanlist:[43,164],channam:41,channel:[2,6,7,11,12,19,27,31,33,45,53,55,57,65,70,71,72,79,80,82,86,87,90,98,107,112,119,123,124,125,138,139,144,146,150,152,153,159,164,168,172,173,174,175,176,177,195,271,278,279,286,299,306,308,316,324,337,341,360,362,364],channel_:34,channel_ban:[41,164],channel_color:25,channel_command_class:[34,41],channel_connectinfo:306,channel_detail:362,channel_handl:[141,174],channel_list:362,channel_prefix:[25,175],channel_search:176,channel_set:177,channel_typeclass:360,channeladmin:173,channelam:174,channelattributeinlin:173,channelcmdset:31,channelcommand:[34,41,174],channelconnect:177,channelcr:[43,164],channelcreateview:175,channeldb:[41,53,125,141,173,175,177,314],channeldb_db_attribut:173,channeldb_db_tag:173,channeldb_set:[316,319],channeldbmanag:[176,177],channeldeleteview:175,channeldesc:[41,174],channeldetailtest:360,channeldetailview:[175,362],channelhandl:[34,41,141,142,150,172,175],channelkei:[41,174,176],channellist:[43,164],channellisttest:360,channellistview:362,channelmanag:[175,176],channelmixin:362,channelnam:[34,41,72,146,174,278],channeltaginlin:173,channelupdateview:175,char1:[43,73,127,165,360],char2:[43,73,127,165,360],char_health:233,char_nam:133,charac:84,charact:[0,2,5,9,11,14,15,17,19,20,21,22,23,27,28,29,30,31,33,34,36,39,40,41,42,43,45,47,49,50,51,53,55,56,57,62,68,69,71,74,76,77,80,81,83,85,86,87,88,91,95,97,102,105,111,113,114,116,117,118,119,120,121,122,124,125,127,129,135,136,138,139,141,143,144,151,152,154,156,159,160,161,165,166,167,174,175,180,181,182,187,188,189,190,192,194,195,197,199,200,202,204,205,206,209,214,215,217,218,219,220,221,223,231,232,233,235,239,242,247,259,272,293,306,311,316,318,321,322,327,328,330,336,342,344,345,357,360,362,364],character1:73,character2:73,character_cmdset:187,character_form:362,character_id:247,character_list:362,character_manage_list:362,character_typeclass:[127,144,342,360],charactercmdset:[5,21,22,25,30,31,41,43,44,57,58,60,62,81,123,161,180,182,187,199,202,212,217,218,219,220,221,233],charactercreateview:[360,362],characterdeleteview:[360,362],characterdetailview:362,characterform:[357,362],characterlistview:[360,362],charactermanageview:[360,362],charactermixin:362,characternam:114,characterpuppetview:[360,362],charactersheet:51,characterupdateform:[357,362],characterupdateview:[360,362],charapp:133,charat:188,charcreat:[0,46,69,156,181],chardata:58,chardelet:156,chardeleteview:[239,318],chardetailview:[239,318],charfield:[86,133,145,237,244,315,340,357],charg:90,chargen:[133,139,141,142,175,178,239,318],chargencmdset:123,chargenroom:123,chargenview:[239,318],charnam:[43,58,156],charpuppetview:318,charset:344,charsheet:58,charsheetform:58,charupdateview:[239,318],chase:122,chat:[1,2,9,26,34,37,48,55,57,58,60,63,65,70,72,79,80,98,123,131,139,296,337],chatroom:57,chatzilla:72,cheap:131,cheaper:[61,115],cheapest:90,cheapli:233,cheat:[23,38,73],cheatsheet:48,check:[0,4,5,12,13,14,19,22,25,26,27,28,29,31,33,36,37,38,39,40,41,42,43,44,46,49,51,54,56,58,60,63,65,67,68,69,70,71,73,77,81,82,85,86,87,89,90,91,95,97,98,100,102,103,106,109,110,111,112,114,115,116,117,118,119,121,123,125,127,128,130,131,133,136,138,139,144,145,150,151,152,153,154,156,158,159,164,165,166,167,169,171,175,177,179,181,182,186,187,188,195,199,217,218,219,220,221,223,224,227,231,233,234,235,241,242,246,247,251,252,256,258,259,266,267,271,276,282,287,291,306,308,310,311,312,315,316,318,319,321,322,324,338,339,344,345,362],check_attr:159,check_circular:296,check_databas:267,check_db:267,check_defeat:73,check_end_turn:116,check_error:266,check_evennia_depend:344,check_from_attr:159,check_grid:49,check_has_attr:159,check_light_st:233,check_lockstr:[4,80,242],check_main_evennia_depend:267,check_obj:159,check_permiss:251,check_permstr:[144,318],check_show_help:166,check_to_attr:159,check_warn:266,checkbox:133,checker:[15,49,94,241,287,345],checkout:[9,100,131],checkoutdir:36,chest:[80,91],child:[6,33,43,51,64,80,96,116,146,148,154,159,170,233,246,252,256,312,335],childhood:51,children:[21,33,64,96,112,117,119,125,148,246,247,256,267,317,335],chillout:[43,159],chime:27,chines:[25,79,113],chip:58,chmod:36,choci:180,chocol:60,choic:[4,15,23,33,43,51,55,60,78,90,91,95,105,107,109,113,116,119,124,127,129,132,156,159,179,180,188,217,234,250,265,326],choice1:129,choice2:129,choice3:129,choos:[7,9,10,13,38,49,51,57,62,64,67,72,73,85,101,106,116,120,123,126,133,135,138,139,140,214,215,217,218,219,220,221,224,231,280,328,343,364],chop:[33,232],chore:68,chose:[54,58,86,103,133,215],chosen:[22,51,88,106,116,132,138,188,190,328],chown:100,chractercmdset:233,christin:96,chrome:24,chronicl:188,chroot:67,chug:33,chunk:[13,69,111,269,322,336],church:27,church_clock:27,cid:299,cillum:52,circl:39,circuit:137,circular:[269,323],circumst:[46,51,57,85,119,152,220,357],circumv:[43,157],claim:83,clang:75,clank:0,clarif:[1,48],clarifi:25,clariti:[75,86,91,123],clash:[23,31,43,90,159,174,318],class_from_modul:344,classic:[3,13,79,105,112,115,116],classmethod:[39,144,175,239,247,259,318,334,351],classnam:11,classobj:318,claus:[78,118],clean:[1,4,17,25,28,43,48,51,76,110,111,114,116,122,131,145,152,154,159,175,179,206,217,218,219,220,221,227,232,233,235,247,256,267,271,285,295,308,315,318,321,326,328,334,340,343,344,357],clean_attr_valu:315,clean_attribut:[125,144,318],clean_cmdset:[125,318],clean_senddata:308,clean_str:321,clean_usernam:145,cleaned_data:133,cleaner:[91,123],cleanli:[64,102,105,110,150,154,164,174,188,269,278,284,295,308,326],cleanup:[1,11,22,33,40,43,45,50,51,102,127,145,169,179,230,233,328],clear:[1,4,11,12,15,22,29,33,37,38,40,43,48,50,59,61,64,69,70,73,81,104,110,111,112,113,115,125,128,129,131,132,137,138,153,156,157,159,165,174,188,204,206,227,233,242,246,247,257,261,269,306,316,318,319,328,334],clear_client_list:303,clear_cont:[89,247],clear_exit:[89,247],clearal:[43,129,165],clearli:[12,37,48,128,227,334],cleartext:[210,324],clemesha:312,clever:[10,31,51,95,242],cleverli:105,click:[36,38,69,90,101,106,114,128,131,133,135,137,138,328],clickabl:[18,38],client:[3,7,8,9,12,22,23,25,30,33,36,40,43,45,50,52,54,55,60,63,64,65,67,72,74,75,79,81,84,91,95,96,100,101,103,104,105,107,108,111,113,114,116,117,126,128,136,138,139,141,142,144,146,154,156,164,169,210,262,264,268,270,272,276,277,278,279,280,281,282,283,285,287,289,290,291,292,294,295,296,298,299,305,306,307,308,325,326,328,343,344,362,364],client_address:40,client_default_height:52,client_disconnect:296,client_encod:23,client_height:154,client_opt:[272,291],client_secret:65,client_width:[33,154],clientconnectionfail:[264,278,279],clientconnectionlost:[264,278,279],clientfactori:298,clienthelp:137,clientraw:[43,169],clientsess:[295,296],cliff:[20,43,159],climat:112,climb:[33,43,55,77,93,159,232],climbabl:232,clipboard:[1,48],clist:[43,164],clock:[12,27,33,73,164],clone:[38,47,63,64,76,96,128,130],close:[0,14,22,25,38,39,40,41,43,46,48,50,51,64,69,76,90,94,96,100,103,105,106,110,125,131,133,137,169,171,179,180,186,190,212,221,224,226,227,230,269,277,278,285,287,295,296,308,316,322,328,336],close_lid:226,close_menu:[230,328],closedlidst:227,closelidev:227,closer:[205,221],closest:[39,114],cloth:[141,142,178,322],clothedcharact:182,clothedcharactercmdset:182,clothes_list:182,clothing_typ:182,clothing_type_count:182,clothing_type_ord:182,cloud:[90,100,102,103,132],cloud_keep:200,cloudi:102,clr:[114,251,336],cls:39,clue:232,clunki:[131,221],clutter:[38,153],cma:131,cmd:[12,14,22,25,28,29,31,33,41,43,44,53,58,60,62,70,71,80,82,85,88,95,121,123,136,152,154,156,157,158,159,164,165,166,167,168,169,170,171,174,179,180,181,182,185,186,187,188,189,193,199,200,201,202,203,206,212,213,214,215,217,218,219,220,221,224,231,232,233,234,236,247,291,295,296,322,326,328,329],cmd_abil_result:127,cmd_arg:91,cmd_channel:[33,150],cmd_ignore_prefix:151,cmd_kei:91,cmd_last:105,cmd_last_vis:105,cmd_loginstart:33,cmd_multimatch:[33,150],cmd_na_m:88,cmd_name:88,cmd_noinput:[33,150,328],cmd_nomatch:[33,150,233,328],cmd_noperm:33,cmd_on_exit:[51,188,215,230,249,328],cmd_total:105,cmdabil:[60,127],cmdabout:169,cmdaccept:179,cmdaccess:165,cmdaddcom:164,cmdallcom:164,cmdapproach:221,cmdarmpuzzl:203,cmdasync:10,cmdattack:[29,73,116,123,217,218,219,220,221,232],cmdban:157,cmdbatchcod:158,cmdbatchcommand:158,cmdbigsw:29,cmdblindhelp:224,cmdblindlook:224,cmdblock:25,cmdboot:157,cmdbridgehelp:233,cmdbui:85,cmdbuildshop:85,cmdcallback:193,cmdcast:220,cmdcboot:164,cmdcdesc:164,cmdcdestroi:164,cmdcemit:164,cmdchannel:164,cmdchannelcr:164,cmdcharactercr:181,cmdcharcreat:156,cmdchardelet:156,cmdclimb:232,cmdclock:164,cmdcloselid:224,cmdcolortest:156,cmdcombathelp:[217,218,219,220,221],cmdconfigcolor:81,cmdconfirm:33,cmdconnect:41,cmdcopi:159,cmdcover:182,cmdcpattr:159,cmdcraftarmour:29,cmdcreat:159,cmdcreatenpc:123,cmdcreatepuzzlerecip:203,cmdcwho:164,cmddarkhelp:233,cmddarknomatch:233,cmddeclin:179,cmddefend:116,cmddelcom:164,cmddesc:[159,187],cmddestroi:159,cmddiagnos:30,cmddice:[58,185],cmddig:159,cmddisconnect:41,cmddisengag:[116,217,218,219,220,221],cmddoff:218,cmddon:218,cmddrop:[165,182],cmdeast:233,cmdecho:[5,29,33,38],cmdedit:180,cmdeditnpc:123,cmdeditorbas:326,cmdeditorgroup:326,cmdeditpuzzl:203,cmdemit:157,cmdemot:206,cmdentertrain:121,cmdevalu:179,cmdevenniaintro:233,cmdevmenunod:328,cmdexamin:159,cmdexiterror:44,cmdexiterroreast:44,cmdexiterrornorth:44,cmdexiterrorsouth:44,cmdexiterrorwest:44,cmdextendedroomdesc:187,cmdextendedroomdetail:187,cmdextendedroomgametim:187,cmdextendedroomlook:187,cmdfeint:116,cmdfight:[217,218,219,220,221],cmdfind:159,cmdfinish:179,cmdforc:157,cmdget:[25,165],cmdgetinput:328,cmdgetweapon:232,cmdgive:[165,182],cmdgmsheet:58,cmdgrapevine2chan:164,cmdhandler:[31,33,83,89,141,142,144,149,151,152,153,154,156,167,168,170,174,187,203,233,246,247,256,344],cmdhelp:[116,166,217,218,219,220,221],cmdhit:116,cmdhome:165,cmdic:156,cmdid:272,cmdinsid:121,cmdinterrupt:170,cmdinventori:[82,165,182],cmdirc2chan:164,cmdircstatu:164,cmdlaunch:21,cmdlearnspel:220,cmdleavetrain:121,cmdlen:[151,168],cmdlight:232,cmdline:267,cmdlineinput:326,cmdlink:159,cmdlistarmedpuzzl:203,cmdlistcmdset:159,cmdlisthangout:119,cmdlistpuzzlerecip:203,cmdlock:159,cmdlook:[30,127,165,181,187,233],cmdlookbridg:233,cmdlookdark:233,cmdmail:199,cmdmailcharact:199,cmdmakegm:58,cmdmapbuild:200,cmdmask:206,cmdmobonoff:231,cmdmore:329,cmdmorelook:329,cmdmultidesc:[57,202],cmdmvattr:159,cmdmycmd:[56,68],cmdname2:151,cmdname3:151,cmdname:[40,59,74,83,88,123,137,150,151,154,159,167,168,170,272,290,291,295,296,308],cmdnamecolor:215,cmdnewpassword:157,cmdnick:165,cmdnoinput:180,cmdnomatch:180,cmdnpc:123,cmdnudg:224,cmdobj:[150,151,168,170],cmdobj_kei:150,cmdobject:[150,151,169],cmdoffer:179,cmdooc:156,cmdooccharactercr:181,cmdooclook:[156,181],cmdopen:[159,212],cmdopenclosedoor:212,cmdopenlid:224,cmdoption:156,cmdpage:164,cmdparri:116,cmdparser:[104,141,142,149],cmdpass:[217,218,219,220,221],cmdpassword:156,cmdperm:157,cmdplant:234,cmdpoke:119,cmdpose:[116,165,206],cmdpressbutton:232,cmdpush:224,cmdpy:169,cmdquell:156,cmdquit:156,cmdread:232,cmdrecog:206,cmdreload:169,cmdremov:182,cmdreset:169,cmdrest:[217,218,219,220,221],cmdroll:91,cmdrss2chan:164,cmdsai:[116,165,206],cmdsaveyesno:326,cmdscript:[159,169],cmdsdesc:206,cmdser:328,cmdserverload:169,cmdservic:169,cmdsession:156,cmdset:[2,7,14,21,22,25,31,33,34,40,41,42,44,47,51,53,57,60,62,68,69,81,82,85,89,96,97,105,116,121,123,141,142,144,149,150,151,153,154,159,160,161,162,163,166,167,168,169,170,174,179,180,181,182,185,187,189,193,199,201,203,206,213,214,217,218,219,220,221,224,227,230,231,232,233,234,241,246,247,256,298,305,306,318,326,328,329],cmdset_account:[2,141,142,149,155,181],cmdset_charact:[5,96,141,142,149,155,182,217,218,219,220,221],cmdset_mergetyp:[51,188,230,249,328],cmdset_prior:[51,188,230,249,328],cmdset_red_button:[141,142,178,222],cmdset_sess:[105,141,142,149,155],cmdset_stack:153,cmdset_storag:[148,246,306],cmdset_trad:179,cmdset_unloggedin:[33,141,142,149,155,186,201],cmdsetattribut:159,cmdsetclimb:232,cmdsetcrumblingwal:232,cmdsetdesc:165,cmdsetevenniaintro:233,cmdsethandl:[105,141,142,149],cmdsethelp:166,cmdsethom:159,cmdsetkei:31,cmdsetkeystr:152,cmdsetlight:232,cmdsetmor:329,cmdsetobj:[152,153,160,161,162,163,179,180,181,182,185,187,201,203,206,214,217,218,219,220,221,224,230,231,232,233,326,328,329],cmdsetobjalia:159,cmdsetpow:123,cmdsetread:232,cmdsetspe:213,cmdsettestattr:50,cmdsettrad:179,cmdsettrain:121,cmdsetweapon:232,cmdsetweaponrack:232,cmdsheet:58,cmdshiftroot:232,cmdshoot:[21,221],cmdshutdown:169,cmdsmashglass:224,cmdsmile:33,cmdspawn:159,cmdspellfirestorm:28,cmdstatu:[179,220,221],cmdstop:213,cmdstring:[33,58,150,154,167,168,170],cmdstyle:156,cmdtag:159,cmdtalk:214,cmdteleport:159,cmdtest:[29,42,91],cmdtestid:33,cmdtestinput:51,cmdtestmenu:[51,188,328],cmdtime:[62,169],cmdtrade:179,cmdtradebas:179,cmdtradehelp:179,cmdtunnel:159,cmdtutori:233,cmdtutorialgiveup:233,cmdtutoriallook:233,cmdtutorialsetdetail:233,cmdtweet:71,cmdtypeclass:159,cmdunban:157,cmdunconnectedconnect:[171,186],cmdunconnectedcr:[171,186],cmdunconnectedhelp:[171,186],cmdunconnectedlook:[171,186],cmdunconnectedquit:[171,186],cmduncov:182,cmdunlink:159,cmdunloggedinlook:201,cmdunwield:218,cmduse:219,cmdusepuzzlepart:203,cmdwait:33,cmdwall:157,cmdwear:182,cmdwerewolf:25,cmdwest:233,cmdwhisper:165,cmdwho:156,cmdwield:218,cmdwipe:159,cmdwithdraw:221,cmset:153,cmsg:[43,164],cmud:24,cnf:[23,36],cnt:119,coast:[111,122],coastal:111,cockpit:21,code:[0,1,2,4,5,6,7,9,10,11,12,14,15,16,18,19,20,29,31,33,34,36,37,39,40,43,45,46,47,48,49,51,53,55,56,57,58,62,63,64,68,69,70,76,77,79,80,83,84,86,88,89,91,93,94,95,96,97,98,100,102,103,104,105,106,109,110,111,112,114,115,116,117,118,119,121,122,123,125,126,127,129,132,134,135,136,139,141,142,144,149,150,153,156,158,159,164,169,172,178,179,180,184,185,190,192,195,200,204,219,233,234,242,252,256,278,279,295,306,309,318,320,321,326,328,330,341,342,343,344,362,363,364],code_exec:322,codebas:[55,56,127,129,131,139,140,170],codeblock:[38,322],codec:321,codefunc:326,coder:[22,26,56,61,79,96,124,150,247,363],codestyl:37,coerc:339,coexist:126,coin:[61,70,179],col:[3,16,329,330],cold:[12,43,110,169,252,257,261,305],cole:344,collabor:[4,61,64,90,131,166],collat:[83,251],collect:[11,26,31,136,150,152,203,259,344],collector:136,collectstat:[136,137,267,271],collid:[31,54,90,328],collis:[31,131],colon:[27,41,60,80,95,242],color:[16,18,20,33,38,49,51,53,58,59,63,69,74,79,95,109,111,114,124,129,137,139,154,156,183,190,206,215,230,234,251,272,279,287,290,295,296,321,330,336,338,343,345,364],color_ansi_bright_bg_extra_map:183,color_ansi_bright_bgs_extra_map:183,color_ansi_extra_map:183,color_markup:[141,142,178],color_no_default:183,color_typ:321,color_xterm256_extra_bg:183,color_xterm256_extra_fg:183,color_xterm256_extra_gbg:183,color_xterm256_extra_gfg:183,colorablecharact:81,colorback:343,colorcod:343,colour:[27,43,55,139,159,294,321,330],column:[16,38,46,49,58,64,69,86,111,137,154,156,235,329,330,344],com:[3,8,9,10,16,22,23,37,38,39,41,43,45,46,54,55,61,63,67,70,75,79,90,92,94,95,96,98,100,101,103,104,108,111,122,127,128,130,131,133,135,138,141,164,180,186,279,282,291,295,312,330,343,344,357],comb:1,combat:[11,14,25,28,31,46,55,63,64,73,79,102,108,109,111,117,122,124,125,131,139,153,217,218,219,220,221,231,256,364],combat_:[217,218,219,220,221],combat_cleanup:[217,218,219,220,221],combat_cmdset:116,combat_handl:116,combat_handler_:116,combat_movesleft:[217,218,219,220],combat_scor:123,combat_status_messag:221,combatcmdset:116,combathandl:116,combatscor:123,combatt:11,combin:[8,11,12,20,27,28,30,31,33,34,41,43,55,57,58,84,90,109,112,114,115,118,119,121,127,150,151,152,159,175,202,203,205,226,242,251,261,267,317,319,324,338,344],combo:105,come:[0,2,3,4,6,10,11,15,16,20,21,23,25,27,29,33,34,40,46,49,51,52,55,57,58,61,62,64,69,73,80,83,85,88,91,93,100,105,111,114,116,118,119,121,123,124,126,129,131,133,134,135,137,144,152,187,204,217,218,219,220,221,251,252,285,290,295,296,298,304,321,329,362],comet:[40,55,137,296],comfort:[15,55,69,91,131],comlist:[43,164],comm:[33,34,41,47,53,64,68,71,141,142,149,155,324],comma:[20,43,46,86,95,114,134,159,167,168,198,199,242,247,336],command:[0,2,4,6,8,9,10,11,12,13,15,18,19,20,21,23,24,26,27,34,36,38,40,46,47,48,49,50,51,52,55,56,57,59,61,63,64,65,66,69,72,74,75,76,77,79,80,82,83,86,87,89,90,92,93,95,96,98,102,103,104,105,106,108,109,110,111,112,113,114,117,118,119,120,122,124,125,126,128,129,130,131,136,137,138,139,140,141,142,144,146,174,175,178,179,180,181,182,185,186,187,188,189,191,194,196,197,199,200,201,202,203,206,210,212,213,214,215,217,218,219,220,221,224,226,227,230,231,232,233,234,235,236,239,241,242,247,251,252,256,264,267,272,276,277,285,287,290,291,295,296,298,299,305,306,318,320,321,324,326,328,329,338,341,344,362,364],command_default_arg_regex:33,command_default_class:25,command_pars:151,commandhandl:[74,153,168,344],commandmeta:154,commandnam:[33,74,83,234,267,276,306,308],commandset:[5,80,89,153,181],commandtest:[127,170,196],comment:[8,9,13,14,24,25,37,41,48,51,60,90,96,118,125,138,322,328],commerc:79,commerci:[90,106],commerror:176,commit:[15,23,25,36,37,38,64,66,98,100,108,128,130,209,315],commmand:[212,217,218,219,220,221],common:[1,6,10,12,15,16,20,26,27,30,33,38,40,41,43,51,53,59,60,61,62,63,64,68,69,73,74,79,80,83,88,90,91,94,97,105,107,109,112,113,115,116,119,123,124,125,131,133,139,152,159,179,205,206,213,242,256,295,299,317,327,329,339,341,344,350,362],commonli:[23,63,64,83,86,87,96,104,105,107,115,119,128,247],commonmark:38,commun:[8,22,23,33,40,41,45,47,53,55,57,60,64,70,72,79,83,88,90,91,92,103,106,113,114,137,139,161,172,174,175,176,177,199,230,246,264,276,277,287,288,290,291,292,293,306,308,324,325,340,364],compact:[85,134],compani:[64,88],compar:[4,9,13,15,27,28,29,31,41,44,58,73,83,85,91,97,116,119,123,127,131,136,170,200,203,205,217,218,219,220,221,241,242,252,321,344],comparison:[13,93,241,252,328],compartment:58,compass:20,compat:[14,21,51,94,159,330,337],compet:[15,88],compil:[9,33,38,47,56,63,75,76,90,94,95,108,159,165,166,171,174,182,201,206,321,326,343],compilemessag:76,complain:[42,60,86,91,110,128],complement:[26,107],complementari:113,complet:[2,10,11,13,14,15,22,23,25,27,31,33,36,37,43,44,49,50,58,59,61,62,64,67,70,77,81,85,88,89,90,95,96,102,104,105,107,109,110,111,122,123,127,128,131,139,144,152,153,154,167,169,174,183,187,188,190,195,197,200,218,233,247,267,269,277,278,295,322,327,328,329,336,341,344,357],complete_task:195,completli:227,complex:[11,14,15,20,31,33,51,59,61,62,64,73,76,77,86,93,96,100,104,108,111,115,116,123,127,138,153,196,204,214,252,299],complianc:[24,187],compliant:[39,291],complic:[0,10,22,29,41,43,49,69,90,91,111,133,134,171,186,188,215],compon:[29,33,40,43,49,58,90,93,94,96,102,110,114,116,124,127,135,137,138,139,159,169,175,176,177,184,203,205,252,253,256,259,267,296,324,327,341,344,364],componentid:137,componentnam:137,componentst:[137,138],compos:[100,188],composit:[293,317],comprehens:[34,55,63,80,93,96,103,124,125,127],compress:[74,272,276,280,340],compress_object:340,compris:144,compromis:[103,209],comput:[10,12,43,49,56,60,63,64,72,73,100,113,115,124,131,132,157,169,206,344,345],computation:115,comsystem:[164,177],con:[43,58,79,171,186],concaten:[67,321,336],concept:[11,37,38,39,40,46,57,61,69,76,77,92,96,115,124,131,139,181,202],conceptu:[49,51],concern:[25,44,63,76,88,95,96,152,204,239],conch:[94,287,290,298],conclud:[96,179,328],concurr:23,conda:9,conder:322,condit:[8,46,49,55,61,73,85,91,93,96,123,124,150,185,206,219,242,247,259,266,267,312,344],condition:25,condition_result:185,condition_tickdown:219,conditional_flush:334,conduct:136,conductor:121,conect:308,conf:[4,8,9,23,25,35,36,38,40,41,47,54,62,65,67,69,74,76,80,81,86,90,93,102,103,109,114,120,121,127,130,131,133,134,135,139,144,183,201,267,273,274,313,322,337,364],confer:[79,344],confid:[37,39,42],config:[2,4,9,36,40,59,63,90,98,103,106,130,131,137,138,139,263,267,269,273,274,285,364],config_1:2,config_2:2,config_3:2,config_color:81,config_fil:67,configcmd:81,configdict:[287,308],configur:[0,2,7,25,36,38,43,45,47,54,59,62,63,64,69,90,100,103,114,120,124,127,136,138,139,144,148,151,156,209,210,234,260,269,274,285,308,312,313,317,357,364],configut:106,configvalu:59,confirm:[8,33,43,63,103,137,159,186,203,291,294,362],conflict:[41,42,126],confus:[10,22,26,31,44,58,59,60,64,77,80,87,90,91,93,97,114,119,126,131,136,137,140,186,362],conid:286,conjur:220,conn:[43,171,186],conn_tim:105,connect:[0,2,4,7,8,9,11,12,13,17,18,23,24,25,31,33,34,40,41,46,47,49,55,57,60,63,64,65,66,67,69,72,74,76,77,80,83,85,88,89,91,92,93,96,98,100,101,102,103,104,105,107,110,111,114,120,123,125,126,127,136,137,139,144,146,148,156,157,159,164,171,175,177,186,190,192,193,195,197,201,210,213,246,247,253,262,264,267,269,276,277,278,279,280,285,286,287,290,295,296,298,299,305,306,307,308,309,312,316,318,324,340,364],connection_cr:107,connection_screen:[35,104,201],connection_screen_modul:186,connection_set:54,connection_tim:[144,247],connection_wizard:[141,142,262],connectiondon:269,connectionlost:[269,276,277,287,290,298],connectionmad:[264,276,287,290,298],connectionwizard:265,connector:[264,278,279,285,308],consecut:51,consequ:[90,153],consid:[0,4,10,12,13,14,23,26,27,31,33,37,39,40,44,46,51,55,57,61,63,64,70,74,78,80,82,85,86,90,93,96,97,102,103,105,109,112,113,114,115,119,121,125,131,133,134,135,144,152,153,188,203,205,206,221,234,247,252,256,272,287,290,317,322,323,328,329],consider:[68,86,104,111,118,241,252],consist:[2,11,17,33,38,44,46,48,51,68,80,86,92,95,96,109,110,114,116,122,123,135,137,144,151,167,176,179,203,205,236,242,250,252,291,296,306,315,316,318,324,330,344,362],consol:[9,19,23,26,38,42,43,60,63,64,75,83,90,93,95,96,97,100,106,114,123,137,138,169,206,267],conson:205,constant:[0,88,276,342],constantli:[96,117,233],constitu:[153,167,168],constraint:[0,23],construct:[20,29,34,36,51,64,119,133,138,252,311,321,329,357],constructor:[22,33,180,278],consum:[10,269,344],consumer_kei:[71,120],consumer_secret:[71,120],consumpt:[23,310],contact:[89,90,100],contain:[0,5,7,9,10,11,13,14,16,17,18,20,21,22,25,26,31,33,34,37,38,39,40,41,43,46,47,51,53,55,56,57,62,63,64,68,69,70,75,79,80,86,89,91,95,96,97,101,102,104,105,114,118,119,122,123,124,126,127,128,129,133,134,136,137,138,139,141,142,144,146,149,150,151,152,153,155,158,159,166,172,180,188,189,192,193,194,195,196,197,198,200,203,204,205,206,210,211,213,215,219,224,232,234,235,238,240,247,249,250,251,252,260,262,266,270,272,298,311,312,316,317,318,319,320,321,322,325,327,328,329,330,341,343,344,345,355,362,363],container:100,contempl:56,content:[3,4,13,16,17,21,27,38,39,43,48,49,51,56,58,69,77,79,82,85,89,90,91,93,95,96,117,119,121,123,125,131,133,134,137,138,139,154,157,159,206,246,247,306,315,316,319,321,322,323,326,328,330,341,346,355],contentof:330,contents_cach:246,contents_get:[119,247],contents_set:247,contentshandl:246,context:[46,51,55,69,91,114,119,126,133,180,195,288,292,350,362],contextu:112,continu:[7,10,11,21,27,29,33,37,42,45,46,49,51,55,58,60,69,71,75,85,86,90,95,96,112,114,115,116,119,123,124,127,136,139,200,265,276,312,316,328,337,344,364],contrari:[0,38,41,43,62,169,319],contrast:[56,90,96,113,138,291],contrib:[4,13,14,20,38,46,47,53,57,58,62,63,64,73,78,102,116,122,141,142,144,145,148,173,237,244,254,263,309,315,322,349,357,362,364],contribrpcharact:206,contribrpobject:206,contribrproom:206,contribut:[1,4,22,26,45,55,70,78,82,124,127,131,136,139,178,179,181,182,183,185,187,199,200,201,203,204,206,209,210,212,213,214,234,363,364],contributor:[78,180],control:[2,5,7,9,11,12,13,14,19,20,21,31,33,34,36,37,38,42,43,47,50,51,52,53,55,57,58,61,63,64,67,68,73,74,80,81,83,86,89,90,92,93,96,102,103,105,108,109,110,114,118,121,123,124,128,135,138,139,144,146,156,158,159,164,179,181,194,206,227,231,233,235,241,247,256,267,306,308,318,328,357,364],convei:[197,206,247],convenei:107,conveni:[8,9,10,11,21,34,36,40,41,43,51,55,57,59,69,74,80,86,89,96,98,102,106,108,109,110,125,127,133,140,144,159,169,180,199,200,247,310,322,323,328,329,337,340,341],convent:[0,31,86,96,107,119,126],convention:[41,154,174,247,318],convers:[51,87,121,127,138,205,214,295,296,321,344,363],convert:[11,27,39,40,49,51,59,62,64,79,81,83,85,87,88,103,109,113,114,119,126,128,157,184,185,188,215,241,251,252,257,276,278,287,290,291,308,312,321,325,328,329,330,331,336,340,343,344,363],convert_linebreak:343,convert_url:343,convinc:[51,90],cool:[3,9,21,22,26,38,43,61,79,159],cool_gui:80,cooldown:[29,116,124,139,364],coord:39,coordi:39,coordin:[49,124,137,139,200,221,235,364],coordx:39,coordz:39,cope:220,copi:[0,1,4,13,14,20,25,26,33,36,47,48,50,51,62,64,81,90,93,96,100,104,105,109,111,123,128,131,133,135,136,137,138,158,159,182,195,217,218,219,220,221,233,247,267,276,313,321,337,362],copy_object:247,copyright:[78,90],cor:138,core:[19,37,43,47,49,76,78,88,89,94,96,104,106,125,127,131,139,144,148,169,177,178,197,199,239,241,246,247,256,262,274,284,291,305,316,318,319,322,329,335,357,362],corner:[17,39,57,79,138,235,330],corner_bottom_left_char:330,corner_bottom_right_char:330,corner_char:330,corner_top_left_char:330,corner_top_right_char:330,corpu:205,correct:[10,11,14,21,23,27,30,31,33,37,43,48,50,60,80,91,113,114,121,123,126,150,156,159,176,187,203,228,242,282,285,287,293,307,321,344],correctli:[4,8,9,27,29,33,36,38,42,44,49,50,51,61,62,72,77,80,85,90,91,94,97,110,112,115,121,122,123,126,144,148,153,156,257,276,312,340],correl:252,correspond:[20,33,80,83,85,105,135,184,200,203,215,315,357],correspondingli:128,corrupt:56,cosi:111,cosin:344,cosmet:235,cost:[28,85,90,220,235],cottag:[111,114],could:[0,1,2,3,4,5,6,9,10,11,12,13,14,15,19,20,21,22,25,28,29,30,31,33,34,36,37,38,39,40,41,42,43,44,46,47,48,49,51,55,57,58,60,61,62,63,64,65,68,69,71,72,73,79,80,81,82,83,84,85,86,87,88,89,90,91,93,95,96,98,102,106,108,109,111,112,113,114,115,116,117,118,119,120,121,123,125,126,127,128,129,132,133,135,136,138,140,144,153,159,166,176,177,179,180,185,190,197,198,204,206,213,215,233,235,241,242,247,272,291,296,312,318,321,322,326,330,331,334,339,344],couldn:[11,19,39,44,64,76,91,126,134,140,204],count:[64,102,104,116,119,120,152,182,215,219,247,259,281,285,298,302,308,310,317,321,328,337,344],count_loggedin:285,count_queri:302,countdown:[20,29],counter:[6,22,29,69,85,105,116,128,146,233,285,298,299,306,328],counterpart:[13,114,272,308,325],countless:95,countnod:51,countri:[43,157],coupl:[22,48,69,100,117,131,213],cours:[0,4,9,12,15,21,22,26,33,38,41,46,57,61,64,77,78,91,93,106,108,114,115,122,123,124,132,140,218,221,230],courtesi:12,cousin:[91,129],cover:[6,8,9,13,14,23,29,37,40,48,51,57,59,63,79,80,86,90,95,96,120,127,131,182,187,233,247,324,344,363],coverag:127,coveral:127,cpanel:90,cpattr:159,cpu:[12,43,90,103,169],cpython:93,crack:[61,86],craft:[29,80,111,188],crank:[115,258],crash:[26,60,61,79,103,111,271],crate:[20,87,124],crawl:103,crawler:281,cre:[43,171,186],creat:[4,9,11,13,14,15,16,19,22,23,25,26,29,31,34,35,37,38,39,40,41,42,44,46,47,49,50,54,55,56,57,58,60,61,62,63,64,65,66,67,68,70,71,72,73,75,76,77,78,79,80,81,83,85,87,90,91,93,95,96,102,103,104,105,106,107,108,109,112,116,117,118,119,120,122,124,127,129,130,131,132,134,135,136,137,138,139,140,141,142,144,145,146,148,150,151,152,153,154,156,159,164,165,166,167,168,170,171,174,175,177,179,180,181,182,184,185,186,187,188,189,194,195,196,198,199,200,201,202,203,204,205,206,210,212,214,215,217,218,219,220,221,223,224,226,227,230,231,232,233,234,235,239,242,244,246,247,249,250,251,252,256,259,260,261,264,267,271,272,277,279,280,285,287,288,292,299,307,308,312,316,317,318,319,320,322,323,326,327,328,330,331,336,337,344,360,362,363],create_:[89,125],create_account:[107,125,141,324],create_cal:144,create_channel:[34,141,174,175,271,324],create_charact:[144,247],create_delai:260,create_exit:[159,212],create_exit_cmdset:247,create_forward_many_to_many_manag:[148,177,239,246,256,316,318,319,335],create_game_directori:267,create_grid:49,create_help_entri:[68,141,324],create_kwarg:252,create_match:151,create_messag:[34,141,324],create_object:[13,27,80,85,89,111,123,125,133,141,247,252,271,322,324],create_prototyp:[251,252],create_script:[56,102,116,125,141,259,322,324],create_secret_kei:267,create_settings_fil:267,create_superus:267,create_tag:317,create_wild:235,created_on:192,creater:53,createview:362,creation:[11,14,20,21,38,43,47,49,51,58,60,61,79,80,81,86,89,97,105,111,123,125,131,133,139,140,141,144,145,148,159,166,175,181,200,203,206,210,212,217,218,219,220,221,232,233,239,244,246,252,256,261,300,315,318,324,326,327,328,330,357,362,363],creation_:324,creativ:[79,108],creator:[51,53,79,80,111,123,140,166,175,200,217,218,219,220,221,247,330],cred:[94,131,287],credenti:[90,103,131,144,287],credentialinterfac:287,credit:[90,103,131,343,344],creset:131,crew:119,criteria:[51,119,176,194,204,251,317,341],criterion:[119,131,144,179,206,238,247,258,341,344],critic:[19,26,31,60,63,67,97,102,105,114,128,242,266,267,337],critici:318,cron:67,crontab:67,crop:[58,114,159,327,330,336,344],crop_str:330,cross:[111,138,233,330],crossbario:295,crossbow:29,crossroad:111,crowd:[61,103],crt:[8,67],crucial:[91,115],crude:0,cruft:1,crumblingwal:232,crumblingwall_cmdset:232,crush:21,cryptic:138,cryptocurr:103,cscore:123,csessid:[285,295,296,308],csession:[295,296],csrf_token:133,css:[17,55,124,135,136,137,343],cssclass:137,ctrl:[48,63,67,90,93,95,100,110,298],culpa:52,cumbersom:[51,121,128,215],cumul:299,cup:70,cupidatat:52,cur_valu:190,cure:[219,220],cure_condit:219,curi:49,curiou:108,curli:[41,96,183],curly_color_ansi_bright_bg_extra_map:183,curly_color_ansi_bright_bgs_extra_map:183,curly_color_ansi_extra_map:183,curly_color_xterm256_extra_bg:183,curly_color_xterm256_extra_fg:183,curly_color_xterm256_extra_gbg:183,curly_color_xterm256_extra_gfg:183,curr_sess:308,curr_tim:187,currenc:[85,120],current:[0,2,9,11,12,13,14,19,20,21,22,25,27,28,29,31,33,38,41,43,46,48,49,50,51,58,59,60,64,68,74,76,77,79,80,85,86,89,94,97,100,102,104,105,106,112,114,115,116,119,120,121,123,124,127,128,131,133,137,138,144,148,150,151,153,154,156,157,159,164,165,166,168,169,175,179,180,182,187,188,190,195,198,200,202,204,206,212,213,215,217,218,219,220,221,230,232,233,235,238,246,247,252,256,260,261,267,272,277,283,284,287,288,299,306,308,310,317,318,326,328,330,331,337,338,341,344,362],current_choic:180,current_cmdset:159,current_coordin:235,current_kei:[250,251],current_us:133,current_weath:102,currentroom:121,curriculum:79,curs:42,curv:[55,56],curx:49,custom:[0,2,6,11,12,14,15,16,17,18,20,21,25,26,27,30,31,33,34,35,43,49,53,55,56,58,60,61,64,65,66,68,69,71,73,74,78,79,83,85,86,87,89,90,97,100,102,104,109,110,112,114,116,117,118,119,121,122,123,125,126,132,133,136,138,139,140,144,145,146,147,148,150,152,153,154,159,164,165,166,174,175,179,181,182,184,185,187,188,189,195,197,198,200,203,205,206,209,210,230,232,233,235,238,241,245,247,249,250,251,252,255,261,263,267,271,273,276,298,307,318,323,328,329,330,334,336,338,339,343,344,349,362,364],custom_add:195,custom_cal:[195,198],custom_gametim:[62,141,142,178],custom_kei:251,custom_pattern:[3,4,69,133,134],customfunc:83,customis:235,customiz:[17,41,180,188,190,206],customlog:8,cut:[20,40,49,50,55,91,111,123,252],cute:136,cutoff:344,cvcc:205,cvccv:205,cvccvcv:205,cvcvcc:205,cvcvccc:205,cvcvccvv:205,cvcvcvcvv:205,cvcvvcvvcc:205,cvv:205,cvvc:205,cwho:164,cyan:[114,126],cyberspac:79,cycl:[13,14,25,56,61,62,132,217,218,219,220,221],cyril:15,da2pmzu:122,daemon:[8,67,93,100,103,110,284,312],dai:[25,27,36,56,61,62,100,103,108,120,126,131,132,139,184,187,331,337,344,345],daili:87,dailylogfil:337,dali:205,dalnet:[43,164],dam:56,damag:[14,21,28,61,73,85,103,116,122,217,218,219,220,221,231,232],damage_rang:220,damage_taken:56,damage_valu:[217,218,219,220,221],damn:79,damnedscholar:48,dandi:140,danger:[13,31,38,82,97,105,152],dare:33,dark:[13,14,17,31,73,79,111,114,122,126,153,187,224,233,241,256,322],darkcmdset:233,darker:[114,126],darkgrai:126,darkroom:233,darkroom_cmdset:233,darkstat:233,dash:[38,119,204,215],dashcount:215,data:[2,10,13,15,22,23,25,27,43,56,57,58,59,61,64,75,83,86,87,88,90,93,96,97,100,102,104,109,112,113,119,125,128,133,134,135,137,138,139,144,145,146,154,159,169,175,188,190,194,195,206,209,210,237,244,246,247,249,253,259,261,264,265,269,273,274,276,277,278,279,280,285,286,287,288,290,291,292,294,295,296,298,299,300,305,306,307,308,314,315,316,317,318,319,321,322,323,324,325,327,328,329,330,333,337,338,339,340,357,362],data_in:[40,83,210,276,278,279,285,286,290,295,296,306,307,308],data_out:[40,210,285,287,290,291,296,306,307,308],data_to_port:264,data_to_serv:277,databa:267,databas:[0,4,5,6,7,11,12,13,15,17,19,20,21,23,25,27,28,29,31,34,36,38,39,43,45,47,55,56,57,58,59,60,61,63,64,74,77,80,84,87,89,91,93,100,101,102,104,105,107,110,111,112,115,116,119,123,124,125,127,131,133,134,135,136,138,139,140,144,148,152,153,159,166,169,173,174,175,176,177,187,194,195,197,206,220,233,236,238,239,241,244,246,247,250,251,253,254,256,257,261,267,271,273,284,298,305,306,314,315,316,317,318,319,322,324,325,326,329,332,334,340,341,344,346],datareceiv:[269,276,290,298],dataset:251,datastor:86,datbas:119,date:[7,11,12,23,34,49,62,68,75,76,86,126,128,131,133,138,145,153,157,209,331,337,345],date_appli:133,date_cr:[125,144,148,177,256,316,318],date_join:[145,148],date_s:34,datetim:[62,125,133,316,331,337,338,344,345],datetime_format:344,datetimefield:[86,133,145,148,177,246,256,316,318,344],david:79,day_rot:337,db3:[23,111,128,131],db_:[84,86,119,125,206,247,257,272,341],db_account:[182,244,246,256],db_account__db_kei:244,db_account_id:[246,256],db_account_subscript:[173,177],db_attribut:[107,119,145,148,177,244,246,256,318],db_attrtyp:316,db_attryp:87,db_categori:[86,315,316,319],db_category__iequ:86,db_channel:173,db_cmdset_storag:[145,148,182,244,246],db_data:[315,319],db_date_cr:[86,148,173,177,182,246,256,316,318],db_desc:256,db_destin:[182,244,246],db_destination__isnul:120,db_destination_id:246,db_entrytext:[237,239],db_header:177,db_help_categori:[237,239],db_hide_from_account:177,db_hide_from_channel:177,db_hide_from_object:177,db_hide_from_receiv:177,db_hide_from_send:177,db_home:[182,244,246],db_home_id:246,db_index:86,db_interv:[254,256],db_is_act:256,db_is_bot:[145,148],db_is_connect:[145,148],db_kei:[69,84,86,119,125,145,173,182,194,237,239,244,254,257,263,274,315,316,318,319,357],db_key__contain:125,db_key__icontain:86,db_key__istartswith:119,db_key__startswith:[119,125],db_locat:[84,119,182,244,246],db_location__db_tags__db_kei:119,db_location__isnul:120,db_location_id:246,db_lock_storag:[145,173,177,182,237,239,244,316,318],db_messag:[173,177],db_model:[316,319],db_obj:[254,256,325],db_obj_id:256,db_object_subscript:[173,177],db_permiss:[86,145],db_persist:[254,256],db_properti:272,db_protototyp:251,db_receiv:173,db_receivers_account:177,db_receivers_channel:177,db_receivers_object:177,db_receivers_script:177,db_repeat:[254,256],db_sender:173,db_sender_account:177,db_sender_extern:177,db_sender_object:177,db_sender_script:177,db_sessid:[182,244,246],db_staff_onli:[237,239],db_start_delai:[254,256],db_strvalu:316,db_tag:[119,145,148,177,237,239,244,246,256,318,319],db_tags__db_categori:[39,119],db_tags__db_kei:[39,119,173],db_tags__db_key__in:39,db_tagtyp:[315,319],db_text:86,db_typeclass_path:[86,120,145,182,244,246,254,318,344],db_valu:[84,263,274,316],dbef:341,dbhandler:357,dbid:[43,125,146,164,318],dbid_to_obj:344,dbmodel:317,dbobj:[11,316],dbobject:[11,317,318],dbprototyp:[169,251],dbref:[12,13,20,43,58,66,80,109,111,116,119,121,122,125,128,144,148,157,159,164,169,176,188,203,206,212,233,235,241,246,247,250,251,252,256,258,317,318,324,341,344],dbref_search:317,dbref_to_obj:344,dbrefmax:[43,159],dbrefmin:[43,159],dbsafe_decod:340,dbsafe_encod:340,dbserial:[11,97,141,142,257,320],dbshell:[23,86,110,128],dbunseri:325,ddesc:56,deactiv:[43,63,64,81,117,164,187,227,231,328],deactivatebuttonev:227,dead:[112,231,232,305,308,334],deadli:122,deal:[10,11,12,15,41,51,64,69,73,91,103,105,112,113,116,124,126,127,131,134,138,139,144,179,180,184,188,217,218,219,220,221,246,247,306,318,321,338,362],dealt:[167,168,219,220],dealth:219,death:[51,73,120],death_msg:231,death_pac:231,debat:91,debian:[8,23,63,67,131],debug:[14,27,43,45,51,59,72,74,91,95,102,106,135,139,150,154,158,169,188,230,249,267,272,278,279,290,312,322,328,337,344,364],debugg:[15,42,110,141],decemb:90,decend:[51,150],decent:[93,205],decic:205,decid:[4,14,15,25,33,41,46,58,61,69,73,85,86,88,90,103,105,112,114,116,126,138,150,179,217,242,329],deciph:48,decis:[73,115],declar:[114,340],declared_field:[145,237,244,315,357],declin:[51,179],decod:[15,291,321,344],decode_gmcp:291,decode_msdp:291,decoded_text:344,decompos:133,decompress:[276,340],deconstruct:[122,228,293,342],decor:[0,29,33,46,107,131,148,246,256,264,276,277,318,324,328,329,344],decoupl:[9,251],decoupled_mut:11,decreas:[220,233,326],decrease_ind:326,dedent:[50,344],dedic:[73,90,127],deduc:326,deduce_ind:326,deduct:[73,85,217,218,219,220,221],deem:[37,57,129,131,178,362],deep:79,deeper:[41,215],deepest:159,deepli:11,deepsiz:344,def:[1,3,4,5,6,10,11,21,22,25,27,28,29,30,31,33,38,39,40,41,42,44,48,49,50,51,56,57,58,60,62,69,71,73,74,79,80,81,82,84,85,89,91,95,96,102,107,109,111,114,116,117,118,119,120,121,123,125,127,132,133,134,180,187,234,235,250,296,309,328,329,336,344],def_down_mod:219,defalt_cmdset:71,default_access:[1,11,316,324],default_categori:238,default_channel:34,default_charact:189,default_cmd:[5,21,22,25,28,29,30,41,44,53,57,58,62,81,116,119,141,180,182,187,199],default_cmdset:[5,22,25,30,35,41,44,57,58,60,62,81,105,123,153,180,181,182,187,188,200,202,212,215,217,218,219,220,221],default_command:25,default_confirm:[159,203],default_error_messag:340,default_hom:[59,109],default_in:137,default_out:137,default_pass:324,default_screen_width:33,default_set:[3,127],default_transaction_isol:23,default_unload:137,defaultaccount:[2,41,43,53,64,125,141,144,146,160,247,342],defaultchannel:[6,53,125,141,175],defaultcharact:[5,6,22,25,43,53,57,58,60,62,73,81,86,89,96,123,125,127,141,144,161,180,182,189,197,206,217,218,219,220,221,247,342],defaultcmdset:[185,224],defaultdict:257,defaultexit:[6,53,85,89,125,141,197,212,213,232,235,247,342],defaultguest:[53,141],defaultlock:241,defaultmod:337,defaultobject:[5,6,26,53,60,64,82,85,86,89,96,111,117,119,121,125,141,144,182,197,206,214,218,221,226,232,247,318,342],defaultpath:344,defaultroom:[6,39,49,53,56,85,89,125,132,141,187,197,206,233,235,247,342],defaultscript:[53,56,102,116,120,121,125,141,146,179,184,195,203,204,205,217,218,219,220,221,223,227,235,251,258,259,300,331,342],defaultsess:[43,162],defaulttyp:312,defaultunloggedin:[43,163,201],defeat:[73,116,122,217,218,219,220,221,231],defeat_msg:231,defeat_msg_room:231,defend:[51,116,122,217,218,219,220,221,232,247],defens:[116,217,218,219,220,221],defense_valu:[217,218,219,220,221],defer:[10,27,29,33,94,133,145,148,150,177,187,213,239,246,247,256,260,264,274,276,277,308,312,316,318,319,335,337,344],deferredlist:312,defin:[0,2,4,5,10,11,12,13,14,20,21,22,25,27,30,35,36,38,40,42,43,44,46,49,50,53,55,56,57,58,59,61,62,64,68,69,73,74,77,78,81,83,85,88,89,91,95,96,97,104,106,109,111,113,114,115,117,119,121,123,125,126,127,129,133,135,136,137,138,139,141,143,145,148,150,152,153,154,156,159,165,167,168,169,170,173,175,176,177,180,182,183,184,185,187,188,194,195,198,200,203,204,205,206,214,215,219,220,223,224,227,232,233,236,237,238,239,240,241,242,243,244,246,247,251,252,256,259,261,262,264,267,274,277,298,299,306,307,308,311,314,316,317,318,319,321,322,323,326,328,331,335,336,339,341,344,346,357,362],define_charact:51,definit:[0,2,5,10,12,14,20,33,34,39,41,42,43,55,60,61,68,69,82,83,87,88,89,109,114,115,124,127,152,154,159,164,167,168,192,203,226,232,240,242,246,251,252,258,322,324,328,336,340],defit:51,deflist:312,degrad:127,degre:38,deindent:344,del:[11,12,29,43,58,80,116,122,157,159,187,202,203,250,318],del_callback:[193,195],del_detail:187,del_pid:267,delaccount:12,delai:[0,28,33,45,120,184,188,195,213,232,260,261,279,285,308,323,344],delaliaschan:[43,164],delayed_import:308,delchanalia:[43,164],delcom:[58,164],deleg:[148,177,239,246,256,316,318,319,335],delet:[2,4,7,11,12,13,20,22,23,31,43,50,51,63,66,68,80,87,89,98,100,102,105,107,111,112,116,122,128,131,144,153,156,157,158,159,164,165,166,169,174,175,177,187,192,193,195,196,197,199,202,203,212,227,232,239,242,247,251,257,258,259,261,273,285,306,315,316,318,321,322,328,334,360,362],delete_default:[31,153],delete_prototyp:251,deletet:187,deleteview:362,deliber:[11,42,129],delic:182,delimit:[91,167,168,322],delin:48,deliv:[90,199,206],delpart:203,delresult:203,deltatim:344,delux:90,demand:[30,58,61,73,90,115,117,144,175,187,247,309,323],demo:[22,55,79,138,229,230,328],democommandsetcomm:230,democommandsethelp:230,democommandsetroom:230,demon:109,demonin:344,demonstr:[0,4,22,126,133,180,188,209,219],demowiki:4,deni:[8,103,194,198],denot:[56,114,134,322],denounc:327,depart:49,depend:[0,4,10,11,12,14,15,16,22,27,31,33,34,37,40,43,46,49,51,55,57,58,61,63,64,69,72,73,74,75,83,85,88,90,93,95,97,100,102,103,104,105,106,111,114,115,116,118,123,125,131,133,134,137,138,143,150,152,154,156,169,175,180,181,185,187,193,205,235,242,247,251,259,261,267,287,290,296,298,306,308,316,318,319,326,328,329,344],deplet:219,deploi:[38,46,90,103],deploy:[36,38,79,90,100,106],depmsg:337,deprec:[27,51,109,141,142,252,262,328,337,344],deprecationwarn:266,depreci:321,depth:[16,17,36,95,114,122,124,215,252],dequ:[11,310],deriv:[23,56,63,67,100,108,119,125,127,234,321,345],desc:[14,20,21,22,34,41,57,58,60,69,74,80,84,85,89,102,109,111,116,120,134,153,156,159,170,180,182,187,202,203,212,215,220,235,256,265,322,324,327,328,357,362],desc_al:231,desc_dead:231,desc_lamp_broken:226,desc_lid_clos:226,desc_lid_open:226,descend:[119,357],describ:[5,9,11,13,14,20,21,22,30,31,33,37,43,46,51,55,58,62,63,64,68,69,71,75,76,79,80,85,86,88,90,92,96,102,109,110,111,113,114,116,124,125,127,128,131,133,135,137,139,152,159,163,164,165,177,182,184,187,204,206,220,226,244,252,259,264,285,287,290,300,328,343,344,363],descripion:231,descript:[0,14,15,20,21,22,34,39,41,43,46,49,51,54,55,57,58,60,61,68,74,77,85,90,96,102,109,111,112,126,129,131,133,134,135,139,145,156,159,164,165,175,179,180,182,187,202,204,206,212,215,226,230,231,232,233,234,235,237,241,244,247,256,322,324,328,338,339],description_str:111,descvalidateerror:202,deseri:[11,97,338],deserunt:52,design:[14,16,23,26,33,37,39,41,55,57,61,79,89,91,108,109,111,112,117,118,119,124,129,133,138,153,159,180,194,206,209,232,247,322,338,344],desir:[1,4,27,28,29,43,49,57,58,59,91,108,112,114,115,119,121,123,133,137,159,183,205,242,267,312,324,330,345],desired_perm:242,desktop:[15,16,138],despit:[11,13,57,63,64,79,81,105,233],dest:[234,247],destin:[0,22,25,33,43,49,74,77,85,89,91,109,111,119,121,159,197,200,209,212,213,217,218,219,220,221,232,233,241,246,247,252,324,362],destinations_set:246,destroi:[0,20,89,103,116,127,146,159,164,203,219,247],destroy:212,destruct:[31,152],detach:106,detail:[2,5,9,12,15,19,20,22,26,30,33,34,37,41,46,51,58,60,61,63,64,80,88,89,90,91,93,95,96,105,109,111,114,116,118,122,124,125,128,129,131,134,135,136,139,145,153,154,159,175,180,187,203,204,206,218,233,235,239,244,251,252,269,270,306,308,318,321,336,344,360,362],detail_color:159,detailkei:[187,233],detailview:362,detect:[31,33,36,38,61,81,88,89,103,105,118,151,154,168,175,279],determ:317,determin:[2,4,13,15,20,27,29,31,33,34,39,43,44,49,50,51,52,63,73,80,82,83,85,87,93,102,109,110,116,123,136,137,144,145,152,153,154,156,167,173,175,179,200,205,206,213,215,217,218,219,220,221,232,239,242,244,247,251,291,316,317,318,321,326,329,344],detour:[21,83,308],dev:[1,23,37,55,57,61,63,64,67,71,76,79,90,95,98,138],develop:[3,9,15,16,19,20,25,26,27,33,36,37,38,42,43,48,54,55,56,58,60,61,63,64,68,70,71,72,76,77,80,86,88,90,91,93,94,96,97,99,104,106,108,109,111,114,123,126,131,133,135,136,137,138,139,157,158,164,169,175,192,193,198,209,227,239,247,252,313,318,322,328,363,364],devoid:321,dex:[11,51,58,327],dexter:[217,218,219,220,221],diagnos:[30,97],diagram:125,dialog:137,dialogu:[0,124,139,364],dice:[63,73,91,116,141,142,178],dicecmdset:185,dicenum:185,dicetyp:185,dict:[0,11,13,25,31,43,46,51,53,88,107,109,119,127,144,146,152,154,159,175,182,184,187,188,192,195,197,198,200,205,206,209,210,215,219,221,233,247,249,250,251,252,259,261,264,265,267,272,277,278,280,285,287,290,295,296,307,308,310,317,322,323,325,327,328,329,336,339,344,357,362],dictat:[31,62,117],dictionari:[0,10,11,13,25,31,43,49,55,56,62,69,73,80,96,97,102,109,116,124,134,138,157,159,182,184,187,188,192,195,198,200,205,206,209,210,211,215,219,220,233,235,242,252,272,285,294,306,307,308,310,317,321,323,327,328,334,338,339,340,344,357,362],did:[2,21,22,29,57,60,64,68,91,95,96,104,111,123,131,144,179,247,319,340,344],did_declin:179,didn:[5,20,22,38,41,42,44,49,51,58,59,61,72,80,91,100,104,119,121,126,127,133,136,140],die:[73,91,106,114,117,185,205,308],dies:231,diff:[75,131,185,252],differ:[0,2,8,9,11,13,14,15,16,19,20,21,22,24,25,27,31,33,37,38,39,40,41,42,43,44,46,47,49,50,51,54,55,57,58,61,62,63,64,66,68,69,70,73,79,80,82,83,84,87,88,91,93,95,96,100,102,103,105,106,107,109,110,111,112,113,114,115,116,118,119,120,121,124,126,127,129,131,133,136,137,138,139,140,141,144,145,150,152,153,156,159,168,169,171,175,180,184,185,186,195,196,199,204,206,213,215,217,218,219,220,221,224,234,235,247,249,251,252,256,259,261,265,269,291,296,298,315,316,318,322,324,328,337,340,344,362],differenti:[56,57,58,182,206,215,247],differet:61,difficult:[4,39,93,103,133,220,221],difficulti:133,dig:[0,20,31,33,40,57,58,89,93,96,109,121,123,140,159,212,299],digit:[12,90,114,127,204,311,321,337],digitalocean:[67,90],diku:[55,64,124,139,364],dikumud:129,dime:108,dimens:[49,55],dimension:58,diminish:114,dimli:111,dinner:46,dip:96,dir:[9,21,23,36,38,54,58,63,64,67,75,79,90,96,100,102,127,128,130,131,134,337,344],direct:[0,3,8,10,11,12,20,22,31,38,43,44,45,49,51,58,70,74,88,90,100,109,111,116,118,119,121,128,137,138,139,159,194,200,210,235,242,267,328,330,337,341,344,364],directli:[2,5,8,13,14,20,21,23,27,29,30,33,37,40,42,44,46,50,51,55,56,58,59,61,62,64,72,80,88,89,90,93,94,95,96,100,102,104,109,110,111,114,116,118,119,123,125,128,131,137,138,154,170,175,176,179,180,181,185,198,206,215,220,221,227,233,234,238,242,246,247,251,256,273,278,287,290,295,300,306,316,318,322,324,328,329,342,344],director:206,directori:[4,8,9,13,20,25,27,36,37,43,45,58,59,62,63,64,69,75,76,95,96,100,106,123,125,127,128,130,131,133,134,135,136,137,139,159,209,267,287,288,312,322,337,344,364],directorylist:312,dirnam:267,dirti:55,disabl:[0,4,24,25,50,63,80,81,106,114,127,137,154,170,188,206,215,234,242,290,329,334,345],disableloc:290,disableremot:290,disadvantag:[58,90,116,221],disambigu:[41,72,119,154,174,247,318],disappear:103,discard:[175,321],disconcert:41,disconnect:[2,11,12,40,41,43,55,57,60,92,97,105,107,110,112,116,123,128,137,144,156,159,164,167,169,175,201,247,277,278,279,285,286,287,290,295,296,299,305,306,307,308],disconnect_al:285,disconnect_all_sess:308,disconnect_duplicate_sess:308,disconnect_session_from_account:144,discontinu:24,discord:[9,63,72,79],discordia:108,discourag:[64,75],discov:[91,122],discoveri:210,discrimin:103,discuss:[1,4,25,26,33,37,45,48,55,63,69,70,116,138,139],discworld:88,disengag:[116,144,217,218,219,220,221],disk:[11,27,86,100,108,110,205,209,249],dislik:57,disonnect:11,dispatch:[37,70],dispel:126,displai:[0,17,22,25,30,31,33,38,42,43,46,50,51,58,59,60,61,68,69,73,80,81,82,83,85,88,89,91,93,101,102,103,104,111,114,116,119,123,124,133,134,135,136,137,138,139,145,154,156,159,166,169,171,173,175,179,180,182,186,187,188,190,193,195,197,199,201,206,215,230,232,233,234,235,237,247,251,252,254,265,267,284,302,305,310,318,319,326,327,328,329,330,338,339,340,343,344,345,357,362],display:261,display_buff:326,display_choic:180,display_formdata:188,display_help:326,display_helptext:[249,328],display_len:344,display_met:190,display_nodetext:328,display_titl:180,dispos:[111,203],disput:116,disregard:33,dist3:94,dist:[63,130],distanc:[6,27,39,46,49,64,125,205,220,221,247,344],distance_inc:221,distance_to_room:39,distant:[49,138,187,233],distinct:[55,64,105,140,221],distinguish:[22,154,215,221],distribut:[8,9,15,23,31,34,42,63,64,78,96,97,124,127,128,175,177,206,321,324],distribute_messag:175,distributor:34,distro:[8,23,63,67,72],disturb:[27,140],distutil:63,distutilserror:63,ditto:63,div:[3,16,17,38,109,137,250],dive:[22,41,63],diverg:83,divid:[13,64,69,184,233,344],dividend:184,divisiblebi:69,divisor:184,django:[2,3,4,9,12,15,23,25,36,39,55,63,69,73,76,79,86,94,101,103,104,107,112,113,120,124,125,127,128,134,136,137,139,144,145,148,171,173,175,177,186,237,239,244,246,251,254,256,263,266,267,273,274,287,293,295,296,303,309,311,312,315,316,318,319,322,325,329,333,334,335,340,342,344,346,349,352,357,362],django_admin:360,django_nyt:4,djangonytconfig:4,djangoproject:[23,94,357],djangowebroot:312,dmg:73,dnf:[8,63,67],do_attack:231,do_flush:[318,334],do_gmcp:291,do_hunt:231,do_mccp:280,do_msdp:291,do_mssp:281,do_mxp:282,do_naw:283,do_nested_lookup:159,do_not_exce:25,do_noth:230,do_patrol:231,do_pickl:325,do_task:260,do_unpickl:325,do_xterm256:321,doabl:[14,138],doc:[11,16,17,23,25,33,45,51,53,60,64,68,70,79,86,94,95,96,109,110,125,129,130,136,139,141,159,204,234,278,344,357,363,364],docker:[7,63,79,90,139,364],dockerfil:100,dockerhub:100,docstr:[1,5,25,38,41,43,68,74,96,154,159,170,180,193,205,206,215,233,234,328],documen:96,document:[0,3,5,6,9,16,17,20,22,23,24,25,26,29,41,43,46,47,48,52,55,57,58,60,64,68,70,76,79,83,86,90,94,96,103,104,106,111,114,118,121,122,123,124,125,127,131,133,135,136,139,153,167,180,204,234,316,319,327,334,362],dodg:218,doe:[2,4,5,9,11,20,21,23,24,25,26,29,31,33,37,38,39,40,41,43,49,51,54,55,56,57,58,60,61,63,64,68,69,73,78,80,85,88,89,91,95,96,100,102,104,109,110,111,112,113,114,116,117,118,119,121,123,125,126,127,129,131,132,133,136,137,138,140,144,146,156,164,167,169,171,174,181,182,183,186,187,200,202,203,215,217,218,219,220,221,232,233,234,235,247,251,252,259,266,267,271,272,273,276,279,287,288,294,306,316,318,323,328,336,337,340,344,349,357,362],doesn:[0,4,9,11,13,15,22,25,26,29,33,36,37,39,44,46,49,51,57,60,61,63,69,71,72,73,75,76,78,86,88,89,90,91,95,96,103,110,111,121,123,125,126,127,128,133,136,137,138,153,177,181,187,194,195,206,219,242,260,267,280,287,291,321,328,339,344],doesnotexist:[144,146,148,175,177,179,182,184,187,189,195,197,203,204,205,206,212,213,214,217,218,219,220,221,223,226,227,231,232,233,235,239,246,247,251,256,259,274,300,316,319,324,331,335],doff:218,dog:[27,96],doing:[2,4,10,11,27,29,31,33,36,38,39,43,46,49,51,57,58,59,60,61,64,69,70,79,80,89,90,95,96,97,105,110,114,115,119,125,126,127,133,134,137,138,144,156,179,182,194,206,215,217,218,219,220,221,226,231,232,235,241,247,261,298,328,334,340],dolor:52,dom:137,domain:[8,55,67,90,103,138,324],domexcept:90,dominion:9,dompc:9,don:[0,1,3,4,6,9,10,11,20,21,22,23,25,26,27,29,30,31,33,34,37,38,39,41,42,43,44,46,47,50,51,54,58,59,61,62,63,64,67,68,69,70,72,73,75,80,81,82,83,85,86,88,90,91,93,95,96,97,102,103,104,105,106,111,114,116,119,122,123,125,126,127,128,131,132,133,134,135,136,138,140,144,146,152,153,159,164,165,166,167,168,174,175,180,185,194,198,205,206,218,219,220,224,227,233,234,235,242,247,251,252,261,271,272,279,284,285,290,292,299,306,313,318,321,322,328,334,337,340,344,357,362],donald:93,donat:[70,90],done:[1,4,6,9,10,11,20,21,22,25,29,30,31,33,34,36,37,38,39,41,43,44,49,51,55,56,57,58,59,61,62,63,64,67,69,70,73,76,80,82,85,87,90,91,93,100,107,108,110,115,116,117,118,119,120,121,123,126,128,131,133,136,137,144,154,156,174,175,179,185,205,221,227,235,242,246,247,259,261,267,280,284,286,288,292,296,302,305,306,308,313,316,321,322,329,334,344,362],donoth:259,dont:[79,289],doom:252,door:[0,20,22,27,43,49,61,80,85,89,103,159,212],doorwai:212,dot:[22,43,119,153,159,322,344],dotal:[321,343],dotpath:344,doubl:[22,38,43,57,97,119,133,152,171,343,344],doublet:[152,153],doubt:[22,138,234],down:[0,4,6,11,12,21,22,29,31,33,36,38,39,41,43,49,50,51,55,57,58,61,63,73,81,85,86,90,91,93,96,100,102,103,104,106,108,111,114,119,122,123,136,137,144,159,169,195,209,215,218,219,232,235,241,247,252,259,261,267,269,276,277,284,285,305,306,308,321,329,330,344],download:[5,9,23,26,63,64,72,75,79,90,100,101,128,130,131,139],downtim:[29,103,331],downward:[43,156],dozen:[25,55,108],drag:137,draggabl:138,dragon:56,dramat:[11,61],drape:182,draw:[14,38,39,49,73,119,330],draw_room_on_map:49,drawback:[14,23,28,29,51,58,73,86,138,181,322],drawn:[49,58,111],drawtext:73,dream:[26,55,61,129],dress:182,drink:[316,318],drive:[9,19,21,61,63,64,96,100,121,131,133],driven:[25,79,123,214,249],driver:23,drizzl:[102,132],drop:[6,9,14,20,21,23,25,33,37,40,55,57,58,60,69,70,73,80,85,86,87,88,89,90,117,118,121,128,137,138,159,165,182,197,203,214,218,221,226,241,247,276,318,322,344],drop_whitespac:330,dropdown:[106,138],droplet:67,droplock:241,dropper:[197,218,221,247],drum:90,dry:67,dtobj:344,duck:[27,95],duckclient:24,due:[5,6,12,22,29,31,33,40,43,58,60,62,63,64,76,90,91,93,95,96,104,107,125,126,140,153,169,197,246,247,269,305,308,315,321,337],duh:108,dull:[20,26,111],dumb:[20,138,308,321],dummi:[9,33,54,59,80,93,127,206,242,267,285,298,299,306],dummycli:298,dummyfactori:298,dummyrunn:[141,142,262,267,285,297,299,301],dummyrunner_act:298,dummyrunner_actions_modul:298,dummyrunner_set:[93,141,142,262,267,297],dummyrunner_settings_modul:93,dummysess:308,dump:[34,209,276],dungeon:[55,77,112],dupic:31,duplic:[31,37,96,152,159,261,318,337],durat:[10,28,132,139,219,338,345,364],dure:[9,11,29,31,38,40,55,60,61,63,66,68,79,80,95,97,100,102,105,107,116,123,132,135,136,137,140,152,164,170,187,200,203,227,231,233,234,242,244,258,276,286,322,324,328,337,357],duti:64,dwarf:111,dwummte9mtk1jjeypxrydwubb:79,dying:[217,218,219,220,221],dynam:[2,3,34,43,68,82,86,90,111,114,115,124,133,137,138,139,144,148,154,166,169,170,174,177,188,206,215,217,218,219,220,221,239,246,247,256,261,316,318,319,324,326,328,335,338,362,364],dynamical:344,dyndns_system:90,e_char_typeclass:120,ea45afb6:101,each:[0,1,2,4,5,10,11,13,19,20,22,27,29,31,33,34,36,38,39,40,42,43,48,49,51,55,56,57,58,59,61,62,64,69,73,77,80,82,83,85,86,95,96,97,100,102,104,105,108,109,111,112,114,115,116,119,121,123,124,125,126,127,132,133,136,137,138,140,144,151,152,153,157,159,168,175,179,181,182,183,187,188,200,203,205,206,215,217,219,220,221,228,235,239,242,246,247,252,258,261,269,272,285,287,290,294,299,306,307,308,316,318,319,321,322,324,326,327,328,329,330,334,336,344],eaoiui:205,earli:[36,138,217,218,219,220,221,269],earlier:[3,9,13,31,36,51,54,58,60,61,62,64,74,85,95,96,106,119,121,123,131,134,272],earn:124,earnest:124,earth:[82,103],eas:[31,33,39,86,90,100,126],easi:[0,5,10,13,17,22,23,26,29,33,38,39,43,46,51,55,56,61,62,67,68,69,72,73,76,79,81,82,85,88,89,90,100,102,106,108,111,113,116,118,123,125,126,127,128,131,133,134,138,140,153,157,164,182,188,215,328,334],easier:[1,4,10,11,12,22,25,37,38,39,47,51,55,56,57,58,61,62,69,73,86,90,91,95,96,102,109,126,136,205,215,217,218,219,220,221,232,260,309,319],easiest:[0,5,12,15,25,27,30,46,58,63,67,70,76,123,128,131,133,135,209,318],easili:[0,3,4,11,12,13,14,17,20,25,27,28,33,34,37,38,39,46,48,49,51,55,58,60,61,62,63,68,70,73,80,83,85,88,90,91,96,98,100,103,105,106,107,108,109,111,112,119,122,123,131,133,136,137,138,140,166,177,179,180,182,188,190,194,205,212,215,217,218,219,220,221,234,238,241,261,322,328,339],east:[25,44,49,111,159,200,233],east_exit:233,east_west:111,eastern:[62,111],eastward:233,eccel:330,echo1:29,echo2:29,echo3:29,echo:[5,10,12,20,26,27,28,29,33,36,38,43,44,49,50,55,59,65,71,90,95,96,98,100,104,109,110,116,118,123,132,140,144,146,157,159,164,169,182,185,197,206,226,231,232,233,247,265,272,287,290,326,344],echotest:5,econom:[55,79,86],economi:[61,73,102,108,120,179],ecosystem:100,ect:96,ed30a86b8c4ca887773594c2:122,edg:[16,27,131,330,344],edgi:49,edit:[0,1,4,5,6,9,11,13,14,23,25,26,30,33,35,37,40,41,43,46,48,54,56,58,59,60,61,62,67,68,69,70,75,76,79,80,81,86,95,96,97,100,101,104,106,109,111,114,128,133,134,135,136,137,138,157,159,166,169,180,186,188,192,193,195,196,201,202,203,237,242,244,247,249,251,252,316,326,357,362,364],edit_callback:[193,195],edit_handl:159,editcmd:22,editor:[0,5,9,15,21,22,33,38,43,45,46,53,57,60,63,67,76,79,95,96,97,108,109,111,131,139,159,166,168,169,180,202,256,322,326],editor_command_group:326,editorcmdset:326,editsheet:58,edu:124,effect:[6,10,11,14,27,28,29,31,35,39,43,56,57,58,61,73,87,95,104,107,110,111,114,115,116,117,124,126,127,128,129,138,140,141,142,144,152,153,159,168,185,195,218,219,220,226,227,231,233,240,247,253,256,280,336,344],effici:[11,26,28,29,39,55,56,64,76,79,86,87,93,95,103,112,115,119,125,132,179,206,213,242,247,261,316,317,319,326,329],effort:[37,56,131,134,362],egg:75,egg_info:63,egi:269,either:[0,4,9,12,13,17,23,27,29,31,33,34,37,38,39,41,43,44,46,49,51,56,57,58,69,73,80,83,90,91,93,95,97,102,103,105,109,110,111,112,114,116,119,121,122,123,125,126,128,131,137,138,144,146,152,153,154,164,169,174,175,176,180,192,198,199,201,205,206,212,215,217,220,221,242,247,251,252,256,258,259,261,265,276,288,292,299,317,318,319,328,330,336,337,339,341,344],elabor:[4,22,85,91,123],electr:[90,124],eleg:37,element:[16,17,22,41,43,51,55,91,114,151,156,180,184,204,205,247,252,316,317,319,322,327,328,329,344],elev:[46,82,124,139,364],elif:[0,41,49,51,58,73,102,116,117,123],elimin:[96,100,321],ellipsi:96,ellow:114,els:[0,1,2,5,9,10,12,19,20,21,22,23,25,27,29,30,33,38,39,41,42,46,48,49,51,58,60,68,69,73,80,81,82,84,85,90,91,95,102,103,111,114,115,116,117,120,121,123,127,131,133,134,137,179,182,188,204,217,218,219,220,221,235,246,296,318,328,344],elsewher:[2,29,31,58,70,96,112,133,138,153,233,267,308,316],elvish:205,emac:[14,79],email:[63,64,67,131,144,145,186,324,338,344,345,357],email_login:[141,142,178],emailaddress:344,emailfield:[145,357],emb:[38,58,109,114,187,252],embark:121,embed:[109,114,125,138,250,327,336],emerg:[76,80,103],emi:205,emit:[25,34,108,137,153,157,175,189,247,306,337],emit_to_obj:[153,247],emitt:83,emo:21,emoji:24,emot:[33,41,43,55,68,116,165,179,205,206],emoteerror:206,emoteexcept:206,emphas:[38,61],emphasi:38,emploi:345,empti:[0,2,3,6,9,10,14,25,31,33,38,41,42,43,47,49,51,54,58,60,63,64,69,73,77,84,86,88,89,91,96,97,100,114,115,117,119,123,125,127,128,131,134,137,138,150,151,157,159,170,180,190,192,206,251,252,265,272,276,298,299,315,322,324,328,330,341,344],empty_color:190,empty_permit:[145,237,244,357],empty_threadpool:312,emptyset:31,emul:[43,64,75,105,123,129,169],enabl:[8,24,43,71,100,103,106,114,126,134,137,144,175,188,290,345],enable_recog:206,enableloc:290,enableremot:290,encamp:46,encapsul:338,encarnia:79,encas:326,enclos:[35,43,50,171,186,336],encod:[7,27,58,111,139,278,291,295,296,321,340,344,364],encode_gmcp:291,encode_msdp:291,encoded_text:344,encompass:27,encount:[60,95,153,345],encourag:[3,22,24,39,70,91,94],encrypt:[7,8,43,83,103,164,287,288,292],end:[1,5,6,8,9,10,11,13,14,19,20,21,22,23,25,27,28,29,31,33,34,38,39,40,43,47,50,51,54,55,58,60,62,64,65,67,69,73,76,80,81,83,86,87,88,90,91,93,95,96,100,105,107,108,109,114,116,118,119,121,122,123,126,128,131,133,134,135,137,138,140,144,146,152,153,159,165,166,174,179,181,182,185,190,202,206,214,215,217,218,219,220,221,233,238,250,271,278,279,287,290,291,301,306,310,312,317,321,322,324,328,329,330,336,337,344,362],end_convers:51,end_turn:116,endblock:[3,69,133,134],endclr:[114,336],endfor:[69,133,134],endhour:25,endif:[69,133,134],endlessli:103,endpoint:103,endsep:344,endswith:321,ened:94,enemi:[11,29,51,61,109,116,122,219,220,221,231,232,233],enemynam:51,enforc:[10,33,41,61,73,80,114,126,138,287,290,329,330,362],enforce_s:330,engag:[55,221,231],engin:[22,23,33,36,43,55,56,64,68,73,77,79,89,102,103,104,122,127,131,136,140,150,153,168,169,210,233,238,267,278,284,287,290,295,305,307,322,324],english:[15,76,79,97,113,139],enhanc:[59,81,114,209,321,362],enigmat:20,enjoi:[61,63,91,106],enough:[4,6,21,29,38,39,41,42,43,51,55,57,58,61,63,64,69,70,80,84,85,87,90,91,96,108,112,115,119,123,126,136,153,159,204,205,226,235,328,329,330],ensur:[49,69,94,100,106,117,126,127,215,342,362],ensure_ascii:296,enter:[0,1,3,5,9,12,13,14,15,20,21,22,23,25,26,27,29,31,33,35,36,41,42,43,44,46,51,58,62,63,64,66,69,75,77,80,83,85,87,89,91,95,96,100,109,111,114,116,117,119,122,123,124,128,129,131,133,135,138,139,141,144,151,153,158,167,168,169,174,179,180,182,187,188,198,201,215,217,218,219,220,221,231,233,235,241,247,252,256,265,306,326,328,357],enter_guild:51,enter_nam:51,enter_wild:235,enterlock:241,enterpris:36,entir:[10,11,13,14,19,22,27,29,33,46,49,50,51,60,61,69,80,86,90,91,108,111,114,115,123,125,127,136,180,205,206,215,234,241,242,247,251,252,318,322,328,330,334,336,344,362],entireti:[51,73,188,328],entit:324,entiti:[6,11,27,34,43,47,51,53,55,59,61,64,80,84,87,89,102,105,107,109,112,116,119,125,126,139,143,144,154,159,169,175,176,177,206,212,241,247,249,250,251,252,253,256,257,259,261,308,316,317,319,324,328,329,333,341,344],entitii:107,entitl:90,entranc:111,entri:[4,5,11,15,24,25,27,31,33,34,43,47,48,51,53,54,58,59,63,69,70,72,77,80,83,91,95,107,119,121,131,138,139,144,154,166,167,170,190,197,204,215,217,218,219,220,221,236,237,238,239,242,247,261,286,299,316,322,324,326,328,330,337,338,341,344,345,362],entriest:[43,156],entrust:59,entrypoint:100,entrytext:[69,239,324],enul:8,enumar:344,enumer:134,env:[267,277],environ:[4,7,9,13,25,36,38,43,45,59,61,63,64,65,82,90,95,100,103,128,169,170,228,230,267,277,293,302,322,328,342,360],environment:267,eof:287,epic:79,epilog:234,epoch:[27,62,331],epollreactor:312,epub:79,equal:[0,16,19,20,25,31,33,39,46,91,93,96,97,114,121,152,187,206,217,218,219,220,221,247,344],equip:[14,57,114,182,217,218,220,221],equival:[10,11,13,40,43,47,63,87,88,101,103,104,110,114,128,143,159,238,285,291,316,344,362],eras:[9,95,221],err:[58,80,298,322],err_travers:[89,247],errback:[10,264,267,276,277,344],errmessag:152,errmsg:[123,337],erron:[113,123,276,330],error:[1,5,6,8,9,10,11,14,15,20,22,23,24,26,27,31,33,37,38,42,43,51,56,57,58,59,60,63,64,67,71,74,75,76,80,83,86,87,89,90,91,97,103,104,105,109,111,113,114,118,119,120,122,123,125,127,128,131,133,135,139,144,150,152,153,159,175,195,200,204,206,215,227,232,234,242,247,250,251,259,264,266,267,269,271,276,290,298,318,321,322,324,327,328,336,337,340,344,345,364],error_check_python_modul:267,error_class:[145,237,244,357],error_cmd:44,error_msg:310,errorlist:[145,237,244,357],errorlog:8,escal:[2,19,43,80,156,241],escap:[43,69,114,165,169,234,250,321,336,343,357],escript:[22,180],especi:[1,8,15,22,23,29,60,61,63,67,80,105,111,112,124,190,205,322],ess:52,essai:79,essenti:[28,49,56,67,75,79,106,113,176,267,324],est:52,establish:[33,61,73,105,144,197,217,247,264,276,278,285,287,290,295,298,305,307],estim:[30,252,334],esult:247,etc:[2,5,6,8,11,12,20,22,23,25,27,29,30,33,35,38,40,41,43,47,48,49,51,53,55,56,57,58,61,62,63,64,67,73,79,80,83,84,86,87,88,89,95,96,100,102,103,105,107,108,109,110,112,116,119,120,125,126,127,131,132,137,138,144,148,150,151,152,153,156,158,159,167,168,169,175,179,183,184,188,190,203,205,206,212,218,220,224,227,234,247,250,251,252,285,287,290,294,295,296,306,307,315,316,318,321,322,324,325,326,327,328,336,337,344,362],etern:51,euro:90,ev_channel:146,eval:[109,179,250],eval_rst:38,evalstr:242,evalu:[33,38,51,119,151,179,242,250,328],evbot:[43,164,308],evcast:79,evcel:[327,330],evcolor:79,evcolum:330,evcolumn:330,eve:344,eveditor:[22,45,53,139,141,142,180,320,364],eveditorcmdset:326,even:[1,4,6,9,11,12,14,19,21,22,25,26,27,29,31,37,39,41,42,43,46,49,50,51,54,55,56,57,58,60,61,62,63,64,69,70,73,77,80,85,86,90,91,93,97,102,103,105,106,108,110,114,115,116,118,119,122,123,125,126,129,131,135,138,152,154,157,182,184,187,188,197,205,217,218,219,220,221,233,234,247,252,290,328,330,334,344],evenli:[27,184],evenn:100,evenna:9,evenni:[4,127],evennia:[0,1,2,3,6,10,11,12,13,14,15,17,19,20,21,22,24,27,28,29,30,31,33,34,35,36,37,39,40,43,44,46,48,49,50,51,52,53,59,60,61,62,63,64,65,66,68,69,70,72,73,74,78,80,81,82,83,84,85,86,87,88,89,92,93,94,97,98,99,101,102,103,104,105,107,108,111,112,113,114,115,116,117,118,119,120,121,122,123,125,129,130,132,133,134,135,136,138,139,364],evennia_access:8,evennia_admin:362,evennia_channel:[43,65,72,98,164],evennia_dir:344,evennia_error:8,evennia_launch:[106,141,142,262,265],evennia_logo:136,evennia_vers:267,evennia_websocket_webcli:295,evennia_wsgi_apach:8,evenniacreateview:362,evenniadeleteview:362,evenniadetailview:362,evenniaform:357,evenniagameindexcli:269,evenniagameindexservic:270,evenniaindexview:362,evennialogfil:337,evenniapasswordvalid:311,evenniareverseproxyresourc:312,evenniaserv:92,evenniatest:[170,196,211,228,293,342,360],evenniaupdateview:362,evenniausernameavailabilityvalid:[144,311],evenniawebtest:360,event:[51,64,73,103,107,137,139,141,146,179,184,194,195,196,197,198,206,209,227,256,259,309,364],event_nam:[194,198],eventcharact:197,eventdict:337,eventexit:197,eventfunc:[0,141,142,178,191,195],eventhandl:195,eventi:[154,180,234],eventobject:197,eventroom:197,eventu:[4,11,12,19,25,29,33,41,58,61,70,76,80,83,88,90,110,116,119,123,133,136,144,150,151,168,170,185,197,205,206,233,242,247,251,252,264,272,298,306,307,319,323,324,328,330,355],evenv:[4,36,63,64,75,97,106],evenwidth:330,ever:[11,12,13,14,15,22,23,25,33,41,57,64,73,86,91,102,105,110,111,112,113,118,125,128,131,138,241,261,278,279,285,316,328],everi:[0,4,6,11,13,20,21,25,26,27,28,31,33,36,37,39,41,43,46,48,49,51,57,62,63,64,69,73,74,75,77,85,86,90,91,96,100,102,104,108,109,111,112,113,114,115,116,119,120,121,122,123,125,127,128,130,131,132,133,134,135,136,138,144,159,164,182,188,195,205,206,215,217,218,219,220,221,223,227,230,235,247,252,259,261,272,289,299,305,314,315,318,328,329,330],everror:195,everybodi:41,everyon:[19,21,24,33,34,43,51,58,61,64,71,73,77,78,80,87,98,102,110,112,114,116,121,123,127,128,131,132,159,165,166,185,217,218,219,220,221,247,285],everyth:[9,11,19,21,26,28,31,36,38,42,43,47,49,51,55,58,61,63,64,67,69,72,73,75,79,80,81,83,85,87,90,91,97,100,103,104,109,110,111,113,115,116,119,122,127,128,131,135,136,137,138,139,149,154,164,165,167,168,169,170,171,181,186,233,241,246,256,271,298,306,318,322,328,336],everywher:[9,56,94],evform:[27,45,53,141,142,320],evgam:[43,164],evgamedir:38,evid:72,evil:[14,93,226,252],evmenu:[22,27,33,45,53,58,85,124,139,141,142,180,188,201,214,215,230,249,320,364],evmenucmdset:328,evmenuerror:328,evmenugotoabortmessag:328,evmenugotomessag:328,evmor:[45,139,141,142,251,320,364],evtabl:[27,33,45,49,53,82,111,141,142,154,188,251,320,327,329,344],evtable_arg:329,evtable_kwarg:329,exact:[33,41,43,51,80,93,95,96,119,129,138,144,151,159,168,176,206,221,238,247,251,252,317,318,340,341,344],exactli:[2,10,19,20,38,40,42,46,58,62,63,64,69,73,76,83,86,91,95,96,100,102,110,111,114,115,123,128,131,136,138,206,247,267,318,341],exam:[43,159],examin:[2,11,12,20,22,33,58,60,73,80,83,85,91,96,106,115,122,123,131,137,140,144,159,179,224,232,233,299],exampl:[0,2,4,5,6,8,10,11,13,14,15,17,19,20,21,22,25,27,28,29,30,31,33,36,37,38,40,41,43,44,48,49,55,56,57,58,59,60,61,62,63,64,67,68,71,74,77,81,82,84,85,86,87,88,89,91,93,95,96,97,98,100,103,104,105,106,109,110,111,112,114,115,117,118,119,121,122,123,124,125,126,129,130,131,132,133,135,136,138,139,140,144,148,151,152,153,154,157,158,159,164,165,166,167,168,170,174,176,177,179,180,182,184,185,187,188,189,190,199,200,203,204,205,206,209,212,213,214,215,217,218,219,220,221,223,226,227,231,233,234,235,239,242,246,247,252,256,259,261,272,287,290,291,296,299,308,312,315,316,318,319,321,322,323,327,328,329,330,331,335,336,337,338,341,342,344,345,357,362,363,364],example1_build_forest:200,example1_build_mountain:200,example1_build_templ:200,example1_legend:200,example1_map:200,example2_build_forest:200,example2_build_horizontal_exit:200,example2_build_verticle_exit:200,example2_legend:200,example2_map:200,example_batch_cod:[13,141,142,178,222],exapmpl:5,excalibur:85,exce:[82,217,218,219,220,221,310,334],exceed:310,excel:[56,67,79,80,102,108],excempt:152,except:[4,9,10,11,14,19,20,21,22,27,28,29,31,33,38,39,41,46,50,58,63,64,75,80,83,89,90,91,95,97,102,109,111,114,116,118,119,120,121,123,126,133,134,144,146,148,150,153,154,167,168,175,176,177,179,182,184,187,189,194,195,197,198,202,203,204,205,206,212,213,214,217,218,219,220,221,223,226,227,231,232,233,234,235,239,241,242,246,247,251,256,259,267,272,274,276,288,290,292,296,300,312,316,319,321,324,327,328,329,330,331,335,336,337,339,344],excepteur:52,excerpt:50,excess:[22,80,109,167,168,246,322],exchang:[13,90,102,179,325],excit:[20,35,54],exclam:21,exclud:[64,119,120,123,182,203,233,246,247,326,328],exclude_channel_messag:176,exclude_cov:182,excluded_typeclass_path:169,exclus:[51,61,80,83,256,317,328],exclusiv:324,exe:[63,106,128],exec:[51,85,109,252,328],exec_kwarg:328,exec_str:302,execcgi:8,execut:[0,9,10,12,13,14,19,22,25,28,29,31,33,36,43,45,46,47,50,51,55,62,63,64,69,75,83,85,87,89,91,95,102,106,109,111,114,119,127,128,137,139,144,146,148,149,150,154,157,158,166,167,169,170,177,180,195,200,206,215,233,234,239,241,242,246,247,251,252,253,256,260,264,272,274,277,278,284,287,290,295,299,302,305,306,316,318,319,322,328,329,335,336,344,364],execute_cmd:[2,33,89,117,118,123,144,146,154,247,272,306],execute_command:33,executor:36,exemplifi:[28,40,122],exercis:[21,41,42,58,85,95,96,111,116,123,132,293,303,335],exhaust:22,exhaustedgener:204,exidbobj:247,exis:44,exist:[0,2,3,5,11,12,13,20,21,22,25,27,31,33,35,36,39,40,41,43,44,46,48,49,51,56,57,58,60,61,64,65,68,69,70,72,76,80,86,96,97,100,102,105,109,111,112,115,116,117,123,124,128,131,134,136,138,139,143,144,145,146,152,153,154,159,164,166,167,168,169,175,180,181,187,192,194,195,198,199,202,203,205,206,213,220,232,235,241,242,246,247,249,252,259,260,267,271,273,287,288,292,300,305,306,308,316,317,318,319,322,324,326,327,328,330,337,339,344],existen:306,exit:[20,21,22,23,31,39,41,43,45,49,50,51,53,55,58,63,80,85,86,91,100,106,109,111,119,121,122,123,124,125,128,139,141,150,152,153,159,169,179,180,196,197,200,201,212,213,215,221,231,232,233,234,235,241,246,247,252,287,299,316,324,326,328,329,342,360,364],exit_alias:[159,212],exit_back:58,exit_cmd:[51,329],exit_command:247,exit_nam:[49,159,212],exit_on_lastpag:329,exit_ther:58,exit_to_her:[43,159],exit_to_ther:[43,159],exit_typeclass:[235,342,360],exitbuildingmenu:22,exitcmdset:[31,247],exitcommand:247,exitnam:212,exitobject:44,exixt:285,exot:33,exp:327,expand:[0,1,4,5,6,20,21,23,49,55,57,58,61,64,70,74,81,85,89,90,104,111,114,117,120,123,124,131,132,135,139,140,159,186,212,217,218,219,220,221,247,321,330],expand_tab:330,expandtab:[321,330],expans:[44,61],expect:[0,1,6,9,10,33,34,37,38,47,56,58,61,67,75,80,83,87,88,89,90,91,94,95,96,97,107,113,114,115,122,123,124,126,127,128,134,138,159,167,168,180,192,194,204,227,235,241,247,251,252,265,315,318,328,329,334,349,362],expected_return:127,expedit:96,expens:[90,115,119,341],experi:[26,42,51,57,60,61,62,63,73,77,81,90,95,100,111,122,131,135,139,164],experienc:[51,61,64,79,95],experienced_betray:51,experienced_viol:51,experiment:[43,74,169,173,244],explain:[20,22,33,39,48,51,55,58,64,71,79,86,119,121,124,126,127,129,131,134,136,139],explan:[25,31,33,39,64,69,77,114,124,139,311],explicit:[0,1,22,31,38,40,48,69,71,88,91,104,129,136,204,267,289,316],explicitli:[4,9,21,30,31,38,43,58,59,63,68,80,83,84,85,86,87,96,97,109,112,114,115,124,125,153,154,159,204,247,252,261,318,321,324,340],explor:[0,2,10,20,42,43,59,63,69,83,95,104,111,116,122,125,169],expos:[103,134],express:[3,33,38,43,51,56,80,109,119,127,134,135,140,159,184,204,221,250,344],ext:51,extend:[1,3,5,27,34,39,43,55,56,69,73,79,85,86,108,109,111,117,118,125,133,134,148,154,166,170,175,181,183,187,195,198,235,244,246,247,318,321,338,357,362],extended_room:[141,142,178],extendedloopingcal:261,extendedroom:187,extendedroomcmdset:187,extens:[1,3,9,23,38,51,55,56,61,63,64,88,96,97,104,111,114,127,138,148,210,217,282,290,324,333,343],extent:[22,56,73],exter:164,extern:[8,15,23,34,38,40,41,43,54,55,57,63,65,72,90,98,106,108,109,111,124,139,141,153,164,172,175,177,209,251,265,267,269],external_discord_hello:272,extra:[1,6,8,14,16,21,23,25,29,31,33,37,41,51,57,58,80,89,90,93,95,96,107,114,119,123,125,126,127,134,136,137,138,144,145,148,154,166,179,187,189,202,206,233,247,250,251,261,264,315,317,321,322,326,328,329,330,337,338,339,343,344],extra_environ:322,extra_spac:344,extract:[11,41,56,91,96,97,107,138,154,206,210,242,281,295,344],extract_goto_exec:328,extrainfoauthserv:287,extran:188,extrem:[26,56,91,110,128,217,218,220,221,280,338],eye:[60,97,111,114,252,329],eyed:136,eyes:[33,37,57],eyesight:[58,80,114],eyj0exaioijkv1qilcjhbgcioijiuzi1n:122,eyjzdwiioij1cm46yxbwoiisimlzcyi6invybjphcha6iiwib2jqijpbw3siagvpz2h0ijoipd04ndkilcjwyxroijoixc9m:122,f6d4ca9b2b22:100,face:[90,103,122,189,311,328],facil:337,fact:[10,11,14,21,29,33,55,57,58,61,76,83,89,103,106,114,117,123,125,126,134,138,140,308,336],facter:138,factor:[0,62,82,114,218,220,264,278,279],factori:[40,96,264,269,277,278,279,285,286,287,288,290,298],factory_path:146,fade:[108,205],fail:[4,9,10,11,12,13,14,24,27,31,41,51,60,61,63,89,91,103,107,109,110,113,116,117,121,127,153,168,175,185,206,212,232,241,242,247,251,259,264,265,267,271,278,279,289,310,315,316,318,338,340,344,362],failmsg:310,failtext:73,failur:[10,14,63,73,119,127,144,233,269,276,278,279,298,310,321,344],failure_teleport_msg:233,failure_teleport_to:233,faint:102,fair:[73,185],fairli:[39,69,75,182,188,215,218],fake:[183,298,308],fall:[26,31,38,60,62,64,73,97,102,111,113,141,144,168,189,206,233,328,344,357,362],fall_exit:233,fallback:[44,49,55,150,154,177,187,242,259,267,291,296,316,328,339,344],fals:[1,2,4,6,11,20,21,22,25,27,29,31,33,38,41,44,49,50,51,58,62,68,74,77,80,81,84,86,89,96,102,103,115,116,118,120,121,123,125,127,133,137,144,145,148,150,151,152,153,154,159,166,175,176,177,179,180,182,183,184,185,188,192,195,197,199,205,206,212,215,217,218,219,220,221,230,234,235,237,238,239,241,242,244,246,247,249,251,252,256,257,258,259,261,264,267,269,273,276,277,284,285,286,287,290,296,304,305,306,308,310,312,315,316,317,318,319,321,322,324,326,328,329,330,331,334,336,339,340,341,343,344,345,357],falsestr:188,falter:61,fame:122,famili:[9,51,57],familiar:[3,9,20,29,31,33,39,58,60,63,85,90,91,95,96,111,119,124,125,133],famou:[52,326],fan:79,fanci:[15,17,36,73,138,182],fanclub:119,faq:[45,124,139,289,364],far:[0,13,20,21,22,31,33,39,41,44,46,49,51,54,55,57,59,61,75,88,90,91,95,96,100,106,111,114,119,131,138,152,221,235,241,269,294,326,334],fashion:111,fast:[11,15,23,26,27,29,56,62,64,82,89,108,115,131,157],faster:[23,62,93,119,175,177,179,316],fastest:[5,38],fatal:267,faulti:95,favor:27,favorit:[21,37],fear:27,featgmcp:291,featur:[0,4,12,15,17,20,22,25,26,27,31,33,34,36,37,42,45,46,47,48,49,50,56,57,59,61,62,63,64,70,72,78,81,85,91,96,103,107,109,111,114,119,122,123,124,125,128,129,131,138,139,144,153,154,187,195,206,215,234,261,284,305,309,318,326,344,362,364],februari:62,fed:[10,33,80,285,325,327],fedora:[8,63,67,131],feed:[7,15,43,49,51,55,73,98,109,128,139,146,164,269,286,287,318,329],feedback:[37,42,61,70,89,118,176,226,326],feedpars:[98,286],feedread:146,feel:[0,10,17,22,37,38,39,46,55,57,60,61,63,64,69,70,71,73,77,90,91,108,118,122,123,125,131,133,138,205,215,218,224,233],feend78:199,feint:116,felin:27,fellow:327,felt:[102,132],femal:189,fetch:[11,63,90,100,128,131,133,200,329,362],few:[0,4,6,9,10,11,15,17,20,23,31,33,34,36,38,41,42,43,49,50,55,59,60,61,64,66,73,74,79,80,86,88,89,91,103,110,114,116,119,121,122,123,126,127,131,138,169,184,205,227,246,282,291,310,321,330,344,362],fewer:[108,308,317],fg_colormap:343,fgstart:343,fgstop:343,fhii4:133,fiction:[51,55,62,77,328],fictional_word:205,fictiv:205,fiddl:233,fido:96,fie:102,field:[3,11,23,34,54,56,58,74,84,86,87,89,102,106,107,112,119,125,128,133,135,145,148,173,177,188,192,206,221,231,237,239,241,244,246,247,251,252,254,256,257,261,274,315,316,317,318,319,327,335,340,341,357,359,362],field_class:357,field_or_argnam:74,field_ord:357,fieldevmenu:188,fieldfil:[141,142,178],fieldnam:[58,84,188,257,318,334,357],fieldset:[145,173,237,244,254],fieldtyp:188,fifi:96,fifo:344,fifth:49,fight:[29,31,61,116,122,217,218,219,220,221,232],fighter:[217,218,219,220,221],figur:[3,12,26,33,37,38,42,49,80,83,90,91,93,96,97,119,121,131,133,138,179,181,184,206,251,267],file:[2,3,4,5,6,8,9,19,20,21,22,23,25,26,27,31,34,36,37,40,41,42,44,47,48,54,56,57,58,59,60,62,63,64,65,66,67,68,69,72,75,76,79,80,81,82,83,85,86,90,92,93,95,96,97,98,100,102,103,106,109,110,111,114,117,119,120,121,123,128,130,133,134,135,136,137,138,139,141,142,144,145,158,166,175,180,182,183,184,186,200,201,205,209,234,235,237,241,244,252,266,267,287,288,291,292,299,300,301,305,312,313,315,320,327,328,337,340,341,344,357,362],file_end:[322,344],filelogobserv:337,filenam:[27,60,131,322,327,337],filename1:267,filename2:267,filesystem:[63,100,103],fill:[36,41,49,50,58,61,65,70,106,111,114,119,122,133,135,188,250,315,316,321,327,329,330,344],fill_char:330,fill_color:190,fillabl:188,fillchar:[114,321,336,344],filo:344,filter:[31,34,39,43,69,86,106,114,119,120,125,133,138,152,157,175,180,187,206,247,344,362],filter_famili:[119,125],filthi:78,final_valu:10,find:[0,3,4,6,10,11,12,13,14,17,20,21,22,23,24,25,26,27,29,31,33,34,37,38,40,41,42,46,47,48,49,50,55,56,57,58,60,61,62,63,67,68,69,70,73,74,75,76,78,79,80,84,86,87,89,90,91,93,95,96,97,100,102,103,108,109,110,112,114,119,122,123,124,125,127,128,131,133,134,135,136,139,140,144,151,159,176,184,187,200,206,212,215,233,234,247,251,252,258,267,281,316,317,321,323,341],find_apropo:238,find_topicmatch:238,find_topics_with_categori:238,find_topicsuggest:238,fine:[12,15,20,33,41,44,46,64,85,86,89,95,105,112,115,118,122,123,138,146,233,324,344],finer:12,finish:[10,14,29,33,38,58,59,61,100,107,122,123,124,128,133,136,141,144,154,156,167,179,187,203,232,233,247,267,271,279,290,305,312,323,328,344],finish_chargen:51,finit:91,fire:[2,20,21,27,28,29,33,46,51,58,61,96,102,106,107,111,115,118,120,132,139,146,150,195,219,220,247,250,252,259,267,276,278,295,328,329,334,344],firebreath:58,firefox:72,firestorm:28,firestorm_lastcast:28,firewal:[67,90],first:[2,3,4,5,6,7,9,10,11,12,13,14,15,16,19,20,21,23,24,26,27,29,31,33,35,38,39,40,41,42,43,45,48,49,50,51,55,56,58,59,61,62,63,65,68,69,70,71,73,75,76,77,80,81,83,85,86,89,90,91,93,96,97,98,100,102,103,104,105,106,107,108,109,110,113,114,116,118,119,120,121,122,123,125,126,127,128,131,132,133,134,135,136,137,138,139,144,146,148,151,152,159,167,168,171,175,177,179,180,182,183,184,186,187,200,201,204,205,206,212,214,217,218,219,220,221,223,227,231,232,233,234,235,239,241,246,247,251,252,256,259,267,271,272,274,285,287,290,291,295,296,298,299,305,308,316,318,319,321,322,324,326,327,328,330,331,334,335,336,343,344,363,364],first_lin:123,first_nam:145,firsthand:80,firstli:[9,89,90,96,97],fish:[73,153,203],fist:252,fit:[11,23,39,47,51,58,80,88,121,129,130,133,218,221,327,329,330,344],five:[28,33,90,111,119,153,215,344,345],fix:[13,14,16,26,27,33,37,42,43,51,57,60,61,63,64,70,75,78,83,85,90,95,96,97,109,110,121,123,125,127,138,205,267,327,329,330,340,363],fix_sentence_end:330,fixer:119,fixing_strange_bug:131,fixtur:[228,293,303,335,342],flag:[9,13,14,20,28,29,30,31,33,40,41,43,51,58,61,74,76,83,86,108,115,123,131,144,150,152,154,159,231,241,242,247,267,274,278,287,290,295,306,326,328,344],flame:[28,220],flash:[14,227],flat:[22,26,27,45,47,48,53,56,59,60,96,125,141,252],flatfil:56,flaticon:79,flatten:252,flatten_diff:252,flatten_prototyp:252,flattened_diff:252,flatul:102,flavor:[20,90,220],flavour:[87,126],flaw:121,fled:[116,231],fledg:[15,90,108,123,133,158,185],flee:[116,117,221,231],fleevalu:116,flesh:[20,58],flexibl:[1,13,21,22,29,39,43,51,57,59,73,88,90,102,108,109,111,116,134,138,148,159,179,180,188,215,241,316,328,362],flick:345,flip:[51,81],flood:[27,50],floor:[0,82,206],flow:[17,36,40,55,61,70,83,86,115,131,137,324,328,336],flower:[12,20,43,61,87,89,119,159],flowerpot:[12,57],fluent:79,fluid:[16,17],flurri:206,flush:[23,33,43,111,128,169,259,318,334],flush_cach:334,flush_cached_inst:334,flush_from_cach:334,flush_instance_cach:334,flusher:334,flushmem:[43,169],fly:[3,12,21,27,31,33,34,43,51,55,64,85,102,109,119,138,144,165,167,168,175,177,239,247,261,274,285,288,292,316,322,331,344,362],focu:[4,61,70,116,124],focus:[56,57,61,77,79,106,123,124,221],foe:218,fold:215,folder:[3,5,8,13,14,21,27,30,38,47,49,55,57,58,60,63,64,69,73,75,76,86,95,96,100,103,106,110,111,116,117,118,123,127,128,130,133,134,135,136,137,200,217,218,219,220,221,267],folder_nam:64,foldernam:60,follow:[0,2,4,5,7,8,9,10,11,13,14,16,17,19,20,22,23,25,31,33,34,37,38,39,40,41,42,43,46,47,48,49,50,51,54,58,60,61,62,63,65,67,68,69,71,73,74,75,76,79,80,82,85,86,88,89,90,91,93,95,96,97,100,102,103,106,110,112,114,116,117,119,120,121,123,125,127,128,131,133,134,135,137,144,146,148,150,151,154,159,167,168,170,175,177,180,182,183,185,189,195,197,199,200,206,215,219,220,226,233,239,241,242,246,247,250,251,252,256,257,271,272,282,291,295,296,299,309,316,318,321,322,324,327,328,329,330,336,337,344],follwo:242,follwow:51,fond:62,font:[25,38,111,137],foo:[33,40,51,83,84,88,95,107,112,119,127,215,328,342],foo_bar:88,foobarfoo:12,foolish:226,footer:[69,133,154,329],footnot:[15,38],footprint:[43,169],footwear:57,for_cont:247,forai:96,forbid:41,forbidden:131,forc:[0,6,8,10,31,33,58,60,63,73,81,82,91,100,103,110,116,121,123,125,127,138,146,153,157,159,164,179,187,189,203,205,206,242,247,251,258,278,279,285,290,308,329,330,334],force_init:247,force_repeat:[102,116,259],force_restart:259,force_str:340,forcibl:[102,258],fore:305,forebod:187,foreground:[42,100,114,126,183,267,336],foreign:125,foreignkei:[148,246,256,315,318,335],forens:210,forest:[13,111,112,140,187,200],forest_meadow:112,forest_room:112,forestobj:140,forev:[61,102],forget:[3,9,10,13,25,27,33,41,54,62,72,79,82,85,86,95,96,100,123,131,206,322],forgo:232,forgotten:[28,49,77,85],fork:[9,79],forloop:69,form:[11,13,27,31,33,34,38,43,45,51,53,55,58,59,61,64,68,70,74,76,77,80,83,88,89,93,96,97,109,112,113,114,115,116,118,123,124,125,127,129,135,141,142,144,145,146,151,153,154,157,159,167,168,170,173,175,176,177,179,188,189,205,206,210,237,239,241,242,244,247,251,252,254,257,259,261,265,285,287,291,295,306,308,315,316,317,318,321,322,324,325,327,328,330,336,337,340,341,344,345,346,356,362],form_char:327,form_class:362,form_template_to_dict:188,form_url:145,form_valid:362,formal:[61,80,96,138,247,291],format:[0,14,17,19,22,23,27,31,33,37,38,41,42,46,48,55,58,62,68,69,76,79,81,83,88,96,98,103,108,109,111,113,114,119,124,129,131,133,138,152,154,156,159,166,168,170,174,175,180,182,183,184,188,198,206,209,215,219,230,234,235,239,247,249,251,252,257,267,272,282,287,307,309,316,318,321,322,324,326,328,329,330,331,336,337,339,344,345,363],format_attribut:159,format_available_protfunc:251,format_callback:192,format_diff:252,format_extern:175,format_help:234,format_help_entri:166,format_help_list:166,format_messag:175,format_output:159,format_send:175,format_t:344,format_text:180,format_usag:234,formatt:[188,251,328,329],formatted_list:175,formcallback:188,formchar:[58,327],formdata:188,former:[17,23,64,126,328],formfield:340,formhelptext:188,formset:315,formstr:58,formtempl:188,formul:134,forth:[27,43,131,159,220],fortress:111,fortun:[4,33,39,48,69,122,128],forum:[1,9,37,48,55,57,63,90,98,128],forward:[13,14,20,38,42,45,50,51,62,69,90,121,126,148,177,199,209,239,246,256,312,316,318,319,327,329,335],forwardfor:67,forwardmanytoonedescriptor:[246,256,335],forwardonetoonedescriptor:[246,256,335],foul:109,found:[2,4,6,9,10,13,14,15,20,22,23,25,27,31,33,38,39,40,41,42,43,49,51,55,57,58,59,63,68,73,74,76,78,80,83,85,89,90,91,94,97,103,104,109,112,116,119,122,123,125,127,128,134,135,137,138,141,144,149,150,151,152,154,159,167,168,175,179,180,192,194,195,197,200,206,233,239,242,247,250,251,252,258,261,266,267,273,282,285,296,306,308,316,317,318,321,322,323,324,328,330,334,336,339,341,344,346],foundat:[49,55,77,79,217],four:[4,14,27,38,39,40,68,73,82,86,87,111,114,119,153,177,187,242],fourth:39,fqdn:90,fractal:56,fraction:127,frame:[137,138],framework:[3,16,64,94,124,133,136,137,170,217,220,340],frankli:129,free:[0,22,29,37,48,55,57,60,61,64,76,77,79,90,106,112,116,123,124,126,130,133,139,179,206,215,218,251],freedn:90,freedom:[14,26,44,63],freeform:[73,116,182],freeli:[55,77,100,103,322],freenod:[9,43,57,63,70,72,79,90,146,164,308],freepik:79,freetext:[176,341],freez:[29,33,42,194],frequenc:205,frequent:[91,180],frequentlyaskedquest:94,fresh:[11,31,58,128,267],freshli:111,fri:12,friarzen:138,friend:[37,58,61,82,103],friendli:[22,38,78,95,133,138,148],friendlier:[175,247],frighten:219,from:[0,2,3,5,6,8,9,10,11,12,13,14,15,16,17,19,21,22,23,26,27,28,29,30,31,33,34,35,36,37,38,39,40,41,42,43,44,46,47,48,49,50,52,54,56,57,58,59,61,62,63,64,66,67,68,69,70,71,72,73,74,75,76,79,80,81,82,83,84,85,86,87,89,91,92,93,95,97,98,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,134,135,136,139,140,141,142,144,146,148,149,150,151,152,153,154,156,157,158,159,164,165,166,167,168,169,170,171,173,174,175,176,177,179,180,181,182,183,184,185,186,187,188,189,194,195,197,198,199,200,202,203,204,205,206,209,210,211,212,213,215,217,218,219,220,221,224,226,227,231,232,233,234,235,238,239,241,242,243,246,247,251,252,256,257,258,259,260,261,264,267,272,273,274,276,277,278,279,280,284,285,286,287,290,295,296,299,301,305,306,307,308,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,329,330,331,334,335,336,337,338,340,341,343,344,345,357,362,363,364],from_channel:146,from_db_valu:340,from_nod:[51,328],from_obj:[81,83,118,144,146,154,189,247],from_pickl:325,from_tz:345,frombox:276,fromstr:276,fromtimestamp:331,front:[8,13,20,73,80,85,96,103,109,131,137,139],frontend:215,frozen:[29,33,122,195],fruit:203,ftabl:344,ftp:343,fuel:[21,220],fugiat:52,fulfil:267,full:[4,9,13,14,15,16,17,20,21,23,24,25,26,27,33,37,38,43,51,55,57,58,59,60,61,64,73,75,80,84,88,89,90,95,96,97,100,101,102,105,108,109,110,111,115,116,117,119,121,123,124,125,127,128,131,133,134,135,136,146,151,153,154,158,159,164,168,169,170,179,180,185,187,190,202,205,206,215,220,230,234,242,252,257,279,285,298,308,309,316,318,322,326,328,330,344],full_justifi:[109,250],full_nam:87,full_result:185,fullchain:67,fuller:58,fullhost:67,fulli:[4,11,19,33,51,55,58,59,61,63,85,86,90,93,103,110,122,144,205,242,247,259,295,307,324,344],fullview:122,fun:[20,26,61,79,81,111,136],func1:[43,159,242,299],func2:[43,159,242,299],func:[5,10,21,22,25,28,29,30,33,38,42,44,50,51,56,58,60,62,71,73,80,81,82,83,85,91,116,119,121,123,150,154,156,157,158,159,164,165,166,167,168,169,170,171,174,179,180,181,182,184,185,186,187,188,189,193,199,200,201,202,203,206,212,213,214,215,217,218,219,220,221,224,231,232,233,234,241,242,247,278,299,303,312,326,328,329,331,344,362],funciton:220,funcnam:[74,114,242,250,261,328,336],funcool:79,functioncal:276,functionnam:[276,336],functool:63,fund:70,fundament:[33,57,77,89,95,96,112,247],furnitur:[13,112,125],further:[0,9,11,27,31,34,38,42,43,44,49,57,83,85,86,90,91,96,100,102,104,105,106,109,110,111,119,124,125,130,131,138,153,159,181,205,219,221,252,267,291,344],furthermor:[37,38,124,126],fuss:100,futur:[9,10,11,20,23,38,43,45,50,55,58,60,61,62,63,76,87,95,100,123,139,156,195,232,235,272,317,338,345,364],futurist:62,fuzzi:[76,238,341,344],fuzzy_import_from_modul:344,gadget:70,gag:24,gain:[11,29,61,73,93,154,177,206,242,247],galosch:205,gambl:185,game:[0,2,3,4,5,6,8,9,10,11,13,14,15,17,18,19,20,21,22,23,24,25,28,29,30,31,33,34,35,36,37,38,41,42,43,44,46,50,51,52,53,56,60,63,64,65,66,67,68,69,71,72,75,76,77,78,79,80,81,83,85,86,87,88,89,91,92,93,95,96,97,98,101,102,103,104,105,106,107,108,109,110,112,113,114,115,116,117,118,119,121,122,125,129,130,132,133,134,135,136,137,138,139,140,143,144,145,146,148,150,152,153,154,156,157,158,159,163,164,165,166,169,170,171,172,174,175,176,177,178,179,180,181,182,184,185,186,187,188,190,193,194,195,196,197,199,200,204,205,206,213,215,217,218,219,220,221,229,230,233,234,239,241,243,246,247,256,258,259,262,267,269,270,271,272,278,279,284,286,287,290,291,298,299,300,305,306,308,315,317,318,319,322,323,324,326,327,328,331,334,336,337,344,363,364],game_dir:[337,344],game_epoch:[27,331],game_index_cli:[141,142,262],game_index_en:54,game_index_list:54,game_map:200,game_nam:[54,350],game_slogan:[9,350],game_statu:54,game_templ:47,game_websit:54,gamedir:[51,100,109,267,313],gamedirnam:58,gameindexcli:270,gamemap:200,gameplai:[90,145],gamer:[65,72],gamesrc:27,gametim:[27,53,59,139,141,142,184,187,195,320,364],gametime_to_realtim:184,gametimescript:184,gammon:[79,282],gandalf:51,garden:79,garment:182,gatewai:[110,296],gather:[24,33,48,83,94,119,127,132,136,150,151,233,265,269,324,341],gave:[5,21,60,64,91,102,126],gbg:321,gcc:63,gear:[43,90,106,136,146,153,171,186],gemer:204,gen:17,gender:189,gendercharact:189,gendersub:[141,142,178],gener:[0,1,5,9,10,11,12,20,23,25,29,31,33,34,36,37,38,48,49,51,55,57,58,59,60,62,63,64,68,70,73,76,80,83,86,87,88,90,93,96,104,105,106,109,111,112,114,116,126,127,134,137,138,139,141,142,144,146,149,154,155,156,159,166,167,168,170,171,174,175,179,180,181,182,185,186,187,188,189,195,199,200,201,202,204,205,206,209,210,212,213,214,215,217,218,219,220,221,224,230,231,233,234,239,242,247,249,252,278,287,290,291,295,306,307,308,312,319,320,321,323,324,326,329,330,337,338,339,340,344,349,357,362,364],general_context:[141,142,346,348],generic_mud_communication_protocol:291,genericbuildingcmd:180,genericbuildingmenu:180,genesi:90,geniu:203,genr:[37,64,281],geoff:234,geograph:140,geographi:39,geoip:209,geometr:111,geometri:111,get:[0,1,2,3,5,6,7,8,9,10,11,12,13,15,16,17,21,22,23,25,26,28,29,30,31,33,38,39,40,41,42,44,45,46,47,48,49,50,54,55,56,57,58,59,60,61,62,64,65,68,69,71,72,73,74,75,76,77,80,81,82,83,84,85,86,87,88,90,91,92,93,95,96,97,100,102,103,104,105,106,107,110,111,112,114,116,118,121,122,123,125,126,127,128,130,131,133,134,135,136,137,138,139,144,146,148,152,153,154,156,157,159,160,164,165,171,173,174,176,177,180,182,185,192,194,195,197,198,199,203,204,206,213,214,215,217,218,219,220,221,223,224,232,233,235,238,239,241,242,246,247,249,251,252,256,258,259,261,265,267,272,276,277,281,285,287,290,291,293,295,296,304,306,307,308,310,316,317,318,319,321,322,323,326,328,330,331,333,334,336,337,338,339,341,344,357,362,363,364],get_abl:60,get_absolute_url:[134,175,239,318],get_account:[242,306],get_al:306,get_alia:317,get_all_cached_inst:334,get_all_categori:238,get_all_channel:176,get_all_cmd_keys_and_alias:152,get_all_mail:199,get_all_puppet:144,get_all_sync_data:308,get_all_top:238,get_all_typeclass:344,get_and_merge_cmdset:153,get_attack:[217,218,219,220,221],get_attr:159,get_attribut:317,get_buff:326,get_by_alia:317,get_by_attribut:317,get_by_nick:317,get_by_permiss:317,get_by_tag:317,get_cached_inst:334,get_callback:195,get_channel:[41,176],get_charact:306,get_client_opt:272,get_client_s:306,get_client_sess:[295,296],get_client_sessid:296,get_cmdset:174,get_command_info:[154,167],get_context_data:362,get_damag:[217,218,219,220,221],get_db_prep_lookup:340,get_db_prep_valu:340,get_dbref_rang:317,get_default:340,get_defens:[217,218,219,220,221],get_display_nam:[22,42,46,58,206,235,247,318],get_err_msg:[6,20,80],get_ev:195,get_evennia_pid:344,get_evennia_vers:344,get_event_handl:198,get_extra_info:[41,154,174,247,318],get_famili:[119,125],get_fieldset:244,get_form:244,get_formset:315,get_game_dir_path:344,get_god_account:271,get_height:330,get_help:[33,68,69,154,170,193,234,328],get_help_text:311,get_id:[133,317],get_info_dict:[284,305],get_initi:362,get_input:328,get_inputfunc:[272,291,308],get_internal_typ:340,get_kwarg:360,get_location_nam:235,get_mass:82,get_message_by_id:176,get_messages_by_channel:176,get_messages_by_receiv:176,get_messages_by_send:176,get_min_height:330,get_min_width:330,get_new:286,get_new_coordin:235,get_next_by_date_join:148,get_next_by_db_date_cr:[148,177,246,256,316,318],get_next_wait:198,get_nick:317,get_nicklist:[146,279],get_numbered_nam:247,get_obj_coordin:235,get_object:362,get_object_with_account:341,get_objs_at_coordin:235,get_oth:179,get_permiss:317,get_pid:267,get_player_count:281,get_previous_by_date_join:148,get_previous_by_db_date_cr:[148,177,246,256,316,318],get_puppet:[2,144,306],get_puppet_or_account:306,get_queryset:362,get_rang:221,get_redirect_url:362,get_regex_tupl:206,get_respons:351,get_room_at:39,get_rooms_around:39,get_sess:308,get_statu:277,get_subscript:176,get_success_url:362,get_sync_data:307,get_system_cmd:152,get_tag:317,get_time_and_season:187,get_typeclass_tot:317,get_uptim:281,get_username_valid:144,get_valu:[272,291],get_vari:[192,195],get_width:330,get_worn_cloth:182,getattr:84,getbootstrap:16,getchild:312,getclientaddress:[40,287],getel:137,getenv:[267,277],getfromlock:241,getgl:137,getinput:328,getkeypair:287,getloadavg:75,getpeer:287,getpid:344,getsizof:334,getsslcontext:[288,292],getston:33,getter:[148,177,182,197,206,218,221,246,247,274,316],gettext:76,gfg:321,ghostli:233,giant:[21,124],gid:[45,70,100,299],gidcount:298,gif:[70,133],gift:69,gist:[205,344],git:[9,23,25,36,38,45,47,63,75,76,79,86,90,100,108,124,128,130],gith:96,github:[3,9,25,37,41,43,45,46,57,63,70,75,76,79,95,96,98,104,127,130,131,135,138,180,295,312,344],githubusercont:101,gitignor:131,give:[0,1,2,3,4,5,9,10,11,12,13,15,18,19,20,21,22,23,25,26,27,30,33,38,39,41,46,48,51,52,55,57,58,59,60,61,62,63,64,68,69,73,75,77,79,80,82,85,88,89,90,91,93,94,96,98,100,102,103,105,107,109,110,111,112,113,114,115,116,117,118,119,122,123,124,125,127,128,133,134,136,138,139,140,150,152,153,156,165,167,168,169,174,176,180,181,182,187,204,205,214,215,217,218,219,220,221,224,233,235,241,247,256,293,306,312,318,321,330,341,342,344,363,364],givelock:241,given:[0,2,4,10,11,12,13,14,20,21,22,25,27,31,33,34,38,39,42,43,46,49,50,51,58,62,64,70,73,74,80,83,84,85,86,88,89,90,93,97,100,102,105,109,110,113,114,115,116,117,119,122,123,125,126,127,131,133,134,135,138,140,144,150,151,152,153,154,156,157,159,164,166,168,169,170,175,176,177,180,181,182,184,185,186,187,188,189,190,192,194,198,203,204,205,206,212,215,217,218,219,220,221,232,233,234,241,242,247,249,250,251,252,257,258,259,261,265,267,272,273,276,285,290,291,296,299,302,306,307,308,309,311,312,316,317,318,319,321,322,324,325,326,327,328,329,330,331,334,336,337,339,340,341,342,344,349,362],given_class:359,giver:[218,221,247],glad:91,glanc:[22,27,31,33,39,48,58,61,91,96,180,206],glance_exit:22,glass:[203,224,226,227],glob:[43,51,165,328],global:[13,22,33,34,35,43,45,51,56,61,64,67,74,85,89,100,104,105,108,109,114,115,120,125,131,132,137,138,140,159,187,195,204,206,212,241,247,250,252,253,256,264,267,272,274,277,298,299,322,323,324,328,331,336,341,342,344,350],global_script:[102,141,323],global_search:[13,22,27,58,91,144,206,247,317],globalscript:[43,169],globalscriptcontain:323,globalth:342,globe:[90,136],gloss:61,glossari:[63,139,364],glow:111,glppebr05ji:133,glu:92,glyph:276,gmcp:[55,74,83,291],gmsheet:58,gmud:24,gno:22,gnome:24,gnu:14,go_back:[51,215,328],go_back_func:51,go_up_one_categori:215,goal:[61,76,79,91,102,103,122,124,205],goals_of_input_valid:357,goblin:[43,51,109,159,252],goblin_arch:252,goblin_archwizard:252,goblin_shaman:109,goblin_wizard:252,goblinwieldingclub:109,god:[20,80,271],godlik:206,goe:[0,5,9,22,26,29,33,37,40,42,49,64,69,73,75,86,90,95,96,118,121,122,123,139,152,153,221,235,247,287,290,305,306,343,344,362],goff:204,going:[0,3,20,25,26,40,45,46,49,51,58,61,62,65,69,70,82,88,90,91,95,96,100,111,116,121,127,133,138,139,180,197,206,217,218,219,220,221,230,233,235,247,264,269,321,328],goings:269,gold:[51,82,85,109,322],gold_valu:85,golden:138,goldenlayout:138,goldenlayout_config:[137,138],goldenlayout_default_config:[137,138],gone:[5,12,77,80,85,100,102,131,259],good:[0,2,4,5,9,11,12,14,20,21,22,25,26,27,31,33,37,38,39,40,41,46,48,49,51,54,55,56,57,60,61,63,69,70,72,73,79,80,85,87,90,91,93,94,95,96,97,100,102,103,104,106,109,110,111,114,119,121,123,125,126,127,131,133,134,138,144,152,153,154,170,179,194,206,290,328],goodby:287,goodgui:242,googl:[38,43,70,75,79,90,164,330],googlegroup:92,googleusercont:[70,133],googli:136,gossip:[65,79,164],got:[10,13,95,96,116,128,138,215,232],goto_cal:[51,328],goto_cleanup_cmdset:230,goto_command_demo_comm:230,goto_command_demo_help:230,goto_command_demo_room:230,goto_kwarg:328,goto_next_room:121,goto_node2:51,goto_str_or_cal:51,gotostr_or_func:328,gotten:[55,95,131,221,232,247,294],graaah:117,grab:[20,33,43,73,133,165,175,232,362],gracefulli:[26,43,156,169,206,247,267],gradual:[13,14,29,61,79,96,205],grai:[114,126],grain:[115,324],gram:82,grammar:205,grammat:205,grand:11,grant:[19,23,80,131,177,217,218,219,220,221,241,242,251,316],granular:221,grapevin:[7,139,141,142,146,164,262,275,364],grapevine2chan:[65,164],grapevine_:164,grapevine_channel:[65,146,164],grapevine_client_id:65,grapevine_client_secret:65,grapevine_en:[65,164],grapevinebot:146,grapevinecli:278,graph:[49,131],graphic:[42,58,80,83,84,93,111,128,135,141,186,190,291],grasp:[126,133],grave:60,grayscal:183,great:[0,4,14,16,21,22,29,37,39,51,57,61,69,70,73,77,79,91,95,107,108,123,127,131,134,180,188,312],greater:[22,31,73,80,97,105,119,241,328],greatli:78,greek:15,green:[31,43,80,109,114,126,131,159,169,232],greenskin:252,greet:[9,35,46,95,104,105,117,272],greetjack:87,greg:79,grei:[109,126],grenad:89,grep:[75,131],greyscal:114,greyskinnedgoblin:109,griatch:[21,70,86,119,122,179,181,183,184,185,186,187,189,199,201,202,205,206,212,213,214,230,232,327,334,340,343],grid:[7,16,111,123,139,221,235,364],grief:12,griefer:134,grin:[33,41],grip:38,gritti:33,ground:[20,21,55,111],group:[4,9,10,12,19,21,26,33,37,41,43,46,55,68,70,79,91,94,100,102,109,112,125,127,139,140,145,148,155,159,165,176,187,203,232,233,247,251,252,276,315,316,319,321,324],grow:[13,25,26,61,63,79,110,278,279,330,344],grown:[9,25,51,129],grudg:73,grumbl:60,grungies1138:[199,214],grunt:[43,159,252],gthi:81,guarante:[11,37,61,67,80,86,90,102,185,195,251,306,318],guard:51,guess:[15,22,46,50,69,91,103,113,138,180,252],guest1:66,guest9:66,guest:[7,53,80,139,144,364],guest_en:[66,80],guest_hom:[66,133],guest_list:66,guest_start_loc:66,guestaccount:112,gui:[45,57,83,137,199,364],guid:[36,37,45,81,95,96,128,133,136],guidelin:[37,38,79],guild:[79,86,112,118],guild_memb:51,gun:[21,77],guru:55,h175:133,h189:133,h194:133,h60:133,habit:56,habitu:115,hack:[55,73,116,276],hacker:[79,103],had:[8,9,14,15,19,20,21,29,31,37,55,61,90,95,96,100,102,119,123,128,135,138,158,182,232,251,252,256,259,267,318,322,329,357],hadn:[61,62,131],half:[108,138,239],hall:49,hallwai:49,halt:[102,111],hand:[1,15,37,38,40,43,51,55,56,57,58,61,70,73,87,89,96,105,108,119,134,154,165,167,168,169,179,201],handi:[42,75,119,133,219],handl:[0,2,4,5,7,8,9,11,13,15,22,24,27,33,34,37,40,41,43,44,47,49,50,51,53,55,56,60,61,62,64,67,68,74,75,80,83,85,86,87,88,89,91,93,95,97,100,104,105,108,115,116,117,124,125,126,128,129,131,132,137,138,139,144,146,149,150,152,153,159,160,164,165,168,174,179,186,187,195,197,198,201,206,210,212,214,215,217,218,219,220,221,226,232,233,234,236,246,247,250,251,252,256,257,264,267,271,272,276,277,279,280,287,290,291,294,296,298,307,308,315,316,318,321,322,324,325,326,328,329,330,331,334,343,344,351],handle_egd_respons:269,handle_eof:287,handle_error:195,handle_ff:287,handle_foo_messag:[51,328],handle_int:287,handle_messag:[51,328],handle_message2:51,handle_numb:[51,328],handle_quit:287,handle_setup:271,handler:[2,11,31,33,41,47,64,73,80,83,84,86,87,89,102,104,105,112,115,125,139,144,150,153,168,172,174,177,179,192,195,196,198,206,231,235,241,242,246,247,252,257,258,260,261,272,284,285,305,306,308,314,315,316,318,319,323,327,328,329,338,339,344],handlertyp:319,handshak:[24,52,83,277,283,285,290],handshake_don:290,hang:[3,61,70,124],hangout:119,happen:[0,6,12,19,20,26,27,31,33,37,39,41,42,44,51,54,55,57,58,60,61,62,64,72,73,77,80,83,86,88,90,91,95,96,97,102,105,107,108,110,111,114,115,116,119,122,123,126,127,128,131,133,138,144,152,153,164,175,184,197,213,217,218,219,220,221,227,231,233,235,247,250,252,269,276,279,299,304,306,307,308,318,328,329,334,336,337,344],happend:252,happi:[13,119],happier:91,happili:96,haproxi:[90,139,364],hard:[9,10,11,13,15,19,26,27,31,33,38,40,41,58,61,63,64,76,79,88,90,93,96,97,100,102,109,112,115,119,121,127,131,133,138,139,168,188,215,256,267,316,318,328,364],hardcod:[57,58,77,100,111,140,316],harden:63,harder:[12,56,61,93,119,127,232],hardwar:[90,280],hare:79,harm:[11,29,219],harri:59,harvest:362,has:[0,2,4,8,9,10,11,12,13,14,15,16,19,20,21,22,23,25,27,28,29,31,33,34,36,37,39,40,41,42,43,44,46,47,49,50,51,53,54,56,57,58,59,60,61,62,63,64,65,67,68,69,70,71,74,75,76,77,78,79,80,83,85,86,87,88,89,90,91,93,94,95,96,97,100,101,102,103,104,105,107,109,110,112,113,114,115,116,117,118,119,121,122,123,125,126,127,128,129,131,132,133,134,135,136,137,138,139,143,144,145,146,151,152,153,154,156,158,159,164,167,168,169,170,171,174,175,176,179,180,184,185,186,187,188,195,197,199,200,203,204,206,215,217,218,219,220,221,223,231,232,233,234,235,239,241,242,246,247,251,252,256,259,261,267,269,271,272,276,279,281,285,289,294,295,299,305,306,307,308,310,315,316,317,318,324,326,327,328,330,334,336,337,338,341,344,357,360,362],has_account:[89,231,241,246,247],has_attribut:316,has_cmdset:153,has_connect:[41,175],has_drawn:49,has_nattribut:[306,316],has_nick:316,has_par:344,has_perm:[167,242],has_sub:175,has_thorn:11,hasattr:[28,33],hash:[14,90,109,252,261,295,299,308,317],hasn:[22,49,204,232,315,362],hassl:62,hast:219,hat:[37,70,182],hau:[65,146,164,278],have:[0,1,2,3,4,5,6,9,10,11,12,13,14,15,16,19,20,21,22,23,25,26,27,28,29,30,31,33,34,35,36,37,38,39,40,41,42,43,44,46,47,48,49,50,51,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,100,102,103,104,105,106,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,144,146,150,152,153,154,156,159,161,164,167,168,169,170,171,175,176,177,179,180,181,182,184,186,187,188,189,194,195,197,198,202,204,205,206,209,210,215,217,218,219,220,221,224,227,233,234,238,239,241,246,247,250,251,252,253,256,258,259,260,261,272,277,280,281,285,287,290,291,305,306,307,308,310,313,314,315,316,317,318,319,321,322,323,324,325,327,328,330,336,337,340,341,342,344,345,357,362,363],haven:[4,22,29,42,62,67,77,109,111,117,118,120,127,128,133,134,138,310],hdict_cmd:166,hdict_db:166,head:[20,21,31,46,69,76,77,96,106,119,121,123,138,139],headach:[61,138],header:[9,13,14,27,34,37,38,63,89,95,103,129,138,154,175,177,199,206,247,291,322,324,329,330],header_color:159,header_line_char:330,headi:330,heading1:330,heading2:330,headless:[96,247],headlong:63,heal:[219,220,233],healing_rang:220,health:[30,61,73,84,88,90,109,116,190,252,291],health_bar:[141,142,178],hear:[29,46,61],heard:[111,122,241],heart:126,heartbeat:[115,278],heavi:[6,11,20,23,27,33,64,73,80,82,96,116,123,179,206,218,280,344],heavier:218,heavili:[9,27,37,40,57,75,86,104,180,217,218,219,220,221,318],heed:[105,242],heh:138,hei:[20,179,199],height:[52,74,137,141,154,272,287,306,327,330],held:[1,31,48,116,241],hello:[0,29,34,41,43,46,51,72,74,83,87,88,91,96,105,108,123,129,165,174,206,272,321],hello_funct:95,hello_valu:108,hello_world:[95,96,108],helmet:[29,77],help:[0,1,4,5,12,13,14,15,19,22,23,27,29,32,33,35,38,39,41,42,44,45,46,47,48,49,50,51,53,57,58,60,61,63,64,67,71,72,76,77,79,80,86,90,91,93,96,105,107,108,109,110,111,112,113,116,119,122,123,124,126,127,131,133,137,138,139,141,142,149,150,152,154,155,156,167,168,170,171,177,179,184,186,188,192,193,195,199,205,209,217,218,219,220,221,224,230,233,234,241,249,260,265,267,269,270,278,285,287,288,290,292,295,296,298,299,306,317,321,324,325,326,328,329,336,339,340,341,342,351,357,362,363,364],help_categori:[22,33,41,43,58,60,68,69,71,85,116,123,154,156,157,158,159,164,165,166,167,168,169,170,171,174,179,180,181,182,185,186,187,188,189,193,199,200,201,202,203,206,212,213,214,215,217,218,219,220,221,224,231,232,233,234,238,239,247,326,328,329,341],help_cateogori:326,help_detail:362,help_entri:326,help_kei:159,help_list:362,help_mor:166,help_system:69,help_text:[166,195,357],helpact:234,helpdetailview:362,helpentri:[69,80,237,238,239,324,362],helpentry_db_tag:237,helpentry_set:319,helpentryadmin:237,helpentryform:237,helpentrymanag:[238,239],helper:[19,41,43,51,58,67,80,109,119,141,144,153,156,159,166,173,176,180,184,205,247,251,252,264,276,277,296,308,322,328,329,337,342,343,344],helpfil:166,helplistview:362,helpmixin:362,helptaginlin:237,helptext:[51,249,328],helptext_formatt:[51,249,328],henc:[0,22,46,76,95,106,233,234,241,322],henceforth:[13,44,60,66,80,90,95,97,102,105,111,123,131,132,140,308],henddher:203,her:[122,127,182,189],herbal:327,herd:23,here:[0,2,3,4,5,9,10,11,13,14,15,16,17,19,20,21,22,23,24,25,27,29,30,33,36,37,38,39,40,41,42,43,44,46,47,48,49,51,53,56,57,58,59,61,62,63,64,65,67,69,70,71,72,73,74,75,76,77,79,80,81,83,84,85,86,87,88,89,91,92,95,98,100,101,102,103,104,105,106,107,108,109,110,111,113,114,115,116,117,118,119,120,121,123,125,126,127,128,129,130,131,133,134,135,136,137,144,146,152,153,154,159,167,168,169,171,175,179,180,181,182,184,185,186,194,195,204,205,206,213,217,218,219,220,223,224,227,231,232,233,234,235,239,242,247,251,252,259,267,269,272,276,278,284,285,287,290,305,306,308,314,315,316,318,321,324,328,330,334,336,344,346,362],hesit:[22,39],hfill_char:330,hidden:[11,49,61,64,96,122,131,137,177,182,185,234],hide:[9,11,20,31,33,34,41,61,73,80,96,111,138,166,177,185,206,224,232],hide_from:[34,177],hide_from_accounts_set:148,hide_from_channels_set:177,hide_from_objects_set:246,hieararci:241,hierarch:[2,19,43,80,156],hierarchi:[4,19,22,43,61,66,69,80,119,139,165,182,241],high:[4,8,20,31,55,63,80,122,152,220,247,309],higher:[7,19,25,31,41,43,44,51,56,58,62,63,73,80,90,105,108,119,123,128,144,152,156,169,205,217,218,219,220,221,233,241,269,328,344],highest:[31,58,321,344],highest_protocol:340,highli:[9,17,51,55,56,64,80,86,107,115,117,190,322,334],highlight:[14,38,57,58,114,126],hijack:134,hilight:343,hilit:343,hill:87,him:[41,46,51,189,206],hint:[1,25,55,63,79,93,95,109,110,123,124,128,136,139,184,313],hire:[85,103],his:[46,51,58,77,96,109,127,182,189,206,329,343],histogram:344,histor:[62,129,266,337],histori:[4,23,34,41,50,58,64,95,100,131,137,138,139,153,174,188,337],hit:[6,9,21,29,52,61,73,116,119,122,131,146,217,218,219,220,221,231,232,265,306,337,340],hit_msg:231,hite:114,hlxvkvaimj4:133,hmm:138,hnow:114,hobbi:[61,90],hobbit:62,hoc:55,hold:[2,6,9,13,14,16,21,26,31,34,36,38,41,47,49,51,58,61,63,64,66,73,77,80,85,89,96,97,100,102,104,105,106,109,111,112,114,116,119,123,125,131,133,136,140,152,153,178,180,182,185,204,214,215,217,218,219,220,221,229,231,232,236,241,242,251,252,253,257,262,274,276,285,295,296,298,308,318,319,320,324,327,328,330,332,337,344,346],holder:[9,69,90,306],home:[8,16,26,63,64,66,70,79,89,90,103,109,131,133,139,153,159,165,231,241,246,247,252,324,344],home_loc:[43,159],homepag:[27,63,79,90,93],homes_set:246,homogen:[27,164,251,252,256],homogenize_prototyp:251,honor:206,hood:[20,33,38,51,57,60,61,64,86,87,119,122,125,128,206,234],hook:[2,25,30,33,43,49,55,60,61,73,74,76,80,81,89,96,102,107,110,115,116,117,118,120,121,123,127,132,144,150,152,154,156,159,165,167,169,173,175,182,187,195,197,203,204,206,210,217,218,219,220,221,228,230,231,232,233,235,244,247,254,256,259,261,271,278,290,293,295,303,305,306,307,309,318,326,329,334,335,338,342,344,357,362],hooligan:12,hop:55,hope:[42,58,91],hopefulli:[8,26,41,49,90,111,133,137],horizon:62,horizont:[138,232,330],hors:27,host1plu:90,host:[7,12,23,26,27,61,64,67,89,98,100,102,103,131,135,205,312,344],host_os_i:344,hostnam:67,hotbutton:137,hotel:90,hotspot:103,hour:[27,62,132,184,331,344],hous:[43,90,109,159],housecat:27,hover:138,how:[0,1,3,4,5,6,7,8,10,11,12,13,14,15,17,19,20,21,22,25,26,27,28,29,30,31,35,37,38,39,40,41,42,43,44,45,46,48,49,51,55,56,57,60,61,62,63,64,66,68,69,72,73,75,77,80,81,82,83,84,85,86,87,88,90,91,93,94,95,96,97,102,103,104,105,106,108,109,110,111,112,116,117,118,119,120,123,124,126,127,128,130,131,132,133,134,135,136,137,138,139,140,145,146,151,153,154,168,169,170,173,174,175,180,182,184,185,189,200,204,205,206,213,215,219,220,221,226,231,235,237,241,246,247,252,256,261,267,272,277,281,286,291,294,298,305,306,307,308,312,315,318,322,326,328,329,330,337,338,343,344,357,363,364],howev:[0,2,4,5,10,11,12,13,14,15,17,20,22,23,29,30,31,33,37,38,40,41,43,44,46,50,55,58,59,60,62,70,73,77,80,85,88,90,91,108,109,110,111,113,114,115,120,123,125,128,129,131,132,135,153,154,159,166,169,170,180,188,190,195,204,215,220,227,241,321],howto:94,hpad_char:330,href:[17,69,133],hrs:184,htm:282,html5:55,html:[11,24,38,43,55,57,61,64,69,79,83,94,96,103,111,114,134,135,136,137,138,145,169,175,204,234,239,289,291,295,296,312,318,340,343,362],htmlchar:343,htop:110,http404:[69,134],http:[3,4,9,10,11,16,22,23,36,37,38,39,41,43,45,46,54,55,57,61,63,64,65,69,70,75,79,83,90,92,94,95,96,98,101,103,104,107,108,111,116,122,124,127,128,130,131,133,134,135,137,138,141,146,164,180,204,234,269,276,278,279,280,281,282,283,289,291,294,295,296,312,321,330,343,344,357],http_request:[103,135],httpchannel:312,httpchannelwithxforwardedfor:312,httpd:8,httprequest:144,httprespons:[145,173,244],httpresponseredirect:133,hub:[79,100,139,324],hue:114,huge:[3,16,21,29,39,61,62,86,127,235,329],huh:[22,33],human:[4,12,40,51,57,61,64,73,85,93,96,117,133,362],humanizeconfig:4,hundr:[72,113,133],hungri:86,hunt:[73,231],hunting_pac:231,hunting_skil:73,hurdl:49,hurt:30,huzzah:9,hwejfpoiwjrpw09:9,hxvgrbok3:122,hybrid:73,i18n:[47,76],iac:88,icon:[79,106,138],id_:[145,237,244,357],id_str:84,idcount:298,idea:[0,9,12,26,33,37,38,39,45,49,55,56,60,61,63,69,71,72,73,77,80,85,106,107,108,119,121,123,127,131,133,134,139,154,166,167,170,179,205,252,334,343,362,364],ideal:[1,6,33,37,46,48,90,129,138,148,242],idenfi:152,ident:[9,31,33,44,57,61,83,96,97,110,114,144,167,168,206,212,242,247,321,322],identif:[27,115,308],identifi:[0,8,23,28,30,31,33,38,39,41,42,43,49,50,51,58,61,69,74,83,84,88,93,97,102,109,115,116,119,125,134,138,151,154,159,164,167,168,170,174,176,180,187,205,206,215,233,242,247,251,258,261,264,267,272,274,277,291,295,304,306,308,316,317,321,326,327,328,336],identify_object:176,idl:[12,105,144,146,231,247,299,306,308],idle_command:33,idle_tim:[144,247],idle_timeout:146,idmap:334,idmapp:[43,86,125,141,142,169,177,239,274,300,316,317,318,320],idnum:176,ids:[12,58,121,187,298,308,327],idstr:[84,115,257,261,304],idtifi:176,idx:121,ietf:283,ifconfig:67,ifram:[137,138],ignor:[6,14,20,23,27,29,31,33,34,38,42,43,51,58,73,74,80,83,86,90,91,95,96,105,114,117,121,122,125,131,144,151,152,153,154,159,175,187,206,241,246,247,261,267,272,278,279,294,295,296,318,321,322,327,328,336,339,344,345],ignore_error:144,ignorecas:[159,165,166,171,174,182,201,321,326,343],ignoredext:312,ij9:122,illumin:111,illus:[10,96],imag:[4,17,63,69,70,90,101,106,122,133,135,136,137,138],imagesconfig:4,imagin:[14,29,31,46,48,51,61,77,116,117,122,132,138,322],imaginari:[21,61,79,111],imc2:34,imeplement:235,img:[17,70],immedi:[0,5,15,27,29,33,43,48,49,51,64,70,74,83,90,95,100,102,109,116,120,133,134,150,157,169,231,278,322,324,328,329],immobil:25,immort:231,immut:[11,261],imo:1,impact:[94,126],impati:63,imper:102,implement:[1,6,11,21,25,26,28,29,31,33,34,37,40,41,49,51,55,56,57,58,60,61,78,79,80,81,86,88,89,96,97,108,111,112,114,115,116,117,118,119,120,123,124,125,127,128,131,135,137,138,139,140,145,148,152,153,156,157,158,159,160,161,164,165,166,167,168,169,176,177,179,181,182,184,185,187,189,197,202,205,206,210,212,213,214,215,217,218,221,224,231,232,233,235,238,239,241,242,246,247,256,258,261,273,278,280,281,282,283,284,285,287,289,290,291,294,295,296,298,305,312,316,317,318,319,321,322,325,326,328,329,335,336,339,340,343,344,362,364],impli:[22,112],implicit:[91,114,126],implicit_keep:252,impmement:242,import_cmdset:153,importantli:[51,133,242],importerror:[4,9,344],impos:[55,79,310],imposs:[15,19,38,49,51,90,111,113,121,133,138,330],impract:[33,109,252],imprecis:334,impress:[42,111],improv:[0,11,37,61,70,76,91,128],in_game_error:[26,103],in_templ:[316,336],inabl:[63,103],inaccess:[0,80],inact:[102,231],inactiv:[43,169],inadvert:221,inadyn:90,inarticul:108,inbuilt:[67,112,123],incant:75,incarn:357,incid:210,includ:[2,4,6,9,12,13,16,20,21,22,27,30,31,33,36,37,38,39,41,43,44,48,51,53,55,58,60,61,62,63,64,69,73,74,75,78,79,80,84,85,88,89,91,93,95,96,100,101,102,104,105,106,107,108,109,111,112,114,115,116,119,121,125,127,131,133,134,135,136,137,138,144,150,151,152,154,157,158,159,167,168,170,174,179,182,187,188,189,195,197,200,205,206,210,215,217,218,219,220,221,224,227,233,234,235,241,247,267,285,287,290,291,304,307,316,317,318,319,322,323,324,325,327,328,330,331,337,344],include_account:316,include_children:317,include_par:317,include_prefix:151,include_unloggedin:[285,308],inclus:[317,336],incoher:126,incol:[58,327,330],incom:[33,40,88,90,96,104,139,145,146,151,168,173,210,218,244,254,276,280,283,286,290,291,295,296,298,306,307,308,312,328,329,336],incomplet:[154,213],inconsist:[10,97,204],incorpor:[43,156,330],incorrect:176,increas:[25,62,73,80,103,114,119,125,179,218,220,221,233,279,285,299,326,328],increase_ind:326,incred:[215,269],increment:63,incur:27,indata:[40,316],inde:[9,55,90,91],indefinit:[102,219,232,324],indent:[0,9,13,14,27,38,50,51,57,60,95,129,137,296,322,326,328,344],independ:[0,56,64,102,126,179,201,209],indetermin:269,index1:133,index2:133,index:[7,38,43,49,56,61,68,79,85,86,90,108,111,121,135,136,151,165,179,215,232,265,269,270,312,319,321,329,330,357,360,362,364],index_to_select:215,indexerror:[134,235,317],indextest:360,indic:[0,8,22,38,43,49,51,62,85,91,95,111,119,146,159,166,167,168,189,210,215,256,278,279,287,294,295,308,310,312,322,328,329,344],individu:[0,11,13,14,18,21,22,33,34,41,43,46,48,49,55,57,58,59,71,73,78,85,88,90,96,109,111,132,153,157,174,185,192,195,220,227,241,249,250,252,306,319,321,330,336,338,339],ineffici:[115,117,321],infact:33,infinit:[0,61,63,146,235,251],inflict:[102,219],inflict_condit:219,influenc:[10,16,22,46,51,102,123,179,344],influenti:79,info1:214,info2:214,info3:214,info:[3,5,11,13,16,17,20,23,24,25,26,27,33,35,37,43,52,55,58,59,63,64,68,78,86,88,89,95,100,101,102,104,105,106,112,124,125,131,138,139,144,146,148,156,157,159,169,171,175,178,179,181,186,187,190,199,233,239,247,267,272,276,284,285,305,306,308,317,318,319,324,327,337,344],infomsg:337,inforamt:[206,235,247,318],inform:[0,2,3,6,8,9,18,20,22,23,25,27,28,33,34,36,38,41,43,46,48,51,55,60,65,66,68,69,73,83,84,85,86,91,94,95,96,100,102,103,104,105,109,112,114,116,117,119,120,123,124,127,131,132,133,134,135,136,137,138,139,144,146,154,157,159,164,165,169,174,177,180,185,197,204,206,210,211,219,220,221,239,247,259,267,272,281,282,283,285,294,307,308,317,318,321,324,326,337,344,357],infrastructur:[64,83,90,103,150,277],infrequ:46,ing:[9,14,58,185],ingam:46,ingame_python:[141,142,178],ingame_tim:62,ingo:[31,51,58,74,114,152,279,336],inher:[4,10,87,108],inherit:[2,5,6,22,27,30,31,33,36,40,42,43,57,60,64,69,81,86,89,96,102,109,114,117,119,123,125,127,148,152,154,159,167,169,170,175,177,179,180,182,187,189,197,203,206,213,217,218,219,220,221,230,231,233,234,243,246,247,252,256,258,307,314,317,318,326,329,330,334,342,344,362],inheritng:252,inherits_from:[43,117,134,169,344],inifinit:251,init:[6,9,22,38,40,47,49,58,60,63,75,83,95,104,106,131,137,138,179,180,188,224,246,258,267,285,286,296,308,344],init_delayed_messag:188,init_django_pagin:329,init_evt:329,init_f_str:329,init_fill_field:188,init_game_directori:267,init_iter:329,init_menu:230,init_mod:[153,258],init_new_account:344,init_pag:[251,329],init_pars:234,init_queryset:329,init_rang:221,init_sess:[40,307],init_spawn_valu:251,init_str:329,init_tree_select:215,init_tru:153,initi:[5,9,11,21,29,33,38,47,49,50,51,58,60,61,64,68,73,85,97,105,107,110,120,123,127,130,131,133,137,138,144,145,146,153,154,170,174,175,177,179,186,188,192,196,198,205,206,215,217,218,219,220,221,230,231,232,237,244,246,247,251,257,260,261,264,265,267,269,270,271,276,277,278,280,281,282,283,285,286,287,288,289,290,291,292,294,295,296,298,306,307,308,315,316,321,323,326,327,328,329,336,339,340,344,351,357,362],initial_formdata:188,initial_ind:330,initial_setup:[141,142,262,305],initialdelai:[264,278,279],initialize_for_combat:[217,218,219,220,221],initialize_nick_templ:[316,336],initil:295,inject:[96,103,306,328],inlin:[18,57,85,104,137,145,173,237,244,254,265,315,336],inlinefunc:[45,83,104,109,141,142,250,308,320],inlinefunc_en:[114,336],inlinefunc_modul:[114,336],inlinefunc_stack_maxs:114,inlinefuncerror:336,inlinefunct:[114,336],inmemorysavehandl:339,inner:77,innoc:[12,43,157],innocu:103,inobject:276,inp:[51,159,176,251,265,329,344],inpect:51,input:[1,5,9,10,14,15,17,20,22,27,30,31,40,41,43,50,53,55,57,58,70,74,79,83,87,91,95,96,104,105,109,110,111,113,114,115,118,127,131,133,135,137,138,144,149,150,151,154,159,164,166,167,168,169,170,174,176,180,185,188,200,201,205,206,210,215,220,232,238,247,250,251,252,265,272,276,287,295,306,308,316,317,319,326,327,328,329,330,336,338,340,344,345,357],input_cmdset:328,input_func_modul:[74,272],input_str:328,input_validation_cheat_sheet:357,inputcmdset:328,inputcommand:[74,83,88],inputcompon:137,inputdebug:[74,272],inputfunc:[40,45,104,139,141,142,146,262,295,306,308,364],inputfunc_nam:295,inputfunct:74,inputhandl:141,inputlin:[43,87,165,316,317],insecur:90,insensit:[51,174,187,206,233,317,349],insert:[13,14,25,50,51,58,64,71,87,96,109,114,138,153,189,202,250,322,328,330,336,344],insid:[0,5,10,11,13,15,19,20,21,23,25,27,28,31,33,38,42,43,46,47,51,57,59,64,67,68,69,71,72,73,80,82,83,85,86,88,89,91,92,93,95,96,100,102,105,106,108,109,110,111,114,117,121,123,125,127,132,133,134,135,136,139,141,146,169,180,187,190,194,195,206,231,233,235,241,246,247,250,267,284,305,312,322,323,326,336,344],inside_rec:241,insiderecurs:241,insight:[20,41,42,122,136],insist:[90,91],inspect:[12,23,43,51,85,144,159,179,265,267,328],inspectdb:86,inspir:[33,41,73,116,127,129,181,189,330,344],instac:[154,247,306],instal:[0,3,5,14,20,26,37,38,41,42,46,47,54,55,57,58,59,60,64,65,76,77,79,95,96,97,98,101,103,106,108,110,124,127,128,130,134,138,139,141,179,181,182,183,185,186,187,199,201,202,203,206,210,212,213,217,218,219,220,221,363,364],installed_app:[4,69,86,127,133,134],instanc:[0,2,3,8,11,16,17,22,25,27,28,29,39,41,42,43,46,50,51,56,57,58,59,60,61,62,64,69,76,84,85,91,95,96,97,102,103,105,107,109,116,119,121,126,127,131,136,137,144,145,148,150,151,152,153,154,163,166,168,169,173,175,177,180,195,197,198,200,204,215,234,235,237,239,244,246,247,251,252,254,256,260,261,264,267,276,277,278,279,280,281,282,283,285,289,290,294,298,299,307,308,312,315,316,318,319,321,324,325,328,330,334,335,340,344,345,357],instanci:180,instant:136,instanti:[33,86,127,144,153,170,224,258,261,284,305,308,327],instantli:315,instead:[0,3,6,9,10,11,12,14,16,19,20,21,22,23,25,26,27,29,30,31,33,34,37,39,41,43,46,48,49,51,57,58,60,62,63,64,67,79,80,83,84,85,86,89,90,91,93,95,96,100,102,103,104,105,106,109,110,111,112,114,116,117,118,119,121,123,125,126,127,128,131,132,133,134,135,136,138,139,144,146,153,154,156,157,159,161,164,168,169,171,180,185,186,188,197,198,201,206,213,215,217,218,219,220,221,226,230,232,234,235,241,242,247,252,261,267,295,296,306,310,315,316,318,319,324,328,329,334,337,339,340,341,344,357,362],instig:157,instil:[140,219],instr:[276,344],instruct:[0,8,9,13,14,23,27,30,37,38,42,43,46,47,55,57,58,60,61,63,67,74,75,77,79,83,85,90,93,96,97,100,106,119,124,131,139,144,154,169,200,206,210,252,261,264,267,277,279,285,290,291,295,296,298,306,308,328,338],insult:94,integ:[25,31,33,39,85,91,105,109,114,123,125,151,182,184,185,188,217,218,219,220,221,233,241,247,250,317,336,340,344,345],integerfield:[133,357],integr:[4,7,41,45,61,64,76,79,103,134,137,139,170,206,270,272,328,364],intellig:[73,83,91,103,134,153,298],intend:[13,17,20,22,27,31,33,34,37,42,55,61,90,103,108,109,111,112,114,122,126,131,136,137,144,164,179,180,206,227,239,247,252,285,317,319,324,325,327,330,336,341,342,345,362],intens:[79,93,114],intent:[51,76,96,103,205,344],inter:13,interact:[2,20,23,29,33,40,42,43,51,55,56,59,61,77,79,100,106,108,110,116,122,133,138,141,158,221,226,267,284,322,337,344],intercept:308,interchang:[116,328,362],interest:[0,1,4,11,14,20,21,22,26,33,37,40,42,46,49,55,57,60,61,70,79,86,90,91,93,96,103,109,114,119,120,121,123,136,153,168,179,184,233,235],interf:63,interfac:[9,21,22,23,25,36,40,42,43,63,64,69,70,79,80,90,94,96,97,101,104,111,119,133,135,137,138,139,156,159,173,175,247,259,278,307,312,319,321,362],interfaceclass:287,interfer:[23,97,251],interim:[29,115],interlink:[284,305],intermediari:[206,242,257,328],intern:[10,11,15,27,34,38,40,51,63,76,80,87,88,90,100,102,103,104,105,107,109,110,112,113,116,128,144,146,174,177,186,189,206,235,247,251,258,295,296,316,318,319,321,325,328,330,336,344],internal:328,internal_port:90,internation:[7,113,139,364],internet:[10,12,16,33,40,43,63,67,72,90,94,103,124,157,264,269,277,278,279,287,290,298,312],interpret:[33,42,43,56,59,60,91,93,96,102,103,104,109,134,154,158,159,251,252,295,321,336,340],interrupt:[63,150,154,170,192,195,198,287],interruptcommand:[33,91,141,150,154],interruptev:198,intersect:[31,152],interv:[64,74,102,115,116,120,121,132,146,184,195,217,218,219,220,221,223,226,227,231,233,250,256,259,261,272,324,331],interval1:261,intim:[31,33],intimid:58,intoexit:[43,159],intpropv:123,intricaci:62,intrigu:54,intro:[4,69,122,124,134,230,233],intro_menu:[141,142,178,229],introduc:[26,29,31,57,73,97,123,124,127,131,139,206],introduct:[3,13,14,15,16,18,19,20,45,60,61,63,124,127,131,139,180,363,364],introductori:[55,63],introroom:233,introspect:203,intrus:126,intuit:[22,51,61,86,91,131,139,152],intxt:27,inv:[31,43,82,165,182],invalid:[11,41,60,91,109,144,188,206,227,251,330,340,344,345],invalid_formchar:327,inventori:[20,21,25,27,31,80,85,91,97,119,138,165,182,206,241,247,318],invers:[80,114,126,206,293,343],invert:[114,126],investig:90,invis:24,invit:[0,10,61,77],invitingli:20,invok:[11,13,14,102,209,241],involv:[40,56,61,68,75,80,89,105,107,116,123,188,221,318,319,321],ioerror:322,ipregex:157,ipstart:[63,100,110],iptabl:103,ipython:[26,58,59,96],irc2chan:[72,164],irc:[7,9,26,34,43,55,60,63,70,79,94,98,131,138,139,141,142,146,164,172,262,272,275,285,308,363,364],irc_botnam:146,irc_channel:146,irc_en:[72,164,241],irc_network:146,irc_port:146,irc_rpl_endofnam:279,irc_rpl_namrepli:279,irc_ssl:146,ircbot:[146,279],ircbotfactori:[146,279],ircclient:[279,308],ircclientfactori:285,irchannel:[43,72,164],ircnetwork:[43,72,164],ircstatu:164,iron:179,ironrealm:291,irregular:[223,231,233],irregular_echo:231,irrelev:[103,276],irur:52,is_account_object:56,is_act:[145,256],is_aggress:117,is_anonym:[4,69],is_anyon:4,is_authent:133,is_ban:144,is_bot:148,is_build:4,is_categori:215,is_channel:[33,41,174],is_connect:[148,247],is_craft:29,is_exit:[33,154],is_fight:29,is_full_moon:25,is_giving_light:232,is_gm:58,is_in_chargen:123,is_in_combat:[217,218,219,220,221],is_inst:27,is_it:344,is_iter:344,is_lit:[232,233],is_next:[148,177,246,256,316,318],is_o:344,is_ouch:11,is_prototype_bas:251,is_sai:118,is_staff:145,is_subprocess:344,is_superus:[2,4,144,145,148,242,247,324],is_thief:[43,166],is_turn:[217,218,219,220,221],is_typeclass:[144,318],is_valid:[102,121,133,179,227,256,259],is_valid_coordin:235,isalnum:321,isalpha:321,isbinari:[278,295],isclos:137,isconnect:137,isdigit:[58,114,321],isfiremag:28,isinst:[39,344],island:200,isleaf:296,islow:321,isn:[0,4,17,22,41,42,46,50,56,62,63,69,91,119,138,180,192,196,221,233,234,269,315,321,338,349],isnul:340,iso:[15,113],isol:[13,37,61,63,64,91,95,100,127],isp:[90,103],isspac:321,issu:[7,8,10,11,13,14,21,22,23,29,31,33,37,38,42,43,45,48,54,58,60,61,63,70,79,85,89,90,93,103,108,111,123,125,126,127,131,138,140,164,251,267,298,299,330,363],istart:[42,110,141],istep:299,istitl:321,isub:116,isupp:321,itch:[61,63],item:[20,43,47,51,59,63,68,69,82,85,86,116,117,138,165,179,182,188,206,219,224,235,247,286,316,336,344],item_consum:219,item_func:219,item_kwarg:219,item_selfonli:219,item_us:219,itemcoordin:235,itemfunc:219,itemfunc_add_condit:219,itemfunc_attack:219,itemfunc_cure_condit:219,itemfunc_h:219,iter:[11,49,51,59,97,112,119,138,144,200,206,235,247,252,259,296,298,316,318,321,322,325,329,344],iter_cal:329,iter_to_str:344,itl:[22,180],its:[0,2,3,5,9,11,12,14,15,16,20,21,22,23,25,27,29,31,33,37,38,39,40,41,42,43,44,49,50,51,52,55,56,57,58,60,61,62,63,64,65,68,69,70,72,73,75,80,81,82,83,84,85,86,88,89,90,91,93,94,95,96,98,100,101,102,103,104,105,109,111,114,115,117,118,119,121,122,123,124,125,126,127,128,129,130,131,133,134,135,136,137,138,139,144,145,146,148,150,151,152,153,154,157,159,167,168,169,175,176,179,180,188,189,195,197,203,205,206,213,215,217,218,219,220,221,226,227,231,232,234,235,241,246,247,252,259,260,261,267,272,276,280,293,294,295,296,299,307,308,312,313,315,316,317,318,319,322,327,328,330,334,336,337,338,339,340,341,344,357,362],itself:[0,4,9,11,15,17,20,21,22,23,25,27,29,33,36,37,40,41,44,45,46,47,49,51,55,60,63,64,68,75,77,78,80,82,85,86,89,96,104,105,106,111,114,115,116,118,119,122,123,125,127,131,133,134,135,136,144,146,174,175,180,185,188,198,204,206,215,220,223,232,233,235,236,241,247,249,252,260,267,291,296,308,312,315,316,319,321,324,326,328,339,341,346,357,362],iusernamepassword:287,iwar:85,iweb:90,iwebsocketclientchannelfactori:278,iwth:261,jack:87,jail:[12,13],jamochamud:24,jan:[12,62],januari:62,jarin:90,javascript:[55,83,88,103,135,136,137,138,295,296],jenkin:[123,182,188,190,215,217,218,219,220,221],jet:220,jetbrain:[79,106],jnwidufhjw4545_oifej:9,job:[33,41,67,69,80,144],jobfusc:205,john:[58,214],johnni:[209,210],johnsson:87,join:[9,22,34,43,49,58,61,63,65,72,96,112,116,119,123,133,144,164,175,179,205,321,344],join_fight:[217,218,219,220,221],join_rangefield:221,joiner:175,jointli:[64,153],joke:59,joker_kei:[22,180],journal:[61,111],jpg:122,jqueri:138,json:[83,88,137,138,209,278,291,295,296,325],jsondata:88,jsonencod:296,jsonifi:296,judgement:73,jump:[13,14,21,41,44,49,51,52,55,61,63,77,89,108,131,139,215,265],junk:276,just:[0,1,3,4,5,6,9,10,11,12,13,14,15,17,19,20,21,22,23,25,26,27,28,29,30,31,33,34,37,38,39,40,41,42,43,44,46,47,48,49,51,52,54,56,57,58,59,60,61,62,63,64,68,69,70,73,74,76,77,79,80,81,83,85,86,87,88,89,90,91,93,95,96,97,100,101,102,105,106,107,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,125,126,127,128,131,132,133,134,135,136,137,138,140,144,152,153,154,157,159,167,168,169,170,174,179,180,182,185,187,192,194,195,197,206,214,215,217,218,219,220,221,224,227,231,233,235,241,242,247,251,252,257,272,285,295,305,312,316,317,318,321,322,325,326,328,330,339,340,344,345,362],justif:[329,344],justifi:[96,109,250,321,329,344],justifii:329,justify_kwarg:329,kavir:291,kcachegrind:93,keen:37,keep:[0,1,4,7,9,11,13,14,15,16,20,25,26,29,30,33,34,42,45,48,51,56,57,58,60,61,62,63,64,68,69,73,75,76,77,78,81,82,85,91,92,95,96,97,100,105,109,116,118,121,122,126,128,131,132,133,134,138,146,153,187,190,195,204,209,227,232,233,251,252,258,269,310,328,330,344],keep_log:[34,175,324],keepal:[105,290,296],keeper:85,keepint:64,kei:[0,1,5,8,9,10,11,13,21,25,26,27,28,29,30,31,33,34,38,39,41,42,43,44,49,50,52,56,57,58,60,62,69,71,74,80,81,82,84,85,86,88,89,91,94,95,96,97,102,107,111,112,114,115,116,119,120,121,123,125,127,129,131,133,137,138,144,146,148,150,152,153,154,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,174,175,176,179,180,181,182,184,185,186,187,188,189,193,194,199,200,201,202,203,205,206,212,213,214,215,217,218,219,220,221,224,230,231,232,233,234,235,239,241,246,247,250,251,252,256,257,258,259,261,265,267,272,273,274,276,285,288,291,292,294,295,296,299,306,307,308,310,316,317,318,319,323,324,326,327,328,329,337,338,339,341,344,357,362],kept:[33,43,57,80,91,119,127,159,194,195,252],kept_opt:215,key1:202,key2:[51,202,247],key_mergetyp:[31,152,224],keyboard:138,keydown:137,keyerror:[251,261,339],keyfil:[288,292],keynam:[175,252,324],keypair:287,keys_go_back:[22,180],keystr:319,keystrok:287,keywod:330,keyword:[0,1,5,10,11,22,25,27,29,30,33,34,43,50,51,52,58,62,74,80,81,83,86,91,93,95,102,107,109,114,115,119,123,125,127,134,144,146,150,154,159,165,175,182,184,187,192,194,195,197,198,205,206,210,217,218,219,220,221,233,234,242,247,250,251,252,257,260,261,265,267,272,276,278,279,285,286,287,290,295,296,305,306,307,308,310,316,317,318,324,327,328,329,330,334,336,338,340,341,344,362],keyword_ev:198,kick:[12,31,43,51,58,90,146,152,157,164,171,186,247,329],kildclient:24,kill:[20,27,43,51,61,75,93,100,102,105,116,169,179,231,232,257,258,259,261,267,305,312],killsign:267,kilogram:82,kind:[0,11,37,38,40,80,91,97,104,116,118,119,121,133,138,217,218,219,220,242,318,345],kinda:138,kindli:126,kintmvlhf6m:133,kitchen:[43,44,159],knew:95,knock:51,knot:182,know:[0,2,5,6,8,10,11,13,14,15,16,20,21,22,23,26,29,31,33,37,38,39,40,41,42,43,44,48,49,51,54,56,57,58,60,61,64,67,69,70,72,73,74,79,80,81,82,83,84,85,86,89,90,91,93,95,96,97,98,100,102,104,105,110,111,113,114,116,117,118,119,121,125,126,127,128,131,132,133,134,136,138,139,154,158,159,167,168,170,174,179,194,199,205,215,220,232,246,247,272,306,308,315,322,323,328,344,362,363],knowledg:[13,15,33,55,77,289,308],known:[7,20,24,33,50,73,79,80,87,92,96,109,114,115,125,134,137,143,168,220,329],knuth:93,kobold:61,koster:79,kovash:51,kwarg:[1,10,25,29,33,40,41,51,58,59,74,80,81,83,84,88,96,107,109,114,115,118,121,125,132,134,137,144,145,146,147,148,150,154,156,157,158,159,164,165,166,167,168,169,170,171,174,175,176,177,179,180,181,182,184,185,186,187,188,189,192,193,194,195,197,199,200,201,202,203,204,205,206,210,212,213,214,215,217,218,219,220,221,223,224,226,227,230,231,232,233,234,235,238,239,241,242,244,245,246,247,249,250,251,252,255,256,257,259,260,261,264,265,272,273,274,276,277,278,279,284,285,286,287,288,290,291,292,295,296,300,306,307,308,309,310,312,315,316,317,318,319,321,326,327,328,329,330,331,333,334,336,337,338,339,340,341,342,344,345,357,362],l82:135,l93:96,label:[48,70,86,112,133,140,357],label_suffix:[145,237,244,357],laborum:52,lack:[13,38,56,61,70,129,206,247,344],ladder:58,lag:[49,63],lai:[1,48],lair:14,lambda:[10,39,51,69,109,195,252],lamp:[111,224,226,227],land:[91,116,231,232],landscap:[103,111],lang:205,langcod:206,langnam:206,languag:[7,15,38,40,47,55,56,57,58,64,79,91,95,103,108,113,114,118,124,125,127,129,130,137,139,205,206],language_cod:76,languageerror:[205,206],languageexistserror:205,languagehandl:205,larg:[10,11,13,14,16,20,23,37,51,55,56,61,86,90,96,97,108,109,122,127,205,235,251,285,322,327,329,334],larger:[14,20,49,57,61,68,80,82,86,108,187,293,321,334,344],largesword:86,laser:77,last:[4,11,13,14,22,26,29,31,33,34,36,42,43,48,51,54,58,60,69,74,76,86,87,89,90,91,95,96,105,107,110,116,121,122,126,127,131,134,136,137,150,151,153,159,164,165,179,184,187,195,197,206,215,217,218,219,220,221,227,247,271,321,322,323,328,329,330,331,337,344],last_cmd:33,last_initial_setup_step:305,last_login:145,last_nam:145,last_step:271,lastcast:28,lastli:[81,83,111,133,150],lastsit:25,late:[251,323],later:[0,2,9,11,12,13,22,23,33,34,38,40,43,46,55,58,60,61,63,64,69,73,74,76,81,83,84,86,90,95,97,109,111,114,115,117,120,121,123,125,131,133,138,139,140,152,156,157,159,167,168,184,203,206,252,261,287,319,344],latest:[20,21,27,31,36,38,43,58,63,64,75,83,98,131,159,164,169,197,247,252,286,310,328,337,363],latin:[15,113,344],latinifi:344,latter:[6,27,29,34,64,77,80,89,91,95,115,126,206,256,258,319],launch:[14,21,54,63,75,85,90,93,102,106,110,122,127,138,153,224,266,267,277,279,298,326,344],launcher:[93,106,266,267,276,277,298],law:79,layer:[22,31,246,318],layout:[27,49,56,58,92,96,119,125,128,137,138,235],lazi:344,lazy_properti:344,lazyencod:296,lazyset:337,lc_messag:76,lcnorth:114,ldesc:56,ldflag:75,lead:[0,11,13,17,20,22,23,31,37,43,49,51,56,60,61,64,69,79,83,86,102,103,111,121,144,151,152,159,169,195,198,204,212,247,252,291,306,318,328,330,336,344],leak:135,lean:206,leap:[62,118],learn:[0,15,16,17,20,22,29,31,33,42,46,49,56,57,60,63,68,69,79,80,81,95,96,106,108,118,122,124,126,127,131,134,136,139,205,220,364],learnspel:220,least:[3,8,33,39,42,47,49,51,55,57,58,61,67,73,80,86,90,96,102,106,121,138,144,153,176,179,205,238,247,252,259,321,327,330,341,344],leasur:231,leather:85,leav:[0,2,20,21,22,25,43,58,60,73,74,77,85,93,95,102,103,116,123,137,138,156,158,159,164,175,179,180,233,235,241,247,295,296,328,334],leavelock:241,leaver:175,left:[22,27,33,36,39,41,43,57,69,74,80,85,86,91,101,102,109,111,114,137,138,144,159,165,167,168,190,217,218,219,220,221,232,235,242,250,252,318,321,330,344,363],left_justifi:[109,250],leg:304,legaci:[88,109,144,206],legal:[90,103],legend:[49,50,200],leisur:345,len:[25,49,58,71,85,109,114,116,119,120,121,151,168,184,344],lend:50,length:[22,23,25,49,62,66,68,71,83,86,90,91,95,122,151,184,188,190,198,205,206,269,310,316,321,330,344,362],lengthi:[1,25],lengthier:363,lenient:109,less:[22,34,44,51,56,61,64,73,86,90,91,106,108,116,119,132,133,139,184,218,220,316],let:[0,3,5,7,8,9,11,12,14,15,20,21,22,25,28,31,33,37,39,40,41,43,44,46,48,49,51,56,57,58,60,61,62,63,64,65,70,72,73,74,75,77,80,81,82,83,85,89,91,93,95,96,98,103,106,111,114,115,117,118,119,121,123,124,126,127,131,133,134,136,137,140,144,154,159,165,166,170,174,179,182,185,188,190,215,227,235,242,247,277,296,308,324,328,338,343,357,362,363],letsencrypt:[67,90],letter:[15,22,39,43,76,90,95,111,113,114,119,123,133,156,165,180,204,311,344],level:[2,11,13,19,20,22,26,27,30,36,38,40,41,43,47,50,51,55,57,58,61,66,69,71,73,79,80,85,90,95,96,104,105,108,111,112,119,122,125,130,133,138,139,140,144,156,161,162,180,181,184,199,205,215,241,247,251,252,269,306,316,318,324,326,331,336,344,362],lever:[33,125],leverag:[3,38],levi:86,lh3:133,lh6:133,lhs:[25,58,167,168],lhslist:[167,168],lib:[63,67,75,97],libapache2:8,libcrypt:75,libjpeg:75,librari:[6,11,13,26,45,53,56,57,63,64,75,76,78,79,91,95,100,103,108,109,125,127,128,133,136,137,138,178,204,234,251,252,280,318,330,344],licenc:321,licens:[37,45,79,106,139,204,321,364],lid:[224,226,227],lidclosedcmdset:224,lidopencmdset:224,lie:111,lies:[33,131],life:[11,37,62,87,95,126,184,231],lift:[20,73,80,96,123,221,242],lifter:80,light:[14,23,27,38,61,102,108,122,153,218,232,233,241,252,260,321],lightabl:232,lighter:[114,218],lightest:27,lightli:[16,218],lightsail:90,lightsourc:232,lightsource_cmdset:232,like:[0,2,3,5,6,8,9,10,11,12,14,15,16,17,19,20,21,22,23,25,26,27,28,29,30,31,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,49,51,52,53,54,55,57,58,59,60,61,62,63,64,65,67,68,69,70,71,72,73,74,75,76,77,79,80,81,83,84,85,86,88,89,90,91,93,95,96,97,100,102,103,104,105,106,107,108,109,111,112,114,115,116,117,118,119,120,121,125,126,127,128,129,131,132,133,134,135,136,137,138,139,140,144,146,148,149,151,152,153,156,158,159,164,167,168,171,172,175,176,179,180,182,186,187,188,189,190,198,200,204,205,206,212,213,215,217,218,219,220,221,224,227,233,234,235,239,241,242,246,247,250,251,252,272,280,296,301,305,307,308,316,317,318,321,322,324,327,328,329,330,331,334,338,340,341,344,357,362,364],limbo:[0,9,13,14,20,22,27,43,59,63,66,104,111,121,122,134,159,180,233,271],limbo_exit:111,limit:[0,2,6,11,16,19,20,25,26,27,28,31,33,34,37,43,46,51,53,55,58,61,64,68,71,80,86,90,91,95,102,104,109,112,116,123,125,126,127,138,140,144,156,157,158,159,175,176,182,195,206,215,217,219,220,227,238,239,242,247,252,256,259,261,272,285,310,316,317,318,319,322,324,326,337,341,344,362],limit_valu:144,limitedsizeordereddict:344,line:[0,4,5,9,10,13,14,15,19,22,23,25,26,27,29,30,31,33,34,36,38,39,41,43,45,46,48,51,53,54,56,57,58,59,60,61,62,63,67,69,74,76,81,83,86,87,89,90,91,92,93,95,96,97,98,100,104,108,109,110,111,114,119,121,123,125,127,128,133,134,137,138,139,141,144,150,153,159,166,168,169,180,185,186,188,200,201,202,205,206,215,234,235,251,267,272,287,290,295,306,318,322,326,327,328,329,330,337,344,357,362],linear:49,linebreak:[69,343],lineeditor:326,lineend:343,lineno:38,linenum:326,liner:279,linereceiv:[287,290],linesend:296,lingo:[57,86,105,135],linguist:344,link:[2,3,4,9,14,17,18,20,22,25,29,31,33,37,39,40,46,48,49,51,54,55,57,63,64,69,70,72,85,89,90,96,98,105,111,119,121,123,124,128,131,133,134,139,144,148,159,164,192,197,224,227,234,241,242,247,256,265,267,278,282,287,290,318,343,344,364],link_ok:241,linklock:241,linknam:54,linkref:38,linktext:38,linod:90,linux:[4,8,9,23,25,38,64,67,72,75,87,90,93,97,100,106,131,209,344],linuxtopia:57,liquid:318,list:[0,1,2,3,4,6,7,11,12,13,14,15,20,22,23,25,27,31,33,34,37,39,40,41,43,45,46,48,49,51,54,55,57,58,59,60,61,63,66,68,69,70,72,73,74,76,77,79,80,82,85,86,88,89,90,91,93,94,95,96,97,98,102,103,105,106,109,110,111,112,113,114,116,118,119,121,123,124,125,128,129,131,133,134,135,137,138,139,144,146,148,151,152,153,154,156,157,158,159,164,165,166,167,168,169,170,174,175,176,177,179,180,181,182,183,187,188,189,190,192,193,195,196,197,198,199,200,202,203,204,205,206,209,210,215,217,218,219,220,221,230,231,232,235,238,241,242,246,247,250,251,252,257,258,259,260,261,265,267,272,273,277,279,281,283,285,286,291,296,299,306,308,310,312,315,316,317,318,319,321,322,323,324,325,328,329,330,336,337,338,341,344,362,363],list_attribut:159,list_callback:193,list_displai:[145,173,237,244,254,263,315],list_display_link:[173,237,244,254,263],list_filt:[244,315],list_nod:328,list_of_all_rose_attribut:11,list_of_all_rose_ndb_attr:11,list_of_lycanthrop:119,list_of_myscript:102,list_prototyp:251,list_select_rel:[173,237,244,254,263],list_set:267,list_styl:156,list_task:193,list_to_str:344,listabl:[43,159],listcmdset:[43,159],listcmset:[43,159],listen:[2,12,34,41,43,67,80,103,105,124,137,139,164,175,205,206,224,241,362,364],listing_contact:54,listobj:[43,169],listobject:[43,169],listscript:[43,169],liststr:344,listview:362,lit:[232,233],liter:[13,20,38,43,57,66,94,109,165,250,321,340,344],literal_ev:[51,251,315,328],littl:[0,4,9,10,15,20,21,25,28,33,34,38,41,42,57,58,60,64,69,70,71,85,90,91,96,100,102,109,110,111,117,118,119,125,131,134,136,138,139,200,218,230,233,302,328,344,357],live:[8,23,38,60,63,67,70,79,90,100,106],ljust:321,lne:215,load:[6,11,12,13,15,26,29,31,33,43,44,50,51,56,57,58,60,61,69,73,82,83,97,103,106,109,111,121,123,127,136,137,138,148,153,165,166,169,177,187,195,205,239,242,246,247,256,260,271,274,276,307,316,318,319,322,323,326,335,338,339,342,344,355],load_buff:326,load_data:323,load_kwarg:339,load_module_prototyp:251,load_sync_data:307,loader:[51,318,344],loadfunc:[50,326,339],loc:[43,159],local0:67,local:[23,25,36,37,47,59,62,64,67,72,76,97,100,103,106,114,131,133,138,192,195,206,252,290],localecho:90,localevenniatest:342,localhost:[3,4,9,23,24,63,67,69,75,90,95,133,134,135,137,296],localstorag:138,locat:[0,2,4,6,8,9,11,12,13,20,21,25,27,30,31,33,35,38,39,43,46,47,48,49,51,57,58,59,63,64,66,73,74,77,80,85,89,90,91,96,100,102,103,109,111,112,114,117,118,119,121,122,123,125,127,128,131,133,135,136,137,140,144,150,159,165,169,176,180,181,182,187,197,200,203,206,212,231,233,235,241,246,247,252,296,305,317,318,319,322,324,328,330,337,341],location_nam:235,location_set:119,locations_set:[119,246],locattr:[232,241],lock:[4,6,10,12,19,20,21,22,23,25,28,29,31,33,34,39,41,44,45,47,48,53,58,60,62,68,71,82,85,89,90,96,104,109,110,112,123,125,133,138,139,141,142,144,145,154,156,157,158,159,164,165,166,168,169,170,171,175,177,179,180,181,182,185,186,187,189,192,193,195,196,199,200,201,202,203,206,212,214,224,231,232,233,235,237,239,246,247,251,252,312,316,318,324,326,328,338,345,364],lock_definit:242,lock_func_modul:[80,242],lock_storag:[154,156,157,158,159,164,165,166,167,168,169,170,171,174,177,179,180,181,182,185,186,187,188,189,193,199,200,201,202,203,206,212,213,214,215,217,218,219,220,221,224,231,232,233,234,239,247,316,318,326,328,329],lockabl:[58,212],lockablethreadpool:312,lockdown:[80,316],lockdown_mod:90,lockexcept:242,lockfunc1:80,lockfunc2:80,lockfunc:[25,33,43,53,80,104,121,141,142,159,240],lockhandl:[11,48,80,125,141,142,154,180,234,240,241],lockset:247,lockstr:[4,11,33,43,80,97,109,159,164,166,175,177,212,241,242,247,252,316,324],locktest:136,locktyp:[152,252],log:[2,4,5,6,8,10,11,12,20,21,23,24,25,33,34,35,36,39,43,44,45,47,51,53,55,57,58,59,60,63,64,65,66,67,71,72,73,74,75,76,83,86,89,90,93,94,100,101,102,105,106,107,110,111,114,121,122,123,128,130,131,133,134,135,137,138,144,153,157,171,175,181,186,188,201,209,210,247,256,267,272,276,277,281,284,285,287,290,298,299,300,306,308,310,312,318,324,336,337,344,362,364],log_dep:[27,337],log_depmsg:337,log_dir:209,log_err:[27,337],log_errmsg:337,log_fil:[27,337],log_info:[27,337],log_infomsg:337,log_msg:337,log_sec:337,log_secmsg:337,log_serv:337,log_trac:[27,102,118,120,337],log_tracemsg:337,log_typ:337,log_typemsg:337,log_warn:[27,337],log_warnmsg:337,logdir:36,logentry_set:148,logfil:[267,337,362],logged_in:105,loggedin:285,logger:[27,53,102,118,120,141,142,209,279,320],logic:[0,4,10,39,41,42,44,49,69,97,111,134,205,246,250,271,328,345],login:[2,4,7,9,25,33,35,43,51,55,69,70,80,90,97,101,105,107,131,133,139,144,156,171,186,201,242,271,272,287,290,295,296,299,308,344,349,351,360,362,364],login_func:299,loginrequiredmixin:362,logintest:360,logout:[298,299,360],logout_func:299,logouttest:360,logprefix:[277,287,290,312],lone:[43,61,111,159],long_descript:54,long_running_funct:10,long_text:52,longer:[0,21,25,29,33,41,43,50,52,54,58,69,79,86,91,102,115,124,125,126,129,152,157,175,182,205,206,213,217,218,219,220,221,257,326,330],longest:[27,206],longrun:33,loo:[154,170],look:[0,3,4,6,9,10,11,12,13,14,15,16,17,19,20,21,22,23,25,26,27,29,30,31,33,35,36,37,38,39,40,41,42,44,46,48,49,51,55,57,58,60,61,62,63,64,67,68,69,70,71,73,74,75,76,77,80,81,82,83,85,86,87,88,89,90,91,94,96,97,100,103,105,108,109,110,111,112,114,116,117,118,119,121,122,124,125,126,127,131,133,134,135,136,138,139,144,146,151,153,154,156,159,165,167,168,170,171,174,181,182,186,187,188,194,201,202,203,205,206,215,219,224,230,232,233,235,238,241,242,244,246,247,249,252,272,287,288,295,299,316,318,322,328,329,330,338,341,343,357,364],look_str:144,lookaccount:58,lookat:33,looker:[49,58,60,123,182,187,206,235,241,247,318],lookm:33,lookstr:247,lookup:[11,33,43,80,86,97,112,119,150,165,209,246,286,319,321,333,334,340,341,344,345],lookup_typ:340,lookup_usernam:51,lookuperror:321,loom:111,loop:[0,5,6,11,21,46,49,55,60,64,69,85,93,96,116,118,119,124,125,141,146,217,252,285],loopingcal:[259,270],loos:[14,37,144,182,221,238,287,298,322],loot:61,lop:119,lore:58,lose:[11,56,61,100,105,110,116,123,138,209,219,278,279,287,290],lost:[0,38,39,43,56,79,91,110,111,125,135,139,164,213,264,277,278,279,287,290,295,321],lot:[0,4,10,13,15,22,26,27,28,34,37,39,41,42,46,53,55,57,58,59,61,62,63,67,69,70,73,79,80,86,90,91,93,95,96,108,109,111,112,114,119,121,123,125,127,131,133,135,138,180,184,186,188,206,214,218,232,235,312],loud:21,love:137,low:[31,40,46,66,90,95,152],lower:[2,10,19,25,29,31,33,41,43,49,51,58,62,80,85,86,90,93,114,122,137,151,152,156,167,169,206,272,321],lower_channelkei:[41,174],lowercas:[95,154,321],lowest:[66,90,241,321],lpmud:129,lpthw:77,lsarmedpuzzl:203,lspuzzlerecip:203,lst:[49,324],lstart:50,lstrip:[91,119,321],ltto:114,luc:327,luciano:79,luck:[8,51,91,96],luckili:[60,80,111,127,131],lue:114,lug:55,lunch:46,luxuri:[112,314],lycanthrop:119,lying:111,m2m:319,m2m_chang:107,m_len:344,mac:[9,23,24,38,64,93,100,106,131,344],machin:[13,25,100,106,131,231],macport:[63,131],macro:[4,116],macrosconfig:4,mad:131,made:[3,11,19,20,21,25,26,35,36,38,43,51,56,58,59,61,79,80,90,96,98,103,104,109,111,121,123,131,134,150,152,164,169,179,182,188,215,219,220,221,242,269,313,321,322,328,344],mag:[60,127,327],magazin:79,mage:[51,70],mage_guild_block:51,mage_guild_welcom:51,magenta:126,magic:[30,60,61,80,112,121,122,140,179,190,220,269],magic_meadow:112,magicalforest:140,magnific:51,mai:[0,4,6,8,9,10,11,13,19,20,21,23,25,27,28,29,31,33,34,37,38,40,41,42,43,48,51,54,56,57,60,62,63,64,66,67,69,70,71,73,75,77,79,80,81,83,84,86,87,88,89,90,93,94,95,96,97,100,102,103,104,105,106,108,109,110,111,114,115,116,118,119,120,123,125,127,128,130,131,133,134,135,136,144,146,150,151,152,154,156,157,159,164,169,175,176,178,179,181,182,184,188,190,197,205,206,217,218,219,220,221,224,232,233,241,242,247,250,251,252,253,269,299,306,308,309,313,315,318,319,321,323,324,325,326,328,330,331,336,338,341,344,362],mail:[9,34,37,51,55,57,60,61,70,79,93,116,128,141,142,176,177,178,241,363],mailbox:[34,199],maillock:241,main:[13,14,15,20,21,22,30,31,33,34,37,40,43,49,51,54,56,64,68,69,76,79,80,81,83,84,85,86,89,90,91,92,100,104,105,109,110,112,115,116,119,122,124,125,131,133,134,135,137,138,139,144,145,148,150,156,159,170,177,180,188,195,199,205,206,235,239,246,252,254,256,267,271,272,274,279,284,286,291,305,307,312,318,319,328,329,332,341,343,344],mainli:[10,12,33,34,43,51,57,79,83,89,93,96,105,156,236,316,322,336,344],maintain:[4,19,23,37,41,43,53,56,68,90,93,100,108,115,119,169,171,186,261,363],mainten:[90,103],major:[14,15,23,45,57,60,63,64,119,121,133],make:[0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,19,22,23,24,25,26,28,29,30,31,33,36,37,38,39,40,41,42,43,44,46,47,48,49,50,51,54,55,56,59,61,62,63,64,68,70,71,72,73,74,75,77,78,79,80,81,83,85,86,87,89,90,91,93,94,95,96,97,100,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,122,124,125,126,128,130,132,133,134,136,137,138,139,140,144,146,148,151,152,153,154,156,157,159,164,167,170,174,175,176,179,180,182,187,188,190,196,199,200,205,206,211,212,213,215,217,218,219,220,223,224,226,227,231,232,233,238,241,242,247,251,252,258,259,261,267,271,279,284,298,299,305,306,308,309,311,312,315,316,317,318,319,321,322,323,324,325,326,328,330,331,334,336,341,343,344,360,362,363],make_it:344,make_shared_login:351,make_uniqu:152,makeconnect:276,makefactori:287,makefil:38,makeit:298,makemessag:76,makemigr:[36,86,133],male:189,malevol:14,malform:345,malici:103,malign:242,man2x1:108,man:[43,87,90,108,129,165,199,206],mana:[28,30],manaag:237,manag:[2,7,9,11,31,39,40,43,53,56,57,59,80,83,85,86,89,93,96,100,102,105,110,115,119,125,127,128,131,133,138,141,142,143,144,148,169,170,172,174,175,177,197,202,206,221,227,233,236,239,243,246,247,251,253,256,261,262,267,274,306,314,316,318,319,320,323,324,332,335,337,341,344,360,362,364],manager_nam:306,manchest:344,mandat:357,mandatori:[0,22,107,109,129],maneuv:215,mangl:293,mango:203,manhol:[94,287],manhole_ssh:287,mani:[0,1,2,4,5,9,10,11,12,14,15,17,20,26,27,30,31,33,34,38,40,43,44,49,51,55,56,57,58,61,62,63,64,66,68,70,72,73,76,77,85,86,88,89,90,91,93,95,96,98,102,103,104,105,107,108,109,110,111,113,114,115,116,118,119,120,121,122,123,124,125,126,127,128,129,131,133,134,135,140,148,152,154,159,170,177,179,182,186,188,200,206,213,214,215,219,220,224,231,234,239,241,242,246,252,256,261,267,281,289,291,310,316,318,319,321,328,329,334,335,337,362],manifest:97,manipul:[0,11,22,31,41,43,44,51,64,86,102,109,123,159,166,176,187,192,238,247,273,324,329],manner:[14,175,206,235,247,285,318],manpow:37,manual:[4,6,14,20,21,23,30,33,34,38,40,55,58,60,61,63,68,79,80,85,86,89,90,97,102,109,110,111,114,117,119,121,122,124,125,128,131,134,139,140,141,146,159,215,224,227,230,234,247,252,259,267,284,291,328,363,364],manual_paus:259,manual_transl:205,manual_unpaus:259,manytomanydescriptor:[148,177,239,246,256,316,318,319],manytomanyfield:[148,177,239,246,256,316,318,319],map:[0,15,25,39,43,46,51,57,58,61,64,67,87,88,97,100,124,135,138,139,156,164,183,184,197,200,205,206,235,247,251,252,291,316,318,321,327,328,336,344,364],map_legend:200,map_modul:111,map_str:[49,111,235],mapbuild:[141,142,178],maplegend:200,mapnam:200,mapper:334,mapprovid:235,march:[79,337],margin:17,mark:[13,14,20,21,33,38,43,49,51,58,63,72,76,80,90,95,114,119,131,135,137,138,140,151,158,187,195,204,215,308,318,322,327,328,336,340],mark_categori:215,markdown:[1,4,38,48,54],marker:[13,20,33,43,51,64,87,114,138,165,187,189,197,206,215,247,279,287,290,295,296,316,319,321,327,329,336],market:90,markup:[38,81,114,136,139,183,321,343],mask:[203,206,210,211],maskout_protodef:203,mass:[61,124,139,364],massiv:[28,55],mast:43,master:[3,7,9,37,38,41,43,46,57,61,63,70,73,95,96,98,100,104,116,118,127,134,135,313],match:[9,11,20,22,27,31,33,39,41,43,44,49,51,57,58,62,68,74,76,80,83,86,87,88,89,91,102,104,105,109,111,112,114,118,119,125,128,131,133,134,135,136,137,138,144,150,151,152,153,154,157,159,165,166,168,170,174,176,180,183,184,187,188,198,199,200,201,202,203,206,220,235,238,241,242,247,251,252,258,261,272,273,285,298,308,316,317,318,319,321,326,328,330,336,339,341,343,344,345,362],match_index:151,matched_charact:188,matcher:51,matches2:86,matchobject:[321,343],mate:64,math:39,mathemat:152,matplotlib:300,matrix:330,matt:102,matter:[0,4,9,11,25,31,36,41,51,57,61,62,63,69,73,76,84,91,95,103,105,107,108,116,117,127,136,152,221,231,246,272,316],matur:[108,128,129],maverick:64,max:[16,25,49,71,114,116,188,206,310,337,344],max_damag:219,max_dbref:317,max_depth:344,max_dist:49,max_heal:219,max_l:49,max_length:[49,86,133,206],max_lin:330,max_num:145,max_num_lin:362,max_popular:362,max_rmem:334,max_siz:337,max_valu:[190,357],max_w:49,max_width:49,maxconn:67,maxdelai:[264,278,279],maxdepth:252,maxdiff:352,maximum:[16,39,71,86,91,111,114,144,188,190,217,218,219,220,221,247,252,312,321,328,330,336,344],maxlengthvalid:144,maxnum:344,maxrotatedfil:337,maxsplit:321,maxthread:312,maxval:336,maxvalu:336,maxwidth:330,may_use_red_door:109,mayb:[6,9,11,13,14,21,22,25,27,31,33,38,44,48,49,54,61,63,68,69,70,73,82,85,86,90,109,116,119,122,138,140,153,179,198,285],mccp:[24,55,74,141,142,262,272,275],mccp_compress:280,meadow:[22,112,140],mean:[0,5,10,11,12,13,14,15,20,22,23,27,28,31,33,34,37,40,41,42,43,46,49,51,55,57,58,60,61,62,64,68,73,74,77,78,80,81,83,84,85,86,87,88,90,93,95,96,97,100,102,103,104,105,110,111,112,113,114,116,117,119,121,122,123,125,126,127,128,131,134,135,136,138,144,146,153,159,175,185,195,205,226,227,232,234,241,247,251,252,257,261,267,291,307,316,318,321,326,328,330,334,337,340,341],meaning:[154,170],meaningless:123,meant:[16,20,22,31,34,44,54,62,68,76,83,96,102,125,126,137,138,140,152,180,189,206,214,217,218,219,220,221,227,233,235,247,272,322],meantim:1,meanwhil:96,measur:[90,93,123,151,168,344],meat:133,mech:[124,139,364],mechan:[27,28,33,39,50,51,55,58,61,67,69,73,91,102,109,116,122,123,125,126,139,144,146,150,187,206,220,240,252,259,261,267,271,277,285,296,307,318,326,329,332,339,362],mechcmdset:21,mechcommand:21,mechcommandset:21,meck:21,media:[16,145,173,237,244,254,263,295,312,315,340,357],median:49,mediat:73,medium:16,mediumbox:276,meet:[25,36,61,122,194,235,311],mele:221,mem:[43,169],member:[9,11,43,70,86,165,167,168,247,344],membership:[4,9,119],memori:[6,12,23,28,31,33,43,56,75,86,90,93,113,125,135,144,169,175,227,247,261,300,310,320,329,334,339,344],memoryerror:63,memoryusag:300,memplot:[141,142,262,297],meni:180,mental:126,mention:[6,9,10,11,13,14,15,21,29,33,40,41,49,56,57,61,63,70,74,80,90,102,108,113,115,126,127,153,186],menu:[11,25,31,43,45,46,47,53,54,55,63,65,69,105,106,109,110,123,128,138,139,141,142,159,180,188,201,214,215,230,248,252,265,267,320,338,364],menu_cmdset:328,menu_data:51,menu_edit:180,menu_login:[141,142,178],menu_modul:328,menu_module_path:328,menu_quit:180,menu_setattr:180,menu_start_nod:214,menu_templ:328,menuchoic:[51,328],menudata:[188,230,249,328],menudebug:[51,328],menufil:328,menunode_fieldfil:188,menunode_inspect_and_bui:85,menunode_shopfront:85,menunode_treeselect:215,menunodename1:51,menunodename2:51,menunodename3:51,menuopt:215,menutre:[51,328],merchant:46,mercuri:108,mere:[117,190],merg:[3,5,22,33,37,43,44,51,57,62,64,97,131,139,150,151,152,153,166,224,233,235,252,256,291,328,336],merge_prior:328,merger:[5,31,37,111,152,153],mergetyp:[31,51,116,152,224,233,326,328],mess:[11,19,27,38,90,93,131,138,215],messag:[5,6,8,10,13,15,20,21,22,27,28,29,33,34,40,41,43,44,45,46,50,51,52,53,55,58,59,60,61,62,63,64,65,70,71,73,74,76,80,81,82,85,89,90,91,92,95,96,101,102,103,104,105,110,111,113,116,118,119,123,124,127,128,131,132,137,138,139,140,144,146,150,153,154,157,159,164,165,166,168,170,172,174,175,176,177,179,180,182,188,189,193,195,197,199,203,204,206,210,217,218,219,220,221,223,224,226,228,230,231,232,233,234,241,247,267,269,276,278,279,285,286,287,290,291,293,295,304,306,308,310,312,324,326,328,329,336,337,341,344],message_rout:137,message_search:176,message_transform:175,messagepath:[139,364],messagewindow:137,meta:[104,125,145,237,244,315,318,334,357],metaclass:[86,96,125,154,318],metadata:[210,269],metavar:234,meteor:82,meter:190,metho:174,method:[1,2,5,6,9,10,11,22,25,27,28,29,30,31,34,38,39,40,42,46,48,49,51,55,58,59,60,62,64,68,69,73,77,80,83,86,88,89,91,95,96,102,104,105,107,109,111,112,114,115,116,117,118,119,120,121,123,125,127,131,132,133,134,137,139,144,148,150,152,153,154,156,159,160,164,166,167,168,169,170,173,174,175,176,177,179,180,184,187,192,195,197,201,202,203,204,205,206,209,210,212,217,218,219,220,221,227,228,230,231,232,233,234,235,238,239,241,242,247,259,260,261,264,269,272,273,274,276,277,278,279,280,285,287,290,293,295,296,299,303,305,306,307,308,310,315,316,318,321,322,324,326,328,329,330,331,334,335,336,337,338,339,341,342,343,344,362],methodnam:[170,196,211,228,261,293,303,335,342,352,360],metric:82,microsecond:11,microsoft:[63,111],mid:[29,108,121],middl:[29,33,49,90,218,321],middlewar:[141,142,346,348],midnight:[25,62],midst:122,midwai:114,mighht:91,might:[0,4,8,10,11,12,14,15,17,20,22,23,25,26,27,28,29,30,31,33,34,39,40,41,42,43,46,51,52,55,58,60,61,62,63,69,70,73,75,76,77,80,81,82,85,89,90,91,95,96,97,98,100,102,103,104,105,110,111,114,115,116,119,120,122,123,124,126,127,131,132,133,136,138,153,157,159,179,204,210,213,217,218,219,220,234,247,296,318,321,326,337,338,344,357,363],mighti:[29,111],migrat:[9,23,36,38,63,75,86,107,110,111,127,131,133,252],mike:[43,159],mileston:[94,139],million:[23,25,133],mime:324,mimic:[23,34,50,55,73,93,177,306,326],mimick:[50,64,73,138,298,326,329],mimim:319,min:[49,62,102,114,184,188,331,336],min_damag:219,min_dbref:317,min_heal:219,min_height:330,min_shortcut:[22,180],min_valu:357,min_width:330,mind:[10,12,13,14,37,41,45,51,54,55,56,57,60,61,122,126,134,138,179,190,195,204,269,344],mindex:151,mine:[46,103,138],mini:[55,111,124],miniatur:[61,122],minim:[61,103,105,116,138,205,252],minimalist:[33,58,108],minimum:[22,58,64,73,105,188,217,218,219,220,221,272,312,318,330,336,339,344],mininum:330,minlengthvalid:144,minor:[41,153,363],mint:[63,67,131],minthread:312,minu:[86,331],minut:[25,27,28,43,62,79,91,100,102,116,164,179,184,310,331,344],minval:336,mirc:279,mirror:[72,79,105],mis:57,misanthrop:119,misc:138,miscelan:320,miscellan:47,mislead:41,mismatch:[74,344],miss:[49,57,60,63,70,90,94,95,97,217,218,219,220,221,251,272],missil:[21,220],mission:[41,69],mistak:[38,60,363],misus:90,mit:[79,124,321],mitig:[57,103,362],mix:[11,30,33,34,51,53,114,126,133,144,179,206,251,252,311,319,322,330],mixin:[251,301,362],mixtur:81,mkdir:[9,36,63],mktime:62,mob0:56,mob:[14,43,55,56,61,80,105,122,141,142,153,159,178,229,233,252,322],mob_data:56,mob_db:56,mob_vnum_1:56,mobcmdset:231,mobdb:56,mobil:[14,71,109,122,138,231,241],moboff:231,mobon:231,mock:[127,342],mock_channeldb:170,mock_get_vers:352,mock_random:228,mock_set:352,mock_tim:303,mockdeferlat:342,mockdelai:342,mocked_idmapp:303,mocked_o:303,mocked_open:303,mockup:138,mockval:342,mod:[8,103,251],mod_import:344,mod_import_from_path:344,mod_prototype_list:251,mod_proxy_http:8,mod_proxy_wstunnel:8,mod_sslj:8,mode:[2,8,31,41,42,43,50,51,67,69,74,79,93,100,103,106,116,117,123,133,135,138,141,158,169,175,181,197,199,231,247,251,258,267,272,277,284,295,296,305,322,326,328,337,344],mode_clos:296,mode_init:296,mode_input:296,mode_keepal:296,mode_rec:296,model:[9,11,34,41,45,59,64,69,73,80,87,96,104,112,115,119,125,132,135,136,139,141,142,143,144,145,172,173,175,176,236,237,243,244,247,253,254,257,261,262,263,273,314,315,316,317,319,320,324,325,332,333,335,340,341,344,357,362,364],model_inst:340,modeladmin:[173,237,244,254,263,315],modelbackend:349,modelbas:334,modelchoicefield:244,modelclass:[11,112],modelform:[145,237,244,315,357],modelmultiplechoicefield:[145,237,244],modelnam:[175,239,318],moder:[4,39,179],modern:[10,11,15,30,79,103,108,111,126,138,201,280],modif:[0,8,25,33,37,46,83,91,100,123,131,138,313,357],modifi:[0,2,4,11,20,22,25,26,31,33,34,38,39,40,43,44,46,51,53,55,56,57,58,60,68,73,78,85,89,93,96,100,104,105,109,110,111,114,118,119,122,123,125,128,131,135,137,138,139,140,144,145,153,175,180,185,187,189,195,197,203,206,213,217,218,219,220,221,232,234,239,247,252,261,318,322,328,334,340,343,357,362],modified_text:114,modul:[3,5,6,11,13,15,20,21,26,27,29,31,33,35,37,38,40,43,45,47,50,51,55,56,57,58,59,60,62,65,68,74,75,80,81,82,83,85,89,93,96,97,98,102,103,104,105,107,108,110,111,114,117,119,121,122,123,124,125,127,135,138,139,150,151,153,154,159,161,162,163,164,168,170,174,179,180,181,182,183,184,185,186,187,188,190,192,193,194,196,197,200,201,204,205,206,211,212,213,215,217,218,219,220,221,224,231,232,233,234,241,242,246,247,250,251,252,257,259,260,261,264,266,267,271,272,276,284,286,287,290,291,294,296,298,299,300,305,307,308,309,316,318,319,320,322,323,324,325,326,327,328,329,331,336,342,344,364],modular:55,modulepath:276,moifi:187,mollit:52,moment:[21,31,46,57,76,85,91,96,115,135,139,144,250,256],monei:[9,61,70,86,90,241],monetari:[37,179],monitor:[53,84,88,93,139,257,272,291,334],monitor_handl:[84,141,257],monitorhandl:[45,74,139,141,142,253,364],mono:25,monster:[29,43,57,61,64,89,109,159,252],month:[37,62,67,90,184,331,337,344],monthli:62,montorhandl:84,moo:[55,57,79,108,129],mood:[46,122],moon:[25,61,62,82],moor:122,moral:97,more:[0,1,2,3,4,5,9,10,11,12,13,14,15,17,19,20,21,22,23,25,26,27,28,31,33,34,35,36,37,39,40,41,42,43,44,46,49,50,51,52,55,56,58,59,60,61,62,63,64,66,67,68,69,70,71,72,73,74,75,76,77,79,83,85,86,87,88,89,90,91,93,94,95,96,97,100,102,103,104,105,108,109,110,111,112,113,114,115,116,118,119,121,122,123,124,125,126,127,131,132,133,134,136,137,138,141,143,144,145,148,151,152,153,158,159,165,169,171,174,178,179,180,181,182,184,186,187,190,195,198,200,204,205,206,213,214,215,217,218,219,220,221,226,231,232,233,234,235,241,244,247,250,251,252,277,279,282,298,299,308,313,316,317,321,322,324,325,326,327,328,329,330,334,341,344,345,357,362],more_command:329,moreov:[90,102],morn:[187,188],most:[0,4,6,8,9,10,11,13,17,22,23,25,27,30,31,33,35,37,38,39,40,41,42,43,46,47,48,49,51,56,57,58,59,60,61,62,63,64,69,73,74,77,80,82,83,86,88,89,90,91,93,95,96,97,100,103,104,105,107,108,111,113,114,115,116,117,119,121,123,125,126,128,129,133,137,138,140,144,148,152,153,156,159,167,177,180,190,205,206,213,217,218,219,220,221,239,241,242,246,247,251,252,256,290,295,305,316,317,318,319,328,329,334,335,344,362],mostli:[40,51,57,69,73,90,91,95,114,123,125,137,138,145,152,185,205,219,235,287,321],motiv:[13,14,37,55,61,70,89,278,279,285,286,287,290,295,296,307,308],mount:100,mountain:[108,111,200],mous:[114,137,328],move:[0,4,9,14,15,21,22,23,29,33,34,41,43,44,46,49,50,51,52,54,58,61,63,69,77,79,82,85,89,91,95,96,111,116,117,122,126,133,134,138,153,159,165,179,180,188,194,197,213,217,218,219,220,221,231,232,233,235,238,241,247,299,318,322,329],move_hook:247,move_obj:235,move_to:[0,85,89,121,197,213,247],movecommand:44,moved_obj:[233,235,247],moved_object:247,movement:[58,109,121,213,217,218,219,220,221,247],mover:221,mptt:4,mratio:[151,168],msdp:[55,83,272,291],msdp_list:272,msdp_report:272,msdp_send:272,msdp_unreport:272,msdp_var:291,msg:[0,2,5,10,11,13,22,25,27,28,29,30,33,38,40,41,42,44,46,50,51,52,53,56,58,59,60,62,71,73,80,82,84,85,86,88,89,91,95,96,105,111,112,114,116,118,119,121,123,127,129,137,138,141,144,146,154,156,160,164,170,173,175,176,177,189,197,199,210,234,242,247,278,279,306,315,322,324,328,329,337,341,344],msg_all:116,msg_all_sess:[33,154],msg_arriv:0,msg_content:[0,21,27,33,46,62,73,89,102,118,121,123,132,197,247],msg_help:166,msg_leav:0,msg_locat:[197,247],msg_other:179,msg_receiv:[197,247],msg_self:[197,247],msg_set:319,msgadmin:173,msglauncher2port:[267,276],msgmanag:[176,177],msgobj:[34,175],msgportal2serv:276,msgreturn:170,msgserver2port:276,msgstatu:[267,276],mssp:[55,104,141,142,262,275],mt1mywxzzsy5pxri:79,mt1mywxzzsy5pxrydwummte9mtk1jjeypxrydwubb:57,mtt:294,much:[0,4,10,11,13,14,15,20,22,23,25,26,29,37,38,39,41,42,49,51,56,59,61,62,63,64,67,69,73,76,79,80,82,89,90,91,93,94,96,109,111,113,115,116,119,120,121,125,127,132,133,134,138,148,153,158,167,180,184,185,206,215,221,224,232,307,321,322,323,330,344],muck:57,mud:[8,15,21,22,23,24,30,40,43,49,55,56,60,61,63,64,72,73,74,80,87,88,90,91,92,95,97,98,100,101,104,105,108,110,111,114,115,116,117,122,124,126,128,132,135,137,138,140,148,153,156,221,230,264,280,281,282,287,290,291,294,322,331],mudbyt:79,mudconnector:79,mudderi:79,muddev:63,mudform:327,mudinfo:34,mudlab:79,mudlet:[24,96,101,272,282],mudmast:24,mudramm:24,muhammad:343,mukluk:24,mul:250,mult:[109,250],multi:[10,22,31,38,43,51,55,61,95,96,100,104,105,119,122,123,151,169,206,215,308,328],multiaccount_mod:97,multidesc:[141,142,178],multilin:343,multimatch:[31,151,206,247,344],multimatch_str:[144,206,247,344],multimedia:137,multipl:[6,12,14,22,23,27,30,31,33,40,43,51,55,58,61,62,64,73,79,84,88,89,90,95,96,104,105,107,108,109,114,115,122,123,125,131,138,144,150,152,157,158,159,164,168,169,183,185,186,187,189,190,196,202,206,215,217,218,219,220,233,242,247,250,251,252,261,265,269,272,276,291,299,315,316,317,322,328,329,330,341,344],multiplay:[55,57,79],multipleobjectsreturn:[144,146,148,175,177,179,182,184,187,189,195,197,203,204,205,206,212,213,214,217,218,219,220,221,223,226,227,231,232,233,235,239,246,247,251,256,259,274,300,316,319,331,335],multipli:250,multisess:[2,41,69,328],multisession_mod:[24,33,64,105,123,133,144,156,160,181,189,247,308],multisession_modd:51,multitud:[57,111,114],multumatch:247,mundan:21,murri:344,mus3d1rmfizcy9osxiiita:122,muse:79,mush:[9,36,55,60,73,79,108,116,124,139,183,202,364],mushclient:[24,74,96,272,282],musher:79,mushman:108,musoapbox:[57,79],must:[0,1,2,4,5,8,10,11,15,24,25,29,31,33,37,38,40,43,48,49,50,51,56,58,61,62,63,64,65,67,71,72,74,76,80,81,83,84,85,87,89,90,93,95,96,97,100,103,104,109,110,112,113,114,115,116,117,119,123,125,127,128,131,133,135,136,137,140,146,151,152,154,159,164,169,170,174,175,176,179,182,183,184,186,197,201,203,205,206,210,215,217,218,219,220,221,226,227,230,232,233,239,241,247,250,251,257,261,267,272,285,287,290,307,309,310,315,316,317,318,321,322,323,324,325,326,327,328,329,331,336,338,339,340,341,343,344,345,362],must_be_default:153,mutabl:325,mute:[17,41,174,175],mutelist:[41,175],mutltidesc:202,mutual:317,mux2:129,mux:[20,21,33,34,41,45,55,58,103,108,139,141,142,149,167,168,183,240,364],mux_color_ansi_extra_map:183,mux_color_xterm256_extra_bg:183,mux_color_xterm256_extra_fg:183,mux_color_xterm256_extra_gbg:183,mux_color_xterm256_extra_gfg:183,muxaccountcommand:[167,199],muxaccountlookcommand:156,muxcommand:[5,25,28,29,30,33,44,53,58,119,123,141,142,149,155,156,157,158,159,164,165,166,168,169,171,174,182,185,186,187,193,199,200,202,203,212,214,219,220,233,247,326],mvattr:159,mxp:[24,55,74,114,141,142,262,272,275,287,290,321,328,343,344],mxp_pars:282,mxp_re:321,mxp_sub:321,my_callback:309,my_datastor:86,my_funct:29,my_github_password:131,my_github_usernam:131,my_identsystem:87,my_number_handl:51,my_object:29,my_port:40,my_portal_plugin:40,my_script:102,my_server_plugin:40,my_servic:40,my_word_fil:205,myaccount:112,myapp:86,myarx:9,myattr:[11,144],myawesomegam:67,mybot:[43,164],mycallable1:51,mycar2:87,mychair:112,mychan:34,mychannel:[12,43,164],mycharact:81,mychargen:51,myclass:60,mycmd:[33,68],mycmdset:[5,31,33],mycommand1:31,mycommand2:31,mycommand3:31,mycommand:[30,31,33,83],mycompon:137,myconf:36,mycontrib:127,mycss:137,mycssdiv:137,mycustom_protocol:40,mycustomcli:40,mycustomview:135,mydatastor:86,mydhaccount:100,mydhaccountt:100,mydhacct:100,myevennia:72,myevilcmdset:[31,152],myevmenu:51,myfix:131,myfunc:[10,115,127,344],myfunct:51,mygam:[2,3,5,6,9,13,14,21,23,25,26,27,30,31,35,40,42,44,47,49,51,53,54,56,57,58,60,62,63,65,67,69,71,73,74,75,76,80,81,82,85,86,89,90,93,95,96,100,102,104,106,109,110,111,114,116,118,119,120,121,123,125,127,128,131,133,134,135,136,137,180,181,183,187,199,200,201,202,212,213,292,342,344],mygamedir:38,mygamegam:81,myglobaleconomi:102,mygotocal:51,mygrapevin:164,myhandl:107,myhdaccount:100,myhousetypeclass:[43,159],myinstanc:86,myircchan:[43,164],mykwarg:51,mylayout:137,mylink:38,mylist2:11,mylist:[6,11,97,318],mylog:27,mymap:200,mymenu:51,mymethod:56,mymodul:115,mymud:[8,106],mymudgam:90,mynam:100,mynestedlist:325,mynod:51,mynoinputcommand:33,mynpc:123,myobj1:112,myobj2:112,myobj:[11,27,80,102,261],myobject:[5,11],myobjectcommand:25,myothercmdset:31,myownfactori:40,myownprototyp:109,mypassw:186,mypath:127,myplugin:137,myproc:40,myproc_en:40,myprotfunc:109,myroom:[43,56,102,112,159],myros:89,myscript:[102,112,125],myscriptpath:102,myserv:186,myservic:40,mysess:105,mysql:[36,55,64,128,344],mysqlclient:23,mysteri:[75,87],mytag1:137,mytag2:137,mythic:122,mytick:261,mytickerhandl:261,mytickerpool:261,mytop:20,mytup1:11,mytup:11,myvar:33,myview:135,naccount:308,naiv:[175,235,239,318],nake:33,name1:[43,159],name2:[43,159],name:[0,2,3,4,5,6,9,10,11,13,14,15,19,20,22,23,24,25,29,31,33,34,36,38,40,41,42,44,46,47,49,51,52,53,54,55,56,57,58,59,60,61,62,64,65,66,67,68,69,71,72,73,74,75,76,79,80,81,82,83,84,85,86,87,89,90,91,93,95,96,100,102,103,104,105,106,107,109,110,111,112,113,114,116,117,119,121,123,125,126,127,128,130,131,132,133,134,135,136,137,138,139,140,141,142,144,146,148,150,151,152,153,154,156,157,159,164,165,166,167,168,169,170,171,174,175,176,177,180,181,182,184,186,188,192,194,195,198,201,203,204,205,206,212,215,219,220,231,233,234,235,238,239,240,246,247,251,252,256,257,259,261,267,270,272,273,274,276,277,279,284,287,290,291,294,295,296,299,306,308,312,315,316,317,318,319,321,322,323,324,326,327,328,329,334,335,336,337,338,340,341,343,344,345,349,357,362],namecolor:215,namedtupl:192,nameerror:[42,95],namelist:199,namesak:97,namespac:[69,125,137,195,234,252,322],napoleon:38,narg:[114,234],narr:221,narrow:91,nativ:[34,38,42,51,88,102,209,312,362],nattempt:51,nattribut:[11,43,51,116,125,159,252,306,316,318,324,328],nattributehandl:[306,316],natur:[11,15,27,55,79,88,112,146,330],natural_height:330,natural_kei:316,natural_width:330,navig:[9,48,49,51,106,111,128,133,134,221,362],naw:[24,52,141,142,262,275],nbsp:343,nchar:120,nclient:298,ncolumn:330,ncurs:141,ndb:[6,13,22,25,29,33,43,51,102,105,116,125,144,148,169,246,256,306,316,318,328],ndb_:[43,109,159,252],ndb_del:306,ndb_get:306,ndb_set:306,ndbholder:306,ndk:75,nearbi:[119,152,153,154,221],nearli:321,neat:[0,3,138,357],neatli:[108,344],necess:[40,95],necessari:[0,4,22,36,39,40,51,57,58,59,61,77,91,108,110,114,118,121,125,131,138,153,154,177,181,195,210,233,234,252,260,296,315,322,328,330,338,340,344],necessarili:[38,41,57,88,90,109,344],necessit:309,neck:[109,182],necklac:182,need:[1,2,3,4,5,6,8,9,10,11,13,14,15,19,20,21,22,23,25,26,27,28,29,30,31,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,49,50,51,54,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,79,80,81,82,83,84,85,86,87,88,89,90,91,93,94,95,96,97,98,100,102,103,104,105,106,109,110,111,112,113,114,115,116,117,118,119,121,122,123,124,125,126,127,128,130,131,133,134,135,136,137,138,140,144,146,148,152,154,156,159,164,165,167,170,174,175,179,180,186,187,189,193,194,195,196,200,203,204,205,206,215,217,218,219,220,221,227,231,232,233,234,235,241,242,246,247,251,252,259,267,269,271,272,276,284,291,296,298,306,307,308,312,315,316,318,321,322,324,328,329,330,331,336,338,339,341,344,362],need_gamedir:267,needl:203,neg:[62,126,152,326],negat:[114,119,242],negoti:[55,179,281,283,285,294,308],negotiate_s:283,neighbor:39,neither:[11,54,61,73,97,110,185,251,291,316,319,345],nenter:51,nest:[11,14,33,43,51,114,144,159,206,215,241,247,250,252,291,325,336],nested_mut:11,nested_r:159,nestl:111,net:[9,43,57,63,70,72,79,90,146,164,280,281,291,294,308],netrc:131,network:[40,43,53,55,64,65,70,71,72,79,90,103,113,139,146,164,278,279,284,305,308],neu:180,neutral:189,never:[12,14,26,27,31,33,51,54,56,60,61,62,64,80,86,88,91,95,96,104,114,115,118,119,121,125,127,131,133,144,194,205,206,220,221,231,242,247,306,325,336,344],nevertheless:[26,43,51,86,126,156,180],new_alias:154,new_arriv:233,new_channel:58,new_charact:231,new_coordin:235,new_datastor:86,new_goto:328,new_kei:[107,154,247],new_loc:[43,159],new_menu:180,new_nam:[43,107,159],new_name2:[43,159],new_obj:[80,247,252],new_obj_lockstr:159,new_object:[109,252],new_raw_str:151,new_room_lockstr:159,new_ros:89,new_script:102,new_typeclass:[144,318],new_typeclass_path:125,new_valu:84,newbi:[25,48,55,124,174],newcom:[96,117],newer:9,newindex:215,newli:[43,46,58,60,66,131,133,159,175,180,199,204,234,247,252,259,324],newlin:[33,43,137,166,322,330],newnam:[33,43,159,318],newpassword:[43,157],newstr:137,nexist:22,nexit:[120,127],next:[0,4,5,6,9,10,11,12,13,14,20,21,22,23,25,28,29,30,31,33,36,38,39,41,42,46,49,50,51,52,56,58,60,61,62,64,65,68,72,73,75,76,77,79,80,81,83,85,86,89,90,95,96,98,100,102,103,106,110,111,114,116,119,121,122,123,127,131,133,134,137,138,180,184,200,202,215,217,218,219,220,221,232,242,259,267,322,328,329,331,336,344,362],next_nod:51,next_turn:[217,218,219,220,221],nextrpi:79,nexu:45,nfkc:144,ng2:330,nginx:8,nice:[0,12,22,27,49,54,58,61,62,68,70,81,90,96,100,111,119,127,138,140,159,179,182,206,251],nicer:[20,60,96],niceti:[43,159],nick:[2,11,45,57,74,79,89,129,139,144,146,159,165,206,241,246,247,279,316,317,336,364],nick_typ:87,nickhandl:[11,87,316],nicklist:[146,164,279],nicknam:[43,87,89,129,131,165,206,246,247,279,316,317],nickreplac:316,nicktemplateinvalid:[316,336],nicktyp:[206,247],nifti:8,night:[58,61,132,138,187],nine:66,nineti:345,nit:[60,62],nline:337,nmrinwe1ztfhlmpwzyisindpzhroijoipd02mdaifv1dlcjhdwqiolsidxjuonnlcnzpy2u6aw1hz2uub3blcmf0aw9ucyjdfq:122,no_channel:[31,33,152,328],no_default:[125,144,318],no_exit:[31,33,116,152,224,230,328],no_gmcp:291,no_log:153,no_match:180,no_mccp:280,no_more_weapons_msg:232,no_msdp:291,no_mssp:281,no_mxp:282,no_naw:283,no_obj:[31,152,224,230,328],no_superuser_bypass:[144,175,242,247,318],no_tel:80,noansi:170,nobj:120,nocaptcha:133,nocaptcha_recaptcha:133,nocolor:[81,272,287,290,295,296],nodaemon:106,node1:[51,328],node2:[51,328],node3:[51,328],node:[13,85,109,188,201,215,230,249,265,328],node_abort:51,node_apply_diff:249,node_attack:51,node_background:51,node_betrayal_background:51,node_border_char:328,node_destin:249,node_enter_password:201,node_enter_usernam:201,node_examine_ent:249,node_exit:51,node_formatt:[51,188,328],node_four:51,node_game_index_field:265,node_game_index_start:265,node_hom:249,node_index:[249,328],node_kei:249,node_loc:249,node_login:51,node_matching_the_choic:51,node_mssp_start:265,node_mylist:51,node_on:51,node_parse_input:51,node_password:51,node_prototype_desc:249,node_prototype_kei:249,node_prototype_sav:249,node_prototype_spawn:249,node_quit_or_login:201,node_readus:51,node_select:51,node_set_nam:51,node_start:265,node_test:51,node_text:51,node_usernam:51,node_validate_prototyp:249,node_view_and_apply_set:265,node_view_sheet:51,node_violent_background:51,node_with_other_nam:328,nodefunc1:51,nodefunc2:51,nodefunc:328,nodekei:328,nodenam:[51,328],nodename_to_goto:51,nodestartfunc:51,nodetext:[51,188,249,328],nodetext_formatt:[51,188,249,328],noecho:[43,169],noerror:247,nofound_str:[144,206,247,344],nogoahead:289,nohom:324,nois:21,noisi:[90,264,269,277,287,290,312],noloc:[43,159],nomarkup:[74,81],nomatch:[22,168,180,326,336,344],nomatch_exit:22,nomatch_single_exit:22,nomigr:127,nomin:362,non:[4,6,14,15,20,22,27,29,31,33,38,43,44,49,50,52,55,58,61,62,63,64,65,68,70,74,82,86,88,102,105,109,110,114,122,124,125,126,131,137,139,140,144,146,148,150,152,159,169,175,177,185,195,204,212,214,215,232,238,246,247,251,252,256,257,258,259,260,261,267,276,290,291,305,306,308,316,318,321,324,325,326,328,330,336,341,344],nonc:295,nondatabas:[11,306,318],none:[0,1,2,10,11,13,14,15,22,25,30,31,33,34,39,40,41,42,43,44,49,50,51,56,58,60,62,64,69,74,77,80,81,83,84,85,86,87,88,91,96,102,105,111,112,114,116,118,119,121,123,144,145,146,150,151,152,153,154,156,159,160,161,162,163,166,167,168,170,173,174,175,176,177,179,180,181,182,185,187,188,189,192,194,195,197,198,201,203,204,205,206,212,214,215,217,218,219,220,221,224,230,231,232,233,234,235,237,238,241,242,244,246,247,249,250,251,252,254,257,258,259,261,264,265,267,269,273,276,277,278,279,286,287,295,296,306,307,308,310,311,312,315,316,317,318,319,321,322,323,324,325,326,327,328,329,330,331,334,336,337,339,340,341,344,345,349,352,357,362],nonpc:123,nonsens:205,noon:[20,60,73,76,80,96],nop:290,nopkeepal:[24,290],nor:[11,13,29,31,42,54,106,108,116,126,185,186,234,251,291,316,319],norecapcha:133,norecaptcha_secret_kei:133,norecaptcha_site_kei:133,norecaptchafield:133,normal:[2,3,5,6,9,10,11,13,14,15,19,20,21,23,25,27,29,30,31,33,34,38,43,44,46,49,51,55,56,57,58,60,62,64,66,68,69,72,74,75,76,80,81,82,83,85,86,87,88,90,93,96,97,100,102,104,105,109,110,111,112,113,114,116,119,121,122,123,125,126,127,128,134,135,137,138,140,144,146,148,150,151,152,153,154,156,159,166,169,174,175,179,184,185,197,217,218,219,220,221,231,234,235,246,247,249,252,259,261,267,276,279,280,281,283,285,299,306,308,314,316,317,318,321,322,325,328,329,334,336,341,343,344,346],normal_turn_end:116,normalize_usernam:144,north:[0,20,22,43,44,46,49,89,111,114,121,159,180,200,213,299],north_south:111,northeast:[20,43,159,235],northern:[22,111],northwest:159,not_don:312,not_error:267,not_found:159,notabl:[6,9,10,40,43,63,97,131,154,159,170,179,318,325,326,336,344],notat:[43,119,159,321,344],notdatabas:125,note:[0,1,2,4,5,6,9,11,12,13,19,20,21,23,24,25,27,29,41,42,43,48,49,57,58,59,60,61,62,63,64,69,70,73,74,75,76,80,83,85,86,88,89,90,93,94,95,96,100,102,103,105,106,107,109,110,113,114,115,116,117,119,121,123,124,125,126,128,130,131,133,134,135,136,137,141,144,146,151,152,153,154,156,159,160,161,165,166,167,169,170,171,174,175,176,179,181,182,183,184,185,186,187,189,194,195,197,198,200,201,202,203,204,205,206,212,213,215,217,218,219,220,221,224,226,227,233,234,235,241,242,246,247,251,252,259,261,264,267,272,276,277,279,280,284,285,286,287,290,291,292,294,295,298,300,301,306,308,312,313,316,317,318,319,321,322,323,324,325,326,327,328,329,330,331,334,336,337,339,340,341,342,344,350,364],notepad:63,notfound:344,notgm:58,noth:[0,10,11,14,20,22,27,29,33,34,42,56,57,60,62,83,85,89,95,108,111,115,116,127,144,159,168,215,217,220,221,231,235,247,259,279,318,328],nother:120,notic:[0,10,12,13,20,22,23,29,33,36,37,39,41,42,46,62,69,70,91,96,117,121,126,127,131,180,223,280,362],notif:[4,75,131,137,138,199],notifi:[43,98,164,217,218,219,220,221,233,251],notificationsconfig:4,notimplementederror:290,notion:[62,115,116],noun:[205,206],noun_postfix:205,noun_prefix:205,noun_transl:205,now:[0,2,3,5,6,9,10,11,12,14,20,21,22,23,25,27,28,29,31,33,36,39,41,46,48,49,51,55,56,57,58,60,61,62,63,64,65,67,69,71,72,73,75,76,77,79,80,81,82,83,85,86,89,90,91,95,96,97,98,100,102,103,105,106,108,109,110,111,114,115,117,118,119,121,123,125,126,127,128,131,133,134,135,136,137,138,140,153,179,184,188,195,197,215,226,235,242,247,279,287,308,340,342,344],nowher:[95,111],noxterm256:290,npc:[9,33,46,51,61,64,73,111,119,124,139,179,214,241,247,364],npcname:118,npcshop:85,nprot:120,nr_start:258,nroom:[22,120],nroom_desc:127,nrow:330,ntf:63,nuanc:114,nudg:[78,224,227,312],nuisanc:103,nulla:52,num:[49,80,206,247],num_lines_to_append:337,num_object:119,num_objects__gt:119,num_tag:119,number:[0,6,10,11,12,13,20,21,23,25,26,27,31,33,34,36,38,41,43,49,50,51,57,58,60,61,62,64,71,73,77,81,85,87,90,93,95,96,97,98,100,102,104,105,107,111,112,114,115,116,119,120,122,123,125,127,131,134,135,140,141,144,146,151,152,153,157,159,164,165,174,176,177,182,184,185,188,190,192,194,195,198,200,204,205,206,215,217,218,219,220,221,247,250,251,252,258,259,265,267,272,278,279,281,285,298,308,310,312,316,317,319,321,322,324,326,328,329,330,331,334,336,337,341,344,357],number_of_dummi:267,number_tweet_output:120,numbertweetoutput:120,numer:[61,73,97,190,321],numpi:300,o_o:138,obelisk:232,obfusc:[205,206],obfuscate_languag:[205,206],obfuscate_whisp:[205,206],obj1:[11,43,80,97,109,159,203,221],obj2:[11,43,80,97,109,127,159,203,221,322],obj3:[11,43,109,159],obj4:11,obj5:11,obj:[2,6,10,11,22,25,27,31,33,41,42,43,48,56,58,59,60,80,82,84,86,87,89,91,96,102,109,112,115,117,119,121,125,127,139,144,145,152,153,154,157,159,165,167,168,169,170,173,174,176,180,182,187,188,189,192,194,195,198,199,203,206,215,217,218,219,220,221,224,227,232,233,235,241,242,244,246,247,250,252,254,256,257,258,259,296,298,299,306,315,316,317,318,319,322,324,325,329,339,340,341,344],obj_desc:220,obj_detail:233,obj_kei:220,obj_prototyp:252,obj_to_chang:125,obj_typeclass:220,objattr:[232,241],objclass:[334,344],object1:33,object2:[33,179,247],object:[0,2,9,10,12,13,14,15,18,19,21,22,23,26,29,30,31,33,34,36,38,39,40,41,42,44,45,46,47,49,50,51,52,53,55,56,57,58,62,69,73,74,77,79,81,83,84,85,86,87,88,91,93,95,102,103,104,107,108,109,110,114,115,116,117,118,120,122,123,125,127,129,132,133,134,135,137,138,139,140,141,142,143,144,145,146,147,148,150,151,152,153,154,156,157,158,159,160,161,164,165,167,168,169,170,171,173,174,175,176,177,178,179,180,181,182,186,187,188,189,192,193,194,195,196,197,198,199,200,203,204,206,209,210,211,212,213,214,215,217,218,219,220,221,223,224,226,227,229,230,231,233,234,235,237,238,239,241,242,249,250,251,252,253,254,256,257,258,259,260,261,265,267,269,271,272,273,274,276,277,280,281,282,283,284,285,286,287,289,291,294,296,298,299,305,306,307,308,310,311,312,315,316,317,318,319,321,322,323,324,325,326,327,328,329,330,334,335,336,338,339,340,341,342,343,344,345,349,351,357,360,362,364],object_confirm_delet:362,object_detail:362,object_from_modul:344,object_id:134,object_search:134,object_subscription_set:246,object_tot:317,object_typeclass:[342,360],objectattributeinlin:244,objectcr:357,objectcreateform:244,objectcreateview:362,objectdb:[11,53,59,96,112,119,120,125,133,141,244,246,247,252,314,315,316,324,329,341],objectdb_db_attribut:244,objectdb_db_tag:[244,315],objectdb_set:[148,316,319],objectdbadmin:244,objectdbmanag:[245,246],objectdeleteview:362,objectdetailview:362,objectdoesnotexist:[148,177,239,246,256,274,316,319,335],objecteditform:244,objectform:357,objectmanag:[245,247,317],objectnam:[6,58],objects_objectdb:86,objectsessionhandl:[2,247],objecttaginlin:244,objectupd:357,objectupdateview:362,objid:80,objlist:[109,250],objlocattr:[232,241],objmanip:[43,159],objmanipcommand:159,objnam:[27,43,125,159],objparam:252,objs2:112,objsparam:252,objtag:241,objtyp:176,obnoxi:269,obs:318,obscur:[48,72,82,205,206],observ:[13,14,20,43,81,88,159,165,187,206,223,227,233,291,322,344],obtain:[0,33,39,63,77,90,91,93,100,180,232],obviou:[0,59,61,103,121,128,138,190,362],obvious:[0,4,14,49,55,105,108,121,319],occaecat:52,occas:128,occasion:[90,119],occation:330,occur:[9,10,25,33,42,57,60,102,137,168,175,204,219,234,242,247,299,328,337],occurr:[46,91,123,321],ocean:[90,122],ocw:124,odd:[22,49,61,103,126],odor:58,off:[0,11,14,20,23,24,29,31,33,36,40,41,43,49,50,51,55,61,64,66,74,80,81,86,88,90,100,103,107,108,110,114,115,122,123,126,135,138,139,144,154,164,169,170,174,175,182,188,200,201,206,227,231,233,242,247,272,280,287,290,306,318,321,322,324,326,328,329,330,336,337,345],off_bal:29,offend:12,offer:[1,4,11,14,22,26,28,31,33,34,37,39,40,43,44,50,51,55,56,57,59,62,64,72,73,74,76,83,86,87,89,90,91,96,102,106,108,109,111,114,115,116,123,124,127,128,129,131,132,137,138,152,153,158,159,169,179,180,187,205,233,249,257,308,326,328],offernam:179,offici:[38,72,100,103,127,131,337],officia:52,offlin:[9,15,79,90,109,158,175,322],offscreen:9,offset:[206,326,337],often:[2,5,10,11,15,22,26,28,31,33,40,41,42,43,46,48,49,51,57,59,61,62,64,76,86,88,90,91,93,95,96,97,102,103,104,105,112,114,115,116,119,128,131,146,152,157,167,168,169,175,180,215,217,218,219,220,221,224,226,242,246,256,258,267,272,286,306,316,318,322,324,330,337],ohloh:37,okai:[41,42,48,49,51,58,75,77,111,123,128,198],olc:[43,47,159,249,252],olcmenu:249,old:[0,1,5,9,21,25,27,31,38,39,43,50,51,55,56,58,60,63,80,81,85,88,90,105,106,111,114,122,123,125,126,128,138,144,152,153,156,159,174,179,197,206,242,247,252,276,317,318,321,324,363],old_default_set:127,old_kei:[107,247],old_nam:107,older:[2,9,24,55,63,64,79,105,159],oldnam:318,oliv:114,omiss:60,omit:[91,100,109],ommand:150,on_:180,on_bad_request:269,on_ent:[22,180],on_leav:[22,180],on_nomatch:[22,180],onbeforeunload:[83,137],onbuild:100,onc:[0,2,5,6,9,10,13,16,21,22,23,25,33,34,37,38,39,40,41,42,43,46,47,49,51,55,57,58,60,61,62,63,64,67,72,79,80,83,85,89,90,93,95,96,97,100,102,105,108,114,116,119,121,122,125,126,128,131,133,137,144,146,151,154,159,164,167,168,170,175,179,180,188,189,195,199,200,201,203,205,212,215,217,218,219,220,221,223,227,231,232,233,234,235,247,251,256,259,272,277,290,294,305,321,328,329,337,342,344],onclos:[40,278,295],onconnectionclos:[83,137],oncustomfunc:83,ond:319,ondefault:83,one:[0,1,2,3,4,5,9,10,11,12,13,14,15,16,19,20,21,22,23,25,26,27,28,29,31,33,34,35,36,37,38,41,42,43,44,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,67,68,69,70,72,73,74,76,77,79,80,81,82,83,85,86,87,88,89,90,91,92,93,95,96,97,98,100,102,103,104,105,106,108,109,111,112,113,114,115,116,118,119,121,122,123,125,126,127,128,131,132,133,134,135,136,137,138,140,143,144,148,151,152,153,154,156,157,159,165,168,170,174,175,176,177,179,180,182,185,187,189,195,198,199,200,204,205,206,214,215,217,218,219,220,221,224,227,230,232,233,234,235,238,239,241,242,244,246,247,249,250,251,252,256,260,261,267,269,271,272,277,278,279,287,290,291,306,307,308,312,314,316,317,318,321,322,324,325,326,327,328,329,330,331,334,335,336,337,339,340,341,342,344,345,357,360,362],ones:[4,9,14,20,22,27,31,33,57,58,65,72,74,80,81,83,90,95,100,103,109,114,116,126,127,135,152,153,154,177,180,195,197,217,218,219,220,221,241,251,252,271,276,308,321,330,338],onewai:[43,159],ongo:[28,91,116,179,213],ongotopt:[83,137],onkeydown:[83,137],onli:[0,2,4,5,6,9,10,11,12,13,14,15,19,20,21,22,24,25,26,27,28,29,31,33,34,37,39,40,41,42,43,44,46,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,67,68,69,71,72,73,74,77,79,80,81,82,83,85,86,87,88,89,90,91,93,94,95,96,100,102,103,104,105,106,107,109,111,112,114,116,117,118,119,121,122,123,124,125,126,127,130,131,132,133,134,135,136,137,138,140,141,144,145,146,150,151,152,153,154,156,157,158,159,164,165,166,167,168,169,170,175,176,177,179,180,181,182,185,187,188,190,195,197,199,205,206,214,215,217,218,219,220,221,223,226,227,232,233,234,235,239,241,242,247,250,251,252,256,258,259,261,267,271,272,279,282,284,285,287,290,299,305,306,308,310,311,312,315,316,317,318,319,321,322,323,324,326,328,329,330,334,336,337,339,340,341,342,344,357,362],onlin:[7,12,15,21,37,41,43,55,57,58,60,61,64,65,68,69,70,71,73,77,79,89,96,98,101,104,108,116,123,128,129,139,141,156,164,175,180,188,281,322,364],onloggedin:[83,137],onlook:247,only_tim:341,only_valid:252,onmessag:[40,278,295],onopen:[40,278,295],onoptionsui:137,onprompt:[83,137],onsend:[83,137],onset:[5,11],onsil:83,ontabcr:137,ontext:[83,137],onto:[25,31,33,44,55,60,61,72,90,95,121,137,153,224,233,246,279,325,328],onunknowncmd:137,onward:107,oob:[24,30,33,45,83,104,137,138,139,144,146,166,189,247,272,290,291,295,296,308,328,364],oobfunc:104,oobhandl:334,oobobject:102,ooc:[2,53,58,102,105,114,123,144,148,156,159,160,164,167,177,181,199,247],ooccmdsetchargen:181,ooclook:[105,181,329],opaqu:[15,103],open:[0,3,4,5,9,20,22,23,26,31,34,37,38,42,46,50,55,57,58,60,63,64,65,67,69,70,71,72,73,75,79,80,90,95,96,103,105,106,111,114,116,123,130,131,133,134,138,159,166,169,179,180,188,212,213,221,224,226,227,232,241,310,316,324,337,363],open_lid:226,open_parent_menu:180,open_submenu:[22,180],open_wal:232,openhatch:79,openlidst:227,openlock:241,opensoci:70,opensourc:321,oper:[9,11,12,14,22,27,33,41,42,43,46,51,57,59,60,61,63,64,67,72,74,80,82,88,89,90,95,96,97,102,109,110,112,115,119,124,126,131,137,139,144,150,152,154,156,159,164,169,175,180,185,206,227,232,242,247,250,252,261,264,267,276,277,281,283,287,289,290,296,298,299,306,307,317,318,321,324,328,329,330,334,344,364],opinion:[1,48],oppon:[11,73,218,220,231],opportun:[0,4,22,91,133,221],oppos:[27,89,103,110,114,306,319],opposit:[41,43,58,111,121,159,224],opt:[58,137,234],optim:[23,27,33,34,39,56,64,86,93,115,119,154,251,252,302,305,316,329],option100:51,option10:51,option11:51,option12:51,option13:51,option14:51,option1:51,option2:51,option3:51,option4:51,option5:51,option6:51,option7:51,option8:51,option9:51,option:[2,4,7,8,10,11,17,20,23,24,25,27,29,31,33,34,36,38,41,42,47,50,54,55,57,62,63,64,74,76,79,80,81,83,85,86,88,96,100,102,104,106,108,109,111,112,113,114,116,117,123,127,129,133,134,135,137,138,139,141,144,145,146,150,151,152,153,154,156,157,159,164,167,168,170,173,174,175,176,177,179,180,181,182,184,185,187,188,189,190,192,194,195,197,199,200,203,204,205,206,214,215,219,221,230,233,234,235,237,238,241,242,244,246,247,249,251,252,254,256,257,258,259,260,261,263,264,265,267,269,272,273,276,277,280,281,282,283,284,285,286,287,289,290,291,294,295,296,298,299,306,308,310,315,316,317,318,319,321,322,323,324,326,327,328,329,330,331,334,336,337,338,339,340,341,343,344,345,349],option_class:[141,323],option_dict:328,option_gener:328,option_kei:345,option_str:234,option_typ:339,option_valu:339,optiona:[144,264,318],optionalposit:1,optionclass:[141,142,320,323],optioncontain:323,optionhandl:[141,142,320,338],optionlist:[51,230,249,328],options2:137,options_dict:339,options_formatt:[51,188,230,249,328],optionsl:251,optionslist:230,optionstext:[51,188,328],optlist:215,optlist_to_menuopt:215,optuon:205,oracl:[23,344],orang:[114,203,234],orc:[57,61,109,117],orc_shaman:109,orchestr:100,order:[0,2,5,6,9,10,11,13,14,22,27,31,33,36,37,39,43,44,49,50,51,58,60,61,62,63,64,68,69,70,71,80,84,87,89,93,100,102,104,109,111,113,114,116,119,121,122,123,126,127,128,131,133,134,136,137,138,144,150,153,154,160,165,166,169,170,173,179,180,181,182,183,185,188,203,204,206,217,218,219,220,221,227,231,232,233,234,237,241,242,244,247,252,254,263,278,290,295,299,306,316,318,321,322,328,329,330,337,341,344,362],order_bi:119,order_clothes_list:182,ordered_clothes_list:182,ordered_permutation_regex:206,ordered_plugin:83,ordereddi:11,ordereddict:[11,344],ordin:321,org:[11,37,38,57,64,90,96,116,204,234,283,289,295,321,344,357],organ:[5,6,9,22,69,73,80,89,102,108,111,112,119,124,129,131,132,154,170],organiz:102,orient:[55,57,64,96,124],origin:[0,4,9,21,25,29,41,43,49,51,55,57,60,75,76,79,81,89,91,96,102,103,105,106,119,131,136,138,146,152,159,180,197,199,205,206,234,247,251,252,276,318,321,328,336,340,343,363],orioem2r:133,oscar:[175,239,318],osnam:344,oss:106,ostr:[144,176,238,341],osx:[63,131],other:[0,1,2,4,5,6,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,25,27,28,29,31,34,36,37,38,39,40,41,43,44,46,47,48,49,50,51,53,55,57,58,59,60,61,62,63,64,65,68,69,70,71,73,74,76,80,81,82,83,85,86,87,88,89,91,95,96,97,100,102,103,105,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,123,124,125,126,127,128,131,133,134,135,136,137,138,139,140,144,150,151,152,153,154,159,165,166,167,170,171,176,179,182,184,186,188,194,197,199,205,206,210,212,215,217,218,219,220,221,224,227,233,234,235,239,242,246,247,251,252,257,259,261,265,271,272,276,278,279,285,287,290,299,306,307,309,316,318,320,321,322,324,326,327,328,329,330,336,338,339,341,344,345,362],otherroom:212,otherwis:[0,4,11,15,23,25,27,29,31,33,37,39,41,42,43,51,59,62,68,69,76,78,83,86,89,90,91,95,97,100,102,103,105,109,114,121,123,131,135,141,151,152,156,159,175,179,183,187,188,192,195,206,217,218,219,220,221,235,242,247,250,251,252,259,267,278,279,287,306,310,311,315,321,328,329,336,337,341,342,344,362],our:[2,3,4,8,9,11,14,16,20,21,23,25,26,30,31,33,36,37,38,39,40,41,42,43,44,46,49,55,57,58,59,60,61,62,63,64,67,70,72,73,75,77,78,79,80,81,82,83,85,88,90,91,98,100,101,103,111,115,116,117,119,123,124,127,128,129,131,132,134,135,136,137,138,140,148,153,167,168,187,200,215,231,232,235,242,257,312,315,337,363],ourself:123,ourselv:[0,20,58,80,87,118,132,138,144,181,280,281,283,294],out:[0,1,3,6,8,9,10,12,13,14,15,16,17,19,20,21,22,23,26,28,29,33,34,37,38,39,41,42,43,44,45,46,47,48,49,51,53,54,55,56,57,59,60,61,62,63,64,66,69,70,71,77,79,80,86,88,89,90,91,93,95,96,97,100,102,104,105,108,109,111,114,116,117,118,119,121,122,123,126,127,129,131,133,135,137,138,139,143,144,151,152,156,158,159,179,181,184,186,188,199,205,206,209,210,212,213,217,218,219,220,221,227,230,232,241,251,252,259,267,269,291,295,296,298,307,308,315,316,325,327,328,330,336,343,344,357],out_templ:[316,336],outcom:[38,73,86,152,185,242,247,251],outdat:8,outdata:[40,308],outdoor:[112,119,122,132,233],outer:330,outermost:[11,29,74],outerwear:182,outfunc_nam:40,outgo:[67,88,90,96,105,146,197,247,279,291,307,344],outgoing_port:90,outlet:90,outlin:[36,43,111,133,278],outmessag:247,output:[4,14,20,22,26,27,34,40,43,51,52,58,74,79,88,91,95,96,100,105,106,108,110,111,113,114,116,120,121,123,126,128,129,135,137,138,141,142,154,159,166,169,170,178,180,184,189,207,208,210,217,218,219,220,221,251,267,272,287,291,299,306,321,328,329,337,340,344],outputcmd:291,outputcommand:[74,83],outputfunc:[40,59,83,247,272,278],outputfunc_nam:[40,272],outputfunct:83,outrank:317,outright:[12,90,363],outro:[122,233],outroroom:233,outsid:[0,13,15,20,21,38,39,57,64,67,73,88,96,100,104,108,109,110,112,121,134,204,220,231,241,291,306,307,316,319,330],outtempl:[316,336],outtxt:27,outward:[49,90],over:[1,6,8,11,13,14,15,16,17,27,28,31,33,34,36,37,38,39,40,43,45,48,49,51,54,57,58,59,60,61,73,77,81,83,85,88,90,93,94,96,97,100,103,105,108,111,112,113,114,115,116,118,119,125,126,127,128,129,133,136,137,138,144,153,164,174,176,188,200,212,215,217,218,219,220,221,227,233,261,271,285,287,290,292,296,298,300,313,318,322,329,334,340,344,362,363],overal:[10,56,57,68,71,86,90,152,167,168,218],overcom:111,overhead:[23,27,34,113,132,206,235,316],overhear:205,overlap:[31,62,205,321,330],overload:[5,22,30,31,33,40,44,47,51,55,57,60,74,76,89,96,97,104,114,115,117,123,136,144,152,154,168,175,180,181,187,189,203,206,212,213,217,218,219,220,221,230,231,232,233,234,247,252,261,271,290,307,326,328,329,330,338],overrid:[1,3,4,9,20,21,22,25,31,36,43,51,53,54,68,69,80,83,91,96,102,105,107,109,117,118,121,135,136,137,144,154,159,166,170,175,176,180,187,195,197,205,219,221,233,234,242,247,252,259,290,308,312,315,328,329,334,337,338,341,362],overridden:[4,40,96,136,138,144,159,180,234,329,362],override_set:107,overriden:[144,166,206],overrod:16,overrul:[2,80,144,153,206,247,330],overseen:73,overshadow:61,overshoot:344,oversight:57,overview:[15,16,18,23,45,46,57,68,77,96,103,139,364],overwhelm:[46,61],overwrit:[5,43,76,136,138,159,166,285,317,362],overwritten:[33,134,233,319],owasp:357,own:[1,3,4,5,6,8,9,10,11,13,17,19,20,21,22,25,26,27,29,30,31,34,37,38,41,43,45,47,51,55,57,61,62,63,64,67,68,71,72,75,76,77,78,80,81,83,85,86,87,88,91,93,95,96,98,101,102,103,104,105,107,108,109,111,112,114,119,121,122,123,124,125,127,128,129,131,132,133,134,135,136,138,139,148,150,151,152,153,159,164,167,182,184,187,188,199,201,205,206,210,217,218,219,220,221,232,234,235,241,242,247,252,272,299,307,318,321,322,323,329,330,334,337,338,342,344,362,364],owner:[4,19,80,85,144,242,338],owner_object:80,ownership:[90,100],p_id:133,pace:[122,231],pack:[83,276],packag:[8,9,23,41,47,63,64,72,75,78,88,90,93,96,97,100,108,127,128,135,141,143,149,155,172,178,229,236,240,243,253,262,267,276,291,295,314,320,346],package_nam:64,packagenam:64,packed_data:276,packeddict:[97,318],packedlist:[97,318],packet:[83,287],pad:[17,114,321,330,336,344],pad_bottom:330,pad_char:330,pad_left:330,pad_right:330,pad_top:330,pad_width:330,page:[7,8,9,12,13,14,16,17,20,21,23,25,26,28,31,33,36,37,38,40,45,48,51,52,55,57,58,59,60,61,64,67,70,72,73,75,76,77,79,80,81,88,89,90,94,96,99,100,101,103,104,106,108,110,124,125,126,127,129,130,131,133,134,137,138,139,164,165,175,239,241,244,251,254,296,315,318,328,329,344,346,355,362,363,364],page_back:329,page_ban:164,page_end:329,page_formatt:[251,329],page_next:329,page_quit:329,page_titl:362,page_top:329,pagelock:241,pageno:[251,329],pager:[52,139,329],pages:[51,328],pagin:[251,329],paginag:329,paginate_bi:362,paginated_db_queri:251,paginator_django:329,paginator_index:329,paginator_slic:329,pai:[56,70,85,90,103,232,241],paid:90,pain:[90,138],painstakingli:13,pair:[31,83,116,137,138,144,152,182,241,247,306,308,357,362],pal:87,palett:126,pallet:111,palm:188,palobject:70,pane:[43,88,137,138,171,186,230],panel:[67,106],panic:109,paper:[61,79,116],paperback:73,par:23,paradigm:[9,61,118,218],paragraph:[14,27,38,202,322,330,344],parallel:[57,62,69,317],paralyz:219,param:[67,159,247,259,261,269,279,312,337,345],paramat:[144,154,247,306],paramet:[0,22,24,31,36,39,42,46,49,62,91,100,106,119,127,141,144,145,146,150,151,152,153,154,159,166,173,174,175,176,177,179,180,182,184,185,187,188,189,190,192,193,194,195,197,198,199,200,204,205,206,209,210,212,215,217,218,219,220,221,226,230,233,234,235,238,242,244,246,247,249,251,252,254,257,258,259,260,261,264,265,266,267,269,271,272,273,274,276,277,278,279,280,281,282,283,284,285,286,287,289,290,291,292,294,295,296,298,304,305,306,307,308,310,311,312,316,317,318,319,321,322,323,324,325,326,327,328,329,330,331,334,336,337,338,339,341,342,343,344,345,349],paramount:127,paramt:345,paremt:252,parent1:109,parent2:109,parent:[2,6,22,25,27,31,33,38,40,43,44,60,64,81,89,96,109,114,118,121,123,125,140,148,156,159,167,169,180,197,206,215,234,241,246,247,251,252,256,317,318,326,335,337,344,362],parent_categori:215,parent_kei:[22,180],parent_model:[145,173,237,244,254,315],parentesi:336,parenthes:95,parentlock:241,pari:[79,90],pariatur:52,paricular:33,park:180,parlanc:3,parri:[116,232],parrot:118,pars:[3,15,31,33,38,40,43,50,51,63,81,83,88,97,104,108,109,114,123,124,129,134,139,149,150,151,154,159,165,166,167,168,169,170,174,179,180,185,186,187,199,206,209,210,211,215,232,233,234,242,247,250,251,252,272,279,282,291,295,296,316,321,322,326,327,328,336,343,344,364],parse_ansi:321,parse_ansi_to_irc:279,parse_fil:322,parse_html:343,parse_inlinefunc:336,parse_input:328,parse_irc_to_ansi:279,parse_languag:206,parse_menu_templ:[51,328],parse_nick_templ:[316,336],parse_opt:215,parse_sdescs_and_recog:206,parseabl:251,parsed_str:279,parseerror:234,parser:[33,41,47,79,104,108,109,134,150,151,156,159,167,168,174,186,187,203,205,206,232,233,234,250,251,286,321,336,343],parsestack:336,part1:203,part2:203,part:[1,4,5,9,11,13,14,15,16,20,22,23,26,29,33,36,37,38,39,40,41,42,44,45,46,48,49,51,57,58,60,61,68,69,70,73,76,80,85,86,88,90,91,92,94,95,102,105,106,111,114,116,117,119,122,123,124,125,127,131,135,136,137,138,139,140,151,152,154,167,168,170,175,179,180,185,203,206,215,220,233,238,241,242,250,251,267,271,296,307,310,312,317,321,322,326,328,336,344,364],part_a:179,part_b:179,parth:292,parti:[8,9,13,23,27,37,42,64,72,75,90,101,114,128,134,177,179,185],partial:[25,68,94,205,251,269,282,308,339,341,344,345],particip:[41,103,217,218,219,220,221],particular:[5,8,12,13,14,20,22,28,31,38,40,41,43,44,48,58,59,64,68,70,72,74,75,79,80,83,85,88,89,93,96,97,104,105,107,112,113,114,118,119,121,124,125,131,132,135,139,144,151,152,159,176,187,210,219,220,227,238,241,242,247,256,308,310,318,334,341,362],particularli:[0,4,12,38,39,51,55,127,154,167,170,206,252,271],partit:321,partli:[11,31,47,86,129,152],party_oth:179,pass:[4,10,21,23,25,27,28,29,30,33,36,40,43,49,51,52,62,69,74,80,82,83,85,88,90,91,95,96,100,102,105,107,109,110,111,115,117,119,121,125,127,130,134,138,139,144,146,152,171,182,184,185,188,189,194,200,209,210,212,215,217,218,219,220,221,232,241,242,247,251,257,261,265,277,285,287,290,295,296,306,312,316,318,327,328,329,330,336,337,338,339,340,343,344,362],passag:[83,116,182,232,233,331],passant:126,passavataridterminalrealm:287,passiv:[29,116,133],passthrough:[1,31,259],password1:[145,357],password2:[145,357],password:[4,9,12,23,35,36,51,64,74,80,103,131,139,144,145,156,157,171,186,201,204,210,272,287,290,311,324,349,357],password_chang:360,passwordresettest:360,past:[0,13,20,26,37,46,50,58,62,69,96,104,108,111,116,123,133,137,219,313,322,331,362],pastebin:37,patch:[125,342],path:[0,2,4,8,14,20,21,22,27,29,38,39,40,43,45,48,51,59,60,63,64,66,67,69,74,80,85,86,88,89,90,95,96,100,102,105,106,109,114,117,118,119,121,123,124,125,134,135,136,138,139,144,146,148,151,152,153,158,159,160,161,162,163,164,169,175,177,179,180,181,182,184,185,187,189,195,197,198,200,201,203,204,205,206,212,213,214,217,218,219,220,221,223,224,226,227,230,231,232,233,235,239,246,247,251,252,256,258,259,261,267,274,276,285,292,298,300,304,308,312,316,317,318,322,324,326,327,328,329,331,334,335,341,344,362],path_or_typeclass:198,pathnam:342,patient:[20,70],patreon:70,patrol:231,patrolling_pac:231,patron:[37,70],pattern:[3,4,16,51,69,87,127,133,134,135,140,157,206,311,344],paul:125,paus:[10,39,46,51,100,102,110,116,194,259],pausabl:344,pauseproduc:269,paxboard:79,payload:[278,295],paypal:[37,70],pdb:[139,141],pdbref:[80,241],pdf:79,peac:117,peek:[20,26,51,91],peer:[278,295],peform:272,peg:103,pem:67,pemit:[43,108,157],penalti:[86,219],pend:312,pennmush:[57,108,129],pentagon:103,peopl:[2,20,21,26,37,43,54,55,58,61,64,68,71,72,73,79,80,81,85,90,95,96,97,103,108,114,116,119,139,165,186,206,232,233,315,324],pep8:26,per:[2,4,11,19,33,38,41,47,51,58,60,62,64,69,83,86,89,93,100,105,109,112,116,119,123,138,144,175,187,205,217,218,219,220,221,231,251,280,281,283,291,294,310,328,329,330,334,337,338],perceiv:62,percent:33,percentag:[116,317],perception_method_test:303,perfect:[50,55,61,75,100,131],perfectli:[4,69,96,112,129,138,321],perform:[11,13,14,22,23,25,39,41,42,43,51,52,55,59,71,74,75,80,89,91,93,97,102,103,114,116,117,123,133,134,150,152,156,159,164,175,180,182,188,194,195,206,209,215,217,218,219,220,221,227,247,250,256,257,276,290,298,299,316,317,318,325,328,329,336,338,341,344,345,357],perhap:[16,22,42,46,62,69,77,91,94,97,108,138],period:[90,95,96,100,103,127,128,130,344],perist:[34,125],perm:[4,11,12,19,22,25,33,58,68,71,80,85,109,112,123,133,148,157,158,159,164,165,166,169,187,193,203,212,233,239,241,242,246,247,256,316,318],perm_abov:[80,241],perm_us:157,perman:[4,5,12,21,24,25,31,43,51,85,90,96,122,123,138,144,152,153,156,159,164,165,169,197,205,247,260,318],permiss:[2,4,7,8,9,11,12,18,20,21,23,25,31,41,43,45,66,68,70,71,75,93,108,109,123,133,139,144,145,147,148,152,154,156,157,158,159,165,167,168,175,193,197,206,221,239,241,242,246,247,251,252,256,316,317,318,319,322,324,337,341,362,364],permission_account_default:[80,298],permission_func_modul:241,permission_guest_default:66,permission_hierarchi:[19,80,241,242],permissionerror:251,permissionhandl:[133,319],permissionshandl:315,permit:[41,78,159,311],permstr:[80,144,318,324],permut:206,perpetu:93,persis:29,persist:[0,6,21,22,27,31,33,34,43,51,55,56,57,60,64,79,84,86,89,102,104,105,109,110,115,116,121,123,125,144,148,159,169,175,176,177,180,184,188,195,205,206,213,215,217,218,219,220,221,227,230,232,239,246,247,249,250,251,256,257,258,259,260,261,272,273,274,305,306,314,318,324,326,328,330,331,344],person:[12,21,43,61,63,70,73,90,102,105,118,129,139,144,159,165,179,185,206,226],persona:96,perspect:[73,76,77,105],pertain:[103,126,136,350],pertin:[68,133],perus:137,peski:85,pester:[57,61],phase:[49,61],philosophi:80,phone:[16,64,75,139,204],phone_gener:204,phonem:205,php:[64,108,357],phrase:[46,198],phrase_ev:198,physic:[2,49,220,231],pick:[6,9,13,15,20,21,31,33,35,37,39,43,51,55,62,68,72,73,80,85,90,95,96,100,102,104,106,111,119,132,151,156,159,165,167,168,174,182,190,197,206,221,224,232,233,247,251,299],pickl:[11,29,83,115,257,261,264,274,276,277,316,317,325,326,328,340],pickle_protocol:340,pickledfield:340,pickledformfield:[315,340],pickledobject:340,pickledobjectfield:340,pickledwidget:340,picklefield:[141,142,315,320],pickpocket:[43,166],pickup:[197,221,247],pictur:[21,40,57,106,138],pid:[36,80,100,110,131,133,241,247,267,277,344],piddir:36,pidfil:267,piec:[10,13,59,61,64,93,122,203,294,322,329],pierc:232,piggyback:144,pile:[153,322],pillow:75,ping:[146,164,267,279],pink:119,pip:[9,23,26,38,42,47,59,63,65,71,75,93,96,97,98,100,127,128,130,133,141],pipe:[105,279,325],pitfal:[14,26,114,126],pixel:24,pizza:[148,177,239,246,256,316,318,319],pkg:75,pki:8,place:[0,2,3,4,5,8,9,11,14,15,20,21,25,26,30,37,38,41,43,46,49,51,55,62,63,64,69,71,73,75,76,80,83,89,90,91,95,96,100,102,103,104,105,109,111,121,123,124,126,128,129,131,132,133,135,136,138,144,157,159,165,179,180,182,184,188,197,203,206,209,217,218,219,220,221,232,233,235,247,259,276,285,290,306,307,308,322,323,325,328,344],placehold:[134,242,247,330],plai:[0,2,11,14,19,22,29,39,46,55,58,61,64,68,73,75,81,83,90,91,95,105,111,114,116,121,122,123,124,132,133,138,144,217,221,291,308,324],plain:[13,14,38,58,86,88,123,179,180,202,252,272,298,325,362],plaintext:210,plan:[9,14,15,40,41,42,45,55,56,90,94,96,100,124,125,127,139,322,364],plane:121,planet:[62,79],plant:234,plate:[82,125,204],platform:[9,16,56,63,90,102,106,131],playabl:[133,360],player:[9,10,11,12,19,20,21,22,25,29,31,34,40,41,43,51,53,54,55,58,60,61,64,65,68,71,73,77,80,81,83,85,90,91,93,95,97,98,105,108,110,111,112,113,116,117,118,119,120,121,122,123,124,133,138,139,153,156,159,164,169,176,179,180,188,190,198,199,200,203,205,206,210,214,215,220,221,233,234,235,238,256,281,290,307,322,327,344,357,362],playernam:71,playerornpc:9,pleas:[4,5,8,16,17,26,31,37,43,51,63,70,71,72,75,78,90,93,94,109,111,114,117,118,120,124,125,127,131,133,169,269,298,334,340,357,363],pleasur:16,plenti:[14,55,60,129],plot:300,plu:[22,27,43,64,73,106,169],pluck:33,plug:[96,103,107,136,235],plugin:[4,40,45,47,53,55,72,79,83,104,108,138,206,265,364],plugin_handl:[83,137],plugin_manag:137,plural:[19,58,80,220,247],png:[70,92,101,136],po1x1jbkiv:37,pobject:226,pocoo:344,point:[0,2,4,5,8,13,14,15,20,21,22,25,27,29,31,33,34,36,37,38,39,42,43,49,51,55,56,60,61,62,63,67,69,73,75,81,83,85,86,88,89,90,91,93,95,97,100,102,104,105,106,112,113,115,116,121,123,125,127,130,131,133,134,135,136,138,139,144,150,154,159,167,168,169,179,189,197,200,206,212,217,233,234,235,247,249,251,261,267,271,285,287,295,306,308,315,316,318,322,328,336,344,362],pointer:[26,49,56,91],pointless:[6,10,89,115],poison:[219,252],poke:119,pole:203,polici:[43,45,90,94,103,139,210,239,311,316],polit:103,poll:[40,136,156,231,267,296],pong:279,pool:[23,31,115,261,312,325],poor:[48,58],poorli:103,pop:[10,23,25,38,48,58,85,106,138],popen:277,popul:[22,23,36,41,57,61,62,81,124,135,138,152,160,161,162,163,180,182,187,203,206,214,217,218,219,220,221,224,230,231,232,233,260,261,315,322,326,327,329,336],popular:[9,57,64,79,103,108,362],popup:[137,138],port:[0,8,9,23,36,43,54,55,63,67,72,94,100,101,110,146,164,276,279,287,299,308,312],portal:[40,43,45,47,53,79,88,89,90,93,94,103,104,106,110,121,128,137,139,141,142,146,169,183,262,264,267,305,306,307,308,331,337,344,364],portal_connect:308,portal_disconnect:308,portal_disconnect_al:308,portal_l:277,portal_pid:[277,344],portal_receive_adminserver2port:277,portal_receive_launcher2port:277,portal_receive_server2port:277,portal_receive_statu:277,portal_reset_serv:308,portal_restart_serv:308,portal_run:267,portal_service_plugin_modul:40,portal_services_plugin:[40,104],portal_services_plugin_modul:40,portal_sess:40,portal_session_sync:308,portal_sessions_sync:308,portal_shutdown:308,portal_st:267,portal_uptim:331,portallogobserv:337,portalsess:[40,105,285],portalsessiondata:308,portalsessionhandl:[40,141,142,262,275,286,308],portalsessionsdata:308,portion:[77,180,190],pose:[29,58,116,165,175,195,206],pose_transform:175,poser:175,posgresql:23,posit:[13,20,22,39,49,51,91,111,116,126,127,137,138,139,153,171,180,186,200,202,221,232,233,234,235,260,321,322,325,326,330,344,345],positive_integ:345,positiveinteg:338,posix:[337,344],possess:[7,77,189],possibl:[0,5,9,10,11,22,23,25,26,31,33,34,37,38,39,43,46,50,55,57,58,63,64,66,73,74,75,76,80,91,93,100,102,104,105,109,111,112,114,116,123,126,127,128,131,134,136,138,141,144,148,150,152,159,167,168,179,187,194,197,200,203,205,206,214,227,231,233,235,241,242,247,250,251,252,257,261,272,292,296,306,308,317,319,321,324,326,327,328,330,340,341,344],post:[5,31,34,37,55,57,58,61,63,69,70,71,80,98,107,111,120,133,136,210,296,362],post_delet:107,post_init:107,post_join_channel:175,post_leave_channel:175,post_migr:107,post_sav:107,post_send_messag:175,post_text:190,post_url_continu:[145,173,244],postfix:205,postgr:[23,64],postgresql:[55,344],postgresql_psycopg2:23,postinit:[83,137],posttext:188,postupd:[71,120],pot:12,potato:[24,234],potenti:[10,11,13,26,41,82,83,90,98,111,114,116,123,154,176,210,211,241,242,247,251,338,341,344],potion:[77,318],power:[15,19,20,29,30,31,33,42,43,46,50,51,55,56,58,61,64,80,89,96,109,111,116,122,123,137,138,152,153,158,159,215,220,234,322,328,344],powerfulli:0,pperm:[12,41,43,71,80,133,156,164,203,241,247],pperm_abov:241,pprofil:267,pprogram:267,practial:15,practic:[0,13,14,22,26,29,33,34,36,37,57,58,63,64,70,80,89,90,96,105,109,119,124,126,131,139,322,364],pre:[33,43,47,49,54,61,63,71,89,90,111,114,138,144,159,166,205,242,247,251,252,295,296,326,340],pre_delet:107,pre_init:107,pre_join_channel:175,pre_leave_channel:175,pre_migr:107,pre_sav:[107,340],pre_send_messag:175,pre_text:190,preced:[19,31,41,96,109,114,119,152,154,174,215,247,252,317,330],precend:150,precis:[11,96,126,321],predefin:[121,311],predict:[125,133],prefac:119,prefer:[21,22,23,31,37,43,47,55,57,71,80,90,91,96,106,109,111,123,131,137,138,152,154,157,175,180,206,218,231,238,247,318],prefix:[20,22,23,42,76,86,97,103,125,145,151,168,175,190,205,237,244,272,279,315,321,336,337,341,344,357],prefix_str:25,prematur:[27,93,179,259],prepai:90,prepar:[3,49,57,87,109,127,136,144,206,217,218,219,220,221,231,256,325,340,363],prepars:38,prepend:[199,206,247,321,322,328,344],prepopul:[315,362],preprocess:159,prerequisit:[9,36],prescrib:[55,57],preselect:138,presenc:[9,17,23,55,56,90,122,124,126,136,144,247,312,346],present:[1,4,8,22,42,46,48,49,51,62,69,77,85,91,96,97,104,105,116,123,131,138,180,188,190,204,205,214,215,234,252,326,344],preserv:[126,167,168,318,321,322,337,344],press:[9,14,15,22,26,31,33,42,51,63,80,83,88,95,96,100,106,110,180,224,226,227,232,265,328],press_button:226,pressabl:227,pressur:82,presto:20,presum:[62,73,153,337,338],pretend:75,pretext:188,pretti:[0,22,25,26,37,38,39,41,60,64,67,72,85,88,89,90,116,121,123,126,131,133,138,154,182,204,236,242,251,327,329,338,344],prettier:[0,357],prettifi:[57,344],prettili:62,pretty_corn:330,prettyt:[27,330],prev:[51,329],prev_entri:51,prevent:[11,20,33,38,46,62,95,194,221,234,315,329,362],preview:38,previou:[0,10,11,14,16,22,29,31,33,41,42,51,52,58,60,62,69,80,85,86,87,91,95,96,100,104,107,114,119,123,126,174,215,233,249,259,328,337,362],previous:[20,31,34,43,49,50,67,72,74,91,102,104,114,119,127,133,136,154,157,159,179,200,272,288,292,299,308,319],prgmr:90,price:[90,232],primari:[17,100,125,133,206,247,316,341],primarili:[2,12,34,36,37,55,61,108,144,179,206,238,285,325,344],primarli:38,primary_kei:133,prime:[150,179],primer:10,primit:[43,61,159,251],princess:[111,122],principl:[2,9,19,26,30,33,37,38,40,43,51,55,57,60,80,85,89,90,96,98,119,123,132,138,153,156,179,233],print:[4,9,10,11,21,25,26,27,40,42,43,50,51,58,59,83,86,91,95,96,97,110,113,125,156,185,205,234,251,266,267,327,328,329,330,336,337,344],print_debug_info:328,print_help:234,print_usag:234,printabl:293,printout:290,prio:[25,31,33,150,233],prior:[117,194],priorit:205,prioriti:[4,25,31,33,44,51,97,116,152,156,160,161,162,163,167,168,180,201,230,232,233,247,326,328,329],privat:[4,8,38,43,57,61,69,90,131,164,165,176,279,292],private_set:9,privatestaticroot:312,privileg:[21,23,43,60,63,65,72,98,123,165,206,235,247,318],privkei:67,privkeyfil:287,privmsg:279,prize:122,proactiv:115,probabl:[4,5,11,16,21,22,23,25,29,33,37,46,48,51,55,57,61,64,67,69,85,86,89,90,96,108,116,119,121,128,133,134,136,138,180,198,204,233,269,279,287,334,344,345],problem:[11,13,15,21,22,23,24,25,26,27,36,38,43,56,61,64,69,70,75,77,80,90,95,97,100,103,110,111,113,127,138,140,144,153,195,247,276,322],problemat:[25,344],proce:[14,15,100,121,126,294,362],procedud:51,procedur:[138,215,287,290],proceed:[131,344],process:[0,4,8,9,11,13,14,15,22,23,25,29,33,36,38,39,41,42,43,49,51,55,59,61,64,67,73,75,76,83,88,89,90,91,92,93,94,100,106,122,131,133,138,139,144,150,152,159,169,179,200,206,215,234,240,242,247,251,257,267,272,276,277,284,287,290,295,296,305,306,308,321,322,325,328,338,343,344,345,362,364],process_languag:206,process_recog:206,process_sdesc:206,processed_result:344,processj:[316,336],processor:[18,43,93,110,111,124,139,141,142,158,169,200,320,364],procpool:344,produc:[33,43,51,96,114,123,131,156,159,203,205,232,235,247,251,252,266,298,316,318,327,328,336,344],produce_weapon:232,producion:27,product:[23,26,36,90,93,103,106,128,131,135,298,301,328],production_set:9,prof:93,profession:[3,57,64,108],profil:[45,65,139,141,142,145,148,188,262,364],profile_templ:188,profit:138,profunc:109,prog:234,progmat:56,program:[2,10,15,23,39,43,53,56,57,63,64,67,70,75,77,79,86,90,92,93,95,96,100,103,106,108,110,114,124,127,128,169,234,262,267,290,296,298],programiz:39,programm:[91,95],programmat:[114,138],progress:[70,73,79,85,94,131,217,218,219,220,221,326,364],proident:52,project:[4,15,25,37,49,64,70,72,77,79,91,99,108,111,124,127,131,135,136,338],projectil:220,promis:26,promisqu:126,prompt:[9,12,23,24,26,42,54,63,64,75,83,88,96,100,111,124,125,137,139,154,215,265,279,290,295,296,322,328,364],promptli:14,prone:[1,128,153,318],pronoun:189,prop:61,propag:[8,152,271,340],proper:[15,21,23,27,36,39,43,44,56,57,61,64,85,91,96,100,103,116,123,127,131,133,135,137,138,159,179,180,196,205,327],properli:[9,29,58,62,69,84,106,108,117,125,126,127,128,131,133,140,154,179,211,233,241,261,287,344,362],properti:[5,6,13,22,25,39,43,53,55,56,57,59,61,68,73,80,81,84,86,87,96,97,104,109,110,111,115,116,119,121,123,126,127,144,145,146,148,154,156,159,167,169,170,173,175,177,180,188,192,194,203,206,215,217,219,220,221,231,232,233,234,235,237,239,241,242,244,246,247,251,252,254,256,258,259,263,272,274,279,285,299,306,307,308,315,316,318,319,323,325,328,338,339,340,341,344,357,362],propnam:123,propos:[50,138],proprietari:23,propval:123,propvalu:123,prosimii:[133,134],prospect:61,prot:252,prot_func_modul:[109,250],protect:[6,31,43,90,159,306],protfunc:[141,142,248,251],protfunc_modul:251,protfunc_pars:251,protfunct:251,protkei:[109,250,251],proto:[276,287],proto_def:203,protocol:[24,27,33,43,47,53,64,72,74,79,83,90,92,94,101,103,104,105,110,137,139,144,146,154,157,189,210,247,262,264,267,269,272,276,277,278,279,280,281,282,283,285,286,287,289,290,291,292,294,295,296,298,305,306,307,308,326,340,344,364],protocol_flag:[289,290,294,306],protocol_kei:307,protocol_path:[285,308],protodef:203,prototocol:[43,169],protototyp:[249,251,252],protototype_tag:109,prototoyp:250,prototyp:[43,45,46,47,53,55,120,139,141,142,159,169,203,218,219,232,364],prototype1:252,prototype2:252,prototype_:109,prototype_desc:[109,252],prototype_dict:[43,159],prototype_diff:252,prototype_diff_from_object:252,prototype_from_object:252,prototype_kei:[43,109,159,251,252],prototype_keykei:[43,159],prototype_lock:[109,252],prototype_modul:[43,109,159,251,252],prototype_pagin:251,prototype_par:[43,109,159,252],prototype_tag:252,prototype_to_str:251,prototypeevmor:251,prototypefunc:252,protpar:[251,252],protpart:251,provid:[0,3,4,11,12,16,17,22,25,29,33,36,38,41,43,47,55,69,75,77,90,91,96,97,100,102,103,108,109,119,124,125,126,127,131,133,134,136,137,138,144,154,159,164,175,180,182,188,190,193,200,203,204,215,217,218,219,220,221,234,235,241,247,259,287,310,317,328,338,339,340,344,345,357,362],provok:[42,79],proxi:[47,60,67,70,94,103,125,312,315],proxypass:8,proxypassrevers:8,prudent:36,prune:31,pseudo:[40,49,91,108,204,205],psionic:220,psql:23,psycopg2:23,pty:9,pub:41,pubkeyfil:287,publicli:[54,61,79],publish:[21,36,79,100],pudb:141,puff:56,pull:[25,31,33,36,37,38,64,100,128,131,136,198,227,232,269],pullrequest:37,punch:31,punish:221,puppet:[2,9,19,21,22,31,33,39,40,41,43,55,57,58,62,74,80,96,97,105,107,114,118,123,133,143,144,150,156,159,167,181,197,199,241,247,306,308,318,336,360,362],puppet_object:[2,144],purchas:[67,85],pure:[46,56,88,114,125,126,256,267,316,321],pure_ascii:344,purg:[11,43,110,125,169],purpos:[4,11,67,83,90,92,95,112,119,123,126,133,146,150,154,185,194,287,316,325,328,344],pursu:[122,231],push:[22,38,76,100,103,126,198,224,226,227,232],pushd:63,put:[0,2,3,5,6,10,12,13,14,19,20,21,23,25,33,37,38,42,43,46,49,50,51,57,58,60,61,64,70,73,77,79,80,83,85,86,87,89,90,95,96,102,103,104,105,106,109,111,114,116,121,122,123,125,127,129,133,135,136,138,153,156,157,159,161,165,181,182,188,190,206,215,217,218,219,220,221,223,227,242,276,290,329,330],putti:90,puzzl:[79,122,141,142,178,232,233],puzzle_desc:232,puzzle_kei:233,puzzle_nam:203,puzzle_valu:233,puzzleedit:203,puzzlerecip:203,puzzlesystemcmdset:203,pwd:100,py3:276,pyc:[47,95],pycharm:[38,45,139,364],pyflak:26,pylint:26,pyopenssl:65,pypath:344,pypath_prefix:344,pypath_to_realpath:344,pypi:[64,79,90,93,321],pypiwin32:[9,63],pyprof2calltre:93,pyramid:235,pyramidmapprovid:235,python2:[9,63,97],python37:63,python3:[63,64,75,94],python:[0,2,3,4,9,10,11,12,14,15,19,20,21,22,23,27,29,31,33,37,38,39,42,43,45,46,47,49,50,51,53,56,58,60,62,63,64,65,66,69,72,73,75,76,80,82,83,85,86,89,90,91,93,97,98,100,102,103,104,106,108,109,110,111,113,114,116,118,119,123,124,125,127,128,130,133,134,135,139,151,153,158,159,163,169,170,180,185,192,193,194,195,196,197,198,204,234,235,242,246,250,251,252,258,261,267,269,276,280,285,295,306,308,312,314,317,318,321,322,324,325,326,327,328,330,331,334,337,340,344,363,364],python_execut:64,python_path:[153,344],pythonista:79,pythonpath:[153,267,277,322],pytz:345,qualiti:[61,151],quell:[2,6,20,121,156,212],quell_color:159,queri:[11,16,34,39,56,64,83,86,94,109,112,131,148,177,206,238,239,246,247,250,251,252,256,274,287,302,316,317,318,319,329,335,341,344,345],quersyet:119,query_info:267,query_statu:267,queryset:[64,102,112,119,176,199,238,251,273,315,317,329,362],queryset_maxs:329,quest:[55,57,61,63,117,122,139,233],question:[8,10,22,26,33,34,43,50,51,57,61,63,67,70,73,90,96,124,127,131,135,159,246,264,265,316,326,328,344],queu:267,queue:[36,116,312],qui:52,quick:[5,18,22,31,33,38,39,43,48,55,61,70,79,90,91,95,97,108,112,116,119,124,138,140,146,159,180,205,252,272,316,319,330],quicker:[0,37,86,87],quickli:[10,11,15,25,33,34,39,43,48,51,86,89,96,112,114,120,128,136,139,159,180,205,319,322],quickstart:[95,139,364],quiescentcallback:269,quiet:[25,43,85,144,157,159,164,180,182,197,206,247,329,344],quiethttp11clientfactori:269,quietli:[29,83,88,316],quirk:[24,45,139,153,364],quit:[0,2,4,10,17,21,22,23,30,33,38,39,40,42,46,50,51,54,55,57,60,67,75,85,93,96,105,119,127,128,133,156,171,180,186,188,194,220,287,326,328,329],quitfunc:[50,326],quitfunc_arg:326,quitsave_yesno:326,quo:115,quot:[23,27,35,43,50,51,80,95,96,109,114,118,159,171,186,206,326,328,336,340,344],qux:215,ra4d24e8a3cab:35,race:[8,55,56,61,73,79,117,133,344],rack:232,radiu:[39,49,111],rage:122,rail:[64,121],railroad:121,rain:[102,119,122,132],raini:233,rais:[10,15,27,33,69,73,77,83,91,109,119,134,144,146,176,180,185,187,192,194,195,204,205,206,242,250,251,259,261,266,267,285,290,296,311,316,317,321,322,324,327,328,330,336,337,338,339,340,344,345],raise_error:[339,344],raise_except:[1,316],ram:[11,90],ramalho:79,ran:[13,36,42,90,127],rand:102,randint:[73,91,109,116,120,123,217,218,219,220,221,250,252],random:[9,20,35,46,60,73,90,91,102,104,109,114,116,120,123,132,204,205,217,218,219,220,221,223,224,226,228,232,233,235,250,252,298,299,336,344],random_string_from_modul:344,random_string_gener:[141,142,178],randomli:[86,93,102,120,132,217,218,219,220,221,231,232,250,267,299],randomstringgener:204,randomstringgeneratorscript:204,rang:[24,31,39,42,43,49,50,56,59,63,88,91,93,103,109,111,116,118,120,122,127,159,184,188,218,221,317,326,336,357,362],rank:[19,241],raph:79,raphkost:79,rapidli:153,raptur:291,rare:[10,22,33,34,38,63,86,104,106,115,128,242,324],rascal:112,rate:[33,37,43,64,90,164,261,267,286,344],rather:[2,3,11,13,20,22,25,26,29,33,37,38,39,41,43,47,55,57,60,61,64,71,86,89,91,93,95,97,102,104,110,111,112,115,116,127,128,129,131,134,135,138,144,148,152,156,159,160,164,167,169,179,190,194,197,202,206,217,218,219,220,221,236,241,247,249,251,252,315,316,318,321,330,336,339,340,343,362],ration:179,raw:[3,12,20,33,38,41,51,56,64,74,83,86,95,109,114,119,144,151,154,159,167,168,170,206,210,234,247,272,287,290,295,296,306,321,326,328,329,336,338],raw_cmdnam:[151,168],raw_desc:187,raw_id_field:[173,244,254],raw_input:[85,328],raw_nick:87,raw_str:[33,51,85,144,146,150,151,154,170,188,201,215,230,247,249,306,316,328],raw_templ:87,raw_text:201,rawstr:[154,170],rcannot:22,re_bg:343,re_bgfg:343,re_blink:343,re_bold:343,re_color:343,re_dblspac:343,re_double_spac:343,re_fg:343,re_format:321,re_hilit:343,re_invers:343,re_mxplink:343,re_norm:343,re_str:343,re_ulin:343,re_underlin:343,re_unhilit:343,re_url:343,reach:[20,22,39,51,73,87,88,90,95,101,121,122,141,154,188,192,221,241,287,291,310,328,329,336,341],reachabl:[64,115],react:[51,115,117,118,231,247],reactiv:[43,169],reactor:[94,278,305,312,342],read:[0,1,4,5,8,9,11,13,15,16,17,20,22,23,25,27,29,31,33,34,37,38,39,41,43,46,51,55,56,58,59,60,61,64,69,70,71,72,76,77,79,80,85,86,88,90,91,93,95,96,102,103,104,105,109,114,119,122,123,124,126,127,128,131,133,134,138,139,144,148,158,166,177,180,187,190,198,199,204,206,232,233,239,246,247,251,252,256,274,276,299,316,318,319,322,323,327,329,335,337,362,363],read_batchfil:322,read_default_fil:36,readabl:[1,27,38,49,51,93,96,108,114,115,125,232,321,328],readable_text:232,reader:[38,43,48,58,74,79,81,98,133,164,190,221,272,286],readi:[2,10,12,15,20,25,29,36,37,40,42,54,63,75,77,80,83,89,93,106,121,131,136,138,144,154,166,206,217,218,219,220,221,247,296,329,338],readili:[23,111],readin:327,readlin:337,readm:[14,37,46,47,53,130,131,178,210],readonlypasswordhashfield:145,readthedoc:[79,83],real:[2,10,21,22,27,31,38,39,42,46,55,58,59,62,63,66,67,72,73,89,90,93,95,100,108,109,110,111,116,119,123,125,126,131,148,153,177,179,184,205,206,219,241,298,322,331],real_address:2,real_nam:2,real_seconds_until:[184,331],real_word:205,realis:77,realist:[127,132],realiti:[21,55,56,61,77,79,111,126],realiz:[48,96,126,131],realli:[4,10,11,12,13,14,19,20,22,25,26,31,33,38,39,42,51,58,62,64,67,72,77,80,85,89,91,96,98,104,108,110,111,112,115,118,119,121,127,128,138,139,154,170,179,180,181,215,234,242,276,321,322,328,340],realm:287,realnam:89,realpython:10,realtim:[58,184],realtime_to_gametim:184,reason:[8,9,11,12,13,22,25,29,34,37,38,39,40,41,43,44,49,51,56,57,58,60,61,63,64,69,73,80,82,83,86,87,89,93,97,102,103,104,106,109,114,115,116,119,122,126,129,131,138,144,157,159,164,169,186,204,205,247,251,257,264,269,276,277,278,279,285,286,287,290,295,296,298,306,307,308,318,326,337,344,362],reasourc:109,reassign:49,reattach:[106,278,279],rebas:131,reboot:[11,27,28,43,50,55,67,84,86,90,100,102,105,115,116,128,144,153,164,169,183,188,231,232,247,256,257,258,259,261,267,307,308,326,328,344],reboot_evennia:267,rebuild:[58,63,100,128,279],rebuilt:33,rec:206,recach:[233,306],recal:[95,138,232,362],recaptcha:133,receipt:[103,269],receiv:[31,33,34,37,41,42,51,52,58,77,83,87,91,105,113,114,117,127,133,137,138,144,152,153,170,171,175,176,177,186,197,199,200,206,210,247,269,272,276,278,279,285,295,296,305,306,324,329,341,344],receive_functioncal:276,receive_status_from_port:267,receivelock:241,receiver_account_set:148,receiver_object_set:246,receiver_script_set:256,recent:[4,17,25,60,67,94,123,310],recev:296,recip:[0,28,115,203],recipi:[34,58,144,176,199,276],reckon:9,reclaim:102,recog:[87,206],recog_regex:206,recogerror:206,recoghandl:206,recogn:[16,20,63,74,83,89,90,96,110,127,134,206,312],recognit:[206,316,336],recommend:[9,12,23,24,25,26,36,37,38,43,51,55,58,59,60,61,63,69,73,79,86,88,89,90,93,95,108,109,122,124,125,127,131,135,169,190,194,209,234,242,247,269,322,328,341],recommonmark:38,reconfigur:90,reconnect:[144,146,164,264,267,276,278,279,305,308],reconnectingclientfactori:[264,278,279],record:[15,23,90,123,210,221,310,357],recours:12,recov:[27,28,29,56,217,218,219,220,221,242,344],recoveri:116,recreat:[23,63,102,111,128,146,153,322,323],rectangl:327,rectangular:[58,327],recur:64,recurs:[11,241,251],red:[13,14,20,31,43,59,80,87,95,109,114,126,159,169,224,226,227,232,336,345],red_bal:59,red_button:[13,14,20,43,87,141,142,159,178,222,224,227],red_button_script:[141,142,178,222,226],red_kei:80,redbutton:[13,14,20,43,87,159,224,226,227],redbuttonblind:227,redbuttonclos:227,redbuttondefault:224,redbuttonopen:227,redd:103,reddit:103,redefin:[22,33,55,89,247,357],redhat:[63,67],redirect:[8,22,40,69,96,105,133,135,180,328,362],redirectview:362,redistribut:34,redit:180,redo:[50,61,326],redon:271,redraw:287,reduc:[94,116,217,218,219,220,221,280],redund:321,reel:153,reen:114,ref:[23,38,125,206,344,357],refactor:[45,57,139,363,364],refer:[0,8,9,13,19,20,22,31,33,34,37,40,43,46,48,49,51,56,57,62,64,69,73,79,80,86,87,88,89,90,95,96,100,104,105,106,109,110,111,116,118,119,124,125,126,127,129,130,131,133,134,144,153,159,164,168,179,188,197,200,204,206,217,218,219,220,221,241,247,258,261,269,279,299,307,315,317,328,334,340,341,362],referenc:[43,56,89,104,109,159,175,206,239,318,344],referenti:344,referr:90,refin:[49,119],reflect:[96,362],reflow:16,reformat:[252,330,337],reformat_cel:330,reformat_column:[111,330],refresh:[26,134,287],refus:12,regain:29,regard:[48,126,127,138,204],regardless:[12,19,31,33,58,73,80,81,83,102,105,114,119,121,125,127,138,152,179,189,197,206,224,227,247,259,261,284,287,290,305,307,316,319,322,334,337],regener:219,regex:[5,33,50,51,87,127,137,154,157,170,183,204,206,311,316,328,336,344],regex_nick:87,regex_tupl:206,regex_tuple_from_key_alia:206,regexfield:145,region:[43,58,90,140,157],regist:[65,71,83,103,104,116,120,131,133,135,137,138,144,164,198,231,232,257,267,278,279,285,308,312,321,336,360,362],register_error:321,register_ev:198,registercompon:137,registertest:360,registr:[65,362],registrar:67,registri:[204,312],regress:251,regul:242,regular:[3,17,33,38,51,69,79,90,96,105,115,127,132,134,135,146,152,182,203,204,226,227,233,242,261,319,334,344,363],regulararticl:335,regulararticle_set:335,regularcategori:335,regularli:[67,85,98,102,120,128,132,184,226,231,233,258,259,261,270,300,331],reilli:79,reinforc:79,reiniti:110,reinstal:63,reinvent:57,reject:[188,204],rejectedregex:204,rel:[10,13,14,19,22,31,49,51,82,104,123,131,133,184,200,221,322,328],relai:[27,33,43,72,105,144,164,179,189,247,285,308,328,329,344],relat:[28,31,33,34,43,47,51,56,57,72,79,94,96,102,103,104,110,125,132,137,138,139,145,148,149,152,166,167,172,176,177,184,198,210,217,218,219,220,221,230,233,239,246,247,256,259,261,272,308,315,316,318,319,321,328,335,337,346,350,357],related_field:[145,173,237,244,254,315],related_nam:[148,177,239,246,256,316,318,319,335],relationship:[34,49,119,125],relay:146,releas:[9,28,37,43,55,63,78,79,90,96,169],releg:1,relev:[3,9,11,14,22,30,33,37,38,47,58,62,79,80,89,94,96,107,112,114,116,119,123,124,125,133,135,140,144,145,150,152,179,180,241,242,258,259,281,299,306,307,308,315,321,326,328,338],relevant_choic:180,reli:[9,34,41,51,62,70,81,85,86,88,91,114,115,119,126,127,135,189,206,227,233,267,318,328],reliabl:[13,23,25,29,125,334],reliant:200,reload:[0,2,3,5,6,7,12,13,14,19,21,22,26,27,28,29,31,33,35,36,39,40,41,42,44,48,50,51,55,57,58,60,62,63,65,66,68,69,71,73,74,81,92,95,96,98,102,104,105,106,115,116,117,118,121,123,125,128,133,134,135,136,139,144,146,153,158,159,169,175,180,181,185,186,187,195,201,202,206,212,213,232,233,235,242,247,257,258,259,261,267,276,277,279,281,305,308,312,322,324,326,327,328,331,344,364],reload_evennia:267,remain:[13,19,30,31,33,43,50,51,58,77,90,91,96,97,107,109,110,113,151,153,159,161,165,175,181,184,187,217,218,219,220,221,231,247,259,267,295,296,328,329,336],remaind:[21,33,184],remaining_repeat:[102,259],remap:[38,316,336],remedi:60,rememb:[0,1,4,5,11,12,13,21,22,28,29,31,33,39,41,43,48,49,51,54,56,58,61,62,63,69,77,80,86,88,90,91,93,95,96,97,111,112,114,115,119,123,126,128,131,137,139,157,159,181,194,247,257,322,341],remind:[0,4,38,50],remit:[43,157],remnisc:57,remot:[25,100,103,164,276,278,290],remov:[0,1,4,9,11,12,21,22,27,31,36,39,41,43,48,50,51,55,58,69,80,81,84,85,87,89,91,93,98,102,115,116,122,127,128,131,133,136,138,141,152,153,157,159,164,165,166,169,174,175,177,180,182,187,188,192,196,203,204,205,206,215,217,218,219,220,221,224,242,246,247,252,257,260,261,267,285,296,306,308,310,316,319,321,325,328,334,340,342,343,344],remove_backspac:343,remove_bel:343,remove_charact:116,remove_default:[31,153],remove_receiv:177,remove_send:177,removeth:316,renam:[9,20,43,58,81,136,159,165,247,318],render:[3,22,38,69,81,102,107,133,134,136,145,166,190,237,244,312,315,329,338,340,355,357,362],render_post:296,renew:[29,58,67],reop:94,reorgan:[45,47],repair:[21,61],repeat:[0,42,61,62,75,88,93,102,110,111,116,118,121,136,139,146,179,184,204,215,256,259,267,272,291,316,324,328,331],repeatedli:[14,42,62,74,102,139,231,256,259,261,267,272,298],repeatlist:74,repetit:[62,116,204],replac:[5,6,9,22,23,25,29,30,31,33,36,38,41,43,50,51,57,69,74,80,87,89,94,95,96,100,104,105,109,111,114,116,119,134,135,136,137,138,144,151,152,153,154,157,165,166,170,179,181,183,186,187,188,192,195,197,202,203,205,206,224,227,230,233,234,242,247,249,251,252,279,282,295,296,306,316,321,326,327,328,330,336,343,344],replace_data:330,replace_timeslot:187,replace_whitespac:330,replacement_str:[43,165],replacement_templ:[43,165],replenish:[217,218,219,220,221],repli:[33,51,65,70,139,146,179,199,265,289,290,296,308,328],replic:[22,114,136],repo:[38,47,57,79,106,131,139],report:[22,24,26,33,37,43,61,63,70,73,75,84,91,93,94,97,102,103,104,115,116,127,131,136,138,159,192,195,206,234,267,272,279,282,283,290,291,295,306,308,321,324,328,344],report_to:324,repositori:[8,9,23,25,36,76,78,96,100,130,252],repositri:76,repr:[91,329,344],reprehenderit:52,repres:[0,2,9,20,21,22,25,31,33,40,46,49,53,56,61,62,64,69,77,86,89,95,96,105,107,113,116,119,125,126,127,133,136,144,150,174,176,182,188,190,192,197,198,200,204,206,210,212,215,219,232,233,234,247,252,261,264,278,279,295,296,306,307,308,312,316,317,321,323,324,328,329,330,340,344],represent:[2,11,28,40,58,64,73,77,86,87,88,105,113,119,126,176,192,195,206,251,256,276,295,296,319,325,331],reprocess:103,reproduc:[10,96,247],reput:209,reqhash:[317,344],reqiur:188,request:[3,8,26,37,40,43,51,63,69,80,90,103,107,119,123,131,133,134,135,139,144,145,146,157,173,179,195,244,247,251,254,267,269,276,279,281,286,287,289,296,312,315,319,328,349,350,351,355,362],request_finish:107,request_start:107,requestavatarid:287,requestfactori:312,requestor:310,requir:[1,4,8,9,10,11,14,15,22,23,33,36,37,38,43,46,47,49,50,51,54,58,60,61,67,68,69,70,71,75,77,78,79,80,84,85,86,89,90,93,94,102,109,110,111,114,115,116,118,119,125,126,127,129,132,133,134,136,137,145,158,159,164,169,176,177,185,186,187,188,200,201,202,204,206,215,219,220,233,234,237,238,241,244,247,251,267,278,279,292,300,311,315,317,322,327,328,329,330,334,339,340,341,344,357,362],require_singl:251,requr:109,rerout:[138,156,160,279],rerun:[13,14,51,122],resart:259,research:[79,194],resembl:[25,55,129],resend:33,reserv:[1,10,33,95,96,111,251,311,317,336,344],reset:[0,7,12,15,17,23,27,29,31,33,44,50,60,66,73,81,102,104,105,111,114,116,121,123,125,126,139,144,146,153,159,169,174,184,195,206,227,232,242,258,259,267,271,277,287,305,316,319,322,330,331,336,342,344],reset_cach:[316,319],reset_callcount:[102,259],reset_gametim:[27,331],reset_serv:271,reset_tim:187,resid:[47,96,108,227,242],residu:[43,169,219],resist:[252,344],resiz:[58,138,327,330],resolut:[114,116],resolv:[26,29,42,60,70,90,95,104,116,131,203,217,218,219,220,221],resolve_attack:[217,218,219,220,221],resolve_combat:116,resort:[33,54,58,164,206,344],resourc:[9,23,26,28,38,41,47,48,53,56,90,94,95,96,103,108,115,124,127,135,136,139,220,257,265,296,312,323,342],respect:[0,6,23,33,43,48,58,80,104,105,123,125,157,159,166,179,199,203,206,213,224,242,247,306,307,318,319,322,324,330,341,344,357],respond:[0,46,51,61,83,84,107,110,117,118,126,294,298],respons:[7,10,16,17,37,49,51,60,63,64,70,85,88,90,91,118,120,121,144,146,153,164,175,197,233,235,239,247,265,267,269,276,299,308,318,338,340,344],response_add:[145,173,244],rest:[17,29,33,51,56,63,73,82,85,86,87,104,106,111,122,123,151,167,168,217,218,219,220,221,321,330],restart:[12,42,43,58,60,76,90,92,93,102,103,104,106,110,116,128,131,135,138,141,144,169,175,180,183,195,227,247,257,259,261,271,284,305,306,307,344],restartingwebsocketserverfactori:[146,278],restock:85,restor:[0,31,102,126,180,220,227,257,261],restrain:[43,159,241,327,344],restrict:[4,8,11,19,20,43,47,59,68,73,80,90,109,111,115,125,134,137,159,164,182,204,220,221,237,242,252,324,326,328,330,341],restructur:[38,56],result1:203,result2:[51,203],result:[10,11,23,27,30,31,33,38,43,44,48,51,58,59,73,80,88,90,91,95,96,97,104,105,109,114,115,116,118,119,123,124,126,127,131,134,135,136,144,151,152,154,159,166,175,177,179,185,188,200,203,204,205,206,209,217,218,219,220,221,233,238,242,247,250,251,252,259,267,276,299,316,318,321,326,327,328,330,334,336,337,338,341,344,345],result_nam:203,resum:[29,33,102],resurrect:231,resync:[146,276,306],ret:33,ret_index:344,retain:[10,27,31,51,97,111,138,189,252,313,318,322,324,337,344],retext:38,retract:179,retreat:221,retri:267,retriev:[0,33,43,69,74,86,96,97,108,112,119,123,139,140,144,148,150,153,159,169,174,176,187,194,238,241,251,265,272,273,279,285,294,316,319,325,334,339,341,344,362],retriv:[146,323],retroact:[58,125],retur:52,return_appear:[49,60,122,123,182,187,206,232,247],return_cmdset:166,return_detail:[187,233],return_iter:251,return_key_and_categori:319,return_list:[1,316,319],return_map:111,return_minimap:111,return_obj:[1,11,87,316,319,339],return_par:252,return_prototyp:120,return_puppet:144,return_tagobj:319,return_tupl:[87,185,306,316],returnv:33,returnvalu:10,reus:[25,334],reusabl:122,rev342453534:344,reveal:182,revers:[29,31,33,39,111,114,121,126,134,148,177,235,239,246,256,312,316,318,319,321,335],reverseerror:[267,276],reversemanytoonedescriptor:[148,246,335],reverseproxyresourc:312,revert:[43,90,126,131,156,238],review:[0,31,37,41,64,70,128,135],revis:61,revisit:[36,328],reviu:51,revok:58,revolutionari:131,rework:[29,61,201],rewritemim:70,rfc1073:283,rfc858:289,rfc:[283,289],rfind:321,rgb:114,rgbmatch:321,rhel:8,rhostmush:[57,108,129],rhs:[25,58,167,168,170],rhs_split:[159,165,167,168],rhslist:[167,168],ricardo:344,riccardomurri:344,rich:[22,57,78,79,325],richard:79,rick:109,rid:[56,119,139],riddanc:12,ridden:[1,96],riddick:188,ride:121,right:[0,5,8,10,14,20,21,23,25,28,29,33,38,39,41,42,43,46,51,55,56,57,58,60,61,63,68,74,75,76,80,85,87,90,91,96,101,102,109,111,114,117,119,121,123,126,127,128,133,134,137,138,145,153,156,159,167,168,175,181,187,188,190,195,196,203,221,224,227,231,232,233,235,242,250,252,256,307,321,322,326,330,344,345],right_justifi:[109,250],rigid:57,rindex:321,ring:205,ripe:96,rise:[31,62],risen:62,risk:[38,43,57,63,90,123,138,158,169],rival:111,rjust:321,rm_attr:159,rnormal:114,rnote:[43,169],road:[31,46,111,121,152],roadmap:[45,139,364],roam:[122,153,231],roar:111,robot:[77,133],robust:[85,91,103],rock:[6,60,86,116,124,153],rocki:122,rod:153,role:[17,23,55,57,61,73,91,217],roleplai:[9,11,57,61,68,73,79,116,123,139,185,206,364],roll1:73,roll2:73,roll:[11,58,61,63,73,91,114,116,123,185,217,218,219,220,221,310],roll_challeng:73,roll_dic:185,roll_dmg:73,roll_hit:73,roll_init:[217,218,219,220,221],roll_result:185,roll_skil:73,roller:[73,116,185],rom:79,roof:[43,159],room1:127,room56:13,room:[9,12,13,14,15,20,21,22,27,31,33,42,43,44,45,46,53,55,56,57,59,62,63,64,73,77,80,85,91,96,102,104,108,109,111,112,116,117,118,119,120,121,122,123,124,125,127,129,132,133,140,141,142,150,151,152,153,157,159,165,170,178,180,182,185,187,194,197,200,206,212,213,214,217,218,219,220,221,229,230,231,232,234,235,241,247,256,271,299,322,342,360,364],room_count:119,room_dict:200,room_flag:56,room_lava:56,room_typeclass:[235,342,360],roombuildingmenu:[22,180],roomnam:[43,58,159],roomobj:119,roomref:121,root:[9,13,22,23,36,47,53,63,64,69,75,78,80,81,86,89,90,93,96,97,100,106,128,130,134,135,136,232,247,252,267,312,325,344],rose:[11,87,89,125],roster:[9,217,218,219,220,221],rosterentri:9,rot:127,rotat:337,rotatelength:337,roughli:[58,61,94,96,344],round:[17,205,221,330],rounder:205,rout:[5,20,49,56,121,137,144],router:90,routin:[206,302,341,344],row:[0,3,16,25,38,49,58,64,69,86,111,114,116,126,137,330,344],rpcharact:206,rpcommand:206,rpg:[58,60,73,124,185,221],rpi:79,rplanguag:[141,142,178,206],rpm:63,rpobject:206,rpsystem:[38,141,142,178,202,205],rpsystemcmdset:206,rred:321,rsa:[287,288],rspli8t:91,rsplit:[123,321],rsrc:70,rss2chan:[98,164],rss:[7,43,55,79,128,139,141,142,146,164,172,262,272,275,285,364],rss_enabl:[98,164],rss_rate:146,rss_update_interv:[43,164],rss_url:[43,98,146,164],rssbot:146,rssbotfactori:286,rsschan:[43,164],rssfactori:286,rssreader:286,rst:38,rstrip:[91,321],rsyslog:209,rtest2:114,rtext:85,rthe:22,rthi:114,rtype:312,rubbish:[43,156],rubi:64,rudimentari:231,ruin:[122,187,233],rule:[12,13,14,21,33,47,55,58,61,68,77,79,80,96,114,124,126,127,131,139,180,204,205,217,218,221,239,322,364],rulebook:116,rumour:122,run:[0,2,3,5,6,8,9,10,11,13,14,15,20,21,23,24,26,27,28,29,31,35,36,38,40,43,45,46,47,51,53,54,56,57,59,60,61,62,63,64,67,68,69,72,73,76,79,80,81,83,85,86,90,91,92,93,95,96,97,101,102,103,104,109,110,111,115,119,121,122,123,124,125,126,128,130,131,132,133,134,136,137,138,139,141,144,146,150,151,153,154,158,159,164,165,166,169,170,174,175,195,196,201,206,209,213,215,217,218,219,220,221,227,230,235,241,242,247,251,252,256,258,259,261,267,271,273,277,284,292,296,298,301,305,306,310,312,318,321,322,326,328,329,331,337,341,342,344,362,363,364],run_async:[10,344],run_connect_wizard:267,run_dummyrunn:267,run_exec:328,run_exec_then_goto:328,run_init_hook:305,run_initial_setup:305,run_menu:267,run_start_hook:[60,125,318],runexec:328,runexec_kwarg:328,runnabl:109,runner:[36,106,232,298],runsnak:93,runtest:[170,196,211,228,293,303,335,342,352,360],runtim:[12,27,33,62,154,180,234,331,344],runtimeerror:[73,144,146,192,195,198,204,205,251,259,285,316,328,336,344],runtimewarn:251,rusernam:51,rush:29,rusti:85,ruv:36,ryou:22,sad:[133,290],safe:[11,26,30,31,43,46,56,60,64,82,89,97,104,131,133,156,179,227,242,261,276,308,312,318,322,325,334,344],safefunc:326,safer:[12,13],safest:[0,90,105,318],safeti:[2,43,56,89,90,123,125,139,159,179,246,322],sai:[0,5,6,10,12,14,17,20,22,25,26,27,29,31,33,39,40,41,44,46,51,56,57,58,60,61,62,63,64,69,73,77,78,80,89,90,91,93,96,109,114,116,117,118,119,123,125,126,127,128,129,131,137,138,139,140,153,165,179,181,185,188,197,198,205,206,215,227,233,247,328],said:[0,4,10,22,26,43,44,46,49,51,57,83,91,96,111,112,118,127,134,151,164,168,197,206,235,247,279,318,328],sake:[13,43,57,126,135,171,186,362],sale:85,same:[0,2,5,6,9,10,11,12,13,14,15,16,19,20,21,22,23,26,27,28,29,31,33,34,37,38,40,41,42,43,44,50,55,57,58,59,60,61,62,63,64,66,69,73,74,78,80,81,83,84,85,86,88,89,90,91,95,96,97,98,100,102,104,105,106,108,109,110,111,112,113,114,115,116,119,121,123,125,126,127,128,131,133,134,136,138,144,150,151,152,153,154,157,159,167,168,169,170,175,180,182,184,187,190,194,195,199,204,205,206,212,214,215,217,218,219,220,221,224,231,233,234,235,241,247,251,252,256,257,261,271,276,288,291,292,306,307,308,310,312,315,316,317,318,319,321,322,324,328,329,330,331,337,338,344,357,362],sampl:[8,36,56,100,215],san:190,sand:62,sandi:111,sane:[61,79,96,362],sanit:[357,362],saniti:[9,49,111,127,139,338],sarah:[43,129,165],sat:[21,140],satisfi:[108,167],satur:103,save:[0,1,9,15,21,22,24,27,29,33,34,36,41,42,43,46,48,50,51,54,56,64,67,84,86,87,89,95,97,100,102,103,105,107,109,110,112,115,116,123,125,127,131,133,138,144,145,156,159,169,173,175,176,177,180,195,242,244,246,247,249,251,252,254,257,259,260,261,265,272,285,299,300,305,306,312,315,316,318,325,326,334,338,339,340,344],save_a:[173,237,244,254,263],save_as_new:315,save_buff:326,save_data:338,save_for_next:[33,154],save_handl:338,save_kwarg:339,save_model:[145,173,244,254],save_nam:261,save_on_top:[173,237,244,254,263],save_prototyp:251,save_recip:203,savefunc:[50,326,339],savehandl:339,saver:325,saverdict:325,saverlist:325,saverset:325,saveyesnocmdset:326,saw:[10,46,69],say_text:118,saytext:206,scale:[23,57,61,73,106,114,205],scalewai:90,scan:[8,150,231,233],scarf:182,scatter:[219,322],scedul:331,scenario:58,scene:[11,21,38,55,59,61,73,74,97,109,112,114,116,122,126,204,233,256,261,334],schedul:[27,62,184,195,331],schema:[4,64,86,125,131,344],scheme:[28,33,43,63,86,114,159,169,321],scienc:[49,124],scientif:79,scissor:116,scm:9,scope:[29,55,64,74,124,134,138,204,324],score:[58,60,344],scraper:362,scratch:[40,46,57,58,61,63,123,124,128,136,139],scream:122,screen:[7,16,18,33,43,51,52,61,66,74,81,85,97,100,101,104,105,109,114,127,133,138,139,145,171,186,190,201,221,250,272,287,329,344,364],screenheight:[74,154,272],screenread:[74,272,295,296],screenshot2017:101,screenshot:[55,133,139,364],screenwidth:[74,154,272],script:[6,11,13,14,20,27,36,45,47,53,55,56,57,59,61,62,63,71,80,84,85,86,89,90,93,103,104,105,106,107,108,109,110,112,115,116,117,119,120,122,125,130,132,133,137,138,139,141,142,144,146,158,159,169,177,178,179,184,187,191,192,198,203,204,205,213,217,218,219,220,221,223,224,226,227,233,235,241,246,247,251,252,267,300,305,322,323,324,331,339,341,342,344,360,364],script_path:[43,159],script_search:59,script_typeclass:[228,342,360],scriptattributeinlin:254,scriptbas:259,scriptclass:258,scriptdb:[53,119,125,141,254,256,314],scriptdb_db_attribut:254,scriptdb_db_tag:254,scriptdb_set:[148,246,316,319],scriptdbadmin:254,scriptdbmanag:[255,256],scripthandl:[141,142,253],scriptkei:[43,159],scriptmanag:255,scriptnam:323,scripttaginlin:254,scroll:[20,45,52,63,77,95,96,97,123,138,329],scrub:308,scrypt:102,sdesc:[56,202,206],sdesc_regex:206,sdescerror:206,sdeschandl:206,sdk:63,sea:[111,122],seamless:206,seamlessli:[92,102],search:[0,2,9,13,21,22,30,33,41,42,43,48,50,55,58,59,60,64,68,70,73,76,87,89,94,96,102,104,109,116,123,124,125,127,131,134,136,139,140,141,142,144,150,152,154,159,166,169,176,179,194,199,203,206,217,218,219,220,221,233,235,238,241,247,250,251,258,273,316,317,318,319,320,321,324,326,344,363,364],search_:[27,59],search_account:[58,107,119,141,247,341],search_account_attribut:119,search_account_tag:[119,341],search_at_multimatch_input:247,search_at_result:[206,247],search_attribute_object:119,search_channel:[41,119,141,176,341],search_channel_tag:[119,341],search_field:[173,237,244,254,263,315],search_for_obj:159,search_help:[119,141,238],search_help_entri:341,search_helpentri:238,search_messag:[119,141,176,341],search_mod:206,search_multimatch_regex:247,search_object:[11,13,27,111,119,121,125,141,144,341],search_object_attribut:119,search_objects_with_prototyp:251,search_prototyp:251,search_script:[59,102,119,141,341],search_script_tag:[119,341],search_tag:[48,112,119,140,141],search_tag_account:112,search_tag_script:112,search_target:199,searchabl:194,searchdata:[144,206,247,341],searchstr:68,season:[61,187],sec:[10,29,62,74,184,279,331],secmsg:337,second:[0,10,11,14,16,21,22,25,27,29,31,33,38,39,41,43,51,62,63,69,80,85,86,88,90,91,95,100,102,103,104,109,110,114,115,116,119,120,121,123,126,127,132,134,144,146,151,159,184,194,195,198,200,206,213,217,218,219,220,221,223,227,231,241,247,252,259,261,267,272,281,286,299,310,321,324,328,331,337,344,345],secondari:[81,307],secondli:89,secreci:131,secret:[9,23,65,71,185,267],secret_kei:9,secret_set:[4,9,23,65,267],sect_insid:49,section:[1,4,9,11,15,18,21,22,23,25,26,29,31,33,35,36,38,39,40,48,51,58,60,62,63,68,69,75,77,80,86,89,90,93,95,96,100,111,113,119,124,125,127,133,137,138,139,187,205,252,321,322,328,345],sector:49,sector_typ:49,secur:[7,11,13,22,26,37,41,43,57,63,80,85,90,96,108,109,114,123,133,134,139,141,142,158,169,175,178,239,247,287,318,337,357,364],secure_attr:80,sed:36,sedcond:260,see:[0,1,2,3,4,5,8,9,10,11,12,13,14,19,20,21,22,23,25,26,27,28,29,30,31,32,33,34,35,37,38,39,40,41,42,43,44,46,48,49,50,51,52,53,55,56,57,58,59,60,61,62,63,64,65,68,70,71,72,74,75,76,80,81,82,83,86,87,88,89,90,91,93,95,96,98,100,101,102,103,104,105,106,108,109,110,111,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,130,131,132,133,134,135,136,137,138,139,144,154,156,158,159,164,165,166,167,168,170,175,177,178,179,180,186,190,192,199,203,204,205,206,210,213,214,215,217,218,219,220,221,223,224,226,231,233,234,235,241,246,247,260,265,267,269,270,278,279,280,281,283,287,288,290,292,294,295,296,298,299,306,307,308,312,316,321,324,325,326,327,330,336,339,340,344,351,357,362],seek:[122,242,337],seem:[4,22,24,31,39,41,56,61,63,75,94,109,110,119,121,122,123,137,138,316,322],seen:[0,22,29,31,34,40,46,49,51,57,58,69,81,91,95,96,102,105,111,119,120,121,126,127,131,180,251,279,330],sefsefiwwj3:9,segment:[121,312],seldomli:[154,170],select:[2,20,22,27,31,38,43,51,54,63,69,77,80,85,86,104,105,106,111,119,120,123,131,133,137,138,140,151,152,157,166,215,218,318,326,328],selet:328,self:[0,1,2,5,6,9,10,11,13,20,21,22,25,27,28,29,30,31,33,38,39,40,41,42,43,44,49,50,51,56,57,58,59,60,62,63,71,72,73,76,77,80,81,82,85,86,87,89,95,96,102,109,115,116,117,118,119,120,121,123,125,127,129,132,134,144,146,148,150,152,153,154,156,159,160,164,167,168,169,170,174,175,177,179,180,181,182,185,187,188,192,197,199,200,202,203,206,215,217,218,219,220,221,223,224,227,230,231,232,233,234,235,241,247,259,260,265,267,269,270,274,278,279,285,287,288,290,292,294,295,296,306,307,308,316,318,319,321,326,328,329,334,336,338,339,340,344,351],self_pid:344,selfaccount:58,sell:[78,85,179],semi:[93,132,138,205],semicolon:[80,242,324],send:[2,12,22,25,27,29,33,34,41,43,51,52,58,59,61,64,67,70,71,73,74,76,80,81,83,89,91,93,95,96,102,103,105,107,110,113,114,115,116,118,120,123,126,133,137,138,139,140,144,146,150,153,154,157,164,168,174,175,176,177,179,188,189,199,206,210,221,223,230,231,241,247,260,261,264,267,269,270,272,276,277,278,279,280,282,285,286,287,289,290,291,293,295,296,298,306,307,308,309,321,324,325,328,330,344],send_:[40,83,285],send_adminportal2serv:277,send_adminserver2port:264,send_authent:278,send_channel:[278,279],send_default:[40,83,278,279,285,287,290,295,296],send_defeated_to:231,send_emot:206,send_functioncal:276,send_game_detail:269,send_heartbeat:278,send_instruct:267,send_mail:199,send_msgportal2serv:277,send_msgserver2port:264,send_p:279,send_privmsg:279,send_prompt:[287,290,295,296],send_random_messag:223,send_reconnect:279,send_request_nicklist:279,send_status2launch:277,send_subscrib:278,send_testing_tag:230,send_text:[40,83,287,290,295,296],send_unsubscrib:278,sender:[34,41,43,107,144,146,164,175,176,177,179,206,247,278,309,334,341],sender_account_set:148,sender_extern:177,sender_object:309,sender_object_set:246,sender_script_set:256,sender_str:175,sendernam:[43,164],senderobj:324,sendlin:[287,290,295],sendmessag:[40,188],sens:[1,10,22,31,37,56,58,80,86,89,96,102,121,138,152,224,324,325,328],sensibl:[90,271],sensit:[11,51,58,80,176,180,184,187,195,210,211,238,317,331,341],sensivit:204,sent:[25,34,51,58,69,74,83,88,91,105,107,113,114,119,137,138,144,146,150,164,166,170,175,176,177,180,186,188,195,197,199,210,228,234,247,264,267,269,272,276,277,278,279,287,291,295,306,308,316,328,336,341],sentenc:[46,91,198,205,206],sep:321,sep_kei:[22,180],separ:[8,11,13,14,20,23,29,31,33,37,40,43,46,48,51,57,58,61,62,64,71,72,75,77,80,84,85,86,87,89,91,92,93,95,96,98,101,102,103,105,106,112,114,115,119,121,123,126,129,131,133,136,137,138,140,151,153,154,159,165,166,167,168,169,175,180,195,198,199,205,206,215,217,218,219,220,221,224,233,235,238,242,246,247,251,257,261,286,291,296,308,321,322,324,327,329,336,341,344],separatli:29,seq:87,sequenc:[10,13,14,15,33,64,80,81,87,89,113,126,154,158,184,201,206,242,265,271,321,322,328,330,343,344],seri:[51,61,79,114,131,136,138,226,330],serial:[11,83,138,250,261,285,325,338,340],serializ:296,seriou:[39,110],serious:63,serv:[45,49,55,64,83,101,103,104,111,135,152,219,296,312,322,324,355],server:[0,2,4,9,10,11,12,13,15,19,21,25,26,27,28,29,31,33,34,35,36,37,38,40,41,45,47,51,53,54,55,56,57,58,59,60,62,63,64,65,66,67,69,70,71,72,73,74,75,78,79,80,81,83,84,86,88,89,91,93,94,95,96,97,100,101,102,103,106,107,109,110,111,113,114,115,116,118,121,122,124,125,127,128,130,131,133,134,135,136,137,138,139,141,142,144,146,153,157,159,164,169,171,175,178,180,183,186,187,195,201,202,206,207,208,209,212,213,227,231,232,233,235,247,256,257,258,259,261,313,318,322,324,325,326,328,331,334,337,338,344,346,363,364],server_connect:285,server_disconnect:285,server_disconnect_al:285,server_epoch:[27,331],server_l:277,server_logged_in:285,server_nam:104,server_pid:[277,344],server_receive_adminportal2serv:264,server_receive_msgportal2serv:264,server_receive_statu:264,server_reload:[257,261],server_run:267,server_runn:305,server_servic:344,server_services_plugin:[40,104],server_services_plugin_modul:40,server_session_class:105,server_session_sync:285,server_st:267,server_twistd_cmd:277,server_twisted_cmd:277,serverconf:[157,261],serverconfig:[260,261,273,274],serverconfigadmin:263,serverconfigmanag:[273,274],serverfactori:[277,287,290],serverload:[43,169],serverlogobserv:337,servermsg:337,servernam:[4,8,9,54,74,90,104],serverprocess:[43,169],serversess:[40,105,114,141,142,210,242,262,285,308],serversessionhandl:[40,105,308],serverset:[43,80,164,241],servic:[12,23,40,45,67,71,90,94,100,103,104,110,131,133,141,142,169,262,264,267,268,276,277,284,305,312,344],sessdata:[307,308],sessid:[2,33,105,123,246,247,264,276,277,285,308],session:[2,12,15,24,31,33,40,45,47,51,53,57,70,74,81,84,88,89,91,96,100,107,114,123,127,138,139,141,142,144,146,148,150,151,152,154,156,157,160,162,166,167,171,186,188,189,197,209,210,211,230,246,247,249,250,251,257,262,264,272,276,277,278,279,285,286,287,290,295,296,305,306,308,310,326,328,329,336,344,345,364],session_data:308,session_from_account:308,session_from_sessid:308,session_handl:[105,141],session_portal_partial_sync:308,session_portal_sync:308,sessioncmdset:[31,43,162],sessionhandl:[40,83,141,142,144,247,262,272,278,279,285,286,306,307],sessionid:285,sessionobject:336,sessions_from_account:308,sessions_from_charact:308,sessions_from_csessid:[285,308],sessions_from_puppet:308,sesslen:247,set:[0,2,3,6,7,8,10,11,12,13,14,15,16,17,19,20,21,22,23,24,25,26,27,29,30,32,33,34,35,36,37,38,39,40,41,42,44,45,46,47,50,52,53,55,56,57,58,59,60,61,63,64,66,67,68,69,71,74,75,76,82,83,85,86,87,89,91,93,95,96,97,100,102,105,107,108,109,110,111,112,113,114,116,117,119,120,121,124,125,126,128,129,130,133,134,135,136,137,138,139,141,143,144,146,148,150,151,152,153,154,156,157,159,160,161,162,163,164,166,167,168,170,172,174,180,181,182,183,184,185,186,187,188,189,193,195,197,198,201,202,203,205,206,209,212,213,215,217,218,219,220,221,224,226,227,228,230,231,232,233,234,235,237,241,242,246,247,250,251,252,258,259,261,264,266,267,271,272,273,274,277,278,280,281,283,284,287,289,290,292,293,298,299,301,303,305,306,307,308,310,312,313,315,316,317,318,319,321,322,323,324,325,326,327,328,329,330,331,334,335,336,337,338,339,340,341,342,343,344,345,350,357,360,364],set_active_coordin:235,set_al:231,set_alias:154,set_attr:159,set_class_from_typeclass:318,set_dead:231,set_descript:51,set_detail:[187,233],set_game_name_and_slogan:350,set_gamedir:267,set_kei:154,set_nam:51,set_password:144,set_task:195,set_trac:[42,141],set_webclient_set:350,setcolor:81,setdesc:[57,165,212],setgend:189,sethelp:[20,68,166],sethom:159,setlock:212,setnam:40,setobjalia:[43,159],setperm:[43,157],setspe:213,sett:98,settabl:[74,86,290],setter:39,settestattr:50,settingnam:80,settings_chang:107,settings_default:[4,5,34,47,104,127,141,142,344],settings_ful:104,settings_mixin:[141,142,262,297],settl:[111,116],setup:[5,15,18,26,40,47,61,63,67,71,85,93,96,100,116,120,127,129,131,138,139,144,156,164,170,184,196,224,228,230,233,247,259,271,284,293,298,302,303,305,312,318,334,335,342,360,364],setup_str:302,setuptool:[63,75],sever:[0,11,14,19,22,29,31,33,36,41,42,43,48,50,52,55,56,57,59,62,69,79,80,102,104,109,113,116,119,125,137,158,159,167,168,169,187,194,195,231,233,247,293,294,319,324],sex:189,shall:[126,134],shaman:[57,109],shape:[20,22,39,58,61,111,235,330],sharabl:109,share:[9,25,31,36,37,42,46,57,59,63,64,65,80,86,90,102,103,105,112,116,119,125,133,135,145,194,195,252,261,298,317,319,330,344,351],sharedloginmiddlewar:351,sharedmemorymanag:[317,333],sharedmemorymodel:[177,239,316,318,334,335],sharedmemorymodelbas:[148,177,239,246,256,316,318,334,335],sharedmemorystest:335,shaw:[77,79],she:[0,22,33,56,91,126,180,189,205],sheer:[43,159],sheet:[23,38,51,133,134,137,327],sheet_lock:58,shell:[7,23,25,26,36,57,58,59,60,63,75,86,87,90,100,103,108,110,125,128,287],shield:[29,77,86],shift:[14,15,27,108,195,232,238,344],shiftroot:232,shine:[21,233],shini:344,ship:[55,64,75,79,111],shire:62,shirt:182,shoe:182,shoot:[21,220,221,327],shop:[51,57,108,124,139,364],shop_exit:85,shopcmdset:85,shopnam:85,shopper:85,short_descript:54,shortcom:85,shortcut:[0,3,22,23,27,29,31,33,38,43,47,59,69,91,96,100,107,116,119,125,129,133,134,141,146,153,154,159,180,192,235,242,247,338,344],shorten:[42,46,125,252],shorter:[40,61,104,108,117,118,125,132,175,205,317,324,337],shortest:[39,206],shorthand:[43,89,126,159],shortli:[0,22,77],shot:220,should:[0,1,2,3,4,5,6,8,9,10,11,12,13,14,15,16,19,20,22,23,24,25,26,27,29,31,33,34,37,38,39,40,41,42,43,46,47,48,51,55,57,58,59,60,61,62,63,64,65,66,67,68,69,72,73,74,75,76,77,80,81,82,83,85,86,88,89,90,91,93,94,95,96,97,98,100,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,119,121,122,123,124,125,126,127,128,129,130,131,133,134,135,136,137,138,139,140,144,146,148,150,152,153,154,156,158,159,160,163,166,167,169,170,174,175,177,180,182,184,187,192,195,197,198,199,200,202,203,204,205,206,209,217,218,219,220,221,224,227,230,231,233,234,241,242,246,247,249,250,251,252,256,258,259,260,261,265,266,267,271,274,278,284,287,290,291,293,295,296,299,305,306,307,308,311,313,315,316,318,319,321,322,324,325,326,328,329,330,331,336,337,338,339,340,342,344,345,357,360,362],should_join:175,should_leav:175,should_list_cmd:166,shoulddrop:[221,247],shoulder:[58,182],shouldget:[221,247],shouldgiv:[221,247],shouldmov:[197,217,218,219,220,221,247],shouldn:[0,13,21,22,29,41,48,58,93,126,166,180,195,198,220,298],shouldrot:337,shout:29,shove:21,show:[0,12,13,14,20,22,24,26,27,30,33,35,37,38,39,40,42,43,46,48,49,52,54,55,57,58,60,61,62,63,64,68,69,70,71,73,81,82,85,86,90,91,95,96,97,98,101,102,103,104,105,106,110,111,114,116,117,118,119,120,122,124,126,127,128,129,131,133,134,136,137,138,139,144,156,157,159,164,165,167,169,171,179,181,182,185,186,187,188,190,202,215,220,221,226,233,234,235,247,249,251,252,265,267,276,326,328,337,338,339,344,357],show_foot:329,show_map:49,show_non_edit:251,show_non_us:251,show_valu:190,show_version_info:267,show_warn:267,showcas:[31,111,200],shown:[0,4,9,22,25,29,35,41,43,49,51,54,57,62,68,109,114,121,133,138,154,157,164,166,168,170,180,182,204,206,232,247,267,328,329],showtim:62,shrink:330,shrug:46,shrunk:101,shuffl:27,shun:[26,90,108],shut:[0,4,29,43,93,100,102,104,137,144,169,247,259,261,267,269,276,277,284,285,305,308],shutdown:[12,19,31,58,93,102,105,110,144,146,169,261,267,276,277,284,305,306,318,324,328],shy:[26,61,129],sibl:[10,57,96,102],sid:[43,157],side:[0,1,11,24,36,38,43,48,49,58,73,74,83,91,105,112,119,126,127,133,137,138,146,148,165,167,168,177,179,185,212,239,246,256,264,276,277,285,288,291,292,295,306,307,308,316,318,319,321,330,335],sidestep:19,sidewai:330,sigint:267,sign:[0,14,20,46,83,90,91,106,115,123,132,187,247,261,321,345],signal:[45,93,110,139,141,142,217,218,219,220,221,262,267,290,296,298,334,364],signal_acccount_post_first_login:107,signal_account_:107,signal_account_post_connect:107,signal_account_post_cr:107,signal_account_post_last_logout:107,signal_account_post_login:107,signal_account_post_login_fail:107,signal_account_post_logout:107,signal_account_post_renam:107,signal_channel_post_cr:107,signal_helpentry_post_cr:107,signal_object_:107,signal_object_post_cr:107,signal_object_post_puppet:107,signal_object_post_unpuppet:107,signal_script_post_cr:107,signal_typed_object_post_renam:107,signatur:[33,73,154,177,192,260,265,267,269,270,278,287,288,290,292,295,296,306,321,328,336,339,340,351],signed_integ:345,signedinteg:338,signedon:279,signifi:[14,241],signific:97,significantli:50,signup:4,silenc:269,silenced_system_check:127,silent:[10,43,62,118,157,164,271,279],silli:[60,89,96,109],silvren:[55,90],similar:[0,11,13,20,21,22,25,33,41,48,51,55,58,64,67,68,73,77,86,89,90,96,102,106,121,125,129,136,137,140,144,154,156,170,180,188,197,205,217,218,219,220,221,235,239,247,306,308,316,319,324,328,344,362],similarli:[58,62,90,112,218,234,315],simpl:[0,2,4,5,6,9,10,13,14,15,17,25,26,28,30,31,33,35,38,39,40,41,43,46,49,50,55,56,57,58,59,60,61,64,67,69,70,73,74,76,77,81,85,86,88,89,90,91,95,96,98,100,103,105,108,109,111,112,116,117,118,119,120,122,123,124,126,132,133,135,139,159,174,179,180,181,186,187,188,189,194,197,199,203,204,206,212,213,214,215,217,218,219,220,221,223,224,231,232,233,235,236,246,247,250,252,259,277,286,288,322,323,354,355,357,364],simpledoor:[141,142,178],simplemu:24,simpler:[10,15,38,43,51,56,158,159,325,362],simpleresponsereceiv:269,simplest:[6,29,58,73,90,116,153,322,345],simpli:[5,8,11,12,13,17,20,21,22,23,25,29,31,37,38,39,40,41,47,49,51,55,58,59,61,63,71,72,73,80,81,83,85,96,102,103,104,109,112,114,118,121,123,125,127,128,131,132,138,140,144,152,153,154,170,171,174,175,180,186,187,196,197,200,206,213,215,217,218,219,220,221,224,232,239,247,318,322,323,327,329,344],simplic:[22,39,43,55,126,171,186,232],simplif:[45,116],simplifi:[10,69,94,100,111,116,118,192],simplist:[116,123,132,137,205,214],simul:[33,73,93,213],simultan:[58,88,116,344],sinc:[0,1,3,4,5,6,9,10,11,13,14,19,21,22,23,25,26,27,28,29,31,33,34,35,38,39,40,41,42,43,44,47,48,49,50,51,54,55,56,57,58,59,60,61,62,64,69,74,76,80,83,84,85,86,88,89,90,91,96,97,100,102,104,110,111,114,115,116,118,119,121,122,123,125,126,127,131,133,134,135,138,144,146,148,152,153,154,159,167,168,169,175,176,179,180,181,184,187,199,206,215,217,218,219,220,221,227,232,233,241,247,251,252,257,261,267,269,272,284,289,291,299,305,306,308,315,316,317,318,322,323,324,326,328,331,334,337,340,341,342,344,357],singl:[0,5,10,14,16,22,23,31,33,37,38,43,44,48,51,55,57,58,59,61,64,67,73,77,83,87,88,90,95,96,105,108,111,112,114,119,122,125,127,128,129,139,144,150,157,159,165,176,177,180,204,209,215,217,218,219,220,221,233,234,235,247,251,252,261,299,306,308,317,319,321,322,327,328,330,336,341,344,357],single_type_count:182,singleton:[84,105,115,174,257,260,323],singular:[58,61,247],sink:26,sint:52,sir:46,sit:[11,14,29,33,47,55,63,80,83,90,95,96,119,121,123,125,167,198,199,206,224,232,233,242,258,261,280,324,339,342],sitabl:125,sitat:233,site:[8,16,17,23,37,69,71,79,80,90,92,97,98,100,101,103,111,133,134,145,312,362],site_nam:59,situ:[11,318,325],situat:[0,6,11,22,33,37,42,43,46,62,76,83,86,102,105,119,125,131,153,154,159,194,334],six:[73,91,185,215],sixti:62,size:[16,24,42,49,58,97,101,108,111,137,138,141,235,269,283,321,327,329,330,334,337,344],size_limit:344,skeleton:123,sketch:[116,138],skill:[28,29,30,55,60,61,70,73,79,110,116,121,127,133,134,205,206,327],skill_combat:73,skillnam:73,skin:109,skip:[31,33,41,43,49,51,61,62,75,88,100,106,109,115,131,144,158,159,200,247,316,325],skipkei:296,skippabl:129,skull:109,sky:[102,132],slack:79,slam:188,slash:[20,38,41,55,73,116,122,232],slate:111,sleep:[10,29,33,73],slew:[61,73,75,322],slice:[119,156,321,329],slice_bright_bg:156,slice_bright_fg:156,slice_dark_bg:156,slice_dark_fg:156,slight:[8,91,184,195],slightli:[42,62,63,79,116,123,145,177,187,218,234,362],slightly_smiling_fac:138,slip:343,slogan:9,slot:[58,134,187,188,218,220,252],slow:[27,116,176,213,231,235,251,280,286,321,341,344],slow_exit:[141,142,178],slower:[62,77,90,93],slowexit:213,slowli:79,slug:[175,239,318,362],slugifi:362,small:[4,14,15,16,25,30,33,37,55,57,58,61,63,69,70,79,81,85,90,91,93,96,97,98,108,111,122,123,124,127,128,139,185,220,224,235,290,326,327,330,344],smaller:[13,14,16,38,101,330],smallest:[58,62,80,90,184,327],smallshield:86,smart:[41,77,91,235],smarter:109,smash:[61,224,227],smell:61,smelli:109,smile:[33,43,165],smith:327,smithi:29,smoothi:203,smoothli:134,smush:48,snake:136,snap:82,snapshot:131,snazzi:78,sneak:242,snetworkmethodssupportunicodeobjectsaswellasstr:94,snippet:[10,13,21,31,43,55,64,80,109,114,139,169,276,291,343,344],snoop:103,snuff:26,social:[55,71],socializechat:299,soft:[4,64,139,205,364],softcod:[129,139],softli:78,softwar:[36,63,90,131],solar:62,soldier:85,sole:[57,69,146],solid:[49,55,114],solo:[20,63,124],solut:[0,9,14,25,27,29,39,56,69,73,85,90,91,103,111,115,118,121,122,125,127,138,168,242],solv:[21,27,44,49,61,63,77,97,111,203,232],some:[0,3,4,5,6,8,9,11,12,13,14,15,16,20,21,22,23,24,25,26,27,28,29,31,33,36,37,38,40,42,43,45,46,48,49,50,51,55,57,58,60,61,62,63,64,67,69,70,72,73,74,75,77,78,79,80,82,83,85,86,87,89,90,91,94,95,96,97,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,121,122,123,124,125,126,127,128,131,133,134,136,137,138,139,144,153,154,159,161,165,168,169,175,176,179,180,181,186,195,197,198,204,205,212,215,218,219,220,221,226,227,230,232,233,234,235,242,247,251,252,256,269,271,276,279,305,318,321,322,327,328,331,334,337,338,344,357,362],some_long_text_output:329,somebodi:[0,138],somehow:[33,40,73,80,87,90,113,140,182,326],someon:[0,1,29,33,43,46,48,49,58,60,80,85,90,96,103,107,115,117,118,119,138,144,165,182,226,231,232,247],somepassword:23,someplac:231,someth:[0,3,4,6,8,9,10,11,12,14,20,22,23,25,27,29,30,33,38,39,40,41,43,44,46,49,51,52,56,57,58,59,60,61,62,64,65,67,68,69,70,71,72,73,75,80,82,83,85,86,89,90,91,93,95,96,102,104,107,108,109,111,114,115,119,123,125,127,128,129,133,134,135,137,138,139,144,152,154,159,165,166,167,179,180,182,189,197,198,200,204,206,213,217,218,219,220,221,232,233,234,235,242,247,252,306,318,322,328,329,338,344,362],sometim:[6,22,27,33,40,42,50,51,60,62,64,80,86,91,93,95,96,102,109,110,119,136,138,166],somewhat:[4,22,41,57,127,138,180],somewher:[0,12,37,43,73,80,90,109,121,125,131,159,175,239,318,344],soon:[42,61,69,72,96,100,105,127,226,296,344],sophist:[10,27,55,108,116],sorl:4,sorri:[80,242],sort:[3,6,11,31,39,49,59,61,64,69,73,83,84,90,105,110,112,116,117,135,140,179,190,217,218,219,220,221,233,247,252,256,317,318,328,357,362],sort_kei:296,sought:[144,151,175,239,247,316,318],soul:111,sound:[22,29,37,58,61,80,82,83,102,104,111,115,131,138,205,291],sourc:[0,4,9,10,12,15,16,17,20,21,22,23,27,31,36,37,46,47,55,57,60,63,64,67,68,72,75,76,79,88,89,94,96,97,108,122,127,128,130,131,134,139,141,144,145,146,147,148,150,151,152,153,154,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,173,174,175,176,177,179,180,181,182,184,185,186,187,188,189,190,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,209,210,211,212,213,214,215,217,218,219,220,221,223,224,226,227,228,230,231,232,233,234,235,237,238,239,241,242,244,245,246,247,249,250,251,252,254,255,256,257,258,259,260,261,263,264,265,266,267,269,270,271,272,273,274,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,298,299,300,302,303,304,305,306,307,308,310,311,312,315,316,317,318,319,321,322,323,324,325,326,327,328,329,330,331,333,334,335,336,337,338,339,340,341,342,343,344,345,349,350,351,352,355,357,359,360,362,363],source_loc:[25,77,96,117,197,232,233,235,247],source_object:[171,174,186],sourceforg:[280,281,291,294],sourceurl:279,south:[0,22,43,44,49,111,121,159,200,299],south_north:111,southeast:159,southern:111,southwest:[20,43,159],space:[9,20,21,22,25,33,35,38,41,43,46,48,49,51,57,68,80,87,91,95,102,109,111,114,116,118,126,129,137,138,151,154,159,165,167,168,170,171,174,200,202,205,206,221,232,247,250,311,318,321,322,327,328,330,336,343,344],spaceship:121,spacestart:343,spaghetti:[13,328],spam:[12,28,103,116,138,310],spammi:[12,116],span:[16,17,108],spanish:76,spare:[217,218,219,220,221],spars:310,spatial:111,spawen:203,spawn:[47,53,55,93,120,122,137,138,141,157,159,203,218,219,249,250,251,252],spawner:[18,45,89,120,139,141,142,159,219,220,248,364],spd:134,speak:[0,15,19,41,43,46,60,94,96,113,117,118,126,133,165,197,206,241,247],speaker:[46,205,206],spear:109,special:[2,10,11,13,14,15,19,20,25,26,27,30,31,33,35,37,41,42,51,58,60,61,64,69,76,77,80,81,83,85,86,88,89,95,102,103,104,107,111,112,113,114,116,119,122,123,125,127,131,134,137,146,148,150,153,165,168,187,189,206,215,219,220,232,233,235,242,244,247,271,272,295,316,318,322,328,343],specif:[0,2,4,9,11,12,22,23,24,25,26,27,31,33,36,37,38,39,40,41,42,43,46,47,50,51,53,55,56,59,61,62,64,67,69,77,78,79,80,82,87,88,89,90,91,95,96,100,105,107,110,111,112,115,116,119,121,122,123,124,125,126,127,131,132,133,134,135,137,138,144,145,150,157,159,169,175,177,178,179,180,192,193,194,195,197,199,204,206,238,241,247,257,267,272,279,295,296,306,316,318,321,322,326,328,329,330,362],specifi:[3,11,12,16,19,21,22,27,29,31,38,39,43,46,49,51,54,58,62,63,68,83,84,86,88,90,91,98,100,102,103,105,109,111,112,114,115,119,123,127,134,136,150,151,159,166,175,180,182,183,185,187,188,192,194,195,199,203,204,206,215,218,219,220,235,241,242,247,250,251,252,257,278,304,319,321,322,324,327,328,331,338,339,340,344,357,362],spectacular:42,speech:[197,247],speechlock:241,speed:[11,47,62,82,86,87,93,116,134,213,252,285,319,341],spell:[15,19,28,57,60,109,112,215,220,252],spell_attack:220,spell_conjur:220,spell_heal:220,spell_nam:220,spellnam:220,spend:[39,89,91,119,217,218,219,220,221],spend_act:[217,218,219,220,221],spend_item_us:219,spent:220,sphinx:38,spin:[62,90],spit:[3,60,116],splashscreen:186,split:[9,25,31,33,41,58,91,104,105,111,118,121,123,131,136,138,151,167,168,184,232,235,249,293,308,321,322,329,331],split_2:138,split_nested_attr:159,splithandl:138,spoken:[0,46,72,197,205,206,247],spoof:315,spool:63,sport:87,spot:[57,64,144],spread:[70,73,109],spring:[82,124,187],sprint:213,sprofil:267,spunki:77,spyrit:24,sql:[7,36,56,57,64,86,125,139,302,364],sqlite3:[25,55,64,86,123,127,128,131,344],sqlite3_prep:305,sqlite:[23,86,128,305],sqllite:36,sqrt:39,squar:[38,39,129],squeez:86,src:[10,17,20,59,75,80,89,100,102,133,137,139,210],srcobj:[154,167],srun:271,srv:36,ssessionhandl:83,ssh:[9,25,40,55,64,83,90,94,105,110,141,142,262,275,306,307],ssh_interfac:90,ssh_port:90,sshd:103,sshfactori:287,sshprotocol:287,sshserverfactori:287,sshuserauthserv:287,ssl:[7,8,43,55,64,67,83,88,94,141,142,146,164,262,275,279,292,307],ssl_context:[288,292],ssl_interfac:90,ssl_port:90,sslcertificatefil:8,sslcertificatekeyfil:8,sslciphersuit:8,sslengin:8,ssllab:8,sslprotocol:[8,288,292],ssltest:8,sslv3:67,sta:327,stab:[29,122,232],stabil:[61,170,205],stabl:[37,40,56,60,100],stabli:[97,261],stack:[13,31,61,121,137,145,152,153,227,251,308,328,336],stackedinlin:145,stackexchang:127,stackful:336,stackoverflow:127,stacktrac:[251,336],staf:108,staff:[9,19,25,57,61,68,73,80,108,109,111,123,133,152,252,322],staff_onli:239,staffer:9,staffernam:9,stage:[2,36,56,61,77,111,123,131,133,145,173,244],stagger:279,stai:[1,31,49,51,63,90,91,121,125,126,138,235],stale:[100,125],stalker:362,stamina:[30,190,220],stamp:[27,43,96,105,125,137,144,148,157,169,246,256,299,304,318],stanc:[116,206],stand:[13,17,20,21,22,25,29,38,43,49,56,61,63,72,73,80,86,90,95,96,111,116,121,122,123,127,131,133,138,165,179,197,206,231,247,256,261,298,306,316,319,322,324,330],standalon:[67,103],standard:[0,1,6,8,9,15,21,27,30,41,43,50,57,58,59,63,64,79,83,88,91,95,103,113,114,116,120,126,131,136,139,141,144,156,185,186,206,234,241,247,287,289,294,311,316,321,330,331,336,345,364],stanza:277,star:[43,159],stare:131,start:[0,1,2,3,4,5,7,12,13,14,15,16,18,20,21,23,25,26,27,29,31,33,34,38,39,40,41,42,43,44,45,47,48,49,50,51,54,55,57,59,60,61,62,64,65,66,67,69,70,72,73,74,75,76,77,79,80,83,84,86,87,90,91,93,95,96,97,98,101,102,103,104,105,106,107,108,109,111,114,116,119,120,121,123,124,125,127,128,130,131,132,133,136,137,138,139,144,146,151,152,158,159,164,165,167,168,169,170,174,179,180,185,187,188,189,190,195,197,200,201,205,206,215,217,218,219,220,221,226,227,230,231,233,235,247,249,250,251,256,258,259,260,261,264,267,269,271,272,277,278,279,280,284,285,286,291,292,298,304,305,308,312,317,321,322,323,324,326,328,329,330,331,336,337,344,363,364],start_all_dummy_cli:298,start_attack:231,start_bot_sess:308,start_delai:[102,116,120,121,227,256,259,261,324],start_driv:121,start_evennia:267,start_hunt:231,start_idl:231,start_lines1:267,start_lines2:267,start_loc_on_grid:49,start_olc:249,start_only_serv:267,start_ov:51,start_patrol:231,start_plugin_servic:40,start_portal_interact:267,start_serv:277,start_server_interact:267,start_sunrise_ev:62,start_text:215,start_turn:[217,218,219,220,221],startapp:[69,86,133,134],startclr:[114,336],startedconnect:[264,278,279],starter:[9,136],starthour:25,startnod:[51,85,188,230,249,328],startnode_input:[51,188,230,249,328],startproduc:269,startservic:[270,312],startset:233,startswith:[41,43,84,159,321],starttupl:287,startup:[11,35,40,60,62,90,102,104,136,247,256,296,305,337],stat:[17,43,60,61,71,85,116,123,133,134,136,139,169,179,217,218,219,220,221,364],state:[11,13,14,31,33,42,43,50,51,55,56,64,80,95,100,102,105,110,114,116,121,122,126,127,131,137,138,144,150,152,153,156,163,171,174,201,212,217,218,219,220,221,224,227,231,233,252,256,258,259,261,267,287,316,326,328],state_unlog:163,statefultelnetprotocol:[290,298],statement:[10,13,14,27,31,42,49,51,55,58,59,83,86,94,95,96,118,119,124,247,322,343],static_overrid:[135,136,137],static_root:136,statict:[43,169],station:121,stationari:231,statist:[3,12,43,104,105,120,124,135,169,190,300,317,334],statu:[20,29,51,58,61,88,90,104,105,115,131,175,179,219,220,221,231,261,265,267,276,277,278,281,295,364],status:61,status_cod:269,stderr:234,stdin_open:100,stdout:[59,100,234,267,337],steadi:64,steal:[43,85,166],steer:121,step1:29,step2:29,step3:29,step:[0,4,7,8,13,14,21,23,29,31,33,36,38,39,41,43,45,46,50,51,58,63,69,73,77,82,85,86,91,97,100,102,106,108,121,122,123,126,127,128,134,138,139,158,180,233,259,261,271,283,294,298,299,308,318,322,325,326,328,329,363,364],stick:[15,33,38,43,51,63,113,157],still:[0,1,4,6,9,11,13,14,15,19,20,22,25,26,29,31,33,37,38,39,40,41,43,49,55,57,58,60,62,63,64,77,78,79,83,91,94,95,96,102,103,105,106,107,108,110,114,121,122,123,125,126,128,131,134,138,152,159,164,166,186,197,215,217,218,219,220,221,230,233,235,247,251,258,299,328,330,331,340,344],sting:111,stock:[34,55,85,101,210,357],stolen:[103,321],stone:[20,33,60],stoni:60,stop:[7,9,10,12,14,20,25,27,29,34,41,42,43,49,51,57,58,62,63,67,74,77,80,82,89,90,93,95,96,100,102,104,105,106,108,115,116,120,121,123,128,137,139,156,159,164,169,179,184,194,196,197,206,212,213,218,221,226,227,247,258,259,261,266,267,269,272,284,285,305,306,312,321,322,324,344,364],stop_driv:121,stop_evennia:267,stop_serv:277,stop_server_onli:267,stopproduc:269,stopservic:[270,312],storag:[11,13,23,28,29,33,43,47,56,64,73,85,86,96,102,125,133,138,148,169,174,177,198,205,235,242,246,247,251,252,256,259,261,274,306,310,314,316,318,323,338,339],storage_modul:323,storagecontain:102,storagescript:102,store:[0,2,9,13,15,21,23,27,28,29,31,33,34,37,39,40,41,43,44,46,47,49,50,55,56,57,58,60,61,64,69,73,75,80,82,85,86,87,89,91,95,97,100,102,104,105,112,113,115,116,119,121,123,125,127,128,131,133,134,135,136,137,138,139,144,146,148,153,156,157,159,160,162,167,168,174,177,179,187,188,195,202,204,205,206,210,213,214,219,223,232,233,235,241,242,246,250,251,252,253,257,258,259,260,261,267,271,272,273,274,277,279,280,281,283,291,294,299,305,306,307,308,310,312,316,317,318,319,321,323,324,325,326,327,328,329,334,336,338,339,340,344,357,362],store_kei:261,store_result:48,store_tru:234,stored_obj:25,storekei:[85,261],storenam:85,storeroom:85,storeroom_exit:85,storeroom_kei:85,storeroom_key_nam:85,stori:[3,9,97,133],storm:[28,119],storypag:3,storytel:123,stove:247,str:[0,10,11,22,25,27,39,40,50,51,58,59,60,73,74,84,91,96,113,114,119,125,127,133,134,141,144,146,150,151,152,153,154,159,166,170,174,175,176,177,179,180,182,184,187,188,189,190,192,193,194,195,197,198,199,200,204,205,206,210,212,215,217,218,219,220,221,230,233,234,235,238,239,242,247,250,251,252,257,258,259,261,264,265,267,272,273,274,276,277,278,279,280,282,285,286,287,290,291,292,295,296,298,304,305,306,307,308,310,311,312,315,316,317,318,319,321,322,323,324,326,327,328,329,330,336,337,338,339,340,341,342,343,344,345,349,362],straight:[49,68,126],straightforward:[25,41,85,91,121,123],strang:[6,8,14,29,41,56,131,153],strangl:90,strategi:[42,221],strattr:[1,11,316],strawberri:234,stream:[106,276,280,306],streamlin:[36,179],strength:[11,57,58,60,61,73,80,116,134],stress:[93,298],stretch:111,stribg:344,strict:[10,251,321],stricter:251,strictli:[19,51,59,77,133,186,220,330],strike:[43,51,82,116,165,214,220,221],string1:344,string2:344,string:[5,9,11,12,13,15,19,20,22,23,25,27,29,31,33,34,35,38,41,42,43,49,50,54,55,57,58,59,60,62,68,71,76,82,83,84,86,87,88,89,90,93,95,96,97,104,109,111,112,113,114,115,116,119,124,125,127,129,133,134,137,138,139,141,142,144,146,148,150,151,154,157,159,165,166,167,168,169,170,174,175,176,177,179,180,182,186,188,197,198,199,200,203,204,205,206,210,211,215,217,218,219,220,221,230,231,235,238,239,240,241,242,246,247,250,251,252,256,259,261,267,269,272,276,279,287,290,291,293,299,304,306,308,311,315,316,317,318,319,320,321,324,325,326,327,329,330,336,337,338,340,341,342,343,344,345,362,364],string_from_modul:344,string_partial_match:344,string_similar:344,string_suggest:344,stringproduc:269,strip:[21,22,33,38,41,43,51,58,74,81,85,108,109,114,118,123,151,159,167,168,206,252,272,287,290,291,321,322,328,336,344],strip_ansi:[81,321,343],strip_control_sequ:344,strip_mxp:321,strip_raw_ansi:321,strip_raw_cod:321,strippabl:328,stroll:213,strong:[80,114,123,343],strongest:80,strongli:[64,73,95,124,205],strp:122,strr:204,struct:56,structur:[9,11,33,37,41,43,45,47,48,49,51,55,56,59,63,64,68,69,80,83,88,95,96,109,119,133,134,136,138,159,206,247,250,251,252,291,296,319,325,328,354,361,362],strvalu:[11,316,317],stuck:[51,63],studi:59,stuff:[3,9,11,21,29,31,37,38,47,49,51,57,61,67,73,80,85,96,102,105,107,109,119,138,153,159,189,234,261,305,350],stumbl:97,stupidli:34,sturdi:327,stutter:108,style:[3,16,20,21,27,33,37,38,40,41,45,51,55,57,58,61,79,87,95,106,111,114,116,122,124,129,138,148,154,156,167,182,183,188,199,201,217,234,247,251,326,330,344],styled_foot:154,styled_head:[33,154],styled_separ:154,styled_t:[33,154],sub:[9,11,36,37,38,57,65,69,88,90,108,109,116,119,137,138,143,149,172,173,178,180,206,234,236,238,240,243,250,252,253,262,314,320,321,343,346],sub_ansi:321,sub_app:133,sub_brightbg:321,sub_dblspac:343,sub_mxp_link:343,sub_text:343,sub_xterm256:321,subclass:[27,64,105,109,118,119,125,159,180,235,246,251,256,277,290,296,315,318,335,340,344],subdir:127,subdirectori:[37,127],subdomain:[8,90,103],subfold:[47,86,95,96,134,135],subhead:38,subject:[36,39,81,86,90,124,189,199],submarin:121,submenu:[106,180,249],submenu_class:180,submenu_obj:180,submiss:[188,357],submit:[17,37,103,133,188,357,362],submitcmd:188,submodul:291,subnegoti:291,subnet:[12,43,157],subpackag:[88,127],subprocess:[25,344],subreddit:79,subscrib:[12,33,34,41,43,53,58,64,80,115,128,132,146,164,174,175,176,219,261,278,309],subscript:[33,43,58,79,115,132,164,173,176,177,261],subsequ:[10,11,33,43,95,116,164,322,344],subsequent_ind:330,subset:[56,112,127],subsid:125,substitut:[51,71,87,106,247,321,343],substr:321,subsubhead:38,subsubsubhead:38,subsystem:[9,63,86,242],subtitl:17,subtract:[85,250],subturn:116,subword:344,succ:241,succe:[61,116,185],succeed:[185,234],success:[73,116,123,134,144,175,179,185,217,218,219,220,221,224,232,233,242,251,267,271,318,326,338,344,362],success_teleport_msg:233,success_teleport_to:233,success_url:362,successfuli:203,successfulli:[10,28,33,36,60,77,110,111,130,144,203,232,235,247,259,267,279,311,318,362],suddenli:[26,97,318],sudo:[63,67,100,103],suffic:[17,57,61],suffici:[86,90,94,119],suffix:[27,97,114,321,336,337,344],suggest:[1,23,25,37,38,48,51,52,55,61,68,70,90,95,97,125,138,140,151,166,179,197,206,233,247,344],suggestion_cutoff:166,suggestion_maxnum:166,suit:[29,34,55,64,117,139,170,344,362],suitabl:[21,25,33,37,55,63,64,80,83,87,88,90,112,131,152,242,301,308,324,328],sum:[37,82,91,139,153],summar:[0,79,139],summari:[0,7,46,79,96,110,123,180],summer:187,sun:62,sunris:62,sunt:52,super_long_text:329,superclass:145,superfici:205,superflu:343,supersus:242,superus:[2,4,5,6,9,12,13,14,19,20,21,23,25,41,43,58,60,63,81,95,96,111,122,134,144,148,158,169,175,182,200,212,231,241,242,247,252,267,318,322,324],supplement:51,suppli:[10,11,27,34,37,43,51,58,59,63,68,72,74,84,88,93,102,105,109,112,114,115,116,123,127,148,153,154,157,159,164,169,170,176,180,184,186,187,190,246,247,251,256,261,278,308,318,326,329,331,341,344],supporst:294,support:[2,4,7,8,9,11,23,26,33,37,38,40,42,43,44,47,49,50,51,56,57,58,61,63,64,65,66,70,74,75,76,81,83,86,87,90,91,94,98,100,103,109,110,113,114,123,126,139,156,165,183,184,185,187,198,234,241,247,250,251,252,261,272,280,281,282,283,287,289,290,291,292,294,296,307,316,321,325,328,329,330,336,341,344,349,364],supports_set:[74,272],suppos:[0,33,51,61,76,83,109,119,138,144,180],supposedli:[67,205,291],suppress:[24,289],suppress_ga:[141,142,262,275],suppressga:289,supress:289,sur:79,sure:[0,2,4,5,8,9,11,12,13,14,15,19,20,21,23,25,28,29,30,31,33,36,37,38,41,42,43,44,49,51,57,58,60,61,62,63,67,71,72,73,75,78,80,81,86,87,89,90,91,93,95,96,97,100,102,105,106,109,110,111,112,113,115,116,118,123,125,126,127,128,131,133,134,136,137,138,140,144,146,152,153,154,156,159,164,167,174,176,180,182,196,200,204,205,206,211,215,220,223,227,231,232,233,238,241,242,247,251,252,258,259,267,271,277,279,284,305,311,312,313,315,317,318,321,323,325,328,334,340,341,343,344,360,362],surfac:[58,82,103],surpris:[22,39,69,80,91],surround:[31,33,43,111,116,119,129,157,200,231,340,344],surviv:[5,11,27,28,31,43,50,51,84,102,105,115,116,126,146,153,169,180,256,257,261,324,326,328],suscept:[27,56,242],suspect:133,suspend:[100,103,106],suspens:102,suspici:51,suspicion:133,svn:[36,108],swallow:[96,118,276,343],swap:[43,114,127,137,138,159,187,202,318,326],swap_autoind:326,swap_object:318,swap_typeclass:[60,125,144,318],swapcas:321,swapcont:138,swapper:318,swedish:76,sweep:102,swiftli:10,swing:[28,29,33,82],switch1:129,switch2:129,switch_opt:[156,157,158,159,164,165,166,167,168,169,187],sword:[20,28,33,61,73,77,85,86,119,179,206,252,341,344],symbol:[14,15,33,49,75,106,108,119,200,215,235,329],symlink:[38,63],symmetr:330,sync:[64,83,105,131,174,285,290,305,306,307,308,316,325],sync_port:308,syncdata:[307,308],syncdb:127,synchron:337,syntact:[242,344],syntax:[5,6,13,14,15,21,22,23,29,33,41,43,46,48,51,55,58,60,62,76,80,91,97,114,119,123,129,134,141,142,154,158,159,167,168,170,180,185,187,188,234,242,247,267,279,306,318,320,321,336,364],syntaxerror:60,sys_cmd:152,sys_game_tim:59,syscmdkei:[33,53,141],syscommand:[141,142,149,155,247],syslog:209,sysroot:75,system:[0,2,4,5,9,10,11,19,21,22,23,26,27,28,29,31,34,36,37,38,39,40,41,44,46,47,49,53,55,56,59,60,62,63,64,67,74,75,76,77,79,81,83,84,85,86,87,90,93,95,97,102,103,104,105,107,108,109,110,111,112,114,115,119,121,122,125,126,127,128,129,131,132,134,136,138,139,140,141,142,145,146,148,149,150,152,154,155,156,158,166,168,170,172,175,176,177,179,180,182,186,193,194,195,196,197,198,199,201,202,203,205,206,209,210,211,215,217,218,219,220,221,226,230,233,235,236,239,241,242,246,247,249,252,253,259,267,290,296,304,314,318,322,324,327,328,337,363,364],system_command:33,systemat:39,systemctl:8,systemd:67,systemmultimatch:168,systemnoinput:168,systemnomatch:168,systemsendtochannel:168,tab:[9,14,26,30,36,59,69,95,96,106,114,137,138,321,330,343],tabl:[0,4,13,15,43,45,46,48,53,58,59,64,69,82,88,97,111,113,114,119,125,128,134,154,156,166,169,188,291,310,321,327,329,330,341,344],table_char:327,table_format:156,table_lin:330,table_str:58,tablea:327,tableb:327,tablechar:[58,327],tableclos:[88,291],tablecol:330,tabledata:329,tableevmor:329,tableopen:[88,291],tablet:16,tabletop:[58,73,79,124,217,221],tabsiz:[321,330],tabstop:343,tabularinlin:315,tack:[20,119,153],tackl:37,tactic:[73,116],taction:116,tag:[9,12,13,18,20,24,27,33,45,48,51,53,55,57,58,64,73,74,86,87,88,95,96,100,109,114,119,124,125,134,136,137,138,139,140,141,142,145,159,173,177,183,187,189,199,204,206,209,230,232,239,241,244,251,252,254,282,296,304,314,315,317,318,321,324,327,330,341,364],tag_categori:315,tag_data:315,tag_kei:315,tag_typ:315,tagadmin:315,tagform:315,tagformset:315,taghandl:[112,125,315,319],taginlin:[145,173,237,244,254,315],tagkei:[241,319,324],taglin:17,tagnam:252,tagstr:[252,319],tagtyp:[112,317,319,341],tail:[76,90,100,267,337],tail_log_fil:[267,337],tail_log_funct:337,tailor:[4,69,357],take:[0,3,4,9,10,11,13,14,15,16,17,19,20,21,22,25,26,27,28,29,31,33,37,40,42,46,49,51,52,55,56,57,58,62,64,69,70,74,75,76,77,79,80,83,85,90,91,95,96,103,104,105,106,108,109,111,114,116,119,121,122,123,124,125,126,127,133,134,136,138,139,144,146,151,152,156,168,174,177,179,182,184,187,188,200,203,204,206,209,213,215,217,218,219,220,221,230,231,233,242,250,252,271,287,295,307,308,317,318,321,326,327,328,329,338,344,345],taken:[31,43,56,64,103,116,120,121,123,165,186,209,217,218,219,220,221,287,311,321,324],takeov:309,taladan:48,tale:3,talk:[23,27,33,34,37,40,41,43,46,58,60,90,91,131,138,165,179,205,206,214,233,264],talker:[55,61],talki:64,talking_npc:[141,142,178],talkingcmdset:214,talkingnpc:214,tall:[43,129,165,206],tallman:[43,165],tandem:61,tantal:14,target1:220,target2:220,target:[21,25,28,29,30,33,34,40,43,58,73,88,103,114,116,119,123,127,136,138,144,154,159,164,165,169,177,182,185,187,197,199,215,217,218,219,220,221,231,235,247,317,321,324,328,344],target_loc:[197,213,233,235,247],target_obj:242,targetlist:199,task:[0,27,36,40,41,91,93,94,102,110,112,138,193,195,215,260,261,344],task_handl:[141,260,344],task_id:[195,260],taskhandl:[141,142,253,344],tast:[22,34,133],tavern:206,tax:[75,93],taylor:79,tb_basic:[141,142,178,216],tb_equip:[141,142,178,216],tb_filenam:322,tb_item:[141,142,178,216],tb_iter:322,tb_magic:[141,142,178,216],tb_rang:[141,142,178,216],tbbasiccharact:217,tbbasicturnhandl:217,tbearmor:218,tbequipcharact:218,tbequipturnhandl:218,tbeweapon:218,tbitemscharact:219,tbitemscharactertest:219,tbitemsturnhandl:219,tbmagiccharact:220,tbmagicturnhandl:220,tbodi:134,tbrangecharact:221,tbrangeobject:221,tbrangeturnhandl:221,tchar:116,tcp:[55,103],tcpserver:[40,312],teach:124,team:[33,36,61,64,70,108,131],teardown:[127,196,228,293,342],teaser:90,tech:79,technic:[4,6,9,10,11,19,20,23,39,40,51,64,70,83,90,108,112,114,119,125,139,179],techniqu:[29,139,321],tediou:[1,106,111],teenag:[21,103],tehom:[9,119],tehomcd:9,tel:[0,12,58,63,91,121,159],teleport:[12,14,20,43,58,85,122,140,159,165,233,241,322],teleportroom:233,televis:31,tell:[0,3,5,8,10,12,13,19,21,22,23,26,29,31,33,41,42,43,46,49,51,58,59,60,61,69,73,74,75,76,77,80,83,86,87,90,91,93,95,96,100,102,103,109,110,116,117,121,127,128,130,131,132,134,135,139,146,156,164,165,176,177,185,206,233,247,267,285,296,308,326,362],telnet:[9,15,25,30,40,43,55,63,64,75,79,83,94,100,101,103,105,110,114,137,138,141,142,169,262,275,280,281,282,283,287,288,289,291,292,294,298,306,307,343],telnet_:90,telnet_hostnam:54,telnet_interfac:90,telnet_oob:[88,141,142,262,275],telnet_port:[9,36,54,90,299],telnet_ssl:[141,142,262,275],telnetoob:291,telnetprotocol:[288,290,292],telnetserverfactori:290,teloutlock:241,temp:177,tempat:188,templ:200,templat:[2,3,4,5,27,31,43,47,64,81,87,104,107,109,123,125,131,134,135,136,137,138,141,142,145,165,167,188,230,267,296,306,307,316,320,327,336,355,362],template2menu:[51,328],template_nam:362,template_overrid:[4,135,136,137],template_regex:[316,336],template_rend:107,template_str:[51,87],templates_overrid:135,templatestr:327,templatetag:[141,142,346,356],templateview:362,tempmsg:[175,177],temporari:[6,11,110,122,127,131,153,177,198,217,218,219,220,221,261,328],temporarili:[20,26,31,43,51,60,90,97,102,127,164,169,175,195,203],tempt:[43,61,95,104,157],ten:[29,90,111],tend:[41,43,57,61,64,73,76,86,90,97,103,119,121,124,129,138,159,205,209],tent:[45,111,139],terabyt:25,term:[0,10,31,62,63,64,69,90,91,96,126,139,154,204],term_siz:[42,141],termin:[4,23,26,27,38,42,47,59,60,63,64,75,90,93,95,96,97,100,103,106,110,114,123,126,131,138,139,141,194,215,217,218,219,220,221,266,267,287,294,310,362],terminalrealm:287,terminals:287,terminalsessiontransport:287,terminalsessiontransport_getp:287,terrain:49,terribl:280,ters:102,test1:[11,74,330],test2:[11,33,74,114],test3:[11,330],test4:[11,330],test5:11,test6:11,test7:11,test8:11,test:[0,5,10,11,13,14,15,17,19,20,21,22,23,24,25,29,31,33,36,37,38,41,42,43,45,46,50,51,56,58,60,61,62,63,65,67,68,69,72,73,74,79,80,81,85,89,90,91,94,95,96,98,106,107,109,111,115,116,120,124,130,131,132,133,137,138,139,141,142,149,151,155,156,158,166,169,178,182,185,187,188,191,207,208,215,217,218,219,220,221,222,223,230,250,251,262,269,272,275,296,297,298,302,318,320,321,322,324,328,332,342,344,346,348,350,356,364],test_:127,test_about:170,test_accept:196,test_access:170,test_add:196,test_add_valid:196,test_all_com:170,test_alternative_cal:127,test_amp_in:293,test_amp_out:293,test_at_repeat:228,test_attribute_command:170,test_audit:211,test_ban:170,test_batch_command:170,test_bold:293,test_c_creates_button:303,test_c_creates_obj:303,test_c_dig:303,test_c_examin:303,test_c_help:303,test_c_login:303,test_c_login_no_dig:303,test_c_logout:303,test_c_look:303,test_c_mov:303,test_c_move_:303,test_c_move_n:303,test_c_soci:303,test_cal:196,test_cas:127,test_cboot:170,test_cdesc:170,test_cdestroi:170,test_cemit:170,test_channel:170,test_channelcommand:170,test_char_cr:170,test_char_delet:170,test_clock:170,test_color:293,test_color_test:170,test_copi:170,test_creat:170,test_cwho:170,test_data_in:293,test_data_out:293,test_del:196,test_desc:170,test_desc_default_to_room:170,test_destroi:170,test_destroy_sequ:170,test_dig:170,test_do_nested_lookup:170,test_edit:196,test_edit_valid:196,test_emit:170,test_empty_desc:170,test_examin:170,test_exit:196,test_exit_command:170,test_find:170,test_forc:170,test_general_context:352,test_get:360,test_get_and_drop:170,test_get_authent:360,test_get_dis:360,test_giv:170,test_handl:196,test_help:170,test_hom:170,test_ic:170,test_ic__nonaccess:170,test_ic__other_object:170,test_ident:293,test_idl:303,test_info_command:170,test_interrupt_command:170,test_invalid_access:360,test_inventori:170,test_ital:293,test_large_msg:293,test_list:196,test_list_cmdset:170,test_lock:[170,196],test_look:170,test_mask:211,test_memplot:303,test_menu:215,test_messag:304,test_mudlet_ttyp:293,test_multimatch:170,test_mux_command:170,test_mycmd_char:127,test_mycmd_room:127,test_nam:170,test_nested_attribute_command:170,test_nick:170,test_object:170,test_object_search:127,test_ooc:170,test_ooc_look:170,test_opt:170,test_pag:170,test_password:170,test_perm:170,test_pi:170,test_plain_ansi:293,test_pos:170,test_quel:170,test_queri:[141,142,262,297],test_quit:170,test_resourc:[127,141,142,170,196,211,228,293,320,360],test_return_valu:127,test_sai:170,test_script:170,test_send_random_messag:228,test_server_load:170,test_sess:170,test_set_game_name_and_slogan:352,test_set_help:170,test_set_hom:170,test_set_obj_alia:170,test_set_webclient_set:352,test_simpl:127,test_simple_default:170,test_spawn:170,test_split_nested_attr:170,test_start:196,test_tag:170,test_teleport:170,test_toggle_com:170,test_tunnel:170,test_tunnel_exit_typeclass:170,test_typeclass:170,test_upp:127,test_valid_access:360,test_valid_access_multisession_0:360,test_valid_access_multisession_2:360,test_valid_char:360,test_wal:170,test_whisp:170,test_who:170,test_without_migr:127,testabl:127,testaccount:170,testadmin:170,testampserv:293,testapp:133,testbatchprocess:170,testbodyfunct:228,testbuild:170,testcas:[127,293,303,335,342,352],testcmdcallback:196,testcomm:170,testcommand:51,testdefaultcallback:196,testdummyrunnerset:303,testdynamic:127,tester:[90,119,285],testeventhandl:196,testform:327,testgener:170,testgeneralcontext:352,testhelp:170,testid:33,testinterruptcommand:170,testirc:293,testmemplot:303,testmenu:[188,328],testmixedrefer:335,testmod:308,testmymodel:127,testnod:51,testobj:127,testobject:127,testobjectdelet:335,testok:91,testregularrefer:335,testresult:251,testset:127,testsharedmemoryrefer:335,teststr:127,testsystem:170,testsystemcommand:170,testtelnet:293,testunconnectedcommand:170,testvalu:11,testwebsocket:293,text2html:[141,142,320],text:[0,1,2,5,7,9,10,13,14,15,17,18,21,22,24,26,30,33,34,35,37,40,43,45,46,48,50,52,53,55,56,57,58,59,60,63,68,72,73,76,77,78,79,80,81,83,85,86,87,88,90,91,95,96,97,98,100,108,109,110,111,112,118,121,123,124,126,127,131,133,137,138,139,144,146,151,154,156,158,165,166,167,175,176,177,179,180,187,188,189,190,193,195,197,199,202,205,206,210,215,221,232,233,234,239,242,247,249,250,252,256,264,265,272,278,279,282,285,286,287,290,291,295,296,306,307,308,311,312,316,317,319,321,322,324,326,327,328,329,330,336,338,341,343,344,345,357,364],text_:38,text_color:190,text_exit:[22,180],text_single_exit:22,textarea:[340,357],textbook:40,textbox:357,textfield:[86,133],textstr:74,texttag:[81,126,139,364],texttohtmlpars:343,textual:39,textwrap:330,textwrapp:330,than:[0,2,4,6,8,11,13,14,16,19,23,25,26,29,31,33,35,37,38,39,42,43,46,47,49,51,52,54,55,57,58,60,61,62,64,68,69,71,73,76,80,82,86,89,90,91,93,95,97,103,104,105,106,109,110,112,113,114,115,116,119,122,123,125,126,127,128,129,131,134,135,137,138,139,144,148,151,152,153,156,157,158,159,160,164,167,169,179,180,181,184,190,195,197,204,205,206,213,215,217,218,219,220,221,232,234,241,247,249,250,251,267,293,308,313,315,316,317,318,321,322,328,329,330,334,336,337,339,340,341,343,344,362],thank:[4,102,134,138,199,312],thankfulli:133,the_next_node_to_go_to:328,thead:134,thei:[0,1,2,4,5,6,8,9,10,11,12,13,14,15,16,17,19,20,21,22,23,25,27,29,30,31,33,34,37,38,39,40,41,42,43,44,46,48,51,55,56,57,58,61,63,64,66,68,69,73,75,77,78,80,81,83,85,86,88,89,90,91,92,93,95,96,97,102,103,105,106,107,108,109,110,111,112,113,114,116,118,119,121,122,123,124,125,126,127,131,132,134,136,137,138,139,140,144,145,152,153,156,158,159,164,165,167,168,169,174,179,180,182,185,187,189,194,200,205,206,217,218,219,220,221,232,233,234,235,241,242,246,247,250,251,252,253,256,258,259,261,267,287,288,290,291,292,296,299,305,306,307,308,310,315,316,321,322,323,325,328,330,336,344,345,357,362],theirs:[116,181,189],them:[0,2,4,5,6,9,10,11,12,13,14,15,16,21,22,23,25,26,27,28,29,30,31,33,34,35,37,38,39,40,41,43,46,48,50,51,54,55,57,58,59,60,61,62,64,66,68,69,71,73,74,75,76,77,80,82,83,85,86,87,88,89,90,91,95,96,97,98,102,103,104,105,106,109,110,111,112,113,114,115,116,118,119,121,122,123,124,125,126,127,128,131,133,134,135,136,137,138,139,140,144,150,151,152,154,156,158,159,164,166,167,168,170,175,181,182,183,187,188,189,190,192,194,197,203,204,206,215,217,218,219,220,221,224,231,233,234,238,242,247,252,258,261,267,285,287,290,298,302,305,306,308,315,316,318,319,321,322,324,328,336,340,343,362],themat:61,theme:[61,134],themself:219,themselv:[0,11,19,21,28,31,33,43,49,51,55,58,69,72,73,80,81,85,89,97,102,107,113,119,121,123,125,127,132,138,140,159,206,247,256,259,267,317,319,340],theoret:[31,108],theori:[31,42,57,79,123,139,152,364],thereaft:87,therefor:[0,49,62,68,91,102,122,127,158,180,192],therein:[15,33,156,167,187,203,233],thereof:[206,247],thi:[0,1,2,3,4,5,6,8,9,10,11,12,13,14,15,16,18,19,20,21,22,23,24,25,26,27,28,29,30,31,33,34,35,36,37,38,39,40,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,70,71,72,73,74,75,76,77,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,143,144,145,146,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,192,193,194,195,197,198,199,200,201,202,203,204,205,206,209,210,212,213,214,215,217,218,219,220,221,223,224,226,227,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,246,247,250,251,252,253,254,256,257,258,259,260,261,262,264,265,266,267,269,271,272,273,274,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,294,295,296,298,299,300,301,302,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,334,335,336,337,338,339,340,341,342,343,344,345,346,349,350,354,355,357,361,362,363],thie:51,thief:61,thieveri:[43,166],thin:[10,22,29,111,182,337],thing:[0,1,3,4,5,6,8,9,10,11,12,13,15,19,20,21,22,25,26,27,28,29,30,31,33,34,37,39,40,41,43,46,47,48,49,50,51,55,58,59,60,61,63,64,67,69,70,71,73,74,75,76,79,80,82,83,85,86,89,90,91,93,95,96,97,100,102,103,104,105,107,108,109,110,111,114,115,116,118,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,144,152,153,159,175,179,180,187,195,205,206,215,221,227,230,233,234,241,242,246,247,250,271,276,280,312,315,316,318,321,322,336,340,362],think:[1,20,29,31,34,37,46,48,51,55,59,61,62,67,70,73,79,81,91,94,95,96,97,109,111,112,114,115,135,138,139,308,362],third:[0,8,9,23,27,37,38,39,42,43,51,64,69,72,75,90,96,101,114,121,127,128,134,159,321],thirdnod:51,this_sign:309,thoma:[12,43,87,157],thorn:[11,89],thorough:26,those:[2,3,4,6,9,11,13,14,15,19,20,21,23,28,30,31,33,35,36,43,44,47,48,51,55,56,57,58,60,61,62,64,68,71,73,77,78,79,80,81,85,86,88,89,90,95,96,103,105,109,110,111,112,114,118,119,121,123,124,125,127,128,130,131,135,136,138,153,154,156,159,165,166,170,176,180,206,210,215,217,232,233,242,250,251,252,290,295,317,318,328,329,330,338,339,342,344,357,362],though:[2,10,11,12,13,14,15,22,23,26,27,30,31,37,39,41,51,57,59,60,62,63,64,69,72,75,79,81,89,90,91,94,96,97,100,102,103,104,110,116,119,121,122,123,126,127,128,129,130,131,138,144,154,180,181,190,217,218,220,221,226,233,234,247,252,321,328,344],thought:[23,39,61,79,80,84,138],thousand:[39,90,111,133],thread:[23,27,55,79,94,110,286,312,337,344],threadpool:[94,312],threadsaf:315,threat:103,three:[0,4,12,13,16,22,25,31,33,38,46,51,69,80,83,85,87,89,90,114,133,134,135,151,215,220,242,258,321,328],threshold:[228,310,322],thrill:85,throttl:[141,142,262,272,285],through:[0,1,2,5,9,13,14,17,23,25,27,30,31,33,34,38,39,40,41,44,46,48,51,52,55,56,57,58,59,60,61,62,64,68,69,70,71,76,77,80,83,85,87,88,89,90,91,93,96,97,98,99,103,104,105,106,107,108,109,110,114,116,117,119,121,122,124,136,138,139,140,141,144,153,159,166,174,179,187,192,210,212,217,218,219,220,221,235,240,242,246,247,251,257,258,261,267,269,274,283,287,290,296,299,304,306,307,315,317,318,322,324,327,328,329,336,343,344,357,362],throughout:[11,20,49,51,55,104,219],throughput:[175,324],thrown:116,thrust:232,thu:[14,19,31,33,39,43,44,51,54,57,58,73,80,83,86,96,108,111,114,121,122,123,125,134,135,136,156,160,181,205,242,247,261,299,313,316,317,324],thub:43,thud:189,thumb:[114,131],thumbnail:4,thunder:23,thunderstorm:122,thusli:75,tick:[23,33,38,51,64,115,131,132,139,219,231,233,261,299],ticker1:[115,261],ticker2:[115,261],ticker:[53,55,74,102,132,139,146,231,233,257,261,272],ticker_class:261,ticker_handl:[115,132,141,261],ticker_pool_class:261,ticker_storag:261,tickerhandl:[27,45,102,116,132,139,141,142,213,219,233,253,364],tickerpool:261,tickerpool_layout:261,ticket:94,tidbit:55,tidi:100,tie:[83,116,138],tied:[64,119,153,166,182,224,227,239],tier:90,ties:[49,135,161],tight:182,tightli:103,tim:[182,188,190,215,217,218,219,220,221],time:[0,1,2,4,5,6,8,9,10,11,12,13,14,17,20,21,22,23,25,26,28,29,30,31,34,36,37,39,40,41,42,45,49,51,52,53,54,55,56,58,59,60,61,63,64,65,66,67,69,70,72,73,75,80,83,86,88,89,90,91,93,94,95,96,100,104,105,106,109,110,113,114,115,116,117,119,121,122,123,124,125,127,128,129,131,132,133,135,138,139,144,146,148,150,151,153,154,157,164,169,175,177,179,184,185,187,194,195,198,200,203,204,212,213,215,217,218,219,220,221,223,227,231,232,233,239,246,247,250,252,253,256,259,260,261,267,269,271,273,274,279,285,290,292,299,300,304,305,306,308,310,315,316,318,319,321,322,323,324,329,331,334,335,337,340,344,363],time_ev:198,time_factor:[27,62,184,331],time_format:[59,344],time_game_epoch:[27,62,331],time_to_tupl:184,time_unit:[62,184],time_until_next_repeat:[102,259],timedelai:[29,260,342,344],timedelta:[338,345],timeeventscript:195,timefactor:62,timeformat:[337,344],timeit:93,timeout:[63,67,116,120,290,310,334],timer:[20,27,33,47,56,64,83,102,115,116,187,219,223,226,232,253,259,261,298,306,341],timerobject:102,timescript:331,timeslot:187,timestamp:[25,27,310,331],timestep:299,timestr:337,timetrac:[141,142,262,297],timetupl:62,timezon:[23,337,338,345],tini:[23,39,81],tinker:97,tintin:[24,280,281,291,294],tinyfugu:24,tinymud:[57,108],tinymush:[57,108,129],tinymux:[57,108],tip:[12,37,70,79,103,112],tire:[20,153],titeuf87:235,titl:[17,22,34,43,48,69,98,137,164,166,180,238,321,324,362],titlebar:137,titleblock:69,tlen:71,tls:8,tlsv10:67,tlsv1:8,tmp:[36,63],to_be_impl:362,to_byt:344,to_cur:219,to_displai:180,to_dupl:152,to_execut:344,to_exit:0,to_fil:209,to_init:221,to_non:247,to_obj:[144,154,247],to_object:176,to_pickl:325,to_str:344,to_syslog:209,tobox:276,toc:363,todai:[138,190],todo:58,toe:108,togeth:[0,3,8,9,14,22,29,31,33,38,43,48,49,57,58,61,64,68,71,73,83,89,90,92,116,119,122,123,124,125,126,127,131,138,150,159,161,175,187,202,203,205,206,232,233,246,252,276,295,308,315,321,322,336,341],toggl:[81,290],toggle_nop_keepal:290,togglecolor:81,toint:[109,250],token:[71,122,247,287,290,322,336],told:[44,59,90,91,95,113,114,123,128,340],tolkien:62,tom:[43,58,87,123,129,159,165,189,206,327],tommi:[19,80,87],ton:[57,82],tone:114,tonon:[43,159],too:[0,4,6,9,11,12,13,14,17,20,21,22,25,27,29,33,38,39,41,42,43,46,47,48,49,51,57,58,59,60,61,63,69,73,80,83,84,85,91,93,96,106,114,116,121,122,123,125,128,131,133,138,157,159,178,215,220,224,241,259,272,276,310,312,322,327,328,329,330,341,344],took:[127,344],tool:[4,6,7,8,23,29,53,57,62,63,64,86,90,96,100,108,109,111,112,114,119,136,139],toolbox:79,tooltip:137,top:[5,9,13,22,26,29,31,33,38,39,47,48,50,52,57,58,59,60,63,68,69,75,79,85,93,95,96,101,102,104,110,111,112,117,123,125,130,131,133,134,138,139,148,153,177,180,182,184,202,206,215,234,235,239,246,256,267,309,316,318,319,322,329,330,337],topcistr:238,topic:[4,10,20,31,33,40,42,43,55,68,69,86,93,94,105,119,126,166,217,218,219,220,221,238,341,357,362],topicstr:238,tos:241,tostr:276,total:[27,43,62,80,82,91,93,102,104,105,114,118,139,169,185,304,329,330,331],total_num:334,touch:[8,38,54,60,96,97,103,104,114],tour:91,toward:[22,33,40,42,91,102,111,190,200,221,231],tower:[111,187,233],tportlock:241,trac:94,trace:[83,96,195,304,328],traceback:[6,13,27,57,60,95,97,102,110,114,123,127,133,135,195,202,250,276,318,322,337,344],tracemessag:304,track:[11,27,30,49,57,61,64,73,77,82,86,95,98,99,100,102,105,116,121,128,132,133,138,144,153,221,257,278,279,284,287,290,305,310,318,325,326,338],tracker:[43,61,70,131],trade:[46,179],tradehandl:179,trader:46,tradetimeout:179,tradit:[10,15,36,73,74,83,90,103,114,116,138,235,290,306,329],tradition:[57,83],traffic:[8,103,280],train:79,traindriv:121,traindrivingscript:121,training_dummi:73,trainobject:121,trainscript:121,trainstop:121,trainstoppedscript:121,trait:[27,38,73,252],transact:179,transfer:[85,133,153,278,288,292,330],transform:[36,175],transit:[89,124],translat:[14,40,45,79,87,88,113,114,126,205,206,252,269,321],transmiss:209,transmit:113,transpar:[67,105,126,137,138,246,261],transport:[276,287,296],transportfactori:287,transpos:126,trap:[14,82,122],traumat:51,travel:[49,82,83,88,96,213,235],travers:[11,44,49,80,85,89,121,197,212,213,231,232,235,241,247],traverse_:33,traversing_object:[197,212,213,235,247],travi:[45,139,364],tre:43,treasur:[9,235],treat:[10,14,33,64,95,96,105,111,112,119,125,138,144,150,153,175,189,247,252,308,328,330,341],tree:[3,11,33,38,43,47,51,61,63,64,77,80,96,131,140,180,206,215,234,247,252,267,296,312,328,344],tree_select:[141,142,178],treestr:215,treshold:334,tri:[11,12,14,24,29,33,43,51,58,61,80,83,87,90,91,105,107,113,116,119,133,138,151,169,179,181,188,224,232,233,271,310,344,345],trial:[94,106,293],tribal:111,trick:[8,22,51,79,138,318,357],tricki:[109,126,127,138],trickier:[9,69],trigger:[21,24,31,33,36,42,46,49,51,56,57,69,74,83,84,89,100,105,107,114,115,116,117,118,121,134,135,138,144,146,150,151,154,156,170,175,180,198,200,201,231,233,246,247,252,259,261,269,272,276,298,305,309,324,336],trim:321,trip:96,tripl:[27,38,96,114,336,344],trivial:[27,33,40,42,91,93,138],troll:12,troubl:[5,8,9,23,41,46,58,63,70,75,91,105,131,139,363],troubleshoot:9,troublesom:[12,13,14],trove:9,truestr:188,truli:[0,12,39,41,105,187],trust:[19,43,51,57,169,322],truth:42,truthfulli:33,try_num_prefix:151,ttarget:116,tto:290,ttp:43,tty:[9,100],ttype:[55,141,142,262,275,287,290],ttype_step:294,tuck:[111,224],tun:[43,159],tune:[67,126],tunnel:[0,20,22,44,49,58,121,159,292],tup:[39,206],tupl:[11,39,41,42,43,51,59,60,80,86,87,88,90,109,116,119,134,141,144,151,157,159,167,168,176,179,180,184,185,189,192,200,206,219,220,230,235,241,242,247,250,251,252,261,264,276,277,287,288,292,299,306,316,319,321,323,324,326,328,329,331,336,337,339,344],tupled:337,turbo:75,turkish:144,turn:[0,10,12,27,31,33,38,41,43,50,51,57,58,64,66,77,79,80,81,83,88,90,96,102,105,107,110,111,114,117,118,121,122,126,127,131,133,135,138,139,144,154,164,169,170,175,198,200,206,215,217,218,219,220,221,231,233,247,252,267,272,280,287,290,298,308,314,315,318,322,324,328,329,330,336,344,364],turn_act:116,turn_end_check:[217,218,219,220,221],turnbattl:[141,142,178],turnchar:219,tut:[122,233],tutor:230,tutori:[3,4,10,16,17,20,22,25,26,28,29,31,32,33,35,37,39,41,42,45,48,49,51,55,57,58,60,61,63,64,70,71,77,79,81,82,90,91,95,102,111,112,114,115,126,133,135,139,180,213,218,232,233,363,364],tutorial_bridge_posist:233,tutorial_cmdset:233,tutorial_exampl:[13,14,20,102,141,142,178],tutorial_info:233,tutorial_world:[20,22,63,122,141,142,178],tutorialclimb:232,tutorialevmenu:230,tutorialobject:[231,232],tutorialread:232,tutorialroom:[231,233],tutorialroomcmdset:233,tutorialroomlook:233,tutorialworld:[232,233],tweak:[8,9,25,57,58,67,97,102,109,117,119,125,138,312,321],tweet:[124,139,364],tweet_output:120,tweet_stat:120,tweetstat:120,twenti:58,twice:[25,51,62,116,195,200,221,328],twist:[10,27,29,33,40,63,72,75,79,97,103,247,264,267,269,270,276,277,278,279,284,287,290,293,295,296,298,305,308,312,337,364],twistd:[63,106,110,284,305],twistedcli:40,twistedmatrix:94,twistedweb:103,twitch:[41,116],twitter:[7,55,120,139,364],twitter_api:71,two:[0,4,11,13,14,15,16,19,22,23,25,26,27,28,29,31,33,34,38,39,40,41,43,44,46,47,49,50,51,57,58,64,65,67,68,69,73,74,76,80,83,84,85,86,88,89,90,91,92,95,97,100,102,103,104,105,108,109,110,111,112,113,116,119,121,122,123,125,126,127,129,131,133,134,135,137,138,139,140,152,159,177,179,180,185,199,200,204,212,213,215,219,221,224,233,234,247,249,267,296,307,308,317,319,322,328,330,336,337,344,345,364],twowai:[43,159],txt:[9,38,40,50,75,78,90,96,146,205,283,291,326,328],tying:90,typclass:206,type:[0,8,12,14,16,17,19,20,21,22,24,25,26,27,28,29,31,33,34,35,37,38,41,42,43,44,46,47,49,50,51,55,56,57,58,59,61,62,64,73,75,77,79,80,81,82,83,86,87,88,90,91,95,96,97,102,103,105,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,125,126,128,133,137,138,139,144,146,154,159,166,169,170,171,175,176,177,180,182,186,188,192,195,197,198,199,200,206,213,217,218,219,220,221,227,232,233,234,239,241,242,246,247,251,252,260,261,265,267,269,270,278,279,285,287,288,290,291,292,294,295,296,298,306,308,312,315,316,317,318,319,321,322,324,325,328,329,330,336,339,340,341,344,345,351,357],type_count:182,typecalss:195,typeclass:[0,2,5,9,11,12,13,20,21,22,25,26,27,33,34,39,44,47,48,49,56,58,60,61,62,66,69,73,76,77,80,82,83,84,85,89,91,96,102,105,107,109,111,112,116,117,118,120,121,122,123,127,132,133,134,139,141,142,144,145,146,147,148,153,159,164,173,175,176,177,178,182,187,191,194,195,198,203,206,212,213,214,217,218,219,220,221,226,233,235,237,238,241,242,244,245,246,247,251,252,254,255,256,257,259,261,305,323,324,341,342,344,357,360,362,364],typeclass_path:[43,102,119,125,148,159,256,317,318],typeclass_search:317,typeclassbas:96,typeclassmanag:[147,176,245,255],typeclassmixin:362,typedobject:[41,125,148,154,174,177,206,235,246,247,256,317,318,319,339,344],typedobjectmanag:[176,238,317],typeerror:[42,185,296],typenam:[22,144,146,148,175,177,179,182,184,187,189,195,197,203,204,205,206,212,213,214,217,218,219,220,221,223,226,227,231,232,233,235,239,246,247,251,256,259,274,300,316,318,331,334,335],typeobject:319,types_count:182,typic:[27,55,91,127,220,221,362],typo:[37,38,70,103,363],ubbfwiuvdezxc0m:37,ubuntu:[8,63,67,90,97,103,131],ufmboqvya4k:133,ufw:103,ugli:[56,109,137,338],uid:[100,148,279,286,307,308],uio:[57,79],uit:[22,180],ulrik:58,ultima:79,umlaut:15,unabl:[71,190],unaccept:33,unaffect:[51,116,219],unarm:218,unarmor:218,unassign:138,unauthenticated_respons:360,unavoid:115,unban:[12,157],unbias:185,unbroken:327,uncas:321,uncategor:341,unchang:[87,97,127,205,252,344],unclear:[30,363],uncolor:[81,114],uncom:[67,90],uncommit:131,uncompress:280,unconnect:[43,171,186],uncov:182,undefin:[36,86,112],under:[6,9,20,24,33,36,38,41,42,43,46,48,51,57,60,61,63,64,73,75,77,78,79,86,93,100,106,108,110,119,122,123,125,128,133,134,135,136,137,154,156,159,188,215,234,242,259,267,294,321,328,329,330,344,346,362],undergar:182,undergon:195,underli:[57,61,64,80,119,124,131],underlin:[330,343],underneath:[9,318],underscor:[0,38,51,74,88,95,97,114,119,152,344],underscror:152,understand:[4,10,15,24,25,26,29,30,31,33,37,38,39,41,42,44,48,49,55,60,61,63,79,81,83,91,95,96,103,104,105,109,111,113,114,123,124,127,131,133,134,136,139,151,152,204,205,206,312,321,364],understood:[83,91,111,127,295,296],undestand:25,undo:[50,103,326],undon:[43,156],undoubtedli:57,unexpect:[91,126,127,328],unexpectedli:334,unfamiliar:[63,74,80,88,90,118,124],unformat:[51,328,331],unfortun:[4,41,61],unhandl:60,unhappi:9,unhilit:343,unicod:[15,83,94,113,144,321,344],unicodeencodeerror:321,unicorn:119,unifi:[133,307],uniform:105,uninform:8,uninstal:63,uninstati:344,unintent:234,union:[31,51,152,224,328],uniqu:[2,12,13,20,31,33,35,36,38,40,43,46,51,55,57,60,61,64,71,80,83,84,90,95,96,102,105,109,112,119,123,125,127,137,138,144,150,152,154,159,164,169,171,175,176,181,184,186,194,200,204,205,206,212,215,218,219,231,233,238,247,251,252,261,264,276,277,285,298,299,307,308,317,318,319,324,326,338,341],unit:[27,31,34,36,37,45,47,55,62,64,79,82,107,124,130,139,176,184,198,219,269,324,331,344,350,364],unittest:[25,127,170,308,324,342],univers:[14,15,43,62,164],unix:[24,38,43,52,63,87,165,234,329,337,344],unixcommand:[141,142,178],unixcommandpars:234,unixtim:337,unjoin:179,unknown:[41,43,56,69,137,251,336,344],unleash:28,unless:[4,5,11,12,21,22,23,27,29,33,38,43,51,72,78,80,84,88,89,90,96,102,110,115,123,138,140,144,152,153,157,159,164,167,174,175,194,204,205,206,221,227,232,237,241,242,247,252,265,280,296,308,316,318,341,345],unlik:[37,51,64,73,90,107,127,180,219,318],unlimit:[235,259],unlink:159,unload:342,unload_modul:342,unlock:[58,77,80,316],unlocks_red_chest:80,unlog:[43,157,162,163,171,175,186,308],unloggedin:[105,141,142,149,155,201,308],unloggedincmdset:[35,43,105,163,186,201],unlucki:12,unmask:206,unmodifi:[151,168,187,328],unmonitor:272,unmut:[174,175],unnam:[112,152],unneccesari:113,unnecessari:[36,61],unneed:235,unpaced_data:276,unpack:[91,241],unpars:[74,87,151,295,296,336],unpaus:[100,102,259],unpickl:[83,276,316,325,340],unplay:[25,105],unpredict:344,unprivileg:252,unprogram:73,unpuppet:[43,96,107,123,156],unpuppet_al:144,unpuppet_object:[2,144],unquel:[20,43,80,122,156],unreal:79,unregist:135,unrel:[51,131,145],unrepeat:272,unreport:272,unsaf:[110,152,233],unsatisfactori:111,unsav:326,unsel:85,unset:[33,49,58,89,116,157,206,231,242,247,251,252,259,261,324,328,329,330,336,337],unsign:345,unsigned_integ:[338,345],unsignedinteg:338,unstabl:100,unstrip:151,unsubscrib:[43,58,115,164,261,278],unsuit:[19,251,319],unsur:[15,37,63,71,76,90,116,138,213],untag:137,untest:[24,61,63,127],until:[5,8,10,11,12,13,20,26,29,30,31,33,36,48,51,61,63,64,86,87,93,95,97,102,114,115,119,123,126,131,136,137,138,139,179,182,184,198,200,217,218,219,220,221,231,232,233,247,259,267,296,298,321,322,329,331,344],untouch:321,untrust:13,unus:[33,81,144,150,154,175,187,215,221,233,247,259,290,306,311,317,326],unusu:[103,119],unwant:139,unwield:218,unwieldli:153,upcom:54,updat:[2,4,5,8,9,11,13,14,20,23,24,28,29,30,33,36,38,39,43,45,49,51,55,57,58,61,62,63,64,68,71,73,75,76,79,81,83,84,86,88,89,90,91,95,97,98,100,102,115,116,123,127,133,134,135,136,137,138,139,145,146,153,154,159,164,167,169,170,174,175,183,187,195,206,220,233,239,242,246,247,249,250,252,257,283,285,286,291,305,306,308,310,315,318,325,326,327,328,329,330,334,344,357,360,362,364],update_buff:326,update_cached_inst:334,update_charsheet:58,update_current_descript:187,update_default:305,update_flag:306,update_po:49,update_session_count:306,update_undo:326,update_weath:233,updated_bi:192,updated_on:192,updatemethod:[137,138],updateview:362,upfir:106,upgrad:[63,64,75],upload:[4,63,64,90,100],upon:[14,29,61,80,86,90,96,100,103,113,117,123,188,210,217,218,219,220,221,258,269,278,310,329,362],upp:233,upper:[29,39,43,86,101,114,127,138,156,321],uppercas:[114,321],upping:114,ups:7,upsel:90,upsid:[41,235],upstart:[40,258],upstream:[26,64,104,128],upt:153,uptim:[12,27,43,62,169,281,331],urfgar:109,uri:[175,239,318],url:[8,38,43,64,70,90,98,131,134,135,136,138,141,142,146,164,175,239,286,296,312,318,343,346,353,356,362],url_nam:360,url_or_ref:38,url_to_online_repo:131,urlencod:69,urlpattern:[3,4,69,133,134,135],usabl:[4,43,66,114,123,159,180,190,219,241,310,328],usag:[0,5,12,21,22,23,28,29,30,33,38,41,42,43,51,58,60,64,68,71,73,81,82,85,90,91,93,94,109,115,116,119,121,123,124,129,154,156,157,158,159,164,165,166,169,170,171,174,179,180,181,182,184,185,186,187,188,189,199,200,202,203,205,206,210,212,213,214,217,218,219,220,221,224,230,231,232,233,234,235,241,250,267,326,328,330,334],use:[0,2,3,4,5,6,8,9,10,11,12,13,14,15,16,17,19,20,21,22,23,24,25,26,27,28,29,31,33,34,35,36,37,38,39,40,41,42,43,46,47,48,49,50,51,52,54,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,76,79,80,81,82,83,84,85,86,87,88,89,90,91,93,94,95,96,98,100,102,103,104,105,106,107,108,109,111,112,113,114,116,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,144,145,146,148,150,151,152,153,154,156,159,160,164,165,167,168,169,170,174,175,177,179,180,181,182,185,187,189,190,194,197,198,199,200,202,203,204,205,206,212,214,215,217,218,219,220,221,223,224,226,230,231,232,233,234,235,241,242,246,247,251,252,259,260,261,265,272,276,289,291,292,295,298,299,306,307,308,315,316,317,318,319,321,322,323,324,326,327,328,329,330,334,336,337,338,340,344,345,362],use_dbref:[206,247,341],use_destin:247,use_evt:329,use_i18n:76,use_item:219,use_nick:[144,206,247],use_required_attribut:[145,237,244,357],use_success_location_messag:203,use_success_messag:203,use_xterm256:321,useabl:235,used:[0,2,3,7,9,10,11,13,15,16,17,19,20,22,23,24,27,29,30,31,34,35,38,40,41,43,46,47,48,50,51,52,54,55,56,57,58,59,60,62,63,64,67,68,69,72,73,74,79,80,82,83,84,85,86,87,88,89,90,91,93,94,95,96,100,102,103,104,105,107,108,109,110,111,112,113,114,115,116,118,119,120,121,122,123,124,125,126,127,128,129,131,133,134,135,136,137,139,141,144,145,146,150,152,153,154,156,159,164,166,167,168,169,170,175,179,180,182,184,186,187,188,189,190,192,194,195,197,198,199,200,204,205,206,213,215,217,218,219,220,221,231,232,233,234,235,238,240,241,242,244,247,250,251,252,258,259,260,261,262,264,265,269,272,273,276,277,278,279,280,281,282,283,284,285,287,289,290,291,294,295,296,299,306,308,309,315,316,317,318,319,320,321,322,324,325,326,328,329,330,336,337,338,339,340,341,344,345,350,357,362,363],used_kei:80,useful:[0,1,4,5,10,11,12,13,14,15,16,17,18,19,20,22,23,25,26,27,28,29,30,31,34,36,37,38,39,41,42,43,46,47,48,50,51,53,57,58,59,60,63,64,66,69,70,80,81,87,89,90,91,93,95,96,102,104,107,109,110,111,112,114,115,116,119,120,123,124,125,127,131,132,133,138,139,150,152,153,154,156,158,159,166,167,168,170,178,179,180,194,195,199,205,206,210,233,234,235,241,247,251,252,259,267,287,316,318,322,328,331,340,344],useless:231,uselock:241,user:[2,4,7,8,10,11,12,13,14,20,22,23,25,28,29,30,31,35,36,37,38,40,41,42,43,49,50,51,52,55,60,63,64,65,66,67,68,70,71,72,74,75,76,77,79,80,81,85,87,88,90,91,93,95,97,98,100,101,104,105,107,109,113,114,119,121,122,123,125,126,127,133,134,135,136,137,138,139,144,145,146,148,151,154,157,159,164,169,174,175,176,177,180,182,187,189,193,195,200,201,206,209,210,215,219,221,227,233,235,239,241,242,247,252,259,262,265,271,279,286,287,290,295,296,306,308,311,316,318,321,326,328,329,330,336,338,344,345,349,357,362,364],user_change_password:145,user_input:51,user_permiss:[145,148],useradmin:145,userauth:[94,287],userchangeform:145,usercreationform:[145,357],usernam:[2,4,12,35,51,74,100,107,119,131,134,144,145,148,186,287,311,349,357],username__contain:119,usernamefield:357,userpassword:[12,157],uses:[0,5,9,13,15,16,17,22,23,29,30,31,33,34,38,39,40,44,57,64,68,69,80,81,86,88,90,94,98,107,109,112,113,114,115,119,124,125,127,130,131,136,137,152,179,185,187,199,201,206,219,226,227,233,234,235,242,256,261,276,296,319,336,337,338,344],uses_databas:344,using:[2,4,5,6,8,9,10,11,12,13,14,15,19,20,21,22,23,24,25,26,27,28,29,30,31,33,34,36,37,38,39,41,43,45,46,47,49,50,51,53,55,56,57,58,59,60,61,62,63,64,67,68,70,71,72,73,74,77,78,79,80,81,83,85,86,87,88,89,90,91,93,95,96,97,100,101,102,103,105,107,108,109,110,111,112,114,115,116,117,118,120,121,122,123,124,125,126,128,129,131,132,133,134,137,138,139,140,144,148,150,153,154,156,158,159,164,167,168,169,174,179,180,181,184,185,187,188,190,194,200,201,203,205,206,212,213,214,215,217,218,219,220,221,224,230,231,233,234,235,242,247,250,251,252,256,259,260,261,278,279,280,285,286,290,296,299,309,310,312,316,318,319,321,322,326,328,329,331,336,337,338,339,340,341,342,344,346,357,362,363,364],usr:[63,64,75,100],usual:[0,2,4,5,6,8,9,11,19,20,21,22,23,25,26,27,29,30,31,33,34,37,38,40,41,43,46,47,50,51,52,57,59,60,62,63,64,67,72,74,80,81,87,89,90,91,93,95,96,97,100,102,105,106,109,110,112,114,115,119,124,125,126,127,131,133,136,144,146,151,152,153,154,156,159,165,169,170,174,175,177,184,194,195,197,198,204,205,206,233,234,242,246,247,252,259,267,269,274,299,306,315,316,318,323,324,328,329,337,339,341,344],utc:[23,345],utf8:[23,36,70],utf:[15,24,58,74,111,113,272,278,295,330,344],util:[8,10,11,13,14,16,34,41,45,47,48,49,50,51,52,57,58,59,62,63,81,82,85,86,89,96,97,102,103,111,114,117,124,127,133,134,137,139,141,142,145,158,170,175,177,178,184,187,188,191,195,196,211,213,220,228,230,237,239,244,247,249,251,259,260,274,293,298,315,316,317,318,346,357,360,364],utilis:328,uyi:205,v19:63,vagu:21,val1:250,val2:250,val:[11,88,144,156,250,291,344],valid:[1,11,13,26,30,31,33,42,43,44,51,58,60,67,69,88,89,90,91,95,96,97,102,103,109,110,114,119,123,133,134,141,142,144,151,153,159,167,168,169,176,179,180,188,192,195,196,200,204,206,215,220,226,227,232,233,234,235,242,247,249,250,251,252,257,258,259,260,261,262,265,267,291,295,306,317,319,322,324,328,329,338,339,340,341,343,344,345,357,362],valid_handl:338,validate_email_address:344,validate_onli:242,validate_password:[51,144],validate_prototyp:251,validate_sess:308,validate_usernam:144,validationerror:[144,251,311,338,340],validator_config:144,validator_kei:338,validatorfunc:[141,142,320],valign:330,valu:[0,2,4,6,10,11,12,17,20,22,25,27,28,31,33,39,41,42,43,49,50,58,59,60,61,62,64,67,69,73,74,77,80,81,82,84,85,86,87,88,90,97,102,111,114,115,116,123,125,126,127,128,133,134,137,138,139,144,148,150,152,154,156,157,159,170,175,177,180,182,185,188,189,190,192,195,196,200,203,204,205,206,211,217,218,219,220,221,227,228,233,235,239,241,242,246,247,250,251,252,256,258,259,261,265,272,273,274,276,285,290,291,306,307,308,313,316,317,318,319,321,323,324,325,326,327,328,334,335,336,338,339,340,341,344,345,350,357,362],valuabl:122,value1:109,value2:109,value_from_datadict:340,value_to_obj:251,value_to_obj_or_ani:251,value_to_str:340,valueerror:[41,91,109,123,180,202,204,316,321,324,336,345],valuei:111,values_list:119,valuex:111,vanilla:[9,26,49,56,58,86,101,125],vaniti:51,vari:[30,40,60,64,82,108,114,125,131,193,205,221,306,316,318],variabl:[0,3,5,11,13,28,31,33,38,41,43,46,49,51,55,56,58,64,66,69,80,83,88,91,95,96,97,100,103,104,106,109,113,121,124,133,134,135,137,138,144,148,150,154,156,159,164,167,168,169,170,183,187,188,192,194,195,198,203,233,241,246,247,251,252,264,267,277,280,281,283,287,289,299,306,313,321,322,328,344,350],variable_from_modul:344,variable_nam:[192,195],variablenam:344,varianc:205,variant:[11,55,112,153,180,186,213,278],variat:[62,73,116,152,187,205,227],varieti:[55,82,116,120,219,220],variou:[5,6,11,15,33,37,40,41,46,47,48,53,57,62,67,69,73,77,81,88,89,90,93,94,97,102,103,105,109,110,112,114,115,116,123,124,125,127,137,139,152,168,184,205,206,215,219,220,231,232,242,246,247,252,253,261,299,324,330,341,342],varnam:291,vast:[23,60,86,108,111,119],vastli:64,vcc:205,vccv:205,vccvccvc:205,vcpython27:9,vcv:205,vcvccv:205,vcvcvcc:205,vcvcvvccvcvv:205,vcvvccvvc:205,vector:344,vehicl:[21,124,139,364],velit:52,venu:[131,176],venv:[63,75],verb:[25,303],verbal:[197,247],verbos:[26,38,116,127,206],verbose_nam:[133,318],veri:[0,2,4,5,6,8,9,10,11,13,14,17,20,21,22,23,26,27,28,29,31,33,35,37,38,39,40,41,42,46,49,50,51,52,55,56,57,58,60,61,64,67,68,70,72,73,74,77,78,79,80,85,86,88,90,91,93,95,96,97,104,107,108,109,110,111,112,114,115,116,119,121,122,123,125,127,128,129,131,132,134,137,138,139,140,144,146,152,154,170,175,177,180,182,194,195,204,205,206,212,213,214,215,220,227,231,234,235,238,246,251,271,317,319,324,326,328,329,344,362],verif:90,verifi:[36,51,63,90,131,159,188,220,292],verify_online_play:188,verify_or_create_ssl_key_and_cert:292,verify_ssl_key_and_cert:288,verifyfunc:188,versa:[40,43,61,88,105,116,164,276],version:[2,4,7,11,13,14,20,21,23,24,29,30,31,33,35,36,37,41,43,47,51,54,57,60,61,63,64,74,75,76,79,81,86,87,90,91,95,96,100,108,111,114,123,124,125,126,128,136,137,139,159,167,169,171,181,182,186,187,201,206,218,219,220,221,224,232,247,252,267,272,286,306,310,315,316,321,329,344,357,363,364],version_info:267,versionad:38,versionchang:38,versu:55,vertic:[138,232,330,344],very_strong:242,very_weak:80,vest:103,vet:109,veteran:79,vfill_char:330,via:[10,11,27,37,40,51,52,55,56,57,63,70,73,74,83,85,86,90,92,93,101,103,108,109,114,119,123,125,126,131,137,172,176,177,209,246,256,316,319,321,335],viabl:231,vice:[40,43,61,88,105,116,164,276],vicin:[33,43,165,187,233],video:[79,95,114,137],vienv:9,view:[1,4,17,27,34,38,41,42,43,50,51,52,55,58,60,63,64,72,80,82,86,90,96,101,102,110,111,115,116,123,124,131,136,139,141,142,144,156,157,159,164,165,166,169,174,175,182,206,217,218,219,220,221,235,237,239,247,249,302,318,329,346,350,353,356,357,364],view_attr:159,viewabl:[53,55,166],viewer:[25,38,69,206,235,241,247,318],viewport:42,vim:[14,50,79,326],vincent:[41,180,187,201,204,234],violent:51,virtual:[4,41,43,55,57,59,63,79,90,124,169,187,331],virtual_env:75,virtualenv:[9,23,26,36,38,63,75,76,90,93,95,96,97,100,106,110,128],virtualhost:8,viru:63,visibl:[13,25,31,36,38,43,48,54,61,63,67,69,81,90,96,105,114,123,125,131,139,165,206,241,247,279,312,328,344],visiblelock:241,vision:[11,58,61],visit:[22,49,90,111,133,134,234,328],visitor:[103,134,135],vista:63,visual:[25,57,63,93,114,137,144,166,190,363],vital:91,vlgeoff:184,vlovfgjyq2qvcdougpb6c8due7skt:70,vniftg:63,vnum:56,vocabulari:[46,344],voic:[33,46,124,139,364],volatil:251,volum:[21,61,100,111],volund:119,voluntari:37,volupt:52,vowel:[119,205],vpad_char:330,vulner:[29,103],vvc:205,vvcc:205,vvccv:205,vvccvvcc:205,vwcukflrfii:133,vwcukgy84ri:133,vwcukjfxeii:133,vwculn152ti:133,w001:127,w267:133,w321:133,w425:133,w607:133,wai:[0,2,5,6,9,10,11,12,13,14,15,19,20,21,22,23,27,28,30,31,33,37,38,39,40,41,42,43,44,46,48,49,54,55,56,57,58,61,62,63,64,68,69,70,72,73,74,75,79,80,82,83,84,85,86,87,88,89,90,91,92,93,95,96,97,98,102,103,104,105,106,107,109,110,111,112,113,114,115,116,117,118,119,121,122,123,124,125,126,127,128,129,131,132,133,136,138,139,140,144,151,152,159,166,175,179,184,185,187,188,190,194,197,198,205,212,213,215,217,218,219,220,221,224,230,231,232,234,242,247,251,259,261,267,272,276,287,306,308,312,313,314,316,317,319,322,327,328,330,334,337,338,340,362,364],wail:49,waist:182,wait:[0,10,20,25,27,28,29,33,42,51,102,121,138,146,194,198,217,218,219,220,221,259,267,277,296,298,310,324,344],wait_for_disconnect:277,wait_for_server_connect:277,wait_for_statu:267,wait_for_status_repli:267,waiter:267,wake:188,walias:[43,159],walk:[0,14,21,31,39,46,49,60,62,85,139,213,214,215,235,322],walki:64,wall:[111,157,165,187,232,233],wanna:[37,179],want:[0,2,3,4,5,6,8,9,10,11,12,13,14,15,19,20,21,22,23,24,25,26,27,28,29,30,31,33,34,35,37,38,39,40,41,42,43,44,46,48,49,50,51,54,57,58,60,61,62,63,64,66,67,68,69,70,71,72,73,74,75,76,77,78,80,81,82,83,84,85,86,87,88,89,90,91,93,95,96,97,98,102,103,104,105,106,107,108,109,110,111,113,114,115,118,119,121,122,123,125,126,127,128,131,132,133,134,135,136,137,138,140,144,152,153,154,156,165,170,174,179,180,186,187,188,190,197,204,206,209,215,217,218,219,220,221,227,233,235,237,241,242,247,252,259,261,283,285,291,298,308,313,315,316,318,326,328,329,334,340,344,357,362,363],wanted_id:80,ware:85,warehous:[209,322],wari:[114,235,247,318],warm:[102,110,271],warn:[8,23,27,31,59,60,63,64,90,91,93,104,105,111,128,134,138,140,152,174,210,266,267,292,337],warnmsg:337,warrior:[28,57,58,61,122,123],wasclean:[278,295],wasn:[0,42,134],wast:[6,14,115],watch:[14,84,106,139],water:[153,200,203],waterballon:203,wave:111,wcach:[43,169],wcactu:220,wcommandnam:234,wcure:220,wdestin:[43,159],weak:252,weakref:334,weaksharedmemorymodel:[274,334],weaksharedmemorymodelbas:[274,334],weakvalu:334,wealth:85,weapon:[29,51,61,64,73,77,82,85,86,109,116,122,218,231,232,252],weapon_ineffective_msg:231,weapon_prototyp:232,weaponrack:232,weaponrack_cmdset:232,wear:[82,182,206,218],wearabl:182,wearer:182,wearstyl:182,weather:[30,61,73,102,111,112,115,122,124,139,140,233,364],weather_script:102,weatherroom:[132,233],web:[4,8,9,16,17,23,25,30,38,47,53,55,57,61,63,64,67,69,72,75,76,79,80,83,94,95,101,109,110,119,139,141,142,173,269,271,281,285,291,295,296,306,310,312,319,325,364],web_client_url:54,web_get_admin_url:[175,239,318],web_get_create_url:[175,239,318],web_get_delete_url:[175,239,318],web_get_detail_url:[175,239,318],web_get_puppet_url:318,web_get_update_url:[175,239,318],webchargen:133,webchat:[70,79],webclient:[24,30,40,43,45,53,54,64,67,69,83,88,95,103,105,110,114,135,139,141,142,169,230,262,272,275,291,296,307,328,346,350,351,360,364],webclient_ajax:[137,141,142,262,275],webclient_en:103,webclient_opt:272,webclientdata:296,webclienttest:360,webpag:[8,17,77,90,354],webport:36,webscr:70,webserv:[3,7,8,9,23,36,40,47,55,67,90,100,101,104,135,139,141,142,262,346],webserver_en:103,webserver_interfac:[67,90],webserver_port:90,webservic:103,websit:[3,9,17,53,55,57,64,67,69,79,90,98,101,103,124,133,136,137,138,139,141,142,145,296,312,346,351,364],websocket:[40,55,64,90,100,137,278,284,295,307],websocket_client_interfac:[67,90],websocket_client_port:[67,90],websocket_client_url:[8,67,90],websocket_clos:295,websocketcli:295,websocketclientfactori:278,websocketclientprotocol:278,websocketserverfactori:284,websocketserverprotocol:295,weed:[26,119,152],week:[62,184,337,345],weeklylogfil:337,weigh:[82,298],weight:[23,38,61,108,124,139,190,205,317,364],weirdli:96,welcom:[3,4,22,35,37,63,72,76,85],well:[2,4,6,9,11,12,16,17,19,21,22,23,25,26,33,37,38,39,40,41,43,44,45,46,49,50,51,52,55,57,58,61,62,64,66,68,69,71,74,75,81,85,88,89,91,96,98,103,104,105,106,108,109,113,116,118,119,120,123,124,125,127,128,131,133,134,135,136,138,148,152,153,154,159,164,169,172,179,182,187,194,202,205,206,215,219,220,221,226,231,247,256,262,267,276,278,279,285,302,310,315,316,317,321,325,328,331,340],went:[57,110,127,131,257,261],were:[1,10,11,13,24,31,33,37,38,42,44,51,58,59,64,69,77,82,85,86,91,100,102,104,108,109,119,123,125,126,127,137,144,151,152,153,204,215,247,251,314,318,322,341,344],weren:62,werewolf:25,werewolv:119,werkzeug:344,west:[20,25,44,49,111,159,200,233],west_east:111,west_exit:233,western:111,westward:233,wether:[179,324],wevennia:22,wflame:220,wflushmem:[43,169],wfull:220,what:[0,1,2,4,8,9,10,12,13,14,19,20,21,22,23,25,26,27,29,31,33,38,39,40,42,43,44,45,46,48,49,51,56,57,58,60,61,62,63,64,67,68,69,70,72,73,74,77,78,79,80,81,83,85,86,88,89,90,93,94,95,96,97,98,102,103,104,105,108,109,110,111,113,114,115,116,117,118,119,121,122,123,124,125,126,127,128,129,131,132,133,134,136,138,139,140,144,150,152,153,154,156,159,166,170,175,195,203,204,206,209,214,219,220,224,227,231,233,239,242,247,251,252,267,269,272,279,291,296,311,313,316,318,319,321,322,328,338,339,344,345,349,357,362,364],whatev:[2,11,14,21,22,23,27,33,40,43,46,48,51,56,58,61,64,67,78,82,89,91,100,102,111,123,127,131,133,134,138,144,146,153,159,188,220,231,232,247,252,256,257,278,287,290,295,308,329,338,362],whatnot:138,wheel:[57,63,75,115,258],whelp:234,when:[0,2,3,4,5,6,8,9,10,11,12,13,14,15,17,19,20,21,22,23,24,26,27,29,30,31,33,34,35,36,37,38,39,40,41,42,43,44,46,47,49,50,51,52,56,57,58,59,60,61,62,63,64,65,66,67,68,69,73,74,75,76,77,78,79,80,82,83,84,85,86,87,88,89,90,91,93,95,96,97,98,100,102,103,104,105,106,107,108,109,110,111,112,113,114,116,117,118,119,120,121,122,123,124,125,126,127,128,129,131,132,133,136,137,138,139,141,144,146,148,150,152,153,154,156,158,159,164,165,167,168,169,171,175,176,177,179,180,181,182,184,185,186,187,188,189,190,195,196,197,198,199,200,201,202,203,204,205,206,212,214,215,217,218,219,220,221,223,224,226,227,228,230,231,232,233,234,235,238,239,241,242,246,247,249,251,252,256,257,259,260,261,264,267,269,273,274,276,277,278,279,280,281,282,283,285,287,288,289,290,291,292,295,296,298,299,305,306,307,308,309,310,316,318,319,321,322,324,325,326,327,328,329,330,334,335,336,337,339,344,357,362],when_stop:267,whenev:[6,10,11,22,25,33,46,64,66,74,76,80,84,87,90,95,98,100,102,106,107,109,111,113,117,119,128,144,153,174,175,231,232,233,247,257,259,269,286,306,307,308],where:[0,1,3,6,9,10,11,12,13,14,20,21,22,25,26,29,31,33,36,38,39,40,41,42,43,46,48,49,50,51,52,56,57,58,59,61,62,64,69,73,75,76,80,83,85,86,88,90,91,95,100,102,103,104,105,108,109,111,113,114,117,118,119,121,122,123,124,125,127,131,133,134,135,136,137,138,139,151,152,157,159,165,168,175,176,181,185,197,199,200,205,206,210,219,232,233,235,241,242,247,250,251,252,257,267,269,272,276,291,299,304,308,315,318,321,322,326,328,329,330,336,338,339,344,362],wherea:[11,12,13,19,21,26,31,33,34,40,42,55,56,61,80,81,85,86,93,97,103,105,109,113,114,116,125,128,205,224,227,261,296,316,334],whereabout:122,wherebi:220,wherev:[11,63,64,67,100,111,127,180,209,219],whether:[0,12,39,43,46,51,55,62,69,77,121,144,146,153,159,164,166,175,188,215,217,218,219,220,221,241,247,261,278,295,310,317,321,336,338,340,344],whewiu:9,which:[0,1,3,4,5,6,9,10,11,12,13,14,15,19,20,22,24,25,26,27,28,29,30,31,33,34,36,37,38,39,40,41,42,43,44,46,49,51,52,56,57,58,59,60,61,62,63,64,65,66,67,69,71,72,73,74,76,77,80,81,82,83,85,86,87,88,89,90,91,93,94,95,96,97,100,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,125,126,127,131,132,133,134,135,136,137,138,139,140,146,150,152,153,154,156,157,159,165,167,168,169,170,174,175,176,177,179,180,181,182,183,184,187,188,190,197,198,199,200,202,206,209,210,212,214,215,217,218,219,220,221,226,227,231,232,233,234,235,239,242,246,247,251,252,256,257,259,260,261,264,266,267,271,272,279,285,287,295,296,298,299,306,307,308,310,313,315,316,317,318,319,321,322,324,325,328,329,330,331,334,336,337,338,340,341,342,344,349,350,357,362],whichev:[27,90,103,233],whilst:[77,111,200,328],whim:139,whisp:205,whisper:[46,165,197,198,205,206,247],white:[48,74,114,126,344],whitelist:74,whitepag:[1,48,138],whitespac:[14,27,33,58,81,119,123,167,168,202,206,321,322,330,344],who:[4,10,11,12,21,34,41,46,49,51,55,56,58,61,73,80,87,95,103,109,114,116,119,121,123,124,125,127,132,133,138,146,154,156,159,164,174,175,179,188,195,206,217,218,219,220,221,232,239,241,242,247,252,318,326,328],whoever:133,whole:[4,16,43,49,51,55,57,60,61,67,87,96,111,112,122,123,129,138,152,159,169,221,330],wholist:175,whome:[43,159],whomev:[73,114,121],whose:[88,114,119,125,144,154,170,195,206,215,217,218,219,220,221,272,323,328,344],whould:328,why:[0,11,12,20,22,25,38,39,41,43,44,46,51,55,60,63,64,82,91,95,96,103,111,123,125,126,139,157,204,217,220,221,264,265],whydonttwist:94,wide:[16,25,27,39,43,58,61,73,86,91,138,157,219,220,235,327,330,344],widen:12,wider:[12,25,39,43,157,330],widest:344,widget:[145,237,244,315,340,357],width:[16,17,25,27,33,49,74,109,111,114,141,154,250,272,287,306,321,326,327,329,330,336,344],wield:[61,82,109,218],wifi:[90,103],wiki:[1,9,33,37,43,45,48,55,58,64,70,79,94,96,108,111,116,124,125,138,180,295,363,364],wiki_account_handl:4,wiki_account_signup_allow:4,wiki_can:4,wiki_can_admin:4,wiki_can_assign:4,wiki_can_assign_own:4,wiki_can_change_permiss:4,wiki_can_delet:4,wiki_can_moder:4,wiki_can_read:4,wiki_can_writ:4,wikiconfig:4,wikimedia:37,wikipedia:[15,37,55,64,96,113,116,127,131,295],wild:[108,126,131],wildcard:[12,43,57,87,157,159,344],wildcard_to_regexp:344,wilder:[141,142,178],wildernessexit:235,wildernessmap:235,wildernessmapprovid:235,wildernessroom:235,wildernessscript:235,wildli:205,will_suppress_ga:289,will_ttyp:294,willing:[58,61,79],win10:63,win7:63,win8:63,win:[9,24,91,116,122],wind:[122,132],window:[4,23,25,31,38,44,45,49,52,64,72,76,83,88,89,93,95,96,97,101,105,106,110,128,131,137,138,154,166,267,283,306,310,329,344],windowid:306,windows10:63,wingd:111,winpti:9,winter:187,wintext:73,wip:38,wipe:[9,13,23,111,138,152,159,169,219,318],wire:[27,40,64,83,88,90,113,138,168,264,276,277,308,321],wis:58,wisdom:[60,93],wise:[6,11,13,14,15,26,58,60,80,96,118,131,135],wise_text:60,wiseobject:60,wiser:20,wiseword:60,wish:[33,36,39,75,120,131,136,180,221,321,343,357],with_metaclass:96,with_tag:203,withdraw:[116,221],withdrawl:221,within:[1,8,9,10,11,22,24,26,31,33,37,38,39,43,47,49,51,56,58,64,90,94,95,97,100,114,115,116,117,118,119,120,124,126,131,134,136,137,138,144,148,150,159,179,187,190,192,210,238,247,252,310,316,317,321,336,337,344,357,362],without:[0,8,11,12,13,14,16,20,21,22,23,25,27,29,30,31,33,35,37,38,40,42,43,44,46,49,50,51,55,57,58,59,60,61,63,64,66,67,76,80,86,88,90,91,92,93,96,97,100,101,104,107,108,109,114,115,118,119,121,123,125,126,127,128,129,131,133,136,138,139,144,146,151,154,156,157,159,164,165,167,168,169,170,177,179,181,182,187,192,195,197,200,205,206,212,215,217,220,221,231,233,242,247,250,251,252,259,260,276,287,290,291,298,306,308,309,316,318,321,322,324,325,326,328,329,336,340,341],withstand:80,wixmp:122,wiz:58,wizard:[109,233,252,265,267],wkei:[43,159],wlocat:[43,159],wlock:[43,159],wmagic:220,wmass:220,wndb_:[43,159],won:[0,2,4,10,11,12,13,15,21,22,23,29,31,38,41,42,46,57,61,63,69,73,78,81,83,85,86,91,95,96,100,111,114,119,123,125,127,134,137,138,153,188,204,223,224,226,227,312,321,336,340],wonder:[9,16,56,82,119,138],wont_suppress_ga:289,wont_ttyp:294,wooden:109,woosh:21,word:[14,27,33,43,46,49,50,62,69,70,72,76,88,89,91,93,94,95,96,97,111,119,122,126,131,136,151,167,168,171,186,198,205,206,279,326,341,344],word_fil:205,word_length_vari:205,wordi:205,work:[0,2,4,5,8,9,10,11,13,14,15,16,20,21,22,23,24,25,26,27,28,29,31,34,36,37,38,41,42,43,44,48,49,51,56,57,58,59,60,61,62,63,64,66,67,70,71,72,75,80,81,83,84,85,86,89,90,93,94,95,96,97,102,103,105,106,108,109,111,112,114,115,116,117,119,122,123,124,126,127,128,129,132,133,134,136,138,139,150,153,154,156,159,164,165,167,169,174,175,179,180,181,187,202,203,206,212,215,219,220,221,233,234,235,239,241,242,247,251,252,267,271,272,284,299,312,314,318,322,327,328,329,330,338,344,362,363,364],workaround:[63,100,131],workflow:[61,145],world:[9,10,11,13,14,15,21,27,31,33,34,39,41,47,49,51,55,57,58,60,62,63,64,68,72,73,78,79,80,82,86,90,96,104,108,109,111,113,116,117,121,123,124,127,131,139,144,158,159,166,174,179,184,200,202,206,217,218,219,220,221,232,233,235,239,256,306,308,321,322,331,363,364],world_map:111,worm:49,worm_has_map:49,worn:[182,218],worri:[0,11,15,36,39,41,51,55,104,113,114,123,127,138,179,227],worst:61,worth:[0,8,21,29,51,61,70,79,91,93,124,125,133,179],worthi:61,worthless:90,would:[0,1,4,6,8,9,10,11,13,14,15,16,19,20,21,22,25,27,29,31,33,36,38,39,41,42,43,44,46,48,49,51,55,56,57,58,60,61,62,63,64,68,69,73,77,80,81,82,85,86,88,89,90,91,93,95,96,100,102,105,106,109,111,112,114,115,116,117,118,119,121,123,125,126,127,128,133,134,135,136,138,140,144,151,152,153,159,168,175,179,184,195,197,205,215,224,227,234,235,239,241,242,251,252,279,315,318,321,322,325,328,336,339,340,342],wouldn:[39,126,138],wound:220,wow:[69,138],wpermiss:[43,159],wprototype_desc:[43,159],wprototype_kei:[43,159],wprototype_lock:[43,159],wprototype_par:[43,159],wprototype_tag:[43,159],wrap:[10,30,49,51,59,96,102,109,119,136,182,188,206,274,314,330,344],wrap_conflictual_object:340,wrapper:[10,27,29,51,74,86,93,105,119,125,144,148,175,176,177,212,239,246,247,256,260,272,274,306,315,316,318,319,321,330,334,335,337,344,362],wresid:[43,169],write:[0,4,10,11,14,15,16,20,22,23,25,27,31,33,34,37,38,41,43,44,46,48,51,56,58,62,63,65,68,69,71,72,87,88,91,93,94,96,108,123,124,125,129,131,138,159,166,174,180,197,209,210,234,247,280,337,342,362,363,364],writeabl:75,written:[15,27,38,54,56,57,58,61,79,103,109,127,133,134,166,209,322,362],wrong:[26,41,42,43,60,63,81,85,95,110,127,152,159,169,206],wserver:[43,169],wservic:[43,164],wsgi:[8,94,312],wsgi_resourc:312,wsgiwebserv:312,wsl:[38,63],wss:[8,67,90],wtypeclass:[43,159],wwhere:[197,247],www:[8,9,22,38,39,55,57,64,70,79,90,108,128,133,141,282,283,289,291,343,357],wyou:82,x1b:[321,343],x2x:58,x4x:327,x5x:327,x6x:327,x7x:327,x8x:327,x9x:327,x_r:39,xc8ymjkxnmmyns02mjk5ltq1m2qtytiyms00ndzlyzgzowy1njdcl2rhmnbtenutndzknjnjnmqtownkyy00mwrkltg3zdytmtew:122,xcode:63,xenial:130,xforward:312,xgettext:76,xit:[22,180],xmlcharrefreplac:321,xp_gain:73,xpo:330,xterm256:[43,55,74,81,83,137,156,183,190,272,287,290,321,364],xterm256_bg:321,xterm256_bg_sub:321,xterm256_fg:321,xterm256_fg_sub:321,xterm256_gbg:321,xterm256_gbg_sub:321,xterm256_gfg:321,xterm256_gfg_sub:321,xterm:[114,126],xterms256:114,xval:33,xxx:[25,42,204],xxxx:204,xxxxx1xxxxx:327,xxxxx3xxxxx:327,xxxxxxx2xxxxxxx:327,xxxxxxxxxx3xxxxxxxxxxx:58,xxxxxxxxxx4xxxxxxxxxxx:58,xxxxxxxxxxx:327,xxxxxxxxxxxxxx1xxxxxxxxxxxxxxx:58,xxxxxxxxxxxxxxxxxxxxxx:58,xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:58,xyz:87,y_r:39,yan:114,yank:50,yeah:138,year:[25,55,61,62,88,90,108,184,331,337,344,357],yearli:[62,90],yellow:[114,126,131,232],yep:138,yes:[10,33,39,46,51,126,138,159,198,265,326,344],yesno:[51,326],yet:[0,2,4,12,14,22,25,28,35,36,41,42,46,49,51,54,60,63,64,67,76,79,86,90,94,96,105,109,111,119,121,128,130,131,133,134,138,144,171,179,186,195,200,242,246,285,308,312,321,362],yield:[10,23,33,80,108,159,210,330,344],yml:[100,130],yogurt:203,you:[0,1,2,3,4,5,6,8,9,10,11,12,13,14,15,16,17,19,20,21,22,23,24,25,27,28,29,30,31,33,34,35,36,37,38,39,40,41,42,43,44,46,47,48,49,50,51,54,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,95,96,97,98,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,144,153,154,156,159,164,165,166,167,168,169,170,171,174,179,180,181,182,183,184,187,188,190,193,194,195,197,198,199,200,201,202,203,204,205,206,209,210,212,213,214,215,217,218,219,220,221,223,224,226,227,232,233,234,235,237,241,242,247,252,258,259,261,269,278,279,280,296,298,308,310,312,313,316,318,321,322,324,327,328,330,331,340,341,344,357,362,363],young:77,your:[0,1,3,5,6,7,8,9,10,11,12,13,14,15,16,17,21,22,23,25,27,29,30,31,34,35,36,37,38,41,42,43,44,45,46,47,48,49,50,51,54,55,56,57,58,59,61,62,63,64,65,66,67,68,69,70,71,72,73,75,76,77,78,79,80,81,82,83,85,87,88,91,93,95,96,98,101,102,104,105,106,107,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,129,130,132,134,135,136,138,139,140,144,148,151,153,154,156,157,159,164,165,169,170,171,179,180,182,183,184,185,186,187,188,190,194,197,200,204,205,206,209,210,213,215,217,218,219,220,221,223,232,233,234,235,241,242,246,298,315,318,321,326,328,330,340,341,342,344,345,357,362,364],your_email:131,yourgam:209,yourhostnam:67,yournam:8,yourpassword:23,yourrepo:106,yourself:[0,2,5,6,14,16,19,22,23,26,31,37,42,43,51,55,58,63,69,70,73,78,80,86,89,90,91,96,102,108,111,119,123,125,130,131,135,159,165,179,189,206,212,220,223,328],yoursit:133,yourusernam:131,yourwebsit:133,yousuck:12,yousuckmor:12,youth:188,youtub:131,ypo:330,yrs:184,ythi:114,yum:[8,67,131],yvonn:58,z_r:39,zed:[77,79],zero:[20,27,109,206,247,321],zine:61,zip:103,zlib:[75,276,280],zmud:[24,282],zone:[18,46,55,56,70,79,112,119,122,124,139,319,337,364],zope:97,zopeinterfac:63,zuggsoft:282,zy1rozgc6mq:45},titles:["A voice operated elevator using events","API refactoring","Accounts","Add a simple new web page","Add a wiki on your website","Adding Command Tutorial","Adding Object Typeclass Tutorial","Administrative Docs","Apache Config","Arxcode installing help","Async Process","Attributes","Banning","Batch Code Processor","Batch Command Processor","Batch Processors","Bootstrap & Evennia","Bootstrap Components and Utilities","Builder Docs","Building Permissions","Building Quickstart","Building a mech tutorial","Building menus","Choosing An SQL Server","Client Support Grid","Coding FAQ","Coding Introduction","Coding Utils","Command Cooldown","Command Duration","Command Prompt","Command Sets","Command System","Commands","Communications","Connection Screen","Continuous Integration","Contributing","Contributing to Evennia Docs","Coordinates","Custom Protocols","Customize channels","Debugging","Default Command Help","Default Exit Errors","Developer Central","Dialogues in events","Directory Overview","Docs refactoring","Dynamic In Game Map","EvEditor","EvMenu","EvMore","API Summary","Evennia Game Index","Evennia Introduction","Evennia for Diku Users","Evennia for MUSH Users","Evennia for roleplaying sessions","Execute Python Code","First Steps Coding","Game Planning","Gametime Tutorial","Getting Started","Glossary","Grapevine","Guest Logins","HAProxy Config (Optional)","Help System","Help System Tutorial","How To Get And Give Help","How to connect Evennia to Twitter","IRC","Implementing a game rule system","Inputfuncs","Installing on Android","Internationalization","Learn Python for Evennia The Hard Way","Licensing","Links","Locks","Manually Configuring Color","Mass and weight for objects","Messagepath","MonitorHandler","NPC shop Tutorial","New Models","Nicks","OOB","Objects","Online Setup","Parsing command arguments, theory and best practices","Portal And Server","Profiling","Python 3","Python basic introduction","Python basic tutorial part two","Quirks","RSS","Roadmap","Running Evennia in Docker","Screenshot","Scripts","Security","Server Conf","Sessions","Setting up PyCharm","Signals","Soft Code","Spawner and Prototypes","Start Stop Reload","Static In Game Map","Tags","Text Encodings","TextTags","TickerHandler","Turn based Combat System","Tutorial Aggressive NPCs","Tutorial NPCs listening","Tutorial Searching For Objects","Tutorial Tweeting Game Stats","Tutorial Vehicles","Tutorial World Introduction","Tutorial for basic MUSH like game","Tutorials","Typeclasses","Understanding Color Tags","Unit Testing","Updating Your Game","Using MUX as a Standard","Using Travis","Version Control","Weather Tutorial","Web Character Generation","Web Character View Tutorial","Web Features","Web Tutorial","Webclient","Webclient brainstorm","Wiki Index","Zones","evennia","evennia","evennia.accounts","evennia.accounts.accounts","evennia.accounts.admin","evennia.accounts.bots","evennia.accounts.manager","evennia.accounts.models","evennia.commands","evennia.commands.cmdhandler","evennia.commands.cmdparser","evennia.commands.cmdset","evennia.commands.cmdsethandler","evennia.commands.command","evennia.commands.default","evennia.commands.default.account","evennia.commands.default.admin","evennia.commands.default.batchprocess","evennia.commands.default.building","evennia.commands.default.cmdset_account","evennia.commands.default.cmdset_character","evennia.commands.default.cmdset_session","evennia.commands.default.cmdset_unloggedin","evennia.commands.default.comms","evennia.commands.default.general","evennia.commands.default.help","evennia.commands.default.muxcommand","evennia.commands.default.syscommands","evennia.commands.default.system","evennia.commands.default.tests","evennia.commands.default.unloggedin","evennia.comms","evennia.comms.admin","evennia.comms.channelhandler","evennia.comms.comms","evennia.comms.managers","evennia.comms.models","evennia.contrib","evennia.contrib.barter","evennia.contrib.building_menu","evennia.contrib.chargen","evennia.contrib.clothing","evennia.contrib.color_markups","evennia.contrib.custom_gametime","evennia.contrib.dice","evennia.contrib.email_login","evennia.contrib.extended_room","evennia.contrib.fieldfill","evennia.contrib.gendersub","evennia.contrib.health_bar","evennia.contrib.ingame_python","evennia.contrib.ingame_python.callbackhandler","evennia.contrib.ingame_python.commands","evennia.contrib.ingame_python.eventfuncs","evennia.contrib.ingame_python.scripts","evennia.contrib.ingame_python.tests","evennia.contrib.ingame_python.typeclasses","evennia.contrib.ingame_python.utils","evennia.contrib.mail","evennia.contrib.mapbuilder","evennia.contrib.menu_login","evennia.contrib.multidescer","evennia.contrib.puzzles","evennia.contrib.random_string_generator","evennia.contrib.rplanguage","evennia.contrib.rpsystem","evennia.contrib.security","evennia.contrib.security.auditing","evennia.contrib.security.auditing.outputs","evennia.contrib.security.auditing.server","evennia.contrib.security.auditing.tests","evennia.contrib.simpledoor","evennia.contrib.slow_exit","evennia.contrib.talking_npc","evennia.contrib.tree_select","evennia.contrib.turnbattle","evennia.contrib.turnbattle.tb_basic","evennia.contrib.turnbattle.tb_equip","evennia.contrib.turnbattle.tb_items","evennia.contrib.turnbattle.tb_magic","evennia.contrib.turnbattle.tb_range","evennia.contrib.tutorial_examples","evennia.contrib.tutorial_examples.bodyfunctions","evennia.contrib.tutorial_examples.cmdset_red_button","evennia.contrib.tutorial_examples.example_batch_code","evennia.contrib.tutorial_examples.red_button","evennia.contrib.tutorial_examples.red_button_scripts","evennia.contrib.tutorial_examples.tests","evennia.contrib.tutorial_world","evennia.contrib.tutorial_world.intro_menu","evennia.contrib.tutorial_world.mob","evennia.contrib.tutorial_world.objects","evennia.contrib.tutorial_world.rooms","evennia.contrib.unixcommand","evennia.contrib.wilderness","evennia.help","evennia.help.admin","evennia.help.manager","evennia.help.models","evennia.locks","evennia.locks.lockfuncs","evennia.locks.lockhandler","evennia.objects","evennia.objects.admin","evennia.objects.manager","evennia.objects.models","evennia.objects.objects","evennia.prototypes","evennia.prototypes.menus","evennia.prototypes.protfuncs","evennia.prototypes.prototypes","evennia.prototypes.spawner","evennia.scripts","evennia.scripts.admin","evennia.scripts.manager","evennia.scripts.models","evennia.scripts.monitorhandler","evennia.scripts.scripthandler","evennia.scripts.scripts","evennia.scripts.taskhandler","evennia.scripts.tickerhandler","evennia.server","evennia.server.admin","evennia.server.amp_client","evennia.server.connection_wizard","evennia.server.deprecations","evennia.server.evennia_launcher","evennia.server.game_index_client","evennia.server.game_index_client.client","evennia.server.game_index_client.service","evennia.server.initial_setup","evennia.server.inputfuncs","evennia.server.manager","evennia.server.models","evennia.server.portal","evennia.server.portal.amp","evennia.server.portal.amp_server","evennia.server.portal.grapevine","evennia.server.portal.irc","evennia.server.portal.mccp","evennia.server.portal.mssp","evennia.server.portal.mxp","evennia.server.portal.naws","evennia.server.portal.portal","evennia.server.portal.portalsessionhandler","evennia.server.portal.rss","evennia.server.portal.ssh","evennia.server.portal.ssl","evennia.server.portal.suppress_ga","evennia.server.portal.telnet","evennia.server.portal.telnet_oob","evennia.server.portal.telnet_ssl","evennia.server.portal.tests","evennia.server.portal.ttype","evennia.server.portal.webclient","evennia.server.portal.webclient_ajax","evennia.server.profiling","evennia.server.profiling.dummyrunner","evennia.server.profiling.dummyrunner_settings","evennia.server.profiling.memplot","evennia.server.profiling.settings_mixin","evennia.server.profiling.test_queries","evennia.server.profiling.tests","evennia.server.profiling.timetrace","evennia.server.server","evennia.server.serversession","evennia.server.session","evennia.server.sessionhandler","evennia.server.signals","evennia.server.throttle","evennia.server.validators","evennia.server.webserver","evennia.settings_default","evennia.typeclasses","evennia.typeclasses.admin","evennia.typeclasses.attributes","evennia.typeclasses.managers","evennia.typeclasses.models","evennia.typeclasses.tags","evennia.utils","evennia.utils.ansi","evennia.utils.batchprocessors","evennia.utils.containers","evennia.utils.create","evennia.utils.dbserialize","evennia.utils.eveditor","evennia.utils.evform","evennia.utils.evmenu","evennia.utils.evmore","evennia.utils.evtable","evennia.utils.gametime","evennia.utils.idmapper","evennia.utils.idmapper.manager","evennia.utils.idmapper.models","evennia.utils.idmapper.tests","evennia.utils.inlinefuncs","evennia.utils.logger","evennia.utils.optionclasses","evennia.utils.optionhandler","evennia.utils.picklefield","evennia.utils.search","evennia.utils.test_resources","evennia.utils.text2html","evennia.utils.utils","evennia.utils.validatorfuncs","evennia.web","evennia.web.urls","evennia.web.utils","evennia.web.utils.backends","evennia.web.utils.general_context","evennia.web.utils.middleware","evennia.web.utils.tests","evennia.web.webclient","evennia.web.webclient.urls","evennia.web.webclient.views","evennia.web.website","evennia.web.website.forms","evennia.web.website.templatetags","evennia.web.website.templatetags.addclass","evennia.web.website.tests","evennia.web.website.urls","evennia.web.website.views","Evennia Documentation","Toc"],titleterms:{"2017":138,"2019":[1,48,138],"3rd":138,"9th":138,"case":0,"class":[22,27,33,41,51,96,125,127],"default":[5,6,25,30,43,44,55,60,74,80,137,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171],"final":[49,75],"function":[22,42,51,53,80,89,95,102,114],"goto":51,"import":[26,38,41,95],"new":[3,4,6,58,60,69,86,97,102,114,125,127,133],"public":54,"return":[51,59,105],"static":111,"super":19,"switch":41,"try":41,Adding:[0,4,5,6,9,20,25,31,39,40,41,44,74,86,112,121,133],And:[70,92],For:119,NOT:77,PMs:58,TLS:8,The:[3,10,11,13,14,16,18,19,22,26,29,41,46,47,49,50,51,58,69,77,83,85,93,96,109,116,123,135],USE:77,Use:[26,103],Using:[49,52,84,86,90,93,109,112,127,129,130,140],Will:25,Yes:51,__unloggedin_look_command:43,abort:29,about:[29,43,115,125,128],abus:12,access:43,access_typ:80,account:[2,43,58,64,97,143,144,145,146,147,148,156],activ:[57,133],actual:[33,125],add:[3,4,23,25,60],add_choic:22,addclass:359,addcom:43,adding:127,addit:[9,39,41,44,100],address:25,admin:[43,64,97,135,145,157,173,237,244,254,263,315],administr:7,advanc:[18,29,53,87,110],affect:241,aggress:117,alia:[43,97],alias:112,all:[25,51,67,69],allcom:43,alpha:61,altern:[9,106],amp:276,amp_client:264,amp_serv:277,analyz:93,android:75,ani:[13,55],annot:119,anoth:[38,41,119],ansi:[27,114,126,321],apach:8,api:[1,38,45,53,137],app:[69,133],arbitrari:51,area:[111,123],arg:91,arg_regex:33,argument:[1,51,91],arm:21,arx:9,arxcod:9,ascii:27,ask:[33,51],assign:[19,33],assort:[10,14,31,33,40,51,112,118],async:10,asynchron:10,attach:[106,107],attack:[73,123],attribut:[11,64,97,316],attributehandl:11,audit:[208,209,210,211],aug:[1,48],auto:68,automat:25,avail:[35,59,107],backend:349,ban:[12,43],barter:179,base:[25,109,116],basic:[4,13,14,18,55,71,95,96,123,127,136],batch:[13,14,15,322],batchcod:[13,43],batchcommand:43,batchprocess:[43,158],batchprocessor:322,befor:26,best:91,beta:61,between:[13,51,125],block:[13,29,38],blockquot:38,bodyfunct:223,bold:38,boot:[12,43],bootstrap:[16,17],border:17,bot:146,brainstorm:[45,138],branch:[51,131],bridg:77,brief:[55,69],briefli:88,bug:[38,97],build:[18,19,20,21,22,38,43,49,58,61,85,111,124,159],builder:18,building_menu:[22,180],busi:85,button:[17,20],calendar:62,call:33,callabl:51,callback:[0,46,137],callbackhandl:192,caller:51,can:[11,22,55],capcha:133,card:17,care:103,caveat:[13,14,75,114,125],cboot:43,ccreat:43,cdesc:43,cdestroi:43,cemit:43,central:45,certif:67,chainsol:138,chang:[0,5,6,25,38,58,60,76,97,103,108,128,131,136],channel:[25,34,41,43,58,64],channelhandl:174,charact:[6,24,25,46,58,60,61,64,73,82,89,96,123,133,134],charcreat:43,chardelet:43,chargen:[123,181],chat:138,cheat:42,check:[11,80],checker:26,checkpoint:133,choic:22,choos:23,clean:9,clickabl:114,client:[24,83,88,90,135,137,269],client_opt:74,clock:43,clone:[9,131],cloth:182,cloud9:90,cmdabout:43,cmdaccess:43,cmdaddcom:43,cmdallcom:43,cmdban:43,cmdbatchcod:43,cmdbatchcommand:43,cmdboot:43,cmdcboot:43,cmdcdesc:43,cmdcdestroi:43,cmdcemit:43,cmdchannel:43,cmdchannelcr:43,cmdcharcreat:43,cmdchardelet:43,cmdclock:43,cmdcolortest:43,cmdcopi:43,cmdcpattr:43,cmdcreat:43,cmdcwho:43,cmddelcom:43,cmddesc:43,cmddestroi:43,cmddig:43,cmddrop:43,cmdemit:43,cmdexamin:43,cmdfind:43,cmdforc:43,cmdget:43,cmdgive:43,cmdhandler:150,cmdhelp:43,cmdhome:43,cmdic:43,cmdinventori:43,cmdirc2chan:43,cmdlink:43,cmdlistcmdset:43,cmdlock:43,cmdlook:43,cmdmvattr:43,cmdname:43,cmdnewpassword:43,cmdnick:43,cmdobject:43,cmdooc:43,cmdooclook:43,cmdopen:43,cmdoption:43,cmdpage:43,cmdparser:151,cmdpassword:43,cmdperm:43,cmdpose:43,cmdpy:43,cmdquell:43,cmdquit:43,cmdreload:43,cmdreset:43,cmdrss2chan:43,cmdsai:43,cmdscript:43,cmdserverload:43,cmdservic:43,cmdsession:43,cmdset:[5,43,152],cmdset_account:160,cmdset_charact:161,cmdset_red_button:224,cmdset_sess:162,cmdset_unloggedin:163,cmdsetattribut:43,cmdsetdesc:43,cmdsethandl:153,cmdsethelp:43,cmdsethom:43,cmdsetobjalia:43,cmdshutdown:43,cmdspawn:43,cmdstyle:43,cmdtag:43,cmdteleport:43,cmdtime:43,cmdtunnel:43,cmdtypeclass:43,cmdunban:43,cmdunconnectedconnect:43,cmdunconnectedcr:43,cmdunconnectedhelp:43,cmdunconnectedlook:43,cmdunconnectedquit:43,cmdunlink:43,cmdwall:43,cmdwhisper:43,cmdwho:43,cmdwipe:43,code:[8,13,22,25,26,27,38,41,42,50,59,60,61,73,85,87,108,124,128,131,322],collabor:57,color:[17,25,27,43,81,126],color_markup:183,colour:114,combat:[116,123],comfort:100,comm:[43,164,172,173,174,175,176,177],command:[5,14,22,25,28,29,30,31,32,33,35,41,42,43,44,45,53,58,60,62,68,71,73,81,85,88,91,97,100,116,121,123,127,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,193,322],comment:[44,49],commit:131,commun:[13,34],complet:80,complex:[22,119],compon:[17,45],comput:90,concept:[45,49,116],conclud:[39,123],conclus:[22,41,91,111],condit:[25,119],conf:104,config:[8,53,67,81],configur:[8,23,65,67,71,72,81,98,106,131,133],congratul:61,connect:[35,43,54,71,90,97],connection_wizard:265,contain:[100,323],content:[25,55],continu:36,contrib:[22,37,124,127,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235],contribut:[37,38,53],control:131,convert:91,cooldown:28,coordin:39,copi:[8,43],core:[45,53,56,64],cpattr:43,cprofil:93,creat:[0,2,3,5,6,12,20,21,27,33,36,43,51,53,69,86,89,97,100,111,121,123,125,133,324],createnpc:123,creatur:100,credit:79,crop:27,current:[42,62],custom:[4,5,7,10,22,40,41,51,57,62,80,81,105,113,124,127,135,137],custom_gametim:184,cwho:43,data:[6,11,40,51,105,106],databas:[9,53,68,86,97,109,128],dbref:25,dbserial:325,deal:102,debug:[13,42,103],debugg:106,decor:[10,51],dedent:27,dedic:133,defaultobject:97,defin:[31,33,34,51,80,86,102,131],definit:80,delai:[10,27,29],delcom:43,delimit:25,demo:61,depend:[9,128],deploi:100,deprec:[38,266],desc:[43,51],descer:57,descript:100,design:85,destroi:43,detail:[43,69,133],develop:[45,57,79,100,103,110,124,127],dialogu:46,dice:[58,185],dictionari:51,differ:[56,125],dig:43,diku:56,direct:106,directori:[47,90,104],disabl:103,discuss:79,displai:[24,27,49,62],django:[64,80,110,119,133,135],doc:[7,18,26,38,48],docker:100,document:[37,38,129,363],don:[13,55,100],donat:37,down:[20,110,121],drop:43,dummi:73,dummyrunn:[93,298],dummyrunner_set:299,durat:29,dure:110,dynam:[33,49,51,127],earli:7,echo:74,edit:[22,38,50,123],editnpc:123,editor:50,effect:241,elev:0,email_login:186,emit:43,emul:56,encod:[15,113],encrypt:90,end:41,engin:124,enjoi:8,enter:121,entir:0,entri:[20,68],error:[44,95,102,110],eveditor:[50,326],evennia:[4,5,7,8,9,16,23,25,26,38,41,42,45,47,54,55,56,57,58,67,71,75,76,77,79,90,91,95,96,100,106,109,110,124,126,127,128,131,137,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363],evennia_launch:267,evenniatest:127,event:[0,46,62],eventfunc:194,everi:30,everyth:22,evform:[58,327],evmenu:[25,51,328],evmor:[52,329],evtabl:[25,58,330],examin:[42,43],exampl:[39,42,46,50,51,73,80,83,90,102,108,116,127,137],example_batch_cod:225,execut:[42,59],exercis:77,exist:[6,125],exit:[0,6,25,33,44,89],expand:[116,121],explan:22,explor:[26,96],extended_room:187,extern:103,familiar:[56,57],faq:25,faster:127,featur:[38,55,69,135],feel:56,field:64,fieldfil:188,file:[13,14,15,38,43,104,127,131,322],fill:27,find:[39,43,59],firewal:103,first:[0,22,46,57,60,95,124],fix:131,flexibl:38,folder:[9,26,131],forc:43,foreground:110,forget:97,fork:[37,131],form:[17,133,357],format:51,forum:79,framework:79,from:[4,20,25,51,55,60,90,96,100,133,137,138,328],front:136,full:[22,41,69,83],func:41,further:[8,10,136],futur:[21,138],game:[7,26,27,39,45,47,49,54,55,57,58,59,61,62,73,90,100,111,120,123,124,127,128,131],game_index_cli:[268,269,270],gamedir:38,gameplai:122,gametim:[62,331],gap:77,gendersub:189,gener:[17,22,41,43,45,79,123,124,133,165,328],general_context:350,get:[20,43,51,63,67,70,119],get_client_opt:74,get_input:51,get_inputfunc:74,get_valu:74,git:[64,131],github:[38,64],give:[43,70],given:112,global:[53,91,102],glossari:64,gmcp:88,godhood:20,goldenlayout:137,googl:133,grant:58,grapevin:[65,278],griatch:[1,48,138],grid:[24,49],group:119,guest:66,gui:138,guid:9,handl:[12,69,103,110],handler:[53,107,116],haproxi:67,hard:77,have:123,head:38,health_bar:190,hello:95,help:[9,20,26,37,43,68,69,70,166,236,237,238,239],here:[26,55,60,96],hierarchi:58,hint:8,home:43,hook:125,host:90,hous:20,how:[2,33,58,70,71,89,100,113,121,125],html:[3,133],http:[8,67],idea:138,idmapp:[332,333,334,335],imag:[100,103],implement:73,improv:69,index:[54,69,133,139],info:[79,110],inform:[45,90],infrastructur:73,ingame_python:[191,192,193,194,195,196,197,198],ingo:83,inherit:140,inherits_from:27,initi:[6,23,25,116],initial_setup:271,inlin:114,inlinefunc:[114,336],input:[33,51,88],inputfunc:[74,83,88,272],insid:119,instal:[4,7,8,9,23,63,67,71,75,90,100,122,131,133],instanc:[33,86,125],instruct:88,integr:36,interact:[10,13,14,26],interfac:103,internation:76,interpret:106,intro_menu:230,introduct:[9,26,49,51,55,93,95,111,122,133],inventori:[43,82],irc2chan:43,irc:[72,279],issu:24,ital:38,jan:138,johnni:1,join:41,jumbotron:17,just:55,kei:[22,51,109],keyword:46,kill:110,know:[55,103],known:97,kovitiku:48,languag:[51,76],last:25,latest:[100,128],latin:25,launch:[50,51],layout:[16,41,47],learn:[26,55,77],leav:[41,121],legend:24,let:[13,42,69,90],librari:[47,96],licens:78,life:7,lift:12,like:[13,56,123],limit:[13,14,119],line:[21,42,50],link:[38,43,79,94,114],linux:[36,63,110],list:[38,42],list_nod:51,listen:118,literatur:79,live:110,local:[38,90,91],lock:[11,43,80,121,240,241,242],lockdown:90,lockfunc:241,lockhandl:242,log:[9,27,69,95,103],logfil:106,logger:337,login:[66,74],logo:136,longer:46,look:[5,43,56,95,123],lookup:53,mac:[63,110],machin:90,magic:97,mail:[131,199],main:[38,53],make:[20,21,27,57,58,60,67,121,123,127,131],manag:[4,137,147,176,238,245,255,273,317,333],manual:[54,81],map:[49,111],mapbuild:200,mapper:49,mariadb:23,mass:82,master:[58,131],match:97,mccp:280,mech:21,mechan:124,memplot:300,menu:[22,27,51,85,249,328],menu_login:201,merg:31,messag:[0,25,83,88],messagepath:83,method:[33,41,81,97],middlewar:351,migrat:[4,64,128],mind:131,mini:127,minimap:111,miscellan:124,mob:231,mod_proxi:8,mod_ssl:8,mod_wsgi:8,mode:[13,14,64,90,105,110],model:[53,86,127,133,148,177,239,246,256,274,318,334],modif:58,modifi:[8,30],modul:[71,73,94,95,109,116],monitor:74,monitorhandl:[84,257],more:[16,29,38,53,57,80,81,128,135],most:26,move:[25,121],msdp:88,msg:[34,81,83],mssp:281,mud:79,multi:57,multidesc:[57,202],multipl:[11,119],multisess:[64,105],mush:[57,123],mutabl:[11,97],mux:[129,241],muxcommand:167,mvattr:43,mxp:282,mysql:23,name:[12,43,88,97,241],naw:283,ndb:11,need:[0,55],nest:22,next:[57,63,71],nice:67,nick:[43,87],node:51,non:[11,25,28,54],nop:24,note:[8,10,14,15,31,33,38,40,51,87,112,118,122,127],npc:[85,117,118,123],number:91,object:[5,6,11,20,25,27,43,59,60,61,64,80,82,89,96,97,105,111,112,119,121,124,232,243,244,245,246,247],objmanipcommand:43,obtain:133,oct:138,octob:138,off:25,offici:79,olc:109,one:39,onli:[38,110],onlin:[38,90,131],oob:88,ooc:43,open:[43,85],oper:[0,10],option:[1,22,43,51,58,67,90,91,103,110],optionclass:338,optionhandl:339,other:[23,33,45,79,90,104],our:[0,22,69,95,96,108,121,133],out:[25,40,58],outgo:83,output:[59,127,209],outputcommand:88,outputfunc:88,outsid:[59,90],overal:73,overload:[81,125,135],overrid:97,overview:[36,47,86,116,136],own:[2,33,40,74,89,90,100,137],page:[3,4,43,69,135,136],parent:[57,86],pars:[25,41,91,95],part:96,parti:79,password:43,patch:37,path:[13,83],paus:[0,29,33],pax:9,pdb:42,perm:43,permiss:[19,58,80,112,122],perpetu:61,persist:[11,28,29,50],person:20,picklefield:340,pictur:133,pip:[4,64],plai:67,plan:[26,61,111],player:57,plugin:137,point:26,polici:129,port:[90,103],portal:[83,92,105,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296],portalsess:83,portalsessionhandl:[83,285],pose:43,posit:1,possibl:51,post:138,postgresql:23,practic:91,prepar:36,prerequisit:75,prevent:25,privileg:4,problem:108,process:[10,110],processor:[13,14,15,322],product:[21,100],profil:[93,297,298,299,300,301,302,303,304],program:[42,55],progress:77,project:[36,106],prompt:[30,51],properti:[2,11,31,33,34,51,64,89,102,105,112,125],protfunc:[109,250],protocol:[40,45,55,88],prototyp:[109,248,249,250,251,252],proxi:[8,90],publicli:131,pudb:42,puppet:64,push:[20,131],put:[67,69,131],puzzl:203,pycharm:106,python:[13,26,55,57,59,71,77,79,94,95,96],quell:[19,43,80,122],queri:[119,125],quick:[36,63],quickstart:20,quiet:91,quirk:97,quit:43,random_string_gener:204,read:[10,26,135,136],real:13,reboot:110,recapcha:133,receiv:[40,88],red_button:226,red_button_script:227,reduc:1,refactor:[1,48],refer:[25,38],regist:90,relat:[45,62],releas:[38,61],relev:90,reli:13,reload:[8,25,43,97,110],remark:123,rememb:38,remind:69,remot:[90,131],remov:[25,112],repeat:[51,74],repo:9,report:38,repositori:[26,37,38,64,131],request:38,requir:63,reset:[43,110,128],reshuffl:20,resourc:79,rest:38,restart:8,retriev:11,roadmap:99,role:58,roleplai:58,roller:58,rom:56,room:[0,6,25,39,49,58,61,82,89,233],rplanguag:205,rpsystem:206,rss2chan:43,rss:[98,286],rule:[31,73,116],run:[4,7,25,33,42,55,75,100,106,127],runner:127,safeti:13,sage:48,sai:43,same:[46,51],save:11,schema:128,score:123,screen:35,screenshot:101,script:[43,64,102,121,195,253,254,255,256,257,258,259,260,261],scripthandl:258,search:[27,31,39,53,86,91,112,119,341],secret:133,secur:[8,67,103,207,208,209,210,211],see:[69,97],select:25,self:91,send:[30,40,88],sent:30,separ:22,sept:[1,48],server:[7,8,23,43,76,90,92,104,105,123,210,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312],serverconf:104,serversess:[83,306],serversessionhandl:83,servic:[43,270],session:[25,43,58,64,83,105,307],sessionhandl:[105,308],set:[4,5,9,31,43,49,51,54,62,65,72,80,81,90,98,103,104,106,123,127,131],setdesc:43,sethelp:43,sethom:43,setpow:123,settings_default:313,settings_mixin:301,setup:[8,9,23,36,90],sever:[39,46,91],share:131,sharedmemorymodel:86,sheet:[42,58],shell:96,shop:85,shortcut:[11,53],show:[51,123],shut:110,shutdown:43,sidebar:38,signal:[107,309],simpl:[3,22,29,42,51,80,93,127],simpledoor:212,singl:11,singleton:53,site:[64,135],sitekei:133,slow_exit:213,soft:108,softcod:[57,108],solut:108,some:[39,41,56],somewher:55,sourc:[38,43,106],space:17,spawn:[43,57,109],spawner:[109,252],special:38,specif:5,spread:37,spuriou:24,sql:23,sqlite3:23,ssh:[88,103,287],ssl:[90,288],standard:[55,62,129],start:[9,58,63,85,100,110],stat:120,statu:[94,110],step:[5,9,20,42,57,60,61,65,71,72,75,98,124,131,133],stop:110,storag:51,store:[6,11,25,51,109],string:[51,80,91,94,328],strip:91,structur:38,studi:0,stuff:[55,123],style:[17,43],sub:22,subclass:89,subject:96,suit:127,summari:[12,53,55],superus:80,support:[24,55,88],suppress_ga:289,surround:42,swap:125,synchron:10,syntax:[26,38,57,110,322],syscommand:168,system:[16,32,33,43,45,61,68,69,73,80,116,123,124,169],tabl:[25,27,38,86],tag:[39,43,112,126,319],talking_npc:214,taskhandl:260,tb_basic:217,tb_equip:218,tb_item:219,tb_magic:220,tb_rang:221,teamciti:36,tech:61,technic:[38,55],tel:43,telnet:[24,88,90,290],telnet_oob:291,telnet_ssl:292,templat:[36,51,69,133,328],templatetag:[358,359],tempmsg:34,temporari:51,termux:75,test:[55,59,93,123,127,170,196,211,228,293,303,335,352,360],test_queri:302,test_resourc:342,text2html:343,text:[27,38,51,74,113,114,136],texttag:114,theori:91,thi:[41,69],thing:[38,56,57,119],third:79,throttl:310,through:[37,42,100],ticker:[64,115],tickerhandl:[115,261],tie:58,time:[27,33,43,62,102,108],time_format:27,timer:93,timetrac:304,tip:131,titeuf87:138,to_byt:27,to_str:27,toc:364,togeth:[67,69],tool:[12,27,79],traceback:26,track:131,train:[73,121],translat:76,travi:130,treat:13,tree_select:215,trick:131,troubleshoot:[60,63,75],ttype:294,tunnel:43,turn:[25,97,116],turnbattl:[216,217,218,219,220,221],tutori:[0,5,6,18,21,46,62,69,85,96,116,117,118,119,120,121,122,123,124,127,132,134,136],tutorial_exampl:[222,223,224,225,226,227,228],tutorial_world:[229,230,231,232,233],tweak:[60,96],tweet:[71,120],twist:[64,94],twitter:71,two:96,type:[2,5,6,11,60,89],typeclass:[6,43,45,53,57,64,81,97,119,124,125,140,197,314,315,316,317,318,319],unban:43,under:131,understand:126,ungm:58,uninstal:122,unit:127,unixcommand:234,unlink:43,unloggedin:[43,171],unmonitor:74,unrepeat:74,updat:[6,25,60,125,128,131],upgrad:128,upload:103,upstream:[97,131],url:[3,4,69,133,347,354,361],usag:[1,13,14,50],use:[55,97,115],used:[25,33],useful:[33,79],user:[19,33,56,57,69,103,124,131],userpassword:43,using:[0,42,119,127],util:[17,27,29,33,53,79,106,119,198,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,348,349,350,351,352],valid:[80,311],validatorfunc:345,valu:[51,109,119],variabl:[42,59],vehicl:121,verbatim:38,version:[38,131],versu:10,vhost:8,view:[3,68,69,133,134,135,355,362],virtualenv:64,voic:0,wai:[29,51,77],wall:43,want:[55,100],warn:38,weather:132,web:[3,45,88,90,97,103,124,133,134,135,136,137,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362],webclient:[137,138,295,353,354,355],webclient_ajax:296,webclient_gui:137,webserv:[103,312],websit:[4,135,356,357,358,359,360,361,362],websocket:[8,67],weight:82,what:[11,16,36,41,55,91,100],when:[25,115],where:[5,55,60,63,96],whisper:43,whitepag:45,who:[33,43],wiki:[4,139],wilder:235,willing:55,window:[9,63],wipe:43,wizard:54,word:37,work:[7,33,55,69,77,91,100,121,125,131],workaround:24,world:[18,20,61,95,122],write:[40,127,137],xterm256:[114,126],yield:[29,51],you:[26,55],your:[2,4,19,20,26,33,39,40,60,74,86,89,90,97,100,103,108,128,131,133,137],yourself:[20,60,61],zone:140}}) \ No newline at end of file diff --git a/docs/0.9.5/toc.html b/docs/0.9.5/toc.html index 4c1b101b44..3ddcbd001c 100644 --- a/docs/0.9.5/toc.html +++ b/docs/0.9.5/toc.html @@ -245,6 +245,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      diff --git a/docs/1.0-dev/.buildinfo b/docs/1.0-dev/.buildinfo index fd5144b657..6297324ec4 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: d4232e84f8ae6f19db36ccc73c0bc683 +config: d44b09e1b0e25f0a3dfdb072c1a7756a tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/1.0-dev/Coding/Coding-Introduction.html b/docs/1.0-dev/Coding/Coding-Introduction.html index b79a591950..6c9840032e 100644 --- a/docs/1.0-dev/Coding/Coding-Introduction.html +++ b/docs/1.0-dev/Coding/Coding-Introduction.html @@ -29,7 +29,6 @@ -
      develop branch
      @@ -226,6 +225,7 @@ chat are also there for you.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -242,7 +242,6 @@ chat are also there for you.

      -
      develop branch
      @@ -137,6 +136,7 @@ to you, but some things may still be useful.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -159,7 +159,6 @@ to you, but some things may still be useful.

      -
      develop branch
      @@ -404,6 +403,7 @@ build steps could be added or removed at this point, adding some features like U
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -420,7 +420,6 @@ build steps could be added or removed at this point, adding some features like U -
      develop branch
      @@ -360,6 +359,7 @@ topic here.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -376,7 +376,6 @@ topic here.

      -
      develop branch
      @@ -113,6 +112,7 @@ package imports from.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -129,7 +129,6 @@ package imports from.

      -
      develop branch
      @@ -203,6 +202,7 @@ course hard to actually mimic human user behavior. For this, actual real-game te
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -219,7 +219,6 @@ course hard to actually mimic human user behavior. For this, actual real-game te -
      develop branch
      @@ -198,6 +197,7 @@ instructions, use the following command to fix it:

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -214,7 +214,6 @@ instructions, use the following command to fix it:

      -
      develop branch
      @@ -202,6 +201,7 @@ still running in interactive mode.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -218,7 +218,6 @@ still running in interactive mode.

      -
      develop branch
      @@ -576,6 +575,7 @@ will get much more information to help you fix the bug.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -592,7 +592,6 @@ will get much more information to help you fix the bug.

      -
      develop branch
      @@ -212,6 +211,7 @@ you then just run e
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -228,7 +228,6 @@ you then just run e -
      develop branch
      @@ -116,6 +115,7 @@ fitting your game.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -132,7 +132,6 @@ fitting your game.

      -
      develop branch
      @@ -533,6 +532,7 @@ understand the underlying ideas behind GIT
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -549,7 +549,6 @@ understand the underlying ideas behind GIT -
      develop branch
      @@ -188,6 +187,7 @@ any.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -204,7 +204,6 @@ any.

      -
      develop branch
      @@ -517,6 +516,7 @@ those will check for the 0.9.5 (v0.9.5 branch) +
      @@ -533,7 +533,6 @@ those will check for the Evennia 1.0-dev » -
      develop branch
      @@ -374,6 +373,7 @@ executed. When the code runs it has no knowledge of what file those strings wher
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -390,7 +390,6 @@ executed. When the code runs it has no knowledge of what file those strings wher -
      develop branch
      @@ -298,6 +297,7 @@ mode instead, see its readme for install instructions.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -314,7 +314,6 @@ mode instead, see its readme for install instructions.

      -
      develop branch
      @@ -152,6 +151,7 @@ allowed.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -168,7 +168,6 @@ allowed.

      -
      develop branch
      @@ -186,6 +185,7 @@ over 0.9.5 (v0.9.5 branch) +
      @@ -202,7 +202,6 @@ over Evennia 1.0-dev » -
      develop branch
      @@ -75,6 +74,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -91,7 +91,6 @@ -
      develop branch
      @@ -443,6 +442,7 @@ instructions.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -459,7 +459,6 @@ instructions.

      -
      develop branch
      @@ -488,6 +487,7 @@ commands having any combination of the keys and/or aliases “kick”, “punch
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -504,7 +504,6 @@ commands having any combination of the keys and/or aliases “kick”, “punch -
      develop branch
      @@ -84,6 +83,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -100,7 +100,6 @@ -
      develop branch
      @@ -861,6 +860,7 @@ on.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -877,7 +877,6 @@ on.

      -
      develop branch
      @@ -199,6 +198,7 @@ for channel communication (since the default ChannelCommand instead logs to a fi
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -215,7 +215,6 @@ for channel communication (since the default ChannelCommand instead logs to a fi -
      develop branch
      @@ -179,6 +178,7 @@ than, the doc-strings of each component in the 0.9.5 (v0.9.5 branch) +
      @@ -201,7 +201,6 @@ than, the doc-strings of each component in the Evennia 1.0-dev » -
      develop branch
      @@ -114,6 +113,7 @@ tutorial section on how to add new commands to a default command set.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -130,7 +130,6 @@ tutorial section on how to add new commands to a default command set.

      -
      develop branch
      @@ -322,6 +321,7 @@ editor can be useful if you want to test the code you have typed but add new lin
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -338,7 +338,6 @@ editor can be useful if you want to test the code you have typed but add new lin -
      develop branch
      @@ -1352,6 +1351,7 @@ until the exit node.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -1368,7 +1368,6 @@ until the exit node.

      -
      develop branch
      @@ -115,6 +114,7 @@ paging.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -131,7 +131,6 @@ paging.

      -
      develop branch
      @@ -214,6 +213,7 @@ definition:

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -230,7 +230,6 @@ definition
      :

      -
      develop branch
      @@ -275,6 +274,7 @@ add more. By default the following fields/attributes can be monitored:

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -291,7 +291,6 @@ add more. By default the following fields/attributes can be monitored:

      -
      develop branch
      @@ -625,6 +624,7 @@ interface. It’s stand-alone from the permissions described above.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -641,7 +641,6 @@ interface. It’s stand-alone from the permissions described above.

      -
      develop branch
      @@ -172,6 +171,7 @@ the monitor to remove:

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -188,7 +188,6 @@ the monitor to remove:

      -
      develop branch
      @@ -211,6 +210,7 @@ basically the unchanged strings you enter to the 0.9.5 (v0.9.5 branch) +
      @@ -227,7 +227,6 @@ basically the unchanged strings you enter to the Evennia 1.0-dev » -
      develop branch
      @@ -280,6 +279,7 @@ and display this as an error message. If this is not found, the Exit will instea
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -296,7 +296,6 @@ and display this as an error message. If this is not found, the Exit will instea -
      develop branch
      @@ -75,6 +74,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -91,7 +91,6 @@ -
      develop branch
      @@ -83,6 +82,7 @@ This allows the two programs to communicate seamlessly.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -99,7 +99,6 @@ This allows the two programs to communicate seamlessly.

      -
      develop branch
      @@ -412,6 +411,7 @@ the api docs.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -428,7 +428,6 @@ the api docs.

      -
      develop branch
      @@ -513,6 +512,7 @@ tutorial.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -529,7 +529,6 @@ tutorial.

      -
      develop branch
      @@ -185,6 +184,7 @@ know about if you are an Evennia developer.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -201,7 +201,6 @@ know about if you are an Evennia developer.

      -
      develop branch
      @@ -75,6 +74,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -91,7 +91,6 @@ -
      develop branch
      @@ -265,6 +264,7 @@ module for details on the capabilities of the 0.9.5 (v0.9.5 branch) +
      @@ -281,7 +281,6 @@ module for details on the capabilities of the Evennia 1.0-dev » -
      develop branch
      @@ -198,6 +197,7 @@ decorator (only relevant for unit testing)

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -214,7 +214,6 @@ decorator (only relevant for unit testing)

      -
      develop branch
      @@ -278,6 +277,7 @@ is found in the 0.9.5 (v0.9.5 branch) +
      @@ -294,7 +294,6 @@ is found in the Evennia 1.0-dev » -
      develop branch
      @@ -205,6 +204,7 @@ same time without input from something else.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -221,7 +221,6 @@ same time without input from something else.

      -
      develop branch
      @@ -430,6 +429,7 @@ comments for examples and solutions.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -446,7 +446,6 @@ comments for examples and solutions.

      -
      develop branch
      @@ -344,6 +343,7 @@ window.plugin_handler.add("myplugin", myplugin);
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -360,7 +360,6 @@ window.plugin_handler.add("myplugin", myplugin); -
      develop branch
      @@ -75,6 +74,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -91,7 +91,6 @@ -
      develop branch
      @@ -344,6 +343,7 @@ your own liking.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -360,7 +360,6 @@ your own liking.

      -
      develop branch
      @@ -230,6 +229,7 @@ objects on the fly. For advanced users.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -246,7 +246,6 @@ objects on the fly. For advanced users.

      -
      develop branch
      @@ -182,6 +181,7 @@ started/introduction/) or read one of our other web tutorials.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -198,7 +198,6 @@ started/introduction/) or read one of our other web tutorials.

      -
      develop branch
      @@ -152,6 +151,7 @@ levels. Note that you cannot escalate your permissions this way; If the Characte
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -168,7 +168,6 @@ levels. Note that you cannot escalate your permissions this way; If the Characte -
      develop branch
      @@ -139,6 +138,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -161,7 +161,6 @@ -
      develop branch
      @@ -421,6 +420,7 @@ ways.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -437,7 +437,6 @@ ways.

      -
      develop branch
      @@ -99,6 +98,7 @@ of nine names from
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -115,7 +115,6 @@ of nine names from -
      develop branch
      @@ -166,6 +165,7 @@ your own repository clone) so we can integrate your translation into Evennia!

      0.9.5 (v0.9.5 branch) +
      @@ -182,7 +182,6 @@ your own repository clone) so we can integrate your translation into Evennia!

      Evennia 1.0-dev » -
      develop branch
      @@ -295,6 +294,7 @@ may trigger changes in the GUI or play a sound etc.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -311,7 +311,6 @@ may trigger changes in the GUI or play a sound etc.

      -
      develop branch
      @@ -75,6 +74,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -91,7 +91,6 @@ -
      develop branch
      @@ -362,6 +361,7 @@ lot more information about querying the database.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -378,7 +378,6 @@ lot more information about querying the database.

      -
      develop branch
      @@ -260,6 +259,7 @@ same example ("
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -276,7 +276,6 @@ same example (" -
      develop branch
      @@ -167,6 +166,7 @@ pseudo-softcode plugin aimed at developers wanting to script their game from ins
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -183,7 +183,6 @@ pseudo-softcode plugin aimed at developers wanting to script their game from ins -
      develop branch
      @@ -139,6 +138,7 @@ the Wikipedia article 0.9.5 (v0.9.5 branch) +
      @@ -155,7 +155,6 @@ the Wikipedia article Evennia 1.0-dev » -
      develop branch
      @@ -447,6 +446,7 @@ given, it defaults to resetting the color (0.9.5 (v0.9.5 branch) +
      @@ -463,7 +463,6 @@ given, it defaults to resetting the color (Evennia 1.0-dev » -
      develop branch
      @@ -194,6 +193,7 @@ something to the effect of

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -210,7 +210,6 @@ something to the effect of

      -
      develop branch
      @@ -220,6 +219,7 @@ implementation, the relevant django “applications” in default Evennia are 0.9.5 (v0.9.5 branch) +
      @@ -236,7 +236,6 @@ implementation, the relevant django “applications” in default Evennia are Evennia 1.0-dev » -
      develop branch
      @@ -129,6 +128,7 @@ properly search the inheritance tree.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -145,7 +145,6 @@ properly search the inheritance tree.

      -
      develop branch
      @@ -568,6 +567,7 @@ shown in the next tutorial.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -591,7 +591,6 @@ shown in the next tutorial.

      -
      develop branch
      @@ -326,6 +325,7 @@ on localhost at port 4000, and the webserver at http://localhost:4001/

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -342,7 +342,6 @@ on localhost at port 4000, and the webserver at http://localhost:4001/

      -
      develop branch
      @@ -1678,6 +1677,7 @@ exhaustive but user-friendly.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -1701,7 +1701,6 @@ exhaustive but user-friendly.

      -
      develop branch
      @@ -422,6 +421,7 @@ want to solve the puzzles and mystery yourself).

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -444,7 +444,6 @@ want to solve the puzzles and mystery yourself).

      -
      develop branch
      @@ -334,6 +333,7 @@ from this rather than the more opinionated 0.9.5 (v0.9.5 branch) +
      @@ -357,7 +357,6 @@ from this rather than the more opinionated Contrib modules » -
      develop branch
      @@ -339,6 +338,7 @@ events).

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -362,7 +362,6 @@ events).

      -
      develop branch
      @@ -813,6 +812,7 @@ also look into up/down directions and figure out how to display that in a good w
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -836,7 +836,6 @@ also look into up/down directions and figure out how to display that in a good w -
      develop branch
      @@ -696,6 +695,7 @@ Tutorial), 0.9.5 (v0.9.5 branch) +
      @@ -719,7 +719,6 @@ Tutorial), Contrib modules » -
      develop branch
      @@ -838,6 +837,7 @@ to understand our friendly Google-style docstrings used in classes and functions
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -854,7 +854,6 @@ to understand our friendly Google-style docstrings used in classes and functions -
      develop branch
      @@ -198,6 +197,7 @@ UBBFWIuVDEZxC0M_2pM6ywO&dispatch=5885d80a13c0db1f8e263663d3faee8d66f31424b43
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -214,7 +214,6 @@ UBBFWIuVDEZxC0M_2pM6ywO&dispatch=5885d80a13c0db1f8e263663d3faee8d66f31424b43 -
      develop branch
      @@ -222,6 +221,7 @@ game-specific contributions and plugins (0.9.5 (v0.9.5 branch) +
      @@ -244,7 +244,6 @@ game-specific contributions and plugins (Evennia 1.0-dev » -
      develop branch
      @@ -227,6 +226,7 @@ your own game, you will end up with a small (very small) game that you can build
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -249,7 +249,6 @@ your own game, you will end up with a small (very small) game that you can build -
      develop branch
      @@ -463,6 +462,7 @@ activated whenever you want to use the 0.9.5 (v0.9.5 branch) +
      @@ -479,7 +479,6 @@ activated whenever you want to use the Evennia 1.0-dev » -
      develop branch
      @@ -148,6 +147,7 @@ issues by putting up a monetary 0.9.5 (v0.9.5 branch) +
      @@ -170,7 +170,6 @@ issues by putting up a monetary Evennia 1.0-dev » -
      develop branch
      @@ -402,6 +401,7 @@ necessary. If you’re interested in supporting this little project, you are mo
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -418,7 +418,6 @@ necessary. If you’re interested in supporting this little project, you are mo -
      develop branch
      @@ -377,6 +376,7 @@ shooting goodness would be made available to you only when you enter it.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -393,7 +393,6 @@ shooting goodness would be made available to you only when you enter it.

      -
      develop branch
      @@ -584,6 +583,7 @@ discussion where some suitable fonts are suggested.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -600,7 +600,6 @@ discussion where some suitable fonts are suggested.

      -
      develop branch
      @@ -218,6 +217,7 @@ other types of attacks for a while before the warrior can recover.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -234,7 +234,6 @@ other types of attacks for a while before the warrior can recover.

      -
      develop branch
      @@ -705,6 +704,7 @@ callback when the server comes back up (it will resume the countdown and ignore
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -721,7 +721,6 @@ callback when the server comes back up (it will resume the countdown and ignore -
      develop branch
      @@ -263,6 +262,7 @@ directly the easiest way is to just wrap those with a multiple inheritance to yo
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -279,7 +279,6 @@ directly the easiest way is to just wrap those with a multiple inheritance to yo -
      develop branch
      @@ -566,6 +565,7 @@ square (E, G, M and O) are not in this circle. So we remove them.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -582,7 +582,6 @@ square (E, G, M and O) are not in this circle. So we remove them.

      -
      develop branch
      @@ -752,6 +751,7 @@ lg/avenew/blob/master/commands/comms.py)

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -768,7 +768,6 @@ lg/avenew/blob/master/commands/comms.py)

      -
      develop branch
      @@ -240,6 +239,7 @@ matching “north” exit-command.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -256,7 +256,6 @@ matching “north” exit-command.

      -
      develop branch
      @@ -345,6 +344,7 @@ your mob.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -361,7 +361,6 @@ your mob.

      -
      develop branch
      @@ -310,6 +309,7 @@ or post a question in our 0.9.5 (v0.9.5 branch) +
      @@ -326,7 +326,6 @@ or post a question in our Evennia 1.0-dev » -
      develop branch
      @@ -1133,6 +1132,7 @@ when the message was sent.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -1149,7 +1149,6 @@ when the message was sent.

      -
      develop branch
      @@ -458,6 +457,7 @@ same way as described for the default one above.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -474,7 +474,6 @@ same way as described for the default one above.

      -
      develop branch
      @@ -659,6 +658,7 @@ themselves links to display their details.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -675,7 +675,6 @@ themselves links to display their details.

      -
      develop branch
      @@ -237,6 +236,7 @@ in mind for your own game, this will give you a good start.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -259,7 +259,6 @@ in mind for your own game, this will give you a good start.

      -
      develop branch
      @@ -296,6 +295,7 @@ regardless of if Evennia thinks their client supports it or not.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -312,7 +312,6 @@ regardless of if Evennia thinks their client supports it or not.

      -
      develop branch
      @@ -207,6 +206,7 @@ the following message in the elevator’s appearance: 0.9.5 (v0.9.5 branch) +
      @@ -223,7 +223,6 @@ the following message in the elevator’s appearance: Evennia 1.0-dev » -
      develop branch
      @@ -556,6 +555,7 @@ it well stocked.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -572,7 +572,6 @@ it well stocked.

      -
      develop branch
      @@ -1068,6 +1067,7 @@ code.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -1084,7 +1084,6 @@ code.

      -
      develop branch
      @@ -553,6 +552,7 @@ get into how we replace and extend Evennia’s default Commands.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -576,7 +576,6 @@ get into how we replace and extend Evennia’s default Commands.

      -
      develop branch
      @@ -395,6 +394,7 @@ example. Evennia comes with a tutorial world for you to explore. We will try tha
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -418,7 +418,6 @@ example. Evennia comes with a tutorial world for you to explore. We will try tha -
      develop branch
      @@ -145,6 +144,7 @@ You can find the parent class for Accounts in 0.9.5 (v0.9.5 branch) +
      @@ -168,7 +168,6 @@ You can find the parent class for Accounts in Starting Tutorial (Part 1) » -
      develop branch
      @@ -531,6 +530,7 @@ to understand how to plan what our tutorial game will be about.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -554,7 +554,6 @@ to understand how to plan what our tutorial game will be about.

      -
      develop branch
      @@ -222,6 +221,7 @@ to look it up in the docs:

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -245,7 +245,6 @@ to look it up in the docs:

      -
      develop branch
      @@ -320,6 +319,7 @@ equipment, stats and looks.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -343,7 +343,6 @@ equipment, stats and looks.

      -
      develop branch
      @@ -817,6 +816,7 @@ this tutorial. But that’s enough of them for now. It’s time to take some act
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -840,7 +840,6 @@ this tutorial. But that’s enough of them for now. It’s time to take some act -
      develop branch
      @@ -739,6 +738,7 @@ command on ourselves.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -762,7 +762,6 @@ command on ourselves.

      -
      develop branch
      @@ -720,6 +719,7 @@ Now let’s look at the rest of the stuff you’ve got going on inside that 0.9.5 (v0.9.5 branch) +
      @@ -743,7 +743,6 @@ Now let’s look at the rest of the stuff you’ve got going on inside that Starting Tutorial (Part 1) » -
      develop branch
      @@ -538,6 +537,7 @@ provides. But first we need to learn just where to find everything.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -561,7 +561,6 @@ provides. But first we need to learn just where to find everything.

      -
      develop branch
      @@ -373,6 +372,7 @@ Django queries and querysets in earnest.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -396,7 +396,6 @@ Django queries and querysets in earnest.

      -
      develop branch
      @@ -226,6 +225,7 @@ the log again just run

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -248,7 +248,6 @@ the log again just run

      -
      develop branch
      @@ -208,6 +207,7 @@ move on with how to access this power through code.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -231,7 +231,6 @@ move on with how to access this power through code.

      -
      develop branch
      @@ -312,6 +311,7 @@ have made their dream game a reality!

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -336,7 +336,6 @@ have made their dream game a reality!

      -
      develop branch
      @@ -331,6 +330,7 @@ back to your planning and adjust it as you learn what works and what does not.0.9.5 (v0.9.5 branch) +
      @@ -355,7 +355,6 @@ back to your planning and adjust it as you learn what works and what does not.Evennia Starting Tutorial (Part 2) » -
      develop branch
      @@ -548,6 +547,7 @@ to code themselves. So in the next lesson we will check out what help we have fr
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -564,7 +564,6 @@ to code themselves. So in the next lesson we will check out what help we have fr -
      develop branch
      @@ -238,6 +237,7 @@ then try to answer those questions for the sake of creating our little tutorial
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -262,7 +262,6 @@ then try to answer those questions for the sake of creating our little tutorial -
      develop branch
      @@ -128,6 +127,7 @@ and “what to think about” when creating a multiplayer online text game.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -151,7 +151,6 @@ and “what to think about” when creating a multiplayer online text game.

      -
      develop branch
      @@ -1171,6 +1170,7 @@ mixing them, or even try a third solution that better fits what you have in mind
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -1187,7 +1187,6 @@ mixing them, or even try a third solution that better fits what you have in mind -
      develop branch
      @@ -452,6 +451,7 @@ your rules0.9.5 (v0.9.5 branch) +
      @@ -468,7 +468,6 @@ your rulesEvennia 1.0-dev » -
      develop branch
      @@ -128,6 +127,7 @@ with using Evennia. This be of much use when doing your own thing later.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -152,7 +152,6 @@ with using Evennia. This be of much use when doing your own thing later.

      -
      develop branch
      @@ -911,6 +910,7 @@ show others what’s going on.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -927,7 +927,6 @@ show others what’s going on.

      -
      develop branch
      @@ -970,6 +969,7 @@ as the 0.9.5 (v0.9.5 branch) +
      @@ -986,7 +986,6 @@ as the Evennia 1.0-dev » -
      develop branch
      @@ -95,6 +94,7 @@ and batchcode processors.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -111,7 +111,6 @@ and batchcode processors.

      -
      develop branch
      @@ -195,6 +194,7 @@ to.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -211,7 +211,6 @@ to.

      -
      develop branch
      @@ -93,6 +92,7 @@ to bring your game online so you can invite your first players.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -109,7 +109,6 @@ to bring your game online so you can invite your first players.

      -
      develop branch
      @@ -190,6 +189,7 @@ works and what possibilities exist.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -206,7 +206,6 @@ works and what possibilities exist.

      -
      develop branch
      @@ -217,6 +216,7 @@ AI code).

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -233,7 +233,6 @@ AI code).

      -
      develop branch
      @@ -225,6 +224,7 @@ Which way to go depends on the design requirements of your particular game.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -241,7 +241,6 @@ Which way to go depends on the design requirements of your particular game.

      -
      develop branch
      @@ -230,6 +229,7 @@ as mygame/typeclass
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -246,7 +246,6 @@ as mygame/typeclass -
      develop branch
      @@ -627,6 +626,7 @@ direction to which room it goes.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -643,7 +643,6 @@ direction to which room it goes.

      -
      develop branch
      @@ -241,6 +240,7 @@ push it over the limit, so to speak.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -257,7 +257,6 @@ push it over the limit, so to speak.

      -
      develop branch
      @@ -138,6 +137,7 @@ weather came before it. Expanding it to be more realistic is a useful exercise.<
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -154,7 +154,6 @@ weather came before it. Expanding it to be more realistic is a useful exercise.< -
      develop branch
      @@ -968,6 +967,7 @@ to see what happens. And do the same while checking the checkbox!

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -984,7 +984,6 @@ to see what happens. And do the same while checking the checkbox!

      -
      develop branch
      @@ -355,6 +354,7 @@ here.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -371,7 +371,6 @@ here.

      -
      develop branch
      @@ -94,6 +93,7 @@ as Evennia itself, unless the individual contributor has specifically defined ot
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -110,7 +110,6 @@ as Evennia itself, unless the individual contributor has specifically defined ot -
      develop branch
      @@ -288,6 +287,7 @@ programming curriculum for different skill levels

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -307,7 +307,6 @@ programming curriculum for different skill levels

      -
      develop branch
      @@ -271,6 +270,7 @@ port but this should be applicable also to other types of proxies (like nginx).<
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -287,7 +287,6 @@ port but this should be applicable also to other types of proxies (like nginx).< -
      develop branch
      @@ -114,11 +113,12 @@ database-superuser (always called
      1
          psql -U postgres --password
       
      -
      -

      :warning: Warning: With the --password argument, Postgres should prompt you for a password. -If it won’t, replace that with -p yourpassword instead. Do not use the -p argument unless you +

      +

      Warning

      +

      With the –password argument, Postgres should prompt you for a password. +If it won’t, replace that with -p yourpassword instead. Do not use the -p argument unless you have to since the resulting command, and your password, will be logged in the shell history.

      -
      +

      This will open a console to the postgres service using the psql client.

      On the psql command line:

       1
      @@ -197,6 +197,84 @@ also use

      With the database setup you should now be able to start start Evennia normally with your new database.

      +
      +

      Advanced Postgresql Usage (Remote Server)

      +
      +

      Warning

      +

      The example below is for a server within a private network that is not open to +the Internet. Be sure to understand the details before making any changes to +an Internet-accessible server.

      +
      +

      The above discussion is for hosting a local server. In certain configurations +it may make sense host the database on a server remote to the one Evennia is +running on. One example case is where code development may be done on multiple +machines by multiple users. In this configuration, a local data base (such as +SQLite3) is not feasible since all the machines and developers do not have +access to the file.

      +

      Choose a remote machine to host the database and PostgreSQl server. Follow the +instructions above on that server to set up the database. +Depending on distribution, PostgreSQL will only accept connections on the local +machine (localhost). In order to enable remote access, two files need to be +changed.

      +

      First, determine which cluster is running your database. Use pg_lscluster:

      +
      1
      +2
      +3
      $ pg_lsclusters
      +Ver Cluster Port Status Owner    Data directory              Log file
      +12  main    5432 online postgres /var/lib/postgresql/12/main /var/log/postgresql/postgresql-12-main.log
      +
      +
      +

      Next, edit the database’s postgresql.conf. This is found on Ubuntu systems +in /etc/postgresql/<ver>/<cluster>, where <ver> and <cluster> are +what are reported in the pg_lscluster output. So, for the above example, +the file is /etc/postgresql/12/main/postgresql.conf.

      +

      In this file, look for the line with listen_addresses. For example:

      +
      listen_address = 'localhost'    # What IP address(es) to listen on;
      +                                # comma-separated list of addresses;
      +                                # defaults to 'localhost'; use '*' for all
      +
      +
      +
      +

      Warning

      +

      Misconfiguring the wrong cluster may cause problems +with existing clusters.

      +
      +

      Also, note the line with port = and keep the port number in mind.

      +

      Set listen_addresses to '*'. This permits postgresql to accept connections +on any interface.

      +
      +

      Warning

      +

      Setting listen_addresses to ‘*’ opens a port on all interfaces. If your +server has access to the Internet, ensure your firewall is configured +appropriately to limit access to this port as necessary. (You may also list +explicit addresses and subnets to listen. See the postgresql documentation +for more details.)

      +
      +

      Finally, modify the pg_hba.conf (in the same directory as postgresql.conf). +Look for a line with:

      +
      # IPv4 local connections:
      +host    all             all             127.0.0.1/32            md5
      +
      +
      +

      Add a line with:

      +
      host    all             all             0.0.0.0/0               md5
      +
      +
      +
      +

      Warning

      +

      This permits incoming connections from all IPs. See +the PosgreSQL documentation on how to limit this.

      +
      +

      Now, restart your cluster:

      +
      1
      $ pg_ctlcluster 12 main restart
      +
      +
      +

      Finally, update the database settings in your Evennia secret_settings.py (as +described above modifying SERVER and +PORT to match your server.

      +

      Now your Evennia installation should be able to connect and talk with a remote +server.

      +

      MySQL / MariaDB

      @@ -338,6 +416,7 @@ others. If you try other databases out, consider expanding this page with instru
    • PostgreSQL
    • MySQL / MariaDB
        @@ -363,6 +442,7 @@ others. If you try other databases out, consider expanding this page with instru
      • 0.9.5 (v0.9.5 branch)
      +
    • @@ -379,7 +459,6 @@ others. If you try other databases out, consider expanding this page with instru -
      develop branch
      @@ -225,6 +224,7 @@ parameter to disable it for that Evennia account permanently.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -241,7 +241,6 @@ parameter to disable it for that Evennia account permanently.

      -
      develop branch
      @@ -168,6 +167,7 @@ if you are not ready for players yet.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -184,7 +184,6 @@ if you are not ready for players yet.

      -
      develop branch
      @@ -421,6 +420,19 @@ live in the terminal, use localhost:4000 and log in with the user you created. Check out where to go next.

      +
      +

      Non-interactive setup

      +

      When you first run evennia start after having created the database, you will be asked +to interactively insert the superuser username, email and password. If you need to do +this in an automated faction (such as in an automated build flow), you can supply those +values as environment variables, EVENNIA_SUPERUSER_USERNAME, EVENNIA_SUPERUSER_EMAIL and +EVENNIA_SUPERUSER_PASSWORD. The email can be left out and will then be set to be the +empty string.

      +

      Use this to start Evennia (the envvars will be ignored on subsequent starts):

      +
      EVENNIA_SUPERUSER_USERNAME=Foo EVENNIA_SUPERUSER_PASSWORD=MygreatPwd evennia start 
      +
      +
      +

      Where to Go Next

      Welcome to Evennia! Your new game is fully functioning, but empty. If you just @@ -547,6 +559,7 @@ you should update the line to the real location.

    • Linux Install
    • Mac Install
    • Windows Install
    • +
    • Non-interactive setup
    • Where to Go Next
    • Troubleshooting +
    • @@ -587,7 +601,6 @@ you should update the line to the real location.

      -
      develop branch
      @@ -143,6 +142,7 @@ it to your channel in-game.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -159,7 +159,6 @@ it to your channel in-game.

      -
      develop branch
      @@ -139,6 +138,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -155,7 +155,6 @@ -
      develop branch
      @@ -225,6 +224,7 @@ help.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -241,7 +241,6 @@ help.

      -
      develop branch
      @@ -161,6 +160,7 @@ name of the IRC channel you used (#evennia here).

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -177,7 +177,6 @@ name of the IRC channel you used (#evennia here).

      -
      develop branch
      @@ -212,6 +211,7 @@ killed if your phone is heavily taxed. Termux seems to keep a notification up to
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -228,7 +228,6 @@ killed if your phone is heavily taxed. Termux seems to keep a notification up to -
      develop branch
      @@ -585,6 +584,7 @@ https://aws.amazon.com/cloud9/

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -601,7 +601,6 @@ https://aws.amazon.com/cloud9/

      -
      develop branch
      @@ -128,6 +127,7 @@ same channels as 0.9.5 (v0.9.5 branch) +
      @@ -144,7 +144,6 @@ same channels as Evennia 1.0-dev » -
      develop branch
      @@ -369,6 +368,7 @@ line.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -385,7 +385,6 @@ line.

      -
      develop branch
      @@ -240,6 +239,7 @@ ISP snooping.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -256,7 +256,6 @@ ISP snooping.

      -
      develop branch
      @@ -75,6 +74,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -91,7 +91,6 @@ -
      develop branch
      @@ -141,6 +140,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -163,7 +163,6 @@ -
      develop branch
      @@ -187,6 +186,7 @@ a web browser at http
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -209,7 +209,6 @@ a web browser at http -
      develop branch
      @@ -279,6 +278,7 @@ In-game you should now get the message that the Server has successfully restarte
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -295,7 +295,6 @@ In-game you should now get the message that the Server has successfully restarte -
      develop branch
      @@ -93,6 +92,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -118,7 +118,6 @@ -
      develop branch
      @@ -321,6 +320,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -338,7 +338,6 @@ -
      develop branch
      @@ -1203,6 +1202,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -1220,7 +1220,6 @@ -
      develop branch
      @@ -267,6 +266,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -284,7 +284,6 @@ -
      develop branch
      @@ -402,6 +401,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -419,7 +419,6 @@ -
      develop branch
      @@ -499,6 +498,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -516,7 +516,6 @@ -
      develop branch
      @@ -533,6 +532,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -550,7 +550,6 @@ -
      develop branch
      @@ -74,7 +73,7 @@ SIGNAL_OBJECT_POST_PUPPET, SIGNAL_OBJECT_POST_UNPUPPET, ) -from evennia.typeclasses.attributes import NickHandler, ModelAttributeBackend +from evennia.typeclasses.attributes import NickHandler from evennia.scripts.scripthandler import ScriptHandler from evennia.commands.cmdsethandler import CmdSetHandler from evennia.utils.optionhandler import OptionHandler @@ -82,7 +81,7 @@ from django.utils.translation import gettext as _ from random import getrandbits -__all__ = ("DefaultAccount", "DefaultGuest") +__all__ = ("DefaultAccount",) _SESSIONS = None @@ -94,10 +93,10 @@ # Create throttles for too many account-creations and login attempts CREATION_THROTTLE = Throttle( - name='creation', limit=settings.CREATION_THROTTLE_LIMIT, timeout=settings.CREATION_THROTTLE_TIMEOUT + limit=settings.CREATION_THROTTLE_LIMIT, timeout=settings.CREATION_THROTTLE_TIMEOUT ) LOGIN_THROTTLE = Throttle( - name='login', limit=settings.LOGIN_THROTTLE_LIMIT, timeout=settings.LOGIN_THROTTLE_TIMEOUT + limit=settings.LOGIN_THROTTLE_LIMIT, timeout=settings.LOGIN_THROTTLE_TIMEOUT ) @@ -226,7 +225,7 @@ - at_server_reload() - at_server_shutdown() - """ + """ objects = AccountManager() @@ -241,7 +240,7 @@
      [docs] @lazy_property def nicks(self): - return NickHandler(self, ModelAttributeBackend)
      + return NickHandler(self)
      [docs] @lazy_property def sessions(self): @@ -722,6 +721,9 @@ ) Character = class_from_module(character_typeclass) + if "location" not in kwargs: + kwargs["location"] = ObjectDB.objects.get_id(settings.START_LOCATION) + # Create the character character, errs = Character.create( character_key, @@ -1589,21 +1591,21 @@ return look_string
      -
      [docs]class DefaultGuest(DefaultAccount): +class DefaultGuest(DefaultAccount): """ This class is used for guest logins. Unlike Accounts, Guests and their characters are deleted after disconnection. """ -
      [docs] @classmethod + @classmethod def create(cls, **kwargs): """ Forwards request to cls.authenticate(); returns a DefaultGuest object if one is available for use. """ - return cls.authenticate(**kwargs)
      + return cls.authenticate(**kwargs) -
      [docs] @classmethod + @classmethod def authenticate(cls, **kwargs): """ Gets or creates a Guest account object. @@ -1675,9 +1677,9 @@ logger.log_trace() return None, errors - return account, errors
      + return account, errors -
      [docs] def at_post_login(self, session=None, **kwargs): + def at_post_login(self, session=None, **kwargs): """ In theory, guests only have one character regardless of which MULTISESSION_MODE we're in. They don't get a choice. @@ -1689,9 +1691,9 @@ """ self._send_to_connect_channel(_("|G{key} connected|n").format(key=self.key)) - self.puppet_object(session, self.db._last_puppet)
      + self.puppet_object(session, self.db._last_puppet) -
      [docs] def at_server_shutdown(self): + def at_server_shutdown(self): """ We repeat the functionality of `at_disconnect()` here just to be on the safe side. @@ -1700,9 +1702,9 @@ characters = self.db._playable_characters for character in characters: if character: - character.delete()
      + character.delete() -
      [docs] def at_post_disconnect(self, **kwargs): + def at_post_disconnect(self, **kwargs): """ Once having disconnected, destroy the guest's characters and @@ -1716,7 +1718,7 @@ for character in characters: if character: character.delete() - self.delete()
      + self.delete()
      @@ -1744,6 +1746,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -1762,7 +1765,6 @@ -
      develop branch
      @@ -432,6 +431,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -450,7 +450,6 @@ -
      develop branch
      @@ -646,6 +645,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -664,7 +664,6 @@ -
      develop branch
      @@ -256,6 +255,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -274,7 +274,6 @@ -
      develop branch
      @@ -248,6 +247,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -266,7 +266,6 @@ -
      develop branch
      @@ -894,6 +893,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -912,7 +912,6 @@ -
      develop branch
      @@ -290,6 +289,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -308,7 +308,6 @@ -
      develop branch
      @@ -400,14 +399,18 @@ """ perm = "perm" if self.permanent else "non-perm" - options = ", ".join([ - "{}:{}".format(opt, "T" if getattr(self, opt) else "F") - for opt in ("no_exits", "no_objs", "no_channels", "duplicates") - if getattr(self, opt) is not None - ]) + options = ", ".join( + [ + "{}:{}".format(opt, "T" if getattr(self, opt) else "F") + for opt in ("no_exits", "no_objs", "no_channels", "duplicates") + if getattr(self, opt) is not None + ] + ) options = (", " + options) if options else "" - return f"<CmdSet {self.key}, {self.mergetype}, {perm}, prio {self.priority}{options}>: " + ", ".join( - [str(cmd) for cmd in sorted(self.commands, key=lambda o: o.key)]) + return ( + f"<CmdSet {self.key}, {self.mergetype}, {perm}, prio {self.priority}{options}>: " + + ", ".join([str(cmd) for cmd in sorted(self.commands, key=lambda o: o.key)]) + ) def __iter__(self): """ @@ -741,6 +744,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -759,7 +763,6 @@ -
      develop branch
      @@ -373,7 +372,7 @@ if mergelist: # current is a result of mergers - mergelist="+".join(mergelist) + mergelist = "+".join(mergelist) strings.append(f" <Merged {mergelist}>: {self.current}") else: # current is a single cmdset @@ -721,6 +720,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -739,7 +739,6 @@ -
      develop branch
      @@ -126,15 +125,6 @@ break cls.help_category = cls.help_category.lower() - # pre-prepare a help index entry for quicker lookup - cls.search_index_entry = { - "key": cls.key, - "aliases": " ".join(cls.aliases), - "category": cls.help_category, - "text": cls.__doc__, - "tags": "", - } -
      [docs]class CommandMeta(type): """ @@ -561,6 +551,20 @@ )[0] return settings.CLIENT_DEFAULT_WIDTH
      +
      [docs] def client_height(self): + """ + Get the client screenheight for the session using this command. + + Returns: + client height (int): The height (in characters) of the client window. + + """ + if self.session: + return self.session.protocol_flags.get( + "SCREENHEIGHT", {0: settings.CLIENT_DEFAULT_HEIGHT} + )[0] + return settings.CLIENT_DEFAULT_HEIGHT
      +
      [docs] def styled_table(self, *args, **kwargs): """ Create an EvTable styled by on user preferences. @@ -742,6 +746,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -760,7 +765,6 @@ -
      develop branch
      @@ -1121,6 +1120,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -1139,7 +1139,6 @@ -
      develop branch
      @@ -662,6 +661,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -680,7 +680,6 @@ -
      develop branch
      @@ -888,6 +887,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -906,7 +906,6 @@ -
      develop branch
      @@ -2558,12 +2557,14 @@ def _format_options(cmdset): """helper for cmdset-option display""" + def _truefalse(string, value): if value is None: return "" if value: return f"{string}: T" return f"{string}: F" + options = ", ".join( _truefalse(opt, getattr(cmdset, opt)) for opt in ("no_exits", "no_objs", "no_channels", "duplicates") @@ -2580,7 +2581,8 @@ continue options = _format_options(cmdset) stored.append( - f"{cmdset.path} [{cmdset.key}] ({cmdset.mergetype}, prio {cmdset.priority}{options})") + f"{cmdset.path} [{cmdset.key}] ({cmdset.mergetype}, prio {cmdset.priority}{options})" + ) output["Stored Cmdset(s)"] = "\n " + "\n ".join(stored) # this gets all components of the currently merged set @@ -2618,13 +2620,15 @@ # the resulting merged cmdset options = _format_options(current_cmdset) merged = [ - f"<Current merged cmdset> ({current_cmdset.mergetype} prio {current_cmdset.priority}{options})"] + f"<Current merged cmdset> ({current_cmdset.mergetype} prio {current_cmdset.priority}{options})" + ] # the merge stack for cmdset in all_cmdsets: options = _format_options(cmdset) merged.append( - f"{cmdset.path} [{cmdset.key}] ({cmdset.mergetype} prio {cmdset.priority}{options})") + f"{cmdset.path} [{cmdset.key}] ({cmdset.mergetype} prio {cmdset.priority}{options})" + ) output["Merged Cmdset(s)"] = "\n " + "\n ".join(merged) # list the commands available to this object @@ -3885,6 +3889,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -3903,7 +3908,6 @@ -
      develop branch
      @@ -144,6 +143,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -162,7 +162,6 @@ -
      develop branch
      @@ -159,6 +158,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -177,7 +177,6 @@ -
      develop branch
      @@ -85,6 +84,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -103,7 +103,6 @@ -
      develop branch
      @@ -94,6 +93,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -112,7 +112,6 @@ -
      develop branch
      @@ -875,7 +874,7 @@ receiver = f"|n,{clr}".join([obj.name for obj in page.receivers]) if sending: template = to_template - sender = f"{sender} " if multi_send else "" + sender = f"{sender} " if multi_send else "" receiver = f" {receiver}" if multi_recv else f" {receiver}" else: template = from_template @@ -890,7 +889,6 @@ receiver=receiver, message=page.message, ) - ) lastpages = "\n ".join(listing) @@ -1424,6 +1422,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -1442,7 +1441,6 @@ -
      develop branch
      @@ -421,10 +420,13 @@ string = "You are not carrying anything." else: from evennia.utils.ansi import raw as raw_ansi + table = self.styled_table(border="header") for item in items: - table.add_row(f"|C{item.name}|n", - "{}|n".format(utils.crop(raw_ansi(item.db.desc), width=50) or "")) + table.add_row( + f"|C{item.name}|n", + "{}|n".format(utils.crop(raw_ansi(item.db.desc), width=50) or ""), + ) string = f"|wYou are carrying:\n{table}" self.caller.msg(string)
      @@ -795,6 +797,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -813,7 +816,6 @@ -
      develop branch
      @@ -54,14 +53,8 @@ from evennia.commands.command import Command from evennia.help.models import HelpEntry from evennia.utils import create, evmore -from evennia.utils.ansi import ANSIString from evennia.utils.eveditor import EvEditor -from evennia.utils.utils import ( - string_suggestions, - class_from_module, - inherits_from, - format_grid, -) +from evennia.utils.utils import string_suggestions, class_from_module COMMAND_DEFAULT_CLASS = class_from_module(settings.COMMAND_DEFAULT_CLASS) HELP_MORE = settings.HELP_MORE @@ -72,73 +65,8 @@ _DEFAULT_WIDTH = settings.CLIENT_DEFAULT_WIDTH _SEP = "|C" + "-" * _DEFAULT_WIDTH + "|n" -_LUNR = None -_LUNR_EXCEPTION = None - -class HelpCategory: - def __init__(self, key): - self.key = key - - @property - def search_index_entry(self): - return { - "key": str(self), - "aliases": "", - "category": self.key, - "tags": "", - "text": "", - } - - def __str__(self): - return f"Category: {self.key}" - - def __eq__(self, other): - return str(self).lower() == str(other).lower() - - def __hash__(self): - return id(self) - - -def help_search_with_index(query, candidate_entries, suggestion_maxnum=5): - """ - Lunr-powered fast index search and suggestion wrapper - """ - global _LUNR, _LUNR_EXCEPTION - if not _LUNR: - # we have to delay-load lunr because it messes with logging if it's imported - # before twisted's logging has been set up - from lunr import lunr as _LUNR - from lunr.exceptions import QueryParseError as _LUNR_EXCEPTION - - indx = [cnd.search_index_entry for cnd in candidate_entries] - mapping = {indx[ix]["key"]: cand for ix, cand in enumerate(candidate_entries)} - - search_index = _LUNR( - ref="key", - fields=[ - {"field_name": "key", "boost": 10}, - {"field_name": "aliases", "boost": 9}, - {"field_name": "category", "boost": 8}, - {"field_name": "tags", "boost": 5}, - {"field_name": "text", "boost": 1}, - ], - documents=indx, - ) - try: - matches = search_index.search(query)[:suggestion_maxnum] - except _LUNR_EXCEPTION: - # this is a user-input problem - matches = [] - - # matches (objs), suggestions (strs) - return ( - [mapping[match["ref"]] for match in matches], - [str(match["ref"]) for match in matches], # + f" (score {match['score']})") # good debug - ) - - -
      [docs]class CmdHelp(Command): +
      [docs]class CmdHelp(COMMAND_DEFAULT_CLASS): """ View help or a list of topics @@ -180,7 +108,7 @@ if type(self).help_more: usemore = True - if self.session and self.session.protocol_key in ("websocket", "ajax/comet",): + if self.session and self.session.protocol_key in ("websocket", "ajax/comet"): try: options = self.account.db._saved_webclient_options if options and options["helppopup"]: @@ -210,49 +138,44 @@ Returns the formatted string, ready to be sent. """ - start = f"{_SEP}\n" - title = f"|CHelp for |w{title}|n" if title else "" - aliases = ( - " |C(aliases: {}|C)|n".format("|C,|n ".join(f"|w{ali}|n" for ali in aliases)) - if aliases else "") - help_text = ( - f"\n{dedent(help_text.rstrip())}"if help_text else "") - suggested = ( - "\n\n|CSuggested:|n {}".format( - fill("|C,|n ".join(f"|w{sug}|n" for sug in suggested))) - if suggested else "") - end = f"\n{_SEP}" + string = _SEP + "\n" + if title: + string += "|CHelp for |w%s|n" % title + if aliases: + string += " |C(aliases: %s|C)|n" % ("|C,|n ".join("|w%s|n" % ali for ali in aliases)) + if help_text: + string += "\n%s" % dedent(help_text.rstrip()) + if suggested: + string += "\n\n|CSuggested:|n " + string += "%s" % fill("|C,|n ".join("|w%s|n" % sug for sug in suggested)) + string.strip() + string += "\n" + _SEP + return string
      - return "".join((start, title, aliases, help_text, suggested, end))
      - -
      [docs] def format_help_list(self, hdict_cmds, hdict_db): +
      [docs] @staticmethod + def format_help_list(hdict_cmds, hdict_db): """ Output a category-ordered list. The input are the pre-loaded help files for commands and database-helpfiles respectively. You can override this method to return a custom display of the list of commands and topics. """ - category_clr = "|w" - topic_clr = "|G" - width = self.client_width() - grid = [] - verbatim_elements = [] - for category in sorted(set(list(hdict_cmds.keys()) + list(hdict_db.keys()))): - - category_str = f"-- {category.title()} " - grid.append( - ANSIString( - category_clr + category_str + "-" * (width - len(category_str)) + topic_clr + string = "" + if hdict_cmds and any(hdict_cmds.values()): + string += "\n" + _SEP + "\n |CCommand help entries|n\n" + _SEP + for category in sorted(hdict_cmds.keys()): + string += "\n |w%s|n:\n" % (str(category).title()) + string += "|G" + fill("|C, |G".join(sorted(hdict_cmds[category]))) + "|n" + if hdict_db and any(hdict_db.values()): + string += "\n\n" + _SEP + "\n\r |COther help entries|n\n" + _SEP + for category in sorted(hdict_db.keys()): + string += "\n\r |w%s|n:\n" % (str(category).title()) + string += ( + "|G" + + fill(", ".join(sorted([str(topic) for topic in hdict_db[category]]))) + + "|n" ) - ) - verbatim_elements.append(len(grid) - 1) - - entries = sorted(set(hdict_cmds.get(category, []) + hdict_db.get(category, []))) - grid.extend(entries) - - gridrows = format_grid(grid, width, sep=" ", verbatim_elements=verbatim_elements) - gridrows = ANSIString("\n").join(gridrows) - return gridrows
      + return string
      [docs] def check_show_help(self, cmd, caller): """ @@ -293,7 +216,7 @@ False: the command shouldn't appear in the table. """ - return True
      + return cmd.access(caller, "view", default=True)
      [docs] def parse(self): """ @@ -326,8 +249,8 @@ ] all_categories = list( set( - [HelpCategory(cmd.help_category) for cmd in all_cmds] - + [HelpCategory(topic.help_category) for topic in all_topics] + [cmd.help_category.lower() for cmd in all_cmds] + + [topic.help_category.lower() for topic in all_topics] ) ) @@ -340,59 +263,92 @@ # system, but not be displayed in the table, or be displayed differently. for cmd in all_cmds: if self.should_list_cmd(cmd, caller): - key = (cmd.auto_help_display_key - if hasattr(cmd, "auto_help_display_key") else cmd.key) + key = ( + cmd.auto_help_display_key + if hasattr(cmd, "auto_help_display_key") + else cmd.key + ) hdict_cmd[cmd.help_category].append(key) [hdict_topic[topic.help_category].append(topic.key) for topic in all_topics] # report back self.msg_help(self.format_help_list(hdict_cmd, hdict_topic)) return - # Try to access a particular help entry or category - entries = [cmd for cmd in all_cmds if cmd] + list(HelpEntry.objects.all()) + all_categories + # Try to access a particular command - for match_query in [f"{query}~1", f"{query}*"]: - # We first do an exact word-match followed by a start-by query - matches, suggestions = help_search_with_index( - match_query, entries, suggestion_maxnum=self.suggestion_maxnum + # build vocabulary of suggestions and rate them by string similarity. + suggestions = None + if suggestion_maxnum > 0: + vocabulary = ( + [cmd.key for cmd in all_cmds if cmd] + + [topic.key for topic in all_topics] + + all_categories ) + [vocabulary.extend(cmd.aliases) for cmd in all_cmds] + suggestions = [ + sugg + for sugg in string_suggestions( + query, set(vocabulary), cutoff=suggestion_cutoff, maxnum=suggestion_maxnum + ) + if sugg != query + ] + if not suggestions: + suggestions = [ + sugg for sugg in vocabulary if sugg != query and sugg.startswith(query) + ] - if matches: - match = matches[0] - if isinstance(match, HelpCategory): - formatted = self.format_help_list( - { - match.key: [ - cmd.key - for cmd in all_cmds - if match.key.lower() == cmd.help_category - ] - }, - { - match.key: [ - topic.key - for topic in all_topics - if match.key.lower() == topic.help_category - ] - }, - ) - elif inherits_from(match, "evennia.commands.command.Command"): - formatted = self.format_help_entry( - match.key, - match.get_help(caller, cmdset), - aliases=match.aliases, - suggested=suggestions[1:], - ) - else: - formatted = self.format_help_entry( - match.key, - match.entrytext, - aliases=match.aliases.all(), - suggested=suggestions[1:], - ) + # try an exact command auto-help match + match = [cmd for cmd in all_cmds if cmd == query] - self.msg_help(formatted) - return + if not match: + # try an inexact match with prefixes stripped from query and cmds + _query = query[1:] if query[0] in CMD_IGNORE_PREFIXES else query + + match = [ + cmd + for cmd in all_cmds + for m in cmd._matchset + if m == _query or m[0] in CMD_IGNORE_PREFIXES and m[1:] == _query + ] + + if len(match) == 1: + cmd = match[0] + key = cmd.auto_help_display_key if hasattr(cmd, "auto_help_display_key") else cmd.key + formatted = self.format_help_entry( + key, cmd.get_help(caller, cmdset), aliases=cmd.aliases, suggested=suggestions, + ) + self.msg_help(formatted) + return + + # try an exact database help entry match + match = list(HelpEntry.objects.find_topicmatch(query, exact=True)) + if len(match) == 1: + formatted = self.format_help_entry( + match[0].key, + match[0].entrytext, + aliases=match[0].aliases.all(), + suggested=suggestions, + ) + self.msg_help(formatted) + return + + # try to see if a category name was entered + if query in all_categories: + self.msg_help( + self.format_help_list( + { + query: [ + cmd.auto_help_display_key + if hasattr(cmd, "auto_help_display_key") + else cmd.key + for cmd in all_cmds + if cmd.help_category == query + ] + }, + {query: [topic.key for topic in all_topics if topic.help_category == query]}, + ) + ) + return # no exact matches found. Just give suggestions. self.msg( @@ -473,10 +429,7 @@ self.msg("You have to define a topic!") return topicstrlist = topicstr.split(";") - topicstr, aliases = ( - topicstrlist[0], - topicstrlist[1:] if len(topicstr) > 1 else [], - ) + topicstr, aliases = (topicstrlist[0], topicstrlist[1:] if len(topicstr) > 1 else []) aliastxt = ("(aliases: %s)" % ", ".join(aliases)) if aliases else "" old_entry = None @@ -505,7 +458,7 @@ helpentry = old_entry else: helpentry = create.create_help_entry( - topicstr, self.rhs, category=category, locks=lockstring, aliases=aliases, + topicstr, self.rhs, category=category, locks=lockstring, aliases=aliases ) self.caller.db._editing_help = helpentry @@ -613,6 +566,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -631,7 +585,6 @@ -
      develop branch
      @@ -337,6 +336,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -355,7 +355,6 @@ -
      develop branch
      @@ -220,6 +219,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -238,7 +238,6 @@ -
      develop branch
      @@ -435,9 +434,7 @@ if noecho: prompt = "..." if console.push(line) else main_prompt else: - if line: - self.caller.msg(f">>> {line}") - prompt = line if console.push(line) else main_prompt + prompt = line if console.push(line) else f"{line}\n{main_prompt}" except SystemExit: break self.msg("|gClosing the Python console.|n") @@ -998,7 +995,7 @@ "|wIn-Game time", "|wReal time x %g" % gametime.TIMEFACTOR, align="l", - width=78, + width=77, border_top=0, ) epochtxt = "Epoch (%s)" % ("from settings" if settings.TIME_GAME_EPOCH else "server start") @@ -1249,6 +1246,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -1267,7 +1265,6 @@ -
      develop branch
      @@ -315,21 +314,8 @@
      [docs]class TestHelp(CommandTest): -
      [docs] def setUp(self): - super().setUp() - # we need to set up a logger here since lunr takes over the logger otherwise - import logging - - logging.basicConfig(level=logging.ERROR)
      - -
      [docs] def tearDown(self): - super().tearDown() - import logging - - logging.disable(level=logging.ERROR)
      -
      [docs] def test_help(self): - self.call(help.CmdHelp(), "", "Admin", cmdset=CharacterCmdSet())
      + self.call(help.CmdHelp(), "", "Command help entries", cmdset=CharacterCmdSet())
      [docs] def test_set_help(self): self.call( @@ -1026,8 +1012,11 @@ self.call(building.CmdSetHome(), "Obj = Room2", "Home location of Obj was set to Room")
      [docs] def test_list_cmdsets(self): - self.call(building.CmdListCmdSets(), "", - "<CmdSetHandler> stack:\n <CmdSet DefaultCharacter, Union, perm, prio 0>:") + self.call( + building.CmdListCmdSets(), + "", + "<CmdSetHandler> stack:\n <CmdSet DefaultCharacter, Union, perm, prio 0>:", + ) self.call(building.CmdListCmdSets(), "NotFound", "Could not find 'NotFound'")
      [docs] def test_typeclass(self): @@ -1665,6 +1654,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -1683,7 +1673,6 @@ -
      develop branch
      @@ -336,7 +335,6 @@ |wquit|n - abort the connection First create an account e.g. with |wcreate Anna c67jHL8p|n -(If you have spaces in your name, use double quotes: |wcreate "Anna the Barbarian" c67jHL8p|n Next you can connect to the game: |wconnect Anna c67jHL8p|n You can use the |wlook|n command if you want to see the connect screen again. @@ -564,6 +562,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -582,7 +581,6 @@ -
      develop branch
      @@ -190,6 +189,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -208,7 +208,6 @@ -
      develop branch
      @@ -66,7 +65,7 @@ """ from django.conf import settings -from evennia.commands import cmdset, command +from evennia.commands import cmdset from evennia.utils.logger import tail_log_file from evennia.utils.utils import class_from_module from django.utils.translation import gettext as _ @@ -77,9 +76,9 @@ _CHANNEL_HANDLER_CLASS = None _CHANNEL_COMMAND_CLASS = None _CHANNELDB = None +_COMMAND_DEFAULT_CLASS = class_from_module(settings.COMMAND_DEFAULT_CLASS) - -
      [docs]class ChannelCommand(command.Command): +
      [docs]class ChannelCommand(_COMMAND_DEFAULT_CLASS): """ {channelkey} channel @@ -390,6 +389,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -408,7 +408,6 @@ -
      develop branch
      @@ -889,6 +888,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -907,7 +907,6 @@ -
      develop branch
      @@ -482,6 +481,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -500,7 +500,6 @@ -
      develop branch
      @@ -808,6 +807,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -826,7 +826,6 @@ -
      develop branch
      @@ -964,6 +963,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -982,7 +982,6 @@ -
      develop branch
      @@ -1334,6 +1333,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -1352,7 +1352,6 @@ -
      develop branch
      @@ -261,6 +260,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -279,7 +279,6 @@ -
      develop branch
      @@ -811,6 +810,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -829,7 +829,6 @@ -
      develop branch
      @@ -376,6 +375,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -394,7 +394,6 @@ -
      develop branch
      @@ -329,6 +328,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -347,7 +347,6 @@ -
      develop branch
      @@ -430,6 +429,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -448,7 +448,6 @@ -
      develop branch
      @@ -848,6 +847,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -866,7 +866,6 @@ -
      develop branch
      @@ -421,6 +420,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -439,7 +439,6 @@ -
      develop branch
      @@ -1148,6 +1147,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -1166,7 +1166,6 @@ -
      develop branch
      @@ -307,6 +306,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -325,7 +325,6 @@ -
      develop branch
      @@ -375,6 +374,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -393,7 +393,6 @@ -
      develop branch
      @@ -216,11 +215,12 @@ self.call(commands.CmdSpeak(), "", "What do you want to say?", cmdstring="") self.call(commands.CmdSpeak(), "Hello!", "You say: Hello!", cmdstring="") self.call(commands.CmdSpeak(), "", "What do you want to whisper?", cmdstring="whisper") - self.call(commands.CmdSpeak(), "Hi.", "You whisper: (Hi.)", cmdstring="whisper") + self.call(commands.CmdSpeak(), "Hi.", "You whisper: Hi.", cmdstring="whisper") + self.call(commands.CmdSpeak(), "Hi.", "You whisper: Hi.", cmdstring="whisper") self.call(commands.CmdSpeak(), "HELLO!", "You shout: HELLO!", cmdstring="shout") - self.call(commands.CmdSpeak(), "Hello", "You say: Hello", cmdstring="say") - self.call(commands.CmdSpeak(), "Hello", "You shout: HELLO", cmdstring="shout")
      + self.call(commands.CmdSpeak(), "Hello to obj", "You say: Hello", cmdstring="say") + self.call(commands.CmdSpeak(), "Hello to obj", "You shout: Hello", cmdstring="shout")
      [docs] def test_emote(self): self.call( @@ -313,7 +313,7 @@ dirname = path.join(path.dirname(__file__), "states") states = [] for imp, module, ispackage in pkgutil.walk_packages( - path=[dirname], prefix="evennia.contrib.evscaperoom.states." + path=[dirname], prefix="evscaperoom.states." ): mod = mod_import(module) states.append(mod) @@ -372,6 +372,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -390,7 +391,6 @@ -
      develop branch
      @@ -262,6 +261,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -280,7 +280,6 @@ -
      develop branch
      @@ -660,6 +659,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -678,7 +678,6 @@ -
      develop branch
      @@ -783,6 +782,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -801,7 +801,6 @@ -
      develop branch
      @@ -224,6 +223,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -242,7 +242,6 @@ -
      develop branch
      @@ -187,6 +186,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -205,7 +205,6 @@ -
      develop branch
      @@ -292,6 +291,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -310,7 +310,6 @@ -
      develop branch
      @@ -650,6 +649,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -668,7 +668,6 @@ -
      develop branch
      @@ -158,6 +157,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -176,7 +176,6 @@ -
      develop branch
      @@ -735,6 +734,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -753,7 +753,6 @@ -
      develop branch
      @@ -610,6 +609,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -628,7 +628,6 @@ -
      develop branch
      @@ -986,6 +985,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -1004,7 +1004,6 @@ -
      develop branch
      @@ -330,6 +329,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -348,7 +348,6 @@ -
      develop branch
      @@ -426,6 +425,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -444,7 +444,6 @@ -
      develop branch
      @@ -569,6 +568,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -587,7 +587,6 @@ -
      develop branch
      @@ -321,6 +320,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -339,7 +339,6 @@ -
      develop branch
      @@ -337,6 +336,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -355,7 +355,6 @@ -
      develop branch
      @@ -881,6 +880,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -899,7 +899,6 @@ -
      develop branch
      @@ -421,6 +420,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -439,7 +439,6 @@ -
      develop branch
      @@ -102,46 +101,21 @@ Below is an example of "elvish", using "rounder" vowels and sounds: ```python - # vowel/consonant grammar possibilities - grammar = ("v vv vvc vcc vvcc cvvc vccv vvccv vcvccv vcvcvcc vvccvvcc " - "vcvvccvvc cvcvvcvvcc vcvcvvccvcvv") - - # all not in this group is considered a consonant + phonemes = "oi oh ee ae aa eh ah ao aw ay er ey ow ia ih iy " \ + "oy ua uh uw y p b t d f v t dh s z sh zh ch jh k " \ + "ng g m n l r w", vowels = "eaoiuy" - - # you need a representative of all of the minimal grammars here, so if a - # grammar v exists, there must be atleast one phoneme available with only - # one vowel in it - phonemes = ("oi oh ee ae aa eh ah ao aw ay er ey ow ia ih iy " - "oy ua uh uw y p b t d f v t dh s z sh zh ch jh k " - "ng g m n l r w") - - # how much the translation varies in length compared to the original. 0 is - # smallest, higher values give ever bigger randomness (including removing - # short words entirely) + grammar = "v vv vvc vcc vvcc cvvc vccv vvccv vcvccv vcvcvcc vvccvvcc " \ + "vcvvccvvc cvcvvcvvcc vcvcvvccvcvv", word_length_variance = 1 - - # if a proper noun (word starting with capitalized letter) should be - # translated or not. If not (default) it means e.g. names will remain - # unchanged across languages. - noun_translate = False - - # all proper nouns (words starting with a capital letter not at the beginning - # of a sentence) can have either a postfix or -prefix added at all times noun_postfix = "'la" - - # words in dict will always be translated this way. The 'auto_translations' - # is instead a list or filename to file with words to use to help build a - # bigger dictionary by creating random translations of each word in the - # list *once* and saving the result for subsequent use. manual_translations = {"the":"y'e", "we":"uyi", "she":"semi", "he":"emi", "you": "do", 'me':'mi','i':'me', 'be':"hy'e", 'and':'y'} rplanguage.add_language(key="elvish", phonemes=phonemes, grammar=grammar, word_length_variance=word_length_variance, - noun_translate=noun_translate, noun_postfix=noun_postfix, vowels=vowels, - manual_translations=manual_translations, + manual_translations=manual_translations auto_translations="my_word_file.txt") ``` @@ -184,8 +158,7 @@ _RE_FLAGS = re.MULTILINE + re.IGNORECASE + re.DOTALL + re.UNICODE _RE_GRAMMAR = re.compile(r"vv|cc|v|c", _RE_FLAGS) _RE_WORD = re.compile(r"\w+", _RE_FLAGS) -# superfluous chars, except ` ... ` -_RE_EXTRA_CHARS = re.compile(r"\s+(?!... )(?=\W)|[,.?;](?!.. )(?=[,?;]|\s+[,.?;])", _RE_FLAGS) +_RE_EXTRA_CHARS = re.compile(r"\s+(?=\W)|[,.?;](?=[,.?;]|\s+[,.?;])", _RE_FLAGS)
      [docs]class LanguageError(RuntimeError): @@ -266,13 +239,9 @@ 0 means a minimal variance, higher variance may mean words have wildly varying length; this strongly affects how the language "looks". - noun_translate (bool, optional): If a proper noun should be translated or - not. By default they will not, allowing for e.g. the names of characters - to be understandable. A 'noun' is identified as a capitalized word - *not at the start of a sentence*. This simple metric means that names - starting a sentence always will be translated (- but hey, maybe - the fantasy language just never uses a noun at the beginning of - sentences, who knows?) + noun_translate (bool, optional): If a proper noun, identified as a + capitalized word, should be translated or not. By default they + will not, allowing for e.g. the names of characters to be understandable. noun_prefix (str, optional): A prefix to go before every noun in this language (if any). noun_postfix (str, optuonal): A postfix to go after every noun @@ -317,7 +286,7 @@ # {"vv": ["ea", "oh", ...], ...} grammar2phonemes = defaultdict(list) for phoneme in phonemes.split(): - if re.search(r"\W", phoneme): + if re.search("\W", phoneme): raise LanguageError("The phoneme '%s' contains an invalid character" % phoneme) gram = "".join(["v" if char in vowels else "c" for char in phoneme]) grammar2phonemes[gram].append(phoneme) @@ -325,7 +294,7 @@ # allowed grammar are grouped by length gramdict = defaultdict(list) for gram in grammar.split(): - if re.search(r"\W|(!=[cv])", gram): + if re.search("\W|(!=[cv])", gram): raise LanguageError( "The grammar '%s' is invalid (only 'c' and 'v' are allowed)" % gram ) @@ -352,13 +321,7 @@ # use the corresponding length structure = choice(grammar[wlen]) for match in _RE_GRAMMAR.finditer(structure): - try: - new_word += choice(grammar2phonemes[match.group()]) - except IndexError: - raise IndexError( - "Could not find a matching phoneme for the grammar " - f"'{match.group()}'. Make there is at least one phoneme matching this " - "combination of consonants and vowels.") + new_word += choice(grammar2phonemes[match.group()]) translation[word.lower()] = new_word.lower() if manual_translations: @@ -397,11 +360,6 @@ word = match.group() lword = len(word) - # find out what preceeded this word - wpos = match.start() - preceeding = match.string[:wpos].strip() - start_sentence = preceeding.endswith((".", "!", "?")) or not preceeding - if len(word) <= self.level: # below level. Don't translate new_word = word @@ -411,6 +369,11 @@ if not new_word: # no dictionary translation. Generate one + # find out what preceeded this word + wpos = match.start() + preceeding = match.string[:wpos].strip() + start_sentence = preceeding.endswith((".", "!", "?")) or not preceeding + # make up translation on the fly. Length can # vary from un-translated word. wlen = max( @@ -445,30 +408,24 @@ break if word.istitle(): - if not start_sentence: - # this is a noun. We miss nouns at the start of - # sentences this way, but it's as good as we can get - # with this simple analysis. Maybe the fantasy language - # just don't consider nouns at the beginning of - # sentences, who knows? - if not self.language.get("noun_translate", False): - # don't translate what we identify as proper nouns (names) - new_word = word + title_word = "" + if not start_sentence and not self.language.get("noun_translate", False): + # don't translate what we identify as proper nouns (names) + title_word = word + elif new_word: + title_word = new_word - # add noun prefix and/or postfix - new_word = "{prefix}{word}{postfix}".format( - prefix=self.language["noun_prefix"], - word=new_word.capitalize(), - postfix=self.language["noun_postfix"], + if title_word: + # Regardless of if we translate or not, we will add the custom prefix/postfixes + new_word = "%s%s%s" % ( + self.language["noun_prefix"], + title_word.capitalize(), + self.language["noun_postfix"], ) if len(word) > 1 and word.isupper(): # keep LOUD words loud also when translated new_word = new_word.upper() - - if start_sentence: - new_word = new_word.capitalize() - return new_word
      [docs] def translate(self, text, level=0.0, language="default"): @@ -575,18 +532,19 @@ return list(_LANGUAGE_HANDLER.attributes.get("language_storage", {}))
      -# ----------------------------------------------------------------------------- +# ------------------------------------------------------------ # # Whisper obscuration # -# This obsucration table is designed by obscuring certain vowels first, -# following by consonants that tend to be more audible over long distances, -# like s. Finally it does non-auditory replacements, like exclamation marks and -# capitalized letters (assumed to be spoken louder) that may still give a user -# some idea of the sentence structure. Then the word lengths are also -# obfuscated and finally the whisper length itself. +# This obsucration table is designed by obscuring certain +# vowels first, following by consonants that tend to be +# more audible over long distances, like s. Finally it +# does non-auditory replacements, like exclamation marks +# and capitalized letters (assumed to be spoken louder) that may still +# give a user some idea of the sentence structure. Then the word +# lengths are also obfuscated and finally the whisper # length itself. # -# ------------------------------------------------------------------------------ +# ------------------------------------------------------------ _RE_WHISPER_OBSCURE = [ @@ -653,6 +611,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -671,7 +630,6 @@ -
      develop branch
      @@ -325,8 +324,7 @@ the markers and a tuple (langname, saytext), where langname can be None. Raises: - evennia.contrib.rpsystem.LanguageError: If an invalid language was - specified. + rplanguage.LanguageError: If an invalid language was specified. Notes: Note that no errors are raised if the wrong language identifier @@ -1692,6 +1690,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -1710,7 +1709,6 @@ -
      develop branch
      @@ -127,6 +126,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -145,7 +145,6 @@ -
      develop branch
      @@ -316,6 +315,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -334,7 +334,6 @@ -
      develop branch
      @@ -181,6 +180,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -199,7 +199,6 @@ -
      develop branch
      @@ -239,6 +238,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -257,7 +257,6 @@ -
      develop branch
      @@ -211,6 +210,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -229,7 +229,6 @@ -
      develop branch
      @@ -200,6 +199,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -218,7 +218,6 @@ -
      develop branch
      @@ -644,6 +643,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -662,7 +662,6 @@ -
      develop branch
      @@ -847,6 +846,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -865,7 +865,6 @@ -
      develop branch
      @@ -1205,6 +1204,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -1223,7 +1223,6 @@ -
      develop branch
      @@ -1524,6 +1523,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -1542,7 +1542,6 @@ -
      develop branch
      @@ -1446,6 +1445,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -1464,7 +1464,6 @@ -
      develop branch
      @@ -684,6 +683,7 @@ Args: to_init (object): Object to initialize range field for. + Keyword Args: anchor_obj (object): Object to copy range values from, or None for a random object. add_distance (int): Distance to put between to_init object and anchor object. @@ -1502,6 +1502,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -1520,7 +1521,6 @@ -
      develop branch
      @@ -133,6 +132,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -151,7 +151,6 @@ -
      develop branch
      @@ -402,6 +401,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -420,7 +420,6 @@ -
      develop branch
      @@ -234,6 +233,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -252,7 +252,6 @@ -
      develop branch
      @@ -352,6 +351,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -370,7 +370,6 @@ -
      develop branch
      @@ -138,6 +137,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -156,7 +156,6 @@ -
      develop branch
      @@ -474,9 +473,8 @@ and the main window. - Use |y<Return>|n (or click the arrow on the right) to send your input. -- Use |yCtrl + <up/down-arrow>|n to step back and forth in your command-history. -- Use |yCtrl + <Return>|n to add a new line to your input without sending. -(Cmd instead of Ctrl-key on Macs) +- Use |yShift + <up/down-arrow>|n to step back and forth in your command-history. +- Use |yShift + <Return>|n to add a new line to your input without sending. There is also some |wextra|n info to learn about customizing the webclient. @@ -849,6 +847,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -867,7 +866,6 @@ -
      develop branch
      @@ -111,7 +110,7 @@ stationary (idling) until attacked. aggressive: if set, will attack Characters in the same room using whatever Weapon it - carries (see tutorial_world.objects.TutorialWeapon). + carries (see tutorial_world.objects.Weapon). if unset, the mob will never engage in combat no matter what. hunting: if set, the mob will pursue enemies trying @@ -210,9 +209,9 @@ be "ticked". Args: - interval (int or None): The number of seconds + interval (int): The number of seconds between ticks - hook_key (str or None): The name of the method + hook_key (str): The name of the method (on this mob) to call every interval seconds. stop (bool, optional): Just stop the @@ -414,11 +413,16 @@ return # we use the same attack commands as defined in - # tutorial_world.objects.TutorialWeapon, assuming that + # tutorial_world.objects.Weapon, assuming that # the mob is given a Weapon to attack with. attack_cmd = random.choice(("thrust", "pierce", "stab", "slash", "chop")) self.execute_cmd("%s %s" % (attack_cmd, target)) + if target.db.health is None: + # This is not an attackable target + logger.log_err(f"{self.key} found {target} had an `health` attribute of `None`.") + return + # analyze the current state if target.db.health <= 0: # we reduced the target to <= 0 health. Move them to the @@ -503,6 +507,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -521,7 +526,6 @@ -
      develop branch
      @@ -56,8 +55,8 @@ Obelisk LightSource CrumblingWall -TutorialWeapon -TutorialWeaponRack +Weapon +WeaponRack """ @@ -833,7 +832,7 @@ # ------------------------------------------------------------- # -# TutorialWeapon - object type +# Weapon - object type # # A weapon is necessary in order to fight in the tutorial # world. A weapon (which here is assumed to be a bladed @@ -973,7 +972,7 @@ self.add(CmdAttack())
      -
      [docs]class TutorialWeapon(TutorialObject): +
      [docs]class Weapon(TutorialObject): """ This defines a bladed weapon. @@ -985,7 +984,7 @@ """ -
      [docs] def at_object_creation(self): +
      [docs] def at_object_creation(self): """Called at first creation of the object""" super().at_object_creation() self.db.hit = 0.4 # hit chance @@ -994,7 +993,7 @@ self.db.magic = False self.cmdset.add_default(CmdSetWeapon, permanent=True)
      -
      [docs] def reset(self): +
      [docs] def reset(self): """ When reset, the weapon is simply deleted, unless it has a place to return to. @@ -1024,7 +1023,7 @@ WEAPON_PROTOTYPES = { "weapon": { - "typeclass": "evennia.contrib.tutorial_world.objects.TutorialWeapon", + "typeclass": "evennia.contrib.tutorial_world.objects.Weapon", "key": "Weapon", "hit": 0.2, "parry": 0.2, @@ -1169,7 +1168,7 @@ self.add(CmdGetWeapon())
      -
      [docs]class TutorialWeaponRack(TutorialObject): +
      [docs]class WeaponRack(TutorialObject): """ This object represents a weapon store. When people use the "get weapon" command on this rack, it will produce one @@ -1186,7 +1185,7 @@ """ -
      [docs] def at_object_creation(self): +
      [docs] def at_object_creation(self): """ called at creation """ @@ -1200,12 +1199,13 @@ |wstab/thrust/pierce <target>|n - poke at the enemy. More damage but harder to hit. |wslash/chop/bash <target>|n - swipe at the enemy. Less damage but easier to hit. |wdefend/parry|n - protect yourself and make yourself harder to hit.) - """).strip() + """ + ).strip() self.db.no_more_weapons_msg = "you find nothing else of use." self.db.available_weapons = ["knife", "dagger", "sword", "club"]
      -
      [docs] def produce_weapon(self, caller): +
      [docs] def produce_weapon(self, caller): """ This will produce a new weapon from the rack, assuming the caller hasn't already gotten one. When @@ -1251,6 +1251,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -1269,7 +1270,6 @@ -
      develop branch
      @@ -120,6 +119,7 @@ helptext += "\n\n (Write 'give up' if you want to abandon your quest.)" caller.msg(helptext)
      + # for the @detail command we inherit from MuxCommand, since # we want to make use of MuxCommand's pre-parsing of '=' in the # argument. @@ -244,22 +244,26 @@ looking_at_obj.at_desc(looker=caller) return
      +
      [docs]class CmdTutorialGiveUp(default_cmds.MuxCommand): """ Give up the tutorial-world quest and return to Limbo, the start room of the server. """ + key = "give up" - aliases = ['abort'] + aliases = ["abort"]
      [docs] def func(self): outro_room = OutroRoom.objects.all() if outro_room: outro_room = outro_room[0] else: - self.caller.msg("That didn't work (seems like a bug). " - "Try to use the |wteleport|n command instead.") + self.caller.msg( + "That didn't work (seems like a bug). " + "Try to use the |wteleport|n command instead." + ) return self.caller.move_to(outro_room)
      @@ -427,6 +431,7 @@ # # ------------------------------------------------------------- +
      [docs]class CmdEvenniaIntro(Command): """ Start the Evennia intro wizard. @@ -435,10 +440,12 @@ intro """ + key = "intro"
      [docs] def func(self): from .intro_menu import init_menu + # quell also superusers if self.caller.account: self.caller.account.execute_cmd("quell") @@ -494,6 +501,7 @@ character.account.execute_cmd("quell") character.msg("(Auto-quelling while in tutorial-world)")
      + # ------------------------------------------------------------- # # Bridge - unique room @@ -1207,7 +1215,6 @@
      [docs] def at_object_leave(self, character, destination): if character.account: character.account.execute_cmd("unquell")
      -
      @@ -1235,6 +1242,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -1253,7 +1261,6 @@ -
      develop branch
      @@ -362,6 +361,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -380,7 +380,6 @@ -
      develop branch
      @@ -844,6 +843,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -862,7 +862,6 @@ -
      develop branch
      @@ -123,6 +122,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -141,7 +141,6 @@ -
      develop branch
      @@ -219,6 +218,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -237,7 +237,6 @@ -
      develop branch
      @@ -115,8 +114,7 @@ db_tags = models.ManyToManyField( Tag, blank=True, - help_text="tags on this object. Tags are simple string markers to " - "identify, group and alias objects.", + help_text="tags on this object. Tags are simple string markers to identify, group and alias objects.", ) # (deprecated, only here to allow MUX helpfile load (don't use otherwise)). # TODO: remove this when not needed anymore. @@ -166,19 +164,6 @@ """ return self.locks.check(accessing_obj, access_type=access_type, default=default)
      - @property - def search_index_entry(self): - """ - Property for easily retaining a search index entry for this object. - """ - return { - "key": self.db_key, - "aliases": " ".join(self.aliases.all()), - "category": self.db_help_category, - "text": self.db_entrytext, - "tags": " ".join(str(tag) for tag in self.tags.all()), - } - # # Web/Django methods # @@ -360,6 +345,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -378,7 +364,6 @@ -
      develop branch
      @@ -581,6 +580,8 @@ Only true if accessed_obj has the specified tag and optional category. """ + if hasattr(accessed_obj, "obj"): + accessed_obj = accessed_obj.obj tagkey = args[0] if args else None category = args[1] if len(args) > 1 else None return bool(accessed_obj.tags.get(tagkey, category=category))
      @@ -612,6 +613,9 @@ in your inventory will also pass the lock). """ + if hasattr(accessed_obj, "obj"): + accessed_obj = accessed_obj.obj + def _recursive_inside(obj, accessed_obj, lvl=1): if obj.location: if obj.location == accessed_obj: @@ -765,6 +769,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -783,7 +788,6 @@ -
      develop branch
      @@ -824,6 +823,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -842,7 +842,6 @@ -
      develop branch
      @@ -264,6 +263,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -282,7 +282,6 @@ -
      develop branch
      @@ -666,6 +665,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -684,7 +684,6 @@ -
      develop branch
      @@ -55,7 +54,6 @@ the database object. Like everything else, they can be accessed transparently through the decorating TypeClass. """ -from collections import defaultdict from django.conf import settings from django.db import models from django.core.exceptions import ObjectDoesNotExist @@ -85,49 +83,34 @@ """ self.obj = obj - self._pkcache = set() + self._pkcache = {} self._idcache = obj.__class__.__instance_cache__ - self._typecache = defaultdict(set) self.init()
      -
      [docs] def load(self): - """ - Retrieves all objects from database. Used for initializing. - - Returns: - Objects (list of ObjectDB) - """ - return list(self.obj.locations_set.all())
      -
      [docs] def init(self): """ Re-initialize the content cache """ - objects = self.load() - self._pkcache = {obj.pk for obj in objects} - for obj in objects: - for ctype in obj._content_types: - self._typecache[ctype].add(obj.pk)
      + self._pkcache.update( + dict((obj.pk, None) for obj in ObjectDB.objects.filter(db_location=self.obj) if obj.pk) + ) -
      [docs] def get(self, exclude=None, content_type=None): +
      [docs] def get(self, exclude=None): """ Return the contents of the cache. Args: exclude (Object or list of Object): object(s) to ignore - content_type (str or None): Filter list by a content-type. If None, don't filter. Returns: objects (list): the Objects inside this location """ - if content_type is not None: - pks = self._typecache[content_type] + if exclude: + pks = [pk for pk in self._pkcache if pk not in [excl.pk for excl in make_iter(exclude)]] else: pks = self._pkcache - if exclude: - pks = pks - {excl.pk for excl in make_iter(exclude)} try: return [self._idcache[pk] for pk in pks] except KeyError: @@ -137,9 +120,10 @@ try: return [self._idcache[pk] for pk in pks] except KeyError: - # this means an actual failure of caching. Return real database match. - logger.log_err("contents cache failed for %s." % self.obj.key) - return self.load()
      + # this means the central instance_cache was totally flushed. + # Re-fetching from database will rebuild the necessary parts of the cache + # for next fetch. + return list(ObjectDB.objects.filter(db_location=self.obj))
      [docs] def add(self, obj): """ @@ -149,9 +133,7 @@ obj (Object): object to add """ - self._pkcache.add(obj.pk) - for ctype in obj._content_types: - self._typecache[ctype].add(obj.pk)
      + self._pkcache[obj.pk] = None
      [docs] def remove(self, obj): """ @@ -161,10 +143,7 @@ obj (Object): object to remove """ - self._pkcache.remove(obj.pk) - for ctype in obj._content_types: - if obj.pk in self._typecache[ctype]: - self._typecache[ctype].remove(obj.pk)
      + self._pkcache.pop(obj.pk, None)
      [docs] def clear(self): """ @@ -172,7 +151,6 @@ """ self._pkcache = {} - self._typecache = defaultdict(set) self.init()
      @@ -452,6 +430,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -470,7 +449,6 @@ -
      develop branch
      @@ -54,7 +53,7 @@ from django.conf import settings from evennia.typeclasses.models import TypeclassBase -from evennia.typeclasses.attributes import NickHandler, ModelAttributeBackend +from evennia.typeclasses.attributes import NickHandler from evennia.objects.manager import ObjectManager from evennia.objects.models import ObjectDB from evennia.scripts.scripthandler import ScriptHandler @@ -66,6 +65,7 @@ from evennia.utils import logger from evennia.utils import ansi from evennia.utils.utils import ( + class_from_module, variable_from_module, lazy_property, make_iter, @@ -82,6 +82,7 @@ _SESSIONS = None _AT_SEARCH_RESULT = variable_from_module(*settings.SEARCH_AT_RESULT.rsplit(".", 1)) +_COMMAND_DEFAULT_CLASS = class_from_module(settings.COMMAND_DEFAULT_CLASS) # the sessid_max is based on the length of the db_sessid csv field (excluding commas) _SESSID_MAX = 16 if _MULTISESSION_MODE in (1, 3) else 1 @@ -246,9 +247,6 @@ """ - # Used for sorting / filtering in inventories / room contents. - _content_types = ("object",) - # lockstring of newly created objects, for easy overloading. # Will be formatted with the appropriate attributes. lockstring = "control:id({account_id}) or perm(Admin);delete:id({account_id}) or perm(Admin)" @@ -267,7 +265,7 @@
      [docs] @lazy_property def nicks(self): - return NickHandler(self, ModelAttributeBackend)
      + return NickHandler(self)
      [docs] @lazy_property def sessions(self): @@ -302,7 +300,7 @@ and not self.db_account.attributes.get("_quell") ) -
      [docs] def contents_get(self, exclude=None, content_type=None): +
      [docs] def contents_get(self, exclude=None): """ Returns the contents of this object, i.e. all objects that has this object set as its location. @@ -311,18 +309,17 @@ Args: exclude (Object): Object to exclude from returned contents list - content_type (str): A content_type to filter by. None for no - filtering. Returns: contents (list): List of contents of this Object. Notes: - Also available as the `contents` property, minus exclusion - and filtering. + Also available as the `contents` property. """ - return self.contents_cache.get(exclude=exclude, content_type=content_type)
      + con = self.contents_cache.get(exclude=exclude) + # print "contents_get:", self, con, id(self), calledby() # DEBUG + return con
      [docs] def contents_set(self, *args): "You cannot replace this property" @@ -418,7 +415,6 @@ nofound_string=None, multimatch_string=None, use_dbref=None, - stacked=0, ): """ Returns an Object matching a search string/condition @@ -447,9 +443,7 @@ to search. Note that this is used to query the *contents* of a location and will not match for the location itself - if you want that, don't set this or use `candidates` to specify - exactly which objects should be searched. If this nor candidates are - given, candidates will include caller's inventory, current location and - all objects in the current location. + exactly which objects should be searched. attribute_name (str): Define which property to search. If set, no key+alias search will be performed. This can be used to search database fields (db_ will be automatically @@ -477,19 +471,10 @@ will be treated like a normal string. If `None` (default), the ability to query by #dbref is turned on if `self` has the permission 'Builder' and is turned off otherwise. - stacked (int, optional): If > 0, multimatches will be analyzed to determine if they - only contains identical objects; these are then assumed 'stacked' and no multi-match - error will be generated, instead `stacked` number of matches will be returned. If - `stacked` is larger than number of matches, returns that number of matches. If - the found stack is a mix of objects, return None and handle the multi-match - error depending on the value of `quiet`. Returns: - Object: If finding a match an `quiet=False` - None: If not finding a unique match and `quiet=False`. - list: With 0, 1 or more matching objects if `quiet=True` - list: With 2 or more matching objects if `stacked` is a positive integer and - the matched stack has only object-copies. + match (Object, None or list): will return an Object/None if `quiet=False`, + otherwise it will return a list of 0, 1 or more matches. Notes: To find Accounts, use eg. `evennia.account_search`. If @@ -557,29 +542,8 @@ use_dbref=use_dbref, ) - nresults = len(results) - if stacked > 0 and nresults > 1: - # handle stacks, disable multimatch errors - nstack = nresults - if not exact: - # we re-run exact match agains one of the matches to - # make sure we were not catching partial matches not belonging - # to the stack - nstack = len(ObjectDB.objects.get_objs_with_key_or_alias( - results[0].key, - exact=True, - candidates=list(results), - typeclasses=[typeclass] if typeclass else None - )) - if nstack == nresults: - # a valid stack, return multiple results - return list(results)[:stacked] - if quiet: - # don't auto-handle error messaging return list(results) - - # handle error messages return _AT_SEARCH_RESULT( results, self, @@ -1736,26 +1700,20 @@ **kwargs (dict): Arbitrary, optional arguments for users overriding the call (unused by default). """ - - def filter_visible(obj_list): - # Helper method to determine if objects are visible to the looker. - return [obj for obj in obj_list if obj != looker and obj.access(looker, "view")] - if not looker: return "" - # get and identify all objects - exits_list = filter_visible(self.contents_get(content_type="exit")) - users_list = filter_visible(self.contents_get(content_type="character")) - things_list = filter_visible(self.contents_get(content_type="object")) - - things = defaultdict(list) - - for thing in things_list: - things[thing.key].append(thing) - users = [f"|c{user.key}|n" for user in users_list] - exits = [ex.key for ex in exits_list] - + visible = (con for con in self.contents if con != looker and con.access(looker, "view")) + exits, users, things = [], [], defaultdict(list) + for con in visible: + key = con.get_display_name(looker) + if con.destination: + exits.append(key) + elif con.has_account: + users.append("|c%s|n" % key) + else: + # things can be pluralized + things[key].append(con) # get description, build string string = "|c%s|n\n" % self.get_display_name(looker) desc = self.db.desc @@ -2026,7 +1984,9 @@ # whisper mode msg_type = "whisper" msg_self = ( - '{self} whisper to {all_receivers}, "|n{speech}|n"' if msg_self is True else msg_self + '{self} whisper to {all_receivers}, "|n{speech}|n"' + if msg_self is True + else msg_self ) msg_receivers = msg_receivers or '{object} whispers: "|n{speech}|n"' msg_location = None @@ -2113,9 +2073,6 @@ """ - # Tuple of types used for indexing inventory contents. Characters generally wouldn't be in - # anyone's inventory, but this also governs displays in room contents. - _content_types = ("character",) # lockstring of newly created rooms, for easy overloading. # Will be formatted with the appropriate attributes. lockstring = ( @@ -2155,13 +2112,6 @@ # If no typeclass supplied, use this class kwargs["typeclass"] = kwargs.pop("typeclass", cls) - # Normalize to latin characters and validate, if necessary, the supplied key - key = cls.normalize_name(key) - - if not cls.validate_name(key): - errors.append("Invalid character name.") - return obj, errors - # Set the supplied key as the name of the intended object kwargs["key"] = key @@ -2211,38 +2161,6 @@ return obj, errors
      -
      [docs] @classmethod - def normalize_name(cls, name): - """ - Normalize the character name prior to creating. Note that this should be refactored - to support i18n for non-latin scripts, but as we (currently) have no bug reports requesting better - support of non-latin character sets, requiring character names to be latinified is an acceptable option. - - Args: - name (str) : The name of the character - - Returns: - latin_name (str) : A valid name. - """ - - from evennia.utils.utils import latinify - - latin_name = latinify(name, default="X") - return latin_name
      - -
      [docs] @classmethod - def validate_name(cls, name): - """ Validate the character name prior to creating. Overload this function to add custom validators - - Args: - name (str) : The name of the character - Returns: - valid (bool) : True if character creation should continue; False if it should fail - - """ - - return True # Default validator does not perform any operations
      -
      [docs] def basetype_setup(self): """ Setup character-specific security. @@ -2371,10 +2289,6 @@ location is always `None`. """ - # A tuple of strings used for indexing this object inside an inventory. - # Generally, a room isn't expected to HAVE a location, but maybe in some games? - _content_types = ("room",) - # lockstring of newly created rooms, for easy overloading. # Will be formatted with the {id} of the creating object. lockstring = ( @@ -2473,8 +2387,7 @@ # Default Exit command, used by the base exit object # - -
      [docs]class ExitCommand(command.Command): +
      [docs]class ExitCommand(_COMMAND_DEFAULT_CLASS): """ This is a command that simply cause the caller to traverse the object it is attached to. @@ -2534,7 +2447,6 @@ """ - _content_types = ("exit",) exit_command = ExitCommand priority = 101 @@ -2777,6 +2689,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -2795,7 +2708,6 @@ -
      develop branch
      @@ -2826,6 +2825,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -2844,7 +2844,6 @@ -
      develop branch
      @@ -413,6 +412,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -431,7 +431,6 @@ -
      develop branch
      @@ -1033,6 +1032,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -1051,7 +1051,6 @@ -
      develop branch
      @@ -957,15 +956,8 @@ val = prot.pop("location", None) create_kwargs["db_location"] = init_spawn_value(val, value_to_obj) - val = prot.pop("home", None) - if val: - create_kwargs["db_home"] = init_spawn_value(val, value_to_obj) - else: - try: - create_kwargs["db_home"] = init_spawn_value(settings.DEFAULT_HOME, value_to_obj) - except ObjectDB.DoesNotExist: - # settings.DEFAULT_HOME not existing is common for unittests - pass + val = prot.pop("home", settings.DEFAULT_HOME) + create_kwargs["db_home"] = init_spawn_value(val, value_to_obj) val = prot.pop("destination", None) create_kwargs["db_destination"] = init_spawn_value(val, value_to_obj) @@ -983,8 +975,8 @@ val = prot.pop("tags", []) tags = [] - for (tag, category, *data) in val: - tags.append((init_spawn_value(tag, str), category, data[0] if data else None)) + for (tag, category, data) in val: + tags.append((init_spawn_value(tag, str), category, data)) prototype_key = prototype.get("prototype_key", None) if prototype_key: @@ -1004,9 +996,8 @@ # the rest are attribute tuples (attrname, value, category, locks) val = make_iter(prot.pop("attrs", [])) attributes = [] - for (attrname, value, *rest) in val: - attributes.append((attrname, init_spawn_value(value), - rest[0] if rest else None, rest[1] if len(rest) > 1 else None)) + for (attrname, value, category, locks) in val: + attributes.append((attrname, init_spawn_value(value), category, locks)) simple_attributes = [] for key, value in ( @@ -1067,6 +1058,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -1085,7 +1077,6 @@ -
      develop branch
      @@ -158,6 +157,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -176,7 +176,6 @@ -
      develop branch
      @@ -353,6 +352,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -371,7 +371,6 @@ -
      develop branch
      @@ -248,6 +247,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -266,7 +266,6 @@ -
      develop branch
      @@ -272,6 +271,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -290,7 +290,6 @@ -
      develop branch
      @@ -239,6 +238,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -257,7 +257,6 @@ -
      develop branch
      @@ -783,6 +782,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -801,7 +801,6 @@ -
      develop branch
      @@ -270,6 +269,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -288,7 +288,6 @@ -
      develop branch
      @@ -710,6 +709,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -728,7 +728,6 @@ -
      develop branch
      @@ -92,6 +91,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -110,7 +110,6 @@ -
      develop branch
      @@ -47,11 +46,9 @@ """ import os -from django.conf import settings from evennia.server.portal import amp from twisted.internet import protocol from evennia.utils import logger -from evennia.utils.utils import class_from_module
      [docs]class AMPClientFactory(protocol.ReconnectingClientFactory): @@ -77,7 +74,7 @@ """ self.server = server - self.protocol = class_from_module(settings.AMP_CLIENT_PROTOCOL_CLASS) + self.protocol = AMPServerClientProtocol self.maxDelay = 10 # not really used unless connecting to multiple servers, but # avoids having to check for its existence on the protocol @@ -319,6 +316,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -337,7 +335,6 @@ -
      develop branch
      @@ -588,6 +587,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -606,7 +606,6 @@ -
      develop branch
      @@ -191,6 +190,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -209,7 +209,6 @@ -
      develop branch
      @@ -2301,7 +2300,7 @@ if option in ("makemessages", "compilemessages"): # some commands don't require the presence of a game directory to work need_gamedir = False - if option in ("shell", "check", "makemigrations", "createsuperuser", "shell_plus"): + if option in ("shell", "check", "makemigrations", "createsuperuser"): # some django commands requires the database to exist, # or evennia._init to have run before they work right. check_db = True @@ -2361,6 +2360,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -2379,7 +2379,6 @@ -
      develop branch
      @@ -246,6 +245,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -264,7 +264,6 @@ -
      develop branch
      @@ -125,6 +124,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -143,7 +143,6 @@ -
      develop branch
      @@ -306,6 +305,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -324,7 +324,6 @@ -
      develop branch
      @@ -529,6 +528,7 @@ Keyword Args: <option name>: an option to save + """ account = session.account @@ -684,6 +684,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -702,7 +703,6 @@ -
      develop branch
      @@ -120,6 +119,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -138,7 +138,6 @@ -
      develop branch
      @@ -202,6 +201,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -220,7 +220,6 @@ -
      develop branch
      @@ -57,7 +56,7 @@ import pickle from twisted.internet.defer import DeferredList, Deferred -from evennia.utils.utils import variable_from_module +from evennia.utils.utils import to_str, variable_from_module # delayed import _LOGGER = None @@ -607,6 +606,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -625,7 +625,6 @@ -
      develop branch
      @@ -53,7 +52,6 @@ from django.conf import settings from subprocess import Popen, STDOUT from evennia.utils import logger -from evennia.utils.utils import class_from_module def _is_windows(): @@ -99,7 +97,7 @@ """ self.portal = portal - self.protocol = class_from_module(settings.AMP_SERVER_PROTOCOL_CLASS) + self.protocol = AMPServerProtocol self.broadcasts = [] self.server_connection = None self.launcher_connection = None @@ -117,7 +115,7 @@ protocol (Protocol): The created protocol. """ - self.portal.amp_protocol = self.protocol() + self.portal.amp_protocol = AMPServerProtocol() self.portal.amp_protocol.factory = self return self.portal.amp_protocol
      @@ -549,6 +547,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -567,7 +566,6 @@ -
      develop branch
      @@ -426,6 +425,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -444,7 +444,6 @@ -
      develop branch
      @@ -545,6 +544,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -563,7 +563,6 @@ -
      develop branch
      @@ -157,6 +156,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -175,7 +175,6 @@ -
      develop branch
      @@ -202,6 +201,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -220,7 +220,6 @@ -
      develop branch
      @@ -151,6 +150,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -169,7 +169,6 @@ -
      develop branch
      @@ -151,6 +150,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -169,7 +169,6 @@ -
      develop branch
      @@ -69,7 +68,7 @@ evennia._init() -from evennia.utils.utils import get_evennia_version, mod_import, make_iter, class_from_module +from evennia.utils.utils import get_evennia_version, mod_import, make_iter from evennia.server.portal.portalsessionhandler import PORTAL_SESSIONS from evennia.utils import logger from evennia.server.webserver import EvenniaReverseProxyResource @@ -328,8 +327,6 @@ from evennia.server.portal import telnet - _telnet_protocol = class_from_module(settings.TELNET_PROTOCOL_CLASS) - for interface in TELNET_INTERFACES: ifacestr = "" if interface not in ("0.0.0.0", "::") or len(TELNET_INTERFACES) > 1: @@ -338,7 +335,7 @@ pstring = "%s:%s" % (ifacestr, port) factory = telnet.TelnetServerFactory() factory.noisy = False - factory.protocol = _telnet_protocol + factory.protocol = telnet.TelnetProtocol factory.sessionhandler = PORTAL_SESSIONS telnet_service = internet.TCPServer(port, factory, interface=interface) telnet_service.setName("EvenniaTelnet%s" % pstring) @@ -353,8 +350,6 @@ from evennia.server.portal import telnet_ssl - _ssl_protocol = class_from_module(settings.SSL_PROTOCOL_CLASS) - for interface in SSL_INTERFACES: ifacestr = "" if interface not in ("0.0.0.0", "::") or len(SSL_INTERFACES) > 1: @@ -364,7 +359,7 @@ factory = protocol.ServerFactory() factory.noisy = False factory.sessionhandler = PORTAL_SESSIONS - factory.protocol = _ssl_protocol + factory.protocol = telnet_ssl.SSLProtocol ssl_context = telnet_ssl.getSSLContext() if ssl_context: @@ -388,8 +383,6 @@ from evennia.server.portal import ssh - _ssh_protocol = class_from_module(settings.SSH_PROTOCOL_CLASS) - for interface in SSH_INTERFACES: ifacestr = "" if interface not in ("0.0.0.0", "::") or len(SSH_INTERFACES) > 1: @@ -397,7 +390,11 @@ for port in SSH_PORTS: pstring = "%s:%s" % (ifacestr, port) factory = ssh.makeFactory( - {"protocolFactory": _ssh_protocol, "protocolArgs": (), "sessions": PORTAL_SESSIONS,} + { + "protocolFactory": ssh.SshProtocol, + "protocolArgs": (), + "sessions": PORTAL_SESSIONS, + } ) factory.noisy = False ssh_service = internet.TCPServer(port, factory, interface=interface) @@ -413,7 +410,6 @@ # Start a reverse proxy to relay data to the Server-side webserver websocket_started = False - _websocket_protocol = class_from_module(settings.WEBSOCKET_PROTOCOL_CLASS) for interface in WEBSERVER_INTERFACES: ifacestr = "" if interface not in ("0.0.0.0", "::") or len(WEBSERVER_INTERFACES) > 1: @@ -448,7 +444,7 @@ factory = Websocket() factory.noisy = False - factory.protocol = _websocket_protocol + factory.protocol = webclient.WebSocketClient factory.sessionhandler = PORTAL_SESSIONS websocket_service = internet.TCPServer(port, factory, interface=w_interface) websocket_service.setName("EvenniaWebSocket%s:%s" % (w_ifacestr, port)) @@ -504,6 +500,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -522,7 +519,6 @@ -
      develop branch
      @@ -49,10 +48,8 @@ from collections import deque, namedtuple from twisted.internet import reactor from django.conf import settings -from evennia.server.sessionhandler import SessionHandler -from evennia.server.portal.amp import PCONN, PDISCONN, PCONNSYNC, PDISCONNALL +from evennia.server.sessionhandler import SessionHandler, PCONN, PDISCONN, PCONNSYNC, PDISCONNALL from evennia.utils.logger import log_trace -from evennia.utils.utils import class_from_module # module import _MOD_IMPORT = None @@ -112,19 +109,6 @@ """ self.connection_time = time.time()
      -
      [docs] def generate_sessid(self): - """ - Simply generates a sessid that's guaranteed to be unique for this Portal run. - - Returns: - sessid - - """ - self.latest_sessid += 1 - if self.latest_sessid in self: - return self.generate_sessid() - return self.latest_sessid
      -
      [docs] def connect(self, session): """ Called by protocol at first connect. This adds a not-yet @@ -148,7 +132,8 @@ if not session.sessid: # if the session already has a sessid (e.g. being inherited in the # case of a webclient auto-reconnect), keep it - session.sessid = self.generate_sessid() + self.latest_sessid += 1 + session.sessid = self.latest_sessid session.server_connected = False _CONNECTION_QUEUE.appendleft(session) if len(_CONNECTION_QUEUE) > 1: @@ -519,9 +504,7 @@ log_trace()
      -_PORTAL_SESSION_HANDLER_CLASS = class_from_module(settings.PORTAL_SESSION_HANDLER_CLASS) - -PORTAL_SESSIONS = _PORTAL_SESSION_HANDLER_CLASS() +PORTAL_SESSIONS = PortalSessionHandler()
      @@ -549,6 +532,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -567,7 +551,6 @@ -
      develop branch
      @@ -230,6 +229,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -248,7 +248,6 @@ -
      develop branch
      @@ -85,9 +84,10 @@ from twisted.python import components from django.conf import settings +from evennia.server import session from evennia.accounts.models import AccountDB from evennia.utils import ansi -from evennia.utils.utils import to_str, class_from_module +from evennia.utils.utils import to_str _RE_N = re.compile(r"\|n$") _RE_SCREENREADER_REGEX = re.compile( @@ -115,8 +115,6 @@ _PRIVATE_KEY_FILE, _PUBLIC_KEY_FILE ) -_BASE_SESSION_CLASS = class_from_module(settings.BASE_SESSION_CLASS) - # not used atm
      [docs]class SSHServerFactory(protocol.ServerFactory): @@ -127,7 +125,7 @@ return "SSH"
      -
      [docs]class SshProtocol(Manhole, _BASE_SESSION_CLASS): +
      [docs]class SshProtocol(Manhole, session.Session): """ Each account connecting over ssh gets this protocol assigned to them. All communication between game and account goes through @@ -320,18 +318,18 @@ text (str): The first argument is always the text string to send. No other arguments are considered. Keyword Args: - options (dict): Send-option flags (booleans) + options (dict): Send-option flags: - - mxp: enforce mxp link support. - - ansi: enforce no ansi colors. - - xterm256: enforce xterm256 colors, regardless of ttype setting. - - nocolor: strip all colors. - - raw: pass string through without any ansi processing - (i.e. include evennia ansi markers but do not + - mxp: Enforce MXP link support. + - ansi: Enforce no ANSI colors. + - xterm256: Enforce xterm256 colors, regardless of TTYPE setting. + - nocolor: Strip all colors. + - raw: Pass string through without any ansi processing + (i.e. include Evennia ansi markers but do not convert them into ansi tokens) - - echo: turn on/off line echo on the client. turn + - echo: Turn on/off line echo on the client. Turn off line echo for client, for example for password. - note that it must be actively turned back on again! + Note that it must be actively turned back on again! """ # print "telnet.send_text", args,kwargs # DEBUG @@ -594,6 +592,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -612,7 +611,6 @@ -
      develop branch
      @@ -60,7 +59,7 @@ raise ImportError(errstr.format(err=error)) from django.conf import settings -from evennia.utils.utils import class_from_module +from evennia.server.portal.telnet import TelnetProtocol _GAME_DIR = settings.GAME_DIR @@ -85,10 +84,8 @@ {exestring} """ -_TELNET_PROTOCOL_CLASS = class_from_module(settings.TELNET_PROTOCOL_CLASS) - -
      [docs]class SSLProtocol(_TELNET_PROTOCOL_CLASS): +
      [docs]class SSLProtocol(TelnetProtocol): """ Communication is the same as telnet, except data transfer is done with encryption. @@ -184,6 +181,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -202,7 +200,6 @@ -
      develop branch
      @@ -133,6 +132,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -151,7 +151,6 @@ -
      develop branch
      @@ -67,11 +66,12 @@ LINEMODE_TRAPSIG, ) from django.conf import settings +from evennia.server.session import Session from evennia.server.portal import ttype, mssp, telnet_oob, naws, suppress_ga from evennia.server.portal.mccp import Mccp, mccp_compress, MCCP from evennia.server.portal.mxp import Mxp, mxp_parse from evennia.utils import ansi -from evennia.utils.utils import to_bytes, class_from_module +from evennia.utils.utils import to_bytes _RE_N = re.compile(r"\|n$") _RE_LEND = re.compile(br"\n$|\r$|\r\n$|\r\x00$|", re.MULTILINE) @@ -97,9 +97,6 @@ ) -_BASE_SESSION_CLASS = class_from_module(settings.BASE_SESSION_CLASS) - -
      [docs]class TelnetServerFactory(protocol.ServerFactory): "This is only to name this better in logs" noisy = False @@ -108,7 +105,7 @@ return "Telnet"
      -
      [docs]class TelnetProtocol(Telnet, StatefulTelnetProtocol, _BASE_SESSION_CLASS): +
      [docs]class TelnetProtocol(Telnet, StatefulTelnetProtocol, Session): """ Each player connecting over telnet (ie using most traditional mud clients) gets a telnet protocol instance assigned to them. All @@ -431,19 +428,19 @@ text (str): The first argument is always the text string to send. No other arguments are considered. Keyword Args: - options (dict): Send-option flags + options (dict): Send-option flags: - - mxp: Enforce MXP link support. - - ansi: Enforce no ANSI colors. - - xterm256: Enforce xterm256 colors, regardless of TTYPE. - - noxterm256: Enforce no xterm256 color support, regardless of TTYPE. - - nocolor: Strip all Color, regardless of ansi/xterm256 setting. - - raw: Pass string through without any ansi processing - (i.e. include Evennia ansi markers but do not - convert them into ansi tokens) - - echo: Turn on/off line echo on the client. Turn - off line echo for client, for example for password. - Note that it must be actively turned back on again! + - mxp: Enforce MXP link support. + - ansi: Enforce no ANSI colors. + - xterm256: Enforce xterm256 colors, regardless of TTYPE. + - noxterm256: Enforce no xterm256 color support, regardless of TTYPE. + - nocolor: Strip all Color, regardless of ansi/xterm256 setting. + - raw: Pass string through without any ansi processing + (i.e. include Evennia ansi markers but do not + convert them into ansi tokens) + - echo: Turn on/off line echo on the client. Turn + off line echo for client, for example for password. + Note that it must be actively turned back on again! """ text = args[0] if args else "" @@ -558,6 +555,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -576,7 +574,6 @@ -
      develop branch
      @@ -52,16 +51,21 @@ instruct the client to play sounds or to update a graphical health bar. -Note that in Evennia's Web client, all send commands are "OOB -commands", (including the "text" one), there is no equivalence to -MSDP/GMCP for the webclient since it doesn't need it. +> Note that in Evennia's Web client, all send commands are "OOB commands", +(including the "text" one), there is no equivalence to MSDP/GMCP for the +webclient since it doesn't need it. This implements the following telnet OOB communication protocols: -- MSDP (Mud Server Data Protocol), as per http://tintin.sourceforge.net/msdp/ +- MSDP (Mud Server Data Protocol), as per + http://tintin.sourceforge.net/msdp/ - GMCP (Generic Mud Communication Protocol) as per http://www.ironrealms.com/rapture/manual/files/FeatGMCP-txt.html#Generic_MUD_Communication_Protocol%28GMCP%29 +Following the lead of KaVir's protocol snippet, we first check if client +supports MSDP and if not, we fallback to GMCP with a MSDP header where +applicable. + ---- """ @@ -198,16 +202,16 @@ MSDP structures on these forms: :: - [cmdname, [], {}] -> VAR cmdname VAL "" - [cmdname, [arg], {}] -> VAR cmdname VAL arg - [cmdname, [args],{}] -> VAR cmdname VAL ARRAYOPEN VAL arg VAL arg ... ARRAYCLOSE - [cmdname, [], {kwargs}] -> VAR cmdname VAL TABLEOPEN VAR key VAL val ... TABLECLOSE + [cmdname, [], {}] -> VAR cmdname VAL "" + [cmdname, [arg], {}] -> VAR cmdname VAL arg + [cmdname, [args],{}] -> VAR cmdname VAL ARRAYOPEN VAL arg VAL arg ... ARRAYCLOSE + [cmdname, [], {kwargs}] -> VAR cmdname VAL TABLEOPEN VAR key VAL val ... TABLECLOSE [cmdname, [args], {kwargs}] -> VAR cmdname VAL ARRAYOPEN VAL arg VAL arg ... ARRAYCLOSE VAR cmdname VAL TABLEOPEN VAR key VAL val ... TABLECLOSE - Further nesting is not supported, so if an array argument - consists of an array (for example), that array will be - json-converted to a string. + Further nesting is not supported, so if an array argument consists + of an array (for example), that array will be json-converted to a + string. """ msdp_cmdname = "{msdp_var}{msdp_cmdname}{msdp_val}".format( @@ -277,10 +281,11 @@ [cmd.name, [arg], {}] -> Cmd.Name arg [cmd.name, [args],{}] -> Cmd.Name [args] [cmd.name, [], {kwargs}] -> Cmd.Name {kwargs} - [cmdname, [args, {kwargs}] -> Core.Cmdname [[args],{kwargs}] + [cmdname, [args, {kwargs}] -> Core.Cmdname [[args],{kwargs}] Notes: - There are also a few default mappings between evennia outputcmds and GMCP: + There are also a few default mappings between evennia outputcmds and + GMCP: :: client_options -> Core.Supports.Get @@ -507,6 +512,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -525,7 +531,6 @@ -
      develop branch
      @@ -222,6 +221,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -240,7 +240,6 @@ -
      develop branch
      @@ -387,6 +386,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -405,7 +405,6 @@ -
      develop branch
      @@ -253,6 +252,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -271,7 +271,6 @@ -
      develop branch
      @@ -59,8 +58,10 @@ import re import json import html +from twisted.internet.protocol import Protocol from django.conf import settings -from evennia.utils.utils import mod_import, class_from_module +from evennia.server.session import Session +from evennia.utils.utils import to_str, mod_import from evennia.utils.ansi import parse_ansi from evennia.utils.text2html import parse_html from autobahn.twisted.websocket import WebSocketServerProtocol @@ -80,10 +81,10 @@ # called when the browser is navigating away from the page GOING_AWAY = WebSocketServerProtocol.CLOSE_STATUS_CODE_GOING_AWAY -_BASE_SESSION_CLASS = class_from_module(settings.BASE_SESSION_CLASS) +STATE_CLOSING = WebSocketServerProtocol.STATE_CLOSING -
      [docs]class WebSocketClient(WebSocketServerProtocol, _BASE_SESSION_CLASS): +
      [docs]class WebSocketClient(WebSocketServerProtocol, Session): """ Implements the server-side of the Websocket connection. """ @@ -301,6 +302,8 @@ return else: return + # just to be sure + text = to_str(text) flags = self.protocol_flags @@ -374,6 +377,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -392,7 +396,6 @@ -
      develop branch
      @@ -534,6 +533,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -552,7 +552,6 @@ -
      develop branch
      @@ -501,6 +500,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -519,7 +519,6 @@ -
      develop branch
      @@ -48,15 +47,15 @@ The settings are global variables: -- TIMESTEP - time in seconds between each 'tick' -- CHANCE_OF_ACTION - chance 0-1 of action happening -- CHANCE_OF_LOGIN - chance 0-1 of login happening -- TELNET_PORT - port to use, defaults to settings.TELNET_PORT -- ACTIONS - see below +TIMESTEP - time in seconds between each 'tick' +CHANCE_OF_ACTION - chance 0-1 of action happening +CHANCE_OF_LOGIN - chance 0-1 of login happening +TELNET_PORT - port to use, defaults to settings.TELNET_PORT +ACTIONS - see below ACTIONS is a tuple -```python +``` (login_func, logout_func, (0.3, func1), (0.1, func2) ... ) ``` @@ -79,14 +78,14 @@ The client object has the following relevant properties and methods: - key - an optional client key. This is only used for dummyrunner output. - Default is "Dummy-<cid>" + Default is "Dummy-<cid>" - cid - client id - gid - globally unique id, hashed with time stamp - istep - the current step - exits - an empty list. Can be used to store exit names - objs - an empty list. Can be used to store object names - counter() - returns a unique increasing id, hashed with time stamp - to make it unique also between dummyrunner instances. + to make it unique also between dummyrunner instances. The return should either be a single command string or a tuple of command strings. This list of commands will always be executed every @@ -94,7 +93,7 @@ (no randomness) and allows for setting up a more complex chain of commands (such as creating an account and logging in). ----- +--- """ # Dummy runner settings @@ -359,6 +358,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -377,7 +377,6 @@ -
      develop branch
      @@ -183,6 +182,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -201,7 +201,6 @@ -
      develop branch
      @@ -110,6 +109,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -128,7 +128,6 @@ -
      develop branch
      @@ -229,6 +228,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -247,7 +247,6 @@ -
      develop branch
      @@ -107,6 +106,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -125,7 +125,6 @@ -
      develop branch
      @@ -41,12 +40,12 @@

      Source code for evennia.server.server

       """
      -This module implements the main Evennia server process, the core of the game
      -engine.
      +This module implements the main Evennia server process, the core of
      +the game engine.
       
      -This module should be started with the 'twistd' executable since it sets up all
      -the networking features.  (this is done automatically by
      -evennia/server/server_runner.py).
      +This module should be started with the 'twistd' executable since it
      +sets up all the networking features.  (this is done automatically
      +by evennia/server/server_runner.py).
       
       """
       import time
      @@ -64,7 +63,6 @@
       django.setup()
       
       import evennia
      -import importlib
       
       evennia._init()
       
      @@ -74,6 +72,7 @@
       from evennia.accounts.models import AccountDB
       from evennia.scripts.models import ScriptDB
       from evennia.server.models import ServerConfig
      +from evennia.server import initial_setup
       
       from evennia.utils.utils import get_evennia_version, mod_import, make_iter
       from evennia.utils import logger
      @@ -383,7 +382,6 @@
               Once finished the last_initial_setup_step is set to -1.
               """
               global INFO_DICT
      -        initial_setup = importlib.import_module(settings.INITIAL_SETUP_MODULE)
               last_initial_setup_step = ServerConfig.objects.conf("last_initial_setup_step")
               if not last_initial_setup_step:
                   # None is only returned if the config does not exist,
      @@ -442,17 +440,18 @@
               """
               Shuts down the server from inside it.
       
      -        mode - sets the server restart mode.
      -           - 'reload' - server restarts, no "persistent" scripts
      -             are stopped, at_reload hooks called.
      -           - 'reset' - server restarts, non-persistent scripts stopped,
      -             at_shutdown hooks called but sessions will not
      -             be disconnected.
      -           - 'shutdown' - like reset, but server will not auto-restart.
      -        _reactor_stopping - this is set if server is stopped by a kill
      -           command OR this method was already called
      -           once - in both cases the reactor is
      -           dead/stopping already.
      +        Keyword Args:
      +            mode (str): Sets the server restart mode:
      +            - 'reload': server restarts, no "persistent" scripts
      +              are stopped, at_reload hooks called.
      +            - 'reset' - server restarts, non-persistent scripts stopped,
      +              at_shutdown hooks called but sessions will not
      +              be disconnected.
      +            -'shutdown' - like reset, but server will not auto-restart.
      +            _reactor_stopping: This is set if server is stopped by a kill
      +                command OR this method was already called
      +                once - in both cases the reactor is dead/stopping already.
      +
               """
               if _reactor_stopping and hasattr(self, "shutdown_complete"):
                   # this means we have already passed through this method
      @@ -798,6 +797,7 @@
         
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -816,7 +816,6 @@ -
      develop branch
      @@ -48,16 +47,16 @@ It is stored on the Server side (as opposed to protocol-specific sessions which are stored on the Portal side) """ +import weakref import time from django.utils import timezone from django.conf import settings from evennia.comms.models import ChannelDB from evennia.utils import logger -from evennia.utils.utils import make_iter, lazy_property, class_from_module +from evennia.utils.utils import make_iter, lazy_property from evennia.commands.cmdsethandler import CmdSetHandler from evennia.server.session import Session from evennia.scripts.monitorhandler import MONITOR_HANDLER -from evennia.typeclasses.attributes import AttributeHandler, InMemoryAttributeBackend, DbHolder _GA = object.__getattribute__ _SA = object.__setattr__ @@ -67,7 +66,123 @@ # i18n from django.utils.translation import gettext as _ -_BASE_SESSION_CLASS = class_from_module(settings.BASE_SESSION_CLASS) +# Handlers for Session.db/ndb operation + + +
      [docs]class NDbHolder(object): + """Holder for allowing property access of attributes""" + +
      [docs] def __init__(self, obj, name, manager_name="attributes"): + _SA(self, name, _GA(obj, manager_name)) + _SA(self, "name", name)
      + + def __getattribute__(self, attrname): + if attrname == "all": + # we allow to overload our default .all + attr = _GA(self, _GA(self, "name")).get("all") + return attr if attr else _GA(self, "all") + return _GA(self, _GA(self, "name")).get(attrname) + + def __setattr__(self, attrname, value): + _GA(self, _GA(self, "name")).add(attrname, value) + + def __delattr__(self, attrname): + _GA(self, _GA(self, "name")).remove(attrname) + +
      [docs] def get_all(self): + return _GA(self, _GA(self, "name")).all()
      + + all = property(get_all)
      + + +
      [docs]class NAttributeHandler(object): + """ + NAttributeHandler version without recache protection. + This stand-alone handler manages non-database saving. + It is similar to `AttributeHandler` and is used + by the `.ndb` handler in the same way as `.db` does + for the `AttributeHandler`. + """ + +
      [docs] def __init__(self, obj): + """ + Initialized on the object + """ + self._store = {} + self.obj = weakref.proxy(obj)
      + +
      [docs] def has(self, key): + """ + Check if object has this attribute or not. + + Args: + key (str): The Nattribute key to check. + + Returns: + has_nattribute (bool): If Nattribute is set or not. + + """ + return key in self._store
      + +
      [docs] def get(self, key, default=None): + """ + Get the named key value. + + Args: + key (str): The Nattribute key to get. + + Returns: + the value of the Nattribute. + + """ + return self._store.get(key, default)
      + +
      [docs] def add(self, key, value): + """ + Add new key and value. + + Args: + key (str): The name of Nattribute to add. + value (any): The value to store. + + """ + self._store[key] = value
      + +
      [docs] def remove(self, key): + """ + Remove Nattribute from storage. + + Args: + key (str): The name of the Nattribute to remove. + + """ + if key in self._store: + del self._store[key]
      + +
      [docs] def clear(self): + """ + Remove all NAttributes from handler. + + """ + self._store = {}
      + +
      [docs] def all(self, return_tuples=False): + """ + List the contents of the handler. + + Args: + return_tuples (bool, optional): Defines if the Nattributes + are returns as a list of keys or as a list of `(key, value)`. + + Returns: + nattributes (list): A list of keys `[key, key, ...]` or a + list of tuples `[(key, value), ...]` depending on the + setting of `return_tuples`. + + """ + if return_tuples: + return [(key, value) for (key, value) in self._store.items() if not key.startswith("_")] + return [key for key in self._store if not key.startswith("_")]
      # ------------------------------------------------------------- @@ -75,7 +190,7 @@ # ------------------------------------------------------------- -
      [docs]class ServerSession(_BASE_SESSION_CLASS): +
      [docs]class ServerSession(Session): """ This class represents an account's session and is a template for individual protocols to communicate with Evennia. @@ -101,10 +216,6 @@ cmdset_storage = property(__cmdset_storage_get, __cmdset_storage_set) - @property - def id(self): - return self.sessid -
      [docs] def at_sync(self): """ This is called whenever a session has been resynced with the @@ -274,7 +385,7 @@ Update the protocol_flags and sync them with Portal. Keyword Args: - protocol_flag (any): A key and value to set in the + any: A key:value pair to set in the protocol_flags dictionary. Notes: @@ -306,13 +417,14 @@ the respective inputfuncs. Keyword Args: - kwargs (any): Incoming data from protocol on + any: Incoming data from protocol on the form `{"commandname": ((args), {kwargs}),...}` Notes: This method is here in order to give the user a single place to catch and possibly process all incoming data from the client. It should usually always end by sending this data off to `self.sessionhandler.call_inputfuncs(self, **kwargs)`. + """ self.sessionhandler.call_inputfuncs(self, **kwargs)
      @@ -322,9 +434,7 @@ Args: text (str): String input. - - Keyword Args: - any (str or tuple): Send-commands identified + kwargs (str or tuple): Send-commands identified by their keys. Or "options", carrying options for the protocol(s). @@ -420,7 +530,7 @@
      [docs] @lazy_property def nattributes(self): - return AttributeHandler(self, InMemoryAttributeBackend)
      + return NAttributeHandler(self)
      [docs] @lazy_property def attributes(self): @@ -438,7 +548,7 @@ try: return self._ndb_holder except AttributeError: - self._ndb_holder = DbHolder(self, "nattrhandler", manager_name="nattributes") + self._ndb_holder = NDbHolder(self, "nattrhandler", manager_name="nattributes") return self._ndb_holder
      # @ndb.setter @@ -494,6 +604,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -512,7 +623,6 @@ -
      develop branch
      @@ -54,7 +53,7 @@ # ------------------------------------------------------------ -
      [docs]class Session: +
      [docs]class Session(object): """ This class represents a player's session and is a template for both portal- and server-side sessions. @@ -77,6 +76,26 @@ """ + # names of attributes that should be affected by syncing. + _attrs_to_sync = ( + "protocol_key", + "address", + "suid", + "sessid", + "uid", + "csessid", + "uname", + "logged_in", + "puid", + "conn_time", + "cmd_last", + "cmd_last_visible", + "cmd_total", + "protocol_flags", + "server_data", + "cmdset_storage_string", + ) +
      [docs] def init_session(self, protocol_key, address, sessionhandler): """ Initialize the Session. This should be called by the protocol when @@ -143,9 +162,9 @@ the keys given by self._attrs_to_sync. """ - return { - attr: getattr(self, attr) for attr in settings.SESSION_SYNC_ATTRS if hasattr(self, attr) - }
      + return dict( + (key, value) for key, value in self.__dict__.items() if key in self._attrs_to_sync + )
      [docs] def load_sync_data(self, sessdata): """ @@ -241,6 +260,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -259,7 +279,6 @@ -
      develop branch
      @@ -46,12 +45,12 @@ There are two similar but separate stores of sessions: -- ServerSessionHandler - this stores generic game sessions - for the game. These sessions has no knowledge about - how they are connected to the world. -- PortalSessionHandler - this stores sessions created by - twisted protocols. These are dumb connectors that - handle network communication but holds no game info. + - ServerSessionHandler - this stores generic game sessions + for the game. These sessions has no knowledge about + how they are connected to the world. + - PortalSessionHandler - this stores sessions created by + twisted protocols. These are dumb connectors that + handle network communication but holds no game info. """ import time @@ -60,14 +59,12 @@ from evennia.commands.cmdhandler import CMD_LOGINSTART from evennia.utils.logger import log_trace from evennia.utils.utils import ( - variable_from_module, class_from_module, + variable_from_module, is_iter, make_iter, delay, callables_from_module, - class_from_module, ) -from evennia.server.portal import amp from evennia.server.signals import SIGNAL_ACCOUNT_POST_LOGIN, SIGNAL_ACCOUNT_POST_LOGOUT from evennia.server.signals import SIGNAL_ACCOUNT_POST_FIRST_LOGIN, SIGNAL_ACCOUNT_POST_LAST_LOGOUT from evennia.utils.inlinefuncs import parse_inlinefunc @@ -91,6 +88,25 @@ DUMMYSESSION = DummySession() +# AMP signals +PCONN = chr(1) # portal session connect +PDISCONN = chr(2) # portal session disconnect +PSYNC = chr(3) # portal session sync +SLOGIN = chr(4) # server session login +SDISCONN = chr(5) # server session disconnect +SDISCONNALL = chr(6) # server session disconnect all +SSHUTD = chr(7) # server shutdown +SSYNC = chr(8) # server session sync +SCONN = chr(11) # server portal connection (for bots) +PCONNSYNC = chr(12) # portal post-syncing session +PDISCONNALL = chr(13) # portal session discnnect all +SRELOAD = chr(14) # server reloading (have portal start a new server) +SSTART = chr(15) # server start (portal must already be running anyway) +PSHUTD = chr(16) # portal (+server) shutdown +SSHUTD = chr(17) # server shutdown +PSTATUS = chr(18) # ping server or portal status +SRESET = chr(19) # server shutdown in reset mode + # i18n from django.utils.translation import gettext as _ @@ -117,7 +133,8 @@ global _ServerSession, _AccountDB, _ServerConfig, _ScriptDB if not _ServerSession: # we allow optional arbitrary serversession class for overloading - _ServerSession = class_from_module(settings.SERVER_SESSION_CLASS) + modulename, classname = settings.SERVER_SESSION_CLASS.rsplit(".", 1) + _ServerSession = variable_from_module(modulename, classname) if not _AccountDB: from evennia.accounts.models import AccountDB as _AccountDB if not _ServerConfig: @@ -125,10 +142,10 @@ if not _ScriptDB: from evennia.scripts.models import ScriptDB as _ScriptDB # including once to avoid warnings in Python syntax checkers - assert _ServerSession, "ServerSession class could not load" - assert _AccountDB, "AccountDB class could not load" - assert _ServerConfig, "ServerConfig class could not load" - assert _ScriptDB, "ScriptDB class c ould not load"
      + assert _ServerSession + assert _AccountDB + assert _ServerConfig + assert _ScriptDB # ----------------------------------------------------------- @@ -197,20 +214,23 @@ Args: session (Session): The relevant session instance. - kwargs (dict) Each keyword represents a send-instruction, with the keyword itself being the name + kwargs (dict) Each keyword represents a + send-instruction, with the keyword itself being the name of the instruction (like "text"). Suitable values for each keyword are: - - arg -> [[arg], {}] - - [args] -> [[args], {}] - - {kwargs} -> [[], {kwargs}] - - [args, {kwargs}] -> [[arg], {kwargs}] - - [[args], {kwargs}] -> [[args], {kwargs}] + :: + + arg -> [[arg], {}] + [args] -> [[args], {}] + {kwargs} -> [[], {kwargs}] + [args, {kwargs}] -> [[arg], {kwargs}] + [[args], {kwargs}] -> [[args], {kwargs}] Returns: kwargs (dict): A cleaned dictionary of cmdname:[[args],{kwargs}] pairs, - where the keys, args and kwargs have all been converted to - send-safe entities (strings or numbers), and inlinefuncs have been - applied. + where the keys, args and kwargs have all been converted to + send-safe entities (strings or numbers), and inlinefuncs have been + applied. """ options = kwargs.pop("options", None) or {} @@ -474,7 +494,7 @@ """ self.server.amp_protocol.send_AdminServer2Portal( - DUMMYSESSION, operation=amp.SCONN, protocol_path=protocol_path, config=configdict + DUMMYSESSION, operation=SCONN, protocol_path=protocol_path, config=configdict )
      [docs] def portal_restart_server(self): @@ -482,14 +502,14 @@ Called by server when reloading. We tell the portal to start a new server instance. """ - self.server.amp_protocol.send_AdminServer2Portal(DUMMYSESSION, operation=amp.SRELOAD)
      + self.server.amp_protocol.send_AdminServer2Portal(DUMMYSESSION, operation=SRELOAD)
      [docs] def portal_reset_server(self): """ Called by server when reloading. We tell the portal to start a new server instance. """ - self.server.amp_protocol.send_AdminServer2Portal(DUMMYSESSION, operation=amp.SRESET)
      + self.server.amp_protocol.send_AdminServer2Portal(DUMMYSESSION, operation=SRESET)
      [docs] def portal_shutdown(self): """ @@ -497,7 +517,7 @@ itself down) """ - self.server.amp_protocol.send_AdminServer2Portal(DUMMYSESSION, operation=amp.PSHUTD)
      + self.server.amp_protocol.send_AdminServer2Portal(DUMMYSESSION, operation=PSHUTD)
      [docs] def login(self, session, account, force=False, testmode=False): """ @@ -545,7 +565,7 @@ # sync the portal to the session if not testmode: self.server.amp_protocol.send_AdminServer2Portal( - session, operation=amp.SLOGIN, sessiondata={"logged_in": True, "uid": session.uid} + session, operation=SLOGIN, sessiondata={"logged_in": True, "uid": session.uid} ) account.at_post_login(session=session) if nsess < 2: @@ -590,7 +610,7 @@ if sync_portal: # inform portal that session should be closed. self.server.amp_protocol.send_AdminServer2Portal( - session, operation=amp.SDISCONN, reason=reason + session, operation=SDISCONN, reason=reason )
      [docs] def all_sessions_portal_sync(self): @@ -601,7 +621,7 @@ """ sessdata = self.get_all_sync_data() return self.server.amp_protocol.send_AdminServer2Portal( - DUMMYSESSION, operation=amp.SSYNC, sessiondata=sessdata + DUMMYSESSION, operation=SSYNC, sessiondata=sessdata )
      [docs] def session_portal_sync(self, session): @@ -612,7 +632,7 @@ """ sessdata = {session.sessid: session.get_sync_data()} return self.server.amp_protocol.send_AdminServer2Portal( - DUMMYSESSION, operation=amp.SSYNC, sessiondata=sessdata, clean=False + DUMMYSESSION, operation=SSYNC, sessiondata=sessdata, clean=False )
      [docs] def session_portal_partial_sync(self, session_data): @@ -625,7 +645,7 @@ """ return self.server.amp_protocol.send_AdminServer2Portal( - DUMMYSESSION, operation=amp.SSYNC, sessiondata=session_data, clean=False + DUMMYSESSION, operation=SSYNC, sessiondata=session_data, clean=False )
      [docs] def disconnect_all_sessions(self, reason="You have been disconnected."): @@ -641,7 +661,7 @@ del session # tell portal to disconnect all sessions self.server.amp_protocol.send_AdminServer2Portal( - DUMMYSESSION, operation=amp.SDISCONNALL, reason=reason + DUMMYSESSION, operation=SDISCONNALL, reason=reason )
      [docs] def disconnect_duplicate_sessions( @@ -784,9 +804,8 @@ Given a client identification hash (for session types that offer them) return all sessions with a matching hash. - Args + Args: csessid (str): The session hash. - Returns: sessions (list): The sessions with matching .csessid, if any. @@ -849,9 +868,9 @@
      [docs] def call_inputfuncs(self, session, **kwargs): """ - Split incoming data into its inputfunc counterparts. This should be - called by the `serversession.data_in` as - `sessionhandler.call_inputfunc(self, **kwargs)`. + Split incoming data into its inputfunc counterparts. + This should be called by the serversession.data_in + as `sessionhandler.call_inputfunc(self, **kwargs)`. We also intercept OOB communication here. @@ -859,8 +878,8 @@ sessions (Session): Session. Keyword Args: - any (tuple): Incoming data from protocol, each - on the form `commandname=((args), {kwargs})`. + kwargs (any): Incoming data from protocol on + the form `{"commandname": ((args), {kwargs}),...}` """ @@ -881,11 +900,7 @@ log_trace()
      -# import class from settings -_SESSION_HANDLER_CLASS = class_from_module(settings.SERVER_SESSION_HANDLER_CLASS) - -# Instantiate class. These globals are used to provide singleton-like behavior. -SESSION_HANDLER = _SESSION_HANDLER_CLASS() +SESSION_HANDLER = ServerSessionHandler() SESSIONS = SESSION_HANDLER # legacy @@ -914,6 +929,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -932,7 +948,6 @@ -
      develop branch
      @@ -40,8 +39,7 @@

      Source code for evennia.server.throttle

      -from django.core.cache import caches
      -from collections import deque
      +from collections import defaultdict, deque
       from evennia.utils import logger
       import time
       
      @@ -55,8 +53,8 @@
       
           This version of the throttle is usable by both the terminal server as well
           as the web server, imposes limits on memory consumption by using deques
      -    with length limits instead of open-ended lists, and uses native Django 
      -    caches for automatic key eviction and persistence configurability.
      +    with length limits instead of open-ended lists, and removes sparse keys when
      +    no recent failures have been recorded.
           """
       
           error_msg = "Too many failed attempts; you must wait a few minutes before trying again."
      @@ -66,7 +64,6 @@
               Allows setting of throttle parameters.
       
               Keyword Args:
      -            name (str): Name of this throttle.
                   limit (int): Max number of failures before imposing limiter
                   timeout (int): number of timeout seconds after
                       max number of tries has been reached.
      @@ -74,37 +71,9 @@
                       rolling window; this is NOT the same as the limit after which
                       the throttle is imposed!
               """
      -        try:
      -            self.storage = caches['throttle']
      -        except Exception as e:
      -            logger.log_trace("Throttle: Errors encountered; using default cache.")
      -            self.storage = caches['default']
      -            
      -        self.name = kwargs.get('name', 'undefined-throttle')
      -        self.limit = kwargs.get("limit", 5)
      -        self.cache_size = kwargs.get('cache_size', self.limit)
      +        self.storage = defaultdict(deque)
      +        self.cache_size = self.limit = kwargs.get("limit", 5)
               self.timeout = kwargs.get("timeout", 5 * 60)
      - -
      [docs] def get_cache_key(self, *args, **kwargs): - """ - Creates a 'prefixed' key containing arbitrary terms to prevent key - collisions in the same namespace. - - """ - return '-'.join((self.name, *args))
      - -
      [docs] def touch(self, key, *args, **kwargs): - """ - Refreshes the timeout on a given key and ensures it is recorded in the - key register. - - Args: - key(str): Key of entry to renew. - - """ - cache_key = self.get_cache_key(key) - if self.storage.touch(cache_key, self.timeout): - self.record_key(key)
      [docs] def get(self, ip=None): """ @@ -122,18 +91,9 @@ """ if ip: - cache_key = self.get_cache_key(str(ip)) - return self.storage.get(cache_key, deque(maxlen=self.cache_size)) + return self.storage.get(ip, deque(maxlen=self.cache_size)) else: - keys_key = self.get_cache_key('keys') - keys = self.storage.get_or_set(keys_key, set(), self.timeout) - data = self.storage.get_many((self.get_cache_key(x) for x in keys)) - - found_keys = set(data.keys()) - if len(keys) != len(found_keys): - self.storage.set(keys_key, found_keys, self.timeout) - - return data
      + return self.storage
      [docs] def update(self, ip, failmsg="Exceeded threshold."): """ @@ -148,77 +108,24 @@ None """ - cache_key = self.get_cache_key(ip) - # Get current status previously_throttled = self.check(ip) - # Get previous failures, if any - entries = self.storage.get(cache_key, []) - entries.append(time.time()) - - # Store updated record - self.storage.set(cache_key, deque(entries, maxlen=self.cache_size), self.timeout) + # Enforce length limits + if not self.storage[ip].maxlen: + self.storage[ip] = deque(maxlen=self.cache_size) + + self.storage[ip].append(time.time()) # See if this update caused a change in status currently_throttled = self.check(ip) # If this makes it engage, log a single activation event if not previously_throttled and currently_throttled: - logger.log_sec(f"Throttle Activated: {failmsg} (IP: {ip}, {self.limit} hits in {self.timeout} seconds.)") - - self.record_ip(ip)
      - -
      [docs] def remove(self, ip, *args, **kwargs): - """ - Clears data stored for an IP from the throttle. - - Args: - ip(str): IP to clear. - - """ - exists = self.get(ip) - if not exists: return False - - cache_key = self.get_cache_key(ip) - self.storage.delete(cache_key) - self.unrecord_ip(ip) - - # Return True if NOT exists - return ~bool(self.get(ip))
      - -
      [docs] def record_ip(self, ip, *args, **kwargs): - """ - Tracks keys as they are added to the cache (since there is no way to - get a list of keys after-the-fact). - - Args: - ip(str): IP being added to cache. This should be the original - IP, not the cache-prefixed key. - - """ - keys_key = self.get_cache_key('keys') - keys = self.storage.get(keys_key, set()) - keys.add(ip) - self.storage.set(keys_key, keys, self.timeout) - return True
      - -
      [docs] def unrecord_ip(self, ip, *args, **kwargs): - """ - Forces removal of a key from the key registry. - - Args: - ip(str): IP to remove from list of keys. - - """ - keys_key = self.get_cache_key('keys') - keys = self.storage.get(keys_key, set()) - try: - keys.remove(ip) - self.storage.set(keys_key, keys, self.timeout) - return True - except KeyError: - return False
      + logger.log_sec( + "Throttle Activated: %s (IP: %s, %i hits in %i seconds.)" + % (failmsg, ip, self.limit, self.timeout) + )
      [docs] def check(self, ip): """ @@ -236,20 +143,17 @@ """ now = time.time() ip = str(ip) - - cache_key = self.get_cache_key(ip) # checking mode - latest_fails = self.storage.get(cache_key) + latest_fails = self.storage[ip] if latest_fails and len(latest_fails) >= self.limit: # too many fails recently if now - latest_fails[-1] < self.timeout: # too soon - timeout in play - self.touch(cache_key) return True else: # timeout has passed. clear faillist - self.remove(ip) + del self.storage[ip] return False else: return False
      @@ -280,6 +184,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -298,7 +203,6 @@ -
      develop branch
      @@ -157,6 +156,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -175,7 +175,6 @@ -
      develop branch
      @@ -367,6 +366,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -385,7 +385,6 @@ -
      develop branch
      @@ -411,6 +410,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -429,7 +429,6 @@ -
      develop branch
      @@ -54,8 +53,6 @@ import fnmatch import weakref -from collections import defaultdict - from django.db import models from django.conf import settings from django.utils.encoding import smart_str @@ -75,7 +72,7 @@ # ------------------------------------------------------------- -
      [docs]class IAttribute: +
      [docs]class Attribute(SharedMemoryModel): """ Attributes are things that are specific to different types of objects. For example, a drink container needs to store its fill level, whereas an exit @@ -97,112 +94,6 @@ - category (str): Optional character string for grouping the Attribute. - This class is an API/Interface/Abstract base class; do not instantiate it directly. - """ - -
      [docs] @lazy_property - def locks(self): - return LockHandler(self)
      - - key = property(lambda self: self.db_key) - strvalue = property(lambda self: self.db_strvalue) - category = property(lambda self: self.db_category) - model = property(lambda self: self.db_model) - attrtype = property(lambda self: self.db_attrtype) - date_created = property(lambda self: self.db_date_created) - - def __lock_storage_get(self): - return self.db_lock_storage - - def __lock_storage_set(self, value): - self.db_lock_storage = value - - def __lock_storage_del(self): - self.db_lock_storage = "" - - lock_storage = property(__lock_storage_get, __lock_storage_set, __lock_storage_del) - -
      [docs] def access(self, accessing_obj, access_type="read", default=False, **kwargs): - """ - Determines if another object has permission to access. - - Args: - accessing_obj (object): Entity trying to access this one. - access_type (str, optional): Type of access sought, see - the lock documentation. - default (bool, optional): What result to return if no lock - of access_type was found. The default, `False`, means a lockdown - policy, only allowing explicit access. - kwargs (any, optional): Not used; here to make the API consistent with - other access calls. - - Returns: - result (bool): If the lock was passed or not. - - """ - result = self.locks.check(accessing_obj, access_type=access_type, default=default) - return result
      - - # - # - # Attribute methods - # - # - - def __str__(self): - return smart_str("%s(%s)" % (self.db_key, self.id)) - - def __repr__(self): - return "%s(%s)" % (self.db_key, self.id)
      - - -
      [docs]class InMemoryAttribute(IAttribute): - """ - This Attribute is used purely for NAttributes/NAttributeHandler. It has no database backend. - """ - - # Primary Key has no meaning for an InMemoryAttribute. This merely serves to satisfy other code. - -
      [docs] def __init__(self, pk, **kwargs): - """ - Create an Attribute that exists only in Memory. - - Args: - pk (int): This is a fake 'primary key' / id-field. It doesn't actually have to be unique, but is fed an - incrementing number from the InMemoryBackend by default. This is needed only so Attributes can be - sorted. Some parts of the API also see the lack of a .pk field as a sign that the Attribute was - deleted. - **kwargs: Other keyword arguments are used to construct the actual Attribute. - """ - self.id = pk - self.pk = pk - - # Copy all kwargs to local properties. We use db_ for compatability here. - for key, value in kwargs.items(): - # Value and locks are special. We must call the wrappers. - if key == "value": - self.value = value - elif key == "lock_storage": - self.lock_storage = value - else: - setattr(self, f"db_{key}", value)
      - - # value property (wraps db_value) - def __value_get(self): - return self.db_value - - def __value_set(self, new_value): - self.db_value = new_value - - def __value_del(self): - pass - - value = property(__value_get, __value_set, __value_del)
      - - -
      [docs]class Attribute(IAttribute, SharedMemoryModel): - """ - This attribute is stored via Django. Most Attributes will be using this class. """ # @@ -259,10 +150,35 @@ # Database manager # objects = managers.AttributeManager() +
      [docs] @lazy_property + def locks(self): + return LockHandler(self)
      + class Meta(object): "Define Django meta options" verbose_name = "Evennia Attribute" + # read-only wrappers + key = property(lambda self: self.db_key) + strvalue = property(lambda self: self.db_strvalue) + category = property(lambda self: self.db_category) + model = property(lambda self: self.db_model) + attrtype = property(lambda self: self.db_attrtype) + date_created = property(lambda self: self.db_date_created) + + def __lock_storage_get(self): + return self.db_lock_storage + + def __lock_storage_set(self, value): + self.db_lock_storage = value + self.save(update_fields=["db_lock_storage"]) + + def __lock_storage_del(self): + self.db_lock_storage = "" + self.save(update_fields=["db_lock_storage"]) + + lock_storage = property(__lock_storage_get, __lock_storage_set, __lock_storage_del) + # Wrapper properties to easily set database fields. These are # @property decorators that allows to access these fields using # normal python operations (without having to remember to save() @@ -271,20 +187,6 @@ # value = self.attr and del self.attr respectively (where self # is the object in question). - # lock_storage wrapper. Overloaded for saving to database. - def __lock_storage_get(self): - return self.db_lock_storage - - def __lock_storage_set(self, value): - super().__lock_storage_set(value) - self.save(update_fields=["db_lock_storage"]) - - def __lock_storage_del(self): - super().__lock_storage_del() - self.save(update_fields=["db_lock_storage"]) - - lock_storage = property(__lock_storage_get, __lock_storage_set, __lock_storage_del) - # value property (wraps db_value) # @property def __value_get(self): @@ -303,6 +205,7 @@ see self.__value_get. """ self.db_value = to_pickle(new_value) + # print("value_set, self.db_value:", repr(self.db_value)) # DEBUG self.save(update_fields=["db_value"]) # @value.deleter @@ -310,7 +213,40 @@ """Deleter. Allows for del attr.value. This removes the entire attribute.""" self.delete() - value = property(__value_get, __value_set, __value_del)
      + value = property(__value_get, __value_set, __value_del) + + # + # + # Attribute methods + # + # + + def __str__(self): + return smart_str("%s[category=%s](#%s)" % (self.db_key, self.db_category, self.id)) + + def __repr__(self): + return "%s[category=%s](#%s)" % (self.db_key, self.db_category, self.id) + +
      [docs] def access(self, accessing_obj, access_type="attrread", default=False, **kwargs): + """ + Determines if another object has permission to access. + + Args: + accessing_obj (object): Entity trying to access this one. + access_type (str, optional): Type of access sought, see + the lock documentation. + default (bool, optional): What result to return if no lock + of access_type was found. The default, `False`, means a lockdown + policy, only allowing explicit access. + kwargs (any, optional): Not used; here to make the API consistent with + other access calls. + + Returns: + result (bool): If the lock was passed or not. + + """ + result = self.locks.check(accessing_obj, access_type=access_type, default=default) + return result
      # @@ -318,145 +254,59 @@ # -
      [docs]class IAttributeBackend: +
      [docs]class AttributeHandler(object): """ - Abstract interface for the backends used by the Attribute Handler. - - All Backends must implement this base class. + Handler for adding Attributes to the object. """ + _m2m_fieldname = "db_attributes" _attrcreate = "attrcreate" _attredit = "attredit" _attrread = "attrread" - _attrclass = None + _attrtype = None -
      [docs] def __init__(self, handler, attrtype): - self.handler = handler - self.obj = handler.obj - self._attrtype = attrtype - self._objid = handler.obj.id +
      [docs] def __init__(self, obj): + """Initialize handler.""" + self.obj = obj + self._objid = obj.id + self._model = to_str(obj.__dbclass__.__name__.lower()) self._cache = {} # store category names fully cached self._catcache = {} # full cache was run on all attributes self._cache_complete = False
      -
      [docs] def query_all(self): - """ - Fetch all Attributes from this object. + def _query_all(self): + "Fetch all Attributes on this object" + query = { + "%s__id" % self._model: self._objid, + "attribute__db_model__iexact": self._model, + "attribute__db_attrtype": self._attrtype, + } + return [ + conn.attribute + for conn in getattr(self.obj, self._m2m_fieldname).through.objects.filter(**query) + ] - Returns: - attrlist (list): A list of Attribute objects. - """ - raise NotImplementedError()
      - -
      [docs] def query_key(self, key, category): - """ - - Args: - key (str): The key of the Attribute being searched for. - category (str or None): The category of the desired Attribute. - - Returns: - attribute (IAttribute): A single Attribute. - """ - raise NotImplementedError()
      - -
      [docs] def query_category(self, category): - """ - Returns every matching Attribute as a list, given a category. - - This method calls up whatever storage the backend uses. - - Args: - category (str or None): The category to query. - - Returns: - attrs (list): The discovered Attributes. - """ - raise NotImplementedError()
      - - def _full_cache(self): + def _fullcache(self): """Cache all attributes of this object""" if not _TYPECLASS_AGGRESSIVE_CACHE: return - attrs = self.query_all() - self._cache = { - f"{to_str(attr.key).lower()}-{attr.category.lower() if attr.category else None}": attr + attrs = self._query_all() + self._cache = dict( + ( + "%s-%s" + % ( + to_str(attr.db_key).lower(), + attr.db_category.lower() if attr.db_category is not None else None, + ), + attr, + ) for attr in attrs - } + ) self._cache_complete = True - def _get_cache_key(self, key, category): - """ - - - Args: - key (str): The key of the Attribute being searched for. - category (str or None): The category of the desired Attribute. - - Returns: - attribute (IAttribute): A single Attribute. - """ - cachekey = "%s-%s" % (key, category) - cachefound = False - try: - attr = _TYPECLASS_AGGRESSIVE_CACHE and self._cache[cachekey] - cachefound = True - except KeyError: - attr = None - - if attr and (not hasattr(attr, "pk") and attr.pk is None): - # clear out Attributes deleted from elsewhere. We must search this anew. - attr = None - cachefound = False - del self._cache[cachekey] - if cachefound and _TYPECLASS_AGGRESSIVE_CACHE: - if attr: - return [attr] # return cached entity - else: - return [] # no such attribute: return an empty list - else: - conn = self.query_key(key, category) - if conn: - attr = conn[0].attribute - if _TYPECLASS_AGGRESSIVE_CACHE: - self._cache[cachekey] = attr - return [attr] if attr.pk else [] - else: - # There is no such attribute. We will explicitly save that - # in our cache to avoid firing another query if we try to - # retrieve that (non-existent) attribute again. - if _TYPECLASS_AGGRESSIVE_CACHE: - self._cache[cachekey] = None - return [] - - def _get_cache_category(self, category): - """ - Retrieves Attribute list (by category) from cache. - - Args: - category (str or None): The category to query. - - Returns: - attrs (list): The discovered Attributes. - """ - catkey = "-%s" % category - if _TYPECLASS_AGGRESSIVE_CACHE and catkey in self._catcache: - return [attr for key, attr in self._cache.items() if key.endswith(catkey) and attr] - else: - # we have to query to make this category up-date in the cache - attrs = self.query_category(category) - if _TYPECLASS_AGGRESSIVE_CACHE: - for attr in attrs: - if attr.pk: - cachekey = "%s-%s" % (attr.key, category) - self._cache[cachekey] = attr - # mark category cache as up-to-date - self._catcache[catkey] = True - return attrs - - def _get_cache(self, key=None, category=None): + def _getcache(self, key=None, category=None): """ Retrieve from cache or database (always caches) @@ -482,31 +332,85 @@ key = key.strip().lower() if key else None category = category.strip().lower() if category is not None else None if key: - return self._get_cache_key(key, category) - return self._get_cache_category(category) + cachekey = "%s-%s" % (key, category) + cachefound = False + try: + attr = _TYPECLASS_AGGRESSIVE_CACHE and self._cache[cachekey] + cachefound = True + except KeyError: + attr = None -
      [docs] def get(self, key=None, category=None): - """ - Frontend for .get_cache. Retrieves Attribute(s). + if attr and (not hasattr(attr, "pk") and attr.pk is None): + # clear out Attributes deleted from elsewhere. We must search this anew. + attr = None + cachefound = False + del self._cache[cachekey] + if cachefound and _TYPECLASS_AGGRESSIVE_CACHE: + if attr: + return [attr] # return cached entity + else: + return [] # no such attribute: return an empty list + else: + query = { + "%s__id" % self._model: self._objid, + "attribute__db_model__iexact": self._model, + "attribute__db_attrtype": self._attrtype, + "attribute__db_key__iexact": key.lower(), + "attribute__db_category__iexact": category.lower() if category else None, + } + if not self.obj.pk: + return [] + conn = getattr(self.obj, self._m2m_fieldname).through.objects.filter(**query) + if conn: + attr = conn[0].attribute + if _TYPECLASS_AGGRESSIVE_CACHE: + self._cache[cachekey] = attr + return [attr] if attr.pk else [] + else: + # There is no such attribute. We will explicitly save that + # in our cache to avoid firing another query if we try to + # retrieve that (non-existent) attribute again. + if _TYPECLASS_AGGRESSIVE_CACHE: + self._cache[cachekey] = None + return [] + else: + # only category given (even if it's None) - we can't + # assume the cache to be complete unless we have queried + # for this category before + catkey = "-%s" % category + if _TYPECLASS_AGGRESSIVE_CACHE and catkey in self._catcache: + return [attr for key, attr in self._cache.items() if key.endswith(catkey) and attr] + else: + # we have to query to make this category up-date in the cache + query = { + "%s__id" % self._model: self._objid, + "attribute__db_model__iexact": self._model, + "attribute__db_attrtype": self._attrtype, + "attribute__db_category__iexact": category.lower() if category else None, + } + attrs = [ + conn.attribute + for conn in getattr(self.obj, self._m2m_fieldname).through.objects.filter( + **query + ) + ] + if _TYPECLASS_AGGRESSIVE_CACHE: + for attr in attrs: + if attr.pk: + cachekey = "%s-%s" % (attr.db_key, category) + self._cache[cachekey] = attr + # mark category cache as up-to-date + self._catcache[catkey] = True + return attrs - Args: - key (str, optional): Attribute key to query for - category (str, optional): Attribiute category - - Returns: - args (list): Returns a list of zero or more matches - found from cache or database. - """ - return self._get_cache(key, category)
      - - def _set_cache(self, key, category, attr_obj): + def _setcache(self, key, category, attr_obj): """ Update cache. Args: key (str): A cleaned key string category (str or None): A cleaned category name - attr_obj (IAttribute): The newly saved attribute + attr_obj (Attribute): The newly saved attribute """ if not _TYPECLASS_AGGRESSIVE_CACHE: @@ -520,7 +424,7 @@ self._catcache.pop(catkey, None) self._cache_complete = False - def _delete_cache(self, key, category): + def _delcache(self, key, category): """ Remove attribute from cache @@ -543,7 +447,7 @@ self._catcache.pop(catkey, None) self._cache_complete = False -
      [docs] def reset_cache(self): +
      [docs] def reset_cache(self): """ Reset cache from the outside. """ @@ -551,431 +455,6 @@ self._cache = {} self._catcache = {}
      -
      [docs] def do_create_attribute(self, key, category, lockstring, value, strvalue): - """ - Does the hard work of actually creating Attributes, whatever is needed. - - Args: - key (str): The Attribute's key. - category (str or None): The Attribute's category, or None - lockstring (str): Any locks for the Attribute. - value (obj): The Value of the Attribute. - strvalue (bool): Signifies if this is a strvalue Attribute. Value MUST be a string or - this will lead to Trouble. Ignored for InMemory attributes. - - Returns: - attr (IAttribute): The new Attribute. - """ - raise NotImplementedError()
      - -
      [docs] def create_attribute(self, key, category, lockstring, value, strvalue=False, cache=True): - """ - Creates Attribute (using the class specified for the backend), (optionally) caches it, and returns it. - - This MUST actively save the Attribute to whatever database backend is used, AND - call self.set_cache(key, category, new_attrobj) - - Args: - key (str): The Attribute's key. - category (str or None): The Attribute's category, or None - lockstring (str): Any locks for the Attribute. - value (obj): The Value of the Attribute. - strvalue (bool): Signifies if this is a strvalue Attribute. Value MUST be a string or - this will lead to Trouble. Ignored for InMemory attributes. - cache (bool): Whether to cache the new Attribute - - Returns: - attr (IAttribute): The new Attribute. - """ - attr = self.do_create_attribute(key, category, lockstring, value, strvalue) - if cache: - self._set_cache(key, category, attr) - return attr
      - -
      [docs] def do_update_attribute(self, attr, value): - """ - Simply sets a new Value to an Attribute. - - Args: - attr (IAttribute): The Attribute being changed. - value (obj): The Value for the Attribute. - - """ - raise NotImplementedError()
      - -
      [docs] def do_batch_update_attribute(self, attr_obj, category, lock_storage, new_value, strvalue): - """ - Called opnly by batch add. For the database backend, this is a method - of updating that can alter category and lock-storage. - - Args: - attr_obj (IAttribute): The Attribute being altered. - category (str or None): The attribute's (new) category. - lock_storage (str): The attribute's new locks. - new_value (obj): The Attribute's new value. - strvalue (bool): Signifies if this is a strvalue Attribute. Value MUST be a string or - this will lead to Trouble. Ignored for InMemory attributes. - """ - raise NotImplementedError()
      - -
      [docs] def do_batch_finish(self, attr_objs): - """ - Called after batch_add completed. Used for handling database operations - and/or caching complications. - - Args: - attr_objs (list of IAttribute): The Attributes created/updated thus far. - - """ - raise NotImplementedError()
      - -
      [docs] def batch_add(self, *args, **kwargs): - """ - Batch-version of `.add()`. This is more efficient than repeat-calling - `.add` when having many Attributes to add. - - Args: - *args (tuple): Tuples of varying length representing the - Attribute to add to this object. Supported tuples are - - - (key, value) - - (key, value, category) - - (key, value, category, lockstring) - - (key, value, category, lockstring, default_access) - - Raises: - RuntimeError: If trying to pass a non-iterable as argument. - - Notes: - The indata tuple order matters, so if you want a lockstring but no - category, set the category to `None`. This method does not have the - ability to check editing permissions and is mainly used internally. - It does not use the normal `self.add` but applies the Attributes - directly to the database. - - """ - new_attrobjs = [] - strattr = kwargs.get("strattr", False) - for tup in args: - if not is_iter(tup) or len(tup) < 2: - raise RuntimeError("batch_add requires iterables as arguments (got %r)." % tup) - ntup = len(tup) - keystr = str(tup[0]).strip().lower() - new_value = tup[1] - category = str(tup[2]).strip().lower() if ntup > 2 and tup[2] is not None else None - lockstring = tup[3] if ntup > 3 else "" - - attr_objs = self._get_cache(keystr, category) - - if attr_objs: - attr_obj = attr_objs[0] - # update an existing attribute object - self.do_batch_update_attribute(attr_obj, category, lockstring, new_value, strattr) - else: - new_attr = self.do_create_attribute( - keystr, category, lockstring, new_value, strvalue=strattr - ) - new_attrobjs.append(new_attr) - if new_attrobjs: - self.do_batch_finish(new_attrobjs)
      - -
      [docs] def do_delete_attribute(self, attr): - """ - Does the hard work of actually deleting things. - - Args: - attr (IAttribute): The attribute to delete. - """ - raise NotImplementedError()
      - -
      [docs] def delete_attribute(self, attr): - """ - Given an Attribute, deletes it. Also remove it from cache. - - Args: - attr (IAttribute): The attribute to delete. - """ - if not attr: - return - self._delete_cache(attr.key, attr.category) - self.do_delete_attribute(attr)
      - -
      [docs] def update_attribute(self, attr, value): - """ - Simply updates an Attribute. - - Args: - attr (IAttribute): The attribute to delete. - value (obj): The new value. - """ - self.do_update_attribute(attr, value)
      - -
      [docs] def do_batch_delete(self, attribute_list): - """ - Given a list of attributes, deletes them all. - The default implementation is fine, but this is overridable since some databases may allow - for a better method. - - Args: - attribute_list (list of IAttribute): - """ - for attribute in attribute_list: - self.delete_attribute(attribute)
      - -
      [docs] def clear_attributes(self, category, accessing_obj, default_access): - """ - Remove all Attributes on this object. - - Args: - category (str, optional): If given, clear only Attributes - of this category. - accessing_obj (object, optional): If given, check the - `attredit` lock on each Attribute before continuing. - default_access (bool, optional): Use this permission as - fallback if `access_obj` is given but there is no lock of - type `attredit` on the Attribute in question. - - """ - category = category.strip().lower() if category is not None else None - - if not self._cache_complete: - self._full_cache() - - if category is not None: - attrs = [attr for attr in self._cache.values() if attr.category == category] - else: - attrs = self._cache.values() - - if accessing_obj: - self.do_batch_delete( - [ - attr - for attr in attrs - if attr.access(accessing_obj, self._attredit, default=default_access) - ] - ) - else: - # have to cast the results to a list or we'll get a RuntimeError for removing from the dict we're iterating - self.do_batch_delete(list(attrs)) - self.reset_cache()
      - -
      [docs] def get_all_attributes(self): - """ - Simply returns all Attributes of this object, sorted by their IDs. - - Returns: - attributes (list of IAttribute) - """ - if _TYPECLASS_AGGRESSIVE_CACHE: - if not self._cache_complete: - self._full_cache() - return sorted([attr for attr in self._cache.values() if attr], key=lambda o: o.id) - else: - return sorted([attr for attr in self.query_all() if attr], key=lambda o: o.id)
      - - -
      [docs]class InMemoryAttributeBackend(IAttributeBackend): - """ - This Backend for Attributes stores NOTHING in the database. Everything is kept in memory, and normally lost - on a crash, reload, shared memory flush, etc. It generates IDs for the Attributes it manages, but these are - of little importance beyond sorting and satisfying the caching logic to know an Attribute hasn't been - deleted out from under the cache's nose. - - """ - - _attrclass = InMemoryAttribute - -
      [docs] def __init__(self, handler, attrtype): - super().__init__(handler, attrtype) - self._storage = dict() - self._category_storage = defaultdict(list) - self._id_counter = 0
      - - def _next_id(self): - """ - Increments the internal ID counter and returns the new value. - - Returns: - next_id (int): A simple integer. - """ - self._id_counter += 1 - return self._id_counter - -
      [docs] def query_all(self): - return self._storage.values()
      - -
      [docs] def query_key(self, key, category): - found = self._storage.get((key, category), None) - if found: - return [found] - return []
      - -
      [docs] def query_category(self, category): - if category is None: - return self._storage.values() - return self._category_storage.get(category, [])
      - -
      [docs] def do_create_attribute(self, key, category, lockstring, value, strvalue): - """ - See parent class. - - strvalue has no meaning for InMemory attributes. - - """ - new_attr = self._attrclass( - pk=self._next_id(), key=key, category=category, lock_storage=lockstring, value=value - ) - self._storage[(key, category)] = new_attr - self._category_storage[category].append(new_attr) - return new_attr
      - -
      [docs] def do_update_attribute(self, attr, value): - attr.value = value
      - -
      [docs] def do_batch_update_attribute(self, attr_obj, category, lock_storage, new_value, strvalue): - """ - No need to bother saving anything. Just set some values. - """ - attr_obj.db_category = category - attr_obj.db_lock_storage = lock_storage if lock_storage else "" - attr_obj.value = new_value
      - -
      [docs] def do_batch_finish(self, attr_objs): - """ - Nothing to do here for In-Memory. - - Args: - attr_objs (list of IAttribute): The Attributes created/updated thus far. - """ - pass
      - -
      [docs] def do_delete_attribute(self, attr): - """ - Removes the Attribute from local storage. Once it's out of the cache, garbage collection will handle the rest. - - Args: - attr (IAttribute): The attribute to delete. - """ - del self._storage[(attr.key, attr.category)] - self._category_storage[attr.category].remove(attr)
      - - -
      [docs]class ModelAttributeBackend(IAttributeBackend): - """ - Uses Django models for storing Attributes. - """ - - _attrclass = Attribute - _m2m_fieldname = "db_attributes" - -
      [docs] def __init__(self, handler, attrtype): - super().__init__(handler, attrtype) - self._model = to_str(handler.obj.__dbclass__.__name__.lower())
      - -
      [docs] def query_all(self): - query = { - "%s__id" % self._model: self._objid, - "attribute__db_model__iexact": self._model, - "attribute__db_attrtype": self._attrtype, - } - return [ - conn.attribute - for conn in getattr(self.obj, self._m2m_fieldname).through.objects.filter(**query) - ]
      - -
      [docs] def query_key(self, key, category): - query = { - "%s__id" % self._model: self._objid, - "attribute__db_model__iexact": self._model, - "attribute__db_attrtype": self._attrtype, - "attribute__db_key__iexact": key.lower(), - "attribute__db_category__iexact": category.lower() if category else None, - } - if not self.obj.pk: - return [] - return getattr(self.obj, self._m2m_fieldname).through.objects.filter(**query)
      - -
      [docs] def query_category(self, category): - query = { - "%s__id" % self._model: self._objid, - "attribute__db_model__iexact": self._model, - "attribute__db_attrtype": self._attrtype, - "attribute__db_category__iexact": category.lower() if category else None, - } - return [ - conn.attribute - for conn in getattr(self.obj, self._m2m_fieldname).through.objects.filter(**query) - ]
      - -
      [docs] def do_create_attribute(self, key, category, lockstring, value, strvalue): - kwargs = { - "db_key": key, - "db_category": category, - "db_model": self._model, - "db_lock_storage": lockstring if lockstring else "", - "db_attrtype": self._attrtype, - } - if strvalue: - kwargs["db_value"] = None - kwargs["db_strvalue"] = value - else: - kwargs["db_value"] = to_pickle(value) - kwargs["db_strvalue"] = None - new_attr = self._attrclass(**kwargs) - new_attr.save() - getattr(self.obj, self._m2m_fieldname).add(new_attr) - self._set_cache(key, category, new_attr) - return new_attr
      - -
      [docs] def do_update_attribute(self, attr, value): - attr.value = value
      - -
      [docs] def do_batch_update_attribute(self, attr_obj, category, lock_storage, new_value, strvalue): - attr_obj.db_category = category - attr_obj.db_lock_storage = lock_storage if lock_storage else "" - if strvalue: - # store as a simple string (will not notify OOB handlers) - attr_obj.db_strvalue = new_value - attr_obj.value = None - else: - # store normally (this will also notify OOB handlers) - attr_obj.value = new_value - attr_obj.db_strvalue = None - attr_obj.save(update_fields=["db_strvalue", "db_value", "db_category", "db_lock_storage"])
      - -
      [docs] def do_batch_finish(self, attr_objs): - # Add new objects to m2m field all at once - getattr(self.obj, self._m2m_fieldname).add(*attr_objs)
      - -
      [docs] def do_delete_attribute(self, attr): - try: - attr.delete() - except AssertionError: - # This could happen if the Attribute has already been deleted. - pass
      - - -
      [docs]class AttributeHandler: - """ - Handler for adding Attributes to the object. - """ - - _attrcreate = "attrcreate" - _attredit = "attredit" - _attrread = "attrread" - _attrtype = None - -
      [docs] def __init__(self, obj, backend_class): - """ - Setup the AttributeHandler. - - Args: - obj (TypedObject): An Account, Object, Channel, ServerSession (not technically a typed object), etc. - backend_class (IAttributeBackend class): The class of the backend to use. - """ - self.obj = obj - self.backend = backend_class(self, self._attrtype)
      -
      [docs] def has(self, key=None, category=None): """ Checks if the given Attribute (or list of Attributes) exists on @@ -997,7 +476,7 @@ category = category.strip().lower() if category is not None else None for keystr in make_iter(key): keystr = key.strip().lower() - ret.extend(bool(attr) for attr in self.backend.get(keystr, category)) + ret.extend(bool(attr) for attr in self._getcache(keystr, category)) return ret[0] if len(ret) == 1 else ret
      [docs] def get( @@ -1055,7 +534,7 @@ ret = [] for keystr in make_iter(key): # it's okay to send a None key - attr_objs = self.backend.get(keystr, category) + attr_objs = self._getcache(keystr, category) if attr_objs: ret.extend(attr_objs) elif raise_exception: @@ -1120,16 +599,35 @@ return category = category.strip().lower() if category is not None else None + keystr = key.strip().lower() - attr_obj = self.backend.get(key, category) + attr_obj = self._getcache(key, category) if attr_obj: # update an existing attribute object attr_obj = attr_obj[0] - self.backend.update_attribute(attr_obj, value) + if strattr: + # store as a simple string (will not notify OOB handlers) + attr_obj.db_strvalue = value + attr_obj.save(update_fields=["db_strvalue"]) + else: + # store normally (this will also notify OOB handlers) + attr_obj.value = value else: # create a new Attribute (no OOB handlers can be notified) - self.backend.create_attribute(keystr, category, lockstring, value, strattr)
      + kwargs = { + "db_key": keystr, + "db_category": category, + "db_model": self._model, + "db_attrtype": self._attrtype, + "db_value": None if strattr else to_pickle(value), + "db_strvalue": value if strattr else None, + } + new_attr = Attribute(**kwargs) + new_attr.save() + getattr(self.obj, self._m2m_fieldname).add(new_attr) + # update cache + self._setcache(keystr, category, new_attr)
      [docs] def batch_add(self, *args, **kwargs): """ @@ -1141,10 +639,10 @@ length) representing the Attribute to add to this object. Supported tuples are - - (key, value) - - (key, value, category) - - (key, value, category, lockstring) - - (key, value, category, lockstring, default_access) + - `(key, value)` + - `(key, value, category)` + - `(key, value, category, lockstring)` + - `(key, value, category, lockstring, default_access)` Keyword Args: strattr (bool): If `True`, value must be a string. This @@ -1164,7 +662,50 @@ to the database. """ - self.backend.batch_add(*args, **kwargs)
      + new_attrobjs = [] + strattr = kwargs.get("strattr", False) + for tup in args: + if not is_iter(tup) or len(tup) < 2: + raise RuntimeError("batch_add requires iterables as arguments (got %r)." % tup) + ntup = len(tup) + keystr = str(tup[0]).strip().lower() + new_value = tup[1] + category = str(tup[2]).strip().lower() if ntup > 2 and tup[2] is not None else None + lockstring = tup[3] if ntup > 3 else "" + + attr_objs = self._getcache(keystr, category) + + if attr_objs: + attr_obj = attr_objs[0] + # update an existing attribute object + attr_obj.db_category = category + attr_obj.db_lock_storage = lockstring or "" + attr_obj.save(update_fields=["db_category", "db_lock_storage"]) + if strattr: + # store as a simple string (will not notify OOB handlers) + attr_obj.db_strvalue = new_value + attr_obj.save(update_fields=["db_strvalue"]) + else: + # store normally (this will also notify OOB handlers) + attr_obj.value = new_value + else: + # create a new Attribute (no OOB handlers can be notified) + kwargs = { + "db_key": keystr, + "db_category": category, + "db_model": self._model, + "db_attrtype": self._attrtype, + "db_value": None if strattr else to_pickle(new_value), + "db_strvalue": new_value if strattr else None, + "db_lock_storage": lockstring or "", + } + new_attr = Attribute(**kwargs) + new_attr.save() + new_attrobjs.append(new_attr) + self._setcache(keystr, category, new_attr) + if new_attrobjs: + # Add new objects to m2m field all at once + getattr(self.obj, self._m2m_fieldname).add(*new_attrobjs)
      [docs] def remove( self, @@ -1213,13 +754,20 @@ for keystr in make_iter(key): keystr = keystr.lower() - attr_objs = self.backend.get(keystr, category) + attr_objs = self._getcache(keystr, category) for attr_obj in attr_objs: if not ( accessing_obj and not attr_obj.access(accessing_obj, self._attredit, default=default_access) ): - self.backend.delete_attribute(attr_obj) + try: + attr_obj.delete() + except AssertionError: + print("Assertionerror for attr.delete()") + # this happens if the attr was already deleted + pass + finally: + self._delcache(keystr, category) if not attr_objs and raise_exception: raise AttributeError
      @@ -1237,7 +785,27 @@ type `attredit` on the Attribute in question. """ - self.backend.clear_attributes(category, accessing_obj, default_access)
      + category = category.strip().lower() if category is not None else None + + if not self._cache_complete: + self._fullcache() + + if category is not None: + attrs = [attr for attr in self._cache.values() if attr.category == category] + else: + attrs = self._cache.values() + + if accessing_obj: + [ + attr.delete() + for attr in attrs + if attr and attr.access(accessing_obj, self._attredit, default=default_access) + ] + else: + [attr.delete() for attr in attrs if attr and attr.pk] + self._cache = {} + self._catcache = {} + self._cache_complete = False
      [docs] def all(self, accessing_obj=None, default_access=True): """ @@ -1256,7 +824,12 @@ their values!) in the handler. """ - attrs = self.backend.get_all_attributes() + if _TYPECLASS_AGGRESSIVE_CACHE: + if not self._cache_complete: + self._fullcache() + attrs = sorted([attr for attr in self._cache.values() if attr], key=lambda o: o.id) + else: + attrs = sorted([attr for attr in self._query_all() if attr], key=lambda o: o.id) if accessing_obj: return [ @@ -1265,42 +838,7 @@ if attr.access(accessing_obj, self._attredit, default=default_access) ] else: - return attrs
      - -
      [docs] def reset_cache(self): - self.backend.reset_cache()
      - - -# DbHolders for .db and .ndb properties on Typeclasses. - -_GA = object.__getattribute__ -_SA = object.__setattr__ - - -
      [docs]class DbHolder(object): - "Holder for allowing property access of attributes" - -
      [docs] def __init__(self, obj, name, manager_name="attributes"): - _SA(self, name, _GA(obj, manager_name)) - _SA(self, "name", name)
      - - def __getattribute__(self, attrname): - if attrname == "all": - # we allow to overload our default .all - attr = _GA(self, _GA(self, "name")).get("all") - return attr if attr else _GA(self, "all") - return _GA(self, _GA(self, "name")).get(attrname) - - def __setattr__(self, attrname, value): - _GA(self, _GA(self, "name")).add(attrname, value) - - def __delattr__(self, attrname): - _GA(self, _GA(self, "name")).remove(attrname) - -
      [docs] def get_all(self): - return _GA(self, _GA(self, "name")).get_all_attributes()
      - - all = property(get_all)
      + return attrs # Nick templating @@ -1352,13 +890,13 @@ matched by the in_template. Returns: - regex (regex): Regex to match against strings - template (str): Template with markers ``{arg1}, {arg2}``, etc for - replacement using the standard .format method. + (regex, str): Regex to match against strings and a template + Template with markers `{arg1}`, `{arg2}`, etc for + replacement using the standard `.format` method. Raises: - evennia.typecalasses.attributes.NickTemplateInvalid: If the in/out - template does not have a matching number of `$args`. + attributes.NickTemplateInvalid: If the in/out template does not have a matching + number of $args. """ @@ -1543,6 +1081,95 @@ if is_match: break return raw_string + + +
      [docs]class NAttributeHandler(object): + """ + This stand-alone handler manages non-database saving. + It is similar to `AttributeHandler` and is used + by the `.ndb` handler in the same way as `.db` does + for the `AttributeHandler`. + """ + +
      [docs] def __init__(self, obj): + """ + Initialized on the object + """ + self._store = {} + self.obj = weakref.proxy(obj)
      + +
      [docs] def has(self, key): + """ + Check if object has this attribute or not. + + Args: + key (str): The Nattribute key to check. + + Returns: + has_nattribute (bool): If Nattribute is set or not. + + """ + return key in self._store
      + +
      [docs] def get(self, key): + """ + Get the named key value. + + Args: + key (str): The Nattribute key to get. + + Returns: + the value of the Nattribute. + + """ + return self._store.get(key, None)
      + +
      [docs] def add(self, key, value): + """ + Add new key and value. + + Args: + key (str): The name of Nattribute to add. + value (any): The value to store. + + """ + self._store[key] = value
      + +
      [docs] def remove(self, key): + """ + Remove Nattribute from storage. + + Args: + key (str): The name of the Nattribute to remove. + + """ + if key in self._store: + del self._store[key]
      + +
      [docs] def clear(self): + """ + Remove all NAttributes from handler. + + """ + self._store = {}
      + +
      [docs] def all(self, return_tuples=False): + """ + List the contents of the handler. + + Args: + return_tuples (bool, optional): Defines if the Nattributes + are returns as a list of keys or as a list of `(key, value)`. + + Returns: + nattributes (list): A list of keys `[key, key, ...]` or a + list of tuples `[(key, value), ...]` depending on the + setting of `return_tuples`. + + """ + if return_tuples: + return [(key, value) for (key, value) in self._store.items() if not key.startswith("_")] + return [key for key in self._store if not key.startswith("_")]
      @@ -1570,6 +1197,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -1588,7 +1216,6 @@ -
      develop branch
      @@ -76,12 +75,14 @@ self, key=None, category=None, value=None, strvalue=None, obj=None, attrtype=None, **kwargs ): """ - Return Attribute objects by key, by category, by value, by strvalue, by - object (it is stored on) or with a combination of those criteria. + Return Attribute objects by key, by category, by value, by + `strvalue`, by object (it is stored on) or with a combination of + those criteria. Args: - key (str, optional): The attribute's key to search for - category (str, optional): The category of the attribute(s) to search for. + key (str, optional): The attribute's key to search for. + category (str, optional): The category of the attribute(s) + to search for. value (str, optional): The attribute value to search for. Note that this is not a very efficient operation since it will query for a pickled entity. Mutually exclusive to @@ -92,13 +93,13 @@ precedence if given. obj (Object, optional): On which object the Attribute to search for is. - attrype (str, optional): An attribute-type to search for. + attrtype (str, optional): An attribute-type to search for. By default this is either `None` (normal Attributes) or `"nick"`. - **kwargs (any): Currently unused. Reserved for future use. + kwargs (any): Currently unused. Reserved for future use. Returns: - list: The matching Attributes. + attributes (list): The matching Attributes. """ dbmodel = self.model.__dbclass__.__name__.lower() @@ -216,7 +217,7 @@ to search for. obj (Object, optional): On which object the Tag to search for is. - tagtype (str, optional): One of `None` (normal tags), + tagtype (str, optional): One of None (normal tags), "alias" or "permission" global_search (bool, optional): Include all possible tags, not just tags on this object @@ -619,7 +620,7 @@ for parent in (parent for parent in parents if hasattr(parent, "path")): query = query | Q(db_typeclass_path__exact=parent.path) # actually query the database - return super().filter(query)
      + return self.filter(query) class TypeclassManager(TypedObjectManager): @@ -915,6 +916,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -933,7 +935,6 @@ -
      develop branch
      @@ -66,6 +65,8 @@ This module also contains the Managers for the respective models; inherit from these to create custom managers. +---- + """ from django.db.models import signals @@ -78,13 +79,7 @@ from django.utils.encoding import smart_str from django.utils.text import slugify -from evennia.typeclasses.attributes import ( - Attribute, - AttributeHandler, - ModelAttributeBackend, - InMemoryAttributeBackend, -) -from evennia.typeclasses.attributes import DbHolder +from evennia.typeclasses.attributes import Attribute, AttributeHandler, NAttributeHandler from evennia.typeclasses.tags import Tag, TagHandler, AliasHandler, PermissionHandler from evennia.utils.idmapper.models import SharedMemoryModel, SharedMemoryModelBase @@ -208,6 +203,35 @@ return new_class +class DbHolder(object): + """ + Holder for allowing property access of attributes. + + """ + + def __init__(self, obj, name, manager_name="attributes"): + _SA(self, name, _GA(obj, manager_name)) + _SA(self, "name", name) + + def __getattribute__(self, attrname): + if attrname == "all": + # we allow to overload our default .all + attr = _GA(self, _GA(self, "name")).get("all") + return attr if attr else _GA(self, "all") + return _GA(self, _GA(self, "name")).get(attrname) + + def __setattr__(self, attrname, value): + _GA(self, _GA(self, "name")).add(attrname, value) + + def __delattr__(self, attrname): + _GA(self, _GA(self, "name")).remove(attrname) + + def get_all(self): + return _GA(self, _GA(self, "name")).all() + + all = property(get_all) + + # # Main TypedObject abstraction # @@ -331,10 +355,8 @@ than use the one in the model. Args: - Passed through to parent. - - Keyword Args: - Passed through to parent. + *args: Passed through to parent. + **kwargs: Passed through to parent. Notes: The loading mechanism will attempt the following steps: @@ -361,7 +383,7 @@ # initialize all handlers in a lazy fashion
      [docs] @lazy_property def attributes(self): - return AttributeHandler(self, ModelAttributeBackend)
      + return AttributeHandler(self)
      [docs] @lazy_property def locks(self): @@ -381,7 +403,7 @@
      [docs] @lazy_property def nattributes(self): - return AttributeHandler(self, InMemoryAttributeBackend)
      + return NAttributeHandler(self)
      [docs] class Meta(object): """ @@ -658,7 +680,7 @@ superuser lock bypass (be careful with this one). Keyword Args: - kwar (any): Ignored, but is there to make the api + kwargs (any): Ignored, but is there to make the api consistent with the object-typeclass method access, which use it to feed to its hook methods. @@ -747,18 +769,18 @@ def __db_get(self): """ Attribute handler wrapper. Allows for the syntax + :: - ```python obj.db.attrname = value - # and + and value = obj.db.attrname - # and + and del obj.db.attrname - # and + and all_attr = obj.db.all() - # (unless there is an attribute - # named 'all', in which case that will be returned instead). - ``` + + (unless there is an attribute named 'all', in which case that will be + returned instead). """ try: @@ -769,14 +791,14 @@ # @db.setter def __db_set(self, value): - "Stop accidentally replacing the db object" + """Stop accidentally replacing the db object""" string = "Cannot assign directly to db object! " string += "Use db.attr=value instead." raise Exception(string) # @db.deleter def __db_del(self): - "Stop accidental deletion." + """Stop accidental deletion.""" raise Exception("Cannot delete the db object!") db = property(__db_get, __db_set, __db_del) @@ -788,10 +810,23 @@ # @property ndb def __ndb_get(self): """ - A non-attr_obj store (ndb: NonDataBase). Everything stored - to this is guaranteed to be cleared when a server is shutdown. - Syntax is same as for the _get_db_holder() method and - property, e.g. obj.ndb.attr = value etc. + A non-attr_obj store (NonDataBase). Everything stored to this is + guaranteed to be cleared when a server is shutdown. Syntax is same as + for the `.db` property, e.g. + :: + + obj.ndb.attrname = value + and + value = obj.ndb.attrname + and + del obj.ndb.attrname + and + all_attr = obj.ndb.all() + + What makes this preferable over just assigning properties directly on + the object is that Evennia can track caching for these properties and + for example avoid wiping objects with set `.ndb` data on cache flushes. + """ try: return self._ndb_holder @@ -896,28 +931,33 @@
      [docs] @classmethod def web_get_create_url(cls): """ + Returns the URI path for a View that allows users to create new instances of this object. - ex. Chargen = '/characters/create/' - - For this to work, the developer must have defined a named view somewhere - in urls.py that follows the format 'modelname-action', so in this case - a named view of 'character-create' would be referenced by this method. - - ex. - url(r'characters/create/', ChargenView.as_view(), name='character-create') - - If no View has been created and defined in urls.py, returns an - HTML anchor. - - This method is naive and simply returns a path. Securing access to - the actual view and limiting who can create new objects is the - developer's responsibility. - Returns: path (str): URI path to object creation page, if defined. + Examples: + :: + + Chargen = '/characters/create/' + + For this to work, the developer must have defined a named view somewhere + in urls.py that follows the format 'modelname-action', so in this case + a named view of 'character-create' would be referenced by this method. + :: + + url(r'characters/create/', ChargenView.as_view(), name='character-create') + + If no View has been created and defined in urls.py, returns an + HTML anchor. + + Notes: + This method is naive and simply returns a path. Securing access to + the actual view and limiting who can create new objects is the + developer's responsibility. + """ try: return reverse("%s-create" % slugify(cls._meta.verbose_name)) @@ -933,24 +973,21 @@ path (str): URI path to object detail page, if defined. Examples: + :: - ```python - Oscar (Character) = '/characters/oscar/1/' - ``` + Oscar (Character) = '/characters/oscar/1/' For this to work, the developer must have defined a named view somewhere in urls.py that follows the format 'modelname-action', so in this case a named view of 'character-detail' would be referenced by this method. + :: - - ```python - url(r'characters/(?P<slug>[\w\d\-]+)/(?P<pk>[0-9]+)/$', CharDetailView.as_view(), name='character-detail') - ``` If no View has been created and defined in urls.py, returns an HTML anchor. + Notes: This method is naive and simply returns a path. Securing access to the actual view and limiting who can view this object is the developer's responsibility. @@ -970,26 +1007,25 @@ object. Returns: - str: URI path to object puppet page, if defined. + path (str): URI path to object puppet page, if defined. Examples: + :: - ```python - Oscar (Character) = '/characters/oscar/1/puppet/' - ``` + Oscar (Character) = '/characters/oscar/1/puppet/' For this to work, the developer must have defined a named view somewhere in urls.py that follows the format 'modelname-action', so in this case a named view of 'character-puppet' would be referenced by this method. + :: - ```python - url(r'characters/(?P<slug>[\w\d\-]+)/(?P<pk>[0-9]+)/puppet/$', - CharPuppetView.as_view(), name='character-puppet') - ``` + url(r'characters/(?P<slug>[\w\d\-]+)/(?P<pk>[0-9]+)/puppet/$', + CharPuppetView.as_view(), name='character-puppet') If no View has been created and defined in urls.py, returns an HTML anchor. + Notes: This method is naive and simply returns a path. Securing access to the actual view and limiting who can view this object is the developer's responsibility. @@ -1010,31 +1046,29 @@ object. Returns: - str: URI path to object update page, if defined. + path (str): URI path to object update page, if defined. Examples: + :: - ```python - Oscar (Character) = '/characters/oscar/1/change/' - ``` + Oscar (Character) = '/characters/oscar/1/change/' For this to work, the developer must have defined a named view somewhere in urls.py that follows the format 'modelname-action', so in this case a named view of 'character-update' would be referenced by this method. + :: - ```python - url(r'characters/(?P<slug>[\w\d\-]+)/(?P<pk>[0-9]+)/change/$', - CharUpdateView.as_view(), name='character-update') - ``` + url(r'characters/(?P<slug>[\w\d\-]+)/(?P<pk>[0-9]+)/change/$', + CharUpdateView.as_view(), name='character-update') If no View has been created and defined in urls.py, returns an HTML anchor. + Notes: This method is naive and simply returns a path. Securing access to the actual view and limiting who can modify objects is the developer's responsibility. - """ try: return reverse( @@ -1052,27 +1086,25 @@ path (str): URI path to object deletion page, if defined. Examples: + :: - ```python - Oscar (Character) = '/characters/oscar/1/delete/' - ``` + Oscar (Character) = '/characters/oscar/1/delete/' - For this to work, the developer must have defined a named view - somewhere in urls.py that follows the format 'modelname-action', so - in this case a named view of 'character-detail' would be referenced - by this method. + For this to work, the developer must have defined a named view somewhere + in urls.py that follows the format 'modelname-action', so in this case + a named view of 'character-detail' would be referenced by this method. + :: - ```python - url(r'characters/(?P<slug>[\w\d\-]+)/(?P<pk>[0-9]+)/delete/$', - CharDeleteView.as_view(), name='character-delete') - ``` + url(r'characters/(?P<slug>[\w\d\-]+)/(?P<pk>[0-9]+)/delete/$', + CharDeleteView.as_view(), name='character-delete') - If no View has been created and defined in urls.py, returns an HTML - anchor. + If no View has been created and defined in urls.py, returns an + HTML anchor. + Notes: This method is naive and simply returns a path. Securing access to - the actual view and limiting who can delete this object is the - developer's responsibility. + the actual view and limiting who can delete this object is the developer's + responsibility. """ @@ -1113,6 +1145,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -1131,7 +1164,6 @@ -
      develop branch
      @@ -361,40 +360,6 @@ getattr(self.obj, self._m2m_fieldname).add(tagobj) self._setcache(tagstr, category, tagobj)
      -
      [docs] def has(self, tag=None, category=None, return_list=False): - """ - Checks if the given Tag (or list of Tags) exists on the object. - - Args: - tag (str or iterable): The Tag key or tags to check for. - If `None`, search by category. - category (str, optional): Limit the check to Tags with this - category (note, that `None` is the default category). - - Returns: - has_tag (bool or list): If the Tag exists on this object or not. - If `tag` was given as an iterable then the return is a list of booleans. - - Raises: - ValueError: If neither `tag` nor `category` is given. - - """ - ret = [] - category = category.strip().lower() if category is not None else None - if tag: - for tag_str in make_iter(tag): - tag_str = tag_str.strip().lower() - ret.extend(bool(tag) for tag in self._getcache(tag_str, category)) - elif category: - ret.extend(bool(tag) for tag in self._getcache(category=category)) - else: - raise ValueError("Either tag or category must be provided.") - - if return_list: - return ret - - return ret[0] if len(ret) == 1 else ret
      -
      [docs] def get(self, key=None, default=None, category=None, return_tagobj=False, return_list=False): """ Get the tag for the given key, category or combination of the two. @@ -597,6 +562,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -615,7 +581,6 @@ -
      develop branch
      @@ -43,64 +42,19 @@ """ ANSI - Gives colour to text. -Use the codes defined in the *ANSIParser* class to apply colour to text. The -`parse_ansi` function in this module parses text for markup and `strip_ansi` -removes it. +Use the codes defined in ANSIPARSER in your text +to apply colour to text according to the ANSI standard. -You should usually not need to call `parse_ansi` explicitly; it is run by -Evennia just before returning data to/from the user. Alternative markup is -possible by overriding the parser class (see also contrib/ for deprecated -markup schemes). - - -Supported standards: - -- ANSI 8 bright and 8 dark fg (foreground) colors -- ANSI 8 dark bg (background) colors -- 'ANSI' 8 bright bg colors 'faked' with xterm256 (bright bg not included in ANSI standard) -- Xterm256 - 255 fg/bg colors + 26 greyscale fg/bg colors - -## Markup - -ANSI colors: `r` ed, `g` reen, `y` ellow, `b` lue, `m` agenta, `c` yan, `n` ormal (no color). Capital -letters indicate the 'dark' variant. - -- `|r` fg bright red -- `|R` fg dark red -- `|[r` bg bright red -- `|[R` bg dark red -- `|[R|g` bg dark red, fg bright green +Examples: ```python "This is |rRed text|n and this is normal again." - ``` -Xterm256 colors are given as RGB (Red-Green-Blue), with values 0-5: - -- `|500` fg bright red -- `|050` fg bright green -- `|005` fg bright blue -- `|110` fg dark brown -- `|425` fg pink -- `|[431` bg orange - -Xterm256 greyscale: - -- `|=a` fg black -- `|=g` fg dark grey -- `|=o` fg middle grey -- `|=v` fg bright grey -- `|=z` fg white -- `|[=r` bg middle grey - -```python -"This is |500Red text|n and this is normal again." -"This is |[=jText on dark grey background" - -``` - ----- +Mostly you should not need to call `parse_ansi()` explicitly; +it is run by Evennia just before returning data to/from the +user. Depreciated example forms are available by extending +the ansi mapping. """ import functools @@ -172,7 +126,7 @@ to ANSI command sequences We also allow to escape colour codes - by prepending with an extra `|`. + by prepending with an extra |. """ @@ -1533,6 +1487,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -1551,7 +1506,6 @@ -
      develop branch
      @@ -42,22 +41,24 @@

      Source code for evennia.utils.batchprocessors

       """
       This module contains the core methods for the Batch-command- and
      -Batch-code-processors respectively. In short, these are two different ways to
      -build a game world using a normal text-editor without having to do so 'on the
      -fly' in-game. They also serve as an automatic backup so you can quickly
      -recreate a world also after a server reset. The functions in this module is
      -meant to form the backbone of a system called and accessed through game
      -commands.
      +Batch-code-processors respectively. In short, these are two different
      +ways to build a game world using a normal text-editor without having
      +to do so 'on the fly' in-game. They also serve as an automatic backup
      +so you can quickly recreate a world also after a server reset. The
      +functions in this module is meant to form the backbone of a system
      +called and accessed through game commands.
       
      -The Batch-command processor is the simplest. It simply runs a list of in-game
      -commands in sequence by reading them from a text file. The advantage of this is
      -that the builder only need to remember the normal in-game commands. They are
      -also executing with full permission checks etc, making it relatively safe for
      -builders to use. The drawback is that in-game there is really a
      -builder-character walking around building things, and it can be important to
      -create rooms and objects in the right order, so the character can move between
      -them. Also objects that affects players (such as mobs, dark rooms etc) will
      -affect the building character too, requiring extra care to turn off/on.
      +The Batch-command processor is the simplest. It simply runs a list of
      +in-game commands in sequence by reading them from a text file. The
      +advantage of this is that the builder only need to remember the normal
      +in-game commands. They are also executing with full permission checks
      +etc, making it relatively safe for builders to use. The drawback is
      +that in-game there is really a builder-character walking around
      +building things, and it can be important to create rooms and objects
      +in the right order, so the character can move between them. Also
      +objects that affects players (such as mobs, dark rooms etc) will
      +affect the building character too, requiring extra care to turn
      +off/on.
       
       The Batch-code processor is a more advanced system that accepts full
       Python code, executing in chunks. The advantage of this is much more
      @@ -71,7 +72,8 @@
       recommended that the batch-code processor is limited only to
       superusers or highly trusted staff.
       
      -# Batch-command processor file syntax
      +Batch-Command processor file syntax
      +-----------------------------------
       
       The batch-command processor accepts 'batchcommand files' e.g
       `batch.ev`, containing a sequence of valid Evennia commands in a
      @@ -79,39 +81,31 @@
       had been run at the game prompt.
       
       Each Evennia command must be delimited by a line comment to mark its
      -end.
      -
      -::
      -
      -    look
      -    # delimiting comment
      -    create/drop box
      -    # another required comment
      -
      -One can also inject another batchcmdfile:
      -
      -::
      -
      -    #INSERT path.batchcmdfile
      -
      -This way entire game worlds can be created and planned offline; it is
      +end. This way entire game worlds can be created and planned offline; it is
       especially useful in order to create long room descriptions where a
       real offline text editor is often much better than any online text
       editor or prompt.
       
      -## Example of batch.ev file:
      +There is only one batchcommand-specific entry to use in a batch-command
      +files (all others are just like in-game commands):
       
      +- `#INSERT path.batchcmdfile` - this as the first entry on a line will
      +  import and run a batch.ev file in this position, as if it was
      +  written in this file.
      +
      +
      +Example of batch.ev file:
       ::
       
           # batch file
           # all lines starting with # are comments; they also indicate
           # that a command definition is over.
       
      -    create box
      +    @create box
       
           # this comment ends the @create command.
       
      -    set box/desc = A large box.
      +    @set box/desc = A large box.
       
           Inside are some scattered piles of clothing.
       
      @@ -123,22 +117,25 @@
           # is ignored.  An empty line in the command definition is parsed as a \n
           # (so two empty lines becomes a new paragraph).
       
      -    teleport #221
      +    @teleport #221
       
           # (Assuming #221 is a warehouse or something.)
           # (remember, this comment ends the @teleport command! Don'f forget it)
       
           # Example of importing another file at this point.
      -    #IMPORT examples.batch
      +    #INSERT examples.batch
       
      -    drop box
      +    @drop box
       
           # Done, the box is in the warehouse! (this last comment is not necessary to
      -    # close the drop command since it's the end of the file)
      +    # close the @drop command since it's the end of the file)
      +
       
       An example batch file is `contrib/examples/batch_example.ev`.
       
      -# Batch-code processor file syntax
      +
      +Batch-Code processor file syntax
      +--------------------------------
       
       The Batch-code processor accepts full python modules (e.g. `batch.py`)
       that looks identical to normal Python files. The difference from
      @@ -172,14 +169,13 @@
       Importing works as normal. The following variables are automatically
       made available in the script namespace.
       
      -- `caller` - The object executing the batchscript
      +- `caller` -  The object executing the batchscript
       - `DEBUG` - This is a boolean marking if the batchprocessor is running
      -            in debug mode. It can be checked to e.g. delete created objects
      -            when running a CODE block multiple times during testing.
      -            (avoids creating a slew of same-named db objects)
      -
      -## Example batch.py file
      +  in debug mode. It can be checked to e.g. delete created objects
      +  when running a CODE block multiple times during testing.
      +  (avoids creating a slew of same-named db objects)
       
      +Example batch.py file:
       ::
       
           #HEADER
      @@ -208,6 +204,8 @@
       
           script = create.create_script()
       
      +----
      +
       """
       import re
       import codecs
      @@ -245,7 +243,7 @@
               file_ending (str): The file ending of this file (.ev or .py)
       
           Returns:
      -        text (str): The text content of the batch file.
      +        str: The text content of the batch file.
       
           Raises:
               IOError: If problems reading file.
      @@ -292,30 +290,22 @@
       
       
      [docs] def parse_file(self, pythonpath): """ - This parses the lines of a batch-command-file. + This parses the lines of a batchfile according to the following + rules: - Args: - pythonpath (str): The dot-python path to the file. - - Returns: - list: A list of all parsed commands with arguments, as strings. - - Notes: - Parsing follows the following rules: - - 1. A `#` at the beginning of a line marks the end of the command before - it. It is also a comment and any number of # can exist on - subsequent lines (but not inside comments). - 2. #INSERT at the beginning of a line imports another - batch-cmd file file and pastes it into the batch file as if - it was written there. - 3. Commands are placed alone at the beginning of a line and their - arguments are considered to be everything following (on any - number of lines) until the next comment line beginning with #. - 4. Newlines are ignored in command definitions - 5. A completely empty line in a command line definition is condered - a newline (so two empty lines is a paragraph). - 6. Excess spaces and indents inside arguments are stripped. + 1. `#` at the beginning of a line marks the end of the command before + it. It is also a comment and any number of # can exist on + subsequent lines (but not inside comments). + 2. `#INSERT` at the beginning of a line imports another + batch-cmd file file and pastes it into the batch file as if + it was written there. + 3. Commands are placed alone at the beginning of a line and their + arguments are considered to be everything following (on any + number of lines) until the next comment line beginning with #. + 4. Newlines are ignored in command definitions + 5. A completely empty line in a command line definition is condered + a newline (so two empty lines is a paragraph). + 6. Excess spaces and indents inside arguments are stripped. """ @@ -364,23 +354,21 @@
      [docs] def parse_file(self, pythonpath): """ - This parses the lines of a batch-code file + This parses the lines of a batchfile according to the following + rules: Args: pythonpath (str): The dot-python path to the file. Returns: - list: A list of all `#CODE` blocks, each with - prepended `#HEADER` block data. If no `#CODE` - blocks were found, this will be a list of one element - containing all code in the file (so a normal Python file). + codeblocks (list): A list of all #CODE blocks, each with + prepended #HEADER data. If no #CODE blocks were found, + this will be a list of one element. Notes: - Parsing is done according to the following rules: - 1. Code before a #CODE/HEADER block are considered part of - the first code/header block or is the ONLY block if no - `#CODE/HEADER` blocks are defined. + the first code/header block or is the ONLY block if no + #CODE/HEADER blocks are defined. 2. Lines starting with #HEADER starts a header block (ends other blocks) 3. Lines starting with #CODE begins a code block (ends other blocks) 4. Lines starting with #INSERT are on form #INSERT filename. Code from @@ -389,7 +377,6 @@ 5. Code after the last block is considered part of the last header/code block - """ text = "".join(read_batchfile(pythonpath, file_ending=".py")) @@ -506,6 +493,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -524,7 +512,6 @@ -
      develop branch
      @@ -309,6 +308,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -327,7 +327,6 @@ -
      develop branch
      @@ -41,19 +40,27 @@

      Source code for evennia.utils.create

       """
      -This module gathers all the essential database-creation functions for the game
      -engine's various object types.
      +This module gathers all the essential database-creation
      +functions for the game engine's various object types.
       
      -Only objects created 'stand-alone' are in here. E.g. object Attributes are
      -always created through their respective objects handlers.
      +Only objects created 'stand-alone' are in here, e.g. object Attributes
      +are always created directly through their respective objects.
       
      -Each `creation_*` function also has an alias named for the entity being created,
      -such as create_object() and object(). This is for consistency with the
      -utils.search module and allows you to do the shorter `create.object()`.
      +Each creation_* function also has an alias named for the entity being
      +created, such as create_object() and object().  This is for
      +consistency with the utils.search module and allows you to do the
      +shorter "create.object()".
       
      -The respective object managers hold more methods for manipulating and searching
      -objects already existing in the database.
      +The respective object managers hold more methods for manipulating and
      +searching objects already existing in the database.
       
      +Models covered:
      + Objects
      + Scripts
      + Help
      + Message
      + Channel
      + Accounts
       """
       from django.conf import settings
       from django.db import IntegrityError
      @@ -115,20 +122,21 @@
           Keyword Args:
               typeclass (class or str): Class or python path to a typeclass.
               key (str): Name of the new object. If not set, a name of
      -            `#dbref` will be set.
      +            #dbref will be set.
               home (Object or str): Obj or #dbref to use as the object's
                   home location.
               permissions (list): A list of permission strings or tuples (permstring, category).
               locks (str): one or more lockstrings, separated by semicolons.
               aliases (list): A list of alternative keys or tuples (aliasstring, category).
               tags (list): List of tag keys or tuples (tagkey, category) or (tagkey, category, data).
      -        destination (Object or str): Obj or #dbref to use as an Exit's target.
      +        destination (Object or str): Obj or #dbref to use as an Exit's
      +            target.
               report_to (Object): The object to return error messages to.
               nohome (bool): This allows the creation of objects without a
                   default home location; only used when creating the default
                   location itself or during unittests.
               attributes (list): Tuples on the form (key, value) or (key, value, category),
      -            (key, value, lockstring) or (key, value, lockstring, default_access).
      +           (key, value, lockstring) or (key, value, lockstring, default_access).
                   to set as Attributes on the new object.
               nattributes (list): Non-persistent tuples on the form (key, value). Note that
                   adding this rarely makes sense since this data will not survive a reload.
      @@ -262,8 +270,9 @@
               report_to (Object): The object to return error messages to.
               desc (str): Optional description of script
               tags (list): List of tags or tuples (tag, category).
      -        attributes (list): List if tuples (key, value) or (key, value, category)
      -           (key, value, lockstring) or (key, value, lockstring, default_access).
      +        attributes (list): List of tuples `(key, value)`, `(key, value, category)`,
      +           `(key, value, category, lockstring)` or
      +           `(key, value, category, lockstring, default_access)`.
       
           Returns:
               script (obj): An instance of the script created
      @@ -651,6 +660,7 @@
         
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -669,7 +679,6 @@ -
      develop branch
      @@ -658,7 +657,7 @@ that saves assigned data to the database. Skip if not serializing onto a given object. If db_obj is given, this function will convert lists, dicts and sets to their - _SaverList, _SaverDict and _SaverSet counterparts. + `_SaverList`, `_SaverDict` and `_SaverSet` counterparts. Returns: data (any): Unpickled data. @@ -823,6 +822,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -841,7 +841,6 @@ -
      develop branch
      @@ -43,49 +42,54 @@ """ EvEditor (Evennia Line Editor) -This implements an advanced line editor for editing longer texts in-game. The -editor mimics the command mechanisms of the "VI" editor (a famous line-by-line -editor) as far as reasonable. +This implements an advanced line editor for editing longer texts +in-game. The editor mimics the command mechanisms of the "VI" editor +(a famous line-by-line editor) as far as reasonable. Features of the editor: -- undo/redo. -- edit/replace on any line of the buffer. -- search&replace text anywhere in buffer. -- formatting of buffer, or selection, to certain width + indentations. -- allow to echo the input or not, depending on your client. -- in-built help + - undo/redo. + - edit/replace on any line of the buffer. + - search&replace text anywhere in buffer. + - formatting of buffer, or selection, to certain width + indentations. + - allow to echo the input or not, depending on your client. -To use the editor, just import EvEditor from this module and initialize it: +To use the editor, just import EvEditor from this module +and initialize it: +:: -```python -from evennia.utils.eveditor import EvEditor + from evennia.utils.eveditor import EvEditor + EvEditor(caller, loadfunc=None, savefunc=None, quitfunc=None, key="", persistent=True) -# set up an editor to edit the caller's 'desc' Attribute -def _loadfunc(caller): - return caller.db.desc +- `caller` is the user of the editor, the one to see all feedback. +- `loadfunc(caller)` is called when the editor is first launched; the + return from this function is loaded as the starting buffer in the + editor. +- `safefunc(caller, buffer)` is called with the current buffer when + saving in the editor. The function should return True/False depending + on if the saving was successful or not. +- `quitfunc(caller)` is called when the editor exits. If this is given, + no automatic quit messages will be given. +- `key` is an optional identifier for the editing session, to be + displayed in the editor. +- `persistent` means the editor state will be saved to the database making it + survive a server reload. Note that using this mode, the load- save- + and quit-funcs must all be possible to pickle - notable unusable + callables are class methods and functions defined inside other + functions. With persistent=False, no such restriction exists. +- `code` set to True activates features on the EvEditor to enter Python code. -def _savefunc(caller, buffer): - caller.db.desc = buffer.strip() - return True +In addition, the EvEditor can be used to enter Python source code, +and offers basic handling of indentation. -def _quitfunc(caller): - caller.msg("Custom quit message") - -# start the editor -EvEditor(caller, loadfunc=None, savefunc=None, quitfunc=None, key="", - persistent=True, code=False) -``` - -The editor can also be used to format Python code and be made to -survive a reload. See the `EvEditor` class for more details. +---- """ import re from django.conf import settings from evennia import Command, CmdSet -from evennia.utils import is_iter, fill, dedent, logger, justify, to_str +from evennia.utils import is_iter, fill, dedent, logger, justify, to_str, utils from evennia.utils.ansi import raw from evennia.commands import cmdhandler @@ -95,6 +99,7 @@ _CMD_NOINPUT = cmdhandler.CMD_NOINPUT _RE_GROUP = re.compile(r"\".*?\"|\'.*?\'|\S*") +_COMMAND_DEFAULT_CLASS = utils.class_from_module(settings.COMMAND_DEFAULT_CLASS) # use NAWS in the future? _DEFAULT_WIDTH = settings.CLIENT_DEFAULT_WIDTH @@ -208,7 +213,7 @@ # ------------------------------------------------------------- -
      [docs]class CmdSaveYesNo(Command): +
      [docs]class CmdSaveYesNo(_COMMAND_DEFAULT_CLASS): """ Save the editor state on quit. This catches nomatches (defaults to Yes), and avoid saves only if @@ -239,7 +244,7 @@ """Stores the yesno question""" key = "quitsave_yesno" - priority = 1 + priority = 150 # override other cmdsets. mergetype = "Replace"
      [docs] def at_cmdset_creation(self): @@ -254,7 +259,7 @@ # ------------------------------------------------------------- -
      [docs]class CmdEditorBase(Command): +
      [docs]class CmdEditorBase(_COMMAND_DEFAULT_CLASS): """ Base parent for editor commands """ @@ -266,18 +271,17 @@
      [docs] def parse(self): """ - Handles pre-parsing. Editor commands are on the form - - :: + Handles pre-parsing + Usage: :cmd [li] [w] [txt] Where all arguments are optional. - - `li` - line number (int), starting from 1. This could also - be a range given as <l>:<l>. - - `w` - word(s) (string), could be encased in quotes. - - `txt` - extra text (string), could be encased in quotes. + - li - line number (int), starting from 1. This could also + be a range given as <l>:<l>. + - w - word(s) (string), could be encased in quotes. + - txt - extra text (string), could be encased in quotes. """ @@ -1181,6 +1185,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -1199,7 +1204,6 @@ -
      develop branch
      @@ -55,34 +54,32 @@ object when displaying the form. Example of input file `testform.py`: +:: -```python -FORMCHAR = "x" -TABLECHAR = "c" + FORMCHAR = "x" + TABLECHAR = "c" -FORM = ''' -.------------------------------------------------. -| | -| Name: xxxxx1xxxxx Player: xxxxxxx2xxxxxxx | -| xxxxxxxxxxx | -| | - >----------------------------------------------< -| | -| Desc: xxxxxxxxxxx STR: x4x DEX: x5x | -| xxxxx3xxxxx INT: x6x STA: x7x | -| xxxxxxxxxxx LUC: x8x MAG: x9x | -| | - >----------------------------------------------< -| | | -| cccccccc | ccccccccccccccccccccccccccccccccccc | -| cccccccc | ccccccccccccccccccccccccccccccccccc | -| cccAcccc | ccccccccccccccccccccccccccccccccccc | -| cccccccc | ccccccccccccccccccccccccccccccccccc | -| cccccccc | cccccccccccccccccBccccccccccccccccc | -| | | -------------------------------------------------- -''' -``` + FORM = ''' + .------------------------------------------------. + | | + | Name: xxxxx1xxxxx Player: xxxxxxx2xxxxxxx | + | xxxxxxxxxxx | + | | + >----------------------------------------------< + | | + | Desc: xxxxxxxxxxx STR: x4x DEX: x5x | + | xxxxx3xxxxx INT: x6x STA: x7x | + | xxxxxxxxxxx LUC: x8x MAG: x9x | + | | + >----------------------------------------------< + | | | + | cccccccc | ccccccccccccccccccccccccccccccccccc | + | cccccccc | ccccccccccccccccccccccccccccccccccc | + | cccAcccc | ccccccccccccccccccccccccccccccccccc | + | cccccccc | ccccccccccccccccccccccccccccccccccc | + | cccccccc | cccccccccccccccccBccccccccccccccccc | + | | | + ------------------------------------------------- The first line of the `FORM` string is ignored. The forms and table markers must mark out complete, unbroken rectangles, each containing @@ -96,8 +93,8 @@ Use as follows: +:: -```python from evennia import EvForm, EvTable # create a new form from the template @@ -129,10 +126,9 @@ "B": tableB}) print(form) -``` + This produces the following result: - :: .------------------------------------------------. @@ -156,6 +152,7 @@ | | | ------------------------------------------------ + The marked forms have been replaced with EvCells of text and with EvTables. The form can be updated by simply re-applying `form.map()` with the updated data. @@ -233,16 +230,15 @@
      [docs] def __init__(self, filename=None, cells=None, tables=None, form=None, **kwargs): """ - Initiate the form + Initiate the form. Keyword Args: filename (str): Path to template file. - cells (dict): A dictionary mapping `{id: text}` - tables (dict): A dictionary mapping `{id: EvTable}`. - form (dict): A dictionary - `{"FORMCHAR":char, "TABLECHAR":char, "FORM":templatestring}`. - If this is given, filename is not read. - + cells (dict): A dictionary mapping of `{id:text}`. + tables (dict): A dictionary mapping of `{id:EvTable}`. + form (dict): A dictionary of + `{"FORMCHAR":char, "TABLECHAR":char, "FORM":templatestring}`. + if this is given, filename is not read. Notes: Other kwargs are fed as options to the EvCells and EvTables (see `evtable.EvCell` and `evtable.EvTable` for more info). @@ -535,6 +531,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -553,7 +550,6 @@ -
      develop branch
      @@ -41,14 +40,12 @@

      Source code for evennia.utils.evmenu

       """
      -EvMenu
      -
      -This implements a full menu system for Evennia.
      +The EvMenu is a full in-game menu system for Evennia.
       
       To start the menu, just import the EvMenu class from this module.
      -Example usage:
       
      -```python
      +Example usage:
      +::
       
           from evennia.utils.evmenu import EvMenu
       
      @@ -56,11 +53,10 @@
                startnode="node1",
                cmdset_mergetype="Replace", cmdset_priority=1,
                auto_quit=True, cmd_on_exit="look", persistent=True)
      -```
       
       Where `caller` is the Object to use the menu on - it will get a new
      -cmdset while using the Menu. The menu_module_path is the python path
      -to a python module containing function definitions.  By adjusting the
      +cmdset while using the Menu. The `menu_module_path` is the python path
      +to a python module containing function definitions. By adjusting the
       keyword options of the Menu() initialization call you can start the
       menu at different places in the menu definition file, adjust if the
       menu command should overload the normal commands or not, etc.
      @@ -74,8 +70,7 @@
       
       The menu is defined in a module (this can be the same module as the
       command definition too) with function definitions:
      -
      -```python
      +::
       
           def node1(caller):
               # (this is the start node if called like above)
      @@ -89,9 +84,8 @@
           def another_node(caller, input_string, **kwargs):
               # code
               return text, options
      -```
       
      -Where caller is the object using the menu and input_string is the
      +Where `caller` is the object using the menu and input_string is the
       command entered by the user on the *previous* node (the command
       entered to get to this node). The node function code will only be
       executed once per node-visit and the system will accept nodes with
      @@ -108,42 +102,42 @@
       menu is immediately exited and the default "look" command is called.
       
       - `text` (str, tuple or None): Text shown at this node. If a tuple, the
      -   second element in the tuple is a help text to display at this
      -   node when the user enters the menu help command there.
      +  second element in the tuple is a help text to display at this
      +  node when the user enters the menu help command there.
       - `options` (tuple, dict or None): If `None`, this exits the menu.
         If a single dict, this is a single-option node. If a tuple,
      -  it should be a tuple of option dictionaries. Option dicts have the following keys:
      +  it should be a tuple of option dictionaries. Option dicts have
      +  the following keys:
       
         - `key` (str or tuple, optional): What to enter to choose this option.
      -    If a tuple, it must be a tuple of strings, where the first string is the
      -    key which will be shown to the user and the others are aliases.
      -    If unset, the options' number will be used. The special key `_default`
      -    marks this option as the default fallback when no other option matches
      -    the user input. There can only be one `_default` option per node. It
      -    will not be displayed in the list.
      +      If a tuple, it must be a tuple of strings, where the first string is the
      +      key which will be shown to the user and the others are aliases.
      +      If unset, the options' number will be used. The special key `_default`
      +      marks this option as the default fallback when no other option matches
      +      the user input. There can only be one `_default` option per node. It
      +      will not be displayed in the list.
         - `desc` (str, optional): This describes what choosing the option will do.
         - `goto` (str, tuple or callable): If string, should be the name of node to go to
      -    when this option is selected. If a callable, it has the signature
      -    `callable(caller[,raw_input][,**kwargs])`. If a tuple, the first element
      -    is the callable and the second is a dict with the `**kwargs` to pass to
      -    the callable. Those kwargs will also be passed into the next node if possible.
      -    Such a callable should return either a str or a (str, dict), where the
      -    string is the name of the next node to go to and the dict is the new,
      -    (possibly modified) kwarg to pass into the next node. If the callable returns
      -    None or the empty string, the current node will be revisited.
      +      when this option is selected. If a callable, it has the signature
      +      `callable(caller[,raw_input][,**kwargs])`. If a tuple, the first element
      +      is the callable and the second is a dict with the kwargs to pass to
      +      the callable. Those kwargs will also be passed into the next node if possible.
      +      Such a callable should return either a str or a (str, dict), where the
      +      string is the name of the next node to go to and the dict is the new,
      +      (possibly modified) kwarg to pass into the next node. If the callable returns
      +      None or the empty string, the current node will be revisited.
         - `exec` (str, callable or tuple, optional): This takes the same input as `goto` above
      -    and runs before it. If given a node name, the node will be executed but will not
      -    be considered the next node. If node/callback returns str or (str, dict), these will
      -    replace the `goto` step (`goto` callbacks will not fire), with the string being the
      -    next node name and the optional dict acting as the kwargs-input for the next node.
      -    If an exec callable returns the empty string (only), the current node is re-run.
      +      and runs before it. If given a node name, the node will be executed but will not
      +      be considered the next node. If node/callback returns str or (str, dict), these will
      +      replace the `goto` step (`goto` callbacks will not fire), with the string being the
      +      next node name and the optional dict acting as the kwargs-input for the next node.
      +      If an exec callable returns `None`, the current node is re-run.
       
      -If `key` is not given, the option will automatically be identified by
      +If key is not given, the option will automatically be identified by
       its number 1..N.
       
       Example:
      -
      -```python
      +::
       
           # in menu_module.py
       
      @@ -179,11 +173,8 @@
               text = "This ends the menu since there are no options."
               return text, None
       
      -```
      -
       When starting this menu with  `Menu(caller, "path.to.menu_module")`,
       the first node will look something like this:
      -
       ::
       
           This is a node text
      @@ -202,8 +193,9 @@
       reaching a node without any options.
       
       
      -For a menu demo, import `CmdTestMenu` from this module and add it to
      -your default cmdset. Run it with this module, like `testmenu evennia.utils.evmenu`.
      +For a menu demo, import CmdTestMenu from this module and add it to
      +your default cmdset. Run it with this module, like `testmenu
      +evennia.utils.evmenu`.
       
       
       ## Menu generation from template string
      @@ -219,13 +211,10 @@
       For maximum flexibility you can inject normally-created nodes in the menu tree
       before passing it to EvMenu. If that's not needed, you can also create a menu
       in one step with:
      -
      -```python
      +::
       
           evmenu.template2menu(caller, menu_template, goto_callables)
       
      -```
      -
       The `goto_callables` is a mapping `{"funcname": callable, ...}`, where each
       callable must be a module-global function on the form
       `funcname(caller, raw_string, **kwargs)` (like any goto-callable). The
      @@ -303,9 +292,9 @@
       key:values will be converted to strings/numbers with literal_eval before passed
       into the callable.
       
      -The \\> option takes a glob or regex to perform different actions depending
      -on user input. Make sure to sort these in increasing order of generality since
      -they will be tested in sequence.
      +The "> " option takes a glob or regex to perform different actions depending on user
      +input. Make sure to sort these in increasing order of generality since they
      +will be tested in sequence.
       
       ----
       
      @@ -584,7 +573,9 @@
                       by default in all nodes of the menu. This will print out the current state of
                       the menu. Deactivate for production use! When the debug flag is active, the
                       `persistent` flag is deactivated.
      -            **kwargs: All kwargs will become initialization variables on `caller.ndb._menutree`,
      +
      +        Keyword Args:
      +            any (any): All kwargs will become initialization variables on `caller.ndb._evmenu`,
                       to be available at run.
       
               Raises:
      @@ -784,6 +775,30 @@
               Call a node-like callable, with a variable number of raw_string, *args, **kwargs, all of
               which should work also if not present (only `caller` is always required). Return its result.
       
      +        Viable node-like callable forms:
      +        ::
      +
      +            _callname(caller)
      +            _callname(caller, raw_string)
      +            _callname(caller, **kwargs)
      +            _callname(caller, raw_string, **kwargs)
      +
      +        If this is a node:
      +
      +        - `caller` is the one using the menu.
      +        - `raw_string` is the users exact input on the *previous* node.
      +        - `**kwargs` is either passed through the previous node or returned
      +          along with the node name from the goto-callable leading to this node.
      +
      +        If this is a goto-callable:
      +
      +        - `caller` is the one using the menu.
      +        - `raw_string` is the user's exact input when chosing the option that triggered
      +          this goto-callable.
      +        - `**kwargs` is any extra dict passed to the callable in the option
      +          definition, or (if no explit kwarg was given to the callable) the
      +          previous node's kwarg, if any.
      +
               """
               try:
                   try:
      @@ -988,7 +1003,8 @@
                   raw_string (str): The raw default string entered on the
                       previous node (only used if the node accepts it as an
                       argument)
      -            **kwargs: Extra arguments to goto callables.
      +        Keyword Args:
      +            any: Extra arguments to goto callables.
       
               """
       
      @@ -1361,29 +1377,33 @@
               option_generator (callable or list): A list of strings indicating the options, or a callable
                   that is called as option_generator(caller) to produce such a list.
               select (callable or str, optional): Node to redirect a selection to. Its `**kwargs` will
      -            contain the `available_choices` list and `selection` will hold one of the elements in
      -            that list.  If a callable, it will be called as
      -            `select(caller, menuchoice, **kwargs)` where menuchoice is the chosen option as a
      -            string and `available_choices` is a kwarg mapping the option keys to the choices
      -            offered by the option_generator. The callable whould return the name of the target node
      -            to goto after this selection (or None to repeat the list-node). Note that if this is not
      -            given, the decorated node must itself provide a way to continue from the node!
      +            contain the `available_choices` list and `selection` will hold one
      +            of the elements in that list.  If a callable, it will be called as
      +            `select(caller, menuchoice, **kwargs)` where menuchoice is the
      +            chosen option as a string and `available_choices` is the list of available
      +            options offered by the option_generator. The callable whould return
      +            the name of the target node to goto after this selection (or None to repeat the
      +            list-node).  Note that if this is not given, the decorated node
      +            must itself provide a way to continue from the node!
               pagesize (int): How many options to show per page.
       
           Example:
      +        ::
       
      -        ```python
      -        list_node(['foo', 'bar'], select)
      -        def node_index(caller):
      -            text = "describing the list"
      -            return text, []
      -        ```
      +            def _selectfunc(caller, menuchoice, **kwargs):
      +                # menuchoice would be either 'foo' or 'bar' here
      +                # kwargs['available_choices'] would be the list ['foo', 'bar']
      +                return "the_next_node_to_go_to"
      +
      +            @list_node(['foo', 'bar'], _selectfunc)
      +            def node_index(caller):
      +                text = "describing the list"
      +                return text, []
       
           Notes:
      -        All normal `goto` or `exec` callables returned from the decorated nodes
      -        will, if they accept `**kwargs`, get a new kwarg 'available_choices'
      -        injected. These are the ordered list of named options (descs) visible
      -        on the current node page.
      +        All normal `goto` or `exec` callables returned from the decorated nodes will, if they accept
      +        `**kwargs`, get a new kwarg `available_choices` injected. This is the ordered list of named
      +        options (descs) visible on the current node page.
       
           """
       
      @@ -1604,51 +1624,60 @@
       
       
      [docs]def get_input(caller, prompt, callback, session=None, *args, **kwargs): """ - This is a helper function for easily request input from the caller. + This is a helper function for easily request input from + the caller. Args: - caller (Account or Object): The entity being asked the question. This - should usually be an object controlled by a user. - prompt (str): This text will be shown to the user, in order to let them - know their input is needed. + caller (Account or Object): The entity being asked + the question. This should usually be an object + controlled by a user. + prompt (str): This text will be shown to the user, + in order to let them know their input is needed. callback (callable): A function that will be called - when the user enters a reply. It must take three arguments: the - `caller`, the `prompt` text and the `result` of the input given by - the user. If the callback doesn't return anything or return False, - the input prompt will be cleaned up and exited. If returning True, - the prompt will remain and continue to accept input. + when the user enters a reply. It must take three + arguments: the `caller`, the `prompt` text and the + `result` of the input given by the user. If the + callback doesn't return anything or return False, + the input prompt will be cleaned up and exited. If + returning True, the prompt will remain and continue to + accept input. session (Session, optional): This allows to specify the - session to send the prompt to. It's usually only needed if `caller` - is an Account in multisession modes greater than 2. The session is - then updated by the command and is available (for example in - callbacks) through `caller.ndb.getinput._session`. - *args (any): Extra arguments to pass to `callback`. To utilise `*args` - (and `**kwargs`), a value for the `session` argument must also be - provided. - **kwargs (any): Extra kwargs to pass to `callback`. + session to send the prompt to. It's usually only + needed if `caller` is an Account in multisession modes + greater than 2. The session is then updated by the + command and is available (for example in callbacks) + through `caller.ndb.getinput._session`. + args, kwargs (optional): Extra arguments will be + passed to the fall back function as a list 'args' + and all keyword arguments as a dictionary 'kwargs'. + To utilise `*args` and `**kwargs`, a value for the + session argument must be provided (None by default) + and the callback function must take `*args` and + `**kwargs` as arguments. Raises: RuntimeError: If the given callback is not callable. Notes: - The result value sent to the callback is raw and not processed in any - way. This means that you will get the ending line return character from - most types of client inputs. So make sure to strip that before doing a - comparison. + The result value sent to the callback is raw and not + processed in any way. This means that you will get + the ending line return character from most types of + client inputs. So make sure to strip that before + doing a comparison. - When the prompt is running, a temporary object `caller.ndb._getinput` - is stored; this will be removed when the prompt finishes. + When the prompt is running, a temporary object + `caller.ndb._getinput` is stored; this will be removed + when the prompt finishes. + If you need the specific Session of the caller (which + may not be easy to get if caller is an account in higher + multisession modes), then it is available in the + callback through `caller.ndb._getinput._session`. - If you need the specific Session of the caller (which may not be easy - to get if caller is an account in higher multisession modes), then it - is available in the callback through `caller.ndb._getinput._session`. - This is why the `session` is required as input. - - It's not recommended to 'chain' `get_input` into a sequence of - questions. This will result in the caller stacking ever more instances - of InputCmdSets. While they will all be cleared on concluding the - get_input chain, EvMenu should be considered for anything beyond a - single question. + Chaining get_input functions will result in the caller + stacking ever more instances of InputCmdSets. Whilst + they will all be cleared on concluding the get_input + chain, EvMenu should be considered for anything beyond + a single question. """ if not callable(callback): @@ -1672,9 +1701,7 @@ _RE_NODE = re.compile(r"##\s*?NODE\s+?(?P<nodename>\S[\S\s]*?)$", re.I + re.M) _RE_OPTIONS_SEP = re.compile(r"##\s*?OPTIONS\s*?$", re.I + re.M) _RE_CALLABLE = re.compile(r"\S+?\(\)", re.I + re.M) -_RE_CALLABLE = re.compile( - r"(?P<funcname>\S+?)(?:\((?P<kwargs>[\S\s]+?)\)|\(\))", re.I + re.M -) +_RE_CALLABLE = re.compile(r"(?P<funcname>\S+?)(?:\((?P<kwargs>[\S\s]+?)\)|\(\))", re.I + re.M) _HELP_NO_OPTION_MATCH = _("Choose an option or try 'help'.") @@ -1688,8 +1715,8 @@ # Input/option/goto handler functions that allows for dynamically generated # nodes read from the menu template. -def _process_callable(caller, goto, goto_callables, raw_string, - current_nodename, kwargs): + +def _process_callable(caller, goto, goto_callables, raw_string, current_nodename, kwargs): """ Central helper for parsing a goto-callable (`funcname(**kwargs)`) out of the right-hand-side of the template options and map this to an actual @@ -1705,12 +1732,18 @@ for kwarg in gotokwargs.split(","): if kwarg and "=" in kwarg: key, value = [part.strip() for part in kwarg.split("=", 1)] - if key in ("evmenu_goto", "evmenu_gotomap", "_current_nodename", - "evmenu_current_nodename", "evmenu_goto_callables"): + if key in ( + "evmenu_goto", + "evmenu_gotomap", + "_current_nodename", + "evmenu_current_nodename", + "evmenu_goto_callables", + ): raise RuntimeError( f"EvMenu template error: goto-callable '{goto}' uses a " f"kwarg ({kwarg}) that is reserved for the EvMenu templating " - "system. Rename the kwarg.") + "system. Rename the kwarg." + ) try: key = literal_eval(key) except ValueError: @@ -1737,8 +1770,7 @@ goto = kwargs["evmenu_goto"] goto_callables = kwargs["evmenu_goto_callables"] current_nodename = kwargs["evmenu_current_nodename"] - return _process_callable(caller, goto, goto_callables, raw_string, - current_nodename, kwargs) + return _process_callable(caller, goto, goto_callables, raw_string, current_nodename, kwargs) def _generated_input_goto_func(caller, raw_string, **kwargs): @@ -1758,13 +1790,15 @@ # start with glob patterns for pattern, goto in gotomap.items(): if fnmatch(raw_string.lower(), pattern): - return _process_callable(caller, goto, goto_callables, raw_string, - current_nodename, kwargs) + return _process_callable( + caller, goto, goto_callables, raw_string, current_nodename, kwargs + ) # no glob pattern match; try regex for pattern, goto in gotomap.items(): if pattern and re.match(pattern, raw_string.lower(), flags=re.I + re.M): - return _process_callable(caller, goto, goto_callables, raw_string, - current_nodename, kwargs) + return _process_callable( + caller, goto, goto_callables, raw_string, current_nodename, kwargs + ) # no match, show error raise EvMenuGotoAbortMessage(_HELP_NO_OPTION_MATCH) @@ -1795,6 +1829,7 @@ dict: A `{"node": nodefunc}` menutree suitable to pass into EvMenu. """ + def _validate_kwarg(goto, kwarg): """ Validate goto-callable kwarg is on correct form. @@ -1804,14 +1839,21 @@ f"EvMenu template error: goto-callable '{goto}' has a " f"non-kwarg argument ({kwarg}). All callables in the " "template must have only keyword-arguments, or no " - "args at all.") + "args at all." + ) key, _ = [part.strip() for part in kwarg.split("=", 1)] - if key in ("evmenu_goto", "evmenu_gotomap", "_current_nodename", - "evmenu_current_nodename", "evmenu_goto_callables"): + if key in ( + "evmenu_goto", + "evmenu_gotomap", + "_current_nodename", + "evmenu_current_nodename", + "evmenu_goto_callables", + ): raise RuntimeError( f"EvMenu template error: goto-callable '{goto}' uses a " f"kwarg ({kwarg}) that is reserved for the EvMenu templating " - "system. Rename the kwarg.") + "system. Rename the kwarg." + ) def _parse_options(nodename, optiontxt, goto_callables): """ @@ -1841,7 +1883,7 @@ if match: kwargs = match.group("kwargs") if kwargs: - for kwarg in kwargs.split(','): + for kwarg in kwargs.split(","): _validate_kwarg(goto, kwarg) # parse key [;aliases|pattern] @@ -1853,7 +1895,7 @@ if main_key.startswith(_OPTION_INPUT_MARKER): # if we have a pattern, build the arguments for _default later - pattern = main_key[len(_OPTION_INPUT_MARKER):].strip() + pattern = main_key[len(_OPTION_INPUT_MARKER) :].strip() inputparsemap[pattern] = goto else: # a regular goto string/callable target @@ -1914,12 +1956,7 @@
      [docs]def template2menu( - caller, - menu_template, - goto_callables=None, - startnode="start", - persistent=False, - **kwargs, + caller, menu_template, goto_callables=None, startnode="start", persistent=False, **kwargs, ): """ Helper function to generate and start an EvMenu based on a menu template @@ -1944,12 +1981,7 @@ """ goto_callables = goto_callables or {} menu_tree = parse_menu_template(caller, menu_template, goto_callables) - return EvMenu( - caller, - menu_tree, - persistent=persistent, - **kwargs, - )
      + return EvMenu(caller, menu_tree, persistent=persistent, **kwargs,)
      @@ -1977,6 +2009,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -1995,7 +2028,6 @@ -
      develop branch
      @@ -44,34 +43,29 @@ """ EvMore - pager mechanism -This is a pager for displaying long texts and allows stepping up and down in -the text (the name comes from the traditional 'more' unix command). +This is a pager for displaying long texts and allows stepping up and +down in the text (the name comes from the traditional 'more' unix +command). To use, simply pass the text through the EvMore object: - - -```python +:: from evennia.utils.evmore import EvMore text = some_long_text_output() EvMore(caller, text, always_page=False, session=None, justify_kwargs=None, **kwargs) -``` -One can also use the convenience function `msg` from this module to avoid -having to set up the `EvMenu` object manually: - -```python +One can also use the convenience function msg from this module: +:: from evennia.utils import evmore text = some_long_text_output() evmore.msg(caller, text, always_page=False, session=None, justify_kwargs=None, **kwargs) -``` -The `always_page` argument decides if the pager is used also if the text is not long -enough to need to scroll, `session` is used to determine which session to relay -to and `justify_kwargs` are kwargs to pass to utils.utils.justify in order to +Where always_page decides if the pager is used also if the text is not long +enough to need to scroll, session is used to determine which session to relay +to and `justify_kwargs` are kwargs to pass to `utils.utils.justify` in order to change the formatting of the text. The remaining `**kwargs` will be passed on to the `caller.msg()` construct every time the page is updated. @@ -83,8 +77,7 @@ from django.core.paginator import Paginator from evennia import Command, CmdSet from evennia.commands import cmdhandler -from evennia.utils.ansi import ANSIString -from evennia.utils.utils import make_iter, inherits_from, justify, dedent +from evennia.utils.utils import make_iter, inherits_from, justify _CMD_NOMATCH = cmdhandler.CMD_NOMATCH _CMD_NOINPUT = cmdhandler.CMD_NOINPUT @@ -95,8 +88,6 @@ _EVTABLE = None -_LBR = ANSIString("\n") - # text _DISPLAY = """{text} @@ -178,9 +169,10 @@ return qs.count()
      -
      [docs]class EvMore(object): +
      [docs]class EvMore: """ - The main pager object + The main pager object. + """
      [docs] def __init__( @@ -198,15 +190,16 @@ ): """ - Initialization of the EvMore pager. + Initialization of the Evmore input handler. Args: caller (Object or Account): Entity reading the text. inp (str, EvTable, Paginator or iterator): The text or data to put under paging. - If a string, paginage normally. If this text contains - one or more `\\\\f` format symbol, automatic pagination and justification - are force-disabled and page-breaks will only happen after each `\\\\f`. + one or more \\\\f (backslash + f) format symbols, automatic + pagination and justification are force-disabled and + page-breaks will only happen after each \\\\f. - If `EvTable`, the EvTable will be paginated with the same setting on each page if it is too long. The table decorations will be considered in the size of the page. @@ -214,9 +207,8 @@ expected to be a line in the final display. Each line will be run through `iter_callable`. - always_page (bool, optional): If `False`, the - pager will only kick in if `inp` is too big - to fit the screen. + always_page (bool, optional): If `False`, the pager will only kick + in if `inp` is too big to fit the screen. session (Session, optional): If given, this session will be used to determine the screen width and will receive all output. justify (bool, optional): If set, auto-justify long lines. This must be turned @@ -232,29 +224,51 @@ the caller when the more page exits. Note that this will be using whatever cmdset the user had *before* the evmore pager was activated (so none of the evmore commands will be available when this is run). - kwargs (any, optional): These will be passed on to the `caller.msg` method. + kwargs (any, any): These will be passed on to the `caller.msg` method. Examples: + Basic use: + :: - ```python - super_long_text = " ... " - EvMore(caller, super_long_text) - ``` - Paginator - ```python - from django.core.paginator import Paginator - query = ObjectDB.objects.all() - pages = Paginator(query, 10) # 10 objs per page - EvMore(caller, pages) - ``` - Every page an EvTable - ```python - from evennia import EvTable - def _to_evtable(page): - table = ... # convert page to a table - return EvTable(*headers, table=table, ...) - EvMore(caller, pages, page_formatter=_to_evtable) - ``` + super_long_text = " ... " + EvMore(caller, super_long_text) + + Paginated query data - this is an optimization to avoid fetching + database data until it's actually paged to. + :: + + from django.core.paginator import Paginator + + query = ObjectDB.objects.all() + pages = Paginator(query, 10) # 10 objs per page + EvMore(caller, pages) + + Automatic split EvTable over multiple EvMore pages + :: + + table = EvMore(*header, table=tabledata) + EvMore(caller, table) + + Every page a separate EvTable (optimization for very large data sets) + :: + + from evennia import EvTable, EvMore + + class TableEvMore(EvMore): + def init_pages(self, data): + pages = # depends on data type + super().init_pages(pages) + + def page_formatter(self, page): + table = EvTable() + + for line in page: + cols = # split raw line into columns + table.add_row(*cols) + + return str(table) + + TableEvMore(caller, pages) """ self._caller = caller @@ -441,12 +455,9 @@
      [docs] def init_f_str(self, text): """ - The input contains `\\f` markers. We use `\\f` to indicate the user wants to - enforce their line breaks on their own. If so, we do no automatic - line-breaking/justification at all. - - Args: - text (str): The string to format with f-markers. + The input contains \\\\f (backslash + f) markers. We use \\\\f to indicate + the user wants to enforce their line breaks on their own. If so, we do + no automatic line-breaking/justification at all. """ self._data = text.split("\f") @@ -475,7 +486,7 @@ lines = text.split("\n") self._data = [ - _LBR.join(lines[i : i + self.height]) for i in range(0, len(lines), self.height) + "\n".join(lines[i : i + self.height]) for i in range(0, len(lines), self.height) ] self._npages = len(self._data)
      @@ -493,13 +504,15 @@ Notes: If overridden, this method must perform the following actions: - - read and re-store `self._data` (the incoming data set) if needed for pagination to work. + - read and re-store `self._data` (the incoming data set) if needed + for pagination to work. - set `self._npages` to the total number of pages. Default is 1. - set `self._paginator` to a callable that will take a page number 1...N and return the data to display on that page (not any decorations or next/prev buttons). If only wanting to change the paginator, override `self.paginator` instead. - - set `self._page_formatter` to a callable that will receive the page from `self._paginator` - and format it with one element per line. Default is `str`. Or override `self.page_formatter` + - set `self._page_formatter` to a callable that will receive the + page from `self._paginator` and format it with one element per + line. Default is `str`. Or override `self.page_formatter` directly instead. By default, helper methods are called that perform these actions @@ -577,6 +590,40 @@ """ EvMore-supported version of msg, mimicking the normal msg method. + Args: + caller (Object or Account): Entity reading the text. + text (str, EvTable or iterator): The text or data to put under paging. + + - If a string, paginage normally. If this text contains + one or more \\\\f (backslash + f) format symbol, automatic pagination is disabled + and page-breaks will only happen after each \\\\f. + - If `EvTable`, the EvTable will be paginated with the same + setting on each page if it is too long. The table + decorations will be considered in the size of the page. + - Otherwise `text` is converted to an iterator, where each step is + is expected to be a line in the final display, and each line + will be run through repr(). + + always_page (bool, optional): If `False`, the + pager will only kick in if `text` is too big + to fit the screen. + session (Session, optional): If given, this session will be used + to determine the screen width and will receive all output. + justify (bool, optional): If set, justify long lines in output. Disable for + fixed-format output, like tables. + justify_kwargs (dict, bool or None, optional): If given, this should + be valid keyword arguments to the utils.justify() function. If False, + no justification will be done. + exit_on_lastpage (bool, optional): Immediately exit pager when reaching the last page. + use_evtable (bool, optional): If True, each page will be rendered as an + EvTable. For this to work, `text` must be an iterable, where each element + is the table (list of list) to render on that page. + evtable_args (tuple, optional): The args to use for EvTable on each page. + evtable_kwargs (dict, optional): The kwargs to use for EvTable on each + page (except `table`, which is supplied by EvMore per-page). + kwargs (any, optional): These will be passed on + to the `caller.msg` method. + """ EvMore( caller, @@ -588,9 +635,6 @@ exit_on_lastpage=exit_on_lastpage, **kwargs, )
      - - -msg.__doc__ += dedent(EvMore.__init__.__doc__)
      @@ -618,6 +662,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -636,7 +681,6 @@ -
      develop branch
      @@ -41,25 +40,21 @@

      Source code for evennia.utils.evtable

       """
      -This is an advanced ASCII table creator. It was inspired by Prettytable
      -(https://code.google.com/p/prettytable/) but shares no code and is considerably
      -more advanced, supporting auto-balancing of incomplete tables and ANSI colors among
      -other things.
      +This is an advanced ASCII table creator. It was inspired by
      +[prettytable](https://code.google.com/p/prettytable/) but shares no code.
       
       Example usage:
      +::
       
      -```python
      -  from evennia.utils import evtable
      +    from evennia.utils import evtable
       
      -  table = evtable.EvTable("Heading1", "Heading2",
      +    table = evtable.EvTable("Heading1", "Heading2",
                         table=[[1,2,3],[4,5,6],[7,8,9]], border="cells")
      -  table.add_column("This is long data", "This is even longer data")
      -  table.add_row("This is a single row")
      -  print table
      -```
      +    table.add_column("This is long data", "This is even longer data")
      +    table.add_row("This is a single row")
      +    print table
       
       Result:
      -
       ::
       
           +----------------------+----------+---+--------------------------+
      @@ -76,15 +71,13 @@
       
       As seen, the table will automatically expand with empty cells to make
       the table symmetric. Tables can be restricted to a given width:
      +::
       
      -```python
      -  table.reformat(width=50, align="l")
      -```
      +    table.reformat(width=50, align="l")
       
       (We could just have added these keywords to the table creation call)
       
       This yields the following result:
      -
       ::
       
           +-----------+------------+-----------+-----------+
      @@ -105,22 +98,17 @@
           | row       |            |           |           |
           +-----------+------------+-----------+-----------+
       
      -
       Table-columns can be individually formatted. Note that if an
       individual column is set with a specific width, table auto-balancing
       will not affect this column (this may lead to the full table being too
       wide, so be careful mixing fixed-width columns with auto- balancing).
       Here we change the width and alignment of the column at index 3
       (Python starts from 0):
      -
      -```python
      -
      -table.reformat_column(3, width=30, align="r")
      -print table
      -```
      -
       ::
       
      +    table.reformat_column(3, width=30, align="r")
      +    print table
      +
           +-----------+-------+-----+-----------------------------+---------+
           | Heading1  | Headi |     |                             |         |
           |           | ng2   |     |                             |         |
      @@ -143,14 +131,15 @@
       vertically. This will lead to text contents being cropped. Each cell
       can only shrink to a minimum width and height of 1.
       
      -`EvTable` is intended to be used with `ANSIString` for supporting ANSI-coloured
      -string types.
      +`EvTable` is intended to be used with [ANSIString](evennia.utils.ansi#ansistring)
      +for supporting ANSI-coloured string types.
       
      -When a cell is auto-wrapped across multiple lines, ANSI-reset sequences will be
      -put at the end of each wrapped line. This means that the colour of a wrapped
      -cell will not "bleed", but it also means that eventual colour outside the table
      -will not transfer "across" a table, you need to re-set the color to have it
      -appear on both sides of the table string.
      +When a cell is auto-wrapped across multiple lines, ANSI-reset
      +sequences will be put at the end of each wrapped line. This means that
      +the colour of a wrapped cell will not "bleed", but it also means that
      +eventual colour outside the table will not transfer "across" a table,
      +you need to re-set the color to have it appear on both sides of the
      +table string.
       
       ----
       
      @@ -1827,6 +1816,7 @@
         
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -1845,7 +1835,6 @@ -
      develop branch
      @@ -335,6 +334,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -353,7 +353,6 @@ -
      develop branch
      @@ -100,6 +99,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -118,7 +118,6 @@ -
      develop branch
      @@ -740,6 +739,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -758,7 +758,6 @@ -
      develop branch
      @@ -145,6 +144,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -163,7 +163,6 @@ -
      develop branch
      @@ -44,22 +43,20 @@ Inline functions (nested form). This parser accepts nested inlinefunctions on the form +:: -```python -$funcname(arg, arg, ...) -``` + $funcname(arg, arg, ...) -embedded in any text where any arg can be another ``$funcname()`` call. +embedded in any text where any arg can be another `$funcname{}` call. This functionality is turned off by default - to activate, `settings.INLINEFUNC_ENABLED` must be set to `True`. -Each token starts with `$funcname(` where there must be no space -between the `$funcname` and `"("`. The inlinefunc ends with a matched ending parentesis. -`")"`. +Each token starts with `$funcname(` where there must be no space between the +$funcname and "(". It ends with a matched ending parentesis ")". -Inside the inlinefunc definition, one can use `\` to escape. This is +Inside the inlinefunc definition, one can use \\\\ to escape. This is mainly needed for escaping commas in flowing text (which would -otherwise be interpreted as an argument separator), or to escape `)` +otherwise be interpreted as an argument separator), or to escape `}` when not intended to close the function block. Enclosing text in matched `\"\"\"` (triple quotes) or `'''` (triple single-quotes) will also escape *everything* within without needing to escape individual @@ -69,11 +66,10 @@ modules defined by `settings.INLINEFUNC_MODULES`. They are identified by their function name (and ignored if this name starts with `_`). They should be on the following form: +:: -```python -def funcname (*args, **kwargs): + def funcname (*args, **kwargs): # ... -``` Here, the arguments given to `$funcname(arg1,arg2)` will appear as the `*args` tuple. This will be populated by the arguments given to the @@ -97,9 +93,8 @@ the `stackfull` inlinefunc is appended to the end. By default this is an error message. -Syntax errors, notably failing to completely closing all inlinefunc -blocks, will lead to the entire string remaining unparsed. Inlineparsing should -never traceback. +Syntax errors, notably not completely closing all inlinefunc blocks, will lead +to the entire string remaining unparsed. ---- @@ -137,9 +132,10 @@ given range. Example: - `$random()` - `$random(5)` - `$random(5, 10)` + + - `$random()` + - `$random(5)` + - `$random(5, 10)` """ nargs = len(args) @@ -619,16 +615,16 @@ Args: in_template (str): The template to be used for nick recognition. out_template (str): The template to be used to replace the string - matched by the in_template. + matched by the `in_template`. Returns: - regex (regex): Regex to match against strings - template (str): Template with markers {arg1}, {arg2}, etc for - replacement using the standard .format method. + regex, template (regex, str): Regex to match against strings and a + template with markers `{arg1}`, `{arg2}`, etc for replacement using the + standard `.format` method. Raises: - evennia.utils.inlinefuncs.NickTemplateInvalid: If the in/out template - does not have a matching number of $args. + inlinefuncs.NickTemplateInvalid: If the in/out template does not have a matching + number of $args. """ # create the regex for in_template @@ -692,6 +688,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -710,7 +707,6 @@ -
      develop branch
      @@ -601,6 +600,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -619,7 +619,6 @@ -
      develop branch
      @@ -40,7 +39,13 @@

      Source code for evennia.utils.optionclasses

      -import datetime
      +"""
      +Option classes store user- or server Options in a generic way
      +while also providing validation.
      +
      +"""
      +
      +import datetime
       from evennia import logger
       from evennia.utils.ansi import strip_ansi
       from evennia.utils.validatorfuncs import _TZ_DICT
      @@ -48,7 +53,7 @@
       from evennia.utils import validatorfuncs
       
       
      -
      [docs]class BaseOption(object): +
      [docs]class BaseOption: """ Abstract Class to deal with encapsulating individual Options. An Option has a name/key, a description to display in relevant commands and menus, and a @@ -152,8 +157,8 @@
      [docs] def save(self, **kwargs): """ Stores the current value using `.handler.save_handler(self.key, value, **kwargs)` - where `kwargs` are a combination of those passed into this function and - the ones specified by the `OptionHandler`. + where kwargs are a combination of those passed into this function and the + ones specified by the OptionHandler. Keyword Args: any (any): Not used by default. These are passed in from self.set @@ -390,6 +395,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -408,7 +414,6 @@ -
      develop branch
      @@ -247,6 +246,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -265,7 +265,6 @@ -
      develop branch
      @@ -328,7 +327,7 @@ return value
      [docs] def value_to_string(self, obj): - value = self.value_from_object(obj) + value = self._get_val_from_obj(obj) return self.get_db_prep_value(value)
      [docs] def get_internal_type(self): @@ -369,6 +368,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -387,7 +387,6 @@ -
      develop branch
      @@ -78,7 +77,6 @@ "search_message", "search_channel", "search_help_entry", - "search_tag", "search_script_tag", "search_account_tag", "search_channel_tag", @@ -421,6 +419,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -439,7 +438,6 @@ -
      develop branch
      @@ -81,18 +80,18 @@ should directly give the module pathname to unload. Example: + :: - ```python - # (in a test method) - unload_module(foo) - with mock.patch("foo.GLOBALTHING", "mockval"): - import foo - ... # test code using foo.GLOBALTHING, now set to 'mockval' - ``` + # (in a test method) + unload_module(foo) + with mock.patch("foo.GLOBALTHING", "mockval"): + import foo + ... # test code using foo.GLOBALTHING, now set to 'mockval' - This allows for mocking constants global to the module, since - otherwise those would not be mocked (since a module is only - loaded once). + Notes: + This allows for mocking constants global to the module, since + otherwise those would not be mocked (since a module is only + loaded once). """ if isinstance(module, str): @@ -242,6 +241,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -260,7 +260,6 @@ -
      develop branch
      @@ -435,6 +434,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -453,7 +453,6 @@ -
      develop branch
      @@ -386,7 +385,7 @@ return "\n".join(rows)
      -
      [docs]def iter_to_str(initer, endsep="and", addquote=False): +
      [docs]def iter_to_string(initer, endsep="and", addquote=False): """ This pretty-formats an iterable list as string output, adding an optional alternative separator to the second to last entry. If `addquote` @@ -402,17 +401,17 @@ values with double quotes. Returns: - str: The list represented as a string. + liststr (str): The list represented as a string. Examples: ```python - >>> list_to_string([1,2,3], endsep='') - '1, 2, 3' - >>> list_to_string([1,2,3], ensdep='and') - '1, 2 and 3' - >>> list_to_string([1,2,3], endsep='and', addquote=True) - '"1", "2" and "3"' + # no endsep: + [1,2,3] -> '1, 2, 3' + # with endsep=='and': + [1,2,3] -> '1, 2 and 3' + # with addquote and endsep + [1,2,3] -> '"1", "2" and "3"' ``` """ @@ -433,9 +432,8 @@ return ", ".join(str(v) for v in initer[:-1]) + "%s %s" % (endsep, initer[-1])
      -# legacy aliases -list_to_string = iter_to_str -iter_to_string = iter_to_str +# legacy alias +list_to_string = iter_to_string
      [docs]def wildcard_to_regexp(instring): @@ -893,7 +891,7 @@ the text with "?" in place of problematic characters. If the specified encoding cannot be found, the protocol flag is reset to utf-8. In any case, returns bytes. - Notes: + Note: If `text` is already bytes, return it as is. """ @@ -933,7 +931,7 @@ Returns: decoded_text (str): The decoded text. - Notes: + Note: If `text` is already str, return it as is. """ if isinstance(text, str): @@ -987,17 +985,18 @@ distance from parent. Args: - obj (any): Object to analyze. This may be either an instance or - a class. - parent (any): Can be either an instance, a class or the python - path to the class. + obj (any): Object to analyze. This may be either an instance + or a class. + parent (any): Can be either instance, class or python path to class. Returns: inherits_from (bool): If `parent` is a parent to `obj` or not. Notes: - What differentiates this function from Python's `isinstance()` is the - flexibility in the types allowed for the object and parent being compared. + What differs this function from e.g. `isinstance()` is that `obj` + may be both an instance and a class, and parent may be an + instance, a class, or the python path to a class (counting from + the evennia root directory). """ @@ -1045,7 +1044,8 @@ shortcut to having to use the full backend name. Args: - name (str): One of 'sqlite3', 'mysql', 'postgresql' or 'oracle'. + name (str): One of 'sqlite3', 'mysql', 'postgresql' + or 'oracle'. Returns: uses (bool): If the given database is used or not. @@ -1069,19 +1069,20 @@ timedelay (int or float): The delay in seconds callback (callable): Will be called as `callback(*args, **kwargs)` after `timedelay` seconds. - *args: Will be used as arguments to callback + args (any, optional): Will be used as arguments to callback Keyword Args: - persistent (bool): Make the delay persistent over a reboot or reload. - any: Any other keywords will be use as keyword arguments to callback. + persistent (bool, optional): should make the delay persistent + over a reboot or reload + any (any): Will be used as keyword arguments to callback. Returns: - deferred: Will fire with callback after `timedelay` seconds. Note that - if `timedelay()` is used in the - commandhandler callback chain, the callback chain can be - defined directly in the command body and don't need to be - specified here. + deferred (deferred): Will fire with callback after + `timedelay` seconds. Note that if `timedelay()` is used in the + commandhandler callback chain, the callback chain can be + defined directly in the command body and don't need to be + specified here. - Notes: + Note: The task handler (`evennia.scripts.taskhandler.TASK_HANDLER`) will be called for persistent or non-persistent tasks. If persistent is set to True, the callback, its arguments @@ -1112,16 +1113,17 @@ executed with `*args` and non-reserved `**kwargs` as arguments. The callable will be executed using ProcPool, or in a thread if ProcPool is not available. + Keyword Args: at_return (callable): Should point to a callable with one - argument. It will be called with the return value from - to_execute. + argument. It will be called with the return value from + to_execute. at_return_kwargs (dict): This dictionary will be used as - keyword arguments to the at_return callback. + keyword arguments to the at_return callback. at_err (callable): This will be called with a Failure instance - if there is an error in to_execute. + if there is an error in to_execute. at_err_kwargs (dict): This dictionary will be used as keyword - arguments to the at_err errback. + arguments to the at_err errback. Notes: All other `*args` and `**kwargs` will be passed on to @@ -1207,7 +1209,7 @@
      [docs]def has_parent(basepath, obj): """ - Checks if `basepath` is somewhere in obj's parent tree. + Checks if `basepath` is somewhere in `obj`'s parent tree. Args: basepath (str): Python dotpath to compare against obj path. @@ -1454,7 +1456,7 @@
      [docs]def class_from_module(path, defaultpaths=None): """ - Return a class from a module, given the class' full python path. This is + Return a class from a module, given the module's path. This is primarily used to convert db_typeclass_path:s to classes. Args: @@ -1575,8 +1577,8 @@ Returns: suggestions (list): Suggestions from `vocabulary` with a - similarity-rating that higher than or equal to `cutoff`. - Could be empty if there are no matches. + similarity-rating that higher than or equal to `cutoff`. + Could be empty if there are no matches. """ return [ @@ -1644,9 +1646,11 @@
      [docs]def format_table(table, extra_space=1): """ - Format a 2D array of strings into a multi-column table. + Note: `evennia.utils.evtable` is more powerful than this, but this function + can be useful when the number of columns and rows are unknown and must be + calculated on the fly. - Args: + Args. table (list): A list of lists to represent columns in the table: `[[val,val,val,...], [val,val,val,...], ...]`, where each val will be placed on a separate row in the @@ -1656,30 +1660,26 @@ padding (in characters) should be left between columns. Returns: - list: A list of lists representing the rows to print out one by one. + table (list): A list of lists representing the rows to print + out one by one. Notes: The function formats the columns to be as wide as the widest member of each column. - `evennia.utils.evtable` is more powerful than this, but this - function can be useful when the number of columns and rows are - unknown and must be calculated on the fly. + Example: + :: - Examples: :: - - ftable = format_table([[1,2,3], [4,5,6]]) - string = "" - for ir, row in enumarate(ftable): - if ir == 0: - # make first row white - string += "\\n|w" + "".join(row) + "|n" - else: - string += "\\n" + "".join(row) - print(string) + ftable = format_table([[...], [...], ...]) + for ir, row in enumarate(ftable): + if ir == 0: + # make first row white + string += "\\\\n|w" + ""join(row) + "|n" + else: + string += "\\\\n" + "".join(row) + print(string) """ - if not table: return [[]] @@ -1695,191 +1695,6 @@ return ftable
      -
      [docs]def percent(value, minval, maxval, formatting="{:3.1f}%"): - """ - Get a value in an interval as a percentage of its position - in that interval. This also understands negative numbers. - - Args: - value (number): This should be a value minval<=value<=maxval. - minval (number or None): Smallest value in interval. This could be None - for an open interval (then return will always be 100%) - maxval (number or None): Biggest value in interval. This could be None - for an open interval (then return will always be 100%) - formatted (str, optional): This is a string that should - accept one formatting tag. This will receive the - current value as a percentage. If None, the - raw float will be returned instead. - Returns: - str or float: The formatted value or the raw percentage as a float. - Notes: - We try to handle a weird interval gracefully. - - - If either maxval or minval is None (open interval), we (aribtrarily) assume 100%. - - If minval > maxval, we return 0%. - - If minval == maxval == value we are looking at a single value match and return 100%. - - If minval == maxval != value we return 0%. - - If value not in [minval..maxval], we set value to the closest - boundary, so the result will be 0% or 100%, respectively. - - """ - result = None - if None in (minval, maxval): - # we have no boundaries, percent calculation makes no sense, - # we set this to 100% since it - result = 100.0 - elif minval > maxval: - # interval has no width so we cannot - # occupy any position within it. - result = 0.0 - elif minval == maxval == value: - # this is a single value that we match - result = 100.0 - elif minval == maxval != value: - # interval has no width so we cannot be in it. - result = 0.0 - - if result is None: - # constrain value to interval - value = min(max(minval, value), maxval) - - # these should both be >0 - dpart = value - minval - dfull = maxval - minval - result = (dpart / dfull) * 100.0 - - if isinstance(formatting, str): - return formatting.format(result) - return result
      - - -import functools # noqa - - -
      [docs]def percentile(iterable, percent, key=lambda x: x): - """ - Find the percentile of a list of values. - - Args: - iterable (iterable): A list of values. Note N MUST BE already sorted. - percent (float): A value from 0.0 to 1.0. - key (callable, optional). Function to compute value from each element of N. - - Returns: - float: The percentile of the values - - """ - if not iterable: - return None - k = (len(iterable) - 1) * percent - f = math.floor(k) - c = math.ceil(k) - if f == c: - return key(iterable[int(k)]) - d0 = key(iterable[int(f)]) * (c - k) - d1 = key(iterable[int(c)]) * (k - f) - return d0 + d1
      - - -
      [docs]def format_grid(elements, width=78, sep=" ", verbatim_elements=None): - """ - This helper function makes a 'grid' output, where it distributes the given - string-elements as evenly as possible to fill out the given width. - will not work well if the variation of length is very big! - - Args: - elements (iterable): A 1D list of string elements to put in the grid. - width (int, optional): The width of the grid area to fill. - sep (str, optional): The extra separator to put between words. If - set to the empty string, words may run into each other. - verbatim_elements (list, optional): This is a list of indices pointing to - specific items in the `elements` list. An element at this index will - not be included in the calculation of the slot sizes. It will still - be inserted into the grid at the correct position and may be surrounded - by padding unless filling the entire line. This is useful for embedding - decorations in the grid, such as horizontal bars. - - Returns: - gridstr: The grid as a list of ready-formatted rows. We return it - like this to make it easier to insert decorations between rows, such - as horizontal bars. - """ - if not verbatim_elements: - verbatim_elements = [] - - nelements = len(elements) - # add sep to all but the very last element - elements = [elements[ie] + sep for ie in range(nelements - 1)] + [elements[-1]] - wls = [len(elem) for elem in elements] - wls_percentile = [wl for iw, wl in enumerate(wls) if iw not in verbatim_elements] - # from pudb import debugger - # debugger.Debugger().set_trace() - - # get the nth percentile as a good representation of average width - averlen = int(percentile(sorted(wls_percentile), 0.9)) + 2 # include extra space - aver_per_row = width // averlen + 1 - - if aver_per_row == 1: - # one line per row, output directly since this is trivial - # we use rstrip here to remove extra spaces added by sep - return [ - crop(element.rstrip(), width) + " " * max(0, width - len(element.rstrip())) - for iel, element in enumerate(elements) - ] - - indices = [averlen * ind for ind in range(aver_per_row - 1)] - - rows = [] - ic = 0 - row = "" - for ie, element in enumerate(elements): - - wl = wls[ie] - lrow = len(row) - debug = row.replace(" ", ".") - - if lrow + wl > width: - # this slot extends outside grid, move to next line - row += " " * (width - lrow) - rows.append(row) - if wl >= width: - # remove sep if this fills the entire line - element = element.rstrip() - row = crop(element, width) - ic = 0 - elif ic >= aver_per_row - 1: - # no more slots available on this line - row += " " * max(0, (width - lrow)) - rows.append(row) - row = crop(element, width) - ic = 0 - else: - try: - while lrow > max(0, indices[ic]): - # slot too wide, extend into adjacent slot - ic += 1 - row += " " * max(0, indices[ic] - lrow) - except IndexError: - # we extended past edge of grid, crop or move to next line - if ic == 0: - row = crop(element, width) - else: - row += " " * max(0, width - lrow) - rows.append(row) - ic = 0 - else: - # add a new slot - row += element + " " * max(0, averlen - wl) - ic += 1 - - if ie >= nelements - 1: - # last element, make sure to store - row += " " * max(0, width - len(row)) - rows.append(row) - - return rows
      - -
      [docs]def get_evennia_pids(): """ Get the currently valid PIDs (Process IDs) of the Portal and @@ -1891,13 +1706,13 @@ Examples: This can be used to determine if we are in a subprocess by + something like: ```python self_pid = os.getpid() server_pid, portal_pid = get_evennia_pids() is_subprocess = self_pid not in (server_pid, portal_pid) ``` - """ server_pidfile = os.path.join(settings.GAME_DIR, "server.pid") portal_pidfile = os.path.join(settings.GAME_DIR, "portal.pid") @@ -2113,15 +1928,16 @@ query (str, optional): The search query used to produce `matches`. quiet (bool, optional): If `True`, no messages will be echoed to caller on errors. + Keyword Args: nofound_string (str): Replacement string to echo on a notfound error. multimatch_string (str): Replacement string to echo on a multimatch error. Returns: processed_result (Object or None): This is always a single result - or `None`. If `None`, any error reporting/handling should - already have happened. The returned object is of the type we are - checking multimatches for (e.g. Objects or Commands) + or `None`. If `None`, any error reporting/handling should + already have happened. The returned object is of the type we are + checking multimatches for (e.g. Objects or Commands) """ @@ -2180,10 +1996,10 @@ Keyword Args: size_limit (int): Use this to limit the number of elements - alloweds to be in this list. By default the overshooting elements - will be removed in FIFO order. + alloweds to be in this list. By default the overshooting elements + will be removed in FIFO order. fifo (bool, optional): Defaults to `True`. Remove overshooting elements - in FIFO order. If `False`, remove in FILO order. + in FIFO order. If `False`, remove in FILO order. """ super().__init__() @@ -2250,10 +2066,10 @@ from this parent. Returns: - dict: On the form `{"typeclass.path": typeclass, ...}` + typeclasses (dict): On the form {"typeclass.path": typeclass, ...} Notes: - This will dynamically retrieve all abstract django models inheriting at any distance + This will dynamicall retrieve all abstract django models inheriting at any distance from the TypedObject base (aka a Typeclass) so it will work fine with any custom classes being added. @@ -2276,19 +2092,14 @@
      [docs]def interactive(func): """ - Decorator to make a method pausable with `yield(seconds)` - and able to ask for user-input with `response=yield(question)`. - For the question-asking to work, one of the args or kwargs to the - decorated function must be named 'caller'. + Decorator to make a method pausable with yield(seconds) and able to ask for + user-input with `response=yield(question)`. For the question-asking to + work, 'caller' must the name of an argument or kwarg to the decorated + function. - Raises: - ValueError: If asking an interactive question but the decorated - function has no arg or kwarg named 'caller'. - ValueError: If passing non int/float to yield using for pausing. + Example: + :: - Examples: - - ```python @interactive def myfunc(caller): caller.msg("This is a test") @@ -2300,10 +2111,9 @@ yield(5) else: # ... - ``` Notes: - This turns the decorated function or method into a generator. + This turns the method into a generator! """ from evennia.utils.evmenu import get_input @@ -2374,6 +2184,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -2392,7 +2203,6 @@ -
      develop branch
      @@ -90,10 +89,12 @@ account (AccountDB): The Account performing this lookup. Unless `from_tz` is provided, the account's timezone option will be used. from_tz (pytz.timezone): An instance of a pytz timezone object from the - user. If not provided, tries to use the timezone option of `account`. + user. If not provided, tries to use the timezone option of the `account`. If neither one is provided, defaults to UTC. + Returns: datetime in UTC. + Raises: ValueError: If encountering a malformed timezone, date string or other format error. @@ -301,6 +302,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -319,7 +321,6 @@ -
      develop branch
      @@ -110,6 +109,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -128,7 +128,6 @@ -
      develop branch
      @@ -165,6 +164,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -183,7 +183,6 @@ -
      develop branch
      @@ -139,6 +138,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -157,7 +157,6 @@ -
      develop branch
      @@ -138,6 +137,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -156,7 +156,6 @@ -
      develop branch
      @@ -97,6 +96,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -115,7 +115,6 @@ -
      develop branch
      @@ -239,6 +238,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -257,7 +257,6 @@ -
      develop branch
      @@ -84,6 +83,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -102,7 +102,6 @@ -
      develop branch
      @@ -356,6 +355,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -374,7 +374,6 @@ -
      develop branch
      @@ -1188,6 +1187,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -1206,7 +1206,6 @@ -
      develop branch
      @@ -915,6 +914,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -932,7 +932,6 @@ -
      develop branch
      @@ -41,9 +40,7 @@ +
      @@ -299,7 +283,6 @@ -
      develop branch
      @@ -170,6 +169,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -187,7 +187,6 @@ -
      develop branch
      @@ -128,6 +127,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -145,7 +145,6 @@ -
      develop branch
      @@ -100,6 +99,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -117,7 +117,6 @@ -
      develop branch
      @@ -228,6 +227,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -245,7 +245,6 @@ -
      develop branch
      @@ -451,7 +417,6 @@ -
      develop branch
      @@ -940,94 +939,6 @@ overriding the call (unused by default).

      -
      -
      -class evennia.accounts.accounts.DefaultGuest(*args, **kwargs)[source]
      -

      Bases: evennia.accounts.accounts.DefaultAccount

      -

      This class is used for guest logins. Unlike Accounts, Guests and -their characters are deleted after disconnection.

      -
      -
      -classmethod create(**kwargs)[source]
      -

      Forwards request to cls.authenticate(); returns a DefaultGuest object -if one is available for use.

      -
      - -
      -
      -classmethod authenticate(**kwargs)[source]
      -

      Gets or creates a Guest account object.

      -
      -
      Keyword Arguments
      -

      ip (str, optional) – IP address of requestor; used for ban checking, -throttling and logging

      -
      -
      Returns
      -

      account (Object) – Guest account object, if available -errors (list): List of error messages accrued during this request.

      -
      -
      -
      - -
      -
      -at_post_login(session=None, **kwargs)[source]
      -

      In theory, guests only have one character regardless of which -MULTISESSION_MODE we’re in. They don’t get a choice.

      -
      -
      Parameters
      -
        -
      • session (Session, optional) – Session connecting.

      • -
      • **kwargs (dict) – Arbitrary, optional arguments for users -overriding the call (unused by default).

      • -
      -
      -
      -
      - -
      -
      -at_server_shutdown()[source]
      -

      We repeat the functionality of at_disconnect() here just to -be on the safe side.

      -
      - -
      -
      -at_post_disconnect(**kwargs)[source]
      -

      Once having disconnected, destroy the guest’s characters and

      -
      -
      Parameters
      -

      **kwargs (dict) – Arbitrary, optional arguments for users -overriding the call (unused by default).

      -
      -
      -
      - -
      -
      -exception DoesNotExist
      -

      Bases: evennia.accounts.accounts.DefaultAccount.DoesNotExist

      -
      - -
      -
      -exception MultipleObjectsReturned
      -

      Bases: evennia.accounts.accounts.DefaultAccount.MultipleObjectsReturned

      -
      - -
      -
      -path = 'evennia.accounts.accounts.DefaultGuest'
      -
      - -
      -
      -typename = 'DefaultGuest'
      -
      - -
      -
      @@ -1063,6 +974,7 @@ overriding the call (unused by default).

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -1079,7 +991,6 @@ overriding the call (unused by default).

      -
      develop branch
      @@ -374,6 +373,7 @@ has a slightly different workflow.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -390,7 +390,6 @@ has a slightly different workflow.

      -
      develop branch
      @@ -484,6 +483,7 @@ triggered by the bot_data_in Inputfunc.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -500,7 +500,6 @@ triggered by the bot_data_in Inputfunc.

      -
      develop branch
      @@ -86,6 +85,7 @@ more Objects depending on settings. An Account has no in-game existence.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -102,7 +102,6 @@ more Objects depending on settings. An Account has no in-game existence.

      -
      develop branch
      @@ -81,6 +80,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -97,7 +97,6 @@ -
      develop branch
      @@ -402,6 +401,7 @@ class built by **create_forward_many_to_many_manager()** define
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -418,7 +418,6 @@ class built by **create_forward_many_to_many_manager()** define -
      develop branch
      @@ -173,6 +172,7 @@ default Evennia.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -189,7 +189,6 @@ default Evennia.

      -
      develop branch
      @@ -196,6 +195,7 @@ the remaining arguments, and the matched cmdobject from the cmdset.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -212,7 +212,6 @@ the remaining arguments, and the matched cmdobject from the cmdset.

      -
      develop branch
      @@ -413,6 +412,7 @@ self.add().

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -429,7 +429,6 @@ self.add().

      -
      develop branch
      @@ -381,6 +380,7 @@ handled automatically by @reload).

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -397,7 +397,6 @@ handled automatically by @reload).

      -
      develop branch
      @@ -375,6 +374,17 @@ commands the caller can use.

      +
      +
      +client_height()[source]
      +

      Get the client screenheight for the session using this command.

      +
      +
      Returns
      +

      client height (int) – The height (in characters) of the client window.

      +
      +
      +
      +
      styled_table(*args, **kwargs)[source]
      @@ -427,11 +437,6 @@ detailing the contents of the table.

      save_for_next = False
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'command', 'tags': '', 'text': '\n Base command\n\n Usage:\n command [args]\n\n This is the base command class. Inherit from this\n to create new commands.\n\n The cmdhandler makes the following variables available to the\n command methods (so you can always assume them to be there):\n self.caller - the game object calling the command\n self.cmdstring - the command name used to trigger this command (allows\n you to know which alias was used, for example)\n cmd.args - everything supplied to the command following the cmdstring\n (this is usually what is parsed in self.parse())\n cmd.cmdset - the cmdset from which this command was matched (useful only\n seldomly, notably for help-type commands, to create dynamic\n help entries and lists)\n cmd.obj - the object on which this command is defined. If a default command,\n this is usually the same as caller.\n cmd.rawstring - the full raw string input, including any args and no parsing.\n\n The following class properties can/should be defined on your child class:\n\n key - identifier for command (e.g. "look")\n aliases - (optional) list of aliases (e.g. ["l", "loo"])\n locks - lock string (default is "cmd:all()")\n help_category - how to organize this help entry in help system\n (default is "General")\n auto_help - defaults to True. Allows for turning off auto-help generation\n arg_regex - (optional) raw string regex defining how the argument part of\n the command should look in order to match for this command\n (e.g. must it be a space between cmdname and arg?)\n auto_help_display_key - (optional) if given, this replaces the string shown\n in the auto-help listing. This is particularly useful for system-commands\n whose actual key is not really meaningful.\n\n (Note that if auto_help is on, this initial string is also used by the\n system to create the help entry for the command, so it\'s a good idea to\n format it similar to this one). This behavior can be changed by\n overriding the method \'get_help\' of a command: by default, this\n method returns cmd.__doc__ (that is, this very docstring, or\n the docstring of your command). You can, however, extend or\n replace this without disabling auto_help.\n '}
      -
      -
      @@ -476,6 +481,7 @@ detailing the contents of the table.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -492,7 +498,6 @@ detailing the contents of the table.

      -
      develop branch
      @@ -99,11 +98,6 @@ method. Otherwise all text will be returned to all connected sessions.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': 'ls l', 'category': 'general', 'key': 'look', 'tags': '', 'text': '\n look while out-of-character\n\n Usage:\n look\n\n Look in the ooc state.\n '}
      -
      -
      @@ -158,11 +152,6 @@ as you the account have access right to puppet it.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': 'puppet', 'category': 'general', 'key': 'ic', 'tags': '', 'text': '\n control an object you have permission to puppet\n\n Usage:\n ic <character>\n\n Go in-character (IC) as a given Character.\n\n This will attempt to "become" a different object assuming you have\n the right to do so. Note that it\'s the ACCOUNT character that puppets\n characters/objects and which needs to have the correct permission!\n\n You cannot become an object that is already controlled by another\n account. In principle <character> can be any in-game object as long\n as you the account have access right to puppet it.\n '}
      -
      -
      @@ -212,11 +201,6 @@ as you the account have access right to puppet it.

      lock_storage = 'cmd:pperm(Player)'
      -
      -
      -search_index_entry = {'aliases': 'unpuppet', 'category': 'general', 'key': 'ooc', 'tags': '', 'text': '\n stop puppeting and go ooc\n\n Usage:\n ooc\n\n Go out-of-character (OOC).\n\n This will leave your current character and put you in a incorporeal OOC state.\n '}
      -
      -
      @@ -265,11 +249,6 @@ as you the account have access right to puppet it.

      lock_storage = 'cmd:pperm(Player)'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'password', 'tags': '', 'text': '\n change your password\n\n Usage:\n password <old password> = <new password>\n\n Changes your password. Make sure to pick a safe one.\n '}
      -
      -
      @@ -326,11 +305,6 @@ game. Use the /all switch to disconnect from all sessions.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'quit', 'tags': '', 'text': '\n quit the game\n\n Usage:\n quit\n\n Switch:\n all - disconnect all connected sessions\n\n Gracefully disconnect your current session from the\n game. Use the /all switch to disconnect from all sessions.\n '}
      -
      -
      @@ -382,11 +356,6 @@ if you want.

      lock_storage = 'cmd:pperm(Player)'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'charcreate', 'tags': '', 'text': '\n create a new character\n\n Usage:\n charcreate <charname> [= desc]\n\n Create a new character, optionally giving it a description. You\n may use upper-case letters in the name - you will nevertheless\n always be able to access your character using lower-case letters\n if you want.\n '}
      -
      -
      @@ -445,11 +414,6 @@ later connecting with a client with different capabilities.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': 'options', 'category': 'general', 'key': 'option', 'tags': '', 'text': '\n Set an account option\n\n Usage:\n option[/save] [name = value]\n\n Switches:\n save - Save the current option settings for future logins.\n clear - Clear the saved options.\n\n This command allows for viewing and setting client interface\n settings. Note that saved options may not be able to be used if\n later connecting with a client with different capabilities.\n\n\n '}
      -
      -
      @@ -498,11 +462,6 @@ later connecting with a client with different capabilities.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'sessions', 'tags': '', 'text': '\n check your connected session(s)\n\n Usage:\n sessions\n\n Lists the sessions currently connected to your account.\n\n '}
      -
      -
      @@ -553,11 +512,6 @@ also for those with all permissions.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': 'doing', 'category': 'general', 'key': 'who', 'tags': '', 'text': '\n list who is currently online\n\n Usage:\n who\n doing\n\n Shows who is currently online. Doing is an alias that limits info\n also for those with all permissions.\n '}
      -
      -
      @@ -637,11 +591,6 @@ Takes a table of columns [[val,val,…],[val,val,…],…]

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'color', 'tags': '', 'text': '\n testing which colors your client support\n\n Usage:\n color ansi||xterm256\n\n Prints a color map along with in-mud color codes to use to produce\n them. It also tests what is supported in your client. Choices are\n 16-color ansi (supported in most muds) or the 256-color xterm256\n standard. No checking is done to determine your client supports\n color - if not you will see rubbish appear.\n '}
      -
      -
      @@ -697,11 +646,6 @@ Use the unquell command to revert back to normal operation.

      lock_storage = 'cmd:pperm(Player)'
      -
      -
      -search_index_entry = {'aliases': 'unquell', 'category': 'general', 'key': 'quell', 'tags': '', 'text': "\n use character's permissions instead of account's\n\n Usage:\n quell\n unquell\n\n Normally the permission level of the Account is used when puppeting a\n Character/Object to determine access. This command will switch the lock\n system to make use of the puppeted Object's permissions instead. This is\n useful mainly for testing.\n Hierarchical permission quelling only work downwards, thus an Account cannot\n use a higher-permission Character to escalate their permission level.\n Use the unquell command to revert back to normal operation.\n "}
      -
      -
      @@ -745,11 +689,6 @@ Use the unquell command to revert back to normal operation.

      lock_storage = 'cmd:pperm(Player)'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'chardelete', 'tags': '', 'text': '\n delete a character - this cannot be undone!\n\n Usage:\n chardelete <charname>\n\n Permanently deletes one of your characters.\n '}
      -
      -
      @@ -807,11 +746,6 @@ to all the variables defined therein.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'style', 'tags': '', 'text': '\n In-game style options\n\n Usage:\n style\n style <option> = <value>\n\n Configure stylings for in-game display elements like table borders, help\n entriest etc. Use without arguments to see all available options.\n\n '}
      -
      -
      @@ -849,6 +783,7 @@ to all the variables defined therein.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -865,7 +800,6 @@ to all the variables defined therein.

      -
      develop branch
      @@ -90,11 +89,6 @@ supplied it will be echoed to the user unless /quiet is set.

      lock_storage = 'cmd:perm(boot) or perm(Admin)'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'admin', 'key': 'boot', 'tags': '', 'text': '\n kick an account from the server.\n\n Usage\n boot[/switches] <account obj> [: reason]\n\n Switches:\n quiet - Silently boot without informing account\n sid - boot by session id instead of name or dbref\n\n Boot an account object from the server. If a reason is\n supplied it will be echoed to the user unless /quiet is set.\n '}
      -
      -
      @@ -169,11 +163,6 @@ values in each tuple is set to the empty string.

      lock_storage = 'cmd:perm(ban) or perm(Developer)'
      -
      -
      -search_index_entry = {'aliases': 'bans', 'category': 'admin', 'key': 'ban', 'tags': '', 'text': "\n ban an account from the server\n\n Usage:\n ban [<name or ip> [: reason]]\n\n Without any arguments, shows numbered list of active bans.\n\n This command bans a user from accessing the game. Supply an optional\n reason to be able to later remember why the ban was put in place.\n\n It is often preferable to ban an account from the server than to\n delete an account with accounts/delete. If banned by name, that account\n account can no longer be logged into.\n\n IP (Internet Protocol) address banning allows blocking all access\n from a specific address or subnet. Use an asterisk (*) as a\n wildcard.\n\n Examples:\n ban thomas - ban account 'thomas'\n ban/ip 134.233.2.111 - ban specific ip address\n ban/ip 134.233.2.* - ban all in a subnet\n ban/ip 134.233.*.* - even wider ban\n\n A single IP filter can be easy to circumvent by changing computers\n or requesting a new IP address. Setting a wide IP block filter with\n wildcards might be tempting, but remember that it may also\n accidentally block innocent users connecting from the same country\n or region.\n\n "}
      -
      -
      @@ -220,11 +209,6 @@ unban.

      lock_storage = 'cmd:perm(unban) or perm(Developer)'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'admin', 'key': 'unban', 'tags': '', 'text': '\n remove a ban from an account\n\n Usage:\n unban <banid>\n\n This will clear an account name/ip ban previously set with the ban\n command. Use this command without an argument to view a numbered\n list of bans. Use the numbers in this list to select which one to\n unban.\n\n '}
      -
      -
      @@ -283,11 +267,6 @@ to accounts respectively.

      lock_storage = 'cmd:perm(emit) or perm(Builder)'
      -
      -
      -search_index_entry = {'aliases': 'pemit remit', 'category': 'admin', 'key': 'emit', '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 '}
      -
      -
      @@ -331,11 +310,6 @@ to accounts respectively.

      lock_storage = 'cmd:perm(newpassword) or perm(Admin)'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'admin', 'key': 'userpassword', 'tags': '', 'text': "\n change the password of an account\n\n Usage:\n userpassword <user obj> = <new password>\n\n Set an account's password.\n "}
      -
      -
      @@ -389,11 +363,6 @@ or account. If no permission is given, list all permissions on <object>.lock_storage = 'cmd:perm(perm) or perm(Developer)'
      -
      -
      -search_index_entry = {'aliases': 'setperm', 'category': 'admin', 'key': 'perm', 'tags': '', 'text': '\n set the permissions of an account/object\n\n Usage:\n perm[/switch] <object> [= <permission>[,<permission>,...]]\n perm[/switch] *<account> [= <permission>[,<permission>,...]]\n\n Switches:\n del - delete the given permission from <object> or <account>.\n account - set permission on an account (same as adding * to name)\n\n This command sets/clears individual permission strings on an object\n or account. If no permission is given, list all permissions on <object>.\n '}
      -
      -
      @@ -438,11 +407,6 @@ including all currently unlogged in.

      lock_storage = 'cmd:perm(wall) or perm(Admin)'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'admin', 'key': 'wall', 'tags': '', 'text': '\n make an announcement to all\n\n Usage:\n wall <message>\n\n Announces a message to all connected sessions\n including all currently unlogged in.\n '}
      -
      -
      @@ -492,11 +456,6 @@ including all currently unlogged in.

      lock_storage = 'cmd:perm(spawn) or perm(Builder)'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'building', 'key': 'force', 'tags': '', 'text': '\n forces an object to execute a command\n\n Usage:\n force <object>=<command string>\n\n Example:\n force bob=get stick\n '}
      -
      -
      @@ -534,6 +493,7 @@ including all currently unlogged in.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -550,7 +510,6 @@ including all currently unlogged in.

      -
      develop branch
      @@ -104,11 +103,6 @@ skipping, reloading etc.

      lock_storage = 'cmd:perm(batchcommands) or perm(Developer)'
      -
      -
      -search_index_entry = {'aliases': 'batchcmd batchcommand', 'category': 'building', 'key': 'batchcommands', '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 '}
      -
      -
      @@ -167,11 +161,6 @@ object copies behind when testing out the script.

      lock_storage = 'cmd:superuser()'
      -
      -
      -search_index_entry = {'aliases': 'batchcodes', 'category': 'building', 'key': 'batchcode', 'tags': '', 'text': '\n build from batch-code file\n\n Usage:\n batchcode[/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 debug - auto-delete all objects that has been marked as\n deletable in the script file (see example files for\n syntax). This is useful so as to to not leave multiple\n object copies behind when testing out the script.\n\n Runs batches of commands from a batch-code text file (*.py).\n\n '}
      -
      -
      @@ -209,6 +198,7 @@ object copies behind when testing out the script.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -225,7 +215,6 @@ object copies behind when testing out the script.

      -
      develop branch
      @@ -86,11 +85,6 @@ the cases, see the module doc.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'command', 'tags': '', 'text': "\n This is a parent class for some of the defining objmanip commands\n since they tend to have some more variables to define new objects.\n\n Each object definition can have several components. First is\n always a name, followed by an optional alias list and finally an\n some optional data, such as a typeclass or a location. A comma ','\n separates different objects. Like this:\n\n name1;alias;alias;alias:option, name2;alias;alias ...\n\n Spaces between all components are stripped.\n\n A second situation is attribute manipulation. Such commands\n are simpler and offer combinations\n\n objname/attr/attr/attr, objname/attr, ...\n\n "}
      -
      -
      @@ -152,11 +146,6 @@ by everyone.

      lock_storage = 'cmd:perm(setobjalias) or perm(Builder)'
      -
      -
      -search_index_entry = {'aliases': 'setobjalias', 'category': 'building', 'key': 'alias', 'tags': '', 'text': "\n adding permanent aliases for object\n\n Usage:\n alias <obj> [= [alias[,alias,alias,...]]]\n alias <obj> =\n alias/category <obj> = [alias[,alias,...]:<category>\n\n Switches:\n category - requires ending input with :category, to store the\n given aliases with the given category.\n\n Assigns aliases to an object so it can be referenced by more\n than one name. Assign empty to remove all aliases from object. If\n assigning a category, all aliases given will be using this category.\n\n Observe that this is not the same thing as personal aliases\n created with the 'nick' command! Aliases set with alias are\n changing the object in question, making those aliases usable\n by everyone.\n "}
      -
      -
      @@ -202,11 +191,6 @@ one exact copy of the original object will be created with the name lock_storage = 'cmd:perm(copy) or perm(Builder)'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'building', 'key': 'copy', 'tags': '', 'text': "\n copy an object and its properties\n\n Usage:\n copy <original obj> [= <new_name>][;alias;alias..]\n [:<new_location>] [,<new_name2> ...]\n\n Create one or more copies of an object. If you don't supply any targets,\n one exact copy of the original object will be created with the name *_copy.\n "}
      -
      -
      @@ -299,11 +283,6 @@ required and get the attribute from the object.

      lock_storage = 'cmd:perm(cpattr) or perm(Builder)'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'building', 'key': 'cpattr', 'tags': '', 'text': "\n copy attributes between objects\n\n Usage:\n cpattr[/switch] <obj>/<attr> = <obj1>/<attr1> [,<obj2>/<attr2>,<obj3>/<attr3>,...]\n cpattr[/switch] <obj>/<attr> = <obj1> [,<obj2>,<obj3>,...]\n cpattr[/switch] <attr> = <obj1>/<attr1> [,<obj2>/<attr2>,<obj3>/<attr3>,...]\n cpattr[/switch] <attr> = <obj1>[,<obj2>,<obj3>,...]\n\n Switches:\n move - delete the attribute from the source object after copying.\n\n Example:\n cpattr coolness = Anna/chillout, Anna/nicety, Tom/nicety\n ->\n copies the coolness attribute (defined on yourself), to attributes\n on Anna and Tom.\n\n Copy the attribute one object to one or more attributes on another object.\n If you don't supply a source object, yourself is used.\n "}
      -
      -
      @@ -358,11 +337,6 @@ object. If you don’t supply a source object, yourself is used.

      lock_storage = 'cmd:perm(mvattr) or perm(Builder)'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'building', 'key': 'mvattr', 'tags': '', 'text': "\n move attributes between objects\n\n Usage:\n mvattr[/switch] <obj>/<attr> = <obj1>/<attr1> [,<obj2>/<attr2>,<obj3>/<attr3>,...]\n mvattr[/switch] <obj>/<attr> = <obj1> [,<obj2>,<obj3>,...]\n mvattr[/switch] <attr> = <obj1>/<attr1> [,<obj2>/<attr2>,<obj3>/<attr3>,...]\n mvattr[/switch] <attr> = <obj1>[,<obj2>,<obj3>,...]\n\n Switches:\n copy - Don't delete the original after moving.\n\n Move an attribute from one object to one or more attributes on another\n object. If you don't supply a source object, yourself is used.\n "}
      -
      -
      @@ -431,11 +405,6 @@ object of this type like this:

      lock_storage = 'cmd:perm(create) or perm(Builder)'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'building', 'key': 'create', 'tags': '', 'text': "\n create new objects\n\n Usage:\n create[/drop] <objname>[;alias;alias...][:typeclass], <objname>...\n\n switch:\n drop - automatically drop the new object into your current\n location (this is not echoed). This also sets the new\n object's home to the current location rather than to you.\n\n Creates one or more new objects. If typeclass is given, the object\n is created as a child of this typeclass. The typeclass script is\n assumed to be located under types/ and any further\n directory structure is given in Python notation. So if you have a\n correct typeclass 'RedButton' defined in\n types/examples/red_button.py, you could create a new\n object of this type like this:\n\n create/drop button;red : examples.red_button.RedButton\n\n "}
      -
      -
      @@ -492,11 +461,6 @@ describe the current room.

      lock_storage = 'cmd:perm(desc) or perm(Builder)'
      -
      -
      -search_index_entry = {'aliases': 'describe', 'category': 'building', 'key': 'desc', 'tags': '', 'text': '\n describe an object or the current room.\n\n Usage:\n desc [<obj> =] <description>\n\n Switches:\n edit - Open up a line editor for more advanced editing.\n\n Sets the "desc" attribute on an object. If an object is not given,\n describe the current room.\n '}
      -
      -
      @@ -529,7 +493,7 @@ You can specify the /force switch to bypass this confirmation.

      -aliases = ['delete', 'del']
      +aliases = ['del', 'delete']
      @@ -568,11 +532,6 @@ You can specify the /force switch to bypass this confirmation.

      lock_storage = 'cmd:perm(destroy) or perm(Builder)'
      -
      -
      -search_index_entry = {'aliases': 'delete del', 'category': 'building', 'key': 'destroy', '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 '}
      -
      -
      @@ -642,11 +601,6 @@ would be ‘north;no;n’.

      lock_storage = 'cmd:perm(dig) or perm(Builder)'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'building', 'key': 'dig', 'tags': '', 'text': "\n build new rooms and connect them to the current location\n\n Usage:\n dig[/switches] <roomname>[;alias;alias...][:typeclass]\n [= <exit_to_there>[;alias][:typeclass]]\n [, <exit_to_here>[;alias][:typeclass]]\n\n Switches:\n tel or teleport - move yourself to the new room\n\n Examples:\n dig kitchen = north;n, south;s\n dig house:myrooms.MyHouseTypeclass\n dig sheer cliff;cliff;sheer = climb up, climb down\n\n This command is a convenient way to build rooms quickly; it creates the\n new room and you can optionally set up exits back and forth between your\n current room and the new one. You can add as many aliases as you\n like to the name of the room and the exits in question; an example\n would be 'north;no;n'.\n "}
      -
      -
      @@ -717,11 +671,6 @@ For more flexibility and power in creating rooms, use dig.

      lock_storage = 'cmd: perm(tunnel) or perm(Builder)'
      -
      -
      -search_index_entry = {'aliases': 'tun', 'category': 'building', 'key': 'tunnel', 'tags': '', 'text': '\n create new rooms in cardinal directions only\n\n Usage:\n tunnel[/switch] <direction>[:typeclass] [= <roomname>[;alias;alias;...][:typeclass]]\n\n Switches:\n oneway - do not create an exit back to the current location\n tel - teleport to the newly created room\n\n Example:\n tunnel n\n tunnel n = house;mike\'s place;green building\n\n This is a simple way to build using pre-defined directions:\n |wn,ne,e,se,s,sw,w,nw|n (north, northeast etc)\n |wu,d|n (up and down)\n |wi,o|n (in and out)\n The full names (north, in, southwest, etc) will always be put as\n main name for the exit, using the abbreviation as an alias (so an\n exit will always be able to be used with both "north" as well as\n "n" for example). Opposite directions will automatically be\n created back from the new room unless the /oneway switch is given.\n For more flexibility and power in creating rooms, use dig.\n '}
      -
      -
      @@ -777,11 +726,6 @@ currently set destination.

      lock_storage = 'cmd:perm(link) or perm(Builder)'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'building', 'key': 'link', 'tags': '', 'text': '\n link existing rooms together with exits\n\n Usage:\n link[/switches] <object> = <target>\n link[/switches] <object> =\n link[/switches] <object>\n\n Switch:\n twoway - connect two exits. For this to work, BOTH <object>\n and <target> must be exit objects.\n\n If <object> is an exit, set its destination to <target>. Two-way operation\n instead sets the destination to the *locations* of the respective given\n arguments.\n The second form (a lone =) sets the destination to None (same as\n the unlink command) and the third form (without =) just shows the\n currently set destination.\n '}
      -
      -
      @@ -832,11 +776,6 @@ and call func in CmdLink

      lock_storage = 'cmd:perm(unlink) or perm(Builder)'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'building', 'key': 'unlink', 'tags': '', 'text': '\n remove exit-connections between rooms\n\n Usage:\n unlink <Object>\n\n Unlinks an object, for example an exit, disconnecting\n it from whatever it was connected to.\n '}
      -
      -
      @@ -885,11 +824,6 @@ It is also a convenient target of the “home” command.

      lock_storage = 'cmd:perm(sethome) or perm(Builder)'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'building', 'key': 'sethome', 'tags': '', 'text': '\n set an object\'s home location\n\n Usage:\n sethome <obj> [= <home_location>]\n sethom <obj>\n\n The "home" location is a "safety" location for objects; they\n will be moved there if their current location ceases to exist. All\n objects should always have a home location for this reason.\n It is also a convenient target of the "home" command.\n\n If no location is given, just view the object\'s home location.\n '}
      -
      -
      @@ -934,11 +868,6 @@ to a user. Defaults to yourself.

      lock_storage = 'cmd:perm(listcmdsets) or perm(Builder)'
      -
      -
      -search_index_entry = {'aliases': 'listcmsets', 'category': 'building', 'key': 'cmdsets', 'tags': '', 'text': '\n list command sets defined on an object\n\n Usage:\n cmdsets <obj>\n\n This displays all cmdsets assigned\n to a user. Defaults to yourself.\n '}
      -
      -
      @@ -983,11 +912,6 @@ rename an account.

      lock_storage = 'cmd:perm(rename) or perm(Builder)'
      -
      -
      -search_index_entry = {'aliases': 'rename', 'category': 'building', 'key': 'name', 'tags': '', 'text': '\n change the name and/or aliases of an object\n\n Usage:\n name <obj> = <newname>;alias1;alias2\n\n Rename an object to something new. Use *obj to\n rename an account.\n\n '}
      -
      -
      @@ -1049,11 +973,6 @@ as well as the self.create_exit() method.

      lock_storage = 'cmd:perm(open) or perm(Builder)'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'building', 'key': 'open', 'tags': '', 'text': '\n open a new exit from the current room\n\n Usage:\n open <new exit>[;alias;alias..][:typeclass] [,<return exit>[;alias;..][:typeclass]]] = <destination>\n\n Handles the creation of exits. If a destination is given, the exit\n will point there. The <return exit> argument sets up an exit at the\n destination leading back to the current room. Destination name\n can be given both as a #dbref and a name, if that name is globally\n unique.\n\n '}
      -
      -
      @@ -1209,11 +1128,6 @@ with older attrs that might have been named with []’s.

      lock_storage = 'cmd:perm(set) or perm(Builder)'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'building', 'key': 'set', 'tags': '', 'text': '\n set attribute on an object or account\n\n Usage:\n set <obj>/<attr> = <value>\n set <obj>/<attr> =\n set <obj>/<attr>\n set *<account>/<attr> = <value>\n\n Switch:\n edit: Open the line editor (string values only)\n script: If we\'re trying to set an attribute on a script\n channel: If we\'re trying to set an attribute on a channel\n account: If we\'re trying to set an attribute on an account\n room: Setting an attribute on a room (global search)\n exit: Setting an attribute on an exit (global search)\n char: Setting an attribute on a character (global search)\n character: Alias for char, as above.\n\n Sets attributes on objects. The second example form above clears a\n previously set attribute while the third form inspects the current value of\n the attribute (if any). The last one (with the star) is a shortcut for\n operating on a player Account rather than an Object.\n\n The most common data to save with this command are strings and\n numbers. You can however also set Python primitives such as lists,\n dictionaries and tuples on objects (this might be important for\n the functionality of certain custom objects). This is indicated\n by you starting your value with one of |c\'|n, |c"|n, |c(|n, |c[|n\n or |c{ |n.\n\n Once you have stored a Python primitive as noted above, you can include\n |c[<key>]|n in <attr> to reference nested values in e.g. a list or dict.\n\n Remember that if you use Python primitives like this, you must\n write proper Python syntax too - notably you must include quotes\n around your strings or you will get an error.\n\n '}
      -
      -
      @@ -1268,7 +1182,7 @@ server settings.

      -aliases = ['update', 'parent', 'type', 'swap']
      +aliases = ['type', 'parent', 'swap', 'update']
      @@ -1297,11 +1211,6 @@ server settings.

      lock_storage = 'cmd:perm(typeclass) or perm(Builder)'
      -
      -
      -search_index_entry = {'aliases': 'update parent type swap', 'category': 'building', 'key': 'typeclass', '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 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.\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 "}
      -
      -
      @@ -1349,11 +1258,6 @@ matching the given attribute-wildcard search string.

      lock_storage = 'cmd:perm(wipe) or perm(Builder)'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'building', 'key': 'wipe', 'tags': '', 'text': "\n clear all attributes from an object\n\n Usage:\n wipe <object>[/<attr>[/<attr>...]]\n\n Example:\n wipe box\n wipe box/colour\n\n Wipes all of an object's attributes, or optionally only those\n matching the given attribute-wildcard search string.\n "}
      -
      -
      @@ -1421,11 +1325,6 @@ them by ‘;’, i.e:

      lock_storage = 'cmd: perm(locks) or perm(Builder)'
      -
      -
      -search_index_entry = {'aliases': 'locks', 'category': 'building', 'key': 'lock', 'tags': '', 'text': "\n assign a lock definition to an object\n\n Usage:\n lock <object or *account>[ = <lockstring>]\n or\n lock[/switch] <object or *account>/<access_type>\n\n Switch:\n del - delete given access type\n view - view lock associated with given access type (default)\n\n If no lockstring is given, shows all locks on\n object.\n\n Lockstring is of the form\n access_type:[NOT] func1(args)[ AND|OR][ NOT] func2(args) ...]\n Where func1, func2 ... valid lockfuncs with or without arguments.\n Separator expressions need not be capitalized.\n\n For example:\n 'get: id(25) or perm(Admin)'\n The 'get' lock access_type is checked e.g. by the 'get' command.\n An object locked with this example lock will only be possible to pick up\n by Admins or by an object with id=25.\n\n You can add several access_types after one another by separating\n them by ';', i.e:\n 'get:id(25); delete:perm(Builder)'\n "}
      -
      -
      @@ -1452,7 +1351,7 @@ If object is not specified, the current location is examined.

      -aliases = ['ex', 'exam']
      +aliases = ['exam', 'ex']
      @@ -1547,11 +1446,6 @@ non-persistent data stored on object

      lock_storage = 'cmd:perm(examine) or perm(Builder)'
      -
      -
      -search_index_entry = {'aliases': 'ex exam', 'category': 'building', 'key': 'examine', '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\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 '}
      -
      -
      @@ -1583,7 +1477,7 @@ one is given.

      -aliases = ['locate', 'search']
      +aliases = ['search', 'locate']
      @@ -1612,11 +1506,6 @@ one is given.

      lock_storage = 'cmd:perm(find) or perm(Builder)'
      -
      -
      -search_index_entry = {'aliases': 'locate search', 'category': 'building', 'key': 'find', 'tags': '', 'text': '\n search the database for objects\n\n Usage:\n find[/switches] <name or dbref or *account> [= dbrefmin[-dbrefmax]]\n locate - this is a shorthand for using the /loc switch.\n\n Switches:\n room - only look for rooms (location=None)\n exit - only look for exits (destination!=None)\n char - only look for characters (BASE_CHARACTER_TYPECLASS)\n exact - only exact matches are returned.\n loc - display object location if exists and match has one result\n startswith - search for names starting with the string, rather than containing\n\n Searches the database for an object of a particular name or exact #dbref.\n Use *accountname to search for an account. The switches allows for\n limiting object matches to certain game entities. Dbrefmin and dbrefmax\n limits matches to within the given dbrefs range, or above/below if only\n one is given.\n '}
      -
      -
      @@ -1690,11 +1579,6 @@ teleported to the target location.

      lock_storage = 'cmd:perm(teleport) or perm(Builder)'
      -
      -
      -search_index_entry = {'aliases': 'teleport', 'category': 'building', 'key': 'tel', 'tags': '', 'text': "\n teleport object to another location\n\n Usage:\n tel/switch [<object> to||=] <target location>\n\n Examples:\n tel Limbo\n tel/quiet box = Limbo\n tel/tonone box\n\n Switches:\n quiet - don't echo leave/arrive messages to the source/target\n locations for the move.\n intoexit - if target is an exit, teleport INTO\n the exit object instead of to its destination\n tonone - if set, teleport the object to a None-location. If this\n switch is set, <target location> is ignored.\n Note that the only way to retrieve\n an object from a None location is by direct #dbref\n reference. A puppeted object cannot be moved to None.\n loc - teleport object to the target's location instead of its contents\n\n Teleports an object somewhere. If no object is given, you yourself are\n teleported to the target location.\n "}
      -
      -
      @@ -1752,11 +1636,6 @@ the object.

      lock_storage = 'cmd:perm(script) or perm(Builder)'
      -
      -
      -search_index_entry = {'aliases': 'addscript', 'category': 'building', 'key': 'script', 'tags': '', 'text': '\n attach a script to an object\n\n Usage:\n script[/switch] <obj> [= script_path or <scriptkey>]\n\n Switches:\n start - start all non-running scripts on object, or a given script only\n stop - stop all scripts on objects, or a given script only\n\n If no script path/key is given, lists all scripts active on the given\n object.\n Script path can be given from the base location for scripts as given in\n settings. If adding a new script, it will be started automatically\n (no /start switch is needed). Using the /start or /stop switches on an\n object without specifying a script key/path will start/stop ALL scripts on\n the object.\n '}
      -
      -
      @@ -1823,11 +1702,6 @@ enough to for most grouping schemes.

      lock_storage = 'cmd:perm(tag) or perm(Builder)'
      -
      -
      -search_index_entry = {'aliases': 'tags', 'category': 'building', 'key': 'tag', 'tags': '', 'text': '\n handles the tags of an object\n\n Usage:\n tag[/del] <obj> [= <tag>[:<category>]]\n tag/search <tag>[:<category]\n\n Switches:\n search - return all objects with a given Tag\n del - remove the given tag. If no tag is specified,\n clear all tags on object.\n\n Manipulates and lists tags on objects. Tags allow for quick\n grouping of and searching for objects. If only <obj> is given,\n list all tags on the object. If /search is used, list objects\n with the given tag.\n The category can be used for grouping tags themselves, but it\n should be used with restrain - tags on their own are usually\n enough to for most grouping schemes.\n '}
      -
      -
      @@ -1934,11 +1808,6 @@ displays a list of available prototypes.

      lock_storage = 'cmd:perm(spawn) or perm(Builder)'
      -
      -
      -search_index_entry = {'aliases': 'olc', 'category': 'building', 'key': 'spawn', 'tags': '', 'text': '\n spawn objects from prototype\n\n Usage:\n spawn[/noloc] <prototype_key>\n spawn[/noloc] <prototype_dict>\n\n spawn/search [prototype_keykey][;tag[,tag]]\n spawn/list [tag, tag, ...]\n spawn/list modules - list only module-based prototypes\n spawn/show [<prototype_key>]\n spawn/update <prototype_key>\n\n spawn/save <prototype_dict>\n spawn/edit [<prototype_key>]\n olc - equivalent to spawn/edit\n\n Switches:\n noloc - allow location to be None if not specified explicitly. Otherwise,\n location will default to caller\'s current location.\n search - search prototype by name or tags.\n list - list available prototypes, optionally limit by tags.\n show, examine - inspect prototype by key. If not given, acts like list.\n raw - show the raw dict of the prototype as a one-line string for manual editing.\n save - save a prototype to the database. It will be listable by /list.\n delete - remove a prototype from database, if allowed to.\n update - find existing objects with the same prototype_key and update\n them with latest version of given prototype. If given with /save,\n will auto-update all objects with the old version of the prototype\n without asking first.\n edit, menu, olc - create/manipulate prototype in a menu interface.\n\n Example:\n spawn GOBLIN\n spawn {"key":"goblin", "typeclass":"monster.Monster", "location":"#2"}\n spawn/save {"key": "grunt", prototype: "goblin"};;mobs;edit:all()\n \x0c\n Dictionary keys:\n |wprototype_parent |n - name of parent prototype to use. Required if typeclass is\n not set. Can be a path or a list for multiple inheritance (inherits\n left to right). If set one of the parents must have a typeclass.\n |wtypeclass |n - string. Required if prototype_parent is not set.\n |wkey |n - string, the main object identifier\n |wlocation |n - this should be a valid object or #dbref\n |whome |n - valid object or #dbref\n |wdestination|n - only valid for exits (object or dbref)\n |wpermissions|n - string or list of permission strings\n |wlocks |n - a lock-string\n |waliases |n - string or list of strings.\n |wndb_|n<name> - value of a nattribute (ndb_ is stripped)\n\n |wprototype_key|n - name of this prototype. Unique. Used to store/retrieve from db\n and update existing prototyped objects if desired.\n |wprototype_desc|n - desc of this prototype. Used in listings\n |wprototype_locks|n - locks of this prototype. Limits who may use prototype\n |wprototype_tags|n - tags of this prototype. Used to find prototype\n\n any other keywords are interpreted as Attributes and their values.\n\n The available prototypes are defined globally in modules set in\n settings.PROTOTYPE_MODULES. If spawn is used without arguments it\n displays a list of available prototypes.\n\n '}
      -
      -
      @@ -1976,6 +1845,7 @@ displays a list of available prototypes.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -1992,7 +1862,6 @@ displays a list of available prototypes.

      -
      develop branch
      @@ -108,6 +107,7 @@ command method rather than caller.msg().

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -124,7 +124,6 @@ command method rather than caller.msg().

      -
      develop branch
      @@ -106,6 +105,7 @@ Account cmdset. Account commands remain available also to Characters.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -122,7 +122,6 @@ Account cmdset. Account commands remain available also to Characters.

      -
      develop branch
      @@ -103,6 +102,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -119,7 +119,6 @@ -
      develop branch
      @@ -105,6 +104,7 @@ of the state instance in this module.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -121,7 +121,6 @@ of the state instance in this module.

      -
      develop branch
      @@ -93,11 +92,6 @@ aliases to an already joined channel.

      lock_storage = 'cmd:not pperm(channel_banned)'
      -
      -
      -search_index_entry = {'aliases': 'aliaschan chanalias', 'category': 'comms', 'key': 'addcom', '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 '}
      -
      -
      @@ -121,7 +115,7 @@ for that channel.

      -aliases = ['delchanalias', 'delaliaschan']
      +aliases = ['delaliaschan', 'delchanalias']
      @@ -150,11 +144,6 @@ for that channel.

      lock_storage = 'cmd:not perm(channel_banned)'
      -
      -
      -search_index_entry = {'aliases': 'delchanalias delaliaschan', 'category': 'comms', 'key': 'delcom', 'tags': '', 'text': "\n remove a channel alias and/or unsubscribe from channel\n\n Usage:\n delcom <alias or channel>\n delcom/all <channel>\n\n If the full channel name is given, unsubscribe from the\n channel. If an alias is given, remove the alias but don't\n unsubscribe. If the 'all' switch is used, remove all aliases\n for that channel.\n "}
      -
      -
      @@ -206,11 +195,6 @@ channels that you control.

      lock_storage = 'cmd: not pperm(channel_banned)'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'comms', 'key': 'allcom', 'tags': '', 'text': "\n perform admin operations on all channels\n\n Usage:\n allcom [on | off | who | destroy]\n\n Allows the user to universally turn off or on all channels they are on, as\n well as perform a 'who' for all channels they are on. Destroy deletes all\n channels that you control.\n\n Without argument, works like comlist.\n "}
      -
      -
      @@ -234,7 +218,7 @@ Use addcom/delcom to join and leave channels

      -aliases = ['channellist', 'chanlist', 'comlist', 'all channels', 'clist']
      +aliases = ['chanlist', 'channellist', 'comlist', 'clist', 'all channels']
      @@ -263,11 +247,6 @@ Use addcom/delcom to join and leave channels

      lock_storage = 'cmd: not pperm(channel_banned)'
      -
      -
      -search_index_entry = {'aliases': 'channellist chanlist comlist all channels clist', 'category': 'comms', 'key': 'channels', 'tags': '', 'text': "\n list all channels available to you\n\n Usage:\n channels\n clist\n comlist\n\n Lists all channels available to you, whether you listen to them or not.\n Use 'comlist' to only view your current channel subscriptions.\n Use addcom/delcom to join and leave channels\n "}
      -
      -
      @@ -316,11 +295,6 @@ Use addcom/delcom to join and leave channels

      lock_storage = 'cmd: not pperm(channel_banned)'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'comms', 'key': 'cdestroy', 'tags': '', 'text': '\n destroy a channel you created\n\n Usage:\n cdestroy <channel>\n\n Destroys a channel that you control.\n '}
      -
      -
      @@ -376,11 +350,6 @@ Use addcom/delcom to join and leave channels

      lock_storage = 'cmd: not pperm(channel_banned)'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'comms', 'key': 'cboot', 'tags': '', 'text': "\n kick an account from a channel you control\n\n Usage:\n cboot[/quiet] <channel> = <account> [:reason]\n\n Switch:\n quiet - don't notify the channel\n\n Kicks an account or object from a channel you control.\n\n "}
      -
      -
      @@ -439,11 +408,6 @@ provide the /sendername switch.

      lock_storage = 'cmd: not pperm(channel_banned) and pperm(Player)'
      -
      -
      -search_index_entry = {'aliases': 'cmsg', 'category': 'comms', 'key': 'cemit', 'tags': '', 'text': "\n send an admin message to a channel you control\n\n Usage:\n cemit[/switches] <channel> = <message>\n\n Switches:\n sendername - attach the sender's name before the message\n quiet - don't echo the message back to sender\n\n Allows the user to broadcast a message over a channel as long as\n they control it. It does not show the user's name unless they\n provide the /sendername switch.\n\n "}
      -
      -
      @@ -492,11 +456,6 @@ provide the /sendername switch.

      lock_storage = 'cmd: not pperm(channel_banned)'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'comms', 'key': 'cwho', 'tags': '', 'text': '\n show who is listening to a channel\n\n Usage:\n cwho <channel>\n\n List who is connected to a given channel you have access to.\n '}
      -
      -
      @@ -545,11 +504,6 @@ provide the /sendername switch.

      lock_storage = 'cmd:not pperm(channel_banned) and pperm(Player)'
      -
      -
      -search_index_entry = {'aliases': 'channelcreate', 'category': 'comms', 'key': 'ccreate', 'tags': '', 'text': '\n create a new channel\n\n Usage:\n ccreate <new channel>[;alias;alias...] = description\n\n Creates a new channel owned by you.\n '}
      -
      -
      @@ -599,11 +553,6 @@ lockstring was given, view the current lock definitions.

      lock_storage = 'cmd:not pperm(channel_banned)'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'comms', 'key': 'clock', 'tags': '', 'text': '\n change channel locks of a channel you control\n\n Usage:\n clock <channel> [= <lockstring>]\n\n Changes the lock access restrictions of a channel. If no\n lockstring was given, view the current lock definitions.\n '}
      -
      -
      @@ -653,11 +602,6 @@ channel lists.

      lock_storage = 'cmd:not pperm(channel_banned)'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'comms', 'key': 'cdesc', 'tags': '', 'text': '\n describe a channel you control\n\n Usage:\n cdesc <channel> = <description>\n\n Changes the description of the channel as shown in\n channel lists.\n '}
      -
      -
      @@ -717,11 +661,6 @@ argument is given, you will get a list of your latest messages.

      lock_storage = 'cmd:not pperm(page_banned)'
      -
      -
      -search_index_entry = {'aliases': 'tell', 'category': 'comms', 'key': 'page', 'tags': '', 'text': "\n send a private message to another account\n\n Usage:\n page[/switches] [<account>,<account>,... = <message>]\n tell ''\n page <number>\n\n Switch:\n last - shows who you last messaged\n list - show your last <number> of tells/pages (default)\n\n Send a message to target user (if online). If no\n argument is given, you will get a list of your latest messages.\n "}
      -
      -
      @@ -799,11 +738,6 @@ Provide an optional bot class path to use a custom bot.

      lock_storage = 'cmd:serversetting(IRC_ENABLED) and pperm(Developer)'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'comms', 'key': 'irc2chan', 'tags': '', 'text': '\n Link an evennia channel to an external IRC channel\n\n Usage:\n irc2chan[/switches] <evennia_channel> = <ircnetwork> <port> <#irchannel> <botname>[:typeclass]\n irc2chan/delete botname|#dbid\n\n Switches:\n /delete - this will delete the bot and remove the irc connection\n to the channel. Requires the botname or #dbid as input.\n /remove - alias to /delete\n /disconnect - alias to /delete\n /list - show all irc<->evennia mappings\n /ssl - use an SSL-encrypted connection\n\n Example:\n irc2chan myircchan = irc.dalnet.net 6667 #mychannel evennia-bot\n irc2chan public = irc.freenode.net 6667 #evgaming #evbot:accounts.mybot.MyBot\n\n This creates an IRC bot that connects to a given IRC network and\n channel. If a custom typeclass path is given, this will be used\n instead of the default bot class.\n The bot will relay everything said in the evennia channel to the\n IRC channel and vice versa. The bot will automatically connect at\n server start, so this command need only be given once. The\n /disconnect switch will permanently delete the bot. To only\n temporarily deactivate it, use the |wservices|n command instead.\n Provide an optional bot class path to use a custom bot.\n '}
      -
      -
      @@ -855,11 +789,6 @@ messages sent to either channel will be lost.

      lock_storage = 'cmd:serversetting(IRC_ENABLED) and perm(ircstatus) or perm(Builder))'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'comms', 'key': 'ircstatus', 'tags': '', 'text': "\n Check and reboot IRC bot.\n\n Usage:\n ircstatus [#dbref ping||nicklist||reconnect]\n\n If not given arguments, will return a list of all bots (like\n irc2chan/list). The 'ping' argument will ping the IRC network to\n see if the connection is still responsive. The 'nicklist' argument\n (aliases are 'who' and 'users') will return a list of users on the\n remote IRC channel. Finally, 'reconnect' will force the client to\n disconnect and reconnect again. This may be a last resort if the\n client has silently lost connection (this may happen if the remote\n network experience network issues). During the reconnection\n messages sent to either channel will be lost.\n\n "}
      -
      -
      @@ -932,11 +861,6 @@ to identify the connection uniquely.

      lock_storage = 'cmd:serversetting(RSS_ENABLED) and pperm(Developer)'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'comms', 'key': 'rss2chan', 'tags': '', 'text': '\n link an evennia channel to an external RSS feed\n\n Usage:\n rss2chan[/switches] <evennia_channel> = <rss_url>\n\n Switches:\n /disconnect - this will stop the feed and remove the connection to the\n channel.\n /remove - "\n /list - show all rss->evennia mappings\n\n Example:\n rss2chan rsschan = http://code.google.com/feeds/p/evennia/updates/basic\n\n This creates an RSS reader that connects to a given RSS feed url. Updates\n will be echoed as a title and news link to the given channel. The rate of\n updating is set with the RSS_UPDATE_INTERVAL variable in settings (default\n is every 10 minutes).\n\n When disconnecting you need to supply both the channel and url again so as\n to identify the connection uniquely.\n '}
      -
      -
      @@ -1010,11 +934,6 @@ must be added to game settings.

      lock_storage = 'cmd:serversetting(GRAPEVINE_ENABLED) and pperm(Developer)'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'comms', 'key': 'grapevine2chan', 'tags': '', 'text': '\n Link an Evennia channel to an exteral Grapevine channel\n\n Usage:\n grapevine2chan[/switches] <evennia_channel> = <grapevine_channel>\n grapevine2chan/disconnect <connection #id>\n\n Switches:\n /list - (or no switch): show existing grapevine <-> Evennia\n mappings and available grapevine chans\n /remove - alias to disconnect\n /delete - alias to disconnect\n\n Example:\n grapevine2chan mygrapevine = gossip\n\n This creates a link between an in-game Evennia channel and an external\n Grapevine channel. The game must be registered with the Grapevine network\n (register at https://grapevine.haus) and the GRAPEVINE_* auth information\n must be added to game settings.\n '}
      -
      -
      @@ -1052,6 +971,7 @@ must be added to game settings.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -1068,7 +988,6 @@ must be added to game settings.

      -
      develop branch
      @@ -86,11 +85,6 @@ lock_storage = 'cmd:perm(home) or perm(Builder)'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'home', 'tags': '', 'text': "\n move to your character's home location\n\n Usage:\n home\n\n Teleports you to your home location.\n "}
      -
      -
      @@ -141,11 +135,6 @@ look *<account&g lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': 'ls l', 'category': 'general', 'key': 'look', '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 '}
      -
      -
      @@ -235,11 +224,6 @@ for everyone to use, you need build privileges and the alias command.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': 'nickname nicks', 'category': 'general', 'key': 'nick', '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 '}
      -
      -
      @@ -260,7 +244,7 @@ inv

      -aliases = ['i', 'inv']
      +aliases = ['inv', 'i']
      @@ -289,11 +273,6 @@ inv

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': 'i inv', 'category': 'general', 'key': 'inventory', 'tags': '', 'text': '\n view inventory\n\n Usage:\n inventory\n inv\n\n Shows your inventory.\n '}
      -
      -
      @@ -344,11 +323,6 @@ look at you.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'setdesc', 'tags': '', 'text': '\n describe yourself\n\n Usage:\n setdesc <description>\n\n Add a description to yourself. This\n will be visible to people when they\n look at you.\n '}
      -
      -
      @@ -398,11 +372,6 @@ your inventory.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': 'grab', 'category': 'general', 'key': 'get', 'tags': '', 'text': '\n pick up something\n\n Usage:\n get <obj>\n\n Picks up an object from your location and puts it in\n your inventory.\n '}
      -
      -
      @@ -452,11 +421,6 @@ location you are currently in.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'drop', 'tags': '', 'text': '\n drop something\n\n Usage:\n drop <obj>\n\n Lets you drop an object from your inventory into the\n location you are currently in.\n '}
      -
      -
      @@ -511,11 +475,6 @@ placing it in their inventory.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'give', 'tags': '', 'text': '\n give away something to someone\n\n Usage:\n give <inventory obj> <to||=> <target>\n\n Gives an items from your inventory to another character,\n placing it in their inventory.\n '}
      -
      -
      @@ -535,7 +494,7 @@ placing it in their inventory.

      -aliases = ['"', "'"]
      +aliases = ["'", '"']
      @@ -559,11 +518,6 @@ placing it in their inventory.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': '" \'', 'category': 'general', 'key': 'say', 'tags': '', 'text': '\n speak as your character\n\n Usage:\n say <message>\n\n Talk to those in your current location.\n '}
      -
      -
      @@ -609,11 +563,6 @@ others in the room being informed.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'whisper', 'tags': '', 'text': '\n Speak privately as your character to another\n\n Usage:\n whisper <character> = <message>\n whisper <char1>, <char2> = <message>\n\n Talk privately to one or more characters in your current location, without\n others in the room being informed.\n '}
      -
      -
      @@ -675,11 +624,6 @@ space.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': 'emote :', 'category': 'general', 'key': 'pose', '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 "}
      -
      -
      @@ -729,11 +673,6 @@ which permission groups you are a member of.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': 'groups hierarchy', 'category': 'general', 'key': 'access', '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 '}
      -
      -
      @@ -771,6 +710,7 @@ which permission groups you are a member of.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -787,7 +727,6 @@ which permission groups you are a member of.

      -
      develop branch
      @@ -47,7 +46,7 @@ creation of other help topics such as RP help or game-world aides.

      class evennia.commands.default.help.CmdHelp(**kwargs)[source]
      -

      Bases: evennia.commands.command.Command

      +

      Bases: evennia.commands.default.muxcommand.MuxCommand

      View help or a list of topics

      Usage:

      help <topic or command> @@ -126,7 +125,7 @@ entry is displayed.

      -format_help_list(hdict_cmds, hdict_db)[source]
      +static format_help_list(hdict_cmds, hdict_db)[source]

      Output a category-ordered list. The input are the pre-loaded help files for commands and database-helpfiles respectively. You can override this method to return a @@ -200,11 +199,6 @@ False: the command shouldn’t appear in the table.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': '?', 'category': 'general', 'key': 'help', 'tags': '', 'text': '\n View help or a list of topics\n\n Usage:\n help <topic or command>\n help list\n help all\n\n This will search for help on commands and other\n topics related to the game.\n '}
      -
      -
      @@ -267,11 +261,6 @@ is to let everyone read the help file.

      lock_storage = 'cmd:perm(Helper)'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'building', 'key': 'sethelp', 'tags': '', 'text': '\n Edit the help database.\n\n Usage:\n help[/switches] <topic>[[;alias;alias][,category[,locks]] [= <text>]\n\n Switches:\n edit - open a line editor to edit the topic\'s help text.\n replace - overwrite existing help topic.\n append - add text to the end of existing topic with a newline between.\n extend - as append, but don\'t add a newline.\n delete - remove help topic.\n\n Examples:\n sethelp throw = This throws something at ...\n sethelp/append pickpocketing,Thievery = This steals ...\n sethelp/replace pickpocketing, ,attr(is_thief) = This steals ...\n sethelp/edit thievery\n\n This command manipulates the help database. A help entry can be created,\n appended/merged to and deleted. If you don\'t assign a category, the\n "General" category will be used. If no lockstring is specified, default\n is to let everyone read the help file.\n\n '}
      -
      -
      @@ -309,6 +298,7 @@ is to let everyone read the help file.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -325,7 +315,6 @@ is to let everyone read the help file.

      -
      develop branch
      @@ -95,6 +94,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -111,7 +111,6 @@ -
      develop branch
      @@ -184,11 +183,6 @@ to all the variables defined therein.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'command', 'tags': '', 'text': "\n This sets up the basis for a MUX command. The idea\n is that most other Mux-related commands should just\n inherit from this and don't have to implement much\n parsing of their own unless they do something particularly\n advanced.\n\n Note that the class's __doc__ string (this text) is\n used by Evennia to create the automatic help entry for\n the command, so make sure to document consistently here.\n "}
      -
      -
      @@ -229,11 +223,6 @@ character is actually attached to this Account and Session.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'command', 'tags': '', 'text': '\n This is an on-Account version of the MuxCommand. Since these commands sit\n on Accounts rather than on Characters/Objects, we need to check\n this in the parser.\n\n Account commands are available also when puppeting a Character, it\'s\n just that they are applied with a lower priority and are always\n available, also when disconnected from a character (i.e. "ooc").\n\n This class makes sure that caller is always an Account object, while\n creating a new property "character" that is set only if a\n character is actually attached to this Account and Session.\n '}
      -
      -
      @@ -271,6 +260,7 @@ character is actually attached to this Account and Session.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -287,7 +277,6 @@ character is actually attached to this Account and Session.

      -
      develop branch
      @@ -89,11 +88,6 @@ the line is just added to the editor buffer).

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'general', 'key': '__noinput_command', 'tags': '', 'text': '\n This is called when there is no input given\n '}
      -
      -
      @@ -132,11 +126,6 @@ the line is just added to the editor buffer).

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'general', 'key': '__nomatch_command', 'tags': '', 'text': '\n No command was found matching the given input.\n '}
      -
      -
      @@ -185,11 +174,6 @@ the raw_cmdname is the cmdname unmodified by eventual prefix-st lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'general', 'key': '__multimatch_command', 'tags': '', 'text': "\n Multiple command matches.\n\n The cmdhandler adds a special attribute 'matches' to this\n system command.\n\n matches = [(cmdname, args, cmdobj, cmdlen, mratio, raw_cmdname) , (cmdname, ...), ...]\n\n Here, `cmdname` is the command's name and `args` the rest of the incoming string,\n without said command name. `cmdobj` is the Command instance, the cmdlen is\n the same as len(cmdname) and mratio is a measure of how big a part of the\n full input string the cmdname takes up - an exact match would be 1.0. Finally,\n the `raw_cmdname` is the cmdname unmodified by eventual prefix-stripping.\n\n "}
      -
      -
      @@ -304,11 +288,6 @@ the already formatted input.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'general', 'key': '__send_to_channel_command', 'tags': '', 'text': '\n This is a special command that the cmdhandler calls\n when it detects that the command given matches\n an existing Channel object key (or alias).\n '}
      -
      -
      @@ -346,6 +325,7 @@ the already formatted input.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -362,7 +342,6 @@ the already formatted input.

      -
      develop branch
      @@ -83,11 +82,6 @@ reset to purge) and at_reload() hooks will be called.

      lock_storage = 'cmd:perm(reload) or perm(Developer)'
      -
      -
      -search_index_entry = {'aliases': 'restart', 'category': 'system', 'key': 'reload', 'tags': '', 'text': '\n reload the server\n\n Usage:\n reload [reason]\n\n This restarts the server. The Portal is not\n affected. Non-persistent scripts will survive a reload (use\n reset to purge) and at_reload() hooks will be called.\n '}
      -
      -
      @@ -140,11 +134,6 @@ cmdsets etc will be wiped.

      lock_storage = 'cmd:perm(reload) or perm(Developer)'
      -
      -
      -search_index_entry = {'aliases': 'reboot', 'category': 'system', 'key': 'reset', 'tags': '', 'text': '\n reset and reboot the server\n\n Usage:\n reset\n\n Notes:\n For normal updating you are recommended to use reload rather\n than this command. Use shutdown for a complete stop of\n everything.\n\n This emulates a cold reboot of the Server component of Evennia.\n The difference to shutdown is that the Server will auto-reboot\n and that it does not affect the Portal, so no users will be\n disconnected. Contrary to reload however, all shutdown hooks will\n be called and any non-database saved scripts, ndb-attributes,\n cmdsets etc will be wiped.\n\n '}
      -
      -
      @@ -188,11 +177,6 @@ cmdsets etc will be wiped.

      lock_storage = 'cmd:perm(shutdown) or perm(Developer)'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'system', 'key': 'shutdown', 'tags': '', 'text': '\n stop the server completely\n\n Usage:\n shutdown [announcement]\n\n Gracefully shut down both Server and Portal.\n '}
      -
      -
      @@ -280,11 +264,6 @@ should only be accessible by trusted server admins/superusers.|n

      lock_storage = 'cmd:perm(py) or perm(Developer)'
      -
      -
      -search_index_entry = {'aliases': '!', 'category': 'system', 'key': 'py', 'tags': '', 'text': "\n execute a snippet of python code\n\n Usage:\n py [cmd]\n py/edit\n py/time <cmd>\n py/clientraw <cmd>\n py/noecho\n\n Switches:\n time - output an approximate execution time for <cmd>\n edit - open a code editor for multi-line code experimentation\n clientraw - turn off all client-specific escaping. Note that this may\n lead to different output depending on prototocol (such as angular brackets\n being parsed as HTML in the webclient but not in telnet clients)\n noecho - in Python console mode, turn off the input echo (e.g. if your client\n does this for you already)\n\n Without argument, open a Python console in-game. This is a full console,\n accepting multi-line Python code for testing and debugging. Type `exit()` to\n return to the game. If Evennia is reloaded, the console will be closed.\n\n Enter a line of instruction after the 'py' command to execute it\n immediately. Separate multiple commands by ';' or open the code editor\n using the /edit switch (all lines added in editor will be executed\n immediately when closing or using the execute command in the editor).\n\n A few variables are made available for convenience in order to offer access\n to the system (you can import more at execution time).\n\n Available variables in py environment:\n self, me : caller\n here : caller.location\n evennia : the evennia API\n inherits_from(obj, parent) : check object inheritance\n\n You can explore The evennia API from inside the game by calling\n the `__doc__` property on entities:\n py evennia.__doc__\n py evennia.managers.__doc__\n\n |rNote: In the wrong hands this command is a severe security risk. It\n should only be accessible by trusted server admins/superusers.|n\n\n "}
      -
      -
      @@ -348,11 +327,6 @@ required since whole classes of scripts often have the same name.

      lock_storage = 'cmd:perm(listscripts) or perm(Admin)'
      -
      -
      -search_index_entry = {'aliases': 'globalscript listscripts', 'category': 'system', 'key': 'scripts', 'tags': '', 'text': '\n list and manage all running scripts\n\n Usage:\n scripts[/switches] [#dbref, key, script.path or <obj>]\n\n Switches:\n start - start a script (must supply a script path)\n stop - stops an existing script\n kill - kills a script - without running its cleanup hooks\n validate - run a validation on the script(s)\n\n If no switches are given, this command just views all active\n scripts. The argument can be either an object, at which point it\n will be searched for all scripts defined on it, or a script name\n or #dbref. For using the /stop switch, a unique script #dbref is\n required since whole classes of scripts often have the same name.\n\n Use script for managing commands on objects.\n '}
      -
      -
      @@ -398,11 +372,6 @@ given, <nr> defaults to 10.

      lock_storage = 'cmd:perm(listobjects) or perm(Builder)'
      -
      -
      -search_index_entry = {'aliases': 'stats listobjs db listobjects', 'category': 'system', 'key': 'objects', 'tags': '', 'text': '\n statistics on objects in the database\n\n Usage:\n objects [<nr>]\n\n Gives statictics on objects in database as well as\n a list of <nr> latest objects in database. If not\n given, <nr> defaults to 10.\n '}
      -
      -
      @@ -460,11 +429,6 @@ in the list.

      lock_storage = 'cmd:perm(service) or perm(Developer)'
      -
      -
      -search_index_entry = {'aliases': 'services', 'category': 'system', 'key': 'service', 'tags': '', 'text': '\n manage system services\n\n Usage:\n service[/switch] <service>\n\n Switches:\n list - shows all available services (default)\n start - activates or reactivate a service\n stop - stops/inactivate a service (can often be restarted)\n delete - tries to permanently remove a service\n\n Service management system. Allows for the listing,\n starting, and stopping of services. If no switches\n are given, services will be listed. Note that to operate on the\n service you have to supply the full (green or red) name as given\n in the list.\n '}
      -
      -
      @@ -508,11 +472,6 @@ in the list.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': 'version', 'category': 'system', 'key': 'about', 'tags': '', 'text': '\n show Evennia info\n\n Usage:\n about\n\n Display info about the game engine.\n '}
      -
      -
      @@ -557,11 +516,6 @@ and the current time stamp.

      lock_storage = 'cmd:perm(time) or perm(Player)'
      -
      -
      -search_index_entry = {'aliases': 'uptime', 'category': 'system', 'key': 'time', 'tags': '', 'text': '\n show server time statistics\n\n Usage:\n time\n\n List Server time statistics such as uptime\n and the current time stamp.\n '}
      -
      -
      @@ -601,7 +555,7 @@ the released memory will instead be re-used by the program.

      -aliases = ['serverload', 'serverprocess']
      +aliases = ['serverprocess', 'serverload']
      @@ -630,11 +584,6 @@ the released memory will instead be re-used by the program.

      lock_storage = 'cmd:perm(list) or perm(Developer)'
      -
      -
      -search_index_entry = {'aliases': 'serverload serverprocess', 'category': 'system', 'key': 'server', 'tags': '', 'text': "\n show server load and memory statistics\n\n Usage:\n server[/mem]\n\n Switches:\n mem - return only a string of the current memory usage\n flushmem - flush the idmapper cache\n\n This command shows server load statistics and dynamic memory\n usage. It also allows to flush the cache of accessed database\n objects.\n\n Some Important statistics in the table:\n\n |wServer load|n is an average of processor usage. It's usually\n between 0 (no usage) and 1 (100% usage), but may also be\n temporarily higher if your computer has multiple CPU cores.\n\n The |wResident/Virtual memory|n displays the total memory used by\n the server process.\n\n Evennia |wcaches|n all retrieved database entities when they are\n loaded by use of the idmapper functionality. This allows Evennia\n to maintain the same instances of an entity and allowing\n non-persistent storage schemes. The total amount of cached objects\n are displayed plus a breakdown of database object types.\n\n The |wflushmem|n switch allows to flush the object cache. Please\n note that due to how Python's memory management works, releasing\n caches may not show you a lower Residual/Virtual memory footprint,\n the released memory will instead be re-used by the program.\n\n "}
      -
      -
      @@ -672,6 +621,7 @@ the released memory will instead be re-used by the program.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -688,7 +638,6 @@ the released memory will instead be re-used by the program.

      -
      develop branch
      @@ -139,18 +138,6 @@ output sent to caller.msg in the game

      class evennia.commands.default.tests.TestHelp(methodName='runTest')[source]

      Bases: evennia.commands.default.tests.CommandTest

      -
      -
      -setUp()[source]
      -

      Sets up testing environment

      -
      - -
      -
      -tearDown()[source]
      -

      Hook method for deconstructing the test fixture after testing it.

      -
      -
      test_help()[source]
      @@ -612,11 +599,6 @@ set in self.parse())

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'interrupt', 'tags': '', 'text': '\n Base command\n\n Usage:\n command [args]\n\n This is the base command class. Inherit from this\n to create new commands.\n\n The cmdhandler makes the following variables available to the\n command methods (so you can always assume them to be there):\n self.caller - the game object calling the command\n self.cmdstring - the command name used to trigger this command (allows\n you to know which alias was used, for example)\n cmd.args - everything supplied to the command following the cmdstring\n (this is usually what is parsed in self.parse())\n cmd.cmdset - the cmdset from which this command was matched (useful only\n seldomly, notably for help-type commands, to create dynamic\n help entries and lists)\n cmd.obj - the object on which this command is defined. If a default command,\n this is usually the same as caller.\n cmd.rawstring - the full raw string input, including any args and no parsing.\n\n The following class properties can/should be defined on your child class:\n\n key - identifier for command (e.g. "look")\n aliases - (optional) list of aliases (e.g. ["l", "loo"])\n locks - lock string (default is "cmd:all()")\n help_category - how to organize this help entry in help system\n (default is "General")\n auto_help - defaults to True. Allows for turning off auto-help generation\n arg_regex - (optional) raw string regex defining how the argument part of\n the command should look in order to match for this command\n (e.g. must it be a space between cmdname and arg?)\n auto_help_display_key - (optional) if given, this replaces the string shown\n in the auto-help listing. This is particularly useful for system-commands\n whose actual key is not really meaningful.\n\n (Note that if auto_help is on, this initial string is also used by the\n system to create the help entry for the command, so it\'s a good idea to\n format it similar to this one). This behavior can be changed by\n overriding the method \'get_help\' of a command: by default, this\n method returns cmd.__doc__ (that is, this very docstring, or\n the docstring of your command). You can, however, extend or\n replace this without disabling auto_help.\n '}
      -
      -
      @@ -697,6 +679,7 @@ set in self.parse())

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -713,7 +696,6 @@ set in self.parse())

      -
      develop branch
      @@ -59,7 +58,7 @@ connect “account name” “pass word”

      -aliases = ['co', 'conn', 'con']
      +aliases = ['conn', 'con', 'co']
      @@ -92,11 +91,6 @@ there is no object yet before the account has logged in)

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': 'co conn con', 'category': 'general', 'key': 'connect', '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 '}
      -
      -
      @@ -147,11 +141,6 @@ create “account name” “pass word”

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': 'cr cre', 'category': 'general', 'key': 'create', '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 '}
      -
      -
      @@ -173,7 +162,7 @@ version is a bit more complicated.

      -aliases = ['qu', 'q']
      +aliases = ['q', 'qu']
      @@ -197,11 +186,6 @@ version is a bit more complicated.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': 'qu q', 'category': 'general', 'key': 'quit', '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 '}
      -
      -
      @@ -223,7 +207,7 @@ All it does is display the connect screen.

      -aliases = ['look', 'l']
      +aliases = ['l', 'look']
      @@ -247,11 +231,6 @@ All it does is display the connect screen.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': 'look l', 'category': 'general', 'key': '__unloggedin_look_command', 'tags': '', 'text': '\n look when in unlogged-in state\n\n Usage:\n look\n\n This is an unconnected version of the look command for simplicity.\n\n This is called by the server and kicks everything in gear.\n All it does is display the connect screen.\n '}
      -
      -
      @@ -296,11 +275,6 @@ for simplicity. It shows a pane of info.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': '? h', 'category': 'general', 'key': 'help', '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 '}
      -
      -
      @@ -338,6 +312,7 @@ for simplicity. It shows a pane of info.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -354,7 +329,6 @@ for simplicity. It shows a pane of info.

      -
      develop branch
      @@ -111,6 +110,7 @@ Evennia.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -127,7 +127,6 @@ Evennia.

      -
      develop branch
      @@ -263,6 +262,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -279,7 +279,6 @@ -
      develop branch
      @@ -60,7 +59,7 @@ does this for you.

      class evennia.comms.channelhandler.ChannelCommand(**kwargs)[source]
      -

      Bases: evennia.commands.command.Command

      +

      Bases: evennia.commands.default.muxcommand.MuxCommand

      {channelkey} channel

      {channeldesc}

      @@ -141,11 +140,6 @@ the already formatted input.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'channel names', 'key': 'general', 'tags': '', 'text': '\n {channelkey} channel\n\n {channeldesc}\n\n Usage:\n {lower_channelkey} <message>\n {lower_channelkey}/history [start]\n {lower_channelkey} off - mutes the channel\n {lower_channelkey} on - unmutes the channel\n\n Switch:\n history: View 20 previous messages, either from the end or\n from <start> number of messages from the end.\n\n Example:\n {lower_channelkey} Hello World!\n {lower_channelkey}/history\n {lower_channelkey}/history 30\n\n '}
      -
      -
      @@ -299,6 +293,7 @@ or more channels.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -315,7 +310,6 @@ or more channels.

      -
      develop branch
      @@ -767,6 +766,7 @@ responsibility.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -783,7 +783,6 @@ responsibility.

      -
      develop branch
      @@ -86,6 +85,7 @@ as code related to external communication like IRC or RSS.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -102,7 +102,6 @@ as code related to external communication like IRC or RSS.

      -
      develop branch
      @@ -364,6 +363,7 @@ case sensitive) match.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -380,7 +380,6 @@ case sensitive) match.

      -
      develop branch
      @@ -716,6 +715,7 @@ object the first time, the query is executed.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -732,7 +732,6 @@ object the first time, the query is executed.

      -
      develop branch
      @@ -37,471 +36,8 @@
      -
      -

      evennia.contrib.awsstorage.aws_s3_cdn

      -

      AWS Storage System -The Right Honourable Reverend (trhr) 2020

      -

      ABOUT THIS PLUGIN:

      -

      This plugin migrates the Web-based portion of Evennia, namely images, -javascript, and other items located inside staticfiles into Amazon AWS (S3) for hosting.

      -

      Files hosted on S3 are “in the cloud,” and while your personal -server may be sufficient for serving multimedia to a minimal number of users, -the perfect use case for this plugin would be:

      -
        -
      1. Servers supporting heavy web-based traffic (webclient, etc)

      2. -
      3. With a sizable number of users

      4. -
      5. Where the users are globally distributed

      6. -
      7. Where multimedia files are served to users as a part of gameplay

      8. -
      -

      Bottom line - if you’re sending an image to a player every time they traverse a -map, the bandwidth reduction will be substantial. If not, probably skip -this one.

      -

      Note that storing and serving files via S3 is not technically free outside of -Amazon’s “free tier” offering, which you may or may not be eligible for; -evennia’s base install currently requires 1.5MB of storage space on S3, -making the current total cost to install this plugin ~$0.0005 per year. If -you have substantial media assets and intend to serve them to many users, -caveat emptor on a total cost of ownership - check AWS’s pricing structure.

      -

      See the ./README.md file for details and install instructions.

      -
      -
      -evennia.contrib.awsstorage.aws_s3_cdn.setting(name, default=None)[source]
      -

      Helper function to get a Django setting by name. If setting doesn’t exist -it will return a default.

      -
      -
      Parameters
      -

      name (str) – A Django setting name

      -
      -
      Returns
      -

      The value of the setting variable by that name

      -
      -
      -
      - -
      -
      -evennia.contrib.awsstorage.aws_s3_cdn.safe_join(base, *paths)[source]
      -

      Helper function, a version of django.utils._os.safe_join for S3 paths. -Joins one or more path components to the base path component -intelligently. Returns a normalized version of the final path. -The final path must be located inside of the base path component -(otherwise a ValueError is raised). Paths outside the base path -indicate a possible security sensitive operation.

      -
      -
      Parameters
      -
        -
      • base (str) – A path string to the base of the staticfiles

      • -
      • *paths (list) – A list of paths as referenced from the base path

      • -
      -
      -
      Returns
      -

      final_path (str) – A joined path, base + filepath

      -
      -
      -
      - -
      -
      -evennia.contrib.awsstorage.aws_s3_cdn.check_location(storage)[source]
      -

      Helper function to make sure that the storage location is configured correctly.

      -
      -
      Parameters
      -

      storage (Storage) – A Storage object (Django)

      -
      -
      Raises
      -

      ImproperlyConfigured – If the storage location is not configured correctly, -this is raised.

      -
      -
      -
      - -
      -
      -evennia.contrib.awsstorage.aws_s3_cdn.lookup_env(names)[source]
      -

      Helper function for looking up names in env vars. Returns the first element found.

      -
      -
      Parameters
      -

      names (str) – A list of environment variables

      -
      -
      Returns
      -

      value (str) – The value of the found environment variable.

      -
      -
      -
      - -
      -
      -evennia.contrib.awsstorage.aws_s3_cdn.get_available_overwrite_name(name, max_length)[source]
      -

      Helper function indicating files that will be overwritten during trunc.

      -
      -
      Parameters
      -
        -
      • name (str) – The name of the file

      • -
      • max_length (int) – The maximum length of a filename

      • -
      -
      -
      Returns
      -

      joined (path) – A joined path including directory, file, and extension

      -
      -
      -
      - -
      -
      -class evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3StorageFile(*args, **kwargs)[source]
      -

      Bases: django.core.files.base.File

      -

      The default file object used by the S3Boto3Storage backend. -This file implements file streaming using boto’s multipart -uploading functionality. The file can be opened in read or -write mode. -This class extends Django’s File class. However, the contained -data is only the data contained in the current buffer. So you -should not access the contained file object directly. You should -access the data via this class. -Warning: This file must be closed using the close() method in -order to properly write the file to S3. Be sure to close the file -in your application.

      -
      -
      -__init__(name, mode, storage, buffer_size=None)[source]
      -

      Initializes the File object.

      -
      -
      Parameters
      -
        -
      • name (str) – The name of the file

      • -
      • mode (str) – The access mode (‘r’ or ‘w’)

      • -
      • storage (Storage) – The Django Storage object

      • -
      • buffer_size (int) – The buffer size, for multipart uploads

      • -
      -
      -
      -
      - -
      -
      -buffer_size = 5242880
      -
      - -
      -
      -property size
      -

      Helper property to return filesize

      -
      - -
      -
      -property file
      -

      Helper function to manage zipping and temporary files

      -
      - -
      -
      -read(*args, **kwargs)[source]
      -

      Checks if file is in read mode; then continues to boto3 operation

      -
      - -
      -
      -readline(*args, **kwargs)[source]
      -

      Checks if file is in read mode; then continues to boto3 operation

      -
      - -
      -
      -write(content)[source]
      -

      Checks if file is in write mode or needs multipart handling, -then continues to boto3 operation.

      -
      - -
      -
      -close()[source]
      -

      Manages file closing after multipart uploads

      -
      - -
      -
      -deconstruct()
      -

      Return a 3-tuple of class import path, positional arguments, -and keyword arguments.

      -
      - -
      - -
      -
      -class evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage(*args, **kwargs)[source]
      -

      Bases: django.core.files.storage.Storage

      -

      Amazon Simple Storage Service using Boto3 -This storage backend supports opening files in read or write -mode and supports streaming(buffering) data in chunks to S3 -when writing.

      -
      -
      -default_content_type = 'application/octet-stream'
      -
      - -
      -
      -access_key_names = ['AWS_S3_ACCESS_KEY_ID', 'AWS_ACCESS_KEY_ID']
      -
      - -
      -
      -secret_key_names = ['AWS_S3_SECRET_ACCESS_KEY', 'AWS_SECRET_ACCESS_KEY']
      -
      - -
      -
      -security_token_names = ['AWS_SESSION_TOKEN', 'AWS_SECURITY_TOKEN']
      -
      - -
      -
      -file_overwrite = True
      -
      - -
      -
      -object_parameters = {}
      -
      - -
      -
      -bucket_name = None
      -
      - -
      -
      -auto_create_bucket = False
      -
      - -
      -
      -default_acl = 'public-read'
      -
      - -
      -
      -bucket_acl = 'public-read'
      -
      - -
      -
      -querystring_auth = True
      -
      - -
      -
      -querystring_expire = 3600
      -
      - -
      -
      -signature_version = None
      -
      - -
      -
      -reduced_redundancy = False
      -
      - -
      -
      -location = ''
      -
      - -
      -
      -encryption = False
      -
      - -
      -
      -custom_domain = None
      -
      - -
      -
      -addressing_style = None
      -
      - -
      -
      -secure_urls = True
      -
      - -
      -
      -file_name_charset = 'utf-8'
      -
      - -
      -
      -gzip = False
      -
      - -
      -
      -preload_metadata = False
      -
      - -
      -
      -gzip_content_types = ('text/css', 'text/javascript', 'application/javascript', 'application/x-javascript', 'image/svg+xml')
      -
      - -
      -
      -endpoint_url = None
      -
      - -
      -
      -proxies = None
      -
      - -
      -
      -region_name = None
      -
      - -
      -
      -use_ssl = True
      -
      - -
      -
      -verify = None
      -
      - -
      -
      -max_memory_size = 0
      -
      - -
      -
      -__init__(acl=None, bucket=None, **settings)[source]
      -

      Check if some of the settings we’ve provided as class attributes -need to be overwritten with values passed in here.

      -
      - -
      -
      -url_protocol = 'http:'
      -
      - -
      -
      -access_key = ''
      -
      - -
      -
      -secret_key = ''
      -
      - -
      -
      -security_token = None
      -
      - -
      -
      -config = None
      -
      - -
      -
      -property connection
      -

      Creates the actual connection to S3

      -
      - -
      -
      -property bucket
      -

      Get the current bucket. If there is no current bucket object -create it.

      -
      - -
      -
      -property entries
      -

      Get the locally cached files for the bucket.

      -
      - -
      -
      -delete(name)[source]
      -

      Deletes a file from S3.

      -
      - -
      -
      -exists(name)[source]
      -

      Checks if file exists.

      -
      - -
      -
      -listdir(name)[source]
      -

      Translational function to go from S3 file paths to the format -Django’s listdir expects.

      -
      - -
      -
      -size(name)[source]
      -

      Gets the filesize of a remote file.

      -
      - -
      -
      -deconstruct()
      -

      Return a 3-tuple of class import path, positional arguments, -and keyword arguments.

      -
      - -
      -
      -get_object_parameters(name)[source]
      -

      Returns a dictionary that is passed to file upload. Override this -method to adjust this on a per-object basis to set e.g ContentDisposition. -By default, returns the value of AWS_S3_OBJECT_PARAMETERS. -Setting ContentEncoding will prevent objects from being automatically gzipped.

      -
      - -
      -
      -get_modified_time(name)[source]
      -

      Returns an (aware) datetime object containing the last modified time if -USE_TZ is True, otherwise returns a naive datetime in the local timezone.

      -
      - -
      -
      -modified_time(name)[source]
      -

      Returns a naive datetime object containing the last modified time. -If USE_TZ=False then get_modified_time will return a naive datetime -so we just return that, else we have to localize and strip the tz

      -
      - -
      -
      -url(name, parameters=None, expire=None)[source]
      -

      Returns the URL of a remotely-hosted file

      -
      - -
      -
      -get_available_name(name, max_length=None)[source]
      -

      Overwrite existing file with the same name.

      -
      - -
      - +
      +

      evennia.contrib.awsstorage.aws_s3_cdn

      @@ -537,6 +73,7 @@ so we just return that, else we have to localize and strip the tz

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -553,7 +90,6 @@ so we just return that, else we have to localize and strip the tz

      -
      develop branch
      @@ -39,7 +38,6 @@

      evennia.contrib.awsstorage

      -

      Intended to be a collecting folder for Django-specific contribs that do not have observable effects to players.

      @@ -97,7 +96,6 @@ -
      develop branch
      @@ -37,225 +36,8 @@
      -
      -

      evennia.contrib.awsstorage.tests

      -
      -
      -class evennia.contrib.awsstorage.tests.S3Boto3TestCase(methodName='runTest')[source]
      -

      Bases: django.test.testcases.TestCase

      -
      -
      -setUp()[source]
      -

      Hook method for setting up the test fixture before exercising it.

      -
      - -
      - -
      -
      -class evennia.contrib.awsstorage.tests.S3Boto3StorageTests(methodName='runTest')[source]
      -

      Bases: evennia.contrib.awsstorage.tests.S3Boto3TestCase

      -
      -
      -test_clean_name()[source]
      -

      Test the base case of _clean_name

      -
      - -
      -
      -test_clean_name_normalize()[source]
      -

      Test the normalization of _clean_name

      -
      - -
      -
      -test_clean_name_trailing_slash()[source]
      -

      Test the _clean_name when the path has a trailing slash

      -
      - -
      -
      -test_clean_name_windows()[source]
      -

      Test the _clean_name when the path has a trailing slash

      -
      - -
      -
      -test_pickle_with_bucket()[source]
      -

      Test that the storage can be pickled with a bucket attached

      -
      - -
      -
      -test_pickle_without_bucket()[source]
      -

      Test that the storage can be pickled, without a bucket instance

      -
      - -
      -
      -test_storage_url_slashes()[source]
      -

      Test URL generation.

      -
      - -
      -
      -test_storage_save()[source]
      -

      Test saving a file

      -
      - -
      -
      -test_storage_save_with_acl()[source]
      -

      Test saving a file with user defined ACL.

      -
      - -
      -
      -test_content_type()[source]
      -

      Test saving a file with a None content type.

      -
      - -
      -
      -test_storage_save_gzipped()[source]
      -

      Test saving a gzipped file

      -
      - -
      -
      -test_storage_save_gzip()[source]
      -

      Test saving a file with gzip enabled.

      -
      - -
      -
      -test_storage_save_gzip_twice()[source]
      -

      Test saving the same file content twice with gzip enabled.

      -
      - -
      -
      -test_compress_content_len()[source]
      -

      Test that file returned by _compress_content() is readable.

      -
      - -
      -
      -test_storage_open_write()[source]
      -

      Test opening a file in write mode

      -
      - -
      -
      -test_storage_open_no_write()[source]
      -

      Test opening file in write mode and closing without writing.

      -

      A file should be created as by obj.put(…).

      -
      - -
      -
      -test_storage_open_no_overwrite_existing()[source]
      -

      Test opening an existing file in write mode and closing without writing.

      -
      - -
      -
      -test_storage_write_beyond_buffer_size()[source]
      -

      Test writing content that exceeds the buffer size

      -
      - -
      -
      -test_auto_creating_bucket()[source]
      -
      - -
      -
      -test_auto_creating_bucket_with_acl()[source]
      -
      - -
      -
      -test_storage_exists()[source]
      -
      - -
      -
      -test_storage_exists_false()[source]
      -
      - -
      -
      -test_storage_exists_doesnt_create_bucket()[source]
      -
      - -
      -
      -test_storage_delete()[source]
      -
      - -
      -
      -test_storage_listdir_base()[source]
      -
      - -
      -
      -test_storage_listdir_subdir()[source]
      -
      - -
      -
      -test_storage_size()[source]
      -
      - -
      -
      -test_storage_mtime()[source]
      -
      - -
      -
      -test_storage_url()[source]
      -
      - -
      -
      -test_generated_url_is_encoded()[source]
      -
      - -
      -
      -test_special_characters()[source]
      -
      - -
      -
      -test_strip_signing_parameters()[source]
      -
      - -
      -
      -test_connection_threading()[source]
      -
      - -
      -
      -test_location_leading_slash()[source]
      -
      - -
      -
      -test_override_class_variable()[source]
      -
      - -
      -
      -test_override_init_argument()[source]
      -
      - -
      - +
      +

      evennia.contrib.awsstorage.tests

      @@ -291,6 +73,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -307,7 +90,6 @@ -
      develop branch
      @@ -403,11 +402,6 @@ available to the command

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'command', 'tags': '', 'text': '\n Base command for Trade commands to inherit from. Implements the\n custom parsing.\n '}
      -
      -
      @@ -451,11 +445,6 @@ available to the command

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'trade', 'key': 'trade help', 'tags': '', 'text': '\n help command for the trade system.\n\n Usage:\n trade help\n\n Displays help for the trade commands.\n '}
      -
      -
      @@ -500,11 +489,6 @@ standing offer.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'trading', 'key': 'offer', 'tags': '', 'text': '\n offer one or more items in trade.\n\n Usage:\n offer <object> [, object2, ...][:emote]\n\n Offer objects in trade. This will replace the currently\n standing offer.\n '}
      -
      -
      @@ -552,11 +536,6 @@ the current offer using the ‘offers’ command.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': 'agree', 'category': 'trading', 'key': 'accept', 'tags': '', 'text': "\n accept the standing offer\n\n Usage:\n accept [:emote]\n agreee [:emote]\n\n This will accept the current offer. The other party must also accept\n for the deal to go through. You can use the 'decline' command to change\n your mind as long as the other party has not yet accepted. You can inspect\n the current offer using the 'offers' command.\n "}
      -
      -
      @@ -603,11 +582,6 @@ decline the old offer.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'trading', 'key': 'decline', 'tags': '', 'text': "\n decline the standing offer\n\n Usage:\n decline [:emote]\n\n This will decline a previously 'accept'ed offer (so this allows you to\n change your mind). You can only use this as long as the other party\n has not yet accepted the deal. Also, changing the offer will automatically\n decline the old offer.\n "}
      -
      -
      @@ -652,11 +626,6 @@ determine if it’s worth your while.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': 'eval', 'category': 'trading', 'key': 'evaluate', 'tags': '', 'text': "\n evaluate objects on offer\n\n Usage:\n evaluate <offered object>\n\n This allows you to examine any object currently on offer, to\n determine if it's worth your while.\n "}
      -
      -
      @@ -705,11 +674,6 @@ try to influence the other part in the deal.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': 'offers deal', 'category': 'trading', 'key': 'status', 'tags': '', 'text': "\n show a list of the current deal\n\n Usage:\n status\n deal\n offers\n\n Shows the currently suggested offers on each sides of the deal. To\n accept the current deal, use the 'accept' command. Use 'offer' to\n change your deal. You might also want to use 'say', 'emote' etc to\n try to influence the other part in the deal.\n "}
      -
      -
      @@ -754,11 +718,6 @@ finish trade [:say]

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': 'finish trade', 'category': 'trading', 'key': 'end trade', 'tags': '', 'text': '\n end the trade prematurely\n\n Usage:\n end trade [:say]\n finish trade [:say]\n\n This ends the trade prematurely. No trade will take place.\n\n '}
      -
      -
      @@ -833,11 +792,6 @@ info to your choice.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': 'barter', 'category': 'general', 'key': 'trade', 'tags': '', 'text': '\n Initiate trade with another party\n\n Usage:\n trade <other party> [:say]\n trade <other party> accept [:say]\n trade <other party> decline [:say]\n\n Initiate trade with another party. The other party needs to repeat\n this command with trade accept/decline within a minute in order to\n properly initiate the trade action. You can use the decline option\n yourself if you want to retract an already suggested trade. The\n optional say part works like the say command and allows you to add\n info to your choice.\n '}
      -
      -
      @@ -875,6 +829,7 @@ info to your choice.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -891,7 +846,6 @@ info to your choice.

      -
      develop branch
      @@ -251,11 +250,6 @@ overloading evential same-named class properties.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'general', 'key': '__noinput_command', 'tags': '', 'text': 'No input has been found.'}
      -
      -
      @@ -302,11 +296,6 @@ overloading evential same-named class properties.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'general', 'key': '__nomatch_command', 'tags': '', 'text': 'No input has been found.'}
      -
      -
      @@ -871,11 +860,6 @@ set in self.parse())

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'general', 'key': '@edit', 'tags': '', 'text': "\n Generic building command.\n\n Syntax:\n @edit [object]\n\n Open a building menu to edit the specified object. This menu allows to\n change the object's key and description.\n\n Examples:\n @edit here\n @edit self\n @edit #142\n\n "}
      -
      -
      @@ -913,6 +897,7 @@ set in self.parse())

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -929,7 +914,6 @@ set in self.parse())

      -
      develop branch
      @@ -107,11 +106,6 @@ that is checked by the @ic command directly.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': 'ls l', 'category': 'general', 'key': 'look', 'tags': '', 'text': '\n ooc look\n\n Usage:\n look\n look <character>\n\n This is an OOC version of the look command. Since an Account doesn\'t\n have an in-game existence, there is no concept of location or\n "self".\n\n If any characters are available for you to control, you may look\n at them with this command.\n '}
      -
      -
      @@ -157,11 +151,6 @@ attribute on ourselves to remember it.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'create', 'tags': '', 'text': '\n creates a character\n\n Usage:\n create <character name>\n\n This will create a new character, assuming\n the given character name does not already exist.\n '}
      -
      -
      @@ -217,6 +206,7 @@ attribute on ourselves to remember it.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -233,7 +223,6 @@ attribute on ourselves to remember it.

      -
      develop branch
      @@ -359,11 +358,6 @@ provide will be displayed after the clothing’s name.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'clothing', 'key': 'wear', 'tags': '', 'text': "\n Puts on an item of clothing you are holding.\n\n Usage:\n wear <obj> [wear style]\n\n Examples:\n wear shirt\n wear scarf wrapped loosely about the shoulders\n\n All the clothes you are wearing are appended to your description.\n If you provide a 'wear style' after the command, the message you\n provide will be displayed after the clothing's name.\n "}
      -
      -
      @@ -404,11 +398,6 @@ off the covering item first.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'clothing', 'key': 'remove', 'tags': '', 'text': "\n Takes off an item of clothing.\n\n Usage:\n remove <obj>\n\n Removes an item of clothing you are wearing. You can't remove\n clothes that are covered up by something else - you must take\n off the covering item first.\n "}
      -
      -
      @@ -449,11 +438,6 @@ You can’t remove an item of clothing if it’s covered.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'clothing', 'key': 'cover', 'tags': '', 'text': "\n Covers a worn item of clothing with another you're holding or wearing.\n\n Usage:\n cover <obj> [with] <obj>\n\n When you cover a clothing item, it is hidden and no longer appears in\n your description until it's uncovered or the item covering it is removed.\n You can't remove an item of clothing if it's covered.\n "}
      -
      -
      @@ -495,11 +479,6 @@ it is also covered by something else.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'clothing', 'key': 'uncover', 'tags': '', 'text': "\n Reveals a worn item of clothing that's currently covered up.\n\n Usage:\n uncover <obj>\n\n When you uncover an item of clothing, you allow it to appear in your\n description without having to take off the garment that's currently\n covering it. You can't uncover an item of clothing if the item covering\n it is also covered by something else.\n "}
      -
      -
      @@ -549,11 +528,6 @@ location you are currently in.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'drop', 'tags': '', 'text': '\n drop something\n\n Usage:\n drop <obj>\n\n Lets you drop an object from your inventory into the\n location you are currently in.\n '}
      -
      -
      @@ -603,11 +577,6 @@ placing it in their inventory.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'give', 'tags': '', 'text': '\n give away something to someone\n\n Usage:\n give <inventory obj> = <target>\n\n Gives an items from your inventory to another character,\n placing it in their inventory.\n '}
      -
      -
      @@ -628,7 +597,7 @@ inv

      -aliases = ['i', 'inv']
      +aliases = ['inv', 'i']
      @@ -657,11 +626,6 @@ inv

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': 'i inv', 'category': 'general', 'key': 'inventory', 'tags': '', 'text': '\n view inventory\n\n Usage:\n inventory\n inv\n\n Shows your inventory.\n '}
      -
      -
      @@ -725,6 +689,7 @@ items.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -741,7 +706,6 @@ items.

      -
      develop branch
      @@ -116,6 +115,7 @@ COLOR_ANSI_BRIGHT_BGS_EXTRA_MAP = color_markups.CURLY_COLOR_ANSI_BRIGHT_BGS_EXTR
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -132,7 +132,6 @@ COLOR_ANSI_BRIGHT_BGS_EXTRA_MAP = color_markups.CURLY_COLOR_ANSI_BRIGHT_BGS_EXTR -
      develop branch
      @@ -46,776 +45,8 @@
      -
      -

      evennia.contrib.crafting.crafting

      -

      Crafting - Griatch 2020

      -

      This is a general crafting engine. The basic functionality of crafting is to -combine any number of of items or tools in a ‘recipe’ to produce a new result.

      -
      -

      item + item + item + tool + tool -> recipe -> new result

      -
      -

      This is useful not only for traditional crafting but the engine is flexible -enough to also be useful for puzzles or similar.

      -
      -

      Installation

      -
        -
      • Add the CmdCraft Command from this module to your default cmdset. This -allows for crafting from in-game using a simple syntax.

      • -
      • Create a new module and add it to a new list in your settings file -(server/conf/settings.py) named CRAFT_RECIPES_MODULES, such as -CRAFT_RECIPE_MODULES = [“world.recipes_weapons”].

      • -
      • In the new module(s), create one or more classes, each a child of -CraftingRecipe from this module. Each such class must have a unique .name -property. It also defines what inputs are required and what is created using -this recipe.

      • -
      • Objects to use for crafting should (by default) be tagged with tags using the -tag-category crafting_material or crafting_tool. The name of the object -doesn’t matter, only its tag.

      • -
      -
      -
      -

      Crafting in game

      -

      The default craft command handles all crafting needs.

      -
      > craft spiked club from club, nails
      -
      -
      -

      Here, spiked club specifies the recipe while club and nails are objects -the crafter must have in their inventory. These will be consumed during -crafting (by default only if crafting was successful).

      -

      A recipe can also require tools (like the hammer above). These must be -either in inventory or be in the current location. Tools are not consumed -during the crafting process.

      -
      > craft wooden doll from wood with knife
      -
      -
      -
      -
      -

      Crafting in code

      -

      In code, you should use the helper function craft from this module. This -specifies the name of the recipe to use and expects all suitable -ingredients/tools as arguments (consumables and tools should be added together, -tools will be identified before consumables).

      -
      from evennia.contrib.crafting import crafting
      -
      -spiked_club = crafting.craft(crafter, "spiked club", club, nails)
      -
      -
      -

      The result is always a list with zero or more objects. A fail leads to an empty -list. The crafter should already have been notified of any error in this case -(this should be handle by the recipe itself).

      -
      -
      -

      Recipes

      -

      A recipe is a class that works like an input/output blackbox: you initialize -it with consumables (and/or tools) if they match the recipe, a new -result is spit out. Consumables are consumed in the process while tools are not.

      -

      This module contains a base class for making new ingredient types -(CraftingRecipeBase) and an implementation of the most common form of -crafting (CraftingRecipe) using objects and prototypes.

      -

      Recipes are put in one or more modules added as a list to the -CRAFT_RECIPE_MODULES setting, for example:

      -
      CRAFT_RECIPE_MODULES = ['world.recipes_weapons', 'world.recipes_potions']
      -
      -
      -

      Below is an example of a crafting recipe and how craft calls it under the -hood. See the CraftingRecipe class for details of which properties and -methods are available to override - the craft behavior can be modified -substantially this way.

      -
      from evennia.contrib.crafting.crafting import CraftingRecipe
      -
      -class PigIronRecipe(CraftingRecipe):
      -    # Pig iron is a high-carbon result of melting iron in a blast furnace.
      -
      -    name = "pig iron"  # this is what crafting.craft and CmdCraft uses
      -    tool_tags = ["blast furnace"]
      -    consumable_tags = ["iron ore", "coal", "coal"]
      -    output_prototypes = [
      -        {"key": "Pig Iron ingot",
      -         "desc": "An ingot of crude pig iron.",
      -         "tags": [("pig iron", "crafting_material")]}
      -    ]
      -
      -# for testing, conveniently spawn all we need based on the tags on the class
      -tools, consumables = PigIronRecipe.seed()
      -
      -recipe = PigIronRecipe(caller, *(tools + consumables))
      -result = recipe.craft()
      -
      -
      -

      If the above class was added to a module in CRAFT_RECIPE_MODULES, it could be -called using its .name property, as “pig iron”.

      -

      The [example_recipies](api:evennia.contrib.crafting.example_recipes) module has -a full example of the components for creating a sword from base components.

      -
      -
      -
      -exception evennia.contrib.crafting.crafting.CraftingError[source]
      -

      Bases: RuntimeError

      -

      Crafting error.

      -
      - -
      -
      -exception evennia.contrib.crafting.crafting.CraftingValidationError[source]
      -

      Bases: evennia.contrib.crafting.crafting.CraftingError

      -

      Error if crafting validation failed.

      -
      - -
      -
      -class evennia.contrib.crafting.crafting.CraftingRecipeBase(crafter, *inputs, **kwargs)[source]
      -

      Bases: object

      -

      The recipe handles all aspects of performing a ‘craft’ operation. This is -the base of the crafting system, intended to be replace if you want to -adapt it for very different functionality - see the CraftingRecipe child -class for an implementation of the most common type of crafting using -objects.

      -

      Example of usage:

      -
      recipe = CraftRecipe(crafter, obj1, obj2, obj3)
      -result = recipe.craft()
      -
      -
      -

      Note that the most common crafting operation is that the inputs are -consumed - so in that case the recipe cannot be used a second time (doing so -will raise a CraftingError)

      -

      Process:

      -
        -
      1. .craft(**kwargs) - this starts the process on the initialized recipe. The kwargs -are optional but will be passed into all of the following hooks.

      2. -
      3. .pre_craft(**kwargs) - this normally validates inputs and stores them in -.validated_inputs.. Raises CraftingValidationError otherwise.

      4. -
      -
        -
      1. .do_craft(**kwargs) - should return the crafted item(s) or the empty list. Any -crafting errors should be immediately reported to user.

      2. -
      3. .post_craft(crafted_result, **kwargs)- always called, even if pre_craft -raised a CraftingError or CraftingValidationError. -Should return crafted_result (modified or not).

      4. -
      -
      -
      -name = 'recipe base'
      -
      - -
      -
      -allow_reuse = False
      -
      - -
      -
      -__init__(crafter, *inputs, **kwargs)[source]
      -

      Initialize the recipe.

      -
      -
      Parameters
      -
        -
      • crafter (Object) – The one doing the crafting.

      • -
      • *inputs (any) – The ingredients of the recipe to use.

      • -
      • **kwargs (any) – Any other parameters that are relevant for -this recipe.

      • -
      -
      -
      -
      - -
      -
      -msg(message, **kwargs)[source]
      -

      Send message to crafter. This is a central point to override if wanting -to change crafting return style in some way.

      -
      -
      Parameters
      -
        -
      • message (str) – The message to send.

      • -
      • **kwargs – Any optional properties relevant to this send.

      • -
      -
      -
      -
      - -
      -
      -pre_craft(**kwargs)[source]
      -

      Hook to override.

      -

      This is called just before crafting operation and is normally -responsible for validating the inputs, storing data on -self.validated_inputs.

      -
      -
      Parameters
      -
        -
      • **kwargs – Optional extra flags passed during initialization or

      • -
      • **.craft

      • -
      -
      -
      Raises
      -

      CraftingValidationError – If validation fails.

      -
      -
      -
      - -
      -
      -do_craft(**kwargs)[source]
      -

      Hook to override.

      -

      This performs the actual crafting. At this point the inputs are -expected to have been verified already. If needed, the validated -inputs are available on this recipe instance.

      -
      -
      Parameters
      -

      **kwargs – Any extra flags passed at initialization.

      -
      -
      Returns
      -

      any – The result of crafting.

      -
      -
      -
      - -
      -
      -post_craft(crafting_result, **kwargs)[source]
      -

      Hook to override.

      -

      This is called just after crafting has finished. A common use of this -method is to delete the inputs.

      -
      -
      Parameters
      -
        -
      • crafting_result (any) – The outcome of crafting, as returned by do_craft.

      • -
      • **kwargs – Any extra flags passed at initialization.

      • -
      -
      -
      Returns
      -

      any – The final crafting result.

      -
      -
      -
      - -
      -
      -craft(raise_exception=False, **kwargs)[source]
      -

      Main crafting call method. Call this to produce a result and make -sure all hooks run correctly.

      -
      -
      Parameters
      -
        -
      • raise_exception (bool) – If crafting would return None, raise -exception instead.

      • -
      • **kwargs (any) – Any other parameters that is relevant -for this particular craft operation. This will temporarily -override same-named kwargs given at the creation of this recipe -and be passed into all of the crafting hooks.

      • -
      -
      -
      Returns
      -

      any – The result of the craft, or None if crafting failed.

      -
      -
      Raises
      -
        -
      • CraftingValidationError – If recipe validation failed and -raise_exception is True.

      • -
      • CraftingError – On If trying to rerun a no-rerun recipe, or if crafting -would return None and raise_exception** is set.

      • -
      -
      -
      -
      - -
      - -
      -
      -class evennia.contrib.crafting.crafting.CraftingRecipe(crafter, *inputs, **kwargs)[source]
      -

      Bases: evennia.contrib.crafting.crafting.CraftingRecipeBase

      -

      The CraftRecipe implements the most common form of crafting: Combining (and -consuming) inputs to produce a new result. This type of recipe only works -with typeclassed entities as inputs and outputs, since it’s based on Tags -and Prototypes.

      -

      There are two types of crafting ingredients: ‘tools’ and ‘consumables’. The -difference between them is that the former is not consumed in the crafting -process. So if you need a hammer and anvil to craft a sword, they are -‘tools’ whereas the materials of the sword are ‘consumables’.

      -

      Examples:

      -
      class FlourRecipe(CraftRecipe):
      -    name = "flour"
      -    tool_tags = ['windmill']
      -    consumable_tags = ["wheat"]
      -    output_prototypes = [
      -        {"key": "Bag of flour",
      -         "typeclass": "typeclasses.food.Flour",
      -         "desc": "A small bag of flour."
      -         "tags": [("flour", "crafting_material"),
      -        }
      -
      -class BreadRecipe(CraftRecipe):
      -    name = "bread"
      -    tool_tags = ["roller", "owen"]
      -    consumable_tags = ["flour", "egg", "egg", "salt", "water", "yeast"]
      -    output_prototypes = [
      -        {"key": "bread",
      -         "desc": "A tasty bread."
      -        }
      -
      -
      -
        -
      • name (str): The name of this recipe. This should be globally unique.

      • -
      -
        -
      • tool_tag_category (str): What tag-category tools must use. Default is -‘crafting_tool’.

      • -
      • tool_tags (list): Object-tags to use for tooling. If more than one instace -of a tool is needed, add multiple entries here.

      • -
      • tool_names (list): Human-readable names for tools. These are used for informative -messages/errors. If not given, the tags will be used. If given, this list should -match the length of tool_tags.:

      • -
      • exact_tools (bool, default True): Must have exactly the right tools, any extra -leads to failure.

      • -
      • exact_tool_order (bool, default False): Tools must be added in exactly the -right order for crafting to pass.

      • -
      -
        -
      • consumable_tag_category (str): What tag-category consumables must use. -Default is ‘crafting_material’.

      • -
      • consumable_tags (list): Tags for objects that will be consumed as part of -running the recipe.

      • -
      • consumable_names (list): Human-readable names for consumables. Same as for tools.

      • -
      • exact_consumables (bool, default True): Normally, adding more consumables -than needed leads to a a crafting error. If this is False, the craft will -still succeed (only the needed ingredients will be consumed).

      • -
      • exact_consumable_order (bool, default False): Normally, the order in which -ingredients are added does not matter. With this set, trying to add consumables in -another order than given will lead to failing crafting.

      • -
      • consume_on_fail (bool, default False): Normally, consumables remain if -crafting fails. With this flag, a failed crafting will still consume -consumables. Note that this will also consume any ‘extra’ consumables -added not part of the recipe!

      • -
      -
        -
      • output_prototypes (list): One or more prototypes (prototype_keys or -full dicts) describing how to create the result(s) of this recipe.

      • -
      • output_names (list): Human-readable names for (prospective) prototypes. -This is used in error messages. If not given, this is extracted from the -prototypes’ key if possible.

      • -
      -

      custom messages all have custom formatting markers. Many are empty strings -when not applicable.

      -
      {missing}: Comma-separated list of tool/consumable missing for missing/out of order errors.
      -{excess}: Comma-separated list of tool/consumable added in excess of recipe
      -{inputs}: Comma-separated list of any inputs (tools + consumables) involved in error.
      -{tools}: Comma-sepatated list of tools involved in error.
      -{consumables}: Comma-separated list of consumables involved in error.
      -{outputs}: Comma-separated list of (expected) outputs
      -{t0}..{tN-1}: Individual tools, same order as **.tool_names**.
      -{c0}..{cN-1}: Individual consumables, same order as **.consumable_names**.
      -{o0}..{oN-1}: Individual outputs, same order as **.output_names**.
      -
      -
      -
        -
      • error_tool_missing_message: “Could not craft {outputs} without {missing}.”

      • -
      • error_tool_order_message: -“Could not craft {outputs} since {missing} was added in the wrong order.”

      • -
      • error_tool_excess_message: “Could not craft {outputs} (extra {excess}).”

      • -
      • error_consumable_missing_message: “Could not craft {outputs} without {missing}.”

      • -
      • error_consumable_order_message: -“Could not craft {outputs} since {missing} was added in the wrong order.”

      • -
      • error_consumable_excess_message: “Could not craft {outputs} (excess {excess}).”

      • -
      • success_message: “You successfuly craft {outputs}!”

      • -
      • failure_message: “” (this is handled by the other error messages by default)

      • -
      -
        -
      1. Crafting starts by calling .craft(**kwargs) on the parent class. The -**kwargs are optional, extends any **kwargs passed to the class -constructor and will be passed into all the following hooks.

      2. -
      -
        -
      1. .pre_craft(**kwargs) should handle validation of inputs. Results should -be stored in validated_consumables/tools respectively. Raises CraftingValidationError -otherwise.

      2. -
      3. .do_craft(**kwargs) will not be called if validation failed. Should return -a list of the things crafted.

      4. -
      5. .post_craft(crafting_result, **kwargs) is always called, also if validation -failed (crafting_result will then be falsy). It does any cleanup. By default -this deletes consumables.

      6. -
      -

      Use .msg to conveniently send messages to the crafter. Raise -evennia.contrib.crafting.crafting.CraftingError exception to abort -crafting at any time in the sequence. If raising with a text, this will be -shown to the crafter automatically

      -
      -
      -name = 'crafting recipe'
      -
      - -
      -
      -consumable_tag_category = 'crafting_material'
      -
      - -
      -
      -tool_tag_category = 'crafting_tool'
      -
      - -
      -
      -tool_tags = []
      -
      - -
      -
      -exact_tools = True
      -
      - -
      -
      -exact_tool_order = False
      -
      - -
      -
      -error_tool_missing_message = 'Could not craft {outputs} without {missing}.'
      -
      - -
      -
      -error_tool_order_message = 'Could not craft {outputs} since {missing} was added in the wrong order.'
      -
      - -
      -
      -error_tool_excess_message = 'Could not craft {outputs} without the exact tools (extra {excess}).'
      -
      - -
      -
      -consumable_tags = []
      -
      - -
      -
      -consume_on_fail = False
      -
      - -
      -
      -exact_consumables = True
      -
      - -
      -
      -exact_consumable_order = False
      -
      - -
      -
      -error_consumable_missing_message = 'Could not craft {outputs} without {missing}.'
      -
      - -
      -
      -error_consumable_order_message = 'Could not craft {outputs} since {missing} was added in the wrong order.'
      -
      - -
      -
      -error_consumable_excess_message = 'Could not craft {outputs} without the exact ingredients (extra {excess}).'
      -
      - -
      -
      -output_prototypes = []
      -
      - -
      -
      -failure_message = ''
      -
      - -
      -
      -success_message = 'You successfully craft {outputs}!'
      -
      - -
      -
      -__init__(crafter, *inputs, **kwargs)[source]
      -
      -
      Parameters
      -
        -
      • crafter (Object) – The one doing the crafting.

      • -
      • *inputs (Object) – The ingredients (+tools) of the recipe to use. The -The recipe will itself figure out (from tags) which is a tool and -which is a consumable.

      • -
      • **kwargs (any) – Any other parameters that are relevant for -this recipe. These will be passed into the crafting hooks.

      • -
      -
      -
      -

      Notes

      -

      Internally, this class stores validated data in -.validated_consumables and .validated_tools respectively. The -.validated_inputs property (from parent) holds a list of everything -types in the order inserted to the class constructor.

      -
      - -
      -
      -consumable_names = []
      -
      - -
      -
      -tool_names = []
      -
      - -
      -
      -output_names = []
      -
      - -
      -
      -classmethod seed(tool_kwargs=None, consumable_kwargs=None)[source]
      -

      This is a helper class-method for easy testing and application of this -recipe. When called, it will create simple dummy ingredients with names -and tags needed by this recipe.

      -
      -
      Parameters
      -
        -
      • consumable_kwargs (dict, optional) – This will be passed as -**consumable_kwargs into the create_object call for each consumable. -If not given, matching consumable_name or consumable_tag -will be used for key.

      • -
      • tool_kwargs (dict, optional) – Will be passed as **tool_kwargs into the create_object -call for each tool. If not given, the matching -tool_name or tool_tag will be used for key.

      • -
      -
      -
      Returns
      -

      tuple – A tuple (tools, consumables) with newly created dummy -objects matching the recipe ingredient list.

      -
      -
      -

      Example:

      -
      tools, consumables = SwordRecipe.seed()
      -recipe = SwordRecipe(caller, *(tools + consumables))
      -result = recipe.craft()
      -
      -
      -

      Notes

      -

      If key is given in consumable/tool_kwargs then _every_ created item -of each type will have the same key.

      -
      - -
      -
      -pre_craft(**kwargs)[source]
      -

      Do pre-craft checks, including input validation.

      -

      Check so the given inputs are what is needed. This operates on -self.inputs which is set to the inputs added to the class -constructor. Validated data is stored as lists on .validated_tools -and .validated_consumables respectively.

      -
      -
      Parameters
      -

      **kwargs – Any optional extra kwargs passed during initialization of -the recipe class.

      -
      -
      Raises
      -

      CraftingValidationError – If validation fails. At this point the crafter -is expected to have been informed of the problem already.

      -
      -
      -
      - -
      -
      -do_craft(**kwargs)[source]
      -

      Hook to override. This will not be called if validation in pre_craft -fails.

      -

      This performs the actual crafting. At this point the inputs are -expected to have been verified already.

      -
      -
      Returns
      -

      list

      -
      -
      A list of spawned objects created from the inputs, or None

      on a failure.

      -
      -
      -

      -
      -
      -

      Notes

      -

      This method should use self.msg to inform the user about the -specific reason of failure immediately. -We may want to analyze the tools in some way here to affect the -crafting process.

      -
      - -
      -
      -post_craft(craft_result, **kwargs)[source]
      -

      Hook to override. -This is called just after crafting has finished. A common use of -this method is to delete the inputs.

      -
      -
      Parameters
      -
        -
      • craft_result (list) – The crafted result, provided by self.do_craft.

      • -
      • **kwargs (any) – Passed from self.craft.

      • -
      -
      -
      Returns
      -

      list – The return(s) of the craft, possibly modified in this method.

      -
      -
      -

      Notes

      -

      This is _always_ called, also if validation in pre_craft fails -(craft_result will then be None).

      -
      - -
      - -
      -
      -evennia.contrib.crafting.crafting.craft(crafter, recipe_name, *inputs, raise_exception=False, **kwargs)[source]
      -

      Access function. Craft a given recipe from a source recipe module. A -recipe module is a Python module containing recipe classes. Note that this -requires settings.CRAFT_RECIPE_MODULES to be added to a list of one or -more python-paths to modules holding Recipe-classes.

      -
      -
      Parameters
      -
        -
      • crafter (Object) – The one doing the crafting.

      • -
      • recipe_name (str) – The CraftRecipe.name to use. This uses fuzzy-matching -if the result is unique.

      • -
      • *inputs – Suitable ingredients and/or tools (Objects) to use in the crafting.

      • -
      • raise_exception (bool, optional) – If crafting failed for whatever -reason, raise CraftingError. The user will still be informed by the -recipe.

      • -
      • **kwargs – Optional kwargs to pass into the recipe (will passed into -recipe.craft).

      • -
      -
      -
      Returns
      -

      list – Crafted objects, if any.

      -
      -
      Raises
      -
        -
      • CraftingError – If raise_exception is True and crafting failed to

      • -
      • produce an output. KeyError – If recipe_name failed to find a

      • -
      • matching recipe class (or the hit was not precise enough.)

      • -
      -
      -
      -

      Notes

      -

      If no recipe_module is given, will look for a list settings.CRAFT_RECIPE_MODULES and -lastly fall back to the example module “evennia.contrib.”

      -
      - -
      -
      -class evennia.contrib.crafting.crafting.CraftingCmdSet(cmdsetobj=None, key=None)[source]
      -

      Bases: evennia.commands.cmdset.CmdSet

      -

      Store crafting command.

      -
      -
      -key = 'Crafting cmdset'
      -
      - -
      -
      -at_cmdset_creation()[source]
      -

      Hook method - this should be overloaded in the inheriting -class, and should take care of populating the cmdset by use of -self.add().

      -
      - -
      -
      -path = 'evennia.contrib.crafting.crafting.CraftingCmdSet'
      -
      - -
      - -
      -
      -class evennia.contrib.crafting.crafting.CmdCraft(**kwargs)[source]
      -

      Bases: evennia.commands.command.Command

      -

      Craft an item using ingredients and tools

      -
      -
      Usage:

      craft <recipe> [from <ingredient>,…] [using <tool>, …]

      -
      -
      -

      Examples

      -

      craft snowball from snow -craft puppet from piece of wood using knife -craft bread from flour, butter, water, yeast using owen, bowl, roller -craft fireball using wand, spellbook

      -

      Notes

      -

      Ingredients must be in the crafter’s inventory. Tools can also be -things in the current location, like a furnace, windmill or anvil.

      -
      -
      -key = 'craft'
      -
      - -
      -
      -locks = 'cmd:all()'
      -
      - -
      -
      -help_category = 'general'
      -
      - -
      -
      -aliases = []
      -
      - -
      -
      -arg_regex = re.compile('\\s|$', re.IGNORECASE)
      -
      - -
      -
      -lock_storage = 'cmd:all()'
      -
      - -
      -
      -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'craft', 'tags': '', 'text': "\n Craft an item using ingredients and tools\n\n Usage:\n craft <recipe> [from <ingredient>,...] [using <tool>, ...]\n\n Examples:\n craft snowball from snow\n craft puppet from piece of wood using knife\n craft bread from flour, butter, water, yeast using owen, bowl, roller\n craft fireball using wand, spellbook\n\n Notes:\n Ingredients must be in the crafter's inventory. Tools can also be\n things in the current location, like a furnace, windmill or anvil.\n\n "}
      -
      - -
      -
      -parse()[source]
      -

      Handle parsing of:

      -
      <recipe> [FROM <ingredients>] [USING <tools>]
      -
      -
      -

      Examples:

      -
      craft snowball from snow
      -craft puppet from piece of wood using knife
      -craft bread from flour, butter, water, yeast using owen, bowl, roller
      -craft fireball using wand, spellbook
      -
      -
      -
      - -
      -
      -func()[source]
      -

      Perform crafting.

      -

      Will check the craft locktype. If a consumable/ingredient does not pass -this check, we will check for the ‘crafting_consumable_err_msg’ -Attribute, otherwise will use a default. If failing on a tool, will use -the crafting_tool_err_msg if available.

      -
      - -
      - -
      +
      +

      evennia.contrib.crafting.crafting

      @@ -838,17 +69,6 @@ the crafting_tool_err_msg if available.

      -

      Table of Contents

      - -

      Previous topic

      Crafting system contrib

      @@ -868,6 +88,7 @@ the crafting_tool_err_msg if available.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -891,7 +112,6 @@ the crafting_tool_err_msg if available.

      -
      develop branch
      @@ -46,344 +45,8 @@
      -
      -

      evennia.contrib.crafting.example_recipes

      -

      How to make a sword - example crafting tree for the crafting system.

      -

      See the SwordSmithingBaseRecipe in this module for an example of extendng the -recipe with a mocked ‘skill’ system (just random chance in our case). The skill -system used is game-specific but likely to be needed for most ‘real’ crafting -systems.

      -

      Note that ‘tools’ are references to the tools used - they don’t need to be in -the inventory of the crafter. So when ‘blast furnace’ is given below, it is a -reference to a blast furnace used, not suggesting the crafter is carrying it -around with them.

      -
      -

      Sword crafting tree

      -
      # base materials (consumables)
      -
      -iron ore, ash, sand, coal, oak wood, water, fur
      -
      -# base tools (marked with [T] for clarity and assumed to already exist)
      -
      -blast furnace[T], furnace[T], crucible[T], anvil[T],
      -hammer[T], knife[T], cauldron[T]
      -
      -# recipes for making a sword
      -
      -pig iron = iron ore + 2xcoal + blast furnace[T]
      -crucible_steel = pig iron + ash + sand + 2xcoal + crucible[T]
      -sword blade = crucible steel + hammer[T] + anvil[T] + furnace[T]
      -sword pommel = crucible steel + hammer[T] + anvil[T] + furnace[T]
      -sword guard = crucible steel + hammer[T] + anvil[T] + furnace[T]
      -
      -rawhide = fur + knife[T]
      -oak bark + cleaned oak wood = oak wood + knife[T]
      -leather = rawhide + oak bark + water + cauldron[T]
      -
      -sword handle = cleaned oak wood + knife[T]
      -
      -sword = sword blade + sword guard + sword pommel
      -        + sword handle + leather + knife[T] + hammer[T] + furnace[T]
      -
      -
      -
      -
      -
      -evennia.contrib.crafting.example_recipes.random() → x in the interval [0, 1).
      -
      - -
      -
      -class evennia.contrib.crafting.example_recipes.PigIronRecipe(crafter, *inputs, **kwargs)[source]
      -

      Bases: evennia.contrib.crafting.crafting.CraftingRecipe

      -

      Pig iron is a high-carbon result of melting iron in a blast furnace.

      -
      -
      -name = 'pig iron'
      -
      - -
      -
      -tool_tags = ['blast furnace']
      -
      - -
      -
      -consumable_tags = ['iron ore', 'coal', 'coal']
      -
      - -
      -
      -output_prototypes = [{'key': 'Pig Iron ingot', 'desc': 'An ingot of crude pig iron.', 'tags': [('pig iron', 'crafting_material')]}]
      -
      - -
      - -
      -
      -class evennia.contrib.crafting.example_recipes.CrucibleSteelRecipe(crafter, *inputs, **kwargs)[source]
      -

      Bases: evennia.contrib.crafting.crafting.CraftingRecipe

      -

      Mixing pig iron with impurities like ash and sand and melting it in a -crucible produces a medieval level of steel (like damascus steel).

      -
      -
      -name = 'crucible steel'
      -
      - -
      -
      -tool_tags = ['crucible']
      -
      - -
      -
      -consumable_tags = ['pig iron', 'ash', 'sand', 'coal', 'coal']
      -
      - -
      -
      -output_prototypes = [{'key': 'Crucible steel ingot', 'desc': 'An ingot of multi-colored crucible steel.', 'tags': [('crucible steel', 'crafting_material')]}]
      -
      - -
      - -
      -
      -class evennia.contrib.crafting.example_recipes.SwordBladeRecipe(crafter, *inputs, **kwargs)[source]
      -

      Bases: evennia.contrib.crafting.example_recipes._SwordSmithingBaseRecipe

      -

      A [sword]blade requires hammering the steel out into shape using heat and -force. This also includes the tang, which is the base for the hilt (the -part of the sword you hold on to).

      -
      -
      -name = 'sword blade'
      -
      - -
      -
      -tool_tags = ['hammer', 'anvil', 'furnace']
      -
      - -
      -
      -consumable_tags = ['crucible steel']
      -
      - -
      -
      -output_prototypes = [{'key': 'Sword blade', 'desc': 'A long blade that may one day become a sword.', 'tags': [('sword blade', 'crafting_material')]}]
      -
      - -
      - -
      -
      -class evennia.contrib.crafting.example_recipes.SwordPommelRecipe(crafter, *inputs, **kwargs)[source]
      -

      Bases: evennia.contrib.crafting.example_recipes._SwordSmithingBaseRecipe

      -

      The pommel is the ‘button’ or ‘ball’ etc the end of the sword hilt, holding -it together.

      -
      -
      -name = 'sword pommel'
      -
      - -
      -
      -tool_tags = ['hammer', 'anvil', 'furnace']
      -
      - -
      -
      -consumable_tags = ['crucible steel']
      -
      - -
      -
      -output_prototypes = [{'key': 'Sword pommel', 'desc': 'The pommel for a future sword.', 'tags': [('sword pommel', 'crafting_material')]}]
      -
      - -
      - -
      -
      -class evennia.contrib.crafting.example_recipes.SwordGuardRecipe(crafter, *inputs, **kwargs)[source]
      -

      Bases: evennia.contrib.crafting.example_recipes._SwordSmithingBaseRecipe

      -

      The guard stops the hand from accidentally sliding off the hilt onto the -sword’s blade and also protects the hand when parrying.

      -
      -
      -name = 'sword guard'
      -
      - -
      -
      -tool_tags = ['hammer', 'anvil', 'furnace']
      -
      - -
      -
      -consumable_tags = ['crucible steel']
      -
      - -
      -
      -output_prototypes = [{'key': 'Sword guard', 'desc': 'The cross-guard for a future sword.', 'tags': [('sword guard', 'crafting_material')]}]
      -
      - -
      - -
      -
      -class evennia.contrib.crafting.example_recipes.RawhideRecipe(crafter, *inputs, **kwargs)[source]
      -

      Bases: evennia.contrib.crafting.crafting.CraftingRecipe

      -

      Rawhide is animal skin cleaned and stripped of hair.

      -
      -
      -name = 'rawhide'
      -
      - -
      -
      -tool_tags = ['knife']
      -
      - -
      -
      -consumable_tags = ['fur']
      -
      - -
      -
      -output_prototypes = [{'key': 'Rawhide', 'desc': 'Animal skin, cleaned and with hair removed.', 'tags': [('rawhide', 'crafting_material')]}]
      -
      - -
      - -
      -
      -class evennia.contrib.crafting.example_recipes.OakBarkRecipe(crafter, *inputs, **kwargs)[source]
      -

      Bases: evennia.contrib.crafting.crafting.CraftingRecipe

      -

      The actual thing needed for tanning leather is Tannin, but we skip -the step of refining tannin from the bark and use the bark as-is.

      -

      This produces two outputs - the bark and the cleaned wood.

      -
      -
      -name = 'oak bark'
      -
      - -
      -
      -tool_tags = ['knife']
      -
      - -
      -
      -consumable_tags = ['oak wood']
      -
      - -
      -
      -output_prototypes = [{'key': 'Oak bark', 'desc': 'Bark of oak, stripped from the core wood.', 'tags': [('oak bark', 'crafting_material')]}, {'key': 'Oak Wood (cleaned)', 'desc': 'Oakwood core, stripped of bark.', 'tags': [('cleaned oak wood', 'crafting_material')]}]
      -
      - -
      - -
      -
      -class evennia.contrib.crafting.example_recipes.LeatherRecipe(crafter, *inputs, **kwargs)[source]
      -

      Bases: evennia.contrib.crafting.crafting.CraftingRecipe

      -

      Leather is produced by tanning rawhide in a process traditionally involving -the chemical Tannin. Here we abbreviate this process a bit. Maybe a -‘tanning rack’ tool should be required too …

      -
      -
      -name = 'leather'
      -
      - -
      -
      -tool_tags = ['cauldron']
      -
      - -
      -
      -consumable_tags = ['rawhide', 'oak bark', 'water']
      -
      - -
      -
      -output_prototypes = [{'key': 'Piece of Leather', 'desc': 'A piece of leather.', 'tags': [('leather', 'crafting_material')]}]
      -
      - -
      - -
      -
      -class evennia.contrib.crafting.example_recipes.SwordHandleRecipe(crafter, *inputs, **kwargs)[source]
      -

      Bases: evennia.contrib.crafting.crafting.CraftingRecipe

      -

      The handle is the part of the hilt between the guard and the pommel where -you hold the sword. It consists of wooden pieces around the steel tang. It -is wrapped in leather, but that will be added at the end.

      -
      -
      -name = 'sword handle'
      -
      - -
      -
      -tool_tags = ['knife']
      -
      - -
      -
      -consumable_tags = ['cleaned oak wood']
      -
      - -
      -
      -output_prototypes = [{'key': 'Sword handle', 'desc': "Two pieces of wood to be be fitted onto a sword's tang as its handle.", 'tags': [('sword handle', 'crafting_material')]}]
      -
      - -
      - -
      -
      -class evennia.contrib.crafting.example_recipes.SwordRecipe(crafter, *inputs, **kwargs)[source]
      -

      Bases: evennia.contrib.crafting.example_recipes._SwordSmithingBaseRecipe

      -

      A finished sword consists of a Blade ending in a non-sharp part called the -Tang. The cross Guard is put over the tang against the edge of the blade. -The Handle is put over the tang to give something easier to hold. The -Pommel locks everything in place. The handle is wrapped in leather -strips for better grip.

      -

      This covers only a single ‘sword’ type.

      -
      -
      -name = 'sword'
      -
      - -
      -
      -tool_tags = ['hammer', 'furnace', 'knife']
      -
      - -
      -
      -consumable_tags = ['sword blade', 'sword guard', 'sword pommel', 'sword handle', 'leather']
      -
      - -
      -
      -output_prototypes = [{'key': 'Sword', 'desc': 'A bladed weapon.', 'tags': [('sword', 'crafting_material')]}]
      -
      - -
      -
      -exact_consumable_order = True
      -
      - -
      - -
      +
      +

      evennia.contrib.crafting.example_recipes

      @@ -406,14 +69,6 @@ strips for better grip.

      -

      Table of Contents

      - -

      Previous topic

      evennia.contrib.crafting.crafting

      @@ -433,6 +88,7 @@ strips for better grip.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -456,7 +112,6 @@ strips for better grip.

      -
      develop branch
      @@ -106,7 +97,6 @@ -
      develop branch
      @@ -37,221 +36,8 @@
      -
      -

      evennia.contrib.crafting.tests

      -

      Unit tests for the crafting system contrib.

      -
      -
      -class evennia.contrib.crafting.tests.TestCraftUtils(methodName='runTest')[source]
      -

      Bases: django.test.testcases.TestCase

      -

      Test helper utils for crafting.

      -
      -
      -maxDiff = None
      -
      - -
      -
      -test_load_recipes()[source]
      -

      This should only load the example module now

      -
      - -
      - -
      -
      -class evennia.contrib.crafting.tests.TestCraftingRecipeBase(methodName='runTest')[source]
      -

      Bases: django.test.testcases.TestCase

      -

      Test the parent recipe class.

      -
      -
      -setUp()[source]
      -

      Hook method for setting up the test fixture before exercising it.

      -
      - -
      -
      -test_msg()[source]
      -

      Test messaging to crafter

      -
      - -
      -
      -test_pre_craft()[source]
      -

      Test validating hook

      -
      - -
      -
      -test_pre_craft_fail()[source]
      -

      Should rase error if validation fails

      -
      - -
      -
      -test_craft_hook__succeed()[source]
      -

      Test craft hook, the main access method.

      -
      - -
      -
      -test_craft_hook__fail()[source]
      -

      Test failing the call

      -
      - -
      - -
      -
      -class evennia.contrib.crafting.tests.TestCraftingRecipe(methodName='runTest')[source]
      -

      Bases: django.test.testcases.TestCase

      -

      Test the CraftingRecipe class with one recipe

      -
      -
      -maxDiff = None
      -
      - -
      -
      -setUp()[source]
      -

      Hook method for setting up the test fixture before exercising it.

      -
      - -
      -
      -tearDown()[source]
      -

      Hook method for deconstructing the test fixture after testing it.

      -
      - -
      -
      -test_error_format()[source]
      -

      Test the automatic error formatter

      -
      - -
      -
      -test_craft__success()[source]
      -

      Test to create a result from the recipe

      -
      - -
      -
      -test_seed__succcess()[source]
      -

      Test seed helper classmethod

      -
      - -
      -
      -test_craft_missing_tool__fail()[source]
      -

      Fail craft by missing tool2

      -
      - -
      -
      -test_craft_missing_cons__fail()[source]
      -

      Fail craft by missing cons3

      -
      - -
      -
      -test_craft_missing_cons__always_consume__fail()[source]
      -

      Fail craft by missing cons3, with always-consume flag

      -
      - -
      -
      -test_craft_wrong_tool__fail()[source]
      -

      Fail craft by including a wrong tool

      -
      - -
      -
      -test_craft_tool_excess__fail()[source]
      -

      Fail by too many consumables

      -
      - -
      -
      -test_craft_cons_excess__fail()[source]
      -

      Fail by too many consumables

      -
      - -
      -
      -test_craft_tool_excess__sucess()[source]
      -

      Allow too many consumables

      -
      - -
      -
      -test_craft_cons_excess__sucess()[source]
      -

      Allow too many consumables

      -
      - -
      -
      -test_craft_tool_order__fail()[source]
      -

      Strict tool-order recipe fail

      -
      - -
      -
      -test_craft_cons_order__fail()[source]
      -

      Strict tool-order recipe fail

      -
      - -
      - -
      -
      -class evennia.contrib.crafting.tests.TestCraftSword(methodName='runTest')[source]
      -

      Bases: django.test.testcases.TestCase

      -

      Test the craft function by crafting the example sword.

      -
      -
      -setUp()[source]
      -

      Hook method for setting up the test fixture before exercising it.

      -
      - -
      -
      -test_craft_sword(mockrandom)[source]
      -

      Craft example sword. For the test, every crafting works.

      -
      - -
      - -
      -
      -class evennia.contrib.crafting.tests.TestCraftCommand(methodName='runTest')[source]
      -

      Bases: evennia.commands.default.tests.CommandTest

      -

      Test the crafting command

      -
      -
      -setUp()[source]
      -

      Sets up testing environment

      -
      - -
      -
      -test_craft__success()[source]
      -

      Successfully craft using command

      -
      - -
      -
      -test_craft__notools__failure()[source]
      -

      Craft fail no tools

      -
      - -
      -
      -test_craft__nocons__failure()[source]
      -
      - -
      - +
      +

      evennia.contrib.crafting.tests

      @@ -287,6 +73,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -303,7 +90,6 @@ -
      develop branch
      @@ -303,6 +302,7 @@ The time is given in units as keyword arguments.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -319,7 +319,6 @@ The time is given in units as keyword arguments.

      -
      develop branch
      @@ -149,7 +148,7 @@ everyone but the person rolling.

      -aliases = ['roll', '@dice']
      +aliases = ['@dice', 'roll']
      @@ -173,11 +172,6 @@ everyone but the person rolling.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': 'roll @dice', 'category': 'general', 'key': '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 "}
      -
      -
      @@ -234,6 +228,7 @@ Add with @py self.cmdset.add(“contrib.dice.DiceCmdSet”)

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -250,7 +245,6 @@ Add with @py self.cmdset.add(“contrib.dice.DiceCmdSet”)

      -
      develop branch
      @@ -74,7 +73,7 @@ the module given by settings.CONNECTION_SCREEN_MODULE.

      -aliases = ['co', 'conn', 'con']
      +aliases = ['conn', 'con', 'co']
      @@ -102,11 +101,6 @@ there is no object yet before the account has logged in)

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': 'co conn con', 'category': 'general', 'key': 'connect', '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 '}
      -
      -
      @@ -160,11 +154,6 @@ name enclosed in quotes:

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': 'cr cre', 'category': 'general', 'key': 'create', '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 '}
      -
      -
      @@ -181,7 +170,7 @@ version is a bit more complicated.

      -aliases = ['qu', 'q']
      +aliases = ['q', 'qu']
      @@ -205,11 +194,6 @@ version is a bit more complicated.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': 'qu q', 'category': 'general', 'key': 'quit', '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 '}
      -
      -
      @@ -226,7 +210,7 @@ All it does is display the connect screen.

      -aliases = ['look', 'l']
      +aliases = ['l', 'look']
      @@ -250,11 +234,6 @@ All it does is display the connect screen.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': 'look l', 'category': 'general', 'key': '__unloggedin_look_command', 'tags': '', 'text': '\n This is an unconnected version of the `look` command for simplicity.\n\n This is called by the server and kicks everything in gear.\n All it does is display the connect screen.\n '}
      -
      -
      @@ -294,11 +273,6 @@ for simplicity. It shows a pane of info.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': '? h', 'category': 'general', 'key': 'help', 'tags': '', 'text': '\n This is an unconnected version of the help command,\n for simplicity. It shows a pane of info.\n '}
      -
      -
      @@ -336,6 +310,7 @@ for simplicity. It shows a pane of info.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -352,7 +327,6 @@ for simplicity. It shows a pane of info.

      -
      develop branch
      @@ -123,11 +122,6 @@ the operation will be general or on the room.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'evscaperoom', 'key': 'command', 'tags': '', 'text': "\n Base command parent for all Evscaperoom commands.\n\n This operates on the premise of 'focus' - the 'focus'\n is set on the caller, then subsequent commands will\n operate on that focus. If no focus is set,\n the operation will be general or on the room.\n\n Syntax:\n\n command [<obj1>|<arg1>] [<prep> <obj2>|<arg2>]\n\n "}
      -
      -
      @@ -147,7 +141,7 @@ the operation will be general or on the room.

      -aliases = ['quit', 'chicken out', 'abort', 'q']
      +aliases = ['quit', 'chicken out', 'q', 'abort']
      @@ -169,11 +163,6 @@ set in self.parse())

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': 'quit chicken out abort q', 'category': 'evscaperoom', 'key': 'give up', '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 '}
      -
      -
      @@ -224,11 +213,6 @@ set in self.parse())

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': 'ls l', 'category': 'evscaperoom', 'key': 'look', 'tags': '', 'text': '\n Look at the room, an object or the currently focused object\n\n Usage:\n look [obj]\n\n '}
      -
      -
      @@ -282,11 +266,6 @@ set in self.parse())

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'evscaperoom', 'key': 'who', 'tags': '', 'text': '\n List other players in the game.\n\n Usage:\n who\n who all\n\n Show who is in the room with you, or (with who all), who is online on the\n server as a whole.\n\n '}
      -
      -
      @@ -307,7 +286,7 @@ shout

      -aliases = [';', 'whisper', 'shout']
      +aliases = ['shout', 'whisper', ';']
      @@ -334,11 +313,6 @@ set in self.parse())

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '; whisper shout', 'category': 'general', 'key': 'say', 'tags': '', 'text': '\n Perform an communication action.\n\n Usage:\n say <text>\n whisper\n shout\n\n '}
      -
      -
      @@ -401,11 +375,6 @@ set in self.parse())

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': 'pose :', 'category': 'general', 'key': 'emote', '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 '}
      -
      -
      @@ -426,7 +395,7 @@ looks and what actions is available.

      -aliases = ['examine', 'e', 'unfocus', 'ex']
      +aliases = ['unfocus', 'ex', 'e', 'examine']
      @@ -453,11 +422,6 @@ set in self.parse())

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': 'examine e unfocus ex', 'category': 'evscaperoom', 'key': 'focus', '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 '}
      -
      -
      @@ -498,11 +462,6 @@ set in self.parse())

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': 'option', 'category': 'evscaperoom', 'key': 'options', 'tags': '', 'text': '\n Start option menu\n\n Usage:\n options\n\n '}
      -
      -
      @@ -517,7 +476,7 @@ set in self.parse())

      -aliases = ['i', 'give', 'inventory', 'inv']
      +aliases = ['inventory', 'inv', 'give', 'i']
      @@ -539,11 +498,6 @@ set in self.parse())

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': 'i give inventory inv', 'category': 'evscaperoom', 'key': 'get', 'tags': '', 'text': '\n Use focus / examine instead.\n\n '}
      -
      -
      @@ -562,7 +516,7 @@ set in self.parse())

      -aliases = ['@dig', '@open']
      +aliases = ['@open', '@dig']
      @@ -583,11 +537,6 @@ to all the variables defined therein.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '@dig @open', 'category': 'general', 'key': 'open', 'tags': '', 'text': '\n Interact with an object in focus.\n\n Usage:\n <action> [arg]\n\n '}
      -
      -
      @@ -652,11 +601,6 @@ set in self.parse())

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'evscaperoom', 'key': '__nomatch_command', 'tags': '', 'text': '\n Interact with an object in focus.\n\n Usage:\n <action> [arg]\n\n This is a special catch-all command which will operate on\n the current focus. It will look for a method\n `focused_object.at_focus_<action>(caller, **kwargs)` and call\n it. This allows objects to just add a new hook to make that\n action apply to it. The obj1, prep, obj2, arg1, arg2 are passed\n as keys into the method.\n\n '}
      -
      -
      @@ -693,11 +637,6 @@ set in self.parse())

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'evscaperoom', 'key': 'stand', 'tags': '', 'text': '\n Stand up from whatever position you had.\n\n '}
      -
      -
      @@ -738,11 +677,6 @@ set in self.parse())

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': '?', 'category': 'evscaperoom', 'key': 'help', 'tags': '', 'text': '\n Get help.\n\n Usage:\n help <topic> or <command>\n\n '}
      -
      -
      @@ -799,11 +733,6 @@ set in self.parse())

      lock_storage = 'cmd:perm(Admin)'
      -
      -
      -search_index_entry = {'aliases': 'cobj', 'category': 'evscaperoom', 'key': 'createobj', 'tags': '', 'text': '\n Create command, only for Admins during debugging.\n\n Usage:\n createobj name[:typeclass]\n\n Here, :typeclass is a class in evscaperoom.commands\n\n '}
      -
      -
      @@ -859,11 +788,6 @@ set in self.parse())

      lock_storage = 'cmd:perm(Admin)'
      -
      -
      -search_index_entry = {'aliases': 'setflag', 'category': 'evscaperoom', 'key': 'flag', 'tags': '', 'text': '\n Assign a flag to an object. Admin use only\n\n Usage:\n flag <obj> with <flagname>\n\n '}
      -
      -
      @@ -920,11 +844,6 @@ set in self.parse())

      lock_storage = 'cmd:perm(Admin)'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'evscaperoom', 'key': 'jumpstate', 'tags': '', 'text': '\n Jump to a given state.\n\n Args:\n jumpstate <statename>\n\n '}
      -
      -
      @@ -961,11 +880,6 @@ set in self.parse())

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'evscaperoom', 'key': 'evscaperoom', 'tags': '', 'text': '\n Go to the Evscaperoom start menu\n\n '}
      -
      -
      @@ -1027,6 +941,7 @@ self.add().

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -1043,7 +958,6 @@ self.add().

      -
      develop branch
      @@ -86,6 +85,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -102,7 +102,6 @@ -
      develop branch
      @@ -184,6 +183,7 @@ option related to this node.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -200,7 +200,6 @@ option related to this node.

      -
      develop branch
      @@ -1804,6 +1803,7 @@ inject the list of callsigns.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -1820,7 +1820,6 @@ inject the list of callsigns.

      -
      develop branch
      @@ -263,6 +262,7 @@ contents of the object by default.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -279,7 +279,6 @@ contents of the object by default.

      -
      develop branch
      @@ -74,6 +73,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -90,7 +90,6 @@ -
      develop branch
      @@ -260,6 +259,7 @@ happens just before room.character_cleanup()

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -276,7 +276,6 @@ happens just before room.character_cleanup()

      -
      develop branch
      @@ -200,6 +199,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -216,7 +216,6 @@ -
      develop branch
      @@ -192,6 +191,7 @@ surrounded by borders.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -208,7 +208,6 @@ surrounded by borders.

      -
      develop branch
      @@ -294,11 +293,6 @@ look *<account&g lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': 'ls l', 'category': 'general', 'key': 'look', '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 '}
      -
      -
      @@ -362,11 +356,6 @@ version of the desc command.

      lock_storage = 'cmd:perm(desc) or perm(Builder)'
      -
      -
      -search_index_entry = {'aliases': 'describe', 'category': 'building', 'key': 'desc', 'tags': '', 'text': '\n `desc` - describe an object or room.\n\n Usage:\n desc[/switch] [<obj> =] <description>\n\n Switches for `desc`:\n spring - set description for <season> in current room.\n summer\n autumn\n winter\n\n Sets the "desc" attribute on an object. If an object is not given,\n describe the current room.\n\n You can also embed special time markers in your room description, like this:\n\n ```\n <night>In the darkness, the forest looks foreboding.</night>.\n ```\n\n Text marked this way will only display when the server is truly at the given\n timeslot. The available times are night, morning, afternoon and evening.\n\n Note that seasons and time-of-day slots only work on rooms in this\n version of the `desc` command.\n\n '}
      -
      -
      @@ -425,11 +414,6 @@ to all the variables defined therein.

      lock_storage = 'cmd:perm(Builder)'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'building', 'key': '@detail', 'tags': '', 'text': '\n sets a detail on a room\n\n Usage:\n @detail[/del] <key> [= <description>]\n @detail <key>;<alias>;... = description\n\n Example:\n @detail\n @detail walls = The walls are covered in ...\n @detail castle;ruin;tower = The distant ruin ...\n @detail/del wall\n @detail/del castle;ruin;tower\n\n This command allows to show the current room details if you enter it\n without any argument. Otherwise, sets or deletes a detail on the current\n room, if this room supports details like an extended room. To add new\n detail, just use the @detail command, specifying the key, an equal sign\n and the description. You can assign the same description to several\n details using the alias syntax (replace key by alias1;alias2;alias3;...).\n To remove one or several details, use the @detail/del switch.\n\n '}
      -
      -
      @@ -473,11 +457,6 @@ to all the variables defined therein.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'time', 'tags': '', 'text': '\n Check the game time\n\n Usage:\n time\n\n Shows the current in-game time and season.\n '}
      -
      -
      @@ -535,6 +514,7 @@ self.add().

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -551,7 +531,6 @@ self.add().

      -
      develop branch
      @@ -364,11 +363,6 @@ send

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'testmenu', 'tags': '', 'text': "\n This test command will initialize a menu that presents you with a form.\n You can fill out the fields of this form in any order, and then type in\n 'send' to send a message to another online player, which will reach them\n after a delay you specify.\n\n Usage:\n <field> = <new value>\n clear <field>\n help\n look\n quit\n send\n "}
      -
      -
      @@ -434,6 +428,7 @@ send

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -450,7 +445,6 @@ send

      -
      develop branch
      @@ -110,11 +109,6 @@ default cmdset before it becomes available.

      lock_storage = 'cmd:all();call:all()'
      -
      -
      -search_index_entry = {'aliases': '@sex', 'category': 'general', 'key': '@gender', 'tags': '', 'text': '\n Sets gender on yourself\n\n Usage:\n @gender male||female||neutral||ambiguous\n\n '}
      -
      -
      @@ -213,6 +207,7 @@ All extra kwargs will be passed on to the protocol.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -229,7 +224,6 @@ All extra kwargs will be passed on to the protocol.

      -
      develop branch
      @@ -131,6 +130,7 @@ readers will be unable to read the graphical aspect of the bar.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -147,7 +147,6 @@ readers will be unable to read the graphical aspect of the bar.

      -
      develop branch
      @@ -220,7 +195,6 @@ useful but are deemed too game-specific to go into the core library.

      -
      develop branch
      @@ -309,6 +308,7 @@ the expected fields for a callback (code, author, valid…).

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -325,7 +325,6 @@ the expected fields for a callback (code, author, valid…).

      -
      develop branch
      @@ -52,7 +51,7 @@
      -aliases = ['@calls', '@callbacks', '@callback']
      +aliases = ['@callbacks', '@calls', '@callback']
      @@ -131,11 +130,6 @@ on user permission.

      lock_storage = 'cmd:perm(developer)'
      -
      -
      -search_index_entry = {'aliases': '@calls @callbacks @callback', 'category': 'building', 'key': '@call', 'tags': '', 'text': '\n Command to edit callbacks.\n '}
      -
      -
      @@ -173,6 +167,7 @@ on user permission.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -189,7 +184,6 @@ on user permission.

      -
      develop branch
      @@ -141,6 +140,7 @@ to be called from inside another event.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -157,7 +157,6 @@ to be called from inside another event.

      -
      develop branch
      @@ -85,6 +84,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -101,7 +101,6 @@ -
      develop branch
      @@ -430,6 +429,7 @@ restart only twice.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -446,7 +446,6 @@ restart only twice.

      -
      develop branch
      @@ -216,6 +215,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -232,7 +232,6 @@ -
      develop branch
      @@ -467,6 +466,7 @@ deletion is aborted.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -483,7 +483,6 @@ deletion is aborted.

      -
      develop branch
      @@ -194,6 +193,7 @@ either “yes” or “okay” (maybe ‘say I don’t like it, but okay’).

      0.9.5 (v0.9.5 branch) +
      @@ -210,7 +210,6 @@ either “yes” or “okay” (maybe ‘say I don’t like it, but okay’).

      Evennia 1.0-dev » -
      develop branch
      @@ -218,11 +217,6 @@ the newly created mails.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': 'mail', 'category': 'general', 'key': '@mail', 'tags': '', 'text': '\n Communicate with others by sending mail.\n\n Usage:\n @mail - Displays all the mail an account has in their mailbox\n @mail <#> - Displays a specific message\n @mail <accounts>=<subject>/<message>\n - Sends a message to the comma separated list of accounts.\n @mail/delete <#> - Deletes a specific message\n @mail/forward <account list>=<#>[/<Message>]\n - Forwards an existing message to the specified list of accounts,\n original message is delivered with optional Message prepended.\n @mail/reply <#>=<message>\n - Replies to a message #. Prepends message to the original\n message text.\n Switches:\n delete - deletes a message\n forward - forward a received message to another object with an optional message attached.\n reply - Replies to a received message, appending the original message to the bottom.\n Examples:\n @mail 2\n @mail Griatch=New mail/Hey man, I am sending you a message!\n @mail/delete 6\n @mail/forward feend78 Griatch=4/You guys should read this.\n @mail/reply 9=Thanks for the info!\n\n '}
      -
      -
      @@ -291,11 +285,6 @@ reply - Replies to a received message, appending the original message to the b lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': 'mail', 'category': 'general', 'key': '@mail', 'tags': '', 'text': '\n Communicate with others by sending mail.\n\n Usage:\n @mail - Displays all the mail an account has in their mailbox\n @mail <#> - Displays a specific message\n @mail <accounts>=<subject>/<message>\n - Sends a message to the comma separated list of accounts.\n @mail/delete <#> - Deletes a specific message\n @mail/forward <account list>=<#>[/<Message>]\n - Forwards an existing message to the specified list of accounts,\n original message is delivered with optional Message prepended.\n @mail/reply <#>=<message>\n - Replies to a message #. Prepends message to the original\n message text.\n Switches:\n delete - deletes a message\n forward - forward a received message to another object with an optional message attached.\n reply - Replies to a received message, appending the original message to the bottom.\n Examples:\n @mail 2\n @mail Griatch=New mail/Hey man, I am sending you a message!\n @mail/delete 6\n @mail/forward feend78 Griatch=4/You guys should read this.\n @mail/reply 9=Thanks for the info!\n\n '}
      -
      -
      @@ -333,6 +322,7 @@ reply - Replies to a received message, appending the original message to the b
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -349,7 +339,6 @@ reply - Replies to a received message, appending the original message to the b -
      develop branch
      @@ -233,11 +232,6 @@ how many times the map is iterated over.

      lock_storage = 'cmd:superuser()'
      -
      -
      -search_index_entry = {'aliases': '@buildmap', 'category': 'building', 'key': '@mapbuilder', 'tags': '', 'text': '\n Build a map from a 2D ASCII map.\n\n Usage:\n @mapbuilder[/switch] <path.to.file.MAPNAME> <path.to.file.MAP_LEGEND>\n\n Switches:\n one - execute build instructions once without automatic exit creation\n two - execute build instructions twice without automatic exit creation\n\n Example:\n @mapbuilder world.gamemap.MAP world.maplegend.MAP_LEGEND\n @mapbuilder evennia.contrib.mapbuilder.EXAMPLE1_MAP EXAMPLE1_LEGEND\n @mapbuilder/two evennia.contrib.mapbuilder.EXAMPLE2_MAP EXAMPLE2_LEGEND\n (Legend path defaults to map path)\n\n This is a command which takes two inputs:\n A string of ASCII characters representing a map and a dictionary of\n functions containing build instructions. The characters of the map are\n iterated over and compared to a list of trigger characters. When a match\n is found the corresponding function is executed generating the rooms,\n exits and objects as defined by the users build instructions. If a\n character is not a match to a provided trigger character (including spaces)\n it is simply skipped and the process continues. By default exits are\n automatically generated but is turned off by switches which also determines\n how many times the map is iterated over.\n '}
      -
      -
      @@ -275,6 +269,7 @@ how many times the map is iterated over.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -291,7 +286,6 @@ how many times the map is iterated over.

      -
      develop branch
      @@ -142,11 +141,6 @@ to the menu’s own look command.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'general', 'key': '__unloggedin_look_command', 'tags': '', 'text': "\n An unloggedin version of the look command. This is called by the server\n when the account first connects. It sets up the menu before handing off\n to the menu's own look command.\n\n "}
      -
      -
      @@ -184,6 +178,7 @@ to the menu’s own look command.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -200,7 +195,6 @@ to the menu’s own look command.

      -
      develop branch
      @@ -116,11 +115,6 @@ description in use and db.multidesc to store all descriptions.< lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': 'desc', 'category': 'general', 'key': '+desc', 'tags': '', 'text': '\n Manage multiple descriptions\n\n Usage:\n +desc [key] - show current desc desc with <key>\n +desc <key> = <text> - add/replace desc with <key>\n +desc/list - list descriptions (abbreviated)\n +desc/list/full - list descriptions (full texts)\n +desc/edit <key> - add/edit desc <key> in line editor\n +desc/del <key> - delete desc <key>\n +desc/swap <key1>-<key2> - swap positions of <key1> and <key2> in list\n +desc/set <key> [+key+...] - set desc as default or combine multiple descs\n\n Notes:\n When combining multiple descs with +desc/set <key> + <key2> + ...,\n any keys not matching an actual description will be inserted\n as plain text. Use e.g. ansi line break ||/ to add a new\n paragraph and + + or ansi space ||_ to add extra whitespace.\n\n '}
      -
      -
      @@ -158,6 +152,7 @@ description in use and db.multidesc to store all descriptions.<
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -174,7 +169,6 @@ description in use and db.multidesc to store all descriptions.< -
      develop branch
      @@ -206,11 +205,6 @@ to all the variables defined therein.

      lock_storage = 'cmd:perm(puzzle) or perm(Builder)'
      -
      -
      -search_index_entry = {'aliases': '@puzzlerecipe', 'category': 'puzzles', 'key': '@puzzle', 'tags': '', 'text': "\n Creates a puzzle recipe. A puzzle consists of puzzle-parts that\n the player can 'use' together to create a specified result.\n\n Usage:\n @puzzle name,<part1[,part2,...>] = <result1[,result2,...]>\n\n Example:\n create/drop balloon\n create/drop glass of water\n create/drop water balloon\n @puzzle waterballon,balloon,glass of water = water balloon\n @del ballon, glass of water, water balloon\n @armpuzzle #1\n\n Notes:\n Each part and result are objects that must (temporarily) exist and be placed in their\n corresponding location in order to create the puzzle. After the creation of the puzzle,\n these objects are not needed anymore and can be deleted. Components of the puzzle\n will be re-created by use of the `@armpuzzle` command later.\n\n "}
      -
      -
      @@ -274,11 +268,6 @@ to all the variables defined therein.

      lock_storage = 'cmd:perm(puzzleedit) or perm(Builder)'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'puzzles', 'key': '@puzzleedit', 'tags': '', 'text': "\n Edits puzzle properties\n\n Usage:\n @puzzleedit[/delete] <#dbref>\n @puzzleedit <#dbref>/use_success_message = <Custom message>\n @puzzleedit <#dbref>/use_success_location_message = <Custom message from {caller} producing {result_names}>\n @puzzleedit <#dbref>/mask = attr1[,attr2,...]>\n @puzzleedit[/addpart] <#dbref> = <obj[,obj2,...]>\n @puzzleedit[/delpart] <#dbref> = <obj[,obj2,...]>\n @puzzleedit[/addresult] <#dbref> = <obj[,obj2,...]>\n @puzzleedit[/delresult] <#dbref> = <obj[,obj2,...]>\n\n Switches:\n addpart - adds parts to the puzzle\n delpart - removes parts from the puzzle\n addresult - adds results to the puzzle\n delresult - removes results from the puzzle\n delete - deletes the recipe. Existing parts and results aren't modified\n\n mask - attributes to exclude during matching (e.g. location, desc, etc.)\n use_success_location_message containing {result_names} and {caller} will\n automatically be replaced with correct values. Both are optional.\n\n When removing parts/results, it's possible to remove all.\n\n "}
      -
      -
      @@ -326,11 +315,6 @@ to all the variables defined therein.

      lock_storage = 'cmd:perm(armpuzzle) or perm(Builder)'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'puzzles', 'key': '@armpuzzle', 'tags': '', 'text': '\n Arms a puzzle by spawning all its parts.\n\n Usage:\n @armpuzzle <puzzle #dbref>\n\n Notes:\n Create puzzles with `@puzzle`; get list of\n defined puzzles using `@lspuzzlerecipes`.\n\n '}
      -
      -
      @@ -379,11 +363,6 @@ to all the variables defined therein.

      lock_storage = 'cmd:pperm(use) or pperm(Player)'
      -
      -
      -search_index_entry = {'aliases': 'combine', 'category': 'puzzles', 'key': 'use', 'tags': '', 'text': '\n Use an object, or a group of objects at once.\n\n\n Example:\n You look around you and see a pole, a long string, and a needle.\n\n use pole, long string, needle\n\n Genius! You built a fishing pole.\n\n\n Usage:\n use <obj1> [,obj2,...]\n '}
      -
      -
      @@ -428,11 +407,6 @@ to all the variables defined therein.

      lock_storage = 'cmd:perm(lspuzzlerecipes) or perm(Builder)'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'puzzles', 'key': '@lspuzzlerecipes', 'tags': '', 'text': '\n Searches for all puzzle recipes\n\n Usage:\n @lspuzzlerecipes\n '}
      -
      -
      @@ -477,11 +451,6 @@ to all the variables defined therein.

      lock_storage = 'cmd:perm(lsarmedpuzzles) or perm(Builder)'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'puzzles', 'key': '@lsarmedpuzzles', 'tags': '', 'text': '\n Searches for all armed puzzles\n\n Usage:\n @lsarmedpuzzles\n '}
      -
      -
      @@ -539,6 +508,7 @@ self.add().

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -555,7 +525,6 @@ self.add().

      -
      develop branch
      @@ -289,6 +288,7 @@ calling the get method.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -305,7 +305,6 @@ calling the get method.

      -
      develop branch
      @@ -98,46 +97,18 @@ words compared to the original and can help change the “feel” for the language you are creating. You can also add your own dictionary and “fix” random words for a list of input words.

      Below is an example of “elvish”, using “rounder” vowels and sounds:

      -
      # vowel/consonant grammar possibilities
      -grammar = ("v vv vvc vcc vvcc cvvc vccv vvccv vcvccv vcvcvcc vvccvvcc "
      -           "vcvvccvvc cvcvvcvvcc vcvcvvccvcvv")
      -
      -# all not in this group is considered a consonant
      +
      phonemes = "oi oh ee ae aa eh ah ao aw ay er ey ow ia ih iy "                "oy ua uh uw y p b t d f v t dh s z sh zh ch jh k "                "ng g m n l r w",
       vowels = "eaoiuy"
      -
      -# you need a representative of all of the minimal grammars here, so if a
      -# grammar v exists, there must be atleast one phoneme available with only
      -# one vowel in it
      -phonemes = ("oi oh ee ae aa eh ah ao aw ay er ey ow ia ih iy "
      -            "oy ua uh uw y p b t d f v t dh s z sh zh ch jh k "
      -            "ng g m n l r w")
      -
      -# how much the translation varies in length compared to the original. 0 is
      -# smallest, higher values give ever bigger randomness (including removing
      -# short words entirely)
      +grammar = "v vv vvc vcc vvcc cvvc vccv vvccv vcvccv vcvcvcc vvccvvcc "               "vcvvccvvc cvcvvcvvcc vcvcvvccvcvv",
       word_length_variance = 1
      -
      -# if a proper noun (word starting with capitalized letter) should be
      -# translated or not. If not (default) it means e.g. names will remain
      -# unchanged across languages.
      -noun_translate = False
      -
      -# all proper nouns (words starting with a capital letter not at the beginning
      -# of a sentence) can have either a postfix or -prefix added at all times
       noun_postfix = "'la"
      -
      -# words in dict will always be translated this way. The 'auto_translations'
      -# is instead a list or filename to file with words to use to help build a
      -# bigger dictionary by creating random translations of each word in the
      -# list *once* and saving the result for subsequent use.
       manual_translations = {"the":"y'e", "we":"uyi", "she":"semi", "he":"emi",
                             "you": "do", 'me':'mi','i':'me', 'be':"hy'e", 'and':'y'}
       
       rplanguage.add_language(key="elvish", phonemes=phonemes, grammar=grammar,
                                word_length_variance=word_length_variance,
      -                         noun_translate=noun_translate,
                                noun_postfix=noun_postfix, vowels=vowels,
      -                         manual_translations=manual_translations,
      +                         manual_translations=manual_translations
                                auto_translations="my_word_file.txt")
       
      @@ -218,13 +189,9 @@ cvcvccc would be c+v+c+v+cc+c (a word like ‘galosch’).

      0 means a minimal variance, higher variance may mean words have wildly varying length; this strongly affects how the language “looks”.

      -
    • noun_translate (bool, optional) – If a proper noun should be translated or -not. By default they will not, allowing for e.g. the names of characters -to be understandable. A ‘noun’ is identified as a capitalized word -not at the start of a sentence. This simple metric means that names -starting a sentence always will be translated (- but hey, maybe -the fantasy language just never uses a noun at the beginning of -sentences, who knows?)

    • +
    • noun_translate (bool, optional) – If a proper noun, identified as a +capitalized word, should be translated or not. By default they +will not, allowing for e.g. the names of characters to be understandable.

    • noun_prefix (str, optional) – A prefix to go before every noun in this language (if any).

    • noun_postfix (str, optuonal) – A postfix to go after every noun @@ -401,6 +368,7 @@ means fully obscured.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -417,7 +385,6 @@ means fully obscured.

      -
      develop branch
      @@ -266,10 +265,7 @@ langname can be None.

      Raises
      -
      +

      rplanguage.LanguageError – If an invalid language was specified.

      Notes

      @@ -554,11 +550,6 @@ mechanism. This is useful for adding masks/hoods etc.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'command', 'tags': '', 'text': 'simple parent'}
      -
      -
      @@ -612,11 +603,6 @@ a different language.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': ':', 'category': 'general', 'key': 'emote', 'tags': '', 'text': '\n Emote an action, allowing dynamic replacement of\n text in the emote.\n\n Usage:\n emote text\n\n Example:\n emote /me looks around.\n emote With a flurry /me attacks /tall man with his sword.\n emote "Hello", /me says.\n\n Describes an event in the world. This allows the use of /ref\n markers to replace with the short descriptions or recognized\n strings of objects in the same room. These will be translated to\n emotes to match each person seeing it. Use "..." for saying\n things and langcode"..." without spaces to say something in\n a different language.\n\n '}
      -
      -
      @@ -636,7 +622,7 @@ a different language.

      -aliases = ['"', "'"]
      +aliases = ["'", '"']
      @@ -660,11 +646,6 @@ a different language.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': '" \'', 'category': 'general', 'key': 'say', 'tags': '', 'text': '\n speak as your character\n\n Usage:\n say <message>\n\n Talk to those in your current location.\n '}
      -
      -
      @@ -708,11 +689,6 @@ a different language.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'sdesc', 'tags': '', 'text': '\n Assign yourself a short description (sdesc).\n\n Usage:\n sdesc <short description>\n\n Assigns a short description to yourself.\n\n '}
      -
      -
      @@ -771,11 +747,6 @@ sdesc in the emote, regardless of who is seeing it.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'pose', 'tags': '', 'text': "\n Set a static pose\n\n Usage:\n pose <pose>\n pose default <pose>\n pose reset\n pose obj = <pose>\n pose default obj = <pose>\n pose reset obj =\n\n Examples:\n pose leans against the tree\n pose is talking to the barkeep.\n pose box = is sitting on the floor.\n\n Set a static pose. This is the end of a full sentence that starts\n with your sdesc. If no full stop is given, it will be added\n automatically. The default pose is the pose you get when using\n pose reset. Note that you can use sdescs/recogs to reference\n people in your pose, but these always appear as that person's\n sdesc in the emote, regardless of who is seeing it.\n\n "}
      -
      -
      @@ -826,11 +797,6 @@ Using the command without arguments will list all current recogs.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': 'forget recognize', 'category': 'general', 'key': 'recog', '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 '}
      -
      -
      @@ -875,11 +841,6 @@ set in self.parse())

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': 'unmask', 'category': 'general', 'key': 'mask', 'tags': '', 'text': "\n Wear a mask\n\n Usage:\n mask <new sdesc>\n unmask\n\n This will put on a mask to hide your identity. When wearing\n a mask, your sdesc will be replaced by the sdesc you pick and\n people's recognitions of you will be disabled.\n\n "}
      -
      -
      @@ -1278,6 +1239,7 @@ the evennia.contrib.rplanguage module.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -1294,7 +1256,6 @@ the evennia.contrib.rplanguage module.

      -
      develop branch
      @@ -81,6 +80,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -97,7 +97,6 @@ -
      develop branch
      @@ -116,6 +115,7 @@ compromised or taken down, losing your logs along with it is no help!).

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -132,7 +132,6 @@ compromised or taken down, losing your logs along with it is no help!).

      -
      develop branch
      @@ -155,6 +154,7 @@ writing to log. Recording cleartext password attempts is bad policy.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -171,7 +171,6 @@ writing to log. Recording cleartext password attempts is bad policy.

      -
      develop branch
      @@ -95,6 +94,7 @@ parsed from the Session object.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -111,7 +111,6 @@ parsed from the Session object.

      -
      develop branch
      @@ -84,6 +83,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -100,7 +100,6 @@ -
      develop branch
      @@ -180,11 +179,6 @@ unique.

      lock_storage = 'cmd:perm(open) or perm(Builder)'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'building', 'key': 'open', 'tags': '', 'text': '\n open a new exit from the current room\n\n Usage:\n open <new exit>[;alias;alias..][:typeclass] [,<return exit>[;alias;..][:typeclass]]] = <destination>\n\n Handles the creation of exits. If a destination is given, the exit\n will point there. The <return exit> argument sets up an exit at the\n destination leading back to the current room. Destination name\n can be given both as a #dbref and a name, if that name is globally\n unique.\n\n '}
      -
      -
      @@ -228,11 +222,6 @@ close <door>

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': 'close', 'category': 'general', 'key': 'open', 'tags': '', 'text': '\n Open and close a door\n\n Usage:\n open <door>\n close <door>\n\n '}
      -
      -
      @@ -270,6 +259,7 @@ close <door>

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -286,7 +276,6 @@ close <door>

      -
      develop branch
      @@ -134,11 +133,6 @@ is assumed.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'setspeed', 'tags': '', 'text': "\n set your movement speed\n\n Usage:\n setspeed stroll|walk|run|sprint\n\n This will set your movement speed, determining how long time\n it takes to traverse exits. If no speed is set, 'walk' speed\n is assumed.\n "}
      -
      -
      @@ -178,11 +172,6 @@ stored deferred from the exit traversal above.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'stop', 'tags': '', 'text': '\n stop moving\n\n Usage:\n stop\n\n Stops the current movement, if any.\n '}
      -
      -
      @@ -220,6 +209,7 @@ stored deferred from the exit traversal above.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -236,7 +226,6 @@ stored deferred from the exit traversal above.

      -
      develop branch
      @@ -121,11 +120,6 @@ that NPC and give you options on what to talk about.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'talk', 'tags': '', 'text': '\n Talks to an npc\n\n Usage:\n talk\n\n This command is only available if a talkative non-player-character\n (NPC) is actually present. It will strike up a conversation with\n that NPC and give you options on what to talk about.\n '}
      -
      -
      @@ -222,6 +216,7 @@ the conversation defined above.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -238,7 +233,6 @@ the conversation defined above.

      -
      develop branch
      @@ -37,406 +36,8 @@
      -
      -

      evennia.contrib.test_traits

      -

      Unit test module for Trait classes.

      -
      -
      -class evennia.contrib.test_traits.TraitHandlerTest(methodName='runTest')[source]
      -

      Bases: evennia.contrib.test_traits._TraitHandlerBase

      -

      Testing for TraitHandler

      -
      -
      -setUp()[source]
      -

      Hook method for setting up the test fixture before exercising it.

      -
      - -
      -
      -test_add_trait()[source]
      -
      - -
      -
      -test_cache()[source]
      -

      Cache should not be set until first get

      -
      - -
      -
      -test_setting()[source]
      -

      Don’t allow setting stuff on traithandler

      -
      - -
      -
      -test_getting()[source]
      -

      Test we are getting data from the dbstore

      -
      - -
      -
      -test_all()[source]
      -

      Test all method

      -
      - -
      -
      -test_remove()[source]
      -

      Test remove method

      -
      - -
      -
      -test_clear()[source]
      -

      Test clear method

      -
      - -
      -
      -test_trait_db_connection()[source]
      -

      Test that updating a trait property actually updates value in db

      -
      - -
      - -
      -
      -class evennia.contrib.test_traits.TestTrait(methodName='runTest')[source]
      -

      Bases: evennia.contrib.test_traits._TraitHandlerBase

      -

      Test the base Trait class

      -
      -
      -setUp()[source]
      -

      Hook method for setting up the test fixture before exercising it.

      -
      - -
      -
      -test_init()[source]
      -
      - -
      -
      -test_validate_input__valid()[source]
      -

      Test valid validation input

      -
      - -
      -
      -test_validate_input__fail()[source]
      -

      Test failing validation

      -
      - -
      -
      -test_trait_getset()[source]
      -

      Get-set-del operations on trait

      -
      - -
      -
      -test_repr()[source]
      -
      - -
      - -
      -
      -class evennia.contrib.test_traits.TestTraitStatic(methodName='runTest')[source]
      -

      Bases: evennia.contrib.test_traits._TraitHandlerBase

      -

      Test for static Traits

      -
      -
      -setUp()[source]
      -

      Hook method for setting up the test fixture before exercising it.

      -
      - -
      -
      -test_init()[source]
      -
      - -
      -
      -test_value()[source]
      -

      value is base + mod

      -
      - -
      -
      -test_delete()[source]
      -

      Deleting resets to default.

      -
      - -
      - -
      -
      -class evennia.contrib.test_traits.TestTraitCounter(methodName='runTest')[source]
      -

      Bases: evennia.contrib.test_traits._TraitHandlerBase

      -

      Test for counter- Traits

      -
      -
      -setUp()[source]
      -

      Hook method for setting up the test fixture before exercising it.

      -
      - -
      -
      -test_init()[source]
      -
      - -
      -
      -test_value()[source]
      -

      value is current + mod, where current defaults to base

      -
      - -
      -
      -test_boundaries__minmax()[source]
      -

      Test range

      -
      - -
      -
      -test_boundaries__bigmod()[source]
      -

      add a big mod

      -
      - -
      -
      -test_boundaries__change_boundaries()[source]
      -

      Change boundaries after base/mod change

      -
      - -
      -
      -test_boundaries__disable()[source]
      -

      Disable and re-enable boundaries

      -
      - -
      -
      -test_boundaries__inverse()[source]
      -

      Set inverse boundaries - limited by base

      -
      - -
      -
      -test_current()[source]
      -

      Modifying current value

      -
      - -
      -
      -test_delete()[source]
      -

      Deleting resets to default.

      -
      - -
      -
      -test_percentage()[source]
      -

      Test percentage calculation

      -
      - -
      -
      -test_descs()[source]
      -

      Test descriptions

      -
      - -
      - -
      -
      -class evennia.contrib.test_traits.TestTraitCounterTimed(methodName='runTest')[source]
      -

      Bases: evennia.contrib.test_traits._TraitHandlerBase

      -

      Test for trait with timer component

      -
      -
      -setUp()[source]
      -

      Hook method for setting up the test fixture before exercising it.

      -
      - -
      -
      -test_timer_rate(mock_time)[source]
      -

      Test time stepping

      -
      - -
      -
      -test_timer_ratetarget(mock_time)[source]
      -

      test ratetarget

      -
      - -
      - -
      -
      -class evennia.contrib.test_traits.TestTraitGauge(methodName='runTest')[source]
      -

      Bases: evennia.contrib.test_traits._TraitHandlerBase

      -
      -
      -setUp()[source]
      -

      Hook method for setting up the test fixture before exercising it.

      -
      - -
      -
      -test_init()[source]
      -
      - -
      -
      -test_value()[source]
      -

      value is current, where current defaults to base + mod

      -
      - -
      -
      -test_boundaries__minmax()[source]
      -

      Test range

      -
      - -
      -
      -test_boundaries__bigmod()[source]
      -

      add a big mod

      -
      - -
      -
      -test_boundaries__change_boundaries()[source]
      -

      Change boundaries after current change

      -
      - -
      -
      -test_boundaries__disable()[source]
      -

      Disable and re-enable boundary

      -
      - -
      -
      -test_boundaries__inverse()[source]
      -

      Try to set reversed boundaries

      -
      - -
      -
      -test_current()[source]
      -

      Modifying current value

      -
      - -
      -
      -test_delete()[source]
      -

      Deleting resets to default.

      -
      - -
      -
      -test_percentage()[source]
      -

      Test percentage calculation

      -
      - -
      -
      -test_descs()[source]
      -

      Test descriptions

      -
      - -
      - -
      -
      -class evennia.contrib.test_traits.TestTraitGaugeTimed(methodName='runTest')[source]
      -

      Bases: evennia.contrib.test_traits._TraitHandlerBase

      -

      Test for trait with timer component

      -
      -
      -setUp()[source]
      -

      Hook method for setting up the test fixture before exercising it.

      -
      - -
      -
      -test_timer_rate(mock_time)[source]
      -

      Test time stepping

      -
      - -
      -
      -test_timer_ratetarget(mock_time)[source]
      -

      test ratetarget

      -
      - -
      - -
      -
      -class evennia.contrib.test_traits.TestNumericTraitOperators(methodName='runTest')[source]
      -

      Bases: django.test.testcases.TestCase

      -

      Test case for numeric magic method implementations.

      -
      -
      -setUp()[source]
      -

      Hook method for setting up the test fixture before exercising it.

      -
      - -
      -
      -tearDown()[source]
      -

      Hook method for deconstructing the test fixture after testing it.

      -
      - -
      -
      -test_pos_shortcut()[source]
      -

      overridden unary + operator returns value property

      -
      - -
      -
      -test_add_traits()[source]
      -

      test addition of Trait objects

      -
      - -
      -
      -test_sub_traits()[source]
      -

      test subtraction of Trait objects

      -
      - -
      -
      -test_mul_traits()[source]
      -

      test multiplication of Trait objects

      -
      - -
      -
      -test_floordiv()[source]
      -

      test floor division of Trait objects

      -
      - -
      -
      -test_comparisons_traits()[source]
      -

      test equality comparison between Trait objects

      -
      - -
      -
      -test_comparisons_numeric()[source]
      -

      equality comparisons between Trait and numeric

      -
      - -
      - +
      +

      evennia.contrib.test_traits

      @@ -472,6 +73,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -488,7 +90,6 @@ -
      develop branch
      @@ -37,807 +36,8 @@
      -
      -

      evennia.contrib.traits

      -

      Traits

      -

      Whitenoise 2014, Ainneve contributors, -Griatch 2020

      -

      A Trait represents a modifiable property on (usually) a Character. They can -be used to represent everything from attributes (str, agi etc) to skills -(hunting 10, swords 14 etc) and dynamically changing things like HP, XP etc.

      -

      Traits use Evennia Attributes under the hood, making them persistent (they survive -a server reload/reboot).

      -
      -

      Adding Traits to a typeclass

      -

      To access and manipulate traits on an object, its Typeclass needs to have a -TraitHandler assigned it. Usually, the handler is made available as .traits -(in the same way as .tags or .attributes).

      -

      Here’s an example for adding the TraitHandler to the base Object class:

      -
      -
      # mygame/typeclasses/objects.py
      -
      -from evennia import DefaultObject
      -from evennia.utils import lazy_property
      -from evennia.contrib.traits import TraitHandler
      -
      -# ...
      -
      -class Object(DefaultObject):
      -    ...
      -    @lazy_property
      -    def traits(self):
      -        # this adds the handler as .traits
      -        return TraitHandler(self)
      -
      -
      -
      -

      After a reload you can now try adding some example traits:

      -
      -
      -

      Using traits

      -

      A trait is added to the traithandler, after which one can access it -as a property on the handler (similarly to how you can do .db.attrname for Attributes -in Evennia).

      -
      # this is an example using the "static" trait, described below
      ->>> obj.traits.add("hunting", "Hunting Skill", trait_type="static", base=4)
      ->>> obj.traits.hunting.value
      -4
      ->>> obj.traits.hunting.value += 5
      ->>> obj.traits.hunting.value
      -9
      ->>> obj.traits.add("hp", "Health", trait_type="gauge", min=0, max=100)
      ->>> obj.traits.hp.value
      -100
      ->>> obj.traits.hp -= 200
      ->>> obj.traits.hp.value
      -0
      ->>> obj.traits.hp.reset()
      ->>> obj.traits.hp.value
      -100
      -# you can also access property with getitem
      ->>> obj.traits.hp["value"]
      -100
      -# you can store arbitrary data persistently as well
      ->>> obj.traits.hp.effect = "poisoned!"
      ->>> obj.traits.hp.effect
      -"poisoned!"
      -
      -
      -

      When adding the trait, you supply the name of the property (hunting) along -with a more human-friendly name (“Hunting Skill”). The latter will show if you -print the trait etc. The trait_type is important, this specifies which type -of trait this is.

      -
      -
      -

      Trait types

      -

      All default traits have a read-only .value property that shows the relevant or -‘current’ value of the trait. Exactly what this means depends on the type of trait.

      -

      Traits can also be combined to do arithmetic with their .value, if both have a -compatible type.

      -
      >>> trait1 + trait2
      -54
      ->>> trait1.value
      -3
      ->>> trait1 + 2
      ->>> trait1.value
      -5
      -
      -
      -

      Two numerical traits can also be compared (bigger-than etc), which is useful in -all sorts of rule-resolution.

      -
      if trait1 > trait2:
      -    # do stuff
      -
      -
      -
      -
      -

      Static trait

      -

      value = base + mod

      -

      The static trait has a base value and an optional mod-ifier. A typical use -of a static trait would be a Strength stat or Skill value. That is, something -that varies slowly or not at all, and which may be modified in-place.

      -
      >>> obj.traits.add("str", "Strength", trait_type="static", base=10, mod=2)
      ->>> obj.traits.mytrait.value
      -12   # base + mod
      ->>> obj.traits.mytrait.base += 2
      ->>> obj.traits.mytrait.mod += 1
      ->>> obj.traits.mytrait.value
      -15
      ->>> obj.traits.mytrait.mod = 0
      ->>> obj.traits.mytrait.value
      -12
      -
      -
      -
      -

      Counter

      -
      -
      -
      min/unset base base+mod max/unset
      -
      |--------------|——–|---------X--------X------------|
      -
      current value

      = current -+ mod

      -
      -
      -
      -
      -
      -
      -
      -

      A counter describes a value that can move from a base. The current property -is the thing usually modified. It starts at the base. One can also add a modifier, -which will both be added to the base and to current (forming .value). -The min/max of the range are optional, a boundary set to None will remove it.

      -
      >>> obj.traits.add("hunting", "Hunting Skill", trait_type="counter",
      -                   base=10, mod=1, min=0, max=100)
      ->>> obj.traits.hunting.value
      -11  # current starts at base + mod
      ->>> obj.traits.hunting.current += 10
      ->>> obj.traits.hunting.value
      -21
      -# reset back to base+mod by deleting current
      ->>> del obj.traits.hunting.current
      ->>> obj.traits.hunting.value
      -11
      ->>> obj.traits.hunting.max = None  # removing upper bound
      -
      -
      -

      Counters have some extra properties:

      -

      descs is a dict {upper_bound:text_description}. This allows for easily -storing a more human-friendly description of the current value in the -interval. Here is an example for skill values between 0 and 10:

      -
      -

      {0: “unskilled”, 1: “neophyte”, 5: “trained”, 7: “expert”, 9: “master”}

      -
      -

      The keys must be supplied from smallest to largest. Any values below the lowest and above the -highest description will be considered to be included in the closest description slot. -By calling .desc() on the Counter, will you get the text matching the current value -value.

      -
      # (could also have passed descs= to traits.add())
      ->>> obj.traits.hunting.descs = {
      -    0: "unskilled", 10: "neophyte", 50: "trained", 70: "expert", 90: "master"}
      ->>> obj.traits.hunting.value
      -11
      ->>> obj.traits.hunting.desc()
      -"neophyte"
      ->>> obj.traits.hunting.current += 60
      ->>> obj.traits.hunting.value
      -71
      ->>> obj.traits.hunting.desc()
      -"expert"
      -
      -
      -
      -

      .rate

      -

      The rate property defaults to 0. If set to a value different from 0, it -allows the trait to change value dynamically. This could be used for example -for an attribute that was temporarily lowered but will gradually (or abruptly) -recover after a certain time. The rate is given as change of the current -per-second, and the .value will still be restrained by min/max boundaries, if -those are set.

      -

      It is also possible to set a “.ratetarget”, for the auto-change to stop at -(rather than at the min/max boundaries). This allows the value to return to -a previous value.

      -
      >>> obj.traits.hunting.value
      -71
      ->>> obj.traits.hunting.ratetarget = 71
      -# debuff hunting for some reason
      ->>> obj.traits.hunting.current -= 30
      ->>> obj.traits.hunting.value
      -41
      ->>> obj.traits.hunting.rate = 1  # 1/s increase
      -# Waiting 5s
      ->>> obj.traits.hunting.value
      -46
      -# Waiting 8s
      ->>> obj.traits.hunting.value
      -54
      -# Waiting 100s
      ->>> obj.traits.hunting.value
      -71    # we have stopped at the ratetarget
      ->>> obj.traits.hunting.rate = 0  # disable auto-change
      -
      -
      -

      Note that if rate is a non-integer, the resulting .value (at least until it -reaches the boundary) will likely also come out a float. If you expect an -integer, you must run run int() on the result yourself.

      -
      -
      -

      .percentage()

      -

      If both min and max are defined, the .percentage() method of the trait will -return the value as a percentage.

      -
      >>> obj.traits.hunting.percentage()
      -"71.0%"
      -
      -
      -
      -
      -
      -

      Gauge

      -

      This emulates a [fuel-] gauge that empties from a base+mod value.

      -
      -
      -
      min/0 max=base+mod
      -
      |-----------------------X---------------------------|
      -

      value

      -
      -

      = current

      -
      -
      -
      -
      -
      -

      The ‘current’ value will start from a full gauge. The .max property is -read-only and is set by .base + .mod. So contrary to a Counter, the modifier -only applies to the max value of the gauge and not the current value. The -minimum bound defaults to 0. This trait is useful for showing resources that -can deplete, like health, stamina and the like.

      -
      >>> obj.traits.add("hp", "Health", trait_type="gauge", base=100)
      ->>> obj.traits.hp.value  # (or .current)
      -100
      ->>> obj.traits.hp.mod = 10
      ->>> obj.traits.hp.value
      -110
      ->>> obj.traits.hp.current -= 30
      ->>> obj.traits.hp.value
      -80
      -
      -
      -

      Same as Counters, Gauges can also have descs to describe the interval and can also -have rate and ratetarget to auto-update the value. The rate is particularly useful -for gauges, for everything from poison slowly draining your health, to resting gradually -increasing it. You can also use the .percentage() function to show the current value -as a percentage.

      -
      -
      -

      Trait

      -

      A single value of any type.

      -

      This is the ‘base’ Trait, meant to inherit from if you want to make your own -trait-types (see below). Its .value can be anything (that can be stored in an Attribute) -and if it’s a integer/float you can do arithmetic with it, but otherwise it -acts just like a glorified Attribute.

      -
      >>> obj.traits.add("mytrait", "My Trait", trait_type="trait", value=30)
      ->>> obj.traits.mytrait.value
      -30
      ->>> obj.traits.mytrait.value = "stringvalue"
      ->>> obj.traits.mytrait.value
      -"stringvalue"
      -
      -
      -
      -
      -
      -

      Expanding with your own Traits

      -

      A Trait is a class inhering from evennia.contrib.traits.Trait (or -from one of the existing Trait classes).

      -
      # in a file, say, 'mygame/world/traits.py'
      -
      -from evennia.contrib.traits import Trait
      -
      -class RageTrait(Trait):
      -
      -    trait_type = "rage"
      -    default_keys = {
      -        "rage": 0
      -    }
      -
      -
      -

      Above is an example custom-trait-class “rage” that stores a property “rage” on -itself, with a default value of 0. This has all the -functionality of a Trait - for example, if you do del on the rage property, it will be -set back to its default (0). If you wanted to customize what it does, you -just add rage property get/setters/deleters on the class.

      -

      To add your custom RageTrait to Evennia, add the following to your settings file -(assuming your class is in mygame/world/traits.py):

      -
      -

      TRAIT_CLASS_PATHS = [“world.traits.RageTrait”]

      -
      -

      Reload the server and you should now be able to use your trait:

      -
      >>> obj.traits.add("mood", "A dark mood", rage=30)
      ->>> obj.traits.mood.rage
      -30
      -
      -
      -
      -
      -
      -exception evennia.contrib.traits.TraitException(msg)[source]
      -

      Bases: RuntimeError

      -

      Base exception class raised by Trait objects.

      -
      -
      Parameters
      -

      msg (str) – informative error message

      -
      -
      -
      -
      -__init__(msg)[source]
      -

      Initialize self. See help(type(self)) for accurate signature.

      -
      - -
      - -
      -
      -class evennia.contrib.traits.MandatoryTraitKey[source]
      -

      Bases: object

      -

      This represents a required key that must be -supplied when a Trait is initialized. It’s used -by Trait classes when defining their required keys.

      -
      - -
      -
      -class evennia.contrib.traits.TraitHandler(obj, db_attribute_key='traits', db_attribute_category='traits')[source]
      -

      Bases: object

      -

      Factory class that instantiates Trait objects.

      -
      -
      -__init__(obj, db_attribute_key='traits', db_attribute_category='traits')[source]
      -

      Initialize the handler and set up its internal Attribute-based storage.

      -
      -
      Parameters
      -
        -
      • obj (Object) – Parent Object typeclass for this TraitHandler

      • -
      • db_attribute_key (str) – Name of the DB attribute for trait data storage

      • -
      -
      -
      -
      - -
      -
      -property all
      -

      Get all trait keys in this handler.

      -
      -
      Returns
      -

      list – All Trait keys.

      -
      -
      -
      - -
      -
      -get(trait_key)[source]
      -
      -
      Parameters
      -

      trait_key (str) – key from the traits dict containing config data.

      -
      -
      Returns
      -

      (Trait or None) – named Trait class or None if trait key -is not found in traits collection.

      -
      -
      -
      - -
      -
      -add(trait_key, name=None, trait_type='static', force=True, **trait_properties)[source]
      -

      Create a new Trait and add it to the handler.

      -
      -
      Parameters
      -
        -
      • trait_key (str) – This is the name of the property that will be made -available on this handler (example ‘hp’).

      • -
      • name (str, optional) – Name of the Trait, like “Health”. If -not given, will use trait_key starting with a capital letter.

      • -
      • trait_type (str, optional) – One of ‘static’, ‘counter’ or ‘gauge’.

      • -
      • force_add (bool) – If set, create a new Trait even if a Trait with -the same trait_key already exists.

      • -
      • trait_properties (dict) – These will all be use to initialize -the new trait. See the properties class variable on each -Trait class to see which are required.

      • -
      -
      -
      Raises
      -

      TraitException – If specifying invalid values for the given Trait, -the trait_type is not recognized, or an existing trait -already exists (and force is unset).

      -
      -
      -
      - -
      -
      -remove(trait_key)[source]
      -

      Remove a Trait from the handler’s parent object.

      -
      -
      Parameters
      -

      trait_key (str) – The name of the trait to remove.

      -
      -
      -
      - -
      -
      -clear()[source]
      -

      Remove all Traits from the handler’s parent object.

      -
      - -
      - -
      -
      -class evennia.contrib.traits.Trait(trait_data)[source]
      -

      Bases: object

      -

      Represents an object or Character trait. This simple base is just -storing anything in it’s ‘value’ property, so it’s pretty much just a -different wrapper to an Attribute. It does no type-checking of what is -stored.

      -
      -

      Note

      -

      See module docstring for configuration details.

      -
      -

      value

      -
      -
      -trait_type = 'trait'
      -
      - -
      -
      -default_keys = {'value': None}
      -
      - -
      -
      -allow_extra_properties = True
      -
      - -
      -
      -__init__(trait_data)[source]
      -

      This both initializes and validates the Trait on creation. It must -raise exception if validation fails. The TraitHandler will call this -when the trait is furst added, to make sure it validates before -storing.

      -
      -
      Parameters
      -

      trait_data (any) – Any pickle-able values to store with this trait. -This must contain any cls.default_keys that do not have a default -value in cls.data_default_values. Any extra kwargs will be made -available as extra properties on the Trait, assuming the class -variable allow_extra_properties is set.

      -
      -
      Raises
      -

      TraitException – If input-validation failed.

      -
      -
      -
      - -
      -
      -static validate_input(cls, trait_data)[source]
      -

      Validate input

      -
      -
      Parameters
      -

      trait_data (dict or _SaverDict) – Data to be used for -initialization of this trait.

      -
      -
      Returns
      -

      dict

      -
      -
      Validated data, possibly complemented with default

      values from default_keys.

      -
      -
      -

      -
      -
      Raises
      -

      TraitException – If finding unset keys without a default.

      -
      -
      -
      - -
      -
      -property name
      -

      Display name for the trait.

      -
      - -
      -
      -property key
      -

      Display name for the trait.

      -
      - -
      -
      -property value
      -

      Store a value

      -
      - -
      - -
      -
      -class evennia.contrib.traits.StaticTrait(trait_data)[source]
      -

      Bases: evennia.contrib.traits.Trait

      -

      Static Trait. This is a single value with a modifier, -with no concept of a ‘current’ value.

      -

      value = base + mod

      -
      -
      -trait_type = 'static'
      -
      - -
      -
      -default_keys = {'base': 0, 'mod': 0}
      -
      - -
      -
      -property mod
      -

      The trait’s modifier.

      -
      - -
      -
      -property value
      -

      The value of the Trait

      -
      - -
      - -
      -
      -class evennia.contrib.traits.CounterTrait(trait_data)[source]
      -

      Bases: evennia.contrib.traits.Trait

      -

      Counter Trait.

      -

      This includes modifications and min/max limits as well as the notion of a -current value. The value can also be reset to the base value.

      -
      -
      min/unset base base+mod max/unset
      -
      |--------------|——–|---------X--------X------------|
      -
      current value

      = current -+ mod

      -
      -
      -
      -
      -
      -
      -
        -
      • value = current + mod, starts at base + mod

      • -
      • if min or max is None, there is no upper/lower bound (default)

      • -
      • if max is set to “base”, max will be equal ot base+mod

      • -
      • descs are used to optionally describe each value interval. -The desc of the current value value can then be retrieved -with .desc(). The property is set as {lower_bound_inclusive:desc} -and should be given smallest-to-biggest. For example, for -a skill rating between 0 and 10:

        -
        -
        -
        {0: “unskilled”,

        1: “neophyte”, -5: “traited”, -7: “expert”, -9: “master”}

        -
        -
        -
        -
      • -
      • rate/ratetarget are optional settings to include a rate-of-change -of the current value. This is calculated on-demand and allows for -describing a value that is gradually growing smaller/bigger. The -increase will stop when either reaching a boundary (if set) or -ratetarget. Setting the rate to 0 (default) stops any change.

      • -
      -
      -
      -trait_type = 'counter'
      -
      - -
      -
      -default_keys = {'base': 0, 'descs': None, 'max': None, 'min': None, 'mod': 0, 'rate': 0, 'ratetarget': None}
      -
      - -
      -
      -static validate_input(cls, trait_data)[source]
      -

      Add extra validation for descs

      -
      - -
      -
      -property base
      -
      - -
      -
      -property mod
      -
      - -
      -
      -property min
      -
      - -
      -
      -property max
      -
      - -
      -
      -property current
      -

      The current value of the Trait. This does not have .mod added.

      -
      - -
      -
      -property value
      -

      The value of the Trait (current + mod)

      -
      - -
      -
      -property ratetarget
      -
      - -
      -
      -percent(formatting='{:3.1f}%')[source]
      -

      Return the current value as a percentage.

      -
      -
      Parameters
      -

      formatting (str, optional) – Should contain a -format-tag which will receive the value. If -this is set to None, the raw float will be -returned.

      -
      -
      Returns
      -

      float or str

      -
      -
      Depending of if a formatting string

      is supplied or not.

      -
      -
      -

      -
      -
      -
      - -
      -
      -reset()[source]
      -

      Resets current property equal to base value.

      -
      - -
      -
      -desc()[source]
      -

      Retrieve descriptions of the current value, if available.

      -

      This must be a mapping {upper_bound_inclusive: text}, -ordered from small to big. Any value above the highest -upper bound will be included as being in the highest bound. -rely on Python3.7+ dicts retaining ordering to let this -describe the interval.

      -
      -
      Returns
      -

      str

      -
      -
      The description describing the value value.

      If not found, returns the empty string.

      -
      -
      -

      -
      -
      -
      - -
      - -
      -
      -class evennia.contrib.traits.GaugeTrait(trait_data)[source]
      -

      Bases: evennia.contrib.traits.CounterTrait

      -

      Gauge Trait.

      -

      This emulates a gauge-meter that empties from a base+mod value.

      -
      -
      min/0 max=base+mod
      -
      |-----------------------X---------------------------|
      -

      value

      -
      -

      = current

      -
      -
      -
      -
      -
        -
      • min defaults to 0

      • -
      • max value is always base + mad

      • -
      • .max is an alias of .base

      • -
      • value = current and varies from min to max.

      • -
      • -
        descs is a mapping {upper_bound_inclusive: desc}. These

        are checked with .desc() and can be retrieve a text -description for a given current value.

        -

        For example, this could be used to describe health -values between 0 and 100:

        -
        -
        -
        {0: “Dead”

        10: “Badly hurt”, -30: “Bleeding”, -50: “Hurting”, -90: “Healthy”}

        -
        -
        -
        -
        -
        -
      • -
      -
      -
      -trait_type = 'gauge'
      -
      - -
      -
      -default_keys = {'base': 0, 'descs': None, 'min': 0, 'mod': 0, 'rate': 0, 'ratetarget': None}
      -
      - -
      -
      -property base
      -
      - -
      -
      -property mod
      -
      - -
      -
      -property min
      -
      - -
      -
      -property max
      -

      The max is always base + mod.

      -
      - -
      -
      -property current
      -

      The current value of the gauge.

      -
      - -
      -
      -property value
      -

      The value of the trait

      -
      - -
      -
      -percent(formatting='{:3.1f}%')[source]
      -

      Return the current value as a percentage.

      -
      -
      Parameters
      -

      formatting (str, optional) – Should contain a -format-tag which will receive the value. If -this is set to None, the raw float will be -returned.

      -
      -
      Returns
      -

      float or str

      -
      -
      Depending of if a formatting string

      is supplied or not.

      -
      -
      -

      -
      -
      -
      - -
      -
      -reset()[source]
      -

      Fills the gauge to its maximum allowed by base + mod

      -
      - -
      - -
      +
      +

      evennia.contrib.traits

      @@ -860,27 +60,6 @@ returned.

      -

      Table of Contents

      - -
      +
      @@ -910,7 +90,6 @@ returned.

      -
      develop branch
      @@ -370,11 +369,6 @@ set in self.parse())

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'namecolor', 'tags': '', 'text': '\n Set or remove a special color on your name. Just an example for the\n easy menu selection tree contrib.\n '}
      -
      -
      @@ -429,6 +423,7 @@ to determine the color the player chose.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -445,7 +440,6 @@ to determine the color the player chose.

      -
      develop branch
      @@ -83,6 +82,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -99,7 +99,6 @@ -
      develop branch
      @@ -501,11 +500,6 @@ When it’s your turn, you can attack other characters.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'fight', 'tags': '', 'text': "\n Starts a fight with everyone in the same room as you.\n\n Usage:\n fight\n\n When you start a fight, everyone in the room who is able to\n fight is added to combat, and a turn order is randomly rolled.\n When it's your turn, you can attack other characters.\n "}
      -
      -
      @@ -545,11 +539,6 @@ a chance to hit, and if successful, will deal damage.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'attack', 'tags': '', 'text': '\n Attacks another character.\n\n Usage:\n attack <target>\n\n When in a fight, you may attack another character. The attack has\n a chance to hit, and if successful, will deal damage.\n '}
      -
      -
      @@ -589,11 +578,6 @@ if there are still any actions you can take.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': 'wait hold', 'category': 'combat', 'key': 'pass', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}
      -
      -
      @@ -634,11 +618,6 @@ fight ends.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': 'spare', 'category': 'combat', 'key': 'disengage', 'tags': '', 'text': "\n Passes your turn and attempts to end combat.\n\n Usage:\n disengage\n\n Ends your turn early and signals that you're trying to end\n the fight. If all participants in a fight disengage, the\n fight ends.\n "}
      -
      -
      @@ -678,11 +657,6 @@ rest if you’re not in a fight.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'rest', 'tags': '', 'text': "\n Recovers damage.\n\n Usage:\n rest\n\n Resting recovers your HP to its maximum, but you can only\n rest if you're not in a fight.\n "}
      -
      -
      @@ -724,11 +698,6 @@ topics related to the game.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': '?', 'category': 'general', 'key': 'help', 'tags': '', 'text': '\n View help or a list of topics\n\n Usage:\n help <topic or command>\n help list\n help all\n\n This will search for help on commands and other\n topics related to the game.\n '}
      -
      -
      @@ -789,6 +758,7 @@ topics related to the game.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -805,7 +775,6 @@ topics related to the game.

      -
      develop branch
      @@ -618,11 +617,6 @@ When it’s your turn, you can attack other characters.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'fight', 'tags': '', 'text': "\n Starts a fight with everyone in the same room as you.\n\n Usage:\n fight\n\n When you start a fight, everyone in the room who is able to\n fight is added to combat, and a turn order is randomly rolled.\n When it's your turn, you can attack other characters.\n "}
      -
      -
      @@ -662,11 +656,6 @@ a chance to hit, and if successful, will deal damage.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'attack', 'tags': '', 'text': '\n Attacks another character.\n\n Usage:\n attack <target>\n\n When in a fight, you may attack another character. The attack has\n a chance to hit, and if successful, will deal damage.\n '}
      -
      -
      @@ -706,11 +695,6 @@ if there are still any actions you can take.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': 'wait hold', 'category': 'combat', 'key': 'pass', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}
      -
      -
      @@ -751,11 +735,6 @@ fight ends.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': 'spare', 'category': 'combat', 'key': 'disengage', 'tags': '', 'text': "\n Passes your turn and attempts to end combat.\n\n Usage:\n disengage\n\n Ends your turn early and signals that you're trying to end\n the fight. If all participants in a fight disengage, the\n fight ends.\n "}
      -
      -
      @@ -795,11 +774,6 @@ rest if you’re not in a fight.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'rest', 'tags': '', 'text': "\n Recovers damage.\n\n Usage:\n rest\n\n Resting recovers your HP to its maximum, but you can only\n rest if you're not in a fight.\n "}
      -
      -
      @@ -841,11 +815,6 @@ topics related to the game.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': '?', 'category': 'general', 'key': 'help', 'tags': '', 'text': '\n View help or a list of topics\n\n Usage:\n help <topic or command>\n help list\n help all\n\n This will search for help on commands and other\n topics related to the game.\n '}
      -
      -
      @@ -889,11 +858,6 @@ currently wielding.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'wield', 'tags': '', 'text': '\n Wield a weapon you are carrying\n\n Usage:\n wield <weapon>\n\n Select a weapon you are carrying to wield in combat. If\n you are already wielding another weapon, you will switch\n to the weapon you specify instead. Using this command in\n combat will spend your action for your turn. Use the\n "unwield" command to stop wielding any weapon you are\n currently wielding.\n '}
      -
      -
      @@ -933,11 +897,6 @@ weapon you are currently wielding and become unarmed.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'unwield', 'tags': '', 'text': '\n Stop wielding a weapon.\n\n Usage:\n unwield\n\n After using this command, you will stop wielding any\n weapon you are currently wielding and become unarmed.\n '}
      -
      -
      @@ -978,11 +937,6 @@ command to remove any armor you are wearing.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'don', 'tags': '', 'text': '\n Don armor that you are carrying\n\n Usage:\n don <armor>\n\n Select armor to wear in combat. You can\'t use this\n command in the middle of a fight. Use the "doff"\n command to remove any armor you are wearing.\n '}
      -
      -
      @@ -1023,11 +977,6 @@ You can’t use this command in combat.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'doff', 'tags': '', 'text': "\n Stop wearing armor.\n\n Usage:\n doff\n\n After using this command, you will stop wearing any\n armor you are currently using and become unarmored.\n You can't use this command in combat.\n "}
      -
      -
      @@ -1088,6 +1037,7 @@ You can’t use this command in combat.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -1104,7 +1054,6 @@ You can’t use this command in combat.

      -
      develop branch
      @@ -652,11 +651,6 @@ When it’s your turn, you can attack other characters.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'fight', 'tags': '', 'text': "\n Starts a fight with everyone in the same room as you.\n\n Usage:\n fight\n\n When you start a fight, everyone in the room who is able to\n fight is added to combat, and a turn order is randomly rolled.\n When it's your turn, you can attack other characters.\n "}
      -
      -
      @@ -696,11 +690,6 @@ a chance to hit, and if successful, will deal damage.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'attack', 'tags': '', 'text': '\n Attacks another character.\n\n Usage:\n attack <target>\n\n When in a fight, you may attack another character. The attack has\n a chance to hit, and if successful, will deal damage.\n '}
      -
      -
      @@ -740,11 +729,6 @@ if there are still any actions you can take.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': 'wait hold', 'category': 'combat', 'key': 'pass', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}
      -
      -
      @@ -785,11 +769,6 @@ fight ends.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': 'spare', 'category': 'combat', 'key': 'disengage', 'tags': '', 'text': "\n Passes your turn and attempts to end combat.\n\n Usage:\n disengage\n\n Ends your turn early and signals that you're trying to end\n the fight. If all participants in a fight disengage, the\n fight ends.\n "}
      -
      -
      @@ -829,11 +808,6 @@ rest if you’re not in a fight.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'rest', 'tags': '', 'text': "\n Recovers damage.\n\n Usage:\n rest\n\n Resting recovers your HP to its maximum, but you can only\n rest if you're not in a fight.\n "}
      -
      -
      @@ -875,11 +849,6 @@ topics related to the game.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': '?', 'category': 'general', 'key': 'help', 'tags': '', 'text': '\n View help or a list of topics\n\n Usage:\n help <topic or command>\n help list\n help all\n\n This will search for help on commands and other\n topics related to the game.\n '}
      -
      -
      @@ -920,11 +889,6 @@ to attack others, and as such can only be used in combat.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'use', 'tags': '', 'text': '\n Use an item.\n\n Usage:\n use <item> [= target]\n\n An item can have various function - looking at the item may\n provide information as to its effects. Some items can be used\n to attack others, and as such can only be used in combat.\n '}
      -
      -
      @@ -1068,6 +1032,7 @@ items using the same function work differently.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -1084,7 +1049,6 @@ items using the same function work differently.

      -
      develop branch
      @@ -524,11 +523,6 @@ When it’s your turn, you can attack other characters.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'fight', 'tags': '', 'text': "\n Starts a fight with everyone in the same room as you.\n\n Usage:\n fight\n\n When you start a fight, everyone in the room who is able to\n fight is added to combat, and a turn order is randomly rolled.\n When it's your turn, you can attack other characters.\n "}
      -
      -
      @@ -568,11 +562,6 @@ a chance to hit, and if successful, will deal damage.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'attack', 'tags': '', 'text': '\n Attacks another character.\n\n Usage:\n attack <target>\n\n When in a fight, you may attack another character. The attack has\n a chance to hit, and if successful, will deal damage.\n '}
      -
      -
      @@ -612,11 +601,6 @@ if there are still any actions you can take.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': 'wait hold', 'category': 'combat', 'key': 'pass', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}
      -
      -
      @@ -657,11 +641,6 @@ fight ends.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': 'spare', 'category': 'combat', 'key': 'disengage', 'tags': '', 'text': "\n Passes your turn and attempts to end combat.\n\n Usage:\n disengage\n\n Ends your turn early and signals that you're trying to end\n the fight. If all participants in a fight disengage, the\n fight ends.\n "}
      -
      -
      @@ -715,11 +694,6 @@ fight ends.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'magic', 'key': 'learnspell', 'tags': '', 'text': "\n Learn a magic spell.\n\n Usage:\n learnspell <spell name>\n\n Adds a spell by name to your list of spells known.\n\n The following spells are provided as examples:\n\n |wmagic missile|n (3 MP): Fires three missiles that never miss. Can target\n up to three different enemies.\n\n |wflame shot|n (3 MP): Shoots a high-damage jet of flame at one target.\n\n |wcure wounds|n (5 MP): Heals damage on one target.\n\n |wmass cure wounds|n (10 MP): Like 'cure wounds', but can heal up to 5\n targets at once.\n\n |wfull heal|n (12 MP): Heals one target back to full HP.\n\n |wcactus conjuration|n (2 MP): Creates a cactus.\n "}
      -
      -
      @@ -767,11 +741,6 @@ function.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'magic', 'key': 'cast', 'tags': '', 'text': "\n Cast a magic spell that you know, provided you have the MP\n to spend on its casting.\n\n Usage:\n cast <spellname> [= <target1>, <target2>, etc...]\n\n Some spells can be cast on multiple targets, some can be cast\n on only yourself, and some don't need a target specified at all.\n Typing 'cast' by itself will give you a list of spells you know.\n "}
      -
      -
      @@ -811,11 +780,6 @@ only rest if you’re not in a fight.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'rest', 'tags': '', 'text': "\n Recovers damage and restores MP.\n\n Usage:\n rest\n\n Resting recovers your HP and MP to their maximum, but you can\n only rest if you're not in a fight.\n "}
      -
      -
      @@ -855,11 +819,6 @@ other targets in combat.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'status', 'tags': '', 'text': '\n Gives combat information.\n\n Usage:\n status\n\n Shows your current and maximum HP and your distance from\n other targets in combat.\n '}
      -
      -
      @@ -901,11 +860,6 @@ topics related to the game.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': '?', 'category': 'general', 'key': 'help', 'tags': '', 'text': '\n View help or a list of topics\n\n Usage:\n help <topic or command>\n help list\n help all\n\n This will search for help on commands and other\n topics related to the game.\n '}
      -
      -
      @@ -1017,6 +971,7 @@ instead of creating objects directly.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -1033,7 +988,6 @@ instead of creating objects directly.

      -
      develop branch
      @@ -815,11 +814,6 @@ When it’s your turn, you can attack other characters.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'fight', 'tags': '', 'text': "\n Starts a fight with everyone in the same room as you.\n\n Usage:\n fight\n\n When you start a fight, everyone in the room who is able to\n fight is added to combat, and a turn order is randomly rolled.\n When it's your turn, you can attack other characters.\n "}
      -
      -
      @@ -861,11 +855,6 @@ you. Use the ‘approach’ command to get closer to a target.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'attack', 'tags': '', 'text': "\n Attacks another character in melee.\n\n Usage:\n attack <target>\n\n When in a fight, you may attack another character. The attack has\n a chance to hit, and if successful, will deal damage. You can only\n attack engaged targets - that is, targets that are right next to\n you. Use the 'approach' command to get closer to a target.\n "}
      -
      -
      @@ -908,11 +897,6 @@ nearby enemies.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'shoot', 'tags': '', 'text': "\n Attacks another character from range.\n\n Usage:\n shoot <target>\n\n When in a fight, you may shoot another character. The attack has\n a chance to hit, and if successful, will deal damage. You can attack\n any target in combat by shooting, but can't shoot if there are any\n targets engaged with you. Use the 'withdraw' command to retreat from\n nearby enemies.\n "}
      -
      -
      @@ -952,11 +936,6 @@ characters you are 0 spaces away from.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'approach', 'tags': '', 'text': '\n Approaches an object.\n\n Usage:\n approach <target>\n\n Move one space toward a character or object. You can only attack\n characters you are 0 spaces away from.\n '}
      -
      -
      @@ -995,11 +974,6 @@ characters you are 0 spaces away from.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'withdraw', 'tags': '', 'text': '\n Moves away from an object.\n\n Usage:\n withdraw <target>\n\n Move one space away from a character or object.\n '}
      -
      -
      @@ -1039,11 +1013,6 @@ if there are still any actions you can take.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': 'wait hold', 'category': 'combat', 'key': 'pass', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}
      -
      -
      @@ -1084,11 +1053,6 @@ fight ends.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': 'spare', 'category': 'combat', 'key': 'disengage', 'tags': '', 'text': "\n Passes your turn and attempts to end combat.\n\n Usage:\n disengage\n\n Ends your turn early and signals that you're trying to end\n the fight. If all participants in a fight disengage, the\n fight ends.\n "}
      -
      -
      @@ -1128,11 +1092,6 @@ rest if you’re not in a fight.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'rest', 'tags': '', 'text': "\n Recovers damage.\n\n Usage:\n rest\n\n Resting recovers your HP to its maximum, but you can only\n rest if you're not in a fight.\n "}
      -
      -
      @@ -1172,11 +1131,6 @@ other targets in combat.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'status', 'tags': '', 'text': '\n Gives combat information.\n\n Usage:\n status\n\n Shows your current and maximum HP and your distance from\n other targets in combat.\n '}
      -
      -
      @@ -1218,11 +1172,6 @@ topics related to the game.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': '?', 'category': 'general', 'key': 'help', 'tags': '', 'text': '\n View help or a list of topics\n\n Usage:\n help <topic or command>\n help list\n help all\n\n This will search for help on commands and other\n topics related to the game.\n '}
      -
      -
      @@ -1283,6 +1232,7 @@ topics related to the game.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -1299,7 +1249,6 @@ topics related to the game.

      -
      develop branch
      @@ -129,6 +128,7 @@ a random check here so as to only return 33% of the time.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -145,7 +145,6 @@ a random check here so as to only return 33% of the time.

      -
      develop branch
      @@ -87,11 +86,6 @@ push the lid of the button away.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': 'nudge', 'category': 'general', 'key': 'nudge lid', 'tags': '', 'text': "\n Try to nudge the button's lid\n\n Usage:\n nudge lid\n\n This command will have you try to\n push the lid of the button away.\n "}
      -
      -
      @@ -110,7 +104,7 @@ push the lid of the button away.

      -aliases = ['press button', 'press', 'push']
      +aliases = ['push', 'press', 'press button']
      @@ -139,11 +133,6 @@ lid-state respectively.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': 'press button press push', 'category': 'general', 'key': 'push button', 'tags': '', 'text': '\n Push the red button\n\n Usage:\n push button\n\n '}
      -
      -
      @@ -163,7 +152,7 @@ lid-state respectively.

      -aliases = ['break lid', 'smash lid', 'smash']
      +aliases = ['smash', 'break lid', 'smash lid']
      @@ -188,11 +177,6 @@ of causing the lamp to break.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': 'break lid smash lid smash', 'category': 'general', 'key': 'smash glass', 'tags': '', 'text': '\n smash glass\n\n Usage:\n smash glass\n\n Try to smash the glass of the button.\n '}
      -
      -
      @@ -211,7 +195,7 @@ of causing the lamp to break.

      -aliases = ['open', 'open button']
      +aliases = ['open button', 'open']
      @@ -235,11 +219,6 @@ of causing the lamp to break.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': 'open open button', 'category': 'general', 'key': 'open lid', 'tags': '', 'text': '\n open lid\n\n Usage:\n open lid\n\n '}
      -
      -
      @@ -283,11 +262,6 @@ of causing the lamp to break.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': 'close', 'category': 'general', 'key': 'close lid', 'tags': '', 'text': '\n close the lid\n\n Usage:\n close lid\n\n Closes the lid of the red button.\n '}
      -
      -
      @@ -307,7 +281,7 @@ of causing the lamp to break.

      -aliases = ['get', 'feel', 'examine', 'listen', 'ex', 'l']
      +aliases = ['ex', 'l', 'listen', 'examine', 'get', 'feel']
      @@ -331,11 +305,6 @@ of causing the lamp to break.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': 'get feel examine listen ex l', 'category': 'general', 'key': 'look', '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 "}
      -
      -
      @@ -378,11 +347,6 @@ of causing the lamp to break.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': 'h', 'category': 'general', 'key': 'help', 'tags': '', 'text': '\n Help function while in the blinded state\n\n Usage:\n help\n\n '}
      -
      -
      @@ -552,6 +516,7 @@ the button is pushed.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -568,7 +533,6 @@ the button is pushed.

      -
      develop branch
      @@ -74,6 +73,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -90,7 +90,6 @@ -
      develop branch
      @@ -85,6 +84,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -101,7 +101,6 @@ -
      develop branch
      @@ -37,79 +36,8 @@
      -
      -

      evennia.contrib.tutorial_examples.mirror

      -

      TutorialMirror

      -

      A simple mirror object to experiment with.

      -
      -
      -class evennia.contrib.tutorial_examples.mirror.TutorialMirror(*args, **kwargs)[source]
      -

      Bases: evennia.objects.objects.DefaultObject

      -

      A simple mirror object that -- echoes back the description of the object looking at it -- echoes back whatever is being sent to its .msg - to the

      -
      -

      sender, if given, otherwise to the location of the mirror.

      -
      -
      -
      -return_appearance(looker, **kwargs)[source]
      -

      This formats the description of this object. Called by the ‘look’ command.

      -
      -
      Parameters
      -
        -
      • looker (Object) – Object doing the looking.

      • -
      • **kwargs (dict) – Arbitrary, optional arguments for users -overriding the call (unused by default).

      • -
      -
      -
      -
      - -
      -
      -msg(text=None, from_obj=None, **kwargs)[source]
      -

      Simply override .msg to echo back to the messenger or to the current -location.

      -
      -
      Parameters
      -
        -
      • text (str or tuple, optional) – The message to send. This -is treated internally like any send-command, so its -value can be a tuple if sending multiple arguments to -the text oob command.

      • -
      • from_obj (obj or iterable) – given, at_msg_send will be called. This value will be -passed on to the protocol. If iterable, will execute hook -on all entities in it.

      • -
      -
      -
      -
      - -
      -
      -exception DoesNotExist
      -

      Bases: evennia.objects.objects.DefaultObject.DoesNotExist

      -
      - -
      -
      -exception MultipleObjectsReturned
      -

      Bases: evennia.objects.objects.DefaultObject.MultipleObjectsReturned

      -
      - -
      -
      -path = 'evennia.contrib.tutorial_examples.mirror.TutorialMirror'
      -
      - -
      -
      -typename = 'TutorialMirror'
      -
      - -
      - +
      +

      evennia.contrib.tutorial_examples.mirror

      @@ -145,6 +73,7 @@ on all entities in it.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -161,7 +90,6 @@ on all entities in it.

      -
      develop branch
      @@ -173,6 +172,7 @@ to how often the message is echoed.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -189,7 +189,6 @@ to how often the message is echoed.

      -
      develop branch
      @@ -418,6 +417,7 @@ called directly, regardless of the value of self.start_delay
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -434,7 +434,6 @@ called directly, regardless of the value of self.start_delay -
      develop branch
      @@ -110,6 +109,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -126,7 +126,6 @@ -
      develop branch
      @@ -83,6 +82,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -99,7 +99,6 @@ -
      develop branch
      @@ -265,6 +264,7 @@ option related to this node.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -281,7 +281,6 @@ option related to this node.

      -
      develop branch
      @@ -88,11 +87,6 @@ to turn on/off the mob.”

      lock_storage = 'cmd:superuser()'
      -
      -
      -search_index_entry = {'aliases': 'moboff', 'category': 'general', 'key': 'mobon', 'tags': '', 'text': "\n Activates/deactivates Mob\n\n Usage:\n mobon <mob>\n moboff <mob>\n\n This turns the mob from active (alive) mode\n to inactive (dead) mode. It is used during\n building to activate the mob once it's\n prepared.\n "}
      -
      -
      @@ -128,7 +122,7 @@ the way it came. If unset, the mob will remain stationary (idling) until attacked.

      aggressive: if set, will attack Characters in

      the same room using whatever Weapon it -carries (see tutorial_world.objects.TutorialWeapon). +carries (see tutorial_world.objects.Weapon). if unset, the mob will never engage in combat no matter what.

      @@ -314,6 +308,7 @@ right away, also when patrolling on a very slow ticker.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -330,7 +325,6 @@ right away, also when patrolling on a very slow ticker.

      -
      develop branch
      @@ -50,8 +49,8 @@ TutorialClimbable Obelisk LightSource CrumblingWall -TutorialWeapon -TutorialWeaponRack

      +Weapon +WeaponRack

      class evennia.contrib.tutorial_world.objects.TutorialObject(*args, **kwargs)[source]
      @@ -134,11 +133,6 @@ Attribute “readable_text” on the object and displays that.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'tutorialworld', 'key': 'read', 'tags': '', 'text': '\n Usage:\n read [obj]\n\n Read some text of a readable object.\n '}
      -
      -
      @@ -236,11 +230,6 @@ Attribute and add the readable cmdset.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'tutorialworld', 'key': 'climb', 'tags': '', 'text': '\n Climb an object\n\n Usage:\n climb <object>\n\n This allows you to climb.\n '}
      -
      -
      @@ -361,7 +350,7 @@ of the object. We overload it with our own version.

      -aliases = ['light', 'burn']
      +aliases = ['burn', 'light']
      @@ -386,11 +375,6 @@ to sit on a “lightable” object, we operate only on self.obj.

      lock_storage = 'cmd:holds()'
      -
      -
      -search_index_entry = {'aliases': 'light burn', 'category': 'tutorialworld', 'key': 'on', 'tags': '', 'text': '\n Creates light where there was none. Something to burn.\n '}
      -
      -
      @@ -492,7 +476,7 @@ shift green root up/down

      -aliases = ['move', 'push', 'pull', 'shiftroot']
      +aliases = ['push', 'pull', 'move', 'shiftroot']
      @@ -526,11 +510,6 @@ yellow/green - horizontal roots

      lock_storage = 'cmd:locattr(is_lit)'
      -
      -
      -search_index_entry = {'aliases': 'move push pull shiftroot', 'category': 'tutorialworld', 'key': 'shift', '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 '}
      -
      -
      @@ -545,7 +524,7 @@ yellow/green - horizontal roots

      -aliases = ['press button', 'button', 'push button']
      +aliases = ['push button', 'button', 'press button']
      @@ -569,11 +548,6 @@ yellow/green - horizontal roots

      lock_storage = 'cmd:objattr(button_exposed) and objlocattr(is_lit)'
      -
      -
      -search_index_entry = {'aliases': 'press button button push button', 'category': 'tutorialworld', 'key': 'press', 'tags': '', 'text': '\n Presses a button.\n '}
      -
      -
      @@ -715,7 +689,7 @@ parry - forgoes your attack but will make you harder to hit on next

      -aliases = ['thrust', 'parry', 'kill', 'fight', 'stab', 'pierce', 'slash', 'chop', 'defend', 'hit', 'bash']
      +aliases = ['defend', 'pierce', 'fight', 'stab', 'kill', 'slash', 'hit', 'chop', 'bash', 'parry', 'thrust']
      @@ -739,11 +713,6 @@ parry - forgoes your attack but will make you harder to hit on next

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': 'thrust parry kill fight stab pierce slash chop defend hit bash', 'category': 'tutorialworld', 'key': 'attack', '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 '}
      -
      -
      @@ -765,8 +734,8 @@ parry - forgoes your attack but will make you harder to hit on next

      -
      -class evennia.contrib.tutorial_world.objects.TutorialWeapon(*args, **kwargs)[source]
      +
      +class evennia.contrib.tutorial_world.objects.Weapon(*args, **kwargs)[source]

      Bases: evennia.contrib.tutorial_world.objects.TutorialObject

      This defines a bladed weapon.

      @@ -779,38 +748,38 @@ damage - base damage given (modified by hit success and

      -
      -at_object_creation()[source]
      +
      +at_object_creation()[source]

      Called at first creation of the object

      -
      -reset()[source]
      +
      +reset()[source]

      When reset, the weapon is simply deleted, unless it has a place to return to.

      -
      -exception DoesNotExist
      +
      +exception DoesNotExist

      Bases: evennia.contrib.tutorial_world.objects.TutorialObject.DoesNotExist

      -
      -exception MultipleObjectsReturned
      +
      +exception MultipleObjectsReturned

      Bases: evennia.contrib.tutorial_world.objects.TutorialObject.MultipleObjectsReturned

      -
      -path = 'evennia.contrib.tutorial_world.objects.TutorialWeapon'
      +
      +path = 'evennia.contrib.tutorial_world.objects.Weapon'
      -
      -typename = 'TutorialWeapon'
      +
      +typename = 'Weapon'
      @@ -856,11 +825,6 @@ itself handle all messages.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'tutorialworld', 'key': 'get weapon', 'tags': '', 'text': '\n Usage:\n get weapon\n\n This will try to obtain a weapon from the container.\n '}
      -
      -
      @@ -887,8 +851,8 @@ itself handle all messages.

      -
      -class evennia.contrib.tutorial_world.objects.TutorialWeaponRack(*args, **kwargs)[source]
      +
      +class evennia.contrib.tutorial_world.objects.WeaponRack(*args, **kwargs)[source]

      Bases: evennia.contrib.tutorial_world.objects.TutorialObject

      This object represents a weapon store. When people use the “get weapon” command on this rack, it will produce one @@ -906,14 +870,14 @@ grab another one.

      -
      -at_object_creation()[source]
      +
      +at_object_creation()[source]

      called at creation

      -
      -produce_weapon(caller)[source]
      +
      +produce_weapon(caller)[source]

      This will produce a new weapon from the rack, assuming the caller hasn’t already gotten one. When doing so, the caller will get Tagged with the id @@ -922,25 +886,25 @@ pulling weapons from it indefinitely.

      -
      -exception DoesNotExist
      +
      +exception DoesNotExist

      Bases: evennia.contrib.tutorial_world.objects.TutorialObject.DoesNotExist

      -
      -exception MultipleObjectsReturned
      +
      +exception MultipleObjectsReturned

      Bases: evennia.contrib.tutorial_world.objects.TutorialObject.MultipleObjectsReturned

      -
      -path = 'evennia.contrib.tutorial_world.objects.TutorialWeaponRack'
      +
      +path = 'evennia.contrib.tutorial_world.objects.WeaponRack'
      -
      -typename = 'TutorialWeaponRack'
      +
      +typename = 'WeaponRack'
      @@ -980,6 +944,7 @@ pulling weapons from it indefinitely.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -996,7 +961,6 @@ pulling weapons from it indefinitely.

      -
      develop branch
      @@ -87,11 +86,6 @@ called tutorial_info and display that.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': 'tut', 'category': 'tutorialworld', 'key': 'tutorial', 'tags': '', 'text': '\n Get help during the tutorial\n\n Usage:\n tutorial [obj]\n\n This command allows you to get behind-the-scenes info\n about an object or the current location.\n\n '}
      -
      -
      @@ -145,11 +139,6 @@ the set_detail method and uses it.

      lock_storage = 'cmd:perm(Builder)'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'tutorialworld', 'key': '@detail', 'tags': '', 'text': '\n sets a detail on a room\n\n Usage:\n @detail <key> = <description>\n @detail <key>;<alias>;... = description\n\n Example:\n @detail walls = The walls are covered in ...\n @detail castle;ruin;tower = The distant ruin ...\n\n This sets a "detail" on the object this command is defined on\n (TutorialRoom for this tutorial). This detail can be accessed with\n the TutorialRoomLook command sitting on TutorialRoom objects (details\n are set as a simple dictionary on the room). This is a Builder command.\n\n We custom parse the key for the ;-separator in order to create\n multiple aliases to the detail all at once.\n '}
      -
      -
      @@ -197,11 +186,6 @@ code except for adding in the details.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': 'ls l', 'category': 'tutorialworld', 'key': 'look', '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 '}
      -
      -
      @@ -238,11 +222,6 @@ to all the variables defined therein.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': 'abort', 'category': 'general', 'key': 'give up', 'tags': '', 'text': '\n Give up the tutorial-world quest and return to Limbo, the start room of the\n server.\n\n '}
      -
      -
      @@ -448,11 +427,6 @@ set in self.parse())

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'intro', 'tags': '', 'text': '\n Start the Evennia intro wizard.\n\n Usage:\n intro\n\n '}
      -
      -
      @@ -582,11 +556,6 @@ on the bridge, 0 - 4.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': 'e', 'category': 'tutorialworld', 'key': 'east', 'tags': '', 'text': '\n Go eastwards across the bridge.\n\n Tutorial info:\n This command relies on the caller having two Attributes\n (assigned by the room when entering):\n - east_exit: a unique name or dbref to the room to go to\n when exiting east.\n - west_exit: a unique name or dbref to the room to go to\n when exiting west.\n The room must also have the following Attributes\n - tutorial_bridge_posistion: the current position on\n on the bridge, 0 - 4.\n\n '}
      -
      -
      @@ -645,11 +614,6 @@ on the bridge, 0 - 4.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': 'w', 'category': 'tutorialworld', 'key': 'west', 'tags': '', 'text': '\n Go westwards across the bridge.\n\n Tutorial info:\n This command relies on the caller having two Attributes\n (assigned by the room when entering):\n - east_exit: a unique name or dbref to the room to go to\n when exiting east.\n - west_exit: a unique name or dbref to the room to go to\n when exiting west.\n The room must also have the following property:\n - tutorial_bridge_posistion: the current position on\n on the bridge, 0 - 4.\n\n '}
      -
      -
      @@ -694,11 +658,6 @@ if they fall off the bridge.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': 'l', 'category': 'tutorialworld', 'key': 'look', 'tags': '', 'text': '\n looks around at the bridge.\n\n Tutorial info:\n This command assumes that the room has an Attribute\n "fall_exit", a unique name or dbref to the place they end upp\n if they fall off the bridge.\n '}
      -
      -
      @@ -737,11 +696,6 @@ if they fall off the bridge.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': '? h', 'category': 'tutorial world', 'key': 'help', 'tags': '', 'text': '\n Overwritten help command while on the bridge.\n '}
      -
      -
      @@ -865,7 +819,7 @@ to find something.

      -aliases = ['search', 'fiddle', 'feel around', 'feel', 'l']
      +aliases = ['fiddle', 'l', 'search', 'feel around', 'feel']
      @@ -891,11 +845,6 @@ random chance of eventually finding a light source.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': 'search fiddle feel around feel l', 'category': 'tutorialworld', 'key': 'look', '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 '}
      -
      -
      @@ -934,11 +883,6 @@ random chance of eventually finding a light source.

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'tutorialworld', 'key': 'help', 'tags': '', 'text': '\n Help command for the dark state.\n '}
      -
      -
      @@ -981,11 +925,6 @@ suggestions)

      lock_storage = 'cmd:all()'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'general', 'key': '__nomatch_command', 'tags': '', 'text': "\n This is a system command. Commands with special keys are used to\n override special sitations in the game. The CMD_NOMATCH is used\n when the given command is not found in the current command set (it\n replaces Evennia's default behavior or offering command\n suggestions)\n "}
      -
      -
      @@ -1247,6 +1186,7 @@ overriding the call (unused by default).

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -1263,7 +1203,6 @@ overriding the call (unused by default).

      -
      develop branch
      @@ -318,11 +317,6 @@ use its add_argument method.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'command', 'tags': '', 'text': '\n Unix-type commands, supporting short and long options.\n\n This command syntax uses the Unix-style commands with short options\n (-X) and long options (--something). The `argparse` module is\n used to parse the command.\n\n In order to use it, you should override two methods:\n - `init_parser`: this method is called when the command is created.\n It can be used to set options in the parser. `self.parser`\n contains the `argparse.ArgumentParser`, so you can add arguments\n here.\n - `func`: this method is called to execute the command, but after\n the parser has checked the arguments given to it are valid.\n You can access the namespace of valid arguments in `self.opts`\n at this point.\n\n The help of UnixCommands is derived from the docstring, in a\n slightly different way than usual: the first line of the docstring\n is used to represent the program description (the very short\n line at the top of the help message). The other lines below are\n used as the program\'s "epilog", displayed below the options. It\n means in your docstring, you don\'t have to write the options.\n They will be automatically provided by the parser and displayed\n accordingly. The `argparse` module provides a default \'-h\' or\n \'--help\' option on the command. Typing |whelp commandname|n will\n display the same as |wcommandname -h|n, though this behavior can\n be changed.\n\n '}
      -
      -
      @@ -360,6 +354,7 @@ use its add_argument method.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -376,7 +371,6 @@ use its add_argument method.

      -
      develop branch
      @@ -701,6 +700,7 @@ coordinate.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -717,7 +717,6 @@ coordinate.

      -
      develop branch
      @@ -200,6 +199,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -216,7 +216,6 @@ -
      develop branch
      @@ -85,6 +84,7 @@ itself.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -101,7 +101,6 @@ itself.

      -
      develop branch
      @@ -212,6 +211,7 @@ up in one easily separated category.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -228,7 +228,6 @@ up in one easily separated category.

      -
      develop branch
      @@ -140,12 +139,6 @@ access_type - type of access sought default - what to return if no lock of access_type was found

      -
      -
      -property search_index_entry
      -

      Property for easily retaining a search index entry for this object.

      -
      -
      web_get_admin_url()[source]
      @@ -380,6 +373,7 @@ object the first time, the query is executed.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -396,7 +390,6 @@ object the first time, the query is executed.

      -
      develop branch
      @@ -554,7 +520,6 @@ with ‘q’, remove the break line and restart server when finished.

      -
      develop branch
      @@ -86,6 +85,7 @@ also contains the default lock functions used in lock definitions.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -102,7 +102,6 @@ also contains the default lock functions used in lock definitions.

      -
      develop branch
      @@ -538,6 +537,7 @@ unpacked to their real value. We only support basic properties.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -554,7 +554,6 @@ unpacked to their real value. We only support basic properties.

      -
      develop branch
      @@ -446,6 +445,7 @@ among the locks defined by lockstring.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -462,7 +462,6 @@ among the locks defined by lockstring.

      -
      develop branch
      @@ -333,6 +332,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -349,7 +349,6 @@ -
      develop branch
      @@ -84,6 +83,7 @@ objects inherit from classes in this package.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -100,7 +100,6 @@ objects inherit from classes in this package.

      -
      develop branch
      @@ -81,6 +80,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -97,7 +97,6 @@ -
      develop branch
      @@ -70,17 +69,6 @@ handler is defined

      -
      -
      -load()[source]
      -

      Retrieves all objects from database. Used for initializing.

      -
      -
      Returns
      -

      Objects (list of ObjectDB)

      -
      -
      -
      -
      init()[source]
      @@ -89,14 +77,11 @@ handler is defined

      -get(exclude=None, content_type=None)[source]
      +get(exclude=None)[source]

      Return the contents of the cache.

      Parameters
      -
        -
      • exclude (Object or list of Object) – object(s) to ignore

      • -
      • content_type (str or None) – Filter list by a content-type. If None, don’t filter.

      • -
      +

      exclude (Object or list of Object) – object(s) to ignore

      Returns

      objects (list) – the Objects inside this location

      @@ -562,6 +547,7 @@ class built by **create_forward_many_to_many_manager()** define
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -578,7 +564,6 @@ class built by **create_forward_many_to_many_manager()** define -
      develop branch
      @@ -198,26 +197,21 @@ currently connected to this object.

      -contents_get(exclude=None, content_type=None)[source]
      +contents_get(exclude=None)[source]

      Returns the contents of this object, i.e. all objects that has this object set as its location. This should be publically available.

      Parameters
      -
        -
      • exclude (Object) – Object to exclude from returned -contents list

      • -
      • content_type (str) – A content_type to filter by. None for no -filtering.

      • -
      +

      exclude (Object) – Object to exclude from returned +contents list

      Returns

      contents (list) – List of contents of this Object.

      Notes

      -

      Also available as the contents property, minus exclusion -and filtering.

      +

      Also available as the contents property.

      @@ -234,20 +228,15 @@ objects that has this object set as its location. This should be publically available.

      Parameters
      -
        -
      • exclude (Object) – Object to exclude from returned -contents list

      • -
      • content_type (str) – A content_type to filter by. None for no -filtering.

      • -
      +

      exclude (Object) – Object to exclude from returned +contents list

      Returns

      contents (list) – List of contents of this Object.

      Notes

      -

      Also available as the contents property, minus exclusion -and filtering.

      +

      Also available as the contents property.

      @@ -311,7 +300,7 @@ plural (str): The determined plural form of the key, including the count.

      -search(searchdata, global_search=False, use_nicks=True, typeclass=None, location=None, attribute_name=None, quiet=False, exact=False, candidates=None, nofound_string=None, multimatch_string=None, use_dbref=None, stacked=0)[source]
      +search(searchdata, global_search=False, use_nicks=True, typeclass=None, location=None, attribute_name=None, quiet=False, exact=False, candidates=None, nofound_string=None, multimatch_string=None, use_dbref=None)[source]

      Returns an Object matching a search string/condition

      Perform a standard object search in the database, handling multiple results and lack thereof gracefully. By default, only @@ -346,9 +335,7 @@ for a broader search.

      to search. Note that this is used to query the contents of a location and will not match for the location itself - if you want that, don’t set this or use candidates to specify -exactly which objects should be searched. If this nor candidates are -given, candidates will include caller’s inventory, current location and -all objects in the current location.

      +exactly which objects should be searched.

    • attribute_name (str) – Define which property to search. If set, no key+alias search will be performed. This can be used to search database fields (db_ will be automatically @@ -376,22 +363,14 @@ to find an object (globally) by its database-id 123. If False, will be treated like a normal string. If None (default), the ability to query by #dbref is turned on if self has the permission ‘Builder’ and is turned off otherwise.

    • -
    • stacked (int, optional) – If > 0, multimatches will be analyzed to determine if they -only contains identical objects; these are then assumed ‘stacked’ and no multi-match -error will be generated, instead stacked number of matches will be returned. If -stacked is larger than number of matches, returns that number of matches. If -the found stack is a mix of objects, return None and handle the multi-match -error depending on the value of quiet.

    • Returns
      -

      Object – If finding a match an quiet=False -None: If not finding a unique match and quiet=False. -list: With 0, 1 or more matching objects if quiet=True -list: With 2 or more matching objects if stacked is a positive integer and

      -
      -

      the matched stack has only object-copies.

      -
      +

      match (Object, None or list)

      +
      +
      will return an Object/None if quiet=False,

      otherwise it will return a list of 0, 1 or more matches.

      +
      +

      @@ -1515,36 +1494,6 @@ errors (list): A list of errors in string form, if any.

      -
      -
      -classmethod normalize_name(name)[source]
      -

      Normalize the character name prior to creating. Note that this should be refactored -to support i18n for non-latin scripts, but as we (currently) have no bug reports requesting better -support of non-latin character sets, requiring character names to be latinified is an acceptable option.

      -
      -
      Parameters
      -

      name (str) – The name of the character

      -
      -
      Returns
      -

      latin_name (str) – A valid name.

      -
      -
      -
      - -
      -
      -classmethod validate_name(name)[source]
      -

      Validate the character name prior to creating. Overload this function to add custom validators

      -
      -
      Parameters
      -

      name (str) – The name of the character

      -
      -
      Returns
      -

      valid (bool) – True if character creation should continue; False if it should fail

      -
      -
      -
      -
      basetype_setup()[source]
      @@ -1722,7 +1671,7 @@ cannot be picked up.

      class evennia.objects.objects.ExitCommand(**kwargs)[source]
      -

      Bases: evennia.commands.command.Command

      +

      Bases: evennia.commands.default.muxcommand.MuxCommand

      This is a command that simply cause the caller to traverse the object it is attached to.

      @@ -1774,11 +1723,6 @@ overriding the call (unused by default).

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'command', 'tags': '', 'text': '\n This is a command that simply cause the caller to traverse\n the object it is attached to.\n\n '}
      -
      -
      @@ -1978,6 +1922,7 @@ read for an error string instead.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -1994,7 +1939,6 @@ read for an error string instead.

      -
      develop branch
      @@ -82,6 +81,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -98,7 +98,6 @@ -
      develop branch
      @@ -187,6 +186,7 @@ prototype rather than creating a new one.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -203,7 +203,6 @@ prototype rather than creating a new one.

      -
      develop branch
      @@ -256,6 +255,7 @@ Validate that a #dbref input is valid.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -272,7 +272,6 @@ Validate that a #dbref input is valid.

      -
      develop branch
      @@ -490,6 +489,7 @@ validator (callable, optional): If given, this will be called with the value to<
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -506,7 +506,6 @@ validator (callable, optional): If given, this will be called with the value to< -
      develop branch
      @@ -508,6 +507,7 @@ custom prototype_parents are given to this function.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -524,7 +524,6 @@ custom prototype_parents are given to this function.

      -
      develop branch
      @@ -198,6 +197,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -214,7 +214,6 @@ -
      develop branch
      @@ -90,6 +89,7 @@ timed effects.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -106,7 +106,6 @@ timed effects.

      -
      develop branch
      @@ -81,6 +80,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -97,7 +97,6 @@ -
      develop branch
      @@ -372,6 +371,7 @@ class built by **create_forward_many_to_many_manager()** define
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -388,7 +388,6 @@ class built by **create_forward_many_to_many_manager()** define -
      develop branch
      @@ -190,6 +189,7 @@ all kwargs must be possible to pickle!

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -206,7 +206,6 @@ all kwargs must be possible to pickle!

      -
      develop branch
      @@ -194,6 +193,7 @@ be called regularly to crank the wheels.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -210,7 +210,6 @@ be called regularly to crank the wheels.

      -
      develop branch
      @@ -425,6 +424,7 @@ to do it.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -441,7 +441,6 @@ to do it.

      -
      develop branch
      @@ -173,6 +172,7 @@ in the TaskHandler.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -189,7 +189,6 @@ in the TaskHandler.

      -
      develop branch
      @@ -418,6 +417,7 @@ non-db objects.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -434,7 +434,6 @@ non-db objects.

      -
      develop branch
      @@ -121,6 +120,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -137,7 +137,6 @@ -
      develop branch
      @@ -256,6 +255,7 @@ operation, as defined by the global variables in
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -272,7 +272,6 @@ operation, as defined by the global variables in -
      develop branch
      @@ -195,6 +194,7 @@ fails (and is expected to echo why if so).

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -211,7 +211,6 @@ fails (and is expected to echo why if so).

      -
      develop branch
      @@ -99,6 +98,7 @@ does not stop launch.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -115,7 +115,6 @@ does not stop launch.

      -
      develop branch
      @@ -573,6 +572,7 @@ settings here. The result will be printed to the terminal.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -589,7 +589,6 @@ settings here. The result will be printed to the terminal.

      -
      develop branch
      @@ -185,6 +184,7 @@ to this Protocol. The connection has been closed.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -201,7 +201,6 @@ to this Protocol. The connection has been closed.

      -
      develop branch
      @@ -80,6 +79,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -96,7 +96,6 @@ -
      develop branch
      @@ -104,6 +103,7 @@ to the Evennia Game Index.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -120,7 +120,6 @@ to the Evennia Game Index.

      -
      develop branch
      @@ -142,6 +141,7 @@ to connect to the game.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -158,7 +158,6 @@ to connect to the game.

      -
      develop branch
      @@ -134,6 +133,7 @@ steps need to be redone.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -150,7 +150,6 @@ steps need to be redone.

      -
      develop branch
      @@ -373,6 +372,7 @@ logging a missing inputfunc for it.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -389,7 +389,6 @@ logging a missing inputfunc for it.

      -
      develop branch
      @@ -112,6 +111,7 @@ value (str): If key was given, this is the stored value, or

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -128,7 +128,6 @@ value (str): If key was given, this is the stored value, or

      -
      develop branch
      @@ -166,6 +165,7 @@ object the first time, the query is executed.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -182,7 +182,6 @@ object the first time, the query is executed.

      -
      develop branch
      @@ -549,6 +548,7 @@ function call

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -565,7 +565,6 @@ function call

      -
      develop branch
      @@ -297,6 +296,7 @@ global variables in evennia/server/amp.py.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -313,7 +313,6 @@ global variables in evennia/server/amp.py.

      -
      develop branch
      @@ -294,6 +293,7 @@ disconnect this protocol.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -310,7 +310,6 @@ disconnect this protocol.

      -
      develop branch
      @@ -99,6 +98,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -115,7 +115,6 @@ -
      develop branch
      @@ -410,6 +409,7 @@ sessions.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -426,7 +426,6 @@ sessions.

      -
      develop branch
      @@ -144,6 +143,7 @@ creating a zlib compression stream.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -160,7 +160,6 @@ creating a zlib compression stream.

      -
      develop branch
      @@ -145,6 +144,7 @@ operation.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -161,7 +161,6 @@ operation.

      -
      develop branch
      @@ -137,6 +136,7 @@ that supports it (mudlet, zmud, mushclient are a few)

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -153,7 +153,6 @@ that supports it (mudlet, zmud, mushclient are a few)

      -
      develop branch
      @@ -133,6 +132,7 @@ operation.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -149,7 +149,6 @@ operation.

      -
      develop branch
      @@ -132,6 +131,7 @@ case it always needs to be restarted manually.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -148,7 +148,6 @@ case it always needs to be restarted manually.

      -
      develop branch
      @@ -63,17 +62,6 @@ to the server using the AMP connection.

      At this point, the AMP connection is already established.

      -
      -
      -generate_sessid()[source]
      -

      Simply generates a sessid that’s guaranteed to be unique for this Portal run.

      -
      -
      Returns
      -

      sessid

      -
      -
      -
      -
      connect(session)[source]
      @@ -333,6 +321,7 @@ method exixts, it sends the data to a method send_default.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -349,7 +338,6 @@ method exixts, it sends the data to a method send_default.

      -
      develop branch
      @@ -174,6 +173,7 @@ on slow connections.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -190,7 +190,6 @@ on slow connections.

      -
      develop branch
      @@ -225,18 +224,18 @@ reaching this point.

      are considered.

      Keyword Arguments
      -

      options (dict) –

      Send-option flags (booleans)

      +

      options (dict) –

      Send-option flags:

        -
      • mxp: enforce mxp link support.

      • -
      • ansi: enforce no ansi colors.

      • -
      • xterm256: enforce xterm256 colors, regardless of ttype setting.

      • -
      • nocolor: strip all colors.

      • -
      • raw: pass string through without any ansi processing -(i.e. include evennia ansi markers but do not +

      • mxp: Enforce MXP link support.

      • +
      • ansi: Enforce no ANSI colors.

      • +
      • xterm256: Enforce xterm256 colors, regardless of TTYPE setting.

      • +
      • nocolor: Strip all colors.

      • +
      • raw: Pass string through without any ansi processing +(i.e. include Evennia ansi markers but do not convert them into ansi tokens)

      • -
      • echo: turn on/off line echo on the client. turn +

      • echo: Turn on/off line echo on the client. Turn off line echo for client, for example for password. -note that it must be actively turned back on again!

      • +Note that it must be actively turned back on again!

      @@ -395,6 +394,7 @@ do not exist, the keypair is created.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -411,7 +411,6 @@ do not exist, the keypair is created.

      -
      develop branch
      @@ -115,6 +114,7 @@ server-side.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -131,7 +131,6 @@ server-side.

      -
      develop branch
      @@ -123,6 +122,7 @@ protocol to set it up.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -139,7 +139,6 @@ protocol to set it up.

      -
      develop branch
      @@ -242,25 +241,19 @@ disconnect this protocol.

      are considered.

      Keyword Arguments
      -

      options (dict) –

      Send-option flags

      +

      options (dict) –

      Send-option flags:

      • mxp: Enforce MXP link support.

      • ansi: Enforce no ANSI colors.

      • xterm256: Enforce xterm256 colors, regardless of TTYPE.

      • noxterm256: Enforce no xterm256 color support, regardless of TTYPE.

      • nocolor: Strip all Color, regardless of ansi/xterm256 setting.

      • -
      • -
        raw: Pass string through without any ansi processing

        (i.e. include Evennia ansi markers but do not -convert them into ansi tokens)

        -
        -
        -
      • -
      • -
        echo: Turn on/off line echo on the client. Turn

        off line echo for client, for example for password. -Note that it must be actively turned back on again!

        -
        -
        -
      • +
      • raw: Pass string through without any ansi processing +(i.e. include Evennia ansi markers but do not +convert them into ansi tokens)

      • +
      • echo: Turn on/off line echo on the client. Turn +off line echo for client, for example for password. +Note that it must be actively turned back on again!

      @@ -316,6 +309,7 @@ Note that it must be actively turned back on again!

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -332,7 +326,6 @@ Note that it must be actively turned back on again!

      -
      develop branch
      @@ -47,15 +46,19 @@ commands, by contrast, can have many forms and it is up to the client how and if they are handled. Examples of OOB instructions could be to instruct the client to play sounds or to update a graphical health bar.

      -

      Note that in Evennia’s Web client, all send commands are “OOB -commands”, (including the “text” one), there is no equivalence to -MSDP/GMCP for the webclient since it doesn’t need it.

      +

      > Note that in Evennia’s Web client, all send commands are “OOB commands”, +(including the “text” one), there is no equivalence to MSDP/GMCP for the +webclient since it doesn’t need it.

      This implements the following telnet OOB communication protocols:

      +

      Following the lead of KaVir’s protocol snippet, we first check if client +supports MSDP and if not, we fallback to GMCP with a MSDP header where +applicable.


      @@ -135,17 +138,17 @@ supported.

      Notes

      The output of this encoding will be MSDP structures on these forms:

      -
      [cmdname, [], {}]           -> VAR cmdname VAL ""
      -[cmdname, [arg], {}]        -> VAR cmdname VAL arg
      -[cmdname, [args],{}]        -> VAR cmdname VAL ARRAYOPEN VAL arg VAL arg ... ARRAYCLOSE
      -[cmdname, [], {kwargs}]     -> VAR cmdname VAL TABLEOPEN VAR key VAL val ... TABLECLOSE
      +
      [cmdname, [], {}]          -> VAR cmdname VAL ""
      +[cmdname, [arg], {}]       -> VAR cmdname VAL arg
      +[cmdname, [args],{}]       -> VAR cmdname VAL ARRAYOPEN VAL arg VAL arg ... ARRAYCLOSE
      +[cmdname, [], {kwargs}]    -> VAR cmdname VAL TABLEOPEN VAR key VAL val ... TABLECLOSE
       [cmdname, [args], {kwargs}] -> VAR cmdname VAL ARRAYOPEN VAL arg VAL arg ... ARRAYCLOSE
                                      VAR cmdname VAL TABLEOPEN VAR key VAL val ... TABLECLOSE
       
      -

      Further nesting is not supported, so if an array argument -consists of an array (for example), that array will be -json-converted to a string.

      +

      Further nesting is not supported, so if an array argument consists +of an array (for example), that array will be json-converted to a +string.

      @@ -172,11 +175,12 @@ be stripped on the Evennia side.

      [cmd.name, [arg], {}] -> Cmd.Name arg [cmd.name, [args],{}] -> Cmd.Name [args] [cmd.name, [], {kwargs}] -> Cmd.Name {kwargs} -[cmdname, [args, {kwargs}] -> Core.Cmdname [[args],{kwargs}] +[cmdname, [args, {kwargs}] -> Core.Cmdname [[args],{kwargs}]

      Notes

      -

      There are also a few default mappings between evennia outputcmds and GMCP:

      +

      There are also a few default mappings between evennia outputcmds and +GMCP:

      client_options -> Core.Supports.Get
       get_inputfuncs -> Core.Commands.Get
       get_value      -> Char.Value.Get
      @@ -286,6 +290,7 @@ We assume the structure is valid JSON.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -302,7 +307,6 @@ We assume the structure is valid JSON.

      -
      develop branch
      @@ -126,6 +125,7 @@ server-side.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -142,7 +142,6 @@ server-side.

      -
      develop branch
      @@ -182,6 +181,7 @@ its inverse gives the correct string.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -198,7 +198,6 @@ its inverse gives the correct string.

      -
      develop branch
      @@ -132,6 +131,7 @@ stored on protocol.protocol_flags under the TTYPE key.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -148,7 +148,6 @@ stored on protocol.protocol_flags under the TTYPE key.

      -
      develop branch
      @@ -249,6 +248,7 @@ client instead.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -265,7 +265,6 @@ client instead.

      -
      develop branch
      @@ -374,6 +373,7 @@ client instead.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -390,7 +390,6 @@ client instead.

      -
      develop branch
      @@ -241,6 +240,7 @@ all “intelligence” of the dummy client.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -257,7 +257,6 @@ all “intelligence” of the dummy client.

      -
      develop branch
      @@ -43,17 +42,13 @@

      This module defines dummyrunner settings and sets up the actions available to dummy accounts.

      The settings are global variables:

      -
        -
      • TIMESTEP - time in seconds between each ‘tick’

      • -
      • CHANCE_OF_ACTION - chance 0-1 of action happening

      • -
      • CHANCE_OF_LOGIN - chance 0-1 of login happening

      • -
      • TELNET_PORT - port to use, defaults to settings.TELNET_PORT

      • -
      • ACTIONS - see below

      • -
      +

      TIMESTEP - time in seconds between each ‘tick’ +CHANCE_OF_ACTION - chance 0-1 of action happening +CHANCE_OF_LOGIN - chance 0-1 of login happening +TELNET_PORT - port to use, defaults to settings.TELNET_PORT +ACTIONS - see below

      ACTIONS is a tuple

      -
      (login_func, logout_func, (0.3, func1), (0.1, func2) ... )
      -
      -
      +

      (login_func, logout_func, (0.3, func1), (0.1, func2) … )

      where the first entry is the function to call on first connect, with a chance of occurring given by CHANCE_OF_LOGIN. This function is usually responsible for logging in the account. The second entry is always @@ -70,22 +65,28 @@ returns a string or a list of command strings to execute. Use the client object for optionally saving data between actions.

      The client object has the following relevant properties and methods:

        -
      • key - an optional client key. This is only used for dummyrunner output. -Default is “Dummy-<cid>”

      • +
      • +
        key - an optional client key. This is only used for dummyrunner output.

        Default is “Dummy-<cid>”

        +
        +
        +
      • cid - client id

      • gid - globally unique id, hashed with time stamp

      • istep - the current step

      • exits - an empty list. Can be used to store exit names

      • objs - an empty list. Can be used to store object names

      • -
      • counter() - returns a unique increasing id, hashed with time stamp -to make it unique also between dummyrunner instances.

      • +
      • +
        counter() - returns a unique increasing id, hashed with time stamp

        to make it unique also between dummyrunner instances.

        +
        +
        +

      The return should either be a single command string or a tuple of command strings. This list of commands will always be executed every TIMESTEP with a chance given by CHANCE_OF_ACTION by in the order given (no randomness) and allows for setting up a more complex chain of commands (such as creating an account and logging in).

      -
      +

      evennia.server.profiling.dummyrunner_settings.c_login(client)[source]
      @@ -205,6 +206,7 @@ commands (such as creating an account and logging in).

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -221,7 +223,6 @@ commands (such as creating an account and logging in).

      -
      develop branch
      @@ -85,6 +84,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -101,7 +101,6 @@ -
      develop branch
      @@ -119,6 +118,7 @@ the script will append to this file if it already exists.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -135,7 +135,6 @@ the script will append to this file if it already exists.

      -
      develop branch
      @@ -81,6 +80,7 @@ servers!

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -97,7 +97,6 @@ servers!

      -
      develop branch
      @@ -83,6 +82,7 @@ to setup the environment to test.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -99,7 +99,6 @@ to setup the environment to test.

      -
      develop branch
      @@ -177,6 +176,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -193,7 +193,6 @@ -
      develop branch
      @@ -92,6 +91,7 @@ This message will get attached time stamp.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -108,7 +108,6 @@ This message will get attached time stamp.

      -
      develop branch
      @@ -39,11 +38,11 @@

      evennia.server.server

      -

      This module implements the main Evennia server process, the core of the game -engine.

      -

      This module should be started with the ‘twistd’ executable since it sets up all -the networking features. (this is done automatically by -evennia/server/server_runner.py).

      +

      This module implements the main Evennia server process, the core of +the game engine.

      +

      This module should be started with the ‘twistd’ executable since it +sets up all the networking features. (this is done automatically +by evennia/server/server_runner.py).

      class evennia.server.server.Evennia(application)[source]
      @@ -100,20 +99,20 @@ Once finished the last_initial_setup_step is set to -1.

      shutdown(mode='reload', _reactor_stopping=False)[source]

      Shuts down the server from inside it.

      -
      -
      mode - sets the server restart mode.
        -
      • ‘reload’ - server restarts, no “persistent” scripts +

        +
        Keyword Arguments
        +
          +
        • mode (str) – Sets the server restart mode:

        • +
        • 'reload' (-) – server restarts, no “persistent” scripts are stopped, at_reload hooks called.

        • -
        • ‘reset’ - server restarts, non-persistent scripts stopped, -at_shutdown hooks called but sessions will not +

        • 'reset' - server restarts, non-persistent scripts stopped, (-) – at_shutdown hooks called but sessions will not be disconnected.

        • -
        • ‘shutdown’ - like reset, but server will not auto-restart.

        • +
        • - like reset, but server will not auto-restart. (-'shutdown') –

        • +
        • _reactor_stopping – This is set if server is stopped by a kill +command OR this method was already called +once - in both cases the reactor is dead/stopping already.

        -
        _reactor_stopping - this is set if server is stopped by a kill

        command OR this method was already called -once - in both cases the reactor is -dead/stopping already.

        -
      @@ -211,6 +210,7 @@ shutdown or a reset.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -227,7 +227,6 @@ shutdown or a reset.

      -
      develop branch
      @@ -44,6 +43,126 @@ a connection to the outside world but don’t know any details about how the connection actually happens (so it’s the same for telnet, web, ssh etc).

      It is stored on the Server side (as opposed to protocol-specific sessions which are stored on the Portal side)

      +
      +
      +class evennia.server.serversession.NDbHolder(obj, name, manager_name='attributes')[source]
      +

      Bases: object

      +

      Holder for allowing property access of attributes

      +
      +
      +__init__(obj, name, manager_name='attributes')[source]
      +

      Initialize self. See help(type(self)) for accurate signature.

      +
      + +
      +
      +get_all()[source]
      +
      + +
      +
      +property all
      +
      + +
      + +
      +
      +class evennia.server.serversession.NAttributeHandler(obj)[source]
      +

      Bases: object

      +

      NAttributeHandler version without recache protection. +This stand-alone handler manages non-database saving. +It is similar to AttributeHandler and is used +by the .ndb handler in the same way as .db does +for the AttributeHandler.

      +
      +
      +__init__(obj)[source]
      +

      Initialized on the object

      +
      + +
      +
      +has(key)[source]
      +

      Check if object has this attribute or not.

      +
      +
      Parameters
      +

      key (str) – The Nattribute key to check.

      +
      +
      Returns
      +

      has_nattribute (bool) – If Nattribute is set or not.

      +
      +
      +
      + +
      +
      +get(key, default=None)[source]
      +

      Get the named key value.

      +
      +
      Parameters
      +

      key (str) – The Nattribute key to get.

      +
      +
      Returns
      +

      the value of the Nattribute.

      +
      +
      +
      + +
      +
      +add(key, value)[source]
      +

      Add new key and value.

      +
      +
      Parameters
      +
        +
      • key (str) – The name of Nattribute to add.

      • +
      • value (any) – The value to store.

      • +
      +
      +
      +
      + +
      +
      +remove(key)[source]
      +

      Remove Nattribute from storage.

      +
      +
      Parameters
      +

      key (str) – The name of the Nattribute to remove.

      +
      +
      +
      + +
      +
      +clear()[source]
      +

      Remove all NAttributes from handler.

      +
      + +
      +
      +all(return_tuples=False)[source]
      +

      List the contents of the handler.

      +
      +
      Parameters
      +

      return_tuples (bool, optional) – Defines if the Nattributes +are returns as a list of keys or as a list of (key, value).

      +
      +
      Returns
      +

      nattributes (list)

      +
      +
      A list of keys [key, key, …] or a

      list of tuples [(key, value), …] depending on the +setting of return_tuples.

      +
      +
      +

      +
      +
      +
      + +
      +
      class evennia.server.serversession.ServerSession[source]
      @@ -64,11 +183,6 @@ through their session.

      property cmdset_storage
      -
      -
      -property id
      -
      -
      at_sync()[source]
      @@ -181,7 +295,7 @@ idle timers and command counters.

      Update the protocol_flags and sync them with Portal.

      Keyword Arguments
      -

      protocol_flag (any) – A key and value to set in the +

      any – A key:value pair to set in the protocol_flags dictionary.

      @@ -214,7 +328,7 @@ for the protocol(s).

      the respective inputfuncs.

      Keyword Arguments
      -

      kwargs (any) – Incoming data from protocol on +

      any – Incoming data from protocol on the form {“commandname”: ((args), {kwargs}),…}

      @@ -231,12 +345,12 @@ this data off to self.sessionhandler.call_inputfuncs(self, **kwargs)

      Wrapper to mimic msg() functionality of Objects and Accounts.

      Parameters
      -

      text (str) – String input.

      -
      -
      Keyword Arguments
      -

      any (str or tuple) – Send-commands identified +

        +
      • text (str) – String input.

      • +
      • kwargs (str or tuple) – Send-commands identified by their keys. Or “options”, carrying options -for the protocol(s).

        +for the protocol(s).

      • +
      @@ -382,6 +496,7 @@ property, e.g. obj.ndb.attr = value etc.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -398,7 +513,6 @@ property, e.g. obj.ndb.attr = value etc.

      -
      develop branch
      @@ -187,6 +186,7 @@ should overload this to format/handle the outgoing data as needed.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -203,7 +203,6 @@ should overload this to format/handle the outgoing data as needed.

      -
      develop branch
      @@ -42,7 +41,8 @@

      This module defines handlers for storing sessions when handles sessions of users connecting to the server.

      There are two similar but separate stores of sessions:

      -
        +
        +
        • ServerSessionHandler - this stores generic game sessions

          for the game. These sessions has no knowledge about how they are connected to the world.

          @@ -56,6 +56,7 @@ handle network communication but holds no game info.

        +
        class evennia.server.sessionhandler.DummySession[source]
        @@ -119,22 +120,30 @@ sessions in store.

        Parameters
        • session (Session) – The relevant session instance.

        • -
        • kwargs (dict) – of the instruction (like “text”). Suitable values for each -keyword are: -- arg -> [[arg], {}] -- [args] -> [[args], {}] -- {kwargs} -> [[], {kwargs}] -- [args, {kwargs}] -> [[arg], {kwargs}] -- [[args], {kwargs}] -> [[args], {kwargs}]

        • +
        • kwargs (dict) –

          send-instruction, with the keyword itself being the name +of the instruction (like “text”). Suitable values for each +keyword are:

          +
          arg                ->  [[arg], {}]
          +[args]             ->  [[args], {}]
          +{kwargs}           ->  [[], {kwargs}]
          +[args, {kwargs}]   ->  [[arg], {kwargs}]
          +[[args], {kwargs}] ->  [[args], {kwargs}]
          +
          +
          +

        Returns
        -

        kwargs (dict) – A cleaned dictionary of cmdname:[[args],{kwargs}] pairs, -where the keys, args and kwargs have all been converted to +

        kwargs (dict)

        +
        +
        A cleaned dictionary of cmdname:[[args],{kwargs}] pairs,

        where the keys, args and kwargs have all been converted to send-safe entities (strings or numbers), and inlinefuncs have been applied.

        +

        +
        +
        @@ -483,13 +492,12 @@ object.

        sessions_from_csessid(csessid)[source]

        Given a client identification hash (for session types that offer them) return all sessions with a matching hash.

        -
        -
        Args

        csessid (str): The session hash.

        -
        -
        -
        Returns
        -

        sessions (list) – The sessions with matching .csessid, if any.

        +
        Parameters
        +

        csessid (str) – The session hash.

        +
        +
        Returns
        +

        sessions (list) – The sessions with matching .csessid, if any.

        @@ -546,17 +554,17 @@ this class’ sessionhandler.call_inputfunc with the
        call_inputfuncs(session, **kwargs)[source]
        -

        Split incoming data into its inputfunc counterparts. This should be -called by the serversession.data_in as -sessionhandler.call_inputfunc(self, **kwargs).

        +

        Split incoming data into its inputfunc counterparts. +This should be called by the serversession.data_in +as sessionhandler.call_inputfunc(self, **kwargs).

        We also intercept OOB communication here.

        Parameters

        sessions (Session) – Session.

        Keyword Arguments
        -

        any (tuple) – Incoming data from protocol, each -on the form commandname=((args), {kwargs}).

        +

        kwargs (any) – Incoming data from protocol on +the form {“commandname”: ((args), {kwargs}),…}

        @@ -598,6 +606,7 @@ on the form commandname=((args), {kwargs}).

      • 0.9.5 (v0.9.5 branch)
      +
      @@ -614,7 +623,6 @@ on the form commandname=((args), {kwargs}).

      -
      develop branch
      @@ -39,20 +38,22 @@

      evennia.server.signals

      -

      This module brings Django Signals into Evennia. These are events that can be -subscribed to by importing a given Signal and using the following code.

      -
      THIS_SIGNAL.connect(callback, sender_object)
      +

      This module brings Django Signals into Evennia. These are events that +can be subscribed to by importing a given Signal and using the +following code.

      +
      THIS_SIGNAL.connect(callback, sender_object**)
       
      -

      When other code calls THIS_SIGNAL.send(sender, **kwargs), the callback will -be triggered.

      -

      Callbacks must be on the following format:

      +

      When other code calls THIS_SIGNAL.send(sender, **kwargs), the callback +will be triggered.

      +

      Callbacks must be in the following format:

      def my_callback(sender, **kwargs):
      -    # ...
      +    ...
       
      -

      This is used on top of hooks to make certain features easier to add to contribs -without necessitating a full takeover of hooks that may be in high demand.

      +

      This is used on top of hooks to make certain features easier to +add to contribs without necessitating a full takeover of hooks +that may be in high demand.

      @@ -88,6 +89,7 @@ without necessitating a full takeover of hooks that may be in high demand.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -104,7 +106,6 @@ without necessitating a full takeover of hooks that may be in high demand.

      -
      develop branch
      @@ -48,8 +47,8 @@ particular threshold.

      This version of the throttle is usable by both the terminal server as well as the web server, imposes limits on memory consumption by using deques -with length limits instead of open-ended lists, and uses native Django -caches for automatic key eviction and persistence configurability.

      +with length limits instead of open-ended lists, and removes sparse keys when +no recent failures have been recorded.

      error_msg = 'Too many failed attempts; you must wait a few minutes before trying again.'
      @@ -62,7 +61,6 @@ caches for automatic key eviction and persistence configurability.

      Keyword Arguments
        -
      • name (str) – Name of this throttle.

      • limit (int) – Max number of failures before imposing limiter

      • timeout (int) – number of timeout seconds after max number of tries has been reached.

      • @@ -74,25 +72,6 @@ the throttle is imposed!

      -
      -
      -get_cache_key(*args, **kwargs)[source]
      -

      Creates a ‘prefixed’ key containing arbitrary terms to prevent key -collisions in the same namespace.

      -
      - -
      -
      -touch(key, *args, **kwargs)[source]
      -

      Refreshes the timeout on a given key and ensures it is recorded in the -key register.

      -
      -
      Parameters
      -

      key (str) – Key of entry to renew.

      -
      -
      -
      -
      get(ip=None)[source]
      @@ -133,41 +112,6 @@ of throttle.

      -
      -
      -remove(ip, *args, **kwargs)[source]
      -

      Clears data stored for an IP from the throttle.

      -
      -
      Parameters
      -

      ip (str) – IP to clear.

      -
      -
      -
      - -
      -
      -record_ip(ip, *args, **kwargs)[source]
      -

      Tracks keys as they are added to the cache (since there is no way to -get a list of keys after-the-fact).

      -
      -
      Parameters
      -

      ip (str) – IP being added to cache. This should be the original -IP, not the cache-prefixed key.

      -
      -
      -
      - -
      -
      -unrecord_ip(ip, *args, **kwargs)[source]
      -

      Forces removal of a key from the key registry.

      -
      -
      Parameters
      -

      ip (str) – IP to remove from list of keys.

      -
      -
      -
      -
      check(ip)[source]
      @@ -226,6 +170,7 @@ fails recently.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -242,7 +187,6 @@ fails recently.

      -
      develop branch
      @@ -136,6 +135,7 @@ by this validator.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -152,7 +152,6 @@ by this validator.

      -
      develop branch
      @@ -294,6 +293,7 @@ directory this path represents.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -310,7 +310,6 @@ directory this path represents.

      -
      develop branch
      @@ -82,6 +81,7 @@ always be sure of what you have changed and what is default behaviour.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -98,7 +98,6 @@ always be sure of what you have changed and what is default behaviour.

      -
      develop branch
      @@ -365,6 +364,7 @@ people used the admin at the same time

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -381,7 +381,6 @@ people used the admin at the same time

      -
      develop branch
      @@ -45,9 +44,9 @@ both pure-string values and pickled arbitrary data.

      the Attribute- and NickHandlers as well as the NAttributeHandler, which is a non-db version of Attributes.

      -
      -class evennia.typeclasses.attributes.IAttribute[source]
      -

      Bases: object

      +
      +class evennia.typeclasses.attributes.Attribute(*args, **kwargs)[source]
      +

      Bases: evennia.utils.idmapper.models.SharedMemoryModel

      Attributes are things that are specific to different types of objects. For example, a drink container needs to store its fill level, whereas an exit needs to store its open/closed/locked/unlocked state. These are done via @@ -82,106 +81,6 @@ attributes on the fly as we like.

      -

      This class is an API/Interface/Abstract base class; do not instantiate it directly.

      -
      -
      -locks[source]
      -
      - -
      -
      -property key
      -
      - -
      -
      -property strvalue
      -
      - -
      -
      -property category
      -
      - -
      -
      -property model
      -
      - -
      -
      -property attrtype
      -
      - -
      -
      -property date_created
      -
      - -
      -
      -property lock_storage
      -
      - -
      -
      -access(accessing_obj, access_type='read', default=False, **kwargs)[source]
      -

      Determines if another object has permission to access.

      -
      -
      Parameters
      -
        -
      • accessing_obj (object) – Entity trying to access this one.

      • -
      • access_type (str, optional) – Type of access sought, see -the lock documentation.

      • -
      • default (bool, optional) – What result to return if no lock -of access_type was found. The default, False, means a lockdown -policy, only allowing explicit access.

      • -
      • kwargs (any, optional) – Not used; here to make the API consistent with -other access calls.

      • -
      -
      -
      Returns
      -

      result (bool) – If the lock was passed or not.

      -
      -
      -
      - - - -
      -
      -class evennia.typeclasses.attributes.InMemoryAttribute(pk, **kwargs)[source]
      -

      Bases: evennia.typeclasses.attributes.IAttribute

      -

      This Attribute is used purely for NAttributes/NAttributeHandler. It has no database backend.

      -
      -
      -__init__(pk, **kwargs)[source]
      -

      Create an Attribute that exists only in Memory.

      -
      -
      Parameters
      -
        -
      • pk (int) – This is a fake ‘primary key’ / id-field. It doesn’t actually have to be unique, but is fed an -incrementing number from the InMemoryBackend by default. This is needed only so Attributes can be -sorted. Some parts of the API also see the lack of a .pk field as a sign that the Attribute was -deleted.

      • -
      • **kwargs – Other keyword arguments are used to construct the actual Attribute.

      • -
      -
      -
      -
      - -
      -
      -property value
      -
      - -
      - -
      -
      -class evennia.typeclasses.attributes.Attribute(*args, **kwargs)[source]
      -

      Bases: evennia.typeclasses.attributes.IAttribute, evennia.utils.idmapper.models.SharedMemoryModel

      -

      This attribute is stored via Django. Most Attributes will be using this class.

      db_key
      @@ -238,6 +137,41 @@ object the first time, the query is executed.

      object the first time, the query is executed.

      +
      +
      +locks[source]
      +
      + +
      +
      +property key
      +
      + +
      +
      +property strvalue
      +
      + +
      +
      +property category
      +
      + +
      +
      +property model
      +
      + +
      +
      +property attrtype
      +
      + +
      +
      +property date_created
      +
      +
      property lock_storage
      @@ -252,6 +186,29 @@ as storing a dbobj which is then deleted elsewhere) out-of-sync. The overhead of unpickling seems hard to avoid.

      +
      +
      +access(accessing_obj, access_type='attrread', default=False, **kwargs)[source]
      +

      Determines if another object has permission to access.

      +
      +
      Parameters
      +
        +
      • accessing_obj (object) – Entity trying to access this one.

      • +
      • access_type (str, optional) – Type of access sought, see +the lock documentation.

      • +
      • default (bool, optional) – What result to return if no lock +of access_type was found. The default, False, means a lockdown +policy, only allowing explicit access.

      • +
      • kwargs (any, optional) – Not used; here to make the API consistent with +other access calls.

      • +
      +
      +
      Returns
      +

      result (bool) – If the lock was passed or not.

      +
      +
      +
      +
      exception DoesNotExist
      @@ -280,18 +237,6 @@ instances.

      class built by **create_forward_many_to_many_manager()** defined below.

      -
      -
      -property attrtype
      -

      A wrapper for getting database field db_attrtype.

      -
      - -
      -
      -property category
      -

      A wrapper for getting database field db_category.

      -
      -
      channeldb_set
      @@ -308,12 +253,6 @@ instances.

      class built by **create_forward_many_to_many_manager()** defined below.

      -
      -
      -property date_created
      -

      A wrapper for getting database field db_date_created.

      -
      -
      get_next_by_db_date_created(*, field=<django.db.models.fields.DateTimeField: db_date_created>, is_next=True, **kwargs)
      @@ -331,18 +270,6 @@ class built by **create_forward_many_to_many_manager()** define object the first time, the query is executed.

      -
      -
      -property key
      -

      A wrapper for getting database field db_key.

      -
      - -
      -
      -property model
      -

      A wrapper for getting database field db_model.

      -
      -
      objectdb_set
      @@ -380,12 +307,6 @@ instances.

      class built by **create_forward_many_to_many_manager()** defined below.

      -
      -
      -property strvalue
      -

      A wrapper for getting database field db_strvalue.

      -
      -
      typename = 'SharedMemoryModelBase'
      @@ -393,544 +314,21 @@ class built by **create_forward_many_to_many_manager()** define
      -
      -
      -class evennia.typeclasses.attributes.IAttributeBackend(handler, attrtype)[source]
      -

      Bases: object

      -

      Abstract interface for the backends used by the Attribute Handler.

      -

      All Backends must implement this base class.

      -
      -
      -__init__(handler, attrtype)[source]
      -

      Initialize self. See help(type(self)) for accurate signature.

      -
      - -
      -
      -query_all()[source]
      -

      Fetch all Attributes from this object.

      -
      -
      Returns
      -

      attrlist (list) – A list of Attribute objects.

      -
      -
      -
      - -
      -
      -query_key(key, category)[source]
      -
      -
      Parameters
      -
        -
      • key (str) – The key of the Attribute being searched for.

      • -
      • category (str or None) – The category of the desired Attribute.

      • -
      -
      -
      Returns
      -

      attribute (IAttribute) – A single Attribute.

      -
      -
      -
      - -
      -
      -query_category(category)[source]
      -

      Returns every matching Attribute as a list, given a category.

      -

      This method calls up whatever storage the backend uses.

      -
      -
      Parameters
      -

      category (str or None) – The category to query.

      -
      -
      Returns
      -

      attrs (list) – The discovered Attributes.

      -
      -
      -
      - -
      -
      -get(key=None, category=None)[source]
      -

      Frontend for .get_cache. Retrieves Attribute(s).

      -
      -
      Parameters
      -
        -
      • key (str, optional) – Attribute key to query for

      • -
      • category (str, optional) – Attribiute category

      • -
      -
      -
      Returns
      -

      args (list)

      -
      -
      Returns a list of zero or more matches

      found from cache or database.

      -
      -
      -

      -
      -
      -
      - -
      -
      -reset_cache()[source]
      -

      Reset cache from the outside.

      -
      - -
      -
      -do_create_attribute(key, category, lockstring, value, strvalue)[source]
      -

      Does the hard work of actually creating Attributes, whatever is needed.

      -
      -
      Parameters
      -
        -
      • key (str) – The Attribute’s key.

      • -
      • category (str or None) – The Attribute’s category, or None

      • -
      • lockstring (str) – Any locks for the Attribute.

      • -
      • value (obj) – The Value of the Attribute.

      • -
      • strvalue (bool) – Signifies if this is a strvalue Attribute. Value MUST be a string or -this will lead to Trouble. Ignored for InMemory attributes.

      • -
      -
      -
      Returns
      -

      attr (IAttribute) – The new Attribute.

      -
      -
      -
      - -
      -
      -create_attribute(key, category, lockstring, value, strvalue=False, cache=True)[source]
      -

      Creates Attribute (using the class specified for the backend), (optionally) caches it, and returns it.

      -

      This MUST actively save the Attribute to whatever database backend is used, AND -call self.set_cache(key, category, new_attrobj)

      -
      -
      Parameters
      -
        -
      • key (str) – The Attribute’s key.

      • -
      • category (str or None) – The Attribute’s category, or None

      • -
      • lockstring (str) – Any locks for the Attribute.

      • -
      • value (obj) – The Value of the Attribute.

      • -
      • strvalue (bool) – Signifies if this is a strvalue Attribute. Value MUST be a string or -this will lead to Trouble. Ignored for InMemory attributes.

      • -
      • cache (bool) – Whether to cache the new Attribute

      • -
      -
      -
      Returns
      -

      attr (IAttribute) – The new Attribute.

      -
      -
      -
      - -
      -
      -do_update_attribute(attr, value)[source]
      -

      Simply sets a new Value to an Attribute.

      -
      -
      Parameters
      -
        -
      • attr (IAttribute) – The Attribute being changed.

      • -
      • value (obj) – The Value for the Attribute.

      • -
      -
      -
      -
      - -
      -
      -do_batch_update_attribute(attr_obj, category, lock_storage, new_value, strvalue)[source]
      -

      Called opnly by batch add. For the database backend, this is a method -of updating that can alter category and lock-storage.

      -
      -
      Parameters
      -
        -
      • attr_obj (IAttribute) – The Attribute being altered.

      • -
      • category (str or None) – The attribute’s (new) category.

      • -
      • lock_storage (str) – The attribute’s new locks.

      • -
      • new_value (obj) – The Attribute’s new value.

      • -
      • strvalue (bool) – Signifies if this is a strvalue Attribute. Value MUST be a string or -this will lead to Trouble. Ignored for InMemory attributes.

      • -
      -
      -
      -
      - -
      -
      -do_batch_finish(attr_objs)[source]
      -

      Called after batch_add completed. Used for handling database operations -and/or caching complications.

      -
      -
      Parameters
      -

      attr_objs (list of IAttribute) – The Attributes created/updated thus far.

      -
      -
      -
      - -
      -
      -batch_add(*args, **kwargs)[source]
      -

      Batch-version of .add(). This is more efficient than repeat-calling -.add when having many Attributes to add.

      -
      -
      Parameters
      -

      *args (tuple) –

      Tuples of varying length representing the -Attribute to add to this object. Supported tuples are

      -
        -
      • (key, value)

      • -
      • (key, value, category)

      • -
      • (key, value, category, lockstring)

      • -
      • (key, value, category, lockstring, default_access)

      • -
      -

      -
      -
      Raises
      -

      RuntimeError – If trying to pass a non-iterable as argument.

      -
      -
      -

      Notes

      -

      The indata tuple order matters, so if you want a lockstring but no -category, set the category to None. This method does not have the -ability to check editing permissions and is mainly used internally. -It does not use the normal self.add but applies the Attributes -directly to the database.

      -
      - -
      -
      -do_delete_attribute(attr)[source]
      -

      Does the hard work of actually deleting things.

      -
      -
      Parameters
      -

      attr (IAttribute) – The attribute to delete.

      -
      -
      -
      - -
      -
      -delete_attribute(attr)[source]
      -

      Given an Attribute, deletes it. Also remove it from cache.

      -
      -
      Parameters
      -

      attr (IAttribute) – The attribute to delete.

      -
      -
      -
      - -
      -
      -update_attribute(attr, value)[source]
      -

      Simply updates an Attribute.

      -
      -
      Parameters
      -
        -
      • attr (IAttribute) – The attribute to delete.

      • -
      • value (obj) – The new value.

      • -
      -
      -
      -
      - -
      -
      -do_batch_delete(attribute_list)[source]
      -

      Given a list of attributes, deletes them all. -The default implementation is fine, but this is overridable since some databases may allow -for a better method.

      -
      -
      Parameters
      -

      attribute_list (list of IAttribute) –

      -
      -
      -
      - -
      -
      -clear_attributes(category, accessing_obj, default_access)[source]
      -

      Remove all Attributes on this object.

      -
      -
      Parameters
      -
        -
      • category (str, optional) – If given, clear only Attributes -of this category.

      • -
      • accessing_obj (object, optional) – If given, check the -attredit lock on each Attribute before continuing.

      • -
      • default_access (bool, optional) – Use this permission as -fallback if access_obj is given but there is no lock of -type attredit on the Attribute in question.

      • -
      -
      -
      -
      - -
      -
      -get_all_attributes()[source]
      -

      Simply returns all Attributes of this object, sorted by their IDs.

      -
      -
      Returns
      -

      attributes (list of IAttribute)

      -
      -
      -
      - -
      - -
      -
      -class evennia.typeclasses.attributes.InMemoryAttributeBackend(handler, attrtype)[source]
      -

      Bases: evennia.typeclasses.attributes.IAttributeBackend

      -

      This Backend for Attributes stores NOTHING in the database. Everything is kept in memory, and normally lost -on a crash, reload, shared memory flush, etc. It generates IDs for the Attributes it manages, but these are -of little importance beyond sorting and satisfying the caching logic to know an Attribute hasn’t been -deleted out from under the cache’s nose.

      -
      -
      -__init__(handler, attrtype)[source]
      -

      Initialize self. See help(type(self)) for accurate signature.

      -
      - -
      -
      -query_all()[source]
      -

      Fetch all Attributes from this object.

      -
      -
      Returns
      -

      attrlist (list) – A list of Attribute objects.

      -
      -
      -
      - -
      -
      -query_key(key, category)[source]
      -
      -
      Parameters
      -
        -
      • key (str) – The key of the Attribute being searched for.

      • -
      • category (str or None) – The category of the desired Attribute.

      • -
      -
      -
      Returns
      -

      attribute (IAttribute) – A single Attribute.

      -
      -
      -
      - -
      -
      -query_category(category)[source]
      -

      Returns every matching Attribute as a list, given a category.

      -

      This method calls up whatever storage the backend uses.

      -
      -
      Parameters
      -

      category (str or None) – The category to query.

      -
      -
      Returns
      -

      attrs (list) – The discovered Attributes.

      -
      -
      -
      - -
      -
      -do_create_attribute(key, category, lockstring, value, strvalue)[source]
      -

      See parent class.

      -

      strvalue has no meaning for InMemory attributes.

      -
      - -
      -
      -do_update_attribute(attr, value)[source]
      -

      Simply sets a new Value to an Attribute.

      -
      -
      Parameters
      -
        -
      • attr (IAttribute) – The Attribute being changed.

      • -
      • value (obj) – The Value for the Attribute.

      • -
      -
      -
      -
      - -
      -
      -do_batch_update_attribute(attr_obj, category, lock_storage, new_value, strvalue)[source]
      -

      No need to bother saving anything. Just set some values.

      -
      - -
      -
      -do_batch_finish(attr_objs)[source]
      -

      Nothing to do here for In-Memory.

      -
      -
      Parameters
      -

      attr_objs (list of IAttribute) – The Attributes created/updated thus far.

      -
      -
      -
      - -
      -
      -do_delete_attribute(attr)[source]
      -

      Removes the Attribute from local storage. Once it’s out of the cache, garbage collection will handle the rest.

      -
      -
      Parameters
      -

      attr (IAttribute) – The attribute to delete.

      -
      -
      -
      - -
      - -
      -
      -class evennia.typeclasses.attributes.ModelAttributeBackend(handler, attrtype)[source]
      -

      Bases: evennia.typeclasses.attributes.IAttributeBackend

      -

      Uses Django models for storing Attributes.

      -
      -
      -__init__(handler, attrtype)[source]
      -

      Initialize self. See help(type(self)) for accurate signature.

      -
      - -
      -
      -query_all()[source]
      -

      Fetch all Attributes from this object.

      -
      -
      Returns
      -

      attrlist (list) – A list of Attribute objects.

      -
      -
      -
      - -
      -
      -query_key(key, category)[source]
      -
      -
      Parameters
      -
        -
      • key (str) – The key of the Attribute being searched for.

      • -
      • category (str or None) – The category of the desired Attribute.

      • -
      -
      -
      Returns
      -

      attribute (IAttribute) – A single Attribute.

      -
      -
      -
      - -
      -
      -query_category(category)[source]
      -

      Returns every matching Attribute as a list, given a category.

      -

      This method calls up whatever storage the backend uses.

      -
      -
      Parameters
      -

      category (str or None) – The category to query.

      -
      -
      Returns
      -

      attrs (list) – The discovered Attributes.

      -
      -
      -
      - -
      -
      -do_create_attribute(key, category, lockstring, value, strvalue)[source]
      -

      Does the hard work of actually creating Attributes, whatever is needed.

      -
      -
      Parameters
      -
        -
      • key (str) – The Attribute’s key.

      • -
      • category (str or None) – The Attribute’s category, or None

      • -
      • lockstring (str) – Any locks for the Attribute.

      • -
      • value (obj) – The Value of the Attribute.

      • -
      • strvalue (bool) – Signifies if this is a strvalue Attribute. Value MUST be a string or -this will lead to Trouble. Ignored for InMemory attributes.

      • -
      -
      -
      Returns
      -

      attr (IAttribute) – The new Attribute.

      -
      -
      -
      - -
      -
      -do_update_attribute(attr, value)[source]
      -

      Simply sets a new Value to an Attribute.

      -
      -
      Parameters
      -
        -
      • attr (IAttribute) – The Attribute being changed.

      • -
      • value (obj) – The Value for the Attribute.

      • -
      -
      -
      -
      - -
      -
      -do_batch_update_attribute(attr_obj, category, lock_storage, new_value, strvalue)[source]
      -

      Called opnly by batch add. For the database backend, this is a method -of updating that can alter category and lock-storage.

      -
      -
      Parameters
      -
        -
      • attr_obj (IAttribute) – The Attribute being altered.

      • -
      • category (str or None) – The attribute’s (new) category.

      • -
      • lock_storage (str) – The attribute’s new locks.

      • -
      • new_value (obj) – The Attribute’s new value.

      • -
      • strvalue (bool) – Signifies if this is a strvalue Attribute. Value MUST be a string or -this will lead to Trouble. Ignored for InMemory attributes.

      • -
      -
      -
      -
      - -
      -
      -do_batch_finish(attr_objs)[source]
      -

      Called after batch_add completed. Used for handling database operations -and/or caching complications.

      -
      -
      Parameters
      -

      attr_objs (list of IAttribute) – The Attributes created/updated thus far.

      -
      -
      -
      - -
      -
      -do_delete_attribute(attr)[source]
      -

      Does the hard work of actually deleting things.

      -
      -
      Parameters
      -

      attr (IAttribute) – The attribute to delete.

      -
      -
      -
      - -
      -
      -class evennia.typeclasses.attributes.AttributeHandler(obj, backend_class)[source]
      +class evennia.typeclasses.attributes.AttributeHandler(obj)[source]

      Bases: object

      Handler for adding Attributes to the object.

      -__init__(obj, backend_class)[source]
      -

      Setup the AttributeHandler.

      -
      -
      Parameters
      -
        -
      • obj (TypedObject) – An Account, Object, Channel, ServerSession (not technically a typed object), etc.

      • -
      • backend_class (IAttributeBackend class) – The class of the backend to use.

      • -
      -
      -
      +__init__(obj)[source] +

      Initialize handler.

      +
      + +
      +
      +reset_cache()[source]
      +

      Reset cache from the outside.

      @@ -1045,12 +443,14 @@ repeat-calling add when having many Attributes to add.

      *args (tuple) –

      Each argument should be a tuples (can be of varying length) representing the Attribute to add to this object. Supported tuples are

      -
        -
      • (key, value)

      • -
      • (key, value, category)

      • -
      • (key, value, category, lockstring)

      • -
      • (key, value, category, lockstring, default_access)

      • +
        +
          +
        • (key, value)

        • +
        • (key, value, category)

        • +
        • (key, value, category, lockstring)

        • +
        • (key, value, category, lockstring, default_access)

        +

      Keyword Arguments
      @@ -1149,34 +549,6 @@ Attributes has no lock of type attrread defined on them.

      -
      -
      -reset_cache()[source]
      -
      - - - -
      -
      -class evennia.typeclasses.attributes.DbHolder(obj, name, manager_name='attributes')[source]
      -

      Bases: object

      -

      Holder for allowing property access of attributes

      -
      -
      -__init__(obj, name, manager_name='attributes')[source]
      -

      Initialize self. See help(type(self)) for accurate signature.

      -
      - -
      -
      -get_all()[source]
      -
      - -
      -
      -property all
      -
      -
      @@ -1198,15 +570,17 @@ matched by the in_template.

      Returns
      -

      regex (regex) – Regex to match against strings -template (str): Template with markers **{arg1}, {arg2}**, etc for -replacement using the standard .format method.

      +

      (regex, str)

      +
      +
      Regex to match against strings and a template

      Template with markers {arg1}, {arg2}, etc for +replacement using the standard .format method.

      +
      +
      +

      Raises
      -
        -
      • evennia.typecalasses.attributes.NickTemplateInvalid – If the in/out

      • -
      • template does not have a matching number of $args.

      • -
      +

      attributes.NickTemplateInvalid – If the in/out template does not have a matching +number of $args.

      @@ -1239,15 +613,7 @@ They also always use the strvalue fields for their data.

      __init__(*args, **kwargs)[source]
      -

      Setup the AttributeHandler.

      -
      -
      Parameters
      -
        -
      • obj (TypedObject) – An Account, Object, Channel, ServerSession (not technically a typed object), etc.

      • -
      • backend_class (IAttributeBackend class) – The class of the backend to use.

      • -
      -
      -
      +

      Initialize handler.

      @@ -1360,6 +726,102 @@ with nicks stored on the Account level.

      +
      +
      +class evennia.typeclasses.attributes.NAttributeHandler(obj)[source]
      +

      Bases: object

      +

      This stand-alone handler manages non-database saving. +It is similar to AttributeHandler and is used +by the .ndb handler in the same way as .db does +for the AttributeHandler.

      +
      +
      +__init__(obj)[source]
      +

      Initialized on the object

      +
      + +
      +
      +has(key)[source]
      +

      Check if object has this attribute or not.

      +
      +
      Parameters
      +

      key (str) – The Nattribute key to check.

      +
      +
      Returns
      +

      has_nattribute (bool) – If Nattribute is set or not.

      +
      +
      +
      + +
      +
      +get(key)[source]
      +

      Get the named key value.

      +
      +
      Parameters
      +

      key (str) – The Nattribute key to get.

      +
      +
      Returns
      +

      the value of the Nattribute.

      +
      +
      +
      + +
      +
      +add(key, value)[source]
      +

      Add new key and value.

      +
      +
      Parameters
      +
        +
      • key (str) – The name of Nattribute to add.

      • +
      • value (any) – The value to store.

      • +
      +
      +
      +
      + +
      +
      +remove(key)[source]
      +

      Remove Nattribute from storage.

      +
      +
      Parameters
      +

      key (str) – The name of the Nattribute to remove.

      +
      +
      +
      + +
      +
      +clear()[source]
      +

      Remove all NAttributes from handler.

      +
      + +
      +
      +all(return_tuples=False)[source]
      +

      List the contents of the handler.

      +
      +
      Parameters
      +

      return_tuples (bool, optional) – Defines if the Nattributes +are returns as a list of keys or as a list of (key, value).

      +
      +
      Returns
      +

      nattributes (list)

      +
      +
      A list of keys [key, key, …] or a

      list of tuples [(key, value), …] depending on the +setting of return_tuples.

      +
      +
      +

      +
      +
      +
      + +
      +
      @@ -1395,6 +857,7 @@ with nicks stored on the Account level.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -1411,7 +874,6 @@ with nicks stored on the Account level.

      -
      develop branch
      @@ -89,6 +88,7 @@ Attribute and Tag models are defined along with their handlers.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -105,7 +105,6 @@ Attribute and Tag models are defined along with their handlers.

      -
      develop branch
      @@ -50,13 +49,15 @@ all Attributes and TypedObjects).

      get_attribute(key=None, category=None, value=None, strvalue=None, obj=None, attrtype=None, **kwargs)[source]
      -

      Return Attribute objects by key, by category, by value, by strvalue, by -object (it is stored on) or with a combination of those criteria.

      +

      Return Attribute objects by key, by category, by value, by +strvalue, by object (it is stored on) or with a combination of +those criteria.

      Parameters
        -
      • key (str, optional) – The attribute’s key to search for

      • -
      • category (str, optional) – The category of the attribute(s) to search for.

      • +
      • key (str, optional) – The attribute’s key to search for.

      • +
      • category (str, optional) – The category of the attribute(s) +to search for.

      • value (str, optional) – The attribute value to search for. Note that this is not a very efficient operation since it will query for a pickled entity. Mutually exclusive to @@ -67,14 +68,14 @@ mutually exclusive to the value keyword and will take precedence if given.

      • obj (Object, optional) – On which object the Attribute to search for is.

      • -
      • attrype (str, optional) – An attribute-type to search for. +

      • attrtype (str, optional) – An attribute-type to search for. By default this is either None (normal Attributes) or “nick”.

      • -
      • **kwargs (any) – Currently unused. Reserved for future use.

      • +
      • kwargs (any) – Currently unused. Reserved for future use.

      Returns
      -

      list – The matching Attributes.

      +

      attributes (list) – The matching Attributes.

      @@ -166,7 +167,7 @@ stored on) or with a combination of those criteria.

      to search for.

    • obj (Object, optional) – On which object the Tag to search for is.

    • -
    • tagtype (str, optional) – One of None (normal tags), +

    • tagtype (str, optional) – One of None (normal tags), “alias” or “permission”

    • global_search (bool, optional) – Include all possible tags, not just tags on this object

    • @@ -481,6 +482,7 @@ Mutually exclusive to include_children.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -497,7 +499,6 @@ Mutually exclusive to include_children.

      -
      develop branch
      @@ -60,6 +59,7 @@ The admin should usually not have to deal directly with the database object layer.

      This module also contains the Managers for the respective models; inherit from these to create custom managers.

      +
      class evennia.typeclasses.models.TypedObject(*args, **kwargs)[source]
      @@ -158,10 +158,10 @@ a class based on the db_typeclass_path database field rather than use the one in the model.

      Parameters
      -

      through to parent. (Passed) –

      -
      -
      Keyword Arguments
      -

      through to parent. (Passed) –

      +
        +
      • *args – Passed through to parent.

      • +
      • **kwargs – Passed through to parent.

      • +

      Notes

      @@ -367,7 +367,7 @@ superuser lock bypass (be careful with this one).

      Keyword Arguments
      -

      kwar (any) – Ignored, but is there to make the api +

      kwargs (any) – Ignored, but is there to make the api consistent with the object-typeclass method access, which use it to feed to its hook methods.

      @@ -400,30 +400,36 @@ without involving any locks.

      property db

      Attribute handler wrapper. Allows for the syntax

      obj.db.attrname = value
      -# and
      +  and
       value = obj.db.attrname
      -# and
      +  and
       del obj.db.attrname
      -# and
      +  and
       all_attr = obj.db.all()
      -# (unless there is an attribute
      -#  named 'all', in which case that will be returned instead).
       
      +

      (unless there is an attribute named ‘all’, in which case that will be +returned instead).

      property ndb
      -

      NonDataBase). Everything stored -to this is guaranteed to be cleared when a server is shutdown. -Syntax is same as for the _get_db_holder() method and -property, e.g. obj.ndb.attr = value etc.

      -
      -
      Type
      -

      A non-attr_obj store (ndb

      -
      -
      +

      A non-attr_obj store (NonDataBase). Everything stored to this is +guaranteed to be cleared when a server is shutdown. Syntax is same as +for the .db property, e.g.

      +
      obj.ndb.attrname = value
      +  and
      +value = obj.ndb.attrname
      +  and
      +del obj.ndb.attrname
      +  and
      +all_attr = obj.ndb.all()
      +
      +
      +

      What makes this preferable over just assigning properties directly on +the object is that Evennia can track caching for these properties and +for example avoid wiping objects with set .ndb data on cache flushes.

      @@ -510,22 +516,27 @@ at/getting information for this object.

      classmethod web_get_create_url()[source]

      Returns the URI path for a View that allows users to create new instances of this object.

      -

      ex. Chargen = ‘/characters/create/’

      -

      For this to work, the developer must have defined a named view somewhere -in urls.py that follows the format ‘modelname-action’, so in this case -a named view of ‘character-create’ would be referenced by this method.

      -

      ex. -url(r’characters/create/’, ChargenView.as_view(), name=’character-create’)

      -

      If no View has been created and defined in urls.py, returns an -HTML anchor.

      -

      This method is naive and simply returns a path. Securing access to -the actual view and limiting who can create new objects is the -developer’s responsibility.

      Returns

      path (str) – URI path to object creation page, if defined.

      +

      Examples

      +
      Chargen = '/characters/create/'
      +
      +
      +

      For this to work, the developer must have defined a named view somewhere +in urls.py that follows the format ‘modelname-action’, so in this case +a named view of ‘character-create’ would be referenced by this method.

      +
      url(r'characters/create/', ChargenView.as_view(), name='character-create')
      +
      +
      +

      If no View has been created and defined in urls.py, returns an +HTML anchor.

      +

      Notes

      +

      This method is naive and simply returns a path. Securing access to +the actual view and limiting who can create new objects is the +developer’s responsibility.

      @@ -545,12 +556,12 @@ this object.

      For this to work, the developer must have defined a named view somewhere in urls.py that follows the format ‘modelname-action’, so in this case a named view of ‘character-detail’ would be referenced by this method.

      -
      url(r'characters/(?P<slug>[\w\d\-]+)/(?P<pk>[0-9]+)/$',
      -    CharDetailView.as_view(), name='character-detail')
      +
      CharDetailView.as_view(), name='character-detail')
       

      If no View has been created and defined in urls.py, returns an HTML anchor.

      +

      Notes

      This method is naive and simply returns a path. Securing access to the actual view and limiting who can view this object is the developer’s responsibility.

      @@ -563,7 +574,7 @@ developer’s responsibility.

      object.

      Returns
      -

      str – URI path to object puppet page, if defined.

      +

      path (str) – URI path to object puppet page, if defined.

      Examples

      @@ -579,6 +590,7 @@ a named view of ‘character-puppet’ would be referenced by this method.

      If no View has been created and defined in urls.py, returns an HTML anchor.

      +

      Notes

      This method is naive and simply returns a path. Securing access to the actual view and limiting who can view this object is the developer’s responsibility.

      @@ -591,7 +603,7 @@ responsibility.

      object.

      Returns
      -

      str – URI path to object update page, if defined.

      +

      path (str) – URI path to object update page, if defined.

      Examples

      @@ -607,6 +619,7 @@ a named view of ‘character-update’ would be referenced by this method.

      If no View has been created and defined in urls.py, returns an HTML anchor.

      +

      Notes

      This method is naive and simply returns a path. Securing access to the actual view and limiting who can modify objects is the developer’s responsibility.

      @@ -625,19 +638,19 @@ responsibility.

      Oscar (Character) = '/characters/oscar/1/delete/'
       
      -

      For this to work, the developer must have defined a named view -somewhere in urls.py that follows the format ‘modelname-action’, so -in this case a named view of ‘character-detail’ would be referenced -by this method.

      +

      For this to work, the developer must have defined a named view somewhere +in urls.py that follows the format ‘modelname-action’, so in this case +a named view of ‘character-detail’ would be referenced by this method.

      url(r'characters/(?P<slug>[\w\d\-]+)/(?P<pk>[0-9]+)/delete/$',
           CharDeleteView.as_view(), name='character-delete')
       
      -

      If no View has been created and defined in urls.py, returns an HTML -anchor.

      +

      If no View has been created and defined in urls.py, returns an +HTML anchor.

      +

      Notes

      This method is naive and simply returns a path. Securing access to -the actual view and limiting who can delete this object is the -developer’s responsibility.

      +the actual view and limiting who can delete this object is the developer’s +responsibility.

      @@ -663,12 +676,12 @@ this object.

      For this to work, the developer must have defined a named view somewhere in urls.py that follows the format ‘modelname-action’, so in this case a named view of ‘character-detail’ would be referenced by this method.

      -
      url(r'characters/(?P<slug>[\w\d\-]+)/(?P<pk>[0-9]+)/$',
      -    CharDetailView.as_view(), name='character-detail')
      +
      CharDetailView.as_view(), name='character-detail')
       

      If no View has been created and defined in urls.py, returns an HTML anchor.

      +

      Notes

      This method is naive and simply returns a path. Securing access to the actual view and limiting who can view this object is the developer’s responsibility.

      @@ -743,6 +756,7 @@ developer’s responsibility.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -759,7 +773,6 @@ developer’s responsibility.

      -
      develop branch
      @@ -270,33 +269,6 @@ existing Tag object, this will be re-used and no new Tag will be created.

      -
      -
      -has(tag=None, category=None, return_list=False)[source]
      -

      Checks if the given Tag (or list of Tags) exists on the object.

      -
      -
      Parameters
      -
        -
      • tag (str or iterable) – The Tag key or tags to check for. -If None, search by category.

      • -
      • category (str, optional) – Limit the check to Tags with this -category (note, that None is the default category).

      • -
      -
      -
      Returns
      -

      has_tag (bool or list)

      -
      -
      If the Tag exists on this object or not.

      If tag was given as an iterable then the return is a list of booleans.

      -
      -
      -

      -
      -
      Raises
      -

      ValueError – If neither tag nor category is given.

      -
      -
      -
      -
      get(key=None, default=None, category=None, return_tagobj=False, return_list=False)[source]
      @@ -453,6 +425,7 @@ of a latter tuple with the same category).

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -469,7 +442,6 @@ of a latter tuple with the same category).

      -
      develop branch
      @@ -40,57 +39,16 @@

      evennia.utils.ansi

      ANSI - Gives colour to text.

      -

      Use the codes defined in the ANSIParser class to apply colour to text. The -parse_ansi function in this module parses text for markup and strip_ansi -removes it.

      -

      You should usually not need to call parse_ansi explicitly; it is run by -Evennia just before returning data to/from the user. Alternative markup is -possible by overriding the parser class (see also contrib/ for deprecated -markup schemes).

      -

      Supported standards:

      -
        -
      • ANSI 8 bright and 8 dark fg (foreground) colors

      • -
      • ANSI 8 dark bg (background) colors

      • -
      • ‘ANSI’ 8 bright bg colors ‘faked’ with xterm256 (bright bg not included in ANSI standard)

      • -
      • Xterm256 - 255 fg/bg colors + 26 greyscale fg/bg colors

      • -
      -
      -

      Markup

      -

      ANSI colors: r ed, g reen, y ellow, b lue, m agenta, c yan, n ormal (no color). Capital -letters indicate the ‘dark’ variant.

      -
        -
      • |r fg bright red

      • -
      • |R fg dark red

      • -
      • |[r bg bright red

      • -
      • |[R bg dark red

      • -
      • |[R|g bg dark red, fg bright green

      • -
      +

      Use the codes defined in ANSIPARSER in your text +to apply colour to text according to the ANSI standard.

      +

      Examples:

      "This is |rRed text|n and this is normal again."
       
      -

      Xterm256 colors are given as RGB (Red-Green-Blue), with values 0-5:

      -
        -
      • |500 fg bright red

      • -
      • |050 fg bright green

      • -
      • |005 fg bright blue

      • -
      • |110 fg dark brown

      • -
      • |425 fg pink

      • -
      • |[431 bg orange

      • -
      -

      Xterm256 greyscale:

      -
        -
      • |=a fg black

      • -
      • |=g fg dark grey

      • -
      • |=o fg middle grey

      • -
      • |=v fg bright grey

      • -
      • |=z fg white

      • -
      • |[=r bg middle grey

      • -
      -
      "This is |500Red text|n and this is normal again."
      -"This is |[=jText on dark grey background"
      -
      -
      -
      +

      Mostly you should not need to call parse_ansi() explicitly; +it is run by Evennia just before returning data to/from the +user. Depreciated example forms are available by extending +the ansi mapping.

      class evennia.utils.ansi.ANSIParser[source]
      @@ -98,7 +56,7 @@ letters indicate the ‘dark’ variant.

      A class that parses ANSI markup to ANSI command sequences

      We also allow to escape colour codes -by prepending with an extra |.

      +by prepending with an extra |.

      ansi_map = [('|n', '\x1b[0m'), ('|/', '\r\n'), ('|-', '\t'), ('|>', ' '), ('|_', ' '), ('|*', '\x1b[7m'), ('|^', '\x1b[5m'), ('|u', '\x1b[4m'), ('|r', '\x1b[1m\x1b[31m'), ('|g', '\x1b[1m\x1b[32m'), ('|y', '\x1b[1m\x1b[33m'), ('|b', '\x1b[1m\x1b[34m'), ('|m', '\x1b[1m\x1b[35m'), ('|c', '\x1b[1m\x1b[36m'), ('|w', '\x1b[1m\x1b[37m'), ('|x', '\x1b[1m\x1b[30m'), ('|R', '\x1b[22m\x1b[31m'), ('|G', '\x1b[22m\x1b[32m'), ('|Y', '\x1b[22m\x1b[33m'), ('|B', '\x1b[22m\x1b[34m'), ('|M', '\x1b[22m\x1b[35m'), ('|C', '\x1b[22m\x1b[36m'), ('|W', '\x1b[22m\x1b[37m'), ('|X', '\x1b[22m\x1b[30m'), ('|h', '\x1b[1m'), ('|H', '\x1b[22m'), ('|!R', '\x1b[31m'), ('|!G', '\x1b[32m'), ('|!Y', '\x1b[33m'), ('|!B', '\x1b[34m'), ('|!M', '\x1b[35m'), ('|!C', '\x1b[36m'), ('|!W', '\x1b[37m'), ('|!X', '\x1b[30m'), ('|[R', '\x1b[41m'), ('|[G', '\x1b[42m'), ('|[Y', '\x1b[43m'), ('|[B', '\x1b[44m'), ('|[M', '\x1b[45m'), ('|[C', '\x1b[46m'), ('|[W', '\x1b[47m'), ('|[X', '\x1b[40m')]
      @@ -886,7 +844,6 @@ with.

      -
      @@ -909,14 +866,6 @@ with.

      -

      Table of Contents

      - -
      +
      @@ -946,7 +896,6 @@ with.

      -
      develop branch
      @@ -40,21 +39,23 @@

      evennia.utils.batchprocessors

      This module contains the core methods for the Batch-command- and -Batch-code-processors respectively. In short, these are two different ways to -build a game world using a normal text-editor without having to do so ‘on the -fly’ in-game. They also serve as an automatic backup so you can quickly -recreate a world also after a server reset. The functions in this module is -meant to form the backbone of a system called and accessed through game -commands.

      -

      The Batch-command processor is the simplest. It simply runs a list of in-game -commands in sequence by reading them from a text file. The advantage of this is -that the builder only need to remember the normal in-game commands. They are -also executing with full permission checks etc, making it relatively safe for -builders to use. The drawback is that in-game there is really a -builder-character walking around building things, and it can be important to -create rooms and objects in the right order, so the character can move between -them. Also objects that affects players (such as mobs, dark rooms etc) will -affect the building character too, requiring extra care to turn off/on.

      +Batch-code-processors respectively. In short, these are two different +ways to build a game world using a normal text-editor without having +to do so ‘on the fly’ in-game. They also serve as an automatic backup +so you can quickly recreate a world also after a server reset. The +functions in this module is meant to form the backbone of a system +called and accessed through game commands.

      +

      The Batch-command processor is the simplest. It simply runs a list of +in-game commands in sequence by reading them from a text file. The +advantage of this is that the builder only need to remember the normal +in-game commands. They are also executing with full permission checks +etc, making it relatively safe for builders to use. The drawback is +that in-game there is really a builder-character walking around +building things, and it can be important to create rooms and objects +in the right order, so the character can move between them. Also +objects that affects players (such as mobs, dark rooms etc) will +affect the building character too, requiring extra care to turn +off/on.

      The Batch-code processor is a more advanced system that accepts full Python code, executing in chunks. The advantage of this is much more power; practically anything imaginable can be coded and handled using @@ -67,38 +68,33 @@ etc. You also need to know Python and Evennia’s API. Hence it’s recommended that the batch-code processor is limited only to superusers or highly trusted staff.

      -

      Batch-command processor file syntax

      +

      Batch-Command processor file syntax

      The batch-command processor accepts ‘batchcommand files’ e.g batch.ev, containing a sequence of valid Evennia commands in a simple format. The engine runs each command in sequence, as if they had been run at the game prompt.

      Each Evennia command must be delimited by a line comment to mark its -end.

      -
      look
      -# delimiting comment
      -create/drop box
      -# another required comment
      -
      -
      -

      One can also inject another batchcmdfile:

      -
      #INSERT path.batchcmdfile
      -
      -
      -

      This way entire game worlds can be created and planned offline; it is +end. This way entire game worlds can be created and planned offline; it is especially useful in order to create long room descriptions where a real offline text editor is often much better than any online text editor or prompt.

      -
      -

      Example of batch.ev file:

      +

      There is only one batchcommand-specific entry to use in a batch-command +files (all others are just like in-game commands):

      +
        +
      • #INSERT path.batchcmdfile - this as the first entry on a line will +import and run a batch.ev file in this position, as if it was +written in this file.

      • +
      +

      Example of batch.ev file:

      # batch file
       # all lines starting with # are comments; they also indicate
       # that a command definition is over.
       
      -create box
      +@create box
       
       # this comment ends the @create command.
       
      -set box/desc = A large box.
      +@set box/desc = A large box.
       
       Inside are some scattered piles of clothing.
       
      @@ -111,25 +107,24 @@ editor or prompt.

      # (so two empty lines becomes a new paragraph). -teleport #221 +@teleport #221 # (Assuming #221 is a warehouse or something.) # (remember, this comment ends the @teleport command! Don'f forget it) # Example of importing another file at this point. -#IMPORT examples.batch +#INSERT examples.batch -drop box +@drop box # Done, the box is in the warehouse! (this last comment is not necessary to -# close the drop command since it's the end of the file) +# close the @drop command since it's the end of the file)

      An example batch file is contrib/examples/batch_example.ev.

      -
      -

      Batch-code processor file syntax

      +

      Batch-Code processor file syntax

      The Batch-code processor accepts full python modules (e.g. batch.py) that looks identical to normal Python files. The difference from importing and running any Python module is that the batch-code module @@ -160,17 +155,13 @@ this file.

      Importing works as normal. The following variables are automatically made available in the script namespace.

        -
      • caller - The object executing the batchscript

      • -
      • -
        DEBUG - This is a boolean marking if the batchprocessor is running

        in debug mode. It can be checked to e.g. delete created objects +

      • caller - The object executing the batchscript

      • +
      • DEBUG - This is a boolean marking if the batchprocessor is running +in debug mode. It can be checked to e.g. delete created objects when running a CODE block multiple times during testing. -(avoids creating a slew of same-named db objects)

        -
      • -
        -
      • +(avoids creating a slew of same-named db objects)

      -
      -

      Example batch.py file

      +

      Example batch.py file:

      #HEADER
       
       from django.conf import settings
      @@ -198,6 +189,7 @@ when running a CODE block multiple times during testing.
       script = create.create_script()
       
      +
      evennia.utils.batchprocessors.read_batchfile(pythonpath, file_ending='.py')[source]
      @@ -214,7 +206,7 @@ or .py). The ending should not be included in the python path.

      Returns
      -

      text (str) – The text content of the batch file.

      +

      str – The text content of the batch file.

      Raises

      IOError – If problems reading file.

      @@ -230,22 +222,13 @@ or .py). The ending should not be included in the python path.

      parse_file(pythonpath)[source]
      -

      This parses the lines of a batch-command-file.

      -
      -
      Parameters
      -

      pythonpath (str) – The dot-python path to the file.

      -
      -
      Returns
      -

      list – A list of all parsed commands with arguments, as strings.

      -
      -
      -

      Notes

      -

      Parsing follows the following rules:

      +

      This parses the lines of a batchfile according to the following +rules:

        -
      1. A # at the beginning of a line marks the end of the command before +

      2. # at the beginning of a line marks the end of the command before it. It is also a comment and any number of # can exist on subsequent lines (but not inside comments).

      3. -
      4. #INSERT at the beginning of a line imports another +

      5. #INSERT at the beginning of a line imports another batch-cmd file file and pastes it into the batch file as if it was written there.

      6. Commands are placed alone at the beginning of a line and their @@ -280,28 +263,30 @@ a newline (so two empty lines is a paragraph).

      7. parse_file(pythonpath)[source]
        -

        This parses the lines of a batch-code file

        +

        This parses the lines of a batchfile according to the following +rules:

        Parameters

        pythonpath (str) – The dot-python path to the file.

        Returns
        -

        list

        +

        codeblocks (list)

        -
        A list of all #CODE blocks, each with

        prepended #HEADER block data. If no #CODE -blocks were found, this will be a list of one element -containing all code in the file (so a normal Python file).

        +
        A list of all #CODE blocks, each with

        prepended #HEADER data. If no #CODE blocks were found, +this will be a list of one element.

        Notes

        -

        Parsing is done according to the following rules:

          -
        1. Code before a #CODE/HEADER block are considered part of -the first code/header block or is the ONLY block if no -#CODE/HEADER blocks are defined.

        2. +
        3. +
          Code before a #CODE/HEADER block are considered part of

          the first code/header block or is the ONLY block if no +#CODE/HEADER blocks are defined.

          +
          +
          +
        4. Lines starting with #HEADER starts a header block (ends other blocks)

        5. Lines starting with #CODE begins a code block (ends other blocks)

        6. Lines starting with #INSERT are on form #INSERT filename. Code from @@ -334,7 +319,6 @@ namespace.

        -
      @@ -361,14 +345,8 @@ namespace.

      Table of Contents

      @@ -386,6 +364,7 @@ namespace.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -402,7 +381,6 @@ namespace.

      -
      develop branch
      @@ -221,6 +220,7 @@ scripts defined in settings.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -237,7 +237,6 @@ scripts defined in settings.

      -
      develop branch
      @@ -39,15 +38,25 @@

      evennia.utils.create

      -

      This module gathers all the essential database-creation functions for the game -engine’s various object types.

      -

      Only objects created ‘stand-alone’ are in here. E.g. object Attributes are -always created through their respective objects handlers.

      -

      Each creation_* function also has an alias named for the entity being created, -such as create_object() and object(). This is for consistency with the -utils.search module and allows you to do the shorter create.object().

      -

      The respective object managers hold more methods for manipulating and searching -objects already existing in the database.

      +

      This module gathers all the essential database-creation +functions for the game engine’s various object types.

      +

      Only objects created ‘stand-alone’ are in here, e.g. object Attributes +are always created directly through their respective objects.

      +

      Each creation_* function also has an alias named for the entity being +created, such as create_object() and object(). This is for +consistency with the utils.search module and allows you to do the +shorter “create.object()”.

      +

      The respective object managers hold more methods for manipulating and +searching objects already existing in the database.

      +
      +
      Models covered:

      Objects +Scripts +Help +Message +Channel +Accounts

      +
      +
      evennia.utils.create.create_object(typeclass=None, key=None, location=None, home=None, permissions=None, locks=None, aliases=None, tags=None, destination=None, report_to=None, nohome=False, attributes=None, nattributes=None)[source]
      @@ -57,21 +66,25 @@ objects already existing in the database.

      • typeclass (class or str) – Class or python path to a typeclass.

      • key (str) – Name of the new object. If not set, a name of -#dbref will be set.

      • +#dbref will be set.

      • home (Object or str) – Obj or #dbref to use as the object’s home location.

      • permissions (list) – A list of permission strings or tuples (permstring, category).

      • locks (str) – one or more lockstrings, separated by semicolons.

      • aliases (list) – A list of alternative keys or tuples (aliasstring, category).

      • tags (list) – List of tag keys or tuples (tagkey, category) or (tagkey, category, data).

      • -
      • destination (Object or str) – Obj or #dbref to use as an Exit’s target.

      • +
      • destination (Object or str) – Obj or #dbref to use as an Exit’s +target.

      • report_to (Object) – The object to return error messages to.

      • nohome (bool) – This allows the creation of objects without a default home location; only used when creating the default location itself or during unittests.

      • -
      • attributes (list) – Tuples on the form (key, value) or (key, value, category), -(key, value, lockstring) or (key, value, lockstring, default_access). -to set as Attributes on the new object.

      • +
      • attributes (list) –

        Tuples on the form (key, value) or (key, value, category), +(key, value, lockstring) or (key, value, lockstring, default_access).

        +
        +

        to set as Attributes on the new object.

        +
        +

      • nattributes (list) – Non-persistent tuples on the form (key, value). Note that adding this rarely makes sense since this data will not survive a reload.

      @@ -119,8 +132,9 @@ created or if the start method must be called explicitly.

      report_to (Object) – The object to return error messages to.

    • desc (str) – Optional description of script

    • tags (list) – List of tags or tuples (tag, category).

    • -
    • attributes (list) – List if tuples (key, value) or (key, value, category) -(key, value, lockstring) or (key, value, lockstring, default_access).

    • +
    • attributes (list) – List of tuples (key, value), (key, value, category), +(key, value, category, lockstring) or +(key, value, category, lockstring, default_access).

    • Returns
      @@ -291,6 +305,7 @@ operations and is thus not suitable for play-testing the game.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -307,7 +322,6 @@ operations and is thus not suitable for play-testing the game.

      -
      develop branch
      @@ -88,7 +87,7 @@ will save to when they update. It must have a ‘value’ property that saves assigned data to the database. Skip if not serializing onto a given object. If db_obj is given, this function will convert lists, dicts and sets to their -_SaverList, _SaverDict and _SaverSet counterparts.

      +_SaverList, _SaverDict and _SaverSet counterparts.

      Returns
      @@ -156,6 +155,7 @@ _SaverList, _SaverDict and _SaverSet counterparts.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -172,7 +172,6 @@ _SaverList, _SaverDict and _SaverSet counterparts.

      -
      develop branch
      @@ -40,43 +39,51 @@

      evennia.utils.eveditor

      EvEditor (Evennia Line Editor)

      -

      This implements an advanced line editor for editing longer texts in-game. The -editor mimics the command mechanisms of the “VI” editor (a famous line-by-line -editor) as far as reasonable.

      +

      This implements an advanced line editor for editing longer texts +in-game. The editor mimics the command mechanisms of the “VI” editor +(a famous line-by-line editor) as far as reasonable.

      Features of the editor:

      -
        +
        +
        • undo/redo.

        • edit/replace on any line of the buffer.

        • search&replace text anywhere in buffer.

        • formatting of buffer, or selection, to certain width + indentations.

        • allow to echo the input or not, depending on your client.

        • -
        • in-built help

        -

        To use the editor, just import EvEditor from this module and initialize it:

        +
        +

        To use the editor, just import EvEditor from this module +and initialize it:

        from evennia.utils.eveditor import EvEditor
        -
        -# set up an editor to edit the caller's 'desc' Attribute
        -def _loadfunc(caller):
        -    return caller.db.desc
        -
        -def _savefunc(caller, buffer):
        -    caller.db.desc = buffer.strip()
        -    return True
        -
        -def _quitfunc(caller):
        -    caller.msg("Custom quit message")
        -
        -# start the editor
        -EvEditor(caller, loadfunc=None, savefunc=None, quitfunc=None, key="",
        -         persistent=True, code=False)
        +EvEditor(caller, loadfunc=None, savefunc=None, quitfunc=None, key="", persistent=True)
         
        -

        The editor can also be used to format Python code and be made to -survive a reload. See the EvEditor class for more details.

        +
          +
        • caller is the user of the editor, the one to see all feedback.

        • +
        • loadfunc(caller) is called when the editor is first launched; the +return from this function is loaded as the starting buffer in the +editor.

        • +
        • safefunc(caller, buffer) is called with the current buffer when +saving in the editor. The function should return True/False depending +on if the saving was successful or not.

        • +
        • quitfunc(caller) is called when the editor exits. If this is given, +no automatic quit messages will be given.

        • +
        • key is an optional identifier for the editing session, to be +displayed in the editor.

        • +
        • persistent means the editor state will be saved to the database making it +survive a server reload. Note that using this mode, the load- save- +and quit-funcs must all be possible to pickle - notable unusable +callables are class methods and functions defined inside other +functions. With persistent=False, no such restriction exists.

        • +
        • code set to True activates features on the EvEditor to enter Python code.

        • +
        +

        In addition, the EvEditor can be used to enter Python source code, +and offers basic handling of indentation.

        +
        class evennia.utils.eveditor.CmdSaveYesNo(**kwargs)[source]
        -

        Bases: evennia.commands.command.Command

        +

        Bases: evennia.commands.default.muxcommand.MuxCommand

        Save the editor state on quit. This catches nomatches (defaults to Yes), and avoid saves only if command was given specifically as “no” or “n”.

        @@ -116,11 +123,6 @@ command was given specifically as “no” or “n”.

        lock_storage = 'cmd:all()'
        -
        -
        -search_index_entry = {'aliases': '__noinput_command', 'category': 'general', 'key': '__nomatch_command', 'tags': '', 'text': '\n Save the editor state on quit. This catches\n nomatches (defaults to Yes), and avoid saves only if\n command was given specifically as "no" or "n".\n '}
        -
        -
        @@ -135,7 +137,7 @@ command was given specifically as “no” or “n”.

        -priority = 1
        +priority = 150
        @@ -159,7 +161,7 @@ command was given specifically as “no” or “n”.

        class evennia.utils.eveditor.CmdEditorBase(**kwargs)[source]
        -

        Bases: evennia.commands.command.Command

        +

        Bases: evennia.commands.default.muxcommand.MuxCommand

        Base parent for editor commands

        @@ -179,19 +181,17 @@ command was given specifically as “no” or “n”.

        parse()[source]
        -

        Handles pre-parsing. Editor commands are on the form

        -
        :cmd [li] [w] [txt]
        -
        -
        -

        Where all arguments are optional.

        -
          -
        • -
          li - line number (int), starting from 1. This could also

          be a range given as <l>:<l>.

          +

          Handles pre-parsing

          +
          +
          Usage:

          :cmd [li] [w] [txt]

          -
        • -
        • w - word(s) (string), could be encased in quotes.

        • -
        • txt - extra text (string), could be encased in quotes.

        • +

          Where all arguments are optional.

          +
            +
          • li - line number (int), starting from 1. This could also +be a range given as <l>:<l>.

          • +
          • w - word(s) (string), could be encased in quotes.

          • +
          • txt - extra text (string), could be encased in quotes.

        @@ -215,11 +215,6 @@ command was given specifically as “no” or “n”.

        lock_storage = 'cmd:all()'
        -
        -
        -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'command', 'tags': '', 'text': '\n Base parent for editor commands\n '}
        -
        -
        @@ -255,11 +250,6 @@ indentation.

        lock_storage = 'cmd:all()'
        -
        -
        -search_index_entry = {'aliases': '__noinput_command', 'category': 'general', 'key': '__nomatch_command', 'tags': '', 'text': '\n No command match - Inputs line of text into buffer.\n '}
        -
        -
        @@ -274,7 +264,7 @@ indentation.

        -aliases = [':h', ':', ':q!', ':fd', ':s', ':echo', ':UU', ':<', ':wq', ':>', ':u', ':I', ':i', ':x', ':dd', ':!', ':DD', ':y', '::', ':f', ':w', ':r', ':uu', ':A', ':=', ':fi', ':::', ':S', ':q', ':p', ':j', ':dw']
        +aliases = [':i', ':j', ':r', ':h', ':DD', '::', ':dd', ':p', ':y', ':dw', ':q!', ':<', ':uu', ':S', ':echo', ':=', ':w', ':q', ':>', ':u', ':A', ':::', ':f', ':', ':x', ':UU', ':!', ':s', ':fd', ':I', ':wq', ':fi']
        @@ -300,11 +290,6 @@ efficient presentation.

        lock_storage = 'cmd:all()'
        -
        -
        -search_index_entry = {'aliases': ':h : :q! :fd :s :echo :UU :< :wq :> :u :I :i :x :dd :! :DD :y :: :f :w :r :uu :A := :fi ::: :S :q :p :j :dw', 'category': 'general', 'key': ':editor_command_group', 'tags': '', 'text': '\n Commands for the editor\n '}
        -
        -
        @@ -523,6 +508,7 @@ formatting information.

      • 0.9.5 (v0.9.5 branch)
      +
      @@ -539,7 +525,6 @@ formatting information.

      -
      develop branch
      @@ -73,7 +72,6 @@ object when displaying the form.

      | cccccccc | cccccccccccccccccBccccccccccccccccc | | | | ------------------------------------------------- -'''

      The first line of the FORM string is ignored. The forms and table @@ -164,16 +162,16 @@ EvCell or Tables.

      __init__(filename=None, cells=None, tables=None, form=None, **kwargs)[source]
      -

      Initiate the form

      +

      Initiate the form.

      Keyword Arguments
      • filename (str) – Path to template file.

      • -
      • cells (dict) – A dictionary mapping {id: text}

      • -
      • tables (dict) – A dictionary mapping {id: EvTable}.

      • -
      • form (dict) – A dictionary +

      • cells (dict) – A dictionary mapping of {id:text}.

      • +
      • tables (dict) – A dictionary mapping of {id:EvTable}.

      • +
      • form (dict) – A dictionary of {“FORMCHAR”:char, “TABLECHAR”:char, “FORM”:templatestring}. -If this is given, filename is not read.

      • +if this is given, filename is not read.

      @@ -252,6 +250,7 @@ If this is given, filename is not read.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -268,7 +267,6 @@ If this is given, filename is not read.

      -
      develop branch
      @@ -39,10 +38,9 @@

      evennia.utils.evmenu

      -

      EvMenu

      -

      This implements a full menu system for Evennia.

      -

      To start the menu, just import the EvMenu class from this module. -Example usage:

      +

      The EvMenu is a full in-game menu system for Evennia.

      +

      To start the menu, just import the EvMenu class from this module.

      +

      Example usage:

      from evennia.utils.evmenu import EvMenu
       
       EvMenu(caller, menu_module_path,
      @@ -52,8 +50,8 @@ Example usage:

      Where caller is the Object to use the menu on - it will get a new -cmdset while using the Menu. The menu_module_path is the python path -to a python module containing function definitions. By adjusting the +cmdset while using the Menu. The menu_module_path is the python path +to a python module containing function definitions. By adjusting the keyword options of the Menu() initialization call you can start the menu at different places in the menu definition file, adjust if the menu command should overload the normal commands or not, etc.

      @@ -79,7 +77,7 @@ command definition too) with function definitions:

      return text, options
      -

      Where caller is the object using the menu and input_string is the +

      Where caller is the object using the menu and input_string is the command entered by the user on the previous node (the command entered to get to this node). The node function code will only be executed once per node-visit and the system will accept nodes with @@ -93,43 +91,50 @@ deleted when the menu is exited.

      returned as None as well. If the options are returned as None, the menu is immediately exited and the default “look” command is called.

        -
      • -
        text (str, tuple or None): Text shown at this node. If a tuple, the

        second element in the tuple is a help text to display at this -node when the user enters the menu help command there.

        -
        -
        -
      • +
      • text (str, tuple or None): Text shown at this node. If a tuple, the +second element in the tuple is a help text to display at this +node when the user enters the menu help command there.

      • options (tuple, dict or None): If None, this exits the menu. If a single dict, this is a single-option node. If a tuple, -it should be a tuple of option dictionaries. Option dicts have the following keys:

        +it should be a tuple of option dictionaries. Option dicts have +the following keys:

          -
        • key (str or tuple, optional): What to enter to choose this option. -If a tuple, it must be a tuple of strings, where the first string is the +

        • +
          key (str or tuple, optional): What to enter to choose this option.

          If a tuple, it must be a tuple of strings, where the first string is the key which will be shown to the user and the others are aliases. If unset, the options’ number will be used. The special key _default marks this option as the default fallback when no other option matches the user input. There can only be one _default option per node. It -will not be displayed in the list.

        • +will not be displayed in the list.

          +
      +
      +
    • desc (str, optional): This describes what choosing the option will do.

    • -
    • goto (str, tuple or callable): If string, should be the name of node to go to -when this option is selected. If a callable, it has the signature +

    • +
      goto (str, tuple or callable): If string, should be the name of node to go to

      when this option is selected. If a callable, it has the signature callable(caller[,raw_input][,**kwargs]). If a tuple, the first element -is the callable and the second is a dict with the **kwargs to pass to +is the callable and the second is a dict with the kwargs to pass to the callable. Those kwargs will also be passed into the next node if possible. Such a callable should return either a str or a (str, dict), where the string is the name of the next node to go to and the dict is the new, (possibly modified) kwarg to pass into the next node. If the callable returns -None or the empty string, the current node will be revisited.

    • -
    • exec (str, callable or tuple, optional): This takes the same input as goto above -and runs before it. If given a node name, the node will be executed but will not +None or the empty string, the current node will be revisited.

      + + +
    • +
    • +
      exec (str, callable or tuple, optional): This takes the same input as goto above

      and runs before it. If given a node name, the node will be executed but will not be considered the next node. If node/callback returns str or (str, dict), these will replace the goto step (goto callbacks will not fire), with the string being the next node name and the optional dict acting as the kwargs-input for the next node. -If an exec callable returns the empty string (only), the current node is re-run.

    • +If an exec callable returns None, the current node is re-run.

      + + + -

      If key is not given, the option will automatically be identified by +

      If key is not given, the option will automatically be identified by its number 1..N.

      Example:

      # in menu_module.py
      @@ -183,8 +188,9 @@ same Using help will show the help text, otherwise a list of
       available commands while in menu mode.

      The menu tree is exited either by using the in-menu quit command or by reaching a node without any options.

      -

      For a menu demo, import CmdTestMenu from this module and add it to -your default cmdset. Run it with this module, like testmenu evennia.utils.evmenu.

      +

      For a menu demo, import CmdTestMenu from this module and add it to +your default cmdset. Run it with this module, like testmenu +evennia.utils.evmenu.

      @@ -40,8 +39,9 @@

      evennia.utils.evmore

      EvMore - pager mechanism

      -

      This is a pager for displaying long texts and allows stepping up and down in -the text (the name comes from the traditional ‘more’ unix command).

      +

      This is a pager for displaying long texts and allows stepping up and +down in the text (the name comes from the traditional ‘more’ unix +command).

      To use, simply pass the text through the EvMore object:

      from evennia.utils.evmore import EvMore
       
      @@ -49,17 +49,16 @@ the text (the name comes from the traditional ‘more’ unix command).

      EvMore(caller, text, always_page=False, session=None, justify_kwargs=None, **kwargs)
      -

      One can also use the convenience function msg from this module to avoid -having to set up the EvMenu object manually:

      +

      One can also use the convenience function msg from this module:

      from evennia.utils import evmore
       
       text = some_long_text_output()
       evmore.msg(caller, text, always_page=False, session=None, justify_kwargs=None, **kwargs)
       
      -

      The always_page argument decides if the pager is used also if the text is not long -enough to need to scroll, session is used to determine which session to relay -to and justify_kwargs are kwargs to pass to utils.utils.justify in order to +

      Where always_page decides if the pager is used also if the text is not long +enough to need to scroll, session is used to determine which session to relay +to and justify_kwargs are kwargs to pass to utils.utils.justify in order to change the formatting of the text. The remaining **kwargs will be passed on to the caller.msg() construct every time the page is updated.


      @@ -75,7 +74,7 @@ the caller.msg() construct every time the page is updated.

      -aliases = ['quit', 'a', 'b', 'end', 'next', 't', 'e', 'n', 'abort', 'q', 'back', 'top']
      +aliases = ['quit', 'n', 'a', 't', 'top', 'end', 'abort', 'q', 'b', 'e', 'back', 'next']
      @@ -99,11 +98,6 @@ the caller.msg() construct every time the page is updated.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': 'quit a b end next t e n abort q back top', 'category': 'general', 'key': '__noinput_command', 'tags': '', 'text': '\n Manipulate the text paging\n '}
      -
      -
      @@ -142,11 +136,6 @@ the caller.msg() construct every time the page is updated.

      lock_storage = 'cmd:all();'
      -
      -
      -search_index_entry = {'aliases': 'l', 'category': 'general', 'key': 'look', 'tags': '', 'text': '\n Override look to display window and prevent OOCLook from firing\n '}
      -
      -
      @@ -188,11 +177,11 @@ self.add().

      class evennia.utils.evmore.EvMore(caller, inp, always_page=False, session=None, justify=False, justify_kwargs=None, exit_on_lastpage=False, exit_cmd=None, page_formatter=<class 'str'>, **kwargs)[source]

      Bases: object

      -

      The main pager object

      +

      The main pager object.

      __init__(caller, inp, always_page=False, session=None, justify=False, justify_kwargs=None, exit_on_lastpage=False, exit_cmd=None, page_formatter=<class 'str'>, **kwargs)[source]
      -

      Initialization of the EvMore pager.

      +

      Initialization of the Evmore input handler.

      Parameters
        @@ -200,8 +189,9 @@ self.add().

      • inp (str, EvTable, Paginator or iterator) –

        The text or data to put under paging.

        • If a string, paginage normally. If this text contains -one or more \f format symbol, automatic pagination and justification -are force-disabled and page-breaks will only happen after each \f.

        • +one or more \f (backslash + f) format symbols, automatic +pagination and justification are force-disabled and +page-breaks will only happen after each \f.

        • If EvTable, the EvTable will be paginated with the same setting on each page if it is too long. The table decorations will be considered in the size of the page.

        • @@ -210,9 +200,8 @@ expected to be a line in the final display. Each line will be run through iter_callable.

      • -
      • always_page (bool, optional) – If False, the -pager will only kick in if inp is too big -to fit the screen.

      • +
      • always_page (bool, optional) – If False, the pager will only kick +in if inp is too big to fit the screen.

      • session (Session, optional) – If given, this session will be used to determine the screen width and will receive all output.

      • justify (bool, optional) – If set, auto-justify long lines. This must be turned @@ -228,28 +217,48 @@ exit message will not be shown.

      • the caller when the more page exits. Note that this will be using whatever cmdset the user had before the evmore pager was activated (so none of the evmore commands will be available when this is run).

        -
      • kwargs (any, optional) – These will be passed on to the caller.msg method.

      • +
      • kwargs (any, any) – These will be passed on to the caller.msg method.

      Examples

      +

      Basic use:

      super_long_text = " ... "
       EvMore(caller, super_long_text)
       
      -

      Paginator

      +

      Paginated query data - this is an optimization to avoid fetching +database data until it’s actually paged to.

      from django.core.paginator import Paginator
      +
       query = ObjectDB.objects.all()
       pages = Paginator(query, 10)  # 10 objs per page
       EvMore(caller, pages)
       
      -

      Every page an EvTable

      -
      from evennia import EvTable
      -def _to_evtable(page):
      -    table = ... # convert page to a table
      -    return EvTable(*headers, table=table, ...)
      -EvMore(caller, pages, page_formatter=_to_evtable)
      +

      Automatic split EvTable over multiple EvMore pages

      +
      table = EvMore(*header, table=tabledata)
      +EvMore(caller, table)
      +
      +
      +

      Every page a separate EvTable (optimization for very large data sets)

      +
      from evennia import EvTable, EvMore
      +
      +class TableEvMore(EvMore):
      +    def init_pages(self, data):
      +        pages = # depends on data type
      +        super().init_pages(pages)
      +
      +    def page_formatter(self, page):
      +        table = EvTable()
      +
      +        for line in page:
      +            cols = # split raw line into columns
      +            table.add_row(*cols)
      +
      +        return str(table)
      +
      +TableEvMore(caller, pages)
       
      @@ -343,14 +352,9 @@ querysets); to avoid fetching all objects at the same time.

      init_f_str(text)[source]
      -

      The input contains f markers. We use f to indicate the user wants to -enforce their line breaks on their own. If so, we do no automatic -line-breaking/justification at all.

      -
      -
      Parameters
      -

      text (str) – The string to format with f-markers.

      -
      -
      +

      The input contains \f (backslash + f) markers. We use \f to indicate +the user wants to enforce their line breaks on their own. If so, we do +no automatic line-breaking/justification at all.

      @@ -373,13 +377,15 @@ strings, querysets, django.Paginator, EvTables and any iterables with strings.Notes

      If overridden, this method must perform the following actions:

        -
      • read and re-store self._data (the incoming data set) if needed for pagination to work.

      • +
      • read and re-store self._data (the incoming data set) if needed +for pagination to work.

      • set self._npages to the total number of pages. Default is 1.

      • set self._paginator to a callable that will take a page number 1…N and return the data to display on that page (not any decorations or next/prev buttons). If only wanting to change the paginator, override self.paginator instead.

      • -
      • set self._page_formatter to a callable that will receive the page from self._paginator -and format it with one element per line. Default is str. Or override self.page_formatter +

      • set self._page_formatter to a callable that will receive the +page from self._paginator and format it with one element per +line. Default is str. Or override self.page_formatter directly instead.

      By default, helper methods are called that perform these actions @@ -432,69 +438,46 @@ EvTable across many pages and feed it into EvMore all at once).

      evennia.utils.evmore.msg(caller, text='', always_page=False, session=None, justify=False, justify_kwargs=None, exit_on_lastpage=True, **kwargs)[source]
      -
      -

      EvMore-supported version of msg, mimicking the normal msg method.

      -
      -

      Initialization of the EvMore pager.

      +

      EvMore-supported version of msg, mimicking the normal msg method.

      Parameters
      • caller (Object or Account) – Entity reading the text.

      • -
      • inp (str, EvTable, Paginator or iterator) –

        The text or data to put under paging.

        +
      • text (str, EvTable or iterator) –

        The text or data to put under paging.

        • If a string, paginage normally. If this text contains -one or more \f format symbol, automatic pagination and justification -are force-disabled and page-breaks will only happen after each \f.

        • +one or more \f (backslash + f) format symbol, automatic pagination is disabled +and page-breaks will only happen after each \f.

        • If EvTable, the EvTable will be paginated with the same setting on each page if it is too long. The table decorations will be considered in the size of the page.

        • -
        • Otherwise inp is converted to an iterator, where each step is -expected to be a line in the final display. Each line -will be run through iter_callable.

        • +
        • Otherwise text is converted to an iterator, where each step is +is expected to be a line in the final display, and each line +will be run through repr().

      • always_page (bool, optional) – If False, the -pager will only kick in if inp is too big +pager will only kick in if text is too big to fit the screen.

      • session (Session, optional) – If given, this session will be used to determine the screen width and will receive all output.

      • -
      • justify (bool, optional) – If set, auto-justify long lines. This must be turned -off for fixed-width or formatted output, like tables. It’s force-disabled -if inp is an EvTable.

      • -
      • justify_kwargs (dict, optional) – Keywords for the justifiy function. Used only -if justify is True. If this is not set, default arguments will be used.

      • -
      • exit_on_lastpage (bool, optional) – If reaching the last page without the -page being completely filled, exit pager immediately. If unset, -another move forward is required to exit. If set, the pager -exit message will not be shown.

      • -
      • exit_cmd (str, optional) – If given, this command-string will be executed on -the caller when the more page exits. Note that this will be using whatever -cmdset the user had before the evmore pager was activated (so none of -the evmore commands will be available when this is run).

      • -
      • kwargs (any, optional) – These will be passed on to the caller.msg method.

      • +
      • justify (bool, optional) – If set, justify long lines in output. Disable for +fixed-format output, like tables.

      • +
      • justify_kwargs (dict, bool or None, optional) – If given, this should +be valid keyword arguments to the utils.justify() function. If False, +no justification will be done.

      • +
      • exit_on_lastpage (bool, optional) – Immediately exit pager when reaching the last page.

      • +
      • use_evtable (bool, optional) – If True, each page will be rendered as an +EvTable. For this to work, text must be an iterable, where each element +is the table (list of list) to render on that page.

      • +
      • evtable_args (tuple, optional) – The args to use for EvTable on each page.

      • +
      • evtable_kwargs (dict, optional) – The kwargs to use for EvTable on each +page (except table, which is supplied by EvMore per-page).

      • +
      • kwargs (any, optional) – These will be passed on +to the caller.msg method.

      -

      Examples

      -
      super_long_text = " ... "
      -EvMore(caller, super_long_text)
      -
      -
      -

      Paginator

      -
      from django.core.paginator import Paginator
      -query = ObjectDB.objects.all()
      -pages = Paginator(query, 10)  # 10 objs per page
      -EvMore(caller, pages)
      -
      -
      -

      Every page an EvTable

      -
      from evennia import EvTable
      -def _to_evtable(page):
      -    table = ... # convert page to a table
      -    return EvTable(*headers, table=table, ...)
      -EvMore(caller, pages, page_formatter=_to_evtable)
      -
      -
      @@ -532,6 +515,7 @@ the evmore commands will be available when this is run).

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -548,7 +532,6 @@ the evmore commands will be available when this is run).

      -
      develop branch
      @@ -39,15 +38,13 @@

      evennia.utils.evtable

      -

      This is an advanced ASCII table creator. It was inspired by Prettytable -(https://code.google.com/p/prettytable/) but shares no code and is considerably -more advanced, supporting auto-balancing of incomplete tables and ANSI colors among -other things.

      +

      This is an advanced ASCII table creator. It was inspired by +[prettytable](https://code.google.com/p/prettytable/) but shares no code.

      Example usage:

      from evennia.utils import evtable
       
       table = evtable.EvTable("Heading1", "Heading2",
      -                table=[[1,2,3],[4,5,6],[7,8,9]], border="cells")
      +              table=[[1,2,3],[4,5,6],[7,8,9]], border="cells")
       table.add_column("This is long data", "This is even longer data")
       table.add_row("This is a single row")
       print table
      @@ -101,9 +98,8 @@ Here we change the width and alignment of the column at index 3
       (Python starts from 0):

      table.reformat_column(3, width=30, align="r")
       print table
      -
      -
      -
      +-----------+-------+-----+-----------------------------+---------+
      +
      ++-----------+-------+-----+-----------------------------+---------+
       | Heading1  | Headi |     |                             |         |
       |           | ng2   |     |                             |         |
       +~~~~~~~~~~~+~~~~~~~+~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~+
      @@ -124,13 +120,14 @@ Here we change the width and alignment of the column at index 3
       

      If the height is restricted, cells will be restricted from expanding vertically. This will lead to text contents being cropped. Each cell can only shrink to a minimum width and height of 1.

      -

      EvTable is intended to be used with ANSIString for supporting ANSI-coloured -string types.

      -

      When a cell is auto-wrapped across multiple lines, ANSI-reset sequences will be -put at the end of each wrapped line. This means that the colour of a wrapped -cell will not “bleed”, but it also means that eventual colour outside the table -will not transfer “across” a table, you need to re-set the color to have it -appear on both sides of the table string.

      +

      EvTable is intended to be used with [ANSIString](evennia.utils.ansi#ansistring) +for supporting ANSI-coloured string types.

      +

      When a cell is auto-wrapped across multiple lines, ANSI-reset +sequences will be put at the end of each wrapped line. This means that +the colour of a wrapped cell will not “bleed”, but it also means that +eventual colour outside the table will not transfer “across” a table, +you need to re-set the color to have it appear on both sides of the +table string.


      @@ -641,6 +638,7 @@ given from 0 to Ncolumns-1.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -657,7 +655,6 @@ given from 0 to Ncolumns-1.

      -
      develop branch
      @@ -263,6 +262,7 @@ the epoch set by settings.TIME_GAME_EPOCH will still apply.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -279,7 +279,6 @@ the epoch set by settings.TIME_GAME_EPOCH will still apply.

      -
      develop branch
      @@ -144,7 +135,6 @@ functionality.

      -
      develop branch
      @@ -82,6 +81,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -98,7 +98,6 @@ -
      develop branch
      @@ -87,6 +86,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -103,7 +103,6 @@ -
      develop branch
      @@ -299,6 +298,7 @@ catch in an easy way here. Ideas are appreciated. /Griatch

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -315,7 +315,6 @@ catch in an easy way here. Ideas are appreciated. /Griatch

      -
      develop branch
      @@ -404,6 +403,7 @@ object the first time, the query is executed.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -420,7 +420,6 @@ object the first time, the query is executed.

      -
      develop branch
      @@ -44,15 +43,14 @@
      $funcname(arg, arg, ...)
       
      -

      embedded in any text where any arg can be another **$funcname()** call. +

      embedded in any text where any arg can be another $funcname{} call. This functionality is turned off by default - to activate, settings.INLINEFUNC_ENABLED must be set to True.

      -

      Each token starts with $funcname( where there must be no space -between the $funcname and “(“. The inlinefunc ends with a matched ending parentesis. -“)”.

      -

      Inside the inlinefunc definition, one can use ** to escape. This is +

      Each token starts with $funcname( where there must be no space between the +$funcname and “(“. It ends with a matched ending parentesis “)”.

      +

      Inside the inlinefunc definition, one can use \ to escape. This is mainly needed for escaping commas in flowing text (which would -otherwise be interpreted as an argument separator), or to escape **) +otherwise be interpreted as an argument separator), or to escape } when not intended to close the function block. Enclosing text in matched “”” (triple quotes) or ‘’’ (triple single-quotes) will also escape everything within without needing to escape individual @@ -62,7 +60,7 @@ modules defined by settings.INLINEFUNC_MODULES. They are identi by their function name (and ignored if this name starts with _). They should be on the following form:

      def funcname (*args, **kwargs):
      -    # ...
      +# ...
       

      Here, the arguments given to $funcname(arg1,arg2) will appear as the @@ -86,9 +84,8 @@ When this happens, the original parsed string is returned and the result of the stackfull inlinefunc is appended to the end. By default this is an error message.

      -

      Syntax errors, notably failing to completely closing all inlinefunc -blocks, will lead to the entire string remaining unparsed. Inlineparsing should -never traceback.

      +

      Syntax errors, notably not completely closing all inlinefunc blocks, will lead +to the entire string remaining unparsed.


      @@ -112,9 +109,11 @@ never traceback.

      value will be returned. Otherwise it will be an integer value in the given range.

      Example

      -

      $random() -$random(5) -$random(5, 10)

      +
        +
      • $random()

      • +
      • $random(5)

      • +
      • $random(5, 10)

      • +
      @@ -297,19 +296,17 @@ it. It is passed to the inlinefunc.

      • in_template (str) – The template to be used for nick recognition.

      • out_template (str) – The template to be used to replace the string -matched by the in_template.

      • +matched by the in_template.

      Returns
      -

      regex (regex) – Regex to match against strings -template (str): Template with markers {arg1}, {arg2}, etc for -replacement using the standard .format method.

      +

      regex, template (regex, str) – Regex to match against strings and a +template with markers {arg1}, {arg2}, etc for replacement using the +standard .format method.

      Raises
      -
      +

      inlinefuncs.NickTemplateInvalid – If the in/out template does not have a matching +number of $args.

      @@ -367,6 +364,7 @@ etc to match the regex.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -383,7 +381,6 @@ etc to match the regex.

      -
      develop branch
      @@ -430,6 +429,7 @@ all if the file is shorter than nlines.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -446,7 +446,6 @@ all if the file is shorter than nlines.

      -
      develop branch
      @@ -39,6 +38,8 @@

      evennia.utils.optionclasses

      +

      Option classes store user- or server Options in a generic way +while also providing validation.

      class evennia.utils.optionclasses.BaseOption(handler, key, description, default)[source]
      @@ -115,8 +116,8 @@ passing extra instructions into the validator.

      save(**kwargs)[source]

      Stores the current value using .handler.save_handler(self.key, value, **kwargs) -where kwargs are a combination of those passed into this function and -the ones specified by the OptionHandler.

      +where kwargs are a combination of those passed into this function and the +ones specified by the OptionHandler.

      Keyword Arguments

      any (any) – Not used by default. These are passed in from self.set @@ -889,6 +890,7 @@ entries are processed.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -905,7 +907,6 @@ entries are processed.

      -
      develop branch
      @@ -197,6 +196,7 @@ than their values.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -213,7 +213,6 @@ than their values.

      -
      develop branch
      @@ -241,6 +240,7 @@ This is used by the serialization framework.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -257,7 +257,6 @@ This is used by the serialization framework.

      -
      develop branch
      @@ -193,36 +192,6 @@ case sensitive) match.

      -
      -
      -evennia.utils.search.search_tag(key=None, category=None, tagtype=None, **kwargs)
      -

      Find object based on tag or category.

      -
      -
      Parameters
      -
        -
      • key (str, optional) – The tag key to search for.

      • -
      • category (str, optional) – The category of tag -to search for. If not set, uncategorized -tags will be searched.

      • -
      • tagtype (str, optional) – ‘type’ of Tag, by default -this is either None (a normal Tag), alias or -permission. This always apply to all queried tags.

      • -
      • kwargs (any) – Other optional parameter that may be supported -by the manager method.

      • -
      -
      -
      Returns
      -

      matches (list)

      -
      -
      List of Objects with tags matching

      the search criteria, or an empty list if no -matches were found.

      -
      -
      -

      -
      -
      -
      -
      evennia.utils.search.search_script_tag(key=None, category=None, tagtype=None, **kwargs)[source]
      @@ -348,6 +317,7 @@ matches were found.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -364,7 +334,6 @@ matches were found.

      -
      develop branch
      @@ -70,6 +69,7 @@ should directly give the module pathname to unload.

      ... # test code using foo.GLOBALTHING, now set to 'mockval'
      +

      Notes

      This allows for mocking constants global to the module, since otherwise those would not be mocked (since a module is only loaded once).

      @@ -203,6 +203,7 @@ It helps ensure your tests are run with your own objects.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -219,7 +220,6 @@ It helps ensure your tests are run with your own objects.

      -
      develop branch
      @@ -431,6 +430,7 @@ into html statements.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -447,7 +447,6 @@ into html statements.

      -
      develop branch
      @@ -231,8 +230,8 @@ Defaults to client’s default width.

      -
      -evennia.utils.utils.iter_to_str(initer, endsep='and', addquote=False)[source]
      +
      +evennia.utils.utils.iter_to_string(initer, endsep='and', addquote=False)[source]

      This pretty-formats an iterable list as string output, adding an optional alternative separator to the second to last entry. If addquote is True, the outgoing strings will be surrounded by quotes.

      @@ -249,16 +248,16 @@ values with double quotes.

      Returns
      -

      str – The list represented as a string.

      +

      liststr (str) – The list represented as a string.

      Examples

      -
      >>> list_to_string([1,2,3], endsep='')
      -'1, 2, 3'
      ->>> list_to_string([1,2,3], ensdep='and')
      -'1, 2 and 3'
      ->>> list_to_string([1,2,3], endsep='and', addquote=True)
      -'"1", "2" and "3"'
      +
      # no endsep:
      +   [1,2,3] -> '1, 2, 3'
      +# with endsep=='and':
      +   [1,2,3] -> '1, 2 and 3'
      +# with addquote and endsep
      +   [1,2,3] -> '"1", "2" and "3"'
       
      @@ -282,49 +281,16 @@ values with double quotes.

      Returns
      -

      str – The list represented as a string.

      +

      liststr (str) – The list represented as a string.

      Examples

      -
      >>> list_to_string([1,2,3], endsep='')
      -'1, 2, 3'
      ->>> list_to_string([1,2,3], ensdep='and')
      -'1, 2 and 3'
      ->>> list_to_string([1,2,3], endsep='and', addquote=True)
      -'"1", "2" and "3"'
      -
      -
      - - -
      -
      -evennia.utils.utils.iter_to_string(initer, endsep='and', addquote=False)
      -

      This pretty-formats an iterable list as string output, adding an optional -alternative separator to the second to last entry. If addquote -is True, the outgoing strings will be surrounded by quotes.

      -
      -
      Parameters
      -
        -
      • initer (any) – Usually an iterable to print. Each element must be possible to -present with a string. Note that if this is a generator, it will be -consumed by this operation.

      • -
      • endsep (str, optional) – If set, the last item separator will -be replaced with this value.

      • -
      • addquote (bool, optional) – This will surround all outgoing -values with double quotes.

      • -
      -
      -
      Returns
      -

      str – The list represented as a string.

      -
      -
      -

      Examples

      -
      >>> list_to_string([1,2,3], endsep='')
      -'1, 2, 3'
      ->>> list_to_string([1,2,3], ensdep='and')
      -'1, 2 and 3'
      ->>> list_to_string([1,2,3], endsep='and', addquote=True)
      -'"1", "2" and "3"'
      +
      # no endsep:
      +   [1,2,3] -> '1, 2, 3'
      +# with endsep=='and':
      +   [1,2,3] -> '1, 2 and 3'
      +# with addquote and endsep
      +   [1,2,3] -> '"1", "2" and "3"'
       
      @@ -583,8 +549,10 @@ be found, the protocol flag is reset to utf-8. In any case, returns bytes.

      -

      Notes

      +
      +

      Note

      If text is already bytes, return it as is.

      +
      @@ -605,8 +573,10 @@ falling back to settings.ENCODINGS.

      decoded_text (str) – The decoded text.

      -

      Notes

      +
      +

      Note

      If text is already str, return it as is.

      +
      @@ -632,10 +602,9 @@ distance from parent.

      Parameters
        -
      • obj (any) – Object to analyze. This may be either an instance or -a class.

      • -
      • parent (any) – Can be either an instance, a class or the python -path to the class.

      • +
      • obj (any) – Object to analyze. This may be either an instance +or a class.

      • +
      • parent (any) – Can be either instance, class or python path to class.

      Returns
      @@ -643,8 +612,10 @@ path to the class.

      Notes

      -

      What differentiates this function from Python’s isinstance() is the -flexibility in the types allowed for the object and parent being compared.

      +

      What differs this function from e.g. isinstance() is that obj +may be both an instance and a class, and parent may be an +instance, a class, or the python path to a class (counting from +the evennia root directory).

      @@ -667,7 +638,10 @@ any results if called from inside the game.

      shortcut to having to use the full backend name.

      Parameters
      -

      name (str) – One of ‘sqlite3’, ‘mysql’, ‘postgresql’ or ‘oracle’.

      +
        +
      • name (str) – One of ‘sqlite3’, ‘mysql’, ‘postgresql’

      • +
      • 'oracle'. (or) –

      • +
      Returns

      uses (bool) – If the given database is used or not.

      @@ -685,24 +659,30 @@ shortcut to having to use the full backend name.

    • timedelay (int or float) – The delay in seconds

    • callback (callable) – Will be called as callback(*args, **kwargs) after timedelay seconds.

    • -
    • *args – Will be used as arguments to callback

    • +
    • args (any, optional) – Will be used as arguments to callback

    • Keyword Arguments
        -
      • persistent (bool) – Make the delay persistent over a reboot or reload.

      • -
      • any – Any other keywords will be use as keyword arguments to callback.

      • +
      • persistent (bool, optional) – should make the delay persistent +over a reboot or reload

      • +
      • any (any) – Will be used as keyword arguments to callback.

      Returns
      -

      deferred – Will fire with callback after timedelay seconds. Note that -if timedelay() is used in the +

      deferred (deferred)

      +
      +
      Will fire with callback after

      timedelay seconds. Note that if timedelay() is used in the commandhandler callback chain, the callback chain can be defined directly in the command body and don’t need to be specified here.

      -

      Notes

      +

      +
      +
      +
      +

      Note

      The task handler (evennia.scripts.taskhandler.TASK_HANDLER) will be called for persistent or non-persistent tasks. If persistent is set to True, the callback, its arguments @@ -710,6 +690,7 @@ and other keyword arguments will be saved in the database, assuming they can be. The callback will be executed even after a server restart/reload, taking into account the specified delay (and server down time).

      +
      @@ -773,7 +754,7 @@ some checks for runtime libraries.

      evennia.utils.utils.has_parent(basepath, obj)[source]
      -

      Checks if basepath is somewhere in obj’s parent tree.

      +

      Checks if basepath is somewhere in obj’s parent tree.

      Parameters
        @@ -957,7 +938,7 @@ importing directly from path doesn’t work.

        evennia.utils.utils.class_from_module(path, defaultpaths=None)[source]
        -

        Return a class from a module, given the class’ full python path. This is +

        Return a class from a module, given the module’s path. This is primarily used to convert db_typeclass_path:s to classes.

        Parameters
        @@ -979,7 +960,7 @@ try subsequent imports by prepending those paths to path.

        evennia.utils.utils.object_from_module(path, defaultpaths=None)
        -

        Return a class from a module, given the class’ full python path. This is +

        Return a class from a module, given the module’s path. This is primarily used to convert db_typeclass_path:s to classes.

        Parameters
        @@ -1046,11 +1027,15 @@ the value, the more exact a match is required).

      Returns
      -

      suggestions (list) – Suggestions from vocabulary with a -similarity-rating that higher than or equal to cutoff. +

      suggestions (list)

      +
      +
      Suggestions from vocabulary with a

      similarity-rating that higher than or equal to cutoff. Could be empty if there are no matches.

      +

      +
      +
      @@ -1081,125 +1066,47 @@ array) instead of strings.

      evennia.utils.utils.format_table(table, extra_space=1)[source]
      -

      Format a 2D array of strings into a multi-column table.

      -
      -
      Parameters
      -
        -
      • table (list) – A list of lists to represent columns in the -table: [[val,val,val,…], [val,val,val,…], …], where +

        Note: evennia.utils.evtable is more powerful than this, but this function +can be useful when the number of columns and rows are unknown and must be +calculated on the fly.

        +
        +
        Args.
        +
        table (list): A list of lists to represent columns in the

        table: [[val,val,val,…], [val,val,val,…], …], where each val will be placed on a separate row in the column. All columns must have the same number of rows (some -positions may be empty though).

      • -
      • extra_space (int, optional) – Sets how much minimum extra -padding (in characters) should be left between columns.

      • -
      +positions may be empty though).

      -
      Returns
      -

      list – A list of lists representing the rows to print out one by one.

      +
      extra_space (int, optional): Sets how much minimum extra

      padding (in characters) should be left between columns.

      +
      +
      +
      +
      +
      +
      Returns
      +

      table (list)

      +
      +
      A list of lists representing the rows to print

      out one by one.

      +
      +
      +

      Notes

      The function formats the columns to be as wide as the widest member of each column.

      -

      evennia.utils.evtable is more powerful than this, but this -function can be useful when the number of columns and rows are -unknown and must be calculated on the fly.

      -

      Examples:

      -
      ftable = format_table([[1,2,3], [4,5,6]])
      -string = ""
      +

      Example

      +
      ftable = format_table([[...], [...], ...])
       for ir, row in enumarate(ftable):
           if ir == 0:
               # make first row white
      -        string += "\n|w" + "".join(row) + "|n"
      +        string += "\\n|w" + ""join(row) + "|n"
           else:
      -        string += "\n" + "".join(row)
      +        string += "\\n" + "".join(row)
       print(string)
       
      -
      -
      -evennia.utils.utils.percent(value, minval, maxval, formatting='{:3.1f}%')[source]
      -

      Get a value in an interval as a percentage of its position -in that interval. This also understands negative numbers.

      -
      -
      Parameters
      -
        -
      • value (number) – This should be a value minval<=value<=maxval.

      • -
      • minval (number or None) – Smallest value in interval. This could be None -for an open interval (then return will always be 100%)

      • -
      • maxval (number or None) – Biggest value in interval. This could be None -for an open interval (then return will always be 100%)

      • -
      • formatted (str, optional) – This is a string that should -accept one formatting tag. This will receive the -current value as a percentage. If None, the -raw float will be returned instead.

      • -
      -
      -
      Returns
      -

      str or float – The formatted value or the raw percentage as a float.

      -
      -
      -

      Notes

      -

      We try to handle a weird interval gracefully.

      -
        -
      • If either maxval or minval is None (open interval), we (aribtrarily) assume 100%.

      • -
      • If minval > maxval, we return 0%.

      • -
      • If minval == maxval == value we are looking at a single value match and return 100%.

      • -
      • If minval == maxval != value we return 0%.

      • -
      • If value not in [minval..maxval], we set value to the closest -boundary, so the result will be 0% or 100%, respectively.

      • -
      -
      - -
      -
      -evennia.utils.utils.percentile(iterable, percent, key=<function <lambda>>)[source]
      -

      Find the percentile of a list of values.

      -
      -
      Parameters
      -
        -
      • iterable (iterable) – A list of values. Note N MUST BE already sorted.

      • -
      • percent (float) – A value from 0.0 to 1.0.

      • -
      • key (callable, optional) –

      • -
      -
      -
      Returns
      -

      float – The percentile of the values

      -
      -
      -
      - -
      -
      -evennia.utils.utils.format_grid(elements, width=78, sep=' ', verbatim_elements=None)[source]
      -

      This helper function makes a ‘grid’ output, where it distributes the given -string-elements as evenly as possible to fill out the given width. -will not work well if the variation of length is very big!

      -
      -
      Parameters
      -
        -
      • elements (iterable) – A 1D list of string elements to put in the grid.

      • -
      • width (int, optional) – The width of the grid area to fill.

      • -
      • sep (str, optional) – The extra separator to put between words. If -set to the empty string, words may run into each other.

      • -
      • verbatim_elements (list, optional) – This is a list of indices pointing to -specific items in the elements list. An element at this index will -not be included in the calculation of the slot sizes. It will still -be inserted into the grid at the correct position and may be surrounded -by padding unless filling the entire line. This is useful for embedding -decorations in the grid, such as horizontal bars.

      • -
      -
      -
      Returns
      -

      gridstr – The grid as a list of ready-formatted rows. We return it -like this to make it easier to insert decorations between rows, such -as horizontal bars.

      -
      -
      -
      -
      evennia.utils.utils.get_evennia_pids()[source]
      @@ -1216,7 +1123,8 @@ Server by trying to access a PID file.

      Examples

      -

      This can be used to determine if we are in a subprocess by

      +

      This can be used to determine if we are in a subprocess by +something like:

      self_pid = os.getpid()
       server_pid, portal_pid = get_evennia_pids()
       is_subprocess = self_pid not in (server_pid, portal_pid)
      @@ -1373,12 +1281,16 @@ on errors.

      Returns
      -

      processed_result (Object or None) – This is always a single result -or None. If None, any error reporting/handling should +

      processed_result (Object or None)

      +
      +
      This is always a single result

      or None. If None, any error reporting/handling should already have happened. The returned object is of the type we are checking multimatches for (e.g. Objects or Commands)

      +

      +
      +
      @@ -1437,11 +1349,11 @@ of the game directory.

      from this parent.

      Returns
      -

      dict – On the form {“typeclass.path”: typeclass, …}

      +

      typeclasses (dict) – On the form {“typeclass.path”: typeclass, …}

      Notes

      -

      This will dynamically retrieve all abstract django models inheriting at any distance +

      This will dynamicall retrieve all abstract django models inheriting at any distance from the TypedObject base (aka a Typeclass) so it will work fine with any custom classes being added.

      @@ -1449,20 +1361,11 @@ classes being added.

      evennia.utils.utils.interactive(func)[source]
      -

      Decorator to make a method pausable with yield(seconds) -and able to ask for user-input with response=yield(question). -For the question-asking to work, one of the args or kwargs to the -decorated function must be named ‘caller’.

      -
      -
      Raises
      -
        -
      • ValueError – If asking an interactive question but the decorated -function has no arg or kwarg named ‘caller’.

      • -
      • ValueError – If passing non int/float to yield using for pausing.

      • -
      -
      -
      -

      Examples

      +

      Decorator to make a method pausable with yield(seconds) and able to ask for +user-input with response=yield(question). For the question-asking to +work, ‘caller’ must the name of an argument or kwarg to the decorated +function.

      +

      Example:

      @interactive
       def myfunc(caller):
           caller.msg("This is a test")
      @@ -1477,7 +1380,7 @@ function has no arg or kwarg named ‘caller’.

      Notes

      -

      This turns the decorated function or method into a generator.

      +

      This turns the method into a generator!

      @@ -1515,6 +1418,7 @@ function has no arg or kwarg named ‘caller’.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -1531,7 +1435,6 @@ function has no arg or kwarg named ‘caller’.

      -
      develop branch
      @@ -66,7 +65,7 @@ inputer’s timezone. Always returns a result in UTC.

    • account (AccountDB) – The Account performing this lookup. Unless from_tz is provided, the account’s timezone option will be used.

    • from_tz (pytz.timezone) – An instance of a pytz timezone object from the -user. If not provided, tries to use the timezone option of account. +user. If not provided, tries to use the timezone option of the account. If neither one is provided, defaults to UTC.

    • @@ -194,6 +193,7 @@ If neither one is provided, defaults to UTC.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -210,7 +210,6 @@ If neither one is provided, defaults to UTC.

      -
      develop branch
      @@ -37,202 +36,8 @@
      -
      -

      evennia.web.api.filters

      -

      FilterSets allow clients to specify querystrings that will determine the data -that is retrieved in GET requests. By default, Django Rest Framework uses the -‘django-filter’ package as its backend. Django-filter also has a section in its -documentation specifically regarding DRF integration.

      -

      https://django-filter.readthedocs.io/en/latest/guide/rest_framework.html

      -
      -
      -evennia.web.api.filters.get_tag_query(tag_type: Optional[str], key: str) → django.db.models.query_utils.Q[source]
      -

      Returns a Q object for searching by tag names for typeclasses -:param tag_type: The type of tag (None, ‘alias’, etc) -:type tag_type: str or None -:param key: The name of the tag -:type key: str

      -
      -
      Returns
      -

      A Q object that for searching by this tag type and name

      -
      -
      -
      - -
      -
      -class evennia.web.api.filters.TagTypeFilter(field_name=None, lookup_expr='exact', *, label=None, method=None, distinct=False, exclude=False, **kwargs)[source]
      -

      Bases: django_filters.filters.CharFilter

      -

      This class lets you create different filters for tags of a specified db_tagtype.

      -
      -
      -tag_type = None
      -
      - -
      -
      -filter(qs, value)[source]
      -
      - -
      - -
      -
      -class evennia.web.api.filters.AliasFilter(field_name=None, lookup_expr='exact', *, label=None, method=None, distinct=False, exclude=False, **kwargs)[source]
      -

      Bases: evennia.web.api.filters.TagTypeFilter

      -

      A filter for objects by their aliases (tags with a tagtype of ‘alias’

      -
      -
      -tag_type = 'alias'
      -
      - -
      - -
      -
      -class evennia.web.api.filters.PermissionFilter(field_name=None, lookup_expr='exact', *, label=None, method=None, distinct=False, exclude=False, **kwargs)[source]
      -

      Bases: evennia.web.api.filters.TagTypeFilter

      -

      A filter for objects by their permissions (tags with a tagtype of ‘permission’

      -
      -
      -tag_type = 'permission'
      -
      - -
      - -
      -
      -class evennia.web.api.filters.BaseTypeclassFilterSet(data=None, queryset=None, *, request=None, prefix=None)[source]
      -

      Bases: django_filters.rest_framework.filterset.FilterSet

      -

      A parent class with filters for aliases and permissions

      -
      -
      -static filter_name(queryset, name, value)[source]
      -

      Filters a queryset by aliases or the key of the typeclass -:param queryset: The queryset being filtered -:param name: The name of the field -:param value: The value passed in from GET params

      -
      -
      Returns
      -

      The filtered queryset

      -
      -
      -
      - -
      -
      -base_filters = {'alias': <evennia.web.api.filters.AliasFilter object>, 'name': <django_filters.filters.CharFilter object>, 'permission': <evennia.web.api.filters.PermissionFilter object>}
      -
      - -
      -
      -declared_filters = {'alias': <evennia.web.api.filters.AliasFilter object>, 'name': <django_filters.filters.CharFilter object>, 'permission': <evennia.web.api.filters.PermissionFilter object>}
      -
      - -
      - -
      -
      -class evennia.web.api.filters.ObjectDBFilterSet(data=None, queryset=None, *, request=None, prefix=None)[source]
      -

      Bases: evennia.web.api.filters.BaseTypeclassFilterSet

      -

      This adds filters for ObjectDB instances - characters, rooms, exits, etc

      -
      -
      -class Meta[source]
      -

      Bases: object

      -
      -
      -model
      -

      alias of evennia.objects.models.ObjectDB

      -
      - -
      -
      -fields = ['db_key', 'db_typeclass_path', 'db_tags__db_key', 'db_tags__db_category', 'db_location__db_key', 'db_home__db_key', 'db_location__id', 'db_home__id']
      -
      - -
      - -
      -
      -base_filters = {'alias': <evennia.web.api.filters.AliasFilter object>, 'db_home__db_key': <django_filters.filters.CharFilter object>, 'db_home__id': <django_filters.filters.NumberFilter object>, 'db_key': <django_filters.filters.CharFilter object>, 'db_location__db_key': <django_filters.filters.CharFilter object>, 'db_location__id': <django_filters.filters.NumberFilter object>, 'db_tags__db_category': <django_filters.filters.CharFilter object>, 'db_tags__db_key': <django_filters.filters.CharFilter object>, 'db_typeclass_path': <django_filters.filters.CharFilter object>, 'name': <django_filters.filters.CharFilter object>, 'permission': <evennia.web.api.filters.PermissionFilter object>}
      -
      - -
      -
      -declared_filters = {'alias': <evennia.web.api.filters.AliasFilter object>, 'name': <django_filters.filters.CharFilter object>, 'permission': <evennia.web.api.filters.PermissionFilter object>}
      -
      - -
      - -
      -
      -class evennia.web.api.filters.AccountDBFilterSet(data=None, queryset=None, *, request=None, prefix=None)[source]
      -

      Bases: evennia.web.api.filters.BaseTypeclassFilterSet

      -

      This adds filters for Account objects

      -
      -
      -class Meta[source]
      -

      Bases: object

      -
      -
      -model
      -

      alias of evennia.accounts.models.AccountDB

      -
      - -
      -
      -fields = ['db_key', 'db_typeclass_path', 'db_tags__db_key', 'db_tags__db_category', 'username', 'db_is_connected', 'db_is_bot']
      -
      - -
      - -
      -
      -base_filters = {'alias': <evennia.web.api.filters.AliasFilter object>, 'db_is_bot': <django_filters.rest_framework.filters.BooleanFilter object>, 'db_is_connected': <django_filters.rest_framework.filters.BooleanFilter object>, 'db_key': <django_filters.filters.CharFilter object>, 'db_tags__db_category': <django_filters.filters.CharFilter object>, 'db_tags__db_key': <django_filters.filters.CharFilter object>, 'db_typeclass_path': <django_filters.filters.CharFilter object>, 'name': <django_filters.filters.CharFilter object>, 'permission': <evennia.web.api.filters.PermissionFilter object>, 'username': <django_filters.filters.CharFilter object>}
      -
      - -
      -
      -declared_filters = {'alias': <evennia.web.api.filters.AliasFilter object>, 'name': <django_filters.filters.CharFilter object>, 'permission': <evennia.web.api.filters.PermissionFilter object>}
      -
      - -
      - -
      -
      -class evennia.web.api.filters.ScriptDBFilterSet(data=None, queryset=None, *, request=None, prefix=None)[source]
      -

      Bases: evennia.web.api.filters.BaseTypeclassFilterSet

      -

      This adds filters for Script objects

      -
      -
      -class Meta[source]
      -

      Bases: object

      -
      -
      -model
      -

      alias of evennia.scripts.models.ScriptDB

      -
      - -
      -
      -fields = ['db_key', 'db_typeclass_path', 'db_tags__db_key', 'db_tags__db_category', 'db_desc', 'db_obj__db_key', 'db_obj__id', 'db_account__id', 'db_account__username', 'db_is_active', 'db_persistent', 'db_interval']
      -
      - -
      - -
      -
      -base_filters = {'alias': <evennia.web.api.filters.AliasFilter object>, 'db_account__id': <django_filters.filters.NumberFilter object>, 'db_account__username': <django_filters.filters.CharFilter object>, 'db_desc': <django_filters.filters.CharFilter object>, 'db_interval': <django_filters.filters.NumberFilter object>, 'db_is_active': <django_filters.rest_framework.filters.BooleanFilter object>, 'db_key': <django_filters.filters.CharFilter object>, 'db_obj__db_key': <django_filters.filters.CharFilter object>, 'db_obj__id': <django_filters.filters.NumberFilter object>, 'db_persistent': <django_filters.rest_framework.filters.BooleanFilter object>, 'db_tags__db_category': <django_filters.filters.CharFilter object>, 'db_tags__db_key': <django_filters.filters.CharFilter object>, 'db_typeclass_path': <django_filters.filters.CharFilter object>, 'name': <django_filters.filters.CharFilter object>, 'permission': <evennia.web.api.filters.PermissionFilter object>}
      -
      - -
      -
      -declared_filters = {'alias': <evennia.web.api.filters.AliasFilter object>, 'name': <django_filters.filters.CharFilter object>, 'permission': <evennia.web.api.filters.PermissionFilter object>}
      -
      - -
      - +
      +

      evennia.web.api.filters

      @@ -268,6 +73,7 @@ documentation specifically regarding DRF integration.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -284,7 +90,6 @@ documentation specifically regarding DRF integration.

      -
      develop branch
      @@ -84,6 +83,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -100,7 +100,6 @@ -
      develop branch
      @@ -37,103 +36,8 @@
      -
      -

      evennia.web.api.permissions

      -
      -
      -class evennia.web.api.permissions.EvenniaPermission[source]
      -

      Bases: rest_framework.permissions.BasePermission

      -

      A Django Rest Framework permission class that allows us to use -Evennia’s permission structure. Based on the action in a given -view, we’ll check a corresponding Evennia access/lock check.

      -
      -
      -MINIMUM_LIST_PERMISSION = 'builder'
      -
      - -
      -
      -MINIMUM_CREATE_PERMISSION = 'builder'
      -
      - -
      -
      -view_locks = ['examine']
      -
      - -
      -
      -destroy_locks = ['delete']
      -
      - -
      -
      -update_locks = ['control', 'edit']
      -
      - -
      -
      -has_permission(request, view)[source]
      -

      Checks for permissions

      -
      -
      Parameters
      -
        -
      • request (Request) – The incoming request object.

      • -
      • view (View) – The django view we are checking permission for.

      • -
      -
      -
      Returns
      -

      bool – If permission is granted or not. If we return False here, a PermissionDenied -error will be raised from the view.

      -
      -
      -

      Notes

      -

      This method is a check that always happens first. If there’s an object involved, -such as with retrieve, update, or delete, then the has_object_permission method -is called after this, assuming this returns True.

      -
      - -
      -
      -static check_locks(obj, user, locks)[source]
      -

      Checks access for user for object with given locks -:param obj: Object instance we’re checking -:param user: User who we’re checking permissions -:type user: Account -:param locks: list of lockstrings -:type locks: list

      -
      -
      Returns
      -

      bool – True if they have access, False if they don’t

      -
      -
      -
      - -
      -
      -has_object_permission(request, view, obj)[source]
      -

      Checks object-level permissions after has_permission

      -
      -
      Parameters
      -
        -
      • request (Request) – The incoming request object.

      • -
      • view (View) – The django view we are checking permission for.

      • -
      • obj – Object we’re checking object-level permissions for

      • -
      -
      -
      Returns
      -

      bool – If permission is granted or not. If we return False here, a PermissionDenied -error will be raised from the view.

      -
      -
      -

      Notes

      -

      This method assumes that has_permission has already returned True. We check -equivalent Evennia permissions in the request.user to determine if they can -complete the action.

      -
      - -
      - +
      +

      evennia.web.api.permissions

      @@ -169,6 +73,7 @@ complete the action.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -185,7 +90,6 @@ complete the action.

      -
      develop branch
      @@ -37,296 +36,8 @@
      -
      -

      evennia.web.api.serializers

      -

      Serializers in the Django Rest Framework are similar to Forms in normal django. -They’re used for transmitting and validating data, both going to clients and -coming to the server. However, where forms often contained presentation logic, -such as specifying widgets to use for selection, serializers typically leave -those decisions in the hands of clients, and are more focused on converting -data from the server to JSON (serialization) for a response, and validating -and converting JSON data sent from clients to our enpoints into python objects, -often django model instances, that we can use (deserialization).

      -
      -
      -class evennia.web.api.serializers.AttributeSerializer(*args, **kwargs)[source]
      -

      Bases: rest_framework.serializers.ModelSerializer

      -
      -
      -class Meta[source]
      -

      Bases: object

      -
      -
      -model
      -

      alias of evennia.typeclasses.attributes.Attribute

      -
      - -
      -
      -fields = ['db_key', 'db_category', 'db_attrtype', 'value_display', 'db_value']
      -
      - -
      - -
      -
      -static get_value_display(obj: evennia.typeclasses.attributes.Attribute) → str[source]
      -

      Gets the string display of an Attribute’s value for serialization -:param obj: Attribute being serialized

      -
      -
      Returns
      -

      The Attribute’s value in string format

      -
      -
      -
      - -
      - -
      -
      -class evennia.web.api.serializers.TagSerializer(*args, **kwargs)[source]
      -

      Bases: rest_framework.serializers.ModelSerializer

      -
      -
      -class Meta[source]
      -

      Bases: object

      -
      -
      -model
      -

      alias of evennia.typeclasses.tags.Tag

      -
      - -
      -
      -fields = ['db_key', 'db_category', 'db_data', 'db_tagtype']
      -
      - -
      - -
      - -
      -
      -class evennia.web.api.serializers.SimpleObjectDBSerializer(*args, **kwargs)[source]
      -

      Bases: rest_framework.serializers.ModelSerializer

      -
      -
      -class Meta[source]
      -

      Bases: object

      -
      -
      -model
      -

      alias of evennia.objects.objects.DefaultObject

      -
      - -
      -
      -fields = ['id', 'db_key']
      -
      - -
      - -
      - -
      -
      -class evennia.web.api.serializers.TypeclassSerializerMixin[source]
      -

      Bases: object

      -

      Mixin that contains types shared by typeclasses. A note about tags, aliases, and permissions. You -might note that the methods and fields are defined here, but they’re included explicitly in each child -class. What gives? It’s a DRF error: serializer method fields which are inherited do not resolve correctly -in child classes, and as of this current version (3.11) you must have them in the child classes explicitly -to avoid field errors. Similarly, the child classes must contain the attribute serializer explicitly to -not have them render PK-related fields.

      -
      -
      -shared_fields = ['id', 'db_key', 'attributes', 'db_typeclass_path', 'aliases', 'tags', 'permissions']
      -
      - -
      -
      -static get_tags(obj)[source]
      -

      Serializes tags from the object’s Tagshandler -:param obj: Typeclassed object being serialized

      -
      -
      Returns
      -

      List of TagSerializer data

      -
      -
      -
      - -
      -
      -static get_aliases(obj)[source]
      -

      Serializes tags from the object’s Aliashandler -:param obj: Typeclassed object being serialized

      -
      -
      Returns
      -

      List of TagSerializer data

      -
      -
      -
      - -
      -
      -static get_permissions(obj)[source]
      -

      Serializes tags from the object’s Permissionshandler -:param obj: Typeclassed object being serialized

      -
      -
      Returns
      -

      List of TagSerializer data

      -
      -
      -
      - -
      -
      -static get_attributes(obj)[source]
      -

      Serializes attributes from the object’s AttributeHandler -:param obj: Typeclassed object being serialized

      -
      -
      Returns
      -

      List of AttributeSerializer data

      -
      -
      -
      - -
      -
      -static get_nicks(obj)[source]
      -

      Serializes attributes from the object’s NicksHandler -:param obj: Typeclassed object being serialized

      -
      -
      Returns
      -

      List of AttributeSerializer data

      -
      -
      -
      - -
      - -
      -
      -class evennia.web.api.serializers.ObjectDBSerializer(*args, **kwargs)[source]
      -

      Bases: evennia.web.api.serializers.TypeclassSerializerMixin, rest_framework.serializers.ModelSerializer

      -
      -
      -class Meta[source]
      -

      Bases: object

      -
      -
      -model
      -

      alias of evennia.objects.objects.DefaultObject

      -
      - -
      -
      -fields = ['db_location', 'db_home', 'contents', 'exits', 'nicks', 'id', 'db_key', 'attributes', 'db_typeclass_path', 'aliases', 'tags', 'permissions']
      -
      - -
      -
      -read_only_fields = ['id']
      -
      - -
      - -
      -
      -static get_exits(obj)[source]
      -

      Gets exits for the object -:param obj: Object being serialized

      -
      -
      Returns
      -

      List of data from SimpleObjectDBSerializer

      -
      -
      -
      - -
      -
      -static get_contents(obj)[source]
      -

      Gets non-exits for the object -:param obj: Object being serialized

      -
      -
      Returns
      -

      List of data from SimpleObjectDBSerializer

      -
      -
      -
      - -
      - -
      -
      -class evennia.web.api.serializers.AccountSerializer(*args, **kwargs)[source]
      -

      Bases: evennia.web.api.serializers.TypeclassSerializerMixin, rest_framework.serializers.ModelSerializer

      -

      This uses the DefaultAccount object to have access to the sessions property

      -
      -
      -static get_session_ids(obj)[source]
      -

      Gets a list of session IDs connected to this Account -:param obj: Account we’re grabbing sessions from -:type obj: DefaultAccount

      -
      -
      Returns
      -

      List of session IDs

      -
      -
      -
      - -
      -
      -class Meta[source]
      -

      Bases: object

      -
      -
      -model
      -

      alias of evennia.accounts.accounts.DefaultAccount

      -
      - -
      -
      -fields = ['username', 'session_ids', 'nicks', 'id', 'db_key', 'attributes', 'db_typeclass_path', 'aliases', 'tags', 'permissions']
      -
      - -
      -
      -read_only_fields = ['id']
      -
      - -
      - -
      - -
      -
      -class evennia.web.api.serializers.ScriptDBSerializer(*args, **kwargs)[source]
      -

      Bases: evennia.web.api.serializers.TypeclassSerializerMixin, rest_framework.serializers.ModelSerializer

      -
      -
      -class Meta[source]
      -

      Bases: object

      -
      -
      -model
      -

      alias of evennia.scripts.models.ScriptDB

      -
      - -
      -
      -fields = ['db_interval', 'db_persistent', 'db_start_delay', 'db_is_active', 'db_repeats', 'id', 'db_key', 'attributes', 'db_typeclass_path', 'aliases', 'tags', 'permissions']
      -
      - -
      -
      -read_only_fields = ['id']
      -
      - -
      - -
      - +
      +

      evennia.web.api.serializers

      @@ -362,6 +73,7 @@ not have them render PK-related fields.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -378,7 +90,6 @@ not have them render PK-related fields.

      -
      develop branch
      @@ -37,74 +36,8 @@
      -
      -

      evennia.web.api.tests

      -

      Tests for the REST API

      -
      -
      -class evennia.web.api.tests.TestEvenniaRESTApi(methodName='runTest')[source]
      -

      Bases: evennia.utils.test_resources.EvenniaTest

      -
      -
      -client_class
      -

      alias of rest_framework.test.APIClient

      -
      - -
      -
      -maxDiff = None
      -
      - -
      -
      -setUp()[source]
      -

      Sets up testing environment

      -
      - -
      -
      -tearDown()[source]
      -

      Hook method for deconstructing the test fixture after testing it.

      -
      - -
      -
      -get_view_details(action)[source]
      -

      Helper function for generating list of named tuples

      -
      - -
      -
      -test_retrieve()[source]
      -
      - -
      -
      -test_update()[source]
      -
      - -
      -
      -test_delete()[source]
      -
      - -
      -
      -test_list()[source]
      -
      - -
      -
      -test_create()[source]
      -
      - -
      -
      -test_set_attribute()[source]
      -
      - -
      - +
      +

      evennia.web.api.tests

      @@ -140,6 +73,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -156,7 +90,6 @@ -
      develop branch
      @@ -37,22 +36,8 @@
      -
      -

      evennia.web.api.urls

      -

      The Django Rest Framework provides a way of generating urls for different -views that implement standard CRUD operations in a quick way, using ‘routers’ -and ‘viewsets’. A viewset implements standard CRUD actions and any custom actions -that you want, and then a router will automatically generate URLs based on the -actions that it detects for a viewset. For example, below we create a DefaultRouter. -We then register ObjectDBViewSet, a viewset for CRUD operations for ObjectDB -instances, to the ‘objects’ base endpoint. That will generate a number of URLs -like the following: -list objects: action: GET, url: /objects/, view name: object-list -create object: action: POST, url: /objects/, view name: object-list -retrieve object: action: GET, url: /objects/<:pk>, view name: object-detail -update object: action: POST, url: /objects/<:pk>, view name: object-detail -delete object: action: DELETE, url: /objects/<:pk>, view name: object-detail -set attribute: action: POST, url: /objects/<:pk>/set-attribute, view name: object-set-attribute

      +
      +

      evennia.web.api.urls

      @@ -88,6 +73,7 @@ set attribute: action: POST, url: /objects/<:pk>/set-attribute, view nam
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -104,7 +90,6 @@ set attribute: action: POST, url: /objects/<:pk>/set-attribute, view nam -
      develop branch
      @@ -37,304 +36,8 @@
      -
      -

      evennia.web.api.views

      -

      Views are the functions that are called by different url endpoints. -The Django Rest Framework provides collections called ‘ViewSets’, which -can generate a number of views for the common CRUD operations.

      -
      -
      -class evennia.web.api.views.TypeclassViewSetMixin[source]
      -

      Bases: object

      -

      This mixin adds some shared functionality to each viewset of a typeclass. They all use the same -permission classes and filter backend. You can override any of these in your own viewsets.

      -
      -
      -permission_classes = [<class 'evennia.web.api.permissions.EvenniaPermission'>]
      -
      - -
      -
      -filter_backends = [<class 'django_filters.rest_framework.backends.DjangoFilterBackend'>]
      -
      - -
      -
      -set_attribute(request, pk=None)[source]
      -

      This is an example of a custom action added to a viewset. Based on the name of the -method, it will create a default url_name (used for reversing) and url_path. -The ‘pk’ argument is automatically passed to this action because it has a url path -of the format <object type>/:pk/set-attribute. The get_object method is automatically -set in the expected viewset classes that will inherit this, using the pk that’s -passed along to retrieve the object.

      -

      This action will set an attribute if the db_value is defined, or remove it -if no db_value is provided.

      -
      - -
      - -
      -
      -class evennia.web.api.views.ObjectDBViewSet(**kwargs)[source]
      -

      Bases: evennia.web.api.views.TypeclassViewSetMixin, rest_framework.viewsets.ModelViewSet

      -

      An example of a basic viewset for all ObjectDB instances. It declares the -serializer to use for both retrieving and changing/creating/deleting -instances. Serializers are similar to django forms, used for the -transmitting of data (typically json).

      -
      -
      -serializer_class
      -

      alias of evennia.web.api.serializers.ObjectDBSerializer

      -
      - -
      -
      -queryset = <QuerySet [Dummy, Limbo, Red button, Red button, Red button, Red button, Red button, Red button, Red button, Red button, Red button, Red button, Red button, Red button, Red button, Red button, Red button, Red button, Red button, Red button, '...(remaining elements truncated)...']>
      -
      - -
      -
      -filterset_class
      -

      alias of evennia.web.api.filters.ObjectDBFilterSet

      -
      - -
      -
      -basename = None
      -
      - -
      -
      -description = None
      -
      - -
      -
      -detail = None
      -
      - -
      -
      -name = None
      -
      - -
      -
      -suffix = None
      -
      - -
      - -
      -
      -class evennia.web.api.views.CharacterViewSet(**kwargs)[source]
      -

      Bases: evennia.web.api.views.ObjectDBViewSet

      -

      This overrides the queryset to only retrieve Character objects -based on your DefaultCharacter typeclass path.

      -
      -
      -queryset = <QuerySet [Dummy]>
      -
      - -
      -
      -basename = None
      -
      - -
      -
      -description = None
      -
      - -
      -
      -detail = None
      -
      - -
      -
      -name = None
      -
      - -
      -
      -suffix = None
      -
      - -
      - -
      -
      -class evennia.web.api.views.RoomViewSet(**kwargs)[source]
      -

      Bases: evennia.web.api.views.ObjectDBViewSet

      -

      Viewset for Room objects

      -
      -
      -queryset = <QuerySet [Limbo]>
      -
      - -
      -
      -basename = None
      -
      - -
      -
      -description = None
      -
      - -
      -
      -detail = None
      -
      - -
      -
      -name = None
      -
      - -
      -
      -suffix = None
      -
      - -
      - -
      -
      -class evennia.web.api.views.ExitViewSet(**kwargs)[source]
      -

      Bases: evennia.web.api.views.ObjectDBViewSet

      -

      Viewset for Exit objects

      -
      -
      -queryset = <QuerySet []>
      -
      - -
      -
      -basename = None
      -
      - -
      -
      -description = None
      -
      - -
      -
      -detail = None
      -
      - -
      -
      -name = None
      -
      - -
      -
      -suffix = None
      -
      - -
      - -
      -
      -class evennia.web.api.views.AccountDBViewSet(**kwargs)[source]
      -

      Bases: evennia.web.api.views.TypeclassViewSetMixin, rest_framework.viewsets.ModelViewSet

      -

      Viewset for Account objects

      -
      -
      -serializer_class
      -

      alias of evennia.web.api.serializers.AccountSerializer

      -
      - -
      -
      -queryset = <QuerySet [Dummy(account#1)]>
      -
      - -
      -
      -filterset_class
      -

      alias of evennia.web.api.filters.AccountDBFilterSet

      -
      - -
      -
      -basename = None
      -
      - -
      -
      -description = None
      -
      - -
      -
      -detail = None
      -
      - -
      -
      -name = None
      -
      - -
      -
      -suffix = None
      -
      - -
      - -
      -
      -class evennia.web.api.views.ScriptDBViewSet(**kwargs)[source]
      -

      Bases: evennia.web.api.views.TypeclassViewSetMixin, rest_framework.viewsets.ModelViewSet

      -

      Viewset for Script objects

      -
      -
      -serializer_class
      -

      alias of evennia.web.api.serializers.ScriptDBSerializer

      -
      - -
      -
      -queryset = <QuerySet [<ClosedLidState closed_lid_script>, <BlinkButtonEvent blink_button>, <ClosedLidState closed_lid_script>, <BlinkButtonEvent blink_button>, <ClosedLidState closed_lid_script>, <BlinkButtonEvent blink_button>, <ClosedLidState closed_lid_script>, <BlinkButtonEvent blink_button>, <ClosedLidState closed_lid_script>, <BlinkButtonEvent blink_button>, <ClosedLidState closed_lid_script>, <BlinkButtonEvent blink_button>, <ClosedLidState closed_lid_script>, <BlinkButtonEvent blink_button>, <ClosedLidState closed_lid_script>, <BlinkButtonEvent blink_button>, <ClosedLidState closed_lid_script>, <BlinkButtonEvent blink_button>, <ClosedLidState closed_lid_script>, <BlinkButtonEvent blink_button>, '...(remaining elements truncated)...']>
      -
      - -
      -
      -filterset_class
      -

      alias of evennia.web.api.filters.ScriptDBFilterSet

      -
      - -
      -
      -basename = None
      -
      - -
      -
      -description = None
      -
      - -
      -
      -detail = None
      -
      - -
      -
      -name = None
      -
      - -
      -
      -suffix = None
      -
      - -
      - +
      +

      evennia.web.api.views

      @@ -370,6 +73,7 @@ based on your DefaultCharacter typeclass path.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -386,7 +90,6 @@ based on your DefaultCharacter typeclass path.

      -
      develop branch
      @@ -119,6 +118,7 @@ found under the server package).

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -135,7 +135,6 @@ found under the server package).

      -
      develop branch
      @@ -74,6 +73,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -90,7 +90,6 @@ -
      develop branch
      @@ -100,6 +99,7 @@ an already authenticated account and bypass authentication.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -116,7 +116,6 @@ an already authenticated account and bypass authentication.

      -
      develop branch
      @@ -99,6 +98,7 @@ is automatically added to context of all views.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -115,7 +115,6 @@ is automatically added to context of all views.

      -
      develop branch
      @@ -82,6 +81,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -98,7 +98,6 @@ -
      develop branch
      @@ -92,6 +91,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -108,7 +108,6 @@ -
      develop branch
      @@ -100,6 +99,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -116,7 +116,6 @@ -
      develop branch
      @@ -80,6 +79,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -96,7 +96,6 @@ -
      develop branch
      @@ -76,6 +75,7 @@ webpage ‘application’.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -92,7 +92,6 @@ webpage ‘application’.

      -
      develop branch
      @@ -82,6 +81,7 @@ page and serve it eventual static content.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -98,7 +98,6 @@ page and serve it eventual static content.

      -
      develop branch
      @@ -312,6 +311,7 @@ wish to allow.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -328,7 +328,6 @@ wish to allow.

      -
      develop branch
      @@ -90,6 +89,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -106,7 +106,6 @@ -
      develop branch
      @@ -79,6 +78,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -95,7 +95,6 @@ -
      develop branch
      @@ -79,6 +78,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -95,7 +95,6 @@ -
      develop branch
      @@ -445,6 +444,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -461,7 +461,6 @@ -
      develop branch
      @@ -75,6 +74,7 @@
    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -91,7 +91,6 @@ -
      develop branch
      @@ -861,6 +860,7 @@ instead of pk and slug.

    • 0.9.5 (v0.9.5 branch)
    • +
      @@ -877,7 +877,6 @@ instead of pk and slug.

      -
      develop branch
      @@ -86,10 +85,6 @@
    • (evennia.comms.models.Msg method)
    • (evennia.comms.models.TempMsg method) -
    • -
    • (evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage method) -
    • -
    • (evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3StorageFile method)
    • (evennia.contrib.barter.TradeHandler method)
    • @@ -100,10 +95,6 @@
    • (evennia.contrib.building_menu.CmdNoInput method)
    • (evennia.contrib.building_menu.CmdNoMatch method) -
    • -
    • (evennia.contrib.crafting.crafting.CraftingRecipe method) -
    • -
    • (evennia.contrib.crafting.crafting.CraftingRecipeBase method)
    • (evennia.contrib.evscaperoom.state.BaseState method)
    • @@ -116,12 +107,6 @@
    • (evennia.contrib.rpsystem.RecogHandler method)
    • (evennia.contrib.rpsystem.SdescHandler method) -
    • -
    • (evennia.contrib.traits.Trait method) -
    • -
    • (evennia.contrib.traits.TraitException method) -
    • -
    • (evennia.contrib.traits.TraitHandler method)
    • (evennia.contrib.unixcommand.UnixCommand method)
    • @@ -214,6 +199,10 @@
    • (evennia.server.profiling.dummyrunner.DummyFactory method)
    • (evennia.server.server.Evennia method) +
    • +
    • (evennia.server.serversession.NAttributeHandler method) +
    • +
    • (evennia.server.serversession.NDbHolder method)
    • (evennia.server.serversession.ServerSession method)
    • @@ -235,15 +224,7 @@
    • (evennia.typeclasses.attributes.AttributeHandler method)
    • -
    • (evennia.typeclasses.attributes.DbHolder method) -
    • -
    • (evennia.typeclasses.attributes.IAttributeBackend method) -
    • -
    • (evennia.typeclasses.attributes.InMemoryAttribute method) -
    • -
    • (evennia.typeclasses.attributes.InMemoryAttributeBackend method) -
    • -
    • (evennia.typeclasses.attributes.ModelAttributeBackend method) +
    • (evennia.typeclasses.attributes.NAttributeHandler method)
    • (evennia.typeclasses.attributes.NickHandler method)
    • @@ -333,15 +314,11 @@
    • (evennia.server.serversession.ServerSession method)
    • -
    • (evennia.typeclasses.attributes.IAttribute method) +
    • (evennia.typeclasses.attributes.Attribute method)
    • (evennia.typeclasses.models.TypedObject method)
    • -
    • access_key (evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage attribute) -
    • -
    • access_key_names (evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage attribute) -
    • access_type (evennia.web.website.views.ChannelMixin attribute)
    • -
    • AliasFilter (class in evennia.web.api.filters) -
    • AliasHandler (class in evennia.typeclasses.tags)
    • all() (evennia.commands.cmdsethandler.CmdSetHandler method) @@ -1144,8 +1107,6 @@
    • (evennia.contrib.random_string_generator.RandomStringGenerator method)
    • (evennia.contrib.rpsystem.RecogHandler method) -
    • -
    • (evennia.contrib.traits.TraitHandler property)
    • (evennia.locks.lockhandler.LockHandler method)
    • @@ -1156,10 +1117,14 @@
    • (evennia.scripts.scripthandler.ScriptHandler method)
    • (evennia.scripts.tickerhandler.TickerHandler method) +
    • +
    • (evennia.server.serversession.NAttributeHandler method) +
    • +
    • (evennia.server.serversession.NDbHolder property)
    • (evennia.typeclasses.attributes.AttributeHandler method)
    • -
    • (evennia.typeclasses.attributes.DbHolder property) +
    • (evennia.typeclasses.attributes.NAttributeHandler method)
    • (evennia.typeclasses.tags.TagHandler method)
    • @@ -1203,10 +1168,6 @@
    • allHeadersReceived() (evennia.server.webserver.HTTPChannelWithXForwardedFor method) -
    • -
    • allow_extra_properties (evennia.contrib.traits.Trait attribute) -
    • -
    • allow_reuse (evennia.contrib.crafting.crafting.CraftingRecipeBase attribute)
    • allowedMethods (evennia.server.portal.webclient_ajax.AjaxWebClient attribute)
    • @@ -1328,8 +1289,6 @@
    • (evennia.contrib.clothing.CmdGive attribute)
    • (evennia.contrib.clothing.CmdInventory attribute) -
    • -
    • (evennia.contrib.crafting.crafting.CmdCraft attribute)
    • (evennia.contrib.evscaperoom.commands.CmdEmote attribute)
    • @@ -1522,8 +1481,6 @@
    • (evennia.contrib.chargen.OOCCmdSetCharGen method)
    • (evennia.contrib.clothing.ClothedCharacterCmdSet method) -
    • -
    • (evennia.contrib.crafting.crafting.CraftingCmdSet method)
    • (evennia.contrib.dice.DiceCmdSet method)
    • @@ -1897,9 +1854,9 @@
    • (evennia.contrib.tutorial_world.objects.TutorialReadable method)
    • -
    • (evennia.contrib.tutorial_world.objects.TutorialWeapon method) +
    • (evennia.contrib.tutorial_world.objects.Weapon method)
    • -
    • (evennia.contrib.tutorial_world.objects.TutorialWeaponRack method) +
    • (evennia.contrib.tutorial_world.objects.WeaponRack method)
    • (evennia.contrib.tutorial_world.rooms.BridgeRoom method)
    • @@ -1975,17 +1932,9 @@
    • at_post_disconnect() (evennia.accounts.accounts.DefaultAccount method) - -
    • at_post_login() (evennia.accounts.accounts.DefaultAccount method) - -
    • at_post_portal_sync() (evennia.server.server.Evennia method)
    • at_post_puppet() (evennia.contrib.ingame_python.typeclasses.EventCharacter method) @@ -2157,8 +2106,6 @@
    • at_server_shutdown() (evennia.accounts.accounts.DefaultAccount method)
    • -
    • AttributeSerializer (class in evennia.web.api.serializers) -
    • -
    • AttributeSerializer.Meta (class in evennia.web.api.serializers) -
    • attrtype() (evennia.typeclasses.attributes.Attribute property) - -
    • audit() (evennia.contrib.security.auditing.server.AuditedServerSession method)
    • AuditedServerSession (class in evennia.contrib.security.auditing.server) @@ -2305,16 +2244,12 @@
    • authenticate() (evennia.accounts.accounts.DefaultAccount class method)
    • authenticated_response (evennia.web.website.tests.EvenniaWebTest attribute)
    • author() (evennia.contrib.ingame_python.callbackhandler.Callback property) -
    • -
    • auto_create_bucket (evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage attribute)
    • auto_help (evennia.commands.command.Command attribute) @@ -2334,12 +2269,6 @@

      B

      - + + - + - - +
      -
    • BaseTypeclassFilterSet (class in evennia.web.api.filters) -
    • batch_add() (evennia.typeclasses.attributes.AttributeHandler method)
    • @@ -2450,8 +2351,6 @@
    • BatchCodeProcessor (class in evennia.utils.batchprocessors)
    • -
      +
    • category() (evennia.typeclasses.attributes.Attribute property) - -
    • Category.DoesNotExist
    • Category.MultipleObjectsReturned @@ -2798,8 +2687,6 @@
    • (class in evennia.web.website.views)
    • -
    • CharacterViewSet (class in evennia.web.api.views) -
    • check() (evennia.locks.lockhandler.LockHandler method)
    • -
    • clear_attributes() (evennia.typeclasses.attributes.IAttributeBackend method) -
    • clear_client_lists() (evennia.server.profiling.tests.TestDummyrunnerSettings method)
    • clear_contents() (evennia.objects.objects.DefaultObject method)
    • clear_exits() (evennia.objects.objects.DefaultObject method) -
    • -
    • client_class (evennia.web.api.tests.TestEvenniaRESTApi attribute)
    • client_disconnect() (evennia.server.portal.webclient_ajax.AjaxWebClient method) +
    • +
    • client_height() (evennia.commands.command.Command method)
    • client_options() (in module evennia.server.inputfuncs)
    • @@ -2942,12 +2825,8 @@
    • Climbable.MultipleObjectsReturned
    • -
    • close() (evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3StorageFile method) - -
    • close_lid() (evennia.contrib.tutorial_examples.red_button.RedButton method)
    • close_menu() (evennia.contrib.tutorial_world.intro_menu.TutorialEvMenu method) @@ -3073,8 +2952,6 @@
    • CmdCover (class in evennia.contrib.clothing)
    • CmdCpAttr (class in evennia.commands.default.building) -
    • -
    • CmdCraft (class in evennia.contrib.crafting.crafting)
    • CmdCreate (class in evennia.commands.default.building)
    • @@ -3214,6 +3091,8 @@
    • CmdInterrupt (class in evennia.commands.default.tests)
    • +
      -
    • connection() (evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage property) -
    • connection_time() (evennia.accounts.accounts.DefaultAccount property)
        @@ -3704,34 +3577,6 @@
    • ConnectionWizard (class in evennia.server.connection_wizard)
    • -
    • consumable_names (evennia.contrib.crafting.crafting.CraftingRecipe attribute) -
    • -
    • consumable_tag_category (evennia.contrib.crafting.crafting.CraftingRecipe attribute) -
    • -
    • consumable_tags (evennia.contrib.crafting.crafting.CraftingRecipe attribute) - -
    • consume_flag (evennia.contrib.evscaperoom.objects.BaseConsumable attribute)
    • -
    • consume_on_fail (evennia.contrib.crafting.crafting.CraftingRecipe attribute) -
    • Container (class in evennia.utils.containers)
    • contents() (evennia.objects.objects.DefaultObject property) @@ -3793,30 +3636,10 @@
    • count_queries() (in module evennia.server.profiling.test_queries)
    • counter() (evennia.server.profiling.dummyrunner.DummyClient method) -
    • -
    • CounterTrait (class in evennia.contrib.traits) -
    • -
    • craft() (evennia.contrib.crafting.crafting.CraftingRecipeBase method) - -
    • -
    • CraftingCmdSet (class in evennia.contrib.crafting.crafting) -
    • -
    • CraftingError -
    • -
    • CraftingRecipe (class in evennia.contrib.crafting.crafting) -
    • -
    • CraftingRecipeBase (class in evennia.contrib.crafting.crafting) -
    • -
    • CraftingValidationError
    • create() (evennia.accounts.accounts.DefaultAccount class method)
    • create_account() (in module evennia.utils.create) -
    • -
    • create_attribute() (evennia.typeclasses.attributes.IAttributeBackend method)
    • create_channel() (in module evennia.utils.create)
    • @@ -3894,23 +3715,13 @@
    • (in module evennia.utils.utils)
    • -
    • CrucibleSteelRecipe (class in evennia.contrib.crafting.example_recipes) -
    • CrumblingWall (class in evennia.contrib.tutorial_world.objects)
    • CrumblingWall.DoesNotExist
    • CrumblingWall.MultipleObjectsReturned
    • -
    • current() (evennia.contrib.traits.CounterTrait property) - -
    • current_choice() (evennia.contrib.building_menu.BuildingMenu property) -
    • -
    • custom_domain (evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage attribute)
    • custom_gametime() (in module evennia.contrib.custom_gametime)
    • @@ -3994,8 +3805,6 @@ -
    • DbHolder (class in evennia.typeclasses.attributes) -
    • dbid() (evennia.typeclasses.models.TypedObject property)
    • dbid_to_obj() (in module evennia.utils.utils) @@ -4256,16 +4063,8 @@
    • (evennia.web.website.forms.ObjectForm attribute)
    • -
    • declared_filters (evennia.web.api.filters.AccountDBFilterSet attribute) - -
    • +
      -
    • default_acl (evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage attribute) -
    • default_confirm (evennia.commands.default.building.CmdDestroy attribute)
    • -
      -
    • delete_attribute() (evennia.typeclasses.attributes.IAttributeBackend method) -
    • delete_default() (evennia.commands.cmdsethandler.CmdSetHandler method)
    • delete_prototype() (in module evennia.prototypes.prototypes) @@ -4428,26 +4195,8 @@
    • deny() (in module evennia.contrib.ingame_python.eventfuncs)
    • -
    • desc() (evennia.contrib.traits.CounterTrait method) - -
    • -
    • description (evennia.web.api.views.AccountDBViewSet attribute) - -
    • DescValidateError
    • deserialize() (evennia.utils.optionclasses.BaseOption method) @@ -4480,22 +4229,6 @@
    • destroy_components (evennia.contrib.evscaperoom.objects.Combinable attribute)
    • -
    • destroy_locks (evennia.web.api.permissions.EvenniaPermission attribute) -
    • -
    • detail (evennia.web.api.views.AccountDBViewSet attribute) - -
    • detail_color (evennia.commands.default.building.CmdExamine attribute)
    • DiceCmdSet (class in evennia.contrib.dice) @@ -4586,46 +4319,6 @@
    • do_attack() (evennia.contrib.tutorial_world.mob.Mob method)
    • -
    • do_batch_delete() (evennia.typeclasses.attributes.IAttributeBackend method) -
    • -
    • do_batch_finish() (evennia.typeclasses.attributes.IAttributeBackend method) - -
    • -
    • do_batch_update_attribute() (evennia.typeclasses.attributes.IAttributeBackend method) - -
    • -
    • do_craft() (evennia.contrib.crafting.crafting.CraftingRecipe method) - -
    • -
    • do_create_attribute() (evennia.typeclasses.attributes.IAttributeBackend method) - -
    • -
    • do_delete_attribute() (evennia.typeclasses.attributes.IAttributeBackend method) - -
    • do_gmcp() (evennia.server.portal.telnet_oob.TelnetOOB method)
    • do_hunting() (evennia.contrib.tutorial_world.mob.Mob method) @@ -4652,14 +4345,6 @@
    • do_unpickle() (in module evennia.utils.dbserialize)
    • -
    • do_update_attribute() (evennia.typeclasses.attributes.IAttributeBackend method) - -
    • DoNothing (class in evennia.scripts.scripts)
    • DoNothing.DoesNotExist @@ -4735,20 +4420,14 @@
    • encode_gmcp() (evennia.server.portal.telnet_oob.TelnetOOB method)
    • encode_msdp() (evennia.server.portal.telnet_oob.TelnetOOB method) -
    • -
    • encryption (evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage attribute)
    • END() (in module evennia.contrib.talking_npc) -
    • -
    • endpoint_url (evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage attribute)
    • endswith() (evennia.utils.ansi.ANSIString method)
    • enter() (evennia.contrib.building_menu.Choice method)
    • enter_wilderness() (in module evennia.contrib.wilderness) -
    • -
    • entries() (evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage property)
    • entrytext() (evennia.help.models.HelpEntry property)
    • @@ -4759,20 +4438,8 @@
    • error() (evennia.server.profiling.dummyrunner.DummyClient method)
    • error_check_python_modules() (in module evennia.server.evennia_launcher) -
    • -
    • error_consumable_excess_message (evennia.contrib.crafting.crafting.CraftingRecipe attribute) -
    • -
    • error_consumable_missing_message (evennia.contrib.crafting.crafting.CraftingRecipe attribute) -
    • -
    • error_consumable_order_message (evennia.contrib.crafting.crafting.CraftingRecipe attribute)
    • error_msg (evennia.server.throttle.Throttle attribute) -
    • -
    • error_tool_excess_message (evennia.contrib.crafting.crafting.CraftingRecipe attribute) -
    • -
    • error_tool_missing_message (evennia.contrib.crafting.crafting.CraftingRecipe attribute) -
    • -
    • error_tool_order_message (evennia.contrib.crafting.crafting.CraftingRecipe attribute)
    • errors (evennia.server.evennia_launcher.MsgLauncher2Portal attribute) @@ -5063,20 +4730,6 @@
    • -
    • - evennia.contrib.awsstorage.aws_s3_cdn - -
    • -
    • - evennia.contrib.awsstorage.tests - -
    • @@ -5119,27 +4772,6 @@
    • -
    • - evennia.contrib.crafting.crafting - -
    • -
    • - evennia.contrib.crafting.example_recipes - -
    • -
    • - evennia.contrib.crafting.tests - -
    • @@ -5413,20 +5045,6 @@
    • -
    • - evennia.contrib.test_traits - -
    • -
    • - evennia.contrib.traits - -
    • @@ -5497,13 +5115,6 @@
    • -
    • - evennia.contrib.tutorial_examples.mirror - -
    • @@ -5716,8 +5327,6 @@
    • module
    • -
      • evennia.scripts.models @@ -5732,6 +5341,8 @@
      • module
      +
    • ExhaustedGenerator -
    • -
    • exists() (evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage method)
    • exit_command (evennia.objects.objects.DefaultExit attribute)
    • @@ -6671,8 +6224,6 @@
    • ExitCommand (class in evennia.objects.objects)
    • exits() (evennia.objects.objects.DefaultObject property) -
    • -
    • ExitViewSet (class in evennia.web.api.views)
    • expandtabs() (evennia.utils.ansi.ANSIString method)
    • @@ -6720,8 +6271,6 @@
    • (evennia.accounts.bots.IRCBot attribute)
    • -
    • failure_message (evennia.contrib.crafting.crafting.CraftingRecipe attribute) -
    • false() (in module evennia.locks.lockfuncs)
    • Feelable (class in evennia.contrib.evscaperoom.objects) @@ -6758,24 +6307,6 @@
    • (evennia.typeclasses.admin.TagAdmin attribute)
    • (evennia.typeclasses.admin.TagForm.Meta attribute) -
    • -
    • (evennia.web.api.filters.AccountDBFilterSet.Meta attribute) -
    • -
    • (evennia.web.api.filters.ObjectDBFilterSet.Meta attribute) -
    • -
    • (evennia.web.api.filters.ScriptDBFilterSet.Meta attribute) -
    • -
    • (evennia.web.api.serializers.AccountSerializer.Meta attribute) -
    • -
    • (evennia.web.api.serializers.AttributeSerializer.Meta attribute) -
    • -
    • (evennia.web.api.serializers.ObjectDBSerializer.Meta attribute) -
    • -
    • (evennia.web.api.serializers.ScriptDBSerializer.Meta attribute) -
    • -
    • (evennia.web.api.serializers.SimpleObjectDBSerializer.Meta attribute) -
    • -
    • (evennia.web.api.serializers.TagSerializer.Meta attribute)
    • (evennia.web.website.forms.AccountForm.Meta attribute)
    • @@ -6798,30 +6329,10 @@
    • (evennia.scripts.admin.ScriptDBAdmin attribute)
    • -
    • file() (evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3StorageFile property) -
    • -
    • file_name_charset (evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage attribute) -
    • -
    • file_overwrite (evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage attribute) -
    • fill() (in module evennia.utils.evtable)
    • -
    • filter() (evennia.web.api.filters.TagTypeFilter method) -
    • -
    • filter_backends (evennia.web.api.views.TypeclassViewSetMixin attribute) -
    • -
    • filter_name() (evennia.web.api.filters.BaseTypeclassFilterSet static method) -
    • -
    • filterset_class (evennia.web.api.views.AccountDBViewSet attribute) - -
    • find() (evennia.utils.ansi.ANSIString method) @@ -6901,14 +6412,12 @@
    • format_diff() (in module evennia.prototypes.spawner)
    • format_external() (evennia.comms.comms.DefaultChannel method) -
    • -
    • format_grid() (in module evennia.utils.utils)
    • format_help() (evennia.contrib.unixcommand.UnixCommandParser method)
    • format_help_entry() (evennia.commands.default.help.CmdHelp static method)
    • -
    • format_help_list() (evennia.commands.default.help.CmdHelp method) +
    • format_help_list() (evennia.commands.default.help.CmdHelp static method)
    • format_message() (evennia.comms.comms.DefaultChannel method)
    • @@ -7182,8 +6691,6 @@
    • (evennia.contrib.clothing.CmdUncover method)
    • (evennia.contrib.clothing.CmdWear method) -
    • -
    • (evennia.contrib.crafting.crafting.CmdCraft method)
    • (evennia.contrib.dice.CmdDice method)
    • @@ -7469,8 +6976,6 @@
    • GametimeScript.DoesNotExist
    • GametimeScript.MultipleObjectsReturned -
    • -
    • GaugeTrait (class in evennia.contrib.traits)
    • GenderCharacter (class in evennia.contrib.gendersub)
    • @@ -7479,8 +6984,6 @@
    • GenderCharacter.MultipleObjectsReturned
    • general_context() (in module evennia.web.utils.general_context) -
    • -
    • generate_sessid() (evennia.server.portal.portalsessionhandler.PortalSessionHandler method)
    • GenericBuildingCmd (class in evennia.contrib.building_menu)
    • @@ -7500,8 +7003,6 @@
    • (evennia.contrib.rpsystem.RecogHandler method)
    • (evennia.contrib.rpsystem.SdescHandler method) -
    • -
    • (evennia.contrib.traits.TraitHandler method)
    • (evennia.locks.lockhandler.LockHandler method)
    • @@ -7510,6 +7011,8 @@
    • (evennia.objects.objects.ObjectSessionHandler method)
    • (evennia.scripts.scripthandler.ScriptHandler method) +
    • +
    • (evennia.server.serversession.NAttributeHandler method)
    • (evennia.server.sessionhandler.SessionHandler method)
    • @@ -7517,7 +7020,7 @@
    • (evennia.typeclasses.attributes.AttributeHandler method)
    • -
    • (evennia.typeclasses.attributes.IAttributeBackend method) +
    • (evennia.typeclasses.attributes.NAttributeHandler method)
    • (evennia.typeclasses.attributes.NickHandler method)
    • @@ -7552,11 +7055,7 @@
    • get_alias() (evennia.typeclasses.managers.TypedObjectManager method)
    • -
    • get_aliases() (evennia.web.api.serializers.TypeclassSerializerMixin static method) -
    • -
    • get_all() (evennia.typeclasses.attributes.DbHolder method) -
    • -
    • get_all_attributes() (evennia.typeclasses.attributes.IAttributeBackend method) +
    • get_all() (evennia.server.serversession.NDbHolder method)
    • get_all_cached_instances() (evennia.utils.idmapper.models.SharedMemoryModel class method)
    • @@ -7593,12 +7092,6 @@
    • get_attr() (evennia.commands.default.building.CmdCpAttr method)
    • get_attribute() (evennia.typeclasses.managers.TypedObjectManager method) -
    • -
    • get_attributes() (evennia.web.api.serializers.TypeclassSerializerMixin static method) -
    • -
    • get_available_name() (evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage method) -
    • -
    • get_available_overwrite_name() (in module evennia.contrib.awsstorage.aws_s3_cdn)
    • get_buffer() (evennia.utils.eveditor.EvEditor method)
    • @@ -7611,8 +7104,6 @@
    • get_by_permission() (evennia.typeclasses.managers.TypedObjectManager method)
    • get_by_tag() (evennia.typeclasses.managers.TypedObjectManager method) -
    • -
    • get_cache_key() (evennia.server.throttle.Throttle method)
    • get_cached_instance() (evennia.utils.idmapper.models.SharedMemoryModel class method)
    • @@ -7660,8 +7151,6 @@
    • (evennia.commands.default.muxcommand.MuxCommand method)
    • -
    • get_contents() (evennia.web.api.serializers.ObjectDBSerializer static method) -
    • get_context_data() (evennia.web.website.views.ChannelDetailView method)
    • -
    • get_nicks() (evennia.web.api.serializers.TypeclassSerializerMixin static method) -
    • get_numbered_name() (evennia.objects.objects.DefaultObject method)
    • get_obj_coordinates() (evennia.contrib.wilderness.WildernessScript method) @@ -7868,15 +7351,11 @@
    • (evennia.web.website.views.ObjectDetailView method)
    • -
    • get_object_parameters() (evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage method) -
    • get_objs_at_coordinates() (evennia.contrib.wilderness.WildernessScript method)
    • get_other() (evennia.contrib.barter.TradeHandler method)
    • get_permission() (evennia.typeclasses.managers.TypedObjectManager method) -
    • -
    • get_permissions() (evennia.web.api.serializers.TypeclassSerializerMixin static method)
    • get_pid() (in module evennia.server.evennia_launcher)
    • @@ -7932,8 +7411,6 @@
    • (evennia.contrib.rpsystem.SdescHandler method)
    • -
    • get_session_ids() (evennia.web.api.serializers.AccountSerializer static method) -
    • get_sessions() (evennia.server.sessionhandler.SessionHandler method)
    • get_short_desc() (evennia.contrib.evscaperoom.objects.EvscaperoomObject method) @@ -7949,10 +7426,6 @@
    • get_system_cmds() (evennia.commands.cmdset.CmdSet method)
    • get_tag() (evennia.typeclasses.managers.TypedObjectManager method) -
    • -
    • get_tag_query() (in module evennia.web.api.filters) -
    • -
    • get_tags() (evennia.web.api.serializers.TypeclassSerializerMixin static method)
    • get_time_and_season() (evennia.contrib.extended_room.ExtendedRoom method)
    • @@ -7963,8 +7436,6 @@
    • get_username_validators() (evennia.accounts.accounts.DefaultAccount class method)
    • get_value() (in module evennia.server.inputfuncs) -
    • -
    • get_value_display() (evennia.web.api.serializers.AttributeSerializer static method)
    • get_variable() (evennia.contrib.ingame_python.callbackhandler.CallbackHandler method) @@ -7972,8 +7443,6 @@
    • (evennia.contrib.ingame_python.scripts.EventHandler method)
    • -
    • get_view_details() (evennia.web.api.tests.TestEvenniaRESTApi method) -
    • get_width() (evennia.utils.evtable.EvCell method)
    • get_worn_clothes() (in module evennia.contrib.clothing) @@ -8025,10 +7494,6 @@
    • GrapevineClient (class in evennia.server.portal.grapevine)
    • groups (evennia.accounts.models.AccountDB attribute) -
    • -
    • gzip (evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage attribute) -
    • -
    • gzip_content_types (evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage attribute)
    • @@ -8063,11 +7528,13 @@
    • has() (evennia.commands.cmdsethandler.CmdSetHandler method)
    • has_account() (evennia.objects.objects.DefaultObject property) @@ -8081,14 +7548,10 @@
    • has_connection() (evennia.comms.comms.DefaultChannel method)
    • has_consumed() (evennia.contrib.evscaperoom.objects.BaseConsumable method) -
    • -
    • has_object_permission() (evennia.web.api.permissions.EvenniaPermission method)
    • has_parent() (in module evennia.utils.utils)
    • has_perm() (evennia.commands.default.muxcommand.MuxCommand method) -
    • -
    • has_permission() (evennia.web.api.permissions.EvenniaPermission method)
    • HasButtons (class in evennia.contrib.evscaperoom.objects)
    • @@ -8350,8 +7813,6 @@
    • (evennia.contrib.clothing.CmdUncover attribute)
    • (evennia.contrib.clothing.CmdWear attribute) -
    • -
    • (evennia.contrib.crafting.crafting.CmdCraft attribute)
    • (evennia.contrib.dice.CmdDice attribute)
    • @@ -8694,10 +8155,6 @@

      I

      -
    • maxDiff (evennia.contrib.crafting.tests.TestCraftingRecipe attribute) - -
    • Mccp (class in evennia.server.portal.mccp)
    • mccp_compress() (in module evennia.server.portal.mccp) @@ -11044,17 +10449,7 @@
    • message_transform() (evennia.comms.comms.DefaultChannel method)
    • -
    • min() (evennia.contrib.traits.CounterTrait property) - -
    • min_shortcut (evennia.contrib.building_menu.BuildingMenu attribute) -
    • -
    • MINIMUM_CREATE_PERMISSION (evennia.web.api.permissions.EvenniaPermission attribute) -
    • -
    • MINIMUM_LIST_PERMISSION (evennia.web.api.permissions.EvenniaPermission attribute)
    • Mixable (class in evennia.contrib.evscaperoom.objects)
    • @@ -11076,14 +10471,6 @@
    • mockdelay() (in module evennia.utils.test_resources)
    • -
    • mod() (evennia.contrib.traits.CounterTrait property) - -
    • mod_import() (in module evennia.utils.utils)
    • mod_import_from_path() (in module evennia.utils.utils) @@ -11132,24 +10519,6 @@
    • (evennia.typeclasses.admin.AttributeInline attribute)
    • (evennia.typeclasses.admin.TagInline attribute) -
    • -
    • (evennia.web.api.filters.AccountDBFilterSet.Meta attribute) -
    • -
    • (evennia.web.api.filters.ObjectDBFilterSet.Meta attribute) -
    • -
    • (evennia.web.api.filters.ScriptDBFilterSet.Meta attribute) -
    • -
    • (evennia.web.api.serializers.AccountSerializer.Meta attribute) -
    • -
    • (evennia.web.api.serializers.AttributeSerializer.Meta attribute) -
    • -
    • (evennia.web.api.serializers.ObjectDBSerializer.Meta attribute) -
    • -
    • (evennia.web.api.serializers.ScriptDBSerializer.Meta attribute) -
    • -
    • (evennia.web.api.serializers.SimpleObjectDBSerializer.Meta attribute) -
    • -
    • (evennia.web.api.serializers.TagSerializer.Meta attribute)
    • (evennia.web.website.forms.AccountForm.Meta attribute)
    • @@ -11175,14 +10544,6 @@
    • model() (evennia.typeclasses.attributes.Attribute property) - -
    • -
    • ModelAttributeBackend (class in evennia.typeclasses.attributes) -
    • -
    • modified_time() (evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage method)
    • module @@ -11261,10 +10622,6 @@
    • evennia.contrib
    • evennia.contrib.awsstorage -
    • -
    • evennia.contrib.awsstorage.aws_s3_cdn -
    • -
    • evennia.contrib.awsstorage.tests
    • evennia.contrib.barter
    • @@ -11277,12 +10634,6 @@
    • evennia.contrib.color_markups
    • evennia.contrib.crafting -
    • -
    • evennia.contrib.crafting.crafting -
    • -
    • evennia.contrib.crafting.example_recipes -
    • -
    • evennia.contrib.crafting.tests
    • evennia.contrib.custom_gametime
    • @@ -11361,10 +10712,6 @@
    • evennia.contrib.slow_exit
    • evennia.contrib.talking_npc -
    • -
    • evennia.contrib.test_traits -
    • -
    • evennia.contrib.traits
    • evennia.contrib.tree_select
    • @@ -11385,8 +10732,6 @@
    • evennia.contrib.tutorial_examples.bodyfunctions
    • evennia.contrib.tutorial_examples.cmdset_red_button -
    • -
    • evennia.contrib.tutorial_examples.mirror
    • evennia.contrib.tutorial_examples.red_button
    • @@ -11631,18 +10976,6 @@
    • evennia.web
    • evennia.web.api -
    • -
    • evennia.web.api.filters -
    • -
    • evennia.web.api.permissions -
    • -
    • evennia.web.api.serializers -
    • -
    • evennia.web.api.tests -
    • -
    • evennia.web.api.urls -
    • -
    • evennia.web.api.views
    • evennia.web.urls
    • @@ -11721,14 +11054,10 @@
    • (evennia.commands.command.Command method)
    • (evennia.comms.comms.DefaultChannel method) -
    • -
    • (evennia.contrib.crafting.crafting.CraftingRecipeBase method)
    • (evennia.contrib.evscaperoom.state.BaseState method)
    • (evennia.contrib.gendersub.GenderCharacter method) -
    • -
    • (evennia.contrib.tutorial_examples.mirror.TutorialMirror method)
    • (evennia.objects.objects.DefaultObject method)
    • @@ -11807,33 +11136,9 @@

      N

      - +
    • no_gmcp() (evennia.server.portal.telnet_oob.TelnetOOB method)
    • -
      +
      • node_apply_diff() (in module evennia.prototypes.menus)
      • node_border_char (evennia.contrib.evscaperoom.menu.EvscaperoomMenu attribute) @@ -12092,8 +11391,6 @@
      • none() (in module evennia.locks.lockfuncs)
      • normal (evennia.utils.text2html.TextToHTMLparser attribute) -
      • -
      • normalize_name() (evennia.objects.objects.DefaultCharacter class method)
      • normalize_username() (evennia.accounts.accounts.DefaultAccount class method)
      • @@ -12111,8 +11408,6 @@

        O

        - + - + + - @@ -17171,6 +15262,7 @@
      • 0.9.5 (v0.9.5 branch)
      • +
        @@ -17187,7 +15279,6 @@ -
        develop branch
        @@ -133,6 +132,7 @@ off using v0.9.5 of the docs, or the original wiki. You have been warned.

      • 0.9.5 (v0.9.5 branch)
      • +
        @@ -152,7 +152,6 @@ off using v0.9.5 of the docs, or the original wiki. You have been warned.

        -
        develop branch
        @@ -237,16 +236,6 @@
        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      • ObjectDBAdmin (class in evennia.objects.admin) -
      • -
      • ObjectDBFilterSet (class in evennia.web.api.filters) -
      • -
      • ObjectDBFilterSet.Meta (class in evennia.web.api.filters) -
      • -
      • ObjectDBSerializer (class in evennia.web.api.serializers) -
      • -
      • ObjectDBSerializer.Meta (class in evennia.web.api.serializers) -
      • -
      • ObjectDBViewSet (class in evennia.web.api.views)
      • ObjectDeleteView (class in evennia.web.website.views)
      • @@ -12379,32 +11662,6 @@
      • (evennia.server.admin.ServerConfigAdmin attribute)
      • (evennia.typeclasses.models.TypedObject.Meta attribute) -
      • - -
      • output_names (evennia.contrib.crafting.crafting.CraftingRecipe attribute) -
      • -
      • output_prototypes (evennia.contrib.crafting.crafting.CraftingRecipe attribute) - -
      • OutroRoom (class in evennia.contrib.tutorial_world.rooms) @@ -12505,8 +11762,6 @@
      • (evennia.comms.channelhandler.ChannelCommand method)
      • (evennia.contrib.barter.CmdTradeBase method) -
      • -
      • (evennia.contrib.crafting.crafting.CmdCraft method)
      • (evennia.contrib.email_login.CmdUnconnectedCreate method)
      • @@ -12586,8 +11841,6 @@
      • path (evennia.accounts.accounts.DefaultAccount attribute)
      • -
      • preload_metadata (evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage attribute) -
      • press_button() (evennia.contrib.tutorial_examples.red_button.RedButton method)
      • print_debug_info() (evennia.utils.evmenu.EvMenu method) @@ -13119,7 +12338,7 @@
      • process_sdesc() (evennia.contrib.rpsystem.ContribRPCharacter method)
      • -
      • produce_weapon() (evennia.contrib.tutorial_world.objects.TutorialWeaponRack method) +
      • produce_weapon() (evennia.contrib.tutorial_world.objects.WeaponRack method)
      • progress() (evennia.contrib.evscaperoom.room.EvscapeRoom method)
      • @@ -13144,8 +12363,6 @@
      • prototype_to_str() (in module evennia.prototypes.prototypes)
      • PrototypeEvMore (class in evennia.prototypes.prototypes) -
      • -
      • proxies (evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage attribute)
      • puppet() (evennia.accounts.accounts.DefaultAccount property)
      • @@ -13169,55 +12386,13 @@
        -
      • RawhideRecipe (class in evennia.contrib.crafting.example_recipes) -
      • re_bgfg (evennia.utils.text2html.TextToHTMLparser attribute)
      • re_bgs (evennia.utils.text2html.TextToHTMLparser attribute) @@ -13310,28 +12479,16 @@
      • re_unhilite (evennia.utils.text2html.TextToHTMLparser attribute)
      • re_url (evennia.utils.text2html.TextToHTMLparser attribute) -
      • -
      • read() (evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3StorageFile method)
      • read_batchfile() (in module evennia.utils.batchprocessors)
      • read_flag (evennia.contrib.evscaperoom.objects.Readable attribute)
      • -
      • read_only_fields (evennia.web.api.serializers.AccountSerializer.Meta attribute) - -
      • Readable (class in evennia.contrib.evscaperoom.objects)
      • Readable.DoesNotExist
      • Readable.MultipleObjectsReturned -
      • -
      • readline() (evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3StorageFile method)
      • readlines() (evennia.utils.logger.EvenniaLogFile method)
      • @@ -13371,15 +12528,11 @@
      • (evennia.server.portal.irc.IRCBotFactory method)
      • -
      • record_ip() (evennia.server.throttle.Throttle method) -
      • RedButton (class in evennia.contrib.tutorial_examples.red_button)
      • RedButton.DoesNotExist
      • RedButton.MultipleObjectsReturned -
      • -
      • reduced_redundancy (evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage attribute)
      • reformat() (evennia.utils.evtable.EvCell method) @@ -13394,8 +12547,6 @@
      • reformat_column() (evennia.utils.evtable.EvTable method)
      • regex_tuple_from_key_alias() (in module evennia.contrib.rpsystem) -
      • -
      • region_name (evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage attribute)
      • register_events() (in module evennia.contrib.ingame_python.utils)
      • @@ -13467,8 +12618,6 @@
      • (evennia.contrib.random_string_generator.RandomStringGenerator method)
      • (evennia.contrib.rpsystem.RecogHandler method) -
      • -
      • (evennia.contrib.traits.TraitHandler method)
      • (evennia.locks.lockhandler.LockHandler method)
      • @@ -13486,19 +12635,21 @@
      • (evennia.scripts.tickerhandler.TickerPool method)
      • -
      • (evennia.server.throttle.Throttle method) +
      • (evennia.server.serversession.NAttributeHandler method)
      • (evennia.typeclasses.attributes.AttributeHandler method) +
      • +
      • (evennia.typeclasses.attributes.NAttributeHandler method)
      • (evennia.typeclasses.attributes.NickHandler method)
      • (evennia.typeclasses.tags.TagHandler method)
      • -
        +
      • wrap_conflictual_object() (in module evennia.utils.picklefield)
      • -
      • write() (evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3StorageFile method) - -
      • WSGIWebServer (class in evennia.server.webserver)
      •     evennia.contrib.awsstorage
            - evennia.contrib.awsstorage.aws_s3_cdn -
            - evennia.contrib.awsstorage.tests -
            @@ -277,21 +266,6 @@     evennia.contrib.crafting
            - evennia.contrib.crafting.crafting -
            - evennia.contrib.crafting.example_recipes -
            - evennia.contrib.crafting.tests -
            @@ -487,16 +461,6 @@     evennia.contrib.talking_npc
            - evennia.contrib.test_traits -
            - evennia.contrib.traits -
            @@ -547,11 +511,6 @@     evennia.contrib.tutorial_examples.cmdset_red_button
            - evennia.contrib.tutorial_examples.mirror -
            @@ -1162,36 +1121,6 @@     evennia.web.api
            - evennia.web.api.filters -
            - evennia.web.api.permissions -
            - evennia.web.api.serializers -
            - evennia.web.api.tests -
            - evennia.web.api.urls -
            - evennia.web.api.views -
            @@ -1300,6 +1229,7 @@
      • 0.9.5 (v0.9.5 branch)
      • +
        @@ -1316,7 +1246,6 @@ -
        develop branch
        @@ -79,6 +78,7 @@
      • 0.9.5 (v0.9.5 branch)
      • +
        @@ -95,7 +95,6 @@ -
        develop branch
        @@ -271,7 +270,6 @@ -
        develop branch