diff --git a/docs/0.9.5/.buildinfo b/docs/0.9.5/.buildinfo index adb1ef5232..39bd3982c7 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: 849699392e3843d00e81647f20514c7c +config: b551fb2f64394b07a17d724af226d381 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 b30b5e4b7e..0b416338a5 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 @@ -503,11 +503,11 @@ shown in the next tutorial.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/API-refactoring.html b/docs/0.9.5/API-refactoring.html index bd123c9fce..8a540f9030 100644 --- a/docs/0.9.5/API-refactoring.html +++ b/docs/0.9.5/API-refactoring.html @@ -129,11 +129,11 @@ easier passthrough on extension.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Accounts.html b/docs/0.9.5/Accounts.html index 7a24808e9d..7018c2680f 100644 --- a/docs/0.9.5/Accounts.html +++ b/docs/0.9.5/Accounts.html @@ -179,11 +179,11 @@ any.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 04933fafbd..e55b71eca5 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 @@ -168,11 +168,11 @@ to.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 646565ce08..98ba7f3bce 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 @@ -316,11 +316,11 @@ necessary. If you’re interested in supporting this little project, you are mo
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Adding-Command-Tutorial.html b/docs/0.9.5/Adding-Command-Tutorial.html index 07d23a7472..1bd1d3f4fd 100644 --- a/docs/0.9.5/Adding-Command-Tutorial.html +++ b/docs/0.9.5/Adding-Command-Tutorial.html @@ -241,11 +241,11 @@ default character cmdset defaults to being defined as

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Adding-Object-Typeclass-Tutorial.html b/docs/0.9.5/Adding-Object-Typeclass-Tutorial.html index 68da967c9d..d41e1c583b 100644 --- a/docs/0.9.5/Adding-Object-Typeclass-Tutorial.html +++ b/docs/0.9.5/Adding-Object-Typeclass-Tutorial.html @@ -189,11 +189,11 @@ objects you can use Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Administrative-Docs.html b/docs/0.9.5/Administrative-Docs.html index c01eda590f..e7588ce842 100644 --- a/docs/0.9.5/Administrative-Docs.html +++ b/docs/0.9.5/Administrative-Docs.html @@ -162,11 +162,11 @@ Settings

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Apache-Config.html b/docs/0.9.5/Apache-Config.html index 166c1e99a8..e1214c7b21 100644 --- a/docs/0.9.5/Apache-Config.html +++ b/docs/0.9.5/Apache-Config.html @@ -273,11 +273,11 @@ port but this should be applicable also to other types of proxies (like nginx).<
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -285,7 +285,6 @@ 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 f1ee0ff541..1078636710 100644 --- a/docs/0.9.5/Arxcode-installing-help.html +++ b/docs/0.9.5/Arxcode-installing-help.html @@ -329,11 +329,11 @@ on localhost at port 4000, and the webserver at Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Async-Process.html b/docs/0.9.5/Async-Process.html index 7149f2ea8f..bb262fff18 100644 --- a/docs/0.9.5/Async-Process.html +++ b/docs/0.9.5/Async-Process.html @@ -290,11 +290,11 @@ your own liking.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Attributes.html b/docs/0.9.5/Attributes.html index 6038288904..198ea9a45a 100644 --- a/docs/0.9.5/Attributes.html +++ b/docs/0.9.5/Attributes.html @@ -447,11 +447,11 @@ those will check for the Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Banning.html b/docs/0.9.5/Banning.html index 3a080f74cd..08d5f784eb 100644 --- a/docs/0.9.5/Banning.html +++ b/docs/0.9.5/Banning.html @@ -232,11 +232,11 @@ password of any account, including the superuser or admin accounts. This is a fe
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -244,7 +244,6 @@ 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 3f65c6ad7e..768bdbcf16 100644 --- a/docs/0.9.5/Batch-Code-Processor.html +++ b/docs/0.9.5/Batch-Code-Processor.html @@ -316,11 +316,11 @@ executed. When the code runs it has no knowledge of what file those strings wher
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -328,7 +328,6 @@ 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 97cf14f93d..9ec4c10293 100644 --- a/docs/0.9.5/Batch-Command-Processor.html +++ b/docs/0.9.5/Batch-Command-Processor.html @@ -259,11 +259,11 @@ mode instead, see its readme for install instructions.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Batch-Processors.html b/docs/0.9.5/Batch-Processors.html index 0125683cb1..e0ebb8d20d 100644 --- a/docs/0.9.5/Batch-Processors.html +++ b/docs/0.9.5/Batch-Processors.html @@ -152,11 +152,11 @@ allowed.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Bootstrap-&-Evennia.html b/docs/0.9.5/Bootstrap-&-Evennia.html index 0867dc3d7e..78f5013d7c 100644 --- a/docs/0.9.5/Bootstrap-&-Evennia.html +++ b/docs/0.9.5/Bootstrap-&-Evennia.html @@ -181,11 +181,11 @@ learn more about them, please Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Bootstrap-Components-and-Utilities.html b/docs/0.9.5/Bootstrap-Components-and-Utilities.html index 042d1019bf..684dd6017e 100644 --- a/docs/0.9.5/Bootstrap-Components-and-Utilities.html +++ b/docs/0.9.5/Bootstrap-Components-and-Utilities.html @@ -188,11 +188,11 @@ over Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Builder-Docs.html b/docs/0.9.5/Builder-Docs.html index 55817fd254..55a2d204f1 100644 --- a/docs/0.9.5/Builder-Docs.html +++ b/docs/0.9.5/Builder-Docs.html @@ -122,11 +122,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Building-Permissions.html b/docs/0.9.5/Building-Permissions.html index dd5f93a3ad..e681c18d2e 100644 --- a/docs/0.9.5/Building-Permissions.html +++ b/docs/0.9.5/Building-Permissions.html @@ -152,11 +152,11 @@ levels. Note that you cannot escalate your permissions this way; If the Characte
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -164,7 +164,6 @@ 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 79bd88e076..7249995556 100644 --- a/docs/0.9.5/Building-Quickstart.html +++ b/docs/0.9.5/Building-Quickstart.html @@ -345,11 +345,11 @@ World-Introduction).

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Building-a-mech-tutorial.html b/docs/0.9.5/Building-a-mech-tutorial.html index bd4eb09abe..0f8a0e1c13 100644 --- a/docs/0.9.5/Building-a-mech-tutorial.html +++ b/docs/0.9.5/Building-a-mech-tutorial.html @@ -312,11 +312,11 @@ shooting goodness would be made available to you only when you enter it.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -324,7 +324,6 @@ 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 4e128c87a9..80bbac94ed 100644 --- a/docs/0.9.5/Building-menus.html +++ b/docs/0.9.5/Building-menus.html @@ -1282,11 +1282,11 @@ exhaustive but user-friendly.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Choosing-An-SQL-Server.html b/docs/0.9.5/Choosing-An-SQL-Server.html index 6006af7e9c..9846e8abdf 100644 --- a/docs/0.9.5/Choosing-An-SQL-Server.html +++ b/docs/0.9.5/Choosing-An-SQL-Server.html @@ -320,11 +320,11 @@ others. If you try other databases out, consider expanding this page with instru
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -332,7 +332,6 @@ 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 1d3cac071e..37c2c79a85 100644 --- a/docs/0.9.5/Client-Support-Grid.html +++ b/docs/0.9.5/Client-Support-Grid.html @@ -241,11 +241,11 @@ parameter to disable it for that Evennia account permanently.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -253,7 +253,6 @@ 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 b4f2a3292b..b69879905a 100644 --- a/docs/0.9.5/Coding-FAQ.html +++ b/docs/0.9.5/Coding-FAQ.html @@ -456,11 +456,11 @@ discussion where some suitable fonts are suggested.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Coding-Introduction.html b/docs/0.9.5/Coding-Introduction.html index 057114569d..7b368c3a56 100644 --- a/docs/0.9.5/Coding-Introduction.html +++ b/docs/0.9.5/Coding-Introduction.html @@ -182,11 +182,11 @@ can’t find the answer in the docs, don’t be shy to ask questions! The
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -194,7 +194,6 @@ 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 be8f8994f2..fad16edc63 100644 --- a/docs/0.9.5/Coding-Utils.html +++ b/docs/0.9.5/Coding-Utils.html @@ -86,7 +86,7 @@ entities directly in code (for example when defining new create commands).

  • evennia.create_account

  • evennia.create_object

  • evennia.create_script

  • -
  • evennia.create_channel

  • +
  • evennia.create_channel

  • evennia.create_help_entry

  • evennia.create_message

  • @@ -388,11 +388,11 @@ instructions.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Command-Cooldown.html b/docs/0.9.5/Command-Cooldown.html index 9c51ec8a07..4524eaf30b 100644 --- a/docs/0.9.5/Command-Cooldown.html +++ b/docs/0.9.5/Command-Cooldown.html @@ -173,11 +173,11 @@ other types of attacks for a while before the warrior can recover.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -185,7 +185,6 @@ 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 e923362989..ec12a288d0 100644 --- a/docs/0.9.5/Command-Duration.html +++ b/docs/0.9.5/Command-Duration.html @@ -474,11 +474,11 @@ callback when the server comes back up (it will resume the countdown and ignore
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -486,7 +486,6 @@ 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 a80d66812b..52b818d387 100644 --- a/docs/0.9.5/Command-Prompt.html +++ b/docs/0.9.5/Command-Prompt.html @@ -202,11 +202,11 @@ directly the easiest way is to just wrap those with a multiple inheritance to yo
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -214,7 +214,6 @@ 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 309ecf3a2a..7e948541af 100644 --- a/docs/0.9.5/Command-Sets.html +++ b/docs/0.9.5/Command-Sets.html @@ -453,11 +453,11 @@ commands having any combination of the keys and/or aliases “kick”, “punch
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -465,7 +465,6 @@ 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 d8650eb6bd..079da3f871 100644 --- a/docs/0.9.5/Command-System.html +++ b/docs/0.9.5/Command-System.html @@ -84,11 +84,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Commands.html b/docs/0.9.5/Commands.html index a18c8c25fc..fb54015f74 100644 --- a/docs/0.9.5/Commands.html +++ b/docs/0.9.5/Commands.html @@ -738,11 +738,11 @@ on.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Communications.html b/docs/0.9.5/Communications.html index 13fa5ce666..2431dc46b2 100644 --- a/docs/0.9.5/Communications.html +++ b/docs/0.9.5/Communications.html @@ -196,11 +196,11 @@ for channel communication (since the default ChannelCommand instead logs to a fi
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -208,7 +208,6 @@ 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 ced33170ee..281e0efcd1 100644 --- a/docs/0.9.5/Connection-Screen.html +++ b/docs/0.9.5/Connection-Screen.html @@ -114,11 +114,11 @@ tutorial section on how to add new commands to a default command set.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -126,7 +126,6 @@ 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 2db23242ec..7682b351ef 100644 --- a/docs/0.9.5/Continuous-Integration.html +++ b/docs/0.9.5/Continuous-Integration.html @@ -341,11 +341,11 @@ build steps could be added or removed at this point, adding some features like U
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -353,7 +353,6 @@ 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 7d2a8336c0..248acc3f72 100644 --- a/docs/0.9.5/Contributing-Docs.html +++ b/docs/0.9.5/Contributing-Docs.html @@ -779,11 +779,11 @@ available at Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Contributing.html b/docs/0.9.5/Contributing.html index 428d4ae257..903c8777f1 100644 --- a/docs/0.9.5/Contributing.html +++ b/docs/0.9.5/Contributing.html @@ -195,11 +195,11 @@ UBBFWIuVDEZxC0M_2pM6ywO&dispatch=5885d80a13c0db1f8e263663d3faee8d66f31424b43
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -207,7 +207,6 @@ 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 11d040ce28..902f29920e 100644 --- a/docs/0.9.5/Coordinates.html +++ b/docs/0.9.5/Coordinates.html @@ -418,11 +418,11 @@ square (E, G, M and O) are not in this circle. So we remove them.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -430,7 +430,6 @@ 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 84c3c4d1ce..ddaacacd10 100644 --- a/docs/0.9.5/Custom-Protocols.html +++ b/docs/0.9.5/Custom-Protocols.html @@ -305,11 +305,11 @@ ways.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Customize-channels.html b/docs/0.9.5/Customize-channels.html index 106bff344b..cbd381ae77 100644 --- a/docs/0.9.5/Customize-channels.html +++ b/docs/0.9.5/Customize-channels.html @@ -548,11 +548,11 @@ this article.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Debugging.html b/docs/0.9.5/Debugging.html index 88a61c98d4..41998208c9 100644 --- a/docs/0.9.5/Debugging.html +++ b/docs/0.9.5/Debugging.html @@ -370,11 +370,11 @@ topic here.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Default-Commands.html b/docs/0.9.5/Default-Commands.html index 7b24c48045..cdf55330e6 100644 --- a/docs/0.9.5/Default-Commands.html +++ b/docs/0.9.5/Default-Commands.html @@ -56,42 +56,42 @@ with __unloggedin_look_command [l, look] (cmdset: UnloggedinCmdSet, help-category: General)

  • about [version] (cmdset: CharacterCmdSet, help-category: System)

  • access [hierarchy, groups] (cmdset: CharacterCmdSet, help-category: General)

  • -
  • accounts [listaccounts, account] (cmdset: CharacterCmdSet, help-category: System)

  • -
  • addcom [aliaschan, chanalias] (cmdset: AccountCmdSet, help-category: Comms)

  • +
  • accounts [account, listaccounts] (cmdset: CharacterCmdSet, help-category: System)

  • +
  • addcom [chanalias, aliaschan] (cmdset: AccountCmdSet, help-category: Comms)

  • alias [setobjalias] (cmdset: CharacterCmdSet, help-category: Building)

  • -
  • allcom (cmdset: AccountCmdSet, help-category: Comms)

  • +
  • allcom (cmdset: AccountCmdSet, help-category: Comms)

  • batchcode [batchcodes] (cmdset: CharacterCmdSet, help-category: Building)

  • -
  • batchcommands [batchcommand, batchcmd] (cmdset: CharacterCmdSet, help-category: Building)

  • -
  • cboot (cmdset: AccountCmdSet, help-category: Comms)

  • -
  • ccreate [channelcreate] (cmdset: AccountCmdSet, help-category: Comms)

  • -
  • cdesc (cmdset: AccountCmdSet, help-category: Comms)

  • -
  • cdestroy (cmdset: AccountCmdSet, help-category: Comms)

  • -
  • cemit [cmsg] (cmdset: AccountCmdSet, help-category: Comms)

  • -
  • channels [clist, chanlist, all channels, channellist, comlist] (cmdset: AccountCmdSet, help-category: Comms)

  • +
  • batchcommands [batchcmd, batchcommand] (cmdset: CharacterCmdSet, help-category: Building)

  • +
  • cboot (cmdset: AccountCmdSet, help-category: Comms)

  • +
  • ccreate [channelcreate] (cmdset: AccountCmdSet, help-category: Comms)

  • +
  • cdesc (cmdset: AccountCmdSet, help-category: Comms)

  • +
  • cdestroy (cmdset: AccountCmdSet, help-category: Comms)

  • +
  • cemit [cmsg] (cmdset: AccountCmdSet, help-category: Comms)

  • +
  • channels [clist, chanlist, all channels, channellist, comlist] (cmdset: AccountCmdSet, help-category: Comms)

  • charcreate (cmdset: AccountCmdSet, help-category: General)

  • chardelete (cmdset: AccountCmdSet, help-category: General)

  • -
  • clock (cmdset: AccountCmdSet, help-category: Comms)

  • +
  • clock (cmdset: AccountCmdSet, help-category: Comms)

  • cmdsets [listcmsets] (cmdset: CharacterCmdSet, help-category: Building)

  • color (cmdset: AccountCmdSet, help-category: General)

  • -
  • connect [co, conn, con] (cmdset: UnloggedinCmdSet, help-category: General)

  • +
  • connect [conn, co, con] (cmdset: UnloggedinCmdSet, help-category: General)

  • copy (cmdset: CharacterCmdSet, help-category: Building)

  • cpattr (cmdset: CharacterCmdSet, help-category: Building)

  • create (cmdset: CharacterCmdSet, help-category: Building)

  • create [cre, cr] (cmdset: UnloggedinCmdSet, help-category: General)

  • -
  • cwho (cmdset: AccountCmdSet, help-category: Comms)

  • -
  • delcom [delaliaschan, delchanalias] (cmdset: AccountCmdSet, help-category: Comms)

  • +
  • cwho (cmdset: AccountCmdSet, help-category: Comms)

  • +
  • delcom [delchanalias, delaliaschan] (cmdset: AccountCmdSet, help-category: Comms)

  • desc [describe] (cmdset: CharacterCmdSet, help-category: Building)

  • destroy [delete, del] (cmdset: CharacterCmdSet, help-category: Building)

  • dig (cmdset: CharacterCmdSet, help-category: Building)

  • drop (cmdset: CharacterCmdSet, help-category: General)

  • encoding [encode] (cmdset: UnloggedinCmdSet, help-category: General)

  • -
  • examine [exam, ex] (cmdset: AccountCmdSet, help-category: Building)

  • +
  • examine [ex, exam] (cmdset: AccountCmdSet, help-category: Building)

  • find [search, locate] (cmdset: CharacterCmdSet, help-category: Building)

  • get [grab] (cmdset: CharacterCmdSet, help-category: General)

  • give (cmdset: CharacterCmdSet, help-category: General)

  • grapevine2chan (cmdset: AccountCmdSet, help-category: Comms)

  • help [?] (cmdset: AccountCmdSet, help-category: General)

  • -
  • help [?, h] (cmdset: UnloggedinCmdSet, help-category: General)

  • +
  • help [h, ?] (cmdset: UnloggedinCmdSet, help-category: General)

  • home (cmdset: CharacterCmdSet, help-category: General)

  • ic [puppet] (cmdset: AccountCmdSet, help-category: General)

  • info (cmdset: UnloggedinCmdSet, help-category: General)

  • @@ -100,18 +100,18 @@ with ircstatus (cmdset: AccountCmdSet, help-category: Comms)

  • link (cmdset: CharacterCmdSet, help-category: Building)

  • lock [locks] (cmdset: CharacterCmdSet, help-category: Building)

  • -
  • look [ls, l] (cmdset: AccountCmdSet, help-category: General)

  • -
  • look [ls, l] (cmdset: CharacterCmdSet, help-category: General)

  • +
  • look [l, ls] (cmdset: AccountCmdSet, help-category: General)

  • +
  • look [l, ls] (cmdset: CharacterCmdSet, help-category: General)

  • mvattr (cmdset: CharacterCmdSet, help-category: Building)

  • name [rename] (cmdset: CharacterCmdSet, help-category: Building)

  • -
  • nick [nicks, nickname] (cmdset: AccountCmdSet, help-category: General)

  • -
  • objects [stats, db, listobjects, listobjs] (cmdset: CharacterCmdSet, help-category: System)

  • +
  • nick [nickname, nicks] (cmdset: AccountCmdSet, help-category: General)

  • +
  • objects [listobjects, db, listobjs, stats] (cmdset: CharacterCmdSet, help-category: System)

  • ooc [unpuppet] (cmdset: AccountCmdSet, help-category: General)

  • open (cmdset: CharacterCmdSet, help-category: Building)

  • option [options] (cmdset: AccountCmdSet, help-category: General)

  • page [tell] (cmdset: AccountCmdSet, help-category: Comms)

  • password (cmdset: AccountCmdSet, help-category: General)

  • -
  • pose [:, emote] (cmdset: CharacterCmdSet, help-category: General)

  • +
  • pose [emote, :] (cmdset: CharacterCmdSet, help-category: General)

  • py [!] (cmdset: AccountCmdSet, help-category: System)

  • quell [unquell] (cmdset: AccountCmdSet, help-category: General)

  • quit (cmdset: AccountCmdSet, help-category: General)

  • @@ -121,8 +121,8 @@ with rss2chan (cmdset: AccountCmdSet, help-category: Comms)

  • say [’, “] (cmdset: CharacterCmdSet, help-category: General)

  • screenreader (cmdset: UnloggedinCmdSet, help-category: General)

  • -
  • script [addscript] (cmdset: CharacterCmdSet, help-category: Building)

  • -
  • scripts [listscripts, globalscript] (cmdset: CharacterCmdSet, help-category: System)

  • +
  • script [addscript] (cmdset: CharacterCmdSet, help-category: Building)

  • +
  • scripts [listscripts, globalscript] (cmdset: CharacterCmdSet, help-category: System)

  • server [serverload, serverprocess] (cmdset: CharacterCmdSet, help-category: System)

  • service [services] (cmdset: CharacterCmdSet, help-category: System)

  • sessions (cmdset: SessionCmdSet, help-category: General)

  • @@ -138,7 +138,7 @@ with tickers (cmdset: CharacterCmdSet, help-category: System)

  • time [uptime] (cmdset: CharacterCmdSet, help-category: System)

  • tunnel [tun] (cmdset: CharacterCmdSet, help-category: Building)

  • -
  • typeclass [type, parent, update, swap] (cmdset: CharacterCmdSet, help-category: Building)

  • +
  • typeclass [swap, parent, update, type] (cmdset: CharacterCmdSet, help-category: Building)

  • unlink (cmdset: CharacterCmdSet, help-category: Building)

  • whisper (cmdset: CharacterCmdSet, help-category: General)

  • who [doing] (cmdset: AccountCmdSet, help-category: General)

  • @@ -177,11 +177,11 @@ with Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Default-Exit-Errors.html b/docs/0.9.5/Default-Exit-Errors.html index f1e4bd1ef9..ddfea93b61 100644 --- a/docs/0.9.5/Default-Exit-Errors.html +++ b/docs/0.9.5/Default-Exit-Errors.html @@ -194,11 +194,11 @@ matching “north” exit-command.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Developer-Central.html b/docs/0.9.5/Developer-Central.html index 53b28c2e42..6c8a6ef1fd 100644 --- a/docs/0.9.5/Developer-Central.html +++ b/docs/0.9.5/Developer-Central.html @@ -251,11 +251,11 @@ over time

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Dialogues-in-events.html b/docs/0.9.5/Dialogues-in-events.html index 18f4293243..c20148918b 100644 --- a/docs/0.9.5/Dialogues-in-events.html +++ b/docs/0.9.5/Dialogues-in-events.html @@ -310,11 +310,11 @@ events).

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Directory-Overview.html b/docs/0.9.5/Directory-Overview.html index 31dbac5961..9aa3bdbc18 100644 --- a/docs/0.9.5/Directory-Overview.html +++ b/docs/0.9.5/Directory-Overview.html @@ -159,11 +159,11 @@ having to import from their actual locations inside the source tree.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -171,7 +171,6 @@ 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 72d7f61afb..cb24c151c4 100644 --- a/docs/0.9.5/Docs-refactoring.html +++ b/docs/0.9.5/Docs-refactoring.html @@ -192,11 +192,11 @@ call return_appearance

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Dynamic-In-Game-Map.html b/docs/0.9.5/Dynamic-In-Game-Map.html index 7bb0850309..a9c4c85ede 100644 --- a/docs/0.9.5/Dynamic-In-Game-Map.html +++ b/docs/0.9.5/Dynamic-In-Game-Map.html @@ -544,11 +544,11 @@ also look into up/down directions and figure out how to display that in a good w
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -556,7 +556,6 @@ 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 7e88d2d801..a3e7dd7990 100644 --- a/docs/0.9.5/EvEditor.html +++ b/docs/0.9.5/EvEditor.html @@ -259,11 +259,11 @@ editor can be useful if you want to test the code you have typed but add new lin
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -271,7 +271,6 @@ 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 6c6be69859..9757cfa061 100644 --- a/docs/0.9.5/EvMenu.html +++ b/docs/0.9.5/EvMenu.html @@ -1330,11 +1330,11 @@ until the exit node.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/EvMore.html b/docs/0.9.5/EvMore.html index 03b40e2e1d..201daaeefc 100644 --- a/docs/0.9.5/EvMore.html +++ b/docs/0.9.5/EvMore.html @@ -113,11 +113,11 @@ paging.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Evennia-API.html b/docs/0.9.5/Evennia-API.html index cf052e253b..1e5fa6c2ee 100644 --- a/docs/0.9.5/Evennia-API.html +++ b/docs/0.9.5/Evennia-API.html @@ -41,7 +41,7 @@

    API Summary

    -

    evennia - library root

    +

    evennia - library root

    Versions

    -
    diff --git a/docs/0.9.5/Evennia-Game-Index.html b/docs/0.9.5/Evennia-Game-Index.html index 932cf2db51..1498ebd387 100644 --- a/docs/0.9.5/Evennia-Game-Index.html +++ b/docs/0.9.5/Evennia-Game-Index.html @@ -151,11 +151,11 @@ if you are not ready for players yet.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Evennia-Introduction.html b/docs/0.9.5/Evennia-Introduction.html index f37b73af5d..712e8ae070 100644 --- a/docs/0.9.5/Evennia-Introduction.html +++ b/docs/0.9.5/Evennia-Introduction.html @@ -272,11 +272,11 @@ your own game, you will end up with a small (very small) game that you can build
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -284,7 +284,6 @@ 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 4731c5ee8f..587b9ae004 100644 --- a/docs/0.9.5/Evennia-for-Diku-Users.html +++ b/docs/0.9.5/Evennia-for-Diku-Users.html @@ -75,15 +75,15 @@ are also highly optimized for querying large data sets efficiently.

    pay attention to what object you are using, and when you are accessing another through back- handling, that you are accessing the right object. In Diku C, accessing character object is normally done by:

    -
    /* creating pointer of both character and room struct */
    +
    /* creating pointer of both character and room struct */
     
    -void(struct char ch*, struct room room*){
    -    int dam;
    -    if (ROOM_FLAGGED(room, ROOM_LAVA)){
    -        dam = 100
    -        ch->damage_taken = dam
    -    };
    -};
    +void(struct char ch*, struct room room*){
    +    int dam;
    +    if (ROOM_FLAGGED(room, ROOM_LAVA)){
    +        dam = 100
    +        ch->damage_taken = dam
    +    };
    +};
     

    As an example for creating Commands in Evennia via the from evennia import Command the character @@ -260,11 +260,11 @@ your mob.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Evennia-for-MUSH-Users.html b/docs/0.9.5/Evennia-for-MUSH-Users.html index 13e66a666a..51fc5b1088 100644 --- a/docs/0.9.5/Evennia-for-MUSH-Users.html +++ b/docs/0.9.5/Evennia-for-MUSH-Users.html @@ -279,11 +279,11 @@ question in our Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Evennia-for-roleplaying-sessions.html b/docs/0.9.5/Evennia-for-roleplaying-sessions.html index b5940064e3..516bebef0c 100644 --- a/docs/0.9.5/Evennia-for-roleplaying-sessions.html +++ b/docs/0.9.5/Evennia-for-roleplaying-sessions.html @@ -803,11 +803,11 @@ when the message was sent.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Execute-Python-Code.html b/docs/0.9.5/Execute-Python-Code.html index d76450068d..a72419f38b 100644 --- a/docs/0.9.5/Execute-Python-Code.html +++ b/docs/0.9.5/Execute-Python-Code.html @@ -202,11 +202,11 @@ Out[3]: [<ObjectDB: Harry>, <ObjectDB: Limbo>, ...]
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/First-Steps-Coding.html b/docs/0.9.5/First-Steps-Coding.html index cbaaea041d..14e283c5fa 100644 --- a/docs/0.9.5/First-Steps-Coding.html +++ b/docs/0.9.5/First-Steps-Coding.html @@ -359,11 +359,11 @@ developers.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Game-Planning.html b/docs/0.9.5/Game-Planning.html index ce4eceb208..f40a3a4890 100644 --- a/docs/0.9.5/Game-Planning.html +++ b/docs/0.9.5/Game-Planning.html @@ -297,11 +297,11 @@ have made their dream game a reality!

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Gametime-Tutorial.html b/docs/0.9.5/Gametime-Tutorial.html index e81323332a..fb0c6cfefa 100644 --- a/docs/0.9.5/Gametime-Tutorial.html +++ b/docs/0.9.5/Gametime-Tutorial.html @@ -362,11 +362,11 @@ same way as described for the default one above.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Getting-Started.html b/docs/0.9.5/Getting-Started.html index 03bed3bfac..a3c643b29c 100644 --- a/docs/0.9.5/Getting-Started.html +++ b/docs/0.9.5/Getting-Started.html @@ -594,11 +594,11 @@ virus software interfering. Try disabling or changing your anti-virus software s
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -606,7 +606,6 @@ 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 a20d70b682..f3653a47af 100644 --- a/docs/0.9.5/Glossary.html +++ b/docs/0.9.5/Glossary.html @@ -475,11 +475,11 @@ activated whenever you want to use the Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -487,7 +487,6 @@ 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 6b77c9babb..6cbacd182f 100644 --- a/docs/0.9.5/Grapevine.html +++ b/docs/0.9.5/Grapevine.html @@ -142,11 +142,11 @@ it to your channel in-game.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Guest-Logins.html b/docs/0.9.5/Guest-Logins.html index 052a8c7724..7e3e3875dc 100644 --- a/docs/0.9.5/Guest-Logins.html +++ b/docs/0.9.5/Guest-Logins.html @@ -99,11 +99,11 @@ of nine names from
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/HAProxy-Config.html b/docs/0.9.5/HAProxy-Config.html index eb61dae915..a37de5b4e5 100644 --- a/docs/0.9.5/HAProxy-Config.html +++ b/docs/0.9.5/HAProxy-Config.html @@ -232,11 +232,11 @@ Linux mechanism for running things at specific times.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Help-System-Tutorial.html b/docs/0.9.5/Help-System-Tutorial.html index 77a84609b8..655fd1d3fa 100644 --- a/docs/0.9.5/Help-System-Tutorial.html +++ b/docs/0.9.5/Help-System-Tutorial.html @@ -539,11 +539,11 @@ themselves links to display their details.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Help-System.html b/docs/0.9.5/Help-System.html index dd06566f2a..43d1064eba 100644 --- a/docs/0.9.5/Help-System.html +++ b/docs/0.9.5/Help-System.html @@ -192,11 +192,11 @@ definition
    :

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 738cb46adb..7a0cd0a2e4 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 @@ -141,11 +141,11 @@ a particular

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 5ccc96bd46..e78cf8e8af 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 @@ -182,11 +182,11 @@ help.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/IRC.html b/docs/0.9.5/IRC.html index a0d071bc49..7e796b4e58 100644 --- a/docs/0.9.5/IRC.html +++ b/docs/0.9.5/IRC.html @@ -161,11 +161,11 @@ name of the IRC channel you used (#evennia here).

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 4594b6ff5e..93c5986c6b 100644 --- a/docs/0.9.5/Implementing-a-game-rule-system.html +++ b/docs/0.9.5/Implementing-a-game-rule-system.html @@ -388,11 +388,11 @@ tag dummy=training_dummy

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Inputfuncs.html b/docs/0.9.5/Inputfuncs.html index 1255477c30..afc6d86888 100644 --- a/docs/0.9.5/Inputfuncs.html +++ b/docs/0.9.5/Inputfuncs.html @@ -275,11 +275,11 @@ add more. By default the following fields/attributes can be monitored:

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -287,7 +287,6 @@ 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 32e3cb2243..8cf607c4d2 100644 --- a/docs/0.9.5/Installing-on-Android.html +++ b/docs/0.9.5/Installing-on-Android.html @@ -212,11 +212,11 @@ killed if your phone is heavily taxed. Termux seems to keep a notification up to
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -224,7 +224,6 @@ 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 1c2d363470..448b2ed655 100644 --- a/docs/0.9.5/Internationalization.html +++ b/docs/0.9.5/Internationalization.html @@ -165,11 +165,11 @@ your own repository clone) so we can integrate your translation into Evennia!

    Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -177,7 +177,6 @@ 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 5d068316b3..a9204a85f4 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 @@ -152,11 +152,11 @@ commands when obtaining a weapon.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Licensing.html b/docs/0.9.5/Licensing.html index ae84ec0de2..65bae64a4d 100644 --- a/docs/0.9.5/Licensing.html +++ b/docs/0.9.5/Licensing.html @@ -94,11 +94,11 @@ as Evennia itself, unless the individual contributor has specifically defined ot
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -106,7 +106,6 @@ 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 2f024f4010..ebfa51007e 100644 --- a/docs/0.9.5/Links.html +++ b/docs/0.9.5/Links.html @@ -285,11 +285,11 @@ programming curriculum for different skill levels

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Locks.html b/docs/0.9.5/Locks.html index 2e19aebd5a..6090c4da27 100644 --- a/docs/0.9.5/Locks.html +++ b/docs/0.9.5/Locks.html @@ -569,11 +569,11 @@ interface. It’s stand-alone from the permissions described above.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -581,7 +581,6 @@ 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 4c1504899f..2aac920e32 100644 --- a/docs/0.9.5/Manually-Configuring-Color.html +++ b/docs/0.9.5/Manually-Configuring-Color.html @@ -238,11 +238,11 @@ regardless of if Evennia thinks their client supports it or not.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -250,7 +250,6 @@ 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 ae72b54081..64e0c89765 100644 --- a/docs/0.9.5/Mass-and-weight-for-objects.html +++ b/docs/0.9.5/Mass-and-weight-for-objects.html @@ -167,11 +167,11 @@ default_cmdsets.py file:

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Messagepath.html b/docs/0.9.5/Messagepath.html index feccf7ef7c..082018d518 100644 --- a/docs/0.9.5/Messagepath.html +++ b/docs/0.9.5/Messagepath.html @@ -261,7 +261,7 @@ plugin_handler function to recognize the new function:

        var onCustomFunc = function (cmdname, args, kwargs) {
             for( let n=0; n < ordered_plugins.length; n++ ) {
                 let plugin = ordered_plugins[n];
    -            if( 'onCustomFunc' in plugin ) {
    +            if( 'onCustomFunc' in plugin ) {
                     if( plugin.onCustomFunc(args, kwargs) ) {
                         // True -- means this plugin claims this command exclusively.
                         return;
    @@ -365,11 +365,11 @@ information needed between server and client.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/MonitorHandler.html b/docs/0.9.5/MonitorHandler.html index cd7baf4eb9..848a1663f1 100644 --- a/docs/0.9.5/MonitorHandler.html +++ b/docs/0.9.5/MonitorHandler.html @@ -151,11 +151,11 @@ the monitor to remove:

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/NPC-shop-Tutorial.html b/docs/0.9.5/NPC-shop-Tutorial.html index 362d2d07e1..e928630e66 100644 --- a/docs/0.9.5/NPC-shop-Tutorial.html +++ b/docs/0.9.5/NPC-shop-Tutorial.html @@ -404,11 +404,11 @@ it well stocked.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/New-Models.html b/docs/0.9.5/New-Models.html index d17dcb0937..5539d6973f 100644 --- a/docs/0.9.5/New-Models.html +++ b/docs/0.9.5/New-Models.html @@ -325,11 +325,11 @@ lot more information about querying the database.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Nicks.html b/docs/0.9.5/Nicks.html index 9fe67e2f0c..bd9f8c1e81 100644 --- a/docs/0.9.5/Nicks.html +++ b/docs/0.9.5/Nicks.html @@ -193,11 +193,11 @@ basically the unchanged strings you enter to the Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -205,7 +205,6 @@ 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 140f47807c..c576043825 100644 --- a/docs/0.9.5/OOB.html +++ b/docs/0.9.5/OOB.html @@ -259,11 +259,11 @@ same example ("
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Objects.html b/docs/0.9.5/Objects.html index 8920758b98..1b04fcf336 100644 --- a/docs/0.9.5/Objects.html +++ b/docs/0.9.5/Objects.html @@ -267,11 +267,11 @@ and display this as an error message. If this is not found, the Exit will instea
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -279,7 +279,6 @@ 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 d8ce3fce3c..facc80140f 100644 --- a/docs/0.9.5/Online-Setup.html +++ b/docs/0.9.5/Online-Setup.html @@ -215,7 +215,7 @@ based of the client instead, which tends to be slower.

    The AMP_PORT is required to work, since this is the internal port linking Evennia’s -Server and Portal components together. The other ports are encrypted ports that may be +Server and Portal components together. The other ports are encrypted ports that may be useful for custom protocols but are otherwise not used.

    @@ -554,11 +554,11 @@ sufficient resources to operate a Cloud9 development environment without charge.
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -566,7 +566,6 @@ sufficient resources to operate a Cloud9 development environment without charge.
    • 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 1260a1bb54..687697a01d 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 @@ -793,11 +793,11 @@ code.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Portal-And-Server.html b/docs/0.9.5/Portal-And-Server.html index 999b0379b6..948ef68496 100644 --- a/docs/0.9.5/Portal-And-Server.html +++ b/docs/0.9.5/Portal-And-Server.html @@ -82,11 +82,11 @@ This allows the two programs to communicate seamlessly.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Profiling.html b/docs/0.9.5/Profiling.html index e958aab8d8..e556ad6bb2 100644 --- a/docs/0.9.5/Profiling.html +++ b/docs/0.9.5/Profiling.html @@ -197,11 +197,11 @@ course hard to actually mimic human user behavior. For this, actual real-game te
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -209,7 +209,6 @@ 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 82b2d5cd3b..ce2e7d1f36 100644 --- a/docs/0.9.5/Python-3.html +++ b/docs/0.9.5/Python-3.html @@ -75,11 +75,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Python-basic-introduction.html b/docs/0.9.5/Python-basic-introduction.html index 6bb3e201ff..df1ffd01fd 100644 --- a/docs/0.9.5/Python-basic-introduction.html +++ b/docs/0.9.5/Python-basic-introduction.html @@ -325,11 +325,11 @@ about objects and to explore the Evennia library.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 62fa35a4e1..71d9ad1893 100644 --- a/docs/0.9.5/Python-basic-tutorial-part-two.html +++ b/docs/0.9.5/Python-basic-tutorial-part-two.html @@ -534,11 +534,11 @@ of the beginning-level Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Quirks.html b/docs/0.9.5/Quirks.html index 1e46efab53..7c8f20383e 100644 --- a/docs/0.9.5/Quirks.html +++ b/docs/0.9.5/Quirks.html @@ -194,11 +194,11 @@ instructions, use the following command to fix it:

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/RSS.html b/docs/0.9.5/RSS.html index bc24d6a47f..81d79a25eb 100644 --- a/docs/0.9.5/RSS.html +++ b/docs/0.9.5/RSS.html @@ -128,11 +128,11 @@ same channels as Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Roadmap.html b/docs/0.9.5/Roadmap.html index d4c4e18eea..f93b693a54 100644 --- a/docs/0.9.5/Roadmap.html +++ b/docs/0.9.5/Roadmap.html @@ -76,11 +76,11 @@ Page.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Running-Evennia-in-Docker.html b/docs/0.9.5/Running-Evennia-in-Docker.html index 57d0005164..284b233289 100644 --- a/docs/0.9.5/Running-Evennia-in-Docker.html +++ b/docs/0.9.5/Running-Evennia-in-Docker.html @@ -371,11 +371,11 @@ line.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Screenshot.html b/docs/0.9.5/Screenshot.html index 2524f193de..8737ed5bd6 100644 --- a/docs/0.9.5/Screenshot.html +++ b/docs/0.9.5/Screenshot.html @@ -86,11 +86,11 @@ interface for editing the database online.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Scripts.html b/docs/0.9.5/Scripts.html index 1e861efc2f..9dba45c5bb 100644 --- a/docs/0.9.5/Scripts.html +++ b/docs/0.9.5/Scripts.html @@ -448,11 +448,11 @@ tutorial.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Security.html b/docs/0.9.5/Security.html index e484319a7a..668326318f 100644 --- a/docs/0.9.5/Security.html +++ b/docs/0.9.5/Security.html @@ -240,11 +240,11 @@ ISP snooping.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Server-Conf.html b/docs/0.9.5/Server-Conf.html index 827ce14ff8..ea8698be72 100644 --- a/docs/0.9.5/Server-Conf.html +++ b/docs/0.9.5/Server-Conf.html @@ -181,11 +181,11 @@ know about if you are an Evennia developer.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Sessions.html b/docs/0.9.5/Sessions.html index d167b01bfd..c112d7ea14 100644 --- a/docs/0.9.5/Sessions.html +++ b/docs/0.9.5/Sessions.html @@ -265,11 +265,11 @@ module for details on the capabilities of the Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -277,7 +277,6 @@ 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 cbd913684e..35a8e1a348 100644 --- a/docs/0.9.5/Setting-up-PyCharm.html +++ b/docs/0.9.5/Setting-up-PyCharm.html @@ -202,11 +202,11 @@ still running in interactive mode.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Signals.html b/docs/0.9.5/Signals.html index 4f9fd6fc2e..c0d13a5454 100644 --- a/docs/0.9.5/Signals.html +++ b/docs/0.9.5/Signals.html @@ -192,11 +192,11 @@ decorator (only relevant for unit testing)

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Soft-Code.html b/docs/0.9.5/Soft-Code.html index 3cf28579b6..92f6ba5f1f 100644 --- a/docs/0.9.5/Soft-Code.html +++ b/docs/0.9.5/Soft-Code.html @@ -166,11 +166,11 @@ pseudo-softcode plugin aimed at developers wanting to script their game from ins
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -178,7 +178,6 @@ 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 9c985585ce..ebec972dff 100644 --- a/docs/0.9.5/Spawner-and-Prototypes.html +++ b/docs/0.9.5/Spawner-and-Prototypes.html @@ -403,11 +403,11 @@ the api docs.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Start-Stop-Reload.html b/docs/0.9.5/Start-Stop-Reload.html index aab434f7dd..7cace2d2ee 100644 --- a/docs/0.9.5/Start-Stop-Reload.html +++ b/docs/0.9.5/Start-Stop-Reload.html @@ -277,11 +277,11 @@ In-game you should now get the message that the Server has successfully restarte
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -289,7 +289,6 @@ 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 cbee85d664..5f4ca0e012 100644 --- a/docs/0.9.5/Static-In-Game-Map.html +++ b/docs/0.9.5/Static-In-Game-Map.html @@ -469,11 +469,11 @@ not add more features to your game by trying other tutorials: Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -481,7 +481,6 @@ not add more features to your game by trying other tutorials: 0.9.5 (v0.9.5 branch)
    -
    diff --git a/docs/0.9.5/Tags.html b/docs/0.9.5/Tags.html index 9a8eed3179..7c3d0aa1e8 100644 --- a/docs/0.9.5/Tags.html +++ b/docs/0.9.5/Tags.html @@ -240,11 +240,11 @@ is found in the Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Text-Encodings.html b/docs/0.9.5/Text-Encodings.html index 8262d90cb3..9d1d768b34 100644 --- a/docs/0.9.5/Text-Encodings.html +++ b/docs/0.9.5/Text-Encodings.html @@ -139,11 +139,11 @@ the Wikipedia article Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/TextTags.html b/docs/0.9.5/TextTags.html index f64e0c6bce..7998179b00 100644 --- a/docs/0.9.5/TextTags.html +++ b/docs/0.9.5/TextTags.html @@ -411,11 +411,11 @@ value will be a float (so Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/TickerHandler.html b/docs/0.9.5/TickerHandler.html index 4d31123d60..36d5de7ace 100644 --- a/docs/0.9.5/TickerHandler.html +++ b/docs/0.9.5/TickerHandler.html @@ -195,11 +195,11 @@ same time without input from something else.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Turn-based-Combat-System.html b/docs/0.9.5/Turn-based-Combat-System.html index be29183daa..83e358b4c1 100644 --- a/docs/0.9.5/Turn-based-Combat-System.html +++ b/docs/0.9.5/Turn-based-Combat-System.html @@ -583,11 +583,11 @@ show others what’s going on.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Tutorial-Aggressive-NPCs.html b/docs/0.9.5/Tutorial-Aggressive-NPCs.html index 2fe5b0b090..7850413c45 100644 --- a/docs/0.9.5/Tutorial-Aggressive-NPCs.html +++ b/docs/0.9.5/Tutorial-Aggressive-NPCs.html @@ -182,11 +182,11 @@ AI code).

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Tutorial-NPCs-listening.html b/docs/0.9.5/Tutorial-NPCs-listening.html index a150839c45..ab1ebc5154 100644 --- a/docs/0.9.5/Tutorial-NPCs-listening.html +++ b/docs/0.9.5/Tutorial-NPCs-listening.html @@ -182,11 +182,11 @@ Which way to go depends on the design requirements of your particular game.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -194,7 +194,6 @@ 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 234173394e..e42ad642f8 100644 --- a/docs/0.9.5/Tutorial-Searching-For-Objects.html +++ b/docs/0.9.5/Tutorial-Searching-For-Objects.html @@ -490,11 +490,11 @@ in a format like the following:

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Tutorial-Tweeting-Game-Stats.html b/docs/0.9.5/Tutorial-Tweeting-Game-Stats.html index b6650e53c8..780cb30055 100644 --- a/docs/0.9.5/Tutorial-Tweeting-Game-Stats.html +++ b/docs/0.9.5/Tutorial-Tweeting-Game-Stats.html @@ -164,11 +164,11 @@ as mygame/typeclass
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Tutorial-Vehicles.html b/docs/0.9.5/Tutorial-Vehicles.html index dfd9f2b286..0bcc0f000a 100644 --- a/docs/0.9.5/Tutorial-Vehicles.html +++ b/docs/0.9.5/Tutorial-Vehicles.html @@ -466,11 +466,11 @@ direction to which room it goes.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Tutorial-World-Introduction.html b/docs/0.9.5/Tutorial-World-Introduction.html index 8518cdfd5e..babd40c307 100644 --- a/docs/0.9.5/Tutorial-World-Introduction.html +++ b/docs/0.9.5/Tutorial-World-Introduction.html @@ -184,11 +184,11 @@ itself.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 e9b5c45165..ff38249db5 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 @@ -701,11 +701,11 @@ as the Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Tutorials.html b/docs/0.9.5/Tutorials.html index a7db0a8025..773e7b3b30 100644 --- a/docs/0.9.5/Tutorials.html +++ b/docs/0.9.5/Tutorials.html @@ -257,11 +257,11 @@ to MUSH-style servers.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Typeclasses.html b/docs/0.9.5/Typeclasses.html index fdaad466ad..a96bcd77b3 100644 --- a/docs/0.9.5/Typeclasses.html +++ b/docs/0.9.5/Typeclasses.html @@ -403,11 +403,11 @@ comments for examples and solutions.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Understanding-Color-Tags.html b/docs/0.9.5/Understanding-Color-Tags.html index 3789846568..1d2d373b99 100644 --- a/docs/0.9.5/Understanding-Color-Tags.html +++ b/docs/0.9.5/Understanding-Color-Tags.html @@ -241,11 +241,11 @@ push it over the limit, so to speak.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Unit-Testing.html b/docs/0.9.5/Unit-Testing.html index 63e6288a44..87538121f6 100644 --- a/docs/0.9.5/Unit-Testing.html +++ b/docs/0.9.5/Unit-Testing.html @@ -499,11 +499,11 @@ string.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Updating-Your-Game.html b/docs/0.9.5/Updating-Your-Game.html index bc7c55da89..8f348f67a8 100644 --- a/docs/0.9.5/Updating-Your-Game.html +++ b/docs/0.9.5/Updating-Your-Game.html @@ -209,11 +209,11 @@ you then just run e
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 f96f59be87..939d84981c 100644 --- a/docs/0.9.5/Using-MUX-as-a-Standard.html +++ b/docs/0.9.5/Using-MUX-as-a-Standard.html @@ -158,11 +158,11 @@ something to the effect of

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Using-Travis.html b/docs/0.9.5/Using-Travis.html index 8d0172b252..8d24901db4 100644 --- a/docs/0.9.5/Using-Travis.html +++ b/docs/0.9.5/Using-Travis.html @@ -105,11 +105,11 @@ to that for making tests fitting your game.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Version-Control.html b/docs/0.9.5/Version-Control.html index e28251684b..d53b238702 100644 --- a/docs/0.9.5/Version-Control.html +++ b/docs/0.9.5/Version-Control.html @@ -531,11 +531,11 @@ understand the underlying ideas behind GIT
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Weather-Tutorial.html b/docs/0.9.5/Weather-Tutorial.html index b7e3dc6775..6a034ef8ce 100644 --- a/docs/0.9.5/Weather-Tutorial.html +++ b/docs/0.9.5/Weather-Tutorial.html @@ -118,11 +118,11 @@ weather came before it. Expanding it to be more realistic is a useful exercise.<
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -130,7 +130,6 @@ 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 a8769d623c..cafae4235b 100644 --- a/docs/0.9.5/Web-Character-Generation.html +++ b/docs/0.9.5/Web-Character-Generation.html @@ -713,11 +713,11 @@ to see what happens. And do the same while checking the checkbox!

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -725,7 +725,6 @@ 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 da52280643..852436d8c9 100644 --- a/docs/0.9.5/Web-Character-View-Tutorial.html +++ b/docs/0.9.5/Web-Character-View-Tutorial.html @@ -275,11 +275,11 @@ here.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Web-Features.html b/docs/0.9.5/Web-Features.html index 4b42737fc3..9c0b6adb80 100644 --- a/docs/0.9.5/Web-Features.html +++ b/docs/0.9.5/Web-Features.html @@ -205,11 +205,11 @@ implementation, the relevant django “applications” in default Evennia are Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -217,7 +217,6 @@ 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 963bb3b617..ae44c93c57 100644 --- a/docs/0.9.5/Web-Tutorial.html +++ b/docs/0.9.5/Web-Tutorial.html @@ -191,11 +191,11 @@ possibilities exist.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Webclient-brainstorm.html b/docs/0.9.5/Webclient-brainstorm.html index 94e63e56d4..63937e7ded 100644 --- a/docs/0.9.5/Webclient-brainstorm.html +++ b/docs/0.9.5/Webclient-brainstorm.html @@ -412,11 +412,11 @@ could stay in this mode, but they could also “lock” the gui layout at any ti
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -424,7 +424,6 @@ 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 d10ab23535..3d5f4b9a0b 100644 --- a/docs/0.9.5/Webclient.html +++ b/docs/0.9.5/Webclient.html @@ -351,11 +351,11 @@ clear your browser cache before loading the webclient page.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Wiki-Index.html b/docs/0.9.5/Wiki-Index.html index 7089897f03..b5e52677a6 100644 --- a/docs/0.9.5/Wiki-Index.html +++ b/docs/0.9.5/Wiki-Index.html @@ -289,11 +289,11 @@ character-info

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/Zones.html b/docs/0.9.5/Zones.html index 06bb9ad842..c475511ca5 100644 --- a/docs/0.9.5/Zones.html +++ b/docs/0.9.5/Zones.html @@ -128,11 +128,11 @@ properly search the inheritance tree.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/django/conf.html b/docs/0.9.5/_modules/django/conf.html index cd6949ffec..4c8ca8dc45 100644 --- a/docs/0.9.5/_modules/django/conf.html +++ b/docs/0.9.5/_modules/django/conf.html @@ -338,11 +338,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 72083699e2..92c73afde5 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 @@ -1270,11 +1270,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 7fab905bd8..3222547381 100644 --- a/docs/0.9.5/_modules/django/db/models/manager.html +++ b/docs/0.9.5/_modules/django/db/models/manager.html @@ -268,11 +268,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 01ced5e947..9656f03139 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 @@ -411,11 +411,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/django/utils/functional.html b/docs/0.9.5/_modules/django/utils/functional.html deleted file mode 100644 index 0e7ba03b5b..0000000000 --- a/docs/0.9.5/_modules/django/utils/functional.html +++ /dev/null @@ -1,527 +0,0 @@ - - - - - - - - django.utils.functional — Evennia 0.9.5 documentation - - - - - - - - - - - - - - - -
    -
    -
    -
    - -

    Source code for django.utils.functional

    -import copy
    -import itertools
    -import operator
    -from functools import total_ordering, wraps
    -
    -
    -class cached_property:
    -    """
    -    Decorator that converts a method with a single self argument into a
    -    property cached on the instance.
    -
    -    A cached property can be made out of an existing method:
    -    (e.g. ``url = cached_property(get_absolute_url)``).
    -    The optional ``name`` argument is obsolete as of Python 3.6 and will be
    -    deprecated in Django 4.0 (#30127).
    -    """
    -    name = None
    -
    -    @staticmethod
    -    def func(instance):
    -        raise TypeError(
    -            'Cannot use cached_property instance without calling '
    -            '__set_name__() on it.'
    -        )
    -
    -    def __init__(self, func, name=None):
    -        self.real_func = func
    -        self.__doc__ = getattr(func, '__doc__')
    -
    -    def __set_name__(self, owner, name):
    -        if self.name is None:
    -            self.name = name
    -            self.func = self.real_func
    -        elif name != self.name:
    -            raise TypeError(
    -                "Cannot assign the same cached_property to two different names "
    -                "(%r and %r)." % (self.name, name)
    -            )
    -
    -    def __get__(self, instance, cls=None):
    -        """
    -        Call the function and put the return value in instance.__dict__ so that
    -        subsequent attribute access on the instance returns the cached value
    -        instead of calling cached_property.__get__().
    -        """
    -        if instance is None:
    -            return self
    -        res = instance.__dict__[self.name] = self.func(instance)
    -        return res
    -
    -
    -class classproperty:
    -    """
    -    Decorator that converts a method with a single cls argument into a property
    -    that can be accessed directly from the class.
    -    """
    -    def __init__(self, method=None):
    -        self.fget = method
    -
    -    def __get__(self, instance, cls=None):
    -        return self.fget(cls)
    -
    -    def getter(self, method):
    -        self.fget = method
    -        return self
    -
    -
    -class Promise:
    -    """
    -    Base class for the proxy class created in the closure of the lazy function.
    -    It's used to recognize promises in code.
    -    """
    -    pass
    -
    -
    -def lazy(func, *resultclasses):
    -    """
    -    Turn any callable into a lazy evaluated callable. result classes or types
    -    is required -- at least one is needed so that the automatic forcing of
    -    the lazy evaluation code is triggered. Results are not memoized; the
    -    function is evaluated on every access.
    -    """
    -
    -    @total_ordering
    -    class __proxy__(Promise):
    -        """
    -        Encapsulate a function call and act as a proxy for methods that are
    -        called on the result of that function. The function is not evaluated
    -        until one of the methods on the result is called.
    -        """
    -        __prepared = False
    -
    -        def __init__(self, args, kw):
    -            self.__args = args
    -            self.__kw = kw
    -            if not self.__prepared:
    -                self.__prepare_class__()
    -            self.__class__.__prepared = True
    -
    -        def __reduce__(self):
    -            return (
    -                _lazy_proxy_unpickle,
    -                (func, self.__args, self.__kw) + resultclasses
    -            )
    -
    -        def __repr__(self):
    -            return repr(self.__cast())
    -
    -        @classmethod
    -        def __prepare_class__(cls):
    -            for resultclass in resultclasses:
    -                for type_ in resultclass.mro():
    -                    for method_name in type_.__dict__:
    -                        # All __promise__ return the same wrapper method, they
    -                        # look up the correct implementation when called.
    -                        if hasattr(cls, method_name):
    -                            continue
    -                        meth = cls.__promise__(method_name)
    -                        setattr(cls, method_name, meth)
    -            cls._delegate_bytes = bytes in resultclasses
    -            cls._delegate_text = str in resultclasses
    -            assert not (cls._delegate_bytes and cls._delegate_text), (
    -                "Cannot call lazy() with both bytes and text return types.")
    -            if cls._delegate_text:
    -                cls.__str__ = cls.__text_cast
    -            elif cls._delegate_bytes:
    -                cls.__bytes__ = cls.__bytes_cast
    -
    -        @classmethod
    -        def __promise__(cls, method_name):
    -            # Builds a wrapper around some magic method
    -            def __wrapper__(self, *args, **kw):
    -                # Automatically triggers the evaluation of a lazy value and
    -                # applies the given magic method of the result type.
    -                res = func(*self.__args, **self.__kw)
    -                return getattr(res, method_name)(*args, **kw)
    -            return __wrapper__
    -
    -        def __text_cast(self):
    -            return func(*self.__args, **self.__kw)
    -
    -        def __bytes_cast(self):
    -            return bytes(func(*self.__args, **self.__kw))
    -
    -        def __bytes_cast_encoded(self):
    -            return func(*self.__args, **self.__kw).encode()
    -
    -        def __cast(self):
    -            if self._delegate_bytes:
    -                return self.__bytes_cast()
    -            elif self._delegate_text:
    -                return self.__text_cast()
    -            else:
    -                return func(*self.__args, **self.__kw)
    -
    -        def __str__(self):
    -            # object defines __str__(), so __prepare_class__() won't overload
    -            # a __str__() method from the proxied class.
    -            return str(self.__cast())
    -
    -        def __eq__(self, other):
    -            if isinstance(other, Promise):
    -                other = other.__cast()
    -            return self.__cast() == other
    -
    -        def __lt__(self, other):
    -            if isinstance(other, Promise):
    -                other = other.__cast()
    -            return self.__cast() < other
    -
    -        def __hash__(self):
    -            return hash(self.__cast())
    -
    -        def __mod__(self, rhs):
    -            if self._delegate_text:
    -                return str(self) % rhs
    -            return self.__cast() % rhs
    -
    -        def __add__(self, other):
    -            return self.__cast() + other
    -
    -        def __radd__(self, other):
    -            return other + self.__cast()
    -
    -        def __deepcopy__(self, memo):
    -            # Instances of this class are effectively immutable. It's just a
    -            # collection of functions. So we don't need to do anything
    -            # complicated for copying.
    -            memo[id(self)] = self
    -            return self
    -
    -    @wraps(func)
    -    def __wrapper__(*args, **kw):
    -        # Creates the proxy object, instead of the actual value.
    -        return __proxy__(args, kw)
    -
    -    return __wrapper__
    -
    -
    -def _lazy_proxy_unpickle(func, args, kwargs, *resultclasses):
    -    return lazy(func, *resultclasses)(*args, **kwargs)
    -
    -
    -def lazystr(text):
    -    """
    -    Shortcut for the common case of a lazy callable that returns str.
    -    """
    -    return lazy(str, str)(text)
    -
    -
    -def keep_lazy(*resultclasses):
    -    """
    -    A decorator that allows a function to be called with one or more lazy
    -    arguments. If none of the args are lazy, the function is evaluated
    -    immediately, otherwise a __proxy__ is returned that will evaluate the
    -    function when needed.
    -    """
    -    if not resultclasses:
    -        raise TypeError("You must pass at least one argument to keep_lazy().")
    -
    -    def decorator(func):
    -        lazy_func = lazy(func, *resultclasses)
    -
    -        @wraps(func)
    -        def wrapper(*args, **kwargs):
    -            if any(isinstance(arg, Promise) for arg in itertools.chain(args, kwargs.values())):
    -                return lazy_func(*args, **kwargs)
    -            return func(*args, **kwargs)
    -        return wrapper
    -    return decorator
    -
    -
    -def keep_lazy_text(func):
    -    """
    -    A decorator for functions that accept lazy arguments and return text.
    -    """
    -    return keep_lazy(str)(func)
    -
    -
    -empty = object()
    -
    -
    -def new_method_proxy(func):
    -    def inner(self, *args):
    -        if self._wrapped is empty:
    -            self._setup()
    -        return func(self._wrapped, *args)
    -    return inner
    -
    -
    -class LazyObject:
    -    """
    -    A wrapper for another class that can be used to delay instantiation of the
    -    wrapped class.
    -
    -    By subclassing, you have the opportunity to intercept and alter the
    -    instantiation. If you don't need to do that, use SimpleLazyObject.
    -    """
    -
    -    # Avoid infinite recursion when tracing __init__ (#19456).
    -    _wrapped = None
    -
    -    def __init__(self):
    -        # Note: if a subclass overrides __init__(), it will likely need to
    -        # override __copy__() and __deepcopy__() as well.
    -        self._wrapped = empty
    -
    -    __getattr__ = new_method_proxy(getattr)
    -
    -    def __setattr__(self, name, value):
    -        if name == "_wrapped":
    -            # Assign to __dict__ to avoid infinite __setattr__ loops.
    -            self.__dict__["_wrapped"] = value
    -        else:
    -            if self._wrapped is empty:
    -                self._setup()
    -            setattr(self._wrapped, name, value)
    -
    -    def __delattr__(self, name):
    -        if name == "_wrapped":
    -            raise TypeError("can't delete _wrapped.")
    -        if self._wrapped is empty:
    -            self._setup()
    -        delattr(self._wrapped, name)
    -
    -    def _setup(self):
    -        """
    -        Must be implemented by subclasses to initialize the wrapped object.
    -        """
    -        raise NotImplementedError('subclasses of LazyObject must provide a _setup() method')
    -
    -    # Because we have messed with __class__ below, we confuse pickle as to what
    -    # class we are pickling. We're going to have to initialize the wrapped
    -    # object to successfully pickle it, so we might as well just pickle the
    -    # wrapped object since they're supposed to act the same way.
    -    #
    -    # Unfortunately, if we try to simply act like the wrapped object, the ruse
    -    # will break down when pickle gets our id(). Thus we end up with pickle
    -    # thinking, in effect, that we are a distinct object from the wrapped
    -    # object, but with the same __dict__. This can cause problems (see #25389).
    -    #
    -    # So instead, we define our own __reduce__ method and custom unpickler. We
    -    # pickle the wrapped object as the unpickler's argument, so that pickle
    -    # will pickle it normally, and then the unpickler simply returns its
    -    # argument.
    -    def __reduce__(self):
    -        if self._wrapped is empty:
    -            self._setup()
    -        return (unpickle_lazyobject, (self._wrapped,))
    -
    -    def __copy__(self):
    -        if self._wrapped is empty:
    -            # If uninitialized, copy the wrapper. Use type(self), not
    -            # self.__class__, because the latter is proxied.
    -            return type(self)()
    -        else:
    -            # If initialized, return a copy of the wrapped object.
    -            return copy.copy(self._wrapped)
    -
    -    def __deepcopy__(self, memo):
    -        if self._wrapped is empty:
    -            # We have to use type(self), not self.__class__, because the
    -            # latter is proxied.
    -            result = type(self)()
    -            memo[id(self)] = result
    -            return result
    -        return copy.deepcopy(self._wrapped, memo)
    -
    -    __bytes__ = new_method_proxy(bytes)
    -    __str__ = new_method_proxy(str)
    -    __bool__ = new_method_proxy(bool)
    -
    -    # Introspection support
    -    __dir__ = new_method_proxy(dir)
    -
    -    # Need to pretend to be the wrapped class, for the sake of objects that
    -    # care about this (especially in equality tests)
    -    __class__ = property(new_method_proxy(operator.attrgetter("__class__")))
    -    __eq__ = new_method_proxy(operator.eq)
    -    __lt__ = new_method_proxy(operator.lt)
    -    __gt__ = new_method_proxy(operator.gt)
    -    __ne__ = new_method_proxy(operator.ne)
    -    __hash__ = new_method_proxy(hash)
    -
    -    # List/Tuple/Dictionary methods support
    -    __getitem__ = new_method_proxy(operator.getitem)
    -    __setitem__ = new_method_proxy(operator.setitem)
    -    __delitem__ = new_method_proxy(operator.delitem)
    -    __iter__ = new_method_proxy(iter)
    -    __len__ = new_method_proxy(len)
    -    __contains__ = new_method_proxy(operator.contains)
    -
    -
    -def unpickle_lazyobject(wrapped):
    -    """
    -    Used to unpickle lazy objects. Just return its argument, which will be the
    -    wrapped object.
    -    """
    -    return wrapped
    -
    -
    -class SimpleLazyObject(LazyObject):
    -    """
    -    A lazy object initialized from any function.
    -
    -    Designed for compound objects of unknown type. For builtins or objects of
    -    known type, use django.utils.functional.lazy.
    -    """
    -    def __init__(self, func):
    -        """
    -        Pass in a callable that returns the object to be wrapped.
    -
    -        If copies are made of the resulting SimpleLazyObject, which can happen
    -        in various circumstances within Django, then you must ensure that the
    -        callable can be safely run more than once and will return the same
    -        value.
    -        """
    -        self.__dict__['_setupfunc'] = func
    -        super().__init__()
    -
    -    def _setup(self):
    -        self._wrapped = self._setupfunc()
    -
    -    # Return a meaningful representation of the lazy object for debugging
    -    # without evaluating the wrapped object.
    -    def __repr__(self):
    -        if self._wrapped is empty:
    -            repr_attr = self._setupfunc
    -        else:
    -            repr_attr = self._wrapped
    -        return '<%s: %r>' % (type(self).__name__, repr_attr)
    -
    -    def __copy__(self):
    -        if self._wrapped is empty:
    -            # If uninitialized, copy the wrapper. Use SimpleLazyObject, not
    -            # self.__class__, because the latter is proxied.
    -            return SimpleLazyObject(self._setupfunc)
    -        else:
    -            # If initialized, return a copy of the wrapped object.
    -            return copy.copy(self._wrapped)
    -
    -    def __deepcopy__(self, memo):
    -        if self._wrapped is empty:
    -            # We have to use SimpleLazyObject, not self.__class__, because the
    -            # latter is proxied.
    -            result = SimpleLazyObject(self._setupfunc)
    -            memo[id(self)] = result
    -            return result
    -        return copy.deepcopy(self._wrapped, memo)
    -
    -
    -def partition(predicate, values):
    -    """
    -    Split the values into two sets, based on the return value of the function
    -    (True/False). e.g.:
    -
    -        >>> partition(lambda x: x > 3, range(5))
    -        [0, 1, 2, 3], [4]
    -    """
    -    results = ([], [])
    -    for item in values:
    -        results[predicate(item)].append(item)
    -    return results
    -
    - -
    -
    -
    -
    - -
    -
    - - - - \ No newline at end of file diff --git a/docs/0.9.5/_modules/evennia.html b/docs/0.9.5/_modules/evennia.html index f67d798380..eb64bb4d7a 100644 --- a/docs/0.9.5/_modules/evennia.html +++ b/docs/0.9.5/_modules/evennia.html @@ -137,7 +137,6 @@ TASK_HANDLER = None TICKER_HANDLER = None MONITOR_HANDLER = None -CHANNEL_HANDLER = None # Containers GLOBAL_SCRIPTS = None @@ -191,7 +190,7 @@ global signals global settings, lockfuncs, logger, utils, gametime, ansi, spawn, managers global contrib, TICKER_HANDLER, MONITOR_HANDLER, SESSION_HANDLER - global CHANNEL_HANDLER, TASK_HANDLER + global TASK_HANDLER global GLOBAL_SCRIPTS, OPTION_CLASSES global EvMenu, EvTable, EvForm, EvMore, EvEditor global ANSIString @@ -254,7 +253,6 @@ from .scripts.tickerhandler import TICKER_HANDLER from .scripts.taskhandler import TASK_HANDLER from .server.sessionhandler import SESSION_HANDLER - from .comms.channelhandler import CHANNEL_HANDLER from .scripts.monitorhandler import MONITOR_HANDLER # containers @@ -383,7 +381,6 @@ CMD_NOINPUT - no input was given on command line CMD_NOMATCH - no valid command key was found CMD_MULTIMATCH - multiple command matches were found - CMD_CHANNEL - the command name is a channel name CMD_LOGINSTART - this command will be called as the very first command when an account connects to the server. @@ -398,7 +395,6 @@ CMD_NOINPUT = cmdhandler.CMD_NOINPUT CMD_NOMATCH = cmdhandler.CMD_NOMATCH CMD_MULTIMATCH = cmdhandler.CMD_MULTIMATCH - CMD_CHANNEL = cmdhandler.CMD_CHANNEL CMD_LOGINSTART = cmdhandler.CMD_LOGINSTART del cmdhandler @@ -504,11 +500,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/accounts/accounts.html b/docs/0.9.5/_modules/evennia/accounts/accounts.html index 813c8439bb..29f5475580 100644 --- a/docs/0.9.5/_modules/evennia/accounts/accounts.html +++ b/docs/0.9.5/_modules/evennia/accounts/accounts.html @@ -42,7 +42,7 @@

    Source code for evennia.accounts.accounts

     """
    -Typeclass for Account objects
    +Typeclass for Account objects.
     
     Note that this object is primarily intended to
     store OOC information, not game info! This
    @@ -74,7 +74,7 @@
         SIGNAL_OBJECT_POST_PUPPET,
         SIGNAL_OBJECT_POST_UNPUPPET,
     )
    -from evennia.typeclasses.attributes import NickHandler
    +from evennia.typeclasses.attributes import NickHandler, ModelAttributeBackend
     from evennia.scripts.scripthandler import ScriptHandler
     from evennia.commands.cmdsethandler import CmdSetHandler
     from evennia.utils.optionhandler import OptionHandler
    @@ -91,14 +91,17 @@
     _MAX_NR_CHARACTERS = settings.MAX_NR_CHARACTERS
     _CMDSET_ACCOUNT = settings.CMDSET_ACCOUNT
     _MUDINFO_CHANNEL = None
    +_CONNECT_CHANNEL = None
     _CMDHANDLER = None
     
    +
     # Create throttles for too many account-creations and login attempts
     CREATION_THROTTLE = Throttle(
    -    limit=settings.CREATION_THROTTLE_LIMIT, timeout=settings.CREATION_THROTTLE_TIMEOUT
    +    name='creation', limit=settings.CREATION_THROTTLE_LIMIT,
    +    timeout=settings.CREATION_THROTTLE_TIMEOUT
     )
     LOGIN_THROTTLE = Throttle(
    -    limit=settings.LOGIN_THROTTLE_LIMIT, timeout=settings.LOGIN_THROTTLE_TIMEOUT
    +    name='login', limit=settings.LOGIN_THROTTLE_LIMIT, timeout=settings.LOGIN_THROTTLE_TIMEOUT
     )
     
     
    @@ -242,7 +245,7 @@
     
     
    [docs] @lazy_property def nicks(self): - return NickHandler(self)
    + return NickHandler(self, ModelAttributeBackend)
    [docs] @lazy_property def sessions(self): @@ -276,6 +279,21 @@ return objs +
    [docs] def get_display_name(self, looker, **kwargs): + """ + This is used by channels and other OOC communications methods to give a + custom display of this account's input. + + Args: + looker (Account): The one that will see this name. + **kwargs: Unused by default, can be used to pass game-specific data. + + Returns: + str: The name, possibly modified. + + """ + return f"|c{self.key}|n"
    + # session-related methods
    [docs] def disconnect_session_from_account(self, session, reason=None): @@ -318,11 +336,11 @@ raise RuntimeError("Session not found") if self.get_puppet(session) == obj: # already puppeting this object - self.msg(_("You are already puppeting this object.")) + self.msg("You are already puppeting this object.") return if not obj.access(self, "puppet"): # no access - self.msg(_("You don't have permission to puppet '{key}'.").format(key=obj.key)) + self.msg("You don't have permission to puppet '{obj.key}'.") return if obj.account: # object already puppeted @@ -338,8 +356,8 @@ else: txt1 = f"Taking over |c{obj.name}|n from another of your sessions." txt2 = f"|c{obj.name}|n|R is now acted from another of your sessions.|n" - self.msg(_(txt1), session=session) - self.msg(_(txt2), session=obj.sessions.all()) + self.msg(txt1, session=session) + self.msg(txt2, session=obj.sessions.all()) self.unpuppet_object(obj.sessions.get()) elif obj.account.is_connected: # controlled by another account @@ -361,8 +379,6 @@ obj.account = self session.puid = obj.id session.puppet = obj - # validate/start persistent scripts on object - obj.scripts.validate() # re-cache locks to make sure superuser bypass is updated obj.locks.cache_lock_bypass(obj) @@ -571,7 +587,7 @@ # Update throttle if ip: - LOGIN_THROTTLE.update(ip, "Too many authentication failures.") + LOGIN_THROTTLE.update(ip, _("Too many authentication failures.")) # Try to call post-failure hook session = kwargs.get("session", None) @@ -686,8 +702,9 @@ password (str): Password to set. Notes: - This is called by Django also when logging in; it should not be mixed up with validation, since that - would mean old passwords in the database (pre validation checks) could get invalidated. + This is called by Django also when logging in; it should not be mixed up with + validation, since that would mean old passwords in the database (pre validation checks) + could get invalidated. """ super(DefaultAccount, self).set_password(password) @@ -826,12 +843,10 @@ ) logger.log_sec(f"Account Created: {account} (IP: {ip}).") - except Exception as e: + except Exception: errors.append( - _( - "There was an error creating the Account. If this problem persists, contact an admin." - ) - ) + _("There was an error creating the Account. " + "If this problem persists, contact an admin.")) logger.log_trace() return None, errors @@ -847,7 +862,7 @@ # join the new account to the public channel pchannel = ChannelDB.objects.get_channel(settings.DEFAULT_CHANNELS[0]["key"]) if not pchannel or not pchannel.connect(account): - string = f"New account '{account.key}' could not connect to public channel!" + string = "New account '{account.key}' could not connect to public channel!" errors.append(string) logger.log_err(string) @@ -875,12 +890,18 @@
    [docs] def delete(self, *args, **kwargs): """ - Deletes the account permanently. + Deletes the account persistently. Notes: `*args` and `**kwargs` are passed on to the base delete mechanism (these are usually not used). + Return: + bool: If deletion was successful. Only time it fails would be + if the Account was already deleted. Note that even on a failure, + connected resources (nicks/aliases etc) will still have been + deleted. + """ for session in self.sessions.all(): # unpuppeting all objects and disconnecting the user, if any @@ -896,7 +917,11 @@ self.attributes.clear() self.nicks.clear() self.aliases.clear() - super().delete(*args, **kwargs)
    + if not self.pk: + return False + super().delete(*args, **kwargs) + return True
    + # methods inherited from database model @@ -990,6 +1015,89 @@ self, raw_string, callertype="account", session=session, **kwargs )
    + # channel receive hooks + +
    [docs] def at_pre_channel_msg(self, message, channel, senders=None, **kwargs): + """ + Called by the Channel just before passing a message into `channel_msg`. + This allows for tweak messages per-user and also to abort the + receive on the receiver-level. + + Args: + message (str): The message sent to the channel. + channel (Channel): The sending channel. + senders (list, optional): Accounts or Objects acting as senders. + For most normal messages, there is only a single sender. If + there are no senders, this may be a broadcasting message. + **kwargs: These are additional keywords passed into `channel_msg`. + If `no_prefix=True` or `emit=True` are passed, the channel + prefix will not be added (`[channelname]: ` by default) + + Returns: + str or None: Allows for customizing the message for this recipient. + If returning `None` (or `False`) message-receiving is aborted. + The returning string will be passed into `self.channel_msg`. + + Notes: + This support posing/emotes by starting channel-send with : or ;. + + """ + if senders: + sender_string = ', '.join(sender.get_display_name(self) for sender in senders) + message_lstrip = message.lstrip() + if message_lstrip.startswith((':', ';')): + # this is a pose, should show as e.g. "User1 smiles to channel" + spacing = "" if message_lstrip[1:].startswith((':', '\'', ',')) else " " + message = f"{sender_string}{spacing}{message_lstrip[1:]}" + else: + # normal message + message = f"{sender_string}: {message}" + + if not kwargs.get("no_prefix") or not kwargs.get("emit"): + message = channel.channel_prefix() + message + + return message
    + +
    [docs] def channel_msg(self, message, channel, senders=None, **kwargs): + """ + This performs the actions of receiving a message to an un-muted + channel. + + Args: + message (str): The message sent to the channel. + channel (Channel): The sending channel. + senders (list, optional): Accounts or Objects acting as senders. + For most normal messages, there is only a single sender. If + there are no senders, this may be a broadcasting message or + similar. + **kwargs: These are additional keywords originally passed into + `Channel.msg`. + + Notes: + Before this, `Channel.at_pre_channel_msg` will fire, which offers a way + to customize the message for the receiver on the channel-level. + + """ + self.msg(text=(message, {"from_channel": channel.id}), + from_obj=senders, options={"from_channel": channel.id})
    + +
    [docs] def at_post_channel_msg(self, message, channel, senders=None, **kwargs): + """ + Called by `self.channel_msg` after message was received. + + Args: + message (str): The message sent to the channel. + channel (Channel): The sending channel. + senders (list, optional): Accounts or Objects acting as senders. + For most normal messages, there is only a single sender. If + there are no senders, this may be a broadcasting message. + **kwargs: These are additional keywords passed into `channel_msg`. + + """ + pass
    + + # search method +
    [docs] def search( self, searchdata, @@ -1141,7 +1249,7 @@ self.locks.add(lockstring) # The ooc account cmdset - self.cmdset.add_default(_CMDSET_ACCOUNT, permanent=True)
    + self.cmdset.add_default(_CMDSET_ACCOUNT, persistent=True)
    [docs] def at_account_creation(self): """ @@ -1297,30 +1405,42 @@ def _send_to_connect_channel(self, message): """ - Helper method for loading and sending to the comm channel - dedicated to connection messages. + Helper method for loading and sending to the comm channel dedicated to + connection messages. This will also be sent to the mudinfo channel. Args: message (str): A message to send to the connect channel. """ - global _MUDINFO_CHANNEL - if not _MUDINFO_CHANNEL: - try: - _MUDINFO_CHANNEL = ChannelDB.objects.filter(db_key=settings.CHANNEL_MUDINFO["key"])[ - 0 - ] - except Exception: - logger.log_trace() + global _MUDINFO_CHANNEL, _CONNECT_CHANNEL + if _MUDINFO_CHANNEL is None: + if settings.CHANNEL_MUDINFO: + try: + _MUDINFO_CHANNEL = ChannelDB.objects.get( + db_key=settings.CHANNEL_MUDINFO["key"]) + except ChannelDB.DoesNotExist: + logger.log_trace() + else: + _MUDINFO = False + if _CONNECT_CHANNEL is None: + if settings.CHANNEL_CONNECTINFO: + try: + _CONNECT_CHANNEL = ChannelDB.objects.get( + db_key=settings.CHANNEL_CONNECTINFO["key"]) + except ChannelDB.DoesNotExist: + logger.log_trace() + else: + _CONNECT_CHANNEL = False + if settings.USE_TZ: now = timezone.localtime() else: now = timezone.now() now = "%02i-%02i-%02i(%02i:%02i)" % (now.year, now.month, now.day, now.hour, now.minute) if _MUDINFO_CHANNEL: - _MUDINFO_CHANNEL.tempmsg(f"[{_MUDINFO_CHANNEL.key}, {now}]: {message}") - else: - logger.log_info(f"[{now}]: {message}") + _MUDINFO_CHANNEL.msg(f"[{now}]: {message}") + if _CONNECT_CHANNEL: + _CONNECT_CHANNEL.msg(f"[{now}]: {message}")
    [docs] def at_post_login(self, session=None, **kwargs): """ @@ -1507,7 +1627,7 @@ if hasattr(target, "return_appearance"): return target.return_appearance(self) else: - return _("{target} has no in-game appearance.").format(target=target) + return f"{target} has no in-game appearance." else: # list of targets - make list to disconnect from db characters = list(tar for tar in target if tar) if target else [] @@ -1550,19 +1670,18 @@ if is_su or len(characters) < charmax: if not characters: result.append( - _( - "\n\n You don't have any characters yet. See |whelp @charcreate|n for creating one." - ) + "\n\n You don't have any characters yet. See |whelp charcreate|n for " + "creating one." ) else: - result.append("\n |w@charcreate <name> [=description]|n - create new character") + result.append("\n |wcharcreate <name> [=description]|n - create new character") result.append( - "\n |w@chardelete <name>|n - delete a character (cannot be undone!)" + "\n |wchardelete <name>|n - delete a character (cannot be undone!)" ) if characters: string_s_ending = len(characters) > 1 and "s" or "" - result.append("\n |w@ic <character>|n - enter the game (|w@ooc|n to get back here)") + result.append("\n |wic <character>|n - enter the game (|wooc|n to get back here)") if is_su: result.append( f"\n\nAvailable character{string_s_ending} ({len(characters)}/unlimited):" @@ -1584,11 +1703,12 @@ sid = sess in sessions and sessions.index(sess) + 1 if sess and sid: result.append( - f"\n - |G{char.key}|n [{', '.join(char.permissions.all())}] (played by you in session {sid})" - ) + f"\n - |G{char.key}|n [{', '.join(char.permissions.all())}] " + f"(played by you in session {sid})") else: result.append( - f"\n - |R{char.key}|n [{', '.join(char.permissions.all())}] (played by someone else)" + f"\n - |R{char.key}|n [{', '.join(char.permissions.all())}] " + "(played by someone else)" ) else: # character is "free to puppet" @@ -1601,6 +1721,7 @@ """ This class is used for guest logins. Unlike Accounts, Guests and their characters are deleted after disconnection. + """
    [docs] @classmethod @@ -1608,6 +1729,7 @@ """ Forwards request to cls.authenticate(); returns a DefaultGuest object if one is available for use. + """ return cls.authenticate(**kwargs)
    @@ -1675,7 +1797,7 @@ return account, errors - except Exception as e: + except Exception: # We are in the middle between logged in and -not, so we have # to handle tracebacks ourselves at this point. If we don't, # we won't see any errors at all. @@ -1706,9 +1828,10 @@ """ super().at_server_shutdown() characters = self.db._playable_characters - for character in characters: - if character: - character.delete()
    + if characters: + for character in characters: + if character: + character.delete()
    [docs] def at_post_disconnect(self, **kwargs): """ @@ -1750,11 +1873,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/accounts/admin.html b/docs/0.9.5/_modules/evennia/accounts/admin.html deleted file mode 100644 index 4c4821234f..0000000000 --- a/docs/0.9.5/_modules/evennia/accounts/admin.html +++ /dev/null @@ -1,471 +0,0 @@ - - - - - - - - evennia.accounts.admin — Evennia 0.9.5 documentation - - - - - - - - - - - - - - - -
    -
    -
    -
    - -

    Source code for evennia.accounts.admin

    -#
    -# This sets up how models are displayed
    -# in the web admin interface.
    -#
    -from django import forms
    -from django.conf import settings
    -from django.contrib import admin, messages
    -from django.contrib.admin.options import IS_POPUP_VAR
    -from django.contrib.auth.admin import UserAdmin as BaseUserAdmin
    -from django.contrib.auth.forms import UserChangeForm, UserCreationForm
    -from django.contrib.admin.utils import unquote
    -from django.template.response import TemplateResponse
    -from django.http import Http404, HttpResponseRedirect
    -from django.core.exceptions import PermissionDenied
    -from django.views.decorators.debug import sensitive_post_parameters
    -from django.utils.decorators import method_decorator
    -from django.utils.html import escape
    -from django.urls import path, reverse
    -from django.contrib.auth import update_session_auth_hash
    -
    -from evennia.accounts.models import AccountDB
    -from evennia.typeclasses.admin import AttributeInline, TagInline
    -from evennia.utils import create
    -
    -sensitive_post_parameters_m = method_decorator(sensitive_post_parameters())
    -
    -
    -# handle the custom User editor
    -
    [docs]class AccountDBChangeForm(UserChangeForm): - """ - Modify the accountdb class. - - """ - -
    [docs] class Meta(object): - model = AccountDB - fields = "__all__"
    - - username = forms.RegexField( - label="Username", - max_length=30, - regex=r"^[\w. @+-]+$", - widget=forms.TextInput(attrs={"size": "30"}), - error_messages={ - "invalid": "This value may contain only letters, spaces, numbers " - "and @/./+/-/_ characters." - }, - help_text="30 characters or fewer. Letters, spaces, digits and " "@/./+/-/_ only.", - ) - -
    [docs] def clean_username(self): - """ - Clean the username and check its existence. - - """ - username = self.cleaned_data["username"] - if username.upper() == self.instance.username.upper(): - return username - elif AccountDB.objects.filter(username__iexact=username): - raise forms.ValidationError("An account with that name " "already exists.") - return self.cleaned_data["username"]
    - - -
    [docs]class AccountDBCreationForm(UserCreationForm): - """ - Create a new AccountDB instance. - """ - -
    [docs] class Meta(object): - model = AccountDB - fields = "__all__"
    - - username = forms.RegexField( - label="Username", - max_length=30, - regex=r"^[\w. @+-]+$", - widget=forms.TextInput(attrs={"size": "30"}), - error_messages={ - "invalid": "This value may contain only letters, spaces, numbers " - "and @/./+/-/_ characters." - }, - help_text="30 characters or fewer. Letters, spaces, digits and " "@/./+/-/_ only.", - ) - -
    [docs] def clean_username(self): - """ - Cleanup username. - """ - username = self.cleaned_data["username"] - if AccountDB.objects.filter(username__iexact=username): - raise forms.ValidationError("An account with that name already " "exists.") - return username
    - - -
    [docs]class AccountForm(forms.ModelForm): - """ - Defines how to display Accounts - - """ - -
    [docs] class Meta(object): - model = AccountDB - fields = "__all__" - app_label = "accounts"
    - - db_key = forms.RegexField( - label="Username", - initial="AccountDummy", - max_length=30, - regex=r"^[\w. @+-]+$", - required=False, - widget=forms.TextInput(attrs={"size": "30"}), - error_messages={ - "invalid": "This value may contain only letters, spaces, numbers" - " and @/./+/-/_ characters." - }, - help_text="This should be the same as the connected Account's key " - "name. 30 characters or fewer. Letters, spaces, digits and " - "@/./+/-/_ only.", - ) - - db_typeclass_path = forms.CharField( - label="Typeclass", - initial=settings.BASE_ACCOUNT_TYPECLASS, - widget=forms.TextInput(attrs={"size": "78"}), - help_text="Required. Defines what 'type' of entity this is. This " - "variable holds a Python path to a module with a valid " - "Evennia Typeclass. Defaults to " - "settings.BASE_ACCOUNT_TYPECLASS.", - ) - - db_permissions = forms.CharField( - label="Permissions", - initial=settings.PERMISSION_ACCOUNT_DEFAULT, - required=False, - widget=forms.TextInput(attrs={"size": "78"}), - help_text="In-game permissions. A comma-separated list of text " - "strings checked by certain locks. They are often used for " - "hierarchies, such as letting an Account have permission " - "'Admin', 'Builder' etc. An Account permission can be " - "overloaded by the permissions of a controlled Character. " - "Normal accounts use 'Accounts' by default.", - ) - - db_lock_storage = forms.CharField( - label="Locks", - widget=forms.Textarea(attrs={"cols": "100", "rows": "2"}), - required=False, - help_text="In-game lock definition string. If not given, defaults " - "will be used. This string should be on the form " - "<i>type:lockfunction(args);type2:lockfunction2(args);...", - ) - db_cmdset_storage = forms.CharField( - label="cmdset", - initial=settings.CMDSET_ACCOUNT, - widget=forms.TextInput(attrs={"size": "78"}), - required=False, - help_text="python path to account cmdset class (set in " - "settings.CMDSET_ACCOUNT by default)", - )
    - - -
    [docs]class AccountInline(admin.StackedInline): - """ - Inline creation of Account - - """ - - model = AccountDB - template = "admin/accounts/stacked.html" - form = AccountForm - fieldsets = ( - ( - "In-game Permissions and Locks", - { - "fields": ("db_lock_storage",), - # {'fields': ('db_permissions', 'db_lock_storage'), - "description": "<i>These are permissions/locks for in-game use. " - "They are unrelated to website access rights.</i>", - }, - ), - ( - "In-game Account data", - { - "fields": ("db_typeclass_path", "db_cmdset_storage"), - "description": "<i>These fields define in-game-specific properties " - "for the Account object in-game.</i>", - }, - ), - ) - - extra = 1 - max_num = 1
    - - -
    [docs]class AccountTagInline(TagInline): - """ - Inline Account Tags. - - """ - - model = AccountDB.db_tags.through - related_field = "accountdb"
    - - -
    [docs]class AccountAttributeInline(AttributeInline): - """ - Inline Account Attributes. - - """ - - model = AccountDB.db_attributes.through - related_field = "accountdb"
    - - -
    [docs]class AccountDBAdmin(BaseUserAdmin): - """ - This is the main creation screen for Users/accounts - - """ - - list_display = ("username", "email", "is_staff", "is_superuser") - form = AccountDBChangeForm - add_form = AccountDBCreationForm - inlines = [AccountTagInline, AccountAttributeInline] - fieldsets = ( - (None, {"fields": ("username", "password", "email")}), - ( - "Website profile", - { - "fields": ("first_name", "last_name"), - "description": "<i>These are not used " "in the default system.</i>", - }, - ), - ( - "Website dates", - { - "fields": ("last_login", "date_joined"), - "description": "<i>Relevant only to the website.</i>", - }, - ), - ( - "Website Permissions", - { - "fields": ("is_active", "is_staff", "is_superuser", "user_permissions", "groups"), - "description": "<i>These are permissions/permission groups for " - "accessing the admin site. They are unrelated to " - "in-game access rights.</i>", - }, - ), - ( - "Game Options", - { - "fields": ("db_typeclass_path", "db_cmdset_storage", "db_lock_storage"), - "description": "<i>These are attributes that are more relevant " "to gameplay.</i>", - }, - ), - ) - # ('Game Options', {'fields': ( - # 'db_typeclass_path', 'db_cmdset_storage', - # 'db_permissions', 'db_lock_storage'), - # 'description': '<i>These are attributes that are ' - # 'more relevant to gameplay.</i>'})) - - add_fieldsets = ( - ( - None, - { - "fields": ("username", "password1", "password2", "email"), - "description": "<i>These account details are shared by the admin " - "system and the game.</i>", - }, - ), - ) - -
    [docs] @sensitive_post_parameters_m - def user_change_password(self, request, id, form_url=""): - user = self.get_object(request, unquote(id)) - if not self.has_change_permission(request, user): - raise PermissionDenied - if user is None: - raise Http404("%(name)s object with primary key %(key)r does not exist.") % { - "name": self.model._meta.verbose_name, - "key": escape(id), - } - if request.method == "POST": - form = self.change_password_form(user, request.POST) - if form.is_valid(): - form.save() - change_message = self.construct_change_message(request, form, None) - self.log_change(request, user, change_message) - msg = "Password changed successfully." - messages.success(request, msg) - update_session_auth_hash(request, form.user) - return HttpResponseRedirect( - reverse( - "%s:%s_%s_change" - % ( - self.admin_site.name, - user._meta.app_label, - # the model_name is something we need to hardcode - # since our accountdb is a proxy: - "accountdb", - ), - args=(user.pk,), - ) - ) - else: - form = self.change_password_form(user) - - fieldsets = [(None, {"fields": list(form.base_fields)})] - adminForm = admin.helpers.AdminForm(form, fieldsets, {}) - - context = { - "title": "Change password: %s" % escape(user.get_username()), - "adminForm": adminForm, - "form_url": form_url, - "form": form, - "is_popup": (IS_POPUP_VAR in request.POST or IS_POPUP_VAR in request.GET), - "add": True, - "change": False, - "has_delete_permission": False, - "has_change_permission": True, - "has_absolute_url": False, - "opts": self.model._meta, - "original": user, - "save_as": False, - "show_save": True, - **self.admin_site.each_context(request), - } - - request.current_app = self.admin_site.name - - return TemplateResponse( - request, - self.change_user_password_template or "admin/auth/user/change_password.html", - context, - )
    - -
    [docs] def save_model(self, request, obj, form, change): - """ - Custom save actions. - - Args: - request (Request): Incoming request. - obj (Object): Object to save. - form (Form): Related form instance. - change (bool): False if this is a new save and not an update. - - """ - obj.save() - if not change: - # calling hooks for new account - obj.set_class_from_typeclass(typeclass_path=settings.BASE_ACCOUNT_TYPECLASS) - obj.basetype_setup() - obj.at_account_creation()
    - -
    [docs] def response_add(self, request, obj, post_url_continue=None): - from django.http import HttpResponseRedirect - from django.urls import reverse - - return HttpResponseRedirect(reverse("admin:accounts_accountdb_change", args=[obj.id]))
    - - -admin.site.register(AccountDB, AccountDBAdmin) -
    - -
    -
    -
    -
    - -
    -
    - - - - \ No newline at end of file diff --git a/docs/0.9.5/_modules/evennia/accounts/bots.html b/docs/0.9.5/_modules/evennia/accounts/bots.html index 5041d94f4e..3463be37de 100644 --- a/docs/0.9.5/_modules/evennia/accounts/bots.html +++ b/docs/0.9.5/_modules/evennia/accounts/bots.html @@ -373,7 +373,7 @@ nicklist = ", ".join(sorted(kwargs["nicklist"], key=lambda n: n.lower())) for obj in self._nicklist_callers: obj.msg( - _("Nicks at {chstr}:\n {nicklist}").format(chstr=chstr, nicklist=nicklist) + "Nicks at {chstr}:\n {nicklist}".format(chstr=chstr, nicklist=nicklist) ) self._nicklist_callers = [] return @@ -384,7 +384,7 @@ chstr = f"{self.db.irc_channel} ({self.db.irc_network}:{self.db.irc_port})" for obj in self._ping_callers: obj.msg( - _("IRC ping return from {chstr} took {time}s.").format( + "IRC ping return from {chstr} took {time}s.".format( chstr=chstr, time=kwargs["timing"] ) ) @@ -440,6 +440,7 @@ # # RSS +#
    [docs]class RSSBot(Bot): @@ -645,11 +646,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/accounts/manager.html b/docs/0.9.5/_modules/evennia/accounts/manager.html index 76bb223b3f..41917a2f60 100644 --- a/docs/0.9.5/_modules/evennia/accounts/manager.html +++ b/docs/0.9.5/_modules/evennia/accounts/manager.html @@ -255,11 +255,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/accounts/models.html b/docs/0.9.5/_modules/evennia/accounts/models.html index 95a66ffa4d..a081358191 100644 --- a/docs/0.9.5/_modules/evennia/accounts/models.html +++ b/docs/0.9.5/_modules/evennia/accounts/models.html @@ -89,7 +89,7 @@ # ------------------------------------------------------------ -
    [docs]class AccountDB(TypedObject, AbstractUser): +
    [docs]class AccountDB(TypedObject, AbstractUser): """ This is a special model using Django's 'profile' functionality and extends the default Django User model. It is defined as such @@ -137,7 +137,8 @@ "cmdset", max_length=255, null=True, - help_text="optional python path to a cmdset class. If creating a Character, this will default to settings.CMDSET_CHARACTER.", + help_text="optional python path to a cmdset class. If creating a Character, this will " + "default to settings.CMDSET_CHARACTER.", ) # marks if this is a "virtual" bot account object db_is_bot = models.BooleanField( @@ -152,8 +153,8 @@ __applabel__ = "accounts" __settingsclasspath__ = settings.BASE_SCRIPT_TYPECLASS - # class Meta: - # verbose_name = "Account" + class Meta: + verbose_name = "Account" # cmdset_storage property # This seems very sensitive to caching, so leaving it be for now /Griatch @@ -247,11 +248,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/commands/cmdhandler.html b/docs/0.9.5/_modules/evennia/commands/cmdhandler.html index 599bf4634c..d2eee130a4 100644 --- a/docs/0.9.5/_modules/evennia/commands/cmdhandler.html +++ b/docs/0.9.5/_modules/evennia/commands/cmdhandler.html @@ -49,10 +49,6 @@ 1. The calling object (caller) is analyzed based on its callertype. 2. Cmdsets are gathered from different sources: - - channels: all available channel names are auto-created into a cmdset, to allow - for giving the channel name and have the following immediately - sent to the channel. The sending is performed by the CMD_CHANNEL - system command. - object cmdsets: all objects at caller's location are scanned for non-empty cmdsets. This includes cmdsets on exits. - caller: the caller is searched for its own currently active cmdset. @@ -66,14 +62,12 @@ cmdset, or fallback to error message. Exit. 7. If no match was found -> check for CMD_NOMATCH in current cmdset or fallback to error message. Exit. -8. A single match was found. If this is a channel-command (i.e. the - ommand name is that of a channel), --> check for CMD_CHANNEL in - current cmdset or use channelhandler default. Exit. -9. At this point we have found a normal command. We assign useful variables to it that +8. At this point we have found a normal command. We assign useful variables to it that will be available to the command coder at run-time. -12. We have a unique cmdobject, primed for use. Call all hooks: +9. We have a unique cmdobject, primed for use. Call all hooks: `at_pre_cmd()`, `cmdobj.parse()`, `cmdobj.func()` and finally `at_post_cmd()`. -13. Return deferred that will fire with the return from `cmdobj.func()` (unused by default). +10. Return deferred that will fire with the return from `cmdobj.func()` (unused by default). + """ from collections import defaultdict @@ -87,7 +81,6 @@ from twisted.internet.defer import inlineCallbacks, returnValue from django.conf import settings from evennia.commands.command import InterruptCommand -from evennia.comms.channelhandler import CHANNELHANDLER from evennia.utils import logger, utils from evennia.utils.utils import string_suggestions @@ -118,12 +111,11 @@ CMD_NOMATCH = "__nomatch_command" # command to call if multiple command matches were found CMD_MULTIMATCH = "__multimatch_command" -# command to call if found command is the name of a channel -CMD_CHANNEL = "__send_to_channel_command" # command to call as the very first one when the user connects. # (is expected to display the login screen) CMD_LOGINSTART = "__unloggedin_look_command" + # Function for handling multiple command matches. _SEARCH_AT_RESULT = utils.variable_from_module(*settings.SEARCH_AT_RESULT.rsplit(".", 1)) @@ -131,50 +123,50 @@ # is the normal "production message to echo to the account. _ERROR_UNTRAPPED = ( - """ -An untrapped error occurred. -""", - """ -An untrapped error occurred. Please file a bug report detailing the steps to reproduce. -""", + _(""" +An untrapped error occurred. +"""), + _(""" +An untrapped error occurred. Please file a bug report detailing the steps to reproduce. +"""), ) _ERROR_CMDSETS = ( - """ -A cmdset merger-error occurred. This is often due to a syntax -error in one of the cmdsets to merge. -""", - """ -A cmdset merger-error occurred. Please file a bug report detailing the -steps to reproduce. -""", + _(""" +A cmdset merger-error occurred. This is often due to a syntax +error in one of the cmdsets to merge. +"""), + _(""" +A cmdset merger-error occurred. Please file a bug report detailing the +steps to reproduce. +"""), ) _ERROR_NOCMDSETS = ( - """ -No command sets found! This is a critical bug that can have -multiple causes. -""", - """ -No command sets found! This is a sign of a critical bug. If -disconnecting/reconnecting doesn't" solve the problem, try to contact -the server admin through" some other means for assistance. -""", + _(""" +No command sets found! This is a critical bug that can have +multiple causes. +"""), + _(""" +No command sets found! This is a sign of a critical bug. If +disconnecting/reconnecting doesn't" solve the problem, try to contact +the server admin through" some other means for assistance. +"""), ) _ERROR_CMDHANDLER = ( - """ -A command handler bug occurred. If this is not due to a local change, -please file a bug report with the Evennia project, including the -traceback and steps to reproduce. -""", - """ -A command handler bug occurred. Please notify staff - they should -likely file a bug report with the Evennia project. -""", + _(""" +A command handler bug occurred. If this is not due to a local change, +please file a bug report with the Evennia project, including the +traceback and steps to reproduce. +"""), + _(""" +A command handler bug occurred. Please notify staff - they should +likely file a bug report with the Evennia project. +"""), ) -_ERROR_RECURSION_LIMIT = ( +_ERROR_RECURSION_LIMIT = _( "Command recursion limit ({recursion_limit}) " "reached for '{raw_cmdname}' ({cmdclass})." ) @@ -197,7 +189,7 @@ production string (with a timestamp) to be shown to the user. """ - string = "{traceback}\n{errmsg}\n(Traceback was logged {timestamp})." + string = _("{traceback}\n{errmsg}\n(Traceback was logged {timestamp}).") timestamp = logger.timeformat() tracestring = format_exc() logger.log_trace() @@ -346,23 +338,11 @@ """ try: - @inlineCallbacks - def _get_channel_cmdset(account_or_obj): - """ - Helper-method; Get channel-cmdsets - """ - # Create cmdset for all account's available channels - try: - channel_cmdset = yield CHANNELHANDLER.get_cmdset(account_or_obj) - returnValue([channel_cmdset]) - except Exception: - _msg_err(caller, _ERROR_CMDSETS) - raise ErrorReported(raw_string) - @inlineCallbacks def _get_local_obj_cmdsets(obj): """ Helper-method; Get Object-level cmdsets + """ # Gather cmdsets from location, objects in location or carried try: @@ -416,6 +396,7 @@ """ Helper method; Get cmdset while making sure to trigger all hooks safely. Returns the stack and the valid options. + """ try: yield obj.at_cmdset_get() @@ -448,13 +429,6 @@ cmdset for cmdset in local_obj_cmdsets if cmdset.key != "ExitCmdSet" ] cmdsets += local_obj_cmdsets - if not current.no_channels: - # also objs may have channels - channel_cmdsets = yield _get_channel_cmdset(obj) - cmdsets += channel_cmdsets - if not current.no_channels: - channel_cmdsets = yield _get_channel_cmdset(account) - cmdsets += channel_cmdsets elif callertype == "account": # we are calling the command from the account level @@ -472,11 +446,6 @@ cmdset for cmdset in local_obj_cmdsets if cmdset.key != "ExitCmdSet" ] cmdsets += local_obj_cmdsets - if not current.no_channels: - # also objs may have channels - cmdsets += yield _get_channel_cmdset(obj) - if not current.no_channels: - cmdsets += yield _get_channel_cmdset(account) elif callertype == "object": # we are calling the command from the object level @@ -490,9 +459,6 @@ cmdset for cmdset in local_obj_cmdsets if cmdset.key != "ExitCmdSet" ] cmdsets += yield local_obj_cmdsets - if not current.no_channels: - # also objs may have channels - cmdsets += yield _get_channel_cmdset(obj) else: raise Exception("get_and_merge_cmdsets: callertype %s is not valid." % callertype) @@ -651,11 +617,6 @@ # since this may be different for every command when # merging multiple cmdsets - if hasattr(cmd, "obj") and hasattr(cmd.obj, "scripts"): - # cmd.obj is automatically made available by the cmdhandler. - # we make sure to validate its scripts. - yield cmd.obj.scripts.validate() - if _testing: # only return the command instance returnValue(cmd) @@ -820,17 +781,9 @@ sysarg += _(' Type "help" for help.') raise ExecSystemCommand(syscmd, sysarg) - # Check if this is a Channel-cmd match. - if hasattr(cmd, "is_channel") and cmd.is_channel: - # even if a user-defined syscmd is not defined, the - # found cmd is already a system command in its own right. - syscmd = yield cmdset.get(CMD_CHANNEL) - if syscmd: - # replace system command with custom version - cmd = syscmd - cmd.session = session - sysarg = "%s:%s" % (cmdname, args) - raise ExecSystemCommand(cmd, sysarg) + if not cmd.retain_instance: + # making a copy allows multiple users to share the command also when yield is used + cmd = copy(cmd) # A normal command. ret = yield _run_command(cmd, cmdname, args, raw_cmdname, cmdset, session, account) @@ -893,11 +846,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/commands/cmdparser.html b/docs/0.9.5/_modules/evennia/commands/cmdparser.html index be4fc255cc..cbd10b79a8 100644 --- a/docs/0.9.5/_modules/evennia/commands/cmdparser.html +++ b/docs/0.9.5/_modules/evennia/commands/cmdparser.html @@ -114,7 +114,7 @@ for cmdname in [cmd.key] + cmd.aliases if cmdname and l_raw_string.startswith(cmdname.lower()) - and (not cmd.arg_regex or cmd.arg_regex.match(l_raw_string[len(cmdname) :])) + and (not cmd.arg_regex or cmd.arg_regex.match(l_raw_string[len(cmdname):])) ] ) else: @@ -133,7 +133,7 @@ if ( cmdname and l_raw_string.startswith(cmdname.lower()) - and (not cmd.arg_regex or cmd.arg_regex.match(l_raw_string[len(cmdname) :])) + and (not cmd.arg_regex or cmd.arg_regex.match(l_raw_string[len(cmdname):])) ): matches.append(create_match(cmdname, raw_string, cmd, raw_cmdname)) except Exception: @@ -141,7 +141,7 @@ return matches -
    [docs]def try_num_prefixes(raw_string): +
    [docs]def try_num_differentiators(raw_string): """ Test if user tried to separate multi-matches with a number separator (default 1-name, 2-name etc). This is usually called last, if no other @@ -168,8 +168,8 @@ # the user might be trying to identify the command # with a #num-command style syntax. We expect the regex to # contain the groups "number" and "name". - mindex, new_raw_string = (num_ref_match.group("number"), num_ref_match.group("name")) - return mindex, new_raw_string + mindex, new_raw_string = (num_ref_match.group("number"), num_ref_match.group("name") + num_ref_match.group("args")) + return int(mindex), new_raw_string else: return None, None
    @@ -213,19 +213,22 @@ if not raw_string: return [] - # find mathces, first using the full name + # find matches, first using the full name matches = build_matches(raw_string, cmdset, include_prefixes=True) - if not matches: - # try to match a number 1-cmdname, 2-cmdname etc - mindex, new_raw_string = try_num_prefixes(raw_string) - if mindex is not None: - return cmdparser(new_raw_string, cmdset, caller, match_index=int(mindex)) - if _CMD_IGNORE_PREFIXES: - # still no match. Try to strip prefixes - raw_string = ( - raw_string.lstrip(_CMD_IGNORE_PREFIXES) if len(raw_string) > 1 else raw_string - ) - matches = build_matches(raw_string, cmdset, include_prefixes=False) + + if not matches or len(matches) > 1: + # no single match, try parsing for optional numerical tags like 1-cmd + # or cmd-2, cmd.2 etc + match_index, new_raw_string = try_num_differentiators(raw_string) + if match_index is not None: + matches.extend(build_matches(new_raw_string, cmdset, include_prefixes=True)) + + if not matches and _CMD_IGNORE_PREFIXES: + # still no match. Try to strip prefixes + raw_string = ( + raw_string.lstrip(_CMD_IGNORE_PREFIXES) if len(raw_string) > 1 else raw_string + ) + matches = build_matches(raw_string, cmdset, include_prefixes=False) # only select command matches we are actually allowed to call. matches = [match for match in matches if match[2].access(caller, "cmd")] @@ -289,11 +292,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/commands/cmdset.html b/docs/0.9.5/_modules/evennia/commands/cmdset.html index 13f5ab06c9..205b00167b 100644 --- a/docs/0.9.5/_modules/evennia/commands/cmdset.html +++ b/docs/0.9.5/_modules/evennia/commands/cmdset.html @@ -220,7 +220,7 @@ # merge-stack, every cmdset in the stack must have `duplicates` set explicitly. duplicates = None - permanent = False + persistent = False key_mergetypes = {} errmessage = "" # pre-store properties to duplicate straight off @@ -230,7 +230,7 @@ "no_exits", "no_objs", "no_channels", - "permanent", + "persistent", "mergetype", "priority", "duplicates", @@ -400,19 +400,15 @@ commands (str): Representation of commands in Cmdset. """ - 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 - ] - ) + perm = "perm" if self.persistent 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 = (", " + 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): """ @@ -524,7 +520,8 @@ # This is used for diagnosis. cmdset_c.actual_mergetype = mergetype - # print "__add__ for %s (prio %i) called with %s (prio %i)." % (self.key, self.priority, cmdset_a.key, cmdset_a.priority) + # print "__add__ for %s (prio %i) called with %s (prio %i)." % (self.key, self.priority, + # cmdset_a.key, cmdset_a.priority) # return the system commands to the cmdset cmdset_c.add(sys_commands, allow_duplicates=True) @@ -717,6 +714,7 @@ Hook method - this should be overloaded in the inheriting class, and should take care of populating the cmdset by use of self.add(). + """ pass @@ -744,11 +742,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/commands/cmdsethandler.html b/docs/0.9.5/_modules/evennia/commands/cmdsethandler.html index 2058feb366..c75211cac3 100644 --- a/docs/0.9.5/_modules/evennia/commands/cmdsethandler.html +++ b/docs/0.9.5/_modules/evennia/commands/cmdsethandler.html @@ -105,6 +105,7 @@ can then implement separate sets for different situations. For example, you can have a 'On a boat' set, onto which you then tack on the 'Fishing' set. Fishing from a boat? No problem! + """ import sys from traceback import format_exc @@ -146,7 +147,7 @@ _ERROR_CMDSET_EXCEPTION = _( """{traceback} -Compile/Run error when loading cmdset '{path}'.", +Compile/Run error when loading cmdset '{path}'. (Traceback was logged {timestamp})""" ) @@ -211,7 +212,7 @@ if "." in path: modpath, classname = python_path.rsplit(".", 1) else: - raise ImportError("The path '%s' is not on the form modulepath.ClassName" % path) + raise ImportError(f"The path '{path}' is not on the form modulepath.ClassName") try: # first try to get from cache @@ -347,7 +348,7 @@ self.mergetype_stack = ["Union"] # the subset of the cmdset_paths that are to be stored in the database - self.permanent_paths = [""] + self.persistent_paths = [""] if init_true: self.update(init_mode=True) # is then called from the object __init__. @@ -355,6 +356,7 @@ def __str__(self): """ Display current commands + """ strings = ["<CmdSetHandler> stack:"] @@ -404,7 +406,7 @@ Args: init_mode (bool, optional): Used automatically right after - this handler was created; it imports all permanent cmdsets + this handler was created; it imports all persistent cmdsets from the database. Notes: @@ -419,7 +421,7 @@ """ if init_mode: - # reimport all permanent cmdsets + # reimport all persistent cmdsets storage = self.obj.cmdset_storage if storage: self.cmdset_stack = [] @@ -449,7 +451,7 @@ if _IN_GAME_ERRORS: self.obj.msg(err) continue - cmdset.permanent = cmdset.key != "_CMDSET_ERROR" + cmdset.persistent = cmdset.key != "_CMDSET_ERROR" self.cmdset_stack.append(cmdset) # merge the stack into a new merged cmdset @@ -464,7 +466,8 @@ self.mergetype_stack.append(new_current.actual_mergetype) self.current = new_current -
    [docs] def add(self, cmdset, emit_to_obj=None, permanent=False, default_cmdset=False): +
    [docs] def add(self, cmdset, emit_to_obj=None, persistent=False, default_cmdset=False, + **kwargs): """ Add a cmdset to the handler, on top of the old ones, unless it is set as the default one (it will then end up at the bottom of the stack) @@ -473,7 +476,7 @@ cmdset (CmdSet or str): Can be a cmdset object or the python path to such an object. emit_to_obj (Object, optional): An object to receive error messages. - permanent (bool, optional): This cmdset will remain across a server reboot. + persistent (bool, optional): Let cmdset remain across server reload. default_cmdset (Cmdset, optional): Insert this to replace the default cmdset position (there is only one such position, always at the bottom of the stack). @@ -490,6 +493,11 @@ it's a 'quirk' that has to be documented. """ + if "permanent" in kwargs: + logger.log_dep("obj.cmdset.add() kwarg 'permanent' has changed name to " + "'persistent' and now defaults to True.") + persistent = kwargs['permanent'] if persistent is None else persistent + if not (isinstance(cmdset, str) or utils.inherits_from(cmdset, CmdSet)): string = _("Only CmdSets can be added to the cmdsethandler!") raise Exception(string) @@ -500,8 +508,8 @@ # this is (maybe) a python path. Try to import from cache. cmdset = self._import_cmdset(cmdset) if cmdset and cmdset.key != "_CMDSET_ERROR": - cmdset.permanent = permanent - if permanent and cmdset.key != "_CMDSET_ERROR": + cmdset.persistent = persistent + if persistent and cmdset.key != "_CMDSET_ERROR": # store the path permanently storage = self.obj.cmdset_storage or [""] if default_cmdset: @@ -515,17 +523,21 @@ self.cmdset_stack.append(cmdset) self.update()
    -
    [docs] def add_default(self, cmdset, emit_to_obj=None, permanent=True): +
    [docs] def add_default(self, cmdset, emit_to_obj=None, persistent=True, **kwargs): """ Shortcut for adding a default cmdset. Args: cmdset (Cmdset): The Cmdset to add. emit_to_obj (Object, optional): Gets error messages - permanent (bool, optional): The new Cmdset should survive a server reboot. + persistent (bool, optional): The new Cmdset should survive a server reboot. """ - self.add(cmdset, emit_to_obj=emit_to_obj, permanent=permanent, default_cmdset=True)
    + if "permanent" in kwargs: + logger.log_dep("obj.cmdset.add_default() kwarg 'permanent' has changed name to " + "'persistent'.") + persistent = kwargs['permanent'] if persistent is None else persistent + self.add(cmdset, emit_to_obj=emit_to_obj, persistent=persistent, default_cmdset=True)
    [docs] def remove(self, cmdset=None, default_cmdset=False): """ @@ -545,7 +557,7 @@ # remove the default cmdset only if self.cmdset_stack: cmdset = self.cmdset_stack[0] - if cmdset.permanent: + if cmdset.persistent: storage = self.obj.cmdset_storage or [""] storage[0] = "" self.obj.cmdset_storage = storage @@ -562,7 +574,7 @@ if not cmdset: # remove the last one in the stack cmdset = self.cmdset_stack.pop() - if cmdset.permanent: + if cmdset.persistent: storage = self.obj.cmdset_storage storage.pop() self.obj.cmdset_storage = storage @@ -579,12 +591,12 @@ ] storage = [] - if any(cset.permanent for cset in delcmdsets): + if any(cset.persistent for cset in delcmdsets): # only hit database if there's need to storage = self.obj.cmdset_storage updated = False for cset in delcmdsets: - if cset.permanent: + if cset.persistent: try: storage.remove(cset.path) updated = True @@ -720,11 +732,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/commands/command.html b/docs/0.9.5/_modules/evennia/commands/command.html index 13b1c17d43..6ee6548671 100644 --- a/docs/0.9.5/_modules/evennia/commands/command.html +++ b/docs/0.9.5/_modules/evennia/commands/command.html @@ -52,6 +52,8 @@ import inspect from django.conf import settings +from django.urls import reverse +from django.utils.text import slugify from evennia.locks.lockhandler import LockHandler from evennia.utils.utils import is_iter, fill, lazy_property, make_iter @@ -59,6 +61,16 @@ from evennia.utils.ansi import ANSIString +CMD_IGNORE_PREFIXES = settings.CMD_IGNORE_PREFIXES + + +
    [docs]class InterruptCommand(Exception): + + """Cleanly interrupt a command.""" + + pass
    + + def _init_command(cls, **kwargs): """ Helper command. @@ -118,6 +130,9 @@ cls.is_exit = False if not hasattr(cls, "help_category"): cls.help_category = "general" + if not hasattr(cls, "retain_instance"): + cls.retain_instance = False + # make sure to pick up the parent's docstring if the child class is # missing one (important for auto-help) if cls.__doc__ is None: @@ -127,6 +142,22 @@ break cls.help_category = cls.help_category.lower() + # pre-prepare a help index entry for quicker lookup + # strip the @- etc to allow help to be agnostic + stripped_key = cls.key[1:] if cls.key and cls.key[0] in CMD_IGNORE_PREFIXES else "" + stripped_aliases = ( + " ".join(al for al in cls.aliases + if al and al[0] in CMD_IGNORE_PREFIXES for al in cls.aliases) + ) + cls.search_index_entry = { + "key": cls.key, + "aliases": " ".join(cls.aliases), + "no_prefix": f"{stripped_key} {stripped_aliases}", + "category": cls.help_category, + "text": cls.__doc__, + "tags": "" + } +
    [docs]class CommandMeta(type): """ @@ -146,9 +177,11 @@ # parsing errors. -
    [docs]class Command(object, metaclass=CommandMeta): +
    [docs]class Command(metaclass=CommandMeta): """ - Base command + ## Base command + + (you may see this if a child command had no help text defined) Usage: command [args] @@ -212,6 +245,11 @@ # whether self.msg sends to all sessions of a related account/object (default # is to only send to the session sending the command). msg_all_sessions = settings.COMMAND_DEFAULT_MSG_ALL_SESSIONS + # whether the exact command instance should be retained between command calls. + # By default it's False; this allows for retaining state and saves some CPU, but + # can cause cross-talk between users if multiple users access the same command + # (especially if the command is using yield) + retain_instance = False # auto-set (by Evennia on command instantiation) are: # obj - which object this command is defined on @@ -539,6 +577,53 @@ """ return self.__doc__
    +
    [docs] def web_get_detail_url(self): + """ + Returns the URI path for a View that allows users to view details for + this object. + + ex. 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. + + ex. + :: + 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. + + 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. + + Returns: + path (str): URI path to object detail page, if defined. + + """ + try: + return reverse( + 'help-entry-detail', + kwargs={"category": slugify(self.help_category), "topic": slugify(self.key)}, + ) + except Exception as e: + return "#"
    + +
    [docs] def web_get_admin_url(self): + """ + Returns the URI path for the Django Admin page for this object. + + ex. Account#1 = '/admin/accounts/accountdb/1/change/' + + Returns: + path (str): URI path to Django Admin page for object. + + """ + return False
    +
    [docs] def client_width(self): """ Get the client screenwidth for the session using this command. @@ -553,20 +638,6 @@ )[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. @@ -611,6 +682,7 @@ border_left_char=border_left_char, border_right_char=border_right_char, border_top_char=border_top_char, + border_bottom_char=border_bottom_char, **kwargs, ) return table
    @@ -714,13 +786,6 @@ if "mode" not in kwargs: kwargs["mode"] = "footer" return self._render_decoration(*args, **kwargs)
    - - -
    [docs]class InterruptCommand(Exception): - - """Cleanly interrupt a command.""" - - pass
    @@ -746,11 +811,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 3c6a7e3002..d4068942e4 100644 --- a/docs/0.9.5/_modules/evennia/commands/default/account.html +++ b/docs/0.9.5/_modules/evennia/commands/default/account.html @@ -739,6 +739,7 @@ "XTERM256": validate_bool, "INPUTDEBUG": validate_bool, "FORCEDENDLINE": validate_bool, + "LOCALECHO": validate_bool, } name = self.lhs.upper() @@ -863,7 +864,7 @@ testing which colors your client support Usage: - color ansi||xterm256 + color ansi | xterm256 Prints a color map along with in-mud color codes to use to produce them. It also tests what is supported in your client. Choices are @@ -1120,11 +1121,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 4ae0938150..b7cf2ab4b4 100644 --- a/docs/0.9.5/_modules/evennia/commands/default/admin.html +++ b/docs/0.9.5/_modules/evennia/commands/default/admin.html @@ -259,13 +259,18 @@ ipregex = ipregex.replace("*", "[0-9]{1,3}") ipregex = re.compile(r"%s" % ipregex) bantup = ("", ban, ipregex, now, reason) + + ret = yield(f"Are you sure you want to {typ}-ban '|w{ban}|n' [Y]/N?") + if str(ret).lower() in ("no", "n"): + self.caller.msg("Aborted.") + return + # save updated banlist banlist.append(bantup) ServerConfig.objects.conf("server_bans", banlist) - self.caller.msg("%s-Ban |w%s|n was added." % (typ, ban)) + self.caller.msg(f"{typ}-ban '|w{ban}|n' was added. Use |wunban|n to reinstate.") logger.log_sec( - "Banned %s: %s (Caller: %s, IP: %s)." - % (typ, ban.strip(), self.caller, self.session.address) + "Banned {typ}: {ban.strip()} (Caller: {self.caller}, IP: {self.session.address})." ) @@ -307,15 +312,20 @@ elif not (0 < num < len(banlist) + 1): self.caller.msg("Ban id |w%s|x was not found." % self.args) else: - # all is ok, clear ban + # all is ok, ask, then clear ban ban = banlist[num - 1] + value = " ".join([s for s in ban[:2]]) + + ret = yield(f"Are you sure you want to unban {num}: '{value}' [Y]/N?") + if str(ret).lower() in ("n", "no"): + self.caller.msg("Aborted.") + return + del banlist[num - 1] ServerConfig.objects.conf("server_bans", banlist) - value = " ".join([s for s in ban[:2]]) - self.caller.msg("Cleared ban %s: %s" % (num, value)) + self.caller.msg(f"Cleared ban {num}: '{value}'" % (num, value)) logger.log_sec( - "Unbanned: %s (Caller: %s, IP: %s)." - % (value.strip(), self.caller, self.session.address) + "Unbanned: {value.strip()} (Caller: {self.caller}, IP: {self.session.address})." ) @@ -661,11 +671,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 718911a2cf..89934fd180 100644 --- a/docs/0.9.5/_modules/evennia/commands/default/batchprocess.html +++ b/docs/0.9.5/_modules/evennia/commands/default/batchprocess.html @@ -226,7 +226,7 @@ # something went wrong. Purge cmdset except default caller.cmdset.clear() - caller.scripts.validate() # this will purge interactive mode + # caller.scripts.validate() # this will purge interactive mode # ------------------------------------------------------------- @@ -887,11 +887,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 b6965a83f2..f5ba79b985 100644 --- a/docs/0.9.5/_modules/evennia/commands/default/building.html +++ b/docs/0.9.5/_modules/evennia/commands/default/building.html @@ -45,30 +45,35 @@ Building and world design commands """ import re +from django.core.paginator import Paginator from django.conf import settings from django.db.models import Q, Min, Max +from evennia import InterruptCommand +from evennia.scripts.models import ScriptDB from evennia.objects.models import ObjectDB from evennia.locks.lockhandler import LockException from evennia.commands.cmdhandler import get_and_merge_cmdsets -from evennia.utils import create, utils, search, logger +from evennia.utils import create, utils, search, logger, funcparser from evennia.utils.utils import ( inherits_from, class_from_module, get_all_typeclasses, variable_from_module, - dbref, + dbref, crop, interactive, list_to_string, display_len, ) from evennia.utils.eveditor import EvEditor from evennia.utils.evmore import EvMore +from evennia.utils.evtable import EvTable from evennia.prototypes import spawner, prototypes as protlib, menus as olc_menus from evennia.utils.ansi import raw as ansi_raw -from evennia.utils.inlinefuncs import raw as inlinefunc_raw COMMAND_DEFAULT_CLASS = class_from_module(settings.COMMAND_DEFAULT_CLASS) +_FUNCPARSER = None + # limit symbol import for API __all__ = ( "ObjManipCommand", @@ -94,7 +99,8 @@ "CmdExamine", "CmdFind", "CmdTeleport", - "CmdScript", + "CmdScripts", + "CmdObjects", "CmdTag", "CmdSpawn", ) @@ -194,7 +200,7 @@ by everyone. """ - key = "alias" + key = "@alias" aliases = "setobjalias" switch_options = ("category",) locks = "cmd:perm(setobjalias) or perm(Builder)" @@ -303,7 +309,7 @@ one exact copy of the original object will be created with the name *_copy. """ - key = "copy" + key = "@copy" locks = "cmd:perm(copy) or perm(Builder)" help_category = "Building" @@ -394,7 +400,7 @@ If you don't supply a source object, yourself is used. """ - key = "cpattr" + key = "@cpattr" switch_options = ("move",) locks = "cmd:perm(cpattr) or perm(Builder)" help_category = "Building" @@ -533,7 +539,7 @@ object. If you don't supply a source object, yourself is used. """ - key = "mvattr" + key = "@mvattr" switch_options = ("copy",) locks = "cmd:perm(mvattr) or perm(Builder)" help_category = "Building" @@ -582,7 +588,7 @@ """ - key = "create" + key = "@create" switch_options = ("drop",) locks = "cmd:perm(create) or perm(Builder)" help_category = "Building" @@ -674,8 +680,7 @@ describe the current room. """ - key = "desc" - aliases = "describe" + key = "@desc" switch_options = ("edit",) locks = "cmd:perm(desc) or perm(Builder)" help_category = "Building" @@ -693,6 +698,7 @@ if not (obj.access(self.caller, "control") or obj.access(self.caller, "edit")): self.caller.msg("You don't have permission to edit the description of %s." % obj.key) + return self.caller.db.evmenu_target = obj # launch the editor @@ -725,7 +731,7 @@ return desc = self.rhs or "" else: - obj = caller.location or self.msg("|rYou can't describe oblivion.|n") + obj = caller.location or self.msg("|rYou don't have a location to describe.|n") if not obj: return desc = self.args @@ -758,8 +764,8 @@ You can specify the /force switch to bypass this confirmation. """ - key = "destroy" - aliases = ["delete", "del"] + key = "@destroy" + aliases = ["@delete", "@del"] switch_options = ("override", "force") locks = "cmd:perm(destroy) or perm(Builder)" help_category = "Building" @@ -900,7 +906,7 @@ would be 'north;no;n'. """ - key = "dig" + key = "@dig" switch_options = ("teleport",) locks = "cmd:perm(dig) or perm(Builder)" help_category = "Building" @@ -1056,8 +1062,8 @@ For more flexibility and power in creating rooms, use dig. """ - key = "tunnel" - aliases = ["tun"] + key = "@tunnel" + aliases = ["@tun"] switch_options = ("oneway", "tel") locks = "cmd: perm(tunnel) or perm(Builder)" help_category = "Building" @@ -1150,7 +1156,7 @@ currently set destination. """ - key = "link" + key = "@link" locks = "cmd:perm(link) or perm(Builder)" help_category = "Building" @@ -1287,7 +1293,7 @@ If no location is given, just view the object's home location. """ - key = "sethome" + key = "@sethome" locks = "cmd:perm(sethome) or perm(Builder)" help_category = "Building" @@ -1339,8 +1345,7 @@ to a user. Defaults to yourself. """ - key = "cmdsets" - aliases = "listcmsets" + key = "@cmdsets" locks = "cmd:perm(listcmdsets) or perm(Builder)" help_category = "Building" @@ -1370,8 +1375,8 @@ """ - key = "name" - aliases = ["rename"] + key = "@name" + aliases = ["@rename"] locks = "cmd:perm(rename) or perm(Builder)" help_category = "Building" @@ -1422,7 +1427,7 @@ return # change the name and set aliases: if newname: - obj.name = newname + obj.key = newname astring = "" if aliases: [obj.aliases.add(alias) for alias in aliases] @@ -1448,7 +1453,7 @@ """ - key = "open" + key = "@open" locks = "cmd:perm(open) or perm(Builder)" help_category = "Building" @@ -1529,40 +1534,33 @@ caller.msg(string) return exit_obj +
    [docs] def parse(self): + super().parse() + self.location = self.caller.location + if not self.args or not self.rhs: + self.caller.msg("Usage: open <new exit>[;alias...][:typeclass]" + "[,<return exit>[;alias..][:typeclass]]] " + "= <destination>") + raise InterruptCommand + if not self.location: + self.caller.msg("You cannot create an exit from a None-location.") + raise InterruptCommand + self.destination = self.caller.search(self.rhs, global_search=True) + if not self.destination: + raise InterruptCommand + self.exit_name = self.lhs_objs[0]["name"] + self.exit_aliases = self.lhs_objs[0]["aliases"] + self.exit_typeclass = self.lhs_objs[0]["option"]
    +
    [docs] def func(self): """ This is where the processing starts. Uses the ObjManipCommand.parser() for pre-processing as well as the self.create_exit() method. """ - caller = self.caller - - if not self.args or not self.rhs: - string = "Usage: open <new exit>[;alias...][:typeclass][,<return exit>[;alias..][:typeclass]]] " - string += "= <destination>" - caller.msg(string) - return - - # We must have a location to open an exit - location = caller.location - if not location: - caller.msg("You cannot create an exit from a None-location.") - return - - # obtain needed info from cmdline - - exit_name = self.lhs_objs[0]["name"] - exit_aliases = self.lhs_objs[0]["aliases"] - exit_typeclass = self.lhs_objs[0]["option"] - dest_name = self.rhs - - # first, check so the destination exists. - destination = caller.search(dest_name, global_search=True) - if not destination: - return - # Create exit - ok = self.create_exit(exit_name, location, destination, exit_aliases, exit_typeclass) + ok = self.create_exit(self.exit_name, self.location, self.destination, + self.exit_aliases, self.exit_typeclass) if not ok: # an error; the exit was not created, so we quit. return @@ -1571,9 +1569,8 @@ back_exit_name = self.lhs_objs[1]["name"] back_exit_aliases = self.lhs_objs[1]["aliases"] back_exit_typeclass = self.lhs_objs[1]["option"] - self.create_exit( - back_exit_name, destination, location, back_exit_aliases, back_exit_typeclass - )
    + self.create_exit(back_exit_name, self.destination, self.location, back_exit_aliases, + back_exit_typeclass) def _convert_from_string(cmd, strobj): @@ -1658,7 +1655,7 @@ """ - key = "set" + key = "@set" locks = "cmd:perm(set) or perm(Builder)" help_category = "Building" nested_re = re.compile(r"\[.*?\]") @@ -1831,28 +1828,42 @@ "dicts.|n" ) -
    [docs] def edit_handler(self, obj, attr): + @interactive + def edit_handler(self, obj, attr, caller): """Activate the line editor""" def load(caller): """Called for the editor to load the buffer""" - old_value = obj.attributes.get(attr) - if old_value is not None and not isinstance(old_value, str): - typ = type(old_value).__name__ - self.caller.msg( - "|RWARNING! Saving this buffer will overwrite the " - "current attribute (of type %s) with a string!|n" % typ - ) - return str(old_value) - return old_value + + try: + old_value = obj.attributes.get(attr, raise_exception=True) + except AttributeError: + # we set empty buffer on nonexisting Attribute because otherwise + # we'd always have the string "None" in the buffer to start with + old_value = '' + return str(old_value) # we already confirmed we are ok with this def save(caller, buf): """Called when editor saves its buffer.""" obj.attributes.add(attr, buf) caller.msg("Saved Attribute %s." % attr) + # check non-strings before activating editor + try: + old_value = obj.attributes.get(attr, raise_exception=True) + if not isinstance(old_value, str): + answer = yield( + f"|rWarning: Attribute |w{attr}|r is of type |w{type(old_value).__name__}|r. " + "\nTo continue editing, it must be converted to (and saved as) a string. " + "Continue? [Y]/N?") + if answer.lower() in ('n', 'no'): + self.caller.msg("Aborted edit.") + return + except AttributeError: + pass + # start the editor - EvEditor(self.caller, load, save, key="%s/%s" % (obj, attr))
    + EvEditor(self.caller, load, save, key=f"{obj}/{attr}")
    [docs] def search_for_obj(self, objname): """ @@ -1922,7 +1933,7 @@ "edit the current room description, use `set/edit here/desc` (or " "use the `desc` command).") return - self.edit_handler(obj, attrs[0]) + self.edit_handler(obj, attrs[0], caller) return if not value: if self.rhs is None: @@ -1967,7 +1978,7 @@ typeclass[/switch] <object> [= typeclass.path] typeclass/prototype <object> = prototype_key - typeclass/list/show [typeclass.path] + typeclasses or typeclass/list/show [typeclass.path] swap - this is a shorthand for using /force/reset flags. update - this is a shorthand for using the /force/reload flag. @@ -2008,18 +2019,64 @@ """ - key = "typeclass" - aliases = ["type", "parent", "swap", "update"] + key = "@typeclass" + aliases = ["@type", "@parent", "@swap", "@update", "@typeclasses"] switch_options = ("show", "examine", "update", "reset", "force", "list", "prototype") locks = "cmd:perm(typeclass) or perm(Builder)" help_category = "Building" + def _generic_search(self, query, typeclass_path): + + caller = self.caller + if typeclass_path: + # make sure we search the right database table + try: + new_typeclass = class_from_module(typeclass_path) + except ImportError: + # this could be a prototype and not a typeclass at all + return caller.search(query) + + dbclass = new_typeclass.__dbclass__ + + if caller.__dbclass__ == dbclass: + # object or account match + obj = caller.search(query) + if not obj: + return + elif (self.account and self.account.__dbclass__ == dbclass): + # applying account while caller is object + caller.msg(f"Trying to search {new_typeclass} with query '{self.lhs}'.") + obj = self.account.search(query) + if not obj: + return + elif hasattr(caller, "puppet") and caller.puppet.__dbclass__ == dbclass: + # applying object while caller is account + caller.msg(f"Trying to search {new_typeclass} with query '{self.lhs}'.") + obj = caller.puppet.search(query) + if not obj: + return + else: + # other mismatch between caller and specified typeclass + caller.msg(f"Trying to search {new_typeclass} with query '{self.lhs}'.") + obj = new_typeclass.search(query) + if not obj: + if isinstance(obj, list): + caller.msg(f"Could not find {new_typeclass} with query '{self.lhs}'.") + return + else: + # no rhs, use caller's typeclass + obj = caller.search(query) + if not obj: + return + + return obj +
    [docs] def func(self): """Implements command""" caller = self.caller - if "list" in self.switches: + if "list" in self.switches or self.cmdname in ('typeclasses', '@typeclasses'): tclasses = get_all_typeclasses() contribs = [key for key in sorted(tclasses) if key.startswith("evennia.contrib")] or [ "<None loaded>" @@ -2082,8 +2139,7 @@ ) return - # get object to swap on - obj = caller.search(self.lhs) + obj = self._generic_search(self.lhs, self.rhs) if not obj: return @@ -2120,10 +2176,10 @@ caller.msg(string) return - if self.cmdstring == "swap": + if self.cmdstring in ("swap", "@swap"): self.switches.append("force") self.switches.append("reset") - elif self.cmdstring == "update": + elif self.cmdstring in ("update", "@update"): self.switches.append("force") self.switches.append("update") @@ -2137,10 +2193,8 @@ is_same = obj.is_typeclass(new_typeclass, exact=True) if is_same and "force" not in self.switches: - string = "%s already has the typeclass '%s'. Use /force to override." % ( - obj.name, - new_typeclass, - ) + string = (f"{obj.name} already has the typeclass '{new_typeclass}'. " + "Use /force to override.") else: update = "update" in self.switches reset = "reset" in self.switches @@ -2170,7 +2224,8 @@ ) if "prototype" in self.switches: - modified = spawner.batch_update_objects_with_prototype(prototype, objects=[obj]) + modified = spawner.batch_update_objects_with_prototype( + prototype, objects=[obj], caller=self.caller) prototype_success = modified > 0 if not prototype_success: caller.msg("Prototype %s failed to apply." % prototype["key"]) @@ -2215,7 +2270,7 @@ matching the given attribute-wildcard search string. """ - key = "wipe" + key = "@wipe" locks = "cmd:perm(wipe) or perm(Builder)" help_category = "Building" @@ -2284,8 +2339,8 @@ 'get:id(25); delete:perm(Builder)' """ - key = "lock" - aliases = ["locks"] + key = "@lock" + aliases = ["@locks"] locks = "cmd: perm(locks) or perm(Builder)" help_category = "Building" @@ -2405,8 +2460,8 @@ """ - key = "examine" - aliases = ["ex", "exam"] + key = "@examine" + aliases = ["@ex", "@exam"] locks = "cmd:perm(examine) or perm(Builder)" help_category = "Building" arg_regex = r"(/\w+?(\s|$))|\s|$" @@ -2428,12 +2483,16 @@ value (any): Attribute value. Returns: """ + global _FUNCPARSER + if not _FUNCPARSER: + _FUNCPARSER = funcparser.FuncParser(settings.FUNCPARSER_OUTGOING_MESSAGES_MODULES) + if attr is None: return "No such attribute was found." value = utils.to_str(value) if crop: value = utils.crop(value) - value = inlinefunc_raw(ansi_raw(value)) + value = _FUNCPARSER.parse(ansi_raw(value), escape=True) if category: return f"{attr}[{category}] = {value}" else: @@ -2565,14 +2624,12 @@ 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") @@ -2589,8 +2646,7 @@ 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 @@ -2628,15 +2684,13 @@ # 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 @@ -2816,8 +2870,8 @@ one is given. """ - key = "find" - aliases = "search, locate" + key = "@find" + aliases = ["@search", "@locate"] switch_options = ("room", "exit", "char", "exact", "loc", "startswith") locks = "cmd:perm(find) or perm(Builder)" help_category = "Building" @@ -2993,6 +3047,329 @@ caller.msg(string.strip())
    +class ScriptEvMore(EvMore): + """ + Listing 1000+ Scripts can be very slow and memory-consuming. So + we use this custom EvMore child to build en EvTable only for + each page of the list. + + """ + + def init_pages(self, scripts): + """Prepare the script list pagination""" + script_pages = Paginator(scripts, max(1, int(self.height / 2))) + super().init_pages(script_pages) + + def page_formatter(self, scripts): + """Takes a page of scripts and formats the output + into an EvTable.""" + + if not scripts: + return "<No scripts>" + + table = EvTable( + "|wdbref|n", + "|wobj|n", + "|wkey|n", + "|wintval|n", + "|wnext|n", + "|wrept|n", + "|wtypeclass|n", + "|wdesc|n", + align="r", + border="tablecols", + width=self.width, + ) + + for script in scripts: + + nextrep = script.time_until_next_repeat() + if nextrep is None: + nextrep = script.db._paused_time + nextrep = f"PAUSED {int(nextrep)}s" if nextrep else "--" + else: + nextrep = f"{nextrep}s" + + maxrepeat = script.repeats + remaining = script.remaining_repeats() or 0 + if maxrepeat: + rept = "%i/%i" % (maxrepeat - remaining, maxrepeat) + else: + rept = "-/-" + + table.add_row( + f"#{script.id}", + f"{script.obj.key}({script.obj.dbref})" + if (hasattr(script, "obj") and script.obj) + else "<Global>", + script.key, + script.interval if script.interval > 0 else "--", + nextrep, + rept, + script.typeclass_path.rsplit(".", 1)[-1], + crop(script.desc, width=20), + ) + + return str(table) + + +
    [docs]class CmdScripts(COMMAND_DEFAULT_CLASS): + """ + List and manage all running scripts. Allows for creating new global + scripts. + + Usage: + script[/switches] [script-#dbref, key, script.path or <obj>] + script[/start||stop] <obj> = <script.path or script-key> + + Switches: + start - start/unpause an existing script's timer. + stop - stops an existing script's timer + pause - pause a script's timer + delete - deletes script. This will also stop the timer as needed + + Examples: + script - list scripts + script myobj - list all scripts on object + script foo.bar.Script - create a new global Script + script scriptname - examine named existing global script + script myobj = foo.bar.Script - create and assign script to object + script/stop myobj = scriptname - stop script on object + script/pause foo.Bar.Script - pause global script + script/delete myobj - delete ALL scripts on object + + When given with an `<obj>` as left-hand-side, this creates and + assigns a new script to that object. Without an `<obj>`, this + manages and inspects global scripts + + If no switches are given, this command just views all active + scripts. The argument can be either an object, at which point it + will be searched for all scripts defined on it, or a script name + or #dbref. For using the /stop switch, a unique script #dbref is + required since whole classes of scripts often have the same name. + + Use the `script` build-level command for managing scripts attached to + objects. + + """ + + key = "@scripts" + aliases = ["@script"] + switch_options = ("create", "start", "stop", "pause", "delete") + locks = "cmd:perm(scripts) or perm(Builder)" + help_category = "System" + + excluded_typeclass_paths = ["evennia.prototypes.prototypes.DbPrototype"] + + switch_mapping = { + "create": "|gCreated|n", + "start": "|gStarted|n", + "stop": "|RStopped|n", + "pause": "|Paused|n", + "delete": "|rDeleted|n" + } + + def _search_script(self, args): + # test first if this is a script match + scripts = ScriptDB.objects.get_all_scripts(key=args) + if scripts: + return scripts + # try typeclass path + scripts = ScriptDB.objects.filter(db_typeclass_path__iendswith=args) + if scripts: + return scripts + +
    [docs] def func(self): + """implement method""" + + caller = self.caller + + if not self.args: + # show all scripts + scripts = ScriptDB.objects.all() + if not scripts: + caller.msg("No scripts found.") + return + ScriptEvMore(caller, scripts.order_by("id"), session=self.session) + return + + # find script or object to operate on + scripts, obj = None, None + if self.rhs: + obj_query = self.lhs + script_query = self.rhs + else: + obj_query = script_query = self.args + + scripts = self._search_script(script_query) + objects = ObjectDB.objects.object_search(obj_query) + obj = objects[0] if objects else None + + if not self.switches: + # creation / view mode + if obj: + # we have an object + if self.rhs: + # creation mode + if obj.scripts.add(self.rhs, autostart=True): + caller.msg( + f"Script |w{self.rhs}|n successfully added and " + f"started on {obj.get_display_name(caller)}.") + else: + caller.msg(f"Script {self.rhs} could not be added and/or started " + f"on {obj.get_display_name(caller)} (or it started and " + "immediately shut down).") + else: + # just show all scripts on object + scripts = ScriptDB.objects.filter(db_obj=obj) + if scripts: + ScriptEvMore(caller, scripts.order_by("id"), session=self.session) + else: + caller.msg(f"No scripts defined on {obj}") + + elif scripts: + # show found script(s) + ScriptEvMore(caller, scripts.order_by("id"), session=self.session) + + else: + # create global script + try: + new_script = create.create_script(self.args) + except ImportError: + logger.log_trace() + new_script = None + + if new_script: + caller.msg(f"Global Script Created - " + f"{new_script.key} ({new_script.typeclass_path})") + ScriptEvMore(caller, [new_script], session=self.session) + else: + caller.msg(f"Global Script |rNOT|n Created |r(see log)|n - " + f"arguments: {self.args}") + + elif scripts or obj: + # modification switches - must operate on existing scripts + + if not scripts: + scripts = ScriptDB.objects.filter(db_obj=obj) + + if scripts.count() > 1: + ret = yield(f"Multiple scripts found: {scripts}. Are you sure you want to " + "operate on all of them? [Y]/N? ") + if ret.lower() in ('n', 'no'): + caller.msg("Aborted.") + return + + for script in scripts: + script_key = script.key + script_typeclass_path = script.typeclass_path + scripttype = f"Script on {obj}" if obj else "Global Script" + + for switch in self.switches: + verb = self.switch_mapping[switch] + msgs = [] + try: + getattr(script, switch)() + except Exception: + logger.log_trace() + msgs.append(f"{scripttype} |rNOT|n {verb} |r(see log)|n - " + f"{script_key} ({script_typeclass_path})|n") + else: + msgs.append(f"{scripttype} {verb} - " + f"{script_key} ({script_typeclass_path})") + caller.msg("\n".join(msgs)) + if "delete" not in self.switches: + ScriptEvMore(caller, [script], session=self.session) + else: + caller.msg("No scripts found.")
    + + +
    [docs]class CmdObjects(COMMAND_DEFAULT_CLASS): + """ + statistics on objects in the database + + Usage: + objects [<nr>] + + Gives statictics on objects in database as well as + a list of <nr> latest objects in database. If not + given, <nr> defaults to 10. + """ + + key = "@objects" + locks = "cmd:perm(listobjects) or perm(Builder)" + help_category = "System" + +
    [docs] def func(self): + """Implement the command""" + + caller = self.caller + nlim = int(self.args) if self.args and self.args.isdigit() else 10 + nobjs = ObjectDB.objects.count() + Character = class_from_module(settings.BASE_CHARACTER_TYPECLASS) + nchars = Character.objects.all_family().count() + Room = class_from_module(settings.BASE_ROOM_TYPECLASS) + nrooms = Room.objects.all_family().count() + Exit = class_from_module(settings.BASE_EXIT_TYPECLASS) + nexits = Exit.objects.all_family().count() + nother = nobjs - nchars - nrooms - nexits + nobjs = nobjs or 1 # fix zero-div error with empty database + + # total object sum table + totaltable = self.styled_table( + "|wtype|n", "|wcomment|n", "|wcount|n", "|w%|n", border="table", align="l" + ) + totaltable.align = "l" + totaltable.add_row( + "Characters", + "(BASE_CHARACTER_TYPECLASS + children)", + nchars, + "%.2f" % ((float(nchars) / nobjs) * 100), + ) + totaltable.add_row( + "Rooms", + "(BASE_ROOM_TYPECLASS + children)", + nrooms, + "%.2f" % ((float(nrooms) / nobjs) * 100), + ) + totaltable.add_row( + "Exits", + "(BASE_EXIT_TYPECLASS + children)", + nexits, + "%.2f" % ((float(nexits) / nobjs) * 100), + ) + totaltable.add_row("Other", "", nother, "%.2f" % ((float(nother) / nobjs) * 100)) + + # typeclass table + typetable = self.styled_table( + "|wtypeclass|n", "|wcount|n", "|w%|n", border="table", align="l" + ) + typetable.align = "l" + dbtotals = ObjectDB.objects.get_typeclass_totals() + for stat in dbtotals: + typetable.add_row( + stat.get("typeclass", "<error>"), + stat.get("count", -1), + "%.2f" % stat.get("percent", -1), + ) + + # last N table + objs = ObjectDB.objects.all().order_by("db_date_created")[max(0, nobjs - nlim) :] + latesttable = self.styled_table( + "|wcreated|n", "|wdbref|n", "|wname|n", "|wtypeclass|n", align="l", border="table" + ) + latesttable.align = "l" + for obj in objs: + latesttable.add_row( + utils.datetime_format(obj.date_created), obj.dbref, obj.key, obj.path + ) + + string = "\n|wObject subtype totals (out of %i Objects):|n\n%s" % (nobjs, totaltable) + string += "\n|wObject typeclass distribution:|n\n%s" % typetable + string += "\n|wLast %s Objects created:|n\n%s" % (min(nobjs, nlim), latesttable) + caller.msg(string)
    + +
    [docs]class CmdTeleport(COMMAND_DEFAULT_CLASS): """ teleport object to another location @@ -3019,37 +3396,53 @@ Teleports an object somewhere. If no object is given, you yourself are teleported to the target location. + + To lock an object from being teleported, set its `teleport` lock, it will be + checked with the caller. To block + a destination from being teleported to, set the destination's `teleport_here` + lock - it will be checked with the thing being teleported. Admins and + higher permissions can always teleport. + """ - key = "tel" - aliases = "teleport" + key = "@teleport" + aliases = "@tel" switch_options = ("quiet", "intoexit", "tonone", "loc") rhs_split = ("=", " to ") # Prefer = delimiter, but allow " to " usage. locks = "cmd:perm(teleport) or perm(Builder)" help_category = "Building" +
    [docs] def parse(self): + """ + Breaking out searching here to make this easier to override. + + """ + super().parse() + self.obj_to_teleport = self.caller + self.destination = None + if self.rhs: + self.obj_to_teleport = self.caller.search(self.lhs, global_search=True) + if not self.obj_to_teleport: + self.caller.msg("Did not find object to teleport.") + raise InterruptCommand + self.destination = self.caller.search(self.rhs, global_search=True) + elif self.lhs: + self.destination = self.caller.search(self.lhs, global_search=True)
    +
    [docs] def func(self): """Performs the teleport""" caller = self.caller - args = self.args - lhs, rhs = self.lhs, self.rhs - switches = self.switches + obj_to_teleport = self.obj_to_teleport + destination = self.destination - # setting switches - tel_quietly = "quiet" in switches - to_none = "tonone" in switches - to_loc = "loc" in switches - - if to_none: + if "tonone" in self.switches: # teleporting to None - if not args: - obj_to_teleport = caller - else: - obj_to_teleport = caller.search(lhs, global_search=True) - if not obj_to_teleport: - caller.msg("Did not find object to teleport.") - return + + if destination: + # in this case lhs is always the object to teleport + obj_to_teleport = destination + if obj_to_teleport.has_account: caller.msg( "Cannot teleport a puppeted object " @@ -3058,166 +3451,66 @@ ) return caller.msg("Teleported %s -> None-location." % obj_to_teleport) - if obj_to_teleport.location and not tel_quietly: + if obj_to_teleport.location and "quiet" not in self.switches: obj_to_teleport.location.msg_contents( "%s teleported %s into nothingness." % (caller, obj_to_teleport), exclude=caller ) obj_to_teleport.location = None return - # not teleporting to None location - if not args and not to_none: - caller.msg("Usage: teleport[/switches] [<obj> =] <target_loc>||home") - return - - if rhs: - obj_to_teleport = caller.search(lhs, global_search=True) - destination = caller.search(rhs, global_search=True) - else: - obj_to_teleport = caller - destination = caller.search(lhs, global_search=True) - if not obj_to_teleport: - caller.msg("Did not find object to teleport.") + if not self.args: + caller.msg("Usage: teleport[/switches] [<obj> =] <target or (X,Y,Z)>||home") return if not destination: caller.msg("Destination not found.") return - if to_loc: + + if "loc" in self.switches: destination = destination.location if not destination: caller.msg("Destination has no location.") return + if obj_to_teleport == destination: caller.msg("You can't teleport an object inside of itself!") return + if obj_to_teleport == destination.location: caller.msg("You can't teleport an object inside something it holds!") return + if obj_to_teleport.location and obj_to_teleport.location == destination: caller.msg("%s is already at %s." % (obj_to_teleport, destination)) return - use_destination = True - if "intoexit" in self.switches: - use_destination = False + + # check any locks + if not (caller.permissions.check("Admin") or obj_to_teleport.access(caller, "teleport")): + caller.msg(f"{obj_to_teleport} 'teleport'-lock blocks you from teleporting " + "it anywhere.") + return + + if not (caller.permissions.check("Admin") + or destination.access(obj_to_teleport, "teleport_here")): + caller.msg(f"{destination} 'teleport_here'-lock blocks {obj_to_teleport} from " + "moving there.") + return # try the teleport - if obj_to_teleport.move_to( - destination, quiet=tel_quietly, emit_to_obj=caller, use_destination=use_destination - ): + if not obj_to_teleport.location: + # teleporting from none-location + obj_to_teleport.location = destination + caller.msg(f"Teleported {obj_to_teleport} None -> {destination}") + elif obj_to_teleport.move_to( + destination, quiet="quiet" in self.switches, + emit_to_obj=caller, use_destination="intoexit" not in self.switches): + if obj_to_teleport == caller: - caller.msg("Teleported to %s." % destination) + caller.msg(f"Teleported to {destination}.") else: - caller.msg("Teleported %s -> %s." % (obj_to_teleport, destination))
    - - -
    [docs]class CmdScript(COMMAND_DEFAULT_CLASS): - """ - attach a script to an object - - Usage: - script[/switch] <obj> [= script_path or <scriptkey>] - - Switches: - start - start all non-running scripts on object, or a given script only - stop - stop all scripts on objects, or a given script only - - If no script path/key is given, lists all scripts active on the given - object. - Script path can be given from the base location for scripts as given in - settings. If adding a new script, it will be started automatically - (no /start switch is needed). Using the /start or /stop switches on an - object without specifying a script key/path will start/stop ALL scripts on - the object. - """ - - key = "script" - aliases = "addscript" - switch_options = ("start", "stop") - locks = "cmd:perm(script) or perm(Builder)" - help_category = "Building" - -
    [docs] def func(self): - """Do stuff""" - - caller = self.caller - - if not self.args: - string = "Usage: script[/switch] <obj> [= script_path or <script key>]" - caller.msg(string) - return - - if not self.lhs: - caller.msg("To create a global script you need |wscripts/add <typeclass>|n.") - return - - obj = caller.search(self.lhs) - if not obj: - return - - result = [] - if not self.rhs: - # no rhs means we want to operate on all scripts - scripts = obj.scripts.all() - if not scripts: - result.append("No scripts defined on %s." % obj.get_display_name(caller)) - elif not self.switches: - # view all scripts - from evennia.commands.default.system import ScriptEvMore - - ScriptEvMore(self.caller, scripts.order_by("id"), session=self.session) - return - elif "start" in self.switches: - num = sum([obj.scripts.start(script.key) for script in scripts]) - result.append("%s scripts started on %s." % (num, obj.get_display_name(caller))) - elif "stop" in self.switches: - for script in scripts: - result.append( - "Stopping script %s on %s." - % (script.get_display_name(caller), obj.get_display_name(caller)) - ) - script.stop() - obj.scripts.validate() - else: # rhs exists - if not self.switches: - # adding a new script, and starting it - ok = obj.scripts.add(self.rhs, autostart=True) - if not ok: - result.append( - "\nScript %s could not be added and/or started on %s " - "(or it started and immediately shut down)." - % (self.rhs, obj.get_display_name(caller)) - ) - else: - result.append( - "Script |w%s|n successfully added and started on %s." - % (self.rhs, obj.get_display_name(caller)) - ) - - else: - paths = [self.rhs] + [ - "%s.%s" % (prefix, self.rhs) for prefix in settings.TYPECLASS_PATHS - ] - if "stop" in self.switches: - # we are stopping an already existing script - for path in paths: - ok = obj.scripts.stop(path) - if not ok: - result.append("\nScript %s could not be stopped. Does it exist?" % path) - else: - result = ["Script stopped and removed from object."] - break - if "start" in self.switches: - # we are starting an already existing script - for path in paths: - ok = obj.scripts.start(path) - if not ok: - result.append("\nScript %s could not be (re)started." % path) - else: - result = ["Script started successfully."] - break - - EvMore(caller, "".join(result).strip())
    + caller.msg(f"Teleported {obj_to_teleport} -> {destination}.") + else: + caller.msg("Teleportation failed.")
    [docs]class CmdTag(COMMAND_DEFAULT_CLASS): @@ -3242,8 +3535,8 @@ enough to for most grouping schemes. """ - key = "tag" - aliases = ["tags"] + key = "@tag" + aliases = ["@tags"] options = ("search", "del") locks = "cmd:perm(tag) or perm(Builder)" help_category = "Building" @@ -3429,8 +3722,8 @@ """ - key = "spawn" - aliases = ["olc"] + key = "@spawn" + aliases = ["@olc"] switch_options = ( "noloc", "search", @@ -3516,7 +3809,7 @@ "Python structures are allowed. \nMake sure to use correct " "Python syntax. Remember especially to put quotes around all " "strings inside lists and dicts.|n For more advanced uses, embed " - "inlinefuncs in the strings." + "funcparser callables ($funcs) in the strings." ) else: string = "Expected {}, got {}.".format(expect, type(prototype)) @@ -3612,7 +3905,7 @@ return try: n_updated = spawner.batch_update_objects_with_prototype( - prototype, objects=existing_objects + prototype, objects=existing_objects, caller=caller, ) except Exception: logger.log_trace() @@ -3864,7 +4157,7 @@ # proceed to spawning try: - for obj in spawner.spawn(prototype): + for obj in spawner.spawn(prototype, caller=self.caller): self.caller.msg("Spawned %s." % obj.get_display_name(self.caller)) if not prototype.get("location") and not noloc: # we don't hardcode the location in the prototype (unless the user @@ -3898,11 +4191,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 8b22716b76..8aea2c35c8 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 @@ -102,22 +102,22 @@ self.add(admin.CmdNewPassword()) # Comm commands - self.add(comms.CmdAddCom()) - self.add(comms.CmdDelCom()) - self.add(comms.CmdAllCom()) - self.add(comms.CmdChannels()) - self.add(comms.CmdCdestroy()) - self.add(comms.CmdChannelCreate()) - self.add(comms.CmdClock()) - self.add(comms.CmdCBoot()) - self.add(comms.CmdCemit()) - self.add(comms.CmdCWho()) - self.add(comms.CmdCdesc()) + self.add(comms.CmdChannel()) self.add(comms.CmdPage()) self.add(comms.CmdIRC2Chan()) self.add(comms.CmdIRCStatus()) self.add(comms.CmdRSS2Chan()) self.add(comms.CmdGrapevine2Chan()) + # self.add(comms.CmdChannels()) + # self.add(comms.CmdAddCom()) + # self.add(comms.CmdDelCom()) + # self.add(comms.CmdAllCom()) + # self.add(comms.CmdCdestroy()) + # self.add(comms.CmdChannelCreate()) + # self.add(comms.CmdClock()) + # self.add(comms.CmdCBoot()) + # self.add(comms.CmdCWho()) + # self.add(comms.CmdCdesc())
    @@ -143,11 +143,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 fc5aa4610d..6239d5bbcd 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 @@ -84,8 +84,6 @@ # System commands self.add(system.CmdPy()) - self.add(system.CmdScripts()) - self.add(system.CmdObjects()) self.add(system.CmdAccounts()) self.add(system.CmdService()) self.add(system.CmdAbout()) @@ -93,6 +91,7 @@ self.add(system.CmdServerLoad()) # self.add(system.CmdPs()) self.add(system.CmdTickers()) + self.add(system.CmdTasks()) # Admin commands self.add(admin.CmdBoot()) @@ -125,10 +124,11 @@ self.add(building.CmdExamine()) self.add(building.CmdTypeclass()) self.add(building.CmdLock()) - self.add(building.CmdScript()) self.add(building.CmdSetHome()) self.add(building.CmdTag()) self.add(building.CmdSpawn()) + self.add(building.CmdScripts()) + self.add(building.CmdObjects()) # Batchprocessor commands self.add(batchprocess.CmdBatchCommands()) @@ -158,11 +158,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 4f7968c36b..493f75943f 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,11 +84,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 86664caa55..8b7e08e819 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,11 +93,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 56f6949652..113e693ac7 100644 --- a/docs/0.9.5/_modules/evennia/commands/default/comms.html +++ b/docs/0.9.5/_modules/evennia/commands/default/comms.html @@ -42,24 +42,24 @@

    Source code for evennia.commands.default.comms

     """
    -Comsystem command module.
    +Communication commands:
     
    -Comm commands are OOC commands and intended to be made available to
    -the Account at all times (they go into the AccountCmdSet). So we
    -make sure to homogenize self.caller to always be the account object
    -for easy handling.
    +- channel
    +- page
    +- irc/rss/grapevine linking
     
     """
    -import hashlib
    -import time
    +
     from django.conf import settings
    -from evennia.comms.models import ChannelDB, Msg
    +from evennia.comms.models import Msg
     from evennia.accounts.models import AccountDB
     from evennia.accounts import bots
    -from evennia.comms.channelhandler import CHANNELHANDLER
     from evennia.locks.lockhandler import LockException
    -from evennia.utils import create, logger, utils, evtable
    -from evennia.utils.utils import make_iter, class_from_module
    +from evennia.comms.comms import DefaultChannel
    +from evennia.utils import create, logger, utils
    +from evennia.utils.logger import tail_log_file
    +from evennia.utils.utils import class_from_module, strip_unsafe_input
    +from evennia.utils.evmenu import ask_yes_no
     
     COMMAND_DEFAULT_CLASS = class_from_module(settings.COMMAND_DEFAULT_CLASS)
     CHANNEL_DEFAULT_TYPECLASS = class_from_module(
    @@ -68,18 +68,11 @@
     
     # limit symbol import for API
     __all__ = (
    -    "CmdAddCom",
    -    "CmdDelCom",
    -    "CmdAllCom",
    -    "CmdChannels",
    -    "CmdCdestroy",
    -    "CmdCBoot",
    -    "CmdCemit",
    -    "CmdCWho",
    -    "CmdChannelCreate",
    -    "CmdClock",
    -    "CmdCdesc",
    +    "CmdChannel",
    +    "CmdObjectChannel",
    +
         "CmdPage",
    +
         "CmdIRC2Chan",
         "CmdIRCStatus",
         "CmdRSS2Chan",
    @@ -87,707 +80,1210 @@
     )
     _DEFAULT_WIDTH = settings.CLIENT_DEFAULT_WIDTH
     
    +# helper functions to make it easier to override the main CmdChannel
    +# command and to keep the legacy addcom etc commands around.
     
    -def find_channel(caller, channelname, silent=False, noaliases=False):
    +
    +
    [docs]class CmdChannel(COMMAND_DEFAULT_CLASS): """ - Helper function for searching for a single channel with - some error handling. - """ - channels = CHANNEL_DEFAULT_TYPECLASS.objects.channel_search(channelname) - if not channels: - if not noaliases: - channels = [ - chan - for chan in CHANNEL_DEFAULT_TYPECLASS.objects.get_all_channels() - if channelname in chan.aliases.all() - ] - if channels: - return channels[0] - if not silent: - caller.msg("Channel '%s' not found." % channelname) - return None - elif len(channels) > 1: - matches = ", ".join(["%s(%s)" % (chan.key, chan.id) for chan in channels]) - if not silent: - caller.msg("Multiple channels match (be more specific): \n%s" % matches) - return None - return channels[0] - - -
    [docs]class CmdAddCom(COMMAND_DEFAULT_CLASS): - """ - add a channel alias and/or subscribe to a channel + Use and manage in-game channels. Usage: - addcom [alias=] <channel> + channel channelname <msg> + channel channel name = <msg> + channel (show all subscription) + channel/all (show available channels) + channel/alias channelname = alias[;alias...] + channel/unalias alias + channel/who channelname + channel/history channelname [= index] + channel/sub channelname [= alias[;alias...]] + channel/unsub channelname[,channelname, ...] + channel/mute channelname[,channelname,...] + channel/unmute channelname[,channelname,...] + + channel/create channelname[;alias;alias[:typeclass]] [= description] + channel/destroy channelname [= reason] + channel/desc channelname = description + channel/lock channelname = lockstring + channel/unlock channelname = lockstring + channel/ban channelname (list bans) + channel/ban[/quiet] channelname[, channelname, ...] = subscribername [: reason] + channel/unban[/quiet] channelname[, channelname, ...] = subscribername + channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason] + + # subtopics + + ## sending + + Usage: channel channelname msg + channel channel name = msg (with space in channel name) + + This sends a message to the channel. Note that you will rarely use this + command like this; instead you can use the alias + + channelname <msg> + channelalias <msg> + + For example + + public Hello World + pub Hello World + + (this shortcut doesn't work for aliases containing spaces) + + See channel/alias for help on setting channel aliases. + + ## alias and unalias + + Usage: channel/alias channel = alias[;alias[;alias...]] + channel/unalias alias + channel - this will list your subs and aliases to each channel + + Set one or more personal aliases for referencing a channel. For example: + + channel/alias warrior's guild = warrior;wguild;warchannel;warrior guild + + You can now send to the channel using all of these: + + warrior's guild Hello + warrior Hello + wguild Hello + warchannel Hello + + Note that this will not work if the alias has a space in it. So the + 'warrior guild' alias must be used with the `channel` command: + + channel warrior guild = Hello + + Channel-aliases can be removed one at a time, using the '/unalias' switch. + + ## who + + Usage: channel/who channelname + + List the channel's subscribers. Shows who are currently offline or are + muting the channel. Subscribers who are 'muting' will not see messages sent + to the channel (use channel/mute to mute a channel). + + ## history + + Usage: channel/history channel [= index] + + This will display the last |c20|n lines of channel history. By supplying an + index number, you will step that many lines back before viewing those 20 lines. + + For example: + + channel/history public = 35 + + will go back 35 lines and show the previous 20 lines from that point (so + lines -35 to -55). + + ## sub and unsub + + Usage: channel/sub channel [=alias[;alias;...]] + channel/unsub channel + + This subscribes you to a channel and optionally assigns personal shortcuts + for you to use to send to that channel (see aliases). When you unsub, all + your personal aliases will also be removed. + + ## mute and unmute + + Usage: channel/mute channelname + channel/unmute channelname + + Muting silences all output from the channel without actually + un-subscribing. Other channel members will see that you are muted in the /who + list. Sending a message to the channel will automatically unmute you. + + ## create and destroy + + Usage: channel/create channelname[;alias;alias[:typeclass]] [= description] + channel/destroy channelname [= reason] + + Creates a new channel (or destroys one you control). You will automatically + join the channel you create and everyone will be kicked and loose all aliases + to a destroyed channel. + + ## lock and unlock + + Usage: channel/lock channelname = lockstring + channel/unlock channelname = lockstring + + Note: this is an admin command. + + A lockstring is on the form locktype:lockfunc(). Channels understand three + locktypes: + listen - who may listen or join the channel. + send - who may send messages to the channel + control - who controls the channel. This is usually the one creating + the channel. + + Common lockfuncs are all() and perm(). To make a channel everyone can + listen to but only builders can talk on, use this: + + listen:all() + send: perm(Builders) + + ## boot and ban + + Usage: + channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason] + channel/ban channelname[, channelname, ...] = subscribername [: reason] + channel/unban channelname[, channelname, ...] = subscribername + channel/unban channelname + channel/ban channelname (list bans) + + Booting will kick a named subscriber from channel(s) temporarily. The + 'reason' will be passed to the booted user. Unless the /quiet switch is + used, the channel will also be informed of the action. A booted user is + still able to re-connect, but they'll have to set up their aliases again. + + Banning will blacklist a user from (re)joining the provided channels. It + will then proceed to boot them from those channels if they were connected. + The 'reason' and `/quiet` works the same as for booting. + + Example: + boot mychannel1 = EvilUser : Kicking you to cool down a bit. + ban mychannel1,mychannel2= EvilUser : Was banned for spamming. - Joins a given channel. If alias is given, this will allow you to - refer to the channel by this alias rather than the full channel - name. Subsequent calls of this command can be used to add multiple - aliases to an already joined channel. """ - - key = "addcom" - aliases = ["aliaschan", "chanalias"] + key = "@channel" + aliases = ["@chan", "@channels"] help_category = "Comms" - locks = "cmd:not pperm(channel_banned)" - - # this is used by the COMMAND_DEFAULT_CLASS parent + # these cmd: lock controls access to the channel command itself + # the admin: lock controls access to /boot/ban/unban switches + # the manage: lock controls access to /create/destroy/desc/lock/unlock switches + locks = "cmd:not pperm(channel_banned);admin:all();manage:all();changelocks:perm(Admin)" + switch_options = ( + "list", "all", "history", "sub", "unsub", "mute", "unmute", "alias", "unalias", + "create", "destroy", "desc", "lock", "unlock", "boot", "ban", "unban", "who",) + # disable this in child command classes if wanting on-character channels account_caller = True -
    [docs] def func(self): - """Implement the command""" +
    [docs] def search_channel(self, channelname, exact=False, handle_errors=True): + """ + Helper function for searching for a single channel with some error + handling. + Args: + channelname (str): Name, alias #dbref or partial name/alias to search + for. + exact (bool, optional): If an exact or fuzzy-match of the name should be done. + Note that even for a fuzzy match, an exactly given, unique channel name + will always be returned. + handle_errors (bool): If true, use `self.msg` to report errors if + there are non/multiple matches. If so, the return will always be + a single match or None. + Returns: + object, list or None: If `handle_errors` is `True`, this is either a found Channel + or `None`. Otherwise it's a list of zero, one or more channels found. + Notes: + The 'listen' and 'control' accesses are checked before returning. + + """ caller = self.caller - args = self.args - account = caller + # first see if this is a personal alias + channelname = caller.nicks.get(key=channelname, category="channel") or channelname - if not args: - self.msg("Usage: addcom [alias =] channelname.") - return + # always try the exact match first. + channels = CHANNEL_DEFAULT_TYPECLASS.objects.channel_search(channelname, exact=True) - if self.rhs: - # rhs holds the channelname - channelname = self.rhs - alias = self.lhs - else: - channelname = self.args - alias = None - - channel = find_channel(caller, channelname) - if not channel: - # we use the custom search method to handle errors. - return + if not channels and not exact: + # try fuzzy matching as well + channels = CHANNEL_DEFAULT_TYPECLASS.objects.channel_search(channelname, exact=exact) # check permissions - if not channel.access(account, "listen"): - self.msg("%s: You are not allowed to listen to this channel." % channel.key) - return + channels = [channel for channel in channels + if channel.access(caller, 'listen') or channel.access(caller, 'control')] - string = "" - if not channel.has_connection(account): - # we want to connect as well. - if not channel.connect(account): - # if this would have returned True, the account is connected - self.msg("%s: You are not allowed to join this channel." % channel.key) - return - else: - string += "You now listen to the channel %s. " % channel.key - else: - if channel.unmute(account): - string += "You unmute channel %s." % channel.key - else: - string += "You are already connected to channel %s." % channel.key - - if alias: - # create a nick and add it to the caller. - caller.nicks.add(alias, channel.key, category="channel") - string += " You can now refer to the channel %s with the alias '%s'." - self.msg(string % (channel.key, alias)) - else: - string += " No alias added." - self.msg(string)
    - - -
    [docs]class CmdDelCom(COMMAND_DEFAULT_CLASS): - """ - remove a channel alias and/or unsubscribe from channel - - Usage: - delcom <alias or channel> - delcom/all <channel> - - If the full channel name is given, unsubscribe from the - channel. If an alias is given, remove the alias but don't - unsubscribe. If the 'all' switch is used, remove all aliases - for that channel. - """ - - key = "delcom" - aliases = ["delaliaschan", "delchanalias"] - help_category = "Comms" - locks = "cmd:not perm(channel_banned)" - - # this is used by the COMMAND_DEFAULT_CLASS parent - account_caller = True - -
    [docs] def func(self): - """Implementing the command. """ - - caller = self.caller - account = caller - - if not self.args: - self.msg("Usage: delcom <alias or channel>") - return - ostring = self.args.lower() - - channel = find_channel(caller, ostring, silent=True, noaliases=True) - if channel: - # we have given a channel name - unsubscribe - if not channel.has_connection(account): - self.msg("You are not listening to that channel.") - return - chkey = channel.key.lower() - delnicks = "all" in self.switches - # find all nicks linked to this channel and delete them - if delnicks: - for nick in [ - nick - for nick in make_iter(caller.nicks.get(category="channel", return_obj=True)) - if nick and nick.pk and nick.value[3].lower() == chkey - ]: - nick.delete() - disconnect = channel.disconnect(account) - if disconnect: - wipednicks = " Eventual aliases were removed." if delnicks else "" - self.msg("You stop listening to channel '%s'.%s" % (channel.key, wipednicks)) - return - else: - # we are removing a channel nick - channame = caller.nicks.get(key=ostring, category="channel") - channel = find_channel(caller, channame, silent=True) - if not channel: - self.msg("No channel with alias '%s' was found." % ostring) - else: - if caller.nicks.get(ostring, category="channel"): - caller.nicks.remove(ostring, category="channel") - self.msg("Your alias '%s' for channel %s was cleared." % (ostring, channel.key)) - else: - self.msg("You had no such alias defined for this channel.")
    - - -
    [docs]class CmdAllCom(COMMAND_DEFAULT_CLASS): - """ - perform admin operations on all channels - - Usage: - allcom [on | off | who | destroy] - - Allows the user to universally turn off or on all channels they are on, as - well as perform a 'who' for all channels they are on. Destroy deletes all - channels that you control. - - Without argument, works like comlist. - """ - - key = "allcom" - locks = "cmd: not pperm(channel_banned)" - help_category = "Comms" - - # this is used by the COMMAND_DEFAULT_CLASS parent - account_caller = True - -
    [docs] def func(self): - """Runs the function""" - - caller = self.caller - args = self.args - if not args: - self.execute_cmd("channels") - self.msg("(Usage: allcom on | off | who | destroy)") - return - - if args == "on": - # get names of all channels available to listen to - # and activate them all - channels = [ - chan - for chan in CHANNEL_DEFAULT_TYPECLASS.objects.get_all_channels() - if chan.access(caller, "listen") - ] - for channel in channels: - self.execute_cmd("addcom %s" % channel.key) - elif args == "off": - # get names all subscribed channels and disconnect from them all - channels = CHANNEL_DEFAULT_TYPECLASS.objects.get_subscriptions(caller) - for channel in channels: - self.execute_cmd("delcom %s" % channel.key) - elif args == "destroy": - # destroy all channels you control - channels = [ - chan - for chan in CHANNEL_DEFAULT_TYPECLASS.objects.get_all_channels() - if chan.access(caller, "control") - ] - for channel in channels: - self.execute_cmd("cdestroy %s" % channel.key) - elif args == "who": - # run a who, listing the subscribers on visible channels. - string = "\n|CChannel subscriptions|n" - channels = [ - chan - for chan in CHANNEL_DEFAULT_TYPECLASS.objects.get_all_channels() - if chan.access(caller, "listen") - ] + if handle_errors: if not channels: - string += "No channels." - for channel in channels: - string += "\n|w%s:|n\n %s" % (channel.key, channel.wholist) - self.msg(string.strip()) + self.msg(f"No channel found matching '{channelname}' " + "(could also be due to missing access).") + return None + elif len(channels) > 1: + self.msg("Multiple possible channel matches/alias for " + "'{channelname}':\n" + ", ".join(chan.key for chan in channels)) + return None + return channels[0] else: - # wrong input - self.msg("Usage: allcom on | off | who | clear")
    + if not channels: + return [] + elif len(channels) > 1: + return list(channels) + return [channels[0]]
    +
    [docs] def msg_channel(self, channel, message, **kwargs): + """ + Send a message to a given channel. This will check the 'send' + permission on the channel. -
    [docs]class CmdChannels(COMMAND_DEFAULT_CLASS): - """ - list all channels available to you + Args: + channel (Channel): The channel to send to. + message (str): The message to send. + **kwargs: Unused by default. These kwargs will be passed into + all channel messaging hooks for custom overriding. - Usage: - channels - clist - comlist + """ + if not channel.access(self.caller, "send"): + caller.msg(f"You are not allowed to send messages to channel {channel}") + return - Lists all channels available to you, whether you listen to them or not. - Use 'comlist' to only view your current channel subscriptions. - Use addcom/delcom to join and leave channels - """ + # avoid unsafe tokens in message + message = strip_unsafe_input(message, self.session) - key = "channels" - aliases = ["clist", "comlist", "chanlist", "channellist", "all channels"] - help_category = "Comms" - locks = "cmd: not pperm(channel_banned)" + channel.msg(message, senders=self.caller, **kwargs)
    - # this is used by the COMMAND_DEFAULT_CLASS parent - account_caller = True +
    [docs] def get_channel_history(self, channel, start_index=0): + """ + View a channel's history. -
    [docs] def func(self): - """Implement function""" + Args: + channel (Channel): The channel to access. + message (str): The message to send. + **kwargs: Unused by default. These kwargs will be passed into + all channel messaging hooks for custom overriding. + """ + caller = self.caller + log_file = channel.get_log_filename() + + def send_msg(lines): + return self.msg( + "".join(line.split("[-]", 1)[1] if "[-]" in line else line for line in lines) + ) + # asynchronously tail the log file + tail_log_file(log_file, start_index, 20, callback=send_msg)
    + +
    [docs] def sub_to_channel(self, channel): + """ + Subscribe to a channel. Note that all permissions should + be checked before this step. + + Args: + channel (Channel): The channel to access. + + Returns: + bool, str: True, None if connection failed. If False, + the second part is an error string. + + """ caller = self.caller - # all channels we have available to listen to - channels = [ - chan - for chan in CHANNEL_DEFAULT_TYPECLASS.objects.get_all_channels() - if chan.access(caller, "listen") - ] - if not channels: - self.msg("No channels available.") - return - # all channel we are already subscribed to - subs = CHANNEL_DEFAULT_TYPECLASS.objects.get_subscriptions(caller) + if channel.has_connection(caller): + return False, f"Already listening to channel {channel.key}." - if self.cmdstring == "comlist": - # just display the subscribed channels with no extra info - comtable = self.styled_table( - "|wchannel|n", - "|wmy aliases|n", - "|wdescription|n", - align="l", - maxwidth=_DEFAULT_WIDTH, - ) - for chan in subs: - clower = chan.key.lower() - nicks = caller.nicks.get(category="channel", return_obj=True) - comtable.add_row( - *[ - "%s%s" - % ( - chan.key, - chan.aliases.all() and "(%s)" % ",".join(chan.aliases.all()) or "", - ), - "%s" - % ",".join( - nick.db_key - for nick in make_iter(nicks) - if nick and nick.value[3].lower() == clower - ), - chan.db.desc, - ] - ) - self.msg( - "\n|wChannel subscriptions|n (use |wchannels|n to list all," - " |waddcom|n/|wdelcom|n to sub/unsub):|n\n%s" % comtable - ) - else: - # full listing (of channels caller is able to listen to) - comtable = self.styled_table( - "|wsub|n", - "|wchannel|n", - "|wmy aliases|n", - "|wlocks|n", - "|wdescription|n", - maxwidth=_DEFAULT_WIDTH, - ) - for chan in channels: - clower = chan.key.lower() - nicks = caller.nicks.get(category="channel", return_obj=True) - nicks = nicks or [] - if chan not in subs: - substatus = "|rNo|n" - elif caller in chan.mutelist: - substatus = "|rMuted|n" - else: - substatus = "|gYes|n" - comtable.add_row( - *[ - substatus, - "%s%s" - % ( - chan.key, - chan.aliases.all() and "(%s)" % ",".join(chan.aliases.all()) or "", - ), - "%s" - % ",".join( - nick.db_key - for nick in make_iter(nicks) - if nick.value[3].lower() == clower - ), - str(chan.locks), - chan.db.desc, - ] - ) - comtable.reformat_column(0, width=9) - comtable.reformat_column(3, width=14) - self.msg( - "\n|wAvailable channels|n (use |wcomlist|n,|waddcom|n and |wdelcom|n" - " to manage subscriptions):\n%s" % comtable - )
    + # this sets up aliases in post_join_channel by default + result = channel.connect(caller) + return result, "" if result else f"Were not allowed to subscribe to channel {channel.key}"
    -
    [docs]class CmdCdestroy(COMMAND_DEFAULT_CLASS): - """ - destroy a channel you created +
    [docs] def unsub_from_channel(self, channel, **kwargs): + """ + Un-Subscribe to a channel. Note that all permissions should + be checked before this step. - Usage: - cdestroy <channel> + Args: + channel (Channel): The channel to unsub from. + **kwargs: Passed on to nick removal. - Destroys a channel that you control. - """ + Returns: + bool, str: True, None if un-connection succeeded. If False, + the second part is an error string. - key = "cdestroy" - help_category = "Comms" - locks = "cmd: not pperm(channel_banned)" - - # this is used by the COMMAND_DEFAULT_CLASS parent - account_caller = True - -
    [docs] def func(self): - """Destroy objects cleanly.""" + """ + caller = self.caller + + if not channel.has_connection(caller): + return False, f"Not listening to channel {channel.key}." + + # this will also clean aliases + result = channel.disconnect(caller) + + return result, "" if result else f"Could not unsubscribe from channel {channel.key}"
    + +
    [docs] def add_alias(self, channel, alias, **kwargs): + """ + Add a new alias (nick) for the user to use with this channel. + + Args: + channel (Channel): The channel to alias. + alias (str): The personal alias to use for this channel. + **kwargs: If given, passed into nicks.add. + + Note: + We add two nicks - one is a plain `alias -> channel.key` that + we need to be able to reference this channel easily. The other + is a templated nick to easily be able to send messages to the + channel without needing to give the full `channel` command. The + structure of this nick is given by `self.channel_msg_pattern` + and `self.channel_msg_nick_replacement`. By default it maps + `alias <msg> -> channel <channelname> = <msg>`, so that you can + for example just write `pub Hello` to send a message. + + The alias created is `alias $1 -> channel channel = $1`, to allow + for sending to channel using the main channel command. + + """ + channel.add_user_channel_alias(self.caller, alias, **kwargs)
    + +
    [docs] def remove_alias(self, alias, **kwargs): + """ + Remove an alias from a channel. + + Args: + alias (str, optional): The alias to remove. + The channel will be reverse-determined from the + alias, if it exists. + + Returns: + bool, str: True, None if removal succeeded. If False, + the second part is an error string. + **kwargs: If given, passed into nicks.get/add. + + Note: + This will remove two nicks - the plain channel alias and the templated + nick used for easily sending messages to the channel. + + """ + if self.caller.nicks.has(alias, category="channel", **kwargs): + DefaultChannel.remove_user_channel_alias(self.caller, alias) + return True, "" + return False, "No such alias was defined."
    + +
    [docs] def get_channel_aliases(self, channel): + """ + Get a user's aliases for a given channel. The user is retrieved + through self.caller. + + Args: + channel (Channel): The channel to act on. + + Returns: + list: A list of zero, one or more alias-strings. + + """ + chan_key = channel.key.lower() + nicktuples = self.caller.nicks.get(category="channel", return_tuple=True, return_list=True) + if nicktuples: + return [tup[2] for tup in nicktuples if tup[3].lower() == chan_key] + return []
    + +
    [docs] def mute_channel(self, channel): + """ + Temporarily mute a channel. + + Args: + channel (Channel): The channel to alias. + + Returns: + bool, str: True, None if muting successful. If False, + the second part is an error string. + """ + if channel.mute(self.caller): + return True, "" + return False, f"Channel {channel.key} was already muted."
    + +
    [docs] def unmute_channel(self, channel): + """ + Unmute a channel. + + Args: + channel (Channel): The channel to alias. + + Returns: + bool, str: True, None if unmuting successful. If False, + the second part is an error string. + + """ + if channel.unmute(self.caller): + return True, "" + return False, f"Channel {channel.key} was already unmuted."
    + +
    [docs] def create_channel(self, name, description, typeclass=None, aliases=None): + """ + Create a new channel. Its name must not previously exist + (users can alias as needed). Will also connect to the + new channel. + + Args: + name (str): The new channel name/key. + description (str): This is used in listings. + aliases (list): A list of strings - alternative aliases for the channel + (not to be confused with per-user aliases; these are available for + everyone). + + Returns: + channel, str: new_channel, "" if creation successful. If False, + the second part is an error string. + + """ + caller = self.caller + if typeclass: + typeclass = class_from_module(typeclass) + else: + typeclass = CHANNEL_DEFAULT_TYPECLASS + + if typeclass.objects.channel_search(name, exact=True): + return False, f"Channel {name} already exists." + + # set up the new channel + lockstring = "send:all();listen:all();control:id(%s)" % caller.id + + new_chan = create.create_channel( + name, aliases=aliases, desc=description, locks=lockstring, typeclass=typeclass) + self.sub_to_channel(new_chan) + return new_chan, ""
    + +
    [docs] def destroy_channel(self, channel, message=None): + """ + Destroy an existing channel. Access should be checked before + calling this function. + + Args: + channel (Channel): The channel to alias. + message (str, optional): Final message to send onto the channel + before destroying it. If not given, a default message is + used. Set to the empty string for no message. + + if typeclass: + pass + + """ caller = self.caller - if not self.args: - self.msg("Usage: cdestroy <channelname>") - return - channel = find_channel(caller, self.args) - if not channel: - self.msg("Could not find channel %s." % self.args) - return - if not channel.access(caller, "control"): - self.msg("You are not allowed to do that.") - return channel_key = channel.key - message = "%s is being destroyed. Make sure to change your aliases." % channel_key - msgobj = create.create_message(caller, message, channel) - channel.msg(msgobj) + if message is None: + message = (f"|rChannel {channel_key} is being destroyed. " + "Make sure to clean any channel aliases.|n") + if message: + channel.msg(message, senders=caller, bypass_mute=True) channel.delete() - CHANNELHANDLER.update() - self.msg("Channel '%s' was destroyed." % channel_key) logger.log_sec( - "Channel Deleted: %s (Caller: %s, IP: %s)." - % (channel_key, caller, self.session.address) - )
    + "Channel {} was deleted by {}".format(channel_key, caller) + )
    +
    [docs] def set_lock(self, channel, lockstring): + """ + Set a lockstring on a channel. Permissions must have been + checked before this call. -
    [docs]class CmdCBoot(COMMAND_DEFAULT_CLASS): - """ - kick an account from a channel you control + Args: + channel (Channel): The channel to operate on. + lockstring (str): A lockstring on the form 'type:lockfunc();...' - Usage: - cboot[/quiet] <channel> = <account> [:reason] + Returns: + bool, str: True, None if setting lock was successful. If False, + the second part is an error string. - Switch: - quiet - don't notify the channel + """ + try: + channel.locks.add(lockstring) + except LockException as err: + return False, err + return True, ""
    - Kicks an account or object from a channel you control. +
    [docs] def unset_lock(self, channel, lockstring): + """ + Remove locks in a lockstring on a channel. Permissions must have been + checked before this call. - """ + Args: + channel (Channel): The channel to operate on. + lockstring (str): A lockstring on the form 'type:lockfunc();...' - key = "cboot" - switch_options = ("quiet",) - locks = "cmd: not pperm(channel_banned)" - help_category = "Comms" + Returns: + bool, str: True, None if setting lock was successful. If False, + the second part is an error string. - # this is used by the COMMAND_DEFAULT_CLASS parent - account_caller = True + """ + try: + channel.locks.remove(lockstring) + except LockException as err: + return False, err + return True, ""
    -
    [docs] def func(self): - """implement the function""" +
    [docs] def set_desc(self, channel, description): + """ + Set a channel description. This is shown in listings etc. - if not self.args or not self.rhs: - string = "Usage: cboot[/quiet] <channel> = <account> [:reason]" - self.msg(string) - return + Args: + caller (Object or Account): The entity performing the action. + channel (Channel): The channel to operate on. + description (str): A short description of the channel. - channel = find_channel(self.caller, self.lhs) - if not channel: - return - reason = "" - if ":" in self.rhs: - accountname, reason = self.rhs.rsplit(":", 1) - searchstring = accountname.lstrip("*") - else: - searchstring = self.rhs.lstrip("*") - account = self.caller.search(searchstring, account=True) - if not account: - return - if reason: - reason = " (reason: %s)" % reason - if not channel.access(self.caller, "control"): - string = "You don't control this channel." - self.msg(string) - return - if not channel.subscriptions.has(account): - string = "Account %s is not connected to channel %s." % (account.key, channel.key) - self.msg(string) - return - if "quiet" not in self.switches: - string = "%s boots %s from channel.%s" % (self.caller, account.key, reason) - channel.msg(string) - # find all account's nicks linked to this channel and delete them + Returns: + bool, str: True, None if setting lock was successful. If False, + the second part is an error string. + + """ + channel.db.desc = description
    + +
    [docs] def boot_user(self, channel, target, quiet=False, reason=""): + """ + Boot a user from a channel, with optional reason. This will + also remove all their aliases for this channel. + + Args: + channel (Channel): The channel to operate on. + target (Object or Account): The entity to boot. + quiet (bool, optional): Whether or not to announce to channel. + reason (str, optional): A reason for the boot. + + Returns: + bool, str: True, None if setting lock was successful. If False, + the second part is an error string. + + """ + if not channel.subscriptions.has(target): + return False, f"{target} is not connected to channel {channel.key}." + # find all of target's nicks linked to this channel and delete them for nick in [ nick - for nick in account.character.nicks.get(category="channel") or [] + for nick in target.nicks.get(category="channel") or [] if nick.value[3].lower() == channel.key ]: nick.delete() - # disconnect account - channel.disconnect(account) - CHANNELHANDLER.update() - logger.log_sec( - "Channel Boot: %s (Channel: %s, Reason: %s, Caller: %s, IP: %s)." - % (account, channel, reason, self.caller, self.session.address) - )
    + channel.disconnect(target) + reason = f" Reason: {reason}" if reason else "" + target.msg(f"You were booted from channel {channel.key} by {self.caller.key}.{reason}") + if not quiet: + channel.msg(f"{target.key} was booted from channel by {self.caller.key}.{reason}") + logger.log_sec(f"Channel Boot: {target} (Channel: {channel}, " + f"Reason: {reason.strip()}, Caller: {self.caller}") + return True, ""
    -
    [docs]class CmdCemit(COMMAND_DEFAULT_CLASS): - """ - send an admin message to a channel you control +
    [docs] def ban_user(self, channel, target, quiet=False, reason=""): + """ + Ban a user from a channel, by locking them out. This will also + boot them, if they are currently connected. - Usage: - cemit[/switches] <channel> = <message> + Args: + channel (Channel): The channel to operate on. + target (Object or Account): The entity to ban + quiet (bool, optional): Whether or not to announce to channel. + reason (str, optional): A reason for the ban - Switches: - sendername - attach the sender's name before the message - quiet - don't echo the message back to sender + Returns: + bool, str: True, None if banning was successful. If False, + the second part is an error string. - Allows the user to broadcast a message over a channel as long as - they control it. It does not show the user's name unless they - provide the /sendername switch. + """ + self.boot_user(channel, target, quiet=quiet, reason=reason) + if channel.ban(target): + return True, "" + return False, f"{target} is already banned from this channel."
    - """ +
    [docs] def unban_user(self, channel, target): + """ + Un-Ban a user from a channel. This will not reconnect them + to the channel, just allow them to connect again (assuming + they have the suitable 'listen' lock like everyone else). - key = "cemit" - aliases = ["cmsg"] - switch_options = ("sendername", "quiet") - locks = "cmd: not pperm(channel_banned) and pperm(Player)" - help_category = "Comms" + Args: + channel (Channel): The channel to operate on. + target (Object or Account): The entity to unban - # this is used by the COMMAND_DEFAULT_CLASS parent - account_caller = True + Returns: + bool, str: True, None if unbanning was successful. If False, + the second part is an error string. -
    [docs] def func(self): - """Implement function""" + """ + if channel.unban(target): + return True, "" + return False, f"{target} was not previously banned from this channel."
    - if not self.args or not self.rhs: - string = "Usage: cemit[/switches] <channel> = <message>" - self.msg(string) - return - channel = find_channel(self.caller, self.lhs) - if not channel: - return - if not channel.access(self.caller, "control"): - string = "You don't control this channel." - self.msg(string) - return - message = self.rhs - if "sendername" in self.switches: - message = "%s: %s" % (self.caller.key, message) - channel.msg(message) - if "quiet" not in self.switches: - string = "Sent to channel %s: %s" % (channel.key, message) - self.msg(string)
    +
    [docs] def channel_list_bans(self, channel): + """ + Show a channel's bans. + Args: + channel (Channel): The channel to operate on. -
    [docs]class CmdCWho(COMMAND_DEFAULT_CLASS): - """ - show who is listening to a channel + Returns: + list: A list of strings, each the name of a banned user. - Usage: - cwho <channel> + """ + return [banned.key for banned in channel.banlist]
    - List who is connected to a given channel you have access to. - """ +
    [docs] def channel_list_who(self, channel): + """ + Show a list of online people is subscribing to a channel. This will check + the 'control' permission of `caller` to determine if only online users + should be returned or everyone. - key = "cwho" - locks = "cmd: not pperm(channel_banned)" - help_category = "Comms" + Args: + channel (Channel): The channel to operate on. - # this is used by the COMMAND_DEFAULT_CLASS parent - account_caller = True + Returns: + list: A list of prepared strings, with name + markers for if they are + muted or offline. -
    [docs] def func(self): - """implement function""" + """ + caller = self.caller + mute_list = list(channel.mutelist) + online_list = channel.subscriptions.online() + if channel.access(caller, 'control'): + # for those with channel control, show also offline users + all_subs = list(channel.subscriptions.all()) + else: + # for others, only show online users + all_subs = online_list - if not self.args: - string = "Usage: cwho <channel>" - self.msg(string) - return + who_list = [] + for subscriber in all_subs: + name = subscriber.get_display_name(caller) + conditions = ("muting" if subscriber in mute_list else "", + "offline" if subscriber not in online_list else "") + conditions = [cond for cond in conditions if cond] + cond_text = "(" + ", ".join(conditions) + ")" if conditions else "" + who_list.append(f"{name}{cond_text}") - channel = find_channel(self.caller, self.lhs) - if not channel: - return - if not channel.access(self.caller, "listen"): - string = "You can't access this channel." - self.msg(string) - return - string = "\n|CChannel subscriptions|n" - string += "\n|w%s:|n\n %s" % (channel.key, channel.wholist) - self.msg(string.strip())
    + return who_list
    +
    [docs] def list_channels(self, channelcls=CHANNEL_DEFAULT_TYPECLASS): + """ + Return a available channels. -
    [docs]class CmdChannelCreate(COMMAND_DEFAULT_CLASS): - """ - create a new channel + Args: + channelcls (Channel, optional): The channel-class to query on. Defaults + to the default channel class from settings. - Usage: - ccreate <new channel>[;alias;alias...] = description + Returns: + tuple: A tuple `(subbed_chans, available_chans)` with the channels + currently subscribed to, and those we have 'listen' access to but + don't actually sub to yet. - Creates a new channel owned by you. - """ + """ + caller = self.caller + subscribed_channels = list(channelcls.objects.get_subscriptions(caller)) + unsubscribed_available_channels = [ + chan + for chan in channelcls.objects.get_all_channels() + if chan not in subscribed_channels and chan.access(caller, "listen") + ] + return subscribed_channels, unsubscribed_available_channels
    - key = "ccreate" - aliases = "channelcreate" - locks = "cmd:not pperm(channel_banned) and pperm(Player)" - help_category = "Comms" +
    [docs] def display_subbed_channels(self, subscribed): + """ + Display channels subscribed to. - # this is used by the COMMAND_DEFAULT_CLASS parent - account_caller = True + Args: + subscribed (list): List of subscribed channels -
    [docs] def func(self): - """Implement the command""" + Returns: + EvTable: Table to display. + """ + comtable = self.styled_table( + "channel", + "my aliases", + "locks", + "description", + align="l", + maxwidth=_DEFAULT_WIDTH + ) + for chan in subscribed: + + locks = "-" + if chan.access(self.caller, "control"): + locks = chan.locks + + my_aliases = ", ".join(self.get_channel_aliases(chan)) + comtable.add_row( + *("{}{}".format( + chan.key, + "({})".format(",".join(chan.aliases.all())) if chan.aliases.all() else ""), + my_aliases, + locks, + chan.db.desc)) + return comtable
    + +
    [docs] def display_all_channels(self, subscribed, available): + """ + Display all available channels + + Args: + subscribed (list): List of subscribed channels + Returns: + EvTable: Table to display. + + """ caller = self.caller - if not self.args: - self.msg("Usage ccreate <channelname>[;alias;alias..] = description") - return + comtable = self.styled_table( + "sub", + "channel", + "aliases", + "my aliases", + "description", + maxwidth=_DEFAULT_WIDTH, + ) + channels = subscribed + available - description = "" + for chan in channels: + if chan not in subscribed: + substatus = "|rNo|n" + elif caller in chan.mutelist: + substatus = "|rMuting|n" + else: + substatus = "|gYes|n" + my_aliases = ", ".join(self.get_channel_aliases(chan)) + comtable.add_row( + *(substatus, + chan.key, + ",".join(chan.aliases.all()) if chan.aliases.all() else "", + my_aliases, + chan.db.desc)) + comtable.reformat_column(0, width=8) - if self.rhs: - description = self.rhs - lhs = self.lhs - channame = lhs - aliases = None - if ";" in lhs: - channame, aliases = lhs.split(";", 1) - aliases = [alias.strip().lower() for alias in aliases.split(";")] - channel = CHANNEL_DEFAULT_TYPECLASS.objects.channel_search(channame) - if channel: - self.msg("A channel with that name already exists.") - return - # Create and set the channel up - lockstring = "send:all();listen:all();control:id(%s)" % caller.id - new_chan = create.create_channel(channame.strip(), aliases, description, locks=lockstring) - new_chan.connect(caller) - CHANNELHANDLER.update() - self.msg("Created channel %s and connected to it." % new_chan.key)
    + return comtable
    - -
    [docs]class CmdClock(COMMAND_DEFAULT_CLASS): - """ - change channel locks of a channel you control - - Usage: - clock <channel> [= <lockstring>] - - Changes the lock access restrictions of a channel. If no - lockstring was given, view the current lock definitions. - """ - - key = "clock" - locks = "cmd:not pperm(channel_banned)" - aliases = ["clock"] - help_category = "Comms" - - # this is used by the COMMAND_DEFAULT_CLASS parent - account_caller = True - -
    [docs] def func(self): - """run the function""" - - if not self.args: - string = "Usage: clock channel [= lockstring]" - self.msg(string) - return - - channel = find_channel(self.caller, self.lhs) - if not channel: - return - if not self.rhs: - # no =, so just view the current locks - string = "Current locks on %s:" % channel.key - string = "%s\n %s" % (string, channel.locks) - self.msg(string) - return - # we want to add/change a lock. - if not channel.access(self.caller, "control"): - string = "You don't control this channel." - self.msg(string) - return - # Try to add the lock - try: - channel.locks.add(self.rhs) - except LockException as err: - self.msg(err) - return - string = "Lock(s) applied. " - string += "Current locks on %s:" % channel.key - string = "%s\n %s" % (string, channel.locks) - self.msg(string)
    - - -
    [docs]class CmdCdesc(COMMAND_DEFAULT_CLASS): - """ - describe a channel you control - - Usage: - cdesc <channel> = <description> - - Changes the description of the channel as shown in - channel lists. - """ - - key = "cdesc" - locks = "cmd:not pperm(channel_banned)" - help_category = "Comms" - - # this is used by the COMMAND_DEFAULT_CLASS parent - account_caller = True - -
    [docs] def func(self): - """Implement command""" +
    [docs] def func(self): + """ + Main functionality of command. + """ + # from evennia import set_trace;set_trace() caller = self.caller + switches = self.switches + channel_names = [name for name in self.lhslist if name] - if not self.rhs: - self.msg("Usage: cdesc <channel> = <description>") + #from evennia import set_trace;set_trace() + + if 'all' in switches: + # show all available channels + subscribed, available = self.list_channels() + table = self.display_all_channels(subscribed, available) + + self.msg( + "\n|wAvailable channels|n (use no argument to " + f"only show your subscriptions)\n{table}") return - channel = find_channel(caller, self.lhs) - if not channel: - self.msg("Channel '%s' not found." % self.lhs) + + if not channel_names: + # empty arg show only subscribed channels + subscribed, _ = self.list_channels() + table = self.display_subbed_channels(subscribed) + + self.msg("\n|wChannel subscriptions|n " + f"(use |w/all|n to see all available):\n{table}") return - # check permissions - if not channel.access(caller, "control"): - self.msg("You cannot admin this channel.") + + if not self.switches and not self.args: + self.msg("Usage[/switches]: channel [= message]") return - # set the description - channel.db.desc = self.rhs - channel.save() - self.msg("Description of channel '%s' set to '%s'." % (channel.key, self.rhs))
    + + if 'create' in switches: + # create a new channel + + if not self.access(caller, "manage"): + self.msg("You don't have access to use channel/create.") + return + + config = self.lhs + if not config: + self.msg("To create: channel/create name[;aliases][:typeclass] [= description]") + return + name, *typeclass = config.rsplit(":", 1) + typeclass = typeclass[0] if typeclass else None + name, *aliases = name.rsplit(";") + description = self.rhs or "" + chan, err = self.create_channel(name, description, typeclass=typeclass, aliases=aliases) + if chan: + self.msg(f"Created (and joined) new channel '{chan.key}'.") + else: + self.msg(err) + return + + if 'unalias' in switches: + # remove a personal alias (no channel needed) + alias = self.args.strip() + if not alias: + self.msg("Specify the alias to remove as channel/unalias <alias>") + return + success, err = self.remove_alias(alias) + if success: + self.msg(f"Removed your channel alias '{alias}'.") + else: + self.msg(err) + return + + possible_lhs_message = "" + if not self.rhs and self.args and " " in self.args: + # since we want to support messaging with `channel name text` (for + # channels without a space in their name), we need to check if the + # first 'channel name' is in fact 'channelname text' + no_rhs_channel_name = self.args.split(" ", 1)[0] + possible_lhs_message = self.args[len(no_rhs_channel_name):] + if possible_lhs_message.strip() == '=': + possible_lhs_message = "" + channel_names.append(no_rhs_channel_name) + + + channels = [] + errors = [] + for channel_name in channel_names: + # find a channel by fuzzy-matching. This also checks + # 'listen/control' perms. + found_channels = self.search_channel(channel_name, exact=False, handle_errors=False) + if not found_channels: + errors.append(f"No channel found matching '{channel_name}' " + "(could also be due to missing access).") + elif len(found_channels) > 1: + errors.append("Multiple possible channel matches/alias for " + "'{channel_name}':\n" + ", ".join(chan.key for chan in found_channels)) + else: + channels.append(found_channels[0]) + + if not channels: + self.msg('\n'.join(errors)) + return + + # we have at least one channel at this point + channel = channels[0] + + if not switches: + if self.rhs: + # send message to channel + self.msg_channel(channel, self.rhs.strip()) + elif channel and possible_lhs_message: + # called on the form channelname message without = + self.msg_channel(channel, possible_lhs_message.strip()) + else: + # inspect a given channel + subscribed, available = self.list_channels() + if channel in subscribed: + table = self.display_subbed_channels([channel]) + header = f"Channel |w{channel.key}|n" + self.msg(f"{header}\n(use |w{channel.key} <msg>|n (or a channel-alias) " + f"to chat and the 'channel' command " + f"to customize)\n{table}") + elif channel in available: + table = self.display_all_channels([], [channel]) + self.msg( + "\n|wNot subscribed to this channel|n (use /list to " + f"show all subscriptions)\n{table}") + return + + if 'history' in switches or 'hist' in switches: + # view channel history + + index = self.rhs or 0 + try: + index = max(0, int(index)) + except ValueError: + self.msg("The history index (describing how many lines to go back) " + "must be an integer >= 0.") + return + self.get_channel_history(channel, start_index=index) + return + + if 'sub' in switches: + # subscribe to a channel + aliases = [] + if self.rhs: + aliases = set(alias.strip().lower() for alias in self.rhs.split(";")) + success, err = self.sub_to_channel(channel) + if success: + for alias in aliases: + self.add_alias(channel, alias) + alias_txt = ', '.join(aliases) + alias_txt = f" using alias(es) {alias_txt}" if aliases else '' + self.msg("You are now subscribed " + f"to the channel {channel.key}{alias_txt}. Use /alias to " + "add additional aliases for referring to the channel.") + else: + self.msg(err) + return + + if 'unsub' in switches: + # un-subscribe from a channel + success, err = self.unsub_from_channel(channel) + if success: + self.msg(f"You un-subscribed from channel {channel.key}. " + "All aliases were cleared.") + else: + self.msg(err) + return + + if 'alias' in switches: + # create a new personal alias for a channel + alias = self.rhs + if not alias: + self.msg("Specify the alias as channel/alias channelname = alias") + return + self.add_alias(channel, alias) + self.msg(f"Added/updated your alias '{alias}' for channel {channel.key}.") + return + + if 'mute' in switches: + # mute a given channel + success, err = self.mute_channel(channel) + if success: + self.msg(f"Muted channel {channel.key}.") + else: + self.msg(err) + return + + if 'unmute' in switches: + # unmute a given channel + success, err = self.unmute_channel(channel) + if success: + self.msg(f"Un-muted channel {channel.key}.") + else: + self.msg(err) + return + + if 'destroy' in switches or 'delete' in switches: + # destroy a channel we control + + if not self.access(caller, "manage"): + self.msg("You don't have access to use channel/destroy.") + return + + if not channel.access(caller, "control"): + self.msg("You can only delete channels you control.") + return + + reason = self.rhs or None + + def _perform_delete(caller, *args, **kwargs): + self.destroy_channel(channel, message=reason) + self.msg(f"Channel {channel.key} was successfully deleted.") + + ask_yes_no( + caller, + prompt=f"Are you sure you want to delete channel '{channel.key}' " + "(make sure name is correct!)?\nThis will disconnect and " + "remove all users' aliases. {options}?", + yes_action=_perform_delete, + no_action="Aborted.", + default="N" + ) + + if 'desc' in switches: + # set channel description + + if not self.access(caller, "manage"): + self.msg("You don't have access to use channel/desc.") + return + + if not channel.access(caller, "control"): + self.msg("You can only change description of channels you control.") + return + + desc = self.rhs.strip() + + if not desc: + self.msg("Usage: /desc channel = description") + return + + self.set_desc(channel, desc) + self.msg("Updated channel description.") + + if 'lock' in switches: + # add a lockstring to channel + + if not self.access(caller, "changelocks"): + self.msg("You don't have access to use channel/lock.") + return + + if not channel.access(caller, "control"): + self.msg("You need 'control'-access to change locks on this channel.") + return + + lockstring = self.rhs.strip() + + if not lockstring: + self.msg("Usage: channel/lock channelname = lockstring") + return + + success, err = self.set_lock(channel, self.rhs) + if success: + self.msg("Added/updated lock on channel.") + else: + self.msg(f"Could not add/update lock: {err}") + return + + if 'unlock' in switches: + # remove/update lockstring from channel + + if not self.access(caller, "changelocks"): + self.msg("You don't have access to use channel/unlock.") + return + + if not channel.access(caller, "control"): + self.msg("You need 'control'-access to change locks on this channel.") + return + + lockstring = self.rhs.strip() + + if not lockstring: + self.msg("Usage: channel/unlock channelname = lockstring") + return + + success, err = self.unset_lock(channel, self.rhs) + if success: + self.msg("Removed lock from channel.") + else: + self.msg(f"Could not remove lock: {err}") + return + + if 'boot' in switches: + # boot a user from channel(s) + + if not self.access(caller, "admin"): + self.msg("You don't have access to use channel/boot.") + return + + if not self.rhs: + self.msg("Usage: channel/boot channel[,channel,...] = username [:reason]") + return + + target_str, *reason = self.rhs.rsplit(":", 1) + reason = reason[0].strip() if reason else "" + + for chan in channels: + + if not chan.access(caller, "control"): + self.msg(f"You need 'control'-access to boot a user from {chan.key}.") + return + + # the target must be a member of all given channels + target = caller.search(target_str, candidates=chan.subscriptions.all()) + if not target: + self.msg(f"Cannot boot '{target_str}' - not in channel {chan.key}.") + return + + def _boot_user(caller, *args, **kwargs): + for chan in channels: + success, err = self.boot_user(chan, target, quiet=False, reason=reason) + if success: + self.msg(f"Booted {target.key} from channel {chan.key}.") + else: + self.msg(f"Cannot boot {target.key} from channel {chan.key}: {err}") + + channames = ", ".join(chan.key for chan in channels) + reasonwarn = (". Also note that your reason will be echoed to the channel" + if reason else '') + ask_yes_no( + caller, + prompt=f"Are you sure you want to boot user {target.key} from " + f"channel(s) {channames} (make sure name/channels are correct{reasonwarn}). " + "{options}?", + yes_action=_boot_user, + no_action="Aborted.", + default="Y" + ) + return + + if 'ban' in switches: + # ban a user from channel(s) + + if not self.access(caller, "admin"): + self.msg("You don't have access to use channel/ban.") + return + + if not self.rhs: + # view bans for channels + + if not channel.access(caller, "control"): + self.msg(f"You need 'control'-access to view bans on channel {channel.key}") + return + + bans = ["Channel bans " + "(to ban, use channel/ban channel[,channel,...] = username [:reason]"] + bans.extend(self.channel_list_bans(channel)) + self.msg("\n".join(bans)) + return + + target_str, *reason = self.rhs.rsplit(":", 1) + reason = reason[0].strip() if reason else "" + + for chan in channels: + # the target must be a member of all given channels + if not chan.access(caller, "control"): + self.msg(f"You don't have access to ban users on channel {chan.key}") + return + + target = caller.search(target_str, candidates=chan.subscriptions.all()) + + if not target: + self.msg(f"Cannot ban '{target_str}' - not in channel {chan.key}.") + return + + def _ban_user(caller, *args, **kwargs): + for chan in channels: + success, err = self.ban_user(chan, target, quiet=False, reason=reason) + if success: + self.msg(f"Banned {target.key} from channel {chan.key}.") + else: + self.msg(f"Cannot boot {target.key} from channel {chan.key}: {err}") + + channames = ", ".join(chan.key for chan in channels) + reasonwarn = (". Also note that your reason will be echoed to the channel" + if reason else '') + ask_yes_no( + caller, + f"Are you sure you want to ban user {target.key} from " + f"channel(s) {channames} (make sure name/channels are correct{reasonwarn}) " + "{options}?", + _ban_user, + "Aborted.", + ) + return + + if 'unban' in switches: + # unban a previously banned user from channel + + if not self.access(caller, "admin"): + self.msg("You don't have access to use channel/unban.") + return + + target_str = self.rhs.strip() + + if not target_str: + self.msg("Usage: channel[,channel,...] = user") + return + + banlists = [] + for chan in channels: + # the target must be a member of all given channels + if not chan.access(caller, "control"): + self.msg(f"You don't have access to unban users on channel {chan.key}") + return + banlists.extend(chan.banlist) + + target = caller.search(target_str, candidates=banlists) + if not target: + self.msg("Could not find a banned user '{target_str}' in given channel(s).") + return + + for chan in channels: + success, err = self.unban_user(channel, target) + if success: + self.msg(f"Un-banned {target_str} from channel {chan.key}") + else: + self.msg(err) + return + + if "who" in switches: + # view who's a member of a channel + + who_list = [f"Subscribed to {channel.key}:"] + who_list.extend(self.channel_list_who(channel)) + self.msg("\n".join(who_list)) + return
    + + +# a channel-command parent for use with Characters/Objects. +
    [docs]class CmdObjectChannel(CmdChannel): + account_caller = False
    [docs]class CmdPage(COMMAND_DEFAULT_CLASS): @@ -795,16 +1291,19 @@ send a private message to another account Usage: + page <account> <message> page[/switches] [<account>,<account>,... = <message>] tell '' page <number> - Switch: + Switches: last - shows who you last messaged list - show your last <number> of tells/pages (default) - Send a message to target user (if online). If no - argument is given, you will get a list of your latest messages. + Send a message to target user (if online). If no argument is given, you + will get a list of your latest messages. The equal sign is needed for + multiple targets or if sending to target with space in the name. + """ key = "page" @@ -823,9 +1322,10 @@ caller = self.caller # get the messages we've sent (not to channels) - pages_we_sent = Msg.objects.get_messages_by_sender(caller, exclude_channel_messages=True) + pages_we_sent = Msg.objects.get_messages_by_sender(caller) # get last messages we've got pages_we_got = Msg.objects.get_messages_by_receiver(caller) + targets, message, number = [], None, None if "last" in self.switches: if pages_we_sent: @@ -836,19 +1336,76 @@ self.msg("You haven't paged anyone yet.") return - if not self.args or not self.rhs: - pages = pages_we_sent + pages_we_got - pages = sorted(pages, key=lambda page: page.date_created) + if self.args: + if self.rhs: + for target in self.lhslist: + target_obj = self.caller.search(target) + if not target_obj: + return + targets.append(target_obj) + message = self.rhs.strip() + else: + target, *message = self.args.split(" ", 4) + if target and target.isnumeric(): + # a number to specify a historic page + number = int(target) + elif target: + target_obj = self.caller.search(target, quiet=True) + if target_obj: + # a proper target + targets = [target_obj[0]] + message = message[0].strip() + else: + # a message with a space in it - put it back together + message = target + " " + (message[0] if message else "") + else: + # a single-word message + message = message[0].strip() - number = 5 - if self.args: - try: - number = int(self.args) - except ValueError: - self.msg("Usage: tell [<account> = msg]") + pages = list(pages_we_sent) + list(pages_we_got) + pages = sorted(pages, key=lambda page: page.date_created) + + if message: + # send a message + if not targets: + # no target given - send to last person we paged + if pages_we_sent: + targets = pages_we_sent[-1].receivers + else: + self.msg("Who do you want page?") return - if len(pages) > number: + header = "|wAccount|n |c%s|n |wpages:|n" % caller.key + if message.startswith(":"): + message = "%s %s" % (caller.key, message.strip(":").strip()) + + # create the persistent message object + create.create_message(caller, message, receivers=targets) + + # tell the accounts they got a message. + received = [] + rstrings = [] + for target in targets: + if not target.access(caller, "msg"): + rstrings.append(f"You are not allowed to page {target}.") + continue + target.msg(f"{header} {message}") + if hasattr(target, "sessions") and not target.sessions.count(): + received.append(f"|C{target.name}|n") + rstrings.append( + f"{received[-1]} is offline. They will see your message " + "if they list their pages later." + ) + else: + received.append(f"|c{target.name}|n") + if rstrings: + self.msg("\n".join(rstrings)) + self.msg("You paged %s with: '%s'." % (", ".join(received), message)) + return + + else: + # no message to send + if number is not None and len(pages) > number: lastpages = pages[-number:] else: lastpages = pages @@ -892,6 +1449,7 @@ receiver=receiver, message=page.message, ) + ) lastpages = "\n ".join(listing) @@ -900,65 +1458,7 @@ else: string = "You haven't paged anyone yet." self.msg(string) - return - - # We are sending. Build a list of targets - - if not self.lhs: - # If there are no targets, then set the targets - # to the last person we paged. - if pages_we_sent: - receivers = pages_we_sent[-1].receivers - else: - self.msg("Who do you want to page?") - return - else: - receivers = self.lhslist - - recobjs = [] - for receiver in set(receivers): - if isinstance(receiver, str): - pobj = caller.search(receiver) - elif hasattr(receiver, "character"): - pobj = receiver - else: - self.msg("Who do you want to page?") - return - if pobj: - recobjs.append(pobj) - if not recobjs: - self.msg("Noone found to page.") - return - - header = "|wAccount|n |c%s|n |wpages:|n" % caller.key - message = self.rhs - - # if message begins with a :, we assume it is a 'page-pose' - if message.startswith(":"): - message = "%s %s" % (caller.key, message.strip(":").strip()) - - # create the persistent message object - create.create_message(caller, message, receivers=recobjs) - - # tell the accounts they got a message. - received = [] - rstrings = [] - for pobj in recobjs: - if not pobj.access(caller, "msg"): - rstrings.append("You are not allowed to page %s." % pobj) - continue - pobj.msg("%s %s" % (header, message)) - if hasattr(pobj, "sessions") and not pobj.sessions.count(): - received.append("|C%s|n" % pobj.name) - rstrings.append( - "%s is offline. They will see your message if they list their pages later." - % received[-1] - ) - else: - received.append("|c%s|n" % pobj.name) - if rstrings: - self.msg("\n".join(rstrings)) - self.msg("You paged %s with: '%s'." % (", ".join(received), message))
    + return def _list_bots(cmd): @@ -1000,7 +1500,6 @@ else: return "No irc bots found." -
    [docs]class CmdIRC2Chan(COMMAND_DEFAULT_CLASS): """ Link an evennia channel to an external IRC channel @@ -1122,7 +1621,7 @@ Check and reboot IRC bot. Usage: - ircstatus [#dbref ping||nicklist||reconnect] + ircstatus [#dbref ping | nicklist | reconnect] If not given arguments, will return a list of all bots (like irc2chan/list). The 'ping' argument will ping the IRC network to @@ -1423,11 +1922,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 0e59dd6dd6..c34ced0898 100644 --- a/docs/0.9.5/_modules/evennia/commands/default/general.html +++ b/docs/0.9.5/_modules/evennia/commands/default/general.html @@ -46,7 +46,7 @@ """ import re from django.conf import settings -from evennia.utils import utils, evtable +from evennia.utils import utils from evennia.typeclasses.attributes import NickTemplateInvalid COMMAND_DEFAULT_CLASS = utils.class_from_module(settings.COMMAND_DEFAULT_CLASS) @@ -126,7 +126,10 @@ target = caller.search(self.args) if not target: return - self.msg((caller.at_look(target), {"type": "look"}), options=None) + desc = caller.at_look(target) + # add the type=look to the outputfunc to make it + # easy to separate this output in client. + self.msg(text=(desc, {"type": "look"}), options=None)
    [docs]class CmdNick(COMMAND_DEFAULT_CLASS): @@ -422,13 +425,10 @@ 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 or ""), width=50) or "")) string = f"|wYou are carrying:\n{table}" self.caller.msg(string)
    @@ -446,7 +446,7 @@ key = "get" aliases = "grab" - locks = "cmd:all()" + locks = "cmd:all();view:perm(Developer);read:perm(Developer)" arg_regex = r"\s|$"
    [docs] def func(self): @@ -470,8 +470,8 @@ caller.msg("You can't get that.") return - # calling at_before_get hook method - if not obj.at_before_get(caller): + # calling at_pre_get hook method + if not obj.at_pre_get(caller): return success = obj.move_to(caller, quiet=True) @@ -520,8 +520,8 @@ if not obj: return - # Call the object script's at_before_drop() method. - if not obj.at_before_drop(caller): + # Call the object script's at_pre_drop() method. + if not obj.at_pre_drop(caller): return success = obj.move_to(caller.location, quiet=True) @@ -573,8 +573,8 @@ caller.msg("You are not holding %s." % to_give.key) return - # calling at_before_give hook method - if not to_give.at_before_give(caller, target): + # calling at_pre_give hook method + if not to_give.at_pre_give(caller, target): return # give object @@ -629,6 +629,9 @@ aliases = ['"', "'"] locks = "cmd:all()" + # don't require a space after `say/'/"` + arg_regex = None +
    [docs] def func(self): """Run the say command""" @@ -640,14 +643,14 @@ speech = self.args - # Calling the at_before_say hook on the character - speech = caller.at_before_say(speech) + # Calling the at_pre_say hook on the character + speech = caller.at_pre_say(speech) # If speech is empty, stop here if not speech: return - # Call the at_after_say hook on the character + # Call the at_post_say hook on the character caller.at_say(speech, msg_self=True)
    @@ -686,7 +689,7 @@ return # Call a hook to change the speech before whispering - speech = caller.at_before_say(speech, whisper=True, receivers=receivers) + speech = caller.at_pre_say(speech, whisper=True, receivers=receivers) # no need for self-message if we are whispering to ourselves (for some reason) msg_self = None if caller in receivers else True @@ -713,6 +716,11 @@ key = "pose" aliases = [":", "emote"] locks = "cmd:all()" + arg_regex = "" + + # we want to be able to pose without whitespace between + # the command/alias and the pose (e.g. :pose) + arg_regex = None
    [docs] def parse(self): """ @@ -797,11 +805,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 d3ede6d116..2774bac1a4 100644 --- a/docs/0.9.5/_modules/evennia/commands/default/help.html +++ b/docs/0.9.5/_modules/evennia/commands/default/help.html @@ -42,43 +42,78 @@

    Source code for evennia.commands.default.help

     """
    -The help command. The basic idea is that help texts for commands
    -are best written by those that write the commands - the admins. So
    -command-help is all auto-loaded and searched from the current command
    -set. The normal, database-tied help system is used for collaborative
    -creation of other help topics such as RP help or game-world aides.
    +The help command. The basic idea is that help texts for commands are best
    +written by those that write the commands - the developers. So command-help is
    +all auto-loaded and searched from the current command set. The normal,
    +database-tied help system is used for collaborative creation of other help
    +topics such as RP help or game-world aides. Help entries can also be created
    +outside the game in modules given by ``settings.FILE_HELP_ENTRY_MODULES``.
    +
     """
     
    +import re
    +from itertools import chain
    +from dataclasses import dataclass
     from django.conf import settings
     from collections import defaultdict
    -from evennia.utils.utils import fill, dedent
    -from evennia.commands.command import Command
    +from evennia.utils.utils import dedent
     from evennia.help.models import HelpEntry
     from evennia.utils import create, evmore
    +from evennia.utils.ansi import ANSIString
    +from evennia.help.filehelp import FILE_HELP_ENTRIES
     from evennia.utils.eveditor import EvEditor
    -from evennia.utils.utils import string_suggestions, class_from_module
    +from evennia.utils.utils import (
    +    class_from_module,
    +    inherits_from,
    +    format_grid, pad
    +)
    +from evennia.help.utils import help_search_with_index, parse_entry_for_subcategories
     
    -COMMAND_DEFAULT_CLASS = class_from_module(settings.COMMAND_DEFAULT_CLASS)
    -HELP_MORE = settings.HELP_MORE
     CMD_IGNORE_PREFIXES = settings.CMD_IGNORE_PREFIXES
    +COMMAND_DEFAULT_CLASS = class_from_module(settings.COMMAND_DEFAULT_CLASS)
    +HELP_MORE_ENABLED = settings.HELP_MORE_ENABLED
    +DEFAULT_HELP_CATEGORY = settings.DEFAULT_HELP_CATEGORY
    +HELP_CLICKABLE_TOPICS = settings.HELP_CLICKABLE_TOPICS
     
     # limit symbol import for API
     __all__ = ("CmdHelp", "CmdSetHelp")
    -_DEFAULT_WIDTH = settings.CLIENT_DEFAULT_WIDTH
    -_SEP = "|C" + "-" * _DEFAULT_WIDTH + "|n"
    +
    +@dataclass
    +class HelpCategory:
    +    """
    +    Mock 'help entry' to search categories with the same code.
    +
    +    """
    +    key: str
    +
    +    @property
    +    def search_index_entry(self):
    +        return {
    +            "key": self.key,
    +            "aliases": "",
    +            "category": self.key,
    +            "no_prefix": "",
    +            "tags": "",
    +            "text": "",
    +        }
    +
    +    def __hash__(self):
    +        return hash(id(self))
     
     
     
    [docs]class CmdHelp(COMMAND_DEFAULT_CLASS): """ - View help or a list of topics + Get help. Usage: - help <topic or command> - help list - help all + help + help <topic, command or category> + help <topic>/<subtopic> + help <topic>/<subtopic>/<subsubtopic> ... + + Use the 'help' command alone to see an index of all help topics, organized + by category.eSome big topics may offer additional sub-topics. - This will search for help on commands and other - topics related to the game. """ key = "help" @@ -92,8 +127,13 @@ # Help messages are wrapped in an EvMore call (unless using the webclient # with separate help popups) If you want to avoid this, simply add - # 'HELP_MORE = False' in your settings/conf/settings.py - help_more = HELP_MORE + # 'HELP_MORE_ENABLED = False' in your settings/conf/settings.py + help_more = HELP_MORE_ENABLED + + # colors for the help index + index_type_separator_clr = "|w" + index_category_clr = "|W" + index_topic_clr = "|G" # suggestion cutoff, between 0 and 1 (1 => perfect match) suggestion_cutoff = 0.6 @@ -101,6 +141,12 @@ # number of suggestions (set to 0 to remove suggestions from help) suggestion_maxnum = 5 + # separator between subtopics: + subtopic_separator_char = r"/" + + # should topics disply their help entry when clicked + clickable_topics = HELP_CLICKABLE_TOPICS +
    [docs] def msg_help(self, text): """ messages text to the caller, adding an extra oob argument to indicate @@ -110,7 +156,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"]: @@ -124,241 +170,581 @@ self.msg(text=(text, {"type": "help"}))
    -
    [docs] @staticmethod - def format_help_entry(title, help_text, aliases=None, suggested=None): - """ - This visually formats the help entry. +
    [docs] def format_help_entry(self, topic="", help_text="", aliases=None, suggested=None, + subtopics=None, click_topics=True): + """This visually formats the help entry. This method can be overriden to customize the way a help entry is displayed. Args: - title (str): the title of the help entry. - help_text (str): the text of the help entry. - aliases (list of str or None): the list of aliases. - suggested (list of str or None): suggested reading. + title (str, optional): The title of the help entry. + help_text (str, optional): Text of the help entry. + aliases (list, optional): List of help-aliases (displayed in header). + suggested (list, optional): Strings suggested reading (based on title). + subtopics (list, optional): A list of strings - the subcategories available + for this entry. + click_topics (bool, optional): Should help topics be clickable. Default is True. - Returns the formatted string, ready to be sent. + Returns: + help_message (str): Help entry formated for console. """ - string = _SEP + "\n" - if title: - string += "|CHelp for |w%s|n" % title + separator = "|C" + "-" * self.client_width() + "|n" + start = f"{separator}\n" + + title = f"|CHelp for |w{topic}|n" if topic else "|rNo help found|n" + 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()) + aliases = ( + " |C(aliases: {}|C)|n".format("|C,|n ".join(f"|w{ali}|n" for ali in aliases)) + ) + else: + aliases = '' + + help_text = "\n" + dedent(help_text.strip('\n')) if help_text else "" + + if subtopics: + if click_topics: + subtopics = [ + f"|lchelp {topic}/{subtop}|lt|w{topic}/{subtop}|n|le" + for subtop in subtopics + ] + else: + subtopics = [f"|w{topic}/{subtop}|n" for subtop in subtopics] + subtopics = ( + "\n|CSubtopics:|n\n {}".format( + "\n ".join(format_grid(subtopics, width=self.client_width()))) + ) + else: + subtopics = '' + 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
    + if click_topics: + suggested = [f"|lchelp {sug}|lt|w{sug}|n|le" for sug in suggested] + else: + suggested = [f"|w{sug}|n" for sug in suggested] + suggested = ( + "\n|COther topic suggestions:|n\n{}".format( + "\n ".join(format_grid(suggested, width=self.client_width()))) + ) + else: + suggested = '' -
    [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. - """ - 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" - ) - return string
    + end = start -
    [docs] def check_show_help(self, cmd, caller): - """ - Helper method. If this return True, the given cmd - auto-help will be viewable in the help listing. - Override this to easily select what is shown to - the account. Note that only commands available - in the caller's merged cmdset are available. + partorder = (start, title + aliases, help_text, subtopics, suggested, end) + + return "\n".join(part.rstrip() for part in partorder if part)
    + +
    [docs] def format_help_index(self, cmd_help_dict=None, db_help_dict=None, title_lone_category=False, + click_topics=True): + """Output a category-ordered g for displaying the main help, grouped by + category. Args: - cmd (Command): Command class from the merged cmdset - caller (Character, Account or Session): The current caller - executing the help command. + cmd_help_dict (dict): A dict `{"category": [topic, topic, ...]}` for + command-based help. + db_help_dict (dict): A dict `{"category": [topic, topic], ...]}` for + database-based help. + title_lone_category (bool, optional): If a lone category should + be titled with the category name or not. While pointless in a + general index, the title should probably show when explicitly + listing the category itself. + click_topics (bool, optional): If help-topics are clickable or not + (for webclient or telnet clients with MXP support). + Returns: + str: The help index organized into a grid. + + Notes: + 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. """ - # return only those with auto_help set and passing the cmd: lock - return cmd.auto_help and cmd.access(caller)
    + def _group_by_category(help_dict): + grid = [] + verbatim_elements = [] -
    [docs] def should_list_cmd(self, cmd, caller): + if len(help_dict) == 1 and not title_lone_category: + # don't list categories if there is only one + for category in help_dict: + # gather and sort the entries from the help dictionary + entries = sorted(set(help_dict.get(category, []))) + + # make the help topics clickable + if click_topics: + entries = [ + f'|lchelp {entry}|lt{entry}|le' for entry in entries + ] + + # add the entries to the grid + grid.extend(entries) + else: + # list the categories + for category in sorted(set(list(help_dict.keys()))): + category_str = f"-- {category.title()} " + grid.append( + ANSIString( + self.index_category_clr + category_str + + "-" * (width - len(category_str)) + + self.index_topic_clr + ) + ) + verbatim_elements.append(len(grid) - 1) + + # gather and sort the entries from the help dictionary + entries = sorted(set(help_dict.get(category, []))) + + # make the help topics clickable + if click_topics: + entries = [ + f'|lchelp {entry}|lt{entry}|le' for entry in entries + ] + + # add the entries to the grid + grid.extend(entries) + + return grid, verbatim_elements + + help_index = "" + width = self.client_width() + grid = [] + verbatim_elements = [] + cmd_grid, db_grid = "", "" + + if any(cmd_help_dict.values()): + # get the command-help entries by-category + sep1 = (self.index_type_separator_clr + + pad("Commands", width=width, fillchar='-') + + self.index_topic_clr) + grid, verbatim_elements = _group_by_category(cmd_help_dict) + gridrows = format_grid(grid, width, sep=" ", verbatim_elements=verbatim_elements) + cmd_grid = ANSIString("\n").join(gridrows) if gridrows else "" + + if any(db_help_dict.values()): + # get db-based help entries by-category + sep2 = (self.index_type_separator_clr + + pad("Game & World", width=width, fillchar='-') + + self.index_topic_clr) + grid, verbatim_elements = _group_by_category(db_help_dict) + gridrows = format_grid(grid, width, sep=" ", verbatim_elements=verbatim_elements) + db_grid = ANSIString("\n").join(gridrows) if gridrows else "" + + # only show the main separators if there are actually both cmd and db-based help + if cmd_grid and db_grid: + help_index = f"{sep1}\n{cmd_grid}\n{sep2}\n{db_grid}" + else: + help_index = f"{cmd_grid}{db_grid}" + + return help_index
    + +
    [docs] def can_read_topic(self, cmd_or_topic, caller): + """ + Helper method. If this return True, the given help topic + be viewable in the help listing. Note that even if this returns False, + the entry will still be visible in the help index unless `should_list_topic` + is also returning False. + + Args: + cmd_or_topic (Command, HelpEntry or FileHelpEntry): The topic/command to test. + caller: the caller checking for access. + + Returns: + bool: If command can be viewed or not. + + Notes: + This uses the 'read' lock. If no 'read' lock is defined, the topic is assumed readable + by all. + + """ + if inherits_from(cmd_or_topic, "evennia.commands.command.Command"): + return cmd_or_topic.auto_help and cmd_or_topic.access(caller, 'read', default=True) + else: + return cmd_or_topic.access(caller, 'read', default=True)
    + +
    [docs] def can_list_topic(self, cmd_or_topic, caller): """ Should the specified command appear in the help table? - This method only checks whether a specified command should - appear in the table of topics/commands. The command can be - used by the caller (see the 'check_show_help' method) and - the command will still be available, for instance, if a - character type 'help name of the command'. However, if - you return False, the specified command will not appear in - the table. This is sometimes useful to "hide" commands in - the table, but still access them through the help system. + This method only checks whether a specified command should appear in the table of + topics/commands. The command can be used by the caller (see the 'should_show_help' method) + and the command will still be available, for instance, if a character type 'help name of the + command'. However, if you return False, the specified command will not appear in the table. + This is sometimes useful to "hide" commands in the table, but still access them through the + help system. Args: - cmd: the command to be tested. - caller: the caller of the help system. + cmd_or_topic (Command, HelpEntry or FileHelpEntry): The topic/command to test. + caller: the caller checking for access. - Return: - True: the command should appear in the table. - False: the command shouldn't appear in the table. + Returns: + bool: If command should be listed or not. + + Notes: + The `.auto_help` propery is checked for commands. For all help entries, + the 'view' lock will be checked, and if no such lock is defined, the 'read' + lock will be used. If neither lock is defined, the help entry is assumed to be + accessible to all. """ - return cmd.access(caller, "view", default=True)
    + if hasattr(cmd_or_topic, "auto_help") and not cmd_or_topic.auto_help: + return False + + has_view = ( + "view:" in cmd_or_topic.locks + if inherits_from(cmd_or_topic, "evennia.commands.command.Command") + else cmd_or_topic.locks.get("view") + ) + + if has_view: + return cmd_or_topic.access(caller, 'view', default=True) + else: + # no explicit 'view' lock - use the 'read' lock + return cmd_or_topic.access(caller, 'read', default=True)
    + +
    [docs] def collect_topics(self, caller, mode='list'): + """ + Collect help topics from all sources (cmd/db/file). + + Args: + caller (Object or Account): The user of the Command. + mode (str): One of 'list' or 'query', where the first means we are collecting to view + the help index and the second because of wanting to search for a specific help + entry/cmd to read. This determines which access should be checked. + + Returns: + tuple: A tuple of three dicts containing the different types of help entries + in the order cmd-help, db-help, file-help: + `({key: cmd,...}, {key: dbentry,...}, {key: fileentry,...}` + + """ + # start with cmd-help + cmdset = self.cmdset + # removing doublets in cmdset, caused by cmdhandler + # having to allow doublet commands to manage exits etc. + cmdset.make_unique(caller) + # retrieve all available commands and database / file-help topics. + # also check the 'cmd:' lock here + cmd_help_topics = [cmd for cmd in cmdset if cmd and cmd.access(caller, 'cmd')] + # get all file-based help entries, checking perms + file_help_topics = { + topic.key.lower().strip(): topic + for topic in FILE_HELP_ENTRIES.all() + } + # get db-based help entries, checking perms + db_help_topics = { + topic.key.lower().strip(): topic + for topic in HelpEntry.objects.all() + } + if mode == 'list': + # check the view lock for all help entries/commands and determine key + cmd_help_topics = { + cmd.auto_help_display_key + if hasattr(cmd, "auto_help_display_key") else cmd.key: cmd + for cmd in cmd_help_topics if self.can_list_topic(cmd, caller)} + db_help_topics = { + key: entry for key, entry in db_help_topics.items() + if self.can_list_topic(entry, caller) + } + file_help_topics = { + key: entry for key, entry in file_help_topics.items() + if self.can_list_topic(entry, caller)} + else: + # query - check the read lock on entries + cmd_help_topics = { + cmd.auto_help_display_key + if hasattr(cmd, "auto_help_display_key") else cmd.key: cmd + for cmd in cmd_help_topics if self.can_read_topic(cmd, caller)} + db_help_topics = { + key: entry for key, entry in db_help_topics.items() + if self.can_read_topic(entry, caller) + } + file_help_topics = { + key: entry for key, entry in file_help_topics.items() + if self.can_read_topic(entry, caller)} + + return cmd_help_topics, db_help_topics, file_help_topics
    + +
    [docs] def parse(self): """ input is a string containing the command or topic to match. + + The allowed syntax is + :: + + help <topic>[/<subtopic>[/<subtopic>[/...]]] + + The database/command query is always for `<topic>`, and any subtopics + is then parsed from there. If a `<topic>` has spaces in it, it is + always matched before assuming the space begins a subtopic. + """ - self.original_args = self.args.strip() - self.args = self.args.strip().lower()
    + # parse the query + + if self.args: + self.subtopics = [part.strip().lower() + for part in self.args.split(self.subtopic_separator_char)] + self.topic = self.subtopics.pop(0) + else: + self.topic = "" + self.subtopics = []
    + +
    [docs] def strip_cmd_prefix(self, key, all_keys): + """ + Conditional strip of a command prefix, such as @ in @desc. By default + this will be hidden unless there is a duplicate without the prefix + in the full command set (such as @open and open). + + Args: + key (str): Command key to analyze. + all_cmds (list): All command-keys (and potentially aliases). + + Returns: + str: Potentially modified key to use in help display. + + """ + if key and key[0] in CMD_IGNORE_PREFIXES and key[1:] not in all_keys: + # filter out e.g. `@` prefixes from display if there is duplicate + # with the prefix in the set (such as @open/open) + return key[1:] + return key
    +
    [docs] def func(self): """ Run the dynamic help entry creator. """ - query, cmdset = self.args, self.cmdset caller = self.caller - - suggestion_cutoff = self.suggestion_cutoff - suggestion_maxnum = self.suggestion_maxnum + query, subtopics, cmdset = self.topic, self.subtopics, self.cmdset + clickable_topics = self.clickable_topics if not query: - query = "all" + # list all available help entries, grouped by category. We want to + # build dictionaries {category: [topic, topic, ...], ...} - # removing doublets in cmdset, caused by cmdhandler - # having to allow doublet commands to manage exits etc. - cmdset.make_unique(caller) + cmd_help_topics, db_help_topics, file_help_topics = \ + self.collect_topics(caller, mode='list') - # retrieve all available commands and database topics - all_cmds = [cmd for cmd in cmdset if self.check_show_help(cmd, caller)] - all_topics = [ - topic for topic in HelpEntry.objects.all() if topic.access(caller, "view", default=True) - ] - all_categories = list( - set( - [cmd.help_category.lower() for cmd in all_cmds] - + [topic.help_category.lower() for topic in all_topics] - ) - ) + # db-topics override file-based ones + file_db_help_topics = {**file_help_topics, **db_help_topics} + + # group by category (cmds are listed separately) + cmd_help_by_category = defaultdict(list) + file_db_help_by_category = defaultdict(list) + + # get a collection of all keys + aliases to be able to strip prefixes like @ + key_and_aliases = set(chain(*(cmd._keyaliases for cmd in cmd_help_topics.values()))) + + for key, cmd in cmd_help_topics.items(): + key = self.strip_cmd_prefix(key, key_and_aliases) + cmd_help_by_category[cmd.help_category].append(key) + for key, entry in file_db_help_topics.items(): + file_db_help_by_category[entry.help_category].append(key) + + # generate the index and display + output = self.format_help_index(cmd_help_by_category, + file_db_help_by_category, + click_topics=clickable_topics) + self.msg_help(output) - if query in ("list", "all"): - # we want to list all available help entries, grouped by category - hdict_cmd = defaultdict(list) - hdict_topic = defaultdict(list) - # create the dictionaries {category:[topic, topic ...]} required by format_help_list - # Filter commands that should be reached by the help - # 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 - ) - 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 command + # search for a specific entry. We need to check for 'read' access here before # building the + # set of possibilities. + cmd_help_topics, db_help_topics, file_help_topics = \ + self.collect_topics(caller, mode='query') - # 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) - ] + # db-help topics takes priority over file-help + file_db_help_topics = {**file_help_topics, **db_help_topics} - # try an exact command auto-help match - match = [cmd for cmd in all_cmds if cmd == query] + # commands take priority over the other types + all_topics = {**file_db_help_topics, **cmd_help_topics} + + # get all categories + all_categories = list(set( + HelpCategory(topic.help_category) for topic in all_topics.values())) + + # all available help options - will be searched in order. We also check # the + # read-permission here. + entries = list(all_topics.values()) + all_categories + + # lunr search fields/boosts + match, suggestions = self.do_search(query, entries) 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 + # no topic matches found. Only give suggestions. + help_text = f"There is no help topic matching '{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 not suggestions: + # we don't even have a good suggestion. Run a second search, + # doing a full-text search in the actual texts of the help + # entries - 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 + search_fields = [ + {"field_name": "text", "boost": 1}, + ] - # 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(), + for match_query in [query, f"{query}*", f"*{query}"]: + _, suggestions = help_search_with_index( + match_query, entries, + suggestion_maxnum=self.suggestion_maxnum, + fields=search_fields + ) + + if suggestions: + help_text += ( + "\n... But matches where found within the help " + "texts of the suggestions below.") + # break + + output = self.format_help_entry( + topic=None, # this will give a no-match style title + help_text=help_text, suggested=suggestions, + click_topics=clickable_topics ) - self.msg_help(formatted) + + self.msg_help(output) 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]}, - ) - ) + if isinstance(match, HelpCategory): + # no subtopics for categories - these are just lists of topics + category = match.key + category_lower = category.lower() + cmds_in_category = [key for key, cmd in cmd_help_topics.items() + if category_lower == cmd.help_category] + topics_in_category = [key for key, topic in file_db_help_topics.items() + if category_lower == topic.help_category] + output = self.format_help_index({category: cmds_in_category}, + {category: topics_in_category}, + title_lone_category=True, + click_topics=clickable_topics) + self.msg_help(output) return - # no exact matches found. Just give suggestions. - self.msg( - self.format_help_entry( - "", f"No help entry found for '{query}'", None, suggested=suggestions - ), - options={"type": "help"}, - )
    + if inherits_from(match, "evennia.commands.command.Command"): + # a command match + topic = match.key + help_text = match.get_help(caller, cmdset) + aliases = match.aliases + suggested = suggestions[1:] + else: + # a database (or file-help) match + topic = match.key + help_text = match.entrytext + aliases = match.aliases if isinstance(match.aliases, list) else match.aliases.all() + suggested = suggestions[1:] + + # parse for subtopics. The subtopic_map is a dict with the current topic/subtopic + # text is stored under a `None` key and all other keys are subtopic titles pointing + # to nested dicts. + + subtopic_map = parse_entry_for_subcategories(help_text) + help_text = subtopic_map[None] + subtopic_index = [subtopic for subtopic in subtopic_map if subtopic is not None] + + if subtopics: + # if we asked for subtopics, parse the found topic_text to see if any match. + # the subtopics is a list describing the path through the subtopic_map. + + for subtopic_query in subtopics: + + if subtopic_query not in subtopic_map: + # exact match failed. Try startswith-match + fuzzy_match = False + for key in subtopic_map: + if key and key.startswith(subtopic_query): + subtopic_query = key + fuzzy_match = True + break + + if not fuzzy_match: + # startswith failed - try an 'in' match + for key in subtopic_map: + if key and subtopic_query in key: + subtopic_query = key + fuzzy_match = True + break + + if not fuzzy_match: + # no match found - give up + checked_topic = topic + f"/{subtopic_query}" + output = self.format_help_entry( + topic=topic, + help_text=f"No help entry found for '{checked_topic}'", + subtopics=subtopic_index, + click_topics=clickable_topics + ) + self.msg_help(output) + return + + # if we get here we have an exact or fuzzy match + + subtopic_map = subtopic_map.pop(subtopic_query) + subtopic_index = [subtopic for subtopic in subtopic_map if subtopic is not None] + # keep stepping down into the tree, append path to show position + topic = topic + f"/{subtopic_query}" + + # we reached the bottom of the topic tree + help_text = subtopic_map[None] + + # get a collection of all keys + aliases to be able to strip prefixes like @ + key_and_aliases = set(chain(*(cmd._keyaliases for cmd in cmd_help_topics.values()))) + topic = self.strip_cmd_prefix(topic, key_and_aliases) + if subtopics: + aliases = None + else: + aliases = [self.strip_cmd_prefix(alias, key_and_aliases) for alias in aliases] + suggested = [self.strip_cmd_prefix(sugg, key_and_aliases) for sugg in suggested] + + output = self.format_help_entry( + topic=topic, + help_text=help_text, + aliases=aliases, + subtopics=subtopic_index, + suggested=suggested, + click_topics=clickable_topics + ) + + self.msg_help(output) def _loadhelp(caller): @@ -381,7 +767,7 @@ del caller.db._editing_help -
    [docs]class CmdSetHelp(COMMAND_DEFAULT_CLASS): +
    [docs]class CmdSetHelp(CmdHelp): """ Edit the help database. @@ -396,22 +782,64 @@ delete - remove help topic. Examples: - sethelp throw = This throws something at ... + sethelp lore = In the beginning was ... sethelp/append pickpocketing,Thievery = This steals ... sethelp/replace pickpocketing, ,attr(is_thief) = This steals ... sethelp/edit thievery - This command manipulates the help database. A help entry can be created, - appended/merged to and deleted. If you don't assign a category, the - "General" category will be used. If no lockstring is specified, default - is to let everyone read the help file. + If not assigning a category, the `settings.DEFAULT_HELP_CATEGORY` category + will be used. If no lockstring is specified, everyone will be able to read + the help entry. Sub-topics are embedded in the help text. + + Note that this cannot modify command-help entries - these are modified + in-code, outside the game. + + # SUBTOPICS + + ## Adding subtopics + + Subtopics helps to break up a long help entry into sub-sections. Users can + access subtopics with |whelp topic/subtopic/...|n Subtopics are created and + stored together with the main topic. + + To start adding subtopics, add the text '# SUBTOPICS' on a new line at the + end of your help text. After this you can now add any number of subtopics, + each starting with '## <subtopic-name>' on a line, followed by the + help-text of that subtopic. + Use '### <subsub-name>' to add a sub-subtopic and so on. Max depth is 5. A + subtopic's title is case-insensitive and can consist of multiple words - + the user will be able to enter a partial match to access it. + + For example: + + | Main help text for <topic> + | + | # SUBTOPICS + | + | ## about + | + | Text for the '<topic>/about' subtopic' + | + | ### more about-info + | + | Text for the '<topic>/about/more about-info sub-subtopic + | + | ## extra + | + | Text for the '<topic>/extra' subtopic """ key = "sethelp" + aliases = [] switch_options = ("edit", "replace", "append", "extend", "delete") locks = "cmd:perm(Helper)" help_category = "Building" + arg_regex = None + +
    [docs] def parse(self): + """We want to use the default parser rather than the CmdHelp.parse""" + return COMMAND_DEFAULT_CLASS.parse(self)
    [docs] def func(self): """Implement the function""" @@ -431,23 +859,71 @@ 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 # check if we have an old entry with the same name - try: - for querystr in topicstrlist: - old_entry = HelpEntry.objects.find_topicmatch(querystr) # also search by alias - if old_entry: - old_entry = list(old_entry)[0] + + cmd_help_topics, db_help_topics, file_help_topics = \ + self.collect_topics(self.caller, mode='query') + # db-help topics takes priority over file-help + file_db_help_topics = {**file_help_topics, **db_help_topics} + # commands take priority over the other types + all_topics = {**file_db_help_topics, **cmd_help_topics} + # get all categories + all_categories = list(set( + HelpCategory(topic.help_category) for topic in all_topics.values())) + # all available help options - will be searched in order. We also check # the + # read-permission here. + entries = list(all_topics.values()) + all_categories + + # default setup + category = lhslist[1] if nlist > 1 else DEFAULT_HELP_CATEGORY + lockstring = ",".join(lhslist[2:]) if nlist > 2 else "read:all()" + + # search for existing entries of this or other types + old_entry = None + for querystr in topicstrlist: + match, _ = self.do_search(querystr, entries) + if match: + warning = None + if isinstance(match, HelpCategory): + warning = (f"'{querystr}' matches (or partially matches) the name of " + "help-category '{match.key}'. If you continue, your help entry will " + "take precedence and the category (or part of its name) *may* not " + "be usable for grouping help entries anymore.") + elif inherits_from(match, "evennia.commands.command.Command"): + warning = (f"'{querystr}' matches (or partially matches) the key/alias of " + "Command '{match.key}'. Command-help take precedence over other " + "help entries so your help *may* be impossible to reach for those " + "with access to that command.") + elif inherits_from(match, "evennia.help.filehelp.FileHelpEntry"): + warning = (f"'{querystr}' matches (or partially matches) the name/alias of the " + f"file-based help topic '{match.key}'. File-help entries cannot be " + "modified from in-game (they are files on-disk). If you continue, " + "your help entry may shadow the file-based one's name partly or " + "completely.") + if warning: + # show a warning for a clashing help-entry type. Even if user accepts this + # we don't break here since we may need to show warnings for other inputs. + # We don't count this as an old-entry hit because we can't edit these + # types of entries. + self.msg(f"|rWarning:\n|r{warning}|n") + repl = yield("|wDo you still want to continue? Y/[N]?|n") + if repl.lower() not in ('y', 'yes'): + self.msg("Aborted.") + return + else: + # a db-based help entry - this is OK + old_entry = match + category = lhslist[1] if nlist > 1 else old_entry.help_category + lockstring = ",".join(lhslist[2:]) if nlist > 2 else old_entry.locks.get() break - category = lhslist[1] if nlist > 1 else old_entry.help_category - lockstring = ",".join(lhslist[2:]) if nlist > 2 else old_entry.locks.get() - except Exception: - old_entry = None - category = lhslist[1] if nlist > 1 else "General" - lockstring = ",".join(lhslist[2:]) if nlist > 2 else "view:all()" + category = category.lower() if "edit" in switches: @@ -460,7 +936,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 @@ -489,6 +965,7 @@ old_entry.aliases.add(aliases) self.msg("Entry updated:\n%s%s" % (old_entry.entrytext, aliastxt)) return + if "delete" in switches or "del" in switches: # delete the help entry if not old_entry: @@ -515,8 +992,8 @@ self.msg("Overwrote the old topic '%s'%s." % (topicstr, aliastxt)) else: self.msg( - "Topic '%s'%s already exists. Use /replace to overwrite " - "or /append or /merge to add text to it." % (topicstr, aliastxt) + f"Topic '{topicstr}'{aliastxt} already exists. Use /edit to open in editor, or " + "/replace, /append and /merge to modify it directly." ) else: # no old entry. Create a new one. @@ -524,7 +1001,7 @@ topicstr, self.rhs, category=category, locks=lockstring, aliases=aliases ) if new_entry: - self.msg("Topic '%s'%s was successfully created." % (topicstr, aliastxt)) + self.msg(f"Topic '{topicstr}'{aliastxt} was successfully created.") if "edit" in switches: # open the line editor to edit the helptext self.caller.db._editing_help = new_entry @@ -539,7 +1016,7 @@ return else: self.msg( - "Error when creating topic '%s'%s! Contact an admin." % (topicstr, aliastxt) + f"Error when creating topic '{topicstr}'{aliastxt}! Contact an admin." )
    @@ -566,11 +1043,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 7b55791f51..0c0cfe163c 100644 --- a/docs/0.9.5/_modules/evennia/commands/default/muxcommand.html +++ b/docs/0.9.5/_modules/evennia/commands/default/muxcommand.html @@ -218,8 +218,8 @@ rhs = rhs.strip() if rhs is not None else None lhs = lhs.strip() # Further split left/right sides by comma delimiter - lhslist = [arg.strip() for arg in lhs.split(",")] if lhs is not None else "" - rhslist = [arg.strip() for arg in rhs.split(",")] if rhs is not None else "" + lhslist = [arg.strip() for arg in lhs.split(",")] if lhs is not None else [] + rhslist = [arg.strip() for arg in rhs.split(",")] if rhs is not None else [] # save to object properties: self.raw = raw self.switches = switches @@ -336,11 +336,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 50932bf6cb..325b41ee6e 100644 --- a/docs/0.9.5/_modules/evennia/commands/default/syscommands.html +++ b/docs/0.9.5/_modules/evennia/commands/default/syscommands.html @@ -70,7 +70,6 @@ from evennia.commands.cmdhandler import CMD_NOINPUT from evennia.commands.cmdhandler import CMD_NOMATCH from evennia.commands.cmdhandler import CMD_MULTIMATCH -from evennia.commands.cmdhandler import CMD_CHANNEL from evennia.utils import utils from django.conf import settings @@ -147,53 +146,6 @@ matches = self.matches # at_search_result will itself msg the multimatch options to the caller. at_search_result([match[2] for match in matches], self.caller, query=matches[0][0]) - - -# Command called when the command given at the command line -# was identified as a channel name, like there existing a -# channel named 'ooc' and the user wrote -# > ooc Hello! - - -
    [docs]class SystemSendToChannel(COMMAND_DEFAULT_CLASS): - """ - This is a special command that the cmdhandler calls - when it detects that the command given matches - an existing Channel object key (or alias). - """ - - key = CMD_CHANNEL - locks = "cmd:all()" - -
    [docs] def parse(self): - channelname, msg = self.args.split(":", 1) - self.args = channelname.strip(), msg.strip()
    - -
    [docs] def func(self): - """ - Create a new message and send it to channel, using - the already formatted input. - """ - caller = self.caller - channelkey, msg = self.args - if not msg: - caller.msg("Say what?") - return - channel = ChannelDB.objects.get_channel(channelkey) - if not channel: - caller.msg("Channel '%s' not found." % channelkey) - return - if not channel.has_connection(caller): - string = "You are not connected to channel '%s'." - caller.msg(string % channelkey) - return - if not channel.access(caller, "send"): - string = "You are not permitted to send to channel '%s'." - caller.msg(string % channelkey) - return - msg = "[%s] %s: %s" % (channel.key, caller.name, msg) - msgobj = create.create_message(caller, msg, channels=[channel]) - channel.msg(msgobj)
    @@ -219,11 +171,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 e93ede8c97..4e06451943 100644 --- a/docs/0.9.5/_modules/evennia/commands/default/system.html +++ b/docs/0.9.5/_modules/evennia/commands/default/system.html @@ -51,7 +51,6 @@ import code import traceback import os -import io import datetime import sys import django @@ -59,18 +58,18 @@ import time from django.conf import settings -from django.core.paginator import Paginator from evennia.server.sessionhandler import SESSIONS -from evennia.scripts.models import ScriptDB -from evennia.objects.models import ObjectDB from evennia.accounts.models import AccountDB -from evennia.utils import logger, utils, gametime, create, search +from evennia.utils import logger, utils, gametime, search from evennia.utils.eveditor import EvEditor from evennia.utils.evtable import EvTable -from evennia.utils.evmore import EvMore -from evennia.utils.utils import crop, class_from_module +from evennia.utils.evmenu import ask_yes_no +from evennia.utils.utils import class_from_module, iter_to_str +from evennia.scripts.taskhandler import TaskHandlerTask COMMAND_DEFAULT_CLASS = class_from_module(settings.COMMAND_DEFAULT_CLASS) +_TASK_HANDLER = None +_BROADCAST_SERVER_RESTART_MESSAGES = settings.BROADCAST_SERVER_RESTART_MESSAGES # delayed imports _RESOURCE = None @@ -78,18 +77,17 @@ # limit symbol import for API __all__ = ( + "CmdAccounts", "CmdReload", "CmdReset", "CmdShutdown", "CmdPy", - "CmdScripts", - "CmdObjects", "CmdService", "CmdAbout", "CmdTime", "CmdServerLoad", - "CmdAccounts", - "CmdTickers" + "CmdTasks", + "CmdTickers", ) @@ -105,8 +103,8 @@ reset to purge) and at_reload() hooks will be called. """ - key = "reload" - aliases = ["restart"] + key = "@reload" + aliases = ["@restart"] locks = "cmd:perm(reload) or perm(Developer)" help_category = "System" @@ -117,7 +115,8 @@ reason = "" if self.args: reason = "(Reason: %s) " % self.args.rstrip(".") - SESSIONS.announce_all(" Server restart initiated %s..." % reason) + if _BROADCAST_SERVER_RESTART_MESSAGES: + SESSIONS.announce_all(" Server restart initiated %s..." % reason) SESSIONS.portal_restart_server() @@ -142,8 +141,8 @@ """ - key = "reset" - aliases = ["reboot"] + key = "@reset" + aliases = ["@reboot"] locks = "cmd:perm(reload) or perm(Developer)" help_category = "System" @@ -166,7 +165,7 @@ Gracefully shut down both Server and Portal. """ - key = "shutdown" + key = "@shutdown" locks = "cmd:perm(shutdown) or perm(Developer)" help_category = "System" @@ -389,11 +388,12 @@ """ - key = "py" - aliases = ["!"] + key = "@py" + aliases = ["@!"] switch_options = ("time", "edit", "clientraw", "noecho") locks = "cmd:perm(py) or perm(Developer)" help_category = "System" + arg_regex = ""
    [docs] def func(self): """hook function""" @@ -438,7 +438,9 @@ if noecho: prompt = "..." if console.push(line) else main_prompt else: - prompt = line if console.push(line) else f"{line}\n{main_prompt}" + if line: + self.caller.msg(f">>> {line}") + prompt = line if console.push(line) else main_prompt except SystemExit: break self.msg("|gClosing the Python console.|n") @@ -452,259 +454,6 @@ )
    -class ScriptEvMore(EvMore): - """ - Listing 1000+ Scripts can be very slow and memory-consuming. So - we use this custom EvMore child to build en EvTable only for - each page of the list. - - """ - - def init_pages(self, scripts): - """Prepare the script list pagination""" - script_pages = Paginator(scripts, max(1, int(self.height / 2))) - super().init_pages(script_pages) - - def page_formatter(self, scripts): - """Takes a page of scripts and formats the output - into an EvTable.""" - - if not scripts: - return "<No scripts>" - - table = EvTable( - "|wdbref|n", - "|wobj|n", - "|wkey|n", - "|wintval|n", - "|wnext|n", - "|wrept|n", - "|wdb", - "|wtypeclass|n", - "|wdesc|n", - align="r", - border="tablecols", - width=self.width, - ) - - for script in scripts: - - nextrep = script.time_until_next_repeat() - if nextrep is None: - nextrep = "PAUSED" if script.db._paused_time else "--" - else: - nextrep = "%ss" % nextrep - - maxrepeat = script.repeats - remaining = script.remaining_repeats() or 0 - if maxrepeat: - rept = "%i/%i" % (maxrepeat - remaining, maxrepeat) - else: - rept = "-/-" - - table.add_row( - script.id, - f"{script.obj.key}({script.obj.dbref})" - if (hasattr(script, "obj") and script.obj) - else "<Global>", - script.key, - script.interval if script.interval > 0 else "--", - nextrep, - rept, - "*" if script.persistent else "-", - script.typeclass_path.rsplit(".", 1)[-1], - crop(script.desc, width=20), - ) - - return str(table) - - -
    [docs]class CmdScripts(COMMAND_DEFAULT_CLASS): - """ - list and manage all running scripts - - Usage: - scripts[/switches] [#dbref, key, script.path or <obj>] - - Switches: - start - start a script (must supply a script path) - stop - stops an existing script - kill - kills a script - without running its cleanup hooks - validate - run a validation on the script(s) - - If no switches are given, this command just views all active - scripts. The argument can be either an object, at which point it - will be searched for all scripts defined on it, or a script name - or #dbref. For using the /stop switch, a unique script #dbref is - required since whole classes of scripts often have the same name. - - Use script for managing commands on objects. - """ - - key = "scripts" - aliases = ["globalscript", "listscripts"] - switch_options = ("start", "stop", "kill", "validate") - locks = "cmd:perm(listscripts) or perm(Admin)" - help_category = "System" - - excluded_typeclass_paths = ["evennia.prototypes.prototypes.DbPrototype"] - -
    [docs] def func(self): - """implement method""" - - caller = self.caller - args = self.args - - if args: - if "start" in self.switches: - # global script-start mode - new_script = create.create_script(args) - if new_script: - caller.msg("Global script %s was started successfully." % args) - else: - caller.msg("Global script %s could not start correctly. See logs." % args) - return - - # test first if this is a script match - scripts = ScriptDB.objects.get_all_scripts(key=args) - if not scripts: - # try to find an object instead. - objects = ObjectDB.objects.object_search(args) - if objects: - scripts = [] - for obj in objects: - # get all scripts on the object(s) - scripts.extend(ScriptDB.objects.get_all_scripts_on_obj(obj)) - else: - # we want all scripts. - scripts = ScriptDB.objects.get_all_scripts() - if not scripts: - caller.msg("No scripts are running.") - return - # filter any found scripts by tag category. - scripts = scripts.exclude(db_typeclass_path__in=self.excluded_typeclass_paths) - - if not scripts: - string = "No scripts found with a key '%s', or on an object named '%s'." % (args, args) - caller.msg(string) - return - - if self.switches and self.switches[0] in ("stop", "del", "delete", "kill"): - # we want to delete something - if len(scripts) == 1: - # we have a unique match! - if "kill" in self.switches: - string = "Killing script '%s'" % scripts[0].key - scripts[0].stop(kill=True) - else: - string = "Stopping script '%s'." % scripts[0].key - scripts[0].stop() - # import pdb # DEBUG - # pdb.set_trace() # DEBUG - ScriptDB.objects.validate() # just to be sure all is synced - caller.msg(string) - else: - # multiple matches. - ScriptEvMore(caller, scripts, session=self.session) - caller.msg("Multiple script matches. Please refine your search") - elif self.switches and self.switches[0] in ("validate", "valid", "val"): - # run validation on all found scripts - nr_started, nr_stopped = ScriptDB.objects.validate(scripts=scripts) - string = "Validated %s scripts. " % ScriptDB.objects.all().count() - string += "Started %s and stopped %s scripts." % (nr_started, nr_stopped) - caller.msg(string) - else: - # No stopping or validation. We just want to view things. - ScriptEvMore(caller, scripts.order_by("id"), session=self.session)
    - - -
    [docs]class CmdObjects(COMMAND_DEFAULT_CLASS): - """ - statistics on objects in the database - - Usage: - objects [<nr>] - - Gives statictics on objects in database as well as - a list of <nr> latest objects in database. If not - given, <nr> defaults to 10. - """ - - key = "objects" - aliases = ["listobjects", "listobjs", "stats", "db"] - locks = "cmd:perm(listobjects) or perm(Builder)" - help_category = "System" - -
    [docs] def func(self): - """Implement the command""" - - caller = self.caller - nlim = int(self.args) if self.args and self.args.isdigit() else 10 - nobjs = ObjectDB.objects.count() - Character = class_from_module(settings.BASE_CHARACTER_TYPECLASS) - nchars = Character.objects.all_family().count() - Room = class_from_module(settings.BASE_ROOM_TYPECLASS) - nrooms = Room.objects.all_family().count() - Exit = class_from_module(settings.BASE_EXIT_TYPECLASS) - nexits = Exit.objects.all_family().count() - nother = nobjs - nchars - nrooms - nexits - nobjs = nobjs or 1 # fix zero-div error with empty database - - # total object sum table - totaltable = self.styled_table( - "|wtype|n", "|wcomment|n", "|wcount|n", "|w%|n", border="table", align="l" - ) - totaltable.align = "l" - totaltable.add_row( - "Characters", - "(BASE_CHARACTER_TYPECLASS + children)", - nchars, - "%.2f" % ((float(nchars) / nobjs) * 100), - ) - totaltable.add_row( - "Rooms", - "(BASE_ROOM_TYPECLASS + children)", - nrooms, - "%.2f" % ((float(nrooms) / nobjs) * 100), - ) - totaltable.add_row( - "Exits", - "(BASE_EXIT_TYPECLASS + children)", - nexits, - "%.2f" % ((float(nexits) / nobjs) * 100), - ) - totaltable.add_row("Other", "", nother, "%.2f" % ((float(nother) / nobjs) * 100)) - - # typeclass table - typetable = self.styled_table( - "|wtypeclass|n", "|wcount|n", "|w%|n", border="table", align="l" - ) - typetable.align = "l" - dbtotals = ObjectDB.objects.get_typeclass_totals() - for stat in dbtotals: - typetable.add_row( - stat.get("typeclass", "<error>"), - stat.get("count", -1), - "%.2f" % stat.get("percent", -1), - ) - - # last N table - objs = ObjectDB.objects.all().order_by("db_date_created")[max(0, nobjs - nlim) :] - latesttable = self.styled_table( - "|wcreated|n", "|wdbref|n", "|wname|n", "|wtypeclass|n", align="l", border="table" - ) - latesttable.align = "l" - for obj in objs: - latesttable.add_row( - utils.datetime_format(obj.date_created), obj.dbref, obj.key, obj.path - ) - - string = "\n|wObject subtype totals (out of %i Objects):|n\n%s" % (nobjs, totaltable) - string += "\n|wObject typeclass distribution:|n\n%s" % typetable - string += "\n|wLast %s Objects created:|n\n%s" % (min(nobjs, nlim), latesttable) - caller.msg(string)
    - -
    [docs]class CmdAccounts(COMMAND_DEFAULT_CLASS): """ Manage registered accounts @@ -721,8 +470,8 @@ If not given, <nr> defaults to 10. """ - key = "accounts" - aliases = ["account", "listaccounts"] + key = "@accounts" + aliases = ["@account"] switch_options = ("delete",) locks = "cmd:perm(listaccounts) or perm(Admin)" help_category = "System" @@ -835,8 +584,8 @@ in the list. """ - key = "service" - aliases = ["services"] + key = "@service" + aliases = ["@services"] switch_options = ("list", "start", "stop", "delete") locks = "cmd:perm(service) or perm(Developer)" help_category = "System" @@ -936,8 +685,8 @@ Display info about the game engine. """ - key = "about" - aliases = "version" + key = "@about" + aliases = "@version" locks = "cmd:all()" help_category = "System" @@ -953,10 +702,13 @@ |wTwisted|n: {twisted} |wDjango|n: {django} + |wHomepage|n https://evennia.com + |wCode|n https://github.com/evennia/evennia + |wDemo|n https://demo.evennia.com + |wGame listing|n https://games.evennia.com + |wChat|n https://discord.gg/AJJpcRUhtF + |wForum|n https://github.com/evennia/evennia/discussions |wLicence|n https://opensource.org/licenses/BSD-3-Clause - |wWeb|n http://www.evennia.com - |wIrc|n #evennia on irc.freenode.net:6667 - |wForum|n http://www.evennia.com/discussions |wMaintainer|n (2010-) Griatch (griatch AT gmail DOT com) |wMaintainer|n (2006-10) Greg Taylor @@ -981,8 +733,8 @@ and the current time stamp. """ - key = "time" - aliases = "uptime" + key = "@time" + aliases = "@uptime" locks = "cmd:perm(time) or perm(Player)" help_category = "System" @@ -999,7 +751,7 @@ "|wIn-Game time", "|wReal time x %g" % gametime.TIMEFACTOR, align="l", - width=77, + width=78, border_top=0, ) epochtxt = "Epoch (%s)" % ("from settings" if settings.TIME_GAME_EPOCH else "server start") @@ -1049,8 +801,8 @@ """ - key = "server" - aliases = ["serverload", "serverprocess"] + key = "@server" + aliases = ["@serverload"] switch_options = ("mem", "flushmem") locks = "cmd:perm(list) or perm(Developer)" help_category = "System" @@ -1198,7 +950,7 @@ """ - key = "tickers" + key = "@tickers" help_category = "System" locks = "cmd:perm(tickers) or perm(Builder)" @@ -1223,6 +975,227 @@ "*" if sub[5] else "-", ) self.caller.msg("|wActive tickers|n:\n" + str(table))
    + + +
    [docs]class CmdTasks(COMMAND_DEFAULT_CLASS): + """ + Display or terminate active tasks (delays). + + Usage: + tasks[/switch] [task_id or function_name] + + Switches: + pause - Pause the callback of a task. + unpause - Process all callbacks made since pause() was called. + do_task - Execute the task (call its callback). + call - Call the callback of this task. + remove - Remove a task without executing it. + cancel - Stop a task from automatically executing. + + Notes: + A task is a single use method of delaying the call of a function. Calls are created + in code, using `evennia.utils.delay`. + See |luhttps://www.evennia.com/docs/latest/Command-Duration.html|ltthe docs|le for help. + + By default, tasks that are canceled and never called are cleaned up after one minute. + + Examples: + - `tasks/cancel move_callback` - Cancels all movement delays from the slow_exit contrib. + In this example slow exits creates it's tasks with + `utils.delay(move_delay, move_callback)` + - `tasks/cancel 2` - Cancel task id 2. + + """ + + key = "@tasks" + aliases = ["@delays", "@task"] + switch_options = ("pause", "unpause", "do_task", "call", "remove", "cancel") + locks = "perm(Developer)" + help_category = "System" + +
    [docs] @staticmethod + def coll_date_func(task): + """Replace regex characters in date string and collect deferred function name.""" + t_comp_date = str(task[0]).replace('-', '/') + t_func_name = str(task[1]).split(' ') + t_func_mem_ref = t_func_name[3] if len(t_func_name) >= 4 else None + return t_comp_date, t_func_mem_ref
    + +
    [docs] def do_task_action(self, *args, **kwargs): + """ + Process the action of a tasks command. + + This exists to gain support with yes or no function from EvMenu. + """ + task_id = self.task_id + + # get a reference of the global task handler + global _TASK_HANDLER + if _TASK_HANDLER is None: + from evennia.scripts.taskhandler import TASK_HANDLER as _TASK_HANDLER + + # verify manipulating the correct task + task_args = _TASK_HANDLER.tasks.get(task_id, False) + if not task_args: # check if the task is still active + self.msg('Task completed while waiting for input.') + return + else: + # make certain a task with matching IDs has not been created + t_comp_date, t_func_mem_ref = self.coll_date_func(task_args) + if self.t_comp_date != t_comp_date or self.t_func_mem_ref != t_func_mem_ref: + self.msg('Task completed while waiting for input.') + return + + # Do the action requested by command caller + action_return = self.task_action() + self.msg(f'{self.action_request} request completed.') + self.msg(f'The task function {self.action_request} returned: {action_return}')
    + +
    [docs] def func(self): + # get a reference of the global task handler + global _TASK_HANDLER + if _TASK_HANDLER is None: + from evennia.scripts.taskhandler import TASK_HANDLER as _TASK_HANDLER + # handle no tasks active. + if not _TASK_HANDLER.tasks: + self.msg('There are no active tasks.') + if self.switches or self.args: + self.msg('Likely the task has completed and been removed.') + return + + # handle caller's request to manipulate a task(s) + if self.switches and self.lhs: + + # find if the argument is a task id or function name + action_request = self.switches[0] + try: + arg_is_id = int(self.lhslist[0]) + except ValueError: + arg_is_id = False + + # if the argument is a task id, proccess the action on a single task + if arg_is_id: + + err_arg_msg = 'Switch and task ID are required when manipulating a task.' + task_comp_msg = 'Task completed while processing request.' + + # handle missing arguments or switches + if not self.switches and self.lhs: + self.msg(err_arg_msg) + return + + # create a handle for the task + task_id = arg_is_id + task = TaskHandlerTask(task_id) + + # handle task no longer existing + if not task.exists(): + self.msg(f'Task {task_id} does not exist.') + return + + # get a reference of the function caller requested + switch_action = getattr(task, action_request, False) + if not switch_action: + self.msg(f'{self.switches[0]}, is not an acceptable task action or ' \ + f'{task_comp_msg.lower()}') + + # verify manipulating the correct task + if task_id in _TASK_HANDLER.tasks: + task_args = _TASK_HANDLER.tasks.get(task_id, False) + if not task_args: # check if the task is still active + self.msg(task_comp_msg) + return + else: + t_comp_date, t_func_mem_ref = self.coll_date_func(task_args) + t_func_name = str(task_args[1]).split(' ') + t_func_name = t_func_name[1] if len(t_func_name) >= 2 else None + + if task.exists(): # make certain the task has not been called yet. + prompt = (f'{action_request.capitalize()} task {task_id} with completion date ' + f'{t_comp_date} ({t_func_name}) {{options}}?') + no_msg = f'No {action_request} processed.' + # record variables for use in do_task_action method + self.task_id = task_id + self.t_comp_date = t_comp_date + self.t_func_mem_ref = t_func_mem_ref + self.task_action = switch_action + self.action_request = action_request + ask_yes_no(self.caller, + prompt=prompt, + yes_action=self.do_task_action, + no_action=no_msg, + default="Y", + allow_abort=True) + return True + else: + self.msg(task_comp_msg) + return + + # the argument is not a task id, process the action on all task deferring the function + # specified as an argument + else: + + name_match_found = False + arg_func_name = self.lhslist[0].lower() + + # repack tasks into a new dictionary + current_tasks = {} + for task_id, task_args in _TASK_HANDLER.tasks.items(): + current_tasks.update({task_id: task_args}) + + # call requested action on all tasks with the function name + for task_id, task_args in current_tasks.items(): + t_func_name = str(task_args[1]).split(' ') + t_func_name = t_func_name[1] if len(t_func_name) >= 2 else None + # skip this task if it is not for the function desired + if arg_func_name != t_func_name: + continue + name_match_found = True + task = TaskHandlerTask(task_id) + switch_action = getattr(task, action_request, False) + if switch_action: + action_return = switch_action() + self.msg(f'Task action {action_request} completed on task ID {task_id}.') + self.msg(f'The task function {action_request} returned: {action_return}') + + # provide a message if not tasks of the function name was found + if not name_match_found: + self.msg(f'No tasks deferring function name {arg_func_name} found.') + return + return True + + # check if an maleformed request was created + elif self.switches or self.lhs: + self.msg('Task command misformed.') + self.msg('Proper format tasks[/switch] [function name or task id]') + return + + # No task manupilation requested, build a table of tasks and display it + # get the width of screen in characters + width = self.client_width() + # create table header and list to hold tasks data and actions + tasks_header = ('Task ID', 'Completion Date', 'Function', 'Arguments', 'KWARGS', + 'persistent') + # empty list of lists, the size of the header + tasks_list = [list() for i in range(len(tasks_header))] + for task_id, task in _TASK_HANDLER.tasks.items(): + # collect data from the task + t_comp_date, t_func_mem_ref = self.coll_date_func(task) + t_func_name = str(task[1]).split(' ') + t_func_name = t_func_name[1] if len(t_func_name) >= 2 else None + t_args = str(task[2]) + t_kwargs = str(task[3]) + t_pers = str(task[4]) + # add task data to the tasks list + task_data = (task_id, t_comp_date, t_func_name, t_args, t_kwargs, t_pers) + for i in range(len(tasks_header)): + tasks_list[i].append(task_data[i]) + # create and display the table + tasks_table = EvTable(*tasks_header, table=tasks_list, maxwidth=width, border='cells', + align='center') + actions = (f'/{switch}' for switch in self.switch_options) + helptxt = f"\nActions: {iter_to_str(actions)}" + self.msg(str(tasks_table) + helptxt)
    @@ -1248,11 +1221,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 bad34122ec..814f4d00e0 100644 --- a/docs/0.9.5/_modules/evennia/commands/default/tests.html +++ b/docs/0.9.5/_modules/evennia/commands/default/tests.html @@ -59,14 +59,16 @@ import datetime from anything import Anything +from parameterized import parameterized from django.conf import settings +from twisted.internet import task from unittest.mock import patch, Mock, MagicMock from evennia import DefaultRoom, DefaultExit, ObjectDB from evennia.commands.default.cmdset_character import CharacterCmdSet from evennia.utils.test_resources import EvenniaTest from evennia.commands.default import ( - help, + help as help_module, general, system, admin, @@ -77,7 +79,6 @@ unloggedin, syscommands, ) -from evennia.commands.cmdparser import build_matches from evennia.commands.default.muxcommand import MuxCommand from evennia.commands.command import Command, InterruptCommand from evennia.commands import cmdparser @@ -91,24 +92,50 @@ # set up signal here since we are not starting the server -_RE = re.compile(r"^\+|-+\+|\+-+|--+|\|(?:\s|$)", re.MULTILINE) +_RE_STRIP_EVMENU = re.compile(r"^\+|-+\+|\+-+|--+|\|(?:\s|$)", re.MULTILINE) # ------------------------------------------------------------ # Command testing # ------------------------------------------------------------ -
    [docs]@patch("evennia.server.portal.portal.LoopingCall", new=MagicMock()) class CommandTest(EvenniaTest): """ - Tests a command + Tests a Command by running it and comparing what messages it sends with + expected values. This tests without actually spinning up the cmdhandler + for every test, which is more controlled. + + Example: + :: + + from commands.echo import CmdEcho + + class MyCommandTest(CommandTest): + + def test_echo(self): + ''' + Test that the echo command really returns + what you pass into it. + ''' + self.call(MyCommand(), "hello world!", + "You hear your echo: 'Hello world!'") + """ + # formatting for .call's error message + _ERROR_FORMAT = """ +=========================== Wanted message =================================== +{expected_msg} +=========================== Returned message ================================= +{returned_msg} +============================================================================== +""".rstrip() +
    [docs] def call( self, cmdobj, - args, + input_args, msg=None, cmdset=None, noansi=True, @@ -120,54 +147,140 @@ raw_string=None, ): """ - Test a command by assigning all the needed - properties to cmdobj and running - cmdobj.at_pre_cmd() - cmdobj.parse() - cmdobj.func() - cmdobj.at_post_cmd() - The msgreturn value is compared to eventual - output sent to caller.msg in the game + Test a command by assigning all the needed properties to a cmdobj and + running the sequence. The resulting `.msg` calls will be mocked and + the text= calls to them compared to a expected output. + + Args: + cmdobj (Command): The command object to use. + input_args (str): This should be the full input the Command should + see, such as 'look here'. This will become `.args` for the Command + instance to parse. + msg (str or dict, optional): This is the expected return value(s) + returned through `caller.msg(text=...)` calls in the command. If a string, the + receiver is controlled with the `receiver` kwarg (defaults to `caller`). + If this is a `dict`, it is a mapping + `{receiver1: "expected1", receiver2: "expected2",...}` and `receiver` is + ignored. The message(s) are compared with the actual messages returned + to the receiver(s) as the Command runs. Each check uses `.startswith`, + so you can choose to only include the first part of the + returned message if that's enough to verify a correct result. EvMenu + decorations (like borders) are stripped and should not be included. This + should also not include color tags unless `noansi=False`. + If the command returns texts in multiple separate `.msg`- + calls to a receiver, separate these with `|` if `noansi=True` + (default) and `||` if `noansi=False`. If no `msg` is given (`None`), + then no automatic comparison will be done. + cmdset (str, optional): If given, make `.cmdset` available on the Command + instance as it runs. While `.cmdset` is normally available on the + Command instance by default, this is usually only used by + commands that explicitly operates/displays cmdsets, like + `examine`. + noansi (str, optional): By default the color tags of the `msg` is + ignored, this makes them significant. If unset, `msg` must contain + the same color tags as the actual return message. + caller (Object or Account, optional): By default `self.char1` is used as the + command-caller (the `.caller` property on the Command). This allows to + execute with another caller, most commonly an Account. + receiver (Object or Account, optional): This is the object to receive the + return messages we want to test. By default this is the same as `caller` + (which in turn defaults to is `self.char1`). Note that if `msg` is + a `dict`, this is ignored since the receiver is already specified there. + cmdstring (str, optional): Normally this is the Command's `key`. + This allows for tweaking the `.cmdname` property of the + Command`. This isb used for commands with multiple aliases, + where the command explicitly checs which alias was used to + determine its functionality. + obj (str, optional): This sets the `.obj` property of the Command - the + object on which the Command 'sits'. By default this is the same as `caller`. + This can be used for testing on-object Command interactions. + inputs (list, optional): A list of strings to pass to functions that pause to + take input from the user (normally using `@interactive` and + `ret = yield(question)` or `evmenu.get_input`). Each element of the + list will be passed into the command as if the user wrote that at the prompt. + raw_string (str, optional): Normally the `.raw_string` property is set as + a combination of your `key/cmdname` and `input_args`. This allows + direct control of what this is, for example for testing edge cases + or malformed inputs. Returns: - msg (str): The received message that was sent to the caller. + str or dict: The message sent to `receiver`, or a dict of + `{receiver: "msg", ...}` if multiple are given. This is usually + only used with `msg=None` to do the validation externally. + + Raises: + AssertionError: If the returns of `.msg` calls (tested with `.startswith`) does not + match `expected_input`. + + Notes: + As part of the tests, all methods of the Command will be called in + the proper order: + + - cmdobj.at_pre_cmd() + - cmdobj.parse() + - cmdobj.func() + - cmdobj.at_post_cmd() """ + # The `self.char1` is created in the `EvenniaTest` base along with + # other helper objects like self.room and self.obj caller = caller if caller else self.char1 - receiver = receiver if receiver else caller cmdobj.caller = caller cmdobj.cmdname = cmdstring if cmdstring else cmdobj.key cmdobj.raw_cmdname = cmdobj.cmdname cmdobj.cmdstring = cmdobj.cmdname # deprecated - cmdobj.args = args + cmdobj.args = input_args cmdobj.cmdset = cmdset cmdobj.session = SESSIONS.session_from_sessid(1) cmdobj.account = self.account - cmdobj.raw_string = raw_string if raw_string is not None else cmdobj.key + " " + args + cmdobj.raw_string = raw_string if raw_string is not None else cmdobj.key + " " + input_args cmdobj.obj = obj or (caller if caller else self.char1) - # test - old_msg = receiver.msg inputs = inputs or [] - try: + # set up receivers + receiver_mapping = {} + if isinstance(msg, dict): + # a mapping {receiver: msg, ...} + receiver_mapping = {recv: str(msg).strip() if msg else None + for recv, msg in msg.items()} + else: + # a single expected string and thus a single receiver (defaults to caller) + receiver = receiver if receiver else caller + receiver_mapping[receiver] = str(msg).strip() if msg is not None else None + + unmocked_msg_methods = {} + for receiver in receiver_mapping: + # save the old .msg method so we can get it back + # cleanly after the test + unmocked_msg_methods[receiver] = receiver.msg + # replace normal `.msg` with a mock receiver.msg = Mock() + + # Run the methods of the Command. This mimics what happens in the + # cmdhandler. This will have the mocked .msg be called as part of the + # execution. Mocks remembers what was sent to them so we will be able + # to retrieve what was sent later. + try: if cmdobj.at_pre_cmd(): return cmdobj.parse() ret = cmdobj.func() - # handle func's with yield in them (generators) + # handle func's with yield in them (making them generators) if isinstance(ret, types.GeneratorType): while True: try: inp = inputs.pop() if inputs else None if inp: try: + # this mimics a user's reply to a prompt ret.send(inp) except TypeError: next(ret) ret = ret.send(inp) else: + # non-input yield, like yield(10). We don't pause + # but fire it immediately. next(ret) except StopIteration: break @@ -178,40 +291,62 @@ except InterruptCommand: pass - # clean out evtable sugar. We only operate on text-type - stored_msg = [ - args[0] if args and args[0] else kwargs.get("text", utils.to_str(kwargs)) - for name, args, kwargs in receiver.msg.mock_calls - ] - # Get the first element of a tuple if msg received a tuple instead of a string - stored_msg = [str(smsg[0]) if isinstance(smsg, tuple) else str(smsg) for smsg in stored_msg] - if msg is not None: - msg = str(msg) # to be safe, e.g. `py` command may return ints - # set our separator for returned messages based on parsing ansi or not - msg_sep = "|" if noansi else "||" - # Have to strip ansi for each returned message for the regex to handle it correctly - returned_msg = msg_sep.join( - _RE.sub("", ansi.parse_ansi(mess, strip_ansi=noansi)) for mess in stored_msg - ).strip() - msg = msg.strip() - if msg == "" and returned_msg or not returned_msg.startswith(msg): - prt = "" - for ic, char in enumerate(msg): - import re + for inp in inputs: + # if there are any inputs left, we may have a non-generator + # input to handle (get_input/ask_yes_no that uses a separate + # cmdset rather than a yield + caller.execute_cmd(inp) - prt += char + # At this point the mocked .msg methods on each receiver will have + # stored all calls made to them (that's a basic function of the Mock + # class). We will not extract them and compare to what we expected to + # go to each receiver. - sep1 = "\n" + "=" * 30 + "Wanted message" + "=" * 34 + "\n" - sep2 = "\n" + "=" * 30 + "Returned message" + "=" * 32 + "\n" - sep3 = "\n" + "=" * 78 - retval = sep1 + msg + sep2 + returned_msg + sep3 - raise AssertionError(retval) - else: - returned_msg = "\n".join(str(msg) for msg in stored_msg) - returned_msg = ansi.parse_ansi(returned_msg, strip_ansi=noansi).strip() - receiver.msg = old_msg + returned_msgs = {} + for receiver, expected_msg in receiver_mapping.items(): + # get the stored messages from the Mock with Mock.mock_calls. + stored_msg = [ + args[0] if args and args[0] else kwargs.get("text", utils.to_str(kwargs)) + for name, args, kwargs in receiver.msg.mock_calls + ] + # we can return this now, we are done using the mock + receiver.msg = unmocked_msg_methods[receiver] - return returned_msg
    + # Get the first element of a tuple if msg received a tuple instead of a string + stored_msg = [str(smsg[0]) + if isinstance(smsg, tuple) else str(smsg) for smsg in stored_msg] + if expected_msg is None: + # no expected_msg; just build the returned_msgs dict + + returned_msg = "\n".join(str(msg) for msg in stored_msg) + returned_msgs[receiver] = ansi.parse_ansi(returned_msg, strip_ansi=noansi).strip() + else: + # compare messages to expected + + # set our separator for returned messages based on parsing ansi or not + msg_sep = "|" if noansi else "||" + + # We remove Evmenu decorations since that just makes it harder + # to write the comparison string. We also strip ansi before this + # comparison since otherwise it would mess with the regex. + returned_msg = msg_sep.join( + _RE_STRIP_EVMENU.sub( + "", ansi.parse_ansi(mess, strip_ansi=noansi)) + for mess in stored_msg).strip() + + # this is the actual test + if expected_msg == "" and returned_msg or not returned_msg.startswith(expected_msg): + # failed the test + raise AssertionError( + self._ERROR_FORMAT.format( + expected_msg=expected_msg, returned_msg=returned_msg) + ) + # passed! + returned_msgs[receiver] = returned_msg + + if len(returned_msgs) == 1: + return list(returned_msgs.values())[0] + return returned_msgs # ------------------------------------------------------------ @@ -316,16 +451,153 @@
    [docs]class TestHelp(CommandTest): + + maxDiff = None + +
    [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(), "", "Command help entries", cmdset=CharacterCmdSet())
    + self.call(help_module.CmdHelp(), "", "Commands", cmdset=CharacterCmdSet())
    [docs] def test_set_help(self): self.call( - help.CmdSetHelp(), + help_module.CmdSetHelp(), "testhelp, General = This is a test", "Topic 'testhelp' was successfully created.", + cmdset=CharacterCmdSet() ) - self.call(help.CmdHelp(), "testhelp", "Help for testhelp", cmdset=CharacterCmdSet())
    + self.call(help_module.CmdHelp(), "testhelp", "Help for testhelp", cmdset=CharacterCmdSet()) + + @parameterized.expand([ + ("test", # main help entry + "Help for test\n\n" + "Main help text\n\n" + "Subtopics:\n" + " test/creating extra stuff" + " test/something else" + " test/more" + ), + ("test/creating extra stuff", # subtopic, full match + "Help for test/creating extra stuff\n\n" + "Help on creating extra stuff.\n\n" + "Subtopics:\n" + " test/creating extra stuff/subsubtopic\n" + ), + ("test/creating", # startswith-match + "Help for test/creating extra stuff\n\n" + "Help on creating extra stuff.\n\n" + "Subtopics:\n" + " test/creating extra stuff/subsubtopic\n" + ), + ("test/extra", # partial match + "Help for test/creating extra stuff\n\n" + "Help on creating extra stuff.\n\n" + "Subtopics:\n" + " test/creating extra stuff/subsubtopic\n" + ), + ("test/extra/subsubtopic", # partial subsub-match + "Help for test/creating extra stuff/subsubtopic\n\n" + "A subsubtopic text" + ), + ("test/creating extra/subsub", # partial subsub-match + "Help for test/creating extra stuff/subsubtopic\n\n" + "A subsubtopic text" + ), + ("test/Something else", # case + "Help for test/something else\n\n" + "Something else" + ), + ("test/More", # case + "Help for test/more\n\n" + "Another text\n\n" + "Subtopics:\n" + " test/more/second-more" + ), + ("test/More/Second-more", + "Help for test/more/second-more\n\n" + "The Second More text.\n\n" + "Subtopics:\n" + " test/more/second-more/more again" + " test/more/second-more/third more" + ), + ("test/More/-more", # partial match + "Help for test/more/second-more\n\n" + "The Second More text.\n\n" + "Subtopics:\n" + " test/more/second-more/more again" + " test/more/second-more/third more" + ), + ("test/more/second/more again", + "Help for test/more/second-more/more again\n\n" + "Even more text.\n" + ), + ("test/more/second/third", + "Help for test/more/second-more/third more\n\n" + "Third more text\n" + ), + ]) + def test_subtopic_fetch(self, helparg, expected): + """ + Check retrieval of subtopics. + + """ + class TestCmd(Command): + """ + Main help text + + # SUBTOPICS + + ## creating extra stuff + + Help on creating extra stuff. + + ### subsubtopic + + A subsubtopic text + + ## Something else + + Something else + + ## More + + Another text + + ### Second-More + + The Second More text. + + #### More again + + Even more text. + + #### Third more + + Third more text + + """ + key = "test" + + class TestCmdSet(CmdSet): + def at_cmdset_creation(self): + self.add(TestCmd()) + self.add(help_module.CmdHelp()) + + self.call(help_module.CmdHelp(), + helparg, + expected, + cmdset=TestCmdSet())
    [docs]class TestSystem(CommandTest): @@ -336,10 +608,10 @@ self.call(system.CmdPy(), "/clientraw 1+2", ">>> 1+2|3")
    [docs] def test_scripts(self): - self.call(system.CmdScripts(), "", "dbref ")
    + self.call(building.CmdScripts(), "", "dbref ")
    [docs] def test_objects(self): - self.call(system.CmdObjects(), "", "Object subtype totals")
    + self.call(building.CmdObjects(), "", "Object subtype totals")
    [docs] def test_about(self): self.call(system.CmdAbout(), "", None)
    @@ -347,6 +619,170 @@
    [docs] def test_server_load(self): self.call(system.CmdServerLoad(), "", "Server CPU and Memory load:")
    +_TASK_HANDLER = None + +
    [docs]def func_test_cmd_tasks(): + return 'success'
    + +
    [docs]class TestCmdTasks(CommandTest): + +
    [docs] def setUp(self): + super().setUp() + # get a reference of TASK_HANDLER + self.timedelay = 5 + global _TASK_HANDLER + if _TASK_HANDLER is None: + from evennia.scripts.taskhandler import TASK_HANDLER as _TASK_HANDLER + _TASK_HANDLER.clock = task.Clock() + self.task_handler = _TASK_HANDLER + self.task_handler.clear() + self.task = self.task_handler.add(self.timedelay, func_test_cmd_tasks) + task_args = self.task_handler.tasks.get(self.task.get_id(), False)
    + + +
    [docs] def tearDown(self): + super().tearDown() + self.task_handler.clear()
    + +
    [docs] def test_no_tasks(self): + self.task_handler.clear() + self.call(system.CmdTasks(), '', 'There are no active tasks.')
    + +
    [docs] def test_active_task(self): + cmd_result = self.call(system.CmdTasks(), '') + for ptrn in ('Task ID', 'Completion', 'Date', 'Function', 'KWARGS', 'persisten', + '1', r'\d+/\d+/\d+', r'\d+\:', r'\d+\:\d+', r'\:\d+', 'func_test', '{}', + 'False'): + self.assertRegex(cmd_result, ptrn)
    + +
    [docs] def test_persistent_task(self): + self.task_handler.clear() + self.task_handler.add(self.timedelay, func_test_cmd_tasks, persistent=True) + cmd_result = self.call(system.CmdTasks(), '') + self.assertRegex(cmd_result, 'True')
    + +
    [docs] def test_pause_unpause(self): + # test pause + args = f'/pause {self.task.get_id()}' + wanted_msg = 'Pause task 1 with completion date' + cmd_result = self.call(system.CmdTasks(), args, wanted_msg) + self.assertRegex(cmd_result, ' \(func_test_cmd_tasks\) ') + self.char1.execute_cmd('y') + self.assertTrue(self.task.paused) + self.task_handler.clock.advance(self.timedelay + 1) + # test unpause + args = f'/unpause {self.task.get_id()}' + self.assertTrue(self.task.exists()) + wanted_msg = 'Unpause task 1 with completion date' + cmd_result = self.call(system.CmdTasks(), args, wanted_msg) + self.assertRegex(cmd_result, ' \(func_test_cmd_tasks\) ') + self.char1.execute_cmd('y') + # verify task continues after unpause + self.task_handler.clock.advance(1) + self.assertFalse(self.task.exists())
    + +
    [docs] def test_do_task(self): + args = f'/do_task {self.task.get_id()}' + wanted_msg = 'Do_task task 1 with completion date' + cmd_result = self.call(system.CmdTasks(), args, wanted_msg) + self.assertRegex(cmd_result, ' \(func_test_cmd_tasks\) ') + self.char1.execute_cmd('y') + self.assertFalse(self.task.exists())
    + +
    [docs] def test_remove(self): + args = f'/remove {self.task.get_id()}' + wanted_msg = 'Remove task 1 with completion date' + cmd_result = self.call(system.CmdTasks(), args, wanted_msg) + self.assertRegex(cmd_result, ' \(func_test_cmd_tasks\) ') + self.char1.execute_cmd('y') + self.assertFalse(self.task.exists())
    + +
    [docs] def test_call(self): + args = f'/call {self.task.get_id()}' + wanted_msg = 'Call task 1 with completion date' + cmd_result = self.call(system.CmdTasks(), args, wanted_msg) + self.assertRegex(cmd_result, ' \(func_test_cmd_tasks\) ') + self.char1.execute_cmd('y') + # make certain the task is still active + self.assertTrue(self.task.active()) + # go past delay time, the task should call do_task and remove itself after calling. + self.task_handler.clock.advance(self.timedelay + 1) + self.assertFalse(self.task.exists())
    + +
    [docs] def test_cancel(self): + args = f'/cancel {self.task.get_id()}' + wanted_msg = 'Cancel task 1 with completion date' + cmd_result = self.call(system.CmdTasks(), args, wanted_msg) + self.assertRegex(cmd_result, ' \(func_test_cmd_tasks\) ') + self.char1.execute_cmd('y') + self.assertTrue(self.task.exists()) + self.assertFalse(self.task.active())
    + +
    [docs] def test_func_name_manipulation(self): + self.task_handler.add(self.timedelay, func_test_cmd_tasks) # add an extra task + args = f'/remove func_test_cmd_tasks' + wanted_msg = 'Task action remove completed on task ID 1.|The task function remove returned: True|' \ + 'Task action remove completed on task ID 2.|The task function remove returned: True' + self.call(system.CmdTasks(), args, wanted_msg) + self.assertFalse(self.task_handler.tasks) # no tasks should exist.
    + +
    [docs] def test_wrong_func_name(self): + args = f'/remove intentional_fail' + wanted_msg = 'No tasks deferring function name intentional_fail found.' + self.call(system.CmdTasks(), args, wanted_msg) + self.assertTrue(self.task.active())
    + +
    [docs] def test_no_input(self): + args = f'/cancel {self.task.get_id()}' + self.call(system.CmdTasks(), args) + # task should complete since no input was received + self.task_handler.clock.advance(self.timedelay + 1) + self.assertFalse(self.task.exists())
    + +
    [docs] def test_responce_of_yes(self): + self.call(system.CmdTasks(), f'/cancel {self.task.get_id()}') + self.char1.msg = Mock() + self.char1.execute_cmd('y') + text = '' + for _, _, kwargs in self.char1.msg.mock_calls: + text += kwargs.get('text', '') + self.assertEqual(text, 'cancel request completed.The task function cancel returned: True') + self.assertTrue(self.task.exists())
    + +
    [docs] def test_task_complete_waiting_input(self): + """Test for task completing while waiting for input.""" + self.call(system.CmdTasks(), f'/cancel {self.task.get_id()}') + self.task_handler.clock.advance(self.timedelay + 1) + self.char1.msg = Mock() + self.char1.execute_cmd('y') + text = '' + for _, _, kwargs in self.char1.msg.mock_calls: + text += kwargs.get('text', '') + self.assertEqual(text, 'Task completed while waiting for input.') + self.assertFalse(self.task.exists())
    + +
    [docs] def test_new_task_waiting_input(self): + """ + Test task completing than a new task with the same ID being made while waitinf for input. + """ + self.assertTrue(self.task.get_id(), 1) + self.call(system.CmdTasks(), f'/cancel {self.task.get_id()}') + self.task_handler.clock.advance(self.timedelay + 1) + self.assertFalse(self.task.exists()) + self.task = self.task_handler.add(self.timedelay, func_test_cmd_tasks) + self.assertTrue(self.task.get_id(), 1) + self.char1.msg = Mock() + self.char1.execute_cmd('y') + text = '' + for _, _, kwargs in self.char1.msg.mock_calls: + text += kwargs.get('text', '') + self.assertEqual(text, 'Task completed while waiting for input.')
    + +
    [docs] def test_misformed_command(self): + wanted_msg = 'Task command misformed.|Proper format tasks[/switch] ' \ + '[function name or task id]' + self.call(system.CmdTasks(), f'/cancel', wanted_msg)
    +
    [docs]class TestAdmin(CommandTest):
    [docs] def test_emit(self): @@ -368,7 +804,7 @@ self.call(admin.CmdWall(), "Test", "Announcing to all connected sessions ...")
    [docs] def test_ban(self): - self.call(admin.CmdBan(), "Char", "Name-Ban char was added.")
    + self.call(admin.CmdBan(), "Char", "Name-ban 'char' was added. Use unban to reinstate.")
    [docs] def test_force(self): cid = self.char2.id @@ -600,7 +1036,7 @@ self.call( building.CmdCpAttr(), "/copy Obj2/test2 = Obj2/test3", - 'cpattr: Extra switch "/copy" ignored.|\nCopied Obj2.test2 -> Obj2.test3. ' + '@cpattr: Extra switch "/copy" ignored.|\nCopied Obj2.test2 -> Obj2.test3. ' "(value: 'value2')", ) self.call(building.CmdMvAttr(), "", "Usage: ") @@ -1014,11 +1450,8 @@ 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): @@ -1183,37 +1616,59 @@ self.call(building.CmdFind(), f"=#{id1}-{id2}", f"{mdiff} Matches(#{id1}-#{id2}):")
    [docs] def test_script(self): - self.call(building.CmdScript(), "Obj = ", "No scripts defined on Obj") + self.call(building.CmdScripts(), "Obj", "No scripts defined on Obj") self.call( - building.CmdScript(), "Obj = scripts.Script", "Script scripts.Script successfully added" + building.CmdScripts(), + "Obj = scripts.Script", + "Script scripts.Script successfully added" ) - self.call(building.CmdScript(), "", "Usage: ") self.call( - building.CmdScript(), - "= Obj", - "To create a global script you need scripts/add <typeclass>.", + building.CmdScripts(), + "evennia.Dummy", + "Global Script NOT Created " ) - self.call(building.CmdScript(), "Obj ", "dbref ") + self.call( + building.CmdScripts(), + "evennia.scripts.scripts.DoNothing", + "Global Script Created - sys_do_nothing " + ) + self.call(building.CmdScripts(), "Obj ", "dbref ") self.call( - building.CmdScript(), "/start Obj", "0 scripts started on Obj" - ) # because it's already started - self.call(building.CmdScript(), "/stop Obj", "Stopping script") + building.CmdScripts(), "/start Obj", "Script on Obj Started " + ) # we allow running start again; this should still happen + self.call(building.CmdScripts(), "/stop Obj", "Script on Obj Stopped - ") self.call( - building.CmdScript(), "Obj = scripts.Script", "Script scripts.Script successfully added" + building.CmdScripts(), "Obj = scripts.Script", + "Script scripts.Script successfully added", + inputs=["Y"] ) self.call( - building.CmdScript(), + building.CmdScripts(), "/start Obj = scripts.Script", - "Script scripts.Script could not be (re)started.", + "Script on Obj Started ", + inputs=["Y"] ) self.call( - building.CmdScript(), + building.CmdScripts(), "/stop Obj = scripts.Script", - "Script stopped and removed from object.", + "Script on Obj Stopped ", + inputs=["Y"] + ) + self.call( + building.CmdScripts(), + "/delete Obj = scripts.Script", + "Script on Obj Deleted ", + inputs=["Y"] + ) + self.call( + building.CmdScripts(), + "/delete evennia.scripts.scripts.DoNothing", + "Global Script Deleted -" )
    +
    [docs] def test_teleport(self): oid = self.obj1.id rid = self.room1.id @@ -1452,108 +1907,232 @@ )
    -
    [docs]class TestComms(CommandTest): -
    [docs] def setUp(self): +from evennia.utils.create import create_channel # noqa + +
    [docs]class TestCommsChannel(CommandTest): + """ + Test the central `channel` command. + + """ +
    [docs] def setUp(self): super(CommandTest, self).setUp() + self.channel = create_channel( + key="testchannel", + desc="A test channel") + self.channel.connect(self.char1) + self.cmdchannel = comms.CmdChannel + self.cmdchannel.account_caller = False
    + +
    [docs] def tearDown(self): + if self.channel.pk: + self.channel.delete()
    + + # test channel command +
    [docs] def test_channel__noarg(self): self.call( - comms.CmdChannelCreate(), - "testchan;test=Test Channel", - "Created channel testchan and connected to it.", - receiver=self.account, + self.cmdchannel(), + "", + "Channel subscriptions" )
    -
    [docs] def test_toggle_com(self): +
    [docs] def test_channel__msg(self): + self.channel.msg = Mock() self.call( - comms.CmdAddCom(), - "tc = testchan", - "You are already connected to channel testchan. You can now", - receiver=self.account, + self.cmdchannel(), + "testchannel = Test message", + "" ) + self.channel.msg.assert_called_with("Test message", senders=self.char1)
    + +
    [docs] def test_channel__list(self): self.call( - comms.CmdDelCom(), - "tc", - "Your alias 'tc' for channel testchan was cleared.", - receiver=self.account, + self.cmdchannel(), + "/list", + "Channel subscriptions" )
    -
    [docs] def test_channels(self): +
    [docs] def test_channel__all(self): self.call( - comms.CmdChannels(), - "", - "Available channels (use comlist,addcom and delcom to manage", - receiver=self.account, + self.cmdchannel(), + "/all", + "Available channels" )
    -
    [docs] def test_all_com(self): +
    [docs] def test_channel__history(self): + with patch("evennia.commands.default.comms.tail_log_file") as mock_tail: + self.call( + self.cmdchannel(), + "/history testchannel", + "" + ) + mock_tail.assert_called()
    + +
    [docs] def test_channel__sub(self): + self.channel.disconnect(self.char1) + self.call( - comms.CmdAllCom(), - "", - "Available channels (use comlist,addcom and delcom to manage", - receiver=self.account, + self.cmdchannel(), + "/sub testchannel", + "You are now subscribed" + ) + self.assertTrue(self.char1 in self.channel.subscriptions.all()) + self.assertEqual(self.char1.nicks.nickreplace("testchannel Hello"), "channel testchannel = Hello")
    + +
    [docs] def test_channel__unsub(self): + self.call( + self.cmdchannel(), + "/unsub testchannel", + "You un-subscribed" + ) + self.assertFalse(self.char1 in self.channel.subscriptions.all())
    + +
    [docs] def test_channel__alias__unalias(self): + """Add and then remove a channel alias""" + # add alias + self.call( + self.cmdchannel(), + "/alias testchannel = foo", + "Added/updated your alias 'foo' for channel testchannel." + ) + self.assertEqual( + self.char1.nicks.nickreplace('foo Hello'), "channel testchannel = Hello") + + # use alias + self.channel.msg = Mock() + self.call( + self.cmdchannel(), + "foo = test message", + "") + self.channel.msg.assert_called_with("test message", senders=self.char1) + + # remove alias + self.call( + self.cmdchannel(), + "/unalias foo", + "Removed your channel alias 'foo'" + ) + self.assertEqual(self.char1.nicks.get('foo $1', category="channel"), None)
    + +
    [docs] def test_channel__mute(self): + self.call( + self.cmdchannel(), + "/mute testchannel", + "Muted channel testchannel" + ) + self.assertTrue(self.char1 in self.channel.mutelist)
    + +
    [docs] def test_channel__unmute(self): + self.channel.mute(self.char1) + + self.call( + self.cmdchannel(), + "/unmute testchannel = Char1", + "Un-muted channel testchannel" + ) + self.assertFalse(self.char1 in self.channel.mutelist)
    + +
    [docs] def test_channel__create(self): + self.call( + self.cmdchannel(), + "/create testchannel2", + "Created (and joined) new channel" )
    -
    [docs] def test_clock(self): +
    [docs] def test_channel__destroy(self): + self.channel.msg = Mock() self.call( - comms.CmdClock(), - "testchan=send:all()", - "Lock(s) applied. Current locks on testchan:", - receiver=self.account, + self.cmdchannel(), + "/destroy testchannel = delete reason", + "Are you sure you want to delete channel ", + inputs=['Yes'] + ) + self.channel.msg.assert_called_with( + "delete reason", bypass_mute=True, senders=self.char1)
    + +
    [docs] def test_channel__desc(self): + self.call( + self.cmdchannel(), + "/desc testchannel = Another description", + "Updated channel description." )
    -
    [docs] def test_cdesc(self): +
    [docs] def test_channel__lock(self): self.call( - comms.CmdCdesc(), - "testchan = Test Channel", - "Description of channel 'testchan' set to 'Test Channel'.", - receiver=self.account, - )
    + self.cmdchannel(), + "/lock testchannel = foo:false()", + "Added/updated lock on channel" + ) + self.assertEqual(self.channel.locks.get('foo'), 'foo:false()')
    -
    [docs] def test_cemit(self): +
    [docs] def test_channel__unlock(self): + self.channel.locks.add("foo:true()") self.call( - comms.CmdCemit(), - "testchan = Test Message", - "[testchan] Test Message|Sent to channel testchan: Test Message", - receiver=self.account, - )
    + self.cmdchannel(), + "/unlock testchannel = foo", + "Removed lock from channel" + ) + self.assertEqual(self.channel.locks.get('foo'), '')
    -
    [docs] def test_cwho(self): - self.call( - comms.CmdCWho(), - "testchan", - "Channel subscriptions\ntestchan:\n TestAccount", - receiver=self.account, - )
    +
    [docs] def test_channel__boot(self): + self.channel.connect(self.char2) + self.assertTrue(self.char2 in self.channel.subscriptions.all()) + self.channel.msg = Mock() + self.char2.msg = Mock() -
    [docs] def test_page(self): self.call( - comms.CmdPage(), - "TestAccount2 = Test", - "TestAccount2 is offline. They will see your message if they list their pages later." - "|You paged TestAccount2 with: 'Test'.", - receiver=self.account, - )
    + self.cmdchannel(), + "/boot testchannel = Char2 : Booting from channel!", + "Are you sure ", + inputs=["Yes"] + ) + self.channel.msg.assert_called_with( + "Char2 was booted from channel by Char. Reason: Booting from channel!") + self.char2.msg.assert_called_with( + "You were booted from channel testchannel by Char. Reason: Booting from channel!")
    -
    [docs] def test_cboot(self): - # No one else connected to boot - self.call( - comms.CmdCBoot(), - "", - "Usage: cboot[/quiet] <channel> = <account> [:reason]", - receiver=self.account, - )
    +
    [docs] def test_channel__ban__unban(self): + """Test first ban and then unban""" + + # ban + self.channel.connect(self.char2) + self.assertTrue(self.char2 in self.channel.subscriptions.all()) + self.channel.msg = Mock() + self.char2.msg = Mock() -
    [docs] def test_cdestroy(self): self.call( - comms.CmdCdestroy(), - "testchan", - "[testchan] TestAccount: testchan is being destroyed. Make sure to change your aliases." - "|Channel 'testchan' was destroyed.", - receiver=self.account, + self.cmdchannel(), + "/ban testchannel = Char2 : Banning from channel!", + "Are you sure ", + inputs=["Yes"] + ) + self.channel.msg.assert_called_with( + "Char2 was booted from channel by Char. Reason: Banning from channel!") + self.char2.msg.assert_called_with( + "You were booted from channel testchannel by Char. Reason: Banning from channel!") + self.assertTrue(self.char2 in self.channel.banlist) + + # unban + + self.call( + self.cmdchannel(), + "/unban testchannel = Char2", + "Un-banned Char2 from channel testchannel" + ) + self.assertFalse(self.char2 in self.channel.banlist)
    + +
    [docs] def test_channel__who(self): + self.call( + self.cmdchannel(), + "/who testchannel", + "Subscribed to testchannel:\nChar" )
    [docs]class TestBatchProcess(CommandTest): -
    [docs] def test_batch_commands(self): + +
    [docs] @patch("evennia.contrib.tutorial_examples.red_button.repeat") + @patch("evennia.contrib.tutorial_examples.red_button.delay") + def test_batch_commands(self, mock_delay, mock_repeat): # cannot test batchcode here, it must run inside the server process self.call( batchprocess.CmdBatchCommands(), @@ -1564,7 +2143,8 @@ confirm = building.CmdDestroy.confirm building.CmdDestroy.confirm = False self.call(building.CmdDestroy(), "button", "button was destroyed.") - building.CmdDestroy.confirm = confirm
    + building.CmdDestroy.confirm = confirm + mock_repeat.assert_called()
    [docs]class CmdInterrupt(Command): @@ -1619,16 +2199,7 @@ multimatch = syscommands.SystemMultimatch() multimatch.matches = matches - self.call(multimatch, "look", "")
    - -
    [docs] @patch("evennia.commands.default.syscommands.ChannelDB") - def test_channelcommand(self, mock_channeldb): - channel = MagicMock() - channel.msg = MagicMock() - mock_channeldb.objects.get_channel = MagicMock(return_value=channel) - - self.call(syscommands.SystemSendToChannel(), "public:Hello") - channel.msg.assert_called()
    + self.call(multimatch, "look", "")
    @@ -1654,11 +2225,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 46fd98a783..822e09c037 100644 --- a/docs/0.9.5/_modules/evennia/commands/default/unloggedin.html +++ b/docs/0.9.5/_modules/evennia/commands/default/unloggedin.html @@ -65,7 +65,7 @@ "CmdUnconnectedHelp", "CmdUnconnectedEncoding", "CmdUnconnectedInfo", - "CmdUnconnectedScreenreader" + "CmdUnconnectedScreenreader", ) MULTISESSION_MODE = settings.MULTISESSION_MODE @@ -240,6 +240,20 @@ username, password = parts + # pre-normalize username so the user know what they get + non_normalized_username = username + username = Account.normalize_username(username) + if non_normalized_username != username: + session.msg("Note: your username was normalized to strip spaces and remove characters " + "that could be visually confusing.") + + # have the user verify their new account was what they intended + answer = yield(f"You want to create an account '{username}' with password '{password}'." + "\nIs this what you intended? [Y]/N?") + if answer.lower() in ('n', 'no'): + session.msg("Aborted. If your user name contains spaces, surround it by quotes.") + return + # everything's ok. Create the new account account. account, errors = Account.create( username=username, password=password, ip=address, session=session @@ -340,6 +354,7 @@ |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. @@ -565,11 +580,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/comms/admin.html b/docs/0.9.5/_modules/evennia/comms/admin.html deleted file mode 100644 index f24384d412..0000000000 --- a/docs/0.9.5/_modules/evennia/comms/admin.html +++ /dev/null @@ -1,229 +0,0 @@ - - - - - - - - evennia.comms.admin — Evennia 0.9.5 documentation - - - - - - - - - - - - - - - -
    -
    -
    -
    - -

    Source code for evennia.comms.admin

    -"""
    -This defines how Comm models are displayed in the web admin interface.
    -
    -"""
    -
    -from django.contrib import admin
    -from evennia.comms.models import ChannelDB
    -from evennia.typeclasses.admin import AttributeInline, TagInline
    -from django.conf import settings
    -
    -
    -
    [docs]class ChannelAttributeInline(AttributeInline): - """ - Inline display of Channel Attribute - experimental - - """ - - model = ChannelDB.db_attributes.through - related_field = "channeldb"
    - - -
    [docs]class ChannelTagInline(TagInline): - """ - Inline display of Channel Tags - experimental - - """ - - model = ChannelDB.db_tags.through - related_field = "channeldb"
    - - -
    [docs]class MsgAdmin(admin.ModelAdmin): - """ - Defines display for Msg objects - - """ - - list_display = ( - "id", - "db_date_created", - "db_sender", - "db_receivers", - "db_channels", - "db_message", - "db_lock_storage", - ) - list_display_links = ("id",) - ordering = ["db_date_created", "db_sender", "db_receivers", "db_channels"] - # readonly_fields = ['db_message', 'db_sender', 'db_receivers', 'db_channels'] - search_fields = ["id", "^db_date_created", "^db_message"] - save_as = True - save_on_top = True - list_select_related = True
    - - -# admin.site.register(Msg, MsgAdmin) - - -
    [docs]class ChannelAdmin(admin.ModelAdmin): - """ - Defines display for Channel objects - - """ - - inlines = [ChannelTagInline, ChannelAttributeInline] - list_display = ("id", "db_key", "db_lock_storage", "subscriptions") - list_display_links = ("id", "db_key") - ordering = ["db_key"] - search_fields = ["id", "db_key", "db_tags__db_key"] - save_as = True - save_on_top = True - list_select_related = True - raw_id_fields = ("db_object_subscriptions", "db_account_subscriptions") - fieldsets = ( - ( - None, - { - "fields": ( - ("db_key",), - "db_lock_storage", - "db_account_subscriptions", - "db_object_subscriptions", - ) - }, - ), - ) - -
    [docs] def subscriptions(self, obj): - """ - Helper method to get subs from a channel. - - Args: - obj (Channel): The channel to get subs from. - - """ - return ", ".join([str(sub) for sub in obj.subscriptions.all()])
    - -
    [docs] def save_model(self, request, obj, form, change): - """ - Model-save hook. - - Args: - request (Request): Incoming request. - obj (Object): Database object. - form (Form): Form instance. - change (bool): If this is a change or a new object. - - """ - obj.save() - if not change: - # adding a new object - # have to call init with typeclass passed to it - obj.set_class_from_typeclass(typeclass_path=settings.BASE_CHANNEL_TYPECLASS) - obj.at_init()
    - -
    [docs] def response_add(self, request, obj, post_url_continue=None): - from django.http import HttpResponseRedirect - from django.urls import reverse - - return HttpResponseRedirect(reverse("admin:comms_channeldb_change", args=[obj.id]))
    - - -admin.site.register(ChannelDB, ChannelAdmin) -
    - -
    -
    -
    -
    - -
    -
    - - - - \ No newline at end of file diff --git a/docs/0.9.5/_modules/evennia/comms/channelhandler.html b/docs/0.9.5/_modules/evennia/comms/channelhandler.html deleted file mode 100644 index 538b24487f..0000000000 --- a/docs/0.9.5/_modules/evennia/comms/channelhandler.html +++ /dev/null @@ -1,429 +0,0 @@ - - - - - - - - evennia.comms.channelhandler — Evennia 0.9.5 documentation - - - - - - - - - - - - - - - -
    -
    -
    -
    - -

    Source code for evennia.comms.channelhandler

    -"""
    -The channel handler, accessed from this module as CHANNEL_HANDLER is a
    -singleton that handles the stored set of channels and how they are
    -represented against the cmdhandler.
    -
    -If there is a channel named 'newbie', we want to be able to just write
    -
    -    newbie Hello!
    -
    -For this to work, 'newbie', the name of the channel, must be
    -identified by the cmdhandler as a command name. The channelhandler
    -stores all channels as custom 'commands' that the cmdhandler can
    -import and look through.
    -
    -> Warning - channel names take precedence over command names, so make
    -sure to not pick clashing channel names.
    -
    -Unless deleting a channel you normally don't need to bother about the
    -channelhandler at all - the create_channel method handles the update.
    -
    -To delete a channel cleanly, delete the channel object, then call
    -update() on the channelhandler. Or use Channel.objects.delete() which
    -does this for you.
    -
    -"""
    -from django.conf import settings
    -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 _
    -
    -# we must late-import these since any overloads are likely to
    -# themselves be using these classes leading to a circular import.
    -
    -_CHANNEL_HANDLER_CLASS = None
    -_CHANNEL_COMMAND_CLASS = None
    -_CHANNELDB = None
    -_COMMAND_DEFAULT_CLASS = class_from_module(settings.COMMAND_DEFAULT_CLASS)
    -
    -
    [docs]class ChannelCommand(_COMMAND_DEFAULT_CLASS): - """ - {channelkey} channel - - {channeldesc} - - Usage: - {lower_channelkey} <message> - {lower_channelkey}/history [start] - {lower_channelkey} off - mutes the channel - {lower_channelkey} on - unmutes the channel - - Switch: - history: View 20 previous messages, either from the end or - from <start> number of messages from the end. - - Example: - {lower_channelkey} Hello World! - {lower_channelkey}/history - {lower_channelkey}/history 30 - - """ - - # ^note that channeldesc and lower_channelkey will be filled - # automatically by ChannelHandler - - # this flag is what identifies this cmd as a channel cmd - # and branches off to the system send-to-channel command - # (which is customizable by admin) - is_channel = True - key = "general" - help_category = "Channel Names" - obj = None - arg_regex = r"\s.*?|/history.*?" - -
    [docs] def parse(self): - """ - Simple parser - """ - # cmdhandler sends channame:msg here. - channelname, msg = self.args.split(":", 1) - self.history_start = None - if msg.startswith("/history"): - arg = msg[8:] - try: - self.history_start = int(arg) if arg else 0 - except ValueError: - # if no valid number was given, ignore it - pass - self.args = (channelname.strip(), msg.strip())
    - -
    [docs] def func(self): - """ - Create a new message and send it to channel, using - the already formatted input. - """ - global _CHANNELDB - if not _CHANNELDB: - from evennia.comms.models import ChannelDB as _CHANNELDB - - channelkey, msg = self.args - caller = self.caller - if not msg: - self.msg(_("Say what?")) - return - channel = _CHANNELDB.objects.get_channel(channelkey) - - if not channel: - self.msg(_("Channel '%s' not found.") % channelkey) - return - if not channel.has_connection(caller): - string = _("You are not connected to channel '%s'.") - self.msg(string % channelkey) - return - if not channel.access(caller, "send"): - string = _("You are not permitted to send to channel '%s'.") - self.msg(string % channelkey) - return - if msg == "on": - caller = caller if not hasattr(caller, "account") else caller.account - unmuted = channel.unmute(caller) - if unmuted: - self.msg(_("You start listening to %s.") % channel) - return - self.msg(_("You were already listening to %s.") % channel) - return - if msg == "off": - caller = caller if not hasattr(caller, "account") else caller.account - muted = channel.mute(caller) - if muted: - self.msg(_("You stop listening to %s.") % channel) - return - self.msg(_("You were already not listening to %s.") % channel) - return - if self.history_start is not None: - # Try to view history - log_file = channel.attributes.get("log_file", default="channel_%s.log" % channel.key) - - def send_msg(lines): - return self.msg( - "".join(line.split("[-]", 1)[1] if "[-]" in line else line for line in lines) - ) - - tail_log_file(log_file, self.history_start, 20, callback=send_msg) - else: - caller = caller if not hasattr(caller, "account") else caller.account - if caller in channel.mutelist: - self.msg(_("You currently have %s muted.") % channel) - return - channel.msg(msg, senders=self.caller, online=True)
    - -
    [docs] def get_extra_info(self, caller, **kwargs): - """ - Let users know that this command is for communicating on a channel. - - Args: - caller (TypedObject): A Character or Account who has entered an ambiguous command. - - Returns: - A string with identifying information to disambiguate the object, conventionally with a preceding space. - """ - return _(" (channel)")
    - - -
    [docs]class ChannelHandler(object): - """ - The ChannelHandler manages all active in-game channels and - dynamically creates channel commands for users so that they can - just give the channel's key or alias to write to it. Whenever a - new channel is created in the database, the update() method on - this handler must be called to sync it with the database (this is - done automatically if creating the channel with - evennia.create_channel()) - - """ - -
    [docs] def __init__(self): - """ - Initializes the channel handler's internal state. - - """ - self._cached_channel_cmds = {} - self._cached_cmdsets = {} - self._cached_channels = {}
    - - def __str__(self): - """ - Returns the string representation of the handler - - """ - return ", ".join(str(cmd) for cmd in self._cached_channel_cmds) - -
    [docs] def clear(self): - """ - Reset the cache storage. - - """ - self._cached_channel_cmds = {} - self._cached_cmdsets = {} - self._cached_channels = {}
    - -
    [docs] def add(self, channel): - """ - Add an individual channel to the handler. This is called - whenever a new channel is created. - - Args: - channel (Channel): The channel to add. - - Notes: - To remove a channel, simply delete the channel object and - run self.update on the handler. This should usually be - handled automatically by one of the deletion methos of - the Channel itself. - - """ - global _CHANNEL_COMMAND_CLASS - if not _CHANNEL_COMMAND_CLASS: - _CHANNEL_COMMAND_CLASS = class_from_module(settings.CHANNEL_COMMAND_CLASS) - - # map the channel to a searchable command - cmd = _CHANNEL_COMMAND_CLASS( - key=channel.key.strip().lower(), - aliases=channel.aliases.all(), - locks="cmd:all();%s" % channel.locks, - help_category="Channel names", - obj=channel, - is_channel=True, - ) - # format the help entry - key = channel.key - cmd.__doc__ = cmd.__doc__.format( - channelkey=key, - lower_channelkey=key.strip().lower(), - channeldesc=channel.attributes.get("desc", default="").strip(), - ) - self._cached_channel_cmds[channel] = cmd - self._cached_channels[key] = channel - self._cached_cmdsets = {}
    - - add_channel = add # legacy alias - -
    [docs] def remove(self, channel): - """ - Remove channel from channelhandler. This will also delete it. - - Args: - channel (Channel): Channel to remove/delete. - - """ - if channel.pk: - channel.delete() - self.update()
    - -
    [docs] def update(self): - """ - Updates the handler completely, including removing old removed - Channel objects. This must be called after deleting a Channel. - - """ - global _CHANNELDB - if not _CHANNELDB: - from evennia.comms.models import ChannelDB as _CHANNELDB - self._cached_channel_cmds = {} - self._cached_cmdsets = {} - self._cached_channels = {} - for channel in _CHANNELDB.objects.get_all_channels(): - self.add(channel)
    - -
    [docs] def get(self, channelname=None): - """ - Get a channel from the handler, or all channels - - Args: - channelame (str, optional): Channel key, case insensitive. - Returns - channels (list): The matching channels in a list, or all - channels in the handler. - - """ - if channelname: - channel = self._cached_channels.get(channelname.lower(), None) - return [channel] if channel else [] - return list(self._cached_channels.values())
    - -
    [docs] def get_cmdset(self, source_object): - """ - Retrieve cmdset for channels this source_object has - access to send to. - - Args: - source_object (Object): An object subscribing to one - or more channels. - - Returns: - cmdsets (list): The Channel-Cmdsets `source_object` has - access to. - - """ - if source_object in self._cached_cmdsets: - return self._cached_cmdsets[source_object] - else: - # create a new cmdset holding all viable channels - chan_cmdset = None - chan_cmds = [ - channelcmd - for channel, channelcmd in self._cached_channel_cmds.items() - if channel.subscriptions.has(source_object) - and channelcmd.access(source_object, "send") - ] - if chan_cmds: - chan_cmdset = cmdset.CmdSet() - chan_cmdset.key = "ChannelCmdSet" - chan_cmdset.priority = 101 - chan_cmdset.duplicates = True - for cmd in chan_cmds: - chan_cmdset.add(cmd) - self._cached_cmdsets[source_object] = chan_cmdset - return chan_cmdset
    - - -# set up the singleton -CHANNEL_HANDLER = class_from_module(settings.CHANNEL_HANDLER_CLASS)() -CHANNELHANDLER = CHANNEL_HANDLER # legacy -
    - -
    -
    -
    -
    - -
    -
    - - - - \ No newline at end of file diff --git a/docs/0.9.5/_modules/evennia/comms/comms.html b/docs/0.9.5/_modules/evennia/comms/comms.html index e2b652ad89..8b81a9175f 100644 --- a/docs/0.9.5/_modules/evennia/comms/comms.html +++ b/docs/0.9.5/_modules/evennia/comms/comms.html @@ -50,23 +50,48 @@ from django.utils.text import slugify from evennia.typeclasses.models import TypeclassBase -from evennia.comms.models import TempMsg, ChannelDB +from evennia.comms.models import ChannelDB from evennia.comms.managers import ChannelManager from evennia.utils import create, logger from evennia.utils.utils import make_iter -_CHANNEL_HANDLER = None -
    [docs]class DefaultChannel(ChannelDB, metaclass=TypeclassBase): """ This is the base class for all Channel Comms. Inherit from this to create different types of communication channels. + Class-level variables: + - `send_to_online_only` (bool, default True) - if set, will only try to + send to subscribers that are actually active. This is a useful optimization. + - `log_file` (str, default `"channel_{channelname}.log"`). This is the + log file to which the channel history will be saved. The `{channelname}` tag + will be replaced by the key of the Channel. If an Attribute 'log_file' + is set, this will be used instead. If this is None and no Attribute is found, + no history will be saved. + - `channel_prefix_string` (str, default `"[{channelname} ]"`) - this is used + as a simple template to get the channel prefix with `.channel_prefix()`. + """ objects = ChannelManager() + # channel configuration + + # only send to characters/accounts who has an active session (this is a + # good optimization since people can still recover history separately). + send_to_online_only = True + # store log in log file. `channel_key tag will be replace with key of channel. + # Will use log_file Attribute first, if given + log_file = "channel_{channelname}.log" + # which prefix to use when showing were a message is coming from. Set to + # None to disable and set this later. + channel_prefix_string = "[{channelname}] " + + # default nick-alias replacements (default using the 'channel' command) + channel_msg_nick_pattern = r"{alias}\s*?|{alias}\s+?(?P<arg1>.+?)" + channel_msg_nick_replacement = "channel {channelname} = $1" +
    [docs] def at_first_save(self): """ Called by the typeclass system the very first time the channel @@ -76,7 +101,6 @@ """ self.basetype_setup() self.at_channel_creation() - self.attributes.add("log_file", "channel_%s.log" % self.key) if hasattr(self, "_createdict"): # this is only set if the channel was created # with the utils.create.create_channel function. @@ -98,14 +122,11 @@ self.tags.batch_add(*cdict["tags"])
    [docs] def basetype_setup(self): - # delayed import of the channelhandler - global _CHANNEL_HANDLER - if not _CHANNEL_HANDLER: - from evennia.comms.channelhandler import CHANNEL_HANDLER as _CHANNEL_HANDLER - # register ourselves with the channelhandler. - _CHANNEL_HANDLER.add(self) + self.locks.add("send:all();listen:all();control:perm(Admin)") - self.locks.add("send:all();listen:all();control:perm(Admin)")
    + # make sure we don't have access to a same-named old channel's history. + log_file = self.get_log_filename() + logger.rotate_log_file(log_file, num_lines_to_append=0)
    [docs] def at_channel_creation(self): """ @@ -116,6 +137,33 @@ # helper methods, for easy overloading + _log_file = None + +
    [docs] def get_log_filename(self): + """ + File name to use for channel log. + + Returns: + str: The filename to use (this is always assumed to be inside + settings.LOG_DIR) + + """ + if not self._log_file: + self._log_file = self.attributes.get( + "log_file", self.log_file.format(channelname=self.key.lower())) + return self._log_file
    + +
    [docs] def set_log_filename(self, filename): + """ + Set a custom log filename. + + Args: + filename (str): The filename to set. This is a path starting from + inside the settings.LOG_DIR location. + + """ + self.attributes.add("log_file", filename)
    +
    [docs] def has_connection(self, subscriber): """ Checks so this account is actually listening @@ -144,6 +192,10 @@ def mutelist(self): return self.db.mute_list or [] + @property + def banlist(self): + return self.db.ban_list or [] + @property def wholist(self): subs = self.subscriptions.all() @@ -172,6 +224,10 @@ **kwargs (dict): Arbitrary, optional arguments for users overriding the call (unused by default). + Returns: + bool: True if muting was successful, False if we were already + muted. + """ mutelist = self.mutelist if subscriber not in mutelist: @@ -182,19 +238,67 @@
    [docs] def unmute(self, subscriber, **kwargs): """ - Removes an entity to the list of muted subscribers. A muted subscriber will no longer see channel messages, - but may use channel commands. + Removes an entity from the list of muted subscribers. A muted subscriber + will no longer see channel messages, but may use channel commands. Args: subscriber (Object or Account): The subscriber to unmute. **kwargs (dict): Arbitrary, optional arguments for users overriding the call (unused by default). + Returns: + bool: True if unmuting was successful, False if we were already + unmuted. + """ mutelist = self.mutelist if subscriber in mutelist: mutelist.remove(subscriber) - self.db.mute_list = mutelist + return True + return False
    + +
    [docs] def ban(self, target, **kwargs): + """ + Ban a given user from connecting to the channel. This will not stop + users already connected, so the user must be booted for this to take + effect. + + Args: + target (Object or Account): The entity to unmute. This need not + be a subscriber. + **kwargs (dict): Arbitrary, optional arguments for users + overriding the call (unused by default). + + Returns: + bool: True if banning was successful, False if target was already + banned. + """ + banlist = self.banlist + if target not in banlist: + banlist.append(target) + self.db.ban_list = banlist + return True + return False
    + +
    [docs] def unban(self, target, **kwargs): + """ + Un-Ban a given user. This will not reconnect them - they will still + have to reconnect and set up aliases anew. + + Args: + target (Object or Account): The entity to unmute. This need not + be a subscriber. + **kwargs (dict): Arbitrary, optional arguments for users + overriding the call (unused by default). + + Returns: + bool: True if unbanning was successful, False if target was not + previously banned. + """ + banlist = list(self.banlist) + if target in banlist: + banlist = [banned for banned in banlist if banned != target] + self.db.ban_list = banlist return True return False
    @@ -214,7 +318,7 @@ """ # check access - if not self.access(subscriber, "listen"): + if subscriber in self.banlist or not self.access(subscriber, "listen"): return False # pre-join hook connect = self.pre_join_channel(subscriber) @@ -287,7 +391,7 @@ )
    [docs] @classmethod - def create(cls, key, account=None, *args, **kwargs): + def create(cls, key, creator=None, *args, **kwargs): """ Creates a basic Channel with default parameters, unless otherwise specified or extended. @@ -296,7 +400,8 @@ Args: key (str): This must be unique. - account (Account): Account to attribute this object to. + creator (Account or Object): Entity to associate with this channel + (used for tracking) Keyword Args: aliases (list of str): List of alternative (likely shorter) keynames. @@ -324,8 +429,8 @@ # Record creator id and creation IP if ip: obj.db.creator_ip = ip - if account: - obj.db.creator_id = account.id + if creator: + obj.db.creator_id = creator.id except Exception as exc: errors.append("An error occurred while creating this '%s' object." % key) @@ -335,284 +440,197 @@
    [docs] def delete(self): """ - Deletes channel while also cleaning up channelhandler. + Deletes channel. + + Returns: + bool: If deletion was successful. Only time it can fail would be + if channel was already deleted. Even if it were to fail, all subscribers + will be disconnected. """ self.attributes.clear() self.aliases.clear() - super().delete() - from evennia.comms.channelhandler import CHANNELHANDLER - - CHANNELHANDLER.update()
    - -
    [docs] def message_transform( - self, msgobj, emit=False, prefix=True, sender_strings=None, external=False, **kwargs - ): - """ - Generates the formatted string sent to listeners on a channel. - - Args: - msgobj (Msg): Message object to send. - emit (bool, optional): In emit mode the message is not associated - with a specific sender name. - prefix (bool, optional): Prefix `msg` with a text given by `self.channel_prefix`. - sender_strings (list, optional): Used by bots etc, one string per external sender. - external (bool, optional): If this is an external sender or not. - **kwargs (dict): Arbitrary, optional arguments for users - overriding the call (unused by default). - - """ - if sender_strings or external: - body = self.format_external(msgobj, sender_strings, emit=emit) - else: - body = self.format_message(msgobj, emit=emit) - if prefix: - body = "%s%s" % (self.channel_prefix(msgobj, emit=emit), body) - msgobj.message = body - return msgobj
    - -
    [docs] def distribute_message(self, msgobj, online=False, **kwargs): - """ - Method for grabbing all listeners that a message should be - sent to on this channel, and sending them a message. - - Args: - msgobj (Msg or TempMsg): Message to distribute. - online (bool): Only send to receivers who are actually online - (not currently used): - **kwargs (dict): Arbitrary, optional arguments for users - overriding the call (unused by default). - - Notes: - This is also where logging happens, if enabled. - - """ - # get all accounts or objects connected to this channel and send to them - if online: - subs = self.subscriptions.online() - else: - subs = self.subscriptions.all() - for entity in subs: - # if the entity is muted, we don't send them a message - if entity in self.mutelist: - continue - try: - # note our addition of the from_channel keyword here. This could be checked - # by a custom account.msg() to treat channel-receives differently. - entity.msg( - msgobj.message, from_obj=msgobj.senders, options={"from_channel": self.id} - ) - except AttributeError as e: - logger.log_trace("%s\nCannot send msg to '%s'." % (e, entity)) - - if msgobj.keep_log: - # log to file - logger.log_file( - msgobj.message, self.attributes.get("log_file") or "channel_%s.log" % self.key - )
    - -
    [docs] def msg( - self, - msgobj, - header=None, - senders=None, - sender_strings=None, - keep_log=None, - online=False, - emit=False, - external=False, - ): - """ - Send the given message to all accounts connected to channel. Note that - no permission-checking is done here; it is assumed to have been - done before calling this method. The optional keywords are not used if - persistent is False. - - Args: - msgobj (Msg, TempMsg or str): If a Msg/TempMsg, the remaining - keywords will be ignored (since the Msg/TempMsg object already - has all the data). If a string, this will either be sent as-is - (if persistent=False) or it will be used together with `header` - and `senders` keywords to create a Msg instance on the fly. - header (str, optional): A header for building the message. - senders (Object, Account or list, optional): Optional if persistent=False, used - to build senders for the message. - sender_strings (list, optional): Name strings of senders. Used for external - connections where the sender is not an account or object. - When this is defined, external will be assumed. The list will be - filtered so each sender-string only occurs once. - keep_log (bool or None, optional): This allows to temporarily change the logging status of - this channel message. If `None`, the Channel's `keep_log` Attribute will - be used. If `True` or `False`, that logging status will be used for this - message only (note that for unlogged channels, a `True` value here will - create a new log file only for this message). - online (bool, optional) - If this is set true, only messages people who are - online. Otherwise, messages all accounts connected. This can - make things faster, but may not trigger listeners on accounts - that are offline. - emit (bool, optional) - Signals to the message formatter that this message is - not to be directly associated with a name. - external (bool, optional): Treat this message as being - agnostic of its sender. - - Returns: - success (bool): Returns `True` if message sending was - successful, `False` otherwise. - - """ - senders = make_iter(senders) if senders else [] - if isinstance(msgobj, str): - # given msgobj is a string - convert to msgobject (always TempMsg) - msgobj = TempMsg(senders=senders, header=header, message=msgobj, channels=[self]) - # we store the logging setting for use in distribute_message() - msgobj.keep_log = keep_log if keep_log is not None else self.db.keep_log - - # start the sending - msgobj = self.pre_send_message(msgobj) - if not msgobj: + for subscriber in self.subscriptions.all(): + self.disconnect(subscriber) + if not self.pk: return False - if sender_strings: - sender_strings = list(set(make_iter(sender_strings))) - msgobj = self.message_transform( - msgobj, emit=emit, sender_strings=sender_strings, external=external - ) - self.distribute_message(msgobj, online=online) - self.post_send_message(msgobj) + super().delete() return True
    -
    [docs] def tempmsg(self, message, header=None, senders=None): - """ - A wrapper for sending non-persistent messages. - - Args: - message (str): Message to send. - header (str, optional): Header of message to send. - senders (Object or list, optional): Senders of message to send. - - """ - self.msg(message, senders=senders, header=header, keep_log=False)
    - - # hooks - -
    [docs] def channel_prefix(self, msg=None, emit=False, **kwargs): +
    [docs] def channel_prefix(self): """ Hook method. How the channel should prefix itself for users. - Args: - msg (str, optional): Prefix text - emit (bool, optional): Switches to emit mode, which usually - means to not prefix the channel's info. - **kwargs (dict): Arbitrary, optional arguments for users - overriding the call (unused by default). - Returns: - prefix (str): The created channel prefix. + str: The channel prefix. """ - return "" if emit else "[%s] " % self.key
    + return self.channel_prefix_string.format(channelname=self.key)
    -
    [docs] def format_senders(self, senders=None, **kwargs): +
    [docs] def add_user_channel_alias(self, user, alias, **kwargs): """ - Hook method. Function used to format a list of sender names. + Add a personal user-alias for this channel to a given subscriber. Args: - senders (list): Sender object names. - **kwargs (dict): Arbitrary, optional arguments for users - overriding the call (unused by default). + user (Object or Account): The one to alias this channel. + alias (str): The desired alias. - Returns: - formatted_list (str): The list of names formatted appropriately. + Note: + This is tightly coupled to the default `channel` command. If you + change that, you need to change this as well. + + We add two nicks - one is a plain `alias -> channel.key` that + users need to be able to reference this channel easily. The other + is a templated nick to easily be able to send messages to the + channel without needing to give the full `channel` command. The + structure of this nick is given by `self.channel_msg_nick_pattern` + and `self.channel_msg_nick_replacement`. By default it maps + `alias <msg> -> channel <channelname> = <msg>`, so that you can + for example just write `pub Hello` to send a message. + + The alias created is `alias $1 -> channel channel = $1`, to allow + for sending to channel using the main channel command. + + """ + chan_key = self.key.lower() + + # the message-pattern allows us to type the channel on its own without + # needing to use the `channel` command explicitly. + msg_nick_pattern = self.channel_msg_nick_pattern.format(alias=alias) + msg_nick_replacement = self.channel_msg_nick_replacement.format(channelname=chan_key) + user.nicks.add(msg_nick_pattern, msg_nick_replacement, category="inputline", + pattern_is_regex=True, **kwargs) + + if chan_key != alias: + # this allows for using the alias for general channel lookups + user.nicks.add(alias, chan_key, category="channel", **kwargs)
    + +
    [docs] @classmethod + def remove_user_channel_alias(cls, user, alias, **kwargs): + """ + Remove a personal channel alias from a user. + + Args: + user (Object or Account): The user to remove an alias from. + alias (str): The alias to remove. + **kwargs: Unused by default. Can be used to pass extra variables + into a custom implementation. Notes: - This function exists separately so that external sources - can use it to format source names in the same manner as - normal object/account names. + The channel-alias actually consists of two aliases - one + channel-based one for searching channels with the alias and one + inputline one for doing the 'channelalias msg' - call. + + This is a classmethod because it doesn't actually operate on the + channel instance. + + It sits on the channel because the nick structure for this is + pretty complex and needs to be located in a central place (rather + on, say, the channel command). """ - if not senders: - return "" - return ", ".join(senders)
    + user.nicks.remove(alias, category="channel", **kwargs) + msg_nick_pattern = cls.channel_msg_nick_pattern.format(alias=alias) + user.nicks.remove(msg_nick_pattern, category="inputline", **kwargs)
    -
    [docs] def pose_transform(self, msgobj, sender_string, **kwargs): +
    [docs] def at_pre_msg(self, message, **kwargs): """ - Hook method. Detects if the sender is posing, and modifies the - message accordingly. + Called before the starting of sending the message to a receiver. This + is called before any hooks on the receiver itself. If this returns + None/False, the sending will be aborted. Args: - msgobj (Msg or TempMsg): The message to analyze for a pose. - sender_string (str): The name of the sender/poser. - **kwargs (dict): Arbitrary, optional arguments for users - overriding the call (unused by default). + message (str): The message to send. + **kwargs (any): Keywords passed on from `.msg`. This includes + `senders`. Returns: - string (str): A message that combines the `sender_string` - component with `msg` in different ways depending on if a - pose was performed or not (this must be analyzed by the - hook). + str, False or None: Any custom changes made to the message. If + falsy, no message will be sent. """ - pose = False - message = msgobj.message - message_start = message.lstrip() - if message_start.startswith((":", ";")): - pose = True - message = message[1:] - if not message.startswith((":", "'", ",")): - if not message.startswith(" "): - message = " " + message - if pose: - return "%s%s" % (sender_string, message) + return message
    + +
    [docs] def msg(self, message, senders=None, bypass_mute=False, **kwargs): + """ + Send message to channel, causing it to be distributed to all non-muted + subscribed users of that channel. + + Args: + message (str): The message to send. + senders (Object, Account or list, optional): If not given, there is + no way to associate one or more senders with the message (like + a broadcast message or similar). + bypass_mute (bool, optional): If set, always send, regardless of + individual mute-state of subscriber. This can be used for + global announcements or warnings/alerts. + **kwargs (any): This will be passed on to all hooks. Use `no_prefix` + to exclude the channel prefix. + + Notes: + The call hook calling sequence is: + + - `msg = channel.at_pre_msg(message, **kwargs)` (aborts for all if return None) + - `msg = receiver.at_pre_channel_msg(msg, channel, **kwargs)` (aborts for receiver if return None) + - `receiver.at_channel_msg(msg, channel, **kwargs)` + - `receiver.at_post_channel_msg(msg, channel, **kwargs)`` + Called after all receivers are processed: + - `channel.at_post_all_msg(message, **kwargs)` + + (where the senders/bypass_mute are embedded into **kwargs for + later access in hooks) + + """ + senders = make_iter(senders) if senders else [] + if self.send_to_online_only: + receivers = self.subscriptions.online() else: - return "%s: %s" % (sender_string, message)
    + receivers = self.subscriptions.all() + if not bypass_mute: + receivers = [receiver for receiver in receivers if receiver not in self.mutelist] -
    [docs] def format_external(self, msgobj, senders, emit=False, **kwargs): + send_kwargs = {'senders': senders, 'bypass_mute': bypass_mute, **kwargs} + + # pre-send hook + message = self.at_pre_msg(message, **send_kwargs) + if message in (None, False): + return + + for receiver in receivers: + # send to each individual subscriber + + try: + recv_message = receiver.at_pre_channel_msg(message, self, **send_kwargs) + if recv_message in (None, False): + return + + receiver.channel_msg(recv_message, self, **send_kwargs) + + receiver.at_post_channel_msg(recv_message, self, **send_kwargs) + + except Exception: + logger.log_trace(f"Error sending channel message to {receiver}.") + + # post-send hook + self.at_post_msg(message, **send_kwargs)
    + +
    [docs] def at_post_msg(self, message, **kwargs): """ - Hook method. Used for formatting external messages. This is - needed as a separate operation because the senders of external - messages may not be in-game objects/accounts, and so cannot - have things like custom user preferences. + This is called after sending to *all* valid recipients. It is normally + used for logging/channel history. Args: - msgobj (Msg or TempMsg): The message to send. - senders (list): Strings, one per sender. - emit (bool, optional): A sender-agnostic message or not. - **kwargs (dict): Arbitrary, optional arguments for users - overriding the call (unused by default). - - Returns: - transformed (str): A formatted string. + message (str): The message sent. + **kwargs (any): Keywords passed on from `msg`, including `senders`. """ - if emit or not senders: - return msgobj.message - senders = ", ".join(senders) - return self.pose_transform(msgobj, senders)
    - -
    [docs] def format_message(self, msgobj, emit=False, **kwargs): - """ - Hook method. Formats a message body for display. - - Args: - msgobj (Msg or TempMsg): The message object to send. - emit (bool, optional): The message is agnostic of senders. - **kwargs (dict): Arbitrary, optional arguments for users - overriding the call (unused by default). - - Returns: - transformed (str): The formatted message. - - """ - # We don't want to count things like external sources as senders for - # the purpose of constructing the message string. - senders = [sender for sender in msgobj.senders if hasattr(sender, "key")] - if not senders: - emit = True - if emit: - return msgobj.message - else: - senders = [sender.key for sender in msgobj.senders] - senders = ", ".join(senders) - return self.pose_transform(msgobj, senders)
    + # save channel history to log file + log_file = self.get_log_filename() + if log_file: + senders = ",".join(sender.key for sender in kwargs.get("senders", [])) + senders = f"{senders}: " if senders else "" + message = f"{senders}{message}" + logger.log_file(message, log_file)
    [docs] def pre_join_channel(self, joiner, **kwargs): """ @@ -639,8 +657,13 @@ **kwargs (dict): Arbitrary, optional arguments for users overriding the call (unused by default). + Notes: + By default this adds the needed channel nicks to the joiner. + """ - pass
    + key_and_aliases = [self.key.lower()] + [alias.lower() for alias in self.aliases.all()] + for key_or_alias in key_and_aliases: + self.add_user_channel_alias(joiner, key_or_alias, **kwargs)
    [docs] def pre_leave_channel(self, leaver, **kwargs): """ @@ -668,36 +691,12 @@ overriding the call (unused by default). """ - pass
    - -
    [docs] def pre_send_message(self, msg, **kwargs): - """ - Hook method. Runs before a message is sent to the channel and - should return the message object, after any transformations. - If the message is to be discarded, return a false value. - - Args: - msg (Msg or TempMsg): Message to send. - **kwargs (dict): Arbitrary, optional arguments for users - overriding the call (unused by default). - - Returns: - result (Msg, TempMsg or bool): If False, abort send. - - """ - return msg
    - -
    [docs] def post_send_message(self, msg, **kwargs): - """ - Hook method. Run after a message is sent to the channel. - - Args: - msg (Msg or TempMsg): Message sent. - **kwargs (dict): Arbitrary, optional arguments for users - overriding the call (unused by default). - - """ - pass
    + chan_key = self.key.lower() + key_or_aliases = [self.key.lower()] + [alias.lower() for alias in self.aliases.all()] + nicktuples = leaver.nicks.get(category="channel", return_tuple=True, return_list=True) + key_or_aliases += [tup[2] for tup in nicktuples if tup[3].lower() == chan_key] + for key_or_alias in key_or_aliases: + self.remove_user_channel_alias(leaver, key_or_alias, **kwargs)
    [docs] def at_init(self): """ @@ -757,7 +756,7 @@ """ try: return reverse("%s-create" % slugify(cls._meta.verbose_name)) - except: + except Exception: return "#"
    [docs] def web_get_detail_url(self): @@ -772,8 +771,10 @@ a named view of 'channel-detail' would be referenced by this method. ex. - url(r'channels/(?P<slug>[\w\d\-]+)/$', - ChannelDetailView.as_view(), name='channel-detail') + :: + + url(r'channels/(?P<slug>[\w\d\-]+)/$', + ChannelDetailView.as_view(), name='channel-detail') If no View has been created and defined in urls.py, returns an HTML anchor. @@ -791,7 +792,7 @@ "%s-detail" % slugify(self._meta.verbose_name), kwargs={"slug": slugify(self.db_key)}, ) - except: + except Exception: return "#"
    [docs] def web_get_update_url(self): @@ -806,8 +807,10 @@ a named view of 'channel-update' would be referenced by this method. ex. - url(r'channels/(?P<slug>[\w\d\-]+)/(?P<pk>[0-9]+)/change/$', - ChannelUpdateView.as_view(), name='channel-update') + :: + + url(r'channels/(?P<slug>[\w\d\-]+)/(?P<pk>[0-9]+)/change/$', + ChannelUpdateView.as_view(), name='channel-update') If no View has been created and defined in urls.py, returns an HTML anchor. @@ -825,7 +828,7 @@ "%s-update" % slugify(self._meta.verbose_name), kwargs={"slug": slugify(self.db_key)}, ) - except: + except Exception: return "#"
    [docs] def web_get_delete_url(self): @@ -858,11 +861,41 @@ "%s-delete" % slugify(self._meta.verbose_name), kwargs={"slug": slugify(self.db_key)}, ) - except: + except Exception: return "#"
    # Used by Django Sites/Admin - get_absolute_url = web_get_detail_url + get_absolute_url = web_get_detail_url + + # TODO Evennia 1.0+ removed hooks. Remove in 1.1. +
    [docs] def message_transform(self, *args, **kwargs): + raise RuntimeError("Channel.message_transform is no longer used in 1.0+. " + "Use Account/Object.at_pre_channel_msg instead.")
    + +
    [docs] def distribute_message(self, msgobj, online=False, **kwargs): + raise RuntimeError("Channel.distribute_message is no longer used in 1.0+.")
    + +
    [docs] def format_senders(self, senders=None, **kwargs): + raise RuntimeError("Channel.format_senders is no longer used in 1.0+. " + "Use Account/Object.at_pre_channel_msg instead.")
    + +
    [docs] def pose_transform(self, msgobj, sender_string, **kwargs): + raise RuntimeError("Channel.pose_transform is no longer used in 1.0+. " + "Use Account/Object.at_pre_channel_msg instead.")
    + +
    [docs] def format_external(self, msgobj, senders, emit=False, **kwargs): + raise RuntimeError("Channel.format_external is no longer used in 1.0+. " + "Use Account/Object.at_pre_channel_msg instead.")
    + +
    [docs] def format_message(self, msgobj, emit=False, **kwargs): + raise RuntimeError("Channel.format_message is no longer used in 1.0+. " + "Use Account/Object.at_pre_channel_msg instead.")
    + +
    [docs] def pre_send_message(self, msg, **kwargs): + raise RuntimeError("Channel.pre_send_message was renamed to Channel.at_pre_msg.")
    + +
    [docs] def post_send_message(self, msg, **kwargs): + raise RuntimeError("Channel.post_send_message was renamed to Channel.at_post_msg.")
    @@ -888,11 +921,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/comms/managers.html b/docs/0.9.5/_modules/evennia/comms/managers.html index b8fa81bd5d..fbed94aa09 100644 --- a/docs/0.9.5/_modules/evennia/comms/managers.html +++ b/docs/0.9.5/_modules/evennia/comms/managers.html @@ -57,6 +57,7 @@ _AccountDB = None _ObjectDB = None _ChannelDB = None +_ScriptDB = None _SESSIONS = None # error class @@ -97,6 +98,8 @@ return inp, "object" elif clsname == "ChannelDB": return inp, "channel" + elif clsname == "ScriptDB": + return inp, "script" if isinstance(inp, str): return inp, "string" elif dbref(inp): @@ -146,6 +149,14 @@ return _ChannelDB.objects.get(id=obj) logger.log_err("%s %s %s %s %s" % (objtype, inp, obj, typ, type(inp))) raise CommError() + elif objtype == "script": + if typ == "string": + return _ScriptDB.objects.get(db_key__iexact=obj) + if typ == "dbref": + return _ScriptDB.objects.get(id=obj) + logger.log_err("%s %s %s %s %s" % (objtype, inp, obj, typ, type(inp))) + raise CommError() + # an unknown return None @@ -201,48 +212,30 @@ except Exception: return None -
    [docs] def get_messages_by_sender(self, sender, exclude_channel_messages=False): +
    [docs] def get_messages_by_sender(self, sender): """ Get all messages sent by one entity - this could be either a account or an object Args: sender (Account or Object): The sender of the message. - exclude_channel_messages (bool, optional): Only return messages - not aimed at a channel (that is, private tells for example) Returns: - messages (list): List of matching messages + QuerySet: Matching messages. Raises: CommError: For incorrect sender types. """ obj, typ = identify_object(sender) - if exclude_channel_messages: - # explicitly exclude channel recipients - if typ == "account": - return list( - self.filter(db_sender_accounts=obj, db_receivers_channels__isnull=True).exclude( - db_hide_from_accounts=obj - ) - ) - elif typ == "object": - return list( - self.filter(db_sender_objects=obj, db_receivers_channels__isnull=True).exclude( - db_hide_from_objects=obj - ) - ) - else: - raise CommError + if typ == "account": + return self.filter(db_sender_accounts=obj).exclude(db_hide_from_accounts=obj) + elif typ == "object": + return self.filter(db_sender_objects=obj).exclude(db_hide_from_objects=obj) + elif typ == "script": + return self.filter(db_sender_scripts=obj) else: - # get everything, channel or not - if typ == "account": - return list(self.filter(db_sender_accounts=obj).exclude(db_hide_from_accounts=obj)) - elif typ == "object": - return list(self.filter(db_sender_objects=obj).exclude(db_hide_from_objects=obj)) - else: - raise CommError
    + raise CommError
    [docs] def get_messages_by_receiver(self, recipient): """ @@ -252,7 +245,7 @@ recipient (Object, Account or Channel): The recipient of the messages to search for. Returns: - messages (list): Matching messages. + Queryset: Matching messages. Raises: CommError: If the `recipient` is not of a valid type. @@ -260,34 +253,21 @@ """ obj, typ = identify_object(recipient) if typ == "account": - return list(self.filter(db_receivers_accounts=obj).exclude(db_hide_from_accounts=obj)) + return self.filter(db_receivers_accounts=obj).exclude(db_hide_from_accounts=obj) elif typ == "object": - return list(self.filter(db_receivers_objects=obj).exclude(db_hide_from_objects=obj)) - elif typ == "channel": - return list(self.filter(db_receivers_channels=obj).exclude(db_hide_from_channels=obj)) + return self.filter(db_receivers_objects=obj).exclude(db_hide_from_objects=obj) + elif typ == 'script': + return self.filter(db_receivers_scripts=obj) else: raise CommError
    -
    [docs] def get_messages_by_channel(self, channel): - """ - Get all persistent messages sent to one channel. - - Args: - channel (Channel): The channel to find messages for. - - Returns: - messages (list): Persistent Msg objects saved for this channel. - - """ - return self.filter(db_receivers_channels=channel).exclude(db_hide_from_channels=channel)
    -
    [docs] def search_message(self, sender=None, receiver=None, freetext=None, dbref=None): """ Search the message database for particular messages. At least one of the arguments must be given to do a search. Args: - sender (Object or Account, optional): Get messages sent by a particular account or object + sender (Object, Account or Script, optional): Get messages sent by a particular sender. receiver (Object, Account or Channel, optional): Get messages received by a certain account,object or channel freetext (str): Search for a text string in a message. NOTE: @@ -298,40 +278,45 @@ always gives only one match. Returns: - messages (list or Msg): A list of message matches or a single match if `dbref` was given. + Queryset: Message matches. """ # unique msg id if dbref: - msg = self.objects.filter(id=dbref) - if msg: - return msg[0] + return self.objects.filter(id=dbref) # We use Q objects to gradually build up the query - this way we only # need to do one database lookup at the end rather than gradually # refining with multiple filter:s. Django Note: Q objects can be # combined with & and | (=AND,OR). ~ negates the queryset - # filter by sender + # filter by sender (we need __pk to avoid an error with empty Q() objects) sender, styp = identify_object(sender) + if sender: + spk = sender.pk if styp == "account": - sender_restrict = Q(db_sender_accounts=sender) & ~Q(db_hide_from_accounts=sender) + sender_restrict = Q(db_sender_accounts__pk=spk) & ~Q(db_hide_from_accounts__pk=spk) elif styp == "object": - sender_restrict = Q(db_sender_objects=sender) & ~Q(db_hide_from_objects=sender) + sender_restrict = Q(db_sender_objects__pk=spk) & ~Q(db_hide_from_objects__pk=spk) + elif styp == 'script': + sender_restrict = Q(db_sender_scripts__pk=spk) else: sender_restrict = Q() # filter by receiver receiver, rtyp = identify_object(receiver) + if receiver: + rpk = receiver.pk if rtyp == "account": - receiver_restrict = Q(db_receivers_accounts=receiver) & ~Q( - db_hide_from_accounts=receiver - ) + receiver_restrict = ( + Q(db_receivers_accounts__pk=rpk) & ~Q(db_hide_from_accounts__pk=rpk)) elif rtyp == "object": - receiver_restrict = Q(db_receivers_objects=receiver) & ~Q(db_hide_from_objects=receiver) + receiver_restrict = Q(db_receivers_objects__pk=rpk) & ~Q(db_hide_from_objects__pk=rpk) + elif rtyp == 'script': + receiver_restrict = Q(db_receivers_scripts__pk=rpk) elif rtyp == "channel": - receiver_restrict = Q(db_receivers_channels=receiver) & ~Q( - db_hide_from_channels=receiver - ) + raise DeprecationWarning( + "Msg.objects.search don't accept channel recipients since " + "Channels no longer accepts Msg objects.") else: receiver_restrict = Q() # filter by full text @@ -340,7 +325,7 @@ else: fulltext_restrict = Q() # execute the query - return list(self.filter(sender_restrict & receiver_restrict & fulltext_restrict))
    + return self.filter(sender_restrict & receiver_restrict & fulltext_restrict) # back-compatibility alias message_search = search_message @@ -481,11 +466,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/comms/models.html b/docs/0.9.5/_modules/evennia/comms/models.html index 2087e68a03..950861a4c2 100644 --- a/docs/0.9.5/_modules/evennia/comms/models.html +++ b/docs/0.9.5/_modules/evennia/comms/models.html @@ -59,6 +59,7 @@ Channels are central objects that act as targets for Msgs. Accounts can connect to channels by use of a ChannelConnect object (this object is necessary to easily be able to delete connections on the fly). + """ from django.conf import settings from django.utils import timezone @@ -70,15 +71,13 @@ from evennia.locks.lockhandler import LockHandler from evennia.utils.utils import crop, make_iter, lazy_property -__all__ = ("Msg", "TempMsg", "ChannelDB") +__all__ = ("Msg", "TempMsg", "ChannelDB", "SubscriptionHandler") _GA = object.__getattribute__ _SA = object.__setattr__ _DA = object.__delattr__ -_CHANNELHANDLER = None - # ------------------------------------------------------------ # @@ -87,7 +86,7 @@ # ------------------------------------------------------------ -
    [docs]class Msg(SharedMemoryModel): +
    [docs]class Msg(SharedMemoryModel): """ A single message. This model describes all ooc messages sent in-game, both to channels and between accounts. @@ -98,17 +97,16 @@ - db_sender_accounts: Account senders - db_sender_objects: Object senders - db_sender_scripts: Script senders - - db_sender_external: External senders (defined as string names) + - db_sender_external: External sender (defined as string name) - db_receivers_accounts: Receiving accounts - db_receivers_objects: Receiving objects - db_receivers_scripts: Receiveing scripts - - db_receivers_channels: Receiving channels + - db_receiver_external: External sender (defined as string name) - db_header: Header text - db_message: The actual message text - db_date_created: time message was created / sent - db_hide_from_sender: bool if message should be hidden from sender - db_hide_from_receivers: list of receiver objects to hide message from - - db_hide_from_channels: list of channels objects to hide message from - db_lock_storage: Internal storage of lock strings. """ @@ -120,14 +118,11 @@ # These databse fields are all set using their corresponding properties, # named same as the field, but withtout the db_* prefix. - # Sender is either an account, an object or an external sender, like - # an IRC channel; normally there is only one, but if co-modification of - # a message is allowed, there may be more than one "author" db_sender_accounts = models.ManyToManyField( "accounts.AccountDB", related_name="sender_account_set", blank=True, - verbose_name="sender(account)", + verbose_name="Senders (Accounts)", db_index=True, ) @@ -135,14 +130,14 @@ "objects.ObjectDB", related_name="sender_object_set", blank=True, - verbose_name="sender(object)", + verbose_name="Senders (Objects)", db_index=True, ) db_sender_scripts = models.ManyToManyField( "scripts.ScriptDB", related_name="sender_script_set", blank=True, - verbose_name="sender(script)", + verbose_name="Senders (Scripts)", db_index=True, ) db_sender_external = models.CharField( @@ -151,16 +146,15 @@ null=True, blank=True, db_index=True, - help_text="identifier for external sender, for example a sender over an " - "IRC connection (i.e. someone who doesn't have an exixtence in-game).", + help_text="Identifier for single external sender, for use with senders " + "not represented by a regular database model." ) - # The destination objects of this message. Stored as a - # comma-separated string of object dbrefs. Can be defined along - # with channels below. + db_receivers_accounts = models.ManyToManyField( "accounts.AccountDB", related_name="receiver_account_set", blank=True, + verbose_name="Receivers (Accounts)", help_text="account receivers", ) @@ -168,16 +162,25 @@ "objects.ObjectDB", related_name="receiver_object_set", blank=True, + verbose_name="Receivers (Objects)", help_text="object receivers", ) db_receivers_scripts = models.ManyToManyField( "scripts.ScriptDB", related_name="receiver_script_set", blank=True, + verbose_name="Receivers (Scripts)", help_text="script_receivers", ) - db_receivers_channels = models.ManyToManyField( - "ChannelDB", related_name="channel_set", blank=True, help_text="channel recievers" + + db_receiver_external = models.CharField( + "external receiver", + max_length=1024, + null=True, + blank=True, + db_index=True, + help_text="Identifier for single external receiver, for use with recievers " + "not represented by a regular database model." ) # header could be used for meta-info about the message if your system needs @@ -194,7 +197,7 @@ "locks", blank=True, help_text="access locks on this message." ) - # these can be used to filter/hide a given message from supplied objects/accounts/channels + # these can be used to filter/hide a given message from supplied objects/accounts db_hide_from_accounts = models.ManyToManyField( "accounts.AccountDB", related_name="hide_from_accounts_set", blank=True ) @@ -202,33 +205,27 @@ db_hide_from_objects = models.ManyToManyField( "objects.ObjectDB", related_name="hide_from_objects_set", blank=True ) - db_hide_from_channels = models.ManyToManyField( - "ChannelDB", related_name="hide_from_channels_set", blank=True - ) db_tags = models.ManyToManyField( Tag, blank=True, - help_text="tags on this message. Tags are simple string markers to identify, group and alias messages.", + help_text="tags on this message. Tags are simple string markers to " + "identify, group and alias messages.", ) # Database manager objects = managers.MsgManager() _is_deleted = False -
    [docs] def __init__(self, *args, **kwargs): - SharedMemoryModel.__init__(self, *args, **kwargs) - self.extra_senders = []
    - class Meta(object): "Define Django meta options" verbose_name = "Msg" -
    [docs] @lazy_property +
    [docs] @lazy_property def locks(self): return LockHandler(self)
    -
    [docs] @lazy_property +
    [docs] @lazy_property def tags(self): return TagHandler(self)
    @@ -240,28 +237,28 @@ # value = self.attr and del self.attr respectively (where self # is the object in question). - # sender property (wraps db_sender_*) - # @property - def __senders_get(self): - "Getter. Allows for value = self.sender" + @property + def senders(self): + "Getter. Allows for value = self.senders" return ( list(self.db_sender_accounts.all()) + list(self.db_sender_objects.all()) + list(self.db_sender_scripts.all()) - + self.extra_senders + + ([self.db_sender_external] if self.db_sender_external else []) ) - # @sender.setter - def __senders_set(self, senders): + @senders.setter + def senders(self, senders): "Setter. Allows for self.sender = value" + + if isinstance(senders, str): + self.db_sender_external = senders + self.save(update_fields=["db_sender_external"]) + return + for sender in make_iter(senders): if not sender: continue - if isinstance(sender, str): - self.db_sender_external = sender - self.extra_senders.append(sender) - self.save(update_fields=["db_sender_external"]) - continue if not hasattr(sender, "__dbclass__"): raise ValueError("This is a not a typeclassed object!") clsname = sender.__dbclass__.__name__ @@ -272,32 +269,32 @@ elif clsname == "ScriptDB": self.db_sender_scripts.add(sender) - # @sender.deleter - def __senders_del(self): + @senders.deleter + def senders(self): "Deleter. Clears all senders" self.db_sender_accounts.clear() self.db_sender_objects.clear() self.db_sender_scripts.clear() self.db_sender_external = "" - self.extra_senders = [] self.save() - senders = property(__senders_get, __senders_set, __senders_del) - -
    [docs] def remove_sender(self, senders): +
    [docs] def remove_sender(self, senders): """ Remove a single sender or a list of senders. Args: senders (Account, Object, str or list): Senders to remove. + If a string, removes the external sender. """ + if isinstance(senders, str): + self.db_sender_external = "" + self.save(update_fields=["db_sender_external"]) + return + for sender in make_iter(senders): if not sender: continue - if isinstance(sender, str): - self.db_sender_external = "" - self.save(update_fields=["db_sender_external"]) if not hasattr(sender, "__dbclass__"): raise ValueError("This is a not a typeclassed object!") clsname = sender.__dbclass__.__name__ @@ -308,26 +305,33 @@ elif clsname == "ScriptDB": self.db_sender_accounts.remove(sender)
    - # receivers property - # @property - def __receivers_get(self): + @property + def receivers(self): """ Getter. Allows for value = self.receivers. - Returns four lists of receivers: accounts, objects, scripts and channels. + Returns four lists of receivers: accounts, objects, scripts and + external_receivers. + """ return ( list(self.db_receivers_accounts.all()) + list(self.db_receivers_objects.all()) + list(self.db_receivers_scripts.all()) - + list(self.db_receivers_channels.all()) + + ([self.db_receiver_external] if self.db_receiver_external else []) ) - # @receivers.setter - def __receivers_set(self, receivers): + @receivers.setter + def receivers(self, receivers): """ - Setter. Allows for self.receivers = value. - This appends a new receiver to the message. + Setter. Allows for self.receivers = value. This appends a new receiver + to the message. If a string, replaces an external receiver. + """ + if isinstance(receivers, str): + self.db_receiver_external = receivers + self.save(update_fields=['db_receiver_external']) + return + for receiver in make_iter(receivers): if not receiver: continue @@ -340,32 +344,34 @@ self.db_receivers_accounts.add(receiver) elif clsname == "ScriptDB": self.db_receivers_scripts.add(receiver) - elif clsname == "ChannelDB": - self.db_receivers_channels.add(receiver) - # @receivers.deleter - def __receivers_del(self): + @receivers.deleter + def receivers(self): "Deleter. Clears all receivers" self.db_receivers_accounts.clear() self.db_receivers_objects.clear() self.db_receivers_scripts.clear() - self.db_receivers_channels.clear() + self.db_receiver_external = "" self.save() - receivers = property(__receivers_get, __receivers_set, __receivers_del) - -
    [docs] def remove_receiver(self, receivers): +
    [docs] def remove_receiver(self, receivers): """ - Remove a single receiver or a list of receivers. + Remove a single receiver, a list of receivers, or a single extral receiver. Args: - receivers (Account, Object, Script, Channel or list): Receiver to remove. + receivers (Account, Object, Script, list or str): Receiver + to remove. A string removes the external receiver. """ + if isinstance(receivers, str): + self.db_receiver_external = "" + self.save(update_fields="db_receiver_external") + return + for receiver in make_iter(receivers): if not receiver: continue - if not hasattr(receiver, "__dbclass__"): + elif not hasattr(receiver, "__dbclass__"): raise ValueError("This is a not a typeclassed object!") clsname = receiver.__dbclass__.__name__ if clsname == "ObjectDB": @@ -373,47 +379,26 @@ elif clsname == "AccountDB": self.db_receivers_accounts.remove(receiver) elif clsname == "ScriptDB": - self.db_receivers_scripts.remove(receiver) - elif clsname == "ChannelDB": - self.db_receivers_channels.remove(receiver)
    + self.db_receivers_scripts.remove(receiver)
    - # channels property - # @property - def __channels_get(self): - "Getter. Allows for value = self.channels. Returns a list of channels." - return self.db_receivers_channels.all() - - # @channels.setter - def __channels_set(self, value): - """ - Setter. Allows for self.channels = value. - Requires a channel to be added. - """ - for val in (v for v in make_iter(value) if v): - self.db_receivers_channels.add(val) - - # @channels.deleter - def __channels_del(self): - "Deleter. Allows for del self.channels" - self.db_receivers_channels.clear() - self.save() - - channels = property(__channels_get, __channels_set, __channels_del) - - def __hide_from_get(self): + @property + def hide_from(self): """ Getter. Allows for value = self.hide_from. - Returns 3 lists of accounts, objects and channels + Returns two lists of accounts and objects. + """ return ( self.db_hide_from_accounts.all(), self.db_hide_from_objects.all(), - self.db_hide_from_channels.all(), ) - # @hide_from_sender.setter - def __hide_from_set(self, hiders): - "Setter. Allows for self.hide_from = value. Will append to hiders" + @hide_from.setter + def hide_from(self, hiders): + """ + Setter. Allows for self.hide_from = value. Will append to hiders. + + """ for hider in make_iter(hiders): if not hider: continue @@ -424,34 +409,31 @@ self.db_hide_from_accounts.add(hider.__dbclass__) elif clsname == "ObjectDB": self.db_hide_from_objects.add(hider.__dbclass__) - elif clsname == "ChannelDB": - self.db_hide_from_channels.add(hider.__dbclass__) - # @hide_from_sender.deleter - def __hide_from_del(self): - "Deleter. Allows for del self.hide_from_senders" + @hide_from.deleter + def hide_from(self): + """ + Deleter. Allows for del self.hide_from_senders + + """ self.db_hide_from_accounts.clear() self.db_hide_from_objects.clear() - self.db_hide_from_channels.clear() self.save() - hide_from = property(__hide_from_get, __hide_from_set, __hide_from_del) - # # Msg class methods # def __str__(self): - "This handles what is shown when e.g. printing the message" - senders = ",".join(getattr(obj, "key", str(obj)) for obj in self.senders) + """ + This handles what is shown when e.g. printing the message. - receivers = ",".join( - ["[%s]" % getattr(obj, "key", str(obj)) for obj in self.channels] - + [getattr(obj, "key", str(obj)) for obj in self.receivers] - ) + """ + senders = ",".join(getattr(obj, "key", str(obj)) for obj in self.senders) + receivers = ",".join(getattr(obj, "key", str(obj)) for obj in self.receivers) return "%s->%s: %s" % (senders, receivers, crop(self.message, width=40)) -
    [docs] def access(self, accessing_obj, access_type="read", default=False): +
    [docs] def access(self, accessing_obj, access_type="read", default=False): """ Checks lock access. @@ -474,19 +456,17 @@ # ------------------------------------------------------------ -
    [docs]class TempMsg(object): +
    [docs]class TempMsg(object): """ - This is a non-persistent object for sending temporary messages - that will not be stored. It mimics the "real" Msg object, but - doesn't require sender to be given. + This is a non-persistent object for sending temporary messages that will not be stored. It + mimics the "real" Msg object, but doesn't require sender to be given. """ -
    [docs] def __init__( +
    [docs] def __init__( self, senders=None, receivers=None, - channels=None, message="", header="", type="", @@ -498,18 +478,16 @@ Args: senders (any or list, optional): Senders of the message. - receivers (Account, Object, Channel or list, optional): Receivers of this message. - channels (Channel or list, optional): Channels to send to. + receivers (Account, Object, Script or list, optional): Receivers of this message. message (str, optional): Message to send. header (str, optional): Header of message. type (str, optional): Message class, if any. lockstring (str, optional): Lock for the message. - hide_from (Account, Object, Channel or list, optional): Entities to hide this message from. + hide_from (Account, Object, or list, optional): Entities to hide this message from. """ self.senders = senders and make_iter(senders) or [] self.receivers = receivers and make_iter(receivers) or [] - self.channels = channels and make_iter(channels) or [] self.type = type self.header = header self.message = message @@ -517,21 +495,20 @@ self.hide_from = hide_from and make_iter(hide_from) or [] self.date_created = timezone.now()
    -
    [docs] @lazy_property +
    [docs] @lazy_property def locks(self): return LockHandler(self)
    def __str__(self): """ This handles what is shown when e.g. printing the message. + """ senders = ",".join(obj.key for obj in self.senders) - receivers = ",".join( - ["[%s]" % obj.key for obj in self.channels] + [obj.key for obj in self.receivers] - ) + receivers = ",".join(obj.key for obj in self.receivers) return "%s->%s: %s" % (senders, receivers, crop(self.message, width=40)) -
    [docs] def remove_sender(self, sender): +
    [docs] def remove_sender(self, sender): """ Remove a sender or a list of senders. @@ -545,12 +522,13 @@ except ValueError: pass # nothing to remove
    -
    [docs] def remove_receiver(self, receiver): +
    [docs] def remove_receiver(self, receiver): """ Remove a receiver or a list of receivers Args: - receiver (Object, Account, Channel, str or list): Receivers to remove. + receiver (Object, Account, Script, str or list): Receivers to remove. + """ for o in make_iter(receiver): @@ -559,7 +537,7 @@ except ValueError: pass # nothing to remove
    -
    [docs] def access(self, accessing_obj, access_type="read", default=False): +
    [docs] def access(self, accessing_obj, access_type="read", default=False): """ Checks lock access. @@ -582,14 +560,15 @@ # ------------------------------------------------------------ -class SubscriptionHandler(object): +
    [docs]class SubscriptionHandler(object): """ This handler manages subscriptions to the channel and hides away which type of entity is subscribing (Account or Object) + """ - def __init__(self, obj): +
    [docs] def __init__(self, obj): """ Initialize the handler @@ -598,7 +577,7 @@ """ self.obj = obj - self._cache = None + self._cache = None
    def _recache(self): self._cache = { @@ -614,7 +593,7 @@ } ) - def has(self, entity): +
    [docs] def has(self, entity): """ Check if the given entity subscribe to this channel @@ -630,9 +609,9 @@ """ if self._cache is None: self._recache() - return entity in self._cache + return entity in self._cache
    - def add(self, entity): +
    [docs] def add(self, entity): """ Subscribe an entity to this channel. @@ -646,9 +625,6 @@ no hooks will be called. """ - global _CHANNELHANDLER - if not _CHANNELHANDLER: - from evennia.comms.channelhandler import CHANNEL_HANDLER as _CHANNELHANDLER for subscriber in make_iter(entity): if subscriber: clsname = subscriber.__dbclass__.__name__ @@ -657,10 +633,9 @@ self.obj.db_object_subscriptions.add(subscriber) elif clsname == "AccountDB": self.obj.db_account_subscriptions.add(subscriber) - _CHANNELHANDLER._cached_cmdsets.pop(subscriber, None) - self._recache() + self._recache()
    - def remove(self, entity): +
    [docs] def remove(self, entity): """ Remove a subscriber from the channel. @@ -669,9 +644,6 @@ entities to un-subscribe from the channel. """ - global _CHANNELHANDLER - if not _CHANNELHANDLER: - from evennia.comms.channelhandler import CHANNEL_HANDLER as _CHANNELHANDLER for subscriber in make_iter(entity): if subscriber: clsname = subscriber.__dbclass__.__name__ @@ -680,10 +652,9 @@ self.obj.db_account_subscriptions.remove(entity) elif clsname == "ObjectDB": self.obj.db_object_subscriptions.remove(entity) - _CHANNELHANDLER._cached_cmdsets.pop(subscriber, None) - self._recache() + self._recache()
    - def all(self): +
    [docs] def all(self): """ Get all subscriptions to this channel. @@ -694,11 +665,11 @@ """ if self._cache is None: self._recache() - return self._cache + return self._cache
    get = all # alias - def online(self): +
    [docs] def online(self): """ Get all online accounts from our cache Returns: @@ -716,25 +687,26 @@ if not obj.is_connected: continue except ObjectDoesNotExist: - # a subscribed object has already been deleted. Mark that we need a recache and ignore it + # a subscribed object has already been deleted. Mark that we need a recache and + # ignore it recache_needed = True continue subs.append(obj) if recache_needed: self._recache() - return subs + return subs
    - def clear(self): +
    [docs] def clear(self): """ Remove all subscribers from channel. """ self.obj.db_account_subscriptions.clear() self.obj.db_object_subscriptions.clear() - self._cache = None + self._cache = None
    -
    [docs]class ChannelDB(TypedObject): +
    [docs]class ChannelDB(TypedObject): """ This is the basis of a comm channel, only implementing the very basics of distributing messages. @@ -770,7 +742,7 @@ __defaultclasspath__ = "evennia.comms.comms.DefaultChannel" __applabel__ = "comms" - class Meta(object): + class Meta: "Define Django meta options" verbose_name = "Channel" verbose_name_plural = "Channels" @@ -779,7 +751,7 @@ "Echoes the text representation of the channel." return "Channel '%s' (%s)" % (self.key, self.db.desc) -
    [docs] @lazy_property +
    [docs] @lazy_property def subscriptions(self): return SubscriptionHandler(self)
    @@ -807,11 +779,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/contrib/barter.html b/docs/0.9.5/_modules/evennia/contrib/barter.html index c12f1c5d3b..1edfa03df3 100644 --- a/docs/0.9.5/_modules/evennia/contrib/barter.html +++ b/docs/0.9.5/_modules/evennia/contrib/barter.html @@ -963,11 +963,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 699df22b41..38da678f1a 100644 --- a/docs/0.9.5/_modules/evennia/contrib/building_menu.html +++ b/docs/0.9.5/_modules/evennia/contrib/building_menu.html @@ -205,7 +205,7 @@ def _menu_quitfunc(caller): caller.cmdset.add( BuildingMenuCmdSet, - permanent=caller.ndb._building_menu and caller.ndb._building_menu.persistent or False, + persistent=caller.ndb._building_menu and caller.ndb._building_menu.persistent or False, ) if caller.ndb._building_menu: caller.ndb._building_menu.move(back=True) @@ -994,7 +994,7 @@ if caller.cmdset.has(BuildingMenuCmdSet): caller.cmdset.remove(BuildingMenuCmdSet) - self.caller.cmdset.add(BuildingMenuCmdSet, permanent=self.persistent) + self.caller.cmdset.add(BuildingMenuCmdSet, persistent=self.persistent) self.display()
    [docs] def open_parent_menu(self): @@ -1333,11 +1333,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/contrib/chargen.html b/docs/0.9.5/_modules/evennia/contrib/chargen.html index 3d61e093f6..1da124ecb2 100644 --- a/docs/0.9.5/_modules/evennia/contrib/chargen.html +++ b/docs/0.9.5/_modules/evennia/contrib/chargen.html @@ -260,11 +260,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/contrib/clothing.html b/docs/0.9.5/_modules/evennia/contrib/clothing.html index 84bc7aacfa..809c14c31d 100644 --- a/docs/0.9.5/_modules/evennia/contrib/clothing.html +++ b/docs/0.9.5/_modules/evennia/contrib/clothing.html @@ -810,11 +810,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 7acfd2643f..35eda99e2e 100644 --- a/docs/0.9.5/_modules/evennia/contrib/custom_gametime.html +++ b/docs/0.9.5/_modules/evennia/contrib/custom_gametime.html @@ -168,7 +168,7 @@ return rtime
    -
    [docs]def realtime_to_gametime(secs=0, mins=0, hrs=0, days=0, weeks=0, months=0, yrs=0, format=False): +
    [docs]def realtime_to_gametime(secs=0, mins=0, hrs=0, days=1, weeks=1, months=1, yrs=0, format=False): """ This method calculates how much in-game time a real-world time interval would correspond to. This is usually a lot less @@ -182,10 +182,24 @@ time (float or tuple): The gametime difference or the same time split up into time units. - Example: + Note: + days/weeks/months start from 1 (there is no day/week/month 0). This makes it + consistent with the real world datetime. + + Raises: + ValueError: If trying to add a days/weeks/months of <=0. + + Example: realtime_to_gametime(days=2) -> number of game-world seconds """ + if days <= 0 or weeks <= 0 or months <= 0: + raise ValueError("realtime_to_gametime: days/weeks/months cannot be set <= 0, " + "they start from 1.") + + # days/weeks/months start from 1, we need to adjust them to work mathematically. + days, weeks, months = days - 1, weeks - 1, months - 1 + gtime = TIMEFACTOR * ( secs + mins * 60 @@ -241,6 +255,9 @@ Returns: The number of real seconds before the given game time is up. + Notes: + day/week/month start from 1, not from 0 (there is no month 0 for example) + """ current = gametime.gametime(absolute=True) units = sorted(set(UNITS.values()), reverse=True) @@ -252,9 +269,13 @@ units.append(1) higher_unit = None for unit, value in kwargs.items(): + if unit in ("day", "week", "month"): + # these start from 1 so we must adjust + value -= 1 + # Get the unit's index if unit not in UNITS: - raise ValueError("unknown unit".format(unit)) + raise ValueError(f"Unknown unit '{unit}'. Allowed: {', '.join(UNITS)}") seconds = UNITS[unit] index = units.index(seconds) @@ -375,11 +396,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/contrib/dice.html b/docs/0.9.5/_modules/evennia/contrib/dice.html index 7cfb926963..e5637f5cd8 100644 --- a/docs/0.9.5/_modules/evennia/contrib/dice.html +++ b/docs/0.9.5/_modules/evennia/contrib/dice.html @@ -328,11 +328,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 1deff4616f..bfc4411f94 100644 --- a/docs/0.9.5/_modules/evennia/contrib/email_login.html +++ b/docs/0.9.5/_modules/evennia/contrib/email_login.html @@ -429,11 +429,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 7d068f7ad1..be0c6bb06c 100644 --- a/docs/0.9.5/_modules/evennia/contrib/extended_room.html +++ b/docs/0.9.5/_modules/evennia/contrib/extended_room.html @@ -659,11 +659,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/contrib/fieldfill.html b/docs/0.9.5/_modules/evennia/contrib/fieldfill.html index 764107ece1..534c7ce1c7 100644 --- a/docs/0.9.5/_modules/evennia/contrib/fieldfill.html +++ b/docs/0.9.5/_modules/evennia/contrib/fieldfill.html @@ -782,11 +782,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/contrib/gendersub.html b/docs/0.9.5/_modules/evennia/contrib/gendersub.html index e6dc846247..d4f125b65c 100644 --- a/docs/0.9.5/_modules/evennia/contrib/gendersub.html +++ b/docs/0.9.5/_modules/evennia/contrib/gendersub.html @@ -223,11 +223,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 2dfe50f42a..a4a6dcefd1 100644 --- a/docs/0.9.5/_modules/evennia/contrib/health_bar.html +++ b/docs/0.9.5/_modules/evennia/contrib/health_bar.html @@ -186,11 +186,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 c09ec3d5e1..2cd1f5436a 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,11 +291,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 4169347e71..2103c2edb5 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,11 +649,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 9527e95ed4..9bf8604b4d 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,11 +157,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 48932aec75..a9826c6207 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 @@ -89,9 +89,10 @@ self.db.locked = [] # Tasks - self.db.tasks = {} + self.db.tasks = {} + self.at_server_start() -
    [docs] def at_start(self): +
    [docs] def at_server_start(self): """Set up the event system when starting. Note that this hook is called every time the server restarts @@ -734,11 +735,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 3d971a46ce..db6dc83469 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 @@ -91,7 +91,7 @@ """Stop the event handler.""" OLD_EVENTS.clear() OLD_EVENTS.update(self.handler.ndb.events) - self.handler.stop() + self.handler.delete() CallbackHandler.script = None super().tearDown() @@ -313,11 +313,11 @@ """Stop the callback handler.""" OLD_EVENTS.clear() OLD_EVENTS.update(self.handler.ndb.events) - self.handler.stop() + self.handler.delete() for script in ScriptDB.objects.filter( db_typeclass_path="evennia.contrib.ingame_python.scripts.TimeEventScript" ): - script.stop() + script.delete() CallbackHandler.script = None super().tearDown() @@ -492,7 +492,7 @@ """Stop the callback handler.""" OLD_EVENTS.clear() OLD_EVENTS.update(self.handler.ndb.events) - self.handler.stop() + self.handler.delete() CallbackHandler.script = None super().tearDown() @@ -609,11 +609,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 fc9a023528..60b7018e6f 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 @@ -101,7 +101,6 @@ typeclass_name = typeclass.__module__ + "." + typeclass.__name__ try: storage = ScriptDB.objects.get(db_key="event_handler") - assert storage.is_active assert storage.ndb.events is not None except (ScriptDB.DoesNotExist, AssertionError): storage = EVENTS @@ -329,11 +328,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/contrib/mail.html b/docs/0.9.5/_modules/evennia/contrib/mail.html index 478421953c..642ed147ba 100644 --- a/docs/0.9.5/_modules/evennia/contrib/mail.html +++ b/docs/0.9.5/_modules/evennia/contrib/mail.html @@ -425,11 +425,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/contrib/multidescer.html b/docs/0.9.5/_modules/evennia/contrib/multidescer.html index 31f632c6d4..9f5062221e 100644 --- a/docs/0.9.5/_modules/evennia/contrib/multidescer.html +++ b/docs/0.9.5/_modules/evennia/contrib/multidescer.html @@ -336,11 +336,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/contrib/puzzles.html b/docs/0.9.5/_modules/evennia/contrib/puzzles.html index 80f83927dc..f1c8cc7a6f 100644 --- a/docs/0.9.5/_modules/evennia/contrib/puzzles.html +++ b/docs/0.9.5/_modules/evennia/contrib/puzzles.html @@ -880,11 +880,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 3d6aa00ef3..50b345ae82 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,11 +420,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/contrib/rplanguage.html b/docs/0.9.5/_modules/evennia/contrib/rplanguage.html index 9848ec58e6..29b6ce1ab2 100644 --- a/docs/0.9.5/_modules/evennia/contrib/rplanguage.html +++ b/docs/0.9.5/_modules/evennia/contrib/rplanguage.html @@ -103,21 +103,46 @@ Below is an example of "elvish", using "rounder" vowels and sounds: ```python - 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", + # 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 vowels = "eaoiuy" - grammar = "v vv vvc vcc vvcc cvvc vccv vvccv vcvccv vcvcvcc vvccvvcc " \ - "vcvvccvvc cvcvvcvvcc vcvcvvccvcvv", + + # 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) 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") ``` @@ -160,7 +185,8 @@ _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) -_RE_EXTRA_CHARS = re.compile(r"\s+(?=\W)|[,.?;](?=[,.?;]|\s+[,.?;])", _RE_FLAGS) +# superfluous chars, except ` ... ` +_RE_EXTRA_CHARS = re.compile(r"\s+(?!... )(?=\W)|[,.?;](?!.. )(?=[,?;]|\s+[,.?;])", _RE_FLAGS)
    [docs]class LanguageError(RuntimeError): @@ -241,9 +267,13 @@ 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, 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_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_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 @@ -288,15 +318,15 @@ # {"vv": ["ea", "oh", ...], ...} grammar2phonemes = defaultdict(list) for phoneme in phonemes.split(): - if re.search("\W", phoneme): - raise LanguageError("The phoneme '%s' contains an invalid character" % phoneme) + if re.search(r"\W", phoneme, re.U): + 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) # allowed grammar are grouped by length gramdict = defaultdict(list) for gram in grammar.split(): - if re.search("\W|(!=[cv])", gram): + if re.search(r"\W|(!=[cv])", gram): raise LanguageError( "The grammar '%s' is invalid (only 'c' and 'v' are allowed)" % gram ) @@ -323,7 +353,13 @@ # use the corresponding length structure = choice(grammar[wlen]) for match in _RE_GRAMMAR.finditer(structure): - new_word += choice(grammar2phonemes[match.group()]) + 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.") translation[word.lower()] = new_word.lower() if manual_translations: @@ -362,6 +398,11 @@ 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 @@ -371,11 +412,6 @@ 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( @@ -410,24 +446,30 @@ break if word.istitle(): - 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 + 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 - 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"], + # 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 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"): @@ -473,7 +515,7 @@ Args: text (str): Text to obfuscate. level (real, optional): A value from 0.0-1.0 determining - the level of obfuscation where 0 means no jobfuscation + the level of obfuscation where 0 means no obfuscation (string returned unchanged) and 1.0 means the entire string is obfuscated. language (str, optional): The identifier of a language @@ -534,19 +576,18 @@ 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 = [ @@ -611,11 +652,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/contrib/rpsystem.html b/docs/0.9.5/_modules/evennia/contrib/rpsystem.html index 66e45959ff..867889a296 100644 --- a/docs/0.9.5/_modules/evennia/contrib/rpsystem.html +++ b/docs/0.9.5/_modules/evennia/contrib/rpsystem.html @@ -70,7 +70,7 @@ /alias to reference objects in the room. You can use any number of sdesc sub-parts to differentiate a local sdesc, or use /1-sdesc etc to differentiate them. The emote also - identifies nested says. + identifies nested says and separates case. - sdesc obscuration of real character names for use in emotes and in any referencing such as object.search(). This relies on an SdescHandler `sdesc` being set on the Character and @@ -103,13 +103,18 @@ by the player of the tall man, so that people looking at him can tell at a glance what is going on. -> emote /me looks at /tall and says "Hello!" +> emote /me looks at /Tall and says "Hello!" I see: Griatch looks at Tall man and says "Hello". Tall man (assuming his name is Tom) sees: The godlike figure looks at Tom and says "Hello". +Note that by default, the case of the tag matters, so `/tall` will +lead to 'tall man' while `/Tall` will become 'Tall man' and /TALL +becomes /TALL MAN. If you don't want this behavior, you can pass +case_sensitive=False to the `send_emote` function. + Verbose Installation Instructions: 1. In typeclasses/character.py: @@ -132,20 +137,24 @@ Inherit `ContribRPObject`: Change `class Object(DefaultObject):` to `class Object(ContribRPObject):` - 4. Reload the server (@reload or from console: "evennia reload") + 4. Reload the server (`reload` or from console: "evennia reload") 5. Force typeclass updates as required. Example for your character: - @type/reset/force me = typeclasses.characters.Character + `type/reset/force me = typeclasses.characters.Character` """ import re from re import escape as re_escape import itertools from django.conf import settings -from evennia import DefaultObject, DefaultCharacter, ObjectDB -from evennia import Command, CmdSet -from evennia import ansi +from evennia.objects.objects import DefaultObject, DefaultCharacter +from evennia.objects.models import ObjectDB +from evennia.commands.command import Command +from evennia.commands.cmdset import CmdSet +from evennia.utils import ansi from evennia.utils.utils import lazy_property, make_iter, variable_from_module +_REGEX_TUPLE_CACHE = {} + _AT_SEARCH_RESULT = variable_from_module(*settings.SEARCH_AT_RESULT.rsplit(".", 1)) # ------------------------------------------------------------ # Emote parser @@ -185,8 +194,9 @@ _RE_LEFT_BRACKETS = re.compile(r"\{+", _RE_FLAGS) _RE_RIGHT_BRACKETS = re.compile(r"\}+", _RE_FLAGS) # Reference markers are used internally when distributing the emote to -# all that can see it. They are never seen by players and are on the form {#dbref}. -_RE_REF = re.compile(r"\{+\#([0-9]+)\}+") +# all that can see it. They are never seen by players and are on the form {#dbref<char>} +# with the <char> indicating case of the original reference query (like ^ for uppercase) +_RE_REF = re.compile(r"\{+\#([0-9]+[\^\~tv]{0,1})\}+") # This regex is used to quickly reference one self in an emote. _RE_SELF_REF = re.compile(r"/me|@", _RE_FLAGS) @@ -299,12 +309,18 @@ regex_tuple (tuple): A tuple (ordered_permutation_regex, obj, key/alias) + """ - return ( - re.compile(ordered_permutation_regex(" ".join([obj.key] + obj.aliases.all())), _RE_FLAGS), - obj, - obj.key, - ) + global _REGEX_TUPLE_CACHE + permutation_string = " ".join([obj.key] + obj.aliases.all()) + + if permutation_string not in _REGEX_TUPLE_CACHE: + _REGEX_TUPLE_CACHE[permutation_string] = ( + re.compile(ordered_permutation_regex(permutation_string), _RE_FLAGS), + obj, + obj.key, + ) + return _REGEX_TUPLE_CACHE[permutation_string]
    [docs]def parse_language(speaker, emote): @@ -326,7 +342,8 @@ the markers and a tuple (langname, saytext), where langname can be None. Raises: - rplanguage.LanguageError: If an invalid language was specified. + evennia.contrib.rpsystem.LanguageError: If an invalid language was + specified. Notes: Note that no errors are raised if the wrong language identifier @@ -365,7 +382,7 @@ return emote, mapping
    -
    [docs]def parse_sdescs_and_recogs(sender, candidates, string, search_mode=False): +
    [docs]def parse_sdescs_and_recogs(sender, candidates, string, search_mode=False, case_sensitive=True): """ Read a raw emote and parse it into an intermediary format for distributing to all observers. @@ -378,6 +395,11 @@ string (str): The string (like an emote) we want to analyze for keywords. search_mode (bool, optional): If `True`, the "emote" is a query string we want to analyze. If so, the return value is changed. + case_sensitive (bool, optional); If set, the case of /refs matter, so that + /tall will come out as 'tall man' while /Tall will become 'Tall man'. + This allows for more grammatically correct emotes at the cost of being + a little more to learn for players. If disabled, the original sdesc case + is always kept and are inserted as-is. Returns: (emote, mapping) (tuple): If `search_mode` is `False` @@ -484,10 +506,32 @@ elif nmatches == 0: errors.append(_EMOTE_NOMATCH_ERROR.format(ref=marker_match.group())) elif nmatches == 1: - key = "#%i" % obj.id - string = string[:istart0] + "{%s}" % key + string[istart + maxscore :] + # a unique match - parse into intermediary representation + case = '~' # retain original case of sdesc + if case_sensitive: + # case sensitive mode + # internal flags for the case used for the original /query + # - t for titled input (like /Name) + # - ^ for all upercase input (likle /NAME) + # - v for lower-case input (like /name) + # - ~ for mixed case input (like /nAmE) + matchtext = marker_match.group() + if not _RE_SELF_REF.match(matchtext): + # self-refs are kept as-is, others are parsed by case + matchtext = marker_match.group().lstrip(_PREFIX) + if matchtext.istitle(): + case = 't' + elif matchtext.isupper(): + case = '^' + elif matchtext.islower(): + case = 'v' + + key = "#%i%s" % (obj.id, case) + string = string[:istart0] + "{%s}" % key + string[istart + maxscore:] mapping[key] = obj + else: + # multimatch error refname = marker_match.group() reflist = [ "%s%s%s (%s%s)" @@ -539,30 +583,42 @@ - None: No auto-add at anonymous emote - 'last': Add sender to the end of emote as [sender] - 'first': Prepend sender to start of emote. + Kwargs: + case_sensitive (bool): Defaults to True, but can be unset + here. When enabled, /tall will lead to a lowercase + 'tall man' while /Tall will lead to 'Tall man' and + /TALL will lead to 'TALL MAN'. If disabled, the sdesc's + case will always be used, regardless of the /ref case used. + any: Other kwargs will be passed on into the receiver's process_sdesc and + process_recog methods, and can thus be used to customize those. """ + case_sensitive = kwargs.pop("case_sensitive", True) try: - emote, obj_mapping = parse_sdescs_and_recogs(sender, receivers, emote) + emote, obj_mapping = parse_sdescs_and_recogs(sender, receivers, emote, + case_sensitive=case_sensitive) emote, language_mapping = parse_language(sender, emote) except (EmoteError, LanguageError) as err: # handle all error messages, don't hide actual coding errors sender.msg(str(err)) return + + skey = "#%i" % sender.id + # we escape the object mappings since we'll do the language ones first # (the text could have nested object mappings). emote = _RE_REF.sub(r"{{#\1}}", emote) # if anonymous_add is passed as a kwarg, collect and remove it from kwargs if 'anonymous_add' in kwargs: anonymous_add = kwargs.pop('anonymous_add') - if anonymous_add and not "#%i" % sender.id in obj_mapping: + if anonymous_add and not any(1 for tag in obj_mapping if tag.startswith(skey)): # no self-reference in the emote - add to the end - key = "#%i" % sender.id - obj_mapping[key] = sender + obj_mapping[skey] = sender if anonymous_add == "first": possessive = "" if emote.startswith("'") else " " - emote = "%s%s%s" % ("{{%s}}" % key, possessive, emote) + emote = "%s%s%s" % ("{{%s}}" % skey, possessive, emote) else: - emote = "%s [%s]" % (emote, "{{%s}}" % key) + emote = "%s [%s]" % (emote, "{{%s}}" % skey) # broadcast emote to everyone for receiver in receivers: @@ -576,7 +632,7 @@ # color says receiver_lang_mapping[key] = process_language(saytext, sender, langname) # map the language {##num} markers. This will convert the escaped sdesc markers on - # the form {{#num}} to {#num} markers ready to sdescmat in the next step. + # the form {{#num}} to {#num} markers ready to sdesc-map in the next step. sendemote = emote.format(**receiver_lang_mapping) # handle sdesc mappings. we make a temporary copy that we can modify @@ -593,22 +649,27 @@ try: recog_get = receiver.recog.get receiver_sdesc_mapping = dict( - (ref, process_recog(recog_get(obj), obj)) for ref, obj in obj_mapping.items() + (ref, process_recog(recog_get(obj), obj, ref=ref, **kwargs)) + for ref, obj in obj_mapping.items() ) except AttributeError: receiver_sdesc_mapping = dict( ( ref, - process_sdesc(obj.sdesc.get(), obj) + process_sdesc(obj.sdesc.get(), obj, ref=ref) if hasattr(obj, "sdesc") - else process_sdesc(obj.key, obj), + else process_sdesc(obj.key, obj, ref=ref), ) for ref, obj in obj_mapping.items() ) # make sure receiver always sees their real name - rkey = "#%i" % receiver.id - if rkey in receiver_sdesc_mapping: - receiver_sdesc_mapping[rkey] = process_sdesc(receiver.key, receiver) + rkey_start = "#%i" % receiver.id + rkey_keep_case = rkey_start + '~' # signifies keeping the case + for rkey in (key for key in receiver_sdesc_mapping if key.startswith(rkey_start)): + # we could have #%i^, #%it etc depending on input case - we want the + # self-reference to retain case. + receiver_sdesc_mapping[rkey] = process_sdesc( + receiver.key, receiver, ref=rkey_keep_case, **kwargs) # do the template replacement of the sdesc/recog {#num} markers receiver.msg(sendemote.format(**receiver_sdesc_mapping), from_obj=sender, **kwargs)
    @@ -619,7 +680,7 @@ # ------------------------------------------------------------ -
    [docs]class SdescHandler(object): +
    [docs]class SdescHandler: """ This Handler wraps all operations with sdescs. We need to use this since we do a lot preparations on @@ -722,7 +783,7 @@ return self.sdesc_regex, self.obj, self.sdesc
    -
    [docs]class RecogHandler(object): +
    [docs]class RecogHandler: """ This handler manages the recognition mapping of an Object. @@ -914,6 +975,7 @@ key = "emote" aliases = [":"] locks = "cmd:all()" + arg_regex = ""
    [docs] def func(self): "Perform the emote." @@ -941,6 +1003,7 @@ key = "say" aliases = ['"', "'"] locks = "cmd:all()" + arg_regex = ""
    [docs] def func(self): "Run the say command" @@ -952,7 +1015,7 @@ return # calling the speech modifying hook - speech = caller.at_before_say(self.args) + speech = caller.at_pre_say(self.args) # preparing the speech with sdesc/speech parsing. targets = self.caller.location.contents send_emote(self.caller, targets, speech, anonymous_add=None)
    @@ -1592,11 +1655,11 @@ self.db._recog_obj2regex = {} self.db._recog_obj2recog = {} - self.cmdset.add(RPSystemCmdSet, permanent=True) + self.cmdset.add(RPSystemCmdSet, persistent=True) # initializing sdesc self.sdesc.add("A normal person")
    -
    [docs] def at_before_say(self, message, **kwargs): +
    [docs] def at_pre_say(self, message, **kwargs): """ Called before the object says or whispers anything, return modified message. @@ -1622,11 +1685,33 @@ you are viewing yourself (and sdesc is your key). This is not used by default. + Kwargs: + ref (str): The reference marker found in string to replace. + This is on the form #{num}{case}, like '#12^', where + the number is a processing location in the string and the + case symbol indicates the case of the original tag input + - `t` - input was Titled, like /Tall + - `^` - input was all uppercase, like /TALL + - `v` - input was all lowercase, like /tall + - `~` - input case should be kept, or was mixed-case + Returns: sdesc (str): The processed sdesc ready for display. """ + if not sdesc: + return "" + + ref = kwargs.get('ref', '~') # ~ to keep sdesc unchanged + if 't' in ref: + # we only want to capitalize the first letter if there are many words + sdesc = sdesc.lower() + sdesc = sdesc[0].upper() + sdesc[1:] if len(sdesc) > 1 else sdesc.upper() + elif '^' in ref: + sdesc = sdesc.upper() + elif 'v' in ref: + sdesc = sdesc.lower() return "|b%s|n" % sdesc
    [docs] def process_recog(self, recog, obj, **kwargs): @@ -1638,12 +1723,14 @@ translated from the original sdesc at this point. obj (Object): The object the recog:ed string belongs to. This is not used by default. + Kwargs: + ref (str): See process_sdesc. Returns: recog (str): The modified recog string. """ - return self.process_sdesc(recog, obj)
    + return self.process_sdesc(recog, obj, **kwargs)
    [docs] def process_language(self, text, speaker, language, **kwargs): """ @@ -1692,11 +1779,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 c5df1764b5..ecceb4ea1e 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,11 +126,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 4bb53aa735..d24024cc21 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,11 +315,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 08fccb1ebb..2d288be763 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,11 +180,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/contrib/simpledoor.html b/docs/0.9.5/_modules/evennia/contrib/simpledoor.html index 4fca5688a4..5044fedced 100644 --- a/docs/0.9.5/_modules/evennia/contrib/simpledoor.html +++ b/docs/0.9.5/_modules/evennia/contrib/simpledoor.html @@ -238,11 +238,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 c39142433f..42d066b812 100644 --- a/docs/0.9.5/_modules/evennia/contrib/slow_exit.html +++ b/docs/0.9.5/_modules/evennia/contrib/slow_exit.html @@ -102,7 +102,7 @@ "This callback will be called by utils.delay after move_delay seconds." source_location = traversing_object.location if traversing_object.move_to(target_location): - self.at_after_traverse(traversing_object, source_location) + self.at_post_traverse(traversing_object, source_location) else: if self.db.err_traverse: # if exit has a better error message, let's use it. @@ -210,11 +210,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 a3a5c83872..541d8b2400 100644 --- a/docs/0.9.5/_modules/evennia/contrib/talking_npc.html +++ b/docs/0.9.5/_modules/evennia/contrib/talking_npc.html @@ -173,7 +173,7 @@ "This is called when object is first created." self.db.desc = "This is a talkative NPC." # assign the talk command to npc - self.cmdset.add_default(TalkingCmdSet, permanent=True) + self.cmdset.add_default(TalkingCmdSet, persistent=True)
    @@ -199,11 +199,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 4730ff0ca5..0cc0c6368f 100644 --- a/docs/0.9.5/_modules/evennia/contrib/tree_select.html +++ b/docs/0.9.5/_modules/evennia/contrib/tree_select.html @@ -643,11 +643,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 5d45f3725b..de1e4ae623 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 @@ -223,10 +223,10 @@
    [docs]def at_defeat(defeated): """ Announces the defeat of a fighter in combat. - + Args: defeated (obj): Fighter that's been defeated. - + Notes: All this does is announce a defeat message by default, but if you want anything else to happen to defeated fighters (like putting them @@ -365,7 +365,7 @@ can be changed at creation and factor into combat calculations. """
    -
    [docs] def at_before_move(self, destination): +
    [docs] def at_pre_move(self, destination): """ Called just before starting to move this object to destination. @@ -525,6 +525,7 @@ if disengage_check: # All characters have disengaged self.obj.msg_contents("All fighters have disengaged! Combat is over!") self.stop() # Stop this script and end combat. + self.delete() return # Check to see if only one character is left standing. If so, end combat. @@ -540,6 +541,7 @@ LastStanding = fighter # Pick the one fighter left with HP remaining self.obj.msg_contents("Only %s remains! Combat is over!" % LastStanding) self.stop() # Stop this script and end combat. + self.delete() return # Cycle to the next turn. @@ -846,11 +848,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 163f773ab8..70a383b292 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 @@ -631,7 +631,7 @@ -4 ) # Amount to modify defense value (pos = harder to hit, neg = easier) -
    [docs] def at_before_drop(self, dropper): +
    [docs] def at_pre_drop(self, dropper): """ Can't drop in combat. """ @@ -648,7 +648,7 @@ dropper.db.worn_armor = None dropper.location.msg_contents("%s removes %s." % (dropper, self))
    -
    [docs] def at_before_give(self, giver, getter): +
    [docs] def at_pre_give(self, giver, getter): """ Can't give away in combat. """ @@ -692,7 +692,7 @@ can be changed at creation and factor into combat calculations. """
    -
    [docs] def at_before_move(self, destination): +
    [docs] def at_pre_move(self, destination): """ Called just before starting to move this object to destination. @@ -1204,11 +1204,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 56fdcb1073..f74bc07bbf 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 @@ -574,7 +574,7 @@ can be changed at creation and factor into combat calculations. """
    -
    [docs] def at_before_move(self, destination): +
    [docs] def at_pre_move(self, destination): """ Called just before starting to move this object to destination. @@ -1523,11 +1523,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 5698f5baa8..33f865b66f 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 @@ -394,7 +394,7 @@ self.db.max_mp = 20 # Set maximum MP to 20 self.db.mp = self.db.max_mp # Set current MP to maximum
    -
    [docs] def at_before_move(self, destination): +
    [docs] def at_pre_move(self, destination): """ Called just before starting to move this object to destination. @@ -1445,11 +1445,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 9c78bebaac..6d95f15e7c 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 @@ -685,7 +685,6 @@ 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. @@ -843,7 +842,7 @@ can be changed at creation and factor into combat calculations. """ -
    [docs] def at_before_move(self, destination): +
    [docs] def at_pre_move(self, destination): """ Called just before starting to move this object to destination. @@ -877,7 +876,7 @@ objects on your own turn. """ -
    [docs] def at_before_drop(self, dropper): +
    [docs] def at_pre_drop(self, dropper): """ Called by the default `drop` command before this object has been dropped. @@ -913,7 +912,7 @@ Notes: This hook cannot stop the drop from happening. Use - permissions or the at_before_drop() hook for that. + permissions or the at_pre_drop() hook for that. """ # If dropper is currently in combat @@ -922,7 +921,7 @@ self.db.combat_range = {} dropper.location.db.combat_turnhandler.join_rangefield(self, anchor_obj=dropper)
    -
    [docs] def at_before_get(self, getter): +
    [docs] def at_pre_get(self, getter): """ Called by the default `get` command before this object has been picked up. @@ -961,7 +960,7 @@ Notes: This hook cannot stop the pickup from happening. Use - permissions or the at_before_get() hook for that. + permissions or the at_pre_get() hook for that. """ # If gotten, erase range values @@ -976,7 +975,7 @@ if is_in_combat(getter): spend_action(getter, 1, action_name="get") # Use up one action.
    -
    [docs] def at_before_give(self, giver, getter): +
    [docs] def at_pre_give(self, giver, getter): """ Called by the default `give` command before this object has been given. @@ -1020,7 +1019,7 @@ Notes: This hook cannot stop the give from happening. Use - permissions or the at_before_give() hook for that. + permissions or the at_pre_give() hook for that. """ # Spend an action if in combat @@ -1502,11 +1501,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 030d7d34f3..ad3cb190c0 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,11 +132,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 deleted file mode 100644 index 83191f700b..0000000000 --- a/docs/0.9.5/_modules/evennia/contrib/tutorial_examples/cmdset_red_button.html +++ /dev/null @@ -1,441 +0,0 @@ - - - - - - - - evennia.contrib.tutorial_examples.cmdset_red_button — Evennia 0.9.5 documentation - - - - - - - - - - - - - - - -
    -
    -
    -
    - -

    Source code for evennia.contrib.tutorial_examples.cmdset_red_button

    -"""
    -This defines the cmdset for the red_button. Here we have defined
    -the commands and the cmdset in the same module, but if you
    -have many different commands to merge it is often better
    -to define the cmdset separately, picking and choosing from
    -among the available commands as to what should be included in the
    -cmdset - this way you can often re-use the commands too.
    -"""
    -
    -import random
    -from evennia import Command, CmdSet
    -
    -# Some simple commands for the red button
    -
    -# ------------------------------------------------------------
    -# Commands defined on the red button
    -# ------------------------------------------------------------
    -
    -
    -
    [docs]class CmdNudge(Command): - """ - Try to nudge the button's lid - - Usage: - nudge lid - - This command will have you try to - push the lid of the button away. - """ - - key = "nudge lid" # two-word command name! - aliases = ["nudge"] - locks = "cmd:all()" - -
    [docs] def func(self): - """ - nudge the lid. Random chance of success to open it. - """ - rand = random.random() - if rand < 0.5: - self.caller.msg("You nudge at the lid. It seems stuck.") - elif rand < 0.7: - self.caller.msg("You move the lid back and forth. It won't budge.") - else: - self.caller.msg("You manage to get a nail under the lid.") - self.caller.execute_cmd("open lid")
    - - -
    [docs]class CmdPush(Command): - """ - Push the red button - - Usage: - push button - - """ - - key = "push button" - aliases = ["push", "press button", "press"] - locks = "cmd:all()" - -
    [docs] def func(self): - """ - Note that we choose to implement this with checking for - if the lid is open/closed. This is because this command - is likely to be tried regardless of the state of the lid. - - An alternative would be to make two versions of this command - and tuck them into the cmdset linked to the Open and Closed - lid-state respectively. - - """ - - if self.obj.db.lid_open: - string = "You reach out to press the big red button ..." - string += "\n\nA BOOM! A bright light blinds you!" - string += "\nThe world goes dark ..." - self.caller.msg(string) - self.caller.location.msg_contents( - "%s presses the button. BOOM! %s is blinded by a flash!" - % (self.caller.name, self.caller.name), - exclude=self.caller, - ) - # the button's method will handle all setup of scripts etc. - self.obj.press_button(self.caller) - else: - string = "You cannot push the button - there is a glass lid covering it." - self.caller.msg(string)
    - - -
    [docs]class CmdSmashGlass(Command): - """ - smash glass - - Usage: - smash glass - - Try to smash the glass of the button. - """ - - key = "smash glass" - aliases = ["smash lid", "break lid", "smash"] - locks = "cmd:all()" - -
    [docs] def func(self): - """ - The lid won't open, but there is a small chance - of causing the lamp to break. - """ - rand = random.random() - - if rand < 0.2: - string = "You smash your hand against the glass" - string += " with all your might. The lid won't budge" - string += " but you cause quite the tremor through the button's mount." - string += "\nIt looks like the button's lamp stopped working for the time being." - self.obj.lamp_works = False - elif rand < 0.6: - string = "You hit the lid hard. It doesn't move an inch." - else: - string = "You place a well-aimed fist against the glass of the lid." - string += " Unfortunately all you get is a pain in your hand. Maybe" - string += " you should just try to open the lid instead?" - self.caller.msg(string) - self.caller.location.msg_contents( - "%s tries to smash the glass of the button." % (self.caller.name), exclude=self.caller - )
    - - -
    [docs]class CmdOpenLid(Command): - """ - open lid - - Usage: - open lid - - """ - - key = "open lid" - aliases = ["open button", "open"] - locks = "cmd:all()" - -
    [docs] def func(self): - "simply call the right function." - - if self.obj.db.lid_locked: - self.caller.msg("This lid seems locked in place for the moment.") - return - - string = "\nA ticking sound is heard, like a winding mechanism. Seems " - string += "the lid will soon close again." - self.caller.msg(string) - self.caller.location.msg_contents( - "%s opens the lid of the button." % (self.caller.name), exclude=self.caller - ) - # add the relevant cmdsets to button - self.obj.cmdset.add(LidClosedCmdSet) - # call object method - self.obj.open_lid()
    - - -
    [docs]class CmdCloseLid(Command): - """ - close the lid - - Usage: - close lid - - Closes the lid of the red button. - """ - - key = "close lid" - aliases = ["close"] - locks = "cmd:all()" - -
    [docs] def func(self): - "Close the lid" - - self.obj.close_lid() - - # this will clean out scripts dependent on lid being open. - self.caller.msg("You close the button's lid. It clicks back into place.") - self.caller.location.msg_contents( - "%s closes the button's lid." % (self.caller.name), exclude=self.caller - )
    - - -
    [docs]class CmdBlindLook(Command): - """ - Looking around in darkness - - Usage: - look <obj> - - ... not that there's much to see in the dark. - - """ - - key = "look" - aliases = ["l", "get", "examine", "ex", "feel", "listen"] - locks = "cmd:all()" - -
    [docs] def func(self): - "This replaces all the senses when blinded." - - # we decide what to reply based on which command was - # actually tried - - if self.cmdstring == "get": - string = "You fumble around blindly without finding anything." - elif self.cmdstring == "examine": - string = "You try to examine your surroundings, but can't see a thing." - elif self.cmdstring == "listen": - string = "You are deafened by the boom." - elif self.cmdstring == "feel": - string = "You fumble around, hands outstretched. You bump your knee." - else: - # trying to look - string = "You are temporarily blinded by the flash. " - string += "Until it wears off, all you can do is feel around blindly." - self.caller.msg(string) - self.caller.location.msg_contents( - "%s stumbles around, blinded." % (self.caller.name), exclude=self.caller - )
    - - -
    [docs]class CmdBlindHelp(Command): - """ - Help function while in the blinded state - - Usage: - help - - """ - - key = "help" - aliases = "h" - locks = "cmd:all()" - -
    [docs] def func(self): - "Give a message." - self.caller.msg("You are beyond help ... until you can see again.")
    - - -# --------------------------------------------------------------- -# Command sets for the red button -# --------------------------------------------------------------- - -# We next tuck these commands into their respective command sets. -# (note that we are overdoing the cdmset separation a bit here -# to show how it works). - - -
    [docs]class DefaultCmdSet(CmdSet): - """ - The default cmdset always sits - on the button object and whereas other - command sets may be added/merge onto it - and hide it, removing them will always - bring it back. It's added to the object - using obj.cmdset.add_default(). - """ - - key = "RedButtonDefault" - mergetype = "Union" # this is default, we don't really need to put it here. - -
    [docs] def at_cmdset_creation(self): - "Init the cmdset" - self.add(CmdPush())
    - - -
    [docs]class LidClosedCmdSet(CmdSet): - """ - A simple cmdset tied to the redbutton object. - - It contains the commands that launches the other - command sets, making the red button a self-contained - item (i.e. you don't have to manually add any - scripts etc to it when creating it). - """ - - key = "LidClosedCmdSet" - # default Union is used *except* if we are adding to a - # cmdset named LidOpenCmdSet - this one we replace - # completely. - key_mergetype = {"LidOpenCmdSet": "Replace"} - -
    [docs] def at_cmdset_creation(self): - "Populates the cmdset when it is instantiated." - self.add(CmdNudge()) - self.add(CmdSmashGlass()) - self.add(CmdOpenLid())
    - - -
    [docs]class LidOpenCmdSet(CmdSet): - """ - This is the opposite of the Closed cmdset. - """ - - key = "LidOpenCmdSet" - # default Union is used *except* if we are adding to a - # cmdset named LidClosedCmdSet - this one we replace - # completely. - key_mergetype = {"LidClosedCmdSet": "Replace"} - -
    [docs] def at_cmdset_creation(self): - "setup the cmdset (just one command)" - self.add(CmdCloseLid())
    - - -
    [docs]class BlindCmdSet(CmdSet): - """ - This is the cmdset added to the *account* when - the button is pushed. - """ - - key = "BlindCmdSet" - # we want it to completely replace all normal commands - # until the timed script removes it again. - mergetype = "Replace" - # we want to stop the account from walking around - # in this blinded state, so we hide all exits too. - # (channel commands will still work). - no_exits = True # keep account in the same room - no_objs = True # don't allow object commands - -
    [docs] def at_cmdset_creation(self): - "Setup the blind cmdset" - from evennia.commands.default.general import CmdSay - from evennia.commands.default.general import CmdPose - - self.add(CmdSay()) - self.add(CmdPose()) - self.add(CmdBlindLook()) - self.add(CmdBlindHelp())
    -
    - -
    -
    -
    -
    - -
    -
    - - - - \ No newline at end of file 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 6f7c658d08..9ff0b38bc9 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 @@ -49,14 +49,381 @@ Create this button with - @create/drop examples.red_button.RedButton + create/drop red_button.RedButton Note that you must drop the button before you can see its messages! + +## Technical + +The button's functionality is controlled by CmdSets that gets added and removed +depending on the 'state' the button is in. + +- Lid-closed state: In this state the button is covered by a glass cover and trying + to 'push' it will fail. You can 'nudge', 'smash' or 'open' the lid. +- Lid-open state: In this state the lid is open but will close again after a certain + time. Using 'push' now will press the button and trigger the Blind-state. +- Blind-state: In this mode you are blinded by a bright flash. This will affect your + normal commands like 'look' and help until the blindness wears off after a certain + time. + +Timers are handled by persistent delays on the button. These are examples of +`evennia.utils.utils.delay` calls that wait a certain time before calling a method - +such as when closing the lid and un-blinding a character. + """ import random from evennia import DefaultObject -from evennia.contrib.tutorial_examples import red_button_scripts as scriptexamples -from evennia.contrib.tutorial_examples import cmdset_red_button as cmdsetexamples +from evennia import Command, CmdSet +from evennia.utils.utils import delay, repeat, interactive + + +# Commands on the button (not all awailable at the same time) + + +# Commands for the state when the lid covering the button is closed. + +
    [docs]class CmdPushLidClosed(Command): + """ + Push the red button (lid closed) + + Usage: + push button + + """ + + key = "push button" + aliases = ["push", "press button", "press"] + locks = "cmd:all()" + +
    [docs] def func(self): + """ + This is the version of push used when the lid is closed. + + An alternative would be to make a 'push' command in a default cmdset + that is always available on the button and then use if-statements to + check if the lid is open or closed. + + """ + self.caller.msg("You cannot push the button = there is a glass lid covering it.")
    + + +
    [docs]class CmdNudge(Command): + """ + Try to nudge the button's lid. + + Usage: + nudge lid + + This command will have you try to push the lid of the button away. + + """ + + key = "nudge lid" # two-word command name! + aliases = ["nudge"] + locks = "cmd:all()" + +
    [docs] def func(self): + """ + Nudge the lid. Random chance of success to open it. + + """ + rand = random.random() + if rand < 0.5: + self.caller.msg("You nudge at the lid. It seems stuck.") + elif rand < 0.7: + self.caller.msg("You move the lid back and forth. It won't budge.") + else: + self.caller.msg("You manage to get a nail under the lid.") + # self.obj is the button object + self.obj.to_open_state()
    + + +
    [docs]class CmdSmashGlass(Command): + """ + Smash the protective glass. + + Usage: + smash glass + + Try to smash the glass of the button. + + """ + + key = "smash glass" + aliases = ["smash lid", "break lid", "smash"] + locks = "cmd:all()" + +
    [docs] def func(self): + """ + The lid won't open, but there is a small chance of causing the lamp to + break. + + """ + rand = random.random() + self.caller.location.msg_contents( + f"{self.caller.name} tries to smash the glass of the button.", + exclude=self.caller) + + if rand < 0.2: + string = ("You smash your hand against the glass" + " with all your might. The lid won't budge" + " but you cause quite the tremor through the button's mount." + "\nIt looks like the button's lamp stopped working for the time being, " + "but the lid is still as closed as ever.") + # self.obj is the button itself + self.obj.break_lamp() + elif rand < 0.6: + string = "You hit the lid hard. It doesn't move an inch." + else: + string = ("You place a well-aimed fist against the glass of the lid." + " Unfortunately all you get is a pain in your hand. Maybe" + " you should just try to just ... open the lid instead?") + self.caller.msg(string)
    + + +
    [docs]class CmdOpenLid(Command): + """ + open lid + + Usage: + open lid + + """ + + key = "open lid" + aliases = ["open button"] + locks = "cmd:all()" + +
    [docs] def func(self): + "simply call the right function." + + if self.obj.db.lid_locked: + self.caller.msg("This lid seems locked in place for the moment.") + return + + string = "\nA ticking sound is heard, like a winding mechanism. Seems " + string += "the lid will soon close again." + self.caller.msg(string) + self.caller.location.msg_contents( + f"{self.caller.name} opens the lid of the button.", + exclude=self.caller) + self.obj.to_open_state()
    + + +
    [docs]class LidClosedCmdSet(CmdSet): + """ + A simple cmdset tied to the redbutton object. + + It contains the commands that launches the other + command sets, making the red button a self-contained + item (i.e. you don't have to manually add any + scripts etc to it when creating it). + + Note that this is given with a `key_mergetype` set. This + is set up so that the cmdset with merge with Union merge type + *except* if the other cmdset to merge with is LidOpenCmdSet, + in which case it will Replace that. So these two cmdsets will + be mutually exclusive. + + """ + + key = "LidClosedCmdSet" + +
    [docs] def at_cmdset_creation(self): + "Populates the cmdset when it is instantiated." + self.add(CmdPushLidClosed()) + self.add(CmdNudge()) + self.add(CmdSmashGlass()) + self.add(CmdOpenLid())
    + + +# Commands for the state when the button's protective cover is open - now the +# push command will work. You can also close the lid again. + +
    [docs]class CmdPushLidOpen(Command): + """ + Push the red button + + Usage: + push button + + """ + + key = "push button" + aliases = ["push", "press button", "press"] + locks = "cmd:all()" + + @interactive + def func(self): + """ + This version of push will immediately trigger the next button state. + + The use of the @interactive decorator allows for using `yield` to add + simple pauses in how quickly a message is returned to the user. This + kind of pause will not survive a server reload. + + """ + # pause a little between each message. + self.caller.msg("You reach out to press the big red button ...") + yield(2) # pause 2s before next message + self.caller.msg("\n\n|wBOOOOM! A bright light blinds you!|n") + yield(1) # pause 1s before next message + self.caller.msg("\n\n|xThe world goes dark ...|n") + + name = self.caller.name + self.caller.location.msg_contents( + f"{name} presses the button. BOOM! {name} is blinded by a flash!", + exclude=self.caller) + self.obj.blind_target(self.caller)
    + + +
    [docs]class CmdCloseLid(Command): + """ + Close the lid + + Usage: + close lid + + Closes the lid of the red button. + """ + + key = "close lid" + aliases = ["close"] + locks = "cmd:all()" + +
    [docs] def func(self): + "Close the lid" + + self.obj.to_closed_state() + + # this will clean out scripts dependent on lid being open. + self.caller.msg("You close the button's lid. It clicks back into place.") + self.caller.location.msg_contents( + f"{self.caller.name} closes the button's lid.", + exclude=self.caller)
    + + +
    [docs]class LidOpenCmdSet(CmdSet): + """ + This is the opposite of the Closed cmdset. + + Note that this is given with a `key_mergetype` set. This + is set up so that the cmdset with merge with Union merge type + *except* if the other cmdset to merge with is LidClosedCmdSet, + in which case it will Replace that. So these two cmdsets will + be mutually exclusive. + + """ + + key = "LidOpenCmdSet" + +
    [docs] def at_cmdset_creation(self): + """Setup the cmdset""" + self.add(CmdPushLidOpen()) + self.add(CmdCloseLid())
    + + +# Commands for when the button has been pushed and the player is blinded. This +# replaces commands on the player making them 'blind' for a while. + +
    [docs]class CmdBlindLook(Command): + """ + Looking around in darkness + + Usage: + look <obj> + + ... not that there's much to see in the dark. + + """ + + key = "look" + aliases = ["l", "get", "examine", "ex", "feel", "listen"] + locks = "cmd:all()" + +
    [docs] def func(self): + "This replaces all the senses when blinded." + + # we decide what to reply based on which command was + # actually tried + + if self.cmdstring == "get": + string = "You fumble around blindly without finding anything." + elif self.cmdstring == "examine": + string = "You try to examine your surroundings, but can't see a thing." + elif self.cmdstring == "listen": + string = "You are deafened by the boom." + elif self.cmdstring == "feel": + string = "You fumble around, hands outstretched. You bump your knee." + else: + # trying to look + string = ("You are temporarily blinded by the flash. " + "Until it wears off, all you can do is feel around blindly.") + self.caller.msg(string) + self.caller.location.msg_contents( + f"{self.caller.name} stumbles around, blinded.", + exclude=self.caller)
    + + +
    [docs]class CmdBlindHelp(Command): + """ + Help function while in the blinded state + + Usage: + help + + """ + + key = "help" + aliases = "h" + locks = "cmd:all()" + +
    [docs] def func(self): + """ + Just give a message while blinded. We could have added this to the + CmdBlindLook command too if we wanted to keep things more compact. + + """ + self.caller.msg("You are beyond help ... until you can see again.")
    + + +
    [docs]class BlindCmdSet(CmdSet): + """ + This is the cmdset added to the *account* when + the button is pushed. + + Since this has mergetype Replace it will completely remove the commands of + all other cmdsets while active. To allow some limited interaction + (pose/say) we import those default commands and add them too. + + We also disable all exit-commands generated by exits and + object-interactions while blinded by setting `no_exits` and `no_objs` flags + on the cmdset. This is to avoid the player walking off or interfering with + other objects while blinded. Account-level commands however (channel messaging + etc) will not be affected by the blinding. + + """ + + key = "BlindCmdSet" + # we want it to completely replace all normal commands + # until the timed script removes it again. + mergetype = "Replace" + # we want to stop the player from walking around + # in this blinded state, so we hide all exits too. + # (channel commands will still work). + no_exits = True # keep player in the same room + no_objs = True # don't allow object commands + +
    [docs] def at_cmdset_creation(self): + "Setup the blind cmdset" + from evennia.commands.default.general import CmdSay + from evennia.commands.default.general import CmdPose + + self.add(CmdSay()) + self.add(CmdPose()) + self.add(CmdBlindLook()) + self.add(CmdBlindHelp())
    + # # Definition of the object itself @@ -65,149 +432,192 @@
    [docs]class RedButton(DefaultObject): """ - This class describes an evil red button. It will use the script - definition in contrib/examples/red_button_scripts to blink at regular - intervals. It also uses a series of script and commands to handle - pushing the button and causing effects when doing so. + This class describes an evil red button. It will blink invitingly and + temporarily blind whomever presses it. - The following attributes can be set on the button: - desc_lid_open - description when lid is open - desc_lid_closed - description when lid is closed - desc_lamp_broken - description when lamp is broken + The button can take a few optional attributes controlling how things will + be displayed in its various states. This is a useful way to give builders + the option to customize a complex object from in-game. Actual return messages + to event-actions are (in this example) left with each command, but one could + also imagine having those handled via Attributes as well, if one wanted a + completely in-game customizable button without needing to tweak command + classes. + + Attributes: + - `desc_closed_lid`: This is the description to show of the button + when the lid is closed. + - `desc_open_lid`": Shown when the lid is open + - `auto_close_msg`: Message to show when lid auto-closes + - `desc_add_lamp_broken`: Extra desc-line added after normal desc when lamp + is broken. + - blink_msg: A list of strings to randomly choose from when the lamp + blinks. + + Notes: + The button starts with lid closed. To set the initial description, + you can either set desc after creating it or pass a `desc` attribute + when creating it, such as + `button = create_object(RedButton, ..., attributes=[('desc', 'my desc')])`. """ + # these are the pre-set descriptions. Setting attributes will override + # these on the fly. + + desc_closed_lid = ("This is a large red button, inviting yet evil-looking. " + "A closed glass lid protects it.") + desc_open_lid = ("This is a large red button, inviting yet evil-looking. " + "Its glass cover is open and the button exposed.") + auto_close_msg = "The button's glass lid silently slides back in place." + lamp_breaks_msg = "The lamp flickers, the button going dark." + desc_add_lamp_broken = "\nThe big red button has stopped blinking for the time being." + # note that this is a list. A random message will display each time + blink_msgs = ["The red button flashes briefly.", + "The red button blinks invitingly.", + "The red button flashes. You know you wanna push it!"]
    [docs] def at_object_creation(self): """ - This function is called when object is created. Use this - instead of e.g. __init__. - """ - # store desc (default, you can change this at creation time) - desc = "This is a large red button, inviting yet evil-looking. " - desc += "A closed glass lid protects it." - self.db.desc = desc + This function is called (once) when object is created. - # We have to define all the variables the scripts - # are checking/using *before* adding the scripts or - # they might be deactivated before even starting! - self.db.lid_open = False + """ self.db.lamp_works = True - self.db.lid_locked = False - self.cmdset.add_default(cmdsetexamples.DefaultCmdSet, permanent=True) + # start closed + self.to_closed_state() - # since the cmdsets relevant to the button are added 'on the fly', - # we need to setup custom scripts to do this for us (also, these scripts - # check so they are valid (i.e. the lid is actually still closed)). - # The AddClosedCmdSet script makes sure to add the Closed-cmdset. - self.scripts.add(scriptexamples.ClosedLidState) - # the script EventBlinkButton makes the button blink regularly. - self.scripts.add(scriptexamples.BlinkButtonEvent)
    + # start blinking every 35s. + repeat(35, self._do_blink, persistent=True)
    - # state-changing methods - -
    [docs] def open_lid(self): + def _do_blink(self): """ - Opens the glass lid and start the timer so it will soon close - again. + Have the button blink invitingly unless it's broken. """ + if self.location and self.db.lamp_works: + possible_messages = self.db.blink_msgs or self.blink_msgs + self.location.msg_contents(random.choice(possible_messages)) - if self.db.lid_open: - return - desc = self.db.desc_lid_open - if not desc: - desc = "This is a large red button, inviting yet evil-looking. " - desc += "Its glass cover is open and the button exposed." - self.db.desc = desc - self.db.lid_open = True - - # with the lid open, we validate scripts; this will clean out - # scripts that depend on the lid to be closed. - self.scripts.validate() - # now add new scripts that define the open-lid state - self.scripts.add(scriptexamples.OpenLidState) - # we also add a scripted event that will close the lid after a while. - # (this one cleans itself after being called once) - self.scripts.add(scriptexamples.CloseLidEvent)
    - -
    [docs] def close_lid(self): + def _set_desc(self, attrname=None): """ - Close the glass lid. This validates all scripts on the button, - which means that scripts only being valid when the lid is open - will go away automatically. - - """ - - if not self.db.lid_open: - return - desc = self.db.desc_lid_closed - if not desc: - desc = "This is a large red button, inviting yet evil-looking. " - desc += "Its glass cover is closed, protecting it." - self.db.desc = desc - self.db.lid_open = False - - # clean out scripts depending on lid to be open - self.scripts.validate() - # add scripts related to the closed state - self.scripts.add(scriptexamples.ClosedLidState)
    - -
    [docs] def break_lamp(self, feedback=True): - """ - Breaks the lamp in the button, stopping it from blinking. + Set a description, based on the attrname given, taking the lamp-status + into account. Args: - feedback (bool): Show a message about breaking the lamp. + attrname (str, optional): This will first check for an Attribute with this name, + secondly for a property on the class. So if `attrname="auto_close_msg"`, + we will first look for an attribute `.db.auto_close_msg` and if that's + not found we'll use `.auto_close_msg` instead. If unset (`None`), the + currently set desc will not be changed (only lamp will be checked). + + Notes: + If `self.db.lamp_works` is `False`, we'll append + `desc_add_lamp_broken` text. + + """ + if attrname: + # change desc + desc = self.attributes.get(attrname) or getattr(self, attrname) + else: + # use existing desc + desc = self.db.desc + + if not self.db.lamp_works: + # lamp not working. Add extra to button's desc + desc += self.db.desc_add_lamp_broken or self.desc_add_lamp_broken + + self.db.desc = desc + + # state-changing methods and actions + +
    [docs] def to_closed_state(self, msg=None): + """ + Switches the button to having its lid closed. + + Args: + msg (str, optional): If given, display a message to the room + when lid closes. + + This will first try to get the Attribute (self.db.desc_closed_lid) in + case it was set by a builder and if that was None, it will fall back to + self.desc_closed_lid, the default description (note that lack of .db). + """ + self._set_desc("desc_closed_lid") + # remove lidopen-state, if it exists + self.cmdset.remove(LidOpenCmdSet) + # add lid-closed cmdset + self.cmdset.add(LidClosedCmdSet) + + if msg and self.location: + self.location.msg_contents(msg)
    + +
    [docs] def to_open_state(self): + """ + Switches the button to having its lid open. This also starts a timer + that will eventually close it again. + + """ + self._set_desc("desc_open_lid") + # remove lidopen-state, if it exists + self.cmdset.remove(LidClosedCmdSet) + # add lid-open cmdset + self.cmdset.add(LidOpenCmdSet) + + # wait 20s then call self.to_closed_state with a message as argument + delay(35, self.to_closed_state, + self.db.auto_close_msg or self.auto_close_msg, + persistent=True)
    + + def _unblind_target(self, caller): + """ + This is called to un-blind after a certain time. + + """ + caller.cmdset.remove(BlindCmdSet) + caller.msg("You blink feverishly as your eyesight slowly returns.") + self.location.msg_contents( + f"{caller.name} seems to be recovering their eyesight, blinking feverishly.", + exclude=caller) + +
    [docs] def blind_target(self, caller): + """ + Someone was foolish enough to press the button! Blind them + temporarily. + + Args: + caller (Object): The one to be blinded. + + """ + + # we don't need to remove other cmdsets, this will replace all, + # then restore whatever was there when it goes away. + caller.cmdset.add(BlindCmdSet) + + # wait 20s then call self._unblind to remove blindness effect. The + # persistent=True means the delay should survive a server reload. + delay(20, self._unblind_target, caller, + persistent=True)
    + + def _unbreak_lamp(self): + """ + This is called to un-break the lamp after a certain time. + + """ + # we do this quietly, the user will just notice it starting blinking again + self.db.lamp_works = True + self._set_desc() + +
    [docs] def break_lamp(self): + """ + Breaks the lamp in the button, stopping it from blinking for a while """ self.db.lamp_works = False - desc = self.db.desc_lamp_broken - if not desc: - self.db.desc += "\nThe big red button has stopped blinking for the time being." - else: - self.db.desc = desc + # this will update the desc with the info about the broken lamp + self._set_desc() + self.location.msg_contents(self.db.lamp_breaks_msg or self.lamp_breaks_msg) - if feedback and self.location: - self.location.msg_contents("The lamp flickers, the button going dark.") - self.scripts.validate()
    - -
    [docs] def press_button(self, pobject): - """ - Someone was foolish enough to press the button! - - Args: - pobject (Object): The person pressing the button - - """ - # deactivate the button so it won't flash/close lid etc. - self.scripts.add(scriptexamples.DeactivateButtonEvent) - # blind the person pressing the button. Note that this - # script is set on the *character* pressing the button! - pobject.scripts.add(scriptexamples.BlindedState)
    - - # script-related methods - -
    + # wait 21s before unbreaking the lamp again + delay(21, self._unbreak_lamp)
    @@ -233,11 +643,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 deleted file mode 100644 index 4075c3d2b4..0000000000 --- a/docs/0.9.5/_modules/evennia/contrib/tutorial_examples/red_button_scripts.html +++ /dev/null @@ -1,391 +0,0 @@ - - - - - - - - evennia.contrib.tutorial_examples.red_button_scripts — Evennia 0.9.5 documentation - - - - - - - - - - - - - - - -
    -
    -
    -
    - -

    Source code for evennia.contrib.tutorial_examples.red_button_scripts

    -"""
    -Example of scripts.
    -
    -These are scripts intended for a particular object - the
    -red_button object type in contrib/examples. A few variations
    -on uses of scripts are included.
    -
    -"""
    -from evennia import DefaultScript
    -from evennia.contrib.tutorial_examples import cmdset_red_button as cmdsetexamples
    -
    -#
    -# Scripts as state-managers
    -#
    -# Scripts have many uses, one of which is to statically
    -# make changes when a particular state of an object changes.
    -# There is no "timer" involved in this case (although there could be),
    -# whenever the script determines it is "invalid", it simply shuts down
    -# along with all the things it controls.
    -#
    -# To show as many features as possible of the script and cmdset systems,
    -# we will use three scripts controlling one state each of the red_button,
    -# each with its own set of commands, handled by cmdsets - one for when
    -# the button has its lid open, and one for when it is closed and a
    -# last one for when the player pushed the button and gets blinded by
    -# a bright light. The last one also has a timer component that allows it
    -# to remove itself after a while (and the player recovers their eyesight).
    -
    -
    -
    [docs]class ClosedLidState(DefaultScript): - """ - This manages the cmdset for the "closed" button state. What this - means is that while this script is valid, we add the RedButtonClosed - cmdset to it (with commands like open, nudge lid etc) - """ - -
    [docs] def at_script_creation(self): - "Called when script first created." - self.key = "closed_lid_script" - self.desc = "Script that manages the closed-state cmdsets for red button." - self.persistent = True
    - -
    [docs] def at_start(self): - """ - This is called once every server restart, so we want to add the - (memory-resident) cmdset to the object here. is_valid is automatically - checked so we don't need to worry about adding the script to an - open lid. - """ - # All we do is add the cmdset for the closed state. - self.obj.cmdset.add(cmdsetexamples.LidClosedCmdSet)
    - -
    [docs] def is_valid(self): - """ - The script is only valid while the lid is closed. - self.obj is the red_button on which this script is defined. - """ - return not self.obj.db.lid_open
    - -
    [docs] def at_stop(self): - """ - When the script stops we must make sure to clean up after us. - - """ - self.obj.cmdset.delete(cmdsetexamples.LidClosedCmdSet)
    - - -
    [docs]class OpenLidState(DefaultScript): - """ - This manages the cmdset for the "open" button state. This will add - the RedButtonOpen - """ - -
    [docs] def at_script_creation(self): - "Called when script first created." - self.key = "open_lid_script" - self.desc = "Script that manages the opened-state cmdsets for red button." - self.persistent = True
    - -
    [docs] def at_start(self): - """ - This is called once every server restart, so we want to add the - (memory-resident) cmdset to the object here. is_valid is - automatically checked, so we don't need to worry about - adding the cmdset to a closed lid-button. - """ - self.obj.cmdset.add(cmdsetexamples.LidOpenCmdSet)
    - -
    [docs] def is_valid(self): - """ - The script is only valid while the lid is open. - self.obj is the red_button on which this script is defined. - """ - return self.obj.db.lid_open
    - -
    [docs] def at_stop(self): - """ - When the script stops (like if the lid is closed again) - we must make sure to clean up after us. - """ - self.obj.cmdset.delete(cmdsetexamples.LidOpenCmdSet)
    - - -
    [docs]class BlindedState(DefaultScript): - """ - This is a timed state. - - This adds a (very limited) cmdset TO THE ACCOUNT, during a certain time, - after which the script will close and all functions are - restored. It's up to the function starting the script to actually - set it on the right account object. - """ - -
    [docs] def at_script_creation(self): - """ - We set up the script here. - """ - self.key = "temporary_blinder" - self.desc = "Temporarily blinds the account for a little while." - self.interval = 20 # seconds - self.start_delay = True # we don't want it to stop until after 20s. - self.repeats = 1 # this will go away after interval seconds. - self.persistent = False # we will ditch this if server goes down
    - -
    [docs] def at_start(self): - """ - We want to add the cmdset to the linked object. - - Note that the RedButtonBlind cmdset is defined to completly - replace the other cmdsets on the stack while it is active - (this means that while blinded, only operations in this cmdset - will be possible for the account to perform). It is however - not persistent, so should there be a bug in it, we just need - to restart the server to clear out of it during development. - """ - self.obj.cmdset.add(cmdsetexamples.BlindCmdSet)
    - -
    [docs] def at_stop(self): - """ - It's important that we clear out that blinded cmdset - when we are done! - """ - self.obj.msg("You blink feverishly as your eyesight slowly returns.") - self.obj.location.msg_contents( - "%s seems to be recovering their eyesight." % self.obj.name, exclude=self.obj - ) - self.obj.cmdset.delete() # this will clear the latest added cmdset,
    - # (which is the blinded one). - - -# -# Timer/Event-like Scripts -# -# Scripts can also work like timers, or "events". Below we -# define three such timed events that makes the button a little -# more "alive" - one that makes the button blink menacingly, another -# that makes the lid covering the button slide back after a while. -# - - -
    [docs]class CloseLidEvent(DefaultScript): - """ - This event closes the glass lid over the button - some time after it was opened. It's a one-off - script that should be started/created when the - lid is opened. - """ - -
    [docs] def at_script_creation(self): - """ - Called when script object is first created. Sets things up. - We want to have a lid on the button that the user can pull - aside in order to make the button 'pressable'. But after a set - time that lid should auto-close again, making the button safe - from pressing (and deleting this command). - """ - self.key = "lid_closer" - self.desc = "Closes lid on a red buttons" - self.interval = 20 # seconds - self.start_delay = True # we want to pospone the launch. - self.repeats = 1 # we only close the lid once - self.persistent = True # even if the server crashes in those 20 seconds,
    - # the lid will still close once the game restarts. - -
    [docs] def is_valid(self): - """ - This script can only operate if the lid is open; if it - is already closed, the script is clearly invalid. - - Note that we are here relying on an self.obj being - defined (and being a RedButton object) - this we should be able to - expect since this type of script is always tied to one individual - red button object and not having it would be an error. - """ - return self.obj.db.lid_open
    - -
    [docs] def at_repeat(self): - """ - Called after self.interval seconds. It closes the lid. Before this method is - called, self.is_valid() is automatically checked, so there is no need to - check this manually. - """ - self.obj.close_lid()
    - - -
    [docs]class BlinkButtonEvent(DefaultScript): - """ - This timed script lets the button flash at regular intervals. - """ - -
    [docs] def at_script_creation(self): - """ - Sets things up. We want the button's lamp to blink at - regular intervals, unless it's broken (can happen - if you try to smash the glass, say). - """ - self.key = "blink_button" - self.desc = "Blinks red buttons" - self.interval = 35 # seconds - self.start_delay = False # blink right away - self.persistent = True # keep blinking also after server reboot
    - -
    [docs] def is_valid(self): - """ - Button will keep blinking unless it is broken. - """ - return self.obj.db.lamp_works
    - -
    [docs] def at_repeat(self): - """ - Called every self.interval seconds. Makes the lamp in - the button blink. - """ - self.obj.blink()
    - - -
    [docs]class DeactivateButtonEvent(DefaultScript): - """ - This deactivates the button for a short while (it won't blink, won't - close its lid etc). It is meant to be called when the button is pushed - and run as long as the blinded effect lasts. We cannot put these methods - in the AddBlindedCmdSet script since that script is defined on the *account* - whereas this one must be defined on the *button*. - """ - -
    [docs] def at_script_creation(self): - """ - Sets things up. - """ - self.key = "deactivate_button" - self.desc = "Deactivate red button temporarily" - self.interval = 21 # seconds - self.start_delay = True # wait with the first repeat for self.interval seconds. - self.persistent = True - self.repeats = 1 # only do this once
    - -
    [docs] def at_start(self): - """ - Deactivate the button. Observe that this method is always - called directly, regardless of the value of self.start_delay - (that just controls when at_repeat() is called) - """ - # closing the lid will also add the ClosedState script - self.obj.close_lid() - # lock the lid so other accounts can't access it until the - # first one's effect has worn off. - self.obj.db.lid_locked = True - # breaking the lamp also sets a correct desc - self.obj.break_lamp(feedback=False)
    - -
    [docs] def at_repeat(self): - """ - When this is called, reset the functionality of the button. - """ - # restore button's desc. - - self.obj.db.lamp_works = True - desc = "This is a large red button, inviting yet evil-looking. " - desc += "Its glass cover is closed, protecting it." - self.db.desc = desc - # re-activate the blink button event. - self.obj.scripts.add(BlinkButtonEvent) - # unlock the lid - self.obj.db.lid_locked = False - self.obj.scripts.validate()
    -
    - -
    -
    -
    -
    - -
    -
    - - - - \ No newline at end of file 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 bfcefd0730..502f0ff7b5 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,11 +137,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 4ef78b258c..3a285221ba 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 @@ -475,8 +475,9 @@ and the main window. - Use |y<Return>|n (or click the arrow on the right) to send your input. -- 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. +- 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) There is also some |wextra|n info to learn about customizing the webclient. @@ -737,7 +738,7 @@ After playing through the tutorial-world quest, if you aim to make a game with Evennia you are wise to take a look at the |wEvennia documentation|n at - |yhttps://www.evennia.com/docs/latest + |yhttps://www.evennia.com/docs/latest|n - You can start by trying to build some stuff by following the |wBuilder quick-start|n: @@ -847,11 +848,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 efaf70b828..026d95c53c 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 @@ -112,7 +112,7 @@ stationary (idling) until attacked. aggressive: if set, will attack Characters in the same room using whatever Weapon it - carries (see tutorial_world.objects.Weapon). + carries (see tutorial_world.objects.TutorialWeapon). if unset, the mob will never engage in combat no matter what. hunting: if set, the mob will pursue enemies trying @@ -155,7 +155,7 @@ Called the first time the object is created. We set up the base properties and flags here. """ - self.cmdset.add(MobCmdSet, permanent=True) + self.cmdset.add(MobCmdSet, persistent=True) # Main AI flags. We start in dead mode so we don't have to # chase the mob around when building. self.db.patrolling = True @@ -211,9 +211,9 @@ be "ticked". Args: - interval (int): The number of seconds + interval (int or None): The number of seconds between ticks - hook_key (str): The name of the method + hook_key (str or None): The name of the method (on this mob) to call every interval seconds. stop (bool, optional): Just stop the @@ -415,16 +415,11 @@ return # we use the same attack commands as defined in - # tutorial_world.objects.Weapon, assuming that + # tutorial_world.objects.TutorialWeapon, 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 @@ -507,11 +502,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 fb742f6a3c..3baa6270cb 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 @@ -57,8 +57,8 @@ Obelisk LightSource CrumblingWall -Weapon -WeaponRack +TutorialWeapon +TutorialWeaponRack """ @@ -172,7 +172,7 @@ ) self.db.readable_text = "There is no text written on %s." % self.key # define a command on the object. - self.cmdset.add_default(CmdSetReadable, permanent=True) + self.cmdset.add_default(CmdSetReadable, persistent=True) # ------------------------------------------------------------- @@ -238,7 +238,7 @@
    [docs] def at_object_creation(self): """Called at initial creation only""" - self.cmdset.add_default(CmdSetClimbable, permanent=True)
    + self.cmdset.add_default(CmdSetClimbable, persistent=True) # ------------------------------------------------------------- @@ -386,7 +386,7 @@ # when created. self.db.desc = "A splinter of wood with remnants of resin on it, enough for burning." # add the Light command - self.cmdset.add_default(CmdSetLight, permanent=True) + self.cmdset.add_default(CmdSetLight, persistent=True) def _burnout(self): """ @@ -713,7 +713,7 @@ # exit_open is set to True. self.locks.add("cmd:locattr(is_lit);traverse:objattr(exit_open)") # set cmdset - self.cmdset.add(CmdSetCrumblingWall, permanent=True) + self.cmdset.add(CmdSetCrumblingWall, persistent=True)
    [docs] def open_wall(self): """ @@ -794,7 +794,7 @@ # call the parent to continue execution (will use the desc we just set) return super().return_appearance(caller)
    -
    [docs] def at_after_traverse(self, traverser, source_location): +
    [docs] def at_post_traverse(self, traverser, source_location): """ This is called after we traversed this exit. Cleans up and resets the puzzle. @@ -834,7 +834,7 @@ # ------------------------------------------------------------- # -# Weapon - object type +# TutorialWeapon - object type # # A weapon is necessary in order to fight in the tutorial # world. A weapon (which here is assumed to be a bladed @@ -974,7 +974,7 @@ self.add(CmdAttack())
    -
    [docs]class Weapon(TutorialObject): +
    [docs]class TutorialWeapon(TutorialObject): """ This defines a bladed weapon. @@ -986,16 +986,16 @@ """ -
    [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 self.db.parry = 0.8 # parry chance self.db.damage = 1.0 self.db.magic = False - self.cmdset.add_default(CmdSetWeapon, permanent=True)
    + self.cmdset.add_default(CmdSetWeapon, persistent=True)
    -
    [docs] def reset(self): +
    [docs] def reset(self): """ When reset, the weapon is simply deleted, unless it has a place to return to. @@ -1025,7 +1025,7 @@ WEAPON_PROTOTYPES = { "weapon": { - "typeclass": "evennia.contrib.tutorial_world.objects.Weapon", + "typeclass": "evennia.contrib.tutorial_world.objects.TutorialWeapon", "key": "Weapon", "hit": 0.2, "parry": 0.2, @@ -1170,7 +1170,7 @@ self.add(CmdGetWeapon())
    -
    [docs]class WeaponRack(TutorialObject): +
    [docs]class TutorialWeaponRack(TutorialObject): """ This object represents a weapon store. When people use the "get weapon" command on this rack, it will produce one @@ -1187,11 +1187,11 @@ """ -
    [docs] def at_object_creation(self): +
    [docs] def at_object_creation(self): """ called at creation """ - self.cmdset.add_default(CmdSetWeaponRack, permanent=True) + self.cmdset.add_default(CmdSetWeaponRack, persistent=True) self.db.rack_id = "weaponrack_1" # these are prototype names from the prototype # dictionary above. @@ -1201,13 +1201,12 @@ |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,11 +1250,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 edca26d2ad..a0967ca708 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 @@ -121,7 +121,6 @@ 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. @@ -246,26 +245,22 @@ 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)
    @@ -433,7 +428,6 @@ # # ------------------------------------------------------------- -
    [docs]class CmdEvenniaIntro(Command): """ Start the Evennia intro wizard. @@ -442,12 +436,10 @@ 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") @@ -480,7 +472,7 @@ "This assigns the health Attribute to " "the account." ) - self.cmdset.add(CmdSetEvenniaIntro, permanent=True)
    + self.cmdset.add(CmdSetEvenniaIntro, persistent=True)
    [docs] def at_object_receive(self, character, source_location): """ @@ -503,7 +495,6 @@ character.account.execute_cmd("quell") character.msg("(Auto-quelling while in tutorial-world)")
    - # ------------------------------------------------------------- # # Bridge - unique room @@ -784,7 +775,7 @@ self.db.east_exit = "gate" self.db.fall_exit = "cliffledge" # add the cmdset on the room. - self.cmdset.add(BridgeCmdSet, permanent=True) + self.cmdset.add(BridgeCmdSet, persistent=True) # since the default Character's at_look() will access the room's # return_description (this skips the cmdset) when # first entering it, we need to explicitly turn off the room @@ -1009,7 +1000,7 @@ self.db.tutorial_info = "This is a room with custom command sets on itself." # the room starts dark. self.db.is_lit = False - self.cmdset.add(DarkCmdSet, permanent=True) + self.cmdset.add(DarkCmdSet, persistent=True)
    [docs] def at_init(self): """ @@ -1061,7 +1052,7 @@ # noone is carrying light - darken the room self.db.is_lit = False self.locks.add("view:false()") - self.cmdset.add(DarkCmdSet, permanent=True) + self.cmdset.add(DarkCmdSet, persistent=True) for char in (obj for obj in self.contents if obj.has_account): if char.is_superuser: char.msg("You are Superuser, so you are not affected by the dark state.") @@ -1217,6 +1208,7 @@
    [docs] def at_object_leave(self, character, destination): if character.account: character.account.execute_cmd("unquell")
    +
    @@ -1242,11 +1234,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/contrib/unixcommand.html b/docs/0.9.5/_modules/evennia/contrib/unixcommand.html index ad9f470f50..0a2af7b5ec 100644 --- a/docs/0.9.5/_modules/evennia/contrib/unixcommand.html +++ b/docs/0.9.5/_modules/evennia/contrib/unixcommand.html @@ -166,7 +166,7 @@ # Replace the -h/--help self.add_argument( - "-h", "--hel", nargs=0, action=HelpAction, help="display the command help" + "-h", "--help", nargs=0, action=HelpAction, help="display the command help" )
    [docs] def format_usage(self): @@ -361,11 +361,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/contrib/wilderness.html b/docs/0.9.5/_modules/evennia/contrib/wilderness.html index 646330336b..80b3e900bc 100644 --- a/docs/0.9.5/_modules/evennia/contrib/wilderness.html +++ b/docs/0.9.5/_modules/evennia/contrib/wilderness.html @@ -390,7 +390,7 @@ # ... but that other wilderness room belongs to another # wilderness map create_new_room = True - old_room.wilderness.at_after_object_leave(obj) + old_room.wilderness.at_post_object_leave(obj) else: for item in old_room.contents: if item.has_account: @@ -494,7 +494,7 @@ # And finally put this room away in storage self.db.unused_rooms.append(room) -
    [docs] def at_after_object_leave(self, obj): +
    [docs] def at_post_object_leave(self, obj): """ Called after an object left this wilderness map. Used for cleaning up. @@ -594,7 +594,7 @@ target_location (Object): Where `moved_obj` is going. """ - self.wilderness.at_after_object_leave(moved_obj)
    + self.wilderness.at_post_object_leave(moved_obj)
    [docs] def set_active_coordinates(self, new_coordinates, obj): """ @@ -741,7 +741,7 @@ ): return False - if not traversing_object.at_before_move(None): + if not traversing_object.at_pre_move(None): return False traversing_object.location.msg_contents( "{} leaves to {}".format(traversing_object.key, new_coordinates), @@ -755,7 +755,7 @@ exclude=[traversing_object], ) - traversing_object.at_after_move(None) + traversing_object.at_post_move(None) return True
    @@ -843,11 +843,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/help/admin.html b/docs/0.9.5/_modules/evennia/help/admin.html deleted file mode 100644 index 3e53237ac6..0000000000 --- a/docs/0.9.5/_modules/evennia/help/admin.html +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - - evennia.help.admin — Evennia 0.9.5 documentation - - - - - - - - - - - - - - - -
    -
    -
    -
    - -

    Source code for evennia.help.admin

    -"""
    -This defines how to edit help entries in Admin.
    -"""
    -from django import forms
    -from django.contrib import admin
    -from evennia.help.models import HelpEntry
    -from evennia.typeclasses.admin import TagInline
    -
    -
    -
    [docs]class HelpTagInline(TagInline): - model = HelpEntry.db_tags.through - related_field = "helpentry"
    - - -
    [docs]class HelpEntryForm(forms.ModelForm): - "Defines how to display the help entry" - -
    [docs] class Meta(object): - model = HelpEntry - fields = "__all__"
    - - db_help_category = forms.CharField( - label="Help category", initial="General", help_text="organizes help entries in lists" - ) - db_lock_storage = forms.CharField( - label="Locks", - initial="view:all()", - required=False, - widget=forms.TextInput(attrs={"size": "40"}), - )
    - - -
    [docs]class HelpEntryAdmin(admin.ModelAdmin): - "Sets up the admin manaager for help entries" - inlines = [HelpTagInline] - list_display = ("id", "db_key", "db_help_category", "db_lock_storage") - list_display_links = ("id", "db_key") - search_fields = ["^db_key", "db_entrytext"] - ordering = ["db_help_category", "db_key"] - save_as = True - save_on_top = True - list_select_related = True - - form = HelpEntryForm - fieldsets = ( - ( - None, - { - "fields": (("db_key", "db_help_category"), "db_entrytext", "db_lock_storage"), - "description": "Sets a Help entry. Set lock to <i>view:all()</I> unless you want to restrict it.", - }, - ), - )
    - - -admin.site.register(HelpEntry, HelpEntryAdmin) -
    - -
    -
    -
    -
    - -
    -
    - - - - \ No newline at end of file diff --git a/docs/0.9.5/_modules/evennia/help/manager.html b/docs/0.9.5/_modules/evennia/help/manager.html index 3fa8c502aa..1ee36690c2 100644 --- a/docs/0.9.5/_modules/evennia/help/manager.html +++ b/docs/0.9.5/_modules/evennia/help/manager.html @@ -44,7 +44,6 @@ """ Custom manager for HelpEntry objects. """ -from django.db import models from evennia.utils import logger, utils from evennia.typeclasses.managers import TypedObjectManager @@ -174,7 +173,7 @@ for topic in topics: topic.help_category = default_category topic.save() - string = _("Help database moved to category {default_category}").format( + string = "Help database moved to category {default_category}".format( default_category=default_category ) logger.log_info(string) @@ -218,11 +217,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/help/models.html b/docs/0.9.5/_modules/evennia/help/models.html index cf14edab15..56df215eaa 100644 --- a/docs/0.9.5/_modules/evennia/help/models.html +++ b/docs/0.9.5/_modules/evennia/help/models.html @@ -73,7 +73,7 @@ # ------------------------------------------------------------ -
    [docs]class HelpEntry(SharedMemoryModel): +
    [docs]class HelpEntry(SharedMemoryModel): """ A generic help entry. @@ -99,6 +99,7 @@ db_key = models.CharField( "help key", max_length=255, unique=True, help_text="key to search for" ) + # help category db_help_category = models.CharField( "help category", @@ -106,6 +107,7 @@ default="General", help_text="organizes help entries in lists", ) + # the actual help entry text, in any formatting. db_entrytext = models.TextField( "help entry", blank=True, help_text="the main body of help text" @@ -116,11 +118,11 @@ 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. - db_staff_only = models.BooleanField(default=False) + # Creation date. This is not changed once the object is created. + db_date_created = models.DateTimeField("creation date", editable=False, auto_now=True) # Database manager objects = HelpEntryManager() @@ -128,19 +130,19 @@ # lazy-loaded handlers -
    [docs] @lazy_property +
    [docs] @lazy_property def locks(self): return LockHandler(self)
    -
    [docs] @lazy_property +
    [docs] @lazy_property def tags(self): return TagHandler(self)
    -
    [docs] @lazy_property +
    [docs] @lazy_property def aliases(self): return AliasHandler(self)
    - class Meta(object): + class Meta: "Define Django meta options" verbose_name = "Help Entry" verbose_name_plural = "Help Entries" @@ -150,27 +152,47 @@ # HelpEntry main class methods # # - def __str__(self): - return self.key + return str(self.key) def __repr__(self): - return "%s" % self.key + return f"<HelpEntry {self.key}>" -
    [docs] def access(self, accessing_obj, access_type="read", default=False): +
    [docs] def access(self, accessing_obj, access_type="read", default=True): """ - Determines if another object has permission to access. - accessing_obj - object trying to access this one - access_type - type of access sought - default - what to return if no lock of access_type was found + Determines if another object has permission to access this help entry. + + Accesses used by default: + 'read' - read the help entry itself. + 'view' - see help entry in help index. + + Args: + accessing_obj (Object or Account): Entity trying to access this one. + access_type (str): type of access sought. + default (bool): What to return if no lock of `access_type` was found. + """ 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()), + "no_prefix": "", + "category": self.db_help_category, + "text": self.db_entrytext, + "tags": " ".join(str(tag) for tag in self.tags.all()), + } + # # Web/Django methods # -
    [docs] def web_get_admin_url(self): +
    [docs] def web_get_admin_url(self): """ Returns the URI path for the Django Admin page for this object. @@ -185,7 +207,7 @@ "admin:%s_%s_change" % (content_type.app_label, content_type.model), args=(self.id,) )
    -
    [docs] @classmethod +
    [docs] @classmethod def web_get_create_url(cls): """ Returns the URI path for a View that allows users to create new @@ -198,7 +220,9 @@ a named view of 'character-create' would be referenced by this method. ex. - url(r'characters/create/', ChargenView.as_view(), name='character-create') + :: + + 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. @@ -213,10 +237,10 @@ """ try: return reverse("%s-create" % slugify(cls._meta.verbose_name)) - except: + except Exception: return "#"
    -
    [docs] def web_get_detail_url(self): +
    [docs] def web_get_detail_url(self): """ Returns the URI path for a View that allows users to view details for this object. @@ -228,8 +252,9 @@ a named view of 'character-detail' would be referenced by this method. ex. - url(r'characters/(?P<slug>[\w\d\-]+)/(?P<pk>[0-9]+)/$', - CharDetailView.as_view(), name='character-detail') + :: + 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. @@ -242,16 +267,16 @@ path (str): URI path to object detail page, if defined. """ + try: return reverse( "%s-detail" % slugify(self._meta.verbose_name), kwargs={"category": slugify(self.db_help_category), "topic": slugify(self.db_key)}, ) - except Exception as e: - print(e) + except Exception: return "#"
    -
    [docs] def web_get_update_url(self): +
    [docs] def web_get_update_url(self): """ Returns the URI path for a View that allows users to update this object. @@ -263,8 +288,10 @@ a named view of 'character-update' would be referenced by this method. ex. - 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. @@ -282,10 +309,10 @@ "%s-update" % slugify(self._meta.verbose_name), kwargs={"category": slugify(self.db_help_category), "topic": slugify(self.db_key)}, ) - except: + except Exception: return "#"
    -
    [docs] def web_get_delete_url(self): +
    [docs] def web_get_delete_url(self): """ Returns the URI path for a View that allows users to delete this object. @@ -296,8 +323,10 @@ a named view of 'character-detail' would be referenced by this method. ex. - 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. @@ -315,7 +344,7 @@ "%s-delete" % slugify(self._meta.verbose_name), kwargs={"category": slugify(self.db_help_category), "topic": slugify(self.db_key)}, ) - except: + except Exception: return "#"
    # Used by Django Sites/Admin @@ -345,11 +374,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/locks/lockfuncs.html b/docs/0.9.5/_modules/evennia/locks/lockfuncs.html index 210ae3a318..8a02727621 100644 --- a/docs/0.9.5/_modules/evennia/locks/lockfuncs.html +++ b/docs/0.9.5/_modules/evennia/locks/lockfuncs.html @@ -54,81 +54,6 @@ with a lock variable/field, so be careful to not expect a certain object type. - -**Appendix: MUX locks** - -Below is a list nicked from the MUX help file on the locks available -in standard MUX. Most of these are not relevant to core Evennia since -locks in Evennia are considerably more flexible and can be implemented -on an individual command/typeclass basis rather than as globally -available like the MUX ones. So many of these are not available in -basic Evennia, but could all be implemented easily if needed for the -individual game. - -``` -MUX Name: Affects: Effect: ----------------------------------------------------------------------- -DefaultLock: Exits: controls who may traverse the exit to - its destination. - Evennia: "traverse:<lockfunc()>" - Rooms: controls whether the account sees the - SUCC or FAIL message for the room - following the room description when - looking at the room. - Evennia: Custom typeclass - Accounts/Things: controls who may GET the object. - Evennia: "get:<lockfunc()" - EnterLock: Accounts/Things: controls who may ENTER the object - Evennia: - GetFromLock: All but Exits: controls who may gets things from a - given location. - Evennia: - GiveLock: Accounts/Things: controls who may give the object. - Evennia: - LeaveLock: Accounts/Things: controls who may LEAVE the object. - Evennia: - LinkLock: All but Exits: controls who may link to the location - if the location is LINK_OK (for linking - exits or setting drop-tos) or ABODE (for - setting homes) - Evennia: - MailLock: Accounts: controls who may @mail the account. - Evennia: - OpenLock: All but Exits: controls who may open an exit. - Evennia: - PageLock: Accounts: controls who may page the account. - Evennia: "send:<lockfunc()>" - ParentLock: All: controls who may make @parent links to - the object. - Evennia: Typeclasses and - "puppet:<lockstring()>" - ReceiveLock: Accounts/Things: controls who may give things to the - object. - Evennia: - SpeechLock: All but Exits: controls who may speak in that location - Evennia: - TeloutLock: All but Exits: controls who may teleport out of the - location. - Evennia: - TportLock: Rooms/Things: controls who may teleport there - Evennia: - UseLock: All but Exits: controls who may USE the object, GIVE - the object money and have the PAY - attributes run, have their messages - heard and possibly acted on by LISTEN - and AxHEAR, and invoke $-commands - stored on the object. - Evennia: Commands and Cmdsets. - DropLock: All but rooms: controls who may drop that object. - Evennia: - VisibleLock: All: Controls object visibility when the - object is not dark and the looker - passes the lock. In DARK locations, the - object must also be set LIGHT and the - viewer must pass the VisibleLock. - Evennia: Room typeclass with - Dark/light script -``` """ @@ -155,16 +80,21 @@
    [docs]def true(*args, **kwargs): - "Always returns True." - return True
    + """ + Always returns True. + """ + return True
    [docs]def all(*args, **kwargs): return True
    [docs]def false(*args, **kwargs): - "Always returns False" + """ + Always returns False + + """ return False
    @@ -172,6 +102,10 @@ return False
    +
    [docs]def superuser(*args, **kwargs): + return False
    + +
    [docs]def self(accessing_obj, accessed_obj, *args, **kwargs): """ Check if accessing_obj is the same as accessed_obj @@ -205,6 +139,9 @@ (this is order to avoid Accounts potentially escalating their own permissions by use of a higher-level Object) + For non-hierarchical permissions, a puppeted object's account is checked first, + followed by the puppet (unless quelled, when only puppet's access is checked). + """ # this allows the perm_above lockfunc to make use of this function too try: @@ -278,11 +215,17 @@ else: # no hierarchy match - check direct matches if account: - # account exists, check it first unless quelled + # account exists if is_quell and permission in perms_object: + # if quelled, first check object return True elif permission in perms_account: + # unquelled - check account return True + else: + # no account-pass, check object pass + return permission in perms_object + elif permission in perms_object: return True @@ -582,8 +525,6 @@ 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))
    @@ -615,9 +556,6 @@ 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: @@ -692,17 +630,6 @@ return False
    -
    [docs]def superuser(*args, **kwargs): - """ - Only accepts an accesing_obj that is superuser (e.g. user #1) - - Since a superuser would not ever reach this check (superusers - bypass the lock entirely), any user who gets this far cannot be a - superuser, hence we just return False. :) - """ - return False
    - -
    [docs]def has_account(accessing_obj, accessed_obj, *args, **kwargs): """ Only returns true if accessing_obj has_account is true, that is, @@ -769,11 +696,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/locks/lockhandler.html b/docs/0.9.5/_modules/evennia/locks/lockhandler.html index 20fcdf03cc..ba5cebd1cd 100644 --- a/docs/0.9.5/_modules/evennia/locks/lockhandler.html +++ b/docs/0.9.5/_modules/evennia/locks/lockhandler.html @@ -167,6 +167,7 @@
    [docs]class LockException(Exception): """ Raised during an error in a lock. + """ pass
    @@ -182,6 +183,7 @@ def _cache_lockfuncs(): """ Updates the cache. + """ global _LOCKFUNCS _LOCKFUNCS = {} @@ -206,7 +208,7 @@ # -
    [docs]class LockHandler(object): +
    [docs]class LockHandler: """ This handler should be attached to all objects implementing permission checks, under the property 'lockhandler'. @@ -276,7 +278,8 @@ funcname, rest = (part.strip().strip(")") for part in funcstring.split("(", 1)) func = _LOCKFUNCS.get(funcname, None) if not callable(func): - elist.append(_("Lock: lock-function '%s' is not available.") % funcstring) + elist.append(_("Lock: lock-function '{lockfunc}' is not available.").format( + lockfunc=funcstring)) continue args = list(arg.strip() for arg in rest.split(",") if arg and "=" not in arg) kwargs = dict( @@ -303,16 +306,13 @@ continue if access_type in locks: duplicates += 1 - wlist.append( - _( - "LockHandler on %(obj)s: access type '%(access_type)s' changed from '%(source)s' to '%(goal)s' " - % { - "obj": self.obj, - "access_type": access_type, - "source": locks[access_type][2], - "goal": raw_lockstring, - } - ) + wlist.append(_( + "LockHandler on {obj}: access type '{access_type}' " + "changed from '{source}' to '{goal}' ".format( + obj=self.obj, + access_type=access_type, + source=locks[access_type][2], + goal=raw_lockstring)) ) locks[access_type] = (evalstring, tuple(lock_funcs), raw_lockstring) if wlist and WARNING_LOG: @@ -327,12 +327,14 @@ def _cache_locks(self, storage_lockstring): """ Store data + """ self.locks = self._parse_lockstring(storage_lockstring) def _save_locks(self): """ Store locks to obj + """ self.obj.lock_storage = ";".join([tup[2] for tup in self.locks.values()]) @@ -736,6 +738,28 @@ access_type=access_type, ) +def check_perm(obj, permission, no_superuser_bypass=False): + """ + Shortcut for checking if an object has the given `permission`. If the + permission is in `settings.PERMISSION_HIERARCHY`, the check passes + if the object has this permission or higher. + + This is equivalent to calling the perm() lockfunc, but without needing + an accessed object. + + Args: + obj (Object, Account): The object to check access. If this has a linked + Account, the account is checked instead (same rules as per perm()). + permission (str): The permission string to check. + no_superuser_bypass (bool, optional): If unset, the superuser + will always pass this check. + + """ + from evennia.locks.lockfuncs import perm + if not no_superuser_bypass and obj.is_superuser: + return True + return perm(obj, None, permission) + def validate_lockstring(lockstring): """ @@ -823,11 +847,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/objects/admin.html b/docs/0.9.5/_modules/evennia/objects/admin.html deleted file mode 100644 index 0f334bcbdd..0000000000 --- a/docs/0.9.5/_modules/evennia/objects/admin.html +++ /dev/null @@ -1,303 +0,0 @@ - - - - - - - - evennia.objects.admin — Evennia 0.9.5 documentation - - - - - - - - - - - - - - - -
    -
    -
    -
    - -

    Source code for evennia.objects.admin

    -#
    -# This sets up how models are displayed
    -# in the web admin interface.
    -#
    -from django import forms
    -from django.conf import settings
    -from django.contrib import admin
    -from evennia.typeclasses.admin import AttributeInline, TagInline
    -from evennia.objects.models import ObjectDB
    -from django.contrib.admin.utils import flatten_fieldsets
    -from django.utils.translation import gettext as _
    -
    -
    -
    [docs]class ObjectAttributeInline(AttributeInline): - """ - Defines inline descriptions of Attributes (experimental) - - """ - - model = ObjectDB.db_attributes.through - related_field = "objectdb"
    - - -
    [docs]class ObjectTagInline(TagInline): - """ - Defines inline descriptions of Tags (experimental) - - """ - - model = ObjectDB.db_tags.through - related_field = "objectdb"
    - - -
    [docs]class ObjectCreateForm(forms.ModelForm): - """ - This form details the look of the fields. - - """ - -
    [docs] class Meta(object): - model = ObjectDB - fields = "__all__"
    - - db_key = forms.CharField( - label="Name/Key", - widget=forms.TextInput(attrs={"size": "78"}), - help_text="Main identifier, like 'apple', 'strong guy', 'Elizabeth' etc. " - "If creating a Character, check so the name is unique among characters!", - ) - db_typeclass_path = forms.CharField( - label="Typeclass", - initial=settings.BASE_OBJECT_TYPECLASS, - widget=forms.TextInput(attrs={"size": "78"}), - help_text="This defines what 'type' of entity this is. This variable holds a " - "Python path to a module with a valid Evennia Typeclass. If you are " - "creating a Character you should use the typeclass defined by " - "settings.BASE_CHARACTER_TYPECLASS or one derived from that.", - ) - db_cmdset_storage = forms.CharField( - label="CmdSet", - initial="", - required=False, - widget=forms.TextInput(attrs={"size": "78"}), - help_text="Most non-character objects don't need a cmdset" - " and can leave this field blank.", - ) - raw_id_fields = ("db_destination", "db_location", "db_home")
    - - -
    [docs]class ObjectEditForm(ObjectCreateForm): - """ - Form used for editing. Extends the create one with more fields - - """ - -
    [docs] class Meta(object): - fields = "__all__"
    - - db_lock_storage = forms.CharField( - label="Locks", - required=False, - widget=forms.Textarea(attrs={"cols": "100", "rows": "2"}), - help_text="In-game lock definition string. If not given, defaults will be used. " - "This string should be on the form " - "<i>type:lockfunction(args);type2:lockfunction2(args);...", - )
    - - -
    [docs]class ObjectDBAdmin(admin.ModelAdmin): - """ - Describes the admin page for Objects. - - """ - - inlines = [ObjectTagInline, ObjectAttributeInline] - list_display = ("id", "db_key", "db_account", "db_typeclass_path") - list_display_links = ("id", "db_key") - ordering = ["db_account", "db_typeclass_path", "id"] - search_fields = ["=id", "^db_key", "db_typeclass_path", "^db_account__db_key"] - raw_id_fields = ("db_destination", "db_location", "db_home") - - save_as = True - save_on_top = True - list_select_related = True - list_filter = ("db_typeclass_path",) - - # editing fields setup - - form = ObjectEditForm - fieldsets = ( - ( - None, - { - "fields": ( - ("db_key", "db_typeclass_path"), - ("db_lock_storage",), - ("db_location", "db_home"), - "db_destination", - "db_cmdset_storage", - ) - }, - ), - ) - - add_form = ObjectCreateForm - add_fieldsets = ( - ( - None, - { - "fields": ( - ("db_key", "db_typeclass_path"), - ("db_location", "db_home"), - "db_destination", - "db_cmdset_storage", - ) - }, - ), - ) - -
    [docs] def get_fieldsets(self, request, obj=None): - """ - Return fieldsets. - - Args: - request (Request): Incoming request. - obj (ObjectDB, optional): Database object. - """ - if not obj: - return self.add_fieldsets - return super().get_fieldsets(request, obj)
    - -
    [docs] def get_form(self, request, obj=None, **kwargs): - """ - Use special form during creation. - - Args: - request (Request): Incoming request. - obj (Object, optional): Database object. - - """ - defaults = {} - if obj is None: - defaults.update( - {"form": self.add_form, "fields": flatten_fieldsets(self.add_fieldsets)} - ) - defaults.update(kwargs) - return super().get_form(request, obj, **defaults)
    - -
    [docs] def save_model(self, request, obj, form, change): - """ - Model-save hook. - - Args: - request (Request): Incoming request. - obj (Object): Database object. - form (Form): Form instance. - change (bool): If this is a change or a new object. - - """ - obj.save() - if not change: - # adding a new object - # have to call init with typeclass passed to it - obj.set_class_from_typeclass(typeclass_path=obj.db_typeclass_path) - obj.basetype_setup() - obj.basetype_posthook_setup() - obj.at_object_creation() - obj.at_init()
    - -
    [docs] def response_add(self, request, obj, post_url_continue=None): - from django.http import HttpResponseRedirect - from django.urls import reverse - - return HttpResponseRedirect(reverse("admin:objects_objectdb_change", args=[obj.id]))
    - - -admin.site.register(ObjectDB, ObjectDBAdmin) -
    - -
    -
    -
    -
    - -
    -
    - - - - \ No newline at end of file diff --git a/docs/0.9.5/_modules/evennia/objects/manager.html b/docs/0.9.5/_modules/evennia/objects/manager.html index 03d28b0c02..0749664f49 100644 --- a/docs/0.9.5/_modules/evennia/objects/manager.html +++ b/docs/0.9.5/_modules/evennia/objects/manager.html @@ -45,7 +45,6 @@ Custom manager for Objects. """ import re -from itertools import chain from django.db.models import Q from django.conf import settings from django.db.models.fields import exceptions @@ -197,7 +196,8 @@ Args: attribute_name (str): Attribute key to search for. - attribute_value (any): Attribute value to search for. This can also be database objects. + attribute_value (any): Attribute value to search for. This can also be database + objects. candidates (list, optional): Candidate objects to limit search to. typeclasses (list, optional): Python pats to restrict matches with. @@ -634,6 +634,7 @@ """ Clear the db_sessid field of all objects having also the db_account field set. + """ self.filter(db_sessid__isnull=False).update(db_sessid=None)
    @@ -665,11 +666,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/objects/models.html b/docs/0.9.5/_modules/evennia/objects/models.html index 0d88cb7d53..d0b7555d45 100644 --- a/docs/0.9.5/_modules/evennia/objects/models.html +++ b/docs/0.9.5/_modules/evennia/objects/models.html @@ -56,6 +56,7 @@ 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 @@ -67,7 +68,7 @@ from evennia.utils.utils import make_iter, dbref, lazy_property -
    [docs]class ContentsHandler: +
    [docs]class ContentsHandler: """ Handles and caches the contents of an object to avoid excessive lookups (this is done very often due to cmdhandler needing to look @@ -75,7 +76,7 @@ of the ObjectDB. """ -
    [docs] def __init__(self, obj): +
    [docs] def __init__(self, obj): """ Sets up the contents handler. @@ -85,34 +86,49 @@ """ self.obj = obj - self._pkcache = {} + self._pkcache = set() self._idcache = obj.__class__.__instance_cache__ + self._typecache = defaultdict(set) self.init()
    -
    [docs] def init(self): +
    [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 """ - self._pkcache.update( - dict((obj.pk, None) for obj in ObjectDB.objects.filter(db_location=self.obj) if obj.pk) - )
    + 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)
    -
    [docs] def get(self, exclude=None): +
    [docs] def get(self, exclude=None, content_type=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 exclude: - pks = [pk for pk in self._pkcache if pk not in [excl.pk for excl in make_iter(exclude)]] + if content_type is not None: + pks = self._typecache[content_type] 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: @@ -122,12 +138,11 @@ try: return [self._idcache[pk] for pk in pks] except KeyError: - # 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))
    + # 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()
    -
    [docs] def add(self, obj): +
    [docs] def add(self, obj): """ Add a new object to this location @@ -135,9 +150,11 @@ obj (Object): object to add """ - self._pkcache[obj.pk] = None
    + self._pkcache.add(obj.pk) + for ctype in obj._content_types: + self._typecache[ctype].add(obj.pk)
    -
    [docs] def remove(self, obj): +
    [docs] def remove(self, obj): """ Remove object from this location @@ -145,14 +162,23 @@ obj (Object): object to remove """ - self._pkcache.pop(obj.pk, None)
    + try: + self._pkcache.remove(obj.pk) + except KeyError: + # not in pk cache, but can happen deletions happens + # remotely from out-of-thread. + pass + for ctype in obj._content_types: + if obj.pk in self._typecache[ctype]: + self._typecache[ctype].remove(obj.pk)
    -
    [docs] def clear(self): +
    [docs] def clear(self): """ Clear the contents cache and re-initialize """ self._pkcache = {} + self._typecache = defaultdict(set) self.init()
    @@ -163,7 +189,7 @@ # ------------------------------------------------------------- -
    [docs]class ObjectDB(TypedObject): +
    [docs]class ObjectDB(TypedObject): """ All objects in the game use the ObjectDB model to store data in the database. This is handled transparently through @@ -282,7 +308,7 @@ __defaultclasspath__ = "evennia.objects.objects.DefaultObject" __applabel__ = "objects" -
    [docs] @lazy_property +
    [docs] @lazy_property def contents_cache(self): return ContentsHandler(self)
    @@ -362,9 +388,11 @@ except RuntimeError: errmsg = "Error: %s.location = %s creates a location loop." % (self.key, location) raise RuntimeError(errmsg) - except Exception as e: - errmsg = "Error (%s): %s is not a valid location." % (str(e), location) - raise RuntimeError(errmsg) + except Exception: + # raising here gives more info for now + raise + # errmsg = "Error (%s): %s is not a valid location." % (str(e), location) + # raise RuntimeError(errmsg) return def __location_del(self): @@ -374,7 +402,7 @@ location = property(__location_get, __location_set, __location_del) -
    [docs] def at_db_location_postsave(self, new): +
    [docs] def at_db_location_postsave(self, new): """ This is called automatically after the location field was saved, no matter how. It checks for a variable @@ -400,7 +428,7 @@ ) [o.contents_cache.init() for o in self.__dbclass__.get_all_cached_instances()]
    - class Meta(object): + class Meta: """Define Django meta options""" verbose_name = "Object" @@ -430,11 +458,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/objects/objects.html b/docs/0.9.5/_modules/evennia/objects/objects.html index 6397ccf8e7..a42545ff9e 100644 --- a/docs/0.9.5/_modules/evennia/objects/objects.html +++ b/docs/0.9.5/_modules/evennia/objects/objects.html @@ -47,34 +47,27 @@ These are the (default) starting points for all in-game visible entities. +This is the v1.0 develop version (for ref in doc building). + """ import time -import inflect from collections import defaultdict +import inflect from django.conf import settings +from django.utils.translation import gettext as _ -from evennia.typeclasses.models import TypeclassBase -from evennia.typeclasses.attributes import NickHandler +from evennia.commands import cmdset +from evennia.commands.cmdsethandler import CmdSetHandler from evennia.objects.manager import ObjectManager from evennia.objects.models import ObjectDB from evennia.scripts.scripthandler import ScriptHandler -from evennia.commands import cmdset, command -from evennia.commands.cmdsethandler import CmdSetHandler -from evennia.utils import create -from evennia.utils import search -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, - is_iter, - list_to_string, - to_str, -) -from django.utils.translation import gettext as _ +from evennia.typeclasses.attributes import ModelAttributeBackend, NickHandler +from evennia.typeclasses.models import TypeclassBase +from evennia.utils import ansi, create, funcparser, logger, search +from evennia.utils.utils import (class_from_module, is_iter, lazy_property, + list_to_string, make_iter, to_str, + variable_from_module) _INFLECT = inflect.engine() _MULTISESSION_MODE = settings.MULTISESSION_MODE @@ -88,11 +81,14 @@ # 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 +# init the actor-stance funcparser for msg_contents +_MSG_CONTENTS_PARSER = funcparser.FuncParser(funcparser.ACTOR_STANCE_CALLABLES) -
    [docs]class ObjectSessionHandler(object): + +
    [docs]class ObjectSessionHandler: """ - Handles the get/setting of the sessid - comma-separated integer field + Handles the get/setting of the sessid comma-separated integer field + """
    [docs] def __init__(self, obj): @@ -150,7 +146,7 @@ ] if None in sessions: # this happens only if our cache has gone out of sync with the SessionHandler. - self._recache() + return self.get(sessid=sessid) return sessions
    @@ -249,12 +245,24 @@ """ + # 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)" objects = ObjectManager() + # populated by `return_apperance` + appearance_template = ''' +{header} +|c{name}|n +{desc} +{exits}{characters}{things} +{footer} + ''' + # on-object properties
    [docs] @lazy_property @@ -267,7 +275,7 @@
    [docs] @lazy_property def nicks(self): - return NickHandler(self)
    + return NickHandler(self, ModelAttributeBackend)
    [docs] @lazy_property def sessions(self): @@ -302,7 +310,7 @@ and not self.db_account.attributes.get("_quell") ) -
    [docs] def contents_get(self, exclude=None): +
    [docs] def contents_get(self, exclude=None, content_type=None): """ Returns the contents of this object, i.e. all objects that has this object set as its location. @@ -311,17 +319,18 @@ 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. + Also available as the `contents` property, minus exclusion + and filtering. """ - con = self.contents_cache.get(exclude=exclude) - # print "contents_get:", self, con, id(self), calledby() # DEBUG - return con
    + return self.contents_cache.get(exclude=exclude, content_type=content_type)
    [docs] def contents_set(self, *args): "You cannot replace this property" @@ -337,6 +346,7 @@ """ Returns all exits from this object, i.e. all objects at this location having the property destination != `None`. + """ return [exi for exi in self.contents if exi.destination] @@ -383,6 +393,7 @@ Returns: singular (str): The singular form to display. plural (str): The determined plural form of the key, including the count. + """ plural_category = "plural_key" key = kwargs.get("key", self.key) @@ -417,6 +428,7 @@ nofound_string=None, multimatch_string=None, use_dbref=None, + stacked=0, ): """ Returns an Object matching a search string/condition @@ -430,10 +442,9 @@ against `object.key` (with `object.aliases` second) unless the keyword attribute_name specifies otherwise. - Special strings: + Special keywords: - - `#<num>`: search by unique dbref. This is always - a global search. + - `#<num>`: search by unique dbref. This is always a global search. - `me,self`: self-reference to this object - `<num>-<string>` - can be used to differentiate between multiple same-named matches. The exact form of this input @@ -448,7 +459,9 @@ 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. + 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. 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,11 +489,17 @@ 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, None or list: Will return an `Object` or `None` if `quiet=False`. Will return a - list with 0, 1 or more matches if `quiet=True`. If `stacked` is a positive integer, this - list may contain all stacked identical matches. + Object, None or list: Will return an `Object` or `None` if `quiet=False`. Will return + a `list` with 0, 1 or more matches if `quiet=True`. If `stacked` is a positive integer, + this list may contain all stacked identical matches. Notes: To find Accounts, use eg. `evennia.account_search`. If @@ -548,8 +567,29 @@ 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, @@ -709,6 +749,7 @@ Keyword Args: Keyword arguments will be passed to the function for all objects. + """ contents = self.contents if exclude: @@ -725,64 +766,95 @@ text (str or tuple): Message to send. If a tuple, this should be on the valid OOB outmessage form `(message, {kwargs})`, where kwargs are optional data passed to the `text` - outputfunc. + outputfunc. The message will be parsed for `{key}` formatting and + `$You/$you()/$You()`, `$obj(name)`, `$conj(verb)` and `$pron(pronoun, option)` + inline function callables. + The `name` is taken from the `mapping` kwarg {"name": object, ...}`. + The `mapping[key].get_display_name(looker=recipient)` will be called + for that key for every recipient of the string. exclude (list, optional): A list of objects not to send to. from_obj (Object, optional): An object designated as the "sender" of the message. See `DefaultObject.msg()` for more info. mapping (dict, optional): A mapping of formatting keys - `{"key":<object>, "key2":<object2>,...}. The keys - must match `{key}` markers in the `text` if this is a string or - in the internal `message` if `text` is a tuple. These - formatting statements will be - replaced by the return of `<object>.get_display_name(looker)` - for every looker in contents that receives the - message. This allows for every object to potentially - get its own customized string. - Keyword Args: - Keyword arguments will be passed on to `obj.msg()` for all - messaged objects. + `{"key":<object>, "key2":<object2>,...}. + The keys must either match `{key}` or `$You(key)/$you(key)` markers + in the `text` string. If `<object>` doesn't have a `get_display_name` + method, it will be returned as a string. If not set, a key `you` will + be auto-added to point to `from_obj` if given, otherwise to `self`. + **kwargs: Keyword arguments will be passed on to `obj.msg()` for all + messaged objects. Notes: - The `mapping` argument is required if `message` contains - {}-style format syntax. The keys of `mapping` should match - named format tokens, and its values will have their - `get_display_name()` function called for each object in - the room before substitution. If an item in the mapping does - not have `get_display_name()`, its string value will be used. + For 'actor-stance' reporting (You say/Name says), use the + `$You()/$you()/$You(key)` and `$conj(verb)` (verb-conjugation) + inline callables. This will use the respective `get_display_name()` + for all onlookers except for `from_obj or self`, which will become + 'You/you'. If you use `$You/you(key)`, the key must be in `mapping`. - Example: - Say Char is a Character object and Npc is an NPC object: + For 'director-stance' reporting (Name says/Name says), use {key} + syntax directly. For both `{key}` and `You/you(key)`, + `mapping[key].get_display_name(looker=recipient)` may be called + depending on who the recipient is. - char.location.msg_contents( - "{attacker} kicks {defender}", - mapping=dict(attacker=char, defender=npc), exclude=(char, npc)) + Examples: - This will result in everyone in the room seeing 'Char kicks NPC' - where everyone may potentially see different results for Char and Npc - depending on the results of `char.get_display_name(looker)` and - `npc.get_display_name(looker)` for each particular onlooker + Let's assume + - `player1.key -> "Player1"`, + `player1.get_display_name(looker=player2) -> "The First girl"` + - `player2.key -> "Player2"`, + `player2.get_display_name(looker=player1) -> "The Second girl"` + + Actor-stance: + :: + + char.location.msg_contents( + "$You() $conj(attack) $you(defender).", + mapping={"defender": player2}) + + - player1 will see `You attack The Second girl.` + - player2 will see 'The First girl attacks you.' + + Director-stance: + :: + + char.location.msg_contents( + "{attacker} attacks {defender}.", + mapping={"attacker:player1, "defender":player2}) + + - player1 will see: 'Player1 attacks The Second girl.' + - player2 will see: 'The First girl attacks Player2' """ # we also accept an outcommand on the form (message, {kwargs}) is_outcmd = text and is_iter(text) inmessage = text[0] if is_outcmd else text outkwargs = text[1] if is_outcmd and len(text) > 1 else {} + mapping = mapping or {} + you = from_obj or self + + if 'you' not in mapping: + mapping[you] = you contents = self.contents if exclude: exclude = make_iter(exclude) contents = [obj for obj in contents if obj not in exclude] - for obj in contents: - if mapping: - substitutions = { - t: sub.get_display_name(obj) if hasattr(sub, "get_display_name") else str(sub) - for t, sub in mapping.items() - } - outmessage = inmessage.format(**substitutions) - else: - outmessage = inmessage - obj.msg(text=(outmessage, outkwargs), from_obj=from_obj, **kwargs)
    + + for receiver in contents: + + # actor-stance replacements + inmessage = _MSG_CONTENTS_PARSER.parse( + inmessage, raise_errors=True, return_string=True, + caller=you, receiver=receiver, mapping=mapping) + + # director-stance replacements + outmessage = inmessage.format( + **{key: obj.get_display_name(looker=receiver) + if hasattr(obj, "get_display_name") else str(obj) + for key, obj in mapping.items()}) + + receiver.msg(text=(outmessage, outkwargs), from_obj=from_obj, **kwargs)
    [docs] def move_to( self, @@ -811,7 +883,7 @@ moving to a None location. If you want to run hooks, run them manually (and make sure they can manage None locations). move_hooks (bool): If False, turn off the calling of move-related hooks - (at_before/after_move etc) with quiet=True, this is as quiet a move + (at_pre/post_move etc) with quiet=True, this is as quiet a move as can be done. Keyword Args: @@ -828,23 +900,22 @@ The `DefaultObject` hooks called (if `move_hooks=True`) are, in order: - 1. `self.at_before_move(destination)` (if this returns False, move is aborted) + 1. `self.at_pre_move(destination)` (if this returns False, move is aborted) 2. `source_location.at_object_leave(self, destination)` 3. `self.announce_move_from(destination)` 4. (move happens here) 5. `self.announce_move_to(source_location)` 6. `destination.at_object_receive(self, source_location)` - 7. `self.at_after_move(source_location)` + 7. `self.at_post_move(source_location)` """ - def logerr(string="", err=None): """Simple log helper method""" logger.log_trace() self.msg("%s%s" % (string, "" if err is None else " (%s)" % err)) return - errtxt = _("Couldn't perform move ('%s'). Contact an admin.") + errtxt = _("Couldn't perform move ({err}). Contact an admin.") if not emit_to_obj: emit_to_obj = self @@ -859,14 +930,13 @@ if destination.destination and use_destination: # traverse exits destination = destination.destination - # Before the move, call eventual pre-commands. if move_hooks: try: - if not self.at_before_move(destination): + if not self.at_pre_move(destination, **kwargs): return False except Exception as err: - logerr(errtxt % "at_before_move()", err) + logerr(errtxt.format(err="at_pre_move()"), err) return False # Save the old location @@ -875,9 +945,9 @@ # Call hook on source location if move_hooks and source_location: try: - source_location.at_object_leave(self, destination) + source_location.at_object_leave(self, destination, **kwargs) except Exception as err: - logerr(errtxt % "at_object_leave()", err) + logerr(errtxt.format(err="at_object_leave()"), err) return False if not quiet: @@ -885,14 +955,14 @@ try: self.announce_move_from(destination, **kwargs) except Exception as err: - logerr(errtxt % "at_announce_move()", err) + logerr(errtxt.format(err="at_announce_move()"), err) return False # Perform move try: self.location = destination except Exception as err: - logerr(errtxt % "location change", err) + logerr(errtxt.format(err="location change"), err) return False if not quiet: @@ -900,25 +970,25 @@ try: self.announce_move_to(source_location, **kwargs) except Exception as err: - logerr(errtxt % "announce_move_to()", err) + logerr(errtxt.format(err="announce_move_to()"), err) return False if move_hooks: # Perform eventual extra commands on the receiving location # (the object has already arrived at this point) try: - destination.at_object_receive(self, source_location) + destination.at_object_receive(self, source_location, **kwargs) except Exception as err: - logerr(errtxt % "at_object_receive()", err) + logerr(errtxt.format(err="at_object_receive()"), err) return False # Execute eventual extra commands on this object after moving it # (usually calling 'look') if move_hooks: try: - self.at_after_move(source_location) + self.at_post_move(source_location, **kwargs) except Exception as err: - logerr(errtxt % "at_after_move", err) + logerr(errtxt.format(err="at_post_move"), err) return False return True
    @@ -926,6 +996,7 @@ """ Destroys all of the exits and any exits pointing to this object as a destination. + """ for out_exit in [exi for exi in ObjectDB.objects.get_contents(self) if exi.db_destination]: out_exit.delete() @@ -936,6 +1007,7 @@ """ Moves all objects (accounts/things) to their home location or to default home. + """ # Gather up everything that thinks this is its location. default_home_id = int(settings.DEFAULT_HOME.lstrip("#")) @@ -945,8 +1017,8 @@ # we are deleting default home! default_home = None except Exception: - string = _("Could not find default home '(#%d)'.") - logger.log_err(string % default_home_id) + string = _("Could not find default home '(#{dbid})'.") + logger.log_err(string.format(dbid=default_home_id)) default_home = None for obj in self.contents: @@ -958,18 +1030,17 @@ # If for some reason it's still None... if not home: - string = "Missing default home, '%s(#%d)' " - string += "now has a null location." obj.location = None obj.msg(_("Something went wrong! You are dumped into nowhere. Contact an admin.")) - logger.log_err(string % (obj.name, obj.dbid)) + logger.log_err("Missing default home - '{name}(#{dbid})' now " + "has a null location.".format(name=obj.name, dbid=obj.dbid)) return if obj.has_account: if home: string = "Your current location has ceased to exist," - string += " moving you to %s(#%d)." - obj.msg(_(string) % (home.name, home.dbid)) + string += " moving you to (#{dbid})." + obj.msg(_(string).format(dbid=home.dbid)) else: # Famous last words: The account should never see this. string = "This place should not exist ... contact an admin." @@ -1076,8 +1147,8 @@
    [docs] def at_object_post_copy(self, new_obj, **kwargs): """ - Called by DefaultObject.copy(). Meant to be overloaded. In case there's extra data not covered by - .copy(), this can be used to deal with it. + Called by DefaultObject.copy(). Meant to be overloaded. In case there's extra data not + covered by .copy(), this can be used to deal with it. Args: new_obj (Object): The new Copy of this object. @@ -1125,7 +1196,7 @@ self.account = None for script in _ScriptDB.objects.get_all_scripts_on_obj(self): - script.stop() + script.delete() # Destroy any exits to and from this room, if any self.clear_exits() @@ -1216,7 +1287,7 @@ self.aliases.batch_add(*cdict["aliases"]) if cdict.get("location"): cdict["location"].at_object_receive(self, None) - self.at_after_move(None) + self.at_post_move(None) if cdict.get("tags"): # this should be a list of tags, tuples (key, category) or (key, category, data) self.tags.batch_add(*cdict["tags"]) @@ -1287,7 +1358,7 @@
    [docs] def at_object_delete(self): """ - Called just before the database object is permanently + Called just before the database object is persistently delete()d from the database. If this method returns False, deletion is aborted. @@ -1424,7 +1495,7 @@ # hooks called when moving the object -
    [docs] def at_before_move(self, destination, **kwargs): +
    [docs] def at_pre_move(self, destination, **kwargs): """ Called just before starting to move this object to destination. @@ -1445,6 +1516,9 @@ # return has_perm(self, destination, "can_move") return True
    + # deprecated alias + at_before_move = at_pre_move +
    [docs] def announce_move_from(self, destination, msg=None, mapping=None, **kwargs): """ Called if the move is to be announced. This is @@ -1518,7 +1592,8 @@ if not source_location and self.location.has_account: # This was created from nowhere and added to an account's # inventory; it's probably the result of a create command. - string = "You now have %s in your possession." % self.get_display_name(self.location) + string = _("You now have {name} in your possession.").format( + name=self.get_display_name(self.location)) self.location.msg(string) return @@ -1526,9 +1601,9 @@ if msg: string = msg else: - string = "{object} arrives to {destination} from {origin}." + string = _("{object} arrives to {destination} from {origin}.") else: - string = "{object} arrives to {destination}." + string = _("{object} arrives to {destination}.") origin = source_location destination = self.location @@ -1554,7 +1629,7 @@ destination.msg_contents(string, exclude=(self,), from_obj=self, mapping=mapping)
    -
    [docs] def at_after_move(self, source_location, **kwargs): +
    [docs] def at_post_move(self, source_location, **kwargs): """ Called after move has completed, regardless of quiet mode or not. Allows changes to the object due to the location it is @@ -1568,6 +1643,9 @@ """ pass
    + # deprecated + at_after_move = at_post_move +
    [docs] def at_object_leave(self, moved_obj, target_location, **kwargs): """ Called just before an object leaves from inside this object @@ -1601,7 +1679,7 @@ normally by calling `traversing_object.move_to(target_location)`. It is normally only implemented by Exit objects. If it returns False (usually - because `move_to` returned False), `at_after_traverse` below + because `move_to` returned False), `at_post_traverse` below should not be called and instead `at_failed_traverse` should be called. @@ -1614,7 +1692,7 @@ """ pass
    -
    [docs] def at_after_traverse(self, traversing_object, source_location, **kwargs): +
    [docs] def at_post_traverse(self, traversing_object, source_location, **kwargs): """ Called just after an object successfully used this object to traverse to another object (i.e. this object is a type of @@ -1631,6 +1709,9 @@ """ pass
    + # deprecated + at_after_traverse = at_post_traverse +
    [docs] def at_failed_traverse(self, traversing_object, **kwargs): """ This is called if an object fails to traverse this object for @@ -1701,53 +1782,130 @@ # hooks called by the default cmdset. +
    [docs] def get_visible_contents(self, looker, **kwargs): + """ + Get all contents of this object that a looker can see (whatever that means, by default it + checks the 'view' lock), grouped by type. Helper method to return_appearance. + + Args: + looker (Object): The entity looking. + **kwargs (any): Passed from `return_appearance`. Unused by default. + + Returns: + dict: A dict of lists categorized by type. Byt default this + contains 'exits', 'characters' and 'things'. The elements of these + lists are the actual objects. + + """ + def filter_visible(obj_list): + return [obj for obj in obj_list if obj != looker and obj.access(looker, "view")] + + return { + "exits": filter_visible(self.contents_get(content_type="exit")), + "characters": filter_visible(self.contents_get(content_type="character")), + "things": filter_visible(self.contents_get(content_type="object")) + }
    + +
    [docs] def get_content_names(self, looker, **kwargs): + """ + Get the proper names for all contents of this object. Helper method + for return_appearance. + + Args: + looker (Object): The entity looking. + **kwargs (any): Passed from `return_appearance`. Passed into + `get_display_name` for each found entity. + + Returns: + dict: A dict of lists categorized by type. Byt default this + contains 'exits', 'characters' and 'things'. The elements + of these lists are strings - names of the objects that + can depend on the looker and also be grouped in the case + of multiple same-named things etc. + + Notes: + This method shouldn't add extra coloring to the names beyond what is + already given by the .get_display_name() (and the .name field) already. + Per-type coloring can be applied in `return_apperance`. + + """ + # a mapping {'exits': [...], 'characters': [...], 'things': [...]} + contents_map = self.get_visible_contents(looker, **kwargs) + + character_names = [char.get_display_name(looker, **kwargs) + for char in contents_map['characters']] + exit_names = [exi.get_display_name(looker, **kwargs) for exi in contents_map['exits']] + + # group all same-named things under one name + things = defaultdict(list) + for thing in contents_map['things']: + things[thing.get_display_name(looker, **kwargs)].append(thing) + + # pluralize same-named things + thing_names = [] + for thingname, thinglist in sorted(things.items()): + nthings = len(thinglist) + thing = thinglist[0] + singular, plural = thing.get_numbered_name(nthings, looker, key=thingname) + thing_names.append(singular if nthings == 1 else plural) + + return { + "exits": exit_names, + "characters": character_names, + "things": thing_names + }
    +
    [docs] def return_appearance(self, looker, **kwargs): """ - This formats a description. It is the hook a 'look' command - should call. + Main callback used by 'look' for the object to describe itself. + This formats a description. By default, this looks for the `appearance_template` + string set on this class and populates it with formatting keys + 'name', 'desc', 'exits', 'characters', 'things' as well as + (currently empty) 'header'/'footer'. Args: looker (Object): Object doing the looking. **kwargs (dict): Arbitrary, optional arguments for users - overriding the call (unused by default). + overriding the call. This is passed into the helper + methods and into `get_display_name` calls. + + Returns: + str: The description of this entity. By default this includes + the entity's name, description and any contents inside it. + + Notes: + To simply change the layout of how the object displays itself (like + adding some line decorations or change colors of different sections), + you can simply edit `.appearance_template`. You only need to override + this method (and/or its helpers) if you want to change what is passed + into the template or want the most control over output. + """ + if not looker: - return "" - # get and identify all objects - 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 - if desc: - string += "%s" % desc - if exits: - string += "\n|wExits:|n " + list_to_string(exits) - if users or things: - # handle pluralization of things (never pluralize users) - thing_strings = [] - for key, itemlist in sorted(things.items()): - nitem = len(itemlist) - if nitem == 1: - key, _ = itemlist[0].get_numbered_name(nitem, looker, key=key) - else: - key = [item.get_numbered_name(nitem, looker, key=key)[1] for item in itemlist][ - 0 - ] - thing_strings.append(key) + return '' - string += "\n|wYou see:|n " + list_to_string(users + thing_strings) + # ourselves + name = self.get_display_name(looker, **kwargs) + desc = self.db.desc or "You see nothing special." - return string
    + # contents + content_names_map = self.get_content_names(looker, **kwargs) + exits = list_to_string(content_names_map['exits']) + characters = list_to_string(content_names_map['characters']) + things = list_to_string(content_names_map['things']) + + # populate the appearance_template string. It's a good idea to strip it and + # let the client add any extra spaces instead. + return self.appearance_template.format( + header='', + name=name, + desc=desc, + exits=f"|wExits:|n {exits}" if exits else '', + characters=f"\n|wCharacters:|n {characters}" if characters else '', + things=f"\n|wYou see:|n {things}" if things else '', + footer='' + ).strip()
    [docs] def at_look(self, target, **kwargs): """ @@ -1795,7 +1953,7 @@ """ pass
    -
    [docs] def at_before_get(self, getter, **kwargs): +
    [docs] def at_pre_get(self, getter, **kwargs): """ Called by the default `get` command before this object has been picked up. @@ -1814,6 +1972,9 @@ """ return True
    + # deprecated + at_before_get = at_pre_get +
    [docs] def at_get(self, getter, **kwargs): """ Called by the default `get` command when this object has been @@ -1826,12 +1987,12 @@ Notes: This hook cannot stop the pickup from happening. Use - permissions or the at_before_get() hook for that. + permissions or the at_pre_get() hook for that. """ pass
    -
    [docs] def at_before_give(self, giver, getter, **kwargs): +
    [docs] def at_pre_give(self, giver, getter, **kwargs): """ Called by the default `give` command before this object has been given. @@ -1852,6 +2013,9 @@ """ return True
    + # deprecated + at_before_give = at_pre_give +
    [docs] def at_give(self, giver, getter, **kwargs): """ Called by the default `give` command when this object has been @@ -1865,12 +2029,12 @@ Notes: This hook cannot stop the give from happening. Use - permissions or the at_before_give() hook for that. + permissions or the at_pre_give() hook for that. """ pass
    -
    [docs] def at_before_drop(self, dropper, **kwargs): +
    [docs] def at_pre_drop(self, dropper, **kwargs): """ Called by the default `drop` command before this object has been dropped. @@ -1896,6 +2060,9 @@ return False return True
    + # deprecated + at_before_drop = at_pre_drop +
    [docs] def at_drop(self, dropper, **kwargs): """ Called by the default `drop` command when this object has been @@ -1908,12 +2075,12 @@ Notes: This hook cannot stop the drop from happening. Use - permissions or the at_before_drop() hook for that. + permissions or the at_pre_drop() hook for that. """ pass
    -
    [docs] def at_before_say(self, message, **kwargs): +
    [docs] def at_pre_say(self, message, **kwargs): """ Before the object says something. @@ -1929,7 +2096,8 @@ a say. This is sent by the whisper command by default. Other verbal commands could use this hook in similar ways. - receivers (Object or iterable): If set, this is the target or targets for the say/whisper. + receivers (Object or iterable): If set, this is the target or targets for the + say/whisper. Returns: message (str): The (possibly modified) text to be spoken. @@ -1937,6 +2105,9 @@ """ return message
    + # deprecated + at_before_say = at_pre_say +
    [docs] def at_say( self, message, @@ -1960,8 +2131,8 @@ msg_self (bool or str, optional): If boolean True, echo `message` to self. If a string, return that message. If False or unset, don't echo to self. msg_location (str, optional): The message to echo to self's location. - receivers (Object or iterable, optional): An eventual receiver or receivers of the message - (by default only used by whispers). + receivers (Object or iterable, optional): An eventual receiver or receivers of the + message (by default only used by whispers). msg_receivers(str): Specific message to pass to the receiver(s). This will parsed with the {receiver} placeholder replaced with the given receiver. Keyword Args: @@ -1996,8 +2167,7 @@ msg_type = "whisper" msg_self = ( '{self} whisper to {all_receivers}, "|n{speech}|n"' - if msg_self is True - else msg_self + if msg_self is True else msg_self ) msg_receivers = msg_receivers or '{object} whispers: "|n{speech}|n"' msg_location = None @@ -2084,6 +2254,9 @@ """ + # 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 = ( @@ -2123,6 +2296,13 @@ # 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 @@ -2139,7 +2319,7 @@ # Check to make sure account does not have too many chars if account: if len(account.characters) >= settings.MAX_NR_CHARACTERS: - errors.append("There are too many characters associated with this account.") + errors.append(_("There are too many characters associated with this account.")) return obj, errors # Create the Character @@ -2155,7 +2335,8 @@ # Add locks if not locks and account: - # Allow only the character itself and the creator account to puppet this character (and Developers). + # Allow only the character itself and the creator account to puppet this character + # (and Developers). locks = cls.lockstring.format(**{"character_id": obj.id, "account_id": account.id}) elif not locks and not account: locks = cls.lockstring.format(**{"character_id": obj.id, "account_id": -1}) @@ -2164,14 +2345,47 @@ # If no description is set, set a default description if description or not obj.db.desc: - obj.db.desc = description if description else "This is a character." + obj.db.desc = description if description else _("This is a character.") except Exception as e: - errors.append("An error occurred while creating this '%s' object." % key) + errors.append(f"An error occurred while creating object '{key} object.") logger.log_err(e) 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. @@ -2187,15 +2401,18 @@ ";".join(["get:false()", "call:false()"]) # noone can pick up the character ) # no commands can be called on character from outside # add the default cmdset - self.cmdset.add_default(settings.CMDSET_CHARACTER, permanent=True)
    + self.cmdset.add_default(settings.CMDSET_CHARACTER, persistent=True)
    -
    [docs] def at_after_move(self, source_location, **kwargs): +
    [docs] def at_post_move(self, source_location, **kwargs): """ We make sure to look around after a move. """ if self.location.access(self, "view"): - self.msg(self.at_look(self.location))
    + self.msg(text=(self.at_look(self.location), {"type": "look"}))
    + + # deprecated + at_after_move = at_post_move
    [docs] def at_pre_puppet(self, account, session=None, **kwargs): """ @@ -2203,6 +2420,7 @@ Args: account (Account): This is the connecting account. session (Session): Session controlling the connection. + """ if ( self.location is None @@ -2216,7 +2434,8 @@ self.db.prelogout_location = self.location # save location again to be sure. else: account.msg( - "|r%s has no location and no home is set.|n" % self, session=session + _("|r{obj} has no location and no home is set.|n").format(obj=self), + session=session ) # Note to set home.
    [docs] def at_post_puppet(self, **kwargs): @@ -2234,11 +2453,12 @@ puppeting this Object. """ - self.msg("\nYou become |c%s|n.\n" % self.name) + self.msg(_("\nYou become |c{name}|n.\n").format(name=self.key)) self.msg((self.at_look(self.location), {"type": "look"}), options=None) def message(obj, from_obj): - obj.msg("%s has entered the game." % self.get_display_name(obj), from_obj=from_obj) + obj.msg(_("{name} has entered the game.").format(name=self.get_display_name(obj)), + from_obj=from_obj) self.location.for_contents(message, exclude=[self], from_obj=self)
    @@ -2261,7 +2481,8 @@ if self.location: def message(obj, from_obj): - obj.msg("%s has left the game." % self.get_display_name(obj), from_obj=from_obj) + obj.msg(_("{name} has left the game.").format(name=self.get_display_name(obj)), + from_obj=from_obj) self.location.for_contents(message, exclude=[self], from_obj=self) self.db.prelogout_location = self.location @@ -2272,6 +2493,7 @@ """ Returns the idle time of the least idle session in seconds. If no sessions are connected it returns nothing. + """ idle = [session.cmd_last_visible for session in self.sessions.all()] if idle: @@ -2283,6 +2505,7 @@ """ Returns the maximum connection time of all connected sessions in seconds. Returns nothing if there are no sessions. + """ conn = [session.conn_time for session in self.sessions.all()] if conn: @@ -2300,6 +2523,10 @@ 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 = ( @@ -2360,7 +2587,7 @@ if not locks and account: locks = cls.lockstring.format(**{"id": account.id}) elif not locks and not account: - locks = cls.lockstring(**{"id": obj.id}) + locks = cls.lockstring.format(**{"id": obj.id}) obj.locks.add(locks) @@ -2372,7 +2599,7 @@ # If no description is set, set a default description if description or not obj.db.desc: - obj.db.desc = description if description else "This is a room." + obj.db.desc = description if description else _("This is a room.") except Exception as e: errors.append("An error occurred while creating this '%s' object." % key) @@ -2434,7 +2661,9 @@ overriding the call (unused by default). Returns: - A string with identifying information to disambiguate the command, conventionally with a preceding space. + A string with identifying information to disambiguate the command, conventionally with a + preceding space. + """ if self.obj.destination: return " (exit to %s)" % self.obj.destination.get_display_name(caller) @@ -2458,6 +2687,7 @@ """ + _content_types = ("exit",) exit_command = ExitCommand priority = 101 @@ -2575,7 +2805,7 @@ # If no description is set, set a default description if description or not obj.db.desc: - obj.db.desc = description if description else "This is an exit." + obj.db.desc = description if description else _("This is an exit.") except Exception as e: errors.append("An error occurred while creating this '%s' object." % key) @@ -2624,7 +2854,7 @@ if "force_init" in kwargs or not self.cmdset.has_cmdset("ExitCmdSet", must_be_default=True): # we are resetting, or no exit-cmdset was set. Create one dynamically. - self.cmdset.add_default(self.create_exit_cmdset(self), permanent=False)
    + self.cmdset.add_default(self.create_exit_cmdset(self), persistent=False)
    [docs] def at_init(self): """ @@ -2648,7 +2878,7 @@ """ source_location = traversing_object.location if traversing_object.move_to(target_location): - self.at_after_traverse(traversing_object, source_location) + self.at_post_traverse(traversing_object, source_location) else: if self.db.err_traverse: # if exit has a better error message, let's use it. @@ -2672,7 +2902,7 @@ read for an error string instead. """ - traversing_object.msg("You cannot go there.")
    + traversing_object.msg(_("You cannot go there."))
    @@ -2698,11 +2928,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/prototypes/menus.html b/docs/0.9.5/_modules/evennia/prototypes/menus.html index 16a6583661..55aea3f377 100644 --- a/docs/0.9.5/_modules/evennia/prototypes/menus.html +++ b/docs/0.9.5/_modules/evennia/prototypes/menus.html @@ -220,9 +220,7 @@ if kwargs.get("test_parse", True): out.append(" Simulating prototype-func parsing ...") - err, parsed_value = protlib.protfunc_parser(value, testing=True) - if err: - out.append(" |yPython `literal_eval` warning: {}|n".format(err)) + parsed_value = protlib.protfunc_parser(value, testing=True, prototype=prototype) if parsed_value != value: out.append( " |g(Example-)value when parsed ({}):|n {}".format(type(parsed_value), parsed_value) @@ -307,7 +305,7 @@ def _format_protfuncs(): out = [] sorted_funcs = [ - (key, func) for key, func in sorted(protlib.PROT_FUNCS.items(), key=lambda tup: tup[0]) + (key, func) for key, func in sorted(protlib.FUNC_PARSER.callables.items(), key=lambda tup: tup[0]) ] for protfunc_name, protfunc in sorted_funcs: out.append( @@ -1010,7 +1008,7 @@ return "node_typeclass" -def _typeclass_select(caller, typeclass): +def _typeclass_select(caller, typeclass, **kwargs): """Select typeclass from list and add it to prototype. Return next node to go to.""" ret = _set_property(caller, typeclass, prop="typeclass", processor=str) caller.msg("Selected typeclass |c{}|n.".format(typeclass)) @@ -2158,7 +2156,8 @@ objects = kwargs["objects"] back_node = kwargs["back_node"] diff = kwargs.get("diff", None) - num_changed = spawner.batch_update_objects_with_prototype(prototype, diff=diff, objects=objects) + num_changed = spawner.batch_update_objects_with_prototype(prototype, diff=diff, objects=objects, + caller=caller) caller.msg("|g{num} objects were updated successfully.|n".format(num=num_changed)) return back_node @@ -2526,7 +2525,7 @@ if not prototype.get("location"): prototype["location"] = caller - obj = spawner.spawn(prototype) + obj = spawner.spawn(prototype, caller=caller) if obj: obj = obj[0] text = "|gNew instance|n {key} ({dbref}) |gspawned at location |n{loc}|n|g.|n".format( @@ -2624,7 +2623,7 @@ # prototype load node -def _prototype_load_select(caller, prototype_key): +def _prototype_load_select(caller, prototype_key, **kwargs): matches = protlib.search_prototype(key=prototype_key) if matches: prototype = matches[0] @@ -2825,11 +2824,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/prototypes/protfuncs.html b/docs/0.9.5/_modules/evennia/prototypes/protfuncs.html index 18dbd86392..7140756794 100644 --- a/docs/0.9.5/_modules/evennia/prototypes/protfuncs.html +++ b/docs/0.9.5/_modules/evennia/prototypes/protfuncs.html @@ -42,35 +42,30 @@

    Source code for evennia.prototypes.protfuncs

     """
    -Protfuncs are function-strings embedded in a prototype and allows for a builder to create a
    -prototype with custom logics without having access to Python. The Protfunc is parsed using the
    -inlinefunc parser but is fired at the moment the spawning happens, using the creating object's
    -session as input.
    +Protfuncs are FuncParser-callables that can be embedded in a prototype to
    +provide custom logic without having access to Python. The protfunc is parsed at
    +the time of spawning, using the creating object's session as input. If the
    +protfunc returns a non-string, this is what will be added to the prototype.
     
     In the prototype dict, the protfunc is specified as a string inside the prototype, e.g.:
     
         { ...
     
    -    "key": "$funcname(arg1, arg2, ...)"
    +    "key": "$funcname(args, kwargs)"
     
         ...  }
     
    -and multiple functions can be nested (no keyword args are supported). The result will be used as the
    -value for that prototype key for that individual spawn.
    -
    -Available protfuncs are callables in one of the modules of `settings.PROT_FUNC_MODULES`. They
    -are specified as functions
    +Available protfuncs are either all callables in one of the modules of `settings.PROT_FUNC_MODULES`
    +or all callables added to a dict FUNCPARSER_CALLABLES in such a module.
     
         def funcname (*args, **kwargs)
     
    -where *args are the arguments given in the prototype, and **kwargs are inserted by Evennia:
    +At spawn-time the spawner passes the following extra kwargs into each callable (in addition to
    +what is added in the call itself):
     
         - session (Session): The Session of the entity spawning using this prototype.
         - prototype (dict): The dict this protfunc is a part of.
         - current_key (str): The active key this value belongs to in the prototype.
    -    - testing (bool): This is set if this function is called as part of the prototype validation; if
    -        set, the protfunc should take care not to perform any persistent actions, such as operate on
    -        objects or add things to the database.
     
     Any traceback raised by this function will be handled at the time of spawning and abort the spawn
     before any object is created/updated. It must otherwise return the value to store for the specified
    @@ -78,315 +73,48 @@
     
     """
     
    -from ast import literal_eval
    -from random import randint as base_randint, random as base_random, choice as base_choice
    -import re
    -
    -from evennia.utils import search
    -from evennia.utils.utils import justify as base_justify, is_iter, to_str
    -
    -_PROTLIB = None
    -
    -_RE_DBREF = re.compile(r"\#[0-9]+")
    +from evennia.utils import funcparser
     
     
    -# default protfuncs
    -
    -
    -
    [docs]def random(*args, **kwargs): +
    [docs]def protfunc_callable_protkey(*args, **kwargs): """ - Usage: $random() - Returns a random value in the interval [0, 1) - - """ - return base_random()
    - - -
    [docs]def randint(*args, **kwargs): - """ - Usage: $randint(start, end) - Returns random integer in interval [start, end] - - """ - if len(args) != 2: - raise TypeError("$randint needs two arguments - start and end.") - start, end = int(args[0]), int(args[1]) - return base_randint(start, end)
    - - -
    [docs]def left_justify(*args, **kwargs): - """ - Usage: $left_justify(<text>) - Returns <text> left-justified. - - """ - if args: - return base_justify(args[0], align="l") - return ""
    - - -
    [docs]def right_justify(*args, **kwargs): - """ - Usage: $right_justify(<text>) - Returns <text> right-justified across screen width. - - """ - if args: - return base_justify(args[0], align="r") - return ""
    - - -
    [docs]def center_justify(*args, **kwargs): - - """ - Usage: $center_justify(<text>) - Returns <text> centered in screen width. - - """ - if args: - return base_justify(args[0], align="c") - return ""
    - - -
    [docs]def choice(*args, **kwargs): - """ - Usage: $choice(val, val, val, ...) - Returns one of the values randomly - """ - if args: - return base_choice(args) - return ""
    - - -
    [docs]def full_justify(*args, **kwargs): - - """ - Usage: $full_justify(<text>) - Returns <text> filling up screen width by adding extra space. - - """ - if args: - return base_justify(args[0], align="f") - return ""
    - - -
    [docs]def protkey(*args, **kwargs): - """ - Usage: $protkey(<key>) + Usage: $protkey(keyname) Returns the value of another key in this prototoype. Will raise an error if the key is not found in this prototype. """ - if args: - prototype = kwargs["prototype"] - return prototype[args[0].strip()]
    + if not args: + return "" - -
    [docs]def add(*args, **kwargs): - """ - Usage: $add(val1, val2) - Returns the result of val1 + val2. Values must be - valid simple Python structures possible to add, - such as numbers, lists etc. - - """ - if len(args) > 1: - val1, val2 = args[0], args[1] - # try to convert to python structures, otherwise, keep as strings - try: - val1 = literal_eval(val1.strip()) - except Exception: - pass - try: - val2 = literal_eval(val2.strip()) - except Exception: - pass - return val1 + val2 - raise ValueError("$add requires two arguments.")
    - - -
    [docs]def sub(*args, **kwargs): - """ - Usage: $del(val1, val2) - Returns the value of val1 - val2. Values must be - valid simple Python structures possible to - subtract. - - """ - if len(args) > 1: - val1, val2 = args[0], args[1] - # try to convert to python structures, otherwise, keep as strings - try: - val1 = literal_eval(val1.strip()) - except Exception: - pass - try: - val2 = literal_eval(val2.strip()) - except Exception: - pass - return val1 - val2 - raise ValueError("$sub requires two arguments.")
    - - -
    [docs]def mult(*args, **kwargs): - """ - Usage: $mul(val1, val2) - Returns the value of val1 * val2. The values must be - valid simple Python structures possible to - multiply, like strings and/or numbers. - - """ - if len(args) > 1: - val1, val2 = args[0], args[1] - # try to convert to python structures, otherwise, keep as strings - try: - val1 = literal_eval(val1.strip()) - except Exception: - pass - try: - val2 = literal_eval(val2.strip()) - except Exception: - pass - return val1 * val2 - raise ValueError("$mul requires two arguments.")
    - - -
    [docs]def div(*args, **kwargs): - """ - Usage: $div(val1, val2) - Returns the value of val1 / val2. Values must be numbers and - the result is always a float. - - """ - if len(args) > 1: - val1, val2 = args[0], args[1] - # try to convert to python structures, otherwise, keep as strings - try: - val1 = literal_eval(val1.strip()) - except Exception: - pass - try: - val2 = literal_eval(val2.strip()) - except Exception: - pass - return val1 / float(val2) - raise ValueError("$mult requires two arguments.")
    - - -
    [docs]def toint(*args, **kwargs): - """ - Usage: $toint(<number>) - Returns <number> as an integer. - """ - if args: - val = args[0] - try: - return int(literal_eval(val.strip())) - except ValueError: - return val - raise ValueError("$toint requires one argument.")
    - - -
    [docs]def eval(*args, **kwargs): - """ - Usage $eval(<expression>) - Returns evaluation of a simple Python expression. The string may *only* consist of the following - Python literal structures: strings, numbers, tuples, lists, dicts, booleans, - and None. The strings can also contain #dbrefs. Escape embedded protfuncs as $$protfunc(..) - - those will then be evaluated *after* $eval. - - """ - global _PROTLIB - if not _PROTLIB: - from evennia.prototypes import prototypes as _PROTLIB - - string = ",".join(args) - struct = literal_eval(string) - - if isinstance(struct, str): - # we must shield the string, otherwise it will be merged as a string and future - # literal_evas will pick up e.g. '2' as something that should be converted to a number - struct = '"{}"'.format(struct) - - # convert any #dbrefs to objects (also in nested structures) - struct = _PROTLIB.value_to_obj_or_any(struct) - - return struct
    - - -def _obj_search(*args, **kwargs): - "Helper function to search for an object" - - query = "".join(args) - session = kwargs.get("session", None) - return_list = kwargs.pop("return_list", False) - account = None - - if session: - account = session.account - - targets = search.search_object(query) - - if return_list: - retlist = [] - if account: - for target in targets: - if target.access(account, target, "control"): - retlist.append(target) - else: - retlist = targets - return retlist + prototype = kwargs.get("prototype", {}) + fieldname = args[0] + prot_value = None + if fieldname in prototype: + prot_value = prototype[fieldname] else: - # single-match - if not targets: - raise ValueError("$obj: Query '{}' gave no matches.".format(query)) - if len(targets) > 1: - raise ValueError( - "$obj: Query '{query}' gave {nmatches} matches. Limit your " - "query or use $objlist instead.".format(query=query, nmatches=len(targets)) - ) - target = targets[0] - if account: - if not target.access(account, target, "control"): - raise ValueError( - "$obj: Obj {target}(#{dbref} cannot be added - " - "Account {account} does not have 'control' access.".format( - target=target.key, dbref=target.id, account=account - ) - ) - return target + # check if it's an attribute + for attrtuple in prototype.get('attrs', []): + if attrtuple[0] == fieldname: + prot_value = attrtuple[1] + break + else: + raise AttributeError(f"{fieldname} not found in prototype\n{prototype}\n" + "(neither as prototype-field or as an Attribute") + if callable(prot_value): + raise RuntimeError(f"Error in prototype\n{prototype}\n$protkey can only reference static " + f"values/attributes (found {prot_value})") + try: + return funcparser.funcparser_callable_eval(prot_value, **kwargs) + except funcparser.ParsingError: + return prot_value
    -
    [docs]def obj(*args, **kwargs): - """ - Usage $obj(<query>) - Returns one Object searched globally by key, alias or #dbref. Error if more than one. - - """ - obj = _obj_search(return_list=False, *args, **kwargs) - if obj: - return "#{}".format(obj.id) - return "".join(args)
    - - -
    [docs]def objlist(*args, **kwargs): - """ - Usage $objlist(<query>) - Returns list with one or more Objects searched globally by key, alias or #dbref. - - """ - return ["#{}".format(obj.id) for obj in _obj_search(return_list=True, *args, **kwargs)]
    - - -
    [docs]def dbref(*args, **kwargs): - """ - Usage $dbref(<#dbref>) - Validate that a #dbref input is valid. - """ - if not args or len(args) < 1 or _RE_DBREF.match(args[0]) is None: - raise ValueError("$dbref requires a valid #dbref argument.") - - return obj(args[0])
    +# this is picked up by FuncParser +FUNCPARSER_CALLABLES = { + "protkey": protfunc_callable_protkey, + **funcparser.FUNCPARSER_CALLABLES, + **funcparser.SEARCHING_CALLABLES, +}
    @@ -412,11 +140,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/prototypes/prototypes.html b/docs/0.9.5/_modules/evennia/prototypes/prototypes.html index 5fe5f772fe..5f060639ad 100644 --- a/docs/0.9.5/_modules/evennia/prototypes/prototypes.html +++ b/docs/0.9.5/_modules/evennia/prototypes/prototypes.html @@ -50,10 +50,10 @@ import hashlib import time -from ast import literal_eval from django.conf import settings -from django.db.models import Q, Subquery +from django.db.models import Q from django.core.paginator import Paginator +from django.utils.translation import gettext as _ from evennia.scripts.scripts import DefaultScript from evennia.objects.models import ObjectDB from evennia.typeclasses.attributes import Attribute @@ -61,19 +61,17 @@ from evennia.utils.evmore import EvMore from evennia.utils.utils import ( all_from_module, + variable_from_module, make_iter, is_iter, dbid_to_obj, - callables_from_module, - get_all_typeclasses, - to_str, - dbref, justify, class_from_module, ) from evennia.locks.lockhandler import validate_lockstring, check_lockstring from evennia.utils import logger -from evennia.utils import inlinefuncs, dbserialize +from evennia.utils.funcparser import FuncParser +from evennia.utils import dbserialize from evennia.utils.evtable import EvTable @@ -99,13 +97,18 @@ "tags", "attrs", ) +_ERRSTR = _("Error") +_WARNSTR = _("Warning") PROTOTYPE_TAG_CATEGORY = "from_prototype" _PROTOTYPE_TAG_META_CATEGORY = "db_prototype" -PROT_FUNCS = {} _PROTOTYPE_FALLBACK_LOCK = "spawn:all();edit:all()" +# the protfunc parser +FUNC_PARSER = FuncParser(settings.PROT_FUNC_MODULES) + +
    [docs]class PermissionError(RuntimeError): pass
    @@ -122,7 +125,6 @@ """ Homogenize the more free-form prototype supported pre Evennia 0.7 into the stricter form. - Args: prototype (dict): Prototype. custom_keys (list, optional): Custom keys which should not be interpreted as attrs, beyond @@ -133,8 +135,8 @@ homogenizations like adding missing prototype_keys and setting a default typeclass. """ - if not prototype or not isinstance(prototype, dict): - return {} + if not prototype or isinstance(prototype, str): + return prototype reserved = _PROTOTYPE_RESERVED_KEYS + (custom_keys or ()) @@ -146,28 +148,74 @@ elif protkey in ("prototype_key", "prototype_desc"): prototype[protkey] = "" - attrs = list(prototype.get("attrs", [])) # break reference - tags = make_iter(prototype.get("tags", [])) - homogenized_tags = [] - homogenized = {} + homogenized_tags = [] + homogenized_attrs = [] + homogenized_parents = [] + for key, val in prototype.items(): if key in reserved: + # check all reserved keys if key == "tags": + # tags must be on form [(tag, category, data), ...] + tags = make_iter(prototype.get("tags", [])) for tag in tags: if not is_iter(tag): homogenized_tags.append((tag, None, None)) + elif tag: + ntag = len(tag) + if ntag == 1: + homogenized_tags.append((tag[0], None, None)) + elif ntag == 2: + homogenized_tags.append((tag[0], tag[1], None)) + else: + homogenized_tags.append(tag[:3]) + + elif key == "attrs": + attrs = list(prototype.get("attrs", [])) # break reference + for attr in attrs: + # attrs must be on form [(key, value, category, lockstr)] + if not is_iter(attr): + logger.log_error("Prototype's 'attr' field must " + f"be a list of tuples: {prototype}") + elif attr: + nattr = len(attr) + if nattr == 1: + # we assume a None-value + homogenized_attrs.append(attr[0], None, None, "") + elif nattr == 2: + homogenized_attrs.append(attr[0], attr[1], None, "") + elif nattr == 3: + homogenized_attrs.append(attr[0], attr[1], attr[2], "") + else: + homogenized_attrs.append(attr[:4]) + + elif key == "prototype_parent": + # homogenize any prototype-parents embedded directly as dicts + protparents = prototype.get('prototype_parent', []) + if isinstance(protparents, dict): + protparents = [protparents] + for parent in make_iter(protparents): + if isinstance(parent, dict): + # recursively homogenize directly embedded prototype parents + homogenized_parents.append( + homogenize_prototype(parent, custom_keys=custom_keys)) else: - homogenized_tags.append(tag) + # normal prototype-parent names are added as-is + homogenized_parents.append(parent) + else: + # another reserved key homogenized[key] = val else: - # unassigned keys -> attrs - attrs.append((key, val, None, "")) - if attrs: - homogenized["attrs"] = attrs + # unreserved keys -> attrs + homogenized_attrs.append((key, val, None, "")) + if homogenized_attrs: + homogenized["attrs"] = homogenized_attrs if homogenized_tags: homogenized["tags"] = homogenized_tags + if homogenized_parents: + homogenized['prototype_parent'] = homogenized_parents # add required missing parts that had defaults before @@ -185,43 +233,135 @@ return homogenized
    -# module-based prototypes +# module/dict-based prototypes -
    [docs]def load_module_prototypes(): +
    [docs]def load_module_prototypes(*mod_or_prototypes, override=True): """ - This is called by `evennia.__init__` as Evennia initializes. It's important - to do this late so as to not interfere with evennia initialization. + Load module prototypes. Also prototype-dicts passed directly to this function are considered + 'module' prototypes (they are impossible to change) but will have a module of None. + + Args: + *mod_or_prototypes (module or dict): Each arg should be a separate module or + prototype-dict to load. If none are given, `settings.PROTOTYPE_MODULES` will be used. + override (bool, optional): If prototypes should override existing ones already loaded. + Disabling this can allow for injecting prototypes into the system dynamically while + still allowing same prototype-keys to be overridden from settings (even though settings + is usually loaded before dynamic loading). + + Note: + This is called (without arguments) by `evennia.__init__` as Evennia initializes. It's + important to do this late so as to not interfere with evennia initialization. But it can + also be used later to add more prototypes to the library on the fly. This is requried + before a module-based prototype can be accessed by prototype-key. """ - for mod in settings.PROTOTYPE_MODULES: - # to remove a default prototype, override it with an empty dict. - # internally we store as (key, desc, locks, tags, prototype_dict) + global _MODULE_PROTOTYPE_MODULES, _MODULE_PROTOTYPES + + def _prototypes_from_module(mod): + """ + Load prototypes from a module, first by looking for a global list PROTOTYPE_LIST (a list of + dict-prototypes), and if not found, assuming all global-level dicts in the module are + prototypes. + + Args: + mod (module): The module to load from.evennia + + Returns: + list: A list of tuples `(prototype_key, prototype-dict)` where the prototype + has been homogenized. + + """ prots = [] - for variable_name, prot in all_from_module(mod).items(): - if isinstance(prot, dict): - if "prototype_key" not in prot: - prot["prototype_key"] = variable_name.lower() + prototype_list = variable_from_module(mod, "PROTOTYPE_LIST") + if prototype_list: + # found mod.PROTOTYPE_LIST - this should be a list of valid + # prototype dicts that must have 'prototype_key' set. + for prot in prototype_list: + if not isinstance(prot, dict): + logger.log_err(f"Prototype read from {mod}.PROTOTYPE_LIST " + f"is not a dict (skipping): {prot}") + continue + elif "prototype_key" not in prot: + logger.log_err(f"Prototype read from {mod}.PROTOTYPE_LIST " + f"is missing the 'prototype_key' (skipping): {prot}") + continue prots.append((prot["prototype_key"], homogenize_prototype(prot))) - # assign module path to each prototype_key for easy reference - _MODULE_PROTOTYPE_MODULES.update({prototype_key.lower(): mod for prototype_key, _ in prots}) - # make sure the prototype contains all meta info + else: + # load all global dicts in module as prototypes. If the prototype_key + # is not given, the variable name will be used. + for variable_name, prot in all_from_module(mod).items(): + if isinstance(prot, dict): + if "prototype_key" not in prot: + prot["prototype_key"] = variable_name.lower() + prots.append((prot["prototype_key"], homogenize_prototype(prot))) + return prots + + def _cleanup_prototype(prototype_key, prototype, mod=None): + """ + We need to handle externally determined prototype-keys and to make sure + the prototype contains all needed meta information. + + Args: + prototype_key (str): The determined name of the prototype. + prototype (dict): The prototype itself. + mod (module, optional): The module the prototype was loaded from, if any. + + Returns: + dict: The cleaned up prototype. + + """ + actual_prot_key = prototype.get("prototype_key", prototype_key).lower() + prototype.update( + { + "prototype_key": actual_prot_key, + "prototype_desc": ( + prototype["prototype_desc"] if "prototype_desc" in prototype else (mod or "N/A")), + "prototype_locks": ( + prototype["prototype_locks"] + if "prototype_locks" in prototype + else "use:all();edit:false()" + ), + "prototype_tags": list( + set(list(make_iter(prototype.get("prototype_tags", []))) + ["module"]) + ), + } + ) + return prototype + + if not mod_or_prototypes: + # in principle this means PROTOTYPE_MODULES could also contain prototypes, but that is + # rarely useful ... + mod_or_prototypes = settings.PROTOTYPE_MODULES + + for mod_or_dict in mod_or_prototypes: + + if isinstance(mod_or_dict, dict): + # a single prototype; we must make sure it has its key + prototype_key = mod_or_dict.get('prototype_key') + if not prototype_key: + raise ValidationError(f"The prototype {mod_or_prototype} does not contain a 'prototype_key'") + prots = [(prototype_key, mod_or_dict)] + mod = None + else: + # a module (or path to module). This can contain many prototypes; they can be keyed by + # variable-name too + prots = _prototypes_from_module(mod_or_dict) + mod = repr(mod_or_dict) + + # store all found prototypes for prototype_key, prot in prots: - actual_prot_key = prot.get("prototype_key", prototype_key).lower() - prot.update( - { - "prototype_key": actual_prot_key, - "prototype_desc": prot["prototype_desc"] if "prototype_desc" in prot else mod, - "prototype_locks": ( - prot["prototype_locks"] - if "prototype_locks" in prot - else "use:all();edit:false()" - ), - "prototype_tags": list( - set(list(make_iter(prot.get("prototype_tags", []))) + ["module"]) - ), - } - ) - _MODULE_PROTOTYPES[actual_prot_key] = prot
    + prototype = _cleanup_prototype(prototype_key, prot, mod=mod) + # the key can change since in-proto key is given prio over variable-name-based keys + actual_prototype_key = prototype['prototype_key'] + + if actual_prototype_key in _MODULE_PROTOTYPES and not override: + # don't override - useful to still let settings replace dynamic inserts + continue + + # make sure the prototype contains all meta info + _MODULE_PROTOTYPES[actual_prototype_key] = prototype + # track module path for display purposes + _MODULE_PROTOTYPE_MODULES[actual_prototype_key.lower()] = mod
    # Db-based prototypes @@ -230,6 +370,7 @@
    [docs]class DbPrototype(DefaultScript): """ This stores a single prototype, in an Attribute `prototype`. + """
    [docs] def at_script_creation(self): @@ -281,16 +422,18 @@ prototype_key = in_prototype.get("prototype_key") if not prototype_key: - raise ValidationError("Prototype requires a prototype_key") + raise ValidationError(_("Prototype requires a prototype_key")) prototype_key = str(prototype_key).lower() # we can't edit a prototype defined in a module if prototype_key in _MODULE_PROTOTYPES: - mod = _MODULE_PROTOTYPE_MODULES.get(prototype_key, "N/A") - raise PermissionError( - "{} is a read-only prototype " "(defined as code in {}).".format(prototype_key, mod) - ) + mod = _MODULE_PROTOTYPE_MODULES.get(prototype_key) + if mod: + err = _("{protkey} is a read-only prototype (defined as code in {module}).") + else: + err = _("{protkey} is a read-only prototype (passed directly as a dict).") + raise PermissionError(err.format(protkey=prototype_key, module=mod)) # make sure meta properties are included with defaults in_prototype["prototype_desc"] = in_prototype.get( @@ -354,28 +497,33 @@ """ if prototype_key in _MODULE_PROTOTYPES: - mod = _MODULE_PROTOTYPE_MODULES.get(prototype_key.lower(), "N/A") - raise PermissionError( - "{} is a read-only prototype " "(defined as code in {}).".format(prototype_key, mod) - ) + mod = _MODULE_PROTOTYPE_MODULES.get(prototype_key) + if mod: + err = _("{protkey} is a read-only prototype (defined as code in {module}).") + else: + err = _("{protkey} is a read-only prototype (passed directly as a dict).") + raise PermissionError(err.format(protkey=prototype_key, module=mod)) stored_prototype = DbPrototype.objects.filter(db_key__iexact=prototype_key) if not stored_prototype: - raise PermissionError("Prototype {} was not found.".format(prototype_key)) + raise PermissionError(_("Prototype {prototype_key} was not found.").format( + prototype_key=prototype_key)) stored_prototype = stored_prototype[0] if caller: if not stored_prototype.access(caller, "edit"): raise PermissionError( - "{} needs explicit 'edit' permissions to " - "delete prototype {}.".format(caller, prototype_key) + _("{caller} needs explicit 'edit' permissions to " + "delete prototype {prototype_key}.").format( + caller=caller, prototype_key=prototype_key) ) stored_prototype.delete() return True
    -
    [docs]def search_prototype(key=None, tags=None, require_single=False, return_iterators=False): +
    [docs]def search_prototype(key=None, tags=None, require_single=False, return_iterators=False, + no_db=False): """ Find prototypes based on key and/or tags, or all prototypes. @@ -389,6 +537,9 @@ return_iterators (bool): Optimized return for large numbers of db-prototypes. If set, separate returns of module based prototypes and paginate the db-prototype return. + no_db (bool): Optimization. If set, skip querying for database-generated prototypes and only + include module-based prototypes. This can lead to a dramatic speedup since + module-prototypes are static and require no db-lookup. Return: matches (list): Default return, all found prototype dicts. Empty list if @@ -430,7 +581,7 @@ if key: if key in mod_matches: # exact match - module_prototypes = [mod_matches[key]] + module_prototypes = [mod_matches[key].copy()] allow_fuzzy = False else: # fuzzy matching @@ -440,39 +591,48 @@ if key in prototype_key ] else: - module_prototypes = [match for match in mod_matches.values()] + # note - we return a copy of the prototype dict, otherwise using this with e.g. + # prototype_from_object will modify the base prototype for every object + module_prototypes = [match.copy() for match in mod_matches.values()] - # search db-stored prototypes - - if tags: - # exact match on tag(s) - tags = make_iter(tags) - tag_categories = ["db_prototype" for _ in tags] - db_matches = DbPrototype.objects.get_by_tag(tags, tag_categories) + if no_db: + db_matches = [] else: - db_matches = DbPrototype.objects.all() - - if key: - # exact or partial match on key - exact_match = db_matches.filter(Q(db_key__iexact=key)).order_by("db_key") - if not exact_match and allow_fuzzy: - # try with partial match instead - db_matches = db_matches.filter(Q(db_key__icontains=key)).order_by("db_key") + # search db-stored prototypes + if tags: + # exact match on tag(s) + tags = make_iter(tags) + tag_categories = ["db_prototype" for _ in tags] + db_matches = DbPrototype.objects.get_by_tag(tags, tag_categories) else: - db_matches = exact_match + db_matches = DbPrototype.objects.all() + + if key: + # exact or partial match on key + exact_match = db_matches.filter(Q(db_key__iexact=key)).order_by("db_key") + if not exact_match and allow_fuzzy: + # try with partial match instead + db_matches = db_matches.filter(Q(db_key__icontains=key)).order_by("db_key") + else: + db_matches = exact_match + + # convert to prototype + db_ids = db_matches.values_list("id", flat=True) + db_matches = ( + Attribute.objects.filter(scriptdb__pk__in=db_ids, db_key="prototype") + .values_list("db_value", flat=True) + .order_by("scriptdb__db_key") + ) - # convert to prototype - db_ids = db_matches.values_list("id", flat=True) - db_matches = ( - Attribute.objects.filter(scriptdb__pk__in=db_ids, db_key="prototype") - .values_list("db_value", flat=True) - .order_by("scriptdb__db_key") - ) if key and require_single: nmodules = len(module_prototypes) - ndbprots = db_matches.count() + ndbprots = db_matches.count() if db_matches else 0 if nmodules + ndbprots != 1: - raise KeyError(f"Found {nmodules + ndbprots} matching prototypes {module_prototypes}.") + raise KeyError(_( + "Found {num} matching prototypes among {module_prototypes}.").format( + num=nmodules + ndbprots, + module_prototypes=module_prototypes) + ) if return_iterators: # trying to get the entire set of prototypes - we must paginate @@ -502,10 +662,14 @@ Listing 1000+ prototypes can be very slow. So we customize EvMore to display an EvTable per paginated page rather than to try creating an EvTable for the entire dataset and then paginate it. + """
    [docs] def __init__(self, caller, *args, session=None, **kwargs): - """Store some extra properties on the EvMore class""" + """ + Store some extra properties on the EvMore class + + """ self.show_non_use = kwargs.pop("show_non_use", False) self.show_non_edit = kwargs.pop("show_non_edit", False) super().__init__(caller, *args, session=session, **kwargs)
    @@ -516,6 +680,7 @@ and we must handle these separately since they cannot be paginated in the same way. We will build the prototypes so that the db-prototypes come first (they are likely the most volatile), followed by the mod-prototypes. + """ dbprot_query, modprot_list = inp # set the number of entries per page to half the reported height of the screen @@ -537,6 +702,7 @@ """ The listing is separated in db/mod prototypes, so we need to figure out which one to pick based on the page number. Also, pageno starts from 0. + """ dbprot_pages, modprot_list = self._data @@ -545,15 +711,16 @@ else: # get the correct slice, adjusted for the db-prototypes pageno = max(0, pageno - self._npages_db) - return modprot_list[pageno * self.height : pageno * self.height + self.height]
    + return modprot_list[pageno * self.height: pageno * self.height + self.height]
    [docs] def page_formatter(self, page): - """Input is a queryset page from django.Paginator""" + """ + Input is a queryset page from django.Paginator + + """ caller = self._caller # get use-permissions of readonly attributes (edit is always False) - display_tuples = [] - table = EvTable( "|wKey|n", "|wSpawn/Edit|n", @@ -622,7 +789,7 @@ dbprot_query, modprot_list = search_prototype(key, tags, return_iterators=True) if not dbprot_query and not modprot_list: - caller.msg("No prototypes found.", session=session) + caller.msg(_("No prototypes found."), session=session) return None # get specific prototype (one value or exception) @@ -673,7 +840,7 @@ protkey = protkey and protkey.lower() or prototype.get("prototype_key", None) if strict and not bool(protkey): - _flags["errors"].append("Prototype lacks a `prototype_key`.") + _flags["errors"].append(_("Prototype lacks a 'prototype_key'.")) protkey = "[UNSET]" typeclass = prototype.get("typeclass") @@ -682,12 +849,13 @@ if strict and not (typeclass or prototype_parent): if is_prototype_base: _flags["errors"].append( - "Prototype {} requires `typeclass` " "or 'prototype_parent'.".format(protkey) + _("Prototype {protkey} requires `typeclass` " "or 'prototype_parent'.").format( + protkey=protkey) ) else: _flags["warnings"].append( - "Prototype {} can only be used as a mixin since it lacks " - "a typeclass or a prototype_parent.".format(protkey) + _("Prototype {protkey} can only be used as a mixin since it lacks " + "'typeclass' or 'prototype_parent' keys.").format(protkey=protkey) ) if strict and typeclass: @@ -695,34 +863,50 @@ class_from_module(typeclass) except ImportError as err: _flags["errors"].append( - "{}: Prototype {} is based on typeclass {}, which could not be imported!".format( - err, protkey, typeclass - ) + _("{err}: Prototype {protkey} is based on typeclass {typeclass}, " + "which could not be imported!").format( + err=err, protkey=protkey, typeclass=typeclass) ) + if prototype_parent and isinstance(prototype_parent, dict): + # the protparent is already embedded as a dict; + prototype_parent = [prototype_parent] + # recursively traverse prototype_parent chain - for protstring in make_iter(prototype_parent): - protstring = protstring.lower() - if protkey is not None and protstring == protkey: - _flags["errors"].append("Prototype {} tries to parent itself.".format(protkey)) - protparent = protparents.get(protstring) - if not protparent: - _flags["errors"].append( - "Prototype {}'s prototype_parent '{}' was not found.".format(protkey, protstring) - ) + if isinstance(protstring, dict): + # an already embedded prototype_parent + protparent = protstring + protstring = None + else: + protstring = protstring.lower() + if protkey is not None and protstring == protkey: + _flags["errors"].append(_("Prototype {protkey} tries to parent itself.").format( + protkey=protkey)) + protparent = protparents.get(protstring) + if not protparent: + _flags["errors"].append( + _("Prototype {protkey}'s `prototype_parent` (named '{parent}') " + "was not found.").format(protkey=protkey, parent=protstring) + ) + + # check for infinite recursion if id(prototype) in _flags["visited"]: _flags["errors"].append( - "{} has infinite nesting of prototypes.".format(protkey or prototype) + _("{protkey} has infinite nesting of prototypes.").format( + protkey=protkey or prototype) ) if _flags["errors"]: - raise RuntimeError("Error: " + "\nError: ".join(_flags["errors"])) + raise RuntimeError(f"{_ERRSTR}: " + f"\n{_ERRSTR}: ".join(_flags["errors"])) _flags["visited"].append(id(prototype)) _flags["depth"] += 1 + + # next step of recursive validation validate_prototype( protparent, protstring, protparents, is_prototype_base=is_prototype_base, _flags=_flags ) + _flags["visited"].pop() _flags["depth"] -= 1 @@ -732,16 +916,16 @@ # if we get back to the current level without a typeclass it's an error. if strict and is_prototype_base and _flags["depth"] <= 0 and not _flags["typeclass"]: _flags["errors"].append( - "Prototype {} has no `typeclass` defined anywhere in its parent\n " - "chain. Add `typeclass`, or a `prototype_parent` pointing to a " - "prototype with a typeclass.".format(protkey) + _("Prototype {protkey} has no `typeclass` defined anywhere in its parent\n " + "chain. Add `typeclass`, or a `prototype_parent` pointing to a " + "prototype with a typeclass.").format(protkey=protkey) ) if _flags["depth"] <= 0: if _flags["errors"]: - raise RuntimeError("Error: " + "\nError: ".join(_flags["errors"])) + raise RuntimeError(f"{_ERRSTR}:_" + f"\n{_ERRSTR}: ".join(_flags["errors"])) if _flags["warnings"]: - raise RuntimeWarning("Warning: " + "\nWarning: ".join(_flags["warnings"])) + raise RuntimeWarning(f"{_WARNSTR}: " + f"\n{_WARNSTR}: ".join(_flags["warnings"])) # make sure prototype_locks are set to defaults prototype_locks = [ @@ -758,18 +942,8 @@ prototype["prototype_locks"] = prototype_locks
    -# Protfunc parsing (in-prototype functions) - -for mod in settings.PROT_FUNC_MODULES: - try: - callables = callables_from_module(mod) - PROT_FUNCS.update(callables) - except ImportError: - logger.log_trace() - raise - - -
    [docs]def protfunc_parser(value, available_functions=None, testing=False, stacktrace=False, **kwargs): +
    [docs]def protfunc_parser(value, available_functions=None, testing=False, stacktrace=False, + caller=None, **kwargs): """ Parse a prototype value string for a protfunc and process it. @@ -781,45 +955,27 @@ protfuncs, all other types are returned as-is. available_functions (dict, optional): Mapping of name:protfunction to use for this parsing. If not set, use default sources. - testing (bool, optional): Passed to protfunc. If in a testing mode, some protfuncs may - behave differently. stacktrace (bool, optional): If set, print the stack parsing process of the protfunc-parser. Keyword Args: session (Session): Passed to protfunc. Session of the entity spawning the prototype. protototype (dict): Passed to protfunc. The dict this protfunc is a part of. current_key(str): Passed to protfunc. The key in the prototype that will hold this value. + caller (Object or Account): This is necessary for certain protfuncs that perform object + searches and have to check permissions. any (any): Passed on to the protfunc. Returns: - testresult (tuple): If `testing` is set, returns a tuple (error, result) where error is - either None or a string detailing the error from protfunc_parser or seen when trying to - run `literal_eval` on the parsed string. - any (any): A structure to replace the string on the prototype level. If this is a - callable or a (callable, (args,)) structure, it will be executed as if one had supplied - it to the prototype directly. This structure is also passed through literal_eval so one - can get actual Python primitives out of it (not just strings). It will also identify - eventual object #dbrefs in the output from the protfunc. + any: A structure to replace the string on the prototype leve. Note + that FunctionParser functions $funcname(*args, **kwargs) can return any + data type to insert into the prototype. """ if not isinstance(value, str): return value - available_functions = PROT_FUNCS if available_functions is None else available_functions + result = FUNC_PARSER.parse(value, raise_errors=True, return_str=False, caller=caller, **kwargs) - result = inlinefuncs.parse_inlinefunc( - value, available_funcs=available_functions, stacktrace=stacktrace, testing=testing, **kwargs - ) - - err = None - try: - result = literal_eval(result) - except ValueError: - pass - except Exception as exc: - err = str(exc) - if testing: - return err, result return result
    @@ -834,7 +990,7 @@ clr (str, optional): What coloration tag to use. """ out = [] - for protfunc_name, protfunc in PROT_FUNCS.items(): + for protfunc_name, protfunc in FUNC_PARSER.callables.items(): out.append( "- |c${name}|n - |W{docs}".format( name=protfunc_name, docs=protfunc.__doc__.strip().replace("\n", "") @@ -875,7 +1031,7 @@ attrs = prototype["attrs"] out = [] for (attrkey, value, category, locks) in attrs: - locks = ", ".join(lock for lock in locks if lock) + locks = locks if isinstance(locks, str) else ", ".join(lock for lock in locks if lock) category = "|ccategory:|n {}".format(category) if category else "" cat_locks = "" if category or locks: @@ -883,10 +1039,10 @@ category=category if category else "|wNone|n" ) out.append( - "{attrkey}{cat_locks} |c=|n {value}".format( + "{attrkey}{cat_locks}{locks} |c=|n {value}".format( attrkey=attrkey, cat_locks=cat_locks, - locks=locks if locks else "|wNone|n", + locks=" |w(locks:|n {locks})".format(locks=locks) if locks else "", value=value, ) ) @@ -941,10 +1097,12 @@ """ if action == "edit": if prototype_key in _MODULE_PROTOTYPES: - mod = _MODULE_PROTOTYPE_MODULES.get(prototype_key, "N/A") - logger.log_err( - "{} is a read-only prototype " "(defined as code in {}).".format(prototype_key, mod) - ) + mod = _MODULE_PROTOTYPE_MODULES.get(prototype_key) + if mod: + err = _("{protkey} is a read-only prototype (defined as code in {module}).") + else: + err = _("{protkey} is a read-only prototype (passed directly as a dict).") + logger.log_err(err.format(protkey=prototype_key, module=mod)) return False prototype = search_prototype(key=prototype_key) @@ -959,7 +1117,7 @@ return default
    -
    [docs]def init_spawn_value(value, validator=None): +
    [docs]def init_spawn_value(value, validator=None, caller=None, prototype=None): """ Analyze the prototype value and produce a value useful at the point of spawning. @@ -970,6 +1128,9 @@ other - will be assigned depending on the variable type validator (callable, optional): If given, this will be called with the value to check and guarantee the outcome is of a given type. + caller (Object or Account): This is necessary for certain protfuncs that perform object + searches and have to check permissions. + prototype (dict): Prototype this is to be used for. Necessary for certain protfuncs. Returns: any (any): The (potentially pre-processed value to use for this prototype key) @@ -984,7 +1145,7 @@ value = validator(value[0](*make_iter(args))) else: value = validator(value) - result = protfunc_parser(value) + result = protfunc_parser(value, caller=caller, prototype=prototype) if result != value: return validator(result) return result
    @@ -1009,7 +1170,8 @@ stype = type(value) if is_iter(value): if stype == dict: - return {value_to_obj_or_any(key): value_to_obj_or_any(val) for key, val in value.iter()} + return {value_to_obj_or_any(key): value_to_obj_or_any(val) + for key, val in value.items()} else: return stype([value_to_obj_or_any(val) for val in value]) return dbid_to_obj(value, ObjectDB)
    @@ -1038,11 +1200,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/prototypes/spawner.html b/docs/0.9.5/_modules/evennia/prototypes/spawner.html index c9ef6e0655..49a7c905f9 100644 --- a/docs/0.9.5/_modules/evennia/prototypes/spawner.html +++ b/docs/0.9.5/_modules/evennia/prototypes/spawner.html @@ -83,8 +83,8 @@ supported are 'edit' and 'use'. prototype_tags(list, optional): List of tags or tuples (tag, category) used to group prototype in listings - prototype_parent (str, tuple or callable, optional): name (prototype_key) of eventual parent prototype, or - a list of parents, for multiple left-to-right inheritance. + prototype_parent (str, tuple or callable, optional): name (prototype_key) of eventual parent + prototype, or a list of parents, for multiple left-to-right inheritance. prototype: Deprecated. Same meaning as 'parent'. typeclass (str or callable, optional): if not set, will use typeclass of parent prototype or use @@ -181,6 +181,7 @@ import time from django.conf import settings +from django.utils.translation import gettext as _ import evennia from evennia.objects.models import ObjectDB @@ -196,7 +197,8 @@ _CREATE_OBJECT_KWARGS = ("key", "location", "home", "destination") -_PROTOTYPE_META_NAMES = ("prototype_key", "prototype_desc", "prototype_tags", "prototype_locks") +_PROTOTYPE_META_NAMES = ("prototype_key", "prototype_desc", "prototype_tags", + "prototype_locks", "prototype_parent") _PROTOTYPE_ROOT_NAMES = ( "typeclass", "key", @@ -261,10 +263,23 @@ _workprot = {} if _workprot is None else _workprot if "prototype_parent" in inprot: # move backwards through the inheritance - for prototype in make_iter(inprot["prototype_parent"]): + + prototype_parents = inprot["prototype_parent"] + if isinstance(prototype_parents, dict): + # protparent already embedded as-is + prototype_parents = [prototype_parents] + + for prototype in make_iter(prototype_parents): + if isinstance(prototype, dict): + # protparent already embedded as-is + parent_prototype = prototype + else: + # protparent given by-name + parent_prototype = protparents.get(prototype.lower(), {}) + # Build the prot dictionary in reverse order, overloading new_prot = _get_prototype( - protparents.get(prototype.lower(), {}), protparents, _workprot=_workprot + parent_prototype, protparents, _workprot=_workprot ) # attrs, tags have internal structure that should be inherited separately @@ -286,7 +301,7 @@ return _workprot -
    [docs]def flatten_prototype(prototype, validate=False): +
    [docs]def flatten_prototype(prototype, validate=False, no_db=False): """ Produce a 'flattened' prototype, where all prototype parents in the inheritance tree have been merged into a final prototype. @@ -294,6 +309,8 @@ Args: prototype (dict): Prototype to flatten. Its `prototype_parent` field will be parsed. validate (bool, optional): Validate for valid keys etc. + no_db (bool, optional): Don't search db-based prototypes. This can speed up + searching dramatically since module-based prototypes are static. Returns: flattened (dict): The final, flattened prototype. @@ -302,7 +319,8 @@ if prototype: prototype = protlib.homogenize_prototype(prototype) - protparents = {prot["prototype_key"].lower(): prot for prot in protlib.search_prototype()} + protparents = {prot["prototype_key"].lower(): prot + for prot in protlib.search_prototype(no_db=no_db)} protlib.validate_prototype( prototype, None, protparents, is_prototype_base=validate, strict=validate ) @@ -366,7 +384,8 @@ if aliases: prot["aliases"] = aliases tags = sorted( - [(tag.db_key, tag.db_category, tag.db_data) for tag in obj.tags.all(return_objs=True)] + [(tag.db_key, tag.db_category, tag.db_data) for tag in obj.tags.all(return_objs=True)], + key=lambda tup: (str(tup[0]), tup[1] or '', tup[2] or '') ) if tags: prot["tags"] = tags @@ -374,7 +393,8 @@ [ (attr.key, attr.value, attr.category, ";".join(attr.locks.all())) for attr in obj.attributes.all() - ] + ], + key=lambda tup: (str(tup[0]), tup[1] or '', tup[2] or '', tup[3]) ) if attrs: prot["attrs"] = attrs @@ -398,8 +418,8 @@ This is most useful for displaying. implicit_keep (bool, optional): If set, the resulting diff will assume KEEP unless the new prototype explicitly change them. That is, if a key exists in `prototype1` and - not in `prototype2`, it will not be REMOVEd but set to KEEP instead. This is particularly - useful for auto-generated prototypes when updating objects. + not in `prototype2`, it will not be REMOVEd but set to KEEP instead. This is + particularly useful for auto-generated prototypes when updating objects. Returns: diff (dict): A structure detailing how to convert prototype1 to prototype2. All @@ -512,8 +532,8 @@ out.extend(_get_all_nested_diff_instructions(val)) else: raise RuntimeError( - "Diff contains non-dicts that are not on the " - "form (old, new, inst): {}".format(diffpart) + _("Diff contains non-dicts that are not on the " + "form (old, new, action_to_take): {diffpart}").format(diffpart) ) return out @@ -650,7 +670,8 @@ return "\n ".join(line for line in texts if line)
    -
    [docs]def batch_update_objects_with_prototype(prototype, diff=None, objects=None, exact=False): +
    [docs]def batch_update_objects_with_prototype(prototype, diff=None, objects=None, + exact=False, caller=None): """ Update existing objects with the latest version of the prototype. @@ -667,6 +688,7 @@ if it's not set in the prototype. With `exact=True`, all un-specified properties of the objects will be removed if they exist. This will lead to a more accurate 1:1 correlation between the object and the prototype but is usually impractical. + caller (Object or Account, optional): This may be used by protfuncs to do permission checks. Returns: changed (int): The number of objects that had changes applied to them. @@ -717,34 +739,37 @@ val = new_prototype[key] do_save = True + def _init(val, typ): + return init_spawn_value(val, str, caller=caller, prototype=new_prototype) + if key == "key": - obj.db_key = init_spawn_value(val, str) + obj.db_key = _init(val, str) elif key == "typeclass": - obj.db_typeclass_path = init_spawn_value(val, str) + obj.db_typeclass_path = _init(val, str) elif key == "location": - obj.db_location = init_spawn_value(val, value_to_obj) + obj.db_location = _init(val, value_to_obj) elif key == "home": - obj.db_home = init_spawn_value(val, value_to_obj) + obj.db_home = _init(val, value_to_obj) elif key == "destination": - obj.db_destination = init_spawn_value(val, value_to_obj) + obj.db_destination = _init(val, value_to_obj) elif key == "locks": if directive == "REPLACE": obj.locks.clear() - obj.locks.add(init_spawn_value(val, str)) + obj.locks.add(_init(val, str)) elif key == "permissions": if directive == "REPLACE": obj.permissions.clear() - obj.permissions.batch_add(*(init_spawn_value(perm, str) for perm in val)) + obj.permissions.batch_add(*(_init(perm, str) for perm in val)) elif key == "aliases": if directive == "REPLACE": obj.aliases.clear() - obj.aliases.batch_add(*(init_spawn_value(alias, str) for alias in val)) + obj.aliases.batch_add(*(_init(alias, str) for alias in val)) elif key == "tags": if directive == "REPLACE": obj.tags.clear() obj.tags.batch_add( *( - (init_spawn_value(ttag, str), tcategory, tdata) + (_init(ttag, str), tcategory, tdata) for ttag, tcategory, tdata in val ) ) @@ -754,8 +779,8 @@ obj.attributes.batch_add( *( ( - init_spawn_value(akey, str), - init_spawn_value(aval, value_to_obj), + _init(akey, str), + _init(aval, value_to_obj), acategory, alocks, ) @@ -766,7 +791,7 @@ # we don't auto-rerun exec statements, it would be huge security risk! pass else: - obj.attributes.add(key, init_spawn_value(val, value_to_obj)) + obj.attributes.add(key, _init(val, value_to_obj)) elif directive == "REMOVE": do_save = True if key == "key": @@ -879,7 +904,7 @@ # Spawner mechanism -
    [docs]def spawn(*prototypes, **kwargs): +
    [docs]def spawn(*prototypes, caller=None, **kwargs): """ Spawn a number of prototyped objects. @@ -888,6 +913,7 @@ prototype_key (will be used to find the prototype) or a full prototype dictionary. These will be batched-spawned as one object each. Keyword Args: + caller (Object or Account, optional): This may be used by protfuncs to do access checks. prototype_modules (str or list): A python-path to a prototype module, or a list of such paths. These will be used to build the global protparents dictionary accessible by the input @@ -919,7 +945,8 @@ protparents = {prot["prototype_key"].lower(): prot for prot in protlib.search_prototype()} if not kwargs.get("only_validate"): - # homogenization to be more lenient about prototype format when entering the prototype manually + # homogenization to be more lenient about prototype format when entering the prototype + # manually prototypes = [protlib.homogenize_prototype(prot) for prot in prototypes] # overload module's protparents with specifically given protparents @@ -928,7 +955,7 @@ for key, protparent in kwargs.get("prototype_parents", {}).items(): key = str(key).lower() protparent["prototype_key"] = str(protparent.get("prototype_key", key)).lower() - protparents[key] = protparent + protparents[key] = protlib.homogenize_prototype(protparent) if "return_parents" in kwargs: # only return the parents @@ -953,32 +980,45 @@ "key", "Spawned-{}".format(hashlib.md5(bytes(str(time.time()), "utf-8")).hexdigest()[:6]), ) - create_kwargs["db_key"] = init_spawn_value(val, str) + create_kwargs["db_key"] = init_spawn_value(val, str, caller=caller, prototype=prototype) val = prot.pop("location", None) - create_kwargs["db_location"] = init_spawn_value(val, value_to_obj) + create_kwargs["db_location"] = init_spawn_value( + val, value_to_obj, caller=caller, prototype=prototype) - val = prot.pop("home", settings.DEFAULT_HOME) - create_kwargs["db_home"] = 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, caller=caller, + prototype=prototype) + else: + try: + create_kwargs["db_home"] = init_spawn_value( + settings.DEFAULT_HOME, value_to_obj, caller=caller, prototype=prototype) + except ObjectDB.DoesNotExist: + # settings.DEFAULT_HOME not existing is common for unittests + pass val = prot.pop("destination", None) - create_kwargs["db_destination"] = init_spawn_value(val, value_to_obj) + create_kwargs["db_destination"] = init_spawn_value(val, value_to_obj, caller=caller, + prototype=prototype) val = prot.pop("typeclass", settings.BASE_OBJECT_TYPECLASS) - create_kwargs["db_typeclass_path"] = init_spawn_value(val, str) + create_kwargs["db_typeclass_path"] = init_spawn_value(val, str, caller=caller, + prototype=prototype) # extract calls to handlers val = prot.pop("permissions", []) - permission_string = init_spawn_value(val, make_iter) + permission_string = init_spawn_value(val, make_iter, caller=caller, prototype=prototype) val = prot.pop("locks", "") - lock_string = init_spawn_value(val, str) + lock_string = init_spawn_value(val, str, caller=caller, prototype=prototype) val = prot.pop("aliases", []) - alias_string = init_spawn_value(val, make_iter) + alias_string = init_spawn_value(val, make_iter, caller=caller, prototype=prototype) val = prot.pop("tags", []) tags = [] - for (tag, category, data) in val: - tags.append((init_spawn_value(tag, str), category, data)) + for (tag, category, *data) in val: + tags.append((init_spawn_value(tag, str, caller=caller, prototype=prototype), + category, data[0] if data else None)) prototype_key = prototype.get("prototype_key", None) if prototype_key: @@ -986,11 +1026,12 @@ tags.append((prototype_key, PROTOTYPE_TAG_CATEGORY)) val = prot.pop("exec", "") - execs = init_spawn_value(val, make_iter) + execs = init_spawn_value(val, make_iter, caller=caller, prototype=prototype) # extract ndb assignments nattributes = dict( - (key.split("_", 1)[1], init_spawn_value(val, value_to_obj)) + (key.split("_", 1)[1], init_spawn_value(val, value_to_obj, caller=caller, + prototype=prototype)) for key, val in prot.items() if key.startswith("ndb_") ) @@ -998,8 +1039,10 @@ # the rest are attribute tuples (attrname, value, category, locks) val = make_iter(prot.pop("attrs", [])) attributes = [] - for (attrname, value, category, locks) in val: - attributes.append((attrname, init_spawn_value(value), category, locks)) + for (attrname, value, *rest) in val: + attributes.append( + (attrname, init_spawn_value(value, caller=caller, prototype=prototype), + rest[0] if rest else None, rest[1] if len(rest) > 1 else None)) simple_attributes = [] for key, value in ( @@ -1010,7 +1053,8 @@ continue else: simple_attributes.append( - (key, init_spawn_value(value, value_to_obj_or_any), None, None) + (key, init_spawn_value(value, value_to_obj_or_any, caller=caller, + prototype=prototype), None, None) ) attributes = attributes + simple_attributes @@ -1058,11 +1102,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/scripts/admin.html b/docs/0.9.5/_modules/evennia/scripts/admin.html deleted file mode 100644 index 7b7476b349..0000000000 --- a/docs/0.9.5/_modules/evennia/scripts/admin.html +++ /dev/null @@ -1,197 +0,0 @@ - - - - - - - - evennia.scripts.admin — Evennia 0.9.5 documentation - - - - - - - - - - - - - - - -
    -
    -
    -
    - -

    Source code for evennia.scripts.admin

    -#
    -# This sets up how models are displayed
    -# in the web admin interface.
    -#
    -from django.conf import settings
    -
    -from evennia.typeclasses.admin import AttributeInline, TagInline
    -
    -from evennia.scripts.models import ScriptDB
    -from django.contrib import admin
    -
    -
    -
    [docs]class ScriptTagInline(TagInline): - """ - Inline script tags. - - """ - - model = ScriptDB.db_tags.through - related_field = "scriptdb"
    - - -
    [docs]class ScriptAttributeInline(AttributeInline): - """ - Inline attribute tags. - - """ - - model = ScriptDB.db_attributes.through - related_field = "scriptdb"
    - - -
    [docs]class ScriptDBAdmin(admin.ModelAdmin): - """ - Displaying the main Script page. - - """ - - list_display = ( - "id", - "db_key", - "db_typeclass_path", - "db_obj", - "db_interval", - "db_repeats", - "db_persistent", - ) - list_display_links = ("id", "db_key") - ordering = ["db_obj", "db_typeclass_path"] - search_fields = ["^db_key", "db_typeclass_path"] - save_as = True - save_on_top = True - list_select_related = True - raw_id_fields = ("db_obj",) - - fieldsets = ( - ( - None, - { - "fields": ( - ("db_key", "db_typeclass_path"), - "db_interval", - "db_repeats", - "db_start_delay", - "db_persistent", - "db_obj", - ) - }, - ), - ) - inlines = [ScriptTagInline, ScriptAttributeInline] - -
    [docs] def save_model(self, request, obj, form, change): - """ - Model-save hook. - - Args: - request (Request): Incoming request. - obj (Object): Database object. - form (Form): Form instance. - change (bool): If this is a change or a new object. - - """ - obj.save() - if not change: - # adding a new object - # have to call init with typeclass passed to it - obj.set_class_from_typeclass(typeclass_path=obj.db_typeclass_path)
    - - -admin.site.register(ScriptDB, ScriptDBAdmin) -
    - -
    -
    -
    -
    - -
    -
    - - - - \ No newline at end of file diff --git a/docs/0.9.5/_modules/evennia/scripts/manager.html b/docs/0.9.5/_modules/evennia/scripts/manager.html index 9d1a1f3d8b..31f6c35010 100644 --- a/docs/0.9.5/_modules/evennia/scripts/manager.html +++ b/docs/0.9.5/_modules/evennia/scripts/manager.html @@ -146,113 +146,23 @@ """ scripts = self.get_id(dbref) for script in make_iter(scripts): - script.stop()
    - -
    [docs] def remove_non_persistent(self, obj=None): - """ - This cleans up the script database of all non-persistent - scripts. It is called every time the server restarts. - - Args: - obj (Object, optional): Only remove non-persistent scripts - assigned to this object. - - """ - if obj: - to_stop = self.filter(db_obj=obj, db_persistent=False, db_is_active=True) - to_delete = self.filter(db_obj=obj, db_persistent=False, db_is_active=False) - else: - to_stop = self.filter(db_persistent=False, db_is_active=True) - to_delete = self.filter(db_persistent=False, db_is_active=False) - nr_deleted = to_stop.count() + to_delete.count() - for script in to_stop: script.stop() - for script in to_delete: - script.delete() - return nr_deleted
    + script.delete()
    -
    [docs] def validate(self, scripts=None, obj=None, key=None, dbref=None, init_mode=None): +
    [docs] def update_scripts_after_server_start(self): """ - This will step through the script database and make sure - all objects run scripts that are still valid in the context - they are in. This is called by the game engine at regular - intervals but can also be initiated by player scripts. - - Only one of the arguments are supposed to be supplied - at a time, since they are exclusive to each other. - - Args: - scripts (list, optional): A list of script objects to - validate. - obj (Object, optional): Validate only scripts defined on - this object. - key (str): Validate only scripts with this key. - dbref (int): Validate only the single script with this - particular id. - init_mode (str, optional): This is used during server - upstart and can have three values: - - `None` (no init mode). Called during run. - - `"reset"` - server reboot. Kill non-persistent scripts - - `"reload"` - server reload. Keep non-persistent scripts. - Returns: - nr_started, nr_stopped (tuple): Statistics on how many objects - where started and stopped. - - Notes: - This method also makes sure start any scripts it validates - which should be harmless, since already-active scripts have - the property 'is_running' set and will be skipped. + Update/sync/restart/delete scripts after server shutdown/restart. """ + for script in self.filter(db_is_active=True, db_persistent=False): + script._stop_task() - # we store a variable that tracks if we are calling a - # validation from within another validation (avoids - # loops). + for script in self.filter(db_is_active=True): + script._unpause_task(auto_unpause=True) + script.at_server_start() - global VALIDATE_ITERATION - if VALIDATE_ITERATION > 0: - # we are in a nested validation. Exit. - VALIDATE_ITERATION -= 1 - return None, None - VALIDATE_ITERATION += 1 - - # not in a validation - loop. Validate as normal. - - nr_started = 0 - nr_stopped = 0 - - if init_mode: - if init_mode == "reset": - # special mode when server starts or object logs in. - # This deletes all non-persistent scripts from database - nr_stopped += self.remove_non_persistent(obj=obj) - # turn off the activity flag for all remaining scripts - scripts = self.get_all_scripts() - for script in scripts: - script.is_active = False - - elif not scripts: - # normal operation - if dbref and self.dbref(dbref, reqhash=False): - scripts = self.get_id(dbref) - elif obj: - scripts = self.get_all_scripts_on_obj(obj, key=key) - else: - scripts = self.get_all_scripts(key=key) - - if not scripts: - # no scripts available to validate - VALIDATE_ITERATION -= 1 - return None, None - - for script in scripts: - if script.is_valid(): - nr_started += script.start(force_restart=init_mode) - else: - script.stop() - nr_stopped += 1 - VALIDATE_ITERATION -= 1 - return nr_started, nr_stopped
    + for script in self.filter(db_is_active=False): + script.at_server_start()
    [docs] def search_script(self, ostring, obj=None, only_timed=False, typeclass=None): """ @@ -352,11 +262,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/scripts/models.html b/docs/0.9.5/_modules/evennia/scripts/models.html index 75f8b2367f..6e015e75a2 100644 --- a/docs/0.9.5/_modules/evennia/scripts/models.html +++ b/docs/0.9.5/_modules/evennia/scripts/models.html @@ -86,7 +86,7 @@ # ------------------------------------------------------------ -
    [docs]class ScriptDB(TypedObject): +
    [docs]class ScriptDB(TypedObject): """ The Script database representation. @@ -144,7 +144,7 @@ # how often to run Script (secs). -1 means there is no timer db_interval = models.IntegerField( - "interval", default=-1, help_text="how often to repeat script, in seconds. -1 means off." + "interval", default=-1, help_text="how often to repeat script, in seconds. <= 0 means off." ) # start script right away or wait interval seconds first db_start_delay = models.BooleanField( @@ -153,7 +153,7 @@ # how many times this script is to be repeated, if interval!=0. db_repeats = models.IntegerField("number of repeats", default=0, help_text="0 means off.") # defines if this script should survive a reboot or not - db_persistent = models.BooleanField("survive server reboot", default=False) + db_persistent = models.BooleanField("survive server reboot", default=True) # defines if this script has already been started in this session db_is_active = models.BooleanField("script active", default=False) @@ -247,11 +247,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/scripts/monitorhandler.html b/docs/0.9.5/_modules/evennia/scripts/monitorhandler.html index 16e7465ff2..4c3c8e3dd6 100644 --- a/docs/0.9.5/_modules/evennia/scripts/monitorhandler.html +++ b/docs/0.9.5/_modules/evennia/scripts/monitorhandler.html @@ -70,11 +70,13 @@ """ This is a resource singleton that allows for registering callbacks for when a field or Attribute is updated (saved). + """
    [docs] def __init__(self): """ Initialize the handler. + """ self.savekey = "_monitorhandler_save" self.monitors = defaultdict(lambda: defaultdict(dict))
    @@ -271,11 +273,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/scripts/scripthandler.html b/docs/0.9.5/_modules/evennia/scripts/scripthandler.html index 882039e44b..1d2dc8f0ec 100644 --- a/docs/0.9.5/_modules/evennia/scripts/scripthandler.html +++ b/docs/0.9.5/_modules/evennia/scripts/scripthandler.html @@ -91,15 +91,11 @@ next_repeat = script.time_until_next_repeat() except Exception: next_repeat = "?" - string += _( - "\n '%(key)s' (%(next_repeat)s/%(interval)s, %(repeats)s repeats): %(desc)s" - ) % { - "key": script.key, - "next_repeat": next_repeat, - "interval": interval, - "repeats": repeats, - "desc": script.desc, - } + string += _("\n '{key}' ({next_repeat}/{interval}, {repeats} repeats): {desc}").format( + key=script.key, next_repeat=next_repeat, + interval=interval, + repeats=repeats, + desc=script.desc) return string.strip()
    [docs] def add(self, scriptclass, key=None, autostart=True): @@ -151,7 +147,8 @@ scripts = ScriptDB.objects.get_all_scripts_on_obj(self.obj, key=key) num = 0 for script in scripts: - num += script.start() + script.start() + num += 1 return num
    [docs] def get(self, key): @@ -186,7 +183,8 @@ ] num = 0 for script in delscripts: - num += script.stop() + script.delete() + num += 1 return num
    # alias to delete @@ -197,22 +195,7 @@ Get all scripts stored in this handler. """ - return ScriptDB.objects.get_all_scripts_on_obj(self.obj) - -
    [docs] def validate(self, init_mode=False): - """ - Runs a validation on this object's scripts only. This should - be called regularly to crank the wheels. - - Args: - init_mode (str, optional): - This is used during server - upstart and can have three values: - - `False` (no init mode). Called during run. - - `"reset"` - server reboot. Kill non-persistent scripts - - `"reload"` - server reload. Keep non-persistent scripts. - - """ - ScriptDB.objects.validate(obj=self.obj, init_mode=init_mode)
    + return ScriptDB.objects.get_all_scripts_on_obj(self.obj)
    @@ -238,11 +221,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/scripts/scripts.html b/docs/0.9.5/_modules/evennia/scripts/scripts.html index 8e269448c7..e26310be98 100644 --- a/docs/0.9.5/_modules/evennia/scripts/scripts.html +++ b/docs/0.9.5/_modules/evennia/scripts/scripts.html @@ -50,7 +50,6 @@ from twisted.internet.defer import Deferred, maybeDeferred from twisted.internet.task import LoopingCall -from django.core.exceptions import ObjectDoesNotExist from django.utils.translation import gettext as _ from evennia.typeclasses.models import TypeclassBase from evennia.scripts.models import ScriptDB @@ -60,21 +59,11 @@ __all__ = ["DefaultScript", "DoNothing", "Store"] -FLUSHING_INSTANCES = False # whether we're in the process of flushing scripts from the cache -SCRIPT_FLUSH_TIMERS = {} # stores timers for scripts that are currently being flushed - - -def restart_scripts_after_flush(): - """After instances are flushed, validate scripts so they're not dead for a long period of time""" - global FLUSHING_INSTANCES - ScriptDB.objects.validate() - FLUSHING_INSTANCES = False - - class ExtendedLoopingCall(LoopingCall): """ - LoopingCall that can start at a delay different - than `self.interval`. + Custom child of LoopingCall that can start at a delay different than + `self.interval` and self.count=0. This allows it to support pausing + by resuming at a later period. """ @@ -92,10 +81,10 @@ interval (int): Repeat interval in seconds. now (bool, optional): Whether to start immediately or after `start_delay` seconds. - start_delay (int): The number of seconds before starting. - If None, wait interval seconds. Only valid if `now` is `False`. - It is used as a way to start with a variable start time - after a pause. + start_delay (int, optional): This only applies is `now=False`. It gives + number of seconds to wait before starting. If `None`, use + `interval` as this value instead. Internally, this is used as a + way to start with a variable start time after a pause. count_start (int): Number of repeats to start at. The count goes up every time the system repeats. This is used to implement something repeating `N` number of times etc. @@ -174,7 +163,7 @@ of start_delay into account. Returns: - next (int or None): The time in seconds until the next call. This + int or None: The time in seconds until the next call. This takes `start_delay` into account. Returns `None` if the task is not running. @@ -182,7 +171,7 @@ if self.running and self.interval > 0: total_runtime = self.clock.seconds() - self.starttime interval = self.start_delay or self.interval - return interval - (total_runtime % self.interval) + return max(0, interval - (total_runtime % self.interval)) class ScriptBase(ScriptDB, metaclass=TypeclassBase): @@ -190,6 +179,8 @@ Base class for scripts. Don't inherit from this, inherit from the class `DefaultScript` below instead. + This handles the timer-component of the Script. + """ objects = ScriptManager() @@ -200,36 +191,176 @@ def __repr__(self): return str(self) - def _start_task(self): + def at_idmapper_flush(self): """ - Start task runner. + If we're flushing this object, make sure the LoopingCall is gone too. + """ + ret = super().at_idmapper_flush() + if ret and self.ndb._task: + self.ndb._pause_task(auto_pause=True) + # TODO - restart anew ? + return ret + + def _start_task(self, interval=None, start_delay=None, repeats=None, force_restart=False, + auto_unpause=False, **kwargs): + """ + Start/Unpause task runner, optionally with new values. If given, this will + update the Script's fields. + + Keyword Args: + interval (int): How often to tick the task, in seconds. If this is <= 0, + no task will start and properties will not be updated on the Script. + start_delay (int): If the start should be delayed. + repeats (int): How many repeats. 0 for infinite repeats. + force_restart (bool): If set, always create a new task running even if an + old one already was running. Otherwise this will only happen if + new script properties were passed. + auto_unpause (bool): This is an automatic unpaused (used e.g by Evennia after + a reload) and should not un-pause manually paused Script timers. + Note: + If setting the `start-delay` of a *paused* Script, the Script will + restart exactly after that new start-delay, ignoring the time it + was paused at. If only changing the `interval`, the Script will + come out of pause comparing the time it spent in the *old* interval + with the *new* interval in order to determine when next to fire. + + Examples: + - Script previously had an interval of 10s and was paused 5s into that interval. + Script is now restarted with a 20s interval. It will next fire after 15s. + - Same Script is restarted with a 3s interval. It will fire immediately. """ + if self.pk is None: + # script object already deleted from db - don't start a new timer + raise ScriptDB.DoesNotExist + + # handle setting/updating fields + update_fields = [] + old_interval = self.db_interval + if interval is not None: + self.db_interval = interval + update_fields.append("db_interval") + if start_delay is not None: + self.db_start_delay = start_delay + update_fields.append("db_start_delay") + if repeats is not None: + self.db_repeats = repeats + update_fields.append("db_repeats") + + # validate interval + if self.db_interval and self.db_interval > 0: + if not self.is_active: + self.db_is_active = True + update_fields.append("db_is_active") + else: + # no point in starting a task with no interval. + return + + restart = bool(update_fields) or force_restart + self.save(update_fields=update_fields) + + if self.ndb._task and self.ndb._task.running: + if restart: + # a change needed/forced; stop/remove old task + self._stop_task() + else: + # task alreaady running and no changes needed + return + if not self.ndb._task: + # we should have a fresh task after this point self.ndb._task = ExtendedLoopingCall(self._step_task) - if self.db._paused_time: - # the script was paused; restarting - callcount = self.db._paused_callcount or 0 - self.ndb._task.start( - self.db_interval, now=False, start_delay=self.db._paused_time, count_start=callcount - ) - del self.db._paused_time - del self.db._paused_repeats + self._unpause_task(interval=interval, start_delay=start_delay, + auto_unpause=auto_unpause, + old_interval=old_interval) - elif not self.ndb._task.running: - # starting script anew + if not self.ndb._task.running: + # if not unpausing started it, start script anew with the new values self.ndb._task.start(self.db_interval, now=not self.db_start_delay) - def _stop_task(self): + self.at_start(**kwargs) + + def _pause_task(self, auto_pause=False, **kwargs): """ - Stop task runner + Pause task where it is, saving the current status. + + Args: + auto_pause (str): + + """ + if not self.db._paused_time: + # only allow pause if not already paused + task = self.ndb._task + if task: + self.db._paused_time = task.next_call_time() + self.db._paused_callcount = task.callcount + self.db._manually_paused = not auto_pause + if task.running: + task.stop() + self.ndb._task = None + + self.at_pause(auto_pause=auto_pause, **kwargs) + + def _unpause_task(self, interval=None, start_delay=None, auto_unpause=False, + old_interval=0, **kwargs): + """ + Unpause task from paused status. This is used for auto-paused tasks, such + as tasks paused on a server reload. + + Args: + interval (int): How often to tick the task, in seconds. + start_delay (int): If the start should be delayed. + auto_unpause (bool): If set, this will only unpause scripts that were unpaused + automatically (useful during a system reload/shutdown). + old_interval (int): The old Script interval (or current one if nothing changed). Used + to recalculate the unpause startup interval. + + """ + paused_time = self.db._paused_time + if paused_time: + if auto_unpause and self.db._manually_paused: + # this was manually paused. + return + + # task was paused. This will use the new values as needed. + callcount = self.db._paused_callcount or 0 + if start_delay is None and interval is not None: + # adjust start-delay based on how far we were into previous interval + start_delay = max(0, interval - (old_interval - paused_time)) + else: + start_delay = paused_time + + if not self.ndb._task: + self.ndb._task = ExtendedLoopingCall(self._step_task) + + self.ndb._task.start( + self.db_interval, now=False, start_delay=start_delay, count_start=callcount + ) + del self.db._paused_time + del self.db._paused_callcount + del self.db._manually_paused + + self.at_start(**kwargs) + + def _stop_task(self, **kwargs): + """ + Stop task runner and delete the task. """ task = self.ndb._task if task and task.running: task.stop() self.ndb._task = None + self.db_is_active = False + + # make sure this is not confused as a paused script + del self.db._paused_time + del self.db._paused_callcount + del self.db._manually_paused + + self.save(update_fields=["db_is_active"]) + self.at_stop(**kwargs) def _step_errback(self, e): """ @@ -238,8 +369,8 @@ """ cname = self.__class__.__name__ estring = _( - "Script %(key)s(#%(dbid)s) of type '%(cname)s': at_repeat() error '%(err)s'." - ) % {"key": self.key, "dbid": self.dbid, "cname": cname, "err": e.getErrorMessage()} + "Script {key}(#{dbid}) of type '{name}': at_repeat() error '{err}'.".format( + key=self.key, dbid=self.dbid, name=cname, err=e.getErrorMessage())) try: self.db_obj.msg(estring) except Exception: @@ -282,12 +413,7 @@ logger.log_trace() return None - def at_script_creation(self): - """ - Should be overridden in child. - - """ - pass + # Access methods / hooks def at_first_save(self, **kwargs): """ @@ -349,12 +475,203 @@ for key, value in cdict["nattributes"]: self.nattributes.add(key, value) - if not cdict.get("autostart"): - # don't auto-start the script - return + if cdict.get("autostart"): + # autostart the script + self._start_task(force_restart=True) - # auto-start script (default) - self.start() + def delete(self, stop_task=True): + """ + Delete the Script. Normally stops any timer task. This fires at_script_delete before + deletion. + + Args: + stop_task (bool, optional): If unset, the task will not be stopped + when this method is called. The main reason for setting this to False + is if wanting to delete the script from the at_stop method - setting + this will then avoid an infinite recursion. + + Returns: + bool: If deletion was successful or not. Only time this can fail would be if + the script was already previously deleted, or `at_script_delete` returns + False. + + """ + if not self.pk or not self.at_script_delete(): + return False + if stop_task: + self._stop_task() + super().delete() + return True + + def at_script_creation(self): + """ + Should be overridden in child. + + """ + pass + + def at_script_delete(self): + """ + Called when script is deleted, before the script timer stops. + + Returns: + bool: If False, deletion is aborted. + + """ + return True + + def is_valid(self): + """ + If returning False, `at_repeat` will not be called and timer will stop + updating. + """ + return True + + def at_repeat(self, **kwargs): + """ + Called repeatedly every `interval` seconds, once `.start()` has + been called on the Script at least once. + + Args: + **kwargs (dict): Arbitrary, optional arguments for users + overriding the call (unused by default). + + """ + pass + + def at_start(self, **kwargs): + pass + + def at_pause(self, **kwargs): + pass + + def at_stop(self, **kwargs): + pass + + + def start(self, interval=None, start_delay=None, repeats=None, **kwargs): + """ + Start/Unpause timer component, optionally with new values. If given, + this will update the Script's fields. This will start `at_repeat` being + called every `interval` seconds. + + Keyword Args: + interval (int): How often to fire `at_repeat` in seconds. + start_delay (int): If the start of ticking should be delayed. + repeats (int): How many repeats. 0 for infinite repeats. + **kwargs: Optional (default unused) kwargs passed on into the `at_start` hook. + + Notes: + If setting the `start-delay` of a *paused* Script, the Script will + restart exactly after that new start-delay, ignoring the time it + was paused at. If only changing the `interval`, the Script will + come out of pause comparing the time it spent in the *old* interval + with the *new* interval in order to determine when next to fire. + + Examples: + - Script previously had an interval of 10s and was paused 5s into that interval. + Script is now restarted with a 20s interval. It will next fire after 15s. + - Same Script is restarted with a 3s interval. It will fire immediately. + + """ + self._start_task(interval=interval, start_delay=start_delay, repeats=repeats, **kwargs) + + # legacy alias + update = start + + def stop(self, **kwargs): + """ + Stop the Script's timer component. This will not delete the Sctipt, + just stop the regular firing of `at_repeat`. Running `.start()` will + start the timer anew, optionally with new settings.. + + Args: + **kwargs: Optional (default unused) kwargs passed on into the `at_stop` hook. + + """ + self._stop_task(**kwargs) + + def pause(self, **kwargs): + """ + Manually the Script's timer component manually. + + Args: + **kwargs: Optional (default unused) kwargs passed on into the `at_pause` hook. + + """ + self._pause_task(manual_pause=True, **kwargs) + + def unpause(self, **kwargs): + """ + Manually unpause a Paused Script. + + Args: + **kwargs: Optional (default unused) kwargs passed on into the `at_start` hook. + + """ + self._unpause_task(**kwargs) + + def time_until_next_repeat(self): + """ + Get time until the script fires it `at_repeat` hook again. + + Returns: + int or None: Time in seconds until the script runs again. + If not a timed script, return `None`. + + Notes: + This hook is not used in any way by the script's stepping + system; it's only here for the user to be able to check in + on their scripts and when they will next be run. + + """ + task = self.ndb._task + if task: + try: + return int(round(task.next_call_time())) + except TypeError: + pass + return None + + def remaining_repeats(self): + """ + Get the number of returning repeats for limited Scripts. + + Returns: + int or None: The number of repeats remaining until the Script + stops. Returns `None` if it has unlimited repeats. + + """ + task = self.ndb._task + if task: + return max(0, self.db_repeats - task.callcount) + return None + + def reset_callcount(self, value=0): + """ + Reset the count of the number of calls done. + + Args: + value (int, optional): The repeat value to reset to. Default + is to set it all the way back to 0. + + Notes: + This is only useful if repeats != 0. + + """ + task = self.ndb._task + if task: + task.callcount = max(0, int(value)) + + def force_repeat(self): + """ + Fire a premature triggering of the script callback. This + will reset the timer and count down repeats as if the script + had fired normally. + """ + task = self.ndb._task + if task: + task.force_repeat()
    [docs]class DefaultScript(ScriptBase): @@ -401,287 +718,20 @@ """ pass
    -
    [docs] def time_until_next_repeat(self): - """ - Get time until the script fires it `at_repeat` hook again. - - Returns: - next (int): Time in seconds until the script runs again. - If not a timed script, return `None`. - - Notes: - This hook is not used in any way by the script's stepping - system; it's only here for the user to be able to check in - on their scripts and when they will next be run. - - """ - task = self.ndb._task - if task: - try: - return int(round(task.next_call_time())) - except TypeError: - pass - return None
    - -
    [docs] def remaining_repeats(self): - """ - Get the number of returning repeats for limited Scripts. - - Returns: - remaining (int or `None`): The number of repeats - remaining until the Script stops. Returns `None` - if it has unlimited repeats. - - """ - task = self.ndb._task - if task: - return max(0, self.db_repeats - task.callcount) - return None
    - -
    [docs] def at_idmapper_flush(self): - """If we're flushing this object, make sure the LoopingCall is gone too""" - ret = super(DefaultScript, self).at_idmapper_flush() - if ret and self.ndb._task: - try: - from twisted.internet import reactor - - global FLUSHING_INSTANCES - # store the current timers for the _task and stop it to avoid duplicates after cache flush - paused_time = self.ndb._task.next_call_time() - callcount = self.ndb._task.callcount - self._stop_task() - SCRIPT_FLUSH_TIMERS[self.id] = (paused_time, callcount) - # here we ensure that the restart call only happens once, not once per script - if not FLUSHING_INSTANCES: - FLUSHING_INSTANCES = True - reactor.callLater(2, restart_scripts_after_flush) - except Exception: - import traceback - - traceback.print_exc() - return ret
    - -
    [docs] def start(self, force_restart=False): - """ - Called every time the script is started (for persistent - scripts, this is usually once every server start) - - Args: - force_restart (bool, optional): Normally an already - started script will not be started again. if - `force_restart=True`, the script will always restart - the script, regardless of if it has started before. - - Returns: - result (int): 0 or 1 depending on if the script successfully - started or not. Used in counting. - - """ - if self.is_active and not force_restart: - # The script is already running, but make sure we have a _task if - # this is after a cache flush - if not self.ndb._task and self.db_interval > 0: - self.ndb._task = ExtendedLoopingCall(self._step_task) - try: - start_delay, callcount = SCRIPT_FLUSH_TIMERS[self.id] - del SCRIPT_FLUSH_TIMERS[self.id] - now = False - except (KeyError, ValueError, TypeError): - now = not self.db_start_delay - start_delay = None - callcount = 0 - self.ndb._task.start( - self.db_interval, now=now, start_delay=start_delay, count_start=callcount - ) - return 0 - - obj = self.obj - if obj: - # check so the scripted object is valid and initalized - try: - obj.cmdset - except AttributeError: - # this means the object is not initialized. - logger.log_trace() - self.is_active = False - return 0 - - # try to restart a paused script - try: - if self.unpause(manual_unpause=False): - return 1 - except RuntimeError: - # manually paused. - return 0 - - # start the script from scratch - self.is_active = True - try: - self.at_start() - except Exception: - logger.log_trace() - - if self.db_interval > 0: - self._start_task() - return 1
    - -
    [docs] def stop(self, kill=False): - """ - Called to stop the script from running. This also deletes the - script. - - Args: - kill (bool, optional): - Stop the script without - calling any relevant script hooks. - - Returns: - result (int): 0 if the script failed to stop, 1 otherwise. - Used in counting. - - """ - if not kill: - try: - self.at_stop() - except Exception: - logger.log_trace() - self._stop_task() - try: - self.delete() - except AssertionError: - logger.log_trace() - return 0 - except ObjectDoesNotExist: - return 0 - return 1
    - -
    [docs] def pause(self, manual_pause=True): - """ - This stops a running script and stores its active state. - It WILL NOT call the `at_stop()` hook. - - """ - self.db._manual_pause = manual_pause - if not self.db._paused_time: - # only allow pause if not already paused - task = self.ndb._task - if task: - self.db._paused_time = task.next_call_time() - self.db._paused_callcount = task.callcount - self._stop_task() - self.is_active = False
    - -
    [docs] def unpause(self, manual_unpause=True): - """ - Restart a paused script. This WILL call the `at_start()` hook. - - Args: - manual_unpause (bool, optional): This is False if unpause is - called by the server reload/reset mechanism. - Returns: - result (bool): True if unpause was triggered, False otherwise. - - Raises: - RuntimeError: If trying to automatically resart this script - (usually after a reset/reload), but it was manually paused, - and so should not the auto-unpaused. - - """ - if not manual_unpause and self.db._manual_pause: - # if this script was paused manually (by a direct call of pause), - # it cannot be automatically unpaused (e.g. by a @reload) - raise RuntimeError - - # Ensure that the script is fully unpaused, so that future calls - # to unpause do not raise a RuntimeError - self.db._manual_pause = False - - if self.db._paused_time: - # only unpause if previously paused - self.is_active = True - - try: - self.at_start() - except Exception: - logger.log_trace() - - self._start_task() - return True
    - -
    [docs] def restart(self, interval=None, repeats=None, start_delay=None): - """ - Restarts an already existing/running Script from the - beginning, optionally using different settings. This will - first call the stop hooks, and then the start hooks again. - Args: - interval (int, optional): Allows for changing the interval - of the Script. Given in seconds. if `None`, will use the already stored interval. - repeats (int, optional): The number of repeats. If unset, will - use the previous setting. - start_delay (bool, optional): If we should wait `interval` seconds - before starting or not. If `None`, re-use the previous setting. - - """ - try: - self.at_stop() - except Exception: - logger.log_trace() - self._stop_task() - self.is_active = False - # remove all pause flags - del self.db._paused_time - del self.db._manual_pause - del self.db._paused_callcount - # set new flags and start over - if interval is not None: - interval = max(0, interval) - self.interval = interval - if repeats is not None: - self.repeats = repeats - if start_delay is not None: - self.start_delay = start_delay - self.start()
    - -
    [docs] def reset_callcount(self, value=0): - """ - Reset the count of the number of calls done. - - Args: - value (int, optional): The repeat value to reset to. Default - is to set it all the way back to 0. - - Notes: - This is only useful if repeats != 0. - - """ - task = self.ndb._task - if task: - task.callcount = max(0, int(value))
    - -
    [docs] def force_repeat(self): - """ - Fire a premature triggering of the script callback. This - will reset the timer and count down repeats as if the script - had fired normally. - """ - task = self.ndb._task - if task: - task.force_repeat()
    -
    [docs] def is_valid(self): """ - Is called to check if the script is valid to run at this time. - Should return a boolean. The method is assumed to collect all - needed information from its related self.obj. + Is called to check if the script's timer is valid to run at this time. + Should return a boolean. If False, the timer will be stopped. """ - return not self._is_deleted
    + return True
    [docs] def at_start(self, **kwargs): """ - Called whenever the script is started, which for persistent - scripts is at least once every server start. It will also be - called when starting again after a pause (such as after a - server reload) + Called whenever the script timer is started, which for persistent + timed scripts is at least once every server start. It will also be + called when starting again after a pause (including after a + server reload). Args: **kwargs (dict): Arbitrary, optional arguments for users @@ -698,21 +748,44 @@ **kwargs (dict): Arbitrary, optional arguments for users overriding the call (unused by default). + """ + pass
    + +
    [docs] def at_pause(self, manual_pause=True, **kwargs): + """ + Called when this script's timer pauses. + + Args: + manual_pause (bool): If set, pausing was done by a direct call. The + non-manual pause indicates the script was paused as part of + the server reload. + """ pass
    [docs] def at_stop(self, **kwargs): """ - Called whenever when it's time for this script to stop (either - because is_valid returned False or it runs out of iterations) + Called whenever when it's time for this script's timer to stop (either + because is_valid returned False, it ran out of iterations or it was manuallys + stopped. - Args + Args: **kwargs (dict): Arbitrary, optional arguments for users overriding the call (unused by default). """ pass
    +
    [docs] def at_script_delete(self): + """ + Called when the Script is deleted, before stopping the timer. + + Returns: + bool: If False, the deletion is aborted. + + """ + return True
    +
    [docs] def at_server_reload(self): """ This hook is called whenever the server is shutting down for @@ -726,6 +799,15 @@ """ This hook is called whenever the server is shutting down fully (i.e. not for a restart). + """ + pass
    + +
    [docs] def at_server_start(self): + """ + This hook is called after the server has started. It can be used to add + post-startup setup for Scripts without a timer component (for which at_start + could be used). + """ pass
    @@ -782,11 +864,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/scripts/taskhandler.html b/docs/0.9.5/_modules/evennia/scripts/taskhandler.html index 54903a111d..27a94a8588 100644 --- a/docs/0.9.5/_modules/evennia/scripts/taskhandler.html +++ b/docs/0.9.5/_modules/evennia/scripts/taskhandler.html @@ -105,22 +105,28 @@ return TASK_HANDLER.get_deferred(self.task_id)
    [docs] def pause(self): - """Pause the callback of a task. - To resume use TaskHandlerTask.unpause + """ + Pause the callback of a task. + To resume use `TaskHandlerTask.unpause`. + """ d = self.deferred if d: d.pause()
    [docs] def unpause(self): - """Unpause a task, run the task if it has passed delay time.""" + """ + Unpause a task, run the task if it has passed delay time. + + """ d = self.deferred if d: d.unpause()
    @property def paused(self): - """A task attribute to check if the deferred instance of a task has been paused. + """ + A task attribute to check if the deferred instance of a task has been paused. This exists to mock usage of a twisted deferred object. @@ -136,7 +142,8 @@ return None
    [docs] def do_task(self): - """Execute the task (call its callback). + """ + Execute the task (call its callback). If calling before timedelay, cancel the deferred instance affliated to this task. Remove the task from the dictionary of current tasks on a successful callback. @@ -149,7 +156,8 @@ return TASK_HANDLER.do_task(self.task_id)
    [docs] def call(self): - """Call the callback of a task. + """ + Call the callback of a task. Leave the task unaffected otherwise. This does not use the task's deferred instance. The only requirement is that the task exist in task handler. @@ -216,7 +224,8 @@ return None
    [docs] def exists(self): - """Check if a task exists. + """ + Check if a task exists. Most task handler methods check for existence for you. Returns: @@ -226,7 +235,8 @@ return TASK_HANDLER.exists(self.task_id)
    [docs] def get_id(self): - """ Returns the global id for this task. For use with + """ + Returns the global id for this task. For use with `evennia.scripts.taskhandler.TASK_HANDLER`. Returns: @@ -258,7 +268,7 @@ self.clock = reactor # number of seconds before an uncalled canceled task is removed from TaskHandler self.stale_timeout = 60 - self._now = False # used in unit testing to manually set now time
    + self._now = False # used in unit testing to manually set now time
    [docs] def load(self): """Load from the ServerConfig. @@ -314,7 +324,10 @@ return True
    [docs] def save(self): - """Save the tasks in ServerConfig.""" + """ + Save the tasks in ServerConfig. + + """ for task_id, (date, callback, args, kwargs, persistent, _) in self.tasks.items(): if task_id in self.to_save: @@ -340,10 +353,12 @@ ) self.to_save[task_id] = dbserialize((date, safe_callback, args, kwargs)) + ServerConfig.objects.conf("delayed_tasks", self.to_save)
    [docs] def add(self, timedelay, callback, *args, **kwargs): - """Add a new task. + """ + Add a new task. If the persistent kwarg is truthy: The callback, args and values for kwarg will be serialized. Type @@ -438,7 +453,8 @@ return TaskHandlerTask(task_id)
    [docs] def exists(self, task_id): - """Check if a task exists. + """ + Check if a task exists. Most task handler methods check for existence for you. Args: @@ -454,7 +470,8 @@ return False
    [docs] def active(self, task_id): - """Check if a task is active (has not been called yet). + """ + Check if a task is active (has not been called yet). Args: task_id (int): an existing task ID. @@ -472,7 +489,8 @@ return False
    [docs] def cancel(self, task_id): - """Stop a task from automatically executing. + """ + Stop a task from automatically executing. This will not remove the task. Args: @@ -498,7 +516,8 @@ return False
    [docs] def remove(self, task_id): - """Remove a task without executing it. + """ + Remove a task without executing it. Deletes the instance of the task's deferred. Args: @@ -524,8 +543,8 @@ return True
    [docs] def clear(self, save=True, cancel=True): - """clear all tasks. - By default tasks are canceled and removed from the database also. + """ + Clear all tasks. By default tasks are canceled and removed from the database as well. Args: save=True (bool): Should changes to persistent tasks be saved to database. @@ -547,7 +566,8 @@ return True
    [docs] def call_task(self, task_id): - """Call the callback of a task. + """ + Call the callback of a task. Leave the task unaffected otherwise. This does not use the task's deferred instance. The only requirement is that the task exist in task handler. @@ -567,7 +587,8 @@ return callback(*args, **kwargs)
    [docs] def do_task(self, task_id): - """Execute the task (call its callback). + """ + Execute the task (call its callback). If calling before timedelay cancel the deferred instance affliated to this task. Remove the task from the dictionary of current tasks on a successful callback. @@ -612,7 +633,8 @@ return None
    [docs] def create_delays(self): - """Create the delayed tasks for the persistent tasks. + """ + Create the delayed tasks for the persistent tasks. This method should be automatically called when Evennia starts. """ @@ -654,11 +676,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/scripts/tickerhandler.html b/docs/0.9.5/_modules/evennia/scripts/tickerhandler.html index da1c648f8c..283dd85d2d 100644 --- a/docs/0.9.5/_modules/evennia/scripts/tickerhandler.html +++ b/docs/0.9.5/_modules/evennia/scripts/tickerhandler.html @@ -709,11 +709,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/server/admin.html b/docs/0.9.5/_modules/evennia/server/admin.html deleted file mode 100644 index cd7e0218d5..0000000000 --- a/docs/0.9.5/_modules/evennia/server/admin.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - - - evennia.server.admin — Evennia 0.9.5 documentation - - - - - - - - - - - - - - - -
    -
    -
    -
    - -

    Source code for evennia.server.admin

    -#
    -# This sets up how models are displayed
    -# in the web admin interface.
    -#
    -
    -from django.contrib import admin
    -from evennia.server.models import ServerConfig
    -
    -
    -
    [docs]class ServerConfigAdmin(admin.ModelAdmin): - """ - Custom admin for server configs - - """ - - list_display = ("db_key", "db_value") - list_display_links = ("db_key",) - ordering = ["db_key", "db_value"] - search_fields = ["db_key"] - save_as = True - save_on_top = True - list_select_related = True
    - - -admin.site.register(ServerConfig, ServerConfigAdmin) -
    - -
    -
    -
    -
    - -
    -
    - - - - \ No newline at end of file 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 d65470c781..51994d4203 100644 --- a/docs/0.9.5/_modules/evennia/server/amp_client.html +++ b/docs/0.9.5/_modules/evennia/server/amp_client.html @@ -48,9 +48,11 @@ """ 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 +78,7 @@ """ self.server = server - self.protocol = AMPServerClientProtocol + self.protocol = class_from_module(settings.AMP_CLIENT_PROTOCOL_CLASS) self.maxDelay = 10 # not really used unless connecting to multiple servers, but # avoids having to check for its existence on the protocol @@ -316,11 +318,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 39459c435e..7240c4c96a 100644 --- a/docs/0.9.5/_modules/evennia/server/connection_wizard.html +++ b/docs/0.9.5/_modules/evennia/server/connection_wizard.html @@ -587,11 +587,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/server/deprecations.html b/docs/0.9.5/_modules/evennia/server/deprecations.html index e4d3ad1b76..fc3c4152fa 100644 --- a/docs/0.9.5/_modules/evennia/server/deprecations.html +++ b/docs/0.9.5/_modules/evennia/server/deprecations.html @@ -47,7 +47,7 @@ These all print to the terminal. """ - +import os
    [docs]def check_errors(settings): """ @@ -102,6 +102,21 @@ "Update your settings file (see evennia/settings_default.py " "for more info)." ) + depstring = ( + "settings.{} was renamed to {}. Update your settings file (the FuncParser " + "replaces and generalizes that which inlinefuncs used to do).") + if hasattr(settings, "INLINEFUNC_ENABLED"): + raise DeprecationWarning(depstring.format( + "settings.INLINEFUNC_ENABLED", "FUNCPARSER_PARSE_OUTGOING_MESSAGES_ENABLED")) + if hasattr(settings, "INLINEFUNC_STACK_MAXSIZE"): + raise DeprecationWarning(depstring.format( + "settings.INLINEFUNC_STACK_MAXSIZE", "FUNCPARSER_MAX_NESTING")) + if hasattr(settings, "INLINEFUNC_MODULES"): + raise DeprecationWarning(depstring.format( + "settings.INLINEFUNC_MODULES", "FUNCPARSER_OUTGOING_MESSAGES_MODULES")) + if hasattr(settings, "PROTFUNC_MODULES"): + raise DeprecationWarning(depstring.format( + "settings.PROTFUNC_MODULES", "FUNCPARSER_PROTOTYPE_VALUE_MODULES")) gametime_deprecation = ( "The settings TIME_SEC_PER_MIN, TIME_MIN_PER_HOUR," @@ -144,6 +159,26 @@ "settings.CYCLE_LOGFILES is unused and should be removed. " "Use PORTAL/SERVER_LOG_DAY_ROTATION and PORTAL/SERVER_LOG_MAX_SIZE " "to control log cycling." + ) + if hasattr(settings, "CHANNEL_COMMAND_CLASS") or hasattr(settings, "CHANNEL_HANDLER_CLASS"): + raise DeprecationWarning( + "settings.CHANNEL_HANDLER_CLASS and CHANNEL COMMAND_CLASS are " + "unused and should be removed. The ChannelHandler is no more; " + "channels are now handled by aliasing the default 'channel' command.") + + template_overrides_dir = os.path.join(settings.GAME_DIR, "web", "template_overrides") + static_overrides_dir = os.path.join(settings.GAME_DIR, "web", "static_overrides") + if os.path.exists(template_overrides_dir): + raise DeprecationWarning( + f"The template_overrides directory ({template_overrides_dir}) has changed name.\n" + " - Rename your existing `template_overrides` folder to `templates` instead." + ) + if os.path.exists(static_overrides_dir): + raise DeprecationWarning( + f"The static_overrides directory ({static_overrides_dir}) has changed name.\n" + " 1. Delete any existing `web/static` folder and all its contents (this " + "was auto-generated)\n" + " 2. Rename your existing `static_overrides` folder to `static` instead." )
    @@ -158,6 +193,10 @@ print(" [Devel: settings.IN_GAME_ERRORS is True. Turn off in production.]") if settings.ALLOWED_HOSTS == ["*"]: print(" [Devel: settings.ALLOWED_HOSTS set to '*' (all). Limit in production.]") + if settings.SERVER_HOSTNAME == "localhost": + print(" [Devel: settings.SERVER_HOSTNAME is set to 'localhost'. " + "Update to the actual hostname in production.]") + for dbentry in settings.DATABASES.values(): if "psycopg" in dbentry.get("ENGINE", ""): print( @@ -190,11 +229,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 81ff3e873b..4dc1cca7f8 100644 --- a/docs/0.9.5/_modules/evennia/server/evennia_launcher.html +++ b/docs/0.9.5/_modules/evennia/server/evennia_launcher.html @@ -135,9 +135,9 @@ # requirements PYTHON_MIN = "3.7" -TWISTED_MIN = "18.0.0" -DJANGO_MIN = "3.2" -DJANGO_LT = "3.3" +TWISTED_MIN = "20.3.0" +DJANGO_MIN = "3.2.0" +DJANGO_LT = "4.0" try: sys.path[1] = EVENNIA_ROOT @@ -330,7 +330,7 @@ Licence: BSD 3-Clause Licence Web: http://www.evennia.com - Irc: #evennia on FreeNode + Chat: https://discord.gg/AJJpcRUhtF Forum: http://www.evennia.com/discussions Maintainer (2006-10): Greg Taylor Maintainer (2010-): Griatch (griatch AT gmail DOT com) @@ -1466,7 +1466,18 @@ "\nCreate a superuser below. The superuser is Account #1, the 'owner' " "account of the server. Email is optional and can be empty.\n" ) - django.core.management.call_command("createsuperuser", interactive=True) + from os import environ + + username = environ.get("EVENNIA_SUPERUSER_USERNAME") + email = environ.get("EVENNIA_SUPERUSER_EMAIL") + password = environ.get("EVENNIA_SUPERUSER_PASSWORD") + + if (username is not None) and (password is not None) and len(password) > 0: + from evennia.accounts.models import AccountDB + superuser = AccountDB.objects.create_superuser(username, email, password) + superuser.save() + else: + django.core.management.call_command("createsuperuser", interactive=True)
    [docs]def check_database(always_return=False): @@ -1945,6 +1956,51 @@ print(table)
    +
    [docs]def run_custom_commands(option, *args): + """ + Inject a custom option into the evennia launcher command chain. + + Args: + option (str): Incoming option - the first argument after `evennia` on + the command line. + *args: All args will passed to a found callable.__dict__ + + Returns: + bool: If a custom command was found and handled the option. + + Notes: + Provide new commands in settings with + + CUSTOM_EVENNIA_LAUNCHER_COMMANDS = {"mycmd": "path.to.callable", ...} + + The callable will be passed any `*args` given on the command line and is expected to + handle/validate the input correctly. Use like any other evennia command option on + in the terminal/console, for example: + + evennia mycmd foo bar + + """ + from django.conf import settings + import importlib + + try: + # a dict of {option: callable(*args), ...} + custom_commands = settings.EXTRA_LAUNCHER_COMMANDS + except AttributeError: + return False + cmdpath = custom_commands.get(option) + if cmdpath: + modpath, *cmdname = cmdpath.rsplit('.', 1) + if cmdname: + cmdname = cmdname[0] + mod = importlib.import_module(modpath) + command = mod.__dict__.get(cmdname) + if command: + command(*args) + return True + return False
    + +
    [docs]def run_menu(): """ This launches an interactive menu. @@ -2302,7 +2358,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"): + if option in ("shell", "check", "makemigrations", "createsuperuser", "shell_plus"): # some django commands requires the database to exist, # or evennia._init to have run before they work right. check_db = True @@ -2318,6 +2374,10 @@ django.core.management.call_command(*([option] + unknown_args)) sys.exit(0) + if run_custom_commands(option, *unknown_args): + # run any custom commands + sys.exit() + # pass on to the core django manager - re-parse the entire input line # but keep 'evennia' as the name instead of django-admin. This is # an exit condition. @@ -2360,11 +2420,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 8f17143393..68b6b781d5 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,11 +245,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 7103e7cf78..c5af1fbc5e 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,11 +124,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 d2be1dcb47..5d5c49c5a4 100644 --- a/docs/0.9.5/_modules/evennia/server/initial_setup.html +++ b/docs/0.9.5/_modules/evennia/server/initial_setup.html @@ -42,9 +42,9 @@

    Source code for evennia.server.initial_setup

     """
    -This module handles initial database propagation, which is only run the first
    -time the game starts. It will create some default channels, objects, and
    -other things.
    +This module handles initial database propagation, which is only run the first time the game starts.
    +It will create some default objects (notably give #1 its evennia-specific properties, and create the
    +Limbo room). It will also hooks, and then perform an initial restart.
     
     Everything starts at handle_setup()
     """
    @@ -68,13 +68,11 @@
         """
     
     
    -LIMBO_DESC = _(
    -    """
    -Welcome to your new |wEvennia|n-based game! Visit http://www.evennia.com if you need
    -help, want to contribute, report issues or just join the community.
    -As Account #1 you can create a demo/tutorial area with '|wbatchcommand tutorial_world.build|n'.
    -    """
    -)
    +LIMBO_DESC = _("""
    +Welcome to your new |wEvennia|n-based game! Visit https://www.evennia.com if you need
    +help, want to contribute, report issues or just join the community.
    +As Account #1 you can create a demo/tutorial area with '|wbatchcommand tutorial_world.build|n'.
    +""")
     
     
     WARNING_POSTGRESQL_FIX = """
    @@ -83,19 +81,25 @@
         but the superuser was not yet connected to them. Please use in
         game commands to connect Account #1 to those channels when first
         logging in.
    -    """
    +"""
     
     
    -
    [docs]def get_god_account(): +def _get_superuser_account(): """ - Creates the god user and don't take no for an answer. + Get the superuser (created at the command line) and don't take no for an answer. + + Returns: + Account: The first superuser (User #1). + + Raises: + AccountDB.DoesNotExist: If the superuser couldn't be found. """ try: - god_account = AccountDB.objects.get(id=1) + superuser = AccountDB.objects.get(id=1) except AccountDB.DoesNotExist: raise AccountDB.DoesNotExist(ERROR_NO_SUPERUSER) - return god_account
    + return superuser
    [docs]def create_objects(): @@ -108,85 +112,68 @@ # Set the initial User's account object's username on the #1 object. # This object is pure django and only holds name, email and password. - god_account = get_god_account() + superuser = _get_superuser_account() + from evennia.objects.models import ObjectDB # Create an Account 'user profile' object to hold eventual # mud-specific settings for the AccountDB object. account_typeclass = settings.BASE_ACCOUNT_TYPECLASS - # run all creation hooks on god_account (we must do so manually + # run all creation hooks on superuser (we must do so manually # since the manage.py command does not) - god_account.swap_typeclass(account_typeclass, clean_attributes=True) - god_account.basetype_setup() - god_account.at_account_creation() - god_account.locks.add( + superuser.swap_typeclass(account_typeclass, clean_attributes=True) + superuser.basetype_setup() + superuser.at_account_creation() + superuser.locks.add( "examine:perm(Developer);edit:false();delete:false();boot:false();msg:all()" ) # this is necessary for quelling to work correctly. - god_account.permissions.add("Developer") + superuser.permissions.add("Developer") # Limbo is the default "nowhere" starting room # Create the in-game god-character for account #1 and set # it to exist in Limbo. character_typeclass = settings.BASE_CHARACTER_TYPECLASS - god_character = create.create_object(character_typeclass, key=god_account.username, nohome=True) + try: + superuser_character = ObjectDB.objects.get(id=1) + except ObjectDB.DoesNotExist: + superuser_character = create.create_object( + character_typeclass, key=superuser.username, nohome=True) - god_character.id = 1 - god_character.save() - god_character.db.desc = _("This is User #1.") - god_character.locks.add( + superuser_character.db_typeclass_path = character_typeclass + superuser_character.db.desc = _("This is User #1.") + superuser_character.locks.add( "examine:perm(Developer);edit:false();delete:false();boot:false();msg:all();puppet:false()" ) # we set this low so that quelling is more useful - god_character.permissions.add("Player") + superuser_character.permissions.add("Player") + superuser_character.save() - god_account.attributes.add("_first_login", True) - god_account.attributes.add("_last_puppet", god_character) + superuser.attributes.add("_first_login", True) + superuser.attributes.add("_last_puppet", superuser_character) try: - god_account.db._playable_characters.append(god_character) + superuser.db._playable_characters.append(superuser_character) except AttributeError: - god_account.db_playable_characters = [god_character] + superuser.db_playable_characters = [superuser_character] room_typeclass = settings.BASE_ROOM_TYPECLASS - limbo_obj = create.create_object(room_typeclass, _("Limbo"), nohome=True) - limbo_obj.id = 2 - limbo_obj.save() + try: + limbo_obj = ObjectDB.objects.get(id=2) + except ObjectDB.DoesNotExist: + limbo_obj = create.create_object(room_typeclass, _("Limbo"), nohome=True) + + limbo_obj.db_typeclass_path = room_typeclass limbo_obj.db.desc = LIMBO_DESC.strip() limbo_obj.save() # Now that Limbo exists, try to set the user up in Limbo (unless # the creation hooks already fixed this). - if not god_character.location: - god_character.location = limbo_obj - if not god_character.home: - god_character.home = limbo_obj
    - - -
    [docs]def create_channels(): - """ - Creates some sensible default channels. - - """ - logger.log_info("Initial setup: Creating default channels ...") - - goduser = get_god_account() - - channel_mudinfo = settings.CHANNEL_MUDINFO - if not channel_mudinfo: - raise RuntimeError("settings.CHANNEL_MUDINFO must be defined.") - channel = create.create_channel(**channel_mudinfo) - channel.connect(goduser) - - channel_connectinfo = settings.CHANNEL_CONNECTINFO - if channel_connectinfo: - channel = create.create_channel(**channel_connectinfo) - - for channeldict in settings.DEFAULT_CHANNELS: - channel = create.create_channel(**channeldict) - channel.connect(goduser)
    - + if not superuser_character.location: + superuser_character.location = limbo_obj + if not superuser_character.home: + superuser_character.home = limbo_obj
    [docs]def at_initial_setup(): """ @@ -234,52 +221,49 @@ SESSIONS.portal_reset_server()
    -
    [docs]def handle_setup(last_step): +
    [docs]def handle_setup(last_step=None): """ Main logic for the module. It allows for restarting the initialization at any point if one of the modules should crash. Args: - last_step (int): The last stored successful step, for starting - over on errors. If `< 0`, initialization has finished and no - steps need to be redone. + last_step (str, None): The last stored successful step, for starting + over on errors. None if starting from scratch. If this is 'done', + the function will exit immediately. """ - - if last_step < 0: + if last_step in('done', -1): # this means we don't need to handle setup since - # it already ran sucessfully once. + # it already ran sucessfully once. -1 is the legacy + # value for existing databases. return - # if None, set it to 0 - last_step = last_step or 0 - # setting up the list of functions to run - setup_queue = [create_objects, create_channels, at_initial_setup, collectstatic, reset_server] + # setup sequence + setup_sequence = { + 'create_objects': create_objects, + 'at_initial_setup': at_initial_setup, + 'collectstatic': collectstatic, + 'done': reset_server, + } - # step through queue, from last completed function - for num, setup_func in enumerate(setup_queue[last_step:]): - # run the setup function. Note that if there is a - # traceback we let it stop the system so the config - # step is not saved. + # determine the sequence so we can skip ahead + steps = list(setup_sequence) + steps = steps[steps.index(last_step) + 1 if last_step is not None else 0:] + # step through queue from last completed function. Once completed, + # the 'done' key should be set. + for stepname in steps: try: - setup_func() + setup_sequence[stepname]() except Exception: - if last_step + num == 1: - from evennia.objects.models import ObjectDB - - for obj in ObjectDB.objects.all(): - obj.delete() - elif last_step + num == 2: - from evennia.comms.models import ChannelDB - - ChannelDB.objects.all().delete() + # we re-raise to make sure to stop startup raise - # save this step - ServerConfig.objects.conf("last_initial_setup_step", last_step + num + 1) - # We got through the entire list. Set last_step to -1 so we don't - # have to run this again. - ServerConfig.objects.conf("last_initial_setup_step", -1)
    + else: + # save the step + ServerConfig.objects.conf("last_initial_setup_step", stepname) + if stepname == 'done': + # always exit on 'done' + break
    @@ -305,11 +289,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/server/inputfuncs.html b/docs/0.9.5/_modules/evennia/server/inputfuncs.html index c77ed9f1c3..d047249602 100644 --- a/docs/0.9.5/_modules/evennia/server/inputfuncs.html +++ b/docs/0.9.5/_modules/evennia/server/inputfuncs.html @@ -81,10 +81,24 @@ _SA = object.__setattr__ +_STRIP_INCOMING_MXP = settings.MXP_ENABLED and settings.MXP_OUTGOING_ONLY +_STRIP_MXP = None + + + def _NA(o): return "N/A" +def _maybe_strip_incoming_mxp(txt): + global _STRIP_MXP + if _STRIP_INCOMING_MXP: + if not _STRIP_MXP: + from evennia.utils.ansi import strip_mxp as _STRIP_MXP + return _STRIP_MXP(txt) + return txt + + _ERROR_INPUT = "Inputfunc {name}({session}): Wrong/unrecognized input: {inp}" @@ -102,6 +116,7 @@ arguments are ignored. """ + # from evennia.server.profiling.timetrace import timetrace # text = timetrace(text, "ServerSession.data_in") @@ -116,16 +131,19 @@ if txt.strip() in _IDLE_COMMAND: session.update_session_counters(idle=True) return + + txt = _maybe_strip_incoming_mxp(txt) + if session.account: # nick replacement puppet = session.puppet if puppet: txt = puppet.nicks.nickreplace( - txt, categories=("inputline", "channel"), include_account=True + txt, categories=("inputline"), include_account=True ) else: txt = session.account.nicks.nickreplace( - txt, categories=("inputline", "channel"), include_account=False + txt, categories=("inputline"), include_account=False ) kwargs.pop("options", None) cmdhandler(session, txt, callertype="session", session=session, **kwargs) @@ -154,6 +172,9 @@ if txt.strip() in _IDLE_COMMAND: session.update_session_counters(idle=True) return + + txt = _maybe_strip_incoming_mxp(txt) + kwargs.pop("options", None) # Trigger the execute_cmd method of the corresponding bot. session.account.execute_cmd(session=session, txt=txt, **kwargs) @@ -164,6 +185,9 @@ """ Echo test function """ + if _STRIP_INCOMING_MXP: + txt = strip_mxp(txt) + session.data_out(text="Echo returns: %s" % args) @@ -199,6 +223,7 @@ "RAW", "NOCOLOR", "NOGOAHEAD", + "LOCALECHO", ) @@ -223,6 +248,7 @@ inputdebug (bool): Debug input functions nocolor (bool): Strip color raw (bool): Turn off parsing + localecho (bool): Turn on server-side echo (for clients not supporting it) """ old_flags = session.protocol_flags @@ -282,6 +308,8 @@ flags["RAW"] = validate_bool(value) elif key == "nogoahead": flags["NOGOAHEAD"] = validate_bool(value) + elif key == "localecho": + flags["LOCALECHO"] = validate_bool(value) elif key in ( "Char 1", "Char.Skills 1", @@ -530,7 +558,6 @@ Keyword Args: <option name>: an option to save - """ account = session.account @@ -653,12 +680,21 @@ # client specific -
    [docs]def external_discord_hello(session, *args, **kwargs): +def _not_implemented(session, *args, **kwargs): """ - Sent by Mudlet as a greeting; added here to avoid - logging a missing inputfunc for it. + Dummy used to swallow missing-inputfunc errors for + common clients. """ - pass
    + pass + + +# GMCP External.Discord.Hello is sent by Mudlet as a greeting +# (see https://wiki.mudlet.org/w/Manual:Technical_Manual) +external_discord_hello = _not_implemented + + +# GMCP Client.Gui is sent by Mudlet for gui setup. +client_gui = _not_implemented
    @@ -684,11 +720,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/server/manager.html b/docs/0.9.5/_modules/evennia/server/manager.html index f516938168..9f3c2a6bc8 100644 --- a/docs/0.9.5/_modules/evennia/server/manager.html +++ b/docs/0.9.5/_modules/evennia/server/manager.html @@ -119,11 +119,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/server/models.html b/docs/0.9.5/_modules/evennia/server/models.html index b8308ce7e8..001e9d7076 100644 --- a/docs/0.9.5/_modules/evennia/server/models.html +++ b/docs/0.9.5/_modules/evennia/server/models.html @@ -51,9 +51,8 @@ manager's conf() method. """ -import pickle - from django.db import models + from evennia.utils.idmapper.models import WeakSharedMemoryModel from evennia.utils import logger, utils from evennia.utils.dbserialize import to_pickle, from_pickle @@ -153,7 +152,7 @@ value = property(__value_get, __value_set, __value_del) - class Meta(object): + class Meta: "Define Django meta options" verbose_name = "Server Config value" verbose_name_plural = "Server Config values" @@ -161,9 +160,8 @@ # # ServerConfig other methods # - def __repr__(self): - return "<{} {}>".format(self.__class__.__name__, self.key, self.value) + return "<{} {}>".format(self.__class__.__name__, self.key)
    [docs] def store(self, key, value): """ @@ -201,11 +199,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 e5098b4b14..29f5a866d2 100644 --- a/docs/0.9.5/_modules/evennia/server/portal/amp.html +++ b/docs/0.9.5/_modules/evennia/server/portal/amp.html @@ -58,7 +58,7 @@ import pickle from twisted.internet.defer import DeferredList, Deferred -from evennia.utils.utils import to_str, variable_from_module +from evennia.utils.utils import variable_from_module # delayed import _LOGGER = None @@ -136,7 +136,10 @@ def _get_logger(): - "Delay import of logger until absolutely necessary" + """ + Delay import of logger until absolutely necessary + + """ global _LOGGER if not _LOGGER: from evennia.utils import logger as _LOGGER @@ -145,7 +148,10 @@ @wraps def catch_traceback(func): - "Helper decorator" + """ + Helper decorator + + """ def decorator(*args, **kwargs): try: @@ -396,6 +402,7 @@
    [docs] def dataReceived(self, data): """ Handle non-AMP messages, such as HTTP communication. + """ # print("dataReceived: {}".format(data)) if data[:1] == NUL: @@ -456,6 +463,7 @@ that is irrelevant. If a true connection error happens, the portal will continuously try to reconnect, showing the problem that way. + """ # print("ConnectionLost: {}: {}".format(self, reason)) try: @@ -465,20 +473,20 @@ # Error handling -
    [docs] def errback(self, e, info): +
    [docs] def errback(self, err, info): """ Error callback. Handles errors to avoid dropping connections on server tracebacks. Args: - e (Failure): Deferred error instance. + err (Failure): Deferred error instance. info (str): Error string. """ - e.trap(Exception) + err.trap(Exception) _get_logger().log_err( "AMP Error from {info}: {trcbck} {err}".format( - info=info, trcbck=e.getTraceback(), err=e.getErrorMessage() + info=info, trcbck=err.getTraceback(), err=err.getErrorMessage() ) )
    @@ -606,11 +614,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 e1bb8819bc..3d553763ed 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 @@ -54,6 +54,7 @@ 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(): @@ -85,7 +86,10 @@ noisy = False
    [docs] def logPrefix(self): - "How this is named in logs" + """ + How this is named in logs + + """ return "AMP"
    [docs] def __init__(self, portal): @@ -99,7 +103,7 @@ """ self.portal = portal - self.protocol = AMPServerProtocol + self.protocol = class_from_module(settings.AMP_SERVER_PROTOCOL_CLASS) self.broadcasts = [] self.server_connection = None self.launcher_connection = None @@ -117,7 +121,7 @@ protocol (Protocol): The created protocol. """ - self.portal.amp_protocol = AMPServerProtocol() + self.portal.amp_protocol = self.protocol() self.portal.amp_protocol.factory = self return self.portal.amp_protocol
    @@ -547,11 +551,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 bb75788fc1..f7804789ed 100644 --- a/docs/0.9.5/_modules/evennia/server/portal/grapevine.html +++ b/docs/0.9.5/_modules/evennia/server/portal/grapevine.html @@ -378,7 +378,7 @@ # incoming broadcast from network payload = data["payload"] - print("channels/broadcast:", payload["channel"], self.channel) + # print("channels/broadcast:", payload["channel"], self.channel) if str(payload["channel"]) != self.channel: # only echo from channels this particular bot actually listens to return @@ -425,11 +425,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 b791f10402..f4165054ba 100644 --- a/docs/0.9.5/_modules/evennia/server/portal/irc.html +++ b/docs/0.9.5/_modules/evennia/server/portal/irc.html @@ -544,11 +544,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 758824773e..39d28462f1 100644 --- a/docs/0.9.5/_modules/evennia/server/portal/mccp.html +++ b/docs/0.9.5/_modules/evennia/server/portal/mccp.html @@ -80,7 +80,7 @@ return data -
    [docs]class Mccp(object): +
    [docs]class Mccp: """ Implements the MCCP protocol. Add this to a variable on the telnet protocol to set it up. @@ -155,11 +155,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 6550a6f3b5..5ee8274a82 100644 --- a/docs/0.9.5/_modules/evennia/server/portal/mssp.html +++ b/docs/0.9.5/_modules/evennia/server/portal/mssp.html @@ -64,7 +64,7 @@ MSSPTable_CUSTOM = utils.variable_from_module(settings.MSSP_META_MODULE, "MSSPTable", default={}) -
    [docs]class Mssp(object): +
    [docs]class Mssp: """ Implements the MSSP protocol. Add this to a variable on the telnet protocol to set it up. @@ -200,11 +200,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 4416f9137e..85872c9440 100644 --- a/docs/0.9.5/_modules/evennia/server/portal/mxp.html +++ b/docs/0.9.5/_modules/evennia/server/portal/mxp.html @@ -57,14 +57,17 @@ """ import re +from django.conf import settings LINKS_SUB = re.compile(r"\|lc(.*?)\|lt(.*?)\|le", re.DOTALL) +URL_SUB = re.compile(r"\|lu(.*?)\|lt(.*?)\|le", re.DOTALL) # MXP Telnet option MXP = bytes([91]) # b"\x5b" MXP_TEMPSECURE = "\x1B[4z" MXP_SEND = MXP_TEMPSECURE + '<SEND HREF="\\1">' + "\\2" + MXP_TEMPSECURE + "</SEND>" +MXP_URL = MXP_TEMPSECURE + '<A HREF="\\1">' + "\\2" + MXP_TEMPSECURE + "</A>"
    [docs]def mxp_parse(text): @@ -81,10 +84,11 @@ text = text.replace("&", "&amp;").replace("<", "&lt;").replace(">", "&gt;") text = LINKS_SUB.sub(MXP_SEND, text) + text = URL_SUB.sub(MXP_URL, text) return text
    -
    [docs]class Mxp(object): +
    [docs]class Mxp: """ Implements the MXP protocol. @@ -100,7 +104,8 @@ """ self.protocol = protocol self.protocol.protocol_flags["MXP"] = False - self.protocol.will(MXP).addCallbacks(self.do_mxp, self.no_mxp)
    + if settings.MXP_ENABLED: + self.protocol.will(MXP).addCallbacks(self.do_mxp, self.no_mxp)
    [docs] def no_mxp(self, option): """ @@ -121,8 +126,11 @@ option (Option): Not used. """ - self.protocol.protocol_flags["MXP"] = True - self.protocol.requestNegotiation(MXP, b"") + if settings.MXP_ENABLED: + self.protocol.protocol_flags["MXP"] = True + self.protocol.requestNegotiation(MXP, b"") + else: + self.protocol.wont(MXP) self.protocol.handshake_done()
    @@ -149,11 +157,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 b08b6624c2..595034d9c5 100644 --- a/docs/0.9.5/_modules/evennia/server/portal/naws.html +++ b/docs/0.9.5/_modules/evennia/server/portal/naws.html @@ -57,6 +57,7 @@ NAWS = bytes([31]) # b"\x1f" IS = bytes([0]) # b"\x00" + # default taken from telnet specification DEFAULT_WIDTH = settings.CLIENT_DEFAULT_WIDTH DEFAULT_HEIGHT = settings.CLIENT_DEFAULT_HEIGHT @@ -64,7 +65,7 @@ # try to get the customized mssp info, if it exists. -
    [docs]class Naws(object): +
    [docs]class Naws: """ Implements the NAWS protocol. Add this to a variable on the telnet protocol to set it up. @@ -149,11 +150,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 1c7ed587a4..4e5b44646b 100644 --- a/docs/0.9.5/_modules/evennia/server/portal/portal.html +++ b/docs/0.9.5/_modules/evennia/server/portal/portal.html @@ -70,7 +70,7 @@ evennia._init() -from evennia.utils.utils import get_evennia_version, mod_import, make_iter +from evennia.utils.utils import get_evennia_version, mod_import, make_iter, class_from_module from evennia.server.portal.portalsessionhandler import PORTAL_SESSIONS from evennia.utils import logger from evennia.server.webserver import EvenniaReverseProxyResource @@ -226,6 +226,7 @@ Returns: server_twistd_cmd (list): An instruction for starting the server, to pass to Popen. + """ server_twistd_cmd = [ "twistd", @@ -239,7 +240,10 @@ return server_twistd_cmd
    [docs] def get_info_dict(self): - "Return the Portal info, for display." + """ + Return the Portal info, for display. + + """ return INFO_DICT
    [docs] def shutdown(self, _reactor_stopping=False, _stop_server=False): @@ -328,6 +332,8 @@ 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: @@ -336,7 +342,7 @@ pstring = "%s:%s" % (ifacestr, port) factory = telnet.TelnetServerFactory() factory.noisy = False - factory.protocol = telnet.TelnetProtocol + factory.protocol = _telnet_protocol factory.sessionhandler = PORTAL_SESSIONS telnet_service = internet.TCPServer(port, factory, interface=interface) telnet_service.setName("EvenniaTelnet%s" % pstring) @@ -351,6 +357,8 @@ 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: @@ -360,7 +368,7 @@ factory = protocol.ServerFactory() factory.noisy = False factory.sessionhandler = PORTAL_SESSIONS - factory.protocol = telnet_ssl.SSLProtocol + factory.protocol = _ssl_protocol ssl_context = telnet_ssl.getSSLContext() if ssl_context: @@ -384,6 +392,8 @@ 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: @@ -391,11 +401,8 @@ for port in SSH_PORTS: pstring = "%s:%s" % (ifacestr, port) factory = ssh.makeFactory( - { - "protocolFactory": ssh.SshProtocol, - "protocolArgs": (), - "sessions": PORTAL_SESSIONS, - } + {"protocolFactory": _ssh_protocol, + "protocolArgs": (), "sessions": PORTAL_SESSIONS} ) factory.noisy = False ssh_service = internet.TCPServer(port, factory, interface=interface) @@ -411,6 +418,7 @@ # 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: @@ -430,7 +438,7 @@ if WEBSOCKET_CLIENT_ENABLED and not websocket_started: # start websocket client port for the webclient # we only support one websocket client - from evennia.server.portal import webclient + from evennia.server.portal import webclient # noqa from autobahn.twisted.websocket import WebSocketServerFactory w_interface = WEBSOCKET_CLIENT_INTERFACE @@ -445,7 +453,7 @@ factory = Websocket() factory.noisy = False - factory.protocol = webclient.WebSocketClient + factory.protocol = _websocket_protocol factory.sessionhandler = PORTAL_SESSIONS websocket_service = internet.TCPServer(port, factory, interface=w_interface) websocket_service.setName("EvenniaWebSocket%s:%s" % (w_ifacestr, port)) @@ -457,10 +465,13 @@ if WEB_PLUGINS_MODULE: try: web_root = WEB_PLUGINS_MODULE.at_webproxy_root_creation(web_root) - except Exception as e: # Legacy user has not added an at_webproxy_root_creation function in existing web plugins file + except Exception: + # Legacy user has not added an at_webproxy_root_creation function in existing + # web plugins file INFO_DICT["errors"] = ( - "WARNING: WEB_PLUGINS_MODULE is enabled but at_webproxy_root_creation() not found - " - "copy 'evennia/game_template/server/conf/web_plugins.py to mygame/server/conf." + "WARNING: WEB_PLUGINS_MODULE is enabled but at_webproxy_root_creation() " + "not found copy 'evennia/game_template/server/conf/web_plugins.py to " + "mygame/server/conf." ) web_root = Website(web_root, logPath=settings.HTTP_LOG_FILE) web_root.is_portal = True @@ -475,7 +486,6 @@ # external plugin services to start if plugin_module: plugin_module.start_plugin_services(PORTAL) -
    @@ -501,11 +511,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 38640c6fc2..e25252734a 100644 --- a/docs/0.9.5/_modules/evennia/server/portal/portalsessionhandler.html +++ b/docs/0.9.5/_modules/evennia/server/portal/portalsessionhandler.html @@ -42,7 +42,8 @@

    Source code for evennia.server.portal.portalsessionhandler

     """
    -Sessionhandler for portal sessions
    +Sessionhandler for portal sessions.
    +
     """
     
     
    @@ -50,8 +51,11 @@
     from collections import deque, namedtuple
     from twisted.internet import reactor
     from django.conf import settings
    -from evennia.server.sessionhandler import SessionHandler, PCONN, PDISCONN, PCONNSYNC, PDISCONNALL
    +from evennia.server.sessionhandler import SessionHandler
    +from evennia.server.portal.amp import PCONN, PDISCONN, PCONNSYNC, PDISCONNALL
     from evennia.utils.logger import log_trace
    +from evennia.utils.utils import class_from_module
    +from django.utils.translation import gettext as _
     
     # module import
     _MOD_IMPORT = None
    @@ -76,6 +80,9 @@
     # Portal-SessionHandler class
     # -------------------------------------------------------------
     
    +DOS_PROTECTION_MSG = _("{servername} DoS protection is active."
    +                       "You are queued to connect in {num} seconds ...")
    +
     
     
    [docs]class PortalSessionHandler(SessionHandler): """ @@ -111,6 +118,19 @@ """ 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 @@ -134,22 +154,17 @@ 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 - self.latest_sessid += 1 - session.sessid = self.latest_sessid + session.sessid = self.generate_sessid() session.server_connected = False _CONNECTION_QUEUE.appendleft(session) if len(_CONNECTION_QUEUE) > 1: session.data_out( - text=[ - [ - "%s DoS protection is active. You are queued to connect in %g seconds ..." - % ( - settings.SERVERNAME, - len(_CONNECTION_QUEUE) * _MIN_TIME_BETWEEN_CONNECTS, - ) - ], + text=( + (DOS_PROTECTION_MSG.format( + servername=settings.SERVERNAME, + num=len(_CONNECTION_QUEUE) * _MIN_TIME_BETWEEN_CONNECTS),), {}, - ] + ) ) now = time.time() if ( @@ -249,6 +264,7 @@
    [docs] def disconnect_all(self): """ Disconnect all sessions, informing the Server. + """ def _callback(result, sessionhandler): @@ -466,7 +482,11 @@ # relay data to Server session.cmd_last = now - self.portal.amp_protocol.send_MsgPortal2Server(session, **kwargs)
    + self.portal.amp_protocol.send_MsgPortal2Server(session, **kwargs) + + # eventual local echo (text input only) + if 'text' in kwargs and session.protocol_flags.get('LOCALECHO', False): + self.data_out(session, text=kwargs['text'])
    [docs] def data_out(self, session, **kwargs): """ @@ -506,7 +526,8 @@ log_trace()
    -PORTAL_SESSIONS = PortalSessionHandler() +_PORTAL_SESSION_HANDLER_CLASS = class_from_module(settings.PORTAL_SESSION_HANDLER_CLASS) +PORTAL_SESSIONS = _PORTAL_SESSION_HANDLER_CLASS()
    @@ -532,11 +553,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 d7ae9fe9f5..a19b1d3c44 100644 --- a/docs/0.9.5/_modules/evennia/server/portal/rss.html +++ b/docs/0.9.5/_modules/evennia/server/portal/rss.html @@ -188,6 +188,7 @@
    [docs] def start(self): """ Called by portalsessionhandler. Starts the bot. + """ def errback(fail): @@ -229,11 +230,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 ae8c2d09b7..9200951cc8 100644 --- a/docs/0.9.5/_modules/evennia/server/portal/ssh.html +++ b/docs/0.9.5/_modules/evennia/server/portal/ssh.html @@ -86,10 +86,9 @@ 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 +from evennia.utils.utils import to_str, class_from_module _RE_N = re.compile(r"\|n$") _RE_SCREENREADER_REGEX = re.compile( @@ -105,29 +104,32 @@ CTRL_BACKSLASH = "\x1c" CTRL_L = "\x0c" -_NO_AUTOGEN = """ -Evennia could not generate SSH private- and public keys ({{err}}) +_NO_AUTOGEN = f""" +Evennia could not generate SSH private- and public keys ({{err}}) Using conch default keys instead. If this error persists, create the keys manually (using the tools for your OS) and put them here: - {} - {} -""".format( - _PRIVATE_KEY_FILE, _PUBLIC_KEY_FILE -) + {_PRIVATE_KEY_FILE} + {_PUBLIC_KEY_FILE} +""" + +_BASE_SESSION_CLASS = class_from_module(settings.BASE_SESSION_CLASS) # not used atm
    [docs]class SSHServerFactory(protocol.ServerFactory): - "This is only to name this better in logs" + """ + This is only to name this better in logs + + """ noisy = False
    [docs] def logPrefix(self): return "SSH"
    -
    [docs]class SshProtocol(Manhole, session.Session): +
    [docs]class SshProtocol(Manhole, _BASE_SESSION_CLASS): """ Each account connecting over ssh gets this protocol assigned to them. All communication between game and account goes through @@ -320,18 +322,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: + options (dict): Send-option flags (booleans) - - 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 @@ -592,11 +594,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 22055d6c08..7403c73557 100644 --- a/docs/0.9.5/_modules/evennia/server/portal/ssl.html +++ b/docs/0.9.5/_modules/evennia/server/portal/ssl.html @@ -61,7 +61,7 @@ raise ImportError(errstr.format(err=error)) from django.conf import settings -from evennia.server.portal.telnet import TelnetProtocol +from evennia.utils.utils import class_from_module _GAME_DIR = settings.GAME_DIR @@ -86,11 +86,14 @@ {exestring} """ +_TELNET_PROTOCOL_CLASS = class_from_module(settings.TELNET_PROTOCOL_CLASS) -
    [docs]class SSLProtocol(TelnetProtocol): + +
    [docs]class SSLProtocol(_TELNET_PROTOCOL_CLASS): """ Communication is the same as telnet, except data transfer is done with encryption. + """
    [docs] def __init__(self, *args, **kwargs): @@ -103,6 +106,7 @@ This function looks for RSA key and certificate in the current directory. If files ssl.key and ssl.cert does not exist, they are created. + """ if not (os.path.exists(keyfile) and os.path.exists(certfile)): @@ -115,10 +119,11 @@ try: # create the RSA key and store it. - KEY_LENGTH = 1024 - rsaKey = Key(RSA.generate(KEY_LENGTH)) - keyString = rsaKey.toString(type="OPENSSH") - file(keyfile, "w+b").write(keyString) + KEY_LENGTH = 2048 + rsa_key = Key(RSA.generate(KEY_LENGTH)) + key_string = rsa_key.toString(type="OPENSSH") + with open(keyfile, "w+b") as fil: + fil.write(key_string) except Exception as err: print(NO_AUTOGEN.format(err=err, keyfile=keyfile)) sys.exit(5) @@ -181,11 +186,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 41bd106ecc..969e323a81 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 @@ -56,6 +56,7 @@ http://www.faqs.org/rfcs/rfc858.html """ + SUPPRESS_GA = bytes([3]) # b"\x03" # default taken from telnet specification @@ -63,7 +64,7 @@ # try to get the customized mssp info, if it exists. -
    [docs]class SuppressGA(object): +
    [docs]class SuppressGA: """ Implements the SUPRESS-GO-AHEAD protocol. Add this to a variable on the telnet protocol to set it up. @@ -133,11 +134,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 78d47d3bfb..651270c58d 100644 --- a/docs/0.9.5/_modules/evennia/server/portal/telnet.html +++ b/docs/0.9.5/_modules/evennia/server/portal/telnet.html @@ -68,12 +68,11 @@ 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 +from evennia.utils.utils import to_bytes, class_from_module _RE_N = re.compile(r"\|n$") _RE_LEND = re.compile(br"\n$|\r$|\r\n$|\r\x00$|", re.MULTILINE) @@ -99,19 +98,26 @@ ) +_BASE_SESSION_CLASS = class_from_module(settings.BASE_SESSION_CLASS) + +
    [docs]class TelnetServerFactory(protocol.ServerFactory): - "This is only to name this better in logs" + """ + This exists only to name this better in logs. + + """ noisy = False
    [docs] def logPrefix(self): return "Telnet"
    -
    [docs]class TelnetProtocol(Telnet, StatefulTelnetProtocol, Session): +
    [docs]class TelnetProtocol(Telnet, StatefulTelnetProtocol, _BASE_SESSION_CLASS): """ Each player connecting over telnet (ie using most traditional mud clients) gets a telnet protocol instance assigned to them. All communication between game and player goes through here. + """
    [docs] def __init__(self, *args, **kwargs): @@ -122,6 +128,7 @@ """ Unused by default, but a good place to put debug printouts of incoming data. + """ # print(f"telnet dataReceived: {data}") try: @@ -186,11 +193,15 @@ Client refuses do(linemode). This is common for MUD-specific clients, but we must ask for the sake of raw telnet. We ignore this error. + """ pass def _send_nop_keepalive(self): - """Send NOP keepalive unless flag is set""" + """ + Send NOP keepalive unless flag is set + + """ if self.protocol_flags.get("NOPKEEPALIVE"): self._write(IAC + NOP) @@ -199,7 +210,8 @@ Allow to toggle the NOP keepalive for those sad clients that can't even handle a NOP instruction. This is turned off by the protocol_flag NOPKEEPALIVE (settable e.g. by the default - `@option` command). + `option` command). + """ if self.nop_keep_alive and self.nop_keep_alive.running: self.nop_keep_alive.stop() @@ -213,6 +225,7 @@ When all have reported, a sync with the server is performed. The system will force-call this sync after a small time to handle clients that don't reply to handshakes at all. + """ if timeout: if self.handshakes > 0: @@ -227,6 +240,7 @@
    [docs] def at_login(self): """ Called when this session gets authenticated by the server. + """ pass
    @@ -362,7 +376,10 @@ self.data_in(text=dat + b"\n")
    def _write(self, data): - """hook overloading the one used in plain telnet""" + """ + Hook overloading the one used in plain telnet + + """ data = data.replace(b"\n", b"\r\n").replace(b"\r\r\n", b"\r\n") super()._write(mccp_compress(self, data)) @@ -388,7 +405,7 @@
    [docs] def disconnect(self, reason=""): """ - generic hook for the engine to call in order to + Generic hook for the engine to call in order to disconnect this protocol. Args: @@ -417,6 +434,7 @@ Keyword Args: kwargs (any): Options to the protocol + """ self.sessionhandler.data_out(self, **kwargs)
    @@ -430,19 +448,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 "" @@ -483,7 +501,7 @@ prompt = mxp_parse(prompt) prompt = to_bytes(prompt, self) prompt = prompt.replace(IAC, IAC + IAC).replace(b"\n", b"\r\n") - if not self.protocol_flags.get("NOPROMPTGOAHEAD", + if not self.protocol_flags.get("NOPROMPTGOAHEAD", self.protocol_flags.get("NOGOAHEAD", True)): prompt += IAC + GA self.transport.write(mccp_compress(self, prompt)) @@ -529,6 +547,7 @@
    [docs] def send_default(self, cmdname, *args, **kwargs): """ Send other oob data + """ if not cmdname == "options": self.oob.data_out(cmdname, *args, **kwargs)
    @@ -557,11 +576,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 0a25f42472..801fbddb15 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 @@ -53,21 +53,16 @@ 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. - ---- """ @@ -116,7 +111,7 @@ # MSDP/GMCP communication handler -
    [docs]class TelnetOOB(object): +
    [docs]class TelnetOOB: """ Implements the MSDP and GMCP protocols. """ @@ -203,16 +198,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( @@ -278,15 +273,18 @@ be stripped on the Evennia side. :: - [cmd.name, [], {}] -> Cmd.Name - [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}] + [cmd_name, [], {}] -> Cmd.Name + [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}] + + For more flexibility with certain clients, if `cmd_name` is capitalized, + Evennia will leave its current capitalization (So CMD_nAmE would be sent + as CMD.nAmE but cMD_Name would be Cmd.Name) 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 @@ -300,9 +298,13 @@ if cmdname in EVENNIA_TO_GMCP: gmcp_cmdname = EVENNIA_TO_GMCP[cmdname] elif "_" in cmdname: - gmcp_cmdname = ".".join(word.capitalize() for word in cmdname.split("_")) + if cmdname.istitle(): + # leave without capitalization + gmcp_cmdname = ".".join(word for word in cmdname.split("_")) + else: + gmcp_cmdname = ".".join(word.capitalize() for word in cmdname.split("_")) else: - gmcp_cmdname = "Core.%s" % cmdname.capitalize() + gmcp_cmdname = "Core.%s" % (cmdname if cmdname.istitle() else cmdname.capitalize()) if not (args or kwargs): gmcp_string = gmcp_cmdname @@ -511,11 +513,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 2c7c326af8..8bfe9fe920 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 @@ -89,32 +89,29 @@ # messages -NO_AUTOGEN = """ -Evennia could not auto-generate the SSL private- and public keys ({{err}}). +NO_AUTOGEN = f""" +Evennia could not auto-generate the SSL private- and public keys ({{err}}). If this error persists, create them manually (using the tools for your OS). The files should be placed and named like this: - {} - {} -""".format( - _PRIVATE_KEY_FILE, _PUBLIC_KEY_FILE -) + {_PRIVATE_KEY_FILE} + {_PUBLIC_KEY_FILE} +""" NO_AUTOCERT = """ Evennia's could not auto-generate the SSL certificate ({{err}}). The private key already exists here: - {} + {_PRIVATE_KEY_FILE} If this error persists, create the certificate manually (using the private key and the tools for your OS). The file should be placed and named like this: - {} -""".format( - _PRIVATE_KEY_FILE, _CERTIFICATE_FILE -) + {_CERTIFICATE_FILE} +"""
    [docs]class SSLProtocol(TelnetProtocol): """ Communication is the same as telnet, except data transfer is done with encryption set up by the portal at start time. + """
    [docs] def __init__(self, *args, **kwargs): @@ -221,11 +218,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 45187e8487..fe92331e0b 100644 --- a/docs/0.9.5/_modules/evennia/server/portal/tests.html +++ b/docs/0.9.5/_modules/evennia/server/portal/tests.html @@ -387,11 +387,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 af1ba69e68..b8196bfeed 100644 --- a/docs/0.9.5/_modules/evennia/server/portal/ttype.html +++ b/docs/0.9.5/_modules/evennia/server/portal/ttype.html @@ -52,7 +52,9 @@ All data will be stored on the protocol's protocol_flags dictionary, under the 'TTYPE' key. + """ + # telnet option codes TTYPE = bytes([24]) # b"\x18" IS = bytes([0]) # b"\x00" @@ -71,7 +73,7 @@ ] -
    [docs]class Ttype(object): +
    [docs]class Ttype: """ Handles ttype negotiations. Called and initiated by the telnet protocol. @@ -251,11 +253,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 7f4602e337..06b9aa527e 100644 --- a/docs/0.9.5/_modules/evennia/server/portal/webclient.html +++ b/docs/0.9.5/_modules/evennia/server/portal/webclient.html @@ -60,10 +60,8 @@ import re import json import html -from twisted.internet.protocol import Protocol from django.conf import settings -from evennia.server.session import Session -from evennia.utils.utils import to_str, mod_import +from evennia.utils.utils import mod_import, class_from_module from evennia.utils.ansi import parse_ansi from evennia.utils.text2html import parse_html from autobahn.twisted.websocket import WebSocketServerProtocol @@ -83,21 +81,23 @@ # called when the browser is navigating away from the page GOING_AWAY = WebSocketServerProtocol.CLOSE_STATUS_CODE_GOING_AWAY -STATE_CLOSING = WebSocketServerProtocol.STATE_CLOSING +_BASE_SESSION_CLASS = class_from_module(settings.BASE_SESSION_CLASS) -
    [docs]class WebSocketClient(WebSocketServerProtocol, Session): +
    [docs]class WebSocketClient(WebSocketServerProtocol, _BASE_SESSION_CLASS): """ Implements the server-side of the Websocket connection. + """ # nonce value, used to prevent the webclient from erasing the # webclient_authenticated_uid value of csession on disconnect - nonce = None + nonce = 0
    [docs] def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) - self.protocol_key = "webclient/websocket"
    + self.protocol_key = "webclient/websocket" + self.browserstr = ""
    [docs] def get_client_session(self): """ @@ -109,7 +109,8 @@ """ try: - self.csessid = self.http_request_uri.split("?", 1)[1] + # client will connect with wsurl?csessid&browserid + webarg = self.http_request_uri.split("?", 1)[1] except IndexError: # this may happen for custom webclients not caring for the # browser session. @@ -121,6 +122,11 @@ self.csessid = None logger.log_trace(str(self)) return None + + self.csessid, *browserstr = webarg.split("&", 1) + if browserstr: + self.browserstr = str(browserstr[0]) + if self.csessid: return _CLIENT_SESSIONS(session_key=self.csessid)
    @@ -162,7 +168,8 @@ self.sessid = old_session.sessid self.sessionhandler.disconnect(old_session) - self.protocol_flags["CLIENTNAME"] = "Evennia Webclient (websocket)" + browserstr = f":{self.browserstr}" if self.browserstr else "" + self.protocol_flags["CLIENTNAME"] = f"Evennia Webclient (websocket{browserstr})" self.protocol_flags["UTF-8"] = True self.protocol_flags["OOB"] = True @@ -187,7 +194,7 @@ # set *before* this disconnect (disconnect called after a new client # connects, which occurs in some 'fast' browsers like Google Chrome # and Mobile Safari) - if csession.get("webclient_authenticated_nonce", None) == self.nonce: + if csession.get("webclient_authenticated_nonce", 0) == self.nonce: csession["webclient_authenticated_uid"] = None csession["webclient_authenticated_nonce"] = 0 csession.save() @@ -200,7 +207,7 @@ # in case anyone wants to expose this functionality later. # # sendClose() under autobahn/websocket/interfaces.py - ret = self.sendClose(CLOSE_NORMAL, reason)
    + self.sendClose(CLOSE_NORMAL, reason)
    [docs] def onClose(self, wasClean, code=None, reason=None): """ @@ -304,8 +311,6 @@ return else: return - # just to be sure - text = to_str(text) flags = self.protocol_flags @@ -377,11 +382,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 665a14d717..887fb5d6ac 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 @@ -58,6 +58,7 @@ The WebClient resource in this module will handle these requests and act as a gateway to sessions connected over the webclient. + """ import json import re @@ -70,7 +71,7 @@ from django.conf import settings from evennia.utils.ansi import parse_ansi from evennia.utils import utils -from evennia.utils.utils import to_bytes, to_str +from evennia.utils.utils import to_bytes from evennia.utils.text2html import parse_html from evennia.server import session @@ -171,6 +172,19 @@ """ return html.escape(request.args[b"csessid"][0].decode("utf-8")) +
    [docs] def get_browserstr(self, request): + """ + Get browser-string out of the request. + + Args: + request (Request): Incoming request object. + Returns: + str: The browser name. + + + """ + return html.escape(request.args[b"browserstr"][0].decode("utf-8"))
    +
    [docs] def at_login(self): """ Called when this session gets authenticated by the server. @@ -223,6 +237,7 @@ """ csessid = self.get_client_sessid(request) + browserstr = self.get_browserstr(request) remote_addr = request.getClientIP() @@ -246,6 +261,7 @@ sess.init_session("ajax/comet", remote_addr, self.sessionhandler) sess.csessid = csessid + sess.browserstr = browserstr csession = _CLIENT_SESSIONS(session_key=sess.csessid) uid = csession and csession.get("webclient_authenticated_uid", False) if uid: @@ -260,16 +276,24 @@ self.keep_alive = LoopingCall(self._keepalive) self.keep_alive.start(_KEEPALIVE, now=False) + browserstr = f":{browserstr}" if browserstr else "" + sess.protocol_flags["CLIENTNAME"] = f"Evennia Webclient (ajax{browserstr})" + sess.protocol_flags["UTF-8"] = True + sess.protocol_flags["OOB"] = True + # actually do the connection sess.sessionhandler.connect(sess) return jsonify({"msg": host_string, "csessid": csessid})
    [docs] def mode_keepalive(self, request): - """ This is called by render_POST when the client is replying to the keepalive. + + Args: + request (Request): Incoming request. + """ csessid = self.get_client_sessid(request) self.last_alive[csessid] = (time.time(), False) @@ -533,11 +557,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 0583762c3d..991763bb7d 100644 --- a/docs/0.9.5/_modules/evennia/server/profiling/dummyrunner.html +++ b/docs/0.9.5/_modules/evennia/server/profiling/dummyrunner.html @@ -83,8 +83,16 @@ from twisted.internet import reactor, protocol from twisted.internet.task import LoopingCall -from django.conf import settings -from evennia.utils import mod_import, time_format +import django +django.setup() +import evennia # noqa +evennia._init() + +from django.conf import settings # noqa +from evennia.utils import mod_import, time_format # noqa +from evennia.commands.command import Command # noqa +from evennia.commands.cmdset import CmdSet # noqa +from evennia.utils.ansi import strip_ansi # noqa # Load the dummyrunner settings module @@ -94,8 +102,10 @@ "Error: Dummyrunner could not find settings file at %s" % settings.DUMMYRUNNER_SETTINGS_MODULE ) +IDMAPPER_CACHE_MAXSIZE = settings.IDMAPPER_CACHE_MAXSIZE DATESTRING = "%Y%m%d%H%M%S" +CLIENTS = [] # Settings @@ -114,18 +124,37 @@ # Port to use, if not specified on command line TELNET_PORT = DUMMYRUNNER_SETTINGS.TELNET_PORT or settings.TELNET_PORTS[0] # -NLOGGED_IN = 0 +NCONNECTED = 0 # client has received a connection +NLOGIN_SCREEN = 0 # client has seen the login screen (server responded) +NLOGGING_IN = 0 # client starting login procedure +NLOGGED_IN = 0 # client has authenticated and logged in - -# Messages +# time when all clients have logged_in +TIME_ALL_LOGIN = 0 +# actions since all logged in +TOTAL_ACTIONS = 0 +TOTAL_LAG_MEASURES = 0 +# lag per 30s for all logged in +TOTAL_LAG = 0 +TOTAL_LAG_IN = 0 +TOTAL_LAG_OUT = 0 INFO_STARTING = """ - Dummyrunner starting using {N} dummy account(s). If you don't see + Dummyrunner starting using {nclients} dummy account(s). If you don't see any connection messages, make sure that the Evennia server is running. - Use Ctrl-C to stop/disconnect clients. + TELNET_PORT = {port} + IDMAPPER_CACHE_MAXSIZE = {idmapper_cache_size} MB + TIMESTEP = {timestep} (rate {rate}/s) + CHANCE_OF_LOGIN = {chance_of_login}% per time step + CHANCE_OF_ACTION = {chance_of_action}% per time step + -> avg rate (per client, after login): {avg_rate} cmds/s + -> total avg rate (after login): {avg_rate_total} cmds/s + + Use Ctrl-C (or Cmd-C) to stop/disconnect all clients. + """ ERROR_NO_MIXIN = """ @@ -140,6 +169,7 @@ to test all commands - change PASSWORD_HASHERS to use a faster (but less safe) algorithm when creating large numbers of accounts at the same time + - set LOGIN_THROTTLE/CREATION_THROTTLE=None to disable it If you don't want to use the custom settings of the mixin for some reason, you can change their values manually after the import, or @@ -211,6 +241,39 @@ """ + +
    [docs]class CmdDummyRunnerEchoResponse(Command): + """ + Dummyrunner command measuring the round-about response time + from sending to receiving a result. + + Usage: + dummyrunner_echo_response <timestamp> + + Responds with + dummyrunner_echo_response:<timestamp>,<current_time> + + The dummyrunner will send this and then compare the send time + with the receive time on both ends. + + """ + key = "dummyrunner_echo_response" + +
    [docs] def func(self): + # returns (dummy_client_timestamp,current_time) + self.msg(f"dummyrunner_echo_response:{self.args},{time.time()}") + if self.caller.account.is_superuser: + print(f"cmddummyrunner lag in: {time.time() - float(self.args)}s")
    + + +
    [docs]class DummyRunnerCmdSet(CmdSet): + """ + Dummyrunner injected cmdset. + + """ +
    [docs] def at_cmdset_creation(self): + self.add(CmdDummyRunnerEchoResponse())
    + # ------------------------------------------------------------ # Helper functions # ------------------------------------------------------------ @@ -224,12 +287,12 @@ Makes unique ids. Returns: - count (int): A globally unique counter. + str: A globally unique id. """ global ICOUNT ICOUNT += 1 - return str(ICOUNT) + return str("{:03d}".format(ICOUNT)) GCOUNT = 0 @@ -245,7 +308,7 @@ """ global GCOUNT GCOUNT += 1 - return "%s-%s" % (time.strftime(DATESTRING), GCOUNT) + return "%s_%s" % (time.strftime(DATESTRING), GCOUNT)
    [docs]def makeiter(obj): @@ -265,7 +328,6 @@ # Client classes # ------------------------------------------------------------ -
    [docs]class DummyClient(telnet.StatefulTelnetProtocol): """ Handles connection to a running Evennia server, @@ -274,29 +336,80 @@ """ +
    [docs] def report(self, text, clientkey): + pad = " " * (25 - len(text)) + tim = round(time.time() - self.connection_timestamp) + print(f"{text} {clientkey}{pad}\t" + f"conn: {NCONNECTED} -> " + f"welcome screen: {NLOGIN_SCREEN} -> " + f"authing: {NLOGGING_IN} -> " + f"loggedin/tot: {NLOGGED_IN}/{NCLIENTS} (after {tim}s)")
    +
    [docs] def connectionMade(self): """ Called when connection is first established. """ + global NCONNECTED # public properties self.cid = idcounter() - self.key = "Dummy-%s" % self.cid - self.gid = "%s-%s" % (time.strftime(DATESTRING), self.cid) + self.key = f"Dummy-{self.cid}" + self.gid = f"{time.strftime(DATESTRING)}_{self.cid}" self.istep = 0 self.exits = [] # exit names created self.objs = [] # obj names created + self.connection_timestamp = time.time() + self.connection_attempt = 0 + self.action_started = 0 self._connected = False self._loggedin = False self._logging_out = False + self._ready = False self._report = "" self._cmdlist = [] # already stepping in a cmd definition self._login = self.factory.actions[0] self._logout = self.factory.actions[1] self._actions = self.factory.actions[2:] - reactor.addSystemEventTrigger("before", "shutdown", self.logout)
    + reactor.addSystemEventTrigger("before", "shutdown", self.logout) + + NCONNECTED += 1 + self.report("-> connected", self.key) + + reactor.callLater(30, self._retry_welcome_screen)
    + + def _retry_welcome_screen(self): + if not self._connected and not self._ready: + # we have connected but not received anything for 30s. + # (unclear why this would be - overload?) + # try sending a look to get something to start with + self.report("?? retrying welcome screen", self.key) + self.sendLine(bytes("look", 'utf-8')) + # make sure to check again later + reactor.callLater(30, self._retry_welcome_screen) + + def _print_statistics(self): + global TIME_ALL_LOGIN, TOTAL_ACTIONS + global TOTAL_LAG, TOTAL_LAG_MEASURES, TOTAL_LAG_IN, TOTAL_LAG_OUT + + tim = time.time() - TIME_ALL_LOGIN + avgrate = round(TOTAL_ACTIONS / tim) + lag = TOTAL_LAG / (TOTAL_LAG_MEASURES or 1) + lag_in = TOTAL_LAG_IN / (TOTAL_LAG_MEASURES or 1) + lag_out = TOTAL_LAG_OUT / (TOTAL_LAG_MEASURES or 1) + + TOTAL_ACTIONS = 0 + TOTAL_LAG = 0 + TOTAL_LAG_IN = 0 + TOTAL_LAG_OUT = 0 + TOTAL_LAG_MEASURES = 0 + TIME_ALL_LOGIN = time.time() + + print(f".. running 30s average: ~{avgrate} actions/s " + f"lag: {lag:.2}s (in: {lag_in:.2}s, out: {lag_out:.2}s)") + + reactor.callLater(30, self._print_statistics)
    [docs] def dataReceived(self, data): """ @@ -307,15 +420,67 @@ data (str): Incoming data. """ - if not self._connected and not data.startswith(chr(255)): - # wait until we actually get text back (not just telnet - # negotiation) - self._connected = True - # start client tick - d = LoopingCall(self.step) - # dissipate exact step by up to +/- 0.5 second - timestep = TIMESTEP + (-0.5 + (random.random() * 1.0)) - d.start(timestep, now=True).addErrback(self.error)
    + global NLOGIN_SCREEN, NLOGGED_IN, NLOGGING_IN, NCONNECTED + global TOTAL_ACTIONS, TIME_ALL_LOGIN + global TOTAL_LAG, TOTAL_LAG_MEASURES, TOTAL_LAG_IN, TOTAL_LAG_OUT + + if not data.startswith(b"\xff"): + # regular text, not a telnet command + + if NCLIENTS == 1: + print("dummy-client sees:", str(data, "utf-8")) + + if not self._connected: + # waiting for connection + # wait until we actually get text back (not just telnet + # negotiation) + # start client tick + d = LoopingCall(self.step) + df = max(abs(TIMESTEP * 0.001), min(TIMESTEP/10, 0.5)) + # dither next attempt with random time + timestep = TIMESTEP + (-df + (random.random() * df)) + d.start(timestep, now=True).addErrback(self.error) + self.connection_attempt += 1 + + self._connected = True + NLOGIN_SCREEN += 1 + NCONNECTED -= 1 + self.report("<- server sent login screen", self.key) + + elif self._loggedin: + if not self._ready: + # logged in, ready to run + NLOGGED_IN += 1 + NLOGGING_IN -= 1 + self._ready = True + self.report("== logged in", self.key) + if NLOGGED_IN == NCLIENTS and not TIME_ALL_LOGIN: + # all are logged in! We can start collecting statistics + print(".. All clients connected and logged in!") + TIME_ALL_LOGIN = time.time() + reactor.callLater(30, self._print_statistics) + + elif TIME_ALL_LOGIN: + TOTAL_ACTIONS += 1 + + try: + data = strip_ansi(str(data, "utf-8").strip()) + if data.startswith("dummyrunner_echo_response:"): + # handle special lag-measuring command. This returns + # dummyrunner_echo_response:<starttime>,<midpointtime> + now = time.time() + _, data = data.split(":", 1) + start_time, mid_time = (float(part) for part in data.split(",", 1)) + lag_in = mid_time - start_time + lag_out = now - mid_time + total_lag = now - start_time # full round-about time + + TOTAL_LAG += total_lag + TOTAL_LAG_IN += lag_in + TOTAL_LAG_OUT += lag_out + TOTAL_LAG_MEASURES += 1 + except Exception: + pass
    [docs] def connectionLost(self, reason): """ @@ -326,7 +491,7 @@ """ if not self._logging_out: - print("client %s(%s) lost connection (%s)" % (self.key, self.cid, reason))
    + self.report("XX lost connection", self.key)
    [docs] def error(self, err): """ @@ -353,9 +518,9 @@ """ self._logging_out = True - cmd = self._logout(self) - print("client %s(%s) logout (%s actions)" % (self.key, self.cid, self.istep)) - self.sendLine(cmd)
    + cmd = self._logout(self)[0] + self.report(f"-> logout/disconnect ({self.istep} actions)", self.key) + self.sendLine(bytes(cmd, 'utf-8'))
    [docs] def step(self): """ @@ -364,7 +529,7 @@ all "intelligence" of the dummy client. """ - global NLOGGED_IN + global NLOGGING_IN, NLOGIN_SCREEN rand = random.random() @@ -372,11 +537,13 @@ # no commands ready. Load some. if not self._loggedin: - if rand < CHANCE_OF_LOGIN: + if rand < CHANCE_OF_LOGIN or NLOGGING_IN < 10: + # lower rate of logins, but not below 1 / s # get the login commands self._cmdlist = list(makeiter(self._login(self))) - NLOGGED_IN += 1 # this is for book-keeping - print("connecting client %s (%i/%i)..." % (self.key, NLOGGED_IN, NCLIENTS)) + NLOGGING_IN += 1 # this is for book-keeping + NLOGIN_SCREEN -= 1 + self.report("-> create/login", self.key) self._loggedin = True else: # no login yet, so cmdlist not yet set @@ -390,12 +557,26 @@ # at this point we always have a list of commands if rand < CHANCE_OF_ACTION: # send to the game - self.sendLine(str(self._cmdlist.pop(0))) - self.istep += 1
    + cmd = str(self._cmdlist.pop(0)) + + if cmd.startswith("dummyrunner_echo_response"): + # we need to set the timer element as close to + # the send as possible + cmd = cmd.format(timestamp=time.time()) + + self.sendLine(bytes(cmd, 'utf-8')) + self.action_started = time.time() + self.istep += 1 + + if NCLIENTS == 1: + print(f"dummy-client sent: {cmd}") -
    [docs]class DummyFactory(protocol.ClientFactory): +
    [docs]class DummyFactory(protocol.ReconnectingClientFactory): protocol = DummyClient + initialDelay = 1 + maxDelay = 1 + noisy = False
    [docs] def __init__(self, actions): "Setup the factory base (shared by all clients)" @@ -440,7 +621,7 @@ # setting up all clients (they are automatically started) factory = DummyFactory(actions) for i in range(NCLIENTS): - reactor.connectTCP("localhost", TELNET_PORT, factory) + reactor.connectTCP("127.0.0.1", TELNET_PORT, factory) # start reactor reactor.run()
    @@ -465,12 +646,23 @@ ) args = parser.parse_args() + nclients = int(args.nclients[0]) - print(INFO_STARTING.format(N=args.nclients[0])) + print(INFO_STARTING.format( + nclients=nclients, + port=TELNET_PORT, + idmapper_cache_size=IDMAPPER_CACHE_MAXSIZE, + timestep=TIMESTEP, + rate=1/TIMESTEP, + chance_of_login=CHANCE_OF_LOGIN * 100, + chance_of_action=CHANCE_OF_ACTION * 100, + avg_rate=(1 / TIMESTEP) * CHANCE_OF_ACTION, + avg_rate_total=(1 / TIMESTEP) * CHANCE_OF_ACTION * nclients + )) # run the dummyrunner - t0 = time.time() - start_all_dummy_clients(nclients=args.nclients[0]) + TIME_START = t0 = time.time() + start_all_dummy_clients(nclients=nclients) ttot = time.time() - t0 # output runtime @@ -500,11 +692,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 9c249649cf..38e9ca48c0 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 @@ -49,45 +49,47 @@ 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'. 1 is a good start. +- CHANCE_OF_ACTION - chance 0-1 of action happening. Default is 0.5. +- CHANCE_OF_LOGIN - chance 0-1 of login happening. 0.01 is a good number. +- 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) ... ) + ``` 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 called when the dummyrunner disconnects from the server and should -thus issue a logout command. The other entries are tuples (chance, +thus issue a logout command. The other entries are tuples (chance, func). They are picked randomly, their commonality based on the cumulative chance given (the chance is normalized between all options so if will still work also if the given chances don't add up to 1). -Since each function can return a list of game-command strings, each -function may result in multiple operations. + +The PROFILE variable define pre-made ACTION tuples for convenience. + +Each function should return an iterable of one or more command-call +strings (like "look here"), so each can group multiple command operations. An action-function is called with a "client" argument which is a -reference to the dummy client currently performing the action. It -returns a string or a list of command strings to execute. Use the -client object for optionally saving data between actions. +reference to the dummy client currently performing the action. 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 @@ -95,14 +97,18 @@ (no randomness) and allows for setting up a more complex chain of commands (such as creating an account and logging in). ---- +---- """ +import random +import string + # Dummy runner settings # Time between each dummyrunner "tick", in seconds. Each dummy # will be called with this frequency. -TIMESTEP = 2 +TIMESTEP = 1 +# TIMESTEP = 0.025 # 40/s # Chance of a dummy actually performing an action on a given tick. # This spreads out usage randomly, like it would be in reality. @@ -111,7 +117,7 @@ # Chance of a currently unlogged-in dummy performing its login # action every tick. This emulates not all accounts logging in # at exactly the same time. -CHANCE_OF_LOGIN = 1.0 +CHANCE_OF_LOGIN = 0.01 # Which telnet port to connect to. If set to None, uses the first # default telnet port of the running server. @@ -122,9 +128,10 @@ # some convenient templates -DUMMY_NAME = "Dummy-%s" -DUMMY_PWD = "password-%s" -START_ROOM = "testing_room_start_%s" +DUMMY_NAME = "Dummy_{gid}" +DUMMY_PWD = (''.join(random.choice(string.ascii_letters + string.digits) + for _ in range(20)) + "-{gid}") +START_ROOM = "testing_room_start_{gid}" ROOM_TEMPLATE = "testing_room_%s" EXIT_TEMPLATE = "exit_%s" OBJ_TEMPLATE = "testing_obj_%s" @@ -137,42 +144,46 @@ # login/logout -
    [docs]def c_login(client): "logins to the game" # we always use a new client name - cname = DUMMY_NAME % client.gid - cpwd = DUMMY_PWD % client.gid + cname = DUMMY_NAME.format(gid=client.gid) + cpwd = DUMMY_PWD.format(gid=client.gid) + room_name = START_ROOM.format(gid=client.gid) - # set up for digging a first room (to move to and keep the - # login room clean) - roomname = ROOM_TEMPLATE % client.counter() - exitname1 = EXIT_TEMPLATE % client.counter() - exitname2 = EXIT_TEMPLATE % client.counter() - client.exits.extend([exitname1, exitname2]) + # we assign the dummyrunner cmdsert to ourselves so # we can use special commands + add_cmdset = ( + "py from evennia.server.profiling.dummyrunner import DummyRunnerCmdSet;" + "self.cmdset.add(DummyRunnerCmdSet, persistent=False)" + ) + # create character, log in, then immediately dig a new location and + # teleport it (to keep the login room clean) cmds = ( - "create %s %s" % (cname, cpwd), - "connect %s %s" % (cname, cpwd), - "@dig %s" % START_ROOM % client.gid, - "@teleport %s" % START_ROOM % client.gid, - "@dig %s = %s, %s" % (roomname, exitname1, exitname2), + f"create {cname} {cpwd}", + f"yes", # to confirm creation + f"connect {cname} {cpwd}", + f"dig {room_name}", + f"teleport {room_name}", + add_cmdset, ) return cmds
    [docs]def c_login_nodig(client): "logins, don't dig its own room" - cname = DUMMY_NAME % client.gid - cpwd = DUMMY_PWD % client.gid - - cmds = ("create %s %s" % (cname, cpwd), "connect %s %s" % (cname, cpwd)) + cname = DUMMY_NAME.format(gid=client.gid) + cpwd = DUMMY_PWD.format(gid=client.gid) + cmds = ( + f"create {cname} {cpwd}", + f"connect {cname} {cpwd}" + ) return cmds
    [docs]def c_logout(client): "logouts of the game" - return "@quit"
    + return ("quit",) # random commands @@ -184,7 +195,7 @@ if not cmds: cmds = ["look %s" % exi for exi in client.exits] if not cmds: - cmds = "look" + cmds = ("look",) return cmds @@ -194,7 +205,7 @@ if not cmds: cmds = ["examine %s" % exi for exi in client.exits] if not cmds: - cmds = "examine me" + cmds = ("examine me",) return cmds @@ -206,7 +217,7 @@
    [docs]def c_help(client): "reads help files" - cmds = ("help", "help @teleport", "help look", "help @tunnel", "help @dig") + cmds = ("help", "dummyrunner_echo_response",) return cmds
    @@ -216,7 +227,7 @@ exitname1 = EXIT_TEMPLATE % client.counter() exitname2 = EXIT_TEMPLATE % client.counter() client.exits.extend([exitname1, exitname2]) - return "@dig/tel %s = %s, %s" % (roomname, exitname1, exitname2) + return ("dig/tel %s = %s, %s" % (roomname, exitname1, exitname2),)
    [docs]def c_creates_obj(client): @@ -224,10 +235,10 @@ objname = OBJ_TEMPLATE % client.counter() client.objs.append(objname) cmds = ( - "@create %s" % objname, - '@desc %s = "this is a test object' % objname, - "@set %s/testattr = this is a test attribute value." % objname, - "@set %s/testattr2 = this is a second test attribute." % objname, + "create %s" % objname, + 'desc %s = "this is a test object' % objname, + "set %s/testattr = this is a test attribute value." % objname, + "set %s/testattr2 = this is a second test attribute." % objname, ) return cmds
    @@ -236,16 +247,14 @@ "creates example button, storing name on client" objname = TOBJ_TEMPLATE % client.counter() client.objs.append(objname) - cmds = ("@create %s:%s" % (objname, TOBJ_TYPECLASS), "@desc %s = test red button!" % objname) + cmds = ("create %s:%s" % (objname, TOBJ_TYPECLASS), "desc %s = test red button!" % objname) return cmds
    [docs]def c_socialize(client): "socializechats on channel" cmds = ( - "ooc Hello!", - "ooc Testing ...", - "ooc Testing ... times 2", + "pub Hello!", "say Yo!", "emote stands looking around.", ) @@ -255,84 +264,120 @@
    [docs]def c_moves(client): "moves to a previously created room, using the stored exits" cmds = client.exits # try all exits - finally one will work - return "look" if not cmds else cmds
    + return ("look",) if not cmds else cmds
    [docs]def c_moves_n(client): "move through north exit if available" - return "north"
    + return ("north",)
    [docs]def c_moves_s(client): "move through south exit if available" - return "south"
    + return ("south",) -# Action tuple (required) -# -# This is a tuple of client action functions. The first element is the -# function the client should use to log into the game and move to -# STARTROOM . The second element is the logout command, for cleanly -# exiting the mud. The following elements are 2-tuples of (probability, -# action_function). The probablities should normally sum up to 1, -# otherwise the system will normalize them. +
    [docs]def c_measure_lag(client): + """ + Special dummyrunner command, injected in c_login. It measures + response time. Including this in the ACTION tuple will give more + dummyrunner output about just how fast commands are being processed. + + The dummyrunner will treat this special and inject the + {timestamp} just before sending. + + """ + return ("dummyrunner_echo_response {timestamp}",)
    + + +# Action profile (required) + +# Some pre-made profiles to test. To make your own, just assign a tuple to ACTIONS. # +# idler - does nothing after logging in +# looker - just looks around +# normal_player - moves around, reads help, looks around (digs rarely) (spammy) +# normal_builder - digs now and then, examines, creates objects, moves +# heavy_builder - digs and creates a lot, moves and examines +# socializing_builder - builds a lot, creates help entries, moves, chat (spammy) +# only_digger - extreme builder that only digs room after room + +PROFILE = "looker" -# "normal builder" definitionj -# ACTIONS = ( c_login, -# c_logout, -# (0.5, c_looks), -# (0.08, c_examines), -# (0.1, c_help), -# (0.01, c_digs), -# (0.01, c_creates_obj), -# (0.3, c_moves)) -# "heavy" builder definition -# ACTIONS = ( c_login, -# c_logout, -# (0.2, c_looks), -# (0.1, c_examines), -# (0.2, c_help), -# (0.1, c_digs), -# (0.1, c_creates_obj), -# #(0.01, c_creates_button), -# (0.2, c_moves)) -# "passive account" definition -# ACTIONS = ( c_login, -# c_logout, -# (0.7, c_looks), -# #(0.1, c_examines), -# (0.3, c_help)) -# #(0.1, c_digs), -# #(0.1, c_creates_obj), -# #(0.1, c_creates_button), -# #(0.4, c_moves)) -# "inactive account" definition -# ACTIONS = (c_login_nodig, -# c_logout, -# (1.0, c_idles)) -# "normal account" definition -ACTIONS = (c_login, c_logout, (0.01, c_digs), (0.39, c_looks), (0.2, c_help), (0.4, c_moves)) -# walking tester. This requires a pre-made -# "loop" of multiple rooms that ties back -# to limbo (using @tunnel and @open) -# ACTIONS = (c_login_nodig, -# c_logout, -# (1.0, c_moves_n)) -# "socializing heavy builder" definition -# ACTIONS = (c_login, -# c_logout, -# (0.1, c_socialize), -# (0.1, c_looks), -# (0.2, c_help), -# (0.1, c_creates_obj), -# (0.2, c_digs), -# (0.3, c_moves)) -# "heavy digger memory tester" definition -# ACTIONS = (c_login, -# c_logout, -# (1.0, c_digs)) +if PROFILE == 'idler': + ACTIONS = ( + c_login, + c_logout, + (0.9, c_idles), + (0.1, c_measure_lag), + ) +elif PROFILE == 'looker': + ACTIONS = ( + c_login, + c_logout, + (0.8, c_looks), + (0.2, c_measure_lag) + ) +elif PROFILE == 'normal_player': + ACTIONS = ( + c_login, + c_logout, + (0.01, c_digs), + (0.29, c_looks), + (0.2, c_help), + (0.3, c_moves), + (0.05, c_socialize), + (0.1, c_measure_lag) + ) +elif PROFILE == 'normal_builder': + ACTIONS = ( + c_login, + c_logout, + (0.5, c_looks), + (0.08, c_examines), + (0.1, c_help), + (0.01, c_digs), + (0.01, c_creates_obj), + (0.2, c_moves), + (0.1, c_measure_lag) + ) +elif PROFILE == 'heavy_builder': + ACTIONS = ( + c_login, + c_logout, + (0.1, c_looks), + (0.1, c_examines), + (0.2, c_help), + (0.1, c_digs), + (0.1, c_creates_obj), + (0.2, c_moves), + (0.1, c_measure_lag) + ) +elif PROFILE == 'socializing_builder': + ACTIONS = ( + c_login, + c_logout, + (0.1, c_socialize), + (0.1, c_looks), + (0.1, c_help), + (0.1, c_creates_obj), + (0.2, c_digs), + (0.3, c_moves), + (0.1, c_measure_lag) + ) +elif PROFILE == 'only_digger': + ACTIONS = ( + c_login, + c_logout, + (0.9, c_digs), + (0.1, c_measure_lag) + ) + +else: + print("No dummyrunner ACTION profile defined.") + import sys + sys.exit()
    @@ -358,11 +403,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 fa22a42594..6237e38126 100644 --- a/docs/0.9.5/_modules/evennia/server/profiling/memplot.html +++ b/docs/0.9.5/_modules/evennia/server/profiling/memplot.html @@ -182,11 +182,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 09603849e0..33ab31f3a0 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,11 +109,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 65612a1311..ec4b8c18fb 100644 --- a/docs/0.9.5/_modules/evennia/server/profiling/tests.html +++ b/docs/0.9.5/_modules/evennia/server/profiling/tests.html @@ -43,6 +43,7 @@

    Source code for evennia.server.profiling.tests

     from django.test import TestCase
     from mock import Mock, patch, mock_open
    +from anything import Something
     from .dummyrunner_settings import (
         c_creates_button,
         c_creates_obj,
    @@ -72,8 +73,8 @@
             self.client.cid = 1
             self.client.counter = Mock(return_value=1)
             self.client.gid = "20171025161153-1"
    -        self.client.name = "Dummy-%s" % self.client.gid
    -        self.client.password = "password-%s" % self.client.gid
    +        self.client.name = "Dummy_%s" % self.client.gid
    +        self.client.password = Something,
             self.client.start_room = "testing_room_start_%s" % self.client.gid
             self.client.objs = []
             self.client.exits = []
    @@ -86,28 +87,26 @@ self.assertEqual( c_login(self.client), ( - "create %s %s" % (self.client.name, self.client.password), - "connect %s %s" % (self.client.name, self.client.password), - "@dig %s" % self.client.start_room, - "@teleport %s" % self.client.start_room, - "@dig testing_room_1 = exit_1, exit_1", + Something, # create + 'yes', # confirm creation + Something, # connect + "dig %s" % self.client.start_room, + "teleport %s" % self.client.start_room, + "py from evennia.server.profiling.dummyrunner import DummyRunnerCmdSet;" + "self.cmdset.add(DummyRunnerCmdSet, persistent=False)" ), )
    [docs] def test_c_login_no_dig(self): - self.assertEqual( - c_login_nodig(self.client), - ( - "create %s %s" % (self.client.name, self.client.password), - "connect %s %s" % (self.client.name, self.client.password), - ), - )
    + cmd1, cmd2 = c_login_nodig(self.client) + self.assertTrue(cmd1.startswith("create " + self.client.name + " ")) + self.assertTrue(cmd2.startswith("connect " + self.client.name + " "))
    [docs] def test_c_logout(self): - self.assertEqual(c_logout(self.client), "@quit")
    + self.assertEqual(c_logout(self.client), ("quit",))
    [docs] def perception_method_tests(self, func, verb, alone_suffix=""): - self.assertEqual(func(self.client), "%s%s" % (verb, alone_suffix)) + self.assertEqual(func(self.client), ("%s%s" % (verb, alone_suffix),)) self.client.exits = ["exit1", "exit2"] self.assertEqual(func(self.client), ["%s exit1" % verb, "%s exit2" % verb]) self.client.objs = ["foo", "bar"] @@ -126,11 +125,11 @@
    [docs] def test_c_help(self): self.assertEqual( c_help(self.client), - ("help", "help @teleport", "help look", "help @tunnel", "help @dig"), + ("help", "dummyrunner_echo_response"), )
    [docs] def test_c_digs(self): - self.assertEqual(c_digs(self.client), ("@dig/tel testing_room_1 = exit_1, exit_1")) + self.assertEqual(c_digs(self.client), ("dig/tel testing_room_1 = exit_1, exit_1", )) self.assertEqual(self.client.exits, ["exit_1", "exit_1"]) self.clear_client_lists()
    @@ -139,10 +138,10 @@ self.assertEqual( c_creates_obj(self.client), ( - "@create %s" % objname, - '@desc %s = "this is a test object' % objname, - "@set %s/testattr = this is a test attribute value." % objname, - "@set %s/testattr2 = this is a second test attribute." % objname, + "create %s" % objname, + 'desc %s = "this is a test object' % objname, + "set %s/testattr = this is a test attribute value." % objname, + "set %s/testattr2 = this is a second test attribute." % objname, ), ) self.assertEqual(self.client.objs, [objname]) @@ -153,7 +152,7 @@ typeclass_name = "contrib.tutorial_examples.red_button.RedButton" self.assertEqual( c_creates_button(self.client), - ("@create %s:%s" % (objname, typeclass_name), "@desc %s = test red button!" % objname), + ("create %s:%s" % (objname, typeclass_name), "desc %s = test red button!" % objname), ) self.assertEqual(self.client.objs, [objname]) self.clear_client_lists()
    @@ -162,25 +161,23 @@ self.assertEqual( c_socialize(self.client), ( - "ooc Hello!", - "ooc Testing ...", - "ooc Testing ... times 2", + "pub Hello!", "say Yo!", "emote stands looking around.", ), )
    [docs] def test_c_moves(self): - self.assertEqual(c_moves(self.client), "look") + self.assertEqual(c_moves(self.client), ("look",)) self.client.exits = ["south", "north"] self.assertEqual(c_moves(self.client), ["south", "north"]) self.clear_client_lists()
    [docs] def test_c_move_n(self): - self.assertEqual(c_moves_n(self.client), "north")
    + self.assertEqual(c_moves_n(self.client), ("north",))
    [docs] def test_c_move_s(self): - self.assertEqual(c_moves_s(self.client), "south")
    + self.assertEqual(c_moves_s(self.client), ("south",))
    [docs]class TestMemPlot(TestCase): @@ -228,11 +225,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 343da14001..b97cfff46f 100644 --- a/docs/0.9.5/_modules/evennia/server/profiling/timetrace.html +++ b/docs/0.9.5/_modules/evennia/server/profiling/timetrace.html @@ -106,11 +106,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/server/server.html b/docs/0.9.5/_modules/evennia/server/server.html index 0004b4f788..d0b14e5b80 100644 --- a/docs/0.9.5/_modules/evennia/server/server.html +++ b/docs/0.9.5/_modules/evennia/server/server.html @@ -42,17 +42,18 @@

    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
     import sys
     import os
    +import traceback
     
     from twisted.web import static
     from twisted.application import internet, service
    @@ -65,6 +66,7 @@
     django.setup()
     
     import evennia
    +import importlib
     
     evennia._init()
     
    @@ -75,11 +77,9 @@
     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
    -from evennia.comms import channelhandler
     from evennia.server.sessionhandler import SESSIONS
     
     from django.utils.translation import gettext as _
    @@ -186,12 +186,6 @@
         if _MAINTENANCE_COUNT % 5 == 0:
             # check cache size every 5 minutes
             _FLUSH_CACHE(_IDMAPPER_CACHE_MAXSIZE)
    -    if _MAINTENANCE_COUNT % 60 == 0:
    -        # validate scripts every hour
    -        evennia.ScriptDB.objects.validate()
    -    if _MAINTENANCE_COUNT % 61 == 0:
    -        # validate channels off-sync with scripts
    -        evennia.CHANNEL_HANDLER.update()
         if _MAINTENANCE_COUNT % (60 * 7) == 0:
             # drop database connection every 7 hrs to avoid default timeouts on MySQL
             # (see https://github.com/evennia/evennia/issues/1376)
    @@ -218,12 +212,13 @@
     # ------------------------------------------------------------
     
     
    -
    [docs]class Evennia(object): +
    [docs]class Evennia: """ The main Evennia server handler. This object sets up the database and tracks and interlinks all the twisted network services that make up evennia. + """
    [docs] def __init__(self, application): @@ -248,12 +243,6 @@ self.start_time = time.time() - # initialize channelhandler - try: - channelhandler.CHANNELHANDLER.update() - except OperationalError: - print("channelhandler couldn't update - db not set up") - # wrap the SIGINT handler to make sure we empty the threadpool # even when we reload and we have long-running requests in queue. # this is necessary over using Twisted's signal handler. @@ -299,6 +288,7 @@ This allows for changing default cmdset locations and default typeclasses in the settings file and have them auto-update all already existing objects. + """ global INFO_DICT @@ -385,24 +375,60 @@ to the portal has been established. This attempts to run the initial_setup script of the server. It returns if this is not the first time the server starts. - Once finished the last_initial_setup_step is set to -1. + Once finished the last_initial_setup_step is set to 'done' + """ 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, - # i.e. this is an empty DB that needs populating. - INFO_DICT["info"] = " Server started for the first time. Setting defaults." - initial_setup.handle_setup(0) - elif int(last_initial_setup_step) >= 0: - # a positive value means the setup crashed on one of its - # modules and setup will resume from this step, retrying - # the last failed module. When all are finished, the step - # is set to -1 to show it does not need to be run again. - INFO_DICT["info"] = " Resuming initial setup from step {last}.".format( - last=last_initial_setup_step - ) - initial_setup.handle_setup(int(last_initial_setup_step))
    + try: + if not last_initial_setup_step: + # None is only returned if the config does not exist, + # i.e. this is an empty DB that needs populating. + INFO_DICT["info"] = " Server started for the first time. Setting defaults." + initial_setup.handle_setup() + elif last_initial_setup_step not in ('done', -1): + # last step crashed, so we weill resume from this step. + # modules and setup will resume from this step, retrying + # the last failed module. When all are finished, the step + # is set to 'done' to show it does not need to be run again. + INFO_DICT["info"] = " Resuming initial setup from step '{last}'.".format( + last=last_initial_setup_step + ) + initial_setup.handle_setup(last_initial_setup_step) + except Exception: + # stop server if this happens. + print(traceback.format_exc()) + print("Error in initial setup. Stopping Server + Portal.") + self.sessions.portal_shutdown()
    + +
    [docs] def create_default_channels(self): + """ + check so default channels exist on every restart, create if not. + + """ + + from evennia.comms.models import ChannelDB + from evennia.accounts.models import AccountDB + from evennia.utils.create import create_channel + + superuser = AccountDB.objects.get(id=1) + # mudinfo + mudinfo_chan = settings.CHANNEL_MUDINFO + if mudinfo_chan: + if not ChannelDB.objects.filter(db_key=mudinfo_chan["key"]): + channel = create_channel(**mudinfo_chan) + channel.connect(superuser) + # connectinfo + connectinfo_chan = settings.CHANNEL_MUDINFO + if connectinfo_chan: + if not ChannelDB.objects.filter(db_key=mudinfo_chan["key"]): + channel = create_channel(**connectinfo_chan) + # default channels + for chan_info in settings.DEFAULT_CHANNELS: + if not ChannelDB.objects.filter(db_key=chan_info["key"]): + channel = create_channel(**chan_info) + channel.connect(superuser)
    [docs] def run_init_hooks(self, mode): """ @@ -446,18 +472,17 @@ """ Shuts down the server from inside it. - 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. - + 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. """ if _reactor_stopping and hasattr(self, "shutdown_complete"): # this means we have already passed through this method @@ -474,9 +499,9 @@ yield [o.at_server_reload() for o in ObjectDB.get_all_cached_instances()] yield [p.at_server_reload() for p in AccountDB.get_all_cached_instances()] yield [ - (s.pause(manual_pause=False), s.at_server_reload()) + (s._pause_task(auto_pause=True), s.at_server_reload()) for s in ScriptDB.get_all_cached_instances() - if s.id and (s.is_active or s.attributes.has("_manual_pause")) + if s.id and s.is_active ] yield self.sessions.all_sessions_portal_sync() self.at_server_reload_stop() @@ -500,11 +525,9 @@ ] yield ObjectDB.objects.clear_all_sessids() yield [ - ( - s.pause(manual_pause=s.attributes.get("_manual_pause", False)), - s.at_server_shutdown(), - ) + (s._pause_task(auto_pause=True), s.at_server_shutdown()) for s in ScriptDB.get_all_cached_instances() + if s.id and s.is_active ] ServerConfig.objects.conf("server_restart_mode", "reset") self.at_server_cold_stop() @@ -529,7 +552,10 @@ ServerConfig.objects.conf("runtime", _GAMETIME_MODULE.runtime())
    [docs] def get_info_dict(self): - "Return the server info, for display." + """ + Return the server info, for display. + + """ return INFO_DICT
    # server start/stop hooks @@ -538,6 +564,7 @@ """ This is called every time the server starts up, regardless of how it was shut down. + """ if SERVER_STARTSTOP_MODULE: SERVER_STARTSTOP_MODULE.at_server_start()
    @@ -546,6 +573,7 @@ """ This is called just before a server is shut down, regardless of it is fore a reload, reset or shutdown. + """ if SERVER_STARTSTOP_MODULE: SERVER_STARTSTOP_MODULE.at_server_stop()
    @@ -553,6 +581,7 @@
    [docs] def at_server_reload_start(self): """ This is called only when server starts back up after a reload. + """ if SERVER_STARTSTOP_MODULE: SERVER_STARTSTOP_MODULE.at_server_reload_start()
    @@ -563,7 +592,7 @@ after reconnecting. Args: - mode (str): One of reload, reset or shutdown. + mode (str): One of 'reload', 'reset' or 'shutdown'. """ @@ -575,9 +604,8 @@ TICKER_HANDLER.restore(mode == "reload") - # after sync is complete we force-validate all scripts - # (this also starts any that didn't yet start) - ScriptDB.objects.validate(init_mode=mode) + # Un-pause all scripts, stop non-persistent timers + ScriptDB.objects.update_scripts_after_server_start() # start the task handler from evennia.scripts.taskhandler import TASK_HANDLER @@ -585,29 +613,8 @@ TASK_HANDLER.load() TASK_HANDLER.create_delays() - # check so default channels exist - from evennia.comms.models import ChannelDB - from evennia.accounts.models import AccountDB - from evennia.utils.create import create_channel - - god_account = AccountDB.objects.get(id=1) - # mudinfo - mudinfo_chan = settings.CHANNEL_MUDINFO - if not mudinfo_chan: - raise RuntimeError("settings.CHANNEL_MUDINFO must be defined.") - if not ChannelDB.objects.filter(db_key=mudinfo_chan["key"]): - channel = create_channel(**mudinfo_chan) - channel.connect(god_account) - # connectinfo - connectinfo_chan = settings.CHANNEL_MUDINFO - if connectinfo_chan: - if not ChannelDB.objects.filter(db_key=mudinfo_chan["key"]): - channel = create_channel(**connectinfo_chan) - # default channels - for chan_info in settings.DEFAULT_CHANNELS: - if not ChannelDB.objects.filter(db_key=chan_info["key"]): - channel = create_channel(**chan_info) - channel.connect(god_account) + # create/update channels + self.create_default_channels() # delete the temporary setting ServerConfig.objects.conf("server_restart_mode", delete=True) @@ -615,6 +622,7 @@
    [docs] def at_server_reload_stop(self): """ This is called only time the server stops before a reload. + """ if SERVER_STARTSTOP_MODULE: SERVER_STARTSTOP_MODULE.at_server_reload_stop()
    @@ -623,6 +631,7 @@ """ This is called only when the server starts "cold", i.e. after a shutdown or a reset. + """ # We need to do this just in case the server was killed in a way where # the normal cleanup operations did not have time to run. @@ -634,7 +643,7 @@ from evennia.scripts.models import ScriptDB for script in ScriptDB.objects.filter(db_persistent=False): - script.stop() + script._stop_task() if GUEST_ENABLED: for guest in AccountDB.objects.all().filter( @@ -650,6 +659,7 @@
    [docs] def at_server_cold_stop(self): """ This is called only when the server goes down due to a shutdown or reset. + """ if SERVER_STARTSTOP_MODULE: SERVER_STARTSTOP_MODULE.at_server_cold_stop()
    @@ -808,11 +818,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/server/serversession.html b/docs/0.9.5/_modules/evennia/server/serversession.html index 540c0d9415..de813c203d 100644 --- a/docs/0.9.5/_modules/evennia/server/serversession.html +++ b/docs/0.9.5/_modules/evennia/server/serversession.html @@ -49,142 +49,22 @@ 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 +from evennia.utils.utils import make_iter, lazy_property, class_from_module 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__ _ObjectDB = None _ANSI = None -# i18n -from django.utils.translation import gettext as _ - -# 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("_")]
    +_BASE_SESSION_CLASS = class_from_module(settings.BASE_SESSION_CLASS) # ------------------------------------------------------------- @@ -192,7 +72,7 @@ # ------------------------------------------------------------- -
    [docs]class ServerSession(Session): +
    [docs]class ServerSession(_BASE_SESSION_CLASS): """ This class represents an account's session and is a template for individual protocols to communicate with Evennia. @@ -204,7 +84,10 @@ """
    [docs] def __init__(self): - """Initiate to avoid AttributeErrors down the line""" + """ + Initiate to avoid AttributeErrors down the line + + """ self.puppet = None self.account = None self.cmdset_storage_string = "" @@ -218,6 +101,10 @@ 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 @@ -362,6 +249,7 @@ """ flags = self.protocol_flags + print("session flags:", flags) width = flags.get("SCREENWIDTH", {}).get(0, settings.CLIENT_DEFAULT_WIDTH) height = flags.get("SCREENHEIGHT", {}).get(0, settings.CLIENT_DEFAULT_HEIGHT) return width, height
    @@ -387,7 +275,7 @@ Update the protocol_flags and sync them with Portal. Keyword Args: - any: A key:value pair to set in the + protocol_flag (any): A key and value to set in the protocol_flags dictionary. Notes: @@ -419,14 +307,13 @@ the respective inputfuncs. Keyword Args: - any: Incoming data from protocol on + kwargs (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)
    @@ -436,7 +323,9 @@ Args: text (str): String input. - kwargs (str or tuple): Send-commands identified + + Keyword Args: + any (str or tuple): Send-commands identified by their keys. Or "options", carrying options for the protocol(s). @@ -475,7 +364,10 @@ self.sessionhandler.data_in(session or self, **kwargs)
    def __eq__(self, other): - """Handle session comparisons""" + """ + Handle session comparisons + + """ try: return self.address == other.address except AttributeError: @@ -522,6 +414,7 @@
    [docs] def at_cmdset_get(self, **kwargs): """ A dummy hook all objects with cmdsets need to have + """ pass
    @@ -532,7 +425,7 @@
    [docs] @lazy_property def nattributes(self): - return NAttributeHandler(self)
    + return AttributeHandler(self, InMemoryAttributeBackend)
    [docs] @lazy_property def attributes(self): @@ -550,7 +443,7 @@ try: return self._ndb_holder except AttributeError: - self._ndb_holder = NDbHolder(self, "nattrhandler", manager_name="nattributes") + self._ndb_holder = DbHolder(self, "nattrhandler", manager_name="nattributes") return self._ndb_holder
    # @ndb.setter @@ -568,7 +461,10 @@ # @ndb.deleter
    [docs] def ndb_del(self): - """Stop accidental deletion.""" + """ + Stop accidental deletion. + + """ raise Exception("Cannot delete the ndb object!")
    ndb = property(ndb_get, ndb_set, ndb_del) @@ -577,7 +473,10 @@ # Mock access method for the session (there is no lock info # at this stage, so we just present a uniform API)
    [docs] def access(self, *args, **kwargs): - """Dummy method to mimic the logged-in API.""" + """ + Dummy method to mimic the logged-in API. + + """ return True
    @@ -604,11 +503,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/server/session.html b/docs/0.9.5/_modules/evennia/server/session.html index e79ca2eb35..12af53b9ac 100644 --- a/docs/0.9.5/_modules/evennia/server/session.html +++ b/docs/0.9.5/_modules/evennia/server/session.html @@ -55,7 +55,7 @@ # ------------------------------------------------------------ -
    [docs]class Session(object): +
    [docs]class Session: """ This class represents a player's session and is a template for both portal- and server-side sessions. @@ -78,26 +78,6 @@ """ - # 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 @@ -145,6 +125,7 @@ "INPUTDEBUG": False, "RAW": False, "NOCOLOR": False, + "LOCALECHO": False, } self.server_data = {} @@ -164,9 +145,9 @@ the keys given by self._attrs_to_sync. """ - return dict( - (key, value) for key, value in self.__dict__.items() if key in self._attrs_to_sync - )
    + return { + attr: getattr(self, attr) for attr in settings.SESSION_SYNC_ATTRS if hasattr(self, attr) + }
    [docs] def load_sync_data(self, sessdata): """ @@ -260,11 +241,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/server/sessionhandler.html b/docs/0.9.5/_modules/evennia/server/sessionhandler.html index 0bb2678151..403db6b3c0 100644 --- a/docs/0.9.5/_modules/evennia/server/sessionhandler.html +++ b/docs/0.9.5/_modules/evennia/server/sessionhandler.html @@ -47,12 +47,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 @@ -61,18 +61,20 @@ from evennia.commands.cmdhandler import CMD_LOGINSTART from evennia.utils.logger import log_trace from evennia.utils.utils import ( - 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 from codecs import decode as codecs_decode +from django.utils.translation import gettext as _ -_INLINEFUNC_ENABLED = settings.INLINEFUNC_ENABLED +_FUNCPARSER_PARSE_OUTGOING_MESSAGES_ENABLED = settings.FUNCPARSER_PARSE_OUTGOING_MESSAGES_ENABLED +_BROADCAST_SERVER_RESTART_MESSAGES = settings.BROADCAST_SERVER_RESTART_MESSAGES # delayed imports _AccountDB = None @@ -81,7 +83,7 @@ _ScriptDB = None _OOB_HANDLER = None -_ERR_BAD_UTF8 = "Your client sent an incorrect UTF-8 sequence." +_ERR_BAD_UTF8 = _("Your client sent an incorrect UTF-8 sequence.")
    [docs]class DummySession(object): @@ -90,28 +92,6 @@ 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 _ - _SERVERNAME = settings.SERVERNAME _MULTISESSION_MODE = settings.MULTISESSION_MODE _IDLE_TIMEOUT = settings.IDLE_TIMEOUT @@ -119,6 +99,8 @@ _MAX_SERVER_COMMANDS_PER_SECOND = 100.0 _MAX_SESSION_COMMANDS_PER_SECOND = 5.0 _MODEL_MAP = None +_FUNCPARSER = None + # input handlers @@ -135,8 +117,7 @@ global _ServerSession, _AccountDB, _ServerConfig, _ScriptDB if not _ServerSession: # we allow optional arbitrary serversession class for overloading - modulename, classname = settings.SERVER_SESSION_CLASS.rsplit(".", 1) - _ServerSession = variable_from_module(modulename, classname) + _ServerSession = class_from_module(settings.SERVER_SESSION_CLASS) if not _AccountDB: from evennia.accounts.models import AccountDB as _AccountDB if not _ServerConfig: @@ -144,10 +125,10 @@ if not _ScriptDB: from evennia.scripts.models import ScriptDB as _ScriptDB # including once to avoid warnings in Python syntax checkers - assert _ServerSession - assert _AccountDB - assert _ServerConfig - assert _ScriptDB
    + 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" # ----------------------------------------------------------- @@ -162,24 +143,36 @@ """ def __getitem__(self, key): - "Clean out None-sessions automatically." + """ + Clean out None-sessions automatically. + + """ if None in self: del self[None] return super().__getitem__(key)
    [docs] def get(self, key, default=None): - "Clean out None-sessions automatically." + """ + Clean out None-sessions automatically. + + """ if None in self: del self[None] return super().get(key, default)
    def __setitem__(self, key, value): - "Don't assign None sessions" + """ + Don't assign None sessions" + + """ if key is not None: super().__setitem__(key, value) def __contains__(self, key): - "None-keys are not accepted." + """ + None-keys are not accepted. + + """ return False if key is None else super().__contains__(key)
    [docs] def get_sessions(self, include_unloggedin=False): @@ -212,29 +205,32 @@
    [docs] def clean_senddata(self, session, kwargs): """ - Clean up data for sending across the AMP wire. Also apply INLINEFUNCS. + Clean up data for sending across the AMP wire. Also apply the + FuncParser using callables from `settings.FUNCPARSER_OUTGOING_MESSAGES_MODULES`. Args: session (Session): The relevant session instance. - 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}] + 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}] 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 funcparser parsing has been + applied. """ + global _FUNCPARSER + if not _FUNCPARSER: + from evennia.utils.funcparser import FuncParser + _FUNCPARSER = FuncParser(settings.FUNCPARSER_OUTGOING_MESSAGES_MODULES, + raise_errors=True) + options = kwargs.pop("options", None) or {} raw = options.get("raw", False) strip_inlinefunc = options.get("strip_inlinefunc", False) @@ -255,7 +251,10 @@ return data def _validate(data): - "Helper function to convert data to AMP-safe (picketable) values" + """ + Helper function to convert data to AMP-safe (picketable) values" + + """ if isinstance(data, dict): newdict = {} for key, part in data.items(): @@ -266,9 +265,11 @@ elif isinstance(data, (str, bytes)): data = _utf8(data) - if _INLINEFUNC_ENABLED and not raw and isinstance(self, ServerSessionHandler): - # only parse inlinefuncs on the outgoing path (sessionhandler->) - data = parse_inlinefunc(data, strip=strip_inlinefunc, session=session) + if (_FUNCPARSER_PARSE_OUTGOING_MESSAGES_ENABLED + and not raw and isinstance(self, ServerSessionHandler)): + # only apply funcparser on the outgoing path (sessionhandler->) + # data = parse_inlinefunc(data, strip=strip_inlinefunc, session=session) + data = _FUNCPARSER.parse(data, strip=strip_inlinefunc, session=session) return str(data) elif ( @@ -293,6 +294,7 @@ elif isinstance(data, dict): rkwargs[key] = [[], _validate(data)] elif is_iter(data): + data = tuple(data) if isinstance(data[-1], dict): if len(data) == 2: if is_iter(data[0]): @@ -316,14 +318,11 @@
    [docs]class ServerSessionHandler(SessionHandler): """ - This object holds the stack of sessions active in the game at - any time. + This object holds the stack of sessions active in the game at any time. - A session register with the handler in two steps, first by - registering itself with the connect() method. This indicates an - non-authenticated session. Whenever the session is authenticated - the session together with the related account is sent to the login() - method. + A session register with the handler in two steps, first by registering itself with the connect() + method. This indicates an non-authenticated session. Whenever the session is authenticated the + session together with the related account is sent to the login() method. """ @@ -368,7 +367,7 @@ sess.load_sync_data(portalsessiondata) sess.at_sync() # validate all scripts - _ScriptDB.objects.validate() + # _ScriptDB.objects.validate() self[sess.sessid] = sess if sess.logged_in and sess.uid: @@ -442,7 +441,8 @@ # tell the server hook we synced self.server.at_post_portal_sync(mode) # announce the reconnection - self.announce_all(_(" ... Server restarted."))
    + if _BROADCAST_SERVER_RESTART_MESSAGES: + self.announce_all(_(" ... Server restarted."))
    [docs] def portal_disconnect(self, session): """ @@ -496,7 +496,7 @@ """ self.server.amp_protocol.send_AdminServer2Portal( - DUMMYSESSION, operation=SCONN, protocol_path=protocol_path, config=configdict + DUMMYSESSION, operation=amp.SCONN, protocol_path=protocol_path, config=configdict )
    [docs] def portal_restart_server(self): @@ -504,14 +504,14 @@ Called by server when reloading. We tell the portal to start a new server instance. """ - self.server.amp_protocol.send_AdminServer2Portal(DUMMYSESSION, operation=SRELOAD)
    + self.server.amp_protocol.send_AdminServer2Portal(DUMMYSESSION, operation=amp.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=SRESET)
    + self.server.amp_protocol.send_AdminServer2Portal(DUMMYSESSION, operation=amp.SRESET)
    [docs] def portal_shutdown(self): """ @@ -519,13 +519,12 @@ itself down) """ - self.server.amp_protocol.send_AdminServer2Portal(DUMMYSESSION, operation=PSHUTD)
    + self.server.amp_protocol.send_AdminServer2Portal(DUMMYSESSION, operation=amp.PSHUTD)
    [docs] def login(self, session, account, force=False, testmode=False): """ - Log in the previously unloggedin session and the account we by - now should know is connected to it. After this point we assume - the session to be logged in one way or another. + Log in the previously unloggedin session and the account we by now should know is connected + to it. After this point we assume the session to be logged in one way or another. Args: session (Session): The Session to authenticate. @@ -567,7 +566,7 @@ # sync the portal to the session if not testmode: self.server.amp_protocol.send_AdminServer2Portal( - session, operation=SLOGIN, sessiondata={"logged_in": True, "uid": session.uid} + session, operation=amp.SLOGIN, sessiondata={"logged_in": True, "uid": session.uid} ) account.at_post_login(session=session) if nsess < 2: @@ -612,7 +611,7 @@ if sync_portal: # inform portal that session should be closed. self.server.amp_protocol.send_AdminServer2Portal( - session, operation=SDISCONN, reason=reason + session, operation=amp.SDISCONN, reason=reason )
    [docs] def all_sessions_portal_sync(self): @@ -623,7 +622,7 @@ """ sessdata = self.get_all_sync_data() return self.server.amp_protocol.send_AdminServer2Portal( - DUMMYSESSION, operation=SSYNC, sessiondata=sessdata + DUMMYSESSION, operation=amp.SSYNC, sessiondata=sessdata )
    [docs] def session_portal_sync(self, session): @@ -634,7 +633,7 @@ """ sessdata = {session.sessid: session.get_sync_data()} return self.server.amp_protocol.send_AdminServer2Portal( - DUMMYSESSION, operation=SSYNC, sessiondata=sessdata, clean=False + DUMMYSESSION, operation=amp.SSYNC, sessiondata=sessdata, clean=False )
    [docs] def session_portal_partial_sync(self, session_data): @@ -647,7 +646,7 @@ """ return self.server.amp_protocol.send_AdminServer2Portal( - DUMMYSESSION, operation=SSYNC, sessiondata=session_data, clean=False + DUMMYSESSION, operation=amp.SSYNC, sessiondata=session_data, clean=False )
    [docs] def disconnect_all_sessions(self, reason="You have been disconnected."): @@ -663,7 +662,7 @@ del session # tell portal to disconnect all sessions self.server.amp_protocol.send_AdminServer2Portal( - DUMMYSESSION, operation=SDISCONNALL, reason=reason + DUMMYSESSION, operation=amp.SDISCONNALL, reason=reason )
    [docs] def disconnect_duplicate_sessions( @@ -682,7 +681,8 @@ # mean connecting from the same host would not catch duplicates sid = id(curr_session) doublet_sessions = [ - sess for sess in self.values() if sess.logged_in and sess.uid == uid and id(sess) != sid + sess for sess in self.values() + if sess.logged_in and sess.uid == uid and id(sess) != sid ] for session in doublet_sessions: @@ -792,8 +792,8 @@ puppet (Object): Object puppeted Returns. - sessions (Session or list): Can be more than one of Object is controlled by - more than one Session (MULTISESSION_MODE > 1). + sessions (Session or list): Can be more than one of Object is controlled by more than + one Session (MULTISESSION_MODE > 1). """ sessions = puppet.sessid.get() @@ -806,8 +806,9 @@ 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. @@ -870,9 +871,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. @@ -880,8 +881,8 @@ sessions (Session): Session. Keyword Args: - kwargs (any): Incoming data from protocol on - the form `{"commandname": ((args), {kwargs}),...}` + any (tuple): Incoming data from protocol, each + on the form `commandname=((args), {kwargs})`. """ @@ -902,7 +903,11 @@ log_trace()
    -SESSION_HANDLER = ServerSessionHandler() +# 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() SESSIONS = SESSION_HANDLER # legacy @@ -929,11 +934,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/server/throttle.html b/docs/0.9.5/_modules/evennia/server/throttle.html index 2cb990c5bf..44bf13c673 100644 --- a/docs/0.9.5/_modules/evennia/server/throttle.html +++ b/docs/0.9.5/_modules/evennia/server/throttle.html @@ -41,12 +41,14 @@

    Source code for evennia.server.throttle

    -from collections import defaultdict, deque
    +from django.core.cache import caches
    +from collections import deque
     from evennia.utils import logger
     import time
    +from django.utils.translation import gettext as _
     
     
    -
    [docs]class Throttle(object): +
    [docs]class Throttle: """ Keeps a running count of failed actions per IP address. @@ -55,28 +57,58 @@ 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 removes sparse keys when - no recent failures have been recorded. + with length limits instead of open-ended lists, and uses native Django + caches for automatic key eviction and persistence configurability. """ - error_msg = "Too many failed attempts; you must wait a few minutes before trying again." + error_msg = _("Too many failed attempts; you must wait a few minutes before trying again.")
    [docs] def __init__(self, **kwargs): """ Allows setting of throttle parameters. Keyword Args: - limit (int): Max number of failures before imposing limiter + name (str): Name of this throttle. + limit (int): Max number of failures before imposing limiter. If `None`, + the throttle is disabled. timeout (int): number of timeout seconds after max number of tries has been reached. cache_size (int): Max number of attempts to record per IP within a rolling window; this is NOT the same as the limit after which the throttle is imposed! """ - self.storage = defaultdict(deque) - self.cache_size = self.limit = kwargs.get("limit", 5) + try: + self.storage = caches['throttle'] + except Exception: + 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.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): """ Convenience function that returns the storage table, or part of. @@ -93,9 +125,18 @@ """ if ip: - return self.storage.get(ip, deque(maxlen=self.cache_size)) + cache_key = self.get_cache_key(str(ip)) + return self.storage.get(cache_key, deque(maxlen=self.cache_size)) else: - return self.storage
    + 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
    [docs] def update(self, ip, failmsg="Exceeded threshold."): """ @@ -110,14 +151,17 @@ None """ + cache_key = self.get_cache_key(ip) + # Get current status previously_throttled = self.check(ip) - # Enforce length limits - if not self.storage[ip].maxlen: - self.storage[ip] = deque(maxlen=self.cache_size) + # Get previous failures, if any + entries = self.storage.get(cache_key, []) + entries.append(time.time()) - self.storage[ip].append(time.time()) + # Store updated record + self.storage.set(cache_key, deque(entries, maxlen=self.cache_size), self.timeout) # See if this update caused a change in status currently_throttled = self.check(ip) @@ -125,9 +169,63 @@ # If this makes it engage, log a single activation event if not previously_throttled and currently_throttled: logger.log_sec( - "Throttle Activated: %s (IP: %s, %i hits in %i seconds.)" - % (failmsg, ip, self.limit, self.timeout) - )
    + f"Throttle Activated: {failmsg} (IP: {ip}, " + f"{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 not 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
    [docs] def check(self, ip): """ @@ -143,19 +241,26 @@ False otherwise. """ + if self.limit is None: + # throttle is disabled + return False + now = time.time() ip = str(ip) + cache_key = self.get_cache_key(ip) + # checking mode - latest_fails = self.storage[ip] + latest_fails = self.storage.get(cache_key) 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 - del self.storage[ip] + self.remove(ip) return False else: return False
    @@ -184,11 +289,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/server/validators.html b/docs/0.9.5/_modules/evennia/server/validators.html index fb1e28c16c..d1fe1e651e 100644 --- a/docs/0.9.5/_modules/evennia/server/validators.html +++ b/docs/0.9.5/_modules/evennia/server/validators.html @@ -128,8 +128,8 @@ """ return _( - "%s From a terminal client, you can also use a phrase of multiple words if " - "you enclose the password in double quotes." % self.policy + "{policy} From a terminal client, you can also use a phrase of multiple words if " + "you enclose the password in double quotes.".format(policy=self.policy) ) @@ -156,11 +156,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/server/webserver.html b/docs/0.9.5/_modules/evennia/server/webserver.html index 1b80cffac7..19d3a27db6 100644 --- a/docs/0.9.5/_modules/evennia/server/webserver.html +++ b/docs/0.9.5/_modules/evennia/server/webserver.html @@ -366,11 +366,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/typeclasses/admin.html b/docs/0.9.5/_modules/evennia/typeclasses/admin.html deleted file mode 100644 index 07ff40d2e0..0000000000 --- a/docs/0.9.5/_modules/evennia/typeclasses/admin.html +++ /dev/null @@ -1,450 +0,0 @@ - - - - - - - - evennia.typeclasses.admin — Evennia 0.9.5 documentation - - - - - - - - - - - - - - - -
    -
    -
    -
    - -

    Source code for evennia.typeclasses.admin

    -import traceback
    -from datetime import datetime
    -from django.contrib import admin
    -from evennia.typeclasses.models import Tag
    -from django import forms
    -from evennia.utils.picklefield import PickledFormField
    -from evennia.utils.dbserialize import from_pickle, _SaverSet
    -
    -
    -
    [docs]class TagAdmin(admin.ModelAdmin): - """ - A django Admin wrapper for Tags. - """ - - search_fields = ("db_key", "db_category", "db_tagtype") - list_display = ("db_key", "db_category", "db_tagtype", "db_data") - fields = ("db_key", "db_category", "db_tagtype", "db_data") - list_filter = ("db_tagtype",)
    - - -
    [docs]class TagForm(forms.ModelForm): - """ - This form overrides the base behavior of the ModelForm that would be used for a - Tag-through-model. Since the through-models only have access to the foreignkeys of the Tag and - the Object that they're attached to, we need to spoof the behavior of it being a form that would - correspond to its tag, or the creation of a tag. Instead of being saved, we'll call to the - Object's handler, which will handle the creation, change, or deletion of a tag for us, as well - as updating the handler's cache so that all changes are instantly updated in-game. - """ - - tag_key = forms.CharField( - label="Tag Name", required=True, help_text="This is the main key identifier" - ) - tag_category = forms.CharField( - label="Category", - help_text="Used for grouping tags. Unset (default) gives a category of None", - required=False, - ) - tag_type = forms.CharField( - label="Type", - help_text='Internal use. Either unset, "alias" or "permission"', - required=False, - ) - tag_data = forms.CharField( - label="Data", - help_text="Usually unused. Intended for eventual info about the tag itself", - required=False, - ) - -
    [docs] class Meta: - fields = ("tag_key", "tag_category", "tag_data", "tag_type")
    - -
    [docs] def __init__(self, *args, **kwargs): - """ - If we have a tag, then we'll prepopulate our instance with the fields we'd expect it - to have based on the tag. tag_key, tag_category, tag_type, and tag_data all refer to - the corresponding tag fields. The initial data of the form fields will similarly be - populated. - """ - super().__init__(*args, **kwargs) - tagkey = None - tagcategory = None - tagtype = None - tagdata = None - if hasattr(self.instance, "tag"): - tagkey = self.instance.tag.db_key - tagcategory = self.instance.tag.db_category - tagtype = self.instance.tag.db_tagtype - tagdata = self.instance.tag.db_data - self.fields["tag_key"].initial = tagkey - self.fields["tag_category"].initial = tagcategory - self.fields["tag_type"].initial = tagtype - self.fields["tag_data"].initial = tagdata - self.instance.tag_key = tagkey - self.instance.tag_category = tagcategory - self.instance.tag_type = tagtype - self.instance.tag_data = tagdata
    - -
    [docs] def save(self, commit=True): - """ - One thing we want to do here is the or None checks, because forms are saved with an empty - string rather than null from forms, usually, and the Handlers may handle empty strings - differently than None objects. So for consistency with how things are handled in game, - we'll try to make sure that empty form fields will be None, rather than ''. - """ - # we are spoofing a tag for the Handler that will be called - # instance = super().save(commit=False) - instance = self.instance - instance.tag_key = self.cleaned_data["tag_key"] - instance.tag_category = self.cleaned_data["tag_category"] or None - instance.tag_type = self.cleaned_data["tag_type"] or None - instance.tag_data = self.cleaned_data["tag_data"] or None - return instance
    - - -
    [docs]class TagFormSet(forms.BaseInlineFormSet): - """ - The Formset handles all the inline forms that are grouped together on the change page of the - corresponding object. All the tags will appear here, and we'll save them by overriding the - formset's save method. The forms will similarly spoof their save methods to return an instance - which hasn't been saved to the database, but have the relevant fields filled out based on the - contents of the cleaned form. We'll then use that to call to the handler of the corresponding - Object, where the handler is an AliasHandler, PermissionsHandler, or TagHandler, based on the - type of tag. - """ - -
    [docs] def save(self, commit=True): - def get_handler(finished_object): - related = getattr(finished_object, self.related_field) - try: - tagtype = finished_object.tag_type - except AttributeError: - tagtype = finished_object.tag.db_tagtype - if tagtype == "alias": - handler_name = "aliases" - elif tagtype == "permission": - handler_name = "permissions" - else: - handler_name = "tags" - return getattr(related, handler_name) - - instances = super().save(commit=False) - # self.deleted_objects is a list created when super of save is called, we'll remove those - for obj in self.deleted_objects: - handler = get_handler(obj) - handler.remove(obj.tag_key, category=obj.tag_category) - for instance in instances: - handler = get_handler(instance) - handler.add(instance.tag_key, category=instance.tag_category, data=instance.tag_data)
    - - -
    [docs]class TagInline(admin.TabularInline): - """ - A handler for inline Tags. This class should be subclassed in the admin of your models, - and the 'model' and 'related_field' class attributes must be set. model should be the - through model (ObjectDB_db_tag', for example), while related field should be the name - of the field on that through model which points to the model being used: 'objectdb', - 'msg', 'accountdb', etc. - """ - - # Set this to the through model of your desired M2M when subclassing. - model = None - form = TagForm - formset = TagFormSet - related_field = None # Must be 'objectdb', 'accountdb', 'msg', etc. Set when subclassing - # raw_id_fields = ('tag',) - # readonly_fields = ('tag',) - extra = 0 - -
    [docs] def get_formset(self, request, obj=None, **kwargs): - """ - get_formset has to return a class, but we need to make the class that we return - know about the related_field that we'll use. Returning the class itself rather than - a proxy isn't threadsafe, since it'd be the base class and would change if multiple - people used the admin at the same time - """ - formset = super().get_formset(request, obj, **kwargs) - - class ProxyFormset(formset): - pass - - ProxyFormset.related_field = self.related_field - return ProxyFormset
    - - -
    [docs]class AttributeForm(forms.ModelForm): - """ - This form overrides the base behavior of the ModelForm that would be used for a Attribute-through-model. - Since the through-models only have access to the foreignkeys of the Attribute and the Object that they're - attached to, we need to spoof the behavior of it being a form that would correspond to its Attribute, - or the creation of an Attribute. Instead of being saved, we'll call to the Object's handler, which will handle - the creation, change, or deletion of an Attribute for us, as well as updating the handler's cache so that all - changes are instantly updated in-game. - """ - - attr_key = forms.CharField( - label="Attribute Name", required=False, initial="Enter Attribute Name Here" - ) - attr_category = forms.CharField( - label="Category", help_text="type of attribute, for sorting", required=False, max_length=128 - ) - attr_value = PickledFormField(label="Value", help_text="Value to pickle/save", required=False) - attr_type = forms.CharField( - label="Type", - help_text='Internal use. Either unset (normal Attribute) or "nick"', - required=False, - max_length=16, - ) - attr_lockstring = forms.CharField( - label="Locks", - required=False, - help_text="Lock string on the form locktype:lockdef;lockfunc:lockdef;...", - widget=forms.Textarea(attrs={"rows": 1, "cols": 8}), - ) - -
    [docs] class Meta: - fields = ("attr_key", "attr_value", "attr_category", "attr_lockstring", "attr_type")
    - -
    [docs] def __init__(self, *args, **kwargs): - """ - If we have an Attribute, then we'll prepopulate our instance with the fields we'd expect it - to have based on the Attribute. attr_key, attr_category, attr_value, attr_type, - and attr_lockstring all refer to the corresponding Attribute fields. The initial data of the form fields will - similarly be populated. - - """ - super().__init__(*args, **kwargs) - attr_key = None - attr_category = None - attr_value = None - attr_type = None - attr_lockstring = None - if hasattr(self.instance, "attribute"): - attr_key = self.instance.attribute.db_key - attr_category = self.instance.attribute.db_category - attr_value = self.instance.attribute.db_value - attr_type = self.instance.attribute.db_attrtype - attr_lockstring = self.instance.attribute.db_lock_storage - self.fields["attr_key"].initial = attr_key - self.fields["attr_category"].initial = attr_category - self.fields["attr_type"].initial = attr_type - self.fields["attr_value"].initial = attr_value - self.fields["attr_lockstring"].initial = attr_lockstring - self.instance.attr_key = attr_key - self.instance.attr_category = attr_category - self.instance.attr_value = attr_value - - # prevent from being transformed to str - if isinstance(attr_value, (set, _SaverSet)): - self.fields["attr_value"].disabled = True - - self.instance.deserialized_value = from_pickle(attr_value) - self.instance.attr_type = attr_type - self.instance.attr_lockstring = attr_lockstring
    - -
    [docs] def save(self, commit=True): - """ - One thing we want to do here is the or None checks, because forms are saved with an empty - string rather than null from forms, usually, and the Handlers may handle empty strings - differently than None objects. So for consistency with how things are handled in game, - we'll try to make sure that empty form fields will be None, rather than ''. - """ - # we are spoofing an Attribute for the Handler that will be called - instance = self.instance - instance.attr_key = self.cleaned_data["attr_key"] or "no_name_entered_for_attribute" - instance.attr_category = self.cleaned_data["attr_category"] or None - instance.attr_value = self.cleaned_data["attr_value"] - # convert the serialized string value into an object, if necessary, for AttributeHandler - instance.attr_value = from_pickle(instance.attr_value) - instance.attr_type = self.cleaned_data["attr_type"] or None - instance.attr_lockstring = self.cleaned_data["attr_lockstring"] - return instance
    - -
    [docs] def clean_attr_value(self): - """ - Prevent certain data-types from being cleaned due to literal_eval - failing on them. Otherwise they will be turned into str. - - """ - data = self.cleaned_data["attr_value"] - initial = self.instance.attr_value - if isinstance(initial, (set, _SaverSet, datetime)): - return initial - return data
    - - -
    [docs]class AttributeFormSet(forms.BaseInlineFormSet): - """ - Attribute version of TagFormSet, as above. - """ - -
    [docs] def save(self, commit=True): - def get_handler(finished_object): - related = getattr(finished_object, self.related_field) - try: - attrtype = finished_object.attr_type - except AttributeError: - attrtype = finished_object.attribute.db_attrtype - if attrtype == "nick": - handler_name = "nicks" - else: - handler_name = "attributes" - return getattr(related, handler_name) - - instances = super().save(commit=False) - for obj in self.deleted_objects: - # self.deleted_objects is a list created when super of save is called, we'll remove those - handler = get_handler(obj) - handler.remove(obj.attr_key, category=obj.attr_category) - - for instance in instances: - handler = get_handler(instance) - - value = instance.attr_value - - try: - handler.add( - instance.attr_key, - value, - category=instance.attr_category, - strattr=False, - lockstring=instance.attr_lockstring, - ) - except (TypeError, ValueError): - # catch errors in nick templates and continue - traceback.print_exc() - continue
    - - -
    [docs]class AttributeInline(admin.TabularInline): - """ - A handler for inline Attributes. This class should be subclassed in the admin of your models, - and the 'model' and 'related_field' class attributes must be set. model should be the - through model (ObjectDB_db_tag', for example), while related field should be the name - of the field on that through model which points to the model being used: 'objectdb', - 'msg', 'accountdb', etc. - """ - - # Set this to the through model of your desired M2M when subclassing. - model = None - form = AttributeForm - formset = AttributeFormSet - related_field = None # Must be 'objectdb', 'accountdb', 'msg', etc. Set when subclassing - # raw_id_fields = ('attribute',) - # readonly_fields = ('attribute',) - extra = 0 - -
    [docs] def get_formset(self, request, obj=None, **kwargs): - """ - get_formset has to return a class, but we need to make the class that we return - know about the related_field that we'll use. Returning the class itself rather than - a proxy isn't threadsafe, since it'd be the base class and would change if multiple - people used the admin at the same time - """ - formset = super().get_formset(request, obj, **kwargs) - - class ProxyFormset(formset): - pass - - ProxyFormset.related_field = self.related_field - return ProxyFormset
    - - -admin.site.register(Tag, TagAdmin) -
    - -
    -
    -
    -
    - -
    -
    - - - - \ No newline at end of file diff --git a/docs/0.9.5/_modules/evennia/typeclasses/attributes.html b/docs/0.9.5/_modules/evennia/typeclasses/attributes.html index 9532fc027f..9f5b104ad0 100644 --- a/docs/0.9.5/_modules/evennia/typeclasses/attributes.html +++ b/docs/0.9.5/_modules/evennia/typeclasses/attributes.html @@ -53,7 +53,8 @@ """ import re import fnmatch -import weakref + +from collections import defaultdict from django.db import models from django.conf import settings @@ -74,7 +75,7 @@ # ------------------------------------------------------------- -
    [docs]class Attribute(SharedMemoryModel): +
    [docs]class IAttribute: """ 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,6 +97,232 @@ - 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 AttributeProperty: + """ + Attribute property descriptor. Allows for specifying Attributes as Django-like 'fields' + on the class level. Note that while one can set a lock on the Attribute, + there is no way to *check* said lock when accessing via the property - use + the full AttributeHandler if you need to do access checks. + + Example: + :: + + class Character(DefaultCharacter): + foo = AttributeProperty(default="Bar") + + """ + attrhandler_name = "attributes" + +
    [docs] def __init__(self, default=None, category=None, strattr=False, lockstring="", + autocreate=False): + """ + Initialize an Attribute as a property descriptor. + + Keyword Args: + default (any): A default value if the attr is not set. + category (str): The attribute's category. If unset, use class default. + strattr (bool): If set, this Attribute *must* be a simple string, and will be + stored more efficiently. + lockstring (str): This is not itself useful with the property, but only if + using the full AttributeHandler.get(accessing_obj=...) to access the + Attribute. + autocreate (bool): If an un-found Attr should lead to auto-creating the + Attribute (with the default value). If `False`, the property will + return the default value until it has been explicitly set. This means + less database accesses, but also means the property will have no + corresponding Attribute if wanting to access it directly via the + AttributeHandler (it will also not show up in `examine`). + + """ + self._default = default + self._category = category + self._strattr = strattr + self._lockstring = lockstring + self._autocreate = autocreate + self._key = ""
    + + def __set_name__(self, cls, name): + """ + Called when descriptor is first assigned to the class. It is called with + the name of the field. + + """ + self._key = name + + def __get__(self, instance, owner): + """ + Called when the attrkey is retrieved from the instance. + + """ + value = self._default + try: + value = ( + getattr(instance, self.attrhandler_name) + .get(key=self._key, + default=self._default, + category=self._category, + strattr=self._strattr, + raise_exception=self._autocreate) + ) + except AttributeError: + if self._autocreate: + # attribute didn't exist and autocreate is set + self.__set__(instance, self._default) + else: + raise + finally: + return value + + def __set__(self, instance, value): + """ + Called when assigning to the property (and when auto-creating an Attribute). + + """ + ( + getattr(instance, self.attrhandler_name) + .add(self._key, + value, + category=self._category, + lockstring=self._lockstring, + strattr=self._strattr) + ) + + def __delete__(self, instance): + """ + Called when running `del` on the field. Will remove/clear the Attribute. + + """ + ( + getattr(instance, self.attrhandler_name) + .remove(key=self._key, + category=self._category) + )
    + + +
    [docs]class NAttributeProperty(AttributeProperty): + """ + NAttribute property descriptor. Allows for specifying NAttributes as Django-like 'fields' + on the class level. + + Example: + :: + + class Character(DefaultCharacter): + foo = NAttributeProperty(default="Bar") + + """ + attrhandler_name = "nattributes"
    + + +
    [docs]class Attribute(IAttribute, SharedMemoryModel): + """ + This attribute is stored via Django. Most Attributes will be using this class. + """ # @@ -152,34 +379,9 @@ # Database manager # objects = managers.AttributeManager() -
    [docs] @lazy_property - def locks(self): - return LockHandler(self)
    - - class Meta(object): + class Meta: "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) + verbose_name = "Attribute" # Wrapper properties to easily set database fields. These are # @property decorators that allows to access these fields using @@ -189,9 +391,23 @@ # 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): + 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) + # value property (wraps db_value) - # @property - def __value_get(self): + @property + def value(self): """ Getter. Allows for `value = self.value`. We cannot cache here since it makes certain cases (such @@ -200,115 +416,164 @@ """ return from_pickle(self.db_value, db_obj=self) - # @value.setter - def __value_set(self, new_value): + @value.setter + def value(self, new_value): """ Setter. Allows for self.value = value. We cannot cache here, 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 - def __value_del(self): + @value.deleter + def value(self): """Deleter. Allows for del attr.value. This removes the entire attribute.""" - self.delete() - - 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
    - + self.delete()
    # # Handlers making use of the Attribute model # -
    [docs]class AttributeHandler(object): +
    [docs]class IAttributeBackend: """ - Handler for adding Attributes to the object. + Abstract interface for the backends used by the Attribute Handler. + + All Backends must implement this base class. """ - _m2m_fieldname = "db_attributes" _attrcreate = "attrcreate" _attredit = "attredit" _attrread = "attrread" - _attrtype = None + _attrclass = None -
    [docs] def __init__(self, obj): - """Initialize handler.""" - self.obj = obj - self._objid = obj.id - self._model = to_str(obj.__dbclass__.__name__.lower()) +
    [docs] def __init__(self, handler, attrtype): + self.handler = handler + self.obj = handler.obj + self._attrtype = attrtype + self._objid = handler.obj.id self._cache = {} # store category names fully cached self._catcache = {} # full cache was run on all attributes self._cache_complete = False
    - 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) - ] +
    [docs] def query_all(self): + """ + Fetch all Attributes from this object. - def _fullcache(self): + 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): """Cache all attributes of this object""" if not _TYPECLASS_AGGRESSIVE_CACHE: return - 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, - ) + attrs = self.query_all() + self._cache = { + f"{to_str(attr.key).lower()}-{attr.category.lower() if attr.category else None}": attr for attr in attrs - ) + } self._cache_complete = True - def _getcache(self, key=None, category=None): + def _get_cache_key(self, key, category): + """ + Fetch cache key. + + 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): """ Retrieve from cache or database (always caches) @@ -334,85 +599,31 @@ key = key.strip().lower() if key else None category = category.strip().lower() if category is not None else None if key: - cachekey = "%s-%s" % (key, category) - cachefound = False - try: - attr = _TYPECLASS_AGGRESSIVE_CACHE and self._cache[cachekey] - cachefound = True - except KeyError: - attr = None + return self._get_cache_key(key, category) + return self._get_cache_category(category) - 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 +
    [docs] def get(self, key=None, category=None): + """ + Frontend for .get_cache. Retrieves Attribute(s). - def _setcache(self, key, category, attr_obj): + 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): """ Update cache. Args: key (str): A cleaned key string category (str or None): A cleaned category name - attr_obj (Attribute): The newly saved attribute + attr_obj (IAttribute): The newly saved attribute """ if not _TYPECLASS_AGGRESSIVE_CACHE: @@ -426,7 +637,7 @@ self._catcache.pop(catkey, None) self._cache_complete = False - def _delcache(self, key, category): + def _delete_cache(self, key, category): """ Remove attribute from cache @@ -449,7 +660,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. """ @@ -457,6 +668,435 @@ 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 @@ -478,7 +1118,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._getcache(keystr, category)) + ret.extend(bool(attr) for attr in self.backend.get(keystr, category)) return ret[0] if len(ret) == 1 else ret
    [docs] def get( @@ -500,11 +1140,11 @@ key (str or list, optional): the attribute identifier or multiple attributes to get. if a list of keys, the method will return a list. - category (str, optional): the category within which to - retrieve attribute(s). default (any, optional): The value to return if an Attribute was not defined. If set, it will be returned in a one-item list. + category (str, optional): the category within which to + retrieve attribute(s). return_obj (bool, optional): If set, the return is not the value of the Attribute but the Attribute object itself. strattr (bool, optional): Return the `strvalue` field of @@ -518,7 +1158,8 @@ looked-after Attribute. default_access (bool, optional): If no `attrread` lock is set on object, this determines if the lock should then be passed or not. - return_list (bool, optional): + return_list (bool, optional): Always return a list, also if there is only + one or zero matches found. Returns: result (any or list): One or more matches for keys and/or @@ -536,7 +1177,7 @@ ret = [] for keystr in make_iter(key): # it's okay to send a None key - attr_objs = self._getcache(keystr, category) + attr_objs = self.backend.get(keystr, category) if attr_objs: ret.extend(attr_objs) elif raise_exception: @@ -601,35 +1242,16 @@ return category = category.strip().lower() if category is not None else None - keystr = key.strip().lower() - attr_obj = self._getcache(key, category) + attr_obj = self.backend.get(key, category) if attr_obj: # update an existing attribute object attr_obj = attr_obj[0] - 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 + self.backend.update_attribute(attr_obj, 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(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)
    + self.backend.create_attribute(keystr, category, lockstring, value, strattr)
    [docs] def batch_add(self, *args, **kwargs): """ @@ -641,10 +1263,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 @@ -664,50 +1286,7 @@ 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._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)
    + self.backend.batch_add(*args, **kwargs)
    [docs] def remove( self, @@ -756,20 +1335,13 @@ for keystr in make_iter(key): keystr = keystr.lower() - attr_objs = self._getcache(keystr, category) + attr_objs = self.backend.get(keystr, category) for attr_obj in attr_objs: if not ( accessing_obj and not attr_obj.access(accessing_obj, self._attredit, default=default_access) ): - 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) + self.backend.delete_attribute(attr_obj) if not attr_objs and raise_exception: raise AttributeError
    @@ -787,27 +1359,7 @@ type `attredit` on the Attribute in question. """ - 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
    + self.backend.clear_attributes(category, accessing_obj, default_access)
    [docs] def all(self, accessing_obj=None, default_access=True): """ @@ -826,23 +1378,54 @@ their values!) in the handler. """ - 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) + attrs = self.backend.get_all_attributes() if accessing_obj: return [ attr for attr in attrs - if attr.access(accessing_obj, self._attredit, default=default_access) + if attr.access(accessing_obj, self._attrread, default=default_access) ] else: - return attrs
    + 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: + "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")).backend.get_all_attributes()
    + + all = property(get_all)
    + + +# # Nick templating # @@ -862,7 +1445,7 @@ This will be converted to the following regex: -\@desc (?P<1>\w+) (?P<2>\w+) $(?P<3>\w+) + \@desc (?P<1>\w+) (?P<2>\w+) $(?P<3>\w+) Supported template markers (through fnmatch) * matches anything (non-greedy) -> .*? @@ -873,8 +1456,10 @@ $N argument position (1-99) """ +_RE_OR = re.compile(r"(?<!\\)\|") +_RE_NICK_RE_ARG = re.compile(r"arg([1-9][0-9]?)") _RE_NICK_ARG = re.compile(r"\\(\$)([1-9][0-9]?)") -_RE_NICK_TEMPLATE_ARG = re.compile(r"(\$)([1-9][0-9]?)") +_RE_NICK_RAW_ARG = re.compile(r"(\$)([1-9][0-9]?)") _RE_NICK_SPACE = re.compile(r"\\ ") @@ -882,45 +1467,72 @@ pass -
    [docs]def initialize_nick_templates(in_template, out_template): +
    [docs]def initialize_nick_templates(pattern, replacement, pattern_is_regex=False): """ Initialize the nick templates for matching and remapping a string. 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. + pattern (str): The pattern to be used for nick recognition. This will + be parsed for shell patterns into a regex, unless `pattern_is_regex` + is `True`, in which case it must be an already valid regex string. In + this case, instead of `$N`, numbered arguments must instead be given + as matching groups named as `argN`, such as `(?P<arg1>.+?)`. + replacement (str): The template to be used to replace the string + matched by the pattern. This can contain `$N` markers and is never + parsed into a regex. + pattern_is_regex (bool): If set, `pattern` is a full regex string + instead of containing shell patterns. Returns: - (regex, str): Regex to match against strings and a template - Template with markers `{arg1}`, `{arg2}`, etc for - replacement using the standard `.format` method. + regex, template (str): Regex to match against strings and template + with markers ``{arg1}, {arg2}``, etc for replacement using the standard + `.format` method. Raises: - attributes.NickTemplateInvalid: If the in/out template does not have a matching - number of $args. + evennia.typecalasses.attributes.NickTemplateInvalid: If the in/out + template does not have a matching number of `$args`. + + Examples: + - `pattern` (shell syntax): `"grin $1"` + - `pattern` (regex): `"grin (?P<arg1.+?>)"` + - `replacement`: `"emote gives a wicked grin to $1"` """ - # create the regex for in_template - regex_string = fnmatch.translate(in_template) - # we must account for a possible line break coming over the wire + # create the regex from the pattern + if pattern_is_regex: + # Note that for a regex we can't validate in the way we do for the shell + # pattern, since you may have complex OR statements or optional arguments. - # NOTE-PYTHON3: fnmatch.translate format changed since Python2 - regex_string = regex_string[:-2] + r"(?:[\n\r]*?)\Z" + # Explicit regex given from the onset - this already contains argN + # groups. we need to split out any | - separated parts so we can + # attach the line-break/ending extras all regexes require. + pattern_regex_string = r"|".join( + or_part + r"(?:[\n\r]*?)\Z" + for or_part in _RE_OR.split(pattern)) - # validate the templates - regex_args = [match.group(2) for match in _RE_NICK_ARG.finditer(regex_string)] - temp_args = [match.group(2) for match in _RE_NICK_TEMPLATE_ARG.finditer(out_template)] - if set(regex_args) != set(temp_args): - # We don't have the same $-tags in input/output. - raise NickTemplateInvalid + else: + # Shell pattern syntax - convert $N to argN groups + # for the shell pattern we make sure we have matching $N on both sides + pattern_args = [match.group(1) for match in _RE_NICK_RAW_ARG.finditer(pattern)] + replacement_args = [ + match.group(1) for match in _RE_NICK_RAW_ARG.finditer(replacement)] + if set(pattern_args) != set(replacement_args): + # We don't have the same amount of argN/$N tags in input/output. + raise NickTemplateInvalid("Nicks: Both in/out-templates must contain the same $N tags.") - regex_string = _RE_NICK_SPACE.sub(r"\\s+", regex_string) - regex_string = _RE_NICK_ARG.sub(lambda m: "(?P<arg%s>.+?)" % m.group(2), regex_string) - template_string = _RE_NICK_TEMPLATE_ARG.sub(lambda m: "{arg%s}" % m.group(2), out_template) + # generate regex from shell pattern + pattern_regex_string = fnmatch.translate(pattern) + pattern_regex_string = _RE_NICK_SPACE.sub(r"\\s+", pattern_regex_string) + pattern_regex_string = _RE_NICK_ARG.sub( + lambda m: "(?P<arg%s>.+?)" % m.group(2), pattern_regex_string) + # we must account for a possible line break coming over the wire + pattern_regex_string = pattern_regex_string[:-2] + r"(?:[\n\r]*?)\Z" - return regex_string, template_string
    + # map the replacement to match the arg1 group-names, to make replacement easy + replacement_string = _RE_NICK_RAW_ARG.sub(lambda m: "{arg%s}" % m.group(2), replacement) + + return pattern_regex_string, replacement_string
    [docs]def parse_nick_template(string, template_regex, outtemplate): @@ -928,17 +1540,21 @@ Parse a text using a template and map it to another template Args: - string (str): The input string to processj + string (str): The input string to process template_regex (regex): A template regex created with initialize_nick_template. outtemplate (str): The template to which to map the matches produced by the template_regex. This should have $1, $2, - etc to match the regex. + etc to match the template-regex. Un-found $N-markers (possible if + the regex has optional matching groups) are replaced with empty + strings. """ match = template_regex.match(string) if match: - return True, outtemplate.format(**match.groupdict()) + matchdict = {key: value if value is not None else "" + for key, value in match.groupdict().items()} + return True, outtemplate.format(**matchdict) return False, string
    @@ -987,6 +1603,9 @@ a string. kwargs (any, optional): These are passed on to `AttributeHandler.get`. + Returns: + str or tuple: The nick replacement string or nick tuple. + """ if return_tuple or "return_obj" in kwargs: return super().get(key=key, category=category, **kwargs) @@ -1000,24 +1619,46 @@ ) return None -
    [docs] def add(self, key, replacement, category="inputline", **kwargs): +
    [docs] def add(self, pattern, replacement, category="inputline", pattern_is_regex=False, **kwargs): """ - Add a new nick. + Add a new nick, a mapping pattern -> replacement. Args: - key (str): A key (or template) for the nick to match for. - replacement (str): The string (or template) to replace `key` with (the "nickname"). + pattern (str): A pattern to match for. This will be parsed for + shell patterns using the `fnmatch` library and can contain + `$N`-markers to indicate the locations of arguments to catch. If + `pattern_is_regex=True`, this must instead be a valid regular + expression and the `$N`-markers must be named `argN` that matches + numbered regex groups (see examples). + replacement (str): The string (or template) to replace `key` with + (the "nickname"). This may contain `$N` markers to indicate where to + place the argument-matches category (str, optional): the category within which to retrieve the nick. The "inputline" means replacing data sent by the user. - kwargs (any, optional): These are passed on to `AttributeHandler.get`. + pattern_is_regex (bool): If `True`, the `pattern` will be parsed as a + raw regex string. Instead of using `$N` markers in this string, one + then must mark numbered arguments as a named regex-groupd named `argN`. + For example, `(?P<arg1>.+?)` will match the behavior of using `$1` + in the shell pattern. + **kwargs (any, optional): These are passed on to `AttributeHandler.get`. + + Notes: + For most cases, the shell-pattern is much shorter and easier. The + regex pattern form can be useful for more complex matchings though, + for example in order to add optional arguments, such as with + `(?P<argN>.*?)`. + + Example: + - pattern (default shell syntax): `"gr $1 at $2"` + - pattern (with pattern_is_regex=True): `r"gr (?P<arg1>.+?) at (?P<arg2>.+?)"` + - replacement: `"emote With a flourish, $1 grins at $2."` """ - if category == "channel": - nick_regex, nick_template = initialize_nick_templates(key + " $1", replacement + " $1") - else: - nick_regex, nick_template = initialize_nick_templates(key, replacement) - super().add(key, (nick_regex, nick_template, key, replacement), category=category, **kwargs)
    + nick_regex, nick_template = initialize_nick_templates( + pattern, replacement, pattern_is_regex=pattern_is_regex) + super().add(pattern, (nick_regex, nick_template, pattern, replacement), + category=category, **kwargs)
    [docs] def remove(self, key, category="inputline", **kwargs): """ @@ -1083,95 +1724,6 @@ 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 str(key).startswith("_")]
    @@ -1197,11 +1749,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/typeclasses/managers.html b/docs/0.9.5/_modules/evennia/typeclasses/managers.html index 3a9f8e3656..01ab89261f 100644 --- a/docs/0.9.5/_modules/evennia/typeclasses/managers.html +++ b/docs/0.9.5/_modules/evennia/typeclasses/managers.html @@ -77,14 +77,12 @@ 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 @@ -95,13 +93,13 @@ precedence if given. obj (Object, optional): On which object the Attribute to search for is. - attrtype (str, optional): An attribute-type to search for. + attrype (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: - attributes (list): The matching Attributes. + list: The matching Attributes. """ dbmodel = self.model.__dbclass__.__name__.lower() @@ -219,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 @@ -622,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 self.filter(query) + return super().filter(query) class TypeclassManager(TypedObjectManager): @@ -640,13 +638,21 @@ Search by supplying a string with optional extra search criteria to aid the query. Args: - query (str): A search criteria that accepts extra search criteria on the + query (str): A search criteria that accepts extra search criteria on the following + forms: + + [key|alias|#dbref...] + [tag==<tagstr>[:category]...] + [attr==<key>:<value>:category...] + + All three can be combined in the same query, separated by spaces. - following forms: [key|alias|#dbref...] [tag==<tagstr>[:category]...] [attr==<key>:<value>:category...] - " != " != " Returns: - matches (queryset): A queryset result matching all queries exactly. If wanting to use spaces or - ==, != in tags or attributes, enclose them in quotes. + matches (queryset): A queryset result matching all queries exactly. If wanting to use + spaces or ==, != in tags or attributes, enclose them in quotes. + + Example: + house = smart_search("key=foo alias=bar tag=house:building tag=magic attr=color:red") Note: The flexibility of this method is limited by the input line format. Tag/attribute @@ -834,7 +840,7 @@ all_subclasses.extend(self._get_subclasses(subclass)) return all_subclasses - def get_family(self, **kwargs): + def get_family(self, *args, **kwargs): """ Variation of get that not only returns the current typeclass but also all subclasses of that typeclass. @@ -854,7 +860,7 @@ "%s.%s" % (cls.__module__, cls.__name__) for cls in self._get_subclasses(self.model) ] kwargs.update({"db_typeclass_path__in": paths}) - return super().get(**kwargs) + return super().get(*args, **kwargs) def filter_family(self, *args, **kwargs): """ @@ -916,11 +922,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/typeclasses/models.html b/docs/0.9.5/_modules/evennia/typeclasses/models.html index 7a093ede10..67c754a443 100644 --- a/docs/0.9.5/_modules/evennia/typeclasses/models.html +++ b/docs/0.9.5/_modules/evennia/typeclasses/models.html @@ -67,8 +67,6 @@ This module also contains the Managers for the respective models; inherit from these to create custom managers. ----- - """ from django.db.models import signals @@ -81,7 +79,13 @@ from django.utils.encoding import smart_str from django.utils.text import slugify -from evennia.typeclasses.attributes import Attribute, AttributeHandler, NAttributeHandler +from evennia.typeclasses.attributes import ( + Attribute, + AttributeHandler, + ModelAttributeBackend, + InMemoryAttributeBackend, +) +from evennia.typeclasses.attributes import DbHolder from evennia.typeclasses.tags import Tag, TagHandler, AliasHandler, PermissionHandler from evennia.utils.idmapper.models import SharedMemoryModel, SharedMemoryModelBase @@ -108,6 +112,7 @@ def call_at_first_save(sender, instance, created, **kwargs): """ Receives a signal just after the object is saved. + """ if created: instance.at_first_save() @@ -116,6 +121,7 @@ def remove_attributes_on_delete(sender, instance, **kwargs): """ Wipe object's Attributes when it's deleted + """ instance.db_attributes.all().delete() @@ -137,6 +143,7 @@ Metaclass which should be set for the root of model proxies that don't define any new fields, like Object, Script etc. This is the basis for the typeclassing system. + """ def __new__(cls, name, bases, attrs): @@ -205,35 +212,6 @@ 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 # @@ -247,15 +225,16 @@ mechanics for managing connected attributes. The TypedObject has the following properties: - key - main name - name - alias for key - typeclass_path - the path to the decorating typeclass - typeclass - auto-linked typeclass - date_created - time stamp of object creation - permissions - perm strings - dbref - #id of object - db - persistent attribute storage - ndb - non-persistent attribute storage + + - key - main name + - name - alias for key + - typeclass_path - the path to the decorating typeclass + - typeclass - auto-linked typeclass + - date_created - time stamp of object creation + - permissions - perm strings + - dbref - #id of object + - db - persistent attribute storage + - ndb - non-persistent attribute storage """ @@ -276,7 +255,8 @@ "typeclass", max_length=255, null=True, - help_text="this defines what 'type' of entity this is. This variable holds a Python path to a module with a valid Evennia Typeclass.", + help_text="this defines what 'type' of entity this is. This variable holds " + "a Python path to a module with a valid Evennia Typeclass.", db_index=True, ) # Creation date. This is not changed once the object is created. @@ -285,16 +265,20 @@ db_lock_storage = models.TextField( "locks", blank=True, - help_text="locks limit access to an entity. A lock is defined as a 'lock string' on the form 'type:lockfunctions', defining what functionality is locked and how to determine access. Not defining a lock means no access is granted.", + help_text="locks limit access to an entity. A lock is defined as a 'lock string' " + "on the form 'type:lockfunctions', defining what functionality is locked and " + "how to determine access. Not defining a lock means no access is granted.", ) # many2many relationships db_attributes = models.ManyToManyField( Attribute, - help_text="attributes on this object. An attribute can hold any pickle-able python object (see docs for special cases).", + help_text="attributes on this object. An attribute can hold any pickle-able " + "python object (see docs for special cases).", ) db_tags = models.ManyToManyField( Tag, - 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.", ) # Database manager @@ -357,8 +341,10 @@ than use the one in the model. Args: - *args: Passed through to parent. - **kwargs: Passed through to parent. + Passed through to parent. + + Keyword Args: + Passed through to parent. Notes: The loading mechanism will attempt the following steps: @@ -385,7 +371,7 @@ # initialize all handlers in a lazy fashion
    [docs] @lazy_property def attributes(self): - return AttributeHandler(self)
    + return AttributeHandler(self, ModelAttributeBackend)
    [docs] @lazy_property def locks(self): @@ -405,9 +391,9 @@
    [docs] @lazy_property def nattributes(self): - return NAttributeHandler(self)
    + return AttributeHandler(self, InMemoryAttributeBackend)
    -
    [docs] class Meta(object): +
    [docs] class Meta: """ Django setup info. """ @@ -542,6 +528,23 @@ # Object manipulation methods # +
    [docs] @classmethod + def search(cls, query, **kwargs): + """ + Overridden by class children. This implements a common API. + + Args: + query (str): A search query. + **kwargs: Other search parameters. + + Returns: + list: A list of 0, 1 or more matches, only of this typeclass. + + """ + if cls.objects.dbref(query): + return [cls.objects.get_id(query)] + return list(cls.objects.filter(db_key__lower=query))
    +
    [docs] def is_typeclass(self, typeclass, exact=False): """ Returns true if this object has this type OR has a typeclass @@ -682,7 +685,7 @@ superuser lock bypass (be careful with this one). Keyword Args: - kwargs (any): Ignored, but is there to make the api + kwar (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. @@ -767,22 +770,22 @@ # Attribute storage # - # @property db - def __db_get(self): + @property + def db(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: @@ -791,44 +794,29 @@ self._db_holder = DbHolder(self, "attributes") return self._db_holder - # @db.setter - def __db_set(self, value): - """Stop accidentally replacing the db object""" + @db.setter + def db(self, value): + "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.""" + @db.deleter + def db(self): + "Stop accidental deletion." raise Exception("Cannot delete the db object!") - db = property(__db_get, __db_set, __db_del) - # # Non-persistent (ndb) storage # - # @property ndb - def __ndb_get(self): + @property + def ndb(self): """ - 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. - + 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. """ try: return self._ndb_holder @@ -836,20 +824,18 @@ self._ndb_holder = DbHolder(self, "nattrhandler", manager_name="nattributes") return self._ndb_holder - # @db.setter - def __ndb_set(self, value): + @ndb.setter + def ndb(self, value): "Stop accidentally replacing the ndb object" string = "Cannot assign directly to ndb object! " string += "Use ndb.attr=value instead." raise Exception(string) - # @db.deleter - def __ndb_del(self): + @ndb.deleter + def ndb(self): "Stop accidental deletion." raise Exception("Cannot delete the ndb object!") - ndb = property(__ndb_get, __ndb_set, __ndb_del) -
    [docs] def get_display_name(self, looker, **kwargs): """ Displays the name of the object in a viewer-aware manner. @@ -933,37 +919,32 @@
    [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)) - except: + except Exception: return "#"
    [docs] def web_get_detail_url(self): @@ -975,21 +956,24 @@ path (str): URI path to object detail page, if defined. Examples: - :: - Oscar (Character) = '/characters/oscar/1/' + ```python + 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. @@ -1000,7 +984,7 @@ "%s-detail" % slugify(self._meta.verbose_name), kwargs={"pk": self.pk, "slug": slugify(self.name)}, ) - except: + except Exception: return "#"
    [docs] def web_get_puppet_url(self): @@ -1009,7 +993,7 @@ object. Returns: - path (str): URI path to object puppet page, if defined. + str: URI path to object puppet page, if defined. Examples: :: @@ -1027,7 +1011,6 @@ 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. @@ -1039,7 +1022,7 @@ "%s-puppet" % slugify(self._meta.verbose_name), kwargs={"pk": self.pk, "slug": slugify(self.name)}, ) - except: + except Exception: return "#"
    [docs] def web_get_update_url(self): @@ -1048,12 +1031,13 @@ object. Returns: - path (str): URI path to object update page, if defined. + str: URI path to object update page, if defined. Examples: - :: - Oscar (Character) = '/characters/oscar/1/change/' + ```python + 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 @@ -1061,23 +1045,23 @@ :: url(r'characters/(?P<slug>[\w\d\-]+)/(?P<pk>[0-9]+)/change/$', - CharUpdateView.as_view(), name='character-update') + 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( "%s-update" % slugify(self._meta.verbose_name), kwargs={"pk": self.pk, "slug": slugify(self.name)}, ) - except: + except Exception: return "#"
    [docs] def web_get_delete_url(self): @@ -1088,25 +1072,26 @@ path (str): URI path to object deletion page, if defined. Examples: - :: - Oscar (Character) = '/characters/oscar/1/delete/' + ```python + 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') + 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. """ @@ -1115,7 +1100,7 @@ "%s-delete" % slugify(self._meta.verbose_name), kwargs={"pk": self.pk, "slug": slugify(self.name)}, ) - except: + except Exception: return "#"
    # Used by Django Sites/Admin @@ -1145,11 +1130,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/typeclasses/tags.html b/docs/0.9.5/_modules/evennia/typeclasses/tags.html index 9fb859b9e7..dadaa1693c 100644 --- a/docs/0.9.5/_modules/evennia/typeclasses/tags.html +++ b/docs/0.9.5/_modules/evennia/typeclasses/tags.html @@ -57,6 +57,7 @@ from django.conf import settings from django.db import models from evennia.utils.utils import to_str, make_iter +from evennia.locks.lockfuncs import perm as perm_lockfunc _TYPECLASS_AGGRESSIVE_CACHE = settings.TYPECLASS_AGGRESSIVE_CACHE @@ -96,7 +97,7 @@ "key", max_length=255, null=True, help_text="tag identifier", db_index=True ) db_category = models.CharField( - "category", max_length=64, null=True, help_text="tag category", db_index=True + "category", max_length=64, null=True, blank=True, help_text="tag category", db_index=True ) db_data = models.TextField( "data", @@ -118,7 +119,7 @@ db_index=True, ) - class Meta(object): + class Meta: "Define Django meta options" verbose_name = "Tag" unique_together = (("db_key", "db_category", "db_tagtype", "db_model"),) @@ -168,7 +169,10 @@ self._cache_complete = False
    def _query_all(self): - "Get all tags for this objects" + """ + Get all tags for this object. + + """ query = { "%s__id" % self._model: self._objid, "tag__db_model": self._model, @@ -180,7 +184,10 @@ ] def _fullcache(self): - "Cache all tags of this object" + """ + Cache all tags of this object. + + """ if not _TYPECLASS_AGGRESSIVE_CACHE: return tags = self._query_all() @@ -320,17 +327,18 @@
    [docs] def reset_cache(self): """ Reset the cache from the outside. + """ self._cache_complete = False self._cache = {} self._catcache = {}
    -
    [docs] def add(self, tag=None, category=None, data=None): +
    [docs] def add(self, key=None, category=None, data=None): """ Add a new tag to the handler. Args: - tag (str or list): The name of the tag to add. If a list, + key (str or list): The name of the tag to add. If a list, add several Tags. category (str, optional): Category of Tag. `None` is the default category. data (str, optional): Info text about the tag(s) added. @@ -343,11 +351,11 @@ will be created. """ - if not tag: + if not key: return if not self._cache_complete: self._fullcache() - for tagstr in make_iter(tag): + for tagstr in make_iter(key): if not tagstr: continue tagstr = str(tagstr).strip().lower() @@ -362,6 +370,40 @@ getattr(self.obj, self._m2m_fieldname).add(tagobj) self._setcache(tagstr, category, tagobj)
    +
    [docs] def has(self, key=None, category=None, return_list=False): + """ + Checks if the given Tag (or list of Tags) exists on the object. + + Args: + key (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 key: + for tag_str in make_iter(key): + 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. @@ -492,8 +534,9 @@ Batch-add tags from a list of tuples. Args: - *args (tuple or str): Each argument should be a `tagstr` keys or tuple `(keystr, category)` or - `(keystr, category, data)`. It's possible to mix input types. + *args (tuple or str): Each argument should be a `tagstr` keys or tuple + `(keystr, category)` or `(keystr, category, data)`. It's possible to mix input + types. Notes: This will generate a mimimal number of self.add calls, @@ -515,7 +558,7 @@ keys[tup[1]].append(tup[0]) data[tup[1]] = tup[2] # overwrite previous for category, key in keys.items(): - self.add(tag=key, category=category, data=data.get(category, None))
    + self.add(key=key, category=category, data=data.get(category, None))
    def __str__(self): return ",".join(self.all())
    @@ -536,7 +579,51 @@ """ - _tagtype = "permission" + _tagtype = "permission" + +
    [docs] def check(self, *permissions, require_all=False): + """ + Straight-up check the provided permission against this handler. The check will pass if + + - any/all given permission exists on the handler (depending on if `require_all` is set). + - If handler sits on puppeted object and this is a hierarachical perm, the puppeting + Account's permission will also be included in the check, prioritizing the Account's perm + (this avoids escalation exploits by puppeting a too-high prio character) + - a permission is also considered to exist on the handler, if it is *lower* than + a permission on the handler and this is a 'hierarchical' permission given + in `settings.PERMISSION_HIERARCHY`. Example: If the 'Developer' hierarchical + perm perm is set on the handler, and we check for the 'Builder' perm, the + check will pass. + + Args: + *permissions (str): Any number of permissions to check. By default, + the permission is passed if any of these (or higher, if a + hierarchical permission defined in settings.PERMISSION_HIERARCHY) + exists in the handler. Permissions are not case-sensitive. + require_all (bool): If set, *all* provided permissions much pass + the check for the entire check to pass. By default only one + needs to pass. + + Returns: + bool: If the provided permission(s) pass the check on this handler. + + Example: + :: + can_enter = obj.permissions.check("Blacksmith", "Builder") + + Notes: + This works the same way as the `perms` lockfunc and could be + replicated with a lock check against the lockstring + + "locktype: perm(perm1) OR perm(perm2) OR ..." + + (using AND for the `require_all` condition). + + """ + if require_all: + return all(perm_lockfunc(self.obj, None, perm) for perm in permissions) + else: + return any(perm_lockfunc(self.obj, None, perm) for perm in permissions)
    @@ -562,11 +649,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/utils/ansi.html b/docs/0.9.5/_modules/evennia/utils/ansi.html index 39cdd1eefd..75b16fa2e4 100644 --- a/docs/0.9.5/_modules/evennia/utils/ansi.html +++ b/docs/0.9.5/_modules/evennia/utils/ansi.html @@ -44,18 +44,64 @@ """ ANSI - Gives colour to text. -Use the codes defined in ANSIPARSER in your text to apply colour to text -according to the ANSI standard. +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. -Examples: +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 ```python "This is |rRed text|n and this is normal again." + ``` -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. +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" + +``` + +---- """ import functools @@ -70,6 +116,8 @@ from evennia.utils.utils import to_str +MXP_ENABLED = settings.MXP_ENABLED + # ANSI definitions @@ -123,9 +171,11 @@
    [docs]class ANSIParser(object): """ - A class that parses ANSI markup to ANSI command sequences. + A class that parses ANSI markup + to ANSI command sequences - We also allow to escape colour codes by prepending with an extra `|`. + We also allow to escape colour codes + by prepending with an extra `|`. """ @@ -218,6 +268,7 @@ ansi_xterm256_bright_bg_map += settings.COLOR_ANSI_XTERM256_BRIGHT_BG_EXTRA_MAP mxp_re = r"\|lc(.*?)\|lt(.*?)\|le" + mxp_url_re = r"\|lu(.*?)\|lt(.*?)\|le" # prepare regex matching brightbg_sub = re.compile( @@ -232,6 +283,7 @@ # xterm256_sub = re.compile(r"|".join([tup[0] for tup in xterm256_map]), re.DOTALL) ansi_sub = re.compile(r"|".join([re.escape(tup[0]) for tup in ansi_map]), re.DOTALL) mxp_sub = re.compile(mxp_re, re.DOTALL) + mxp_url_sub = re.compile(mxp_url_re, re.DOTALL) # used by regex replacer to correctly map ansi sequences ansi_map_dict = dict(ansi_map) @@ -245,6 +297,9 @@ # instance of each ansi_escapes = re.compile(r"(%s)" % "|".join(ANSI_ESCAPES), re.DOTALL) + # tabs/linebreaks |/ and |- should be able to be cleaned + unsafe_tokens = re.compile(r"\|\/|\|-", re.DOTALL) +
    [docs] def sub_ansi(self, ansimatch): """ Replacer used by `re.sub` to replace ANSI @@ -332,8 +387,9 @@ colval = 16 + (red * 36) + (green * 6) + blue return "\033[%s8;5;%sm" % (3 + int(background), colval) - # replaced since some clients (like Potato) does not accept codes with leading zeroes, see issue #1024. - # return "\033[%s8;5;%s%s%sm" % (3 + int(background), colval // 100, (colval % 100) // 10, colval%10) + # replaced since some clients (like Potato) does not accept codes with leading zeroes, + # see issue #1024. + # return "\033[%s8;5;%s%s%sm" % (3 + int(background), colval // 100, (colval % 100) // 10, colval%10) # noqa else: # xterm256 not supported, convert the rgb value to ansi instead @@ -418,7 +474,16 @@ string (str): The processed string. """ - return self.mxp_sub.sub(r"\2", string)
    + string = self.mxp_sub.sub(r"\2", string) + string = self.mxp_url_sub.sub(r"\1", string) # replace with url verbatim + return string
    + +
    [docs] def strip_unsafe_tokens(self, string): + """ + Strip explicitly ansi line breaks and tabs. + + """ + return self.unsafe_tokens.sub('', string)
    [docs] def parse_ansi(self, string, strip_ansi=False, xterm256=False, mxp=False): """ @@ -554,6 +619,23 @@ return parser.strip_raw_codes(string)
    +
    [docs]def strip_unsafe_tokens(string, parser=ANSI_PARSER): + """ + Strip markup that can be used to create visual exploits + (notably linebreaks and tags) + + """ + return parser.strip_unsafe_tokens(string)
    + + +
    [docs]def strip_mxp(string, parser=ANSI_PARSER): + """ + Strip MXP markup. + + """ + return parser.strip_mxp(string)
    + +
    [docs]def raw(string): """ Escapes a string into a form which won't be colorized by the ansi @@ -724,7 +806,8 @@ """ - # A compiled Regex for the format mini-language: https://docs.python.org/3/library/string.html#formatspec + # A compiled Regex for the format mini-language: + # https://docs.python.org/3/library/string.html#formatspec re_format = re.compile( r"(?i)(?P<just>(?P<fill>.)?(?P<align>\<|\>|\=|\^))?(?P<sign>\+|\-| )?(?P<alt>\#)?" r"(?P<zero>0)?(?P<width>\d+)?(?P<grouping>\_|\,)?(?:\.(?P<precision>\d+))?" @@ -762,8 +845,8 @@ decoded = True if not decoded: # Completely new ANSI String - clean_string = parser.parse_ansi(string, strip_ansi=True, mxp=True) - string = parser.parse_ansi(string, xterm256=True, mxp=True) + clean_string = parser.parse_ansi(string, strip_ansi=True, mxp=MXP_ENABLED) + string = parser.parse_ansi(string, xterm256=True, mxp=MXP_ENABLED) elif clean_string is not None: # We have an explicit clean string. pass @@ -797,12 +880,14 @@ Current features supported: fill, align, width. Args: - format_spec (str): The format specification passed by f-string or str.format(). This is a string such as - "0<30" which would mean "left justify to 30, filling with zeros". The full specification can be found - at https://docs.python.org/3/library/string.html#formatspec + format_spec (str): The format specification passed by f-string or str.format(). This is + a string such as "0<30" which would mean "left justify to 30, filling with zeros". + The full specification can be found at + https://docs.python.org/3/library/string.html#formatspec Returns: ansi_str (str): The formatted ANSIString's .raw() form, for display. + """ # This calls the compiled regex stored on ANSIString's class to analyze the format spec. # It returns a dictionary. @@ -1062,7 +1147,7 @@ current_index = 0 result = tuple() for section in parent_result: - result += (self[current_index : current_index + len(section)],) + result += (self[current_index: current_index + len(section)],) current_index += len(section) return result
    @@ -1182,7 +1267,7 @@ start = next + bylen maxsplit -= 1 # NB. if it's already < 0, it stays < 0 - res.append(self[start : len(self)]) + res.append(self[start: len(self)]) if drop_spaces: return [part for part in res if part != ""] return res @@ -1225,7 +1310,7 @@ if next < 0: break # Get character codes after the index as well. - res.append(self[next + bylen : end]) + res.append(self[next + bylen: end]) end = next maxsplit -= 1 # NB. if it's already < 0, it stays < 0 @@ -1279,7 +1364,7 @@ ic -= 1 ir2 -= 1 rstripped = rstripped[::-1] - return ANSIString(lstripped + raw[ir1 : ir2 + 1] + rstripped) + return ANSIString(lstripped + raw[ir1: ir2 + 1] + rstripped)
    [docs] def lstrip(self, chars=None): """ @@ -1398,7 +1483,7 @@ start = None end = char._char_indexes[0] prefix = char._raw_string[start:end] - postfix = char._raw_string[end + 1 :] + postfix = char._raw_string[end + 1:] line = char._clean_string * amount code_indexes = [i for i in range(0, len(prefix))] length = len(prefix) + len(line) @@ -1484,11 +1569,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/utils/batchprocessors.html b/docs/0.9.5/_modules/evennia/utils/batchprocessors.html index fba11286dc..152cdfbe92 100644 --- a/docs/0.9.5/_modules/evennia/utils/batchprocessors.html +++ b/docs/0.9.5/_modules/evennia/utils/batchprocessors.html @@ -43,24 +43,22 @@

    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
    @@ -74,8 +72,7 @@
     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
    @@ -83,31 +80,39 @@
     had been run at the game prompt.
     
     Each Evennia command must be delimited by a line comment to mark its
    -end. This way entire game worlds can be created and planned offline; it is
    +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
     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.
     
    -There is only one batchcommand-specific entry to use in a batch-command
    -files (all others are just like in-game commands):
    +## Example of batch.ev file:
     
    -- `#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.
     
    @@ -119,25 +124,22 @@
         # 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.
    -    #INSERT examples.batch
    +    #IMPORT 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,13 +173,14 @@
     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)
    +            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
     
    -Example batch.py file:
     ::
     
         #HEADER
    @@ -206,8 +209,6 @@
     
         script = create.create_script()
     
    -----
    -
     """
     import re
     import codecs
    @@ -245,7 +246,7 @@
             file_ending (str): The file ending of this file (.ev or .py)
     
         Returns:
    -        str: The text content of the batch file.
    +        text (str): The text content of the batch file.
     
         Raises:
             IOError: If problems reading file.
    @@ -292,22 +293,30 @@
     
     
    [docs] def parse_file(self, pythonpath): """ - This parses the lines of a batchfile according to the following - rules: + This parses the lines of a batch-command-file. - 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. + 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. """ @@ -318,7 +327,7 @@ try: path = match.group(1) return "\n#\n".join(self.parse_file(path)) - except IOError as err: + except IOError: raise IOError("#INSERT {} failed.".format(path)) text = _RE_INSERT.sub(replace_insert, text) @@ -356,21 +365,23 @@
    [docs] def parse_file(self, pythonpath): """ - This parses the lines of a batchfile according to the following - rules: + This parses the lines of a batch-code file Args: pythonpath (str): The dot-python path to the file. Returns: - 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. + 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). 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 @@ -379,6 +390,7 @@ 5. Code after the last block is considered part of the last header/code block + """ text = "".join(read_batchfile(pythonpath, file_ending=".py")) @@ -493,11 +505,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/utils/containers.html b/docs/0.9.5/_modules/evennia/utils/containers.html index b6b7be0c6d..f770341672 100644 --- a/docs/0.9.5/_modules/evennia/utils/containers.html +++ b/docs/0.9.5/_modules/evennia/utils/containers.html @@ -54,6 +54,7 @@ """ +from pickle import dumps from django.conf import settings from evennia.utils.utils import class_from_module, callables_from_module from evennia.utils import logger @@ -62,7 +63,7 @@ SCRIPTDB = None -
    [docs]class Container(object): +
    [docs]class Container: """ Base container class. A container is simply a storage object whose properties can be acquired as a property on it. This is generally @@ -175,38 +176,42 @@ self.load_data() typeclass = self.typeclass_storage[key] - found = typeclass.objects.filter(db_key=key).first() - interval = self.loaded_data[key].get("interval", None) - start_delay = self.loaded_data[key].get("start_delay", None) - repeats = self.loaded_data[key].get("repeats", 0) - desc = self.loaded_data[key].get("desc", "") + script = typeclass.objects.filter( + db_key=key, db_account__isnull=True, db_obj__isnull=True).first() - if not found: + kwargs = {**self.loaded_data[key]} + kwargs['key'] = key + kwargs['persistent'] = kwargs.get('persistent', True) + + compare_hash = str(dumps(kwargs, protocol=4)) + + if script: + script_hash = script.attributes.get("global_script_settings", category="settings_hash") + if script_hash is None: + # legacy - store the hash anew and assume no change + script.attributes.add("global_script_settings", compare_hash, + category="settings_hash") + elif script_hash != compare_hash: + # wipe the old version and create anew + logger.log_info(f"GLOBAL_SCRIPTS: Settings changed for {key} ({typeclass}).") + script.stop() + script.delete() + script = None + + if not script: logger.log_info(f"GLOBAL_SCRIPTS: (Re)creating {key} ({typeclass}).") - new_script, errors = typeclass.create( - key=key, - persistent=True, - interval=interval, - start_delay=start_delay, - repeats=repeats, - desc=desc, - ) + + script, errors = typeclass.create(**kwargs) if errors: logger.log_err("\n".join(errors)) return None - new_script.start() - return new_script + # store a hash representation of the setup + script.attributes.add("_global_script_settings", + compare_hash, category="settings_hash") + script.start() - if ( - (found.interval != interval) - or (found.start_delay != start_delay) - or (found.repeats != repeats) - ): - found.restart(interval=interval, start_delay=start_delay, repeats=repeats) - if found.desc != desc: - found.desc = desc - return found + return script
    [docs] def start(self): """ @@ -236,10 +241,9 @@ try: typeclass = data.get("typeclass", settings.BASE_SCRIPT_TYPECLASS) self.typeclass_storage[key] = class_from_module(typeclass) - except ImportError as err: - logger.log_err( - f"GlobalScriptContainer could not start global script {key}: {err}" - )
    + except Exception: + logger.log_trace( + f"GlobalScriptContainer could not start import global script {key}.")
    [docs] def get(self, key, default=None): """ @@ -308,11 +312,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/utils/create.html b/docs/0.9.5/_modules/evennia/utils/create.html index 6809d10665..e00af6dc20 100644 --- a/docs/0.9.5/_modules/evennia/utils/create.html +++ b/docs/0.9.5/_modules/evennia/utils/create.html @@ -42,27 +42,19 @@

    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 directly through their respective objects.
    +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()".
    +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
    @@ -83,7 +75,6 @@
     _AccountDB = None
     _to_object = None
     _ChannelDB = None
    -_channelhandler = None
     
     
     # limit symbol import from API
    @@ -124,31 +115,30 @@
         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.
    -        home (Object or str): Obj or #dbref to use as the object's
    -            home location.
    +            `#dbref` will be set.
    +        location (Object or str): Obj or #dbref to use as the location of the new object.
    +        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.
    +            (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.
    +            adding this rarely makes sense since this data will not survive a reload.
     
         Returns:
             object (Object): A newly created object of the given typeclass.
     
         Raises:
             ObjectDB.DoesNotExist: If trying to create an Object with
    -        `location` or `home` that can't be found.
    +            `location` or `home` that can't be found.
     
         """
         global _ObjectDB
    @@ -272,9 +262,8 @@
             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 of tuples `(key, value)`, `(key, value, category)`,
    -           `(key, value, category, lockstring)` or
    -           `(key, value, category, lockstring, default_access)`.
    +        attributes (list): List if tuples (key, value) or (key, value, category)
    +           (key, value, lockstring) or (key, value, lockstring, default_access).
     
         Returns:
             script (obj): An instance of the script created
    @@ -414,33 +403,38 @@
     
     
     
    [docs]def create_message( - senderobj, message, channels=None, receivers=None, locks=None, tags=None, header=None -): + senderobj, message, receivers=None, locks=None, tags=None, + header=None, **kwargs): """ Create a new communication Msg. Msgs represent a unit of database-persistent communication between entites. Args: - senderobj (Object or Account): The entity sending the Msg. + senderobj (Object, Account, Script, str or list): The entity (or + entities) sending the Msg. If a `str`, this is the id-string + for an external sender type. message (str): Text with the message. Eventual headers, titles etc should all be included in this text string. Formatting will be retained. - channels (Channel, key or list): A channel or a list of channels to - send to. The channels may be actual channel objects or their - unique key strings. - receivers (Object, Account, str or list): An Account/Object to send - to, or a list of them. May be Account objects or accountnames. + receivers (Object, Account, Script, str or list): An Account/Object to send + to, or a list of them. If a string, it's an identifier for an external + receiver. locks (str): Lock definition string. tags (list): A list of tags or tuples `(tag, category)`. header (str): Mime-type or other optional information for the message Notes: - The Comm system is created very open-ended, so it's fully possible - to let a message both go to several channels and to several - receivers at the same time, it's up to the command definitions to - limit this as desired. + The Comm system is created to be very open-ended, so it's fully + possible to let a message both go several receivers at the same time, + it's up to the command definitions to limit this as desired. """ + if 'channels' in kwargs: + raise DeprecationWarning( + "create_message() does not accept 'channel' kwarg anymore " + "- channels no longer accept Msg objects." + ) + global _Msg if not _Msg: from evennia.comms.models import Msg as _Msg @@ -452,8 +446,6 @@ for sender in make_iter(senderobj): new_message.senders = sender new_message.header = header - for channel in make_iter(channels): - new_message.channels = channel for receiver in make_iter(receivers): new_message.receivers = receiver if locks: @@ -660,11 +652,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/utils/dbserialize.html b/docs/0.9.5/_modules/evennia/utils/dbserialize.html index c51c05c94d..77a73a3b3d 100644 --- a/docs/0.9.5/_modules/evennia/utils/dbserialize.html +++ b/docs/0.9.5/_modules/evennia/utils/dbserialize.html @@ -72,7 +72,7 @@ from django.core.exceptions import ObjectDoesNotExist from django.contrib.contenttypes.models import ContentType from django.utils.safestring import SafeString -from evennia.utils.utils import uses_database, is_iter, to_str, to_bytes +from evennia.utils.utils import uses_database, is_iter, to_bytes from evennia.utils import logger __all__ = ("to_pickle", "from_pickle", "do_pickle", "do_unpickle", "dbserialize", "dbunserialize") @@ -659,7 +659,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,11 +822,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/utils/eveditor.html b/docs/0.9.5/_modules/evennia/utils/eveditor.html index e935c699e3..06a5a7deac 100644 --- a/docs/0.9.5/_modules/evennia/utils/eveditor.html +++ b/docs/0.9.5/_modules/evennia/utils/eveditor.html @@ -44,56 +44,52 @@ """ 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. +- 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 - EvEditor(caller, loadfunc=None, savefunc=None, quitfunc=None, key="", persistent=True) +```python +from evennia.utils.eveditor import EvEditor -- `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. +# set up an editor to edit the caller's 'desc' Attribute +def _loadfunc(caller): + return caller.db.desc -In addition, the EvEditor can be used to enter Python source code, -and offers basic handling of indentation. +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) +``` + +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 import CmdSet from evennia.utils import is_iter, fill, dedent, logger, justify, to_str, utils from evennia.utils.ansi import raw from evennia.commands import cmdhandler +from django.utils.translation import gettext as _ # we use cmdhandler instead of evennia.syscmdkeys to # avoid some cases of loading before evennia init'd @@ -111,7 +107,7 @@ # # ------------------------------------------------------------- -_HELP_TEXT = """ +_HELP_TEXT = _(""" <txt> - any non-command is appended to the end of the buffer. : <l> - view buffer or only line(s) <l> :: <l> - raw-view buffer or only line(s) <l> @@ -147,66 +143,66 @@ :fd <l> - de-indent entire buffer or line <l> :echo - turn echoing of the input on/off (helpful for some clients) -""" +""") -_HELP_LEGEND = """ +_HELP_LEGEND = _(""" Legend: <l> - line number, like '5' or range, like '3:7'. <w> - a single word, or multiple words with quotes around them. <txt> - longer string, usually not needing quotes. -""" +""") -_HELP_CODE = """ +_HELP_CODE = _(""" :! - Execute code buffer without saving :< - Decrease the level of automatic indentation for the next lines :> - Increase the level of automatic indentation for the next lines := - Switch automatic indentation on/off """.lstrip( "\n" -) +)) -_ERROR_LOADFUNC = """ +_ERROR_LOADFUNC = _(""" {error} |rBuffer load function error. Could not load initial data.|n -""" +""") -_ERROR_SAVEFUNC = """ +_ERROR_SAVEFUNC = _(""" {error} |rSave function returned an error. Buffer not saved.|n -""" +""") -_ERROR_NO_SAVEFUNC = "|rNo save function defined. Buffer cannot be saved.|n" +_ERROR_NO_SAVEFUNC = _("|rNo save function defined. Buffer cannot be saved.|n") -_MSG_SAVE_NO_CHANGE = "No changes need saving" -_DEFAULT_NO_QUITFUNC = "Exited editor." +_MSG_SAVE_NO_CHANGE = _("No changes need saving") +_DEFAULT_NO_QUITFUNC = _("Exited editor.") -_ERROR_QUITFUNC = """ +_ERROR_QUITFUNC = _(""" {error} |rQuit function gave an error. Skipping.|n -""" +""") -_ERROR_PERSISTENT_SAVING = """ +_ERROR_PERSISTENT_SAVING = _(""" {error} |rThe editor state could not be saved for persistent mode. Switching to non-persistent mode (which means the editor session won't survive an eventual server reload - so save often!)|n -""" +""") -_TRACE_PERSISTENT_SAVING = ( +_TRACE_PERSISTENT_SAVING = _( "EvEditor persistent-mode error. Commonly, this is because one or " "more of the EvEditor callbacks could not be pickled, for example " "because it's a class method or is defined inside another function." ) -_MSG_NO_UNDO = "Nothing to undo." -_MSG_NO_REDO = "Nothing to redo." -_MSG_UNDO = "Undid one step." -_MSG_REDO = "Redid one step." +_MSG_NO_UNDO = _("Nothing to undo.") +_MSG_NO_REDO = _("Nothing to redo.") +_MSG_UNDO = _("Undid one step.") +_MSG_REDO = _("Redid one step.") # ------------------------------------------------------------- # @@ -228,7 +224,10 @@ help_cateogory = "LineEditor"
    [docs] def func(self): - """Implement the yes/no choice.""" + """ + Implement the yes/no choice. + + """ # this is only called from inside the lineeditor # so caller.ndb._lineditor must be set. @@ -243,7 +242,10 @@
    [docs]class SaveYesNoCmdSet(CmdSet): - """Stores the yesno question""" + """ + Stores the yesno question + + """ key = "quitsave_yesno" priority = 150 # override other cmdsets. @@ -273,17 +275,18 @@
    [docs] def parse(self): """ - Handles pre-parsing + Handles pre-parsing. Editor commands are on the form + + :: - 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. """ @@ -378,6 +381,7 @@ def _load_editor(caller): """ Load persistent editor from storage. + """ saved_options = caller.attributes.get("_eveditor_saved") saved_buffer, saved_undo = caller.attributes.get("_eveditor_buffer_temp", (None, None)) @@ -403,6 +407,7 @@
    [docs]class CmdLineInput(CmdEditorBase): """ No command match - Inputs line of text into buffer. + """ key = _CMD_NOMATCH @@ -487,6 +492,7 @@ This command handles all the in-editor :-style commands. Since each command is small and very limited, this makes for a more efficient presentation. + """ caller = self.caller editor = caller.ndb._eveditor @@ -514,7 +520,7 @@ # Insert single colon alone on a line editor.update_buffer([":"] if lstart == 0 else linebuffer + [":"]) if echo_mode: - caller.msg("Single ':' added to buffer.") + caller.msg(_("Single ':' added to buffer.")) elif cmd == ":h": # help entry editor.display_help() @@ -529,7 +535,7 @@ # quit. If not saved, will ask if self.editor._unsaved: caller.cmdset.add(SaveYesNoCmdSet) - caller.msg("Save before quitting? |lcyes|lt[Y]|le/|lcno|ltN|le") + caller.msg(_("Save before quitting?") + " |lcyes|lt[Y]|le/|lcno|ltN|le") else: editor.quit() elif cmd == ":q!": @@ -544,24 +550,26 @@ elif cmd == ":UU": # reset buffer editor.update_buffer(editor._pristine_buffer) - caller.msg("Reverted all changes to the buffer back to original state.") + caller.msg(_("Reverted all changes to the buffer back to original state.")) elif cmd == ":dd": # :dd <l> - delete line <l> buf = linebuffer[:lstart] + linebuffer[lend:] editor.update_buffer(buf) - caller.msg("Deleted %s." % self.lstr) + caller.msg(_("Deleted {string}.").format(string=self.lstr)) elif cmd == ":dw": # :dw <w> - delete word in entire buffer # :dw <l> <w> delete word only on line(s) <l> if not self.arg1: - caller.msg("You must give a search word to delete.") + caller.msg(_("You must give a search word to delete.")) else: if not self.linerange: lstart = 0 lend = self.cline + 1 - caller.msg("Removed %s for lines %i-%i." % (self.arg1, lstart + 1, lend + 1)) + caller.msg(_("Removed {arg1} for lines {l1}-{l2}.").format( + arg1=self.arg1, l1=lstart + 1, l2=lend + 1)) else: - caller.msg("Removed %s for %s." % (self.arg1, self.lstr)) + caller.msg(_("Removed {arg1} for {line}.").format( + arg1=self.arg1, line=self.lstr)) sarea = "\n".join(linebuffer[lstart:lend]) sarea = re.sub(r"%s" % self.arg1.strip("'").strip('"'), "", sarea, re.MULTILINE) buf = linebuffer[:lstart] + sarea.split("\n") + linebuffer[lend:] @@ -576,49 +584,52 @@ editor._indent = 0 if editor._persistent: caller.attributes.add("_eveditor_indent", 0) - caller.msg("Cleared %i lines from buffer." % self.nlines) + caller.msg(_("Cleared {nlines} lines from buffer.").format(nlines=self.nlines)) elif cmd == ":y": # :y <l> - yank line(s) to copy buffer cbuf = linebuffer[lstart:lend] editor._copy_buffer = cbuf - caller.msg("%s, %s yanked." % (self.lstr.capitalize(), cbuf)) + caller.msg(_("{line}, {cbuf} yanked.").format(line=self.lstr.capitalize(), cbuf=cbuf)) elif cmd == ":x": # :x <l> - cut line to copy buffer cbuf = linebuffer[lstart:lend] editor._copy_buffer = cbuf buf = linebuffer[:lstart] + linebuffer[lend:] editor.update_buffer(buf) - caller.msg("%s, %s cut." % (self.lstr.capitalize(), cbuf)) + caller.msg(_("{line}, {cbuf} cut.").format(line=self.lstr.capitalize(), cbuf=cbuf)) elif cmd == ":p": # :p <l> paste line(s) from copy buffer if not editor._copy_buffer: - caller.msg("Copy buffer is empty.") + caller.msg(_("Copy buffer is empty.")) else: buf = linebuffer[:lstart] + editor._copy_buffer + linebuffer[lstart:] editor.update_buffer(buf) - caller.msg("Pasted buffer %s to %s." % (editor._copy_buffer, self.lstr)) + caller.msg(_("Pasted buffer {cbuf} to {line}.").format( + cbuf=editor._copy_buffer, line=self.lstr)) elif cmd == ":i": # :i <l> <txt> - insert new line new_lines = self.args.split("\n") if not new_lines: - caller.msg("You need to enter a new line and where to insert it.") + caller.msg(_("You need to enter a new line and where to insert it.")) else: buf = linebuffer[:lstart] + new_lines + linebuffer[lstart:] editor.update_buffer(buf) - caller.msg("Inserted %i new line(s) at %s." % (len(new_lines), self.lstr)) + caller.msg(_("Inserted {num} new line(s) at {line}.").format( + num=len(new_lines), line=self.lstr)) elif cmd == ":r": # :r <l> <txt> - replace lines new_lines = self.args.split("\n") if not new_lines: - caller.msg("You need to enter a replacement string.") + caller.msg(_("You need to enter a replacement string.")) else: buf = linebuffer[:lstart] + new_lines + linebuffer[lend:] editor.update_buffer(buf) - caller.msg("Replaced %i line(s) at %s." % (len(new_lines), self.lstr)) + caller.msg(_("Replaced {num} line(s) at {line}.").format( + num=len(new_lines), line=self.lstr)) elif cmd == ":I": # :I <l> <txt> - insert text at beginning of line(s) <l> if not self.raw_string and not editor._codefunc: - caller.msg("You need to enter text to insert.") + caller.msg(_("You need to enter text to insert.")) else: buf = ( linebuffer[:lstart] @@ -626,11 +637,11 @@ + linebuffer[lend:] ) editor.update_buffer(buf) - caller.msg("Inserted text at beginning of %s." % self.lstr) + caller.msg(_("Inserted text at beginning of {line}.").format(line=self.lstr)) elif cmd == ":A": # :A <l> <txt> - append text after end of line(s) if not self.args: - caller.msg("You need to enter text to append.") + caller.msg(_("You need to enter text to append.")) else: buf = ( linebuffer[:lstart] @@ -638,23 +649,24 @@ + linebuffer[lend:] ) editor.update_buffer(buf) - caller.msg("Appended text to end of %s." % self.lstr) + caller.msg(_("Appended text to end of {line}.").format(line=self.lstr)) elif cmd == ":s": # :s <li> <w> <txt> - search and replace words # in entire buffer or on certain lines if not self.arg1 or not self.arg2: - caller.msg("You must give a search word and something to replace it with.") + caller.msg(_("You must give a search word and something to replace it with.")) else: if not self.linerange: lstart = 0 lend = self.cline + 1 caller.msg( - "Search-replaced %s -> %s for lines %i-%i." - % (self.arg1, self.arg2, lstart + 1, lend) + _("Search-replaced {arg1} -> {arg2} for lines {l1}-{l2}.").format( + arg1=self.arg1, arg2=self.arg2, l1=lstart + 1, l2=lend) ) else: caller.msg( - "Search-replaced %s -> %s for %s." % (self.arg1, self.arg2, self.lstr) + _("Search-replaced {arg1} -> {arg2} for {line}.").format( + arg1=self.arg1, arg2=self.arg2, line=self.lstr) ) sarea = "\n".join(linebuffer[lstart:lend]) @@ -676,9 +688,10 @@ if not self.linerange: lstart = 0 lend = self.cline + 1 - caller.msg("Flood filled lines %i-%i." % (lstart + 1, lend)) + caller.msg(_("Flood filled lines {l1}-{l2}.").format( + l1=lstart + 1, l2=lend)) else: - caller.msg("Flood filled %s." % self.lstr) + caller.msg(_("Flood filled {line}.").format(line=self.lstr)) fbuf = "\n".join(linebuffer[lstart:lend]) fbuf = fill(fbuf, width=width) buf = linebuffer[:lstart] + fbuf.split("\n") + linebuffer[lend:] @@ -700,16 +713,19 @@ width = _DEFAULT_WIDTH if self.arg1 and self.arg1.lower() not in align_map: self.caller.msg( - "Valid justifications are [f]ull (default), [c]enter, [r]right or [l]eft" + _("Valid justifications are") + + " [f]ull (default), [c]enter, [r]right or [l]eft" ) return align = align_map[self.arg1.lower()] if self.arg1 else "f" if not self.linerange: lstart = 0 lend = self.cline + 1 - self.caller.msg("%s-justified lines %i-%i." % (align_name[align], lstart + 1, lend)) + self.caller.msg(_("{align}-justified lines {l1}-{l2}.").format( + align=align_name[align], l1=lstart + 1, l2=lend)) else: - self.caller.msg("%s-justified %s." % (align_name[align], self.lstr)) + self.caller.msg(_("{align}-justified {line}.").format( + align=align_name[align], line=self.lstr)) jbuf = "\n".join(linebuffer[lstart:lend]) jbuf = justify(jbuf, width=width, align=align) buf = linebuffer[:lstart] + jbuf.split("\n") + linebuffer[lend:] @@ -720,9 +736,9 @@ if not self.linerange: lstart = 0 lend = self.cline + 1 - caller.msg("Indented lines %i-%i." % (lstart + 1, lend)) + caller.msg(_("Indented lines {l1}-{l2}.").format(l1=lstart + 1, l2=lend)) else: - caller.msg("Indented %s." % self.lstr) + caller.msg(_("Indented {line}.").format(line=self.lstr)) fbuf = [indent + line for line in linebuffer[lstart:lend]] buf = linebuffer[:lstart] + fbuf + linebuffer[lend:] editor.update_buffer(buf) @@ -731,9 +747,10 @@ if not self.linerange: lstart = 0 lend = self.cline + 1 - caller.msg("Removed left margin (dedented) lines %i-%i." % (lstart + 1, lend)) + caller.msg(_("Removed left margin (dedented) lines {l1}-{l2}.").format( + l1=lstart + 1, l2=lend)) else: - caller.msg("Removed left margin (dedented) %s." % self.lstr) + caller.msg(_("Removed left margin (dedented) {line}.").format(line=self.lstr)) fbuf = "\n".join(linebuffer[lstart:lend]) fbuf = dedent(fbuf) buf = linebuffer[:lstart] + fbuf.split("\n") + linebuffer[lend:] @@ -741,45 +758,49 @@ elif cmd == ":echo": # set echoing on/off editor._echo_mode = not editor._echo_mode - caller.msg("Echo mode set to %s" % editor._echo_mode) + caller.msg(_("Echo mode set to {mode}").format(mode=editor._echo_mode)) elif cmd == ":!": if editor._codefunc: editor._codefunc(caller, editor._buffer) else: - caller.msg("This command is only available in code editor mode.") + caller.msg(_("This command is only available in code editor mode.")) elif cmd == ":<": # :< if editor._codefunc: editor.decrease_indent() indent = editor._indent if indent >= 0: - caller.msg("Decreased indentation: new indentation is {}.".format(indent)) + caller.msg(_( + "Decreased indentation: new indentation is {indent}.").format( + indent=indent)) else: - caller.msg("|rManual indentation is OFF.|n Use := to turn it on.") + caller.msg(_("|rManual indentation is OFF.|n Use := to turn it on.")) else: - caller.msg("This command is only available in code editor mode.") + caller.msg(_("This command is only available in code editor mode.")) elif cmd == ":>": # :> if editor._codefunc: editor.increase_indent() indent = editor._indent if indent >= 0: - caller.msg("Increased indentation: new indentation is {}.".format(indent)) + caller.msg(_( + "Increased indentation: new indentation is {indent}.").format( + indent=indent)) else: - caller.msg("|rManual indentation is OFF.|n Use := to turn it on.") + caller.msg(_("|rManual indentation is OFF.|n Use := to turn it on.")) else: - caller.msg("This command is only available in code editor mode.") + caller.msg(_("This command is only available in code editor mode.")) elif cmd == ":=": # := if editor._codefunc: editor.swap_autoindent() indent = editor._indent if indent >= 0: - caller.msg("Auto-indentation turned on.") + caller.msg(_("Auto-indentation turned on.")) else: - caller.msg("Auto-indentation turned off.") + caller.msg(_("Auto-indentation turned off.")) else: - caller.msg("This command is only available in code editor mode.")
    + caller.msg(_("This command is only available in code editor mode."))
    [docs]class EvEditorCmdSet(CmdSet): @@ -800,7 +821,7 @@ # ------------------------------------------------------------- -
    [docs]class EvEditor(object): +
    [docs]class EvEditor: """ This defines a line editor object. It creates all relevant commands and tracks the current state of the buffer. It also cleans up after @@ -915,7 +936,7 @@ persistent = False # Create the commands we need - caller.cmdset.add(EvEditorCmdSet, permanent=persistent) + caller.cmdset.add(EvEditorCmdSet, persistent=persistent) # echo inserted text back to caller self._echo_mode = True @@ -926,12 +947,15 @@
    [docs] def load_buffer(self): """ Load the buffer using the load function hook. + """ try: self._buffer = self._loadfunc(self._caller) if not isinstance(self._buffer, str): + self._caller.msg(f"|rBuffer is of type |w{type(self._buffer)})|r. " + "Continuing, it is converted to a string " + "(and will be saved as such)!|n") self._buffer = to_str(self._buffer) - self._caller.msg("|rNote: input buffer was converted to a string.|n") except Exception as e: from evennia.utils import logger @@ -1068,7 +1092,7 @@ header = ( "|n" + sep * 10 - + "Line Editor [%s]" % self._key + + _("Line Editor [{name}]").format(name=self._key) + sep * (_DEFAULT_WIDTH - 24 - len(self._key)) ) footer = ( @@ -1076,7 +1100,7 @@ + sep * 10 + "[l:%02i w:%03i c:%04i]" % (nlines, nwords, nchars) + sep * 12 - + "(:h for help)" + + _("(:h for help)") + sep * (_DEFAULT_WIDTH - 54) ) if linenums: @@ -1185,11 +1209,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/utils/evform.html b/docs/0.9.5/_modules/evennia/utils/evform.html index bdeb8c9219..de99093bc6 100644 --- a/docs/0.9.5/_modules/evennia/utils/evform.html +++ b/docs/0.9.5/_modules/evennia/utils/evform.html @@ -56,32 +56,34 @@ object when displaying the form. Example of input file `testform.py`: -:: - FORMCHAR = "x" - TABLECHAR = "c" +```python +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 +97,8 @@ Use as follows: -:: +```python from evennia import EvForm, EvTable # create a new form from the template @@ -128,9 +130,10 @@ "B": tableB}) print(form) - +``` This produces the following result: + :: .------------------------------------------------. @@ -154,7 +157,6 @@ | | | ------------------------------------------------ - 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,15 +234,16 @@
    [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 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. + 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. + Notes: Other kwargs are fed as options to the EvCells and EvTables (see `evtable.EvCell` and `evtable.EvTable` for more info). @@ -531,11 +534,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/utils/evmenu.html b/docs/0.9.5/_modules/evennia/utils/evmenu.html index 973e85e5f6..3ac43a82ad 100644 --- a/docs/0.9.5/_modules/evennia/utils/evmenu.html +++ b/docs/0.9.5/_modules/evennia/utils/evmenu.html @@ -42,12 +42,14 @@

    Source code for evennia.utils.evmenu

     """
    -The EvMenu is a full in-game menu system for Evennia.
    +EvMenu
    +
    +This implements a full menu system for Evennia.
     
     To start the menu, just import the EvMenu class from this module.
    -
     Example usage:
    -::
    +
    +```python
     
         from evennia.utils.evmenu import EvMenu
     
    @@ -55,10 +57,11 @@
              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.
    @@ -72,7 +75,8 @@
     
     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)
    @@ -86,8 +90,9 @@
         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
    @@ -104,42 +109,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 `None`, 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 the empty string (only), 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
     
    @@ -175,8 +180,11 @@
             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
    @@ -195,9 +203,8 @@
     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
    @@ -213,10 +220,13 @@
     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
    @@ -277,7 +287,7 @@
     
             >: start
     
    -    # node abort
    +    ## node abort
     
         This exits the menu since there is no `## options` section.
     
    @@ -294,9 +304,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.
     
     ----
     
    @@ -448,7 +458,8 @@
                         )  # don't give the session as a kwarg here, direct to original
                         raise EvMenuError(err)
             # we must do this after the caller with the menu has been correctly identified since it
    -        # can be either Account, Object or Session (in the latter case this info will be superfluous).
    +        # can be either Account, Object or Session (in the latter case this info will be
    +        # superfluous).
             caller.ndb._evmenu._session = self.session
             # we have a menu, use it.
             menu.parse_input(self.raw_string)
    @@ -575,9 +586,7 @@ 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. - - Keyword Args: - any (any): All kwargs will become initialization variables on `caller.ndb._evmenu`, + **kwargs: All kwargs will become initialization variables on `caller.ndb._menutree`, to be available at run. Raises: @@ -654,7 +663,8 @@ ).intersection(set(kwargs.keys())) if reserved_clash: raise RuntimeError( - f"One or more of the EvMenu `**kwargs` ({list(reserved_clash)}) is reserved by EvMenu for internal use." + f"One or more of the EvMenu `**kwargs` ({list(reserved_clash)}) " + "is reserved by EvMenu for internal use." ) for key, val in kwargs.items(): setattr(self, key, val) @@ -698,7 +708,7 @@ menu_cmdset = EvMenuCmdSet() menu_cmdset.mergetype = str(cmdset_mergetype).lower().capitalize() or "Replace" menu_cmdset.priority = int(cmdset_priority) - self.caller.cmdset.add(menu_cmdset, permanent=persistent) + self.caller.cmdset.add(menu_cmdset, persistent=persistent) reserved_startnode_kwargs = set(("nodename", "raw_string")) startnode_kwargs = {} @@ -777,30 +787,6 @@ 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: @@ -1005,8 +991,7 @@ raw_string (str): The raw default string entered on the previous node (only used if the node accepts it as an argument) - Keyword Args: - any: Extra arguments to goto callables. + **kwargs: Extra arguments to goto callables. """ @@ -1322,7 +1307,7 @@ table.extend([" " for i in range(nrows - nlastcol)]) # build the actual table grid - table = [table[icol * nrows : (icol * nrows) + nrows] for icol in range(0, ncols)] + table = [table[icol * nrows: (icol * nrows) + nrows] for icol in range(0, ncols)] # adjust the width of each column for icol in range(len(table)): @@ -1379,33 +1364,50 @@ 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 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! + 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! pagesize (int): How many options to show per page. Example: - :: - 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" + ```python + def select(caller, selection, available_choices=None, **kwargs): + ''' + Args: + caller (Object or Account): User of the menu. + selection (str): What caller chose in the menu + available_choices (list): The keys of elements available on the *current listing + page*. + **kwargs: Kwargs passed on from the node. + Returns: + tuple, str or None: A tuple (nextnodename, **kwargs) or just nextnodename. Return + `None` to go back to the listnode. - @list_node(['foo', 'bar'], _selectfunc) - def node_index(caller): - text = "describing the list" - return text, [] + # (do something with `selection` here) + + return "nextnode", **kwargs + + @list_node(['foo', 'bar'], select) + def node_index(caller): + text = "describing the list" + + # optional extra options in addition to the list-options + extra_options = [] + + return text, extra_options + + ``` Notes: - 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. + 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. """ @@ -1413,23 +1415,28 @@ def _select_parser(caller, raw_string, **kwargs): """ Parse the select action + """ - available_choices = kwargs.get("available_choices", []) + available_choices = kwargs.pop("available_choices", []) try: index = int(raw_string.strip()) - 1 selection = available_choices[index] except Exception: - caller.msg("|rInvalid choice.|n") + caller.msg(_("|rInvalid choice.|n")) else: if callable(select): try: if bool(getargspec(select).keywords): - return select(caller, selection, available_choices=available_choices) + return select( + caller, selection, available_choices=available_choices, **kwargs) else: - return select(caller, selection) + return select(caller, selection, **kwargs) except Exception: - logger.log_trace() + logger.log_trace("Error in EvMenu.list_node decorator:\n " + f"select-callable: {select}\n with args: ({caller}" + f"{selection}, {available_choices}, {kwargs}) raised " + "exception.") elif select: # we assume a string was given, we inject the result into the kwargs # to pass on to the next node @@ -1452,7 +1459,7 @@ if option_list: nall_options = len(option_list) pages = [ - option_list[ind : ind + pagesize] for ind in range(0, nall_options, pagesize) + option_list[ind: ind + pagesize] for ind in range(0, nall_options, pagesize) ] npages = len(pages) @@ -1466,7 +1473,7 @@ # callback being called with a result from the available choices options.extend( [ - {"desc": opt, "goto": (_select_parser, {"available_choices": page})} + {"desc": opt, "goto": (_select_parser, {"available_choices": page, **kwargs})} for opt in page ] ) @@ -1477,7 +1484,7 @@ # allows us to call ourselves over and over, using different kwargs. options.append( { - "key": ("|Wcurrent|n", "c"), + "key": (_("|Wcurrent|n"), "c"), "desc": "|W({}/{})|n".format(page_index + 1, npages), "goto": (lambda caller: None, {"optionpage_index": page_index}), } @@ -1485,14 +1492,14 @@ if page_index > 0: options.append( { - "key": ("|wp|Wrevious page|n", "p"), + "key": (_("|wp|Wrevious page|n"), "p"), "goto": (lambda caller: None, {"optionpage_index": page_index - 1}), } ) if page_index < npages - 1: options.append( { - "key": ("|wn|Wext page|n", "n"), + "key": (_("|wn|Wext page|n"), "n"), "goto": (lambda caller: None, {"optionpage_index": page_index + 1}), } ) @@ -1579,7 +1586,8 @@ getinput = caller.ndb._getinput if not getinput and hasattr(caller, "account"): getinput = caller.account.ndb._getinput - caller = caller.account + if getinput: + caller = caller.account callback = getinput._callback caller.ndb._getinput._session = self.session @@ -1618,7 +1626,7 @@ self.add(CmdGetInput()) -class _Prompt(object): +class _Prompt: """Dummy holder""" pass @@ -1626,60 +1634,51 @@
    [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, 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. + 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`. 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. - 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`. + When the prompt is running, a temporary object `caller.ndb._getinput` + is stored; this will be removed when the prompt finishes. - 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 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. """ if not callable(callback): @@ -1690,7 +1689,187 @@ caller.ndb._getinput._session = session caller.ndb._getinput._args = args caller.ndb._getinput._kwargs = kwargs - caller.cmdset.add(InputCmdSet) + caller.cmdset.add(InputCmdSet, persistent=False) + caller.msg(prompt, session=session)
    + + +
    [docs]class CmdYesNoQuestion(Command): + """ + Handle a prompt for yes or no. Press [return] for the default choice. + + """ + + key = _CMD_NOINPUT + aliases = [_CMD_NOMATCH, "yes", "no", 'y', 'n', 'a', 'abort'] + arg_regex = r"^$" + + def _clean(self, caller): + del caller.ndb._yes_no_question + if not caller.cmdset.has(YesNoQuestionCmdSet) and hasattr(caller, "account"): + caller.account.cmdset.remove(YesNoQuestionCmdSet) + else: + caller.cmdset.remove(YesNoQuestionCmdSet) + +
    [docs] def func(self): + """This is called when user enters anything.""" + caller = self.caller + try: + yes_no_question = caller.ndb._yes_no_question + if not yes_no_question and hasattr(caller, "account"): + yes_no_question = caller.account.ndb._yes_no_question + caller = caller.account + + if not yes_no_question: + self._clean(caller) + return + + inp = self.cmdname + + if inp == _CMD_NOINPUT: + raw = self.raw_cmdname.strip() + if not raw: + # use default + inp = yes_no_question.default + else: + inp = raw + + if inp in ('a', 'abort') and yes_no_question.allow_abort: + caller.msg(_("Aborted.")) + self._clean(caller) + return + + caller.ndb._yes_no_question.session = self.session + + args = yes_no_question.args + kwargs = yes_no_question.kwargs + kwargs['caller_session'] = self.session + + if inp in ('yes', 'y'): + yes_no_question.yes_callable(caller, *args, **kwargs) + elif inp in ('no', 'n'): + yes_no_question.no_callable(caller, *args, **kwargs) + else: + # invalid input. Resend prompt without cleaning + caller.msg(yes_no_question.prompt, session=self.session) + return + + # cleanup + self._clean(caller) + except Exception: + # make sure to clean up cmdset if something goes wrong + caller.msg(_("|rError in ask_yes_no. Choice not confirmed (report to admin)|n")) + logger.log_trace("Error in ask_yes_no") + self._clean(caller) + raise
    + + +
    [docs]class YesNoQuestionCmdSet(CmdSet): + """ + This stores the input command + """ + + key = "yes_no_question_cmdset" + priority = 1 + mergetype = "Replace" + no_objs = True + no_exits = True + no_channels = False + +
    [docs] def at_cmdset_creation(self): + """called once at creation""" + self.add(CmdYesNoQuestion())
    + + +
    [docs]def ask_yes_no(caller, prompt="Yes or No {options}?", yes_action="Yes", no_action="No", + default=None, allow_abort=False, session=None, *args, **kwargs): + """ + A helper question for asking a simple yes/no question. This will cause + the system to pause and wait for input from the player. + + Args: + prompt (str): The yes/no question to ask. This takes an optional formatting + marker `{options}` which will be filled with 'Y/N', '[Y]/N' or + 'Y/[N]' depending on the setting of `default`. If `allow_abort` is set, + then the 'A(bort)' option will also be available. + yes_action (callable or str): If a callable, this will be called + with `(caller, *args, **kwargs)` when the Yes-choice is made. + If a string, this string will be echoed back to the caller. + no_action (callable or str): If a callable, this will be called + with `(caller, *args, **kwargs)` when the No-choice is made. + If a string, this string will be echoed back to the caller. + default (str optional): This is what the user will get if they just press the + return key without giving any input. One of 'N', 'Y', 'A' or `None` + for no default (an explicit choice must be given). If 'A' (abort) + is given, `allow_abort` kwarg is ignored and assumed set. + allow_abort (bool, optional): If set, the 'A(bort)' option is available + (a third option meaning neither yes or no but just exits the prompt). + 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._yes_no_question.session`. + *args: Additional arguments passed on into callables. + **kwargs: Additional keyword args passed on into callables. + + Raises: + RuntimeError, FooError: If default and `allow_abort` clashes. + + Example: + :: + + # just returning strings + ask_yes_no(caller, "Are you happy {options}?", + "you answered yes", "you answered no") + # trigger callables + ask_yes_no(caller, "Are you sad {options}?", + _callable_yes, _callable_no, allow_abort=True) + + """ + def _callable_yes_txt(caller, *args, **kwargs): + yes_txt = kwargs['yes_txt'] + session = kwargs['caller_session'] + caller.msg(yes_txt, session=session) + + def _callable_no_txt(caller, *args, **kwargs): + no_txt = kwargs['no_txt'] + session = kwargs['caller_session'] + caller.msg(no_txt, session=session) + + if not callable(yes_action): + kwargs['yes_txt'] = str(yes_action) + yes_action = _callable_yes_txt + + if not callable(no_action): + kwargs['no_txt'] = str(no_action) + no_action = _callable_no_txt + + # prepare the prompt with options + options = "Y/N" + abort_txt = "/Abort" if allow_abort else "" + if default: + default = default.lower() + if default == "y": + options = "[Y]/N" + elif default == "n": + options = "Y/[N]" + elif default == "a": + allow_abort = True + abort_txt = "/[A]bort" + options += abort_txt + prompt = prompt.format(options=options) + + caller.ndb._yes_no_question = _Prompt() + caller.ndb._yes_no_question.prompt = prompt + caller.ndb._yes_no_question.session = session + caller.ndb._yes_no_question.prompt = prompt + caller.ndb._yes_no_question.default = default + caller.ndb._yes_no_question.allow_abort = allow_abort + caller.ndb._yes_no_question.yes_callable = yes_action + caller.ndb._yes_no_question.no_callable = no_action + caller.ndb._yes_no_question.args = args + caller.ndb._yes_no_question.kwargs = kwargs + + caller.cmdset.add(YesNoQuestionCmdSet) caller.msg(prompt, session=session)
    @@ -1703,7 +1882,9 @@ _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'.") @@ -1717,8 +1898,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 @@ -1734,18 +1915,12 @@ 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: @@ -1772,7 +1947,8 @@ 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): @@ -1792,15 +1968,13 @@ # 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) @@ -1831,35 +2005,28 @@ dict: A `{"node": nodefunc}` menutree suitable to pass into EvMenu. """ - def _validate_kwarg(goto, kwarg): """ Validate goto-callable kwarg is on correct form. """ - if not "=" in kwarg: + if "=" not in kwarg: raise RuntimeError( 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): """ Parse option section into option dict. + """ options = [] optiontxt = optiontxt[0].strip() if optiontxt else "" @@ -1885,7 +2052,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] @@ -1897,7 +2064,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 @@ -1937,6 +2104,7 @@ def _parse(caller, menu_template, goto_callables): """ Parse the menu string format into a node tree. + """ nodetree = {} splits = _RE_NODE.split(menu_template) @@ -1958,7 +2126,12 @@
    [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 @@ -1983,7 +2156,12 @@ """ 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, + )
    @@ -2009,11 +2187,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/utils/evmore.html b/docs/0.9.5/_modules/evennia/utils/evmore.html index 916d7e9a06..77cfd82617 100644 --- a/docs/0.9.5/_modules/evennia/utils/evmore.html +++ b/docs/0.9.5/_modules/evennia/utils/evmore.html @@ -45,29 +45,34 @@ """ 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: -:: +One can also use the convenience function `msg` from this module to avoid +having to set up the `EvMenu` object manually: + +```python from evennia.utils import evmore text = some_long_text_output() evmore.msg(caller, text, always_page=False, session=None, justify_kwargs=None, **kwargs) +``` -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 +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 change the formatting of the text. The remaining `**kwargs` will be passed on to the `caller.msg()` construct every time the page is updated. @@ -77,9 +82,12 @@ from django.conf import settings from django.db.models.query import QuerySet from django.core.paginator import Paginator -from evennia import Command, CmdSet +from evennia.commands.command import Command +from evennia.commands.cmdset import CmdSet from evennia.commands import cmdhandler -from evennia.utils.utils import make_iter, inherits_from, justify +from evennia.utils.ansi import ANSIString +from evennia.utils.utils import make_iter, inherits_from, justify, dedent +from django.utils.translation import gettext as _ _CMD_NOMATCH = cmdhandler.CMD_NOMATCH _CMD_NOINPUT = cmdhandler.CMD_NOINPUT @@ -90,19 +98,21 @@ _EVTABLE = None +_LBR = ANSIString("\n") + # text _DISPLAY = """{text} -(|wmore|n [{pageno}/{pagemax}] retur|wn|n|||wb|nack|||wt|nop|||we|nnd|||wq|nuit)""" +(|wPage|n [{pageno}/{pagemax}] |wn|next|n || |wp|nrevious || |wt|nop || |we|nnd || |wq|nuit)"""
    [docs]class CmdMore(Command): """ - Manipulate the text paging + Manipulate the text paging. Catch no-input with aliases. """ key = _CMD_NOINPUT - aliases = ["quit", "q", "abort", "a", "next", "n", "back", "b", "top", "t", "end", "e"] + aliases = ["quit", "q", "abort", "a", "next", "n", "previous", "p", "top", "t", "end", "e"] auto_help = False
    [docs] def func(self): @@ -120,7 +130,7 @@ if cmd in ("abort", "a", "q"): more.page_quit() - elif cmd in ("back", "b"): + elif cmd in ("previous", "p"): more.page_back() elif cmd in ("top", "t", "look", "l"): more.page_top() @@ -131,26 +141,23 @@ more.page_next()
    -
    [docs]class CmdMoreLook(Command): +
    [docs]class CmdMoreExit(Command): """ - Override look to display window and prevent OOCLook from firing + Any non-more command will exit the pager. + """ + key = _CMD_NOMATCH - key = "look" - aliases = ["l"] - auto_help = False - -
    [docs] def func(self): +
    [docs] def func(self): """ - Implement the command + Exit pager and re-fire the failed command. + """ more = self.caller.ndb._more - if not more and hasattr(self.caller, "account"): - more = self.caller.account.ndb._more - if not more: - self.caller.msg("Error in loading the pager. Contact an admin.") - return - more.display()
    + more.page_quit() + + # re-fire the command (in new cmdset) + self.caller.execute_cmd(self.raw_string)
    [docs]class CmdSetMore(CmdSet): @@ -160,10 +167,11 @@ key = "more_commands" priority = 110 + mergetype = "Replace"
    [docs] def at_cmdset_creation(self): self.add(CmdMore()) - self.add(CmdMoreLook())
    + self.add(CmdMoreExit()) # resources for handling queryset inputs @@ -171,10 +179,9 @@ return qs.count() -
    [docs]class EvMore: +
    [docs]class EvMore(object): """ - The main pager object. - + The main pager object """
    [docs] def __init__( @@ -192,16 +199,15 @@ ): """ - Initialization of the Evmore input handler. + Initialization of the EvMore pager. 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 (backslash + f) format symbols, automatic - pagination and justification are force-disabled and - page-breaks will only happen after each \\\\f. + one or more `\\\\f` format symbol, 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. @@ -209,8 +215,9 @@ 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 @@ -226,51 +233,29 @@ 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, any): These will be passed on to the `caller.msg` method. + kwargs (any, optional): These will be passed on to the `caller.msg` method. Examples: - Basic use: - :: - 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) + ```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) + ``` """ self._caller = caller @@ -289,7 +274,7 @@ self._justify_kwargs = justify_kwargs self.exit_on_lastpage = exit_on_lastpage self.exit_cmd = exit_cmd - self._exit_msg = "Exited |wmore|n pager." + self._exit_msg = _("|xExited pager.|n") self._kwargs = kwargs self._data = None @@ -412,8 +397,9 @@ """ Paginate by slice. This is done with an eye on memory efficiency (usually for querysets); to avoid fetching all objects at the same time. + """ - return self._data[pageno * self.height : pageno * self.height + self.height]
    + return self._data[pageno * self.height: pageno * self.height + self.height]
    [docs] def paginator_django(self, pageno): """ @@ -457,9 +443,12 @@
    [docs] def init_f_str(self, text): """ - 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. + 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. """ self._data = text.split("\f") @@ -488,7 +477,7 @@ lines = text.split("\n") self._data = [ - "\n".join(lines[i : i + self.height]) for i in range(0, len(lines), self.height) + _LBR.join(lines[i: i + self.height]) for i in range(0, len(lines), self.height) ] self._npages = len(self._data)
    @@ -506,16 +495,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` - directly 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` directly instead. By default, helper methods are called that perform these actions depending on supported inputs. @@ -592,40 +580,6 @@ """ 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, @@ -637,6 +591,9 @@ exit_on_lastpage=exit_on_lastpage, **kwargs, )
    + + +msg.__doc__ += dedent(EvMore.__init__.__doc__)
    @@ -662,11 +619,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/utils/evtable.html b/docs/0.9.5/_modules/evennia/utils/evtable.html index 14f68c6882..df7caebf82 100644 --- a/docs/0.9.5/_modules/evennia/utils/evtable.html +++ b/docs/0.9.5/_modules/evennia/utils/evtable.html @@ -42,21 +42,25 @@

    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.
    +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.
     
     Example usage:
    -::
     
    -    from evennia.utils import evtable
    +```python
    +  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:
    +
     ::
     
         +----------------------+----------+---+--------------------------+
    @@ -73,13 +77,15 @@
     
     As seen, the table will automatically expand with empty cells to make
     the table symmetric. Tables can be restricted to a given width:
    -::
     
    -    table.reformat(width=50, align="l")
    +```python
    +  table.reformat(width=50, align="l")
    +```
     
     (We could just have added these keywords to the table creation call)
     
     This yields the following result:
    +
     ::
     
         +-----------+------------+-----------+-----------+
    @@ -100,16 +106,21 @@
         | 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):
    -::
     
    -    table.reformat_column(3, width=30, align="r")
    -    print table
    +```python
    +
    +table.reformat_column(3, width=30, align="r")
    +print table
    +```
    +
    +::
     
         +-----------+-------+-----+-----------------------------+---------+
         | Heading1  | Headi |     |                             |         |
    @@ -133,15 +144,14 @@
     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](evennia.utils.ansi#ansistring)
    -for supporting ANSI-coloured string types.
    +`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.
    +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.
     
     ----
     
    @@ -272,12 +282,12 @@
                     del chunks[-1]
     
                 while chunks:
    -                l = d_len(chunks[-1])
    +                ln = d_len(chunks[-1])
     
                     # Can at least squeeze this chunk onto the current line.
    -                if cur_len + l <= width:
    +                if cur_len + ln <= width:
                         cur_line.append(chunks.pop())
    -                    cur_len += l
    +                    cur_len += ln
     
                     # Nope, this line is full.
                     else:
    @@ -295,10 +305,10 @@
                 # Convert current line back to a string and store it in list
                 # of all lines (return value).
                 if cur_line:
    -                l = ""
    +                ln = ""
                     for w in cur_line:  # ANSI fix
    -                    l += w  #
    -                lines.append(indent + l)
    +                    ln += w  #
    +                lines.append(indent + ln)
             return lines
    @@ -1136,8 +1146,9 @@ height (int, optional): Fixed height of table. Defaults to being unset. Width is still given precedence. If given, table cells will crop text rather than expand vertically. - evenwidth (bool, optional): Used with the `width` keyword. Adjusts columns to have as even width as - possible. This often looks best also for mixed-length tables. Default is `False`. + evenwidth (bool, optional): Used with the `width` keyword. Adjusts columns to have as + even width as possible. This often looks best also for mixed-length tables. Default + is `False`. maxwidth (int, optional): This will set a maximum width of the table while allowing it to be smaller. Only if it grows wider than this size will it be resized by expanding horizontally (or crop `height` is given). @@ -1384,7 +1395,8 @@ self.ncols = ncols self.nrows = nrowmax - # add borders - these add to the width/height, so we must do this before calculating width/height + # add borders - these add to the width/height, so we must do this before calculating + # width/height self._borders() # equalize widths within each column @@ -1471,7 +1483,8 @@ except Exception: raise - # equalize heights for each row (we must do this here, since it may have changed to fit new widths) + # equalize heights for each row (we must do this here, since it may have changed to fit new + # widths) cheights = [ max(cell.get_height() for cell in (col[iy] for col in self.worktable)) for iy in range(nrowmax) @@ -1508,31 +1521,13 @@ % (self.height, chmin + locked_height) ) - # now we add all the extra height up to the desired table-height. - # We do this so that the tallest cells gets expanded first (and - # thus avoid getting cropped) - - even = self.height % 2 == 0 - correction = 0 - while correction < excess: - # expand the cells with the most rows first - if 0 <= correction < nrowmax and nrowmax > 1: - # avoid adding to header first round (looks bad on very small tables) - ci = cheights[1:].index(max(cheights[1:])) + 1 - else: - ci = cheights.index(max(cheights)) - if ci in locked_cols: - # locked row, make sure it's not picked again - cheights[ci] -= 9999 - cheights_min[ci] = locked_cols[ci] - else: - cheights_min[ci] += 1 - # change balance - if ci == 0 and self.header: - # it doesn't look very good if header expands too fast - cheights[ci] -= 2 if even else 3 - cheights[ci] -= 2 if even else 1 - correction += 1 + # Add all the excess at the end of the table + # Note: Older solutions tried to balance individual + # rows' vsize. This could lead to empty rows that + # looked like a bug. This solution instead + # adds empty rows at the end which is less sophisticated + # but much more visually consistent. + cheights_min[-1] += excess cheights = cheights_min # we must tell cells to crop instead of expanding @@ -1820,11 +1815,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/utils/gametime.html b/docs/0.9.5/_modules/evennia/utils/gametime.html index e044562734..bd26109c0b 100644 --- a/docs/0.9.5/_modules/evennia/utils/gametime.html +++ b/docs/0.9.5/_modules/evennia/utils/gametime.html @@ -47,10 +47,10 @@ It also supplies some useful methods to convert between in-mud time and real-world time as well allows to get the total runtime of the server and the current uptime. + """ import time -from calendar import monthrange from datetime import datetime, timedelta from django.db.utils import OperationalError @@ -70,6 +70,7 @@ try: GAME_TIME_OFFSET = ServerConfig.objects.conf("gametime_offset", default=0) except OperationalError: + # the db is not initialized print("Gametime offset could not load - db not set up.") GAME_TIME_OFFSET = 0 @@ -103,8 +104,10 @@
    [docs] def at_repeat(self): """Call the callback and reset interval.""" callback = self.db.callback + args = self.db.schedule_args or [] + kwargs = self.db.schedule_kwargs or {} if callback: - callback() + callback(*args, **kwargs) seconds = real_seconds_until(**self.db.gametime) self.restart(interval=seconds)
    @@ -259,7 +262,8 @@
    [docs]def schedule( - callback, repeat=False, sec=None, min=None, hour=None, day=None, month=None, year=None + callback, repeat=False, sec=None, min=None, hour=None, day=None, month=None, year=None, + *args, **kwargs ): """ Call a callback at a given in-game time. @@ -267,7 +271,8 @@ Args: callback (function): The callback function that will be called. Note that the callback must be a module-level function, since the script will - be persistent. + be persistent. The callable should be on form `callable(*args, **kwargs)` + where args/kwargs are passed into this schedule. repeat (bool, optional): Defines if the callback should be called regularly at the specified time. sec (int or None): Number of absolute game seconds at which to run repeat. @@ -276,13 +281,18 @@ day (int or None): Number of absolute days. month (int or None): Number of absolute months. year (int or None): Number of absolute years. + *args, **kwargs: Will be passed into the callable. These must be possible + to store in Attributes on the generated scheduling Script. Returns: script (Script): The created Script handling the sceduling. Examples: - schedule(func, min=5, sec=0) # Will call 5 minutes past the next (in-game) hour. - schedule(func, hour=2, min=30, sec=0) # Will call the next (in-game) day at 02:30. + :: + + schedule(func, min=5, sec=0) # Will call 5 minutes past the next (in-game) hour. + schedule(func, hour=2, min=30, sec=0) # Will call the next (in-game) day at 02:30. + """ seconds = real_seconds_until(sec=sec, min=min, hour=hour, day=day, month=month, year=year) script = create_script( @@ -302,6 +312,8 @@ "month": month, "year": year, } + script.db.schedule_args = args + script.db.schedule_kwargs = kwargs return script
    @@ -339,11 +351,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 0e0d388696..11b3e1df44 100644 --- a/docs/0.9.5/_modules/evennia/utils/idmapper/manager.html +++ b/docs/0.9.5/_modules/evennia/utils/idmapper/manager.html @@ -99,11 +99,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 2dd992fed9..4041f4e9e5 100644 --- a/docs/0.9.5/_modules/evennia/utils/idmapper/models.html +++ b/docs/0.9.5/_modules/evennia/utils/idmapper/models.html @@ -106,7 +106,8 @@ return super(SharedMemoryModelBase, cls).__call__(*args, **kwargs) instance_key = cls._get_cache_key(args, kwargs) - # depending on the arguments, we might not be able to infer the PK, so in that case we create a new instance + # depending on the arguments, we might not be able to infer the PK, so in that case we + # create a new instance if instance_key is None: return new_instance() cached_instance = cls.get_cached_instance(instance_key) @@ -197,9 +198,9 @@ if isinstance(value, (str, int)): value = to_str(value) if value.isdigit() or value.startswith("#"): - # we also allow setting using dbrefs, if so we try to load the matching object. - # (we assume the object is of the same type as the class holding the field, if - # not a custom handler must be used for that field) + # we also allow setting using dbrefs, if so we try to load the matching + # object. (we assume the object is of the same type as the class holding + # the field, if not a custom handler must be used for that field) dbid = dbref(value, reqhash=False) if dbid: model = _GA(cls, "_meta").get_field(fname).model @@ -309,21 +310,24 @@ pk = cls._meta.pks[0] else: pk = cls._meta.pk - # get the index of the pk in the class fields. this should be calculated *once*, but isn't atm + # get the index of the pk in the class fields. this should be calculated *once*, but isn't + # atm pk_position = cls._meta.fields.index(pk) if len(args) > pk_position: # if it's in the args, we can get it easily by index result = args[pk_position] elif pk.attname in kwargs: - # retrieve the pk value. Note that we use attname instead of name, to handle the case where the pk is a - # a ForeignKey. + # retrieve the pk value. Note that we use attname instead of name, to handle the case + # where the pk is a a ForeignKey. result = kwargs[pk.attname] elif pk.name != pk.attname and pk.name in kwargs: - # ok we couldn't find the value, but maybe it's a FK and we can find the corresponding object instead + # ok we couldn't find the value, but maybe it's a FK and we can find the corresponding + # object instead result = kwargs[pk.name] if result is not None and isinstance(result, Model): - # if the pk value happens to be a model instance (which can happen wich a FK), we'd rather use its own pk as the key + # if the pk value happens to be a model instance (which can happen wich a FK), we'd + # rather use its own pk as the key result = result._get_pk_val() return result @@ -739,11 +743,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 7a14dfe0ca..16933073d6 100644 --- a/docs/0.9.5/_modules/evennia/utils/idmapper/tests.html +++ b/docs/0.9.5/_modules/evennia/utils/idmapper/tests.html @@ -144,11 +144,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/utils/inlinefuncs.html b/docs/0.9.5/_modules/evennia/utils/inlinefuncs.html deleted file mode 100644 index 2cabef803a..0000000000 --- a/docs/0.9.5/_modules/evennia/utils/inlinefuncs.html +++ /dev/null @@ -1,728 +0,0 @@ - - - - - - - - evennia.utils.inlinefuncs — Evennia 0.9.5 documentation - - - - - - - - - - - - - - - -
    -
    -
    -
    - -

    Source code for evennia.utils.inlinefuncs

    -"""
    -Inline functions (nested form).
    -
    -This parser accepts nested inlinefunctions on the form
    -::
    -
    -    $funcname(arg, arg, ...)
    -
    -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 "(". 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 `}`
    -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
    -characters.
    -
    -The available inlinefuncs are defined as global-level functions in
    -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:
    -::
    -
    -    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
    -inlinefunc in-game - the only part that will be available from
    -in-game. `**kwargs` are not supported from in-game but are only used
    -internally by Evennia to make details about the caller available to
    -the function. The kwarg passed to all functions is `session`, the
    -Sessionobject for the object seeing the string. This may be `None` if
    -the string is sent to a non-puppetable object. The inlinefunc should
    -never raise an exception.
    -
    -There are two reserved function names:
    -
    -- "nomatch": This is called if the user uses a functionname that is
    -  not registered. The nomatch function will get the name of the
    -  not-found function as its first argument followed by the normal
    -  arguments to the given function. If not defined the default effect is
    -  to print `<UNKNOWN>` to replace the unknown function.
    -- "stackfull": This is called when the maximum nested function stack is reached.
    -  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 not completely closing all inlinefunc blocks, will lead
    -to the entire string remaining unparsed.
    -
    -----
    -
    -"""
    -
    -import re
    -import fnmatch
    -import random as base_random
    -from django.conf import settings
    -
    -from evennia.utils import utils, logger
    -
    -# The stack size is a security measure. Set to <=0 to disable.
    -_STACK_MAXSIZE = settings.INLINEFUNC_STACK_MAXSIZE
    -
    -
    -# example/testing inline functions
    -
    -
    -
    [docs]def random(*args, **kwargs): - """ - Inlinefunc. Returns a random number between - 0 and 1, from 0 to a maximum value, or within a given range (inclusive). - - Args: - minval (str, optional): Minimum value. If not given, assumed 0. - maxval (str, optional): Maximum value. - - Keyword argumuents: - session (Session): Session getting the string. - - Notes: - If either of the min/maxvalue has a '.' in it, a floating-point random - value will be returned. Otherwise it will be an integer value in the - given range. - - Example: - - - `$random()` - - `$random(5)` - - `$random(5, 10)` - - """ - nargs = len(args) - if nargs == 1: - # only maxval given - minval, maxval = "0", args[0] - elif nargs > 1: - minval, maxval = args[:2] - else: - minval, maxval = ("0", "1") - - if "." in minval or "." in maxval: - # float mode - try: - minval, maxval = float(minval), float(maxval) - except ValueError: - minval, maxval = 0, 1 - return "{:.2f}".format(minval + maxval * base_random.random()) - else: - # int mode - try: - minval, maxval = int(minval), int(maxval) - except ValueError: - minval, maxval = 0, 1 - return str(base_random.randint(minval, maxval))
    - - -
    [docs]def pad(*args, **kwargs): - """ - Inlinefunc. Pads text to given width. - - Args: - text (str, optional): Text to pad. - width (str, optional): Will be converted to integer. Width - of padding. - align (str, optional): Alignment of padding; one of 'c', 'l' or 'r'. - fillchar (str, optional): Character used for padding. Defaults to a - space. - - Keyword Args: - session (Session): Session performing the pad. - - Example: - `$pad(text, width, align, fillchar)` - - """ - text, width, align, fillchar = "", 78, "c", " " - nargs = len(args) - if nargs > 0: - text = args[0] - if nargs > 1: - width = int(args[1]) if args[1].strip().isdigit() else 78 - if nargs > 2: - align = args[2] if args[2] in ("c", "l", "r") else "c" - if nargs > 3: - fillchar = args[3] - return utils.pad(text, width=width, align=align, fillchar=fillchar)
    - - -
    [docs]def crop(*args, **kwargs): - """ - Inlinefunc. Crops ingoing text to given widths. - - Args: - text (str, optional): Text to crop. - width (str, optional): Will be converted to an integer. Width of - crop in characters. - suffix (str, optional): End string to mark the fact that a part - of the string was cropped. Defaults to `[...]`. - Keyword Args: - session (Session): Session performing the crop. - - Example: - `$crop(text, width=78, suffix='[...]')` - - """ - text, width, suffix = "", 78, "[...]" - nargs = len(args) - if nargs > 0: - text = args[0] - if nargs > 1: - width = int(args[1]) if args[1].strip().isdigit() else 78 - if nargs > 2: - suffix = args[2] - return utils.crop(text, width=width, suffix=suffix)
    - - -
    [docs]def space(*args, **kwargs): - """ - Inlinefunc. Inserts an arbitrary number of spaces. Defaults to 4 spaces. - - Args: - spaces (int, optional): The number of spaces to insert. - - Keyword Args: - session (Session): Session performing the crop. - - Example: - `$space(20)` - - """ - width = 4 - if args: - width = abs(int(args[0])) if args[0].strip().isdigit() else 4 - return " " * width
    - - -
    [docs]def clr(*args, **kwargs): - """ - Inlinefunc. Colorizes nested text. - - Args: - startclr (str, optional): An ANSI color abbreviation without the - prefix `|`, such as `r` (red foreground) or `[r` (red background). - text (str, optional): Text - endclr (str, optional): The color to use at the end of the string. Defaults - to `|n` (reset-color). - Keyword Args: - session (Session): Session object triggering inlinefunc. - - Example: - `$clr(startclr, text, endclr)` - - """ - text = "" - nargs = len(args) - if nargs > 0: - color = args[0].strip() - if nargs > 1: - text = args[1] - text = "|" + color + text - if nargs > 2: - text += "|" + args[2].strip() - else: - text += "|n" - return text
    - - -
    [docs]def null(*args, **kwargs): - return args[0] if args else ""
    - - -
    [docs]def nomatch(name, *args, **kwargs): - """ - Default implementation of nomatch returns the function as-is as a string. - - """ - kwargs.pop("inlinefunc_stack_depth", None) - kwargs.pop("session") - - return "${name}({args}{kwargs})".format( - name=name, - args=",".join(args), - kwargs=",".join("{}={}".format(key, val) for key, val in kwargs.items()), - )
    - - -_INLINE_FUNCS = {} - -# we specify a default nomatch function to use if no matching func was -# found. This will be overloaded by any nomatch function defined in -# the imported modules. -_DEFAULT_FUNCS = { - "nomatch": lambda *args, **kwargs: "<UNKNOWN>", - "stackfull": lambda *args, **kwargs: "\n (not parsed: ", -} - -_INLINE_FUNCS.update(_DEFAULT_FUNCS) - -# load custom inline func modules. -for module in utils.make_iter(settings.INLINEFUNC_MODULES): - try: - _INLINE_FUNCS.update(utils.callables_from_module(module)) - except ImportError as err: - if module == "server.conf.inlinefuncs": - # a temporary warning since the default module changed name - raise ImportError( - "Error: %s\nPossible reason: mygame/server/conf/inlinefunc.py should " - "be renamed to mygame/server/conf/inlinefuncs.py (note " - "the S at the end)." % err - ) - else: - raise - - -# regex definitions - -_RE_STARTTOKEN = re.compile(r"(?<!\\)\$(\w+)\(") # unescaped $funcname( (start of function call) - -# note: this regex can be experimented with at https://regex101.com/r/kGR3vE/2 -_RE_TOKEN = re.compile( - r""" - (?<!\\)\'\'\'(?P<singlequote>.*?)(?<!\\)\'\'\'| # single-triplets escape all inside - (?<!\\)\"\"\"(?P<doublequote>.*?)(?<!\\)\"\"\"| # double-triplets escape all inside - (?P<comma>(?<!\\)\,)| # , (argument sep) - (?P<end>(?<!\\)\))| # ) (possible end of func call) - (?P<leftparens>(?<!\\)\()| # ( (lone left-parens) - (?P<start>(?<!\\)\$\w+\()| # $funcname (start of func call) - (?P<escaped> # escaped tokens to re-insert sans backslash - \\\'|\\\"|\\\)|\\\$\w+\(|\\\()| - (?P<rest> # everything else to re-insert verbatim - \$(?!\w+\()|\'|\"|\\|[^),$\'\"\\\(]+)""", - re.UNICODE | re.IGNORECASE | re.VERBOSE | re.DOTALL, -) - -# Cache for function lookups. -_PARSING_CACHE = utils.LimitedSizeOrderedDict(size_limit=1000) - - -
    [docs]class ParseStack(list): - """ - Custom stack that always concatenates strings together when the - strings are added next to one another. Tuples are stored - separately and None is used to mark that a string should be broken - up into a new chunk. Below is the resulting stack after separately - appending 3 strings, None, 2 strings, a tuple and finally 2 - strings: - - [string + string + string, - None - string + string, - tuple, - string + string] - - """ - -
    [docs] def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - # always start stack with the empty string - list.append(self, "") - # indicates if the top of the stack is a string or not - self._string_last = True
    - - def __eq__(self, other): - return ( - super().__eq__(other) - and hasattr(other, "_string_last") - and self._string_last == other._string_last - ) - - def __ne__(self, other): - return not self.__eq__(other) - -
    [docs] def append(self, item): - """ - The stack will merge strings, add other things as normal - """ - if isinstance(item, str): - if self._string_last: - self[-1] += item - else: - list.append(self, item) - self._string_last = True - else: - # everything else is added as normal - list.append(self, item) - self._string_last = False
    - - -
    [docs]class InlinefuncError(RuntimeError): - pass
    - - -
    [docs]def parse_inlinefunc(string, strip=False, available_funcs=None, stacktrace=False, **kwargs): - """ - Parse the incoming string. - - Args: - string (str): The incoming string to parse. - strip (bool, optional): Whether to strip function calls rather than - execute them. - available_funcs (dict, optional): Define an alternative source of functions to parse for. - If unset, use the functions found through `settings.INLINEFUNC_MODULES`. - stacktrace (bool, optional): If set, print the stacktrace to log. - Keyword Args: - session (Session): This is sent to this function by Evennia when triggering - it. It is passed to the inlinefunc. - kwargs (any): All other kwargs are also passed on to the inlinefunc. - - - """ - global _PARSING_CACHE - usecache = False - if not available_funcs: - available_funcs = _INLINE_FUNCS - usecache = True - else: - # make sure the default keys are available, but also allow overriding - tmp = _DEFAULT_FUNCS.copy() - tmp.update(available_funcs) - available_funcs = tmp - - if usecache and string in _PARSING_CACHE: - # stack is already cached - stack = _PARSING_CACHE[string] - elif not _RE_STARTTOKEN.search(string): - # if there are no unescaped start tokens at all, return immediately. - return string - else: - # no cached stack; build a new stack and continue - stack = ParseStack() - - # process string on stack - ncallable = 0 - nlparens = 0 - nvalid = 0 - - if stacktrace: - out = "STRING: {} =>".format(string) - print(out) - logger.log_info(out) - - for match in _RE_TOKEN.finditer(string): - gdict = match.groupdict() - - if stacktrace: - out = " MATCH: {}".format({key: val for key, val in gdict.items() if val}) - print(out) - logger.log_info(out) - - if gdict["singlequote"]: - stack.append(gdict["singlequote"]) - elif gdict["doublequote"]: - stack.append(gdict["doublequote"]) - elif gdict["leftparens"]: - # we have a left-parens inside a callable - if ncallable: - nlparens += 1 - stack.append("(") - elif gdict["end"]: - if nlparens > 0: - nlparens -= 1 - stack.append(")") - continue - if ncallable <= 0: - stack.append(")") - continue - args = [] - while stack: - operation = stack.pop() - if callable(operation): - if not strip: - stack.append((operation, [arg for arg in reversed(args)])) - ncallable -= 1 - break - else: - args.append(operation) - elif gdict["start"]: - funcname = _RE_STARTTOKEN.match(gdict["start"]).group(1) - try: - # try to fetch the matching inlinefunc from storage - stack.append(available_funcs[funcname]) - nvalid += 1 - except KeyError: - stack.append(available_funcs["nomatch"]) - stack.append(funcname) - stack.append(None) - ncallable += 1 - elif gdict["escaped"]: - # escaped tokens - token = gdict["escaped"].lstrip("\\") - stack.append(token) - elif gdict["comma"]: - if ncallable > 0: - # commas outside strings and inside a callable are - # used to mark argument separation - we use None - # in the stack to indicate such a separation. - stack.append(None) - else: - # no callable active - just a string - stack.append(",") - else: - # the rest - stack.append(gdict["rest"]) - - if ncallable > 0: - # this means not all inlinefuncs were complete - return string - - if _STACK_MAXSIZE > 0 and _STACK_MAXSIZE < nvalid: - # if stack is larger than limit, throw away parsing - return string + available_funcs["stackfull"](*args, **kwargs) - elif usecache: - # cache the stack - we do this also if we don't check the cache above - _PARSING_CACHE[string] = stack - - # run the stack recursively - def _run_stack(item, depth=0): - retval = item - if isinstance(item, tuple): - if strip: - return "" - else: - func, arglist = item - args = [""] - for arg in arglist: - if arg is None: - # an argument-separating comma - start a new arg - args.append("") - else: - # all other args should merge into one string - args[-1] += _run_stack(arg, depth=depth + 1) - # execute the inlinefunc at this point or strip it. - kwargs["inlinefunc_stack_depth"] = depth - retval = "" if strip else func(*args, **kwargs) - return utils.to_str(retval) - - retval = "".join(_run_stack(item) for item in stack) - if stacktrace: - out = "STACK: \n{} => {}\n".format(stack, retval) - print(out) - logger.log_info(out) - - # execute the stack - return retval
    - - -
    [docs]def raw(string): - """ - Escape all inlinefuncs in a string so they won't get parsed. - - Args: - string (str): String with inlinefuncs to escape. - """ - - def _escape(match): - return "\\" + match.group(0) - - return _RE_STARTTOKEN.sub(_escape, string)
    - - -# -# Nick templating -# - - -""" -This supports the use of replacement templates in nicks: - -This happens in two steps: - -1) The user supplies a template that is converted to a regex according - to the unix-like templating language. -2) This regex is tested against nicks depending on which nick replacement - strategy is considered (most commonly inputline). -3) If there is a template match and there are templating markers, - these are replaced with the arguments actually given. - -@desc $1 $2 $3 - -This will be converted to the following regex: - -\@desc (?P<1>\w+) (?P<2>\w+) $(?P<3>\w+) - -Supported template markers (through fnmatch) - * matches anything (non-greedy) -> .*? - ? matches any single character -> - [seq] matches any entry in sequence - [!seq] matches entries not in sequence -Custom arg markers - $N argument position (1-99) - -""" -_RE_NICK_ARG = re.compile(r"\\(\$)([1-9][0-9]?)") -_RE_NICK_TEMPLATE_ARG = re.compile(r"(\$)([1-9][0-9]?)") -_RE_NICK_SPACE = re.compile(r"\\ ") - - -
    [docs]class NickTemplateInvalid(ValueError): - pass
    - - -
    [docs]def initialize_nick_templates(in_template, out_template): - """ - Initialize the nick templates for matching and remapping a string. - - 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`. - - Returns: - 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. - - """ - # create the regex for in_template - regex_string = fnmatch.translate(in_template) - n_inargs = len(_RE_NICK_ARG.findall(regex_string)) - regex_string = _RE_NICK_SPACE.sub("\s+", regex_string) - regex_string = _RE_NICK_ARG.sub(lambda m: "(?P<arg%s>.+?)" % m.group(2), regex_string) - - # create the out_template - template_string = _RE_NICK_TEMPLATE_ARG.sub(lambda m: "{arg%s}" % m.group(2), out_template) - - # validate the tempaltes - they should at least have the same number of args - n_outargs = len(_RE_NICK_TEMPLATE_ARG.findall(out_template)) - if n_inargs != n_outargs: - raise NickTemplateInvalid - - return re.compile(regex_string), template_string
    - - -
    [docs]def parse_nick_template(string, template_regex, outtemplate): - """ - Parse a text using a template and map it to another template - - Args: - string (str): The input string to processj - template_regex (regex): A template regex created with - initialize_nick_template. - outtemplate (str): The template to which to map the matches - produced by the template_regex. This should have $1, $2, - etc to match the regex. - - """ - match = template_regex.match(string) - if match: - return outtemplate.format(**match.groupdict()) - return string
    -
    - -
    -
    -
    -
    - -
    -
    - - - - \ No newline at end of file diff --git a/docs/0.9.5/_modules/evennia/utils/logger.html b/docs/0.9.5/_modules/evennia/utils/logger.html index efafd3cf7d..0871f2a231 100644 --- a/docs/0.9.5/_modules/evennia/utils/logger.html +++ b/docs/0.9.5/_modules/evennia/utils/logger.html @@ -59,7 +59,6 @@ import os import time -import glob from datetime import datetime from traceback import format_exc from twisted.python import log, logfile @@ -90,6 +89,7 @@ Returns: timestring (str): A formatted string of the given time. + """ when = when if when else time.time() @@ -169,6 +169,7 @@ server.log.2020_01_29 server.log.2020_01_29__1 server.log.2020_01_29__2 + """ suffix = "" copy_suffix = 0 @@ -189,7 +190,10 @@ return suffix
    [docs] def write(self, data): - "Write data to log file" + """ + Write data to log file + + """ logfile.BaseLogFile.write(self, data) self.lastDate = max(self.lastDate, self.toDate()) self.size += len(data)
    @@ -198,6 +202,7 @@
    [docs]class PortalLogObserver(log.FileLogObserver): """ Reformat logging + """ timeFormat = None @@ -332,6 +337,7 @@ Prints any generic debugging/informative info that should appear in the log. infomsg: (string) The message to be logged. + """ try: infomsg = str(infomsg) @@ -350,6 +356,7 @@ Args: depmsg (str): The deprecation message to log. + """ try: depmsg = str(depmsg) @@ -368,6 +375,7 @@ Args: secmsg (str): The security message to log. + """ try: secmsg = str(secmsg) @@ -389,6 +397,7 @@ the LogFile's rotate method in order to append some of the last lines of the previous log to the start of the new log, in order to preserve a continuous chat history for channel log files. + """ # we delay import of settings to keep logger module as free @@ -400,12 +409,15 @@ _CHANNEL_LOG_NUM_TAIL_LINES = settings.CHANNEL_LOG_NUM_TAIL_LINES num_lines_to_append = _CHANNEL_LOG_NUM_TAIL_LINES -
    [docs] def rotate(self): +
    [docs] def rotate(self, num_lines_to_append=None): """ Rotates our log file and appends some number of lines from the previous log to the start of the new one. + """ - append_tail = self.num_lines_to_append > 0 + append_tail = (num_lines_to_append + if num_lines_to_append is not None + else self.num_lines_to_append) if not append_tail: logfile.LogFile.rotate(self) return @@ -418,9 +430,11 @@ """ Convenience method for accessing our _file attribute's seek method, which is used in tail_log_function. + Args: *args: Same args as file.seek **kwargs: Same kwargs as file.seek + """ return self._file.seek(*args, **kwargs)
    @@ -428,12 +442,14 @@ """ Convenience method for accessing our _file attribute's readlines method, which is used in tail_log_function. + Args: *args: same args as file.readlines **kwargs: same kwargs as file.readlines Returns: lines (list): lines from our _file attribute. + """ lines = [] for line in self._file.readlines(*args, **kwargs): @@ -524,6 +540,43 @@ deferToThread(callback, filehandle, msg).addErrback(errback)
    +
    [docs]def log_file_exists(filename="game.log"): + """ + Determine if a log-file already exists. + + Args: + filename (str): The filename (within the log-dir). + + Returns: + bool: If the log file exists or not. + + """ + global _LOGDIR + if not _LOGDIR: + from django.conf import settings + _LOGDIR = settings.LOG_DIR + + filename = os.path.join(_LOGDIR, filename) + return os.path.exists(filename)
    + + +
    [docs]def rotate_log_file(filename="game.log", num_lines_to_append=None): + """ + Force-rotate a log-file, without + + Args: + filename (str): The log file, located in settings.LOG_DIR. + num_lines_to_append (int, optional): Include N number of + lines from previous file in new one. If `None`, use default. + Set to 0 to include no lines. + + """ + if log_file_exists(filename): + file_handle = _open_log_file(filename) + if file_handle: + file_handle.rotate(num_lines_to_append=num_lines_to_append)
    + +
    [docs]def tail_log_file(filename, offset, nlines, callback=None): """ Return the tail of the log file. @@ -609,11 +662,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/utils/optionclasses.html b/docs/0.9.5/_modules/evennia/utils/optionclasses.html index 76a3b5562c..ec74740a4a 100644 --- a/docs/0.9.5/_modules/evennia/utils/optionclasses.html +++ b/docs/0.9.5/_modules/evennia/utils/optionclasses.html @@ -41,13 +41,7 @@

    Source code for evennia.utils.optionclasses

    -"""
    -Option classes store user- or server Options in a generic way
    -while also providing validation.
    -
    -"""
    -
    -import datetime
    +import datetime
     from evennia import logger
     from evennia.utils.ansi import strip_ansi
     from evennia.utils.validatorfuncs import _TZ_DICT
    @@ -159,8 +153,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 @@ -395,11 +389,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/utils/optionhandler.html b/docs/0.9.5/_modules/evennia/utils/optionhandler.html index cd93184823..11dcce0860 100644 --- a/docs/0.9.5/_modules/evennia/utils/optionhandler.html +++ b/docs/0.9.5/_modules/evennia/utils/optionhandler.html @@ -43,12 +43,13 @@

    Source code for evennia.utils.optionhandler

     from evennia.utils.utils import string_partial_matching
     from evennia.utils.containers import OPTION_CLASSES
    +from django.utils.translation import gettext as _
     
     _GA = object.__getattribute__
     _SA = object.__setattr__
     
     
    -
    [docs]class InMemorySaveHandler(object): +
    [docs]class InMemorySaveHandler: """ Fallback SaveHandler, implementing a minimum of the required save mechanism and storing data in memory. @@ -65,7 +66,7 @@ return self.storage.get(key, default)
    -
    [docs]class OptionHandler(object): +
    [docs]class OptionHandler: """ This is a generic Option handler. Retrieve options either as properties on this handler or by using the .get method. @@ -100,6 +101,7 @@ A common one to pass would be AttributeHandler.get. save_kwargs (any): Optional extra kwargs to pass into `savefunc` above. load_kwargs (any): Optional extra kwargs to pass into `loadfunc` above. + Notes: Both loadfunc and savefunc must be specified. If only one is given, the other will be ignored and in-memory storage will be used. @@ -176,7 +178,7 @@ """ if key not in self.options_dict: if raise_error: - raise KeyError("Option not found!") + raise KeyError(_("Option not found!")) return default # get the options or load/recache it op_found = self.options.get(key) or self._load_option(key) @@ -197,12 +199,14 @@ """ if not key: - raise ValueError("Option field blank!") + raise ValueError(_("Option field blank!")) match = string_partial_matching(list(self.options_dict.keys()), key, ret_index=False) if not match: - raise ValueError("Option not found!") + raise ValueError(_("Option not found!")) if len(match) > 1: - raise ValueError(f"Multiple matches: {', '.join(match)}. Please be more specific.") + raise ValueError(_("Multiple matches:") + + f"{', '.join(match)}. " + + _("Please be more specific.")) match = match[0] op = self.get(match, return_obj=True) op.set(value, **kwargs) @@ -246,11 +250,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/utils/picklefield.html b/docs/0.9.5/_modules/evennia/utils/picklefield.html index 32d6d0f634..ab6a240921 100644 --- a/docs/0.9.5/_modules/evennia/utils/picklefield.html +++ b/docs/0.9.5/_modules/evennia/utils/picklefield.html @@ -329,7 +329,7 @@ return value
    [docs] def value_to_string(self, obj): - value = self._get_val_from_obj(obj) + value = self.value_from_object(obj) return self.get_db_prep_value(value)
    [docs] def get_internal_type(self): @@ -368,11 +368,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/utils/search.html b/docs/0.9.5/_modules/evennia/utils/search.html index 7b397d7029..63e2a89285 100644 --- a/docs/0.9.5/_modules/evennia/utils/search.html +++ b/docs/0.9.5/_modules/evennia/utils/search.html @@ -80,7 +80,7 @@ "search_message", "search_channel", "search_help_entry", - "search_tag", # object-tag + "search_tag", "search_script_tag", "search_account_tag", "search_channel_tag", @@ -98,13 +98,13 @@ Tag = ContentType.objects.get(app_label="typeclasses", model="tag").model_class() except OperationalError: # this is a fallback used during tests/doc building - print("Couldn't initialize search managers - db not set up.") - from evennia.objects.models import ObjectDB - from evennia.accounts.models import AccountDB - from evennia.scripts.models import ScriptDB - from evennia.comms.models import Msg, ChannelDB - from evennia.help.models import HelpEntry - from evennia.typeclasses.tags import Tag + print("Couldn't initialize search managers - db not set up.") + from evennia.objects.models import ObjectDB + from evennia.accounts.models import AccountDB + from evennia.scripts.models import ScriptDB + from evennia.comms.models import Msg, ChannelDB + from evennia.help.models import HelpEntry + from evennia.typeclasses.tags import Tag # noqa # ------------------------------------------------------------------- # Search manager-wrappers @@ -430,11 +430,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 ff14bc0879..749e4ae037 100644 --- a/docs/0.9.5/_modules/evennia/utils/test_resources.html +++ b/docs/0.9.5/_modules/evennia/utils/test_resources.html @@ -82,18 +82,18 @@ should directly give the module pathname to unload. Example: - :: - # (in a test method) - unload_module(foo) - with mock.patch("foo.GLOBALTHING", "mockval"): - import foo - ... # test code using foo.GLOBALTHING, now set to 'mockval' + ```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' + ``` - Notes: - This allows for mocking constants global to the module, since - otherwise those would not be mocked (since a module is only - loaded once). + 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,11 +241,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/utils/text2html.html b/docs/0.9.5/_modules/evennia/utils/text2html.html index 2f39a975e7..0cf22aa7c8 100644 --- a/docs/0.9.5/_modules/evennia/utils/text2html.html +++ b/docs/0.9.5/_modules/evennia/utils/text2html.html @@ -146,9 +146,10 @@ ) re_dblspace = re.compile(r" {2,}", re.M) re_url = re.compile( - r'((?:ftp|www|https?)\W+(?:(?!\.(?:\s|$)|&\w+;)[^"\',;$*^\\(){}<>\[\]\s])+)(\.(?:\s|$)|&\w+;|)' + r'(?<!=")((?:ftp|www|https?)\W+(?:(?!\.(?:\s|$)|&\w+;)[^"\',;$*^\\(){}<>\[\]\s])+)(\.(?:\s|$)|&\w+;|)' ) re_mxplink = re.compile(r"\|lc(.*?)\|lt(.*?)\|le", re.DOTALL) + re_mxpurl = re.compile(r"\|lu(.*?)\|lt(.*?)\|le", re.DOTALL) def _sub_bgfg(self, colormatch): # print("colormatch.groups()", colormatch.groups()) @@ -333,6 +334,21 @@ ) return val +
    [docs] def sub_mxp_urls(self, match): + """ + Helper method to be passed to re.sub, + replaces MXP links with HTML code. + Args: + match (re.Matchobject): Match for substitution. + Returns: + text (str): Processed text. + """ + url, text = [grp.replace('"', "\\&quot;") for grp in match.groups()] + val = ( + r"""<a id="mxplink" href="{url}" target="_blank">{text}</a>""".format(url=url, text=text) + ) + return val
    +
    [docs] def sub_text(self, match): """ Helper method to be passed to re.sub, @@ -380,6 +396,7 @@ # convert all ansi to html result = re.sub(self.re_string, self.sub_text, text) result = re.sub(self.re_mxplink, self.sub_mxp_links, result) + result = re.sub(self.re_mxpurl, self.sub_mxp_urls, result) result = self.re_color(result) result = self.re_bold(result) result = self.re_underline(result) @@ -434,11 +451,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/utils/utils.html b/docs/0.9.5/_modules/evennia/utils/utils.html index 2d7a8db299..e097540c87 100644 --- a/docs/0.9.5/_modules/evennia/utils/utils.html +++ b/docs/0.9.5/_modules/evennia/utils/utils.html @@ -52,7 +52,6 @@ import os import gc import sys -import copy import types import math import re @@ -63,31 +62,40 @@ import importlib import importlib.util import importlib.machinery +from ast import literal_eval +from simpleeval import simple_eval from unicodedata import east_asian_width from twisted.internet.task import deferLater from twisted.internet.defer import returnValue # noqa - used as import target +from twisted.internet import threads, reactor from os.path import join as osjoin from inspect import ismodule, trace, getmembers, getmodule, getmro from collections import defaultdict, OrderedDict -from twisted.internet import threads, reactor from django.conf import settings from django.utils import timezone +from django.utils.html import strip_tags from django.utils.translation import gettext as _ from django.apps import apps from django.core.validators import validate_email as django_validate_email from django.core.exceptions import ValidationError as DjangoValidationError + from evennia.utils import logger _MULTIMATCH_TEMPLATE = settings.SEARCH_MULTIMATCH_TEMPLATE _EVENNIA_DIR = settings.EVENNIA_DIR _GAME_DIR = settings.GAME_DIR ENCODINGS = settings.ENCODINGS + +_TASK_HANDLER = None +_TICKER_HANDLER = None +_STRIP_UNSAFE_TOKENS = None + _GA = object.__getattribute__ _SA = object.__setattr__ _DA = object.__delattr__ -
    [docs]def is_iter(obj): +
    [docs]def is_iter(obj): """ Checks if an object behaves iterably. @@ -112,7 +120,7 @@ return False
    -
    [docs]def make_iter(obj): +
    [docs]def make_iter(obj): """ Makes sure that the object is always iterable. @@ -127,7 +135,7 @@ return not is_iter(obj) and [obj] or obj
    -
    [docs]def wrap(text, width=None, indent=0): +
    [docs]def wrap(text, width=None, indent=0): """ Safely wrap text to a certain number of characters. @@ -151,7 +159,7 @@ fill = wrap -
    [docs]def pad(text, width=None, align="c", fillchar=" "): +
    [docs]def pad(text, width=None, align="c", fillchar=" "): """ Pads to a given width. @@ -177,7 +185,7 @@ return text.center(width, fillchar)
    -
    [docs]def crop(text, width=None, suffix="[...]"): +
    [docs]def crop(text, width=None, suffix="[...]"): """ Crop text to a certain width, throwing away text from too-long lines. @@ -205,16 +213,18 @@ return to_str(text)
    -
    [docs]def dedent(text, baseline_index=None): +
    [docs]def dedent(text, baseline_index=None, indent=None): """ Safely clean all whitespace at the left of a paragraph. Args: text (str): The text to dedent. - baseline_index (int or None, optional): Which row to use as a 'base' + baseline_index (int, optional): Which row to use as a 'base' for the indentation. Lines will be dedented to this level but no further. If None, indent so as to completely deindent the least indented text. + indent (int, optional): If given, force all lines to this indent. + This bypasses `baseline_index`. Returns: text (str): Dedented string. @@ -227,18 +237,23 @@ """ if not text: return "" - if baseline_index is None: + if indent is not None: + lines = text.split("\n") + ind = " " * indent + indline = "\n" + ind + return ind + indline.join(line.strip() for line in lines) + elif baseline_index is None: return textwrap.dedent(text) else: lines = text.split("\n") baseline = lines[baseline_index] spaceremove = len(baseline) - len(baseline.lstrip(" ")) return "\n".join( - line[min(spaceremove, len(line) - len(line.lstrip(" "))) :] for line in lines + line[min(spaceremove, len(line) - len(line.lstrip(" "))):] for line in lines )
    -
    [docs]def justify(text, width=None, align="f", indent=0): +
    [docs]def justify(text, width=None, align="f", indent=0): """ Fully justify a text so that it fits inside `width`. When using full justification (default) this will be done by padding between @@ -331,7 +346,7 @@ return "\n".join([indentstring + line for line in lines])
    -
    [docs]def columnize(string, columns=2, spacing=4, align="l", width=None): +
    [docs]def columnize(string, columns=2, spacing=4, align="l", width=None): """ Break a string into a number of columns, using as little vertical space as possible. @@ -373,7 +388,7 @@ cols = [] istart = 0 for irows in nrows: - cols.append(onecol[istart : istart + irows]) + cols.append(onecol[istart: istart + irows]) istart = istart + irows for col in cols: if len(col) < height: @@ -387,7 +402,7 @@ return "\n".join(rows)
    -
    [docs]def iter_to_string(initer, endsep="and", addquote=False): +
    [docs]def iter_to_str(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` @@ -403,23 +418,21 @@ values with double quotes. Returns: - liststr (str): The list represented as a string. + str: The list represented as a string. Examples: ```python - # 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"' + >>> 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"' ``` """ - if not endsep: - endsep = "," - else: + if endsep: endsep = " " + endsep if not initer: return "" @@ -427,18 +440,23 @@ if addquote: if len(initer) == 1: return '"%s"' % initer[0] - return ", ".join('"%s"' % v for v in initer[:-1]) + "%s %s" % (endsep, '"%s"' % initer[-1]) + elif len(initer) == 2: + return '"%s"' % ('"%s "' % endsep).join(str(v) for v in initer) + return ", ".join('"%s"' % v for v in initer[:-1]) + ",%s %s" % (endsep, '"%s"' % initer[-1]) else: if len(initer) == 1: return str(initer[0]) - return ", ".join(str(v) for v in initer[:-1]) + "%s %s" % (endsep, initer[-1])
    + elif len(initer) == 2: + return ("%s " % endsep).join(str(v) for v in initer) + return ", ".join(str(v) for v in initer[:-1]) + ",%s %s" % (endsep, initer[-1])
    -# legacy alias -list_to_string = iter_to_string +# legacy aliases +list_to_string = iter_to_str +iter_to_string = iter_to_str -
    [docs]def wildcard_to_regexp(instring): +
    [docs]def wildcard_to_regexp(instring): """ Converts a player-supplied string that may have wildcards in it to regular expressions. This is useful for name matching. @@ -470,7 +488,7 @@ return regexp_string
    -
    [docs]def time_format(seconds, style=0): +
    [docs]def time_format(seconds, style=0): """ Function to return a 'prettified' version of a value in seconds. @@ -606,7 +624,7 @@ return retval.strip()
    -
    [docs]def datetime_format(dtobj): +
    [docs]def datetime_format(dtobj): """ Pretty-prints the time since a given time. @@ -637,7 +655,7 @@ return timestring
    -
    [docs]def host_os_is(osname): +
    [docs]def host_os_is(osname): """ Check to see if the host OS matches the query. @@ -652,7 +670,7 @@ return os.name == osname
    -
    [docs]def get_evennia_version(mode="long"): +
    [docs]def get_evennia_version(mode="long"): """ Helper method for getting the current evennia version. @@ -678,7 +696,7 @@ return vers
    -
    [docs]def pypath_to_realpath(python_path, file_ending=".py", pypath_prefixes=None): +
    [docs]def pypath_to_realpath(python_path, file_ending=".py", pypath_prefixes=None): """ Converts a dotted Python path to an absolute path under the Evennia library directory or under the current game directory. @@ -738,7 +756,7 @@ return list(set(p for p in paths if os.path.isfile(p)))
    -
    [docs]def dbref(inp, reqhash=True): +
    [docs]def dbref(inp, reqhash=True): """ Converts/checks if input is a valid dbref. @@ -766,7 +784,7 @@ return inp if isinstance(inp, int) else None
    -
    [docs]def dbref_to_obj(inp, objclass, raise_errors=True): +
    [docs]def dbref_to_obj(inp, objclass, raise_errors=True): """ Convert a #dbref to a valid object. @@ -822,7 +840,7 @@ } -
    [docs]def latinify(string, default="?", pure_ascii=False): +
    [docs]def latinify(string, default="?", pure_ascii=False): """ Convert a unicode string to "safe" ascii/latin-1 characters. This is used as a last resort when normal encoding does not work. @@ -876,7 +894,7 @@ return "".join(converted)
    -
    [docs]def to_bytes(text, session=None): +
    [docs]def to_bytes(text, session=None): """ Try to encode the given text to bytes, using encodings from settings or from Session. Will always return a bytes, even if given something that is not str or bytes. @@ -893,7 +911,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. - Note: + Notes: If `text` is already bytes, return it as is. """ @@ -919,7 +937,7 @@ return text.encode(default_encoding, errors="replace")
    -
    [docs]def to_str(text, session=None): +
    [docs]def to_str(text, session=None): """ Try to decode a bytestream to a python str, using encoding schemas from settings or from Session. Will always return a str(), also if not given a str/bytes. @@ -933,7 +951,7 @@ Returns: decoded_text (str): The decoded text. - Note: + Notes: If `text` is already str, return it as is. """ if isinstance(text, str): @@ -958,7 +976,7 @@ return text.decode(default_encoding, errors="replace")
    -
    [docs]def validate_email_address(emailaddress): +
    [docs]def validate_email_address(emailaddress): """ Checks if an email address is syntactically correct. Makes use of the django email-validator for consistency. @@ -981,24 +999,23 @@ return True
    -
    [docs]def inherits_from(obj, parent): +
    [docs]def inherits_from(obj, parent): """ Takes an object and tries to determine if it inherits at *any* distance from parent. Args: - 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. + 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. Returns: inherits_from (bool): If `parent` is a parent to `obj` or not. Notes: - 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). + What differentiates this function from Python's `isinstance()` is the + flexibility in the types allowed for the object and parent being compared. """ @@ -1019,7 +1036,7 @@ return any(1 for obj_path in obj_paths if obj_path == parent_path)
    -
    [docs]def server_services(): +
    [docs]def server_services(): """ Lists all services active on the Server. Observe that since services are launched in memory, this function will only return @@ -1040,14 +1057,13 @@ return server
    -
    [docs]def uses_database(name="sqlite3"): +
    [docs]def uses_database(name="sqlite3"): """ Checks if the game is currently using a given database. This is a 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. @@ -1060,10 +1076,7 @@ return engine == "django.db.backends.%s" % name
    -_TASK_HANDLER = None - - -
    [docs]def delay(timedelay, callback, *args, **kwargs): +
    [docs]def delay(timedelay, callback, *args, **kwargs): """ Delay the calling of a callback (function). @@ -1071,8 +1084,7 @@ timedelay (int or float): The delay in seconds. callback (callable): Will be called as `callback(*args, **kwargs)` after `timedelay` seconds. - args (any): Will be used as arguments to callback. - + *args: Will be used as arguments to callback Keyword Args: persistent (bool, optional): If True the delay remains after a server restart. persistent is False by default. @@ -1082,7 +1094,7 @@ task (TaskHandlerTask): An instance of a task. Refer to, evennia.scripts.taskhandler.TaskHandlerTask - Note: + Notes: 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 @@ -1099,18 +1111,88 @@ """ global _TASK_HANDLER - # Do some imports here to avoid circular import and speed things up if _TASK_HANDLER is None: from evennia.scripts.taskhandler import TASK_HANDLER as _TASK_HANDLER + return _TASK_HANDLER.add(timedelay, callback, *args, **kwargs)
    +
    [docs]def repeat(interval, callback, persistent=True, idstring="", stop=False, + store_key=None, *args, **kwargs): + """ + Start a repeating task using the TickerHandler. + + Args: + interval (int): How often to call callback. + callback (callable): This will be called with `*args, **kwargs` every + `interval` seconds. This must be possible to pickle regardless + of if `persistent` is set or not! + persistent (bool, optional): If ticker survives a server reload. + idstring (str, optional): Separates multiple tickers. This is useful + mainly if wanting to set up multiple repeats for the same + interval/callback but with different args/kwargs. + stop (bool, optional): If set, use the given parameters to _stop_ a running + ticker instead of creating a new one. + store_key (tuple, optional): This is only used in combination with `stop` and + should be the return given from the original `repeat` call. If this + is given, all other args except `stop` are ignored. + *args: Used as arguments to `callback`. + **kwargs: Keyword-arguments to pass to `callback`. + + Returns: + tuple or None: The tuple is the `store_key` - the identifier for the + created ticker. Store this and pass into unrepat() in order to to stop + this ticker later. Returns `None` if `stop=True`. + + Raises: + KeyError: If trying to stop a ticker that was not found. + + """ + global _TICKER_HANDLER + if _TICKER_HANDLER is None: + from evennia.scripts.tickerhandler import TICKER_HANDLER as _TICKER_HANDLER + + if stop: + # we pass all args, but only store_key matters if given + _TICKER_HANDLER.remove(interval=interval, + callback=callback, + idstring=idstring, + persistent=persistent, + store_key=store_key) + else: + return _TICKER_HANDLER.add(interval=interval, + callback=callback, + idstring=idstring, + persistent=persistent)
    + +
    [docs]def unrepeat(store_key): + """ + This is used to stop a ticker previously started with `repeat`. + + Args: + store_key (tuple): This is the return from `repeat`, used to uniquely + identify the ticker to stop. Without the store_key, the ticker + must be stopped by passing its parameters to `TICKER_HANDLER.remove` + directly. + + Returns: + bool: True if a ticker was stopped, False if not (for example because no + matching ticker was found or it was already stopped). + + """ + try: + repeat(None, None, stop=True, store_key=store_key) + return True + except KeyError: + return False
    + + _PPOOL = None _PCMD = None _PROC_ERR = "A process has ended with a probable error condition: process ended by signal 9." -
    [docs]def run_async(to_execute, *args, **kwargs): +
    [docs]def run_async(to_execute, *args, **kwargs): """ Runs a function or executes a code snippet asynchronously. @@ -1119,17 +1201,16 @@ 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 @@ -1169,7 +1250,7 @@ deferred.addErrback(errback, **errback_kwargs)
    -
    [docs]def check_evennia_dependencies(): +
    [docs]def check_evennia_dependencies(): """ Checks the versions of Evennia's dependencies including making some checks for runtime libraries. @@ -1202,8 +1283,8 @@ except ImportError: errstring += ( "\n ERROR: IRC is enabled, but twisted.words is not installed. Please install it." - "\n Linux Debian/Ubuntu users should install package 'python-twisted-words', others" - "\n can get it from http://twistedmatrix.com/trac/wiki/TwistedWords." + "\n Linux Debian/Ubuntu users should install package 'python-twisted-words', " + "\n others can get it from http://twistedmatrix.com/trac/wiki/TwistedWords." ) not_error = False errstring = errstring.strip() @@ -1213,9 +1294,9 @@ return not_error
    -
    [docs]def has_parent(basepath, obj): +
    [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. @@ -1237,7 +1318,7 @@ return False
    -
    [docs]def mod_import_from_path(path): +
    [docs]def mod_import_from_path(path): """ Load a Python module at the specified path. @@ -1261,7 +1342,7 @@ return None
    -
    [docs]def mod_import(module): +
    [docs]def mod_import(module): """ A generic Python module loader. @@ -1292,7 +1373,7 @@ return None
    -
    [docs]def all_from_module(module): +
    [docs]def all_from_module(module): """ Return all global-level variables defined in a module. @@ -1303,23 +1384,24 @@ already imported module object (e.g. `models`) Returns: - variables (dict): A dict of {variablename: variable} for all + dict: A dict of {variablename: variable} for all variables in the given module. Notes: - Ignores modules and variable names starting with an underscore. + Ignores modules and variable names starting with an underscore, as well + as variables imported into the module from other modules. """ mod = mod_import(module) if not mod: return {} # make sure to only return variables actually defined in this - # module if available (try to avoid not imports) + # module if available (try to avoid imports) members = getmembers(mod, predicate=lambda obj: getmodule(obj) in (mod, None)) return dict((key, val) for key, val in members if not key.startswith("_"))
    -
    [docs]def callables_from_module(module): +
    [docs]def callables_from_module(module): """ Return all global-level callables defined in a module. @@ -1342,7 +1424,7 @@ return dict((key, val) for key, val in members if not key.startswith("_"))
    -
    [docs]def variable_from_module(module, variable=None, default=None): +
    [docs]def variable_from_module(module, variable=None, default=None): """ Retrieve a variable or list of variables from a module. The variable(s) must be defined globally in the module. If no variable @@ -1389,7 +1471,7 @@ return result
    -
    [docs]def string_from_module(module, variable=None, default=None): +
    [docs]def string_from_module(module, variable=None, default=None): """ This is a wrapper for `variable_from_module` that requires return value to be a string to pass. It's primarily used by login screen. @@ -1418,7 +1500,7 @@ return default
    -
    [docs]def random_string_from_module(module): +
    [docs]def random_string_from_module(module): """ Returns a random global string from a module. @@ -1431,7 +1513,7 @@ return random.choice(string_from_module(module))
    -
    [docs]def fuzzy_import_from_module(path, variable, default=None, defaultpaths=None): +
    [docs]def fuzzy_import_from_module(path, variable, default=None, defaultpaths=None): """ Import a variable based on a fuzzy path. First the literal `path` will be tried, then all given `defaultpaths` will be @@ -1463,9 +1545,9 @@ return default
    -
    [docs]def class_from_module(path, defaultpaths=None, fallback=None): +
    [docs]def class_from_module(path, defaultpaths=None, fallback=None): """ - Return a class from a module, given the module's path. This is + Return a class from a module, given the class' full python path. This is primarily used to convert db_typeclass_path:s to classes. Args: @@ -1543,7 +1625,7 @@ object_from_module = class_from_module -
    [docs]def init_new_account(account): +
    [docs]def init_new_account(account): """ Deprecated. """ @@ -1552,7 +1634,7 @@ logger.log_dep("evennia.utils.utils.init_new_account is DEPRECATED and should not be used.")
    -
    [docs]def string_similarity(string1, string2): +
    [docs]def string_similarity(string1, string2): """ This implements a "cosine-similarity" algorithm as described for example in *Proceedings of the 22nd International Conference on Computation @@ -1582,7 +1664,7 @@ return 0
    -
    [docs]def string_suggestions(string, vocabulary, cutoff=0.6, maxnum=3): +
    [docs]def string_suggestions(string, vocabulary, cutoff=0.6, maxnum=3): """ Given a `string` and a `vocabulary`, return a match or a list of suggestions based on string similarity. @@ -1596,8 +1678,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 [ @@ -1611,7 +1693,7 @@ ][:maxnum]
    -
    [docs]def string_partial_matching(alternatives, inp, ret_index=True): +
    [docs]def string_partial_matching(alternatives, inp, ret_index=True): """ Partially matches a string based on a list of `alternatives`. Matching is made from the start of each subword in each @@ -1663,13 +1745,11 @@ return []
    -
    [docs]def format_table(table, extra_space=1): +
    [docs]def format_table(table, extra_space=1): """ - 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. + Format a 2D array of strings into a multi-column table. - 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 @@ -1679,26 +1759,30 @@ padding (in characters) should be left between columns. Returns: - table (list): A list of lists representing the rows to print - out one by one. + 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. - Example: - :: + `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. - 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) + 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) """ + if not table: return [[]] @@ -1714,7 +1798,227 @@ return ftable
    -
    [docs]def get_evennia_pids(): +
    [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. + ignore_ansi (bool, optional): Ignore ansi markups when calculating white spacing. + + Returns: + list: 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. + """ + + def _minimal_rows(elements): + """ + Minimalistic distribution with minimal spacing, good for single-line + grids but will look messy over many lines. + """ + rows = [""] + for element in elements: + rowlen = display_len((rows[-1])) + elen = display_len((element)) + if rowlen + elen <= width: + rows[-1] += element + else: + rows.append(element) + return rows + + def _weighted_rows(elements): + """ + Dynamic-space, good for making even columns in a multi-line grid but + will look strange for a single line. + """ + wls = [display_len((elem)) for elem in elements] + wls_percentile = [wl for iw, wl in enumerate(wls) if iw not in verbatim_elements] + + if wls_percentile: + # 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 + else: + # no adjustable rows, just keep all as-is + aver_per_row = 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 - display_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 = display_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) + 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 - display_len((row))) + rows.append(row) + return rows + + if not elements: + return [] + 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]] + + if sum(display_len((element)) for element in elements) <= width: + # grid fits in one line + return _minimal_rows(elements) + else: + # full multi-line grid + return _weighted_rows(elements)
    + + +
    [docs]def get_evennia_pids(): """ Get the currently valid PIDs (Process IDs) of the Portal and Server by trying to access a PID file. @@ -1725,13 +2029,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") @@ -1747,7 +2051,7 @@ return None, None
    -
    [docs]def deepsize(obj, max_depth=4): +
    [docs]def deepsize(obj, max_depth=4): """ Get not only size of the given object, but also the size of objects referenced by the object, down to `max_depth` distance @@ -1789,7 +2093,7 @@ _missing = object() -
    [docs]class lazy_property(object): +
    [docs]class lazy_property: """ Delays loading of property until first access. Credit goes to the Implementation in the werkzeug suite: @@ -1805,11 +2109,12 @@ ``` Once initialized, the `AttributeHandler` will be available as a - property "attributes" on the object. + property "attributes" on the object. This is read-only since + this functionality is pretty much exclusively used by handlers. """ -
    [docs] def __init__(self, func, name=None, doc=None): +
    [docs] def __init__(self, func, name=None, doc=None): """Store all properties for now""" self.__name__ = name or func.__name__ self.__module__ = func.__module__ @@ -1824,7 +2129,25 @@ if value is _missing: value = self.func(obj) obj.__dict__[self.__name__] = value - return value
    + return value + + def __set__(self, obj, value): + """Protect against setting""" + handlername = self.__name__ + raise AttributeError( + _("{obj}.{handlername} is a handler and can't be set directly. " + "To add values, use `{obj}.{handlername}.add()` instead.").format( + obj=obj, handlername=handlername) + ) + + def __delete__(self, obj): + """Protect against deleting""" + handlername = self.__name__ + raise AttributeError( + _("{obj}.{handlername} is a handler and can't be deleted directly. " + "To remove values, use `{obj}.{handlername}.remove()` instead.").format( + obj=obj, handlername=handlername) + )
    _STRIP_ANSI = None @@ -1833,7 +2156,7 @@ ) # + range(127,160)]))) -
    [docs]def strip_control_sequences(string): +
    [docs]def strip_control_sequences(string): """ Remove non-print text sequences. @@ -1850,7 +2173,7 @@ return _RE_CONTROL_CHAR.sub("", _STRIP_ANSI(string))
    -
    [docs]def calledby(callerdepth=1): +
    [docs]def calledby(callerdepth=1): """ Only to be used for debug purposes. Insert this debug function in another function; it will print which function called it. @@ -1875,7 +2198,7 @@ return "[called by '%s': %s:%s %s]" % (frame[3], path, frame[2], frame[4])
    -
    [docs]def m_len(target): +
    [docs]def m_len(target): """ Provides length checking for strings with MXP patterns, and falls back to normal len for other objects. @@ -1896,7 +2219,7 @@ return len(target)
    -
    [docs]def display_len(target): +
    [docs]def display_len(target): """ Calculate the 'visible width' of text. This is not necessarily the same as the number of characters in the case of certain asian characters. This will also @@ -1930,7 +2253,7 @@ # Replace this hook function by changing settings.SEARCH_AT_RESULT. -
    [docs]def at_search_result(matches, caller, query="", quiet=False, **kwargs): +
    [docs]def at_search_result(matches, caller, query="", quiet=False, **kwargs): """ This is a generic hook for handling all processing of a search result, including error reporting. This is also called by the cmdhandler @@ -1947,23 +2270,22 @@ 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) """ error = "" if not matches: # no results. - error = kwargs.get("nofound_string") or _("Could not find '%s'." % query) + error = kwargs.get("nofound_string") or _("Could not find '{query}'.").format(query=query) matches = None elif len(matches) > 1: multimatch_string = kwargs.get("multimatch_string") @@ -1988,7 +2310,7 @@ name=result.get_display_name(caller) if hasattr(result, "get_display_name") else query, - aliases=" [%s]" % ";".join(aliases) if aliases else "", + aliases=" [{alias}]".format(alias=";".join(aliases) if aliases else ""), info=result.get_extra_info(caller), ) matches = None @@ -2001,7 +2323,7 @@ return matches
    -
    [docs]class LimitedSizeOrderedDict(OrderedDict): +
    [docs]class LimitedSizeOrderedDict(OrderedDict): """ This dictionary subclass is both ordered and limited to a maximum number of elements. Its main use is to hold a cache that can never @@ -2009,16 +2331,16 @@ """ -
    [docs] def __init__(self, *args, **kwargs): +
    [docs] def __init__(self, *args, **kwargs): """ Limited-size ordered dict. 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__() @@ -2051,12 +2373,12 @@ super().__setitem__(key, value) self._check_size() -
    [docs] def update(self, *args, **kwargs): +
    [docs] def update(self, *args, **kwargs): super().update(*args, **kwargs) self._check_size()
    -
    [docs]def get_game_dir_path(): +
    [docs]def get_game_dir_path(): """ This is called by settings_default in order to determine the path of the game directory. @@ -2066,7 +2388,7 @@ """ # current working directory, assumed to be somewhere inside gamedir. - for _ in range(10): + for inum in range(10): gpath = os.getcwd() if "server" in os.listdir(gpath): if os.path.isfile(os.path.join("server", "conf", "settings.py")): @@ -2076,21 +2398,21 @@ raise RuntimeError("server/conf/settings.py not found: Must start from inside game dir.")
    -
    [docs]def get_all_typeclasses(parent=None): +
    [docs]def get_all_typeclasses(parent=None): """ List available typeclasses from all available modules. Args: - parent (str, optional): If given, only return typeclasses inheriting (at any distance) - from this parent. + parent (str, optional): If given, only return typeclasses inheriting + (at any distance) from this parent. Returns: - typeclasses (dict): On the form {"typeclass.path": typeclass, ...} + dict: On the form `{"typeclass.path": typeclass, ...}` Notes: - 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. + This will dynamically 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. """ from evennia.typeclasses.models import TypedObject @@ -2109,16 +2431,49 @@ return typeclasses
    -
    [docs]def interactive(func): +
    [docs]def get_all_cmdsets(parent=None): """ - 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. + List available cmdsets from all available modules. - Example: - :: + Args: + parent (str, optional): If given, only return cmdsets inheriting (at + any distance) from this parent. + Returns: + dict: On the form {"cmdset.path": cmdset, ...} + + Notes: + This will dynamically retrieve all abstract django models inheriting at + any distance from the CmdSet base so it will work fine with any custom + classes being added. + + """ + from evennia.commands.cmdset import CmdSet + + base_cmdset = class_from_module(parent) if parent else CmdSet + + cmdsets = { + "{}.{}".format(subclass.__module__, subclass.__name__): subclass + for subclass in base_cmdset.__subclasses__() + } + return cmdsets
    + + +
    [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'. + + 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: + + ```python @interactive def myfunc(caller): caller.msg("This is a test") @@ -2130,9 +2485,10 @@ yield(5) else: # ... + ``` Notes: - This turns the method into a generator! + This turns the decorated function or method into a generator. """ from evennia.utils.evmenu import get_input @@ -2176,6 +2532,182 @@ return ret return decorator
    + + +
    [docs]def safe_convert_to_types(converters, *args, raise_errors=True, **kwargs): + """ + Helper function to safely convert inputs to expected data types. + + Args: + converters (tuple): A tuple `((converter, converter,...), {kwarg: converter, ...})` to + match a converter to each element in `*args` and `**kwargs`. + Each converter will will be called with the arg/kwarg-value as the only argument. + If there are too few converters given, the others will simply not be converter. If the + converter is given as the string 'py', it attempts to run + `safe_eval`/`literal_eval` on the input arg or kwarg value. It's possible to + skip the arg/kwarg part of the tuple, an empty tuple/dict will then be assumed. + *args: The arguments to convert with `argtypes`. + raise_errors (bool, optional): If set, raise any errors. This will + abort the conversion at that arg/kwarg. Otherwise, just skip the + conversion of the failing arg/kwarg. This will be set by the FuncParser if + this is used as a part of a FuncParser callable. + **kwargs: The kwargs to convert with `kwargtypes` + + Returns: + tuple: `(args, kwargs)` in converted form. + + Raises: + utils.funcparser.ParsingError: If parsing failed in the `'py'` + converter. This also makes this compatible with the FuncParser + interface. + any: Any other exception raised from other converters, if raise_errors is True. + + Notes: + This function is often used to validate/convert input from untrusted sources. For + security, the "py"-converter is deliberately limited and uses `safe_eval`/`literal_eval` + which only supports simple expressions or simple containers with literals. NEVER + use the python `eval` or `exec` methods as a converter for any untrusted input! Allowing + untrusted sources to execute arbitrary python on your server is a severe security risk, + + Example: + :: + + $funcname(1, 2, 3.0, c=[1,2,3]) + + def _funcname(*args, **kwargs): + args, kwargs = safe_convert_input(((int, int, float), {'c': 'py'}), *args, **kwargs) + # ... + + """ + def _safe_eval(inp): + if not inp: + return '' + if not isinstance(inp, str): + # already converted + return inp + + try: + return literal_eval(inp) + except Exception as err: + literal_err = f"{err.__class__.__name__}: {err}" + try: + return simple_eval(inp) + except Exception as err: + simple_err = f"{str(err.__class__.__name__)}: {err}" + pass + + if raise_errors: + from evennia.utils.funcparser import ParsingError + err = (f"Errors converting '{inp}' to python:\n" + f"literal_eval raised {literal_err}\n" + f"simple_eval raised {simple_err}") + raise ParsingError(err) + + # handle an incomplete/mixed set of input converters + if not converters: + return args, kwargs + arg_converters, *kwarg_converters = converters + arg_converters = make_iter(arg_converters) + kwarg_converters = kwarg_converters[0] if kwarg_converters else {} + + # apply the converters + if args and arg_converters: + args = list(args) + arg_converters = make_iter(arg_converters) + for iarg, arg in enumerate(args[:len(arg_converters)]): + converter = arg_converters[iarg] + converter = _safe_eval if converter in ('py', 'python') else converter + try: + args[iarg] = converter(arg) + except Exception: + if raise_errors: + raise + args = tuple(args) + if kwarg_converters and isinstance(kwarg_converters, dict): + for key, converter in kwarg_converters.items(): + converter = _safe_eval if converter in ('py', 'python') else converter + if key in {**kwargs}: + try: + kwargs[key] = converter(kwargs[key]) + except Exception: + if raise_errors: + raise + return args, kwargs
    + + +
    [docs]def strip_unsafe_input(txt, session=None, bypass_perms=None): + """ + Remove 'unsafe' text codes from text; these are used to elimitate + exploits in user-provided data, such as html-tags, line breaks etc. + + Args: + txt (str): The text to clean. + session (Session, optional): A Session in order to determine if + the check should be bypassed by permission (will be checked + with the 'perm' lock, taking permission hierarchies into account). + bypass_perms (list, optional): Iterable of permission strings + to check for bypassing the strip. If not given, use + `settings.INPUT_CLEANUP_BYPASS_PERMISSIONS`. + + Returns: + str: The cleaned string. + + Notes: + The `INPUT_CLEANUP_BYPASS_PERMISSIONS` list defines what account + permissions are required to bypass this strip. + + """ + global _STRIP_UNSAFE_TOKENS + if not _STRIP_UNSAFE_TOKENS: + from evennia.utils.ansi import strip_unsafe_tokens as _STRIP_UNSAFE_TOKENS + + if session: + obj = session.puppet if session.puppet else session.account + bypass_perms = bypass_perms or settings.INPUT_CLEANUP_BYPASS_PERMISSIONS + if obj.permissions.check(*bypass_perms): + return txt + + # remove html codes + txt = strip_tags(txt) + txt = _STRIP_UNSAFE_TOKENS(txt) + return txt
    + + +
    [docs]def copy_word_case(base_word, new_word): + """ + Converts a word to use the same capitalization as a first word. + + Args: + base_word (str): A word to get the capitalization from. + new_word (str): A new word to capitalize in the same way as `base_word`. + + Returns: + str: The `new_word` with capitalization matching the first word. + + Notes: + This is meant for words. Longer sentences may get unexpected results. + + If the two words have a mix of capital/lower letters _and_ `new_word` + is longer than `base_word`, the excess will retain its original case. + + """ + + # Word + if base_word.istitle(): + return new_word.title() + # word + elif base_word.islower(): + return new_word.lower() + # WORD + elif base_word.isupper(): + return new_word.upper() + else: + # WorD - a mix. Handle each character + maxlen = len(base_word) + shared, excess = new_word[:maxlen], new_word[maxlen - 1:] + return "".join(char.upper() if base_word[ic].isupper() else char.lower() + for ic, char in enumerate(new_word)) + excess
    +
    @@ -2201,11 +2733,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/utils/validatorfuncs.html b/docs/0.9.5/_modules/evennia/utils/validatorfuncs.html index 3f83255862..5f563ce2ee 100644 --- a/docs/0.9.5/_modules/evennia/utils/validatorfuncs.html +++ b/docs/0.9.5/_modules/evennia/utils/validatorfuncs.html @@ -65,18 +65,20 @@ try: return str(entry) except Exception as err: - raise ValueError(f"Input could not be converted to text ({err})")
    + raise ValueError(_("Input could not be converted to text ({err})").format(err=err))
    [docs]def color(entry, option_key="Color", **kwargs): """ The color should be just a color character, so 'r' if red color is desired. + """ if not entry: - raise ValueError(f"Nothing entered for a {option_key}!") + raise ValueError(_("Nothing entered for a {option_key}!").format(option_key=option_key)) test_str = strip_ansi(f"|{entry}|n") if test_str: - raise ValueError(f"'{entry}' is not a valid {option_key}.") + raise ValueError(_("'{entry}' is not a valid {option_key}.").format( + entry=entry, option_key=option_key)) return entry
    @@ -91,12 +93,10 @@ 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 the `account`. + user. If not provided, tries to use the timezone option of `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. @@ -128,13 +128,17 @@ entry = f"{split_time[0]} {split_time[1]} {split_time[2]} {split_time[3]}" else: raise ValueError( - f"{option_key} must be entered in a 24-hour format such as: {now.strftime('%b %d %H:%M')}" + _("{option_key} must be entered in a 24-hour format such as: {timeformat}").format( + option_key=option_key, + timeformat=now.strftime('%b %d %H:%M')) ) try: local = _dt.datetime.strptime(entry, "%b %d %H:%M %Y") except ValueError: raise ValueError( - f"{option_key} must be entered in a 24-hour format such as: {now.strftime('%b %d %H:%M')}" + _("{option_key} must be entered in a 24-hour format such as: {timeformat}").format( + option_key=option_key, + timeformat=now.strftime('%b %d %H:%M')) ) local_tz = from_tz.localize(local) return local_tz.astimezone(utc)
    @@ -145,8 +149,9 @@ Take a string and derive a datetime timedelta from it. Args: - entry (string): This is a string from user-input. The intended format is, for example: "5d 2w 90s" for - 'five days, two weeks, and ninety seconds.' Invalid sections are ignored. + entry (string): This is a string from user-input. The intended format is, for example: + "5d 2w 90s" for 'five days, two weeks, and ninety seconds.' Invalid sections are + ignored. option_key (str): Name to display this query as. Returns: @@ -174,7 +179,10 @@ elif _re.match(r"^[\d]+y$", interval): days += int(interval.rstrip("y")) * 365 else: - raise ValueError(f"Could not convert section '{interval}' to a {option_key}.") + raise ValueError( + _("Could not convert section '{interval}' to a {option_key}.").format( + interval=interval, option_key=option_key) + ) return _dt.timedelta(days, seconds, 0, 0, minutes, hours, weeks)
    @@ -182,45 +190,56 @@
    [docs]def future(entry, option_key="Future Datetime", from_tz=None, **kwargs): time = datetime(entry, option_key, from_tz=from_tz) if time < _dt.datetime.utcnow().replace(tzinfo=_dt.timezone.utc): - raise ValueError(f"That {option_key} is in the past! Must give a Future datetime!") + raise ValueError(_("That {option_key} is in the past! Must give a Future datetime!").format( + option_key=option_key)) return time
    [docs]def signed_integer(entry, option_key="Signed Integer", **kwargs): if not entry: - raise ValueError(f"Must enter a whole number for {option_key}!") + raise ValueError(_("Must enter a whole number for {option_key}!").format( + option_key=option_key)) try: num = int(entry) except ValueError: - raise ValueError(f"Could not convert '{entry}' to a whole number for {option_key}!") + raise ValueError(_("Could not convert '{entry}' to a whole " + "number for {option_key}!").format( + entry=entry, option_key=option_key)) return num
    [docs]def positive_integer(entry, option_key="Positive Integer", **kwargs): num = signed_integer(entry, option_key) if not num >= 1: - raise ValueError(f"Must enter a whole number greater than 0 for {option_key}!") + raise ValueError(_("Must enter a whole number greater than 0 for {option_key}!").format( + option_key=option_key)) return num
    [docs]def unsigned_integer(entry, option_key="Unsigned Integer", **kwargs): num = signed_integer(entry, option_key) if not num >= 0: - raise ValueError(f"{option_key} must be a whole number greater than or equal to 0!") + raise ValueError(_("{option_key} must be a whole number greater than " + "or equal to 0!").format( + option_key=option_key)) return num
    [docs]def boolean(entry, option_key="True/False", **kwargs): """ Simplest check in computer logic, right? This will take user input to flick the switch on or off + Args: entry (str): A value such as True, On, Enabled, Disabled, False, 0, or 1. option_key (str): What kind of Boolean we are setting. What Option is this for? Returns: Boolean + """ - error = f"Must enter 0 (false) or 1 (true) for {option_key}. Also accepts True, False, On, Off, Yes, No, Enabled, and Disabled" + error = (_("Must enter a true/false input for {option_key}. Accepts {alternatives}.").format( + option_key=option_key, + alternatives="0/1, True/False, On/Off, Yes/No, Enabled/Disabled")) if not isinstance(entry, str): raise ValueError(error) entry = entry.upper() @@ -241,41 +260,44 @@ Returns: A PYTZ timezone. + """ if not entry: - raise ValueError(f"No {option_key} entered!") + raise ValueError(_("No {option_key} entered!").format(option_key=option_key)) found = _partial(list(_TZ_DICT.keys()), entry, ret_index=False) if len(found) > 1: raise ValueError( - f"That matched: {', '.join(str(t) for t in found)}. Please be more specific!" - ) + _("That matched: {matches}. Please be more specific!").format( + matches=', '.join(str(t) for t in found))) if found: return _TZ_DICT[found[0]] - raise ValueError(f"Could not find timezone '{entry}' for {option_key}!")
    + raise ValueError(_("Could not find timezone '{entry}' for {option_key}!").format( + entry=entry, option_key=option_key))
    [docs]def email(entry, option_key="Email Address", **kwargs): if not entry: - raise ValueError("Email address field empty!") + raise ValueError(_("Email address field empty!")) valid = validate_email_address(entry) if not valid: - raise ValueError(f"That isn't a valid {option_key}!") + raise ValueError(_("That isn't a valid {option_key}!").format(option_key=option_key)) return entry
    [docs]def lock(entry, option_key="locks", access_options=None, **kwargs): entry = entry.strip() if not entry: - raise ValueError(f"No {option_key} entered to set!") + raise ValueError(_("No {option_key} entered to set!").format(option_key=option_key)) for locksetting in entry.split(";"): access_type, lockfunc = locksetting.split(":", 1) if not access_type: - raise ValueError("Must enter an access type!") + raise ValueError(_("Must enter an access type!")) if access_options: if access_type not in access_options: - raise ValueError(f"Access type must be one of: {', '.join(access_options)}") + raise ValueError(_("Access type must be one of: {alternatives}").format( + alternatives=', '.join(access_options))) if not lockfunc: - raise ValueError("Lock func not entered.") + raise ValueError(_("Lock func not entered.")) return entry
    @@ -302,11 +324,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 608f4373d8..867c758533 100644 --- a/docs/0.9.5/_modules/evennia/web/utils/backends.html +++ b/docs/0.9.5/_modules/evennia/web/utils/backends.html @@ -109,11 +109,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 3db954ff83..cb4f5e30a1 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 @@ -41,44 +41,43 @@

    Source code for evennia.web.utils.general_context

    -#
    -# This file defines global variables that will always be
    -# available in a view context without having to repeatedly
    -# include it. For this to work, this file is included in
    -# the settings file, in the TEMPLATE_CONTEXT_PROCESSORS
    -# tuple.
    -#
    +"""
    +This file defines global variables that will always be available in a view
    +context without having to repeatedly include it.
    +
    +For this to work, this file is included in the settings file, in the
    +TEMPLATES["OPTIONS"]["context_processors"] list.
    +
    +"""
    +
     
     import os
     from django.conf import settings
     from evennia.utils.utils import get_evennia_version
     
    -# Determine the site name and server version
    -
    [docs]def set_game_name_and_slogan(): - """ - Sets global variables GAME_NAME and GAME_SLOGAN which are used by - general_context. - - Notes: - This function is used for unit testing the values of the globals. - """ - global GAME_NAME, GAME_SLOGAN, SERVER_VERSION - try: - GAME_NAME = settings.SERVERNAME.strip() - except AttributeError: - GAME_NAME = "Evennia" - SERVER_VERSION = get_evennia_version() - try: - GAME_SLOGAN = settings.GAME_SLOGAN.strip() - except AttributeError: - GAME_SLOGAN = SERVER_VERSION
    - - -set_game_name_and_slogan() - # Setup lists of the most relevant apps so # the adminsite becomes more readable. +GAME_NAME = None +GAME_SLOGAN = None +SERVER_VERSION = None +SERVER_HOSTNAME = None + +TELNET_ENABLED = None +TELNET_PORTS = None +TELNET_SSL_ENABLED = None +TELNET_SSL_PORTS = None + +SSH_ENABLED = None +SSH_PORTS = None + +WEBCLIENT_ENABLED = None +WEBSOCKET_CLIENT_ENABLED = None +WEBSOCKET_PORT = None +WEBSOCKET_URL = None + +REST_API_ENABLED = False + ACCOUNT_RELATED = ["Accounts"] GAME_ENTITIES = ["Objects", "Scripts", "Comms", "Help"] GAME_SETUP = ["Permissions", "Config"] @@ -86,15 +85,37 @@ WEBSITE = ["Flatpages", "News", "Sites"] -
    [docs]def set_webclient_settings(): +
    [docs]def load_game_settings(): """ - As with set_game_name_and_slogan above, this sets global variables pertaining - to webclient settings. + Load and cache game settings. - Notes: - Used for unit testing. """ + global GAME_NAME, GAME_SLOGAN, SERVER_VERSION, SERVER_HOSTNAME + global TELNET_ENABLED, TELNET_PORTS + global TELNET_SSL_ENABLED, TELNET_SSL_PORTS + global SSH_ENABLED, SSH_PORTS global WEBCLIENT_ENABLED, WEBSOCKET_CLIENT_ENABLED, WEBSOCKET_PORT, WEBSOCKET_URL + global REST_API_ENABLED + + try: + GAME_NAME = settings.SERVERNAME.strip() + except AttributeError: + GAME_NAME = "Evennia" + SERVER_VERSION = get_evennia_version() + try: + GAME_SLOGAN = settings.GAME_SLOGAN.strip() + except AttributeError: + GAME_SLOGAN = SERVER_VERSION + SERVER_HOSTNAME = settings.SERVER_HOSTNAME + + TELNET_ENABLED = settings.TELNET_ENABLED + TELNET_PORTS = settings.TELNET_PORTS + TELNET_SSL_ENABLED = settings.SSL_ENABLED + TELNET_SSL_PORTS = settings.SSL_PORTS + + SSH_ENABLED = settings.SSH_ENABLED + SSH_PORTS = settings.SSH_PORTS + WEBCLIENT_ENABLED = settings.WEBCLIENT_ENABLED WEBSOCKET_CLIENT_ENABLED = settings.WEBSOCKET_CLIENT_ENABLED # if we are working through a proxy or uses docker port-remapping, the webclient port encoded @@ -104,16 +125,20 @@ os.environ.get("WEBSOCKET_CLIENT_PROXY_PORT", settings.WEBSOCKET_CLIENT_PORT) ) # this is determined dynamically by the client and is less of an issue - WEBSOCKET_URL = settings.WEBSOCKET_CLIENT_URL
    + WEBSOCKET_URL = settings.WEBSOCKET_CLIENT_URL + + REST_API_ENABLED = settings.REST_API_ENABLED
    -set_webclient_settings() +load_game_settings() + # The main context processor function
    [docs]def general_context(request): """ - Returns common Evennia-related context stuff, which - is automatically added to context of all views. + Returns common Evennia-related context stuff, which is automatically added + to context of all views. + """ account = None if request.user.is_authenticated: @@ -129,15 +154,23 @@ "puppet": puppet, "game_name": GAME_NAME, "game_slogan": GAME_SLOGAN, + "server_hostname": SERVER_HOSTNAME, "evennia_userapps": ACCOUNT_RELATED, "evennia_entityapps": GAME_ENTITIES, "evennia_setupapps": GAME_SETUP, "evennia_connectapps": CONNECTIONS, "evennia_websiteapps": WEBSITE, + "telnet_enabled": TELNET_ENABLED, + "telnet_ports": TELNET_PORTS, + "telnet_ssl_enabled": TELNET_SSL_ENABLED, + "telnet_ssl_ports": TELNET_SSL_PORTS, + "ssh_enabled": SSH_ENABLED, + "ssh_ports": SSH_ENABLED, "webclient_enabled": WEBCLIENT_ENABLED, "websocket_enabled": WEBSOCKET_CLIENT_ENABLED, "websocket_port": WEBSOCKET_PORT, "websocket_url": WEBSOCKET_URL, + "rest_api_enabled": REST_API_ENABLED, }
    @@ -164,11 +197,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 140ca479cb..89058eb53a 100644 --- a/docs/0.9.5/_modules/evennia/web/utils/middleware.html +++ b/docs/0.9.5/_modules/evennia/web/utils/middleware.html @@ -138,11 +138,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 7ce4726bfa..36b4c4b83c 100644 --- a/docs/0.9.5/_modules/evennia/web/utils/tests.html +++ b/docs/0.9.5/_modules/evennia/web/utils/tests.html @@ -52,13 +52,12 @@
    [docs] @patch("evennia.web.utils.general_context.GAME_NAME", "test_name") @patch("evennia.web.utils.general_context.GAME_SLOGAN", "test_game_slogan") - @patch( - "evennia.web.utils.general_context.WEBSOCKET_CLIENT_ENABLED", - "websocket_client_enabled_testvalue", - ) + @patch("evennia.web.utils.general_context.WEBSOCKET_CLIENT_ENABLED", + "websocket_client_enabled_testvalue") @patch("evennia.web.utils.general_context.WEBCLIENT_ENABLED", "webclient_enabled_testvalue") @patch("evennia.web.utils.general_context.WEBSOCKET_PORT", "websocket_client_port_testvalue") @patch("evennia.web.utils.general_context.WEBSOCKET_URL", "websocket_client_url_testvalue") + @patch("evennia.web.utils.general_context.REST_API_ENABLED", True) def test_general_context(self): request = RequestFactory().get("/") request.user = AnonymousUser() @@ -82,36 +81,16 @@ "websocket_enabled": "websocket_client_enabled_testvalue", "websocket_port": "websocket_client_port_testvalue", "websocket_url": "websocket_client_url_testvalue", + "rest_api_enabled": True, + "server_hostname": 'localhost', + "ssh_enabled": False, + "ssh_ports": False, + "telnet_enabled": True, + "telnet_ports": [4000], + "telnet_ssl_enabled": False, + "telnet_ssl_ports": [4003], }, - )
    - - # spec being an empty list will initially raise AttributeError in set_game_name_and_slogan to test defaults -
    [docs] @patch("evennia.web.utils.general_context.settings", spec=[]) - @patch("evennia.web.utils.general_context.get_evennia_version") - def test_set_game_name_and_slogan(self, mock_get_version, mock_settings): - mock_get_version.return_value = "version 1" - # test default/fallback values - general_context.set_game_name_and_slogan() - self.assertEqual(general_context.GAME_NAME, "Evennia") - self.assertEqual(general_context.GAME_SLOGAN, "version 1") - # test values when the settings are defined - mock_settings.SERVERNAME = "test_name" - mock_settings.GAME_SLOGAN = "test_game_slogan" - general_context.set_game_name_and_slogan() - self.assertEqual(general_context.GAME_NAME, "test_name") - self.assertEqual(general_context.GAME_SLOGAN, "test_game_slogan")
    - -
    [docs] @patch("evennia.web.utils.general_context.settings") - def test_set_webclient_settings(self, mock_settings): - mock_settings.WEBCLIENT_ENABLED = "webclient" - mock_settings.WEBSOCKET_CLIENT_URL = "websocket_url" - mock_settings.WEBSOCKET_CLIENT_ENABLED = "websocket_client" - mock_settings.WEBSOCKET_CLIENT_PORT = 5000 - general_context.set_webclient_settings() - self.assertEqual(general_context.WEBCLIENT_ENABLED, "webclient") - self.assertEqual(general_context.WEBSOCKET_URL, "websocket_url") - self.assertEqual(general_context.WEBSOCKET_CLIENT_ENABLED, "websocket_client") - self.assertEqual(general_context.WEBSOCKET_PORT, 5000)
    + )
    @@ -137,11 +116,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 ff7c1c1fe2..4b6c53a4ef 100644 --- a/docs/0.9.5/_modules/evennia/web/webclient/views.html +++ b/docs/0.9.5/_modules/evennia/web/webclient/views.html @@ -96,11 +96,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 9c874bc3e9..36d66263ff 100644 --- a/docs/0.9.5/_modules/evennia/web/website/forms.html +++ b/docs/0.9.5/_modules/evennia/web/website/forms.html @@ -71,7 +71,7 @@ """ # Call parent function - cleaned = super(EvenniaForm, self).clean() + cleaned = super().clean() # Escape all values provided by user cleaned = {k: escape(v) for k, v in cleaned.items()} @@ -241,11 +241,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 deleted file mode 100644 index e38fd0675a..0000000000 --- a/docs/0.9.5/_modules/evennia/web/website/templatetags/addclass.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - evennia.web.website.templatetags.addclass — Evennia 0.9.5 documentation - - - - - - - - - - - - - - - -
    -
    -
    -
    - -

    Source code for evennia.web.website.templatetags.addclass

    -from django import template
    -
    -register = template.Library()
    -
    -
    -
    [docs]@register.filter(name="addclass") -def addclass(field, given_class): - existing_classes = field.field.widget.attrs.get("class", None) - if existing_classes: - if existing_classes.find(given_class) == -1: - # if the given class doesn't exist in the existing classes - classes = existing_classes + " " + given_class - else: - classes = existing_classes - else: - classes = given_class - return field.as_widget(attrs={"class": classes})
    -
    - -
    -
    -
    -
    - -
    -
    - - - - \ No newline at end of file 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 1285397380..3b485e6a64 100644 --- a/docs/0.9.5/_modules/evennia/web/website/tests.html +++ b/docs/0.9.5/_modules/evennia/web/website/tests.html @@ -46,7 +46,11 @@ from django.test import Client, override_settings from django.urls import reverse from evennia.utils import class_from_module +from evennia.utils.create import create_help_entry from evennia.utils.test_resources import EvenniaTest +from evennia.help import filehelp + +_FILE_HELP_ENTRIES = None
    [docs]class EvenniaWebTest(EvenniaTest): @@ -178,6 +182,79 @@ return {"slug": slugify("demo")}
    +
    [docs]class HelpListTest(EvenniaWebTest): + url_name = "help"
    + + +HELP_ENTRY_DICTS = [ + { + "key": "unit test file entry", + "category": "General", + "text": "cache test file entry text" + } +] + +
    [docs]class HelpDetailTest(EvenniaWebTest): + url_name = "help-entry-detail" + +
    [docs] def setUp(self): + super().setUp() + + # create a db help entry + create_help_entry('unit test db entry', 'unit test db entry text', category="General")
    + +
    [docs] def get_kwargs(self): + return {"category": slugify("general"), + "topic": slugify('unit test db entry')}
    + +
    [docs] def test_view(self): + response = self.client.get(reverse(self.url_name, kwargs=self.get_kwargs()), follow=True) + self.assertEqual(response.context["entry_text"], 'unit test db entry text')
    + +
    [docs] def test_object_cache(self): + # clear file help entries, use local HELP_ENTRY_DICTS to recreate new entries + global _FILE_HELP_ENTRIES + if _FILE_HELP_ENTRIES is None: + from evennia.help.filehelp import FILE_HELP_ENTRIES as _FILE_HELP_ENTRIES + help_module = 'evennia.web.website.tests' + self.file_help_store = _FILE_HELP_ENTRIES.__init__(help_file_modules=[help_module]) + + # request access to an entry + response = self.client.get(reverse(self.url_name, kwargs=self.get_kwargs()), follow=True) + self.assertEqual(response.context["entry_text"], 'unit test db entry text') + # request a second entry, verifing the cached object is not provided on a new topic request + entry_two_args = {"category": slugify("general"), "topic": slugify('unit test file entry')} + response = self.client.get(reverse(self.url_name, kwargs=entry_two_args), follow=True) + self.assertEqual(response.context["entry_text"], 'cache test file entry text')
    + + +
    [docs]class HelpLockedDetailTest(EvenniaWebTest): + url_name = "help-entry-detail" + +
    [docs] def setUp(self): + super(HelpLockedDetailTest, self).setUp() + + # create a db entry with a lock + self.db_help_entry = create_help_entry('unit test locked topic', 'unit test locked entrytext', + category="General", locks='read:perm(Developer)')
    + +
    [docs] def get_kwargs(self): + return {"category": slugify("general"), + "topic": slugify('unit test locked topic')}
    + +
    [docs] def test_locked_entry(self): + # request access to an entry for permission the account does not have + response = self.client.get(reverse(self.url_name, kwargs=self.get_kwargs()), follow=True) + self.assertEqual(response.context["entry_text"], 'Failed to find entry.')
    + +
    [docs] def test_lock_with_perm(self): + # log TestAccount in, grant permission required, read the entry + self.login() + self.account.permissions.add("Developer") + response = self.client.get(reverse(self.url_name, kwargs=self.get_kwargs()), follow=True) + self.assertEqual(response.context["entry_text"], 'unit test locked entrytext')
    + +
    [docs]class CharacterCreateView(EvenniaWebTest): url_name = "character-create" unauthenticated_response = 302 @@ -356,11 +433,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/evennia/web/website/views.html b/docs/0.9.5/_modules/evennia/web/website/views.html deleted file mode 100644 index a34d7fad90..0000000000 --- a/docs/0.9.5/_modules/evennia/web/website/views.html +++ /dev/null @@ -1,1241 +0,0 @@ - - - - - - - - evennia.web.website.views — Evennia 0.9.5 documentation - - - - - - - - - - - - - - - -
    -
    -
    -
    - -

    Source code for evennia.web.website.views

    -"""
    -This file contains the generic, assorted views that don't fall under one of the other applications.
    -Views are django's way of processing e.g. html templates on the fly.
    -
    -"""
    -
    -from collections import OrderedDict
    -
    -from django.contrib.admin.sites import site
    -from django.conf import settings
    -from django.contrib import messages
    -from django.contrib.auth.mixins import LoginRequiredMixin
    -from django.contrib.admin.views.decorators import staff_member_required
    -from django.core.exceptions import PermissionDenied
    -from django.db.models.functions import Lower
    -from django.http import HttpResponseBadRequest, HttpResponseRedirect
    -from django.shortcuts import render
    -from django.urls import reverse_lazy
    -from django.views.generic import TemplateView, ListView, DetailView
    -from django.views.generic.base import RedirectView
    -from django.views.generic.edit import CreateView, UpdateView, DeleteView
    -
    -from evennia import SESSION_HANDLER
    -from evennia.help.models import HelpEntry
    -from evennia.objects.models import ObjectDB
    -from evennia.accounts.models import AccountDB
    -from evennia.utils import class_from_module
    -from evennia.utils.logger import tail_log_file
    -from evennia.web.website import forms as website_forms
    -
    -from django.utils.text import slugify
    -
    -_BASE_CHAR_TYPECLASS = settings.BASE_CHARACTER_TYPECLASS
    -
    -# typeclass fallbacks
    -
    -def _gamestats():
    -    # Some misc. configurable stuff.
    -    # TODO: Move this to either SQL or settings.py based configuration.
    -    fpage_account_limit = 4
    -
    -    # A QuerySet of the most recently connected accounts.
    -    recent_users = AccountDB.objects.get_recently_connected_accounts()[:fpage_account_limit]
    -    nplyrs_conn_recent = len(recent_users) or "none"
    -    nplyrs = AccountDB.objects.num_total_accounts() or "none"
    -    nplyrs_reg_recent = len(AccountDB.objects.get_recently_created_accounts()) or "none"
    -    nsess = SESSION_HANDLER.account_count()
    -    # nsess = len(AccountDB.objects.get_connected_accounts()) or "no one"
    -
    -    nobjs = ObjectDB.objects.count()
    -    nobjs = nobjs or 1  # fix zero-div error with empty database
    -    Character = class_from_module(settings.BASE_CHARACTER_TYPECLASS,
    -                                  fallback=settings.FALLBACK_CHARACTER_TYPECLASS)
    -    nchars = Character.objects.all_family().count()
    -    Room = class_from_module(settings.BASE_ROOM_TYPECLASS,
    -                             fallback=settings.FALLBACK_ROOM_TYPECLASS)
    -    nrooms = Room.objects.all_family().count()
    -    Exit = class_from_module(settings.BASE_EXIT_TYPECLASS,
    -                             fallback=settings.FALLBACK_EXIT_TYPECLASS)
    -    nexits = Exit.objects.all_family().count()
    -    nothers = nobjs - nchars - nrooms - nexits
    -
    -    pagevars = {
    -        "page_title": "Front Page",
    -        "accounts_connected_recent": recent_users,
    -        "num_accounts_connected": nsess or "no one",
    -        "num_accounts_registered": nplyrs or "no",
    -        "num_accounts_connected_recent": nplyrs_conn_recent or "no",
    -        "num_accounts_registered_recent": nplyrs_reg_recent or "no one",
    -        "num_rooms": nrooms or "none",
    -        "num_exits": nexits or "no",
    -        "num_objects": nobjs or "none",
    -        "num_characters": nchars or "no",
    -        "num_others": nothers or "no",
    -    }
    -    return pagevars
    -
    -
    -
    [docs]def to_be_implemented(request): - """ - A notice letting the user know that this particular feature hasn't been - implemented yet. - """ - - pagevars = {"page_title": "To Be Implemented..."} - - return render(request, "tbi.html", pagevars)
    - - -
    [docs]@staff_member_required -def evennia_admin(request): - """ - Helpful Evennia-specific admin page. - """ - return render(request, "evennia_admin.html", {"accountdb": AccountDB})
    - - -
    [docs]def admin_wrapper(request): - """ - Wrapper that allows us to properly use the base Django admin site, if needed. - """ - return staff_member_required(site.index)(request)
    - - -# -# Class-based views -# - - -
    [docs]class EvenniaIndexView(TemplateView): - """ - This is a basic example of a Django class-based view, which are functionally - very similar to Evennia Commands but differ in structure. Commands are used - to interface with users using a terminal client. Views are used to interface - with users using a web browser. - - To use a class-based view, you need to have written a template in HTML, and - then you write a view like this to tell Django what values to display on it. - - While there are simpler ways of writing views using plain functions (and - Evennia currently contains a few examples of them), just like Commands, - writing views as classes provides you with more flexibility-- you can extend - classes and change things to suit your needs rather than having to copy and - paste entire code blocks over and over. Django also comes with many default - views for displaying things, all of them implemented as classes. - - This particular example displays the index page. - - """ - - # Tell the view what HTML template to use for the page - template_name = "website/index.html" - - # This method tells the view what data should be displayed on the template. -
    [docs] def get_context_data(self, **kwargs): - """ - This is a common Django method. Think of this as the website - equivalent of the Evennia Command.func() method. - - If you just want to display a static page with no customization, you - don't need to define this method-- just create a view, define - template_name and you're done. - - The only catch here is that if you extend or overwrite this method, - you'll always want to make sure you call the parent method to get a - context object. It's just a dict, but it comes prepopulated with all - sorts of background data intended for display on the page. - - You can do whatever you want to it, but it must be returned at the end - of this method. - - Keyword Args: - any (any): Passed through. - - Returns: - context (dict): Dictionary of data you want to display on the page. - - """ - # Always call the base implementation first to get a context object - context = super(EvenniaIndexView, self).get_context_data(**kwargs) - - # Add game statistics and other pagevars - context.update(_gamestats()) - - return context
    - - -
    [docs]class TypeclassMixin(object): - """ - This is a "mixin", a modifier of sorts. - - Django views typically work with classes called "models." Evennia objects - are an enhancement upon these Django models and are called "typeclasses." - But Django itself has no idea what a "typeclass" is. - - For the sake of mitigating confusion, any view class with this in its - inheritance list will be modified to work with Evennia Typeclass objects or - Django models interchangeably. - - """ - - @property - def typeclass(self): - return self.model - - @typeclass.setter - def typeclass(self, value): - self.model = value
    - - -
    [docs]class EvenniaCreateView(CreateView, TypeclassMixin): - """ - This view extends Django's default CreateView. - - CreateView is used for creating new objects, be they Accounts, Characters or - otherwise. - - """ - - @property - def page_title(self): - # Makes sure the page has a sensible title. - return "Create %s" % self.typeclass._meta.verbose_name.title()
    - - -
    [docs]class EvenniaDetailView(DetailView, TypeclassMixin): - """ - This view extends Django's default DetailView. - - DetailView is used for displaying objects, be they Accounts, Characters or - otherwise. - - """ - - @property - def page_title(self): - # Makes sure the page has a sensible title. - return "%s Detail" % self.typeclass._meta.verbose_name.title()
    - - -
    [docs]class EvenniaUpdateView(UpdateView, TypeclassMixin): - """ - This view extends Django's default UpdateView. - - UpdateView is used for updating objects, be they Accounts, Characters or - otherwise. - - """ - - @property - def page_title(self): - # Makes sure the page has a sensible title. - return "Update %s" % self.typeclass._meta.verbose_name.title()
    - - -
    [docs]class EvenniaDeleteView(DeleteView, TypeclassMixin): - """ - This view extends Django's default DeleteView. - - DeleteView is used for deleting objects, be they Accounts, Characters or - otherwise. - - """ - - @property - def page_title(self): - # Makes sure the page has a sensible title. - return "Delete %s" % self.typeclass._meta.verbose_name.title()
    - - -# -# Object views -# - - -
    [docs]class ObjectDetailView(EvenniaDetailView): - """ - This is an important view. - - Any view you write that deals with displaying, updating or deleting a - specific object will want to inherit from this. It provides the mechanisms - by which to retrieve the object and make sure the user requesting it has - permissions to actually *do* things to it. - - """ - - # -- Django constructs -- - # - # Choose what class of object this view will display. Note that this should - # be an actual Python class (i.e. do `from typeclasses.characters import - # Character`, then put `Character`), not an Evennia typeclass path - # (i.e. `typeclasses.characters.Character`). - # - # So when you extend it, this line should look simple, like: - # model = Object - model = class_from_module(settings.BASE_OBJECT_TYPECLASS, - fallback=settings.FALLBACK_OBJECT_TYPECLASS) - - # What HTML template you wish to use to display this page. - template_name = "website/object_detail.html" - - # -- Evennia constructs -- - # - # What lock type to check for the requesting user, authenticated or not. - # https://github.com/evennia/evennia/wiki/Locks#valid-access_types - access_type = "view" - - # What attributes of the object you wish to display on the page. Model-level - # attributes will take precedence over identically-named db.attributes! - # The order you specify here will be followed. - attributes = ["name", "desc"] - -
    [docs] def get_context_data(self, **kwargs): - """ - Adds an 'attributes' list to the request context consisting of the - attributes specified at the class level, and in the order provided. - - Django views do not provide a way to reference dynamic attributes, so - we have to grab them all before we render the template. - - Returns: - context (dict): Django context object - - """ - # Get the base Django context object - context = super(ObjectDetailView, self).get_context_data(**kwargs) - - # Get the object in question - obj = self.get_object() - - # Create an ordered dictionary to contain the attribute map - attribute_list = OrderedDict() - - for attribute in self.attributes: - # Check if the attribute is a core fieldname (name, desc) - if attribute in self.typeclass._meta._property_names: - attribute_list[attribute.title()] = getattr(obj, attribute, "") - - # Check if the attribute is a db attribute (char1.db.favorite_color) - else: - attribute_list[attribute.title()] = getattr(obj.db, attribute, "") - - # Add our attribute map to the Django request context, so it gets - # displayed on the template - context["attribute_list"] = attribute_list - - # Return the comprehensive context object - return context
    - -
    [docs] def get_object(self, queryset=None): - """ - Override of Django hook that provides some important Evennia-specific - functionality. - - Evennia does not natively store slugs, so where a slug is provided, - calculate the same for the object and make sure it matches. - - This also checks to make sure the user has access to view/edit/delete - this object! - - """ - # A queryset can be provided to pre-emptively limit what objects can - # possibly be returned. For example, you can supply a queryset that - # only returns objects whose name begins with "a". - if not queryset: - queryset = self.get_queryset() - - # Get the object, ignoring all checks and filters for now - obj = self.typeclass.objects.get(pk=self.kwargs.get("pk")) - - # Check if this object was requested in a valid manner - if slugify(obj.name) != self.kwargs.get(self.slug_url_kwarg): - raise HttpResponseBadRequest( - "No %(verbose_name)s found matching the query" - % {"verbose_name": queryset.model._meta.verbose_name} - ) - - # Check if the requestor account has permissions to access object - account = self.request.user - if not obj.access(account, self.access_type): - raise PermissionDenied("You are not authorized to %s this object." % self.access_type) - - # Get the object, if it is in the specified queryset - obj = super(ObjectDetailView, self).get_object(queryset) - - return obj
    - - -
    [docs]class ObjectCreateView(LoginRequiredMixin, EvenniaCreateView): - """ - This is an important view. - - Any view you write that deals with creating a specific object will want to - inherit from this. It provides the mechanisms by which to make sure the user - requesting creation of an object is authenticated, and provides a sane - default title for the page. - - """ - - model = class_from_module(settings.BASE_OBJECT_TYPECLASS, - fallback=settings.FALLBACK_OBJECT_TYPECLASS)
    - - -
    [docs]class ObjectDeleteView(LoginRequiredMixin, ObjectDetailView, EvenniaDeleteView): - """ - This is an important view for obvious reasons! - - Any view you write that deals with deleting a specific object will want to - inherit from this. It provides the mechanisms by which to make sure the user - requesting deletion of an object is authenticated, and that they have - permissions to delete the requested object. - - """ - - # -- Django constructs -- - model = class_from_module(settings.BASE_OBJECT_TYPECLASS, - fallback=settings.FALLBACK_OBJECT_TYPECLASS) - template_name = "website/object_confirm_delete.html" - - # -- Evennia constructs -- - access_type = "delete" - -
    [docs] def delete(self, request, *args, **kwargs): - """ - Calls the delete() method on the fetched object and then - redirects to the success URL. - - We extend this so we can capture the name for the sake of confirmation. - - """ - # Get the object in question. ObjectDetailView.get_object() will also - # check to make sure the current user (authenticated or not) has - # permission to delete it! - obj = str(self.get_object()) - - # Perform the actual deletion (the parent class handles this, which will - # in turn call the delete() method on the object) - response = super(ObjectDeleteView, self).delete(request, *args, **kwargs) - - # Notify the user of the deletion - messages.success(request, "Successfully deleted '%s'." % obj) - return response
    - - -
    [docs]class ObjectUpdateView(LoginRequiredMixin, ObjectDetailView, EvenniaUpdateView): - """ - This is an important view. - - Any view you write that deals with updating a specific object will want to - inherit from this. It provides the mechanisms by which to make sure the user - requesting editing of an object is authenticated, and that they have - permissions to edit the requested object. - - This functions slightly different from default Django UpdateViews in that - it does not update core model fields, *only* object attributes! - - """ - - # -- Django constructs -- - model = class_from_module(settings.BASE_OBJECT_TYPECLASS, - fallback=settings.FALLBACK_OBJECT_TYPECLASS) - - # -- Evennia constructs -- - access_type = "edit" - -
    [docs] def get_success_url(self): - """ - Django hook. - - Can be overridden to return any URL you want to redirect the user to - after the object is successfully updated, but by default it goes to the - object detail page so the user can see their changes reflected. - - """ - if self.success_url: - return self.success_url - return self.object.web_get_detail_url()
    - -
    [docs] def get_initial(self): - """ - Django hook, modified for Evennia. - - Prepopulates the update form field values based on object db attributes. - - Returns: - data (dict): Dictionary of key:value pairs containing initial form - data. - - """ - # Get the object we want to update - obj = self.get_object() - - # Get attributes - data = {k: getattr(obj.db, k, "") for k in self.form_class.base_fields} - - # Get model fields - data.update({k: getattr(obj, k, "") for k in self.form_class.Meta.fields}) - - return data
    - -
    [docs] def form_valid(self, form): - """ - Override of Django hook. - - Updates object attributes based on values submitted. - - This is run when the form is submitted and the data on it is deemed - valid-- all values are within expected ranges, all strings contain - valid characters and lengths, etc. - - This method is only called if all values for the fields submitted - passed form validation, so at this point we can assume the data is - validated and sanitized. - - """ - # Get the attributes after they've been cleaned and validated - data = {k: v for k, v in form.cleaned_data.items() if k not in self.form_class.Meta.fields} - - # Update the object attributes - for key, value in data.items(): - self.object.attributes.add(key, value) - messages.success(self.request, "Successfully updated '%s' for %s." % (key, self.object)) - - # Do not return super().form_valid; we don't want to update the model - # instance, just its attributes. - return HttpResponseRedirect(self.get_success_url())
    - - -# -# Account views -# - - -
    [docs]class AccountMixin(TypeclassMixin): - """ - This is a "mixin", a modifier of sorts. - - Any view class with this in its inheritance list will be modified to work - with Account objects instead of generic Objects or otherwise. - - """ - - # -- Django constructs -- - model = class_from_module(settings.BASE_ACCOUNT_TYPECLASS, - fallback=settings.FALLBACK_ACCOUNT_TYPECLASS) - form_class = website_forms.AccountForm
    - - -
    [docs]class AccountCreateView(AccountMixin, EvenniaCreateView): - """ - Account creation view. - - """ - - # -- Django constructs -- - template_name = "website/registration/register.html" - success_url = reverse_lazy("login") - -
    [docs] def form_valid(self, form): - """ - Django hook, modified for Evennia. - - This hook is called after a valid form is submitted. - - When an account creation form is submitted and the data is deemed valid, - proceeds with creating the Account object. - - """ - # Get values provided - username = form.cleaned_data["username"] - password = form.cleaned_data["password1"] - email = form.cleaned_data.get("email", "") - - # Create account - account, errs = self.typeclass.create(username=username, password=password, email=email) - - # If unsuccessful, display error messages to user - if not account: - [messages.error(self.request, err) for err in errs] - - # Call the Django "form failure" hook - return self.form_invalid(form) - - # Inform user of success - messages.success( - self.request, - "Your account '%s' was successfully created! " - "You may log in using it now." % account.name, - ) - - # Redirect the user to the login page - return HttpResponseRedirect(self.success_url)
    - - -# -# Character views -# - - -
    [docs]class CharacterMixin(TypeclassMixin): - """ - This is a "mixin", a modifier of sorts. - - Any view class with this in its inheritance list will be modified to work - with Character objects instead of generic Objects or otherwise. - - """ - - # -- Django constructs -- - model = class_from_module(settings.BASE_CHARACTER_TYPECLASS, - fallback=settings.FALLBACK_CHARACTER_TYPECLASS) - form_class = website_forms.CharacterForm - success_url = reverse_lazy("character-manage") - -
    [docs] def get_queryset(self): - """ - This method will override the Django get_queryset method to only - return a list of characters associated with the current authenticated - user. - - Returns: - queryset (QuerySet): Django queryset for use in the given view. - - """ - # Get IDs of characters owned by account - account = self.request.user - ids = [getattr(x, "id") for x in account.characters if x] - - # Return a queryset consisting of those characters - return self.typeclass.objects.filter(id__in=ids).order_by(Lower("db_key"))
    - - -
    [docs]class CharacterListView(LoginRequiredMixin, CharacterMixin, ListView): - """ - This view provides a mechanism by which a logged-in player can view a list - of all other characters. - - This view requires authentication by default as a nominal effort to prevent - human stalkers and automated bots/scrapers from harvesting data on your users. - - """ - - # -- Django constructs -- - template_name = "website/character_list.html" - paginate_by = 100 - - # -- Evennia constructs -- - page_title = "Character List" - access_type = "view" - -
    [docs] def get_queryset(self): - """ - This method will override the Django get_queryset method to return a - list of all characters (filtered/sorted) instead of just those limited - to the account. - - Returns: - queryset (QuerySet): Django queryset for use in the given view. - - """ - account = self.request.user - - # Return a queryset consisting of characters the user is allowed to - # see. - ids = [ - obj.id for obj in self.typeclass.objects.all() if obj.access(account, self.access_type) - ] - - return self.typeclass.objects.filter(id__in=ids).order_by(Lower("db_key"))
    - - -
    [docs]class CharacterPuppetView(LoginRequiredMixin, CharacterMixin, RedirectView, ObjectDetailView): - """ - This view provides a mechanism by which a logged-in player can "puppet" one - of their characters within the context of the website. - - It also ensures that any user attempting to puppet something is logged in, - and that their intended puppet is one that they own. - - """ - -
    [docs] def get_redirect_url(self, *args, **kwargs): - """ - Django hook. - - This view returns the URL to which the user should be redirected after - a passed or failed puppet attempt. - - Returns: - url (str): Path to post-puppet destination. - - """ - # Get the requested character, if it belongs to the authenticated user - char = self.get_object() - - # Get the page the user came from - next_page = self.request.GET.get("next", self.success_url) - - if char: - # If the account owns the char, store the ID of the char in the - # Django request's session (different from Evennia session!). - # We do this because characters don't serialize well. - self.request.session["puppet"] = int(char.pk) - messages.success(self.request, "You become '%s'!" % char) - else: - # If the puppeting failed, clear out the cached puppet value - self.request.session["puppet"] = None - messages.error(self.request, "You cannot become '%s'." % char) - - return next_page
    - - -
    [docs]class CharacterManageView(LoginRequiredMixin, CharacterMixin, ListView): - """ - This view provides a mechanism by which a logged-in player can browse, - edit, or delete their own characters. - - """ - - # -- Django constructs -- - paginate_by = 10 - template_name = "website/character_manage_list.html" - - # -- Evennia constructs -- - page_title = "Manage Characters"
    - - -
    [docs]class CharacterUpdateView(CharacterMixin, ObjectUpdateView): - """ - This view provides a mechanism by which a logged-in player (enforced by - ObjectUpdateView) can edit the attributes of a character they own. - - """ - - # -- Django constructs -- - form_class = website_forms.CharacterUpdateForm - template_name = "website/character_form.html"
    - - -
    [docs]class CharacterDetailView(CharacterMixin, ObjectDetailView): - """ - This view provides a mechanism by which a user can view the attributes of - a character, owned by them or not. - - """ - - # -- Django constructs -- - template_name = "website/object_detail.html" - - # -- Evennia constructs -- - # What attributes to display for this object - attributes = ["name", "desc"] - access_type = "view" - -
    [docs] def get_queryset(self): - """ - This method will override the Django get_queryset method to return a - list of all characters the user may access. - - Returns: - queryset (QuerySet): Django queryset for use in the given view. - - """ - account = self.request.user - - # Return a queryset consisting of characters the user is allowed to - # see. - ids = [ - obj.id for obj in self.typeclass.objects.all() if obj.access(account, self.access_type) - ] - - return self.typeclass.objects.filter(id__in=ids).order_by(Lower("db_key"))
    - - -
    [docs]class CharacterDeleteView(CharacterMixin, ObjectDeleteView): - """ - This view provides a mechanism by which a logged-in player (enforced by - ObjectDeleteView) can delete a character they own. - - """ - - pass
    - - -
    [docs]class CharacterCreateView(CharacterMixin, ObjectCreateView): - """ - This view provides a mechanism by which a logged-in player (enforced by - ObjectCreateView) can create a new character. - - """ - - # -- Django constructs -- - template_name = "website/character_form.html" - -
    [docs] def form_valid(self, form): - """ - Django hook, modified for Evennia. - - This hook is called after a valid form is submitted. - - When an character creation form is submitted and the data is deemed valid, - proceeds with creating the Character object. - - """ - # Get account object creating the character - account = self.request.user - character = None - - # Get attributes from the form - self.attributes = {k: form.cleaned_data[k] for k in form.cleaned_data.keys()} - charname = self.attributes.pop("db_key") - description = self.attributes.pop("desc") - # Create a character - character, errors = self.typeclass.create(charname, account, description=description) - - if errors: - # Echo error messages to the user - [messages.error(self.request, x) for x in errors] - - if character: - # Assign attributes from form - for key, value in self.attributes.items(): - setattr(character.db, key, value) - - # Return the user to the character management page, unless overridden - messages.success(self.request, "Your character '%s' was created!" % character.name) - return HttpResponseRedirect(self.success_url) - - else: - # Call the Django "form failed" hook - messages.error(self.request, "Your character could not be created.") - return self.form_invalid(form)
    - - -# -# Channel views -# - - -
    [docs]class ChannelMixin(TypeclassMixin): - """ - This is a "mixin", a modifier of sorts. - - Any view class with this in its inheritance list will be modified to work - with HelpEntry objects instead of generic Objects or otherwise. - - """ - - # -- Django constructs -- - model = class_from_module(settings.BASE_CHANNEL_TYPECLASS, - fallback=settings.FALLBACK_CHANNEL_TYPECLASS) - - # -- Evennia constructs -- - page_title = "Channels" - - # What lock type to check for the requesting user, authenticated or not. - # https://github.com/evennia/evennia/wiki/Locks#valid-access_types - access_type = "listen" - -
    [docs] def get_queryset(self): - """ - Django hook; here we want to return a list of only those Channels - and other documentation that the current user is allowed to see. - - Returns: - queryset (QuerySet): List of Channels available to the user. - - """ - account = self.request.user - - # Get list of all Channels - channels = self.typeclass.objects.all().iterator() - - # Now figure out which ones the current user is allowed to see - bucket = [channel.id for channel in channels if channel.access(account, "listen")] - - # Re-query and set a sorted list - filtered = self.typeclass.objects.filter(id__in=bucket).order_by(Lower("db_key")) - - return filtered
    - - -
    [docs]class ChannelListView(ChannelMixin, ListView): - """ - Returns a list of channels that can be viewed by a user, authenticated - or not. - - """ - - # -- Django constructs -- - paginate_by = 100 - template_name = "website/channel_list.html" - - # -- Evennia constructs -- - page_title = "Channel Index" - - max_popular = 10 - -
    [docs] def get_context_data(self, **kwargs): - """ - Django hook; we override it to calculate the most popular channels. - - Returns: - context (dict): Django context object - - """ - context = super(ChannelListView, self).get_context_data(**kwargs) - - # Calculate which channels are most popular - context["most_popular"] = sorted( - list(self.get_queryset()), - key=lambda channel: len(channel.subscriptions.all()), - reverse=True, - )[: self.max_popular] - - return context
    - - -
    [docs]class ChannelDetailView(ChannelMixin, ObjectDetailView): - """ - Returns the log entries for a given channel. - - """ - - # -- Django constructs -- - template_name = "website/channel_detail.html" - - # -- Evennia constructs -- - # What attributes of the object you wish to display on the page. Model-level - # attributes will take precedence over identically-named db.attributes! - # The order you specify here will be followed. - attributes = ["name"] - - # How many log entries to read and display. - max_num_lines = 1000 - -
    [docs] def get_context_data(self, **kwargs): - """ - Django hook; before we can display the channel logs, we need to recall - the logfile and read its lines. - - Returns: - context (dict): Django context object - - """ - # Get the parent context object, necessary first step - context = super(ChannelDetailView, self).get_context_data(**kwargs) - - # Get the filename this Channel is recording to - filename = self.object.attributes.get( - "log_file", default="channel_%s.log" % self.object.key - ) - - # Split log entries so we can filter by time - bucket = [] - for log in (x.strip() for x in tail_log_file(filename, 0, self.max_num_lines)): - if not log: - continue - try: - time, msg = log.split(" [-] ") - time_key = time.split(":")[0] - except ValueError: - # malformed log line - skip line - continue - bucket.append({"key": time_key, "timestamp": time, "message": msg}) - - # Add the processed entries to the context - context["object_list"] = bucket - - # Get a list of unique timestamps by hour and sort them - context["object_filters"] = sorted(set([x["key"] for x in bucket])) - - return context
    - -
    [docs] def get_object(self, queryset=None): - """ - Override of Django hook that retrieves an object by slugified channel - name. - - Returns: - channel (Channel): Channel requested in the URL. - - """ - # Get the queryset for the help entries the user can access - if not queryset: - queryset = self.get_queryset() - - # Find the object in the queryset - channel = slugify(self.kwargs.get("slug", "")) - obj = next((x for x in queryset if slugify(x.db_key) == channel), None) - - # Check if this object was requested in a valid manner - if not obj: - raise HttpResponseBadRequest( - "No %(verbose_name)s found matching the query" - % {"verbose_name": queryset.model._meta.verbose_name} - ) - - return obj
    - - -# -# Help views -# - - -
    [docs]class HelpMixin(TypeclassMixin): - """ - This is a "mixin", a modifier of sorts. - - Any view class with this in its inheritance list will be modified to work - with HelpEntry objects instead of generic Objects or otherwise. - - """ - - # -- Django constructs -- - model = HelpEntry - - # -- Evennia constructs -- - page_title = "Help" - -
    [docs] def get_queryset(self): - """ - Django hook; here we want to return a list of only those HelpEntries - and other documentation that the current user is allowed to see. - - Returns: - queryset (QuerySet): List of Help entries available to the user. - - """ - account = self.request.user - - # Get list of all HelpEntries - entries = self.typeclass.objects.all().iterator() - - # Now figure out which ones the current user is allowed to see - bucket = [entry.id for entry in entries if entry.access(account, "view")] - - # Re-query and set a sorted list - filtered = ( - self.typeclass.objects.filter(id__in=bucket) - .order_by(Lower("db_key")) - .order_by(Lower("db_help_category")) - ) - - return filtered
    - - -
    [docs]class HelpListView(HelpMixin, ListView): - """ - Returns a list of help entries that can be viewed by a user, authenticated - or not. - - """ - - # -- Django constructs -- - paginate_by = 500 - template_name = "website/help_list.html" - - # -- Evennia constructs -- - page_title = "Help Index"
    - - -
    [docs]class HelpDetailView(HelpMixin, EvenniaDetailView): - """ - Returns the detail page for a given help entry. - - """ - - # -- Django constructs -- - template_name = "website/help_detail.html" - -
    [docs] def get_context_data(self, **kwargs): - """ - Adds navigational data to the template to let browsers go to the next - or previous entry in the help list. - - Returns: - context (dict): Django context object - - """ - context = super(HelpDetailView, self).get_context_data(**kwargs) - - # Get the object in question - obj = self.get_object() - - # Get queryset and filter out non-related categories - queryset = ( - self.get_queryset() - .filter(db_help_category=obj.db_help_category) - .order_by(Lower("db_key")) - ) - context["topic_list"] = queryset - - # Find the index position of the given obj in the queryset - objs = list(queryset) - for i, x in enumerate(objs): - if obj is x: - break - - # Find the previous and next topics, if either exist - try: - assert i + 1 <= len(objs) and objs[i + 1] is not obj - context["topic_next"] = objs[i + 1] - except: - context["topic_next"] = None - - try: - assert i - 1 >= 0 and objs[i - 1] is not obj - context["topic_previous"] = objs[i - 1] - except: - context["topic_previous"] = None - - # Format the help entry using HTML instead of newlines - text = obj.db_entrytext - text = text.replace("\r\n\r\n", "\n\n") - text = text.replace("\r\n", "\n") - text = text.replace("\n", "<br />") - context["entry_text"] = text - - return context
    - -
    [docs] def get_object(self, queryset=None): - """ - Override of Django hook that retrieves an object by category and topic - instead of pk and slug. - - Returns: - entry (HelpEntry): HelpEntry requested in the URL. - - """ - # Get the queryset for the help entries the user can access - if not queryset: - queryset = self.get_queryset() - - # Find the object in the queryset - category = slugify(self.kwargs.get("category", "")) - topic = slugify(self.kwargs.get("topic", "")) - obj = next( - ( - x - for x in queryset - if slugify(x.db_help_category) == category and slugify(x.db_key) == topic - ), - None, - ) - - # Check if this object was requested in a valid manner - if not obj: - return HttpResponseBadRequest( - "No %(verbose_name)s found matching the query" - % {"verbose_name": queryset.model._meta.verbose_name} - ) - - return obj
    -
    - -
    -
    -
    -
    - -
    -
    - - - - \ No newline at end of file diff --git a/docs/0.9.5/_modules/functools.html b/docs/0.9.5/_modules/functools.html index dc9ae6cc93..78333ffc99 100644 --- a/docs/0.9.5/_modules/functools.html +++ b/docs/0.9.5/_modules/functools.html @@ -52,16 +52,15 @@ # See C source code for _functools credits/copyright __all__ = ['update_wrapper', 'wraps', 'WRAPPER_ASSIGNMENTS', 'WRAPPER_UPDATES', - 'total_ordering', 'cache', 'cmp_to_key', 'lru_cache', 'reduce', - 'partial', 'partialmethod', 'singledispatch', 'singledispatchmethod', - 'cached_property'] + 'total_ordering', 'cmp_to_key', 'lru_cache', 'reduce', 'partial', + 'partialmethod', 'singledispatch', 'singledispatchmethod', + "cached_property"] from abc import get_cache_token from collections import namedtuple # import types, weakref # Deferred to single_dispatch() from reprlib import recursive_repr from _thread import RLock -from types import GenericAlias ################################################################################ @@ -130,84 +129,80 @@ def _gt_from_lt(self, other, NotImplemented=NotImplemented): 'Return a > b. Computed by @total_ordering from (not a < b) and (a != b).' - op_result = type(self).__lt__(self, other) + op_result = self.__lt__(other) if op_result is NotImplemented: return op_result return not op_result and self != other def _le_from_lt(self, other, NotImplemented=NotImplemented): 'Return a <= b. Computed by @total_ordering from (a < b) or (a == b).' - op_result = type(self).__lt__(self, other) - if op_result is NotImplemented: - return op_result + op_result = self.__lt__(other) return op_result or self == other def _ge_from_lt(self, other, NotImplemented=NotImplemented): 'Return a >= b. Computed by @total_ordering from (not a < b).' - op_result = type(self).__lt__(self, other) + op_result = self.__lt__(other) if op_result is NotImplemented: return op_result return not op_result def _ge_from_le(self, other, NotImplemented=NotImplemented): 'Return a >= b. Computed by @total_ordering from (not a <= b) or (a == b).' - op_result = type(self).__le__(self, other) + op_result = self.__le__(other) if op_result is NotImplemented: return op_result return not op_result or self == other def _lt_from_le(self, other, NotImplemented=NotImplemented): 'Return a < b. Computed by @total_ordering from (a <= b) and (a != b).' - op_result = type(self).__le__(self, other) + op_result = self.__le__(other) if op_result is NotImplemented: return op_result return op_result and self != other def _gt_from_le(self, other, NotImplemented=NotImplemented): 'Return a > b. Computed by @total_ordering from (not a <= b).' - op_result = type(self).__le__(self, other) + op_result = self.__le__(other) if op_result is NotImplemented: return op_result return not op_result def _lt_from_gt(self, other, NotImplemented=NotImplemented): 'Return a < b. Computed by @total_ordering from (not a > b) and (a != b).' - op_result = type(self).__gt__(self, other) + op_result = self.__gt__(other) if op_result is NotImplemented: return op_result return not op_result and self != other def _ge_from_gt(self, other, NotImplemented=NotImplemented): 'Return a >= b. Computed by @total_ordering from (a > b) or (a == b).' - op_result = type(self).__gt__(self, other) - if op_result is NotImplemented: - return op_result + op_result = self.__gt__(other) return op_result or self == other def _le_from_gt(self, other, NotImplemented=NotImplemented): 'Return a <= b. Computed by @total_ordering from (not a > b).' - op_result = type(self).__gt__(self, other) + op_result = self.__gt__(other) if op_result is NotImplemented: return op_result return not op_result def _le_from_ge(self, other, NotImplemented=NotImplemented): 'Return a <= b. Computed by @total_ordering from (not a >= b) or (a == b).' - op_result = type(self).__ge__(self, other) + op_result = self.__ge__(other) if op_result is NotImplemented: return op_result return not op_result or self == other def _gt_from_ge(self, other, NotImplemented=NotImplemented): 'Return a > b. Computed by @total_ordering from (a >= b) and (a != b).' - op_result = type(self).__ge__(self, other) + op_result = self.__ge__(other) if op_result is NotImplemented: return op_result return op_result and self != other def _lt_from_ge(self, other, NotImplemented=NotImplemented): 'Return a < b. Computed by @total_ordering from (not a >= b).' - op_result = type(self).__ge__(self, other) + op_result = self.__ge__(other) if op_result is NotImplemented: return op_result return not op_result @@ -393,7 +388,23 @@ callables as instance methods. """ - def __init__(self, func, /, *args, **keywords): + def __init__(*args, **keywords): + if len(args) >= 2: + self, func, *args = args + elif not args: + raise TypeError("descriptor '__init__' of partialmethod " + "needs an argument") + elif 'func' in keywords: + func = keywords.pop('func') + self, *args = args + import warnings + warnings.warn("Passing 'func' as keyword argument is deprecated", + DeprecationWarning, stacklevel=2) + else: + raise TypeError("type 'partialmethod' takes at least one argument, " + "got %d" % (len(args)-1)) + args = tuple(args) + if not callable(func) and not hasattr(func, "__get__"): raise TypeError("{!r} is not callable or a descriptor" .format(func)) @@ -411,6 +422,7 @@ self.func = func self.args = args self.keywords = keywords + __init__.__text_signature__ = '($self, func, /, *args, **keywords)' def __repr__(self): args = ", ".join(map(repr, self.args)) @@ -454,9 +466,6 @@ def __isabstractmethod__(self): return getattr(self.func, "__isabstractmethod__", False) - __class_getitem__ = classmethod(GenericAlias) - - # Helper functions def _unwrap_partial(func): @@ -533,7 +542,7 @@ with f.cache_info(). Clear the cache and statistics with f.cache_clear(). Access the underlying function with f.__wrapped__. - See: https://en.wikipedia.org/wiki/Cache_replacement_policies#Least_recently_used_(LRU) + See: http://en.wikipedia.org/wiki/Cache_replacement_policies#Least_recently_used_(LRU) """ @@ -550,7 +559,6 @@ # The user_function was passed in directly via the maxsize argument user_function, maxsize = maxsize, 128 wrapper = _lru_cache_wrapper(user_function, maxsize, typed, _CacheInfo) - wrapper.cache_parameters = lambda : {'maxsize': maxsize, 'typed': typed} return update_wrapper(wrapper, user_function) elif maxsize is not None: raise TypeError( @@ -558,7 +566,6 @@ def decorating_function(user_function): wrapper = _lru_cache_wrapper(user_function, maxsize, typed, _CacheInfo) - wrapper.cache_parameters = lambda : {'maxsize': maxsize, 'typed': typed} return update_wrapper(wrapper, user_function) return decorating_function @@ -685,15 +692,6 @@ pass -################################################################################ -### cache -- simplified access to the infinity cache -################################################################################ - -def cache(user_function, /): - 'Simple lightweight unbounded cache. Sometimes called "memoize".' - return lru_cache(maxsize=None)(user_function) - - ################################################################################ ### singledispatch() - single-dispatch generic function decorator ################################################################################ @@ -701,7 +699,7 @@ def _c3_merge(sequences): """Merges MROs in *sequences* to a single MRO using the C3 algorithm. - Adapted from https://www.python.org/download/releases/2.3/mro/. + Adapted from http://www.python.org/download/releases/2.3/mro/. """ result = [] @@ -1018,8 +1016,6 @@ ) raise TypeError(msg) from None return val - - __class_getitem__ = classmethod(GenericAlias)
    @@ -1045,11 +1041,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_modules/index.html b/docs/0.9.5/_modules/index.html index 39c23a5592..92df8bb36e 100644 --- a/docs/0.9.5/_modules/index.html +++ b/docs/0.9.5/_modules/index.html @@ -43,10 +43,8 @@
  • django.db.models.fields.related_descriptors
  • django.db.models.manager
  • django.db.models.query_utils
  • -
  • django.utils.functional
  • evennia
  • functools
  • @@ -252,11 +238,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/_sources/Default-Commands.md.txt b/docs/0.9.5/_sources/Default-Commands.md.txt index c669f0179e..36d32e14d5 100644 --- a/docs/0.9.5/_sources/Default-Commands.md.txt +++ b/docs/0.9.5/_sources/Default-Commands.md.txt @@ -17,12 +17,12 @@ with [EvEditor](./EvEditor.md), flipping pages in [EvMore](./EvMore.md) or using - [**__unloggedin_look_command** [l, look]](evennia.commands.default.unloggedin.CmdUnconnectedLook) (cmdset: [UnloggedinCmdSet](evennia.commands.default.cmdset_unloggedin.UnloggedinCmdSet), help-category: _General_) - [**about** [version]](evennia.commands.default.system.CmdAbout) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _System_) - [**access** [hierarchy, groups]](evennia.commands.default.general.CmdAccess) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _General_) -- [**accounts** [listaccounts, account]](evennia.commands.default.system.CmdAccounts) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _System_) -- [**addcom** [aliaschan, chanalias]](evennia.commands.default.comms.CmdAddCom) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_) +- [**accounts** [account, listaccounts]](evennia.commands.default.system.CmdAccounts) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _System_) +- [**addcom** [chanalias, aliaschan]](evennia.commands.default.comms.CmdAddCom) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_) - [**alias** [setobjalias]](evennia.commands.default.building.CmdSetObjAlias) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) - [**allcom**](evennia.commands.default.comms.CmdAllCom) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_) - [**batchcode** [batchcodes]](evennia.commands.default.batchprocess.CmdBatchCode) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) -- [**batchcommands** [batchcommand, batchcmd]](evennia.commands.default.batchprocess.CmdBatchCommands) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) +- [**batchcommands** [batchcmd, batchcommand]](evennia.commands.default.batchprocess.CmdBatchCommands) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) - [**cboot**](evennia.commands.default.comms.CmdCBoot) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_) - [**ccreate** [channelcreate]](evennia.commands.default.comms.CmdChannelCreate) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_) - [**cdesc**](evennia.commands.default.comms.CmdCdesc) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_) @@ -34,25 +34,25 @@ with [EvEditor](./EvEditor.md), flipping pages in [EvMore](./EvMore.md) or using - [**clock**](evennia.commands.default.comms.CmdClock) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_) - [**cmdsets** [listcmsets]](evennia.commands.default.building.CmdListCmdSets) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) - [**color**](evennia.commands.default.account.CmdColorTest) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_) -- [**connect** [co, conn, con]](evennia.commands.default.unloggedin.CmdUnconnectedConnect) (cmdset: [UnloggedinCmdSet](evennia.commands.default.cmdset_unloggedin.UnloggedinCmdSet), help-category: _General_) +- [**connect** [conn, co, con]](evennia.commands.default.unloggedin.CmdUnconnectedConnect) (cmdset: [UnloggedinCmdSet](evennia.commands.default.cmdset_unloggedin.UnloggedinCmdSet), help-category: _General_) - [**copy**](evennia.commands.default.building.CmdCopy) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) - [**cpattr**](evennia.commands.default.building.CmdCpAttr) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) - [**create**](evennia.commands.default.building.CmdCreate) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) - [**create** [cre, cr]](evennia.commands.default.unloggedin.CmdUnconnectedCreate) (cmdset: [UnloggedinCmdSet](evennia.commands.default.cmdset_unloggedin.UnloggedinCmdSet), help-category: _General_) - [**cwho**](evennia.commands.default.comms.CmdCWho) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_) -- [**delcom** [delaliaschan, delchanalias]](evennia.commands.default.comms.CmdDelCom) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_) +- [**delcom** [delchanalias, delaliaschan]](evennia.commands.default.comms.CmdDelCom) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_) - [**desc** [describe]](evennia.commands.default.building.CmdDesc) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) - [**destroy** [delete, del]](evennia.commands.default.building.CmdDestroy) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) - [**dig**](evennia.commands.default.building.CmdDig) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) - [**drop**](evennia.commands.default.general.CmdDrop) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _General_) - [**encoding** [encode]](evennia.commands.default.unloggedin.CmdUnconnectedEncoding) (cmdset: [UnloggedinCmdSet](evennia.commands.default.cmdset_unloggedin.UnloggedinCmdSet), help-category: _General_) -- [**examine** [exam, ex]](evennia.commands.default.building.CmdExamine) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Building_) +- [**examine** [ex, exam]](evennia.commands.default.building.CmdExamine) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Building_) - [**find** [search, locate]](evennia.commands.default.building.CmdFind) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) - [**get** [grab]](evennia.commands.default.general.CmdGet) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _General_) - [**give**](evennia.commands.default.general.CmdGive) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _General_) - [**grapevine2chan**](evennia.commands.default.comms.CmdGrapevine2Chan) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_) - [**help** [?]](evennia.commands.default.help.CmdHelp) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_) -- [**help** [?, h]](evennia.commands.default.unloggedin.CmdUnconnectedHelp) (cmdset: [UnloggedinCmdSet](evennia.commands.default.cmdset_unloggedin.UnloggedinCmdSet), help-category: _General_) +- [**help** [h, ?]](evennia.commands.default.unloggedin.CmdUnconnectedHelp) (cmdset: [UnloggedinCmdSet](evennia.commands.default.cmdset_unloggedin.UnloggedinCmdSet), help-category: _General_) - [**home**](evennia.commands.default.general.CmdHome) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _General_) - [**ic** [puppet]](evennia.commands.default.account.CmdIC) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_) - [**info**](evennia.commands.default.unloggedin.CmdUnconnectedInfo) (cmdset: [UnloggedinCmdSet](evennia.commands.default.cmdset_unloggedin.UnloggedinCmdSet), help-category: _General_) @@ -61,18 +61,18 @@ with [EvEditor](./EvEditor.md), flipping pages in [EvMore](./EvMore.md) or using - [**ircstatus**](evennia.commands.default.comms.CmdIRCStatus) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_) - [**link**](evennia.commands.default.building.CmdLink) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) - [**lock** [locks]](evennia.commands.default.building.CmdLock) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) -- [**look** [ls, l]](evennia.commands.default.account.CmdOOCLook) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_) -- [**look** [ls, l]](evennia.commands.default.general.CmdLook) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _General_) +- [**look** [l, ls]](evennia.commands.default.account.CmdOOCLook) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_) +- [**look** [l, ls]](evennia.commands.default.general.CmdLook) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _General_) - [**mvattr**](evennia.commands.default.building.CmdMvAttr) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) - [**name** [rename]](evennia.commands.default.building.CmdName) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) -- [**nick** [nicks, nickname]](evennia.commands.default.general.CmdNick) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_) -- [**objects** [stats, db, listobjects, listobjs]](evennia.commands.default.system.CmdObjects) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _System_) +- [**nick** [nickname, nicks]](evennia.commands.default.general.CmdNick) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_) +- [**objects** [listobjects, db, listobjs, stats]](evennia.commands.default.system.CmdObjects) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _System_) - [**ooc** [unpuppet]](evennia.commands.default.account.CmdOOC) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_) - [**open**](evennia.commands.default.building.CmdOpen) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) - [**option** [options]](evennia.commands.default.account.CmdOption) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_) - [**page** [tell]](evennia.commands.default.comms.CmdPage) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_) - [**password**](evennia.commands.default.account.CmdPassword) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_) -- [**pose** [:, emote]](evennia.commands.default.general.CmdPose) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _General_) +- [**pose** [emote, :]](evennia.commands.default.general.CmdPose) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _General_) - [**py** [!]](evennia.commands.default.system.CmdPy) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _System_) - [**quell** [unquell]](evennia.commands.default.account.CmdQuell) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_) - [**quit**](evennia.commands.default.account.CmdQuit) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_) @@ -99,7 +99,7 @@ with [EvEditor](./EvEditor.md), flipping pages in [EvMore](./EvMore.md) or using - [**tickers**](evennia.commands.default.system.CmdTickers) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _System_) - [**time** [uptime]](evennia.commands.default.system.CmdTime) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _System_) - [**tunnel** [tun]](evennia.commands.default.building.CmdTunnel) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) -- [**typeclass** [type, parent, update, swap]](evennia.commands.default.building.CmdTypeclass) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) +- [**typeclass** [swap, parent, update, type]](evennia.commands.default.building.CmdTypeclass) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) - [**unlink**](evennia.commands.default.building.CmdUnLink) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) - [**whisper**](evennia.commands.default.general.CmdWhisper) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _General_) - [**who** [doing]](evennia.commands.default.account.CmdWho) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_) diff --git a/docs/0.9.5/_sources/Evennia-API.md.txt b/docs/0.9.5/_sources/Evennia-API.md.txt index b4bbf14866..cb5bcac883 100644 --- a/docs/0.9.5/_sources/Evennia-API.md.txt +++ b/docs/0.9.5/_sources/Evennia-API.md.txt @@ -1,6 +1,6 @@ # API Summary -[evennia](api/evennia.md) - library root +[evennia](evennia) - library root - [evennia.accounts](evennia.accounts) - the out-of-character entities representing players - [evennia.commands](evennia.commands) - handle all inputs. Also includes default commands - [evennia.comms](evennia.comms) - in-game channels and messaging diff --git a/docs/0.9.5/_sources/Online-Setup.md.txt b/docs/0.9.5/_sources/Online-Setup.md.txt index ccd17c2f88..7d3951743a 100644 --- a/docs/0.9.5/_sources/Online-Setup.md.txt +++ b/docs/0.9.5/_sources/Online-Setup.md.txt @@ -179,7 +179,7 @@ AMP_PORT = 4006 ``` The `AMP_PORT` is required to work, since this is the internal port linking Evennia's -[Server and Portal](./Portal-And-Server.md) components together. The other ports are encrypted ports that may be +[Server and Portal](../Components/Portal-And-Server.md) components together. The other ports are encrypted ports that may be useful for custom protocols but are otherwise not used. ### Lockdown mode diff --git a/docs/0.9.5/_static/basic.css b/docs/0.9.5/_static/basic.css index d0fa172aba..5abb60d1aa 100644 --- a/docs/0.9.5/_static/basic.css +++ b/docs/0.9.5/_static/basic.css @@ -313,7 +313,7 @@ img.align-default, .figure.align-default { /* -- sidebars -------------------------------------------------------------- */ -div.sidebar { +.sidebar { margin: 0 0 0.5em 1em; border: 1px solid #787878; padding: 5px 7px 7px 15px; @@ -696,6 +696,19 @@ div.code-block-caption + div > div.highlight > pre { margin-top: 0; } +div.highlight > pre { + font-family: "Courier Prime", monospace; + line-height: 1.4em; + font-size: smaller; +} + +/* default ({code-block}, no arg) - used for in-game code */ +div.highlight-shell.notranslate > div.highlight > pre { + background-color: #faf2e6; + font-weight: bold; + font-style: italic; +} + div.doctest > div.highlight span.gp { /* gp: Generic.Prompt */ user-select: none; } @@ -747,6 +760,7 @@ h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { div.viewcode-block:target { margin: -1px -10px; padding: 0 10px; + font-family: "Courier Prime", monospace; } /* -- math display ---------------------------------------------------------- */ diff --git a/docs/0.9.5/_static/nature.css b/docs/0.9.5/_static/nature.css index 81f2fb719c..c4fbe2c591 100644 --- a/docs/0.9.5/_static/nature.css +++ b/docs/0.9.5/_static/nature.css @@ -12,6 +12,7 @@ @import url("basic.css"); @import url(https://fonts.googleapis.com/css?family=Arvo:400,700,400italic); @import url(https://fonts.googleapis.com/css?family=Open%20Sans:400,700,400italic); +@import url('https://fonts.googleapis.com/css2?family=Courier+Prime:ital,wght@0,400;0,700;1,400;1,700&family=Ubuntu+Mono:ital,wght@0,400;0,700;1,400;1,700&display=swap'); /* -- page layout ----------------------------------------------------------- */ @@ -220,6 +221,10 @@ div.admonition p.admonition-title + p { display: inline; } +p.admonition-title { + margin-right: 0.2em; +} + div.highlight { background-color: #f1f1ef; } @@ -228,6 +233,8 @@ div.note { background-color: #eee; border: 1px solid #ccc; font-style: italic; + text-indent: -2.9em; + padding-left: 3.5em; } div.seealso { @@ -243,6 +250,13 @@ div.warning { background-color: #ffe4e4; border: 1px solid #f66; font-style: italic; + text-indent: -4.6em; + padding-left: 5.2em; +} + +div.important { + text-indent: -5.5em; + padding-left: 6.1em; } p.admonition-title { @@ -283,12 +297,6 @@ dd.field-odd > ul.simple > li > ul > li > dl.simple { background-color: #e1e8e2; } -.admonition.important { - background-color: #fbf7c3; - border: 1px solid #c8c59b; - font-style: italic; -} - pre { padding: 10px; background-color: #e3e3e3; @@ -306,12 +314,12 @@ code { color: #6e0e0e; /* padding: 1px 2px; */ font-size: 0.8em; - font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace; + font-family: "Courier Prime", Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace; font-weight: bold; } .viewcode-back { - font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace; + font-family: "Courier Prime", Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace; } div.viewcode-block:target { @@ -340,7 +348,8 @@ div.code-block-caption { } .versionchanged { - background-color: #f7f7f7; + background-color: #b7e6e8; + padding-left: 10px; } .deprecated { @@ -351,7 +360,7 @@ div.code-block-caption { .class { - font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace; + font-family: "Courier Prime", Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace; font-size: 0.9em; background-color: #f5ffff; padding: 5px; @@ -364,7 +373,7 @@ div.code-block-caption { } .sig-param { - font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace; + font-family: "Courier Prime", Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace; } .sig-paren { @@ -372,7 +381,7 @@ div.code-block-caption { } .property { - font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace; + font-family: "Courier Prime", Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace; } dl.class > dd > p { @@ -398,6 +407,16 @@ 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/_static/pygments.css b/docs/0.9.5/_static/pygments.css index 691aeb82d0..7a181158c7 100644 --- a/docs/0.9.5/_static/pygments.css +++ b/docs/0.9.5/_static/pygments.css @@ -1,26 +1,26 @@ pre { line-height: 125%; } -td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } -span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +td.linenos .normal { color: #666666; background-color: transparent; padding-left: 5px; padding-right: 5px; } +span.linenos { color: #666666; background-color: transparent; padding-left: 5px; padding-right: 5px; } td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } .highlight .hll { background-color: #ffffcc } -.highlight { background: #eeffcc; } -.highlight .c { color: #408090; font-style: italic } /* Comment */ +.highlight { background: #f0f0f0; } +.highlight .c { color: #60a0b0; font-style: italic } /* Comment */ .highlight .err { border: 1px solid #FF0000 } /* Error */ .highlight .k { color: #007020; font-weight: bold } /* Keyword */ .highlight .o { color: #666666 } /* Operator */ -.highlight .ch { color: #408090; font-style: italic } /* Comment.Hashbang */ -.highlight .cm { color: #408090; font-style: italic } /* Comment.Multiline */ +.highlight .ch { color: #60a0b0; font-style: italic } /* Comment.Hashbang */ +.highlight .cm { color: #60a0b0; font-style: italic } /* Comment.Multiline */ .highlight .cp { color: #007020 } /* Comment.Preproc */ -.highlight .cpf { color: #408090; font-style: italic } /* Comment.PreprocFile */ -.highlight .c1 { color: #408090; font-style: italic } /* Comment.Single */ -.highlight .cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */ +.highlight .cpf { color: #60a0b0; font-style: italic } /* Comment.PreprocFile */ +.highlight .c1 { color: #60a0b0; font-style: italic } /* Comment.Single */ +.highlight .cs { color: #60a0b0; background-color: #fff0f0 } /* Comment.Special */ .highlight .gd { color: #A00000 } /* Generic.Deleted */ .highlight .ge { font-style: italic } /* Generic.Emph */ .highlight .gr { color: #FF0000 } /* Generic.Error */ .highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ .highlight .gi { color: #00A000 } /* Generic.Inserted */ -.highlight .go { color: #333333 } /* Generic.Output */ +.highlight .go { color: #888888 } /* Generic.Output */ .highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ .highlight .gs { font-weight: bold } /* Generic.Strong */ .highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ @@ -31,7 +31,7 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: .highlight .kp { color: #007020 } /* Keyword.Pseudo */ .highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */ .highlight .kt { color: #902000 } /* Keyword.Type */ -.highlight .m { color: #208050 } /* Literal.Number */ +.highlight .m { color: #40a070 } /* Literal.Number */ .highlight .s { color: #4070a0 } /* Literal.String */ .highlight .na { color: #4070a0 } /* Name.Attribute */ .highlight .nb { color: #007020 } /* Name.Builtin */ @@ -47,11 +47,11 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: .highlight .nv { color: #bb60d5 } /* Name.Variable */ .highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ -.highlight .mb { color: #208050 } /* Literal.Number.Bin */ -.highlight .mf { color: #208050 } /* Literal.Number.Float */ -.highlight .mh { color: #208050 } /* Literal.Number.Hex */ -.highlight .mi { color: #208050 } /* Literal.Number.Integer */ -.highlight .mo { color: #208050 } /* Literal.Number.Oct */ +.highlight .mb { color: #40a070 } /* Literal.Number.Bin */ +.highlight .mf { color: #40a070 } /* Literal.Number.Float */ +.highlight .mh { color: #40a070 } /* Literal.Number.Hex */ +.highlight .mi { color: #40a070 } /* Literal.Number.Integer */ +.highlight .mo { color: #40a070 } /* Literal.Number.Oct */ .highlight .sa { color: #4070a0 } /* Literal.String.Affix */ .highlight .sb { color: #4070a0 } /* Literal.String.Backtick */ .highlight .sc { color: #4070a0 } /* Literal.String.Char */ @@ -71,4 +71,4 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: .highlight .vg { color: #bb60d5 } /* Name.Variable.Global */ .highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */ .highlight .vm { color: #bb60d5 } /* Name.Variable.Magic */ -.highlight .il { color: #208050 } /* Literal.Number.Integer.Long */ \ No newline at end of file +.highlight .il { color: #40a070 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/docs/0.9.5/api/evennia-api.html b/docs/0.9.5/api/evennia-api.html index ddf3a4f8a8..2e468a6030 100644 --- a/docs/0.9.5/api/evennia-api.html +++ b/docs/0.9.5/api/evennia-api.html @@ -146,7 +146,10 @@
  • 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 +
  • evennia.contrib.tutorial_examples.red_button_scripts
  • evennia.contrib.tutorial_examples.tests
  • @@ -167,10 +170,7 @@
  • evennia.locks
  • @@ -267,10 +267,19 @@
  • evennia.utils

    Versions

    -
  • diff --git a/docs/0.9.5/api/evennia.accounts.accounts.html b/docs/0.9.5/api/evennia.accounts.accounts.html index a67d58f5c7..06dde45a4e 100644 --- a/docs/0.9.5/api/evennia.accounts.accounts.html +++ b/docs/0.9.5/api/evennia.accounts.accounts.html @@ -41,7 +41,7 @@

    evennia.accounts.accounts

    -

    Typeclass for Account objects

    +

    Typeclass for Account objects.

    Note that this object is primarily intended to store OOC information, not game info! This object represents the actual user (not their @@ -182,6 +182,24 @@ at_account_creation()

    property characters
    +
    +
    +get_display_name(looker, **kwargs)[source]
    +

    This is used by channels and other OOC communications methods to give a +custom display of this account’s input.

    +
    +
    Parameters
    +
      +
    • looker (Account) – The one that will see this name.

    • +
    • **kwargs – Unused by default, can be used to pass game-specific data.

    • +
    +
    +
    Returns
    +

    str – The name, possibly modified.

    +
    +
    +
    +
    disconnect_session_from_account(session, reason=None)[source]
    @@ -438,8 +456,9 @@ error (ValidationError, None): Any validation error(s) raised. Multiple

    Notes

    -

    This is called by Django also when logging in; it should not be mixed up with validation, since that -would mean old passwords in the database (pre validation checks) could get invalidated.

    +

    This is called by Django also when logging in; it should not be mixed up with +validation, since that would mean old passwords in the database (pre validation checks) +could get invalidated.

    @@ -495,12 +514,24 @@ errors (list): List of error messages in string form

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

    Deletes the account permanently.

    +

    Deletes the account persistently.

    Notes

    *args and **kwargs are passed on to the base delete

    mechanism (these are usually not used).

    +
    +
    Returns
    +

    bool

    +
    +
    If deletion was successful. Only time it fails would be

    if the Account was already deleted. Note that even on a failure, +connected resources (nicks/aliases etc) will still have been +deleted.

    +
    +
    +

    +
    +
    @@ -556,6 +587,81 @@ commands at run-time.

    +
    +
    +at_pre_channel_msg(message, channel, senders=None, **kwargs)[source]
    +

    Called by the Channel just before passing a message into channel_msg. +This allows for tweak messages per-user and also to abort the +receive on the receiver-level.

    +
    +
    Parameters
    +
      +
    • message (str) – The message sent to the channel.

    • +
    • channel (Channel) – The sending channel.

    • +
    • senders (list, optional) – Accounts or Objects acting as senders. +For most normal messages, there is only a single sender. If +there are no senders, this may be a broadcasting message.

    • +
    • **kwargs – These are additional keywords passed into channel_msg. +If no_prefix=True or emit=True are passed, the channel +prefix will not be added (**[channelname]: ** by default)

    • +
    +
    +
    Returns
    +

    str or None

    +
    +
    Allows for customizing the message for this recipient.

    If returning None (or False) message-receiving is aborted. +The returning string will be passed into self.channel_msg.

    +
    +
    +

    +
    +
    +

    Notes

    +

    This support posing/emotes by starting channel-send with : or ;.

    +
    + +
    +
    +channel_msg(message, channel, senders=None, **kwargs)[source]
    +

    This performs the actions of receiving a message to an un-muted +channel.

    +
    +
    Parameters
    +
      +
    • message (str) – The message sent to the channel.

    • +
    • channel (Channel) – The sending channel.

    • +
    • senders (list, optional) – Accounts or Objects acting as senders. +For most normal messages, there is only a single sender. If +there are no senders, this may be a broadcasting message or +similar.

    • +
    • **kwargs – These are additional keywords originally passed into +Channel.msg.

    • +
    +
    +
    +

    Notes

    +

    Before this, Channel.at_pre_channel_msg will fire, which offers a way +to customize the message for the receiver on the channel-level.

    +
    + +
    +
    +at_post_channel_msg(message, channel, senders=None, **kwargs)[source]
    +

    Called by self.channel_msg after message was received.

    +
    +
    Parameters
    +
      +
    • message (str) – The message sent to the channel.

    • +
    • channel (Channel) – The sending channel.

    • +
    • senders (list, optional) – Accounts or Objects acting as senders. +For most normal messages, there is only a single sender. If +there are no senders, this may be a broadcasting message.

    • +
    • **kwargs – These are additional keywords passed into channel_msg.

    • +
    +
    +
    +
    +
    search(searchdata, return_puppet=False, search_object=False, typeclass=None, nofound_string=None, multimatch_string=None, use_nicks=True, quiet=False, **kwargs)[source]
    @@ -1063,11 +1169,11 @@ overriding the call (unused by default).

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.accounts.admin.html b/docs/0.9.5/api/evennia.accounts.admin.html index 534b341b49..552af8a570 100644 --- a/docs/0.9.5/api/evennia.accounts.admin.html +++ b/docs/0.9.5/api/evennia.accounts.admin.html @@ -39,308 +39,8 @@
    -
    -

    evennia.accounts.admin

    -
    -
    -class evennia.accounts.admin.AccountDBChangeForm(*args, **kwargs)[source]
    -

    Bases: django.contrib.auth.forms.UserChangeForm

    -

    Modify the accountdb class.

    -
    -
    -class Meta[source]
    -

    Bases: object

    -
    -
    -model
    -

    alias of evennia.accounts.models.AccountDB

    -
    - -
    -
    -fields = '__all__'
    -
    - -
    - -
    -
    -clean_username()[source]
    -

    Clean the username and check its existence.

    -
    - -
    -
    -base_fields = {'date_joined': <django.forms.fields.DateTimeField object>, 'db_attributes': <django.forms.models.ModelMultipleChoiceField object>, 'db_cmdset_storage': <django.forms.fields.CharField object>, 'db_is_bot': <django.forms.fields.BooleanField object>, 'db_is_connected': <django.forms.fields.BooleanField object>, 'db_key': <django.forms.fields.CharField object>, 'db_lock_storage': <django.forms.fields.CharField object>, 'db_tags': <django.forms.models.ModelMultipleChoiceField object>, 'db_typeclass_path': <django.forms.fields.CharField object>, 'email': <django.forms.fields.EmailField object>, 'first_name': <django.forms.fields.CharField object>, 'groups': <django.forms.models.ModelMultipleChoiceField object>, 'is_active': <django.forms.fields.BooleanField object>, 'is_staff': <django.forms.fields.BooleanField object>, 'is_superuser': <django.forms.fields.BooleanField object>, 'last_login': <django.forms.fields.DateTimeField object>, 'last_name': <django.forms.fields.CharField object>, 'password': <django.contrib.auth.forms.ReadOnlyPasswordHashField object>, 'user_permissions': <django.forms.models.ModelMultipleChoiceField object>, 'username': <django.forms.fields.RegexField object>}
    -
    - -
    -
    -declared_fields = {'password': <django.contrib.auth.forms.ReadOnlyPasswordHashField object>, 'username': <django.forms.fields.RegexField object>}
    -
    - -
    -
    -property media
    -

    Return all media required to render the widgets on this form.

    -
    - -
    - -
    -
    -class evennia.accounts.admin.AccountDBCreationForm(*args, **kwargs)[source]
    -

    Bases: django.contrib.auth.forms.UserCreationForm

    -

    Create a new AccountDB instance.

    -
    -
    -class Meta[source]
    -

    Bases: object

    -
    -
    -model
    -

    alias of evennia.accounts.models.AccountDB

    -
    - -
    -
    -fields = '__all__'
    -
    - -
    - -
    -
    -clean_username()[source]
    -

    Cleanup username.

    -
    - -
    -
    -base_fields = {'date_joined': <django.forms.fields.DateTimeField object>, 'db_attributes': <django.forms.models.ModelMultipleChoiceField object>, 'db_cmdset_storage': <django.forms.fields.CharField object>, 'db_is_bot': <django.forms.fields.BooleanField object>, 'db_is_connected': <django.forms.fields.BooleanField object>, 'db_key': <django.forms.fields.CharField object>, 'db_lock_storage': <django.forms.fields.CharField object>, 'db_tags': <django.forms.models.ModelMultipleChoiceField object>, 'db_typeclass_path': <django.forms.fields.CharField object>, 'email': <django.forms.fields.EmailField object>, 'first_name': <django.forms.fields.CharField object>, 'groups': <django.forms.models.ModelMultipleChoiceField object>, 'is_active': <django.forms.fields.BooleanField object>, 'is_staff': <django.forms.fields.BooleanField object>, 'is_superuser': <django.forms.fields.BooleanField object>, 'last_login': <django.forms.fields.DateTimeField object>, 'last_name': <django.forms.fields.CharField object>, 'password': <django.forms.fields.CharField object>, 'password1': <django.forms.fields.CharField object>, 'password2': <django.forms.fields.CharField object>, 'user_permissions': <django.forms.models.ModelMultipleChoiceField object>, 'username': <django.forms.fields.RegexField object>}
    -
    - -
    -
    -declared_fields = {'password1': <django.forms.fields.CharField object>, 'password2': <django.forms.fields.CharField object>, 'username': <django.forms.fields.RegexField object>}
    -
    - -
    -
    -property media
    -

    Return all media required to render the widgets on this form.

    -
    - -
    - -
    -
    -class evennia.accounts.admin.AccountForm(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False, instance=None, use_required_attribute=None, renderer=None)[source]
    -

    Bases: django.forms.models.ModelForm

    -

    Defines how to display Accounts

    -
    -
    -class Meta[source]
    -

    Bases: object

    -
    -
    -model
    -

    alias of evennia.accounts.models.AccountDB

    -
    - -
    -
    -fields = '__all__'
    -
    - -
    -
    -app_label = 'accounts'
    -
    - -
    - -
    -
    -base_fields = {'date_joined': <django.forms.fields.DateTimeField object>, 'db_attributes': <django.forms.models.ModelMultipleChoiceField object>, 'db_cmdset_storage': <django.forms.fields.CharField object>, 'db_is_bot': <django.forms.fields.BooleanField object>, 'db_is_connected': <django.forms.fields.BooleanField object>, 'db_key': <django.forms.fields.RegexField object>, 'db_lock_storage': <django.forms.fields.CharField object>, 'db_permissions': <django.forms.fields.CharField object>, 'db_tags': <django.forms.models.ModelMultipleChoiceField object>, 'db_typeclass_path': <django.forms.fields.CharField object>, 'email': <django.forms.fields.EmailField object>, 'first_name': <django.forms.fields.CharField object>, 'groups': <django.forms.models.ModelMultipleChoiceField object>, 'is_active': <django.forms.fields.BooleanField object>, 'is_staff': <django.forms.fields.BooleanField object>, 'is_superuser': <django.forms.fields.BooleanField object>, 'last_login': <django.forms.fields.DateTimeField object>, 'last_name': <django.forms.fields.CharField object>, 'password': <django.forms.fields.CharField object>, 'user_permissions': <django.forms.models.ModelMultipleChoiceField object>, 'username': <django.forms.fields.CharField object>}
    -
    - -
    -
    -declared_fields = {'db_cmdset_storage': <django.forms.fields.CharField object>, 'db_key': <django.forms.fields.RegexField object>, 'db_lock_storage': <django.forms.fields.CharField object>, 'db_permissions': <django.forms.fields.CharField object>, 'db_typeclass_path': <django.forms.fields.CharField object>}
    -
    - -
    -
    -property media
    -

    Return all media required to render the widgets on this form.

    -
    - -
    - -
    -
    -class evennia.accounts.admin.AccountInline(parent_model, admin_site)[source]
    -

    Bases: django.contrib.admin.options.StackedInline

    -

    Inline creation of Account

    -
    -
    -model
    -

    alias of evennia.accounts.models.AccountDB

    -
    - -
    -
    -template = 'admin/accounts/stacked.html'
    -
    - -
    -
    -form
    -

    alias of AccountForm

    -
    - -
    -
    -fieldsets = (('In-game Permissions and Locks', {'fields': ('db_lock_storage',), 'description': '<i>These are permissions/locks for in-game use. They are unrelated to website access rights.</i>'}), ('In-game Account data', {'fields': ('db_typeclass_path', 'db_cmdset_storage'), 'description': '<i>These fields define in-game-specific properties for the Account object in-game.</i>'}))
    -
    - -
    -
    -extra = 1
    -
    - -
    -
    -max_num = 1
    -
    - -
    -
    -property media
    -
    - -
    - -
    -
    -class evennia.accounts.admin.AccountTagInline(parent_model, admin_site)[source]
    -

    Bases: evennia.typeclasses.admin.TagInline

    -

    Inline Account Tags.

    -
    -
    -model
    -

    alias of evennia.accounts.models.AccountDB_db_tags

    -
    - -
    -
    -related_field = 'accountdb'
    -
    - -
    -
    -property media
    -
    - -
    - -
    -
    -class evennia.accounts.admin.AccountAttributeInline(parent_model, admin_site)[source]
    -

    Bases: evennia.typeclasses.admin.AttributeInline

    -

    Inline Account Attributes.

    -
    -
    -model
    -

    alias of evennia.accounts.models.AccountDB_db_attributes

    -
    - -
    -
    -related_field = 'accountdb'
    -
    - -
    -
    -property media
    -
    - -
    - -
    -
    -class evennia.accounts.admin.AccountDBAdmin(model, admin_site)[source]
    -

    Bases: django.contrib.auth.admin.UserAdmin

    -

    This is the main creation screen for Users/accounts

    -
    -
    -list_display = ('username', 'email', 'is_staff', 'is_superuser')
    -
    - -
    -
    -form
    -

    alias of AccountDBChangeForm

    -
    - -
    -
    -add_form
    -

    alias of AccountDBCreationForm

    -
    - -
    -
    -inlines = [<class 'evennia.accounts.admin.AccountTagInline'>, <class 'evennia.accounts.admin.AccountAttributeInline'>]
    -
    - -
    -
    -fieldsets = ((None, {'fields': ('username', 'password', 'email')}), ('Website profile', {'fields': ('first_name', 'last_name'), 'description': '<i>These are not used in the default system.</i>'}), ('Website dates', {'fields': ('last_login', 'date_joined'), 'description': '<i>Relevant only to the website.</i>'}), ('Website Permissions', {'fields': ('is_active', 'is_staff', 'is_superuser', 'user_permissions', 'groups'), 'description': '<i>These are permissions/permission groups for accessing the admin site. They are unrelated to in-game access rights.</i>'}), ('Game Options', {'fields': ('db_typeclass_path', 'db_cmdset_storage', 'db_lock_storage'), 'description': '<i>These are attributes that are more relevant to gameplay.</i>'}))
    -
    - -
    -
    -add_fieldsets = ((None, {'fields': ('username', 'password1', 'password2', 'email'), 'description': '<i>These account details are shared by the admin system and the game.</i>'}),)
    -
    - -
    -
    -user_change_password(request, id, form_url='')[source]
    -
    - -
    -
    -save_model(request, obj, form, change)[source]
    -

    Custom save actions.

    -
    -
    Parameters
    -
      -
    • request (Request) – Incoming request.

    • -
    • obj (Object) – Object to save.

    • -
    • form (Form) – Related form instance.

    • -
    • change (bool) – False if this is a new save and not an update.

    • -
    -
    -
    -
    - -
    -
    -response_add(request, obj, post_url_continue=None)[source]
    -

    Determine the HttpResponse for the add_view stage. It mostly defers to -its superclass implementation but is customized because the User model -has a slightly different workflow.

    -
    - -
    -
    -property media
    -
    - -
    - +
    +

    evennia.accounts.admin

    @@ -374,11 +74,11 @@ has a slightly different workflow.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.accounts.bots.html b/docs/0.9.5/api/evennia.accounts.bots.html index 60d3a15cdf..03debc6ce6 100644 --- a/docs/0.9.5/api/evennia.accounts.bots.html +++ b/docs/0.9.5/api/evennia.accounts.bots.html @@ -484,11 +484,11 @@ triggered by the bot_data_in Inputfunc.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.accounts.html b/docs/0.9.5/api/evennia.accounts.html index 59b3f3daa2..cf142419f8 100644 --- a/docs/0.9.5/api/evennia.accounts.html +++ b/docs/0.9.5/api/evennia.accounts.html @@ -86,11 +86,11 @@ more Objects depending on settings. An Account has no in-game existence.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -98,7 +98,6 @@ 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 249b5eb503..bf4a527691 100644 --- a/docs/0.9.5/api/evennia.accounts.manager.html +++ b/docs/0.9.5/api/evennia.accounts.manager.html @@ -248,11 +248,11 @@ accounts of this typeclass.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.accounts.models.html b/docs/0.9.5/api/evennia.accounts.models.html index 0233e2de2c..e89b4aa790 100644 --- a/docs/0.9.5/api/evennia.accounts.models.html +++ b/docs/0.9.5/api/evennia.accounts.models.html @@ -402,11 +402,11 @@ class built by **create_forward_many_to_many_manager()** define
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -414,7 +414,6 @@ 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 89e75be58e..8685dd6504 100644 --- a/docs/0.9.5/api/evennia.commands.cmdhandler.html +++ b/docs/0.9.5/api/evennia.commands.cmdhandler.html @@ -47,15 +47,11 @@ command line. The processing of a command works as follows:

    1. The calling object (caller) is analyzed based on its callertype.

    2. Cmdsets are gathered from different sources: -- channels: all available channel names are auto-created into a cmdset, to allow

      +- object cmdsets: all objects at caller’s location are scanned for non-empty

      -

      for giving the channel name and have the following immediately -sent to the channel. The sending is performed by the CMD_CHANNEL -system command.

      +

      cmdsets. This includes cmdsets on exits.

        -
      • object cmdsets: all objects at caller’s location are scanned for non-empty -cmdsets. This includes cmdsets on exits.

      • caller: the caller is searched for its own currently active cmdset.

      • account: lastly the cmdsets defined on caller.account are added.

      @@ -69,19 +65,10 @@ input string for possible command matches.

    3. cmdset, or fallback to error message. Exit.

    4. If no match was found -> check for CMD_NOMATCH in current cmdset or fallback to error message. Exit.

    5. -
    6. A single match was found. If this is a channel-command (i.e. the -ommand name is that of a channel), –> check for CMD_CHANNEL in -current cmdset or use channelhandler default. Exit.

    7. At this point we have found a normal command. We assign useful variables to it that will be available to the command coder at run-time.

    8. -
    -
      -
    1. We have a unique cmdobject, primed for use. Call all hooks:

    2. -
    -
    -

    at_pre_cmd(), cmdobj.parse(), cmdobj.func() and finally at_post_cmd().

    -
    -
      +
    1. We have a unique cmdobject, primed for use. Call all hooks: +at_pre_cmd(), cmdobj.parse(), cmdobj.func() and finally at_post_cmd().

    2. Return deferred that will fire with the return from cmdobj.func() (unused by default).

    @@ -173,11 +160,11 @@ default Evennia.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.commands.cmdparser.html b/docs/0.9.5/api/evennia.commands.cmdparser.html index f63dbe8ab2..ecf729ad76 100644 --- a/docs/0.9.5/api/evennia.commands.cmdparser.html +++ b/docs/0.9.5/api/evennia.commands.cmdparser.html @@ -98,8 +98,8 @@ in the match, otherwise strip them before matching.

    -
    -evennia.commands.cmdparser.try_num_prefixes(raw_string)[source]
    +
    +evennia.commands.cmdparser.try_num_differentiators(raw_string)[source]

    Test if user tried to separate multi-matches with a number separator (default 1-name, 2-name etc). This is usually called last, if no other match was found.

    @@ -196,11 +196,11 @@ the remaining arguments, and the matched cmdobject from the cmdset.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -208,7 +208,6 @@ 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 7cfe1cfafa..fe3a7468ef 100644 --- a/docs/0.9.5/api/evennia.commands.cmdset.html +++ b/docs/0.9.5/api/evennia.commands.cmdset.html @@ -201,8 +201,8 @@ something goes wrong)

    -
    -permanent = False
    +
    +persistent = False
    @@ -217,7 +217,7 @@ something goes wrong)

    -to_duplicate = ('key', 'cmdsetobj', 'no_exits', 'no_objs', 'no_channels', 'permanent', 'mergetype', 'priority', 'duplicates', 'errmessage')
    +to_duplicate = ('key', 'cmdsetobj', 'no_exits', 'no_objs', 'no_channels', 'persistent', 'mergetype', 'priority', 'duplicates', 'errmessage')
    @@ -413,11 +413,11 @@ self.add().

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.commands.cmdsethandler.html b/docs/0.9.5/api/evennia.commands.cmdsethandler.html index 021749a299..d3babf9cd0 100644 --- a/docs/0.9.5/api/evennia.commands.cmdsethandler.html +++ b/docs/0.9.5/api/evennia.commands.cmdsethandler.html @@ -161,7 +161,7 @@ and loads the current cmdset.

    Parameters

    init_mode (bool, optional) – Used automatically right after -this handler was created; it imports all permanent cmdsets +this handler was created; it imports all persistent cmdsets from the database.

    @@ -178,7 +178,7 @@ to the central cmdhandler.get_and_merge_cmdsets()!

    -add(cmdset, emit_to_obj=None, permanent=False, default_cmdset=False)[source]
    +add(cmdset, emit_to_obj=None, persistent=False, default_cmdset=False, **kwargs)[source]

    Add a cmdset to the handler, on top of the old ones, unless it is set as the default one (it will then end up at the bottom of the stack)

    @@ -187,7 +187,7 @@ is set as the default one (it will then end up at the bottom of the stack)

  • cmdset (CmdSet or str) – Can be a cmdset object or the python path to such an object.

  • emit_to_obj (Object, optional) – An object to receive error messages.

  • -
  • permanent (bool, optional) – This cmdset will remain across a server reboot.

  • +
  • persistent (bool, optional) – Let cmdset remain across server reload.

  • default_cmdset (Cmdset, optional) – Insert this to replace the default cmdset position (there is only one such position, always at the bottom of the stack).

  • @@ -208,14 +208,14 @@ it’s a ‘quirk’ that has to be documented.

    -add_default(cmdset, emit_to_obj=None, permanent=True)[source]
    +add_default(cmdset, emit_to_obj=None, persistent=True, **kwargs)[source]

    Shortcut for adding a default cmdset.

    Parameters
    • cmdset (Cmdset) – The Cmdset to add.

    • emit_to_obj (Object, optional) – Gets error messages

    • -
    • permanent (bool, optional) – The new Cmdset should survive a server reboot.

    • +
    • persistent (bool, optional) – The new Cmdset should survive a server reboot.

    @@ -381,11 +381,11 @@ handled automatically by @reload).

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.commands.command.html b/docs/0.9.5/api/evennia.commands.command.html index 101531d80b..46c081dff7 100644 --- a/docs/0.9.5/api/evennia.commands.command.html +++ b/docs/0.9.5/api/evennia.commands.command.html @@ -43,6 +43,13 @@

    evennia.commands.command

    The base Command class.

    All commands in Evennia inherit from the ‘Command’ class in this module.

    +
    +
    +exception evennia.commands.command.InterruptCommand[source]
    +

    Bases: Exception

    +

    Cleanly interrupt a command.

    +
    +
    class evennia.commands.command.CommandMeta(*args, **kwargs)[source]
    @@ -60,7 +67,7 @@
    class evennia.commands.command.Command(**kwargs)[source]

    Bases: object

    -

    Base command

    +

    (you may see this if a child command had no help text defined)

    Usage:

    command [args]

    @@ -142,7 +149,7 @@ replace this without disabling auto_help.

    -arg_regex = None
    +arg_regex = re.compile('^[ /]+.*$|$', re.IGNORECASE)
    @@ -150,6 +157,11 @@ replace this without disabling auto_help.

    msg_all_sessions = False
    +
    +
    +retain_instance = False
    +
    +
    __init__(**kwargs)[source]
    @@ -366,6 +378,44 @@ commands the caller can use.

    +
    +
    +web_get_detail_url()[source]
    +

    Returns the URI path for a View that allows users to view details for +this object.

    +

    ex. 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.

    +

    ex.

    +
    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.

    +

    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.

    +
    +
    Returns
    +

    path (str) – URI path to object detail page, if defined.

    +
    +
    +
    + +
    +
    +web_get_admin_url()[source]
    +

    Returns the URI path for the Django Admin page for this object.

    +

    ex. Account#1 = ‘/admin/accounts/accountdb/1/change/’

    +
    +
    Returns
    +

    path (str) – URI path to Django Admin page for object.

    +
    +
    +
    +
    client_width()[source]
    @@ -377,17 +427,6 @@ 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]
    @@ -440,13 +479,11 @@ detailing the contents of the table.

    save_for_next = False
    - +
    +
    +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'command', 'no_prefix': ' ', 'tags': '', 'text': '\n ## Base command\n\n (you may see this if a child command had no help text defined)\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 '}
    +
    -
    -
    -exception evennia.commands.command.InterruptCommand[source]
    -

    Bases: Exception

    -

    Cleanly interrupt a command.

    @@ -482,11 +519,11 @@ detailing the contents of the table.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 d998c2f3e5..0d81a98933 100644 --- a/docs/0.9.5/api/evennia.commands.default.account.html +++ b/docs/0.9.5/api/evennia.commands.default.account.html @@ -101,6 +101,11 @@ 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', 'no_prefix': ' ', 'tags': '', 'text': '\n look while out-of-character\n\n Usage:\n look\n\n Look in the ooc state.\n '}
    +
    +
    @@ -155,6 +160,11 @@ as you the account have access right to puppet it.

    lock_storage = 'cmd:all()'
    +
    +
    +search_index_entry = {'aliases': 'puppet', 'category': 'general', 'key': 'ic', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -204,6 +214,11 @@ as you the account have access right to puppet it.

    lock_storage = 'cmd:pperm(Player)'
    +
    +
    +search_index_entry = {'aliases': 'unpuppet', 'category': 'general', 'key': 'ooc', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -252,6 +267,11 @@ as you the account have access right to puppet it.

    lock_storage = 'cmd:pperm(Player)'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'password', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -308,6 +328,11 @@ game. Use the /all switch to disconnect from all sessions.

    lock_storage = 'cmd:all()'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'quit', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -359,6 +384,11 @@ if you want.

    lock_storage = 'cmd:pperm(Player)'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'charcreate', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -417,6 +447,11 @@ later connecting with a client with different capabilities.

    lock_storage = 'cmd:all()'
    +
    +
    +search_index_entry = {'aliases': 'options', 'category': 'general', 'key': 'option', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -465,6 +500,11 @@ later connecting with a client with different capabilities.

    lock_storage = 'cmd:all()'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'sessions', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -515,6 +555,11 @@ also for those with all permissions.

    lock_storage = 'cmd:all()'
    +
    +
    +search_index_entry = {'aliases': 'doing', 'category': 'general', 'key': 'who', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -523,7 +568,7 @@ also for those with all permissions.

    Bases: evennia.commands.default.muxcommand.MuxCommand

    testing which colors your client support

    -
    Usage:

    color ansi||xterm256

    +
    Usage:

    color ansi | xterm256

    Prints a color map along with in-mud color codes to use to produce @@ -594,6 +639,11 @@ Takes a table of columns [[val,val,…],[val,val,…],…]

    lock_storage = 'cmd:all()'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'color', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -649,6 +699,11 @@ Use the unquell command to revert back to normal operation.

    lock_storage = 'cmd:pperm(Player)'
    +
    +
    +search_index_entry = {'aliases': 'unquell', 'category': 'general', 'key': 'quell', 'no_prefix': ' ', '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 "}
    +
    +
    @@ -692,6 +747,11 @@ Use the unquell command to revert back to normal operation.

    lock_storage = 'cmd:pperm(Player)'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'chardelete', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -749,6 +809,11 @@ to all the variables defined therein.

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'style', 'no_prefix': ' ', '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 '}
    +
    + @@ -784,11 +849,11 @@ to all the variables defined therein.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 fc745748e6..0cfbd11f9e 100644 --- a/docs/0.9.5/api/evennia.commands.default.admin.html +++ b/docs/0.9.5/api/evennia.commands.default.admin.html @@ -92,6 +92,11 @@ 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', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -166,6 +171,11 @@ 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', 'no_prefix': ' ', '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 "}
    +
    +
    @@ -212,6 +222,11 @@ unban.

    lock_storage = 'cmd:perm(unban) or perm(Developer)'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'admin', 'key': 'unban', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -270,6 +285,11 @@ to accounts respectively.

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

    lock_storage = 'cmd:perm(newpassword) or perm(Admin)'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'admin', 'key': 'userpassword', 'no_prefix': ' ', '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 "}
    +
    +
    @@ -366,6 +391,11 @@ 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', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -410,6 +440,11 @@ including all currently unlogged in.

    lock_storage = 'cmd:perm(wall) or perm(Admin)'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'admin', 'key': 'wall', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -459,6 +494,11 @@ including all currently unlogged in.

    lock_storage = 'cmd:perm(spawn) or perm(Builder)'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'building', 'key': 'force', 'no_prefix': ' ', '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 '}
    +
    + @@ -494,11 +534,11 @@ including all currently unlogged in.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 eddc3b8e06..cdeef4146b 100644 --- a/docs/0.9.5/api/evennia.commands.default.batchprocess.html +++ b/docs/0.9.5/api/evennia.commands.default.batchprocess.html @@ -106,6 +106,11 @@ skipping, reloading etc.

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

    lock_storage = 'cmd:superuser()'
    +
    +
    +search_index_entry = {'aliases': 'batchcodes', 'category': 'building', 'key': 'batchcode', 'no_prefix': ' ', '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 '}
    +
    + @@ -199,11 +209,11 @@ object copies behind when testing out the script.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 8f5098edd9..194a3f10bd 100644 --- a/docs/0.9.5/api/evennia.commands.default.building.html +++ b/docs/0.9.5/api/evennia.commands.default.building.html @@ -88,6 +88,11 @@ the cases, see the module doc.

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'command', 'no_prefix': ' ', '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 "}
    +
    +
    @@ -115,7 +120,7 @@ changing the object in question, making those aliases usable by everyone.

    -key = 'alias'
    +key = '@alias'
    @@ -149,6 +154,11 @@ by everyone.

    lock_storage = 'cmd:perm(setobjalias) or perm(Builder)'
    +
    +
    +search_index_entry = {'aliases': 'setobjalias', 'category': 'building', 'key': '@alias', 'no_prefix': '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 "}
    +
    +
    @@ -165,7 +175,7 @@ by everyone.

    one exact copy of the original object will be created with the name *_copy.

    -key = 'copy'
    +key = '@copy'
    @@ -194,6 +204,11 @@ 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', 'no_prefix': '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 "}
    +
    +
    @@ -219,7 +234,7 @@ on Anna and Tom.

    If you don’t supply a source object, yourself is used.

    -key = 'cpattr'
    +key = '@cpattr'
    @@ -286,6 +301,11 @@ required and get the attribute from the object.

    lock_storage = 'cmd:perm(cpattr) or perm(Builder)'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'building', 'key': '@cpattr', 'no_prefix': '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 "}
    +
    +
    @@ -306,7 +326,7 @@ mvattr[/switch] <attr> = <obj1>[,<obj2>,<obj3>,…]

    object. If you don’t supply a source object, yourself is used.

    -key = 'mvattr'
    +key = '@mvattr'
    @@ -340,6 +360,11 @@ 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', 'no_prefix': '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 "}
    +
    +
    @@ -369,7 +394,7 @@ object of this type like this:

    -key = 'create'
    +key = '@create'
    @@ -408,6 +433,11 @@ object of this type like this:

    lock_storage = 'cmd:perm(create) or perm(Builder)'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'building', 'key': '@create', 'no_prefix': '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 "}
    +
    +
    @@ -425,12 +455,7 @@ object of this type like this:

    describe the current room.

    -key = 'desc'
    -
    - -
    -
    -aliases = ['describe']
    +key = '@desc'
    @@ -459,11 +484,21 @@ describe the current room.

    Define command

    +
    +
    +aliases = []
    +
    +
    lock_storage = 'cmd:perm(desc) or perm(Builder)'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'building', 'key': '@desc', 'no_prefix': '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 '}
    +
    +
    @@ -491,12 +526,12 @@ displays a confirmation before destroying, to make sure of your choice. You can specify the /force switch to bypass this confirmation.

    -key = 'destroy'
    +key = '@destroy'
    -aliases = ['delete', 'del']
    +aliases = ['@delete', '@del']
    @@ -535,6 +570,11 @@ 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', 'no_prefix': 'destroy @delete @del @delete @del', 'tags': '', 'text': '\n permanently delete objects\n\n Usage:\n destroy[/switches] [obj, obj2, obj3, [dbref-dbref], ...]\n\n Switches:\n override - The destroy command will usually avoid accidentally\n destroying account objects. This switch overrides this safety.\n force - destroy without confirmation.\n Examples:\n destroy house, roof, door, 44-78\n destroy 5-10, flower, 45\n destroy/force north\n\n Destroys one or many objects. If dbrefs are used, a range to delete can be\n given, e.g. 4-10. Also the end points will be deleted. This command\n displays a confirmation before destroying, to make sure of your choice.\n You can specify the /force switch to bypass this confirmation.\n '}
    +
    +
    @@ -565,7 +605,7 @@ like to the name of the room and the exits in question; an example would be ‘north;no;n’.

    -key = 'dig'
    +key = '@dig'
    @@ -604,6 +644,11 @@ would be ‘north;no;n’.

    lock_storage = 'cmd:perm(dig) or perm(Builder)'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'building', 'key': '@dig', 'no_prefix': '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 "}
    +
    +
    @@ -635,12 +680,12 @@ created back from the new room unless the /oneway switch is given. For more flexibility and power in creating rooms, use dig.

    -key = 'tunnel'
    +key = '@tunnel'
    -aliases = ['tun']
    +aliases = ['@tun']
    @@ -674,6 +719,11 @@ 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', 'no_prefix': 'tunnel @tun', '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 '}
    +
    +
    @@ -700,7 +750,7 @@ the unlink command) and the third form (without =) just shows the currently set destination.

    -key = 'link'
    +key = '@link'
    @@ -729,6 +779,11 @@ currently set destination.

    lock_storage = 'cmd:perm(link) or perm(Builder)'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'building', 'key': '@link', 'no_prefix': '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 '}
    +
    +
    @@ -779,6 +834,11 @@ and call func in CmdLink

    lock_storage = 'cmd:perm(unlink) or perm(Builder)'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'building', 'key': 'unlink', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -798,7 +858,7 @@ It is also a convenient target of the “home” command.

    If no location is given, just view the object’s home location.

    -key = 'sethome'
    +key = '@sethome'
    @@ -827,6 +887,11 @@ 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', 'no_prefix': '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 '}
    +
    +
    @@ -842,12 +907,7 @@ It is also a convenient target of the “home” command.

    to a user. Defaults to yourself.

    -key = 'cmdsets'
    -
    - -
    -
    -aliases = ['listcmsets']
    +key = '@cmdsets'
    @@ -866,11 +926,21 @@ to a user. Defaults to yourself.

    list the cmdsets

    +
    +
    +aliases = []
    +
    +
    lock_storage = 'cmd:perm(listcmdsets) or perm(Builder)'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'building', 'key': '@cmdsets', 'no_prefix': '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 '}
    +
    +
    @@ -886,12 +956,12 @@ to a user. Defaults to yourself.

    rename an account.

    -key = 'name'
    +key = '@name'
    -aliases = ['rename']
    +aliases = ['@rename']
    @@ -915,6 +985,11 @@ rename an account.

    lock_storage = 'cmd:perm(rename) or perm(Builder)'
    +
    +
    +search_index_entry = {'aliases': '@rename', 'category': 'building', 'key': '@name', 'no_prefix': 'name @rename', '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 '}
    +
    +
    @@ -933,7 +1008,7 @@ can be given both as a #dbref and a name, if that name is globally unique.

    -key = 'open'
    +key = '@open'
    @@ -958,6 +1033,13 @@ unique.

    At this point we know destination is a valid location

    +
    +
    +parse()[source]
    +

    We need to expand the default parsing to get all +the cases, see the module doc.

    +
    +
    func()[source]
    @@ -976,6 +1058,11 @@ as well as the self.create_exit() method.

    lock_storage = 'cmd:perm(open) or perm(Builder)'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'building', 'key': '@open', 'no_prefix': '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 '}
    +
    +
    @@ -1016,7 +1103,7 @@ write proper Python syntax too - notably you must include quotes around your strings or you will get an error.

    -key = 'set'
    +key = '@set'
    @@ -1099,9 +1186,8 @@ with older attrs that might have been named with []’s.

    -edit_handler(obj, attr)[source]
    -

    Activate the line editor

    -
    +edit_handler(**kwargs) +
    @@ -1131,6 +1217,11 @@ 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', 'no_prefix': '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 '}
    +
    +
    @@ -1141,7 +1232,7 @@ with older attrs that might have been named with []’s.

    Usage:

    typeclass[/switch] <object> [= typeclass.path] typeclass/prototype <object> = prototype_key

    -

    typeclass/list/show [typeclass.path] +

    typeclasses or typeclass/list/show [typeclass.path] swap - this is a shorthand for using /force/reset flags. update - this is a shorthand for using the /force/reload flag.

    @@ -1180,12 +1271,12 @@ module is searched from the default typeclass directory, as defined in the server settings.

    -key = 'typeclass'
    +key = '@typeclass'
    -aliases = ['type', 'parent', 'update', 'swap']
    +aliases = ['@typeclasses', '@type', '@swap', '@update', '@parent']
    @@ -1214,6 +1305,11 @@ server settings.

    lock_storage = 'cmd:perm(typeclass) or perm(Builder)'
    +
    +
    +search_index_entry = {'aliases': '@typeclasses @type @swap @update @parent', 'category': 'building', 'key': '@typeclass', 'no_prefix': 'typeclass @typeclasses @type @swap @update @parent @typeclasses @type @swap @update @parent @typeclasses @type @swap @update @parent @typeclasses @type @swap @update @parent @typeclasses @type @swap @update @parent', 'tags': '', 'text': "\n set or change an object's typeclass\n\n Usage:\n typeclass[/switch] <object> [= typeclass.path]\n typeclass/prototype <object> = prototype_key\n\n typeclasses or typeclass/list/show [typeclass.path]\n swap - this is a shorthand for using /force/reset flags.\n update - this is a shorthand for using the /force/reload flag.\n\n Switch:\n show, examine - display the current typeclass of object (default) or, if\n given a typeclass path, show the docstring of that typeclass.\n update - *only* re-run at_object_creation on this object\n meaning locks or other properties set later may remain.\n reset - clean out *all* the attributes and properties on the\n object - basically making this a new clean object.\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 "}
    +
    +
    @@ -1232,7 +1328,7 @@ wipe box/colour

    matching the given attribute-wildcard search string.

    -key = 'wipe'
    +key = '@wipe'
    @@ -1261,6 +1357,11 @@ matching the given attribute-wildcard search string.

    lock_storage = 'cmd:perm(wipe) or perm(Builder)'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'building', 'key': '@wipe', 'no_prefix': '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 "}
    +
    +
    @@ -1299,12 +1400,12 @@ them by ‘;’, i.e:

    -key = 'lock'
    +key = '@lock'
    -aliases = ['locks']
    +aliases = ['@locks']
    @@ -1328,6 +1429,11 @@ them by ‘;’, i.e:

    lock_storage = 'cmd: perm(locks) or perm(Builder)'
    +
    +
    +search_index_entry = {'aliases': '@locks', 'category': 'building', 'key': '@lock', 'no_prefix': 'lock @locks', '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 "}
    +
    +
    @@ -1349,12 +1455,12 @@ If object is not specified, the current location is examined.

    Append a * before the search string to examine an account.

    -key = 'examine'
    +key = '@examine'
    -aliases = ['exam', 'ex']
    +aliases = ['@ex', '@exam']
    @@ -1449,6 +1555,11 @@ non-persistent data stored on object

    lock_storage = 'cmd:perm(examine) or perm(Builder)'
    +
    +
    +search_index_entry = {'aliases': '@ex @exam', 'category': 'building', 'key': '@examine', 'no_prefix': 'examine @ex @exam @ex @exam', 'tags': '', 'text': '\n get detailed information about an object\n\n Usage:\n examine [<object>[/attrname]]\n examine [*<account>[/attrname]]\n\n Switch:\n account - examine an Account (same as adding *)\n object - examine an Object (useful when OOC)\n\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 '}
    +
    +
    @@ -1475,12 +1586,12 @@ limits matches to within the given dbrefs range, or above/below if only one is given.

    -key = 'find'
    +key = '@find'
    -aliases = ['search', 'locate']
    +aliases = ['@search', '@locate']
    @@ -1509,6 +1620,11 @@ one is given.

    lock_storage = 'cmd:perm(find) or perm(Builder)'
    +
    +
    +search_index_entry = {'aliases': '@search @locate', 'category': 'building', 'key': '@find', 'no_prefix': 'find @search @locate @search @locate', '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 '}
    +
    +
    @@ -1541,14 +1657,19 @@ reference. A puppeted object cannot be moved to None.

    Teleports an object somewhere. If no object is given, you yourself are teleported to the target location.

    +

    To lock an object from being teleported, set its teleport lock, it will be +checked with the caller. To block +a destination from being teleported to, set the destination’s teleport_here +lock - it will be checked with the thing being teleported. Admins and +higher permissions can always teleport.

    -key = 'tel'
    +key = '@teleport'
    -aliases = ['teleport']
    +aliases = ['@tel']
    @@ -1571,6 +1692,12 @@ teleported to the target location.

    help_category = 'building'
    +
    +
    +parse()[source]
    +

    Breaking out searching here to make this easier to override.

    +
    +
    func()[source]
    @@ -1582,61 +1709,147 @@ teleported to the target location.

    lock_storage = 'cmd:perm(teleport) or perm(Builder)'
    +
    +
    +search_index_entry = {'aliases': '@tel', 'category': 'building', 'key': '@teleport', 'no_prefix': 'teleport @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\n To lock an object from being teleported, set its `teleport` lock, it will be\n checked with the caller. To block\n a destination from being teleported to, set the destination's `teleport_here`\n lock - it will be checked with the thing being teleported. Admins and\n higher permissions can always teleport.\n\n "}
    +
    +
    -
    -class evennia.commands.default.building.CmdScript(**kwargs)[source]
    +
    +class evennia.commands.default.building.CmdScripts(**kwargs)[source]

    Bases: evennia.commands.default.muxcommand.MuxCommand

    -

    attach a script to an object

    +

    List and manage all running scripts. Allows for creating new global +scripts.

    -
    Usage:

    script[/switch] <obj> [= script_path or <scriptkey>]

    +
    Usage:

    script[/switches] [script-#dbref, key, script.path or <obj>] +script[/start||stop] <obj> = <script.path or script-key>

    -
    Switches:

    start - start all non-running scripts on object, or a given script only -stop - stop all scripts on objects, or a given script only

    +
    Switches:

    start - start/unpause an existing script’s timer. +stop - stops an existing script’s timer +pause - pause a script’s timer +delete - deletes script. This will also stop the timer as needed

    -

    If no script path/key is given, lists all scripts active on the given -object. -Script path can be given from the base location for scripts as given in -settings. If adding a new script, it will be started automatically -(no /start switch is needed). Using the /start or /stop switches on an -object without specifying a script key/path will start/stop ALL scripts on -the object.

    +

    Examples

    +

    script - list scripts +script myobj - list all scripts on object +script foo.bar.Script - create a new global Script +script scriptname - examine named existing global script +script myobj = foo.bar.Script - create and assign script to object +script/stop myobj = scriptname - stop script on object +script/pause foo.Bar.Script - pause global script +script/delete myobj - delete ALL scripts on object

    +

    When given with an <obj> as left-hand-side, this creates and +assigns a new script to that object. Without an <obj>, this +manages and inspects global scripts

    +

    If no switches are given, this command just views all active +scripts. The argument can be either an object, at which point it +will be searched for all scripts defined on it, or a script name +or #dbref. For using the /stop switch, a unique script #dbref is +required since whole classes of scripts often have the same name.

    +

    Use the script build-level command for managing scripts attached to +objects.

    -
    -key = 'script'
    +
    +key = '@scripts'
    -
    -aliases = ['addscript']
    +
    +aliases = ['@script']
    -
    -switch_options = ('start', 'stop')
    +
    +switch_options = ('create', 'start', 'stop', 'pause', 'delete')
    -
    -locks = 'cmd:perm(script) or perm(Builder)'
    +
    +locks = 'cmd:perm(scripts) or perm(Builder)'
    -
    -help_category = 'building'
    +
    +help_category = 'system'
    +
    + +
    +
    +excluded_typeclass_paths = ['evennia.prototypes.prototypes.DbPrototype']
    +
    + +
    +
    +switch_mapping = {'create': '|gCreated|n', 'delete': '|rDeleted|n', 'pause': '|Paused|n', 'start': '|gStarted|n', 'stop': '|RStopped|n'}
    -
    -func()[source]
    -

    Do stuff

    +
    +func()[source]
    +

    implement method

    -
    -lock_storage = 'cmd:perm(script) or perm(Builder)'
    +
    +lock_storage = 'cmd:perm(scripts) or perm(Builder)'
    +
    + +
    +
    +search_index_entry = {'aliases': '@script', 'category': 'system', 'key': '@scripts', 'no_prefix': 'scripts @script', 'tags': '', 'text': "\n List and manage all running scripts. Allows for creating new global\n scripts.\n\n Usage:\n script[/switches] [script-#dbref, key, script.path or <obj>]\n script[/start||stop] <obj> = <script.path or script-key>\n\n Switches:\n start - start/unpause an existing script's timer.\n stop - stops an existing script's timer\n pause - pause a script's timer\n delete - deletes script. This will also stop the timer as needed\n\n Examples:\n script - list scripts\n script myobj - list all scripts on object\n script foo.bar.Script - create a new global Script\n script scriptname - examine named existing global script\n script myobj = foo.bar.Script - create and assign script to object\n script/stop myobj = scriptname - stop script on object\n script/pause foo.Bar.Script - pause global script\n script/delete myobj - delete ALL scripts on object\n\n When given with an `<obj>` as left-hand-side, this creates and\n assigns a new script to that object. Without an `<obj>`, this\n manages and inspects global scripts\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 the `script` build-level command for managing scripts attached to\n objects.\n\n "}
    +
    + +
    + +
    +
    +class evennia.commands.default.building.CmdObjects(**kwargs)[source]
    +

    Bases: evennia.commands.default.muxcommand.MuxCommand

    +

    statistics on objects in the database

    +
    +
    Usage:

    objects [<nr>]

    +
    +
    +

    Gives statictics on objects in database as well as +a list of <nr> latest objects in database. If not +given, <nr> defaults to 10.

    +
    +
    +key = '@objects'
    +
    + +
    +
    +locks = 'cmd:perm(listobjects) or perm(Builder)'
    +
    + +
    +
    +help_category = 'system'
    +
    + +
    +
    +func()[source]
    +

    Implement the command

    +
    + +
    +
    +aliases = []
    +
    + +
    +
    +lock_storage = 'cmd:perm(listobjects) or perm(Builder)'
    +
    + +
    +
    +search_index_entry = {'aliases': '', 'category': 'system', 'key': '@objects', 'no_prefix': '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 '}
    @@ -1666,12 +1879,12 @@ should be used with restrain - tags on their own are usually enough to for most grouping schemes.

    -key = 'tag'
    +key = '@tag'
    -aliases = ['tags']
    +aliases = ['@tags']
    @@ -1705,6 +1918,11 @@ enough to for most grouping schemes.

    lock_storage = 'cmd:perm(tag) or perm(Builder)'
    +
    +
    +search_index_entry = {'aliases': '@tags', 'category': 'building', 'key': '@tag', 'no_prefix': 'tag @tags', '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 '}
    +
    +
    @@ -1777,12 +1995,12 @@ settings.PROTOTYPE_MODULES. If spawn is used without arguments it displays a list of available prototypes.

    -key = 'spawn'
    +key = '@spawn'
    -aliases = ['olc']
    +aliases = ['@olc']
    @@ -1811,6 +2029,11 @@ displays a list of available prototypes.

    lock_storage = 'cmd:perm(spawn) or perm(Builder)'
    +
    +
    +search_index_entry = {'aliases': '@olc', 'category': 'building', 'key': '@spawn', 'no_prefix': 'spawn @olc', '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 '}
    +
    +
    @@ -1846,11 +2069,11 @@ displays a list of available prototypes.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 c69e81f26a..5acff97eb8 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 @@ -108,11 +108,11 @@ command method rather than caller.msg().

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 484358206f..6e34fe7d16 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 @@ -106,11 +106,11 @@ Account cmdset. Account commands remain available also to Characters.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -118,7 +118,6 @@ 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 ad3226cb52..38d04898ce 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 @@ -103,11 +103,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 75c656415c..fea4bcf9cc 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 @@ -105,11 +105,11 @@ of the state instance in this module.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 5855468c18..4312fe95a0 100644 --- a/docs/0.9.5/api/evennia.commands.default.comms.html +++ b/docs/0.9.5/api/evennia.commands.default.comms.html @@ -41,568 +41,860 @@

    evennia.commands.default.comms

    -

    Comsystem command module.

    -

    Comm commands are OOC commands and intended to be made available to -the Account at all times (they go into the AccountCmdSet). So we -make sure to homogenize self.caller to always be the account object -for easy handling.

    +

    Communication commands:

    +
      +
    • channel

    • +
    • page

    • +
    • irc/rss/grapevine linking

    • +
    -
    -class evennia.commands.default.comms.CmdAddCom(**kwargs)[source]
    +
    +class evennia.commands.default.comms.CmdChannel(**kwargs)[source]

    Bases: evennia.commands.default.muxcommand.MuxCommand

    -

    add a channel alias and/or subscribe to a channel

    -
    -
    Usage:

    addcom [alias=] <channel>

    +

    Use and manage in-game channels.

    +
    +
    Usage:

    channel channelname <msg> +channel channel name = <msg> +channel (show all subscription) +channel/all (show available channels) +channel/alias channelname = alias[;alias…] +channel/unalias alias +channel/who channelname +channel/history channelname [= index] +channel/sub channelname [= alias[;alias…]] +channel/unsub channelname[,channelname, …] +channel/mute channelname[,channelname,…] +channel/unmute channelname[,channelname,…]

    +

    channel/create channelname[;alias;alias[:typeclass]] [= description] +channel/destroy channelname [= reason] +channel/desc channelname = description +channel/lock channelname = lockstring +channel/unlock channelname = lockstring +channel/ban channelname (list bans) +channel/ban[/quiet] channelname[, channelname, …] = subscribername [: reason] +channel/unban[/quiet] channelname[, channelname, …] = subscribername +channel/boot[/quiet] channelname[,channelname,…] = subscribername [: reason]

    -

    Joins a given channel. If alias is given, this will allow you to -refer to the channel by this alias rather than the full channel -name. Subsequent calls of this command can be used to add multiple -aliases to an already joined channel.

    +
    +
    Usage: channel channelname msg

    channel channel name = msg (with space in channel name)

    +
    +
    +

    This sends a message to the channel. Note that you will rarely use this +command like this; instead you can use the alias

    +
    +

    channelname <msg> +channelalias <msg>

    +
    +

    For example

    +
    +

    public Hello World +pub Hello World

    +
    +

    (this shortcut doesn’t work for aliases containing spaces)

    +

    See channel/alias for help on setting channel aliases.

    +
    +
    Usage: channel/alias channel = alias[;alias[;alias…]]

    channel/unalias alias +channel - this will list your subs and aliases to each channel

    +
    +
    +

    Set one or more personal aliases for referencing a channel. For example:

    +
    +

    channel/alias warrior’s guild = warrior;wguild;warchannel;warrior guild

    +
    +

    You can now send to the channel using all of these:

    +
    +

    warrior’s guild Hello +warrior Hello +wguild Hello +warchannel Hello

    +
    +

    Note that this will not work if the alias has a space in it. So the +‘warrior guild’ alias must be used with the channel command:

    +
    +

    channel warrior guild = Hello

    +
    +

    Channel-aliases can be removed one at a time, using the ‘/unalias’ switch.

    +

    Usage: channel/who channelname

    +

    List the channel’s subscribers. Shows who are currently offline or are +muting the channel. Subscribers who are ‘muting’ will not see messages sent +to the channel (use channel/mute to mute a channel).

    +

    Usage: channel/history channel [= index]

    +

    This will display the last |c20|n lines of channel history. By supplying an +index number, you will step that many lines back before viewing those 20 lines.

    +

    For example:

    +
    +

    channel/history public = 35

    +
    +

    will go back 35 lines and show the previous 20 lines from that point (so +lines -35 to -55).

    +
    +
    Usage: channel/sub channel [=alias[;alias;…]]

    channel/unsub channel

    +
    +
    +

    This subscribes you to a channel and optionally assigns personal shortcuts +for you to use to send to that channel (see aliases). When you unsub, all +your personal aliases will also be removed.

    +
    +
    Usage: channel/mute channelname

    channel/unmute channelname

    +
    +
    +

    Muting silences all output from the channel without actually +un-subscribing. Other channel members will see that you are muted in the /who +list. Sending a message to the channel will automatically unmute you.

    +
    +
    Usage: channel/create channelname[;alias;alias[:typeclass]] [= description]

    channel/destroy channelname [= reason]

    +
    +
    +

    Creates a new channel (or destroys one you control). You will automatically +join the channel you create and everyone will be kicked and loose all aliases +to a destroyed channel.

    +
    +
    Usage: channel/lock channelname = lockstring

    channel/unlock channelname = lockstring

    +
    +
    +

    Note: this is an admin command.

    +

    A lockstring is on the form locktype:lockfunc(). Channels understand three +locktypes:

    +
    +

    listen - who may listen or join the channel. +send - who may send messages to the channel +control - who controls the channel. This is usually the one creating

    +
    +

    the channel.

    +
    +
    +

    Common lockfuncs are all() and perm(). To make a channel everyone can +listen to but only builders can talk on, use this:

    +
    +

    listen:all() +send: perm(Builders)

    +
    +
    +
    Usage:

    channel/boot[/quiet] channelname[,channelname,…] = subscribername [: reason] +channel/ban channelname[, channelname, …] = subscribername [: reason] +channel/unban channelname[, channelname, …] = subscribername +channel/unban channelname +channel/ban channelname (list bans)

    +
    +
    +

    Booting will kick a named subscriber from channel(s) temporarily. The +‘reason’ will be passed to the booted user. Unless the /quiet switch is +used, the channel will also be informed of the action. A booted user is +still able to re-connect, but they’ll have to set up their aliases again.

    +

    Banning will blacklist a user from (re)joining the provided channels. It +will then proceed to boot them from those channels if they were connected. +The ‘reason’ and /quiet works the same as for booting.

    +

    Example

    +

    boot mychannel1 = EvilUser : Kicking you to cool down a bit. +ban mychannel1,mychannel2= EvilUser : Was banned for spamming.

    -
    -key = 'addcom'
    +
    +key = '@channel'
    -
    -aliases = ['aliaschan', 'chanalias']
    +
    +aliases = ['@chan', '@channels']
    -
    -help_category = 'comms'
    +
    +help_category = 'comms'
    -
    -locks = 'cmd:not pperm(channel_banned)'
    +
    +locks = 'cmd:not pperm(channel_banned);admin:all();manage:all();changelocks:perm(Admin)'
    -
    -account_caller = True
    +
    +switch_options = ('list', 'all', 'history', 'sub', 'unsub', 'mute', 'unmute', 'alias', 'unalias', 'create', 'destroy', 'desc', 'lock', 'unlock', 'boot', 'ban', 'unban', 'who')
    +
    + +
    +
    +account_caller = True
    -
    -func()[source]
    -

    Implement the command

    +
    +search_channel(channelname, exact=False, handle_errors=True)[source]
    +

    Helper function for searching for a single channel with some error +handling.

    +
    +
    Parameters
    +
      +
    • channelname (str) – Name, alias #dbref or partial name/alias to search +for.

    • +
    • exact (bool, optional) – If an exact or fuzzy-match of the name should be done. +Note that even for a fuzzy match, an exactly given, unique channel name +will always be returned.

    • +
    • handle_errors (bool) – If true, use self.msg to report errors if +there are non/multiple matches. If so, the return will always be +a single match or None.

    • +
    +
    +
    Returns
    +

    object, list or None

    +
    +
    If handle_errors is True, this is either a found Channel

    or None. Otherwise it’s a list of zero, one or more channels found.

    +
    +
    +

    +
    +
    +

    Notes

    +

    The ‘listen’ and ‘control’ accesses are checked before returning.

    +
    + +
    +
    +msg_channel(channel, message, **kwargs)[source]
    +

    Send a message to a given channel. This will check the ‘send’ +permission on the channel.

    +
    +
    Parameters
    +
      +
    • channel (Channel) – The channel to send to.

    • +
    • message (str) – The message to send.

    • +
    • **kwargs – Unused by default. These kwargs will be passed into +all channel messaging hooks for custom overriding.

    • +
    +
    +
    +
    + +
    +
    +get_channel_history(channel, start_index=0)[source]
    +

    View a channel’s history.

    +
    +
    Parameters
    +
      +
    • channel (Channel) – The channel to access.

    • +
    • message (str) – The message to send.

    • +
    • **kwargs – Unused by default. These kwargs will be passed into +all channel messaging hooks for custom overriding.

    • +
    +
    +
    +
    + +
    +
    +sub_to_channel(channel)[source]
    +

    Subscribe to a channel. Note that all permissions should +be checked before this step.

    +
    +
    Parameters
    +

    channel (Channel) – The channel to access.

    +
    +
    Returns
    +

    bool, str

    +
    +
    True, None if connection failed. If False,

    the second part is an error string.

    +
    +
    +

    +
    +
    +
    + +
    +
    +unsub_from_channel(channel, **kwargs)[source]
    +

    Un-Subscribe to a channel. Note that all permissions should +be checked before this step.

    +
    +
    Parameters
    +
      +
    • channel (Channel) – The channel to unsub from.

    • +
    • **kwargs – Passed on to nick removal.

    • +
    +
    +
    Returns
    +

    bool, str

    +
    +
    True, None if un-connection succeeded. If False,

    the second part is an error string.

    +
    +
    +

    +
    +
    +
    + +
    +
    +add_alias(channel, alias, **kwargs)[source]
    +

    Add a new alias (nick) for the user to use with this channel.

    +
    +
    Parameters
    +
      +
    • channel (Channel) – The channel to alias.

    • +
    • alias (str) – The personal alias to use for this channel.

    • +
    • **kwargs – If given, passed into nicks.add.

    • +
    +
    +
    +
    +

    Note

    +

    We add two nicks - one is a plain alias -> channel.key that +we need to be able to reference this channel easily. The other +is a templated nick to easily be able to send messages to the +channel without needing to give the full channel command. The +structure of this nick is given by self.channel_msg_pattern +and self.channel_msg_nick_replacement. By default it maps +alias <msg> -> channel <channelname> = <msg>, so that you can +for example just write pub Hello to send a message.

    +

    The alias created is alias $1 -> channel channel = $1, to allow +for sending to channel using the main channel command.

    +
    +
    + +
    +
    +remove_alias(alias, **kwargs)[source]
    +

    Remove an alias from a channel.

    +
    +
    Parameters
    +

    alias (str, optional) – The alias to remove. +The channel will be reverse-determined from the +alias, if it exists.

    +
    +
    Returns
    +

    bool, str

    +
    +
    True, None if removal succeeded. If False,

    the second part is an error string.

    +
    +
    +

    **kwargs: If given, passed into nicks.get/add.

    +

    +
    +
    +
    +

    Note

    +

    This will remove two nicks - the plain channel alias and the templated +nick used for easily sending messages to the channel.

    +
    +
    + +
    +
    +get_channel_aliases(channel)[source]
    +

    Get a user’s aliases for a given channel. The user is retrieved +through self.caller.

    +
    +
    Parameters
    +

    channel (Channel) – The channel to act on.

    +
    +
    Returns
    +

    list – A list of zero, one or more alias-strings.

    +
    +
    +
    + +
    +
    +mute_channel(channel)[source]
    +

    Temporarily mute a channel.

    +
    +
    Parameters
    +

    channel (Channel) – The channel to alias.

    +
    +
    Returns
    +

    bool, str

    +
    +
    True, None if muting successful. If False,

    the second part is an error string.

    +
    +
    +

    +
    +
    +
    + +
    +
    +unmute_channel(channel)[source]
    +

    Unmute a channel.

    +
    +
    Parameters
    +

    channel (Channel) – The channel to alias.

    +
    +
    Returns
    +

    bool, str

    +
    +
    True, None if unmuting successful. If False,

    the second part is an error string.

    +
    +
    +

    +
    +
    +
    + +
    +
    +create_channel(name, description, typeclass=None, aliases=None)[source]
    +

    Create a new channel. Its name must not previously exist +(users can alias as needed). Will also connect to the +new channel.

    +
    +
    Parameters
    +
      +
    • name (str) – The new channel name/key.

    • +
    • description (str) – This is used in listings.

    • +
    • aliases (list) – A list of strings - alternative aliases for the channel +(not to be confused with per-user aliases; these are available for +everyone).

    • +
    +
    +
    Returns
    +

    channel, str

    +
    +
    new_channel, “” if creation successful. If False,

    the second part is an error string.

    +
    +
    +

    +
    +
    +
    + +
    +
    +destroy_channel(channel, message=None)[source]
    +

    Destroy an existing channel. Access should be checked before +calling this function.

    +
    +
    Parameters
    +
      +
    • channel (Channel) – The channel to alias.

    • +
    • message (str, optional) – Final message to send onto the channel +before destroying it. If not given, a default message is +used. Set to the empty string for no message.

    • +
    +
    +
    +
    +
    if typeclass:

    pass

    +
    +
    +
    + +
    +
    +set_lock(channel, lockstring)[source]
    +

    Set a lockstring on a channel. Permissions must have been +checked before this call.

    +
    +
    Parameters
    +
      +
    • channel (Channel) – The channel to operate on.

    • +
    • lockstring (str) – A lockstring on the form ‘type:lockfunc();…’

    • +
    +
    +
    Returns
    +

    bool, str

    +
    +
    True, None if setting lock was successful. If False,

    the second part is an error string.

    +
    +
    +

    +
    +
    +
    + +
    +
    +unset_lock(channel, lockstring)[source]
    +

    Remove locks in a lockstring on a channel. Permissions must have been +checked before this call.

    +
    +
    Parameters
    +
      +
    • channel (Channel) – The channel to operate on.

    • +
    • lockstring (str) – A lockstring on the form ‘type:lockfunc();…’

    • +
    +
    +
    Returns
    +

    bool, str

    +
    +
    True, None if setting lock was successful. If False,

    the second part is an error string.

    +
    +
    +

    +
    +
    +
    + +
    +
    +set_desc(channel, description)[source]
    +

    Set a channel description. This is shown in listings etc.

    +
    +
    Parameters
    +
      +
    • caller (Object or Account) – The entity performing the action.

    • +
    • channel (Channel) – The channel to operate on.

    • +
    • description (str) – A short description of the channel.

    • +
    +
    +
    Returns
    +

    bool, str

    +
    +
    True, None if setting lock was successful. If False,

    the second part is an error string.

    +
    +
    +

    +
    +
    +
    + +
    +
    +boot_user(channel, target, quiet=False, reason='')[source]
    +

    Boot a user from a channel, with optional reason. This will +also remove all their aliases for this channel.

    +
    +
    Parameters
    +
      +
    • channel (Channel) – The channel to operate on.

    • +
    • target (Object or Account) – The entity to boot.

    • +
    • quiet (bool, optional) – Whether or not to announce to channel.

    • +
    • reason (str, optional) – A reason for the boot.

    • +
    +
    +
    Returns
    +

    bool, str

    +
    +
    True, None if setting lock was successful. If False,

    the second part is an error string.

    +
    +
    +

    +
    +
    +
    + +
    +
    +ban_user(channel, target, quiet=False, reason='')[source]
    +

    Ban a user from a channel, by locking them out. This will also +boot them, if they are currently connected.

    +
    +
    Parameters
    +
      +
    • channel (Channel) – The channel to operate on.

    • +
    • target (Object or Account) – The entity to ban

    • +
    • quiet (bool, optional) – Whether or not to announce to channel.

    • +
    • reason (str, optional) – A reason for the ban

    • +
    +
    +
    Returns
    +

    bool, str

    +
    +
    True, None if banning was successful. If False,

    the second part is an error string.

    +
    +
    +

    +
    +
    +
    + +
    +
    +unban_user(channel, target)[source]
    +

    Un-Ban a user from a channel. This will not reconnect them +to the channel, just allow them to connect again (assuming +they have the suitable ‘listen’ lock like everyone else).

    +
    +
    Parameters
    +
      +
    • channel (Channel) – The channel to operate on.

    • +
    • target (Object or Account) – The entity to unban

    • +
    +
    +
    Returns
    +

    bool, str

    +
    +
    True, None if unbanning was successful. If False,

    the second part is an error string.

    +
    +
    +

    +
    +
    +
    + +
    +
    +channel_list_bans(channel)[source]
    +

    Show a channel’s bans.

    +
    +
    Parameters
    +

    channel (Channel) – The channel to operate on.

    +
    +
    Returns
    +

    list – A list of strings, each the name of a banned user.

    +
    +
    +
    + +
    +
    +channel_list_who(channel)[source]
    +

    Show a list of online people is subscribing to a channel. This will check +the ‘control’ permission of caller to determine if only online users +should be returned or everyone.

    +
    +
    Parameters
    +

    channel (Channel) – The channel to operate on.

    +
    +
    Returns
    +

    list

    +
    +
    A list of prepared strings, with name + markers for if they are

    muted or offline.

    +
    +
    +

    +
    +
    +
    + +
    +
    +list_channels(channelcls=<class 'evennia.comms.comms.DefaultChannel'>)[source]
    +

    Return a available channels.

    +
    +
    Parameters
    +

    channelcls (Channel, optional) – The channel-class to query on. Defaults +to the default channel class from settings.

    +
    +
    Returns
    +

    tuple

    +
    +
    A tuple (subbed_chans, available_chans) with the channels

    currently subscribed to, and those we have ‘listen’ access to but +don’t actually sub to yet.

    +
    +
    +

    +
    +
    +
    + +
    +
    +display_subbed_channels(subscribed)[source]
    +

    Display channels subscribed to.

    +
    +
    Parameters
    +

    subscribed (list) – List of subscribed channels

    +
    +
    Returns
    +

    EvTable – Table to display.

    +
    +
    +
    + +
    +
    +display_all_channels(subscribed, available)[source]
    +

    Display all available channels

    +
    +
    Parameters
    +

    subscribed (list) – List of subscribed channels

    +
    +
    Returns
    +

    EvTable – Table to display.

    +
    +
    +
    + +
    +
    +func()[source]
    +

    Main functionality of command.

    -
    -lock_storage = 'cmd:not pperm(channel_banned)'
    +
    +lock_storage = 'cmd:not pperm(channel_banned);admin:all();manage:all();changelocks:perm(Admin)'
    +
    + +
    +
    +search_index_entry = {'aliases': '@chan @channels', 'category': 'comms', 'key': '@channel', 'no_prefix': 'channel @chan @channels @chan @channels', 'tags': '', 'text': "\n Use and manage in-game channels.\n\n Usage:\n channel channelname <msg>\n channel channel name = <msg>\n channel (show all subscription)\n channel/all (show available channels)\n channel/alias channelname = alias[;alias...]\n channel/unalias alias\n channel/who channelname\n channel/history channelname [= index]\n channel/sub channelname [= alias[;alias...]]\n channel/unsub channelname[,channelname, ...]\n channel/mute channelname[,channelname,...]\n channel/unmute channelname[,channelname,...]\n\n channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n channel/desc channelname = description\n channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n channel/ban channelname (list bans)\n channel/ban[/quiet] channelname[, channelname, ...] = subscribername [: reason]\n channel/unban[/quiet] channelname[, channelname, ...] = subscribername\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n\n # subtopics\n\n ## sending\n\n Usage: channel channelname msg\n channel channel name = msg (with space in channel name)\n\n This sends a message to the channel. Note that you will rarely use this\n command like this; instead you can use the alias\n\n channelname <msg>\n channelalias <msg>\n\n For example\n\n public Hello World\n pub Hello World\n\n (this shortcut doesn't work for aliases containing spaces)\n\n See channel/alias for help on setting channel aliases.\n\n ## alias and unalias\n\n Usage: channel/alias channel = alias[;alias[;alias...]]\n channel/unalias alias\n channel - this will list your subs and aliases to each channel\n\n Set one or more personal aliases for referencing a channel. For example:\n\n channel/alias warrior's guild = warrior;wguild;warchannel;warrior guild\n\n You can now send to the channel using all of these:\n\n warrior's guild Hello\n warrior Hello\n wguild Hello\n warchannel Hello\n\n Note that this will not work if the alias has a space in it. So the\n 'warrior guild' alias must be used with the `channel` command:\n\n channel warrior guild = Hello\n\n Channel-aliases can be removed one at a time, using the '/unalias' switch.\n\n ## who\n\n Usage: channel/who channelname\n\n List the channel's subscribers. Shows who are currently offline or are\n muting the channel. Subscribers who are 'muting' will not see messages sent\n to the channel (use channel/mute to mute a channel).\n\n ## history\n\n Usage: channel/history channel [= index]\n\n This will display the last |c20|n lines of channel history. By supplying an\n index number, you will step that many lines back before viewing those 20 lines.\n\n For example:\n\n channel/history public = 35\n\n will go back 35 lines and show the previous 20 lines from that point (so\n lines -35 to -55).\n\n ## sub and unsub\n\n Usage: channel/sub channel [=alias[;alias;...]]\n channel/unsub channel\n\n This subscribes you to a channel and optionally assigns personal shortcuts\n for you to use to send to that channel (see aliases). When you unsub, all\n your personal aliases will also be removed.\n\n ## mute and unmute\n\n Usage: channel/mute channelname\n channel/unmute channelname\n\n Muting silences all output from the channel without actually\n un-subscribing. Other channel members will see that you are muted in the /who\n list. Sending a message to the channel will automatically unmute you.\n\n ## create and destroy\n\n Usage: channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n\n Creates a new channel (or destroys one you control). You will automatically\n join the channel you create and everyone will be kicked and loose all aliases\n to a destroyed channel.\n\n ## lock and unlock\n\n Usage: channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n\n Note: this is an admin command.\n\n A lockstring is on the form locktype:lockfunc(). Channels understand three\n locktypes:\n listen - who may listen or join the channel.\n send - who may send messages to the channel\n control - who controls the channel. This is usually the one creating\n the channel.\n\n Common lockfuncs are all() and perm(). To make a channel everyone can\n listen to but only builders can talk on, use this:\n\n listen:all()\n send: perm(Builders)\n\n ## boot and ban\n\n Usage:\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n channel/ban channelname[, channelname, ...] = subscribername [: reason]\n channel/unban channelname[, channelname, ...] = subscribername\n channel/unban channelname\n channel/ban channelname (list bans)\n\n Booting will kick a named subscriber from channel(s) temporarily. The\n 'reason' will be passed to the booted user. Unless the /quiet switch is\n used, the channel will also be informed of the action. A booted user is\n still able to re-connect, but they'll have to set up their aliases again.\n\n Banning will blacklist a user from (re)joining the provided channels. It\n will then proceed to boot them from those channels if they were connected.\n The 'reason' and `/quiet` works the same as for booting.\n\n Example:\n boot mychannel1 = EvilUser : Kicking you to cool down a bit.\n ban mychannel1,mychannel2= EvilUser : Was banned for spamming.\n\n "}
    -
    -class evennia.commands.default.comms.CmdDelCom(**kwargs)[source]
    -

    Bases: evennia.commands.default.muxcommand.MuxCommand

    -

    remove a channel alias and/or unsubscribe from channel

    -
    -
    Usage:

    delcom <alias or channel> -delcom/all <channel>

    +
    +class evennia.commands.default.comms.CmdObjectChannel(**kwargs)[source]
    +

    Bases: evennia.commands.default.comms.CmdChannel

    +

    Use and manage in-game channels.

    +
    +
    Usage:

    channel channelname <msg> +channel channel name = <msg> +channel (show all subscription) +channel/all (show available channels) +channel/alias channelname = alias[;alias…] +channel/unalias alias +channel/who channelname +channel/history channelname [= index] +channel/sub channelname [= alias[;alias…]] +channel/unsub channelname[,channelname, …] +channel/mute channelname[,channelname,…] +channel/unmute channelname[,channelname,…]

    +

    channel/create channelname[;alias;alias[:typeclass]] [= description] +channel/destroy channelname [= reason] +channel/desc channelname = description +channel/lock channelname = lockstring +channel/unlock channelname = lockstring +channel/ban channelname (list bans) +channel/ban[/quiet] channelname[, channelname, …] = subscribername [: reason] +channel/unban[/quiet] channelname[, channelname, …] = subscribername +channel/boot[/quiet] channelname[,channelname,…] = subscribername [: reason]

    -

    If the full channel name is given, unsubscribe from the -channel. If an alias is given, remove the alias but don’t -unsubscribe. If the ‘all’ switch is used, remove all aliases -for that channel.

    -
    -
    -key = 'delcom'
    -
    - -
    -
    -aliases = ['delaliaschan', 'delchanalias']
    -
    - -
    -
    -help_category = 'comms'
    -
    - -
    -
    -locks = 'cmd:not perm(channel_banned)'
    -
    - -
    -
    -account_caller = True
    -
    - -
    -
    -func()[source]
    -

    Implementing the command.

    -
    - -
    -
    -lock_storage = 'cmd:not perm(channel_banned)'
    -
    - -
    - -
    -
    -class evennia.commands.default.comms.CmdAllCom(**kwargs)[source]
    -

    Bases: evennia.commands.default.muxcommand.MuxCommand

    -

    perform admin operations on all channels

    -
    Usage:

    allcom [on | off | who | destroy]

    +
    Usage: channel channelname msg

    channel channel name = msg (with space in channel name)

    -

    Allows the user to universally turn off or on all channels they are on, as -well as perform a ‘who’ for all channels they are on. Destroy deletes all -channels that you control.

    -

    Without argument, works like comlist.

    -
    -
    -key = 'allcom'
    -
    - -
    -
    -locks = 'cmd: not pperm(channel_banned)'
    -
    - -
    -
    -help_category = 'comms'
    -
    - -
    -
    -account_caller = True
    -
    - -
    -
    -func()[source]
    -

    Runs the function

    -
    - -
    -
    -aliases = []
    -
    - -
    -
    -lock_storage = 'cmd: not pperm(channel_banned)'
    -
    - -
    - -
    -
    -class evennia.commands.default.comms.CmdChannels(**kwargs)[source]
    -

    Bases: evennia.commands.default.muxcommand.MuxCommand

    -

    list all channels available to you

    +

    This sends a message to the channel. Note that you will rarely use this +command like this; instead you can use the alias

    +
    +

    channelname <msg> +channelalias <msg>

    +
    +

    For example

    +
    +

    public Hello World +pub Hello World

    +
    +

    (this shortcut doesn’t work for aliases containing spaces)

    +

    See channel/alias for help on setting channel aliases.

    -
    Usage:

    channels -clist -comlist

    +
    Usage: channel/alias channel = alias[;alias[;alias…]]

    channel/unalias alias +channel - this will list your subs and aliases to each channel

    -

    Lists all channels available to you, whether you listen to them or not. -Use ‘comlist’ to only view your current channel subscriptions. -Use addcom/delcom to join and leave channels

    -
    -
    -key = 'channels'
    -
    - -
    -
    -aliases = ['clist', 'chanlist', 'all channels', 'channellist', 'comlist']
    -
    - -
    -
    -help_category = 'comms'
    -
    - -
    -
    -locks = 'cmd: not pperm(channel_banned)'
    -
    - -
    -
    -account_caller = True
    -
    - -
    -
    -func()[source]
    -

    Implement function

    -
    - -
    -
    -lock_storage = 'cmd: not pperm(channel_banned)'
    -
    - -
    - -
    -
    -class evennia.commands.default.comms.CmdCdestroy(**kwargs)[source]
    -

    Bases: evennia.commands.default.muxcommand.MuxCommand

    -

    destroy a channel you created

    +

    Set one or more personal aliases for referencing a channel. For example:

    +
    +

    channel/alias warrior’s guild = warrior;wguild;warchannel;warrior guild

    +
    +

    You can now send to the channel using all of these:

    +
    +

    warrior’s guild Hello +warrior Hello +wguild Hello +warchannel Hello

    +
    +

    Note that this will not work if the alias has a space in it. So the +‘warrior guild’ alias must be used with the channel command:

    +
    +

    channel warrior guild = Hello

    +
    +

    Channel-aliases can be removed one at a time, using the ‘/unalias’ switch.

    +

    Usage: channel/who channelname

    +

    List the channel’s subscribers. Shows who are currently offline or are +muting the channel. Subscribers who are ‘muting’ will not see messages sent +to the channel (use channel/mute to mute a channel).

    +

    Usage: channel/history channel [= index]

    +

    This will display the last |c20|n lines of channel history. By supplying an +index number, you will step that many lines back before viewing those 20 lines.

    +

    For example:

    +
    +

    channel/history public = 35

    +
    +

    will go back 35 lines and show the previous 20 lines from that point (so +lines -35 to -55).

    -
    Usage:

    cdestroy <channel>

    +
    Usage: channel/sub channel [=alias[;alias;…]]

    channel/unsub channel

    -

    Destroys a channel that you control.

    -
    -
    -key = 'cdestroy'
    -
    - -
    -
    -help_category = 'comms'
    -
    - -
    -
    -locks = 'cmd: not pperm(channel_banned)'
    -
    - -
    -
    -account_caller = True
    -
    - -
    -
    -func()[source]
    -

    Destroy objects cleanly.

    -
    - -
    -
    -aliases = []
    -
    - -
    -
    -lock_storage = 'cmd: not pperm(channel_banned)'
    -
    - -
    - -
    -
    -class evennia.commands.default.comms.CmdCBoot(**kwargs)[source]
    -

    Bases: evennia.commands.default.muxcommand.MuxCommand

    -

    kick an account from a channel you control

    +

    This subscribes you to a channel and optionally assigns personal shortcuts +for you to use to send to that channel (see aliases). When you unsub, all +your personal aliases will also be removed.

    -
    Usage:

    cboot[/quiet] <channel> = <account> [:reason]

    -
    -
    Switch:

    quiet - don’t notify the channel

    +
    Usage: channel/mute channelname

    channel/unmute channelname

    -

    Kicks an account or object from a channel you control.

    -
    -
    -key = 'cboot'
    -
    - -
    -
    -switch_options = ('quiet',)
    -
    - -
    -
    -locks = 'cmd: not pperm(channel_banned)'
    -
    - -
    -
    -help_category = 'comms'
    -
    - -
    -
    -account_caller = True
    -
    - -
    -
    -func()[source]
    -

    implement the function

    -
    - -
    -
    -aliases = []
    -
    - -
    -
    -lock_storage = 'cmd: not pperm(channel_banned)'
    -
    - -
    - -
    -
    -class evennia.commands.default.comms.CmdCemit(**kwargs)[source]
    -

    Bases: evennia.commands.default.muxcommand.MuxCommand

    -

    send an admin message to a channel you control

    +

    Muting silences all output from the channel without actually +un-subscribing. Other channel members will see that you are muted in the /who +list. Sending a message to the channel will automatically unmute you.

    -
    Usage:

    cemit[/switches] <channel> = <message>

    -
    -
    Switches:

    sendername - attach the sender’s name before the message -quiet - don’t echo the message back to sender

    +
    Usage: channel/create channelname[;alias;alias[:typeclass]] [= description]

    channel/destroy channelname [= reason]

    -

    Allows the user to broadcast a message over a channel as long as -they control it. It does not show the user’s name unless they -provide the /sendername switch.

    -
    -
    -key = 'cemit'
    -
    - -
    -
    -aliases = ['cmsg']
    -
    - -
    -
    -switch_options = ('sendername', 'quiet')
    -
    - -
    -
    -locks = 'cmd: not pperm(channel_banned) and pperm(Player)'
    -
    - -
    -
    -help_category = 'comms'
    -
    - -
    -
    -account_caller = True
    -
    - -
    -
    -func()[source]
    -

    Implement function

    -
    - -
    -
    -lock_storage = 'cmd: not pperm(channel_banned) and pperm(Player)'
    -
    - -
    - -
    -
    -class evennia.commands.default.comms.CmdCWho(**kwargs)[source]
    -

    Bases: evennia.commands.default.muxcommand.MuxCommand

    -

    show who is listening to a channel

    +

    Creates a new channel (or destroys one you control). You will automatically +join the channel you create and everyone will be kicked and loose all aliases +to a destroyed channel.

    -
    Usage:

    cwho <channel>

    +
    Usage: channel/lock channelname = lockstring

    channel/unlock channelname = lockstring

    -

    List who is connected to a given channel you have access to.

    -
    -
    -key = 'cwho'
    -
    - -
    -
    -locks = 'cmd: not pperm(channel_banned)'
    -
    - -
    -
    -help_category = 'comms'
    -
    - -
    -
    -account_caller = True
    -
    - -
    -
    -func()[source]
    -

    implement function

    -
    - -
    -
    -aliases = []
    -
    - -
    -
    -lock_storage = 'cmd: not pperm(channel_banned)'
    -
    - -
    - -
    -
    -class evennia.commands.default.comms.CmdChannelCreate(**kwargs)[source]
    -

    Bases: evennia.commands.default.muxcommand.MuxCommand

    -

    create a new channel

    +

    Note: this is an admin command.

    +

    A lockstring is on the form locktype:lockfunc(). Channels understand three +locktypes:

    +
    +

    listen - who may listen or join the channel. +send - who may send messages to the channel +control - who controls the channel. This is usually the one creating

    +
    +

    the channel.

    +
    +
    +

    Common lockfuncs are all() and perm(). To make a channel everyone can +listen to but only builders can talk on, use this:

    +
    +

    listen:all() +send: perm(Builders)

    +
    -
    Usage:

    ccreate <new channel>[;alias;alias…] = description

    +
    Usage:

    channel/boot[/quiet] channelname[,channelname,…] = subscribername [: reason] +channel/ban channelname[, channelname, …] = subscribername [: reason] +channel/unban channelname[, channelname, …] = subscribername +channel/unban channelname +channel/ban channelname (list bans)

    -

    Creates a new channel owned by you.

    +

    Booting will kick a named subscriber from channel(s) temporarily. The +‘reason’ will be passed to the booted user. Unless the /quiet switch is +used, the channel will also be informed of the action. A booted user is +still able to re-connect, but they’ll have to set up their aliases again.

    +

    Banning will blacklist a user from (re)joining the provided channels. It +will then proceed to boot them from those channels if they were connected. +The ‘reason’ and /quiet works the same as for booting.

    +

    Example

    +

    boot mychannel1 = EvilUser : Kicking you to cool down a bit. +ban mychannel1,mychannel2= EvilUser : Was banned for spamming.

    -
    -key = 'ccreate'
    +
    +account_caller = False
    -
    -aliases = ['channelcreate']
    +
    +aliases = ['@chan', '@channels']
    -
    -locks = 'cmd:not pperm(channel_banned) and pperm(Player)'
    +
    +help_category = 'comms'
    -
    -help_category = 'comms'
    +
    +key = '@channel'
    -
    -account_caller = True
    -
    - -
    -
    -func()[source]
    -

    Implement the command

    -
    - -
    -
    -lock_storage = 'cmd:not pperm(channel_banned) and pperm(Player)'
    -
    - -
    - -
    -
    -class evennia.commands.default.comms.CmdClock(**kwargs)[source]
    -

    Bases: evennia.commands.default.muxcommand.MuxCommand

    -

    change channel locks of a channel you control

    -
    -
    Usage:

    clock <channel> [= <lockstring>]

    -
    -
    -

    Changes the lock access restrictions of a channel. If no -lockstring was given, view the current lock definitions.

    -
    -
    -key = 'clock'
    +
    +lock_storage = 'cmd:not pperm(channel_banned);admin:all();manage:all();changelocks:perm(Admin)'
    -
    -locks = 'cmd:not pperm(channel_banned)'
    -
    - -
    -
    -aliases = []
    -
    - -
    -
    -help_category = 'comms'
    -
    - -
    -
    -account_caller = True
    -
    - -
    -
    -func()[source]
    -

    run the function

    -
    - -
    -
    -lock_storage = 'cmd:not pperm(channel_banned)'
    -
    - -
    - -
    -
    -class evennia.commands.default.comms.CmdCdesc(**kwargs)[source]
    -

    Bases: evennia.commands.default.muxcommand.MuxCommand

    -

    describe a channel you control

    -
    -
    Usage:

    cdesc <channel> = <description>

    -
    -
    -

    Changes the description of the channel as shown in -channel lists.

    -
    -
    -key = 'cdesc'
    -
    - -
    -
    -locks = 'cmd:not pperm(channel_banned)'
    -
    - -
    -
    -help_category = 'comms'
    -
    - -
    -
    -account_caller = True
    -
    - -
    -
    -func()[source]
    -

    Implement command

    -
    - -
    -
    -aliases = []
    -
    - -
    -
    -lock_storage = 'cmd:not pperm(channel_banned)'
    +
    +search_index_entry = {'aliases': '@chan @channels', 'category': 'comms', 'key': '@channel', 'no_prefix': 'channel @chan @channels @chan @channels', 'tags': '', 'text': "\n Use and manage in-game channels.\n\n Usage:\n channel channelname <msg>\n channel channel name = <msg>\n channel (show all subscription)\n channel/all (show available channels)\n channel/alias channelname = alias[;alias...]\n channel/unalias alias\n channel/who channelname\n channel/history channelname [= index]\n channel/sub channelname [= alias[;alias...]]\n channel/unsub channelname[,channelname, ...]\n channel/mute channelname[,channelname,...]\n channel/unmute channelname[,channelname,...]\n\n channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n channel/desc channelname = description\n channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n channel/ban channelname (list bans)\n channel/ban[/quiet] channelname[, channelname, ...] = subscribername [: reason]\n channel/unban[/quiet] channelname[, channelname, ...] = subscribername\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n\n # subtopics\n\n ## sending\n\n Usage: channel channelname msg\n channel channel name = msg (with space in channel name)\n\n This sends a message to the channel. Note that you will rarely use this\n command like this; instead you can use the alias\n\n channelname <msg>\n channelalias <msg>\n\n For example\n\n public Hello World\n pub Hello World\n\n (this shortcut doesn't work for aliases containing spaces)\n\n See channel/alias for help on setting channel aliases.\n\n ## alias and unalias\n\n Usage: channel/alias channel = alias[;alias[;alias...]]\n channel/unalias alias\n channel - this will list your subs and aliases to each channel\n\n Set one or more personal aliases for referencing a channel. For example:\n\n channel/alias warrior's guild = warrior;wguild;warchannel;warrior guild\n\n You can now send to the channel using all of these:\n\n warrior's guild Hello\n warrior Hello\n wguild Hello\n warchannel Hello\n\n Note that this will not work if the alias has a space in it. So the\n 'warrior guild' alias must be used with the `channel` command:\n\n channel warrior guild = Hello\n\n Channel-aliases can be removed one at a time, using the '/unalias' switch.\n\n ## who\n\n Usage: channel/who channelname\n\n List the channel's subscribers. Shows who are currently offline or are\n muting the channel. Subscribers who are 'muting' will not see messages sent\n to the channel (use channel/mute to mute a channel).\n\n ## history\n\n Usage: channel/history channel [= index]\n\n This will display the last |c20|n lines of channel history. By supplying an\n index number, you will step that many lines back before viewing those 20 lines.\n\n For example:\n\n channel/history public = 35\n\n will go back 35 lines and show the previous 20 lines from that point (so\n lines -35 to -55).\n\n ## sub and unsub\n\n Usage: channel/sub channel [=alias[;alias;...]]\n channel/unsub channel\n\n This subscribes you to a channel and optionally assigns personal shortcuts\n for you to use to send to that channel (see aliases). When you unsub, all\n your personal aliases will also be removed.\n\n ## mute and unmute\n\n Usage: channel/mute channelname\n channel/unmute channelname\n\n Muting silences all output from the channel without actually\n un-subscribing. Other channel members will see that you are muted in the /who\n list. Sending a message to the channel will automatically unmute you.\n\n ## create and destroy\n\n Usage: channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n\n Creates a new channel (or destroys one you control). You will automatically\n join the channel you create and everyone will be kicked and loose all aliases\n to a destroyed channel.\n\n ## lock and unlock\n\n Usage: channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n\n Note: this is an admin command.\n\n A lockstring is on the form locktype:lockfunc(). Channels understand three\n locktypes:\n listen - who may listen or join the channel.\n send - who may send messages to the channel\n control - who controls the channel. This is usually the one creating\n the channel.\n\n Common lockfuncs are all() and perm(). To make a channel everyone can\n listen to but only builders can talk on, use this:\n\n listen:all()\n send: perm(Builders)\n\n ## boot and ban\n\n Usage:\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n channel/ban channelname[, channelname, ...] = subscribername [: reason]\n channel/unban channelname[, channelname, ...] = subscribername\n channel/unban channelname\n channel/ban channelname (list bans)\n\n Booting will kick a named subscriber from channel(s) temporarily. The\n 'reason' will be passed to the booted user. Unless the /quiet switch is\n used, the channel will also be informed of the action. A booted user is\n still able to re-connect, but they'll have to set up their aliases again.\n\n Banning will blacklist a user from (re)joining the provided channels. It\n will then proceed to boot them from those channels if they were connected.\n The 'reason' and `/quiet` works the same as for booting.\n\n Example:\n boot mychannel1 = EvilUser : Kicking you to cool down a bit.\n ban mychannel1,mychannel2= EvilUser : Was banned for spamming.\n\n "}
    @@ -613,16 +905,18 @@ channel lists.

    Bases: evennia.commands.default.muxcommand.MuxCommand

    send a private message to another account

    -
    Usage:

    page[/switches] [<account>,<account>,… = <message>] +

    Usage:

    page <account> <message> +page[/switches] [<account>,<account>,… = <message>] tell ‘’ page <number>

    -
    Switch:

    last - shows who you last messaged +

    Switches:

    last - shows who you last messaged list - show your last <number> of tells/pages (default)

    -

    Send a message to target user (if online). If no -argument is given, you will get a list of your latest messages.

    +

    Send a message to target user (if online). If no argument is given, you +will get a list of your latest messages. The equal sign is needed for +multiple targets or if sending to target with space in the name.

    key = 'page'
    @@ -664,6 +958,11 @@ 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', 'no_prefix': ' ', 'tags': '', 'text': "\n send a private message to another account\n\n Usage:\n page <account> <message>\n page[/switches] [<account>,<account>,... = <message>]\n tell ''\n page <number>\n\n Switches:\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 argument is given, you\n will get a list of your latest messages. The equal sign is needed for\n multiple targets or if sending to target with space in the name.\n\n "}
    +
    +
    @@ -703,7 +1002,7 @@ The bot will relay everything said in the evennia channel to the IRC channel and vice versa. The bot will automatically connect at server start, so this command need only be given once. The /disconnect switch will permanently delete the bot. To only -temporarily deactivate it, use the |wservices|n command instead. +temporarily deactivate it, use the |wservices|n command instead. Provide an optional bot class path to use a custom bot.

    @@ -741,6 +1040,11 @@ 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', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -749,7 +1053,7 @@ Provide an optional bot class path to use a custom bot.

    Bases: evennia.commands.default.muxcommand.MuxCommand

    Check and reboot IRC bot.

    -
    Usage:

    ircstatus [#dbref ping||nicklist||reconnect]

    +
    Usage:

    ircstatus [#dbref ping | nicklist | reconnect]

    If not given arguments, will return a list of all bots (like @@ -792,6 +1096,11 @@ 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', 'no_prefix': ' ', '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 "}
    +
    +
    @@ -864,6 +1173,11 @@ to identify the connection uniquely.

    lock_storage = 'cmd:serversetting(RSS_ENABLED) and pperm(Developer)'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'comms', 'key': 'rss2chan', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -937,6 +1251,11 @@ must be added to game settings.

    lock_storage = 'cmd:serversetting(GRAPEVINE_ENABLED) and pperm(Developer)'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'comms', 'key': 'grapevine2chan', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -972,11 +1291,11 @@ must be added to game settings.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 92a79eb22a..0a43b314b8 100644 --- a/docs/0.9.5/api/evennia.commands.default.general.html +++ b/docs/0.9.5/api/evennia.commands.default.general.html @@ -88,6 +88,11 @@ lock_storage = 'cmd:perm(home) or perm(Builder)'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'home', 'no_prefix': ' ', 'tags': '', 'text': "\n move to your character's home location\n\n Usage:\n home\n\n Teleports you to your home location.\n "}
    +
    +
    @@ -138,6 +143,11 @@ look *<account&g lock_storage = 'cmd:all()'
    +
    +
    +search_index_entry = {'aliases': 'ls l', 'category': 'general', 'key': 'look', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -197,7 +207,7 @@ for everyone to use, you need build privileges and the alias command.

    -aliases = ['nicks', 'nickname']
    +aliases = ['nickname', 'nicks']
    @@ -227,6 +237,11 @@ 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', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -276,6 +291,11 @@ inv

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

    lock_storage = 'cmd:all()'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'setdesc', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -351,7 +376,7 @@ your inventory.

    -locks = 'cmd:all()'
    +locks = 'cmd:all();view:perm(Developer);read:perm(Developer)'
    @@ -372,7 +397,12 @@ your inventory.

    -lock_storage = 'cmd:all()'
    +lock_storage = 'cmd:all();view:perm(Developer);read:perm(Developer)' +
    + +
    +
    +search_index_entry = {'aliases': 'grab', 'category': 'general', 'key': 'get', 'no_prefix': ' ', '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 '}
    @@ -424,6 +454,11 @@ location you are currently in.

    lock_storage = 'cmd:all()'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'drop', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -478,6 +513,11 @@ placing it in their inventory.

    lock_storage = 'cmd:all()'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'give', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -505,6 +545,11 @@ placing it in their inventory.

    locks = 'cmd:all()'
    +
    +
    +arg_regex = None
    +
    +
    func()[source]
    @@ -521,6 +566,11 @@ placing it in their inventory.

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

    lock_storage = 'cmd:all()'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'whisper', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -601,6 +656,11 @@ automatically begin with your name.

    locks = 'cmd:all()'
    +
    +
    +arg_regex = None
    +
    +
    parse()[source]
    @@ -627,6 +687,11 @@ space.

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

    -aliases = ['hierarchy', 'groups']
    +aliases = ['groups', 'hierarchy']
    @@ -676,6 +741,11 @@ which permission groups you are a member of.

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

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 1dae5b54a9..6150938b84 100644 --- a/docs/0.9.5/api/evennia.commands.default.help.html +++ b/docs/0.9.5/api/evennia.commands.default.help.html @@ -41,24 +41,26 @@

    evennia.commands.default.help

    -

    The help command. The basic idea is that help texts for commands -are best written by those that write the commands - the admins. So -command-help is all auto-loaded and searched from the current command -set. The normal, database-tied help system is used for collaborative -creation of other help topics such as RP help or game-world aides.

    +

    The help command. The basic idea is that help texts for commands are best +written by those that write the commands - the developers. So command-help is +all auto-loaded and searched from the current command set. The normal, +database-tied help system is used for collaborative creation of other help +topics such as RP help or game-world aides. Help entries can also be created +outside the game in modules given by **settings.FILE_HELP_ENTRY_MODULES**.

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

    Bases: evennia.commands.default.muxcommand.MuxCommand

    -

    View help or a list of topics

    +

    Get help.

    -
    Usage:

    help <topic or command> -help list -help all

    +
    Usage:

    help +help <topic, command or category> +help <topic>/<subtopic> +help <topic>/<subtopic>/<subsubtopic> …

    -

    This will search for help on commands and other -topics related to the game.

    +

    Use the ‘help’ command alone to see an index of all help topics, organized +by category.eSome big topics may offer additional sub-topics.

    key = 'help'
    @@ -89,6 +91,21 @@ topics related to the game.

    help_more = True
    +
    +
    +index_type_separator_clr = '|w'
    +
    + +
    +
    +index_category_clr = '|W'
    +
    + +
    +
    +index_topic_clr = '|G'
    +
    +
    suggestion_cutoff = 0.6
    @@ -99,6 +116,16 @@ topics related to the game.

    suggestion_maxnum = 5
    +
    +
    +subtopic_separator_char = '/'
    +
    + +
    +
    +clickable_topics = True
    +
    +
    msg_help(text)[source]
    @@ -109,73 +136,148 @@ help window

    -static format_help_entry(title, help_text, aliases=None, suggested=None)[source]
    +format_help_entry(topic='', help_text='', aliases=None, suggested=None, subtopics=None, click_topics=True)[source]

    This visually formats the help entry. This method can be overriden to customize the way a help entry is displayed.

    Parameters
      -
    • title (str) – the title of the help entry.

    • -
    • help_text (str) – the text of the help entry.

    • -
    • aliases (list of str or None) – the list of aliases.

    • -
    • suggested (list of str or None) – suggested reading.

    • -
    -
    -
    -

    Returns the formatted string, ready to be sent.

    -
    - -
    -
    -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 -custom display of the list of commands and topics.

    -
    - -
    -
    -check_show_help(cmd, caller)[source]
    -

    Helper method. If this return True, the given cmd -auto-help will be viewable in the help listing. -Override this to easily select what is shown to -the account. Note that only commands available -in the caller’s merged cmdset are available.

    -
    -
    Parameters
    -
      -
    • cmd (Command) – Command class from the merged cmdset

    • -
    • caller (Character, Account or Session) – The current caller -executing the help command.

    • -
    -
    -
    -
    - -
    -
    -should_list_cmd(cmd, caller)[source]
    -

    Should the specified command appear in the help table?

    -

    This method only checks whether a specified command should -appear in the table of topics/commands. The command can be -used by the caller (see the ‘check_show_help’ method) and -the command will still be available, for instance, if a -character type ‘help name of the command’. However, if -you return False, the specified command will not appear in -the table. This is sometimes useful to “hide” commands in -the table, but still access them through the help system.

    -
    -
    Parameters
    -
      -
    • cmd – the command to be tested.

    • -
    • caller – the caller of the help system.

    • +
    • title (str, optional) – The title of the help entry.

    • +
    • help_text (str, optional) – Text of the help entry.

    • +
    • aliases (list, optional) – List of help-aliases (displayed in header).

    • +
    • suggested (list, optional) – Strings suggested reading (based on title).

    • +
    • subtopics (list, optional) – A list of strings - the subcategories available +for this entry.

    • +
    • click_topics (bool, optional) – Should help topics be clickable. Default is True.

    Returns
    -

    True – the command should appear in the table. -False: the command shouldn’t appear in the table.

    +

    help_message (str) – Help entry formated for console.

    +
    +
    +
    + +
    +
    +format_help_index(cmd_help_dict=None, db_help_dict=None, title_lone_category=False, click_topics=True)[source]
    +

    Output a category-ordered g for displaying the main help, grouped by +category.

    +
    +
    Parameters
    +
      +
    • cmd_help_dict (dict) – A dict {“category”: [topic, topic, …]} for +command-based help.

    • +
    • db_help_dict (dict) – A dict {“category”: [topic, topic], …]} for +database-based help.

    • +
    • title_lone_category (bool, optional) – If a lone category should +be titled with the category name or not. While pointless in a +general index, the title should probably show when explicitly +listing the category itself.

    • +
    • click_topics (bool, optional) – If help-topics are clickable or not +(for webclient or telnet clients with MXP support).

    • +
    +
    +
    Returns
    +

    str – The help index organized into a grid.

    +
    +
    +

    Notes

    +

    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.

    +
    + +
    +
    +can_read_topic(cmd_or_topic, caller)[source]
    +

    Helper method. If this return True, the given help topic +be viewable in the help listing. Note that even if this returns False, +the entry will still be visible in the help index unless should_list_topic +is also returning False.

    +
    +
    Parameters
    +
      +
    • cmd_or_topic (Command, HelpEntry or FileHelpEntry) – The topic/command to test.

    • +
    • caller – the caller checking for access.

    • +
    +
    +
    Returns
    +

    bool – If command can be viewed or not.

    +
    +
    +

    Notes

    +

    This uses the ‘read’ lock. If no ‘read’ lock is defined, the topic is assumed readable +by all.

    +
    + +
    +
    +can_list_topic(cmd_or_topic, caller)[source]
    +

    Should the specified command appear in the help table?

    +

    This method only checks whether a specified command should appear in the table of +topics/commands. The command can be used by the caller (see the ‘should_show_help’ method) +and the command will still be available, for instance, if a character type ‘help name of the +command’. However, if you return False, the specified command will not appear in the table. +This is sometimes useful to “hide” commands in the table, but still access them through the +help system.

    +
    +
    Parameters
    +
      +
    • cmd_or_topic (Command, HelpEntry or FileHelpEntry) – The topic/command to test.

    • +
    • caller – the caller checking for access.

    • +
    +
    +
    Returns
    +

    bool – If command should be listed or not.

    +
    +
    +

    Notes

    +

    The .auto_help propery is checked for commands. For all help entries, +the ‘view’ lock will be checked, and if no such lock is defined, the ‘read’ +lock will be used. If neither lock is defined, the help entry is assumed to be +accessible to all.

    +
    + +
    +
    +collect_topics(caller, mode='list')[source]
    +

    Collect help topics from all sources (cmd/db/file).

    +
    +
    Parameters
    +
      +
    • caller (Object or Account) – The user of the Command.

    • +
    • mode (str) – One of ‘list’ or ‘query’, where the first means we are collecting to view +the help index and the second because of wanting to search for a specific help +entry/cmd to read. This determines which access should be checked.

    • +
    +
    +
    Returns
    +

    tuple – A tuple of three dicts containing the different types of help entries +in the order cmd-help, db-help, file-help:

    +
    +

    ({key: cmd,…}, {key: dbentry,…}, {key: fileentry,…}

    +
    +

    +
    +
    +
    + +
    + +

    Perform a help-query search, default using Lunr search engine.

    +
    +
    Parameters
    +
      +
    • query (str) – The help entry to search for.

    • +
    • entries (list) – All possibilities. A mix of commands, HelpEntries and FileHelpEntries.

    • +
    • search_fields (list) – A list of dicts defining how Lunr will find the +search data on the elements. If not given, will use a default.

    • +
    +
    +
    Returns
    +

    tuple – A tuple (match, suggestions).

    @@ -184,6 +286,32 @@ False: the command shouldn’t appear in the table.

    parse()[source]

    input is a string containing the command or topic to match.

    +

    The allowed syntax is

    +
    help <topic>[/<subtopic>[/<subtopic>[/...]]]
    +
    +
    +

    The database/command query is always for <topic>, and any subtopics +is then parsed from there. If a <topic> has spaces in it, it is +always matched before assuming the space begins a subtopic.

    +
    + +
    +
    +strip_cmd_prefix(key, all_keys)[source]
    +

    Conditional strip of a command prefix, such as @ in @desc. By default +this will be hidden unless there is a duplicate without the prefix +in the full command set (such as @open and open).

    +
    +
    Parameters
    +
      +
    • key (str) – Command key to analyze.

    • +
    • all_cmds (list) – All command-keys (and potentially aliases).

    • +
    +
    +
    Returns
    +

    str – Potentially modified key to use in help display.

    +
    +
    @@ -202,12 +330,17 @@ False: the command shouldn’t appear in the table.

    lock_storage = 'cmd:all()'
    +
    +
    +search_index_entry = {'aliases': '?', 'category': 'general', 'key': 'help', 'no_prefix': ' ', 'tags': '', 'text': "\n Get help.\n\n Usage:\n help\n help <topic, command or category>\n help <topic>/<subtopic>\n help <topic>/<subtopic>/<subsubtopic> ...\n\n Use the 'help' command alone to see an index of all help topics, organized\n by category.eSome big topics may offer additional sub-topics.\n\n "}
    +
    +
    class evennia.commands.default.help.CmdSetHelp(**kwargs)[source]
    -

    Bases: evennia.commands.default.muxcommand.MuxCommand

    +

    Bases: evennia.commands.default.help.CmdHelp

    Edit the help database.

    Usage:

    help[/switches] <topic>[[;alias;alias][,category[,locks]] [= <text>]

    @@ -220,19 +353,53 @@ delete - remove help topic.

    Examples

    -

    sethelp throw = This throws something at … +

    sethelp lore = In the beginning was … sethelp/append pickpocketing,Thievery = This steals … sethelp/replace pickpocketing, ,attr(is_thief) = This steals … sethelp/edit thievery

    -

    This command manipulates the help database. A help entry can be created, -appended/merged to and deleted. If you don’t assign a category, the -“General” category will be used. If no lockstring is specified, default -is to let everyone read the help file.

    +

    If not assigning a category, the settings.DEFAULT_HELP_CATEGORY category +will be used. If no lockstring is specified, everyone will be able to read +the help entry. Sub-topics are embedded in the help text.

    +

    Note that this cannot modify command-help entries - these are modified +in-code, outside the game.

    +

    Subtopics helps to break up a long help entry into sub-sections. Users can +access subtopics with |whelp topic/subtopic/…|n Subtopics are created and +stored together with the main topic.

    +

    To start adding subtopics, add the text ‘# SUBTOPICS’ on a new line at the +end of your help text. After this you can now add any number of subtopics, +each starting with ‘## <subtopic-name>’ on a line, followed by the +help-text of that subtopic. +Use ‘### <subsub-name>’ to add a sub-subtopic and so on. Max depth is 5. A +subtopic’s title is case-insensitive and can consist of multiple words - +the user will be able to enter a partial match to access it.

    +

    For example:

    +
    +
    Main help text for <topic>
    +

    +
    # SUBTOPICS
    +

    +
    ## about
    +

    +
    Text for the ‘<topic>/about’ subtopic’
    +

    +
    ### more about-info
    +

    +
    Text for the ‘<topic>/about/more about-info sub-subtopic
    +

    +
    ## extra
    +

    +
    Text for the ‘<topic>/extra’ subtopic
    +
    key = 'sethelp'
    +
    +
    +aliases = []
    +
    +
    switch_options = ('edit', 'replace', 'append', 'extend', 'delete')
    @@ -248,6 +415,17 @@ is to let everyone read the help file.

    help_category = 'building'
    +
    +
    +arg_regex = None
    +
    + +
    +
    +parse()[source]
    +

    We want to use the default parser rather than the CmdHelp.parse

    +
    +
    func()[source]
    @@ -255,13 +433,13 @@ is to let everyone read the help file.

    -
    -aliases = []
    +
    +lock_storage = 'cmd:perm(Helper)'
    -
    -lock_storage = 'cmd:perm(Helper)'
    +
    +search_index_entry = {'aliases': '', 'category': 'building', 'key': 'sethelp', 'no_prefix': ' ', '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 lore = In the beginning was ...\n sethelp/append pickpocketing,Thievery = This steals ...\n sethelp/replace pickpocketing, ,attr(is_thief) = This steals ...\n sethelp/edit thievery\n\n If not assigning a category, the `settings.DEFAULT_HELP_CATEGORY` category\n will be used. If no lockstring is specified, everyone will be able to read\n the help entry. Sub-topics are embedded in the help text.\n\n Note that this cannot modify command-help entries - these are modified\n in-code, outside the game.\n\n # SUBTOPICS\n\n ## Adding subtopics\n\n Subtopics helps to break up a long help entry into sub-sections. Users can\n access subtopics with |whelp topic/subtopic/...|n Subtopics are created and\n stored together with the main topic.\n\n To start adding subtopics, add the text '# SUBTOPICS' on a new line at the\n end of your help text. After this you can now add any number of subtopics,\n each starting with '## <subtopic-name>' on a line, followed by the\n help-text of that subtopic.\n Use '### <subsub-name>' to add a sub-subtopic and so on. Max depth is 5. A\n subtopic's title is case-insensitive and can consist of multiple words -\n the user will be able to enter a partial match to access it.\n\n For example:\n\n | Main help text for <topic>\n |\n | # SUBTOPICS\n |\n | ## about\n |\n | Text for the '<topic>/about' subtopic'\n |\n | ### more about-info\n |\n | Text for the '<topic>/about/more about-info sub-subtopic\n |\n | ## extra\n |\n | Text for the '<topic>/extra' subtopic\n\n "}
    @@ -299,11 +477,11 @@ is to let everyone read the help file.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.commands.default.html b/docs/0.9.5/api/evennia.commands.default.html index 9056e74d89..e382c7846a 100644 --- a/docs/0.9.5/api/evennia.commands.default.html +++ b/docs/0.9.5/api/evennia.commands.default.html @@ -95,11 +95,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 339c8845de..ecb039b107 100644 --- a/docs/0.9.5/api/evennia.commands.default.muxcommand.html +++ b/docs/0.9.5/api/evennia.commands.default.muxcommand.html @@ -186,6 +186,11 @@ to all the variables defined therein.

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'command', 'no_prefix': ' ', '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 "}
    +
    +
    @@ -226,6 +231,11 @@ character is actually attached to this Account and Session.

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'command', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -261,11 +271,11 @@ character is actually attached to this Account and Session.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 4a60a6f286..c586bd1326 100644 --- a/docs/0.9.5/api/evennia.commands.default.syscommands.html +++ b/docs/0.9.5/api/evennia.commands.default.syscommands.html @@ -91,6 +91,11 @@ the line is just added to the editor buffer).

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

    lock_storage = 'cmd:all()'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'general', 'key': '__nomatch_command', 'no_prefix': ' ', 'tags': '', 'text': '\n No command was found matching the given input.\n '}
    +
    +
    @@ -177,118 +187,9 @@ the raw_cmdname is the cmdname unmodified by eventual prefix-st lock_storage = 'cmd:all()'
    - - -
    -
    -class evennia.commands.default.syscommands.SystemSendToChannel(**kwargs)[source]
    -

    Bases: evennia.commands.default.muxcommand.MuxCommand

    -

    This is a special command that the cmdhandler calls -when it detects that the command given matches -an existing Channel object key (or alias).

    -
    -key = '__send_to_channel_command'
    -
    - -
    -
    -locks = 'cmd:all()'
    -
    - -
    -
    -parse()[source]
    -

    This method is called by the cmdhandler once the command name -has been identified. It creates a new set of member variables -that can be later accessed from self.func() (see below)

    -

    The following variables are available for our use when entering this -method (from the command definition, and assigned on the fly by the -cmdhandler):

    -
    -

    self.key - the name of this command (‘look’) -self.aliases - the aliases of this cmd (‘l’) -self.permissions - permission string for this command -self.help_category - overall category of command

    -

    self.caller - the object calling this command -self.cmdstring - the actual command name used to call this

    -
    -
    -
    (this allows you to know which alias was used,

    for example)

    -
    -
    -
    -

    self.args - the raw input; everything following self.cmdstring. -self.cmdset - the cmdset from which this command was picked. Not

    -
    -

    often used (useful for commands like ‘help’ or to -list all available commands etc)

    -
    -
    -
    self.obj - the object on which this command was defined. It is often

    the same as self.caller.

    -
    -
    -
    -

    A MUX command has the following possible syntax:

    -
    -

    name[ with several words][/switch[/switch..]] arg1[,arg2,…] [[=|,] arg[,..]]

    -
    -

    The ‘name[ with several words]’ part is already dealt with by the -cmdhandler at this point, and stored in self.cmdname (we don’t use -it here). The rest of the command is stored in self.args, which can -start with the switch indicator /.

    -
    -
    Optional variables to aid in parsing, if set:
    -
    self.switch_options - (tuple of valid /switches expected by this

    command (without the /))

    -
    -
    self.rhs_split - Alternate string delimiter or tuple of strings

    to separate left/right hand sides. tuple form -gives priority split to first string delimiter.

    -
    -
    -
    -
    -

    This parser breaks self.args into its constituents and stores them in the -following variables:

    -
    -

    self.switches = [list of /switches (without the /)] -self.raw = This is the raw argument input, including switches -self.args = This is re-defined to be everything except the switches -self.lhs = Everything to the left of = (lhs:’left-hand side’). If

    -
    -

    no = is found, this is identical to self.args.

    -
    -
    -
    self.rhs: Everything to the right of = (rhs:’right-hand side’).

    If no ‘=’ is found, this is None.

    -
    -
    -

    self.lhslist - [self.lhs split into a list by comma] -self.rhslist - [list of self.rhs split into a list by comma] -self.arglist = [list of space-separated args (stripped, including ‘=’ if it exists)]

    -

    All args and list members are stripped of excess whitespace around the -strings, but case is preserved.

    -
    -
    - -
    -
    -func()[source]
    -

    Create a new message and send it to channel, using -the already formatted input.

    -
    - -
    -
    -aliases = []
    -
    - -
    -
    -help_category = 'general'
    -
    - -
    -
    -lock_storage = 'cmd:all()'
    +
    +search_index_entry = {'aliases': '', 'category': 'general', 'key': '__multimatch_command', 'no_prefix': ' ', '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 "}
    @@ -326,11 +227,11 @@ the already formatted input.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 8012b10fe0..a9bf29c742 100644 --- a/docs/0.9.5/api/evennia.commands.default.system.html +++ b/docs/0.9.5/api/evennia.commands.default.system.html @@ -42,6 +42,64 @@

    evennia.commands.default.system

    System commands

    +
    +
    +class evennia.commands.default.system.CmdAccounts(**kwargs)[source]
    +

    Bases: evennia.commands.default.muxcommand.MuxCommand

    +

    Manage registered accounts

    +
    +
    Usage:

    accounts [nr] +accounts/delete <name or #id> [: reason]

    +
    +
    Switches:

    delete - delete an account from the server

    +
    +
    +

    By default, lists statistics about the Accounts registered with the game. +It will list the <nr> amount of latest registered accounts +If not given, <nr> defaults to 10.

    +
    +
    +key = '@accounts'
    +
    + +
    +
    +aliases = ['@account']
    +
    + +
    +
    +switch_options = ('delete',)
    +
    + +
    +
    +locks = 'cmd:perm(listaccounts) or perm(Admin)'
    +
    + +
    +
    +help_category = 'system'
    +
    + +
    +
    +func()[source]
    +

    List the accounts

    +
    + +
    +
    +lock_storage = 'cmd:perm(listaccounts) or perm(Admin)'
    +
    + +
    +
    +search_index_entry = {'aliases': '@account', 'category': 'system', 'key': '@accounts', 'no_prefix': 'accounts @account', 'tags': '', 'text': '\n Manage registered accounts\n\n Usage:\n accounts [nr]\n accounts/delete <name or #id> [: reason]\n\n Switches:\n delete - delete an account from the server\n\n By default, lists statistics about the Accounts registered with the game.\n It will list the <nr> amount of latest registered accounts\n If not given, <nr> defaults to 10.\n '}
    +
    + +
    +
    class evennia.commands.default.system.CmdReload(**kwargs)[source]
    @@ -56,12 +114,12 @@ affected. Non-persistent scripts will survive a reload (use reset to purge) and at_reload() hooks will be called.

    -key = 'reload'
    +key = '@reload'
    -aliases = ['restart']
    +aliases = ['@restart']
    @@ -85,6 +143,11 @@ 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', 'no_prefix': 'reload @restart', '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 '}
    +
    +
    @@ -108,12 +171,12 @@ be called and any non-database saved scripts, ndb-attributes, cmdsets etc will be wiped.

    -key = 'reset'
    +key = '@reset'
    -aliases = ['reboot']
    +aliases = ['@reboot']
    @@ -137,6 +200,11 @@ cmdsets etc will be wiped.

    lock_storage = 'cmd:perm(reload) or perm(Developer)'
    +
    +
    +search_index_entry = {'aliases': '@reboot', 'category': 'system', 'key': '@reset', 'no_prefix': 'reset @reboot', '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 '}
    +
    +
    @@ -151,7 +219,7 @@ cmdsets etc will be wiped.

    Gracefully shut down both Server and Portal.

    -key = 'shutdown'
    +key = '@shutdown'
    @@ -180,6 +248,11 @@ cmdsets etc will be wiped.

    lock_storage = 'cmd:perm(shutdown) or perm(Developer)'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'system', 'key': '@shutdown', 'no_prefix': 'shutdown ', 'tags': '', 'text': '\n stop the server completely\n\n Usage:\n shutdown [announcement]\n\n Gracefully shut down both Server and Portal.\n '}
    +
    +
    @@ -233,12 +306,12 @@ py evennia.managers.__doc__

    should only be accessible by trusted server admins/superusers.|n

    -key = 'py'
    +key = '@py'
    -aliases = ['!']
    +aliases = ['@!']
    @@ -256,6 +329,11 @@ should only be accessible by trusted server admins/superusers.|n

    help_category = 'system'
    +
    +
    +arg_regex = re.compile('', re.IGNORECASE)
    +
    +
    func()[source]
    @@ -267,112 +345,9 @@ should only be accessible by trusted server admins/superusers.|n

    lock_storage = 'cmd:perm(py) or perm(Developer)'
    -
    - -
    -
    -class evennia.commands.default.system.CmdScripts(**kwargs)[source]
    -

    Bases: evennia.commands.default.muxcommand.MuxCommand

    -

    list and manage all running scripts

    -
    -
    Usage:

    scripts[/switches] [#dbref, key, script.path or <obj>]

    -
    -
    Switches:

    start - start a script (must supply a script path) -stop - stops an existing script -kill - kills a script - without running its cleanup hooks -validate - run a validation on the script(s)

    -
    -
    -

    If no switches are given, this command just views all active -scripts. The argument can be either an object, at which point it -will be searched for all scripts defined on it, or a script name -or #dbref. For using the /stop switch, a unique script #dbref is -required since whole classes of scripts often have the same name.

    -

    Use script for managing commands on objects.

    -
    -key = 'scripts'
    -
    - -
    -
    -aliases = ['listscripts', 'globalscript']
    -
    - -
    -
    -switch_options = ('start', 'stop', 'kill', 'validate')
    -
    - -
    -
    -locks = 'cmd:perm(listscripts) or perm(Admin)'
    -
    - -
    -
    -help_category = 'system'
    -
    - -
    -
    -excluded_typeclass_paths = ['evennia.prototypes.prototypes.DbPrototype']
    -
    - -
    -
    -func()[source]
    -

    implement method

    -
    - -
    -
    -lock_storage = 'cmd:perm(listscripts) or perm(Admin)'
    -
    - -
    - -
    -
    -class evennia.commands.default.system.CmdObjects(**kwargs)[source]
    -

    Bases: evennia.commands.default.muxcommand.MuxCommand

    -

    statistics on objects in the database

    -
    -
    Usage:

    objects [<nr>]

    -
    -
    -

    Gives statictics on objects in database as well as -a list of <nr> latest objects in database. If not -given, <nr> defaults to 10.

    -
    -
    -key = 'objects'
    -
    - -
    -
    -aliases = ['stats', 'db', 'listobjects', 'listobjs']
    -
    - -
    -
    -locks = 'cmd:perm(listobjects) or perm(Builder)'
    -
    - -
    -
    -help_category = 'system'
    -
    - -
    -
    -func()[source]
    -

    Implement the command

    -
    - -
    -
    -lock_storage = 'cmd:perm(listobjects) or perm(Builder)'
    +
    +search_index_entry = {'aliases': '@!', 'category': 'system', 'key': '@py', 'no_prefix': '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 "}
    @@ -398,12 +373,12 @@ service you have to supply the full (green or red) name as given in the list.

    -key = 'service'
    +key = '@service'
    -aliases = ['services']
    +aliases = ['@services']
    @@ -432,6 +407,11 @@ in the list.

    lock_storage = 'cmd:perm(service) or perm(Developer)'
    +
    +
    +search_index_entry = {'aliases': '@services', 'category': 'system', 'key': '@service', 'no_prefix': 'service @services', '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 '}
    +
    +
    @@ -446,12 +426,12 @@ in the list.

    Display info about the game engine.

    -key = 'about'
    +key = '@about'
    -aliases = ['version']
    +aliases = ['@version']
    @@ -475,6 +455,11 @@ in the list.

    lock_storage = 'cmd:all()'
    +
    +
    +search_index_entry = {'aliases': '@version', 'category': 'system', 'key': '@about', 'no_prefix': 'about @version', 'tags': '', 'text': '\n show Evennia info\n\n Usage:\n about\n\n Display info about the game engine.\n '}
    +
    +
    @@ -490,12 +475,12 @@ in the list.

    and the current time stamp.

    -key = 'time'
    +key = '@time'
    -aliases = ['uptime']
    +aliases = ['@uptime']
    @@ -519,6 +504,11 @@ and the current time stamp.

    lock_storage = 'cmd:perm(time) or perm(Player)'
    +
    +
    +search_index_entry = {'aliases': '@uptime', 'category': 'system', 'key': '@time', 'no_prefix': 'time @uptime', '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 '}
    +
    +
    @@ -553,12 +543,12 @@ caches may not show you a lower Residual/Virtual memory footprint, the released memory will instead be re-used by the program.

    -key = 'server'
    +key = '@server'
    -aliases = ['serverload', 'serverprocess']
    +aliases = ['@serverload']
    @@ -587,57 +577,98 @@ the released memory will instead be re-used by the program.

    lock_storage = 'cmd:perm(list) or perm(Developer)'
    +
    +
    +search_index_entry = {'aliases': '@serverload', 'category': 'system', 'key': '@server', 'no_prefix': 'server @serverload', '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 "}
    +
    +
    -
    -class evennia.commands.default.system.CmdAccounts(**kwargs)[source]
    +
    +class evennia.commands.default.system.CmdTasks(**kwargs)[source]

    Bases: evennia.commands.default.muxcommand.MuxCommand

    -

    Manage registered accounts

    +

    Display or terminate active tasks (delays).

    -
    Usage:

    accounts [nr] -accounts/delete <name or #id> [: reason]

    +
    Usage:

    tasks[/switch] [task_id or function_name]

    -
    Switches:

    delete - delete an account from the server

    +
    Switches:

    pause - Pause the callback of a task. +unpause - Process all callbacks made since pause() was called. +do_task - Execute the task (call its callback). +call - Call the callback of this task. +remove - Remove a task without executing it. +cancel - Stop a task from automatically executing.

    -

    By default, lists statistics about the Accounts registered with the game. -It will list the <nr> amount of latest registered accounts -If not given, <nr> defaults to 10.

    +

    Notes

    +

    A task is a single use method of delaying the call of a function. Calls are created +in code, using evennia.utils.delay. +See |luhttps://www.evennia.com/docs/latest/Command-Duration.html|ltthe docs|le for help.

    +

    By default, tasks that are canceled and never called are cleaned up after one minute.

    +

    Examples

    +
      +
    • +
      tasks/cancel move_callback - Cancels all movement delays from the slow_exit contrib.

      In this example slow exits creates it’s tasks with +utils.delay(move_delay, move_callback)

      +
      +
      +
    • +
    • tasks/cancel 2 - Cancel task id 2.

    • +
    -
    -key = 'accounts'
    +
    +key = '@tasks'
    -
    -aliases = ['listaccounts', 'account']
    +
    +aliases = ['@delays', '@task']
    -
    -switch_options = ('delete',)
    +
    +switch_options = ('pause', 'unpause', 'do_task', 'call', 'remove', 'cancel')
    -
    -locks = 'cmd:perm(listaccounts) or perm(Admin)'
    +
    +locks = 'cmd:all();perm(Developer)'
    -
    -help_category = 'system'
    +
    +help_category = 'system'
    -
    -func()[source]
    -

    List the accounts

    +
    +static coll_date_func(task)[source]
    +

    Replace regex characters in date string and collect deferred function name.

    +
    + +
    +
    +do_task_action(*args, **kwargs)[source]
    +

    Process the action of a tasks command.

    +

    This exists to gain support with yes or no function from EvMenu.

    +
    + +
    +
    +func()[source]
    +

    This is the hook function that actually does all the work. It is called +by the cmdhandler right after self.parser() finishes, and so has access +to all the variables defined therein.

    -
    -lock_storage = 'cmd:perm(listaccounts) or perm(Admin)'
    +
    +lock_storage = 'cmd:all();cmd:perm(Developer)'
    +
    + +
    +
    +search_index_entry = {'aliases': '@delays @task', 'category': 'system', 'key': '@tasks', 'no_prefix': 'tasks @delays @task @delays @task', 'tags': '', 'text': "\n Display or terminate active tasks (delays).\n\n Usage:\n tasks[/switch] [task_id or function_name]\n\n Switches:\n pause - Pause the callback of a task.\n unpause - Process all callbacks made since pause() was called.\n do_task - Execute the task (call its callback).\n call - Call the callback of this task.\n remove - Remove a task without executing it.\n cancel - Stop a task from automatically executing.\n\n Notes:\n A task is a single use method of delaying the call of a function. Calls are created\n in code, using `evennia.utils.delay`.\n See |luhttps://www.evennia.com/docs/latest/Command-Duration.html|ltthe docs|le for help.\n\n By default, tasks that are canceled and never called are cleaned up after one minute.\n\n Examples:\n - `tasks/cancel move_callback` - Cancels all movement delays from the slow_exit contrib.\n In this example slow exits creates it's tasks with\n `utils.delay(move_delay, move_callback)`\n - `tasks/cancel 2` - Cancel task id 2.\n\n "}
    @@ -656,7 +687,7 @@ using the TickerHandler. This is merely a convenience function for inspecting the current status.

    -key = 'tickers'
    +key = '@tickers'
    @@ -687,6 +718,11 @@ to all the variables defined therein.

    lock_storage = 'cmd:perm(tickers) or perm(Builder)'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'system', 'key': '@tickers', 'no_prefix': 'tickers ', 'tags': '', 'text': '\n View running tickers\n\n Usage:\n tickers\n\n Note: Tickers are created, stopped and manipulated in Python code\n using the TickerHandler. This is merely a convenience function for\n inspecting the current status.\n\n '}
    +
    +
    @@ -722,11 +758,11 @@ to all the variables defined therein.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 f2c39fb234..8726fca9de 100644 --- a/docs/0.9.5/api/evennia.commands.default.tests.html +++ b/docs/0.9.5/api/evennia.commands.default.tests.html @@ -53,25 +53,107 @@ main test suite started with

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

    Bases: evennia.utils.test_resources.EvenniaTest

    -

    Tests a command

    +

    Tests a Command by running it and comparing what messages it sends with +expected values. This tests without actually spinning up the cmdhandler +for every test, which is more controlled.

    +

    Example:

    +
    from commands.echo import CmdEcho
    +
    +class MyCommandTest(CommandTest):
    +
    +    def test_echo(self):
    +        '''
    +        Test that the echo command really returns
    +        what you pass into it.
    +        '''
    +        self.call(MyCommand(), "hello world!",
    +                  "You hear your echo: 'Hello world!'")
    +
    +
    -call(cmdobj, args, msg=None, cmdset=None, noansi=True, caller=None, receiver=None, cmdstring=None, obj=None, inputs=None, raw_string=None)[source]
    -

    Test a command by assigning all the needed -properties to cmdobj and running

    -
    -

    cmdobj.at_pre_cmd() -cmdobj.parse() -cmdobj.func() -cmdobj.at_post_cmd()

    -
    -

    The msgreturn value is compared to eventual -output sent to caller.msg in the game

    +call(cmdobj, input_args, msg=None, cmdset=None, noansi=True, caller=None, receiver=None, cmdstring=None, obj=None, inputs=None, raw_string=None)[source] +

    Test a command by assigning all the needed properties to a cmdobj and +running the sequence. The resulting .msg calls will be mocked and +the text= calls to them compared to a expected output.

    -
    Returns
    -

    msg (str) – The received message that was sent to the caller.

    +
    Parameters
    +
      +
    • cmdobj (Command) – The command object to use.

    • +
    • input_args (str) – This should be the full input the Command should +see, such as ‘look here’. This will become .args for the Command +instance to parse.

    • +
    • msg (str or dict, optional) – This is the expected return value(s) +returned through caller.msg(text=…) calls in the command. If a string, the +receiver is controlled with the receiver kwarg (defaults to caller). +If this is a dict, it is a mapping +{receiver1: “expected1”, receiver2: “expected2”,…} and receiver is +ignored. The message(s) are compared with the actual messages returned +to the receiver(s) as the Command runs. Each check uses .startswith, +so you can choose to only include the first part of the +returned message if that’s enough to verify a correct result. EvMenu +decorations (like borders) are stripped and should not be included. This +should also not include color tags unless noansi=False. +If the command returns texts in multiple separate .msg- +calls to a receiver, separate these with | if noansi=True +(default) and || if noansi=False. If no msg is given (None), +then no automatic comparison will be done.

    • +
    • cmdset (str, optional) – If given, make .cmdset available on the Command +instance as it runs. While .cmdset is normally available on the +Command instance by default, this is usually only used by +commands that explicitly operates/displays cmdsets, like +examine.

    • +
    • noansi (str, optional) – By default the color tags of the msg is +ignored, this makes them significant. If unset, msg must contain +the same color tags as the actual return message.

    • +
    • caller (Object or Account, optional) – By default self.char1 is used as the +command-caller (the .caller property on the Command). This allows to +execute with another caller, most commonly an Account.

    • +
    • receiver (Object or Account, optional) – This is the object to receive the +return messages we want to test. By default this is the same as caller +(which in turn defaults to is self.char1). Note that if msg is +a dict, this is ignored since the receiver is already specified there.

    • +
    • cmdstring (str, optional) – Normally this is the Command’s key. +This allows for tweaking the .cmdname property of the +Command**. This isb used for commands with multiple aliases, +where the command explicitly checs which alias was used to +determine its functionality.

    • +
    • obj (str, optional) – This sets the .obj property of the Command - the +object on which the Command ‘sits’. By default this is the same as caller. +This can be used for testing on-object Command interactions.

    • +
    • inputs (list, optional) – A list of strings to pass to functions that pause to +take input from the user (normally using @interactive and +ret = yield(question) or evmenu.get_input). Each element of the +list will be passed into the command as if the user wrote that at the prompt.

    • +
    • raw_string (str, optional) – Normally the .raw_string property is set as +a combination of your key/cmdname and input_args. This allows +direct control of what this is, for example for testing edge cases +or malformed inputs.

    • +
    +
    +
    Returns
    +

    str or dict

    +
    +
    The message sent to receiver, or a dict of

    {receiver: “msg”, …} if multiple are given. This is usually +only used with msg=None to do the validation externally.

    +

    +
    +
    Raises
    +

    AssertionError – If the returns of .msg calls (tested with .startswith) does not +match expected_input.

    +
    +
    +

    Notes

    +

    As part of the tests, all methods of the Command will be called in +the proper order:

    +
      +
    • cmdobj.at_pre_cmd()

    • +
    • cmdobj.parse()

    • +
    • cmdobj.func()

    • +
    • cmdobj.at_post_cmd()

    • +
    @@ -141,6 +223,23 @@ output sent to caller.msg in the game

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

    Bases: evennia.commands.default.tests.CommandTest

    +
    +
    +maxDiff = None
    +
    + +
    +
    +setUp()[source]
    +

    Sets up testing environment

    +
    + +
    +
    +tearDown()[source]
    +

    Hook method for deconstructing the test fixture after testing it.

    +
    +
    test_help()[source]
    @@ -151,6 +250,83 @@ output sent to caller.msg in the game

    test_set_help()[source]
    +
    +
    +test_subtopic_fetch = None
    +
    + +
    +
    +test_subtopic_fetch_00_test()
    +

    Check retrieval of subtopics [with helparg=’test’, expected=’Help for testnnMain help text… test/something else test/more’].

    +
    + +
    +
    +test_subtopic_fetch_01_test_creating_extra_stuff()
    +

    Check retrieval of subtopics [with helparg=’test/creating extra stuff’, expected=’Help for test/creating extra st…ating extra stuff/subsubtopicn’].

    +
    + +
    +
    +test_subtopic_fetch_02_test_creating()
    +

    Check retrieval of subtopics [with helparg=’test/creating’, expected=’Help for test/creating extra st…ating extra stuff/subsubtopicn’].

    +
    + +
    +
    +test_subtopic_fetch_03_test_extra()
    +

    Check retrieval of subtopics [with helparg=’test/extra’, expected=’Help for test/creating extra st…ating extra stuff/subsubtopicn’].

    +
    + +
    +
    +test_subtopic_fetch_04_test_extra_subsubtopic()
    +

    Check retrieval of subtopics [with helparg=’test/extra/subsubtopic’, expected=’Help for test/creating extra st…bsubtopicnnA subsubtopic text’].

    +
    + +
    +
    +test_subtopic_fetch_05_test_creating_extra_subsub()
    +

    Check retrieval of subtopics [with helparg=’test/creating extra/subsub’, expected=’Help for test/creating extra st…bsubtopicnnA subsubtopic text’].

    +
    + +
    +
    +test_subtopic_fetch_06_test_Something_else()
    +

    Check retrieval of subtopics [with helparg=’test/Something else’, expected=’Help for test/something elsennSomething else’].

    +
    + +
    +
    +test_subtopic_fetch_07_test_More()
    +

    Check retrieval of subtopics [with helparg=’test/More’, expected=’Help for test/morennAnother t…opics:n test/more/second-more’].

    +
    + +
    +
    +test_subtopic_fetch_08_test_More_Second_more()
    +

    Check retrieval of subtopics [with helparg=’test/More/Second-more’, expected=’Help for test/more/second-more...est/more/second-more/third more’].

    +
    + +
    +
    +test_subtopic_fetch_09_test_More_more()
    +

    Check retrieval of subtopics [with helparg=’test/More/-more’, expected=’Help for test/more/second-more...est/more/second-more/third more’].

    +
    + +
    +
    +test_subtopic_fetch_10_test_more_second_more_again()
    +

    Check retrieval of subtopics [with helparg=’test/more/second/more again’, expected=’Help for test/more/second-more/more againnnEven more text.n’].

    +
    + +
    +
    +test_subtopic_fetch_11_test_more_second_third()
    +

    Check retrieval of subtopics [with helparg=’test/more/second/third’, expected=’Help for test/more/second-more/third morennThird more textn’].

    +
    +
    @@ -184,6 +360,106 @@ output sent to caller.msg in the game

    +
    +
    +evennia.commands.default.tests.func_test_cmd_tasks()[source]
    +
    + +
    +
    +class evennia.commands.default.tests.TestCmdTasks(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_no_tasks()[source]
    +
    + +
    +
    +test_active_task()[source]
    +
    + +
    +
    +test_persistent_task()[source]
    +
    + +
    +
    +test_pause_unpause()[source]
    +
    + +
    +
    +test_do_task()[source]
    +
    + +
    +
    +test_remove()[source]
    +
    + +
    +
    +test_call()[source]
    +
    + +
    +
    +test_cancel()[source]
    +
    + +
    +
    +test_func_name_manipulation()[source]
    +
    + +
    +
    +test_wrong_func_name()[source]
    +
    + +
    +
    +test_no_input()[source]
    +
    + +
    +
    +test_responce_of_yes()[source]
    +
    + +
    +
    +test_task_complete_waiting_input()[source]
    +

    Test for task completing while waiting for input.

    +
    + +
    +
    +test_new_task_waiting_input()[source]
    +

    Test task completing than a new task with the same ID being made while waitinf for input.

    +
    + +
    +
    +test_misformed_command()[source]
    +
    + +
    +
    class evennia.commands.default.tests.TestAdmin(methodName='runTest')[source]
    @@ -435,63 +711,112 @@ output sent to caller.msg in the game

    -
    -class evennia.commands.default.tests.TestComms(methodName='runTest')[source]
    +
    +class evennia.commands.default.tests.TestCommsChannel(methodName='runTest')[source]

    Bases: evennia.commands.default.tests.CommandTest

    +

    Test the central channel command.

    -
    -setUp()[source]
    +
    +setUp()[source]

    Sets up testing environment

    -
    -test_toggle_com()[source]
    +
    +tearDown()[source]
    +

    Hook method for deconstructing the test fixture after testing it.

    +
    + +
    +
    +test_channel__noarg()[source]
    -
    -test_channels()[source]
    +
    +test_channel__msg()[source]
    -
    -test_all_com()[source]
    +
    +test_channel__list()[source]
    -
    -test_clock()[source]
    +
    +test_channel__all()[source]
    -
    -test_cdesc()[source]
    +
    +test_channel__history()[source]
    -
    -test_cemit()[source]
    +
    +test_channel__sub()[source]
    -
    -test_cwho()[source]
    +
    +test_channel__unsub()[source]
    -
    -test_page()[source]
    +
    +test_channel__alias__unalias()[source]
    +

    Add and then remove a channel alias

    +
    + +
    +
    +test_channel__mute()[source]
    -
    -test_cboot()[source]
    +
    +test_channel__unmute()[source]
    -
    -test_cdestroy()[source]
    +
    +test_channel__create()[source]
    +
    + +
    +
    +test_channel__destroy()[source]
    +
    + +
    +
    +test_channel__desc()[source]
    +
    + +
    +
    +test_channel__lock()[source]
    +
    + +
    +
    +test_channel__unlock()[source]
    +
    + +
    +
    +test_channel__boot()[source]
    +
    + +
    +
    +test_channel__ban__unban()[source]
    +

    Test first ban and then unban

    +
    + +
    +
    +test_channel__who()[source]
    @@ -502,7 +827,7 @@ output sent to caller.msg in the game

    Bases: evennia.commands.default.tests.CommandTest

    -test_batch_commands()[source]
    +test_batch_commands(mock_delay, mock_repeat)[source]
    @@ -511,7 +836,7 @@ output sent to caller.msg in the game

    class evennia.commands.default.tests.CmdInterrupt(**kwargs)[source]

    Bases: evennia.commands.command.Command

    -

    Base command

    +

    (you may see this if a child command had no help text defined)

    Usage:

    command [args]

    @@ -602,6 +927,11 @@ set in self.parse())

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'interrupt', 'no_prefix': ' ', 'tags': '', 'text': '\n ## Base command\n\n (you may see this if a child command had no help text defined)\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 '}
    +
    +
    @@ -640,11 +970,6 @@ set in self.parse())

    test_multimatch()[source]
    -
    -
    -test_channelcommand(mock_channeldb)[source]
    -
    - @@ -680,11 +1005,11 @@ set in self.parse())

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 a8abff1e65..eafac78f59 100644 --- a/docs/0.9.5/api/evennia.commands.default.unloggedin.html +++ b/docs/0.9.5/api/evennia.commands.default.unloggedin.html @@ -61,7 +61,7 @@ connect “account name” “pass word”

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

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

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

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

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

    -aliases = ['l', 'look']
    +aliases = ['look', 'l']
    @@ -234,6 +249,11 @@ All it does is display the connect screen.

    lock_storage = 'cmd:all()'
    +
    +
    +search_index_entry = {'aliases': 'look l', 'category': 'general', 'key': '__unloggedin_look_command', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -278,6 +298,11 @@ for simplicity. It shows a pane of info.

    lock_storage = 'cmd:all()'
    +
    +
    +search_index_entry = {'aliases': '? h', 'category': 'general', 'key': 'help', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -330,6 +355,11 @@ instead.

    lock_storage = 'cmd:all()'
    +
    +
    +search_index_entry = {'aliases': 'encode', 'category': 'general', 'key': 'encoding', 'no_prefix': ' ', 'tags': '', 'text': "\n set which text encoding to use in unconnected-in state\n\n Usage:\n encoding/switches [<encoding>]\n\n Switches:\n clear - clear your custom encoding\n\n\n This sets the text encoding for communicating with Evennia. This is mostly\n an issue only if you want to use non-ASCII characters (i.e. letters/symbols\n not found in English). If you see that your characters look strange (or you\n get encoding errors), you should use this command to set the server\n encoding to be the same used in your client program.\n\n Common encodings are utf-8 (default), latin-1, ISO-8859-1 etc.\n\n If you don't submit an encoding, the current encoding will be displayed\n instead.\n "}
    +
    +
    @@ -374,6 +404,11 @@ to all the variables defined therein.

    lock_storage = 'cmd:all()'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'info', 'no_prefix': ' ', 'tags': '', 'text': '\n Provides MUDINFO output, so that Evennia games can be added to Mudconnector\n and Mudstats. Sadly, the MUDINFO specification seems to have dropped off the\n face of the net, but it is still used by some crawlers. This implementation\n was created by looking at the MUDINFO implementation in MUX2, TinyMUSH, Rhost,\n and PennMUSH.\n '}
    +
    +
    @@ -413,6 +448,11 @@ logged in, use option screenreader on).

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'screenreader', 'no_prefix': ' ', 'tags': '', 'text': '\n Activate screenreader mode.\n\n Usage:\n screenreader\n\n Used to flip screenreader mode on and off before logging in (when\n logged in, use option screenreader on).\n '}
    +
    + @@ -448,11 +488,11 @@ logged in, use option screenreader on).

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.commands.html b/docs/0.9.5/api/evennia.commands.html index e2284915bb..555435c6cf 100644 --- a/docs/0.9.5/api/evennia.commands.html +++ b/docs/0.9.5/api/evennia.commands.html @@ -111,11 +111,11 @@ Evennia.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.comms.admin.html b/docs/0.9.5/api/evennia.comms.admin.html index 9d40926149..701e6b7b02 100644 --- a/docs/0.9.5/api/evennia.comms.admin.html +++ b/docs/0.9.5/api/evennia.comms.admin.html @@ -39,197 +39,8 @@
    -
    -

    evennia.comms.admin

    -

    This defines how Comm models are displayed in the web admin interface.

    -
    -
    -class evennia.comms.admin.ChannelAttributeInline(parent_model, admin_site)[source]
    -

    Bases: evennia.typeclasses.admin.AttributeInline

    -

    Inline display of Channel Attribute - experimental

    -
    -
    -model
    -

    alias of evennia.comms.models.ChannelDB_db_attributes

    -
    - -
    -
    -related_field = 'channeldb'
    -
    - -
    -
    -property media
    -
    - -
    - -
    -
    -class evennia.comms.admin.ChannelTagInline(parent_model, admin_site)[source]
    -

    Bases: evennia.typeclasses.admin.TagInline

    -

    Inline display of Channel Tags - experimental

    -
    -
    -model
    -

    alias of evennia.comms.models.ChannelDB_db_tags

    -
    - -
    -
    -related_field = 'channeldb'
    -
    - -
    -
    -property media
    -
    - -
    - -
    -
    -class evennia.comms.admin.MsgAdmin(model, admin_site)[source]
    -

    Bases: django.contrib.admin.options.ModelAdmin

    -

    Defines display for Msg objects

    -
    -
    -list_display = ('id', 'db_date_created', 'db_sender', 'db_receivers', 'db_channels', 'db_message', 'db_lock_storage')
    -
    - -
    - -
    - -
    -
    -ordering = ['db_date_created', 'db_sender', 'db_receivers', 'db_channels']
    -
    - -
    -
    -search_fields = ['id', '^db_date_created', '^db_message']
    -
    - -
    -
    -save_as = True
    -
    - -
    -
    -save_on_top = True
    -
    - -
    - -
    - -
    -
    -property media
    -
    - -
    - -
    -
    -class evennia.comms.admin.ChannelAdmin(model, admin_site)[source]
    -

    Bases: django.contrib.admin.options.ModelAdmin

    -

    Defines display for Channel objects

    -
    -
    -inlines = [<class 'evennia.comms.admin.ChannelTagInline'>, <class 'evennia.comms.admin.ChannelAttributeInline'>]
    -
    - -
    -
    -list_display = ('id', 'db_key', 'db_lock_storage', 'subscriptions')
    -
    - -
    - -
    - -
    -
    -ordering = ['db_key']
    -
    - -
    -
    -search_fields = ['id', 'db_key', 'db_tags__db_key']
    -
    - -
    -
    -save_as = True
    -
    - -
    -
    -save_on_top = True
    -
    - -
    - -
    - -
    -
    -raw_id_fields = ('db_object_subscriptions', 'db_account_subscriptions')
    -
    - -
    -
    -fieldsets = ((None, {'fields': (('db_key',), 'db_lock_storage', 'db_account_subscriptions', 'db_object_subscriptions')}),)
    -
    - -
    -
    -subscriptions(obj)[source]
    -

    Helper method to get subs from a channel.

    -
    -
    Parameters
    -

    obj (Channel) – The channel to get subs from.

    -
    -
    -
    - -
    -
    -save_model(request, obj, form, change)[source]
    -

    Model-save hook.

    -
    -
    Parameters
    -
      -
    • request (Request) – Incoming request.

    • -
    • obj (Object) – Database object.

    • -
    • form (Form) – Form instance.

    • -
    • change (bool) – If this is a change or a new object.

    • -
    -
    -
    -
    - -
    -
    -response_add(request, obj, post_url_continue=None)[source]
    -

    Determine the HttpResponse for the add_view stage.

    -
    - -
    -
    -property media
    -
    - -
    - +
    +

    evennia.comms.admin

    @@ -263,11 +74,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.comms.channelhandler.html b/docs/0.9.5/api/evennia.comms.channelhandler.html index 0b91a8022c..6c35798bcd 100644 --- a/docs/0.9.5/api/evennia.comms.channelhandler.html +++ b/docs/0.9.5/api/evennia.comms.channelhandler.html @@ -39,228 +39,8 @@
    -
    -

    evennia.comms.channelhandler

    -

    The channel handler, accessed from this module as CHANNEL_HANDLER is a -singleton that handles the stored set of channels and how they are -represented against the cmdhandler.

    -

    If there is a channel named ‘newbie’, we want to be able to just write

    -
    -

    newbie Hello!

    -
    -

    For this to work, ‘newbie’, the name of the channel, must be -identified by the cmdhandler as a command name. The channelhandler -stores all channels as custom ‘commands’ that the cmdhandler can -import and look through.

    -

    > Warning - channel names take precedence over command names, so make -sure to not pick clashing channel names.

    -

    Unless deleting a channel you normally don’t need to bother about the -channelhandler at all - the create_channel method handles the update.

    -

    To delete a channel cleanly, delete the channel object, then call -update() on the channelhandler. Or use Channel.objects.delete() which -does this for you.

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

    Bases: evennia.commands.default.muxcommand.MuxCommand

    -

    {channelkey} channel

    -

    {channeldesc}

    -
    -
    Usage:

    {lower_channelkey} <message> -{lower_channelkey}/history [start] -{lower_channelkey} off - mutes the channel -{lower_channelkey} on - unmutes the channel

    -
    -
    Switch:
    -
    history: View 20 previous messages, either from the end or

    from <start> number of messages from the end.

    -
    -
    -
    -
    -

    Example

    -

    {lower_channelkey} Hello World! -{lower_channelkey}/history -{lower_channelkey}/history 30

    -
    -
    -is_channel = True
    -
    - -
    -
    -key = 'general'
    -
    - -
    -
    -help_category = 'channel names'
    -
    - -
    -
    -obj = None
    -
    - -
    -
    -arg_regex = re.compile('\\s.*?|/history.*?', re.IGNORECASE)
    -
    - -
    -
    -parse()[source]
    -

    Simple parser

    -
    - -
    -
    -func()[source]
    -

    Create a new message and send it to channel, using -the already formatted input.

    -
    - -
    -
    -get_extra_info(caller, **kwargs)[source]
    -

    Let users know that this command is for communicating on a channel.

    -
    -
    Parameters
    -

    caller (TypedObject) – A Character or Account who has entered an ambiguous command.

    -
    -
    Returns
    -

    A string with identifying information to disambiguate the object, conventionally with a preceding space.

    -
    -
    -
    - -
    -
    -aliases = []
    -
    - -
    -
    -lock_storage = 'cmd:all();'
    -
    - -
    - -
    -
    -class evennia.comms.channelhandler.ChannelHandler[source]
    -

    Bases: object

    -

    The ChannelHandler manages all active in-game channels and -dynamically creates channel commands for users so that they can -just give the channel’s key or alias to write to it. Whenever a -new channel is created in the database, the update() method on -this handler must be called to sync it with the database (this is -done automatically if creating the channel with -evennia.create_channel())

    -
    -
    -__init__()[source]
    -

    Initializes the channel handler’s internal state.

    -
    - -
    -
    -clear()[source]
    -

    Reset the cache storage.

    -
    - -
    -
    -add(channel)[source]
    -

    Add an individual channel to the handler. This is called -whenever a new channel is created.

    -
    -
    Parameters
    -

    channel (Channel) – The channel to add.

    -
    -
    -

    Notes

    -

    To remove a channel, simply delete the channel object and -run self.update on the handler. This should usually be -handled automatically by one of the deletion methos of -the Channel itself.

    -
    - -
    -
    -add_channel(channel)
    -

    Add an individual channel to the handler. This is called -whenever a new channel is created.

    -
    -
    Parameters
    -

    channel (Channel) – The channel to add.

    -
    -
    -

    Notes

    -

    To remove a channel, simply delete the channel object and -run self.update on the handler. This should usually be -handled automatically by one of the deletion methos of -the Channel itself.

    -
    - -
    -
    -remove(channel)[source]
    -

    Remove channel from channelhandler. This will also delete it.

    -
    -
    Parameters
    -

    channel (Channel) – Channel to remove/delete.

    -
    -
    -
    - -
    -
    -update()[source]
    -

    Updates the handler completely, including removing old removed -Channel objects. This must be called after deleting a Channel.

    -
    - -
    -
    -get(channelname=None)[source]
    -

    Get a channel from the handler, or all channels

    -
    -
    Parameters
    -

    channelame (str, optional) – Channel key, case insensitive.

    -
    -
    -
    -
    Returns
    -
    channels (list): The matching channels in a list, or all

    channels in the handler.

    -
    -
    -
    -
    -
    - -
    -
    -get_cmdset(source_object)[source]
    -

    Retrieve cmdset for channels this source_object has -access to send to.

    -
    -
    Parameters
    -

    source_object (Object) – An object subscribing to one -or more channels.

    -
    -
    Returns
    -

    cmdsets (list)

    -
    -
    The Channel-Cmdsets source_object has

    access to.

    -
    -
    -

    -
    -
    -
    - -
    - +
    +

    evennia.comms.channelhandler

    @@ -294,11 +74,11 @@ or more channels.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.comms.comms.html b/docs/0.9.5/api/evennia.comms.comms.html index 94995894fc..75045bc373 100644 --- a/docs/0.9.5/api/evennia.comms.comms.html +++ b/docs/0.9.5/api/evennia.comms.comms.html @@ -48,11 +48,50 @@

    Bases: evennia.comms.models.ChannelDB

    This is the base class for all Channel Comms. Inherit from this to create different types of communication channels.

    +
    +
    Class-level variables:
      +
    • send_to_online_only (bool, default True) - if set, will only try to +send to subscribers that are actually active. This is a useful optimization.

    • +
    • log_file (str, default “channel_{channelname}.log”). This is the +log file to which the channel history will be saved. The {channelname} tag +will be replaced by the key of the Channel. If an Attribute ‘log_file’ +is set, this will be used instead. If this is None and no Attribute is found, +no history will be saved.

    • +
    • channel_prefix_string (str, default “[{channelname} ]”) - this is used +as a simple template to get the channel prefix with .channel_prefix().

    • +
    +
    +
    objects = <evennia.comms.managers.ChannelManager object>
    +
    +
    +send_to_online_only = True
    +
    + +
    +
    +log_file = 'channel_{channelname}.log'
    +
    + +
    +
    +channel_prefix_string = '[{channelname}] '
    +
    + +
    +
    +channel_msg_nick_pattern = '{alias}\\s*?|{alias}\\s+?(?P<arg1>.+?)'
    +
    + +
    +
    +channel_msg_nick_replacement = 'channel {channelname} = $1'
    +
    +
    at_first_save()[source]
    @@ -72,6 +111,34 @@ the hooks called by this method.

    Called once, when the channel is first created.

    +
    +
    +get_log_filename()[source]
    +

    File name to use for channel log.

    +
    +
    Returns
    +

    str

    +
    +
    The filename to use (this is always assumed to be inside

    settings.LOG_DIR)

    +
    +
    +

    +
    +
    +
    + +
    +
    +set_log_filename(filename)[source]
    +

    Set a custom log filename.

    +
    +
    Parameters
    +

    filename (str) – The filename to set. This is a path starting from +inside the settings.LOG_DIR location.

    +
    +
    +
    +
    has_connection(subscriber)[source]
    @@ -102,6 +169,11 @@ to this channel.

    property mutelist
    +
    +
    +property banlist
    +
    +
    property wholist
    @@ -121,14 +193,22 @@ but may use channel commands.

    overriding the call (unused by default).

    +
    Returns
    +

    bool

    +
    +
    True if muting was successful, False if we were already

    muted.

    +
    +
    +

    +
    unmute(subscriber, **kwargs)[source]
    -

    Removes an entity to the list of muted subscribers. A muted subscriber will no longer see channel messages, -but may use channel commands.

    +

    Removes an entity from the list of muted subscribers. A muted subscriber +will no longer see channel messages, but may use channel commands.

    Parameters
      @@ -137,6 +217,65 @@ but may use channel commands.

      overriding the call (unused by default).

    +
    Returns
    +

    bool

    +
    +
    True if unmuting was successful, False if we were already

    unmuted.

    +
    +
    +

    +
    +
    +
    + +
    +
    +ban(target, **kwargs)[source]
    +

    Ban a given user from connecting to the channel. This will not stop +users already connected, so the user must be booted for this to take +effect.

    +
    +
    Parameters
    +
      +
    • target (Object or Account) – The entity to unmute. This need not +be a subscriber.

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

    • +
    +
    +
    Returns
    +

    bool

    +
    +
    True if banning was successful, False if target was already

    banned.

    +
    +
    +

    +
    +
    +
    + +
    +
    +unban(target, **kwargs)[source]
    +

    Un-Ban a given user. This will not reconnect them - they will still +have to reconnect and set up aliases anew.

    +
    +
    Parameters
    +
      +
    • target (Object or Account) – The entity to unmute. This need not +be a subscriber.

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

    • +
    +
    +
    Returns
    +

    bool

    +
    +
    True if unbanning was successful, False if target was not

    previously banned.

    +
    +
    +

    +
    @@ -212,7 +351,7 @@ overriding the call (unused by default).

    -classmethod create(key, account=None, *args, **kwargs)[source]
    +classmethod create(key, creator=None, *args, **kwargs)[source]

    Creates a basic Channel with default parameters, unless otherwise specified or extended.

    Provides a friendlier interface to the utils.create_channel() function.

    @@ -220,7 +359,8 @@ specified or extended.

    Parameters
    • key (str) – This must be unique.

    • -
    • account (Account) – Account to attribute this object to.

    • +
    • creator (Account or Object) – Entity to associate with this channel +(used for tracking)

    Keyword Arguments
    @@ -244,88 +384,13 @@ errors (list): A list of errors in string form, if any.

    delete()[source]
    -

    Deletes channel while also cleaning up channelhandler.

    -
    - -
    -
    -message_transform(msgobj, emit=False, prefix=True, sender_strings=None, external=False, **kwargs)[source]
    -

    Generates the formatted string sent to listeners on a channel.

    +

    Deletes channel.

    -
    Parameters
    -
      -
    • msgobj (Msg) – Message object to send.

    • -
    • emit (bool, optional) – In emit mode the message is not associated -with a specific sender name.

    • -
    • prefix (bool, optional) – Prefix msg with a text given by self.channel_prefix.

    • -
    • sender_strings (list, optional) – Used by bots etc, one string per external sender.

    • -
    • external (bool, optional) – If this is an external sender or not.

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

    • -
    -
    -
    -
    - -
    -
    -distribute_message(msgobj, online=False, **kwargs)[source]
    -

    Method for grabbing all listeners that a message should be -sent to on this channel, and sending them a message.

    -
    -
    Parameters
    -
      -
    • msgobj (Msg or TempMsg) – Message to distribute.

    • -
    • online (bool) – Only send to receivers who are actually online -(not currently used):

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

    • -
    -
    -
    -

    Notes

    -

    This is also where logging happens, if enabled.

    -
    - -
    -
    -msg(msgobj, header=None, senders=None, sender_strings=None, keep_log=None, online=False, emit=False, external=False)[source]
    -

    Send the given message to all accounts connected to channel. Note that -no permission-checking is done here; it is assumed to have been -done before calling this method. The optional keywords are not used if -persistent is False.

    -
    -
    Parameters
    -
      -
    • msgobj (Msg, TempMsg or str) – If a Msg/TempMsg, the remaining -keywords will be ignored (since the Msg/TempMsg object already -has all the data). If a string, this will either be sent as-is -(if persistent=False) or it will be used together with header -and senders keywords to create a Msg instance on the fly.

    • -
    • header (str, optional) – A header for building the message.

    • -
    • senders (Object, Account or list, optional) – Optional if persistent=False, used -to build senders for the message.

    • -
    • sender_strings (list, optional) – Name strings of senders. Used for external -connections where the sender is not an account or object. -When this is defined, external will be assumed. The list will be -filtered so each sender-string only occurs once.

    • -
    • keep_log (bool or None, optional) – This allows to temporarily change the logging status of -this channel message. If None, the Channel’s keep_log Attribute will -be used. If True or False, that logging status will be used for this -message only (note that for unlogged channels, a True value here will -create a new log file only for this message).

    • -
    • online (bool, optional) – online. Otherwise, messages all accounts connected. This can -make things faster, but may not trigger listeners on accounts -that are offline.

    • -
    • emit (bool, optional) – not to be directly associated with a name.

    • -
    • external (bool, optional) – Treat this message as being -agnostic of its sender.

    • -
    -
    -
    Returns
    -

    success (bool)

    +
    Returns
    +

    bool

    -
    Returns True if message sending was

    successful, False otherwise.

    +
    If deletion was successful. Only time it can fail would be

    if channel was already deleted. Even if it were to fail, all subscribers +will be disconnected.

    @@ -333,83 +398,89 @@ agnostic of its sender.

    -
    -
    -tempmsg(message, header=None, senders=None)[source]
    -

    A wrapper for sending non-persistent messages.

    -
    -
    Parameters
    -
      -
    • message (str) – Message to send.

    • -
    • header (str, optional) – Header of message to send.

    • -
    • senders (Object or list, optional) – Senders of message to send.

    • -
    -
    -
    -
    -
    -channel_prefix(msg=None, emit=False, **kwargs)[source]
    +channel_prefix()[source]

    Hook method. How the channel should prefix itself for users.

    -
    Parameters
    -
      -
    • msg (str, optional) – Prefix text

    • -
    • emit (bool, optional) – Switches to emit mode, which usually -means to not prefix the channel’s info.

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

    • -
    -
    -
    Returns
    -

    prefix (str) – The created channel prefix.

    +
    Returns
    +

    str – The channel prefix.

    -
    -format_senders(senders=None, **kwargs)[source]
    -

    Hook method. Function used to format a list of sender names.

    +
    +add_user_channel_alias(user, alias, **kwargs)[source]
    +

    Add a personal user-alias for this channel to a given subscriber.

    Parameters
      -
    • senders (list) – Sender object names.

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

    • +
    • user (Object or Account) – The one to alias this channel.

    • +
    • alias (str) – The desired alias.

    -
    Returns
    -

    formatted_list (str) – The list of names formatted appropriately.

    +
    +
    +

    Note

    +

    This is tightly coupled to the default channel command. If you +change that, you need to change this as well.

    +

    We add two nicks - one is a plain alias -> channel.key that +users need to be able to reference this channel easily. The other +is a templated nick to easily be able to send messages to the +channel without needing to give the full channel command. The +structure of this nick is given by self.channel_msg_nick_pattern +and self.channel_msg_nick_replacement. By default it maps +alias <msg> -> channel <channelname> = <msg>, so that you can +for example just write pub Hello to send a message.

    +

    The alias created is alias $1 -> channel channel = $1, to allow +for sending to channel using the main channel command.

    +
    +
    + +
    +
    +classmethod remove_user_channel_alias(user, alias, **kwargs)[source]
    +

    Remove a personal channel alias from a user.

    +
    +
    Parameters
    +
      +
    • user (Object or Account) – The user to remove an alias from.

    • +
    • alias (str) – The alias to remove.

    • +
    • **kwargs – Unused by default. Can be used to pass extra variables +into a custom implementation.

    • +

    Notes

    -

    This function exists separately so that external sources -can use it to format source names in the same manner as -normal object/account names.

    +

    The channel-alias actually consists of two aliases - one +channel-based one for searching channels with the alias and one +inputline one for doing the ‘channelalias msg’ - call.

    +

    This is a classmethod because it doesn’t actually operate on the +channel instance.

    +

    It sits on the channel because the nick structure for this is +pretty complex and needs to be located in a central place (rather +on, say, the channel command).

    -
    -pose_transform(msgobj, sender_string, **kwargs)[source]
    -

    Hook method. Detects if the sender is posing, and modifies the -message accordingly.

    +
    +at_pre_msg(message, **kwargs)[source]
    +

    Called before the starting of sending the message to a receiver. This +is called before any hooks on the receiver itself. If this returns +None/False, the sending will be aborted.

    Parameters
      -
    • msgobj (Msg or TempMsg) – The message to analyze for a pose.

    • -
    • sender_string (str) – The name of the sender/poser.

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

    • +
    • message (str) – The message to send.

    • +
    • **kwargs (any) – Keywords passed on from .msg. This includes +senders.

    Returns
    -

    string (str)

    +

    str, False or None

    -
    A message that combines the sender_string

    component with msg in different ways depending on if a -pose was performed or not (this must be analyzed by the -hook).

    +
    Any custom changes made to the message. If

    falsy, no message will be sent.

    @@ -418,44 +489,51 @@ hook).

    -
    -format_external(msgobj, senders, emit=False, **kwargs)[source]
    -

    Hook method. Used for formatting external messages. This is -needed as a separate operation because the senders of external -messages may not be in-game objects/accounts, and so cannot -have things like custom user preferences.

    +
    +msg(message, senders=None, bypass_mute=False, **kwargs)[source]
    +

    Send message to channel, causing it to be distributed to all non-muted +subscribed users of that channel.

    Parameters
      -
    • msgobj (Msg or TempMsg) – The message to send.

    • -
    • senders (list) – Strings, one per sender.

    • -
    • emit (bool, optional) – A sender-agnostic message or not.

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

    • +
    • message (str) – The message to send.

    • +
    • senders (Object, Account or list, optional) – If not given, there is +no way to associate one or more senders with the message (like +a broadcast message or similar).

    • +
    • bypass_mute (bool, optional) – If set, always send, regardless of +individual mute-state of subscriber. This can be used for +global announcements or warnings/alerts.

    • +
    • **kwargs (any) – This will be passed on to all hooks. Use no_prefix +to exclude the channel prefix.

    -
    Returns
    -

    transformed (str) – A formatted string.

    -
    +

    Notes

    +

    The call hook calling sequence is:

    +
      +
    • msg = channel.at_pre_msg(message, **kwargs) (aborts for all if return None)

    • +
    • msg = receiver.at_pre_channel_msg(msg, channel, **kwargs) (aborts for receiver if return None)

    • +
    • receiver.at_channel_msg(msg, channel, **kwargs)

    • +
    • receiver.at_post_channel_msg(msg, channel, **kwargs)**

    • +
    +

    Called after all receivers are processed: +- channel.at_post_all_msg(message, **kwargs)

    +

    (where the senders/bypass_mute are embedded into **kwargs for +later access in hooks)

    -
    -format_message(msgobj, emit=False, **kwargs)[source]
    -

    Hook method. Formats a message body for display.

    +
    +at_post_msg(message, **kwargs)[source]
    +

    This is called after sending to all valid recipients. It is normally +used for logging/channel history.

    Parameters
      -
    • msgobj (Msg or TempMsg) – The message object to send.

    • -
    • emit (bool, optional) – The message is agnostic of senders.

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

    • +
    • message (str) – The message sent.

    • +
    • **kwargs (any) – Keywords passed on from msg, including senders.

    -
    Returns
    -

    transformed (str) – The formatted message.

    -
    @@ -491,6 +569,8 @@ overriding the call (unused by default).

    +

    Notes

    +

    By default this adds the needed channel nicks to the joiner.

    @@ -527,41 +607,6 @@ overriding the call (unused by default).

    -
    -
    -pre_send_message(msg, **kwargs)[source]
    -

    Hook method. Runs before a message is sent to the channel and -should return the message object, after any transformations. -If the message is to be discarded, return a false value.

    -
    -
    Parameters
    -
      -
    • msg (Msg or TempMsg) – Message to send.

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

    • -
    -
    -
    Returns
    -

    result (Msg, TempMsg or bool) – If False, abort send.

    -
    -
    -
    - -
    -
    -post_send_message(msg, **kwargs)[source]
    -

    Hook method. Run after a message is sent to the channel.

    -
    -
    Parameters
    -
      -
    • msg (Msg or TempMsg) – Message sent.

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

    • -
    -
    -
    -
    -
    at_init()[source]
    @@ -616,11 +661,11 @@ 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 ‘channel-detail’ would be referenced by this method.

    -

    ex. -url(r’channels/(?P<slug>[wd-]+)/$’,

    -
    -

    ChannelDetailView.as_view(), name=’channel-detail’)

    -
    +

    ex.

    +
    url(r'channels/(?P<slug>[\w\d\-]+)/$',
    +    ChannelDetailView.as_view(), name='channel-detail')
    +
    +

    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 @@ -642,11 +687,11 @@ 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 ‘channel-update’ would be referenced by this method.

    -

    ex. -url(r’channels/(?P<slug>[wd-]+)/(?P<pk>[0-9]+)/change/$’,

    -
    -

    ChannelUpdateView.as_view(), name=’channel-update’)

    -
    +

    ex.

    +
    url(r'channels/(?P<slug>[\w\d\-]+)/(?P<pk>[0-9]+)/change/$',
    +    ChannelUpdateView.as_view(), name='channel-update')
    +
    +

    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 @@ -693,11 +738,11 @@ 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 ‘channel-detail’ would be referenced by this method.

    -

    ex. -url(r’channels/(?P<slug>[wd-]+)/$’,

    -
    -

    ChannelDetailView.as_view(), name=’channel-detail’)

    -
    +

    ex.

    +
    url(r'channels/(?P<slug>[\w\d\-]+)/$',
    +    ChannelDetailView.as_view(), name='channel-detail')
    +
    +

    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 @@ -710,6 +755,46 @@ responsibility.

    +
    +
    +message_transform(*args, **kwargs)[source]
    +
    + +
    +
    +distribute_message(msgobj, online=False, **kwargs)[source]
    +
    + +
    +
    +format_senders(senders=None, **kwargs)[source]
    +
    + +
    +
    +pose_transform(msgobj, sender_string, **kwargs)[source]
    +
    + +
    +
    +format_external(msgobj, senders, emit=False, **kwargs)[source]
    +
    + +
    +
    +format_message(msgobj, emit=False, **kwargs)[source]
    +
    + +
    +
    +pre_send_message(msg, **kwargs)[source]
    +
    + +
    +
    +post_send_message(msg, **kwargs)[source]
    +
    +
    exception DoesNotExist
    @@ -767,11 +852,11 @@ responsibility.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.comms.html b/docs/0.9.5/api/evennia.comms.html index 9ce7534e73..54a3b41133 100644 --- a/docs/0.9.5/api/evennia.comms.html +++ b/docs/0.9.5/api/evennia.comms.html @@ -86,11 +86,11 @@ as code related to external communication like IRC or RSS.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.comms.managers.html b/docs/0.9.5/api/evennia.comms.managers.html index 6ac6a72784..915c414b1f 100644 --- a/docs/0.9.5/api/evennia.comms.managers.html +++ b/docs/0.9.5/api/evennia.comms.managers.html @@ -137,19 +137,15 @@ of which may be Channels).

    -get_messages_by_sender(sender, exclude_channel_messages=False)[source]
    +get_messages_by_sender(sender)[source]

    Get all messages sent by one entity - this could be either a account or an object

    Parameters
    -
      -
    • sender (Account or Object) – The sender of the message.

    • -
    • exclude_channel_messages (bool, optional) – Only return messages -not aimed at a channel (that is, private tells for example)

    • -
    +

    sender (Account or Object) – The sender of the message.

    Returns
    -

    messages (list) – List of matching messages

    +

    QuerySet – Matching messages.

    Raises

    CommError – For incorrect sender types.

    @@ -166,7 +162,7 @@ not aimed at a channel (that is, private tells for example)

    recipient (Object, Account or Channel) – The recipient of the messages to search for.

    Returns
    -

    messages (list) – Matching messages.

    +

    Queryset – Matching messages.

    Raises

    CommError – If the recipient is not of a valid type.

    @@ -174,20 +170,6 @@ not aimed at a channel (that is, private tells for example)

    -
    -
    -get_messages_by_channel(channel)[source]
    -

    Get all persistent messages sent to one channel.

    -
    -
    Parameters
    -

    channel (Channel) – The channel to find messages for.

    -
    -
    Returns
    -

    messages (list) – Persistent Msg objects saved for this channel.

    -
    -
    -
    -
    search_message(sender=None, receiver=None, freetext=None, dbref=None)[source]
    @@ -196,7 +178,7 @@ one of the arguments must be given to do a search.

    Parameters
      -
    • sender (Object or Account, optional) – Get messages sent by a particular account or object

    • +
    • sender (Object, Account or Script, optional) – Get messages sent by a particular sender.

    • receiver (Object, Account or Channel, optional) – Get messages received by a certain account,object or channel

    • freetext (str) – Search for a text string in a message. NOTE: @@ -208,7 +190,7 @@ always gives only one match.

    Returns
    -

    messages (list or Msg) – A list of message matches or a single match if dbref was given.

    +

    Queryset – Message matches.

    @@ -221,7 +203,7 @@ one of the arguments must be given to do a search.

    Parameters
      -
    • sender (Object or Account, optional) – Get messages sent by a particular account or object

    • +
    • sender (Object, Account or Script, optional) – Get messages sent by a particular sender.

    • receiver (Object, Account or Channel, optional) – Get messages received by a certain account,object or channel

    • freetext (str) – Search for a text string in a message. NOTE: @@ -233,7 +215,7 @@ always gives only one match.

    Returns
    -

    messages (list or Msg) – A list of message matches or a single match if dbref was given.

    +

    Queryset – Message matches.

    @@ -364,11 +346,11 @@ case sensitive) match.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.comms.models.html b/docs/0.9.5/api/evennia.comms.models.html index 56dcf0e997..6acb0fc36c 100644 --- a/docs/0.9.5/api/evennia.comms.models.html +++ b/docs/0.9.5/api/evennia.comms.models.html @@ -66,17 +66,16 @@ accessed via specific handler methods):

  • db_sender_accounts: Account senders

  • db_sender_objects: Object senders

  • db_sender_scripts: Script senders

  • -
  • db_sender_external: External senders (defined as string names)

  • +
  • db_sender_external: External sender (defined as string name)

  • db_receivers_accounts: Receiving accounts

  • db_receivers_objects: Receiving objects

  • db_receivers_scripts: Receiveing scripts

  • -
  • db_receivers_channels: Receiving channels

  • +
  • db_receiver_external: External sender (defined as string name)

  • db_header: Header text

  • db_message: The actual message text

  • db_date_created: time message was created / sent

  • db_hide_from_sender: bool if message should be hidden from sender

  • db_hide_from_receivers: list of receiver objects to hide message from

  • -
  • db_hide_from_channels: list of channels objects to hide message from

  • db_lock_storage: Internal storage of lock strings.

  • @@ -183,19 +182,10 @@ class built by **create_forward_many_to_many_manager()** define
    -
    -db_receivers_channels
    -

    Accessor to the related objects manager on the forward and reverse sides of -a many-to-many relation.

    -

    In the example:

    -
    class Pizza(Model):
    -    toppings = ManyToManyField(Topping, related_name='pizzas')
    -
    -
    -

    **Pizza.toppings** and **Topping.pizzas** are **ManyToManyDescriptor** -instances.

    -

    Most of the implementation is delegated to a dynamically defined manager -class built by **create_forward_many_to_many_manager()** defined below.

    +
    +db_receiver_external
    +

    A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

    @@ -258,22 +248,6 @@ instances.

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

    -
    -
    -db_hide_from_channels
    -

    Accessor to the related objects manager on the forward and reverse sides of -a many-to-many relation.

    -

    In the example:

    -
    class Pizza(Model):
    -    toppings = ManyToManyField(Topping, related_name='pizzas')
    -
    -
    -

    **Pizza.toppings** and **Topping.pizzas** are **ManyToManyDescriptor** -instances.

    -

    Most of the implementation is delegated to a dynamically defined manager -class built by **create_forward_many_to_many_manager()** defined below.

    -
    -
    db_tags
    @@ -295,12 +269,6 @@ class built by **create_forward_many_to_many_manager()** define objects = <evennia.comms.managers.MsgManager object>
    -
    -
    -__init__(*args, **kwargs)[source]
    -

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

    -
    -
    locks[source]
    @@ -314,7 +282,7 @@ class built by **create_forward_many_to_many_manager()** define
    property senders
    -

    Getter. Allows for value = self.sender

    +

    Getter. Allows for value = self.senders

    @@ -323,7 +291,8 @@ class built by **create_forward_many_to_many_manager()** define

    Remove a single sender or a list of senders.

    Parameters
    -

    senders (Account, Object, str or list) – Senders to remove.

    +

    senders (Account, Object, str or list) – Senders to remove. +If a string, removes the external sender.

    @@ -332,31 +301,29 @@ class built by **create_forward_many_to_many_manager()** define
    property receivers

    Getter. Allows for value = self.receivers. -Returns four lists of receivers: accounts, objects, scripts and channels.

    +Returns four lists of receivers: accounts, objects, scripts and

    +
    +

    external_receivers.

    +
    remove_receiver(receivers)[source]
    -

    Remove a single receiver or a list of receivers.

    +

    Remove a single receiver, a list of receivers, or a single extral receiver.

    Parameters
    -

    receivers (Account, Object, Script, Channel or list) – Receiver to remove.

    +

    receivers (Account, Object, Script, list or str) – Receiver +to remove. A string removes the external receiver.

    -
    -
    -property channels
    -

    Getter. Allows for value = self.channels. Returns a list of channels.

    -
    -
    property hide_from

    Getter. Allows for value = self.hide_from. -Returns 3 lists of accounts, objects and channels

    +Returns two lists of accounts and objects.

    @@ -435,6 +402,12 @@ object the first time, the query is executed.

    path = 'evennia.comms.models.Msg'
    +
    +
    +property receiver_external
    +

    A wrapper for getting database field db_receiver_external.

    +
    +
    property sender_external
    @@ -450,26 +423,24 @@ object the first time, the query is executed.

    -class evennia.comms.models.TempMsg(senders=None, receivers=None, channels=None, message='', header='', type='', lockstring='', hide_from=None)[source]
    +class evennia.comms.models.TempMsg(senders=None, receivers=None, message='', header='', type='', lockstring='', hide_from=None)[source]

    Bases: object

    -

    This is a non-persistent object for sending temporary messages -that will not be stored. It mimics the “real” Msg object, but -doesn’t require sender to be given.

    +

    This is a non-persistent object for sending temporary messages that will not be stored. It +mimics the “real” Msg object, but doesn’t require sender to be given.

    -__init__(senders=None, receivers=None, channels=None, message='', header='', type='', lockstring='', hide_from=None)[source]
    +__init__(senders=None, receivers=None, message='', header='', type='', lockstring='', hide_from=None)[source]

    Creates the temp message.

    Parameters
    • senders (any or list, optional) – Senders of the message.

    • -
    • receivers (Account, Object, Channel or list, optional) – Receivers of this message.

    • -
    • channels (Channel or list, optional) – Channels to send to.

    • +
    • receivers (Account, Object, Script or list, optional) – Receivers of this message.

    • message (str, optional) – Message to send.

    • header (str, optional) – Header of message.

    • type (str, optional) – Message class, if any.

    • lockstring (str, optional) – Lock for the message.

    • -
    • hide_from (Account, Object, Channel or list, optional) – Entities to hide this message from.

    • +
    • hide_from (Account, Object, or list, optional) – Entities to hide this message from.

    @@ -497,7 +468,7 @@ doesn’t require sender to be given.

    Remove a receiver or a list of receivers

    Parameters
    -

    receiver (Object, Account, Channel, str or list) – Receivers to remove.

    +

    receiver (Object, Account, Script, str or list) – Receivers to remove.

    @@ -573,11 +544,6 @@ class built by **create_forward_many_to_many_manager()** define objects = <evennia.comms.managers.ChannelDBManager object>
    -
    -
    -subscriptions[source]
    -
    -
    exception DoesNotExist
    @@ -590,22 +556,6 @@ class built by **create_forward_many_to_many_manager()** define

    Bases: django.core.exceptions.MultipleObjectsReturned

    -
    -
    -channel_set
    -

    Accessor to the related objects manager on the forward and reverse sides of -a many-to-many relation.

    -

    In the example:

    -
    class Pizza(Model):
    -    toppings = ManyToManyField(Topping, related_name='pizzas')
    -
    -
    -

    **Pizza.toppings** and **Topping.pizzas** are **ManyToManyDescriptor** -instances.

    -

    Most of the implementation is delegated to a dynamically defined manager -class built by **create_forward_many_to_many_manager()** defined below.

    -
    -
    db_attributes
    @@ -648,22 +598,6 @@ class built by **create_forward_many_to_many_manager()** define get_previous_by_db_date_created(*, field=<django.db.models.fields.DateTimeField: db_date_created>, is_next=False, **kwargs)
    -
    -
    -hide_from_channels_set
    -

    Accessor to the related objects manager on the forward and reverse sides of -a many-to-many relation.

    -

    In the example:

    -
    class Pizza(Model):
    -    toppings = ManyToManyField(Topping, related_name='pizzas')
    -
    -
    -

    **Pizza.toppings** and **Topping.pizzas** are **ManyToManyDescriptor** -instances.

    -

    Most of the implementation is delegated to a dynamically defined manager -class built by **create_forward_many_to_many_manager()** defined below.

    -
    -
    id
    @@ -681,6 +615,134 @@ object the first time, the query is executed.

    typename = 'SharedMemoryModelBase'
    +
    +
    +subscriptions[source]
    +
    + +
    + +
    +
    +class evennia.comms.models.SubscriptionHandler(obj)[source]
    +

    Bases: object

    +

    This handler manages subscriptions to the +channel and hides away which type of entity is +subscribing (Account or Object)

    +
    +
    +__init__(obj)[source]
    +

    Initialize the handler

    +
    +
    Attr:

    obj (ChannelDB): The channel the handler sits on.

    +
    +
    +
    + +
    +
    +has(entity)[source]
    +

    Check if the given entity subscribe to this channel

    +
    +
    Parameters
    +

    entity (str, Account or Object) – The entity to return. If +a string, it assumed to be the key or the #dbref +of the entity.

    +
    +
    Returns
    +

    subscriber (Account, Object or None)

    +
    +
    The given

    subscriber.

    +
    +
    +

    +
    +
    +
    + +
    +
    +add(entity)[source]
    +

    Subscribe an entity to this channel.

    +
    +
    Parameters
    +

    entity (Account, Object or list) – The entity or +list of entities to subscribe to this channel.

    +
    +
    +
    +

    Note

    +
    +
    No access-checking is done here, this must have

    been done before calling this method. Also +no hooks will be called.

    +
    +
    +
    +
    + +
    +
    +remove(entity)[source]
    +

    Remove a subscriber from the channel.

    +
    +
    Parameters
    +

    entity (Account, Object or list) – The entity or +entities to un-subscribe from the channel.

    +
    +
    +
    + +
    +
    +all()[source]
    +

    Get all subscriptions to this channel.

    +
    +
    Returns
    +

    subscribers (list)

    +
    +
    The subscribers. This

    may be a mix of Accounts and Objects!

    +
    +
    +

    +
    +
    +
    + +
    +
    +get()
    +

    Get all subscriptions to this channel.

    +
    +
    Returns
    +

    subscribers (list)

    +
    +
    The subscribers. This

    may be a mix of Accounts and Objects!

    +
    +
    +

    +
    +
    +
    + +
    +
    +online()[source]
    +

    Get all online accounts from our cache +:returns: subscribers (list)

    +
    +
    +
    Subscribers who are online or

    are puppeted by an online account.

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

    Remove all subscribers from channel.

    +
    +
    @@ -716,11 +778,11 @@ object the first time, the query is executed.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.contrib.barter.html b/docs/0.9.5/api/evennia.contrib.barter.html index c7e9d3ec5c..165f0badfb 100644 --- a/docs/0.9.5/api/evennia.contrib.barter.html +++ b/docs/0.9.5/api/evennia.contrib.barter.html @@ -405,6 +405,11 @@ available to the command

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

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

    lock_storage = 'cmd:all()'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'trading', 'key': 'offer', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -539,6 +554,11 @@ the current offer using the ‘offers’ command.

    lock_storage = 'cmd:all()'
    +
    +
    +search_index_entry = {'aliases': 'agree', 'category': 'trading', 'key': 'accept', 'no_prefix': ' ', '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 "}
    +
    +
    @@ -585,6 +605,11 @@ decline the old offer.

    lock_storage = 'cmd:all()'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'trading', 'key': 'decline', 'no_prefix': ' ', '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 "}
    +
    +
    @@ -629,6 +654,11 @@ determine if it’s worth your while.

    lock_storage = 'cmd:all()'
    +
    +
    +search_index_entry = {'aliases': 'eval', 'category': 'trading', 'key': 'evaluate', 'no_prefix': ' ', '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 "}
    +
    +
    @@ -677,6 +707,11 @@ try to influence the other part in the deal.

    lock_storage = 'cmd:all()'
    +
    +
    +search_index_entry = {'aliases': 'deal offers', 'category': 'trading', 'key': 'status', 'no_prefix': ' ', '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 "}
    +
    +
    @@ -721,6 +756,11 @@ finish trade [:say]

    lock_storage = 'cmd:all()'
    +
    +
    +search_index_entry = {'aliases': 'finish trade', 'category': 'trading', 'key': 'end trade', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -795,6 +835,11 @@ info to your choice.

    lock_storage = 'cmd:all()'
    +
    +
    +search_index_entry = {'aliases': 'barter', 'category': 'general', 'key': 'trade', 'no_prefix': ' ', '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 '}
    +
    + @@ -830,11 +875,11 @@ info to your choice.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 2674588ff8..66a95611b1 100644 --- a/docs/0.9.5/api/evennia.contrib.building_menu.html +++ b/docs/0.9.5/api/evennia.contrib.building_menu.html @@ -253,6 +253,11 @@ overloading evential same-named class properties.

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

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

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'general', 'key': '@edit', 'no_prefix': '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 "}
    +
    + @@ -898,11 +913,11 @@ set in self.parse())

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.contrib.chargen.html b/docs/0.9.5/api/evennia.contrib.chargen.html index f372385159..a79f6b37f6 100644 --- a/docs/0.9.5/api/evennia.contrib.chargen.html +++ b/docs/0.9.5/api/evennia.contrib.chargen.html @@ -109,6 +109,11 @@ that is checked by the @ic command directly.

    lock_storage = 'cmd:all()'
    +
    +
    +search_index_entry = {'aliases': 'ls l', 'category': 'general', 'key': 'look', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -154,6 +159,11 @@ attribute on ourselves to remember it.

    lock_storage = 'cmd:all()'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'create', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -207,11 +217,11 @@ attribute on ourselves to remember it.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.contrib.clothing.html b/docs/0.9.5/api/evennia.contrib.clothing.html index 8724097a0d..cf73a7be77 100644 --- a/docs/0.9.5/api/evennia.contrib.clothing.html +++ b/docs/0.9.5/api/evennia.contrib.clothing.html @@ -361,6 +361,11 @@ provide will be displayed after the clothing’s name.

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'clothing', 'key': 'wear', 'no_prefix': ' ', '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 "}
    +
    +
    @@ -401,6 +406,11 @@ off the covering item first.

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'clothing', 'key': 'remove', 'no_prefix': ' ', '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 "}
    +
    +
    @@ -441,6 +451,11 @@ You can’t remove an item of clothing if it’s covered.

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'clothing', 'key': 'cover', 'no_prefix': ' ', '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 "}
    +
    +
    @@ -482,6 +497,11 @@ it is also covered by something else.

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'clothing', 'key': 'uncover', 'no_prefix': ' ', '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 "}
    +
    +
    @@ -531,6 +551,11 @@ location you are currently in.

    lock_storage = 'cmd:all()'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'drop', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -580,6 +605,11 @@ placing it in their inventory.

    lock_storage = 'cmd:all()'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'give', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -629,6 +659,11 @@ inv

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

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 5dbd29e27d..cfccefdecb 100644 --- a/docs/0.9.5/api/evennia.contrib.color_markups.html +++ b/docs/0.9.5/api/evennia.contrib.color_markups.html @@ -116,11 +116,11 @@ COLOR_ANSI_BRIGHT_BGS_EXTRA_MAP = color_markups.CURLY_COLOR_ANSI_BRIGHT_BGS_EXTR
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -128,7 +128,6 @@ 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 0205a7b290..70e84aa685 100644 --- a/docs/0.9.5/api/evennia.contrib.custom_gametime.html +++ b/docs/0.9.5/api/evennia.contrib.custom_gametime.html @@ -129,7 +129,7 @@ match the settings.TIME_UNITS dict keys.

    -evennia.contrib.custom_gametime.realtime_to_gametime(secs=0, mins=0, hrs=0, days=0, weeks=0, months=0, yrs=0, format=False)[source]
    +evennia.contrib.custom_gametime.realtime_to_gametime(secs=0, mins=0, hrs=0, days=1, weeks=1, months=1, yrs=0, format=False)[source]

    This method calculates how much in-game time a real-world time interval would correspond to. This is usually a lot less interesting than the other way around.

    @@ -142,19 +142,27 @@ interesting than the other way around.

    Returns

    time (float or tuple)

    -
    -
    -
    The gametime difference or the same

    time split up into time units.

    -
    -
    -
    -
    Example:

    realtime_to_gametime(days=2) -> number of game-world seconds

    +
    The gametime difference or the same

    time split up into time units.

    +
    +

    Note

    +
    +
    days/weeks/months start from 1 (there is no day/week/month 0). This makes it

    consistent with the real world datetime.

    +
    +
    +
    +
    +
    Raises
    +

    ValueError – If trying to add a days/weeks/months of <=0.

    +
    +
    +

    Example

    +

    realtime_to_gametime(days=2) -> number of game-world seconds

    @@ -193,6 +201,8 @@ return 300 (5 minutes).

    The number of real seconds before the given game time is up.

    +

    Notes

    +

    day/week/month start from 1, not from 0 (there is no month 0 for example)

    @@ -303,11 +313,11 @@ The time is given in units as keyword arguments.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.contrib.dice.html b/docs/0.9.5/api/evennia.contrib.dice.html index ce90ce4797..695f196262 100644 --- a/docs/0.9.5/api/evennia.contrib.dice.html +++ b/docs/0.9.5/api/evennia.contrib.dice.html @@ -175,6 +175,11 @@ everyone but the person rolling.

    lock_storage = 'cmd:all()'
    +
    +
    +search_index_entry = {'aliases': 'roll @dice', 'category': 'general', 'key': 'dice', 'no_prefix': ' roll @dice', 'tags': '', 'text': "\n roll dice\n\n Usage:\n dice[/switch] <nr>d<sides> [modifier] [success condition]\n\n Switch:\n hidden - tell the room the roll is being done, but don't show the result\n secret - don't inform the room about neither roll nor result\n\n Examples:\n dice 3d6 + 4\n dice 1d100 - 2 < 50\n\n This will roll the given number of dice with given sides and modifiers.\n So e.g. 2d6 + 3 means to 'roll a 6-sided die 2 times and add the result,\n then add 3 to the total'.\n Accepted modifiers are +, -, * and /.\n A success condition is given as normal Python conditionals\n (<,>,<=,>=,==,!=). So e.g. 2d6 + 3 > 10 means that the roll will succeed\n only if the final result is above 8. If a success condition is given, the\n outcome (pass/fail) will be echoed along with how much it succeeded/failed\n with. The hidden/secret switches will hide all or parts of the roll from\n everyone but the person rolling.\n "}
    +
    +
    @@ -229,11 +234,11 @@ Add with @py self.cmdset.add(“contrib.dice.DiceCmdSet”)

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 a65b0909fe..db209b8029 100644 --- a/docs/0.9.5/api/evennia.contrib.email_login.html +++ b/docs/0.9.5/api/evennia.contrib.email_login.html @@ -76,7 +76,7 @@ the module given by settings.CONNECTION_SCREEN_MODULE.

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

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

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

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

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

    -aliases = ['l', 'look']
    +aliases = ['look', 'l']
    @@ -237,6 +252,11 @@ All it does is display the connect screen.

    lock_storage = 'cmd:all()'
    +
    +
    +search_index_entry = {'aliases': 'look l', 'category': 'general', 'key': '__unloggedin_look_command', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -276,6 +296,11 @@ for simplicity. It shows a pane of info.

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

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 49101e5261..a5cc333803 100644 --- a/docs/0.9.5/api/evennia.contrib.extended_room.html +++ b/docs/0.9.5/api/evennia.contrib.extended_room.html @@ -296,6 +296,11 @@ look *<account&g lock_storage = 'cmd:all()'
    +
    +
    +search_index_entry = {'aliases': 'ls l', 'category': 'general', 'key': 'look', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -351,7 +356,7 @@ version of the desc command.

    -key = 'desc'
    +key = '@desc'
    @@ -359,6 +364,11 @@ version of the desc command.

    lock_storage = 'cmd:perm(desc) or perm(Builder)'
    +
    +
    +search_index_entry = {'aliases': 'describe', 'category': 'building', 'key': '@desc', 'no_prefix': '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 '}
    +
    +
    @@ -417,6 +427,11 @@ to all the variables defined therein.

    lock_storage = 'cmd:perm(Builder)'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'building', 'key': '@detail', 'no_prefix': '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 '}
    +
    +
    @@ -460,6 +475,11 @@ to all the variables defined therein.

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

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.contrib.fieldfill.html b/docs/0.9.5/api/evennia.contrib.fieldfill.html index d88f97a678..17b82b3f8b 100644 --- a/docs/0.9.5/api/evennia.contrib.fieldfill.html +++ b/docs/0.9.5/api/evennia.contrib.fieldfill.html @@ -366,6 +366,11 @@ send

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'testmenu', 'no_prefix': ' ', '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 "}
    +
    +
    @@ -429,11 +434,11 @@ send

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.contrib.gendersub.html b/docs/0.9.5/api/evennia.contrib.gendersub.html index 2009002235..ea06904aa7 100644 --- a/docs/0.9.5/api/evennia.contrib.gendersub.html +++ b/docs/0.9.5/api/evennia.contrib.gendersub.html @@ -112,6 +112,11 @@ default cmdset before it becomes available.

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

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 8fe8227da5..af46bb088d 100644 --- a/docs/0.9.5/api/evennia.contrib.health_bar.html +++ b/docs/0.9.5/api/evennia.contrib.health_bar.html @@ -131,11 +131,11 @@ readers will be unable to read the graphical aspect of the bar.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -143,7 +143,6 @@ 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 8f7f7e5751..8843f72baa 100644 --- a/docs/0.9.5/api/evennia.contrib.html +++ b/docs/0.9.5/api/evennia.contrib.html @@ -107,7 +107,10 @@ useful but are deemed too game-specific to go into the core library.

  • 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 +
  • evennia.contrib.tutorial_examples.red_button_scripts
  • evennia.contrib.tutorial_examples.tests
  • @@ -154,11 +157,11 @@ useful but are deemed too game-specific to go into the core library.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -166,7 +169,6 @@ 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 baee93e5e3..4a1b56e9d6 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 @@ -309,11 +309,11 @@ the expected fields for a callback (code, author, valid…).

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 f6d38dc020..08e4bc4249 100644 --- a/docs/0.9.5/api/evennia.contrib.ingame_python.commands.html +++ b/docs/0.9.5/api/evennia.contrib.ingame_python.commands.html @@ -54,7 +54,7 @@
    -aliases = ['@callbacks', '@calls', '@callback']
    +aliases = ['@callbacks', '@callback', '@calls']
    @@ -133,6 +133,11 @@ on user permission.

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

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 68373ef8ef..b397a1d1c3 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 @@ -141,11 +141,11 @@ to be called from inside another event.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 6437336ae9..c603131dfd 100644 --- a/docs/0.9.5/api/evennia.contrib.ingame_python.html +++ b/docs/0.9.5/api/evennia.contrib.ingame_python.html @@ -85,11 +85,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 79c3f27eb2..235190dd6d 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 @@ -58,8 +58,8 @@ editing and deleting these events and callbacks.

    -
    -at_start()[source]
    +
    +at_server_start()[source]

    Set up the event system when starting.

    Note that this hook is called every time the server restarts (including when it’s reloaded). This hook performs the following @@ -430,11 +430,11 @@ restart only twice.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 08c44783b9..b4cc3c4e77 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 @@ -216,11 +216,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 eeb63ff7e2..cc8ae98825 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 @@ -74,11 +74,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 ac5abc542a..3ad34fb63a 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 @@ -194,11 +194,11 @@ either “yes” or “okay” (maybe ‘say I don’t like it, but okay’).

    Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -206,7 +206,6 @@ 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 d1468545b5..f330d8692c 100644 --- a/docs/0.9.5/api/evennia.contrib.mail.html +++ b/docs/0.9.5/api/evennia.contrib.mail.html @@ -220,6 +220,11 @@ the newly created mails.

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': 'mail', 'category': 'general', 'key': '@mail', 'no_prefix': '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 '}
    +
    +
    @@ -288,6 +293,11 @@ 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', 'no_prefix': '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 '}
    +
    + @@ -323,11 +333,11 @@ reply - Replies to a received message, appending the original message to the b
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -335,7 +345,6 @@ 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 68bce768b7..8252ac9758 100644 --- a/docs/0.9.5/api/evennia.contrib.mapbuilder.html +++ b/docs/0.9.5/api/evennia.contrib.mapbuilder.html @@ -74,11 +74,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 4b194fdf47..3c68d53261 100644 --- a/docs/0.9.5/api/evennia.contrib.menu_login.html +++ b/docs/0.9.5/api/evennia.contrib.menu_login.html @@ -74,11 +74,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.contrib.multidescer.html b/docs/0.9.5/api/evennia.contrib.multidescer.html index 771b8487f3..42615efbdb 100644 --- a/docs/0.9.5/api/evennia.contrib.multidescer.html +++ b/docs/0.9.5/api/evennia.contrib.multidescer.html @@ -118,6 +118,11 @@ description in use and db.multidesc to store all descriptions.< lock_storage = 'cmd:all()'
    +
    +
    +search_index_entry = {'aliases': 'desc', 'category': 'general', 'key': '+desc', 'no_prefix': '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 '}
    +
    + @@ -153,11 +158,11 @@ description in use and db.multidesc to store all descriptions.<
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -165,7 +170,6 @@ 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 97cb798748..814ede843a 100644 --- a/docs/0.9.5/api/evennia.contrib.puzzles.html +++ b/docs/0.9.5/api/evennia.contrib.puzzles.html @@ -208,6 +208,11 @@ to all the variables defined therein.

    lock_storage = 'cmd:perm(puzzle) or perm(Builder)'
    +
    +
    +search_index_entry = {'aliases': '@puzzlerecipe', 'category': 'puzzles', 'key': '@puzzle', 'no_prefix': 'puzzle @puzzlerecipe', '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 "}
    +
    +
    @@ -271,6 +276,11 @@ to all the variables defined therein.

    lock_storage = 'cmd:perm(puzzleedit) or perm(Builder)'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'puzzles', 'key': '@puzzleedit', 'no_prefix': '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 "}
    +
    +
    @@ -318,6 +328,11 @@ to all the variables defined therein.

    lock_storage = 'cmd:perm(armpuzzle) or perm(Builder)'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'puzzles', 'key': '@armpuzzle', 'no_prefix': '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 '}
    +
    +
    @@ -366,6 +381,11 @@ to all the variables defined therein.

    lock_storage = 'cmd:pperm(use) or pperm(Player)'
    +
    +
    +search_index_entry = {'aliases': 'combine', 'category': 'puzzles', 'key': 'use', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -410,6 +430,11 @@ to all the variables defined therein.

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

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

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 13336956f8..251ade68a0 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 @@ -289,11 +289,11 @@ calling the get method.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.contrib.rplanguage.html b/docs/0.9.5/api/evennia.contrib.rplanguage.html index e850468fe4..d82ef37419 100644 --- a/docs/0.9.5/api/evennia.contrib.rplanguage.html +++ b/docs/0.9.5/api/evennia.contrib.rplanguage.html @@ -100,18 +100,46 @@ 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:

    -
    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",
    +
    # 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
     vowels = "eaoiuy"
    -grammar = "v vv vvc vcc vvcc cvvc vccv vvccv vcvccv vcvcvcc vvccvvcc "               "vcvvccvvc cvcvvcvvcc vcvcvvccvcvv",
    +
    +# 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)
     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")
     
    @@ -192,9 +220,13 @@ 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, 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_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_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 @@ -286,7 +318,7 @@ same input sentence.

    • text (str) – Text to obfuscate.

    • level (real, optional) – A value from 0.0-1.0 determining -the level of obfuscation where 0 means no jobfuscation +the level of obfuscation where 0 means no obfuscation (string returned unchanged) and 1.0 means the entire string is obfuscated.

    • language (str, optional) – The identifier of a language @@ -369,11 +401,11 @@ means fully obscured.

    • Home page
    • Evennia Github
    • Game Index
    • -
    • IRC - - Discord - - Forums +
    • + Discord - + Discussions - + Blog
    • -
    • Evennia Dev blog

    Versions

    -
  • diff --git a/docs/0.9.5/api/evennia.contrib.rpsystem.html b/docs/0.9.5/api/evennia.contrib.rpsystem.html index 0b6404cbe1..7294e3e8df 100644 --- a/docs/0.9.5/api/evennia.contrib.rpsystem.html +++ b/docs/0.9.5/api/evennia.contrib.rpsystem.html @@ -69,7 +69,7 @@ represent you in the emote. You can use /sdesc, /nick, /key or /alias to reference objects in the room. You can use any number of sdesc sub-parts to differentiate a local sdesc, or use /1-sdesc etc to differentiate them. The emote also -identifies nested says.

    +identifies nested says and separates case.

    @@ -114,13 +114,17 @@ The tavern is full of nice people

    an example of a static pose: The “standing by the bar” has been set by the player of the tall man, so that people looking at him can tell at a glance what is going on.

    -

    > emote /me looks at /tall and says “Hello!”

    +

    > emote /me looks at /Tall and says “Hello!”

    I see:

    Griatch looks at Tall man and says “Hello”.

    Tall man (assuming his name is Tom) sees:

    The godlike figure looks at Tom and says “Hello”.

    +

    Note that by default, the case of the tag matters, so /tall will +lead to ‘tall man’ while /Tall will become ‘Tall man’ and /TALL +becomes /TALL MAN. If you don’t want this behavior, you can pass +case_sensitive=False to the send_emote function.

    Verbose Installation Instructions:

      @@ -155,9 +159,9 @@ Import the ContribRPCharacter class:

      -
    1. Reload the server (@reload or from console: “evennia reload”)

    2. +
    3. Reload the server (reload or from console: “evennia reload”)

    4. -
      Force typeclass updates as required. Example for your character:

      @type/reset/force me = typeclasses.characters.Character

      +
      Force typeclass updates as required. Example for your character:

      type/reset/force me = typeclasses.characters.Character

    5. @@ -268,7 +272,10 @@ langname can be None.

      Raises
      -

      rplanguage.LanguageError – If an invalid language was specified.

      +

      Notes

      @@ -283,7 +290,7 @@ information is actually conveyed.

      -evennia.contrib.rpsystem.parse_sdescs_and_recogs(sender, candidates, string, search_mode=False)[source]
      +evennia.contrib.rpsystem.parse_sdescs_and_recogs(sender, candidates, string, search_mode=False, case_sensitive=True)[source]

      Read a raw emote and parse it into an intermediary format for distributing to all observers.

      @@ -301,6 +308,13 @@ search_mode (bool, optional): If True, the “emote” is a que

      we want to analyze. If so, the return value is changed.

      +
      +
      case_sensitive (bool, optional); If set, the case of /refs matter, so that

      /tall will come out as ‘tall man’ while /Tall will become ‘Tall man’. +This allows for more grammatically correct emotes at the cost of being +a little more to learn for players. If disabled, the original sdesc case +is always kept and are inserted as-is.

      +
      +
      Returns

      (emote, mapping) (tuple)

      @@ -350,6 +364,18 @@ self-referencing in the emote, this will auto-add
      +
      +
      Kwargs:
      +
      case_sensitive (bool): Defaults to True, but can be unset

      here. When enabled, /tall will lead to a lowercase +‘tall man’ while /Tall will lead to ‘Tall man’ and +/TALL will lead to ‘TALL MAN’. If disabled, the sdesc’s +case will always be used, regardless of the /ref case used.

      +
      +
      any: Other kwargs will be passed on into the receiver’s process_sdesc and

      process_recog methods, and can thus be used to customize those.

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

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

      locks = 'cmd:all()'
      +
      +
      +arg_regex = re.compile('', re.IGNORECASE)
      +
      +
      func()[source]
      @@ -606,6 +642,11 @@ a different language.

      lock_storage = 'cmd:all()'
      +
      +
      +search_index_entry = {'aliases': ':', 'category': 'general', 'key': 'emote', 'no_prefix': ' ', '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 '}
      +
      +
      @@ -633,6 +674,11 @@ a different language.

      locks = 'cmd:all()'
      +
      +
      +arg_regex = re.compile('', re.IGNORECASE)
      +
      +
      func()[source]
      @@ -649,6 +695,11 @@ a different language.

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

      lock_storage = 'cmd:all()'
      +
      +
      +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'sdesc', 'no_prefix': ' ', '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 '}
      +
      +
      @@ -750,6 +806,11 @@ sdesc in the emote, regardless of who is seeing it.

      lock_storage = 'cmd:all();'
      +
      +
      +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'pose', 'no_prefix': ' ', '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,6 +861,11 @@ Using the command without arguments will list all current recogs.

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

      lock_storage = 'cmd:all();'
      +
      +
      +search_index_entry = {'aliases': 'unmask', 'category': 'general', 'key': 'mask', 'no_prefix': ' ', '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 "}
      +
      +
      @@ -1100,8 +1171,8 @@ characters stand out from other objects.

      -
      -at_before_say(message, **kwargs)[source]
      +
      +at_pre_say(message, **kwargs)[source]

      Called before the object says or whispers anything, return modified message.

      Parameters
      @@ -1128,8 +1199,23 @@ you are viewing yourself (and sdesc is your key). This is not used by default.

      -
      Returns
      -

      sdesc (str)

      +
      +
      +
      Kwargs:
      +
      ref (str): The reference marker found in string to replace.

      This is on the form #{num}{case}, like ‘#12^’, where +the number is a processing location in the string and the +case symbol indicates the case of the original tag input +- t - input was Titled, like /Tall +- ^ - input was all uppercase, like /TALL +- v - input was all lowercase, like /tall +- ~ - input case should be kept, or was mixed-case

      +
      +
      +
      +
      +
      +
      Returns
      +

      sdesc (str)

      The processed sdesc ready

      for display.

      @@ -1152,8 +1238,14 @@ translated from the original sdesc at this point.

      This is not used by default.

      -
      Returns
      -

      recog (str) – The modified recog string.

      +
      +
      +
      Kwargs:

      ref (str): See process_sdesc.

      +
      +
      +
      +
      Returns
      +

      recog (str) – The modified recog string.

      @@ -1240,11 +1332,11 @@ the evennia.contrib.rplanguage module.

    6. Home page
    7. Evennia Github
    8. Game Index
    9. -
    10. IRC - - Discord - - Forums +
    11. + Discord - + Discussions - + Blog
    12. -
    13. Evennia Dev blog
    14. Versions

      -
    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 af9e729861..00d268bdfe 100644 --- a/docs/0.9.5/api/evennia.contrib.security.auditing.html +++ b/docs/0.9.5/api/evennia.contrib.security.auditing.html @@ -81,11 +81,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 9260dba4f4..45f5cde255 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 @@ -116,11 +116,11 @@ compromised or taken down, losing your logs along with it is no help!).

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -128,7 +128,6 @@ 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 d4edb23d24..3514afc53c 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 @@ -155,11 +155,11 @@ writing to log. Recording cleartext password attempts is bad policy.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -167,7 +167,6 @@ 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 9319c6fc92..b4b5ddb52b 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 @@ -95,11 +95,11 @@ parsed from the Session object.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.contrib.security.html b/docs/0.9.5/api/evennia.contrib.security.html index 0015618b25..1762e8e461 100644 --- a/docs/0.9.5/api/evennia.contrib.security.html +++ b/docs/0.9.5/api/evennia.contrib.security.html @@ -84,11 +84,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.contrib.simpledoor.html b/docs/0.9.5/api/evennia.contrib.simpledoor.html index 01cac74567..60bac2ee84 100644 --- a/docs/0.9.5/api/evennia.contrib.simpledoor.html +++ b/docs/0.9.5/api/evennia.contrib.simpledoor.html @@ -174,7 +174,7 @@ unique.

    -key = 'open'
    +key = '@open'
    @@ -182,6 +182,11 @@ unique.

    lock_storage = 'cmd:perm(open) or perm(Builder)'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'building', 'key': '@open', 'no_prefix': '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 '}
    +
    +
    @@ -225,6 +230,11 @@ close <door>

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

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 20ed76fe19..570206ef01 100644 --- a/docs/0.9.5/api/evennia.contrib.slow_exit.html +++ b/docs/0.9.5/api/evennia.contrib.slow_exit.html @@ -136,6 +136,11 @@ is assumed.

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'setspeed', 'no_prefix': ' ', '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 "}
    +
    +
    @@ -175,6 +180,11 @@ stored deferred from the exit traversal above.

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

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 d0641ccb88..e508aeabd8 100644 --- a/docs/0.9.5/api/evennia.contrib.talking_npc.html +++ b/docs/0.9.5/api/evennia.contrib.talking_npc.html @@ -123,6 +123,11 @@ that NPC and give you options on what to talk about.

    lock_storage = 'cmd:all()'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'talk', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -217,11 +222,11 @@ the conversation defined above.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 acf3bb9445..d3627af13a 100644 --- a/docs/0.9.5/api/evennia.contrib.tree_select.html +++ b/docs/0.9.5/api/evennia.contrib.tree_select.html @@ -372,6 +372,11 @@ set in self.parse())

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

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.contrib.turnbattle.html b/docs/0.9.5/api/evennia.contrib.turnbattle.html index 3a7e7b3dbf..4c10a06279 100644 --- a/docs/0.9.5/api/evennia.contrib.turnbattle.html +++ b/docs/0.9.5/api/evennia.contrib.turnbattle.html @@ -83,11 +83,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 98347685d0..0f1319d856 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 @@ -314,8 +314,8 @@ normal hook to overload for most object types.

    -
    -at_before_move(destination)[source]
    +
    +at_pre_move(destination)[source]

    Called just before starting to move this object to destination.

    @@ -503,6 +503,11 @@ When it’s your turn, you can attack other characters.

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'fight', 'no_prefix': ' ', '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 "}
    +
    +
    @@ -542,6 +547,11 @@ a chance to hit, and if successful, will deal damage.

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'attack', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -581,6 +591,11 @@ if there are still any actions you can take.

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': 'hold wait', 'category': 'combat', 'key': 'pass', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -621,6 +636,11 @@ fight ends.

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': 'spare', 'category': 'combat', 'key': 'disengage', 'no_prefix': ' ', '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 "}
    +
    +
    @@ -660,6 +680,11 @@ rest if you’re not in a fight.

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'rest', 'no_prefix': ' ', '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 "}
    +
    +
    @@ -701,6 +726,11 @@ topics related to the game.

    lock_storage = 'cmd:all()'
    +
    +
    +search_index_entry = {'aliases': '?', 'category': 'general', 'key': 'help', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -759,11 +789,11 @@ topics related to the game.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 e909f03ebd..7f1d7b4cf6 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 @@ -480,8 +480,8 @@ normal hook to overload for most object types.

    -
    -at_before_drop(dropper)[source]
    +
    +at_pre_drop(dropper)[source]

    Can’t drop in combat.

    @@ -492,8 +492,8 @@ normal hook to overload for most object types.

    -
    -at_before_give(giver, getter)[source]
    +
    +at_pre_give(giver, getter)[source]

    Can’t give away in combat.

    @@ -541,8 +541,8 @@ normal hook to overload for most object types.

    -
    -at_before_move(destination)[source]
    +
    +at_pre_move(destination)[source]

    Called just before starting to move this object to destination.

    @@ -620,6 +620,11 @@ When it’s your turn, you can attack other characters.

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'fight', 'no_prefix': ' ', '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 "}
    +
    +
    @@ -659,6 +664,11 @@ a chance to hit, and if successful, will deal damage.

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'attack', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -698,6 +708,11 @@ if there are still any actions you can take.

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': 'hold wait', 'category': 'combat', 'key': 'pass', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -738,6 +753,11 @@ fight ends.

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': 'spare', 'category': 'combat', 'key': 'disengage', 'no_prefix': ' ', '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 "}
    +
    +
    @@ -777,6 +797,11 @@ rest if you’re not in a fight.

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'rest', 'no_prefix': ' ', '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 "}
    +
    +
    @@ -818,6 +843,11 @@ topics related to the game.

    lock_storage = 'cmd:all()'
    +
    +
    +search_index_entry = {'aliases': '?', 'category': 'general', 'key': 'help', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -861,6 +891,11 @@ currently wielding.

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'wield', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -900,6 +935,11 @@ weapon you are currently wielding and become unarmed.

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'unwield', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -940,6 +980,11 @@ command to remove any armor you are wearing.

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'don', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -980,6 +1025,11 @@ You can’t use this command in combat.

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'doff', 'no_prefix': ' ', '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 "}
    +
    +
    @@ -1038,11 +1088,11 @@ You can’t use this command in combat.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 4ccef5950e..5ed151a810 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 @@ -409,8 +409,8 @@ normal hook to overload for most object types.

    -
    -at_before_move(destination)[source]
    +
    +at_pre_move(destination)[source]

    Called just before starting to move this object to destination.

    @@ -654,6 +654,11 @@ When it’s your turn, you can attack other characters.

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'fight', 'no_prefix': ' ', '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 "}
    +
    +
    @@ -693,6 +698,11 @@ a chance to hit, and if successful, will deal damage.

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'attack', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -732,6 +742,11 @@ if there are still any actions you can take.

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': 'hold wait', 'category': 'combat', 'key': 'pass', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -772,6 +787,11 @@ fight ends.

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': 'spare', 'category': 'combat', 'key': 'disengage', 'no_prefix': ' ', '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 "}
    +
    +
    @@ -811,6 +831,11 @@ rest if you’re not in a fight.

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'rest', 'no_prefix': ' ', '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 "}
    +
    +
    @@ -852,6 +877,11 @@ topics related to the game.

    lock_storage = 'cmd:all()'
    +
    +
    +search_index_entry = {'aliases': '?', 'category': 'general', 'key': 'help', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -892,6 +922,11 @@ to attack others, and as such can only be used in combat.

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'use', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -1033,11 +1068,11 @@ items using the same function work differently.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 c8140acd68..ecc65c488b 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 @@ -337,8 +337,8 @@ can be changed at creation and factor into combat calculations.

    -
    -at_before_move(destination)[source]
    +
    +at_pre_move(destination)[source]

    Called just before starting to move this object to destination.

    @@ -526,6 +526,11 @@ When it’s your turn, you can attack other characters.

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'fight', 'no_prefix': ' ', '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 "}
    +
    +
    @@ -565,6 +570,11 @@ a chance to hit, and if successful, will deal damage.

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'attack', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -604,6 +614,11 @@ if there are still any actions you can take.

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': 'hold wait', 'category': 'combat', 'key': 'pass', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -644,6 +659,11 @@ fight ends.

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': 'spare', 'category': 'combat', 'key': 'disengage', 'no_prefix': ' ', '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 "}
    +
    +
    @@ -697,6 +717,11 @@ fight ends.

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'magic', 'key': 'learnspell', 'no_prefix': ' ', '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 "}
    +
    +
    @@ -744,6 +769,11 @@ function.

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'magic', 'key': 'cast', 'no_prefix': ' ', '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 "}
    +
    +
    @@ -783,6 +813,11 @@ only rest if you’re not in a fight.

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'rest', 'no_prefix': ' ', '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 "}
    +
    +
    @@ -822,6 +857,11 @@ other targets in combat.

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'status', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -863,6 +903,11 @@ topics related to the game.

    lock_storage = 'cmd:all()'
    +
    +
    +search_index_entry = {'aliases': '?', 'category': 'general', 'key': 'help', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -972,11 +1017,11 @@ instead of creating objects directly.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 5c209c92b8..ab882c6194 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 @@ -581,8 +581,8 @@ normal hook to overload for most object types.

    -
    -at_before_move(destination)[source]
    +
    +at_pre_move(destination)[source]

    Called just before starting to move this object to destination.

    @@ -631,8 +631,8 @@ the object has restrictions in combat - you must be next to an object to get it, must be next to your target to give them something, and can only interact with objects on your own turn.

    -
    -at_before_drop(dropper)[source]
    +
    +at_pre_drop(dropper)[source]

    Called by the default drop command before this object has been dropped.

    @@ -668,12 +668,12 @@ overriding the call (unused by default).

    Notes

    This hook cannot stop the drop from happening. Use -permissions or the at_before_drop() hook for that.

    +permissions or the at_pre_drop() hook for that.

    -
    -at_before_get(getter)[source]
    +
    +at_pre_get(getter)[source]

    Called by the default get command before this object has been picked up.

    @@ -709,12 +709,12 @@ overriding the call (unused by default).

    Notes

    This hook cannot stop the pickup from happening. Use -permissions or the at_before_get() hook for that.

    +permissions or the at_pre_get() hook for that.

    -
    -at_before_give(giver, getter)[source]
    +
    +at_pre_give(giver, getter)[source]

    Called by the default give command before this object has been given.

    @@ -752,7 +752,7 @@ overriding the call (unused by default).

    Notes

    This hook cannot stop the give from happening. Use -permissions or the at_before_give() hook for that.

    +permissions or the at_pre_give() hook for that.

    @@ -817,6 +817,11 @@ When it’s your turn, you can attack other characters.

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'fight', 'no_prefix': ' ', '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 "}
    +
    +
    @@ -858,6 +863,11 @@ you. Use the ‘approach’ command to get closer to a target.

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'attack', 'no_prefix': ' ', '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 "}
    +
    +
    @@ -900,6 +910,11 @@ nearby enemies.

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'shoot', 'no_prefix': ' ', '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 "}
    +
    +
    @@ -939,6 +954,11 @@ characters you are 0 spaces away from.

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'approach', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -977,6 +997,11 @@ characters you are 0 spaces away from.

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'withdraw', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -1016,6 +1041,11 @@ if there are still any actions you can take.

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': 'hold wait', 'category': 'combat', 'key': 'pass', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -1056,6 +1086,11 @@ fight ends.

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': 'spare', 'category': 'combat', 'key': 'disengage', 'no_prefix': ' ', '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 "}
    +
    +
    @@ -1095,6 +1130,11 @@ rest if you’re not in a fight.

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'rest', 'no_prefix': ' ', '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 "}
    +
    +
    @@ -1134,6 +1174,11 @@ other targets in combat.

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'status', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -1175,6 +1220,11 @@ topics related to the game.

    lock_storage = 'cmd:all()'
    +
    +
    +search_index_entry = {'aliases': '?', 'category': 'general', 'key': 'help', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -1233,11 +1283,11 @@ topics related to the game.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 e480eeea96..50cc7dcafc 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 @@ -129,11 +129,11 @@ a random check here so as to only return 33% of the time.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 dfc00d1538..bb8b49afa4 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 @@ -39,451 +39,8 @@
    -
    -

    evennia.contrib.tutorial_examples.cmdset_red_button

    -

    This defines the cmdset for the red_button. Here we have defined -the commands and the cmdset in the same module, but if you -have many different commands to merge it is often better -to define the cmdset separately, picking and choosing from -among the available commands as to what should be included in the -cmdset - this way you can often re-use the commands too.

    -
    -
    -class evennia.contrib.tutorial_examples.cmdset_red_button.CmdNudge(**kwargs)[source]
    -

    Bases: evennia.commands.command.Command

    -

    Try to nudge the button’s lid

    -
    -
    Usage:

    nudge lid

    -
    -
    -

    This command will have you try to -push the lid of the button away.

    -
    -
    -key = 'nudge lid'
    -
    - -
    -
    -aliases = ['nudge']
    -
    - -
    -
    -locks = 'cmd:all()'
    -
    - -
    -
    -func()[source]
    -

    nudge the lid. Random chance of success to open it.

    -
    - -
    -
    -help_category = 'general'
    -
    - -
    -
    -lock_storage = 'cmd:all()'
    -
    - -
    - -
    -
    -class evennia.contrib.tutorial_examples.cmdset_red_button.CmdPush(**kwargs)[source]
    -

    Bases: evennia.commands.command.Command

    -

    Push the red button

    -
    -
    Usage:

    push button

    -
    -
    -
    -
    -key = 'push button'
    -
    - -
    -
    -aliases = ['push', 'press button', 'press']
    -
    - -
    -
    -locks = 'cmd:all()'
    -
    - -
    -
    -func()[source]
    -

    Note that we choose to implement this with checking for -if the lid is open/closed. This is because this command -is likely to be tried regardless of the state of the lid.

    -

    An alternative would be to make two versions of this command -and tuck them into the cmdset linked to the Open and Closed -lid-state respectively.

    -
    - -
    -
    -help_category = 'general'
    -
    - -
    -
    -lock_storage = 'cmd:all()'
    -
    - -
    - -
    -
    -class evennia.contrib.tutorial_examples.cmdset_red_button.CmdSmashGlass(**kwargs)[source]
    -

    Bases: evennia.commands.command.Command

    -

    smash glass

    -
    -
    Usage:

    smash glass

    -
    -
    -

    Try to smash the glass of the button.

    -
    -
    -key = 'smash glass'
    -
    - -
    -
    -aliases = ['smash lid', 'break lid', 'smash']
    -
    - -
    -
    -locks = 'cmd:all()'
    -
    - -
    -
    -func()[source]
    -

    The lid won’t open, but there is a small chance -of causing the lamp to break.

    -
    - -
    -
    -help_category = 'general'
    -
    - -
    -
    -lock_storage = 'cmd:all()'
    -
    - -
    - -
    -
    -class evennia.contrib.tutorial_examples.cmdset_red_button.CmdOpenLid(**kwargs)[source]
    -

    Bases: evennia.commands.command.Command

    -

    open lid

    -
    -
    Usage:

    open lid

    -
    -
    -
    -
    -key = 'open lid'
    -
    - -
    -
    -aliases = ['open', 'open button']
    -
    - -
    -
    -locks = 'cmd:all()'
    -
    - -
    -
    -func()[source]
    -

    simply call the right function.

    -
    - -
    -
    -help_category = 'general'
    -
    - -
    -
    -lock_storage = 'cmd:all()'
    -
    - -
    - -
    -
    -class evennia.contrib.tutorial_examples.cmdset_red_button.CmdCloseLid(**kwargs)[source]
    -

    Bases: evennia.commands.command.Command

    -

    close the lid

    -
    -
    Usage:

    close lid

    -
    -
    -

    Closes the lid of the red button.

    -
    -
    -key = 'close lid'
    -
    - -
    -
    -aliases = ['close']
    -
    - -
    -
    -locks = 'cmd:all()'
    -
    - -
    -
    -func()[source]
    -

    Close the lid

    -
    - -
    -
    -help_category = 'general'
    -
    - -
    -
    -lock_storage = 'cmd:all()'
    -
    - -
    - -
    -
    -class evennia.contrib.tutorial_examples.cmdset_red_button.CmdBlindLook(**kwargs)[source]
    -

    Bases: evennia.commands.command.Command

    -

    Looking around in darkness

    -
    -
    Usage:

    look <obj>

    -
    -
    -

    … not that there’s much to see in the dark.

    -
    -
    -key = 'look'
    -
    - -
    -
    -aliases = ['feel', 'l', 'get', 'examine', 'ex', 'listen']
    -
    - -
    -
    -locks = 'cmd:all()'
    -
    - -
    -
    -func()[source]
    -

    This replaces all the senses when blinded.

    -
    - -
    -
    -help_category = 'general'
    -
    - -
    -
    -lock_storage = 'cmd:all()'
    -
    - -
    - -
    -
    -class evennia.contrib.tutorial_examples.cmdset_red_button.CmdBlindHelp(**kwargs)[source]
    -

    Bases: evennia.commands.command.Command

    -

    Help function while in the blinded state

    -
    -
    Usage:

    help

    -
    -
    -
    -
    -key = 'help'
    -
    - -
    -
    -aliases = ['h']
    -
    - -
    -
    -locks = 'cmd:all()'
    -
    - -
    -
    -func()[source]
    -

    Give a message.

    -
    - -
    -
    -help_category = 'general'
    -
    - -
    -
    -lock_storage = 'cmd:all()'
    -
    - -
    - -
    -
    -class evennia.contrib.tutorial_examples.cmdset_red_button.DefaultCmdSet(cmdsetobj=None, key=None)[source]
    -

    Bases: evennia.commands.cmdset.CmdSet

    -

    The default cmdset always sits -on the button object and whereas other -command sets may be added/merge onto it -and hide it, removing them will always -bring it back. It’s added to the object -using obj.cmdset.add_default().

    -
    -
    -key = 'RedButtonDefault'
    -
    - -
    -
    -mergetype = 'Union'
    -
    - -
    -
    -at_cmdset_creation()[source]
    -

    Init the cmdset

    -
    - -
    -
    -path = 'evennia.contrib.tutorial_examples.cmdset_red_button.DefaultCmdSet'
    -
    - -
    - -
    -
    -class evennia.contrib.tutorial_examples.cmdset_red_button.LidClosedCmdSet(cmdsetobj=None, key=None)[source]
    -

    Bases: evennia.commands.cmdset.CmdSet

    -

    A simple cmdset tied to the redbutton object.

    -

    It contains the commands that launches the other -command sets, making the red button a self-contained -item (i.e. you don’t have to manually add any -scripts etc to it when creating it).

    -
    -
    -key = 'LidClosedCmdSet'
    -
    - -
    -
    -key_mergetype = {'LidOpenCmdSet': 'Replace'}
    -
    - -
    -
    -at_cmdset_creation()[source]
    -

    Populates the cmdset when it is instantiated.

    -
    - -
    -
    -path = 'evennia.contrib.tutorial_examples.cmdset_red_button.LidClosedCmdSet'
    -
    - -
    - -
    -
    -class evennia.contrib.tutorial_examples.cmdset_red_button.LidOpenCmdSet(cmdsetobj=None, key=None)[source]
    -

    Bases: evennia.commands.cmdset.CmdSet

    -

    This is the opposite of the Closed cmdset.

    -
    -
    -key = 'LidOpenCmdSet'
    -
    - -
    -
    -key_mergetype = {'LidClosedCmdSet': 'Replace'}
    -
    - -
    -
    -at_cmdset_creation()[source]
    -

    setup the cmdset (just one command)

    -
    - -
    -
    -path = 'evennia.contrib.tutorial_examples.cmdset_red_button.LidOpenCmdSet'
    -
    - -
    - -
    -
    -class evennia.contrib.tutorial_examples.cmdset_red_button.BlindCmdSet(cmdsetobj=None, key=None)[source]
    -

    Bases: evennia.commands.cmdset.CmdSet

    -

    This is the cmdset added to the account when -the button is pushed.

    -
    -
    -key = 'BlindCmdSet'
    -
    - -
    -
    -mergetype = 'Replace'
    -
    - -
    -
    -no_exits = True
    -
    - -
    -
    -no_objs = True
    -
    - -
    -
    -at_cmdset_creation()[source]
    -

    Setup the blind cmdset

    -
    - -
    -
    -path = 'evennia.contrib.tutorial_examples.cmdset_red_button.BlindCmdSet'
    -
    - -
    - +
    +

    evennia.contrib.tutorial_examples.cmdset_red_button

    @@ -517,11 +74,11 @@ the button is pushed.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 f5d287763e..85d09caa3c 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 @@ -74,11 +74,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 e600c385d4..655d51263b 100644 --- a/docs/0.9.5/api/evennia.contrib.tutorial_examples.html +++ b/docs/0.9.5/api/evennia.contrib.tutorial_examples.html @@ -46,7 +46,10 @@
  • 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 +
  • evennia.contrib.tutorial_examples.red_button_scripts
  • evennia.contrib.tutorial_examples.tests
  • @@ -84,11 +87,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 82ecc0b216..6e6fbd5606 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 @@ -46,74 +46,627 @@ script.examples as well as commands.examples to make an interactive button typeclass.

    Create this button with

    -

    @create/drop examples.red_button.RedButton

    +

    create/drop red_button.RedButton

    Note that you must drop the button before you can see its messages!

    +
    +

    Technical

    +

    The button’s functionality is controlled by CmdSets that gets added and removed +depending on the ‘state’ the button is in.

    +
      +
    • Lid-closed state: In this state the button is covered by a glass cover and trying +to ‘push’ it will fail. You can ‘nudge’, ‘smash’ or ‘open’ the lid.

    • +
    • Lid-open state: In this state the lid is open but will close again after a certain +time. Using ‘push’ now will press the button and trigger the Blind-state.

    • +
    • Blind-state: In this mode you are blinded by a bright flash. This will affect your +normal commands like ‘look’ and help until the blindness wears off after a certain +time.

    • +
    +

    Timers are handled by persistent delays on the button. These are examples of +evennia.utils.utils.delay calls that wait a certain time before calling a method - +such as when closing the lid and un-blinding a character.

    +
    +
    +class evennia.contrib.tutorial_examples.red_button.CmdPushLidClosed(**kwargs)[source]
    +

    Bases: evennia.commands.command.Command

    +

    Push the red button (lid closed)

    +
    +
    Usage:

    push button

    +
    +
    +
    +
    +key = 'push button'
    +
    + +
    +
    +aliases = ['press button', 'press', 'push']
    +
    + +
    +
    +locks = 'cmd:all()'
    +
    + +
    +
    +func()[source]
    +

    This is the version of push used when the lid is closed.

    +

    An alternative would be to make a ‘push’ command in a default cmdset +that is always available on the button and then use if-statements to +check if the lid is open or closed.

    +
    + +
    +
    +help_category = 'general'
    +
    + +
    +
    +lock_storage = 'cmd:all()'
    +
    + +
    +
    +search_index_entry = {'aliases': 'press button press push', 'category': 'general', 'key': 'push button', 'no_prefix': ' ', 'tags': '', 'text': '\n Push the red button (lid closed)\n\n Usage:\n push button\n\n '}
    +
    + +
    + +
    +
    +class evennia.contrib.tutorial_examples.red_button.CmdNudge(**kwargs)[source]
    +

    Bases: evennia.commands.command.Command

    +

    Try to nudge the button’s lid.

    +
    +
    Usage:

    nudge lid

    +
    +
    +

    This command will have you try to push the lid of the button away.

    +
    +
    +key = 'nudge lid'
    +
    + +
    +
    +aliases = ['nudge']
    +
    + +
    +
    +locks = 'cmd:all()'
    +
    + +
    +
    +func()[source]
    +

    Nudge the lid. Random chance of success to open it.

    +
    + +
    +
    +help_category = 'general'
    +
    + +
    +
    +lock_storage = 'cmd:all()'
    +
    + +
    +
    +search_index_entry = {'aliases': 'nudge', 'category': 'general', 'key': 'nudge lid', 'no_prefix': ' ', '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 push the lid of the button away.\n\n "}
    +
    + +
    + +
    +
    +class evennia.contrib.tutorial_examples.red_button.CmdSmashGlass(**kwargs)[source]
    +

    Bases: evennia.commands.command.Command

    +

    Smash the protective glass.

    +
    +
    Usage:

    smash glass

    +
    +
    +

    Try to smash the glass of the button.

    +
    +
    +key = 'smash glass'
    +
    + +
    +
    +aliases = ['smash lid', 'smash', 'break lid']
    +
    + +
    +
    +locks = 'cmd:all()'
    +
    + +
    +
    +func()[source]
    +

    The lid won’t open, but there is a small chance of causing the lamp to +break.

    +
    + +
    +
    +help_category = 'general'
    +
    + +
    +
    +lock_storage = 'cmd:all()'
    +
    + +
    +
    +search_index_entry = {'aliases': 'smash lid smash break lid', 'category': 'general', 'key': 'smash glass', 'no_prefix': ' ', 'tags': '', 'text': '\n Smash the protective glass.\n\n Usage:\n smash glass\n\n Try to smash the glass of the button.\n\n '}
    +
    + +
    + +
    +
    +class evennia.contrib.tutorial_examples.red_button.CmdOpenLid(**kwargs)[source]
    +

    Bases: evennia.commands.command.Command

    +

    open lid

    +
    +
    Usage:

    open lid

    +
    +
    +
    +
    +key = 'open lid'
    +
    + +
    +
    +aliases = ['open button']
    +
    + +
    +
    +locks = 'cmd:all()'
    +
    + +
    +
    +func()[source]
    +

    simply call the right function.

    +
    + +
    +
    +help_category = 'general'
    +
    + +
    +
    +lock_storage = 'cmd:all()'
    +
    + +
    +
    +search_index_entry = {'aliases': 'open button', 'category': 'general', 'key': 'open lid', 'no_prefix': ' ', 'tags': '', 'text': '\n open lid\n\n Usage:\n open lid\n\n '}
    +
    + +
    + +
    +
    +class evennia.contrib.tutorial_examples.red_button.LidClosedCmdSet(cmdsetobj=None, key=None)[source]
    +

    Bases: evennia.commands.cmdset.CmdSet

    +

    A simple cmdset tied to the redbutton object.

    +

    It contains the commands that launches the other +command sets, making the red button a self-contained +item (i.e. you don’t have to manually add any +scripts etc to it when creating it).

    +

    Note that this is given with a key_mergetype set. This +is set up so that the cmdset with merge with Union merge type +except if the other cmdset to merge with is LidOpenCmdSet, +in which case it will Replace that. So these two cmdsets will +be mutually exclusive.

    +
    +
    +key = 'LidClosedCmdSet'
    +
    + +
    +
    +at_cmdset_creation()[source]
    +

    Populates the cmdset when it is instantiated.

    +
    + +
    +
    +path = 'evennia.contrib.tutorial_examples.red_button.LidClosedCmdSet'
    +
    + +
    + +
    +
    +class evennia.contrib.tutorial_examples.red_button.CmdPushLidOpen(**kwargs)[source]
    +

    Bases: evennia.commands.command.Command

    +

    Push the red button

    +
    +
    Usage:

    push button

    +
    +
    +
    +
    +key = 'push button'
    +
    + +
    +
    +aliases = ['press button', 'press', 'push']
    +
    + +
    +
    +locks = 'cmd:all()'
    +
    + +
    +
    +func(**kwargs)
    +

    This is the actual executing part of the command. It is +called directly after self.parse(). See the docstring of this +module for which object properties are available (beyond those +set in self.parse())

    +
    + +
    +
    +help_category = 'general'
    +
    + +
    +
    +lock_storage = 'cmd:all()'
    +
    + +
    +
    +search_index_entry = {'aliases': 'press button press push', 'category': 'general', 'key': 'push button', 'no_prefix': ' ', 'tags': '', 'text': '\n Push the red button\n\n Usage:\n push button\n\n '}
    +
    + +
    + +
    +
    +class evennia.contrib.tutorial_examples.red_button.CmdCloseLid(**kwargs)[source]
    +

    Bases: evennia.commands.command.Command

    +

    Close the lid

    +
    +
    Usage:

    close lid

    +
    +
    +

    Closes the lid of the red button.

    +
    +
    +key = 'close lid'
    +
    + +
    +
    +aliases = ['close']
    +
    + +
    +
    +locks = 'cmd:all()'
    +
    + +
    +
    +func()[source]
    +

    Close the lid

    +
    + +
    +
    +help_category = 'general'
    +
    + +
    +
    +lock_storage = 'cmd:all()'
    +
    + +
    +
    +search_index_entry = {'aliases': 'close', 'category': 'general', 'key': 'close lid', 'no_prefix': ' ', 'tags': '', 'text': '\n Close the lid\n\n Usage:\n close lid\n\n Closes the lid of the red button.\n '}
    +
    + +
    + +
    +
    +class evennia.contrib.tutorial_examples.red_button.LidOpenCmdSet(cmdsetobj=None, key=None)[source]
    +

    Bases: evennia.commands.cmdset.CmdSet

    +

    This is the opposite of the Closed cmdset.

    +

    Note that this is given with a key_mergetype set. This +is set up so that the cmdset with merge with Union merge type +except if the other cmdset to merge with is LidClosedCmdSet, +in which case it will Replace that. So these two cmdsets will +be mutually exclusive.

    +
    +
    +key = 'LidOpenCmdSet'
    +
    + +
    +
    +at_cmdset_creation()[source]
    +

    Setup the cmdset

    +
    + +
    +
    +path = 'evennia.contrib.tutorial_examples.red_button.LidOpenCmdSet'
    +
    + +
    + +
    +
    +class evennia.contrib.tutorial_examples.red_button.CmdBlindLook(**kwargs)[source]
    +

    Bases: evennia.commands.command.Command

    +

    Looking around in darkness

    +
    +
    Usage:

    look <obj>

    +
    +
    +

    … not that there’s much to see in the dark.

    +
    +
    +key = 'look'
    +
    + +
    +
    +aliases = ['l', 'listen', 'get', 'examine', 'ex', 'feel']
    +
    + +
    +
    +locks = 'cmd:all()'
    +
    + +
    +
    +func()[source]
    +

    This replaces all the senses when blinded.

    +
    + +
    +
    +help_category = 'general'
    +
    + +
    +
    +lock_storage = 'cmd:all()'
    +
    + +
    +
    +search_index_entry = {'aliases': 'l listen get examine ex feel', 'category': 'general', 'key': 'look', 'no_prefix': ' ', '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 "}
    +
    + +
    + +
    +
    +class evennia.contrib.tutorial_examples.red_button.CmdBlindHelp(**kwargs)[source]
    +

    Bases: evennia.commands.command.Command

    +

    Help function while in the blinded state

    +
    +
    Usage:

    help

    +
    +
    +
    +
    +key = 'help'
    +
    + +
    +
    +aliases = ['h']
    +
    + +
    +
    +locks = 'cmd:all()'
    +
    + +
    +
    +func()[source]
    +

    Just give a message while blinded. We could have added this to the +CmdBlindLook command too if we wanted to keep things more compact.

    +
    + +
    +
    +help_category = 'general'
    +
    + +
    +
    +lock_storage = 'cmd:all()'
    +
    + +
    +
    +search_index_entry = {'aliases': 'h', 'category': 'general', 'key': 'help', 'no_prefix': ' ', 'tags': '', 'text': '\n Help function while in the blinded state\n\n Usage:\n help\n\n '}
    +
    + +
    + +
    +
    +class evennia.contrib.tutorial_examples.red_button.BlindCmdSet(cmdsetobj=None, key=None)[source]
    +

    Bases: evennia.commands.cmdset.CmdSet

    +

    This is the cmdset added to the account when +the button is pushed.

    +

    Since this has mergetype Replace it will completely remove the commands of +all other cmdsets while active. To allow some limited interaction +(pose/say) we import those default commands and add them too.

    +

    We also disable all exit-commands generated by exits and +object-interactions while blinded by setting no_exits and no_objs flags +on the cmdset. This is to avoid the player walking off or interfering with +other objects while blinded. Account-level commands however (channel messaging +etc) will not be affected by the blinding.

    +
    +
    +key = 'BlindCmdSet'
    +
    + +
    +
    +mergetype = 'Replace'
    +
    + +
    +
    +no_exits = True
    +
    + +
    +
    +no_objs = True
    +
    + +
    +
    +at_cmdset_creation()[source]
    +

    Setup the blind cmdset

    +
    + +
    +
    +path = 'evennia.contrib.tutorial_examples.red_button.BlindCmdSet'
    +
    + +
    +
    class evennia.contrib.tutorial_examples.red_button.RedButton(*args, **kwargs)[source]

    Bases: evennia.objects.objects.DefaultObject

    -

    This class describes an evil red button. It will use the script -definition in contrib/examples/red_button_scripts to blink at regular -intervals. It also uses a series of script and commands to handle -pushing the button and causing effects when doing so.

    -
    -
    The following attributes can be set on the button:

    desc_lid_open - description when lid is open -desc_lid_closed - description when lid is closed -desc_lamp_broken - description when lamp is broken

    -
    -
    +

    This class describes an evil red button. It will blink invitingly and +temporarily blind whomever presses it.

    +

    The button can take a few optional attributes controlling how things will +be displayed in its various states. This is a useful way to give builders +the option to customize a complex object from in-game. Actual return messages +to event-actions are (in this example) left with each command, but one could +also imagine having those handled via Attributes as well, if one wanted a +completely in-game customizable button without needing to tweak command +classes.

    +

    Attributes: +- desc_closed_lid: This is the description to show of the button

    +
    +

    when the lid is closed.

    +
    +
      +
    • desc_open_lid”: Shown when the lid is open

    • +
    • auto_close_msg: Message to show when lid auto-closes

    • +
    • desc_add_lamp_broken: Extra desc-line added after normal desc when lamp +is broken.

    • +
    • blink_msg: A list of strings to randomly choose from when the lamp +blinks.

    • +
    +

    Notes: +The button starts with lid closed. To set the initial description, +you can either set desc after creating it or pass a desc attribute +when creating it, such as +button = create_object(RedButton, …, attributes=[(‘desc’, ‘my desc’)]).

    +
    +
    +desc_closed_lid = 'This is a large red button, inviting yet evil-looking. A closed glass lid protects it.'
    +
    + +
    +
    +desc_open_lid = 'This is a large red button, inviting yet evil-looking. Its glass cover is open and the button exposed.'
    +
    + +
    +
    +auto_close_msg = "The button's glass lid silently slides back in place."
    +
    + +
    +
    +lamp_breaks_msg = 'The lamp flickers, the button going dark.'
    +
    + +
    +
    +desc_add_lamp_broken = '\nThe big red button has stopped blinking for the time being.'
    +
    + +
    + +
    +
    at_object_creation()[source]
    -

    This function is called when object is created. Use this -instead of e.g. __init__.

    +

    This function is called (once) when object is created.

    -
    -open_lid()[source]
    -

    Opens the glass lid and start the timer so it will soon close -again.

    +
    +to_closed_state(msg=None)[source]
    +

    Switches the button to having its lid closed.

    +
    +
    Parameters
    +
      +
    • msg (str, optional) – If given, display a message to the room

    • +
    • lid closes. (when) –

    • +
    +
    +
    +

    This will first try to get the Attribute (self.db.desc_closed_lid) in +case it was set by a builder and if that was None, it will fall back to +self.desc_closed_lid, the default description (note that lack of .db).

    -
    -close_lid()[source]
    -

    Close the glass lid. This validates all scripts on the button, -which means that scripts only being valid when the lid is open -will go away automatically.

    +
    +to_open_state()[source]
    +

    Switches the button to having its lid open. This also starts a timer +that will eventually close it again.

    +
    + +
    +
    +blind_target(caller)[source]
    +

    Someone was foolish enough to press the button! Blind them +temporarily.

    +
    +
    Parameters
    +

    caller (Object) – The one to be blinded.

    +
    +
    -break_lamp(feedback=True)[source]
    -

    Breaks the lamp in the button, stopping it from blinking.

    -
    -
    Parameters
    -

    feedback (bool) – Show a message about breaking the lamp.

    -
    -
    -
    - -
    -
    -press_button(pobject)[source]
    -

    Someone was foolish enough to press the button!

    -
    -
    Parameters
    -

    pobject (Object) – The person pressing the button

    -
    -
    -
    - -
    - -

    The script system will regularly call this -function to make the button blink. Now and then -it won’t blink at all though, to add some randomness -to how often the message is echoed.

    +break_lamp()[source] +

    Breaks the lamp in the button, stopping it from blinking for a while

    @@ -140,6 +693,7 @@ to how often the message is echoed.

    +
    @@ -162,6 +716,14 @@ to how often the message is echoed.

    +

    Table of Contents

    + +

    Versions

    -
    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 1b102115c7..0353ef852d 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 @@ -39,352 +39,8 @@
    -
    -

    evennia.contrib.tutorial_examples.red_button_scripts

    -

    Example of scripts.

    -

    These are scripts intended for a particular object - the -red_button object type in contrib/examples. A few variations -on uses of scripts are included.

    -
    -
    -class evennia.contrib.tutorial_examples.red_button_scripts.ClosedLidState(*args, **kwargs)[source]
    -

    Bases: evennia.scripts.scripts.DefaultScript

    -

    This manages the cmdset for the “closed” button state. What this -means is that while this script is valid, we add the RedButtonClosed -cmdset to it (with commands like open, nudge lid etc)

    -
    -
    -at_script_creation()[source]
    -

    Called when script first created.

    -
    - -
    -
    -at_start()[source]
    -

    This is called once every server restart, so we want to add the -(memory-resident) cmdset to the object here. is_valid is automatically -checked so we don’t need to worry about adding the script to an -open lid.

    -
    - -
    -
    -is_valid()[source]
    -

    The script is only valid while the lid is closed. -self.obj is the red_button on which this script is defined.

    -
    - -
    -
    -at_stop()[source]
    -

    When the script stops we must make sure to clean up after us.

    -
    - -
    -
    -exception DoesNotExist
    -

    Bases: evennia.scripts.scripts.DefaultScript.DoesNotExist

    -
    - -
    -
    -exception MultipleObjectsReturned
    -

    Bases: evennia.scripts.scripts.DefaultScript.MultipleObjectsReturned

    -
    - -
    -
    -path = 'evennia.contrib.tutorial_examples.red_button_scripts.ClosedLidState'
    -
    - -
    -
    -typename = 'ClosedLidState'
    -
    - -
    - -
    -
    -class evennia.contrib.tutorial_examples.red_button_scripts.OpenLidState(*args, **kwargs)[source]
    -

    Bases: evennia.scripts.scripts.DefaultScript

    -

    This manages the cmdset for the “open” button state. This will add -the RedButtonOpen

    -
    -
    -at_script_creation()[source]
    -

    Called when script first created.

    -
    - -
    -
    -at_start()[source]
    -

    This is called once every server restart, so we want to add the -(memory-resident) cmdset to the object here. is_valid is -automatically checked, so we don’t need to worry about -adding the cmdset to a closed lid-button.

    -
    - -
    -
    -is_valid()[source]
    -

    The script is only valid while the lid is open. -self.obj is the red_button on which this script is defined.

    -
    - -
    -
    -at_stop()[source]
    -

    When the script stops (like if the lid is closed again) -we must make sure to clean up after us.

    -
    - -
    -
    -exception DoesNotExist
    -

    Bases: evennia.scripts.scripts.DefaultScript.DoesNotExist

    -
    - -
    -
    -exception MultipleObjectsReturned
    -

    Bases: evennia.scripts.scripts.DefaultScript.MultipleObjectsReturned

    -
    - -
    -
    -path = 'evennia.contrib.tutorial_examples.red_button_scripts.OpenLidState'
    -
    - -
    -
    -typename = 'OpenLidState'
    -
    - -
    - -
    -
    -class evennia.contrib.tutorial_examples.red_button_scripts.BlindedState(*args, **kwargs)[source]
    -

    Bases: evennia.scripts.scripts.DefaultScript

    -

    This is a timed state.

    -

    This adds a (very limited) cmdset TO THE ACCOUNT, during a certain time, -after which the script will close and all functions are -restored. It’s up to the function starting the script to actually -set it on the right account object.

    -
    -
    -at_script_creation()[source]
    -

    We set up the script here.

    -
    - -
    -
    -at_start()[source]
    -

    We want to add the cmdset to the linked object.

    -

    Note that the RedButtonBlind cmdset is defined to completly -replace the other cmdsets on the stack while it is active -(this means that while blinded, only operations in this cmdset -will be possible for the account to perform). It is however -not persistent, so should there be a bug in it, we just need -to restart the server to clear out of it during development.

    -
    - -
    -
    -at_stop()[source]
    -

    It’s important that we clear out that blinded cmdset -when we are done!

    -
    - -
    -
    -exception DoesNotExist
    -

    Bases: evennia.scripts.scripts.DefaultScript.DoesNotExist

    -
    - -
    -
    -exception MultipleObjectsReturned
    -

    Bases: evennia.scripts.scripts.DefaultScript.MultipleObjectsReturned

    -
    - -
    -
    -path = 'evennia.contrib.tutorial_examples.red_button_scripts.BlindedState'
    -
    - -
    -
    -typename = 'BlindedState'
    -
    - -
    - -
    -
    -class evennia.contrib.tutorial_examples.red_button_scripts.CloseLidEvent(*args, **kwargs)[source]
    -

    Bases: evennia.scripts.scripts.DefaultScript

    -

    This event closes the glass lid over the button -some time after it was opened. It’s a one-off -script that should be started/created when the -lid is opened.

    -
    -
    -at_script_creation()[source]
    -

    Called when script object is first created. Sets things up. -We want to have a lid on the button that the user can pull -aside in order to make the button ‘pressable’. But after a set -time that lid should auto-close again, making the button safe -from pressing (and deleting this command).

    -
    - -
    -
    -is_valid()[source]
    -

    This script can only operate if the lid is open; if it -is already closed, the script is clearly invalid.

    -

    Note that we are here relying on an self.obj being -defined (and being a RedButton object) - this we should be able to -expect since this type of script is always tied to one individual -red button object and not having it would be an error.

    -
    - -
    -
    -at_repeat()[source]
    -

    Called after self.interval seconds. It closes the lid. Before this method is -called, self.is_valid() is automatically checked, so there is no need to -check this manually.

    -
    - -
    -
    -exception DoesNotExist
    -

    Bases: evennia.scripts.scripts.DefaultScript.DoesNotExist

    -
    - -
    -
    -exception MultipleObjectsReturned
    -

    Bases: evennia.scripts.scripts.DefaultScript.MultipleObjectsReturned

    -
    - -
    -
    -path = 'evennia.contrib.tutorial_examples.red_button_scripts.CloseLidEvent'
    -
    - -
    -
    -typename = 'CloseLidEvent'
    -
    - -
    - -
    -
    -class evennia.contrib.tutorial_examples.red_button_scripts.BlinkButtonEvent(*args, **kwargs)[source]
    -

    Bases: evennia.scripts.scripts.DefaultScript

    -

    This timed script lets the button flash at regular intervals.

    -
    -
    -at_script_creation()[source]
    -

    Sets things up. We want the button’s lamp to blink at -regular intervals, unless it’s broken (can happen -if you try to smash the glass, say).

    -
    - -
    -
    -is_valid()[source]
    -

    Button will keep blinking unless it is broken.

    -
    - -
    -
    -at_repeat()[source]
    -

    Called every self.interval seconds. Makes the lamp in -the button blink.

    -
    - -
    -
    -exception DoesNotExist
    -

    Bases: evennia.scripts.scripts.DefaultScript.DoesNotExist

    -
    - -
    -
    -exception MultipleObjectsReturned
    -

    Bases: evennia.scripts.scripts.DefaultScript.MultipleObjectsReturned

    -
    - -
    -
    -path = 'evennia.contrib.tutorial_examples.red_button_scripts.BlinkButtonEvent'
    -
    - -
    -
    -typename = 'BlinkButtonEvent'
    -
    - -
    - -
    -
    -class evennia.contrib.tutorial_examples.red_button_scripts.DeactivateButtonEvent(*args, **kwargs)[source]
    -

    Bases: evennia.scripts.scripts.DefaultScript

    -

    This deactivates the button for a short while (it won’t blink, won’t -close its lid etc). It is meant to be called when the button is pushed -and run as long as the blinded effect lasts. We cannot put these methods -in the AddBlindedCmdSet script since that script is defined on the account -whereas this one must be defined on the button.

    -
    -
    -at_script_creation()[source]
    -

    Sets things up.

    -
    - -
    -
    -at_start()[source]
    -

    Deactivate the button. Observe that this method is always -called directly, regardless of the value of self.start_delay -(that just controls when at_repeat() is called)

    -
    - -
    -
    -at_repeat()[source]
    -

    When this is called, reset the functionality of the button.

    -
    - -
    -
    -exception DoesNotExist
    -

    Bases: evennia.scripts.scripts.DefaultScript.DoesNotExist

    -
    - -
    -
    -exception MultipleObjectsReturned
    -

    Bases: evennia.scripts.scripts.DefaultScript.MultipleObjectsReturned

    -
    - -
    -
    -path = 'evennia.contrib.tutorial_examples.red_button_scripts.DeactivateButtonEvent'
    -
    - -
    -
    -typename = 'DeactivateButtonEvent'
    -
    - -
    - +
    +

    evennia.contrib.tutorial_examples.red_button_scripts

    @@ -418,11 +74,11 @@ called directly, regardless of the value of self.start_delay
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 e4234d27b9..45a83b94e8 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 @@ -110,11 +110,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 7cc056f431..b472f338b9 100644 --- a/docs/0.9.5/api/evennia.contrib.tutorial_world.html +++ b/docs/0.9.5/api/evennia.contrib.tutorial_world.html @@ -83,11 +83,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 cc77b19fd4..eeed5725a9 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 @@ -265,11 +265,11 @@ option related to this node.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 887efc8edf..1a2697f06e 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 @@ -90,6 +90,11 @@ to turn on/off the mob.”

    lock_storage = 'cmd:superuser()'
    +
    +
    +search_index_entry = {'aliases': 'moboff', 'category': 'general', 'key': 'mobon', 'no_prefix': ' ', '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 "}
    +
    +
    @@ -125,7 +130,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.Weapon). +carries (see tutorial_world.objects.TutorialWeapon). if unset, the mob will never engage in combat no matter what.

    @@ -309,11 +314,11 @@ right away, also when patrolling on a very slow ticker.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 0118ed369b..a855e18698 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 @@ -52,8 +52,8 @@ TutorialClimbable Obelisk LightSource CrumblingWall -Weapon -WeaponRack

    +TutorialWeapon +TutorialWeaponRack

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

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

    lock_storage = 'cmd:all()'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'tutorialworld', 'key': 'climb', 'no_prefix': ' ', 'tags': '', 'text': '\n Climb an object\n\n Usage:\n climb <object>\n\n This allows you to climb.\n '}
    +
    +
    @@ -378,6 +388,11 @@ 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', 'no_prefix': ' ', 'tags': '', 'text': '\n Creates light where there was none. Something to burn.\n '}
    +
    +
    @@ -479,7 +494,7 @@ shift green root up/down

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

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

    -aliases = ['push button', 'button', 'press button']
    +aliases = ['press button', 'button', 'push button']
    @@ -551,6 +571,11 @@ 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', 'no_prefix': ' ', 'tags': '', 'text': '\n Presses a button.\n '}
    +
    +
    @@ -626,8 +651,8 @@ current root positions.

    -
    -at_after_traverse(traverser, source_location)[source]
    +
    +at_post_traverse(traverser, source_location)[source]

    This is called after we traversed this exit. Cleans up and resets the puzzle.

    @@ -692,7 +717,7 @@ parry - forgoes your attack but will make you harder to hit on next

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

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

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

    Bases: evennia.contrib.tutorial_world.objects.TutorialObject

    This defines a bladed weapon.

    @@ -751,38 +781,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.Weapon'
    +
    +path = 'evennia.contrib.tutorial_world.objects.TutorialWeapon'
    -
    -typename = 'Weapon'
    +
    +typename = 'TutorialWeapon'
    @@ -828,6 +858,11 @@ itself handle all messages.

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

    -
    -class evennia.contrib.tutorial_world.objects.WeaponRack(*args, **kwargs)[source]
    +
    +class evennia.contrib.tutorial_world.objects.TutorialWeaponRack(*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 @@ -873,14 +908,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 @@ -889,25 +924,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.WeaponRack'
    +
    +path = 'evennia.contrib.tutorial_world.objects.TutorialWeaponRack'
    -
    -typename = 'WeaponRack'
    +
    +typename = 'TutorialWeaponRack'
    @@ -945,11 +980,11 @@ pulling weapons from it indefinitely.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 d1ac1637ae..40b8d4642c 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 @@ -89,6 +89,11 @@ called tutorial_info and display that.

    lock_storage = 'cmd:all()'
    +
    +
    +search_index_entry = {'aliases': 'tut', 'category': 'tutorialworld', 'key': 'tutorial', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -142,6 +147,11 @@ the set_detail method and uses it.

    lock_storage = 'cmd:perm(Builder)'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'tutorialworld', 'key': '@detail', 'no_prefix': '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 '}
    +
    +
    @@ -189,6 +199,11 @@ code except for adding in the details.

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

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

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

    lock_storage = 'cmd:all()'
    +
    +
    +search_index_entry = {'aliases': 'e', 'category': 'tutorialworld', 'key': 'east', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -617,6 +647,11 @@ on the bridge, 0 - 4.

    lock_storage = 'cmd:all()'
    +
    +
    +search_index_entry = {'aliases': 'w', 'category': 'tutorialworld', 'key': 'west', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -661,6 +696,11 @@ if they fall off the bridge.

    lock_storage = 'cmd:all()'
    +
    +
    +search_index_entry = {'aliases': 'l', 'category': 'tutorialworld', 'key': 'look', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -699,6 +739,11 @@ if they fall off the bridge.

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

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

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

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

    lock_storage = 'cmd:all()'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'general', 'key': '__nomatch_command', 'no_prefix': ' ', '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 "}
    +
    +
    @@ -1187,11 +1247,11 @@ overriding the call (unused by default).

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.contrib.unixcommand.html b/docs/0.9.5/api/evennia.contrib.unixcommand.html index a2d0dc70de..eab2519c7c 100644 --- a/docs/0.9.5/api/evennia.contrib.unixcommand.html +++ b/docs/0.9.5/api/evennia.contrib.unixcommand.html @@ -320,6 +320,11 @@ use its add_argument method.

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'command', 'no_prefix': ' ', '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 '}
    +
    + @@ -355,11 +360,11 @@ use its add_argument method.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.contrib.wilderness.html b/docs/0.9.5/api/evennia.contrib.wilderness.html index 712f66fa95..a8714075b5 100644 --- a/docs/0.9.5/api/evennia.contrib.wilderness.html +++ b/docs/0.9.5/api/evennia.contrib.wilderness.html @@ -316,8 +316,8 @@ are a lot of objects in the map.

    -
    -at_after_object_leave(obj)[source]
    +
    +at_post_object_leave(obj)[source]

    Called after an object left this wilderness map. Used for cleaning up.

    Parameters
    @@ -701,11 +701,11 @@ coordinate.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.help.admin.html b/docs/0.9.5/api/evennia.help.admin.html index 0f2ad65135..ee591c9c2c 100644 --- a/docs/0.9.5/api/evennia.help.admin.html +++ b/docs/0.9.5/api/evennia.help.admin.html @@ -39,134 +39,8 @@
    -
    -

    evennia.help.admin

    -

    This defines how to edit help entries in Admin.

    -
    -
    -class evennia.help.admin.HelpTagInline(parent_model, admin_site)[source]
    -

    Bases: evennia.typeclasses.admin.TagInline

    -
    -
    -model
    -

    alias of evennia.help.models.HelpEntry_db_tags

    -
    - -
    -
    -related_field = 'helpentry'
    -
    - -
    -
    -property media
    -
    - -
    - -
    -
    -class evennia.help.admin.HelpEntryForm(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False, instance=None, use_required_attribute=None, renderer=None)[source]
    -

    Bases: django.forms.models.ModelForm

    -

    Defines how to display the help entry

    -
    -
    -class Meta[source]
    -

    Bases: object

    -
    -
    -model
    -

    alias of evennia.help.models.HelpEntry

    -
    - -
    -
    -fields = '__all__'
    -
    - -
    - -
    -
    -base_fields = {'db_entrytext': <django.forms.fields.CharField object>, 'db_help_category': <django.forms.fields.CharField object>, 'db_key': <django.forms.fields.CharField object>, 'db_lock_storage': <django.forms.fields.CharField object>, 'db_staff_only': <django.forms.fields.BooleanField object>, 'db_tags': <django.forms.models.ModelMultipleChoiceField object>}
    -
    - -
    -
    -declared_fields = {'db_help_category': <django.forms.fields.CharField object>, 'db_lock_storage': <django.forms.fields.CharField object>}
    -
    - -
    -
    -property media
    -

    Return all media required to render the widgets on this form.

    -
    - -
    - -
    -
    -class evennia.help.admin.HelpEntryAdmin(model, admin_site)[source]
    -

    Bases: django.contrib.admin.options.ModelAdmin

    -

    Sets up the admin manaager for help entries

    -
    -
    -inlines = [<class 'evennia.help.admin.HelpTagInline'>]
    -
    - -
    -
    -list_display = ('id', 'db_key', 'db_help_category', 'db_lock_storage')
    -
    - -
    - -
    - -
    -
    -search_fields = ['^db_key', 'db_entrytext']
    -
    - -
    -
    -ordering = ['db_help_category', 'db_key']
    -
    - -
    -
    -save_as = True
    -
    - -
    -
    -save_on_top = True
    -
    - -
    - -
    - -
    -
    -form
    -

    alias of HelpEntryForm

    -
    - -
    -
    -fieldsets = ((None, {'fields': (('db_key', 'db_help_category'), 'db_entrytext', 'db_lock_storage'), 'description': 'Sets a Help entry. Set lock to <i>view:all()</I> unless you want to restrict it.'}),)
    -
    - -
    -
    -property media
    -
    - -
    - +
    +

    evennia.help.admin

    @@ -200,11 +74,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.help.html b/docs/0.9.5/api/evennia.help.html index db79a5546d..603c79d935 100644 --- a/docs/0.9.5/api/evennia.help.html +++ b/docs/0.9.5/api/evennia.help.html @@ -85,11 +85,11 @@ itself.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.help.manager.html b/docs/0.9.5/api/evennia.help.manager.html index 3d13148623..0ca749fc80 100644 --- a/docs/0.9.5/api/evennia.help.manager.html +++ b/docs/0.9.5/api/evennia.help.manager.html @@ -212,11 +212,11 @@ up in one easily separated category.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.help.models.html b/docs/0.9.5/api/evennia.help.models.html index f46b1b6a44..00e3160855 100644 --- a/docs/0.9.5/api/evennia.help.models.html +++ b/docs/0.9.5/api/evennia.help.models.html @@ -107,8 +107,8 @@ class built by **create_forward_many_to_many_manager()** define
    -
    -db_staff_only
    +
    +db_date_created

    A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

    @@ -135,11 +135,28 @@ object the first time, the query is executed.

    -access(accessing_obj, access_type='read', default=False)[source]
    -

    Determines if another object has permission to access. -accessing_obj - object trying to access this one -access_type - type of access sought -default - what to return if no lock of access_type was found

    +access(accessing_obj, access_type='read', default=True)[source] +

    Determines if another object has permission to access this help entry.

    +
    +
    Accesses used by default:

    ‘read’ - read the help entry itself. +‘view’ - see help entry in help index.

    +
    +
    +
    +
    Parameters
    +
      +
    • accessing_obj (Object or Account) – Entity trying to access this one.

    • +
    • access_type (str) – type of access sought.

    • +
    • default (bool) – 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.

    @@ -163,8 +180,10 @@ instances of 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-create’ would be referenced by this method.

    -

    ex. -url(r’characters/create/’, ChargenView.as_view(), name=’character-create’)

    +

    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 @@ -186,11 +205,11 @@ 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.

    -

    ex. -url(r’characters/(?P<slug>[wd-]+)/(?P<pk>[0-9]+)/$’,

    -
    -

    CharDetailView.as_view(), name=’character-detail’)

    -
    +

    ex.

    +
    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.

    This method is naive and simply returns a path. Securing access to @@ -212,11 +231,11 @@ 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-update’ would be referenced by this method.

    -

    ex. -url(r’characters/(?P<slug>[wd-]+)/(?P<pk>[0-9]+)/change/$’,

    -
    -

    CharUpdateView.as_view(), name=’character-update’)

    -
    +

    ex.

    +
    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.

    This method is naive and simply returns a path. Securing access to @@ -237,11 +256,11 @@ responsibility.

    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.

    -

    ex. -url(r’characters/(?P<slug>[wd-]+)/(?P<pk>[0-9]+)/delete/$’,

    -
    -

    CharDeleteView.as_view(), name=’character-delete’)

    -
    +

    ex.

    +
    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.

    This method is naive and simply returns a path. Securing access to @@ -263,11 +282,11 @@ 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.

    -

    ex. -url(r’characters/(?P<slug>[wd-]+)/(?P<pk>[0-9]+)/$’,

    -
    -

    CharDetailView.as_view(), name=’character-detail’)

    -
    +

    ex.

    +
    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.

    This method is naive and simply returns a path. Securing access to @@ -292,12 +311,28 @@ responsibility.

    Bases: django.core.exceptions.MultipleObjectsReturned

    +
    +
    +property date_created
    +

    A wrapper for getting database field db_date_created.

    +
    +
    property entrytext

    A wrapper for getting database field db_entrytext.

    +
    +
    +get_next_by_db_date_created(*, field=<django.db.models.fields.DateTimeField: db_date_created>, is_next=True, **kwargs)
    +
    + +
    +
    +get_previous_by_db_date_created(*, field=<django.db.models.fields.DateTimeField: db_date_created>, is_next=False, **kwargs)
    +
    +
    property help_category
    @@ -328,12 +363,6 @@ object the first time, the query is executed.

    path = 'evennia.help.models.HelpEntry'
    -
    -
    -property staff_only
    -

    A wrapper for getting database field db_staff_only.

    -
    -
    typename = 'SharedMemoryModelBase'
    @@ -374,11 +403,11 @@ object the first time, the query is executed.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.html b/docs/0.9.5/api/evennia.html index 1c3725e917..973e61f9c6 100644 --- a/docs/0.9.5/api/evennia.html +++ b/docs/0.9.5/api/evennia.html @@ -47,7 +47,6 @@ @@ -264,10 +266,7 @@ with ‘q’, remove the break line and restart server when finished.

  • evennia.locks
  • @@ -364,10 +363,19 @@ with ‘q’, remove the break line and restart server when finished.

  • evennia.utils

    Versions

      @@ -474,7 +482,6 @@ with ‘q’, remove the break line and restart server when finished.

    • 0.9.5 (v0.9.5 branch)
    -
    diff --git a/docs/0.9.5/api/evennia.locks.html b/docs/0.9.5/api/evennia.locks.html index fe8f03bb81..bbfd020273 100644 --- a/docs/0.9.5/api/evennia.locks.html +++ b/docs/0.9.5/api/evennia.locks.html @@ -46,10 +46,7 @@ lock strings are processed through the lockhandler in this package. It also contains the default lock functions used in lock definitions.

    @@ -86,11 +83,11 @@ also contains the default lock functions used in lock definitions.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -98,7 +95,6 @@ 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 ee296e280a..6b3dd53ece 100644 --- a/docs/0.9.5/api/evennia.locks.lockfuncs.html +++ b/docs/0.9.5/api/evennia.locks.lockfuncs.html @@ -50,106 +50,6 @@ Run the access() method of the handler to execute the lock chec

    Note that accessing_obj and accessed_obj can be any object type with a lock variable/field, so be careful to not expect a certain object type.

    -

    Appendix: MUX locks

    -

    Below is a list nicked from the MUX help file on the locks available -in standard MUX. Most of these are not relevant to core Evennia since -locks in Evennia are considerably more flexible and can be implemented -on an individual command/typeclass basis rather than as globally -available like the MUX ones. So many of these are not available in -basic Evennia, but could all be implemented easily if needed for the -individual game.

    -
    -

    MUX Name: Affects: Effect:

    -
    -
    DefaultLock: Exits: controls who may traverse the exit to
    -
    -
    -
    its destination.

    Evennia: “traverse:<lockfunc()>”

    -
    -
    -
    -
    -
    Rooms: controls whether the account sees the

    SUCC or FAIL message for the room -following the room description when -looking at the room.

    -
    -

    Evennia: Custom typeclass

    -
    -
    -
    Accounts/Things: controls who may GET the object.

    Evennia: “get:<lockfunc()”

    -
    -
    -
    -
    -
    EnterLock: Accounts/Things: controls who may ENTER the object

    Evennia:

    -
    -
    GetFromLock: All but Exits: controls who may gets things from a
    -
    given location.

    Evennia:

    -
    -
    -
    -
    GiveLock: Accounts/Things: controls who may give the object.

    Evennia:

    -
    -
    LeaveLock: Accounts/Things: controls who may LEAVE the object.

    Evennia:

    -
    -
    LinkLock: All but Exits: controls who may link to the location

    if the location is LINK_OK (for linking -exits or setting drop-tos) or ABODE (for -setting homes)

    -
    -

    Evennia:

    -
    -
    -
    MailLock: Accounts: controls who may @mail the account.

    Evennia:

    -
    -
    OpenLock: All but Exits: controls who may open an exit.

    Evennia:

    -
    -
    PageLock: Accounts: controls who may page the account.

    Evennia: “send:<lockfunc()>”

    -
    -
    ParentLock: All: controls who may make @parent links to
    -
    the object.

    Evennia: Typeclasses and

    -
    -
    -

    “puppet:<lockstring()>”

    -
    -
    ReceiveLock: Accounts/Things: controls who may give things to the
    -
    object.

    Evennia:

    -
    -
    -
    -
    SpeechLock: All but Exits: controls who may speak in that location

    Evennia:

    -
    -
    TeloutLock: All but Exits: controls who may teleport out of the
    -
    location.

    Evennia:

    -
    -
    -
    -
    TportLock: Rooms/Things: controls who may teleport there

    Evennia:

    -
    -
    UseLock: All but Exits: controls who may USE the object, GIVE

    the object money and have the PAY -attributes run, have their messages -heard and possibly acted on by LISTEN -and AxHEAR, and invoke $-commands -stored on the object.

    -
    -

    Evennia: Commands and Cmdsets.

    -
    -
    -
    DropLock: All but rooms: controls who may drop that object.

    Evennia:

    -
    -
    VisibleLock: All: Controls object visibility when the

    object is not dark and the looker -passes the lock. In DARK locations, the -object must also be set LIGHT and the -viewer must pass the VisibleLock.

    -
    -
    -
    Evennia: Room typeclass with

    Dark/light script

    -
    -
    -
    -
    -
    -
    -
    evennia.locks.lockfuncs.true(*args, **kwargs)[source]
    @@ -172,6 +72,11 @@ viewer must pass the VisibleLock.

    evennia.locks.lockfuncs.none(*args, **kwargs)[source]
    +
    +
    +evennia.locks.lockfuncs.superuser(*args, **kwargs)[source]
    +
    +
    evennia.locks.lockfuncs.self(accessing_obj, accessed_obj, *args, **kwargs)[source]
    @@ -202,6 +107,8 @@ is set to True on the Object. In this case however, the LOWEST hieararcy-permission of the Account/Object-pair will be used (this is order to avoid Accounts potentially escalating their own permissions by use of a higher-level Object)

    +

    For non-hierarchical permissions, a puppeted object’s account is checked first, +followed by the puppet (unless quelled, when only puppet’s access is checked).

    @@ -463,15 +370,6 @@ accessed_obj.location == accessing_obj), or if accessing_obj itself holds an object matching the given key.

    -
    -
    -evennia.locks.lockfuncs.superuser(*args, **kwargs)[source]
    -

    Only accepts an accesing_obj that is superuser (e.g. user #1)

    -

    Since a superuser would not ever reach this check (superusers -bypass the lock entirely), any user who gets this far cannot be a -superuser, hence we just return False. :)

    -
    -
    evennia.locks.lockfuncs.has_account(accessing_obj, accessed_obj, *args, **kwargs)[source]
    @@ -496,7 +394,6 @@ everything will enter this function as strings, so they have to be unpacked to their real value. We only support basic properties.

    -
    @@ -519,14 +416,6 @@ unpacked to their real value. We only support basic properties.

    -

    Table of Contents

    - -

    Versions

      @@ -550,7 +439,6 @@ 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 0a16930ef3..7390146696 100644 --- a/docs/0.9.5/api/evennia.locks.lockhandler.html +++ b/docs/0.9.5/api/evennia.locks.lockhandler.html @@ -446,11 +446,11 @@ among the locks defined by lockstring.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.objects.admin.html b/docs/0.9.5/api/evennia.objects.admin.html index cf0b2c215b..eb840436fa 100644 --- a/docs/0.9.5/api/evennia.objects.admin.html +++ b/docs/0.9.5/api/evennia.objects.admin.html @@ -39,267 +39,8 @@
    -
    -

    evennia.objects.admin

    -
    -
    -class evennia.objects.admin.ObjectAttributeInline(parent_model, admin_site)[source]
    -

    Bases: evennia.typeclasses.admin.AttributeInline

    -

    Defines inline descriptions of Attributes (experimental)

    -
    -
    -model
    -

    alias of evennia.objects.models.ObjectDB_db_attributes

    -
    - -
    -
    -related_field = 'objectdb'
    -
    - -
    -
    -property media
    -
    - -
    - -
    -
    -class evennia.objects.admin.ObjectTagInline(parent_model, admin_site)[source]
    -

    Bases: evennia.typeclasses.admin.TagInline

    -

    Defines inline descriptions of Tags (experimental)

    -
    -
    -model
    -

    alias of evennia.objects.models.ObjectDB_db_tags

    -
    - -
    -
    -related_field = 'objectdb'
    -
    - -
    -
    -property media
    -
    - -
    - -
    -
    -class evennia.objects.admin.ObjectCreateForm(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False, instance=None, use_required_attribute=None, renderer=None)[source]
    -

    Bases: django.forms.models.ModelForm

    -

    This form details the look of the fields.

    -
    -
    -class Meta[source]
    -

    Bases: object

    -
    -
    -model
    -

    alias of evennia.objects.models.ObjectDB

    -
    - -
    -
    -fields = '__all__'
    -
    - -
    - -
    -
    -raw_id_fields = ('db_destination', 'db_location', 'db_home')
    -
    - -
    -
    -base_fields = {'db_account': <django.forms.models.ModelChoiceField object>, 'db_attributes': <django.forms.models.ModelMultipleChoiceField object>, 'db_cmdset_storage': <django.forms.fields.CharField object>, 'db_destination': <django.forms.models.ModelChoiceField object>, 'db_home': <django.forms.models.ModelChoiceField object>, 'db_key': <django.forms.fields.CharField object>, 'db_location': <django.forms.models.ModelChoiceField object>, 'db_lock_storage': <django.forms.fields.CharField object>, 'db_sessid': <django.forms.fields.CharField object>, 'db_tags': <django.forms.models.ModelMultipleChoiceField object>, 'db_typeclass_path': <django.forms.fields.CharField object>}
    -
    - -
    -
    -declared_fields = {'db_cmdset_storage': <django.forms.fields.CharField object>, 'db_key': <django.forms.fields.CharField object>, 'db_typeclass_path': <django.forms.fields.CharField object>}
    -
    - -
    -
    -property media
    -

    Return all media required to render the widgets on this form.

    -
    - -
    - -
    -
    -class evennia.objects.admin.ObjectEditForm(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False, instance=None, use_required_attribute=None, renderer=None)[source]
    -

    Bases: evennia.objects.admin.ObjectCreateForm

    -

    Form used for editing. Extends the create one with more fields

    -
    -
    -class Meta[source]
    -

    Bases: object

    -
    -
    -fields = '__all__'
    -
    - -
    - -
    -
    -base_fields = {'db_cmdset_storage': <django.forms.fields.CharField object>, 'db_key': <django.forms.fields.CharField object>, 'db_lock_storage': <django.forms.fields.CharField object>, 'db_typeclass_path': <django.forms.fields.CharField object>}
    -
    - -
    -
    -declared_fields = {'db_cmdset_storage': <django.forms.fields.CharField object>, 'db_key': <django.forms.fields.CharField object>, 'db_lock_storage': <django.forms.fields.CharField object>, 'db_typeclass_path': <django.forms.fields.CharField object>}
    -
    - -
    -
    -property media
    -

    Return all media required to render the widgets on this form.

    -
    - -
    - -
    -
    -class evennia.objects.admin.ObjectDBAdmin(model, admin_site)[source]
    -

    Bases: django.contrib.admin.options.ModelAdmin

    -

    Describes the admin page for Objects.

    -
    -
    -inlines = [<class 'evennia.objects.admin.ObjectTagInline'>, <class 'evennia.objects.admin.ObjectAttributeInline'>]
    -
    - -
    -
    -list_display = ('id', 'db_key', 'db_account', 'db_typeclass_path')
    -
    - -
    - -
    - -
    -
    -ordering = ['db_account', 'db_typeclass_path', 'id']
    -
    - -
    -
    -search_fields = ['=id', '^db_key', 'db_typeclass_path', '^db_account__db_key']
    -
    - -
    -
    -raw_id_fields = ('db_destination', 'db_location', 'db_home')
    -
    - -
    -
    -save_as = True
    -
    - -
    -
    -save_on_top = True
    -
    - -
    - -
    - -
    -
    -list_filter = ('db_typeclass_path',)
    -
    - -
    -
    -form
    -

    alias of ObjectEditForm

    -
    - -
    -
    -fieldsets = ((None, {'fields': (('db_key', 'db_typeclass_path'), ('db_lock_storage',), ('db_location', 'db_home'), 'db_destination', 'db_cmdset_storage')}),)
    -
    - -
    -
    -add_form
    -

    alias of ObjectCreateForm

    -
    - -
    -
    -add_fieldsets = ((None, {'fields': (('db_key', 'db_typeclass_path'), ('db_location', 'db_home'), 'db_destination', 'db_cmdset_storage')}),)
    -
    - -
    -
    -get_fieldsets(request, obj=None)[source]
    -

    Return fieldsets.

    -
    -
    Parameters
    -
      -
    • request (Request) – Incoming request.

    • -
    • obj (ObjectDB, optional) – Database object.

    • -
    -
    -
    -
    - -
    -
    -get_form(request, obj=None, **kwargs)[source]
    -

    Use special form during creation.

    -
    -
    Parameters
    -
      -
    • request (Request) – Incoming request.

    • -
    • obj (Object, optional) – Database object.

    • -
    -
    -
    -
    - -
    -
    -save_model(request, obj, form, change)[source]
    -

    Model-save hook.

    -
    -
    Parameters
    -
      -
    • request (Request) – Incoming request.

    • -
    • obj (Object) – Database object.

    • -
    • form (Form) – Form instance.

    • -
    • change (bool) – If this is a change or a new object.

    • -
    -
    -
    -
    - -
    -
    -response_add(request, obj, post_url_continue=None)[source]
    -

    Determine the HttpResponse for the add_view stage.

    -
    - -
    -
    -property media
    -
    - -
    - +
    +

    evennia.objects.admin

    @@ -333,11 +74,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.objects.html b/docs/0.9.5/api/evennia.objects.html index fcff921252..36d251aba0 100644 --- a/docs/0.9.5/api/evennia.objects.html +++ b/docs/0.9.5/api/evennia.objects.html @@ -84,11 +84,11 @@ objects inherit from classes in this package.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.objects.manager.html b/docs/0.9.5/api/evennia.objects.manager.html index cbda5416b1..f4672ac5af 100644 --- a/docs/0.9.5/api/evennia.objects.manager.html +++ b/docs/0.9.5/api/evennia.objects.manager.html @@ -141,7 +141,8 @@ candidates.

    Parameters
    • attribute_name (str) – Attribute key to search for.

    • -
    • attribute_value (any) – Attribute value to search for. This can also be database objects.

    • +
    • attribute_value (any) – Attribute value to search for. This can also be database +objects.

    • candidates (list, optional) – Candidate objects to limit search to.

    • typeclasses (list, optional) – Python pats to restrict matches with.

    @@ -436,11 +437,11 @@ db_account field set.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.objects.models.html b/docs/0.9.5/api/evennia.objects.models.html index c3400f0eee..63fa22518c 100644 --- a/docs/0.9.5/api/evennia.objects.models.html +++ b/docs/0.9.5/api/evennia.objects.models.html @@ -72,6 +72,17 @@ handler is defined

    +
    +
    +load()[source]
    +

    Retrieves all objects from database. Used for initializing.

    +
    +
    Returns
    +

    Objects (list of ObjectDB)

    +
    +
    +
    +
    init()[source]
    @@ -80,11 +91,14 @@ handler is defined

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

    Return the contents of the cache.

    Parameters
    -

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

    +
      +
    • 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

    @@ -540,11 +554,11 @@ class built by **create_forward_many_to_many_manager()** define
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -552,7 +566,6 @@ 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 7c5657ea80..e5c1b238c9 100644 --- a/docs/0.9.5/api/evennia.objects.objects.html +++ b/docs/0.9.5/api/evennia.objects.objects.html @@ -45,12 +45,12 @@ DefaultCharacter, DefaultAccount, DefaultRoom and DefaultExit. These are the (default) starting points for all in-game visible entities.

    +

    This is the v1.0 develop version (for ref in doc building).

    class evennia.objects.objects.ObjectSessionHandler(obj)[source]

    Bases: object

    -

    Handles the get/setting of the sessid -comma-separated integer field

    +

    Handles the get/setting of the sessid comma-separated integer field

    __init__(obj)[source]
    @@ -160,6 +160,11 @@ without obj.save() having to be called explicitly.

    objects = <evennia.objects.manager.ObjectManager object>
    +
    +
    +appearance_template = '\n{header}\n|c{name}|n\n{desc}\n{exits}{characters}{things}\n{footer}\n '
    +
    +
    cmdset[source]
    @@ -200,21 +205,26 @@ currently connected to this object.

    -contents_get(exclude=None)[source]
    +contents_get(exclude=None, content_type=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

    +
      +
    • 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.

    +

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

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

    Parameters
    -

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

    +
      +
    • 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.

    +

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

    @@ -303,7 +318,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)[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, stacked=0)[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 @@ -314,13 +329,9 @@ objects in the current location of self or its

  • searchdata (str or obj) –

    Primary search criterion. Will be matched against object.key (with object.aliases second) unless the keyword attribute_name specifies otherwise.

    -

    Special strings:

    +

    Special keywords:

      -
    • -
      #<num>: search by unique dbref. This is always

      a global search.

      -
      -
      -
    • +
    • #<num>: search by unique dbref. This is always a global search.

    • me,self: self-reference to this object

    • <num>-<string> - can be used to differentiate

      between multiple same-named matches. The exact form of this input @@ -339,7 +350,9 @@ 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.

      +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.

    • 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 @@ -367,12 +380,18 @@ 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, None or list – Will return an Object or None if quiet=False. Will return a -list with 0, 1 or more matches if quiet=True. If stacked is a positive integer, this -list may contain all stacked identical matches.

    +

    Object, None or list – Will return an Object or None if quiet=False. Will return +a list with 0, 1 or more matches if quiet=True. If stacked is a positive integer, +this list may contain all stacked identical matches.

    Notes

    @@ -526,47 +545,67 @@ function on.

  • text (str or tuple) – Message to send. If a tuple, this should be on the valid OOB outmessage form (message, {kwargs}), where kwargs are optional data passed to the text -outputfunc.

  • +outputfunc. The message will be parsed for {key} formatting and +$You/$you()/$You(), $obj(name), $conj(verb) and $pron(pronoun, option) +inline function callables. +The name is taken from the mapping kwarg {“name”: object, …}**. +The mapping[key].get_display_name(looker=recipient) will be called +for that key for every recipient of the string.

  • exclude (list, optional) – A list of objects not to send to.

  • from_obj (Object, optional) – An object designated as the “sender” of the message. See DefaultObject.msg() for more info.

  • mapping (dict, optional) – A mapping of formatting keys -{“key”:<object>, “key2”:<object2>,…}. The keys -must match **{key} markers in the text if this is a string or -in the internal message if text is a tuple. These -formatting statements will be -replaced by the return of <object>.get_display_name(looker) -for every looker in contents that receives the -message. This allows for every object to potentially -get its own customized string.

  • - -
    -
    Keyword Arguments
    -
      -
    • arguments will be passed on to obj.msg() for all (Keyword) –

    • -
    • objects. (messaged) –

    • +{“key”:<object>, “key2”:<object2>,…}. +The keys must either match **{key} or $You(key)/$you(key) markers +in the text string. If <object> doesn’t have a get_display_name +method, it will be returned as a string. If not set, a key you will +be auto-added to point to from_obj if given, otherwise to self.

      +
    • **kwargs – Keyword arguments will be passed on to obj.msg() for all +messaged objects.

    Notes

    -

    The mapping argument is required if message contains -{}-style format syntax. The keys of mapping should match -named format tokens, and its values will have their -get_display_name() function called for each object in -the room before substitution. If an item in the mapping does -not have get_display_name(), its string value will be used.

    -

    Example

    -

    Say Char is a Character object and Npc is an NPC object:

    -
    -
    char.location.msg_contents(

    “{attacker} kicks {defender}”, -mapping=dict(attacker=char, defender=npc), exclude=(char, npc))

    -
    -
    -

    This will result in everyone in the room seeing ‘Char kicks NPC’ -where everyone may potentially see different results for Char and Npc -depending on the results of char.get_display_name(looker) and -npc.get_display_name(looker) for each particular onlooker

    +

    For ‘actor-stance’ reporting (You say/Name says), use the +$You()/$you()/$You(key) and $conj(verb) (verb-conjugation) +inline callables. This will use the respective get_display_name() +for all onlookers except for from_obj or self, which will become +‘You/you’. If you use $You/you(key), the key must be in mapping.

    +

    For ‘director-stance’ reporting (Name says/Name says), use {key} +syntax directly. For both {key} and You/you(key), +mapping[key].get_display_name(looker=recipient) may be called +depending on who the recipient is.

    +

    Examples

    +

    Let’s assume +- player1.key -> “Player1”,

    +
    +

    player1.get_display_name(looker=player2) -> “The First girl”

    +
    +
      +
    • player2.key -> “Player2”, +player2.get_display_name(looker=player1) -> “The Second girl”

    • +
    +

    Actor-stance:

    +
    char.location.msg_contents(
    +    "$You() $conj(attack) $you(defender).",
    +    mapping={"defender": player2})
    +
    +
    +
      +
    • player1 will see You attack The Second girl.

    • +
    • player2 will see ‘The First girl attacks you.’

    • +
    +

    Director-stance:

    +
    char.location.msg_contents(
    +    "{attacker} attacks {defender}.",
    +    mapping={"attacker:player1, "defender":player2})
    +
    +
    +
      +
    • player1 will see: ‘Player1 attacks The Second girl.’

    • +
    • player2 will see: ‘The First girl attacks Player2’

    • +
    @@ -589,7 +628,7 @@ keyword allows objects to move “inside” exit objects.

    moving to a None location. If you want to run hooks, run them manually (and make sure they can manage None locations).

  • move_hooks (bool) – If False, turn off the calling of move-related hooks -(at_before/after_move etc) with quiet=True, this is as quiet a move +(at_pre/post_move etc) with quiet=True, this is as quiet a move as can be done.

  • @@ -612,13 +651,13 @@ calling move_to.

    The DefaultObject hooks called (if move_hooks=True) are, in order:

      -
    1. self.at_before_move(destination) (if this returns False, move is aborted)

    2. +
    3. self.at_pre_move(destination) (if this returns False, move is aborted)

    4. source_location.at_object_leave(self, destination)

    5. self.announce_move_from(destination)

    6. (move happens here)

    7. self.announce_move_to(source_location)

    8. destination.at_object_receive(self, source_location)

    9. -
    10. self.at_after_move(source_location)

    11. +
    12. self.at_post_move(source_location)

    @@ -684,8 +723,8 @@ specified, the copy will be named <old_key>_copy by default.

    at_object_post_copy(new_obj, **kwargs)[source]
    -

    Called by DefaultObject.copy(). Meant to be overloaded. In case there’s extra data not covered by -.copy(), this can be used to deal with it.

    +

    Called by DefaultObject.copy(). Meant to be overloaded. In case there’s extra data not +covered by .copy(), this can be used to deal with it.

    Parameters

    new_obj (Object) – The new Copy of this object.

    @@ -775,7 +814,7 @@ normal hook to overload for most object types.

    at_object_delete()[source]
    -

    Called just before the database object is permanently +

    Called just before the database object is persistently delete()d from the database. If this method returns False, deletion is aborted.

    @@ -922,9 +961,31 @@ based on the access result.

    +
    +
    +at_pre_move(destination, **kwargs)[source]
    +

    Called just before starting to move this object to +destination.

    +
    +
    Parameters
    +
      +
    • destination (Object) – The object we are moving to

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

    • +
    +
    +
    Returns
    +

    shouldmove (bool) – If we should move or not.

    +
    +
    +

    Notes

    +

    If this method returns False/None, the move is cancelled +before it is even started.

    +
    +
    -at_before_move(destination, **kwargs)[source]
    +at_before_move(destination, **kwargs)

    Called just before starting to move this object to destination.

    @@ -1000,9 +1061,26 @@ destination: the location of the object after moving.

    +
    +
    +at_post_move(source_location, **kwargs)[source]
    +

    Called after move has completed, regardless of quiet mode or +not. Allows changes to the object due to the location it is +now in.

    +
    +
    Parameters
    +
      +
    • source_location (Object) – Wwhere we came from. This may be None.

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

    • +
    +
    +
    +
    +
    -at_after_move(source_location, **kwargs)[source]
    +at_after_move(source_location, **kwargs)

    Called after move has completed, regardless of quiet mode or not. Allows changes to the object due to the location it is now in.

    @@ -1057,7 +1135,7 @@ overriding the call (unused by default).

    normally by calling traversing_object.move_to(target_location). It is normally only implemented by Exit objects. If it returns False (usually -because move_to returned False), at_after_traverse below +because move_to returned False), at_post_traverse below should not be called and instead at_failed_traverse should be called.

    @@ -1072,9 +1150,29 @@ overriding the call (unused by default).

    +
    +
    +at_post_traverse(traversing_object, source_location, **kwargs)[source]
    +

    Called just after an object successfully used this object to +traverse to another object (i.e. this object is a type of +Exit)

    +
    +
    Parameters
    +
      +
    • traversing_object (Object) – The object traversing us.

    • +
    • source_location (Object) – Where traversing_object came from.

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

    • +
    +
    +
    +

    Notes

    +

    The target location should normally be available as self.destination.

    +
    +
    -at_after_traverse(traversing_object, source_location, **kwargs)[source]
    +at_after_traverse(traversing_object, source_location, **kwargs)

    Called just after an object successfully used this object to traverse to another object (i.e. this object is a type of Exit)

    @@ -1164,20 +1262,95 @@ was passed to DefaultCharacter.msg this hook will never get called.

    +
    +
    +get_visible_contents(looker, **kwargs)[source]
    +

    Get all contents of this object that a looker can see (whatever that means, by default it +checks the ‘view’ lock), grouped by type. Helper method to return_appearance.

    +
    +
    Parameters
    +
      +
    • looker (Object) – The entity looking.

    • +
    • **kwargs (any) – Passed from return_appearance. Unused by default.

    • +
    +
    +
    Returns
    +

    dict

    +
    +
    A dict of lists categorized by type. Byt default this

    contains ‘exits’, ‘characters’ and ‘things’. The elements of these +lists are the actual objects.

    +
    +
    +

    +
    +
    +
    + +
    +
    +get_content_names(looker, **kwargs)[source]
    +

    Get the proper names for all contents of this object. Helper method +for return_appearance.

    +
    +
    Parameters
    +
      +
    • looker (Object) – The entity looking.

    • +
    • **kwargs (any) – Passed from return_appearance. Passed into +get_display_name for each found entity.

    • +
    +
    +
    Returns
    +

    dict

    +
    +
    A dict of lists categorized by type. Byt default this

    contains ‘exits’, ‘characters’ and ‘things’. The elements +of these lists are strings - names of the objects that +can depend on the looker and also be grouped in the case +of multiple same-named things etc.

    +
    +
    +

    +
    +
    +

    Notes

    +

    This method shouldn’t add extra coloring to the names beyond what is +already given by the .get_display_name() (and the .name field) already. +Per-type coloring can be applied in return_apperance.

    +
    +
    return_appearance(looker, **kwargs)[source]
    -

    This formats a description. It is the hook a ‘look’ command -should call.

    +

    Main callback used by ‘look’ for the object to describe itself. +This formats a description. By default, this looks for the appearance_template +string set on this class and populates it with formatting keys

    +
    +

    ‘name’, ‘desc’, ‘exits’, ‘characters’, ‘things’ as well as +(currently empty) ‘header’/’footer’.

    +
    Parameters
    • looker (Object) – Object doing the looking.

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

    • +overriding the call. This is passed into the helper +methods and into get_display_name calls.

    +
    Returns
    +

    str

    +
    +
    The description of this entity. By default this includes

    the entity’s name, description and any contents inside it.

    +
    +

    +
    +
    +

    Notes

    +

    To simply change the layout of how the object displays itself (like +adding some line decorations or change colors of different sections), +you can simply edit .appearance_template. You only need to override +this method (and/or its helpers) if you want to change what is passed +into the template or want the most control over output.

    @@ -1224,9 +1397,31 @@ overriding the call (unused by default).

    +
    +
    +at_pre_get(getter, **kwargs)[source]
    +

    Called by the default get command before this object has been +picked up.

    +
    +
    Parameters
    +
      +
    • getter (Object) – The object about to get this object.

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

    • +
    +
    +
    Returns
    +

    shouldget (bool) – If the object should be gotten or not.

    +
    +
    +

    Notes

    +

    If this method returns False/None, the getting is cancelled +before it is even started.

    +
    +
    -at_before_get(getter, **kwargs)[source]
    +at_before_get(getter, **kwargs)

    Called by the default get command before this object has been picked up.

    @@ -1262,12 +1457,35 @@ overriding the call (unused by default).

    Notes

    This hook cannot stop the pickup from happening. Use -permissions or the at_before_get() hook for that.

    +permissions or the at_pre_get() hook for that.

    +
    + +
    +
    +at_pre_give(giver, getter, **kwargs)[source]
    +

    Called by the default give command before this object has been +given.

    +
    +
    Parameters
    +
      +
    • giver (Object) – The object about to give this object.

    • +
    • getter (Object) – The object about to get this object.

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

    • +
    +
    +
    Returns
    +

    shouldgive (bool) – If the object should be given or not.

    +
    +
    +

    Notes

    +

    If this method returns False/None, the giving is cancelled +before it is even started.

    -at_before_give(giver, getter, **kwargs)[source]
    +at_before_give(giver, getter, **kwargs)

    Called by the default give command before this object has been given.

    @@ -1305,12 +1523,34 @@ overriding the call (unused by default).

    Notes

    This hook cannot stop the give from happening. Use -permissions or the at_before_give() hook for that.

    +permissions or the at_pre_give() hook for that.

    +
    + +
    +
    +at_pre_drop(dropper, **kwargs)[source]
    +

    Called by the default drop command before this object has been +dropped.

    +
    +
    Parameters
    +
      +
    • dropper (Object) – The object which will drop this object.

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

    • +
    +
    +
    Returns
    +

    shoulddrop (bool) – If the object should be dropped or not.

    +
    +
    +

    Notes

    +

    If this method returns False/None, the dropping is cancelled +before it is even started.

    -at_before_drop(dropper, **kwargs)[source]
    +at_before_drop(dropper, **kwargs)

    Called by the default drop command before this object has been dropped.

    @@ -1346,12 +1586,12 @@ overriding the call (unused by default).

    Notes

    This hook cannot stop the drop from happening. Use -permissions or the at_before_drop() hook for that.

    +permissions or the at_pre_drop() hook for that.

    -
    -at_before_say(message, **kwargs)[source]
    +
    +at_pre_say(message, **kwargs)[source]

    Before the object says something.

    This hook is by default used by the ‘say’ and ‘whisper’ commands as used by this command it is called before the text @@ -1367,7 +1607,36 @@ text from the object. Returning None aborts the command.

    a say. This is sent by the whisper command by default. Other verbal commands could use this hook in similar ways.

    -
  • receivers (Object or iterable) – If set, this is the target or targets for the say/whisper.

  • +
  • receivers (Object or iterable) – If set, this is the target or targets for the +say/whisper.

  • + +
    +
    Returns
    +

    message (str) – The (possibly modified) text to be spoken.

    +
    +
    + + +
    +
    +at_before_say(message, **kwargs)
    +

    Before the object says something.

    +

    This hook is by default used by the ‘say’ and ‘whisper’ +commands as used by this command it is called before the text +is said/whispered and can be used to customize the outgoing +text from the object. Returning None aborts the command.

    +
    +
    Parameters
    +

    message (str) – The suggested say/whisper text spoken by self.

    +
    +
    Keyword Arguments
    +
      +
    • whisper (bool) – If True, this is a whisper rather than +a say. This is sent by the whisper command by default. +Other verbal commands could use this hook in similar +ways.

    • +
    • receivers (Object or iterable) – If set, this is the target or targets for the +say/whisper.

    Returns
    @@ -1392,8 +1661,8 @@ re-writing it completely.

  • msg_self (bool or str, optional) – If boolean True, echo message to self. If a string, return that message. If False or unset, don’t echo to self.

  • msg_location (str, optional) – The message to echo to self’s location.

  • -
  • receivers (Object or iterable, optional) – An eventual receiver or receivers of the message -(by default only used by whispers).

  • +
  • receivers (Object or iterable, optional) – An eventual receiver or receivers of the +message (by default only used by whispers).

  • msg_receivers (str) – Specific message to pass to the receiver(s). This will parsed with the {receiver} placeholder replaced with the given receiver.

  • @@ -1495,6 +1764,37 @@ 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]
    @@ -1505,9 +1805,15 @@ method (unless you want to fundamentally change how a Character object works).

    +
    +
    +at_post_move(source_location, **kwargs)[source]
    +

    We make sure to look around after a move.

    +
    +
    -at_after_move(source_location, **kwargs)[source]
    +at_after_move(source_location, **kwargs)

    We make sure to look around after a move.

    @@ -1699,7 +2005,8 @@ overriding the call (unused by default).

    Returns
    -

    A string with identifying information to disambiguate the command, conventionally with a preceding space.

    +

    A string with identifying information to disambiguate the command, conventionally with a +preceding space.

    @@ -1724,6 +2031,11 @@ overriding the call (unused by default).

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

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.prototypes.html b/docs/0.9.5/api/evennia.prototypes.html index 6c4ab5cf2e..2e369df729 100644 --- a/docs/0.9.5/api/evennia.prototypes.html +++ b/docs/0.9.5/api/evennia.prototypes.html @@ -82,11 +82,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.prototypes.menus.html b/docs/0.9.5/api/evennia.prototypes.menus.html index 3bb880fe2f..b9e665ad86 100644 --- a/docs/0.9.5/api/evennia.prototypes.menus.html +++ b/docs/0.9.5/api/evennia.prototypes.menus.html @@ -187,11 +187,11 @@ prototype rather than creating a new one.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.prototypes.protfuncs.html b/docs/0.9.5/api/evennia.prototypes.protfuncs.html index 831f902803..1afd494381 100644 --- a/docs/0.9.5/api/evennia.prototypes.protfuncs.html +++ b/docs/0.9.5/api/evennia.prototypes.protfuncs.html @@ -41,188 +41,43 @@

    evennia.prototypes.protfuncs

    -

    Protfuncs are function-strings embedded in a prototype and allows for a builder to create a -prototype with custom logics without having access to Python. The Protfunc is parsed using the -inlinefunc parser but is fired at the moment the spawning happens, using the creating object’s -session as input.

    +

    Protfuncs are FuncParser-callables that can be embedded in a prototype to +provide custom logic without having access to Python. The protfunc is parsed at +the time of spawning, using the creating object’s session as input. If the +protfunc returns a non-string, this is what will be added to the prototype.

    In the prototype dict, the protfunc is specified as a string inside the prototype, e.g.:

    { …

    -

    “key”: “$funcname(arg1, arg2, …)”

    +

    “key”: “$funcname(args, kwargs)”

    … }

    -

    and multiple functions can be nested (no keyword args are supported). The result will be used as the -value for that prototype key for that individual spawn.

    -

    Available protfuncs are callables in one of the modules of settings.PROT_FUNC_MODULES. They -are specified as functions

    +

    Available protfuncs are either all callables in one of the modules of settings.PROT_FUNC_MODULES +or all callables added to a dict FUNCPARSER_CALLABLES in such a module.

    def funcname (*args, **kwargs)

    -

    where *args are the arguments given in the prototype, and **kwargs are inserted by Evennia:

    +

    At spawn-time the spawner passes the following extra kwargs into each callable (in addition to +what is added in the call itself):

    • session (Session): The Session of the entity spawning using this prototype.

    • prototype (dict): The dict this protfunc is a part of.

    • current_key (str): The active key this value belongs to in the prototype.

    • -
    • -
      testing (bool): This is set if this function is called as part of the prototype validation; if

      set, the protfunc should take care not to perform any persistent actions, such as operate on -objects or add things to the database.

      -
      -
      -

    Any traceback raised by this function will be handled at the time of spawning and abort the spawn before any object is created/updated. It must otherwise return the value to store for the specified prototype key (this value must be possible to serialize in an Attribute).

    -
    -evennia.prototypes.protfuncs.base_random()
    -

    random() -> x in the interval [0, 1).

    -
    - -
    -
    -evennia.prototypes.protfuncs.random(*args, **kwargs)[source]
    -

    Usage: $random() -Returns a random value in the interval [0, 1)

    -
    - -
    -
    -evennia.prototypes.protfuncs.randint(*args, **kwargs)[source]
    -

    Usage: $randint(start, end) -Returns random integer in interval [start, end]

    -
    - -
    -
    -evennia.prototypes.protfuncs.left_justify(*args, **kwargs)[source]
    -

    Usage: $left_justify(<text>) -Returns <text> left-justified.

    -
    - -
    -
    -evennia.prototypes.protfuncs.right_justify(*args, **kwargs)[source]
    -

    Usage: $right_justify(<text>) -Returns <text> right-justified across screen width.

    -
    - -
    -
    -evennia.prototypes.protfuncs.center_justify(*args, **kwargs)[source]
    -

    Usage: $center_justify(<text>) -Returns <text> centered in screen width.

    -
    - -
    -
    -evennia.prototypes.protfuncs.choice(*args, **kwargs)[source]
    -

    Usage: $choice(val, val, val, …) -Returns one of the values randomly

    -
    - -
    -
    -evennia.prototypes.protfuncs.full_justify(*args, **kwargs)[source]
    -

    Usage: $full_justify(<text>) -Returns <text> filling up screen width by adding extra space.

    -
    - -
    -
    -evennia.prototypes.protfuncs.protkey(*args, **kwargs)[source]
    -

    Usage: $protkey(<key>) +

    +evennia.prototypes.protfuncs.protfunc_callable_protkey(*args, **kwargs)[source]
    +

    Usage: $protkey(keyname) Returns the value of another key in this prototoype. Will raise an error if

    the key is not found in this prototype.

    -
    -
    -evennia.prototypes.protfuncs.add(*args, **kwargs)[source]
    -

    Usage: $add(val1, val2) -Returns the result of val1 + val2. Values must be

    -
    -

    valid simple Python structures possible to add, -such as numbers, lists etc.

    -
    -
    - -
    -
    -evennia.prototypes.protfuncs.sub(*args, **kwargs)[source]
    -

    Usage: $del(val1, val2) -Returns the value of val1 - val2. Values must be

    -
    -

    valid simple Python structures possible to -subtract.

    -
    -
    - -
    -
    -evennia.prototypes.protfuncs.mult(*args, **kwargs)[source]
    -

    Usage: $mul(val1, val2) -Returns the value of val1 * val2. The values must be

    -
    -

    valid simple Python structures possible to -multiply, like strings and/or numbers.

    -
    -
    - -
    -
    -evennia.prototypes.protfuncs.div(*args, **kwargs)[source]
    -

    Usage: $div(val1, val2) -Returns the value of val1 / val2. Values must be numbers and

    -
    -

    the result is always a float.

    -
    -
    - -
    -
    -evennia.prototypes.protfuncs.toint(*args, **kwargs)[source]
    -

    Usage: $toint(<number>) -Returns <number> as an integer.

    -
    - -
    -
    -evennia.prototypes.protfuncs.eval(*args, **kwargs)[source]
    -

    Usage $eval(<expression>) -Returns evaluation of a simple Python expression. The string may only consist of the following

    -
    -

    Python literal structures: strings, numbers, tuples, lists, dicts, booleans, -and None. The strings can also contain #dbrefs. Escape embedded protfuncs as $$protfunc(..) -- those will then be evaluated after $eval.

    -
    -
    - -
    -
    -evennia.prototypes.protfuncs.obj(*args, **kwargs)[source]
    -

    Usage $obj(<query>) -Returns one Object searched globally by key, alias or #dbref. Error if more than one.

    -
    - -
    -
    -evennia.prototypes.protfuncs.objlist(*args, **kwargs)[source]
    -

    Usage $objlist(<query>) -Returns list with one or more Objects searched globally by key, alias or #dbref.

    -
    - -
    -
    -evennia.prototypes.protfuncs.dbref(*args, **kwargs)[source]
    -

    Usage $dbref(<#dbref>) -Validate that a #dbref input is valid.

    -
    -
    @@ -256,11 +111,11 @@ Validate that a #dbref input is valid.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.prototypes.prototypes.html b/docs/0.9.5/api/evennia.prototypes.prototypes.html index 61349ad18b..d2d9b3f905 100644 --- a/docs/0.9.5/api/evennia.prototypes.prototypes.html +++ b/docs/0.9.5/api/evennia.prototypes.prototypes.html @@ -81,9 +81,28 @@ the default reserved keys.

    -evennia.prototypes.prototypes.load_module_prototypes()[source]
    -

    This is called by evennia.__init__ as Evennia initializes. It’s important -to do this late so as to not interfere with evennia initialization.

    +evennia.prototypes.prototypes.load_module_prototypes(*mod_or_prototypes, override=True)[source] +

    Load module prototypes. Also prototype-dicts passed directly to this function are considered +‘module’ prototypes (they are impossible to change) but will have a module of None.

    +
    +
    Parameters
    +
      +
    • *mod_or_prototypes (module or dict) – Each arg should be a separate module or +prototype-dict to load. If none are given, settings.PROTOTYPE_MODULES will be used.

    • +
    • override (bool, optional) – If prototypes should override existing ones already loaded. +Disabling this can allow for injecting prototypes into the system dynamically while +still allowing same prototype-keys to be overridden from settings (even though settings +is usually loaded before dynamic loading).

    • +
    +
    +
    +
    +

    Note

    +

    This is called (without arguments) by evennia.__init__ as Evennia initializes. It’s +important to do this late so as to not interfere with evennia initialization. But it can +also be used later to add more prototypes to the library on the fly. This is requried +before a module-based prototype can be accessed by prototype-key.

    +
    @@ -196,7 +215,7 @@ Note that no locks will be checked if**caller** is not passed.

    -evennia.prototypes.prototypes.search_prototype(key=None, tags=None, require_single=False, return_iterators=False)[source]
    +evennia.prototypes.prototypes.search_prototype(key=None, tags=None, require_single=False, return_iterators=False, no_db=False)[source]

    Find prototypes based on key and/or tags, or all prototypes.

    Keyword Arguments
    @@ -210,6 +229,9 @@ was not found or if there are multiple matches.

  • return_iterators (bool) – Optimized return for large numbers of db-prototypes. If set, separate returns of module based prototypes and paginate the db-prototype return.

  • +
  • no_db (bool) – Optimization. If set, skip querying for database-generated prototypes and only +include module-based prototypes. This can lead to a dramatic speedup since +module-prototypes are static and require no db-lookup.

  • Returns
    @@ -342,7 +364,7 @@ with (it may still be useful as a mix-in prototype).

    -evennia.prototypes.prototypes.protfunc_parser(value, available_functions=None, testing=False, stacktrace=False, **kwargs)[source]
    +evennia.prototypes.prototypes.protfunc_parser(value, available_functions=None, testing=False, stacktrace=False, caller=None, **kwargs)[source]

    Parse a prototype value string for a protfunc and process it.

    Available protfuncs are specified as callables in one of the modules of settings.PROTFUNC_MODULES, or specified on the command line.

    @@ -353,8 +375,6 @@ with (it may still be useful as a mix-in prototype).

    protfuncs, all other types are returned as-is.

  • available_functions (dict, optional) – Mapping of name:protfunction to use for this parsing. If not set, use default sources.

  • -
  • testing (bool, optional) – Passed to protfunc. If in a testing mode, some protfuncs may -behave differently.

  • stacktrace (bool, optional) – If set, print the stack parsing process of the protfunc-parser.

  • @@ -363,22 +383,15 @@ behave differently.

  • session (Session) – Passed to protfunc. Session of the entity spawning the prototype.

  • protototype (dict) – Passed to protfunc. The dict this protfunc is a part of.

  • current_key (str) – Passed to protfunc. The key in the prototype that will hold this value.

  • +
  • caller (Object or Account) – This is necessary for certain protfuncs that perform object +searches and have to check permissions.

  • any (any) – Passed on to the protfunc.

  • Returns
    -

    testresult (tuple)

    -
    -
    If testing is set, returns a tuple (error, result) where error is

    either None or a string detailing the error from protfunc_parser or seen when trying to -run literal_eval on the parsed string.

    -
    -
    any (any): A structure to replace the string on the prototype level. If this is a

    callable or a (callable, (args,)) structure, it will be executed as if one had supplied -it to the prototype directly. This structure is also passed through literal_eval so one -can get actual Python primitives out of it (not just strings). It will also identify -eventual object #dbrefs in the output from the protfunc.

    -
    -
    -

    +

    any – A structure to replace the string on the prototype leve. Note +that FunctionParser functions $funcname(*args, **kwargs) can return any +data type to insert into the prototype.

    @@ -425,18 +438,23 @@ eventual object #dbrefs in the output from the protfunc.

    -evennia.prototypes.prototypes.init_spawn_value(value, validator=None)[source]
    +evennia.prototypes.prototypes.init_spawn_value(value, validator=None, caller=None, prototype=None)[source]

    Analyze the prototype value and produce a value useful at the point of spawning.

    Parameters

    value (any) –

    This can be: callable - will be called as callable() -(callable, (args,)) - will be called as callable(*args) +(callable, (args,)) - will be called as callable(*args) other - will be assigned depending on the variable type validator (callable, optional): If given, this will be called with the value to

    check and guarantee the outcome is of a given type.

    +
    +
    caller (Object or Account): This is necessary for certain protfuncs that perform object

    searches and have to check permissions.

    +
    +
    +

    prototype (dict): Prototype this is to be used for. Necessary for certain protfuncs.

    Returns
    @@ -490,11 +508,11 @@ validator (callable, optional): If given, this will be called with the value to<
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -502,7 +520,6 @@ 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 b1e449a59b..8ced81b787 100644 --- a/docs/0.9.5/api/evennia.prototypes.spawner.html +++ b/docs/0.9.5/api/evennia.prototypes.spawner.html @@ -82,7 +82,7 @@ prototype_locks (str, optional): locks for restricting access to this prototype.
    prototype_tags(list, optional): List of tags or tuples (tag, category) used to group prototype

    in listings

    -
    prototype_parent (str, tuple or callable, optional): name (prototype_key) of eventual parent prototype, or

    a list of parents, for multiple left-to-right inheritance.

    +
    prototype_parent (str, tuple or callable, optional): name (prototype_key) of eventual parent

    prototype, or a list of parents, for multiple left-to-right inheritance.

    prototype: Deprecated. Same meaning as ‘parent’.

    @@ -178,7 +178,7 @@ prototype, override its name with an empty dict.

    -evennia.prototypes.spawner.flatten_prototype(prototype, validate=False)[source]
    +evennia.prototypes.spawner.flatten_prototype(prototype, validate=False, no_db=False)[source]

    Produce a ‘flattened’ prototype, where all prototype parents in the inheritance tree have been merged into a final prototype.

    @@ -186,6 +186,8 @@ merged into a final prototype.

    • prototype (dict) – Prototype to flatten. Its prototype_parent field will be parsed.

    • validate (bool, optional) – Validate for valid keys etc.

    • +
    • no_db (bool, optional) – Don’t search db-based prototypes. This can speed up +searching dramatically since module-based prototypes are static.

    Returns
    @@ -226,8 +228,8 @@ attr/tag (for example) are represented by a tuple.

    This is most useful for displaying.

  • implicit_keep (bool, optional) – If set, the resulting diff will assume KEEP unless the new prototype explicitly change them. That is, if a key exists in prototype1 and -not in prototype2, it will not be REMOVEd but set to KEEP instead. This is particularly -useful for auto-generated prototypes when updating objects.

  • +not in prototype2, it will not be REMOVEd but set to KEEP instead. This is +particularly useful for auto-generated prototypes when updating objects.

    Returns
    @@ -351,7 +353,7 @@ of the olc _format_diff_text_and_options without the options.

    -evennia.prototypes.spawner.batch_update_objects_with_prototype(prototype, diff=None, objects=None, exact=False)[source]
    +evennia.prototypes.spawner.batch_update_objects_with_prototype(prototype, diff=None, objects=None, exact=False, caller=None)[source]

    Update existing objects with the latest version of the prototype.

    Parameters
    @@ -368,6 +370,7 @@ expected - for example, one usually do not want to remove the object’s locatio if it’s not set in the prototype. With exact=True, all un-specified properties of the objects will be removed if they exist. This will lead to a more accurate 1:1 correlation between the object and the prototype but is usually impractical.

    +
  • caller (Object or Account, optional) – This may be used by protfuncs to do permission checks.

  • Returns
    @@ -437,7 +440,7 @@ unprivileged users!

    -evennia.prototypes.spawner.spawn(*prototypes, **kwargs)[source]
    +evennia.prototypes.spawner.spawn(*prototypes, caller=None, **kwargs)[source]

    Spawn a number of prototyped objects.

    Parameters
    @@ -447,6 +450,7 @@ dictionary. These will be batched-spawned as one object each.

    Keyword Arguments
      +
    • caller (Object or Account, optional) – This may be used by protfuncs to do access checks.

    • prototype_modules (str or list) – A python-path to a prototype module, or a list of such paths. These will be used to build the global protparents dictionary accessible by the input @@ -508,11 +512,11 @@ custom prototype_parents are given to this function.

    • Home page
    • Evennia Github
    • Game Index
    • -
    • IRC - - Discord - - Forums +
    • + Discord - + Discussions - + Blog
    • -
    • Evennia Dev blog

    Versions

    -
    diff --git a/docs/0.9.5/api/evennia.scripts.admin.html b/docs/0.9.5/api/evennia.scripts.admin.html index f20c6f4690..60ab9c1a0f 100644 --- a/docs/0.9.5/api/evennia.scripts.admin.html +++ b/docs/0.9.5/api/evennia.scripts.admin.html @@ -39,132 +39,8 @@
    -
    -

    evennia.scripts.admin

    -
    -
    -class evennia.scripts.admin.ScriptTagInline(parent_model, admin_site)[source]
    -

    Bases: evennia.typeclasses.admin.TagInline

    -

    Inline script tags.

    -
    -
    -model
    -

    alias of evennia.scripts.models.ScriptDB_db_tags

    -
    - -
    -
    -related_field = 'scriptdb'
    -
    - -
    -
    -property media
    -
    - -
    - -
    -
    -class evennia.scripts.admin.ScriptAttributeInline(parent_model, admin_site)[source]
    -

    Bases: evennia.typeclasses.admin.AttributeInline

    -

    Inline attribute tags.

    -
    -
    -model
    -

    alias of evennia.scripts.models.ScriptDB_db_attributes

    -
    - -
    -
    -related_field = 'scriptdb'
    -
    - -
    -
    -property media
    -
    - -
    - -
    -
    -class evennia.scripts.admin.ScriptDBAdmin(model, admin_site)[source]
    -

    Bases: django.contrib.admin.options.ModelAdmin

    -

    Displaying the main Script page.

    -
    -
    -list_display = ('id', 'db_key', 'db_typeclass_path', 'db_obj', 'db_interval', 'db_repeats', 'db_persistent')
    -
    - -
    - -
    - -
    -
    -ordering = ['db_obj', 'db_typeclass_path']
    -
    - -
    -
    -search_fields = ['^db_key', 'db_typeclass_path']
    -
    - -
    -
    -save_as = True
    -
    - -
    -
    -save_on_top = True
    -
    - -
    - -
    - -
    -
    -raw_id_fields = ('db_obj',)
    -
    - -
    -
    -fieldsets = ((None, {'fields': (('db_key', 'db_typeclass_path'), 'db_interval', 'db_repeats', 'db_start_delay', 'db_persistent', 'db_obj')}),)
    -
    - -
    -
    -inlines = [<class 'evennia.scripts.admin.ScriptTagInline'>, <class 'evennia.scripts.admin.ScriptAttributeInline'>]
    -
    - -
    -
    -save_model(request, obj, form, change)[source]
    -

    Model-save hook.

    -
    -
    Parameters
    -
      -
    • request (Request) – Incoming request.

    • -
    • obj (Object) – Database object.

    • -
    • form (Form) – Form instance.

    • -
    • change (bool) – If this is a change or a new object.

    • -
    -
    -
    -
    - -
    -
    -property media
    -
    - -
    - +
    +

    evennia.scripts.admin

    @@ -198,11 +74,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.scripts.html b/docs/0.9.5/api/evennia.scripts.html index 96fd00e587..d6882a0ce3 100644 --- a/docs/0.9.5/api/evennia.scripts.html +++ b/docs/0.9.5/api/evennia.scripts.html @@ -90,11 +90,11 @@ timed effects.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.scripts.manager.html b/docs/0.9.5/api/evennia.scripts.manager.html index 84e83bb6cf..67559a1844 100644 --- a/docs/0.9.5/api/evennia.scripts.manager.html +++ b/docs/0.9.5/api/evennia.scripts.manager.html @@ -119,57 +119,9 @@ specific game object

    -
    -remove_non_persistent(obj=None)[source]
    -

    This cleans up the script database of all non-persistent -scripts. It is called every time the server restarts.

    -
    -
    Parameters
    -

    obj (Object, optional) – Only remove non-persistent scripts -assigned to this object.

    -
    -
    -
    - -
    -
    -validate(scripts=None, obj=None, key=None, dbref=None, init_mode=None)[source]
    -

    This will step through the script database and make sure -all objects run scripts that are still valid in the context -they are in. This is called by the game engine at regular -intervals but can also be initiated by player scripts.

    -

    Only one of the arguments are supposed to be supplied -at a time, since they are exclusive to each other.

    -
    -
    Parameters
    -
      -
    • scripts (list, optional) – A list of script objects to -validate.

    • -
    • obj (Object, optional) – Validate only scripts defined on -this object.

    • -
    • key (str) – Validate only scripts with this key.

    • -
    • dbref (int) – Validate only the single script with this -particular id.

    • -
    • init_mode (str, optional) – This is used during server -upstart and can have three values: -- None (no init mode). Called during run. -- “reset” - server reboot. Kill non-persistent scripts -- “reload” - server reload. Keep non-persistent scripts.

    • -
    -
    -
    Returns
    -

    nr_started, nr_stopped (tuple)

    -
    -
    Statistics on how many objects

    where started and stopped.

    -
    -
    -

    -
    -
    -

    Notes

    -

    This method also makes sure start any scripts it validates -which should be harmless, since already-active scripts have -the property ‘is_running’ set and will be skipped.

    +
    +update_scripts_after_server_start()[source]
    +

    Update/sync/restart/delete scripts after server shutdown/restart.

    @@ -268,11 +220,11 @@ the original.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.scripts.models.html b/docs/0.9.5/api/evennia.scripts.models.html index 81bc93ebec..7c142a7f0b 100644 --- a/docs/0.9.5/api/evennia.scripts.models.html +++ b/docs/0.9.5/api/evennia.scripts.models.html @@ -368,11 +368,11 @@ class built by **create_forward_many_to_many_manager()** define
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -380,7 +380,6 @@ 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 ac6d4c4253..8fbfc91eae 100644 --- a/docs/0.9.5/api/evennia.scripts.monitorhandler.html +++ b/docs/0.9.5/api/evennia.scripts.monitorhandler.html @@ -190,11 +190,11 @@ all kwargs must be possible to pickle!

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.scripts.scripthandler.html b/docs/0.9.5/api/evennia.scripts.scripthandler.html index b3b8e84ab6..b751a2fd19 100644 --- a/docs/0.9.5/api/evennia.scripts.scripthandler.html +++ b/docs/0.9.5/api/evennia.scripts.scripthandler.html @@ -140,25 +140,6 @@ If no key is given, delete all scripts on the object!

    Get all scripts stored in this handler.

    -
    -
    -validate(init_mode=False)[source]
    -

    Runs a validation on this object’s scripts only. This should -be called regularly to crank the wheels.

    -
    -
    Parameters
    -

    init_mode (str, optional) –

      -
    • This is used during server

    • -
    -

    upstart and can have three values: -- False (no init mode). Called during run. -- “reset” - server reboot. Kill non-persistent scripts -- “reload” - server reload. Keep non-persistent scripts.

    -

    -
    -
    -
    -
    @@ -194,11 +175,11 @@ be called regularly to crank the wheels.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.scripts.scripts.html b/docs/0.9.5/api/evennia.scripts.scripts.html index 53a29de436..b9c0f62daf 100644 --- a/docs/0.9.5/api/evennia.scripts.scripts.html +++ b/docs/0.9.5/api/evennia.scripts.scripts.html @@ -72,182 +72,20 @@ errors (list): A list of errors in string form, if any.

    Only called once, when script is first created.

    -
    -
    -time_until_next_repeat()[source]
    -

    Get time until the script fires it at_repeat hook again.

    -
    -
    Returns
    -

    next (int)

    -
    -
    Time in seconds until the script runs again.

    If not a timed script, return None.

    -
    -
    -

    -
    -
    -

    Notes

    -

    This hook is not used in any way by the script’s stepping -system; it’s only here for the user to be able to check in -on their scripts and when they will next be run.

    -
    - -
    -
    -remaining_repeats()[source]
    -

    Get the number of returning repeats for limited Scripts.

    -
    -
    Returns
    -

    remaining (int or None) –

    -
    -
    The number of repeats

    remaining until the Script stops. Returns None -if it has unlimited repeats.

    -
    -
    -

    -
    -
    -
    - -
    -
    -at_idmapper_flush()[source]
    -

    If we’re flushing this object, make sure the LoopingCall is gone too

    -
    - -
    -
    -start(force_restart=False)[source]
    -

    Called every time the script is started (for persistent -scripts, this is usually once every server start)

    -
    -
    Parameters
    -

    force_restart (bool, optional) – Normally an already -started script will not be started again. if -force_restart=True, the script will always restart -the script, regardless of if it has started before.

    -
    -
    Returns
    -

    result (int)

    -
    -
    0 or 1 depending on if the script successfully

    started or not. Used in counting.

    -
    -
    -

    -
    -
    -
    - -
    -
    -stop(kill=False)[source]
    -

    Called to stop the script from running. This also deletes the -script.

    -
    -
    Parameters
    -

    kill (bool, optional) –

      -
    • Stop the script without

    • -
    -

    calling any relevant script hooks.

    -

    -
    -
    Returns
    -

    result (int)

    -
    -
    0 if the script failed to stop, 1 otherwise.

    Used in counting.

    -
    -
    -

    -
    -
    -
    - -
    -
    -pause(manual_pause=True)[source]
    -

    This stops a running script and stores its active state. -It WILL NOT call the at_stop() hook.

    -
    - -
    -
    -unpause(manual_unpause=True)[source]
    -

    Restart a paused script. This WILL call the at_start() hook.

    -
    -
    Parameters
    -

    manual_unpause (bool, optional) – This is False if unpause is -called by the server reload/reset mechanism.

    -
    -
    Returns
    -

    result (bool) – True if unpause was triggered, False otherwise.

    -
    -
    Raises
    -

    RuntimeError – If trying to automatically resart this script -(usually after a reset/reload), but it was manually paused, -and so should not the auto-unpaused.

    -
    -
    -
    - -
    -
    -restart(interval=None, repeats=None, start_delay=None)[source]
    -

    Restarts an already existing/running Script from the -beginning, optionally using different settings. This will -first call the stop hooks, and then the start hooks again. -:param interval: Allows for changing the interval

    -
    -

    of the Script. Given in seconds. if None, will use the already stored interval.

    -
    -
    -
    Parameters
    -
      -
    • repeats (int, optional) – The number of repeats. If unset, will -use the previous setting.

    • -
    • start_delay (bool, optional) – If we should wait interval seconds -before starting or not. If None, re-use the previous setting.

    • -
    -
    -
    -
    - -
    -
    -reset_callcount(value=0)[source]
    -

    Reset the count of the number of calls done.

    -
    -
    Parameters
    -

    value (int, optional) – The repeat value to reset to. Default -is to set it all the way back to 0.

    -
    -
    -

    Notes

    -

    This is only useful if repeats != 0.

    -
    - -
    -
    -force_repeat()[source]
    -

    Fire a premature triggering of the script callback. This -will reset the timer and count down repeats as if the script -had fired normally.

    -
    -
    is_valid()[source]
    -

    Is called to check if the script is valid to run at this time. -Should return a boolean. The method is assumed to collect all -needed information from its related self.obj.

    +

    Is called to check if the script’s timer is valid to run at this time. +Should return a boolean. If False, the timer will be stopped.

    at_start(**kwargs)[source]
    -

    Called whenever the script is started, which for persistent -scripts is at least once every server start. It will also be -called when starting again after a pause (such as after a -server reload)

    +

    Called whenever the script timer is started, which for persistent +timed scripts is at least once every server start. It will also be +called when starting again after a pause (including after a +server reload).

    Parameters

    **kwargs (dict) – Arbitrary, optional arguments for users @@ -269,15 +107,39 @@ overriding the call (unused by default).

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

    Called whenever when it’s time for this script to stop (either -because is_valid returned False or it runs out of iterations)

    -
    -
    Args
    -
    **kwargs (dict): Arbitrary, optional arguments for users

    overriding the call (unused by default).

    +
    +at_pause(manual_pause=True, **kwargs)[source]
    +

    Called when this script’s timer pauses.

    +
    +
    Parameters
    +

    manual_pause (bool) – If set, pausing was done by a direct call. The +non-manual pause indicates the script was paused as part of +the server reload.

    +
    + +
    +
    +at_stop(**kwargs)[source]
    +

    Called whenever when it’s time for this script’s timer to stop (either +because is_valid returned False, it ran out of iterations or it was manuallys +stopped.

    +
    +
    Parameters
    +

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

    +
    +
    +
    + +
    +
    +at_script_delete()[source]
    +

    Called when the Script is deleted, before stopping the timer.

    +
    +
    Returns
    +

    bool – If False, the deletion is aborted.

    @@ -298,6 +160,14 @@ to do it.

    (i.e. not for a restart).

    +
    +
    +at_server_start()[source]
    +

    This hook is called after the server has started. It can be used to add +post-startup setup for Scripts without a timer component (for which at_start +could be used).

    +
    +
    exception DoesNotExist
    @@ -425,11 +295,11 @@ to do it.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.scripts.taskhandler.html b/docs/0.9.5/api/evennia.scripts.taskhandler.html index 1e20357f46..6011d9c07e 100644 --- a/docs/0.9.5/api/evennia.scripts.taskhandler.html +++ b/docs/0.9.5/api/evennia.scripts.taskhandler.html @@ -141,7 +141,7 @@ called(self): A task attribute to check if the deferred instance of a task has b
    pause()[source]

    Pause the callback of a task. -To resume use TaskHandlerTask.unpause

    +To resume use TaskHandlerTask.unpause.

    @@ -442,8 +442,7 @@ Deletes the instance of the task’s deferred.

    clear(save=True, cancel=True)[source]
    -

    clear all tasks. -By default tasks are canceled and removed from the database also.

    +

    Clear all tasks. By default tasks are canceled and removed from the database as well.

    Parameters

    Versions

      @@ -566,7 +565,6 @@ This method should be automatically called when Evennia starts.

    • 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 64d6df6560..5024ef4914 100644 --- a/docs/0.9.5/api/evennia.scripts.tickerhandler.html +++ b/docs/0.9.5/api/evennia.scripts.tickerhandler.html @@ -418,11 +418,11 @@ non-db objects.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.server.admin.html b/docs/0.9.5/api/evennia.server.admin.html index 5dffec27b0..b9eeaeff47 100644 --- a/docs/0.9.5/api/evennia.server.admin.html +++ b/docs/0.9.5/api/evennia.server.admin.html @@ -39,55 +39,8 @@
    -
    -

    evennia.server.admin

    -
    -
    -class evennia.server.admin.ServerConfigAdmin(model, admin_site)[source]
    -

    Bases: django.contrib.admin.options.ModelAdmin

    -

    Custom admin for server configs

    -
    -
    -list_display = ('db_key', 'db_value')
    -
    - -
    - -
    - -
    -
    -ordering = ['db_key', 'db_value']
    -
    - -
    -
    -search_fields = ['db_key']
    -
    - -
    -
    -save_as = True
    -
    - -
    -
    -save_on_top = True
    -
    - -
    - -
    - -
    -
    -property media
    -
    - -
    - +
    +

    evennia.server.admin

    @@ -121,11 +74,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 8728c45d22..b43bfbb7ff 100644 --- a/docs/0.9.5/api/evennia.server.amp_client.html +++ b/docs/0.9.5/api/evennia.server.amp_client.html @@ -256,11 +256,11 @@ operation, as defined by the global variables in
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 9996f6a517..2ee23d5bbb 100644 --- a/docs/0.9.5/api/evennia.server.connection_wizard.html +++ b/docs/0.9.5/api/evennia.server.connection_wizard.html @@ -195,11 +195,11 @@ fails (and is expected to echo why if so).

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.server.deprecations.html b/docs/0.9.5/api/evennia.server.deprecations.html index b722e3c943..da96e29656 100644 --- a/docs/0.9.5/api/evennia.server.deprecations.html +++ b/docs/0.9.5/api/evennia.server.deprecations.html @@ -99,11 +99,11 @@ does not stop launch.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 fbd95d2e74..a08c02b67b 100644 --- a/docs/0.9.5/api/evennia.server.evennia_launcher.html +++ b/docs/0.9.5/api/evennia.server.evennia_launcher.html @@ -528,6 +528,35 @@ settings here. The result will be printed to the terminal.

    +
    +
    +evennia.server.evennia_launcher.run_custom_commands(option, *args)[source]
    +

    Inject a custom option into the evennia launcher command chain.

    +
    +
    Parameters
    +
      +
    • option (str) – Incoming option - the first argument after evennia on +the command line.

    • +
    • *args – All args will passed to a found callable.__dict__

    • +
    +
    +
    Returns
    +

    bool – If a custom command was found and handled the option.

    +
    +
    +

    Notes

    +

    Provide new commands in settings with

    +
    +

    CUSTOM_EVENNIA_LAUNCHER_COMMANDS = {“mycmd”: “path.to.callable”, …}

    +
    +

    The callable will be passed any *args given on the command line and is expected to +handle/validate the input correctly. Use like any other evennia command option on +in the terminal/console, for example:

    +
    +

    evennia mycmd foo bar

    +
    +
    +
    evennia.server.evennia_launcher.run_menu()[source]
    @@ -573,11 +602,11 @@ settings here. The result will be printed to the terminal.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 42b5444a45..74df19398a 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 @@ -185,11 +185,11 @@ to this Protocol. The connection has been closed.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 76f144f5cf..84523e71c5 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 @@ -80,11 +80,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 37cbd6aeeb..044b203a71 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 @@ -104,11 +104,11 @@ to the Evennia Game Index.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.server.html b/docs/0.9.5/api/evennia.server.html index 612bf5d285..d455c81a23 100644 --- a/docs/0.9.5/api/evennia.server.html +++ b/docs/0.9.5/api/evennia.server.html @@ -142,11 +142,11 @@ to connect to the game.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 e9a5cad34e..ea055d9795 100644 --- a/docs/0.9.5/api/evennia.server.initial_setup.html +++ b/docs/0.9.5/api/evennia.server.initial_setup.html @@ -41,28 +41,16 @@

    evennia.server.initial_setup

    -

    This module handles initial database propagation, which is only run the first -time the game starts. It will create some default channels, objects, and -other things.

    +

    This module handles initial database propagation, which is only run the first time the game starts. +It will create some default objects (notably give #1 its evennia-specific properties, and create the +Limbo room). It will also hooks, and then perform an initial restart.

    Everything starts at handle_setup()

    -
    -
    -evennia.server.initial_setup.get_god_account()[source]
    -

    Creates the god user and don’t take no for an answer.

    -
    -
    evennia.server.initial_setup.create_objects()[source]

    Creates the #1 account and Limbo room.

    -
    -
    -evennia.server.initial_setup.create_channels()[source]
    -

    Creates some sensible default channels.

    -
    -
    evennia.server.initial_setup.at_initial_setup()[source]
    @@ -89,14 +77,14 @@ also checks so the warm-reset mechanism works as it should.

    -evennia.server.initial_setup.handle_setup(last_step)[source]
    +evennia.server.initial_setup.handle_setup(last_step=None)[source]

    Main logic for the module. It allows for restarting the initialization at any point if one of the modules should crash.

    Parameters
    -

    last_step (int) – The last stored successful step, for starting -over on errors. If < 0, initialization has finished and no -steps need to be redone.

    +

    last_step (str, None) – The last stored successful step, for starting +over on errors. None if starting from scratch. If this is ‘done’, +the function will exit immediately.

    @@ -134,11 +122,11 @@ steps need to be redone.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.server.inputfuncs.html b/docs/0.9.5/api/evennia.server.inputfuncs.html index 3ae3747bc9..76639fc92e 100644 --- a/docs/0.9.5/api/evennia.server.inputfuncs.html +++ b/docs/0.9.5/api/evennia.server.inputfuncs.html @@ -125,6 +125,7 @@ This will be integrated into the session settings

  • inputdebug (bool) – Debug input functions

  • nocolor (bool) – Strip color

  • raw (bool) – Turn off parsing

  • +
  • localecho (bool) – Turn on server-side echo (for clients not supporting it)

  • @@ -276,6 +277,7 @@ This will be integrated into the session settings

  • inputdebug (bool) – Debug input functions

  • nocolor (bool) – Strip color

  • raw (bool) – Turn off parsing

  • +
  • localecho (bool) – Turn on server-side echo (for clients not supporting it)

  • @@ -304,6 +306,7 @@ This will be integrated into the session settings

  • inputdebug (bool) – Debug input functions

  • nocolor (bool) – Strip color

  • raw (bool) – Turn off parsing

  • +
  • localecho (bool) – Turn on server-side echo (for clients not supporting it)

  • @@ -335,9 +338,16 @@ This will be integrated into the session settings

    -evennia.server.inputfuncs.external_discord_hello(session, *args, **kwargs)[source]
    -

    Sent by Mudlet as a greeting; added here to avoid -logging a missing inputfunc for it.

    +evennia.server.inputfuncs.external_discord_hello(session, *args, **kwargs) +

    Dummy used to swallow missing-inputfunc errors for +common clients.

    +
    + +
    +
    +evennia.server.inputfuncs.client_gui(session, *args, **kwargs)
    +

    Dummy used to swallow missing-inputfunc errors for +common clients.

    @@ -373,11 +383,11 @@ logging a missing inputfunc for it.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.server.manager.html b/docs/0.9.5/api/evennia.server.manager.html index dd0f93e26e..dd35bc6ae2 100644 --- a/docs/0.9.5/api/evennia.server.manager.html +++ b/docs/0.9.5/api/evennia.server.manager.html @@ -112,11 +112,11 @@ value (str): If key was given, this is the stored value, or

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.server.models.html b/docs/0.9.5/api/evennia.server.models.html index 131c55b02c..4a1994a7ec 100644 --- a/docs/0.9.5/api/evennia.server.models.html +++ b/docs/0.9.5/api/evennia.server.models.html @@ -166,11 +166,11 @@ object the first time, the query is executed.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 c9e691b95f..2b7db46567 100644 --- a/docs/0.9.5/api/evennia.server.portal.amp.html +++ b/docs/0.9.5/api/evennia.server.portal.amp.html @@ -438,13 +438,13 @@ that way.

    -errback(e, info)[source]
    +errback(err, info)[source]

    Error callback. Handles errors to avoid dropping connections on server tracebacks.

    Parameters
      -
    • e (Failure) – Deferred error instance.

    • +
    • err (Failure) – Deferred error instance.

    • info (str) – Error string.

    @@ -549,11 +549,11 @@ function call

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 0f1eed2f5b..92cf8057c9 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 @@ -297,11 +297,11 @@ global variables in evennia/server/amp.py.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 9bdf2b7519..8b42baf210 100644 --- a/docs/0.9.5/api/evennia.server.portal.grapevine.html +++ b/docs/0.9.5/api/evennia.server.portal.grapevine.html @@ -294,11 +294,11 @@ disconnect this protocol.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.server.portal.html b/docs/0.9.5/api/evennia.server.portal.html index f182d403a8..9c5f1305f0 100644 --- a/docs/0.9.5/api/evennia.server.portal.html +++ b/docs/0.9.5/api/evennia.server.portal.html @@ -99,11 +99,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 dc903397da..49da471abd 100644 --- a/docs/0.9.5/api/evennia.server.portal.irc.html +++ b/docs/0.9.5/api/evennia.server.portal.irc.html @@ -410,11 +410,11 @@ sessions.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 d4a0bbca71..49fd4ae958 100644 --- a/docs/0.9.5/api/evennia.server.portal.mccp.html +++ b/docs/0.9.5/api/evennia.server.portal.mccp.html @@ -144,11 +144,11 @@ creating a zlib compression stream.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 23c118ce25..101585d0b5 100644 --- a/docs/0.9.5/api/evennia.server.portal.mssp.html +++ b/docs/0.9.5/api/evennia.server.portal.mssp.html @@ -145,11 +145,11 @@ operation.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 fc5761aab2..fee3005711 100644 --- a/docs/0.9.5/api/evennia.server.portal.mxp.html +++ b/docs/0.9.5/api/evennia.server.portal.mxp.html @@ -137,11 +137,11 @@ that supports it (mudlet, zmud, mushclient are a few)

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 63d59df04f..dedde63cfc 100644 --- a/docs/0.9.5/api/evennia.server.portal.naws.html +++ b/docs/0.9.5/api/evennia.server.portal.naws.html @@ -133,11 +133,11 @@ operation.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 aa0c0fd5f0..a30cef5fb8 100644 --- a/docs/0.9.5/api/evennia.server.portal.portal.html +++ b/docs/0.9.5/api/evennia.server.portal.portal.html @@ -132,11 +132,11 @@ case it always needs to be restarted manually.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 967911b5dc..6637a657f1 100644 --- a/docs/0.9.5/api/evennia.server.portal.portalsessionhandler.html +++ b/docs/0.9.5/api/evennia.server.portal.portalsessionhandler.html @@ -41,7 +41,7 @@

    evennia.server.portal.portalsessionhandler

    -

    Sessionhandler for portal sessions

    +

    Sessionhandler for portal sessions.

    class evennia.server.portal.portalsessionhandler.PortalSessionHandler(*args, **kwargs)[source]
    @@ -65,6 +65,17 @@ 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]
    @@ -322,11 +333,11 @@ method exixts, it sends the data to a method send_default.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 30aaa63b64..0f5683d0ed 100644 --- a/docs/0.9.5/api/evennia.server.portal.rss.html +++ b/docs/0.9.5/api/evennia.server.portal.rss.html @@ -174,11 +174,11 @@ on slow connections.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 c160034c2a..dca0956141 100644 --- a/docs/0.9.5/api/evennia.server.portal.ssh.html +++ b/docs/0.9.5/api/evennia.server.portal.ssh.html @@ -227,18 +227,18 @@ reaching this point.

    are considered.

    Keyword Arguments
    -

    options (dict) –

    Send-option flags:

    +

    options (dict) –

    Send-option flags (booleans)

      -
    • 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,11 +395,11 @@ do not exist, the keypair is created.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 a3ad0d519d..220192ca87 100644 --- a/docs/0.9.5/api/evennia.server.portal.ssl.html +++ b/docs/0.9.5/api/evennia.server.portal.ssl.html @@ -115,11 +115,11 @@ server-side.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 3f95439e10..9e4a946c2a 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 @@ -123,11 +123,11 @@ protocol to set it up.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 824058c18f..69d6354f15 100644 --- a/docs/0.9.5/api/evennia.server.portal.telnet.html +++ b/docs/0.9.5/api/evennia.server.portal.telnet.html @@ -49,7 +49,7 @@ sessions etc.

    class evennia.server.portal.telnet.TelnetServerFactory[source]

    Bases: twisted.internet.protocol.ServerFactory

    -

    This is only to name this better in logs

    +

    This exists only to name this better in logs.

    noisy = False
    @@ -95,7 +95,7 @@ of incoming data.

    Allow to toggle the NOP keepalive for those sad clients that can’t even handle a NOP instruction. This is turned off by the protocol_flag NOPKEEPALIVE (settable e.g. by the default -@option command).

    +option command).

    @@ -203,7 +203,7 @@ directly.

    disconnect(reason='')[source]
    -

    generic hook for the engine to call in order to +

    Generic hook for the engine to call in order to disconnect this protocol.

    Parameters
    @@ -244,19 +244,25 @@ 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!

      +
      +
      +

    @@ -310,11 +316,11 @@ Note that it must be actively turned back on again!

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 a36bcd802c..0ff8caf28e 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 @@ -49,19 +49,15 @@ 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.


    @@ -141,17 +137,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.

    @@ -174,16 +170,18 @@ IRE games use, supposedly, and what clients appear to have adopted). A cmdname without Package will end up in the Core package, while Core package names will be stripped on the Evennia side.

    -
    [cmd.name, [], {}]          -> Cmd.Name
    -[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}]
    +
    [cmd_name, [], {}]          -> Cmd.Name
    +[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}]
     
    +

    For more flexibility with certain clients, if cmd_name is capitalized, +Evennia will leave its current capitalization (So CMD_nAmE would be sent +as CMD.nAmE but cMD_Name would be Cmd.Name)

    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
    @@ -291,11 +289,11 @@ We assume the structure is valid JSON.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 3ab7a3db83..0ba9662321 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 @@ -126,11 +126,11 @@ server-side.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 b9d5668cad..81687b40ce 100644 --- a/docs/0.9.5/api/evennia.server.portal.tests.html +++ b/docs/0.9.5/api/evennia.server.portal.tests.html @@ -182,11 +182,11 @@ its inverse gives the correct string.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 df044980d0..867c096e1b 100644 --- a/docs/0.9.5/api/evennia.server.portal.ttype.html +++ b/docs/0.9.5/api/evennia.server.portal.ttype.html @@ -132,11 +132,11 @@ stored on protocol.protocol_flags under the TTYPE key.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 e721e92436..989b385193 100644 --- a/docs/0.9.5/api/evennia.server.portal.webclient.html +++ b/docs/0.9.5/api/evennia.server.portal.webclient.html @@ -57,7 +57,7 @@ from the command line and interprets it as an Evennia Command: **[“text”, [

    Implements the server-side of the Websocket connection.

    -nonce = None
    +nonce = 0
    @@ -249,11 +249,11 @@ client instead.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 afb06bbc5a..12d3c70070 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 @@ -124,6 +124,20 @@ implement default like this:

    +
    +
    +get_browserstr(request)[source]
    +

    Get browser-string out of the request.

    +
    +
    Parameters
    +

    request (Request) – Incoming request object.

    +
    +
    Returns
    +

    str – The browser name.

    +
    +
    +
    +
    at_login()[source]
    @@ -173,6 +187,11 @@ mode operation (at startup)

    mode_keepalive(request)[source]

    This is called by render_POST when the client is replying to the keepalive.

    +
    +
    Parameters
    +

    request (Request) – Incoming request.

    +
    +
    @@ -374,11 +393,11 @@ client instead.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 57a8bc166e..1200a8eb0d 100644 --- a/docs/0.9.5/api/evennia.server.profiling.dummyrunner.html +++ b/docs/0.9.5/api/evennia.server.profiling.dummyrunner.html @@ -69,13 +69,83 @@ change which actions by adding a path to

    in your settings. See utils.dummyrunner_actions.py for instructions on how to define this module.

    +
    +
    +class evennia.server.profiling.dummyrunner.CmdDummyRunnerEchoResponse(**kwargs)[source]
    +

    Bases: evennia.commands.command.Command

    +

    Dummyrunner command measuring the round-about response time +from sending to receiving a result.

    +
    +
    Usage:

    dummyrunner_echo_response <timestamp>

    +
    +
    Responds with

    dummyrunner_echo_response:<timestamp>,<current_time>

    +
    +
    +

    The dummyrunner will send this and then compare the send time +with the receive time on both ends.

    +
    +
    +key = 'dummyrunner_echo_response'
    +
    + +
    +
    +func()[source]
    +

    This is the actual executing part of the command. It is +called directly after self.parse(). See the docstring of this +module for which object properties are available (beyond those +set in self.parse())

    +
    + +
    +
    +aliases = []
    +
    + +
    +
    +help_category = 'general'
    +
    + +
    +
    +lock_storage = 'cmd:all();'
    +
    + +
    +
    +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'dummyrunner_echo_response', 'no_prefix': ' ', 'tags': '', 'text': '\n Dummyrunner command measuring the round-about response time\n from sending to receiving a result.\n\n Usage:\n dummyrunner_echo_response <timestamp>\n\n Responds with\n dummyrunner_echo_response:<timestamp>,<current_time>\n\n The dummyrunner will send this and then compare the send time\n with the receive time on both ends.\n\n '}
    +
    + +
    + +
    +
    +class evennia.server.profiling.dummyrunner.DummyRunnerCmdSet(cmdsetobj=None, key=None)[source]
    +

    Bases: evennia.commands.cmdset.CmdSet

    +

    Dummyrunner injected 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.server.profiling.dummyrunner.DummyRunnerCmdSet'
    +
    + +
    +
    evennia.server.profiling.dummyrunner.idcounter()[source]

    Makes unique ids.

    Returns
    -

    count (int) – A globally unique counter.

    +

    str – A globally unique id.

    @@ -112,6 +182,11 @@ for instructions on how to define this module.

    Handles connection to a running Evennia server, mimicking a real account by sending commands on a timer.

    +
    +
    +report(text, clientkey)[source]
    +
    +
    connectionMade()[source]
    @@ -182,13 +257,28 @@ all “intelligence” of the dummy client.

    class evennia.server.profiling.dummyrunner.DummyFactory(actions)[source]
    -

    Bases: twisted.internet.protocol.ClientFactory

    +

    Bases: twisted.internet.protocol.ReconnectingClientFactory

    protocol

    alias of DummyClient

    +
    +
    +initialDelay = 1
    +
    + +
    +
    +maxDelay = 1
    +
    + +
    +
    +noisy = False
    +
    +
    __init__(actions)[source]
    @@ -241,11 +331,11 @@ all “intelligence” of the dummy client.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 0eb97c3a25..30966a0d63 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 @@ -45,51 +45,48 @@

    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’. 1 is a good start.

    • +
    • CHANCE_OF_ACTION - chance 0-1 of action happening. Default is 0.5.

    • +
    • CHANCE_OF_LOGIN - chance 0-1 of login happening. 0.01 is a good number.

    • +
    • 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 called when the dummyrunner disconnects from the server and should -thus issue a logout command. The other entries are tuples (chance, +thus issue a logout command. The other entries are tuples (chance, func). They are picked randomly, their commonality based on the cumulative chance given (the chance is normalized between all options -so if will still work also if the given chances don’t add up to 1). -Since each function can return a list of game-command strings, each -function may result in multiple operations.

    +so if will still work also if the given chances don’t add up to 1).

    +

    The PROFILE variable define pre-made ACTION tuples for convenience.

    +

    Each function should return an iterable of one or more command-call +strings (like “look here”), so each can group multiple command operations.

    An action-function is called with a “client” argument which is a -reference to the dummy client currently performing the action. It -returns a string or a list of command strings to execute. Use the -client object for optionally saving data between actions.

    +reference to the dummy client currently performing the action.

    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]
    @@ -174,6 +171,16 @@ commands (such as creating an account and logging in).

    move through south exit if available

    +
    +
    +evennia.server.profiling.dummyrunner_settings.c_measure_lag(client)[source]
    +

    Special dummyrunner command, injected in c_login. It measures +response time. Including this in the ACTION tuple will give more +dummyrunner output about just how fast commands are being processed.

    +

    The dummyrunner will treat this special and inject the +{timestamp} just before sending.

    +
    + @@ -207,11 +214,11 @@ commands (such as creating an account and logging in).

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.server.profiling.html b/docs/0.9.5/api/evennia.server.profiling.html index 504f4fd9c8..ae5f5cda90 100644 --- a/docs/0.9.5/api/evennia.server.profiling.html +++ b/docs/0.9.5/api/evennia.server.profiling.html @@ -85,11 +85,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 122ddb2734..31596815e4 100644 --- a/docs/0.9.5/api/evennia.server.profiling.memplot.html +++ b/docs/0.9.5/api/evennia.server.profiling.memplot.html @@ -119,11 +119,11 @@ the script will append to this file if it already exists.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 bad5bb4316..872b397e80 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 @@ -81,11 +81,11 @@ servers!

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 44ca29d9a1..c656eace24 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 @@ -83,11 +83,11 @@ to setup the environment to test.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 40e925b480..a241458547 100644 --- a/docs/0.9.5/api/evennia.server.profiling.tests.html +++ b/docs/0.9.5/api/evennia.server.profiling.tests.html @@ -177,11 +177,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 f6f1fc4324..52748765f5 100644 --- a/docs/0.9.5/api/evennia.server.profiling.timetrace.html +++ b/docs/0.9.5/api/evennia.server.profiling.timetrace.html @@ -92,11 +92,11 @@ This message will get attached time stamp.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.server.server.html b/docs/0.9.5/api/evennia.server.server.html index a2bac9a82b..0122067599 100644 --- a/docs/0.9.5/api/evennia.server.server.html +++ b/docs/0.9.5/api/evennia.server.server.html @@ -41,11 +41,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]
    @@ -84,7 +84,13 @@ already existing objects.

    to the portal has been established. This attempts to run the initial_setup script of the server. It returns if this is not the first time the server starts. -Once finished the last_initial_setup_step is set to -1.

    +Once finished the last_initial_setup_step is set to ‘done’

    +
    + +
    +
    +create_default_channels()[source]
    +

    check so default channels exist on every restart, create if not.

    @@ -102,20 +108,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.

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

    • -
    • 'reload' (-) – server restarts, no “persistent” scripts +

      +
      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 +

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

      • -
      • - 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.

      • +
      • ‘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.

      +
    @@ -152,7 +158,7 @@ of it is fore a reload, reset or shutdown.

    after reconnecting.

    Parameters
    -

    mode (str) – One of reload, reset or shutdown.

    +

    mode (str) – One of ‘reload’, ‘reset’ or ‘shutdown’.

    @@ -211,11 +217,11 @@ shutdown or a reset.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.server.serversession.html b/docs/0.9.5/api/evennia.server.serversession.html index 88bc8d6e1f..0c20e6ea75 100644 --- a/docs/0.9.5/api/evennia.server.serversession.html +++ b/docs/0.9.5/api/evennia.server.serversession.html @@ -46,126 +46,6 @@ 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]
    @@ -186,6 +66,11 @@ through their session.

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

    Update the protocol_flags and sync them with Portal.

    Keyword Arguments
    -

    any – A key:value pair to set in the +

    protocol_flag (any) – A key and value to set in the protocol_flags dictionary.

    @@ -331,7 +216,7 @@ for the protocol(s).

    the respective inputfuncs.

    Keyword Arguments
    -

    any – Incoming data from protocol on +

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

    @@ -348,12 +233,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.

    • -
    • kwargs (str or tuple) – Send-commands identified +

      text (str) – String input.

      +
      +
      Keyword Arguments
      +

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

    • -
    +for the protocol(s).

    @@ -497,11 +382,11 @@ property, e.g. obj.ndb.attr = value etc.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.server.session.html b/docs/0.9.5/api/evennia.server.session.html index e18dd60ecf..71f34c68e5 100644 --- a/docs/0.9.5/api/evennia.server.session.html +++ b/docs/0.9.5/api/evennia.server.session.html @@ -187,11 +187,11 @@ should overload this to format/handle the outgoing data as needed.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -199,7 +199,6 @@ 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 b803173cbb..2848cb1f99 100644 --- a/docs/0.9.5/api/evennia.server.sessionhandler.html +++ b/docs/0.9.5/api/evennia.server.sessionhandler.html @@ -44,8 +44,7 @@

    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.

        @@ -59,7 +58,6 @@ handle network communication but holds no game info.

      -
    class evennia.server.sessionhandler.DummySession[source]
    @@ -118,35 +116,27 @@ sessions in store.

    clean_senddata(session, kwargs)[source]
    -

    Clean up data for sending across the AMP wire. Also apply INLINEFUNCS.

    +

    Clean up data for sending across the AMP wire. Also apply the +FuncParser using callables from settings.FUNCPARSER_OUTGOING_MESSAGES_MODULES.

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

    • -
    • 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}]
      -
      -
      -

    • +
    • kwargs (dict) – 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 -send-safe entities (strings or numbers), and inlinefuncs have been +

    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 funcparser parsing has been applied.

    -

    -
    -
    @@ -155,13 +145,10 @@ applied.

    class evennia.server.sessionhandler.ServerSessionHandler(*args, **kwargs)[source]

    Bases: evennia.server.sessionhandler.SessionHandler

    -

    This object holds the stack of sessions active in the game at -any time.

    -

    A session register with the handler in two steps, first by -registering itself with the connect() method. This indicates an -non-authenticated session. Whenever the session is authenticated -the session together with the related account is sent to the login() -method.

    +

    This object holds the stack of sessions active in the game at any time.

    +

    A session register with the handler in two steps, first by registering itself with the connect() +method. This indicates an non-authenticated session. Whenever the session is authenticated the +session together with the related account is sent to the login() method.

    __init__(*args, **kwargs)[source]
    @@ -281,9 +268,8 @@ itself down)

    login(session, account, force=False, testmode=False)[source]
    -

    Log in the previously unloggedin session and the account we by -now should know is connected to it. After this point we assume -the session to be logged in one way or another.

    +

    Log in the previously unloggedin session and the account we by now should know is connected +to it. After this point we assume the session to be logged in one way or another.

    Parameters
      @@ -465,7 +451,7 @@ object.

    Returns.
    -
    sessions (Session or list): Can be more than one of Object is controlled by

    more than one Session (MULTISESSION_MODE > 1).

    +
    sessions (Session or list): Can be more than one of Object is controlled by more than

    one Session (MULTISESSION_MODE > 1).

    @@ -483,7 +469,7 @@ object.

    Returns.
    -
    sessions (Session or list): Can be more than one of Object is controlled by

    more than one Session (MULTISESSION_MODE > 1).

    +
    sessions (Session or list): Can be more than one of Object is controlled by more than

    one Session (MULTISESSION_MODE > 1).

    @@ -495,12 +481,13 @@ object.

    sessions_from_csessid(csessid)[source]

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

    -
    -
    Parameters
    -

    csessid (str) – The session hash.

    +
    +
    Args

    csessid (str): The session hash.

    -
    Returns
    -

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

    +
    +
    +
    Returns
    +

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

    @@ -557,17 +544,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
    -

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

    +

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

    @@ -607,11 +594,11 @@ the form {“commandname”: ((args), {kwargs}),…}

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.server.signals.html b/docs/0.9.5/api/evennia.server.signals.html index 9cc3fe4bd7..d6972f89b4 100644 --- a/docs/0.9.5/api/evennia.server.signals.html +++ b/docs/0.9.5/api/evennia.server.signals.html @@ -41,22 +41,20 @@

    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 in the following format:

    +

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

    +

    Callbacks must be on 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.

    @@ -90,11 +88,11 @@ that may be in high demand.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.server.throttle.html b/docs/0.9.5/api/evennia.server.throttle.html index 95c2202b48..f7fc336574 100644 --- a/docs/0.9.5/api/evennia.server.throttle.html +++ b/docs/0.9.5/api/evennia.server.throttle.html @@ -50,8 +50,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 removes sparse keys when -no recent failures have been recorded.

    +with length limits instead of open-ended lists, and uses native Django +caches for automatic key eviction and persistence configurability.

    error_msg = 'Too many failed attempts; you must wait a few minutes before trying again.'
    @@ -64,7 +64,9 @@ no recent failures have been recorded.

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

    • +
    • name (str) – Name of this throttle.

    • +
    • limit (int) – Max number of failures before imposing limiter. If None, +the throttle is disabled.

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

    • cache_size (int) – Max number of attempts to record per IP within a @@ -75,6 +77,25 @@ 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]
    @@ -115,6 +136,41 @@ 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]
    @@ -171,11 +227,11 @@ fails recently.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.server.validators.html b/docs/0.9.5/api/evennia.server.validators.html index 4b61824ed0..c12a271a47 100644 --- a/docs/0.9.5/api/evennia.server.validators.html +++ b/docs/0.9.5/api/evennia.server.validators.html @@ -136,11 +136,11 @@ by this validator.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.server.webserver.html b/docs/0.9.5/api/evennia.server.webserver.html index a88f151b43..43143c620b 100644 --- a/docs/0.9.5/api/evennia.server.webserver.html +++ b/docs/0.9.5/api/evennia.server.webserver.html @@ -294,11 +294,11 @@ directory this path represents.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.settings_default.html b/docs/0.9.5/api/evennia.settings_default.html index 44ef6ba345..d122a8b83d 100644 --- a/docs/0.9.5/api/evennia.settings_default.html +++ b/docs/0.9.5/api/evennia.settings_default.html @@ -82,11 +82,11 @@ always be sure of what you have changed and what is default behaviour.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -94,7 +94,6 @@ 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 30c20917cb..d008341604 100644 --- a/docs/0.9.5/api/evennia.typeclasses.admin.html +++ b/docs/0.9.5/api/evennia.typeclasses.admin.html @@ -39,299 +39,8 @@
    -
    -

    evennia.typeclasses.admin

    -
    -
    -class evennia.typeclasses.admin.TagAdmin(model, admin_site)[source]
    -

    Bases: django.contrib.admin.options.ModelAdmin

    -

    A django Admin wrapper for Tags.

    -
    -
    -search_fields = ('db_key', 'db_category', 'db_tagtype')
    -
    - -
    -
    -list_display = ('db_key', 'db_category', 'db_tagtype', 'db_data')
    -
    - -
    -
    -fields = ('db_key', 'db_category', 'db_tagtype', 'db_data')
    -
    - -
    -
    -list_filter = ('db_tagtype',)
    -
    - -
    -
    -property media
    -
    - -
    - -
    -
    -class evennia.typeclasses.admin.TagForm(*args, **kwargs)[source]
    -

    Bases: django.forms.models.ModelForm

    -

    This form overrides the base behavior of the ModelForm that would be used for a -Tag-through-model. Since the through-models only have access to the foreignkeys of the Tag and -the Object that they’re attached to, we need to spoof the behavior of it being a form that would -correspond to its tag, or the creation of a tag. Instead of being saved, we’ll call to the -Object’s handler, which will handle the creation, change, or deletion of a tag for us, as well -as updating the handler’s cache so that all changes are instantly updated in-game.

    -
    -
    -class Meta[source]
    -

    Bases: object

    -
    -
    -fields = ('tag_key', 'tag_category', 'tag_data', 'tag_type')
    -
    - -
    - -
    -
    -__init__(*args, **kwargs)[source]
    -

    If we have a tag, then we’ll prepopulate our instance with the fields we’d expect it -to have based on the tag. tag_key, tag_category, tag_type, and tag_data all refer to -the corresponding tag fields. The initial data of the form fields will similarly be -populated.

    -
    - -
    -
    -save(commit=True)[source]
    -

    One thing we want to do here is the or None checks, because forms are saved with an empty -string rather than null from forms, usually, and the Handlers may handle empty strings -differently than None objects. So for consistency with how things are handled in game, -we’ll try to make sure that empty form fields will be None, rather than ‘’.

    -
    - -
    -
    -base_fields = {'tag_category': <django.forms.fields.CharField object>, 'tag_data': <django.forms.fields.CharField object>, 'tag_key': <django.forms.fields.CharField object>, 'tag_type': <django.forms.fields.CharField object>}
    -
    - -
    -
    -declared_fields = {'tag_category': <django.forms.fields.CharField object>, 'tag_data': <django.forms.fields.CharField object>, 'tag_key': <django.forms.fields.CharField object>, 'tag_type': <django.forms.fields.CharField object>}
    -
    - -
    -
    -property media
    -

    Return all media required to render the widgets on this form.

    -
    - -
    - -
    -
    -class evennia.typeclasses.admin.TagFormSet(data=None, files=None, instance=None, save_as_new=False, prefix=None, queryset=None, **kwargs)[source]
    -

    Bases: django.forms.models.BaseInlineFormSet

    -

    The Formset handles all the inline forms that are grouped together on the change page of the -corresponding object. All the tags will appear here, and we’ll save them by overriding the -formset’s save method. The forms will similarly spoof their save methods to return an instance -which hasn’t been saved to the database, but have the relevant fields filled out based on the -contents of the cleaned form. We’ll then use that to call to the handler of the corresponding -Object, where the handler is an AliasHandler, PermissionsHandler, or TagHandler, based on the -type of tag.

    -
    -
    -save(commit=True)[source]
    -

    Save model instances for every form, adding and changing instances -as necessary, and return the list of instances.

    -
    - -
    - -
    -
    -class evennia.typeclasses.admin.TagInline(parent_model, admin_site)[source]
    -

    Bases: django.contrib.admin.options.TabularInline

    -

    A handler for inline Tags. This class should be subclassed in the admin of your models, -and the ‘model’ and ‘related_field’ class attributes must be set. model should be the -through model (ObjectDB_db_tag’, for example), while related field should be the name -of the field on that through model which points to the model being used: ‘objectdb’, -‘msg’, ‘accountdb’, etc.

    -
    -
    -model = None
    -
    - -
    -
    -form
    -

    alias of TagForm

    -
    - -
    -
    -formset
    -

    alias of TagFormSet

    -
    - -
    -
    -related_field = None
    -
    - -
    -
    -extra = 0
    -
    - -
    -
    -get_formset(request, obj=None, **kwargs)[source]
    -

    get_formset has to return a class, but we need to make the class that we return -know about the related_field that we’ll use. Returning the class itself rather than -a proxy isn’t threadsafe, since it’d be the base class and would change if multiple -people used the admin at the same time

    -
    - -
    -
    -property media
    -
    - -
    - -
    -
    -class evennia.typeclasses.admin.AttributeForm(*args, **kwargs)[source]
    -

    Bases: django.forms.models.ModelForm

    -

    This form overrides the base behavior of the ModelForm that would be used for a Attribute-through-model. -Since the through-models only have access to the foreignkeys of the Attribute and the Object that they’re -attached to, we need to spoof the behavior of it being a form that would correspond to its Attribute, -or the creation of an Attribute. Instead of being saved, we’ll call to the Object’s handler, which will handle -the creation, change, or deletion of an Attribute for us, as well as updating the handler’s cache so that all -changes are instantly updated in-game.

    -
    -
    -class Meta[source]
    -

    Bases: object

    -
    -
    -fields = ('attr_key', 'attr_value', 'attr_category', 'attr_lockstring', 'attr_type')
    -
    - -
    - -
    -
    -__init__(*args, **kwargs)[source]
    -

    If we have an Attribute, then we’ll prepopulate our instance with the fields we’d expect it -to have based on the Attribute. attr_key, attr_category, attr_value, attr_type, -and attr_lockstring all refer to the corresponding Attribute fields. The initial data of the form fields will -similarly be populated.

    -
    - -
    -
    -save(commit=True)[source]
    -

    One thing we want to do here is the or None checks, because forms are saved with an empty -string rather than null from forms, usually, and the Handlers may handle empty strings -differently than None objects. So for consistency with how things are handled in game, -we’ll try to make sure that empty form fields will be None, rather than ‘’.

    -
    - -
    -
    -clean_attr_value()[source]
    -

    Prevent certain data-types from being cleaned due to literal_eval -failing on them. Otherwise they will be turned into str.

    -
    - -
    -
    -base_fields = {'attr_category': <django.forms.fields.CharField object>, 'attr_key': <django.forms.fields.CharField object>, 'attr_lockstring': <django.forms.fields.CharField object>, 'attr_type': <django.forms.fields.CharField object>, 'attr_value': <evennia.utils.picklefield.PickledFormField object>}
    -
    - -
    -
    -declared_fields = {'attr_category': <django.forms.fields.CharField object>, 'attr_key': <django.forms.fields.CharField object>, 'attr_lockstring': <django.forms.fields.CharField object>, 'attr_type': <django.forms.fields.CharField object>, 'attr_value': <evennia.utils.picklefield.PickledFormField object>}
    -
    - -
    -
    -property media
    -

    Return all media required to render the widgets on this form.

    -
    - -
    - -
    -
    -class evennia.typeclasses.admin.AttributeFormSet(data=None, files=None, instance=None, save_as_new=False, prefix=None, queryset=None, **kwargs)[source]
    -

    Bases: django.forms.models.BaseInlineFormSet

    -

    Attribute version of TagFormSet, as above.

    -
    -
    -save(commit=True)[source]
    -

    Save model instances for every form, adding and changing instances -as necessary, and return the list of instances.

    -
    - -
    - -
    -
    -class evennia.typeclasses.admin.AttributeInline(parent_model, admin_site)[source]
    -

    Bases: django.contrib.admin.options.TabularInline

    -

    A handler for inline Attributes. This class should be subclassed in the admin of your models, -and the ‘model’ and ‘related_field’ class attributes must be set. model should be the -through model (ObjectDB_db_tag’, for example), while related field should be the name -of the field on that through model which points to the model being used: ‘objectdb’, -‘msg’, ‘accountdb’, etc.

    -
    -
    -model = None
    -
    - -
    -
    -form
    -

    alias of AttributeForm

    -
    - -
    -
    -formset
    -

    alias of AttributeFormSet

    -
    - -
    -
    -related_field = None
    -
    - -
    -
    -extra = 0
    -
    - -
    -
    -get_formset(request, obj=None, **kwargs)[source]
    -

    get_formset has to return a class, but we need to make the class that we return -know about the related_field that we’ll use. Returning the class itself rather than -a proxy isn’t threadsafe, since it’d be the base class and would change if multiple -people used the admin at the same time

    -
    - -
    -
    -property media
    -
    - -
    - +
    +

    evennia.typeclasses.admin

    @@ -365,11 +74,11 @@ people used the admin at the same time

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.typeclasses.attributes.html b/docs/0.9.5/api/evennia.typeclasses.attributes.html index 8cb4247e3f..39dae17fed 100644 --- a/docs/0.9.5/api/evennia.typeclasses.attributes.html +++ b/docs/0.9.5/api/evennia.typeclasses.attributes.html @@ -47,9 +47,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.Attribute(*args, **kwargs)[source]
    -

    Bases: evennia.utils.idmapper.models.SharedMemoryModel

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

    Bases: object

    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 @@ -84,6 +84,169 @@ 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.AttributeProperty(default=None, category=None, strattr=False, lockstring='', autocreate=False)[source]
    +

    Bases: object

    +

    Attribute property descriptor. Allows for specifying Attributes as Django-like ‘fields’ +on the class level. Note that while one can set a lock on the Attribute, +there is no way to check said lock when accessing via the property - use +the full AttributeHandler if you need to do access checks.

    +

    Example:

    +
    class Character(DefaultCharacter):
    +    foo = AttributeProperty(default="Bar")
    +
    +
    +
    +
    +attrhandler_name = 'attributes'
    +
    + +
    +
    +__init__(default=None, category=None, strattr=False, lockstring='', autocreate=False)[source]
    +

    Initialize an Attribute as a property descriptor.

    +
    +
    Keyword Arguments
    +
      +
    • default (any) – A default value if the attr is not set.

    • +
    • category (str) – The attribute’s category. If unset, use class default.

    • +
    • strattr (bool) – If set, this Attribute must be a simple string, and will be +stored more efficiently.

    • +
    • lockstring (str) – This is not itself useful with the property, but only if +using the full AttributeHandler.get(accessing_obj=…) to access the +Attribute.

    • +
    • autocreate (bool) – If an un-found Attr should lead to auto-creating the +Attribute (with the default value). If False, the property will +return the default value until it has been explicitly set. This means +less database accesses, but also means the property will have no +corresponding Attribute if wanting to access it directly via the +AttributeHandler (it will also not show up in examine).

    • +
    +
    +
    +
    + +
    + +
    +
    +class evennia.typeclasses.attributes.NAttributeProperty(default=None, category=None, strattr=False, lockstring='', autocreate=False)[source]
    +

    Bases: evennia.typeclasses.attributes.AttributeProperty

    +

    NAttribute property descriptor. Allows for specifying NAttributes as Django-like ‘fields’ +on the class level.

    +

    Example:

    +
    class Character(DefaultCharacter):
    +    foo = NAttributeProperty(default="Bar")
    +
    +
    +
    +
    +attrhandler_name = 'nattributes'
    +
    + +
    + +
    +
    +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
    @@ -140,41 +303,6 @@ 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
    @@ -189,29 +317,6 @@ 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
    @@ -240,6 +345,18 @@ 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
    @@ -256,6 +373,12 @@ 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)
    @@ -273,6 +396,18 @@ 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
    @@ -310,6 +445,12 @@ instances.

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

    +
    +
    +property strvalue
    +

    A wrapper for getting database field db_strvalue.

    +
    +
    typename = 'SharedMemoryModelBase'
    @@ -317,21 +458,545 @@ 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)[source]
    +class evennia.typeclasses.attributes.AttributeHandler(obj, backend_class)[source]

    Bases: object

    Handler for adding Attributes to the object.

    -__init__(obj)[source]
    -

    Initialize handler.

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

    Reset cache from the outside.

    +__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.

    +
    +
    @@ -370,11 +1035,11 @@ the return is a list of booleans.

  • key (str or list, optional) – the attribute identifier or multiple attributes to get. if a list of keys, the method will return a list.

  • -
  • category (str, optional) – the category within which to -retrieve attribute(s).

  • default (any, optional) – The value to return if an Attribute was not defined. If set, it will be returned in a one-item list.

  • +
  • category (str, optional) – the category within which to +retrieve attribute(s).

  • return_obj (bool, optional) – If set, the return is not the value of the Attribute but the Attribute object itself.

  • strattr (bool, optional) – Return the strvalue field of @@ -388,7 +1053,8 @@ permission lock will be checked before returning each looked-after Attribute.

  • default_access (bool, optional) – If no attrread lock is set on object, this determines if the lock should then be passed or not.

  • -
  • return_list (bool, optional) –

  • +
  • return_list (bool, optional) – Always return a list, also if there is only +one or zero matches found.

  • Returns
    @@ -446,14 +1112,12 @@ 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
    @@ -552,6 +1216,34 @@ 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
    +
    +
    @@ -562,30 +1254,45 @@ Attributes has no lock of type attrread defined on them.

    -evennia.typeclasses.attributes.initialize_nick_templates(in_template, out_template)[source]
    +evennia.typeclasses.attributes.initialize_nick_templates(pattern, replacement, pattern_is_regex=False)[source]

    Initialize the nick templates for matching and remapping a string.

    Parameters
      -
    • 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.

    • +
    • pattern (str) – The pattern to be used for nick recognition. This will +be parsed for shell patterns into a regex, unless pattern_is_regex +is True, in which case it must be an already valid regex string. In +this case, instead of $N, numbered arguments must instead be given +as matching groups named as argN, such as (?P<arg1>.+?).

    • +
    • replacement (str) – The template to be used to replace the string +matched by the pattern. This can contain $N markers and is never +parsed into a regex.

    • +
    • pattern_is_regex (bool) – If set, pattern is a full regex string +instead of containing shell patterns.

    Returns
    -

    (regex, str)

    +

    regex, template (str)

    -
    Regex to match against strings and a template

    Template with markers {arg1}, {arg2}, etc for -replacement using the standard .format method.

    +
    Regex to match against strings and template

    with markers **{arg1}, {arg2}**, etc for replacement using the standard +.format method.

    Raises
    -

    attributes.NickTemplateInvalid – If the in/out template does not have a matching -number of $args.

    +
      +
    • evennia.typecalasses.attributes.NickTemplateInvalid – If the in/out

    • +
    • template does not have a matching number of $args.

    • +
    +

    Examples

    +
      +
    • pattern (shell syntax): “grin $1”

    • +
    • pattern (regex): “grin (?P<arg1.+?>)”

    • +
    • replacement: “emote gives a wicked grin to $1”

    • +
    @@ -595,12 +1302,14 @@ number of $args.

    Parameters
      -
    • string (str) – The input string to processj

    • +
    • string (str) – The input string to process

    • template_regex (regex) – A template regex created with initialize_nick_template.

    • outtemplate (str) – The template to which to map the matches produced by the template_regex. This should have $1, $2, -etc to match the regex.

    • +etc to match the template-regex. Un-found $N-markers (possible if +the regex has optional matching groups) are replaced with empty +strings.

    @@ -616,7 +1325,14 @@ They also always use the strvalue fields for their data.

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

    Initialize handler.

    +

    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.

    +
    +
    @@ -661,25 +1377,51 @@ a string.

  • kwargs (any, optional) – These are passed on to AttributeHandler.get.

  • +
    Returns
    +

    str or tuple – The nick replacement string or nick tuple.

    +
    -add(key, replacement, category='inputline', **kwargs)[source]
    -

    Add a new nick.

    +add(pattern, replacement, category='inputline', pattern_is_regex=False, **kwargs)[source] +

    Add a new nick, a mapping pattern -> replacement.

    Parameters
      -
    • key (str) – A key (or template) for the nick to match for.

    • -
    • replacement (str) – The string (or template) to replace key with (the “nickname”).

    • +
    • pattern (str) – A pattern to match for. This will be parsed for +shell patterns using the fnmatch library and can contain +$N-markers to indicate the locations of arguments to catch. If +pattern_is_regex=True, this must instead be a valid regular +expression and the $N-markers must be named argN that matches +numbered regex groups (see examples).

    • +
    • replacement (str) – The string (or template) to replace key with +(the “nickname”). This may contain $N markers to indicate where to +place the argument-matches

    • category (str, optional) – the category within which to retrieve the nick. The “inputline” means replacing data sent by the user.

    • -
    • kwargs (any, optional) – These are passed on to AttributeHandler.get.

    • +
    • pattern_is_regex (bool) – If True, the pattern will be parsed as a +raw regex string. Instead of using $N markers in this string, one +then must mark numbered arguments as a named regex-groupd named argN. +For example, (?P<arg1>.+?) will match the behavior of using $1 +in the shell pattern.

    • +
    • **kwargs (any, optional) – These are passed on to AttributeHandler.get.

    +

    Notes

    +

    For most cases, the shell-pattern is much shorter and easier. The +regex pattern form can be useful for more complex matchings though, +for example in order to add optional arguments, such as with +(?P<argN>.*?).

    +

    Example

    +
      +
    • pattern (default shell syntax): “gr $1 at $2”

    • +
    • pattern (with pattern_is_regex=True): r”gr (?P<arg1>.+?) at (?P<arg2>.+?)”

    • +
    • replacement: “emote With a flourish, $1 grins at $2.”

    • +
    @@ -729,102 +1471,6 @@ 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.

    -
    -
    -

    -
    -
    -
    - -
    - @@ -858,11 +1504,11 @@ setting of return_tuples.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.typeclasses.html b/docs/0.9.5/api/evennia.typeclasses.html index d6689d651b..1963a324c3 100644 --- a/docs/0.9.5/api/evennia.typeclasses.html +++ b/docs/0.9.5/api/evennia.typeclasses.html @@ -89,11 +89,11 @@ Attribute and Tag models are defined along with their handlers.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -101,7 +101,6 @@ 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 7f9e511477..0735beb19d 100644 --- a/docs/0.9.5/api/evennia.typeclasses.managers.html +++ b/docs/0.9.5/api/evennia.typeclasses.managers.html @@ -52,15 +52,13 @@ 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 @@ -71,14 +69,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.

    • -
    • attrtype (str, optional) – An attribute-type to search for. +

    • attrype (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
    -

    attributes (list) – The matching Attributes.

    +

    list – The matching Attributes.

    @@ -170,7 +168,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

  • @@ -483,11 +481,11 @@ Mutually exclusive to include_children.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.typeclasses.models.html b/docs/0.9.5/api/evennia.typeclasses.models.html index 907bb4b41c..7fb28faf37 100644 --- a/docs/0.9.5/api/evennia.typeclasses.models.html +++ b/docs/0.9.5/api/evennia.typeclasses.models.html @@ -62,7 +62,6 @@ 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]
    @@ -70,18 +69,18 @@ these to create custom managers.

    Abstract Django model.

    This is the basis for a typed object. It also contains all the mechanics for managing connected attributes.

    -
    -
    The TypedObject has the following properties:

    key - main name -name - alias for key -typeclass_path - the path to the decorating typeclass -typeclass - auto-linked typeclass -date_created - time stamp of object creation -permissions - perm strings -dbref - #id of object -db - persistent attribute storage -ndb - non-persistent attribute storage

    -
    -
    +

    The TypedObject has the following properties:

    +
      +
    • key - main name

    • +
    • name - alias for key

    • +
    • typeclass_path - the path to the decorating typeclass

    • +
    • typeclass - auto-linked typeclass

    • +
    • date_created - time stamp of object creation

    • +
    • permissions - perm strings

    • +
    • dbref - #id of object

    • +
    • db - persistent attribute storage

    • +
    • ndb - non-persistent attribute storage

    • +
    db_key
    @@ -161,10 +160,10 @@ a class based on the db_typeclass_path database field rather than use the one in the model.

    Parameters
    -
      -
    • *args – Passed through to parent.

    • -
    • **kwargs – Passed through to parent.

    • -
    +

    through to parent. (Passed) –

    +
    +
    Keyword Arguments
    +

    through to parent. (Passed) –

    Notes

    @@ -285,6 +284,23 @@ If Django were to change this name internally, we need to update here (unlikely, but marking just in case).

    +
    +
    +classmethod search(query, **kwargs)[source]
    +

    Overridden by class children. This implements a common API.

    +
    +
    Parameters
    +
      +
    • query (str) – A search query.

    • +
    • **kwargs – Other search parameters.

    • +
    +
    +
    Returns
    +

    list – A list of 0, 1 or more matches, only of this typeclass.

    +
    +
    +
    +
    is_typeclass(typeclass, exact=False)[source]
    @@ -370,7 +386,7 @@ superuser lock bypass (be careful with this one).

    Keyword Arguments
    -

    kwargs (any) – Ignored, but is there to make the api +

    kwar (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.

    @@ -403,36 +419,30 @@ 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
    -

    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.

    +

    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

    +
    +
    @@ -519,141 +529,22 @@ 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.

    -
    - -
    -
    -web_get_detail_url()[source]
    -

    Returns the URI path for a View that allows users to view details for -this object.

    -
    -
    Returns
    -

    path (str) – URI path to object detail page, if defined.

    -
    -
    -

    Examples

    -
    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.

    -
    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.

    -
    - -
    -
    -web_get_puppet_url()[source]
    -

    Returns the URI path for a View that allows users to puppet a specific -object.

    -
    -
    Returns
    -

    path (str) – URI path to object puppet page, if defined.

    -
    -
    -

    Examples

    -
    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.

    -
    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.

    -
    - -
    -
    -web_get_update_url()[source]
    -

    Returns the URI path for a View that allows users to update this -object.

    -
    -
    Returns
    -

    path (str) – URI path to object update page, if defined.

    -
    -
    -

    Examples

    -
    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.

    -
    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.

    -
    - -
    -
    -web_get_delete_url()[source]
    -

    Returns the URI path for a View that allows users to delete this object.

    -
    -
    Returns
    -

    path (str) – URI path to object deletion page, if defined.

    -
    -
    -

    Examples

    -
    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.

    -
    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.

    -

    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.

    @@ -662,34 +553,6 @@ responsibility.

    A wrapper for getting database field db_date_created.

    -
    -
    -get_absolute_url()
    -

    Returns the URI path for a View that allows users to view details for -this object.

    -
    -
    Returns
    -

    path (str) – URI path to object detail page, if defined.

    -
    -
    -

    Examples

    -
    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.

    -
    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.

    -
    -
    get_next_by_db_date_created(*, field=<django.db.models.fields.DateTimeField: db_date_created>, is_next=True, **kwargs)
    @@ -722,6 +585,146 @@ developer’s responsibility.

    typename = 'SharedMemoryModelBase'
    +
    +
    +web_get_detail_url()[source]
    +

    Returns the URI path for a View that allows users to view details for +this object.

    +
    +
    Returns
    +

    path (str) – URI path to object detail page, if defined.

    +
    +
    +

    Examples

    +
    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.

    +
    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.

    +

    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.

    +
    + +
    +
    +web_get_puppet_url()[source]
    +

    Returns the URI path for a View that allows users to puppet a specific +object.

    +
    +
    Returns
    +

    str – URI path to object puppet page, if defined.

    +
    +
    +

    Examples

    +
    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.

    +
    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.

    +

    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.

    +
    + +
    +
    +web_get_update_url()[source]
    +

    Returns the URI path for a View that allows users to update this +object.

    +
    +
    Returns
    +

    str – URI path to object update page, if defined.

    +
    +
    +

    Examples

    +
    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.

    +
    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.

    +

    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.

    +
    + +
    +
    +web_get_delete_url()[source]
    +

    Returns the URI path for a View that allows users to delete this object.

    +
    +
    Returns
    +

    path (str) – URI path to object deletion page, if defined.

    +
    +
    +

    Examples

    +
    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.

    +
    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.

    +

    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.

    +
    + +
    +
    +get_absolute_url()
    +

    Returns the URI path for a View that allows users to view details for +this object.

    +
    +
    Returns
    +

    path (str) – URI path to object detail page, if defined.

    +
    +
    +

    Examples

    +
    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.

    +
    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.

    +

    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.

    +
    +
    @@ -757,11 +760,11 @@ developer’s responsibility.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.typeclasses.tags.html b/docs/0.9.5/api/evennia.typeclasses.tags.html index cd932ea095..94d148edcc 100644 --- a/docs/0.9.5/api/evennia.typeclasses.tags.html +++ b/docs/0.9.5/api/evennia.typeclasses.tags.html @@ -252,12 +252,12 @@ stored on and with a tagtype given by self.handlertype

    -add(tag=None, category=None, data=None)[source]
    +add(key=None, category=None, data=None)[source]

    Add a new tag to the handler.

    Parameters
      -
    • tag (str or list) – The name of the tag to add. If a list, +

    • key (str or list) – The name of the tag to add. If a list, add several Tags.

    • category (str, optional) – Category of Tag. None is the default category.

    • data (str, optional) – Info text about the tag(s) added. @@ -272,6 +272,33 @@ existing Tag object, this will be re-used and no new Tag will be created.

    +
    +
    +has(key=None, category=None, return_list=False)[source]
    +

    Checks if the given Tag (or list of Tags) exists on the object.

    +
    +
    Parameters
    +
      +
    • key (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]
    @@ -366,8 +393,9 @@ tuples [(key, category), …].

    Batch-add tags from a list of tuples.

    Parameters
    -

    *args (tuple or str) – Each argument should be a tagstr keys or tuple (keystr, category) or -(keystr, category, data). It’s possible to mix input types.

    +

    *args (tuple or str) – Each argument should be a tagstr keys or tuple +(keystr, category) or (keystr, category, data). It’s possible to mix input +types.

    Notes

    @@ -391,6 +419,51 @@ of a latter tuple with the same category).

    class evennia.typeclasses.tags.PermissionHandler(obj)[source]

    Bases: evennia.typeclasses.tags.TagHandler

    A handler for the Permission Tag type.

    +
    +
    +check(*permissions, require_all=False)[source]
    +

    Straight-up check the provided permission against this handler. The check will pass if

    +
      +
    • any/all given permission exists on the handler (depending on if require_all is set).

    • +
    • If handler sits on puppeted object and this is a hierarachical perm, the puppeting +Account’s permission will also be included in the check, prioritizing the Account’s perm +(this avoids escalation exploits by puppeting a too-high prio character)

    • +
    • a permission is also considered to exist on the handler, if it is lower than +a permission on the handler and this is a ‘hierarchical’ permission given +in settings.PERMISSION_HIERARCHY. Example: If the ‘Developer’ hierarchical +perm perm is set on the handler, and we check for the ‘Builder’ perm, the +check will pass.

    • +
    +
    +
    Parameters
    +
      +
    • *permissions (str) – Any number of permissions to check. By default, +the permission is passed if any of these (or higher, if a +hierarchical permission defined in settings.PERMISSION_HIERARCHY) +exists in the handler. Permissions are not case-sensitive.

    • +
    • require_all (bool) – If set, all provided permissions much pass +the check for the entire check to pass. By default only one +needs to pass.

    • +
    +
    +
    Returns
    +

    bool – If the provided permission(s) pass the check on this handler.

    +
    +
    +

    Example

    +
    +
    ::

    can_enter = obj.permissions.check(“Blacksmith”, “Builder”)

    +
    +
    +

    Notes

    +

    This works the same way as the perms lockfunc and could be +replicated with a lock check against the lockstring

    +
    +

    “locktype: perm(perm1) OR perm(perm2) OR …”

    +
    +

    (using AND for the require_all condition).

    +
    +
    @@ -426,11 +499,11 @@ of a latter tuple with the same category).

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.utils.ansi.html b/docs/0.9.5/api/evennia.utils.ansi.html index 73b923a26d..d1ec31f1fb 100644 --- a/docs/0.9.5/api/evennia.utils.ansi.html +++ b/docs/0.9.5/api/evennia.utils.ansi.html @@ -42,21 +42,65 @@

    evennia.utils.ansi

    ANSI - Gives colour to text.

    -

    Use the codes defined in ANSIPARSER in your text to apply colour to text -according to the ANSI standard.

    -

    Examples:

    +

    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

    • +
    "This is |rRed text|n and this is normal again."
     
    -

    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.

    +

    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"
    +
    +
    +
    class evennia.utils.ansi.ANSIParser[source]

    Bases: object

    -

    A class that parses ANSI markup to ANSI command sequences.

    -

    We also allow to escape colour codes by prepending with an extra |.

    +

    A class that parses ANSI markup +to ANSI command sequences

    +

    We also allow to escape colour codes +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')]
    @@ -92,6 +136,11 @@ are available by extending the ansi mapping.

    mxp_re = '\\|lc(.*?)\\|lt(.*?)\\|le'
    +
    +
    +mxp_url_re = '\\|lu(.*?)\\|lt(.*?)\\|le'
    +
    +
    brightbg_sub = re.compile('(?<!\\|)\\|\\[r|(?<!\\|)\\|\\[g|(?<!\\|)\\|\\[y|(?<!\\|)\\|\\[b|(?<!\\|)\\|\\[m|(?<!\\|)\\|\\[c|(?<!\\|)\\|\\[w|(?<!\\|)\\|\\[x', re.DOTALL)
    @@ -127,6 +176,11 @@ are available by extending the ansi mapping.

    mxp_sub = re.compile('\\|lc(.*?)\\|lt(.*?)\\|le', re.DOTALL)
    +
    +
    +mxp_url_sub = re.compile('\\|lu(.*?)\\|lt(.*?)\\|le', re.DOTALL)
    +
    +
    ansi_map_dict = {'|!B': '\x1b[34m', '|!C': '\x1b[36m', '|!G': '\x1b[32m', '|!M': '\x1b[35m', '|!R': '\x1b[31m', '|!W': '\x1b[37m', '|!X': '\x1b[30m', '|!Y': '\x1b[33m', '|*': '\x1b[7m', '|-': '\t', '|/': '\r\n', '|>': ' ', '|B': '\x1b[22m\x1b[34m', '|C': '\x1b[22m\x1b[36m', '|G': '\x1b[22m\x1b[32m', '|H': '\x1b[22m', '|M': '\x1b[22m\x1b[35m', '|R': '\x1b[22m\x1b[31m', '|W': '\x1b[22m\x1b[37m', '|X': '\x1b[22m\x1b[30m', '|Y': '\x1b[22m\x1b[33m', '|[B': '\x1b[44m', '|[C': '\x1b[46m', '|[G': '\x1b[42m', '|[M': '\x1b[45m', '|[R': '\x1b[41m', '|[W': '\x1b[47m', '|[X': '\x1b[40m', '|[Y': '\x1b[43m', '|^': '\x1b[5m', '|_': ' ', '|b': '\x1b[1m\x1b[34m', '|c': '\x1b[1m\x1b[36m', '|g': '\x1b[1m\x1b[32m', '|h': '\x1b[1m', '|m': '\x1b[1m\x1b[35m', '|n': '\x1b[0m', '|r': '\x1b[1m\x1b[31m', '|u': '\x1b[4m', '|w': '\x1b[1m\x1b[37m', '|x': '\x1b[1m\x1b[30m', '|y': '\x1b[1m\x1b[33m'}
    @@ -152,6 +206,11 @@ are available by extending the ansi mapping.

    ansi_escapes = re.compile('({{|\\\\|\\|\\|)', re.DOTALL)
    +
    +
    +unsafe_tokens = re.compile('\\|\\/|\\|-', re.DOTALL)
    +
    +
    sub_ansi(ansimatch)[source]
    @@ -231,6 +290,12 @@ to standard ANSI should be done or not.

    +
    +
    +strip_unsafe_tokens(string)[source]
    +

    Strip explicitly ansi line breaks and tabs.

    +
    +
    parse_ansi(string, strip_ansi=False, xterm256=False, mxp=False)[source]
    @@ -310,6 +375,19 @@ ANSI-bytecodes in the string.

    +
    +
    +evennia.utils.ansi.strip_unsafe_tokens(string, parser=<evennia.utils.ansi.ANSIParser object>)[source]
    +

    Strip markup that can be used to create visual exploits +(notably linebreaks and tags)

    +
    + +
    +
    +evennia.utils.ansi.strip_mxp(string, parser=<evennia.utils.ansi.ANSIParser object>)[source]
    +

    Strip MXP markup.

    +
    +
    evennia.utils.ansi.raw(string)[source]
    @@ -844,6 +922,7 @@ with.

    + @@ -866,6 +945,14 @@ with.

    +

    Table of Contents

    + +

    Versions

    -
    diff --git a/docs/0.9.5/api/evennia.utils.batchprocessors.html b/docs/0.9.5/api/evennia.utils.batchprocessors.html index b628158ac9..86dbe59780 100644 --- a/docs/0.9.5/api/evennia.utils.batchprocessors.html +++ b/docs/0.9.5/api/evennia.utils.batchprocessors.html @@ -42,23 +42,21 @@

    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 @@ -71,33 +69,38 @@ 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. This way entire game worlds can be created and planned offline; it is +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 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.

    -

    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:

    +
    +

    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,24 +113,25 @@ written in this file.

    # (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. -#INSERT examples.batch +#IMPORT 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 @@ -158,13 +162,17 @@ 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
    @@ -192,7 +200,6 @@ when running a CODE block multiple times during testing.
     script = create.create_script()
     
    -
    evennia.utils.batchprocessors.read_batchfile(pythonpath, file_ending='.py')[source]
    @@ -209,7 +216,7 @@ or .py). The ending should not be included in the python path.

    Returns
    -

    str – The text content of the batch file.

    +

    text (str) – The text content of the batch file.

    Raises

    IOError – If problems reading file.

    @@ -225,13 +232,22 @@ or .py). The ending should not be included in the python path.

    parse_file(pythonpath)[source]
    -

    This parses the lines of a batchfile according to the following -rules:

    +

    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:

      -
    1. # at the beginning of a line marks the end of the command before +

    2. 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).

    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 @@ -266,30 +282,28 @@ a newline (so two empty lines is a paragraph).

    7. parse_file(pythonpath)[source]
      -

      This parses the lines of a batchfile according to the following -rules:

      +

      This parses the lines of a batch-code file

      Parameters

      pythonpath (str) – The dot-python path to the file.

      Returns
      -

      codeblocks (list)

      +

      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.

      +
      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).

      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 @@ -322,6 +336,7 @@ namespace.

      +
    @@ -348,8 +363,14 @@ namespace.

    Table of Contents

    @@ -365,11 +386,11 @@ namespace.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.utils.containers.html b/docs/0.9.5/api/evennia.utils.containers.html index 3cd3aed731..696db6aece 100644 --- a/docs/0.9.5/api/evennia.utils.containers.html +++ b/docs/0.9.5/api/evennia.utils.containers.html @@ -221,11 +221,11 @@ scripts defined in settings.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.utils.create.html b/docs/0.9.5/api/evennia.utils.create.html index 4f21d3b6fe..855d649732 100644 --- a/docs/0.9.5/api/evennia.utils.create.html +++ b/docs/0.9.5/api/evennia.utils.create.html @@ -41,25 +41,15 @@

    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 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

    -
    -
    +

    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.

    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]
    @@ -69,15 +59,14 @@ Accounts

    • 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.

    • -
    • home (Object or str) – Obj or #dbref to use as the object’s -home location.

    • +#dbref will be set.

      +
    • location (Object or str) – Obj or #dbref to use as the location of the new object.

    • +
    • 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 @@ -93,10 +82,8 @@ adding this rarely makes sense since this data will not survive a reload.

      object (Object) – A newly created object of the given typeclass.

    Raises
    -
    +

    ObjectDB.DoesNotExist – If trying to create an Object with +location or home that can’t be found.

    @@ -134,9 +121,8 @@ 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 of tuples (key, value), (key, value, category), -(key, value, category, lockstring) or -(key, value, category, lockstring, default_access).

  • +
  • attributes (list) – List if tuples (key, value) or (key, value, category) +(key, value, lockstring) or (key, value, lockstring, default_access).

  • Returns
    @@ -174,21 +160,21 @@ in-game setting information and so on.

    -evennia.utils.create.create_message(senderobj, message, channels=None, receivers=None, locks=None, tags=None, header=None)[source]
    +evennia.utils.create.create_message(senderobj, message, receivers=None, locks=None, tags=None, header=None, **kwargs)[source]

    Create a new communication Msg. Msgs represent a unit of database-persistent communication between entites.

    Parameters
      -
    • senderobj (Object or Account) – The entity sending the Msg.

    • +
    • senderobj (Object, Account, Script, str or list) – The entity (or +entities) sending the Msg. If a str, this is the id-string +for an external sender type.

    • message (str) – Text with the message. Eventual headers, titles etc should all be included in this text string. Formatting will be retained.

    • -
    • channels (Channel, key or list) – A channel or a list of channels to -send to. The channels may be actual channel objects or their -unique key strings.

    • -
    • receivers (Object, Account, str or list) – An Account/Object to send -to, or a list of them. May be Account objects or accountnames.

    • +
    • receivers (Object, Account, Script, str or list) – An Account/Object to send +to, or a list of them. If a string, it’s an identifier for an external +receiver.

    • locks (str) – Lock definition string.

    • tags (list) – A list of tags or tuples (tag, category).

    • header (str) – Mime-type or other optional information for the message

    • @@ -196,10 +182,9 @@ to, or a list of them. May be Account objects or accountnames.

    Notes

    -

    The Comm system is created very open-ended, so it’s fully possible -to let a message both go to several channels and to several -receivers at the same time, it’s up to the command definitions to -limit this as desired.

    +

    The Comm system is created to be very open-ended, so it’s fully +possible to let a message both go several receivers at the same time, +it’s up to the command definitions to limit this as desired.

    @@ -305,11 +290,11 @@ operations and is thus not suitable for play-testing the game.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -317,7 +302,6 @@ 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 6b4eb6cd6b..f5745524ab 100644 --- a/docs/0.9.5/api/evennia.utils.dbserialize.html +++ b/docs/0.9.5/api/evennia.utils.dbserialize.html @@ -90,7 +90,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,11 +156,11 @@ function will convert lists, dicts and sets to their
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.utils.eveditor.html b/docs/0.9.5/api/evennia.utils.eveditor.html index 6a871d8e32..efe8acbc96 100644 --- a/docs/0.9.5/api/evennia.utils.eveditor.html +++ b/docs/0.9.5/api/evennia.utils.eveditor.html @@ -42,47 +42,39 @@

    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
    -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
    +
    +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)
     
    -
      -
    • 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.

    -
    +

    The editor can also be used to format Python code and be made to +survive a reload. See the EvEditor class for more details.

    class evennia.utils.eveditor.CmdSaveYesNo(**kwargs)[source]
    @@ -126,6 +118,11 @@ command was given specifically as “no” or “n”.

    lock_storage = 'cmd:all()'
    +
    +
    +search_index_entry = {'aliases': '__noinput_command', 'category': 'general', 'key': '__nomatch_command', 'no_prefix': ' ', '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 '}
    +
    +
    @@ -184,17 +181,19 @@ command was given specifically as “no” or “n”.

    parse()[source]
    -

    Handles pre-parsing

    -
    -
    Usage:

    :cmd [li] [w] [txt]

    -
    -
    +

    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>.

    • -
    • 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.

    @@ -218,6 +217,11 @@ be a range given as <l>:<l>.

    lock_storage = 'cmd:all()'
    +
    +
    +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'command', 'no_prefix': ' ', 'tags': '', 'text': '\n Base parent for editor commands\n '}
    +
    +
    @@ -253,6 +257,11 @@ indentation.

    lock_storage = 'cmd:all()'
    +
    +
    +search_index_entry = {'aliases': '__noinput_command', 'category': 'general', 'key': '__nomatch_command', 'no_prefix': ' ', 'tags': '', 'text': '\n No command match - Inputs line of text into buffer.\n\n '}
    +
    +
    @@ -267,7 +276,7 @@ indentation.

    -aliases = [':wq', ':UU', ':::', ':q', ':q!', '::', ':DD', ':!', ':h', ':r', ':S', ':I', ':>', ':i', ':f', ':<', ':w', ':x', ':y', ':=', ':', ':dd', ':dw', ':echo', ':j', ':fd', ':fi', ':uu', ':u', ':p', ':A', ':s']
    +aliases = [':fd', ':q', ':wq', '::', ':q!', ':S', ':<', ':dd', ':i', ':UU', ':', ':!', ':>', ':s', ':f', ':uu', ':A', ':p', ':u', ':r', ':w', ':j', ':echo', ':I', ':fi', ':y', ':x', ':::', ':h', ':=', ':dw', ':DD']
    @@ -293,6 +302,11 @@ efficient presentation.

    lock_storage = 'cmd:all()'
    +
    +
    +search_index_entry = {'aliases': ':fd :q :wq :: :q! :S :< :dd :i :UU : :! :> :s :f :uu :A :p :u :r :w :j :echo :I :fi :y :x ::: :h := :dw :DD', 'category': 'general', 'key': ':editor_command_group', 'no_prefix': ' ', 'tags': '', 'text': '\n Commands for the editor\n '}
    +
    +
    @@ -509,11 +523,11 @@ formatting information.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.utils.evform.html b/docs/0.9.5/api/evennia.utils.evform.html index 6d0b7f1892..e2246a0409 100644 --- a/docs/0.9.5/api/evennia.utils.evform.html +++ b/docs/0.9.5/api/evennia.utils.evform.html @@ -75,6 +75,7 @@ object when displaying the form.

    | cccccccc | cccccccccccccccccBccccccccccccccccc | | | | ------------------------------------------------- +'''

    The first line of the FORM string is ignored. The forms and table @@ -165,16 +166,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 of {id:text}.

    • -
    • tables (dict) – A dictionary mapping of {id:EvTable}.

    • -
    • form (dict) – A dictionary of +

    • 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.

    • +If this is given, filename is not read.

    @@ -251,11 +252,11 @@ if this is given, filename is not read.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.utils.evmenu.html b/docs/0.9.5/api/evennia.utils.evmenu.html index 78f640ecb5..85771dd29f 100644 --- a/docs/0.9.5/api/evennia.utils.evmenu.html +++ b/docs/0.9.5/api/evennia.utils.evmenu.html @@ -41,9 +41,10 @@

    evennia.utils.evmenu

    -

    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:

    +

    EvMenu

    +

    This implements a full 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,
    @@ -53,8 +54,8 @@
     

    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.

    @@ -80,7 +81,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 @@ -94,50 +95,43 @@ 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 None, the current node is re-run.

        -
    -
    - +If an exec callable returns the empty string (only), 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
    @@ -191,9 +185,8 @@ 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.

    @@ -283,9 +276,9 @@ allowed, these will be added to the **kwargs going into the cal strings is only needed if wanting to pass strippable spaces, otherwise the 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.


    @@ -368,6 +361,11 @@ commands the caller can use.

    lock_storage = 'cmd:all()'
    +
    +
    +search_index_entry = {'aliases': '__nomatch_command', 'category': 'menu', 'key': '__noinput_command', 'no_prefix': ' ', 'tags': '', 'text': '\n Menu options.\n '}
    +
    +
    @@ -499,14 +497,12 @@ menu will not be using this same session anymore after a reload.

    persistent
    flag is deactivated.

    +
  • **kwargs – All kwargs will become initialization variables on caller.ndb._menutree, +to be available at run.

  • -
    Keyword Arguments
    -

    any (any) – All kwargs will become initialization variables on caller.ndb._evmenu, -to be available at run.

    -
    -
    Raises
    -

    EvMenuError – If the start/end node is not found in menu tree.

    +
    Raises
    +

    EvMenuError – If the start/end node is not found in menu tree.

    Notes

    @@ -606,11 +602,9 @@ a (“nodename”, kwargs) tuple.

  • 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 Arguments
    -

    any – Extra arguments to goto callables.

    -
    @@ -755,34 +749,49 @@ prepending those options added in the node.

  • 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 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!

  • +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!

  • pagesize (int) – How many options to show per page.

  • Example

    -
    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"
    +
    def select(caller, selection, available_choices=None, **kwargs):
    +    '''
    +    Args:
    +        caller (Object or Account): User of the menu.
    +        selection (str): What caller chose in the menu
    +        available_choices (list): The keys of elements available on the *current listing
    +            page*.
    +        **kwargs: Kwargs passed on from the node.
    +    Returns:
    +        tuple, str or None: A tuple (nextnodename, **kwargs) or just nextnodename.  Return
    +            **None** to go back to the listnode.
     
    -@list_node(['foo', 'bar'], _selectfunc)
    -def node_index(caller):
    -    text = "describing the list"
    -    return text, []
    +    # (do something with **selection** here)
    +
    +    return "nextnode", **kwargs
    +
    +@list_node(['foo', 'bar'], select)
    +def node_index(caller):
    +    text = "describing the list"
    +
    +    # optional extra options in addition to the list-options
    +    extra_options = []
    +
    +    return text, extra_options
     

    Notes

    -

    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.

    +

    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.

    @@ -816,6 +825,11 @@ options (descs) visible on the current node page.

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': '__noinput_command', 'category': 'general', 'key': '__nomatch_command', 'no_prefix': ' ', 'tags': '', 'text': '\n Enter your data and press return.\n '}
    +
    +
    @@ -869,44 +883,29 @@ options (descs) visible on the current node page.

    evennia.utils.evmenu.get_input(caller, prompt, callback, session=None, *args, **kwargs)[source]
    -

    This is a helper function for easily request input from -the caller.

    +

    This is a helper function for easily request input from the caller.

    Parameters
      -
    • 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 (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.

    • -
    • 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.

    • +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.

    Raises
    @@ -914,23 +913,160 @@ and the callback function must take *args and

    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.

    -

    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.

    -

    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.

    +

    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.

    +

    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.

    +
    + +
    +
    +class evennia.utils.evmenu.CmdYesNoQuestion(**kwargs)[source]
    +

    Bases: evennia.commands.command.Command

    +

    Handle a prompt for yes or no. Press [return] for the default choice.

    +
    +
    +key = '__noinput_command'
    +
    + +
    +
    +aliases = ['no', 'y', 'n', '__nomatch_command', 'yes', 'a', 'abort']
    +
    + +
    +
    +arg_regex = re.compile('^$', re.IGNORECASE)
    +
    + +
    +
    +func()[source]
    +

    This is called when user enters anything.

    +
    + +
    +
    +help_category = 'general'
    +
    + +
    +
    +lock_storage = 'cmd:all();'
    +
    + +
    +
    +search_index_entry = {'aliases': 'no y n __nomatch_command yes a abort', 'category': 'general', 'key': '__noinput_command', 'no_prefix': ' ', 'tags': '', 'text': '\n Handle a prompt for yes or no. Press [return] for the default choice.\n\n '}
    +
    + +
    + +
    +
    +class evennia.utils.evmenu.YesNoQuestionCmdSet(cmdsetobj=None, key=None)[source]
    +

    Bases: evennia.commands.cmdset.CmdSet

    +

    This stores the input command

    +
    +
    +key = 'yes_no_question_cmdset'
    +
    + +
    +
    +priority = 1
    +
    + +
    +
    +mergetype = 'Replace'
    +
    + +
    +
    +no_objs = True
    +
    + +
    +
    +no_exits = True
    +
    + +
    +
    +no_channels = False
    +
    + +
    +
    +at_cmdset_creation()[source]
    +

    called once at creation

    +
    + +
    +
    +path = 'evennia.utils.evmenu.YesNoQuestionCmdSet'
    +
    + +
    + +
    +
    +evennia.utils.evmenu.ask_yes_no(caller, prompt='Yes or No {options}?', yes_action='Yes', no_action='No', default=None, allow_abort=False, session=None, *args, **kwargs)[source]
    +

    A helper question for asking a simple yes/no question. This will cause +the system to pause and wait for input from the player.

    +
    +
    Parameters
    +
      +
    • prompt (str) – The yes/no question to ask. This takes an optional formatting +marker {options} which will be filled with ‘Y/N’, ‘[Y]/N’ or +‘Y/[N]’ depending on the setting of default. If allow_abort is set, +then the ‘A(bort)’ option will also be available.

    • +
    • yes_action (callable or str) – If a callable, this will be called +with (caller, *args, **kwargs) when the Yes-choice is made. +If a string, this string will be echoed back to the caller.

    • +
    • no_action (callable or str) – If a callable, this will be called +with (caller, *args, **kwargs) when the No-choice is made. +If a string, this string will be echoed back to the caller.

    • +
    • default (str optional) – This is what the user will get if they just press the +return key without giving any input. One of ‘N’, ‘Y’, ‘A’ or None +for no default (an explicit choice must be given). If ‘A’ (abort) +is given, allow_abort kwarg is ignored and assumed set.

    • +
    • allow_abort (bool, optional) – If set, the ‘A(bort)’ option is available +(a third option meaning neither yes or no but just exits the prompt).

    • +
    • 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._yes_no_question.session.

    • +
    • *args – Additional arguments passed on into callables.

    • +
    • **kwargs – Additional keyword args passed on into callables.

    • +
    +
    +
    Raises
    +

    RuntimeError, FooError – If default and allow_abort clashes.

    +
    +
    +

    Example

    +
    # just returning strings
    +ask_yes_no(caller, "Are you happy {options}?",
    +           "you answered yes", "you answered no")
    +# trigger callables
    +ask_yes_no(caller, "Are you sad {options}?",
    +           _callable_yes, _callable_no, allow_abort=True)
    +
    +
    @@ -1022,11 +1158,11 @@ Must be on the form callable(caller, raw_string, **kwargs).

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

      @@ -1034,7 +1170,6 @@ Must be on the form callable(caller, raw_string, **kwargs).

    • 0.9.5 (v0.9.5 branch)
    -
    diff --git a/docs/0.9.5/api/evennia.utils.evmore.html b/docs/0.9.5/api/evennia.utils.evmore.html index b97219f13d..55c13dd759 100644 --- a/docs/0.9.5/api/evennia.utils.evmore.html +++ b/docs/0.9.5/api/evennia.utils.evmore.html @@ -42,9 +42,8 @@

    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
     
    @@ -52,16 +51,17 @@ command).

    EvMore(caller, text, always_page=False, session=None, justify_kwargs=None, **kwargs)
    -

    One can also use the convenience function msg from this module:

    +

    One can also use the convenience function msg from this module to avoid +having to set up the EvMenu object manually:

    from evennia.utils import evmore
     
     text = some_long_text_output()
     evmore.msg(caller, text, always_page=False, session=None, justify_kwargs=None, **kwargs)
     
    -

    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 +

    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 change the formatting of the text. The remaining **kwargs will be passed on to the caller.msg() construct every time the page is updated.


    @@ -69,7 +69,7 @@ the caller.msg() construct every time the page is updated.

    class evennia.utils.evmore.CmdMore(**kwargs)[source]

    Bases: evennia.commands.command.Command

    -

    Manipulate the text paging

    +

    Manipulate the text paging. Catch no-input with aliases.

    key = '__noinput_command'
    @@ -77,7 +77,7 @@ the caller.msg() construct every time the page is updated.

    -aliases = ['b', 'next', 't', 'end', 'e', 'top', 'n', 'a', 'quit', 'abort', 'back', 'q']
    +aliases = ['e', 'q', 'quit', 'n', 'next', 'end', 'previous', 'top', 'a', 'abort', 'p', 't']
    @@ -101,42 +101,47 @@ the caller.msg() construct every time the page is updated.

    lock_storage = 'cmd:all();'
    +
    +
    +search_index_entry = {'aliases': 'e q quit n next end previous top a abort p t', 'category': 'general', 'key': '__noinput_command', 'no_prefix': ' ', 'tags': '', 'text': '\n Manipulate the text paging. Catch no-input with aliases.\n '}
    +
    +
    -
    -class evennia.utils.evmore.CmdMoreLook(**kwargs)[source]
    +
    +class evennia.utils.evmore.CmdMoreExit(**kwargs)[source]

    Bases: evennia.commands.command.Command

    -

    Override look to display window and prevent OOCLook from firing

    +

    Any non-more command will exit the pager.

    -
    -key = 'look'
    -
    - -
    -
    -aliases = ['l']
    -
    - -
    -
    -auto_help = False
    +
    +key = '__nomatch_command'
    -
    -func()[source]
    -

    Implement the command

    +
    +func()[source]
    +

    Exit pager and re-fire the failed command.

    -
    -help_category = 'general'
    +
    +aliases = []
    -
    -lock_storage = 'cmd:all();'
    +
    +help_category = 'general'
    +
    + +
    +
    +lock_storage = 'cmd:all();'
    +
    + +
    +
    +search_index_entry = {'aliases': '', 'category': 'general', 'key': '__nomatch_command', 'no_prefix': ' ', 'tags': '', 'text': '\n Any non-more command will exit the pager.\n\n '}
    @@ -156,6 +161,11 @@ the caller.msg() construct every time the page is updated.

    priority = 110
    +
    +
    +mergetype = 'Replace'
    +
    +
    at_cmdset_creation()[source]
    @@ -180,11 +190,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 input handler.

    +

    Initialization of the EvMore pager.

    Parameters
      @@ -192,9 +202,8 @@ 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 (backslash + f) format symbols, automatic -pagination and justification are force-disabled and -page-breaks will only happen after each \f.

      • +one or more \f format symbol, 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.

      • @@ -203,8 +212,9 @@ 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 @@ -220,48 +230,28 @@ 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, any) – These will be passed on to the caller.msg method.

    • +
    • kwargs (any, optional) – These will be passed on to the caller.msg method.

    Examples

    -

    Basic use:

    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.

    +

    Paginator

    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)
    +

    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)
     
    @@ -355,9 +345,14 @@ querysets); to avoid fetching all objects at the same time.

    init_f_str(text)[source]
    -

    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.

    +

    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.

    +
    +
    @@ -380,16 +375,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 -directly 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 directly instead.

    By default, helper methods are called that perform these actions depending on supported inputs.

    @@ -441,46 +435,69 @@ 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.

    +
    +

    EvMore-supported version of msg, mimicking the normal msg method.

    +
    +

    Initialization of the EvMore pager.

    Parameters
    • caller (Object or Account) – Entity reading the text.

    • -
    • text (str, EvTable or iterator) –

      The text or data to put under paging.

      +
    • 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 (backslash + f) format symbol, automatic pagination is disabled -and page-breaks will only happen after each \f.

      • +one or more \f format symbol, 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.

      • -
      • 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().

      • +
      • 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.

    • always_page (bool, optional) – If False, the -pager will only kick in if text is too big +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, 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.

    • +
    • 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.

    +

    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)
    +
    +
    @@ -516,11 +533,11 @@ to the caller.msg method.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.utils.evtable.html b/docs/0.9.5/api/evennia.utils.evtable.html index 536f28d003..d4c3b6f476 100644 --- a/docs/0.9.5/api/evennia.utils.evtable.html +++ b/docs/0.9.5/api/evennia.utils.evtable.html @@ -41,13 +41,15 @@

    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.

    +

    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.

    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,8 +103,9 @@ 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,14 +126,13 @@ 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](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.

    +

    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.


    @@ -478,8 +480,9 @@ resize individual columns in the vertical direction to fit.

  • height (int, optional) – Fixed height of table. Defaults to being unset. Width is still given precedence. If given, table cells will crop text rather than expand vertically.

  • -
  • evenwidth (bool, optional) – Used with the width keyword. Adjusts columns to have as even width as -possible. This often looks best also for mixed-length tables. Default is False.

  • +
  • evenwidth (bool, optional) – Used with the width keyword. Adjusts columns to have as +even width as possible. This often looks best also for mixed-length tables. Default +is False.

  • maxwidth (int, optional) – This will set a maximum width of the table while allowing it to be smaller. Only if it grows wider than this size will it be resized by expanding horizontally (or crop height is given). @@ -639,11 +642,11 @@ given from 0 to Ncolumns-1.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.utils.gametime.html b/docs/0.9.5/api/evennia.utils.gametime.html index 0eb877148a..6dfee67783 100644 --- a/docs/0.9.5/api/evennia.utils.gametime.html +++ b/docs/0.9.5/api/evennia.utils.gametime.html @@ -196,14 +196,15 @@ return 300 (5 minutes).

    -evennia.utils.gametime.schedule(callback, repeat=False, sec=None, min=None, hour=None, day=None, month=None, year=None)[source]
    +evennia.utils.gametime.schedule(callback, repeat=False, sec=None, min=None, hour=None, day=None, month=None, year=None, *args, **kwargs)[source]

    Call a callback at a given in-game time.

    Parameters
    • callback (function) – The callback function that will be called. Note that the callback must be a module-level function, since the script will -be persistent.

    • +be persistent. The callable should be on form callable(*args, **kwargs) +where args/kwargs are passed into this schedule.

    • repeat (bool, optional) – Defines if the callback should be called regularly at the specified time.

    • sec (int or None) – Number of absolute game seconds at which to run repeat.

    • @@ -212,6 +213,11 @@ at the specified time.

    • day (int or None) – Number of absolute days.

    • month (int or None) – Number of absolute months.

    • year (int or None) – Number of absolute years.

    • +
    • *args – Will be passed into the callable. These must be possible +to store in Attributes on the generated scheduling Script.

    • +
    • **kwargs

      Will be passed into the callable. These must be possible +to store in Attributes on the generated scheduling Script.

      +

    Returns
    @@ -219,8 +225,10 @@ at the specified time.

    Examples

    -

    schedule(func, min=5, sec=0) # Will call 5 minutes past the next (in-game) hour. -schedule(func, hour=2, min=30, sec=0) # Will call the next (in-game) day at 02:30.

    +
    schedule(func, min=5, sec=0)  # Will call 5 minutes past the next (in-game) hour.
    +schedule(func, hour=2, min=30, sec=0)  # Will call the next (in-game) day at 02:30.
    +
    +
    @@ -263,11 +271,11 @@ the epoch set by settings.TIME_GAME_EPOCH will still apply.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.utils.html b/docs/0.9.5/api/evennia.utils.html index 37a21ed961..3051f5f2b8 100644 --- a/docs/0.9.5/api/evennia.utils.html +++ b/docs/0.9.5/api/evennia.utils.html @@ -46,10 +46,19 @@ 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 ee10a128eb..d7c88f6e76 100644 --- a/docs/0.9.5/api/evennia.utils.idmapper.html +++ b/docs/0.9.5/api/evennia.utils.idmapper.html @@ -82,11 +82,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 6f40569e25..23ce252599 100644 --- a/docs/0.9.5/api/evennia.utils.idmapper.manager.html +++ b/docs/0.9.5/api/evennia.utils.idmapper.manager.html @@ -87,11 +87,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 cb3a068946..047c68527e 100644 --- a/docs/0.9.5/api/evennia.utils.idmapper.models.html +++ b/docs/0.9.5/api/evennia.utils.idmapper.models.html @@ -299,11 +299,11 @@ catch in an easy way here. Ideas are appreciated. /Griatch

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 cf224ed036..c6f3d71840 100644 --- a/docs/0.9.5/api/evennia.utils.idmapper.tests.html +++ b/docs/0.9.5/api/evennia.utils.idmapper.tests.html @@ -396,11 +396,11 @@ object the first time, the query is executed.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.utils.inlinefuncs.html b/docs/0.9.5/api/evennia.utils.inlinefuncs.html index 16b077325c..b8e6d404a7 100644 --- a/docs/0.9.5/api/evennia.utils.inlinefuncs.html +++ b/docs/0.9.5/api/evennia.utils.inlinefuncs.html @@ -39,299 +39,8 @@
    -
    -

    evennia.utils.inlinefuncs

    -

    Inline functions (nested form).

    -

    This parser accepts nested inlinefunctions on the form

    -
    $funcname(arg, arg, ...)
    -
    -
    -

    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 “(”. 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 } -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 -characters.

    -

    The available inlinefuncs are defined as global-level functions in -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:

    -
    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 -inlinefunc in-game - the only part that will be available from -in-game. **kwargs are not supported from in-game but are only used -internally by Evennia to make details about the caller available to -the function. The kwarg passed to all functions is session, the -Sessionobject for the object seeing the string. This may be None if -the string is sent to a non-puppetable object. The inlinefunc should -never raise an exception.

    -

    There are two reserved function names:

    -
      -
    • “nomatch”: This is called if the user uses a functionname that is -not registered. The nomatch function will get the name of the -not-found function as its first argument followed by the normal -arguments to the given function. If not defined the default effect is -to print <UNKNOWN> to replace the unknown function.

    • -
    • “stackfull”: This is called when the maximum nested function stack is reached. -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 not completely closing all inlinefunc blocks, will lead -to the entire string remaining unparsed.

    -
    -
    -
    -evennia.utils.inlinefuncs.random(*args, **kwargs)[source]
    -

    Inlinefunc. Returns a random number between -0 and 1, from 0 to a maximum value, or within a given range (inclusive).

    -
    -
    Parameters
    -
      -
    • minval (str, optional) – Minimum value. If not given, assumed 0.

    • -
    • maxval (str, optional) – Maximum value.

    • -
    -
    -
    -
    -
    Keyword argumuents:

    session (Session): Session getting the string.

    -
    -
    -

    Notes

    -

    If either of the min/maxvalue has a ‘.’ in it, a floating-point random -value will be returned. Otherwise it will be an integer value in the -given range.

    -

    Example

    -
      -
    • $random()

    • -
    • $random(5)

    • -
    • $random(5, 10)

    • -
    -
    - -
    -
    -evennia.utils.inlinefuncs.pad(*args, **kwargs)[source]
    -

    Inlinefunc. Pads text to given width.

    -
    -
    Parameters
    -
      -
    • text (str, optional) – Text to pad.

    • -
    • width (str, optional) – Will be converted to integer. Width -of padding.

    • -
    • align (str, optional) – Alignment of padding; one of ‘c’, ‘l’ or ‘r’.

    • -
    • fillchar (str, optional) – Character used for padding. Defaults to a -space.

    • -
    -
    -
    Keyword Arguments
    -

    session (Session) – Session performing the pad.

    -
    -
    -

    Example

    -

    $pad(text, width, align, fillchar)

    -
    - -
    -
    -evennia.utils.inlinefuncs.crop(*args, **kwargs)[source]
    -

    Inlinefunc. Crops ingoing text to given widths.

    -
    -
    Parameters
    -
      -
    • text (str, optional) – Text to crop.

    • -
    • width (str, optional) – Will be converted to an integer. Width of -crop in characters.

    • -
    • suffix (str, optional) – End string to mark the fact that a part -of the string was cropped. Defaults to […].

    • -
    -
    -
    Keyword Arguments
    -

    session (Session) – Session performing the crop.

    -
    -
    -

    Example

    -

    $crop(text, width=78, suffix=’[…]’)

    -
    - -
    -
    -evennia.utils.inlinefuncs.space(*args, **kwargs)[source]
    -

    Inlinefunc. Inserts an arbitrary number of spaces. Defaults to 4 spaces.

    -
    -
    Parameters
    -

    spaces (int, optional) – The number of spaces to insert.

    -
    -
    Keyword Arguments
    -

    session (Session) – Session performing the crop.

    -
    -
    -

    Example

    -

    $space(20)

    -
    - -
    -
    -evennia.utils.inlinefuncs.clr(*args, **kwargs)[source]
    -

    Inlinefunc. Colorizes nested text.

    -
    -
    Parameters
    -
      -
    • startclr (str, optional) – An ANSI color abbreviation without the -prefix |, such as r (red foreground) or [r (red background).

    • -
    • text (str, optional) – Text

    • -
    • endclr (str, optional) – The color to use at the end of the string. Defaults -to |n (reset-color).

    • -
    -
    -
    Keyword Arguments
    -

    session (Session) – Session object triggering inlinefunc.

    -
    -
    -

    Example

    -

    $clr(startclr, text, endclr)

    -
    - -
    -
    -evennia.utils.inlinefuncs.null(*args, **kwargs)[source]
    -
    - -
    -
    -evennia.utils.inlinefuncs.nomatch(name, *args, **kwargs)[source]
    -

    Default implementation of nomatch returns the function as-is as a string.

    -
    - -
    -
    -class evennia.utils.inlinefuncs.ParseStack(*args, **kwargs)[source]
    -

    Bases: list

    -

    Custom stack that always concatenates strings together when the -strings are added next to one another. Tuples are stored -separately and None is used to mark that a string should be broken -up into a new chunk. Below is the resulting stack after separately -appending 3 strings, None, 2 strings, a tuple and finally 2 -strings:

    -

    [string + string + string, -None -string + string, -tuple, -string + string]

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

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

    -
    - -
    -
    -append(item)[source]
    -

    The stack will merge strings, add other things as normal

    -
    - -
    - -
    -
    -exception evennia.utils.inlinefuncs.InlinefuncError[source]
    -

    Bases: RuntimeError

    -
    - -
    -
    -evennia.utils.inlinefuncs.parse_inlinefunc(string, strip=False, available_funcs=None, stacktrace=False, **kwargs)[source]
    -

    Parse the incoming string.

    -
    -
    Parameters
    -
      -
    • string (str) – The incoming string to parse.

    • -
    • strip (bool, optional) – Whether to strip function calls rather than -execute them.

    • -
    • available_funcs (dict, optional) – Define an alternative source of functions to parse for. -If unset, use the functions found through settings.INLINEFUNC_MODULES.

    • -
    • stacktrace (bool, optional) – If set, print the stacktrace to log.

    • -
    -
    -
    Keyword Arguments
    -
      -
    • session (Session) – This is sent to this function by Evennia when triggering -it. It is passed to the inlinefunc.

    • -
    • kwargs (any) – All other kwargs are also passed on to the inlinefunc.

    • -
    -
    -
    -
    - -
    -
    -evennia.utils.inlinefuncs.raw(string)[source]
    -

    Escape all inlinefuncs in a string so they won’t get parsed.

    -
    -
    Parameters
    -

    string (str) – String with inlinefuncs to escape.

    -
    -
    -
    - -
    -
    -exception evennia.utils.inlinefuncs.NickTemplateInvalid[source]
    -

    Bases: ValueError

    -
    - -
    -
    -evennia.utils.inlinefuncs.initialize_nick_templates(in_template, out_template)[source]
    -

    Initialize the nick templates for matching and remapping a string.

    -
    -
    Parameters
    -
      -
    • 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.

    • -
    -
    -
    Returns
    -

    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.

    -
    -
    -
    - -
    -
    -evennia.utils.inlinefuncs.parse_nick_template(string, template_regex, outtemplate)[source]
    -

    Parse a text using a template and map it to another template

    -
    -
    Parameters
    -
      -
    • string (str) – The input string to processj

    • -
    • template_regex (regex) – A template regex created with -initialize_nick_template.

    • -
    • outtemplate (str) – The template to which to map the matches -produced by the template_regex. This should have $1, $2, -etc to match the regex.

    • -
    -
    -
    -
    - +
    +

    evennia.utils.inlinefuncs

    @@ -365,11 +74,11 @@ etc to match the regex.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.utils.logger.html b/docs/0.9.5/api/evennia.utils.logger.html index 051832e741..274ac060b1 100644 --- a/docs/0.9.5/api/evennia.utils.logger.html +++ b/docs/0.9.5/api/evennia.utils.logger.html @@ -321,7 +321,7 @@ to preserve a continuous chat history for channel log files.

    -rotate()[source]
    +rotate(num_lines_to_append=None)[source]

    Rotates our log file and appends some number of lines from the previous log to the start of the new one.

    @@ -330,21 +330,31 @@ the previous log to the start of the new one.

    seek(*args, **kwargs)[source]

    Convenience method for accessing our _file attribute’s seek method, -which is used in tail_log_function. -:param *args: Same args as file.seek -:param **kwargs: Same kwargs as file.seek

    +which is used in tail_log_function.

    +
    +
    Parameters
    +
      +
    • *args – Same args as file.seek

    • +
    • **kwargs – Same kwargs as file.seek

    • +
    +
    +
    readlines(*args, **kwargs)[source]

    Convenience method for accessing our _file attribute’s readlines method, -which is used in tail_log_function. -:param *args: same args as file.readlines -:param **kwargs: same kwargs as file.readlines

    +which is used in tail_log_function.

    -
    Returns
    -

    lines (list) – lines from our _file attribute.

    +
    Parameters
    +
      +
    • *args – same args as file.readlines

    • +
    • **kwargs – same kwargs as file.readlines

    • +
    +
    +
    Returns
    +

    lines (list) – lines from our _file attribute.

    @@ -367,6 +377,36 @@ on new lines following datetime info.

    +
    +
    +evennia.utils.logger.log_file_exists(filename='game.log')[source]
    +

    Determine if a log-file already exists.

    +
    +
    Parameters
    +

    filename (str) – The filename (within the log-dir).

    +
    +
    Returns
    +

    bool – If the log file exists or not.

    +
    +
    +
    + +
    +
    +evennia.utils.logger.rotate_log_file(filename='game.log', num_lines_to_append=None)[source]
    +

    Force-rotate a log-file, without

    +
    +
    Parameters
    +
      +
    • filename (str) – The log file, located in settings.LOG_DIR.

    • +
    • num_lines_to_append (int, optional) – Include N number of +lines from previous file in new one. If None, use default. +Set to 0 to include no lines.

    • +
    +
    +
    +
    +
    evennia.utils.logger.tail_log_file(filename, offset, nlines, callback=None)[source]
    @@ -430,11 +470,11 @@ all if the file is shorter than nlines.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.utils.optionclasses.html b/docs/0.9.5/api/evennia.utils.optionclasses.html index 75701f8ce3..93df26142e 100644 --- a/docs/0.9.5/api/evennia.utils.optionclasses.html +++ b/docs/0.9.5/api/evennia.utils.optionclasses.html @@ -41,8 +41,6 @@

    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]
    @@ -119,8 +117,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 @@ -891,11 +889,11 @@ entries are processed.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.utils.optionhandler.html b/docs/0.9.5/api/evennia.utils.optionhandler.html index 415abc8fdb..fa94e6feae 100644 --- a/docs/0.9.5/api/evennia.utils.optionhandler.html +++ b/docs/0.9.5/api/evennia.utils.optionhandler.html @@ -197,11 +197,11 @@ than their values.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.utils.picklefield.html b/docs/0.9.5/api/evennia.utils.picklefield.html index ee2cdd5b5c..2dfa75d2b9 100644 --- a/docs/0.9.5/api/evennia.utils.picklefield.html +++ b/docs/0.9.5/api/evennia.utils.picklefield.html @@ -241,11 +241,11 @@ This is used by the serialization framework.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.utils.search.html b/docs/0.9.5/api/evennia.utils.search.html index 4a55498a97..2ba1a7987a 100644 --- a/docs/0.9.5/api/evennia.utils.search.html +++ b/docs/0.9.5/api/evennia.utils.search.html @@ -149,7 +149,7 @@ one of the arguments must be given to do a search.

    Parameters
      -
    • sender (Object or Account, optional) – Get messages sent by a particular account or object

    • +
    • sender (Object, Account or Script, optional) – Get messages sent by a particular sender.

    • receiver (Object, Account or Channel, optional) – Get messages received by a certain account,object or channel

    • freetext (str) – Search for a text string in a message. NOTE: @@ -161,7 +161,7 @@ always gives only one match.

    Returns
    -

    messages (list or Msg) – A list of message matches or a single match if dbref was given.

    +

    Queryset – Message matches.

    @@ -348,11 +348,11 @@ matches were found.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 5cb7badcbf..5f93df25f0 100644 --- a/docs/0.9.5/api/evennia.utils.test_resources.html +++ b/docs/0.9.5/api/evennia.utils.test_resources.html @@ -72,7 +72,6 @@ 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).

    @@ -204,11 +203,11 @@ It helps ensure your tests are run with your own objects.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.utils.text2html.html b/docs/0.9.5/api/evennia.utils.text2html.html index 71d6940a68..19d1248522 100644 --- a/docs/0.9.5/api/evennia.utils.text2html.html +++ b/docs/0.9.5/api/evennia.utils.text2html.html @@ -193,7 +193,7 @@ snippet #577349 on
    -re_url = re.compile('((?:ftp|www|https?)\\W+(?:(?!\\.(?:\\s|$)|&\\w+;)[^"\\\',;$*^\\\\(){}<>\\[\\]\\s])+)(\\.(?:\\s|$)|&\\w+;|)')
    +re_url = re.compile('(?<!=")((?:ftp|www|https?)\\W+(?:(?!\\.(?:\\s|$)|&\\w+;)[^"\\\',;$*^\\\\(){}<>\\[\\]\\s])+)(\\.(?:\\s|$)|&\\w+;|)')
    @@ -201,6 +201,11 @@ snippet #577349 on re_mxplink = re.compile('\\|lc(.*?)\\|lt(.*?)\\|le', re.DOTALL)
    +
    +
    +re_mxpurl = re.compile('\\|lu(.*?)\\|lt(.*?)\\|le', re.DOTALL)
    +
    +
    re_color(text)[source]
    @@ -351,6 +356,20 @@ replaces MXP links with HTML code.

    +
    +
    +sub_mxp_urls(match)[source]
    +

    Helper method to be passed to re.sub, +replaces MXP links with HTML code. +:param match: Match for substitution. +:type match: re.Matchobject

    +
    +
    Returns
    +

    text (str) – Processed text.

    +
    +
    +
    +
    sub_text(match)[source]
    @@ -431,11 +450,11 @@ into html statements.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.utils.utils.html b/docs/0.9.5/api/evennia.utils.utils.html index af88c09f59..cf06f06f9f 100644 --- a/docs/0.9.5/api/evennia.utils.utils.html +++ b/docs/0.9.5/api/evennia.utils.utils.html @@ -162,16 +162,18 @@ suffix, the suffix will be dropped.

    -evennia.utils.utils.dedent(text, baseline_index=None)[source]
    +evennia.utils.utils.dedent(text, baseline_index=None, indent=None)[source]

    Safely clean all whitespace at the left of a paragraph.

    Parameters
    • text (str) – The text to dedent.

    • -
    • baseline_index (int or None, optional) – Which row to use as a ‘base’ +

    • baseline_index (int, optional) – Which row to use as a ‘base’ for the indentation. Lines will be dedented to this level but no further. If None, indent so as to completely deindent the least indented text.

    • +
    • indent (int, optional) – If given, force all lines to this indent. +This bypasses baseline_index.

    Returns
    @@ -233,8 +235,8 @@ Defaults to client’s default width.

    -
    -evennia.utils.utils.iter_to_string(initer, endsep='and', addquote=False)[source]
    +
    +evennia.utils.utils.iter_to_str(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.

    @@ -251,16 +253,16 @@ values with double quotes.

    Returns
    -

    liststr (str) – The list represented as a string.

    +

    str – The list represented as a string.

    Examples

    -
    # 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"'
    +
    >>> 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"'
     
    @@ -284,16 +286,49 @@ values with double quotes.

    Returns
    -

    liststr (str) – The list represented as a string.

    +

    str – The list represented as a string.

    Examples

    -
    # 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"'
    +
    >>> 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"'
     
    @@ -552,10 +587,8 @@ be found, the protocol flag is reset to utf-8. In any case, returns bytes.

    -
    -

    Note

    +

    Notes

    If text is already bytes, return it as is.

    -
    @@ -576,10 +609,8 @@ falling back to settings.ENCODINGS.

    decoded_text (str) – The decoded text.

    -
    -

    Note

    +

    Notes

    If text is already str, return it as is.

    -
    @@ -605,9 +636,10 @@ distance from parent.

    Parameters
      -
    • 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.

    • +
    • 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.

    Returns
    @@ -615,10 +647,8 @@ or a class.

    Notes

    -

    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).

    +

    What differentiates this function from Python’s isinstance() is the +flexibility in the types allowed for the object and parent being compared.

    @@ -641,10 +671,7 @@ 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’

    • -
    • 'oracle'. (or) –

    • -
    +

    name (str) – One of ‘sqlite3’, ‘mysql’, ‘postgresql’ or ‘oracle’.

    Returns

    uses (bool) – If the given database is used or not.

    @@ -662,7 +689,7 @@ 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 (any) – Will be used as arguments to callback.

  • +
  • *args – Will be used as arguments to callback

  • Keyword Arguments
    @@ -681,8 +708,7 @@ persistent is False by default.

    -
    -

    Note

    +

    Notes

    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 @@ -696,7 +722,63 @@ If persistent is set to True the delay function will return an int which is the task’s id itended for use with TASK_HANDLER’s do_task and remove methods. All persistent tasks whose time delays have passed will be called on server startup.

    -
    +
    + +
    +
    +evennia.utils.utils.repeat(interval, callback, persistent=True, idstring='', stop=False, store_key=None, *args, **kwargs)[source]
    +

    Start a repeating task using the TickerHandler.

    +
    +
    Parameters
    +
      +
    • interval (int) – How often to call callback.

    • +
    • callback (callable) – This will be called with *args, **kwargs every +interval seconds. This must be possible to pickle regardless +of if persistent is set or not!

    • +
    • persistent (bool, optional) – If ticker survives a server reload.

    • +
    • idstring (str, optional) – Separates multiple tickers. This is useful +mainly if wanting to set up multiple repeats for the same +interval/callback but with different args/kwargs.

    • +
    • stop (bool, optional) – If set, use the given parameters to _stop_ a running +ticker instead of creating a new one.

    • +
    • store_key (tuple, optional) – This is only used in combination with stop and +should be the return given from the original repeat call. If this +is given, all other args except stop are ignored.

    • +
    • *args – Used as arguments to callback.

    • +
    • **kwargs – Keyword-arguments to pass to callback.

    • +
    +
    +
    Returns
    +

    tuple or None – The tuple is the store_key - the identifier for the +created ticker. Store this and pass into unrepat() in order to to stop +this ticker later. Returns None if stop=True.

    +
    +
    Raises
    +

    KeyError – If trying to stop a ticker that was not found.

    +
    +
    +
    + +
    +
    +evennia.utils.utils.unrepeat(store_key)[source]
    +

    This is used to stop a ticker previously started with repeat.

    +
    +
    Parameters
    +

    store_key (tuple) – This is the return from repeat, used to uniquely +identify the ticker to stop. Without the store_key, the ticker +must be stopped by passing its parameters to TICKER_HANDLER.remove +directly.

    +
    +
    Returns
    +

    bool

    +
    +
    True if a ticker was stopped, False if not (for example because no

    matching ticker was found or it was already stopped).

    +
    +
    +

    +
    +
    @@ -760,7 +842,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
      @@ -820,7 +902,7 @@ parsed and imported. Returns None and logs error if import fail already imported module object (e.g. models)

    Returns
    -

    variables (dict)

    +

    dict

    A dict of {variablename: variable} for all

    variables in the given module.

    @@ -829,7 +911,8 @@ already imported module object (e.g. models)

    Notes

    -

    Ignores modules and variable names starting with an underscore.

    +

    Ignores modules and variable names starting with an underscore, as well +as variables imported into the module from other modules.

    @@ -944,7 +1027,7 @@ importing directly from path doesn’t work.

    evennia.utils.utils.class_from_module(path, defaultpaths=None, fallback=None)[source]
    -

    Return a class from a module, given the module’s path. This is +

    Return a class from a module, given the class’ full python path. This is primarily used to convert db_typeclass_path:s to classes.

    Parameters
    @@ -970,7 +1053,7 @@ evennia repo itself.

    evennia.utils.utils.object_from_module(path, defaultpaths=None, fallback=None)
    -

    Return a class from a module, given the module’s path. This is +

    Return a class from a module, given the class’ full python path. This is primarily used to convert db_typeclass_path:s to classes.

    Parameters
    @@ -1041,15 +1124,11 @@ 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,47 +1159,126 @@ array) instead of strings.

    evennia.utils.utils.format_table(table, extra_space=1)[source]
    -

    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 +

    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 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).

      +positions may be empty though).

    • +
    • extra_space (int, optional) – Sets how much minimum extra +padding (in characters) should be left between columns.

    • +
    -
    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.

    -
    -
    -

    +
    Returns
    +

    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.

    -

    Example

    -
    ftable = format_table([[...], [...], ...])
    +

    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 = ""
     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.

    • +
    • ignore_ansi (bool, optional) – Ignore ansi markups when calculating white spacing.

    • +
    +
    +
    Returns
    +

    list – 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]
    @@ -1137,8 +1295,7 @@ Server by trying to access a PID file.

    Examples

    -

    This can be used to determine if we are in a subprocess by -something like:

    +

    This can be used to determine if we are in a subprocess by

    self_pid = os.getpid()
     server_pid, portal_pid = get_evennia_pids()
     is_subprocess = self_pid not in (server_pid, portal_pid)
    @@ -1189,7 +1346,8 @@ mainly used to lazy-load handlers:

    Once initialized, the AttributeHandler will be available as a -property “attributes” on the object.

    +property “attributes” on the object. This is read-only since +this functionality is pretty much exclusively used by handlers.

    __init__(func, name=None, doc=None)[source]
    @@ -1295,16 +1453,12 @@ 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)

    -

    -
    -
    @@ -1359,27 +1513,55 @@ of the game directory.

    List available typeclasses from all available modules.

    Parameters
    -

    parent (str, optional) – If given, only return typeclasses inheriting (at any distance) -from this parent.

    +

    parent (str, optional) – If given, only return typeclasses inheriting +(at any distance) from this parent.

    Returns
    -

    typeclasses (dict) – On the form {“typeclass.path”: typeclass, …}

    +

    dict – On the form {“typeclass.path”: typeclass, …}

    Notes

    -

    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 +

    This will dynamically 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.

    +
    + +
    +
    +evennia.utils.utils.get_all_cmdsets(parent=None)[source]
    +

    List available cmdsets from all available modules.

    +
    +
    Parameters
    +

    parent (str, optional) – If given, only return cmdsets inheriting (at +any distance) from this parent.

    +
    +
    Returns
    +

    dict – On the form {“cmdset.path”: cmdset, …}

    +
    +
    +

    Notes

    +

    This will dynamically retrieve all abstract django models inheriting at +any distance from the CmdSet base so it will work fine with any custom 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, ‘caller’ must the name of an argument or kwarg to the decorated -function.

    -

    Example:

    +

    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

    @interactive
     def myfunc(caller):
         caller.msg("This is a test")
    @@ -1394,7 +1576,104 @@ function.

    Notes

    -

    This turns the method into a generator!

    +

    This turns the decorated function or method into a generator.

    +
    + +
    +
    +evennia.utils.utils.safe_convert_to_types(converters, *args, raise_errors=True, **kwargs)[source]
    +

    Helper function to safely convert inputs to expected data types.

    +
    +
    Parameters
    +
      +
    • converters (tuple) – A tuple ((converter, converter,…), {kwarg: converter, …}) to +match a converter to each element in *args and **kwargs. +Each converter will will be called with the arg/kwarg-value as the only argument. +If there are too few converters given, the others will simply not be converter. If the +converter is given as the string ‘py’, it attempts to run +safe_eval/literal_eval on the input arg or kwarg value. It’s possible to +skip the arg/kwarg part of the tuple, an empty tuple/dict will then be assumed.

    • +
    • *args – The arguments to convert with argtypes.

    • +
    • raise_errors (bool, optional) – If set, raise any errors. This will +abort the conversion at that arg/kwarg. Otherwise, just skip the +conversion of the failing arg/kwarg. This will be set by the FuncParser if +this is used as a part of a FuncParser callable.

    • +
    • **kwargs – The kwargs to convert with kwargtypes

    • +
    +
    +
    Returns
    +

    tuple(args, kwargs) in converted form.

    +
    +
    Raises
    +
      +
    • utils.funcparser.ParsingError – If parsing failed in the ‘py’ +converter. This also makes this compatible with the FuncParser +interface.

    • +
    • any – Any other exception raised from other converters, if raise_errors is True.

    • +
    +
    +
    +

    Notes

    +

    This function is often used to validate/convert input from untrusted sources. For +security, the “py”-converter is deliberately limited and uses safe_eval/literal_eval +which only supports simple expressions or simple containers with literals. NEVER +use the python eval or exec methods as a converter for any untrusted input! Allowing +untrusted sources to execute arbitrary python on your server is a severe security risk,

    +

    Example:

    +
    $funcname(1, 2, 3.0, c=[1,2,3])
    +
    +def _funcname(*args, **kwargs):
    +    args, kwargs = safe_convert_input(((int, int, float), {'c': 'py'}), *args, **kwargs)
    +    # ...
    +
    +
    +
    + +
    +
    +evennia.utils.utils.strip_unsafe_input(txt, session=None, bypass_perms=None)[source]
    +

    Remove ‘unsafe’ text codes from text; these are used to elimitate +exploits in user-provided data, such as html-tags, line breaks etc.

    +
    +
    Parameters
    +
      +
    • txt (str) – The text to clean.

    • +
    • session (Session, optional) – A Session in order to determine if +the check should be bypassed by permission (will be checked +with the ‘perm’ lock, taking permission hierarchies into account).

    • +
    • bypass_perms (list, optional) – Iterable of permission strings +to check for bypassing the strip. If not given, use +settings.INPUT_CLEANUP_BYPASS_PERMISSIONS.

    • +
    +
    +
    Returns
    +

    str – The cleaned string.

    +
    +
    +

    Notes

    +

    The INPUT_CLEANUP_BYPASS_PERMISSIONS list defines what account +permissions are required to bypass this strip.

    +
    + +
    +
    +evennia.utils.utils.copy_word_case(base_word, new_word)[source]
    +

    Converts a word to use the same capitalization as a first word.

    +
    +
    Parameters
    +
      +
    • base_word (str) – A word to get the capitalization from.

    • +
    • new_word (str) – A new word to capitalize in the same way as base_word.

    • +
    +
    +
    Returns
    +

    str – The new_word with capitalization matching the first word.

    +
    +
    +

    Notes

    +

    This is meant for words. Longer sentences may get unexpected results.

    +

    If the two words have a mix of capital/lower letters _and_ new_word +is longer than base_word, the excess will retain its original case.

    @@ -1430,11 +1709,11 @@ function.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.utils.validatorfuncs.html b/docs/0.9.5/api/evennia.utils.validatorfuncs.html index aafd98ebb4..23827d9fd1 100644 --- a/docs/0.9.5/api/evennia.utils.validatorfuncs.html +++ b/docs/0.9.5/api/evennia.utils.validatorfuncs.html @@ -68,7 +68,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 the account. +user. If not provided, tries to use the timezone option of account. If neither one is provided, defaults to UTC.

  • @@ -88,8 +88,9 @@ If neither one is provided, defaults to UTC.

    Parameters
      -
    • entry (string) – This is a string from user-input. The intended format is, for example: “5d 2w 90s” for -‘five days, two weeks, and ninety seconds.’ Invalid sections are ignored.

    • +
    • entry (string) – This is a string from user-input. The intended format is, for example: +“5d 2w 90s” for ‘five days, two weeks, and ninety seconds.’ Invalid sections are +ignored.

    • option_key (str) – Name to display this query as.

    @@ -122,14 +123,16 @@ If neither one is provided, defaults to UTC.

    evennia.utils.validatorfuncs.boolean(entry, option_key='True/False', **kwargs)[source]
    -

    Simplest check in computer logic, right? This will take user input to flick the switch on or off -:param entry: A value such as True, On, Enabled, Disabled, False, 0, or 1. -:type entry: str -:param option_key: What kind of Boolean we are setting. What Option is this for? -:type option_key: str

    +

    Simplest check in computer logic, right? This will take user input to flick the switch on or off

    -
    Returns
    -

    Boolean

    +
    Parameters
    +
      +
    • entry (str) – A value such as True, On, Enabled, Disabled, False, 0, or 1.

    • +
    • option_key (str) – What kind of Boolean we are setting. What Option is this for?

    • +
    +
    +
    Returns
    +

    Boolean

    @@ -194,11 +197,11 @@ If neither one is provided, defaults to UTC.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.web.html b/docs/0.9.5/api/evennia.web.html index ba1dd00a95..cfbe926a38 100644 --- a/docs/0.9.5/api/evennia.web.html +++ b/docs/0.9.5/api/evennia.web.html @@ -41,10 +41,8 @@

    evennia.web

    -

    This sub-package holds the web presence of Evennia, using normal -Django to relate the database contents to web pages. Also the basic -webclient and the website are defined in here (the webserver itself is -found under the server package).

    +

    This sub-package holds the web presence of Evennia, using normal Django to +relate the database contents to web pages.

    Versions

    -
    diff --git a/docs/0.9.5/api/evennia.web.urls.html b/docs/0.9.5/api/evennia.web.urls.html index e98d22c4cc..a6b69a3db9 100644 --- a/docs/0.9.5/api/evennia.web.urls.html +++ b/docs/0.9.5/api/evennia.web.urls.html @@ -41,6 +41,21 @@

    evennia.web.urls

    +

    File that determines what each URL points to. This uses Python regular expressions. +This is the starting point when a user enters an URL.

    +
      +
    1. The URL is matched with a regex, tying it to a given view. Note that this central url.py +file includes url.py from all the various web-components found in views/ so the search +space is much larger than what is shown here.

    2. +
    3. The view (a Python function or class is executed)

    4. +
    5. The view uses a template (a HTML file which may contain template markers for dynamically +modifying its contents; the locations of such templates are given by +settings.TEMPLATES[0][‘DIRS’]) and which may in turn may include static +assets (CSS, images etc).

    6. +
    7. The view ‘renders’ the template into a finished HTML page, replacing all +dynamic content as appropriate.

    8. +
    9. The HTML page is returned to the user.

    10. +
    @@ -74,11 +89,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 e5776552aa..416d1a0c35 100644 --- a/docs/0.9.5/api/evennia.web.utils.backends.html +++ b/docs/0.9.5/api/evennia.web.utils.backends.html @@ -100,11 +100,11 @@ an already authenticated account and bypass authentication.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 3584bc0072..7146cdaee7 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 @@ -41,29 +41,21 @@

    evennia.web.utils.general_context

    +

    This file defines global variables that will always be available in a view +context without having to repeatedly include it.

    +

    For this to work, this file is included in the settings file, in the +TEMPLATES[“OPTIONS”][“context_processors”] list.

    -
    -evennia.web.utils.general_context.set_game_name_and_slogan()[source]
    -

    Sets global variables GAME_NAME and GAME_SLOGAN which are used by -general_context.

    -

    Notes

    -

    This function is used for unit testing the values of the globals.

    -
    - -
    -
    -evennia.web.utils.general_context.set_webclient_settings()[source]
    -

    As with set_game_name_and_slogan above, this sets global variables pertaining -to webclient settings.

    -

    Notes

    -

    Used for unit testing.

    +
    +evennia.web.utils.general_context.load_game_settings()[source]
    +

    Load and cache game settings.

    evennia.web.utils.general_context.general_context(request)[source]
    -

    Returns common Evennia-related context stuff, which -is automatically added to context of all views.

    +

    Returns common Evennia-related context stuff, which is automatically added +to context of all views.

    @@ -99,11 +91,11 @@ is automatically added to context of all views.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.web.utils.html b/docs/0.9.5/api/evennia.web.utils.html index 751f170c60..e9fc6ae57c 100644 --- a/docs/0.9.5/api/evennia.web.utils.html +++ b/docs/0.9.5/api/evennia.web.utils.html @@ -82,11 +82,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 11301d2a7e..0df33f520e 100644 --- a/docs/0.9.5/api/evennia.web.utils.middleware.html +++ b/docs/0.9.5/api/evennia.web.utils.middleware.html @@ -92,11 +92,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 fca4071067..5728b561e2 100644 --- a/docs/0.9.5/api/evennia.web.utils.tests.html +++ b/docs/0.9.5/api/evennia.web.utils.tests.html @@ -55,16 +55,6 @@ test_general_context()[source]
    -
    -
    -test_set_game_name_and_slogan(mock_get_version, mock_settings)[source]
    -
    - -
    -
    -test_set_webclient_settings(mock_settings)[source]
    -
    -
    @@ -100,11 +90,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.web.webclient.html b/docs/0.9.5/api/evennia.web.webclient.html index 33b1584648..d9e55a2359 100644 --- a/docs/0.9.5/api/evennia.web.webclient.html +++ b/docs/0.9.5/api/evennia.web.webclient.html @@ -80,11 +80,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 e70d2d4493..679abcc491 100644 --- a/docs/0.9.5/api/evennia.web.webclient.urls.html +++ b/docs/0.9.5/api/evennia.web.webclient.urls.html @@ -41,8 +41,7 @@

    evennia.web.webclient.urls

    -

    This structures the (simple) structure of the -webpage ‘application’.

    +

    This structures the (simple) structure of the webpage ‘application’.

    @@ -76,11 +75,11 @@ webpage ‘application’.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 417bbf871f..ad42ce31a2 100644 --- a/docs/0.9.5/api/evennia.web.webclient.views.html +++ b/docs/0.9.5/api/evennia.web.webclient.views.html @@ -82,11 +82,11 @@ page and serve it eventual static content.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 aea1721da8..c0189ba575 100644 --- a/docs/0.9.5/api/evennia.web.website.forms.html +++ b/docs/0.9.5/api/evennia.web.website.forms.html @@ -312,11 +312,11 @@ wish to allow.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/api/evennia.web.website.html b/docs/0.9.5/api/evennia.web.website.html index 268dd0012f..7261611712 100644 --- a/docs/0.9.5/api/evennia.web.website.html +++ b/docs/0.9.5/api/evennia.web.website.html @@ -90,11 +90,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 1ae7d0dbb7..7b37b2a2aa 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 @@ -39,13 +39,8 @@
    -
    -

    evennia.web.website.templatetags.addclass

    -
    -
    -evennia.web.website.templatetags.addclass.addclass(field, given_class)[source]
    -
    - +
    +

    evennia.web.website.templatetags.addclass

    @@ -79,11 +74,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 e587d0d3db..ddbc1455a7 100644 --- a/docs/0.9.5/api/evennia.web.website.templatetags.html +++ b/docs/0.9.5/api/evennia.web.website.templatetags.html @@ -79,11 +79,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 fd538e8a83..c309bd3e92 100644 --- a/docs/0.9.5/api/evennia.web.website.tests.html +++ b/docs/0.9.5/api/evennia.web.website.tests.html @@ -259,6 +259,81 @@ +
    +
    +class evennia.web.website.tests.HelpListTest(methodName='runTest')[source]
    +

    Bases: evennia.web.website.tests.EvenniaWebTest

    +
    +
    +url_name = 'help'
    +
    + +
    + +
    +
    +class evennia.web.website.tests.HelpDetailTest(methodName='runTest')[source]
    +

    Bases: evennia.web.website.tests.EvenniaWebTest

    +
    +
    +url_name = 'help-entry-detail'
    +
    + +
    +
    +setUp()[source]
    +

    Sets up testing environment

    +
    + +
    +
    +get_kwargs()[source]
    +
    + +
    +
    +test_view()[source]
    +
    + +
    +
    +test_object_cache()[source]
    +
    + +
    + +
    +
    +class evennia.web.website.tests.HelpLockedDetailTest(methodName='runTest')[source]
    +

    Bases: evennia.web.website.tests.EvenniaWebTest

    +
    +
    +url_name = 'help-entry-detail'
    +
    + +
    +
    +setUp()[source]
    +

    Sets up testing environment

    +
    + +
    +
    +get_kwargs()[source]
    +
    + +
    +
    +test_locked_entry()[source]
    +
    + +
    +
    +test_lock_with_perm()[source]
    +
    + +
    +
    class evennia.web.website.tests.CharacterCreateView(methodName='runTest')[source]
    @@ -445,11 +520,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 833449a9cf..65dc8b6d9e 100644 --- a/docs/0.9.5/api/evennia.web.website.urls.html +++ b/docs/0.9.5/api/evennia.web.website.urls.html @@ -41,7 +41,7 @@

    evennia.web.website.urls

    -

    This structures the website.

    +

    This redirects to website sub-pages.

    @@ -75,11 +75,11 @@
  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    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 ee63d1abe5..1b83fba3f7 100644 --- a/docs/0.9.5/api/evennia.web.website.views.html +++ b/docs/0.9.5/api/evennia.web.website.views.html @@ -41,793 +41,7 @@

    evennia.web.website.views

    -

    This file contains the generic, assorted views that don’t fall under one of the other applications. -Views are django’s way of processing e.g. html templates on the fly.

    -
    -
    -evennia.web.website.views.to_be_implemented(request)[source]
    -

    A notice letting the user know that this particular feature hasn’t been -implemented yet.

    -
    - -
    -
    -evennia.web.website.views.evennia_admin(request)[source]
    -

    Helpful Evennia-specific admin page.

    -
    - -
    -
    -evennia.web.website.views.admin_wrapper(request)[source]
    -

    Wrapper that allows us to properly use the base Django admin site, if needed.

    -
    - -
    -
    -class evennia.web.website.views.EvenniaIndexView(**kwargs)[source]
    -

    Bases: django.views.generic.base.TemplateView

    -

    This is a basic example of a Django class-based view, which are functionally -very similar to Evennia Commands but differ in structure. Commands are used -to interface with users using a terminal client. Views are used to interface -with users using a web browser.

    -

    To use a class-based view, you need to have written a template in HTML, and -then you write a view like this to tell Django what values to display on it.

    -

    While there are simpler ways of writing views using plain functions (and -Evennia currently contains a few examples of them), just like Commands, -writing views as classes provides you with more flexibility– you can extend -classes and change things to suit your needs rather than having to copy and -paste entire code blocks over and over. Django also comes with many default -views for displaying things, all of them implemented as classes.

    -

    This particular example displays the index page.

    -
    -
    -template_name = 'website/index.html'
    -
    - -
    -
    -get_context_data(**kwargs)[source]
    -

    This is a common Django method. Think of this as the website -equivalent of the Evennia Command.func() method.

    -

    If you just want to display a static page with no customization, you -don’t need to define this method– just create a view, define -template_name and you’re done.

    -

    The only catch here is that if you extend or overwrite this method, -you’ll always want to make sure you call the parent method to get a -context object. It’s just a dict, but it comes prepopulated with all -sorts of background data intended for display on the page.

    -

    You can do whatever you want to it, but it must be returned at the end -of this method.

    -
    -
    Keyword Arguments
    -

    any (any) – Passed through.

    -
    -
    Returns
    -

    context (dict) – Dictionary of data you want to display on the page.

    -
    -
    -
    - -
    - -
    -
    -class evennia.web.website.views.TypeclassMixin[source]
    -

    Bases: object

    -

    This is a “mixin”, a modifier of sorts.

    -

    Django views typically work with classes called “models.” Evennia objects -are an enhancement upon these Django models and are called “typeclasses.” -But Django itself has no idea what a “typeclass” is.

    -

    For the sake of mitigating confusion, any view class with this in its -inheritance list will be modified to work with Evennia Typeclass objects or -Django models interchangeably.

    -
    -
    -property typeclass
    -
    - -
    - -
    -
    -class evennia.web.website.views.EvenniaCreateView(**kwargs)[source]
    -

    Bases: django.views.generic.edit.CreateView, evennia.web.website.views.TypeclassMixin

    -

    This view extends Django’s default CreateView.

    -

    CreateView is used for creating new objects, be they Accounts, Characters or -otherwise.

    -
    -
    -property page_title
    -
    - -
    - -
    -
    -class evennia.web.website.views.EvenniaDetailView(**kwargs)[source]
    -

    Bases: django.views.generic.detail.DetailView, evennia.web.website.views.TypeclassMixin

    -

    This view extends Django’s default DetailView.

    -

    DetailView is used for displaying objects, be they Accounts, Characters or -otherwise.

    -
    -
    -property page_title
    -
    - -
    - -
    -
    -class evennia.web.website.views.EvenniaUpdateView(**kwargs)[source]
    -

    Bases: django.views.generic.edit.UpdateView, evennia.web.website.views.TypeclassMixin

    -

    This view extends Django’s default UpdateView.

    -

    UpdateView is used for updating objects, be they Accounts, Characters or -otherwise.

    -
    -
    -property page_title
    -
    - -
    - -
    -
    -class evennia.web.website.views.EvenniaDeleteView(**kwargs)[source]
    -

    Bases: django.views.generic.edit.DeleteView, evennia.web.website.views.TypeclassMixin

    -

    This view extends Django’s default DeleteView.

    -

    DeleteView is used for deleting objects, be they Accounts, Characters or -otherwise.

    -
    -
    -property page_title
    -
    - -
    - -
    -
    -class evennia.web.website.views.ObjectDetailView(**kwargs)[source]
    -

    Bases: evennia.web.website.views.EvenniaDetailView

    -

    This is an important view.

    -

    Any view you write that deals with displaying, updating or deleting a -specific object will want to inherit from this. It provides the mechanisms -by which to retrieve the object and make sure the user requesting it has -permissions to actually do things to it.

    -
    -
    -model
    -

    alias of evennia.objects.objects.DefaultObject

    -
    - -
    -
    -template_name = 'website/object_detail.html'
    -
    - -
    -
    -access_type = 'view'
    -
    - -
    -
    -attributes = ['name', 'desc']
    -
    - -
    -
    -get_context_data(**kwargs)[source]
    -

    Adds an ‘attributes’ list to the request context consisting of the -attributes specified at the class level, and in the order provided.

    -

    Django views do not provide a way to reference dynamic attributes, so -we have to grab them all before we render the template.

    -
    -
    Returns
    -

    context (dict) – Django context object

    -
    -
    -
    - -
    -
    -get_object(queryset=None)[source]
    -

    Override of Django hook that provides some important Evennia-specific -functionality.

    -

    Evennia does not natively store slugs, so where a slug is provided, -calculate the same for the object and make sure it matches.

    -

    This also checks to make sure the user has access to view/edit/delete -this object!

    -
    - -
    - -
    -
    -class evennia.web.website.views.ObjectCreateView(**kwargs)[source]
    -

    Bases: django.contrib.auth.mixins.LoginRequiredMixin, evennia.web.website.views.EvenniaCreateView

    -

    This is an important view.

    -

    Any view you write that deals with creating a specific object will want to -inherit from this. It provides the mechanisms by which to make sure the user -requesting creation of an object is authenticated, and provides a sane -default title for the page.

    -
    -
    -model
    -

    alias of evennia.objects.objects.DefaultObject

    -
    - -
    - -
    -
    -class evennia.web.website.views.ObjectDeleteView(**kwargs)[source]
    -

    Bases: django.contrib.auth.mixins.LoginRequiredMixin, evennia.web.website.views.ObjectDetailView, evennia.web.website.views.EvenniaDeleteView

    -

    This is an important view for obvious reasons!

    -

    Any view you write that deals with deleting a specific object will want to -inherit from this. It provides the mechanisms by which to make sure the user -requesting deletion of an object is authenticated, and that they have -permissions to delete the requested object.

    -
    -
    -model
    -

    alias of evennia.objects.objects.DefaultObject

    -
    - -
    -
    -template_name = 'website/object_confirm_delete.html'
    -
    - -
    -
    -access_type = 'delete'
    -
    - -
    -
    -delete(request, *args, **kwargs)[source]
    -

    Calls the delete() method on the fetched object and then -redirects to the success URL.

    -

    We extend this so we can capture the name for the sake of confirmation.

    -
    - -
    - -
    -
    -class evennia.web.website.views.ObjectUpdateView(**kwargs)[source]
    -

    Bases: django.contrib.auth.mixins.LoginRequiredMixin, evennia.web.website.views.ObjectDetailView, evennia.web.website.views.EvenniaUpdateView

    -

    This is an important view.

    -

    Any view you write that deals with updating a specific object will want to -inherit from this. It provides the mechanisms by which to make sure the user -requesting editing of an object is authenticated, and that they have -permissions to edit the requested object.

    -

    This functions slightly different from default Django UpdateViews in that -it does not update core model fields, only object attributes!

    -
    -
    -model
    -

    alias of evennia.objects.objects.DefaultObject

    -
    - -
    -
    -access_type = 'edit'
    -
    - -
    -
    -get_success_url()[source]
    -

    Django hook.

    -

    Can be overridden to return any URL you want to redirect the user to -after the object is successfully updated, but by default it goes to the -object detail page so the user can see their changes reflected.

    -
    - -
    -
    -get_initial()[source]
    -

    Django hook, modified for Evennia.

    -

    Prepopulates the update form field values based on object db attributes.

    -
    -
    Returns
    -

    data (dict)

    -
    -
    Dictionary of key:value pairs containing initial form

    data.

    -
    -
    -

    -
    -
    -
    - -
    -
    -form_valid(form)[source]
    -

    Override of Django hook.

    -

    Updates object attributes based on values submitted.

    -

    This is run when the form is submitted and the data on it is deemed -valid– all values are within expected ranges, all strings contain -valid characters and lengths, etc.

    -

    This method is only called if all values for the fields submitted -passed form validation, so at this point we can assume the data is -validated and sanitized.

    -
    - -
    - -
    -
    -class evennia.web.website.views.AccountMixin[source]
    -

    Bases: evennia.web.website.views.TypeclassMixin

    -

    This is a “mixin”, a modifier of sorts.

    -

    Any view class with this in its inheritance list will be modified to work -with Account objects instead of generic Objects or otherwise.

    -
    -
    -model
    -

    alias of evennia.accounts.accounts.DefaultAccount

    -
    - -
    -
    -form_class
    -

    alias of evennia.web.website.forms.AccountForm

    -
    - -
    - -
    -
    -class evennia.web.website.views.AccountCreateView(**kwargs)[source]
    -

    Bases: evennia.web.website.views.AccountMixin, evennia.web.website.views.EvenniaCreateView

    -

    Account creation view.

    -
    -
    -template_name = 'website/registration/register.html'
    -
    - -
    -
    -success_url
    -
    - -
    -
    -form_valid(form)[source]
    -

    Django hook, modified for Evennia.

    -

    This hook is called after a valid form is submitted.

    -

    When an account creation form is submitted and the data is deemed valid, -proceeds with creating the Account object.

    -
    - -
    - -
    -
    -class evennia.web.website.views.CharacterMixin[source]
    -

    Bases: evennia.web.website.views.TypeclassMixin

    -

    This is a “mixin”, a modifier of sorts.

    -

    Any view class with this in its inheritance list will be modified to work -with Character objects instead of generic Objects or otherwise.

    -
    -
    -model
    -

    alias of evennia.objects.objects.DefaultCharacter

    -
    - -
    -
    -form_class
    -

    alias of evennia.web.website.forms.CharacterForm

    -
    - -
    -
    -success_url
    -
    - -
    -
    -get_queryset()[source]
    -

    This method will override the Django get_queryset method to only -return a list of characters associated with the current authenticated -user.

    -
    -
    Returns
    -

    queryset (QuerySet) – Django queryset for use in the given view.

    -
    -
    -
    - -
    - -
    -
    -class evennia.web.website.views.CharacterListView(**kwargs)[source]
    -

    Bases: django.contrib.auth.mixins.LoginRequiredMixin, evennia.web.website.views.CharacterMixin, django.views.generic.list.ListView

    -

    This view provides a mechanism by which a logged-in player can view a list -of all other characters.

    -

    This view requires authentication by default as a nominal effort to prevent -human stalkers and automated bots/scrapers from harvesting data on your users.

    -
    -
    -template_name = 'website/character_list.html'
    -
    - -
    -
    -paginate_by = 100
    -
    - -
    -
    -page_title = 'Character List'
    -
    - -
    -
    -access_type = 'view'
    -
    - -
    -
    -get_queryset()[source]
    -

    This method will override the Django get_queryset method to return a -list of all characters (filtered/sorted) instead of just those limited -to the account.

    -
    -
    Returns
    -

    queryset (QuerySet) – Django queryset for use in the given view.

    -
    -
    -
    - -
    - -
    -
    -class evennia.web.website.views.CharacterPuppetView(**kwargs)[source]
    -

    Bases: django.contrib.auth.mixins.LoginRequiredMixin, evennia.web.website.views.CharacterMixin, django.views.generic.base.RedirectView, evennia.web.website.views.ObjectDetailView

    -

    This view provides a mechanism by which a logged-in player can “puppet” one -of their characters within the context of the website.

    -

    It also ensures that any user attempting to puppet something is logged in, -and that their intended puppet is one that they own.

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

    Django hook.

    -

    This view returns the URL to which the user should be redirected after -a passed or failed puppet attempt.

    -
    -
    Returns
    -

    url (str) – Path to post-puppet destination.

    -
    -
    -
    - -
    - -
    -
    -class evennia.web.website.views.CharacterManageView(**kwargs)[source]
    -

    Bases: django.contrib.auth.mixins.LoginRequiredMixin, evennia.web.website.views.CharacterMixin, django.views.generic.list.ListView

    -

    This view provides a mechanism by which a logged-in player can browse, -edit, or delete their own characters.

    -
    -
    -paginate_by = 10
    -
    - -
    -
    -template_name = 'website/character_manage_list.html'
    -
    - -
    -
    -page_title = 'Manage Characters'
    -
    - -
    - -
    -
    -class evennia.web.website.views.CharacterUpdateView(**kwargs)[source]
    -

    Bases: evennia.web.website.views.CharacterMixin, evennia.web.website.views.ObjectUpdateView

    -

    This view provides a mechanism by which a logged-in player (enforced by -ObjectUpdateView) can edit the attributes of a character they own.

    -
    -
    -form_class
    -

    alias of evennia.web.website.forms.CharacterUpdateForm

    -
    - -
    -
    -template_name = 'website/character_form.html'
    -
    - -
    - -
    -
    -class evennia.web.website.views.CharacterDetailView(**kwargs)[source]
    -

    Bases: evennia.web.website.views.CharacterMixin, evennia.web.website.views.ObjectDetailView

    -

    This view provides a mechanism by which a user can view the attributes of -a character, owned by them or not.

    -
    -
    -template_name = 'website/object_detail.html'
    -
    - -
    -
    -attributes = ['name', 'desc']
    -
    - -
    -
    -access_type = 'view'
    -
    - -
    -
    -get_queryset()[source]
    -

    This method will override the Django get_queryset method to return a -list of all characters the user may access.

    -
    -
    Returns
    -

    queryset (QuerySet) – Django queryset for use in the given view.

    -
    -
    -
    - -
    - -
    -
    -class evennia.web.website.views.CharacterDeleteView(**kwargs)[source]
    -

    Bases: evennia.web.website.views.CharacterMixin, evennia.web.website.views.ObjectDeleteView

    -

    This view provides a mechanism by which a logged-in player (enforced by -ObjectDeleteView) can delete a character they own.

    -
    - -
    -
    -class evennia.web.website.views.CharacterCreateView(**kwargs)[source]
    -

    Bases: evennia.web.website.views.CharacterMixin, evennia.web.website.views.ObjectCreateView

    -

    This view provides a mechanism by which a logged-in player (enforced by -ObjectCreateView) can create a new character.

    -
    -
    -template_name = 'website/character_form.html'
    -
    - -
    -
    -form_valid(form)[source]
    -

    Django hook, modified for Evennia.

    -

    This hook is called after a valid form is submitted.

    -

    When an character creation form is submitted and the data is deemed valid, -proceeds with creating the Character object.

    -
    - -
    - -
    -
    -class evennia.web.website.views.ChannelMixin[source]
    -

    Bases: evennia.web.website.views.TypeclassMixin

    -

    This is a “mixin”, a modifier of sorts.

    -

    Any view class with this in its inheritance list will be modified to work -with HelpEntry objects instead of generic Objects or otherwise.

    -
    -
    -model
    -

    alias of evennia.comms.comms.DefaultChannel

    -
    - -
    -
    -page_title = 'Channels'
    -
    - -
    -
    -access_type = 'listen'
    -
    - -
    -
    -get_queryset()[source]
    -

    Django hook; here we want to return a list of only those Channels -and other documentation that the current user is allowed to see.

    -
    -
    Returns
    -

    queryset (QuerySet) – List of Channels available to the user.

    -
    -
    -
    - -
    - -
    -
    -class evennia.web.website.views.ChannelListView(**kwargs)[source]
    -

    Bases: evennia.web.website.views.ChannelMixin, django.views.generic.list.ListView

    -

    Returns a list of channels that can be viewed by a user, authenticated -or not.

    -
    -
    -paginate_by = 100
    -
    - -
    -
    -template_name = 'website/channel_list.html'
    -
    - -
    -
    -page_title = 'Channel Index'
    -
    - -
    - -
    - -
    -
    -get_context_data(**kwargs)[source]
    -

    Django hook; we override it to calculate the most popular channels.

    -
    -
    Returns
    -

    context (dict) – Django context object

    -
    -
    -
    - -
    - -
    -
    -class evennia.web.website.views.ChannelDetailView(**kwargs)[source]
    -

    Bases: evennia.web.website.views.ChannelMixin, evennia.web.website.views.ObjectDetailView

    -

    Returns the log entries for a given channel.

    -
    -
    -template_name = 'website/channel_detail.html'
    -
    - -
    -
    -attributes = ['name']
    -
    - -
    -
    -max_num_lines = 1000
    -
    - -
    -
    -get_context_data(**kwargs)[source]
    -

    Django hook; before we can display the channel logs, we need to recall -the logfile and read its lines.

    -
    -
    Returns
    -

    context (dict) – Django context object

    -
    -
    -
    - -
    -
    -get_object(queryset=None)[source]
    -

    Override of Django hook that retrieves an object by slugified channel -name.

    -
    -
    Returns
    -

    channel (Channel) – Channel requested in the URL.

    -
    -
    -
    - -
    - -
    -
    -class evennia.web.website.views.HelpMixin[source]
    -

    Bases: evennia.web.website.views.TypeclassMixin

    -

    This is a “mixin”, a modifier of sorts.

    -

    Any view class with this in its inheritance list will be modified to work -with HelpEntry objects instead of generic Objects or otherwise.

    -
    -
    -model
    -

    alias of evennia.help.models.HelpEntry

    -
    - -
    -
    -page_title = 'Help'
    -
    - -
    -
    -get_queryset()[source]
    -

    Django hook; here we want to return a list of only those HelpEntries -and other documentation that the current user is allowed to see.

    -
    -
    Returns
    -

    queryset (QuerySet) – List of Help entries available to the user.

    -
    -
    -
    - -
    - -
    -
    -class evennia.web.website.views.HelpListView(**kwargs)[source]
    -

    Bases: evennia.web.website.views.HelpMixin, django.views.generic.list.ListView

    -

    Returns a list of help entries that can be viewed by a user, authenticated -or not.

    -
    -
    -paginate_by = 500
    -
    - -
    -
    -template_name = 'website/help_list.html'
    -
    - -
    -
    -page_title = 'Help Index'
    -
    - -
    - -
    -
    -class evennia.web.website.views.HelpDetailView(**kwargs)[source]
    -

    Bases: evennia.web.website.views.HelpMixin, evennia.web.website.views.EvenniaDetailView

    -

    Returns the detail page for a given help entry.

    -
    -
    -template_name = 'website/help_detail.html'
    -
    - -
    -
    -get_context_data(**kwargs)[source]
    -

    Adds navigational data to the template to let browsers go to the next -or previous entry in the help list.

    -
    -
    Returns
    -

    context (dict) – Django context object

    -
    -
    -
    - -
    -
    -get_object(queryset=None)[source]
    -

    Override of Django hook that retrieves an object by category and topic -instead of pk and slug.

    -
    -
    Returns
    -

    entry (HelpEntry) – HelpEntry requested in the URL.

    -
    -
    -
    - -
    - +

    Website views.

    @@ -861,11 +75,11 @@ instead of pk and slug.

  • Home page
  • Evennia Github
  • Game Index
  • -
  • IRC - - Discord - - Forums +
  • + Discord - + Discussions - + Blog
  • -
  • Evennia Dev blog
  • Versions

    -
    diff --git a/docs/0.9.5/genindex.html b/docs/0.9.5/genindex.html index 239c8c1ab4..aeabfebbe2 100644 --- a/docs/0.9.5/genindex.html +++ b/docs/0.9.5/genindex.html @@ -67,6 +67,7 @@ | V | W | X + | Y

    _

    @@ -81,9 +82,7 @@
  • (evennia.commands.command.CommandMeta method)
  • -
  • (evennia.comms.channelhandler.ChannelHandler method) -
  • -
  • (evennia.comms.models.Msg method) +
  • (evennia.comms.models.SubscriptionHandler method)
  • (evennia.comms.models.TempMsg method)
  • @@ -198,10 +197,6 @@
  • (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)
  • @@ -216,14 +211,20 @@
  • (evennia.server.webserver.LockableThreadPool method)
  • (evennia.server.webserver.WSGIWebServer method) -
  • -
  • (evennia.typeclasses.admin.AttributeForm method) -
  • -
  • (evennia.typeclasses.admin.TagForm method)
  • (evennia.typeclasses.attributes.AttributeHandler method)
  • -
  • (evennia.typeclasses.attributes.NAttributeHandler method) +
  • (evennia.typeclasses.attributes.AttributeProperty 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.NickHandler method)
  • @@ -252,8 +253,6 @@
  • (evennia.utils.evtable.EvColumn method)
  • (evennia.utils.evtable.EvTable method) -
  • -
  • (evennia.utils.inlinefuncs.ParseStack method)
  • (evennia.utils.logger.WeeklyLogFile method)
  • @@ -313,23 +312,9 @@
  • (evennia.server.serversession.ServerSession method)
  • -
  • (evennia.typeclasses.attributes.Attribute method) +
  • (evennia.typeclasses.attributes.IAttribute method)
  • (evennia.typeclasses.models.TypedObject method) -
  • - -
  • access_type (evennia.web.website.views.ChannelMixin attribute) - -
  • account() (evennia.objects.models.ObjectDB property) @@ -361,27 +346,9 @@
  • (evennia.commands.default.account.CmdWho attribute)
  • -
  • (evennia.commands.default.comms.CmdAddCom attribute) +
  • (evennia.commands.default.comms.CmdChannel attribute)
  • -
  • (evennia.commands.default.comms.CmdAllCom attribute) -
  • -
  • (evennia.commands.default.comms.CmdCBoot attribute) -
  • -
  • (evennia.commands.default.comms.CmdCdesc attribute) -
  • -
  • (evennia.commands.default.comms.CmdCdestroy attribute) -
  • -
  • (evennia.commands.default.comms.CmdCemit attribute) -
  • -
  • (evennia.commands.default.comms.CmdChannelCreate attribute) -
  • -
  • (evennia.commands.default.comms.CmdChannels attribute) -
  • -
  • (evennia.commands.default.comms.CmdClock attribute) -
  • -
  • (evennia.commands.default.comms.CmdCWho attribute) -
  • -
  • (evennia.commands.default.comms.CmdDelCom attribute) +
  • (evennia.commands.default.comms.CmdObjectChannel attribute)
  • (evennia.commands.default.comms.CmdPage attribute)
  • @@ -406,11 +373,7 @@
  • (evennia.web.website.tests.EvenniaWebTest attribute)
  • -
  • AccountAttributeInline (class in evennia.accounts.admin) -
  • AccountCmdSet (class in evennia.commands.default.cmdset_account) -
  • -
  • AccountCreateView (class in evennia.web.website.views)
  • AccountDB (class in evennia.accounts.models)
  • @@ -424,39 +387,15 @@
  • (evennia.typeclasses.tags.Tag attribute)
  • -
  • AccountDBAdmin (class in evennia.accounts.admin) -
  • -
  • AccountDBChangeForm (class in evennia.accounts.admin) -
  • -
  • AccountDBChangeForm.Meta (class in evennia.accounts.admin) -
  • -
  • AccountDBCreationForm (class in evennia.accounts.admin) -
  • -
  • AccountDBCreationForm.Meta (class in evennia.accounts.admin) -
  • AccountDBManager (class in evennia.accounts.manager)
  • AccountDBPasswordChecker (class in evennia.server.portal.ssh)
  • -
  • AccountForm (class in evennia.accounts.admin) - -
  • -
  • AccountForm.Meta (class in evennia.accounts.admin) - -
  • -
  • AccountInline (class in evennia.accounts.admin) +
  • AccountForm.Meta (class in evennia.web.website.forms)
  • AccountManager (class in evennia.accounts.manager) -
  • -
  • AccountMixin (class in evennia.web.website.views) -
  • -
  • AccountTagInline (class in evennia.accounts.admin)
  • action() (evennia.server.portal.irc.IRCBot method)
  • @@ -481,7 +420,7 @@ +
  • add_alias() (evennia.commands.default.comms.CmdChannel method) +
  • add_callback() (evennia.contrib.ingame_python.commands.CmdCallback method)
  • -
  • add_channel() (evennia.comms.channelhandler.ChannelHandler method) -
  • add_choice() (evennia.contrib.building_menu.BuildingMenu method)
  • add_choice_edit() (evennia.contrib.building_menu.BuildingMenu method) @@ -546,18 +479,6 @@
  • add_event() (evennia.contrib.ingame_python.scripts.EventHandler method)
  • -
  • add_fieldsets (evennia.accounts.admin.AccountDBAdmin attribute) - -
  • -
  • add_form (evennia.accounts.admin.AccountDBAdmin attribute) - -
  • add_header() (evennia.utils.evtable.EvTable method)
  • add_language() (in module evennia.contrib.rplanguage) @@ -566,9 +487,7 @@
  • add_rows() (evennia.utils.evtable.EvColumn method)
  • -
  • addclass() (in module evennia.web.website.templatetags.addclass) -
  • -
  • admin_wrapper() (in module evennia.web.website.views) +
  • add_user_channel_alias() (evennia.comms.comms.DefaultChannel method)
  • AdminPortal2Server (class in evennia.server.portal.amp)
  • @@ -654,10 +573,12 @@
  • (evennia.commands.default.building.CmdMvAttr attribute)
  • (evennia.commands.default.building.CmdName attribute) +
  • +
  • (evennia.commands.default.building.CmdObjects attribute)
  • (evennia.commands.default.building.CmdOpen attribute)
  • -
  • (evennia.commands.default.building.CmdScript attribute) +
  • (evennia.commands.default.building.CmdScripts attribute)
  • (evennia.commands.default.building.CmdSetAttribute attribute)
  • @@ -681,33 +602,15 @@
  • (evennia.commands.default.building.ObjManipCommand attribute)
  • -
  • (evennia.commands.default.comms.CmdAddCom attribute) -
  • -
  • (evennia.commands.default.comms.CmdAllCom attribute) -
  • -
  • (evennia.commands.default.comms.CmdCBoot attribute) -
  • -
  • (evennia.commands.default.comms.CmdCdesc attribute) -
  • -
  • (evennia.commands.default.comms.CmdCdestroy attribute) -
  • -
  • (evennia.commands.default.comms.CmdCemit attribute) -
  • -
  • (evennia.commands.default.comms.CmdChannelCreate attribute) -
  • -
  • (evennia.commands.default.comms.CmdChannels attribute) -
  • -
  • (evennia.commands.default.comms.CmdClock attribute) -
  • -
  • (evennia.commands.default.comms.CmdCWho attribute) -
  • -
  • (evennia.commands.default.comms.CmdDelCom attribute) +
  • (evennia.commands.default.comms.CmdChannel attribute)
  • (evennia.commands.default.comms.CmdGrapevine2Chan attribute)
  • (evennia.commands.default.comms.CmdIRC2Chan attribute)
  • (evennia.commands.default.comms.CmdIRCStatus attribute) +
  • +
  • (evennia.commands.default.comms.CmdObjectChannel attribute)
  • (evennia.commands.default.comms.CmdPage attribute)
  • @@ -750,28 +653,24 @@
  • (evennia.commands.default.syscommands.SystemNoInput attribute)
  • (evennia.commands.default.syscommands.SystemNoMatch attribute) -
  • -
  • (evennia.commands.default.syscommands.SystemSendToChannel attribute)
  • (evennia.commands.default.system.CmdAbout attribute)
  • (evennia.commands.default.system.CmdAccounts attribute) -
  • -
  • (evennia.commands.default.system.CmdObjects attribute)
  • (evennia.commands.default.system.CmdPy attribute)
  • (evennia.commands.default.system.CmdReload attribute)
  • (evennia.commands.default.system.CmdReset attribute) -
  • -
  • (evennia.commands.default.system.CmdScripts attribute)
  • (evennia.commands.default.system.CmdServerLoad attribute)
  • (evennia.commands.default.system.CmdService attribute)
  • (evennia.commands.default.system.CmdShutdown attribute) +
  • +
  • (evennia.commands.default.system.CmdTasks attribute)
  • (evennia.commands.default.system.CmdTickers attribute)
  • @@ -794,8 +693,6 @@
  • (evennia.commands.default.unloggedin.CmdUnconnectedQuit attribute)
  • (evennia.commands.default.unloggedin.CmdUnconnectedScreenreader attribute) -
  • -
  • (evennia.comms.channelhandler.ChannelCommand attribute)
  • (evennia.contrib.barter.CmdAccept attribute)
  • @@ -993,19 +890,21 @@
  • (evennia.contrib.turnbattle.tb_range.CmdWithdraw attribute)
  • -
  • (evennia.contrib.tutorial_examples.cmdset_red_button.CmdBlindHelp attribute) +
  • (evennia.contrib.tutorial_examples.red_button.CmdBlindHelp attribute)
  • -
  • (evennia.contrib.tutorial_examples.cmdset_red_button.CmdBlindLook attribute) +
  • (evennia.contrib.tutorial_examples.red_button.CmdBlindLook attribute)
  • -
  • (evennia.contrib.tutorial_examples.cmdset_red_button.CmdCloseLid attribute) +
  • (evennia.contrib.tutorial_examples.red_button.CmdCloseLid attribute)
  • -
  • (evennia.contrib.tutorial_examples.cmdset_red_button.CmdNudge attribute) +
  • (evennia.contrib.tutorial_examples.red_button.CmdNudge attribute)
  • -
  • (evennia.contrib.tutorial_examples.cmdset_red_button.CmdOpenLid attribute) +
  • (evennia.contrib.tutorial_examples.red_button.CmdOpenLid attribute)
  • -
  • (evennia.contrib.tutorial_examples.cmdset_red_button.CmdPush attribute) +
  • (evennia.contrib.tutorial_examples.red_button.CmdPushLidClosed attribute)
  • -
  • (evennia.contrib.tutorial_examples.cmdset_red_button.CmdSmashGlass attribute) +
  • (evennia.contrib.tutorial_examples.red_button.CmdPushLidOpen attribute) +
  • +
  • (evennia.contrib.tutorial_examples.red_button.CmdSmashGlass attribute)
  • (evennia.contrib.tutorial_world.mob.CmdMobOnOff attribute)
  • @@ -1052,6 +951,8 @@
  • (evennia.help.models.HelpEntry attribute)
  • (evennia.objects.objects.ExitCommand attribute) +
  • +
  • (evennia.server.profiling.dummyrunner.CmdDummyRunnerEchoResponse attribute)
  • (evennia.typeclasses.models.TypedObject attribute)
  • @@ -1066,10 +967,12 @@
  • (evennia.utils.evmenu.CmdEvMenuNode attribute)
  • (evennia.utils.evmenu.CmdGetInput attribute) +
  • +
  • (evennia.utils.evmenu.CmdYesNoQuestion attribute)
  • (evennia.utils.evmore.CmdMore attribute)
  • -
  • (evennia.utils.evmore.CmdMoreLook attribute) +
  • (evennia.utils.evmore.CmdMoreExit attribute)
  • AliasHandler (class in evennia.typeclasses.tags) @@ -1077,6 +980,8 @@
  • all() (evennia.commands.cmdsethandler.CmdSetHandler method) - +
  • arguments (evennia.server.evennia_launcher.MsgLauncher2Portal attribute) @@ -1299,6 +1208,8 @@
  • ask_input() (evennia.server.connection_wizard.ConnectionWizard method)
  • ask_node() (evennia.server.connection_wizard.ConnectionWizard method) +
  • +
  • ask_yes_no() (in module evennia.utils.evmenu)
  • ask_yesno() (evennia.server.connection_wizard.ConnectionWizard method)
  • @@ -1316,56 +1227,18 @@
  • (evennia.objects.objects.DefaultObject method)
  • -
  • at_after_object_leave() (evennia.contrib.wilderness.WildernessScript method) +
  • at_after_traverse() (evennia.objects.objects.DefaultObject method)
  • -
  • at_after_traverse() (evennia.contrib.tutorial_world.objects.CrumblingWall method) - -
  • -
  • at_before_drop() (evennia.contrib.turnbattle.tb_equip.TBEArmor method) - -
  • -
  • at_before_get() (evennia.contrib.turnbattle.tb_range.TBRangeObject method) - -
  • -
  • at_before_give() (evennia.contrib.turnbattle.tb_equip.TBEArmor method) - -
  • -
  • at_before_move() (evennia.contrib.turnbattle.tb_basic.TBBasicCharacter method) - -
  • -
  • at_before_say() (evennia.contrib.rpsystem.ContribRPCharacter method) - -
  • at_channel_creation() (evennia.comms.comms.DefaultChannel method)
  • at_cmdset_creation() (evennia.commands.cmdset.CmdSet method) @@ -1407,13 +1280,11 @@
  • (evennia.contrib.turnbattle.tb_range.BattleCmdSet method)
  • -
  • (evennia.contrib.tutorial_examples.cmdset_red_button.BlindCmdSet method) +
  • (evennia.contrib.tutorial_examples.red_button.BlindCmdSet method)
  • -
  • (evennia.contrib.tutorial_examples.cmdset_red_button.DefaultCmdSet method) +
  • (evennia.contrib.tutorial_examples.red_button.LidClosedCmdSet method)
  • -
  • (evennia.contrib.tutorial_examples.cmdset_red_button.LidClosedCmdSet method) -
  • -
  • (evennia.contrib.tutorial_examples.cmdset_red_button.LidOpenCmdSet method) +
  • (evennia.contrib.tutorial_examples.red_button.LidOpenCmdSet method)
  • (evennia.contrib.tutorial_world.intro_menu.DemoCommandSetComms method)
  • @@ -1442,6 +1313,8 @@
  • (evennia.contrib.tutorial_world.rooms.DarkCmdSet method)
  • (evennia.contrib.tutorial_world.rooms.TutorialRoomCmdSet method) +
  • +
  • (evennia.server.profiling.dummyrunner.DummyRunnerCmdSet method)
  • (evennia.utils.eveditor.EvEditorCmdSet method)
  • @@ -1450,6 +1323,8 @@
  • (evennia.utils.evmenu.EvMenuCmdSet method)
  • (evennia.utils.evmenu.InputCmdSet method) +
  • +
  • (evennia.utils.evmenu.YesNoQuestionCmdSet method)
  • (evennia.utils.evmore.CmdSetMore method)
  • @@ -1538,11 +1413,9 @@
  • at_hit() (evennia.contrib.tutorial_world.mob.Mob method)
  • -
  • at_idmapper_flush() (evennia.scripts.scripts.DefaultScript method) +
  • at_idmapper_flush() (evennia.typeclasses.models.TypedObject method)
  • @@ -1653,9 +1526,9 @@
  • (evennia.contrib.tutorial_world.objects.TutorialReadable method)
  • -
  • (evennia.contrib.tutorial_world.objects.Weapon method) +
  • (evennia.contrib.tutorial_world.objects.TutorialWeapon method)
  • -
  • (evennia.contrib.tutorial_world.objects.WeaponRack method) +
  • (evennia.contrib.tutorial_world.objects.TutorialWeaponRack method)
  • (evennia.contrib.tutorial_world.rooms.BridgeRoom method)
  • @@ -1709,6 +1582,10 @@
  • at_password_change() (evennia.accounts.accounts.DefaultAccount method) +
  • +
  • at_pause() (evennia.scripts.scripts.DefaultScript method) +
  • +
  • at_post_channel_msg() (evennia.accounts.accounts.DefaultAccount method)
  • at_post_cmd() (evennia.commands.command.Command method) @@ -1728,12 +1605,28 @@
  • (evennia.accounts.accounts.DefaultGuest method)
  • +
  • at_post_move() (evennia.objects.objects.DefaultCharacter method) + +
  • +
  • at_post_msg() (evennia.comms.comms.DefaultChannel method) +
  • +
  • at_post_object_leave() (evennia.contrib.wilderness.WildernessScript method) +
  • at_post_portal_sync() (evennia.server.server.Evennia method)
  • at_post_puppet() (evennia.objects.objects.DefaultCharacter method)
  • +
  • at_post_traverse() (evennia.contrib.tutorial_world.objects.CrumblingWall method) + +
  • at_post_unpuppet() (evennia.objects.objects.DefaultCharacter method) @@ -1742,18 +1635,64 @@
  • (evennia.objects.objects.DefaultObject method)
  • +
  • at_pre_channel_msg() (evennia.accounts.accounts.DefaultAccount method) +
  • at_pre_cmd() (evennia.commands.command.Command method)
  • +
  • at_pre_drop() (evennia.contrib.turnbattle.tb_equip.TBEArmor method) + +
  • +
  • at_pre_get() (evennia.contrib.turnbattle.tb_range.TBRangeObject method) + +
  • +
  • at_pre_give() (evennia.contrib.turnbattle.tb_equip.TBEArmor method) + +
  • at_pre_login() (evennia.accounts.accounts.DefaultAccount method) +
  • +
  • at_pre_move() (evennia.contrib.turnbattle.tb_basic.TBBasicCharacter method) + +
  • +
  • at_pre_msg() (evennia.comms.comms.DefaultChannel method)
  • at_pre_puppet() (evennia.objects.objects.DefaultCharacter method)
  • +
  • at_pre_say() (evennia.contrib.rpsystem.ContribRPCharacter method) + +
  • at_pre_unpuppet() (evennia.objects.objects.DefaultObject method) @@ -1782,12 +1721,6 @@
  • (evennia.contrib.turnbattle.tb_range.TBRangeTurnHandler method)
  • (evennia.contrib.tutorial_examples.bodyfunctions.BodyFunctions method) -
  • -
  • (evennia.contrib.tutorial_examples.red_button_scripts.BlinkButtonEvent method) -
  • -
  • (evennia.contrib.tutorial_examples.red_button_scripts.CloseLidEvent method) -
  • -
  • (evennia.contrib.tutorial_examples.red_button_scripts.DeactivateButtonEvent method)
  • (evennia.scripts.scripts.DefaultScript method)
  • @@ -1824,18 +1757,6 @@
  • (evennia.contrib.turnbattle.tb_range.TBRangeTurnHandler method)
  • (evennia.contrib.tutorial_examples.bodyfunctions.BodyFunctions method) -
  • -
  • (evennia.contrib.tutorial_examples.red_button_scripts.BlindedState method) -
  • -
  • (evennia.contrib.tutorial_examples.red_button_scripts.BlinkButtonEvent method) -
  • -
  • (evennia.contrib.tutorial_examples.red_button_scripts.ClosedLidState method) -
  • -
  • (evennia.contrib.tutorial_examples.red_button_scripts.CloseLidEvent method) -
  • -
  • (evennia.contrib.tutorial_examples.red_button_scripts.DeactivateButtonEvent method) -
  • -
  • (evennia.contrib.tutorial_examples.red_button_scripts.OpenLidState method)
  • (evennia.contrib.wilderness.WildernessScript method)
  • @@ -1852,6 +1773,8 @@
  • (evennia.utils.gametime.TimeScript method)
  • +
  • at_script_delete() (evennia.scripts.scripts.DefaultScript method) +
  • at_search_result() (in module evennia.utils.utils)
  • at_server_cold_start() (evennia.server.server.Evennia method) @@ -1888,23 +1811,19 @@
  • (evennia.scripts.scripts.DefaultScript method)
  • -
  • at_server_start() (evennia.server.server.Evennia method) +
  • at_server_start() (evennia.contrib.ingame_python.scripts.EventHandler method) + +
  • at_server_stop() (evennia.server.server.Evennia method)
  • at_start() (evennia.accounts.bots.BotStarter method)
  • -
  • NAttributeHandler (class in evennia.server.serversession) - -
  • nattributes (evennia.server.serversession.ServerSession attribute)
  • -
  • NickTemplateInvalid, [1] +
  • NickTemplateInvalid
  • no_channels (evennia.commands.cmdset.CmdSet attribute) @@ -10515,12 +9914,14 @@
  • (evennia.utils.evmenu.EvMenuCmdSet attribute)
  • (evennia.utils.evmenu.InputCmdSet attribute) +
  • +
  • (evennia.utils.evmenu.YesNoQuestionCmdSet attribute)
  • no_exits (evennia.commands.cmdset.CmdSet attribute)
  • no_gmcp() (evennia.server.portal.telnet_oob.TelnetOOB method) @@ -10548,7 +9951,7 @@
  • no_objs (evennia.commands.cmdset.CmdSet attribute)
  • node_apply_diff() (in module evennia.prototypes.menus) @@ -10627,27 +10032,25 @@
  • (evennia.server.portal.ssh.TerminalSessionTransport_getPeer attribute)
  • (evennia.server.portal.telnet.TelnetServerFactory attribute) +
  • +
  • (evennia.server.profiling.dummyrunner.DummyFactory attribute)
  • (evennia.server.webserver.Website attribute)
  • nomatch() (evennia.contrib.building_menu.Choice method) - -
  • nonce (evennia.server.portal.webclient.WebSocketClient attribute)
  • 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)
  • not_found (evennia.commands.default.building.CmdSetAttribute attribute) -
  • -
  • null() (in module evennia.utils.inlinefuncs)
  • num_lines_to_append (evennia.utils.logger.EvenniaLogFile attribute)
  • @@ -10671,20 +10074,14 @@
  • obfuscate_whisper() (in module evennia.contrib.rplanguage)
  • -
  • obj (evennia.comms.channelhandler.ChannelCommand attribute) +
  • obj (evennia.contrib.ingame_python.callbackhandler.Callback attribute)
  • obj() (evennia.scripts.models.ScriptDB property) - -
  • objattr() (in module evennia.locks.lockfuncs)
  • object() (evennia.scripts.models.ScriptDB property) @@ -10705,14 +10102,6 @@
  • (evennia.web.website.tests.EvenniaWebTest attribute)
  • -
  • ObjectAttributeInline (class in evennia.objects.admin) -
  • -
  • ObjectCreateForm (class in evennia.objects.admin) -
  • -
  • ObjectCreateForm.Meta (class in evennia.objects.admin) -
  • -
  • ObjectCreateView (class in evennia.web.website.views) -
  • ObjectDB (class in evennia.objects.models)
  • ObjectDB.DoesNotExist @@ -10727,17 +10116,7 @@
  • (evennia.typeclasses.tags.Tag attribute)
  • -
  • ObjectDBAdmin (class in evennia.objects.admin) -
  • ObjectDBManager (class in evennia.objects.manager) -
  • -
  • ObjectDeleteView (class in evennia.web.website.views) -
  • -
  • ObjectDetailView (class in evennia.web.website.views) -
  • -
  • ObjectEditForm (class in evennia.objects.admin) -
  • -
  • ObjectEditForm.Meta (class in evennia.objects.admin)
  • ObjectForm (class in evennia.web.website.forms)
  • @@ -10780,12 +10159,6 @@ +
  • online() (evennia.comms.models.SubscriptionHandler method) +
  • onMessage() (evennia.server.portal.grapevine.GrapevineClient method)
      @@ -10818,20 +10193,12 @@
    • OOCCmdSetCharGen (class in evennia.contrib.chargen)
    • open() (evennia.contrib.building_menu.BuildingMenu method) -
    • -
    • open_lid() (evennia.contrib.tutorial_examples.red_button.RedButton method)
    • open_parent_menu() (evennia.contrib.building_menu.BuildingMenu method)
    • open_submenu() (evennia.contrib.building_menu.BuildingMenu method)
    • open_wall() (evennia.contrib.tutorial_world.objects.CrumblingWall method) -
    • -
    • OpenLidState (class in evennia.contrib.tutorial_examples.red_button_scripts) -
    • -
    • OpenLidState.DoesNotExist -
    • -
    • OpenLidState.MultipleObjectsReturned
    • OptionContainer (class in evennia.utils.containers)
    • @@ -10857,22 +10224,8 @@
    • ordered_permutation_regex() (in module evennia.contrib.rpsystem)
    • -
    • ordering (evennia.comms.admin.ChannelAdmin attribute) - -
    • OutroRoom (class in evennia.contrib.tutorial_world.rooms)
    • OutroRoom.DoesNotExist @@ -10885,12 +10238,8 @@

      P

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + - + - + + -
      -
    • press_button() (evennia.contrib.tutorial_examples.red_button.RedButton method) -
    • print_debug_info() (evennia.utils.evmenu.EvMenu method)
    • print_help() (evennia.contrib.unixcommand.UnixCommandParser method) @@ -11455,6 +10752,8 @@
    • (evennia.utils.evmenu.EvMenuCmdSet attribute)
    • (evennia.utils.evmenu.InputCmdSet attribute) +
    • +
    • (evennia.utils.evmenu.YesNoQuestionCmdSet attribute)
    • (evennia.utils.evmore.CmdSetMore attribute)
    • @@ -11469,11 +10768,11 @@
    • process_sdesc() (evennia.contrib.rpsystem.ContribRPCharacter method)
    • -
    • produce_weapon() (evennia.contrib.tutorial_world.objects.WeaponRack method) +
    • produce_weapon() (evennia.contrib.tutorial_world.objects.TutorialWeaponRack method) +
    • +
    • protfunc_callable_protkey() (in module evennia.prototypes.protfuncs)
    • protfunc_parser() (in module evennia.prototypes.prototypes) -
    • -
    • protkey() (in module evennia.prototypes.protfuncs)
    • proto_def() (in module evennia.contrib.puzzles)
    • @@ -11515,12 +10814,36 @@

      Versions

      -
      diff --git a/docs/0.9.5/index.html b/docs/0.9.5/index.html index 1944659679..cc116156ff 100644 --- a/docs/0.9.5/index.html +++ b/docs/0.9.5/index.html @@ -108,11 +108,11 @@ time.

    • Home page
    • Evennia Github
    • Game Index
    • -
    • IRC - - Discord - - Forums +
    • + Discord - + Discussions - + Blog
    • -
    • Evennia Dev blog
    • Versions

      -
      diff --git a/docs/0.9.5/objects.inv b/docs/0.9.5/objects.inv index 23c4c8bb4e..e867021168 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 dcfba91b19..0b118d31eb 100644 --- a/docs/0.9.5/py-modindex.html +++ b/docs/0.9.5/py-modindex.html @@ -68,11 +68,6 @@
          evennia.accounts.accounts
          - evennia.accounts.admin -
          @@ -203,16 +198,6 @@     evennia.comms
          - evennia.comms.admin -
          - evennia.comms.channelhandler -
          @@ -443,21 +428,11 @@     evennia.contrib.tutorial_examples.bodyfunctions
          - evennia.contrib.tutorial_examples.cmdset_red_button -
          evennia.contrib.tutorial_examples.red_button
          - evennia.contrib.tutorial_examples.red_button_scripts -
          @@ -503,11 +478,6 @@     evennia.help
          - evennia.help.admin -
          @@ -538,11 +508,6 @@     evennia.objects
          - evennia.objects.admin -
          @@ -588,11 +553,6 @@     evennia.scripts
          - evennia.scripts.admin -
          @@ -633,11 +593,6 @@     evennia.server
          - evennia.server.admin -
          @@ -893,11 +848,6 @@     evennia.typeclasses
          - evennia.typeclasses.admin -
          @@ -998,11 +948,6 @@     evennia.utils.idmapper.tests
          - evennia.utils.inlinefuncs -
          @@ -1113,11 +1058,6 @@     evennia.web.website.templatetags
          - evennia.web.website.templatetags.addclass -
          @@ -1159,11 +1099,11 @@
    • Home page
    • Evennia Github
    • Game Index
    • -
    • IRC - - Discord - - Forums +
    • + Discord - + Discussions - + Blog
    • -
    • Evennia Dev blog
    • Versions

      -
      diff --git a/docs/0.9.5/search.html b/docs/0.9.5/search.html index ec4bc2f906..6345e5702b 100644 --- a/docs/0.9.5/search.html +++ b/docs/0.9.5/search.html @@ -78,11 +78,11 @@
    • Home page
    • Evennia Github
    • Game Index
    • -
    • IRC - - Discord - - Forums +
    • + Discord - + Discussions - + Blog
    • -
    • Evennia Dev blog
    • Versions

      -
      diff --git a/docs/0.9.5/searchindex.js b/docs/0.9.5/searchindex.js index 79a06e0651..1a2708050a 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-Commands","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-Commands.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.md","api/evennia-api.md","api/evennia.accounts.md","api/evennia.accounts.accounts.md","api/evennia.accounts.admin.md","api/evennia.accounts.bots.md","api/evennia.accounts.manager.md","api/evennia.accounts.models.md","api/evennia.commands.md","api/evennia.commands.cmdhandler.md","api/evennia.commands.cmdparser.md","api/evennia.commands.cmdset.md","api/evennia.commands.cmdsethandler.md","api/evennia.commands.command.md","api/evennia.commands.default.md","api/evennia.commands.default.account.md","api/evennia.commands.default.admin.md","api/evennia.commands.default.batchprocess.md","api/evennia.commands.default.building.md","api/evennia.commands.default.cmdset_account.md","api/evennia.commands.default.cmdset_character.md","api/evennia.commands.default.cmdset_session.md","api/evennia.commands.default.cmdset_unloggedin.md","api/evennia.commands.default.comms.md","api/evennia.commands.default.general.md","api/evennia.commands.default.help.md","api/evennia.commands.default.muxcommand.md","api/evennia.commands.default.syscommands.md","api/evennia.commands.default.system.md","api/evennia.commands.default.tests.md","api/evennia.commands.default.unloggedin.md","api/evennia.comms.md","api/evennia.comms.admin.md","api/evennia.comms.channelhandler.md","api/evennia.comms.comms.md","api/evennia.comms.managers.md","api/evennia.comms.models.md","api/evennia.contrib.md","api/evennia.contrib.barter.md","api/evennia.contrib.building_menu.md","api/evennia.contrib.chargen.md","api/evennia.contrib.clothing.md","api/evennia.contrib.color_markups.md","api/evennia.contrib.custom_gametime.md","api/evennia.contrib.dice.md","api/evennia.contrib.email_login.md","api/evennia.contrib.extended_room.md","api/evennia.contrib.fieldfill.md","api/evennia.contrib.gendersub.md","api/evennia.contrib.health_bar.md","api/evennia.contrib.ingame_python.md","api/evennia.contrib.ingame_python.callbackhandler.md","api/evennia.contrib.ingame_python.commands.md","api/evennia.contrib.ingame_python.eventfuncs.md","api/evennia.contrib.ingame_python.scripts.md","api/evennia.contrib.ingame_python.tests.md","api/evennia.contrib.ingame_python.typeclasses.md","api/evennia.contrib.ingame_python.utils.md","api/evennia.contrib.mail.md","api/evennia.contrib.mapbuilder.md","api/evennia.contrib.menu_login.md","api/evennia.contrib.multidescer.md","api/evennia.contrib.puzzles.md","api/evennia.contrib.random_string_generator.md","api/evennia.contrib.rplanguage.md","api/evennia.contrib.rpsystem.md","api/evennia.contrib.security.md","api/evennia.contrib.security.auditing.md","api/evennia.contrib.security.auditing.outputs.md","api/evennia.contrib.security.auditing.server.md","api/evennia.contrib.security.auditing.tests.md","api/evennia.contrib.simpledoor.md","api/evennia.contrib.slow_exit.md","api/evennia.contrib.talking_npc.md","api/evennia.contrib.tree_select.md","api/evennia.contrib.turnbattle.md","api/evennia.contrib.turnbattle.tb_basic.md","api/evennia.contrib.turnbattle.tb_equip.md","api/evennia.contrib.turnbattle.tb_items.md","api/evennia.contrib.turnbattle.tb_magic.md","api/evennia.contrib.turnbattle.tb_range.md","api/evennia.contrib.tutorial_examples.md","api/evennia.contrib.tutorial_examples.bodyfunctions.md","api/evennia.contrib.tutorial_examples.cmdset_red_button.md","api/evennia.contrib.tutorial_examples.example_batch_code.md","api/evennia.contrib.tutorial_examples.red_button.md","api/evennia.contrib.tutorial_examples.red_button_scripts.md","api/evennia.contrib.tutorial_examples.tests.md","api/evennia.contrib.tutorial_world.md","api/evennia.contrib.tutorial_world.intro_menu.md","api/evennia.contrib.tutorial_world.mob.md","api/evennia.contrib.tutorial_world.objects.md","api/evennia.contrib.tutorial_world.rooms.md","api/evennia.contrib.unixcommand.md","api/evennia.contrib.wilderness.md","api/evennia.help.md","api/evennia.help.admin.md","api/evennia.help.manager.md","api/evennia.help.models.md","api/evennia.locks.md","api/evennia.locks.lockfuncs.md","api/evennia.locks.lockhandler.md","api/evennia.objects.md","api/evennia.objects.admin.md","api/evennia.objects.manager.md","api/evennia.objects.models.md","api/evennia.objects.objects.md","api/evennia.prototypes.md","api/evennia.prototypes.menus.md","api/evennia.prototypes.protfuncs.md","api/evennia.prototypes.prototypes.md","api/evennia.prototypes.spawner.md","api/evennia.scripts.md","api/evennia.scripts.admin.md","api/evennia.scripts.manager.md","api/evennia.scripts.models.md","api/evennia.scripts.monitorhandler.md","api/evennia.scripts.scripthandler.md","api/evennia.scripts.scripts.md","api/evennia.scripts.taskhandler.md","api/evennia.scripts.tickerhandler.md","api/evennia.server.md","api/evennia.server.admin.md","api/evennia.server.amp_client.md","api/evennia.server.connection_wizard.md","api/evennia.server.deprecations.md","api/evennia.server.evennia_launcher.md","api/evennia.server.game_index_client.md","api/evennia.server.game_index_client.client.md","api/evennia.server.game_index_client.service.md","api/evennia.server.initial_setup.md","api/evennia.server.inputfuncs.md","api/evennia.server.manager.md","api/evennia.server.models.md","api/evennia.server.portal.md","api/evennia.server.portal.amp.md","api/evennia.server.portal.amp_server.md","api/evennia.server.portal.grapevine.md","api/evennia.server.portal.irc.md","api/evennia.server.portal.mccp.md","api/evennia.server.portal.mssp.md","api/evennia.server.portal.mxp.md","api/evennia.server.portal.naws.md","api/evennia.server.portal.portal.md","api/evennia.server.portal.portalsessionhandler.md","api/evennia.server.portal.rss.md","api/evennia.server.portal.ssh.md","api/evennia.server.portal.ssl.md","api/evennia.server.portal.suppress_ga.md","api/evennia.server.portal.telnet.md","api/evennia.server.portal.telnet_oob.md","api/evennia.server.portal.telnet_ssl.md","api/evennia.server.portal.tests.md","api/evennia.server.portal.ttype.md","api/evennia.server.portal.webclient.md","api/evennia.server.portal.webclient_ajax.md","api/evennia.server.profiling.md","api/evennia.server.profiling.dummyrunner.md","api/evennia.server.profiling.dummyrunner_settings.md","api/evennia.server.profiling.memplot.md","api/evennia.server.profiling.settings_mixin.md","api/evennia.server.profiling.test_queries.md","api/evennia.server.profiling.tests.md","api/evennia.server.profiling.timetrace.md","api/evennia.server.server.md","api/evennia.server.serversession.md","api/evennia.server.session.md","api/evennia.server.sessionhandler.md","api/evennia.server.signals.md","api/evennia.server.throttle.md","api/evennia.server.validators.md","api/evennia.server.webserver.md","api/evennia.settings_default.md","api/evennia.typeclasses.md","api/evennia.typeclasses.admin.md","api/evennia.typeclasses.attributes.md","api/evennia.typeclasses.managers.md","api/evennia.typeclasses.models.md","api/evennia.typeclasses.tags.md","api/evennia.utils.md","api/evennia.utils.ansi.md","api/evennia.utils.batchprocessors.md","api/evennia.utils.containers.md","api/evennia.utils.create.md","api/evennia.utils.dbserialize.md","api/evennia.utils.eveditor.md","api/evennia.utils.evform.md","api/evennia.utils.evmenu.md","api/evennia.utils.evmore.md","api/evennia.utils.evtable.md","api/evennia.utils.gametime.md","api/evennia.utils.idmapper.md","api/evennia.utils.idmapper.manager.md","api/evennia.utils.idmapper.models.md","api/evennia.utils.idmapper.tests.md","api/evennia.utils.inlinefuncs.md","api/evennia.utils.logger.md","api/evennia.utils.optionclasses.md","api/evennia.utils.optionhandler.md","api/evennia.utils.picklefield.md","api/evennia.utils.search.md","api/evennia.utils.test_resources.md","api/evennia.utils.text2html.md","api/evennia.utils.utils.md","api/evennia.utils.validatorfuncs.md","api/evennia.web.md","api/evennia.web.urls.md","api/evennia.web.utils.md","api/evennia.web.utils.backends.md","api/evennia.web.utils.general_context.md","api/evennia.web.utils.middleware.md","api/evennia.web.utils.tests.md","api/evennia.web.webclient.md","api/evennia.web.webclient.urls.md","api/evennia.web.webclient.views.md","api/evennia.web.website.md","api/evennia.web.website.forms.md","api/evennia.web.website.templatetags.md","api/evennia.web.website.templatetags.addclass.md","api/evennia.web.website.tests.md","api/evennia.web.website.urls.md","api/evennia.web.website.views.md","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":{AccountDBManager:[147,1,1,""],AccountManager:[147,1,1,""]},"evennia.accounts.manager.AccountDBManager":{account_search:[147,3,1,""],get_account_from_email:[147,3,1,""],get_account_from_name:[147,3,1,""],get_account_from_uid:[147,3,1,""],get_connected_accounts:[147,3,1,""],get_recently_connected_accounts:[147,3,1,""],get_recently_created_accounts:[147,3,1,""],num_total_accounts:[147,3,1,""],search_account:[147,3,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,""],CmdAccounts:[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,""],CmdTickers:[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.CmdAccounts":{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.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.CmdTickers":{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,""],CmdUnconnectedEncoding:[171,1,1,""],CmdUnconnectedHelp:[171,1,1,""],CmdUnconnectedInfo:[171,1,1,""],CmdUnconnectedLook:[171,1,1,""],CmdUnconnectedQuit:[171,1,1,""],CmdUnconnectedScreenreader:[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.CmdUnconnectedEncoding":{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.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.CmdUnconnectedInfo":{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.commands.default.unloggedin.CmdUnconnectedScreenreader":{aliases:[171,4,1,""],func:[171,3,1,""],help_category:[171,4,1,""],key:[171,4,1,""],lock_storage:[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,"-"],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,"-"],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,4,1,""],code:[192,4,1,""],created_on:[192,4,1,""],name:[192,4,1,""],number:[192,4,1,""],obj:[192,4,1,""],parameters:[192,4,1,""],updated_by:[192,4,1,""],updated_on:[192,4,1,""],valid:[192,4,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.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.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":{ObjectDBManager:[245,1,1,""],ObjectManager:[245,1,1,""]},"evennia.objects.manager.ObjectDBManager":{clear_all_sessids:[245,3,1,""],copy_object:[245,3,1,""],get_contents:[245,3,1,""],get_object_with_account:[245,3,1,""],get_objs_with_attr:[245,3,1,""],get_objs_with_attr_value:[245,3,1,""],get_objs_with_db_property:[245,3,1,""],get_objs_with_db_property_value:[245,3,1,""],get_objs_with_key_and_typeclass:[245,3,1,""],get_objs_with_key_or_alias:[245,3,1,""],object_search:[245,3,1,""],search:[245,3,1,""],search_object:[245,3,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":{ScriptDBManager:[255,1,1,""],ScriptManager:[255,1,1,""]},"evennia.scripts.manager.ScriptDBManager":{copy_script:[255,3,1,""],delete_script:[255,3,1,""],get_all_scripts:[255,3,1,""],get_all_scripts_on_obj:[255,3,1,""],remove_non_persistent:[255,3,1,""],script_search:[255,3,1,""],search_script:[255,3,1,""],validate:[255,3,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,""],TaskHandlerTask:[260,1,1,""],handle_error:[260,5,1,""]},"evennia.scripts.taskhandler.TaskHandler":{__init__:[260,3,1,""],active:[260,3,1,""],add:[260,3,1,""],call_task:[260,3,1,""],cancel:[260,3,1,""],clean_stale_tasks:[260,3,1,""],clear:[260,3,1,""],create_delays:[260,3,1,""],do_task:[260,3,1,""],exists:[260,3,1,""],get_deferred:[260,3,1,""],load:[260,3,1,""],remove:[260,3,1,""],save:[260,3,1,""]},"evennia.scripts.taskhandler.TaskHandlerTask":{__init__:[260,3,1,""],active:[260,3,1,"id6"],call:[260,3,1,"id3"],called:[260,3,1,""],cancel:[260,3,1,"id5"],do_task:[260,3,1,"id2"],exists:[260,3,1,"id7"],get_deferred:[260,3,1,""],get_id:[260,3,1,"id8"],pause:[260,3,1,"id0"],paused:[260,3,1,""],remove:[260,3,1,"id4"],unpause:[260,3,1,"id1"]},"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,""],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_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,"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,"0x045a0990":42,"0x852be2c":59,"100":[31,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,362],"1000000":[82,93,337],"100m":343,"100mb":90,"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],"110m":343,"111":[12,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,"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,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],"2014":[21,213],"2015":[24,189,205,206],"2016":[99,199,202,212,214],"2017":[62,90,97,182,183,184,190,204,209,210,215,217,218,219,220,221,234,235,364],"2018":[9,180,188,198,203],"2019":[79,187,364],"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,"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,"229m":343,"22m":[321,343],"22nd":344,"230":[114,343],"230m":343,"231":343,"231m":343,"232":343,"232m":343,"233":[12,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],"255m":343,"256":[12,114,156,321],"25m":343,"26m":343,"27m":343,"280":71,"28gmcp":291,"28m":343,"29m":343,"2d6":[58,185],"2gb":90,"300":[114,126,184,331],"3000000":82,"302":360,"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,"3c3ccec30f037be174d3":344,"3d6":185,"3rd":[62,364],"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,"41m":[321,343],"4201":90,"4280":55,"42m":[321,343],"430000":62,"43m":[321,343],"443":[8,67,103],"444":114,"44m":[321,343],"45m":[27,321,343],"46m":[321,343],"47m":[321,343],"48m":343,"49m":343,"4er43233fwefwfw":9,"4th":[38,79],"500":[114,126,321,362],"50000":82,"505":321,"50m":343,"50mb":90,"516106":56,"51m":343,"520":114,"52m":343,"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,"57m":343,"5885d80a13c0db1f8e263663d3faee8d66f31424b43e9a70645c907a6cbd8fb4":37,"58m":343,"593":344,"59m":343,"5d5":56,"5fdonatecc":70,"5flg":70,"5fu":70,"5x5":111,"600":344,"60m":343,"614":138,"61m":343,"62m":343,"63m":343,"64m":343,"65m":343,"6666":40,"6667":[72,79,146,164,308],"66m":343,"67m":343,"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,"79m":343,"8080":90,"80m":343,"8111":36,"81m":343,"82m":343,"83m":343,"84m":343,"85000":82,"85m":343,"86400":120,"86m":343,"87m":343,"8859":[15,113,171],"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,"9th":364,"\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,113,267,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,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,147,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,245,247,251,256,258,272,276,280,284,298,305,308,316,317,318,319,321,323,334,341,344,349,364],"catch":[15,26,27,30,51,58,87,91,97,102,115,118,146,165,233,257,267,272,279,305,306,326,328,334,337,340,362],"char":[56,58,71,73,85,88,105,111,116,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,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,198,199,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,364],"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,199,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,245,247,251,252,256,257,259,260,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,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,364],"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,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,171,175,176,179,180,181,184,185,187,188,190,194,195,198,199,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,364],"g\u00e9n\u00e9ral":79,"goto":[85,230,328,364],"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,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,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,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,364],"int":[11,25,31,39,49,51,56,58,74,85,91,114,123,125,134,144,146,147,151,152,154,176,179,182,184,185,188,190,192,194,195,198,206,215,217,218,219,220,221,234,245,247,252,255,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,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,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,199,202,203,204,205,206,212,213,215,217,218,219,220,221,231,232,233,235,239,242,244,245,246,247,249,251,252,254,255,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,58,65,67,72,90,93,100,103,131,134,164,247,312,330,364],"return":[3,4,6,10,11,15,20,21,22,25,27,28,29,30,33,36,39,40,41,42,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,147,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,198,199,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,245,246,247,249,250,251,252,255,257,258,259,260,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,364],"short":[20,22,29,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,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,364],"switch":[0,2,9,10,13,14,16,19,20,23,25,31,33,34,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,171,174,175,185,187,199,202,203,218,256,318,324,329,345,364],"th\u00ed":20,"throw":[11,22,66,75,109,131,133,153,166,260,344],"true":[1,2,4,5,10,11,13,20,21,22,25,26,27,29,31,33,34,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,147,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,203,204,205,206,212,215,217,218,219,220,221,224,226,230,231,235,237,241,242,244,245,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,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,364],"var":[67,83,88,137,209,291,322],"void":56,"while":[0,9,10,11,13,14,20,22,23,25,28,29,31,33,35,37,38,41,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,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:[73,80,119,159,188,242],ARE:77,AWS:[90,100],Adding:[18,32,33,45,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,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,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,198,206,212,214,215,218,231,239,242,252,260,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:[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,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,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,95,102,105,110,115,117,121,123,126,128,130,131,132,138,141,148,150,179,185,205,215,231,232,245,251,252,277,305,315,316,317,321,329,344],PMs:364,PRs:131,Such:[6,13,28,33,37,48,51,57,64,73,127,159,252,321,328],THAT:91,THE:[188,227],THEN:[153,188],THERE:188,TLS:[103,364],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,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,198,199,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,245,246,247,249,250,251,252,255,256,257,258,259,260,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,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,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,199,202,203,204,206,218,219,220,221,226,234,244,245,246,247,269,273,278,295,296,298,299,302,316,318,321,327,328,330,334,341,344,364],Used:[33,121,139,150,153,159,171,175,188,202,215,235,245,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,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,74,110,114,144,184,204,206,247,250,252,265,267,276,277,318,328,330,331,336,339,344,364],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,364],__1:337,__2:337,_________________:125,_________________________:51,______________________________:51,________________________________:51,_________________________________:125,______________________________________:328,______________________________________________:51,_______________________________________________:51,____________________________________________________:51,_________________________________________________________:85,__________________________________________________________:85,__all__:[145,237,244],__defaultclasspath__:318,__doc__:[33,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:[43,171,186],_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:[159,247],_create_charact:133,_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,_overrid:[135,137],_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,a2enmod:8,a8oc3d5b:100,a_off:179,aardwolf:88,abbrevi:[76,114,159,202,336],abcd:165,abi:60,abid:126,abil:[6,10,20,31,33,52,55,56,57,58,60,64,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,38,41,42,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,213,233,247,250,328,329,364],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,43,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,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,364],abov:[2,4,8,9,10,11,12,13,14,21,23,24,27,28,29,30,31,33,36,37,38,40,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,204,206,213,214,215,217,219,220,221,242,245,247,272,315,328,339,350],abridg:41,absolut:[27,38,56,62,79,91,182,184,185,189,327,331,344],absorb:74,abspath:344,abstractus:148,abus:[7,103,364],academi:79,accept:[11,14,22,23,27,31,37,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,38,39,40,41,43,47,49,51,52,53,56,57,58,59,60,63,64,66,68,69,71,73,74,80,83,84,85,86,87,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,171,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_object:80,access_opt:345,access_token_kei:[71,120],access_token_secret:[71,120],access_typ:[34,68,89,144,154,159,175,177,239,241,242,247,316,318,362,364],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,80,241],accessor:[148,177,239,246,256,316,318,319,335],accessori:63,accident:[15,31,38,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,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,31,33,34,35,37,38,41,43,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,169,171,174,175,176,177,180,181,182,184,186,187,188,190,192,193,195,199,206,209,212,217,219,220,221,224,227,230,231,232,233,235,239,241,242,245,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:[147,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:[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,306,321,336,339,340,351],accuraci:[46,91,218,219,220],accus:73,accustom:[87,124],acept:188,achiev:[0,22,27,33,38,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,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,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,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,171,174,175,193,210,227,231,235,246,247,250,255,259,260,272,279,280,281,282,283,287,289,290,291,298,308,310,317,326,328,329,330,336,344,364],activest:343,actor:221,actual:[2,5,8,10,11,13,14,19,20,21,22,26,27,29,34,36,40,41,42,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,169,170,171,175,177,179,180,182,187,188,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,364],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,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,198,199,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,364],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,364],addcom:[43,58,164],added:[0,4,5,17,21,22,24,25,27,31,33,34,36,38,40,41,42,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,171,179,180,182,183,185,189,192,195,198,206,217,218,219,220,221,224,235,242,247,252,258,260,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,364],addingservermxp:282,addit:[4,8,22,25,31,36,37,38,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,205,209,215,221,234,242,247,260,278,306,316,318,326,328,357,364],addition:[25,111,119,221],additionalcmdset:31,addpart:203,addquot:344,addr:[264,277,278,279,324],address:[3,9,12,23,33,40,49,67,87,90,91,103,105,131,135,144,147,157,175,186,189,247,264,277,279,287,307,310,344,345,363,364],address_and_port:287,addresult:203,addscript:[43,159],addservic:40,adjac:[221,231],adject:97,adjoin:206,adjust:[0,33,37,63,126,133,190,260,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,364],admin_sit:[145,173,237,244,254,263,315],admin_wrapp:362,administr:[10,23,33,36,38,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,44,51,55,58,64,79,86,93,104,105,108,109,111,119,123,124,125,139,159,167,187,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,affair:323,affect:[11,13,14,19,25,31,33,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,364],affili:260,affliat:260,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,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,171,174,175,179,180,182,184,185,186,187,188,190,195,203,205,206,215,217,218,219,220,221,227,228,231,232,233,234,235,246,247,250,252,257,259,260,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,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,245,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:247,alexandrian:79,algebra:49,algorith:205,algorithm:[245,344],alia:[2,6,9,20,21,22,31,33,41,43,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,245,246,247,250,252,254,256,261,272,298,315,317,318,319,324,340,341,342,357,362,364],alias1:[159,187],alias2:[159,187],alias3:187,alias:[2,13,20,21,22,25,27,29,31,33,34,41,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,202,203,206,212,213,214,215,217,218,219,220,221,224,231,232,233,234,235,238,239,245,246,247,252,317,318,319,324,326,328,329,337,341,364],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,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,147,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,199,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,245,246,247,251,252,255,257,258,259,260,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,364],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:[43,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,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,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,103],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,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,67,188],alonw:256,alpha:[54,90,321,364],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,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,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,255,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,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,147,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,202,204,205,206,213,215,219,220,221,226,231,232,233,235,240,241,242,245,246,247,250,251,252,253,255,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,245,285,324,336,344,364],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,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,245,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,62,64,79,89,104,111,123,127,165,182,224,232,242,245,341],amongst:77,amor:196,amount:[11,16,37,61,68,73,102,103,114,123,169,217,218,219,220,221,247,308,326],amp:[40,83,92,105,141,142,262,264,267,275,277,285,293,305,308,364],amp_client:[141,142,262,364],amp_maxlen:293,amp_port:90,amp_serv:[141,142,262,275,364],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,364],anchor:[175,221,239,318],anchor_obj:221,ancient:114,andr:24,android:[139,364],anew:[63,111,267],angl:129,angri:41,angular: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,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,245,247,250,251,252,255,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,364],anim:[27,52],anna:[58,63,72,117,118,123,159],annoi:[12,85,91],annot:[79,364],announc:[25,37,79,116,123,128,157,169,217,218,219,220,221,247],announce_al:[285,308],announce_move_from:[25,77,89,247],announce_move_to:[25,77,89,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,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,364],another_batch_fil:322,another_nod:328,another_script:102,anotherscript:102,ansi:[24,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,any_options_her:38,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,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,34,42,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,364],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,47,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,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,245,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,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,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,364],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,364],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,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,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,364],arg_regex:[5,41,44,154,159,165,166,170,171,174,182,326,364],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,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,204,205,206,210,212,217,218,219,220,221,233,234,242,245,247,250,251,252,255,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,364],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,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,73,77,83,105,159,279],arrow:[42,137],art:[114,327],articl:[4,15,21,39,41,48,57,79,113,127,131,335],article_set:335,artifact:330,artifici:73,arx:[79,364],arxcod:[79,139,364],as_view:[175,239,318],ascii:[9,15,111,113,144,171,327,330,344,364],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,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,204,234,265,267,294,328,331,344,364],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,51,56,58,80,87,89,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,255,272,279,285,287,290,306,318,325,364],assist:90,associ:[4,11,29,51,79,83,90,105,122,135,138,144,149,159,175,192,195,206,247,306,308,317,362],assort:[362,364],assum:[0,3,5,9,12,13,14,15,19,20,21,22,25,27,28,29,31,33,34,37,38,39,40,41,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,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,364],at_:[125,334],at_access:[144,247],at_account_cr:[2,144],at_after_mov:[77,89,96,117,247],at_after_object_leav:235,at_after_travers:[89,232,247],at_befor:247,at_before_drop:[218,221,247],at_before_g:[218,221,247],at_before_get:[221,247],at_before_mov:[25,77,89,217,218,219,220,221,247],at_before_sai:[96,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,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:[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,212,232,247],at_first_login:144,at_first_sav:[144,175,247],at_first_start:318,at_get:[182,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:[48,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,49,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:247,at_object_leav:[89,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,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:247,at_prepare_room:235,at_reload:[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,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:104,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,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,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,364],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,364],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,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:[159,203],attr2:[159,203],attr3:159,attr:[11,22,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,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,245,246,247,250,251,252,254,256,257,260,272,306,314,315,317,318,319,324,325,337,338,341,344,357,362,364],attribute1:123,attribute2:123,attribute_nam:[144,206,245,247,341],attribute_valu:245,attributeerror:[42,60,86,306,316],attributeform:315,attributeformset:315,attributehandl:[1,125,306,316,339,344,364],attributeinlin:[145,173,244,254,315],attributeobject:11,attrkei:252,attrnam:[11,51,80,109,125,159,241,245,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,364],audit_callback:209,auditedserversess:[209,210],auditingtest:211,aug:[9,364],august:[9,344],aut:52,auth:[144,145,147,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,364],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,41,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,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,364],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,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,364],available_choic:[51,328],available_func:336,available_funct:251,available_languag:205,available_weapon:232,avatar:[64,88,96,247,287],avatarid:287,avenu:182,averag:[13,90,93,169,195,205,234],avoid:[8,11,23,26,27,31,33,37,40,42,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,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,azur:100,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,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,364],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,147,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: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,364],bartl:79,bas:120,base:[3,4,6,9,13,16,17,20,21,22,23,30,33,36,38,39,41,42,49,51,53,55,56,57,58,60,61,63,64,67,69,72,73,75,77,79,80,83,85,86,89,90,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,198,199,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,base_channel_typeclass:34,base_char_typeclass:120,base_character_typeclass:[81,120,133,134,144,159],base_field:[145,237,244,315,357],base_guest_typeclass:66,base_object_typeclass:[109,252,318],base_random:250,base_script_path:241,base_script_typeclass:102,base_set:9,baseclass:232,basecommand:60,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,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,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,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,43,79,111,158,364],batchcode_map:111,batchcode_world:111,batchcodefil:13,batchcodeprocessor:322,batchcommand:[14,20,22,43,63,122,158,322],batchcommandprocessor:322,batchfil:[14,15,111,322],batchprocess:[141,142,149,155,364],batchprocessor:[13,141,142,158,320,364],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,205,220,224,235,247,259,279,285,298,308,315,321,338,340],becom:[0,5,10,22,37,38,41,42,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,46,49,51,58,69,70,76,79,85,91,93,96,103,105,116,117,123,126,128,131,133,134,135,138,152,153,158,159,167,168,175,180,195,203,204,206,217,218,219,220,221,233,235,239,242,246,247,251,252,260,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,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,198,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,364],beforehand:[11,131,323],beg:14,beggar:0,begin:[0,4,6,10,13,14,20,22,25,33,38,41,42,46,50,51,55,58,61,69,72,80,91,95,96,106,107,111,116,117,119,127,132,134,165,194,206,215,217,218,219,220,221,245,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,313,324,330,344],behind:[11,12,21,33,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,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,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,48,49,50,51,57,58,59,60,61,62,63,64,67,69,70,74,80,81,87,88,90,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,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,364],betray:51,better:[0,9,15,23,25,34,38,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,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,198,199,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,364],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,245,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,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,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:[37,38,95,104,138],block:[3,12,25,28,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,364],blocking_cmdset:25,blockingcmdset:25,blockingroom:25,blockquot:364,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,81,138,157],bodi:[3,17,22,27,33,41,46,51,58,95,109,127,129,133,175,193,199,269,324],bodyfunct:[20,102,141,142,178,222,228,364],bog:21,boi:112,boiler:125,bold:[54,364],bolt:252,bone:[55,73],bonu:[41,73,90,218,219,256],bonus:[29,218],book:[3,49,62,73,79,91,95,109,135],bool:[2,31,33,34,51,74,84,102,144,145,146,147,148,150,151,152,153,154,159,173,175,176,177,179,180,182,184,185,188,190,192,195,204,205,206,215,217,218,219,220,221,226,235,238,242,244,245,246,247,250,251,252,254,255,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,364],bootstrap:[4,124,138,139,364],border:[58,111,156,188,327,330,364],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:[47,65,72,93,103,119,133,141,142,143,148,164,175,272,278,279,286,308,362,364],bot_data_in:[146,272],both:[0,11,15,19,22,23,25,26,27,31,33,34,36,37,38,40,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,199,203,212,215,220,221,233,242,245,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:[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,38,57,108,192,344],bounti:70,bountysourc:70,bow:252,box:[0,3,8,20,42,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,247,321],bracket:[38,96,129,169,183],brainstorm:[139,364],branch:[9,36,37,38,41,63,100,204,215,364],branchnam:131,brandymail:199,bread:16,breadth:221,break_lamp:226,break_long_word:330,break_on_hyphen:330,breakdown:169,breakpoint:[16,106,141],breez:[102,132],breviti:58,bribe:51,brick:82,bridg:[22,23,53,79,83,105,233,364],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,364],briefer:[89,110],briefli:[16,90,110,364],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:[164,276],broader:[39,206,247],broken:[38,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,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,95,96,110,123,127,131,227,318,364],buggi:[11,328],bui:[85,138,179],build:[1,6,7,9,10,11,13,14,15,27,31,36,43,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,205,206,212,231,234,242,247,251,252,267,278,279,322,330,357,363,364],build_match:151,builder:[2,4,14,19,22,25,56,58,60,61,68,80,85,108,109,112,114,123,124,139,157,159,164,165,169,180,182,187,188,203,206,212,233,234,235,242,247,250,298,318,322,363,364],buildier:252,building_menu:[141,142,178,364],buildingmenu:[22,180],buildingmenucmdset:180,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: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,364],butch:96,butt:138,butter:16,button:[9,13,14,31,33,80,83,87,88,106,131,133,134,135,137,138,159,224,226,227,232,299,329,364],button_expos:232,buy_ware_result:85,byngyri:205,bypass:[4,10,19,20,58,80,116,126,144,159,175,212,241,242,245,318,324,341,349],bypass_superus:80,bytecod:321,bytestr:[276,344],bytestream:344,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,cabl:82,cach:[6,8,11,12,28,33,39,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,364],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,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,198,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,255,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,364],call_async:10,call_command:127,call_ev:[0,194],call_inputfunc:[83,306,308],call_task:260,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,364],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,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,364],called_bi:150,calledbi:344,caller:[5,10,11,13,21,22,25,27,28,29,30,33,38,41,42,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,203,206,214,215,230,232,233,234,235,242,247,249,251,322,326,328,329,336,338,344,364],callerdepth:344,callertyp:150,callinthread:312,calllback:194,callsign:[51,272],calm:111,came:[9,21,25,55,79,111,132,138,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,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,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,171,174,175,176,177,179,180,182,183,184,185,187,188,189,190,194,195,198,199,203,204,205,206,209,212,215,217,218,219,220,221,224,226,227,231,232,233,234,235,239,241,242,245,246,247,250,251,252,253,255,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,364],can_:194,cancel:[27,29,74,194,217,218,219,220,221,247,260],candid:[22,33,119,133,151,203,206,245,247,341],candl:153,cannot:[5,9,10,11,13,14,19,21,22,25,27,28,29,31,33,39,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,212,215,221,227,231,232,238,241,242,245,247,251,261,316,323,325,327,330,334,344],cantanker:338,cantclear:188,cantillon:79,cantmov:25,canva:49,capabl:[6,36,49,58,64,80,83,88,105,156,214,272,294,357],capcha:364,cape:57,capfirst:69,capit:[9,12,25,29,64,88,95,123,159,189,204,205,321],captcha:133,caption:38,captur:[25,91,138,337,362],car:[87,121],card:[103,364],cardin:[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,364],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,11,33,36,38,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,364],caveman:56,cblue:131,cboot:[12,43,164],cc1:63,cccacccc:327,ccccc2ccccc:58,cccccccc:327,ccccccccccc:58,cccccccccccccccccbccccccccccccccccc:327,ccccccccccccccccccccccccccccccccccc:327,ccreat:[41,43,58,65,72,98,164],cdesc:[41,43,164],cdestroi:[43,164],cdmset:31,cdn:103,ceas:[77,159],cel:327,celebr:61,cell:[58,69,111,188,327,330],celltext:327,cemit:[43,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,48,64,75,80,88,90,97,102,105,107,108,114,115,121,138,159,176,179,205,209,227,232,235,241,245,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,364],certonli:67,cet:337,cfg:67,cflag:75,cgi:90,cha:[51,58],chain:[0,10,29,46,51,109,119,194,195,299,328],chain_1:0,chain_2:0,chain_:0,chain_open_door:0,chain_x:0,chainedprotocol:287,chainsol:[119,364],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,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,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,202,205,206,212,213,215,217,218,219,220,221,231,232,233,234,235,239,244,245,247,252,254,256,257,259,260,261,267,272,283,298,305,306,313,315,318,322,325,326,329,330,337,338,339,340,362,364],change_name_color:215,changeabl:76,changelog:96,changepag:134,changepassword:12,chanlist:[43,164],channam:41,channel:[2,6,7,11,12,19,31,33,43,45,53,55,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:[53,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,364],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:[73,127,165,360],char2:[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,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,147,151,152,154,156,159,160,161,165,166,167,171,174,175,180,181,182,187,188,189,190,192,194,195,199,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,43,46,69,156,181],chardata:58,chardelet:[43,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,364],chargencmdset:123,chargenroom:123,chargenview:[239,318],charnam:[58,156],charpuppetview:318,charset:344,charsheet:58,charsheetform:58,charupdateview:[239,318],chase:122,chat:[1,2,9,26,34,37,48,55,58,60,63,65,70,72,79,80,98,123,131,139,296,337,364],chatroom:57,chatzilla:72,cheap:131,cheaper:[61,115],cheapest:90,cheapli:233,cheat:[23,38,73,364],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,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,147,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,260,266,267,271,276,282,287,291,306,308,310,311,312,315,316,318,319,321,322,324,338,339,344,345,362,364],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,241,287,345,364],checkout:[9,100,131],checkoutdir:36,checkpoint:364,chest:[80,91],child:[6,33,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:159,chime:27,chines:[25,79,113],chip:58,chmod:36,choci:180,chocol:60,choic:[4,15,23,33,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,364],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:157,claim:83,clang:75,clank:0,clarif:[1,48],clarifi:25,clariti:[75,86,91,123],clash:[23,31,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,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,255,256,267,271,285,295,308,315,318,321,326,328,334,340,343,344,357,364],clean_attr_valu:315,clean_attribut:[125,144,318],clean_cmdset:[125,318],clean_senddata:308,clean_stale_task:260,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,45,50,51,102,127,145,169,179,230,233,328],clear:[1,4,11,12,15,22,29,33,37,38,40,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,171,174,188,204,206,227,233,242,245,246,247,257,260,261,269,306,316,318,319,328,334],clear_all_sessid:245,clear_client_list:303,clear_cont:[89,247],clear_exit:[89,247],clearal:[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,364],client:[3,7,8,9,12,22,23,25,30,33,36,38,40,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,171,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:[88,272,291,364],client_secret:65,client_width:[33,154],clientconnectionfail:[264,278,279],clientconnectionlost:[264,278,279],clientfactori:298,clienthelp:137,clientraw:169,clientsess:[295,296],cliff:[20,159],climat:112,climb:[33,55,77,93,159,232],climbabl:232,clipboard:[1,48],clist:[43,164],clock:[12,27,33,43,73,164],clone:[38,47,63,64,76,96,128,130,364],close:[0,14,22,25,38,39,40,41,46,48,50,51,64,69,76,90,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,364],clothedcharact:182,clothedcharactercmdset:182,clothes_list:182,clothing_typ:182,clothing_type_count:182,clothing_type_ord:182,cloud9:364,cloud:[90,100,102,103,132],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,44,58,60,62,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,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,cmdaccount:169,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,169,170,171,174,187,203,233,246,247,256,344,364],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,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,364],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,43,44,47,51,53,57,60,62,68,69,81,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,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,364],cmdset_account:[2,141,142,149,155,181,364],cmdset_charact:[5,96,141,142,149,155,182,217,218,219,220,221,364],cmdset_mergetyp:[51,188,230,249,328],cmdset_prior:[51,188,230,249,328],cmdset_red_button:[141,142,178,222,364],cmdset_sess:[105,141,142,149,155,364],cmdset_stack:153,cmdset_storag:[148,246,306],cmdset_trad:179,cmdset_unloggedin:[33,141,142,149,155,186,364],cmdsetattribut:159,cmdsetclimb:232,cmdsetcrumblingwal:232,cmdsetdesc:165,cmdsetevenniaintro:233,cmdsethandl:[105,141,142,149,364],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,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],cmdticker:169,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],cmdunconnectedencod:171,cmdunconnectedhelp:[171,186],cmdunconnectedinfo:171,cmdunconnectedlook:[171,186],cmdunconnectedquit:[171,186],cmdunconnectedscreenread:171,cmduncov:182,cmdunlink:159,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,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,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,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:[38,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,coding_styl:[37,38,95],coerc:339,coexist:126,coin:[61,70,179],col:[3,16,329,330],cold:[12,110,169,252,257,261,305],cole:344,collabor:[4,61,64,90,131,166,364],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,43,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,364],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,55,139,159,294,321,330,364],column:[16,38,46,49,58,64,69,86,111,137,154,156,235,329,330,344],com:[8,9,22,23,37,38,45,54,55,63,67,70,75,79,90,95,98,100,103,104,108,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,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,364],comlist:[43,164],comm:[33,34,41,43,47,53,64,68,71,141,142,149,155,324,362,364],comma:[20,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,199,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],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,364],commerc:79,commerci:[90,106],commerror:176,commit:[15,23,25,36,37,38,64,66,98,100,108,128,130,209,315,364],commmand:[212,217,218,219,220,221],common:[1,6,10,12,15,16,20,26,27,30,33,38,40,41,51,53,59,60,61,62,63,64,68,69,73,74,79,80,83,88,90,91,97,105,107,109,112,113,115,116,119,123,124,125,131,133,139,152,159,171,179,205,206,213,242,245,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,171,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,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,159,330,337],compet:[15,88],compil:[9,33,38,47,56,63,75,76,90,95,108,159,165,166,171,174,182,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,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,218,233,247,260,267,269,277,278,295,322,327,328,329,336,341,344,357,364],complete_task:195,completli:227,complex:[11,14,15,20,31,33,38,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,364],complianc:[24,187],compliant:[39,291],complic:[0,10,22,29,41,49,69,90,91,111,133,134,171,186,188,215],compon:[29,33,38,40,49,58,90,93,96,102,110,114,116,124,127,135,137,138,139,159,169,175,176,177,184,203,205,245,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,37,49,56,60,63,64,72,73,100,113,115,124,131,132,157,169,206,344,345,364],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,364],conceptu:[49,51],concern:[25,44,63,76,88,95,96,152,204,239],conch:[287,290,298],conclud:[96,179,328,364],conclus:364,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,364],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,267,273,274,313,322,364],confer:[79,344],confid:[37,39,42],config:[2,4,9,36,40,59,63,90,98,106,130,131,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,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,269,274,285,308,312,313,317,357,364],configut:106,configvalu:59,confirm:[8,33,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],congratul:364,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,43,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,147,148,156,157,159,164,171,175,177,186,190,192,193,195,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],connection_screen_modul:186,connection_set:54,connection_tim:[144,247],connection_wizard:[141,142,262,364],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,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,147,149,150,151,152,153,155,158,159,166,172,180,188,189,192,193,194,195,196,198,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,364],container:100,contempl:56,content:[3,4,13,16,17,21,27,38,39,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,245,246,247,306,315,316,319,321,322,323,326,328,330,341,346,355,364],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,255,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,265,276,312,316,328,337,344,364],contrari:[0,41,62,169,319],contrast:[56,90,96,113,138,291],contrib:[4,13,14,20,38,47,53,57,58,62,63,73,78,102,116,122,141,142,144,145,147,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,64,70,78,82,124,127,131,136,139,178,179,181,182,183,185,187,199,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,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:[206,247],convenei:107,conveni:[8,9,10,11,21,34,36,38,40,41,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,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,147,157,184,185,188,215,241,245,251,252,255,257,276,278,287,290,291,308,312,321,325,328,329,330,331,336,340,343,344,363,364],convert_linebreak:343,convert_url:343,convinc:[51,90],cool:[3,9,21,22,26,61,79,159],cool_gui:80,cooldown:[29,116,124,139,364],coord:39,coordi:39,coordin:[49,124,137,139,221,235,364],coordx:39,coordz:39,cope:220,copi:[0,1,4,13,14,20,25,26,33,36,43,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,245,247,255,267,276,313,321,337,362,364],copy_object:[245,247],copy_script:255,copyright:[78,90],cor:138,core:[19,37,47,49,76,78,88,89,96,104,106,125,127,131,139,144,148,169,177,178,199,239,241,246,247,256,262,274,284,291,305,316,318,319,322,329,335,357,362,364],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,38,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,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,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,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,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,147,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: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:[43,159],cprofil:364,cpu:[12,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:[171,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,43,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,147,148,150,151,152,153,154,156,159,164,165,166,167,168,169,170,171,174,175,177,179,180,181,182,184,185,186,187,188,189,194,195,196,198,199,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,245,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,364],create_:[89,125],create_account:[27,53,107,125,141,324],create_cal:144,create_channel:[27,34,53,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:[27,53,68,141,324],create_kwarg:252,create_match:151,create_messag:[27,34,53,141,324],create_object:[13,27,53,80,85,89,111,123,125,133,141,247,252,271,322,324],create_prototyp:[251,252],create_script:[27,53,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,createnpc:364,creater:53,createview:362,creation:[11,14,20,21,38,47,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,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,217,218,219,220,221,247,330],creatur:364,cred:[131,287],credenti:[90,103,131,144,287],credentialinterfac:287,credit:[90,103,131,343,344,364],creset:131,crew:119,criteria:[51,119,176,194,204,251,317,341],criterion:[119,131,144,179,206,238,245,247,255,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,364],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,41,43,46,48,49,50,51,58,59,60,64,68,74,76,77,79,80,85,86,89,97,100,102,104,105,106,112,114,115,116,119,120,121,123,124,127,128,131,133,137,138,144,147,148,150,151,153,154,156,157,159,164,165,166,168,169,171,175,179,180,182,187,188,190,195,198,202,204,206,212,213,215,217,218,219,220,221,230,232,233,235,238,245,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,364],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,171,174,175,179,181,182,184,185,187,188,189,195,198,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,364],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:[43,164],cyan:[114,126],cyberspac:79,cycl:[13,14,25,56,61,62,132,217,218,219,220,221],cyril:15,daemon:[8,67,93,100,103,110,284,312],dai:[25,27,36,56,61,62,100,103,108,120,126,131,132,139,147,184,187,331,337,344,345],daili:87,dailylogfil:337,dali:205,dalnet: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],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,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,364],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,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,147,148,152,153,159,166,169,173,174,175,176,177,187,194,195,206,220,233,236,238,239,241,244,245,246,247,250,251,253,254,255,256,257,260,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,364],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,245,247,257,272,341],db_account:[182,244,245,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,245,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,87,263,274,316],dbef:[255,341],dbhandler:357,dbid:[125,146,164,318],dbid_to_obj:344,dbmodel:317,dbobj:[11,316],dbobject:[11,317,318],dbprototyp:[169,251],dbref:[12,13,20,58,66,80,109,111,116,119,121,122,125,128,144,147,148,157,159,164,169,176,188,203,206,212,233,235,241,245,246,247,250,251,252,255,256,258,317,318,324,341,344,364],dbref_search:[147,245,255,317],dbref_to_obj:344,dbrefmax:159,dbrefmin:159,dbsafe_decod:340,dbsafe_encod:340,dbserial:[11,97,141,142,257,320,364],dbshell:[23,86,110,128],dbunseri:325,ddesc:56,deactiv:[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,364],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,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,364],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,364],decoupl:[9,251],decoupled_mut:11,decreas:[220,233,326],decrease_ind:326,dedent:[50,344,364],dedic:[73,90,127,364],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,82,105,123,153,180,181,182,187,188,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,53,64,125,141,144,146,160,247,342,357,362],defaultchannel:[6,53,125,141,175,362],defaultcharact:[5,6,22,25,53,57,58,60,62,73,81,86,89,96,123,125,127,141,144,161,180,182,189,206,217,218,219,220,221,247,342,357,362],defaultcmdset:[185,224],defaultdict:257,defaultexit:[6,53,85,89,125,141,212,213,232,235,247,342],defaultguest:[53,141,144],defaultlock:241,defaultmod:337,defaultobject:[5,6,26,38,53,60,64,82,85,86,89,96,111,117,119,121,125,141,144,182,206,214,218,221,226,232,247,318,342,357,362,364],defaultpath:344,defaultroom:[6,39,49,53,56,85,89,125,132,141,187,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:162,defaulttyp:312,defaultunloggedin:163,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,133,145,148,150,177,187,213,239,246,247,256,260,264,274,276,277,308,312,316,318,319,335,337],deferredlist:312,defin:[0,2,4,5,10,11,12,13,14,20,21,22,25,27,30,35,36,40,42,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,171,173,175,176,177,180,182,183,184,185,187,188,194,195,198,203,204,205,206,214,215,219,220,223,224,227,232,233,236,237,238,239,240,241,242,243,244,245,246,247,251,252,255,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,364],define_charact:51,definit:[0,2,5,10,12,14,20,33,34,39,41,42,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,364],defit:51,deflist:312,degrad:127,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,delai:[0,28,33,45,120,184,188,195,213,232,260,261,279,285,308,323,344,364],delaliaschan:[43,164],delayed_import:308,delchanalia:[43,164],delcom:[43,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,199,202,203,212,227,232,239,242,247,251,255,257,258,259,260,261,273,285,306,315,316,318,321,322,328,334,360,362],delete_default:[31,153],delete_prototyp:251,delete_script:255,deletet:187,deleteview:362,deliber:[11,42,129],delic:182,delimit:[91,167,168,322,364],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,364],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,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,364],deplet:219,deploi:[38,46,90,103,364],deploy:[36,38,79,90,100,106],depmsg:337,deprec:[27,51,94,109,141,142,252,262,328,337,344,364],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,43,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,364],desc_al:231,desc_dead:231,desc_lamp_broken:226,desc_lid_clos:226,desc_lid_open:226,descend:[119,357],descer:364,describ:[5,9,11,13,14,20,21,22,30,31,33,37,38,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,38,39,41,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,364],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,364],desir:[1,4,27,28,29,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,49,74,77,85,89,91,109,111,119,121,159,209,212,213,217,218,219,220,221,232,233,241,246,247,252,324,362],destinations_set:246,destroi:[0,20,43,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,38,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,260,269,270,306,308,318,321,336,344,360,362,364],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,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,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,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,48,54,55,56,58,60,61,63,64,68,70,71,72,76,77,80,86,88,90,91,93,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,364],dicecmdset:185,dicenum:185,dicetyp:185,dict:[0,11,13,25,31,46,51,53,88,107,109,119,127,144,146,152,154,159,175,182,184,187,188,192,195,198,205,206,209,210,215,219,221,233,247,249,250,251,252,259,261,264,265,267,272,276,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,49,55,56,62,69,73,80,96,97,102,109,116,124,134,138,157,159,182,184,187,188,192,195,198,205,206,209,210,211,215,219,220,233,235,242,252,260,272,285,294,306,307,308,310,317,321,323,327,328,334,338,339,340,344,357,362,364],did:[2,21,22,29,57,60,64,68,91,95,96,104,111,123,131,144,179,247,260,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,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,245,247,249,251,252,255,256,259,261,265,269,291,296,298,315,316,318,322,324,328,337,340,344,362,364],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,43,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,44,45,49,51,58,70,74,88,90,100,109,111,116,118,119,121,128,137,138,139,159,194,210,235,242,245,267,328,330,337,341,344,364],directli:[2,5,8,13,14,20,21,23,27,29,30,33,37,38,40,42,44,46,50,51,55,56,58,59,61,62,64,72,80,88,89,90,93,95,96,100,102,104,109,110,111,114,116,118,119,123,125,128,131,137,138,147,154,170,175,176,179,180,181,185,198,206,215,220,221,227,233,234,238,242,245,246,247,251,255,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,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,364],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,55,57,60,92,97,105,107,110,112,116,123,128,137,144,156,159,164,167,169,175,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,364],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,dispel:126,displai:[0,17,22,25,30,31,33,38,42,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,199,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,364],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,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,101,103,104,107,112,113,120,124,125,127,128,134,136,137,139,144,145,147,148,171,173,175,177,186,237,239,244,245,246,251,254,255,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,364],django_admin:360,django_nyt:4,djangonytconfig:4,djangoproject:[23,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,344],do_unpickl:325,do_xterm256:321,doabl:[14,138],doc:[16,17,23,25,33,45,51,53,60,64,68,70,79,86,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,41,68,74,96,154,159,170,180,193,205,206,215,233,234,328,364],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,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,364],dodg:218,doe:[2,4,5,9,11,20,21,23,24,25,26,29,31,33,37,38,39,40,41,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,202,203,215,217,218,219,220,221,232,233,234,235,247,251,252,259,260,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,267,280,287,291,321,328,339,344],doesnotexist:[144,146,148,175,177,179,182,184,187,189,195,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,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,171,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,364],donald:93,donat:[70,90,364],done:[1,4,6,9,10,11,20,21,22,25,29,30,31,33,34,36,37,38,39,41,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,260,261,267,280,284,286,288,292,296,302,305,306,308,313,316,321,322,329,334,344,362],donoth:259,dont:289,doom:252,door:[0,20,22,27,49,61,80,85,89,103,159,212],doorwai:212,dot:[22,119,153,159,322,344],dotal:[321,343],dotpath:344,doubl:[22,38,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,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,364],download:[5,9,23,26,63,64,72,75,79,90,100,101,128,130,131,139],downtim:[29,103,331],downward: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,43,55,57,58,60,69,70,73,80,85,86,87,88,89,90,117,118,121,128,137,138,159,165,171,182,203,214,218,221,226,241,247,276,318,322,344],drop_whitespac:330,dropdown:[106,138],droplet:67,droplock:241,dropper:[218,221,247],drum:90,dry:67,dtobj:344,duck:[27,95],duckclient:24,due:[5,6,12,22,29,31,33,40,58,60,62,63,64,76,90,91,93,95,96,104,107,125,126,140,153,169,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,364],dummycli:298,dummyfactori:298,dummyrunn:[141,142,262,267,285,297,299,301,364],dummyrunner_act:298,dummyrunner_actions_modul:298,dummyrunner_set:[93,141,142,262,267,297,364],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,203,227,231,233,234,242,244,255,258,260,276,286,322,324,328,337,357,364],duti:64,dwarf:111,dying:[217,218,219,220,221],dynam:[2,3,34,38,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,each:[0,1,2,4,5,10,11,13,19,20,22,27,29,31,33,34,36,38,39,40,42,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,203,205,206,215,217,219,220,221,228,235,239,242,246,247,252,255,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,364],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,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,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,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,233],east_exit:233,east_west:111,eastern:[62,111],eastward:233,echo1:29,echo2:29,echo3:29,echo:[5,10,12,20,26,27,28,29,33,36,38,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,206,226,231,232,233,247,265,272,287,290,326,344,364],echotest:5,econom:[55,79,86],economi:[61,73,102,108,120,179],ecosystem:100,ect:96,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,202,203,237,242,244,247,249,251,252,316,326,357,362,364],edit_callback:[193,195],edit_handl:159,editcmd:22,editnpc:364,editor:[0,5,9,15,21,22,33,38,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,364],editor_command_group:326,editorcmdset:326,editsheet:58,edu:124,effect:[6,10,11,14,27,28,29,31,35,38,39,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,245,247,253,256,280,336,344,364],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,egiven:245,either:[0,4,9,12,13,17,23,27,29,31,33,34,37,39,41,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,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,38,85,91,123],electr:[90,124],eleg:37,element:[16,17,22,41,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,147,186,324,338,344,345,357],email_login:[141,142,178,364],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,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:[64,75,105,123,129,169,364],enabl:[8,24,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,50,171,186,336],encod:[7,27,43,58,111,139,171,278,291,295,296,321,340,344,364],encode_gmcp:291,encode_msdp:291,encoded_text:344,encompass:27,encount:[60,95,153,245,345],encourag:[3,22,24,39,70,91],encrypt:[7,8,83,103,164,287,288,292,364],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,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,364],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,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,55,56,64,68,73,77,79,89,102,103,104,122,127,131,136,140,150,153,168,169,210,233,238,255,267,278,284,287,290,295,305,307,322,324,364],english:[15,76,79,97,113,139,171],enhanc:[59,81,114,209,321,362],enigmat:20,enjoi:[61,63,91,106,364],enough:[4,6,21,29,38,39,41,42,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,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,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,215,217,218,219,220,221,231,233,235,241,247,252,256,265,306,326,328,357,364],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,364],entireti:[51,73,188,328],entit:324,entiti:[6,11,27,34,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,245,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,47,48,51,54,58,59,63,69,70,72,77,80,83,91,95,107,119,121,131,138,139,144,154,166,167,170,190,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,364],entriest: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,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,47,63,87,88,101,103,104,110,114,128,143,147,159,238,245,255,285,291,316,344,362],eras:[9,95,221],err:[58,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,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,171,175,195,204,206,215,227,232,234,242,245,247,250,251,259,260,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,80,156,241],escap:[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,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,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,171,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,ev_channel:146,eval:[109,179,250,364],evalstr:242,evalu:[33,38,51,119,151,179,242,250,328],evbot:[164,308],evcast:79,evcel:[327,330],evcolor:79,evcolumn:330,eve:344,eveditor:[22,43,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,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,205,217,218,219,220,221,233,234,247,252,290,328,330,334,344],evenli:[27,184],evenn:100,evenna:9,evenni:4,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,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:[65,72,98,164],evennia_dir:344,evennia_error:8,evennia_launch:[106,141,142,262,265,364],evennia_logo:136,evennia_patreon_100x100:70,evennia_runn:106,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,evenniatest:[170,196,211,228,293,342,360,364],evenniaupdateview:362,evenniausernameavailabilityvalid:[144,311],evenniawebtest:360,event:[51,64,73,103,107,137,139,141,146,179,184,194,195,196,198,206,209,227,256,259,309,364],event_nam:[194,198],eventdict:337,eventfunc:[0,141,142,178,191,195,364],eventhandl:195,eventi:[154,180,234],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,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,38,39,41,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,255,259,261,272,289,299,305,314,315,318,328,329,330,364],everror:195,everybodi:41,everyon:[19,21,24,33,34,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,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,364],everywher:[9,56],evform:[27,45,53,141,142,320,364],evgam:164,evgamedir:38,evid:72,evil:[14,93,226,252],evmenu:[22,27,33,45,53,58,85,124,139,141,142,180,188,214,215,230,249,320,364],evmenucmdset:328,evmenuerror:328,evmenugotoabortmessag:328,evmenugotomessag:328,evmor:[43,45,139,141,142,251,320,364],evtabl:[27,33,45,49,53,82,111,141,142,154,188,251,320,327,329,344,364],evtable_arg:329,evtable_kwarg:329,exact:[33,41,51,80,93,95,96,119,129,138,144,147,151,159,168,176,206,221,238,245,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,245,247,267,318,341],exam:[43,159],examin:[2,11,12,20,22,33,43,58,60,73,80,83,85,91,96,106,115,122,123,131,137,140,144,159,179,224,232,233,299,364],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,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],example_batch_cod:[13,141,142,178,222,364],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,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,245,246,247,251,256,259,260,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,245,246,247,326,328],exclude_channel_messag:176,exclude_cov:182,excluded_typeclass_path:169,excludeobj:245,exclus:[51,61,80,83,255,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,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,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,364],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,364],existen:306,exit:[20,21,22,23,31,39,41,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,212,213,215,221,231,232,233,234,235,241,245,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:159,exit_to_ther: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,364],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,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,245,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:[74,169,173,244],explain:[20,22,33,39,43,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,364],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,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,59,63,69,83,95,104,111,116,122,125,169,364],expos:[103,134],express:[3,33,38,51,56,80,109,119,127,134,135,140,159,184,204,221,250,344],ext:51,extend:[1,3,5,27,34,38,39,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,364],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,40,41,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,364],external_discord_hello:272,extra:[1,6,8,14,16,21,23,25,29,31,33,37,38,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],f6d4ca9b2b22:100,face:[90,103,122,171,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,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,199,205,206,212,215,217,218,219,220,221,230,234,235,237,238,239,241,242,244,245,246,247,249,251,252,255,256,257,258,259,260,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,364],famou:[52,326],fan:79,fanci:[15,17,36,73,138,182],fanclub:119,faq:[38,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,364],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,38,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,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,364],feend78:199,feint:116,felin:27,fellow:327,felt:[102,132],femal:189,fetch:[11,63,90,100,128,131,133,329,362],few:[0,4,6,9,10,11,15,17,20,23,31,33,34,36,38,41,42,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,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,245,246,247,251,252,254,256,257,261,274,315,316,317,318,319,327,335,340,341,357,359,362,364],field_class:357,field_or_argnam:74,field_ord:357,fieldevmenu:188,fieldfil:[141,142,178,364],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,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,43,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,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,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,364],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,133,135,188,250,315,316,321,327,329,330,344,364],fill_char:330,fill_color:190,fillabl:188,fillchar:[114,321,336,344],filo:344,filter:[31,34,39,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,43,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,206,212,215,233,234,247,251,252,255,258,267,281,316,317,321,323,341,364],find_apropo:238,find_topicmatch:238,find_topics_with_categori:238,find_topicsuggest:238,fine:[12,15,20,33,38,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,169,171,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],firebreath:58,firefox:72,firestorm:28,firestorm_lastcast:28,firewal:[67,90,364],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,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,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,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,364],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,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,51,57,59,73,88,90,102,108,109,111,116,134,138,148,159,179,180,188,215,241,316,328,362,364],flick:345,flip:[43,51,81,171],flood:[27,50],floor:[0,82,206],flow:[17,36,40,55,61,83,86,115,131,137,324,328,336],flower:[12,20,61,87,89,119,159],flowerpot:[12,57],fluent:79,fluid:[16,17],flurri:206,flush:[23,33,111,128,169,259,318,334],flush_cach:334,flush_cached_inst:334,flush_from_cach:334,flush_instance_cach:334,flusher:334,flushmem:169,fly:[3,12,21,27,31,33,34,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,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,217,218,219,220,221,267,364],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,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,199,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: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,364],foreign:125,foreignkei:[148,246,256,315,318,335],forens:210,forest:[13,111,112,140,187],forest_meadow:112,forest_room:112,forestobj:140,forev:[61,102],forget:[3,9,10,13,25,27,33,41,54,62,72,82,85,86,95,96,100,123,131,206,322,364],forgo:232,forgotten:[28,49,77,85],fork:[9,79,364],forloop:69,form:[11,13,27,31,33,34,38,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,245,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,364],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,364],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,131,159,220],fortress:111,fortun:[4,33,39,48,69,122,128],forum:[1,9,37,48,55,57,63,90,98,128,364],forward:[13,14,20,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,49,51,55,57,58,59,63,68,73,74,76,78,80,83,85,89,90,91,97,103,104,109,112,116,119,122,123,125,127,128,134,135,137,138,141,144,147,149,150,151,152,154,159,167,168,171,175,179,180,192,194,195,206,233,239,242,245,247,250,251,252,255,258,261,266,267,273,282,285,296,306,308,316,317,318,321,322,323,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,124,133,136,137,170,217,220,340,364],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,63,70,72,79,90,146,164,308],freepik:79,freetext:[176,341],freez:[29,33,42,194],frequenc:205,frequent:[91,180],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,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,147,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,198,199,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,245,246,247,251,252,255,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,364],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,245,252,257,279,285,298,308,309,316,318,322,326,328,330,344,364],full_justifi:[109,250],full_nam:87,full_result:185,fullchain:67,fuller:58,fullfil:245,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],fun:[20,26,61,79,81,111,136],func1:[159,242,299],func2:[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,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,364],funciton:220,funcnam:[74,114,242,250,261,328,336],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,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,364],furthermor:[37,38,124,126],fuss:100,futur:[9,10,11,20,23,38,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,147,238,245,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,147,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,199,204,205,206,213,215,217,218,219,220,221,229,230,233,234,239,241,243,246,247,255,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,364],game_index_en:54,game_index_list:54,game_nam:[54,350],game_slogan:[9,350],game_statu:54,game_templ:47,game_websit:54,gamedir:[51,100,109,267,313,364],gamedirnam:58,gameindexcli:270,gameplai:[90,145,364],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,gap:364,garden:79,garment:182,gatewai:[110,296],gather:[24,33,48,83,119,127,132,136,150,151,233,265,269,324,341],gave:[5,21,60,64,91,102,126],gbg:321,gcc:63,gear:[90,106,136,146,153,171,186],gemer:204,gen:17,gender:189,gendercharact:189,gendersub:[141,142,178,364],gener:[0,1,5,9,10,11,12,20,23,25,29,31,33,34,36,37,38,43,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,147,149,154,155,156,159,166,167,168,170,171,174,175,179,180,181,182,185,186,187,188,189,195,199,202,204,205,206,209,210,212,213,214,215,217,218,219,220,221,224,230,231,233,234,239,242,245,247,249,252,255,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,364],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,17,21,22,23,25,26,28,29,30,31,33,38,39,40,41,42,43,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,147,148,152,153,154,156,157,159,160,164,165,171,173,174,176,177,180,182,185,192,194,195,198,199,203,204,206,213,214,215,217,218,219,220,221,223,224,232,233,235,238,239,241,242,245,246,247,249,251,252,255,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_account_from_email:147,get_account_from_nam:147,get_account_from_uid:147,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_script:255,get_all_scripts_on_obj:255,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,364],get_client_s:306,get_client_sess:[295,296],get_client_sessid:296,get_cmdset:174,get_command_info:[154,167],get_connected_account:147,get_cont:245,get_context_data:362,get_damag:[217,218,219,220,221],get_db_prep_lookup:340,get_db_prep_valu:340,get_dbref_rang:[147,245,255,317],get_def:260,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,245,255,260,317],get_info_dict:[284,305],get_initi:362,get_input:[328,364],get_inputfunc:[88,272,291,308,364],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:[245,341],get_objs_at_coordin:235,get_objs_with_attr:245,get_objs_with_attr_match:245,get_objs_with_attr_valu:245,get_objs_with_db_properti:245,get_objs_with_db_property_match:245,get_objs_with_db_property_valu:245,get_objs_with_key_and_typeclass:245,get_objs_with_key_or_alia:245,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_recently_connected_account:147,get_recently_created_account:147,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:[88,272,291,364],get_vari:[192,195],get_width:330,get_worn_cloth:182,getattr:84,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,206,218,221,246,247,274,316],gettext:76,gfg:321,ghostli:233,giant:[21,124],gid:[45,100,299],gidcount:298,gif:70,gift:69,gist:[205,344],git:[9,23,25,36,38,45,47,63,75,76,79,86,90,100,108,124,128,130,364],github:[9,25,37,38,41,45,57,63,70,75,76,79,95,96,98,104,130,131,138,180,295,312,344,364],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,43,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,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,245,247,255,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,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,245,247,249,250,251,252,255,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,364],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:[51,165,328],global:[13,22,33,34,35,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,245,247,250,252,253,255,256,260,264,267,272,274,277,298,299,322,323,324,328,331,336,341,342,344,350,364],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,glu:92,glyph:276,gmcp:[55,74,83,291,364],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:[38,61,76,79,91,102,103,122,124,205],goals_of_input_valid:357,goblin:[51,109,159,252],goblin_arch:252,goblin_archwizard:252,goblin_shaman:109,goblin_wizard:252,goblinwieldingclub:109,god:[20,80,271],godhood:364,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,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,364],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,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,75,79,90,164,330,364],googleusercont:70,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,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,364],granular:221,grapevin:[7,139,141,142,146,164,262,275,364],grapevine2chan:[43,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,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,179,181,183,184,185,186,187,189,199,202,205,206,212,213,214,230,232,327,334,340,343,364],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,64,68,70,79,91,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,364],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:[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,364],guidelin:[37,38,79],guild:[79,86,112,118],guild_memb:51,gun:[21,77],guru:55,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,40,51,55,56,57,58,61,70,73,87,89,96,105,108,119,134,154,165,167,168,169,179],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,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,198,206,210,212,214,215,217,218,219,220,221,226,232,233,234,236,246,247,250,251,252,256,257,260,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,364],handle_egd_respons:269,handle_eof:287,handle_error:[195,260],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,364],handlertyp:319,handshak:[24,52,83,277,283,285,290],handshake_don:290,hang:[3,38,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,213,217,218,219,220,221,227,231,233,235,247,250,252,260,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],harmless:255,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,38,39,40,41,42,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,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,199,203,204,206,215,217,218,219,220,221,223,231,232,233,234,235,239,241,242,245,246,247,251,252,256,259,260,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,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,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,198,202,204,205,206,209,210,215,217,218,219,220,221,224,227,233,234,238,239,241,245,246,247,250,251,252,253,255,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,364],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,364],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:[38,330],heading2:[38,330],heading3:38,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,364],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,46,51,72,74,83,87,88,91,96,105,108,123,129,165,174,206,272,321,364],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,43,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,245,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:[5,22,33,41,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,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,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,245,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,346,362,364],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,80,156],hierarchi:[4,19,22,43,61,66,69,80,119,139,165,182,241,364],high:[4,8,20,31,55,63,80,122,152,220,247,309],higher:[7,19,25,31,41,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,38,55,63,79,93,95,109,110,123,124,128,136,139,184,313,364],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,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,43,63,64,66,70,79,89,90,103,109,131,133,139,153,159,165,231,241,245,246,247,252,324,344],home_loc:159,homepag:[27,63,79,90,93],homes_set:246,homogen:[27,164,251,252,256],homogenize_prototyp:251,honor:206,hood:[20,33,51,57,60,61,64,86,87,119,122,125,128,206,234],hook:[2,25,30,33,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,171,173,175,182,187,195,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,364],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,364],host_os_i:344,hostnam:67,hotbutton:137,hotel:90,hotspot:103,hour:[27,62,132,184,331,344],hous:[90,109,159,364],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,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,147,151,153,154,168,169,170,173,174,175,180,182,184,185,189,204,205,206,213,215,219,220,221,226,231,235,237,241,246,247,252,255,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,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:38,hpad_char:330,href:[17,69,133],hrs:184,htm:282,html5:55,html:[24,38,55,64,69,79,83,96,103,114,134,135,136,137,138,145,169,175,204,234,239,289,291,295,296,312,318,340,343,362,364],htmlchar:343,htop:110,http404:[69,134],http:[3,4,9,22,23,36,37,38,45,54,55,63,65,69,70,75,83,90,95,98,103,104,107,108,124,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,364],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,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,245,247,255,321,322],identif:[27,115,308],identifi:[0,8,23,28,30,31,33,39,41,42,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,255,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:[86,125,141,142,169,177,239,274,300,316,317,318,320,364],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,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,321,326,343],ignoredext:312,illumin:111,illus:[10,96],imag:[4,17,63,69,70,90,101,106,133,135,136,137,138,364],imagesconfig:4,imagin:[14,29,31,46,48,51,61,77,116,117,122,132,138,322],imaginari:[21,79],imc2:34,imeplement:235,img:[17,70],immedi:[0,5,15,27,29,33,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: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,147,148,152,153,156,157,158,159,160,161,164,165,166,167,168,169,171,176,177,179,181,182,184,185,187,189,202,205,206,210,212,213,214,215,217,218,221,224,231,232,233,235,238,239,241,242,245,246,247,255,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,364],in_game_error:[26,103],in_templ:[316,336],inabl:[63,103],inaccess:[0,80],inact:[102,231],inactiv: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,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:[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,209],indetermin:269,index:[7,38,49,56,61,68,79,85,86,90,108,121,135,136,151,165,179,215,232,245,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,49,51,62,64,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,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,364],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,46,48,51,55,60,65,66,68,69,73,83,84,85,86,91,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,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,364],infrastructur:[38,64,83,90,103,150,277,364],infrequ:46,ing:[9,14,58,185],ingame_python:[141,142,178,364],ingame_tim:62,ingo:[31,51,58,74,114,152,245,279,336,364],inher:[4,10,87,108],inherit:[2,5,6,22,27,30,31,33,36,40,42,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,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,364],inheritng:252,inherits_from:[117,134,169,344,364],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,255,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,255,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,245,246,247,251,255,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,364],initial_formdata:188,initial_ind:330,initial_setup:[141,142,262,305,364],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,364],inlinefunc:[45,83,104,109,141,142,250,308,320,364],inlinefunc_en:[114,336],inlinefunc_modul:[114,336],inlinefunc_stack_maxs:114,inlinefuncerror:336,inlinefunct:[114,336],inmemorysavehandl:339,inner:77,innoc:[12,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,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,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,364],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:[87,165,316,317],insecur:90,insensit:[51,174,187,206,233,245,317,349],insert:[13,14,25,38,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,46,47,51,57,59,63,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,364],inside_rec:241,insiderecurs:241,insight:[20,41,42,122,136],insist:[90,91],inspect:[12,23,51,85,144,159,169,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,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,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,198,204,215,234,235,237,239,244,246,247,251,252,254,255,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,364],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,38,39,41,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,198,206,213,215,217,218,219,220,221,226,230,232,234,235,241,242,245,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],instnac:260,instr:[276,344],instruct:[0,8,9,13,14,23,27,30,37,38,42,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,206,210,252,261,264,267,277,279,285,290,291,295,296,298,306,308,328,338,364],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,344,345,362],intens:[79,93,114],intent:[51,76,96,103,205,344],inter:13,interact:[2,20,23,29,33,38,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,364],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,63,64,69,70,79,80,90,96,97,101,104,119,133,135,137,138,139,156,159,173,175,245,247,259,278,307,312,319,321,362,364],interfaceclass:287,interfer:[23,97,251],interim:[29,115],interlink:[284,305],intermediari:[206,242,257,328],intern:[10,11,15,27,34,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,245,247,251,258,295,296,316,318,319,321,325,328,330,336,344,364],internal:328,internal_port:90,internation:[7,113,139,364],internet:[10,12,16,33,40,63,67,72,90,103,124,157,264,269,277,278,279,287,290,298,312],interpret:[33,42,56,59,60,91,93,96,102,103,104,109,134,154,158,159,251,252,295,321,336,340,364],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,147,184,195,217,218,219,220,221,223,226,227,231,233,250,255,256,259,261,272,324,331],interval1:261,intim:[31,33],intimid:58,intoexit:159,intpropv:123,intricaci:62,intrigu:54,intro:[4,69,122,124,134,230,233],intro_menu:[141,142,178,229,364],introduc:[26,29,31,57,73,97,123,124,127,131,139,206],introduct:[3,13,14,15,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,43,80,85,91,97,119,138,165,182,206,241,247,318,364],invers:[80,114,126,206,293,343],invert:[114,126],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:[43,72,164],irc:[7,9,26,34,55,60,63,70,79,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:[72,164],ircnetwork:[72,164],ircstatu:[43,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_run:255,is_sai:118,is_staff:145,is_subprocess:344,is_superus:[2,4,144,145,148,242,247,324],is_thief:166,is_turn:[217,218,219,220,221],is_typeclass:[48,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],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,171],isol:[13,37,38,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,63,70,79,85,89,90,93,103,108,123,125,126,127,131,138,140,164,171,251,267,298,299,330,363,364],istart:[42,110,141],istep:299,istitl:321,isub:116,isupp:321,ital:364,itch:[61,63],item:[20,38,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,itend:344,iter:[11,49,51,59,97,112,119,138,144,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,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,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,203,205,206,213,215,217,218,219,220,221,226,227,231,232,234,235,241,245,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,38,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,245,247,249,252,260,267,291,296,308,312,315,316,319,321,324,326,328,339,341,344,346,357,362],iusernamepassword:287,iwar:85,iweb:90,iwebsocketclientchannelfactori:278,iwth:261,jack:87,jail:[12,13],jamochamud:24,jan:[12,62,364],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,364],johnsson:87,join:[9,22,34,49,58,61,63,65,72,96,112,116,119,123,133,144,164,175,179,205,321,344,364],join_fight:[217,218,219,220,221],join_rangefield:221,joiner:175,jointli:[64,153],joke:59,joker_kei:[22,180],jqueri:138,json:[83,88,137,138,209,278,291,295,296,325],jsondata:88,jsonencod:296,jsonifi:296,judgement:73,jumbotron:364,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,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,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,364],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,255,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,44,49,50,52,56,57,58,60,62,69,71,74,80,81,82,84,85,86,88,89,91,95,96,97,102,107,111,112,114,115,116,119,120,121,123,125,127,129,131,133,137,138,144,146,147,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,202,203,205,206,212,213,214,215,217,218,219,220,221,224,230,231,232,233,234,235,239,241,245,246,247,250,251,252,255,256,257,258,259,260,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,364],kept:[33,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,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,198,205,206,210,217,218,219,220,221,233,234,242,245,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,364],keyword_ev:198,kick:[12,31,51,58,90,146,152,157,164,171,186,247,329],kildclient:24,kill:[20,27,51,61,75,93,100,102,105,116,169,179,231,232,255,257,258,259,261,267,305,312,364],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,kitchen:[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,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,364],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,364],knuth:93,kobold:61,koster:79,kovash:51,kovitiku:364,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,199,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],label:[48,64,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,364],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,38,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,38,42,48,51,54,58,60,69,74,76,86,87,89,91,95,96,105,107,110,116,121,122,126,127,131,134,136,137,147,150,151,153,159,164,165,179,184,187,195,206,215,217,218,219,220,221,227,247,271,321,322,323,328,329,330,331,337,344,364],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,40,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,58,63,64,75,83,98,131,159,164,169,247,252,286,310,328,337,363,364],latin:[15,113,171,344,364],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,364],launcher:[93,106,266,267,276,277,298],law:79,layer:[22,31,246,318],layout:[27,49,56,58,96,119,125,128,137,138,235,364],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,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,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,260,295,296,328,334,364],leavelock:241,leaver:175,left:[22,27,33,36,38,39,41,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:[24,49,50],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,245,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,38,39,40,41,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,364],letsencrypt:[67,90],letter:[15,22,38,39,76,90,95,111,113,114,119,123,133,156,165,171,180,204,311,344],level:[2,11,13,19,20,22,26,27,30,36,38,40,41,47,50,51,55,57,58,61,63,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,lhs:[25,58,167,168],lhslist:[167,168],lib:[63,67,75,97],libapache2:8,libcrypt:75,libjpeg:75,librari:[6,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,364],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,364],lift:[20,73,80,96,123,221,242,364],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,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,204,205,206,212,213,215,217,218,219,220,221,224,227,233,234,235,239,241,242,245,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,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,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,147,156,157,158,159,175,176,182,195,206,215,217,219,220,227,238,239,242,245,247,252,255,256,259,261,272,285,310,316,317,318,319,322,324,326,337,341,344,362,364],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,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,202,205,206,215,234,235,251,267,272,287,290,295,306,318,322,326,327,328,329,330,337,344,357,362,364],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,43,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,224,227,234,241,242,247,256,265,267,278,282,287,290,318,343,344,364],link_ok:241,linklock:241,linknam:[38,54],linktext:38,linod:90,linux:[4,8,9,23,25,38,64,67,72,75,87,90,93,97,100,106,131,209,344,364],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,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,147,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,198,199,202,203,204,205,206,209,210,215,217,218,219,220,221,230,231,232,235,238,241,242,245,246,247,250,251,252,255,257,258,259,261,265,267,272,273,276,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,364],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,364],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:159,listaccount:[43,169],listcmdset:159,listcmset:[43,159],listen:[2,12,34,41,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,57,66,109,165,250,321,340,344],literal_ev:[51,251,315,328],literatur:364,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,218,230,233,302,328,344,357],live:[8,23,38,60,63,67,70,79,90,100,106,364],ljust:321,lne:215,load:[6,11,12,13,15,26,29,31,33,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: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,364],local_and_global_search:245,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,203,206,212,231,233,235,241,245,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,43,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,202,203,206,212,214,224,231,232,233,235,237,239,246,247,251,252,255,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,202,203,206,212,213,214,215,217,218,219,220,221,224,231,232,233,234,239,247,316,318,326,328,329],lock_typ:80,lockabl:[58,212],lockablethreadpool:312,lockdown:[80,316,364],lockdown_mod:90,lockexcept:242,lockfunc1:80,lockfunc2:80,lockfunc:[25,33,53,80,104,121,141,142,159,240,364],lockhandl:[11,48,80,125,141,142,154,180,234,240,241,364],lockset:247,lockstr:[4,11,33,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,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,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,209,210,247,256,260,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,364],logged_in:105,loggedin:285,logger:[27,53,102,118,120,141,142,209,279,320,364],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,51,55,69,70,80,90,97,101,105,107,131,133,139,144,156,171,186,242,271,272,287,290,295,296,299,308,344,349,351,360,364],login_func:299,loginrequiredmixin:362,logintest:360,logo:364,logout:[298,299,360],logout_func:299,logouttest:360,logprefix:[277,287,290,312],lone:[61,111,159],long_descript:54,long_running_funct:10,long_text:52,longer:[0,21,25,29,33,41,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,260,326,330,364],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,43,44,46,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,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,202,203,205,206,215,219,224,230,232,233,235,238,241,242,244,246,247,249,252,255,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,80,86,97,112,119,150,165,209,245,246,286,319,321,333,334,340,341,344,345,364],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,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,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:[38,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,364],machin:[13,25,100,106,131,231,364],macport:[63,131],macro:[4,116],macrosconfig:4,mad:131,made:[3,11,19,20,21,25,26,35,36,38,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,260,269,313,321,322,328,344],mag:[60,127,327],magazin:79,mage:51,mage_guild_block:51,mage_guild_welcom:51,magenta:126,magic:[30,60,61,80,112,121,122,140,179,190,220,269,364],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,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,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,205,206,217,218,219,220,221,224,232,233,241,242,245,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,364],mailbox:[34,199],maillock:241,main:[13,14,15,20,21,22,30,31,33,34,37,40,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,364],mainli:[10,12,33,34,51,57,79,83,89,93,96,105,156,236,316,322,336,344],maintain:[4,19,23,37,38,41,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,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,205,206,211,212,213,215,217,218,219,220,223,224,226,227,231,232,233,238,241,242,245,247,251,252,255,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,364],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:[87,90,108,129,165,199,206],mana:[28,30],manaag:237,manag:[2,7,9,11,31,39,40,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,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: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,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,147,148,152,154,159,170,177,179,182,186,188,206,213,214,215,219,220,224,231,234,239,241,242,245,246,252,255,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,44,51,64,86,102,109,123,147,159,166,169,176,187,192,238,245,247,255,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,46,51,57,58,61,64,67,87,88,97,100,124,135,138,139,156,164,183,184,205,206,235,247,251,252,291,316,318,321,327,328,336,344,364],map_modul:111,map_str:[49,111,235],mapbuild:[141,142,178,364],mapper:[334,364],mapprovid:235,march:[79,337],margin:17,mariadb:364,mark:[13,14,20,21,33,38,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,51,64,87,114,138,165,187,189,206,215,247,279,287,290,295,296,316,319,321,327,329,336],market:90,markup:[81,114,136,139,183,321,343],mask:[203,206,210,211],maskout_protodef:203,mass:[61,124,139,364],massiv:[28,55],master:[7,9,37,38,57,61,63,73,95,98,100,104,116,118,134,313,364],match:[9,11,20,22,27,31,33,39,41,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,147,150,151,152,153,154,157,159,165,166,168,170,174,176,180,183,184,187,188,198,199,202,203,206,220,235,238,241,242,245,247,251,252,255,258,261,272,273,285,298,308,316,317,318,319,321,326,328,330,336,339,341,343,344,345,362,364],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,364],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,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,147,153,159,175,185,195,205,226,227,232,234,241,245,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,364],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:169,member:[9,11,70,86,165,167,168,247,344],membership:[4,9,119],memori:[6,12,23,28,31,33,56,75,86,90,93,113,125,135,144,169,175,227,247,260,261,300,310,320,329,334,339,344],memoryerror:63,memoryusag:300,memplot:[141,142,262,297,364],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,38,45,46,47,53,54,55,63,65,69,105,106,109,110,123,128,138,139,141,142,159,180,188,214,215,230,248,252,265,267,320,338,364],menu_cmdset:328,menu_data:51,menu_edit:180,menu_login:[141,142,178,364],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,169,190],merg:[3,5,22,33,37,38,44,51,57,62,64,97,131,139,150,151,152,153,166,224,233,235,252,256,291,328,336,364],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,38,40,41,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,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,364],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,147,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,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,245,247,255,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,364],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,364],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,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,255,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,364],mike:159,mileston: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,364],mindex:151,mine:[46,103,138],mini:[55,111,124,364],miniatur:[61,122],minim:[61,103,105,116,138,205,252],minimalist:[33,58,108],minimap:364,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,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,364],mislead:41,mismatch:[74,344],miss:[49,57,60,63,70,90,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,55,56,61,80,105,122,141,142,153,159,178,229,233,252,322,364],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,260,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,251],mod_import:344,mod_import_from_path:344,mod_prototype_list:251,mod_proxi:364,mod_proxy_http:8,mod_proxy_wstunnel:8,mod_secur:103,mod_ssl:364,mod_sslj:8,mod_wsgi:364,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,171,175,181,199,231,247,251,255,258,267,272,277,284,295,296,305,322,326,328,337,344,364],mode_clos:296,mode_init:296,mode_input:296,mode_keepal:296,mode_rec:296,model:[9,11,34,38,41,45,59,64,69,73,80,87,96,104,112,115,119,125,132,135,136,139,141,142,143,144,145,147,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,126,138,280],modif:[0,8,25,33,37,46,83,91,100,123,131,138,313,357,364],modifi:[0,2,4,11,20,22,25,26,31,33,34,38,39,40,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,203,206,213,217,218,219,220,221,232,234,239,245,247,252,261,318,322,328,334,340,343,357,362,364],modified_text:114,modul:[3,5,6,11,13,15,20,21,26,27,29,31,33,35,37,38,40,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,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,364],monitor_handl:[53,84,141,257],monitorhandl:[45,74,139,141,142,253,364],mono:25,monster:[29,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,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,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,204,205,206,213,214,215,217,218,219,220,221,226,231,232,233,234,235,241,244,245,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,364],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,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,260,290,295,305,316,317,318,319,328,329,334,335,344,362,364],mostli:[40,51,57,69,73,90,91,95,114,123,125,137,138,145,152,171,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],mous:[114,137,328],move:[0,4,9,14,15,21,22,23,29,33,34,41,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,213,217,218,219,220,221,231,232,233,235,238,241,247,299,318,322,329,364],move_hook:247,move_obj:235,move_to:[0,85,89,121,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,364],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,199,210,234,242,247,278,279,306,315,322,324,328,329,337,341,344,364],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,247],msg_help:166,msg_leav:0,msg_locat:247,msg_other:179,msg_receiv:247,msg_self: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,364],mtt:294,much:[0,4,10,11,13,14,15,20,22,23,25,26,29,37,39,41,42,49,51,56,59,61,62,63,64,67,69,73,76,79,80,82,89,90,91,93,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,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,364],mudbyt:79,mudconnector:[79,171],mudderi:79,muddev:63,mudform:327,mudinfo:[34,171],mudlab:79,mudlet:[24,96,101,272,282],mudmast:24,mudramm:24,mudstat:171,muhammad:343,mukluk:24,mul:250,mult:[109,250],multi:[10,22,31,38,51,55,61,95,96,100,104,105,119,122,123,151,169,206,215,308,328,364],multiaccount_mod:97,multidesc:[141,142,178,364],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,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,245,247,250,251,252,261,265,269,272,276,291,299,315,316,317,322,328,329,330,341,344,364],multiplay:[55,57,79],multipleobjectsreturn:[144,146,148,175,177,179,182,184,187,189,195,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:[41,69,328,364],multisession_mod:[2,24,33,64,69,105,123,133,144,156,160,181,189,247,308],multisession_modd:51,multitud:[57,111,114],multumatch:247,mundan:21,murri:344,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,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,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,364],mute:[17,41,174,175],mutelist:[41,175],mutltidesc:202,mutual:317,mux2:[129,171],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,202,203,212,214,219,220,233,247,326,364],mvattr:[43,159],mxp:[24,55,74,114,141,142,262,272,275,287,290,321,328,343,344,364],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:164,mycallable1:51,mycar2:87,mychair:112,mychan:34,mychannel:[12,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,38,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,202,212,213,292,342,344],mygamedir:38,mygamegam:81,myglobaleconomi:102,mygotocal:51,mygrapevin:164,myhandl:107,myhdaccount:100,myhousetypeclass:159,myinstanc:86,myircchan:164,mykwarg:51,mylayout:137,mylink:38,mylist2:11,mylist:[6,11,97,318],mylog:27,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:[56,102,112,159],myros:89,myscript:[102,112,125],myscriptpath:102,myserv:186,myservic:40,mysess:105,mysql:[36,55,64,128,344,364],mysqlclient:23,myst:364,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:159,name2: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,43,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,147,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,203,204,205,206,212,215,219,220,231,233,234,235,238,239,240,245,246,247,251,252,255,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,364],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,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,38,48,49,51,106,111,128,133,134,221,362],naw:[24,52,141,142,262,275,364],nbsp:343,nchar:120,nclient:298,ncolumn:330,ncurs:141,ndb:[6,13,22,25,29,33,51,102,105,116,125,144,148,169,246,256,306,316,318,328,364],ndb_:[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,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,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,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,203,204,205,206,215,217,218,219,220,221,227,231,232,233,234,235,241,242,246,247,251,252,255,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,364],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,51,114,144,159,206,215,241,247,250,252,291,325,336,364],nested_mut:11,nested_r:159,nestl:111,net:[9,57,63,72,79,90,146,164,171,280,281,291,294,308],netrc:131,network:[40,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,51,86,126,156,180],new_alias:[154,245],new_arriv:233,new_channel:58,new_charact:231,new_coordin:235,new_datastor:86,new_destin:245,new_goto:328,new_hom:245,new_kei:[107,154,245,247,255],new_loc:[159,245],new_lock:[245,255],new_menu:180,new_nam:[107,159],new_name2:159,new_obj:[80,247,252,255],new_obj_lockstr:159,new_object:[109,252],new_permiss:245,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:[46,58,60,66,131,133,159,175,180,199,204,234,247,252,259,324],newlin:[33,137,166,322,330],newnam:[33,159,318],newpassword: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,202,215,217,218,219,220,221,232,242,259,267,322,328,329,331,336,344,362,364],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,364],nicer:[20,60,96],niceti:159,nick:[2,11,43,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,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,215,230,249,265,328,364],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_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_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:169,noerror:247,nofound_str:[144,206,247,344],nogoahead:289,nohom:324,nois:21,noisi:[90,264,269,277,287,290,312],noloc: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,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,147,148,150,152,159,169,171,175,177,185,195,204,212,214,215,232,238,246,247,251,252,255,256,257,258,259,261,267,276,290,291,305,306,308,316,318,321,324,325,326,328,330,336,341,344,364],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,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,147,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,198,203,204,205,206,212,214,215,217,218,219,220,221,224,230,231,232,233,234,235,237,238,241,242,244,245,246,247,249,250,251,252,254,255,257,258,259,260,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,364],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,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,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,44,46,49,89,111,114,121,159,180,213,299],north_south:111,northeast:[20,159,235],northern:[22,111],northwest:159,not_don:312,not_error:267,not_found:159,notabl:[6,9,10,40,63,97,131,154,159,170,179,318,325,326,336,344],notat:[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,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,198,202,203,204,205,206,212,213,215,217,218,219,220,221,224,226,227,233,234,235,241,242,245,246,247,251,252,255,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,noteworthi:38,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:[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,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:[255,258],nr_stop:255,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,num_total_account:147,number:[0,6,10,11,12,13,20,21,23,25,26,27,31,33,34,36,38,41,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,147,151,152,153,157,159,164,165,174,176,177,182,184,185,188,190,192,194,195,198,204,205,206,215,217,218,219,220,221,245,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,364],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,80,97,109,159,203,221],obj2:[11,80,97,109,127,159,203,221,322],obj3:[11,109,159],obj4:11,obj5:11,obj:[2,6,10,11,22,25,27,31,33,41,42,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,255,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,43,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,198,199,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,255,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,245],object_subscription_set:246,object_tot:[147,245,255,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:159,objmanipcommand:159,objnam:[27,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,81,88,159,165,187,206,223,227,233,291,322,344],obtain:[0,33,39,63,77,90,91,93,100,180,232,364],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,260,299,328,337],occurr:[46,91,123,321],ocean:[90,122],oct:364,octob:364,ocw:124,odd:[22,49,61,103,126],odor:58,off:[0,11,14,20,23,24,29,31,33,36,40,41,49,50,51,55,61,64,66,74,80,81,86,88,90,100,103,107,108,110,114,115,123,126,135,138,139,144,154,164,169,170,171,174,175,182,188,206,227,231,233,242,247,272,280,287,290,306,318,321,322,324,326,328,329,330,336,337,345,364],off_bal:29,offend:12,offer:[1,4,11,14,22,26,28,31,33,34,37,39,40,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,364],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,38,40,41,42,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,364],olcmenu:249,old:[0,1,5,9,21,25,27,31,38,39,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,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],onam:245,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,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,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,41,42,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,204,205,206,214,215,217,218,219,220,221,224,227,230,232,233,234,235,238,239,241,242,244,245,246,247,249,250,251,252,255,256,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,364],ones:[4,9,14,20,22,27,31,33,43,57,58,65,72,74,80,81,83,90,95,100,103,109,114,116,126,127,135,152,153,154,177,180,195,217,218,219,220,221,241,251,252,271,276,308,321,330,338],onewai: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,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,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,147,150,151,152,153,154,156,157,158,159,164,165,166,167,168,169,170,171,175,176,177,179,180,181,182,185,187,188,190,195,199,205,206,214,215,217,218,219,220,221,223,226,227,232,233,234,235,239,241,242,245,247,250,251,252,255,256,258,259,260,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,364],onlin:[7,12,15,21,37,41,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:[255,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,43,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,43,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,364],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,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,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,43,47,50,54,55,57,62,63,64,74,76,79,80,81,83,85,86,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,147,150,151,152,153,154,156,157,159,164,167,168,170,171,173,174,175,176,177,179,180,181,182,184,185,187,188,189,190,192,194,195,199,203,204,205,206,214,215,219,221,230,233,234,235,237,238,241,242,244,245,246,247,249,251,252,254,255,256,257,258,259,260,261,263,264,265,267,269,272,273,276,277,279,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,364],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,364],optioncontain:323,optionhandl:[141,142,320,338,364],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,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,245,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,ordereddict:[11,344],ordin:321,org:[37,38,90,204,234,283,289,295,321,344,357],organ:[5,6,9,22,38,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,49,51,55,57,60,75,76,79,81,89,91,96,102,103,105,106,119,131,136,138,146,152,159,180,199,205,206,234,245,247,251,252,255,276,318,321,328,336,340,343,363],original_object:245,original_script:255,oscar:[175,239,318],osnam:344,oss:106,ostr:[144,147,176,238,245,255,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,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,199,205,206,210,212,215,217,218,219,220,221,224,227,233,234,235,239,242,246,247,251,252,255,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,364],otherroom:212,otherwis:[0,4,11,15,23,25,27,29,31,33,37,39,41,42,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,147,151,152,156,159,175,179,183,187,188,192,195,206,217,218,219,220,221,235,242,247,250,251,252,259,260,267,278,279,287,306,310,311,315,321,328,329,336,337,341,342,344,362],otypeclass_path:245,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,215,231,232,235,242,257,312,315,337,363,364],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,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,364],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,247,279,291,307,344,364],outgoing_port:90,outlet:90,outlin:[36,43,111,133,278],outmessag:247,output:[4,14,20,22,26,27,34,40,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,171,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,364],outputcmd:291,outputcommand:[74,83,364],outputfunc:[40,59,83,247,272,278,364],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,364],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,45,48,49,51,54,57,58,59,60,61,73,77,81,83,85,88,90,93,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,212,215,217,218,219,220,221,227,233,261,271,285,287,290,292,296,298,300,313,318,322,329,334,340,362,363],overal:[10,56,57,68,71,86,90,152,167,168,218,364],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,364],overrid:[1,3,4,9,20,21,22,25,31,36,51,53,54,68,69,80,83,91,96,102,105,107,109,117,118,121,135,137,144,154,159,166,170,175,176,180,187,195,205,219,221,233,234,242,247,252,259,290,308,312,315,328,329,334,337,338,341,362,364],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,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,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,38,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,43,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:[12,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,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,pane:[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,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,147,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,198,199,204,205,206,209,210,212,215,217,218,219,220,221,226,230,233,234,235,238,242,244,245,246,247,249,251,252,254,255,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,206,215,234,241,246,247,251,252,256,317,318,326,335,337,344,362,364],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,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,38,41,47,79,104,108,109,134,150,151,156,159,167,168,169,171,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,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,364],partial:[25,68,205,245,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,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,147,151,152,159,176,187,210,219,220,227,238,241,242,247,255,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,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,209,210,212,215,217,218,219,220,221,232,241,242,247,251,257,260,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,43,51,64,74,80,103,131,139,144,145,156,157,171,186,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,147,219,313,322,331,362],pastebin:37,pat:245,patch:[125,342,364],patch_:37,path:[0,2,4,8,14,20,21,22,27,29,38,39,40,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,198,203,204,205,206,212,213,214,217,218,219,220,221,223,224,226,227,230,231,232,233,235,239,245,246,247,251,252,255,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,364],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,260,364],pausabl:344,pauseproduc:269,pax:364,paxboard:79,payload:[278,295],paypal:[37,70],paypalobject:70,pdb:[139,141,364],pdbref:[80,241],pdf:79,peac:117,peek:[20,26,51,91],peer:[278,295],peform:272,peg:103,pem:67,pemit:[108,157],penalti:[86,219],pend:312,pennmush:[57,108,129,171],pentagon:103,peopl:[2,20,21,26,37,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,245,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,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,245,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,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,51,85,90,96,122,123,138,144,152,153,156,159,164,165,169,205,247,260,318],permiss:[2,4,7,8,9,11,12,18,20,21,23,25,31,41,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,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,364],persis:29,persist:[0,6,21,22,27,31,33,34,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,255,256,257,258,259,260,261,272,273,274,305,306,314,318,324,326,328,330,331,344,364],person:[12,21,61,63,70,73,90,102,105,118,129,139,144,159,165,179,185,206,226,364],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:[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,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,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:[245,340],pickledformfield:[315,340],pickledobject:340,pickledobjectfield:340,pickledwidget:340,picklefield:[141,142,315,320,364],pickpocket:166,pickup:[221,247],pictur:[21,40,57,106,138,364],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,364],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,41,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,203,206,209,217,218,219,220,221,232,233,235,247,255,259,276,285,290,306,307,308,322,323,325,328,344,364],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,364],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,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,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,203,205,206,210,214,215,220,221,233,234,235,238,255,256,281,290,307,322,327,344,357,362,364],playernam:71,playerornpc:9,pleas:[4,5,8,16,17,26,31,37,51,63,70,71,72,75,78,90,93,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,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,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,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,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,364],pointer:[26,49,56,91],pointless:[6,10,89,115],poison:[219,252],poke:119,pole:203,polici:[43,45,90,103,139,210,239,311,316,364],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,54,55,63,67,72,100,101,110,146,164,276,279,287,299,308,312,364],portal:[40,45,47,53,79,88,89,90,93,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,364],portalsessiondata:308,portalsessionhandl:[40,141,142,262,275,286,308,364],portalsessionsdata:308,portion:[77,180,190],pose:[29,43,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,202,221,232,233,234,235,247,260,321,322,325,326,330,344,345,364],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,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,147,148,150,152,159,167,168,179,187,194,203,205,206,214,227,231,233,235,241,242,245,247,250,251,252,257,261,272,292,296,306,308,317,319,321,324,326,327,328,330,340,341,344,364],post:[5,31,34,37,55,57,58,61,63,69,70,71,80,98,107,111,120,133,136,210,296,362,364],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,364],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,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,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,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,47,55,57,71,80,90,91,96,106,109,111,123,131,137,138,152,154,157,175,180,206,218,231,238,245,247,318],prefix:[20,22,23,42,76,86,97,103,125,145,151,168,175,190,205,237,244,245,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,364],prepars:38,prepend:[199,206,247,321,322,328,344],prepopul:[315,362],preprocess:159,prerequisit:[9,36,364],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,364],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,49,50,67,72,74,91,102,104,114,119,127,133,136,154,157,159,179,272,288,292,299,308,319],prgmr:90,price:[90,232],primari:[17,100,125,133,206,245,247,316,341],primarili:[2,12,34,36,37,38,55,61,108,144,179,206,238,285,325,344],primary_kei:133,prime:[150,179],primit:[61,159,251],princess:[111,122],principl:[2,9,19,26,30,33,37,38,40,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,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,230,232,233,247,326,328,329],privat:[4,8,38,57,61,69,90,131,164,165,176,279,292],private_set:9,privatestaticroot:312,privileg:[21,23,60,63,65,72,98,123,165,206,235,247,318,364],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,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,364],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,49,51,55,59,61,64,67,73,75,76,83,88,89,90,91,92,93,100,106,122,131,133,138,139,144,150,152,159,169,179,206,215,234,240,242,247,251,257,260,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,320,364],procpool:344,produc:[33,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,364],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,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,171,234,262,267,290,296,298,364],programm:[91,95],programmat:[114,138],progress:[70,73,79,85,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,364],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,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,260,261,287,344,362],properti:[5,6,13,22,25,39,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,194,203,206,215,217,219,220,221,231,232,233,234,235,237,239,241,242,244,245,246,247,251,252,254,255,256,258,259,260,263,272,274,279,285,299,306,307,308,315,316,318,319,323,325,328,338,339,340,341,344,357,362,364],property_nam:245,property_valu:245,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,90,159,306],protfunc:[141,142,248,251,364],protfunc_modul:251,protfunc_pars:251,protfunct:251,protkei:[109,250,251],proto:[276,287],proto_def:203,protocol:[24,27,33,47,53,64,72,74,79,83,90,92,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:169,protototyp:[249,251,252],protototype_tag:109,prototoyp:250,prototyp:[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:159,prototype_diff:252,prototype_diff_from_object:252,prototype_from_object:252,prototype_kei:[109,159,251,252],prototype_keykei:159,prototype_lock:[109,252],prototype_modul:[109,159,251,252],prototype_pagin:251,prototype_par:[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,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,171,175,180,182,188,190,193,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,103,125,312,315,364],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,364],publish:[21,36,79,100],pudb:[141,364],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,199,241,247,306,308,318,336,360,362,364],puppet_object:[2,144],purchas:[67,85],pure:[46,56,88,114,125,126,256,267,316,321],pure_ascii:344,purg:[11,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,364],pushd:63,put:[0,2,3,5,6,10,12,13,14,19,20,21,23,25,33,37,38,42,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,364],putti:90,puzzl:[79,122,141,142,178,232,233,364],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,75],python:[0,2,3,4,9,10,11,12,14,15,19,20,21,22,23,27,29,31,33,37,38,39,42,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,198,204,234,235,242,245,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,43,121,156,212,364],quell_color:159,queri:[11,16,34,39,56,64,83,86,109,112,131,148,177,206,238,239,245,246,247,250,251,252,256,274,287,302,316,317,318,319,329,335,341,344,345,364],quersyet:119,query_info:267,query_statu:267,queryset:[64,102,112,119,147,176,199,238,245,251,255,273,315,317,329,362],queryset_maxs:329,quest:[55,57,61,63,117,122,139,233],question:[8,10,22,26,33,34,50,51,57,61,63,67,70,73,90,96,124,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,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,364],quicker:[0,37,86,87],quickli:[10,11,15,25,33,34,39,48,51,86,89,96,112,114,120,128,136,139,159,180,205,319,322],quickstart:[90,95,139,364],quiescentcallback:269,quiet:[25,85,144,157,159,164,180,182,206,247,329,344,364],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,43,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,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,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,364],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,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,rapidli:153,raptur:291,rare:[10,22,33,34,38,63,86,104,106,115,128,242,324],rascal:112,rate:[33,37,64,90,164,261,267,286,344],rather:[2,3,11,13,20,22,25,26,29,33,37,38,39,41,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,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,215,230,247,249,306,316,328],raw_templ:87,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:169,reactor:[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,46,51,55,56,58,59,60,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,364],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,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,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,364],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,126],realiz:[48,96,126,131],realli:[4,10,11,12,13,14,19,20,22,25,26,31,33,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,realtim:[58,184],realtime_to_gametim:184,reason:[8,9,11,12,13,22,25,29,34,37,38,39,40,41,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,245,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,255,256,257,258,259,261,267,307,308,326,328,364],reboot_evennia:267,rebuild:[58,63,100,128,279],rebuilt:33,rec:206,recach:[233,306],recal:[95,138,232,362],recapcha:364,recaptcha:133,receipt:[103,269],receiv:[31,33,34,37,41,42,51,52,58,77,83,87,91,105,113,114,127,133,137,138,144,152,153,170,171,175,176,177,186,199,206,210,247,269,272,276,278,279,285,295,296,305,306,324,329,341,344,364],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,123,147,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,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,245,247,269,322,328,341],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,59,80,87,95,109,114,126,159,169,224,226,227,232,336,345],red_bal:59,red_button:[13,14,20,87,141,142,159,178,222,224,227,364],red_button_script:[141,142,178,222,226,364],red_kei:80,redbutton:[13,14,20,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:[116,217,218,219,220,221,280,364],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,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,204,206,217,218,219,220,221,241,247,258,260,261,269,279,299,307,315,317,328,334,340,341,344,362,364],referenc:[38,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,144,152,179,189,206,224,227,247,259,261,284,287,290,305,307,316,319,322,334,337],regener:219,regex:[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:[58,90,140,157],regist:[65,71,83,103,104,116,120,131,133,135,137,138,144,147,164,169,198,231,232,257,267,278,279,285,308,312,321,336,360,362,364],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,255,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,38,49,51,82,104,123,131,133,184,221,322,328],relai:[27,33,72,105,144,164,179,189,247,285,308,328,329,344],relat:[28,31,33,34,47,51,56,57,72,79,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,255,256,259,261,272,308,315,316,318,319,321,328,335,337,346,350,357,364],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,55,63,78,79,90,96,169,364],releg:1,relev:[3,9,11,14,22,30,33,37,38,47,58,62,79,80,89,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,364],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,364],reliabl:[13,23,25,29,125,334],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,43,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,202,206,212,213,232,233,235,242,247,255,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,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,344],remaind:[21,33,184],remaining_repeat:[102,259],remap:[316,336],remark:364,remedi:60,rememb:[0,1,4,5,11,12,13,21,22,28,29,31,33,39,41,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,364],remit:157,remnisc:57,remot:[25,100,103,164,276,278,290,364],remov:[0,1,4,9,11,12,21,22,27,31,36,39,41,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,255,257,260,261,267,285,296,306,308,310,316,319,321,325,328,334,340,342,343,344,364],remove_backspac:343,remove_bel:343,remove_charact:116,remove_default:[31,153],remove_non_persist:255,remove_receiv:177,remove_send:177,removeth:316,renam:[9,20,43,58,81,136,159,165,247,255,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],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,364],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,50,51,57,69,74,80,87,89,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,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:165,replacement_templ: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,344,364],report:[22,24,26,33,37,43,61,63,70,73,75,84,91,93,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,38,63,76,78,96,100,130,252,364],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,198,204,206,210,212,215,219,232,233,234,247,252,260,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,245,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,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,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,102,109,110,111,114,115,116,118,119,125,126,127,129,132,133,134,136,137,145,147,158,159,164,169,176,177,185,186,187,188,202,204,206,215,219,220,233,234,237,238,241,244,245,247,251,260,267,278,279,292,300,311,315,317,322,327,328,329,330,334,339,340,341,344,357,362,364],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,43,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,255,258,259,267,271,277,287,305,316,319,322,330,331,336,342,344,364],reset_cach:[316,319],reset_callcount:[102,259],reset_gametim:[27,331],reset_serv:271,reset_tim:187,reshuffl:364,resid:[47,96,108,227,242],residu:[169,219],resist:[252,344],resiz:[58,138,327,330],resolut:[114,116],resolv:[26,29,38,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,38,54,58,164,206,344],resourc:[9,23,26,28,38,41,47,48,53,56,90,95,96,103,108,115,124,135,136,139,220,257,265,296,312,323,342,364],respect:[0,6,23,33,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,233,235,239,247,265,267,269,276,299,308,318,338,340,344],response_add:[145,173,244],resport:344,rest:[17,29,33,38,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,255,257,259,260,261,271,284,305,306,307,344,364],restartingwebsocketserverfactori:[146,278],restock:85,restor:[0,31,102,126,180,220,227,257,261],restrain:[159,241,327,344],restrict:[4,8,11,19,20,47,59,68,73,80,90,109,111,115,125,134,137,159,164,182,204,220,221,237,242,245,252,255,324,326,328,330,341],restructur:[38,56],result1:203,result2:[51,203],result:[10,11,23,27,30,31,33,38,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,147,151,152,154,159,166,175,177,179,185,188,203,204,205,206,209,217,218,219,220,221,233,238,242,245,247,250,251,252,255,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,260],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,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,364],retriv:[146,323],retroact:[58,125],retur:52,return_appear:[48,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:[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],rewritemim:70,rfc1073:283,rfc858:289,rfc:[283,289],rfind:321,rgb:114,rgbmatch:321,rhel:8,rhost:171,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,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,169,171,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,57,63,90,123,138,158,169],rival:111,rjust:321,rm_attr:159,rnormal:114,rnote: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,364],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,364],rom:[79,364],roof:159,room1:127,room56:13,room:[9,12,13,14,15,20,21,22,27,31,33,42,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,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_flag:56,room_lava:56,room_typeclass:[235,342,360],roombuildingmenu:[22,180],roomnam:[58,159],roomobj:119,roomref:121,root:[9,13,22,23,36,38,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,rough:38,roughli:[58,61,96,344],round:[17,205,221,330],rounder:205,rout:[5,20,49,56,121,137,144],router:90,routin:[206,245,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,364],rpm:63,rpobject:206,rpsystem:[38,141,142,178,202,205,364],rpsystemcmdset:206,rred:321,rsa:[287,288],rspli8t:91,rsplit:[123,321],rsrc:70,rss2chan:[43,98,164],rss:[7,55,79,128,139,141,142,146,164,172,262,272,275,285,364],rss_enabl:[98,164],rss_rate:146,rss_update_interv:164,rss_url:[98,146,164],rssbot:146,rssbotfactori:286,rsschan:164,rssfactori:286,rssreader:286,rst:364,rstrip:[91,321],rsyslog:209,rtest2:114,rtext:85,rthe:22,rthi:114,rtype:312,rubbish: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,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,206,209,213,215,217,218,219,220,221,227,230,235,241,242,247,251,252,255,256,258,259,260,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,364],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],sadli:171,safe:[11,26,30,31,46,56,60,64,82,89,97,104,131,133,144,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,56,89,90,123,125,139,159,179,246,322,364],sage:364,sai:[0,5,6,10,12,14,17,20,22,25,26,27,29,31,33,39,40,41,43,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,198,205,206,215,227,233,247,328],said:[0,4,10,22,26,44,46,49,51,57,83,91,96,111,112,118,127,134,151,164,168,206,235,247,279,318,328],sake:[13,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,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,171,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,364],sampl:[8,36,56,100,215],san:190,sand:62,sandi:111,sane:[38,61,79,96,362],sanit:[357,362],saniti:[9,49,111,127,139,338],sarah:[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,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,364],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,38,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,55,59,61,73,74,97,109,112,114,116,122,126,204,233,256,261,334],schedul:[27,62,184,195,260,331],schema:[4,64,86,125,131,344,364],scheme:[28,33,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,364],scraper:362,scratch:[40,46,57,58,61,63,123,124,128,136,139],scream:122,screen:[7,16,18,33,51,52,61,66,74,81,85,97,100,101,104,105,109,114,127,133,138,139,145,171,186,190,221,250,272,287,329,344,364],screenheight:[74,154,272],screenread:[43,74,171,272,295,296],screenshot:[55,133,139,364],screenwidth:[74,154,272],script:[6,11,13,14,20,27,36,43,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_copi:255,script_path:159,script_search:[59,255],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,364],scriptkei: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,96,102,104,109,116,123,124,125,127,131,134,136,139,140,141,142,144,147,150,152,154,159,166,169,176,179,194,199,203,206,217,218,219,220,221,233,235,238,241,245,247,250,251,255,258,273,316,317,318,319,320,321,324,326,344,363,364],search_:[27,59],search_account:[27,53,58,107,119,141,147,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:[27,41,53,119,141,176,341],search_channel_tag:[119,341],search_field:[173,237,244,254,263,315],search_for_obj:159,search_help:[27,53,119,141,238],search_help_entri:341,search_helpentri:238,search_messag:[27,53,119,141,176,341],search_mod:206,search_multimatch_regex:247,search_object:[11,13,27,53,111,119,121,125,141,144,245,341],search_object_attribut:119,search_object_by_tag:53,search_objects_with_prototyp:251,search_prototyp:251,search_script:[27,53,59,102,119,141,255,341],search_script_tag:[119,341],search_tag:[27,48,112,119,140,141,341],search_tag_account:112,search_tag_script:112,search_target:199,searchabl:194,searchdata:[144,206,245,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,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,128,132,134,144,146,151,159,184,194,195,198,206,213,217,218,219,220,221,223,227,231,241,247,252,259,260,261,267,272,281,286,299,310,321,324,328,331,337,344,345],secondari:[81,307],secondli:89,secreci:131,secret:[9,65,71,185,267,364],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,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,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,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,171,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,364],seek:[122,242,337],seem:[4,22,24,31,39,41,56,61,63,75,109,110,119,121,122,123,137,138,171,316,322],seen:[0,22,29,31,34,38,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,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,364],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,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,171,174,175,177,179,180,181,182,185,187,188,192,199,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,364],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,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,364],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:[83,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,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: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,147,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,199,210,228,234,247,264,267,269,272,276,277,278,279,287,291,295,306,308,316,328,336,341,364],sentenc:[46,91,198,205,206],sep:321,sep_kei:[22,180],separ:[8,11,13,14,20,23,29,31,33,37,38,40,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,245,246,247,251,257,261,286,291,296,308,321,322,324,327,329,336,341,344,364],separatli:29,sept:364,seq:87,sequenc:[10,13,14,15,33,38,64,80,81,87,89,113,126,154,158,184,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,260,261,285,325,338,340,344],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,43,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,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,202,206,207,208,209,212,213,227,231,232,233,235,247,255,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,364],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,364],serversessionhandl:[40,105,308,364],serverset:[80,164,241],servic:[12,23,40,43,45,67,71,90,100,103,104,110,131,133,141,142,169,262,264,267,268,276,277,284,305,312,344,364],sessdata:[307,308],sessid:[2,33,105,123,246,247,264,276,277,285,308],session:[2,12,15,24,31,33,40,43,45,47,51,53,57,74,81,84,88,89,91,96,100,107,114,123,127,138,139,141,142,144,146,147,148,150,151,152,154,156,157,160,162,166,167,171,186,188,189,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:[53,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,364],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,43,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,171,172,174,180,181,182,183,184,185,186,187,188,189,193,195,198,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,245,246,247,250,251,252,255,258,259,260,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:[43,57,165,212],setgend:189,sethelp:[20,43,68,166],sethom:[43,159],setlock:212,setnam:40,setobjalia:[43,159],setperm:157,setpow:364,setspe:213,sett:98,settabl:[74,86,290],setter:39,settestattr:50,settingnam:80,settings_chang:107,settings_default:[4,5,34,47,53,104,109,127,141,142,337,344,364],settings_ful:104,settings_mixin:[141,142,262,297,364],settl:[111,116],setup:[5,15,18,26,38,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,38,41,42,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,364],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,364],sharedloginmiddlewar:351,sharedmemorymanag:[317,333],sharedmemorymodel:[177,239,316,318,334,335,364],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:159,sheet:[23,38,51,133,134,137,327,364],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,364],shield:[29,77,86],shift:[14,15,27,108,195,232,238,344],shiftroot:232,shine:[21,233],shini:344,ship:[55,64,75,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,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,364],shorten:[42,46,125,252],shorter:[38,40,61,104,108,117,118,125,132,175,205,317,324,337],shortest:[39,206],shorthand:[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,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,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,171,174,175,177,180,182,184,187,192,195,198,199,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,255,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:[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,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,364],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],shown:[0,4,9,22,25,29,35,41,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,93,100,102,104,137,144,169,247,259,261,267,269,276,277,284,285,305,308,364],shutdown:[12,19,31,43,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:157,side:[0,1,11,24,36,38,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],sidebar:364,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,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,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,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,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,364],simplemu:24,simpler:[10,15,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,206,213,215,217,218,219,220,221,224,232,239,247,318,322,323,327,329,344],simplic:[22,39,55,126,171,186,232],simplif:[45,116],simplifi:[10,69,100,111,116,118,192],simplist:[116,123,132,137,205,214],simul:[33,73,93,213],simultan:[58,88,116,245,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,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,94,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,245,247,251,252,255,257,260,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,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,255,260,261,299,306,308,317,319,321,322,327,328,330,336,341,344,357,364],single_type_count:182,singleton:[84,105,115,174,257,260,323,364],singular:[38,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,97,98,100,101,103,111,133,134,145,312,362,364],site_nam:59,sitekei:364,situ:[11,318,325],situat:[0,6,11,22,33,37,42,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,49,51,61,62,75,88,100,106,109,115,131,144,158,159,247,255,316,325],skipkei:296,skippabl:129,skull:109,sky:[102,132],slack:79,slam:188,slash:[20,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,sloppi:38,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,364],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,165],smith:327,smithi:29,smoothi:203,smoothli:134,smush:48,snake:136,snap:82,snapshot:131,snazzi:78,sneak:242,snippet:[10,13,21,31,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,364],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,364],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,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,171,175,176,179,180,181,186,195,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,364],some_long_text_output:329,somebodi:[0,138],somehow:[33,40,73,80,87,90,113,140,182,326],someon:[0,1,29,33,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,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,198,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,245],somewhat:[4,22,41,57,127,138,180],somewher:[0,12,37,73,80,90,109,121,125,131,159,175,239,318,344,364],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,43,46,47,55,57,60,63,64,67,68,72,75,76,79,88,89,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,198,199,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,364],source_loc:[25,77,96,117,232,233,235,247],source_object:[171,174,186],sourceforg:[280,281,291,294],sourceurl:279,south:[0,22,44,49,111,121,159,299],south_north:111,southeast:159,southern:111,southwest:[20,159],space:[9,20,21,22,25,33,35,38,41,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,202,205,206,221,232,247,250,311,318,321,322,327,328,330,336,343,344,364],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:[43,47,53,55,93,120,122,137,138,141,157,159,203,218,219,249,250,251,252,364],spawner:[18,45,89,120,139,141,142,159,219,220,248,364],spd:134,speak:[0,15,19,41,46,60,96,113,117,118,126,133,165,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,38,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,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,147,150,157,159,169,171,175,177,178,179,180,192,193,194,195,199,204,206,238,241,245,247,255,257,267,272,279,295,296,306,316,318,321,322,326,328,329,330,362,364],specifi:[3,11,12,16,19,21,22,27,29,31,38,39,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:247,speechlock:241,speed:[11,47,62,82,86,87,93,116,134,213,245,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,205,206,247],spoof:315,spool:63,sport:87,spot:[57,64,144],spread:[70,73,109,364],spring:[82,124,187],sprint:213,sprofil:267,spunki:77,spuriou:364,spyrit:24,sql:[7,36,56,57,64,86,125,139,302,364],sqlite3:[25,55,64,86,123,127,128,131,344,364],sqlite3_prep:305,sqlite:[23,86,128,305],sqllite:36,sqrt:39,squar:[38,39,129],squeez:[38,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,105,110,141,142,262,275,306,307,364],ssh_interfac:90,ssh_port:90,sshd_config:103,sshfactori:287,sshprotocol:287,sshserverfactori:287,sshuserauthserv:287,ssl:[7,8,55,64,67,83,88,141,142,146,164,262,275,279,292,307,364],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,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,260],stale_timeout:260,stalker:362,stamina:[30,190,220],stamp:[27,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,49,56,61,63,72,73,80,86,90,95,96,111,116,121,122,123,127,131,133,138,165,179,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,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: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,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,205,206,215,217,218,219,220,221,226,227,230,231,233,235,247,249,250,251,255,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,84,159,321],starttupl:287,startup:[11,35,40,60,62,90,102,104,136,247,256,296,305,337,344],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,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,95,96,118,119,124,247,322,343],static_overrid:[135,136,137],static_root:136,statict:169,station:121,stationari:231,statist:[3,12,104,105,120,124,135,169,190,255,300,317,334],statu:[20,29,51,58,61,88,90,104,105,115,131,169,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:[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,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,255,259,261,271,283,294,298,299,308,318,322,325,326,328,329,363,364],stick:[15,33,38,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,49,55,57,58,60,62,63,64,77,78,79,83,91,95,96,102,103,105,106,107,108,110,114,121,122,123,125,126,128,131,134,138,152,159,164,166,171,186,215,217,218,219,220,221,230,233,235,245,247,251,255,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,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,206,212,213,218,221,226,227,247,255,258,259,260,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,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,364],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,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,364],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,147,150,151,152,153,154,159,166,170,174,175,176,177,179,180,182,184,187,188,189,190,192,193,194,195,198,199,204,205,206,210,212,215,217,218,219,220,221,230,233,234,235,238,239,242,245,247,250,251,252,255,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,171],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:[38,111],stribg:344,strict:[10,251,321],stricter:251,strictli:[19,51,59,77,133,186,220,330],strike:[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,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,147,148,150,151,154,157,159,165,166,167,168,169,170,174,175,176,177,179,180,182,186,188,198,199,203,204,205,206,210,211,215,217,218,219,220,221,230,231,235,238,239,240,241,242,245,246,247,250,251,252,255,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:[245,344],string_similar:344,string_suggest:344,stringproduc:269,strip:[21,22,33,38,41,51,58,74,81,85,108,109,114,118,123,151,159,167,168,206,245,252,272,287,290,291,321,322,328,336,344,364],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],strr:204,struct:56,structur:[9,11,33,37,41,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,364],strvalu:[11,316,317],stuck:[51,63],studi:[59,364],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,364],stumbl:97,stupidli:34,sturdi:327,stutter:108,style:[3,16,20,21,27,33,37,38,40,41,43,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,217,234,247,251,326,330,344,364],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,364],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,364],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,364],submarin:121,submenu:[106,180,249],submenu_class:180,submenu_obj:180,submiss:[188,357],submit:[17,37,103,133,171,188,357,362],submitcmd:188,submodul:291,subnegoti:291,subnet:[12,157],subpackag:[88,127],subprocess:[25,344],subreddit:79,subscrib:[12,33,34,41,53,58,64,80,115,128,132,146,164,174,175,176,219,261,278,309],subscript:[33,58,79,115,132,164,173,176,177,261],subsequ:[10,11,33,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,260,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,260,267,279,311,318,362],suddenli:[26,97,318],sudo:[63,67,100,103],suffic:[17,57,61],suffici:[86,90,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,206,233,247,344],suggestion_cutoff:166,suggestion_maxnum:166,suit:[29,34,55,64,117,139,170,344,362,364],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,364],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,58,60,63,81,95,96,111,122,134,144,148,158,169,175,182,212,231,241,242,247,252,267,318,322,324,364],supplement:51,suppli:[10,11,27,34,37,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,245,246,247,251,255,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,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,255],supposedli:[67,205,291],suppress:[24,289],suppress_ga:[141,142,262,275,364],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,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,204,205,206,211,215,220,223,227,231,232,233,238,241,242,247,251,252,255,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,111,116,119,129,157,231,340,344,364],surviv:[5,11,27,28,31,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,364],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,245,252,341,344],symbol:[14,15,33,49,75,106,108,119,171,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,364],syntact:[242,344],syntax:[5,6,13,14,15,21,22,23,29,33,41,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,364],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,43,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,198,199,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,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,364],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,33,43,45,48,51,55,57,58,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,38,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,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,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,46,58,60,90,91,131,138,165,179,205,206,214,233,264],talker:[55,61],talki:64,talking_npc:[141,142,178,364],talkingcmdset:214,talkingnpc:214,tall:[129,165,206],tallman:165,tandem:61,tantal:14,target1:220,target2:220,target:[21,25,28,29,30,33,34,40,58,73,88,103,114,116,119,123,127,136,138,144,154,159,164,165,169,177,182,185,187,199,215,217,218,219,220,221,231,235,247,317,321,324,328,344],target_loc:[213,233,235,247],target_obj:242,targetlist:199,task:[0,27,36,40,41,91,93,102,110,112,138,193,195,215,260,261,344],task_handl:[141,260,344],task_id:[195,260],taskhandl:[141,142,253,344,364],taskhandlertask:[260,344],tast:[22,34,133],tavern:206,tax:[75,93],taylor:79,tb_basic:[141,142,178,216,364],tb_equip:[141,142,178,216,364],tb_filenam:322,tb_item:[141,142,178,216,364],tb_iter:322,tb_magic:[141,142,178,216,364],tb_rang:[141,142,178,216,364],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],teamciti:364,teardown:[127,196,228,293,342],teaser:90,tech:[79,364],technic:[4,6,9,10,11,19,20,23,39,40,51,64,70,83,90,108,112,114,119,125,139,179,364],techniqu:[29,139,321],tediou:[1,106,111],teenag:[21,103],tehom:[9,119],tehomcd:9,tel:[0,12,43,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,55,63,64,75,79,83,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,364],telnet_:90,telnet_hostnam:54,telnet_interfac:90,telnet_oob:[88,141,142,262,275,364],telnet_port:[9,36,54,90,299],telnet_ssl:[141,142,262,275,364],telnetoob:291,telnetprotocol:[288,290,292],telnetserverfactori:290,teloutlock:241,temp:177,tempat:188,templat:[2,3,4,5,27,31,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,364],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,364],templateview:362,tempmsg:[175,177,364],temporari:[6,11,110,122,127,131,153,177,198,217,218,219,220,221,261,328,364],temporarili:[20,26,31,51,60,90,97,102,127,164,169,175,195,203],tempt:[61,95,104,157],ten:[29,90,111],tend:[41,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,termux:364,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,45,46,50,51,56,58,60,61,62,63,65,67,68,69,72,73,74,79,80,81,85,89,90,91,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,364],test_quit:170,test_resourc:[127,141,142,170,196,211,228,293,320,360,364],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,364],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,171,175,176,177,179,180,187,188,189,190,193,195,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,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,204,205,206,213,215,217,218,219,220,221,232,234,241,245,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,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,205,206,217,218,219,220,221,232,233,234,235,241,242,246,247,250,251,252,253,255,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,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,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,38,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,169,171,187,203,233],thereof:[206,247],thess:245,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,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,192,193,194,195,198,199,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,245,246,247,250,251,252,253,254,255,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,364],thie:51,thief:61,thieveri: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,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,364],think:[1,20,29,31,34,37,46,48,51,55,59,61,62,67,70,73,79,81,91,95,96,97,109,111,112,114,115,135,138,139,308,362],third:[0,8,9,23,27,37,38,39,42,51,64,69,72,75,90,96,101,114,121,127,128,134,159,321,364],thirdnod:51,this_sign:309,thoma:[12,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,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,255,260,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,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,110,286,312,337,344],threadpool: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,255,258,321,328],threshold:[228,310,322],thrill:85,throttl:[141,142,144,262,272,285,364],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,255,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,364],throughout:[11,20,49,51,55,104,219],throughput:[175,324],thrown:116,thrust:232,thu:[14,19,31,33,39,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],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:[43,53,55,74,102,132,139,146,169,231,233,257,261,272,364],ticker_class:261,ticker_handl:[53,115,132,141,261],ticker_pool_class:261,ticker_storag:261,tickerhandl:[27,45,102,116,132,139,141,142,169,213,219,233,253,364],tickerpool:261,tickerpool_layout:261,tidbit:55,tidi:100,tie:[83,116,138,364],tied:[64,119,153,166,182,224,227,239,255],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,43,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,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,203,204,212,213,215,217,218,219,220,221,223,227,231,232,233,239,246,247,250,252,253,255,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,364],time_ev:198,time_factor:[27,62,184,331],time_format:[59,344,364],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,255,259,260,261,298,306,341,364],timerobject:102,timescript:331,timeslot:187,timestamp:[25,27,310,331],timestep:299,timestr:337,timetrac:[141,142,262,297,364],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,171],tinymux:[57,108],tip:[12,37,70,79,103,112,364],tire:[20,153],titeuf87:[235,364],titl:[17,22,34,38,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,364],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,364],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,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,245,246,252,276,295,308,315,321,322,336,341,364],toggl:[81,290],toggle_nop_keepal:290,togglecolor:81,toint:[109,250],token:[71,247,287,290,322,336],told:[44,59,90,91,95,113,114,123,128,340],tolkien:62,tom:[58,87,123,129,159,165,189,206,327],tommi:[19,80,87],ton:[57,82],tone:114,tonon:159,too:[0,4,6,9,11,12,13,14,17,20,21,22,25,27,29,33,38,39,41,42,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,245,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,364],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,55,68,69,86,93,105,119,126,166,217,218,219,220,221,238,341,357,362],topicstr:238,tos:241,tostr:276,total:[27,62,80,82,91,93,102,104,105,114,118,139,147,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,221,231],tower:[111,187,233],tportlock:241,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,364],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,364],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,364],traindriv:121,traindrivingscript:121,training_dummi:73,trainobject:121,trainscript:121,trainstop:121,trainstoppedscript:121,trait:[27,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,364],transmiss:209,transmit:113,transpar:[67,105,126,137,138,245,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,212,213,231,232,235,241,247],traverse_:33,traversing_object:[212,213,235,247],travi:[45,139,364],treasur:[9,235],treat:[10,14,33,64,95,96,105,111,112,119,125,138,144,150,153,175,189,245,247,252,308,328,330,341,364],tree:[3,11,33,38,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,364],treestr:215,treshold:334,tri:[11,12,14,24,29,33,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:[106,293],tribal:111,trick:[8,22,51,79,138,318,357,364],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,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,364],troublesom:[12,13,14],trove:9,truestr:188,truli:[0,12,39,41,105,187],trust:[19,51,57,169,322],truth:42,truthfulli:33,truthi:260,try_num_prefix:151,ttarget:116,tto:290,tty:[9,100],ttype:[55,141,142,262,275,287,290,364],ttype_step:294,tuck:[111,224],tun:[43,159],tune:[67,126],tunnel:[0,20,22,43,44,49,58,121,159,292],tup:[39,206],tupl:[11,39,41,42,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,206,219,220,230,235,241,242,247,250,251,252,255,261,264,267,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,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,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,364],turnchar:219,tut:[122,233],tutor:230,tutori:[3,4,10,16,17,20,22,25,26,28,29,31,32,33,35,37,38,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,364],tutorial_info:233,tutorial_world:[20,22,63,122,141,142,178,364],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,364],tweet:[124,139,364],tweet_output:120,tweet_stat:120,tweetstat:120,twenti:58,twice:[25,51,62,116,195,221,328],twist:[10,27,29,33,40,63,72,75,79,97,103,247,260,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,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,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,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:159,txt:[9,38,40,50,75,78,90,96,146,205,283,291,326,328],tyepclass:245,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,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,198,199,206,213,217,218,219,220,221,227,232,233,234,239,241,242,246,247,251,252,260,261,265,267,269,270,276,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,364],type_count:182,typecalss:195,typeclass:[0,2,5,9,11,12,13,20,21,22,25,26,27,33,34,38,39,43,44,47,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,360,362,364],typeclass_path:[102,119,125,148,159,256,317,318],typeclass_search:[147,245,255,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:[147,176,238,245,255,317],typeerror:[42,185,296],typenam:[22,144,146,148,175,177,179,182,184,187,189,195,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_2pm6ywo:37,ubuntu:[8,63,67,90,97,103,131],uemail:147,ufw:103,ugli:[56,109,137,338],uid:[100,147,148,279,286,307,308],uit:[22,180],ulrik:58,ultima:79,umlaut:15,unabl:[71,190],unaccept:33,unaffect:[51,116,219,260],unam:147,unarm:218,unarmor:218,unassign:138,unauthenticated_respons:360,unavoid:115,unban:[12,157],unbias:185,unbroken:327,uncal:260,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:[171,186],uncov:182,undefin:[36,86,112],under:[6,9,20,24,33,36,38,41,42,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,364],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: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],ungm:364,unhandl:60,unhappi:9,unhilit:343,unicod:[15,83,113,144,321,344],unicodeencodeerror:321,unicorn:119,unifi:[133,307],uniform:105,uninform:8,uninstal:[63,364],uninstati:344,unintent:234,union:[31,51,152,224,328],uniqu:[2,12,13,20,31,33,35,36,38,40,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,204,205,206,212,215,218,219,231,233,238,247,251,252,255,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,62,164],unix:[24,38,52,63,87,165,234,329,337,344],unixcommand:[141,142,178,364],unixcommandpars:234,unixtim:337,unjoin:179,unknown:[41,56,69,137,251,336,344],unleash:28,unless:[4,5,11,12,21,22,23,27,29,33,38,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,144,180,219,318],unlimit:[235,259],unlink:[43,159],unload:342,unload_modul:342,unlock:[58,77,80,316],unlocks_red_chest:80,unlog:[157,162,163,171,175,186,308],unloggedin:[105,141,142,149,155,308,364],unloggedincmdset:[35,43,105,163,186],unlucki:12,unmask:206,unmodifi:[151,168,187,328],unmonitor:[272,364],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,260],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,364],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:[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,217,218,219,220,221,231,232,233,247,259,260,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,364],upload:[4,63,64,90,100,364],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,86,101,114,127,138,156,321],uppercas:[114,321],upping:114,ups:7,upsel:90,upsid:[41,235],upstart:[40,255,258],upstream:[26,64,104,128,364],upt:153,uptim:[12,27,43,62,169,281,331],urfgar:109,uri:[175,239,318],url:[8,64,70,90,98,131,134,135,136,138,141,142,146,164,175,239,286,296,312,318,343,346,353,356,362,364],url_nam:360,url_or_ref:38,url_to_online_repo:131,urlencod:69,urlpattern:[3,4,69,133,134,135],usabl:[4,66,114,123,159,180,190,219,241,310,328],usag:[0,5,12,21,22,23,28,29,30,33,38,41,42,51,58,60,64,68,71,73,81,82,85,90,91,93,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,202,203,205,206,210,212,213,214,217,218,219,220,221,224,230,231,232,233,234,235,241,250,260,267,326,328,330,334,364],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,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,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,171,174,175,177,179,180,181,182,185,187,189,190,194,198,199,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,364],use_dbref:[206,245,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,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,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,171,175,179,180,182,184,186,187,188,189,190,192,194,195,198,199,204,205,206,213,215,217,218,219,220,221,231,232,233,234,235,238,240,241,242,244,245,247,250,251,252,255,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,364],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,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,364],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,40,41,42,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,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:287,userchangeform:145,usercreationform:[145,357],usermanag:147,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,39,40,44,57,64,68,69,80,81,86,88,90,98,107,109,112,113,114,115,119,124,125,127,130,131,136,137,152,179,185,187,199,206,219,226,227,233,234,235,242,245,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,203,205,206,212,213,214,215,217,218,219,220,221,224,230,231,233,234,235,242,245,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,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,198,204,205,206,233,234,242,245,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],utf:[15,24,58,74,111,113,171,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,245,247,249,251,259,260,274,293,298,315,316,317,318,346,357,360,364],utilis:328,uyi:205,v21:63,vagu:21,val1:250,val2:250,val:[11,88,144,156,250,291,344],valid:[1,11,13,26,30,31,33,42,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,147,151,153,159,167,168,169,176,179,180,188,192,195,196,204,206,215,220,226,227,232,233,234,235,242,247,249,250,251,252,255,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,364],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,364],valign:330,valu:[0,2,4,6,10,11,12,17,20,22,25,27,28,31,33,38,39,41,42,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,203,204,205,206,211,217,218,219,220,221,227,228,233,235,239,241,242,245,246,247,250,251,252,255,256,258,259,260,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,364],valuabl:122,value1:[38,109],value2:[38,109],value3:38,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,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,171,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,364],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,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:247,verbatim:364,verbos:[26,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,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,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,364],vertic:[138,232,330,344],very_strong:242,very_weak:80,vest:103,vet:109,veteran:79,vfill_char:330,vhost:364,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,61,88,105,116,164,276],vicin:[33,165,187,233],video:[79,95,114,137],vienv:9,view:[1,4,17,27,34,38,41,42,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:[180,187,204,234],violent:51,virtual:[4,41,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,364],virtualhost:8,viru:63,visibl:[13,25,31,36,38,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,vniftg:63,vnum:56,vocabulari:[46,344],voic:[33,46,124,139,364],volatil:251,volum:[21,61,100],volund:119,voluntari:37,volupt:52,vowel:[119,205],vpad_char:330,vulner:[29,103],vvc:205,vvcc:205,vvccv:205,vvccvvcc:205,w001:127,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,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,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: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,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,171,174,179,180,186,187,188,190,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,364],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,364],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,203],waterballon:203,wave:111,wcach:169,wcactu:220,wcommandnam:234,wcure:220,wdestin: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,61,63,64,67,69,72,75,76,79,80,83,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],webclient:[24,30,40,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,364],webclient_en:103,webclient_gui:[83,364],webclient_opt:272,webclientdata:296,webclienttest:360,webpag:[8,17,77,90,354],webport:36,webserv:[3,7,8,9,23,40,47,55,67,90,100,101,104,135,139,141,142,262,346,364],webserver_en:103,webserver_interfac:[67,90],webserver_port:[36,90],webservic:103,websit:[3,9,17,38,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,364],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,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,233],west_east:111,west_exit:233,western:111,westward:233,wether:[179,324],wevennia:22,wflame:220,wflushmem: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,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,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,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,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,198,199,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,364],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,245,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,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,199,205,206,210,219,232,233,235,241,242,245,247,250,251,252,255,257,267,269,272,276,291,299,304,308,315,318,321,322,326,328,329,330,336,338,339,344,362,364],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,147,205,224,227,245,255,261,296,316,334],whereabout:122,wherebi:220,wherev:[11,63,64,67,100,111,127,180,209,219],whether:[0,12,39,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,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,171,174,175,176,177,179,180,181,182,183,184,187,188,190,198,199,202,206,209,210,212,214,215,217,218,219,220,221,226,227,231,232,233,234,235,239,242,245,246,247,251,252,255,256,257,259,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,328],whim:139,whisp:205,whisper:[43,46,165,198,205,206,247],white:[48,74,114,126,344],whitelist:74,whitepag:[1,48,138,364],whitespac:[14,27,33,58,81,119,123,167,168,202,206,321,322,330,344],who:[4,10,11,12,21,34,41,43,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,364],whoever:133,whole:[4,16,49,51,55,57,60,61,67,87,96,111,112,122,123,129,138,152,159,169,221,330],wholist:175,whome:159,whomev:[73,114,121],whose:[88,114,119,125,144,154,170,195,206,215,217,218,219,220,221,255,272,323,328,344],whould:328,why:[0,11,12,20,22,25,39,41,44,46,51,55,60,63,64,82,91,95,96,103,111,123,125,126,139,157,204,217,220,221,264,265],wide:[16,25,27,39,58,61,73,86,91,138,157,219,220,235,327,330,344],widen:12,wider:[12,25,39,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,45,48,55,58,70,79,108,111,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,113,127,131,295],wild:[108,126,131],wildcard:[12,57,87,157,159,344],wildcard_to_regexp:344,wilder:[141,142,178,364],wildernessexit:235,wildernessmap:235,wildernessmapprovid:235,wildernessroom:235,wildernessscript:235,wildli:205,will_suppress_ga:289,will_ttyp:294,willing:[58,61,79,364],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,364],windowid:306,windows10:63,wingd:111,winpti:9,winter:187,wintext:73,wip:38,wipe:[9,13,23,43,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,47,49,51,56,58,64,90,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,260,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,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,205,206,212,215,217,220,221,231,233,242,245,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,wiz:58,wizard:[109,233,252,265,267,364],wkei:159,wlocat:159,wlock:159,wmagic:220,wmass:220,wndb_: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,46,49,50,62,69,70,72,76,88,89,91,93,95,96,97,111,119,122,126,131,136,151,167,168,171,186,198,205,206,245,279,326,341,344,364],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,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,171,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,364],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,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,39,41,42,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,205,215,224,227,234,235,239,241,242,251,252,279,315,318,321,322,325,328,336,339,340,342,344],wouldn:[39,126,138],wound:220,wow:[69,138],wpermiss:159,wprototype_desc:159,wprototype_kei:159,wprototype_lock:159,wprototype_par:159,wprototype_tag: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:169,write:[0,4,10,11,14,15,16,20,22,23,25,27,31,33,34,37,38,41,44,46,48,51,56,58,62,63,65,68,69,71,72,87,88,91,93,96,108,123,124,125,129,131,138,159,166,174,180,209,210,234,247,280,337,342,362,363,364],writeabl:75,written:[15,27,38,54,56,57,58,79,103,109,127,133,134,166,209,322,362],wrong:[26,41,42,60,63,81,85,95,110,127,152,159,169,206],wserver:169,wservic:164,wsgi:[8,312],wsgi_resourc:312,wsgiwebserv:312,wsl:[38,63],wss:[8,67,90],wtypeclass:159,wwhere:247,www:[8,9,22,38,55,70,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,xcode:63,xenial:130,xforward:312,xgettext:76,xit:[22,180],xmlcharrefreplac:321,xp_gain:73,xpo:330,xterm256:[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,38,39,46,51,126,138,159,198,265,326,344],yesno:[38,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,96,105,109,111,119,121,128,130,131,133,134,138,144,171,179,186,195,242,246,260,285,308,312,321,362],yield:[10,23,33,80,108,159,210,330,344,364],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,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,198,199,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,260,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,364],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,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,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,38,42,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,364],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],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 Commands","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","<no title>"],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,abort:29,about:[29,115,125,128],abus:12,access_typ:80,account:[2,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,adding:127,addit:[9,39,41,44,100],address:25,admin:[64,97,135,145,157,173,237,244,254,263,315],administr:7,advanc:[18,29,53,87,110],affect:241,aggress:117,alia:97,alias:112,all:[25,51,67,69],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,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,batchprocess: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,bootstrap:[16,17],border:17,bot:146,brainstorm:[45,138],branch:[51,131],bridg:77,brief:[55,69],briefli:88,bug:97,build:[18,19,20,21,22,38,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],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,58,64],channelhandl:174,charact:[6,24,25,46,58,60,61,64,73,82,89,96,123,133,134],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,clone:[9,131],cloth:182,cloud9:90,cmdhandler:150,cmdparser:151,cmdset:[5,152],cmdset_account:160,cmdset_charact:161,cmdset_red_button:224,cmdset_sess:162,cmdset_unloggedin:163,cmdsethandl:153,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,81,126],color_markup:183,colour:114,combat:[116,123],comfort:100,comm:[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,54,71,90,97],connection_wizard:265,contain:[100,323],content:[25,55],continu:36,contrib:[22,37,64,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,core:[45,53,56,64],cprofil:93,creat:[0,2,3,5,6,12,20,21,27,33,36,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,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],delimit:25,demo:61,depend:[9,128],deploi:100,deprec:[38,266],desc:51,descer:57,descript:100,design:85,detail:[69,133],develop:[45,57,79,100,103,110,124,127],dialogu:46,dice:[58,185],dictionari:51,differ:[56,125],diku:56,direct:[38,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,docstr:38,document:[37,38,129,363],don:[13,55,100],donat:37,down:[20,110,121],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,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],eval:38,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,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:[38,103],familiar:[56,57],faq:25,faster:127,featur:[55,69,135],feel:56,field:64,fieldfil:188,file:[13,14,15,38,104,127,131,322],fill:27,find:[39,59],firewal:103,first:[0,22,46,57,60,95,124],fix:131,flexibl:38,folder:[9,26,131],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,45,79,123,124,133,165,328],general_context:350,get:[20,51,63,67,70,119],get_client_opt:74,get_input:51,get_inputfunc:74,get_valu:74,git:[64,131],github:64,give: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,68,69,70,166,236,237,238,239],here:[26,55,60,96],hierarchi:58,hint:8,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,intern:38,internation:76,interpret:106,intro_menu:230,introduct:[9,26,49,51,55,93,95,111,122,133],inventori:82,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],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,79,114],linux:[36,63,110],list:[38,42],list_nod:51,listen:118,literatur:79,live:110,local:[38,90,91],lock:[11,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,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,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,mxp:282,mysql:23,myst:38,name:[12,88,97,241],naw:283,ndb:11,need:[0,55],nest:22,next:[57,63,71],nice:67,nick: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,59,60,61,64,80,82,89,96,97,105,111,112,119,121,124,232,243,244,245,246,247],obtain:133,oct:138,octob:138,off:25,offici:79,olc:109,one:[38,39],onli:[38,110],onlin:[90,131],oob:88,open:85,oper:[0,10],option:[1,22,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,69,135,136],parent:[57,86],pars:[25,41,91,95],part:96,parti:79,patch:37,path:[13,83],paus:[0,29,33],pax:9,pdb:42,permiss:[19,58,80,112,122],perpetu:61,persist:[11,28,29,50],person:20,picklefield:340,pictur:133,pip:[4,64],place:38,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],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,80,122],queri:[119,125],quick:[36,63],quickstart:20,quiet:91,quirk:97,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,97,110],remark:123,rememb:38,remind:69,remot:[90,131],remov:[25,112],repeat:[51,74],repo:9,repositori:[26,37,64,131],requir:63,reset:[110,128],reshuffl:20,resourc:79,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,rss:[98,286],rst:38,rule:[31,73,116],run:[4,7,25,33,42,55,75,100,106,127],runner:127,safeti:13,sage:48,same:[46,51],save:11,schema:128,score:123,screen:35,screenshot:101,script:[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,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:270,session:[25,58,64,83,105,307],sessionhandl:[105,308],set:[4,5,9,31,49,51,54,62,65,72,80,81,90,98,103,104,106,123,127,131],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,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,106],space:17,spawn:[57,109],spawner:[109,252],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: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,328],strip:91,structur:38,studi:0,stuff:[55,123],style:17,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,45,61,68,69,73,80,116,123,124,169],tabl:[25,27,38,86],tag:[39,64,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],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,62,102,108],time_format:27,timer:93,timetrac:304,tip:131,titeuf87:138,to_byt:27,to_str:27,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,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,twitter:71,two:96,type:[2,5,6,11,60,89],typeclass:[6,45,53,57,64,81,97,119,124,125,140,197,314,315,316,317,318,319],under:131,understand:126,ungm:58,uninstal:122,unit:127,unixcommand:234,unloggedin:171,unmonitor:74,unrepeat:74,updat:[6,25,60,125,128,131],upgrad:128,upload:103,upstream:[97,131],url:[3,4,38,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],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],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],whitepag:45,who:33,wiki:[4,139],wilder:235,willing:55,window:[9,63],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-Commands","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-Commands.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.md","api/evennia-api.md","api/evennia.accounts.md","api/evennia.accounts.accounts.md","api/evennia.accounts.admin.md","api/evennia.accounts.bots.md","api/evennia.accounts.manager.md","api/evennia.accounts.models.md","api/evennia.commands.md","api/evennia.commands.cmdhandler.md","api/evennia.commands.cmdparser.md","api/evennia.commands.cmdset.md","api/evennia.commands.cmdsethandler.md","api/evennia.commands.command.md","api/evennia.commands.default.md","api/evennia.commands.default.account.md","api/evennia.commands.default.admin.md","api/evennia.commands.default.batchprocess.md","api/evennia.commands.default.building.md","api/evennia.commands.default.cmdset_account.md","api/evennia.commands.default.cmdset_character.md","api/evennia.commands.default.cmdset_session.md","api/evennia.commands.default.cmdset_unloggedin.md","api/evennia.commands.default.comms.md","api/evennia.commands.default.general.md","api/evennia.commands.default.help.md","api/evennia.commands.default.muxcommand.md","api/evennia.commands.default.syscommands.md","api/evennia.commands.default.system.md","api/evennia.commands.default.tests.md","api/evennia.commands.default.unloggedin.md","api/evennia.comms.md","api/evennia.comms.admin.md","api/evennia.comms.channelhandler.md","api/evennia.comms.comms.md","api/evennia.comms.managers.md","api/evennia.comms.models.md","api/evennia.contrib.md","api/evennia.contrib.barter.md","api/evennia.contrib.building_menu.md","api/evennia.contrib.chargen.md","api/evennia.contrib.clothing.md","api/evennia.contrib.color_markups.md","api/evennia.contrib.custom_gametime.md","api/evennia.contrib.dice.md","api/evennia.contrib.email_login.md","api/evennia.contrib.extended_room.md","api/evennia.contrib.fieldfill.md","api/evennia.contrib.gendersub.md","api/evennia.contrib.health_bar.md","api/evennia.contrib.ingame_python.md","api/evennia.contrib.ingame_python.callbackhandler.md","api/evennia.contrib.ingame_python.commands.md","api/evennia.contrib.ingame_python.eventfuncs.md","api/evennia.contrib.ingame_python.scripts.md","api/evennia.contrib.ingame_python.tests.md","api/evennia.contrib.ingame_python.typeclasses.md","api/evennia.contrib.ingame_python.utils.md","api/evennia.contrib.mail.md","api/evennia.contrib.mapbuilder.md","api/evennia.contrib.menu_login.md","api/evennia.contrib.multidescer.md","api/evennia.contrib.puzzles.md","api/evennia.contrib.random_string_generator.md","api/evennia.contrib.rplanguage.md","api/evennia.contrib.rpsystem.md","api/evennia.contrib.security.md","api/evennia.contrib.security.auditing.md","api/evennia.contrib.security.auditing.outputs.md","api/evennia.contrib.security.auditing.server.md","api/evennia.contrib.security.auditing.tests.md","api/evennia.contrib.simpledoor.md","api/evennia.contrib.slow_exit.md","api/evennia.contrib.talking_npc.md","api/evennia.contrib.tree_select.md","api/evennia.contrib.turnbattle.md","api/evennia.contrib.turnbattle.tb_basic.md","api/evennia.contrib.turnbattle.tb_equip.md","api/evennia.contrib.turnbattle.tb_items.md","api/evennia.contrib.turnbattle.tb_magic.md","api/evennia.contrib.turnbattle.tb_range.md","api/evennia.contrib.tutorial_examples.md","api/evennia.contrib.tutorial_examples.bodyfunctions.md","api/evennia.contrib.tutorial_examples.cmdset_red_button.md","api/evennia.contrib.tutorial_examples.example_batch_code.md","api/evennia.contrib.tutorial_examples.red_button.md","api/evennia.contrib.tutorial_examples.red_button_scripts.md","api/evennia.contrib.tutorial_examples.tests.md","api/evennia.contrib.tutorial_world.md","api/evennia.contrib.tutorial_world.intro_menu.md","api/evennia.contrib.tutorial_world.mob.md","api/evennia.contrib.tutorial_world.objects.md","api/evennia.contrib.tutorial_world.rooms.md","api/evennia.contrib.unixcommand.md","api/evennia.contrib.wilderness.md","api/evennia.help.md","api/evennia.help.admin.md","api/evennia.help.manager.md","api/evennia.help.models.md","api/evennia.locks.md","api/evennia.locks.lockfuncs.md","api/evennia.locks.lockhandler.md","api/evennia.objects.md","api/evennia.objects.admin.md","api/evennia.objects.manager.md","api/evennia.objects.models.md","api/evennia.objects.objects.md","api/evennia.prototypes.md","api/evennia.prototypes.menus.md","api/evennia.prototypes.protfuncs.md","api/evennia.prototypes.prototypes.md","api/evennia.prototypes.spawner.md","api/evennia.scripts.md","api/evennia.scripts.admin.md","api/evennia.scripts.manager.md","api/evennia.scripts.models.md","api/evennia.scripts.monitorhandler.md","api/evennia.scripts.scripthandler.md","api/evennia.scripts.scripts.md","api/evennia.scripts.taskhandler.md","api/evennia.scripts.tickerhandler.md","api/evennia.server.md","api/evennia.server.admin.md","api/evennia.server.amp_client.md","api/evennia.server.connection_wizard.md","api/evennia.server.deprecations.md","api/evennia.server.evennia_launcher.md","api/evennia.server.game_index_client.md","api/evennia.server.game_index_client.client.md","api/evennia.server.game_index_client.service.md","api/evennia.server.initial_setup.md","api/evennia.server.inputfuncs.md","api/evennia.server.manager.md","api/evennia.server.models.md","api/evennia.server.portal.md","api/evennia.server.portal.amp.md","api/evennia.server.portal.amp_server.md","api/evennia.server.portal.grapevine.md","api/evennia.server.portal.irc.md","api/evennia.server.portal.mccp.md","api/evennia.server.portal.mssp.md","api/evennia.server.portal.mxp.md","api/evennia.server.portal.naws.md","api/evennia.server.portal.portal.md","api/evennia.server.portal.portalsessionhandler.md","api/evennia.server.portal.rss.md","api/evennia.server.portal.ssh.md","api/evennia.server.portal.ssl.md","api/evennia.server.portal.suppress_ga.md","api/evennia.server.portal.telnet.md","api/evennia.server.portal.telnet_oob.md","api/evennia.server.portal.telnet_ssl.md","api/evennia.server.portal.tests.md","api/evennia.server.portal.ttype.md","api/evennia.server.portal.webclient.md","api/evennia.server.portal.webclient_ajax.md","api/evennia.server.profiling.md","api/evennia.server.profiling.dummyrunner.md","api/evennia.server.profiling.dummyrunner_settings.md","api/evennia.server.profiling.memplot.md","api/evennia.server.profiling.settings_mixin.md","api/evennia.server.profiling.test_queries.md","api/evennia.server.profiling.tests.md","api/evennia.server.profiling.timetrace.md","api/evennia.server.server.md","api/evennia.server.serversession.md","api/evennia.server.session.md","api/evennia.server.sessionhandler.md","api/evennia.server.signals.md","api/evennia.server.throttle.md","api/evennia.server.validators.md","api/evennia.server.webserver.md","api/evennia.settings_default.md","api/evennia.typeclasses.md","api/evennia.typeclasses.admin.md","api/evennia.typeclasses.attributes.md","api/evennia.typeclasses.managers.md","api/evennia.typeclasses.models.md","api/evennia.typeclasses.tags.md","api/evennia.utils.md","api/evennia.utils.ansi.md","api/evennia.utils.batchprocessors.md","api/evennia.utils.containers.md","api/evennia.utils.create.md","api/evennia.utils.dbserialize.md","api/evennia.utils.eveditor.md","api/evennia.utils.evform.md","api/evennia.utils.evmenu.md","api/evennia.utils.evmore.md","api/evennia.utils.evtable.md","api/evennia.utils.gametime.md","api/evennia.utils.idmapper.md","api/evennia.utils.idmapper.manager.md","api/evennia.utils.idmapper.models.md","api/evennia.utils.idmapper.tests.md","api/evennia.utils.inlinefuncs.md","api/evennia.utils.logger.md","api/evennia.utils.optionclasses.md","api/evennia.utils.optionhandler.md","api/evennia.utils.picklefield.md","api/evennia.utils.search.md","api/evennia.utils.test_resources.md","api/evennia.utils.text2html.md","api/evennia.utils.utils.md","api/evennia.utils.validatorfuncs.md","api/evennia.web.md","api/evennia.web.urls.md","api/evennia.web.utils.md","api/evennia.web.utils.backends.md","api/evennia.web.utils.general_context.md","api/evennia.web.utils.middleware.md","api/evennia.web.utils.tests.md","api/evennia.web.webclient.md","api/evennia.web.webclient.urls.md","api/evennia.web.webclient.views.md","api/evennia.web.website.md","api/evennia.web.website.forms.md","api/evennia.web.website.templatetags.md","api/evennia.web.website.templatetags.addclass.md","api/evennia.web.website.tests.md","api/evennia.web.website.urls.md","api/evennia.web.website.views.md","index.md","toc.md"],objects:{"":{evennia:[141,0,0,"-"]},"evennia.accounts":{accounts:[144,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_channel_msg:[144,3,1,""],at_post_disconnect:[144,3,1,""],at_post_login:[144,3,1,""],at_pre_channel_msg:[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,""],channel_msg:[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_display_name:[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.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":{AccountDBManager:[147,1,1,""],AccountManager:[147,1,1,""]},"evennia.accounts.manager.AccountDBManager":{account_search:[147,3,1,""],get_account_from_email:[147,3,1,""],get_account_from_name:[147,3,1,""],get_account_from_uid:[147,3,1,""],get_connected_accounts:[147,3,1,""],get_recently_connected_accounts:[147,3,1,""],get_recently_created_accounts:[147,3,1,""],num_total_accounts:[147,3,1,""],search_account:[147,3,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_differentiators:[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,""],persistent:[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,""],retain_instance:[154,4,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,""],web_get_admin_url:[154,3,1,""],web_get_detail_url:[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,""],CmdObjects:[159,1,1,""],CmdOpen:[159,1,1,""],CmdScripts:[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.CmdObjects":{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,""],parse:[159,3,1,""],search_index_entry:[159,4,1,""]},"evennia.commands.default.building.CmdScripts":{aliases:[159,4,1,""],excluded_typeclass_paths:[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_mapping:[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,""],parse:[159,3,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":{CmdChannel:[164,1,1,""],CmdGrapevine2Chan:[164,1,1,""],CmdIRC2Chan:[164,1,1,""],CmdIRCStatus:[164,1,1,""],CmdObjectChannel:[164,1,1,""],CmdPage:[164,1,1,""],CmdRSS2Chan:[164,1,1,""]},"evennia.commands.default.comms.CmdChannel":{account_caller:[164,4,1,""],add_alias:[164,3,1,""],aliases:[164,4,1,""],ban_user:[164,3,1,""],boot_user:[164,3,1,""],channel_list_bans:[164,3,1,""],channel_list_who:[164,3,1,""],create_channel:[164,3,1,""],destroy_channel:[164,3,1,""],display_all_channels:[164,3,1,""],display_subbed_channels:[164,3,1,""],func:[164,3,1,""],get_channel_aliases:[164,3,1,""],get_channel_history:[164,3,1,""],help_category:[164,4,1,""],key:[164,4,1,""],list_channels:[164,3,1,""],lock_storage:[164,4,1,""],locks:[164,4,1,""],msg_channel:[164,3,1,""],mute_channel:[164,3,1,""],remove_alias:[164,3,1,""],search_channel:[164,3,1,""],search_index_entry:[164,4,1,""],set_desc:[164,3,1,""],set_lock:[164,3,1,""],sub_to_channel:[164,3,1,""],switch_options:[164,4,1,""],unban_user:[164,3,1,""],unmute_channel:[164,3,1,""],unset_lock:[164,3,1,""],unsub_from_channel:[164,3,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.CmdObjectChannel":{account_caller:[164,4,1,""],aliases:[164,4,1,""],help_category:[164,4,1,""],key:[164,4,1,""],lock_storage:[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,""],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,""],parse:[165,3,1,""],search_index_entry:[165,4,1,""]},"evennia.commands.default.general.CmdSay":{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.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,""],can_list_topic:[166,3,1,""],can_read_topic:[166,3,1,""],clickable_topics:[166,4,1,""],collect_topics:[166,3,1,""],do_search:[166,3,1,""],format_help_entry:[166,3,1,""],format_help_index:[166,3,1,""],func:[166,3,1,""],help_category:[166,4,1,""],help_more:[166,4,1,""],index_category_clr:[166,4,1,""],index_topic_clr:[166,4,1,""],index_type_separator_clr:[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,""],strip_cmd_prefix:[166,3,1,""],subtopic_separator_char:[166,4,1,""],suggestion_cutoff:[166,4,1,""],suggestion_maxnum:[166,4,1,""]},"evennia.commands.default.help.CmdSetHelp":{aliases:[166,4,1,""],arg_regex:[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,""],parse:[166,3,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,""]},"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.system":{CmdAbout:[169,1,1,""],CmdAccounts:[169,1,1,""],CmdPy:[169,1,1,""],CmdReload:[169,1,1,""],CmdReset:[169,1,1,""],CmdServerLoad:[169,1,1,""],CmdService:[169,1,1,""],CmdShutdown:[169,1,1,""],CmdTasks:[169,1,1,""],CmdTickers:[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.CmdAccounts":{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.CmdPy":{aliases:[169,4,1,""],arg_regex:[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.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.CmdTasks":{aliases:[169,4,1,""],coll_date_func:[169,3,1,""],do_task_action:[169,3,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.CmdTickers":{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,""],TestCmdTasks:[170,1,1,""],TestCommsChannel:[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,""],func_test_cmd_tasks:[170,5,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.TestCmdTasks":{setUp:[170,3,1,""],tearDown:[170,3,1,""],test_active_task:[170,3,1,""],test_call:[170,3,1,""],test_cancel:[170,3,1,""],test_do_task:[170,3,1,""],test_func_name_manipulation:[170,3,1,""],test_misformed_command:[170,3,1,""],test_new_task_waiting_input:[170,3,1,""],test_no_input:[170,3,1,""],test_no_tasks:[170,3,1,""],test_pause_unpause:[170,3,1,""],test_persistent_task:[170,3,1,""],test_remove:[170,3,1,""],test_responce_of_yes:[170,3,1,""],test_task_complete_waiting_input:[170,3,1,""],test_wrong_func_name:[170,3,1,""]},"evennia.commands.default.tests.TestCommsChannel":{setUp:[170,3,1,""],tearDown:[170,3,1,""],test_channel__alias__unalias:[170,3,1,""],test_channel__all:[170,3,1,""],test_channel__ban__unban:[170,3,1,""],test_channel__boot:[170,3,1,""],test_channel__create:[170,3,1,""],test_channel__desc:[170,3,1,""],test_channel__destroy:[170,3,1,""],test_channel__history:[170,3,1,""],test_channel__list:[170,3,1,""],test_channel__lock:[170,3,1,""],test_channel__msg:[170,3,1,""],test_channel__mute:[170,3,1,""],test_channel__noarg:[170,3,1,""],test_channel__sub:[170,3,1,""],test_channel__unlock:[170,3,1,""],test_channel__unmute:[170,3,1,""],test_channel__unsub:[170,3,1,""],test_channel__who:[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":{maxDiff:[170,4,1,""],setUp:[170,3,1,""],tearDown:[170,3,1,""],test_help:[170,3,1,""],test_set_help:[170,3,1,""],test_subtopic_fetch:[170,4,1,""],test_subtopic_fetch_00_test:[170,3,1,""],test_subtopic_fetch_01_test_creating_extra_stuff:[170,3,1,""],test_subtopic_fetch_02_test_creating:[170,3,1,""],test_subtopic_fetch_03_test_extra:[170,3,1,""],test_subtopic_fetch_04_test_extra_subsubtopic:[170,3,1,""],test_subtopic_fetch_05_test_creating_extra_subsub:[170,3,1,""],test_subtopic_fetch_06_test_Something_else:[170,3,1,""],test_subtopic_fetch_07_test_More:[170,3,1,""],test_subtopic_fetch_08_test_More_Second_more:[170,3,1,""],test_subtopic_fetch_09_test_More_more:[170,3,1,""],test_subtopic_fetch_10_test_more_second_more_again:[170,3,1,""],test_subtopic_fetch_11_test_more_second_third:[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_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,""],CmdUnconnectedEncoding:[171,1,1,""],CmdUnconnectedHelp:[171,1,1,""],CmdUnconnectedInfo:[171,1,1,""],CmdUnconnectedLook:[171,1,1,""],CmdUnconnectedQuit:[171,1,1,""],CmdUnconnectedScreenreader:[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.CmdUnconnectedEncoding":{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.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.CmdUnconnectedInfo":{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.commands.default.unloggedin.CmdUnconnectedScreenreader":{aliases:[171,4,1,""],func:[171,3,1,""],help_category:[171,4,1,""],key:[171,4,1,""],lock_storage:[171,4,1,""],search_index_entry:[171,4,1,""]},"evennia.comms":{comms:[175,0,0,"-"],managers:[176,0,0,"-"],models:[177,0,0,"-"]},"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,""],add_user_channel_alias:[175,3,1,""],at_channel_creation:[175,3,1,""],at_first_save:[175,3,1,""],at_init:[175,3,1,""],at_post_msg:[175,3,1,""],at_pre_msg:[175,3,1,""],ban:[175,3,1,""],banlist:[175,3,1,""],basetype_setup:[175,3,1,""],channel_msg_nick_pattern:[175,4,1,""],channel_msg_nick_replacement:[175,4,1,""],channel_prefix:[175,3,1,""],channel_prefix_string:[175,4,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,""],get_log_filename:[175,3,1,""],has_connection:[175,3,1,""],log_file:[175,4,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,""],remove_user_channel_alias:[175,3,1,""],send_to_online_only:[175,4,1,""],set_log_filename:[175,3,1,""],typename:[175,4,1,""],unban:[175,3,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_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,""],SubscriptionHandler:[177,1,1,""],TempMsg:[177,1,1,""]},"evennia.comms.models.ChannelDB":{DoesNotExist:[177,2,1,""],MultipleObjectsReturned:[177,2,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,""],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,""],access:[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_objects:[177,4,1,""],db_lock_storage:[177,4,1,""],db_message:[177,4,1,""],db_receiver_external:[177,4,1,""],db_receivers_accounts:[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,""],receiver_external:[177,3,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.SubscriptionHandler":{__init__:[177,3,1,""],add:[177,3,1,""],all:[177,3,1,""],clear:[177,3,1,""],get:[177,3,1,""],has:[177,3,1,""],online:[177,3,1,""],remove:[177,3,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,"-"],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,"-"],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,4,1,""],code:[192,4,1,""],created_on:[192,4,1,""],name:[192,4,1,""],number:[192,4,1,""],obj:[192,4,1,""],parameters:[192,4,1,""],updated_by:[192,4,1,""],updated_on:[192,4,1,""],valid:[192,4,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_server_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.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.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,""],arg_regex:[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,""],arg_regex:[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_object_creation:[206,3,1,""],at_pre_say:[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_object_creation:[217,3,1,""],at_pre_move:[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_drop:[218,3,1,""],at_give:[218,3,1,""],at_object_creation:[218,3,1,""],at_pre_drop:[218,3,1,""],at_pre_give:[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_object_creation:[218,3,1,""],at_pre_move:[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_object_creation:[219,3,1,""],at_pre_move:[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_object_creation:[220,3,1,""],at_pre_move:[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_object_creation:[221,3,1,""],at_pre_move:[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_drop:[221,3,1,""],at_get:[221,3,1,""],at_give:[221,3,1,""],at_pre_drop:[221,3,1,""],at_pre_get:[221,3,1,""],at_pre_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,"-"],red_button:[226,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.red_button":{BlindCmdSet:[226,1,1,""],CmdBlindHelp:[226,1,1,""],CmdBlindLook:[226,1,1,""],CmdCloseLid:[226,1,1,""],CmdNudge:[226,1,1,""],CmdOpenLid:[226,1,1,""],CmdPushLidClosed:[226,1,1,""],CmdPushLidOpen:[226,1,1,""],CmdSmashGlass:[226,1,1,""],LidClosedCmdSet:[226,1,1,""],LidOpenCmdSet:[226,1,1,""],RedButton:[226,1,1,""]},"evennia.contrib.tutorial_examples.red_button.BlindCmdSet":{at_cmdset_creation:[226,3,1,""],key:[226,4,1,""],mergetype:[226,4,1,""],no_exits:[226,4,1,""],no_objs:[226,4,1,""],path:[226,4,1,""]},"evennia.contrib.tutorial_examples.red_button.CmdBlindHelp":{aliases:[226,4,1,""],func:[226,3,1,""],help_category:[226,4,1,""],key:[226,4,1,""],lock_storage:[226,4,1,""],locks:[226,4,1,""],search_index_entry:[226,4,1,""]},"evennia.contrib.tutorial_examples.red_button.CmdBlindLook":{aliases:[226,4,1,""],func:[226,3,1,""],help_category:[226,4,1,""],key:[226,4,1,""],lock_storage:[226,4,1,""],locks:[226,4,1,""],search_index_entry:[226,4,1,""]},"evennia.contrib.tutorial_examples.red_button.CmdCloseLid":{aliases:[226,4,1,""],func:[226,3,1,""],help_category:[226,4,1,""],key:[226,4,1,""],lock_storage:[226,4,1,""],locks:[226,4,1,""],search_index_entry:[226,4,1,""]},"evennia.contrib.tutorial_examples.red_button.CmdNudge":{aliases:[226,4,1,""],func:[226,3,1,""],help_category:[226,4,1,""],key:[226,4,1,""],lock_storage:[226,4,1,""],locks:[226,4,1,""],search_index_entry:[226,4,1,""]},"evennia.contrib.tutorial_examples.red_button.CmdOpenLid":{aliases:[226,4,1,""],func:[226,3,1,""],help_category:[226,4,1,""],key:[226,4,1,""],lock_storage:[226,4,1,""],locks:[226,4,1,""],search_index_entry:[226,4,1,""]},"evennia.contrib.tutorial_examples.red_button.CmdPushLidClosed":{aliases:[226,4,1,""],func:[226,3,1,""],help_category:[226,4,1,""],key:[226,4,1,""],lock_storage:[226,4,1,""],locks:[226,4,1,""],search_index_entry:[226,4,1,""]},"evennia.contrib.tutorial_examples.red_button.CmdPushLidOpen":{aliases:[226,4,1,""],func:[226,3,1,""],help_category:[226,4,1,""],key:[226,4,1,""],lock_storage:[226,4,1,""],locks:[226,4,1,""],search_index_entry:[226,4,1,""]},"evennia.contrib.tutorial_examples.red_button.CmdSmashGlass":{aliases:[226,4,1,""],func:[226,3,1,""],help_category:[226,4,1,""],key:[226,4,1,""],lock_storage:[226,4,1,""],locks:[226,4,1,""],search_index_entry:[226,4,1,""]},"evennia.contrib.tutorial_examples.red_button.LidClosedCmdSet":{at_cmdset_creation:[226,3,1,""],key:[226,4,1,""],path:[226,4,1,""]},"evennia.contrib.tutorial_examples.red_button.LidOpenCmdSet":{at_cmdset_creation:[226,3,1,""],key:[226,4,1,""],path:[226,4,1,""]},"evennia.contrib.tutorial_examples.red_button.RedButton":{DoesNotExist:[226,2,1,""],MultipleObjectsReturned:[226,2,1,""],at_object_creation:[226,3,1,""],auto_close_msg:[226,4,1,""],blind_target:[226,3,1,""],blink_msgs:[226,4,1,""],break_lamp:[226,3,1,""],desc_add_lamp_broken:[226,4,1,""],desc_closed_lid:[226,4,1,""],desc_open_lid:[226,4,1,""],lamp_breaks_msg:[226,4,1,""],path:[226,4,1,""],to_closed_state:[226,3,1,""],to_open_state:[226,3,1,""],typename:[226,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_failed_traverse:[232,3,1,""],at_init:[232,3,1,""],at_object_creation:[232,3,1,""],at_post_traverse:[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_post_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":{manager:[238,0,0,"-"],models:[239,0,0,"-"]},"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,""],date_created:[239,3,1,""],db_date_created:[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_tags:[239,4,1,""],entrytext:[239,3,1,""],get_absolute_url:[239,3,1,""],get_next_by_db_date_created:[239,3,1,""],get_previous_by_db_date_created:[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,""],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":{manager:[245,0,0,"-"],models:[246,0,0,"-"],objects:[247,0,0,"-"]},"evennia.objects.manager":{ObjectDBManager:[245,1,1,""],ObjectManager:[245,1,1,""]},"evennia.objects.manager.ObjectDBManager":{clear_all_sessids:[245,3,1,""],copy_object:[245,3,1,""],get_contents:[245,3,1,""],get_object_with_account:[245,3,1,""],get_objs_with_attr:[245,3,1,""],get_objs_with_attr_value:[245,3,1,""],get_objs_with_db_property:[245,3,1,""],get_objs_with_db_property_value:[245,3,1,""],get_objs_with_key_and_typeclass:[245,3,1,""],get_objs_with_key_or_alias:[245,3,1,""],object_search:[245,3,1,""],search:[245,3,1,""],search_object:[245,3,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_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,""],appearance_template:[247,4,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_move:[247,3,1,""],at_post_puppet:[247,3,1,""],at_post_traverse:[247,3,1,""],at_post_unpuppet:[247,3,1,""],at_pre_drop:[247,3,1,""],at_pre_get:[247,3,1,""],at_pre_give:[247,3,1,""],at_pre_move:[247,3,1,""],at_pre_puppet:[247,3,1,""],at_pre_say:[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_content_names:[247,3,1,""],get_display_name:[247,3,1,""],get_numbered_name:[247,3,1,""],get_visible_contents:[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":{protfunc_callable_protkey:[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":{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.manager":{ScriptDBManager:[255,1,1,""],ScriptManager:[255,1,1,""]},"evennia.scripts.manager.ScriptDBManager":{copy_script:[255,3,1,""],delete_script:[255,3,1,""],get_all_scripts:[255,3,1,""],get_all_scripts_on_obj:[255,3,1,""],script_search:[255,3,1,""],search_script:[255,3,1,""],update_scripts_after_server_start:[255,3,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,""]},"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_pause:[259,3,1,""],at_repeat:[259,3,1,""],at_script_creation:[259,3,1,""],at_script_delete:[259,3,1,""],at_server_reload:[259,3,1,""],at_server_shutdown:[259,3,1,""],at_server_start:[259,3,1,""],at_start:[259,3,1,""],at_stop:[259,3,1,""],create:[259,3,1,""],is_valid:[259,3,1,""],path:[259,4,1,""],typename:[259,4,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,""],TaskHandlerTask:[260,1,1,""],handle_error:[260,5,1,""]},"evennia.scripts.taskhandler.TaskHandler":{__init__:[260,3,1,""],active:[260,3,1,""],add:[260,3,1,""],call_task:[260,3,1,""],cancel:[260,3,1,""],clean_stale_tasks:[260,3,1,""],clear:[260,3,1,""],create_delays:[260,3,1,""],do_task:[260,3,1,""],exists:[260,3,1,""],get_deferred:[260,3,1,""],load:[260,3,1,""],remove:[260,3,1,""],save:[260,3,1,""]},"evennia.scripts.taskhandler.TaskHandlerTask":{__init__:[260,3,1,""],active:[260,3,1,"id6"],call:[260,3,1,"id3"],called:[260,3,1,""],cancel:[260,3,1,"id5"],do_task:[260,3,1,"id2"],exists:[260,3,1,"id7"],get_deferred:[260,3,1,""],get_id:[260,3,1,"id8"],pause:[260,3,1,"id0"],paused:[260,3,1,""],remove:[260,3,1,"id4"],unpause:[260,3,1,"id1"]},"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":{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.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_custom_commands:[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_objects:[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_gui:[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_browserstr:[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":{CmdDummyRunnerEchoResponse:[298,1,1,""],DummyClient:[298,1,1,""],DummyFactory:[298,1,1,""],DummyRunnerCmdSet:[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.CmdDummyRunnerEchoResponse":{aliases:[298,4,1,""],func:[298,3,1,""],help_category:[298,4,1,""],key:[298,4,1,""],lock_storage:[298,4,1,""],search_index_entry:[298,4,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,""],report:[298,3,1,""],step:[298,3,1,""]},"evennia.server.profiling.dummyrunner.DummyFactory":{__init__:[298,3,1,""],initialDelay:[298,4,1,""],maxDelay:[298,4,1,""],noisy:[298,4,1,""],protocol:[298,4,1,""]},"evennia.server.profiling.dummyrunner.DummyRunnerCmdSet":{at_cmdset_creation:[298,3,1,""],path:[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_measure_lag:[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,""],create_default_channels:[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":{attributes:[316,0,0,"-"],managers:[317,0,0,"-"],models:[318,0,0,"-"],tags:[319,0,0,"-"]},"evennia.typeclasses.attributes":{Attribute:[316,1,1,""],AttributeHandler:[316,1,1,""],AttributeProperty:[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,""],NAttributeProperty:[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.AttributeProperty":{__init__:[316,3,1,""],attrhandler_name:[316,4,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.NAttributeProperty":{attrhandler_name:[316,4,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,""],search:[318,3,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.PermissionHandler":{check:[319,3,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,"-"],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_mxp:[321,5,1,""],strip_raw_ansi:[321,5,1,""],strip_unsafe_tokens:[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,""],mxp_url_re:[321,4,1,""],mxp_url_sub:[321,4,1,""],parse_ansi:[321,3,1,""],strip_mxp:[321,3,1,""],strip_raw_codes:[321,3,1,""],strip_unsafe_tokens:[321,3,1,""],sub_ansi:[321,3,1,""],sub_brightbg:[321,3,1,""],sub_xterm256:[321,3,1,""],unsafe_tokens:[321,4,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,""],CmdYesNoQuestion:[328,1,1,""],EvMenu:[328,1,1,""],EvMenuCmdSet:[328,1,1,""],EvMenuError:[328,2,1,""],EvMenuGotoAbortMessage:[328,2,1,""],InputCmdSet:[328,1,1,""],YesNoQuestionCmdSet:[328,1,1,""],ask_yes_no:[328,5,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.CmdYesNoQuestion":{aliases:[328,4,1,""],arg_regex:[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.evmenu.YesNoQuestionCmdSet":{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,""],CmdMoreExit:[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.CmdMoreExit":{aliases:[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,""],mergetype:[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.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_file_exists:[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,""],rotate_log_file:[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_mxpurl:[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_mxp_urls:[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,""],copy_word_case:[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_cmdsets:[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,""],repeat:[344,5,1,""],run_async:[344,5,1,""],safe_convert_to_types:[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,""],strip_unsafe_input:[344,5,1,""],time_format:[344,5,1,""],to_bytes:[344,5,1,""],to_str:[344,5,1,""],unrepeat:[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,""],load_game_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,""]},"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.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,""],HelpDetailTest:[360,1,1,""],HelpListTest:[360,1,1,""],HelpLockedDetailTest:[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.HelpDetailTest":{get_kwargs:[360,3,1,""],setUp:[360,3,1,""],test_object_cache:[360,3,1,""],test_view:[360,3,1,""],url_name:[360,4,1,""]},"evennia.web.website.tests.HelpListTest":{url_name:[360,4,1,""]},"evennia.web.website.tests.HelpLockedDetailTest":{get_kwargs:[360,3,1,""],setUp:[360,3,1,""],test_lock_with_perm:[360,3,1,""],test_locked_entry:[360,3,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:{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,"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,"0x045a0990":42,"0x852be2c":59,"100":[31,56,73,85,93,111,125,169,185,188,217,220,221,343,344],"1000":[56,93,100,116,217,218,219,220,221,251],"1000000":[82,93,337],"100m":343,"100mb":90,"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],"110m":343,"111":[12,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,"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,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],"2014":[21,213],"2015":[24,189,205,206],"2016":[99,199,202,212,214],"2017":[62,90,97,182,183,184,190,204,209,210,215,217,218,219,220,221,234,235,364],"2018":[9,180,188,198,203],"2019":[79,187,364],"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,"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,"229m":343,"22m":[321,343],"22nd":344,"230":[114,343],"230m":343,"231":343,"231m":343,"232":343,"232m":343,"233":[12,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],"255m":343,"256":[12,114,156,321],"25m":343,"26m":343,"27m":343,"280":71,"28gmcp":291,"28m":343,"29m":343,"2d6":[58,185],"2gb":90,"300":[114,126,184,331],"3000000":82,"302":360,"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,"3c3ccec30f037be174d3":344,"3d6":185,"3rd":[62,364],"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,"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,"44m":[321,343],"45m":[27,321,343],"46m":[321,343],"47m":[321,343],"48m":343,"49m":343,"4er43233fwefwfw":9,"4th":[38,79],"500":[114,126,321],"50000":82,"500red":321,"505":321,"50m":343,"50mb":90,"516106":56,"51m":343,"520":114,"52m":343,"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,"57m":343,"5885d80a13c0db1f8e263663d3faee8d66f31424b43e9a70645c907a6cbd8fb4":37,"58m":343,"593":344,"59m":343,"5d5":56,"5fdonatecc":70,"5flg":70,"5fu":70,"5x5":111,"600":344,"60m":343,"614":138,"61m":343,"62m":343,"63m":343,"64m":343,"65m":343,"6666":40,"6667":[72,79,146,164,308],"66m":343,"67m":343,"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,"79m":343,"8080":90,"80m":343,"8111":36,"81m":343,"82m":343,"83m":343,"84m":343,"85000":82,"85m":343,"86400":120,"86m":343,"87m":343,"8859":[15,113,171],"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,"9th":364,"\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,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,159,166,167,202,226,276,321,328,329,344],"byte":[15,27,113,267,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,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,147,151,153,154,156,159,165,166,167,170,175,176,179,180,182,185,187,188,196,204,206,211,226,233,238,239,241,242,245,247,251,256,258,272,276,280,284,298,305,308,316,317,318,319,321,323,334,341,344,349,364],"catch":[15,26,27,30,51,58,87,91,97,102,115,118,146,165,233,257,267,272,279,305,306,316,326,328,329,334,337,340],"char":[56,58,71,73,85,88,105,111,116,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,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,146,147,148,149,152,153,154,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,175,176,177,179,180,181,182,184,185,186,187,188,189,192,193,195,196,198,199,202,203,204,205,206,210,211,212,213,214,215,217,218,219,220,221,223,226,228,230,231,232,233,234,235,238,239,242,243,245,246,247,249,251,252,255,256,257,258,259,260,261,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,316,317,318,319,321,322,323,324,325,326,327,328,329,330,331,333,334,335,337,338,339,340,341,342,343,344,347,349,351,352,357,360,364],"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,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,199,202,203,205,206,209,210,212,213,214,215,217,218,219,220,221,226,231,233,234,235,236,238,239,240,242,245,247,251,252,256,257,259,260,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,337,338,339,340,341,344,345,349,357,364],"export":75,"final":[10,23,26,27,29,33,36,38,39,41,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,364],"float":[38,49,114,146,184,194,195,198,260,267,279,317,331,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,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,171,175,176,179,180,181,184,185,187,188,190,194,195,198,199,203,205,206,211,212,215,217,218,219,220,221,226,230,232,233,234,235,239,240,241,242,247,250,251,252,257,259,260,261,267,271,272,276,287,288,293,296,299,306,308,310,318,319,320,321,322,324,325,326,328,329,331,337,338,339,343,344,345,347,364],"g\u00e9n\u00e9ral":79,"goto":[85,230,328,364],"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,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,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,170,179,180,181,182,183,184,185,187,188,198,199,202,204,205,206,212,213,215,217,218,219,220,221,226,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,364],"int":[11,25,31,39,49,51,56,58,74,85,91,114,123,125,134,144,146,147,151,152,154,176,179,182,184,185,188,190,192,194,195,198,206,215,217,218,219,220,221,234,245,247,252,255,258,260,261,264,265,267,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,337,341,344],"long":[9,10,15,20,22,23,25,26,27,29,33,37,38,40,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,166,179,186,195,203,213,220,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,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,146,152,153,154,156,157,159,164,166,167,170,171,175,180,181,182,186,187,188,192,195,199,202,203,204,205,206,212,213,215,217,218,219,220,221,231,232,233,235,239,242,245,246,247,249,251,252,255,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,337,338,344,360,363,364],"null":[8,86],"public":[25,34,41,58,65,67,72,90,93,100,103,131,134,164,247,312,330,364],"return":[3,4,6,10,11,15,20,21,22,25,27,28,29,30,33,36,39,40,41,42,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,146,147,148,150,151,152,153,154,156,159,164,166,169,170,175,176,177,179,180,182,184,185,187,188,190,192,193,194,195,198,199,203,204,205,206,210,211,212,215,217,218,219,220,221,223,226,230,231,232,233,234,235,238,239,241,242,245,246,247,249,250,251,252,255,257,258,259,260,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,316,317,318,319,321,322,323,324,325,326,328,329,330,331,334,337,338,339,340,341,343,344,345,347,350,357,364],"short":[20,22,29,39,42,46,51,54,57,58,61,62,70,71,83,87,89,95,96,103,110,112,114,123,129,137,140,164,180,182,195,202,205,206,234,252,322,344],"static":[38,49,58,83,124,127,135,136,137,139,169,180,192,206,214,251,252,312,324,347,355,364],"super":[5,22,25,31,40,41,49,57,58,60,62,81,89,96,118,121,123,125,180,182,206,364],"switch":[0,2,9,10,13,14,16,19,20,23,25,31,33,34,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,169,171,185,187,199,202,203,218,226,256,318,324,329,345,364],"th\u00ed":20,"throw":[11,22,66,75,109,131,133,153,260,344],"true":[1,2,4,5,10,11,13,20,21,22,25,26,27,29,31,33,34,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,147,148,150,152,153,154,156,159,164,166,167,170,175,176,177,179,180,182,183,184,185,188,190,192,195,203,204,205,206,212,215,217,218,219,220,221,226,230,231,235,239,241,242,245,246,247,249,251,252,256,257,258,259,260,261,265,267,272,273,276,278,285,290,295,296,306,308,310,312,316,317,318,321,324,326,328,329,330,331,334,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,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,184,186,196,204,205,206,212,213,217,218,219,220,221,226,231,232,233,235,239,247,251,264,267,276,291,292,296,310,316,318,321,323,324,326,327,340,344,364],"var":[67,83,88,137,209,291,322],"void":56,"while":[0,9,10,11,13,14,20,22,23,25,28,29,31,33,35,37,38,41,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,166,167,170,179,188,196,203,204,206,218,221,226,231,233,235,247,251,252,259,291,314,316,318,328,330,344,345,363],AIs:79,AND:[73,80,119,159,188,242,316,319],ARE:77,AWS:[90,100],Adding:[18,32,33,45,60,71,82,85,108,116,124,139,166,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,328],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,251,319],DNS:[67,90],DOING:188,DoS:285,Doing:[29,33,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,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,144,152,153,154,159,164,166,169,175,176,177,180,182,185,187,188,189,198,206,212,214,215,218,231,239,241,242,247,252,260,287,291,296,316,318,321,325,328,338,340,344,350,357,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:[159,188],IOS:24,IPs:[12,103,209,310],IRE:[88,291],Its:[41,62,69,80,83,86,89,105,164,189,226,252,326,328,344],LTS:97,NOT:[11,25,33,80,90,103,119,137,159,242,252,310,364],Not:[8,24,30,41,54,57,61,74,90,108,112,115,127,131,132,133,137,146,153,167,247,264,277,278,279,281,282,283,289,291,294,316,317,338],OBS:19,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,95,102,105,110,115,117,121,123,126,128,130,131,132,138,141,148,150,166,179,185,205,215,231,232,245,251,252,277,305,316,317,321,322,328,329,344],PMs:364,PRs:131,Such:[6,13,28,33,37,48,51,57,64,73,127,159,252,321,328],THAT:91,THE:188,THEN:[153,188],THERE:188,TLS:[103,364],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,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,175,176,177,179,180,182,184,185,186,187,188,189,190,192,193,194,195,198,199,203,204,205,206,212,213,215,217,218,219,220,221,223,226,230,231,232,233,234,235,236,238,239,241,242,245,246,247,249,250,251,252,255,256,257,258,259,260,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,316,317,318,319,321,322,323,324,325,326,327,328,329,330,331,332,334,337,338,339,340,341,342,344,345,347,357,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,363],These:[0,4,5,9,11,13,17,22,25,33,34,35,38,39,40,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,150,152,154,156,158,160,164,168,176,180,184,198,199,203,205,206,210,226,233,238,242,247,251,252,261,266,273,292,295,296,298,307,308,309,316,318,321,325,328,329,330,331,337,338,339,344],USE:364,Use:[1,2,4,5,8,9,12,13,14,20,22,23,24,25,31,38,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,166,169,171,175,179,180,184,186,199,202,203,204,206,218,219,220,221,234,245,246,247,267,269,273,278,295,296,298,302,316,318,321,327,328,330,334,341,344,364],Used:[33,121,139,150,153,159,171,188,202,215,235,245,246,259,269,287,316,318,329,330,344],Useful:[12,51,90],Uses:[114,159,171,186,209,231,267,316,330,334],Using:[18,22,27,46,51,55,58,60,62,68,80,91,96,115,121,123,139,206,218,226,234,247,287,314,328,364],VCS:36,VHS:188,VPS:90,WILL:[24,91],WIS:58,WITH:[23,188],Was:164,Will:[31,74,110,114,144,164,184,204,206,247,250,252,265,267,276,277,318,328,330,331,339,344,364],With:[8,11,15,19,23,55,57,77,87,100,111,114,122,123,141,144,180,206,252,316,321],Yes:[33,138,188,326,328,364],__1:337,__2:337,_________________:125,_________________________:51,______________________________:51,________________________________:51,_________________________________:125,______________________________________:328,______________________________________________:51,_______________________________________________:51,____________________________________________________:51,_________________________________________________________:85,__________________________________________________________:85,__defaultclasspath__:318,__dict__:267,__doc__:[33,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,177,179,180,192,204,206,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,316,318,319,321,323,326,327,328,329,330,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,329],__settingsclasspath__:318,__unloggedin_look_command:[43,171,186],_action_thre:51,_action_two:51,_all_:152,_and_:344,_asynctest:293,_attrs_to_sync:307,_attrtyp:316,_cach:318,_cached_cmdset:153,_call_or_get:180,_callable_no:328,_callable_y:328,_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:[159,247],_create_charact:133,_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,_funcnam:344,_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,_overrid:[135,137],_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_:344,_stop_serv:284,_templat:38,_test:150,_to_evt:329,_validate_fieldnam:58,_yes_no_quest:328,a2enmod:8,a8oc3d5b:100,a_off:179,aardwolf:88,abbrevi:[76,114,159,202],abcd:165,abi:60,abid:126,abil:[6,10,20,31,33,52,55,56,57,58,60,64,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,38,41,42,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,164,166,175,177,180,184,190,199,206,212,217,218,219,220,221,316,318,325,340,344,360],abort:[25,27,33,51,52,77,89,122,144,154,159,175,213,233,247,250,259,328,329,344,364],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,43,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,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,166,169,179,180,182,185,214,219,220,221,232,233,239,247,267,269,272,281,283,285,294,296,298,299,306,308,317,319,321,329,334,344,363,364],abov:[2,4,8,9,10,11,12,13,14,21,23,24,27,28,29,30,31,33,36,37,38,40,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,204,206,213,214,215,217,219,220,221,242,245,247,272,328,339],abridg:41,absolut:[27,38,56,62,79,91,182,184,185,189,327,331,344],absorb:74,abspath:344,abstractus:148,abus:[7,103,364],academi:79,accept:[11,14,22,23,27,31,37,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,247,267,272,285,311,312,317,322,328,340,344],accept_callback:[193,195],access:[0,4,7,8,11,12,13,14,19,21,22,23,25,27,29,31,33,38,39,40,41,43,47,49,51,52,53,56,57,58,59,60,63,64,66,68,69,71,73,74,80,83,84,85,86,87,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,148,152,153,154,156,157,159,164,165,166,167,169,171,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,316,318,319,322,323,324,337,343,344,357],access_obj:[241,316],access_object:80,access_opt:345,access_token_kei:[71,120],access_token_secret:[71,120],access_typ:[34,68,89,144,154,159,175,177,239,241,242,247,316,318,364],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,80,241],accessor:[148,177,239,246,256,316,318,319,335],accessori:63,accident:[15,31,38,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,204,205,218,260,321,322],accordingli:[49,58,90,106,234],account1:360,account2:360,account:[0,4,6,9,11,12,14,17,19,20,21,22,24,25,31,33,34,35,37,38,41,43,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,169,170,171,175,176,177,180,181,182,184,186,187,188,190,192,193,195,199,206,209,212,217,219,220,221,226,230,231,232,233,235,239,241,242,245,246,247,249,251,252,253,256,267,271,272,287,298,299,306,307,308,316,318,319,321,324,328,329,338,339,341,342,344,345,349,357,360,364],account_cal:[156,164,167,199],account_count:308,account_id:[133,247],account_mod:159,account_nam:56,account_search:[147,206,247],account_subscription_set:148,account_typeclass:[342,360],accountcmdset:[2,22,31,41,43,57,58,62,156,160,181,199],accountdb:[53,119,125,133,141,144,148,154,175,239,314,318,338,345],accountdb_set:[316,319],accountdbmanag:[147,148],accountdbpasswordcheck:287,accountform:357,accountid:133,accountlist:58,accountmanag:[144,147],accountnam:[58,159,171,176,186],accru:144,accur:[22,154,192,218,221,252,260,265,267,269,270,278,287,288,290,292,295,296,316,321,339,340,351],accuraci:[46,91,218,219,220],accus:73,accustom:[87,124],acept:188,achiev:[0,22,27,33,38,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,259,261,264,276,277,291,308,329,330],act:[2,8,13,23,29,31,34,37,49,51,56,58,61,70,77,95,102,105,110,111,123,139,141,144,159,164,177,188,215,264,276,277,296,316,319,323,328],action1:116,action2:116,action:[0,11,22,29,39,41,42,46,51,55,57,61,62,64,73,88,90,91,93,102,114,116,117,118,123,133,138,144,146,154,164,165,169,175,179,188,206,217,218,219,220,221,226,230,234,238,239,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,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,171,175,193,210,226,231,235,246,247,250,260,272,279,280,281,282,283,287,289,290,291,298,308,310,316,317,328,329,330,344,364],activest:343,actor:[221,247],actual:[2,5,8,10,11,13,14,19,20,21,22,26,27,29,34,36,40,41,42,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,164,165,167,169,170,171,175,177,179,180,182,187,188,198,202,203,205,206,213,214,215,217,218,219,220,221,226,232,233,235,239,241,242,246,247,252,287,290,296,298,304,306,307,308,312,313,316,318,321,323,326,328,334,338,339,340,344,364],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,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,170,175,177,179,180,181,182,183,184,185,186,187,192,193,195,196,198,199,202,203,205,206,209,212,213,215,217,218,219,220,221,223,226,230,231,232,233,234,241,242,246,247,251,252,256,257,258,259,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,337,339,340,364],add_:330,add_act:116,add_alia:164,add_argu:234,add_callback:[193,195],add_charact:116,add_choic:[180,364],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],add_dist:221,add_ev:195,add_head:330,add_languag:205,add_row:[58,82,154,330],add_user_channel_alia:175,add_xp:73,addcallback:[33,247],addclass:[137,141,142,346,356,358,364],addcom:[43,58],added:[0,4,5,17,21,22,24,25,27,31,33,34,36,38,40,41,42,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,171,179,180,182,183,185,189,192,195,198,205,206,217,218,219,220,221,226,235,242,247,250,252,258,260,272,306,310,316,319,322,328,329,330,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,233,234,247,251,252,258,267,298,316,324,330,344,364],addingservermxp:282,addit:[4,8,22,25,31,36,37,38,46,49,50,51,58,62,69,76,82,88,90,91,103,104,109,114,119,134,144,146,153,154,166,175,180,183,192,193,195,205,209,215,221,234,242,247,250,260,278,306,316,318,328,357,364],addition:[25,111,119,221],additionalcmdset:31,addpart:203,addquot:344,addr:[264,277,278,279,324],address:[3,9,12,23,33,40,49,67,87,90,91,103,105,131,135,144,147,157,175,186,189,247,264,277,279,287,307,310,344,345,363,364],address_and_port:287,addresult:203,addscript:43,addservic:40,adjac:[221,231],adject:97,adjoin:206,adjust:[0,33,37,63,126,133,190,260,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,154,155,159,164,169,171,172,175,186,231,236,239,242,243,246,247,253,262,276,277,314,318,324,340,363,364],administr:[10,23,33,36,38,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,44,51,55,58,64,79,86,93,104,105,108,109,111,119,123,124,125,139,159,167,187,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,affair:323,affect:[11,13,14,19,25,31,33,61,62,73,80,81,105,112,114,116,126,127,128,131,138,144,152,169,183,198,205,212,219,226,247,251,318,322,330,338],affili:260,affliat:260,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,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,166,167,169,170,171,175,179,180,182,184,185,186,187,188,190,195,203,205,206,215,217,218,219,220,221,226,228,231,232,233,234,235,246,247,252,255,257,259,260,267,289,290,293,298,305,306,307,308,310,312,316,321,322,323,326,328,329,334,339,342,343,344],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,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,170,184,195,204,217,220,221,226,235,259,267,284,287,290,310,321,322,325,340,342],againnneven:170,against:[6,11,21,31,33,37,57,58,83,90,103,116,119,125,127,144,151,152,206,217,218,219,220,221,242,245,247,251,252,285,310,316,318,319,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],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,179,312],aim:[7,55,58,61,73,85,86,90,95,108,126,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:[175,247],alexandrian:79,algebra:49,algorith:205,algorithm:[245,344],alia:[2,6,9,20,21,22,31,33,41,43,44,48,51,57,58,59,60,63,87,89,90,95,105,111,112,119,125,127,129,131,148,151,154,156,159,164,165,166,167,170,175,187,192,206,212,228,231,233,235,241,245,246,247,252,256,261,272,298,317,318,319,324,340,341,342,357,364],alias1:[159,187],alias2:[159,187],alias3:187,alias:[2,13,20,21,22,25,27,29,31,33,34,41,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,175,176,179,180,181,182,185,186,187,188,189,193,199,202,203,206,212,213,214,215,217,218,219,220,221,226,231,232,233,234,235,238,239,245,246,247,252,298,317,318,319,324,326,328,329,337,341,364],aliaschan:43,aliasdb:144,aliashandl:319,aliasnam:252,aliasstr:324,align:[41,58,109,114,190,321,330,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,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,146,147,149,150,151,152,153,154,155,156,157,158,159,160,161,164,165,166,167,168,169,170,171,175,176,177,179,180,181,182,185,186,187,188,189,192,195,199,202,203,204,205,206,210,212,213,214,215,217,218,219,220,221,226,230,231,232,233,234,235,238,239,240,241,242,243,245,246,247,250,251,252,255,257,258,259,260,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,316,317,318,319,321,322,323,324,325,326,327,328,329,330,334,337,339,341,343,344,345,347,350,357,363,364],all_alias:112,all_attr:318,all_cmd:166,all_connected_account:308,all_displai:261,all_famili:119,all_from_modul:344,all_kei:166,all_opt:339,all_receiv:247,all_room:13,all_script:102,all_sessions_portal_sync:308,all_to_categori:238,allcom:43,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,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,166,167,169,170,175,176,177,179,180,182,184,185,187,188,189,195,202,204,205,206,215,217,218,219,220,221,226,231,232,233,234,235,239,241,242,247,251,252,257,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],allow_abort:328,allow_dupl:152,allow_nan:296,allow_quit:328,allowed_attr:58,allowed_fieldnam:58,allowed_host:[90,103],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,166,261,272,298,322,324,330],alone_suffix:303,along:[5,12,33,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,67,188],alonw:256,alpha:[54,90,321,364],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,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,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,144,152,153,156,159,167,169,170,175,176,179,181,182,204,205,206,217,218,219,220,221,231,232,235,242,247,251,252,267,276,284,285,287,292,295,300,305,306,308,316,319,321,324,329,337,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,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,147,148,151,152,153,154,156,157,158,159,161,164,165,166,167,169,170,175,176,177,179,180,181,182,185,187,188,190,195,199,202,204,205,206,213,215,219,220,221,226,231,232,233,235,240,241,242,245,246,247,251,252,253,256,259,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,341,344,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,164,167,175,203,206,221,226,241,242,245,285,321,324,344,364],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,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,166,167,170,175,176,177,199,205,206,212,226,241,242,245,246,247,251,252,261,267,269,272,276,284,287,290,291,295,296,299,306,308,313,316,317,318,319,321,324,334,340,341,344,345,350],always_pag:329,always_return:267,amaz:75,amazon:[79,90],ambianc:108,ambigu:[41,154,189,247,318],ambiti:[108,129],amend:131,amfl:14,ammo:21,among:[2,35,36,62,64,79,89,104,111,123,127,165,182,232,242,245,330,341],amongst:77,amor:196,amount:[11,16,37,61,68,73,102,103,114,123,169,217,218,219,220,221,247,308,326],amp:[40,83,92,105,141,142,262,264,267,275,277,285,293,305,308,364],amp_client:[141,142,262,364],amp_maxlen:293,amp_port:90,amp_serv:[141,142,262,275,364],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,166,206,247,251,252,257,267,329,344,364],anchor:[154,175,221,239,318],anchor_obj:221,ancient:114,andr:24,android:[139,364],anew:[63,111,175,267],angl:129,angri:41,angular: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,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,166,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,226,231,233,234,235,241,242,245,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,337,338,339,340,341,343,344,364],anim:[27,52],anna:[58,63,72,117,118,123,159],annoi:[12,85,91],annot:[79,364],announc:[25,37,79,116,123,128,157,164,169,175,217,218,219,220,221,247],announce_al:[285,308],announce_move_from:[25,77,89,247],announce_move_to:[25,77,89,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,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,170,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,344,364],another_batch_fil:322,another_nod:328,another_script:102,anotherscript:102,ansi:[24,53,55,74,81,137,141,142,156,183,190,202,272,279,287,290,295,296,320,330,343,344,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,328],anti:63,anul:8,anwer:44,any_options_her:38,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,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,34,42,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,364],app_id:133,appar:[48,58,126],apparit:233,appeal:[51,61,114],appear:[9,10,21,22,25,26,27,30,38,47,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,318,330,337],appearance_templ:247,append:[20,22,25,27,31,39,40,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,245,300,322,337,344],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,100,103,112,124,128,133,134,135,136,144,187,188,221,267,270,280,284,305,306,312,354],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,190,267,306,338,340,344,347],approrpri:40,approv:[133,134,138],approxim:[5,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,337,340,344,364],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,364],aren:[0,4,29,39,69,103,127,131,133,136,138,144,182,188,195,203,219,337,340],arg1:[80,154,167,170,175,316],arg2:[154,167,170,316],arg:[1,5,10,21,22,25,29,30,33,38,39,40,41,42,51,58,59,68,71,73,74,80,81,83,85,88,96,109,114,115,116,119,121,123,129,132,137,144,146,147,148,151,154,159,167,168,169,170,175,176,177,179,182,184,187,189,192,195,203,204,205,206,212,213,214,215,217,218,219,220,221,223,226,231,232,233,234,235,238,239,241,242,245,246,247,250,251,252,255,256,259,260,261,264,267,272,273,274,276,277,278,279,284,285,287,288,290,291,292,295,296,300,306,308,310,312,316,317,318,319,321,328,330,331,333,334,337,340,342,344,345,357,364],arg_regex:[5,41,44,154,159,165,166,169,170,171,182,206,326,328,364],arglist:167,argn:316,argpars:234,argtyp:344,argu:11,argument:[3,4,5,10,12,14,20,21,22,23,25,27,29,31,33,34,40,41,42,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,169,170,175,176,180,182,184,187,188,189,192,194,195,204,205,206,210,212,217,218,219,220,221,233,234,242,245,247,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,338,340,341,344,364],argumentpars:234,argumnet:330,aribtrarili:344,aris:103,arm:[26,33,203,364],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,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,182,184,194,203,206,221,226,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,73,77,83,105,159,279],arrow:[42,137],art:[114,327],articl:[4,15,21,39,41,48,57,79,113,127,131,335],article_set:335,artifact:330,artifici:73,arx:[79,364],arxcod:[79,139,364],as_view:[154,175,239,318],ascii:[9,15,111,113,144,171,327,330,344,364],asciiusernamevalid:144,asdf:159,ashlei:[182,188,190,215,217,218,219,220,221],asian:344,asid:9,ask:[1,10,21,23,26,34,37,42,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,204,234,265,267,294,328,331,344,364],ask_choic:265,ask_continu:265,ask_input:265,ask_nod:265,ask_yes_no:328,ask_yesno:265,asn:209,aspect:[48,51,57,60,64,68,73,86,109,127,190],assert:[116,127],assertequ:127,assertionerror:170,assertregex:127,asserttru:127,asset:[103,136,271,347],assetown:9,assign:[2,6,11,12,13,20,36,51,56,58,80,87,89,97,102,109,112,115,116,119,121,123,131,137,138,144,150,151,153,159,164,166,167,170,183,187,188,206,217,218,219,220,221,233,242,246,247,251,252,272,279,285,287,290,306,325,364],assist:90,associ:[4,11,29,51,79,83,90,105,122,135,138,144,149,159,175,192,195,206,247,306,308,317],assort:364,assum:[0,3,5,9,12,13,14,15,19,20,21,22,25,27,28,29,31,33,34,37,38,39,40,41,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,164,166,170,175,177,180,181,206,213,232,233,241,247,252,257,291,308,321,322,328,344,349],assumpt:151,assur:[49,125],asterisk:[2,12,38,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,364],at_:[125,334],at_access:[144,247],at_account_cr:[2,144],at_after_mov:[77,89,96,117,247],at_after_travers:[89,247],at_before_drop:247,at_before_g:247,at_before_get:247,at_before_mov:[25,77,89,247],at_before_sai:[96,247],at_channel_cr:175,at_channel_msg: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,202,203,206,214,217,218,219,220,221,226,230,231,232,233,298,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:[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,212,232,247],at_first_login:144,at_first_sav:[144,175,247],at_first_start:318,at_get:[182,221,247],at_giv:[218,221,247],at_heard_sai:118,at_hit:231,at_idmapper_flush:[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:[48,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,49,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:247,at_object_leav:[89,233,235,247],at_object_post_copi:247,at_object_rec:[89,117,233,235,247],at_password_chang:144,at_paus:259,at_post_all_msg:175,at_post_channel_msg:[144,175],at_post_cmd:[30,33,150,154,167,170],at_post_command:33,at_post_disconnect:144,at_post_login:[25,144],at_post_mov:247,at_post_msg:175,at_post_object_leav:235,at_post_portal_sync:305,at_post_puppet:[96,247],at_post_travers:[232,247],at_post_unpuppet:[96,247],at_pr:247,at_pre_channel_msg:[144,175],at_pre_cmd:[33,150,154,167,170],at_pre_command:33,at_pre_drop:[218,221,247],at_pre_g:[218,221,247],at_pre_get:[221,247],at_pre_login:144,at_pre_mov:[217,218,219,220,221,247],at_pre_msg:175,at_pre_puppet:[96,247],at_pre_sai:[206,247],at_pre_unpuppet:247,at_prepare_room:235,at_reload:[169,305],at_renam:318,at_repeat:[102,116,120,121,125,146,179,184,195,217,218,219,220,221,223,259,300,331],at_return:[10,344],at_return_funct:10,at_return_kwarg:[10,344],at_sai:[118,247],at_script_cr:[102,116,120,121,146,179,184,195,204,205,217,218,219,220,221,223,235,251,259,300,331],at_script_delet:259,at_search:104,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:[195,259,305],at_server_startstop:[25,104],at_server_stop:305,at_shutdown:305,at_start:[102,116,146,235,256,259],at_startstop_modul:261,at_stop:[102,116,121,217,218,219,220,221,259],at_sunris:62,at_sync:[306,307],at_tick:[115,261],at_travers:[89,213,235,247],at_traverse_coordin:235,at_turn_start:219,at_upd:[219,257],at_weather_upd:132,ating:170,atlanti:24,atleast:205,atom:98,atop:235,atribut:325,att:51,attach:[4,11,21,41,56,58,64,77,89,95,102,105,110,112,119,140,154,159,167,189,199,215,235,242,247,258,304,319,364],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,364],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,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],attent:[38,56,58,89,103,111],attitud:57,attr1:[159,203],attr2:[159,203],attr3:159,attr:[11,22,49,51,58,80,109,119,136,137,159,166,177,180,233,241,251,252,306,316,318,334,340],attr_eq:241,attr_g:[80,241],attr_gt:[80,241],attr_l:[80,241],attr_lt:[80,241],attr_n:[80,241],attr_nam:159,attr_obj:[316,318],attr_object:318,attract:37,attrcreat:[80,316],attread:11,attredit:[11,80,316],attrhandler_nam:316,attrib:242,attribiut:316,attribut:[0,2,6,12,20,22,25,27,28,30,39,41,42,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,148,153,159,168,169,175,180,181,187,194,195,202,203,206,213,217,218,219,220,221,226,231,232,233,241,245,246,247,250,251,252,256,257,260,272,306,314,317,318,319,324,325,326,331,337,338,341,344,357,364],attribute1:123,attribute2:123,attribute_list:316,attribute_nam:[144,206,245,247,341],attribute_valu:245,attributeerror:[42,60,86,306,316],attributehandl:[1,125,316,339,344,364],attributeobject:11,attributeproperti:316,attrkei:252,attrlist:316,attrnam:[11,51,80,109,125,159,241,245,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,364],audit_callback:209,auditedserversess:[209,210],auditingtest:211,aug:[9,364],august:[9,344],aut:52,auth:[144,147,148,164,287,349,357],auth_password:287,auth_profile_modul:148,authent:[40,103,105,107,133,138,144,278,285,287,290,296,306,308,349],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,154,158,159,166,169,170,205,206,226,236,239,242,247,252,256,261,264,267,278,288,295,296,305,308,316,318,323,329,330,349,364],auto_close_msg:226,auto_help:[33,41,44,51,68,69,154,166,170,188,230,249,328,329],auto_help_display_kei:[154,170,328],auto_id: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],autocr:316,autodoc:38,autofield:133,autologin:349,autom:[14,36,57,58,67,79,86,100,103,110],automat:[0,6,10,14,19,22,23,27,30,31,34,37,41,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,169,170,179,180,181,182,194,195,196,203,204,205,206,214,221,234,242,246,247,258,260,261,272,281,284,287,292,305,308,310,322,326,328,329,330,344,350,364],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,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,169,170,171,179,180,181,185,187,189,195,199,202,204,205,206,214,215,217,218,219,220,221,226,232,233,242,247,250,251,252,256,272,296,298,299,310,322,323,328,329,330,344,350,364],available_chan:164,available_choic:[51,328],available_funct:251,available_languag:205,available_weapon:232,avatar:[64,88,96,247,287],avatarid:287,avenu:182,averag:[13,90,93,169,195,205,234],avoid:[8,11,23,26,27,31,33,37,40,42,51,80,81,85,95,97,100,109,111,114,125,126,127,129,131,138,139,152,159,204,205,226,234,235,241,246,276,286,296,306,316,318,319,321,322,323,326,329,334],awai:[0,9,10,11,14,15,21,26,29,42,46,49,51,55,66,68,69,73,80,86,90,96,102,105,109,111,121,123,131,165,177,182,215,218,221,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,azur:100,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,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,226,249,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,364],backend_class:316,background:[10,17,29,51,67,90,103,110,114,126,133,183,190,321],backpack:31,backslash:114,backtick:[38,131],backtrack:131,backup:[10,89,90,105,131,168,322],backward:[50,51,58,121,147,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,164,170,175,242,364],ban_us:164,band:[45,88,118,137,287,290,291],bandit:46,bandwidth:280,banid:157,bank:61,banlist:175,bar:[51,82,83,84,88,112,135,137,159,190,206,215,267,291,316,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,364],bartl:79,bas:120,base:[3,4,6,9,13,16,17,20,21,22,23,30,33,36,38,39,41,42,49,51,53,55,56,57,58,60,61,63,64,67,69,72,73,75,77,79,80,83,85,86,89,90,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,146,147,148,150,152,153,154,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,175,176,177,179,180,181,182,184,185,186,187,188,189,192,193,195,196,198,199,202,203,204,205,206,210,211,212,213,214,215,217,218,219,220,221,223,226,228,230,231,232,233,234,235,238,239,242,245,246,247,249,251,252,255,256,257,258,259,260,261,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,316,317,318,319,321,322,323,326,327,328,329,330,331,333,334,335,337,338,339,340,341,342,343,344,349,351,352,357,360,364],base_account_typeclass:2,base_channel_typeclass:34,base_char_typeclass:120,base_character_typeclass:[81,120,133,134,144,159],base_field:357,base_guest_typeclass:66,base_object_typeclass:[109,252,318],base_script_path:241,base_script_typeclass:102,base_set:9,base_word:344,baseclass:232,basecommand:60,basecontain:323,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,63,67,232],basi:[4,33,37,62,90,136,138,167,177,206,296,318,327],basic:[0,2,3,6,9,15,16,17,19,20,22,26,29,31,33,34,36,39,40,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,203,218,220,232,241,243,247,298,342,357,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,43,79,111,158,364],batchcode_map:111,batchcode_world:111,batchcodefil:13,batchcodeprocessor:322,batchcommand:[14,20,22,43,63,122,158,322],batchcommandprocessor:322,batchfil:[14,15,111,322],batchprocess:[141,142,149,155,364],batchprocessor:[13,141,142,158,320,364],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,153,166,171,175,186,194,205,220,235,247,259,279,285,298,308,321,338,340,344],becom:[0,5,10,22,37,38,41,42,47,49,51,56,59,61,64,70,73,78,80,81,86,87,88,95,96,102,104,109,111,119,128,156,170,189,203,205,206,215,218,247,252,306,322,328],bed:61,been:[0,4,5,6,13,14,19,21,22,23,36,38,41,42,46,49,51,58,69,70,76,79,85,91,93,96,103,105,116,117,123,126,128,131,133,134,135,138,144,152,153,154,158,159,164,167,175,177,180,195,203,204,206,217,218,219,220,221,233,235,239,242,246,247,251,252,260,261,269,281,285,287,295,305,306,307,308,310,316,318,322,326,327,344],befit:125,befor:[1,4,10,11,12,13,14,15,20,21,22,25,27,28,29,31,33,37,41,42,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,166,167,171,175,177,184,186,187,188,189,190,194,198,205,206,209,210,215,217,218,219,220,221,226,230,232,233,235,241,242,246,247,250,251,252,259,260,261,267,276,285,287,293,299,301,303,305,306,310,312,316,321,322,323,324,328,329,330,331,335,337,340,344,364],beforehand:[11,131,323],beg:14,beggar:0,begin:[0,4,6,10,13,14,20,22,25,33,38,41,42,46,50,51,55,58,61,69,72,80,91,95,96,106,107,111,116,117,119,127,132,134,165,166,194,205,206,215,217,218,219,220,221,245,247,321,322,328,341],beginn:[55,60,77,79,91,95,124],behav:[11,13,20,22,29,69,91,95,107,110,127,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,206,219,221,233,234,267,316,328],behaviour:[11,31,33,80,126,313,324,330,344],behind:[11,12,21,33,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,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,170,175,184,185,189,199,205,206,217,218,219,220,221,226,233,239,247,269,272,279,299,308,310,316,318,321,322,324,328,329,330,344,363],beipmu:24,belong:[4,14,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,48,49,50,51,57,58,59,60,61,62,63,64,67,69,70,74,80,81,87,88,90,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,177,180,182,185,190,205,206,215,217,218,219,220,221,228,234,239,246,247,256,279,299,316,318,319,328,330,335],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,364],betray:51,better:[0,9,15,23,25,34,38,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,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,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,198,199,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,344,351,364],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,226,233,247,251,298,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,166,168,226,245,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,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,46,59,61,62,63,69,75,76,81,96,102,106,109,121,122,127,131,134,137,138,164,171,186,242,247,322],bitbucket:57,bite:[61,111],black:[73,114,126,321],blackbird:79,blackbox:138,blacklist:[103,164],blacksmith:319,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,226],blind_target:226,blindcmdset:226,blindli:242,blink:[20,226,343],blink_msg:226,blist:97,blob:[37,38,95,104,138],block:[3,12,25,28,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,344,364],blocking_cmdset:25,blockingcmdset:25,blockingroom:25,blockquot:364,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,81,138,157],bodi:[3,17,22,27,33,41,46,51,58,95,109,127,129,133,193,199,269,324],bodyfunct:[20,102,141,142,178,222,228,364],bog:21,boi:112,boiler:125,bold:[54,364],bolt:252,bone:[55,73],bonu:[41,73,90,218,219,256],bonus:[29,218],book:[3,49,62,73,79,91,95,109,135],bool:[2,31,33,34,51,74,84,102,144,146,147,148,150,151,152,153,154,159,164,166,175,176,177,179,180,182,184,185,188,190,192,195,204,205,206,215,217,218,219,220,221,235,238,239,242,245,246,247,251,252,255,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,337,339,341,343,344],booleanfield:133,boom:[21,51],boot:[80,100,110,157,164,175,261,364],boot_us:164,bootstrap:[4,124,138,139,364],border:[58,111,156,170,188,327,330,364],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,328],boss:58,bot:[47,65,72,93,103,119,133,141,142,143,148,164,272,278,279,286,308,364],bot_data_in:[146,272],both:[0,11,15,19,22,23,25,26,27,31,33,34,36,37,38,40,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,199,203,212,215,220,221,233,242,245,247,251,252,253,256,259,261,276,285,295,296,298,305,307,310,316,317,321,324,328,330,339,344],bother:[29,103,128,316],botnam:[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,38,57,108,192,344],boundari:344,bounti:70,bountysourc:70,bow:252,box:[0,3,8,20,42,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,247,321],bracket:[38,96,129,169,183],brainstorm:[139,364],branch:[9,36,37,38,41,63,100,204,215,364],branchnam:131,brandymail:199,bread:16,breadth:221,break_lamp:226,break_long_word:330,break_on_hyphen:330,breakdown:169,breakpoint:[16,106,141],breez:[102,132],breviti:58,bribe:51,brick:82,bridg:[22,23,53,79,83,105,233,364],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,364],briefer:[89,110],briefli:[16,90,110,226,364],bright:[81,114,126,183,226,321],brightbg_sub:321,brighten:114,brighter:114,brilliant:131,bring:[23,49,96,100,103,121,123,133,136,215,221,231,309],broad:39,broadcast:[144,175,276],broader:[39,206,247],broken:[38,61,108,114,205,226],brought:102,brown:321,brows:[3,9,25,39,55,58,62,69,85,90,91,103,106,123,131,136,137,138],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],brutal:234,bsd:78,bsubtopicnna:170,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,95,96,110,123,127,131,247,318,364],buggi:[11,328],bui:[85,138,179],build:[1,6,7,9,10,11,13,14,15,27,31,36,43,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,180,187,193,205,206,212,231,234,242,247,251,252,267,278,279,322,330,357,363,364],build_match:151,builder:[2,4,14,19,22,25,56,58,60,61,68,80,85,108,109,112,114,123,124,139,157,159,164,165,169,180,182,187,188,203,206,212,226,233,234,235,242,247,298,318,319,322,363,364],buildier:252,building_menu:[141,142,178,364],buildingmenu:[22,180],buildingmenucmdset:180,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: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,364],butch:96,butt:138,butter:16,button:[9,13,14,31,33,80,83,87,88,106,131,133,134,135,137,138,159,226,232,299,329,364],button_expos:232,buy_ware_result:85,byngyri:205,bypass:[4,10,19,20,58,80,116,126,144,159,175,212,242,245,318,324,341,344,349],bypass_mut:175,bypass_perm:344,bypass_superus:80,byt:247,bytecod:321,bytestr:[276,344],bytestream:344,c20:164,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_measure_lag:299,c_move:299,c_moves_:299,c_moves_n:299,c_social:299,cabl:82,cach:[6,8,11,12,28,33,39,86,119,125,127,130,137,144,154,169,175,177,187,231,232,242,246,247,271,310,316,318,319,320,332,334,344,350],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],calculated_node_to_go_to:51,calculu:56,calendar:[184,198,331,364],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,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,175,177,179,180,182,184,185,186,187,188,189,192,193,194,195,196,198,203,204,205,206,212,214,215,217,218,219,220,221,223,226,230,231,232,233,234,235,241,242,246,247,250,251,252,257,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,316,318,319,321,322,323,324,326,328,329,330,331,334,337,339,340,341,344,357,364],call_async:10,call_command:127,call_ev:[0,194],call_inputfunc:[83,306,308],call_task:260,callabl:[49,50,84,109,115,123,180,188,195,215,219,247,250,251,252,257,261,265,267,269,277,308,323,326,328,329,331,337,339,340,344,364],callables_from_modul:344,callbac:22,callback1:328,callback:[4,10,22,27,29,33,50,51,62,74,84,115,138,146,169,180,184,188,192,193,194,195,196,198,210,215,230,247,257,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,364],called_bi:150,calledbi:344,caller:[5,10,11,13,21,22,25,27,28,29,30,33,38,41,42,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,169,170,180,188,193,199,203,206,214,215,226,230,232,233,234,235,242,247,249,251,252,322,326,328,329,338,344,364],callerdepth:344,callertyp:150,callinthread:312,calllback:194,callsign:[51,272],calm:111,came:[9,21,25,55,79,111,132,138,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,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,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,171,175,176,177,179,180,182,183,184,185,187,188,189,190,194,195,198,199,203,204,205,206,209,212,215,217,218,219,220,221,226,231,232,233,234,235,239,241,242,245,246,247,250,251,252,253,255,256,257,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,338,339,340,341,342,344,345,357,363,364],can_:194,can_ent:319,can_list_top:166,can_read_top:166,cancel:[27,29,74,169,194,217,218,219,220,221,247,260],candid:[22,33,119,133,151,203,206,245,247,341],candl:153,cannot:[5,9,10,11,13,14,19,21,22,25,27,28,29,31,33,39,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,166,180,187,188,192,195,212,215,221,231,232,238,242,245,247,251,261,316,323,325,327,330,334,344],cantanker:338,cantclear:188,cantillon:79,cantmov:25,canva:49,capabl:[6,36,49,58,64,80,83,88,105,156,214,272,294,357],capcha:364,cape:57,capfirst:69,capit:[9,12,25,29,64,88,95,123,159,189,204,205,291,321,344],captcha:133,caption:38,captur:[25,91,138,337],car:[87,121],card:[103,364],cardin:[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,298,318,322,326,328,329,330,344,364],carefulli:[55,93,105,111,133],carri:[20,31,61,80,82,85,116,117,177,182,218,231,241,306,317],cascad:334,case_sensit:206,caseinsensitivemodelbackend:349,cast:[28,109,112,215,220],caster:[28,220],castl:[13,111,122,187,233],cat:[67,75],catchi:4,categor:[112,247],categori:[1,11,33,36,38,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,179,180,181,182,185,186,187,188,189,193,199,202,203,206,212,213,214,215,217,218,219,220,221,226,231,232,233,234,238,239,241,247,251,252,298,316,317,319,324,326,328,329,335,338,341,344],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,175,186,226,235,247,298,328,330,344],caution:[62,137,328],cave:46,caveat:[5,10,364],caveman:56,cblue:131,cboot:[12,43],cc1:63,cccacccc:327,ccccc2ccccc:58,cccccccc:327,ccccccccccc:58,cccccccccccccccccbccccccccccccccccc:327,ccccccccccccccccccccccccccccccccccc:327,ccreat:[41,43,58,65,72,98],cdesc:[41,43],cdestroi:43,cdmset:31,cdn:103,ceas:[77,159],cel:327,celebr:61,cell:[58,69,111,188,327,330],celltext:327,cemit:43,censu:317,center:[4,16,39,49,109,111,114,190,321,330,344],center_justifi:109,centos7:67,centr:111,central:[26,55,61,64,74,100,111,123,124,127,132,138,139,144,153,170,175,177,247,252,276,324,328,334,347,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,48,64,75,80,88,90,97,102,105,107,108,114,115,121,138,159,176,179,205,209,226,232,235,241,245,251,259,267,273,290,291,294,309,316,317,326,330,341,344,357],certainli:[15,44,138],certbot:[67,90,103],certfil:[288,292],certif:[8,90,288,292,364],certonli:67,cet:337,cfg:67,cflag:75,cgi:90,cha:[51,58],chain:[0,10,29,46,51,109,119,194,195,267,299,328],chain_1:0,chain_2:0,chain_:0,chain_open_door:0,chain_x:0,chainedprotocol:287,chainsol:[119,364],chair:[13,61,89,91,112,125],challeng:[73,79],chan:164,chanalia:43,chanc:[21,22,28,31,54,61,66,73,115,116,122,131,152,217,218,219,220,221,226,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,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,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,153,154,156,157,159,165,170,175,179,180,182,186,187,189,190,192,195,202,205,206,212,213,215,217,218,219,220,221,231,232,233,234,235,239,245,247,251,252,256,257,259,260,261,267,272,283,298,305,306,313,316,318,322,325,326,329,330,337,338,339,340,364],change_name_color:215,changeabl:76,changelock:164,changelog:96,changepag:134,changepassword:12,chanlist:43,channam:41,channel:[2,6,7,11,12,19,31,33,43,45,53,55,65,70,71,72,79,80,82,86,87,90,98,107,112,119,123,124,125,138,139,144,146,152,153,159,164,170,172,175,176,177,195,226,278,279,286,299,305,306,308,316,324,337,341,360,364],channel_:[34,175],channel_ban:[41,164],channel_color:25,channel_command_class:[34,41],channel_connectinfo:306,channel_handl:53,channel_list_ban:164,channel_list_who:164,channel_msg:144,channel_msg_nick_pattern:175,channel_msg_nick_replac:[164,175],channel_msg_pattern:164,channel_prefix:[25,175],channel_prefix_str:175,channel_search:176,channel_typeclass:360,channelalia:[164,175],channelcl:164,channelcmdset:31,channelcommand:[34,41],channelconnect:177,channelcr:43,channelcreateview:175,channeldb:[41,53,125,141,175,177,314],channeldb_set:[316,319],channeldbmanag:[176,177],channeldeleteview:175,channeldesc:41,channeldetailtest:360,channeldetailview:175,channelhandl:[34,41,141,142,172,364],channelkei:[41,176],channellist:43,channellisttest:360,channelmanag:[175,176],channelnam:[34,41,72,144,146,164,175,278],channelupdateview:175,char1:[73,127,165,170,360],char2:[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,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,147,151,152,154,156,159,160,161,165,166,167,169,171,175,180,181,182,187,188,189,190,192,194,195,199,202,204,205,206,209,214,215,217,218,219,220,221,223,226,231,232,233,235,239,242,247,259,272,293,306,311,316,318,319,321,322,327,328,330,342,344,345,357,360,364],character1:73,character2:73,character_cmdset:187,character_id:247,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,characterdeleteview:360,characterform:357,characterlistview:360,charactermanageview:360,characternam:114,characterpuppetview:360,charactersheet:51,characterupdateform:357,characterupdateview:360,charapp:133,charat:188,charcreat:[0,43,46,69,156,181],chardata:58,chardelet:[43,156],chardeleteview:[239,318],chardetailview:[154,239,318],charfield:[86,133,340,357],charg:90,chargen:[133,139,141,142,175,178,239,318,364],chargencmdset:123,chargenroom:123,chargenview:[239,318],charnam:[58,156],charpuppetview:318,charset:344,charsheet:58,charsheetform:58,charupdateview:[239,318],chase:122,chat:[1,2,9,26,34,37,48,55,58,60,63,65,70,72,79,80,98,123,131,139,296,337,364],chatroom:57,chatzilla:72,cheap:131,cheaper:[61,115],cheapest:90,cheapli:233,cheat:[23,38,73,364],cheatsheet:48,chec:170,check:[0,4,5,12,13,14,19,22,25,26,27,28,29,31,33,36,37,38,39,40,41,42,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,147,150,151,152,153,154,156,158,159,164,165,166,167,169,170,171,175,177,179,181,182,186,187,188,195,199,217,218,219,220,221,223,226,231,233,234,235,241,242,246,247,251,252,256,258,259,260,266,267,271,276,282,287,305,306,308,310,311,312,316,318,319,321,322,324,338,339,344,345,364],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_to_attr:159,check_warn:266,checkbox:133,checker:[15,49,241,287,345,364],checkout:[9,100,131],checkoutdir:36,checkpoint:364,chest:[80,91],child:[6,33,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,318,335],chillout:159,chime:27,chines:[25,79,113],chip:58,chmod:36,choci:180,chocol:60,choic:[4,15,23,33,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,265,326,328,364],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,170,214,215,217,218,219,220,221,226,231,280,328,343,364],chop:[33,232],chore:68,chose:[54,58,86,103,133,215,328],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],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:157,claim:83,clang:75,clank:0,clarif:[1,48],clarifi:25,clariti:[75,86,91,123],clash:[23,31,90,159,318,328],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,48,51,76,110,111,114,116,122,131,152,154,159,169,179,206,217,218,219,220,221,232,233,235,247,256,267,271,285,295,308,318,321,326,328,334,340,343,344,357,364],clean_attribut:[125,144,318],clean_cmdset:[125,318],clean_senddata:308,clean_stale_task:260,clean_str:321,cleaned_data:133,cleaner:[91,123],cleanli:[64,102,105,110,150,154,188,269,278,284,295,308,326],cleanup:[1,11,22,33,40,45,50,51,102,127,179,230,233,328],clear:[1,4,11,12,15,22,29,33,37,38,40,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,171,177,188,204,206,233,242,245,246,247,257,260,261,269,306,310,316,318,319,328,334],clear_all_sessid:245,clear_attribut:316,clear_client_list:303,clear_cont:[89,247],clear_exit:[89,247],clearal:[129,165],clearli:[12,37,48,128,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],click_top:166,clickabl:[18,38,166,364],clickable_top:166,client:[3,7,8,9,12,22,23,25,30,33,36,38,40,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,166,169,171,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,364],client_address:40,client_default_height:52,client_disconnect:296,client_encod:23,client_gui:272,client_opt:[88,272,291,364],client_secret:65,client_width:[33,154],clientconnectionfail:[264,278,279],clientconnectionlost:[264,278,279],clienthelp:137,clientkei:298,clientraw:169,clientsess:[295,296],cliff:[20,159],climat:112,climb:[33,55,77,93,159,232],climbabl:232,clipboard:[1,48],clist:43,clock:[12,27,33,43,73],clone:[38,47,63,64,76,96,128,130,364],close:[0,14,22,25,38,39,40,41,46,48,50,51,64,69,76,90,96,100,103,105,106,110,125,131,133,137,169,171,179,180,186,190,212,221,226,230,269,277,278,285,287,295,296,308,316,322,328],close_menu:[230,328],closer:[205,221],closest:[39,114,344],cloth:[141,142,178,322,364],clothedcharact:182,clothedcharactercmdset:182,clothes_list:182,clothing_typ:182,clothing_type_count:182,clothing_type_ord:182,cloud9:364,cloud:[90,100,102,103,132],cloudi:102,clr:[114,251],cls:[39,144],clue:232,clunki:[131,221],clutter:[38,153],cma:131,cmd:[12,14,22,25,28,29,31,33,41,44,58,60,62,71,80,82,85,88,95,121,123,136,152,154,156,157,158,159,164,165,166,167,168,169,170,171,179,180,181,182,185,186,187,188,189,193,199,202,203,206,212,213,214,215,217,218,219,220,221,226,231,232,233,234,236,247,291,295,296,298,322,326,328,329],cmd_abil_result:127,cmd_arg:91,cmd_channel:33,cmd_help_dict:166,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,291],cmd_noinput:[33,150,328],cmd_nomatch:[33,150,233,328],cmd_noperm:33,cmd_on_exit:[51,188,215,230,249,328],cmd_or_top:166,cmd_total:105,cmdabil:[60,127],cmdabout:169,cmdaccept:179,cmdaccess:165,cmdaccount:169,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:226,cmdblindlook:226,cmdblock:25,cmdboot:157,cmdbridgehelp:233,cmdbui:85,cmdbuildshop:85,cmdcallback:193,cmdcast:220,cmdchannel:164,cmdcharactercr:181,cmdcharcreat:156,cmdchardelet:156,cmdclimb:232,cmdcloselid:226,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,cmddarkhelp:233,cmddarknomatch:233,cmddeclin:179,cmddefend:116,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],cmddummyrunnerechorespons:298,cmdeast:233,cmdecho:[5,29,33,38,170],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,169,170,171,187,203,233,246,247,256,344,364],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,cmdmask:206,cmdmobonoff:231,cmdmore:329,cmdmoreexit: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:226,cmdobj:[150,151,168,170],cmdobj_kei:150,cmdobject:[150,151,159],cmdobjectchannel:164,cmdoffer:179,cmdooc:156,cmdooccharactercr:181,cmdooclook:[156,181],cmdopen:[159,212],cmdopenclosedoor:212,cmdopenlid:226,cmdoption:156,cmdpage:164,cmdparri:116,cmdparser:[104,141,142,149,364],cmdpass:[217,218,219,220,221],cmdpassword:156,cmdperm:157,cmdplant:234,cmdpoke:119,cmdpose:[116,165,206],cmdpressbutton:232,cmdpushlidclos:226,cmdpushlidopen:226,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,cmdsdesc:206,cmdser:328,cmdserverload:169,cmdservic:169,cmdsession:156,cmdset:[2,7,14,21,22,25,31,33,34,40,41,42,43,44,47,51,53,57,60,62,68,69,81,85,89,96,97,105,116,121,123,141,142,144,149,150,151,153,154,159,160,161,162,163,167,168,169,170,179,180,181,182,185,187,189,193,199,203,206,213,214,217,218,219,220,221,226,230,231,232,233,234,246,247,256,298,305,306,318,326,328,329,344,364],cmdset_account:[2,141,142,149,155,181,364],cmdset_charact:[5,96,141,142,149,155,182,217,218,219,220,221,364],cmdset_mergetyp:[51,188,230,249,328],cmdset_prior:[51,188,230,249,328],cmdset_red_button:[141,142,178,222,364],cmdset_sess:[105,141,142,149,155,364],cmdset_stack:153,cmdset_storag:[148,246,306],cmdset_trad:179,cmdset_unloggedin:[33,141,142,149,155,186,364],cmdsetattribut:159,cmdsetclimb:232,cmdsetcrumblingwal:232,cmdsetdesc:165,cmdsetevenniaintro:233,cmdsethandl:[105,141,142,149,364],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,203,206,214,217,218,219,220,221,226,230,231,232,233,298,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:226,cmdsmile:33,cmdspawn:159,cmdspellfirestorm:28,cmdstatu:[179,220,221],cmdstop:213,cmdstring:[33,58,150,154,167,170],cmdstyle:156,cmdtag:159,cmdtalk:214,cmdtask:169,cmdteleport:159,cmdtest:[29,42,91],cmdtestid:33,cmdtestinput:51,cmdtestmenu:[51,188,328],cmdticker:169,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],cmdunconnectedencod:171,cmdunconnectedhelp:[171,186],cmdunconnectedinfo:171,cmdunconnectedlook:[171,186],cmdunconnectedquit:[171,186],cmdunconnectedscreenread:171,cmduncov:182,cmdunlink:159,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,cmdyesnoquest:328,cmset:153,cmsg:43,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,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,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,166,169,172,178,179,180,184,185,190,192,195,204,219,233,234,242,252,256,278,279,295,306,309,318,320,321,326,328,330,341,342,343,344,363,364],code_exec:322,codebas:[38,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,coding_styl:[37,38,95],coerc:339,coexist:126,coin:[61,70,179],col:[3,16,330],cold:[12,110,169,252,257,261,305],cole:344,coll_date_func:169,collabor:[4,61,64,90,131,166,364],collat:[83,251],collect:[11,26,31,136,150,152,166,169,203,316,344],collect_top:166,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,43,49,51,53,58,59,63,69,74,79,95,109,111,114,124,129,137,139,154,156,170,183,190,206,215,230,234,247,251,272,279,287,290,295,296,321,330,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,364],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,55,139,159,294,321,330,364],column:[16,38,46,49,58,64,69,86,111,137,154,156,235,330,344],com:[8,9,22,23,37,38,45,54,55,63,67,70,75,79,90,95,98,100,103,104,108,128,130,131,133,135,138,141,164,169,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,55,57,58,84,90,109,112,114,115,118,119,121,127,150,151,152,159,170,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,206,217,218,219,220,221,251,252,285,290,295,296,298,304,321,329],comet:[40,55,137,296],comfort:[15,55,69,91,131,364],comlist:43,comm:[33,34,41,43,47,53,64,68,71,141,142,149,155,324,364],comma:[20,46,86,95,114,134,159,167,198,199,242,247],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,175,178,179,180,181,182,185,186,187,188,189,191,194,196,199,202,203,206,210,212,213,214,215,217,218,219,220,221,226,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,364],command_default_arg_regex:33,command_default_class:25,command_pars:151,commandhandl:[74,153,168],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,364],commerc:79,commerci:[90,106],commerror:176,commit:[15,23,25,36,37,38,64,66,98,100,108,128,130,209,364],commmand:[212,217,218,219,220,221],common:[1,6,10,12,15,16,20,26,27,30,33,38,40,41,51,53,59,60,61,62,63,64,68,69,73,74,79,80,83,88,90,91,97,105,107,109,112,113,115,116,119,123,124,125,131,133,139,152,159,164,171,179,205,206,213,242,245,256,272,295,299,317,318,327,329,339,341,344,350],commonli:[23,63,64,83,86,87,96,104,105,107,115,119,128,170,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,144,161,164,171,172,175,176,177,199,230,246,264,276,277,287,288,290,291,292,293,306,308,324,325,340,364],compact:[85,134,226],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,203,205,217,218,219,220,221,241,242,252,298,321,344],comparison:[13,93,170,241,252,328],compartment:58,compass:20,compat:[14,21,51,159,330,337,344],compet:[15,88],compil:[9,33,38,47,56,63,75,76,90,95,108,154,159,165,166,169,171,182,206,321,326,328,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,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,170,183,187,188,190,195,218,226,233,247,260,267,269,277,278,295,316,322,327,328,329,341,344,357,364],complete_task:195,complex:[11,14,15,20,31,33,38,51,59,61,62,64,73,76,77,86,93,96,100,104,108,111,115,116,123,127,138,153,175,196,204,214,226,252,299,316,364],complianc:[24,187],compliant:[39,291],complic:[0,10,22,29,41,49,69,90,91,111,133,134,171,186,188,215,316],compon:[29,33,38,40,49,58,90,93,96,102,110,114,116,124,127,135,137,138,139,159,169,176,177,184,203,205,245,252,253,256,259,267,296,324,327,341,344,347,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,37,49,56,60,63,64,72,73,100,113,115,124,131,132,157,169,206,344,345,364],computation:115,comsystem:177,con:[43,58,79,171,186],concaten:[67,321],concept:[11,37,38,39,40,46,57,61,69,76,77,92,96,115,124,131,139,181,202,364],conceptu:[49,51],concern:[25,44,63,76,88,95,96,152,204,239],conch:[287,290,298],conclud:[96,179,328,364],conclus:364,concurr:23,conda:9,conder:322,condit:[8,46,49,55,61,73,85,91,93,96,123,124,150,166,185,206,219,242,247,259,266,267,312,319,344,364],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,267,273,274,313,322,364],confer:[79,344],confid:[37,39,42],config:[2,4,9,36,40,59,63,90,98,106,130,131,138,139,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,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,269,274,285,308,310,312,313,317,357,364],configut:106,configvalu:59,confirm:[8,33,63,103,137,159,186,203,291,294],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,164,186],congratul:364,conid:286,conj:247,conjug:247,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,43,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,147,148,156,157,159,164,171,175,177,186,190,192,193,195,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],connection_screen_modul:186,connection_set:54,connection_tim:[144,247],connection_wizard:[141,142,262,364],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,251,252,256,272,287,290,317,319,322,323,328,329],consider:[68,86,104,111,118,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,166,167,175,176,179,184,203,205,236,242,252,291,296,306,316,318,324,330,344],consol:[9,19,23,26,38,42,60,63,64,75,83,90,93,95,96,97,100,106,114,123,137,138,166,169,206,267],conson:205,constant:[0,88,276,342],constantli:[96,117,233],constitu:[153,167],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,147,149,150,151,152,153,155,158,159,164,166,170,172,180,188,189,192,193,194,195,196,198,203,204,205,206,210,211,213,215,219,226,232,234,235,238,240,247,249,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,347,355,363,364],container:100,contempl:56,content:[3,4,13,16,17,21,27,38,39,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,245,246,247,319,321,322,323,326,328,330,341,346,347,355,364],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],context_processor:350,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,247,265,276,312,316,328,337,344,364],contrari:[0,41,62,169,319],contrast:[56,90,96,113,138,291],contrib:[4,13,14,20,38,47,53,57,58,62,63,73,78,102,116,122,141,142,144,147,148,169,309,321,322,349,357,364],contribrpcharact:206,contribrpobject:206,contribrproom:206,contribut:[1,4,22,26,45,55,64,70,78,82,124,127,131,136,139,178,179,181,182,183,185,187,199,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,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,170,179,181,194,206,226,231,233,235,241,247,256,267,306,308,318,328,357,364],convei:[206,247],convenei:107,conveni:[8,9,10,11,21,34,36,38,40,41,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,247,299,310,322,323,328,329,337,340,341],convent:[0,31,86,96,107,119,126],convention:[41,154,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,147,157,184,185,188,215,241,245,251,252,255,257,276,278,287,290,291,308,312,321,325,328,329,330,331,340,343,344,363,364],convert_linebreak:343,convert_url:343,convinc:[51,90],cool:[3,9,21,22,26,61,79,159,164],cool_gui:80,cooldown:[29,116,124,139,364],coord:39,coordi:39,coordin:[49,124,137,139,221,235,364],coordx:39,coordz:39,cope:220,copi:[0,1,4,13,14,20,25,26,33,36,43,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,245,247,255,267,276,313,321,337,364],copy_object:[245,247],copy_script:255,copy_word_cas:344,copyright:[78,90],cor:138,core:[19,37,47,49,76,78,88,89,96,104,106,125,127,131,139,144,148,169,177,178,199,239,246,247,256,262,274,284,291,305,316,318,319,322,329,335,357,364],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,38,48,50,60,80,91,113,114,121,123,126,150,156,159,170,176,187,203,206,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,97,110,112,115,121,122,123,126,144,148,153,156,257,267,276,312,340],correl:252,correspond:[20,33,80,83,85,105,135,184,203,215,316,357],correspondingli:128,corrupt:56,cosi:111,cosin:344,cosmet:235,cost:[28,85,90,206,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,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,198,204,206,213,215,226,233,235,242,247,259,272,291,296,312,318,319,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,147,152,182,215,219,247,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:157,coupl:[22,48,69,100,117,131,175,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,226,233,247,344,363],coverag:127,coveral:127,cpanel:90,cpattr:[43,159],cprofil:364,cpu:[12,90,103,169],cpython:93,crack:[61,86],craft:[29,80,111,188],crank:115,crash:[26,60,61,79,103,111,271,316],crate:[20,87,124],crawl:103,crawler:[171,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,43,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,146,147,148,151,152,153,154,156,159,164,165,166,167,168,169,170,171,175,177,179,180,181,182,184,185,186,187,188,189,194,195,196,198,199,202,203,204,205,206,210,212,214,215,217,218,219,220,221,223,226,230,231,232,233,234,235,239,242,245,246,247,249,250,251,252,256,259,260,261,264,267,271,272,277,279,280,285,287,288,292,299,305,307,308,310,312,316,317,318,319,320,321,322,323,326,327,328,330,331,337,344,360,363,364],create_:[89,125],create_account:[27,53,107,125,141,324],create_attribut:316,create_cal:144,create_channel:[27,34,53,141,164,175,324],create_charact:[144,247],create_default_channel:305,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:[27,53,68,141,324],create_kwarg:252,create_match:151,create_messag:[27,34,53,141,324],create_object:[13,27,53,80,85,89,111,123,125,133,141,226,247,252,271,322,324],create_prototyp:[251,252],create_script:[27,53,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,createnpc:364,creater:53,creation:[11,14,20,21,38,47,51,58,60,61,79,80,81,86,89,97,105,111,123,125,131,133,139,140,141,144,148,159,164,166,175,181,203,206,210,212,217,218,219,220,221,232,233,239,246,247,252,256,261,300,318,324,326,327,328,330,357,363],creation_:324,creativ:[79,108],creator:[51,53,79,80,111,123,140,166,175,217,218,219,220,221,247,330],creatur:364,cred:[131,287],credenti:[90,103,131,144,287],credentialinterfac:287,credit:[90,103,131,343,344,364],creset:131,crew:119,criteria:[51,119,176,194,204,251,317,341],criterion:[119,131,144,179,206,238,245,247,255,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,344,364],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,347],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,41,43,46,48,49,50,51,58,59,60,64,68,74,76,77,79,80,85,86,89,97,100,102,104,105,106,112,114,115,116,119,120,121,123,124,127,128,131,133,137,138,144,147,148,150,151,153,154,156,157,159,164,165,166,168,169,171,179,180,182,187,188,190,195,198,202,204,206,212,213,215,217,218,219,220,221,230,232,233,235,238,245,246,247,252,256,260,261,267,272,277,283,284,287,288,291,299,306,308,310,317,318,326,328,330,331,337,338,341,344,364],current_choic:180,current_cmdset:159,current_coordin:235,current_kei:[250,251],current_tim:298,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,146,147,148,150,152,153,154,159,164,165,166,171,175,179,181,182,184,185,187,188,189,195,198,203,205,206,209,210,226,230,232,233,235,238,245,247,249,250,251,252,255,261,267,271,273,276,298,307,318,323,326,328,329,330,334,338,339,343,344,349,364],custom_add:195,custom_cal:[195,198],custom_evennia_launcher_command:267,custom_gametim:[62,141,142,178,364],custom_kei:251,custom_pattern:[3,4,69,133,134],customfunc:83,customis:235,customiz:[17,41,180,188,190,206,226],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:43,cyan:[114,126],cyberspac:79,cycl:[13,14,25,56,61,62,132,217,218,219,220,221],cyril:15,daemon:[8,67,93,100,103,110,284,312],dai:[25,27,36,56,61,62,100,103,108,120,126,131,132,139,147,184,187,331,337,344,345],daili:87,dailylogfil:337,dali:205,dalnet: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],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,226,233,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,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,146,154,159,166,169,188,190,194,195,206,209,210,246,247,249,251,253,259,261,264,265,269,273,274,276,277,278,279,280,285,286,287,288,290,291,292,294,295,296,298,300,305,306,307,308,310,314,316,317,318,319,321,322,323,324,325,327,328,329,330,333,337,338,339,340,344,357,364],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,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,147,148,152,153,159,166,169,175,176,177,187,194,195,206,220,233,236,238,239,241,245,246,247,251,253,255,256,257,260,261,267,271,273,284,298,305,314,316,317,318,319,322,324,325,332,334,340,341,344,346,364],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,153,157,169,209,331,337,345],date_appli:133,date_cr:[125,144,148,177,239,256,316,318],date_join:148,date_s:34,datetim:[62,125,133,184,316,331,337,338,344,345],datetime_format:344,datetimefield:[86,133,148,177,239,246,256,316,318,344],david:79,day_rot:337,db3:[23,111,128,131],db_:[84,86,119,125,206,245,247,257,272,341],db_account:[182,245,246,256],db_account_id:[246,256],db_account_subscript:177,db_attribut:[107,119,148,177,246,256,318],db_attrtyp:316,db_attryp:87,db_categori:[86,316,319],db_category__iequ:86,db_cmdset_storag:[148,182,246],db_data:319,db_date_cr:[86,148,177,182,239,246,256,316,318],db_desc:256,db_destin:[182,246],db_destination__isnul:120,db_destination_id:246,db_entrytext:239,db_header:177,db_help_categori:239,db_help_dict:166,db_hide_from_account:177,db_hide_from_object:177,db_hide_from_receiv:177,db_hide_from_send:177,db_home:[182,246],db_home_id:246,db_index:86,db_interv:256,db_is_act:256,db_is_bot:148,db_is_connect:148,db_kei:[69,84,86,119,125,182,194,239,257,274,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,246],db_location__db_tags__db_kei:119,db_location__isnul:120,db_location_id:246,db_lock_storag:[177,182,239,316,318],db_messag:177,db_model:[316,319],db_obj:[256,325],db_obj_id:256,db_object_subscript:177,db_permiss:86,db_persist:256,db_properti:272,db_protototyp:251,db_receiver_extern:177,db_receivers_account:177,db_receivers_object:177,db_receivers_script:177,db_repeat:256,db_sender_account:177,db_sender_extern:177,db_sender_object:177,db_sender_script:177,db_sessid:[182,245,246],db_start_delai:256,db_strvalu:316,db_tag:[119,148,177,239,246,256,318,319],db_tags__db_categori:[39,119],db_tags__db_kei:[39,119],db_tags__db_key__in:39,db_tagtyp:319,db_text:86,db_typeclass_path:[86,120,182,246,318,344],db_valu:[84,87,274,316],dbef:[255,341],dbentri:166,dbhandler:357,dbholder:316,dbid:[125,146,164,318],dbid_to_obj:344,dbmodel:317,dbobj:[11,316],dbobject:[11,317,318],dbprototyp:[159,251],dbref:[12,13,20,58,66,80,109,111,116,119,121,122,125,128,144,147,148,157,159,164,176,177,188,203,206,212,233,235,241,245,246,247,252,255,256,258,317,318,324,341,344,364],dbref_search:[147,245,255,317],dbref_to_obj:344,dbrefmax:159,dbrefmin:159,dbsafe_decod:340,dbsafe_encod:340,dbserial:[11,97,141,142,257,320,364],dbshell:[23,86,110,128],dbunseri:325,ddesc:56,deactiv:[63,64,81,117,164,187,231,328],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,364],dealt:[167,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,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,364],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: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,170,246,247,256,264,276,277,318,324,328,329,344,364],decoupl:[9,251],decoupled_mut:11,decreas:[220,233,326],decrease_ind:326,dedent:[50,344,364],dedic:[73,90,127,364],deduc:326,deduce_ind:326,deduct:[73,85,217,218,219,220,221],deem:[37,57,129,131,178],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,170,180,187,234,235,250,296,309,326,328,329,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,82,105,123,153,180,181,182,187,188,202,212,215,217,218,219,220,221],default_command:25,default_confirm:[159,203],default_error_messag:340,default_help_categori:166,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,53,64,125,141,144,146,160,247,342,357],defaultchannel:[6,53,125,141,164,175],defaultcharact:[5,6,22,25,53,57,58,60,62,73,81,86,89,96,123,125,127,141,144,161,180,182,189,206,217,218,219,220,221,247,316,342,357],defaultcmdset:185,defaultdict:257,defaultexit:[6,53,85,89,125,141,212,213,232,235,247,342],defaultguest:[53,141,144],defaultmod:337,defaultobject:[5,6,26,38,53,60,64,82,85,86,89,96,111,117,119,121,125,141,144,182,206,214,218,221,226,232,247,318,342,357,364],defaultpath:344,defaultroom:[6,39,49,53,56,85,89,125,132,141,187,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,235,251,258,259,300,331,342],defaultsess:162,defaulttyp:312,defaultunloggedin:163,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,133,148,150,169,177,187,213,239,246,247,256,260,264,274,276,277,308,312,316,318,319,335,337],deferredlist:312,defin:[0,2,4,5,10,11,12,13,14,20,21,22,25,27,30,35,36,40,42,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,148,150,152,153,154,156,159,165,166,167,169,170,171,175,176,177,180,182,183,184,185,187,188,194,195,198,203,204,205,206,214,215,219,220,223,232,233,236,238,239,240,241,242,243,245,246,247,251,252,255,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,339,341,344,350,357,364],define_charact:51,definit:[0,2,5,10,12,14,20,33,34,39,41,42,55,60,61,68,69,82,83,87,88,89,109,114,115,124,127,152,154,159,167,192,203,232,240,242,246,251,252,258,322,324,328,340,364],defit:51,deflist:312,degrad:127,deindent:344,del:[11,12,29,43,58,80,116,122,157,159,187,202,203,318],del_callback:[193,195],del_detail:187,del_pid:267,delai:[0,28,33,45,120,169,184,188,195,213,226,232,260,261,279,285,308,323,344,364],delaliaschan:43,delayed_import:308,delchanalia:43,delcom:[43,58],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,175,177,187,192,193,195,196,199,202,203,212,232,239,242,247,251,255,257,258,259,260,261,273,285,306,316,318,321,322,328,334,360],delete_attribut:316,delete_default:[31,153],delete_prototyp:251,delete_script:255,deletet:187,deliber:[11,42,129,344],delic:182,delimit:[91,167,322,364],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,364],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,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,180,181,185,187,193,205,226,235,242,247,251,261,267,287,290,296,298,308,318,319,326,328,329,344,364],deplet:219,deploi:[38,46,90,103,364],deploy:[36,38,79,90,100,106],depmsg:337,deprec:[27,51,94,109,141,142,252,262,321,328,337,344,364],deprecationwarn:266,depth:[16,17,36,95,114,122,124,166,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,43,57,58,60,69,74,80,84,85,89,102,109,111,116,120,134,153,156,159,164,166,170,180,182,187,202,203,212,215,220,226,235,247,256,265,322,324,326,327,328,357,364],desc_add_lamp_broken:226,desc_al:231,desc_closed_lid:226,desc_dead:231,desc_open_lid:226,descend:[119,357],descer:364,describ:[5,9,11,13,14,20,21,22,30,31,33,37,38,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,165,177,182,184,187,204,206,220,226,247,252,259,264,285,287,290,300,328,343,344,363],descripion:231,descript:[0,14,15,20,21,22,34,38,39,41,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,156,159,164,165,175,179,180,182,187,202,204,206,212,215,226,230,231,232,233,234,235,247,256,322,324,328,338,339,364],description_str:111,descriptor:316,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,364],desir:[1,4,27,28,29,49,57,58,59,91,108,112,114,115,119,121,123,133,137,159,175,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,49,74,77,85,89,91,109,111,119,121,159,209,212,213,217,218,219,220,221,232,233,246,247,252,324],destinations_set:246,destroi:[0,20,43,89,103,116,127,144,146,159,164,203,219,247],destroy:212,destroy_channel:164,destruct:[31,152],detach:106,detail:[2,5,9,12,15,19,20,22,26,30,33,34,37,38,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,153,154,159,175,180,187,203,204,206,218,233,235,239,252,260,269,270,306,308,318,321,326,344,360,364],detail_color:159,detailkei:[187,233],detect:[31,33,36,38,61,81,88,89,103,105,118,151,154,279],determ:317,determin:[2,4,13,15,20,27,29,31,33,34,39,44,49,50,51,52,63,73,80,82,83,85,87,93,102,109,110,116,123,136,137,144,152,153,154,156,164,166,167,170,175,179,205,206,213,215,217,218,219,220,221,232,239,242,247,251,291,316,317,318,321,326,329,337,344,347],detour:[21,83,308],dev:[1,23,37,55,57,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,48,54,55,56,58,60,61,63,64,68,70,71,72,76,77,80,86,88,90,91,93,96,97,99,104,106,108,109,111,114,123,126,131,133,135,136,137,138,139,154,157,158,164,165,166,169,175,192,193,198,209,239,247,252,313,318,319,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,364],dicecmdset:185,dicenum:185,dicetyp:185,dict:[0,11,13,25,31,46,51,53,88,107,109,119,127,144,146,152,154,159,166,170,175,182,184,187,188,192,195,198,205,206,209,210,215,219,221,233,247,249,250,251,252,259,261,264,265,267,272,276,277,278,280,285,287,290,295,296,307,308,310,317,322,323,325,327,328,329,339,344,357],dictat:[31,62,117],dictionari:[0,10,11,13,25,31,49,55,56,62,69,73,80,96,97,102,109,116,124,134,138,157,159,182,184,187,188,192,195,198,205,206,209,210,211,215,219,220,233,235,242,252,260,272,285,294,306,307,308,310,317,321,323,327,328,334,338,339,340,344,357,364],did:[2,21,22,29,57,60,64,68,91,95,96,104,111,123,131,144,179,247,260,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,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,150,152,153,156,159,166,168,169,171,175,180,184,185,186,195,196,199,204,206,213,215,217,218,219,220,221,234,235,245,247,249,252,255,256,261,265,269,291,296,298,316,318,322,324,328,337,340,344,364],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,43,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,347],direct:[0,3,8,10,11,12,20,22,31,44,45,49,51,58,70,74,88,90,100,109,111,116,118,119,121,128,137,138,139,159,170,194,210,235,242,245,259,267,328,330,337,341,344,364],directli:[2,5,8,13,14,20,21,23,27,29,30,33,37,38,40,42,44,46,50,51,55,56,58,59,61,62,64,72,80,88,89,90,93,95,96,100,102,104,109,110,111,114,116,118,119,123,125,128,131,137,138,147,154,170,176,179,180,181,185,198,206,215,220,221,226,233,234,238,242,245,246,247,251,255,256,273,278,287,290,295,298,300,306,316,318,322,324,328,329,342,344],director:[206,247],directori:[4,8,9,13,20,25,27,36,37,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,226,234,242,251,290,310,329,334,345,364],disableloc:290,disableremot:290,disadvantag:[58,90,116,221],disambigu:[41,72,119,154,247,318],disappear:103,discard:321,disconcert:41,disconnect:[2,11,12,40,41,55,57,60,92,97,105,107,110,112,116,123,128,137,144,156,159,164,167,169,175,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,364],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,dispel:126,displai:[0,17,22,25,30,31,33,38,42,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,144,154,156,159,164,166,169,170,171,179,180,182,186,187,188,190,193,195,199,206,215,226,230,232,233,234,235,247,251,252,265,267,284,302,305,310,318,319,326,327,328,329,330,338,339,340,343,344,345,357,364],display:261,display_all_channel:164,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_subbed_channel:164,display_titl:180,dispos:[111,203],disput:116,disregard:33,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],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,101,103,104,107,112,113,120,124,125,127,128,134,136,137,139,144,147,148,154,171,175,177,186,239,245,246,251,255,256,266,267,273,274,287,293,295,296,303,309,310,311,312,316,318,319,322,325,329,333,334,335,340,342,344,346,349,352,357,364],django_admin:360,django_nyt:4,djangonytconfig:4,djangoproject:[23,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_search:166,do_task:[169,260,344],do_task_act:169,do_unpickl:325,do_update_attribut:316,do_xterm256:321,doabl:[14,138],doc:[16,17,23,25,33,45,51,53,60,64,68,70,79,86,95,96,109,110,125,129,130,136,139,141,159,169,204,234,247,278,344,357,363,364],docker:[7,63,79,90,139,364],dockerfil:100,dockerhub:100,docstr:[1,5,25,41,68,74,96,154,159,170,180,193,205,206,215,226,233,234,298,328,364],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,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,364],dodg:218,doe:[2,4,5,9,11,20,21,23,24,25,26,29,31,33,37,38,39,40,41,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,167,169,170,171,181,182,183,186,187,202,203,215,217,218,219,220,221,232,233,234,235,247,251,252,259,260,266,267,271,272,273,276,279,287,288,294,316,318,323,328,337,340,344,349,357],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,164,175,177,181,187,194,195,206,219,242,247,267,280,287,291,316,321,328,339,344],doesnotexist:[144,146,148,175,177,179,182,184,187,189,195,203,204,205,206,212,213,214,217,218,219,220,221,223,226,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,175,179,182,194,206,215,217,218,219,220,221,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,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,171,175,180,185,194,198,205,206,218,219,220,226,233,234,235,242,246,247,251,252,261,272,279,284,285,290,292,299,306,313,318,321,322,328,334,337,340,344,357,364],donald:93,donat:[70,90,364],done:[1,4,6,9,10,11,20,21,22,25,29,30,31,33,34,36,37,38,39,41,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,164,170,177,179,185,205,221,235,242,246,247,259,260,261,267,271,280,284,286,288,292,296,302,305,306,308,313,316,321,322,329,334,344],donoth:259,dont:289,doom:252,door:[0,20,22,27,49,61,80,85,89,103,159,212],doorwai:212,dot:[22,119,153,159,322,344],dotal:[321,343],dotpath:344,doubl:[22,38,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,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,164,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,364],download:[5,9,23,26,63,64,72,75,79,90,100,101,128,130,131,139],downtim:[29,103,331],downward:156,dozen:[25,55,108],drag:137,draggabl:138,dragon:56,dramat:[11,61,251,252],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,43,55,57,58,60,69,70,73,80,85,86,87,88,89,90,117,118,121,128,137,138,159,165,171,182,203,214,218,221,226,247,276,318,322,344],drop_whitespac:330,dropdown:[106,138],droplet:67,dropper:[218,221,247],drum:90,dry:67,dtobj:344,duck:[27,95],duckclient:24,due:[5,6,12,22,29,31,33,40,58,60,62,63,64,76,90,91,93,95,96,104,107,125,126,140,153,169,246,247,269,305,308,321,337],duh:108,dull:[20,26,111],dumb:[20,138,308,321],dummi:[9,33,54,59,80,93,127,206,242,267,272,285,298,299,306,364],dummycli:298,dummyfactori:298,dummyrunn:[141,142,262,267,285,297,299,301,364],dummyrunner_act:298,dummyrunner_actions_modul:298,dummyrunner_echo_respons:298,dummyrunner_set:[93,141,142,262,267,297,364],dummyrunner_settings_modul:93,dummyrunnercmdset:298,dummysess:308,dump:[34,209,276],dungeon:[55,77,112],dupic:31,duplic:[31,37,96,152,159,166,261,318,337],durat:[10,28,132,139,169,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,203,231,233,234,242,260,276,286,322,324,328,337,357,364],duti:64,dwarf:111,dying:[217,218,219,220,221],dynam:[2,3,34,38,68,82,86,90,111,114,115,124,133,137,138,139,144,148,154,166,169,170,177,188,206,215,217,218,219,220,221,239,246,247,251,256,261,316,318,319,324,326,328,335,338,344,347,364],dyndns_system:90,e_char_typeclass:120,each:[0,1,2,4,5,10,11,13,19,20,22,27,29,31,33,34,36,38,39,40,42,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,164,166,168,170,175,179,181,182,183,187,188,203,205,206,215,217,219,220,221,226,228,235,239,242,246,247,250,251,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,344,347],eaoiui:205,earli:[36,138,217,218,219,220,221,269,364],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,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,182,188,215,328,334],easier:[1,4,10,11,12,22,25,37,39,47,51,55,56,57,58,61,62,69,73,86,90,91,95,96,102,109,126,136,159,205,215,217,218,219,220,221,232,309,316,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,164,175,177,179,180,182,188,190,194,205,212,215,217,218,219,220,221,234,238,239,261,322,328,339],east:[25,44,49,111,159,233],east_exit:233,east_west:111,eastern:[62,111],eastward:233,echo1:29,echo2:29,echo3:29,echo:[5,10,12,20,26,27,28,29,33,36,38,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,170,182,185,206,231,232,233,247,265,272,287,290,326,328,344,364],echotest:5,econom:[55,79,86],economi:[61,73,102,108,120,179],ecosystem:100,ect:96,edg:[16,27,131,170,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,202,203,242,247,249,251,252,316,326,357,364],edit_callback:[193,195],edit_handl:159,editcmd:22,editnpc:364,editor:[0,5,9,15,21,22,33,38,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,364],editor_command_group:326,editorcmdset:326,editsheet:58,edu:124,effect:[6,10,11,14,27,28,29,31,35,38,39,56,57,58,61,73,87,95,104,107,110,111,114,115,116,117,124,126,127,128,129,138,140,144,152,153,159,168,175,185,195,218,219,220,231,233,245,247,253,256,280,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],egg:75,egg_info:63,egi:269,egiven:245,either:[0,4,9,12,13,17,23,27,29,31,33,34,37,39,41,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,159,164,176,180,192,198,199,205,206,212,215,217,220,221,226,242,247,250,252,256,258,259,261,265,276,288,292,299,317,318,319,328,330,337,339,341,344],elabor:[4,22,38,85,91,123],electr:[90,124],eleg:37,element:[16,17,22,41,51,55,91,114,151,156,166,170,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],elimit:344,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,164,170,179,182,188,204,217,218,219,220,221,235,246,296,318,328,344],elsennsometh:170,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,147,186,324,338,344,345,357],email_login:[141,142,178,364],emailaddress:344,emailfield:357,emb:[38,58,109,114,187,252],embark:121,embed:[109,114,125,138,166,175,250,327,344],emerg:[76,80,103],emi:205,emit:[25,34,108,137,144,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,144,165,179,205,206,316],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,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,164,170,180,190,192,206,247,251,252,265,272,276,298,299,316,322,324,328,330,341,344],empty_color:190,empty_permit:357,empty_threadpool:312,emptyset:31,emul:[64,75,105,123,129,169,364],enabl:[8,24,71,100,103,106,114,126,134,137,144,188,206,290,345],enable_recog:206,enableloc:290,enableremot:290,encamp:46,encapsul:338,encarnia:79,encas:326,enclos:[35,50,171,186],encod:[7,27,43,58,111,139,171,278,291,295,296,321,340,344,364],encode_gmcp:291,encode_msdp:291,encoded_text:344,encompass:27,encount:[60,95,153,245,345],encourag:[3,22,24,39,70,91],encrypt:[7,8,83,103,164,287,288,292,364],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,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,179,181,182,185,190,202,206,214,215,217,218,219,220,221,233,238,271,278,279,287,290,291,298,301,306,310,312,317,321,322,324,328,329,330,337,344,364],end_convers:51,end_turn:116,endblock:[3,69,133,134],endclr:114,endfor:[69,133,134],endhour:25,endif:[69,133,134],endlessli:103,endpoint:103,endsep:344,endswith:321,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],enforce_s:330,engag:[55,221,231],engin:[22,23,33,36,55,56,64,68,73,77,79,89,102,103,104,122,127,131,136,140,150,153,166,168,169,210,233,238,267,278,284,287,290,295,305,307,322,324,364],english:[15,76,79,97,113,139,171],enhanc:[59,81,114,209,321],enigmat:20,enjoi:[61,63,91,106,364],enough:[4,6,21,29,38,39,41,42,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,170,204,205,226,235,328,329,330],ensdep:344,ensur:[49,69,100,106,117,126,127,215,310,342],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,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,166,167,169,179,180,182,187,188,198,215,217,218,219,220,221,231,233,235,241,247,252,256,265,306,328,347,357,364],enter_guild:51,enter_nam:51,enter_wild:235,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,242,247,251,252,318,319,322,328,330,334,344,364],entireti:[51,73,188,328],entit:324,entiti:[6,11,27,34,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,164,169,175,176,177,206,212,239,241,245,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,47,48,51,54,58,59,63,69,70,72,77,80,83,91,95,107,119,121,131,138,139,144,154,166,167,170,190,204,215,217,218,219,220,221,236,238,239,242,247,261,286,299,310,316,322,324,326,328,330,337,338,341,344,345,360,364],entriest: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,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,164,187,206,217,218,219,220,221,247,344],equip:[14,57,114,182,217,218,220,221],equival:[10,11,13,40,47,63,87,88,101,103,104,110,114,128,143,147,159,238,245,255,285,291,316,344],eras:[9,95,221],err:[58,276,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,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,164,171,175,195,204,206,215,232,234,242,245,247,250,251,259,260,264,266,267,269,271,272,276,290,298,318,321,322,324,327,328,337,340,344,345,364],error_check_python_modul:267,error_class:357,error_cmd:44,error_msg:310,errorlist:357,errorlog:8,escal:[2,19,80,156,241,319],escap:[69,114,165,169,234,321,343,357],escript:[22,180],esom:166,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,170],establish:[33,61,73,105,144,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,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,164,167,169,171,179,183,184,188,190,203,205,206,212,218,220,226,234,247,251,252,285,287,290,294,295,296,306,307,316,318,321,322,324,325,326,327,328,337,344,347],etern:51,ev_channel:146,eval:[109,179,344,364],evalstr:242,evalu:[33,38,51,119,151,179,242,328],evbot:[164,308],evcast:79,evcel:[327,330],evcolor:79,evcolumn:330,eve:344,eveditor:[22,43,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,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,144,152,154,157,164,166,175,182,184,187,188,205,217,218,219,220,221,233,234,247,251,252,290,328,330,334,344],evenli:[27,184,344],evenn:100,evenna:9,evenni:4,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,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_channel:[65,72,98,164],evennia_dir:344,evennia_error:8,evennia_launch:[106,141,142,262,265,364],evennia_logo:136,evennia_patreon_100x100:70,evennia_runn:106,evennia_vers:267,evennia_websocket_webcli:295,evennia_wsgi_apach:8,evenniaform:357,evenniagameindexcli:269,evenniagameindexservic:270,evennialogfil:337,evenniapasswordvalid:311,evenniareverseproxyresourc:312,evenniatest:[170,196,211,228,293,342,360,364],evenniausernameavailabilityvalid:[144,311],evenniawebtest:360,event:[51,64,73,103,107,137,139,141,146,179,184,194,195,196,198,206,209,226,256,259,309,364],event_nam:[194,198],eventdict:337,eventfunc:[0,141,142,178,191,195,364],eventhandl:195,eventi:[154,180,234],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,185,205,206,226,233,242,247,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,261,278,279,285,316,328],everi:[0,4,6,11,13,20,21,25,26,27,28,31,33,36,37,38,39,41,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,170,182,188,195,205,206,215,217,218,219,220,221,223,230,235,247,252,259,261,272,289,299,305,314,316,318,328,329,330,344,364],everror:195,everybodi:41,everyon:[19,21,24,33,34,51,58,61,64,71,73,77,78,80,87,98,102,110,112,114,116,121,123,127,128,131,132,159,164,165,166,185,217,218,219,220,221,285],everyth:[9,11,19,21,26,28,31,36,38,42,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,169,170,171,181,186,233,241,246,256,271,298,306,316,318,322,328,364],everywher:[9,56],evform:[27,45,53,141,142,320,364],evgam:164,evgamedir:38,evict:310,evid:72,evil:[14,93,226,252],evilus:164,evmenu:[22,27,33,45,53,58,85,124,139,141,142,169,170,180,188,214,215,230,249,320,329,364],evmenucmdset:328,evmenuerror:328,evmenugotoabortmessag:328,evmenugotomessag:328,evmor:[43,45,139,141,142,251,320,364],evtabl:[27,33,45,49,53,82,111,141,142,154,164,188,251,320,327,329,344,364],exact:[33,41,51,80,93,95,96,119,129,138,144,147,151,159,164,168,176,206,221,238,245,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,164,206,245,247,267,318,341],exam:[43,159],examin:[2,11,12,20,22,33,43,58,60,73,80,83,85,91,96,106,115,122,123,131,137,140,144,159,170,179,226,232,233,299,316,364],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,169,170,175,177,179,180,182,184,185,187,188,189,190,199,203,204,205,206,209,212,213,214,215,217,218,219,220,221,223,226,231,233,234,235,239,242,246,247,252,256,259,261,267,272,287,290,291,296,299,308,312,316,318,319,320,321,323,327,328,329,330,331,335,337,338,341,342,344,345,357,363,364],example_batch_cod:[13,141,142,178,222,364],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,198,202,203,204,205,206,212,213,214,217,218,219,220,221,223,226,231,232,233,234,235,239,241,242,245,246,247,251,256,259,260,267,272,274,276,288,290,292,296,300,312,316,319,321,324,327,328,330,331,335,337,339,344],excepteur:52,excerpt:50,excess:[22,80,109,167,246,322,344],exchang:[13,90,102,179,325],excit:[20,35,54],exclam:21,exclud:[64,119,120,123,175,182,203,233,245,246,247,326,328],exclude_cov:182,excluded_typeclass_path:159,excludeobj:245,exclus:[51,61,80,83,226,247,256,317,328,344],exclusiv:324,exe:[63,106,128],exec:[51,85,109,252,328,344],exec_kwarg:328,exec_str:302,execcgi:8,execut:[0,9,10,12,13,14,19,22,25,28,29,31,33,36,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,167,169,170,177,180,195,206,215,226,233,234,239,241,242,246,247,252,253,256,260,264,272,274,277,278,284,287,290,295,298,299,302,305,306,316,318,319,322,328,329,335,344,347,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,364],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,146,152,153,154,159,164,166,167,169,180,181,187,192,194,195,198,199,202,203,205,206,213,220,232,235,241,242,246,247,249,251,252,260,267,271,273,287,288,290,292,300,305,306,308,316,317,318,319,322,324,326,327,328,330,337,339,344,364],existen:306,exit:[20,21,22,23,31,39,41,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,212,213,215,221,226,231,232,233,234,235,241,245,246,247,252,271,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:159,exit_to_ther: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,364],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,95,96,97,107,113,114,115,122,123,124,126,127,128,134,138,159,167,170,180,192,194,204,235,241,247,251,252,265,267,318,328,329,334,344,349],expected1:170,expected2:170,expected_input:170,expected_return:127,expedit:96,expens:[90,115,119,245,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:[74,169],explain:[20,22,33,39,43,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,364],explicit:[0,1,22,31,38,40,48,69,71,88,91,104,129,136,204,267,289,316,328],explicitli:[4,9,21,30,31,58,59,63,68,80,83,84,85,86,87,96,97,109,112,114,115,124,125,153,154,159,166,170,204,247,252,261,316,318,321,324,340],exploit:[319,321,344],explor:[0,2,10,20,42,59,63,69,83,95,104,111,116,122,125,169,364],expos:[103,134,226],express:[3,33,38,51,56,80,109,119,127,134,135,140,159,184,204,221,316,344,347],ext:51,extend:[1,3,5,27,34,38,39,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,246,247,318,338,357],extended_room:[141,142,178,364],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,40,41,54,55,57,63,65,72,90,98,106,108,109,111,124,139,141,153,164,170,172,177,209,251,265,267,269,324,364],external_discord_hello:272,external_receiv:177,extra:[1,6,8,14,16,21,23,25,29,31,33,37,38,41,51,57,58,80,89,90,93,95,96,107,114,119,123,125,126,127,134,136,137,138,144,148,154,166,170,175,179,187,189,202,206,226,233,247,250,251,261,264,317,321,322,326,328,329,330,337,338,339,343,344],extra_environ:322,extra_opt:328,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,extral:177,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],f6d4ca9b2b22:100,face:[90,103,122,171,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],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,144,153,164,168,175,185,206,212,226,232,241,242,247,251,264,265,267,271,278,279,289,310,316,318,329,338,340,344],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,226,233,344,357],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,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,148,150,151,152,153,154,159,164,166,170,175,177,179,180,182,183,184,185,188,192,195,199,205,206,212,215,217,218,219,220,221,230,234,235,238,239,241,242,245,246,247,249,251,252,255,256,257,259,260,261,264,267,269,273,276,277,284,285,286,287,290,296,298,304,305,306,308,310,312,316,317,318,319,321,322,324,326,328,329,330,331,334,339,340,341,343,344,345,357],falsestr:188,falsi:175,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,364],famou:[52,326],fan:79,fanci:[15,17,36,73,138,182],fanclub:119,fantasi:205,faq:[38,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,269,294,316,326,334],fashion:111,fast:[11,15,23,26,27,29,56,62,64,82,89,108,115,131,157,299],faster:[23,62,93,119,177,179,316,364],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,38,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,364],februari:62,fed:[10,33,80,285,316,325,327],fedora:[8,63,67,131],feed:[7,15,49,51,55,73,98,109,128,139,146,164,269,286,287,318,329],feedback:[37,42,61,70,89,118,176,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,226,233,364],feend78:199,feint:116,felin:27,fellow:327,felt:[102,132],femal:189,fetch:[11,63,90,100,128,131,133,316,329],few:[0,4,6,9,10,11,15,17,20,23,31,33,34,36,38,41,42,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,226,246,282,291,310,321,330,344],fewer:[108,308,317],fg_colormap:343,fgstart:343,fgstop:343,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,148,177,188,192,206,221,231,239,241,245,246,247,251,252,256,257,261,274,316,317,318,319,327,335,340,341,357,364],field_class:357,field_or_argnam:74,field_ord:357,fieldevmenu:188,fieldfil:[141,142,178,364],fieldnam:[58,84,188,257,318,334,357],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,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,43,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,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,158,166,175,180,182,183,184,186,205,209,234,235,252,266,267,287,288,291,292,299,300,301,305,312,313,320,327,328,337,340,341,344,347,350,357,364],file_end:[322,344],file_help_entry_modul:166,fileentri:166,filehelpentri:166,filelogobserv:337,filenam:[27,60,131,175,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,133,135,188,316,321,327,328,329,330,344,364],fill_char:330,fill_color:190,fillabl:188,fillchar:[114,321,344],filo:344,filter:[31,34,39,69,86,106,114,119,120,125,133,138,152,157,180,187,206,246,247,344],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,43,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,166,184,187,206,212,215,233,234,247,251,252,255,258,267,281,316,317,321,323,341,344,364],find_apropo:238,find_topicmatch:238,find_topics_with_categori:238,find_topicsuggest:238,fine:[12,15,20,33,38,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,169,171,179,187,203,232,233,247,267,279,290,305,312,323,328,344,347],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,144,146,150,195,219,220,247,252,267,276,278,295,328,329,334],firebreath:58,firefox:72,firestorm:28,firestorm_lastcast:28,firewal:[67,90,364],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,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,166,167,170,171,175,177,179,180,182,183,184,186,187,204,205,206,212,214,217,218,219,220,221,223,226,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,343,344,363,364],first_lin:123,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,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,364],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,51,58,61,74,76,83,86,108,115,123,131,144,150,152,154,159,226,231,241,242,247,267,274,278,287,290,295,306,326,328,344],flame:[28,220],flash:[14,226],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,51,57,59,73,88,90,102,108,109,111,116,134,138,148,159,179,180,188,215,291,316,328,344,364],flick:345,flicker:226,flip:[43,51,81,171],flood:[27,50],floor:[0,82,206],flourish:316,flow:[17,36,40,55,61,83,86,115,131,137,324,328],flower:[12,20,61,87,89,119,159],flowerpot:[12,57],fluent:79,fluid:[16,17],flurri:206,flush:[23,33,111,128,169,316,318,334],flush_cach:334,flush_cached_inst:334,flush_from_cach:334,flush_instance_cach:334,flusher:334,flushmem:169,fly:[3,12,21,27,31,33,34,51,55,64,85,102,109,119,138,144,165,167,177,239,247,251,261,274,285,288,292,316,322,331,344],fnmatch:316,focu:[4,61,70,116,124],focus:[56,57,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,217,218,219,220,221,267,364],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,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,166,167,170,175,177,180,182,183,185,189,195,199,206,215,219,220,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,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,159,215,267,316,328,342],foo_bar:88,foobarfoo:12,fooerror:328,foolish:226,footer:[69,133,154,247,329],footnot:[15,38],footprint: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,337,344],force_init:247,force_repeat:[102,116],force_str:340,forcibl:[102,258],fore:305,forebod:187,foreground:[42,100,114,126,183,267,321,364],foreign:125,foreignkei:[148,246,256,318,335],forens:210,forest:[13,111,112,140,187],forest_meadow:112,forest_room:112,forestobj:140,forev:[61,102],forget:[3,9,10,13,25,27,33,41,54,62,72,82,85,86,95,96,100,123,131,206,322,364],forgo:232,forgotten:[28,49,77,85],fork:[9,79,364],forloop:69,form:[11,13,27,31,33,34,38,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,146,151,153,154,157,159,164,167,170,175,176,177,179,188,189,205,206,210,239,241,242,245,247,251,252,257,259,261,265,285,287,291,295,306,308,316,317,318,321,322,324,325,326,327,328,330,331,337,340,341,344,345,346,356,364],form_char:327,form_template_to_dict:188,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,170,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,337,339,344,345,363,364],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_index:166,format_messag:175,format_output:159,format_send:175,format_t:344,format_text:180,format_usag:234,formatt:[188,251,328,329],formcallback:188,formchar:[58,327],formdata:188,former:[17,23,64,126,328],formfield:340,formhelptext:188,formstr:58,formtempl:188,formul:134,forth:[27,131,159,220],fortress:111,fortun:[4,33,39,48,69,122,128],forum:[1,9,37,48,55,57,63,90,98,128,364],forward:[13,14,20,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,49,51,55,57,58,59,63,68,73,74,76,78,80,83,85,89,90,91,97,103,104,109,112,116,119,122,123,125,127,128,134,135,137,138,141,144,147,149,150,151,152,154,159,164,167,168,171,175,179,180,192,194,195,206,233,239,242,245,247,250,251,252,255,258,261,266,267,273,282,285,296,306,308,316,317,318,321,322,323,324,328,330,334,339,341,344,347],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,124,133,136,137,170,217,220,340,364],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,63,70,72,79,90,146,164,308],freepik:79,freetext:[176,341],freez:[29,33,42,194],frequenc:205,frequent:[91,180],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,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,147,148,149,150,151,152,153,154,156,157,158,159,164,165,166,167,168,169,170,171,175,176,177,179,180,181,182,183,184,185,186,187,188,189,194,195,198,199,202,203,204,205,206,209,210,211,212,213,215,217,218,219,220,221,226,231,232,233,234,235,238,239,241,242,243,245,246,247,251,252,255,256,257,258,260,261,264,267,271,272,273,274,276,277,278,279,280,284,285,286,287,290,295,296,298,299,301,305,306,307,308,310,312,313,314,316,317,318,319,320,321,322,323,324,325,326,327,329,330,331,334,335,337,338,340,341,343,344,345,347,357,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,364],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,166,168,169,170,175,179,180,185,187,190,202,205,206,215,220,230,234,242,245,252,257,279,285,298,308,309,316,318,322,326,328,330,344,364],full_justifi:109,full_nam:87,full_result:185,fullchain:67,fuller:58,fullfil:245,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],fun:[20,26,61,79,81,111,136],func1:[159,242,299],func2:[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,179,180,181,182,184,185,186,187,188,189,193,199,202,203,206,212,213,214,215,217,218,219,220,221,226,231,232,233,234,241,242,247,278,298,299,303,312,326,328,329,331,344,364],func_test_cmd_task:170,funciton:220,funcnam:[74,114,242,250,251,261,328,344],funcpars:[250,308,344],funcparser_cal:250,funcparser_outgoing_messages_modul:308,function_nam:169,functioncal:276,functionnam:276,functionpars:251,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,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,364],furthermor:[37,38,124,126],fuss:100,futur:[9,10,11,20,23,38,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,147,164,238,245,341,344],fuzzy_import_from_modul:344,gadget:70,gag:24,gain:[11,29,61,73,93,154,169,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,146,147,148,150,152,153,154,156,157,158,159,163,164,165,166,169,170,171,172,175,176,177,178,179,180,181,182,184,185,186,187,188,190,193,194,195,196,199,204,205,206,213,215,217,218,219,220,221,226,229,230,233,234,239,243,246,247,255,256,258,259,262,267,269,270,271,272,278,279,284,286,287,290,291,298,299,300,305,306,308,317,318,319,322,323,324,326,327,331,334,337,344,350,363,364],game_dir:[337,344],game_epoch:[27,331],game_index_cli:[141,142,262,364],game_index_en:54,game_index_list:54,game_nam:54,game_slogan:9,game_statu:54,game_templ:47,game_websit:54,gamedir:[51,100,109,267,313,364],gamedirnam:58,gameindexcli:270,gameplai:[90,364],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,gap:364,garbag:316,garden:79,garment:182,gatewai:[110,296],gather:[24,33,48,83,119,127,132,136,150,151,233,265,269,324,341],gave:[5,21,60,64,91,102,126],gbg:321,gcc:63,gcreat:159,gear:[90,106,136,146,153,171,186],gemer:204,gen:17,gender:189,gendercharact:189,gendersub:[141,142,178,364],gener:[0,1,5,9,10,11,12,20,23,25,29,31,33,34,36,37,38,43,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,147,149,154,155,156,159,166,167,168,170,171,175,179,180,181,182,185,186,187,188,189,195,199,202,204,205,206,209,210,212,213,214,215,217,218,219,220,221,226,230,231,233,234,239,242,245,247,249,251,252,255,278,285,287,290,291,295,298,306,307,308,312,316,319,320,321,323,324,326,329,330,331,337,339,340,344,349,357,364],general_context:[141,142,346,348,364],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,17,21,22,23,25,26,28,29,30,31,33,38,39,40,41,42,43,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,147,148,152,153,154,156,157,159,160,164,165,166,171,175,176,177,180,182,185,192,194,195,198,199,203,204,206,213,214,215,217,218,219,220,221,223,226,232,233,235,238,239,242,245,246,247,249,251,252,255,256,258,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,337,338,339,341,344,357,363,364],get_abl:60,get_absolute_url:[134,175,239,318],get_account:[242,306],get_account_from_email:147,get_account_from_nam:147,get_account_from_uid:147,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_cmdset:344,get_all_mail:199,get_all_puppet:144,get_all_script:255,get_all_scripts_on_obj:255,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_browserstr:296,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_channel_alias:164,get_channel_histori:164,get_charact:306,get_client_opt:[272,364],get_client_s:306,get_client_sess:[295,296],get_client_sessid:296,get_command_info:[154,167],get_connected_account:147,get_cont:245,get_content_nam:247,get_damag:[217,218,219,220,221],get_db_prep_lookup:340,get_db_prep_valu:340,get_dbref_rang:[147,245,255,317],get_def:260,get_default:340,get_defens:[217,218,219,220,221],get_display_nam:[22,42,46,58,144,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,247,318],get_famili:[119,125],get_game_dir_path:344,get_height:330,get_help:[33,68,69,154,170,193,234,328],get_help_text:311,get_id:[133,245,255,260,317],get_info_dict:[284,305],get_input:[170,328,364],get_inputfunc:[88,272,291,308,364],get_internal_typ:340,get_kwarg:360,get_location_nam:235,get_log_filenam:175,get_mass:82,get_message_by_id: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,239,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_with_account:[245,341],get_objs_at_coordin:235,get_objs_with_attr:245,get_objs_with_attr_match:245,get_objs_with_attr_valu:245,get_objs_with_db_properti:245,get_objs_with_db_property_match:245,get_objs_with_db_property_valu:245,get_objs_with_key_and_typeclass:245,get_objs_with_key_or_alia:245,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,239,246,256,316,318],get_puppet:[2,144,306],get_puppet_or_account:306,get_rang:221,get_recently_connected_account:147,get_recently_created_account:147,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_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:[88,272,291,364],get_vari:[192,195],get_visible_cont:247,get_width:330,get_worn_cloth:182,getattr:84,getchild:312,getclientaddress:[40,287],getel:137,getenv:[267,277],getgl:137,getinput:328,getkeypair:287,getloadavg:75,getpeer:287,getpid:344,getsizof:334,getsslcontext:[288,292],getston:33,getter:[148,177,182,206,218,221,246,247,274,316],gettext:76,gfg:321,ghostli:233,giant:[21,124],gid:[45,100,299],gidcount:298,gif:70,gift:69,girl:247,gist:[205,344],git:[9,23,25,36,38,45,47,63,75,76,79,86,90,100,108,124,128,130,364],github:[9,25,37,38,41,45,57,63,70,75,76,79,95,96,98,104,130,131,138,180,295,312,344,364],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,43,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,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,144,150,152,153,156,159,164,165,167,175,176,180,181,182,187,204,205,214,215,217,218,219,220,221,226,233,235,245,247,255,256,271,293,299,306,312,316,318,321,328,330,341,342,344,363,364],given:[0,2,4,10,11,12,13,14,20,21,22,25,27,31,33,34,38,39,42,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,226,232,233,234,241,242,245,247,249,251,252,255,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,337,339,340,341,342,344,347,349,364],giver:[218,221,247],glad:91,glanc:[22,27,31,33,39,48,58,61,91,96,180,206],glance_exit:22,glass:[203,226],glob:[51,165,328],global:[13,22,33,34,35,45,51,56,61,64,67,74,85,89,100,104,105,108,109,114,115,120,125,131,132,137,138,140,159,175,187,195,204,206,212,245,247,252,253,255,256,260,264,267,272,274,277,298,299,322,323,324,328,331,341,342,344,350,364],global_script:[102,141,323],global_search:[13,22,27,58,91,144,206,247,317],globalscript:43,globalscriptcontain:323,globalth:342,globe:[90,136],gloss:61,glossari:[63,139,364],glow:111,glu:92,glyph:276,gmcp:[55,74,83,291,364],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:[38,61,76,79,91,102,103,122,124,205],goals_of_input_valid:357,goblin:[51,109,159,252],goblin_arch:252,goblin_archwizard:252,goblin_shaman:109,goblin_wizard:252,goblinwieldingclub:109,god:[20,80],godhood:364,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],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,206,217,218,219,220,221,226,230,233,235,247,264,269,321,328],goings:269,gold:[51,82,85,109,322],gold_valu:85,golden:138,goldenlayout:[138,364],goldenlayout_config:[137,138],goldenlayout_default_config:[137,138],gone:[5,12,77,80,85,100,102,131],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,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,299,328],goodby:287,goodgui:242,googl:[38,75,79,90,164,330,364],googleusercont:70,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,232],gracefulli:[26,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,206],grand:11,grant:[19,23,80,131,177,217,218,219,220,221,241,242,251,316,364],granular:221,grapevin:[7,139,141,142,146,164,262,275,364],grapevine2chan:[43,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,80,109,114,126,131,159,169,232,321],greenskin:252,greet:[9,35,46,95,104,105,117],greetjack:87,greg:79,grei:[109,126,321],grenad:89,grep:[75,131],greyscal:[114,321],greyskinnedgoblin:109,griatch:[21,70,86,119,179,181,183,184,185,186,187,189,199,202,205,206,212,213,214,230,232,327,334,340,343,364],grid:[7,16,111,123,139,166,221,235,344,364],grief:12,griefer:134,grin:[33,41,316],grip:38,gritti:33,ground:[20,21,55,111],group:[4,9,10,12,19,21,26,33,37,41,43,46,55,64,68,70,79,91,100,102,109,112,125,127,139,140,148,155,159,165,166,176,187,203,205,232,233,247,251,252,276,299,316,319,321,324,364],groupd:316,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:[159,252],gstart:159,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,364],guidelin:[37,38,79],guild:[79,86,112,118,164],guild_memb:51,gun:[21,77],guru:55,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,154,158,170,182,232,252,256,267,318,322,329,357],hadn:[61,62,131],half:[108,138,239],hall:49,hallwai:49,halt:[102,111],hand:[1,15,37,40,51,55,56,57,58,61,70,73,87,89,96,105,108,119,134,154,159,165,167,169,179],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,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,179,186,187,195,198,206,210,212,214,215,217,218,219,220,221,226,232,233,234,236,246,247,250,251,252,256,257,260,264,267,271,272,276,277,279,280,287,290,291,294,296,298,307,308,316,318,321,322,324,325,326,328,329,330,331,334,343,344,351,364],handle_egd_respons:269,handle_eof:287,handle_error:[164,195,260],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,177,179,192,195,196,198,206,231,235,241,242,246,247,252,257,258,260,261,272,284,285,305,308,314,316,318,319,323,324,327,328,338,339,344,364],handlertyp:319,handshak:[24,52,83,277,283,285,290],handshake_don:290,hang:[3,38,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,213,217,218,219,220,221,231,233,235,247,252,260,269,276,279,299,304,306,307,308,318,328,329,334,337,344],happend:252,happi:[13,119,328],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,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,38,39,40,41,42,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,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,146,151,152,153,154,156,158,159,164,166,167,169,170,171,175,176,177,179,180,184,185,186,187,188,195,199,203,204,206,215,217,218,219,220,221,223,226,231,232,233,234,235,239,241,242,245,246,247,251,252,256,259,260,261,267,269,272,276,279,281,285,289,294,295,299,305,306,307,308,310,316,317,318,319,324,326,327,328,330,334,337,338,341,344,357,360],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,316],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,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,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,198,202,204,205,206,209,210,215,217,218,219,220,221,226,233,234,238,239,241,245,246,247,250,251,252,253,256,259,260,261,272,277,280,281,285,287,290,291,305,306,307,308,313,314,316,317,318,319,321,322,323,324,325,327,328,329,330,337,340,341,342,344,345,350,357,363,364],haven:[4,22,29,42,62,67,77,109,111,117,118,120,127,128,133,134,138,310],head:[20,21,31,46,69,76,77,96,106,119,121,123,138,139,364],headach:[61,138],header:[9,13,14,27,34,37,38,63,89,95,103,129,138,154,166,177,199,206,247,322,324,329,330],header_color:159,header_line_char:330,headi:330,heading1:[38,330],heading2:[38,330],heading3:38,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,364],hear:[29,46,61,170],heard:[111,122],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,46,51,72,74,83,87,88,91,96,105,108,123,129,164,165,170,175,206,272,321,364],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,43,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,164,167,169,170,171,179,184,186,188,192,193,195,199,205,209,217,218,219,220,221,226,230,233,234,245,249,260,265,267,269,270,278,285,287,288,290,292,295,296,298,299,316,317,321,324,325,326,328,329,339,340,341,342,351,357,360,363,364],help_categori:[5,22,33,41,58,60,68,69,71,85,116,123,154,156,157,158,159,164,165,166,167,168,169,170,171,179,180,181,182,185,186,187,188,189,193,199,202,203,206,212,213,214,215,217,218,219,220,221,226,231,232,233,234,238,239,247,298,326,328,329,341],help_cateogori:326,help_entri:326,help_kei:159,help_messag:166,help_mor:166,help_system:69,help_text:[166,195,357],helpact:234,helparg:170,helpdetailtest:360,helpentri:[69,80,166,238,239,324],helpentry_set:319,helpentrymanag:[238,239],helper:[19,41,51,58,67,80,109,119,141,144,153,156,159,164,166,176,180,184,205,247,251,252,264,276,277,296,308,322,328,329,337,342,343,344],helpfil:166,helplisttest:360,helplockeddetailtest:360,helptext:[51,249,328],helptext_formatt:[51,249,328],henc:[0,22,46,76,95,106,233,234,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,170,171,177,179,180,181,182,184,185,186,194,195,204,205,206,213,217,218,219,220,223,231,232,233,234,235,239,242,245,247,251,252,267,269,276,278,284,285,287,290,299,305,306,308,314,316,318,321,324,328,330,334,347,364],hesit:[22,39],hfill_char:330,hidden:[11,49,61,64,96,122,131,137,166,177,182,185,234],hide:[9,11,20,31,33,34,41,61,73,80,96,111,138,166,177,185,206,232],hide_from:[34,177],hide_from_accounts_set:148,hide_from_objects_set:246,hieararci:241,hierarach:319,hierarch:[2,19,80,156,241,319],hierarchi:[4,19,22,43,61,66,69,80,119,139,165,182,241,344,364],high:[4,8,20,31,55,63,80,122,152,220,247,309,319],higher:[7,19,25,31,41,44,51,56,58,62,63,73,80,90,105,108,119,123,128,144,152,156,159,169,205,217,218,219,220,221,233,241,269,319,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,38,55,63,79,93,95,109,110,123,124,128,136,139,184,313,364],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,164,175,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,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,43,63,64,66,70,79,89,90,103,109,131,133,139,153,159,165,231,245,246,247,252,324,344],home_loc:159,homepag:[27,63,79,90,93],homes_set:246,homogen:[27,251,252,256],homogenize_prototyp:251,honor:206,hood:[20,33,51,57,60,61,64,86,87,119,122,125,128,206,234],hook:[2,25,30,33,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,164,165,167,169,170,171,175,177,182,187,195,203,204,206,210,217,218,219,220,221,228,230,231,232,233,235,247,256,259,261,271,278,290,293,295,298,303,305,306,307,309,318,326,329,334,335,338,342,344,357,364],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,364],host_os_i:344,hostnam:67,hotbutton:137,hotel:90,hotspot:103,hour:[27,62,132,184,331,344],hous:[90,109,159,364],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,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,146,147,151,153,154,166,168,169,170,175,180,182,184,185,189,204,205,206,213,215,219,220,221,226,231,235,241,246,247,252,256,261,267,272,277,281,286,291,294,298,299,305,306,307,308,312,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,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,226,241,321],howto:38,hpad_char:330,href:[17,69,133],hrs:184,htm:282,html5:55,html:[24,38,55,64,69,79,83,96,103,114,134,135,136,137,138,154,169,175,204,234,239,289,291,295,296,312,318,340,343,344,347,364],htmlchar:343,htop:110,http404:[69,134],http:[3,4,9,22,23,36,37,38,45,54,55,63,65,69,70,75,83,90,95,98,103,104,107,108,124,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,364],http_request:[103,135],httpchannel:312,httpchannelwithxforwardedfor:312,httpd:8,httprequest:144,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],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,hybrid:73,i18n:[47,76,247],iac:88,iattribut:316,iattributebackend:316,icon:[79,106,138],id_: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,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,206,212,242,245,247,255,321,322],identif:[27,115,308],identifi:[0,8,23,28,30,31,33,39,41,42,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,170,176,180,187,205,206,215,233,242,247,251,255,258,261,264,267,272,274,277,291,295,304,306,308,316,317,321,324,327,328,344],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:[86,125,141,142,169,177,239,274,300,316,317,318,320,364],idnum:176,ids:[12,58,121,187,298,308,327],idstr:[84,115,257,261,304,344],idtifi:176,idx:121,ietf:283,ifconfig:67,ifram:[137,138],ignor:[6,14,20,23,27,29,31,33,34,38,42,51,58,73,74,80,83,86,90,91,95,96,105,114,117,121,122,125,131,144,151,152,153,154,159,170,187,206,241,246,247,261,267,272,278,279,294,295,296,316,318,321,322,327,328,339,344,345],ignore_ansi:344,ignore_error:144,ignorecas:[154,159,165,166,169,171,182,206,321,326,328,343],ignoredext:312,illumin:111,illus:[10,96],imag:[4,17,63,69,70,90,101,106,133,135,136,137,138,347,364],imagesconfig:4,imagin:[14,29,31,46,48,51,61,77,116,117,122,132,138,226,322],imaginari:[21,79],imc2:34,imeplement:235,img:[17,70],immedi:[0,5,15,27,29,33,48,49,51,64,70,74,83,90,95,100,102,109,116,120,133,134,157,169,231,271,278,322,324,328,329],immobil:25,immort:231,immut:[11,261],imo:1,impact: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,147,148,152,153,156,157,158,159,160,161,164,165,166,167,168,169,171,175,176,177,179,181,182,184,185,187,189,202,205,206,210,212,213,214,215,217,218,221,231,232,233,235,238,239,242,245,246,247,255,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,339,340,343,344,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,251,330],impract:[33,109,252],imprecis:334,impress:[42,111],improv:[0,11,37,61,70,76,91,128,364],in_game_error:[26,103],inabl:[63,103],inaccess:[0,80],inact:[102,231],inactiv: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,170,175,179,182,187,188,189,195,205,206,210,215,217,218,219,220,221,233,234,235,241,247,251,259,267,285,287,290,291,299,304,307,316,317,318,319,321,322,323,324,325,327,328,330,331,337,344,347,350],include_account:316,include_children:317,include_par:317,include_prefix:151,include_unloggedin:[285,308],inclus:317,incoher:126,incol:[58,327,330],incom:[33,40,88,90,96,104,139,146,151,168,210,218,267,276,280,283,286,290,291,295,296,298,306,307,308,312,328,329],incomplet:[154,213,330],inconsist:[10,97,204],incorpor:[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,209],indetermin:269,index:[7,38,49,56,61,68,79,85,86,90,108,121,135,136,151,164,165,166,179,215,232,239,245,265,269,270,312,319,321,329,330,344,357,360,364],index_category_clr:166,index_to_select:215,index_topic_clr:166,index_type_separator_clr:166,indexerror:[134,235,317],indextest:360,indic:[0,8,22,38,49,51,62,64,85,91,95,111,119,146,159,166,167,189,206,210,215,256,259,278,279,287,294,295,308,310,312,316,321,322,328,329,344],individu:[0,11,13,14,18,21,22,33,34,41,46,48,49,55,57,58,59,71,73,78,85,88,90,96,109,111,132,153,157,175,185,192,195,220,249,252,306,319,321,330,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,166,169,171,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,364],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,46,48,51,55,60,65,66,68,69,73,83,84,85,86,91,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,177,180,185,204,206,210,211,219,220,221,239,247,267,272,281,282,283,285,294,307,308,317,318,321,324,326,337,344,357,364],infrastructur:[38,64,83,90,103,150,277,364],infrequ:46,ing:[9,14,58,185],ingame_python:[141,142,178,364],ingame_tim:62,ingo:[31,51,58,74,114,152,245,279,364],inher:[4,10,87,108],inherit:[2,5,6,22,27,30,31,33,36,40,42,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,203,206,213,217,218,219,220,221,230,231,233,234,243,246,247,252,256,258,298,307,314,317,318,326,329,330,334,342,344,364],inheritng:252,inherits_from:[117,134,169,344,364],inifinit:251,init:[6,9,22,38,40,47,49,58,60,63,75,83,95,104,106,131,137,138,179,180,188,246,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,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,146,153,154,170,175,177,179,186,188,192,196,198,205,206,215,217,218,219,220,221,226,230,231,232,245,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,316,321,323,326,327,328,329,339,340,344,351,357,364],initial_formdata:188,initial_ind:330,initial_setup:[141,142,262,305,364],initialdelai:[264,278,279,298],initialize_for_combat:[217,218,219,220,221],initialize_nick_templ:316,initil:295,inject:[96,103,251,267,298,299,306,322,328],inlin:[18,57,85,104,137,247,265,364],inlinefunc:[45,83,104,109,141,142,320,364],inlinefunc_en:114,inlinefunc_modul:114,inlinefunc_stack_maxs:114,inlinefunct:114,inmemori:316,inmemoryattribut:316,inmemoryattributebackend:316,inmemorybackend:316,inmemorysavehandl:339,inner:77,innoc:[12,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,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,176,180,185,188,205,206,210,215,220,232,238,247,250,251,252,265,267,272,276,287,295,306,308,316,317,319,326,327,328,329,330,338,340,344,345,357,364],input_arg:170,input_cleanup_bypass_permiss:344,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:[87,165,175,316,317],insecur:90,insensit:[51,166,187,206,233,245,317,349],insert:[13,14,25,38,50,51,58,64,71,87,96,109,114,138,153,189,202,206,251,322,328,330,344],insid:[0,5,10,11,13,15,19,20,21,23,25,27,28,31,33,38,42,46,47,51,57,59,63,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,175,180,187,190,194,195,206,231,233,235,241,246,247,250,267,284,305,312,322,323,344,364],inside_rec:241,insiderecurs:241,insight:[20,41,42,122,136],insist:[90,91],inspect:[12,23,51,85,144,159,169,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,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,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,148,150,151,152,153,154,163,166,168,169,170,175,177,180,195,198,204,215,234,235,239,246,247,251,252,255,256,260,261,264,267,276,277,278,279,280,281,282,283,285,289,290,294,298,299,307,308,312,316,318,319,321,324,325,328,330,334,335,340,344,345,357,364],instanci:180,instant:136,instanti:[33,86,127,144,153,170,226,258,261,284,305,308,316,327],instead:[0,3,6,9,10,11,12,14,16,19,20,21,22,23,25,26,27,29,30,31,33,34,37,38,39,41,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,175,180,185,186,188,198,205,206,213,215,217,218,219,220,221,230,232,234,235,241,242,245,247,252,261,267,295,296,306,310,316,318,319,324,328,329,334,337,339,340,341,344,357],instig:157,instil:[140,219],instnac:260,instr:[276,344],instruct:[0,8,9,13,14,23,27,30,37,38,42,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,206,210,252,261,264,267,277,279,285,290,291,295,296,298,306,308,328,338,364],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,317,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,179,180,206,239,247,252,285,317,319,324,325,327,330,341,342,344,345],intens:[79,93,114],intent:[51,76,96,103,205,344],inter:13,interact:[2,20,23,29,33,38,40,42,43,51,55,56,59,61,77,79,100,106,108,110,116,122,133,138,141,158,170,221,226,267,284,322,337,344,364],intercept:308,interchang:[116,328],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,226],interfac:[9,21,22,23,25,36,40,42,63,64,69,70,79,80,90,96,97,101,104,119,133,135,137,138,139,156,159,175,245,247,259,278,307,312,316,319,321,344,364],interfaceclass:287,interfer:[23,97,251],interim:[29,115],interlink:[284,305],intermediari:[206,242,257,328],intern:[10,11,15,27,34,40,51,63,76,80,87,88,90,100,102,103,104,105,107,109,110,112,113,116,128,144,146,177,186,189,206,235,245,247,251,258,295,296,316,318,319,321,325,328,330,344,364],internal:328,internal_port:90,internation:[7,113,139,364],internet:[10,12,16,33,40,63,67,72,90,103,124,157,264,269,277,278,279,287,290,298,312],interpret:[33,42,56,59,60,91,93,96,102,103,104,109,134,154,158,159,251,252,295,321,340,364],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,147,184,195,217,218,219,220,221,223,231,233,256,261,272,324,331,344],interval1:261,intim:[31,33],intimid:58,intoexit:159,intpropv:123,intricaci:62,intrigu:54,intro:[4,69,122,124,134,230,233],intro_menu:[141,142,178,229,364],introduc:[26,29,31,57,73,97,123,124,127,131,139,206],introduct:[3,13,14,15,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,251,330,340,344,345],invalid_formchar:327,inventori:[20,21,25,27,31,43,80,85,91,97,119,138,165,182,206,241,247,318,364],invers:[80,114,126,206,293,343],invert:[114,126],invis:24,invit:[0,10,61,77,226],invitingli:[20,226],invok:[11,13,14,102,209],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:[43,72,164],irc:[7,9,26,34,55,60,63,70,79,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:[72,164],ircnetwork:[72,164],ircstatu:[43,164],iron:179,ironrealm:291,irregular:[223,231,233],irregular_echo:231,irrelev:[103,276],irur:52,is_account_object:56,is_act: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],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,239,246,256,316,318],is_o:344,is_ouch:11,is_prototype_bas:251,is_sai:118,is_subprocess:344,is_superus:[2,4,144,148,242,247,324],is_thief:166,is_turn:[217,218,219,220,221],is_typeclass:[48,144,318],is_valid:[102,121,133,179,256,259],is_valid_coordin:235,isalnum:321,isalpha:321,isb:170,isbinari:[278,295],isclos:137,isconnect:137,isdigit:[58,114,321],isfiremag:28,isinst:[39,344],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,321,338,349],isnul:340,iso:[15,113,171],isol:[13,37,38,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,63,70,79,85,89,90,93,103,108,123,125,126,127,131,138,140,164,171,251,267,298,299,330,363,364],istart:[42,110,141],istep:299,istitl:321,isub:116,isupp:321,ital:364,itch:[61,63],item:[20,38,47,51,59,63,68,69,82,85,86,116,117,138,165,179,182,188,206,219,226,235,286,316,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,itend:344,iter:[11,49,51,59,97,112,119,138,144,206,235,247,252,259,296,298,299,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,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,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,146,148,150,151,152,153,154,157,159,167,169,170,175,176,179,180,188,189,195,203,205,206,213,215,217,218,219,220,221,226,231,232,234,235,245,246,247,252,260,261,267,271,272,276,280,291,293,294,295,296,299,307,308,312,313,316,317,318,319,322,327,328,330,334,337,338,339,340,341,344,347,357],itself:[0,4,9,11,15,17,20,21,22,23,25,27,29,33,36,37,38,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,166,175,180,185,188,198,204,206,215,220,223,232,233,235,236,239,241,245,247,249,250,252,260,267,291,296,308,312,316,319,321,324,326,328,339,341,344,357],iusernamepassword:287,iwar:85,iweb:90,iwebsocketclientchannelfactori:278,iwth:261,jack:87,jail:[12,13],jamochamud:24,jan:[12,62,364],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],john:[58,214],johnni:[209,210,364],johnsson:87,join:[9,22,34,49,58,61,63,65,72,96,112,116,119,123,133,144,164,175,179,205,321,344,364],join_fight:[217,218,219,220,221],join_rangefield:221,joiner:175,jointli:[64,153],joke:59,joker_kei:[22,180],jqueri:138,json:[83,88,137,138,209,278,291,295,296,325],jsondata:88,jsonencod:296,jsonifi:296,jtext:321,judgement:73,jumbotron:364,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,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,164,167,168,170,175,179,180,182,185,187,192,194,195,205,206,214,215,217,218,219,220,221,226,231,233,235,242,247,252,257,272,285,295,299,305,312,316,317,318,321,325,326,328,330,339,340,344,345,364],justif:[329,344],justifi:[96,109,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,226,232,233,251,252,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,44,49,50,52,56,57,58,60,62,69,71,74,80,81,82,84,85,86,88,89,91,95,96,97,102,107,111,112,114,115,116,119,120,121,123,125,127,129,131,133,137,138,144,146,147,148,150,152,153,154,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,175,176,177,179,180,181,182,184,185,186,187,188,189,193,194,199,202,203,205,206,212,213,214,215,217,218,219,220,221,226,230,231,232,233,234,235,239,241,245,246,247,250,251,252,255,256,257,258,259,260,261,265,267,272,273,274,276,285,288,291,292,294,295,296,298,299,306,307,308,310,316,317,318,319,323,324,326,327,328,329,337,338,339,341,344,357,364],kept:[33,57,80,91,119,127,159,194,195,206,252,316],kept_opt:215,key1:202,key2:[51,202,247],key_mergetyp:[31,152,226],keyboard:138,keydown:137,keyerror:[251,261,339,344],keyfil:[288,292],keynam:[175,250,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,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,198,205,206,210,217,218,219,220,221,233,234,242,245,247,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,338,340,341,344,364],keyword_ev:198,kick:[12,31,51,58,90,146,152,157,164,171,186,329],kildclient:24,kill:[20,27,51,61,75,93,100,102,105,116,179,231,232,257,261,267,305,312,364],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,kitchen:[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,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,170,179,194,199,205,215,220,226,232,246,247,272,306,308,316,322,323,328,344,363,364],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,364],knuth:93,kobold:61,koster:79,kovash:51,kovitiku:364,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,146,147,148,150,153,154,156,157,158,159,164,165,166,167,168,169,170,171,175,176,177,179,180,181,182,184,185,186,187,188,189,192,193,194,195,199,202,203,204,205,206,210,212,213,214,215,217,218,219,220,221,223,226,230,231,232,233,234,235,238,239,241,242,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,298,300,306,307,308,309,310,312,316,317,318,319,321,324,326,327,328,329,330,331,333,334,337,338,339,340,341,342,344,345,357],kwargtyp:344,label:[48,64,70,86,112,133,140,357],label_suffix:357,laborum:52,lack:[13,38,56,61,70,129,206,226,247,316,344],ladder:58,lag:[49,63],lai:[1,48],lair:14,lambda:[10,39,51,69,109,195,252,344],lamp:[111,226],lamp_breaks_msg:226,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,364],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,226,235,251,285,322,327,334],larger:[14,20,38,49,57,61,68,80,82,86,108,187,247,293,321,334,344,347],largesword:86,laser:77,last:[4,11,13,14,22,26,29,31,33,34,36,38,42,48,51,54,58,60,69,74,76,86,87,89,91,95,96,105,107,110,116,121,122,126,127,131,134,136,137,147,150,151,153,159,164,165,179,184,187,195,206,215,217,218,219,220,221,247,271,321,322,323,328,329,330,331,337,344,364],last_cmd:33,last_initial_setup_step:305,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,40,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,175,184,203,206,251,252,261,287,319,344],latest:[20,21,27,31,36,38,58,63,64,75,83,98,131,159,164,169,247,252,286,310,328,337,363,364],latin:[15,113,171,247,344,364],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,226,266,267,277,279,298,326,344,364],launcher:[93,106,266,267,276,277,298],law:79,layer:[22,31,246,318],layout:[27,49,56,58,96,119,125,128,137,138,235,247,364],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,49,51,56,60,61,64,69,79,83,86,102,103,111,121,144,151,152,159,169,195,198,204,206,212,247,251,252,306,316,318,328,330,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,206,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,58,60,73,74,77,85,93,95,102,103,116,123,137,138,156,158,159,175,179,180,233,235,247,260,291,295,296,328,334,364],leaver:175,left:[22,27,33,36,38,39,41,57,69,74,80,85,86,91,101,102,109,111,114,137,138,144,159,165,167,190,217,218,219,220,221,226,232,235,242,252,318,321,330,344,363],left_justifi:109,leg:304,legaci:[88,109,144,206],legal:[90,103],legend:[24,49,50],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,245,269,310,316,321,330,344],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,38,39,40,41,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,153,154,159,165,170,179,182,185,188,190,215,235,242,247,277,296,308,324,328,338,343,357,363,364],letsencrypt:[67,90],letter:[15,22,38,39,76,90,95,111,113,114,119,123,133,156,165,171,180,204,205,311,321,344],leve:251,level:[2,11,13,19,20,22,26,27,30,36,38,40,41,47,50,51,55,57,58,61,63,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,159,161,162,175,180,181,184,199,205,215,226,241,247,252,269,306,316,318,324,326,331,344],lever:[33,125],leverag:[3,38],levi:86,lhs:[25,58,167],lhslist:167,lib:[63,67,75,97],libapache2:8,libcrypt:75,libjpeg:75,librari:[6,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,316,318,330,344,364],licenc:321,licens:[37,45,79,106,139,204,321,364],lid:226,lidclosedcmdset:226,lidopencmdset:226,lie:111,lies:[33,131],life:[11,37,62,87,95,126,184,231,364],lift:[20,73,80,96,123,221,242,364],lifter:80,light:[14,23,27,38,61,102,108,122,153,218,232,233,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,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,170,171,172,175,176,179,180,182,186,187,188,189,190,198,204,205,206,212,213,215,217,218,219,220,221,226,233,234,235,239,241,242,245,246,247,251,252,267,272,280,296,299,301,305,307,308,316,317,318,321,322,324,327,328,329,330,331,334,338,340,341,344,357,364],limbo:[0,9,13,14,20,22,27,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,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,147,154,156,157,158,159,175,176,182,195,206,215,217,219,220,226,238,239,242,245,247,252,255,256,261,272,285,310,316,317,318,319,322,324,326,337,341,344,364],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,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,164,166,168,169,180,185,186,188,202,205,206,215,226,234,235,247,251,267,272,287,290,295,306,318,321,322,326,327,328,329,330,337,344,357,364],linear:49,linebreak:[69,321,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,43,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,234,242,247,256,265,267,278,282,287,290,318,343,344,364],linknam:[38,54],linktext:38,linod:90,linux:[4,8,9,23,25,38,64,67,72,75,87,90,93,97,100,106,131,209,344,364],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,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,147,148,151,152,153,154,156,157,158,159,164,165,166,167,169,170,175,176,177,179,180,181,182,183,187,188,189,190,192,193,195,196,198,199,202,203,204,205,206,209,210,215,217,218,219,220,221,226,230,231,232,235,238,242,245,246,247,251,252,255,257,258,259,261,265,267,272,273,276,277,279,281,283,285,286,291,296,299,308,310,312,316,317,318,319,321,322,323,324,325,328,330,337,338,341,344,350,363,364],list_attribut:159,list_callback:193,list_channel:164,list_nod:[328,364],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_set:267,list_styl:156,list_task:193,list_to_str:344,listabl:159,listaccount:[43,169],listcmdset:159,listcmset:43,listen:[2,12,34,41,67,80,103,105,124,137,139,164,175,205,206,226,364],listing_contact:54,listnod:328,listobj:43,listobject:[43,159],listscript:43,lit:[232,233],liter:[13,20,57,66,109,165,321,340,344],literal_ev:[51,328,344],literatur:364,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,206,218,230,233,302,316,328,344,357],live:[8,23,38,60,63,67,70,79,90,100,106,364],ljust:321,lne:215,load:[6,11,12,13,15,26,29,31,33,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,251,256,260,271,274,276,307,316,318,319,322,323,326,335,338,339,342,344,350,355],load_buff:326,load_data:323,load_game_set:350,load_kwarg:339,load_module_prototyp:251,load_sync_data:307,loader:[51,318,344],loadfunc:[50,326,339],loc: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,364],local_and_global_search:245,localecho:[90,272],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,175,176,180,181,182,187,203,206,212,231,233,235,241,245,246,247,252,296,305,316,317,318,319,322,324,328,330,337,341,347],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,43,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,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,202,203,206,212,214,226,231,232,233,235,239,246,247,251,252,255,312,316,318,319,324,326,328,338,344,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,177,179,180,181,182,185,186,187,188,189,193,199,202,203,206,212,213,214,215,217,218,219,220,221,226,231,232,233,234,239,247,298,316,318,326,328,329],lock_typ:80,lockabl:[58,212],lockablethreadpool:312,lockdown:[80,316,364],lockdown_mod:90,lockexcept:242,lockfunc1:80,lockfunc2:80,lockfunc:[25,33,53,80,104,121,141,142,159,164,240,319,364],lockhandl:[11,48,80,125,141,142,154,180,234,240,241,364],lockset:247,lockstr:[4,11,33,80,97,109,159,164,166,175,177,212,242,247,252,316,319,324],locktest:136,locktyp:[152,164,252,319],log:[2,4,5,6,8,10,11,12,20,21,23,24,25,33,34,35,36,39,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,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,209,210,247,256,260,267,272,276,277,281,284,285,287,290,298,299,300,306,308,310,312,318,324,337,344,364],log_dep:[27,337],log_depmsg:337,log_dir:[175,209,337],log_err:[27,337],log_errmsg:337,log_fil:[27,175,337],log_file_exist: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,364],logged_in:105,loggedin:285,logger:[27,53,102,118,120,141,142,209,279,320,364],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,51,55,69,70,80,90,97,101,105,107,131,133,139,144,156,171,186,242,271,272,287,290,295,296,299,308,344,349,351,360,364],login_func:299,logintest:360,logo:364,logout:[298,299,360],logout_func:299,logouttest:360,logprefix:[277,287,290,312],lone:[61,111,159,166],long_descript:54,long_running_funct:10,long_text:52,longer:[0,21,25,29,33,41,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,260,326,330,344,364],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,43,44,46,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,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,170,171,181,182,186,187,188,194,202,203,205,206,215,219,226,230,232,233,235,238,241,242,246,247,249,252,255,272,287,288,295,299,316,318,322,328,330,338,341,343,344,357,364],look_str:144,lookaccount:58,lookat:33,looker:[49,58,60,123,144,182,187,206,235,247,318],lookm:33,lookstr:247,lookup:[11,33,80,86,97,112,119,150,165,209,245,246,251,286,319,321,333,334,340,341,344,345,364],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:270,loos:[14,37,144,164,182,221,238,287,298,322],loot:61,lop:119,lore:[58,166],lose:[11,56,61,100,105,110,116,123,138,209,219,278,279,287,290],lost:[0,38,39,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,49,51,58,62,80,85,86,90,93,114,122,137,151,152,156,167,169,206,272,319,321,344],lower_channelkei:41,lowercas:[38,95,154,206,321],lowest:[66,90,241,321],lpmud:129,lpthw:77,lsarmedpuzzl:203,lspuzzlerecip:203,lst:[49,324],lstart:50,lstrip:[91,119,321],ltthe:169,ltto:114,luc:327,luciano:79,luck:[8,51,91,96],luckili:[60,80,111,127,131],lue:[114,321],lug:55,luhttp:169,lunch:46,lunr:166,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,364],machin:[13,25,100,106,131,231,364],macport:[63,131],macro:[4,116],macrosconfig:4,mad:131,made:[3,11,19,20,21,25,26,35,36,38,51,56,58,59,61,79,80,90,96,98,103,104,109,111,121,123,131,134,150,152,169,170,175,179,182,188,215,219,220,221,242,260,269,299,313,321,322,326,328,344],mag:[60,127,327],magazin:79,mage:51,mage_guild_block:51,mage_guild_welcom:51,magenta:126,magic:[30,60,61,80,112,121,122,140,179,190,220,269,364],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,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,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,166,169,170,175,176,177,178,179,181,182,184,188,190,205,206,217,218,219,220,221,232,233,242,245,247,251,252,253,269,306,308,309,313,316,318,319,321,323,324,325,326,328,330,331,338,341,344,347],mail:[9,34,37,51,55,57,60,61,70,79,93,116,128,141,142,176,177,178,363,364],mailbox:[34,199],main:[13,14,15,20,21,22,30,31,33,34,37,40,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,148,150,156,159,164,166,170,175,177,180,188,195,199,205,206,235,239,246,247,252,256,267,271,272,274,279,284,286,291,305,307,312,318,319,328,329,332,341,343,344,364],mainli:[10,12,33,34,51,57,79,83,89,93,96,105,156,236,316,322,344],maintain:[4,19,23,37,38,41,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,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,176,179,180,182,184,187,188,190,196,199,205,206,211,212,213,215,217,218,219,220,223,226,231,232,233,238,241,242,245,247,251,252,255,258,261,267,271,279,284,298,299,305,306,308,309,311,312,316,317,318,319,321,322,323,324,325,326,328,330,331,334,341,343,344,360,363,364],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:[170,345],malici:103,malign:242,man2x1:108,man:[87,90,108,129,165,199,206],mana:[28,30],manag:[2,7,9,11,31,39,40,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,159,164,169,170,172,175,177,202,206,221,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,364],manager_nam:316,manchest:344,mandat:357,mandatori:[0,22,107,109,129],maneuv:215,mangl:293,mango:203,manhol: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,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,147,148,152,154,159,164,170,177,179,182,186,188,206,213,214,215,219,220,231,234,239,242,245,246,252,256,261,267,281,289,291,310,316,318,319,321,328,329,334,335,337],manifest:97,manipul:[0,11,22,31,41,44,51,64,86,102,109,123,147,159,169,176,187,192,238,245,247,255,273,324,329],manner:[14,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,226,230,234,247,252,259,267,284,291,328,329,363,364],manual_paus:259,manual_transl:205,manytomanydescriptor:[148,177,239,246,256,316,318,319],manytomanyfield:[148,177,239,246,256,316,318,319],map:[0,15,25,39,46,51,57,58,61,64,67,87,88,97,100,124,135,138,139,156,164,170,175,183,184,205,206,235,247,251,252,291,316,318,321,327,328,344,364],map_modul:111,map_str:[49,111,235],mapbuild:[141,142,178,364],mapper:[334,364],mapprovid:235,march:[79,337],margin:17,mariadb:364,mark:[13,14,20,21,33,38,49,51,58,63,72,76,80,90,95,114,119,131,135,137,138,140,151,158,187,195,204,215,308,316,318,322,327,328,340],mark_categori:215,markdown:[1,4,38,48,54],marker:[13,20,33,51,64,87,114,138,164,165,187,189,206,215,247,279,287,290,295,296,316,319,321,327,328,329,347],market:90,markup:[81,114,136,139,141,142,183,320,343,344,364],mask:[203,206,210,211],maskout_protodef:203,mass:[61,124,139,364],massiv:[28,55],master:[7,9,37,38,57,61,63,73,95,98,100,104,116,118,134,313,364],match:[9,11,20,22,27,31,33,39,41,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,147,150,151,152,153,154,157,159,164,165,166,168,170,176,180,183,184,187,188,198,199,202,203,206,220,235,238,241,242,245,247,251,252,255,258,261,272,273,285,298,308,316,317,318,319,321,326,328,330,339,341,343,344,345,347,364],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,206,221,231,246,272,316],matur:[108,128,129],maverick:64,max:[16,25,49,71,114,116,166,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_rmem:334,max_siz:337,max_valu:[190,357],max_w:49,max_width:49,maxconn:67,maxdelai:[264,278,279,298],maxdepth:252,maxdiff:[170,352],maximum:[16,39,71,86,91,111,114,144,188,190,217,218,219,220,221,247,252,312,321,328,330,344],maxlengthvalid:144,maxnum:344,maxrotatedfil:337,maxsplit:321,maxthread:312,maxval:344,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,364],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,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,147,153,159,166,185,195,205,232,234,241,245,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,233,235,247,272,322,344],meantim:1,meanwhil:96,measur:[90,93,123,151,168,298,299,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,261,267,271,277,285,296,307,318,326,329,332,339,364],mechcmdset:21,mechcommand:21,mechcommandset:21,meck:21,media:[16,295,312,340,357],median:49,mediat:73,medium:16,mediumbox:276,meet:[25,36,61,122,194,235,311],mele:221,mem:169,member:[9,11,70,86,164,165,167,247,344],membership:[4,9,119],memori:[6,12,23,28,31,33,56,75,86,90,93,113,125,135,144,169,175,247,260,261,300,310,316,320,329,334,339,344],memoryerror:63,memoryusag:300,memplot:[141,142,262,297,364],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,38,45,46,47,53,54,55,63,65,69,105,106,109,110,123,128,138,139,141,142,159,180,188,214,215,230,248,252,265,267,320,338,364],menu_cmdset:328,menu_data:51,menu_edit:180,menu_login:[141,142,178,364],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,169,190],merg:[3,5,22,33,37,38,44,51,57,62,64,97,131,139,150,151,152,153,226,233,235,252,256,291,328,364],merge_prior:328,merger:[5,31,37,111,152,153],mergetyp:[31,51,116,152,226,233,326,328,329],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,38,40,41,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,170,172,175,176,177,179,180,182,188,189,193,195,199,203,204,206,210,217,218,219,220,221,223,226,228,230,231,232,233,234,247,267,269,276,278,279,285,286,287,290,291,293,295,304,306,308,310,312,324,326,328,329,337,341,344,364],message_rout:137,message_search:176,message_transform:175,messagepath:[139,364],messagewindow:137,meta:[104,125,318,334,357],metaclass:[86,96,125,154,318],metadata:[210,269],metavar:234,meteor:82,meter:190,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,147,148,150,152,153,154,156,159,160,164,166,167,169,170,175,176,177,179,180,184,187,192,195,202,203,204,205,206,209,210,212,217,218,219,220,221,226,228,230,231,232,233,234,235,238,239,241,242,245,247,255,260,261,264,269,272,273,274,276,277,278,279,280,285,287,290,293,295,296,298,299,303,305,306,307,308,310,316,318,321,322,324,326,328,329,330,331,334,335,337,338,339,341,342,343,344,364],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,364],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,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,255,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,364],mike:159,mileston: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],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,364],mindex:151,mine:[46,103,138],mini:[55,111,124,364],miniatur:[61,122],minim:[61,103,105,116,138,205,252],minimalist:[33,58,108],minimap:364,minimum:[22,58,64,73,105,188,217,218,219,220,221,272,312,318,330,339,344],mininum:330,minlengthvalid:144,minor:[41,153,363],mint:[63,67,131],minthread:312,minu:[86,247,331],minut:[25,27,28,62,79,91,100,102,116,164,169,179,184,310,331,344],minval:344,mirc:279,mirror:[72,79,105],mis:57,misanthrop:119,misc:138,miscelan:320,miscellan:[47,364],mislead:41,mismatch:[74,344],miss:[49,57,60,63,70,90,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],mix:[11,30,33,34,51,53,114,126,133,144,166,177,179,206,247,251,252,311,319,322,330,344],mixin:[251,301],mixtur:81,mkdir:[9,36,63],mktime:62,mob0:56,mob:[14,55,56,61,80,105,122,141,142,153,159,178,229,233,252,322,364],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,170,260,342],mock_delai:170,mock_random:228,mock_repeat:170,mock_tim:303,mockdeferlat:342,mockdelai:342,mocked_idmapp:303,mocked_o:303,mocked_open:303,mockup:138,mockval:342,mod:[8,251],mod_import:344,mod_import_from_path:344,mod_or_prototyp:251,mod_prototype_list:251,mod_proxi:364,mod_proxy_http:8,mod_proxy_wstunnel:8,mod_secur:103,mod_ssl:364,mod_sslj:8,mod_wsgi:364,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,166,169,171,181,199,226,231,247,267,272,277,284,295,296,305,322,326,328,337,344,364],mode_clos:296,mode_init:296,mode_input:296,mode_keepal:296,mode_rec:296,model:[9,11,34,38,41,45,59,64,69,73,80,87,96,104,112,115,119,125,132,135,136,139,141,142,143,144,147,172,175,176,236,243,247,253,257,261,262,273,314,316,317,319,320,325,332,333,335,340,341,344,357,364],model_inst:340,modelattributebackend:316,modelbackend:349,modelbas:334,modelclass:[11,112],modelform:357,modelnam:[154,175,239,318],moder:[4,39,179],modern:[10,11,15,30,79,103,108,126,138,280],modif:[0,8,25,33,37,46,83,91,100,123,131,138,313,357,364],modifi:[0,2,4,11,20,22,25,26,31,33,34,38,39,40,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,153,166,175,180,185,187,189,195,203,206,213,217,218,219,220,221,232,234,239,245,247,252,261,318,322,328,334,340,343,347,357,364],modified_text:114,modul:[3,5,6,11,13,15,20,21,26,27,29,31,33,35,37,38,40,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,166,168,170,179,180,181,182,183,184,185,186,187,188,190,192,193,194,196,204,205,206,211,212,213,215,217,218,219,220,221,226,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,342,344,364],modular:55,modulepath:276,moifi:187,mollit:52,moment:[21,31,46,57,76,85,91,96,115,135,139,144,256],monei:[9,61,70,86,90],monetari:[37,179],monitor:[53,84,88,93,139,257,272,291,334,364],monitor_handl:[53,84,141,257],monitorhandl:[45,74,139,141,142,253,364],mono:25,monster:[29,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,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,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,148,151,152,153,158,159,164,165,166,169,170,171,175,178,179,180,181,182,184,186,187,190,195,198,204,205,206,213,214,215,217,218,219,220,221,226,231,232,233,234,235,245,247,251,252,277,279,282,291,298,299,308,313,316,317,318,321,322,324,325,326,327,328,329,330,334,341,344,345,357,364],more_command:329,morennanoth:170,morennthird:170,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,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,170,177,180,190,205,206,213,217,218,219,220,221,239,242,246,247,251,252,256,260,290,295,305,316,317,318,319,328,329,334,335,344,364],mostli:[40,51,57,69,73,90,91,95,114,123,125,137,138,152,171,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],mous:[114,137,328],move:[0,4,9,14,15,21,22,23,29,33,34,41,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,213,217,218,219,220,221,231,232,233,235,238,241,247,299,318,322,329,364],move_callback:169,move_delai:169,move_hook:247,move_obj:235,move_to:[0,85,89,121,213,247],movecommand:44,moved_obj:[233,235,247],moved_object:247,movement:[58,109,121,169,213,217,218,219,220,221,247],mover:221,mptt:4,mratio:[151,168],msdp:[55,83,272,291,364],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,175,176,177,189,199,210,226,234,242,247,278,279,306,322,324,326,328,329,337,344,364],msg_all:116,msg_all_sess:[33,154],msg_arriv:0,msg_channel:164,msg_content:[0,21,27,33,46,62,73,89,102,118,121,123,132,247],msg_help:166,msg_leav:0,msg_locat:247,msg_other:179,msg_receiv:247,msg_self:247,msg_set:319,msglauncher2port:[267,276],msgmanag:[176,177],msgobj:[34,175],msgportal2serv:276,msgserver2port:276,msgstatu:[267,276],mssp:[55,104,141,142,262,275,364],mtt:294,much:[0,4,10,11,13,14,15,20,22,23,25,26,29,37,39,41,42,49,51,56,59,61,62,63,64,67,69,73,76,79,80,82,89,90,91,93,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,226,232,307,316,319,321,322,323,330,344,347],muck:57,mud:[8,15,21,22,23,24,30,40,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,364],mudbyt:79,mudconnector:[79,171],mudderi:79,muddev:63,mudform:327,mudinfo:[34,171],mudlab:79,mudlet:[24,96,101,282],mudmast:24,mudramm:24,mudstat:171,muhammad:343,mukluk:24,mult:109,multi:[10,22,31,38,51,55,61,95,96,100,104,105,119,122,123,151,169,206,215,247,308,328,344,364],multiaccount_mod:97,multidesc:[141,142,178,364],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,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,166,168,169,170,183,185,186,187,189,190,196,202,206,215,217,218,219,220,233,242,245,247,251,252,261,265,269,272,276,291,299,316,317,322,328,330,341,344,364],multiplay:[55,57,79],multipleobjectsreturn:[144,146,148,175,177,179,182,184,187,189,195,203,204,205,206,212,213,214,217,218,219,220,221,223,226,231,232,233,235,239,246,247,251,256,259,274,300,316,319,331,335],multisess:[41,69,328,364],multisession_mod:[2,24,33,64,69,105,123,133,144,156,160,181,189,247,308],multisession_modd:51,multitud:[57,111,114],multumatch:247,mundan:21,murri:344,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,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,170,175,176,177,179,182,183,184,186,203,205,206,210,215,217,218,219,220,221,226,230,232,233,239,241,247,250,251,257,261,267,272,285,287,290,307,309,310,316,317,318,321,322,323,324,325,326,327,328,329,331,338,339,340,341,343,344,345],must_be_default:153,mutabl:[325,364],mute:[17,41,144,164,175],mute_channel:164,mutelist:[41,175],mutltidesc:202,mutual:[226,317],mux2:[129,171],mux:[20,21,33,34,41,45,55,58,103,108,139,149,167,183,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,202,203,212,214,219,220,233,247,326,364],mvattr:[43,159],mxp:[24,55,74,114,141,142,166,262,272,275,287,290,321,328,343,344,364],mxp_pars:282,mxp_re:321,mxp_sub:321,mxp_url_r:321,mxp_url_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:164,mycallable1:51,mycar2:87,mychair:112,mychan:34,mychannel1:164,mychannel2:164,mychannel:[12,164],mycharact:81,mychargen:51,myclass:60,mycmd:[33,68,267],mycmdset:[5,31,33],mycommand1:31,mycommand2:31,mycommand3:31,mycommand:[30,31,33,83,170],mycommandtest:170,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,38,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,202,212,213,292,342,344],mygamedir:38,mygamegam:81,myglobaleconomi:102,mygotocal:51,mygrapevin:164,myhandl:107,myhdaccount:100,myhousetypeclass:159,myinstanc:86,myircchan:164,mykwarg:51,mylayout:137,mylink:38,mylist2:11,mylist:[6,11,97,318],mylog:27,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,159,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:[56,102,112,159],myros:89,myscript:[102,112,125],myscriptpath:102,myserv:186,myservic:40,mysess:105,mysql:[36,55,64,128,344,364],mysqlclient:23,myst:364,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:[154,175,235,239,318],nake:33,name1:159,name2: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,43,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,144,146,147,148,150,151,152,153,154,156,157,159,164,165,166,167,168,169,170,171,175,176,177,180,181,182,184,186,188,192,194,195,198,203,204,205,206,212,215,219,220,231,233,234,235,238,239,245,246,247,251,252,255,256,257,259,261,267,270,272,273,274,276,277,279,284,287,290,291,294,295,296,299,308,310,312,316,317,318,319,321,322,323,324,326,327,328,329,334,335,337,338,340,341,343,344,345,349,357,364],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],nattempt:51,nattribut:[11,51,116,125,159,252,306,316,318,324,328],nattributehandl:316,nattributeproperti:316,natur:[11,15,27,55,79,88,112,146,330],natural_height:330,natural_kei:316,natural_width:330,navig:[9,38,48,49,51,106,111,128,133,134,221],naw:[24,52,141,142,262,275,364],nbsp:343,nchar:120,nclient:298,ncolumn:330,ncurs:141,ndb:[6,13,22,25,29,33,51,102,105,116,125,144,148,169,246,256,306,318,328,364],ndb_:[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,251,252,296,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,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,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,175,179,180,186,187,189,193,194,195,196,203,204,205,206,215,217,218,219,220,221,226,231,232,233,234,235,242,246,247,251,252,255,267,269,272,276,284,291,296,298,306,307,308,312,316,318,319,321,322,324,328,329,330,331,338,339,341,344,364],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,166,185,251,291,316,319,328,345],nenter:51,nest:[11,14,33,51,114,144,159,206,215,241,247,252,291,325,364],nested_mut:11,nested_r:159,nestl:111,net:[9,57,63,72,79,90,146,164,171,280,281,291,294,308],netrc:131,network:[40,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,169,194,205,206,220,221,231,242,247,306,316,325,344],nevertheless:[26,51,86,126,156,180],new_alias:[154,245],new_arriv:233,new_attrobj:316,new_channel:[58,164],new_charact:231,new_coordin:235,new_datastor:86,new_destin:245,new_goto:328,new_hom:245,new_kei:[107,154,245,247,255],new_loc:[159,245],new_lock:[245,255],new_menu:180,new_nam:[107,159],new_name2:159,new_obj:[80,247,252,255],new_obj_lockstr:159,new_object:[109,252],new_permiss:245,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],new_word:344,newbi:[25,48,55,124],newcom:[96,117],newer:9,newindex:215,newli:[46,58,60,66,131,133,159,175,180,199,204,234,247,252,259,324],newlin:[33,137,166,322,330],newnam:[33,159,318],newpassword: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,202,215,217,218,219,220,221,232,242,267,322,328,329,331,344,364],next_nod:51,next_turn:[217,218,219,220,221],nextnod:328,nextnodenam:328,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,364],nicer:[20,60,96],niceti:159,nick:[2,11,43,45,57,74,79,89,129,139,144,146,159,164,165,175,206,246,247,279,316,317,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,nicktyp:[206,247],nifti:8,night:[58,61,132,138,187],nine:66,nineti:345,nit:[60,62],nline:337,no_act:328,no_channel:[31,33,152,328],no_db:[251,252],no_default:[125,144,318],no_exit:[31,33,116,152,226,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,226,230,328],no_prefix:[144,154,156,157,158,159,164,165,166,167,168,169,170,171,175,179,180,181,182,185,186,187,188,189,193,199,202,203,206,212,213,214,215,217,218,219,220,221,226,231,232,233,234,247,298,326,328,329],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,215,230,249,265,328,364],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_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_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:169,noerror:247,nofound_str:[144,206,247,344],nogoahead:289,nohom:324,nois:21,noisi:[90,264,269,277,287,290,298,312],noloc:159,nomarkup:[74,81],nomatch:[22,168,180,326,344],nomatch_exit:22,nomatch_single_exit:22,nomigr:127,non:[4,6,14,15,20,22,27,29,31,33,38,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,147,148,150,152,159,164,169,171,175,177,185,195,204,212,214,215,232,238,241,246,247,250,251,252,256,257,259,261,267,276,290,291,305,306,308,316,318,321,324,325,326,328,329,330,341,344,364],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,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,146,147,150,151,152,153,154,156,159,160,161,162,163,164,165,166,167,170,175,176,177,179,180,181,182,185,187,188,189,192,194,195,198,203,204,205,206,212,214,215,217,218,219,220,221,226,230,231,232,233,234,235,238,241,242,245,246,247,249,251,252,255,257,258,260,261,264,265,267,269,271,273,276,277,278,279,286,287,295,296,298,306,307,308,310,311,312,316,317,318,319,321,322,323,324,325,326,327,328,329,330,331,334,337,339,340,341,344,345,349,352,357],nonpc:123,nonsens:205,noon:[20,60,73,76,80,96],nop:[290,364],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,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,170,175,179,184,185,217,218,219,220,221,226,231,234,235,246,247,249,252,261,267,276,279,280,281,283,285,299,306,308,314,316,317,318,321,322,325,328,329,334,341,343,344,346],normal_turn_end:116,normalize_nam:247,normalize_usernam:144,north:[0,20,22,44,46,49,89,111,114,121,159,180,213,299],north_south:111,northeast:[20,159,235],northern:[22,111],northwest:159,nose:316,not_don:312,not_error:267,not_found:159,notabl:[6,9,10,40,63,97,131,154,159,170,179,271,318,321,325,344],notat:[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,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,164,165,166,167,169,170,171,175,176,179,181,182,183,184,185,186,187,189,194,195,198,202,203,204,205,206,212,213,215,217,218,219,220,221,226,233,234,235,241,242,245,246,247,251,252,255,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,337,339,340,341,344,347,364],notepad:63,noteworthi:38,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],notif:[4,75,131,137,138,199],notifi:[98,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,164,166,179,184,188,195,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,364],npcname:118,npcshop:85,nprot:120,nr_start:258,nroom:[22,120],nroom_desc:127,nrow:330,ntf:63,nthe:226,nuanc:114,nudg:[78,226,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,num_total_account:147,number:[0,6,10,11,12,13,20,21,23,25,26,27,31,33,34,36,38,41,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,147,151,152,153,157,159,164,165,166,176,177,182,184,185,188,190,192,194,195,198,204,205,206,215,217,218,219,220,221,245,247,251,252,258,265,267,272,278,279,281,285,298,299,308,310,312,316,317,319,321,322,324,326,328,329,330,331,334,337,341,344,357,364],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,80,97,109,159,203,221],obj2:[11,80,97,109,127,159,203,221,322],obj3:[11,109,159],obj4:11,obj5:11,obj:[2,6,10,11,22,25,27,31,33,41,42,48,56,58,59,60,80,82,84,86,87,89,91,96,102,109,112,115,117,119,121,125,127,139,144,152,153,154,157,159,165,167,169,170,176,177,180,182,187,188,189,192,194,195,198,199,203,206,215,217,218,219,220,221,226,232,233,235,241,242,246,247,252,255,256,257,258,296,298,299,306,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,43,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,146,147,148,150,151,152,153,154,156,157,158,159,160,161,164,165,166,167,169,170,171,175,176,177,178,179,180,181,182,186,187,188,189,192,193,194,195,196,198,199,203,204,206,209,210,211,212,213,214,215,217,218,219,220,221,223,226,229,230,231,233,234,235,238,239,241,242,249,250,251,252,253,255,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,316,317,318,319,321,322,323,324,325,326,327,328,329,330,334,335,338,339,340,341,342,343,344,345,349,351,357,360,364],object_from_modul:344,object_id:134,object_search:[134,245],object_subscription_set:246,object_tot:[147,245,255,317],object_typeclass:[342,360],objectcr:357,objectdb:[11,53,59,96,112,119,120,125,133,141,246,247,252,314,316,324,329,341],objectdb_set:[148,316,319],objectdbmanag:[245,246],objectdoesnotexist:[148,177,239,246,256,274,316,319,335],objectform:357,objectmanag:[245,247,317],objectnam:[6,58],objects_objectdb:86,objectsessionhandl:[2,247],objectupd:357,objid:80,objlist:109,objlocattr:[232,241],objmanip:159,objmanipcommand:159,objnam:[27,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,81,88,159,165,187,206,223,233,291,322,344],obtain:[0,33,39,63,77,90,91,93,100,180,232,364],obviou:[0,59,61,103,121,128,138,190],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,204,219,234,242,247,260,299,328,337],occurr:[46,91,123,321],ocean:[90,122],oct:364,octob:364,ocw:124,odd:[22,49,61,103,126],odor:58,off:[0,11,14,20,23,24,29,31,33,36,40,41,49,50,51,55,61,64,66,74,80,81,86,88,90,100,103,107,108,110,114,115,123,126,135,138,139,144,154,169,170,171,175,182,188,206,226,231,233,242,247,272,280,287,290,306,318,321,322,324,326,328,329,330,337,345,364],off_bal:29,offend:12,offer:[1,4,11,14,22,26,28,31,33,34,37,39,40,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,144,152,153,158,159,166,169,179,180,187,205,233,249,257,308,328],offernam:179,offici:[38,72,100,103,127,131,337,364],officia:52,offlin:[9,15,79,90,109,158,164,322],offscreen:9,offset:[206,326,337],often:[2,5,10,11,15,22,26,28,31,33,38,40,41,42,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,159,167,169,175,180,215,217,218,219,220,221,242,246,256,258,267,272,286,306,316,318,322,324,330,337,344],ohloh:37,okai:[41,42,48,49,51,58,75,77,111,123,128,198],olc:[43,47,159,249,252,364],olcmenu:249,old:[0,1,5,9,21,25,27,31,38,39,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,179,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],on_:180,on_bad_request:269,on_ent:[22,180],on_leav:[22,180],on_nomatch:[22,180],onam:245,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,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,170,175,179,180,188,189,195,199,203,205,212,215,217,218,219,220,221,223,226,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,41,42,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,164,165,168,169,170,175,176,177,179,180,182,185,187,189,195,198,199,204,205,206,214,215,217,218,219,220,221,226,230,232,233,234,235,238,239,241,242,245,246,247,249,250,251,252,256,261,267,269,271,272,277,278,279,287,290,291,299,306,307,308,312,314,316,317,318,319,321,322,324,325,327,328,329,330,331,334,335,337,339,340,341,342,344,345,357,360,364],ones:[4,9,14,20,22,27,31,33,43,57,58,65,72,74,80,81,83,90,95,100,103,109,114,116,126,127,135,152,153,154,177,180,195,217,218,219,220,221,251,252,271,276,308,321,330,338],onewai: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,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,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,146,147,150,151,152,153,154,156,157,158,159,164,165,166,167,168,169,170,171,175,176,177,179,180,181,182,185,187,188,190,195,199,205,206,214,215,217,218,219,220,221,223,232,233,234,235,239,241,242,245,247,251,252,255,256,259,260,261,267,271,272,279,282,284,285,287,290,299,305,306,308,310,311,312,316,317,318,319,321,322,323,324,326,328,329,330,334,337,339,340,341,342,344,357,364],onlin:[7,12,15,21,37,41,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,177,180,188,281,322,364],onloggedin:[83,137],onlook:247,only_tim:[255,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,164,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,43,53,58,102,105,114,123,144,148,156,159,160,167,177,181,199,247],ooccmdsetchargen:181,ooclook:[105,181],opaqu:[15,103],open:[0,3,4,5,9,20,22,23,26,31,34,37,38,42,43,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,226,232,310,316,324,337,344,363,364],open_parent_menu:180,open_submenu:[22,180],open_wal:232,openhatch:79,opensoci:70,opensourc:321,oper:[9,11,12,14,22,27,33,41,42,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,170,175,180,185,206,232,242,247,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],opic:170,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,58,111,121,159,226],opt:[58,137,234],optim:[23,27,33,34,39,56,64,86,93,115,119,154,175,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,43,47,50,54,55,57,62,63,64,74,76,79,80,81,83,85,86,96,100,102,104,106,108,109,111,112,113,114,116,117,123,127,129,133,134,135,137,138,139,141,144,146,147,150,151,152,153,154,156,157,159,164,166,167,170,171,175,176,177,179,180,181,182,184,185,187,188,189,190,192,194,195,199,203,204,205,206,214,215,219,221,226,230,233,234,235,238,241,242,245,246,247,249,251,252,255,256,257,258,259,260,261,264,265,267,269,272,273,276,277,279,280,281,282,283,284,285,286,287,289,290,291,294,295,296,298,299,306,308,310,316,317,318,319,321,322,323,324,326,327,328,329,330,331,334,337,338,339,340,341,343,344,345,349,350,364],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,364],optioncontain:323,optionhandl:[141,142,320,338,364],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,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,179,180,181,182,183,185,188,203,204,206,217,218,219,220,221,231,232,233,234,241,242,245,247,252,278,290,295,299,306,316,318,321,322,328,329,330,337,341,344],order_bi:119,order_clothes_list:182,ordered_clothes_list:182,ordered_permutation_regex:206,ordered_plugin:83,ordereddict:[11,344],ordin:321,org:[37,38,90,204,234,283,289,295,321,344,357],organ:[5,6,9,22,38,69,73,80,89,102,108,111,112,119,124,129,131,132,154,166,170],organiz:102,orient:[55,57,64,96,124],origin:[0,4,9,21,25,29,41,49,51,55,57,60,75,76,79,81,89,91,96,102,103,105,106,119,131,136,138,144,146,152,159,180,199,205,206,234,245,247,251,252,255,276,310,318,321,328,340,343,344,363],original_object:245,original_script:255,ormal:321,oscar:[154,175,239,318],osnam:344,oss:106,ostr:[144,147,176,238,245,255,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,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,164,165,166,167,170,171,175,176,179,182,184,186,188,194,199,205,206,210,212,215,217,218,219,220,221,226,233,234,235,239,242,246,247,251,252,257,259,261,265,267,272,276,278,279,285,287,290,299,306,307,309,316,318,320,321,322,324,326,327,328,329,330,338,339,341,344,345,364],otherroom:212,otherwis:[0,4,11,15,23,25,27,29,31,33,37,39,41,42,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,147,151,152,156,159,164,175,179,183,187,188,192,195,206,217,218,219,220,221,235,242,247,250,251,252,260,267,278,279,287,306,310,311,321,328,329,337,341,342,344],otypeclass_path:245,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,177,187,215,231,232,235,242,257,312,337,363,364],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,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,164,179,181,184,186,188,199,205,206,209,210,212,213,217,218,219,220,221,230,232,251,252,259,267,269,291,295,296,298,307,308,316,325,327,328,330,343,344,357,364],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,247,279,291,307,344,364],outgoing_port:90,outlet:90,outlin:[36,43,111,133,278],outmessag:247,output:[4,14,20,22,26,27,34,40,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,164,166,169,170,171,178,180,184,189,207,208,210,217,218,219,220,221,247,267,272,287,291,299,306,321,328,329,337,340,344,364],outputcmd:291,outputcommand:[74,83,364],outputfunc:[40,59,83,247,272,278,364],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,166,204,220,231,241,291,306,307,316,319,330,364],outtempl:316,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,45,48,49,51,54,57,58,59,60,61,73,77,81,83,85,88,90,93,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,176,188,212,215,217,218,219,220,221,233,247,261,271,285,287,290,292,296,298,300,313,318,322,334,340,363],overal:[10,56,57,68,71,86,90,152,167,218,364],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,298,307,326,328,329,330,338,364],overrid:[1,3,4,9,20,21,22,25,31,36,51,53,54,68,69,80,83,91,96,102,105,107,109,117,118,121,135,137,144,154,159,164,166,170,175,176,180,187,195,205,219,221,233,234,242,247,251,252,259,290,308,312,316,321,328,329,334,337,338,341,364],overridden:[4,40,96,136,138,144,159,180,234,251,318,329],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,76,136,138,159,166,285,317],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,167,182,184,187,188,199,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,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,38,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,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,43,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,154,164,165,175,239,251,296,318,328,329,344,346,347,355,361,363,364],page_back:329,page_ban:[12,164],page_end:329,page_formatt:[251,329],page_next:329,page_quit:329,page_top:329,pageno:[251,329],pager:[52,139,329],pages:[51,328],pagin:[251,329],paginag:329,paginated_db_queri:251,paginator_django:329,paginator_index:329,paginator_slic:329,pai:[56,85,90,103,232],paid:90,pain:[90,138],painstakingli:13,pair:[31,83,116,137,138,144,152,182,241,247,308,357],pal:87,palett:126,pallet:111,palm:188,pane:[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,202,322,330,344],parallel:[57,62,69,317],paralyz:219,param:[67,159,247,261,269,279,312,343],paramat:[144,154,247,306],paramet:[0,22,24,31,36,39,42,46,49,62,91,100,106,119,127,141,144,146,147,150,151,152,153,154,159,164,166,170,175,176,177,179,180,182,184,185,187,188,189,190,192,193,194,195,198,199,204,205,206,209,210,212,215,217,218,219,220,221,226,230,233,234,235,238,239,242,245,246,247,249,251,252,255,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,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,206,215,234,246,247,251,252,256,316,317,318,326,335,337,344,364],parent_categori:215,parent_kei:[22,180],parenthes:95,pari:[79,90],pariatur:52,paricular:33,park:180,parlanc:3,parri:[116,232],parrot:118,pars:[3,15,31,33,38,40,50,51,63,81,83,88,97,104,108,109,114,123,124,129,134,139,149,150,151,154,159,165,166,167,169,170,179,180,185,186,187,199,206,209,210,211,215,226,232,233,234,242,247,250,251,252,272,279,282,291,295,296,298,308,316,321,322,326,327,328,343,344,364],parse_ansi:321,parse_ansi_to_irc:279,parse_fil:322,parse_html:343,parse_input:328,parse_irc_to_ansi:279,parse_languag:206,parse_menu_templ:[51,328],parse_nick_templ:316,parse_opt:215,parse_sdescs_and_recog:206,parseabl:251,parsed_str:279,parseerror:234,parser:[33,38,41,47,79,104,108,109,134,150,151,156,159,166,167,169,171,186,187,203,205,206,232,233,234,251,286,321,343],parsingerror:344,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,95,102,105,106,111,114,116,117,119,122,123,124,125,127,131,135,136,137,138,139,140,151,152,154,164,167,168,170,175,179,180,185,203,206,215,220,226,233,238,241,242,250,251,259,267,271,296,298,307,310,312,316,317,321,322,326,328,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,364],partial:[25,68,164,166,205,245,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,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,147,151,152,159,176,187,210,219,220,238,241,242,255,256,308,310,318,334,341],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,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,164,170,171,175,182,184,185,188,189,194,206,209,210,212,215,217,218,219,220,221,226,232,241,242,247,250,251,257,260,261,265,267,277,285,287,290,295,296,306,312,316,318,319,327,328,329,330,331,337,338,339,340,343,344],passag:[83,116,182,232,233,331],passant:126,passavataridterminalrealm:287,passiv:[29,116,133],passthrough:[1,31,259],password1:357,password2:357,password:[4,9,12,23,35,36,43,51,64,74,80,103,131,139,144,156,157,171,186,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,147,219,313,322,331],pastebin:37,pat:245,patch:[125,342,364],patch_:37,path:[0,2,4,8,14,20,21,22,27,29,38,39,40,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,154,158,159,160,161,162,163,164,175,177,179,180,181,182,184,185,187,189,195,198,203,204,205,206,212,213,214,217,218,219,220,221,223,226,230,231,232,233,235,239,245,246,247,251,252,255,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,364],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,316,344],pattern_is_regex:316,paul:125,paus:[10,39,46,51,100,102,110,116,159,169,170,194,259,260,328,344,364],pausabl:344,pauseproduc:269,pax:364,paxboard:79,payload:[278,295],paypal:[37,70],paypalobject:70,pdb:[139,141,364],pdbref:[80,241],pdf:79,peac:117,peek:[20,26,51,91],peer:[278,295],peform:272,peg:103,pem:67,pemit:[108,157],penalti:[86,219],pend:312,pennmush:[57,108,129,171],pentagon:103,peopl:[2,20,21,26,37,54,55,58,61,64,68,71,72,73,79,80,81,85,90,95,96,97,103,108,114,116,119,139,164,165,186,206,232,233,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,164,187,205,217,218,219,220,221,231,245,247,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,51,52,55,59,71,74,75,80,89,91,93,97,102,103,114,116,117,123,133,134,144,150,152,156,159,164,166,180,182,188,194,195,206,209,215,217,218,219,220,221,245,247,251,256,257,271,276,290,298,299,316,317,318,325,328,329,338,341,344,345,357],perhap:[16,22,42,46,62,69,77,91,97,108,138],period:[90,95,96,100,103,127,128,130,344],perist:[34,125],perm1:319,perm2:319,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,319,344],perm_abov:[80,241],perm_us:157,perman:[4,5,12,21,24,25,31,51,85,90,96,122,123,138,156,159,164,165,169,205,260,318],permiss:[2,4,7,8,9,11,12,18,20,21,23,25,31,41,45,66,68,70,71,75,93,108,109,123,133,139,144,147,148,152,154,156,157,158,159,164,165,167,175,193,206,221,239,241,242,246,247,251,252,256,316,317,318,319,322,324,337,341,344,364],permission_account_default:[80,298],permission_func_modul:241,permission_guest_default:66,permission_hierarchi:[19,80,241,242,319],permissionerror:251,permissionhandl:[133,319],permit:[41,78,159,311],permstr:[80,144,318,324],permut:206,perpetu:[93,364],persis:29,persist:[0,6,21,22,27,31,33,34,51,55,56,57,60,64,79,84,86,89,102,104,105,109,110,115,116,121,123,125,144,148,152,153,159,169,177,180,184,188,195,205,206,213,215,217,218,219,220,221,226,230,232,239,246,247,249,251,256,257,259,260,261,272,273,274,305,306,310,314,318,324,326,328,330,331,344,364],person:[12,21,61,63,70,73,90,102,105,118,129,139,144,159,164,165,175,179,185,206,364],persona:96,perspect:[73,76,77,105],pertain:[103,126,136],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:[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,51,55,62,68,72,73,80,85,90,95,96,100,102,104,106,111,119,132,151,156,159,165,167,182,190,206,221,232,233,247,251,299],pickl:[11,29,83,115,257,261,264,274,276,277,316,317,325,326,328,340,344],pickle_protocol:340,pickledfield:[245,340],pickledformfield:340,pickledobject:340,pickledobjectfield:340,pickledwidget:340,picklefield:[141,142,320,364],pickpocket:166,pickup:[221,247],pictur:[21,40,57,106,138,364],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,364],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,41,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,175,179,180,182,184,188,203,206,209,217,218,219,220,221,226,232,233,235,247,255,259,276,285,290,306,307,308,316,322,323,325,328,344,364],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,364],plain:[13,14,38,58,86,88,123,164,175,179,180,202,252,272,298,325],plaintext:210,plan:[9,14,15,40,41,42,45,55,56,90,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],player1:247,player2:247,player:[9,10,11,12,19,20,21,22,25,29,31,34,40,41,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,169,176,179,180,188,190,198,199,203,205,206,210,214,215,220,221,226,233,234,235,238,256,281,290,307,322,327,328,344,357,364],playernam:71,playerornpc:9,pleas:[4,5,8,16,17,26,31,37,51,63,70,71,72,75,78,90,93,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,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,136],po1x1jbkiv_:37,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,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,164,167,179,189,206,212,217,233,234,235,247,249,251,261,267,271,285,287,295,306,308,316,318,322,328,344,347,364],pointer:[26,49,56,91],pointless:[6,10,89,115,166],poison:[219,252],poke:119,pole:203,polici:[43,45,90,103,139,210,239,311,316,364],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,226,230,231,232,233,247,260,261,298,322,326,327,329],popular:[9,57,64,79,103,108],popup:[137,138],port:[0,8,9,23,36,54,55,63,67,72,100,101,110,146,164,276,279,287,299,308,312,364],portal:[40,45,47,53,79,88,89,90,93,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,364],portalsessiondata:308,portalsessionhandl:[40,141,142,262,275,286,308,364],portalsessionsdata:308,portion:[77,180,190],pose:[29,43,58,116,144,165,195,206,226],pose_transform:175,posgresql:23,posit:[13,20,22,39,49,51,91,111,116,126,127,137,138,139,153,171,180,186,202,221,232,233,234,235,247,260,321,322,325,326,330,344,345,364],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,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,147,148,150,152,159,166,167,179,187,194,203,205,206,214,231,233,235,242,245,247,250,251,252,257,261,272,292,296,306,308,316,317,319,321,324,326,327,328,330,331,340,341,344,364],post:[5,31,34,37,55,57,58,61,63,69,70,71,80,98,107,111,120,133,136,210,259,296,364],post_delet:107,post_init:107,post_join_channel:175,post_leave_channel:175,post_migr:107,post_mov:247,post_sav:107,post_send_messag:175,post_text:190,postfix:205,postgr:[23,64],postgresql:[55,344,364],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,166,176,210,211,241,242,247,251,338,341,344],potion:[77,318],power:[15,19,20,29,30,31,33,42,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,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,47,49,54,61,63,71,89,90,111,114,138,144,159,166,205,242,247,251,252,295,296,299,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,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,47,55,57,71,80,90,91,96,106,109,111,123,131,137,138,152,154,157,180,206,218,231,238,245,247],prefix:[20,22,23,42,76,86,97,103,125,144,151,166,168,175,190,205,245,272,279,310,321,337,341,344,357],prefix_str:25,prematur:[27,93,179],prepai:90,prepar:[3,49,57,87,109,127,136,144,164,206,217,218,219,220,221,231,256,325,340,363,364],prepars:38,prepend:[199,206,247,321,322,328,344],preprocess:159,prerequisit:[9,36,364],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,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,226,232,265,328],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,175,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,364],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,164,215,233,249,328,329,337],previous:[20,31,34,49,50,67,72,74,91,102,104,114,119,127,133,136,154,157,159,164,175,179,272,288,292,299,308,319,344],prgmr:90,price:[90,232],primari:[17,100,125,133,206,245,247,316,341],primarili:[2,12,34,36,37,38,55,61,108,144,179,206,238,285,325,344],primary_kei:133,prime:[150,179],primit:[61,159],princess:[111,122],principl:[2,9,19,26,30,33,37,38,40,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,50,51,58,59,83,86,91,95,96,97,110,113,125,156,185,205,234,251,266,267,327,328,329,330,337,344],print_debug_info:328,print_help:234,print_usag:234,printabl:293,printout:290,prio:[25,31,33,150,233,319],prior:[117,194,247],priorit:[205,319],prioriti:[4,25,31,33,44,51,97,116,152,156,160,161,162,163,167,180,230,232,233,247,326,328,329],privat:[4,8,38,57,61,69,90,131,164,165,279,292],private_set:9,privatestaticroot:312,privileg:[21,23,60,63,65,72,98,123,165,206,235,247,318,364],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,166,180,198,204,233,269,279,287,334,344,345],problem:[11,13,15,21,22,23,24,25,26,27,36,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,364],problemat:[25,344],proce:[14,15,100,121,126,164,294],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,49,51,55,59,61,64,67,73,75,76,83,88,89,90,91,92,93,100,106,122,131,133,138,139,144,150,152,159,169,175,179,206,215,234,240,242,247,251,257,260,267,272,276,277,284,287,290,295,296,299,305,306,308,316,321,322,325,328,338,343,344,345,364],process_languag:206,process_recog:206,process_sdesc:206,processed_result:344,processor:[18,43,93,110,111,124,139,141,142,158,169,320,364],procpool:344,produc:[33,51,96,114,123,131,156,159,203,205,232,235,247,251,252,266,298,316,318,327,328,344],produce_weapon:232,producion:27,product:[23,26,36,90,93,103,106,128,131,135,298,301,328,364],production_set:9,prof:93,profession:[3,57,64,108],profil:[45,65,139,141,142,148,188,262,364],profile_templ:188,profit:138,profunc:109,prog:234,progmat:56,program:[2,10,15,23,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,171,234,262,267,290,296,298,364],programm:[91,95],programmat:[114,138],progress:[70,73,79,85,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,364],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,170,215,265,279,290,295,296,322,328,364],promptli:14,pron:247,prone:[1,128,153,318],pronoun:[189,247],prop:61,propag:[8,152,271,340],proper:[15,21,23,27,36,39,44,56,57,61,64,85,91,96,100,103,116,123,127,131,133,135,137,138,159,170,179,180,196,205,247,327],properi:166,properli:[9,29,58,62,69,84,106,108,117,125,126,127,128,131,133,140,154,179,211,233,241,260,261,287,344],properti:[5,6,13,22,25,39,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,146,148,154,156,159,167,169,170,175,177,180,188,194,203,206,215,217,219,220,221,226,231,232,233,234,235,239,241,242,245,246,247,251,252,256,258,259,260,271,272,274,279,285,298,299,306,307,308,316,318,319,323,325,328,338,339,340,341,344,357,364],property_nam:245,property_valu:245,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,90,159,226],protfunc:[141,142,248,251,252,364],protfunc_callable_protkei:250,protfunc_modul:251,protfunc_pars:251,protfunct:251,protkei:[109,250,251],proto:[276,287],proto_def:203,protocol:[24,27,33,47,53,64,72,74,79,83,90,92,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:169,protototyp:[249,251,252],protototype_tag:109,prototoyp:250,prototyp:[45,46,47,53,55,120,139,141,142,159,203,218,219,232,364],prototype1:252,prototype2:252,prototype_:109,prototype_desc:[109,252],prototype_dict:159,prototype_diff:252,prototype_diff_from_object:252,prototype_from_object:252,prototype_kei:[109,159,251,252],prototype_keykei:159,prototype_lock:[109,252],prototype_modul:[109,159,251,252],prototype_pagin:251,prototype_par:[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,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,171,175,180,182,188,190,193,203,204,215,217,218,219,220,221,234,235,241,247,250,259,267,287,310,317,319,328,338,339,340,344,345,357],provok:[42,79],proxi:[47,60,67,70,103,125,312,364],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,164,175],pubkeyfil:287,publicli:[54,61,79,364],publish:[21,36,79,100],pudb:[141,364],puff:56,pull:[25,31,33,36,37,38,64,100,128,131,136,198,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,177,181,199,241,247,306,308,318,319,360,364],puppet_object:[2,144],purchas:[67,85],pure:[46,56,88,114,125,126,256,267,316,321],pure_ascii:344,purg:[11,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,226,232,364],pushd:63,put:[0,2,3,5,6,10,12,13,14,19,20,21,23,25,33,37,38,42,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,242,276,290,329,330,344,364],putti:90,puzzl:[79,122,141,142,178,232,233,364],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,75],python:[0,2,3,4,9,10,11,12,14,15,19,20,21,22,23,27,29,31,33,37,38,39,42,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,198,204,234,235,242,245,246,250,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,347,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,43,121,156,212,241,364],quell_color:159,queri:[11,16,34,39,56,64,83,86,109,112,131,148,164,166,177,206,238,239,245,246,247,251,252,256,274,287,302,316,317,318,319,329,335,341,344,345,364],quersyet:119,query_al:316,query_categori:316,query_info:267,query_kei:316,query_statu:267,queryset:[64,102,112,119,147,176,199,238,245,251,255,273,317,329,341],queryset_maxs:329,quest:[55,57,61,63,117,122,139,233],question:[8,10,22,26,33,34,50,51,57,61,63,67,70,73,90,96,124,131,135,159,170,246,264,265,316,326,328,344],queu:267,queue:[36,116,312],qui:52,quick:[5,18,22,31,33,38,39,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,364],quicker:[0,37,86,87],quickli:[10,11,15,25,33,34,39,48,51,86,89,96,112,114,120,128,136,139,159,180,205,319,322],quickstart:[90,95,139,364],quiescentcallback:269,quiet:[25,85,144,157,159,164,180,182,206,247,329,344,364],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,43,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,50,51,80,95,96,109,114,118,159,171,186,206,326,328,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,170,176,180,184,185,187,192,194,195,204,205,206,242,250,251,261,266,267,285,290,296,311,316,317,319,321,322,324,327,328,330,337,338,339,340,344,345],raise_error:[339,344],raise_except:[1,316],ram:[11,90],ramalho:79,ran:[13,36,42,127,259],rand:102,randint:[73,91,109,116,120,123,217,218,219,220,221,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,226,228,232,233,235,252,298,299,344],random_string_from_modul:344,random_string_gener:[141,142,178,364],randomli:[86,93,102,120,132,217,218,219,220,221,226,231,232,267,299],randomstringgener:204,randomstringgeneratorscript:204,rang:[24,31,39,42,49,50,56,59,63,88,91,93,103,109,111,116,118,120,122,127,159,184,188,218,221,317,326,357],rank:[19,241],raph:79,rapidli:153,raptur:291,rare:[10,22,33,34,38,63,86,104,106,115,128,164,242,324],rascal:112,rate:[33,37,64,90,164,261,267,286,344],rather:[2,3,11,13,20,22,25,26,29,33,37,38,39,41,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,166,167,169,175,179,190,194,202,206,217,218,219,220,221,236,247,249,251,252,316,318,321,330,339,340,343],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,316,321,326,328,338,344],raw_cmdnam:[151,168],raw_desc:187,raw_input:[85,328],raw_nick:87,raw_str:[33,51,85,144,146,150,151,154,170,188,215,230,247,249,306,316,328],raw_templ:87,rawstr:[154,170],rcannot:22,rdelet:159,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_mxpurl: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,287,291,310,328,329,341],reachabl:[64,115],react:[51,115,117,118,231,247],reactiv:169,reactor:[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,46,51,55,56,58,59,60,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,165,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,344,363,364],read_batchfil:322,read_default_fil:36,readabl:[1,27,38,49,51,93,96,108,114,115,125,166,232,321,328],readable_text:232,reader:[38,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,206,217,218,219,220,221,247,296,329,338,344],readili:[23,111],readin:327,readlin:337,readm:[14,37,47,53,130,131,178,210],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,364],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,126],realiz:[48,96,126,131],realli:[4,10,11,12,13,14,19,20,22,25,26,31,33,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,realtim:[58,184],realtime_to_gametim:184,reason:[8,9,11,12,13,22,25,29,34,37,38,39,40,41,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,245,247,251,257,264,269,276,277,278,279,285,286,287,290,295,296,298,306,307,308,318,326,337,344],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,259,261,267,307,308,326,328,364],reboot_evennia:267,rebuild:[58,63,100,128,279],rebuilt:33,rec:206,recach:233,recal:[95,138,232],recapcha:364,recaptcha:133,receipt:[103,269],receiv:[31,33,34,37,41,42,51,52,58,77,83,87,91,105,113,114,127,133,137,138,144,152,153,170,171,175,176,177,186,199,206,210,247,269,272,276,278,279,285,295,296,298,305,306,324,329,341,344,364],receive_functioncal:276,receive_status_from_port:267,receiver1:170,receiver2:170,receiver_account_set:148,receiver_extern:177,receiver_object_set:246,receiver_script_set:256,recent:[4,17,25,60,67,123,147,310],recev:296,recip:[0,28,115,203],recipi:[34,58,144,175,176,199,247,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],recommend:[9,12,23,24,25,26,36,37,38,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,245,247,269,322,328,341],reconfigur:90,reconnect:[144,146,164,175,264,267,276,278,279,305,308],reconnectingclientfactori:[264,278,279,298],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,59,80,87,95,109,114,126,159,169,226,232,321,345],red_bal:59,red_button:[13,14,20,87,141,142,159,178,222,364],red_button_script:[141,142,178,222,364],red_kei:80,redbutton:[13,14,20,87,159,226],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,361],redistribut:34,redit:180,redo:[50,61,326],redraw:287,reduc:[116,217,218,219,220,221,280,364],redund:321,reel:153,reen:[114,321],ref:[23,38,125,206,247,344,357],refactor:[45,57,139,247,363,364],refer:[0,8,9,13,19,20,22,31,33,34,37,40,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,175,179,188,204,206,217,218,219,220,221,241,247,258,260,261,269,279,299,307,317,328,334,340,341,344,364],referenc:[38,56,89,104,109,154,159,164,175,206,239,318,344],referenti:344,referr:90,refin:[49,119],reflect:96,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,175,179,189,206,247,261,284,287,290,305,307,316,319,322,334,337,344],regener:219,regex:[33,50,51,87,127,137,154,157,169,170,183,204,206,311,316,328,344,347],regex_nick:87,regex_tupl:206,regex_tuple_from_key_alia:206,region:[58,90,140,157],regist:[65,71,83,103,104,116,120,131,133,135,137,138,144,147,164,169,198,231,232,257,267,278,279,285,308,310,312,321,360,364],register_error:321,register_ev:198,registercompon:137,registertest:360,registr:65,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,233,242,261,316,319,334,344,347,363],regulararticl:335,regulararticle_set:335,regularcategori:335,regularli:[67,85,98,102,120,128,132,184,231,233,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,38,49,51,82,104,123,131,133,184,221,322,328],relai:[27,33,72,105,144,164,179,189,247,285,308,328,329,344],relat:[28,31,33,34,47,51,56,57,72,79,96,102,103,104,110,125,132,137,138,139,148,149,152,167,172,176,177,184,198,210,217,218,219,220,221,230,233,239,246,247,255,256,261,272,308,316,318,319,321,328,335,337,346,350,357,364],related_nam:[148,177,239,246,256,316,318,319,335],relationship:[34,49,119,125],relay:146,releas:[9,28,37,55,63,78,79,90,96,169,364],releg:1,relev:[3,9,11,14,22,30,33,37,38,47,58,62,79,80,89,96,107,112,114,116,119,123,124,125,133,135,140,144,150,152,179,180,242,258,281,299,306,307,308,321,326,328,338,364],relevant_choic:180,reli:[9,34,41,51,62,70,81,85,86,88,91,114,115,119,126,127,135,189,206,233,267,318,328,364],reliabl:[13,23,25,29,125,334],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,43,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,202,206,212,213,232,233,235,242,247,257,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,50,51,58,77,90,91,96,97,107,109,110,113,151,153,159,161,165,181,184,187,205,217,218,219,220,221,231,247,267,295,296,328,329,344],remaind:[21,33,184],remaining_repeat:102,remap:316,remark:364,remedi:60,rememb:[0,1,4,5,11,12,13,21,22,28,29,31,33,39,41,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,364],remit:157,remnisc:57,remot:[25,100,103,164,276,278,290,364],remov:[0,1,4,9,11,12,21,22,27,31,36,39,41,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,170,175,177,180,182,187,188,192,196,203,204,205,206,215,217,218,219,220,221,226,242,246,247,252,257,260,261,267,285,296,308,310,316,319,321,325,328,334,340,342,343,344,364],remove_alia:164,remove_backspac:343,remove_bel:343,remove_charact:116,remove_default:[31,153],remove_non_persist:255,remove_receiv:177,remove_send:177,remove_user_channel_alia:175,removeth:316,renam:[9,20,43,58,81,136,159,165,247,255,318],render:[3,22,38,69,81,102,107,133,134,136,166,190,312,338,340,347,355,357],render_post:296,renew:[29,58,67,310],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,344,364],repeatedli:[14,42,62,74,102,139,231,256,259,261,267,272,298,350],repeatlist:74,repetit:[62,116,204],replac:[5,6,9,22,23,25,29,30,31,33,36,38,41,50,51,57,69,74,80,87,89,95,96,100,104,105,109,111,114,116,119,134,135,136,137,138,144,151,152,153,154,157,165,166,169,170,175,179,181,183,186,187,188,192,195,202,203,205,206,226,230,233,234,242,247,249,251,252,279,282,295,296,306,316,321,326,327,328,329,330,343,344,347],replace_data:330,replace_timeslot:187,replace_whitespac:330,replacement_str:165,replacement_templ: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,319],repo:[38,47,57,79,106,131,139,344,364],report:[22,24,26,33,37,43,61,63,70,73,75,84,91,93,97,102,103,104,115,116,127,131,136,138,159,164,192,195,206,234,247,267,272,279,282,283,290,291,295,298,306,308,321,324,328,344],report_to:324,repositori:[8,9,23,25,36,38,63,76,78,96,100,130,252,364],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,176,182,188,190,192,198,204,205,206,210,212,215,219,232,233,234,247,252,260,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,245,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,51,63,69,80,90,103,107,119,123,131,133,134,135,139,144,146,157,179,195,247,251,267,269,276,279,281,286,287,289,296,312,319,328,349,350,351,355],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,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,102,109,110,111,114,115,116,118,119,125,126,127,129,132,133,134,136,137,147,158,159,164,176,177,185,186,187,188,202,204,206,215,219,220,233,234,238,241,245,247,251,260,267,278,279,292,300,311,317,322,327,328,329,330,334,339,340,341,344,357,364],require_al:319,require_singl:251,requr:109,requri:251,rerout:[138,156,160,279],rerun:[13,14,51,122],research:[79,194],resembl:[25,55,129],resend:33,reserv:[1,10,33,95,96,111,251,311,317,344],reset:[0,7,12,15,17,23,27,29,31,33,43,44,50,60,66,73,81,102,104,105,111,114,116,121,123,125,126,139,144,146,153,159,169,184,195,206,232,242,267,271,277,287,305,316,319,322,330,331,342,344,364],reset_cach:[316,319],reset_callcount:102,reset_gametim:[27,331],reset_serv:271,reset_tim:187,reshuffl:364,resid:[47,96,108,242],residu:[169,219],resist:[252,344],resiz:[58,138,327,330],resolut:[114,116],resolv:[26,29,38,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,38,54,58,164,206,344],resourc:[9,23,26,28,38,41,47,48,53,56,90,95,96,103,108,115,124,135,136,139,144,220,257,265,296,312,323,342,364],respect:[0,6,23,33,48,58,80,104,105,123,125,157,159,166,179,199,203,206,213,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,154,164,175,233,235,239,247,265,267,269,276,298,299,308,318,338,340,344],resport:344,rest:[17,29,33,38,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,247,255,257,259,260,261,271,284,305,306,307,344,364],restartingwebsocketserverfactori:[146,278],restock:85,restor:[0,31,102,126,180,220,257,261],restrain:[159,241,327,344],restrict:[4,8,11,19,20,47,59,68,73,80,90,109,111,115,125,134,137,159,182,204,220,221,242,245,252,255,324,326,328,330,341],restructur:[38,56],result1:203,result2:[51,203],result:[10,11,23,27,30,31,33,38,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,147,151,152,154,159,166,170,175,177,179,185,188,203,204,205,206,209,217,218,219,220,221,233,238,242,245,247,251,252,255,267,276,298,316,318,321,326,327,328,330,334,337,338,341,344,345],result_nam:203,resum:[29,33,102,260],resurrect:231,resync:[146,276,306],ret:[33,170],ret_index:344,retain:[10,27,31,51,97,111,138,189,239,252,313,318,322,324,337,344],retain_inst:154,retext:38,retract:179,retreat:221,retri:267,retriev:[0,33,69,74,86,96,97,108,112,119,123,139,140,144,148,150,153,159,164,169,170,176,187,194,238,241,246,251,265,272,273,279,285,294,316,319,325,334,339,341,344,364],retriv:[146,323],retroact:[58,125],retur:52,return_appear:[48,49,60,122,123,182,187,206,232,247],return_apper: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,164,177,235,239,246,256,312,316,318,319,321,335],reverseerror:[267,276],reversemanytoonedescriptor:[148,246,335],reverseproxyresourc:312,revert:[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],rewritemim:70,rfc1073:283,rfc858:289,rfc:[283,289],rfind:321,rgb:[114,321],rgbmatch:321,rhel:8,rhost:171,rhostmush:[57,108,129],rhs:[25,58,167,170],rhs_split:[159,165,167],rhslist:167,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,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,153,156,159,167,169,171,175,181,187,188,190,195,196,203,221,226,231,232,233,235,242,252,256,307,321,322,326,330,344,345],right_justifi:109,rigid:57,rindex:321,ring:205,ripe:96,rise:[31,62],risen:62,risk:[38,57,63,90,123,138,158,169,344],rival:111,rjust:321,rm_attr:159,rnormal:114,rnote: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,364],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,364],rom:[79,364],roof:159,room1:127,room56:13,room:[9,12,13,14,15,20,21,22,27,31,33,42,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,206,212,213,214,217,218,219,220,221,226,229,230,231,232,234,235,241,247,256,271,299,322,342,360,364],room_count:119,room_flag:56,room_lava:56,room_typeclass:[235,342,360],roombuildingmenu:[22,180],roomnam:[58,159],roomobj:119,roomref:121,root:[9,13,22,23,36,38,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,rotate_log_fil:337,rotatelength:337,rough:38,roughli:[58,61,96,344],round:[17,205,221,298,330],rounder:205,rout:[5,20,49,56,121,137,144],router:90,routin:[206,245,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,364],rpm:63,rpobject:206,rpsystem:[38,141,142,178,202,205,364],rpsystemcmdset:206,rred:321,rsa:[287,288],rspli8t:91,rsplit:[123,321],rsrc:70,rss2chan:[43,98,164],rss:[7,55,79,128,139,141,142,146,164,172,262,272,275,285,364],rss_enabl:[98,164],rss_rate:146,rss_update_interv:164,rss_url:[98,146,164],rssbot:146,rssbotfactori:286,rsschan:164,rssfactori:286,rssreader:286,rst:364,rstop:159,rstrip:[91,321],rsyslog:209,rtest2:114,rtext:85,rthe:22,rthi:114,rtype:312,rubbish: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,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,165,166,169,170,175,195,196,206,209,213,215,217,218,219,220,221,230,235,241,242,247,251,252,255,256,259,260,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,363,364],run_async:[10,344],run_connect_wizard:267,run_custom_command: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,364],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,285,316,328,344],runtimewarn:251,rusernam:51,rush:29,rusti:85,ruv:36,ryou:22,sad:[133,290,328],sadli:171,safe:[11,26,30,31,46,56,60,64,82,89,97,104,131,133,144,156,179,242,261,276,308,312,318,322,325,334,344],safe_convert_input:344,safe_convert_to_typ:344,safe_ev:344,safer:[12,13],safest:[0,90,105,318],safeti:[2,56,89,90,123,125,139,159,179,246,322,364],sage:364,sai:[0,5,6,10,12,14,17,20,22,25,26,27,29,31,33,39,40,41,43,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,175,179,181,185,188,198,205,206,215,226,233,247,328],said:[0,4,10,22,26,44,46,49,51,57,83,91,96,111,112,118,127,134,151,164,168,206,235,247,279,316,318,328],sake:[13,57,126,135,171,186],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,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,164,167,168,169,170,171,180,182,184,187,190,194,195,199,204,205,206,212,214,215,217,218,219,220,221,231,233,234,235,241,247,251,252,256,257,261,271,276,288,291,292,306,307,308,310,312,316,317,318,319,321,322,324,328,329,330,331,337,338,344,357,364],sampl:[8,36,56,100,215],san:190,sand:62,sandi:111,sane:[38,61,79,96],sanit:357,saniti:[9,49,111,127,139,338],sarah:[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,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,156,159,169,175,177,180,195,205,242,246,247,249,251,252,257,259,260,261,265,272,285,300,305,312,316,318,325,326,334,338,339,340,344,364],save_buff:326,save_data:338,save_for_next:[33,154],save_handl:338,save_kwarg:339,save_nam:261,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,38,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,55,59,61,73,74,97,109,112,114,116,122,126,204,233,256,261,334],schedul:[27,62,184,195,260,331],schema:[4,64,86,125,131,344,364],scheme:[28,33,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,364],scratch:[40,46,57,58,61,63,123,124,128,136,139,271],scream:122,screen:[7,16,18,33,51,52,61,66,74,81,85,97,100,101,104,105,109,114,127,133,138,139,171,186,190,221,272,287,329,344,364],screenheight:[74,272],screenread:[43,74,171,272,295,296],screenshot:[55,133,139,364],screenwidth:[74,154,272],script:[6,11,13,14,20,27,36,43,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,176,177,178,179,184,187,191,192,198,203,204,205,213,217,218,219,220,221,223,226,233,235,246,247,251,252,267,300,305,322,323,324,331,339,341,342,344,360,364],script_copi:255,script_search:[59,255],script_typeclass:[228,342,360],scriptbas:259,scriptclass:258,scriptdb:[53,119,125,141,256,314],scriptdb_set:[148,246,316,319],scriptdbmanag:[255,256],scripthandl:[141,142,253,364],scriptmanag:255,scriptnam:[159,323],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,96,102,104,109,116,123,124,125,127,131,134,136,139,140,141,142,144,147,150,152,154,159,164,166,175,176,179,194,199,203,206,217,218,219,220,221,233,235,238,239,241,245,247,251,252,255,258,273,316,317,318,319,320,321,324,326,344,347,363,364],search_:[27,59],search_account:[27,53,58,107,119,141,147,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:[27,41,53,119,141,164,176,341],search_channel_tag:[119,341],search_field:166,search_for_obj:159,search_help:[27,53,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,179,180,181,182,185,186,187,188,189,193,199,202,203,206,212,213,214,215,217,218,219,220,221,226,231,232,233,234,239,247,298,326,328,329],search_messag:[27,53,119,141,176,341],search_mod:206,search_multimatch_regex:247,search_object:[11,13,27,53,111,119,121,125,141,144,245,341],search_object_attribut:119,search_object_by_tag:53,search_objects_with_prototyp:251,search_prototyp:251,search_script:[27,53,59,102,119,141,255,341],search_script_tag:[119,341],search_tag:[27,48,112,119,140,141,341],search_tag_account:112,search_tag_script:112,search_target:199,searchabl:194,searchdata:[144,206,245,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,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,128,132,134,144,146,151,159,164,166,170,184,194,195,198,206,213,217,218,219,220,221,223,231,241,247,252,260,261,267,272,281,286,299,310,321,324,328,331,337,344,345],secondari:[81,307],secondli:89,secreci:131,secret:[9,65,71,185,267,364],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,166,187,205,247,252,321,322,328,345],sector:49,sector_typ:49,secur:[7,11,13,22,26,37,41,57,63,80,85,90,96,108,109,114,123,133,134,139,141,142,154,158,169,175,178,239,247,287,318,337,344,357,364],secure_attr:80,sed:36,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,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,169,170,171,175,178,179,180,186,190,192,199,203,204,205,206,210,213,214,215,217,218,219,220,221,223,226,231,233,234,235,239,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,339,340,344,351,357,364],seek:[122,242,337],seem:[4,22,24,31,39,41,56,61,63,75,109,110,119,121,122,123,137,138,171,316,322],seen:[0,22,29,31,34,38,40,46,49,51,57,58,69,81,91,95,96,102,105,111,119,120,121,126,127,131,180,279,330],sefsefiwwj3:9,segment:[121,312],seldomli:[154,170],select:[2,20,22,27,31,51,54,63,69,77,80,85,86,104,105,106,111,119,120,123,131,133,137,138,140,151,152,157,215,218,318,326,328,364],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,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,169,170,171,175,177,179,180,181,182,185,187,188,192,199,202,203,206,215,217,218,219,220,221,223,226,230,231,232,233,234,235,241,247,260,265,267,269,270,274,278,279,285,287,288,290,292,294,295,296,298,306,307,308,316,318,319,321,326,328,329,334,338,339,340,344,351,364],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,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,153,154,157,164,170,175,176,177,179,188,189,199,206,210,221,223,230,231,247,260,261,264,267,269,270,272,276,277,278,279,280,282,285,286,287,289,290,291,293,295,296,298,299,306,307,308,309,321,324,325,328,330,344,364],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:[83,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_to_online_onli:175,send_unsubscrib:278,sender:[34,41,107,144,146,175,176,177,179,206,247,278,309,324,334,341],sender_account_set:148,sender_extern:177,sender_object:309,sender_object_set:246,sender_script_set:256,sender_str:175,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,226,324,325,328],sensibl:90,sensit:[11,51,58,80,147,176,180,184,187,195,210,211,238,317,319,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,170,175,176,177,180,186,188,195,199,210,228,234,247,264,267,269,272,276,277,278,279,287,291,295,306,308,316,328,341,364],sentenc:[46,91,198,205,206,344],sep:[321,344],sep_kei:[22,180],separ:[8,11,13,14,20,23,29,31,33,37,38,40,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,169,170,180,195,198,199,205,206,215,217,218,219,220,221,233,235,238,242,245,246,247,251,257,261,286,291,296,308,321,322,324,327,341,344,364],separatli:29,sept:364,seq:87,sequenc:[10,13,14,15,33,38,64,80,81,87,89,113,126,154,158,170,175,184,206,242,265,271,321,322,328,330,343,344],seri:[51,61,79,114,131,136,138,330],serial:[11,83,138,250,260,261,285,325,338,340,344],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,43,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,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,202,206,207,208,209,212,213,231,232,233,235,247,255,256,257,259,261,313,318,322,324,325,328,331,334,337,344,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,364],serverconfig:[260,261,273,274],serverconfigmanag:[273,274],serverfactori:[277,287,290],serverload:[43,169],serverlogobserv:337,servermsg:337,servernam:[4,8,9,54,74,90,104],serverprocess:43,serversess:[40,105,114,141,142,210,242,262,285,308,316,364],serversessionhandl:[40,105,308,364],serverset:[80,164,241],servic:[12,23,40,43,45,67,71,90,100,103,104,110,131,133,141,142,169,262,264,267,268,276,277,284,305,312,344,364],sessdata:[307,308],sessid:[2,33,105,123,246,247,264,276,277,285,308],session:[2,12,15,24,31,33,40,43,45,47,51,53,57,74,81,84,88,89,91,96,100,107,114,123,127,138,139,141,142,144,146,147,148,150,151,152,154,156,157,160,162,167,171,186,188,189,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,344,345,364],session_data:308,session_from_account:308,session_from_sessid:308,session_handl:[53,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,364],sessionid:285,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,43,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,170,171,172,175,180,181,182,183,184,185,186,187,188,189,193,195,198,202,203,205,206,209,212,213,215,217,218,219,220,221,226,228,230,231,232,233,234,235,241,242,245,246,247,250,251,252,258,259,260,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,316,317,318,319,321,322,323,324,325,326,327,328,329,330,331,334,335,337,338,339,340,341,342,343,344,345,347,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_desc:164,set_descript:51,set_detail:[187,233],set_gamedir:267,set_kei:154,set_lock:164,set_log_filenam:175,set_nam:51,set_password:144,set_task:195,set_trac:[42,141],setcolor:81,setdesc:[43,57,165,212],setgend:189,sethelp:[20,43,68,166],sethom:[43,159],setlock:212,setnam:40,setobjalia:[43,159],setperm:157,setpow:364,setspe:213,sett:98,settabl:[74,86,290],setter:39,settestattr:50,settingnam:80,settings_chang:107,settings_default:[4,5,34,47,53,104,109,127,141,142,337,344,364],settings_ful:104,settings_mixin:[141,142,262,297,364],settl:[111,116],setup:[5,15,18,26,38,40,47,61,63,67,71,85,93,96,100,116,120,127,129,131,138,139,144,156,164,170,184,196,226,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,38,41,42,48,50,52,55,56,57,59,62,69,79,80,102,104,109,113,116,119,125,137,158,159,167,169,187,194,195,231,233,247,293,294,319,324,344,364],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,194,195,252,261,298,316,317,319,330,344,351,364],sharedloginmiddlewar:351,sharedmemorymanag:[317,333],sharedmemorymodel:[177,239,316,318,334,335,364],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:159,sheet:[23,38,51,133,134,137,327,364],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,316,364],shield:[29,77,86],shift:[14,15,27,108,195,232,238,344],shiftroot:232,shine:[21,233],shini:344,ship:[55,64,75,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,47,59,69,91,96,100,107,116,119,125,129,133,134,141,146,153,154,159,164,180,192,235,242,247,338,344,364],shorten:[42,46,125,252],shorter:[38,40,61,104,108,117,118,125,132,175,205,316,317,324,337],shortest:[39,206],shorthand:[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,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,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,164,166,167,169,170,171,175,177,180,182,184,187,192,195,198,199,202,203,204,205,206,209,217,218,219,220,221,230,231,233,234,241,242,246,247,249,251,252,256,259,260,261,265,266,267,271,274,278,284,287,290,291,293,295,296,298,299,305,306,307,308,310,311,313,316,318,319,321,322,324,325,326,328,329,330,331,337,338,339,340,342,344,345,357,360],should_join:175,should_leav:175,should_list_top:166,should_show_help:166,shoulddrop:[221,247],shoulder:[58,182],shouldget:[221,247],shouldgiv:[221,247],shouldmov:[217,218,219,220,221,247],shouldn:[0,13,21,22,29,41,48,58,93,126,180,195,198,220,247,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,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,166,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,316,326,328,337,338,339,344,357,364],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],shown:[0,4,9,22,25,29,35,41,49,51,54,57,62,68,109,114,121,133,138,154,157,164,168,170,180,182,204,206,226,232,247,267,328,329,347],showtim:62,shrink:330,shrug:46,shrunk:101,shuffl:27,shun:[26,90,108],shut:[0,4,29,93,100,102,104,137,144,169,247,259,261,267,269,276,277,284,285,305,308,364],shutdown:[12,19,31,43,58,93,102,105,110,144,146,169,255,261,267,276,277,284,305,306,318,324,328],shy:[26,61,129],sibl:[10,57,96,102],sid:157,side:[0,1,11,24,36,38,48,49,58,73,74,83,91,105,112,119,126,127,133,137,138,144,146,148,159,165,167,177,179,185,212,239,246,256,264,272,276,277,285,288,291,292,295,306,307,308,316,318,319,321,330,335],sidebar:364,sidestep:19,sidewai:330,sigint:267,sign:[0,14,20,46,83,90,91,106,115,123,132,164,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,192,260,265,267,269,270,278,287,288,290,292,295,296,316,321,328,339,340,351],signed_integ:345,signedinteg:338,signedon:279,signifi:[14,241,316],signific:[97,170],significantli:50,signup:4,silenc:[164,269],silenced_system_check:127,silent:[10,62,118,157,164,226,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,175,180,188,205,217,218,219,220,221,235,239,247,308,319,324,328,344],similarli:[58,62,90,112,218,234],simpl:[0,2,4,5,6,9,10,13,14,15,17,25,26,28,30,31,33,35,38,39,40,41,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,175,179,180,181,186,187,188,189,194,199,203,204,205,206,212,213,214,215,217,218,219,220,221,223,226,231,232,233,235,236,246,247,252,259,277,286,288,316,322,323,328,344,354,355,357,364],simpledoor:[141,142,178,364],simplemu:24,simpler:[10,15,51,56,158,159,325],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,175,180,186,187,196,206,213,215,217,218,219,220,221,226,232,239,247,285,316,318,322,323,327,329,344],simplic:[22,39,55,126,171,186,232],simplif:[45,116],simplifi:[10,69,100,111,116,118,192],simplist:[116,123,132,137,205,214],simul:[33,73,93,213],simultan:[58,88,116,245,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,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,94,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,170,176,179,180,181,184,187,199,206,215,217,218,219,220,221,226,232,233,241,245,247,251,252,257,260,261,267,269,272,284,289,291,305,306,308,310,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,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,157,159,164,165,169,177,180,204,209,215,217,218,219,220,221,233,234,235,247,251,252,260,261,299,306,308,316,317,319,321,322,327,328,330,344,357,364],single_type_count:182,singleton:[84,105,115,257,260,323,364],singular:[38,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,170,175,177,198,199,206,232,233,242,258,261,280,319,324,339,342],sitabl:125,sitat:233,site:[8,16,17,23,37,69,71,79,80,90,97,98,100,101,103,111,133,134,312,364],site_nam:59,sitekei:364,situ:[11,318,325],situat:[0,6,11,22,33,37,42,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,49,51,61,62,75,88,100,106,109,115,131,144,158,159,247,251,316,325,344],skipkei:296,skippabl:129,skull:109,sky:[102,132],slack:79,slam:188,slash:[20,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,slide:226,slight:[8,91,184,195],slightli:[42,62,63,79,116,123,177,187,218,234],slightly_smiling_fac:138,slip:343,slogan:9,sloppi:38,slot:[58,134,187,188,218,220,252,344],slow:[27,116,169,176,213,231,235,251,280,286,321,341,344],slow_exit:[141,142,169,178,364],slower:[62,77,90,93],slowexit:213,slowli:79,slug:[154,175,239,318],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,226,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,226],smell:61,smelli:109,smile:[33,165],smith:327,smithi:29,smoothi:203,smoothli:134,smush:48,snake:136,snap:82,snapshot:131,snazzi:78,sneak:242,snippet:[10,13,21,31,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,364],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,364],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,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,164,165,168,169,171,175,176,179,180,181,186,195,198,204,205,212,215,218,219,220,221,226,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,364],some_long_text_output:329,somebodi:[0,138],somehow:[33,40,73,80,87,90,113,140,182,326],someon:[0,1,29,33,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,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,167,170,179,180,182,189,198,204,206,213,217,218,219,220,221,232,233,234,235,242,247,252,306,318,322,328,329,338,344],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,245],somewhat:[4,22,41,57,127,138,180],somewher:[0,12,37,73,80,90,109,121,125,131,154,159,175,239,318,344,364],soon:[42,61,69,72,96,100,105,127,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],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,43,46,47,55,57,60,63,64,67,68,72,75,76,79,88,89,96,97,108,122,127,128,130,131,134,139,141,144,146,147,148,150,151,152,153,154,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,175,176,177,179,180,181,182,184,185,186,187,188,189,190,192,193,194,195,196,198,199,202,203,204,205,206,209,210,211,212,213,214,215,217,218,219,220,221,223,226,228,230,231,232,233,234,235,238,239,241,242,245,246,247,249,250,251,252,255,256,257,258,259,260,261,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,316,317,318,319,321,322,323,324,325,326,327,328,329,330,331,333,334,335,337,338,339,340,341,342,343,344,345,349,350,351,352,355,357,360,363,364],source_loc:[25,77,96,117,232,233,235,247],source_object:[171,186],sourceforg:[280,281,291,294],sourceurl:279,south:[0,22,44,49,111,121,159,299],south_north:111,southeast:159,southern:111,southwest:[20,159],space:[9,20,21,22,25,33,35,38,41,46,48,49,51,57,68,80,87,91,95,102,109,111,114,116,118,126,129,137,138,151,154,159,164,165,166,167,170,171,202,205,206,221,232,247,311,318,321,322,327,328,330,343,344,347,364],spaceship:121,spacestart:343,spaghetti:[13,328],spam:[12,28,103,116,138,164,310],spammi:[12,116],span:[16,17,108],spanish:76,spare:[217,218,219,220,221],spatial:111,spawen:203,spawn:[43,47,53,55,93,120,122,137,138,141,157,159,203,218,219,249,250,251,252,364],spawner:[18,45,89,120,139,141,142,159,219,220,248,250,364],spd:134,speak:[0,15,19,41,46,60,96,113,117,118,126,133,165,206,247],speaker:[46,205,206],spear:109,special:[2,10,11,13,14,15,19,20,25,26,27,30,31,33,35,37,38,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,247,271,272,295,299,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,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,147,150,157,159,166,169,171,177,178,179,180,192,193,194,195,199,204,206,238,241,245,247,255,257,267,271,272,279,295,296,306,316,318,321,322,326,328,329,330,344,364],specifi:[3,11,12,16,19,21,22,27,29,31,38,39,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,170,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],spectacular:42,speech:247,speed:[11,47,62,82,86,87,93,116,134,213,245,252,285,319,341],speedup:251,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,170],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,184,232,235,249,293,308,321,322,331],split_2:138,split_nested_attr:159,splithandl:138,spoken:[0,46,72,205,206,247],spool:63,sport:87,spot:[57,64,144],spread:[70,73,109,364],spring:[82,124,187],sprint:213,sprofil:267,spunki:77,spuriou:364,spyrit:24,sql:[7,36,56,57,64,86,125,139,302,364],sqlite3:[25,55,64,86,123,127,128,131,344,364],sqlite3_prep:305,sqlite:[23,86,128,305],sqllite:36,sqrt:39,squar:[38,39,129],squeez:[38,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,105,110,141,142,262,275,306,307,364],ssh_interfac:90,ssh_port:90,sshd_config:103,sshfactori:287,sshprotocol:287,sshserverfactori:287,sshuserauthserv:287,ssl:[7,8,55,64,67,83,88,141,142,146,164,262,275,279,292,307,364],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,152,153,247,251,308,328],stackexchang:127,stacktrac:251,staf:108,staff:[9,19,25,57,61,68,73,80,108,109,111,123,133,152,252,322],staffer:9,staffernam:9,stage:[2,36,56,61,77,111,123,131,133],stagger:279,stai:[1,31,49,51,63,90,91,121,125,126,138,235],stale:[100,125,260],stale_timeout:260,stamina:[30,190,220],stamp:[27,96,105,125,137,144,148,157,169,246,256,299,304,318],stanc:[116,206,247],stand:[13,17,20,21,22,25,29,38,49,56,61,63,72,73,80,86,90,95,96,111,116,121,122,123,127,131,133,138,165,179,206,231,247,256,261,298,319,322,324,330],standalon:[67,103],standard:[0,1,6,8,9,15,21,27,30,41,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,247,287,289,294,311,316,321,330,331,345,364],stanza:277,star: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,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,166,167,168,169,170,175,179,180,184,185,187,188,189,190,195,205,206,215,217,218,219,220,221,226,230,231,233,235,247,249,251,256,258,259,260,261,264,267,269,271,272,277,278,279,280,284,285,286,291,292,298,299,304,305,308,312,317,321,322,323,324,326,328,329,330,331,337,344,347,363,364],start_all_dummy_cli:298,start_attack:231,start_bot_sess:308,start_delai:[102,116,120,121,256,261,324],start_driv:121,start_evennia:267,start_hunt:231,start_idl:231,start_index:164,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,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,84,159,170,321],starttupl:287,startup:[11,35,40,60,62,90,102,104,136,247,256,259,296,305,337,344],stat:[17,43,60,61,71,85,116,123,133,134,136,139,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,175,212,217,218,219,220,221,226,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,95,96,118,119,124,226,322,343],static_overrid:[135,136,137],static_root:136,statict:159,station:121,stationari:231,statist:[3,12,104,105,120,124,135,159,169,190,300,317,334],statu:[20,29,51,58,61,88,90,104,105,115,131,169,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:[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,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,164,180,233,261,271,283,294,298,299,308,318,322,325,326,328,329,363,364],stick:[15,33,38,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,49,55,57,58,60,62,63,64,77,78,79,83,91,95,96,102,103,105,106,107,108,110,114,121,122,123,125,126,128,131,134,138,144,152,159,164,166,171,175,186,215,217,218,219,220,221,230,233,235,245,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,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,175,179,184,194,196,206,212,213,218,221,226,247,255,258,259,260,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,47,56,64,73,85,86,96,102,125,133,138,148,169,177,198,205,235,242,246,247,251,252,256,259,261,274,310,314,316,318,323,338,339,364],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,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,166,167,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,331,334,338,339,340,344,357,364],store_kei:[261,344],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,147,150,151,152,153,154,159,164,166,170,175,176,177,179,180,182,184,187,188,189,190,192,193,194,195,198,199,204,205,206,210,212,215,217,218,219,220,221,226,230,233,234,235,238,239,242,245,246,247,250,251,252,255,257,258,259,261,264,265,267,271,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,316,317,318,319,321,322,323,324,326,327,328,329,330,337,338,339,340,341,342,343,344,345,349],straight:[49,68,126,319],straightforward:[25,41,85,91,121,123],strang:[6,8,14,29,41,56,131,153,171],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:[38,111],stribg:344,strict:[10,251,321],stricter:251,strictli:[19,51,59,77,133,186,220,330],strike:[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,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,147,148,150,151,154,157,159,164,165,166,167,168,169,170,175,176,177,179,180,182,186,188,198,199,203,204,205,206,210,211,215,217,218,219,220,221,226,230,231,235,238,239,240,241,242,245,246,247,250,251,252,255,256,259,261,267,269,272,276,279,287,290,291,293,296,299,304,306,308,311,316,317,318,319,320,321,322,324,325,326,327,329,330,337,338,340,341,342,343,344,345,364],string_from_modul:344,string_partial_match:[245,344],string_similar:344,string_suggest:344,stringproduc:269,strip:[21,22,33,38,41,51,58,74,81,85,108,109,114,118,123,151,159,166,167,168,170,206,245,252,272,287,290,291,321,322,326,328,344,364],strip_ansi:[81,321,343],strip_cmd_prefix:166,strip_control_sequ:344,strip_mxp:321,strip_raw_ansi:321,strip_raw_cod:321,strip_unsafe_input:344,strip_unsafe_token:321,strippabl:328,stroll:213,strong:[80,114,123,343],strongest:80,strongli:[64,73,95,124,205],strr:204,struct:56,structur:[9,11,33,37,41,45,47,48,49,51,55,56,59,63,64,68,69,80,83,88,95,96,109,119,133,134,136,138,159,164,175,206,247,251,252,291,296,319,325,328,354,364],strvalu:[11,316,317],stuck:[51,63],studi:[59,364],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,170,189,234,261,305,350,364],stumbl:97,stupidli:34,sturdi:327,stutter:108,style:[3,16,20,21,27,33,37,38,40,41,43,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,217,234,251,326,330,344,364],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,164,166,172,178,180,206,234,236,238,240,243,252,253,262,314,320,321,343,346,361,364],sub_ansi:321,sub_app:133,sub_brightbg:321,sub_dblspac:343,sub_mxp_link:343,sub_mxp_url:343,sub_text:343,sub_to_channel:164,sub_xterm256:321,subbed_chan:164,subcategori:166,subclass:[27,64,105,109,118,119,125,159,180,235,246,251,256,277,290,296,318,335,340,344,364],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,364],submarin:121,submenu:[106,180,249],submenu_class:180,submenu_obj:180,submiss:[188,357],submit:[17,37,103,133,171,188,357],submitcmd:188,submodul:291,subnegoti:291,subnet:[12,157],subpackag:[88,127],subprocess:[25,344],subreddit:79,subscrib:[12,33,34,41,53,58,64,80,115,128,132,146,164,175,176,177,219,261,278,309],subscribernam:164,subscript:[33,58,79,115,132,164,176,177,261],subscriptionhandl:177,subsequ:[10,11,33,95,116,205,322,344],subsequent_ind:330,subset:[56,112,127],subsid:125,substitut:[51,71,87,106,247,321,343],substr:321,subsub:[166,170],subsubhead:38,subsubsubhead:38,subsubtop:[166,170],subsubtopicn:170,subsystem:[9,63,86,242],subtitl:17,subtop:[164,166,170],subtopic_separator_char:166,subtract:85,subturn:116,subword:344,succe:[61,116,185],succeed:[164,185,234],success:[73,116,123,134,144,164,175,179,185,217,218,219,220,221,226,232,233,242,251,260,267,271,318,326,338,344],success_teleport_msg:233,success_teleport_to:233,successfuli:203,successfulli:[10,28,33,36,60,77,110,111,130,144,203,232,235,247,260,267,279,311,318],suddenli:[26,97,318],sudo:[63,67,100,103],suffic:[17,57,61],suffici:[86,90,119],suffix:[27,97,114,321,337,344],suggest:[1,23,25,37,38,48,51,52,55,61,68,70,90,95,97,125,138,140,151,166,179,206,233,247,344],suggestion_cutoff:166,suggestion_maxnum:166,suit:[29,34,55,64,117,139,170,344,364],suitabl:[21,25,33,37,55,63,64,80,83,87,88,90,112,131,152,164,242,301,308,324,328],sum:[37,82,91,139,153],summar:[0,79,139],summari:[0,7,46,79,96,110,123,180,364],summer:187,sun:62,sunris:62,sunt:52,super_long_text:329,superfici:205,superflu:343,supersus:242,superus:[2,4,5,6,9,12,13,14,19,20,21,23,25,41,58,60,63,81,95,96,111,122,134,144,148,158,169,175,182,212,231,241,242,247,252,267,318,322,324,364],supplement:51,suppli:[10,11,27,34,37,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,245,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,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,144,156,165,166,169,183,184,185,187,198,234,241,247,251,252,261,272,280,281,282,283,287,289,290,291,292,294,296,307,316,321,325,328,329,330,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,364],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,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,167,176,180,182,196,204,205,206,211,215,220,223,231,232,233,238,241,242,247,251,252,258,267,271,277,279,284,305,311,312,313,317,318,321,323,325,328,334,340,341,343,344,360],surfac:[58,82,103],surpris:[22,39,69,80,91],surround:[31,33,111,116,119,129,157,231,340,344,364],surviv:[5,11,27,28,31,50,51,84,102,105,115,116,126,146,153,169,180,256,257,261,324,326,328,344],suscept:[27,56,242],suspect:133,suspend:[100,103,106],suspens:102,suspici:51,suspicion:133,svn:[36,108],swallow:[96,118,272,276,343],swap:[43,114,127,137,138,159,187,202,318,326,364],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_map:159,switch_opt:[156,157,158,159,164,165,166,167,169,187],sword:[20,28,33,61,73,77,85,86,119,179,206,245,252,341,344],symbol:[14,15,33,49,75,106,108,119,171,206,215,235,329],symlink:[38,63],symmetr:330,sync:[64,83,105,131,255,285,290,305,306,307,308,316,325],sync_port:308,syncdata:[307,308],syncdb:127,synchron:[337,364],syntact:[242,344],syntax:[5,6,13,14,15,21,22,23,29,33,41,46,48,51,55,58,60,62,76,80,91,97,114,119,123,129,134,141,142,154,158,159,166,167,170,180,185,187,188,234,242,247,267,279,306,316,318,320,321,364],syntaxerror:60,sys_cmd:152,sys_game_tim:59,syscmdkei:[33,53,141],syscommand:[141,142,149,155,247,364],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,43,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,146,148,149,150,152,154,155,156,158,159,166,168,170,172,175,176,177,179,180,182,186,193,194,195,196,198,199,202,203,205,206,209,210,211,215,217,218,219,220,221,230,233,235,236,239,241,242,246,247,249,251,252,253,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,tab:[9,14,26,30,36,59,69,95,96,106,114,137,138,321,330,343],tabl:[0,4,13,15,45,46,48,53,58,59,64,69,82,88,97,111,113,114,119,125,128,134,154,156,164,166,169,188,291,310,321,327,329,330,341,344,364],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,tack:[20,119,153],tackl:37,tactic:[73,116],taction:116,tag:[9,12,13,18,20,24,33,43,45,48,51,55,57,58,73,74,86,87,88,95,96,100,109,114,119,124,125,134,136,137,138,139,140,141,142,154,156,157,158,159,164,165,166,167,168,169,170,171,175,177,179,180,181,182,183,185,186,187,188,189,193,199,202,203,204,206,209,212,213,214,215,217,218,219,220,221,226,230,231,232,233,234,239,241,247,251,252,282,296,298,304,314,317,318,321,324,326,327,328,329,330,341,344,364],taghandl:[112,125,319],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,38,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,170,175,177,179,182,184,187,188,203,204,206,209,213,215,217,218,219,220,221,226,230,231,233,242,252,287,295,298,307,308,317,318,321,326,327,328,329,338,344,345],taken:[31,56,64,103,116,120,121,123,165,186,209,217,218,219,220,221,247,287,311,321,324],takeov:309,taladan:48,tale:3,talk:[23,27,33,34,37,40,41,46,58,60,90,91,131,138,164,165,179,205,206,214,233,264],talker:[55,61],talki:64,talking_npc:[141,142,178,364],talkingcmdset:214,talkingnpc:214,tall:[129,165,206],tallman:165,tandem:61,tantal:14,target1:220,target2:220,target:[21,25,28,29,30,33,34,40,58,73,88,103,114,116,119,123,127,136,138,144,154,159,164,165,169,175,177,182,185,187,199,215,217,218,219,220,221,231,235,247,317,321,324,328,344],target_loc:[213,233,235,247],target_obj:242,targetlist:199,task:[0,27,36,40,41,91,93,102,110,112,138,169,170,193,195,215,260,261,344],task_handl:[141,260,344],task_id:[169,195,260],taskhandl:[141,142,253,344,364],taskhandlertask:[260,344],tast:[22,34,133],tavern:206,tax:[75,93],taylor:79,tb_basic:[141,142,178,216,364],tb_equip:[141,142,178,216,364],tb_filenam:322,tb_item:[141,142,178,216,364],tb_iter:322,tb_magic:[141,142,178,216,364],tb_rang:[141,142,178,216,364],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],teamciti:364,teardown:[127,170,196,228,293,342],teaser:90,tech:[79,364],technic:[4,6,9,10,11,19,20,23,39,40,51,64,70,83,90,108,112,114,119,125,139,141,142,178,179,222,316,364],techniqu:[29,139,321],tediou:[1,106,111],teenag:[21,103],tehom:[9,119],tehomcd:9,tel:[0,12,43,58,63,91,121,159],teleport:[12,14,20,43,58,85,122,140,159,165,233,322],teleport_her:159,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,177,185,206,233,247,267,285,296,308,326],telnet:[9,15,25,30,40,55,63,64,75,79,83,100,101,103,105,110,114,137,138,141,142,166,169,262,275,280,281,282,283,287,288,289,291,292,294,298,306,307,343,364],telnet_:90,telnet_hostnam:54,telnet_interfac:90,telnet_oob:[88,141,142,262,275,364],telnet_port:[9,36,54,90,299],telnet_ssl:[141,142,262,275,364],telnetoob:291,telnetprotocol:[288,290,292],telnetserverfactori:290,temp:177,tempat:188,templat:[2,3,4,5,27,31,47,64,81,87,104,107,109,123,125,131,134,135,136,137,138,141,142,164,165,167,175,188,230,247,267,296,306,307,316,320,327,347,350,355,364],template2menu:[51,328],template_overrid:[4,135,136,137],template_regex:316,template_rend:107,template_str:[51,87],templates_overrid:135,templatestr:327,templatetag:[141,142,346,356,364],tempmsg:[177,364],temporari:[6,11,110,122,127,131,153,177,198,217,218,219,220,221,261,328,364],temporarili:[20,26,31,51,60,90,97,102,127,164,169,195,203,226],tempt:[61,95,104,157],ten:[29,90,111],tend:[41,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,169,194,215,217,218,219,220,221,266,267,287,294,310],terminalrealm:287,terminals:287,terminalsessiontransport:287,terminalsessiontransport_getp:287,termux:364,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,45,46,50,51,56,58,60,61,62,63,65,67,68,69,72,73,74,79,80,81,85,89,90,91,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,251,262,269,272,275,296,297,298,302,318,320,321,322,324,328,332,342,344,346,348,356,364],test_:127,test_about:170,test_accept:196,test_access:170,test_active_task:170,test_add:196,test_add_valid:196,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:[170,196],test_cancel:170,test_cas:127,test_channel__al:170,test_channel__alias__unalia:170,test_channel__ban__unban:170,test_channel__boot:170,test_channel__cr:170,test_channel__desc:170,test_channel__destroi:170,test_channel__histori:170,test_channel__list:170,test_channel__lock:170,test_channel__msg:170,test_channel__mut:170,test_channel__noarg:170,test_channel__sub:170,test_channel__unlock:170,test_channel__unmut:170,test_channel__unsub:170,test_channel__who:170,test_char_cr:170,test_char_delet:170,test_color:293,test_color_test:170,test_copi:170,test_creat: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_do_task:170,test_echo: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_func_name_manipul: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_lock_with_perm:360,test_locked_entri:360,test_look:170,test_mask:211,test_memplot:303,test_menu:215,test_messag:304,test_misformed_command:170,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_new_task_waiting_input:170,test_nick:170,test_no_input:170,test_no_task:170,test_object:170,test_object_cach:360,test_object_search:127,test_ooc:170,test_ooc_look:170,test_opt:170,test_password:170,test_pause_unpaus:170,test_perm:170,test_persistent_task:170,test_pi:170,test_plain_ansi:293,test_pos:170,test_quel:170,test_queri:[141,142,262,297,364],test_quit:170,test_remov:170,test_resourc:[127,141,142,170,196,211,228,293,320,360,364],test_responce_of_y:170,test_return_valu:127,test_sai:170,test_script:170,test_send_random_messag:228,test_server_load:170,test_sess:170,test_set_help:170,test_set_hom:170,test_set_obj_alia:170,test_simpl:127,test_simple_default:170,test_spawn:170,test_split_nested_attr:170,test_start:196,test_subtopic_fetch:170,test_subtopic_fetch_00_test:170,test_subtopic_fetch_01_test_creating_extra_stuff:170,test_subtopic_fetch_02_test_cr:170,test_subtopic_fetch_03_test_extra:170,test_subtopic_fetch_04_test_extra_subsubtop:170,test_subtopic_fetch_05_test_creating_extra_subsub:170,test_subtopic_fetch_06_test_something_els:170,test_subtopic_fetch_07_test_mor:170,test_subtopic_fetch_08_test_more_second_mor:170,test_subtopic_fetch_09_test_more_mor:170,test_subtopic_fetch_10_test_more_second_more_again:170,test_subtopic_fetch_11_test_more_second_third:170,test_tag:170,test_task_complete_waiting_input:170,test_teleport: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_view:360,test_wal:170,test_whisp:170,test_who:170,test_without_migr:127,test_wrong_func_nam:170,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,testcmdtask:170,testcommand:51,testcommschannel:170,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,testnnmain:170,testnod:51,testobj:127,testobject:127,testobjectdelet:335,testok:91,testregularrefer:335,testset:127,testsharedmemoryrefer:335,teststr:127,testsystem:170,testsystemcommand:170,testtelnet:293,testunconnectedcommand:170,testvalu:11,testwebsocket:293,text2html:[141,142,320,364],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,176,177,179,180,181,182,185,186,187,188,189,190,193,195,199,202,203,205,206,210,212,213,214,215,217,218,219,220,221,226,231,232,233,234,239,242,247,249,252,256,264,265,272,278,279,282,285,286,287,290,291,295,296,298,306,307,308,311,312,316,317,319,321,322,324,326,327,328,329,330,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],textn:170,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,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,166,167,169,170,179,180,181,184,190,195,204,205,206,213,215,217,218,219,220,221,232,234,241,245,247,249,251,267,293,308,313,316,317,318,319,321,322,328,329,330,334,337,339,340,341,343,344,347],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,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,152,153,156,158,159,164,165,167,168,169,175,179,180,182,185,187,189,194,205,206,217,218,219,220,221,232,233,234,235,241,242,246,247,251,252,253,256,258,259,261,267,287,288,290,291,292,296,299,305,306,307,308,310,316,321,322,323,325,328,330,344,345,357],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,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,170,175,181,182,183,187,188,189,190,192,194,203,204,206,215,217,218,219,220,221,226,231,233,234,238,242,247,252,258,261,267,285,287,290,298,302,305,306,308,316,318,319,321,322,324,328,340,343],themat:61,theme:[61,134],themself:219,themselv:[0,11,19,21,28,31,33,38,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,169,171,187,203,233],thereof:[206,247],thess:245,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,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,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,192,193,194,195,198,199,202,203,204,205,206,209,210,212,213,214,215,217,218,219,220,221,223,226,229,230,231,232,233,234,235,236,238,239,240,241,242,243,245,246,247,250,251,252,253,255,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,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,334,335,337,338,339,340,341,342,343,344,345,346,347,349,350,354,355,357,361,363,364],thie:51,thief:61,thieveri: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,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,179,180,187,195,205,206,215,221,226,230,233,234,242,246,247,276,280,312,316,318,321,322,330,340,364],think:[1,20,29,31,34,37,46,48,51,55,59,61,62,67,70,73,79,81,91,95,96,97,109,111,112,114,115,135,138,139,308],third:[0,8,9,23,27,37,38,39,42,51,64,69,72,75,90,96,101,114,121,127,128,134,159,170,321,328,364],thirdnod:51,this_sign:309,thoma:[12,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,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,164,165,166,170,176,180,206,210,215,217,226,232,233,242,251,252,255,260,290,295,298,317,318,328,329,330,338,339,342,344,357],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,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,233,234,247,251,252,316,321,328,344],thought:[23,39,61,79,80,84,138],thousand:[39,90,111,133],thread:[23,27,55,79,110,286,312,337,344],threadpool:312,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,164,166,215,220,242,321,328],threshold:[228,310,322],thrill:85,throttl:[141,142,144,262,272,285,364],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,164,166,170,179,187,192,210,212,217,218,219,220,221,235,240,242,246,247,257,258,261,267,269,274,283,287,290,296,299,304,306,307,317,318,322,324,327,328,329,343,344,357,364],throughout:[11,20,49,51,55,104,219],throughput:[175,324],thrown:116,thrust:232,thu:[14,19,31,33,39,44,51,54,57,58,73,80,83,86,96,108,111,114,121,122,123,125,134,135,136,156,160,181,205,206,242,247,261,299,313,316,317,324],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:[43,53,55,74,102,132,139,146,169,231,233,257,261,272,344,364],ticker_class:261,ticker_handl:[53,115,132,141,261,344],ticker_pool_class:261,ticker_storag:261,tickerhandl:[27,45,102,116,132,139,141,142,169,213,219,233,253,344,364],tickerpool:261,tickerpool_layout:261,tidbit:55,tidi:100,tie:[83,116,138,364],tied:[64,119,153,166,182,226,239,255],tier:90,ties:[49,135,161],tight:182,tightli:[103,175],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,43,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,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,203,204,205,212,213,215,217,218,219,220,221,223,226,231,232,233,239,246,247,250,252,253,256,259,260,261,267,269,271,273,274,279,285,290,292,298,299,300,304,305,306,308,310,316,318,319,321,322,323,324,329,331,334,335,337,340,344,363,364],time_ev:198,time_factor:[27,62,184,331],time_format:[59,344,364],time_game_epoch:[27,62,331],time_to_tupl:184,time_unit:[62,184],time_until_next_repeat:102,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,159,187,219,223,226,232,253,255,259,260,261,298,306,341,364],timerobject:102,timescript:331,timeslot:187,timestamp:[25,27,298,299,310,331],timestep:299,timestr:337,timetrac:[141,142,262,297,364],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,171],tinymux:[57,108],tip:[12,37,70,79,103,112,364],tire:[20,153],titeuf87:[235,364],titl:[17,22,34,38,48,69,98,137,164,166,180,206,238,321,324],title_lone_categori:166,titlebar:137,titleblock:69,tlen:71,tls:8,tlsv10:67,tlsv1:8,tmp:[36,63],to_byt:[344,364],to_closed_st:226,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_open_st:226,to_pickl:325,to_str:[344,364],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,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,166,187,202,203,205,206,232,233,245,246,252,276,295,308,321,322,341,364],toggl:[81,290],toggle_nop_keepal:290,togglecolor:81,toint:109,token:[71,287,290,322],told:[44,59,90,91,95,113,114,123,128,340],tolkien:62,tom:[58,87,123,129,159,165,189,206,327],tommi:[19,80,87],ton:[57,82],tone:114,tonon:159,too:[0,4,6,9,11,12,13,14,17,20,21,22,25,27,29,33,38,39,41,42,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,226,241,245,272,276,310,312,319,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,364],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,55,68,69,86,93,105,119,126,166,217,218,219,220,221,238,341,357],topicstr:238,tostr:276,total:[27,62,80,82,91,93,102,104,105,114,118,139,147,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,221,231],tower:[111,187,233],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,364],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,175,221,257,278,279,284,287,290,305,310,325,326,338,364],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,364],traindriv:121,traindrivingscript:121,training_dummi:73,trainobject:121,trainscript:121,trainstop:121,trainstoppedscript:121,trait:[27,73,252],transact:179,transfer:[85,133,153,278,288,292,330],transform:36,transit:[89,124],translat:[14,40,45,79,87,88,113,114,126,205,206,252,269,321,364],transmiss:209,transmit:113,transpar:[67,105,126,137,138,245,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,212,213,231,232,235,241,247],traverse_:33,traversing_object:[212,213,235,247],travi:[45,139,364],treasur:[9,235],treat:[10,14,33,64,95,96,105,111,112,119,125,138,144,150,153,189,245,247,252,299,308,328,330,341,364],tree:[3,11,33,38,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,364],treestr:215,treshold:334,tri:[11,12,14,24,29,33,51,58,61,80,83,87,90,91,105,107,113,116,119,133,138,151,169,179,181,188,232,233,271,310,344,345],trial:[106,293],tribal:111,trick:[8,22,51,79,138,318,357,364],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,180,198,226,231,233,246,247,252,261,269,272,276,298,305,309,324,328],trim:321,trip:96,tripl:[27,38,96,114,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,364],troublesom:[12,13,14],trove:9,truestr:188,truli:[0,12,39,41,105,187],trust:[19,51,57,169,322],truth:42,truthfulli:33,truthi:260,try_num_differenti:151,ttarget:116,tto:290,tty:[9,100],ttype:[55,141,142,262,275,287,290,364],ttype_step:294,tuck:111,tun:[43,159],tune:[67,126],tunnel:[0,20,22,43,44,49,58,121,159,292],tup:[39,206],tupl:[11,39,41,42,51,59,60,80,86,87,88,90,109,116,119,134,141,144,151,157,159,164,166,167,176,179,180,184,185,189,192,206,219,220,230,235,241,242,247,251,252,261,264,267,276,277,287,288,292,299,306,308,316,319,321,323,324,326,328,331,337,339,344],tupled:337,turbo:75,turkish:144,turn:[0,10,12,27,31,33,38,41,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,169,170,175,198,206,215,217,218,219,220,221,231,233,247,252,267,272,280,287,290,298,308,314,318,322,324,328,329,330,344,347,364],turn_act:116,turn_end_check:[217,218,219,220,221],turnbattl:[141,142,178,364],turnchar:219,tut:[122,233],tutor:230,tutori:[3,4,10,16,17,20,22,25,26,28,29,31,32,33,35,37,38,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,364],tutorial_info:233,tutorial_world:[20,22,63,122,141,142,178,364],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,144,170,226,312,321,364],tweet:[124,139,364],tweet_output:120,tweet_stat:120,tweetstat:120,twenti:58,twice:[25,51,62,116,195,221,328],twist:[10,27,29,33,40,63,72,75,79,97,103,247,260,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,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,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,164,175,177,179,180,185,199,204,212,213,215,219,221,226,233,234,247,249,267,296,307,308,317,319,322,328,330,337,344,345,364],twowai:159,txt:[9,38,40,50,75,78,90,96,146,205,283,291,326,328,344],tyepclass:245,tying:[90,347],typclass:206,type:[0,8,12,14,16,17,19,20,21,22,24,25,26,27,28,29,31,33,34,35,37,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,164,166,169,170,171,175,176,177,180,182,186,188,192,195,198,199,206,213,217,218,219,220,221,226,232,233,234,239,241,242,246,247,251,252,260,261,265,267,269,270,276,278,279,285,287,288,290,291,292,294,295,296,298,306,308,312,316,317,318,319,321,322,324,325,328,329,330,339,340,341,343,344,351,357,364],type_count:182,typecalass:316,typecalss:195,typeclass:[0,2,5,9,11,12,13,20,21,22,25,26,27,33,34,38,39,43,44,47,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,146,147,148,153,159,164,175,176,177,178,182,187,191,194,195,198,203,206,212,213,214,217,218,219,220,221,226,233,235,238,242,245,246,247,251,252,255,256,257,259,261,305,323,324,341,342,344,360,364],typeclass_path:[102,119,125,148,159,256,317,318],typeclass_search:[147,245,255,317],typeclassbas:96,typeclassmanag:[147,176,245,255],typedobject:[41,125,148,154,177,206,235,246,247,256,316,317,318,319,339,344],typedobjectmanag:[147,176,238,245,255,317],typeerror:[42,185,296],typenam:[22,144,146,148,175,177,179,182,184,187,189,195,203,204,205,206,212,213,214,217,218,219,220,221,223,226,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],typo:[37,38,70,103,363],ubbfwiuvdezxc0m_2pm6ywo:37,ubuntu:[8,63,67,90,97,103,131],uemail:147,ufw:103,ugli:[56,109,137,338],uid:[100,147,148,279,286,307,308],uit:[22,180],ulrik:58,ultima:79,umlaut:15,unabl:[71,190],unaccept:33,unaffect:[51,116,219,260],unalia:164,unam:147,unarm:218,unarmor:218,unassign:138,unauthenticated_respons:360,unavoid:115,unban:[12,157,164,170,175],unban_us:164,unbias:185,unbroken:327,uncal:260,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:[171,186],uncov:182,undefin:[36,86,112],under:[6,9,20,24,33,36,38,41,42,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,364],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,164,204,205,206,312,321,344,364],understood:[83,91,111,127,295,296],undestand:25,undo:[50,103,326],undon:156,undoubtedli:57,unexpect:[91,126,127,328,344],unexpectedli:334,unfamiliar:[63,74,80,88,90,118,124],unformat:[51,328,331],unfortun:[4,41,61],ungm:364,unhandl:60,unhappi:9,unhilit:343,unicod:[15,83,113,144,321,344],unicodeencodeerror:321,unicorn:119,unifi:[133,307],uniform:105,uninform:8,uninstal:[63,364],uninstati:344,unintent:234,union:[31,51,152,226,328],uniqu:[2,12,13,20,31,33,35,36,38,40,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,171,175,176,181,184,186,194,204,205,206,212,215,218,219,231,233,238,247,251,252,255,261,264,276,277,285,298,299,307,308,316,317,318,319,324,326,338,341,344],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,364],unittest:[25,127,170,308,324,342],univers:[14,15,62],unix:[24,38,52,63,87,165,234,329,337,344],unixcommand:[141,142,178,364],unixcommandpars:234,unixtim:337,unjoin:179,unknown:[41,56,69,137,251,344],unleash:28,unless:[4,5,11,12,21,22,23,27,29,33,38,51,72,78,80,84,88,89,90,96,102,110,115,123,138,140,144,152,153,157,159,164,166,167,170,175,194,204,205,206,221,232,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,unlink:[43,159],unload:342,unload_modul:342,unlock:[58,77,80,164,316],unlocks_red_chest:80,unlog:[157,162,163,171,186,308],unloggedin:[105,141,142,149,155,308,364],unloggedincmdset:[35,43,105,163,186],unlucki:12,unmask:206,unmodifi:[151,168,187,328],unmonitor:[272,364],unmut:[164,175],unmute_channel:164,unnam:[112,152],unneccesari:113,unnecessari:[36,61],unneed:235,unpaced_data:276,unpack:[91,241],unpars:[74,87,151,295,296],unpaus:[100,102,159,169,260],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],unrepat:344,unrepeat:[272,344,364],unreport:272,unsaf:[110,152,233,344],unsafe_token:321,unsatisfactori:111,unsav:326,unsel:85,unset:[33,49,58,89,116,157,170,206,231,242,247,251,252,261,316,324,328,329,330,337],unset_lock:164,unsign:345,unsigned_integ:[338,345],unsignedinteg:338,unstabl:100,unstrip:151,unsub:164,unsub_from_channel:164,unsubscrib:[58,115,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,217,218,219,220,221,226,231,232,233,247,260,267,296,298,316,321,322,331,344],untouch:321,untrust:[13,344],unus:[33,81,144,150,154,164,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,146,153,154,159,164,167,169,170,175,183,187,195,206,220,233,239,242,246,247,249,250,252,255,257,283,285,286,291,305,306,308,310,316,318,325,326,327,328,329,330,334,344,357,360,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_scripts_after_server_start:255,update_session_count:306,update_undo:326,update_weath:233,updated_bi:192,updated_on:192,updatemethod:[137,138],upfir:106,upgrad:[63,64,75,364],upload:[4,63,64,90,100,364],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],upp:233,upper:[29,39,86,101,114,127,138,156,321],uppercas:[114,206,321],upping:114,ups:7,upsel:90,upsid:[41,235],upstart:40,upstream:[26,64,104,128,364],upt:153,uptim:[12,27,43,62,169,281,331],urfgar:109,uri:[154,175,239,318],url:[8,64,70,90,98,131,134,135,136,138,141,142,146,154,164,175,239,286,296,312,318,343,346,353,356,364],url_nam:360,url_or_ref:38,url_to_online_repo:131,urlencod:69,urlpattern:[3,4,69,133,134,135],usabl:[4,66,114,123,159,180,190,219,241,310,328],usag:[0,5,12,21,22,23,28,29,30,33,38,41,42,51,58,60,64,68,71,73,81,82,85,90,91,93,109,115,116,119,121,123,124,129,154,156,157,158,159,164,165,166,169,170,171,179,180,181,182,184,185,186,187,188,189,199,202,203,205,206,210,212,213,214,217,218,219,220,221,226,230,231,232,233,234,235,241,250,260,267,298,328,330,334,364],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,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,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,146,148,150,151,152,153,154,156,159,160,164,165,166,167,169,170,171,175,177,179,180,181,182,185,187,189,190,194,198,199,202,203,204,205,206,212,214,215,217,218,219,220,221,223,226,230,231,232,233,234,235,241,242,246,247,251,252,260,261,265,272,276,289,291,292,295,298,299,306,307,308,316,317,318,319,321,322,323,324,326,327,328,329,330,334,337,338,340,344,345,364],use_dbref:[206,245,247,341],use_destin:247,use_i18n:76,use_item:219,use_nick:[144,206,247],use_required_attribut: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,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,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,146,150,152,153,154,156,159,164,166,167,168,169,170,171,175,179,180,182,184,186,187,188,189,190,192,194,195,198,199,204,205,206,213,215,217,218,219,220,221,226,231,232,233,234,235,238,239,240,241,242,245,247,251,252,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,316,317,318,319,320,321,322,324,325,326,328,329,330,337,338,339,340,341,344,345,357,363,364],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,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,170,175,178,179,180,194,195,199,205,206,210,226,233,234,235,241,247,251,252,267,287,316,318,322,328,331,340,344,364],useless:231,user:[2,4,7,8,10,11,12,13,14,20,22,23,25,28,29,30,31,35,36,37,40,41,42,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,146,148,151,154,157,159,164,166,169,170,175,176,177,180,182,187,189,193,195,206,209,210,215,219,221,233,235,239,242,247,252,259,262,265,271,279,286,287,290,295,296,306,308,311,316,318,321,326,328,329,330,338,344,345,347,349,357,364],user_input:51,user_permiss:148,userauth:287,usercreationform:357,usermanag:147,usernam:[2,4,12,35,51,74,100,107,119,131,134,144,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,39,40,44,57,64,68,69,80,81,86,88,90,98,107,109,112,113,114,115,119,124,125,127,130,131,136,137,152,166,170,179,185,187,199,205,206,219,233,234,235,242,245,256,261,276,296,310,316,319,337,338,344,347],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,166,167,168,169,170,175,179,180,181,184,185,187,188,190,194,203,205,206,212,213,214,215,217,218,219,220,221,230,231,233,234,235,242,245,247,250,251,252,256,260,261,278,279,280,285,286,290,296,299,308,309,310,312,316,318,319,321,322,326,328,329,331,337,338,339,340,341,342,344,346,357,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,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,164,165,169,170,177,184,194,195,198,204,205,206,233,234,242,245,246,247,251,252,267,269,274,299,306,316,318,321,323,324,328,329,337,339,341,344],utc:[23,345],utf8:[23,36],utf:[15,24,58,74,111,113,171,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,158,169,170,175,177,178,184,187,188,191,195,196,211,213,220,226,228,230,239,245,247,249,251,259,260,274,293,298,316,317,318,346,357,360,364],utilis:328,uyi:205,v21:63,vagu:21,val:[11,88,144,156,291,344],valid:[1,11,13,26,30,31,33,42,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,147,151,153,159,167,170,175,176,179,180,188,192,195,196,204,206,215,220,232,233,234,235,242,247,249,251,252,255,257,259,260,261,262,265,267,291,295,306,316,317,319,322,324,328,338,339,340,341,343,344,345,357,364],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,364],valign:330,valu:[0,2,4,6,10,11,12,17,20,22,25,27,28,31,33,38,39,41,42,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,203,204,205,206,211,217,218,219,220,221,228,233,235,239,241,242,245,246,247,250,251,252,256,260,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,338,339,340,341,344,345,357,364],valuabl:122,value1:[38,109],value2:[38,109],value3:38,value_from_datadict:340,value_to_obj:251,value_to_obj_or_ani:251,value_to_str:340,valueerror:[41,91,109,123,180,184,202,204,316,319,321,324,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,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,169,170,171,175,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,364],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,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,97,102,103,105,109,110,112,114,115,116,123,124,125,127,137,139,152,168,184,205,206,215,219,220,226,231,232,242,246,247,252,253,261,299,324,330,341,342,347],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,247,303],verbal:247,verbatim:364,verbatim_el:344,verbos:[26,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,231,234,235,238,246,251,271,317,319,324,326,328,344],verif:90,verifi:[36,51,63,90,131,159,170,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,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,206,218,219,220,221,226,232,247,252,267,272,286,310,316,321,329,344,357,363,364],version_info:267,versionad:38,versionchang:38,versu:[55,364],vertic:[138,232,330,344],very_strong:242,very_weak:80,vest:103,vet:109,veteran:79,vfill_char:330,vhost:364,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,226,246,256,316,319,321,335],viabl:231,vice:[40,61,88,105,116,164,276],vicin:[33,165,187,233],video:[79,95,114,137],vienv:9,view:[1,4,17,27,34,38,41,42,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,154,156,157,159,164,165,166,169,175,182,206,217,218,219,220,221,235,239,247,249,302,318,329,346,347,350,353,356,357,364],view_attr:159,viewabl:[53,55,166],viewer:[25,38,69,206,235,247,318],viewport:42,vim:[14,50,79,326],vincent:[180,187,204,234],violent:51,virtual:[4,41,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,364],virtualhost:8,viru:63,visibl:[13,25,31,36,38,48,54,61,63,67,69,81,90,96,105,114,123,125,131,139,165,166,206,247,279,312,328,344],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,321,363],vital:91,vlgeoff:184,vniftg:63,vnum:56,vocabulari:[46,344],voic:[33,46,124,139,364],volatil:251,volum:[21,61,100],volund:119,voluntari:37,volupt:52,vowel:[119,205],vpad_char:330,vulner:[29,103],vvc:205,vvcc:205,vvccv:205,vvccvvcc:205,w001:127,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,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,198,205,212,213,215,217,218,219,220,221,226,230,231,232,234,242,247,251,261,267,272,276,287,308,310,312,313,314,316,317,319,322,327,328,330,334,337,340,344,364],wail:49,waist:182,wait:[0,10,20,25,27,28,29,33,42,51,102,121,138,146,170,194,198,217,218,219,220,221,226,267,277,296,298,310,324,328,344],wait_for_disconnect:277,wait_for_server_connect:277,wait_for_statu:267,wait_for_status_repli:267,waiter:267,waitinf:170,wake:188,walias:159,walk:[0,14,21,31,39,46,49,60,62,85,139,213,214,215,226,235,322],walki:64,wall:[111,157,165,187,232,233],wanna:[37,179,226],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,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,166,170,171,179,180,186,187,188,190,204,206,209,215,217,218,219,220,221,226,233,235,241,242,247,252,259,261,283,285,291,298,308,313,316,318,326,328,329,334,340,344,357,363,364],wanted_id:80,warchannel:164,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,175,210,266,267,292,337,364],warnmsg:337,warrior:[28,57,58,61,122,123,164],wasclean:[278,295],wasn:[0,42,134],wast:[6,14,115],watch:[14,84,106,139],water:[153,203],waterballon:203,wave:111,wcach:169,wcactu:220,wcommandnam:234,wcure:220,wdestin: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,226],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,61,63,64,67,69,72,75,76,79,80,83,95,101,109,110,119,139,141,142,269,271,281,285,291,295,296,306,310,312,319,325,364],web_client_url:54,web_get_admin_url:[154,175,239,318],web_get_create_url:[175,239,318],web_get_delete_url:[175,239,318],web_get_detail_url:[154,175,239,318],web_get_puppet_url:318,web_get_update_url:[175,239,318],webclient:[24,30,40,45,53,54,64,67,69,83,88,95,103,105,110,114,135,139,141,142,166,169,230,262,272,275,291,296,307,328,346,351,360,364],webclient_ajax:[137,141,142,262,275,364],webclient_en:103,webclient_gui:[83,364],webclient_opt:272,webclientdata:296,webclienttest:360,webpag:[8,17,77,90,354],webport:36,webserv:[3,7,8,9,23,40,47,55,67,90,100,101,104,135,139,141,142,262,364],webserver_en:103,webserver_interfac:[67,90],webserver_port:[36,90],webservic:103,websit:[3,9,17,38,53,55,57,64,67,69,79,90,98,101,103,124,133,136,137,138,139,141,142,296,312,346,351,364],websocket:[40,55,64,90,100,137,278,284,295,307,364],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,172,175,179,182,187,194,202,205,206,215,219,220,221,226,231,247,256,260,262,267,276,278,279,285,302,310,316,317,321,325,328,331,340,344],went:[57,110,127,131,257,261],were:[1,10,11,13,24,31,33,37,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,164,175,204,215,247,251,314,318,322,341,344],weren:62,werewolf:25,werewolv:119,werkzeug:344,west:[20,25,44,49,111,159,233],west_east:111,west_exit:233,western:111,westward:233,wether:[179,324],wevennia:22,wflame:220,wflushmem:169,wfull:220,wguild:164,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,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,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,170,175,195,203,204,206,209,214,219,220,231,233,239,242,247,250,251,252,267,269,272,279,291,296,311,313,316,318,319,321,322,328,338,339,344,345,347,349,357,364],whatev:[2,11,14,21,22,23,27,33,40,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],whatnot:138,wheel:[57,63,75,115],whelp:[166,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,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,166,167,168,169,171,175,176,177,179,180,181,182,184,185,186,187,188,189,190,195,196,198,199,202,203,204,205,206,212,214,215,217,218,219,220,221,223,226,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,337,339,344,347,357,364],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,175,231,232,233,245,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,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,166,168,170,175,176,181,185,199,205,206,210,219,232,233,235,241,242,245,247,251,252,257,267,269,272,276,299,304,308,316,318,321,322,326,328,329,330,331,338,339,344,364],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,147,205,245,255,261,296,316,334],whereabout:122,wherebi:220,wherev:[11,63,64,67,100,111,127,180,209,219],whether:[0,12,39,46,51,55,62,69,77,121,144,146,153,159,164,166,175,188,215,217,218,219,220,221,247,261,278,295,310,316,317,321,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,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,166,167,170,171,175,176,177,179,180,181,182,183,184,187,188,190,198,199,202,206,209,210,212,214,215,217,218,219,220,221,226,231,232,233,234,235,239,242,245,246,247,251,252,256,257,259,261,264,266,267,271,272,279,285,287,295,296,298,299,306,307,308,310,313,316,317,318,319,321,322,324,325,328,329,330,331,334,337,338,340,341,342,344,347,349,350,357],whichev:[27,90,103,233],whilst:[77,111],whim:139,whisp:205,whisper:[43,46,165,198,205,206,247],white:[48,74,114,126,321,344],whitelist:74,whitepag:[1,48,138,364],whitespac:[14,27,33,58,81,119,123,167,202,206,321,322,330,344],who:[4,10,11,12,21,34,41,43,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,175,177,179,188,195,205,206,217,218,219,220,221,232,239,242,247,252,318,326,328,364],whoever:133,whole:[4,16,49,51,55,57,60,61,67,87,96,111,112,122,123,129,138,152,159,221,330],wholist:175,whome:159,whomev:[73,114,121,226],whose:[88,114,119,125,144,154,170,195,206,215,217,218,219,220,221,255,272,323,328,344],whould:328,why:[0,11,12,20,22,25,39,41,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],wick:316,wide:[16,25,27,39,58,61,73,86,91,138,157,219,220,235,327,330,344],widen:12,wider:[12,25,39,157,330],widest:344,widget:[340,357],width:[16,17,25,27,33,49,74,109,111,114,141,154,272,287,306,321,326,327,329,330,344],wield:[61,82,109,218],wifi:[90,103],wiki:[1,9,33,37,45,48,55,58,70,79,108,111,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,113,127,131,295],wild:[108,126,131],wildcard:[12,57,87,157,159,344],wildcard_to_regexp:344,wilder:[141,142,178,364],wildernessexit:235,wildernessmap:235,wildernessmapprovid:235,wildernessroom:235,wildernessscript:235,wildli:205,will_suppress_ga:289,will_ttyp:294,willing:[58,61,79,364],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,344,364],windowid:306,windows10:63,wingd:111,winpti:9,winter:187,wintext:73,wip:38,wipe:[9,13,23,43,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,47,49,51,56,58,64,90,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,260,310,316,317,321,337,344,357],without:[0,8,11,12,13,14,16,20,21,22,23,25,27,29,30,31,33,35,37,38,40,42,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,166,167,168,169,170,175,177,179,181,182,187,192,195,205,206,212,215,217,220,221,226,231,233,242,245,247,250,251,252,259,260,276,287,290,291,298,308,309,316,318,321,322,324,325,326,328,329,337,340,341,344,350],withstand:80,wiz:58,wizard:[109,233,252,265,267,364],wkei:159,wlocat:159,wlock:159,wmagic:220,wmass:220,wndb_: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,226,312,321,340],wonder:[9,16,56,82,119,138],wont_suppress_ga:289,wont_ttyp:294,wooden:109,woosh:21,word:[14,27,33,46,49,50,62,69,70,72,76,88,89,91,93,95,96,97,111,119,122,126,131,136,151,166,167,171,186,198,205,206,245,279,326,341,344,364],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,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,171,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,319,322,327,328,329,330,338,344,350,363,364],workaround:[63,100,131,364],workflow:61,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,164,166,170,179,184,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],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,39,41,42,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,154,159,168,175,179,184,195,205,215,226,234,235,239,242,251,252,279,291,318,321,322,325,328,339,340,342,344],wouldn:[39,126,138],wound:220,wow:[69,138],wpermiss:159,wprototype_desc:159,wprototype_kei:159,wprototype_lock:159,wprototype_par:159,wprototype_tag: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,176,177,212,239,246,247,256,260,272,274,306,316,318,319,321,330,334,335,337,344],wresid:169,write:[0,4,10,11,14,15,16,20,22,23,25,27,31,33,34,37,38,41,44,46,48,51,56,58,62,63,65,68,69,71,72,87,88,91,93,96,108,123,124,125,129,131,138,159,164,166,175,180,209,210,234,247,280,337,342,363,364],writeabl:75,written:[15,27,38,54,56,57,58,79,103,109,127,133,134,166,209,322],wrong:[26,41,42,60,63,81,85,95,110,127,152,159,169,206],wrote:170,wserver:169,wservic:164,wsgi:[8,312],wsgi_resourc:312,wsgiwebserv:312,wsl:[38,63],wss:[8,67,90],wtypeclass:159,wwhere:247,www:[8,9,22,38,55,70,90,108,128,133,141,169,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,xcode:63,xenial:130,xforward:312,xgettext:76,xit:[22,180],xmlcharrefreplac:321,xp_gain:73,xpo:330,xterm256:[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,38,39,46,51,126,138,159,169,198,265,326,328,344],yes_act:328,yes_no_question_cmdset:328,yesno:[38,51,326],yesnoquestioncmdset:328,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,96,105,109,111,119,121,128,130,131,133,134,138,144,164,171,179,186,195,226,242,246,260,285,308,312,321],yield:[10,23,33,80,108,159,170,210,330,344,364],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,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,175,179,180,181,182,183,184,187,188,190,193,194,195,198,199,202,203,204,205,206,209,210,212,213,214,215,217,218,219,220,221,223,226,232,233,234,235,241,242,247,252,258,259,260,261,269,278,279,280,296,298,308,310,312,313,316,318,321,322,324,327,328,330,331,340,341,344,357,363,364],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,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,166,169,170,171,179,180,182,183,184,185,186,187,188,190,194,204,205,206,209,210,213,215,217,218,219,220,221,223,226,232,233,234,235,241,242,246,298,318,321,326,328,330,340,341,342,344,345,357,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,38,42,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,364],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,164,206,247,316,321],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 Commands","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","<no title>"],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,abort:29,about:[29,115,125,128],abus:12,access_typ:80,account:[2,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,adding:127,addit:[9,39,41,44,100],address:25,admin:[64,97,135,145,157,173,237,244,254,263,315],administr:7,advanc:[18,29,53,87,110],aggress:117,alia:97,alias:112,all:[25,51,67,69],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,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,batchprocess: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,bootstrap:[16,17],border:17,bot:146,brainstorm:[45,138],branch:[51,131],bridg:77,brief:[55,69],briefli:88,bug:97,build:[18,19,20,21,22,38,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],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,58,64],channelhandl:174,charact:[6,24,25,46,58,60,61,64,73,82,89,96,123,133,134],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,clone:[9,131],cloth:182,cloud9:90,cmdhandler:150,cmdparser:151,cmdset:[5,152],cmdset_account:160,cmdset_charact:161,cmdset_red_button:224,cmdset_sess:162,cmdset_unloggedin:163,cmdsethandl:153,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,81,126],color_markup:183,colour:114,combat:[116,123],comfort:100,comm:[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,54,71,90,97],connection_wizard:265,contain:[100,323],content:[25,55],continu:36,contrib:[22,37,64,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,core:[45,53,56,64],cprofil:93,creat:[0,2,3,5,6,12,20,21,27,33,36,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,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],delimit:25,demo:61,depend:[9,128],deploi:100,deprec:[38,266],desc:51,descer:57,descript:100,design:85,detail:[69,133],develop:[45,57,79,100,103,110,124,127],dialogu:46,dice:[58,185],dictionari:51,differ:[56,125],diku:56,direct:[38,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,docstr:38,document:[37,38,129,363],don:[13,55,100],donat:37,down:[20,110,121],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,elev:0,email_login:186,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],eval:38,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,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:[38,103],familiar:[56,57],faq:25,faster:127,featur:[55,69,135],feel:56,field:64,fieldfil:188,file:[13,14,15,38,104,127,131,322],fill:27,find:[39,59],firewal:103,first:[0,22,46,57,60,95,124],fix:131,flexibl:38,folder:[9,26,131],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,45,79,123,124,133,165,328],general_context:350,get:[20,51,63,67,70,119],get_client_opt:74,get_input:51,get_inputfunc:74,get_valu:74,git:[64,131],github:64,give: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,68,69,70,166,236,237,238,239],here:[26,55,60,96],hierarchi:58,hint:8,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,intern:38,internation:76,interpret:106,intro_menu:230,introduct:[9,26,49,51,55,93,95,111,122,133],inventori:82,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],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,79,114],linux:[36,63,110],list:[38,42],list_nod:51,listen:118,literatur:79,live:110,local:[38,90,91],lock:[11,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,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,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,muxcommand:167,mxp:282,mysql:23,myst:38,name:[12,88,97],naw:283,ndb:11,need:[0,55],nest:22,next:[57,63,71],nice:67,nick: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,59,60,61,64,80,82,89,96,97,105,111,112,119,121,124,232,243,244,245,246,247],obtain:133,oct:138,octob:138,off:25,offici:79,olc:109,one:[38,39],onli:[38,110],onlin:[90,131],oob:88,open:85,oper:[0,10],option:[1,22,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,69,135,136],parent:[57,86],pars:[25,41,91,95],part:96,parti:79,patch:37,path:[13,83],paus:[0,29,33],pax:9,pdb:42,permiss:[19,58,80,112,122],perpetu:61,persist:[11,28,29,50],person:20,picklefield:340,pictur:133,pip:[4,64],place:38,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],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,80,122],queri:[119,125],quick:[36,63],quickstart:20,quiet:91,quirk:97,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,97,110],remark:123,rememb:38,remind:69,remot:[90,131],remov:[25,112],repeat:[51,74],repo:9,repositori:[26,37,64,131],requir:63,reset:[110,128],reshuffl:20,resourc:79,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,rss:[98,286],rst:38,rule:[31,73,116],run:[4,7,25,33,42,55,75,100,106,127],runner:127,safeti:13,sage:48,same:[46,51],save:11,schema:128,score:123,screen:35,screenshot:101,script:[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,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:270,session:[25,58,64,83,105,307],sessionhandl:[105,308],set:[4,5,9,31,49,51,54,62,65,72,80,81,90,98,103,104,106,123,127,131],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,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,106],space:17,spawn:[57,109],spawner:[109,252],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: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,328],strip:91,structur:38,studi:0,stuff:[55,123],style:17,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,45,61,68,69,73,80,116,123,124,169],tabl:[25,27,38,86],tag:[39,64,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,226],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,62,102,108],time_format:27,timer:93,timetrac:304,tip:131,titeuf87:138,to_byt:27,to_str:27,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,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,twitter:71,two:96,type:[2,5,6,11,60,89],typeclass:[6,45,53,57,64,81,97,119,124,125,140,197,314,315,316,317,318,319],under:131,understand:126,ungm:58,uninstal:122,unit:127,unixcommand:234,unloggedin:171,unmonitor:74,unrepeat:74,updat:[6,25,60,125,128,131],upgrad:128,upload:103,upstream:[97,131],url:[3,4,38,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],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],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],whitepag:45,who:33,wiki:[4,139],wilder:235,willing:55,window:[9,63],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 486ec01568..ce990e9ffe 100644 --- a/docs/0.9.5/toc.html +++ b/docs/0.9.5/toc.html @@ -1708,7 +1708,10 @@
    • 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 +
    • evennia.contrib.tutorial_examples.red_button_scripts
    • evennia.contrib.tutorial_examples.tests
    • @@ -1729,10 +1732,7 @@
    • evennia.locks
    • @@ -1829,10 +1829,19 @@
    • evennia.utils @@ -2019,10 +2031,7 @@
    • evennia.locks
    • @@ -2119,10 +2128,19 @@
    • evennia.utils @@ -2427,7 +2448,10 @@
    • 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 +
    • evennia.contrib.tutorial_examples.red_button_scripts
    • evennia.contrib.tutorial_examples.tests
    • @@ -2435,7 +2459,10 @@
    • 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 +
    • evennia.contrib.tutorial_examples.red_button_scripts
    • evennia.contrib.tutorial_examples.tests
    • evennia.contrib.tutorial_world
    • Defining your own command classes
    • +
    • Command prefixes
    • On arg_regex
    • diff --git a/docs/1.0-dev/Components/Default-Commands.html b/docs/1.0-dev/Components/Default-Commands.html index 589c5cc6ca..69c7129b90 100644 --- a/docs/1.0-dev/Components/Default-Commands.html +++ b/docs/1.0-dev/Components/Default-Commands.html @@ -50,7 +50,7 @@

      Default Commands

      -

      The full set of default Evennia commands currently contains 97 commands in 9 source +

      The full set of default Evennia commands currently contains 88 commands in 9 source files. Our policy for adding default commands is outlined here. The Commands documentation explains how Commands work as well as make new or customize existing ones. Note that this page is auto-generated. Report problems to the issue @@ -62,95 +62,86 @@ with Batch-Processor’s interactive mode.

      diff --git a/docs/1.0-dev/Contributing-Docs.html b/docs/1.0-dev/Contributing-Docs.html index c526f7bb79..1dc10453e6 100644 --- a/docs/1.0-dev/Contributing-Docs.html +++ b/docs/1.0-dev/Contributing-Docs.html @@ -330,6 +330,48 @@ class CmdEcho(Command): self.caller.msg(self.args.strip()) +

      For examples of using the Python command-line, use python language and >>> prompt.

      +
      ```python 
      +>>> print("Hello World")
      +Hello World
      +```
      +
      +
      +
      >>> print("Hello World")
      +Hello World
      +
      +
      +

      When showing an in-game command, use the shell language type and > as the prompt. +Indent returns from the game.

      +
      ```shell 
      +> look at flower
      +  Red Flower(#34)
      +  A flower with red petals.
      +```
      +
      +
      +
      > look at flower
      +  Red Flower(#34)
      +  A flower with red petals.
      +
      +
      +

      For actual shell prompts you can either use bash language type or just indent the line. +Use $ for the prompt when wanting to show what is an input and what is an output, otherwise +skip it - it can be confusing to users not that familiar with the command line.

      +
      ```bash 
      +$ ls
      +evennia/ mygame/
      +```
      +    evennia start --log
      +
      +
      +
      $ ls
      +evennia/ mygame/
      +
      +
      +
      evennia start --log
      +
      +
      diff --git a/docs/1.0-dev/Howto/Evennia-for-Diku-Users.html b/docs/1.0-dev/Howto/Evennia-for-Diku-Users.html index 6b2b4a760f..2498c26e41 100644 --- a/docs/1.0-dev/Howto/Evennia-for-Diku-Users.html +++ b/docs/1.0-dev/Howto/Evennia-for-Diku-Users.html @@ -76,15 +76,15 @@ are also highly optimized for querying large data sets efficiently.

      pay attention to what object you are using, and when you are accessing another through back- handling, that you are accessing the right object. In Diku C, accessing character object is normally done by:

      -
      /* creating pointer of both character and room struct */
      +
      /* creating pointer of both character and room struct */
       
      -void(struct char ch*, struct room room*){
      -    int dam;
      -    if (ROOM_FLAGGED(room, ROOM_LAVA)){
      -        dam = 100;
      -        ch->damage_taken = dam;
      -    }
      -}
      +void(struct char ch*, struct room room*){
      +    int dam;
      +    if (ROOM_FLAGGED(room, ROOM_LAVA)){
      +        dam = 100;
      +        ch->damage_taken = dam;
      +    }
      +}
       

      As an example for creating Commands in Evennia via the from evennia import Command the character diff --git a/docs/1.0-dev/_modules/django/utils/deconstruct.html b/docs/1.0-dev/_modules/django/utils/deconstruct.html deleted file mode 100644 index cf8b058e82..0000000000 --- a/docs/1.0-dev/_modules/django/utils/deconstruct.html +++ /dev/null @@ -1,160 +0,0 @@ - - - - - - - - django.utils.deconstruct — Evennia 1.0-dev documentation - - - - - - - - - - - - - -

      - -
      -
      -
      -
      - -

      Source code for django.utils.deconstruct

      -from importlib import import_module
      -
      -from django.utils.version import get_docs_version
      -
      -
      -def deconstructible(*args, path=None):
      -    """
      -    Class decorator that allows the decorated class to be serialized
      -    by the migrations subsystem.
      -
      -    The `path` kwarg specifies the import path.
      -    """
      -    def decorator(klass):
      -        def __new__(cls, *args, **kwargs):
      -            # We capture the arguments to make returning them trivial
      -            obj = super(klass, cls).__new__(cls)
      -            obj._constructor_args = (args, kwargs)
      -            return obj
      -
      -        def deconstruct(obj):
      -            """
      -            Return a 3-tuple of class import path, positional arguments,
      -            and keyword arguments.
      -            """
      -            # Fallback version
      -            if path:
      -                module_name, _, name = path.rpartition('.')
      -            else:
      -                module_name = obj.__module__
      -                name = obj.__class__.__name__
      -            # Make sure it's actually there and not an inner class
      -            module = import_module(module_name)
      -            if not hasattr(module, name):
      -                raise ValueError(
      -                    "Could not find object %s in %s.\n"
      -                    "Please note that you cannot serialize things like inner "
      -                    "classes. Please move the object into the main module "
      -                    "body to use migrations.\n"
      -                    "For more information, see "
      -                    "https://docs.djangoproject.com/en/%s/topics/migrations/#serializing-values"
      -                    % (name, module_name, get_docs_version()))
      -            return (
      -                path or '%s.%s' % (obj.__class__.__module__, name),
      -                obj._constructor_args[0],
      -                obj._constructor_args[1],
      -            )
      -
      -        klass.__new__ = staticmethod(__new__)
      -        klass.deconstruct = deconstruct
      -
      -        return klass
      -
      -    if not args:
      -        return decorator
      -    return decorator(*args)
      -
      - -
      -
      -
      -
      - -
      -
      - - - - \ No newline at end of file diff --git a/docs/1.0-dev/_modules/evennia/commands/command.html b/docs/1.0-dev/_modules/evennia/commands/command.html index c7156d06e5..f3c8fe40f7 100644 --- a/docs/1.0-dev/_modules/evennia/commands/command.html +++ b/docs/1.0-dev/_modules/evennia/commands/command.html @@ -62,6 +62,9 @@ from evennia.utils.ansi import ANSIString +CMD_IGNORE_PREFIXES = settings.CMD_IGNORE_PREFIXES + +
      [docs]class InterruptCommand(Exception): """Cleanly interrupt a command.""" @@ -141,12 +144,19 @@ cls.help_category = cls.help_category.lower() # pre-prepare a help index entry for quicker lookup + # strip the @- etc to allow help to be agnostic + stripped_key = cls.key[1:] if cls.key and cls.key[0] in CMD_IGNORE_PREFIXES else "" + stripped_aliases = ( + " ".join(al for al in cls.aliases + if al and al[0] in CMD_IGNORE_PREFIXES for al in cls.aliases) + ) cls.search_index_entry = { "key": cls.key, "aliases": " ".join(cls.aliases), + "no_prefix": f"{stripped_key} {stripped_aliases}", "category": cls.help_category, "text": cls.__doc__, - "tags": "", + "tags": "" } diff --git a/docs/1.0-dev/_modules/evennia/commands/default/building.html b/docs/1.0-dev/_modules/evennia/commands/default/building.html index 70458f478d..802d80d026 100644 --- a/docs/1.0-dev/_modules/evennia/commands/default/building.html +++ b/docs/1.0-dev/_modules/evennia/commands/default/building.html @@ -201,7 +201,7 @@ by everyone. """ - key = "alias" + key = "@alias" aliases = "setobjalias" switch_options = ("category",) locks = "cmd:perm(setobjalias) or perm(Builder)" @@ -310,7 +310,7 @@ one exact copy of the original object will be created with the name *_copy. """ - key = "copy" + key = "@copy" locks = "cmd:perm(copy) or perm(Builder)" help_category = "Building" @@ -401,7 +401,7 @@ If you don't supply a source object, yourself is used. """ - key = "cpattr" + key = "@cpattr" switch_options = ("move",) locks = "cmd:perm(cpattr) or perm(Builder)" help_category = "Building" @@ -540,7 +540,7 @@ object. If you don't supply a source object, yourself is used. """ - key = "mvattr" + key = "@mvattr" switch_options = ("copy",) locks = "cmd:perm(mvattr) or perm(Builder)" help_category = "Building" @@ -589,7 +589,7 @@ """ - key = "create" + key = "@create" switch_options = ("drop",) locks = "cmd:perm(create) or perm(Builder)" help_category = "Building" @@ -681,8 +681,7 @@ describe the current room. """ - key = "desc" - aliases = "describe" + key = "@desc" switch_options = ("edit",) locks = "cmd:perm(desc) or perm(Builder)" help_category = "Building" @@ -766,8 +765,8 @@ You can specify the /force switch to bypass this confirmation. """ - key = "destroy" - aliases = ["delete", "del"] + key = "@destroy" + aliases = ["@delete", "@del"] switch_options = ("override", "force") locks = "cmd:perm(destroy) or perm(Builder)" help_category = "Building" @@ -908,7 +907,7 @@ would be 'north;no;n'. """ - key = "dig" + key = "@dig" switch_options = ("teleport",) locks = "cmd:perm(dig) or perm(Builder)" help_category = "Building" @@ -1064,8 +1063,8 @@ For more flexibility and power in creating rooms, use dig. """ - key = "tunnel" - aliases = ["tun"] + key = "@tunnel" + aliases = ["@tun"] switch_options = ("oneway", "tel") locks = "cmd: perm(tunnel) or perm(Builder)" help_category = "Building" @@ -1158,7 +1157,7 @@ currently set destination. """ - key = "link" + key = "@link" locks = "cmd:perm(link) or perm(Builder)" help_category = "Building" @@ -1295,7 +1294,7 @@ If no location is given, just view the object's home location. """ - key = "sethome" + key = "@sethome" locks = "cmd:perm(sethome) or perm(Builder)" help_category = "Building" @@ -1347,8 +1346,7 @@ to a user. Defaults to yourself. """ - key = "cmdsets" - aliases = "listcmsets" + key = "@cmdsets" locks = "cmd:perm(listcmdsets) or perm(Builder)" help_category = "Building" @@ -1378,8 +1376,8 @@ """ - key = "name" - aliases = ["rename"] + key = "@name" + aliases = ["@rename"] locks = "cmd:perm(rename) or perm(Builder)" help_category = "Building" @@ -1456,7 +1454,7 @@ """ - key = "open" + key = "@open" locks = "cmd:perm(open) or perm(Builder)" help_category = "Building" @@ -1658,7 +1656,7 @@ """ - key = "set" + key = "@set" locks = "cmd:perm(set) or perm(Builder)" help_category = "Building" nested_re = re.compile(r"\[.*?\]") @@ -2022,8 +2020,8 @@ """ - key = "typeclass" - aliases = ["type", "parent", "swap", "update", "typeclasses"] + key = "@typeclass" + aliases = ["@type", "@parent", "@swap", "@update", "@typeclasses"] switch_options = ("show", "examine", "update", "reset", "force", "list", "prototype") locks = "cmd:perm(typeclass) or perm(Builder)" help_category = "Building" @@ -2079,7 +2077,7 @@ caller = self.caller - if "list" in self.switches or self.cmdname == 'typeclasses': + if "list" in self.switches or self.cmdname in ('typeclasses', '@typeclasses'): tclasses = get_all_typeclasses() contribs = [key for key in sorted(tclasses) if key.startswith("evennia.contrib")] or [ "<None loaded>" @@ -2179,10 +2177,10 @@ caller.msg(string) return - if self.cmdstring == "swap": + if self.cmdstring in ("swap", "@swap"): self.switches.append("force") self.switches.append("reset") - elif self.cmdstring == "update": + elif self.cmdstring in ("update", "@update"): self.switches.append("force") self.switches.append("update") @@ -2273,7 +2271,7 @@ matching the given attribute-wildcard search string. """ - key = "wipe" + key = "@wipe" locks = "cmd:perm(wipe) or perm(Builder)" help_category = "Building" @@ -2342,8 +2340,8 @@ 'get:id(25); delete:perm(Builder)' """ - key = "lock" - aliases = ["locks"] + key = "@lock" + aliases = ["@locks"] locks = "cmd: perm(locks) or perm(Builder)" help_category = "Building" @@ -2463,8 +2461,8 @@ """ - key = "examine" - aliases = ["ex", "exam"] + key = "@examine" + aliases = ["@ex", "@exam"] locks = "cmd:perm(examine) or perm(Builder)" help_category = "Building" arg_regex = r"(/\w+?(\s|$))|\s|$" @@ -2873,8 +2871,8 @@ one is given. """ - key = "find" - aliases = "search, locate" + key = "@find" + aliases = ["@search", "@locate"] switch_options = ("room", "exit", "char", "exact", "loc", "startswith") locks = "cmd:perm(find) or perm(Builder)" help_category = "Building" @@ -3156,8 +3154,8 @@ """ - key = "scripts" - aliases = ["script"] + key = "@scripts" + aliases = ["@script"] switch_options = ("create", "start", "stop", "pause", "delete") locks = "cmd:perm(scripts) or perm(Builder)" help_category = "System" @@ -3299,8 +3297,7 @@ given, <nr> defaults to 10. """ - key = "objects" - aliases = ["listobjects", "listobjs", "stats", "db"] + key = "@objects" locks = "cmd:perm(listobjects) or perm(Builder)" help_category = "System" @@ -3409,8 +3406,8 @@ """ - key = "tel" - aliases = "teleport" + key = "@teleport" + aliases = "@tel" switch_options = ("quiet", "intoexit", "tonone", "loc") rhs_split = ("=", " to ") # Prefer = delimiter, but allow " to " usage. locks = "cmd:perm(teleport) or perm(Builder)" @@ -3539,8 +3536,8 @@ enough to for most grouping schemes. """ - key = "tag" - aliases = ["tags"] + key = "@tag" + aliases = ["@tags"] options = ("search", "del") locks = "cmd:perm(tag) or perm(Builder)" help_category = "Building" @@ -3726,8 +3723,8 @@ """ - key = "spawn" - aliases = ["olc"] + key = "@spawn" + aliases = ["@olc"] switch_options = ( "noloc", "search", diff --git a/docs/1.0-dev/_modules/evennia/commands/default/cmdset_account.html b/docs/1.0-dev/_modules/evennia/commands/default/cmdset_account.html index b69bd5da9d..128291e30f 100644 --- a/docs/1.0-dev/_modules/evennia/commands/default/cmdset_account.html +++ b/docs/1.0-dev/_modules/evennia/commands/default/cmdset_account.html @@ -104,21 +104,21 @@ # Comm commands self.add(comms.CmdChannel()) - # self.add(comms.CmdChannels()) - self.add(comms.CmdAddCom()) - self.add(comms.CmdDelCom()) - self.add(comms.CmdAllCom()) - self.add(comms.CmdCdestroy()) - self.add(comms.CmdChannelCreate()) - self.add(comms.CmdClock()) - self.add(comms.CmdCBoot()) - self.add(comms.CmdCWho()) - self.add(comms.CmdCdesc()) self.add(comms.CmdPage()) self.add(comms.CmdIRC2Chan()) self.add(comms.CmdIRCStatus()) self.add(comms.CmdRSS2Chan()) self.add(comms.CmdGrapevine2Chan())
      + # self.add(comms.CmdChannels()) + # self.add(comms.CmdAddCom()) + # self.add(comms.CmdDelCom()) + # self.add(comms.CmdAllCom()) + # self.add(comms.CmdCdestroy()) + # self.add(comms.CmdChannelCreate()) + # self.add(comms.CmdClock()) + # self.add(comms.CmdCBoot()) + # self.add(comms.CmdCWho()) + # self.add(comms.CmdCdesc())
      diff --git a/docs/1.0-dev/_modules/evennia/commands/default/comms.html b/docs/1.0-dev/_modules/evennia/commands/default/comms.html index fafed4cbfc..a8d9c71872 100644 --- a/docs/1.0-dev/_modules/evennia/commands/default/comms.html +++ b/docs/1.0-dev/_modules/evennia/commands/default/comms.html @@ -72,16 +72,6 @@ "CmdChannel", "CmdObjectChannel", - "CmdAddCom", - "CmdDelCom", - "CmdAllCom", - "CmdCdestroy", - "CmdCBoot", - "CmdCWho", - "CmdChannelCreate", - "CmdClock", - "CmdCdesc", - "CmdPage", "CmdIRC2Chan", @@ -261,8 +251,8 @@ ban mychannel1,mychannel2= EvilUser : Was banned for spamming. """ - key = "channel" - aliases = ["chan", "channels"] + key = "@channel" + aliases = ["@chan", "@channels"] help_category = "Comms" # these cmd: lock controls access to the channel command itself # the admin: lock controls access to /boot/ban/unban switches @@ -1297,488 +1287,6 @@ account_caller = False -
      [docs]class CmdAddCom(CmdChannel): - """ - Add a channel alias and/or subscribe to a channel - - Usage: - addcom [alias=] <channel> - - Joins a given channel. If alias is given, this will allow you to - refer to the channel by this alias rather than the full channel - name. Subsequent calls of this command can be used to add multiple - aliases to an already joined channel. - """ - - key = "addcom" - aliases = ["aliaschan", "chanalias"] - help_category = "Comms" - locks = "cmd:not pperm(channel_banned)" - - # this is used by the COMMAND_DEFAULT_CLASS parent - account_caller = True - -
      [docs] def func(self): - """Implement the command""" - - caller = self.caller - args = self.args - - if not args: - self.msg("Usage: addcom [alias =] channelname.") - return - - if self.rhs: - # rhs holds the channelname - channelname = self.rhs - alias = self.lhs - else: - channelname = self.args - alias = None - - channel = self.search_channel(channelname) - if not channel: - return - - string = "" - if not channel.has_connection(caller): - # we want to connect as well. - success, err = self.sub_to_channel(channel) - if success: - # if this would have returned True, the account is connected - self.msg(f"You now listen to the channel {channel.key}") - else: - self.msg(f"{channel.key}: You are not allowed to join this channel.") - return - - if channel.unmute(caller): - self.msg(f"You unmute channel {channel.key}.") - else: - self.msg(f"You are already connected to channel {channel.key}.") - - if alias: - # create a nick and add it to the caller. - self.add_alias(channel, alias) - self.msg(f" You can now refer to the channel {channel} with the alias '{alias}'.") - else: - string += " No alias added." - self.msg(string)
      - - -
      [docs]class CmdDelCom(CmdChannel): - """ - remove a channel alias and/or unsubscribe from channel - - Usage: - delcom <alias or channel> - delcom/all <channel> - - If the full channel name is given, unsubscribe from the - channel. If an alias is given, remove the alias but don't - unsubscribe. If the 'all' switch is used, remove all aliases - for that channel. - """ - - key = "delcom" - aliases = ["delaliaschan", "delchanalias"] - help_category = "Comms" - locks = "cmd:not perm(channel_banned)" - - # this is used by the COMMAND_DEFAULT_CLASS parent - account_caller = True - -
      [docs] def func(self): - """Implementing the command. """ - - caller = self.caller - - if not self.args: - self.msg("Usage: delcom <alias or channel>") - return - ostring = self.args.lower().strip() - - channel = self.search_channel(ostring) - if not channel: - return - - if not channel.has_connection(caller): - self.msg("You are not listening to that channel.") - return - - if ostring == channel.key.lower(): - # an exact channel name - unsubscribe - delnicks = "all" in self.switches - # find all nicks linked to this channel and delete them - if delnicks: - aliases = self.get_channel_aliases(channel) - for alias in aliases: - self.remove_alias(alias) - success, err = self.unsub_from_channel(channel) - if success: - wipednicks = " Eventual aliases were removed." if delnicks else "" - self.msg(f"You stop listening to channel '{channel.key}'.{wipednicks}") - else: - self.msg(err) - return - else: - # we are removing a channel nick - self.remove_alias(ostring) - self.msg(f"Any alias '{ostring}' for channel {channel.key} was cleared.")
      - - -
      [docs]class CmdAllCom(CmdChannel): - """ - perform admin operations on all channels - - Usage: - allcom [on | off | who | destroy] - - Allows the user to universally turn off or on all channels they are on, as - well as perform a 'who' for all channels they are on. Destroy deletes all - channels that you control. - - Without argument, works like comlist. - """ - - key = "allcom" - aliases = [] # important to not inherit parent's aliases - locks = "cmd: not pperm(channel_banned)" - help_category = "Comms" - - # this is used by the COMMAND_DEFAULT_CLASS parent - account_caller = True - -
      [docs] def func(self): - """Runs the function""" - - caller = self.caller - args = self.args - if not args: - subscribed, available = self.list_channels() - table = self.display_all_channels(subscribed, available) - self.msg( - "\n|wAvailable channels:\n{table}") - return - return - - if args == "on": - # get names of all channels available to listen to - # and activate them all - channels = [ - chan - for chan in CHANNEL_DEFAULT_TYPECLASS.objects.get_all_channels() - if chan.access(caller, "listen") - ] - for channel in channels: - self.execute_cmd("addcom %s" % channel.key) - elif args == "off": - # get names all subscribed channels and disconnect from them all - channels = CHANNEL_DEFAULT_TYPECLASS.objects.get_subscriptions(caller) - for channel in channels: - self.execute_cmd("delcom %s" % channel.key) - elif args == "destroy": - # destroy all channels you control - channels = [ - chan - for chan in CHANNEL_DEFAULT_TYPECLASS.objects.get_all_channels() - if chan.access(caller, "control") - ] - for channel in channels: - self.execute_cmd("cdestroy %s" % channel.key) - elif args == "who": - # run a who, listing the subscribers on visible channels. - string = "\n|CChannel subscriptions|n" - channels = [ - chan - for chan in CHANNEL_DEFAULT_TYPECLASS.objects.get_all_channels() - if chan.access(caller, "listen") - ] - if not channels: - string += "No channels." - for channel in channels: - string += "\n|w%s:|n\n %s" % (channel.key, channel.wholist) - self.msg(string.strip()) - else: - # wrong input - self.msg("Usage: allcom on | off | who | clear")
      - -
      [docs]class CmdCdestroy(CmdChannel): - """ - destroy a channel you created - - Usage: - cdestroy <channel> - - Destroys a channel that you control. - """ - - key = "cdestroy" - aliases = [] - help_category = "Comms" - locks = "cmd: not pperm(channel_banned)" - - # this is used by the COMMAND_DEFAULT_CLASS parent - account_caller = True - -
      [docs] def func(self): - """Destroy objects cleanly.""" - - caller = self.caller - - if not self.args: - self.msg("Usage: cdestroy <channelname>") - return - - channel = self.search_channel(self.args) - - if not channel: - self.msg("Could not find channel %s." % self.args) - return - if not channel.access(caller, "control"): - self.msg("You are not allowed to do that.") - return - channel_key = channel.key - message = f"{channel.key} is being destroyed. Make sure to change your aliases." - self.destroy_channel(channel, message) - self.msg("Channel '%s' was destroyed." % channel_key) - logger.log_sec( - "Channel Deleted: %s (Caller: %s, IP: %s)." - % (channel_key, caller, self.session.address) - )
      - - -
      [docs]class CmdCBoot(CmdChannel): - """ - kick an account from a channel you control - - Usage: - cboot[/quiet] <channel> = <account> [:reason] - - Switch: - quiet - don't notify the channel - - Kicks an account or object from a channel you control. - - """ - - key = "cboot" - aliases = [] - switch_options = ("quiet",) - locks = "cmd: not pperm(channel_banned)" - help_category = "Comms" - - # this is used by the COMMAND_DEFAULT_CLASS parent - account_caller = True - -
      [docs] def func(self): - """implement the function""" - - if not self.args or not self.rhs: - string = "Usage: cboot[/quiet] <channel> = <account> [:reason]" - self.msg(string) - return - - channel = self.search_channel(self.lhs) - if not channel: - return - - reason = "" - if ":" in self.rhs: - target, reason = self.rhs.rsplit(":", 1) - is_account = target.strip().startswith("*") - searchstring = target.lstrip("*") - else: - is_account = target.strip().startswith("*") - searchstring = self.rhs.lstrip("*") - - target = self.caller.search(searchstring, account=is_account) - if not target: - return - if reason: - reason = " (reason: %s)" % reason - if not channel.access(self.caller, "control"): - string = "You don't control this channel." - self.msg(string) - return - - success, err = self.boot_user(target, quiet='quiet' in self.switches) - if success: - self.msg(f"Booted {target.key} from {channel.key}") - logger.log_sec( - "Channel Boot: %s (Channel: %s, Reason: %s, Caller: %s, IP: %s)." - % (self.caller, channel, reason, self.caller, self.session.address) - ) - else: - self.msg(err)
      - - -
      [docs]class CmdCWho(CmdChannel): - """ - show who is listening to a channel - - Usage: - cwho <channel> - - List who is connected to a given channel you have access to. - """ - - key = "cwho" - aliases = [] - locks = "cmd: not pperm(channel_banned)" - help_category = "Comms" - - # this is used by the COMMAND_DEFAULT_CLASS parent - account_caller = True - -
      [docs] def func(self): - """implement function""" - - if not self.args: - string = "Usage: cwho <channel>" - self.msg(string) - return - - channel = self.search_channel(self.lhs) - if not channel: - return - if not channel.access(self.caller, "listen"): - string = "You can't access this channel." - self.msg(string) - return - string = "\n|CChannel subscriptions|n" - string += "\n|w%s:|n\n %s" % (channel.key, channel.wholist) - self.msg(string.strip())
      - - -
      [docs]class CmdChannelCreate(CmdChannel): - """ - create a new channel - - Usage: - ccreate <new channel>[;alias;alias...] = description - - Creates a new channel owned by you. - """ - - key = "ccreate" - aliases = "channelcreate" - locks = "cmd:not pperm(channel_banned) and pperm(Player)" - help_category = "Comms" - - # this is used by the COMMAND_DEFAULT_CLASS parent - account_caller = True - -
      [docs] def func(self): - """Implement the command""" - - if not self.args: - self.msg("Usage ccreate <channelname>[;alias;alias..] = description") - return - - description = "" - - if self.rhs: - description = self.rhs - lhs = self.lhs - channame = lhs - aliases = None - if ";" in lhs: - channame, aliases = lhs.split(";", 1) - aliases = [alias.strip().lower() for alias in aliases.split(";")] - - new_chan, err = self.create_channel(channame, description, aliases=aliases) - if new_chan: - self.msg(f"Created channel {new_chan.key} and connected to it.") - else: - self.msg(err)
      - - -
      [docs]class CmdClock(CmdChannel): - """ - change channel locks of a channel you control - - Usage: - clock <channel> [= <lockstring>] - - Changes the lock access restrictions of a channel. If no - lockstring was given, view the current lock definitions. - """ - - key = "clock" - aliases = ["clock"] - locks = "cmd:not pperm(channel_banned) and perm(Admin)" - help_category = "Comms" - - # this is used by the COMMAND_DEFAULT_CLASS parent - account_caller = True - -
      [docs] def func(self): - """run the function""" - - if not self.args: - string = "Usage: clock channel [= lockstring]" - self.msg(string) - return - - channel = self.search_channel(self.lhs) - if not channel: - return - - if not self.rhs: - # no =, so just view the current locks - self.msg(f"Current locks on {channel.key}\n{channel.locks}") - return - # we want to add/change a lock. - if not channel.access(self.caller, "control"): - string = "You don't control this channel." - self.msg(string) - return - # Try to add the lock - success, err = self.set_lock(channel, self.rhs) - if success: - self.msg(f"Lock(s) applied. Current locks on {channel.key}:\n{channel.locks}") - else: - self.msg(err)
      - -
      [docs]class CmdCdesc(CmdChannel): - """ - describe a channel you control - - Usage: - cdesc <channel> = <description> - - Changes the description of the channel as shown in - channel lists. - - """ - - key = "cdesc" - aliases = [] - locks = "cmd:not pperm(channel_banned)" - help_category = "Comms" - - # this is used by the COMMAND_DEFAULT_CLASS parent - account_caller = True - -
      [docs] def func(self): - """Implement command""" - - caller = self.caller - - if not self.rhs: - self.msg("Usage: cdesc <channel> = <description>") - return - channel = self.search_channel(self.lhs) - if not channel: - return - # check permissions - if not channel.access(caller, "control"): - self.msg("You cannot admin this channel.") - return - self.set_desc(channel, self.rhs) - self.msg(f"Description of channel '{channel.key}' set to '{self.rhs}'.")
      - -
      [docs]class CmdPage(COMMAND_DEFAULT_CLASS): """ send a private message to another account diff --git a/docs/1.0-dev/_modules/evennia/commands/default/help.html b/docs/1.0-dev/_modules/evennia/commands/default/help.html index f9babc9fc5..3981c1cd3c 100644 --- a/docs/1.0-dev/_modules/evennia/commands/default/help.html +++ b/docs/1.0-dev/_modules/evennia/commands/default/help.html @@ -52,6 +52,8 @@ """ +import re +from itertools import chain from dataclasses import dataclass from django.conf import settings from collections import defaultdict @@ -68,6 +70,7 @@ ) from evennia.help.utils import help_search_with_index, parse_entry_for_subcategories +CMD_IGNORE_PREFIXES = settings.CMD_IGNORE_PREFIXES COMMAND_DEFAULT_CLASS = class_from_module(settings.COMMAND_DEFAULT_CLASS) HELP_MORE_ENABLED = settings.HELP_MORE_ENABLED DEFAULT_HELP_CATEGORY = settings.DEFAULT_HELP_CATEGORY @@ -90,6 +93,7 @@ "key": self.key, "aliases": "", "category": self.key, + "no_prefix": "", "tags": "", "text": "", } @@ -447,7 +451,7 @@ key: entry for key, entry in file_help_topics.items() if self.can_list_topic(entry, caller)} else: - # query + # query - check the read lock on entries cmd_help_topics = { cmd.auto_help_display_key if hasattr(cmd, "auto_help_display_key") else cmd.key: cmd @@ -481,7 +485,8 @@ search_fields = [ {"field_name": "key", "boost": 10}, {"field_name": "aliases", "boost": 9}, - {"field_name": "category", "boost": 8}, + {"field_name": "no_prefix", "boost": 8}, + {"field_name": "category", "boost": 7}, {"field_name": "tags", "boost": 1}, # tags are not used by default ] match, suggestions = None, None @@ -523,6 +528,27 @@ self.topic = "" self.subtopics = []
      +
      [docs] def strip_cmd_prefix(self, key, all_keys): + """ + Conditional strip of a command prefix, such as @ in @desc. By default + this will be hidden unless there is a duplicate without the prefix + in the full command set (such as @open and open). + + Args: + key (str): Command key to analyze. + all_cmds (list): All command-keys (and potentially aliases). + + Returns: + str: Potentially modified key to use in help display. + + """ + if key and key[0] in CMD_IGNORE_PREFIXES and key[1:] not in all_keys: + # filter out e.g. `@` prefixes from display if there is duplicate + # with the prefix in the set (such as @open/open) + return key[1:] + return key
      + +
      [docs] def func(self): """ Run the dynamic help entry creator. @@ -544,7 +570,12 @@ # group by category (cmds are listed separately) cmd_help_by_category = defaultdict(list) file_db_help_by_category = defaultdict(list) + + # get a collection of all keys + aliases to be able to strip prefixes like @ + key_and_aliases = set(chain(*(cmd._keyaliases for cmd in cmd_help_topics.values()))) + for key, cmd in cmd_help_topics.items(): + key = self.strip_cmd_prefix(key, key_and_aliases) cmd_help_by_category[cmd.help_category].append(key) for key, entry in file_db_help_topics.items(): file_db_help_by_category[entry.help_category].append(key) @@ -592,7 +623,7 @@ {"field_name": "text", "boost": 1}, ] - for match_query in [query, f"{query}*"]: + for match_query in [query, f"{query}*", f"*{query}"]: _, suggestions = help_search_with_index( match_query, entries, suggestion_maxnum=self.suggestion_maxnum, @@ -603,7 +634,7 @@ help_text += ( "\n... But matches where found within the help " "texts of the suggestions below.") - break + # break output = self.format_help_entry( topic=None, # this will give a no-match style title @@ -696,10 +727,19 @@ # we reached the bottom of the topic tree help_text = subtopic_map[None] + # get a collection of all keys + aliases to be able to strip prefixes like @ + key_and_aliases = set(chain(*(cmd._keyaliases for cmd in cmd_help_topics.values()))) + topic = self.strip_cmd_prefix(topic, key_and_aliases) + if subtopics: + aliases = None + else: + aliases = [self.strip_cmd_prefix(alias, key_and_aliases) for alias in aliases] + suggested = [self.strip_cmd_prefix(sugg, key_and_aliases) for sugg in suggested] + output = self.format_help_entry( topic=topic, help_text=help_text, - aliases=aliases if not subtopics else None, + aliases=aliases, subtopics=subtopic_index, suggested=suggested, click_topics=clickable_topics diff --git a/docs/1.0-dev/_modules/evennia/commands/default/system.html b/docs/1.0-dev/_modules/evennia/commands/default/system.html index cea6f38caa..6632e116d9 100644 --- a/docs/1.0-dev/_modules/evennia/commands/default/system.html +++ b/docs/1.0-dev/_modules/evennia/commands/default/system.html @@ -104,8 +104,8 @@ reset to purge) and at_reload() hooks will be called. """ - key = "reload" - aliases = ["restart"] + key = "@reload" + aliases = ["@restart"] locks = "cmd:perm(reload) or perm(Developer)" help_category = "System" @@ -142,8 +142,8 @@ """ - key = "reset" - aliases = ["reboot"] + key = "@reset" + aliases = ["@reboot"] locks = "cmd:perm(reload) or perm(Developer)" help_category = "System" @@ -166,7 +166,7 @@ Gracefully shut down both Server and Portal. """ - key = "shutdown" + key = "@shutdown" locks = "cmd:perm(shutdown) or perm(Developer)" help_category = "System" @@ -389,8 +389,8 @@ """ - key = "py" - aliases = ["!"] + key = "@py" + aliases = ["@!"] switch_options = ("time", "edit", "clientraw", "noecho") locks = "cmd:perm(py) or perm(Developer)" help_category = "System" @@ -471,8 +471,8 @@ If not given, <nr> defaults to 10. """ - key = "accounts" - aliases = ["account", "listaccounts"] + key = "@accounts" + aliases = ["@account"] switch_options = ("delete",) locks = "cmd:perm(listaccounts) or perm(Admin)" help_category = "System" @@ -585,8 +585,8 @@ in the list. """ - key = "service" - aliases = ["services"] + key = "@service" + aliases = ["@services"] switch_options = ("list", "start", "stop", "delete") locks = "cmd:perm(service) or perm(Developer)" help_category = "System" @@ -686,8 +686,8 @@ Display info about the game engine. """ - key = "about" - aliases = "version" + key = "@about" + aliases = "@version" locks = "cmd:all()" help_category = "System" @@ -734,8 +734,8 @@ and the current time stamp. """ - key = "time" - aliases = "uptime" + key = "@time" + aliases = "@uptime" locks = "cmd:perm(time) or perm(Player)" help_category = "System" @@ -802,8 +802,8 @@ """ - key = "server" - aliases = ["serverload", "serverprocess"] + key = "@server" + aliases = ["@serverload"] switch_options = ("mem", "flushmem") locks = "cmd:perm(list) or perm(Developer)" help_category = "System" @@ -951,7 +951,7 @@ """ - key = "tickers" + key = "@tickers" help_category = "System" locks = "cmd:perm(tickers) or perm(Builder)" @@ -1008,8 +1008,8 @@ """ - key = "tasks" - aliases = ["delays", "task"] + key = "@tasks" + aliases = ["@delays", "@task"] switch_options = ("pause", "unpause", "do_task", "call", "remove", "cancel") locks = "perm(Developer)" help_category = "System" diff --git a/docs/1.0-dev/_modules/evennia/commands/default/tests.html b/docs/1.0-dev/_modules/evennia/commands/default/tests.html index a8a6442cbc..6e4a404a42 100644 --- a/docs/1.0-dev/_modules/evennia/commands/default/tests.html +++ b/docs/1.0-dev/_modules/evennia/commands/default/tests.html @@ -1037,7 +1037,7 @@ self.call( building.CmdCpAttr(), "/copy Obj2/test2 = Obj2/test3", - 'cpattr: Extra switch "/copy" ignored.|\nCopied Obj2.test2 -> Obj2.test3. ' + '@cpattr: Extra switch "/copy" ignored.|\nCopied Obj2.test2 -> Obj2.test3. ' "(value: 'value2')", ) self.call(building.CmdMvAttr(), "", "Usage: ") @@ -1908,90 +1908,6 @@ )
      -
      [docs]class TestComms(CommandTest): -
      [docs] def setUp(self): - super(CommandTest, self).setUp() - self.call( - comms.CmdChannelCreate(), - "testchan;test=Test Channel", - "Created channel testchan and connected to it.", - receiver=self.account, - )
      - -
      [docs] def test_toggle_com(self): - self.call( - comms.CmdAddCom(), - "tc = testchan", - "You are already connected to channel testchan.| You can now", - receiver=self.account, - ) - self.call( - comms.CmdDelCom(), - "tc", - "Any alias 'tc' for channel testchan was cleared.", - receiver=self.account, - )
      - -
      [docs] def test_all_com(self): - self.call( - comms.CmdAllCom(), - "", - "Available channels:", - receiver=self.account, - )
      - -
      [docs] def test_clock(self): - self.call( - comms.CmdClock(), - "testchan=send:all()", - "Lock(s) applied. Current locks on testchan:", - receiver=self.account, - )
      - -
      [docs] def test_cdesc(self): - self.call( - comms.CmdCdesc(), - "testchan = Test Channel", - "Description of channel 'testchan' set to 'Test Channel'.", - receiver=self.account, - )
      - -
      [docs] def test_cwho(self): - self.call( - comms.CmdCWho(), - "testchan", - "Channel subscriptions\ntestchan:\n TestAccount", - receiver=self.account, - )
      - -
      [docs] def test_page(self): - self.call( - comms.CmdPage(), - "TestAccount2 = Test", - "TestAccount2 is offline. They will see your message if they list their pages later." - "|You paged TestAccount2 with: 'Test'.", - receiver=self.account, - )
      - -
      [docs] def test_cboot(self): - # No one else connected to boot - self.call( - comms.CmdCBoot(), - "", - "Usage: cboot[/quiet] <channel> = <account> [:reason]", - receiver=self.account, - )
      - -
      [docs] def test_cdestroy(self): - self.call( - comms.CmdCdestroy(), - "testchan", - "[testchan] TestAccount: testchan is being destroyed. Make sure to change your aliases." - "|Channel 'testchan' was destroyed.", - receiver=self.account, - )
      - - from evennia.utils.create import create_channel # noqa
      [docs]class TestCommsChannel(CommandTest): diff --git a/docs/1.0-dev/_modules/evennia/contrib/awsstorage/aws_s3_cdn.html b/docs/1.0-dev/_modules/evennia/contrib/awsstorage/aws_s3_cdn.html deleted file mode 100644 index 8ab6229dac..0000000000 --- a/docs/1.0-dev/_modules/evennia/contrib/awsstorage/aws_s3_cdn.html +++ /dev/null @@ -1,970 +0,0 @@ - - - - - - - - evennia.contrib.awsstorage.aws_s3_cdn — Evennia 1.0-dev documentation - - - - - - - - - - - - - - - -
      -
      -
      -
      - -

      Source code for 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) With a sizable number of users
      -3) Where the users are globally distributed
      -4) Where multimedia files are served to users as a part of gameplay
      -
      -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.
      -
      -"""
      -
      -from django.core.exceptions import (
      -    ImproperlyConfigured,
      -    SuspiciousOperation,
      -    SuspiciousFileOperation,
      -)
      -
      -try:
      -    from django.conf import settings as ev_settings
      -
      -    if (
      -        not ev_settings.AWS_ACCESS_KEY_ID
      -        or not ev_settings.AWS_SECRET_ACCESS_KEY
      -        or not ev_settings.AWS_STORAGE_BUCKET_NAME
      -        or not ev_settings.AWS_S3_REGION_NAME
      -    ):
      -        raise ImproperlyConfigured(
      -            (
      -                "You must add AWS-specific settings"
      -                "to mygame/server/conf/secret_settings.py to use this plugin."
      -            )
      -        )
      -
      -    if "mygame-evennia" == ev_settings.AWS_STORAGE_BUCKET_NAME:
      -        raise ImproperlyConfigured(
      -            (
      -                "You must customize your AWS_STORAGE_BUCKET_NAME"
      -                "in mygame/server/conf/secret_settings.py;"
      -                "it must be unique among ALL other S3 users"
      -            )
      -        )
      -
      -except Exception as e:
      -    print(e)
      -
      -import io
      -import mimetypes
      -import os
      -import posixpath
      -import threading
      -from gzip import GzipFile
      -from tempfile import SpooledTemporaryFile
      -from django.core.files.base import File
      -from django.core.files.storage import Storage
      -from django.utils.deconstruct import deconstructible
      -from django.utils.encoding import filepath_to_uri, force_bytes, force_text, smart_text
      -from django.utils.timezone import is_naive, make_naive
      -
      -try:
      -    from django.utils.six.moves.urllib import parse as urlparse
      -except ImportError:
      -    from urllib import parse as urlparse
      -
      -try:
      -    import boto3.session
      -    from boto3 import __version__ as boto3_version
      -    from botocore.client import Config
      -    from botocore.exceptions import ClientError
      -except ImportError as e:
      -    raise ImproperlyConfigured("Couldn't load S3 bindings. %s Did you run 'pip install boto3?'" % e)
      -
      -boto3_version_info = tuple([int(i) for i in boto3_version.split(".")])
      -
      -
      -
      [docs]def setting(name, default=None): - """ - Helper function to get a Django setting by name. If setting doesn't exist - it will return a default. - - Args: - name (str): A Django setting name - - Returns: - The value of the setting variable by that name - - """ - return getattr(ev_settings, name, default)
      - - -
      [docs]def safe_join(base, *paths): - """ - 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. - - Args: - 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 - - """ - base_path = force_text(base) - base_path = base_path.rstrip("/") - paths = [force_text(p) for p in paths] - - final_path = base_path + "/" - for path in paths: - _final_path = posixpath.normpath(posixpath.join(final_path, path)) - # posixpath.normpath() strips the trailing /. Add it back. - if path.endswith("/") or _final_path + "/" == final_path: - _final_path += "/" - final_path = _final_path - if final_path == base_path: - final_path += "/" - - # Ensure final_path starts with base_path and that the next character after - # the base path is /. - base_path_len = len(base_path) - if not final_path.startswith(base_path) or final_path[base_path_len] != "/": - raise ValueError("the joined path is located outside of the base path" " component") - - return final_path.lstrip("/")
      - - -
      [docs]def check_location(storage): - """ - Helper function to make sure that the storage location is configured correctly. - - Args: - storage (Storage): A Storage object (Django) - - Raises: - ImproperlyConfigured: If the storage location is not configured correctly, - this is raised. - - """ - if storage.location.startswith("/"): - correct = storage.location.lstrip("/") - raise ImproperlyConfigured( - "{}.location cannot begin with a leading slash. Found '{}'. Use '{}' instead.".format( - storage.__class__.__name__, storage.location, correct, - ) - )
      - - -
      [docs]def lookup_env(names): - """ - Helper function for looking up names in env vars. Returns the first element found. - - Args: - names (str): A list of environment variables - - Returns: - value (str): The value of the found environment variable. - - """ - for name in names: - value = os.environ.get(name) - if value: - return value
      - - -
      [docs]def get_available_overwrite_name(name, max_length): - """ - Helper function indicating files that will be overwritten during trunc. - - Args: - 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 - """ - if max_length is None or len(name) <= max_length: - return name - - # Adapted from Django - dir_name, file_name = os.path.split(name) - file_root, file_ext = os.path.splitext(file_name) - truncation = len(name) - max_length - - file_root = file_root[:-truncation] - if not file_root: - raise SuspiciousFileOperation( - 'aws-s3-cdn tried to truncate away entire filename "%s". ' - "Please make sure that the corresponding file field " - 'allows sufficient "max_length".' % name - ) - return os.path.join(dir_name, "{}{}".format(file_root, file_ext))
      - - -
      [docs]@deconstructible -class S3Boto3StorageFile(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. - """ - - buffer_size = setting("AWS_S3_FILE_BUFFER_SIZE", 5242880) - -
      [docs] def __init__(self, name, mode, storage, buffer_size=None): - """ - Initializes the File object. - - Args: - 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 - """ - if "r" in mode and "w" in mode: - raise ValueError("Can't combine 'r' and 'w' in mode.") - self._storage = storage - self.name = name[len(self._storage.location) :].lstrip("/") - self._mode = mode - self._force_mode = (lambda b: b) if "b" in mode else force_text - self.obj = storage.bucket.Object(storage._encode_name(name)) - if "w" not in mode: - # Force early RAII-style exception if object does not exist - self.obj.load() - self._is_dirty = False - self._raw_bytes_written = 0 - self._file = None - self._multipart = None - # 5 MB is the minimum part size (if there is more than one part). - # Amazon allows up to 10,000 parts. The default supports uploads - # up to roughly 50 GB. Increase the part size to accommodate - # for files larger than this. - if buffer_size is not None: - self.buffer_size = buffer_size - self._write_counter = 0
      - - @property - def size(self): - """ - Helper property to return filesize - """ - return self.obj.content_length - - def _get_file(self): - """ - Helper function to manage zipping and temporary files - """ - if self._file is None: - self._file = SpooledTemporaryFile( - max_size=self._storage.max_memory_size, - suffix=".S3Boto3StorageFile", - dir=setting("FILE_UPLOAD_TEMP_DIR"), - ) - if "r" in self._mode: - self._is_dirty = False - self.obj.download_fileobj(self._file) - self._file.seek(0) - if self._storage.gzip and self.obj.content_encoding == "gzip": - self._file = GzipFile(mode=self._mode, fileobj=self._file, mtime=0.0) - return self._file - - def _set_file(self, value): - self._file = value - - file = property(_get_file, _set_file) - -
      [docs] def read(self, *args, **kwargs): - """ - Checks if file is in read mode; then continues to boto3 operation - """ - if "r" not in self._mode: - raise AttributeError("File was not opened in read mode.") - return self._force_mode(super().read(*args, **kwargs))
      - -
      [docs] def readline(self, *args, **kwargs): - """ - Checks if file is in read mode; then continues to boto3 operation - """ - if "r" not in self._mode: - raise AttributeError("File was not opened in read mode.") - return self._force_mode(super().readline(*args, **kwargs))
      - -
      [docs] def write(self, content): - """ - Checks if file is in write mode or needs multipart handling, - then continues to boto3 operation. - """ - if "w" not in self._mode: - raise AttributeError("File was not opened in write mode.") - self._is_dirty = True - if self._multipart is None: - self._multipart = self.obj.initiate_multipart_upload( - **self._storage._get_write_parameters(self.obj.key) - ) - if self.buffer_size <= self._buffer_file_size: - self._flush_write_buffer() - bstr = force_bytes(content) - self._raw_bytes_written += len(bstr) - return super().write(bstr)
      - - @property - def _buffer_file_size(self): - pos = self.file.tell() - self.file.seek(0, os.SEEK_END) - length = self.file.tell() - self.file.seek(pos) - return length - - def _flush_write_buffer(self): - """ - Flushes the write buffer. - """ - if self._buffer_file_size: - self._write_counter += 1 - self.file.seek(0) - part = self._multipart.Part(self._write_counter) - part.upload(Body=self.file.read()) - self.file.seek(0) - self.file.truncate() - - def _create_empty_on_close(self): - """ - Attempt to create an empty file for this key when this File is closed if no bytes - have been written and no object already exists on S3 for this key. - This behavior is meant to mimic the behavior of Django's builtin FileSystemStorage, - where files are always created after they are opened in write mode: - f = storage.open("file.txt", mode="w") - f.close() - - Raises: - Exception: Raised if a 404 error occurs - """ - assert "w" in self._mode - assert self._raw_bytes_written == 0 - - try: - # Check if the object exists on the server; if so, don't do anything - self.obj.load() - except ClientError as err: - if err.response["ResponseMetadata"]["HTTPStatusCode"] == 404: - self.obj.put(Body=b"", **self._storage._get_write_parameters(self.obj.key)) - else: - raise - -
      [docs] def close(self): - """ - Manages file closing after multipart uploads - """ - if self._is_dirty: - self._flush_write_buffer() - parts = [ - {"ETag": part.e_tag, "PartNumber": part.part_number} - for part in self._multipart.parts.all() - ] - self._multipart.complete(MultipartUpload={"Parts": parts}) - else: - if self._multipart is not None: - self._multipart.abort() - if "w" in self._mode and self._raw_bytes_written == 0: - self._create_empty_on_close() - if self._file is not None: - self._file.close() - self._file = None
      - - -
      [docs]@deconstructible -class S3Boto3Storage(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" - # If config provided in init, signature_version and addressing_style settings/args are ignored. - config = None - # used for looking up the access and secret key from env vars - 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"] - security_token = None - - access_key = setting("AWS_S3_ACCESS_KEY_ID", setting("AWS_ACCESS_KEY_ID", "")) - secret_key = setting("AWS_S3_SECRET_ACCESS_KEY", setting("AWS_SECRET_ACCESS_KEY", "")) - file_overwrite = setting("AWS_S3_FILE_OVERWRITE", True) - object_parameters = setting("AWS_S3_OBJECT_PARAMETERS", {}) - bucket_name = setting("AWS_STORAGE_BUCKET_NAME") - auto_create_bucket = setting("AWS_AUTO_CREATE_BUCKET", False) - default_acl = setting("AWS_DEFAULT_ACL", "public-read") - bucket_acl = setting("AWS_BUCKET_ACL", default_acl) - querystring_auth = setting("AWS_QUERYSTRING_AUTH", True) - querystring_expire = setting("AWS_QUERYSTRING_EXPIRE", 3600) - signature_version = setting("AWS_S3_SIGNATURE_VERSION") - reduced_redundancy = setting("AWS_REDUCED_REDUNDANCY", False) - location = setting("AWS_LOCATION", "") - encryption = setting("AWS_S3_ENCRYPTION", False) - custom_domain = setting("AWS_S3_CUSTOM_DOMAIN") - addressing_style = setting("AWS_S3_ADDRESSING_STYLE") - secure_urls = setting("AWS_S3_SECURE_URLS", True) - file_name_charset = setting("AWS_S3_FILE_NAME_CHARSET", "utf-8") - gzip = setting("AWS_IS_GZIPPED", False) - preload_metadata = setting("AWS_PRELOAD_METADATA", False) - gzip_content_types = setting( - "GZIP_CONTENT_TYPES", - ( - "text/css", - "text/javascript", - "application/javascript", - "application/x-javascript", - "image/svg+xml", - ), - ) - url_protocol = setting("AWS_S3_URL_PROTOCOL", "http:") - endpoint_url = setting("AWS_S3_ENDPOINT_URL") - proxies = setting("AWS_S3_PROXIES") - region_name = setting("AWS_S3_REGION_NAME") - use_ssl = setting("AWS_S3_USE_SSL", True) - verify = setting("AWS_S3_VERIFY", None) - max_memory_size = setting("AWS_S3_MAX_MEMORY_SIZE", 0) - -
      [docs] def __init__(self, acl=None, bucket=None, **settings): - """ - Check if some of the settings we've provided as class attributes - need to be overwritten with values passed in here. - """ - for name, value in settings.items(): - if hasattr(self, name): - setattr(self, name, value) - - check_location(self) - - # Backward-compatibility: given the anteriority of the SECURE_URL setting - # we fall back to https if specified in order to avoid the construction - # of unsecure urls. - if self.secure_urls: - self.url_protocol = "https:" - - self._entries = {} - self._bucket = None - self._connections = threading.local() - - self.access_key, self.secret_key = self._get_access_keys() - self.security_token = self._get_security_token() - - if not self.config: - kwargs = dict( - s3={"addressing_style": self.addressing_style}, - signature_version=self.signature_version, - ) - - if boto3_version_info >= (1, 4, 4): - kwargs["proxies"] = self.proxies - self.config = Config(**kwargs)
      - - def __getstate__(self): - state = self.__dict__.copy() - state.pop("_connections", None) - state.pop("_bucket", None) - return state - - def __setstate__(self, state): - state["_connections"] = threading.local() - state["_bucket"] = None - self.__dict__ = state - - @property - def connection(self): - """ - Creates the actual connection to S3 - """ - connection = getattr(self._connections, "connection", None) - if connection is None: - session = boto3.session.Session() - self._connections.connection = session.resource( - "s3", - aws_access_key_id=self.access_key, - aws_secret_access_key=self.secret_key, - aws_session_token=self.security_token, - region_name=self.region_name, - use_ssl=self.use_ssl, - endpoint_url=self.endpoint_url, - config=self.config, - verify=self.verify, - ) - return self._connections.connection - - @property - def bucket(self): - """ - Get the current bucket. If there is no current bucket object - create it. - """ - if self._bucket is None: - self._bucket = self._get_or_create_bucket(self.bucket_name) - return self._bucket - - @property - def entries(self): - """ - Get the locally cached files for the bucket. - """ - if self.preload_metadata and not self._entries: - self._entries = { - self._decode_name(entry.key): entry - for entry in self.bucket.objects.filter(Prefix=self.location) - } - return self._entries - - def _get_access_keys(self): - """ - Gets the access keys to use when accessing S3. If none is - provided in the settings then get them from the environment - variables. - """ - access_key = self.access_key or lookup_env(S3Boto3Storage.access_key_names) - secret_key = self.secret_key or lookup_env(S3Boto3Storage.secret_key_names) - return access_key, secret_key - - def _get_security_token(self): - """ - Gets the security token to use when accessing S3. Get it from - the environment variables. - """ - security_token = self.security_token or lookup_env(S3Boto3Storage.security_token_names) - return security_token - - def _get_or_create_bucket(self, name): - """ - Retrieves a bucket if it exists, otherwise creates it. - """ - bucket = self.connection.Bucket(name) - if self.auto_create_bucket: - try: - # Directly call head_bucket instead of bucket.load() because head_bucket() - # fails on wrong region, while bucket.load() does not. - bucket.meta.client.head_bucket(Bucket=name) - except ClientError as err: - if err.response["ResponseMetadata"]["HTTPStatusCode"] == 301: - raise ImproperlyConfigured( - "Bucket %s exists, but in a different " - "region than we are connecting to. Set " - "the region to connect to by setting " - "AWS_S3_REGION_NAME to the correct region." % name - ) - - elif err.response["ResponseMetadata"]["HTTPStatusCode"] == 404: - # Notes: When using the us-east-1 Standard endpoint, you can create - # buckets in other regions. The same is not true when hitting region specific - # endpoints. However, when you create the bucket not in the same region, the - # connection will fail all future requests to the Bucket after the creation - # (301 Moved Permanently). - # - # For simplicity, we enforce in S3Boto3Storage that any auto-created - # bucket must match the region that the connection is for. - # - # Also note that Amazon specifically disallows "us-east-1" when passing bucket - # region names; LocationConstraint *must* be blank to create in US Standard. - - if self.bucket_acl: - bucket_params = {"ACL": self.bucket_acl} - else: - bucket_params = {} - region_name = self.connection.meta.client.meta.region_name - if region_name != "us-east-1": - bucket_params["CreateBucketConfiguration"] = { - "LocationConstraint": region_name - } - bucket.create(**bucket_params) - else: - raise - return bucket - - def _clean_name(self, name): - """ - Cleans the name so that Windows style paths work - """ - # Normalize Windows style paths - clean_name = posixpath.normpath(name).replace("\\", "/") - - # os.path.normpath() can strip trailing slashes so we implement - # a workaround here. - if name.endswith("/") and not clean_name.endswith("/"): - # Add a trailing slash as it was stripped. - clean_name += "/" - return clean_name - - def _normalize_name(self, name): - """ - Normalizes the name so that paths like /path/to/ignored/../something.txt - work. We check to make sure that the path pointed to is not outside - the directory specified by the LOCATION setting. - """ - try: - return safe_join(self.location, name) - except ValueError: - raise SuspiciousOperation("Attempted access to '%s' denied." % name) - - def _encode_name(self, name): - return smart_text(name, encoding=self.file_name_charset) - - def _decode_name(self, name): - return force_text(name, encoding=self.file_name_charset) - - def _compress_content(self, content): - """Gzip a given string content.""" - content.seek(0) - zbuf = io.BytesIO() - # The GZIP header has a modification time attribute (see http://www.zlib.org/rfc-gzip.html) - # Each time a file is compressed it changes even if the other contents don't change - # For S3 this defeats detection of changes using MD5 sums on gzipped files - # Fixing the mtime at 0.0 at compression time avoids this problem - zfile = GzipFile(mode="wb", fileobj=zbuf, mtime=0.0) - try: - zfile.write(force_bytes(content.read())) - finally: - zfile.close() - zbuf.seek(0) - # Boto 2 returned the InMemoryUploadedFile with the file pointer replaced, - # but Boto 3 seems to have issues with that. No need for fp.name in Boto3 - # so just returning the BytesIO directly - return zbuf - - def _open(self, name, mode="rb"): - """ - Opens the file, if it exists. - """ - name = self._normalize_name(self._clean_name(name)) - try: - f = S3Boto3StorageFile(name, mode, self) - except ClientError as err: - if err.response["ResponseMetadata"]["HTTPStatusCode"] == 404: - raise IOError("File does not exist: %s" % name) - raise # Let it bubble up if it was some other error - return f - - def _save(self, name, content): - """ - Stitches and cleans multipart uploads; normalizes file paths. - """ - cleaned_name = self._clean_name(name) - name = self._normalize_name(cleaned_name) - params = self._get_write_parameters(name, content) - - if ( - self.gzip - and params["ContentType"] in self.gzip_content_types - and "ContentEncoding" not in params - ): - content = self._compress_content(content) - params["ContentEncoding"] = "gzip" - - encoded_name = self._encode_name(name) - obj = self.bucket.Object(encoded_name) - if self.preload_metadata: - self._entries[encoded_name] = obj - - content.seek(0, os.SEEK_SET) - obj.upload_fileobj(content, ExtraArgs=params) - return cleaned_name - -
      [docs] def delete(self, name): - """ - Deletes a file from S3. - """ - name = self._normalize_name(self._clean_name(name)) - self.bucket.Object(self._encode_name(name)).delete() - - if name in self._entries: - del self._entries[name]
      - -
      [docs] def exists(self, name): - """ - Checks if file exists. - """ - name = self._normalize_name(self._clean_name(name)) - if self.entries: - return name in self.entries - try: - self.connection.meta.client.head_object(Bucket=self.bucket_name, Key=name) - return True - except ClientError: - return False
      - -
      [docs] def listdir(self, name): - """ - Translational function to go from S3 file paths to the format - Django's listdir expects. - """ - path = self._normalize_name(self._clean_name(name)) - # The path needs to end with a slash, but if the root is empty, leave - # it. - if path and not path.endswith("/"): - path += "/" - - directories = [] - files = [] - paginator = self.connection.meta.client.get_paginator("list_objects") - pages = paginator.paginate(Bucket=self.bucket_name, Delimiter="/", Prefix=path) - for page in pages: - for entry in page.get("CommonPrefixes", ()): - directories.append(posixpath.relpath(entry["Prefix"], path)) - for entry in page.get("Contents", ()): - files.append(posixpath.relpath(entry["Key"], path)) - return directories, files
      - -
      [docs] def size(self, name): - """ - Gets the filesize of a remote file. - """ - name = self._normalize_name(self._clean_name(name)) - if self.entries: - entry = self.entries.get(name) - if entry: - return entry.size if hasattr(entry, "size") else entry.content_length - return 0 - return self.bucket.Object(self._encode_name(name)).content_length
      - - def _get_write_parameters(self, name, content=None): - params = {} - - if self.encryption: - params["ServerSideEncryption"] = "AES256" - if self.reduced_redundancy: - params["StorageClass"] = "REDUCED_REDUNDANCY" - if self.default_acl: - params["ACL"] = self.default_acl - - _type, encoding = mimetypes.guess_type(name) - content_type = getattr(content, "content_type", None) - content_type = content_type or _type or self.default_content_type - - params["ContentType"] = content_type - if encoding: - params["ContentEncoding"] = encoding - - params.update(self.get_object_parameters(name)) - return params - -
      [docs] def get_object_parameters(self, name): - """ - 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. - """ - return self.object_parameters.copy()
      - -
      [docs] def get_modified_time(self, name): - """ - Returns an (aware) datetime object containing the last modified time if - USE_TZ is True, otherwise returns a naive datetime in the local timezone. - """ - name = self._normalize_name(self._clean_name(name)) - entry = self.entries.get(name) - # only call self.bucket.Object() if the key is not found - # in the preloaded metadata. - if entry is None: - entry = self.bucket.Object(self._encode_name(name)) - if setting("USE_TZ"): - # boto3 returns TZ aware timestamps - return entry.last_modified - else: - return make_naive(entry.last_modified)
      - -
      [docs] def modified_time(self, name): - """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 - """ - mtime = self.get_modified_time(name) - return mtime if is_naive(mtime) else make_naive(mtime)
      - - def _strip_signing_parameters(self, url): - """ - Boto3 does not currently support generating URLs that are unsigned. Instead we - take the signed URLs and strip any querystring params related to signing and expiration. - Note that this may end up with URLs that are still invalid, especially if params are - passed in that only work with signed URLs, e.g. response header params. - The code attempts to strip all query parameters that match names of known parameters - from v2 and v4 signatures, regardless of the actual signature version used. - """ - split_url = urlparse.urlsplit(url) - qs = urlparse.parse_qsl(split_url.query, keep_blank_values=True) - blacklist = { - "x-amz-algorithm", - "x-amz-credential", - "x-amz-date", - "x-amz-expires", - "x-amz-signedheaders", - "x-amz-signature", - "x-amz-security-token", - "awsaccesskeyid", - "expires", - "signature", - } - filtered_qs = ((key, val) for key, val in qs if key.lower() not in blacklist) - # Note: Parameters that did not have a value in the original query string will have - # an '=' sign appended to it, e.g ?foo&bar becomes ?foo=&bar= - joined_qs = ("=".join(keyval) for keyval in filtered_qs) - split_url = split_url._replace(query="&".join(joined_qs)) - return split_url.geturl() - -
      [docs] def url(self, name, parameters=None, expire=None): - """ - Returns the URL of a remotely-hosted file - """ - # Preserve the trailing slash after normalizing the path. - name = self._normalize_name(self._clean_name(name)) - if self.custom_domain: - return "{}//{}/{}".format(self.url_protocol, self.custom_domain, filepath_to_uri(name)) - if expire is None: - expire = self.querystring_expire - - params = parameters.copy() if parameters else {} - params["Bucket"] = self.bucket.name - params["Key"] = self._encode_name(name) - url = self.bucket.meta.client.generate_presigned_url( - "get_object", Params=params, ExpiresIn=expire - ) - if self.querystring_auth: - return url - return self._strip_signing_parameters(url)
      - -
      [docs] def get_available_name(self, name, max_length=None): - """Overwrite existing file with the same name.""" - name = self._clean_name(name) - if self.file_overwrite: - return get_available_overwrite_name(name, max_length) - return super().get_available_name(name, max_length)
      -
      - -
      -
      -
      -
      - -
      -
      - - - - \ No newline at end of file diff --git a/docs/1.0-dev/_modules/evennia/help/filehelp.html b/docs/1.0-dev/_modules/evennia/help/filehelp.html index 19b69fe6bd..11110b28ee 100644 --- a/docs/1.0-dev/_modules/evennia/help/filehelp.html +++ b/docs/1.0-dev/_modules/evennia/help/filehelp.html @@ -146,6 +146,7 @@ "key": self.key, "aliases": " ".join(self.aliases), "category": self.help_category, + "no_prefix": "", "tags": "", "locks": "", "text": self.entrytext, diff --git a/docs/1.0-dev/_modules/evennia/help/models.html b/docs/1.0-dev/_modules/evennia/help/models.html index 7c55443fce..6b0b09efa7 100644 --- a/docs/1.0-dev/_modules/evennia/help/models.html +++ b/docs/1.0-dev/_modules/evennia/help/models.html @@ -183,6 +183,7 @@ return { "key": self.db_key, "aliases": " ".join(self.aliases.all()), + "no_prefix": "", "category": self.db_help_category, "text": self.db_entrytext, "tags": " ".join(str(tag) for tag in self.tags.all()), diff --git a/docs/1.0-dev/_modules/evennia/help/utils.html b/docs/1.0-dev/_modules/evennia/help/utils.html index 107e17ffd1..d327273ed9 100644 --- a/docs/1.0-dev/_modules/evennia/help/utils.html +++ b/docs/1.0-dev/_modules/evennia/help/utils.html @@ -115,7 +115,8 @@ pass custom_stop_words_filter = stop_word_filter.generate_stop_word_filter(stop_words) - _LUNR_BUILDER_PIPELINE = (trimmer, custom_stop_words_filter, stemmer) + # _LUNR_BUILDER_PIPELINE = (trimmer, custom_stop_words_filter, stemmer) + _LUNR_BUILDER_PIPELINE = (custom_stop_words_filter, stemmer) indx = [cnd.search_index_entry for cnd in candidate_entries] mapping = {indx[ix]["key"]: cand for ix, cand in enumerate(candidate_entries)} diff --git a/docs/1.0-dev/_modules/functools.html b/docs/1.0-dev/_modules/functools.html index f4c5ec4e13..50e81b201e 100644 --- a/docs/1.0-dev/_modules/functools.html +++ b/docs/1.0-dev/_modules/functools.html @@ -53,16 +53,15 @@ # See C source code for _functools credits/copyright __all__ = ['update_wrapper', 'wraps', 'WRAPPER_ASSIGNMENTS', 'WRAPPER_UPDATES', - 'total_ordering', 'cache', 'cmp_to_key', 'lru_cache', 'reduce', - 'partial', 'partialmethod', 'singledispatch', 'singledispatchmethod', - 'cached_property'] + 'total_ordering', 'cmp_to_key', 'lru_cache', 'reduce', 'partial', + 'partialmethod', 'singledispatch', 'singledispatchmethod', + "cached_property"] from abc import get_cache_token from collections import namedtuple # import types, weakref # Deferred to single_dispatch() from reprlib import recursive_repr from _thread import RLock -from types import GenericAlias ################################################################################ @@ -131,84 +130,80 @@ def _gt_from_lt(self, other, NotImplemented=NotImplemented): 'Return a > b. Computed by @total_ordering from (not a < b) and (a != b).' - op_result = type(self).__lt__(self, other) + op_result = self.__lt__(other) if op_result is NotImplemented: return op_result return not op_result and self != other def _le_from_lt(self, other, NotImplemented=NotImplemented): 'Return a <= b. Computed by @total_ordering from (a < b) or (a == b).' - op_result = type(self).__lt__(self, other) - if op_result is NotImplemented: - return op_result + op_result = self.__lt__(other) return op_result or self == other def _ge_from_lt(self, other, NotImplemented=NotImplemented): 'Return a >= b. Computed by @total_ordering from (not a < b).' - op_result = type(self).__lt__(self, other) + op_result = self.__lt__(other) if op_result is NotImplemented: return op_result return not op_result def _ge_from_le(self, other, NotImplemented=NotImplemented): 'Return a >= b. Computed by @total_ordering from (not a <= b) or (a == b).' - op_result = type(self).__le__(self, other) + op_result = self.__le__(other) if op_result is NotImplemented: return op_result return not op_result or self == other def _lt_from_le(self, other, NotImplemented=NotImplemented): 'Return a < b. Computed by @total_ordering from (a <= b) and (a != b).' - op_result = type(self).__le__(self, other) + op_result = self.__le__(other) if op_result is NotImplemented: return op_result return op_result and self != other def _gt_from_le(self, other, NotImplemented=NotImplemented): 'Return a > b. Computed by @total_ordering from (not a <= b).' - op_result = type(self).__le__(self, other) + op_result = self.__le__(other) if op_result is NotImplemented: return op_result return not op_result def _lt_from_gt(self, other, NotImplemented=NotImplemented): 'Return a < b. Computed by @total_ordering from (not a > b) and (a != b).' - op_result = type(self).__gt__(self, other) + op_result = self.__gt__(other) if op_result is NotImplemented: return op_result return not op_result and self != other def _ge_from_gt(self, other, NotImplemented=NotImplemented): 'Return a >= b. Computed by @total_ordering from (a > b) or (a == b).' - op_result = type(self).__gt__(self, other) - if op_result is NotImplemented: - return op_result + op_result = self.__gt__(other) return op_result or self == other def _le_from_gt(self, other, NotImplemented=NotImplemented): 'Return a <= b. Computed by @total_ordering from (not a > b).' - op_result = type(self).__gt__(self, other) + op_result = self.__gt__(other) if op_result is NotImplemented: return op_result return not op_result def _le_from_ge(self, other, NotImplemented=NotImplemented): 'Return a <= b. Computed by @total_ordering from (not a >= b) or (a == b).' - op_result = type(self).__ge__(self, other) + op_result = self.__ge__(other) if op_result is NotImplemented: return op_result return not op_result or self == other def _gt_from_ge(self, other, NotImplemented=NotImplemented): 'Return a > b. Computed by @total_ordering from (a >= b) and (a != b).' - op_result = type(self).__ge__(self, other) + op_result = self.__ge__(other) if op_result is NotImplemented: return op_result return op_result and self != other def _lt_from_ge(self, other, NotImplemented=NotImplemented): 'Return a < b. Computed by @total_ordering from (not a >= b).' - op_result = type(self).__ge__(self, other) + op_result = self.__ge__(other) if op_result is NotImplemented: return op_result return not op_result @@ -394,7 +389,23 @@ callables as instance methods. """ - def __init__(self, func, /, *args, **keywords): + def __init__(*args, **keywords): + if len(args) >= 2: + self, func, *args = args + elif not args: + raise TypeError("descriptor '__init__' of partialmethod " + "needs an argument") + elif 'func' in keywords: + func = keywords.pop('func') + self, *args = args + import warnings + warnings.warn("Passing 'func' as keyword argument is deprecated", + DeprecationWarning, stacklevel=2) + else: + raise TypeError("type 'partialmethod' takes at least one argument, " + "got %d" % (len(args)-1)) + args = tuple(args) + if not callable(func) and not hasattr(func, "__get__"): raise TypeError("{!r} is not callable or a descriptor" .format(func)) @@ -412,6 +423,7 @@ self.func = func self.args = args self.keywords = keywords + __init__.__text_signature__ = '($self, func, /, *args, **keywords)' def __repr__(self): args = ", ".join(map(repr, self.args)) @@ -455,9 +467,6 @@ def __isabstractmethod__(self): return getattr(self.func, "__isabstractmethod__", False) - __class_getitem__ = classmethod(GenericAlias) - - # Helper functions def _unwrap_partial(func): @@ -534,7 +543,7 @@ with f.cache_info(). Clear the cache and statistics with f.cache_clear(). Access the underlying function with f.__wrapped__. - See: https://en.wikipedia.org/wiki/Cache_replacement_policies#Least_recently_used_(LRU) + See: http://en.wikipedia.org/wiki/Cache_replacement_policies#Least_recently_used_(LRU) """ @@ -551,7 +560,6 @@ # The user_function was passed in directly via the maxsize argument user_function, maxsize = maxsize, 128 wrapper = _lru_cache_wrapper(user_function, maxsize, typed, _CacheInfo) - wrapper.cache_parameters = lambda : {'maxsize': maxsize, 'typed': typed} return update_wrapper(wrapper, user_function) elif maxsize is not None: raise TypeError( @@ -559,7 +567,6 @@ def decorating_function(user_function): wrapper = _lru_cache_wrapper(user_function, maxsize, typed, _CacheInfo) - wrapper.cache_parameters = lambda : {'maxsize': maxsize, 'typed': typed} return update_wrapper(wrapper, user_function) return decorating_function @@ -686,15 +693,6 @@ pass -################################################################################ -### cache -- simplified access to the infinity cache -################################################################################ - -def cache(user_function, /): - 'Simple lightweight unbounded cache. Sometimes called "memoize".' - return lru_cache(maxsize=None)(user_function) - - ################################################################################ ### singledispatch() - single-dispatch generic function decorator ################################################################################ @@ -702,7 +700,7 @@ def _c3_merge(sequences): """Merges MROs in *sequences* to a single MRO using the C3 algorithm. - Adapted from https://www.python.org/download/releases/2.3/mro/. + Adapted from http://www.python.org/download/releases/2.3/mro/. """ result = [] @@ -1019,8 +1017,6 @@ ) raise TypeError(msg) from None return val - - __class_getitem__ = classmethod(GenericAlias)
      diff --git a/docs/1.0-dev/_modules/index.html b/docs/1.0-dev/_modules/index.html index 2a0d8870a1..6fa67e607e 100644 --- a/docs/1.0-dev/_modules/index.html +++ b/docs/1.0-dev/_modules/index.html @@ -45,7 +45,6 @@
    • django.db.models.manager
    • django.db.models.query
    • django.db.models.query_utils
    • -
    • django.utils.deconstruct
    • django.utils.functional
    • evennia
      • evennia.accounts.accounts
      • @@ -76,7 +75,6 @@
      • evennia.comms.comms
      • evennia.comms.managers
      • evennia.comms.models
      • -
      • evennia.contrib.awsstorage.aws_s3_cdn
      • evennia.contrib.awsstorage.tests
      • evennia.contrib.barter
      • evennia.contrib.building_menu
      • diff --git a/docs/1.0-dev/_sources/Components/Attributes.md.txt b/docs/1.0-dev/_sources/Components/Attributes.md.txt index 77fd58b40b..255f877cdf 100644 --- a/docs/1.0-dev/_sources/Components/Attributes.md.txt +++ b/docs/1.0-dev/_sources/Components/Attributes.md.txt @@ -1,6 +1,6 @@ # Attributes -```{code-block} bash +```{code-block} :caption: In-game > set obj/myattr = "test" ``` diff --git a/docs/1.0-dev/_sources/Components/Commands.md.txt b/docs/1.0-dev/_sources/Components/Commands.md.txt index 983149ba1e..02c502d392 100644 --- a/docs/1.0-dev/_sources/Components/Commands.md.txt +++ b/docs/1.0-dev/_sources/Components/Commands.md.txt @@ -279,6 +279,32 @@ incoming string is already split up and parsed in suitable ways by its parent. Before you can actually use the command in your game, you must now store it within a *command set*. See the [Command Sets](./Command-Sets.md) page. +### Command prefixes + +Historically, many MU* servers used to use prefix, such as `@` or `&` to signify that +a command is used for administration or requires staff privileges. The problem with this is that +newcomers to MU often find such extra symbols confusing. Evennia allows commands that can be +accessed both with- or without such a prefix. + + CMD_IGNORE_PREFIXES = "@&/+` + +This is a setting consisting of a string of characters. Each is a prefix that will be considered +a skippable prefix - _if the command is still unique in its cmdset when skipping the prefix_. + +So if you wanted to write `@look` instead of `look` you can do so - the `@` will be ignored. But If +we added an actual `@look` command (with a `key` or alias `@look`) then we would need to use the +`@` to separate between the two. + +This is also used in the default commands. For example, `@open` is a building +command that allows you to create new exits to link two rooms together. Its `key` is set to `@open`, +including the `@` (no alias is set). By default you can use both `@open` and `open` for +this command. But "open" is a pretty common word and let's say a developer adds a new `open` command +for opening a door. Now `@open` and `open` are two different commands and the `@` must be used to +separate them. + +> The `help` command will prefer to show all command names without prefix if +> possible. Only if there is a collision, will the prefix be shown in the help system. + ### On arg_regex The command parser is very general and does not require a space to end your command name. This means diff --git a/docs/1.0-dev/_sources/Components/Default-Commands.md.txt b/docs/1.0-dev/_sources/Components/Default-Commands.md.txt index 5893b630e4..e661359ec2 100644 --- a/docs/1.0-dev/_sources/Components/Default-Commands.md.txt +++ b/docs/1.0-dev/_sources/Components/Default-Commands.md.txt @@ -2,7 +2,7 @@ # Default Commands -The full set of default Evennia commands currently contains 97 commands in 9 source +The full set of default Evennia commands currently contains 88 commands in 9 source files. Our policy for adding default commands is outlined [here](../Concepts/Using-MUX-as-a-Standard.md). The [Commands](./Commands.md) documentation explains how Commands work as well as make new or customize existing ones. Note that this page is auto-generated. Report problems to the [issue @@ -14,93 +14,84 @@ with [EvEditor](./EvEditor.md), flipping pages in [EvMore](./EvMore.md) or using [Batch-Processor](./Batch-Processors.md)'s interactive mode. ``` +- [**@about** [@version]](evennia.commands.default.system.CmdAbout) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _System_) +- [**@accounts** [@account]](evennia.commands.default.system.CmdAccounts) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _System_) +- [**@alias** [setobjalias]](evennia.commands.default.building.CmdSetObjAlias) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) +- [**@channel** [@chan, @channels]](evennia.commands.default.comms.CmdChannel) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_) +- [**@cmdsets**](evennia.commands.default.building.CmdListCmdSets) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) +- [**@copy**](evennia.commands.default.building.CmdCopy) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) +- [**@cpattr**](evennia.commands.default.building.CmdCpAttr) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) +- [**@create**](evennia.commands.default.building.CmdCreate) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) +- [**@desc**](evennia.commands.default.building.CmdDesc) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) +- [**@destroy** [@del, @delete]](evennia.commands.default.building.CmdDestroy) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) +- [**@dig**](evennia.commands.default.building.CmdDig) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) +- [**@examine** [@ex, @exam]](evennia.commands.default.building.CmdExamine) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Building_) +- [**@find** [@locate, @search]](evennia.commands.default.building.CmdFind) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) +- [**@link**](evennia.commands.default.building.CmdLink) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) +- [**@lock** [@locks]](evennia.commands.default.building.CmdLock) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) +- [**@mvattr**](evennia.commands.default.building.CmdMvAttr) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) +- [**@name** [@rename]](evennia.commands.default.building.CmdName) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) +- [**@objects**](evennia.commands.default.building.CmdObjects) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _System_) +- [**@open**](evennia.commands.default.building.CmdOpen) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) +- [**@py** [@!]](evennia.commands.default.system.CmdPy) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _System_) +- [**@reload** [@restart]](evennia.commands.default.system.CmdReload) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _System_) +- [**@reset** [@reboot]](evennia.commands.default.system.CmdReset) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _System_) +- [**@scripts** [@script]](evennia.commands.default.building.CmdScripts) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _System_) +- [**@server** [@serverload]](evennia.commands.default.system.CmdServerLoad) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _System_) +- [**@service** [@services]](evennia.commands.default.system.CmdService) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _System_) +- [**@set**](evennia.commands.default.building.CmdSetAttribute) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) +- [**@sethome**](evennia.commands.default.building.CmdSetHome) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) +- [**@shutdown**](evennia.commands.default.system.CmdShutdown) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _System_) +- [**@spawn** [@olc]](evennia.commands.default.building.CmdSpawn) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) +- [**@tag** [@tags]](evennia.commands.default.building.CmdTag) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) +- [**@tasks** [@delays, @task]](evennia.commands.default.system.CmdTasks) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _System_) +- [**@teleport** [@tel]](evennia.commands.default.building.CmdTeleport) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) +- [**@tickers**](evennia.commands.default.system.CmdTickers) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _System_) +- [**@time** [@uptime]](evennia.commands.default.system.CmdTime) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _System_) +- [**@tunnel** [@tun]](evennia.commands.default.building.CmdTunnel) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) +- [**@typeclass** [@parent, @swap, @type, @typeclasses, @update]](evennia.commands.default.building.CmdTypeclass) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) +- [**@wipe**](evennia.commands.default.building.CmdWipe) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) - [**__unloggedin_look_command** [l, look]](evennia.commands.default.unloggedin.CmdUnconnectedLook) (cmdset: [UnloggedinCmdSet](evennia.commands.default.cmdset_unloggedin.UnloggedinCmdSet), help-category: _General_) -- [**about** [version]](evennia.commands.default.system.CmdAbout) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _System_) - [**access** [groups, hierarchy]](evennia.commands.default.general.CmdAccess) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _General_) -- [**accounts** [account, listaccounts]](evennia.commands.default.system.CmdAccounts) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _System_) -- [**addcom** [aliaschan, chanalias]](evennia.commands.default.comms.CmdAddCom) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_) -- [**alias** [setobjalias]](evennia.commands.default.building.CmdSetObjAlias) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) -- [**allcom**](evennia.commands.default.comms.CmdAllCom) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_) - [**batchcode** [batchcodes]](evennia.commands.default.batchprocess.CmdBatchCode) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) - [**batchcommands** [batchcmd, batchcommand]](evennia.commands.default.batchprocess.CmdBatchCommands) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) -- [**cboot**](evennia.commands.default.comms.CmdCBoot) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_) -- [**ccreate** [channelcreate]](evennia.commands.default.comms.CmdChannelCreate) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_) -- [**cdesc**](evennia.commands.default.comms.CmdCdesc) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_) -- [**cdestroy**](evennia.commands.default.comms.CmdCdestroy) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_) -- [**channel** [channels, chan]](evennia.commands.default.comms.CmdChannel) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_) - [**charcreate**](evennia.commands.default.account.CmdCharCreate) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_) - [**chardelete**](evennia.commands.default.account.CmdCharDelete) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_) -- [**clock**](evennia.commands.default.comms.CmdClock) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_) -- [**cmdsets** [listcmsets]](evennia.commands.default.building.CmdListCmdSets) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) - [**color**](evennia.commands.default.account.CmdColorTest) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_) -- [**connect** [conn, co, con]](evennia.commands.default.unloggedin.CmdUnconnectedConnect) (cmdset: [UnloggedinCmdSet](evennia.commands.default.cmdset_unloggedin.UnloggedinCmdSet), help-category: _General_) -- [**copy**](evennia.commands.default.building.CmdCopy) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) -- [**cpattr**](evennia.commands.default.building.CmdCpAttr) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) -- [**create**](evennia.commands.default.building.CmdCreate) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) -- [**create** [cre, cr]](evennia.commands.default.unloggedin.CmdUnconnectedCreate) (cmdset: [UnloggedinCmdSet](evennia.commands.default.cmdset_unloggedin.UnloggedinCmdSet), help-category: _General_) -- [**cwho**](evennia.commands.default.comms.CmdCWho) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_) -- [**delcom** [delaliaschan, delchanalias]](evennia.commands.default.comms.CmdDelCom) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_) -- [**desc** [describe]](evennia.commands.default.building.CmdDesc) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) -- [**destroy** [del, delete]](evennia.commands.default.building.CmdDestroy) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) -- [**dig**](evennia.commands.default.building.CmdDig) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) +- [**connect** [co, con, conn]](evennia.commands.default.unloggedin.CmdUnconnectedConnect) (cmdset: [UnloggedinCmdSet](evennia.commands.default.cmdset_unloggedin.UnloggedinCmdSet), help-category: _General_) +- [**create** [cr, cre]](evennia.commands.default.unloggedin.CmdUnconnectedCreate) (cmdset: [UnloggedinCmdSet](evennia.commands.default.cmdset_unloggedin.UnloggedinCmdSet), help-category: _General_) - [**drop**](evennia.commands.default.general.CmdDrop) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _General_) - [**encoding** [encode]](evennia.commands.default.unloggedin.CmdUnconnectedEncoding) (cmdset: [UnloggedinCmdSet](evennia.commands.default.cmdset_unloggedin.UnloggedinCmdSet), help-category: _General_) -- [**examine** [ex, exam]](evennia.commands.default.building.CmdExamine) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Building_) -- [**find** [locate, search]](evennia.commands.default.building.CmdFind) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) - [**get** [grab]](evennia.commands.default.general.CmdGet) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _General_) - [**give**](evennia.commands.default.general.CmdGive) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _General_) - [**grapevine2chan**](evennia.commands.default.comms.CmdGrapevine2Chan) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_) - [**help** [?]](evennia.commands.default.help.CmdHelp) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_) -- [**help** [h, ?]](evennia.commands.default.unloggedin.CmdUnconnectedHelp) (cmdset: [UnloggedinCmdSet](evennia.commands.default.cmdset_unloggedin.UnloggedinCmdSet), help-category: _General_) +- [**help** [?, h]](evennia.commands.default.unloggedin.CmdUnconnectedHelp) (cmdset: [UnloggedinCmdSet](evennia.commands.default.cmdset_unloggedin.UnloggedinCmdSet), help-category: _General_) - [**home**](evennia.commands.default.general.CmdHome) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _General_) - [**ic** [puppet]](evennia.commands.default.account.CmdIC) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_) - [**info**](evennia.commands.default.unloggedin.CmdUnconnectedInfo) (cmdset: [UnloggedinCmdSet](evennia.commands.default.cmdset_unloggedin.UnloggedinCmdSet), help-category: _General_) -- [**inventory** [inv, i]](evennia.commands.default.general.CmdInventory) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _General_) +- [**inventory** [i, inv]](evennia.commands.default.general.CmdInventory) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _General_) - [**irc2chan**](evennia.commands.default.comms.CmdIRC2Chan) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_) - [**ircstatus**](evennia.commands.default.comms.CmdIRCStatus) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_) -- [**link**](evennia.commands.default.building.CmdLink) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) -- [**lock** [locks]](evennia.commands.default.building.CmdLock) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) - [**look** [l, ls]](evennia.commands.default.account.CmdOOCLook) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_) - [**look** [l, ls]](evennia.commands.default.general.CmdLook) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _General_) -- [**mvattr**](evennia.commands.default.building.CmdMvAttr) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) -- [**name** [rename]](evennia.commands.default.building.CmdName) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) -- [**nick** [nicks, nickname]](evennia.commands.default.general.CmdNick) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_) -- [**objects** [stats, listobjects, listobjs, db]](evennia.commands.default.building.CmdObjects) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _System_) +- [**nick** [nickname, nicks]](evennia.commands.default.general.CmdNick) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_) - [**ooc** [unpuppet]](evennia.commands.default.account.CmdOOC) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_) -- [**open**](evennia.commands.default.building.CmdOpen) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) - [**option** [options]](evennia.commands.default.account.CmdOption) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_) - [**page** [tell]](evennia.commands.default.comms.CmdPage) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_) - [**password**](evennia.commands.default.account.CmdPassword) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_) - [**pose** [:, emote]](evennia.commands.default.general.CmdPose) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _General_) -- [**py** [!]](evennia.commands.default.system.CmdPy) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _System_) - [**quell** [unquell]](evennia.commands.default.account.CmdQuell) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_) - [**quit**](evennia.commands.default.account.CmdQuit) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_) -- [**quit** [qu, q]](evennia.commands.default.unloggedin.CmdUnconnectedQuit) (cmdset: [UnloggedinCmdSet](evennia.commands.default.cmdset_unloggedin.UnloggedinCmdSet), help-category: _General_) -- [**reload** [restart]](evennia.commands.default.system.CmdReload) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _System_) -- [**reset** [reboot]](evennia.commands.default.system.CmdReset) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _System_) +- [**quit** [q, qu]](evennia.commands.default.unloggedin.CmdUnconnectedQuit) (cmdset: [UnloggedinCmdSet](evennia.commands.default.cmdset_unloggedin.UnloggedinCmdSet), help-category: _General_) - [**rss2chan**](evennia.commands.default.comms.CmdRSS2Chan) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_) -- [**say** [', "]](evennia.commands.default.general.CmdSay) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _General_) +- [**say** [", ']](evennia.commands.default.general.CmdSay) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _General_) - [**screenreader**](evennia.commands.default.unloggedin.CmdUnconnectedScreenreader) (cmdset: [UnloggedinCmdSet](evennia.commands.default.cmdset_unloggedin.UnloggedinCmdSet), help-category: _General_) -- [**scripts** [script]](evennia.commands.default.building.CmdScripts) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _System_) -- [**server** [serverprocess, serverload]](evennia.commands.default.system.CmdServerLoad) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _System_) -- [**service** [services]](evennia.commands.default.system.CmdService) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _System_) - [**sessions**](evennia.commands.default.account.CmdSessions) (cmdset: [SessionCmdSet](evennia.commands.default.cmdset_session.SessionCmdSet), help-category: _General_) -- [**set**](evennia.commands.default.building.CmdSetAttribute) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) - [**setdesc**](evennia.commands.default.general.CmdSetDesc) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _General_) - [**sethelp**](evennia.commands.default.help.CmdSetHelp) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) -- [**sethome**](evennia.commands.default.building.CmdSetHome) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) -- [**shutdown**](evennia.commands.default.system.CmdShutdown) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _System_) -- [**spawn** [olc]](evennia.commands.default.building.CmdSpawn) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) - [**style**](evennia.commands.default.account.CmdStyle) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_) -- [**tag** [tags]](evennia.commands.default.building.CmdTag) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) -- [**tasks** [delays, task]](evennia.commands.default.system.CmdTasks) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _System_) -- [**tel** [teleport]](evennia.commands.default.building.CmdTeleport) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) -- [**tickers**](evennia.commands.default.system.CmdTickers) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _System_) -- [**time** [uptime]](evennia.commands.default.system.CmdTime) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _System_) -- [**tunnel** [tun]](evennia.commands.default.building.CmdTunnel) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) -- [**typeclass** [type, typeclasses, update, parent, swap]](evennia.commands.default.building.CmdTypeclass) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) - [**unlink**](evennia.commands.default.building.CmdUnLink) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) - [**whisper**](evennia.commands.default.general.CmdWhisper) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _General_) - [**who** [doing]](evennia.commands.default.account.CmdWho) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_) -- [**wipe**](evennia.commands.default.building.CmdWipe) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) diff --git a/docs/1.0-dev/_sources/Contributing-Docs.md.txt b/docs/1.0-dev/_sources/Contributing-Docs.md.txt index 903fe91e2c..70535fd4da 100644 --- a/docs/1.0-dev/_sources/Contributing-Docs.md.txt +++ b/docs/1.0-dev/_sources/Contributing-Docs.md.txt @@ -279,6 +279,57 @@ class CmdEcho(Command): self.caller.msg(self.args.strip()) ``` +For examples of using the Python command-line, use `python` language and `>>>` prompt. +```` +```python +>>> print("Hello World") +Hello World +``` +```` + +```python +>>> print("Hello World") +Hello World +``` + +When showing an in-game command, use the `shell` language type and `>` as the prompt. +Indent returns from the game. + +```` +```shell +> look at flower + Red Flower(#34) + A flower with red petals. +``` +```` + +```shell +> look at flower + Red Flower(#34) + A flower with red petals. +``` + + +For actual shell prompts you can either use `bash` language type or just indent the line. +Use `$` for the prompt when wanting to show what is an input and what is an output, otherwise +skip it - it can be confusing to users not that familiar with the command line. + +```` +```bash +$ ls +evennia/ mygame/ +``` + evennia start --log +```` + +```bash +$ ls +evennia/ mygame/ +``` + + evennia start --log + + ## MyST directives Markdown is easy to read and use. But while it does most of what we need, there are some things it's diff --git a/docs/1.0-dev/_sources/api/evennia.contrib.md.txt b/docs/1.0-dev/_sources/api/evennia.contrib.md.txt index 7ce74eb5d3..7ef24e44e4 100644 --- a/docs/1.0-dev/_sources/api/evennia.contrib.md.txt +++ b/docs/1.0-dev/_sources/api/evennia.contrib.md.txt @@ -28,6 +28,7 @@ evennia.contrib evennia.contrib.mapbuilder evennia.contrib.menu_login evennia.contrib.multidescer + evennia.contrib.mux_comms_cmds evennia.contrib.puzzles evennia.contrib.random_string_generator evennia.contrib.rplanguage diff --git a/docs/1.0-dev/_sources/api/evennia.server.md.txt b/docs/1.0-dev/_sources/api/evennia.server.md.txt index e80c01b070..5a8fc21fb4 100644 --- a/docs/1.0-dev/_sources/api/evennia.server.md.txt +++ b/docs/1.0-dev/_sources/api/evennia.server.md.txt @@ -19,7 +19,6 @@ evennia.server evennia.server.initial_setup evennia.server.inputfuncs evennia.server.manager - evennia.server.markup evennia.server.models evennia.server.server evennia.server.serversession diff --git a/docs/1.0-dev/_sources/toc.md.txt b/docs/1.0-dev/_sources/toc.md.txt index 2dc81b8ec6..3a8f35a6f8 100644 --- a/docs/1.0-dev/_sources/toc.md.txt +++ b/docs/1.0-dev/_sources/toc.md.txt @@ -240,6 +240,7 @@ api/evennia.contrib.mail api/evennia.contrib.mapbuilder api/evennia.contrib.menu_login api/evennia.contrib.multidescer +api/evennia.contrib.mux_comms_cmds api/evennia.contrib.puzzles api/evennia.contrib.random_string_generator api/evennia.contrib.rplanguage diff --git a/docs/1.0-dev/_static/basic.css b/docs/1.0-dev/_static/basic.css index cd34ee48eb..5abb60d1aa 100644 --- a/docs/1.0-dev/_static/basic.css +++ b/docs/1.0-dev/_static/basic.css @@ -702,6 +702,13 @@ div.highlight > pre { font-size: smaller; } +/* default ({code-block}, no arg) - used for in-game code */ +div.highlight-shell.notranslate > div.highlight > pre { + background-color: #faf2e6; + font-weight: bold; + font-style: italic; +} + div.doctest > div.highlight span.gp { /* gp: Generic.Prompt */ user-select: none; } diff --git a/docs/1.0-dev/api/evennia.commands.command.html b/docs/1.0-dev/api/evennia.commands.command.html index a389b2fee0..a40c9cc40b 100644 --- a/docs/1.0-dev/api/evennia.commands.command.html +++ b/docs/1.0-dev/api/evennia.commands.command.html @@ -482,7 +482,7 @@ detailing the contents of the table.

        -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'command', 'tags': '', 'text': '\n ## Base command\n\n (you may see this if a child command had no help text defined)\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 '}
        +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'command', 'no_prefix': ' ', 'tags': '', 'text': '\n ## Base command\n\n (you may see this if a child command had no help text defined)\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 '}
        diff --git a/docs/1.0-dev/api/evennia.commands.default.account.html b/docs/1.0-dev/api/evennia.commands.default.account.html index 10876a582f..64f11a06cf 100644 --- a/docs/1.0-dev/api/evennia.commands.default.account.html +++ b/docs/1.0-dev/api/evennia.commands.default.account.html @@ -73,7 +73,7 @@ method. Otherwise all text will be returned to all connected sessions.

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

        -search_index_entry = {'aliases': 'l ls', '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 '}
        +search_index_entry = {'aliases': 'ls l', 'category': 'general', 'key': 'look', 'no_prefix': ' ', 'tags': '', 'text': '\n look while out-of-character\n\n Usage:\n look\n\n Look in the ooc state.\n '}
        @@ -163,7 +163,7 @@ as you the account have access right to puppet it.

        -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 '}
        +search_index_entry = {'aliases': 'puppet', 'category': 'general', 'key': 'ic', 'no_prefix': ' ', '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 '}
        @@ -217,7 +217,7 @@ as you the account have access right to puppet it.

        -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 '}
        +search_index_entry = {'aliases': 'unpuppet', 'category': 'general', 'key': 'ooc', 'no_prefix': ' ', '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 '}
        @@ -270,7 +270,7 @@ as you the account have access right to puppet it.

        -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 '}
        +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'password', 'no_prefix': ' ', '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 '}
        @@ -331,7 +331,7 @@ game. Use the /all switch to disconnect from all sessions.

        -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 '}
        +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'quit', 'no_prefix': ' ', '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 '}
        @@ -387,7 +387,7 @@ if you want.

        -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 '}
        +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'charcreate', 'no_prefix': ' ', '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 '}
        @@ -450,7 +450,7 @@ later connecting with a client with different capabilities.

        -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 '}
        +search_index_entry = {'aliases': 'options', 'category': 'general', 'key': 'option', 'no_prefix': ' ', '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 '}
        @@ -503,7 +503,7 @@ later connecting with a client with different capabilities.

        -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 '}
        +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'sessions', 'no_prefix': ' ', '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 '}
        @@ -558,7 +558,7 @@ also for those with all permissions.

        -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 '}
        +search_index_entry = {'aliases': 'doing', 'category': 'general', 'key': 'who', 'no_prefix': ' ', '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 '}
        @@ -642,7 +642,7 @@ Takes a table of columns [[val,val,…],[val,val,…],…]

        -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 '}
        +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'color', 'no_prefix': ' ', '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 '}
        @@ -702,7 +702,7 @@ Use the unquell command to revert back to normal operation.

        -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 "}
        +search_index_entry = {'aliases': 'unquell', 'category': 'general', 'key': 'quell', 'no_prefix': ' ', '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 "}
        @@ -750,7 +750,7 @@ Use the unquell command to revert back to normal operation.

        -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 '}
        +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'chardelete', 'no_prefix': ' ', '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 '}
        @@ -812,7 +812,7 @@ to all the variables defined therein.

        -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 '}
        +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'style', 'no_prefix': ' ', '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 '}
        diff --git a/docs/1.0-dev/api/evennia.commands.default.admin.html b/docs/1.0-dev/api/evennia.commands.default.admin.html index f1e030585c..883484ffa8 100644 --- a/docs/1.0-dev/api/evennia.commands.default.admin.html +++ b/docs/1.0-dev/api/evennia.commands.default.admin.html @@ -95,7 +95,7 @@ supplied it will be echoed to the user unless /quiet is set.

        -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 '}
        +search_index_entry = {'aliases': '', 'category': 'admin', 'key': 'boot', 'no_prefix': ' ', '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 '}
        @@ -174,7 +174,7 @@ values in each tuple is set to the empty string.

        -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 "}
        +search_index_entry = {'aliases': 'bans', 'category': 'admin', 'key': 'ban', 'no_prefix': ' ', '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 "}
        @@ -225,7 +225,7 @@ unban.

        -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 '}
        +search_index_entry = {'aliases': '', 'category': 'admin', 'key': 'unban', 'no_prefix': ' ', '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 '}
        @@ -288,7 +288,7 @@ to accounts respectively.

        -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 '}
        +search_index_entry = {'aliases': 'pemit remit', 'category': 'admin', 'key': 'emit', 'no_prefix': ' ', '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 '}
        @@ -336,7 +336,7 @@ to accounts respectively.

        -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 "}
        +search_index_entry = {'aliases': '', 'category': 'admin', 'key': 'userpassword', 'no_prefix': ' ', '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 "}
        @@ -394,7 +394,7 @@ or account. If no permission is given, list all permissions on <object>.
        -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 '}
        +search_index_entry = {'aliases': 'setperm', 'category': 'admin', 'key': 'perm', 'no_prefix': ' ', '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 '}
        @@ -443,7 +443,7 @@ including all currently unlogged in.

        -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 '}
        +search_index_entry = {'aliases': '', 'category': 'admin', 'key': 'wall', 'no_prefix': ' ', '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 '}
        @@ -497,7 +497,7 @@ including all currently unlogged in.

        -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 '}
        +search_index_entry = {'aliases': '', 'category': 'building', 'key': 'force', 'no_prefix': ' ', '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 '}
        diff --git a/docs/1.0-dev/api/evennia.commands.default.batchprocess.html b/docs/1.0-dev/api/evennia.commands.default.batchprocess.html index b2b331300f..9cf0eb193e 100644 --- a/docs/1.0-dev/api/evennia.commands.default.batchprocess.html +++ b/docs/1.0-dev/api/evennia.commands.default.batchprocess.html @@ -109,7 +109,7 @@ skipping, reloading etc.

        -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 '}
        +search_index_entry = {'aliases': 'batchcmd batchcommand', 'category': 'building', 'key': 'batchcommands', 'no_prefix': ' ', '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 '}
        @@ -172,7 +172,7 @@ object copies behind when testing out the script.

        -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 '}
        +search_index_entry = {'aliases': 'batchcodes', 'category': 'building', 'key': 'batchcode', 'no_prefix': ' ', '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 '}
        diff --git a/docs/1.0-dev/api/evennia.commands.default.building.html b/docs/1.0-dev/api/evennia.commands.default.building.html index 22a441df39..68e61cd58a 100644 --- a/docs/1.0-dev/api/evennia.commands.default.building.html +++ b/docs/1.0-dev/api/evennia.commands.default.building.html @@ -91,7 +91,7 @@ the cases, see the module doc.

        -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 "}
        +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'command', 'no_prefix': ' ', '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 "}
        @@ -121,7 +121,7 @@ changing the object in question, making those aliases usable by everyone.

        -key = 'alias'
        +key = '@alias'
        @@ -157,7 +157,7 @@ by everyone.

        -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 "}
        +search_index_entry = {'aliases': 'setobjalias', 'category': 'building', 'key': '@alias', 'no_prefix': '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 "}
        @@ -176,7 +176,7 @@ by everyone.

        one exact copy of the original object will be created with the name *_copy.

        -key = 'copy'
        +key = '@copy'
        @@ -207,7 +207,7 @@ one exact copy of the original object will be created with the name
        -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 "}
        +search_index_entry = {'aliases': '', 'category': 'building', 'key': '@copy', 'no_prefix': '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 "}
        @@ -235,7 +235,7 @@ on Anna and Tom.

        If you don’t supply a source object, yourself is used.

        -key = 'cpattr'
        +key = '@cpattr'
        @@ -304,7 +304,7 @@ required and get the attribute from the object.

        -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 "}
        +search_index_entry = {'aliases': '', 'category': 'building', 'key': '@cpattr', 'no_prefix': '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 "}
        @@ -327,7 +327,7 @@ mvattr[/switch] <attr> = <obj1>[,<obj2>,<obj3>,…]

        object. If you don’t supply a source object, yourself is used.

        -key = 'mvattr'
        +key = '@mvattr'
        @@ -363,7 +363,7 @@ object. If you don’t supply a source object, yourself is used.

        -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 "}
        +search_index_entry = {'aliases': '', 'category': 'building', 'key': '@mvattr', 'no_prefix': '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 "}
        @@ -395,7 +395,7 @@ object of this type like this:

        -key = 'create'
        +key = '@create'
        @@ -436,7 +436,7 @@ object of this type like this:

        -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 "}
        +search_index_entry = {'aliases': '', 'category': 'building', 'key': '@create', 'no_prefix': '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 "}
        @@ -456,12 +456,7 @@ object of this type like this:

        describe the current room.

        -key = 'desc'
        -
        - -
        -
        -aliases = ['describe']
        +key = '@desc'
        @@ -490,6 +485,11 @@ describe the current room.

        Define command

        +
        +
        +aliases = []
        +
        +
        lock_storage = 'cmd:perm(desc) or perm(Builder)'
        @@ -497,7 +497,7 @@ describe the current room.

        -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 '}
        +search_index_entry = {'aliases': '', 'category': 'building', 'key': '@desc', 'no_prefix': '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 '}
        @@ -527,12 +527,12 @@ displays a confirmation before destroying, to make sure of your choice. You can specify the /force switch to bypass this confirmation.

        -key = 'destroy'
        +key = '@destroy'
        -aliases = ['del', 'delete']
        +aliases = ['@delete', '@del']
        @@ -573,7 +573,7 @@ You can specify the /force switch to bypass this confirmation.

        -search_index_entry = {'aliases': 'del delete', '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 '}
        +search_index_entry = {'aliases': '@delete @del', 'category': 'building', 'key': '@destroy', 'no_prefix': 'destroy @delete @del @delete @del', 'tags': '', 'text': '\n permanently delete objects\n\n Usage:\n destroy[/switches] [obj, obj2, obj3, [dbref-dbref], ...]\n\n Switches:\n override - The destroy command will usually avoid accidentally\n destroying account objects. This switch overrides this safety.\n force - destroy without confirmation.\n Examples:\n destroy house, roof, door, 44-78\n destroy 5-10, flower, 45\n destroy/force north\n\n Destroys one or many objects. If dbrefs are used, a range to delete can be\n given, e.g. 4-10. Also the end points will be deleted. This command\n displays a confirmation before destroying, to make sure of your choice.\n You can specify the /force switch to bypass this confirmation.\n '}
        @@ -606,7 +606,7 @@ like to the name of the room and the exits in question; an example would be ‘north;no;n’.

        -key = 'dig'
        +key = '@dig'
        @@ -647,7 +647,7 @@ would be ‘north;no;n’.

        -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 "}
        +search_index_entry = {'aliases': '', 'category': 'building', 'key': '@dig', 'no_prefix': '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 "}
        @@ -681,12 +681,12 @@ created back from the new room unless the /oneway switch is given. For more flexibility and power in creating rooms, use dig.

        -key = 'tunnel'
        +key = '@tunnel'
        -aliases = ['tun']
        +aliases = ['@tun']
        @@ -722,7 +722,7 @@ For more flexibility and power in creating rooms, use dig.

        -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 '}
        +search_index_entry = {'aliases': '@tun', 'category': 'building', 'key': '@tunnel', 'no_prefix': 'tunnel @tun', '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 '}
        @@ -751,7 +751,7 @@ the unlink command) and the third form (without =) just shows the currently set destination.

        -key = 'link'
        +key = '@link'
        @@ -782,7 +782,7 @@ currently set destination.

        -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 '}
        +search_index_entry = {'aliases': '', 'category': 'building', 'key': '@link', 'no_prefix': '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 '}
        @@ -837,7 +837,7 @@ and call func in CmdLink

        -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 '}
        +search_index_entry = {'aliases': '', 'category': 'building', 'key': 'unlink', 'no_prefix': ' ', '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 '}
        @@ -859,7 +859,7 @@ It is also a convenient target of the “home” command.

        If no location is given, just view the object’s home location.

        -key = 'sethome'
        +key = '@sethome'
        @@ -890,7 +890,7 @@ It is also a convenient target of the “home” command.

        -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 '}
        +search_index_entry = {'aliases': '', 'category': 'building', 'key': '@sethome', 'no_prefix': '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 '}
        @@ -908,12 +908,7 @@ It is also a convenient target of the “home” command.

        to a user. Defaults to yourself.

        -key = 'cmdsets'
        -
        - -
        -
        -aliases = ['listcmsets']
        +key = '@cmdsets'
        @@ -932,6 +927,11 @@ to a user. Defaults to yourself.

        list the cmdsets

        +
        +
        +aliases = []
        +
        +
        lock_storage = 'cmd:perm(listcmdsets) or perm(Builder)'
        @@ -939,7 +939,7 @@ to a user. Defaults to yourself.

        -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 '}
        +search_index_entry = {'aliases': '', 'category': 'building', 'key': '@cmdsets', 'no_prefix': '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 '}
        @@ -957,12 +957,12 @@ to a user. Defaults to yourself.

        rename an account.

        -key = 'name'
        +key = '@name'
        -aliases = ['rename']
        +aliases = ['@rename']
        @@ -988,7 +988,7 @@ rename an account.

        -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 '}
        +search_index_entry = {'aliases': '@rename', 'category': 'building', 'key': '@name', 'no_prefix': 'name @rename', '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 '}
        @@ -1009,7 +1009,7 @@ can be given both as a #dbref and a name, if that name is globally unique.

        -key = 'open'
        +key = '@open'
        @@ -1061,7 +1061,7 @@ as well as the self.create_exit() method.

        -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 '}
        +search_index_entry = {'aliases': '', 'category': 'building', 'key': '@open', 'no_prefix': '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 '}
        @@ -1104,7 +1104,7 @@ write proper Python syntax too - notably you must include quotes around your strings or you will get an error.

        -key = 'set'
        +key = '@set'
        @@ -1220,7 +1220,7 @@ with older attrs that might have been named with []’s.

        -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 '}
        +search_index_entry = {'aliases': '', 'category': 'building', 'key': '@set', 'no_prefix': '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 '}
        @@ -1272,12 +1272,12 @@ module is searched from the default typeclass directory, as defined in the server settings.

        -key = 'typeclass'
        +key = '@typeclass'
        -aliases = ['type', 'typeclasses', 'update', 'parent', 'swap']
        +aliases = ['@typeclasses', '@parent', '@swap', '@type', '@update']
        @@ -1308,7 +1308,7 @@ server settings.

        -search_index_entry = {'aliases': 'type typeclasses update parent 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 typeclasses or typeclass/list/show [typeclass.path]\n swap - this is a shorthand for using /force/reset flags.\n update - this is a shorthand for using the /force/reload flag.\n\n Switch:\n show, examine - display the current typeclass of object (default) or, if\n given a typeclass path, show the docstring of that typeclass.\n update - *only* re-run at_object_creation on this object\n meaning locks or other properties set later may remain.\n reset - clean out *all* the attributes and properties on the\n object - basically making this a new clean object.\n force - change to the typeclass also if the object\n already has a typeclass of the same name.\n list - show available typeclasses. Only typeclasses in modules actually\n imported or used from somewhere in the code will show up here\n (those typeclasses are still available if you know the path)\n prototype - clean and overwrite the object with the specified\n prototype key - effectively making a whole new object.\n\n Example:\n type button = examples.red_button.RedButton\n type/prototype button=a red button\n\n If the typeclass_path is not given, the current object's typeclass is\n assumed.\n\n View or set an object's typeclass. If setting, the creation hooks of the\n new typeclass will be run on the object. If you have clashing properties on\n the old class, use /reset. By default you are protected from changing to a\n typeclass of the same name as the one you already have - use /force to\n override this protection.\n\n The given typeclass must be identified by its location using python\n dot-notation pointing to the correct module and class. If no typeclass is\n given (or a wrong typeclass is given). Errors in the path or new typeclass\n will lead to the old typeclass being kept. The location of the typeclass\n module is searched from the default typeclass directory, as defined in the\n server settings.\n\n "}
        +search_index_entry = {'aliases': '@typeclasses @parent @swap @type @update', 'category': 'building', 'key': '@typeclass', 'no_prefix': 'typeclass @typeclasses @parent @swap @type @update @typeclasses @parent @swap @type @update @typeclasses @parent @swap @type @update @typeclasses @parent @swap @type @update @typeclasses @parent @swap @type @update', 'tags': '', 'text': "\n set or change an object's typeclass\n\n Usage:\n typeclass[/switch] <object> [= typeclass.path]\n typeclass/prototype <object> = prototype_key\n\n typeclasses or typeclass/list/show [typeclass.path]\n swap - this is a shorthand for using /force/reset flags.\n update - this is a shorthand for using the /force/reload flag.\n\n Switch:\n show, examine - display the current typeclass of object (default) or, if\n given a typeclass path, show the docstring of that typeclass.\n update - *only* re-run at_object_creation on this object\n meaning locks or other properties set later may remain.\n reset - clean out *all* the attributes and properties on the\n object - basically making this a new clean object.\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 "}
        @@ -1329,7 +1329,7 @@ wipe box/colour

        matching the given attribute-wildcard search string.

        -key = 'wipe'
        +key = '@wipe'
        @@ -1360,7 +1360,7 @@ matching the given attribute-wildcard search string.

        -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 "}
        +search_index_entry = {'aliases': '', 'category': 'building', 'key': '@wipe', 'no_prefix': '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 "}
        @@ -1401,12 +1401,12 @@ them by ‘;’, i.e:

        -key = 'lock'
        +key = '@lock'
        -aliases = ['locks']
        +aliases = ['@locks']
        @@ -1432,7 +1432,7 @@ them by ‘;’, i.e:

        -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 "}
        +search_index_entry = {'aliases': '@locks', 'category': 'building', 'key': '@lock', 'no_prefix': 'lock @locks', '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 "}
        @@ -1456,12 +1456,12 @@ If object is not specified, the current location is examined.

        Append a * before the search string to examine an account.

        -key = 'examine'
        +key = '@examine'
        -aliases = ['ex', 'exam']
        +aliases = ['@ex', '@exam']
        @@ -1558,7 +1558,7 @@ non-persistent data stored on object

        -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 '}
        +search_index_entry = {'aliases': '@ex @exam', 'category': 'building', 'key': '@examine', 'no_prefix': 'examine @ex @exam @ex @exam', 'tags': '', 'text': '\n get detailed information about an object\n\n Usage:\n examine [<object>[/attrname]]\n examine [*<account>[/attrname]]\n\n Switch:\n account - examine an Account (same as adding *)\n object - examine an Object (useful when OOC)\n\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 '}
        @@ -1587,12 +1587,12 @@ limits matches to within the given dbrefs range, or above/below if only one is given.

        -key = 'find'
        +key = '@find'
        -aliases = ['locate', 'search']
        +aliases = ['@locate', '@search']
        @@ -1623,7 +1623,7 @@ one is given.

        -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 '}
        +search_index_entry = {'aliases': '@locate @search', 'category': 'building', 'key': '@find', 'no_prefix': 'find @locate @search @locate @search', '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 '}
        @@ -1665,12 +1665,12 @@ lock - it will be checked with the thing being teleported. Admins and higher permissions can always teleport.

        -key = 'tel'
        +key = '@teleport'
        -aliases = ['teleport']
        +aliases = ['@tel']
        @@ -1712,7 +1712,7 @@ higher permissions can always teleport.

        -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\n To lock an object from being teleported, set its `teleport` lock, it will be\n checked with the caller. To block\n a destination from being teleported to, set the destination's `teleport_here`\n lock - it will be checked with the thing being teleported. Admins and\n higher permissions can always teleport.\n\n "}
        +search_index_entry = {'aliases': '@tel', 'category': 'building', 'key': '@teleport', 'no_prefix': 'teleport @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\n To lock an object from being teleported, set its `teleport` lock, it will be\n checked with the caller. To block\n a destination from being teleported to, set the destination's `teleport_here`\n lock - it will be checked with the thing being teleported. Admins and\n higher permissions can always teleport.\n\n "}
        @@ -1754,12 +1754,12 @@ required since whole classes of scripts often have the same name.

        objects.

        -key = 'scripts'
        +key = '@scripts'
        -aliases = ['script']
        +aliases = ['@script']
        @@ -1800,7 +1800,7 @@ objects.

        -search_index_entry = {'aliases': 'script', 'category': 'system', 'key': 'scripts', 'tags': '', 'text': "\n List and manage all running scripts. Allows for creating new global\n scripts.\n\n Usage:\n script[/switches] [script-#dbref, key, script.path or <obj>]\n script[/start||stop] <obj> = <script.path or script-key>\n\n Switches:\n start - start/unpause an existing script's timer.\n stop - stops an existing script's timer\n pause - pause a script's timer\n delete - deletes script. This will also stop the timer as needed\n\n Examples:\n script - list scripts\n script myobj - list all scripts on object\n script foo.bar.Script - create a new global Script\n script scriptname - examine named existing global script\n script myobj = foo.bar.Script - create and assign script to object\n script/stop myobj = scriptname - stop script on object\n script/pause foo.Bar.Script - pause global script\n script/delete myobj - delete ALL scripts on object\n\n When given with an `<obj>` as left-hand-side, this creates and\n assigns a new script to that object. Without an `<obj>`, this\n manages and inspects global scripts\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 the `script` build-level command for managing scripts attached to\n objects.\n\n "}
        +search_index_entry = {'aliases': '@script', 'category': 'system', 'key': '@scripts', 'no_prefix': 'scripts @script', 'tags': '', 'text': "\n List and manage all running scripts. Allows for creating new global\n scripts.\n\n Usage:\n script[/switches] [script-#dbref, key, script.path or <obj>]\n script[/start||stop] <obj> = <script.path or script-key>\n\n Switches:\n start - start/unpause an existing script's timer.\n stop - stops an existing script's timer\n pause - pause a script's timer\n delete - deletes script. This will also stop the timer as needed\n\n Examples:\n script - list scripts\n script myobj - list all scripts on object\n script foo.bar.Script - create a new global Script\n script scriptname - examine named existing global script\n script myobj = foo.bar.Script - create and assign script to object\n script/stop myobj = scriptname - stop script on object\n script/pause foo.Bar.Script - pause global script\n script/delete myobj - delete ALL scripts on object\n\n When given with an `<obj>` as left-hand-side, this creates and\n assigns a new script to that object. Without an `<obj>`, this\n manages and inspects global scripts\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 the `script` build-level command for managing scripts attached to\n objects.\n\n "}
        @@ -1819,12 +1819,7 @@ a list of <nr> latest objects in database. If not given, <nr> defaults to 10.

        -key = 'objects'
        -
        - -
        -
        -aliases = ['stats', 'listobjects', 'listobjs', 'db']
        +key = '@objects'
        @@ -1843,6 +1838,11 @@ given, <nr> defaults to 10.

        Implement the command

        +
        +
        +aliases = []
        +
        +
        lock_storage = 'cmd:perm(listobjects) or perm(Builder)'
        @@ -1850,7 +1850,7 @@ given, <nr> defaults to 10.

        -search_index_entry = {'aliases': 'stats listobjects listobjs 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 '}
        +search_index_entry = {'aliases': '', 'category': 'system', 'key': '@objects', 'no_prefix': '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 '}
        @@ -1880,12 +1880,12 @@ should be used with restrain - tags on their own are usually enough to for most grouping schemes.

        -key = 'tag'
        +key = '@tag'
        -aliases = ['tags']
        +aliases = ['@tags']
        @@ -1921,7 +1921,7 @@ enough to for most grouping schemes.

        -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 '}
        +search_index_entry = {'aliases': '@tags', 'category': 'building', 'key': '@tag', 'no_prefix': 'tag @tags', '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 '}
        @@ -1996,12 +1996,12 @@ settings.PROTOTYPE_MODULES. If spawn is used without arguments it displays a list of available prototypes.

        -key = 'spawn'
        +key = '@spawn'
        -aliases = ['olc']
        +aliases = ['@olc']
        @@ -2032,7 +2032,7 @@ displays a list of available prototypes.

        -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 '}
        +search_index_entry = {'aliases': '@olc', 'category': 'building', 'key': '@spawn', 'no_prefix': 'spawn @olc', '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 '}
        diff --git a/docs/1.0-dev/api/evennia.commands.default.comms.html b/docs/1.0-dev/api/evennia.commands.default.comms.html index ffc941babb..1f9241f390 100644 --- a/docs/1.0-dev/api/evennia.commands.default.comms.html +++ b/docs/1.0-dev/api/evennia.commands.default.comms.html @@ -191,12 +191,12 @@ The ‘reason’ and /quiet works the same as for booting.

        ban mychannel1,mychannel2= EvilUser : Was banned for spamming.

        -key = 'channel'
        +key = '@channel'
        -aliases = ['channels', 'chan']
        +aliases = ['@chan', '@channels']
        @@ -722,7 +722,7 @@ don’t actually sub to yet.

        -search_index_entry = {'aliases': 'channels chan', 'category': 'comms', 'key': 'channel', 'tags': '', 'text': "\n Use and manage in-game channels.\n\n Usage:\n channel channelname <msg>\n channel channel name = <msg>\n channel (show all subscription)\n channel/all (show available channels)\n channel/alias channelname = alias[;alias...]\n channel/unalias alias\n channel/who channelname\n channel/history channelname [= index]\n channel/sub channelname [= alias[;alias...]]\n channel/unsub channelname[,channelname, ...]\n channel/mute channelname[,channelname,...]\n channel/unmute channelname[,channelname,...]\n\n channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n channel/desc channelname = description\n channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n channel/ban channelname (list bans)\n channel/ban[/quiet] channelname[, channelname, ...] = subscribername [: reason]\n channel/unban[/quiet] channelname[, channelname, ...] = subscribername\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n\n # subtopics\n\n ## sending\n\n Usage: channel channelname msg\n channel channel name = msg (with space in channel name)\n\n This sends a message to the channel. Note that you will rarely use this\n command like this; instead you can use the alias\n\n channelname <msg>\n channelalias <msg>\n\n For example\n\n public Hello World\n pub Hello World\n\n (this shortcut doesn't work for aliases containing spaces)\n\n See channel/alias for help on setting channel aliases.\n\n ## alias and unalias\n\n Usage: channel/alias channel = alias[;alias[;alias...]]\n channel/unalias alias\n channel - this will list your subs and aliases to each channel\n\n Set one or more personal aliases for referencing a channel. For example:\n\n channel/alias warrior's guild = warrior;wguild;warchannel;warrior guild\n\n You can now send to the channel using all of these:\n\n warrior's guild Hello\n warrior Hello\n wguild Hello\n warchannel Hello\n\n Note that this will not work if the alias has a space in it. So the\n 'warrior guild' alias must be used with the `channel` command:\n\n channel warrior guild = Hello\n\n Channel-aliases can be removed one at a time, using the '/unalias' switch.\n\n ## who\n\n Usage: channel/who channelname\n\n List the channel's subscribers. Shows who are currently offline or are\n muting the channel. Subscribers who are 'muting' will not see messages sent\n to the channel (use channel/mute to mute a channel).\n\n ## history\n\n Usage: channel/history channel [= index]\n\n This will display the last |c20|n lines of channel history. By supplying an\n index number, you will step that many lines back before viewing those 20 lines.\n\n For example:\n\n channel/history public = 35\n\n will go back 35 lines and show the previous 20 lines from that point (so\n lines -35 to -55).\n\n ## sub and unsub\n\n Usage: channel/sub channel [=alias[;alias;...]]\n channel/unsub channel\n\n This subscribes you to a channel and optionally assigns personal shortcuts\n for you to use to send to that channel (see aliases). When you unsub, all\n your personal aliases will also be removed.\n\n ## mute and unmute\n\n Usage: channel/mute channelname\n channel/unmute channelname\n\n Muting silences all output from the channel without actually\n un-subscribing. Other channel members will see that you are muted in the /who\n list. Sending a message to the channel will automatically unmute you.\n\n ## create and destroy\n\n Usage: channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n\n Creates a new channel (or destroys one you control). You will automatically\n join the channel you create and everyone will be kicked and loose all aliases\n to a destroyed channel.\n\n ## lock and unlock\n\n Usage: channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n\n Note: this is an admin command.\n\n A lockstring is on the form locktype:lockfunc(). Channels understand three\n locktypes:\n listen - who may listen or join the channel.\n send - who may send messages to the channel\n control - who controls the channel. This is usually the one creating\n the channel.\n\n Common lockfuncs are all() and perm(). To make a channel everyone can\n listen to but only builders can talk on, use this:\n\n listen:all()\n send: perm(Builders)\n\n ## boot and ban\n\n Usage:\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n channel/ban channelname[, channelname, ...] = subscribername [: reason]\n channel/unban channelname[, channelname, ...] = subscribername\n channel/unban channelname\n channel/ban channelname (list bans)\n\n Booting will kick a named subscriber from channel(s) temporarily. The\n 'reason' will be passed to the booted user. Unless the /quiet switch is\n used, the channel will also be informed of the action. A booted user is\n still able to re-connect, but they'll have to set up their aliases again.\n\n Banning will blacklist a user from (re)joining the provided channels. It\n will then proceed to boot them from those channels if they were connected.\n The 'reason' and `/quiet` works the same as for booting.\n\n Example:\n boot mychannel1 = EvilUser : Kicking you to cool down a bit.\n ban mychannel1,mychannel2= EvilUser : Was banned for spamming.\n\n "}
        +search_index_entry = {'aliases': '@chan @channels', 'category': 'comms', 'key': '@channel', 'no_prefix': 'channel @chan @channels @chan @channels', 'tags': '', 'text': "\n Use and manage in-game channels.\n\n Usage:\n channel channelname <msg>\n channel channel name = <msg>\n channel (show all subscription)\n channel/all (show available channels)\n channel/alias channelname = alias[;alias...]\n channel/unalias alias\n channel/who channelname\n channel/history channelname [= index]\n channel/sub channelname [= alias[;alias...]]\n channel/unsub channelname[,channelname, ...]\n channel/mute channelname[,channelname,...]\n channel/unmute channelname[,channelname,...]\n\n channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n channel/desc channelname = description\n channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n channel/ban channelname (list bans)\n channel/ban[/quiet] channelname[, channelname, ...] = subscribername [: reason]\n channel/unban[/quiet] channelname[, channelname, ...] = subscribername\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n\n # subtopics\n\n ## sending\n\n Usage: channel channelname msg\n channel channel name = msg (with space in channel name)\n\n This sends a message to the channel. Note that you will rarely use this\n command like this; instead you can use the alias\n\n channelname <msg>\n channelalias <msg>\n\n For example\n\n public Hello World\n pub Hello World\n\n (this shortcut doesn't work for aliases containing spaces)\n\n See channel/alias for help on setting channel aliases.\n\n ## alias and unalias\n\n Usage: channel/alias channel = alias[;alias[;alias...]]\n channel/unalias alias\n channel - this will list your subs and aliases to each channel\n\n Set one or more personal aliases for referencing a channel. For example:\n\n channel/alias warrior's guild = warrior;wguild;warchannel;warrior guild\n\n You can now send to the channel using all of these:\n\n warrior's guild Hello\n warrior Hello\n wguild Hello\n warchannel Hello\n\n Note that this will not work if the alias has a space in it. So the\n 'warrior guild' alias must be used with the `channel` command:\n\n channel warrior guild = Hello\n\n Channel-aliases can be removed one at a time, using the '/unalias' switch.\n\n ## who\n\n Usage: channel/who channelname\n\n List the channel's subscribers. Shows who are currently offline or are\n muting the channel. Subscribers who are 'muting' will not see messages sent\n to the channel (use channel/mute to mute a channel).\n\n ## history\n\n Usage: channel/history channel [= index]\n\n This will display the last |c20|n lines of channel history. By supplying an\n index number, you will step that many lines back before viewing those 20 lines.\n\n For example:\n\n channel/history public = 35\n\n will go back 35 lines and show the previous 20 lines from that point (so\n lines -35 to -55).\n\n ## sub and unsub\n\n Usage: channel/sub channel [=alias[;alias;...]]\n channel/unsub channel\n\n This subscribes you to a channel and optionally assigns personal shortcuts\n for you to use to send to that channel (see aliases). When you unsub, all\n your personal aliases will also be removed.\n\n ## mute and unmute\n\n Usage: channel/mute channelname\n channel/unmute channelname\n\n Muting silences all output from the channel without actually\n un-subscribing. Other channel members will see that you are muted in the /who\n list. Sending a message to the channel will automatically unmute you.\n\n ## create and destroy\n\n Usage: channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n\n Creates a new channel (or destroys one you control). You will automatically\n join the channel you create and everyone will be kicked and loose all aliases\n to a destroyed channel.\n\n ## lock and unlock\n\n Usage: channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n\n Note: this is an admin command.\n\n A lockstring is on the form locktype:lockfunc(). Channels understand three\n locktypes:\n listen - who may listen or join the channel.\n send - who may send messages to the channel\n control - who controls the channel. This is usually the one creating\n the channel.\n\n Common lockfuncs are all() and perm(). To make a channel everyone can\n listen to but only builders can talk on, use this:\n\n listen:all()\n send: perm(Builders)\n\n ## boot and ban\n\n Usage:\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n channel/ban channelname[, channelname, ...] = subscribername [: reason]\n channel/unban channelname[, channelname, ...] = subscribername\n channel/unban channelname\n channel/ban channelname (list bans)\n\n Booting will kick a named subscriber from channel(s) temporarily. The\n 'reason' will be passed to the booted user. Unless the /quiet switch is\n used, the channel will also be informed of the action. A booted user is\n still able to re-connect, but they'll have to set up their aliases again.\n\n Banning will blacklist a user from (re)joining the provided channels. It\n will then proceed to boot them from those channels if they were connected.\n The 'reason' and `/quiet` works the same as for booting.\n\n Example:\n boot mychannel1 = EvilUser : Kicking you to cool down a bit.\n ban mychannel1,mychannel2= EvilUser : Was banned for spamming.\n\n "}
        @@ -875,7 +875,7 @@ ban mychannel1,mychannel2= EvilUser : Was banned for spamming.

        -aliases = ['channels', 'chan']
        +aliases = ['@chan', '@channels']
        @@ -885,7 +885,7 @@ ban mychannel1,mychannel2= EvilUser : Was banned for spamming.

        -key = 'channel'
        +key = '@channel'
        @@ -895,503 +895,7 @@ ban mychannel1,mychannel2= EvilUser : Was banned for spamming.

        -search_index_entry = {'aliases': 'channels chan', 'category': 'comms', 'key': 'channel', 'tags': '', 'text': "\n Use and manage in-game channels.\n\n Usage:\n channel channelname <msg>\n channel channel name = <msg>\n channel (show all subscription)\n channel/all (show available channels)\n channel/alias channelname = alias[;alias...]\n channel/unalias alias\n channel/who channelname\n channel/history channelname [= index]\n channel/sub channelname [= alias[;alias...]]\n channel/unsub channelname[,channelname, ...]\n channel/mute channelname[,channelname,...]\n channel/unmute channelname[,channelname,...]\n\n channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n channel/desc channelname = description\n channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n channel/ban channelname (list bans)\n channel/ban[/quiet] channelname[, channelname, ...] = subscribername [: reason]\n channel/unban[/quiet] channelname[, channelname, ...] = subscribername\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n\n # subtopics\n\n ## sending\n\n Usage: channel channelname msg\n channel channel name = msg (with space in channel name)\n\n This sends a message to the channel. Note that you will rarely use this\n command like this; instead you can use the alias\n\n channelname <msg>\n channelalias <msg>\n\n For example\n\n public Hello World\n pub Hello World\n\n (this shortcut doesn't work for aliases containing spaces)\n\n See channel/alias for help on setting channel aliases.\n\n ## alias and unalias\n\n Usage: channel/alias channel = alias[;alias[;alias...]]\n channel/unalias alias\n channel - this will list your subs and aliases to each channel\n\n Set one or more personal aliases for referencing a channel. For example:\n\n channel/alias warrior's guild = warrior;wguild;warchannel;warrior guild\n\n You can now send to the channel using all of these:\n\n warrior's guild Hello\n warrior Hello\n wguild Hello\n warchannel Hello\n\n Note that this will not work if the alias has a space in it. So the\n 'warrior guild' alias must be used with the `channel` command:\n\n channel warrior guild = Hello\n\n Channel-aliases can be removed one at a time, using the '/unalias' switch.\n\n ## who\n\n Usage: channel/who channelname\n\n List the channel's subscribers. Shows who are currently offline or are\n muting the channel. Subscribers who are 'muting' will not see messages sent\n to the channel (use channel/mute to mute a channel).\n\n ## history\n\n Usage: channel/history channel [= index]\n\n This will display the last |c20|n lines of channel history. By supplying an\n index number, you will step that many lines back before viewing those 20 lines.\n\n For example:\n\n channel/history public = 35\n\n will go back 35 lines and show the previous 20 lines from that point (so\n lines -35 to -55).\n\n ## sub and unsub\n\n Usage: channel/sub channel [=alias[;alias;...]]\n channel/unsub channel\n\n This subscribes you to a channel and optionally assigns personal shortcuts\n for you to use to send to that channel (see aliases). When you unsub, all\n your personal aliases will also be removed.\n\n ## mute and unmute\n\n Usage: channel/mute channelname\n channel/unmute channelname\n\n Muting silences all output from the channel without actually\n un-subscribing. Other channel members will see that you are muted in the /who\n list. Sending a message to the channel will automatically unmute you.\n\n ## create and destroy\n\n Usage: channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n\n Creates a new channel (or destroys one you control). You will automatically\n join the channel you create and everyone will be kicked and loose all aliases\n to a destroyed channel.\n\n ## lock and unlock\n\n Usage: channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n\n Note: this is an admin command.\n\n A lockstring is on the form locktype:lockfunc(). Channels understand three\n locktypes:\n listen - who may listen or join the channel.\n send - who may send messages to the channel\n control - who controls the channel. This is usually the one creating\n the channel.\n\n Common lockfuncs are all() and perm(). To make a channel everyone can\n listen to but only builders can talk on, use this:\n\n listen:all()\n send: perm(Builders)\n\n ## boot and ban\n\n Usage:\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n channel/ban channelname[, channelname, ...] = subscribername [: reason]\n channel/unban channelname[, channelname, ...] = subscribername\n channel/unban channelname\n channel/ban channelname (list bans)\n\n Booting will kick a named subscriber from channel(s) temporarily. The\n 'reason' will be passed to the booted user. Unless the /quiet switch is\n used, the channel will also be informed of the action. A booted user is\n still able to re-connect, but they'll have to set up their aliases again.\n\n Banning will blacklist a user from (re)joining the provided channels. It\n will then proceed to boot them from those channels if they were connected.\n The 'reason' and `/quiet` works the same as for booting.\n\n Example:\n boot mychannel1 = EvilUser : Kicking you to cool down a bit.\n ban mychannel1,mychannel2= EvilUser : Was banned for spamming.\n\n "}
        -
        - -
        - -
        -
        -class evennia.commands.default.comms.CmdAddCom(**kwargs)[source]
        -

        Bases: evennia.commands.default.comms.CmdChannel

        -

        Add a channel alias and/or subscribe to a channel

        -
        -
        Usage:

        addcom [alias=] <channel>

        -
        -
        -

        Joins a given channel. If alias is given, this will allow you to -refer to the channel by this alias rather than the full channel -name. Subsequent calls of this command can be used to add multiple -aliases to an already joined channel.

        -
        -
        -key = 'addcom'
        -
        - -
        -
        -aliases = ['aliaschan', 'chanalias']
        -
        - -
        -
        -help_category = 'comms'
        -
        - -
        -
        -locks = 'cmd:not pperm(channel_banned)'
        -
        - -
        -
        -account_caller = True
        -
        - -
        -
        -func()[source]
        -

        Implement the command

        -
        - -
        -
        -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 '}
        -
        - -
        - -
        -
        -class evennia.commands.default.comms.CmdDelCom(**kwargs)[source]
        -

        Bases: evennia.commands.default.comms.CmdChannel

        -

        remove a channel alias and/or unsubscribe from channel

        -
        -
        Usage:

        delcom <alias or channel> -delcom/all <channel>

        -
        -
        -

        If the full channel name is given, unsubscribe from the -channel. If an alias is given, remove the alias but don’t -unsubscribe. If the ‘all’ switch is used, remove all aliases -for that channel.

        -
        -
        -key = 'delcom'
        -
        - -
        -
        -aliases = ['delaliaschan', 'delchanalias']
        -
        - -
        -
        -help_category = 'comms'
        -
        - -
        -
        -locks = 'cmd:not perm(channel_banned)'
        -
        - -
        -
        -account_caller = True
        -
        - -
        -
        -func()[source]
        -

        Implementing the command.

        -
        - -
        -
        -lock_storage = 'cmd:not perm(channel_banned)'
        -
        - -
        -
        -search_index_entry = {'aliases': 'delaliaschan delchanalias', '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 "}
        -
        - -
        - -
        -
        -class evennia.commands.default.comms.CmdAllCom(**kwargs)[source]
        -

        Bases: evennia.commands.default.comms.CmdChannel

        -

        perform admin operations on all channels

        -
        -
        Usage:

        allcom [on | off | who | destroy]

        -
        -
        -

        Allows the user to universally turn off or on all channels they are on, as -well as perform a ‘who’ for all channels they are on. Destroy deletes all -channels that you control.

        -

        Without argument, works like comlist.

        -
        -
        -key = 'allcom'
        -
        - -
        -
        -aliases = []
        -
        - -
        -
        -locks = 'cmd: not pperm(channel_banned)'
        -
        - -
        -
        -help_category = 'comms'
        -
        - -
        -
        -account_caller = True
        -
        - -
        -
        -func()[source]
        -

        Runs the function

        -
        - -
        -
        -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 "}
        -
        - -
        - -
        -
        -class evennia.commands.default.comms.CmdCdestroy(**kwargs)[source]
        -

        Bases: evennia.commands.default.comms.CmdChannel

        -

        destroy a channel you created

        -
        -
        Usage:

        cdestroy <channel>

        -
        -
        -

        Destroys a channel that you control.

        -
        -
        -key = 'cdestroy'
        -
        - -
        -
        -aliases = []
        -
        - -
        -
        -help_category = 'comms'
        -
        - -
        -
        -locks = 'cmd: not pperm(channel_banned)'
        -
        - -
        -
        -account_caller = True
        -
        - -
        -
        -func()[source]
        -

        Destroy objects cleanly.

        -
        - -
        -
        -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 '}
        -
        - -
        - -
        -
        -class evennia.commands.default.comms.CmdCBoot(**kwargs)[source]
        -

        Bases: evennia.commands.default.comms.CmdChannel

        -

        kick an account from a channel you control

        -
        -
        Usage:

        cboot[/quiet] <channel> = <account> [:reason]

        -
        -
        Switch:

        quiet - don’t notify the channel

        -
        -
        -

        Kicks an account or object from a channel you control.

        -
        -
        -key = 'cboot'
        -
        - -
        -
        -aliases = []
        -
        - -
        -
        -switch_options = ('quiet',)
        -
        - -
        -
        -locks = 'cmd: not pperm(channel_banned)'
        -
        - -
        -
        -help_category = 'comms'
        -
        - -
        -
        -account_caller = True
        -
        - -
        -
        -func()[source]
        -

        implement the function

        -
        - -
        -
        -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 "}
        -
        - -
        - -
        -
        -class evennia.commands.default.comms.CmdCWho(**kwargs)[source]
        -

        Bases: evennia.commands.default.comms.CmdChannel

        -

        show who is listening to a channel

        -
        -
        Usage:

        cwho <channel>

        -
        -
        -

        List who is connected to a given channel you have access to.

        -
        -
        -key = 'cwho'
        -
        - -
        -
        -aliases = []
        -
        - -
        -
        -locks = 'cmd: not pperm(channel_banned)'
        -
        - -
        -
        -help_category = 'comms'
        -
        - -
        -
        -account_caller = True
        -
        - -
        -
        -func()[source]
        -

        implement function

        -
        - -
        -
        -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 '}
        -
        - -
        - -
        -
        -class evennia.commands.default.comms.CmdChannelCreate(**kwargs)[source]
        -

        Bases: evennia.commands.default.comms.CmdChannel

        -

        create a new channel

        -
        -
        Usage:

        ccreate <new channel>[;alias;alias…] = description

        -
        -
        -

        Creates a new channel owned by you.

        -
        -
        -key = 'ccreate'
        -
        - -
        -
        -aliases = ['channelcreate']
        -
        - -
        -
        -locks = 'cmd:not pperm(channel_banned) and pperm(Player)'
        -
        - -
        -
        -help_category = 'comms'
        -
        - -
        -
        -account_caller = True
        -
        - -
        -
        -func()[source]
        -

        Implement the command

        -
        - -
        -
        -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 '}
        -
        - -
        - -
        -
        -class evennia.commands.default.comms.CmdClock(**kwargs)[source]
        -

        Bases: evennia.commands.default.comms.CmdChannel

        -

        change channel locks of a channel you control

        -
        -
        Usage:

        clock <channel> [= <lockstring>]

        -
        -
        -

        Changes the lock access restrictions of a channel. If no -lockstring was given, view the current lock definitions.

        -
        -
        -key = 'clock'
        -
        - -
        -
        -aliases = []
        -
        - -
        -
        -locks = 'cmd:not pperm(channel_banned) and perm(Admin)'
        -
        - -
        -
        -help_category = 'comms'
        -
        - -
        -
        -account_caller = True
        -
        - -
        -
        -func()[source]
        -

        run the function

        -
        - -
        -
        -lock_storage = 'cmd:not pperm(channel_banned) and perm(Admin)'
        -
        - -
        -
        -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 '}
        -
        - -
        - -
        -
        -class evennia.commands.default.comms.CmdCdesc(**kwargs)[source]
        -

        Bases: evennia.commands.default.comms.CmdChannel

        -

        describe a channel you control

        -
        -
        Usage:

        cdesc <channel> = <description>

        -
        -
        -

        Changes the description of the channel as shown in -channel lists.

        -
        -
        -key = 'cdesc'
        -
        - -
        -
        -aliases = []
        -
        - -
        -
        -locks = 'cmd:not pperm(channel_banned)'
        -
        - -
        -
        -help_category = 'comms'
        -
        - -
        -
        -account_caller = True
        -
        - -
        -
        -func()[source]
        -

        Implement command

        -
        - -
        -
        -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\n '}
        +search_index_entry = {'aliases': '@chan @channels', 'category': 'comms', 'key': '@channel', 'no_prefix': 'channel @chan @channels @chan @channels', 'tags': '', 'text': "\n Use and manage in-game channels.\n\n Usage:\n channel channelname <msg>\n channel channel name = <msg>\n channel (show all subscription)\n channel/all (show available channels)\n channel/alias channelname = alias[;alias...]\n channel/unalias alias\n channel/who channelname\n channel/history channelname [= index]\n channel/sub channelname [= alias[;alias...]]\n channel/unsub channelname[,channelname, ...]\n channel/mute channelname[,channelname,...]\n channel/unmute channelname[,channelname,...]\n\n channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n channel/desc channelname = description\n channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n channel/ban channelname (list bans)\n channel/ban[/quiet] channelname[, channelname, ...] = subscribername [: reason]\n channel/unban[/quiet] channelname[, channelname, ...] = subscribername\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n\n # subtopics\n\n ## sending\n\n Usage: channel channelname msg\n channel channel name = msg (with space in channel name)\n\n This sends a message to the channel. Note that you will rarely use this\n command like this; instead you can use the alias\n\n channelname <msg>\n channelalias <msg>\n\n For example\n\n public Hello World\n pub Hello World\n\n (this shortcut doesn't work for aliases containing spaces)\n\n See channel/alias for help on setting channel aliases.\n\n ## alias and unalias\n\n Usage: channel/alias channel = alias[;alias[;alias...]]\n channel/unalias alias\n channel - this will list your subs and aliases to each channel\n\n Set one or more personal aliases for referencing a channel. For example:\n\n channel/alias warrior's guild = warrior;wguild;warchannel;warrior guild\n\n You can now send to the channel using all of these:\n\n warrior's guild Hello\n warrior Hello\n wguild Hello\n warchannel Hello\n\n Note that this will not work if the alias has a space in it. So the\n 'warrior guild' alias must be used with the `channel` command:\n\n channel warrior guild = Hello\n\n Channel-aliases can be removed one at a time, using the '/unalias' switch.\n\n ## who\n\n Usage: channel/who channelname\n\n List the channel's subscribers. Shows who are currently offline or are\n muting the channel. Subscribers who are 'muting' will not see messages sent\n to the channel (use channel/mute to mute a channel).\n\n ## history\n\n Usage: channel/history channel [= index]\n\n This will display the last |c20|n lines of channel history. By supplying an\n index number, you will step that many lines back before viewing those 20 lines.\n\n For example:\n\n channel/history public = 35\n\n will go back 35 lines and show the previous 20 lines from that point (so\n lines -35 to -55).\n\n ## sub and unsub\n\n Usage: channel/sub channel [=alias[;alias;...]]\n channel/unsub channel\n\n This subscribes you to a channel and optionally assigns personal shortcuts\n for you to use to send to that channel (see aliases). When you unsub, all\n your personal aliases will also be removed.\n\n ## mute and unmute\n\n Usage: channel/mute channelname\n channel/unmute channelname\n\n Muting silences all output from the channel without actually\n un-subscribing. Other channel members will see that you are muted in the /who\n list. Sending a message to the channel will automatically unmute you.\n\n ## create and destroy\n\n Usage: channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n\n Creates a new channel (or destroys one you control). You will automatically\n join the channel you create and everyone will be kicked and loose all aliases\n to a destroyed channel.\n\n ## lock and unlock\n\n Usage: channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n\n Note: this is an admin command.\n\n A lockstring is on the form locktype:lockfunc(). Channels understand three\n locktypes:\n listen - who may listen or join the channel.\n send - who may send messages to the channel\n control - who controls the channel. This is usually the one creating\n the channel.\n\n Common lockfuncs are all() and perm(). To make a channel everyone can\n listen to but only builders can talk on, use this:\n\n listen:all()\n send: perm(Builders)\n\n ## boot and ban\n\n Usage:\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n channel/ban channelname[, channelname, ...] = subscribername [: reason]\n channel/unban channelname[, channelname, ...] = subscribername\n channel/unban channelname\n channel/ban channelname (list bans)\n\n Booting will kick a named subscriber from channel(s) temporarily. The\n 'reason' will be passed to the booted user. Unless the /quiet switch is\n used, the channel will also be informed of the action. A booted user is\n still able to re-connect, but they'll have to set up their aliases again.\n\n Banning will blacklist a user from (re)joining the provided channels. It\n will then proceed to boot them from those channels if they were connected.\n The 'reason' and `/quiet` works the same as for booting.\n\n Example:\n boot mychannel1 = EvilUser : Kicking you to cool down a bit.\n ban mychannel1,mychannel2= EvilUser : Was banned for spamming.\n\n "}
        @@ -1457,7 +961,7 @@ multiple targets or if sending to target with space in the name.

        -search_index_entry = {'aliases': 'tell', 'category': 'comms', 'key': 'page', 'tags': '', 'text': "\n send a private message to another account\n\n Usage:\n page <account> <message>\n page[/switches] [<account>,<account>,... = <message>]\n tell ''\n page <number>\n\n Switches:\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 argument is given, you\n will get a list of your latest messages. The equal sign is needed for\n multiple targets or if sending to target with space in the name.\n\n "}
        +search_index_entry = {'aliases': 'tell', 'category': 'comms', 'key': 'page', 'no_prefix': ' ', 'tags': '', 'text': "\n send a private message to another account\n\n Usage:\n page <account> <message>\n page[/switches] [<account>,<account>,... = <message>]\n tell ''\n page <number>\n\n Switches:\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 argument is given, you\n will get a list of your latest messages. The equal sign is needed for\n multiple targets or if sending to target with space in the name.\n\n "}
        @@ -1539,7 +1043,7 @@ Provide an optional bot class path to use a custom bot.

        -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 '}
        +search_index_entry = {'aliases': '', 'category': 'comms', 'key': 'irc2chan', 'no_prefix': ' ', '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 '}
        @@ -1595,7 +1099,7 @@ messages sent to either channel will be lost.

        -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 "}
        +search_index_entry = {'aliases': '', 'category': 'comms', 'key': 'ircstatus', 'no_prefix': ' ', '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 "}
        @@ -1672,7 +1176,7 @@ to identify the connection uniquely.

        -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 '}
        +search_index_entry = {'aliases': '', 'category': 'comms', 'key': 'rss2chan', 'no_prefix': ' ', '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 '}
        @@ -1750,7 +1254,7 @@ must be added to game settings.

        -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 '}
        +search_index_entry = {'aliases': '', 'category': 'comms', 'key': 'grapevine2chan', 'no_prefix': ' ', '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 '}
        diff --git a/docs/1.0-dev/api/evennia.commands.default.general.html b/docs/1.0-dev/api/evennia.commands.default.general.html index f41f119978..5a35d6a5b8 100644 --- a/docs/1.0-dev/api/evennia.commands.default.general.html +++ b/docs/1.0-dev/api/evennia.commands.default.general.html @@ -91,7 +91,7 @@
        -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 "}
        +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'home', 'no_prefix': ' ', 'tags': '', 'text': "\n move to your character's home location\n\n Usage:\n home\n\n Teleports you to your home location.\n "}
        @@ -115,7 +115,7 @@ look *<account&g
        -aliases = ['l', 'ls']
        +aliases = ['ls', 'l']
        @@ -146,7 +146,7 @@ look *<account&g
        -search_index_entry = {'aliases': 'l ls', '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 '}
        +search_index_entry = {'aliases': 'ls l', 'category': 'general', 'key': 'look', 'no_prefix': ' ', '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 '}
        @@ -240,7 +240,7 @@ for everyone to use, you need build privileges and the alias command.

        -search_index_entry = {'aliases': 'nicks nickname', '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 '}
        +search_index_entry = {'aliases': 'nicks nickname', 'category': 'general', 'key': 'nick', 'no_prefix': ' ', '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 '}
        @@ -263,7 +263,7 @@ inv

        -aliases = ['inv', 'i']
        +aliases = ['i', 'inv']
        @@ -294,7 +294,7 @@ inv

        -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 '}
        +search_index_entry = {'aliases': 'i inv', 'category': 'general', 'key': 'inventory', 'no_prefix': ' ', 'tags': '', 'text': '\n view inventory\n\n Usage:\n inventory\n inv\n\n Shows your inventory.\n '}
        @@ -349,7 +349,7 @@ look at you.

        -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 '}
        +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'setdesc', 'no_prefix': ' ', '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 '}
        @@ -403,7 +403,7 @@ your inventory.

        -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 '}
        +search_index_entry = {'aliases': 'grab', 'category': 'general', 'key': 'get', 'no_prefix': ' ', '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 '}
        @@ -457,7 +457,7 @@ location you are currently in.

        -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 '}
        +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'drop', 'no_prefix': ' ', '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 '}
        @@ -516,7 +516,7 @@ placing it in their inventory.

        -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 '}
        +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'give', 'no_prefix': ' ', '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 '}
        @@ -538,7 +538,7 @@ placing it in their inventory.

        -aliases = ["'", '"']
        +aliases = ['"', "'"]
        @@ -569,7 +569,7 @@ placing it in their inventory.

        -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 '}
        +search_index_entry = {'aliases': '" \'', 'category': 'general', 'key': 'say', 'no_prefix': ' ', 'tags': '', 'text': '\n speak as your character\n\n Usage:\n say <message>\n\n Talk to those in your current location.\n '}
        @@ -619,7 +619,7 @@ others in the room being informed.

        -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 '}
        +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'whisper', 'no_prefix': ' ', '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 '}
        @@ -690,7 +690,7 @@ space.

        -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 "}
        +search_index_entry = {'aliases': ': emote', 'category': 'general', 'key': 'pose', 'no_prefix': ' ', '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 "}
        @@ -713,7 +713,7 @@ which permission groups you are a member of.

        -aliases = ['groups', 'hierarchy']
        +aliases = ['hierarchy', 'groups']
        @@ -744,7 +744,7 @@ which permission groups you are a member of.

        -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 '}
        +search_index_entry = {'aliases': 'hierarchy groups', 'category': 'general', 'key': 'access', 'no_prefix': ' ', 'tags': '', 'text': '\n show your current game access\n\n Usage:\n access\n\n This command shows you the permission hierarchy and\n which permission groups you are a member of.\n '}
        diff --git a/docs/1.0-dev/api/evennia.commands.default.help.html b/docs/1.0-dev/api/evennia.commands.default.help.html index 462b672dec..a48e02f896 100644 --- a/docs/1.0-dev/api/evennia.commands.default.help.html +++ b/docs/1.0-dev/api/evennia.commands.default.help.html @@ -296,6 +296,25 @@ is then parsed from there. If a <topic> has spaces in it, always matched before assuming the space begins a subtopic.

        +
        +
        +strip_cmd_prefix(key, all_keys)[source]
        +

        Conditional strip of a command prefix, such as @ in @desc. By default +this will be hidden unless there is a duplicate without the prefix +in the full command set (such as @open and open).

        +
        +
        Parameters
        +
          +
        • key (str) – Command key to analyze.

        • +
        • all_cmds (list) – All command-keys (and potentially aliases).

        • +
        +
        +
        Returns
        +

        str – Potentially modified key to use in help display.

        +
        +
        +
        +
        func()[source]
        @@ -314,7 +333,7 @@ always matched before assuming the space begins a subtopic.

        -search_index_entry = {'aliases': '?', 'category': 'general', 'key': 'help', 'tags': '', 'text': "\n Get help.\n\n Usage:\n help\n help <topic, command or category>\n help <topic>/<subtopic>\n help <topic>/<subtopic>/<subsubtopic> ...\n\n Use the 'help' command alone to see an index of all help topics, organized\n by category.eSome big topics may offer additional sub-topics.\n\n "}
        +search_index_entry = {'aliases': '?', 'category': 'general', 'key': 'help', 'no_prefix': ' ', 'tags': '', 'text': "\n Get help.\n\n Usage:\n help\n help <topic, command or category>\n help <topic>/<subtopic>\n help <topic>/<subtopic>/<subsubtopic> ...\n\n Use the 'help' command alone to see an index of all help topics, organized\n by category.eSome big topics may offer additional sub-topics.\n\n "}
        @@ -421,7 +440,7 @@ the user will be able to enter a partial match to access it.

        -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 lore = In the beginning was ...\n sethelp/append pickpocketing,Thievery = This steals ...\n sethelp/replace pickpocketing, ,attr(is_thief) = This steals ...\n sethelp/edit thievery\n\n If not assigning a category, the `settings.DEFAULT_HELP_CATEGORY` category\n will be used. If no lockstring is specified, everyone will be able to read\n the help entry. Sub-topics are embedded in the help text.\n\n Note that this cannot modify command-help entries - these are modified\n in-code, outside the game.\n\n # SUBTOPICS\n\n ## Adding subtopics\n\n Subtopics helps to break up a long help entry into sub-sections. Users can\n access subtopics with |whelp topic/subtopic/...|n Subtopics are created and\n stored together with the main topic.\n\n To start adding subtopics, add the text '# SUBTOPICS' on a new line at the\n end of your help text. After this you can now add any number of subtopics,\n each starting with '## <subtopic-name>' on a line, followed by the\n help-text of that subtopic.\n Use '### <subsub-name>' to add a sub-subtopic and so on. Max depth is 5. A\n subtopic's title is case-insensitive and can consist of multiple words -\n the user will be able to enter a partial match to access it.\n\n For example:\n\n | Main help text for <topic>\n |\n | # SUBTOPICS\n |\n | ## about\n |\n | Text for the '<topic>/about' subtopic'\n |\n | ### more about-info\n |\n | Text for the '<topic>/about/more about-info sub-subtopic\n |\n | ## extra\n |\n | Text for the '<topic>/extra' subtopic\n\n "}
        +search_index_entry = {'aliases': '', 'category': 'building', 'key': 'sethelp', 'no_prefix': ' ', '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 lore = In the beginning was ...\n sethelp/append pickpocketing,Thievery = This steals ...\n sethelp/replace pickpocketing, ,attr(is_thief) = This steals ...\n sethelp/edit thievery\n\n If not assigning a category, the `settings.DEFAULT_HELP_CATEGORY` category\n will be used. If no lockstring is specified, everyone will be able to read\n the help entry. Sub-topics are embedded in the help text.\n\n Note that this cannot modify command-help entries - these are modified\n in-code, outside the game.\n\n # SUBTOPICS\n\n ## Adding subtopics\n\n Subtopics helps to break up a long help entry into sub-sections. Users can\n access subtopics with |whelp topic/subtopic/...|n Subtopics are created and\n stored together with the main topic.\n\n To start adding subtopics, add the text '# SUBTOPICS' on a new line at the\n end of your help text. After this you can now add any number of subtopics,\n each starting with '## <subtopic-name>' on a line, followed by the\n help-text of that subtopic.\n Use '### <subsub-name>' to add a sub-subtopic and so on. Max depth is 5. A\n subtopic's title is case-insensitive and can consist of multiple words -\n the user will be able to enter a partial match to access it.\n\n For example:\n\n | Main help text for <topic>\n |\n | # SUBTOPICS\n |\n | ## about\n |\n | Text for the '<topic>/about' subtopic'\n |\n | ### more about-info\n |\n | Text for the '<topic>/about/more about-info sub-subtopic\n |\n | ## extra\n |\n | Text for the '<topic>/extra' subtopic\n\n "}
        diff --git a/docs/1.0-dev/api/evennia.commands.default.muxcommand.html b/docs/1.0-dev/api/evennia.commands.default.muxcommand.html index 8a428e19fb..6ca2730607 100644 --- a/docs/1.0-dev/api/evennia.commands.default.muxcommand.html +++ b/docs/1.0-dev/api/evennia.commands.default.muxcommand.html @@ -189,7 +189,7 @@ to all the variables defined therein.

        -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 "}
        +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'command', 'no_prefix': ' ', '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 "}
        @@ -234,7 +234,7 @@ character is actually attached to this Account and Session.

        -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 '}
        +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'command', 'no_prefix': ' ', '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 '}
        diff --git a/docs/1.0-dev/api/evennia.commands.default.syscommands.html b/docs/1.0-dev/api/evennia.commands.default.syscommands.html index b3544336bf..fdde5f653d 100644 --- a/docs/1.0-dev/api/evennia.commands.default.syscommands.html +++ b/docs/1.0-dev/api/evennia.commands.default.syscommands.html @@ -94,7 +94,7 @@ the line is just added to the editor buffer).

        -search_index_entry = {'aliases': '', 'category': 'general', 'key': '__noinput_command', 'tags': '', 'text': '\n This is called when there is no input given\n '}
        +search_index_entry = {'aliases': '', 'category': 'general', 'key': '__noinput_command', 'no_prefix': ' ', 'tags': '', 'text': '\n This is called when there is no input given\n '}
        @@ -137,7 +137,7 @@ the line is just added to the editor buffer).

        -search_index_entry = {'aliases': '', 'category': 'general', 'key': '__nomatch_command', 'tags': '', 'text': '\n No command was found matching the given input.\n '}
        +search_index_entry = {'aliases': '', 'category': 'general', 'key': '__nomatch_command', 'no_prefix': ' ', 'tags': '', 'text': '\n No command was found matching the given input.\n '}
        @@ -190,7 +190,7 @@ the raw_cmdname is the cmdname unmodified by eventual prefix-st
        -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 "}
        +search_index_entry = {'aliases': '', 'category': 'general', 'key': '__multimatch_command', 'no_prefix': ' ', '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 "}
        diff --git a/docs/1.0-dev/api/evennia.commands.default.system.html b/docs/1.0-dev/api/evennia.commands.default.system.html index 0c7fe97f40..3bd33b1c16 100644 --- a/docs/1.0-dev/api/evennia.commands.default.system.html +++ b/docs/1.0-dev/api/evennia.commands.default.system.html @@ -60,12 +60,12 @@ It will list the <nr> amount of latest registered accounts If not given, <nr> defaults to 10.

        -key = 'accounts'
        +key = '@accounts'
        -aliases = ['account', 'listaccounts']
        +aliases = ['@account']
        @@ -96,7 +96,7 @@ If not given, <nr> defaults to 10.

        -search_index_entry = {'aliases': 'account listaccounts', 'category': 'system', 'key': 'accounts', 'tags': '', 'text': '\n Manage registered accounts\n\n Usage:\n accounts [nr]\n accounts/delete <name or #id> [: reason]\n\n Switches:\n delete - delete an account from the server\n\n By default, lists statistics about the Accounts registered with the game.\n It will list the <nr> amount of latest registered accounts\n If not given, <nr> defaults to 10.\n '}
        +search_index_entry = {'aliases': '@account', 'category': 'system', 'key': '@accounts', 'no_prefix': 'accounts @account', 'tags': '', 'text': '\n Manage registered accounts\n\n Usage:\n accounts [nr]\n accounts/delete <name or #id> [: reason]\n\n Switches:\n delete - delete an account from the server\n\n By default, lists statistics about the Accounts registered with the game.\n It will list the <nr> amount of latest registered accounts\n If not given, <nr> defaults to 10.\n '}
        @@ -115,12 +115,12 @@ affected. Non-persistent scripts will survive a reload (use reset to purge) and at_reload() hooks will be called.

        -key = 'reload'
        +key = '@reload'
        -aliases = ['restart']
        +aliases = ['@restart']
        @@ -146,7 +146,7 @@ reset to purge) and at_reload() hooks will be called.

        -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 '}
        +search_index_entry = {'aliases': '@restart', 'category': 'system', 'key': '@reload', 'no_prefix': 'reload @restart', '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 '}
        @@ -172,12 +172,12 @@ be called and any non-database saved scripts, ndb-attributes, cmdsets etc will be wiped.

        -key = 'reset'
        +key = '@reset'
        -aliases = ['reboot']
        +aliases = ['@reboot']
        @@ -203,7 +203,7 @@ cmdsets etc will be wiped.

        -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 '}
        +search_index_entry = {'aliases': '@reboot', 'category': 'system', 'key': '@reset', 'no_prefix': 'reset @reboot', '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 '}
        @@ -220,7 +220,7 @@ cmdsets etc will be wiped.

        Gracefully shut down both Server and Portal.

        -key = 'shutdown'
        +key = '@shutdown'
        @@ -251,7 +251,7 @@ cmdsets etc will be wiped.

        -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 '}
        +search_index_entry = {'aliases': '', 'category': 'system', 'key': '@shutdown', 'no_prefix': 'shutdown ', 'tags': '', 'text': '\n stop the server completely\n\n Usage:\n shutdown [announcement]\n\n Gracefully shut down both Server and Portal.\n '}
        @@ -307,12 +307,12 @@ py evennia.managers.__doc__

        should only be accessible by trusted server admins/superusers.|n

        -key = 'py'
        +key = '@py'
        -aliases = ['!']
        +aliases = ['@!']
        @@ -348,7 +348,7 @@ should only be accessible by trusted server admins/superusers.|n

        -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 "}
        +search_index_entry = {'aliases': '@!', 'category': 'system', 'key': '@py', 'no_prefix': '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 "}
        @@ -374,12 +374,12 @@ service you have to supply the full (green or red) name as given in the list.

        -key = 'service'
        +key = '@service'
        -aliases = ['services']
        +aliases = ['@services']
        @@ -410,7 +410,7 @@ in the list.

        -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 '}
        +search_index_entry = {'aliases': '@services', 'category': 'system', 'key': '@service', 'no_prefix': 'service @services', '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 '}
        @@ -427,12 +427,12 @@ in the list.

        Display info about the game engine.

        -key = 'about'
        +key = '@about'
        -aliases = ['version']
        +aliases = ['@version']
        @@ -458,7 +458,7 @@ in the list.

        -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 '}
        +search_index_entry = {'aliases': '@version', 'category': 'system', 'key': '@about', 'no_prefix': 'about @version', 'tags': '', 'text': '\n show Evennia info\n\n Usage:\n about\n\n Display info about the game engine.\n '}
        @@ -476,12 +476,12 @@ in the list.

        and the current time stamp.

        -key = 'time'
        +key = '@time'
        -aliases = ['uptime']
        +aliases = ['@uptime']
        @@ -507,7 +507,7 @@ and the current time stamp.

        -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 '}
        +search_index_entry = {'aliases': '@uptime', 'category': 'system', 'key': '@time', 'no_prefix': 'time @uptime', '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 '}
        @@ -544,12 +544,12 @@ caches may not show you a lower Residual/Virtual memory footprint, the released memory will instead be re-used by the program.

        -key = 'server'
        +key = '@server'
        -aliases = ['serverprocess', 'serverload']
        +aliases = ['@serverload']
        @@ -580,7 +580,7 @@ the released memory will instead be re-used by the program.

        -search_index_entry = {'aliases': 'serverprocess serverload', '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 "}
        +search_index_entry = {'aliases': '@serverload', 'category': 'system', 'key': '@server', 'no_prefix': 'server @serverload', '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 "}
        @@ -618,12 +618,12 @@ See |luhttps://ww
      -key = 'tasks'
      +key = '@tasks'
      -aliases = ['delays', 'task']
      +aliases = ['@task', '@delays']
      @@ -669,7 +669,7 @@ to all the variables defined therein.

      -search_index_entry = {'aliases': 'delays task', 'category': 'system', 'key': 'tasks', 'tags': '', 'text': "\n Display or terminate active tasks (delays).\n\n Usage:\n tasks[/switch] [task_id or function_name]\n\n Switches:\n pause - Pause the callback of a task.\n unpause - Process all callbacks made since pause() was called.\n do_task - Execute the task (call its callback).\n call - Call the callback of this task.\n remove - Remove a task without executing it.\n cancel - Stop a task from automatically executing.\n\n Notes:\n A task is a single use method of delaying the call of a function. Calls are created\n in code, using `evennia.utils.delay`.\n See |luhttps://www.evennia.com/docs/latest/Command-Duration.html|ltthe docs|le for help.\n\n By default, tasks that are canceled and never called are cleaned up after one minute.\n\n Examples:\n - `tasks/cancel move_callback` - Cancels all movement delays from the slow_exit contrib.\n In this example slow exits creates it's tasks with\n `utils.delay(move_delay, move_callback)`\n - `tasks/cancel 2` - Cancel task id 2.\n\n "}
      +search_index_entry = {'aliases': '@task @delays', 'category': 'system', 'key': '@tasks', 'no_prefix': 'tasks @task @delays @task @delays', 'tags': '', 'text': "\n Display or terminate active tasks (delays).\n\n Usage:\n tasks[/switch] [task_id or function_name]\n\n Switches:\n pause - Pause the callback of a task.\n unpause - Process all callbacks made since pause() was called.\n do_task - Execute the task (call its callback).\n call - Call the callback of this task.\n remove - Remove a task without executing it.\n cancel - Stop a task from automatically executing.\n\n Notes:\n A task is a single use method of delaying the call of a function. Calls are created\n in code, using `evennia.utils.delay`.\n See |luhttps://www.evennia.com/docs/latest/Command-Duration.html|ltthe docs|le for help.\n\n By default, tasks that are canceled and never called are cleaned up after one minute.\n\n Examples:\n - `tasks/cancel move_callback` - Cancels all movement delays from the slow_exit contrib.\n In this example slow exits creates it's tasks with\n `utils.delay(move_delay, move_callback)`\n - `tasks/cancel 2` - Cancel task id 2.\n\n "}
      @@ -688,7 +688,7 @@ using the TickerHandler. This is merely a convenience function for inspecting the current status.

      -key = 'tickers'
      +key = '@tickers'
      @@ -721,7 +721,7 @@ to all the variables defined therein.

      -search_index_entry = {'aliases': '', 'category': 'system', 'key': 'tickers', 'tags': '', 'text': '\n View running tickers\n\n Usage:\n tickers\n\n Note: Tickers are created, stopped and manipulated in Python code\n using the TickerHandler. This is merely a convenience function for\n inspecting the current status.\n\n '}
      +search_index_entry = {'aliases': '', 'category': 'system', 'key': '@tickers', 'no_prefix': 'tickers ', 'tags': '', 'text': '\n View running tickers\n\n Usage:\n tickers\n\n Note: Tickers are created, stopped and manipulated in Python code\n using the TickerHandler. This is merely a convenience function for\n inspecting the current status.\n\n '}
      diff --git a/docs/1.0-dev/api/evennia.commands.default.tests.html b/docs/1.0-dev/api/evennia.commands.default.tests.html index dc3bfdcf01..7ca4386a26 100644 --- a/docs/1.0-dev/api/evennia.commands.default.tests.html +++ b/docs/1.0-dev/api/evennia.commands.default.tests.html @@ -711,58 +711,6 @@ the proper order:

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

      Bases: evennia.commands.default.tests.CommandTest

      -
      -
      -setUp()[source]
      -

      Sets up testing environment

      -
      - -
      -
      -test_toggle_com()[source]
      -
      - -
      -
      -test_all_com()[source]
      -
      - -
      -
      -test_clock()[source]
      -
      - -
      -
      -test_cdesc()[source]
      -
      - -
      -
      -test_cwho()[source]
      -
      - -
      -
      -test_page()[source]
      -
      - -
      -
      -test_cboot()[source]
      -
      - -
      -
      -test_cdestroy()[source]
      -
      - -
      -
      class evennia.commands.default.tests.TestCommsChannel(methodName='runTest')[source]
      @@ -982,7 +930,7 @@ set in self.parse())

      -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'interrupt', 'tags': '', 'text': '\n ## Base command\n\n (you may see this if a child command had no help text defined)\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 '}
      +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'interrupt', 'no_prefix': ' ', 'tags': '', 'text': '\n ## Base command\n\n (you may see this if a child command had no help text defined)\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 '}
      diff --git a/docs/1.0-dev/api/evennia.commands.default.unloggedin.html b/docs/1.0-dev/api/evennia.commands.default.unloggedin.html index 12e1651482..bf140330c7 100644 --- a/docs/1.0-dev/api/evennia.commands.default.unloggedin.html +++ b/docs/1.0-dev/api/evennia.commands.default.unloggedin.html @@ -62,7 +62,7 @@ connect “account name” “pass word”

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

      -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 '}
      +search_index_entry = {'aliases': 'conn con co', 'category': 'general', 'key': 'connect', 'no_prefix': ' ', '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 '}
      @@ -121,7 +121,7 @@ create “account name” “pass word”

      -aliases = ['cre', 'cr']
      +aliases = ['cr', 'cre']
      @@ -152,7 +152,7 @@ create “account name” “pass word”

      -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 '}
      +search_index_entry = {'aliases': 'cr cre', 'category': 'general', 'key': 'create', 'no_prefix': ' ', '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 '}
      @@ -176,7 +176,7 @@ version is a bit more complicated.

      -aliases = ['qu', 'q']
      +aliases = ['q', 'qu']
      @@ -202,7 +202,7 @@ version is a bit more complicated.

      -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 '}
      +search_index_entry = {'aliases': 'q qu', 'category': 'general', 'key': 'quit', 'no_prefix': ' ', '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 '}
      @@ -226,7 +226,7 @@ All it does is display the connect screen.

      -aliases = ['l', 'look']
      +aliases = ['look', 'l']
      @@ -252,7 +252,7 @@ All it does is display the connect screen.

      -search_index_entry = {'aliases': 'l look', '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 '}
      +search_index_entry = {'aliases': 'look l', 'category': 'general', 'key': '__unloggedin_look_command', 'no_prefix': ' ', '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 '}
      @@ -301,7 +301,7 @@ for simplicity. It shows a pane of info.

      -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 '}
      +search_index_entry = {'aliases': 'h ?', 'category': 'general', 'key': 'help', 'no_prefix': ' ', '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 '}
      @@ -358,7 +358,7 @@ instead.

      -search_index_entry = {'aliases': 'encode', 'category': 'general', 'key': 'encoding', 'tags': '', 'text': "\n set which text encoding to use in unconnected-in state\n\n Usage:\n encoding/switches [<encoding>]\n\n Switches:\n clear - clear your custom encoding\n\n\n This sets the text encoding for communicating with Evennia. This is mostly\n an issue only if you want to use non-ASCII characters (i.e. letters/symbols\n not found in English). If you see that your characters look strange (or you\n get encoding errors), you should use this command to set the server\n encoding to be the same used in your client program.\n\n Common encodings are utf-8 (default), latin-1, ISO-8859-1 etc.\n\n If you don't submit an encoding, the current encoding will be displayed\n instead.\n "}
      +search_index_entry = {'aliases': 'encode', 'category': 'general', 'key': 'encoding', 'no_prefix': ' ', 'tags': '', 'text': "\n set which text encoding to use in unconnected-in state\n\n Usage:\n encoding/switches [<encoding>]\n\n Switches:\n clear - clear your custom encoding\n\n\n This sets the text encoding for communicating with Evennia. This is mostly\n an issue only if you want to use non-ASCII characters (i.e. letters/symbols\n not found in English). If you see that your characters look strange (or you\n get encoding errors), you should use this command to set the server\n encoding to be the same used in your client program.\n\n Common encodings are utf-8 (default), latin-1, ISO-8859-1 etc.\n\n If you don't submit an encoding, the current encoding will be displayed\n instead.\n "}
      @@ -407,7 +407,7 @@ to all the variables defined therein.

      -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'info', 'tags': '', 'text': '\n Provides MUDINFO output, so that Evennia games can be added to Mudconnector\n and Mudstats. Sadly, the MUDINFO specification seems to have dropped off the\n face of the net, but it is still used by some crawlers. This implementation\n was created by looking at the MUDINFO implementation in MUX2, TinyMUSH, Rhost,\n and PennMUSH.\n '}
      +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'info', 'no_prefix': ' ', 'tags': '', 'text': '\n Provides MUDINFO output, so that Evennia games can be added to Mudconnector\n and Mudstats. Sadly, the MUDINFO specification seems to have dropped off the\n face of the net, but it is still used by some crawlers. This implementation\n was created by looking at the MUDINFO implementation in MUX2, TinyMUSH, Rhost,\n and PennMUSH.\n '}
      @@ -451,7 +451,7 @@ logged in, use option screenreader on).

      -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'screenreader', 'tags': '', 'text': '\n Activate screenreader mode.\n\n Usage:\n screenreader\n\n Used to flip screenreader mode on and off before logging in (when\n logged in, use option screenreader on).\n '}
      +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'screenreader', 'no_prefix': ' ', 'tags': '', 'text': '\n Activate screenreader mode.\n\n Usage:\n screenreader\n\n Used to flip screenreader mode on and off before logging in (when\n logged in, use option screenreader on).\n '}
      diff --git a/docs/1.0-dev/api/evennia.contrib.awsstorage.aws_s3_cdn.html b/docs/1.0-dev/api/evennia.contrib.awsstorage.aws_s3_cdn.html index 40bf2df254..689567a655 100644 --- a/docs/1.0-dev/api/evennia.contrib.awsstorage.aws_s3_cdn.html +++ b/docs/1.0-dev/api/evennia.contrib.awsstorage.aws_s3_cdn.html @@ -40,471 +40,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

      diff --git a/docs/1.0-dev/api/evennia.contrib.barter.html b/docs/1.0-dev/api/evennia.contrib.barter.html index 457c53a0a9..da05e886aa 100644 --- a/docs/1.0-dev/api/evennia.contrib.barter.html +++ b/docs/1.0-dev/api/evennia.contrib.barter.html @@ -408,7 +408,7 @@ available to the command

      -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 '}
      +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'command', 'no_prefix': ' ', 'tags': '', 'text': '\n Base command for Trade commands to inherit from. Implements the\n custom parsing.\n '}
      @@ -456,7 +456,7 @@ available to the command

      -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 '}
      +search_index_entry = {'aliases': '', 'category': 'trade', 'key': 'trade help', 'no_prefix': ' ', 'tags': '', 'text': '\n help command for the trade system.\n\n Usage:\n trade help\n\n Displays help for the trade commands.\n '}
      @@ -505,7 +505,7 @@ standing offer.

      -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 '}
      +search_index_entry = {'aliases': '', 'category': 'trading', 'key': 'offer', 'no_prefix': ' ', '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 '}
      @@ -557,7 +557,7 @@ the current offer using the ‘offers’ command.

      -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 "}
      +search_index_entry = {'aliases': 'agree', 'category': 'trading', 'key': 'accept', 'no_prefix': ' ', '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 "}
      @@ -608,7 +608,7 @@ decline the old offer.

      -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 "}
      +search_index_entry = {'aliases': '', 'category': 'trading', 'key': 'decline', 'no_prefix': ' ', '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 "}
      @@ -657,7 +657,7 @@ determine if it’s worth your while.

      -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 "}
      +search_index_entry = {'aliases': 'eval', 'category': 'trading', 'key': 'evaluate', 'no_prefix': ' ', '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 "}
      @@ -684,7 +684,7 @@ try to influence the other part in the deal.

      -aliases = ['offers', 'deal']
      +aliases = ['deal', 'offers']
      @@ -710,7 +710,7 @@ try to influence the other part in the deal.

      -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 "}
      +search_index_entry = {'aliases': 'deal offers', 'category': 'trading', 'key': 'status', 'no_prefix': ' ', '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 "}
      @@ -759,7 +759,7 @@ finish trade [:say]

      -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 '}
      +search_index_entry = {'aliases': 'finish trade', 'category': 'trading', 'key': 'end trade', 'no_prefix': ' ', '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 '}
      @@ -838,7 +838,7 @@ info to your choice.

      -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 '}
      +search_index_entry = {'aliases': 'barter', 'category': 'general', 'key': 'trade', 'no_prefix': ' ', '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 '}
      diff --git a/docs/1.0-dev/api/evennia.contrib.building_menu.html b/docs/1.0-dev/api/evennia.contrib.building_menu.html index 46b62bbd57..d488dd5997 100644 --- a/docs/1.0-dev/api/evennia.contrib.building_menu.html +++ b/docs/1.0-dev/api/evennia.contrib.building_menu.html @@ -256,7 +256,7 @@ overloading evential same-named class properties.

      -search_index_entry = {'aliases': '', 'category': 'general', 'key': '__noinput_command', 'tags': '', 'text': 'No input has been found.'}
      +search_index_entry = {'aliases': '', 'category': 'general', 'key': '__noinput_command', 'no_prefix': ' ', 'tags': '', 'text': 'No input has been found.'}
      @@ -307,7 +307,7 @@ overloading evential same-named class properties.

      -search_index_entry = {'aliases': '', 'category': 'general', 'key': '__nomatch_command', 'tags': '', 'text': 'No input has been found.'}
      +search_index_entry = {'aliases': '', 'category': 'general', 'key': '__nomatch_command', 'no_prefix': ' ', 'tags': '', 'text': 'No input has been found.'}
      @@ -876,7 +876,7 @@ set in self.parse())

      -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 "}
      +search_index_entry = {'aliases': '', 'category': 'general', 'key': '@edit', 'no_prefix': '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 "}
      diff --git a/docs/1.0-dev/api/evennia.contrib.chargen.html b/docs/1.0-dev/api/evennia.contrib.chargen.html index 2f9ce1d17a..f595094aa9 100644 --- a/docs/1.0-dev/api/evennia.contrib.chargen.html +++ b/docs/1.0-dev/api/evennia.contrib.chargen.html @@ -80,7 +80,7 @@ at them with this command.

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

      -search_index_entry = {'aliases': 'l ls', '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 '}
      +search_index_entry = {'aliases': 'ls l', 'category': 'general', 'key': 'look', 'no_prefix': ' ', '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 '}
      @@ -162,7 +162,7 @@ attribute on ourselves to remember it.

      -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 '}
      +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'create', 'no_prefix': ' ', '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 '}
      diff --git a/docs/1.0-dev/api/evennia.contrib.clothing.html b/docs/1.0-dev/api/evennia.contrib.clothing.html index 4756c281eb..027077b416 100644 --- a/docs/1.0-dev/api/evennia.contrib.clothing.html +++ b/docs/1.0-dev/api/evennia.contrib.clothing.html @@ -364,7 +364,7 @@ provide will be displayed after the clothing’s name.

      -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 "}
      +search_index_entry = {'aliases': '', 'category': 'clothing', 'key': 'wear', 'no_prefix': ' ', '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 "}
      @@ -409,7 +409,7 @@ off the covering item first.

      -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 "}
      +search_index_entry = {'aliases': '', 'category': 'clothing', 'key': 'remove', 'no_prefix': ' ', '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 "}
      @@ -454,7 +454,7 @@ You can’t remove an item of clothing if it’s covered.

      -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 "}
      +search_index_entry = {'aliases': '', 'category': 'clothing', 'key': 'cover', 'no_prefix': ' ', '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 "}
      @@ -500,7 +500,7 @@ it is also covered by something else.

      -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 "}
      +search_index_entry = {'aliases': '', 'category': 'clothing', 'key': 'uncover', 'no_prefix': ' ', '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 "}
      @@ -554,7 +554,7 @@ location you are currently in.

      -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 '}
      +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'drop', 'no_prefix': ' ', '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 '}
      @@ -608,7 +608,7 @@ placing it in their inventory.

      -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 '}
      +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'give', 'no_prefix': ' ', '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 '}
      @@ -631,7 +631,7 @@ inv

      -aliases = ['inv', 'i']
      +aliases = ['i', 'inv']
      @@ -662,7 +662,7 @@ inv

      -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 '}
      +search_index_entry = {'aliases': 'i inv', 'category': 'general', 'key': 'inventory', 'no_prefix': ' ', 'tags': '', 'text': '\n view inventory\n\n Usage:\n inventory\n inv\n\n Shows your inventory.\n '}
      diff --git a/docs/1.0-dev/api/evennia.contrib.crafting.crafting.html b/docs/1.0-dev/api/evennia.contrib.crafting.crafting.html index eaa562e978..aa9079d26e 100644 --- a/docs/1.0-dev/api/evennia.contrib.crafting.crafting.html +++ b/docs/1.0-dev/api/evennia.contrib.crafting.crafting.html @@ -790,7 +790,7 @@ things in the current location, like a furnace, windmill or anvil.

      -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 "}
      +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'craft', 'no_prefix': ' ', '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 "}
      diff --git a/docs/1.0-dev/api/evennia.contrib.crafting.example_recipes.html b/docs/1.0-dev/api/evennia.contrib.crafting.example_recipes.html index ac647feb38..3005caa645 100644 --- a/docs/1.0-dev/api/evennia.contrib.crafting.example_recipes.html +++ b/docs/1.0-dev/api/evennia.contrib.crafting.example_recipes.html @@ -529,7 +529,7 @@ set in self.parse())

      -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'cast', 'tags': '', 'text': '\n Cast a magical spell.\n\n Usage:\n cast <spell> <target>\n\n '}
      +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'cast', 'no_prefix': ' ', 'tags': '', 'text': '\n Cast a magical spell.\n\n Usage:\n cast <spell> <target>\n\n '}
      diff --git a/docs/1.0-dev/api/evennia.contrib.dice.html b/docs/1.0-dev/api/evennia.contrib.dice.html index a0adc15e6f..ed273e168e 100644 --- a/docs/1.0-dev/api/evennia.contrib.dice.html +++ b/docs/1.0-dev/api/evennia.contrib.dice.html @@ -152,7 +152,7 @@ everyone but the person rolling.

      -aliases = ['@dice', 'roll']
      +aliases = ['roll', '@dice']
      @@ -178,7 +178,7 @@ everyone but the person rolling.

      -search_index_entry = {'aliases': '@dice roll', '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 "}
      +search_index_entry = {'aliases': 'roll @dice', 'category': 'general', 'key': 'dice', 'no_prefix': ' roll @dice', 'tags': '', 'text': "\n roll dice\n\n Usage:\n dice[/switch] <nr>d<sides> [modifier] [success condition]\n\n Switch:\n hidden - tell the room the roll is being done, but don't show the result\n secret - don't inform the room about neither roll nor result\n\n Examples:\n dice 3d6 + 4\n dice 1d100 - 2 < 50\n\n This will roll the given number of dice with given sides and modifiers.\n So e.g. 2d6 + 3 means to 'roll a 6-sided die 2 times and add the result,\n then add 3 to the total'.\n Accepted modifiers are +, -, * and /.\n A success condition is given as normal Python conditionals\n (<,>,<=,>=,==,!=). So e.g. 2d6 + 3 > 10 means that the roll will succeed\n only if the final result is above 8. If a success condition is given, the\n outcome (pass/fail) will be echoed along with how much it succeeded/failed\n with. The hidden/secret switches will hide all or parts of the roll from\n everyone but the person rolling.\n "}
      diff --git a/docs/1.0-dev/api/evennia.contrib.email_login.html b/docs/1.0-dev/api/evennia.contrib.email_login.html index 0ad355f08b..78b5644d79 100644 --- a/docs/1.0-dev/api/evennia.contrib.email_login.html +++ b/docs/1.0-dev/api/evennia.contrib.email_login.html @@ -77,7 +77,7 @@ the module given by settings.CONNECTION_SCREEN_MODULE.

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

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

      -aliases = ['cre', 'cr']
      +aliases = ['cr', 'cre']
      @@ -165,7 +165,7 @@ name enclosed in quotes:

      -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 '}
      +search_index_entry = {'aliases': 'cr cre', 'category': 'general', 'key': 'create', 'no_prefix': ' ', '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 '}
      @@ -184,7 +184,7 @@ version is a bit more complicated.

      -aliases = ['qu', 'q']
      +aliases = ['q', 'qu']
      @@ -210,7 +210,7 @@ version is a bit more complicated.

      -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 '}
      +search_index_entry = {'aliases': 'q qu', 'category': 'general', 'key': 'quit', 'no_prefix': ' ', '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 '}
      @@ -229,7 +229,7 @@ All it does is display the connect screen.

      -aliases = ['l', 'look']
      +aliases = ['look', 'l']
      @@ -255,7 +255,7 @@ All it does is display the connect screen.

      -search_index_entry = {'aliases': 'l look', '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 '}
      +search_index_entry = {'aliases': 'look l', 'category': 'general', 'key': '__unloggedin_look_command', 'no_prefix': ' ', '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 '}
      @@ -299,7 +299,7 @@ for simplicity. It shows a pane of info.

      -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 '}
      +search_index_entry = {'aliases': 'h ?', 'category': 'general', 'key': 'help', 'no_prefix': ' ', 'tags': '', 'text': '\n This is an unconnected version of the help command,\n for simplicity. It shows a pane of info.\n '}
      diff --git a/docs/1.0-dev/api/evennia.contrib.evscaperoom.commands.html b/docs/1.0-dev/api/evennia.contrib.evscaperoom.commands.html index 4a0274a106..f6cd441ad7 100644 --- a/docs/1.0-dev/api/evennia.contrib.evscaperoom.commands.html +++ b/docs/1.0-dev/api/evennia.contrib.evscaperoom.commands.html @@ -128,7 +128,7 @@ the operation will be general or on the room.

      -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 "}
      +search_index_entry = {'aliases': '', 'category': 'evscaperoom', 'key': 'command', 'no_prefix': ' ', '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 "}
      @@ -150,7 +150,7 @@ the operation will be general or on the room.

      -aliases = ['q', 'abort', 'chicken out', 'quit']
      +aliases = ['q', 'abort', 'quit', 'chicken out']
      @@ -174,7 +174,7 @@ set in self.parse())

      -search_index_entry = {'aliases': 'q abort chicken out quit', '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 '}
      +search_index_entry = {'aliases': 'q abort quit chicken out', 'category': 'evscaperoom', 'key': 'give up', 'no_prefix': ' ', '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 '}
      @@ -195,7 +195,7 @@ set in self.parse())

      -aliases = ['l', 'ls']
      +aliases = ['ls', 'l']
      @@ -229,7 +229,7 @@ set in self.parse())

      -search_index_entry = {'aliases': 'l ls', '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 '}
      +search_index_entry = {'aliases': 'ls l', 'category': 'evscaperoom', 'key': 'look', 'no_prefix': ' ', 'tags': '', 'text': '\n Look at the room, an object or the currently focused object\n\n Usage:\n look [obj]\n\n '}
      @@ -287,7 +287,7 @@ set in self.parse())

      -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 '}
      +search_index_entry = {'aliases': '', 'category': 'evscaperoom', 'key': 'who', 'no_prefix': ' ', '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 '}
      @@ -310,7 +310,7 @@ shout

      -aliases = ['shout', ';', 'whisper']
      +aliases = [';', 'whisper', 'shout']
      @@ -339,7 +339,7 @@ set in self.parse())

      -search_index_entry = {'aliases': 'shout ; whisper', 'category': 'general', 'key': 'say', 'tags': '', 'text': '\n Perform an communication action.\n\n Usage:\n say <text>\n whisper\n shout\n\n '}
      +search_index_entry = {'aliases': '; whisper shout', 'category': 'general', 'key': 'say', 'no_prefix': ' ', 'tags': '', 'text': '\n Perform an communication action.\n\n Usage:\n say <text>\n whisper\n shout\n\n '}
      @@ -367,7 +367,7 @@ emote /me points to /box and /lever.

      -aliases = [':', 'pose']
      +aliases = ['pose', ':']
      @@ -406,7 +406,7 @@ set in self.parse())

      -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 '}
      +search_index_entry = {'aliases': 'pose :', 'category': 'general', 'key': 'emote', 'no_prefix': ' ', '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 '}
      @@ -429,7 +429,7 @@ looks and what actions is available.

      -aliases = ['e', 'unfocus', 'ex', 'examine']
      +aliases = ['unfocus', 'examine', 'e', 'ex']
      @@ -458,7 +458,7 @@ set in self.parse())

      -search_index_entry = {'aliases': 'e unfocus ex examine', '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 '}
      +search_index_entry = {'aliases': 'unfocus examine e ex', 'category': 'evscaperoom', 'key': 'focus', 'no_prefix': ' ', '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 '}
      @@ -503,7 +503,7 @@ set in self.parse())

      -search_index_entry = {'aliases': 'option', 'category': 'evscaperoom', 'key': 'options', 'tags': '', 'text': '\n Start option menu\n\n Usage:\n options\n\n '}
      +search_index_entry = {'aliases': 'option', 'category': 'evscaperoom', 'key': 'options', 'no_prefix': ' ', 'tags': '', 'text': '\n Start option menu\n\n Usage:\n options\n\n '}
      @@ -520,7 +520,7 @@ set in self.parse())

      -aliases = ['inv', 'i', 'inventory', 'give']
      +aliases = ['i', 'inv', 'inventory', 'give']
      @@ -544,7 +544,7 @@ set in self.parse())

      -search_index_entry = {'aliases': 'inv i inventory give', 'category': 'evscaperoom', 'key': 'get', 'tags': '', 'text': '\n Use focus / examine instead.\n\n '}
      +search_index_entry = {'aliases': 'i inv inventory give', 'category': 'evscaperoom', 'key': 'get', 'no_prefix': ' ', 'tags': '', 'text': '\n Use focus / examine instead.\n\n '}
      @@ -588,7 +588,7 @@ to all the variables defined therein.

      -search_index_entry = {'aliases': '@open @dig', 'category': 'general', 'key': 'open', 'tags': '', 'text': '\n Interact with an object in focus.\n\n Usage:\n <action> [arg]\n\n '}
      +search_index_entry = {'aliases': '@open @dig', 'category': 'general', 'key': 'open', 'no_prefix': ' @open @dig @open @dig', 'tags': '', 'text': '\n Interact with an object in focus.\n\n Usage:\n <action> [arg]\n\n '}
      @@ -657,7 +657,7 @@ set in self.parse())

      -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 '}
      +search_index_entry = {'aliases': '', 'category': 'evscaperoom', 'key': '__nomatch_command', 'no_prefix': ' ', '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 '}
      @@ -698,7 +698,7 @@ set in self.parse())

      -search_index_entry = {'aliases': '', 'category': 'evscaperoom', 'key': 'stand', 'tags': '', 'text': '\n Stand up from whatever position you had.\n\n '}
      +search_index_entry = {'aliases': '', 'category': 'evscaperoom', 'key': 'stand', 'no_prefix': ' ', 'tags': '', 'text': '\n Stand up from whatever position you had.\n\n '}
      @@ -743,7 +743,7 @@ set in self.parse())

      -search_index_entry = {'aliases': '?', 'category': 'evscaperoom', 'key': 'help', 'tags': '', 'text': '\n Get help.\n\n Usage:\n help <topic> or <command>\n\n '}
      +search_index_entry = {'aliases': '?', 'category': 'evscaperoom', 'key': 'help', 'no_prefix': ' ', 'tags': '', 'text': '\n Get help.\n\n Usage:\n help <topic> or <command>\n\n '}
      @@ -804,7 +804,7 @@ set in self.parse())

      -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 '}
      +search_index_entry = {'aliases': 'cobj', 'category': 'evscaperoom', 'key': 'createobj', 'no_prefix': ' ', '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 '}
      @@ -864,7 +864,7 @@ set in self.parse())

      -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 '}
      +search_index_entry = {'aliases': 'setflag', 'category': 'evscaperoom', 'key': 'flag', 'no_prefix': ' ', 'tags': '', 'text': '\n Assign a flag to an object. Admin use only\n\n Usage:\n flag <obj> with <flagname>\n\n '}
      @@ -925,7 +925,7 @@ set in self.parse())

      -search_index_entry = {'aliases': '', 'category': 'evscaperoom', 'key': 'jumpstate', 'tags': '', 'text': '\n Jump to a given state.\n\n Args:\n jumpstate <statename>\n\n '}
      +search_index_entry = {'aliases': '', 'category': 'evscaperoom', 'key': 'jumpstate', 'no_prefix': ' ', 'tags': '', 'text': '\n Jump to a given state.\n\n Args:\n jumpstate <statename>\n\n '}
      @@ -966,7 +966,7 @@ set in self.parse())

      -search_index_entry = {'aliases': '', 'category': 'evscaperoom', 'key': 'evscaperoom', 'tags': '', 'text': '\n Go to the Evscaperoom start menu\n\n '}
      +search_index_entry = {'aliases': '', 'category': 'evscaperoom', 'key': 'evscaperoom', 'no_prefix': ' ', 'tags': '', 'text': '\n Go to the Evscaperoom start menu\n\n '}
      diff --git a/docs/1.0-dev/api/evennia.contrib.extended_room.html b/docs/1.0-dev/api/evennia.contrib.extended_room.html index 35c2dc12ed..952402c4bb 100644 --- a/docs/1.0-dev/api/evennia.contrib.extended_room.html +++ b/docs/1.0-dev/api/evennia.contrib.extended_room.html @@ -279,7 +279,7 @@ look *<account&g
      -aliases = ['l', 'ls']
      +aliases = ['ls', 'l']
      @@ -299,7 +299,7 @@ look *<account&g
      -search_index_entry = {'aliases': 'l ls', '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 '}
      +search_index_entry = {'aliases': 'ls l', 'category': 'general', 'key': 'look', 'no_prefix': ' ', '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 '}
      @@ -357,7 +357,7 @@ version of the desc command.

      -key = 'desc'
      +key = '@desc'
      @@ -367,7 +367,7 @@ version of the desc command.

      -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 '}
      +search_index_entry = {'aliases': 'describe', 'category': 'building', 'key': '@desc', 'no_prefix': '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 '}
      @@ -430,7 +430,7 @@ to all the variables defined therein.

      -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 '}
      +search_index_entry = {'aliases': '', 'category': 'building', 'key': '@detail', 'no_prefix': '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 '}
      @@ -478,7 +478,7 @@ to all the variables defined therein.

      -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 '}
      +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'time', 'no_prefix': ' ', 'tags': '', 'text': '\n Check the game time\n\n Usage:\n time\n\n Shows the current in-game time and season.\n '}
      diff --git a/docs/1.0-dev/api/evennia.contrib.fieldfill.html b/docs/1.0-dev/api/evennia.contrib.fieldfill.html index b95ab5ff58..070fffab6c 100644 --- a/docs/1.0-dev/api/evennia.contrib.fieldfill.html +++ b/docs/1.0-dev/api/evennia.contrib.fieldfill.html @@ -369,7 +369,7 @@ send

      -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 "}
      +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'testmenu', 'no_prefix': ' ', '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 "}
      diff --git a/docs/1.0-dev/api/evennia.contrib.gendersub.html b/docs/1.0-dev/api/evennia.contrib.gendersub.html index 89a3f6ff7d..28c8767c4f 100644 --- a/docs/1.0-dev/api/evennia.contrib.gendersub.html +++ b/docs/1.0-dev/api/evennia.contrib.gendersub.html @@ -115,7 +115,7 @@ default cmdset before it becomes available.

      -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 '}
      +search_index_entry = {'aliases': '@sex', 'category': 'general', 'key': '@gender', 'no_prefix': 'gender @sex', 'tags': '', 'text': '\n Sets gender on yourself\n\n Usage:\n @gender male||female||neutral||ambiguous\n\n '}
      diff --git a/docs/1.0-dev/api/evennia.contrib.ingame_python.commands.html b/docs/1.0-dev/api/evennia.contrib.ingame_python.commands.html index bf92823fbe..c139c6bcb5 100644 --- a/docs/1.0-dev/api/evennia.contrib.ingame_python.commands.html +++ b/docs/1.0-dev/api/evennia.contrib.ingame_python.commands.html @@ -55,7 +55,7 @@
      -aliases = ['@calls', '@callbacks', '@callback']
      +aliases = ['@calls', '@callback', '@callbacks']
      @@ -136,7 +136,7 @@ on user permission.

      -search_index_entry = {'aliases': '@calls @callbacks @callback', 'category': 'building', 'key': '@call', 'tags': '', 'text': '\n Command to edit callbacks.\n '}
      +search_index_entry = {'aliases': '@calls @callback @callbacks', 'category': 'building', 'key': '@call', 'no_prefix': 'call @calls @callback @callbacks @calls @callback @callbacks @calls @callback @callbacks', 'tags': '', 'text': '\n Command to edit callbacks.\n '}
      diff --git a/docs/1.0-dev/api/evennia.contrib.mail.html b/docs/1.0-dev/api/evennia.contrib.mail.html index 6a89cd154e..86d2ba73e1 100644 --- a/docs/1.0-dev/api/evennia.contrib.mail.html +++ b/docs/1.0-dev/api/evennia.contrib.mail.html @@ -223,7 +223,7 @@ the newly created mails.

      -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 '}
      +search_index_entry = {'aliases': 'mail', 'category': 'general', 'key': '@mail', 'no_prefix': '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 '}
      @@ -296,7 +296,7 @@ reply - Replies to a received message, appending the original message to the b
      -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 '}
      +search_index_entry = {'aliases': 'mail', 'category': 'general', 'key': '@mail', 'no_prefix': '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 '}
      diff --git a/docs/1.0-dev/api/evennia.contrib.multidescer.html b/docs/1.0-dev/api/evennia.contrib.multidescer.html index c5c8040e0e..5b5c0c7eb3 100644 --- a/docs/1.0-dev/api/evennia.contrib.multidescer.html +++ b/docs/1.0-dev/api/evennia.contrib.multidescer.html @@ -121,7 +121,7 @@ description in use and db.multidesc to store all descriptions.<
      -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 '}
      +search_index_entry = {'aliases': 'desc', 'category': 'general', 'key': '+desc', 'no_prefix': '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 '}
      diff --git a/docs/1.0-dev/api/evennia.contrib.puzzles.html b/docs/1.0-dev/api/evennia.contrib.puzzles.html index 3c934ad603..242c308839 100644 --- a/docs/1.0-dev/api/evennia.contrib.puzzles.html +++ b/docs/1.0-dev/api/evennia.contrib.puzzles.html @@ -211,7 +211,7 @@ to all the variables defined therein.

      -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 "}
      +search_index_entry = {'aliases': '@puzzlerecipe', 'category': 'puzzles', 'key': '@puzzle', 'no_prefix': 'puzzle @puzzlerecipe', '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 "}
      @@ -279,7 +279,7 @@ to all the variables defined therein.

      -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 "}
      +search_index_entry = {'aliases': '', 'category': 'puzzles', 'key': '@puzzleedit', 'no_prefix': '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 "}
      @@ -331,7 +331,7 @@ to all the variables defined therein.

      -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 '}
      +search_index_entry = {'aliases': '', 'category': 'puzzles', 'key': '@armpuzzle', 'no_prefix': '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 '}
      @@ -384,7 +384,7 @@ to all the variables defined therein.

      -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 '}
      +search_index_entry = {'aliases': 'combine', 'category': 'puzzles', 'key': 'use', 'no_prefix': ' ', '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 '}
      @@ -433,7 +433,7 @@ to all the variables defined therein.

      -search_index_entry = {'aliases': '', 'category': 'puzzles', 'key': '@lspuzzlerecipes', 'tags': '', 'text': '\n Searches for all puzzle recipes\n\n Usage:\n @lspuzzlerecipes\n '}
      +search_index_entry = {'aliases': '', 'category': 'puzzles', 'key': '@lspuzzlerecipes', 'no_prefix': 'lspuzzlerecipes ', 'tags': '', 'text': '\n Searches for all puzzle recipes\n\n Usage:\n @lspuzzlerecipes\n '}
      @@ -482,7 +482,7 @@ to all the variables defined therein.

      -search_index_entry = {'aliases': '', 'category': 'puzzles', 'key': '@lsarmedpuzzles', 'tags': '', 'text': '\n Searches for all armed puzzles\n\n Usage:\n @lsarmedpuzzles\n '}
      +search_index_entry = {'aliases': '', 'category': 'puzzles', 'key': '@lsarmedpuzzles', 'no_prefix': 'lsarmedpuzzles ', 'tags': '', 'text': '\n Searches for all armed puzzles\n\n Usage:\n @lsarmedpuzzles\n '}
      diff --git a/docs/1.0-dev/api/evennia.contrib.rpsystem.html b/docs/1.0-dev/api/evennia.contrib.rpsystem.html index a69d674ab2..09f41c7d0e 100644 --- a/docs/1.0-dev/api/evennia.contrib.rpsystem.html +++ b/docs/1.0-dev/api/evennia.contrib.rpsystem.html @@ -582,7 +582,7 @@ mechanism. This is useful for adding masks/hoods etc.

      -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'command', 'tags': '', 'text': 'simple parent'}
      +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'command', 'no_prefix': ' ', 'tags': '', 'text': 'simple parent'}
      @@ -645,7 +645,7 @@ a different language.

      -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 '}
      +search_index_entry = {'aliases': ':', 'category': 'general', 'key': 'emote', 'no_prefix': ' ', '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 '}
      @@ -667,7 +667,7 @@ a different language.

      -aliases = ["'", '"']
      +aliases = ['"', "'"]
      @@ -698,7 +698,7 @@ a different language.

      -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 '}
      +search_index_entry = {'aliases': '" \'', 'category': 'general', 'key': 'say', 'no_prefix': ' ', 'tags': '', 'text': '\n speak as your character\n\n Usage:\n say <message>\n\n Talk to those in your current location.\n '}
      @@ -746,7 +746,7 @@ a different language.

      -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 '}
      +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'sdesc', 'no_prefix': ' ', '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 '}
      @@ -809,7 +809,7 @@ sdesc in the emote, regardless of who is seeing it.

      -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 "}
      +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'pose', 'no_prefix': ' ', '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 "}
      @@ -864,7 +864,7 @@ Using the command without arguments will list all current recogs.

      -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 '}
      +search_index_entry = {'aliases': 'forget recognize', 'category': 'general', 'key': 'recog', 'no_prefix': ' ', '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 '}
      @@ -913,7 +913,7 @@ set in self.parse())

      -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 "}
      +search_index_entry = {'aliases': 'unmask', 'category': 'general', 'key': 'mask', 'no_prefix': ' ', '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 "}
      diff --git a/docs/1.0-dev/api/evennia.contrib.simpledoor.html b/docs/1.0-dev/api/evennia.contrib.simpledoor.html index 5976b613f2..bae4389295 100644 --- a/docs/1.0-dev/api/evennia.contrib.simpledoor.html +++ b/docs/1.0-dev/api/evennia.contrib.simpledoor.html @@ -175,7 +175,7 @@ unique.

      -key = 'open'
      +key = '@open'
      @@ -185,7 +185,7 @@ unique.

      -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 '}
      +search_index_entry = {'aliases': '', 'category': 'building', 'key': '@open', 'no_prefix': '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 '}
      @@ -233,7 +233,7 @@ close <door>

      -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 '}
      +search_index_entry = {'aliases': 'close', 'category': 'general', 'key': 'open', 'no_prefix': ' ', 'tags': '', 'text': '\n Open and close a door\n\n Usage:\n open <door>\n close <door>\n\n '}
      diff --git a/docs/1.0-dev/api/evennia.contrib.slow_exit.html b/docs/1.0-dev/api/evennia.contrib.slow_exit.html index d94b596dd7..16ff2429d1 100644 --- a/docs/1.0-dev/api/evennia.contrib.slow_exit.html +++ b/docs/1.0-dev/api/evennia.contrib.slow_exit.html @@ -139,7 +139,7 @@ is assumed.

      -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 "}
      +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'setspeed', 'no_prefix': ' ', '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 "}
      @@ -183,7 +183,7 @@ stored deferred from the exit traversal above.

      -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 '}
      +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'stop', 'no_prefix': ' ', 'tags': '', 'text': '\n stop moving\n\n Usage:\n stop\n\n Stops the current movement, if any.\n '}
      diff --git a/docs/1.0-dev/api/evennia.contrib.talking_npc.html b/docs/1.0-dev/api/evennia.contrib.talking_npc.html index af0d8ba297..e96ac68c6f 100644 --- a/docs/1.0-dev/api/evennia.contrib.talking_npc.html +++ b/docs/1.0-dev/api/evennia.contrib.talking_npc.html @@ -126,7 +126,7 @@ that NPC and give you options on what to talk about.

      -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 '}
      +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'talk', 'no_prefix': ' ', '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 '}
      diff --git a/docs/1.0-dev/api/evennia.contrib.tree_select.html b/docs/1.0-dev/api/evennia.contrib.tree_select.html index bb391b8b19..a5a028b331 100644 --- a/docs/1.0-dev/api/evennia.contrib.tree_select.html +++ b/docs/1.0-dev/api/evennia.contrib.tree_select.html @@ -375,7 +375,7 @@ set in self.parse())

      -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 '}
      +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'namecolor', 'no_prefix': ' ', 'tags': '', 'text': '\n Set or remove a special color on your name. Just an example for the\n easy menu selection tree contrib.\n '}
      diff --git a/docs/1.0-dev/api/evennia.contrib.turnbattle.tb_basic.html b/docs/1.0-dev/api/evennia.contrib.turnbattle.tb_basic.html index e0d809c711..7d1c326211 100644 --- a/docs/1.0-dev/api/evennia.contrib.turnbattle.tb_basic.html +++ b/docs/1.0-dev/api/evennia.contrib.turnbattle.tb_basic.html @@ -506,7 +506,7 @@ When it’s your turn, you can attack other characters.

      -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 "}
      +search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'fight', 'no_prefix': ' ', '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 "}
      @@ -550,7 +550,7 @@ a chance to hit, and if successful, will deal damage.

      -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 '}
      +search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'attack', 'no_prefix': ' ', '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 '}
      @@ -573,7 +573,7 @@ if there are still any actions you can take.

      -aliases = ['wait', 'hold']
      +aliases = ['hold', 'wait']
      @@ -594,7 +594,7 @@ if there are still any actions you can take.

      -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 '}
      +search_index_entry = {'aliases': 'hold wait', 'category': 'combat', 'key': 'pass', 'no_prefix': ' ', '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 '}
      @@ -639,7 +639,7 @@ fight ends.

      -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 "}
      +search_index_entry = {'aliases': 'spare', 'category': 'combat', 'key': 'disengage', 'no_prefix': ' ', '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 "}
      @@ -683,7 +683,7 @@ rest if you’re not in a fight.

      -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 "}
      +search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'rest', 'no_prefix': ' ', '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 "}
      @@ -729,7 +729,7 @@ topics related to the game.

      -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 '}
      +search_index_entry = {'aliases': '?', 'category': 'general', 'key': 'help', 'no_prefix': ' ', '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 '}
      diff --git a/docs/1.0-dev/api/evennia.contrib.turnbattle.tb_equip.html b/docs/1.0-dev/api/evennia.contrib.turnbattle.tb_equip.html index 56d517b6c3..35229c7c6e 100644 --- a/docs/1.0-dev/api/evennia.contrib.turnbattle.tb_equip.html +++ b/docs/1.0-dev/api/evennia.contrib.turnbattle.tb_equip.html @@ -623,7 +623,7 @@ When it’s your turn, you can attack other characters.

      -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 "}
      +search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'fight', 'no_prefix': ' ', '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 "}
      @@ -667,7 +667,7 @@ a chance to hit, and if successful, will deal damage.

      -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 '}
      +search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'attack', 'no_prefix': ' ', '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 '}
      @@ -690,7 +690,7 @@ if there are still any actions you can take.

      -aliases = ['wait', 'hold']
      +aliases = ['hold', 'wait']
      @@ -711,7 +711,7 @@ if there are still any actions you can take.

      -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 '}
      +search_index_entry = {'aliases': 'hold wait', 'category': 'combat', 'key': 'pass', 'no_prefix': ' ', '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 '}
      @@ -756,7 +756,7 @@ fight ends.

      -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 "}
      +search_index_entry = {'aliases': 'spare', 'category': 'combat', 'key': 'disengage', 'no_prefix': ' ', '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 "}
      @@ -800,7 +800,7 @@ rest if you’re not in a fight.

      -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 "}
      +search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'rest', 'no_prefix': ' ', '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 "}
      @@ -846,7 +846,7 @@ topics related to the game.

      -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 '}
      +search_index_entry = {'aliases': '?', 'category': 'general', 'key': 'help', 'no_prefix': ' ', '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 '}
      @@ -894,7 +894,7 @@ currently wielding.

      -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 '}
      +search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'wield', 'no_prefix': ' ', '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 '}
      @@ -938,7 +938,7 @@ weapon you are currently wielding and become unarmed.

      -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 '}
      +search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'unwield', 'no_prefix': ' ', '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 '}
      @@ -983,7 +983,7 @@ command to remove any armor you are wearing.

      -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 '}
      +search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'don', 'no_prefix': ' ', '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 '}
      @@ -1028,7 +1028,7 @@ You can’t use this command in combat.

      -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 "}
      +search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'doff', 'no_prefix': ' ', '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 "}
      diff --git a/docs/1.0-dev/api/evennia.contrib.turnbattle.tb_items.html b/docs/1.0-dev/api/evennia.contrib.turnbattle.tb_items.html index 2837bd9284..bdf505b796 100644 --- a/docs/1.0-dev/api/evennia.contrib.turnbattle.tb_items.html +++ b/docs/1.0-dev/api/evennia.contrib.turnbattle.tb_items.html @@ -657,7 +657,7 @@ When it’s your turn, you can attack other characters.

      -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 "}
      +search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'fight', 'no_prefix': ' ', '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 "}
      @@ -701,7 +701,7 @@ a chance to hit, and if successful, will deal damage.

      -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 '}
      +search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'attack', 'no_prefix': ' ', '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 '}
      @@ -724,7 +724,7 @@ if there are still any actions you can take.

      -aliases = ['wait', 'hold']
      +aliases = ['hold', 'wait']
      @@ -745,7 +745,7 @@ if there are still any actions you can take.

      -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 '}
      +search_index_entry = {'aliases': 'hold wait', 'category': 'combat', 'key': 'pass', 'no_prefix': ' ', '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 '}
      @@ -790,7 +790,7 @@ fight ends.

      -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 "}
      +search_index_entry = {'aliases': 'spare', 'category': 'combat', 'key': 'disengage', 'no_prefix': ' ', '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 "}
      @@ -834,7 +834,7 @@ rest if you’re not in a fight.

      -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 "}
      +search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'rest', 'no_prefix': ' ', '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 "}
      @@ -880,7 +880,7 @@ topics related to the game.

      -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 '}
      +search_index_entry = {'aliases': '?', 'category': 'general', 'key': 'help', 'no_prefix': ' ', '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 '}
      @@ -925,7 +925,7 @@ to attack others, and as such can only be used in combat.

      -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 '}
      +search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'use', 'no_prefix': ' ', '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 '}
      diff --git a/docs/1.0-dev/api/evennia.contrib.turnbattle.tb_magic.html b/docs/1.0-dev/api/evennia.contrib.turnbattle.tb_magic.html index 145ce6a280..afbc7e8ce3 100644 --- a/docs/1.0-dev/api/evennia.contrib.turnbattle.tb_magic.html +++ b/docs/1.0-dev/api/evennia.contrib.turnbattle.tb_magic.html @@ -529,7 +529,7 @@ When it’s your turn, you can attack other characters.

      -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 "}
      +search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'fight', 'no_prefix': ' ', '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 "}
      @@ -573,7 +573,7 @@ a chance to hit, and if successful, will deal damage.

      -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 '}
      +search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'attack', 'no_prefix': ' ', '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 '}
      @@ -596,7 +596,7 @@ if there are still any actions you can take.

      -aliases = ['wait', 'hold']
      +aliases = ['hold', 'wait']
      @@ -617,7 +617,7 @@ if there are still any actions you can take.

      -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 '}
      +search_index_entry = {'aliases': 'hold wait', 'category': 'combat', 'key': 'pass', 'no_prefix': ' ', '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 '}
      @@ -662,7 +662,7 @@ fight ends.

      -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 "}
      +search_index_entry = {'aliases': 'spare', 'category': 'combat', 'key': 'disengage', 'no_prefix': ' ', '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 "}
      @@ -720,7 +720,7 @@ fight ends.

      -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 "}
      +search_index_entry = {'aliases': '', 'category': 'magic', 'key': 'learnspell', 'no_prefix': ' ', '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 "}
      @@ -772,7 +772,7 @@ function.

      -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 "}
      +search_index_entry = {'aliases': '', 'category': 'magic', 'key': 'cast', 'no_prefix': ' ', '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 "}
      @@ -816,7 +816,7 @@ only rest if you’re not in a fight.

      -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 "}
      +search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'rest', 'no_prefix': ' ', '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 "}
      @@ -860,7 +860,7 @@ other targets in combat.

      -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 '}
      +search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'status', 'no_prefix': ' ', '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 '}
      @@ -906,7 +906,7 @@ topics related to the game.

      -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 '}
      +search_index_entry = {'aliases': '?', 'category': 'general', 'key': 'help', 'no_prefix': ' ', '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 '}
      diff --git a/docs/1.0-dev/api/evennia.contrib.turnbattle.tb_range.html b/docs/1.0-dev/api/evennia.contrib.turnbattle.tb_range.html index d591e283e0..ef6eb70bcd 100644 --- a/docs/1.0-dev/api/evennia.contrib.turnbattle.tb_range.html +++ b/docs/1.0-dev/api/evennia.contrib.turnbattle.tb_range.html @@ -820,7 +820,7 @@ When it’s your turn, you can attack other characters.

      -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 "}
      +search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'fight', 'no_prefix': ' ', '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 "}
      @@ -866,7 +866,7 @@ you. Use the ‘approach’ command to get closer to a target.

      -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 "}
      +search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'attack', 'no_prefix': ' ', '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 "}
      @@ -913,7 +913,7 @@ nearby enemies.

      -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 "}
      +search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'shoot', 'no_prefix': ' ', '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 "}
      @@ -957,7 +957,7 @@ characters you are 0 spaces away from.

      -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 '}
      +search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'approach', 'no_prefix': ' ', '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 '}
      @@ -1000,7 +1000,7 @@ characters you are 0 spaces away from.

      -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 '}
      +search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'withdraw', 'no_prefix': ' ', '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 '}
      @@ -1023,7 +1023,7 @@ if there are still any actions you can take.

      -aliases = ['wait', 'hold']
      +aliases = ['hold', 'wait']
      @@ -1044,7 +1044,7 @@ if there are still any actions you can take.

      -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 '}
      +search_index_entry = {'aliases': 'hold wait', 'category': 'combat', 'key': 'pass', 'no_prefix': ' ', '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 '}
      @@ -1089,7 +1089,7 @@ fight ends.

      -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 "}
      +search_index_entry = {'aliases': 'spare', 'category': 'combat', 'key': 'disengage', 'no_prefix': ' ', '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 "}
      @@ -1133,7 +1133,7 @@ rest if you’re not in a fight.

      -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 "}
      +search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'rest', 'no_prefix': ' ', '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 "}
      @@ -1177,7 +1177,7 @@ other targets in combat.

      -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 '}
      +search_index_entry = {'aliases': '', 'category': 'combat', 'key': 'status', 'no_prefix': ' ', '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 '}
      @@ -1223,7 +1223,7 @@ topics related to the game.

      -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 '}
      +search_index_entry = {'aliases': '?', 'category': 'general', 'key': 'help', 'no_prefix': ' ', '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 '}
      diff --git a/docs/1.0-dev/api/evennia.contrib.tutorial_examples.red_button.html b/docs/1.0-dev/api/evennia.contrib.tutorial_examples.red_button.html index 8332f7903e..b5896c44d0 100644 --- a/docs/1.0-dev/api/evennia.contrib.tutorial_examples.red_button.html +++ b/docs/1.0-dev/api/evennia.contrib.tutorial_examples.red_button.html @@ -82,7 +82,7 @@ such as when closing the lid and un-blinding a character.

      -aliases = ['press button', 'push', 'press']
      +aliases = ['push', 'press', 'press button']
      @@ -111,7 +111,7 @@ check if the lid is open or closed.

      -search_index_entry = {'aliases': 'press button push press', 'category': 'general', 'key': 'push button', 'tags': '', 'text': '\n Push the red button (lid closed)\n\n Usage:\n push button\n\n '}
      +search_index_entry = {'aliases': 'push press press button', 'category': 'general', 'key': 'push button', 'no_prefix': ' ', 'tags': '', 'text': '\n Push the red button (lid closed)\n\n Usage:\n push button\n\n '}
      @@ -159,7 +159,7 @@ check if the lid is open or closed.

      -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 push the lid of the button away.\n\n "}
      +search_index_entry = {'aliases': 'nudge', 'category': 'general', 'key': 'nudge lid', 'no_prefix': ' ', '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 push the lid of the button away.\n\n "}
      @@ -181,7 +181,7 @@ check if the lid is open or closed.

      -aliases = ['break lid', 'smash', 'smash lid']
      +aliases = ['smash lid', 'break lid', 'smash']
      @@ -208,7 +208,7 @@ break.

      -search_index_entry = {'aliases': 'break lid smash smash lid', 'category': 'general', 'key': 'smash glass', 'tags': '', 'text': '\n Smash the protective glass.\n\n Usage:\n smash glass\n\n Try to smash the glass of the button.\n\n '}
      +search_index_entry = {'aliases': 'smash lid break lid smash', 'category': 'general', 'key': 'smash glass', 'no_prefix': ' ', 'tags': '', 'text': '\n Smash the protective glass.\n\n Usage:\n smash glass\n\n Try to smash the glass of the button.\n\n '}
      @@ -255,7 +255,7 @@ break.

      -search_index_entry = {'aliases': 'open button', 'category': 'general', 'key': 'open lid', 'tags': '', 'text': '\n open lid\n\n Usage:\n open lid\n\n '}
      +search_index_entry = {'aliases': 'open button', 'category': 'general', 'key': 'open lid', 'no_prefix': ' ', 'tags': '', 'text': '\n open lid\n\n Usage:\n open lid\n\n '}
      @@ -308,7 +308,7 @@ be mutually exclusive.

      -aliases = ['press button', 'push', 'press']
      +aliases = ['push', 'press', 'press button']
      @@ -337,7 +337,7 @@ set in self.parse())

      -search_index_entry = {'aliases': 'press button push press', 'category': 'general', 'key': 'push button', 'tags': '', 'text': '\n Push the red button\n\n Usage:\n push button\n\n '}
      +search_index_entry = {'aliases': 'push press press button', 'category': 'general', 'key': 'push button', 'no_prefix': ' ', 'tags': '', 'text': '\n Push the red button\n\n Usage:\n push button\n\n '}
      @@ -385,7 +385,7 @@ set in self.parse())

      -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 '}
      +search_index_entry = {'aliases': 'close', 'category': 'general', 'key': 'close lid', 'no_prefix': ' ', 'tags': '', 'text': '\n Close the lid\n\n Usage:\n close lid\n\n Closes the lid of the red button.\n '}
      @@ -435,7 +435,7 @@ be mutually exclusive.

      -aliases = ['examine', 'ex', 'feel', 'l', 'listen', 'get']
      +aliases = ['get', 'examine', 'ex', 'feel', 'listen', 'l']
      @@ -461,7 +461,7 @@ be mutually exclusive.

      -search_index_entry = {'aliases': 'examine ex feel l listen get', '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 "}
      +search_index_entry = {'aliases': 'get examine ex feel listen l', 'category': 'general', 'key': 'look', 'no_prefix': ' ', '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 "}
      @@ -509,7 +509,7 @@ CmdBlindLook command too if we wanted to keep things more compact.

      -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 '}
      +search_index_entry = {'aliases': 'h', 'category': 'general', 'key': 'help', 'no_prefix': ' ', 'tags': '', 'text': '\n Help function while in the blinded state\n\n Usage:\n help\n\n '}
      diff --git a/docs/1.0-dev/api/evennia.contrib.tutorial_world.mob.html b/docs/1.0-dev/api/evennia.contrib.tutorial_world.mob.html index b5f821f2ec..214c1033e1 100644 --- a/docs/1.0-dev/api/evennia.contrib.tutorial_world.mob.html +++ b/docs/1.0-dev/api/evennia.contrib.tutorial_world.mob.html @@ -93,7 +93,7 @@ to turn on/off the mob.”

      -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 "}
      +search_index_entry = {'aliases': 'moboff', 'category': 'general', 'key': 'mobon', 'no_prefix': ' ', '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 "}
      diff --git a/docs/1.0-dev/api/evennia.contrib.tutorial_world.objects.html b/docs/1.0-dev/api/evennia.contrib.tutorial_world.objects.html index 1078969c59..31e0743b19 100644 --- a/docs/1.0-dev/api/evennia.contrib.tutorial_world.objects.html +++ b/docs/1.0-dev/api/evennia.contrib.tutorial_world.objects.html @@ -139,7 +139,7 @@ Attribute “readable_text” on the object and displays that.

      -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 '}
      +search_index_entry = {'aliases': '', 'category': 'tutorialworld', 'key': 'read', 'no_prefix': ' ', 'tags': '', 'text': '\n Usage:\n read [obj]\n\n Read some text of a readable object.\n '}
      @@ -241,7 +241,7 @@ Attribute and add the readable cmdset.

      -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 '}
      +search_index_entry = {'aliases': '', 'category': 'tutorialworld', 'key': 'climb', 'no_prefix': ' ', 'tags': '', 'text': '\n Climb an object\n\n Usage:\n climb <object>\n\n This allows you to climb.\n '}
      @@ -391,7 +391,7 @@ to sit on a “lightable” object, we operate only on self.obj.

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

      -aliases = ['move', 'shiftroot', 'pull', 'push']
      +aliases = ['push', 'move', 'shiftroot', 'pull']
      @@ -531,7 +531,7 @@ yellow/green - horizontal roots

      -search_index_entry = {'aliases': 'move shiftroot pull push', '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 '}
      +search_index_entry = {'aliases': 'push move shiftroot pull', 'category': 'tutorialworld', 'key': 'shift', 'no_prefix': ' ', '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 '}
      @@ -574,7 +574,7 @@ yellow/green - horizontal roots

      -search_index_entry = {'aliases': 'button push button press button', 'category': 'tutorialworld', 'key': 'press', 'tags': '', 'text': '\n Presses a button.\n '}
      +search_index_entry = {'aliases': 'button push button press button', 'category': 'tutorialworld', 'key': 'press', 'no_prefix': ' ', 'tags': '', 'text': '\n Presses a button.\n '}
      @@ -718,7 +718,7 @@ parry - forgoes your attack but will make you harder to hit on next

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

      -search_index_entry = {'aliases': 'slash hit thrust stab defend chop bash parry kill pierce fight', '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 '}
      +search_index_entry = {'aliases': 'stab slash bash thrust kill hit parry defend chop fight pierce', 'category': 'tutorialworld', 'key': 'attack', 'no_prefix': ' ', '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 '}
      @@ -861,7 +861,7 @@ itself handle all messages.

      -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 '}
      +search_index_entry = {'aliases': '', 'category': 'tutorialworld', 'key': 'get weapon', 'no_prefix': ' ', 'tags': '', 'text': '\n Usage:\n get weapon\n\n This will try to obtain a weapon from the container.\n '}
      diff --git a/docs/1.0-dev/api/evennia.contrib.tutorial_world.rooms.html b/docs/1.0-dev/api/evennia.contrib.tutorial_world.rooms.html index d8196d4123..a88b07026c 100644 --- a/docs/1.0-dev/api/evennia.contrib.tutorial_world.rooms.html +++ b/docs/1.0-dev/api/evennia.contrib.tutorial_world.rooms.html @@ -92,7 +92,7 @@ called tutorial_info and display that.

      -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 '}
      +search_index_entry = {'aliases': 'tut', 'category': 'tutorialworld', 'key': 'tutorial', 'no_prefix': ' ', '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 '}
      @@ -150,7 +150,7 @@ the set_detail method and uses it.

      -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 '}
      +search_index_entry = {'aliases': '', 'category': 'tutorialworld', 'key': '@detail', 'no_prefix': '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 '}
      @@ -187,7 +187,7 @@ code except for adding in the details.

      -aliases = ['l', 'ls']
      +aliases = ['ls', 'l']
      @@ -202,7 +202,7 @@ code except for adding in the details.

      -search_index_entry = {'aliases': 'l ls', '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 '}
      +search_index_entry = {'aliases': 'ls l', 'category': 'tutorialworld', 'key': 'look', 'no_prefix': ' ', '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 '}
      @@ -243,7 +243,7 @@ to all the variables defined therein.

      -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 '}
      +search_index_entry = {'aliases': 'abort', 'category': 'general', 'key': 'give up', 'no_prefix': ' ', 'tags': '', 'text': '\n Give up the tutorial-world quest and return to Limbo, the start room of the\n server.\n\n '}
      @@ -453,7 +453,7 @@ set in self.parse())

      -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'intro', 'tags': '', 'text': '\n Start the Evennia intro wizard.\n\n Usage:\n intro\n\n '}
      +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'intro', 'no_prefix': ' ', 'tags': '', 'text': '\n Start the Evennia intro wizard.\n\n Usage:\n intro\n\n '}
      @@ -587,7 +587,7 @@ on the bridge, 0 - 4.

      -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 '}
      +search_index_entry = {'aliases': 'e', 'category': 'tutorialworld', 'key': 'east', 'no_prefix': ' ', '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 '}
      @@ -650,7 +650,7 @@ on the bridge, 0 - 4.

      -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 '}
      +search_index_entry = {'aliases': 'w', 'category': 'tutorialworld', 'key': 'west', 'no_prefix': ' ', '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 '}
      @@ -699,7 +699,7 @@ if they fall off the bridge.

      -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 '}
      +search_index_entry = {'aliases': 'l', 'category': 'tutorialworld', 'key': 'look', 'no_prefix': ' ', '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 '}
      @@ -742,7 +742,7 @@ if they fall off the bridge.

      -search_index_entry = {'aliases': 'h ?', 'category': 'tutorial world', 'key': 'help', 'tags': '', 'text': '\n Overwritten help command while on the bridge.\n '}
      +search_index_entry = {'aliases': 'h ?', 'category': 'tutorial world', 'key': 'help', 'no_prefix': ' ', 'tags': '', 'text': '\n Overwritten help command while on the bridge.\n '}
      @@ -868,7 +868,7 @@ to find something.

      -aliases = ['feel', 'l', 'fiddle', 'search', 'feel around']
      +aliases = ['fiddle', 'feel around', 'feel', 'search', 'l']
      @@ -896,7 +896,7 @@ random chance of eventually finding a light source.

      -search_index_entry = {'aliases': 'feel l fiddle search feel around', '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 '}
      +search_index_entry = {'aliases': 'fiddle feel around feel search l', 'category': 'tutorialworld', 'key': 'look', 'no_prefix': ' ', '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 '}
      @@ -939,7 +939,7 @@ random chance of eventually finding a light source.

      -search_index_entry = {'aliases': '', 'category': 'tutorialworld', 'key': 'help', 'tags': '', 'text': '\n Help command for the dark state.\n '}
      +search_index_entry = {'aliases': '', 'category': 'tutorialworld', 'key': 'help', 'no_prefix': ' ', 'tags': '', 'text': '\n Help command for the dark state.\n '}
      @@ -986,7 +986,7 @@ suggestions)

      -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 "}
      +search_index_entry = {'aliases': '', 'category': 'general', 'key': '__nomatch_command', 'no_prefix': ' ', '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 "}
      diff --git a/docs/1.0-dev/api/evennia.contrib.unixcommand.html b/docs/1.0-dev/api/evennia.contrib.unixcommand.html index 636a8a4691..22fd25b58a 100644 --- a/docs/1.0-dev/api/evennia.contrib.unixcommand.html +++ b/docs/1.0-dev/api/evennia.contrib.unixcommand.html @@ -323,7 +323,7 @@ use its add_argument method.

      -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 '}
      +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'command', 'no_prefix': ' ', '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 '}
      diff --git a/docs/1.0-dev/api/evennia.contrib.xyzgrid.commands.html b/docs/1.0-dev/api/evennia.contrib.xyzgrid.commands.html index 88a92629f9..e6adc69c2c 100644 --- a/docs/1.0-dev/api/evennia.contrib.xyzgrid.commands.html +++ b/docs/1.0-dev/api/evennia.contrib.xyzgrid.commands.html @@ -125,7 +125,7 @@ are given, the target is a location on the XYZGrid.

      -aliases = ['teleport']
      +aliases = ['@tel']
      @@ -135,7 +135,7 @@ are given, the target is a location on the XYZGrid.

      -key = 'tel'
      +key = '@teleport'
      @@ -145,7 +145,7 @@ are given, the target is a location on the XYZGrid.

      -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 tel/switch [<object> to||=] (X,Y[,Z])\n\n Examples:\n tel Limbo\n tel/quiet box = Limbo\n tel/tonone box\n tel (3, 3, the small cave)\n tel (4, 1) # on the same map\n tel/map Z|mapname\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 map - show coordinate map of given Zcoord/mapname.\n\n Teleports an object somewhere. If no object is given, you yourself are\n teleported to the target location. If (X,Y) or (X,Y,Z) coordinates\n are given, the target is a location on the XYZGrid.\n\n "}
      +search_index_entry = {'aliases': '@tel', 'category': 'building', 'key': '@teleport', 'no_prefix': 'teleport @tel', 'tags': '', 'text': "\n teleport object to another location\n\n Usage:\n tel/switch [<object> to||=] <target location>\n tel/switch [<object> to||=] (X,Y[,Z])\n\n Examples:\n tel Limbo\n tel/quiet box = Limbo\n tel/tonone box\n tel (3, 3, the small cave)\n tel (4, 1) # on the same map\n tel/map Z|mapname\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 map - show coordinate map of given Zcoord/mapname.\n\n Teleports an object somewhere. If no object is given, you yourself are\n teleported to the target location. If (X,Y) or (X,Y,Z) coordinates\n are given, the target is a location on the XYZGrid.\n\n "}
      @@ -189,7 +189,7 @@ the cases, see the module doc.

      -key = 'open'
      +key = '@open'
      @@ -199,7 +199,7 @@ the cases, see the module doc.

      -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;..][:typeclass] [,<return exit>[;alias;..][:typeclass]]] = <destination>\n open <new exit>[;alias;..][:typeclass] [,<return exit>[;alias;..][:typeclass]]] = (X,Y,Z)\n\n Handles the creation of exits. If a destination is given, the exit\n will point there. The destination can also be given as an (X,Y,Z) coordinate on the\n XYZGrid - this command is used to link non-grid rooms to the grid and vice-versa.\n\n The <return exit> argument sets up an exit at the destination leading back to the current room.\n Apart from (X,Y,Z) coordinate, destination name can be given both as a #dbref and a name, if\n that name is globally unique.\n\n Examples:\n open kitchen = Kitchen\n open north, south = Town Center\n open cave mouth;cave = (3, 4, the small cave)\n\n '}
      +search_index_entry = {'aliases': '', 'category': 'building', 'key': '@open', 'no_prefix': 'open ', 'tags': '', 'text': '\n open a new exit from the current room\n\n Usage:\n open <new exit>[;alias;..][:typeclass] [,<return exit>[;alias;..][:typeclass]]] = <destination>\n open <new exit>[;alias;..][:typeclass] [,<return exit>[;alias;..][:typeclass]]] = (X,Y,Z)\n\n Handles the creation of exits. If a destination is given, the exit\n will point there. The destination can also be given as an (X,Y,Z) coordinate on the\n XYZGrid - this command is used to link non-grid rooms to the grid and vice-versa.\n\n The <return exit> argument sets up an exit at the destination leading back to the current room.\n Apart from (X,Y,Z) coordinate, destination name can be given both as a #dbref and a name, if\n that name is globally unique.\n\n Examples:\n open kitchen = Kitchen\n open north, south = Town Center\n open cave mouth;cave = (3, 4, the small cave)\n\n '}
      @@ -263,7 +263,7 @@ can then automatically walk you there.

      -search_index_entry = {'aliases': 'path', 'category': 'general', 'key': 'goto', 'tags': '', 'text': "\n Go to a named location in this area via the shortest path.\n\n Usage:\n path <location> - find shortest path to target location (don't move)\n goto <location> - auto-move to target location, using shortest path\n path - show current target location and shortest path\n goto - abort current goto, otherwise show current path\n path clear - clear current path\n\n Finds the shortest route to a location in your current area and\n can then automatically walk you there.\n\n Builders can optionally specify a specific grid coordinate (X,Y) to go to.\n\n "}
      +search_index_entry = {'aliases': 'path', 'category': 'general', 'key': 'goto', 'no_prefix': ' ', 'tags': '', 'text': "\n Go to a named location in this area via the shortest path.\n\n Usage:\n path <location> - find shortest path to target location (don't move)\n goto <location> - auto-move to target location, using shortest path\n path - show current target location and shortest path\n goto - abort current goto, otherwise show current path\n path clear - clear current path\n\n Finds the shortest route to a location in your current area and\n can then automatically walk you there.\n\n Builders can optionally specify a specific grid coordinate (X,Y) to go to.\n\n "}
      @@ -312,7 +312,7 @@ map list

      -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'map', 'tags': '', 'text': '\n Show a map of an area\n\n Usage:\n map [Zcoord]\n map list\n\n This is a builder-command.\n\n '}
      +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'map', 'no_prefix': ' ', 'tags': '', 'text': '\n Show a map of an area\n\n Usage:\n map [Zcoord]\n map list\n\n This is a builder-command.\n\n '}
      diff --git a/docs/1.0-dev/api/evennia.objects.objects.html b/docs/1.0-dev/api/evennia.objects.objects.html index 2cf16258fd..80b38740c7 100644 --- a/docs/1.0-dev/api/evennia.objects.objects.html +++ b/docs/1.0-dev/api/evennia.objects.objects.html @@ -2034,7 +2034,7 @@ preceding space.

      -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 '}
      +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'command', 'no_prefix': ' ', 'tags': '', 'text': '\n This is a command that simply cause the caller to traverse\n the object it is attached to.\n\n '}
      diff --git a/docs/1.0-dev/api/evennia.server.profiling.dummyrunner.html b/docs/1.0-dev/api/evennia.server.profiling.dummyrunner.html index 26f0baa705..c2fc8ca5fd 100644 --- a/docs/1.0-dev/api/evennia.server.profiling.dummyrunner.html +++ b/docs/1.0-dev/api/evennia.server.profiling.dummyrunner.html @@ -115,7 +115,7 @@ set in self.parse())

      -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'dummyrunner_echo_response', 'tags': '', 'text': '\n Dummyrunner command measuring the round-about response time\n from sending to receiving a result.\n\n Usage:\n dummyrunner_echo_response <timestamp>\n\n Responds with\n dummyrunner_echo_response:<timestamp>,<current_time>\n\n The dummyrunner will send this and then compare the send time\n with the receive time on both ends.\n\n '}
      +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'dummyrunner_echo_response', 'no_prefix': ' ', 'tags': '', 'text': '\n Dummyrunner command measuring the round-about response time\n from sending to receiving a result.\n\n Usage:\n dummyrunner_echo_response <timestamp>\n\n Responds with\n dummyrunner_echo_response:<timestamp>,<current_time>\n\n The dummyrunner will send this and then compare the send time\n with the receive time on both ends.\n\n '}
      diff --git a/docs/1.0-dev/api/evennia.utils.eveditor.html b/docs/1.0-dev/api/evennia.utils.eveditor.html index 3ce51b81b4..3a221f1dec 100644 --- a/docs/1.0-dev/api/evennia.utils.eveditor.html +++ b/docs/1.0-dev/api/evennia.utils.eveditor.html @@ -121,7 +121,7 @@ command was given specifically as “no” or “n”.

      -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 '}
      +search_index_entry = {'aliases': '__noinput_command', 'category': 'general', 'key': '__nomatch_command', 'no_prefix': ' ', '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 '}
      @@ -220,7 +220,7 @@ command was given specifically as “no” or “n”.

      -search_index_entry = {'aliases': '', 'category': 'general', 'key': 'command', 'tags': '', 'text': '\n Base parent for editor commands\n '}
      +search_index_entry = {'aliases': '', 'category': 'general', 'key': 'command', 'no_prefix': ' ', 'tags': '', 'text': '\n Base parent for editor commands\n '}
      @@ -260,7 +260,7 @@ indentation.

      -search_index_entry = {'aliases': '__noinput_command', 'category': 'general', 'key': '__nomatch_command', 'tags': '', 'text': '\n No command match - Inputs line of text into buffer.\n\n '}
      +search_index_entry = {'aliases': '__noinput_command', 'category': 'general', 'key': '__nomatch_command', 'no_prefix': ' ', 'tags': '', 'text': '\n No command match - Inputs line of text into buffer.\n\n '}
      @@ -277,7 +277,7 @@ indentation.

      -aliases = [':A', ':<', ':dw', ':echo', ':>', ':', ':DD', ':fi', ':f', ':j', ':p', ':r', ':S', ':uu', ':I', ':h', ':dd', ':!', ':u', ':wq', ':=', ':i', ':fd', ':s', ':q', ':w', '::', ':x', ':UU', ':q!', ':y', ':::']
      +aliases = ['::', ':echo', ':fd', ':q', ':wq', ':h', ':u', ':S', ':i', ':f', ':dw', ':fi', ':r', ':=', ':::', ':p', ':y', ':I', ':A', ':s', ':dd', ':x', ':w', ':j', ':>', ':DD', ':UU', ':!', ':', ':q!', ':<', ':uu']
      @@ -305,7 +305,7 @@ efficient presentation.

      -search_index_entry = {'aliases': ':A :< :dw :echo :> : :DD :fi :f :j :p :r :S :uu :I :h :dd :! :u :wq := :i :fd :s :q :w :: :x :UU :q! :y :::', 'category': 'general', 'key': ':editor_command_group', 'tags': '', 'text': '\n Commands for the editor\n '}
      +search_index_entry = {'aliases': ':: :echo :fd :q :wq :h :u :S :i :f :dw :fi :r := ::: :p :y :I :A :s :dd :x :w :j :> :DD :UU :! : :q! :< :uu', 'category': 'general', 'key': ':editor_command_group', 'no_prefix': ' ', 'tags': '', 'text': '\n Commands for the editor\n '}
      diff --git a/docs/1.0-dev/api/evennia.utils.evmenu.html b/docs/1.0-dev/api/evennia.utils.evmenu.html index 3528a658cc..f80f34f99a 100644 --- a/docs/1.0-dev/api/evennia.utils.evmenu.html +++ b/docs/1.0-dev/api/evennia.utils.evmenu.html @@ -364,7 +364,7 @@ commands the caller can use.

      -search_index_entry = {'aliases': '__nomatch_command', 'category': 'menu', 'key': '__noinput_command', 'tags': '', 'text': '\n Menu options.\n '}
      +search_index_entry = {'aliases': '__nomatch_command', 'category': 'menu', 'key': '__noinput_command', 'no_prefix': ' ', 'tags': '', 'text': '\n Menu options.\n '}
      @@ -828,7 +828,7 @@ on the current node page.

      -search_index_entry = {'aliases': '__noinput_command', 'category': 'general', 'key': '__nomatch_command', 'tags': '', 'text': '\n Enter your data and press return.\n '}
      +search_index_entry = {'aliases': '__noinput_command', 'category': 'general', 'key': '__nomatch_command', 'no_prefix': ' ', 'tags': '', 'text': '\n Enter your data and press return.\n '}
      @@ -943,7 +943,7 @@ single question.

      -aliases = ['__nomatch_command', 'no', 'yes', 'y', 'abort', 'a', 'n']
      +aliases = ['abort', 'y', 'a', 'no', '__nomatch_command', 'n', 'yes']
      @@ -969,7 +969,7 @@ single question.

      -search_index_entry = {'aliases': '__nomatch_command no yes y abort a n', 'category': 'general', 'key': '__noinput_command', 'tags': '', 'text': '\n Handle a prompt for yes or no. Press [return] for the default choice.\n\n '}
      +search_index_entry = {'aliases': 'abort y a no __nomatch_command n yes', 'category': 'general', 'key': '__noinput_command', 'no_prefix': ' ', 'tags': '', 'text': '\n Handle a prompt for yes or no. Press [return] for the default choice.\n\n '}
      diff --git a/docs/1.0-dev/api/evennia.utils.evmore.html b/docs/1.0-dev/api/evennia.utils.evmore.html index cc08f7c96d..283c2a4fb9 100644 --- a/docs/1.0-dev/api/evennia.utils.evmore.html +++ b/docs/1.0-dev/api/evennia.utils.evmore.html @@ -78,7 +78,7 @@ the caller.msg() construct every time the page is updated.

      -aliases = ['top', 'end', 'quit', 'p', 'q', 'next', 't', 'abort', 'e', 'a', 'previous', 'n']
      +aliases = ['t', 'abort', 'previous', 'a', 'next', 'q', 'e', 'n', 'top', 'end', 'quit', 'p']
      @@ -104,7 +104,7 @@ the caller.msg() construct every time the page is updated.

      -search_index_entry = {'aliases': 'top end quit p q next t abort e a previous n', 'category': 'general', 'key': '__noinput_command', 'tags': '', 'text': '\n Manipulate the text paging. Catch no-input with aliases.\n '}
      +search_index_entry = {'aliases': 't abort previous a next q e n top end quit p', 'category': 'general', 'key': '__noinput_command', 'no_prefix': ' ', 'tags': '', 'text': '\n Manipulate the text paging. Catch no-input with aliases.\n '}
      @@ -142,7 +142,7 @@ the caller.msg() construct every time the page is updated.

      -search_index_entry = {'aliases': '', 'category': 'general', 'key': '__nomatch_command', 'tags': '', 'text': '\n Any non-more command will exit the pager.\n\n '}
      +search_index_entry = {'aliases': '', 'category': 'general', 'key': '__nomatch_command', 'no_prefix': ' ', 'tags': '', 'text': '\n Any non-more command will exit the pager.\n\n '}
      diff --git a/docs/1.0-dev/genindex.html b/docs/1.0-dev/genindex.html index aa1f19ea92..6ddcc5cba7 100644 --- a/docs/1.0-dev/genindex.html +++ b/docs/1.0-dev/genindex.html @@ -87,10 +87,6 @@
    • (evennia.comms.models.SubscriptionHandler 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)
    • @@ -367,10 +363,6 @@
    • (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.channels.ChannelMixin attribute)
    • + + -
    • connection() (evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage property) -
    • connection_time() (evennia.accounts.accounts.DefaultAccount property)
        @@ -4046,8 +3962,6 @@
    • 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)
    • @@ -4413,12 +4327,6 @@
    • decode_msdp() (evennia.server.portal.telnet_oob.TelnetOOB method)
    • -
    • deconstruct() (evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage method) - -
    • decrease_indent() (evennia.utils.eveditor.EvEditor method)
    • dedent() (in module evennia.utils.utils) @@ -4439,16 +4347,12 @@
    • (in module evennia.server.inputfuncs)
    • -
    • default_acl (evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage attribute) -
    • default_confirm (evennia.commands.default.building.CmdDestroy attribute)
    • -
    • default_content_type (evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage attribute) -
    • default_error_messages (evennia.utils.picklefield.PickledFormField attribute)
    • default_keys (evennia.contrib.traits.CounterTrait attribute) @@ -4493,10 +4397,10 @@
    • DefaultGuest (class in evennia.accounts.accounts)
    • -
      -
      • evennia.server.deprecations @@ -6043,6 +5930,8 @@
      • module
      +
      • evennia.server.evennia_launcher @@ -7053,11 +6942,9 @@
    • ExhaustedGenerator
    • -
    • exists() (evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage method) +
    • exists() (evennia.scripts.taskhandler.TaskHandler method)
    • @@ -7227,12 +7114,6 @@
    • (evennia.web.admin.tags.TagAdmin 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) -
    • FileHelpEntry (class in evennia.help.filehelp)
    • FileHelpStorageHandler (class in evennia.help.filehelp) @@ -7485,26 +7366,8 @@
    • (evennia.commands.default.building.CmdUnLink method)
    • (evennia.commands.default.building.CmdWipe method) -
    • -
    • (evennia.commands.default.comms.CmdAddCom method) -
    • -
    • (evennia.commands.default.comms.CmdAllCom method) -
    • -
    • (evennia.commands.default.comms.CmdCBoot method) -
    • -
    • (evennia.commands.default.comms.CmdCdesc method) -
    • -
    • (evennia.commands.default.comms.CmdCdestroy method)
    • (evennia.commands.default.comms.CmdChannel method) -
    • -
    • (evennia.commands.default.comms.CmdChannelCreate method) -
    • -
    • (evennia.commands.default.comms.CmdClock method) -
    • -
    • (evennia.commands.default.comms.CmdCWho method) -
    • -
    • (evennia.commands.default.comms.CmdDelCom method)
    • (evennia.commands.default.comms.CmdGrapevine2Chan method)
    • @@ -8132,10 +7995,6 @@
    • 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_browserstr() (evennia.server.portal.webclient_ajax.AjaxWebClient method)
    • @@ -8321,6 +8180,8 @@
    • get_fieldsets() (evennia.web.admin.objects.ObjectAdmin method)
    • +
      @@ -8875,26 +8726,8 @@
    • (evennia.commands.default.building.CmdWipe attribute)
    • (evennia.commands.default.building.ObjManipCommand attribute) -
    • -
    • (evennia.commands.default.comms.CmdAddCom attribute) -
    • -
    • (evennia.commands.default.comms.CmdAllCom attribute) -
    • -
    • (evennia.commands.default.comms.CmdCBoot attribute) -
    • -
    • (evennia.commands.default.comms.CmdCdesc attribute) -
    • -
    • (evennia.commands.default.comms.CmdCdestroy attribute)
    • (evennia.commands.default.comms.CmdChannel attribute) -
    • -
    • (evennia.commands.default.comms.CmdChannelCreate attribute) -
    • -
    • (evennia.commands.default.comms.CmdClock attribute) -
    • -
    • (evennia.commands.default.comms.CmdCWho attribute) -
    • -
    • (evennia.commands.default.comms.CmdDelCom attribute)
    • (evennia.commands.default.comms.CmdGrapevine2Chan attribute)
    • @@ -9895,26 +9728,8 @@
    • (evennia.commands.default.cmdset_session.SessionCmdSet attribute)
    • (evennia.commands.default.cmdset_unloggedin.UnloggedinCmdSet attribute) -
    • -
    • (evennia.commands.default.comms.CmdAddCom attribute) -
    • -
    • (evennia.commands.default.comms.CmdAllCom attribute) -
    • -
    • (evennia.commands.default.comms.CmdCBoot attribute) -
    • -
    • (evennia.commands.default.comms.CmdCdesc attribute) -
    • -
    • (evennia.commands.default.comms.CmdCdestroy attribute)
    • (evennia.commands.default.comms.CmdChannel attribute) -
    • -
    • (evennia.commands.default.comms.CmdChannelCreate attribute) -
    • -
    • (evennia.commands.default.comms.CmdClock attribute) -
    • -
    • (evennia.commands.default.comms.CmdCWho attribute) -
    • -
    • (evennia.commands.default.comms.CmdDelCom attribute)
    • (evennia.commands.default.comms.CmdGrapevine2Chan attribute)
    • @@ -10604,8 +10419,6 @@
    • list_tasks() (evennia.contrib.ingame_python.commands.CmdCallback method)
    • list_to_string() (in module evennia.utils.utils) -
    • -
    • listdir() (evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage method)
    • Listenable (class in evennia.contrib.evscaperoom.objects)
    • @@ -10644,8 +10457,6 @@
    • loads() (in module evennia.server.portal.amp)
    • LocalEvenniaTest (class in evennia.utils.test_resources) -
    • -
    • location (evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage attribute)
    • location() (evennia.objects.models.ObjectDB property)
    • @@ -10767,26 +10578,8 @@
    • (evennia.commands.default.building.CmdWipe attribute)
    • (evennia.commands.default.building.ObjManipCommand attribute) -
    • -
    • (evennia.commands.default.comms.CmdAddCom attribute) -
    • -
    • (evennia.commands.default.comms.CmdAllCom attribute) -
    • -
    • (evennia.commands.default.comms.CmdCBoot attribute) -
    • -
    • (evennia.commands.default.comms.CmdCdesc attribute) -
    • -
    • (evennia.commands.default.comms.CmdCdestroy attribute)
    • (evennia.commands.default.comms.CmdChannel attribute) -
    • -
    • (evennia.commands.default.comms.CmdChannelCreate attribute) -
    • -
    • (evennia.commands.default.comms.CmdClock attribute) -
    • -
    • (evennia.commands.default.comms.CmdCWho attribute) -
    • -
    • (evennia.commands.default.comms.CmdDelCom attribute)
    • (evennia.commands.default.comms.CmdGrapevine2Chan attribute)
    • @@ -11323,26 +11116,8 @@
    • (evennia.commands.default.building.CmdUnLink attribute)
    • (evennia.commands.default.building.CmdWipe attribute) -
    • -
    • (evennia.commands.default.comms.CmdAddCom attribute) -
    • -
    • (evennia.commands.default.comms.CmdAllCom attribute) -
    • -
    • (evennia.commands.default.comms.CmdCBoot attribute) -
    • -
    • (evennia.commands.default.comms.CmdCdesc attribute) -
    • -
    • (evennia.commands.default.comms.CmdCdestroy attribute)
    • (evennia.commands.default.comms.CmdChannel attribute) -
    • -
    • (evennia.commands.default.comms.CmdChannelCreate attribute) -
    • -
    • (evennia.commands.default.comms.CmdClock attribute) -
    • -
    • (evennia.commands.default.comms.CmdCWho attribute) -
    • -
    • (evennia.commands.default.comms.CmdDelCom attribute)
    • (evennia.commands.default.comms.CmdGrapevine2Chan attribute)
    • @@ -11665,8 +11440,6 @@
    • (evennia.server.webserver.Website method)
  • -
  • lookup_env() (in module evennia.contrib.awsstorage.aws_s3_cdn) -
  • lower() (evennia.utils.ansi.ANSIString method)
  • lstrip() (evennia.utils.ansi.ANSIString method) @@ -11795,8 +11568,6 @@
  • (evennia.contrib.traits.GaugeTrait property)
  • -
  • max_memory_size (evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage attribute) -
  • max_num_lines (evennia.web.website.views.channels.ChannelDetailView attribute)
  • max_pathfinding_length (evennia.contrib.xyzgrid.xymap.XYMap attribute) @@ -12106,8 +11877,6 @@
  • ModelAttributeBackend (class in evennia.typeclasses.attributes)
  • models (evennia.web.admin.comms.MsgForm.Meta attribute) -
  • -
  • modified_time() (evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage method)
  • module @@ -12180,8 +11949,6 @@
  • evennia.contrib
  • evennia.contrib.awsstorage -
  • -
  • evennia.contrib.awsstorage.aws_s3_cdn
  • evennia.contrib.awsstorage.tests
  • @@ -13185,8 +12952,6 @@
  • object() (evennia.scripts.models.ScriptDB property)
  • object_from_module() (in module evennia.utils.utils) -
  • -
  • object_parameters (evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage attribute)
  • object_search() (evennia.objects.manager.ObjectDBManager method)
  • @@ -14078,8 +13843,6 @@
  • (evennia.utils.logger.ServerLogObserver attribute)
  • -
  • preload_metadata (evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage attribute) -
  • print_debug_info() (evennia.utils.evmenu.EvMenu method)
  • print_help() (evennia.contrib.unixcommand.UnixCommandParser method) @@ -14207,8 +13970,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)
  • @@ -14260,10 +14021,10 @@
  • (evennia.typeclasses.attributes.ModelAttributeBackend method)
  • -
  • query_status() (in module evennia.server.evennia_launcher) -
    • +
    • query_status() (in module evennia.server.evennia_launcher) +
    • queryset (evennia.web.api.views.AccountDBViewSet attribute)
        @@ -14281,10 +14042,6 @@
    • queryset_maxsize() (in module evennia.utils.evmore) -
    • -
    • querystring_auth (evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage attribute) -
    • -
    • querystring_expire (evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage attribute)
    • QuietHTTP11ClientFactory (class in evennia.server.game_index_client.client)
    • @@ -14369,8 +14126,6 @@
    • 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)
    • @@ -14399,8 +14154,6 @@
    • Readable.DoesNotExist
    • Readable.MultipleObjectsReturned -
    • -
    • readline() (evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3StorageFile method)
    • readlines() (evennia.utils.logger.EvenniaLogFile method)
    • @@ -14465,8 +14218,6 @@
    • RedButton.DoesNotExist
    • RedButton.MultipleObjectsReturned -
    • -
    • reduced_redundancy (evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage attribute)
    • reformat() (evennia.utils.evtable.EvCell method) @@ -14481,8 +14232,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)
    • @@ -14886,17 +14635,11 @@

      S

      - + - + diff --git a/docs/1.0-dev/objects.inv b/docs/1.0-dev/objects.inv index 5bd5d99227..908692fd8d 100644 Binary files a/docs/1.0-dev/objects.inv and b/docs/1.0-dev/objects.inv differ diff --git a/docs/1.0-dev/py-modindex.html b/docs/1.0-dev/py-modindex.html index ee69bada30..22c62cfa6a 100644 --- a/docs/1.0-dev/py-modindex.html +++ b/docs/1.0-dev/py-modindex.html @@ -224,11 +224,6 @@ - - -
      -
    • test_cwho() (evennia.commands.default.tests.TestComms method) -
    • test_data_in() (evennia.server.portal.tests.TestWebSocket method)
    • test_data_out() (evennia.server.portal.tests.TestWebSocket method) @@ -17551,8 +17242,6 @@
    • test_override_init_argument() (evennia.contrib.awsstorage.tests.S3Boto3StorageTests method)
    • test_overwrite() (evennia.contrib.evscaperoom.tests.TestUtils method) -
    • -
    • test_page() (evennia.commands.default.tests.TestComms method)
    • test_parse_for_perspectives() (evennia.contrib.evscaperoom.tests.TestUtils method)
    • @@ -17776,8 +17465,6 @@
    • (evennia.contrib.xyzgrid.tests.TestMap9 method)
    • -
      -
    • update_attribute() (evennia.typeclasses.attributes.IAttributeBackend method) -
    • -
    • url_protocol (evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage attribute) -
    • Usable (class in evennia.contrib.evscaperoom.objects)
    • Usable.DoesNotExist @@ -19035,8 +18716,6 @@
    • Usable.MultipleObjectsReturned
    • use_item() (in module evennia.contrib.turnbattle.tb_items) -
    • -
    • use_ssl (evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage attribute)
    • user_change_password() (evennia.web.admin.accounts.AccountAdmin method)
    • @@ -19186,8 +18865,6 @@
    • (evennia.web.admin.tags.TagInline attribute)
    • -
    • verify (evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage attribute) -
    • verify_online_player() (in module evennia.contrib.fieldfill)
    • verify_or_create_SSL_key_and_cert() (in module evennia.server.portal.telnet_ssl) @@ -19297,11 +18974,11 @@
    • webclient() (in module evennia.web.webclient.views) -
    • -
    • webclient_options() (in module evennia.server.inputfuncs)
    • 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 -
          diff --git a/docs/1.0-dev/searchindex.js b/docs/1.0-dev/searchindex.js index 5dfdb43d9a..15af8d1b7d 100644 --- a/docs/1.0-dev/searchindex.js +++ b/docs/1.0-dev/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["Coding/Coding-Introduction","Coding/Coding-Overview","Coding/Continuous-Integration","Coding/Debugging","Coding/Flat-API","Coding/Profiling","Coding/Quirks","Coding/Setting-up-PyCharm","Coding/Unit-Testing","Coding/Updating-Your-Game","Coding/Using-Travis","Coding/Version-Control","Components/Accounts","Components/Attributes","Components/Batch-Code-Processor","Components/Batch-Command-Processor","Components/Batch-Processors","Components/Bootstrap-Components-and-Utilities","Components/Channels","Components/Coding-Utils","Components/Command-Sets","Components/Command-System","Components/Commands","Components/Communications","Components/Components-Overview","Components/Connection-Screen","Components/Default-Commands","Components/EvEditor","Components/EvMenu","Components/EvMore","Components/FuncParser","Components/Help-System","Components/Inputfuncs","Components/Locks","Components/MonitorHandler","Components/Msg","Components/Nicks","Components/Objects","Components/Outputfuncs","Components/Permissions","Components/Portal-And-Server","Components/Prototypes","Components/Scripts","Components/Server","Components/Sessions","Components/Signals","Components/Tags","Components/TickerHandler","Components/Typeclasses","Components/Web-API","Components/Web-Admin","Components/Webclient","Components/Webserver","Components/Website","Concepts/Async-Process","Concepts/Banning","Concepts/Bootstrap-&-Evennia","Concepts/Building-Permissions","Concepts/Change-Messages-Per-Receiver","Concepts/Clickable-Links","Concepts/Colors","Concepts/Concepts-Overview","Concepts/Custom-Protocols","Concepts/Guest-Logins","Concepts/Internationalization","Concepts/Messagepath","Concepts/Multisession-modes","Concepts/New-Models","Concepts/OOB","Concepts/Soft-Code","Concepts/Text-Encodings","Concepts/TextTags","Concepts/Using-MUX-as-a-Standard","Concepts/Web-Features","Concepts/Zones","Contribs/A-voice-operated-elevator-using-events","Contribs/Arxcode-installing-help","Contribs/Building-menus","Contribs/Contrib-Overview","Contribs/Crafting","Contribs/Dialogues-in-events","Contribs/Dynamic-In-Game-Map","Contribs/Static-In-Game-Map","Contribs/XYZGrid","Contributing","Contributing-Docs","Evennia-API","Evennia-Introduction","Glossary","How-To-Get-And-Give-Help","Howto/Add-a-wiki-on-your-website","Howto/Building-a-mech-tutorial","Howto/Coding-FAQ","Howto/Command-Cooldown","Howto/Command-Duration","Howto/Command-Prompt","Howto/Coordinates","Howto/Default-Exit-Errors","Howto/Evennia-for-Diku-Users","Howto/Evennia-for-MUSH-Users","Howto/Evennia-for-roleplaying-sessions","Howto/Gametime-Tutorial","Howto/Help-System-Tutorial","Howto/Howto-Overview","Howto/Manually-Configuring-Color","Howto/Mass-and-weight-for-objects","Howto/NPC-shop-Tutorial","Howto/Parsing-commands-tutorial","Howto/Starting/Part1/Adding-Commands","Howto/Starting/Part1/Building-Quickstart","Howto/Starting/Part1/Creating-Things","Howto/Starting/Part1/Django-queries","Howto/Starting/Part1/Evennia-Library-Overview","Howto/Starting/Part1/Gamedir-Overview","Howto/Starting/Part1/Learning-Typeclasses","Howto/Starting/Part1/More-on-Commands","Howto/Starting/Part1/Python-basic-introduction","Howto/Starting/Part1/Python-classes-and-objects","Howto/Starting/Part1/Searching-Things","Howto/Starting/Part1/Starting-Part1","Howto/Starting/Part1/Tutorial-World-Introduction","Howto/Starting/Part2/Game-Planning","Howto/Starting/Part2/Planning-Some-Useful-Contribs","Howto/Starting/Part2/Planning-The-Tutorial-Game","Howto/Starting/Part2/Planning-Where-Do-I-Begin","Howto/Starting/Part2/Starting-Part2","Howto/Starting/Part3/A-Sittable-Object","Howto/Starting/Part3/Implementing-a-game-rule-system","Howto/Starting/Part3/Starting-Part3","Howto/Starting/Part3/Turn-based-Combat-System","Howto/Starting/Part3/Tutorial-for-basic-MUSH-like-game","Howto/Starting/Part4/Starting-Part4","Howto/Starting/Part5/Add-a-simple-new-web-page","Howto/Starting/Part5/Starting-Part5","Howto/Starting/Part5/Web-Tutorial","Howto/Tutorial-Aggressive-NPCs","Howto/Tutorial-NPCs-listening","Howto/Tutorial-Tweeting-Game-Stats","Howto/Tutorial-Vehicles","Howto/Understanding-Color-Tags","Howto/Weather-Tutorial","Howto/Web-Character-Generation","Howto/Web-Character-View-Tutorial","Licensing","Links","Setup/Apache-Config","Setup/Choosing-An-SQL-Server","Setup/Client-Support-Grid","Setup/Evennia-Game-Index","Setup/Extended-Installation","Setup/Grapevine","Setup/HAProxy-Config","Setup/How-to-connect-Evennia-to-Twitter","Setup/IRC","Setup/Installing-on-Android","Setup/Online-Setup","Setup/RSS","Setup/Running-Evennia-in-Docker","Setup/Security","Setup/Server-Conf","Setup/Settings-File","Setup/Setup-Overview","Setup/Setup-Quickstart","Setup/Start-Stop-Reload","Unimplemented","api/evennia","api/evennia-api","api/evennia.accounts","api/evennia.accounts.accounts","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.comms","api/evennia.comms.managers","api/evennia.comms.models","api/evennia.contrib","api/evennia.contrib.awsstorage","api/evennia.contrib.awsstorage.aws_s3_cdn","api/evennia.contrib.awsstorage.tests","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.crafting","api/evennia.contrib.crafting.crafting","api/evennia.contrib.crafting.example_recipes","api/evennia.contrib.crafting.tests","api/evennia.contrib.custom_gametime","api/evennia.contrib.dice","api/evennia.contrib.email_login","api/evennia.contrib.evscaperoom","api/evennia.contrib.evscaperoom.commands","api/evennia.contrib.evscaperoom.menu","api/evennia.contrib.evscaperoom.objects","api/evennia.contrib.evscaperoom.room","api/evennia.contrib.evscaperoom.scripts","api/evennia.contrib.evscaperoom.state","api/evennia.contrib.evscaperoom.tests","api/evennia.contrib.evscaperoom.utils","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.test_traits","api/evennia.contrib.traits","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.example_batch_code","api/evennia.contrib.tutorial_examples.mirror","api/evennia.contrib.tutorial_examples.red_button","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.contrib.xyzgrid","api/evennia.contrib.xyzgrid.commands","api/evennia.contrib.xyzgrid.example","api/evennia.contrib.xyzgrid.launchcmd","api/evennia.contrib.xyzgrid.prototypes","api/evennia.contrib.xyzgrid.tests","api/evennia.contrib.xyzgrid.utils","api/evennia.contrib.xyzgrid.xymap","api/evennia.contrib.xyzgrid.xymap_legend","api/evennia.contrib.xyzgrid.xyzgrid","api/evennia.contrib.xyzgrid.xyzroom","api/evennia.help","api/evennia.help.filehelp","api/evennia.help.manager","api/evennia.help.models","api/evennia.help.utils","api/evennia.locks","api/evennia.locks.lockfuncs","api/evennia.locks.lockhandler","api/evennia.objects","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.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.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.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.funcparser","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.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.utils.verb_conjugation","api/evennia.utils.verb_conjugation.conjugate","api/evennia.utils.verb_conjugation.pronouns","api/evennia.utils.verb_conjugation.tests","api/evennia.web","api/evennia.web.admin","api/evennia.web.admin.accounts","api/evennia.web.admin.attributes","api/evennia.web.admin.comms","api/evennia.web.admin.frontpage","api/evennia.web.admin.help","api/evennia.web.admin.objects","api/evennia.web.admin.scripts","api/evennia.web.admin.server","api/evennia.web.admin.tags","api/evennia.web.admin.urls","api/evennia.web.admin.utils","api/evennia.web.api","api/evennia.web.api.filters","api/evennia.web.api.permissions","api/evennia.web.api.root","api/evennia.web.api.serializers","api/evennia.web.api.tests","api/evennia.web.api.urls","api/evennia.web.api.views","api/evennia.web.templatetags","api/evennia.web.templatetags.addclass","api/evennia.web.urls","api/evennia.web.utils","api/evennia.web.utils.adminsite","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.tests","api/evennia.web.website.urls","api/evennia.web.website.views","api/evennia.web.website.views.accounts","api/evennia.web.website.views.channels","api/evennia.web.website.views.characters","api/evennia.web.website.views.errors","api/evennia.web.website.views.help","api/evennia.web.website.views.index","api/evennia.web.website.views.mixins","api/evennia.web.website.views.objects","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:["Coding/Coding-Introduction.md","Coding/Coding-Overview.md","Coding/Continuous-Integration.md","Coding/Debugging.md","Coding/Flat-API.md","Coding/Profiling.md","Coding/Quirks.md","Coding/Setting-up-PyCharm.md","Coding/Unit-Testing.md","Coding/Updating-Your-Game.md","Coding/Using-Travis.md","Coding/Version-Control.md","Components/Accounts.md","Components/Attributes.md","Components/Batch-Code-Processor.md","Components/Batch-Command-Processor.md","Components/Batch-Processors.md","Components/Bootstrap-Components-and-Utilities.md","Components/Channels.md","Components/Coding-Utils.md","Components/Command-Sets.md","Components/Command-System.md","Components/Commands.md","Components/Communications.md","Components/Components-Overview.md","Components/Connection-Screen.md","Components/Default-Commands.md","Components/EvEditor.md","Components/EvMenu.md","Components/EvMore.md","Components/FuncParser.md","Components/Help-System.md","Components/Inputfuncs.md","Components/Locks.md","Components/MonitorHandler.md","Components/Msg.md","Components/Nicks.md","Components/Objects.md","Components/Outputfuncs.md","Components/Permissions.md","Components/Portal-And-Server.md","Components/Prototypes.md","Components/Scripts.md","Components/Server.md","Components/Sessions.md","Components/Signals.md","Components/Tags.md","Components/TickerHandler.md","Components/Typeclasses.md","Components/Web-API.md","Components/Web-Admin.md","Components/Webclient.md","Components/Webserver.md","Components/Website.md","Concepts/Async-Process.md","Concepts/Banning.md","Concepts/Bootstrap-&-Evennia.md","Concepts/Building-Permissions.md","Concepts/Change-Messages-Per-Receiver.md","Concepts/Clickable-Links.md","Concepts/Colors.md","Concepts/Concepts-Overview.md","Concepts/Custom-Protocols.md","Concepts/Guest-Logins.md","Concepts/Internationalization.md","Concepts/Messagepath.md","Concepts/Multisession-modes.md","Concepts/New-Models.md","Concepts/OOB.md","Concepts/Soft-Code.md","Concepts/Text-Encodings.md","Concepts/TextTags.md","Concepts/Using-MUX-as-a-Standard.md","Concepts/Web-Features.md","Concepts/Zones.md","Contribs/A-voice-operated-elevator-using-events.md","Contribs/Arxcode-installing-help.md","Contribs/Building-menus.md","Contribs/Contrib-Overview.md","Contribs/Crafting.md","Contribs/Dialogues-in-events.md","Contribs/Dynamic-In-Game-Map.md","Contribs/Static-In-Game-Map.md","Contribs/XYZGrid.md","Contributing.md","Contributing-Docs.md","Evennia-API.md","Evennia-Introduction.md","Glossary.md","How-To-Get-And-Give-Help.md","Howto/Add-a-wiki-on-your-website.md","Howto/Building-a-mech-tutorial.md","Howto/Coding-FAQ.md","Howto/Command-Cooldown.md","Howto/Command-Duration.md","Howto/Command-Prompt.md","Howto/Coordinates.md","Howto/Default-Exit-Errors.md","Howto/Evennia-for-Diku-Users.md","Howto/Evennia-for-MUSH-Users.md","Howto/Evennia-for-roleplaying-sessions.md","Howto/Gametime-Tutorial.md","Howto/Help-System-Tutorial.md","Howto/Howto-Overview.md","Howto/Manually-Configuring-Color.md","Howto/Mass-and-weight-for-objects.md","Howto/NPC-shop-Tutorial.md","Howto/Parsing-commands-tutorial.md","Howto/Starting/Part1/Adding-Commands.md","Howto/Starting/Part1/Building-Quickstart.md","Howto/Starting/Part1/Creating-Things.md","Howto/Starting/Part1/Django-queries.md","Howto/Starting/Part1/Evennia-Library-Overview.md","Howto/Starting/Part1/Gamedir-Overview.md","Howto/Starting/Part1/Learning-Typeclasses.md","Howto/Starting/Part1/More-on-Commands.md","Howto/Starting/Part1/Python-basic-introduction.md","Howto/Starting/Part1/Python-classes-and-objects.md","Howto/Starting/Part1/Searching-Things.md","Howto/Starting/Part1/Starting-Part1.md","Howto/Starting/Part1/Tutorial-World-Introduction.md","Howto/Starting/Part2/Game-Planning.md","Howto/Starting/Part2/Planning-Some-Useful-Contribs.md","Howto/Starting/Part2/Planning-The-Tutorial-Game.md","Howto/Starting/Part2/Planning-Where-Do-I-Begin.md","Howto/Starting/Part2/Starting-Part2.md","Howto/Starting/Part3/A-Sittable-Object.md","Howto/Starting/Part3/Implementing-a-game-rule-system.md","Howto/Starting/Part3/Starting-Part3.md","Howto/Starting/Part3/Turn-based-Combat-System.md","Howto/Starting/Part3/Tutorial-for-basic-MUSH-like-game.md","Howto/Starting/Part4/Starting-Part4.md","Howto/Starting/Part5/Add-a-simple-new-web-page.md","Howto/Starting/Part5/Starting-Part5.md","Howto/Starting/Part5/Web-Tutorial.md","Howto/Tutorial-Aggressive-NPCs.md","Howto/Tutorial-NPCs-listening.md","Howto/Tutorial-Tweeting-Game-Stats.md","Howto/Tutorial-Vehicles.md","Howto/Understanding-Color-Tags.md","Howto/Weather-Tutorial.md","Howto/Web-Character-Generation.md","Howto/Web-Character-View-Tutorial.md","Licensing.md","Links.md","Setup/Apache-Config.md","Setup/Choosing-An-SQL-Server.md","Setup/Client-Support-Grid.md","Setup/Evennia-Game-Index.md","Setup/Extended-Installation.md","Setup/Grapevine.md","Setup/HAProxy-Config.md","Setup/How-to-connect-Evennia-to-Twitter.md","Setup/IRC.md","Setup/Installing-on-Android.md","Setup/Online-Setup.md","Setup/RSS.md","Setup/Running-Evennia-in-Docker.md","Setup/Security.md","Setup/Server-Conf.md","Setup/Settings-File.md","Setup/Setup-Overview.md","Setup/Setup-Quickstart.md","Setup/Start-Stop-Reload.md","Unimplemented.md","api/evennia.md","api/evennia-api.md","api/evennia.accounts.md","api/evennia.accounts.accounts.md","api/evennia.accounts.bots.md","api/evennia.accounts.manager.md","api/evennia.accounts.models.md","api/evennia.commands.md","api/evennia.commands.cmdhandler.md","api/evennia.commands.cmdparser.md","api/evennia.commands.cmdset.md","api/evennia.commands.cmdsethandler.md","api/evennia.commands.command.md","api/evennia.commands.default.md","api/evennia.commands.default.account.md","api/evennia.commands.default.admin.md","api/evennia.commands.default.batchprocess.md","api/evennia.commands.default.building.md","api/evennia.commands.default.cmdset_account.md","api/evennia.commands.default.cmdset_character.md","api/evennia.commands.default.cmdset_session.md","api/evennia.commands.default.cmdset_unloggedin.md","api/evennia.commands.default.comms.md","api/evennia.commands.default.general.md","api/evennia.commands.default.help.md","api/evennia.commands.default.muxcommand.md","api/evennia.commands.default.syscommands.md","api/evennia.commands.default.system.md","api/evennia.commands.default.tests.md","api/evennia.commands.default.unloggedin.md","api/evennia.comms.md","api/evennia.comms.comms.md","api/evennia.comms.managers.md","api/evennia.comms.models.md","api/evennia.contrib.md","api/evennia.contrib.awsstorage.md","api/evennia.contrib.awsstorage.aws_s3_cdn.md","api/evennia.contrib.awsstorage.tests.md","api/evennia.contrib.barter.md","api/evennia.contrib.building_menu.md","api/evennia.contrib.chargen.md","api/evennia.contrib.clothing.md","api/evennia.contrib.color_markups.md","api/evennia.contrib.crafting.md","api/evennia.contrib.crafting.crafting.md","api/evennia.contrib.crafting.example_recipes.md","api/evennia.contrib.crafting.tests.md","api/evennia.contrib.custom_gametime.md","api/evennia.contrib.dice.md","api/evennia.contrib.email_login.md","api/evennia.contrib.evscaperoom.md","api/evennia.contrib.evscaperoom.commands.md","api/evennia.contrib.evscaperoom.menu.md","api/evennia.contrib.evscaperoom.objects.md","api/evennia.contrib.evscaperoom.room.md","api/evennia.contrib.evscaperoom.scripts.md","api/evennia.contrib.evscaperoom.state.md","api/evennia.contrib.evscaperoom.tests.md","api/evennia.contrib.evscaperoom.utils.md","api/evennia.contrib.extended_room.md","api/evennia.contrib.fieldfill.md","api/evennia.contrib.gendersub.md","api/evennia.contrib.health_bar.md","api/evennia.contrib.ingame_python.md","api/evennia.contrib.ingame_python.callbackhandler.md","api/evennia.contrib.ingame_python.commands.md","api/evennia.contrib.ingame_python.eventfuncs.md","api/evennia.contrib.ingame_python.scripts.md","api/evennia.contrib.ingame_python.tests.md","api/evennia.contrib.ingame_python.typeclasses.md","api/evennia.contrib.ingame_python.utils.md","api/evennia.contrib.mail.md","api/evennia.contrib.mapbuilder.md","api/evennia.contrib.menu_login.md","api/evennia.contrib.multidescer.md","api/evennia.contrib.puzzles.md","api/evennia.contrib.random_string_generator.md","api/evennia.contrib.rplanguage.md","api/evennia.contrib.rpsystem.md","api/evennia.contrib.security.md","api/evennia.contrib.security.auditing.md","api/evennia.contrib.security.auditing.outputs.md","api/evennia.contrib.security.auditing.server.md","api/evennia.contrib.security.auditing.tests.md","api/evennia.contrib.simpledoor.md","api/evennia.contrib.slow_exit.md","api/evennia.contrib.talking_npc.md","api/evennia.contrib.test_traits.md","api/evennia.contrib.traits.md","api/evennia.contrib.tree_select.md","api/evennia.contrib.turnbattle.md","api/evennia.contrib.turnbattle.tb_basic.md","api/evennia.contrib.turnbattle.tb_equip.md","api/evennia.contrib.turnbattle.tb_items.md","api/evennia.contrib.turnbattle.tb_magic.md","api/evennia.contrib.turnbattle.tb_range.md","api/evennia.contrib.tutorial_examples.md","api/evennia.contrib.tutorial_examples.bodyfunctions.md","api/evennia.contrib.tutorial_examples.example_batch_code.md","api/evennia.contrib.tutorial_examples.mirror.md","api/evennia.contrib.tutorial_examples.red_button.md","api/evennia.contrib.tutorial_examples.tests.md","api/evennia.contrib.tutorial_world.md","api/evennia.contrib.tutorial_world.intro_menu.md","api/evennia.contrib.tutorial_world.mob.md","api/evennia.contrib.tutorial_world.objects.md","api/evennia.contrib.tutorial_world.rooms.md","api/evennia.contrib.unixcommand.md","api/evennia.contrib.wilderness.md","api/evennia.contrib.xyzgrid.md","api/evennia.contrib.xyzgrid.commands.md","api/evennia.contrib.xyzgrid.example.md","api/evennia.contrib.xyzgrid.launchcmd.md","api/evennia.contrib.xyzgrid.prototypes.md","api/evennia.contrib.xyzgrid.tests.md","api/evennia.contrib.xyzgrid.utils.md","api/evennia.contrib.xyzgrid.xymap.md","api/evennia.contrib.xyzgrid.xymap_legend.md","api/evennia.contrib.xyzgrid.xyzgrid.md","api/evennia.contrib.xyzgrid.xyzroom.md","api/evennia.help.md","api/evennia.help.filehelp.md","api/evennia.help.manager.md","api/evennia.help.models.md","api/evennia.help.utils.md","api/evennia.locks.md","api/evennia.locks.lockfuncs.md","api/evennia.locks.lockhandler.md","api/evennia.objects.md","api/evennia.objects.manager.md","api/evennia.objects.models.md","api/evennia.objects.objects.md","api/evennia.prototypes.md","api/evennia.prototypes.menus.md","api/evennia.prototypes.protfuncs.md","api/evennia.prototypes.prototypes.md","api/evennia.prototypes.spawner.md","api/evennia.scripts.md","api/evennia.scripts.manager.md","api/evennia.scripts.models.md","api/evennia.scripts.monitorhandler.md","api/evennia.scripts.scripthandler.md","api/evennia.scripts.scripts.md","api/evennia.scripts.taskhandler.md","api/evennia.scripts.tickerhandler.md","api/evennia.server.md","api/evennia.server.amp_client.md","api/evennia.server.connection_wizard.md","api/evennia.server.deprecations.md","api/evennia.server.evennia_launcher.md","api/evennia.server.game_index_client.md","api/evennia.server.game_index_client.client.md","api/evennia.server.game_index_client.service.md","api/evennia.server.initial_setup.md","api/evennia.server.inputfuncs.md","api/evennia.server.manager.md","api/evennia.server.models.md","api/evennia.server.portal.md","api/evennia.server.portal.amp.md","api/evennia.server.portal.amp_server.md","api/evennia.server.portal.grapevine.md","api/evennia.server.portal.irc.md","api/evennia.server.portal.mccp.md","api/evennia.server.portal.mssp.md","api/evennia.server.portal.mxp.md","api/evennia.server.portal.naws.md","api/evennia.server.portal.portal.md","api/evennia.server.portal.portalsessionhandler.md","api/evennia.server.portal.rss.md","api/evennia.server.portal.ssh.md","api/evennia.server.portal.ssl.md","api/evennia.server.portal.suppress_ga.md","api/evennia.server.portal.telnet.md","api/evennia.server.portal.telnet_oob.md","api/evennia.server.portal.telnet_ssl.md","api/evennia.server.portal.tests.md","api/evennia.server.portal.ttype.md","api/evennia.server.portal.webclient.md","api/evennia.server.portal.webclient_ajax.md","api/evennia.server.profiling.md","api/evennia.server.profiling.dummyrunner.md","api/evennia.server.profiling.dummyrunner_settings.md","api/evennia.server.profiling.memplot.md","api/evennia.server.profiling.settings_mixin.md","api/evennia.server.profiling.test_queries.md","api/evennia.server.profiling.tests.md","api/evennia.server.profiling.timetrace.md","api/evennia.server.server.md","api/evennia.server.serversession.md","api/evennia.server.session.md","api/evennia.server.sessionhandler.md","api/evennia.server.signals.md","api/evennia.server.throttle.md","api/evennia.server.validators.md","api/evennia.server.webserver.md","api/evennia.settings_default.md","api/evennia.typeclasses.md","api/evennia.typeclasses.attributes.md","api/evennia.typeclasses.managers.md","api/evennia.typeclasses.models.md","api/evennia.typeclasses.tags.md","api/evennia.utils.md","api/evennia.utils.ansi.md","api/evennia.utils.batchprocessors.md","api/evennia.utils.containers.md","api/evennia.utils.create.md","api/evennia.utils.dbserialize.md","api/evennia.utils.eveditor.md","api/evennia.utils.evform.md","api/evennia.utils.evmenu.md","api/evennia.utils.evmore.md","api/evennia.utils.evtable.md","api/evennia.utils.funcparser.md","api/evennia.utils.gametime.md","api/evennia.utils.idmapper.md","api/evennia.utils.idmapper.manager.md","api/evennia.utils.idmapper.models.md","api/evennia.utils.idmapper.tests.md","api/evennia.utils.logger.md","api/evennia.utils.optionclasses.md","api/evennia.utils.optionhandler.md","api/evennia.utils.picklefield.md","api/evennia.utils.search.md","api/evennia.utils.test_resources.md","api/evennia.utils.text2html.md","api/evennia.utils.utils.md","api/evennia.utils.validatorfuncs.md","api/evennia.utils.verb_conjugation.md","api/evennia.utils.verb_conjugation.conjugate.md","api/evennia.utils.verb_conjugation.pronouns.md","api/evennia.utils.verb_conjugation.tests.md","api/evennia.web.md","api/evennia.web.admin.md","api/evennia.web.admin.accounts.md","api/evennia.web.admin.attributes.md","api/evennia.web.admin.comms.md","api/evennia.web.admin.frontpage.md","api/evennia.web.admin.help.md","api/evennia.web.admin.objects.md","api/evennia.web.admin.scripts.md","api/evennia.web.admin.server.md","api/evennia.web.admin.tags.md","api/evennia.web.admin.urls.md","api/evennia.web.admin.utils.md","api/evennia.web.api.md","api/evennia.web.api.filters.md","api/evennia.web.api.permissions.md","api/evennia.web.api.root.md","api/evennia.web.api.serializers.md","api/evennia.web.api.tests.md","api/evennia.web.api.urls.md","api/evennia.web.api.views.md","api/evennia.web.templatetags.md","api/evennia.web.templatetags.addclass.md","api/evennia.web.urls.md","api/evennia.web.utils.md","api/evennia.web.utils.adminsite.md","api/evennia.web.utils.backends.md","api/evennia.web.utils.general_context.md","api/evennia.web.utils.middleware.md","api/evennia.web.utils.tests.md","api/evennia.web.webclient.md","api/evennia.web.webclient.urls.md","api/evennia.web.webclient.views.md","api/evennia.web.website.md","api/evennia.web.website.forms.md","api/evennia.web.website.tests.md","api/evennia.web.website.urls.md","api/evennia.web.website.views.md","api/evennia.web.website.views.accounts.md","api/evennia.web.website.views.channels.md","api/evennia.web.website.views.characters.md","api/evennia.web.website.views.errors.md","api/evennia.web.website.views.help.md","api/evennia.web.website.views.index.md","api/evennia.web.website.views.mixins.md","api/evennia.web.website.views.objects.md","index.md","toc.md"],objects:{"":{evennia:[165,0,0,"-"]},"evennia.accounts":{accounts:[168,0,0,"-"],bots:[169,0,0,"-"],manager:[170,0,0,"-"],models:[171,0,0,"-"]},"evennia.accounts.accounts":{DefaultAccount:[168,1,1,""],DefaultGuest:[168,1,1,""]},"evennia.accounts.accounts.DefaultAccount":{"delete":[168,3,1,""],DoesNotExist:[168,2,1,""],MultipleObjectsReturned:[168,2,1,""],access:[168,3,1,""],at_access:[168,3,1,""],at_account_creation:[168,3,1,""],at_cmdset_get:[168,3,1,""],at_disconnect:[168,3,1,""],at_failed_login:[168,3,1,""],at_first_login:[168,3,1,""],at_first_save:[168,3,1,""],at_init:[168,3,1,""],at_look:[168,3,1,""],at_msg_receive:[168,3,1,""],at_msg_send:[168,3,1,""],at_password_change:[168,3,1,""],at_post_channel_msg:[168,3,1,""],at_post_disconnect:[168,3,1,""],at_post_login:[168,3,1,""],at_pre_channel_msg:[168,3,1,""],at_pre_login:[168,3,1,""],at_server_reload:[168,3,1,""],at_server_shutdown:[168,3,1,""],authenticate:[168,3,1,""],basetype_setup:[168,3,1,""],channel_msg:[168,3,1,""],character:[168,3,1,""],characters:[168,3,1,""],cmdset:[168,4,1,""],connection_time:[168,3,1,""],create:[168,3,1,""],create_character:[168,3,1,""],disconnect_session_from_account:[168,3,1,""],execute_cmd:[168,3,1,""],get_all_puppets:[168,3,1,""],get_display_name:[168,3,1,""],get_puppet:[168,3,1,""],get_username_validators:[168,3,1,""],idle_time:[168,3,1,""],is_banned:[168,3,1,""],msg:[168,3,1,""],nicks:[168,4,1,""],normalize_username:[168,3,1,""],objects:[168,4,1,""],options:[168,4,1,""],path:[168,4,1,""],puppet:[168,3,1,""],puppet_object:[168,3,1,""],scripts:[168,4,1,""],search:[168,3,1,""],sessions:[168,4,1,""],set_password:[168,3,1,""],typename:[168,4,1,""],unpuppet_all:[168,3,1,""],unpuppet_object:[168,3,1,""],validate_password:[168,3,1,""],validate_username:[168,3,1,""]},"evennia.accounts.accounts.DefaultGuest":{DoesNotExist:[168,2,1,""],MultipleObjectsReturned:[168,2,1,""],at_post_disconnect:[168,3,1,""],at_post_login:[168,3,1,""],at_server_shutdown:[168,3,1,""],authenticate:[168,3,1,""],create:[168,3,1,""],path:[168,4,1,""],typename:[168,4,1,""]},"evennia.accounts.bots":{Bot:[169,1,1,""],BotStarter:[169,1,1,""],GrapevineBot:[169,1,1,""],IRCBot:[169,1,1,""],RSSBot:[169,1,1,""]},"evennia.accounts.bots.Bot":{DoesNotExist:[169,2,1,""],MultipleObjectsReturned:[169,2,1,""],at_server_shutdown:[169,3,1,""],basetype_setup:[169,3,1,""],execute_cmd:[169,3,1,""],msg:[169,3,1,""],path:[169,4,1,""],start:[169,3,1,""],typename:[169,4,1,""]},"evennia.accounts.bots.BotStarter":{DoesNotExist:[169,2,1,""],MultipleObjectsReturned:[169,2,1,""],at_repeat:[169,3,1,""],at_script_creation:[169,3,1,""],at_server_reload:[169,3,1,""],at_server_shutdown:[169,3,1,""],at_start:[169,3,1,""],path:[169,4,1,""],typename:[169,4,1,""]},"evennia.accounts.bots.GrapevineBot":{DoesNotExist:[169,2,1,""],MultipleObjectsReturned:[169,2,1,""],at_msg_send:[169,3,1,""],execute_cmd:[169,3,1,""],factory_path:[169,4,1,""],msg:[169,3,1,""],path:[169,4,1,""],start:[169,3,1,""],typename:[169,4,1,""]},"evennia.accounts.bots.IRCBot":{DoesNotExist:[169,2,1,""],MultipleObjectsReturned:[169,2,1,""],at_msg_send:[169,3,1,""],execute_cmd:[169,3,1,""],factory_path:[169,4,1,""],get_nicklist:[169,3,1,""],msg:[169,3,1,""],path:[169,4,1,""],ping:[169,3,1,""],reconnect:[169,3,1,""],start:[169,3,1,""],typename:[169,4,1,""]},"evennia.accounts.bots.RSSBot":{DoesNotExist:[169,2,1,""],MultipleObjectsReturned:[169,2,1,""],execute_cmd:[169,3,1,""],path:[169,4,1,""],start:[169,3,1,""],typename:[169,4,1,""]},"evennia.accounts.manager":{AccountDBManager:[170,1,1,""],AccountManager:[170,1,1,""]},"evennia.accounts.manager.AccountDBManager":{account_search:[170,3,1,""],get_account_from_email:[170,3,1,""],get_account_from_name:[170,3,1,""],get_account_from_uid:[170,3,1,""],get_connected_accounts:[170,3,1,""],get_recently_connected_accounts:[170,3,1,""],get_recently_created_accounts:[170,3,1,""],num_total_accounts:[170,3,1,""],search_account:[170,3,1,""]},"evennia.accounts.models":{AccountDB:[171,1,1,""]},"evennia.accounts.models.AccountDB":{DoesNotExist:[171,2,1,""],MultipleObjectsReturned:[171,2,1,""],account_subscription_set:[171,4,1,""],cmdset_storage:[171,3,1,""],db_attributes:[171,4,1,""],db_cmdset_storage:[171,4,1,""],db_is_bot:[171,4,1,""],db_is_connected:[171,4,1,""],db_tags:[171,4,1,""],get_next_by_date_joined:[171,3,1,""],get_next_by_db_date_created:[171,3,1,""],get_previous_by_date_joined:[171,3,1,""],get_previous_by_db_date_created:[171,3,1,""],groups:[171,4,1,""],hide_from_accounts_set:[171,4,1,""],id:[171,4,1,""],is_bot:[171,3,1,""],is_connected:[171,3,1,""],key:[171,3,1,""],logentry_set:[171,4,1,""],name:[171,3,1,""],objectdb_set:[171,4,1,""],objects:[171,4,1,""],path:[171,4,1,""],receiver_account_set:[171,4,1,""],scriptdb_set:[171,4,1,""],sender_account_set:[171,4,1,""],typename:[171,4,1,""],uid:[171,3,1,""],user_permissions:[171,4,1,""]},"evennia.commands":{"default":[178,0,0,"-"],cmdhandler:[173,0,0,"-"],cmdparser:[174,0,0,"-"],cmdset:[175,0,0,"-"],cmdsethandler:[176,0,0,"-"],command:[177,0,0,"-"]},"evennia.commands.cmdhandler":{InterruptCommand:[173,2,1,""],cmdhandler:[173,5,1,""]},"evennia.commands.cmdparser":{build_matches:[174,5,1,""],cmdparser:[174,5,1,""],create_match:[174,5,1,""],try_num_differentiators:[174,5,1,""]},"evennia.commands.cmdset":{CmdSet:[175,1,1,""]},"evennia.commands.cmdset.CmdSet":{__init__:[175,3,1,""],add:[175,3,1,""],at_cmdset_creation:[175,3,1,""],count:[175,3,1,""],duplicates:[175,4,1,""],errmessage:[175,4,1,""],get:[175,3,1,""],get_all_cmd_keys_and_aliases:[175,3,1,""],get_system_cmds:[175,3,1,""],key:[175,4,1,""],key_mergetypes:[175,4,1,""],make_unique:[175,3,1,""],mergetype:[175,4,1,""],no_channels:[175,4,1,""],no_exits:[175,4,1,""],no_objs:[175,4,1,""],path:[175,4,1,""],persistent:[175,4,1,""],priority:[175,4,1,""],remove:[175,3,1,""],to_duplicate:[175,4,1,""]},"evennia.commands.cmdsethandler":{CmdSetHandler:[176,1,1,""],import_cmdset:[176,5,1,""]},"evennia.commands.cmdsethandler.CmdSetHandler":{"delete":[176,3,1,""],__init__:[176,3,1,""],add:[176,3,1,""],add_default:[176,3,1,""],all:[176,3,1,""],clear:[176,3,1,""],delete_default:[176,3,1,""],get:[176,3,1,""],has:[176,3,1,""],has_cmdset:[176,3,1,""],remove:[176,3,1,""],remove_default:[176,3,1,""],reset:[176,3,1,""],update:[176,3,1,""]},"evennia.commands.command":{Command:[177,1,1,""],CommandMeta:[177,1,1,""],InterruptCommand:[177,2,1,""]},"evennia.commands.command.Command":{__init__:[177,3,1,""],access:[177,3,1,""],aliases:[177,4,1,""],arg_regex:[177,4,1,""],at_post_cmd:[177,3,1,""],at_pre_cmd:[177,3,1,""],auto_help:[177,4,1,""],client_width:[177,3,1,""],execute_cmd:[177,3,1,""],func:[177,3,1,""],get_command_info:[177,3,1,""],get_extra_info:[177,3,1,""],get_help:[177,3,1,""],help_category:[177,4,1,""],is_exit:[177,4,1,""],key:[177,4,1,""],lock_storage:[177,4,1,""],lockhandler:[177,4,1,""],locks:[177,4,1,""],match:[177,3,1,""],msg:[177,3,1,""],msg_all_sessions:[177,4,1,""],parse:[177,3,1,""],retain_instance:[177,4,1,""],save_for_next:[177,4,1,""],search_index_entry:[177,4,1,""],set_aliases:[177,3,1,""],set_key:[177,3,1,""],styled_footer:[177,3,1,""],styled_header:[177,3,1,""],styled_separator:[177,3,1,""],styled_table:[177,3,1,""],web_get_admin_url:[177,3,1,""],web_get_detail_url:[177,3,1,""]},"evennia.commands.command.CommandMeta":{__init__:[177,3,1,""]},"evennia.commands.default":{account:[179,0,0,"-"],admin:[180,0,0,"-"],batchprocess:[181,0,0,"-"],building:[182,0,0,"-"],cmdset_account:[183,0,0,"-"],cmdset_character:[184,0,0,"-"],cmdset_session:[185,0,0,"-"],cmdset_unloggedin:[186,0,0,"-"],comms:[187,0,0,"-"],general:[188,0,0,"-"],help:[189,0,0,"-"],muxcommand:[190,0,0,"-"],syscommands:[191,0,0,"-"],system:[192,0,0,"-"],unloggedin:[194,0,0,"-"]},"evennia.commands.default.account":{CmdCharCreate:[179,1,1,""],CmdCharDelete:[179,1,1,""],CmdColorTest:[179,1,1,""],CmdIC:[179,1,1,""],CmdOOC:[179,1,1,""],CmdOOCLook:[179,1,1,""],CmdOption:[179,1,1,""],CmdPassword:[179,1,1,""],CmdQuell:[179,1,1,""],CmdQuit:[179,1,1,""],CmdSessions:[179,1,1,""],CmdStyle:[179,1,1,""],CmdWho:[179,1,1,""]},"evennia.commands.default.account.CmdCharCreate":{account_caller:[179,4,1,""],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.commands.default.account.CmdCharDelete":{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.commands.default.account.CmdColorTest":{account_caller:[179,4,1,""],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,""],slice_bright_bg:[179,4,1,""],slice_bright_fg:[179,4,1,""],slice_dark_bg:[179,4,1,""],slice_dark_fg:[179,4,1,""],table_format:[179,3,1,""]},"evennia.commands.default.account.CmdIC":{account_caller:[179,4,1,""],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.commands.default.account.CmdOOC":{account_caller:[179,4,1,""],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.commands.default.account.CmdOOCLook":{account_caller:[179,4,1,""],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.commands.default.account.CmdOption":{account_caller:[179,4,1,""],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,""],switch_options:[179,4,1,""]},"evennia.commands.default.account.CmdPassword":{account_caller:[179,4,1,""],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.commands.default.account.CmdQuell":{account_caller:[179,4,1,""],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.commands.default.account.CmdQuit":{account_caller:[179,4,1,""],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,""],switch_options:[179,4,1,""]},"evennia.commands.default.account.CmdSessions":{account_caller:[179,4,1,""],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.commands.default.account.CmdStyle":{aliases:[179,4,1,""],func:[179,3,1,""],help_category:[179,4,1,""],key:[179,4,1,""],list_styles:[179,3,1,""],lock_storage:[179,4,1,""],search_index_entry:[179,4,1,""],set:[179,3,1,""],switch_options:[179,4,1,""]},"evennia.commands.default.account.CmdWho":{account_caller:[179,4,1,""],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.commands.default.admin":{CmdBan:[180,1,1,""],CmdBoot:[180,1,1,""],CmdEmit:[180,1,1,""],CmdForce:[180,1,1,""],CmdNewPassword:[180,1,1,""],CmdPerm:[180,1,1,""],CmdUnban:[180,1,1,""],CmdWall:[180,1,1,""]},"evennia.commands.default.admin.CmdBan":{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.commands.default.admin.CmdBoot":{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,""],switch_options:[180,4,1,""]},"evennia.commands.default.admin.CmdEmit":{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,""],switch_options:[180,4,1,""]},"evennia.commands.default.admin.CmdForce":{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,""],perm_used:[180,4,1,""],search_index_entry:[180,4,1,""]},"evennia.commands.default.admin.CmdNewPassword":{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.commands.default.admin.CmdPerm":{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,""],switch_options:[180,4,1,""]},"evennia.commands.default.admin.CmdUnban":{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.commands.default.admin.CmdWall":{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.commands.default.batchprocess":{CmdBatchCode:[181,1,1,""],CmdBatchCommands:[181,1,1,""]},"evennia.commands.default.batchprocess.CmdBatchCode":{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,""],switch_options:[181,4,1,""]},"evennia.commands.default.batchprocess.CmdBatchCommands":{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,""],switch_options:[181,4,1,""]},"evennia.commands.default.building":{CmdCopy:[182,1,1,""],CmdCpAttr:[182,1,1,""],CmdCreate:[182,1,1,""],CmdDesc:[182,1,1,""],CmdDestroy:[182,1,1,""],CmdDig:[182,1,1,""],CmdExamine:[182,1,1,""],CmdFind:[182,1,1,""],CmdLink:[182,1,1,""],CmdListCmdSets:[182,1,1,""],CmdLock:[182,1,1,""],CmdMvAttr:[182,1,1,""],CmdName:[182,1,1,""],CmdObjects:[182,1,1,""],CmdOpen:[182,1,1,""],CmdScripts:[182,1,1,""],CmdSetAttribute:[182,1,1,""],CmdSetHome:[182,1,1,""],CmdSetObjAlias:[182,1,1,""],CmdSpawn:[182,1,1,""],CmdTag:[182,1,1,""],CmdTeleport:[182,1,1,""],CmdTunnel:[182,1,1,""],CmdTypeclass:[182,1,1,""],CmdUnLink:[182,1,1,""],CmdWipe:[182,1,1,""],ObjManipCommand:[182,1,1,""]},"evennia.commands.default.building.CmdCopy":{aliases:[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.commands.default.building.CmdCpAttr":{aliases:[182,4,1,""],check_from_attr:[182,3,1,""],check_has_attr:[182,3,1,""],check_to_attr:[182,3,1,""],func:[182,3,1,""],get_attr:[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,""],switch_options:[182,4,1,""]},"evennia.commands.default.building.CmdCreate":{aliases:[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,""],new_obj_lockstring:[182,4,1,""],search_index_entry:[182,4,1,""],switch_options:[182,4,1,""]},"evennia.commands.default.building.CmdDesc":{aliases:[182,4,1,""],edit_handler:[182,3,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,""],switch_options:[182,4,1,""]},"evennia.commands.default.building.CmdDestroy":{aliases:[182,4,1,""],confirm:[182,4,1,""],default_confirm:[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,""],switch_options:[182,4,1,""]},"evennia.commands.default.building.CmdDig":{aliases:[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,""],new_room_lockstring:[182,4,1,""],search_index_entry:[182,4,1,""],switch_options:[182,4,1,""]},"evennia.commands.default.building.CmdExamine":{account_mode:[182,4,1,""],aliases:[182,4,1,""],arg_regex:[182,4,1,""],detail_color:[182,4,1,""],format_attributes:[182,3,1,""],format_output:[182,3,1,""],func:[182,3,1,""],header_color:[182,4,1,""],help_category:[182,4,1,""],key:[182,4,1,""],list_attribute:[182,3,1,""],lock_storage:[182,4,1,""],locks:[182,4,1,""],quell_color:[182,4,1,""],search_index_entry:[182,4,1,""],separator:[182,4,1,""]},"evennia.commands.default.building.CmdFind":{aliases:[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,""],switch_options:[182,4,1,""]},"evennia.commands.default.building.CmdLink":{aliases:[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.commands.default.building.CmdListCmdSets":{aliases:[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.commands.default.building.CmdLock":{aliases:[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.commands.default.building.CmdMvAttr":{aliases:[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,""],switch_options:[182,4,1,""]},"evennia.commands.default.building.CmdName":{aliases:[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.commands.default.building.CmdObjects":{aliases:[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.commands.default.building.CmdOpen":{aliases:[182,4,1,""],create_exit:[182,3,1,""],func:[182,3,1,""],help_category:[182,4,1,""],key:[182,4,1,""],lock_storage:[182,4,1,""],locks:[182,4,1,""],new_obj_lockstring:[182,4,1,""],parse:[182,3,1,""],search_index_entry:[182,4,1,""]},"evennia.commands.default.building.CmdScripts":{aliases:[182,4,1,""],excluded_typeclass_paths:[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,""],switch_mapping:[182,4,1,""],switch_options:[182,4,1,""]},"evennia.commands.default.building.CmdSetAttribute":{aliases:[182,4,1,""],check_attr:[182,3,1,""],check_obj:[182,3,1,""],do_nested_lookup:[182,3,1,""],edit_handler:[182,3,1,""],func:[182,3,1,""],help_category:[182,4,1,""],key:[182,4,1,""],lock_storage:[182,4,1,""],locks:[182,4,1,""],nested_re:[182,4,1,""],not_found:[182,4,1,""],rm_attr:[182,3,1,""],search_for_obj:[182,3,1,""],search_index_entry:[182,4,1,""],set_attr:[182,3,1,""],split_nested_attr:[182,3,1,""],view_attr:[182,3,1,""]},"evennia.commands.default.building.CmdSetHome":{aliases:[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.commands.default.building.CmdSetObjAlias":{aliases:[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,""],switch_options:[182,4,1,""]},"evennia.commands.default.building.CmdSpawn":{aliases:[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,""],switch_options:[182,4,1,""]},"evennia.commands.default.building.CmdTag":{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,""],options:[182,4,1,""],search_index_entry:[182,4,1,""]},"evennia.commands.default.building.CmdTeleport":{aliases:[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,""],parse:[182,3,1,""],rhs_split:[182,4,1,""],search_index_entry:[182,4,1,""],switch_options:[182,4,1,""]},"evennia.commands.default.building.CmdTunnel":{aliases:[182,4,1,""],directions:[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,""],switch_options:[182,4,1,""]},"evennia.commands.default.building.CmdTypeclass":{aliases:[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,""],switch_options:[182,4,1,""]},"evennia.commands.default.building.CmdUnLink":{aliases:[182,4,1,""],func:[182,3,1,""],help_category:[182,4,1,""],help_key:[182,4,1,""],key:[182,4,1,""],lock_storage:[182,4,1,""],locks:[182,4,1,""],search_index_entry:[182,4,1,""]},"evennia.commands.default.building.CmdWipe":{aliases:[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.commands.default.building.ObjManipCommand":{aliases:[182,4,1,""],help_category:[182,4,1,""],key:[182,4,1,""],lock_storage:[182,4,1,""],parse:[182,3,1,""],search_index_entry:[182,4,1,""]},"evennia.commands.default.cmdset_account":{AccountCmdSet:[183,1,1,""]},"evennia.commands.default.cmdset_account.AccountCmdSet":{at_cmdset_creation:[183,3,1,""],key:[183,4,1,""],path:[183,4,1,""],priority:[183,4,1,""]},"evennia.commands.default.cmdset_character":{CharacterCmdSet:[184,1,1,""]},"evennia.commands.default.cmdset_character.CharacterCmdSet":{at_cmdset_creation:[184,3,1,""],key:[184,4,1,""],path:[184,4,1,""],priority:[184,4,1,""]},"evennia.commands.default.cmdset_session":{SessionCmdSet:[185,1,1,""]},"evennia.commands.default.cmdset_session.SessionCmdSet":{at_cmdset_creation:[185,3,1,""],key:[185,4,1,""],path:[185,4,1,""],priority:[185,4,1,""]},"evennia.commands.default.cmdset_unloggedin":{UnloggedinCmdSet:[186,1,1,""]},"evennia.commands.default.cmdset_unloggedin.UnloggedinCmdSet":{at_cmdset_creation:[186,3,1,""],key:[186,4,1,""],path:[186,4,1,""],priority:[186,4,1,""]},"evennia.commands.default.comms":{CmdAddCom:[187,1,1,""],CmdAllCom:[187,1,1,""],CmdCBoot:[187,1,1,""],CmdCWho:[187,1,1,""],CmdCdesc:[187,1,1,""],CmdCdestroy:[187,1,1,""],CmdChannel:[187,1,1,""],CmdChannelCreate:[187,1,1,""],CmdClock:[187,1,1,""],CmdDelCom:[187,1,1,""],CmdGrapevine2Chan:[187,1,1,""],CmdIRC2Chan:[187,1,1,""],CmdIRCStatus:[187,1,1,""],CmdObjectChannel:[187,1,1,""],CmdPage:[187,1,1,""],CmdRSS2Chan:[187,1,1,""]},"evennia.commands.default.comms.CmdAddCom":{account_caller:[187,4,1,""],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.commands.default.comms.CmdAllCom":{account_caller:[187,4,1,""],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.commands.default.comms.CmdCBoot":{account_caller:[187,4,1,""],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,""],switch_options:[187,4,1,""]},"evennia.commands.default.comms.CmdCWho":{account_caller:[187,4,1,""],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.commands.default.comms.CmdCdesc":{account_caller:[187,4,1,""],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.commands.default.comms.CmdCdestroy":{account_caller:[187,4,1,""],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.commands.default.comms.CmdChannel":{account_caller:[187,4,1,""],add_alias:[187,3,1,""],aliases:[187,4,1,""],ban_user:[187,3,1,""],boot_user:[187,3,1,""],channel_list_bans:[187,3,1,""],channel_list_who:[187,3,1,""],create_channel:[187,3,1,""],destroy_channel:[187,3,1,""],display_all_channels:[187,3,1,""],display_subbed_channels:[187,3,1,""],func:[187,3,1,""],get_channel_aliases:[187,3,1,""],get_channel_history:[187,3,1,""],help_category:[187,4,1,""],key:[187,4,1,""],list_channels:[187,3,1,""],lock_storage:[187,4,1,""],locks:[187,4,1,""],msg_channel:[187,3,1,""],mute_channel:[187,3,1,""],remove_alias:[187,3,1,""],search_channel:[187,3,1,""],search_index_entry:[187,4,1,""],set_desc:[187,3,1,""],set_lock:[187,3,1,""],sub_to_channel:[187,3,1,""],switch_options:[187,4,1,""],unban_user:[187,3,1,""],unmute_channel:[187,3,1,""],unset_lock:[187,3,1,""],unsub_from_channel:[187,3,1,""]},"evennia.commands.default.comms.CmdChannelCreate":{account_caller:[187,4,1,""],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.commands.default.comms.CmdClock":{account_caller:[187,4,1,""],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.commands.default.comms.CmdDelCom":{account_caller:[187,4,1,""],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.commands.default.comms.CmdGrapevine2Chan":{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,""],switch_options:[187,4,1,""]},"evennia.commands.default.comms.CmdIRC2Chan":{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,""],switch_options:[187,4,1,""]},"evennia.commands.default.comms.CmdIRCStatus":{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.commands.default.comms.CmdObjectChannel":{account_caller:[187,4,1,""],aliases:[187,4,1,""],help_category:[187,4,1,""],key:[187,4,1,""],lock_storage:[187,4,1,""],search_index_entry:[187,4,1,""]},"evennia.commands.default.comms.CmdPage":{account_caller:[187,4,1,""],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,""],switch_options:[187,4,1,""]},"evennia.commands.default.comms.CmdRSS2Chan":{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,""],switch_options:[187,4,1,""]},"evennia.commands.default.general":{CmdAccess:[188,1,1,""],CmdDrop:[188,1,1,""],CmdGet:[188,1,1,""],CmdGive:[188,1,1,""],CmdHome:[188,1,1,""],CmdInventory:[188,1,1,""],CmdLook:[188,1,1,""],CmdNick:[188,1,1,""],CmdPose:[188,1,1,""],CmdSay:[188,1,1,""],CmdSetDesc:[188,1,1,""],CmdWhisper:[188,1,1,""]},"evennia.commands.default.general.CmdAccess":{aliases:[188,4,1,""],arg_regex:[188,4,1,""],func:[188,3,1,""],help_category:[188,4,1,""],key:[188,4,1,""],lock_storage:[188,4,1,""],locks:[188,4,1,""],search_index_entry:[188,4,1,""]},"evennia.commands.default.general.CmdDrop":{aliases:[188,4,1,""],arg_regex:[188,4,1,""],func:[188,3,1,""],help_category:[188,4,1,""],key:[188,4,1,""],lock_storage:[188,4,1,""],locks:[188,4,1,""],search_index_entry:[188,4,1,""]},"evennia.commands.default.general.CmdGet":{aliases:[188,4,1,""],arg_regex:[188,4,1,""],func:[188,3,1,""],help_category:[188,4,1,""],key:[188,4,1,""],lock_storage:[188,4,1,""],locks:[188,4,1,""],search_index_entry:[188,4,1,""]},"evennia.commands.default.general.CmdGive":{aliases:[188,4,1,""],arg_regex:[188,4,1,""],func:[188,3,1,""],help_category:[188,4,1,""],key:[188,4,1,""],lock_storage:[188,4,1,""],locks:[188,4,1,""],rhs_split:[188,4,1,""],search_index_entry:[188,4,1,""]},"evennia.commands.default.general.CmdHome":{aliases:[188,4,1,""],arg_regex:[188,4,1,""],func:[188,3,1,""],help_category:[188,4,1,""],key:[188,4,1,""],lock_storage:[188,4,1,""],locks:[188,4,1,""],search_index_entry:[188,4,1,""]},"evennia.commands.default.general.CmdInventory":{aliases:[188,4,1,""],arg_regex:[188,4,1,""],func:[188,3,1,""],help_category:[188,4,1,""],key:[188,4,1,""],lock_storage:[188,4,1,""],locks:[188,4,1,""],search_index_entry:[188,4,1,""]},"evennia.commands.default.general.CmdLook":{aliases:[188,4,1,""],arg_regex:[188,4,1,""],func:[188,3,1,""],help_category:[188,4,1,""],key:[188,4,1,""],lock_storage:[188,4,1,""],locks:[188,4,1,""],search_index_entry:[188,4,1,""]},"evennia.commands.default.general.CmdNick":{aliases:[188,4,1,""],func:[188,3,1,""],help_category:[188,4,1,""],key:[188,4,1,""],lock_storage:[188,4,1,""],locks:[188,4,1,""],parse:[188,3,1,""],search_index_entry:[188,4,1,""],switch_options:[188,4,1,""]},"evennia.commands.default.general.CmdPose":{aliases:[188,4,1,""],arg_regex:[188,4,1,""],func:[188,3,1,""],help_category:[188,4,1,""],key:[188,4,1,""],lock_storage:[188,4,1,""],locks:[188,4,1,""],parse:[188,3,1,""],search_index_entry:[188,4,1,""]},"evennia.commands.default.general.CmdSay":{aliases:[188,4,1,""],arg_regex:[188,4,1,""],func:[188,3,1,""],help_category:[188,4,1,""],key:[188,4,1,""],lock_storage:[188,4,1,""],locks:[188,4,1,""],search_index_entry:[188,4,1,""]},"evennia.commands.default.general.CmdSetDesc":{aliases:[188,4,1,""],arg_regex:[188,4,1,""],func:[188,3,1,""],help_category:[188,4,1,""],key:[188,4,1,""],lock_storage:[188,4,1,""],locks:[188,4,1,""],search_index_entry:[188,4,1,""]},"evennia.commands.default.general.CmdWhisper":{aliases:[188,4,1,""],func:[188,3,1,""],help_category:[188,4,1,""],key:[188,4,1,""],lock_storage:[188,4,1,""],locks:[188,4,1,""],search_index_entry:[188,4,1,""]},"evennia.commands.default.help":{CmdHelp:[189,1,1,""],CmdSetHelp:[189,1,1,""]},"evennia.commands.default.help.CmdHelp":{aliases:[189,4,1,""],arg_regex:[189,4,1,""],can_list_topic:[189,3,1,""],can_read_topic:[189,3,1,""],clickable_topics:[189,4,1,""],collect_topics:[189,3,1,""],do_search:[189,3,1,""],format_help_entry:[189,3,1,""],format_help_index:[189,3,1,""],func:[189,3,1,""],help_category:[189,4,1,""],help_more:[189,4,1,""],index_category_clr:[189,4,1,""],index_topic_clr:[189,4,1,""],index_type_separator_clr:[189,4,1,""],key:[189,4,1,""],lock_storage:[189,4,1,""],locks:[189,4,1,""],msg_help:[189,3,1,""],parse:[189,3,1,""],return_cmdset:[189,4,1,""],search_index_entry:[189,4,1,""],subtopic_separator_char:[189,4,1,""],suggestion_cutoff:[189,4,1,""],suggestion_maxnum:[189,4,1,""]},"evennia.commands.default.help.CmdSetHelp":{aliases:[189,4,1,""],arg_regex:[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,""],parse:[189,3,1,""],search_index_entry:[189,4,1,""],switch_options:[189,4,1,""]},"evennia.commands.default.muxcommand":{MuxAccountCommand:[190,1,1,""],MuxCommand:[190,1,1,""]},"evennia.commands.default.muxcommand.MuxAccountCommand":{account_caller:[190,4,1,""],aliases:[190,4,1,""],help_category:[190,4,1,""],key:[190,4,1,""],lock_storage:[190,4,1,""],search_index_entry:[190,4,1,""]},"evennia.commands.default.muxcommand.MuxCommand":{aliases:[190,4,1,""],at_post_cmd:[190,3,1,""],at_pre_cmd:[190,3,1,""],func:[190,3,1,""],get_command_info:[190,3,1,""],has_perm:[190,3,1,""],help_category:[190,4,1,""],key:[190,4,1,""],lock_storage:[190,4,1,""],parse:[190,3,1,""],search_index_entry:[190,4,1,""]},"evennia.commands.default.syscommands":{SystemMultimatch:[191,1,1,""],SystemNoInput:[191,1,1,""],SystemNoMatch:[191,1,1,""]},"evennia.commands.default.syscommands.SystemMultimatch":{aliases:[191,4,1,""],func:[191,3,1,""],help_category:[191,4,1,""],key:[191,4,1,""],lock_storage:[191,4,1,""],locks:[191,4,1,""],search_index_entry:[191,4,1,""]},"evennia.commands.default.syscommands.SystemNoInput":{aliases:[191,4,1,""],func:[191,3,1,""],help_category:[191,4,1,""],key:[191,4,1,""],lock_storage:[191,4,1,""],locks:[191,4,1,""],search_index_entry:[191,4,1,""]},"evennia.commands.default.syscommands.SystemNoMatch":{aliases:[191,4,1,""],func:[191,3,1,""],help_category:[191,4,1,""],key:[191,4,1,""],lock_storage:[191,4,1,""],locks:[191,4,1,""],search_index_entry:[191,4,1,""]},"evennia.commands.default.system":{CmdAbout:[192,1,1,""],CmdAccounts:[192,1,1,""],CmdPy:[192,1,1,""],CmdReload:[192,1,1,""],CmdReset:[192,1,1,""],CmdServerLoad:[192,1,1,""],CmdService:[192,1,1,""],CmdShutdown:[192,1,1,""],CmdTasks:[192,1,1,""],CmdTickers:[192,1,1,""],CmdTime:[192,1,1,""]},"evennia.commands.default.system.CmdAbout":{aliases:[192,4,1,""],func:[192,3,1,""],help_category:[192,4,1,""],key:[192,4,1,""],lock_storage:[192,4,1,""],locks:[192,4,1,""],search_index_entry:[192,4,1,""]},"evennia.commands.default.system.CmdAccounts":{aliases:[192,4,1,""],func:[192,3,1,""],help_category:[192,4,1,""],key:[192,4,1,""],lock_storage:[192,4,1,""],locks:[192,4,1,""],search_index_entry:[192,4,1,""],switch_options:[192,4,1,""]},"evennia.commands.default.system.CmdPy":{aliases:[192,4,1,""],arg_regex:[192,4,1,""],func:[192,3,1,""],help_category:[192,4,1,""],key:[192,4,1,""],lock_storage:[192,4,1,""],locks:[192,4,1,""],search_index_entry:[192,4,1,""],switch_options:[192,4,1,""]},"evennia.commands.default.system.CmdReload":{aliases:[192,4,1,""],func:[192,3,1,""],help_category:[192,4,1,""],key:[192,4,1,""],lock_storage:[192,4,1,""],locks:[192,4,1,""],search_index_entry:[192,4,1,""]},"evennia.commands.default.system.CmdReset":{aliases:[192,4,1,""],func:[192,3,1,""],help_category:[192,4,1,""],key:[192,4,1,""],lock_storage:[192,4,1,""],locks:[192,4,1,""],search_index_entry:[192,4,1,""]},"evennia.commands.default.system.CmdServerLoad":{aliases:[192,4,1,""],func:[192,3,1,""],help_category:[192,4,1,""],key:[192,4,1,""],lock_storage:[192,4,1,""],locks:[192,4,1,""],search_index_entry:[192,4,1,""],switch_options:[192,4,1,""]},"evennia.commands.default.system.CmdService":{aliases:[192,4,1,""],func:[192,3,1,""],help_category:[192,4,1,""],key:[192,4,1,""],lock_storage:[192,4,1,""],locks:[192,4,1,""],search_index_entry:[192,4,1,""],switch_options:[192,4,1,""]},"evennia.commands.default.system.CmdShutdown":{aliases:[192,4,1,""],func:[192,3,1,""],help_category:[192,4,1,""],key:[192,4,1,""],lock_storage:[192,4,1,""],locks:[192,4,1,""],search_index_entry:[192,4,1,""]},"evennia.commands.default.system.CmdTasks":{aliases:[192,4,1,""],coll_date_func:[192,3,1,""],do_task_action:[192,3,1,""],func:[192,3,1,""],help_category:[192,4,1,""],key:[192,4,1,""],lock_storage:[192,4,1,""],locks:[192,4,1,""],search_index_entry:[192,4,1,""],switch_options:[192,4,1,""]},"evennia.commands.default.system.CmdTickers":{aliases:[192,4,1,""],func:[192,3,1,""],help_category:[192,4,1,""],key:[192,4,1,""],lock_storage:[192,4,1,""],locks:[192,4,1,""],search_index_entry:[192,4,1,""]},"evennia.commands.default.system.CmdTime":{aliases:[192,4,1,""],func:[192,3,1,""],help_category:[192,4,1,""],key:[192,4,1,""],lock_storage:[192,4,1,""],locks:[192,4,1,""],search_index_entry:[192,4,1,""]},"evennia.commands.default.tests":{CmdInterrupt:[193,1,1,""],CommandTest:[193,1,1,""],TestAccount:[193,1,1,""],TestAdmin:[193,1,1,""],TestBatchProcess:[193,1,1,""],TestBuilding:[193,1,1,""],TestCmdTasks:[193,1,1,""],TestComms:[193,1,1,""],TestCommsChannel:[193,1,1,""],TestGeneral:[193,1,1,""],TestHelp:[193,1,1,""],TestInterruptCommand:[193,1,1,""],TestSystem:[193,1,1,""],TestSystemCommands:[193,1,1,""],TestUnconnectedCommand:[193,1,1,""],func_test_cmd_tasks:[193,5,1,""]},"evennia.commands.default.tests.CmdInterrupt":{aliases:[193,4,1,""],func:[193,3,1,""],help_category:[193,4,1,""],key:[193,4,1,""],lock_storage:[193,4,1,""],parse:[193,3,1,""],search_index_entry:[193,4,1,""]},"evennia.commands.default.tests.CommandTest":{call:[193,3,1,""]},"evennia.commands.default.tests.TestAccount":{test_char_create:[193,3,1,""],test_char_delete:[193,3,1,""],test_color_test:[193,3,1,""],test_ic:[193,3,1,""],test_ic__nonaccess:[193,3,1,""],test_ic__other_object:[193,3,1,""],test_ooc:[193,3,1,""],test_ooc_look:[193,3,1,""],test_option:[193,3,1,""],test_password:[193,3,1,""],test_quell:[193,3,1,""],test_quit:[193,3,1,""],test_sessions:[193,3,1,""],test_who:[193,3,1,""]},"evennia.commands.default.tests.TestAdmin":{test_ban:[193,3,1,""],test_emit:[193,3,1,""],test_force:[193,3,1,""],test_perm:[193,3,1,""],test_wall:[193,3,1,""]},"evennia.commands.default.tests.TestBatchProcess":{test_batch_commands:[193,3,1,""]},"evennia.commands.default.tests.TestBuilding":{test_attribute_commands:[193,3,1,""],test_copy:[193,3,1,""],test_create:[193,3,1,""],test_desc:[193,3,1,""],test_desc_default_to_room:[193,3,1,""],test_destroy:[193,3,1,""],test_destroy_sequence:[193,3,1,""],test_dig:[193,3,1,""],test_do_nested_lookup:[193,3,1,""],test_empty_desc:[193,3,1,""],test_examine:[193,3,1,""],test_exit_commands:[193,3,1,""],test_find:[193,3,1,""],test_list_cmdsets:[193,3,1,""],test_lock:[193,3,1,""],test_name:[193,3,1,""],test_nested_attribute_commands:[193,3,1,""],test_script:[193,3,1,""],test_set_home:[193,3,1,""],test_set_obj_alias:[193,3,1,""],test_spawn:[193,3,1,""],test_split_nested_attr:[193,3,1,""],test_tag:[193,3,1,""],test_teleport:[193,3,1,""],test_tunnel:[193,3,1,""],test_tunnel_exit_typeclass:[193,3,1,""],test_typeclass:[193,3,1,""]},"evennia.commands.default.tests.TestCmdTasks":{setUp:[193,3,1,""],tearDown:[193,3,1,""],test_active_task:[193,3,1,""],test_call:[193,3,1,""],test_cancel:[193,3,1,""],test_do_task:[193,3,1,""],test_func_name_manipulation:[193,3,1,""],test_misformed_command:[193,3,1,""],test_new_task_waiting_input:[193,3,1,""],test_no_input:[193,3,1,""],test_no_tasks:[193,3,1,""],test_pause_unpause:[193,3,1,""],test_persistent_task:[193,3,1,""],test_remove:[193,3,1,""],test_responce_of_yes:[193,3,1,""],test_task_complete_waiting_input:[193,3,1,""],test_wrong_func_name:[193,3,1,""]},"evennia.commands.default.tests.TestComms":{setUp:[193,3,1,""],test_all_com:[193,3,1,""],test_cboot:[193,3,1,""],test_cdesc:[193,3,1,""],test_cdestroy:[193,3,1,""],test_clock:[193,3,1,""],test_cwho:[193,3,1,""],test_page:[193,3,1,""],test_toggle_com:[193,3,1,""]},"evennia.commands.default.tests.TestCommsChannel":{setUp:[193,3,1,""],tearDown:[193,3,1,""],test_channel__alias__unalias:[193,3,1,""],test_channel__all:[193,3,1,""],test_channel__ban__unban:[193,3,1,""],test_channel__boot:[193,3,1,""],test_channel__create:[193,3,1,""],test_channel__desc:[193,3,1,""],test_channel__destroy:[193,3,1,""],test_channel__history:[193,3,1,""],test_channel__list:[193,3,1,""],test_channel__lock:[193,3,1,""],test_channel__msg:[193,3,1,""],test_channel__mute:[193,3,1,""],test_channel__noarg:[193,3,1,""],test_channel__sub:[193,3,1,""],test_channel__unlock:[193,3,1,""],test_channel__unmute:[193,3,1,""],test_channel__unsub:[193,3,1,""],test_channel__who:[193,3,1,""]},"evennia.commands.default.tests.TestGeneral":{test_access:[193,3,1,""],test_get_and_drop:[193,3,1,""],test_give:[193,3,1,""],test_home:[193,3,1,""],test_inventory:[193,3,1,""],test_look:[193,3,1,""],test_mux_command:[193,3,1,""],test_nick:[193,3,1,""],test_pose:[193,3,1,""],test_say:[193,3,1,""],test_whisper:[193,3,1,""]},"evennia.commands.default.tests.TestHelp":{maxDiff:[193,4,1,""],setUp:[193,3,1,""],tearDown:[193,3,1,""],test_help:[193,3,1,""],test_set_help:[193,3,1,""],test_subtopic_fetch:[193,4,1,""],test_subtopic_fetch_00_test:[193,3,1,""],test_subtopic_fetch_01_test_creating_extra_stuff:[193,3,1,""],test_subtopic_fetch_02_test_creating:[193,3,1,""],test_subtopic_fetch_03_test_extra:[193,3,1,""],test_subtopic_fetch_04_test_extra_subsubtopic:[193,3,1,""],test_subtopic_fetch_05_test_creating_extra_subsub:[193,3,1,""],test_subtopic_fetch_06_test_Something_else:[193,3,1,""],test_subtopic_fetch_07_test_More:[193,3,1,""],test_subtopic_fetch_08_test_More_Second_more:[193,3,1,""],test_subtopic_fetch_09_test_More_more:[193,3,1,""],test_subtopic_fetch_10_test_more_second_more_again:[193,3,1,""],test_subtopic_fetch_11_test_more_second_third:[193,3,1,""]},"evennia.commands.default.tests.TestInterruptCommand":{test_interrupt_command:[193,3,1,""]},"evennia.commands.default.tests.TestSystem":{test_about:[193,3,1,""],test_objects:[193,3,1,""],test_py:[193,3,1,""],test_scripts:[193,3,1,""],test_server_load:[193,3,1,""]},"evennia.commands.default.tests.TestSystemCommands":{test_multimatch:[193,3,1,""],test_simple_defaults:[193,3,1,""]},"evennia.commands.default.tests.TestUnconnectedCommand":{test_info_command:[193,3,1,""]},"evennia.commands.default.unloggedin":{CmdUnconnectedConnect:[194,1,1,""],CmdUnconnectedCreate:[194,1,1,""],CmdUnconnectedEncoding:[194,1,1,""],CmdUnconnectedHelp:[194,1,1,""],CmdUnconnectedInfo:[194,1,1,""],CmdUnconnectedLook:[194,1,1,""],CmdUnconnectedQuit:[194,1,1,""],CmdUnconnectedScreenreader:[194,1,1,""]},"evennia.commands.default.unloggedin.CmdUnconnectedConnect":{aliases:[194,4,1,""],arg_regex:[194,4,1,""],func:[194,3,1,""],help_category:[194,4,1,""],key:[194,4,1,""],lock_storage:[194,4,1,""],locks:[194,4,1,""],search_index_entry:[194,4,1,""]},"evennia.commands.default.unloggedin.CmdUnconnectedCreate":{aliases:[194,4,1,""],arg_regex:[194,4,1,""],func:[194,3,1,""],help_category:[194,4,1,""],key:[194,4,1,""],lock_storage:[194,4,1,""],locks:[194,4,1,""],search_index_entry:[194,4,1,""]},"evennia.commands.default.unloggedin.CmdUnconnectedEncoding":{aliases:[194,4,1,""],func:[194,3,1,""],help_category:[194,4,1,""],key:[194,4,1,""],lock_storage:[194,4,1,""],locks:[194,4,1,""],search_index_entry:[194,4,1,""]},"evennia.commands.default.unloggedin.CmdUnconnectedHelp":{aliases:[194,4,1,""],func:[194,3,1,""],help_category:[194,4,1,""],key:[194,4,1,""],lock_storage:[194,4,1,""],locks:[194,4,1,""],search_index_entry:[194,4,1,""]},"evennia.commands.default.unloggedin.CmdUnconnectedInfo":{aliases:[194,4,1,""],func:[194,3,1,""],help_category:[194,4,1,""],key:[194,4,1,""],lock_storage:[194,4,1,""],locks:[194,4,1,""],search_index_entry:[194,4,1,""]},"evennia.commands.default.unloggedin.CmdUnconnectedLook":{aliases:[194,4,1,""],func:[194,3,1,""],help_category:[194,4,1,""],key:[194,4,1,""],lock_storage:[194,4,1,""],locks:[194,4,1,""],search_index_entry:[194,4,1,""]},"evennia.commands.default.unloggedin.CmdUnconnectedQuit":{aliases:[194,4,1,""],func:[194,3,1,""],help_category:[194,4,1,""],key:[194,4,1,""],lock_storage:[194,4,1,""],locks:[194,4,1,""],search_index_entry:[194,4,1,""]},"evennia.commands.default.unloggedin.CmdUnconnectedScreenreader":{aliases:[194,4,1,""],func:[194,3,1,""],help_category:[194,4,1,""],key:[194,4,1,""],lock_storage:[194,4,1,""],search_index_entry:[194,4,1,""]},"evennia.comms":{comms:[196,0,0,"-"],managers:[197,0,0,"-"],models:[198,0,0,"-"]},"evennia.comms.comms":{DefaultChannel:[196,1,1,""]},"evennia.comms.comms.DefaultChannel":{"delete":[196,3,1,""],DoesNotExist:[196,2,1,""],MultipleObjectsReturned:[196,2,1,""],access:[196,3,1,""],add_user_channel_alias:[196,3,1,""],at_channel_creation:[196,3,1,""],at_first_save:[196,3,1,""],at_init:[196,3,1,""],at_post_msg:[196,3,1,""],at_pre_msg:[196,3,1,""],ban:[196,3,1,""],banlist:[196,3,1,""],basetype_setup:[196,3,1,""],channel_msg_nick_pattern:[196,4,1,""],channel_msg_nick_replacement:[196,4,1,""],channel_prefix:[196,3,1,""],channel_prefix_string:[196,4,1,""],connect:[196,3,1,""],create:[196,3,1,""],disconnect:[196,3,1,""],distribute_message:[196,3,1,""],format_external:[196,3,1,""],format_message:[196,3,1,""],format_senders:[196,3,1,""],get_absolute_url:[196,3,1,""],get_log_filename:[196,3,1,""],has_connection:[196,3,1,""],log_file:[196,4,1,""],message_transform:[196,3,1,""],msg:[196,3,1,""],mute:[196,3,1,""],mutelist:[196,3,1,""],objects:[196,4,1,""],path:[196,4,1,""],pose_transform:[196,3,1,""],post_join_channel:[196,3,1,""],post_leave_channel:[196,3,1,""],post_send_message:[196,3,1,""],pre_join_channel:[196,3,1,""],pre_leave_channel:[196,3,1,""],pre_send_message:[196,3,1,""],remove_user_channel_alias:[196,3,1,""],send_to_online_only:[196,4,1,""],set_log_filename:[196,3,1,""],typename:[196,4,1,""],unban:[196,3,1,""],unmute:[196,3,1,""],web_get_admin_url:[196,3,1,""],web_get_create_url:[196,3,1,""],web_get_delete_url:[196,3,1,""],web_get_detail_url:[196,3,1,""],web_get_update_url:[196,3,1,""],wholist:[196,3,1,""]},"evennia.comms.managers":{ChannelDBManager:[197,1,1,""],ChannelManager:[197,1,1,""],CommError:[197,2,1,""],MsgManager:[197,1,1,""],identify_object:[197,5,1,""],to_object:[197,5,1,""]},"evennia.comms.managers.ChannelDBManager":{channel_search:[197,3,1,""],get_all_channels:[197,3,1,""],get_channel:[197,3,1,""],get_subscriptions:[197,3,1,""],search_channel:[197,3,1,""]},"evennia.comms.managers.MsgManager":{get_message_by_id:[197,3,1,""],get_messages_by_receiver:[197,3,1,""],get_messages_by_sender:[197,3,1,""],identify_object:[197,3,1,""],message_search:[197,3,1,""],search_message:[197,3,1,""]},"evennia.comms.models":{ChannelDB:[198,1,1,""],Msg:[198,1,1,""],SubscriptionHandler:[198,1,1,""],TempMsg:[198,1,1,""]},"evennia.comms.models.ChannelDB":{DoesNotExist:[198,2,1,""],MultipleObjectsReturned:[198,2,1,""],db_account_subscriptions:[198,4,1,""],db_attributes:[198,4,1,""],db_object_subscriptions:[198,4,1,""],db_tags:[198,4,1,""],get_next_by_db_date_created:[198,3,1,""],get_previous_by_db_date_created:[198,3,1,""],id:[198,4,1,""],objects:[198,4,1,""],path:[198,4,1,""],subscriptions:[198,4,1,""],typename:[198,4,1,""]},"evennia.comms.models.Msg":{DoesNotExist:[198,2,1,""],MultipleObjectsReturned:[198,2,1,""],access:[198,3,1,""],date_created:[198,3,1,""],db_date_created:[198,4,1,""],db_header:[198,4,1,""],db_hide_from_accounts:[198,4,1,""],db_hide_from_objects:[198,4,1,""],db_lock_storage:[198,4,1,""],db_message:[198,4,1,""],db_receiver_external:[198,4,1,""],db_receivers_accounts:[198,4,1,""],db_receivers_objects:[198,4,1,""],db_receivers_scripts:[198,4,1,""],db_sender_accounts:[198,4,1,""],db_sender_external:[198,4,1,""],db_sender_objects:[198,4,1,""],db_sender_scripts:[198,4,1,""],db_tags:[198,4,1,""],get_next_by_db_date_created:[198,3,1,""],get_previous_by_db_date_created:[198,3,1,""],header:[198,3,1,""],hide_from:[198,3,1,""],id:[198,4,1,""],lock_storage:[198,3,1,""],locks:[198,4,1,""],message:[198,3,1,""],objects:[198,4,1,""],path:[198,4,1,""],receiver_external:[198,3,1,""],receivers:[198,3,1,""],remove_receiver:[198,3,1,""],remove_sender:[198,3,1,""],sender_external:[198,3,1,""],senders:[198,3,1,""],tags:[198,4,1,""],typename:[198,4,1,""]},"evennia.comms.models.SubscriptionHandler":{__init__:[198,3,1,""],add:[198,3,1,""],all:[198,3,1,""],clear:[198,3,1,""],get:[198,3,1,""],has:[198,3,1,""],online:[198,3,1,""],remove:[198,3,1,""]},"evennia.comms.models.TempMsg":{__init__:[198,3,1,""],access:[198,3,1,""],locks:[198,4,1,""],remove_receiver:[198,3,1,""],remove_sender:[198,3,1,""]},"evennia.contrib":{awsstorage:[200,0,0,"-"],barter:[203,0,0,"-"],building_menu:[204,0,0,"-"],chargen:[205,0,0,"-"],clothing:[206,0,0,"-"],color_markups:[207,0,0,"-"],crafting:[208,0,0,"-"],custom_gametime:[212,0,0,"-"],dice:[213,0,0,"-"],email_login:[214,0,0,"-"],evscaperoom:[215,0,0,"-"],extended_room:[224,0,0,"-"],fieldfill:[225,0,0,"-"],gendersub:[226,0,0,"-"],health_bar:[227,0,0,"-"],ingame_python:[228,0,0,"-"],mail:[236,0,0,"-"],multidescer:[239,0,0,"-"],puzzles:[240,0,0,"-"],random_string_generator:[241,0,0,"-"],rplanguage:[242,0,0,"-"],rpsystem:[243,0,0,"-"],security:[244,0,0,"-"],simpledoor:[249,0,0,"-"],slow_exit:[250,0,0,"-"],talking_npc:[251,0,0,"-"],test_traits:[252,0,0,"-"],traits:[253,0,0,"-"],tree_select:[254,0,0,"-"],turnbattle:[255,0,0,"-"],tutorial_examples:[261,0,0,"-"],tutorial_world:[267,0,0,"-"],unixcommand:[272,0,0,"-"],wilderness:[273,0,0,"-"],xyzgrid:[274,0,0,"-"]},"evennia.contrib.awsstorage":{aws_s3_cdn:[201,0,0,"-"],tests:[202,0,0,"-"]},"evennia.contrib.awsstorage.aws_s3_cdn":{S3Boto3Storage:[201,1,1,""],S3Boto3StorageFile:[201,1,1,""],check_location:[201,5,1,""],get_available_overwrite_name:[201,5,1,""],lookup_env:[201,5,1,""],safe_join:[201,5,1,""],setting:[201,5,1,""]},"evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage":{"delete":[201,3,1,""],__init__:[201,3,1,""],access_key:[201,4,1,""],access_key_names:[201,4,1,""],addressing_style:[201,4,1,""],auto_create_bucket:[201,4,1,""],bucket:[201,3,1,""],bucket_acl:[201,4,1,""],bucket_name:[201,4,1,""],config:[201,4,1,""],connection:[201,3,1,""],custom_domain:[201,4,1,""],deconstruct:[201,3,1,""],default_acl:[201,4,1,""],default_content_type:[201,4,1,""],encryption:[201,4,1,""],endpoint_url:[201,4,1,""],entries:[201,3,1,""],exists:[201,3,1,""],file_name_charset:[201,4,1,""],file_overwrite:[201,4,1,""],get_available_name:[201,3,1,""],get_modified_time:[201,3,1,""],get_object_parameters:[201,3,1,""],gzip:[201,4,1,""],gzip_content_types:[201,4,1,""],listdir:[201,3,1,""],location:[201,4,1,""],max_memory_size:[201,4,1,""],modified_time:[201,3,1,""],object_parameters:[201,4,1,""],preload_metadata:[201,4,1,""],proxies:[201,4,1,""],querystring_auth:[201,4,1,""],querystring_expire:[201,4,1,""],reduced_redundancy:[201,4,1,""],region_name:[201,4,1,""],secret_key:[201,4,1,""],secret_key_names:[201,4,1,""],secure_urls:[201,4,1,""],security_token:[201,4,1,""],security_token_names:[201,4,1,""],signature_version:[201,4,1,""],size:[201,3,1,""],url:[201,3,1,""],url_protocol:[201,4,1,""],use_ssl:[201,4,1,""],verify:[201,4,1,""]},"evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3StorageFile":{__init__:[201,3,1,""],buffer_size:[201,4,1,""],close:[201,3,1,""],deconstruct:[201,3,1,""],file:[201,3,1,""],read:[201,3,1,""],readline:[201,3,1,""],size:[201,3,1,""],write:[201,3,1,""]},"evennia.contrib.awsstorage.tests":{S3Boto3StorageTests:[202,1,1,""],S3Boto3TestCase:[202,1,1,""]},"evennia.contrib.awsstorage.tests.S3Boto3StorageTests":{test_auto_creating_bucket:[202,3,1,""],test_auto_creating_bucket_with_acl:[202,3,1,""],test_clean_name:[202,3,1,""],test_clean_name_normalize:[202,3,1,""],test_clean_name_trailing_slash:[202,3,1,""],test_clean_name_windows:[202,3,1,""],test_compress_content_len:[202,3,1,""],test_connection_threading:[202,3,1,""],test_content_type:[202,3,1,""],test_generated_url_is_encoded:[202,3,1,""],test_location_leading_slash:[202,3,1,""],test_override_class_variable:[202,3,1,""],test_override_init_argument:[202,3,1,""],test_pickle_with_bucket:[202,3,1,""],test_pickle_without_bucket:[202,3,1,""],test_special_characters:[202,3,1,""],test_storage_delete:[202,3,1,""],test_storage_exists:[202,3,1,""],test_storage_exists_doesnt_create_bucket:[202,3,1,""],test_storage_exists_false:[202,3,1,""],test_storage_listdir_base:[202,3,1,""],test_storage_listdir_subdir:[202,3,1,""],test_storage_mtime:[202,3,1,""],test_storage_open_no_overwrite_existing:[202,3,1,""],test_storage_open_no_write:[202,3,1,""],test_storage_open_write:[202,3,1,""],test_storage_save:[202,3,1,""],test_storage_save_gzip:[202,3,1,""],test_storage_save_gzip_twice:[202,3,1,""],test_storage_save_gzipped:[202,3,1,""],test_storage_save_with_acl:[202,3,1,""],test_storage_size:[202,3,1,""],test_storage_url:[202,3,1,""],test_storage_url_slashes:[202,3,1,""],test_storage_write_beyond_buffer_size:[202,3,1,""],test_strip_signing_parameters:[202,3,1,""]},"evennia.contrib.awsstorage.tests.S3Boto3TestCase":{setUp:[202,3,1,""]},"evennia.contrib.barter":{CmdAccept:[203,1,1,""],CmdDecline:[203,1,1,""],CmdEvaluate:[203,1,1,""],CmdFinish:[203,1,1,""],CmdOffer:[203,1,1,""],CmdStatus:[203,1,1,""],CmdTrade:[203,1,1,""],CmdTradeBase:[203,1,1,""],CmdTradeHelp:[203,1,1,""],CmdsetTrade:[203,1,1,""],TradeHandler:[203,1,1,""],TradeTimeout:[203,1,1,""]},"evennia.contrib.barter.CmdAccept":{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.barter.CmdDecline":{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.barter.CmdEvaluate":{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.barter.CmdFinish":{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.barter.CmdOffer":{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.barter.CmdStatus":{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.barter.CmdTrade":{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.barter.CmdTradeBase":{aliases:[203,4,1,""],help_category:[203,4,1,""],key:[203,4,1,""],lock_storage:[203,4,1,""],parse:[203,3,1,""],search_index_entry:[203,4,1,""]},"evennia.contrib.barter.CmdTradeHelp":{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.barter.CmdsetTrade":{at_cmdset_creation:[203,3,1,""],key:[203,4,1,""],path:[203,4,1,""]},"evennia.contrib.barter.TradeHandler":{__init__:[203,3,1,""],accept:[203,3,1,""],decline:[203,3,1,""],finish:[203,3,1,""],get_other:[203,3,1,""],join:[203,3,1,""],list:[203,3,1,""],msg_other:[203,3,1,""],offer:[203,3,1,""],search:[203,3,1,""],unjoin:[203,3,1,""]},"evennia.contrib.barter.TradeTimeout":{DoesNotExist:[203,2,1,""],MultipleObjectsReturned:[203,2,1,""],at_repeat:[203,3,1,""],at_script_creation:[203,3,1,""],is_valid:[203,3,1,""],path:[203,4,1,""],typename:[203,4,1,""]},"evennia.contrib.building_menu":{BuildingMenu:[204,1,1,""],BuildingMenuCmdSet:[204,1,1,""],Choice:[204,1,1,""],CmdNoInput:[204,1,1,""],CmdNoMatch:[204,1,1,""],GenericBuildingCmd:[204,1,1,""],GenericBuildingMenu:[204,1,1,""],menu_edit:[204,5,1,""],menu_quit:[204,5,1,""],menu_setattr:[204,5,1,""]},"evennia.contrib.building_menu.BuildingMenu":{__init__:[204,3,1,""],add_choice:[204,3,1,""],add_choice_edit:[204,3,1,""],add_choice_quit:[204,3,1,""],close:[204,3,1,""],current_choice:[204,3,1,""],display:[204,3,1,""],display_choice:[204,3,1,""],display_title:[204,3,1,""],init:[204,3,1,""],joker_key:[204,4,1,""],keys_go_back:[204,4,1,""],min_shortcut:[204,4,1,""],move:[204,3,1,""],open:[204,3,1,""],open_parent_menu:[204,3,1,""],open_submenu:[204,3,1,""],relevant_choices:[204,3,1,""],restore:[204,3,1,""],sep_keys:[204,4,1,""]},"evennia.contrib.building_menu.BuildingMenuCmdSet":{at_cmdset_creation:[204,3,1,""],key:[204,4,1,""],path:[204,4,1,""],priority:[204,4,1,""]},"evennia.contrib.building_menu.Choice":{__init__:[204,3,1,""],enter:[204,3,1,""],format_text:[204,3,1,""],keys:[204,3,1,""],leave:[204,3,1,""],nomatch:[204,3,1,""]},"evennia.contrib.building_menu.CmdNoInput":{__init__:[204,3,1,""],aliases:[204,4,1,""],func:[204,3,1,""],help_category:[204,4,1,""],key:[204,4,1,""],lock_storage:[204,4,1,""],locks:[204,4,1,""],search_index_entry:[204,4,1,""]},"evennia.contrib.building_menu.CmdNoMatch":{__init__:[204,3,1,""],aliases:[204,4,1,""],func:[204,3,1,""],help_category:[204,4,1,""],key:[204,4,1,""],lock_storage:[204,4,1,""],locks:[204,4,1,""],search_index_entry:[204,4,1,""]},"evennia.contrib.building_menu.GenericBuildingCmd":{aliases:[204,4,1,""],func:[204,3,1,""],help_category:[204,4,1,""],key:[204,4,1,""],lock_storage:[204,4,1,""],search_index_entry:[204,4,1,""]},"evennia.contrib.building_menu.GenericBuildingMenu":{init:[204,3,1,""]},"evennia.contrib.chargen":{CmdOOCCharacterCreate:[205,1,1,""],CmdOOCLook:[205,1,1,""],OOCCmdSetCharGen:[205,1,1,""]},"evennia.contrib.chargen.CmdOOCCharacterCreate":{aliases:[205,4,1,""],func:[205,3,1,""],help_category:[205,4,1,""],key:[205,4,1,""],lock_storage:[205,4,1,""],locks:[205,4,1,""],search_index_entry:[205,4,1,""]},"evennia.contrib.chargen.CmdOOCLook":{aliases:[205,4,1,""],func:[205,3,1,""],help_category:[205,4,1,""],key:[205,4,1,""],lock_storage:[205,4,1,""],locks:[205,4,1,""],search_index_entry:[205,4,1,""]},"evennia.contrib.chargen.OOCCmdSetCharGen":{at_cmdset_creation:[205,3,1,""],path:[205,4,1,""]},"evennia.contrib.clothing":{ClothedCharacter:[206,1,1,""],ClothedCharacterCmdSet:[206,1,1,""],Clothing:[206,1,1,""],CmdCover:[206,1,1,""],CmdDrop:[206,1,1,""],CmdGive:[206,1,1,""],CmdInventory:[206,1,1,""],CmdRemove:[206,1,1,""],CmdUncover:[206,1,1,""],CmdWear:[206,1,1,""],clothing_type_count:[206,5,1,""],get_worn_clothes:[206,5,1,""],order_clothes_list:[206,5,1,""],single_type_count:[206,5,1,""]},"evennia.contrib.clothing.ClothedCharacter":{DoesNotExist:[206,2,1,""],MultipleObjectsReturned:[206,2,1,""],path:[206,4,1,""],return_appearance:[206,3,1,""],typename:[206,4,1,""]},"evennia.contrib.clothing.ClothedCharacterCmdSet":{at_cmdset_creation:[206,3,1,""],key:[206,4,1,""],path:[206,4,1,""]},"evennia.contrib.clothing.Clothing":{DoesNotExist:[206,2,1,""],MultipleObjectsReturned:[206,2,1,""],at_get:[206,3,1,""],path:[206,4,1,""],remove:[206,3,1,""],typename:[206,4,1,""],wear:[206,3,1,""]},"evennia.contrib.clothing.CmdCover":{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.clothing.CmdDrop":{aliases:[206,4,1,""],arg_regex:[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.clothing.CmdGive":{aliases:[206,4,1,""],arg_regex:[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.clothing.CmdInventory":{aliases:[206,4,1,""],arg_regex:[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.clothing.CmdRemove":{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.clothing.CmdUncover":{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.clothing.CmdWear":{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.crafting":{crafting:[209,0,0,"-"],example_recipes:[210,0,0,"-"],tests:[211,0,0,"-"]},"evennia.contrib.crafting.crafting":{CmdCraft:[209,1,1,""],CraftingCmdSet:[209,1,1,""],CraftingError:[209,2,1,""],CraftingRecipe:[209,1,1,""],CraftingRecipeBase:[209,1,1,""],CraftingValidationError:[209,2,1,""],craft:[209,5,1,""]},"evennia.contrib.crafting.crafting.CmdCraft":{aliases:[209,4,1,""],arg_regex:[209,4,1,""],func:[209,3,1,""],help_category:[209,4,1,""],key:[209,4,1,""],lock_storage:[209,4,1,""],locks:[209,4,1,""],parse:[209,3,1,""],search_index_entry:[209,4,1,""]},"evennia.contrib.crafting.crafting.CraftingCmdSet":{at_cmdset_creation:[209,3,1,""],key:[209,4,1,""],path:[209,4,1,""]},"evennia.contrib.crafting.crafting.CraftingRecipe":{__init__:[209,3,1,""],consumable_names:[209,4,1,""],consumable_tag_category:[209,4,1,""],consumable_tags:[209,4,1,""],consume_on_fail:[209,4,1,""],do_craft:[209,3,1,""],error_consumable_excess_message:[209,4,1,""],error_consumable_missing_message:[209,4,1,""],error_consumable_order_message:[209,4,1,""],error_tool_excess_message:[209,4,1,""],error_tool_missing_message:[209,4,1,""],error_tool_order_message:[209,4,1,""],exact_consumable_order:[209,4,1,""],exact_consumables:[209,4,1,""],exact_tool_order:[209,4,1,""],exact_tools:[209,4,1,""],failure_message:[209,4,1,""],name:[209,4,1,""],output_names:[209,4,1,""],output_prototypes:[209,4,1,""],post_craft:[209,3,1,""],pre_craft:[209,3,1,""],seed:[209,3,1,""],success_message:[209,4,1,""],tool_names:[209,4,1,""],tool_tag_category:[209,4,1,""],tool_tags:[209,4,1,""]},"evennia.contrib.crafting.crafting.CraftingRecipeBase":{__init__:[209,3,1,""],allow_reuse:[209,4,1,""],craft:[209,3,1,""],do_craft:[209,3,1,""],msg:[209,3,1,""],name:[209,4,1,""],post_craft:[209,3,1,""],pre_craft:[209,3,1,""]},"evennia.contrib.crafting.example_recipes":{CmdCast:[210,1,1,""],CrucibleSteelRecipe:[210,1,1,""],FireballRecipe:[210,1,1,""],HealingRecipe:[210,1,1,""],LeatherRecipe:[210,1,1,""],OakBarkRecipe:[210,1,1,""],PigIronRecipe:[210,1,1,""],RawhideRecipe:[210,1,1,""],SwordBladeRecipe:[210,1,1,""],SwordGuardRecipe:[210,1,1,""],SwordHandleRecipe:[210,1,1,""],SwordPommelRecipe:[210,1,1,""],SwordRecipe:[210,1,1,""],random:[210,5,1,""]},"evennia.contrib.crafting.example_recipes.CmdCast":{aliases:[210,4,1,""],func:[210,3,1,""],help_category:[210,4,1,""],key:[210,4,1,""],lock_storage:[210,4,1,""],parse:[210,3,1,""],search_index_entry:[210,4,1,""]},"evennia.contrib.crafting.example_recipes.CrucibleSteelRecipe":{consumable_tags:[210,4,1,""],name:[210,4,1,""],output_prototypes:[210,4,1,""],tool_tags:[210,4,1,""]},"evennia.contrib.crafting.example_recipes.FireballRecipe":{desired_effects:[210,4,1,""],failure_effects:[210,4,1,""],name:[210,4,1,""],skill_requirements:[210,4,1,""],skill_roll:[210,4,1,""],success_message:[210,4,1,""]},"evennia.contrib.crafting.example_recipes.HealingRecipe":{desired_effects:[210,4,1,""],failure_effects:[210,4,1,""],name:[210,4,1,""],skill_requirements:[210,4,1,""],skill_roll:[210,4,1,""],success_message:[210,4,1,""]},"evennia.contrib.crafting.example_recipes.LeatherRecipe":{consumable_tags:[210,4,1,""],name:[210,4,1,""],output_prototypes:[210,4,1,""],tool_tags:[210,4,1,""]},"evennia.contrib.crafting.example_recipes.OakBarkRecipe":{consumable_tags:[210,4,1,""],name:[210,4,1,""],output_prototypes:[210,4,1,""],tool_tags:[210,4,1,""]},"evennia.contrib.crafting.example_recipes.PigIronRecipe":{consumable_tags:[210,4,1,""],name:[210,4,1,""],output_prototypes:[210,4,1,""],tool_tags:[210,4,1,""]},"evennia.contrib.crafting.example_recipes.RawhideRecipe":{consumable_tags:[210,4,1,""],name:[210,4,1,""],output_prototypes:[210,4,1,""],tool_tags:[210,4,1,""]},"evennia.contrib.crafting.example_recipes.SwordBladeRecipe":{consumable_tags:[210,4,1,""],name:[210,4,1,""],output_prototypes:[210,4,1,""],tool_tags:[210,4,1,""]},"evennia.contrib.crafting.example_recipes.SwordGuardRecipe":{consumable_tags:[210,4,1,""],name:[210,4,1,""],output_prototypes:[210,4,1,""],tool_tags:[210,4,1,""]},"evennia.contrib.crafting.example_recipes.SwordHandleRecipe":{consumable_tags:[210,4,1,""],name:[210,4,1,""],output_prototypes:[210,4,1,""],tool_tags:[210,4,1,""]},"evennia.contrib.crafting.example_recipes.SwordPommelRecipe":{consumable_tags:[210,4,1,""],name:[210,4,1,""],output_prototypes:[210,4,1,""],tool_tags:[210,4,1,""]},"evennia.contrib.crafting.example_recipes.SwordRecipe":{consumable_tags:[210,4,1,""],exact_consumable_order:[210,4,1,""],name:[210,4,1,""],output_prototypes:[210,4,1,""],tool_tags:[210,4,1,""]},"evennia.contrib.crafting.tests":{TestCraftCommand:[211,1,1,""],TestCraftSword:[211,1,1,""],TestCraftUtils:[211,1,1,""],TestCraftingRecipe:[211,1,1,""],TestCraftingRecipeBase:[211,1,1,""]},"evennia.contrib.crafting.tests.TestCraftCommand":{setUp:[211,3,1,""],test_craft__nocons__failure:[211,3,1,""],test_craft__notools__failure:[211,3,1,""],test_craft__success:[211,3,1,""]},"evennia.contrib.crafting.tests.TestCraftSword":{setUp:[211,3,1,""],test_craft_sword:[211,3,1,""]},"evennia.contrib.crafting.tests.TestCraftUtils":{maxDiff:[211,4,1,""],test_load_recipes:[211,3,1,""]},"evennia.contrib.crafting.tests.TestCraftingRecipe":{maxDiff:[211,4,1,""],setUp:[211,3,1,""],tearDown:[211,3,1,""],test_craft__success:[211,3,1,""],test_craft_cons_excess__fail:[211,3,1,""],test_craft_cons_excess__sucess:[211,3,1,""],test_craft_cons_order__fail:[211,3,1,""],test_craft_missing_cons__always_consume__fail:[211,3,1,""],test_craft_missing_cons__fail:[211,3,1,""],test_craft_missing_tool__fail:[211,3,1,""],test_craft_tool_excess__fail:[211,3,1,""],test_craft_tool_excess__sucess:[211,3,1,""],test_craft_tool_order__fail:[211,3,1,""],test_craft_wrong_tool__fail:[211,3,1,""],test_error_format:[211,3,1,""],test_seed__success:[211,3,1,""]},"evennia.contrib.crafting.tests.TestCraftingRecipeBase":{setUp:[211,3,1,""],test_craft_hook__fail:[211,3,1,""],test_craft_hook__succeed:[211,3,1,""],test_msg:[211,3,1,""],test_pre_craft:[211,3,1,""],test_pre_craft_fail:[211,3,1,""]},"evennia.contrib.custom_gametime":{GametimeScript:[212,1,1,""],custom_gametime:[212,5,1,""],gametime_to_realtime:[212,5,1,""],real_seconds_until:[212,5,1,""],realtime_to_gametime:[212,5,1,""],schedule:[212,5,1,""],time_to_tuple:[212,5,1,""]},"evennia.contrib.custom_gametime.GametimeScript":{DoesNotExist:[212,2,1,""],MultipleObjectsReturned:[212,2,1,""],at_repeat:[212,3,1,""],at_script_creation:[212,3,1,""],path:[212,4,1,""],typename:[212,4,1,""]},"evennia.contrib.dice":{CmdDice:[213,1,1,""],DiceCmdSet:[213,1,1,""],roll_dice:[213,5,1,""]},"evennia.contrib.dice.CmdDice":{aliases:[213,4,1,""],func:[213,3,1,""],help_category:[213,4,1,""],key:[213,4,1,""],lock_storage:[213,4,1,""],locks:[213,4,1,""],search_index_entry:[213,4,1,""]},"evennia.contrib.dice.DiceCmdSet":{at_cmdset_creation:[213,3,1,""],path:[213,4,1,""]},"evennia.contrib.email_login":{CmdUnconnectedConnect:[214,1,1,""],CmdUnconnectedCreate:[214,1,1,""],CmdUnconnectedHelp:[214,1,1,""],CmdUnconnectedLook:[214,1,1,""],CmdUnconnectedQuit:[214,1,1,""]},"evennia.contrib.email_login.CmdUnconnectedConnect":{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.email_login.CmdUnconnectedCreate":{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,""],parse:[214,3,1,""],search_index_entry:[214,4,1,""]},"evennia.contrib.email_login.CmdUnconnectedHelp":{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.email_login.CmdUnconnectedLook":{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.email_login.CmdUnconnectedQuit":{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.evscaperoom":{commands:[216,0,0,"-"],menu:[217,0,0,"-"],objects:[218,0,0,"-"],room:[219,0,0,"-"],state:[221,0,0,"-"],tests:[222,0,0,"-"],utils:[223,0,0,"-"]},"evennia.contrib.evscaperoom.commands":{CmdCreateObj:[216,1,1,""],CmdEmote:[216,1,1,""],CmdEvscapeRoom:[216,1,1,""],CmdEvscapeRoomStart:[216,1,1,""],CmdFocus:[216,1,1,""],CmdFocusInteraction:[216,1,1,""],CmdGet:[216,1,1,""],CmdGiveUp:[216,1,1,""],CmdHelp:[216,1,1,""],CmdJumpState:[216,1,1,""],CmdLook:[216,1,1,""],CmdOptions:[216,1,1,""],CmdRerouter:[216,1,1,""],CmdSetEvScapeRoom:[216,1,1,""],CmdSetFlag:[216,1,1,""],CmdSpeak:[216,1,1,""],CmdStand:[216,1,1,""],CmdWho:[216,1,1,""]},"evennia.contrib.evscaperoom.commands.CmdCreateObj":{aliases:[216,4,1,""],func:[216,3,1,""],help_category:[216,4,1,""],key:[216,4,1,""],lock_storage:[216,4,1,""],locks:[216,4,1,""],obj1_search:[216,4,1,""],obj2_search:[216,4,1,""],search_index_entry:[216,4,1,""]},"evennia.contrib.evscaperoom.commands.CmdEmote":{aliases:[216,4,1,""],arg_regex:[216,4,1,""],func:[216,3,1,""],help_category:[216,4,1,""],key:[216,4,1,""],lock_storage:[216,4,1,""],room_replace:[216,3,1,""],search_index_entry:[216,4,1,""],you_replace:[216,3,1,""]},"evennia.contrib.evscaperoom.commands.CmdEvscapeRoom":{aliases:[216,4,1,""],arg_regex:[216,4,1,""],focus:[216,3,1,""],help_category:[216,4,1,""],key:[216,4,1,""],lock_storage:[216,4,1,""],obj1_search:[216,4,1,""],obj2_search:[216,4,1,""],parse:[216,3,1,""],search_index_entry:[216,4,1,""]},"evennia.contrib.evscaperoom.commands.CmdEvscapeRoomStart":{aliases:[216,4,1,""],func:[216,3,1,""],help_category:[216,4,1,""],key:[216,4,1,""],lock_storage:[216,4,1,""],search_index_entry:[216,4,1,""]},"evennia.contrib.evscaperoom.commands.CmdFocus":{aliases:[216,4,1,""],func:[216,3,1,""],help_category:[216,4,1,""],key:[216,4,1,""],lock_storage:[216,4,1,""],obj1_search:[216,4,1,""],search_index_entry:[216,4,1,""]},"evennia.contrib.evscaperoom.commands.CmdFocusInteraction":{aliases:[216,4,1,""],func:[216,3,1,""],help_category:[216,4,1,""],key:[216,4,1,""],lock_storage:[216,4,1,""],obj1_search:[216,4,1,""],obj2_search:[216,4,1,""],parse:[216,3,1,""],search_index_entry:[216,4,1,""]},"evennia.contrib.evscaperoom.commands.CmdGet":{aliases:[216,4,1,""],func:[216,3,1,""],help_category:[216,4,1,""],key:[216,4,1,""],lock_storage:[216,4,1,""],search_index_entry:[216,4,1,""]},"evennia.contrib.evscaperoom.commands.CmdGiveUp":{aliases:[216,4,1,""],func:[216,3,1,""],help_category:[216,4,1,""],key:[216,4,1,""],lock_storage:[216,4,1,""],search_index_entry:[216,4,1,""]},"evennia.contrib.evscaperoom.commands.CmdHelp":{aliases:[216,4,1,""],func:[216,3,1,""],help_category:[216,4,1,""],key:[216,4,1,""],lock_storage:[216,4,1,""],search_index_entry:[216,4,1,""]},"evennia.contrib.evscaperoom.commands.CmdJumpState":{aliases:[216,4,1,""],func:[216,3,1,""],help_category:[216,4,1,""],key:[216,4,1,""],lock_storage:[216,4,1,""],locks:[216,4,1,""],obj1_search:[216,4,1,""],obj2_search:[216,4,1,""],search_index_entry:[216,4,1,""]},"evennia.contrib.evscaperoom.commands.CmdLook":{aliases:[216,4,1,""],func:[216,3,1,""],help_category:[216,4,1,""],key:[216,4,1,""],lock_storage:[216,4,1,""],obj1_search:[216,4,1,""],obj2_search:[216,4,1,""],search_index_entry:[216,4,1,""]},"evennia.contrib.evscaperoom.commands.CmdOptions":{aliases:[216,4,1,""],func:[216,3,1,""],help_category:[216,4,1,""],key:[216,4,1,""],lock_storage:[216,4,1,""],search_index_entry:[216,4,1,""]},"evennia.contrib.evscaperoom.commands.CmdRerouter":{aliases:[216,4,1,""],func:[216,3,1,""],help_category:[216,4,1,""],key:[216,4,1,""],lock_storage:[216,4,1,""],search_index_entry:[216,4,1,""]},"evennia.contrib.evscaperoom.commands.CmdSetEvScapeRoom":{at_cmdset_creation:[216,3,1,""],path:[216,4,1,""],priority:[216,4,1,""]},"evennia.contrib.evscaperoom.commands.CmdSetFlag":{aliases:[216,4,1,""],func:[216,3,1,""],help_category:[216,4,1,""],key:[216,4,1,""],lock_storage:[216,4,1,""],locks:[216,4,1,""],obj1_search:[216,4,1,""],obj2_search:[216,4,1,""],search_index_entry:[216,4,1,""]},"evennia.contrib.evscaperoom.commands.CmdSpeak":{aliases:[216,4,1,""],arg_regex:[216,4,1,""],func:[216,3,1,""],help_category:[216,4,1,""],key:[216,4,1,""],lock_storage:[216,4,1,""],search_index_entry:[216,4,1,""]},"evennia.contrib.evscaperoom.commands.CmdStand":{aliases:[216,4,1,""],func:[216,3,1,""],help_category:[216,4,1,""],key:[216,4,1,""],lock_storage:[216,4,1,""],search_index_entry:[216,4,1,""]},"evennia.contrib.evscaperoom.commands.CmdWho":{aliases:[216,4,1,""],func:[216,3,1,""],help_category:[216,4,1,""],key:[216,4,1,""],lock_storage:[216,4,1,""],obj1_search:[216,4,1,""],obj2_search:[216,4,1,""],search_index_entry:[216,4,1,""]},"evennia.contrib.evscaperoom.menu":{EvscaperoomMenu:[217,1,1,""],OptionsMenu:[217,1,1,""],node_create_room:[217,5,1,""],node_join_room:[217,5,1,""],node_options:[217,5,1,""],node_quit:[217,5,1,""],node_set_desc:[217,5,1,""],run_evscaperoom_menu:[217,5,1,""],run_option_menu:[217,5,1,""]},"evennia.contrib.evscaperoom.menu.EvscaperoomMenu":{node_border_char:[217,4,1,""],nodetext_formatter:[217,3,1,""],options_formatter:[217,3,1,""]},"evennia.contrib.evscaperoom.menu.OptionsMenu":{node_formatter:[217,3,1,""]},"evennia.contrib.evscaperoom.objects":{BaseApplicable:[218,1,1,""],BaseConsumable:[218,1,1,""],BasePositionable:[218,1,1,""],Climbable:[218,1,1,""],CodeInput:[218,1,1,""],Combinable:[218,1,1,""],Drinkable:[218,1,1,""],Edible:[218,1,1,""],EvscaperoomObject:[218,1,1,""],Feelable:[218,1,1,""],HasButtons:[218,1,1,""],IndexReadable:[218,1,1,""],Insertable:[218,1,1,""],Kneelable:[218,1,1,""],Liable:[218,1,1,""],Listenable:[218,1,1,""],Mixable:[218,1,1,""],Movable:[218,1,1,""],Openable:[218,1,1,""],Positionable:[218,1,1,""],Readable:[218,1,1,""],Rotatable:[218,1,1,""],Sittable:[218,1,1,""],Smellable:[218,1,1,""],Usable:[218,1,1,""]},"evennia.contrib.evscaperoom.objects.BaseApplicable":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_apply:[218,3,1,""],at_cannot_apply:[218,3,1,""],handle_apply:[218,3,1,""],path:[218,4,1,""],target_flag:[218,4,1,""],typename:[218,4,1,""]},"evennia.contrib.evscaperoom.objects.BaseConsumable":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_already_consumed:[218,3,1,""],at_consume:[218,3,1,""],consume_flag:[218,4,1,""],handle_consume:[218,3,1,""],has_consumed:[218,3,1,""],one_consume_only:[218,4,1,""],path:[218,4,1,""],typename:[218,4,1,""]},"evennia.contrib.evscaperoom.objects.BasePositionable":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_again_position:[218,3,1,""],at_cannot_position:[218,3,1,""],at_object_creation:[218,3,1,""],at_position:[218,3,1,""],handle_position:[218,3,1,""],path:[218,4,1,""],typename:[218,4,1,""]},"evennia.contrib.evscaperoom.objects.Climbable":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_focus_climb:[218,3,1,""],path:[218,4,1,""],typename:[218,4,1,""]},"evennia.contrib.evscaperoom.objects.CodeInput":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_code_correct:[218,3,1,""],at_code_incorrect:[218,3,1,""],at_focus_code:[218,3,1,""],at_no_code:[218,3,1,""],case_insensitive:[218,4,1,""],code:[218,4,1,""],code_hint:[218,4,1,""],get_cmd_signatures:[218,3,1,""],infinitely_locked:[218,4,1,""],path:[218,4,1,""],typename:[218,4,1,""]},"evennia.contrib.evscaperoom.objects.Combinable":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_apply:[218,3,1,""],at_cannot_apply:[218,3,1,""],at_focus_combine:[218,3,1,""],destroy_components:[218,4,1,""],get_cmd_signatures:[218,3,1,""],new_create_dict:[218,4,1,""],path:[218,4,1,""],target_flag:[218,4,1,""],typename:[218,4,1,""]},"evennia.contrib.evscaperoom.objects.Drinkable":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_already_consumed:[218,3,1,""],at_consume:[218,3,1,""],at_focus_drink:[218,3,1,""],at_focus_sip:[218,3,1,""],consume_flag:[218,4,1,""],path:[218,4,1,""],typename:[218,4,1,""]},"evennia.contrib.evscaperoom.objects.Edible":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_focus_eat:[218,3,1,""],consume_flag:[218,4,1,""],path:[218,4,1,""],typename:[218,4,1,""]},"evennia.contrib.evscaperoom.objects.EvscaperoomObject":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],action_prepositions:[218,4,1,""],at_focus:[218,3,1,""],at_object_creation:[218,3,1,""],at_speech:[218,3,1,""],at_unfocus:[218,3,1,""],check_character_flag:[218,3,1,""],check_flag:[218,3,1,""],get_cmd_signatures:[218,3,1,""],get_help:[218,3,1,""],get_position:[218,3,1,""],get_short_desc:[218,3,1,""],msg_char:[218,3,1,""],msg_room:[218,3,1,""],msg_system:[218,3,1,""],next_state:[218,3,1,""],parse:[218,3,1,""],path:[218,4,1,""],position_prep_map:[218,4,1,""],return_appearance:[218,3,1,""],room:[218,3,1,""],roomstate:[218,3,1,""],set_character_flag:[218,3,1,""],set_flag:[218,3,1,""],set_position:[218,3,1,""],tagcategory:[218,3,1,""],typename:[218,4,1,""],unset_character_flag:[218,3,1,""],unset_flag:[218,3,1,""]},"evennia.contrib.evscaperoom.objects.Feelable":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_focus_feel:[218,3,1,""],path:[218,4,1,""],typename:[218,4,1,""]},"evennia.contrib.evscaperoom.objects.HasButtons":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_focus_press:[218,3,1,""],at_focus_push:[218,3,1,""],at_green_button:[218,3,1,""],at_nomatch:[218,3,1,""],at_red_button:[218,3,1,""],buttons:[218,4,1,""],get_cmd_signatures:[218,3,1,""],path:[218,4,1,""],typename:[218,4,1,""]},"evennia.contrib.evscaperoom.objects.IndexReadable":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_cannot_read:[218,3,1,""],at_focus_read:[218,3,1,""],at_read:[218,3,1,""],get_cmd_signatures:[218,3,1,""],index:[218,4,1,""],path:[218,4,1,""],typename:[218,4,1,""]},"evennia.contrib.evscaperoom.objects.Insertable":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_apply:[218,3,1,""],at_cannot_apply:[218,3,1,""],at_focus_insert:[218,3,1,""],get_cmd_signatures:[218,3,1,""],path:[218,4,1,""],target_flag:[218,4,1,""],typename:[218,4,1,""]},"evennia.contrib.evscaperoom.objects.Kneelable":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_focus_kneel:[218,3,1,""],path:[218,4,1,""],typename:[218,4,1,""]},"evennia.contrib.evscaperoom.objects.Liable":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_focus_lie:[218,3,1,""],path:[218,4,1,""],typename:[218,4,1,""]},"evennia.contrib.evscaperoom.objects.Listenable":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_focus_listen:[218,3,1,""],path:[218,4,1,""],typename:[218,4,1,""]},"evennia.contrib.evscaperoom.objects.Mixable":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_mix:[218,3,1,""],at_mix_failure:[218,3,1,""],at_mix_success:[218,3,1,""],at_object_creation:[218,3,1,""],check_mixture:[218,3,1,""],handle_mix:[218,3,1,""],ingredient_recipe:[218,4,1,""],mixer_flag:[218,4,1,""],path:[218,4,1,""],typename:[218,4,1,""]},"evennia.contrib.evscaperoom.objects.Movable":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_already_moved:[218,3,1,""],at_cannot_move:[218,3,1,""],at_focus_move:[218,3,1,""],at_focus_push:[218,3,1,""],at_focus_shove:[218,3,1,""],at_left:[218,3,1,""],at_object_creation:[218,3,1,""],at_right:[218,3,1,""],get_cmd_signatures:[218,3,1,""],move_positions:[218,4,1,""],path:[218,4,1,""],start_position:[218,4,1,""],typename:[218,4,1,""]},"evennia.contrib.evscaperoom.objects.Openable":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_already_closed:[218,3,1,""],at_already_open:[218,3,1,""],at_close:[218,3,1,""],at_focus_close:[218,3,1,""],at_focus_open:[218,3,1,""],at_locked:[218,3,1,""],at_object_creation:[218,3,1,""],at_open:[218,3,1,""],open_flag:[218,4,1,""],path:[218,4,1,""],start_open:[218,4,1,""],typename:[218,4,1,""],unlock_flag:[218,4,1,""]},"evennia.contrib.evscaperoom.objects.Positionable":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],get_cmd_signatures:[218,3,1,""],path:[218,4,1,""],typename:[218,4,1,""]},"evennia.contrib.evscaperoom.objects.Readable":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_cannot_read:[218,3,1,""],at_focus_read:[218,3,1,""],at_object_creation:[218,3,1,""],at_read:[218,3,1,""],path:[218,4,1,""],read_flag:[218,4,1,""],start_readable:[218,4,1,""],typename:[218,4,1,""]},"evennia.contrib.evscaperoom.objects.Rotatable":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_cannot_rotate:[218,3,1,""],at_focus_rotate:[218,3,1,""],at_focus_turn:[218,3,1,""],at_object_creation:[218,3,1,""],at_rotate:[218,3,1,""],path:[218,4,1,""],rotate_flag:[218,4,1,""],start_rotatable:[218,4,1,""],typename:[218,4,1,""]},"evennia.contrib.evscaperoom.objects.Sittable":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_focus_sit:[218,3,1,""],path:[218,4,1,""],typename:[218,4,1,""]},"evennia.contrib.evscaperoom.objects.Smellable":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_focus_smell:[218,3,1,""],path:[218,4,1,""],typename:[218,4,1,""]},"evennia.contrib.evscaperoom.objects.Usable":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_apply:[218,3,1,""],at_cannot_apply:[218,3,1,""],at_focus_use:[218,3,1,""],path:[218,4,1,""],target_flag:[218,4,1,""],typename:[218,4,1,""]},"evennia.contrib.evscaperoom.room":{EvscapeRoom:[219,1,1,""]},"evennia.contrib.evscaperoom.room.EvscapeRoom":{"delete":[219,3,1,""],DoesNotExist:[219,2,1,""],MultipleObjectsReturned:[219,2,1,""],achievement:[219,3,1,""],at_object_creation:[219,3,1,""],at_object_leave:[219,3,1,""],at_object_receive:[219,3,1,""],character_cleanup:[219,3,1,""],character_exit:[219,3,1,""],check_flag:[219,3,1,""],check_perm:[219,3,1,""],get_all_characters:[219,3,1,""],log:[219,3,1,""],path:[219,4,1,""],progress:[219,3,1,""],return_appearance:[219,3,1,""],score:[219,3,1,""],set_flag:[219,3,1,""],state:[219,3,1,""],statehandler:[219,4,1,""],tag_all_characters:[219,3,1,""],tag_character:[219,3,1,""],typename:[219,4,1,""],unset_flag:[219,3,1,""]},"evennia.contrib.evscaperoom.state":{BaseState:[221,1,1,""],StateHandler:[221,1,1,""]},"evennia.contrib.evscaperoom.state.BaseState":{__init__:[221,3,1,""],character_enters:[221,3,1,""],character_leaves:[221,3,1,""],cinematic:[221,3,1,""],clean:[221,3,1,""],create_object:[221,3,1,""],get_hint:[221,3,1,""],get_object:[221,3,1,""],hints:[221,4,1,""],init:[221,3,1,""],msg:[221,3,1,""],next:[221,3,1,""],next_state:[221,4,1,""]},"evennia.contrib.evscaperoom.state.StateHandler":{__init__:[221,3,1,""],init_state:[221,3,1,""],load_state:[221,3,1,""],next_state:[221,3,1,""]},"evennia.contrib.evscaperoom.tests":{TestEvScapeRoom:[222,1,1,""],TestEvscaperoomCommands:[222,1,1,""],TestStates:[222,1,1,""],TestUtils:[222,1,1,""]},"evennia.contrib.evscaperoom.tests.TestEvScapeRoom":{setUp:[222,3,1,""],tearDown:[222,3,1,""],test_room_methods:[222,3,1,""]},"evennia.contrib.evscaperoom.tests.TestEvscaperoomCommands":{setUp:[222,3,1,""],test_base_parse:[222,3,1,""],test_base_search:[222,3,1,""],test_emote:[222,3,1,""],test_focus:[222,3,1,""],test_focus_interaction:[222,3,1,""],test_look:[222,3,1,""],test_set_focus:[222,3,1,""],test_speech:[222,3,1,""]},"evennia.contrib.evscaperoom.tests.TestStates":{setUp:[222,3,1,""],tearDown:[222,3,1,""],test_all_states:[222,3,1,""],test_base_state:[222,3,1,""]},"evennia.contrib.evscaperoom.tests.TestUtils":{test_overwrite:[222,3,1,""],test_parse_for_perspectives:[222,3,1,""],test_parse_for_things:[222,3,1,""]},"evennia.contrib.evscaperoom.utils":{add_msg_borders:[223,5,1,""],create_evscaperoom_object:[223,5,1,""],create_fantasy_word:[223,5,1,""],msg_cinematic:[223,5,1,""],parse_for_perspectives:[223,5,1,""],parse_for_things:[223,5,1,""]},"evennia.contrib.extended_room":{CmdExtendedRoomDesc:[224,1,1,""],CmdExtendedRoomDetail:[224,1,1,""],CmdExtendedRoomGameTime:[224,1,1,""],CmdExtendedRoomLook:[224,1,1,""],ExtendedRoom:[224,1,1,""],ExtendedRoomCmdSet:[224,1,1,""]},"evennia.contrib.extended_room.CmdExtendedRoomDesc":{aliases:[224,4,1,""],func:[224,3,1,""],help_category:[224,4,1,""],key:[224,4,1,""],lock_storage:[224,4,1,""],reset_times:[224,3,1,""],search_index_entry:[224,4,1,""],switch_options:[224,4,1,""]},"evennia.contrib.extended_room.CmdExtendedRoomDetail":{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.extended_room.CmdExtendedRoomGameTime":{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.extended_room.CmdExtendedRoomLook":{aliases:[224,4,1,""],func:[224,3,1,""],help_category:[224,4,1,""],key:[224,4,1,""],lock_storage:[224,4,1,""],search_index_entry:[224,4,1,""]},"evennia.contrib.extended_room.ExtendedRoom":{DoesNotExist:[224,2,1,""],MultipleObjectsReturned:[224,2,1,""],at_object_creation:[224,3,1,""],del_detail:[224,3,1,""],get_time_and_season:[224,3,1,""],path:[224,4,1,""],replace_timeslots:[224,3,1,""],return_appearance:[224,3,1,""],return_detail:[224,3,1,""],set_detail:[224,3,1,""],typename:[224,4,1,""],update_current_description:[224,3,1,""]},"evennia.contrib.extended_room.ExtendedRoomCmdSet":{at_cmdset_creation:[224,3,1,""],path:[224,4,1,""]},"evennia.contrib.fieldfill":{CmdTestMenu:[225,1,1,""],FieldEvMenu:[225,1,1,""],display_formdata:[225,5,1,""],form_template_to_dict:[225,5,1,""],init_delayed_message:[225,5,1,""],init_fill_field:[225,5,1,""],menunode_fieldfill:[225,5,1,""],sendmessage:[225,5,1,""],verify_online_player:[225,5,1,""]},"evennia.contrib.fieldfill.CmdTestMenu":{aliases:[225,4,1,""],func:[225,3,1,""],help_category:[225,4,1,""],key:[225,4,1,""],lock_storage:[225,4,1,""],search_index_entry:[225,4,1,""]},"evennia.contrib.fieldfill.FieldEvMenu":{node_formatter:[225,3,1,""]},"evennia.contrib.gendersub":{GenderCharacter:[226,1,1,""],SetGender:[226,1,1,""]},"evennia.contrib.gendersub.GenderCharacter":{DoesNotExist:[226,2,1,""],MultipleObjectsReturned:[226,2,1,""],at_object_creation:[226,3,1,""],msg:[226,3,1,""],path:[226,4,1,""],typename:[226,4,1,""]},"evennia.contrib.gendersub.SetGender":{aliases:[226,4,1,""],func:[226,3,1,""],help_category:[226,4,1,""],key:[226,4,1,""],lock_storage:[226,4,1,""],locks:[226,4,1,""],search_index_entry:[226,4,1,""]},"evennia.contrib.health_bar":{display_meter:[227,5,1,""]},"evennia.contrib.ingame_python":{callbackhandler:[229,0,0,"-"],commands:[230,0,0,"-"],eventfuncs:[231,0,0,"-"],scripts:[232,0,0,"-"],tests:[233,0,0,"-"],utils:[235,0,0,"-"]},"evennia.contrib.ingame_python.callbackhandler":{Callback:[229,1,1,""],CallbackHandler:[229,1,1,""]},"evennia.contrib.ingame_python.callbackhandler.Callback":{author:[229,4,1,""],code:[229,4,1,""],created_on:[229,4,1,""],name:[229,4,1,""],number:[229,4,1,""],obj:[229,4,1,""],parameters:[229,4,1,""],updated_by:[229,4,1,""],updated_on:[229,4,1,""],valid:[229,4,1,""]},"evennia.contrib.ingame_python.callbackhandler.CallbackHandler":{__init__:[229,3,1,""],add:[229,3,1,""],all:[229,3,1,""],call:[229,3,1,""],edit:[229,3,1,""],format_callback:[229,3,1,""],get:[229,3,1,""],get_variable:[229,3,1,""],remove:[229,3,1,""],script:[229,4,1,""]},"evennia.contrib.ingame_python.commands":{CmdCallback:[230,1,1,""]},"evennia.contrib.ingame_python.commands.CmdCallback":{accept_callback:[230,3,1,""],add_callback:[230,3,1,""],aliases:[230,4,1,""],del_callback:[230,3,1,""],edit_callback:[230,3,1,""],func:[230,3,1,""],get_help:[230,3,1,""],help_category:[230,4,1,""],key:[230,4,1,""],list_callbacks:[230,3,1,""],list_tasks:[230,3,1,""],lock_storage:[230,4,1,""],locks:[230,4,1,""],search_index_entry:[230,4,1,""]},"evennia.contrib.ingame_python.eventfuncs":{call_event:[231,5,1,""],deny:[231,5,1,""],get:[231,5,1,""]},"evennia.contrib.ingame_python.scripts":{EventHandler:[232,1,1,""],TimeEventScript:[232,1,1,""],complete_task:[232,5,1,""]},"evennia.contrib.ingame_python.scripts.EventHandler":{DoesNotExist:[232,2,1,""],MultipleObjectsReturned:[232,2,1,""],accept_callback:[232,3,1,""],add_callback:[232,3,1,""],add_event:[232,3,1,""],at_script_creation:[232,3,1,""],at_server_start:[232,3,1,""],call:[232,3,1,""],del_callback:[232,3,1,""],edit_callback:[232,3,1,""],get_callbacks:[232,3,1,""],get_events:[232,3,1,""],get_variable:[232,3,1,""],handle_error:[232,3,1,""],path:[232,4,1,""],set_task:[232,3,1,""],typename:[232,4,1,""]},"evennia.contrib.ingame_python.scripts.TimeEventScript":{DoesNotExist:[232,2,1,""],MultipleObjectsReturned:[232,2,1,""],at_repeat:[232,3,1,""],at_script_creation:[232,3,1,""],path:[232,4,1,""],typename:[232,4,1,""]},"evennia.contrib.ingame_python.tests":{TestCmdCallback:[233,1,1,""],TestDefaultCallbacks:[233,1,1,""],TestEventHandler:[233,1,1,""]},"evennia.contrib.ingame_python.tests.TestCmdCallback":{setUp:[233,3,1,""],tearDown:[233,3,1,""],test_accept:[233,3,1,""],test_add:[233,3,1,""],test_del:[233,3,1,""],test_list:[233,3,1,""],test_lock:[233,3,1,""]},"evennia.contrib.ingame_python.tests.TestDefaultCallbacks":{setUp:[233,3,1,""],tearDown:[233,3,1,""],test_exit:[233,3,1,""]},"evennia.contrib.ingame_python.tests.TestEventHandler":{setUp:[233,3,1,""],tearDown:[233,3,1,""],test_accept:[233,3,1,""],test_add_validation:[233,3,1,""],test_call:[233,3,1,""],test_del:[233,3,1,""],test_edit:[233,3,1,""],test_edit_validation:[233,3,1,""],test_handler:[233,3,1,""],test_start:[233,3,1,""]},"evennia.contrib.ingame_python.utils":{InterruptEvent:[235,2,1,""],get_event_handler:[235,5,1,""],get_next_wait:[235,5,1,""],keyword_event:[235,5,1,""],phrase_event:[235,5,1,""],register_events:[235,5,1,""],time_event:[235,5,1,""]},"evennia.contrib.mail":{CmdMail:[236,1,1,""],CmdMailCharacter:[236,1,1,""]},"evennia.contrib.mail.CmdMail":{aliases:[236,4,1,""],func:[236,3,1,""],get_all_mail:[236,3,1,""],help_category:[236,4,1,""],key:[236,4,1,""],lock:[236,4,1,""],lock_storage:[236,4,1,""],parse:[236,3,1,""],search_index_entry:[236,4,1,""],search_targets:[236,3,1,""],send_mail:[236,3,1,""]},"evennia.contrib.mail.CmdMailCharacter":{account_caller:[236,4,1,""],aliases:[236,4,1,""],help_category:[236,4,1,""],key:[236,4,1,""],lock_storage:[236,4,1,""],search_index_entry:[236,4,1,""]},"evennia.contrib.multidescer":{CmdMultiDesc:[239,1,1,""],DescValidateError:[239,2,1,""]},"evennia.contrib.multidescer.CmdMultiDesc":{aliases:[239,4,1,""],func:[239,3,1,""],help_category:[239,4,1,""],key:[239,4,1,""],lock_storage:[239,4,1,""],locks:[239,4,1,""],search_index_entry:[239,4,1,""]},"evennia.contrib.puzzles":{CmdArmPuzzle:[240,1,1,""],CmdCreatePuzzleRecipe:[240,1,1,""],CmdEditPuzzle:[240,1,1,""],CmdListArmedPuzzles:[240,1,1,""],CmdListPuzzleRecipes:[240,1,1,""],CmdUsePuzzleParts:[240,1,1,""],PuzzleRecipe:[240,1,1,""],PuzzleSystemCmdSet:[240,1,1,""],maskout_protodef:[240,5,1,""],proto_def:[240,5,1,""]},"evennia.contrib.puzzles.CmdArmPuzzle":{aliases:[240,4,1,""],func:[240,3,1,""],help_category:[240,4,1,""],key:[240,4,1,""],lock_storage:[240,4,1,""],locks:[240,4,1,""],search_index_entry:[240,4,1,""]},"evennia.contrib.puzzles.CmdCreatePuzzleRecipe":{aliases:[240,4,1,""],confirm:[240,4,1,""],default_confirm:[240,4,1,""],func:[240,3,1,""],help_category:[240,4,1,""],key:[240,4,1,""],lock_storage:[240,4,1,""],locks:[240,4,1,""],search_index_entry:[240,4,1,""]},"evennia.contrib.puzzles.CmdEditPuzzle":{aliases:[240,4,1,""],func:[240,3,1,""],help_category:[240,4,1,""],key:[240,4,1,""],lock_storage:[240,4,1,""],locks:[240,4,1,""],search_index_entry:[240,4,1,""]},"evennia.contrib.puzzles.CmdListArmedPuzzles":{aliases:[240,4,1,""],func:[240,3,1,""],help_category:[240,4,1,""],key:[240,4,1,""],lock_storage:[240,4,1,""],locks:[240,4,1,""],search_index_entry:[240,4,1,""]},"evennia.contrib.puzzles.CmdListPuzzleRecipes":{aliases:[240,4,1,""],func:[240,3,1,""],help_category:[240,4,1,""],key:[240,4,1,""],lock_storage:[240,4,1,""],locks:[240,4,1,""],search_index_entry:[240,4,1,""]},"evennia.contrib.puzzles.CmdUsePuzzleParts":{aliases:[240,4,1,""],func:[240,3,1,""],help_category:[240,4,1,""],key:[240,4,1,""],lock_storage:[240,4,1,""],locks:[240,4,1,""],search_index_entry:[240,4,1,""]},"evennia.contrib.puzzles.PuzzleRecipe":{DoesNotExist:[240,2,1,""],MultipleObjectsReturned:[240,2,1,""],path:[240,4,1,""],save_recipe:[240,3,1,""],typename:[240,4,1,""]},"evennia.contrib.puzzles.PuzzleSystemCmdSet":{at_cmdset_creation:[240,3,1,""],path:[240,4,1,""]},"evennia.contrib.random_string_generator":{ExhaustedGenerator:[241,2,1,""],RandomStringGenerator:[241,1,1,""],RandomStringGeneratorScript:[241,1,1,""],RejectedRegex:[241,2,1,""]},"evennia.contrib.random_string_generator.RandomStringGenerator":{__init__:[241,3,1,""],all:[241,3,1,""],clear:[241,3,1,""],get:[241,3,1,""],remove:[241,3,1,""],script:[241,4,1,""]},"evennia.contrib.random_string_generator.RandomStringGeneratorScript":{DoesNotExist:[241,2,1,""],MultipleObjectsReturned:[241,2,1,""],at_script_creation:[241,3,1,""],path:[241,4,1,""],typename:[241,4,1,""]},"evennia.contrib.rplanguage":{LanguageError:[242,2,1,""],LanguageExistsError:[242,2,1,""],LanguageHandler:[242,1,1,""],add_language:[242,5,1,""],available_languages:[242,5,1,""],obfuscate_language:[242,5,1,""],obfuscate_whisper:[242,5,1,""]},"evennia.contrib.rplanguage.LanguageHandler":{DoesNotExist:[242,2,1,""],MultipleObjectsReturned:[242,2,1,""],add:[242,3,1,""],at_script_creation:[242,3,1,""],path:[242,4,1,""],translate:[242,3,1,""],typename:[242,4,1,""]},"evennia.contrib.rpsystem":{CmdEmote:[243,1,1,""],CmdMask:[243,1,1,""],CmdPose:[243,1,1,""],CmdRecog:[243,1,1,""],CmdSay:[243,1,1,""],CmdSdesc:[243,1,1,""],ContribRPCharacter:[243,1,1,""],ContribRPObject:[243,1,1,""],ContribRPRoom:[243,1,1,""],EmoteError:[243,2,1,""],LanguageError:[243,2,1,""],RPCommand:[243,1,1,""],RPSystemCmdSet:[243,1,1,""],RecogError:[243,2,1,""],RecogHandler:[243,1,1,""],SdescError:[243,2,1,""],SdescHandler:[243,1,1,""],ordered_permutation_regex:[243,5,1,""],parse_language:[243,5,1,""],parse_sdescs_and_recogs:[243,5,1,""],regex_tuple_from_key_alias:[243,5,1,""],send_emote:[243,5,1,""]},"evennia.contrib.rpsystem.CmdEmote":{aliases:[243,4,1,""],arg_regex:[243,4,1,""],func:[243,3,1,""],help_category:[243,4,1,""],key:[243,4,1,""],lock_storage:[243,4,1,""],locks:[243,4,1,""],search_index_entry:[243,4,1,""]},"evennia.contrib.rpsystem.CmdMask":{aliases:[243,4,1,""],func:[243,3,1,""],help_category:[243,4,1,""],key:[243,4,1,""],lock_storage:[243,4,1,""],search_index_entry:[243,4,1,""]},"evennia.contrib.rpsystem.CmdPose":{aliases:[243,4,1,""],func:[243,3,1,""],help_category:[243,4,1,""],key:[243,4,1,""],lock_storage:[243,4,1,""],parse:[243,3,1,""],search_index_entry:[243,4,1,""]},"evennia.contrib.rpsystem.CmdRecog":{aliases:[243,4,1,""],func:[243,3,1,""],help_category:[243,4,1,""],key:[243,4,1,""],lock_storage:[243,4,1,""],parse:[243,3,1,""],search_index_entry:[243,4,1,""]},"evennia.contrib.rpsystem.CmdSay":{aliases:[243,4,1,""],arg_regex:[243,4,1,""],func:[243,3,1,""],help_category:[243,4,1,""],key:[243,4,1,""],lock_storage:[243,4,1,""],locks:[243,4,1,""],search_index_entry:[243,4,1,""]},"evennia.contrib.rpsystem.CmdSdesc":{aliases:[243,4,1,""],func:[243,3,1,""],help_category:[243,4,1,""],key:[243,4,1,""],lock_storage:[243,4,1,""],locks:[243,4,1,""],search_index_entry:[243,4,1,""]},"evennia.contrib.rpsystem.ContribRPCharacter":{DoesNotExist:[243,2,1,""],MultipleObjectsReturned:[243,2,1,""],at_object_creation:[243,3,1,""],at_pre_say:[243,3,1,""],get_display_name:[243,3,1,""],path:[243,4,1,""],process_language:[243,3,1,""],process_recog:[243,3,1,""],process_sdesc:[243,3,1,""],recog:[243,4,1,""],sdesc:[243,4,1,""],typename:[243,4,1,""]},"evennia.contrib.rpsystem.ContribRPObject":{DoesNotExist:[243,2,1,""],MultipleObjectsReturned:[243,2,1,""],at_object_creation:[243,3,1,""],get_display_name:[243,3,1,""],path:[243,4,1,""],return_appearance:[243,3,1,""],search:[243,3,1,""],typename:[243,4,1,""]},"evennia.contrib.rpsystem.ContribRPRoom":{DoesNotExist:[243,2,1,""],MultipleObjectsReturned:[243,2,1,""],path:[243,4,1,""],typename:[243,4,1,""]},"evennia.contrib.rpsystem.RPCommand":{aliases:[243,4,1,""],help_category:[243,4,1,""],key:[243,4,1,""],lock_storage:[243,4,1,""],parse:[243,3,1,""],search_index_entry:[243,4,1,""]},"evennia.contrib.rpsystem.RPSystemCmdSet":{at_cmdset_creation:[243,3,1,""],path:[243,4,1,""]},"evennia.contrib.rpsystem.RecogHandler":{__init__:[243,3,1,""],add:[243,3,1,""],all:[243,3,1,""],get:[243,3,1,""],get_regex_tuple:[243,3,1,""],remove:[243,3,1,""]},"evennia.contrib.rpsystem.SdescHandler":{__init__:[243,3,1,""],add:[243,3,1,""],get:[243,3,1,""],get_regex_tuple:[243,3,1,""]},"evennia.contrib.security":{auditing:[245,0,0,"-"]},"evennia.contrib.security.auditing":{outputs:[246,0,0,"-"],server:[247,0,0,"-"],tests:[248,0,0,"-"]},"evennia.contrib.security.auditing.outputs":{to_file:[246,5,1,""],to_syslog:[246,5,1,""]},"evennia.contrib.security.auditing.server":{AuditedServerSession:[247,1,1,""]},"evennia.contrib.security.auditing.server.AuditedServerSession":{audit:[247,3,1,""],data_in:[247,3,1,""],data_out:[247,3,1,""],mask:[247,3,1,""]},"evennia.contrib.security.auditing.tests":{AuditingTest:[248,1,1,""]},"evennia.contrib.security.auditing.tests.AuditingTest":{test_audit:[248,3,1,""],test_mask:[248,3,1,""]},"evennia.contrib.simpledoor":{CmdOpen:[249,1,1,""],CmdOpenCloseDoor:[249,1,1,""],SimpleDoor:[249,1,1,""]},"evennia.contrib.simpledoor.CmdOpen":{aliases:[249,4,1,""],create_exit:[249,3,1,""],help_category:[249,4,1,""],key:[249,4,1,""],lock_storage:[249,4,1,""],search_index_entry:[249,4,1,""]},"evennia.contrib.simpledoor.CmdOpenCloseDoor":{aliases:[249,4,1,""],func:[249,3,1,""],help_category:[249,4,1,""],key:[249,4,1,""],lock_storage:[249,4,1,""],locks:[249,4,1,""],search_index_entry:[249,4,1,""]},"evennia.contrib.simpledoor.SimpleDoor":{"delete":[249,3,1,""],DoesNotExist:[249,2,1,""],MultipleObjectsReturned:[249,2,1,""],at_failed_traverse:[249,3,1,""],at_object_creation:[249,3,1,""],path:[249,4,1,""],setdesc:[249,3,1,""],setlock:[249,3,1,""],typename:[249,4,1,""]},"evennia.contrib.slow_exit":{CmdSetSpeed:[250,1,1,""],CmdStop:[250,1,1,""],SlowExit:[250,1,1,""]},"evennia.contrib.slow_exit.CmdSetSpeed":{aliases:[250,4,1,""],func:[250,3,1,""],help_category:[250,4,1,""],key:[250,4,1,""],lock_storage:[250,4,1,""],search_index_entry:[250,4,1,""]},"evennia.contrib.slow_exit.CmdStop":{aliases:[250,4,1,""],func:[250,3,1,""],help_category:[250,4,1,""],key:[250,4,1,""],lock_storage:[250,4,1,""],search_index_entry:[250,4,1,""]},"evennia.contrib.slow_exit.SlowExit":{DoesNotExist:[250,2,1,""],MultipleObjectsReturned:[250,2,1,""],at_traverse:[250,3,1,""],path:[250,4,1,""],typename:[250,4,1,""]},"evennia.contrib.talking_npc":{CmdTalk:[251,1,1,""],END:[251,5,1,""],TalkingCmdSet:[251,1,1,""],TalkingNPC:[251,1,1,""],info1:[251,5,1,""],info2:[251,5,1,""],info3:[251,5,1,""],menu_start_node:[251,5,1,""]},"evennia.contrib.talking_npc.CmdTalk":{aliases:[251,4,1,""],func:[251,3,1,""],help_category:[251,4,1,""],key:[251,4,1,""],lock_storage:[251,4,1,""],locks:[251,4,1,""],search_index_entry:[251,4,1,""]},"evennia.contrib.talking_npc.TalkingCmdSet":{at_cmdset_creation:[251,3,1,""],key:[251,4,1,""],path:[251,4,1,""]},"evennia.contrib.talking_npc.TalkingNPC":{DoesNotExist:[251,2,1,""],MultipleObjectsReturned:[251,2,1,""],at_object_creation:[251,3,1,""],path:[251,4,1,""],typename:[251,4,1,""]},"evennia.contrib.test_traits":{DummyCharacter:[252,1,1,""],TestNumericTraitOperators:[252,1,1,""],TestTrait:[252,1,1,""],TestTraitCounter:[252,1,1,""],TestTraitCounterTimed:[252,1,1,""],TestTraitFields:[252,1,1,""],TestTraitGauge:[252,1,1,""],TestTraitGaugeTimed:[252,1,1,""],TestTraitStatic:[252,1,1,""],TraitHandlerTest:[252,1,1,""]},"evennia.contrib.test_traits.DummyCharacter":{health:[252,4,1,""],hunting:[252,4,1,""],strength:[252,4,1,""]},"evennia.contrib.test_traits.TestNumericTraitOperators":{setUp:[252,3,1,""],tearDown:[252,3,1,""],test_add_traits:[252,3,1,""],test_comparisons_numeric:[252,3,1,""],test_comparisons_traits:[252,3,1,""],test_floordiv:[252,3,1,""],test_mul_traits:[252,3,1,""],test_pos_shortcut:[252,3,1,""],test_sub_traits:[252,3,1,""]},"evennia.contrib.test_traits.TestTrait":{setUp:[252,3,1,""],test_init:[252,3,1,""],test_repr:[252,3,1,""],test_trait_getset:[252,3,1,""],test_validate_input__fail:[252,3,1,""],test_validate_input__valid:[252,3,1,""]},"evennia.contrib.test_traits.TestTraitCounter":{setUp:[252,3,1,""],test_boundaries__bigmod:[252,3,1,""],test_boundaries__change_boundaries:[252,3,1,""],test_boundaries__disable:[252,3,1,""],test_boundaries__inverse:[252,3,1,""],test_boundaries__minmax:[252,3,1,""],test_current:[252,3,1,""],test_delete:[252,3,1,""],test_descs:[252,3,1,""],test_init:[252,3,1,""],test_percentage:[252,3,1,""],test_value:[252,3,1,""]},"evennia.contrib.test_traits.TestTraitCounterTimed":{setUp:[252,3,1,""],test_timer_rate:[252,3,1,""],test_timer_ratetarget:[252,3,1,""]},"evennia.contrib.test_traits.TestTraitFields":{test_traitfields:[252,3,1,""]},"evennia.contrib.test_traits.TestTraitGauge":{setUp:[252,3,1,""],test_boundaries__bigmod:[252,3,1,""],test_boundaries__change_boundaries:[252,3,1,""],test_boundaries__disable:[252,3,1,""],test_boundaries__inverse:[252,3,1,""],test_boundaries__minmax:[252,3,1,""],test_current:[252,3,1,""],test_delete:[252,3,1,""],test_descs:[252,3,1,""],test_init:[252,3,1,""],test_percentage:[252,3,1,""],test_value:[252,3,1,""]},"evennia.contrib.test_traits.TestTraitGaugeTimed":{setUp:[252,3,1,""],test_timer_rate:[252,3,1,""],test_timer_ratetarget:[252,3,1,""]},"evennia.contrib.test_traits.TestTraitStatic":{setUp:[252,3,1,""],test_delete:[252,3,1,""],test_init:[252,3,1,""],test_value:[252,3,1,""]},"evennia.contrib.test_traits.TraitHandlerTest":{setUp:[252,3,1,""],test_add_trait:[252,3,1,""],test_all:[252,3,1,""],test_cache:[252,3,1,""],test_clear:[252,3,1,""],test_getting:[252,3,1,""],test_remove:[252,3,1,""],test_setting:[252,3,1,""],test_trait_db_connection:[252,3,1,""]},"evennia.contrib.traits":{CounterTrait:[253,1,1,""],GaugeTrait:[253,1,1,""],MandatoryTraitKey:[253,1,1,""],StaticTrait:[253,1,1,""],Trait:[253,1,1,""],TraitException:[253,2,1,""],TraitHandler:[253,1,1,""],TraitProperty:[253,1,1,""]},"evennia.contrib.traits.CounterTrait":{base:[253,3,1,""],current:[253,3,1,""],default_keys:[253,4,1,""],desc:[253,3,1,""],max:[253,3,1,""],min:[253,3,1,""],mod:[253,3,1,""],percent:[253,3,1,""],ratetarget:[253,3,1,""],reset:[253,3,1,""],trait_type:[253,4,1,""],validate_input:[253,3,1,""],value:[253,3,1,""]},"evennia.contrib.traits.GaugeTrait":{base:[253,3,1,""],current:[253,3,1,""],default_keys:[253,4,1,""],max:[253,3,1,""],min:[253,3,1,""],mod:[253,3,1,""],percent:[253,3,1,""],reset:[253,3,1,""],trait_type:[253,4,1,""],value:[253,3,1,""]},"evennia.contrib.traits.StaticTrait":{base:[253,3,1,""],default_keys:[253,4,1,""],mod:[253,3,1,""],trait_type:[253,4,1,""],value:[253,3,1,""]},"evennia.contrib.traits.Trait":{__init__:[253,3,1,""],allow_extra_properties:[253,4,1,""],default_keys:[253,4,1,""],key:[253,3,1,""],name:[253,3,1,""],trait_type:[253,4,1,""],validate_input:[253,3,1,""],value:[253,3,1,""]},"evennia.contrib.traits.TraitException":{__init__:[253,3,1,""]},"evennia.contrib.traits.TraitHandler":{__init__:[253,3,1,""],add:[253,3,1,""],all:[253,3,1,""],clear:[253,3,1,""],get:[253,3,1,""],remove:[253,3,1,""]},"evennia.contrib.traits.TraitProperty":{__init__:[253,3,1,""]},"evennia.contrib.tree_select":{CmdNameColor:[254,1,1,""],change_name_color:[254,5,1,""],dashcount:[254,5,1,""],go_up_one_category:[254,5,1,""],index_to_selection:[254,5,1,""],init_tree_selection:[254,5,1,""],is_category:[254,5,1,""],menunode_treeselect:[254,5,1,""],optlist_to_menuoptions:[254,5,1,""],parse_opts:[254,5,1,""]},"evennia.contrib.tree_select.CmdNameColor":{aliases:[254,4,1,""],func:[254,3,1,""],help_category:[254,4,1,""],key:[254,4,1,""],lock_storage:[254,4,1,""],search_index_entry:[254,4,1,""]},"evennia.contrib.turnbattle":{tb_basic:[256,0,0,"-"],tb_equip:[257,0,0,"-"],tb_items:[258,0,0,"-"],tb_magic:[259,0,0,"-"],tb_range:[260,0,0,"-"]},"evennia.contrib.turnbattle.tb_basic":{ACTIONS_PER_TURN:[256,6,1,""],BattleCmdSet:[256,1,1,""],CmdAttack:[256,1,1,""],CmdCombatHelp:[256,1,1,""],CmdDisengage:[256,1,1,""],CmdFight:[256,1,1,""],CmdPass:[256,1,1,""],CmdRest:[256,1,1,""],TBBasicCharacter:[256,1,1,""],TBBasicTurnHandler:[256,1,1,""],apply_damage:[256,5,1,""],at_defeat:[256,5,1,""],combat_cleanup:[256,5,1,""],get_attack:[256,5,1,""],get_damage:[256,5,1,""],get_defense:[256,5,1,""],is_in_combat:[256,5,1,""],is_turn:[256,5,1,""],resolve_attack:[256,5,1,""],roll_init:[256,5,1,""],spend_action:[256,5,1,""]},"evennia.contrib.turnbattle.tb_basic.BattleCmdSet":{at_cmdset_creation:[256,3,1,""],key:[256,4,1,""],path:[256,4,1,""]},"evennia.contrib.turnbattle.tb_basic.CmdAttack":{aliases:[256,4,1,""],func:[256,3,1,""],help_category:[256,4,1,""],key:[256,4,1,""],lock_storage:[256,4,1,""],search_index_entry:[256,4,1,""]},"evennia.contrib.turnbattle.tb_basic.CmdCombatHelp":{aliases:[256,4,1,""],func:[256,3,1,""],help_category:[256,4,1,""],key:[256,4,1,""],lock_storage:[256,4,1,""],search_index_entry:[256,4,1,""]},"evennia.contrib.turnbattle.tb_basic.CmdDisengage":{aliases:[256,4,1,""],func:[256,3,1,""],help_category:[256,4,1,""],key:[256,4,1,""],lock_storage:[256,4,1,""],search_index_entry:[256,4,1,""]},"evennia.contrib.turnbattle.tb_basic.CmdFight":{aliases:[256,4,1,""],func:[256,3,1,""],help_category:[256,4,1,""],key:[256,4,1,""],lock_storage:[256,4,1,""],search_index_entry:[256,4,1,""]},"evennia.contrib.turnbattle.tb_basic.CmdPass":{aliases:[256,4,1,""],func:[256,3,1,""],help_category:[256,4,1,""],key:[256,4,1,""],lock_storage:[256,4,1,""],search_index_entry:[256,4,1,""]},"evennia.contrib.turnbattle.tb_basic.CmdRest":{aliases:[256,4,1,""],func:[256,3,1,""],help_category:[256,4,1,""],key:[256,4,1,""],lock_storage:[256,4,1,""],search_index_entry:[256,4,1,""]},"evennia.contrib.turnbattle.tb_basic.TBBasicCharacter":{DoesNotExist:[256,2,1,""],MultipleObjectsReturned:[256,2,1,""],at_object_creation:[256,3,1,""],at_pre_move:[256,3,1,""],path:[256,4,1,""],typename:[256,4,1,""]},"evennia.contrib.turnbattle.tb_basic.TBBasicTurnHandler":{DoesNotExist:[256,2,1,""],MultipleObjectsReturned:[256,2,1,""],at_repeat:[256,3,1,""],at_script_creation:[256,3,1,""],at_stop:[256,3,1,""],initialize_for_combat:[256,3,1,""],join_fight:[256,3,1,""],next_turn:[256,3,1,""],path:[256,4,1,""],start_turn:[256,3,1,""],turn_end_check:[256,3,1,""],typename:[256,4,1,""]},"evennia.contrib.turnbattle.tb_equip":{ACTIONS_PER_TURN:[257,6,1,""],BattleCmdSet:[257,1,1,""],CmdAttack:[257,1,1,""],CmdCombatHelp:[257,1,1,""],CmdDisengage:[257,1,1,""],CmdDoff:[257,1,1,""],CmdDon:[257,1,1,""],CmdFight:[257,1,1,""],CmdPass:[257,1,1,""],CmdRest:[257,1,1,""],CmdUnwield:[257,1,1,""],CmdWield:[257,1,1,""],TBEArmor:[257,1,1,""],TBEWeapon:[257,1,1,""],TBEquipCharacter:[257,1,1,""],TBEquipTurnHandler:[257,1,1,""],apply_damage:[257,5,1,""],at_defeat:[257,5,1,""],combat_cleanup:[257,5,1,""],get_attack:[257,5,1,""],get_damage:[257,5,1,""],get_defense:[257,5,1,""],is_in_combat:[257,5,1,""],is_turn:[257,5,1,""],resolve_attack:[257,5,1,""],roll_init:[257,5,1,""],spend_action:[257,5,1,""]},"evennia.contrib.turnbattle.tb_equip.BattleCmdSet":{at_cmdset_creation:[257,3,1,""],key:[257,4,1,""],path:[257,4,1,""]},"evennia.contrib.turnbattle.tb_equip.CmdAttack":{aliases:[257,4,1,""],func:[257,3,1,""],help_category:[257,4,1,""],key:[257,4,1,""],lock_storage:[257,4,1,""],search_index_entry:[257,4,1,""]},"evennia.contrib.turnbattle.tb_equip.CmdCombatHelp":{aliases:[257,4,1,""],func:[257,3,1,""],help_category:[257,4,1,""],key:[257,4,1,""],lock_storage:[257,4,1,""],search_index_entry:[257,4,1,""]},"evennia.contrib.turnbattle.tb_equip.CmdDisengage":{aliases:[257,4,1,""],func:[257,3,1,""],help_category:[257,4,1,""],key:[257,4,1,""],lock_storage:[257,4,1,""],search_index_entry:[257,4,1,""]},"evennia.contrib.turnbattle.tb_equip.CmdDoff":{aliases:[257,4,1,""],func:[257,3,1,""],help_category:[257,4,1,""],key:[257,4,1,""],lock_storage:[257,4,1,""],search_index_entry:[257,4,1,""]},"evennia.contrib.turnbattle.tb_equip.CmdDon":{aliases:[257,4,1,""],func:[257,3,1,""],help_category:[257,4,1,""],key:[257,4,1,""],lock_storage:[257,4,1,""],search_index_entry:[257,4,1,""]},"evennia.contrib.turnbattle.tb_equip.CmdFight":{aliases:[257,4,1,""],func:[257,3,1,""],help_category:[257,4,1,""],key:[257,4,1,""],lock_storage:[257,4,1,""],search_index_entry:[257,4,1,""]},"evennia.contrib.turnbattle.tb_equip.CmdPass":{aliases:[257,4,1,""],func:[257,3,1,""],help_category:[257,4,1,""],key:[257,4,1,""],lock_storage:[257,4,1,""],search_index_entry:[257,4,1,""]},"evennia.contrib.turnbattle.tb_equip.CmdRest":{aliases:[257,4,1,""],func:[257,3,1,""],help_category:[257,4,1,""],key:[257,4,1,""],lock_storage:[257,4,1,""],search_index_entry:[257,4,1,""]},"evennia.contrib.turnbattle.tb_equip.CmdUnwield":{aliases:[257,4,1,""],func:[257,3,1,""],help_category:[257,4,1,""],key:[257,4,1,""],lock_storage:[257,4,1,""],search_index_entry:[257,4,1,""]},"evennia.contrib.turnbattle.tb_equip.CmdWield":{aliases:[257,4,1,""],func:[257,3,1,""],help_category:[257,4,1,""],key:[257,4,1,""],lock_storage:[257,4,1,""],search_index_entry:[257,4,1,""]},"evennia.contrib.turnbattle.tb_equip.TBEArmor":{DoesNotExist:[257,2,1,""],MultipleObjectsReturned:[257,2,1,""],at_drop:[257,3,1,""],at_give:[257,3,1,""],at_object_creation:[257,3,1,""],at_pre_drop:[257,3,1,""],at_pre_give:[257,3,1,""],path:[257,4,1,""],typename:[257,4,1,""]},"evennia.contrib.turnbattle.tb_equip.TBEWeapon":{DoesNotExist:[257,2,1,""],MultipleObjectsReturned:[257,2,1,""],at_drop:[257,3,1,""],at_give:[257,3,1,""],at_object_creation:[257,3,1,""],path:[257,4,1,""],typename:[257,4,1,""]},"evennia.contrib.turnbattle.tb_equip.TBEquipCharacter":{DoesNotExist:[257,2,1,""],MultipleObjectsReturned:[257,2,1,""],at_object_creation:[257,3,1,""],at_pre_move:[257,3,1,""],path:[257,4,1,""],typename:[257,4,1,""]},"evennia.contrib.turnbattle.tb_equip.TBEquipTurnHandler":{DoesNotExist:[257,2,1,""],MultipleObjectsReturned:[257,2,1,""],at_repeat:[257,3,1,""],at_script_creation:[257,3,1,""],at_stop:[257,3,1,""],initialize_for_combat:[257,3,1,""],join_fight:[257,3,1,""],next_turn:[257,3,1,""],path:[257,4,1,""],start_turn:[257,3,1,""],turn_end_check:[257,3,1,""],typename:[257,4,1,""]},"evennia.contrib.turnbattle.tb_items":{BattleCmdSet:[258,1,1,""],CmdAttack:[258,1,1,""],CmdCombatHelp:[258,1,1,""],CmdDisengage:[258,1,1,""],CmdFight:[258,1,1,""],CmdPass:[258,1,1,""],CmdRest:[258,1,1,""],CmdUse:[258,1,1,""],DEF_DOWN_MOD:[258,6,1,""],ITEMFUNCS:[258,6,1,""],TBItemsCharacter:[258,1,1,""],TBItemsCharacterTest:[258,1,1,""],TBItemsTurnHandler:[258,1,1,""],add_condition:[258,5,1,""],apply_damage:[258,5,1,""],at_defeat:[258,5,1,""],combat_cleanup:[258,5,1,""],condition_tickdown:[258,5,1,""],get_attack:[258,5,1,""],get_damage:[258,5,1,""],get_defense:[258,5,1,""],is_in_combat:[258,5,1,""],is_turn:[258,5,1,""],itemfunc_add_condition:[258,5,1,""],itemfunc_attack:[258,5,1,""],itemfunc_cure_condition:[258,5,1,""],itemfunc_heal:[258,5,1,""],resolve_attack:[258,5,1,""],roll_init:[258,5,1,""],spend_action:[258,5,1,""],spend_item_use:[258,5,1,""],use_item:[258,5,1,""]},"evennia.contrib.turnbattle.tb_items.BattleCmdSet":{at_cmdset_creation:[258,3,1,""],key:[258,4,1,""],path:[258,4,1,""]},"evennia.contrib.turnbattle.tb_items.CmdAttack":{aliases:[258,4,1,""],func:[258,3,1,""],help_category:[258,4,1,""],key:[258,4,1,""],lock_storage:[258,4,1,""],search_index_entry:[258,4,1,""]},"evennia.contrib.turnbattle.tb_items.CmdCombatHelp":{aliases:[258,4,1,""],func:[258,3,1,""],help_category:[258,4,1,""],key:[258,4,1,""],lock_storage:[258,4,1,""],search_index_entry:[258,4,1,""]},"evennia.contrib.turnbattle.tb_items.CmdDisengage":{aliases:[258,4,1,""],func:[258,3,1,""],help_category:[258,4,1,""],key:[258,4,1,""],lock_storage:[258,4,1,""],search_index_entry:[258,4,1,""]},"evennia.contrib.turnbattle.tb_items.CmdFight":{aliases:[258,4,1,""],func:[258,3,1,""],help_category:[258,4,1,""],key:[258,4,1,""],lock_storage:[258,4,1,""],search_index_entry:[258,4,1,""]},"evennia.contrib.turnbattle.tb_items.CmdPass":{aliases:[258,4,1,""],func:[258,3,1,""],help_category:[258,4,1,""],key:[258,4,1,""],lock_storage:[258,4,1,""],search_index_entry:[258,4,1,""]},"evennia.contrib.turnbattle.tb_items.CmdRest":{aliases:[258,4,1,""],func:[258,3,1,""],help_category:[258,4,1,""],key:[258,4,1,""],lock_storage:[258,4,1,""],search_index_entry:[258,4,1,""]},"evennia.contrib.turnbattle.tb_items.CmdUse":{aliases:[258,4,1,""],func:[258,3,1,""],help_category:[258,4,1,""],key:[258,4,1,""],lock_storage:[258,4,1,""],search_index_entry:[258,4,1,""]},"evennia.contrib.turnbattle.tb_items.TBItemsCharacter":{DoesNotExist:[258,2,1,""],MultipleObjectsReturned:[258,2,1,""],apply_turn_conditions:[258,3,1,""],at_object_creation:[258,3,1,""],at_pre_move:[258,3,1,""],at_turn_start:[258,3,1,""],at_update:[258,3,1,""],path:[258,4,1,""],typename:[258,4,1,""]},"evennia.contrib.turnbattle.tb_items.TBItemsCharacterTest":{DoesNotExist:[258,2,1,""],MultipleObjectsReturned:[258,2,1,""],at_object_creation:[258,3,1,""],path:[258,4,1,""],typename:[258,4,1,""]},"evennia.contrib.turnbattle.tb_items.TBItemsTurnHandler":{DoesNotExist:[258,2,1,""],MultipleObjectsReturned:[258,2,1,""],at_repeat:[258,3,1,""],at_script_creation:[258,3,1,""],at_stop:[258,3,1,""],initialize_for_combat:[258,3,1,""],join_fight:[258,3,1,""],next_turn:[258,3,1,""],path:[258,4,1,""],start_turn:[258,3,1,""],turn_end_check:[258,3,1,""],typename:[258,4,1,""]},"evennia.contrib.turnbattle.tb_magic":{ACTIONS_PER_TURN:[259,6,1,""],BattleCmdSet:[259,1,1,""],CmdAttack:[259,1,1,""],CmdCast:[259,1,1,""],CmdCombatHelp:[259,1,1,""],CmdDisengage:[259,1,1,""],CmdFight:[259,1,1,""],CmdLearnSpell:[259,1,1,""],CmdPass:[259,1,1,""],CmdRest:[259,1,1,""],CmdStatus:[259,1,1,""],TBMagicCharacter:[259,1,1,""],TBMagicTurnHandler:[259,1,1,""],apply_damage:[259,5,1,""],at_defeat:[259,5,1,""],combat_cleanup:[259,5,1,""],get_attack:[259,5,1,""],get_damage:[259,5,1,""],get_defense:[259,5,1,""],is_in_combat:[259,5,1,""],is_turn:[259,5,1,""],resolve_attack:[259,5,1,""],roll_init:[259,5,1,""],spell_attack:[259,5,1,""],spell_conjure:[259,5,1,""],spell_healing:[259,5,1,""],spend_action:[259,5,1,""]},"evennia.contrib.turnbattle.tb_magic.BattleCmdSet":{at_cmdset_creation:[259,3,1,""],key:[259,4,1,""],path:[259,4,1,""]},"evennia.contrib.turnbattle.tb_magic.CmdAttack":{aliases:[259,4,1,""],func:[259,3,1,""],help_category:[259,4,1,""],key:[259,4,1,""],lock_storage:[259,4,1,""],search_index_entry:[259,4,1,""]},"evennia.contrib.turnbattle.tb_magic.CmdCast":{aliases:[259,4,1,""],func:[259,3,1,""],help_category:[259,4,1,""],key:[259,4,1,""],lock_storage:[259,4,1,""],search_index_entry:[259,4,1,""]},"evennia.contrib.turnbattle.tb_magic.CmdCombatHelp":{aliases:[259,4,1,""],func:[259,3,1,""],help_category:[259,4,1,""],key:[259,4,1,""],lock_storage:[259,4,1,""],search_index_entry:[259,4,1,""]},"evennia.contrib.turnbattle.tb_magic.CmdDisengage":{aliases:[259,4,1,""],func:[259,3,1,""],help_category:[259,4,1,""],key:[259,4,1,""],lock_storage:[259,4,1,""],search_index_entry:[259,4,1,""]},"evennia.contrib.turnbattle.tb_magic.CmdFight":{aliases:[259,4,1,""],func:[259,3,1,""],help_category:[259,4,1,""],key:[259,4,1,""],lock_storage:[259,4,1,""],search_index_entry:[259,4,1,""]},"evennia.contrib.turnbattle.tb_magic.CmdLearnSpell":{aliases:[259,4,1,""],func:[259,3,1,""],help_category:[259,4,1,""],key:[259,4,1,""],lock_storage:[259,4,1,""],search_index_entry:[259,4,1,""]},"evennia.contrib.turnbattle.tb_magic.CmdPass":{aliases:[259,4,1,""],func:[259,3,1,""],help_category:[259,4,1,""],key:[259,4,1,""],lock_storage:[259,4,1,""],search_index_entry:[259,4,1,""]},"evennia.contrib.turnbattle.tb_magic.CmdRest":{aliases:[259,4,1,""],func:[259,3,1,""],help_category:[259,4,1,""],key:[259,4,1,""],lock_storage:[259,4,1,""],search_index_entry:[259,4,1,""]},"evennia.contrib.turnbattle.tb_magic.CmdStatus":{aliases:[259,4,1,""],func:[259,3,1,""],help_category:[259,4,1,""],key:[259,4,1,""],lock_storage:[259,4,1,""],search_index_entry:[259,4,1,""]},"evennia.contrib.turnbattle.tb_magic.TBMagicCharacter":{DoesNotExist:[259,2,1,""],MultipleObjectsReturned:[259,2,1,""],at_object_creation:[259,3,1,""],at_pre_move:[259,3,1,""],path:[259,4,1,""],typename:[259,4,1,""]},"evennia.contrib.turnbattle.tb_magic.TBMagicTurnHandler":{DoesNotExist:[259,2,1,""],MultipleObjectsReturned:[259,2,1,""],at_repeat:[259,3,1,""],at_script_creation:[259,3,1,""],at_stop:[259,3,1,""],initialize_for_combat:[259,3,1,""],join_fight:[259,3,1,""],next_turn:[259,3,1,""],path:[259,4,1,""],start_turn:[259,3,1,""],turn_end_check:[259,3,1,""],typename:[259,4,1,""]},"evennia.contrib.turnbattle.tb_range":{ACTIONS_PER_TURN:[260,6,1,""],BattleCmdSet:[260,1,1,""],CmdApproach:[260,1,1,""],CmdAttack:[260,1,1,""],CmdCombatHelp:[260,1,1,""],CmdDisengage:[260,1,1,""],CmdFight:[260,1,1,""],CmdPass:[260,1,1,""],CmdRest:[260,1,1,""],CmdShoot:[260,1,1,""],CmdStatus:[260,1,1,""],CmdWithdraw:[260,1,1,""],TBRangeCharacter:[260,1,1,""],TBRangeObject:[260,1,1,""],TBRangeTurnHandler:[260,1,1,""],apply_damage:[260,5,1,""],approach:[260,5,1,""],at_defeat:[260,5,1,""],combat_cleanup:[260,5,1,""],combat_status_message:[260,5,1,""],distance_inc:[260,5,1,""],get_attack:[260,5,1,""],get_damage:[260,5,1,""],get_defense:[260,5,1,""],get_range:[260,5,1,""],is_in_combat:[260,5,1,""],is_turn:[260,5,1,""],resolve_attack:[260,5,1,""],roll_init:[260,5,1,""],spend_action:[260,5,1,""],withdraw:[260,5,1,""]},"evennia.contrib.turnbattle.tb_range.BattleCmdSet":{at_cmdset_creation:[260,3,1,""],key:[260,4,1,""],path:[260,4,1,""]},"evennia.contrib.turnbattle.tb_range.CmdApproach":{aliases:[260,4,1,""],func:[260,3,1,""],help_category:[260,4,1,""],key:[260,4,1,""],lock_storage:[260,4,1,""],search_index_entry:[260,4,1,""]},"evennia.contrib.turnbattle.tb_range.CmdAttack":{aliases:[260,4,1,""],func:[260,3,1,""],help_category:[260,4,1,""],key:[260,4,1,""],lock_storage:[260,4,1,""],search_index_entry:[260,4,1,""]},"evennia.contrib.turnbattle.tb_range.CmdCombatHelp":{aliases:[260,4,1,""],func:[260,3,1,""],help_category:[260,4,1,""],key:[260,4,1,""],lock_storage:[260,4,1,""],search_index_entry:[260,4,1,""]},"evennia.contrib.turnbattle.tb_range.CmdDisengage":{aliases:[260,4,1,""],func:[260,3,1,""],help_category:[260,4,1,""],key:[260,4,1,""],lock_storage:[260,4,1,""],search_index_entry:[260,4,1,""]},"evennia.contrib.turnbattle.tb_range.CmdFight":{aliases:[260,4,1,""],func:[260,3,1,""],help_category:[260,4,1,""],key:[260,4,1,""],lock_storage:[260,4,1,""],search_index_entry:[260,4,1,""]},"evennia.contrib.turnbattle.tb_range.CmdPass":{aliases:[260,4,1,""],func:[260,3,1,""],help_category:[260,4,1,""],key:[260,4,1,""],lock_storage:[260,4,1,""],search_index_entry:[260,4,1,""]},"evennia.contrib.turnbattle.tb_range.CmdRest":{aliases:[260,4,1,""],func:[260,3,1,""],help_category:[260,4,1,""],key:[260,4,1,""],lock_storage:[260,4,1,""],search_index_entry:[260,4,1,""]},"evennia.contrib.turnbattle.tb_range.CmdShoot":{aliases:[260,4,1,""],func:[260,3,1,""],help_category:[260,4,1,""],key:[260,4,1,""],lock_storage:[260,4,1,""],search_index_entry:[260,4,1,""]},"evennia.contrib.turnbattle.tb_range.CmdStatus":{aliases:[260,4,1,""],func:[260,3,1,""],help_category:[260,4,1,""],key:[260,4,1,""],lock_storage:[260,4,1,""],search_index_entry:[260,4,1,""]},"evennia.contrib.turnbattle.tb_range.CmdWithdraw":{aliases:[260,4,1,""],func:[260,3,1,""],help_category:[260,4,1,""],key:[260,4,1,""],lock_storage:[260,4,1,""],search_index_entry:[260,4,1,""]},"evennia.contrib.turnbattle.tb_range.TBRangeCharacter":{DoesNotExist:[260,2,1,""],MultipleObjectsReturned:[260,2,1,""],at_object_creation:[260,3,1,""],at_pre_move:[260,3,1,""],path:[260,4,1,""],typename:[260,4,1,""]},"evennia.contrib.turnbattle.tb_range.TBRangeObject":{DoesNotExist:[260,2,1,""],MultipleObjectsReturned:[260,2,1,""],at_drop:[260,3,1,""],at_get:[260,3,1,""],at_give:[260,3,1,""],at_pre_drop:[260,3,1,""],at_pre_get:[260,3,1,""],at_pre_give:[260,3,1,""],path:[260,4,1,""],typename:[260,4,1,""]},"evennia.contrib.turnbattle.tb_range.TBRangeTurnHandler":{DoesNotExist:[260,2,1,""],MultipleObjectsReturned:[260,2,1,""],at_repeat:[260,3,1,""],at_script_creation:[260,3,1,""],at_stop:[260,3,1,""],init_range:[260,3,1,""],initialize_for_combat:[260,3,1,""],join_fight:[260,3,1,""],join_rangefield:[260,3,1,""],next_turn:[260,3,1,""],path:[260,4,1,""],start_turn:[260,3,1,""],turn_end_check:[260,3,1,""],typename:[260,4,1,""]},"evennia.contrib.tutorial_examples":{bodyfunctions:[262,0,0,"-"],mirror:[264,0,0,"-"],red_button:[265,0,0,"-"],tests:[266,0,0,"-"]},"evennia.contrib.tutorial_examples.bodyfunctions":{BodyFunctions:[262,1,1,""]},"evennia.contrib.tutorial_examples.bodyfunctions.BodyFunctions":{DoesNotExist:[262,2,1,""],MultipleObjectsReturned:[262,2,1,""],at_repeat:[262,3,1,""],at_script_creation:[262,3,1,""],path:[262,4,1,""],send_random_message:[262,3,1,""],typename:[262,4,1,""]},"evennia.contrib.tutorial_examples.mirror":{TutorialMirror:[264,1,1,""]},"evennia.contrib.tutorial_examples.mirror.TutorialMirror":{DoesNotExist:[264,2,1,""],MultipleObjectsReturned:[264,2,1,""],msg:[264,3,1,""],path:[264,4,1,""],return_appearance:[264,3,1,""],typename:[264,4,1,""]},"evennia.contrib.tutorial_examples.red_button":{BlindCmdSet:[265,1,1,""],CmdBlindHelp:[265,1,1,""],CmdBlindLook:[265,1,1,""],CmdCloseLid:[265,1,1,""],CmdNudge:[265,1,1,""],CmdOpenLid:[265,1,1,""],CmdPushLidClosed:[265,1,1,""],CmdPushLidOpen:[265,1,1,""],CmdSmashGlass:[265,1,1,""],LidClosedCmdSet:[265,1,1,""],LidOpenCmdSet:[265,1,1,""],RedButton:[265,1,1,""]},"evennia.contrib.tutorial_examples.red_button.BlindCmdSet":{at_cmdset_creation:[265,3,1,""],key:[265,4,1,""],mergetype:[265,4,1,""],no_exits:[265,4,1,""],no_objs:[265,4,1,""],path:[265,4,1,""]},"evennia.contrib.tutorial_examples.red_button.CmdBlindHelp":{aliases:[265,4,1,""],func:[265,3,1,""],help_category:[265,4,1,""],key:[265,4,1,""],lock_storage:[265,4,1,""],locks:[265,4,1,""],search_index_entry:[265,4,1,""]},"evennia.contrib.tutorial_examples.red_button.CmdBlindLook":{aliases:[265,4,1,""],func:[265,3,1,""],help_category:[265,4,1,""],key:[265,4,1,""],lock_storage:[265,4,1,""],locks:[265,4,1,""],search_index_entry:[265,4,1,""]},"evennia.contrib.tutorial_examples.red_button.CmdCloseLid":{aliases:[265,4,1,""],func:[265,3,1,""],help_category:[265,4,1,""],key:[265,4,1,""],lock_storage:[265,4,1,""],locks:[265,4,1,""],search_index_entry:[265,4,1,""]},"evennia.contrib.tutorial_examples.red_button.CmdNudge":{aliases:[265,4,1,""],func:[265,3,1,""],help_category:[265,4,1,""],key:[265,4,1,""],lock_storage:[265,4,1,""],locks:[265,4,1,""],search_index_entry:[265,4,1,""]},"evennia.contrib.tutorial_examples.red_button.CmdOpenLid":{aliases:[265,4,1,""],func:[265,3,1,""],help_category:[265,4,1,""],key:[265,4,1,""],lock_storage:[265,4,1,""],locks:[265,4,1,""],search_index_entry:[265,4,1,""]},"evennia.contrib.tutorial_examples.red_button.CmdPushLidClosed":{aliases:[265,4,1,""],func:[265,3,1,""],help_category:[265,4,1,""],key:[265,4,1,""],lock_storage:[265,4,1,""],locks:[265,4,1,""],search_index_entry:[265,4,1,""]},"evennia.contrib.tutorial_examples.red_button.CmdPushLidOpen":{aliases:[265,4,1,""],func:[265,3,1,""],help_category:[265,4,1,""],key:[265,4,1,""],lock_storage:[265,4,1,""],locks:[265,4,1,""],search_index_entry:[265,4,1,""]},"evennia.contrib.tutorial_examples.red_button.CmdSmashGlass":{aliases:[265,4,1,""],func:[265,3,1,""],help_category:[265,4,1,""],key:[265,4,1,""],lock_storage:[265,4,1,""],locks:[265,4,1,""],search_index_entry:[265,4,1,""]},"evennia.contrib.tutorial_examples.red_button.LidClosedCmdSet":{at_cmdset_creation:[265,3,1,""],key:[265,4,1,""],path:[265,4,1,""]},"evennia.contrib.tutorial_examples.red_button.LidOpenCmdSet":{at_cmdset_creation:[265,3,1,""],key:[265,4,1,""],path:[265,4,1,""]},"evennia.contrib.tutorial_examples.red_button.RedButton":{DoesNotExist:[265,2,1,""],MultipleObjectsReturned:[265,2,1,""],at_object_creation:[265,3,1,""],auto_close_msg:[265,4,1,""],blind_target:[265,3,1,""],blink_msgs:[265,4,1,""],break_lamp:[265,3,1,""],desc_add_lamp_broken:[265,4,1,""],desc_closed_lid:[265,4,1,""],desc_open_lid:[265,4,1,""],lamp_breaks_msg:[265,4,1,""],path:[265,4,1,""],to_closed_state:[265,3,1,""],to_open_state:[265,3,1,""],typename:[265,4,1,""]},"evennia.contrib.tutorial_examples.tests":{TestBodyFunctions:[266,1,1,""]},"evennia.contrib.tutorial_examples.tests.TestBodyFunctions":{script_typeclass:[266,4,1,""],setUp:[266,3,1,""],tearDown:[266,3,1,""],test_at_repeat:[266,3,1,""],test_send_random_message:[266,3,1,""]},"evennia.contrib.tutorial_world":{intro_menu:[268,0,0,"-"],mob:[269,0,0,"-"],objects:[270,0,0,"-"],rooms:[271,0,0,"-"]},"evennia.contrib.tutorial_world.intro_menu":{DemoCommandSetComms:[268,1,1,""],DemoCommandSetHelp:[268,1,1,""],DemoCommandSetRoom:[268,1,1,""],TutorialEvMenu:[268,1,1,""],do_nothing:[268,5,1,""],goto_cleanup_cmdsets:[268,5,1,""],goto_command_demo_comms:[268,5,1,""],goto_command_demo_help:[268,5,1,""],goto_command_demo_room:[268,5,1,""],init_menu:[268,5,1,""],send_testing_tagged:[268,5,1,""]},"evennia.contrib.tutorial_world.intro_menu.DemoCommandSetComms":{at_cmdset_creation:[268,3,1,""],key:[268,4,1,""],no_exits:[268,4,1,""],no_objs:[268,4,1,""],path:[268,4,1,""],priority:[268,4,1,""]},"evennia.contrib.tutorial_world.intro_menu.DemoCommandSetHelp":{at_cmdset_creation:[268,3,1,""],key:[268,4,1,""],path:[268,4,1,""],priority:[268,4,1,""]},"evennia.contrib.tutorial_world.intro_menu.DemoCommandSetRoom":{at_cmdset_creation:[268,3,1,""],key:[268,4,1,""],no_exits:[268,4,1,""],no_objs:[268,4,1,""],path:[268,4,1,""],priority:[268,4,1,""]},"evennia.contrib.tutorial_world.intro_menu.TutorialEvMenu":{close_menu:[268,3,1,""],options_formatter:[268,3,1,""]},"evennia.contrib.tutorial_world.mob":{CmdMobOnOff:[269,1,1,""],Mob:[269,1,1,""],MobCmdSet:[269,1,1,""]},"evennia.contrib.tutorial_world.mob.CmdMobOnOff":{aliases:[269,4,1,""],func:[269,3,1,""],help_category:[269,4,1,""],key:[269,4,1,""],lock_storage:[269,4,1,""],locks:[269,4,1,""],search_index_entry:[269,4,1,""]},"evennia.contrib.tutorial_world.mob.Mob":{DoesNotExist:[269,2,1,""],MultipleObjectsReturned:[269,2,1,""],at_hit:[269,3,1,""],at_init:[269,3,1,""],at_new_arrival:[269,3,1,""],at_object_creation:[269,3,1,""],do_attack:[269,3,1,""],do_hunting:[269,3,1,""],do_patrol:[269,3,1,""],path:[269,4,1,""],set_alive:[269,3,1,""],set_dead:[269,3,1,""],start_attacking:[269,3,1,""],start_hunting:[269,3,1,""],start_idle:[269,3,1,""],start_patrolling:[269,3,1,""],typename:[269,4,1,""]},"evennia.contrib.tutorial_world.mob.MobCmdSet":{at_cmdset_creation:[269,3,1,""],path:[269,4,1,""]},"evennia.contrib.tutorial_world.objects":{CmdAttack:[270,1,1,""],CmdClimb:[270,1,1,""],CmdGetWeapon:[270,1,1,""],CmdLight:[270,1,1,""],CmdPressButton:[270,1,1,""],CmdRead:[270,1,1,""],CmdSetClimbable:[270,1,1,""],CmdSetCrumblingWall:[270,1,1,""],CmdSetLight:[270,1,1,""],CmdSetReadable:[270,1,1,""],CmdSetWeapon:[270,1,1,""],CmdSetWeaponRack:[270,1,1,""],CmdShiftRoot:[270,1,1,""],CrumblingWall:[270,1,1,""],LightSource:[270,1,1,""],Obelisk:[270,1,1,""],TutorialClimbable:[270,1,1,""],TutorialObject:[270,1,1,""],TutorialReadable:[270,1,1,""],TutorialWeapon:[270,1,1,""],TutorialWeaponRack:[270,1,1,""]},"evennia.contrib.tutorial_world.objects.CmdAttack":{aliases:[270,4,1,""],func:[270,3,1,""],help_category:[270,4,1,""],key:[270,4,1,""],lock_storage:[270,4,1,""],locks:[270,4,1,""],search_index_entry:[270,4,1,""]},"evennia.contrib.tutorial_world.objects.CmdClimb":{aliases:[270,4,1,""],func:[270,3,1,""],help_category:[270,4,1,""],key:[270,4,1,""],lock_storage:[270,4,1,""],locks:[270,4,1,""],search_index_entry:[270,4,1,""]},"evennia.contrib.tutorial_world.objects.CmdGetWeapon":{aliases:[270,4,1,""],func:[270,3,1,""],help_category:[270,4,1,""],key:[270,4,1,""],lock_storage:[270,4,1,""],locks:[270,4,1,""],search_index_entry:[270,4,1,""]},"evennia.contrib.tutorial_world.objects.CmdLight":{aliases:[270,4,1,""],func:[270,3,1,""],help_category:[270,4,1,""],key:[270,4,1,""],lock_storage:[270,4,1,""],locks:[270,4,1,""],search_index_entry:[270,4,1,""]},"evennia.contrib.tutorial_world.objects.CmdPressButton":{aliases:[270,4,1,""],func:[270,3,1,""],help_category:[270,4,1,""],key:[270,4,1,""],lock_storage:[270,4,1,""],locks:[270,4,1,""],search_index_entry:[270,4,1,""]},"evennia.contrib.tutorial_world.objects.CmdRead":{aliases:[270,4,1,""],func:[270,3,1,""],help_category:[270,4,1,""],key:[270,4,1,""],lock_storage:[270,4,1,""],locks:[270,4,1,""],search_index_entry:[270,4,1,""]},"evennia.contrib.tutorial_world.objects.CmdSetClimbable":{at_cmdset_creation:[270,3,1,""],path:[270,4,1,""]},"evennia.contrib.tutorial_world.objects.CmdSetCrumblingWall":{at_cmdset_creation:[270,3,1,""],key:[270,4,1,""],path:[270,4,1,""],priority:[270,4,1,""]},"evennia.contrib.tutorial_world.objects.CmdSetLight":{at_cmdset_creation:[270,3,1,""],key:[270,4,1,""],path:[270,4,1,""],priority:[270,4,1,""]},"evennia.contrib.tutorial_world.objects.CmdSetReadable":{at_cmdset_creation:[270,3,1,""],path:[270,4,1,""]},"evennia.contrib.tutorial_world.objects.CmdSetWeapon":{at_cmdset_creation:[270,3,1,""],path:[270,4,1,""]},"evennia.contrib.tutorial_world.objects.CmdSetWeaponRack":{at_cmdset_creation:[270,3,1,""],key:[270,4,1,""],path:[270,4,1,""]},"evennia.contrib.tutorial_world.objects.CmdShiftRoot":{aliases:[270,4,1,""],func:[270,3,1,""],help_category:[270,4,1,""],key:[270,4,1,""],lock_storage:[270,4,1,""],locks:[270,4,1,""],parse:[270,3,1,""],search_index_entry:[270,4,1,""]},"evennia.contrib.tutorial_world.objects.CrumblingWall":{DoesNotExist:[270,2,1,""],MultipleObjectsReturned:[270,2,1,""],at_failed_traverse:[270,3,1,""],at_init:[270,3,1,""],at_object_creation:[270,3,1,""],at_post_traverse:[270,3,1,""],open_wall:[270,3,1,""],path:[270,4,1,""],reset:[270,3,1,""],return_appearance:[270,3,1,""],typename:[270,4,1,""]},"evennia.contrib.tutorial_world.objects.LightSource":{DoesNotExist:[270,2,1,""],MultipleObjectsReturned:[270,2,1,""],at_init:[270,3,1,""],at_object_creation:[270,3,1,""],light:[270,3,1,""],path:[270,4,1,""],typename:[270,4,1,""]},"evennia.contrib.tutorial_world.objects.Obelisk":{DoesNotExist:[270,2,1,""],MultipleObjectsReturned:[270,2,1,""],at_object_creation:[270,3,1,""],path:[270,4,1,""],return_appearance:[270,3,1,""],typename:[270,4,1,""]},"evennia.contrib.tutorial_world.objects.TutorialClimbable":{DoesNotExist:[270,2,1,""],MultipleObjectsReturned:[270,2,1,""],at_object_creation:[270,3,1,""],path:[270,4,1,""],typename:[270,4,1,""]},"evennia.contrib.tutorial_world.objects.TutorialObject":{DoesNotExist:[270,2,1,""],MultipleObjectsReturned:[270,2,1,""],at_object_creation:[270,3,1,""],path:[270,4,1,""],reset:[270,3,1,""],typename:[270,4,1,""]},"evennia.contrib.tutorial_world.objects.TutorialReadable":{DoesNotExist:[270,2,1,""],MultipleObjectsReturned:[270,2,1,""],at_object_creation:[270,3,1,""],path:[270,4,1,""],typename:[270,4,1,""]},"evennia.contrib.tutorial_world.objects.TutorialWeapon":{DoesNotExist:[270,2,1,""],MultipleObjectsReturned:[270,2,1,""],at_object_creation:[270,3,1,""],path:[270,4,1,""],reset:[270,3,1,""],typename:[270,4,1,""]},"evennia.contrib.tutorial_world.objects.TutorialWeaponRack":{DoesNotExist:[270,2,1,""],MultipleObjectsReturned:[270,2,1,""],at_object_creation:[270,3,1,""],path:[270,4,1,""],produce_weapon:[270,3,1,""],typename:[270,4,1,""]},"evennia.contrib.tutorial_world.rooms":{BridgeCmdSet:[271,1,1,""],BridgeRoom:[271,1,1,""],CmdBridgeHelp:[271,1,1,""],CmdDarkHelp:[271,1,1,""],CmdDarkNoMatch:[271,1,1,""],CmdEast:[271,1,1,""],CmdEvenniaIntro:[271,1,1,""],CmdLookBridge:[271,1,1,""],CmdLookDark:[271,1,1,""],CmdSetEvenniaIntro:[271,1,1,""],CmdTutorial:[271,1,1,""],CmdTutorialGiveUp:[271,1,1,""],CmdTutorialLook:[271,1,1,""],CmdTutorialSetDetail:[271,1,1,""],CmdWest:[271,1,1,""],DarkCmdSet:[271,1,1,""],DarkRoom:[271,1,1,""],IntroRoom:[271,1,1,""],OutroRoom:[271,1,1,""],TeleportRoom:[271,1,1,""],TutorialRoom:[271,1,1,""],TutorialRoomCmdSet:[271,1,1,""],WeatherRoom:[271,1,1,""]},"evennia.contrib.tutorial_world.rooms.BridgeCmdSet":{at_cmdset_creation:[271,3,1,""],key:[271,4,1,""],path:[271,4,1,""],priority:[271,4,1,""]},"evennia.contrib.tutorial_world.rooms.BridgeRoom":{DoesNotExist:[271,2,1,""],MultipleObjectsReturned:[271,2,1,""],at_object_creation:[271,3,1,""],at_object_leave:[271,3,1,""],at_object_receive:[271,3,1,""],path:[271,4,1,""],typename:[271,4,1,""],update_weather:[271,3,1,""]},"evennia.contrib.tutorial_world.rooms.CmdBridgeHelp":{aliases:[271,4,1,""],func:[271,3,1,""],help_category:[271,4,1,""],key:[271,4,1,""],lock_storage:[271,4,1,""],locks:[271,4,1,""],search_index_entry:[271,4,1,""]},"evennia.contrib.tutorial_world.rooms.CmdDarkHelp":{aliases:[271,4,1,""],func:[271,3,1,""],help_category:[271,4,1,""],key:[271,4,1,""],lock_storage:[271,4,1,""],locks:[271,4,1,""],search_index_entry:[271,4,1,""]},"evennia.contrib.tutorial_world.rooms.CmdDarkNoMatch":{aliases:[271,4,1,""],func:[271,3,1,""],help_category:[271,4,1,""],key:[271,4,1,""],lock_storage:[271,4,1,""],locks:[271,4,1,""],search_index_entry:[271,4,1,""]},"evennia.contrib.tutorial_world.rooms.CmdEast":{aliases:[271,4,1,""],func:[271,3,1,""],help_category:[271,4,1,""],key:[271,4,1,""],lock_storage:[271,4,1,""],locks:[271,4,1,""],search_index_entry:[271,4,1,""]},"evennia.contrib.tutorial_world.rooms.CmdEvenniaIntro":{aliases:[271,4,1,""],func:[271,3,1,""],help_category:[271,4,1,""],key:[271,4,1,""],lock_storage:[271,4,1,""],search_index_entry:[271,4,1,""]},"evennia.contrib.tutorial_world.rooms.CmdLookBridge":{aliases:[271,4,1,""],func:[271,3,1,""],help_category:[271,4,1,""],key:[271,4,1,""],lock_storage:[271,4,1,""],locks:[271,4,1,""],search_index_entry:[271,4,1,""]},"evennia.contrib.tutorial_world.rooms.CmdLookDark":{aliases:[271,4,1,""],func:[271,3,1,""],help_category:[271,4,1,""],key:[271,4,1,""],lock_storage:[271,4,1,""],locks:[271,4,1,""],search_index_entry:[271,4,1,""]},"evennia.contrib.tutorial_world.rooms.CmdSetEvenniaIntro":{at_cmdset_creation:[271,3,1,""],key:[271,4,1,""],path:[271,4,1,""]},"evennia.contrib.tutorial_world.rooms.CmdTutorial":{aliases:[271,4,1,""],func:[271,3,1,""],help_category:[271,4,1,""],key:[271,4,1,""],lock_storage:[271,4,1,""],locks:[271,4,1,""],search_index_entry:[271,4,1,""]},"evennia.contrib.tutorial_world.rooms.CmdTutorialGiveUp":{aliases:[271,4,1,""],func:[271,3,1,""],help_category:[271,4,1,""],key:[271,4,1,""],lock_storage:[271,4,1,""],search_index_entry:[271,4,1,""]},"evennia.contrib.tutorial_world.rooms.CmdTutorialLook":{aliases:[271,4,1,""],func:[271,3,1,""],help_category:[271,4,1,""],key:[271,4,1,""],lock_storage:[271,4,1,""],search_index_entry:[271,4,1,""]},"evennia.contrib.tutorial_world.rooms.CmdTutorialSetDetail":{aliases:[271,4,1,""],func:[271,3,1,""],help_category:[271,4,1,""],key:[271,4,1,""],lock_storage:[271,4,1,""],locks:[271,4,1,""],search_index_entry:[271,4,1,""]},"evennia.contrib.tutorial_world.rooms.CmdWest":{aliases:[271,4,1,""],func:[271,3,1,""],help_category:[271,4,1,""],key:[271,4,1,""],lock_storage:[271,4,1,""],locks:[271,4,1,""],search_index_entry:[271,4,1,""]},"evennia.contrib.tutorial_world.rooms.DarkCmdSet":{at_cmdset_creation:[271,3,1,""],key:[271,4,1,""],mergetype:[271,4,1,""],path:[271,4,1,""],priority:[271,4,1,""]},"evennia.contrib.tutorial_world.rooms.DarkRoom":{DoesNotExist:[271,2,1,""],MultipleObjectsReturned:[271,2,1,""],at_init:[271,3,1,""],at_object_creation:[271,3,1,""],at_object_leave:[271,3,1,""],at_object_receive:[271,3,1,""],check_light_state:[271,3,1,""],path:[271,4,1,""],typename:[271,4,1,""]},"evennia.contrib.tutorial_world.rooms.IntroRoom":{DoesNotExist:[271,2,1,""],MultipleObjectsReturned:[271,2,1,""],at_object_creation:[271,3,1,""],at_object_receive:[271,3,1,""],path:[271,4,1,""],typename:[271,4,1,""]},"evennia.contrib.tutorial_world.rooms.OutroRoom":{DoesNotExist:[271,2,1,""],MultipleObjectsReturned:[271,2,1,""],at_object_creation:[271,3,1,""],at_object_leave:[271,3,1,""],at_object_receive:[271,3,1,""],path:[271,4,1,""],typename:[271,4,1,""]},"evennia.contrib.tutorial_world.rooms.TeleportRoom":{DoesNotExist:[271,2,1,""],MultipleObjectsReturned:[271,2,1,""],at_object_creation:[271,3,1,""],at_object_receive:[271,3,1,""],path:[271,4,1,""],typename:[271,4,1,""]},"evennia.contrib.tutorial_world.rooms.TutorialRoom":{DoesNotExist:[271,2,1,""],MultipleObjectsReturned:[271,2,1,""],at_object_creation:[271,3,1,""],at_object_receive:[271,3,1,""],path:[271,4,1,""],return_detail:[271,3,1,""],set_detail:[271,3,1,""],typename:[271,4,1,""]},"evennia.contrib.tutorial_world.rooms.TutorialRoomCmdSet":{at_cmdset_creation:[271,3,1,""],key:[271,4,1,""],path:[271,4,1,""],priority:[271,4,1,""]},"evennia.contrib.tutorial_world.rooms.WeatherRoom":{DoesNotExist:[271,2,1,""],MultipleObjectsReturned:[271,2,1,""],at_object_creation:[271,3,1,""],path:[271,4,1,""],typename:[271,4,1,""],update_weather:[271,3,1,""]},"evennia.contrib.unixcommand":{HelpAction:[272,1,1,""],ParseError:[272,2,1,""],UnixCommand:[272,1,1,""],UnixCommandParser:[272,1,1,""]},"evennia.contrib.unixcommand.UnixCommand":{__init__:[272,3,1,""],aliases:[272,4,1,""],func:[272,3,1,""],get_help:[272,3,1,""],help_category:[272,4,1,""],init_parser:[272,3,1,""],key:[272,4,1,""],lock_storage:[272,4,1,""],parse:[272,3,1,""],search_index_entry:[272,4,1,""]},"evennia.contrib.unixcommand.UnixCommandParser":{__init__:[272,3,1,""],format_help:[272,3,1,""],format_usage:[272,3,1,""],print_help:[272,3,1,""],print_usage:[272,3,1,""]},"evennia.contrib.wilderness":{WildernessExit:[273,1,1,""],WildernessMapProvider:[273,1,1,""],WildernessRoom:[273,1,1,""],WildernessScript:[273,1,1,""],create_wilderness:[273,5,1,""],enter_wilderness:[273,5,1,""],get_new_coordinates:[273,5,1,""]},"evennia.contrib.wilderness.WildernessExit":{DoesNotExist:[273,2,1,""],MultipleObjectsReturned:[273,2,1,""],at_traverse:[273,3,1,""],at_traverse_coordinates:[273,3,1,""],mapprovider:[273,3,1,""],path:[273,4,1,""],typename:[273,4,1,""],wilderness:[273,3,1,""]},"evennia.contrib.wilderness.WildernessMapProvider":{at_prepare_room:[273,3,1,""],exit_typeclass:[273,4,1,""],get_location_name:[273,3,1,""],is_valid_coordinates:[273,3,1,""],room_typeclass:[273,4,1,""]},"evennia.contrib.wilderness.WildernessRoom":{DoesNotExist:[273,2,1,""],MultipleObjectsReturned:[273,2,1,""],at_object_leave:[273,3,1,""],at_object_receive:[273,3,1,""],coordinates:[273,3,1,""],get_display_name:[273,3,1,""],location_name:[273,3,1,""],path:[273,4,1,""],set_active_coordinates:[273,3,1,""],typename:[273,4,1,""],wilderness:[273,3,1,""]},"evennia.contrib.wilderness.WildernessScript":{DoesNotExist:[273,2,1,""],MultipleObjectsReturned:[273,2,1,""],at_post_object_leave:[273,3,1,""],at_script_creation:[273,3,1,""],at_start:[273,3,1,""],get_obj_coordinates:[273,3,1,""],get_objs_at_coordinates:[273,3,1,""],is_valid_coordinates:[273,3,1,""],itemcoordinates:[273,3,1,""],mapprovider:[273,3,1,""],move_obj:[273,3,1,""],path:[273,4,1,""],typename:[273,4,1,""]},"evennia.contrib.xyzgrid":{commands:[275,0,0,"-"],example:[276,0,0,"-"],launchcmd:[277,0,0,"-"],prototypes:[278,0,0,"-"],tests:[279,0,0,"-"],utils:[280,0,0,"-"],xymap:[281,0,0,"-"],xymap_legend:[282,0,0,"-"],xyzgrid:[283,0,0,"-"],xyzroom:[284,0,0,"-"]},"evennia.contrib.xyzgrid.commands":{CmdGoto:[275,1,1,""],CmdMap:[275,1,1,""],CmdXYZOpen:[275,1,1,""],CmdXYZTeleport:[275,1,1,""],PathData:[275,1,1,""],XYZGridCmdSet:[275,1,1,""]},"evennia.contrib.xyzgrid.commands.CmdGoto":{aliases:[275,4,1,""],auto_step_delay:[275,4,1,""],default_xyz_path_interrupt_msg:[275,4,1,""],func:[275,3,1,""],help_category:[275,4,1,""],key:[275,4,1,""],lock_storage:[275,4,1,""],locks:[275,4,1,""],search_index_entry:[275,4,1,""]},"evennia.contrib.xyzgrid.commands.CmdMap":{aliases:[275,4,1,""],func:[275,3,1,""],help_category:[275,4,1,""],key:[275,4,1,""],lock_storage:[275,4,1,""],locks:[275,4,1,""],search_index_entry:[275,4,1,""]},"evennia.contrib.xyzgrid.commands.CmdXYZOpen":{aliases:[275,4,1,""],help_category:[275,4,1,""],key:[275,4,1,""],lock_storage:[275,4,1,""],parse:[275,3,1,""],search_index_entry:[275,4,1,""]},"evennia.contrib.xyzgrid.commands.CmdXYZTeleport":{aliases:[275,4,1,""],help_category:[275,4,1,""],key:[275,4,1,""],lock_storage:[275,4,1,""],parse:[275,3,1,""],search_index_entry:[275,4,1,""]},"evennia.contrib.xyzgrid.commands.PathData":{directions:[275,4,1,""],step_sequence:[275,4,1,""],target:[275,4,1,""],task:[275,4,1,""],xymap:[275,4,1,""]},"evennia.contrib.xyzgrid.commands.XYZGridCmdSet":{at_cmdset_creation:[275,3,1,""],key:[275,4,1,""],path:[275,4,1,""]},"evennia.contrib.xyzgrid.example":{TransitionToCave:[276,1,1,""],TransitionToLargeTree:[276,1,1,""]},"evennia.contrib.xyzgrid.example.TransitionToCave":{symbol:[276,4,1,""],target_map_xyz:[276,4,1,""]},"evennia.contrib.xyzgrid.example.TransitionToLargeTree":{symbol:[276,4,1,""],target_map_xyz:[276,4,1,""]},"evennia.contrib.xyzgrid.launchcmd":{xyzcommand:[277,5,1,""]},"evennia.contrib.xyzgrid.tests":{Map12aTransition:[279,1,1,""],Map12bTransition:[279,1,1,""],TestBuildExampleGrid:[279,1,1,""],TestMap10:[279,1,1,""],TestMap11:[279,1,1,""],TestMap1:[279,1,1,""],TestMap2:[279,1,1,""],TestMap3:[279,1,1,""],TestMap4:[279,1,1,""],TestMap5:[279,1,1,""],TestMap6:[279,1,1,""],TestMap7:[279,1,1,""],TestMap8:[279,1,1,""],TestMap9:[279,1,1,""],TestMapStressTest:[279,1,1,""],TestXYZGrid:[279,1,1,""],TestXYZGridTransition:[279,1,1,""]},"evennia.contrib.xyzgrid.tests.Map12aTransition":{symbol:[279,4,1,""],target_map_xyz:[279,4,1,""]},"evennia.contrib.xyzgrid.tests.Map12bTransition":{symbol:[279,4,1,""],target_map_xyz:[279,4,1,""]},"evennia.contrib.xyzgrid.tests.TestBuildExampleGrid":{setUp:[279,3,1,""],tearDown:[279,3,1,""],test_build:[279,3,1,""]},"evennia.contrib.xyzgrid.tests.TestMap1":{test_get_shortest_path:[279,3,1,""],test_get_visual_range__nodes__character:[279,4,1,""],test_get_visual_range__nodes__character_0:[279,3,1,""],test_get_visual_range__nodes__character_1:[279,3,1,""],test_get_visual_range__nodes__character_2:[279,3,1,""],test_get_visual_range__nodes__character_3:[279,3,1,""],test_get_visual_range__nodes__character_4:[279,3,1,""],test_get_visual_range__scan:[279,4,1,""],test_get_visual_range__scan_0:[279,3,1,""],test_get_visual_range__scan_1:[279,3,1,""],test_get_visual_range__scan_2:[279,3,1,""],test_get_visual_range__scan_3:[279,3,1,""],test_get_visual_range__scan__character:[279,4,1,""],test_get_visual_range__scan__character_0:[279,3,1,""],test_get_visual_range__scan__character_1:[279,3,1,""],test_get_visual_range__scan__character_2:[279,3,1,""],test_get_visual_range__scan__character_3:[279,3,1,""],test_node_from_coord:[279,3,1,""],test_spawn:[279,3,1,""],test_str_output:[279,3,1,""]},"evennia.contrib.xyzgrid.tests.TestMap10":{map_data:[279,4,1,""],map_display:[279,4,1,""],test_paths:[279,4,1,""],test_paths_0:[279,3,1,""],test_paths_1:[279,3,1,""],test_shortest_path:[279,4,1,""],test_shortest_path_0:[279,3,1,""],test_shortest_path_1:[279,3,1,""],test_shortest_path_2:[279,3,1,""],test_shortest_path_3:[279,3,1,""],test_shortest_path_4:[279,3,1,""],test_shortest_path_5:[279,3,1,""],test_shortest_path_6:[279,3,1,""],test_shortest_path_7:[279,3,1,""],test_shortest_path_8:[279,3,1,""],test_shortest_path_9:[279,3,1,""],test_spawn:[279,3,1,""],test_str_output:[279,3,1,""]},"evennia.contrib.xyzgrid.tests.TestMap11":{map_data:[279,4,1,""],map_display:[279,4,1,""],test_get_visual_range_with_path:[279,4,1,""],test_get_visual_range_with_path_0:[279,3,1,""],test_get_visual_range_with_path_1:[279,3,1,""],test_paths:[279,4,1,""],test_paths_0:[279,3,1,""],test_paths_1:[279,3,1,""],test_shortest_path:[279,4,1,""],test_shortest_path_0:[279,3,1,""],test_shortest_path_1:[279,3,1,""],test_spawn:[279,3,1,""],test_str_output:[279,3,1,""]},"evennia.contrib.xyzgrid.tests.TestMap2":{map_data:[279,4,1,""],map_display:[279,4,1,""],test_extended_path_tracking__horizontal:[279,3,1,""],test_extended_path_tracking__vertical:[279,3,1,""],test_get_visual_range__nodes__character:[279,4,1,""],test_get_visual_range__nodes__character_0:[279,3,1,""],test_get_visual_range__nodes__character_1:[279,3,1,""],test_get_visual_range__nodes__character_2:[279,3,1,""],test_get_visual_range__nodes__character_3:[279,3,1,""],test_get_visual_range__nodes__character_4:[279,3,1,""],test_get_visual_range__nodes__character_5:[279,3,1,""],test_get_visual_range__nodes__character_6:[279,3,1,""],test_get_visual_range__nodes__character_7:[279,3,1,""],test_get_visual_range__nodes__character_8:[279,3,1,""],test_get_visual_range__nodes__character_9:[279,3,1,""],test_get_visual_range__scan__character:[279,4,1,""],test_get_visual_range__scan__character_0:[279,3,1,""],test_get_visual_range__scan__character_1:[279,3,1,""],test_get_visual_range__scan__character_2:[279,3,1,""],test_get_visual_range__scan__character_3:[279,3,1,""],test_node_from_coord:[279,3,1,""],test_shortest_path:[279,4,1,""],test_shortest_path_0:[279,3,1,""],test_shortest_path_1:[279,3,1,""],test_shortest_path_2:[279,3,1,""],test_shortest_path_3:[279,3,1,""],test_shortest_path_4:[279,3,1,""],test_shortest_path_5:[279,3,1,""],test_shortest_path_6:[279,3,1,""],test_spawn:[279,3,1,""],test_str_output:[279,3,1,""]},"evennia.contrib.xyzgrid.tests.TestMap3":{map_data:[279,4,1,""],map_display:[279,4,1,""],test_get_visual_range__nodes__character:[279,4,1,""],test_get_visual_range__nodes__character_0:[279,3,1,""],test_get_visual_range__nodes__character_1:[279,3,1,""],test_shortest_path:[279,4,1,""],test_shortest_path_00:[279,3,1,""],test_shortest_path_01:[279,3,1,""],test_shortest_path_02:[279,3,1,""],test_shortest_path_03:[279,3,1,""],test_shortest_path_04:[279,3,1,""],test_shortest_path_05:[279,3,1,""],test_shortest_path_06:[279,3,1,""],test_shortest_path_07:[279,3,1,""],test_shortest_path_08:[279,3,1,""],test_shortest_path_09:[279,3,1,""],test_shortest_path_10:[279,3,1,""],test_spawn:[279,3,1,""],test_str_output:[279,3,1,""]},"evennia.contrib.xyzgrid.tests.TestMap4":{map_data:[279,4,1,""],map_display:[279,4,1,""],test_shortest_path:[279,4,1,""],test_shortest_path_0:[279,3,1,""],test_shortest_path_1:[279,3,1,""],test_shortest_path_2:[279,3,1,""],test_shortest_path_3:[279,3,1,""],test_shortest_path_4:[279,3,1,""],test_shortest_path_5:[279,3,1,""],test_spawn:[279,3,1,""],test_str_output:[279,3,1,""]},"evennia.contrib.xyzgrid.tests.TestMap5":{map_data:[279,4,1,""],map_display:[279,4,1,""],test_shortest_path:[279,4,1,""],test_shortest_path_0:[279,3,1,""],test_shortest_path_1:[279,3,1,""],test_shortest_path_2:[279,3,1,""],test_shortest_path_3:[279,3,1,""],test_spawn:[279,3,1,""],test_str_output:[279,3,1,""]},"evennia.contrib.xyzgrid.tests.TestMap6":{map_data:[279,4,1,""],map_display:[279,4,1,""],test_shortest_path:[279,4,1,""],test_shortest_path_0:[279,3,1,""],test_shortest_path_1:[279,3,1,""],test_shortest_path_2:[279,3,1,""],test_shortest_path_3:[279,3,1,""],test_shortest_path_4:[279,3,1,""],test_shortest_path_5:[279,3,1,""],test_shortest_path_6:[279,3,1,""],test_shortest_path_7:[279,3,1,""],test_spawn:[279,3,1,""],test_str_output:[279,3,1,""]},"evennia.contrib.xyzgrid.tests.TestMap7":{map_data:[279,4,1,""],map_display:[279,4,1,""],test_shortest_path:[279,4,1,""],test_shortest_path_0:[279,3,1,""],test_shortest_path_1:[279,3,1,""],test_shortest_path_2:[279,3,1,""],test_shortest_path_3:[279,3,1,""],test_spawn:[279,3,1,""],test_str_output:[279,3,1,""]},"evennia.contrib.xyzgrid.tests.TestMap8":{map_data:[279,4,1,""],map_display:[279,4,1,""],test_get_visual_range__nodes__character:[279,4,1,""],test_get_visual_range__nodes__character_0:[279,3,1,""],test_get_visual_range_with_path:[279,4,1,""],test_get_visual_range_with_path_0:[279,3,1,""],test_get_visual_range_with_path_1:[279,3,1,""],test_get_visual_range_with_path_2:[279,3,1,""],test_get_visual_range_with_path_3:[279,3,1,""],test_get_visual_range_with_path_4:[279,3,1,""],test_shortest_path:[279,4,1,""],test_shortest_path_0:[279,3,1,""],test_shortest_path_1:[279,3,1,""],test_shortest_path_2:[279,3,1,""],test_shortest_path_3:[279,3,1,""],test_shortest_path_4:[279,3,1,""],test_shortest_path_5:[279,3,1,""],test_shortest_path_6:[279,3,1,""],test_spawn:[279,3,1,""],test_str_output:[279,3,1,""]},"evennia.contrib.xyzgrid.tests.TestMap9":{map_data:[279,4,1,""],map_display:[279,4,1,""],test_shortest_path:[279,4,1,""],test_shortest_path_0:[279,3,1,""],test_shortest_path_1:[279,3,1,""],test_shortest_path_2:[279,3,1,""],test_shortest_path_3:[279,3,1,""],test_spawn:[279,3,1,""],test_str_output:[279,3,1,""]},"evennia.contrib.xyzgrid.tests.TestMapStressTest":{test_grid_creation:[279,4,1,""],test_grid_creation_0:[279,3,1,""],test_grid_creation_1:[279,3,1,""],test_grid_pathfind:[279,4,1,""],test_grid_pathfind_0:[279,3,1,""],test_grid_pathfind_1:[279,3,1,""],test_grid_visibility:[279,4,1,""],test_grid_visibility_0:[279,3,1,""],test_grid_visibility_1:[279,3,1,""]},"evennia.contrib.xyzgrid.tests.TestXYZGrid":{setUp:[279,3,1,""],tearDown:[279,3,1,""],test_spawn:[279,3,1,""],test_str_output:[279,3,1,""],zcoord:[279,4,1,""]},"evennia.contrib.xyzgrid.tests.TestXYZGridTransition":{setUp:[279,3,1,""],tearDown:[279,3,1,""],test_shortest_path:[279,4,1,""],test_shortest_path_0:[279,3,1,""],test_shortest_path_1:[279,3,1,""],test_spawn:[279,3,1,""]},"evennia.contrib.xyzgrid.utils":{MapError:[280,2,1,""],MapParserError:[280,2,1,""],MapTransition:[280,2,1,""]},"evennia.contrib.xyzgrid.utils.MapError":{__init__:[280,3,1,""]},"evennia.contrib.xyzgrid.xymap":{XYMap:[281,1,1,""]},"evennia.contrib.xyzgrid.xymap.XYMap":{__init__:[281,3,1,""],calculate_path_matrix:[281,3,1,""],empty_symbol:[281,4,1,""],get_components_with_symbol:[281,3,1,""],get_node_from_coord:[281,3,1,""],get_shortest_path:[281,3,1,""],get_visual_range:[281,3,1,""],legend_key_exceptions:[281,4,1,""],log:[281,3,1,""],mapcorner_symbol:[281,4,1,""],max_pathfinding_length:[281,4,1,""],parse:[281,3,1,""],reload:[281,3,1,""],spawn_links:[281,3,1,""],spawn_nodes:[281,3,1,""]},"evennia.contrib.xyzgrid.xymap_legend":{BasicMapNode:[282,1,1,""],BlockedMapLink:[282,1,1,""],CrossMapLink:[282,1,1,""],DownMapLink:[282,1,1,""],EWMapLink:[282,1,1,""],EWOneWayMapLink:[282,1,1,""],InterruptMapLink:[282,1,1,""],InterruptMapNode:[282,1,1,""],InvisibleSmartMapLink:[282,1,1,""],MapLink:[282,1,1,""],MapNode:[282,1,1,""],MapTransitionNode:[282,1,1,""],NESWMapLink:[282,1,1,""],NSMapLink:[282,1,1,""],NSOneWayMapLink:[282,1,1,""],PlusMapLink:[282,1,1,""],RouterMapLink:[282,1,1,""],SENWMapLink:[282,1,1,""],SNOneWayMapLink:[282,1,1,""],SmartMapLink:[282,1,1,""],SmartRerouterMapLink:[282,1,1,""],SmartTeleporterMapLink:[282,1,1,""],TeleporterMapLink:[282,1,1,""],TransitionMapNode:[282,1,1,""],UpMapLink:[282,1,1,""],WEOneWayMapLink:[282,1,1,""]},"evennia.contrib.xyzgrid.xymap_legend.BasicMapNode":{prototype:[282,4,1,""],symbol:[282,4,1,""]},"evennia.contrib.xyzgrid.xymap_legend.BlockedMapLink":{prototype:[282,4,1,""],symbol:[282,4,1,""],weights:[282,4,1,""]},"evennia.contrib.xyzgrid.xymap_legend.CrossMapLink":{directions:[282,4,1,""],prototype:[282,4,1,""],symbol:[282,4,1,""]},"evennia.contrib.xyzgrid.xymap_legend.DownMapLink":{direction_aliases:[282,4,1,""],prototype:[282,4,1,""],spawn_aliases:[282,4,1,""],symbol:[282,4,1,""]},"evennia.contrib.xyzgrid.xymap_legend.EWMapLink":{directions:[282,4,1,""],prototype:[282,4,1,""],symbol:[282,4,1,""]},"evennia.contrib.xyzgrid.xymap_legend.EWOneWayMapLink":{directions:[282,4,1,""],prototype:[282,4,1,""],symbol:[282,4,1,""]},"evennia.contrib.xyzgrid.xymap_legend.InterruptMapLink":{interrupt_path:[282,4,1,""],prototype:[282,4,1,""],symbol:[282,4,1,""]},"evennia.contrib.xyzgrid.xymap_legend.InterruptMapNode":{display_symbol:[282,4,1,""],interrupt_path:[282,4,1,""],prototype:[282,4,1,""],symbol:[282,4,1,""]},"evennia.contrib.xyzgrid.xymap_legend.InvisibleSmartMapLink":{direction_aliases:[282,4,1,""],display_symbol_aliases:[282,4,1,""],get_display_symbol:[282,3,1,""]},"evennia.contrib.xyzgrid.xymap_legend.MapLink":{__init__:[282,3,1,""],at_empty_target:[282,3,1,""],average_long_link_weights:[282,4,1,""],default_weight:[282,4,1,""],direction_aliases:[282,4,1,""],directions:[282,4,1,""],display_symbol:[282,4,1,""],generate_prototype_key:[282,3,1,""],get_direction:[282,3,1,""],get_display_symbol:[282,3,1,""],get_linked_neighbors:[282,3,1,""],get_weight:[282,3,1,""],interrupt_path:[282,4,1,""],multilink:[282,4,1,""],prototype:[282,4,1,""],spawn_aliases:[282,4,1,""],symbol:[282,4,1,""],traverse:[282,3,1,""],weights:[282,4,1,""]},"evennia.contrib.xyzgrid.xymap_legend.MapNode":{__init__:[282,3,1,""],build_links:[282,3,1,""],direction_spawn_defaults:[282,4,1,""],display_symbol:[282,4,1,""],generate_prototype_key:[282,3,1,""],get_display_symbol:[282,3,1,""],get_exit_spawn_name:[282,3,1,""],get_spawn_xyz:[282,3,1,""],interrupt_path:[282,4,1,""],linkweights:[282,3,1,""],log:[282,3,1,""],multilink:[282,4,1,""],node_index:[282,4,1,""],prototype:[282,4,1,""],spawn:[282,3,1,""],spawn_links:[282,3,1,""],symbol:[282,4,1,""],unspawn:[282,3,1,""]},"evennia.contrib.xyzgrid.xymap_legend.MapTransitionNode":{display_symbol:[282,4,1,""],prototype:[282,4,1,""],symbol:[282,4,1,""],target_map_xyz:[282,4,1,""]},"evennia.contrib.xyzgrid.xymap_legend.NESWMapLink":{directions:[282,4,1,""],prototype:[282,4,1,""],symbol:[282,4,1,""]},"evennia.contrib.xyzgrid.xymap_legend.NSMapLink":{directions:[282,4,1,""],display_symbol:[282,4,1,""],prototype:[282,4,1,""],symbol:[282,4,1,""]},"evennia.contrib.xyzgrid.xymap_legend.NSOneWayMapLink":{directions:[282,4,1,""],prototype:[282,4,1,""],symbol:[282,4,1,""]},"evennia.contrib.xyzgrid.xymap_legend.PlusMapLink":{directions:[282,4,1,""],prototype:[282,4,1,""],symbol:[282,4,1,""]},"evennia.contrib.xyzgrid.xymap_legend.RouterMapLink":{symbol:[282,4,1,""]},"evennia.contrib.xyzgrid.xymap_legend.SENWMapLink":{directions:[282,4,1,""],prototype:[282,4,1,""],symbol:[282,4,1,""]},"evennia.contrib.xyzgrid.xymap_legend.SNOneWayMapLink":{directions:[282,4,1,""],prototype:[282,4,1,""],symbol:[282,4,1,""]},"evennia.contrib.xyzgrid.xymap_legend.SmartMapLink":{get_direction:[282,3,1,""],multilink:[282,4,1,""]},"evennia.contrib.xyzgrid.xymap_legend.SmartRerouterMapLink":{get_direction:[282,3,1,""],multilink:[282,4,1,""]},"evennia.contrib.xyzgrid.xymap_legend.SmartTeleporterMapLink":{__init__:[282,3,1,""],at_empty_target:[282,3,1,""],direction_name:[282,4,1,""],display_symbol:[282,4,1,""],get_direction:[282,3,1,""],symbol:[282,4,1,""]},"evennia.contrib.xyzgrid.xymap_legend.TeleporterMapLink":{symbol:[282,4,1,""]},"evennia.contrib.xyzgrid.xymap_legend.TransitionMapNode":{build_links:[282,3,1,""],display_symbol:[282,4,1,""],get_spawn_xyz:[282,3,1,""],symbol:[282,4,1,""],taget_map_xyz:[282,4,1,""]},"evennia.contrib.xyzgrid.xymap_legend.UpMapLink":{direction_aliases:[282,4,1,""],prototype:[282,4,1,""],spawn_aliases:[282,4,1,""],symbol:[282,4,1,""]},"evennia.contrib.xyzgrid.xymap_legend.WEOneWayMapLink":{directions:[282,4,1,""],prototype:[282,4,1,""],symbol:[282,4,1,""]},"evennia.contrib.xyzgrid.xyzgrid":{XYZGrid:[283,1,1,""],get_xyzgrid:[283,5,1,""]},"evennia.contrib.xyzgrid.xyzgrid.XYZGrid":{"delete":[283,3,1,""],DoesNotExist:[283,2,1,""],MultipleObjectsReturned:[283,2,1,""],add_maps:[283,3,1,""],all_maps:[283,3,1,""],at_script_creation:[283,3,1,""],get_exit:[283,3,1,""],get_map:[283,3,1,""],get_room:[283,3,1,""],grid:[283,3,1,""],log:[283,3,1,""],maps_from_module:[283,3,1,""],path:[283,4,1,""],reload:[283,3,1,""],remove_map:[283,3,1,""],spawn:[283,3,1,""],typename:[283,4,1,""]},"evennia.contrib.xyzgrid.xyzroom":{XYZExit:[284,1,1,""],XYZExitManager:[284,1,1,""],XYZManager:[284,1,1,""],XYZRoom:[284,1,1,""]},"evennia.contrib.xyzgrid.xyzroom.XYZExit":{DoesNotExist:[284,2,1,""],MultipleObjectsReturned:[284,2,1,""],create:[284,3,1,""],objects:[284,4,1,""],path:[284,4,1,""],typename:[284,4,1,""],xyz:[284,3,1,""],xyz_destination:[284,3,1,""],xyzgrid:[284,3,1,""]},"evennia.contrib.xyzgrid.xyzroom.XYZExitManager":{filter_xyz_exit:[284,3,1,""],get_xyz_exit:[284,3,1,""]},"evennia.contrib.xyzgrid.xyzroom.XYZManager":{filter_xyz:[284,3,1,""],get_xyz:[284,3,1,""]},"evennia.contrib.xyzgrid.xyzroom.XYZRoom":{DoesNotExist:[284,2,1,""],MultipleObjectsReturned:[284,2,1,""],create:[284,3,1,""],get_display_name:[284,3,1,""],map_align:[284,4,1,""],map_character_symbol:[284,4,1,""],map_display:[284,4,1,""],map_fill_all:[284,4,1,""],map_mode:[284,4,1,""],map_separator_char:[284,4,1,""],map_target_path_style:[284,4,1,""],map_visual_range:[284,4,1,""],objects:[284,4,1,""],path:[284,4,1,""],return_appearance:[284,3,1,""],typename:[284,4,1,""],xymap:[284,3,1,""],xyz:[284,3,1,""],xyzgrid:[284,3,1,""]},"evennia.help":{filehelp:[286,0,0,"-"],manager:[287,0,0,"-"],models:[288,0,0,"-"],utils:[289,0,0,"-"]},"evennia.help.filehelp":{FileHelpEntry:[286,1,1,""],FileHelpStorageHandler:[286,1,1,""]},"evennia.help.filehelp.FileHelpEntry":{__init__:[286,3,1,""],access:[286,3,1,""],aliases:[286,4,1,""],entrytext:[286,4,1,""],help_category:[286,4,1,""],key:[286,4,1,""],lock_storage:[286,4,1,""],locks:[286,4,1,""],search_index_entry:[286,3,1,""],web_get_admin_url:[286,3,1,""],web_get_detail_url:[286,3,1,""]},"evennia.help.filehelp.FileHelpStorageHandler":{__init__:[286,3,1,""],all:[286,3,1,""],load:[286,3,1,""]},"evennia.help.manager":{HelpEntryManager:[287,1,1,""]},"evennia.help.manager.HelpEntryManager":{all_to_category:[287,3,1,""],find_apropos:[287,3,1,""],find_topicmatch:[287,3,1,""],find_topics_with_category:[287,3,1,""],find_topicsuggestions:[287,3,1,""],get_all_categories:[287,3,1,""],get_all_topics:[287,3,1,""],search_help:[287,3,1,""]},"evennia.help.models":{HelpEntry:[288,1,1,""]},"evennia.help.models.HelpEntry":{DoesNotExist:[288,2,1,""],MultipleObjectsReturned:[288,2,1,""],access:[288,3,1,""],aliases:[288,4,1,""],date_created:[288,3,1,""],db_date_created:[288,4,1,""],db_entrytext:[288,4,1,""],db_help_category:[288,4,1,""],db_key:[288,4,1,""],db_lock_storage:[288,4,1,""],db_tags:[288,4,1,""],entrytext:[288,3,1,""],get_absolute_url:[288,3,1,""],get_next_by_db_date_created:[288,3,1,""],get_previous_by_db_date_created:[288,3,1,""],help_category:[288,3,1,""],id:[288,4,1,""],key:[288,3,1,""],lock_storage:[288,3,1,""],locks:[288,4,1,""],objects:[288,4,1,""],path:[288,4,1,""],search_index_entry:[288,3,1,""],tags:[288,4,1,""],typename:[288,4,1,""],web_get_admin_url:[288,3,1,""],web_get_create_url:[288,3,1,""],web_get_delete_url:[288,3,1,""],web_get_detail_url:[288,3,1,""],web_get_update_url:[288,3,1,""]},"evennia.help.utils":{help_search_with_index:[289,5,1,""],parse_entry_for_subcategories:[289,5,1,""]},"evennia.locks":{lockfuncs:[291,0,0,"-"],lockhandler:[292,0,0,"-"]},"evennia.locks.lockfuncs":{"false":[291,5,1,""],"true":[291,5,1,""],all:[291,5,1,""],attr:[291,5,1,""],attr_eq:[291,5,1,""],attr_ge:[291,5,1,""],attr_gt:[291,5,1,""],attr_le:[291,5,1,""],attr_lt:[291,5,1,""],attr_ne:[291,5,1,""],dbref:[291,5,1,""],has_account:[291,5,1,""],holds:[291,5,1,""],id:[291,5,1,""],inside:[291,5,1,""],inside_rec:[291,5,1,""],locattr:[291,5,1,""],none:[291,5,1,""],objattr:[291,5,1,""],objlocattr:[291,5,1,""],objtag:[291,5,1,""],pdbref:[291,5,1,""],perm:[291,5,1,""],perm_above:[291,5,1,""],pid:[291,5,1,""],pperm:[291,5,1,""],pperm_above:[291,5,1,""],self:[291,5,1,""],serversetting:[291,5,1,""],superuser:[291,5,1,""],tag:[291,5,1,""]},"evennia.locks.lockhandler":{LockException:[292,2,1,""],LockHandler:[292,1,1,""]},"evennia.locks.lockhandler.LockHandler":{"delete":[292,3,1,""],__init__:[292,3,1,""],add:[292,3,1,""],all:[292,3,1,""],append:[292,3,1,""],cache_lock_bypass:[292,3,1,""],check:[292,3,1,""],check_lockstring:[292,3,1,""],clear:[292,3,1,""],get:[292,3,1,""],remove:[292,3,1,""],replace:[292,3,1,""],reset:[292,3,1,""],validate:[292,3,1,""]},"evennia.objects":{manager:[294,0,0,"-"],models:[295,0,0,"-"],objects:[296,0,0,"-"]},"evennia.objects.manager":{ObjectDBManager:[294,1,1,""],ObjectManager:[294,1,1,""]},"evennia.objects.manager.ObjectDBManager":{clear_all_sessids:[294,3,1,""],copy_object:[294,3,1,""],get_contents:[294,3,1,""],get_object_with_account:[294,3,1,""],get_objs_with_attr:[294,3,1,""],get_objs_with_attr_value:[294,3,1,""],get_objs_with_db_property:[294,3,1,""],get_objs_with_db_property_value:[294,3,1,""],get_objs_with_key_and_typeclass:[294,3,1,""],get_objs_with_key_or_alias:[294,3,1,""],object_search:[294,3,1,""],search:[294,3,1,""],search_object:[294,3,1,""]},"evennia.objects.models":{ContentsHandler:[295,1,1,""],ObjectDB:[295,1,1,""]},"evennia.objects.models.ContentsHandler":{__init__:[295,3,1,""],add:[295,3,1,""],clear:[295,3,1,""],get:[295,3,1,""],init:[295,3,1,""],load:[295,3,1,""],remove:[295,3,1,""]},"evennia.objects.models.ObjectDB":{DoesNotExist:[295,2,1,""],MultipleObjectsReturned:[295,2,1,""],account:[295,3,1,""],at_db_location_postsave:[295,3,1,""],cmdset_storage:[295,3,1,""],contents_cache:[295,4,1,""],db_account:[295,4,1,""],db_account_id:[295,4,1,""],db_attributes:[295,4,1,""],db_cmdset_storage:[295,4,1,""],db_destination:[295,4,1,""],db_destination_id:[295,4,1,""],db_home:[295,4,1,""],db_home_id:[295,4,1,""],db_location:[295,4,1,""],db_location_id:[295,4,1,""],db_sessid:[295,4,1,""],db_tags:[295,4,1,""],destination:[295,3,1,""],destinations_set:[295,4,1,""],get_next_by_db_date_created:[295,3,1,""],get_previous_by_db_date_created:[295,3,1,""],hide_from_objects_set:[295,4,1,""],home:[295,3,1,""],homes_set:[295,4,1,""],id:[295,4,1,""],location:[295,3,1,""],locations_set:[295,4,1,""],object_subscription_set:[295,4,1,""],objects:[295,4,1,""],path:[295,4,1,""],receiver_object_set:[295,4,1,""],scriptdb_set:[295,4,1,""],sender_object_set:[295,4,1,""],sessid:[295,3,1,""],typename:[295,4,1,""]},"evennia.objects.objects":{DefaultCharacter:[296,1,1,""],DefaultExit:[296,1,1,""],DefaultObject:[296,1,1,""],DefaultRoom:[296,1,1,""],ExitCommand:[296,1,1,""],ObjectSessionHandler:[296,1,1,""]},"evennia.objects.objects.DefaultCharacter":{DoesNotExist:[296,2,1,""],MultipleObjectsReturned:[296,2,1,""],at_after_move:[296,3,1,""],at_post_move:[296,3,1,""],at_post_puppet:[296,3,1,""],at_post_unpuppet:[296,3,1,""],at_pre_puppet:[296,3,1,""],basetype_setup:[296,3,1,""],connection_time:[296,3,1,""],create:[296,3,1,""],idle_time:[296,3,1,""],lockstring:[296,4,1,""],normalize_name:[296,3,1,""],path:[296,4,1,""],typename:[296,4,1,""],validate_name:[296,3,1,""]},"evennia.objects.objects.DefaultExit":{DoesNotExist:[296,2,1,""],MultipleObjectsReturned:[296,2,1,""],at_cmdset_get:[296,3,1,""],at_failed_traverse:[296,3,1,""],at_init:[296,3,1,""],at_traverse:[296,3,1,""],basetype_setup:[296,3,1,""],create:[296,3,1,""],create_exit_cmdset:[296,3,1,""],exit_command:[296,4,1,""],lockstring:[296,4,1,""],path:[296,4,1,""],priority:[296,4,1,""],typename:[296,4,1,""]},"evennia.objects.objects.DefaultObject":{"delete":[296,3,1,""],DoesNotExist:[296,2,1,""],MultipleObjectsReturned:[296,2,1,""],access:[296,3,1,""],announce_move_from:[296,3,1,""],announce_move_to:[296,3,1,""],appearance_template:[296,4,1,""],at_access:[296,3,1,""],at_after_move:[296,3,1,""],at_after_traverse:[296,3,1,""],at_before_drop:[296,3,1,""],at_before_get:[296,3,1,""],at_before_give:[296,3,1,""],at_before_move:[296,3,1,""],at_before_say:[296,3,1,""],at_cmdset_get:[296,3,1,""],at_desc:[296,3,1,""],at_drop:[296,3,1,""],at_failed_traverse:[296,3,1,""],at_first_save:[296,3,1,""],at_get:[296,3,1,""],at_give:[296,3,1,""],at_init:[296,3,1,""],at_look:[296,3,1,""],at_msg_receive:[296,3,1,""],at_msg_send:[296,3,1,""],at_object_creation:[296,3,1,""],at_object_delete:[296,3,1,""],at_object_leave:[296,3,1,""],at_object_post_copy:[296,3,1,""],at_object_receive:[296,3,1,""],at_post_move:[296,3,1,""],at_post_puppet:[296,3,1,""],at_post_traverse:[296,3,1,""],at_post_unpuppet:[296,3,1,""],at_pre_drop:[296,3,1,""],at_pre_get:[296,3,1,""],at_pre_give:[296,3,1,""],at_pre_move:[296,3,1,""],at_pre_puppet:[296,3,1,""],at_pre_say:[296,3,1,""],at_pre_unpuppet:[296,3,1,""],at_say:[296,3,1,""],at_server_reload:[296,3,1,""],at_server_shutdown:[296,3,1,""],at_traverse:[296,3,1,""],basetype_posthook_setup:[296,3,1,""],basetype_setup:[296,3,1,""],clear_contents:[296,3,1,""],clear_exits:[296,3,1,""],cmdset:[296,4,1,""],contents:[296,3,1,""],contents_get:[296,3,1,""],contents_set:[296,3,1,""],copy:[296,3,1,""],create:[296,3,1,""],execute_cmd:[296,3,1,""],exits:[296,3,1,""],for_contents:[296,3,1,""],get_content_names:[296,3,1,""],get_display_name:[296,3,1,""],get_numbered_name:[296,3,1,""],get_visible_contents:[296,3,1,""],has_account:[296,3,1,""],is_connected:[296,3,1,""],is_superuser:[296,3,1,""],lockstring:[296,4,1,""],move_to:[296,3,1,""],msg:[296,3,1,""],msg_contents:[296,3,1,""],nicks:[296,4,1,""],objects:[296,4,1,""],path:[296,4,1,""],return_appearance:[296,3,1,""],scripts:[296,4,1,""],search:[296,3,1,""],search_account:[296,3,1,""],sessions:[296,4,1,""],typename:[296,4,1,""]},"evennia.objects.objects.DefaultRoom":{DoesNotExist:[296,2,1,""],MultipleObjectsReturned:[296,2,1,""],basetype_setup:[296,3,1,""],create:[296,3,1,""],lockstring:[296,4,1,""],path:[296,4,1,""],typename:[296,4,1,""]},"evennia.objects.objects.ExitCommand":{aliases:[296,4,1,""],func:[296,3,1,""],get_extra_info:[296,3,1,""],help_category:[296,4,1,""],key:[296,4,1,""],lock_storage:[296,4,1,""],obj:[296,4,1,""],search_index_entry:[296,4,1,""]},"evennia.objects.objects.ObjectSessionHandler":{__init__:[296,3,1,""],add:[296,3,1,""],all:[296,3,1,""],clear:[296,3,1,""],count:[296,3,1,""],get:[296,3,1,""],remove:[296,3,1,""]},"evennia.prototypes":{menus:[298,0,0,"-"],protfuncs:[299,0,0,"-"],prototypes:[300,0,0,"-"],spawner:[301,0,0,"-"]},"evennia.prototypes.menus":{OLCMenu:[298,1,1,""],node_apply_diff:[298,5,1,""],node_destination:[298,5,1,""],node_examine_entity:[298,5,1,""],node_home:[298,5,1,""],node_index:[298,5,1,""],node_key:[298,5,1,""],node_location:[298,5,1,""],node_prototype_desc:[298,5,1,""],node_prototype_key:[298,5,1,""],node_prototype_save:[298,5,1,""],node_prototype_spawn:[298,5,1,""],node_validate_prototype:[298,5,1,""],start_olc:[298,5,1,""]},"evennia.prototypes.menus.OLCMenu":{display_helptext:[298,3,1,""],helptext_formatter:[298,3,1,""],nodetext_formatter:[298,3,1,""],options_formatter:[298,3,1,""]},"evennia.prototypes.protfuncs":{protfunc_callable_protkey:[299,5,1,""]},"evennia.prototypes.prototypes":{DbPrototype:[300,1,1,""],PermissionError:[300,2,1,""],PrototypeEvMore:[300,1,1,""],ValidationError:[300,2,1,""],check_permission:[300,5,1,""],create_prototype:[300,5,1,""],delete_prototype:[300,5,1,""],format_available_protfuncs:[300,5,1,""],homogenize_prototype:[300,5,1,""],init_spawn_value:[300,5,1,""],list_prototypes:[300,5,1,""],load_module_prototypes:[300,5,1,""],protfunc_parser:[300,5,1,""],prototype_to_str:[300,5,1,""],save_prototype:[300,5,1,""],search_objects_with_prototype:[300,5,1,""],search_prototype:[300,5,1,""],validate_prototype:[300,5,1,""],value_to_obj:[300,5,1,""],value_to_obj_or_any:[300,5,1,""]},"evennia.prototypes.prototypes.DbPrototype":{DoesNotExist:[300,2,1,""],MultipleObjectsReturned:[300,2,1,""],at_script_creation:[300,3,1,""],path:[300,4,1,""],prototype:[300,3,1,""],typename:[300,4,1,""]},"evennia.prototypes.prototypes.PrototypeEvMore":{__init__:[300,3,1,""],init_pages:[300,3,1,""],page_formatter:[300,3,1,""],prototype_paginator:[300,3,1,""]},"evennia.prototypes.spawner":{Unset:[301,1,1,""],batch_create_object:[301,5,1,""],batch_update_objects_with_prototype:[301,5,1,""],flatten_diff:[301,5,1,""],flatten_prototype:[301,5,1,""],format_diff:[301,5,1,""],prototype_diff:[301,5,1,""],prototype_diff_from_object:[301,5,1,""],prototype_from_object:[301,5,1,""],spawn:[301,5,1,""]},"evennia.scripts":{manager:[303,0,0,"-"],models:[304,0,0,"-"],monitorhandler:[305,0,0,"-"],scripthandler:[306,0,0,"-"],scripts:[307,0,0,"-"],taskhandler:[308,0,0,"-"],tickerhandler:[309,0,0,"-"]},"evennia.scripts.manager":{ScriptDBManager:[303,1,1,""],ScriptManager:[303,1,1,""]},"evennia.scripts.manager.ScriptDBManager":{copy_script:[303,3,1,""],delete_script:[303,3,1,""],get_all_scripts:[303,3,1,""],get_all_scripts_on_obj:[303,3,1,""],script_search:[303,3,1,""],search_script:[303,3,1,""],update_scripts_after_server_start:[303,3,1,""]},"evennia.scripts.models":{ScriptDB:[304,1,1,""]},"evennia.scripts.models.ScriptDB":{DoesNotExist:[304,2,1,""],MultipleObjectsReturned:[304,2,1,""],account:[304,3,1,""],db_account:[304,4,1,""],db_account_id:[304,4,1,""],db_attributes:[304,4,1,""],db_desc:[304,4,1,""],db_interval:[304,4,1,""],db_is_active:[304,4,1,""],db_obj:[304,4,1,""],db_obj_id:[304,4,1,""],db_persistent:[304,4,1,""],db_repeats:[304,4,1,""],db_start_delay:[304,4,1,""],db_tags:[304,4,1,""],desc:[304,3,1,""],get_next_by_db_date_created:[304,3,1,""],get_previous_by_db_date_created:[304,3,1,""],id:[304,4,1,""],interval:[304,3,1,""],is_active:[304,3,1,""],obj:[304,3,1,""],object:[304,3,1,""],objects:[304,4,1,""],path:[304,4,1,""],persistent:[304,3,1,""],receiver_script_set:[304,4,1,""],repeats:[304,3,1,""],sender_script_set:[304,4,1,""],start_delay:[304,3,1,""],typename:[304,4,1,""]},"evennia.scripts.monitorhandler":{MonitorHandler:[305,1,1,""]},"evennia.scripts.monitorhandler.MonitorHandler":{__init__:[305,3,1,""],add:[305,3,1,""],all:[305,3,1,""],at_update:[305,3,1,""],clear:[305,3,1,""],remove:[305,3,1,""],restore:[305,3,1,""],save:[305,3,1,""]},"evennia.scripts.scripthandler":{ScriptHandler:[306,1,1,""]},"evennia.scripts.scripthandler.ScriptHandler":{"delete":[306,3,1,""],__init__:[306,3,1,""],add:[306,3,1,""],all:[306,3,1,""],get:[306,3,1,""],start:[306,3,1,""],stop:[306,3,1,""]},"evennia.scripts.scripts":{DefaultScript:[307,1,1,""],DoNothing:[307,1,1,""],Store:[307,1,1,""]},"evennia.scripts.scripts.DefaultScript":{DoesNotExist:[307,2,1,""],MultipleObjectsReturned:[307,2,1,""],at_pause:[307,3,1,""],at_repeat:[307,3,1,""],at_script_creation:[307,3,1,""],at_script_delete:[307,3,1,""],at_server_reload:[307,3,1,""],at_server_shutdown:[307,3,1,""],at_server_start:[307,3,1,""],at_start:[307,3,1,""],at_stop:[307,3,1,""],create:[307,3,1,""],is_valid:[307,3,1,""],path:[307,4,1,""],typename:[307,4,1,""]},"evennia.scripts.scripts.DoNothing":{DoesNotExist:[307,2,1,""],MultipleObjectsReturned:[307,2,1,""],at_script_creation:[307,3,1,""],path:[307,4,1,""],typename:[307,4,1,""]},"evennia.scripts.scripts.Store":{DoesNotExist:[307,2,1,""],MultipleObjectsReturned:[307,2,1,""],at_script_creation:[307,3,1,""],path:[307,4,1,""],typename:[307,4,1,""]},"evennia.scripts.taskhandler":{TaskHandler:[308,1,1,""],TaskHandlerTask:[308,1,1,""],handle_error:[308,5,1,""]},"evennia.scripts.taskhandler.TaskHandler":{__init__:[308,3,1,""],active:[308,3,1,""],add:[308,3,1,""],call_task:[308,3,1,""],cancel:[308,3,1,""],clean_stale_tasks:[308,3,1,""],clear:[308,3,1,""],create_delays:[308,3,1,""],do_task:[308,3,1,""],exists:[308,3,1,""],get_deferred:[308,3,1,""],load:[308,3,1,""],remove:[308,3,1,""],save:[308,3,1,""]},"evennia.scripts.taskhandler.TaskHandlerTask":{__init__:[308,3,1,""],active:[308,3,1,"id6"],call:[308,3,1,"id3"],called:[308,3,1,""],cancel:[308,3,1,"id5"],do_task:[308,3,1,"id2"],exists:[308,3,1,"id7"],get_deferred:[308,3,1,""],get_id:[308,3,1,"id8"],pause:[308,3,1,"id0"],paused:[308,3,1,""],remove:[308,3,1,"id4"],unpause:[308,3,1,"id1"]},"evennia.scripts.tickerhandler":{Ticker:[309,1,1,""],TickerHandler:[309,1,1,""],TickerPool:[309,1,1,""]},"evennia.scripts.tickerhandler.Ticker":{__init__:[309,3,1,""],add:[309,3,1,""],remove:[309,3,1,""],stop:[309,3,1,""],validate:[309,3,1,""]},"evennia.scripts.tickerhandler.TickerHandler":{__init__:[309,3,1,""],add:[309,3,1,""],all:[309,3,1,""],all_display:[309,3,1,""],clear:[309,3,1,""],remove:[309,3,1,""],restore:[309,3,1,""],save:[309,3,1,""],ticker_pool_class:[309,4,1,""]},"evennia.scripts.tickerhandler.TickerPool":{__init__:[309,3,1,""],add:[309,3,1,""],remove:[309,3,1,""],stop:[309,3,1,""],ticker_class:[309,4,1,""]},"evennia.server":{amp_client:[311,0,0,"-"],connection_wizard:[312,0,0,"-"],deprecations:[313,0,0,"-"],evennia_launcher:[314,0,0,"-"],game_index_client:[315,0,0,"-"],initial_setup:[318,0,0,"-"],inputfuncs:[319,0,0,"-"],manager:[320,0,0,"-"],models:[321,0,0,"-"],portal:[322,0,0,"-"],profiling:[344,0,0,"-"],server:[352,0,0,"-"],serversession:[353,0,0,"-"],session:[354,0,0,"-"],sessionhandler:[355,0,0,"-"],signals:[356,0,0,"-"],throttle:[357,0,0,"-"],validators:[358,0,0,"-"],webserver:[359,0,0,"-"]},"evennia.server.amp_client":{AMPClientFactory:[311,1,1,""],AMPServerClientProtocol:[311,1,1,""]},"evennia.server.amp_client.AMPClientFactory":{__init__:[311,3,1,""],buildProtocol:[311,3,1,""],clientConnectionFailed:[311,3,1,""],clientConnectionLost:[311,3,1,""],factor:[311,4,1,""],initialDelay:[311,4,1,""],maxDelay:[311,4,1,""],noisy:[311,4,1,""],startedConnecting:[311,3,1,""]},"evennia.server.amp_client.AMPServerClientProtocol":{connectionMade:[311,3,1,""],data_to_portal:[311,3,1,""],send_AdminServer2Portal:[311,3,1,""],send_MsgServer2Portal:[311,3,1,""],server_receive_adminportal2server:[311,3,1,""],server_receive_msgportal2server:[311,3,1,""],server_receive_status:[311,3,1,""]},"evennia.server.connection_wizard":{ConnectionWizard:[312,1,1,""],node_game_index_fields:[312,5,1,""],node_game_index_start:[312,5,1,""],node_mssp_start:[312,5,1,""],node_start:[312,5,1,""],node_view_and_apply_settings:[312,5,1,""]},"evennia.server.connection_wizard.ConnectionWizard":{__init__:[312,3,1,""],ask_choice:[312,3,1,""],ask_continue:[312,3,1,""],ask_input:[312,3,1,""],ask_node:[312,3,1,""],ask_yesno:[312,3,1,""],display:[312,3,1,""]},"evennia.server.deprecations":{check_errors:[313,5,1,""],check_warnings:[313,5,1,""]},"evennia.server.evennia_launcher":{AMPLauncherProtocol:[314,1,1,""],MsgLauncher2Portal:[314,1,1,""],MsgStatus:[314,1,1,""],check_database:[314,5,1,""],check_main_evennia_dependencies:[314,5,1,""],collectstatic:[314,5,1,""],create_game_directory:[314,5,1,""],create_secret_key:[314,5,1,""],create_settings_file:[314,5,1,""],create_superuser:[314,5,1,""],del_pid:[314,5,1,""],error_check_python_modules:[314,5,1,""],evennia_version:[314,5,1,""],get_pid:[314,5,1,""],getenv:[314,5,1,""],init_game_directory:[314,5,1,""],kill:[314,5,1,""],list_settings:[314,5,1,""],main:[314,5,1,""],query_info:[314,5,1,""],query_status:[314,5,1,""],reboot_evennia:[314,5,1,""],reload_evennia:[314,5,1,""],run_connect_wizard:[314,5,1,""],run_custom_commands:[314,5,1,""],run_dummyrunner:[314,5,1,""],run_menu:[314,5,1,""],send_instruction:[314,5,1,""],set_gamedir:[314,5,1,""],show_version_info:[314,5,1,""],start_evennia:[314,5,1,""],start_only_server:[314,5,1,""],start_portal_interactive:[314,5,1,""],start_server_interactive:[314,5,1,""],stop_evennia:[314,5,1,""],stop_server_only:[314,5,1,""],tail_log_files:[314,5,1,""],wait_for_status:[314,5,1,""],wait_for_status_reply:[314,5,1,""]},"evennia.server.evennia_launcher.AMPLauncherProtocol":{__init__:[314,3,1,""],receive_status_from_portal:[314,3,1,""],wait_for_status:[314,3,1,""]},"evennia.server.evennia_launcher.MsgLauncher2Portal":{allErrors:[314,4,1,""],arguments:[314,4,1,""],commandName:[314,4,1,""],errors:[314,4,1,""],key:[314,4,1,""],response:[314,4,1,""],reverseErrors:[314,4,1,""]},"evennia.server.evennia_launcher.MsgStatus":{allErrors:[314,4,1,""],arguments:[314,4,1,""],commandName:[314,4,1,""],errors:[314,4,1,""],key:[314,4,1,""],response:[314,4,1,""],reverseErrors:[314,4,1,""]},"evennia.server.game_index_client":{client:[316,0,0,"-"],service:[317,0,0,"-"]},"evennia.server.game_index_client.client":{EvenniaGameIndexClient:[316,1,1,""],QuietHTTP11ClientFactory:[316,1,1,""],SimpleResponseReceiver:[316,1,1,""],StringProducer:[316,1,1,""]},"evennia.server.game_index_client.client.EvenniaGameIndexClient":{__init__:[316,3,1,""],handle_egd_response:[316,3,1,""],send_game_details:[316,3,1,""]},"evennia.server.game_index_client.client.QuietHTTP11ClientFactory":{noisy:[316,4,1,""]},"evennia.server.game_index_client.client.SimpleResponseReceiver":{__init__:[316,3,1,""],connectionLost:[316,3,1,""],dataReceived:[316,3,1,""]},"evennia.server.game_index_client.client.StringProducer":{__init__:[316,3,1,""],pauseProducing:[316,3,1,""],startProducing:[316,3,1,""],stopProducing:[316,3,1,""]},"evennia.server.game_index_client.service":{EvenniaGameIndexService:[317,1,1,""]},"evennia.server.game_index_client.service.EvenniaGameIndexService":{__init__:[317,3,1,""],name:[317,4,1,""],startService:[317,3,1,""],stopService:[317,3,1,""]},"evennia.server.initial_setup":{at_initial_setup:[318,5,1,""],collectstatic:[318,5,1,""],create_objects:[318,5,1,""],handle_setup:[318,5,1,""],reset_server:[318,5,1,""]},"evennia.server.inputfuncs":{"default":[319,5,1,""],bot_data_in:[319,5,1,""],client_gui:[319,5,1,""],client_options:[319,5,1,""],echo:[319,5,1,""],external_discord_hello:[319,5,1,""],get_client_options:[319,5,1,""],get_inputfuncs:[319,5,1,""],get_value:[319,5,1,""],hello:[319,5,1,""],login:[319,5,1,""],monitor:[319,5,1,""],monitored:[319,5,1,""],msdp_list:[319,5,1,""],msdp_report:[319,5,1,""],msdp_send:[319,5,1,""],msdp_unreport:[319,5,1,""],repeat:[319,5,1,""],supports_set:[319,5,1,""],text:[319,5,1,""],unmonitor:[319,5,1,""],unrepeat:[319,5,1,""],webclient_options:[319,5,1,""]},"evennia.server.manager":{ServerConfigManager:[320,1,1,""]},"evennia.server.manager.ServerConfigManager":{conf:[320,3,1,""]},"evennia.server.models":{ServerConfig:[321,1,1,""]},"evennia.server.models.ServerConfig":{DoesNotExist:[321,2,1,""],MultipleObjectsReturned:[321,2,1,""],db_key:[321,4,1,""],db_value:[321,4,1,""],id:[321,4,1,""],key:[321,3,1,""],objects:[321,4,1,""],path:[321,4,1,""],store:[321,3,1,""],typename:[321,4,1,""],value:[321,3,1,""]},"evennia.server.portal":{amp:[323,0,0,"-"],amp_server:[324,0,0,"-"],grapevine:[325,0,0,"-"],irc:[326,0,0,"-"],mccp:[327,0,0,"-"],mssp:[328,0,0,"-"],mxp:[329,0,0,"-"],naws:[330,0,0,"-"],portal:[331,0,0,"-"],portalsessionhandler:[332,0,0,"-"],rss:[333,0,0,"-"],ssh:[334,0,0,"-"],ssl:[335,0,0,"-"],suppress_ga:[336,0,0,"-"],telnet:[337,0,0,"-"],telnet_oob:[338,0,0,"-"],telnet_ssl:[339,0,0,"-"],tests:[340,0,0,"-"],ttype:[341,0,0,"-"],webclient:[342,0,0,"-"],webclient_ajax:[343,0,0,"-"]},"evennia.server.portal.amp":{AMPMultiConnectionProtocol:[323,1,1,""],AdminPortal2Server:[323,1,1,""],AdminServer2Portal:[323,1,1,""],Compressed:[323,1,1,""],FunctionCall:[323,1,1,""],MsgLauncher2Portal:[323,1,1,""],MsgPortal2Server:[323,1,1,""],MsgServer2Portal:[323,1,1,""],MsgStatus:[323,1,1,""],dumps:[323,5,1,""],loads:[323,5,1,""]},"evennia.server.portal.amp.AMPMultiConnectionProtocol":{__init__:[323,3,1,""],broadcast:[323,3,1,""],connectionLost:[323,3,1,""],connectionMade:[323,3,1,""],dataReceived:[323,3,1,""],data_in:[323,3,1,""],errback:[323,3,1,""],makeConnection:[323,3,1,""],receive_functioncall:[323,3,1,""],send_FunctionCall:[323,3,1,""]},"evennia.server.portal.amp.AdminPortal2Server":{allErrors:[323,4,1,""],arguments:[323,4,1,""],commandName:[323,4,1,""],errors:[323,4,1,""],key:[323,4,1,""],response:[323,4,1,""],reverseErrors:[323,4,1,""]},"evennia.server.portal.amp.AdminServer2Portal":{allErrors:[323,4,1,""],arguments:[323,4,1,""],commandName:[323,4,1,""],errors:[323,4,1,""],key:[323,4,1,""],response:[323,4,1,""],reverseErrors:[323,4,1,""]},"evennia.server.portal.amp.Compressed":{fromBox:[323,3,1,""],fromString:[323,3,1,""],toBox:[323,3,1,""],toString:[323,3,1,""]},"evennia.server.portal.amp.FunctionCall":{allErrors:[323,4,1,""],arguments:[323,4,1,""],commandName:[323,4,1,""],errors:[323,4,1,""],key:[323,4,1,""],response:[323,4,1,""],reverseErrors:[323,4,1,""]},"evennia.server.portal.amp.MsgLauncher2Portal":{allErrors:[323,4,1,""],arguments:[323,4,1,""],commandName:[323,4,1,""],errors:[323,4,1,""],key:[323,4,1,""],response:[323,4,1,""],reverseErrors:[323,4,1,""]},"evennia.server.portal.amp.MsgPortal2Server":{allErrors:[323,4,1,""],arguments:[323,4,1,""],commandName:[323,4,1,""],errors:[323,4,1,""],key:[323,4,1,""],response:[323,4,1,""],reverseErrors:[323,4,1,""]},"evennia.server.portal.amp.MsgServer2Portal":{allErrors:[323,4,1,""],arguments:[323,4,1,""],commandName:[323,4,1,""],errors:[323,4,1,""],key:[323,4,1,""],response:[323,4,1,""],reverseErrors:[323,4,1,""]},"evennia.server.portal.amp.MsgStatus":{allErrors:[323,4,1,""],arguments:[323,4,1,""],commandName:[323,4,1,""],errors:[323,4,1,""],key:[323,4,1,""],response:[323,4,1,""],reverseErrors:[323,4,1,""]},"evennia.server.portal.amp_server":{AMPServerFactory:[324,1,1,""],AMPServerProtocol:[324,1,1,""],getenv:[324,5,1,""]},"evennia.server.portal.amp_server.AMPServerFactory":{__init__:[324,3,1,""],buildProtocol:[324,3,1,""],logPrefix:[324,3,1,""],noisy:[324,4,1,""]},"evennia.server.portal.amp_server.AMPServerProtocol":{connectionLost:[324,3,1,""],data_to_server:[324,3,1,""],get_status:[324,3,1,""],portal_receive_adminserver2portal:[324,3,1,""],portal_receive_launcher2portal:[324,3,1,""],portal_receive_server2portal:[324,3,1,""],portal_receive_status:[324,3,1,""],send_AdminPortal2Server:[324,3,1,""],send_MsgPortal2Server:[324,3,1,""],send_Status2Launcher:[324,3,1,""],start_server:[324,3,1,""],stop_server:[324,3,1,""],wait_for_disconnect:[324,3,1,""],wait_for_server_connect:[324,3,1,""]},"evennia.server.portal.grapevine":{GrapevineClient:[325,1,1,""],RestartingWebsocketServerFactory:[325,1,1,""]},"evennia.server.portal.grapevine.GrapevineClient":{__init__:[325,3,1,""],at_login:[325,3,1,""],data_in:[325,3,1,""],disconnect:[325,3,1,""],onClose:[325,3,1,""],onMessage:[325,3,1,""],onOpen:[325,3,1,""],send_authenticate:[325,3,1,""],send_channel:[325,3,1,""],send_default:[325,3,1,""],send_heartbeat:[325,3,1,""],send_subscribe:[325,3,1,""],send_unsubscribe:[325,3,1,""]},"evennia.server.portal.grapevine.RestartingWebsocketServerFactory":{__init__:[325,3,1,""],buildProtocol:[325,3,1,""],clientConnectionFailed:[325,3,1,""],clientConnectionLost:[325,3,1,""],factor:[325,4,1,""],initialDelay:[325,4,1,""],maxDelay:[325,4,1,""],reconnect:[325,3,1,""],start:[325,3,1,""],startedConnecting:[325,3,1,""]},"evennia.server.portal.irc":{IRCBot:[326,1,1,""],IRCBotFactory:[326,1,1,""],parse_ansi_to_irc:[326,5,1,""],parse_irc_to_ansi:[326,5,1,""]},"evennia.server.portal.irc.IRCBot":{action:[326,3,1,""],at_login:[326,3,1,""],channel:[326,4,1,""],data_in:[326,3,1,""],disconnect:[326,3,1,""],factory:[326,4,1,""],get_nicklist:[326,3,1,""],irc_RPL_ENDOFNAMES:[326,3,1,""],irc_RPL_NAMREPLY:[326,3,1,""],lineRate:[326,4,1,""],logger:[326,4,1,""],nickname:[326,4,1,""],pong:[326,3,1,""],privmsg:[326,3,1,""],send_channel:[326,3,1,""],send_default:[326,3,1,""],send_ping:[326,3,1,""],send_privmsg:[326,3,1,""],send_reconnect:[326,3,1,""],send_request_nicklist:[326,3,1,""],signedOn:[326,3,1,""],sourceURL:[326,4,1,""]},"evennia.server.portal.irc.IRCBotFactory":{__init__:[326,3,1,""],buildProtocol:[326,3,1,""],clientConnectionFailed:[326,3,1,""],clientConnectionLost:[326,3,1,""],factor:[326,4,1,""],initialDelay:[326,4,1,""],maxDelay:[326,4,1,""],reconnect:[326,3,1,""],start:[326,3,1,""],startedConnecting:[326,3,1,""]},"evennia.server.portal.mccp":{Mccp:[327,1,1,""],mccp_compress:[327,5,1,""]},"evennia.server.portal.mccp.Mccp":{__init__:[327,3,1,""],do_mccp:[327,3,1,""],no_mccp:[327,3,1,""]},"evennia.server.portal.mssp":{Mssp:[328,1,1,""]},"evennia.server.portal.mssp.Mssp":{__init__:[328,3,1,""],do_mssp:[328,3,1,""],get_player_count:[328,3,1,""],get_uptime:[328,3,1,""],no_mssp:[328,3,1,""]},"evennia.server.portal.mxp":{Mxp:[329,1,1,""],mxp_parse:[329,5,1,""]},"evennia.server.portal.mxp.Mxp":{__init__:[329,3,1,""],do_mxp:[329,3,1,""],no_mxp:[329,3,1,""]},"evennia.server.portal.naws":{Naws:[330,1,1,""]},"evennia.server.portal.naws.Naws":{__init__:[330,3,1,""],do_naws:[330,3,1,""],negotiate_sizes:[330,3,1,""],no_naws:[330,3,1,""]},"evennia.server.portal.portal":{Portal:[331,1,1,""],Websocket:[331,1,1,""]},"evennia.server.portal.portal.Portal":{__init__:[331,3,1,""],get_info_dict:[331,3,1,""],shutdown:[331,3,1,""]},"evennia.server.portal.portalsessionhandler":{PortalSessionHandler:[332,1,1,""]},"evennia.server.portal.portalsessionhandler.PortalSessionHandler":{__init__:[332,3,1,""],announce_all:[332,3,1,""],at_server_connection:[332,3,1,""],connect:[332,3,1,""],count_loggedin:[332,3,1,""],data_in:[332,3,1,""],data_out:[332,3,1,""],disconnect:[332,3,1,""],disconnect_all:[332,3,1,""],generate_sessid:[332,3,1,""],server_connect:[332,3,1,""],server_disconnect:[332,3,1,""],server_disconnect_all:[332,3,1,""],server_logged_in:[332,3,1,""],server_session_sync:[332,3,1,""],sessions_from_csessid:[332,3,1,""],sync:[332,3,1,""]},"evennia.server.portal.rss":{RSSBotFactory:[333,1,1,""],RSSReader:[333,1,1,""]},"evennia.server.portal.rss.RSSBotFactory":{__init__:[333,3,1,""],start:[333,3,1,""]},"evennia.server.portal.rss.RSSReader":{__init__:[333,3,1,""],data_in:[333,3,1,""],disconnect:[333,3,1,""],get_new:[333,3,1,""],update:[333,3,1,""]},"evennia.server.portal.ssh":{AccountDBPasswordChecker:[334,1,1,""],ExtraInfoAuthServer:[334,1,1,""],PassAvatarIdTerminalRealm:[334,1,1,""],SSHServerFactory:[334,1,1,""],SshProtocol:[334,1,1,""],TerminalSessionTransport_getPeer:[334,1,1,""],getKeyPair:[334,5,1,""],makeFactory:[334,5,1,""]},"evennia.server.portal.ssh.AccountDBPasswordChecker":{__init__:[334,3,1,""],credentialInterfaces:[334,4,1,""],noisy:[334,4,1,""],requestAvatarId:[334,3,1,""]},"evennia.server.portal.ssh.ExtraInfoAuthServer":{auth_password:[334,3,1,""],noisy:[334,4,1,""]},"evennia.server.portal.ssh.PassAvatarIdTerminalRealm":{noisy:[334,4,1,""]},"evennia.server.portal.ssh.SSHServerFactory":{logPrefix:[334,3,1,""],noisy:[334,4,1,""]},"evennia.server.portal.ssh.SshProtocol":{__init__:[334,3,1,""],at_login:[334,3,1,""],connectionLost:[334,3,1,""],connectionMade:[334,3,1,""],data_out:[334,3,1,""],disconnect:[334,3,1,""],getClientAddress:[334,3,1,""],handle_EOF:[334,3,1,""],handle_FF:[334,3,1,""],handle_INT:[334,3,1,""],handle_QUIT:[334,3,1,""],lineReceived:[334,3,1,""],noisy:[334,4,1,""],sendLine:[334,3,1,""],send_default:[334,3,1,""],send_prompt:[334,3,1,""],send_text:[334,3,1,""],terminalSize:[334,3,1,""]},"evennia.server.portal.ssh.TerminalSessionTransport_getPeer":{__init__:[334,3,1,""],noisy:[334,4,1,""]},"evennia.server.portal.ssl":{SSLProtocol:[335,1,1,""],getSSLContext:[335,5,1,""],verify_SSL_key_and_cert:[335,5,1,""]},"evennia.server.portal.ssl.SSLProtocol":{__init__:[335,3,1,""]},"evennia.server.portal.suppress_ga":{SuppressGA:[336,1,1,""]},"evennia.server.portal.suppress_ga.SuppressGA":{__init__:[336,3,1,""],will_suppress_ga:[336,3,1,""],wont_suppress_ga:[336,3,1,""]},"evennia.server.portal.telnet":{TelnetProtocol:[337,1,1,""],TelnetServerFactory:[337,1,1,""]},"evennia.server.portal.telnet.TelnetProtocol":{__init__:[337,3,1,""],applicationDataReceived:[337,3,1,""],at_login:[337,3,1,""],connectionLost:[337,3,1,""],connectionMade:[337,3,1,""],dataReceived:[337,3,1,""],data_in:[337,3,1,""],data_out:[337,3,1,""],disableLocal:[337,3,1,""],disableRemote:[337,3,1,""],disconnect:[337,3,1,""],enableLocal:[337,3,1,""],enableRemote:[337,3,1,""],handshake_done:[337,3,1,""],sendLine:[337,3,1,""],send_default:[337,3,1,""],send_prompt:[337,3,1,""],send_text:[337,3,1,""],toggle_nop_keepalive:[337,3,1,""]},"evennia.server.portal.telnet.TelnetServerFactory":{logPrefix:[337,3,1,""],noisy:[337,4,1,""]},"evennia.server.portal.telnet_oob":{TelnetOOB:[338,1,1,""]},"evennia.server.portal.telnet_oob.TelnetOOB":{__init__:[338,3,1,""],data_out:[338,3,1,""],decode_gmcp:[338,3,1,""],decode_msdp:[338,3,1,""],do_gmcp:[338,3,1,""],do_msdp:[338,3,1,""],encode_gmcp:[338,3,1,""],encode_msdp:[338,3,1,""],no_gmcp:[338,3,1,""],no_msdp:[338,3,1,""]},"evennia.server.portal.telnet_ssl":{SSLProtocol:[339,1,1,""],getSSLContext:[339,5,1,""],verify_or_create_SSL_key_and_cert:[339,5,1,""]},"evennia.server.portal.telnet_ssl.SSLProtocol":{__init__:[339,3,1,""]},"evennia.server.portal.tests":{TestAMPServer:[340,1,1,""],TestIRC:[340,1,1,""],TestTelnet:[340,1,1,""],TestWebSocket:[340,1,1,""]},"evennia.server.portal.tests.TestAMPServer":{setUp:[340,3,1,""],test_amp_in:[340,3,1,""],test_amp_out:[340,3,1,""],test_large_msg:[340,3,1,""]},"evennia.server.portal.tests.TestIRC":{test_bold:[340,3,1,""],test_colors:[340,3,1,""],test_identity:[340,3,1,""],test_italic:[340,3,1,""],test_plain_ansi:[340,3,1,""]},"evennia.server.portal.tests.TestTelnet":{setUp:[340,3,1,""],test_mudlet_ttype:[340,3,1,""]},"evennia.server.portal.tests.TestWebSocket":{setUp:[340,3,1,""],tearDown:[340,3,1,""],test_data_in:[340,3,1,""],test_data_out:[340,3,1,""]},"evennia.server.portal.ttype":{Ttype:[341,1,1,""]},"evennia.server.portal.ttype.Ttype":{__init__:[341,3,1,""],will_ttype:[341,3,1,""],wont_ttype:[341,3,1,""]},"evennia.server.portal.webclient":{WebSocketClient:[342,1,1,""]},"evennia.server.portal.webclient.WebSocketClient":{__init__:[342,3,1,""],at_login:[342,3,1,""],data_in:[342,3,1,""],disconnect:[342,3,1,""],get_client_session:[342,3,1,""],nonce:[342,4,1,""],onClose:[342,3,1,""],onMessage:[342,3,1,""],onOpen:[342,3,1,""],sendLine:[342,3,1,""],send_default:[342,3,1,""],send_prompt:[342,3,1,""],send_text:[342,3,1,""]},"evennia.server.portal.webclient_ajax":{AjaxWebClient:[343,1,1,""],AjaxWebClientSession:[343,1,1,""],LazyEncoder:[343,1,1,""],jsonify:[343,5,1,""]},"evennia.server.portal.webclient_ajax.AjaxWebClient":{__init__:[343,3,1,""],allowedMethods:[343,4,1,""],at_login:[343,3,1,""],client_disconnect:[343,3,1,""],get_browserstr:[343,3,1,""],get_client_sessid:[343,3,1,""],isLeaf:[343,4,1,""],lineSend:[343,3,1,""],mode_close:[343,3,1,""],mode_init:[343,3,1,""],mode_input:[343,3,1,""],mode_keepalive:[343,3,1,""],mode_receive:[343,3,1,""],render_POST:[343,3,1,""]},"evennia.server.portal.webclient_ajax.AjaxWebClientSession":{__init__:[343,3,1,""],at_login:[343,3,1,""],data_in:[343,3,1,""],data_out:[343,3,1,""],disconnect:[343,3,1,""],get_client_session:[343,3,1,""],send_default:[343,3,1,""],send_prompt:[343,3,1,""],send_text:[343,3,1,""]},"evennia.server.portal.webclient_ajax.LazyEncoder":{"default":[343,3,1,""]},"evennia.server.profiling":{dummyrunner:[345,0,0,"-"],dummyrunner_settings:[346,0,0,"-"],memplot:[347,0,0,"-"],settings_mixin:[348,0,0,"-"],test_queries:[349,0,0,"-"],tests:[350,0,0,"-"],timetrace:[351,0,0,"-"]},"evennia.server.profiling.dummyrunner":{CmdDummyRunnerEchoResponse:[345,1,1,""],DummyClient:[345,1,1,""],DummyFactory:[345,1,1,""],DummyRunnerCmdSet:[345,1,1,""],gidcounter:[345,5,1,""],idcounter:[345,5,1,""],makeiter:[345,5,1,""],start_all_dummy_clients:[345,5,1,""]},"evennia.server.profiling.dummyrunner.CmdDummyRunnerEchoResponse":{aliases:[345,4,1,""],func:[345,3,1,""],help_category:[345,4,1,""],key:[345,4,1,""],lock_storage:[345,4,1,""],search_index_entry:[345,4,1,""]},"evennia.server.profiling.dummyrunner.DummyClient":{connectionLost:[345,3,1,""],connectionMade:[345,3,1,""],counter:[345,3,1,""],dataReceived:[345,3,1,""],error:[345,3,1,""],logout:[345,3,1,""],report:[345,3,1,""],step:[345,3,1,""]},"evennia.server.profiling.dummyrunner.DummyFactory":{__init__:[345,3,1,""],initialDelay:[345,4,1,""],maxDelay:[345,4,1,""],noisy:[345,4,1,""],protocol:[345,4,1,""]},"evennia.server.profiling.dummyrunner.DummyRunnerCmdSet":{at_cmdset_creation:[345,3,1,""],path:[345,4,1,""]},"evennia.server.profiling.dummyrunner_settings":{c_creates_button:[346,5,1,""],c_creates_obj:[346,5,1,""],c_digs:[346,5,1,""],c_examines:[346,5,1,""],c_help:[346,5,1,""],c_idles:[346,5,1,""],c_login:[346,5,1,""],c_login_nodig:[346,5,1,""],c_logout:[346,5,1,""],c_looks:[346,5,1,""],c_measure_lag:[346,5,1,""],c_moves:[346,5,1,""],c_moves_n:[346,5,1,""],c_moves_s:[346,5,1,""],c_socialize:[346,5,1,""]},"evennia.server.profiling.memplot":{Memplot:[347,1,1,""]},"evennia.server.profiling.memplot.Memplot":{DoesNotExist:[347,2,1,""],MultipleObjectsReturned:[347,2,1,""],at_repeat:[347,3,1,""],at_script_creation:[347,3,1,""],path:[347,4,1,""],typename:[347,4,1,""]},"evennia.server.profiling.test_queries":{count_queries:[349,5,1,""]},"evennia.server.profiling.tests":{TestDummyrunnerSettings:[350,1,1,""],TestMemPlot:[350,1,1,""]},"evennia.server.profiling.tests.TestDummyrunnerSettings":{clear_client_lists:[350,3,1,""],perception_method_tests:[350,3,1,""],setUp:[350,3,1,""],test_c_creates_button:[350,3,1,""],test_c_creates_obj:[350,3,1,""],test_c_digs:[350,3,1,""],test_c_examines:[350,3,1,""],test_c_help:[350,3,1,""],test_c_login:[350,3,1,""],test_c_login_no_dig:[350,3,1,""],test_c_logout:[350,3,1,""],test_c_looks:[350,3,1,""],test_c_move_n:[350,3,1,""],test_c_move_s:[350,3,1,""],test_c_moves:[350,3,1,""],test_c_socialize:[350,3,1,""],test_idles:[350,3,1,""]},"evennia.server.profiling.tests.TestMemPlot":{test_memplot:[350,3,1,""]},"evennia.server.profiling.timetrace":{timetrace:[351,5,1,""]},"evennia.server.server":{Evennia:[352,1,1,""]},"evennia.server.server.Evennia":{__init__:[352,3,1,""],at_post_portal_sync:[352,3,1,""],at_server_cold_start:[352,3,1,""],at_server_cold_stop:[352,3,1,""],at_server_reload_start:[352,3,1,""],at_server_reload_stop:[352,3,1,""],at_server_start:[352,3,1,""],at_server_stop:[352,3,1,""],create_default_channels:[352,3,1,""],get_info_dict:[352,3,1,""],run_init_hooks:[352,3,1,""],run_initial_setup:[352,3,1,""],shutdown:[352,3,1,""],sqlite3_prep:[352,3,1,""],update_defaults:[352,3,1,""]},"evennia.server.serversession":{ServerSession:[353,1,1,""]},"evennia.server.serversession.ServerSession":{__init__:[353,3,1,""],access:[353,3,1,""],at_cmdset_get:[353,3,1,""],at_disconnect:[353,3,1,""],at_login:[353,3,1,""],at_sync:[353,3,1,""],attributes:[353,4,1,""],cmdset_storage:[353,3,1,""],data_in:[353,3,1,""],data_out:[353,3,1,""],db:[353,3,1,""],execute_cmd:[353,3,1,""],get_account:[353,3,1,""],get_character:[353,3,1,""],get_client_size:[353,3,1,""],get_puppet:[353,3,1,""],get_puppet_or_account:[353,3,1,""],id:[353,3,1,""],log:[353,3,1,""],msg:[353,3,1,""],nattributes:[353,4,1,""],ndb:[353,3,1,""],ndb_del:[353,3,1,""],ndb_get:[353,3,1,""],ndb_set:[353,3,1,""],update_flags:[353,3,1,""],update_session_counters:[353,3,1,""]},"evennia.server.session":{Session:[354,1,1,""]},"evennia.server.session.Session":{at_sync:[354,3,1,""],data_in:[354,3,1,""],data_out:[354,3,1,""],disconnect:[354,3,1,""],get_sync_data:[354,3,1,""],init_session:[354,3,1,""],load_sync_data:[354,3,1,""]},"evennia.server.sessionhandler":{DummySession:[355,1,1,""],ServerSessionHandler:[355,1,1,""],SessionHandler:[355,1,1,""],delayed_import:[355,5,1,""]},"evennia.server.sessionhandler.DummySession":{sessid:[355,4,1,""]},"evennia.server.sessionhandler.ServerSessionHandler":{__init__:[355,3,1,""],account_count:[355,3,1,""],all_connected_accounts:[355,3,1,""],all_sessions_portal_sync:[355,3,1,""],announce_all:[355,3,1,""],call_inputfuncs:[355,3,1,""],data_in:[355,3,1,""],data_out:[355,3,1,""],disconnect:[355,3,1,""],disconnect_all_sessions:[355,3,1,""],disconnect_duplicate_sessions:[355,3,1,""],get_inputfuncs:[355,3,1,""],login:[355,3,1,""],portal_connect:[355,3,1,""],portal_disconnect:[355,3,1,""],portal_disconnect_all:[355,3,1,""],portal_reset_server:[355,3,1,""],portal_restart_server:[355,3,1,""],portal_session_sync:[355,3,1,""],portal_sessions_sync:[355,3,1,""],portal_shutdown:[355,3,1,""],session_from_account:[355,3,1,""],session_from_sessid:[355,3,1,""],session_portal_partial_sync:[355,3,1,""],session_portal_sync:[355,3,1,""],sessions_from_account:[355,3,1,""],sessions_from_character:[355,3,1,""],sessions_from_csessid:[355,3,1,""],sessions_from_puppet:[355,3,1,""],start_bot_session:[355,3,1,""],validate_sessions:[355,3,1,""]},"evennia.server.sessionhandler.SessionHandler":{clean_senddata:[355,3,1,""],get:[355,3,1,""],get_all_sync_data:[355,3,1,""],get_sessions:[355,3,1,""]},"evennia.server.throttle":{Throttle:[357,1,1,""]},"evennia.server.throttle.Throttle":{__init__:[357,3,1,""],check:[357,3,1,""],error_msg:[357,4,1,""],get:[357,3,1,""],get_cache_key:[357,3,1,""],record_ip:[357,3,1,""],remove:[357,3,1,""],touch:[357,3,1,""],unrecord_ip:[357,3,1,""],update:[357,3,1,""]},"evennia.server.validators":{EvenniaPasswordValidator:[358,1,1,""],EvenniaUsernameAvailabilityValidator:[358,1,1,""]},"evennia.server.validators.EvenniaPasswordValidator":{__init__:[358,3,1,""],get_help_text:[358,3,1,""],validate:[358,3,1,""]},"evennia.server.webserver":{DjangoWebRoot:[359,1,1,""],EvenniaReverseProxyResource:[359,1,1,""],HTTPChannelWithXForwardedFor:[359,1,1,""],LockableThreadPool:[359,1,1,""],PrivateStaticRoot:[359,1,1,""],WSGIWebServer:[359,1,1,""],Website:[359,1,1,""]},"evennia.server.webserver.DjangoWebRoot":{__init__:[359,3,1,""],empty_threadpool:[359,3,1,""],getChild:[359,3,1,""]},"evennia.server.webserver.EvenniaReverseProxyResource":{getChild:[359,3,1,""],render:[359,3,1,""]},"evennia.server.webserver.HTTPChannelWithXForwardedFor":{allHeadersReceived:[359,3,1,""]},"evennia.server.webserver.LockableThreadPool":{__init__:[359,3,1,""],callInThread:[359,3,1,""],lock:[359,3,1,""]},"evennia.server.webserver.PrivateStaticRoot":{directoryListing:[359,3,1,""]},"evennia.server.webserver.WSGIWebServer":{__init__:[359,3,1,""],startService:[359,3,1,""],stopService:[359,3,1,""]},"evennia.server.webserver.Website":{log:[359,3,1,""],logPrefix:[359,3,1,""],noisy:[359,4,1,""]},"evennia.typeclasses":{attributes:[362,0,0,"-"],managers:[363,0,0,"-"],models:[364,0,0,"-"],tags:[365,0,0,"-"]},"evennia.typeclasses.attributes":{Attribute:[362,1,1,""],AttributeHandler:[362,1,1,""],AttributeProperty:[362,1,1,""],DbHolder:[362,1,1,""],IAttribute:[362,1,1,""],IAttributeBackend:[362,1,1,""],InMemoryAttribute:[362,1,1,""],InMemoryAttributeBackend:[362,1,1,""],ModelAttributeBackend:[362,1,1,""],NAttributeProperty:[362,1,1,""],NickHandler:[362,1,1,""],NickTemplateInvalid:[362,2,1,""],initialize_nick_templates:[362,5,1,""],parse_nick_template:[362,5,1,""]},"evennia.typeclasses.attributes.Attribute":{DoesNotExist:[362,2,1,""],MultipleObjectsReturned:[362,2,1,""],accountdb_set:[362,4,1,""],attrtype:[362,3,1,""],category:[362,3,1,""],channeldb_set:[362,4,1,""],date_created:[362,3,1,""],db_attrtype:[362,4,1,""],db_category:[362,4,1,""],db_date_created:[362,4,1,""],db_key:[362,4,1,""],db_lock_storage:[362,4,1,""],db_model:[362,4,1,""],db_strvalue:[362,4,1,""],db_value:[362,4,1,""],get_next_by_db_date_created:[362,3,1,""],get_previous_by_db_date_created:[362,3,1,""],id:[362,4,1,""],key:[362,3,1,""],lock_storage:[362,3,1,""],model:[362,3,1,""],objectdb_set:[362,4,1,""],path:[362,4,1,""],scriptdb_set:[362,4,1,""],strvalue:[362,3,1,""],typename:[362,4,1,""],value:[362,3,1,""]},"evennia.typeclasses.attributes.AttributeHandler":{__init__:[362,3,1,""],add:[362,3,1,""],all:[362,3,1,""],batch_add:[362,3,1,""],clear:[362,3,1,""],get:[362,3,1,""],has:[362,3,1,""],remove:[362,3,1,""],reset_cache:[362,3,1,""]},"evennia.typeclasses.attributes.AttributeProperty":{__init__:[362,3,1,""],attrhandler_name:[362,4,1,""]},"evennia.typeclasses.attributes.DbHolder":{__init__:[362,3,1,""],all:[362,3,1,""],get_all:[362,3,1,""]},"evennia.typeclasses.attributes.IAttribute":{access:[362,3,1,""],attrtype:[362,3,1,""],category:[362,3,1,""],date_created:[362,3,1,""],key:[362,3,1,""],lock_storage:[362,3,1,""],locks:[362,4,1,""],model:[362,3,1,""],strvalue:[362,3,1,""]},"evennia.typeclasses.attributes.IAttributeBackend":{__init__:[362,3,1,""],batch_add:[362,3,1,""],clear_attributes:[362,3,1,""],create_attribute:[362,3,1,""],delete_attribute:[362,3,1,""],do_batch_delete:[362,3,1,""],do_batch_finish:[362,3,1,""],do_batch_update_attribute:[362,3,1,""],do_create_attribute:[362,3,1,""],do_delete_attribute:[362,3,1,""],do_update_attribute:[362,3,1,""],get:[362,3,1,""],get_all_attributes:[362,3,1,""],query_all:[362,3,1,""],query_category:[362,3,1,""],query_key:[362,3,1,""],reset_cache:[362,3,1,""],update_attribute:[362,3,1,""]},"evennia.typeclasses.attributes.InMemoryAttribute":{__init__:[362,3,1,""],value:[362,3,1,""]},"evennia.typeclasses.attributes.InMemoryAttributeBackend":{__init__:[362,3,1,""],do_batch_finish:[362,3,1,""],do_batch_update_attribute:[362,3,1,""],do_create_attribute:[362,3,1,""],do_delete_attribute:[362,3,1,""],do_update_attribute:[362,3,1,""],query_all:[362,3,1,""],query_category:[362,3,1,""],query_key:[362,3,1,""]},"evennia.typeclasses.attributes.ModelAttributeBackend":{__init__:[362,3,1,""],do_batch_finish:[362,3,1,""],do_batch_update_attribute:[362,3,1,""],do_create_attribute:[362,3,1,""],do_delete_attribute:[362,3,1,""],do_update_attribute:[362,3,1,""],query_all:[362,3,1,""],query_category:[362,3,1,""],query_key:[362,3,1,""]},"evennia.typeclasses.attributes.NAttributeProperty":{attrhandler_name:[362,4,1,""]},"evennia.typeclasses.attributes.NickHandler":{__init__:[362,3,1,""],add:[362,3,1,""],get:[362,3,1,""],has:[362,3,1,""],nickreplace:[362,3,1,""],remove:[362,3,1,""]},"evennia.typeclasses.managers":{TypedObjectManager:[363,1,1,""]},"evennia.typeclasses.managers.TypedObjectManager":{create_tag:[363,3,1,""],dbref:[363,3,1,""],dbref_search:[363,3,1,""],get_alias:[363,3,1,""],get_attribute:[363,3,1,""],get_by_alias:[363,3,1,""],get_by_attribute:[363,3,1,""],get_by_nick:[363,3,1,""],get_by_permission:[363,3,1,""],get_by_tag:[363,3,1,""],get_dbref_range:[363,3,1,""],get_id:[363,3,1,""],get_nick:[363,3,1,""],get_permission:[363,3,1,""],get_tag:[363,3,1,""],get_typeclass_totals:[363,3,1,""],object_totals:[363,3,1,""],typeclass_search:[363,3,1,""]},"evennia.typeclasses.models":{TypedObject:[364,1,1,""]},"evennia.typeclasses.models.TypedObject":{"delete":[364,3,1,""],Meta:[364,1,1,""],__init__:[364,3,1,""],access:[364,3,1,""],aliases:[364,4,1,""],at_idmapper_flush:[364,3,1,""],at_rename:[364,3,1,""],attributes:[364,4,1,""],check_permstring:[364,3,1,""],date_created:[364,3,1,""],db:[364,3,1,""],db_attributes:[364,4,1,""],db_date_created:[364,4,1,""],db_key:[364,4,1,""],db_lock_storage:[364,4,1,""],db_tags:[364,4,1,""],db_typeclass_path:[364,4,1,""],dbid:[364,3,1,""],dbref:[364,3,1,""],get_absolute_url:[364,3,1,""],get_display_name:[364,3,1,""],get_extra_info:[364,3,1,""],get_next_by_db_date_created:[364,3,1,""],get_previous_by_db_date_created:[364,3,1,""],is_typeclass:[364,3,1,""],key:[364,3,1,""],lock_storage:[364,3,1,""],locks:[364,4,1,""],name:[364,3,1,""],nattributes:[364,4,1,""],ndb:[364,3,1,""],objects:[364,4,1,""],path:[364,4,1,""],permissions:[364,4,1,""],search:[364,3,1,""],set_class_from_typeclass:[364,3,1,""],swap_typeclass:[364,3,1,""],tags:[364,4,1,""],typeclass_path:[364,3,1,""],typename:[364,4,1,""],web_get_admin_url:[364,3,1,""],web_get_create_url:[364,3,1,""],web_get_delete_url:[364,3,1,""],web_get_detail_url:[364,3,1,""],web_get_puppet_url:[364,3,1,""],web_get_update_url:[364,3,1,""]},"evennia.typeclasses.models.TypedObject.Meta":{"abstract":[364,4,1,""],ordering:[364,4,1,""],verbose_name:[364,4,1,""]},"evennia.typeclasses.tags":{AliasHandler:[365,1,1,""],PermissionHandler:[365,1,1,""],Tag:[365,1,1,""],TagHandler:[365,1,1,""]},"evennia.typeclasses.tags.PermissionHandler":{check:[365,3,1,""]},"evennia.typeclasses.tags.Tag":{DoesNotExist:[365,2,1,""],MultipleObjectsReturned:[365,2,1,""],accountdb_set:[365,4,1,""],channeldb_set:[365,4,1,""],db_category:[365,4,1,""],db_data:[365,4,1,""],db_key:[365,4,1,""],db_model:[365,4,1,""],db_tagtype:[365,4,1,""],helpentry_set:[365,4,1,""],id:[365,4,1,""],msg_set:[365,4,1,""],objectdb_set:[365,4,1,""],objects:[365,4,1,""],scriptdb_set:[365,4,1,""]},"evennia.typeclasses.tags.TagHandler":{__init__:[365,3,1,""],add:[365,3,1,""],all:[365,3,1,""],batch_add:[365,3,1,""],clear:[365,3,1,""],get:[365,3,1,""],has:[365,3,1,""],remove:[365,3,1,""],reset_cache:[365,3,1,""]},"evennia.utils":{ansi:[367,0,0,"-"],batchprocessors:[368,0,0,"-"],containers:[369,0,0,"-"],create:[370,0,0,"-"],dbserialize:[371,0,0,"-"],eveditor:[372,0,0,"-"],evform:[373,0,0,"-"],evmenu:[374,0,0,"-"],evmore:[375,0,0,"-"],evtable:[376,0,0,"-"],funcparser:[377,0,0,"-"],gametime:[378,0,0,"-"],idmapper:[379,0,0,"-"],logger:[383,0,0,"-"],optionclasses:[384,0,0,"-"],optionhandler:[385,0,0,"-"],picklefield:[386,0,0,"-"],search:[387,0,0,"-"],test_resources:[388,0,0,"-"],text2html:[389,0,0,"-"],utils:[390,0,0,"-"],validatorfuncs:[391,0,0,"-"],verb_conjugation:[392,0,0,"-"]},"evennia.utils.ansi":{ANSIMeta:[367,1,1,""],ANSIParser:[367,1,1,""],ANSIString:[367,1,1,""],parse_ansi:[367,5,1,""],raw:[367,5,1,""],strip_ansi:[367,5,1,""],strip_mxp:[367,5,1,""],strip_raw_ansi:[367,5,1,""],strip_unsafe_tokens:[367,5,1,""]},"evennia.utils.ansi.ANSIMeta":{__init__:[367,3,1,""]},"evennia.utils.ansi.ANSIParser":{ansi_escapes:[367,4,1,""],ansi_map:[367,4,1,""],ansi_map_dict:[367,4,1,""],ansi_re:[367,4,1,""],ansi_regex:[367,4,1,""],ansi_sub:[367,4,1,""],ansi_xterm256_bright_bg_map:[367,4,1,""],ansi_xterm256_bright_bg_map_dict:[367,4,1,""],brightbg_sub:[367,4,1,""],mxp_re:[367,4,1,""],mxp_sub:[367,4,1,""],mxp_url_re:[367,4,1,""],mxp_url_sub:[367,4,1,""],parse_ansi:[367,3,1,""],strip_mxp:[367,3,1,""],strip_raw_codes:[367,3,1,""],strip_unsafe_tokens:[367,3,1,""],sub_ansi:[367,3,1,""],sub_brightbg:[367,3,1,""],sub_xterm256:[367,3,1,""],unsafe_tokens:[367,4,1,""],xterm256_bg:[367,4,1,""],xterm256_bg_sub:[367,4,1,""],xterm256_fg:[367,4,1,""],xterm256_fg_sub:[367,4,1,""],xterm256_gbg:[367,4,1,""],xterm256_gbg_sub:[367,4,1,""],xterm256_gfg:[367,4,1,""],xterm256_gfg_sub:[367,4,1,""]},"evennia.utils.ansi.ANSIString":{__init__:[367,3,1,""],capitalize:[367,3,1,""],center:[367,3,1,""],clean:[367,3,1,""],count:[367,3,1,""],decode:[367,3,1,""],encode:[367,3,1,""],endswith:[367,3,1,""],expandtabs:[367,3,1,""],find:[367,3,1,""],format:[367,3,1,""],index:[367,3,1,""],isalnum:[367,3,1,""],isalpha:[367,3,1,""],isdigit:[367,3,1,""],islower:[367,3,1,""],isspace:[367,3,1,""],istitle:[367,3,1,""],isupper:[367,3,1,""],join:[367,3,1,""],ljust:[367,3,1,""],lower:[367,3,1,""],lstrip:[367,3,1,""],partition:[367,3,1,""],raw:[367,3,1,""],re_format:[367,4,1,""],replace:[367,3,1,""],rfind:[367,3,1,""],rindex:[367,3,1,""],rjust:[367,3,1,""],rsplit:[367,3,1,""],rstrip:[367,3,1,""],split:[367,3,1,""],startswith:[367,3,1,""],strip:[367,3,1,""],swapcase:[367,3,1,""],translate:[367,3,1,""],upper:[367,3,1,""]},"evennia.utils.batchprocessors":{BatchCodeProcessor:[368,1,1,""],BatchCommandProcessor:[368,1,1,""],read_batchfile:[368,5,1,""],tb_filename:[368,5,1,""],tb_iter:[368,5,1,""]},"evennia.utils.batchprocessors.BatchCodeProcessor":{code_exec:[368,3,1,""],parse_file:[368,3,1,""]},"evennia.utils.batchprocessors.BatchCommandProcessor":{parse_file:[368,3,1,""]},"evennia.utils.containers":{Container:[369,1,1,""],GlobalScriptContainer:[369,1,1,""],OptionContainer:[369,1,1,""]},"evennia.utils.containers.Container":{__init__:[369,3,1,""],all:[369,3,1,""],get:[369,3,1,""],load_data:[369,3,1,""],storage_modules:[369,4,1,""]},"evennia.utils.containers.GlobalScriptContainer":{__init__:[369,3,1,""],all:[369,3,1,""],get:[369,3,1,""],load_data:[369,3,1,""],start:[369,3,1,""]},"evennia.utils.containers.OptionContainer":{storage_modules:[369,4,1,""]},"evennia.utils.create":{create_account:[370,5,1,""],create_channel:[370,5,1,""],create_help_entry:[370,5,1,""],create_message:[370,5,1,""],create_object:[370,5,1,""],create_script:[370,5,1,""]},"evennia.utils.dbserialize":{dbserialize:[371,5,1,""],dbunserialize:[371,5,1,""],do_pickle:[371,5,1,""],do_unpickle:[371,5,1,""],from_pickle:[371,5,1,""],to_pickle:[371,5,1,""]},"evennia.utils.eveditor":{CmdEditorBase:[372,1,1,""],CmdEditorGroup:[372,1,1,""],CmdLineInput:[372,1,1,""],CmdSaveYesNo:[372,1,1,""],EvEditor:[372,1,1,""],EvEditorCmdSet:[372,1,1,""],SaveYesNoCmdSet:[372,1,1,""]},"evennia.utils.eveditor.CmdEditorBase":{aliases:[372,4,1,""],editor:[372,4,1,""],help_category:[372,4,1,""],help_entry:[372,4,1,""],key:[372,4,1,""],lock_storage:[372,4,1,""],locks:[372,4,1,""],parse:[372,3,1,""],search_index_entry:[372,4,1,""]},"evennia.utils.eveditor.CmdEditorGroup":{aliases:[372,4,1,""],arg_regex:[372,4,1,""],func:[372,3,1,""],help_category:[372,4,1,""],key:[372,4,1,""],lock_storage:[372,4,1,""],search_index_entry:[372,4,1,""]},"evennia.utils.eveditor.CmdLineInput":{aliases:[372,4,1,""],func:[372,3,1,""],help_category:[372,4,1,""],key:[372,4,1,""],lock_storage:[372,4,1,""],search_index_entry:[372,4,1,""]},"evennia.utils.eveditor.CmdSaveYesNo":{aliases:[372,4,1,""],func:[372,3,1,""],help_category:[372,4,1,""],help_cateogory:[372,4,1,""],key:[372,4,1,""],lock_storage:[372,4,1,""],locks:[372,4,1,""],search_index_entry:[372,4,1,""]},"evennia.utils.eveditor.EvEditor":{__init__:[372,3,1,""],decrease_indent:[372,3,1,""],deduce_indent:[372,3,1,""],display_buffer:[372,3,1,""],display_help:[372,3,1,""],get_buffer:[372,3,1,""],increase_indent:[372,3,1,""],load_buffer:[372,3,1,""],quit:[372,3,1,""],save_buffer:[372,3,1,""],swap_autoindent:[372,3,1,""],update_buffer:[372,3,1,""],update_undo:[372,3,1,""]},"evennia.utils.eveditor.EvEditorCmdSet":{at_cmdset_creation:[372,3,1,""],key:[372,4,1,""],mergetype:[372,4,1,""],path:[372,4,1,""]},"evennia.utils.eveditor.SaveYesNoCmdSet":{at_cmdset_creation:[372,3,1,""],key:[372,4,1,""],mergetype:[372,4,1,""],path:[372,4,1,""],priority:[372,4,1,""]},"evennia.utils.evform":{EvForm:[373,1,1,""]},"evennia.utils.evform.EvForm":{__init__:[373,3,1,""],map:[373,3,1,""],reload:[373,3,1,""]},"evennia.utils.evmenu":{CmdEvMenuNode:[374,1,1,""],CmdGetInput:[374,1,1,""],CmdYesNoQuestion:[374,1,1,""],EvMenu:[374,1,1,""],EvMenuCmdSet:[374,1,1,""],EvMenuError:[374,2,1,""],EvMenuGotoAbortMessage:[374,2,1,""],InputCmdSet:[374,1,1,""],YesNoQuestionCmdSet:[374,1,1,""],ask_yes_no:[374,5,1,""],get_input:[374,5,1,""],list_node:[374,5,1,""],parse_menu_template:[374,5,1,""],template2menu:[374,5,1,""]},"evennia.utils.evmenu.CmdEvMenuNode":{aliases:[374,4,1,""],auto_help_display_key:[374,4,1,""],func:[374,3,1,""],get_help:[374,3,1,""],help_category:[374,4,1,""],key:[374,4,1,""],lock_storage:[374,4,1,""],locks:[374,4,1,""],search_index_entry:[374,4,1,""]},"evennia.utils.evmenu.CmdGetInput":{aliases:[374,4,1,""],func:[374,3,1,""],help_category:[374,4,1,""],key:[374,4,1,""],lock_storage:[374,4,1,""],search_index_entry:[374,4,1,""]},"evennia.utils.evmenu.CmdYesNoQuestion":{aliases:[374,4,1,""],arg_regex:[374,4,1,""],func:[374,3,1,""],help_category:[374,4,1,""],key:[374,4,1,""],lock_storage:[374,4,1,""],search_index_entry:[374,4,1,""]},"evennia.utils.evmenu.EvMenu":{"goto":[374,3,1,""],__init__:[374,3,1,""],close_menu:[374,3,1,""],display_helptext:[374,3,1,""],display_nodetext:[374,3,1,""],extract_goto_exec:[374,3,1,""],helptext_formatter:[374,3,1,""],msg:[374,3,1,""],node_border_char:[374,4,1,""],node_formatter:[374,3,1,""],nodetext_formatter:[374,3,1,""],options_formatter:[374,3,1,""],parse_input:[374,3,1,""],print_debug_info:[374,3,1,""],run_exec:[374,3,1,""],run_exec_then_goto:[374,3,1,""]},"evennia.utils.evmenu.EvMenuCmdSet":{at_cmdset_creation:[374,3,1,""],key:[374,4,1,""],mergetype:[374,4,1,""],no_channels:[374,4,1,""],no_exits:[374,4,1,""],no_objs:[374,4,1,""],path:[374,4,1,""],priority:[374,4,1,""]},"evennia.utils.evmenu.InputCmdSet":{at_cmdset_creation:[374,3,1,""],key:[374,4,1,""],mergetype:[374,4,1,""],no_channels:[374,4,1,""],no_exits:[374,4,1,""],no_objs:[374,4,1,""],path:[374,4,1,""],priority:[374,4,1,""]},"evennia.utils.evmenu.YesNoQuestionCmdSet":{at_cmdset_creation:[374,3,1,""],key:[374,4,1,""],mergetype:[374,4,1,""],no_channels:[374,4,1,""],no_exits:[374,4,1,""],no_objs:[374,4,1,""],path:[374,4,1,""],priority:[374,4,1,""]},"evennia.utils.evmore":{CmdMore:[375,1,1,""],CmdMoreExit:[375,1,1,""],CmdSetMore:[375,1,1,""],EvMore:[375,1,1,""],msg:[375,5,1,""],queryset_maxsize:[375,5,1,""]},"evennia.utils.evmore.CmdMore":{aliases:[375,4,1,""],auto_help:[375,4,1,""],func:[375,3,1,""],help_category:[375,4,1,""],key:[375,4,1,""],lock_storage:[375,4,1,""],search_index_entry:[375,4,1,""]},"evennia.utils.evmore.CmdMoreExit":{aliases:[375,4,1,""],func:[375,3,1,""],help_category:[375,4,1,""],key:[375,4,1,""],lock_storage:[375,4,1,""],search_index_entry:[375,4,1,""]},"evennia.utils.evmore.CmdSetMore":{at_cmdset_creation:[375,3,1,""],key:[375,4,1,""],mergetype:[375,4,1,""],path:[375,4,1,""],priority:[375,4,1,""]},"evennia.utils.evmore.EvMore":{__init__:[375,3,1,""],display:[375,3,1,""],init_django_paginator:[375,3,1,""],init_evtable:[375,3,1,""],init_f_str:[375,3,1,""],init_iterable:[375,3,1,""],init_pages:[375,3,1,""],init_queryset:[375,3,1,""],init_str:[375,3,1,""],page_back:[375,3,1,""],page_end:[375,3,1,""],page_formatter:[375,3,1,""],page_next:[375,3,1,""],page_quit:[375,3,1,""],page_top:[375,3,1,""],paginator:[375,3,1,""],paginator_django:[375,3,1,""],paginator_index:[375,3,1,""],paginator_slice:[375,3,1,""],start:[375,3,1,""]},"evennia.utils.evtable":{ANSITextWrapper:[376,1,1,""],EvCell:[376,1,1,""],EvColumn:[376,1,1,""],EvTable:[376,1,1,""],fill:[376,5,1,""],wrap:[376,5,1,""]},"evennia.utils.evtable.EvCell":{__init__:[376,3,1,""],get:[376,3,1,""],get_height:[376,3,1,""],get_min_height:[376,3,1,""],get_min_width:[376,3,1,""],get_width:[376,3,1,""],reformat:[376,3,1,""],replace_data:[376,3,1,""]},"evennia.utils.evtable.EvColumn":{__init__:[376,3,1,""],add_rows:[376,3,1,""],reformat:[376,3,1,""],reformat_cell:[376,3,1,""]},"evennia.utils.evtable.EvTable":{__init__:[376,3,1,""],add_column:[376,3,1,""],add_header:[376,3,1,""],add_row:[376,3,1,""],get:[376,3,1,""],reformat:[376,3,1,""],reformat_column:[376,3,1,""]},"evennia.utils.funcparser":{FuncParser:[377,1,1,""],ParsingError:[377,2,1,""],funcparser_callable_add:[377,5,1,""],funcparser_callable_center_justify:[377,5,1,""],funcparser_callable_choice:[377,5,1,""],funcparser_callable_clr:[377,5,1,""],funcparser_callable_conjugate:[377,5,1,""],funcparser_callable_crop:[377,5,1,""],funcparser_callable_div:[377,5,1,""],funcparser_callable_eval:[377,5,1,""],funcparser_callable_justify:[377,5,1,""],funcparser_callable_left_justify:[377,5,1,""],funcparser_callable_mult:[377,5,1,""],funcparser_callable_pad:[377,5,1,""],funcparser_callable_pronoun:[377,5,1,""],funcparser_callable_pronoun_capitalize:[377,5,1,""],funcparser_callable_randint:[377,5,1,""],funcparser_callable_random:[377,5,1,""],funcparser_callable_right_justify:[377,5,1,""],funcparser_callable_round:[377,5,1,""],funcparser_callable_search:[377,5,1,""],funcparser_callable_search_list:[377,5,1,""],funcparser_callable_space:[377,5,1,""],funcparser_callable_sub:[377,5,1,""],funcparser_callable_toint:[377,5,1,""],funcparser_callable_you:[377,5,1,""],funcparser_callable_you_capitalize:[377,5,1,""]},"evennia.utils.funcparser.FuncParser":{__init__:[377,3,1,""],execute:[377,3,1,""],parse:[377,3,1,""],parse_to_any:[377,3,1,""],validate_callables:[377,3,1,""]},"evennia.utils.gametime":{TimeScript:[378,1,1,""],game_epoch:[378,5,1,""],gametime:[378,5,1,""],portal_uptime:[378,5,1,""],real_seconds_until:[378,5,1,""],reset_gametime:[378,5,1,""],runtime:[378,5,1,""],schedule:[378,5,1,""],server_epoch:[378,5,1,""],uptime:[378,5,1,""]},"evennia.utils.gametime.TimeScript":{DoesNotExist:[378,2,1,""],MultipleObjectsReturned:[378,2,1,""],at_repeat:[378,3,1,""],at_script_creation:[378,3,1,""],path:[378,4,1,""],typename:[378,4,1,""]},"evennia.utils.idmapper":{manager:[380,0,0,"-"],models:[381,0,0,"-"],tests:[382,0,0,"-"]},"evennia.utils.idmapper.manager":{SharedMemoryManager:[380,1,1,""]},"evennia.utils.idmapper.manager.SharedMemoryManager":{get:[380,3,1,""]},"evennia.utils.idmapper.models":{SharedMemoryModel:[381,1,1,""],SharedMemoryModelBase:[381,1,1,""],WeakSharedMemoryModel:[381,1,1,""],WeakSharedMemoryModelBase:[381,1,1,""],cache_size:[381,5,1,""],conditional_flush:[381,5,1,""],flush_cache:[381,5,1,""],flush_cached_instance:[381,5,1,""],update_cached_instance:[381,5,1,""]},"evennia.utils.idmapper.models.SharedMemoryModel":{"delete":[381,3,1,""],Meta:[381,1,1,""],at_idmapper_flush:[381,3,1,""],cache_instance:[381,3,1,""],flush_cached_instance:[381,3,1,""],flush_from_cache:[381,3,1,""],flush_instance_cache:[381,3,1,""],get_all_cached_instances:[381,3,1,""],get_cached_instance:[381,3,1,""],objects:[381,4,1,""],path:[381,4,1,""],save:[381,3,1,""],typename:[381,4,1,""]},"evennia.utils.idmapper.models.SharedMemoryModel.Meta":{"abstract":[381,4,1,""]},"evennia.utils.idmapper.models.WeakSharedMemoryModel":{Meta:[381,1,1,""],path:[381,4,1,""],typename:[381,4,1,""]},"evennia.utils.idmapper.models.WeakSharedMemoryModel.Meta":{"abstract":[381,4,1,""]},"evennia.utils.idmapper.tests":{Article:[382,1,1,""],Category:[382,1,1,""],RegularArticle:[382,1,1,""],RegularCategory:[382,1,1,""],SharedMemorysTest:[382,1,1,""]},"evennia.utils.idmapper.tests.Article":{DoesNotExist:[382,2,1,""],MultipleObjectsReturned:[382,2,1,""],category2:[382,4,1,""],category2_id:[382,4,1,""],category:[382,4,1,""],category_id:[382,4,1,""],id:[382,4,1,""],name:[382,4,1,""],path:[382,4,1,""],typename:[382,4,1,""]},"evennia.utils.idmapper.tests.Category":{DoesNotExist:[382,2,1,""],MultipleObjectsReturned:[382,2,1,""],article_set:[382,4,1,""],id:[382,4,1,""],name:[382,4,1,""],path:[382,4,1,""],regulararticle_set:[382,4,1,""],typename:[382,4,1,""]},"evennia.utils.idmapper.tests.RegularArticle":{DoesNotExist:[382,2,1,""],MultipleObjectsReturned:[382,2,1,""],category2:[382,4,1,""],category2_id:[382,4,1,""],category:[382,4,1,""],category_id:[382,4,1,""],id:[382,4,1,""],name:[382,4,1,""],objects:[382,4,1,""]},"evennia.utils.idmapper.tests.RegularCategory":{DoesNotExist:[382,2,1,""],MultipleObjectsReturned:[382,2,1,""],article_set:[382,4,1,""],id:[382,4,1,""],name:[382,4,1,""],objects:[382,4,1,""],regulararticle_set:[382,4,1,""]},"evennia.utils.idmapper.tests.SharedMemorysTest":{setUp:[382,3,1,""],testMixedReferences:[382,3,1,""],testObjectDeletion:[382,3,1,""],testRegularReferences:[382,3,1,""],testSharedMemoryReferences:[382,3,1,""]},"evennia.utils.logger":{EvenniaLogFile:[383,1,1,""],PortalLogObserver:[383,1,1,""],ServerLogObserver:[383,1,1,""],WeeklyLogFile:[383,1,1,""],log_dep:[383,5,1,""],log_depmsg:[383,5,1,""],log_err:[383,5,1,""],log_errmsg:[383,5,1,""],log_file:[383,5,1,""],log_file_exists:[383,5,1,""],log_info:[383,5,1,""],log_infomsg:[383,5,1,""],log_msg:[383,5,1,""],log_sec:[383,5,1,""],log_secmsg:[383,5,1,""],log_server:[383,5,1,""],log_trace:[383,5,1,""],log_tracemsg:[383,5,1,""],log_warn:[383,5,1,""],log_warnmsg:[383,5,1,""],rotate_log_file:[383,5,1,""],tail_log_file:[383,5,1,""],timeformat:[383,5,1,""]},"evennia.utils.logger.EvenniaLogFile":{num_lines_to_append:[383,4,1,""],readlines:[383,3,1,""],rotate:[383,3,1,""],seek:[383,3,1,""],settings:[383,4,1,""]},"evennia.utils.logger.PortalLogObserver":{emit:[383,3,1,""],prefix:[383,4,1,""],timeFormat:[383,4,1,""]},"evennia.utils.logger.ServerLogObserver":{prefix:[383,4,1,""]},"evennia.utils.logger.WeeklyLogFile":{__init__:[383,3,1,""],shouldRotate:[383,3,1,""],suffix:[383,3,1,""],write:[383,3,1,""]},"evennia.utils.optionclasses":{BaseOption:[384,1,1,""],Boolean:[384,1,1,""],Color:[384,1,1,""],Datetime:[384,1,1,""],Duration:[384,1,1,""],Email:[384,1,1,""],Future:[384,1,1,""],Lock:[384,1,1,""],PositiveInteger:[384,1,1,""],SignedInteger:[384,1,1,""],Text:[384,1,1,""],Timezone:[384,1,1,""],UnsignedInteger:[384,1,1,""]},"evennia.utils.optionclasses.BaseOption":{"default":[384,3,1,""],__init__:[384,3,1,""],changed:[384,3,1,""],deserialize:[384,3,1,""],display:[384,3,1,""],load:[384,3,1,""],save:[384,3,1,""],serialize:[384,3,1,""],set:[384,3,1,""],validate:[384,3,1,""],value:[384,3,1,""]},"evennia.utils.optionclasses.Boolean":{deserialize:[384,3,1,""],display:[384,3,1,""],serialize:[384,3,1,""],validate:[384,3,1,""]},"evennia.utils.optionclasses.Color":{deserialize:[384,3,1,""],display:[384,3,1,""],validate:[384,3,1,""]},"evennia.utils.optionclasses.Datetime":{deserialize:[384,3,1,""],serialize:[384,3,1,""],validate:[384,3,1,""]},"evennia.utils.optionclasses.Duration":{deserialize:[384,3,1,""],serialize:[384,3,1,""],validate:[384,3,1,""]},"evennia.utils.optionclasses.Email":{deserialize:[384,3,1,""],validate:[384,3,1,""]},"evennia.utils.optionclasses.Future":{validate:[384,3,1,""]},"evennia.utils.optionclasses.Lock":{validate:[384,3,1,""]},"evennia.utils.optionclasses.PositiveInteger":{deserialize:[384,3,1,""],validate:[384,3,1,""]},"evennia.utils.optionclasses.SignedInteger":{deserialize:[384,3,1,""],validate:[384,3,1,""]},"evennia.utils.optionclasses.Text":{deserialize:[384,3,1,""]},"evennia.utils.optionclasses.Timezone":{"default":[384,3,1,""],deserialize:[384,3,1,""],serialize:[384,3,1,""],validate:[384,3,1,""]},"evennia.utils.optionclasses.UnsignedInteger":{deserialize:[384,3,1,""],validate:[384,3,1,""],validator_key:[384,4,1,""]},"evennia.utils.optionhandler":{InMemorySaveHandler:[385,1,1,""],OptionHandler:[385,1,1,""]},"evennia.utils.optionhandler.InMemorySaveHandler":{__init__:[385,3,1,""],add:[385,3,1,""],get:[385,3,1,""]},"evennia.utils.optionhandler.OptionHandler":{__init__:[385,3,1,""],all:[385,3,1,""],get:[385,3,1,""],set:[385,3,1,""]},"evennia.utils.picklefield":{PickledFormField:[386,1,1,""],PickledObject:[386,1,1,""],PickledObjectField:[386,1,1,""],PickledWidget:[386,1,1,""],dbsafe_decode:[386,5,1,""],dbsafe_encode:[386,5,1,""],wrap_conflictual_object:[386,5,1,""]},"evennia.utils.picklefield.PickledFormField":{__init__:[386,3,1,""],clean:[386,3,1,""],default_error_messages:[386,4,1,""],widget:[386,4,1,""]},"evennia.utils.picklefield.PickledObjectField":{__init__:[386,3,1,""],formfield:[386,3,1,""],from_db_value:[386,3,1,""],get_db_prep_lookup:[386,3,1,""],get_db_prep_value:[386,3,1,""],get_default:[386,3,1,""],get_internal_type:[386,3,1,""],pre_save:[386,3,1,""],value_to_string:[386,3,1,""]},"evennia.utils.picklefield.PickledWidget":{media:[386,3,1,""],render:[386,3,1,""],value_from_datadict:[386,3,1,""]},"evennia.utils.search":{search_account:[387,5,1,""],search_account_tag:[387,5,1,""],search_channel:[387,5,1,""],search_channel_tag:[387,5,1,""],search_help_entry:[387,5,1,""],search_message:[387,5,1,""],search_object:[387,5,1,""],search_script:[387,5,1,""],search_script_tag:[387,5,1,""],search_tag:[387,5,1,""]},"evennia.utils.test_resources":{EvenniaTest:[388,1,1,""],LocalEvenniaTest:[388,1,1,""],mockdeferLater:[388,5,1,""],mockdelay:[388,5,1,""],unload_module:[388,5,1,""]},"evennia.utils.test_resources.EvenniaTest":{account_typeclass:[388,4,1,""],character_typeclass:[388,4,1,""],exit_typeclass:[388,4,1,""],object_typeclass:[388,4,1,""],room_typeclass:[388,4,1,""],script_typeclass:[388,4,1,""],setUp:[388,3,1,""],tearDown:[388,3,1,""]},"evennia.utils.test_resources.LocalEvenniaTest":{account_typeclass:[388,4,1,""],character_typeclass:[388,4,1,""],exit_typeclass:[388,4,1,""],object_typeclass:[388,4,1,""],room_typeclass:[388,4,1,""],script_typeclass:[388,4,1,""]},"evennia.utils.text2html":{TextToHTMLparser:[389,1,1,""],parse_html:[389,5,1,""]},"evennia.utils.text2html.TextToHTMLparser":{bg_colormap:[389,4,1,""],bgfgstart:[389,4,1,""],bgfgstop:[389,4,1,""],bgstart:[389,4,1,""],bgstop:[389,4,1,""],blink:[389,4,1,""],colorback:[389,4,1,""],colorcodes:[389,4,1,""],convert_linebreaks:[389,3,1,""],convert_urls:[389,3,1,""],fg_colormap:[389,4,1,""],fgstart:[389,4,1,""],fgstop:[389,4,1,""],hilite:[389,4,1,""],inverse:[389,4,1,""],normal:[389,4,1,""],parse:[389,3,1,""],re_bgfg:[389,4,1,""],re_bgs:[389,4,1,""],re_blink:[389,4,1,""],re_blinking:[389,3,1,""],re_bold:[389,3,1,""],re_color:[389,3,1,""],re_dblspace:[389,4,1,""],re_double_space:[389,3,1,""],re_fgs:[389,4,1,""],re_hilite:[389,4,1,""],re_inverse:[389,4,1,""],re_inversing:[389,3,1,""],re_mxplink:[389,4,1,""],re_mxpurl:[389,4,1,""],re_normal:[389,4,1,""],re_string:[389,4,1,""],re_uline:[389,4,1,""],re_underline:[389,3,1,""],re_unhilite:[389,4,1,""],re_url:[389,4,1,""],remove_backspaces:[389,3,1,""],remove_bells:[389,3,1,""],sub_dblspace:[389,3,1,""],sub_mxp_links:[389,3,1,""],sub_mxp_urls:[389,3,1,""],sub_text:[389,3,1,""],tabstop:[389,4,1,""],underline:[389,4,1,""],unhilite:[389,4,1,""]},"evennia.utils.utils":{LimitedSizeOrderedDict:[390,1,1,""],all_from_module:[390,5,1,""],at_search_result:[390,5,1,""],callables_from_module:[390,5,1,""],calledby:[390,5,1,""],check_evennia_dependencies:[390,5,1,""],class_from_module:[390,5,1,""],columnize:[390,5,1,""],copy_word_case:[390,5,1,""],crop:[390,5,1,""],datetime_format:[390,5,1,""],dbid_to_obj:[390,5,1,""],dbref:[390,5,1,""],dbref_to_obj:[390,5,1,""],dedent:[390,5,1,""],deepsize:[390,5,1,""],delay:[390,5,1,""],display_len:[390,5,1,""],fill:[390,5,1,""],format_grid:[390,5,1,""],format_table:[390,5,1,""],fuzzy_import_from_module:[390,5,1,""],get_all_cmdsets:[390,5,1,""],get_all_typeclasses:[390,5,1,""],get_evennia_pids:[390,5,1,""],get_evennia_version:[390,5,1,""],get_game_dir_path:[390,5,1,""],has_parent:[390,5,1,""],host_os_is:[390,5,1,""],inherits_from:[390,5,1,""],init_new_account:[390,5,1,""],interactive:[390,5,1,""],is_iter:[390,5,1,""],iter_to_str:[390,5,1,""],iter_to_string:[390,5,1,""],justify:[390,5,1,""],latinify:[390,5,1,""],lazy_property:[390,1,1,""],list_to_string:[390,5,1,""],m_len:[390,5,1,""],make_iter:[390,5,1,""],mod_import:[390,5,1,""],mod_import_from_path:[390,5,1,""],object_from_module:[390,5,1,""],pad:[390,5,1,""],percent:[390,5,1,""],percentile:[390,5,1,""],pypath_to_realpath:[390,5,1,""],random_string_from_module:[390,5,1,""],repeat:[390,5,1,""],run_async:[390,5,1,""],safe_convert_to_types:[390,5,1,""],server_services:[390,5,1,""],string_from_module:[390,5,1,""],string_partial_matching:[390,5,1,""],string_similarity:[390,5,1,""],string_suggestions:[390,5,1,""],strip_control_sequences:[390,5,1,""],strip_unsafe_input:[390,5,1,""],time_format:[390,5,1,""],to_bytes:[390,5,1,""],to_str:[390,5,1,""],unrepeat:[390,5,1,""],uses_database:[390,5,1,""],validate_email_address:[390,5,1,""],variable_from_module:[390,5,1,""],wildcard_to_regexp:[390,5,1,""],wrap:[390,5,1,""]},"evennia.utils.utils.LimitedSizeOrderedDict":{__init__:[390,3,1,""],update:[390,3,1,""]},"evennia.utils.utils.lazy_property":{__init__:[390,3,1,""]},"evennia.utils.validatorfuncs":{"boolean":[391,5,1,""],color:[391,5,1,""],datetime:[391,5,1,""],duration:[391,5,1,""],email:[391,5,1,""],future:[391,5,1,""],lock:[391,5,1,""],positive_integer:[391,5,1,""],signed_integer:[391,5,1,""],text:[391,5,1,""],timezone:[391,5,1,""],unsigned_integer:[391,5,1,""]},"evennia.utils.verb_conjugation":{conjugate:[393,0,0,"-"],pronouns:[394,0,0,"-"],tests:[395,0,0,"-"]},"evennia.utils.verb_conjugation.conjugate":{verb_actor_stance_components:[393,5,1,""],verb_all_tenses:[393,5,1,""],verb_conjugate:[393,5,1,""],verb_infinitive:[393,5,1,""],verb_is_past:[393,5,1,""],verb_is_past_participle:[393,5,1,""],verb_is_present:[393,5,1,""],verb_is_present_participle:[393,5,1,""],verb_is_tense:[393,5,1,""],verb_past:[393,5,1,""],verb_past_participle:[393,5,1,""],verb_present:[393,5,1,""],verb_present_participle:[393,5,1,""],verb_tense:[393,5,1,""]},"evennia.utils.verb_conjugation.pronouns":{pronoun_to_viewpoints:[394,5,1,""]},"evennia.utils.verb_conjugation.tests":{TestPronounMapping:[395,1,1,""],TestVerbConjugate:[395,1,1,""]},"evennia.utils.verb_conjugation.tests.TestPronounMapping":{test_mapping_with_options:[395,4,1,""],test_mapping_with_options_00_you:[395,3,1,""],test_mapping_with_options_01_you:[395,3,1,""],test_mapping_with_options_02_I:[395,3,1,""],test_mapping_with_options_03_I:[395,3,1,""],test_mapping_with_options_04_I:[395,3,1,""],test_mapping_with_options_05_Me:[395,3,1,""],test_mapping_with_options_06_your:[395,3,1,""],test_mapping_with_options_07_ours:[395,3,1,""],test_mapping_with_options_08_yourself:[395,3,1,""],test_mapping_with_options_09_yourself:[395,3,1,""],test_mapping_with_options_10_yourself:[395,3,1,""],test_mapping_with_options_11_yourself:[395,3,1,""],test_mapping_with_options_12_yourselves:[395,3,1,""],test_mapping_with_options_13_he:[395,3,1,""],test_mapping_with_options_14_he:[395,3,1,""],test_mapping_with_options_15_he:[395,3,1,""],test_mapping_with_options_16_her:[395,3,1,""],test_mapping_with_options_17_her:[395,3,1,""],test_mapping_with_options_18_their:[395,3,1,""],test_mapping_with_options_19_their:[395,3,1,""],test_mapping_with_options_20_itself:[395,3,1,""],test_mapping_with_options_21_themselves:[395,3,1,""],test_mapping_with_options_22_herself:[395,3,1,""]},"evennia.utils.verb_conjugation.tests.TestVerbConjugate":{test_verb_actor_stance_components:[395,4,1,""],test_verb_actor_stance_components_00_have:[395,3,1,""],test_verb_actor_stance_components_01_swimming:[395,3,1,""],test_verb_actor_stance_components_02_give:[395,3,1,""],test_verb_actor_stance_components_03_given:[395,3,1,""],test_verb_actor_stance_components_04_am:[395,3,1,""],test_verb_actor_stance_components_05_doing:[395,3,1,""],test_verb_actor_stance_components_06_are:[395,3,1,""],test_verb_actor_stance_components_07_had:[395,3,1,""],test_verb_actor_stance_components_08_grin:[395,3,1,""],test_verb_actor_stance_components_09_smile:[395,3,1,""],test_verb_actor_stance_components_10_vex:[395,3,1,""],test_verb_actor_stance_components_11_thrust:[395,3,1,""],test_verb_conjugate:[395,4,1,""],test_verb_conjugate_0_inf:[395,3,1,""],test_verb_conjugate_1_inf:[395,3,1,""],test_verb_conjugate_2_inf:[395,3,1,""],test_verb_conjugate_3_inf:[395,3,1,""],test_verb_conjugate_4_inf:[395,3,1,""],test_verb_conjugate_5_inf:[395,3,1,""],test_verb_conjugate_6_inf:[395,3,1,""],test_verb_conjugate_7_2sgpres:[395,3,1,""],test_verb_conjugate_8_3sgpres:[395,3,1,""],test_verb_get_all_tenses:[395,3,1,""],test_verb_infinitive:[395,4,1,""],test_verb_infinitive_0_have:[395,3,1,""],test_verb_infinitive_1_swim:[395,3,1,""],test_verb_infinitive_2_give:[395,3,1,""],test_verb_infinitive_3_given:[395,3,1,""],test_verb_infinitive_4_am:[395,3,1,""],test_verb_infinitive_5_doing:[395,3,1,""],test_verb_infinitive_6_are:[395,3,1,""],test_verb_is_past:[395,4,1,""],test_verb_is_past_0_1st:[395,3,1,""],test_verb_is_past_1_1st:[395,3,1,""],test_verb_is_past_2_1st:[395,3,1,""],test_verb_is_past_3_1st:[395,3,1,""],test_verb_is_past_4_1st:[395,3,1,""],test_verb_is_past_5_1st:[395,3,1,""],test_verb_is_past_6_1st:[395,3,1,""],test_verb_is_past_7_2nd:[395,3,1,""],test_verb_is_past_participle:[395,4,1,""],test_verb_is_past_participle_0_have:[395,3,1,""],test_verb_is_past_participle_1_swimming:[395,3,1,""],test_verb_is_past_participle_2_give:[395,3,1,""],test_verb_is_past_participle_3_given:[395,3,1,""],test_verb_is_past_participle_4_am:[395,3,1,""],test_verb_is_past_participle_5_doing:[395,3,1,""],test_verb_is_past_participle_6_are:[395,3,1,""],test_verb_is_past_participle_7_had:[395,3,1,""],test_verb_is_present:[395,4,1,""],test_verb_is_present_0_1st:[395,3,1,""],test_verb_is_present_1_1st:[395,3,1,""],test_verb_is_present_2_1st:[395,3,1,""],test_verb_is_present_3_1st:[395,3,1,""],test_verb_is_present_4_1st:[395,3,1,""],test_verb_is_present_5_1st:[395,3,1,""],test_verb_is_present_6_1st:[395,3,1,""],test_verb_is_present_7_1st:[395,3,1,""],test_verb_is_present_participle:[395,4,1,""],test_verb_is_present_participle_0_have:[395,3,1,""],test_verb_is_present_participle_1_swim:[395,3,1,""],test_verb_is_present_participle_2_give:[395,3,1,""],test_verb_is_present_participle_3_given:[395,3,1,""],test_verb_is_present_participle_4_am:[395,3,1,""],test_verb_is_present_participle_5_doing:[395,3,1,""],test_verb_is_present_participle_6_are:[395,3,1,""],test_verb_is_tense:[395,4,1,""],test_verb_is_tense_0_inf:[395,3,1,""],test_verb_is_tense_1_inf:[395,3,1,""],test_verb_is_tense_2_inf:[395,3,1,""],test_verb_is_tense_3_inf:[395,3,1,""],test_verb_is_tense_4_inf:[395,3,1,""],test_verb_is_tense_5_inf:[395,3,1,""],test_verb_is_tense_6_inf:[395,3,1,""],test_verb_past:[395,4,1,""],test_verb_past_0_1st:[395,3,1,""],test_verb_past_1_1st:[395,3,1,""],test_verb_past_2_1st:[395,3,1,""],test_verb_past_3_1st:[395,3,1,""],test_verb_past_4_1st:[395,3,1,""],test_verb_past_5_1st:[395,3,1,""],test_verb_past_6_1st:[395,3,1,""],test_verb_past_7_2nd:[395,3,1,""],test_verb_past_participle:[395,4,1,""],test_verb_past_participle_0_have:[395,3,1,""],test_verb_past_participle_1_swim:[395,3,1,""],test_verb_past_participle_2_give:[395,3,1,""],test_verb_past_participle_3_given:[395,3,1,""],test_verb_past_participle_4_am:[395,3,1,""],test_verb_past_participle_5_doing:[395,3,1,""],test_verb_past_participle_6_are:[395,3,1,""],test_verb_present:[395,4,1,""],test_verb_present_0_1st:[395,3,1,""],test_verb_present_1_1st:[395,3,1,""],test_verb_present_2_1st:[395,3,1,""],test_verb_present_3_1st:[395,3,1,""],test_verb_present_4_1st:[395,3,1,""],test_verb_present_5_1st:[395,3,1,""],test_verb_present_6_1st:[395,3,1,""],test_verb_present_7_2nd:[395,3,1,""],test_verb_present_8_3rd:[395,3,1,""],test_verb_present_participle:[395,4,1,""],test_verb_present_participle_0_have:[395,3,1,""],test_verb_present_participle_1_swim:[395,3,1,""],test_verb_present_participle_2_give:[395,3,1,""],test_verb_present_participle_3_given:[395,3,1,""],test_verb_present_participle_4_am:[395,3,1,""],test_verb_present_participle_5_doing:[395,3,1,""],test_verb_present_participle_6_are:[395,3,1,""],test_verb_tense:[395,4,1,""],test_verb_tense_0_have:[395,3,1,""],test_verb_tense_1_swim:[395,3,1,""],test_verb_tense_2_give:[395,3,1,""],test_verb_tense_3_given:[395,3,1,""],test_verb_tense_4_am:[395,3,1,""],test_verb_tense_5_doing:[395,3,1,""],test_verb_tense_6_are:[395,3,1,""]},"evennia.web":{admin:[397,0,0,"-"],api:[409,0,0,"-"],templatetags:[417,0,0,"-"],urls:[419,0,0,"-"],utils:[420,0,0,"-"],webclient:[426,0,0,"-"],website:[429,0,0,"-"]},"evennia.web.admin":{accounts:[398,0,0,"-"],attributes:[399,0,0,"-"],comms:[400,0,0,"-"],frontpage:[401,0,0,"-"],help:[402,0,0,"-"],objects:[403,0,0,"-"],scripts:[404,0,0,"-"],server:[405,0,0,"-"],tags:[406,0,0,"-"],urls:[407,0,0,"-"],utils:[408,0,0,"-"]},"evennia.web.admin.accounts":{AccountAdmin:[398,1,1,""],AccountAttributeInline:[398,1,1,""],AccountChangeForm:[398,1,1,""],AccountCreationForm:[398,1,1,""],AccountTagInline:[398,1,1,""],ObjectPuppetInline:[398,1,1,""]},"evennia.web.admin.accounts.AccountAdmin":{add_fieldsets:[398,4,1,""],add_form:[398,4,1,""],fieldsets:[398,4,1,""],form:[398,4,1,""],get_form:[398,3,1,""],inlines:[398,4,1,""],list_display:[398,4,1,""],list_display_links:[398,4,1,""],list_filter:[398,4,1,""],media:[398,3,1,""],ordering:[398,4,1,""],puppeted_objects:[398,3,1,""],readonly_fields:[398,4,1,""],response_add:[398,3,1,""],save_model:[398,3,1,""],search_fields:[398,4,1,""],serialized_string:[398,3,1,""],user_change_password:[398,3,1,""],view_on_site:[398,4,1,""]},"evennia.web.admin.accounts.AccountAttributeInline":{media:[398,3,1,""],model:[398,4,1,""],related_field:[398,4,1,""]},"evennia.web.admin.accounts.AccountChangeForm":{Meta:[398,1,1,""],__init__:[398,3,1,""],base_fields:[398,4,1,""],clean_username:[398,3,1,""],declared_fields:[398,4,1,""],media:[398,3,1,""]},"evennia.web.admin.accounts.AccountChangeForm.Meta":{fields:[398,4,1,""],model:[398,4,1,""]},"evennia.web.admin.accounts.AccountCreationForm":{Meta:[398,1,1,""],base_fields:[398,4,1,""],clean_username:[398,3,1,""],declared_fields:[398,4,1,""],media:[398,3,1,""]},"evennia.web.admin.accounts.AccountCreationForm.Meta":{fields:[398,4,1,""],model:[398,4,1,""]},"evennia.web.admin.accounts.AccountTagInline":{media:[398,3,1,""],model:[398,4,1,""],related_field:[398,4,1,""]},"evennia.web.admin.accounts.ObjectPuppetInline":{ObjectCreateForm:[398,1,1,""],extra:[398,4,1,""],fieldsets:[398,4,1,""],form:[398,4,1,""],has_add_permission:[398,3,1,""],has_delete_permission:[398,3,1,""],media:[398,3,1,""],model:[398,4,1,""],readonly_fields:[398,4,1,""],show_change_link:[398,4,1,""],verbose_name:[398,4,1,""],view_on_site:[398,4,1,""]},"evennia.web.admin.accounts.ObjectPuppetInline.ObjectCreateForm":{Meta:[398,1,1,""],__init__:[398,3,1,""],base_fields:[398,4,1,""],declared_fields:[398,4,1,""],media:[398,3,1,""]},"evennia.web.admin.accounts.ObjectPuppetInline.ObjectCreateForm.Meta":{fields:[398,4,1,""],model:[398,4,1,""]},"evennia.web.admin.attributes":{AttributeForm:[399,1,1,""],AttributeFormSet:[399,1,1,""],AttributeInline:[399,1,1,""]},"evennia.web.admin.attributes.AttributeForm":{Meta:[399,1,1,""],__init__:[399,3,1,""],base_fields:[399,4,1,""],clean_attr_value:[399,3,1,""],declared_fields:[399,4,1,""],media:[399,3,1,""],save:[399,3,1,""]},"evennia.web.admin.attributes.AttributeForm.Meta":{fields:[399,4,1,""]},"evennia.web.admin.attributes.AttributeFormSet":{save:[399,3,1,""]},"evennia.web.admin.attributes.AttributeInline":{extra:[399,4,1,""],form:[399,4,1,""],formset:[399,4,1,""],get_formset:[399,3,1,""],media:[399,3,1,""],model:[399,4,1,""],related_field:[399,4,1,""],verbose_name:[399,4,1,""],verbose_name_plural:[399,4,1,""]},"evennia.web.admin.comms":{ChannelAdmin:[400,1,1,""],ChannelAttributeInline:[400,1,1,""],ChannelForm:[400,1,1,""],ChannelTagInline:[400,1,1,""],MsgAdmin:[400,1,1,""],MsgForm:[400,1,1,""],MsgTagInline:[400,1,1,""]},"evennia.web.admin.comms.ChannelAdmin":{fieldsets:[400,4,1,""],form:[400,4,1,""],get_form:[400,3,1,""],inlines:[400,4,1,""],list_display:[400,4,1,""],list_display_links:[400,4,1,""],list_select_related:[400,4,1,""],media:[400,3,1,""],no_of_subscribers:[400,3,1,""],ordering:[400,4,1,""],raw_id_fields:[400,4,1,""],readonly_fields:[400,4,1,""],response_add:[400,3,1,""],save_as:[400,4,1,""],save_model:[400,3,1,""],save_on_top:[400,4,1,""],search_fields:[400,4,1,""],serialized_string:[400,3,1,""],subscriptions:[400,3,1,""]},"evennia.web.admin.comms.ChannelAttributeInline":{media:[400,3,1,""],model:[400,4,1,""],related_field:[400,4,1,""]},"evennia.web.admin.comms.ChannelForm":{Meta:[400,1,1,""],base_fields:[400,4,1,""],declared_fields:[400,4,1,""],media:[400,3,1,""]},"evennia.web.admin.comms.ChannelForm.Meta":{fields:[400,4,1,""],model:[400,4,1,""]},"evennia.web.admin.comms.ChannelTagInline":{media:[400,3,1,""],model:[400,4,1,""],related_field:[400,4,1,""]},"evennia.web.admin.comms.MsgAdmin":{fieldsets:[400,4,1,""],form:[400,4,1,""],get_form:[400,3,1,""],inlines:[400,4,1,""],list_display:[400,4,1,""],list_display_links:[400,4,1,""],list_select_related:[400,4,1,""],media:[400,3,1,""],ordering:[400,4,1,""],raw_id_fields:[400,4,1,""],readonly_fields:[400,4,1,""],receiver:[400,3,1,""],save_as:[400,4,1,""],save_on_top:[400,4,1,""],search_fields:[400,4,1,""],sender:[400,3,1,""],serialized_string:[400,3,1,""],start_of_message:[400,3,1,""],view_on_site:[400,4,1,""]},"evennia.web.admin.comms.MsgForm":{Meta:[400,1,1,""],base_fields:[400,4,1,""],declared_fields:[400,4,1,""],media:[400,3,1,""]},"evennia.web.admin.comms.MsgForm.Meta":{fields:[400,4,1,""],models:[400,4,1,""]},"evennia.web.admin.comms.MsgTagInline":{media:[400,3,1,""],model:[400,4,1,""],related_field:[400,4,1,""]},"evennia.web.admin.frontpage":{admin_wrapper:[401,5,1,""],evennia_admin:[401,5,1,""]},"evennia.web.admin.help":{HelpEntryAdmin:[402,1,1,""],HelpEntryForm:[402,1,1,""],HelpTagInline:[402,1,1,""]},"evennia.web.admin.help.HelpEntryAdmin":{fieldsets:[402,4,1,""],form:[402,4,1,""],inlines:[402,4,1,""],list_display:[402,4,1,""],list_display_links:[402,4,1,""],list_filter:[402,4,1,""],list_select_related:[402,4,1,""],media:[402,3,1,""],ordering:[402,4,1,""],save_as:[402,4,1,""],save_on_top:[402,4,1,""],search_fields:[402,4,1,""],view_on_site:[402,4,1,""]},"evennia.web.admin.help.HelpEntryForm":{Meta:[402,1,1,""],base_fields:[402,4,1,""],declared_fields:[402,4,1,""],media:[402,3,1,""]},"evennia.web.admin.help.HelpEntryForm.Meta":{fields:[402,4,1,""],model:[402,4,1,""]},"evennia.web.admin.help.HelpTagInline":{media:[402,3,1,""],model:[402,4,1,""],related_field:[402,4,1,""]},"evennia.web.admin.objects":{ObjectAdmin:[403,1,1,""],ObjectAttributeInline:[403,1,1,""],ObjectCreateForm:[403,1,1,""],ObjectEditForm:[403,1,1,""],ObjectTagInline:[403,1,1,""]},"evennia.web.admin.objects.ObjectAdmin":{add_fieldsets:[403,4,1,""],add_form:[403,4,1,""],fieldsets:[403,4,1,""],form:[403,4,1,""],get_fieldsets:[403,3,1,""],get_form:[403,3,1,""],get_urls:[403,3,1,""],inlines:[403,4,1,""],link_button:[403,3,1,""],link_object_to_account:[403,3,1,""],list_display:[403,4,1,""],list_display_links:[403,4,1,""],list_filter:[403,4,1,""],list_select_related:[403,4,1,""],media:[403,3,1,""],ordering:[403,4,1,""],raw_id_fields:[403,4,1,""],readonly_fields:[403,4,1,""],response_add:[403,3,1,""],save_as:[403,4,1,""],save_model:[403,3,1,""],save_on_top:[403,4,1,""],search_fields:[403,4,1,""],serialized_string:[403,3,1,""],view_on_site:[403,4,1,""]},"evennia.web.admin.objects.ObjectAttributeInline":{media:[403,3,1,""],model:[403,4,1,""],related_field:[403,4,1,""]},"evennia.web.admin.objects.ObjectCreateForm":{Meta:[403,1,1,""],__init__:[403,3,1,""],base_fields:[403,4,1,""],declared_fields:[403,4,1,""],media:[403,3,1,""]},"evennia.web.admin.objects.ObjectCreateForm.Meta":{fields:[403,4,1,""],model:[403,4,1,""]},"evennia.web.admin.objects.ObjectEditForm":{Meta:[403,1,1,""],base_fields:[403,4,1,""],declared_fields:[403,4,1,""],media:[403,3,1,""]},"evennia.web.admin.objects.ObjectEditForm.Meta":{fields:[403,4,1,""],model:[403,4,1,""]},"evennia.web.admin.objects.ObjectTagInline":{media:[403,3,1,""],model:[403,4,1,""],related_field:[403,4,1,""]},"evennia.web.admin.scripts":{ScriptAdmin:[404,1,1,""],ScriptAttributeInline:[404,1,1,""],ScriptForm:[404,1,1,""],ScriptTagInline:[404,1,1,""]},"evennia.web.admin.scripts.ScriptAdmin":{fieldsets:[404,4,1,""],form:[404,4,1,""],get_form:[404,3,1,""],inlines:[404,4,1,""],list_display:[404,4,1,""],list_display_links:[404,4,1,""],list_select_related:[404,4,1,""],media:[404,3,1,""],ordering:[404,4,1,""],raw_id_fields:[404,4,1,""],readonly_fields:[404,4,1,""],save_as:[404,4,1,""],save_model:[404,3,1,""],save_on_top:[404,4,1,""],search_fields:[404,4,1,""],serialized_string:[404,3,1,""],view_on_site:[404,4,1,""]},"evennia.web.admin.scripts.ScriptAttributeInline":{media:[404,3,1,""],model:[404,4,1,""],related_field:[404,4,1,""]},"evennia.web.admin.scripts.ScriptForm":{base_fields:[404,4,1,""],declared_fields:[404,4,1,""],media:[404,3,1,""]},"evennia.web.admin.scripts.ScriptTagInline":{media:[404,3,1,""],model:[404,4,1,""],related_field:[404,4,1,""]},"evennia.web.admin.server":{ServerConfigAdmin:[405,1,1,""]},"evennia.web.admin.server.ServerConfigAdmin":{list_display:[405,4,1,""],list_display_links:[405,4,1,""],list_select_related:[405,4,1,""],media:[405,3,1,""],ordering:[405,4,1,""],save_as:[405,4,1,""],save_on_top:[405,4,1,""],search_fields:[405,4,1,""]},"evennia.web.admin.tags":{InlineTagForm:[406,1,1,""],TagAdmin:[406,1,1,""],TagForm:[406,1,1,""],TagFormSet:[406,1,1,""],TagInline:[406,1,1,""]},"evennia.web.admin.tags.InlineTagForm":{Meta:[406,1,1,""],__init__:[406,3,1,""],base_fields:[406,4,1,""],declared_fields:[406,4,1,""],media:[406,3,1,""],save:[406,3,1,""]},"evennia.web.admin.tags.InlineTagForm.Meta":{fields:[406,4,1,""]},"evennia.web.admin.tags.TagAdmin":{fieldsets:[406,4,1,""],form:[406,4,1,""],list_display:[406,4,1,""],list_filter:[406,4,1,""],media:[406,3,1,""],search_fields:[406,4,1,""],view_on_site:[406,4,1,""]},"evennia.web.admin.tags.TagForm":{Meta:[406,1,1,""],base_fields:[406,4,1,""],declared_fields:[406,4,1,""],media:[406,3,1,""]},"evennia.web.admin.tags.TagForm.Meta":{fields:[406,4,1,""]},"evennia.web.admin.tags.TagFormSet":{save:[406,3,1,""],verbose_name:[406,4,1,""],verbose_name_plural:[406,4,1,""]},"evennia.web.admin.tags.TagInline":{extra:[406,4,1,""],form:[406,4,1,""],formset:[406,4,1,""],get_formset:[406,3,1,""],media:[406,3,1,""],model:[406,4,1,""],related_field:[406,4,1,""],verbose_name:[406,4,1,""],verbose_name_plural:[406,4,1,""]},"evennia.web.admin.utils":{get_and_load_cmdsets:[408,5,1,""],get_and_load_typeclasses:[408,5,1,""]},"evennia.web.api":{filters:[410,0,0,"-"],permissions:[411,0,0,"-"],root:[412,0,0,"-"],serializers:[413,0,0,"-"],tests:[414,0,0,"-"],urls:[415,0,0,"-"],views:[416,0,0,"-"]},"evennia.web.api.filters":{AccountDBFilterSet:[410,1,1,""],AliasFilter:[410,1,1,""],BaseTypeclassFilterSet:[410,1,1,""],HelpFilterSet:[410,1,1,""],ObjectDBFilterSet:[410,1,1,""],PermissionFilter:[410,1,1,""],ScriptDBFilterSet:[410,1,1,""],TagTypeFilter:[410,1,1,""],get_tag_query:[410,5,1,""]},"evennia.web.api.filters.AccountDBFilterSet":{Meta:[410,1,1,""],base_filters:[410,4,1,""],declared_filters:[410,4,1,""]},"evennia.web.api.filters.AccountDBFilterSet.Meta":{fields:[410,4,1,""],model:[410,4,1,""]},"evennia.web.api.filters.AliasFilter":{tag_type:[410,4,1,""]},"evennia.web.api.filters.BaseTypeclassFilterSet":{base_filters:[410,4,1,""],declared_filters:[410,4,1,""],filter_name:[410,3,1,""]},"evennia.web.api.filters.HelpFilterSet":{base_filters:[410,4,1,""],declared_filters:[410,4,1,""]},"evennia.web.api.filters.ObjectDBFilterSet":{Meta:[410,1,1,""],base_filters:[410,4,1,""],declared_filters:[410,4,1,""]},"evennia.web.api.filters.ObjectDBFilterSet.Meta":{fields:[410,4,1,""],model:[410,4,1,""]},"evennia.web.api.filters.PermissionFilter":{tag_type:[410,4,1,""]},"evennia.web.api.filters.ScriptDBFilterSet":{Meta:[410,1,1,""],base_filters:[410,4,1,""],declared_filters:[410,4,1,""]},"evennia.web.api.filters.ScriptDBFilterSet.Meta":{fields:[410,4,1,""],model:[410,4,1,""]},"evennia.web.api.filters.TagTypeFilter":{filter:[410,3,1,""],tag_type:[410,4,1,""]},"evennia.web.api.permissions":{EvenniaPermission:[411,1,1,""]},"evennia.web.api.permissions.EvenniaPermission":{MINIMUM_CREATE_PERMISSION:[411,4,1,""],MINIMUM_LIST_PERMISSION:[411,4,1,""],check_locks:[411,3,1,""],destroy_locks:[411,4,1,""],has_object_permission:[411,3,1,""],has_permission:[411,3,1,""],update_locks:[411,4,1,""],view_locks:[411,4,1,""]},"evennia.web.api.root":{APIRootRouter:[412,1,1,""],EvenniaAPIRoot:[412,1,1,""]},"evennia.web.api.root.APIRootRouter":{APIRootView:[412,4,1,""]},"evennia.web.api.serializers":{AccountListSerializer:[413,1,1,""],AccountSerializer:[413,1,1,""],AttributeSerializer:[413,1,1,""],HelpListSerializer:[413,1,1,""],HelpSerializer:[413,1,1,""],ObjectDBSerializer:[413,1,1,""],ObjectListSerializer:[413,1,1,""],ScriptDBSerializer:[413,1,1,""],ScriptListSerializer:[413,1,1,""],SimpleObjectDBSerializer:[413,1,1,""],TagSerializer:[413,1,1,""],TypeclassListSerializerMixin:[413,1,1,""],TypeclassSerializerMixin:[413,1,1,""]},"evennia.web.api.serializers.AccountListSerializer":{Meta:[413,1,1,""]},"evennia.web.api.serializers.AccountListSerializer.Meta":{fields:[413,4,1,""],model:[413,4,1,""],read_only_fields:[413,4,1,""]},"evennia.web.api.serializers.AccountSerializer":{Meta:[413,1,1,""],get_session_ids:[413,3,1,""]},"evennia.web.api.serializers.AccountSerializer.Meta":{fields:[413,4,1,""],model:[413,4,1,""],read_only_fields:[413,4,1,""]},"evennia.web.api.serializers.AttributeSerializer":{Meta:[413,1,1,""],get_value_display:[413,3,1,""]},"evennia.web.api.serializers.AttributeSerializer.Meta":{fields:[413,4,1,""],model:[413,4,1,""]},"evennia.web.api.serializers.HelpListSerializer":{Meta:[413,1,1,""]},"evennia.web.api.serializers.HelpListSerializer.Meta":{fields:[413,4,1,""],model:[413,4,1,""],read_only_fields:[413,4,1,""]},"evennia.web.api.serializers.HelpSerializer":{Meta:[413,1,1,""]},"evennia.web.api.serializers.HelpSerializer.Meta":{fields:[413,4,1,""],model:[413,4,1,""],read_only_fields:[413,4,1,""]},"evennia.web.api.serializers.ObjectDBSerializer":{Meta:[413,1,1,""],get_contents:[413,3,1,""],get_exits:[413,3,1,""]},"evennia.web.api.serializers.ObjectDBSerializer.Meta":{fields:[413,4,1,""],model:[413,4,1,""],read_only_fields:[413,4,1,""]},"evennia.web.api.serializers.ObjectListSerializer":{Meta:[413,1,1,""]},"evennia.web.api.serializers.ObjectListSerializer.Meta":{fields:[413,4,1,""],model:[413,4,1,""],read_only_fields:[413,4,1,""]},"evennia.web.api.serializers.ScriptDBSerializer":{Meta:[413,1,1,""]},"evennia.web.api.serializers.ScriptDBSerializer.Meta":{fields:[413,4,1,""],model:[413,4,1,""],read_only_fields:[413,4,1,""]},"evennia.web.api.serializers.ScriptListSerializer":{Meta:[413,1,1,""]},"evennia.web.api.serializers.ScriptListSerializer.Meta":{fields:[413,4,1,""],model:[413,4,1,""],read_only_fields:[413,4,1,""]},"evennia.web.api.serializers.SimpleObjectDBSerializer":{Meta:[413,1,1,""]},"evennia.web.api.serializers.SimpleObjectDBSerializer.Meta":{fields:[413,4,1,""],model:[413,4,1,""]},"evennia.web.api.serializers.TagSerializer":{Meta:[413,1,1,""]},"evennia.web.api.serializers.TagSerializer.Meta":{fields:[413,4,1,""],model:[413,4,1,""]},"evennia.web.api.serializers.TypeclassListSerializerMixin":{shared_fields:[413,4,1,""]},"evennia.web.api.serializers.TypeclassSerializerMixin":{get_aliases:[413,3,1,""],get_attributes:[413,3,1,""],get_nicks:[413,3,1,""],get_permissions:[413,3,1,""],get_tags:[413,3,1,""],shared_fields:[413,4,1,""]},"evennia.web.api.tests":{TestEvenniaRESTApi:[414,1,1,""]},"evennia.web.api.tests.TestEvenniaRESTApi":{client_class:[414,4,1,""],get_view_details:[414,3,1,""],maxDiff:[414,4,1,""],setUp:[414,3,1,""],tearDown:[414,3,1,""],test_create:[414,3,1,""],test_delete:[414,3,1,""],test_list:[414,3,1,""],test_retrieve:[414,3,1,""],test_set_attribute:[414,3,1,""],test_update:[414,3,1,""]},"evennia.web.api.views":{AccountDBViewSet:[416,1,1,""],CharacterViewSet:[416,1,1,""],ExitViewSet:[416,1,1,""],GeneralViewSetMixin:[416,1,1,""],HelpViewSet:[416,1,1,""],ObjectDBViewSet:[416,1,1,""],RoomViewSet:[416,1,1,""],ScriptDBViewSet:[416,1,1,""],TypeclassViewSetMixin:[416,1,1,""]},"evennia.web.api.views.AccountDBViewSet":{basename:[416,4,1,""],description:[416,4,1,""],detail:[416,4,1,""],filterset_class:[416,4,1,""],list_serializer_class:[416,4,1,""],name:[416,4,1,""],queryset:[416,4,1,""],serializer_class:[416,4,1,""],suffix:[416,4,1,""]},"evennia.web.api.views.CharacterViewSet":{basename:[416,4,1,""],description:[416,4,1,""],detail:[416,4,1,""],list_serializer_class:[416,4,1,""],name:[416,4,1,""],queryset:[416,4,1,""],suffix:[416,4,1,""]},"evennia.web.api.views.ExitViewSet":{basename:[416,4,1,""],description:[416,4,1,""],detail:[416,4,1,""],list_serializer_class:[416,4,1,""],name:[416,4,1,""],queryset:[416,4,1,""],suffix:[416,4,1,""]},"evennia.web.api.views.GeneralViewSetMixin":{get_serializer_class:[416,3,1,""]},"evennia.web.api.views.HelpViewSet":{basename:[416,4,1,""],description:[416,4,1,""],detail:[416,4,1,""],filterset_class:[416,4,1,""],list_serializer_class:[416,4,1,""],name:[416,4,1,""],queryset:[416,4,1,""],serializer_class:[416,4,1,""],suffix:[416,4,1,""]},"evennia.web.api.views.ObjectDBViewSet":{basename:[416,4,1,""],description:[416,4,1,""],detail:[416,4,1,""],filterset_class:[416,4,1,""],list_serializer_class:[416,4,1,""],name:[416,4,1,""],queryset:[416,4,1,""],serializer_class:[416,4,1,""],suffix:[416,4,1,""]},"evennia.web.api.views.RoomViewSet":{basename:[416,4,1,""],description:[416,4,1,""],detail:[416,4,1,""],list_serializer_class:[416,4,1,""],name:[416,4,1,""],queryset:[416,4,1,""],suffix:[416,4,1,""]},"evennia.web.api.views.ScriptDBViewSet":{basename:[416,4,1,""],description:[416,4,1,""],detail:[416,4,1,""],filterset_class:[416,4,1,""],list_serializer_class:[416,4,1,""],name:[416,4,1,""],queryset:[416,4,1,""],serializer_class:[416,4,1,""],suffix:[416,4,1,""]},"evennia.web.api.views.TypeclassViewSetMixin":{filter_backends:[416,4,1,""],permission_classes:[416,4,1,""],set_attribute:[416,3,1,""]},"evennia.web.templatetags":{addclass:[418,0,0,"-"]},"evennia.web.templatetags.addclass":{addclass:[418,5,1,""]},"evennia.web.utils":{adminsite:[421,0,0,"-"],backends:[422,0,0,"-"],general_context:[423,0,0,"-"],middleware:[424,0,0,"-"],tests:[425,0,0,"-"]},"evennia.web.utils.adminsite":{EvenniaAdminApp:[421,1,1,""],EvenniaAdminSite:[421,1,1,""]},"evennia.web.utils.adminsite.EvenniaAdminApp":{default_site:[421,4,1,""]},"evennia.web.utils.adminsite.EvenniaAdminSite":{app_order:[421,4,1,""],get_app_list:[421,3,1,""],site_header:[421,4,1,""]},"evennia.web.utils.backends":{CaseInsensitiveModelBackend:[422,1,1,""]},"evennia.web.utils.backends.CaseInsensitiveModelBackend":{authenticate:[422,3,1,""]},"evennia.web.utils.general_context":{general_context:[423,5,1,""],load_game_settings:[423,5,1,""]},"evennia.web.utils.middleware":{SharedLoginMiddleware:[424,1,1,""]},"evennia.web.utils.middleware.SharedLoginMiddleware":{__init__:[424,3,1,""],make_shared_login:[424,3,1,""]},"evennia.web.utils.tests":{TestGeneralContext:[425,1,1,""]},"evennia.web.utils.tests.TestGeneralContext":{maxDiff:[425,4,1,""],test_general_context:[425,3,1,""]},"evennia.web.webclient":{urls:[427,0,0,"-"],views:[428,0,0,"-"]},"evennia.web.webclient.views":{webclient:[428,5,1,""]},"evennia.web.website":{forms:[430,0,0,"-"],tests:[431,0,0,"-"],urls:[432,0,0,"-"],views:[433,0,0,"-"]},"evennia.web.website.forms":{AccountForm:[430,1,1,""],CharacterForm:[430,1,1,""],CharacterUpdateForm:[430,1,1,""],EvenniaForm:[430,1,1,""],ObjectForm:[430,1,1,""]},"evennia.web.website.forms.AccountForm":{Meta:[430,1,1,""],base_fields:[430,4,1,""],declared_fields:[430,4,1,""],media:[430,3,1,""]},"evennia.web.website.forms.AccountForm.Meta":{field_classes:[430,4,1,""],fields:[430,4,1,""],model:[430,4,1,""]},"evennia.web.website.forms.CharacterForm":{Meta:[430,1,1,""],base_fields:[430,4,1,""],declared_fields:[430,4,1,""],media:[430,3,1,""]},"evennia.web.website.forms.CharacterForm.Meta":{fields:[430,4,1,""],labels:[430,4,1,""],model:[430,4,1,""]},"evennia.web.website.forms.CharacterUpdateForm":{base_fields:[430,4,1,""],declared_fields:[430,4,1,""],media:[430,3,1,""]},"evennia.web.website.forms.EvenniaForm":{base_fields:[430,4,1,""],clean:[430,3,1,""],declared_fields:[430,4,1,""],media:[430,3,1,""]},"evennia.web.website.forms.ObjectForm":{Meta:[430,1,1,""],base_fields:[430,4,1,""],declared_fields:[430,4,1,""],media:[430,3,1,""]},"evennia.web.website.forms.ObjectForm.Meta":{fields:[430,4,1,""],labels:[430,4,1,""],model:[430,4,1,""]},"evennia.web.website.tests":{AdminTest:[431,1,1,""],ChannelDetailTest:[431,1,1,""],ChannelListTest:[431,1,1,""],CharacterCreateView:[431,1,1,""],CharacterDeleteView:[431,1,1,""],CharacterListView:[431,1,1,""],CharacterManageView:[431,1,1,""],CharacterPuppetView:[431,1,1,""],CharacterUpdateView:[431,1,1,""],EvenniaWebTest:[431,1,1,""],HelpDetailTest:[431,1,1,""],HelpListTest:[431,1,1,""],HelpLockedDetailTest:[431,1,1,""],IndexTest:[431,1,1,""],LoginTest:[431,1,1,""],LogoutTest:[431,1,1,""],PasswordResetTest:[431,1,1,""],RegisterTest:[431,1,1,""],WebclientTest:[431,1,1,""]},"evennia.web.website.tests.AdminTest":{unauthenticated_response:[431,4,1,""],url_name:[431,4,1,""]},"evennia.web.website.tests.ChannelDetailTest":{get_kwargs:[431,3,1,""],setUp:[431,3,1,""],url_name:[431,4,1,""]},"evennia.web.website.tests.ChannelListTest":{url_name:[431,4,1,""]},"evennia.web.website.tests.CharacterCreateView":{test_valid_access_multisession_0:[431,3,1,""],test_valid_access_multisession_2:[431,3,1,""],unauthenticated_response:[431,4,1,""],url_name:[431,4,1,""]},"evennia.web.website.tests.CharacterDeleteView":{get_kwargs:[431,3,1,""],test_invalid_access:[431,3,1,""],test_valid_access:[431,3,1,""],unauthenticated_response:[431,4,1,""],url_name:[431,4,1,""]},"evennia.web.website.tests.CharacterListView":{unauthenticated_response:[431,4,1,""],url_name:[431,4,1,""]},"evennia.web.website.tests.CharacterManageView":{unauthenticated_response:[431,4,1,""],url_name:[431,4,1,""]},"evennia.web.website.tests.CharacterPuppetView":{get_kwargs:[431,3,1,""],test_invalid_access:[431,3,1,""],unauthenticated_response:[431,4,1,""],url_name:[431,4,1,""]},"evennia.web.website.tests.CharacterUpdateView":{get_kwargs:[431,3,1,""],test_invalid_access:[431,3,1,""],test_valid_access:[431,3,1,""],unauthenticated_response:[431,4,1,""],url_name:[431,4,1,""]},"evennia.web.website.tests.EvenniaWebTest":{account_typeclass:[431,4,1,""],authenticated_response:[431,4,1,""],channel_typeclass:[431,4,1,""],character_typeclass:[431,4,1,""],exit_typeclass:[431,4,1,""],get_kwargs:[431,3,1,""],login:[431,3,1,""],object_typeclass:[431,4,1,""],room_typeclass:[431,4,1,""],script_typeclass:[431,4,1,""],setUp:[431,3,1,""],test_get:[431,3,1,""],test_get_authenticated:[431,3,1,""],test_valid_chars:[431,3,1,""],unauthenticated_response:[431,4,1,""],url_name:[431,4,1,""]},"evennia.web.website.tests.HelpDetailTest":{get_kwargs:[431,3,1,""],setUp:[431,3,1,""],test_object_cache:[431,3,1,""],test_view:[431,3,1,""],url_name:[431,4,1,""]},"evennia.web.website.tests.HelpListTest":{url_name:[431,4,1,""]},"evennia.web.website.tests.HelpLockedDetailTest":{get_kwargs:[431,3,1,""],setUp:[431,3,1,""],test_lock_with_perm:[431,3,1,""],test_locked_entry:[431,3,1,""],url_name:[431,4,1,""]},"evennia.web.website.tests.IndexTest":{url_name:[431,4,1,""]},"evennia.web.website.tests.LoginTest":{url_name:[431,4,1,""]},"evennia.web.website.tests.LogoutTest":{url_name:[431,4,1,""]},"evennia.web.website.tests.PasswordResetTest":{unauthenticated_response:[431,4,1,""],url_name:[431,4,1,""]},"evennia.web.website.tests.RegisterTest":{url_name:[431,4,1,""]},"evennia.web.website.tests.WebclientTest":{test_get:[431,3,1,""],test_get_disabled:[431,3,1,""],url_name:[431,4,1,""]},"evennia.web.website.views":{accounts:[434,0,0,"-"],channels:[435,0,0,"-"],characters:[436,0,0,"-"],errors:[437,0,0,"-"],help:[438,0,0,"-"],index:[439,0,0,"-"],mixins:[440,0,0,"-"],objects:[441,0,0,"-"]},"evennia.web.website.views.accounts":{AccountCreateView:[434,1,1,""],AccountMixin:[434,1,1,""]},"evennia.web.website.views.accounts.AccountCreateView":{form_valid:[434,3,1,""],success_url:[434,4,1,""],template_name:[434,4,1,""]},"evennia.web.website.views.accounts.AccountMixin":{form_class:[434,4,1,""],model:[434,4,1,""]},"evennia.web.website.views.channels":{ChannelDetailView:[435,1,1,""],ChannelListView:[435,1,1,""],ChannelMixin:[435,1,1,""]},"evennia.web.website.views.channels.ChannelDetailView":{attributes:[435,4,1,""],get_context_data:[435,3,1,""],get_object:[435,3,1,""],max_num_lines:[435,4,1,""],template_name:[435,4,1,""]},"evennia.web.website.views.channels.ChannelListView":{get_context_data:[435,3,1,""],max_popular:[435,4,1,""],page_title:[435,4,1,""],paginate_by:[435,4,1,""],template_name:[435,4,1,""]},"evennia.web.website.views.channels.ChannelMixin":{access_type:[435,4,1,""],get_queryset:[435,3,1,""],model:[435,4,1,""],page_title:[435,4,1,""]},"evennia.web.website.views.characters":{CharacterCreateView:[436,1,1,""],CharacterDeleteView:[436,1,1,""],CharacterDetailView:[436,1,1,""],CharacterListView:[436,1,1,""],CharacterManageView:[436,1,1,""],CharacterMixin:[436,1,1,""],CharacterPuppetView:[436,1,1,""],CharacterUpdateView:[436,1,1,""]},"evennia.web.website.views.characters.CharacterCreateView":{form_valid:[436,3,1,""],template_name:[436,4,1,""]},"evennia.web.website.views.characters.CharacterDetailView":{access_type:[436,4,1,""],attributes:[436,4,1,""],get_queryset:[436,3,1,""],template_name:[436,4,1,""]},"evennia.web.website.views.characters.CharacterListView":{access_type:[436,4,1,""],get_queryset:[436,3,1,""],page_title:[436,4,1,""],paginate_by:[436,4,1,""],template_name:[436,4,1,""]},"evennia.web.website.views.characters.CharacterManageView":{page_title:[436,4,1,""],paginate_by:[436,4,1,""],template_name:[436,4,1,""]},"evennia.web.website.views.characters.CharacterMixin":{form_class:[436,4,1,""],get_queryset:[436,3,1,""],model:[436,4,1,""],success_url:[436,4,1,""]},"evennia.web.website.views.characters.CharacterPuppetView":{get_redirect_url:[436,3,1,""]},"evennia.web.website.views.characters.CharacterUpdateView":{form_class:[436,4,1,""],template_name:[436,4,1,""]},"evennia.web.website.views.errors":{to_be_implemented:[437,5,1,""]},"evennia.web.website.views.help":{HelpDetailView:[438,1,1,""],HelpListView:[438,1,1,""],HelpMixin:[438,1,1,""],can_read_topic:[438,5,1,""],collect_topics:[438,5,1,""],get_help_category:[438,5,1,""],get_help_topic:[438,5,1,""]},"evennia.web.website.views.help.HelpDetailView":{get_context_data:[438,3,1,""],get_object:[438,3,1,""],page_title:[438,3,1,""],template_name:[438,4,1,""]},"evennia.web.website.views.help.HelpListView":{page_title:[438,4,1,""],paginate_by:[438,4,1,""],template_name:[438,4,1,""]},"evennia.web.website.views.help.HelpMixin":{get_queryset:[438,3,1,""],page_title:[438,4,1,""]},"evennia.web.website.views.index":{EvenniaIndexView:[439,1,1,""]},"evennia.web.website.views.index.EvenniaIndexView":{get_context_data:[439,3,1,""],template_name:[439,4,1,""]},"evennia.web.website.views.mixins":{EvenniaCreateView:[440,1,1,""],EvenniaDeleteView:[440,1,1,""],EvenniaDetailView:[440,1,1,""],EvenniaUpdateView:[440,1,1,""],TypeclassMixin:[440,1,1,""]},"evennia.web.website.views.mixins.EvenniaCreateView":{page_title:[440,3,1,""]},"evennia.web.website.views.mixins.EvenniaDeleteView":{page_title:[440,3,1,""]},"evennia.web.website.views.mixins.EvenniaDetailView":{page_title:[440,3,1,""]},"evennia.web.website.views.mixins.EvenniaUpdateView":{page_title:[440,3,1,""]},"evennia.web.website.views.mixins.TypeclassMixin":{typeclass:[440,3,1,""]},"evennia.web.website.views.objects":{ObjectCreateView:[441,1,1,""],ObjectDeleteView:[441,1,1,""],ObjectDetailView:[441,1,1,""],ObjectUpdateView:[441,1,1,""]},"evennia.web.website.views.objects.ObjectCreateView":{model:[441,4,1,""]},"evennia.web.website.views.objects.ObjectDeleteView":{"delete":[441,3,1,""],access_type:[441,4,1,""],model:[441,4,1,""],template_name:[441,4,1,""]},"evennia.web.website.views.objects.ObjectDetailView":{access_type:[441,4,1,""],attributes:[441,4,1,""],get_context_data:[441,3,1,""],get_object:[441,3,1,""],model:[441,4,1,""],template_name:[441,4,1,""]},"evennia.web.website.views.objects.ObjectUpdateView":{access_type:[441,4,1,""],form_valid:[441,3,1,""],get_initial:[441,3,1,""],get_success_url:[441,3,1,""],model:[441,4,1,""]},evennia:{accounts:[167,0,0,"-"],commands:[172,0,0,"-"],comms:[195,0,0,"-"],contrib:[199,0,0,"-"],help:[285,0,0,"-"],locks:[290,0,0,"-"],objects:[293,0,0,"-"],prototypes:[297,0,0,"-"],scripts:[302,0,0,"-"],server:[310,0,0,"-"],set_trace:[165,5,1,""],settings_default:[360,0,0,"-"],typeclasses:[361,0,0,"-"],utils:[366,0,0,"-"],web:[396,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":[60,75,80,83,105,389],"0000":[75,80],"0004":77,"0005":201,"001":[8,77,279,389],"002":389,"003":[116,389],"004":389,"005":[60,367,389],"006":389,"007":389,"008":389,"009":389,"010":[92,389],"011":389,"012":389,"013":389,"014":389,"015":389,"015public":92,"016":389,"017":389,"018":389,"019":389,"020":389,"020t":92,"021":389,"022":389,"023":389,"024":389,"0247":77,"025":389,"026":389,"027":389,"028":389,"029":389,"030":389,"030a":92,"031":389,"032":389,"033":[367,389],"034":[77,389],"035":389,"036":389,"037":389,"038":389,"039":389,"040":389,"040f":92,"041":389,"042":389,"043":389,"043thi":116,"044":389,"045":389,"046":389,"047":389,"048":389,"049":389,"050":[367,389],"050f":92,"051":389,"052":389,"053":389,"054":[60,389],"055":[367,389],"056":389,"057":389,"058":389,"059":389,"060":389,"061":389,"062":389,"063":389,"064":389,"065":389,"066":389,"067":389,"068":389,"069":389,"070":389,"071":389,"072":389,"073":389,"074":389,"075":389,"076":389,"077":389,"078":389,"079":389,"080":389,"081":389,"082":389,"083":389,"084":389,"085":389,"086":389,"087":389,"088":389,"089":389,"090":389,"091":389,"092":389,"093":389,"094":389,"095":389,"096":389,"097":389,"098":389,"099":389,"0b16":147,"0d0":98,"0th":13,"0x045a0990":3,"100":[5,20,48,79,82,98,106,122,127,192,213,219,225,252,253,256,259,260,279,389,390,435,436],"1000":[5,42,98,129,157,256,257,258,259,260,300],"10000":435,"1000000":[5,105,383],"100m":389,"100mb":155,"101":[20,296,389],"101m":389,"102":[253,389],"102m":389,"103":389,"103m":389,"104":389,"104m":389,"105":389,"105m":389,"106":389,"106m":389,"107":389,"107m":389,"108":389,"108m":389,"109":389,"1098":48,"109m":389,"10gold":122,"10m":151,"110":[253,367,375,389],"110m":389,"111":[55,60,180,389],"111m":389,"112":389,"112m":389,"113":[155,389],"113m":389,"114":389,"114m":389,"115":389,"115600":98,"115m":389,"116":389,"116m":389,"117":389,"117m":389,"118":[47,389],"1184":146,"118m":389,"119":389,"119m":389,"120":[20,389],"1200":373,"120m":389,"121":389,"121m":389,"122":389,"122m":389,"123":[11,142,296,377,389],"1234":[13,41,148,240],"123dark":104,"123m":389,"124":389,"12400":105,"124m":389,"125":[49,389],"125m":389,"126":389,"126m":389,"127":[53,76,119,145,146,147,149,151,155,162,334,389],"127m":389,"128":389,"128m":389,"129":389,"129m":389,"12s":19,"130":389,"130m":389,"131":389,"131m":389,"132":389,"132m":389,"133":389,"133m":389,"134":[55,180,389],"134m":389,"135":389,"135m":389,"136":389,"136m":389,"137":389,"137m":389,"138":389,"138m":389,"139":389,"139m":389,"140":[3,165,389],"1400":373,"140313967648552":22,"140m":389,"141":389,"141m":389,"142":[77,204,389],"142m":389,"143":389,"143m":389,"144":389,"144m":389,"145":389,"145m":389,"146":389,"146m":389,"147":389,"147m":389,"148":389,"148m":389,"149":389,"149m":389,"150":[372,389],"150m":389,"151":389,"151m":389,"152":389,"152m":389,"153":389,"153m":389,"154":389,"154m":389,"155":389,"155m":389,"156":[8,389],"156m":389,"157":389,"1577865600":101,"157m":389,"158":389,"158m":389,"159":[112,389],"159m":389,"160":389,"160m":389,"161":389,"161m":389,"162":389,"162m":389,"163":389,"163m":389,"164":389,"164m":389,"165":389,"165m":389,"166":389,"166m":389,"167":389,"167m":389,"168":389,"168m":389,"169":389,"169m":389,"16m":389,"170":389,"170m":389,"171":389,"171m":389,"172":389,"172m":389,"173":389,"1730":144,"173m":389,"174":389,"174m":389,"175":389,"175m":389,"176":389,"1763":111,"1764":111,"176m":389,"177":389,"177m":389,"178":389,"178m":389,"179":389,"179m":389,"17m":389,"180":389,"180m":389,"181":389,"181m":389,"182":389,"182m":389,"183":389,"183m":389,"184":389,"184m":389,"185":389,"185m":389,"186":389,"186m":389,"187":389,"187m":389,"188":389,"188m":389,"189":389,"189m":389,"18m":389,"190":389,"1903":111,"190m":389,"191":389,"191m":389,"192":389,"192m":389,"193":389,"193m":389,"194":389,"194m":389,"195":389,"195m":389,"196":389,"196m":389,"197":389,"1970":101,"197m":389,"198":389,"198m":389,"199":389,"1996":144,"1998":144,"199m":389,"19m":389,"1_7":8,"1d100":[122,127,213],"1d2":98,"1d20":122,"1d6":127,"1gb":155,"1st":[30,58,101,377,393,394,395],"200":[253,389,431],"2001":144,"2003":144,"2004":144,"2008":390,"200m":389,"201":389,"2010":389,"2011":[78,205,251,270],"2012":[78,203,213,214,224],"2014":[78,91,250,253],"2015":[64,78,147,226,242,243],"2016":[78,236,239,249,251],"2017":[6,78,101,155,206,207,212,227,241,246,247,254,256,257,258,259,260,272,273],"2018":[64,76,78,116,117,204,225,235,240],"2019":[64,78,144,224],"201m":389,"202":389,"2020":[55,64,78,79,101,201,209,253,268],"2020_01_29":383,"2020_01_29__1":383,"2020_01_29__2":383,"2021":[50,64,78,393,394,438],"202m":389,"203":[155,389],"203m":389,"204":389,"2048":151,"204m":389,"205":[373,389],"205m":389,"206":389,"206m":389,"207":389,"2076":111,"207m":389,"208":[107,389],"208m":389,"209":389,"209m":389,"20m":389,"210":389,"210m":389,"211":389,"211m":389,"212":[55,389],"2128":98,"212m":389,"213":[49,389],"213m":389,"214":[49,389],"214m":389,"215":389,"215m":389,"216":389,"216m":389,"217":389,"217m":389,"218":389,"218m":389,"219":[76,389],"219m":389,"21m":389,"220":389,"2207":241,"220m":389,"221":[368,389],"221m":389,"222":[60,367,389],"222m":389,"223":[55,389],"223m":389,"224":389,"224m":389,"225":[55,389],"225m":389,"226":389,"226m":389,"227":389,"227m":389,"228":389,"228m":389,"229":389,"229m":389,"22m":[367,389],"22nd":390,"230":[60,389],"230m":389,"231":389,"231m":389,"232":389,"232m":389,"233":[55,180,377,389],"233m":389,"234":[207,389],"234m":389,"235":389,"235m":389,"236":389,"236m":389,"237":[55,389],"237m":389,"238":389,"238m":389,"239":389,"239m":389,"23fwsf23sdfw23wef23":5,"23m":389,"240":389,"240m":389,"241":389,"241m":389,"242":389,"2429":438,"242m":389,"243":389,"243m":389,"244":[42,389],"244m":389,"245":389,"245m":389,"246":389,"246m":389,"247":389,"247m":389,"248":389,"248m":389,"249":389,"249m":389,"24m":389,"250":389,"250m":389,"251":389,"251m":389,"252":389,"252m":389,"253":389,"253m":389,"254":389,"254m":389,"255":[147,367,389],"255m":389,"256":[55,60,179,367],"25m":389,"26m":389,"27m":389,"280":152,"28gmcp":338,"28m":389,"29m":389,"2d6":[100,122,213],"2gb":155,"2nd":[30,58,223,377,393,394,395],"2nd_person_pronoun":394,"2sgpre":395,"2xcoal":210,"300":[60,139,212,378],"3000000":105,"302":431,"30m":[367,389],"30s":[122,279],"31m":[367,389],"31st":101,"32bit":[147,149],"32m":[367,389],"32nd":100,"333":[55,60],"33m":[367,389],"340":98,"343":30,"34m":[367,389],"358":50,"358283996582031":5,"35m":[367,389],"360":101,"3600":[101,201],"36m":[367,389],"37m":[367,389],"3872":111,"38m":389,"39m":389,"3c3ccec30f037be174d3":390,"3d6":213,"3rd":[30,58,101,223,377,393,394,395],"3rd_person_pronoun":394,"3sgpast":393,"3sgpre":[393,395],"4000":[2,76,87,119,149,151,154,155,157,158,162],"4001":[2,49,50,51,52,53,73,76,90,102,119,132,141,142,145,149,151,154,155,157,158,162,343],"4002":[2,145,151,155,157],"4003":155,"4004":155,"4005":155,"4006":155,"403":11,"404":[53,102],"40m":[367,389],"41917":334,"41m":[367,389],"4201":155,"425":367,"42m":[367,389],"430000":101,"431":367,"43m":[367,389],"443":[145,151,158],"444":60,"44m":[367,389],"45m":[19,367,389],"46m":[367,389],"474a3b9f":40,"47m":[367,389],"48m":389,"49m":389,"4er43233fwefwfw":76,"4th":[83,85,144],"500":[53,60,83,139,281,367,438],"50000":105,"500red":367,"502916":8,"503435":8,"505":367,"50m":389,"50mb":155,"516106":98,"51m":389,"520":60,"5242880":201,"52m":389,"530":116,"53m":389,"543":[30,377],"5432":146,"54343":30,"5434343":377,"54m":389,"550":[367,373],"550n":92,"551e":92,"552w":92,"553b":92,"554i":92,"555":[60,241,367],"555e":92,"55m":389,"565000":101,"566":42,"56m":389,"577349":389,"57m":389,"5885d80a13c0db1f8e263663d3faee8d66f31424b43e9a70645c907a6cbd8fb4":84,"58m":389,"593":390,"59m":389,"5d5":98,"5mb":201,"5x5":82,"600":390,"60m":389,"61m":389,"624660":50,"62cb3a1a":40,"62m":389,"63m":389,"64m":389,"64x64":53,"65m":389,"6666":62,"6667":[144,153,169,187,355],"66m":389,"67m":389,"686":58,"68m":389,"69m":389,"6d6":98,"70982813835144":5,"70m":389,"71m":389,"72m":389,"73m":389,"74m":389,"75m":389,"760000":101,"76m":389,"775":2,"77m":389,"78m":389,"79m":389,"7a3d54":53,"8080":155,"80m":389,"8111":2,"81m":389,"82m":389,"83m":389,"84m":389,"85000":105,"85m":389,"86400":137,"86m":389,"87m":389,"8859":[16,70,194],"88m":389,"89m":389,"8f64fec2670c":155,"900":[225,373],"9000":430,"90m":389,"90s":391,"91m":389,"92m":389,"93m":389,"94m":389,"95m":389,"96m":389,"97m":389,"981":241,"98m":389,"990":373,"99999":121,"999999999999":282,"99m":389,"\u6d4b\u8bd5":92,"abstract":[67,83,88,112,122,218,260,362,363,364,381,384,390],"ansl\u00f6t":64,"boolean":[13,14,18,22,30,51,108,141,177,213,225,292,296,307,334,362,365,367,368,384,391],"break":[3,15,31,48,51,54,55,60,64,69,82,84,95,99,100,107,115,116,117,121,123,126,148,158,165,182,189,190,239,265,275,284,323,367,374,375,390],"byte":[16,19,30,70,314,316,323,325,334,342,390],"case":[3,8,9,11,13,14,15,16,18,19,20,22,28,31,32,33,37,39,41,44,45,48,49,50,51,52,53,54,55,60,62,64,65,67,68,69,70,77,80,81,82,83,84,85,88,91,92,93,94,97,100,101,102,104,105,107,108,109,110,111,112,113,114,115,116,117,118,120,121,124,126,129,130,137,138,141,144,145,146,157,158,162,163,168,169,170,174,176,177,179,182,188,189,190,193,196,197,201,202,203,204,206,209,210,213,224,225,233,241,243,248,252,265,271,275,282,284,286,287,288,291,292,294,296,300,304,306,319,323,327,331,345,352,355,362,363,364,365,367,369,377,381,387,390,394,398,422,443],"catch":[0,6,16,19,36,42,47,95,100,107,126,136,169,188,216,271,305,314,319,326,352,353,362,372,374,375,381,383,386,439],"char":[13,44,68,82,83,98,100,106,111,114,127,129,137,141,152,168,182,188,218,219,226,271,281,284,296,311,324,337,338,359,367,373,376],"class":[0,3,6,12,13,17,18,20,27,28,29,30,31,37,39,41,42,44,49,50,52,53,54,55,56,62,64,67,73,78,79,81,83,85,86,87,88,91,92,93,94,95,96,97,98,99,100,101,103,104,105,106,107,108,109,110,111,112,115,118,119,121,122,126,127,129,130,132,135,136,137,138,140,141,142,152,168,169,170,171,172,175,176,177,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,196,197,198,201,202,203,204,205,206,209,210,211,212,213,214,216,217,218,219,221,222,223,224,225,226,229,230,232,233,235,236,239,240,241,242,243,247,248,249,250,251,252,253,254,256,257,258,259,260,262,264,265,266,268,269,270,271,272,273,275,276,279,281,282,283,284,286,287,288,292,293,294,295,296,298,300,301,303,304,305,306,307,308,309,311,312,314,316,317,320,321,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,345,347,350,352,353,354,355,357,358,359,361,362,363,364,365,367,368,369,370,371,372,373,374,375,376,377,378,380,381,382,383,384,385,386,387,388,389,390,395,398,399,400,402,403,404,405,406,408,410,411,412,413,414,416,419,421,422,424,425,430,431,434,435,436,438,439,440,441,443],"const":272,"default":[2,3,5,6,7,8,9,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,31,35,36,37,39,41,42,44,45,46,48,49,50,52,54,55,56,57,60,61,62,63,64,65,67,68,70,71,72,73,74,75,76,77,78,79,80,81,82,85,86,87,88,90,91,94,96,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,116,117,118,119,122,123,124,126,129,130,132,134,135,136,138,139,141,142,145,146,149,150,151,152,153,154,155,157,158,159,162,165,166,168,169,171,172,173,174,175,176,177,196,198,201,203,204,205,206,207,209,211,212,213,214,216,218,219,221,222,223,224,225,226,227,230,232,233,236,239,240,242,243,246,247,249,250,251,252,253,254,256,257,258,259,260,264,265,269,271,272,273,275,278,281,282,283,284,285,286,287,288,289,290,292,294,296,300,301,304,305,307,308,309,312,314,316,318,319,320,324,336,337,338,343,345,346,352,353,354,355,359,360,362,363,364,365,367,369,370,372,374,375,376,377,380,381,383,384,385,386,387,390,391,398,410,416,421,422,430,436,438,439,440,441,442,443],"export":154,"final":[0,2,8,19,22,41,44,48,53,54,60,64,65,67,85,89,94,96,100,102,106,108,110,111,112,114,115,120,123,127,129,130,134,139,141,142,146,149,151,158,173,174,175,182,187,191,201,209,213,254,281,292,301,351,355,367,369,374,375,443],"float":[30,81,85,115,169,212,231,232,235,253,308,314,326,363,377,378,386,390],"function":[0,5,7,8,9,13,14,15,19,22,27,28,29,31,32,39,41,42,45,47,48,49,51,52,54,57,58,60,62,65,67,68,69,71,73,74,76,79,80,82,84,85,87,88,90,91,92,94,97,99,100,101,102,104,105,106,107,108,109,111,113,114,115,117,120,121,122,123,124,126,127,130,132,136,138,141,142,146,149,154,159,163,165,168,171,174,176,177,179,180,181,182,183,187,188,189,190,192,193,194,196,197,201,203,204,205,209,211,212,213,216,218,223,224,225,227,231,232,235,236,240,242,243,248,249,253,254,256,257,258,259,260,265,268,270,271,272,273,281,282,283,288,290,291,292,296,299,300,301,305,307,308,309,314,318,319,323,334,335,340,343,346,353,355,357,364,365,366,367,368,370,371,372,374,375,377,378,383,384,385,389,390,391,394,414,416,419,439,440,441,443],"g\u00e9n\u00e9ral":144,"goto":[83,106,268,275,374,443],"import":[1,3,5,6,7,8,10,12,13,14,15,16,18,19,20,22,27,28,29,30,31,32,33,34,35,37,39,42,44,45,46,47,48,49,50,51,53,54,56,57,58,62,64,65,67,70,73,74,75,76,77,79,80,81,82,86,87,88,90,91,92,93,94,95,96,97,98,99,100,101,102,104,106,107,108,110,111,113,114,115,118,121,123,124,126,127,129,130,132,134,135,136,137,138,139,140,141,142,148,149,152,153,155,158,159,163,165,176,182,192,193,201,203,204,205,206,207,209,212,213,223,224,225,235,236,239,241,242,243,249,250,252,253,254,256,257,258,259,260,265,270,271,273,287,292,300,301,309,314,318,326,327,348,352,355,356,362,364,368,369,372,373,374,375,376,377,387,388,390,421,441,443],"int":[13,20,28,30,32,42,48,81,83,92,96,98,100,106,107,114,116,130,142,168,169,170,174,175,177,197,201,203,206,212,213,223,225,227,229,231,232,235,243,253,254,256,257,258,259,260,272,281,282,284,289,294,296,301,303,306,308,309,311,312,314,319,323,324,325,326,328,332,333,334,342,343,345,355,357,359,362,363,367,370,372,373,374,375,376,377,378,381,383,387,390,393],"long":[0,8,11,13,16,18,19,22,28,29,31,33,36,44,47,48,54,62,67,69,70,72,73,76,77,80,81,82,83,84,85,88,92,94,97,100,101,104,106,108,109,111,114,116,117,123,124,126,127,136,138,139,141,143,144,146,152,153,155,179,182,189,203,210,214,232,240,250,259,272,282,323,328,343,367,368,375,376,377,390,393],"new":[0,2,5,7,9,11,12,13,14,15,18,19,20,22,25,26,27,28,31,33,34,35,37,39,40,41,44,45,46,49,50,51,55,56,57,61,62,64,65,68,69,72,73,75,76,77,78,81,82,83,84,85,87,88,89,91,92,94,96,97,99,101,104,105,106,107,108,109,111,115,116,117,118,119,120,121,122,124,125,126,127,128,129,130,131,133,134,135,136,138,140,142,143,144,146,147,148,149,150,151,152,153,154,155,156,157,159,168,169,175,176,177,179,180,182,187,189,190,193,194,196,204,205,206,209,214,216,217,218,221,223,224,225,229,232,236,239,240,241,242,243,249,250,253,254,256,257,258,259,260,269,270,271,273,275,281,282,283,284,286,288,292,294,295,296,298,300,301,303,304,307,308,309,311,314,323,324,325,326,332,333,334,339,346,354,355,359,362,363,364,365,367,368,370,373,374,375,376,381,383,384,390,398,400,403,404,431,436,438,440,442,443],"null":[49,67,108,145,399,406],"public":[11,18,53,92,100,108,113,123,142,150,151,153,155,157,158,187,201,296,359,376,443],"return":[2,3,5,6,8,13,16,18,19,22,27,29,30,31,32,33,37,39,41,42,45,46,48,49,51,52,53,54,58,60,62,64,69,72,77,79,81,82,83,88,90,91,92,93,94,95,96,97,100,101,102,104,105,106,107,108,109,114,115,118,120,126,127,129,130,132,135,136,138,141,142,152,157,158,163,164,168,169,170,171,173,174,175,176,177,179,182,187,189,192,193,196,197,198,201,202,203,204,206,209,212,213,216,217,218,219,221,223,224,225,227,229,230,231,232,235,236,240,241,242,243,247,248,249,252,253,254,256,257,258,259,260,262,265,268,269,270,271,272,273,275,281,282,283,284,286,287,288,289,291,292,294,295,296,298,299,300,301,303,305,306,307,308,309,311,312,314,319,320,323,324,326,327,328,329,331,332,333,334,335,337,338,339,341,342,343,345,346,352,353,355,357,358,359,362,363,364,365,367,368,369,370,371,372,374,375,376,377,378,381,383,384,385,386,387,389,390,391,393,394,398,399,400,402,403,404,406,408,410,411,413,419,421,423,430,435,436,438,439,441,443],"short":[3,13,28,36,37,46,51,58,60,65,72,74,77,80,83,94,96,99,100,101,109,112,114,116,122,130,148,152,158,163,187,204,206,218,232,239,242,243,272,282,301,368,390,393],"static":[31,49,51,52,53,73,78,81,85,100,113,122,123,134,165,166,192,199,204,229,243,251,252,300,301,359,370,410,411,413,419,428,439,443],"super":[20,37,48,62,77,79,81,92,99,100,101,104,114,117,130,136,138,204,206,243,443],"switch":[11,12,14,15,18,20,22,27,31,39,48,54,56,57,60,68,72,75,76,80,92,100,104,105,109,129,130,138,139,146,150,153,155,156,162,179,180,181,182,187,188,189,190,192,194,213,218,221,224,236,239,240,257,265,275,304,364,370,375,391],"th\u00ed":109,"throw":[11,13,41,63,77,141,154,176,308,390],"true":[0,8,12,13,14,18,19,20,22,27,28,30,31,32,33,34,36,39,42,44,47,48,49,50,51,52,53,54,60,62,63,64,67,71,73,77,81,83,90,91,92,94,98,100,101,102,104,106,107,108,109,113,114,115,118,120,123,126,129,130,135,137,138,139,141,148,150,153,155,156,157,168,170,171,173,175,176,177,179,182,187,189,190,193,196,197,198,201,203,204,206,207,209,210,212,213,216,217,218,221,223,225,227,229,232,240,241,242,243,249,253,254,256,257,258,259,260,265,268,269,273,281,282,283,284,286,288,291,292,294,295,296,298,300,301,304,305,306,307,308,309,312,314,319,320,323,325,332,337,342,343,353,355,357,359,362,363,364,367,370,372,374,375,376,377,378,381,385,386,387,390,391,395,398,399,400,402,403,404,405,406,411,438],"try":[0,3,5,6,8,13,14,16,18,19,27,28,30,31,32,33,39,41,42,50,51,54,55,56,58,63,64,67,69,70,73,74,75,76,77,79,80,81,82,83,85,87,88,90,91,92,94,95,96,97,98,99,100,102,104,107,108,109,110,111,112,114,115,116,117,119,121,122,124,125,126,127,128,130,131,133,134,136,137,138,139,141,142,145,146,148,149,150,151,154,155,158,163,168,171,175,177,182,196,198,203,204,209,212,214,233,241,242,243,249,250,252,253,256,257,258,259,260,265,269,270,271,273,281,284,286,288,296,300,311,314,323,338,339,343,357,362,364,367,369,370,372,373,377,386,390,399,406],"var":[51,68,146,151,201,246,338,368],"void":98,"while":[5,8,13,14,15,18,20,22,25,27,28,30,35,39,41,42,49,51,54,58,60,64,65,67,69,72,75,76,77,81,82,83,84,85,87,89,92,93,94,98,99,100,101,107,109,110,112,113,114,116,117,120,121,122,123,126,129,134,136,138,141,142,146,149,151,154,155,158,163,168,179,182,189,190,193,201,203,209,225,233,240,241,243,257,260,265,269,271,273,281,284,296,300,301,307,338,361,362,364,374,376,377,390,391,399,406,439],AIs:144,AND:[13,33,39,111,127,182,225,292,362,365],AWS:[155,157,201],Adding:[1,21,22,39,69,99,103,105,106,113,116,122,123,126,129,152,165,166,189,199,224,281,374,443],Age:[225,430],And:[0,2,3,18,22,28,44,54,67,75,76,77,80,82,90,91,92,94,99,101,102,107,114,116,117,122,124,127,139,141,176,206,254,256,257,258,259,260,284,443],Are:[22,105,109,121,144,374,443],Aye:80,BGs:139,Being:[100,104,116,120,130],But:[0,3,8,13,14,16,18,19,20,22,28,31,39,41,42,45,48,54,58,60,65,67,75,77,82,83,84,85,87,88,91,92,93,94,96,97,99,101,102,105,106,107,108,109,111,113,114,115,116,117,118,121,123,124,126,127,131,139,141,142,148,151,153,157,159,175,176,203,253,284,300,365,440],DNS:[151,155],DOING:225,DoS:[5,332],Doing:[22,42,87,94,98,108,127,142,176,179],For:[2,3,4,5,8,10,11,12,13,14,15,17,18,19,20,22,28,30,31,33,35,38,41,42,44,49,50,52,53,55,56,57,58,59,60,64,65,67,68,70,72,73,74,75,76,77,79,80,81,82,83,84,85,87,88,91,92,94,96,98,99,100,101,102,104,106,107,109,111,113,114,115,116,117,118,122,123,126,127,129,130,134,138,139,140,141,142,144,145,146,149,151,153,155,156,157,158,163,168,175,176,177,182,187,189,192,196,197,198,204,206,211,213,218,224,225,226,235,243,249,251,253,254,257,269,282,284,286,288,291,292,296,301,308,334,338,343,362,364,367,371,374,377,384,386,390,415,423,430,440],GMs:[100,122,123],Going:[123,124,272,443],Has:[78,147,256,257,258,259,260],His:[99,226],IDE:[7,85],IDEs:99,IDs:[75,141,142,157,231,362,390,413],INTO:[182,225,275],IOS:147,IPs:[55,146,158,246,357],IRE:[68,338],Its:[4,33,37,42,44,58,65,67,101,102,187,226,265,301,372,374,390],LTS:6,NOT:[13,22,33,51,92,111,155,158,182,282,292,301,357,377],Near:112,Not:[8,11,18,32,46,47,51,58,69,95,99,108,111,116,117,121,124,140,141,145,147,148,155,169,176,190,296,311,324,325,326,328,329,330,336,338,341,362,363,384,394],OBS:[57,78],ONE:158,Obs:8,One:[2,9,10,11,28,30,33,36,42,44,47,55,58,75,77,80,81,85,88,92,94,99,100,102,107,108,109,111,114,116,117,118,123,126,130,135,138,139,140,144,145,146,149,163,165,171,173,189,203,209,213,218,242,253,254,269,270,281,282,284,294,300,301,324,352,362,363,367,368,374,375,377,390,399,406,438,443],PMs:443,PRs:11,Such:[8,14,22,28,50,84,88,93,99,121,123,127,182,301,367,374],THAT:107,THE:225,THEN:[176,225],THERE:225,TLS:[158,443],That:[0,3,4,5,11,16,20,22,30,32,39,42,44,46,47,48,54,74,75,76,77,80,81,82,83,87,88,90,91,92,96,99,101,102,107,108,109,111,112,114,115,116,120,122,123,126,127,132,134,142,156,203,204,214,253,254,282,292,301,355,374,415],The:[2,3,4,6,7,8,9,10,11,12,13,16,17,18,19,20,22,24,26,29,32,33,34,35,36,37,40,44,45,46,47,48,49,51,52,53,55,58,60,62,63,64,67,68,69,70,71,72,74,75,76,79,82,84,85,86,87,88,90,91,92,93,95,96,97,98,99,101,104,105,107,108,109,110,111,112,113,114,115,116,117,118,119,122,123,126,127,134,136,137,138,139,140,141,142,143,144,145,146,147,148,149,151,153,154,155,156,157,158,159,161,163,168,169,170,171,173,174,175,176,177,179,182,186,187,188,189,190,191,192,193,194,196,197,198,201,203,204,206,209,210,212,213,214,216,217,218,219,221,223,224,225,226,227,229,230,231,232,235,236,240,241,242,243,249,250,253,254,256,257,258,259,260,262,264,265,268,269,270,271,272,273,275,278,281,282,283,284,285,286,287,288,289,291,292,294,295,296,298,299,300,301,303,304,305,306,307,308,309,311,312,313,314,316,318,319,321,323,324,325,326,327,328,329,330,331,332,333,334,336,337,338,339,341,342,343,345,346,351,352,353,354,355,359,362,363,364,365,367,368,369,370,371,372,373,374,375,376,377,378,379,381,383,384,385,386,387,388,390,391,393,394,399,400,406,410,411,413,415,416,419,421,430,438,439,442,443],Their:[28,41,53,127,158,226],Theirs:226,Then:[3,5,8,11,16,45,51,53,64,75,76,77,80,83,85,96,98,102,107,114,149,157,224,276],There:[0,5,6,8,9,13,14,15,16,18,19,20,22,28,30,31,37,39,42,44,45,46,48,49,50,53,54,57,58,60,67,68,69,70,75,77,80,81,82,83,85,88,89,91,92,99,100,101,102,104,106,107,108,109,110,111,113,115,116,118,121,122,123,124,126,127,129,130,134,135,136,138,141,144,145,146,151,153,155,156,158,159,190,209,224,225,253,254,256,257,258,259,260,273,281,301,309,319,338,355,367,368,374,377,442],These:[5,8,11,13,14,17,22,24,25,28,30,31,32,35,41,42,44,45,46,48,50,51,52,53,58,60,62,65,67,68,71,75,76,77,79,81,82,83,85,90,92,96,102,107,108,109,110,111,113,114,116,117,118,122,123,126,127,138,141,150,151,155,157,158,163,167,168,173,175,177,179,181,183,187,191,197,204,209,212,235,236,240,242,243,247,253,265,271,279,281,282,284,286,287,292,296,300,301,309,313,320,339,342,343,345,354,355,356,362,364,367,371,374,375,376,377,378,383,384,385,390,394,398,407,440],USING:209,Use:[5,8,11,12,14,15,20,28,30,31,35,37,41,44,48,51,55,58,60,76,77,83,85,90,92,100,102,109,115,116,117,120,129,130,145,146,147,148,149,150,151,155,157,162,168,174,179,180,182,187,188,189,192,194,196,203,204,209,212,214,216,236,239,240,241,243,257,258,259,260,272,277,286,294,295,296,314,316,320,325,342,343,345,349,362,364,367,373,374,376,377,381,387,390,403,443],Used:[22,138,173,176,182,194,225,239,254,273,280,281,284,294,295,307,316,334,362,364,375,376,390,398],Useful:[28,83,155],Uses:[182,194,214,246,269,314,362,376,381,443],Using:[1,4,19,28,33,35,39,47,58,61,71,77,80,87,100,101,107,111,114,115,116,117,119,123,125,128,130,131,133,138,161,165,166,199,243,257,265,272,296,334,361,374,443],VCS:2,VHS:225,VPS:155,WILL:[107,147],WIS:100,WITH:[146,225],Was:187,Will:[20,32,83,109,121,163,168,187,209,212,221,223,241,243,284,296,299,301,312,314,323,324,364,374,376,377,378,385,390,443],With:[13,16,18,36,53,57,79,82,83,87,99,108,111,118,120,121,122,123,126,130,145,146,157,165,168,201,204,209,243,282,301,362,367,377],Yes:[22,225,372,374,443],__1:383,__2:383,_________________:48,_________________________:28,______________________________:28,________________________________:28,_________________________________:48,______________________________________:374,______________________________________________:28,_______________________________________________:28,____________________________________________________:28,_________________________________________________________:106,__________________________________________________________:106,__all__:[398,400,402,403],__defaultclasspath__:364,__dict__:314,__doc__:[22,31,177,190,192,193,288,370,374],__example__:6,__ge:111,__ge__:6,__getitem__:367,__gt:111,__iendswith:111,__in:111,__init_:376,__init__:[4,6,13,45,48,62,81,86,112,113,114,117,132,175,176,177,198,201,203,204,209,221,229,241,243,253,272,280,281,282,286,292,295,296,300,305,306,308,309,311,312,314,316,317,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,341,342,343,345,352,353,355,357,358,359,362,364,365,367,369,372,373,374,375,376,377,383,384,385,386,390,398,399,403,406,421,424],__istartswith:111,__iter__:13,__le:111,__lt:111,__multimatch_command:191,__noinput_command:[175,191,204,372,374,375],__nomatch_command:[191,204,216,271,372,374,375],__packed_dbobj__:50,__pycache__:113,__settingsclasspath__:364,__str__:438,__unloggedin_look_command:[26,194,214],_action_thre:28,_action_two:28,_all_:175,_always_:[209,377],_and_:[377,390],_asynctest:340,_attrs_to_sync:354,_attrtyp:362,_by_tag:19,_cach:364,_cached_cmdset:176,_call_or_get:204,_callable_no:374,_callable_y:374,_callback:[19,309],_char_index:367,_character_dbref:205,_check_password:28,_check_usernam:28,_clean_nam:202,_clean_str:367,_cleanup_charact:129,_code_index:367,_compress_cont:202,_copi:[182,296],_create_charact:141,_creation:48,_dashlin:30,_data:375,_default:[28,374],_defend:28,_differ:367,_errorcmdset:176,_event:235,_every_:209,_evmenu:374,_file:383,_flag:300,_footer:22,_format_diff_text_and_opt:301,_funcnam:390,_get_a_random_goblin_nam:41,_get_db_hold:[353,364],_get_top:102,_getinput:374,_gettabl:319,_guaranteed_:377,_helper:377,_http11clientfactori:316,_init:0,_init_charact:129,_is_fight:94,_is_in_mage_guild:28,_ital:85,_italic_:148,_last_puppet:[50,403],_linklen:282,_loadfunc:372,_magicrecip:210,_maptest:279,_menutre:[28,92,374],_mockobj:252,_monitor:319,_monitor_callback:34,_nicklist_cal:169,_npage:375,_oob_at_:381,_option:28,_os:201,_overrid:[51,73],_page_formatt:375,_pagin:375,_parsedfunc:377,_pending_request:359,_permission_hierarchi:291,_ping_cal:169,_playabel_charact:50,_playable_charact:[102,141,403],_postsav:381,_power_cal:30,_prefix:243,_process_cal:30,_quell:291,_quitfunc:372,_raw_str:367,_reactor_stop:[331,352],_read:253,_recog_obj2recog:243,_recog_obj2regex:243,_recog_ref2recog:243,_regex:243,_repeat:319,_safe_contents_upd:295,_savefunc:372,_saver:[13,371],_saverdict:[13,253,371],_saverlist:[13,371],_saverset:371,_sdesc:243,_select:28,_sensitive_:422,_session:374,_set:111,_set_attribut:28,_set_nam:28,_should:443,_some_other_monitor_callback:34,_start_delai:309,_static:85,_step:282,_stop_:390,_stop_serv:331,_swordsmithingbaserecip:210,_templat:85,_test:[30,173],_to_evt:375,_traithandlerbas:252,_transit_:284,_typeclass:53,_uptim:30,_validate_fieldnam:100,_weight:282,_yes_no_quest:374,a2enmod:145,a8oc3d5b:157,a_off:203,aaaaaargh:116,aardwolf:68,abandon:216,abat:124,abbrevi:[60,64,182,210,239,377],abcd:188,abid:139,abil:[8,13,20,22,29,33,41,51,54,69,83,98,99,100,109,113,116,120,122,123,127,130,142,155,157,242,243,250,256,257,258,259,260,296,307,314,362,434],abl:[0,2,3,5,7,10,11,13,14,15,18,19,20,22,28,29,30,36,37,41,42,46,50,52,53,57,67,74,75,77,79,81,82,83,85,87,88,90,91,93,94,99,100,102,104,106,107,109,115,116,120,121,124,126,127,129,130,132,138,141,142,145,146,149,151,152,154,155,157,158,159,176,179,180,182,183,187,189,196,198,204,212,218,227,236,243,249,253,256,257,258,259,260,277,281,282,362,364,371,386,390,431,443],abort:[19,22,28,29,37,83,92,118,126,168,177,182,196,209,216,250,271,275,282,296,299,307,374,375,377,390,443],about:[0,2,3,5,6,8,11,13,14,15,16,17,20,22,26,28,30,31,35,38,41,46,49,50,53,54,55,56,60,65,67,69,70,73,75,76,77,80,84,85,87,88,89,91,92,95,96,97,99,102,103,104,106,107,108,109,110,111,112,113,114,116,119,120,121,124,125,126,127,128,129,130,131,132,133,134,136,137,139,142,143,144,146,147,148,149,152,154,155,157,158,159,161,163,168,182,189,192,201,203,204,206,209,213,216,218,219,251,258,259,260,270,271,279,281,288,296,314,316,319,328,330,332,341,343,345,346,353,355,363,365,367,375,381,390,399,406,413,443],abov:[0,2,7,8,11,12,13,14,15,19,20,22,27,28,30,31,32,33,34,41,42,44,46,48,49,51,52,53,54,55,58,62,64,67,73,74,76,79,80,81,82,83,84,85,88,90,91,93,94,95,97,98,99,100,101,102,104,106,107,109,111,113,114,115,116,117,118,119,122,126,129,130,136,138,140,141,145,146,147,149,151,155,157,163,175,176,182,204,209,213,223,225,227,236,241,243,250,251,253,254,256,258,259,260,275,281,292,294,296,319,374,377,385,399],above_str:30,abruptli:253,absolut:[19,53,85,98,101,103,107,144,206,212,213,226,373,378,390],absorb:32,abspath:390,abstractus:171,abus:[158,443],academi:144,acccount:24,accecss:377,accept:[11,13,15,18,19,20,28,30,32,33,41,47,48,68,77,83,84,100,115,116,122,123,141,142,146,148,155,168,173,174,192,203,213,225,230,233,241,242,243,250,269,271,281,282,284,296,314,319,332,358,359,363,368,374,377,386,390],accept_callback:[230,232],access:[0,8,9,11,13,14,15,18,19,20,22,26,28,29,30,31,32,33,34,35,36,39,41,42,44,45,46,48,49,51,52,53,55,57,62,63,65,67,69,73,75,77,78,79,81,82,83,85,86,88,90,91,92,94,96,98,99,100,102,103,106,107,108,110,111,112,113,114,115,116,119,120,122,123,126,127,129,130,138,139,141,142,145,146,149,151,152,155,157,158,159,162,168,171,175,176,177,179,180,182,187,188,189,190,192,194,196,197,198,201,204,209,211,216,224,227,229,231,240,242,243,252,253,256,257,258,259,260,271,272,284,286,288,289,290,291,292,295,296,299,300,301,304,306,308,309,311,314,323,324,353,355,361,362,364,365,368,369,370,377,383,389,390,394,399,400,406,411,413,416,430,436,438,441,443],access_kei:201,access_key_nam:201,access_obj:[291,362],access_object:33,access_opt:391,access_token_kei:[137,152],access_token_secret:[137,152],access_typ:[37,168,177,182,196,198,286,288,291,292,296,362,364,435,436,441,443],accessed_obj:[33,92,126,138,291,292],accessing_obj:[13,33,92,126,138,168,196,198,286,288,291,292,296,362,364],accessing_object:[13,33,291],accessor:[171,198,288,295,304,362,364,365,382],accessori:149,accident:[16,20,58,83,85,123,130,180,182,210,353],accommod:90,accomod:376,accompani:130,accomplish:[55,81,87,92,121,123,126,377],accord:[20,22,82,111,123,129,139,204,206,223,241,242,257,281,308,367,368,377],accordingli:[7,81,100,155,272],account1:431,account2:431,account:[5,8,11,13,15,17,18,20,22,25,26,27,28,29,30,32,33,35,36,37,39,40,41,42,44,45,46,48,49,53,55,57,60,63,65,69,72,73,75,76,77,81,82,84,85,86,90,91,92,98,99,101,102,104,107,108,109,112,113,114,115,118,121,130,137,139,141,142,147,150,152,155,157,159,163,165,166,172,173,174,175,176,177,178,180,182,183,184,187,188,189,190,192,193,194,196,197,198,204,205,206,212,214,216,217,224,225,227,229,230,232,236,243,246,249,256,258,259,260,265,268,269,270,271,273,284,286,288,291,292,294,295,296,298,300,301,302,304,314,318,319,334,345,346,353,354,355,362,364,365,367,370,374,375,377,384,385,387,388,390,391,396,397,403,410,411,413,416,421,422,429,430,431,433,436,438,440,443],account_cal:[179,187,190,236],account_count:355,account_id:[141,296],account_mod:182,account_nam:98,account_search:[170,243,296],account_subscription_set:171,account_typeclass:[388,431],accountadmin:[50,398],accountattributeinlin:398,accountchangeform:398,accountcmdset:[12,20,26,77,99,100,101,115,179,183,205,236],accountcreateview:434,accountcreationform:398,accountdb:[48,86,141,165,168,171,177,196,286,288,361,364,384,391,398,399,406,410],accountdb_db_attribut:398,accountdb_db_tag:398,accountdb_set:[362,365],accountdbfilterset:[410,416],accountdbmanag:[170,171],accountdbpasswordcheck:334,accountdbviewset:416,accountform:[430,434],accountid:141,accountlist:100,accountlistseri:[413,416],accountmanag:[168,170],accountmixin:434,accountnam:[100,182,194,197,214],accountseri:[413,416],accounttaginlin:398,accross:83,accru:168,acct:118,accur:[77,177,221,229,253,257,260,280,286,301,308,312,314,316,317,325,334,335,337,339,342,343,362,367,385,386,424],accuraci:[80,107,122,257,258,259],accus:127,accustom:36,acept:225,achiev:[19,22,60,75,77,85,99,111,120,124,139,219,259,314],ack:29,acl:[201,202],acquaint:[99,124],acquir:369,across:[28,30,41,42,44,48,56,62,67,69,83,98,107,116,121,123,151,168,175,176,206,225,242,271,282,284,287,296,307,309,311,323,324,338,355,375,376,377],act:[5,12,14,18,20,28,42,44,52,61,81,82,83,84,89,94,98,100,111,116,121,123,130,145,146,163,165,168,182,187,198,218,219,225,253,254,276,281,282,283,284,311,323,324,343,362,365,369,374],action1:129,action2:129,action:[3,5,42,49,50,58,60,68,75,77,78,80,83,87,88,94,96,99,101,107,113,114,116,121,126,127,129,130,135,136,141,155,168,169,177,187,188,192,196,203,216,218,221,223,225,243,256,257,258,259,260,265,268,272,282,286,287,288,300,304,305,326,345,346,347,357,364,374,375,381,398,411,414,415,416,443],action_count:129,action_nam:[256,257,258,259,260],action_preposit:218,actiondict:129,actions_per_turn:[256,257,259,260],activ:[0,2,9,11,14,19,20,22,37,39,42,44,49,55,60,63,64,65,73,76,85,88,90,93,101,104,108,121,134,144,149,150,153,154,155,156,162,163,168,173,176,180,182,192,194,196,230,247,265,269,273,295,296,299,308,319,326,327,328,329,330,334,336,337,338,345,355,357,362,363,374,375,376,377,390,443],activest:389,actor:[30,260,296,377,393,443],actor_stance_cal:443,actual:[0,2,3,5,6,7,8,9,12,13,14,15,18,19,28,30,31,33,35,36,37,39,41,44,46,47,50,51,52,53,54,57,58,60,62,65,67,68,70,77,80,81,82,83,88,91,94,97,100,102,104,106,107,108,109,110,111,112,113,115,116,117,118,120,121,122,123,124,126,127,129,130,131,134,138,139,141,142,144,145,149,152,155,157,159,168,173,177,179,182,187,188,190,192,193,194,196,198,201,203,204,206,209,210,216,221,224,225,235,239,240,242,243,250,251,252,254,256,257,258,259,260,265,270,271,273,278,279,281,282,283,286,288,291,292,295,296,301,334,337,343,345,351,353,354,355,359,360,362,364,367,369,372,374,381,384,385,386,390,408,441,443],actual_return:8,ada:31,adapt:[62,75,90,91,102,122,127,141,209],add:[0,2,3,5,7,8,9,10,11,12,13,14,15,16,17,18,20,22,25,26,27,28,30,31,32,33,34,35,36,37,39,41,42,44,46,47,48,49,50,51,54,56,57,60,62,63,64,67,68,70,73,74,75,76,77,78,79,80,81,82,83,84,85,87,88,91,94,95,96,97,99,100,101,102,103,104,105,106,107,108,109,111,113,114,115,116,117,118,119,121,122,123,124,126,127,129,130,135,136,137,138,140,141,142,143,144,145,147,148,150,151,152,155,156,157,159,165,168,171,175,176,182,187,188,189,191,193,196,198,203,204,205,206,207,209,212,213,214,216,218,223,224,229,230,232,233,235,236,239,240,242,243,246,249,250,252,253,254,256,257,258,259,260,262,265,268,269,270,271,272,275,276,277,278,281,282,283,291,292,295,296,300,301,304,305,306,307,308,309,314,319,320,324,327,328,330,332,336,343,345,346,348,356,362,365,368,372,373,374,375,376,377,381,383,385,386,398,403,410,416,438,441,443],add_:376,add_act:129,add_alia:187,add_argu:272,add_callback:[230,232],add_charact:129,add_choic:[204,443],add_choice_:204,add_choice_edit:[77,204],add_choice_quit:[77,204],add_collumn:177,add_column:[100,376],add_condit:258,add_default:[20,91,106,126,138,176],add_dist:260,add_ev:232,add_fieldset:[398,403],add_form:[398,403],add_head:376,add_languag:242,add_map:283,add_msg_bord:223,add_row:[100,105,177,376],add_user_channel_alia:[18,196],add_view:[398,400,403],add_xp:127,addcallback:[22,296],addclass:[51,165,166,396,417,443],addcom:[26,100,108,187],added:[2,3,7,9,11,17,19,20,22,31,33,41,42,46,49,62,67,68,69,75,77,79,82,83,85,90,91,92,99,100,102,107,108,111,113,114,115,116,117,122,126,127,129,130,135,138,140,141,143,147,150,154,157,163,168,173,175,176,177,187,191,192,194,203,204,206,207,209,210,213,226,229,232,235,242,243,253,256,257,258,259,260,265,273,277,281,282,286,292,296,299,301,306,308,319,353,357,362,365,368,374,375,376,383,390,416,423,434,438,442],addendum:84,adding:[2,5,6,7,9,11,13,15,17,19,20,25,26,28,33,41,46,47,48,51,53,60,62,64,67,69,75,76,77,79,80,83,85,91,94,99,100,101,102,103,104,106,107,111,115,116,117,123,129,130,132,138,139,141,159,175,176,180,182,189,204,209,212,225,227,229,232,236,242,243,253,254,256,257,258,259,271,272,275,296,300,301,306,314,345,362,370,376,390,399,406,443],addingservermxp:329,addit:[2,20,27,30,42,50,53,60,68,77,80,81,83,84,85,90,92,100,101,102,105,107,142,145,155,158,159,168,169,176,177,189,196,204,207,229,230,232,242,246,252,254,260,272,282,284,292,296,299,308,325,353,362,364,374,430,443],addition:[82,92,260],additionalcmdset:20,addpart:240,addquot:390,addr:[311,324,325,326,370],address:[11,22,36,44,55,58,62,73,76,81,107,132,146,151,155,158,168,170,180,196,214,226,296,311,324,326,334,354,357,390,391,443],address_and_port:334,addressing_styl:201,addresult:240,addscript:42,addservic:62,adjac:[83,260,269],adject:[6,58,126,377,394],adjoin:243,adjust:[22,75,84,122,139,141,149,201,227,308,374,376,377],admin:[0,12,13,16,18,22,33,39,52,53,55,57,67,76,81,91,100,102,106,113,114,121,123,130,138,141,142,153,156,163,165,166,171,172,177,178,182,187,192,194,196,214,216,223,269,286,288,292,295,296,323,324,364,370,386,396,421,443],admin_sit:[398,399,400,402,403,404,405,406],admin_wrapp:401,adminconfig:421,administr:[2,22,33,39,54,72,85,87,88,100,146,149,158,311,323,324,443],adminportal2serv:323,adminserver2port:323,adminsit:[50,165,166,396,420,443],adminstr:311,admintest:431,admit:96,admittedli:[83,120],adopt:[0,77,79,88,91,99,123,198,338,393],advanc:[5,14,20,22,28,30,41,44,48,53,54,55,62,67,69,77,78,82,87,88,93,96,97,100,103,111,116,119,123,130,144,159,182,190,224,241,243,253,256,257,258,259,260,265,329,368,372,373,374,376,443],advantag:[2,15,16,28,31,41,58,80,83,87,93,96,98,100,101,102,123,126,127,129,130,132,136,141,155,158,159,203,204,246,254,256,257,258,259,260,365,368],advent:205,adventur:[78,82,113,120,123],advic:144,advis:[75,77,92],aesthet:27,affair:369,affect:[5,8,9,11,13,14,15,20,22,39,42,44,46,50,57,60,83,92,101,104,116,121,123,126,127,129,139,162,168,175,192,207,209,221,235,242,249,258,265,281,296,300,364,368,376,384],affili:308,affliat:308,afford:[44,106],afraid:155,after:[0,2,8,9,10,11,13,15,16,19,20,22,27,28,33,42,45,52,53,54,60,64,65,67,75,76,77,78,79,80,81,83,85,87,91,92,93,94,95,96,97,100,106,107,108,109,113,114,115,116,117,120,121,123,124,129,130,134,135,138,139,141,144,145,149,151,155,157,158,168,175,176,177,178,179,182,189,190,192,193,194,196,201,203,204,206,209,210,211,212,213,214,216,221,222,224,225,227,232,240,242,243,252,253,254,256,257,258,259,260,265,266,269,270,271,272,273,279,282,286,295,296,301,303,305,307,308,314,336,337,340,345,352,353,354,355,357,359,362,367,368,369,372,374,375,381,385,388,389,390,411,414,434,436,441],afterlif:123,afternoon:224,afterward:[11,67,83,94,102,107,114,118,120,204],again:[3,7,9,11,13,14,15,18,22,28,35,42,44,52,55,60,67,75,77,81,82,83,88,91,93,94,96,98,99,100,101,102,104,106,107,108,109,112,114,115,116,117,119,121,123,126,127,129,130,138,139,141,146,148,149,151,155,156,157,162,163,169,176,187,193,212,232,241,256,259,260,265,273,307,314,331,334,337,357,367,368,371,386,388],againnneven:193,against:[8,13,20,22,48,64,65,84,91,99,100,111,120,122,129,155,158,168,174,175,210,243,256,257,258,259,260,292,294,296,300,301,332,357,362,364,365,387,390],age:[225,272,430],agenc:158,agent:2,agenta:[60,367],ages:225,aggreg:144,aggress:[13,15,120,154,269,364,443],aggressive_pac:269,agi:[8,13,253],agil:13,agnost:[84,88],ago:[92,114,157,390],agre:[70,123,124,127,203,221],agree:203,ahead:[2,15,69,77,81,115,138,147,155,336],aid:[70,119,189,190,203,359],aim:[1,67,69,87,100,103,106,116,121,122,124,127,139,155,300],ain:80,ainnev:[111,127,253,443],air:[82,91,109,117],airport:118,ajax:[51,62,155,343,354],ajaxwebcli:343,ajaxwebclientsess:343,aka:[5,13,76,123,240,390],akin:114,alarm:[105,109],alert:[18,196,296],alexandrian:144,algebra:81,algorith:242,algorithm:[31,83,123,281,282,294,390],alia:[8,11,12,18,20,22,26,30,36,37,42,44,46,48,50,72,76,77,82,83,91,97,99,100,108,109,116,118,149,155,171,174,177,179,182,187,188,189,190,193,196,224,229,243,249,253,266,269,271,273,275,282,291,294,295,296,301,304,309,319,345,363,364,365,370,377,386,387,388,394,398,399,400,402,403,404,406,410,412,413,414,416,430,434,435,436,441,443],alias1:[182,224],alias2:[182,224],alias3:224,alias:[11,12,14,18,19,20,22,28,30,31,32,36,37,41,50,58,72,74,77,82,91,92,94,97,100,104,105,106,108,109,126,129,130,168,175,177,179,180,181,182,187,188,189,190,191,192,193,194,196,197,203,204,205,206,209,210,213,214,216,218,224,225,226,230,236,239,240,243,249,250,251,254,256,257,258,259,260,265,269,270,271,272,273,275,282,286,287,288,289,294,295,296,301,345,363,364,365,370,372,374,375,383,387,394,410,413,443],aliaschan:[26,187],aliasdb:168,aliasfilt:410,aliashandl:[365,406,413],aliasnam:301,aliasstr:370,align:[30,41,100,227,367,376,377,390],alist:6,aliv:[87,269],alkarouri:389,all:[0,2,5,6,7,8,9,11,12,13,14,15,16,17,18,19,20,22,25,27,28,30,31,32,33,35,36,37,39,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,62,64,65,67,68,69,70,71,72,73,74,75,76,77,79,80,81,82,83,84,85,86,87,88,89,91,93,94,95,96,97,98,99,100,101,104,105,106,107,108,109,110,111,112,113,115,116,117,118,119,120,121,122,124,126,127,128,129,130,131,132,134,135,136,138,139,140,141,142,143,144,145,146,148,149,153,154,155,156,157,158,159,162,163,168,169,170,172,173,174,175,176,177,178,179,180,181,182,183,184,187,188,189,190,191,192,193,194,196,197,198,203,204,205,206,209,210,213,214,216,218,219,221,222,224,225,226,229,232,236,239,240,241,242,243,247,249,250,251,252,253,254,256,257,258,259,260,264,265,268,269,270,271,272,273,275,281,282,283,284,286,287,288,289,290,291,292,293,294,295,296,299,300,301,303,305,306,307,308,309,310,313,314,318,319,320,323,325,326,328,330,331,332,333,334,337,338,341,342,343,345,346,352,353,354,355,357,359,360,361,362,363,364,365,367,368,369,370,371,372,373,374,375,376,377,381,383,385,387,389,390,391,393,395,398,399,400,402,403,404,406,407,408,416,419,421,423,430,436,438,439,441,442,443],all_alias:46,all_attr:364,all_book:118,all_cannon:111,all_cloth:13,all_connected_account:355,all_displai:309,all_famili:111,all_fantasy_book:118,all_flow:118,all_from_modul:390,all_map:[83,283],all_opt:385,all_receiv:296,all_room:[14,111],all_ros:118,all_script:42,all_scripts_on_obj:42,all_sessions_portal_sync:355,all_to_categori:287,all_weapon:111,allcom:[26,108,187],allerror:[314,323],allevi:[8,13,69,359],allheadersreceiv:359,alli:260,alloc:155,allow:[0,2,3,6,7,11,12,13,14,15,16,19,20,22,28,30,31,32,33,35,36,37,39,40,41,46,48,49,50,51,52,53,54,55,56,57,58,64,67,69,70,71,72,73,75,76,77,78,79,80,81,82,83,85,86,87,88,90,91,94,95,96,97,99,100,103,104,106,107,109,111,113,114,115,116,117,118,121,122,126,127,129,130,132,138,139,141,142,143,145,146,148,149,150,151,152,153,154,155,156,157,158,159,168,169,171,173,175,176,177,179,180,181,182,187,189,190,192,193,196,197,198,203,204,206,209,211,212,213,216,218,221,223,224,225,226,232,239,241,242,243,252,253,254,256,257,258,259,260,265,269,270,271,272,273,281,282,284,286,288,289,291,292,296,300,301,305,308,309,314,318,319,321,325,327,328,329,330,337,338,339,341,346,352,353,355,357,358,362,364,365,367,368,370,372,374,375,376,377,378,381,384,385,386,388,390,401,403,410,411,416,430,435,438,443],allow_abort:374,allow_dupl:175,allow_extra_properti:253,allow_nan:343,allow_quit:374,allow_reus:209,allowed_attr:100,allowed_fieldnam:100,allowed_host:[155,158],allowed_propnam:130,allowedmethod:343,allowext:359,almost:[13,22,31,47,48,50,57,116,117,204,206,316,323,361],alon:[8,14,28,33,36,67,78,81,94,98,100,116,124,127,129,175,189,284,309,319,345,368,370,376,377,406],alone_suffix:350,along:[5,22,28,32,42,45,55,60,68,83,88,89,107,111,112,116,120,121,124,126,128,138,143,159,168,179,203,213,242,246,253,254,259,282,292,296,343,361,416],alongsid:[151,225,283],alonw:304,alpha:[148,155,367,443],alphabet:[16,70,82,367,442],alreadi:[0,7,8,9,11,12,13,14,16,19,20,22,27,28,30,31,33,37,42,44,46,48,51,53,62,68,73,75,76,77,80,81,83,85,88,91,92,94,98,99,100,102,104,105,106,107,108,109,110,113,114,115,116,117,118,119,121,124,126,127,129,130,134,135,136,137,138,141,142,148,149,153,157,158,163,168,175,176,179,182,187,190,192,193,196,197,203,205,206,209,210,218,223,241,242,243,253,256,257,258,259,260,269,270,273,281,282,284,292,296,300,301,314,323,331,332,334,339,342,347,352,353,355,362,365,367,370,375,383,390,411,422],alredi:62,alright:203,also:[0,1,2,3,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,25,27,28,30,31,32,33,34,36,37,39,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,60,62,63,64,65,67,68,69,70,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,91,92,93,94,95,96,97,98,99,100,101,102,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,124,126,127,128,129,130,131,132,133,134,135,136,138,139,140,141,142,144,145,146,147,148,149,150,151,153,154,155,156,157,158,159,162,163,168,170,171,174,175,176,177,179,180,181,182,184,187,188,189,190,192,193,196,197,198,203,204,205,206,209,210,213,218,219,223,224,225,227,232,236,239,241,242,243,250,253,254,258,259,260,265,269,270,271,273,275,281,282,284,286,290,291,292,294,295,296,300,301,302,304,307,309,310,314,318,319,323,325,332,334,337,338,341,342,345,346,355,359,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,381,387,390,410,436,438,439,441,443],alt:367,alter:[51,75,82,88,90,146,362],altern:[11,13,18,22,28,31,36,42,46,50,60,64,74,78,79,82,85,88,94,99,104,108,119,126,136,141,146,149,153,155,161,187,190,196,240,243,253,260,265,291,292,294,332,367,370,390,443],although:[3,77,94,96,117,149,179,204,205,213,359,386,390],althougn:80,altogeth:[27,60,83,158],alwai:[4,8,9,11,12,13,14,15,18,19,20,22,28,30,31,32,33,35,37,39,41,42,44,45,46,47,48,51,55,58,60,67,68,73,75,78,79,81,83,84,85,88,90,91,92,95,96,99,100,101,102,106,107,108,109,114,115,116,117,118,119,121,123,126,127,130,138,139,142,145,146,149,153,155,168,175,176,177,179,181,182,187,189,190,193,196,197,198,209,211,216,221,236,242,243,249,253,265,281,282,284,289,291,292,294,295,296,300,301,309,314,316,319,323,331,334,337,338,342,343,346,353,355,360,362,363,364,365,367,370,377,381,386,387,390,391,411,423,439],always_pag:375,always_return:314,amaz:154,amazon:[144,155,201],ambianc:69,ambigu:[83,177,226,282,296,364],ambiti:[69,72],amend:11,amfl:15,ammo:91,among:[2,8,12,25,37,82,88,101,118,124,130,144,159,188,206,270,292,294,376,387],amor:233,amount:[18,42,56,60,84,121,122,127,130,158,192,210,256,257,258,259,260,296,355,372,443],amp:[40,44,62,65,165,166,310,311,314,322,324,332,340,352,355,443],amp_client:[165,166,310,443],amp_maxlen:340,amp_port:155,amp_serv:[165,166,310,322,443],ampclientfactori:311,ampersand:69,amphack:323,ampl:116,amplauncherprotocol:314,ampmulticonnectionprotocol:[311,323,324],ampprotocol:311,ampserverclientprotocol:311,ampserverfactori:324,ampserverprotocol:324,amsterdam:155,amus:108,anaconda:76,analog:[65,81],analys:28,analysi:247,analyz:[16,22,28,33,78,79,123,136,173,182,209,243,296,300,301,305,314,375,390,393,443],anchor:[177,196,260,286,288,364],anchor_obj:260,ancient:60,andr:147,android:[161,443],anew:[82,115,116,149,196,314],angelica:122,angl:[72,83,218],angri:31,angular:192,ani:[2,3,6,8,9,11,12,13,15,16,18,19,20,22,27,28,30,31,32,33,34,35,36,37,39,41,42,44,45,46,47,48,49,51,54,55,56,57,60,62,64,65,67,68,72,73,74,75,77,78,79,81,83,84,85,88,89,91,92,95,96,97,98,99,100,104,105,106,107,108,109,110,111,113,114,115,116,117,118,120,122,123,124,125,126,127,129,130,134,135,136,138,139,141,142,144,145,146,147,148,149,150,153,155,156,157,158,159,162,168,171,173,174,175,176,177,179,180,182,188,189,192,193,196,197,198,203,204,205,206,209,214,216,218,221,223,224,225,226,227,231,236,239,241,242,243,246,247,250,253,256,257,258,259,260,262,264,265,269,271,272,273,281,282,284,286,289,291,292,294,296,299,300,301,304,305,307,308,309,311,312,314,316,318,319,323,324,326,332,333,334,337,338,342,343,345,353,354,355,359,362,363,364,365,367,368,369,371,372,373,374,375,376,377,383,384,385,386,387,389,390,398,408,415,416,421,434,435,436,438,439,440,441,443],anim:[19,29,52,210],anna:[58,100,130,135,136,149,153,182],anna_object:58,annoi:[55,106,107,108,117,123],annot:[144,443],announc:[9,84,92,129,130,144,180,187,192,196,256,257,258,259,260,296],announce_al:[332,355],announce_move_from:[37,92,296],announce_move_to:[37,92,296],annoy:168,annoyinguser123:18,anonym:[63,90,102,243],anonymous_add:243,anoth:[2,3,5,6,7,8,11,13,14,15,20,22,28,31,33,37,41,44,46,49,51,54,56,58,60,69,70,74,75,77,78,79,80,81,82,83,88,91,94,96,98,99,100,101,102,107,108,109,111,113,116,117,119,122,123,126,129,130,134,138,140,143,145,149,151,155,156,168,175,176,179,182,187,188,193,196,203,204,206,209,218,221,225,231,236,241,243,254,256,257,258,259,260,270,273,275,280,282,286,288,289,296,299,355,362,364,368,372,374,375,377,390,416,443],another_batch_fil:368,another_nod:374,another_script:42,anotherusernam:49,ansi:[32,51,71,86,104,116,147,165,166,179,207,227,239,319,326,334,337,342,343,366,376,377,389,390,443],ansi_escap:367,ansi_map:367,ansi_map_dict:367,ansi_pars:367,ansi_r:367,ansi_regex:367,ansi_sub:367,ansi_xterm256_bright_bg_map:367,ansi_xterm256_bright_bg_map_dict:367,ansimatch:367,ansimeta:367,ansipars:367,ansistr:[165,367,376],ansitextwrapp:376,answer:[0,8,13,22,28,75,80,91,92,102,116,121,123,124,126,127,149,151,158,312,374],anti:149,anticip:83,anul:145,anvil:[209,210],anwer:97,any_options_her:85,anybodi:158,anymor:[8,90,126,205,232,240,241,273,374,386],anyon:[3,33,55,64,90,91,92,94,100,106,123,129,130,136,148,155],anyth:[0,3,7,8,9,11,13,14,18,20,22,28,33,36,37,42,48,50,51,53,56,57,62,65,73,75,77,80,81,82,83,88,94,98,102,105,106,107,108,109,113,114,116,117,118,121,123,124,126,129,130,134,136,138,141,146,149,155,157,159,162,175,177,191,204,243,253,254,256,257,258,259,260,281,292,326,360,362,368,374,377],anytim:123,anywai:[15,18,28,60,69,74,75,83,87,90,107,109,126,154,203,205,214,281],anywher:[22,28,42,48,83,88,114,116,119,126,142,281,372],apach:[146,155,158,161,359,443],apache2:145,apache_wsgi:145,apart:[8,12,13,19,33,48,87,104,139,142,149,157,159,260,275],api:[0,3,13,14,16,18,19,24,29,31,35,37,41,42,44,48,52,58,78,79,82,114,118,120,127,137,141,152,165,166,168,181,192,194,198,209,214,286,353,362,364,368,369,375,396,442,443],api_kei:152,api_secret:152,apicli:414,apirootrout:412,apirootview:412,apocalyps:123,apostroph:16,app:[33,53,62,64,67,73,90,134,142,152,421,443],app_id:141,app_modul:421,app_nam:[102,421],app_ord:421,appar:[100,139],apparit:271,appeal:[28,60],appear:[0,7,11,18,19,28,31,33,42,50,51,53,54,59,60,63,76,77,79,82,83,85,91,92,95,105,108,111,116,120,121,130,139,149,150,153,155,157,159,165,179,189,206,210,232,243,249,273,282,296,338,339,364,376,383,406,443],appearance_templ:296,append:[5,6,8,19,20,27,33,37,62,68,77,81,92,96,102,106,107,111,129,130,141,151,155,177,182,189,206,236,243,292,294,347,368,383,390],appendto:51,appform:141,appl:[203,218,296],appli:[2,7,9,14,20,22,30,31,33,47,48,53,56,65,75,76,77,82,83,84,104,115,123,124,128,138,139,141,145,146,168,173,175,190,207,216,218,252,253,256,257,258,259,260,273,281,282,292,296,300,301,304,309,355,362,363,364,367,368,373,376,378,387,390],applic:[9,33,46,49,62,67,73,112,134,141,142,144,145,149,157,158,168,201,209,218,224,225,260,314,317,327,331,352,353,359,427],applicationdatareceiv:337,applied_d:141,apply_damag:[256,257,258,259,260],apply_turn_condit:258,appnam:[13,33],appreci:[42,77,84,89,143,381],approach:[7,47,77,92,96,98,107,123,141,204,260,282],appropri:[2,7,20,22,58,72,76,107,138,141,145,146,152,168,180,218,227,314,353,384,386,390,419],approrpri:62,approv:[141,142],approxim:[192,390],apr:64,april:101,apt:[11,145,149,151,154,155,158],arbitrari:[6,13,14,19,30,33,48,51,57,74,80,82,83,88,114,157,168,196,216,224,253,254,260,264,271,296,301,307,312,323,343,357,362,371,383,386,390,443],arcan:72,arcanist:123,arch:61,archer:301,archetyp:123,architectur:[33,124,301],archiv:[113,144,158],archwizard:301,area:[8,12,77,78,81,83,100,120,121,124,135,144,147,269,273,275,281,284,291,373,374,376,390,443],aren:[8,11,75,90,94,96,102,134,141,158,168,206,225,232,240,258,383,386,393],arg1:[33,177,190,193,196,216,362],arg2:[177,190,193,216,362],arg:[3,22,28,30,31,32,33,35,41,47,51,54,62,65,68,71,72,77,85,91,92,94,95,96,100,104,106,108,113,115,126,127,129,130,138,140,152,168,169,170,171,174,177,182,190,191,192,193,196,197,198,201,203,206,212,216,218,219,224,226,229,232,240,241,242,243,249,250,251,253,254,256,257,258,259,260,262,264,265,269,270,271,272,273,277,282,283,284,287,288,289,291,292,294,295,296,299,300,301,303,304,307,308,309,311,314,319,320,321,323,324,325,326,331,332,334,335,337,338,339,342,343,347,353,355,357,359,362,363,364,365,367,374,376,377,378,380,381,383,386,388,390,391,398,399,403,406,412,413,430,436,441,443],arg_regex:[97,177,182,188,189,192,193,194,206,209,216,243,372,374,443],arglist:190,argn:362,argpars:272,argtyp:390,argu:13,arguabl:[83,116,122],argument:[0,3,5,8,13,15,18,19,20,22,27,29,30,32,33,36,37,41,42,47,48,54,55,58,62,65,68,72,77,80,82,90,91,92,94,99,100,101,102,104,106,108,109,110,111,117,126,130,132,142,146,168,169,173,174,176,177,179,180,182,187,188,189,190,192,193,196,197,201,204,206,209,212,216,218,221,223,224,225,226,229,231,232,241,242,243,247,249,256,257,258,259,260,264,271,272,275,283,284,292,294,296,300,301,305,307,308,309,312,314,319,323,325,326,332,333,334,337,338,342,343,345,346,353,354,355,357,358,362,363,364,365,367,368,370,372,373,374,375,376,377,381,384,386,387,390,416,439,443],argumentpars:272,argumnet:376,aribtrarili:390,aris:158,arithmet:[13,30,253],arm:[0,22,240,443],armchair:126,armi:106,armor:[13,94,105,122,128,206,257],armour:94,armpuzzl:240,armscii:[16,70],arnold:36,around:[3,14,15,16,20,30,33,37,41,52,53,54,60,70,72,75,79,81,82,83,85,87,88,89,90,91,94,96,100,102,106,107,108,111,113,114,115,116,117,118,121,122,123,126,127,129,130,134,135,138,144,146,149,152,155,182,190,206,210,212,231,240,243,260,265,269,270,271,273,279,282,296,367,368,376,383,443],arrai:[49,68,107,282,338,390],arrang:77,arrayclos:[68,338],arrayopen:[68,338],arrest:83,arriv:[44,65,75,92,94,127,182,219,275,326],arrow:[3,51,83,116],art:[60,373],articl:[8,11,16,70,90,91,96,99,144,382],article_set:382,artifact:376,artifici:[123,127],artsi:124,arx:[78,144,161,443],arxcod:[144,161,443],as_view:[53,177,196,286,288,364],ascii:[16,70,76,82,83,168,194,281,373,376,390,443],asciiusernamevalid:168,asdf:182,ash:210,ashlei:[78,206,225,227,254,256,257,258,259,260],asian:390,asid:76,ask:[0,3,5,6,11,27,31,34,54,58,78,80,83,84,89,91,100,102,107,109,114,115,121,123,124,126,127,141,146,148,149,155,175,177,182,203,212,230,241,272,312,314,341,374,378,390,443],ask_choic:312,ask_continu:312,ask_input:312,ask_nod:312,ask_yes_no:374,ask_yesno:312,askew:122,asn:246,aspect:[8,28,41,53,67,88,99,113,116,127,209,227],assert:[8,129,377],assertequ:8,assertionerror:[193,377],asserttru:8,asset:[134,158,201,318,419,443],assetown:76,assign:[2,6,11,12,13,14,18,28,33,36,37,39,41,42,46,47,51,55,83,98,100,109,113,114,115,116,118,126,129,130,138,168,173,174,176,182,187,189,190,193,207,216,224,225,243,253,256,257,258,259,260,271,292,295,296,300,301,319,326,332,334,337,353,371,443],assist:155,associ:[13,28,44,65,73,90,94,108,114,118,144,155,168,172,182,196,229,232,243,296,353,355,363,436],assort:443,assum:[6,7,9,13,14,15,16,18,19,20,22,28,31,32,33,34,37,41,42,44,47,55,57,58,62,69,70,75,76,77,79,80,81,82,83,84,85,87,91,92,93,94,96,97,98,100,101,104,105,106,109,111,113,118,124,127,129,130,132,135,136,137,138,140,141,142,151,154,155,157,158,163,173,175,176,177,179,182,187,189,193,196,198,204,205,210,216,218,243,250,253,270,271,283,284,286,291,296,301,305,338,355,367,368,374,377,390,394,411,422,438,441],assumpt:[126,174],assur:[48,81],ast:[30,377],asterisk:[12,55,85,115,180],astronom:101,asymmetr:78,async:[141,390,443],asynccommand:54,asynchron:[5,19,22,40,61,88,93,94,169,296,323,324,338,383,390,443],at_:[48,381],at_access:[168,296],at_account_cr:[12,168],at_after_mov:296,at_after_travers:296,at_again_posit:218,at_already_clos:218,at_already_consum:218,at_already_mov:218,at_already_open:218,at_appli:218,at_before_drop:296,at_before_g:296,at_before_get:296,at_before_mov:296,at_before_sai:296,at_cannot_appli:218,at_cannot_mov:218,at_cannot_posit:218,at_cannot_read:218,at_cannot_rot:218,at_channel_cr:196,at_channel_msg:196,at_char_ent:135,at_clos:218,at_cmdset_cr:[20,22,77,91,92,95,97,99,100,101,104,106,108,115,126,129,130,138,175,183,184,185,186,203,204,205,206,209,213,216,224,236,239,240,243,251,256,257,258,259,260,265,268,269,270,271,275,345,372,374,375],at_cmdset_get:[168,296,353],at_code_correct:218,at_code_incorrect:218,at_consum:218,at_db_location_postsav:295,at_defeat:[256,257,258,259,260],at_desc:296,at_disconnect:[168,353],at_drink:218,at_drop:[257,260,296],at_empty_target:282,at_end:304,at_err:[54,390],at_err_funct:54,at_err_kwarg:[54,390],at_failed_login:168,at_failed_travers:[37,249,270,296],at_first_login:168,at_first_sav:[168,196,296],at_first_start:364,at_focu:218,at_focus_:[216,218],at_focus_climb:218,at_focus_clos:218,at_focus_cod:218,at_focus_combin:218,at_focus_drink:218,at_focus_eat:218,at_focus_feel:218,at_focus_insert:218,at_focus_kneel:218,at_focus_li:218,at_focus_listen:218,at_focus_mov:218,at_focus_open:218,at_focus_press:218,at_focus_push:218,at_focus_read:218,at_focus_rot:218,at_focus_shov:218,at_focus_sip:218,at_focus_sit:218,at_focus_smel:218,at_focus_turn:218,at_focus_us:218,at_get:[206,260,296],at_giv:[257,260,296],at_green_button:218,at_heard_sai:136,at_hit:269,at_idmapper_flush:[364,381],at_init:[45,48,168,196,269,270,271,296],at_initial_setup:[113,159,318],at_initial_setup_hook_modul:318,at_left:218,at_lock:218,at_login:[48,62,325,326,334,337,342,343,353],at_look:[168,296],at_message_rec:168,at_message_send:168,at_mix:218,at_mix_failur:218,at_mix_success:218,at_msg_rec:[168,226,296],at_msg_send:[168,169,226,264,296],at_new_arriv:269,at_no_cod:218,at_nomatch:218,at_now_add:67,at_object_cr:[13,20,33,37,48,81,91,92,96,100,104,106,126,127,130,138,140,182,218,219,224,226,243,249,251,253,256,257,258,259,260,265,269,270,271,296,364],at_object_delet:296,at_object_leav:[219,271,273,296],at_object_post_copi:296,at_object_rec:[37,135,219,271,273,296],at_open:218,at_password_chang:168,at_paus:[42,307],at_posit:218,at_post_all_msg:196,at_post_channel_msg:[18,168,196],at_post_cmd:[22,95,173,177,190,193],at_post_command:22,at_post_disconnect:168,at_post_func:126,at_post_login:[92,168],at_post_mov:[37,135,296],at_post_msg:196,at_post_object_leav:273,at_post_portal_sync:352,at_post_puppet:296,at_post_travers:[37,270,296],at_post_unpuppet:296,at_pr:296,at_pre_channel_msg:[18,168,196],at_pre_cmd:[22,173,177,190,193],at_pre_command:[22,126],at_pre_drop:[257,260,296],at_pre_g:[257,260,296],at_pre_get:[260,296],at_pre_leav:37,at_pre_login:168,at_pre_mov:[37,92,126,256,257,258,259,260,296],at_pre_msg:[18,196],at_pre_puppet:296,at_pre_sai:[243,296],at_pre_unpuppet:296,at_prepare_room:273,at_read:218,at_red_button:218,at_reload:[192,352],at_renam:364,at_repeat:[42,48,129,137,138,169,203,212,232,256,257,258,259,260,262,307,347,378],at_return:[54,390],at_return_funct:54,at_return_kwarg:[54,390],at_right:218,at_rot:218,at_sai:[136,218,296],at_script_cr:[42,129,137,138,169,203,212,232,241,242,256,257,258,259,260,262,273,283,300,307,347,378],at_script_delet:307,at_search:[113,159],at_search_result:[191,390],at_server_cold_start:352,at_server_cold_stop:352,at_server_connect:332,at_server_reload:[42,163,168,169,296,307],at_server_reload_start:352,at_server_reload_stop:[92,352],at_server_shutdown:[42,163,168,169,296,307],at_server_start:[42,232,307,352],at_server_startstop:[92,113,159],at_server_stop:352,at_shutdown:352,at_smel:218,at_speech:218,at_start:[42,129,169,273,304,307],at_startstop_modul:309,at_stop:[42,129,138,256,257,258,259,260,307],at_sunris:101,at_sync:[353,354],at_tick:[47,309],at_travers:[37,250,273,296],at_traverse_coordin:273,at_turn_start:258,at_unfocu:218,at_upd:[258,305],at_weather_upd:140,ating:193,atlanti:147,atleast:242,atom:[119,156],atop:273,atribut:371,att:[28,64],attach:[13,37,44,46,64,74,88,90,91,98,100,108,115,116,118,163,177,182,190,202,226,236,254,273,292,296,306,351,365,399,406,443],attachmentsconfig:90,attack:[15,28,78,80,93,94,95,103,115,120,121,122,127,129,142,155,158,176,243,254,256,257,258,259,260,269,270,296,301,332,443],attack_count:259,attack_nam:259,attack_skil:301,attack_typ:260,attack_valu:[256,257,258,259,260],attempt:[7,12,20,28,36,73,75,77,78,83,94,107,137,147,158,179,182,216,224,247,249,256,257,258,259,260,311,314,319,352,357,364,377,390,436],attemt:30,attent:[37,82,85,98,100,158,216],attitud:99,attr1:[182,240],attr2:[182,240],attr3:182,attr:[13,28,33,41,51,77,81,100,111,182,189,198,204,219,271,291,300,301,353,362,364,381,386],attr_categori:399,attr_eq:291,attr_g:[33,291],attr_gt:[33,291],attr_kei:399,attr_l:[33,291],attr_lockstr:399,attr_lt:[33,291],attr_n:[33,291],attr_nam:182,attr_obj:[362,364],attr_object:364,attr_typ:399,attr_valu:399,attract:84,attrcreat:[33,362],attread:13,attredit:[13,33,362],attrhandler_nam:362,attrib:292,attribiut:362,attribut:[3,8,12,18,19,24,27,28,32,33,34,35,36,37,41,42,44,46,47,48,55,67,69,75,77,78,80,81,92,93,95,96,98,99,100,102,104,105,106,107,109,111,116,122,126,127,129,130,141,142,165,166,168,171,176,182,191,192,196,201,204,205,209,210,218,224,231,232,239,240,243,250,253,256,257,258,259,260,265,269,270,271,282,291,294,295,296,299,300,301,304,305,308,319,353,361,363,364,365,370,371,372,378,383,384,387,390,396,397,398,400,403,404,406,413,415,416,430,435,436,438,441,443],attribute1:130,attribute2:130,attribute_list:362,attribute_nam:[126,168,243,294,296,387],attribute_valu:294,attributeerror:[3,13,67,114,126,353,362],attributeform:399,attributeformset:399,attributehandl:[13,48,362,385,390,413],attributeinlin:[398,399,400,403,404],attributemanag:13,attributeproperti:[362,443],attributeseri:413,attrkei:301,attrlist:362,attrnam:[13,28,33,41,48,182,253,291,294,364],attrread:[13,33,362],attrtyp:[13,362,363],attrvalu:28,attryp:363,atttribut:81,atyp:292,audibl:242,audio:51,audit:[165,166,196,199,244,296,443],audit_callback:246,auditedserversess:[246,247],auditingtest:248,aug:[64,76],august:[76,390],aura:210,aut:29,auth:[49,168,170,171,187,334,398,421,422,430,436,441],auth_password:334,auth_profile_modul:171,authent:[44,45,53,62,141,158,168,325,332,334,337,343,353,355,422,435,436,438,441],authenticated_respons:431,author:[139,155,168,229,232,393],auto:[3,4,11,13,15,18,20,21,22,26,28,35,37,42,44,52,55,75,78,83,85,91,112,120,123,141,149,151,152,165,168,171,177,181,182,189,192,193,242,243,253,265,275,281,282,285,288,292,296,301,304,309,311,314,325,335,342,343,352,355,362,364,369,375,376,377,416,422,443],auto_close_msg:265,auto_create_bucket:201,auto_help:[22,28,31,97,102,177,189,193,217,225,268,298,374,375],auto_help_display_kei:[177,193,374],auto_id:[400,402,404,406,430],auto_look:[28,217,225,268,298,374],auto_now_add:67,auto_quit:[28,217,225,268,298,374],auto_step_delai:275,auto_transl:242,autobahn:[325,331,342],autocr:[13,362],autodoc:[49,85],autofield:141,autologin:422,autom:[2,15,30,49,50,67,99,100,144,149,151,157,158,163,436],automat:[6,9,11,15,18,19,20,27,28,30,31,33,34,41,42,44,48,50,53,54,57,63,67,73,74,75,77,78,80,82,83,84,87,88,95,100,101,104,106,108,111,113,114,115,116,117,118,122,126,129,130,134,135,136,138,139,146,150,151,152,153,155,157,159,168,175,176,177,182,187,188,190,192,193,201,203,204,205,206,209,211,218,231,232,233,240,241,242,243,251,260,272,275,283,292,295,296,306,308,309,319,328,331,334,339,352,355,357,368,372,374,375,376,377,390,415,416,423,443],automatical:309,autostart:[42,306,370],autumn:[6,224],avail:[0,2,3,5,7,8,9,11,13,14,18,20,22,24,28,30,31,32,33,35,37,41,42,44,48,49,51,53,54,56,58,60,62,64,68,69,70,71,75,77,79,80,81,82,83,85,86,88,91,92,96,97,99,100,101,104,105,106,107,108,109,110,113,114,115,116,117,118,120,121,123,124,126,129,130,138,141,142,143,144,145,146,149,150,153,154,155,156,157,159,162,163,165,168,173,174,175,176,177,179,182,184,187,188,189,190,192,193,194,203,204,205,209,210,213,216,218,223,224,226,232,236,239,241,242,243,251,253,254,256,257,258,259,260,265,270,271,277,292,296,299,300,301,304,319,343,345,346,357,368,369,374,375,376,377,390,408,423,435,438,443],available_chan:187,available_choic:[28,374],available_funct:300,available_languag:242,available_weapon:270,avatar:[68,88,113,114,116,296,334,416],avatarid:334,avenu:206,averag:[5,14,83,155,192,232,242,272],average_long_link_weight:[83,282],avoid:[0,3,6,8,11,13,19,20,22,28,39,41,48,53,60,62,72,78,82,83,84,104,106,114,116,117,121,123,126,139,145,146,157,175,182,241,242,265,272,273,282,291,295,323,333,343,353,362,364,365,367,368,369,372,375,377,381,413],awai:[0,3,11,13,15,16,28,31,33,41,42,44,54,63,67,75,76,79,80,81,82,83,87,91,94,102,114,117,120,122,126,127,130,138,155,188,198,206,221,254,257,260,265,269,271,273,281,284,296,304,354,367,390,398,443],await:54,awak:123,awar:[0,13,15,20,22,28,48,68,83,97,119,122,139,140,141,163,201,218,226,241,243,269,272,273,275,282,284,296,364,367],award:123,awesom:[53,73,116,149],awesome_func:117,awesomegam:151,awkward:64,aws:155,aws_access_key_id:201,aws_s3_access_key_id:201,aws_s3_cdn:[165,166,199,200,443],aws_s3_object_paramet:201,aws_s3_secret_access_kei:201,aws_secret_access_kei:201,aws_security_token:201,aws_session_token:201,awsstorag:[165,166,199,443],axe:123,axes:[83,281],axi:281,axio:49,azur:157,b64decod:386,b64encod:386,b_offer:203,baaaad:8,back:[0,2,6,7,11,13,14,15,18,19,20,22,27,28,30,32,36,42,44,48,49,51,52,53,54,55,64,65,67,70,73,75,77,80,81,82,83,85,88,91,94,98,100,102,104,106,107,109,111,113,114,115,116,117,118,119,120,121,122,123,124,125,127,129,130,132,136,138,139,141,146,149,151,155,157,163,164,165,168,176,179,182,187,191,203,204,209,218,221,243,249,253,254,259,264,265,275,298,314,319,323,326,332,334,337,352,364,371,374,375,383,390,394],back_exit:75,backbon:[141,368],backend:[2,8,41,42,49,50,53,73,146,165,166,201,362,390,396,410,416,420,443],backend_class:362,background:[0,17,28,53,54,60,94,116,139,141,151,155,158,163,207,227,367,377,439],backpack:20,backtick:[11,85,377],backtrack:11,backup:[11,37,44,54,113,155,191,368],backward:[18,27,28,100,138,170,383],bad:[8,42,64,75,77,83,84,88,100,106,116,118,123,124,147,247,316],bad_back:292,baddi:120,badg:10,badli:253,bag:[31,108,209,390],bake:[79,281],baker:123,balanc:[94,98,121,123,129,144,376],ball:[20,159,174,175,210,301],ballon:240,balloon:240,ban:[18,33,61,92,108,123,168,180,187,193,196,292,443],ban_us:187,band:[51,68,334,337,338],bandag:79,bandit:80,bandwidth:[201,327],banid:180,bank:[121,443],banlist:[18,196],bar:[13,18,28,30,34,42,46,51,65,68,73,83,105,108,113,118,122,182,227,243,254,289,314,338,362,374,377,390,443],bare:[22,87,100,115,122,127,159,227,257],barehandattack:98,bargain:67,bark:210,barkeep:[3,243],barrel:120,barstool:126,barter:[42,121,135,149,165,166,199,443],bartl:144,base:[2,3,8,14,17,18,22,28,30,31,33,35,37,42,44,47,48,51,52,53,56,65,67,69,70,72,76,77,78,79,81,82,85,86,87,88,90,91,95,96,98,99,100,102,103,106,109,111,113,114,117,118,119,120,121,122,124,127,128,130,132,134,137,139,141,142,144,146,149,151,153,154,155,157,158,161,165,168,169,170,171,173,175,176,177,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,196,197,198,201,202,203,204,205,206,209,210,211,212,213,214,216,217,218,219,221,222,224,225,226,229,230,232,233,235,236,239,240,241,242,243,247,248,249,250,251,252,253,254,256,257,258,259,260,262,264,265,266,268,269,270,271,272,273,275,276,279,280,281,282,283,284,286,287,288,292,294,295,296,298,300,301,303,304,305,306,307,308,309,311,312,314,316,317,320,321,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,345,346,347,350,352,353,354,355,357,358,359,362,363,364,365,367,368,369,372,373,374,375,376,377,378,380,381,382,383,384,385,386,387,388,389,390,395,398,399,400,401,402,403,404,405,406,408,410,411,412,413,414,415,416,421,422,424,425,430,431,434,435,436,438,439,440,441,442,443],base_account_typeclass:12,base_channel_typeclass:18,base_char_typeclass:137,base_character_typeclass:[104,137,141,142,168,182],base_exit_typeclass:83,base_field:[398,399,400,402,403,404,406,430],base_filt:410,base_guest_typeclass:63,base_object_typeclass:[41,110,114,301,364],base_room_typeclass:83,base_script_path:291,base_script_typeclass:42,base_set:76,base_word:390,baseapplic:218,baseclass:270,basecommand:108,baseconsum:218,basecontain:369,baseinlineformset:[399,406],baseline_index:390,basenam:416,baseobject:48,baseopt:384,basepath:390,basepermiss:411,baseposition:218,basest:221,basetyp:[296,368],basetype_posthook_setup:296,basetype_setup:[33,96,168,169,196,296],basetypeclassfilterset:410,bash:[2,149,270],basi:[22,83,84,90,101,113,134,155,190,198,201,243,282,343,364,373],basic:[0,2,9,12,16,17,20,22,33,36,51,53,56,57,58,62,65,67,70,73,75,76,77,78,80,82,83,94,96,98,99,100,101,102,103,104,108,109,113,114,115,116,117,119,120,121,122,123,126,127,129,132,135,136,138,139,141,142,144,163,168,169,182,187,189,196,198,209,225,231,240,257,259,270,291,293,296,345,388,430,439,443],basicmapnod:[83,282],bat:[76,149],batch:[24,26,82,113,144,149,165,166,181,301,323,362,365,366,443],batch_add:[301,362,365],batch_cmd:[15,113],batch_cod:[14,368],batch_code_insert:14,batch_create_object:301,batch_exampl:368,batch_import_path:[14,15],batch_insert_fil:15,batch_update_objects_with_prototyp:301,batchcmd:[26,121,123,181],batchcmdfil:[15,368],batchcod:[15,26,82,108,123,131,144,181,443],batchcode_map:82,batchcode_world:82,batchcodefil:14,batchcodeprocessor:368,batchcommand:[15,26,77,108,120,131,149,181,368],batchcommandprocessor:368,batchfil:[15,16,82,368],batchprocess:[165,166,172,178,443],batchprocessor:[14,165,166,181,366,443],batchscript:[14,368],batteri:168,battl:[120,129,144,158,256,257,258,259,260],battlecmdset:[256,257,258,259,260],bayonet:79,baz:254,bazaar:69,beach:82,bear:[241,269],beat:[121,123,129],beaten:[129,271],beauti:[77,81,141],beazlei:144,becam:[94,139],becasu:4,becaus:[2,3,12,13,14,16,20,30,31,33,37,41,45,47,48,49,50,53,54,55,56,58,62,64,69,75,76,77,80,82,83,85,88,91,92,94,97,98,107,108,111,114,115,116,117,122,124,126,127,129,134,135,139,141,142,145,148,151,176,189,194,196,214,221,231,242,259,273,279,281,296,307,326,332,345,355,367,377,384,386,390,398,399,406,416,421],becom:[3,9,28,33,36,41,54,67,68,71,75,77,81,82,84,85,88,89,98,104,108,112,113,114,115,116,121,123,126,127,143,159,179,193,210,226,240,242,243,253,254,257,296,301,353,368,374,377],been:[2,3,5,9,11,13,14,15,28,30,31,42,44,57,64,73,75,77,80,81,83,85,90,91,100,102,106,107,111,116,118,129,130,135,139,141,142,144,146,158,164,168,175,176,177,181,182,187,190,196,198,204,209,232,240,241,243,253,256,257,258,259,260,271,273,282,286,288,292,295,296,300,301,308,309,316,328,332,334,342,352,353,354,355,357,362,364,368,372,373,390,393,395,406,421,437,442],befit:48,befor:[1,3,5,6,7,8,10,11,13,14,15,16,18,19,20,22,28,31,33,34,39,41,42,45,46,47,48,50,51,53,54,55,64,66,67,69,70,73,77,79,80,81,82,83,84,90,91,92,93,94,98,99,100,102,104,106,107,108,109,111,114,115,116,117,119,121,123,126,129,130,135,136,138,139,140,141,142,144,146,151,152,154,155,157,158,159,168,173,174,177,182,187,189,190,194,196,198,202,209,211,212,214,221,224,225,226,227,231,235,242,243,246,247,252,253,254,256,257,258,259,260,265,268,270,271,273,281,282,291,292,295,296,299,300,301,307,308,309,314,323,332,334,340,346,348,350,352,353,357,359,362,367,368,369,370,374,375,376,378,382,383,386,390,421,435,441,443],beforehand:[11,13,369],beg:15,beggar:75,begin:[0,3,5,7,8,14,15,22,27,31,33,45,54,75,77,80,82,85,87,90,92,100,102,107,109,111,116,121,125,129,135,140,142,153,188,189,231,242,243,254,256,257,258,259,260,281,294,296,367,368,374,377,387,443],beginn:[87,103,107,114,119,121,144],behav:[8,13,14,45,77,94,101,102,107,109,115,116,117,163,390],behavior:[5,20,22,27,31,41,51,60,73,75,83,102,113,139,168,177,193,206,209,225,243,258,260,271,272,282,314,362,374,399,406,443],behaviour:[20,22,33,139,360,370,376,390],behind:[6,11,13,22,32,41,46,55,60,81,83,87,91,117,120,139,149,181,241,253,271,304,309,381],behvaior:375,being:[2,3,5,8,11,13,14,20,22,28,30,31,35,39,41,42,45,47,48,52,54,58,65,68,72,75,77,79,82,84,88,91,92,93,98,102,107,110,112,113,114,116,120,122,123,124,136,139,141,148,149,151,155,158,168,174,182,188,192,193,196,201,212,213,226,236,242,243,253,256,257,258,259,260,264,265,271,282,288,296,316,319,326,346,355,357,362,364,367,368,370,374,375,376,377,390,393,395,399,406,410,413,421,442],beipmu:147,belong:[15,46,65,74,83,88,90,111,116,141,158,176,243,254,273,288,299],belov:123,below:[2,3,5,7,8,11,14,15,16,18,19,20,22,27,28,31,32,33,36,39,41,42,44,48,54,55,57,60,64,68,74,75,76,77,79,81,82,83,85,88,92,94,96,99,100,101,102,104,115,116,117,121,126,127,130,134,135,136,141,142,145,146,149,151,155,157,163,171,182,190,198,204,206,209,210,213,223,227,242,243,253,254,256,257,258,259,260,266,272,281,282,288,295,296,304,326,346,362,364,365,374,376,377,382,415],beneath:19,benefici:[81,258],benefit:[8,64,69,122,124,143,151,155,157,158,176,362,368,374],berserk:253,besid:[7,15,20,39,64,75,82,115,227],best:[0,27,42,53,64,69,73,76,77,84,99,100,110,113,121,124,141,147,151,153,158,159,189,204,242,254,272,301,314,334,376,384,442,443],bet:[20,44,50,364],beta:[25,148,155,443],betray:28,better:[3,5,16,28,30,31,41,42,46,58,60,67,69,75,76,79,83,85,87,88,89,92,97,100,104,106,107,113,114,121,124,126,127,141,142,146,205,210,250,257,271,282,296,301,331,334,337,345,362,368,421],bettween:127,between:[2,5,11,12,13,15,18,20,22,30,31,36,41,42,44,46,51,54,58,60,62,64,68,70,74,75,77,80,81,83,85,88,92,93,96,98,99,100,102,106,107,108,113,114,116,117,120,122,123,127,129,130,137,138,139,151,155,157,174,177,182,187,189,192,193,198,203,206,207,209,210,231,232,235,236,239,241,242,243,252,253,254,256,257,258,259,260,279,281,282,283,284,296,301,309,314,323,326,333,334,337,338,345,346,353,365,367,368,370,374,376,377,378,390,394,424,443],bew:224,bewar:96,beyond:[8,12,22,29,37,50,68,76,77,84,88,92,99,123,142,155,177,182,193,198,204,210,216,243,254,265,271,296,300,345,362,364,374,376],bg_colormap:389,bgcolor:389,bgfgstart:389,bgfgstop:389,bgstart:389,bgstop:389,bias:182,bidirect:323,big:[14,15,18,22,33,50,53,74,76,79,84,93,94,99,108,109,117,120,123,124,127,174,189,191,252,253,265,294,368,375,387,390],bigger:[62,84,91,102,111,130,242,253,279,281],biggest:[153,253,390],biggui:22,bigmech:91,bigsw:94,bikesh:111,bill:[155,158],bin:[2,76,88,90,112,149,154,157],binari:[5,83,146,149,325,327,342],bind:151,birth:430,bit:[0,3,7,8,11,13,17,25,41,42,51,53,55,58,64,75,76,77,78,80,90,94,96,101,102,104,108,111,112,113,116,117,119,121,123,124,126,138,142,149,154,187,194,210,214,292,296,368],bitbucket:99,bite:[82,121],bitten:111,black:[60,117,127,139,367],blackbird:144,blackbox:209,blackhaven:83,blacklist:[18,158,187],blacksmith:[39,365],blade:[123,210,270],blank:[28,67,135,142,168,225,367],blankmsg:225,blargh:41,blast:[209,210],blatant:55,blaufeuer:111,bleed:[11,60,113,253,376],blend:240,blender:240,blind:[60,136,265],blind_target:265,blindcmdset:265,blindli:292,blink:[109,265,389],blink_msg:265,blist:6,blob:[80,85,120],block:[5,6,23,24,27,28,30,33,42,53,55,60,72,87,88,92,93,100,102,107,108,116,119,130,132,141,142,155,158,163,180,181,182,217,218,223,224,260,268,269,270,273,279,282,289,298,333,368,374,377,390,439,442,443],blockedmaplink:[83,282],blocker:83,blocking_cmdset:92,blockingcmdset:92,blockingroom:92,blocknam:53,blockquot:443,blocktitl:102,blog:[84,87,89,119,144,155,156],blond:122,blowtorch:147,blue:[14,60,99,104,115,116,123,139,270,367],blueprint:[51,82,99],blurb:[148,443],board:[33,35,81,121,138,144,443],boat:[20,138,176],bob:[13,22,49,104,180,223],bodi:[0,8,17,19,22,28,41,53,72,77,80,100,116,122,132,141,230,236,289,316,370],bodyfunct:[42,109,165,166,199,261,266,443],bodymag:210,bog:[91,121],boi:46,boiler:[48,53],bold:[148,443],bolt:301,bone:[87,122,127],bonu:[123,127,155,257,258,304],bonus:[94,123,257],book:[41,53,73,81,101,107,118,123,127,132,144,218],bool:[12,20,22,28,32,34,42,83,168,169,170,171,173,174,175,176,177,182,187,189,196,197,198,203,204,206,209,212,213,218,221,223,225,227,229,232,241,242,243,253,254,256,257,258,259,260,273,281,282,283,284,286,287,288,292,294,295,296,300,301,303,304,305,306,307,308,309,314,319,320,325,326,331,332,333,337,342,343,351,353,355,357,362,363,364,365,367,368,370,372,374,375,376,377,378,381,383,385,387,389,390,393,398,400,403,404,411,438],booleanfield:[141,398,404],booleanfilt:410,boom:[91,114],boost:289,boot:[18,33,108,114,157,163,180,187,196,309,443],boot_us:187,bootstrap:[24,53,61,90,443],border:[82,100,105,179,193,218,221,223,225,373,376,443],border_bottom:376,border_bottom_char:376,border_char:376,border_left:376,border_left_char:376,border_right:376,border_right_char:376,border_top:376,border_top_char:376,border_width:376,borderless:100,borderstyl:225,bore:[55,87,121,122,158],borrow:[20,149,175,323],bort:[29,374],boss:100,bot:[5,112,141,150,153,158,165,166,167,171,187,319,325,326,333,355,436,443],bot_data_in:[169,319],both:[0,2,6,7,8,9,11,13,16,18,19,20,22,30,31,32,34,36,39,44,48,49,53,57,58,62,67,68,75,77,78,81,82,83,84,85,92,97,98,99,100,101,102,106,107,111,113,115,116,117,122,123,124,126,129,134,138,141,142,144,146,150,151,152,155,158,159,163,173,175,182,187,192,198,203,207,209,218,223,227,236,240,249,253,254,259,260,271,275,281,282,284,292,294,296,300,301,302,304,307,309,323,332,342,343,345,352,354,357,362,363,367,370,374,376,377,385,390,413,416],bother:[9,94,158,362],botnam:[153,187,326,355],botnet:158,boto3:201,boto:201,botstart:169,bottom:[5,7,8,29,48,50,51,53,82,83,90,96,99,100,102,106,108,116,126,141,148,151,176,201,236,259,273,281,301,368,375,376],bottommost:83,bought:106,bouncer:[19,158,373],bound:[19,69,85,99,113,114,229,253,281,286,390],boundari:[83,252,253,390],bounti:89,bow:[123,301],bowl:209,box:[3,7,30,33,35,36,41,49,63,73,75,79,80,82,87,100,102,109,111,114,115,116,117,119,122,127,130,132,145,149,152,155,159,182,216,243,275,281,291,323,368,430,442],brace:[75,77,92,107,296,367],bracket:[72,85,192,207,377],branch:[2,76,78,83,84,85,108,149,157,221,241,254,442,443],branchnam:11,brandymail:236,bread:[56,79,209],breadrecip:209,breadth:260,break_lamp:265,break_long_word:376,break_on_hyphen:376,breakag:123,breakdown:192,breakpoint:[7,56,165],breath:[114,117],breez:[42,140],breviti:[100,116],bribe:28,brick:105,bridg:[44,65,77,86,89,120,144,146,271],bridgecmdset:271,bridgeroom:271,brief:[11,50,56,57,67,80,91,92,100,106,109,112,119,132,163,225,272,296,358,443],briefer:[37,163],briefli:[56,114,123,155,163,265,443],bright:[60,83,104,116,139,207,265,367],brightbg_sub:367,brighten:60,brighter:60,brilliant:11,bring:[81,83,122,124,130,133,134,138,141,146,157,158,254,260,269,282,356],broad:96,broadcast:[168,196,323],broader:[96,243,296],broken:[31,60,69,85,121,242,265,443],brown:367,brows:[7,11,51,76,87,92,96,100,101,102,106,107,112,130,132,134,155,158,436],browser:[0,49,51,52,53,56,59,73,76,85,88,89,102,112,113,119,132,134,141,142,145,149,151,154,155,158,162,342,343,438,439],brunt:123,brutal:272,bsd:[143,394],bsubtopicnna:193,btest:60,btn:17,bucket:[201,202,246],bucket_acl:201,bucket_nam:201,buf:[122,372],buff:122,buffer:[22,27,51,77,191,201,202,316,343,372,438],buffer_s:201,bug:[0,3,8,11,14,54,78,84,89,99,116,121,123,124,130,143,148,163,296,364,443],buggi:[13,374],bui:[106,123,203],build:[2,5,7,10,13,14,15,16,18,19,20,23,24,26,28,31,35,36,37,41,44,46,48,51,53,54,58,67,69,70,72,74,76,79,83,87,88,99,102,103,104,108,110,111,113,114,115,116,119,120,122,124,125,126,128,130,133,134,137,144,149,154,157,165,166,172,174,178,180,181,188,189,204,221,223,224,230,242,243,249,269,272,275,276,278,279,281,282,283,292,296,300,301,314,325,326,368,376,430,442,443],build_link:282,build_match:174,buildchannel:18,builder:[12,13,15,18,30,31,33,39,41,46,49,50,57,69,77,83,90,92,98,100,106,110,114,121,124,126,130,180,182,187,188,192,204,206,224,225,240,243,249,265,271,272,273,275,292,296,345,364,365,368,411,443],buildier:301,building_menu:[165,166,199,443],buildingmenu:[77,204],buildingmenucmdset:204,buildprotocol:[311,324,325,326],buildshop:106,built:[5,14,19,24,28,30,56,62,73,85,88,99,100,113,116,121,122,124,127,130,138,148,149,154,157,158,171,198,240,242,281,282,283,288,295,304,309,362,364,365,368,372,374,382,443],builtin:327,bulk:[31,158],bullet:[85,121],bulletin:[33,35,121,144,443],bulletpoint:85,bunch:[16,19,69,70,100,111,115,117,122,126],burden:105,buri:[69,120],burn:[120,121,124,127,155,270],busi:[88,89,122,155,203,443],butter:[56,209],button:[7,11,14,15,20,22,33,36,49,50,51,52,53,65,68,73,76,113,115,116,141,142,182,210,218,265,270,346,375,403,443],button_expos:270,buy_ware_result:106,byngyri:242,bypass:[4,33,39,54,57,90,100,109,114,120,126,129,139,168,182,196,249,292,294,364,370,387,390,422],bypass_mut:[18,196],bypass_perm:390,bypass_superus:33,byt:296,bytecod:367,bytes_or_buff:438,bytestr:[323,390],bytestream:390,c20:187,c_creates_button:346,c_creates_obj:346,c_dig:346,c_examin:346,c_help:346,c_idl:346,c_login:[5,346],c_login_nodig:346,c_logout:[5,346],c_look:[5,346],c_measure_lag:346,c_move:346,c_moves_:346,c_moves_n:346,c_score:130,c_social:346,cabinet:40,cabl:105,cach:[8,13,22,42,48,51,52,53,55,67,83,93,96,114,145,168,177,192,196,198,201,224,252,269,270,281,292,295,296,318,357,362,364,365,366,379,381,390,399,406,423],cache_inst:381,cache_lock_bypass:292,cache_s:[357,381],cached_properti:390,cactu:259,cake:20,calcul:[19,42,54,83,92,96,111,127,129,130,176,212,224,235,242,252,253,256,257,259,260,279,282,301,378,381,390,435,441],calculate_path_matrix:281,calculated_node_to_go_to:28,calculu:98,calendar:[78,212,235,378,443],call:[0,2,3,5,8,9,11,12,13,14,15,18,19,20,27,28,30,32,33,34,37,41,42,44,45,47,48,49,51,52,54,56,58,62,65,67,68,69,71,73,75,77,79,80,81,82,83,85,88,90,91,92,93,94,95,96,98,99,100,101,102,104,106,107,108,109,110,111,112,113,115,116,117,118,121,124,126,127,129,130,132,135,136,137,138,139,140,141,142,146,149,150,152,153,154,155,157,159,162,163,168,169,173,174,175,176,177,179,182,187,190,191,192,193,194,196,198,203,204,206,209,210,211,212,213,214,216,218,219,221,223,224,225,226,229,230,231,232,233,235,240,241,242,243,249,251,253,254,256,257,258,259,260,262,264,265,268,269,270,271,272,273,282,284,291,292,295,296,299,300,301,305,307,308,309,311,314,316,318,319,323,324,325,326,327,328,329,330,332,333,334,335,336,337,338,339,341,342,343,345,346,347,352,353,354,355,356,359,362,364,365,367,368,369,370,372,374,375,376,377,378,381,383,385,386,387,390,399,406,411,416,430,434,436,439,440,441,443],call_async:54,call_command:8,call_ev:[75,231],call_inputfunc:[65,353,355],call_task:308,callabl:[27,28,34,41,47,52,53,58,71,81,130,204,221,225,232,254,258,281,296,299,300,301,305,309,312,314,316,324,355,369,372,374,375,377,378,383,385,386,390,443],callables_from_modul:390,callbac:77,callback1:374,callback:[19,22,27,28,32,34,47,54,77,90,94,101,169,192,204,212,225,229,230,231,232,233,235,247,254,268,296,305,308,309,312,314,316,319,323,324,325,327,341,342,345,356,374,378,383,388,390,443],callback_nam:[229,232],callbackhandl:[165,166,199,228,443],called_bi:173,calledbi:390,caller:[3,13,14,18,19,22,27,30,31,33,36,37,47,48,54,58,65,67,68,72,77,79,81,82,83,85,91,92,93,94,95,97,98,100,104,105,106,107,108,114,115,118,126,127,129,130,138,152,169,173,174,175,177,179,182,183,187,188,189,190,192,193,204,209,216,217,218,219,225,230,236,240,243,251,254,265,268,270,271,272,273,292,296,298,300,301,368,372,374,375,377,384,390,443],callerdepth:390,callertyp:173,callinthread:359,calllback:231,callsign:[28,218,319],calm:82,came:[76,82,87,91,92,108,116,140,144,269,273,296],camp:82,campfir:82,campsit:82,can:[0,2,3,4,5,6,7,8,9,10,11,12,14,15,16,17,18,19,20,22,25,27,28,30,31,32,33,34,35,36,37,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,57,58,59,60,62,63,64,65,67,68,69,70,71,73,74,75,76,78,79,80,81,82,83,84,85,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,104,105,106,107,108,109,110,111,112,113,114,115,116,119,120,121,122,124,126,127,129,130,132,133,134,135,136,137,138,139,141,142,143,144,146,147,148,149,150,151,152,153,154,155,156,157,158,159,162,163,167,168,169,171,174,175,176,177,179,180,182,187,188,189,190,191,192,193,194,196,197,198,201,202,203,204,206,207,209,210,212,213,217,218,219,221,223,224,225,226,227,231,232,235,236,240,241,242,243,246,249,253,254,256,257,258,259,260,264,265,269,270,271,272,273,275,277,278,281,282,284,286,288,291,292,294,295,296,299,300,301,302,303,304,305,307,309,314,325,329,332,334,337,338,342,343,345,346,352,353,354,355,356,359,360,361,362,363,364,365,367,368,369,370,372,373,374,375,376,377,384,385,386,387,388,390,391,393,394,398,411,413,416,430,435,436,438,439,441,443],can_:231,can_ent:365,can_list_top:[189,438],can_read_top:[189,438],cancel:[19,32,94,126,192,231,256,257,258,259,260,296,308],candid:[22,77,118,126,141,174,240,243,289,294,296,387],candidate_entri:289,candl:176,cannon:111,cannot:[4,8,9,13,14,15,19,20,22,27,28,35,39,41,46,50,54,57,60,64,76,77,80,83,89,91,92,93,94,96,97,98,102,106,113,114,115,118,120,121,124,127,130,141,149,155,159,168,169,176,179,182,189,204,209,221,224,225,229,232,249,254,260,269,270,275,287,292,294,296,300,309,362,369,371,373,376,381,390,443],cantanker:384,cantclear:225,cantillon:144,cantmov:92,canva:81,capabl:[2,33,44,65,68,81,88,100,121,179,251,319,341,430,443],capcha:443,cape:99,capfirst:102,capit:[30,55,58,68,76,88,92,94,116,117,123,130,182,223,226,241,242,253,338,367,377,390,394],captcha:141,caption:85,captur:[92,107,383,441],car:[36,138],carbon:[209,210],card:[83,158,283,284,443],cardin:[81,83,97,100,182,281,282,283],care:[22,28,54,55,67,75,81,83,85,88,90,97,98,99,101,107,114,116,123,124,129,138,139,140,143,146,163,168,175,196,209,216,224,240,243,253,268,269,271,275,281,291,296,345,364,368,372,374,375,376,390,443],career:124,carefulli:[5,44,50,82,87,141],carri:[20,33,79,105,106,109,113,121,126,129,135,198,206,210,257,269,291,353,363,443],carv:79,cascad:381,case_insensit:218,case_sensit:243,caseinsensitivemodelbackend:422,cast:[41,46,93,117,165,166,199,208,254,259,443],caster:[93,210,259],castl:[14,82,83,110,120,224,271],cat:[151,154],catchi:90,categor:[46,88,296],categori:[2,8,13,22,26,28,31,41,46,67,74,79,83,85,96,102,108,111,118,177,178,179,180,181,182,187,188,189,190,191,192,193,194,203,204,205,206,209,210,213,214,216,219,224,225,226,230,236,239,240,243,249,250,251,253,254,256,257,258,259,260,265,269,270,271,272,275,286,287,288,289,291,296,300,301,345,362,363,365,370,372,374,375,382,384,387,390,410,438],categoris:98,category2:382,category2_id:382,category_id:382,category_index:254,cater:[94,124],caught:[3,6,28,126,197],cauldron:210,caus:[3,8,13,20,33,51,55,74,88,94,95,108,114,129,130,135,146,155,176,196,210,214,265,273,282,296,345,374,376,390],caution:[51,101,374],cave:[80,83,275,276],caveat:[54,126,201,443],caveman:98,cblue:11,cboot:[26,55,108,187],cc1:149,cccacccc:373,ccccc2ccccc:100,cccccccc:373,ccccccccccc:100,cccccccccccccccccbccccccccccccccccc:373,ccccccccccccccccccccccccccccccccccc:373,ccreat:[26,100,108,150,153,156,187],cdesc:[26,108,187],cdestroi:[26,108,187],cdmset:20,cdn:158,ceas:182,cel:373,celebr:121,cell:[0,82,100,102,120,225,373,376],celltext:373,cemit:108,censu:363,center:[30,41,53,56,81,82,83,90,96,221,223,227,275,281,367,376,390],center_justifi:41,centos7:151,centr:[31,82],central:[8,18,32,79,82,83,88,140,157,168,176,193,196,198,209,219,279,296,301,323,370,374,381,419],centre_east:82,centre_north:82,centre_south:82,centre_west:82,centric:[33,44,76,130,243],cert:[145,335,339],certain:[6,13,14,15,20,22,33,42,44,45,47,56,57,59,68,69,84,85,88,92,94,113,122,123,138,146,154,155,182,197,203,210,242,246,253,265,270,273,281,291,294,300,307,314,320,337,338,341,356,362,363,372,376,377,387,390,399,416,430,443],certainli:[16,97],certbot:[151,155,158],certfil:[335,339],certif:[145,155,335,339,443],certonli:151,cet:383,cfg:151,cflag:154,cgi:155,cha:[28,100],chain:[28,41,54,75,80,83,94,111,231,232,282,314,346,374],chain_1:75,chain_2:75,chain_:75,chain_open_door:75,chain_x:75,chainedprotocol:334,chainsol:111,chair:[14,37,46,48,107,121,443],challeng:[103,117,120,127,144,219],chan:[18,26,187],chanalia:[26,187],chanc:[5,11,20,30,47,63,77,79,91,93,114,120,121,127,129,148,175,210,256,257,258,259,260,265,270,271,346],chance_of_act:[5,346],chance_of_login:[5,346],chandler:129,chang:[0,2,3,5,8,10,12,13,14,15,16,18,20,22,25,27,28,30,31,32,33,34,35,36,37,41,42,44,45,46,47,48,51,55,56,57,58,60,61,63,65,67,73,76,77,78,79,81,82,83,84,86,88,90,91,94,95,96,99,101,104,106,107,108,109,111,113,115,116,117,119,121,122,126,127,128,129,130,132,136,138,139,140,141,142,143,145,146,148,149,151,152,154,155,157,159,161,163,168,176,177,179,180,182,187,188,193,196,203,204,206,209,214,218,221,224,226,227,229,232,239,242,243,249,250,252,253,254,256,257,258,259,260,269,270,271,272,273,282,283,284,286,288,294,296,300,301,304,305,307,308,309,314,319,330,345,352,353,360,362,364,368,371,372,375,376,377,383,384,385,386,398,399,400,403,404,406,439,441,443],change_name_color:254,changelock:[18,187],changelog:112,changepag:142,channel:[12,13,20,22,23,24,26,33,35,36,45,46,48,52,53,55,57,67,86,87,89,105,108,113,114,118,121,130,144,150,152,153,155,156,161,165,166,168,169,175,176,182,187,193,195,196,197,198,232,265,325,326,333,346,352,353,355,362,370,383,387,396,400,429,431,433,443],channel_:[18,196],channel_ban:[18,187],channel_color:92,channel_connectinfo:353,channel_detail:435,channel_list:435,channel_list_ban:187,channel_list_who:187,channel_msg:[18,168],channel_msg_nick_pattern:[18,196],channel_msg_nick_replac:[18,187,196],channel_msg_pattern:187,channel_prefix:[18,92,196],channel_prefix_str:[18,196],channel_search:197,channel_typeclass:431,channeladmin:400,channelalia:[18,187,196],channelattributeinlin:400,channelcl:187,channelcmdset:[20,108],channelconnect:198,channelcr:[26,187],channelcreateview:196,channeldb:[48,86,165,196,198,361,400],channeldb_db_attribut:400,channeldb_db_tag:400,channeldb_set:[362,365],channeldbmanag:[197,198],channeldeleteview:196,channeldetailtest:431,channeldetailview:[196,435],channelform:400,channelhandl:18,channelkei:197,channellisttest:431,channellistview:435,channelmanag:[196,197],channelmixin:435,channelnam:[18,153,168,169,187,196,325],channeltaginlin:400,channelupdateview:196,char1:[8,127,188,193,431],char2:[8,127,188,431],char_health:271,char_nam:141,charac:34,charact:[2,3,5,6,8,12,13,15,16,17,19,20,22,27,28,30,31,32,33,36,39,42,44,48,49,53,57,60,62,64,67,68,70,72,73,75,76,77,81,82,83,86,87,91,93,94,95,96,98,99,101,102,103,104,106,107,108,109,110,111,112,113,115,116,117,118,119,128,129,134,135,136,137,138,146,152,165,166,167,168,170,174,175,177,179,182,183,184,188,189,190,192,194,196,204,205,206,216,218,219,221,224,225,226,227,229,231,232,236,239,241,242,243,246,251,252,253,254,256,257,258,259,260,262,265,269,270,271,273,275,279,281,282,284,286,288,292,296,307,319,340,353,358,362,364,365,367,368,373,374,376,377,388,390,391,396,410,416,429,430,431,433,438,440,441,443],character1:127,character2:127,character_cleanup:[219,221],character_cmdset:224,character_ent:221,character_exit:219,character_form:436,character_id:296,character_leav:221,character_list:436,character_manage_list:436,character_typeclass:[8,168,388,431],charactercmdset:[18,20,26,50,77,83,91,92,95,97,99,100,101,104,114,115,126,130,184,204,206,210,224,236,239,249,256,257,258,259,260,271],charactercreateview:[431,436],characterdeleteview:[431,436],characterdetailview:436,characterform:[430,436],characterlistview:[431,436],charactermanageview:[431,436],charactermixin:436,characterpuppetview:[431,436],charactersheet:28,characterupdateform:[430,436],characterupdateview:[431,436],characterviewset:416,charapp:141,charat:225,charcreat:[26,75,80,102,108,179,205],charcter:18,chardata:100,chardelet:[26,108,179],chardeleteview:[288,364],chardetailview:[177,286,288,364],charfield:[67,141,386,398,399,400,402,403,404,406,430],charfilt:410,charg:[78,155],chargen:[141,165,166,196,199,288,364,443],chargencmdset:130,chargenroom:130,chargenview:[288,364],charnam:[100,179,377],charpuppetview:364,charset:390,charsheet:100,charsheetform:100,charupdateview:[288,364],chase:120,chat:[0,11,12,23,39,53,76,84,87,89,100,121,123,124,130,144,149,150,153,156,161,343,383,443],chatroom:99,chatzilla:153,cheap:[11,124],cheaper:47,cheapest:[83,155],cheapli:271,cheat:[85,127,146,443],chec:193,check:[0,2,3,5,6,7,8,9,10,11,14,15,18,19,20,22,28,30,35,36,37,41,42,46,47,48,49,55,57,58,62,64,67,75,77,79,80,81,82,84,85,89,90,92,93,94,96,97,98,100,102,104,105,106,107,113,114,115,119,123,124,126,127,129,130,134,135,136,138,141,148,149,150,151,152,155,156,157,158,162,163,168,170,173,174,175,176,177,179,181,182,187,188,189,190,192,193,194,196,198,201,203,205,206,209,214,218,219,221,224,225,232,236,253,256,257,258,259,260,262,265,269,271,272,273,279,282,284,291,292,295,296,300,301,304,306,307,308,313,314,318,323,329,334,352,353,355,357,358,359,362,364,365,367,368,370,377,384,385,390,391,393,398,399,406,411,438,441,443],check_attr:182,check_character_flag:218,check_circular:343,check_databas:314,check_db:314,check_defeat:127,check_end_turn:129,check_error:313,check_evennia_depend:390,check_flag:[218,219],check_from_attr:182,check_grid:81,check_has_attr:182,check_light_st:271,check_loc:201,check_lock:411,check_lockstr:[33,90,292],check_main_evennia_depend:314,check_mixtur:218,check_obj:182,check_perm:219,check_permiss:300,check_permstr:[168,364],check_to_attr:182,check_warn:313,checkbox:141,checker:[16,81,291,334,391,395,443],checklockstr:108,checkout:[11,76,157],checkoutdir:2,checkpoint:443,chemic:210,chest:[39,107,117,118],chicken:216,child:[18,22,28,33,83,88,108,114,115,117,126,129,169,171,177,182,193,209,216,218,221,271,295,301,304,359,382,413],childhood:28,children:[22,46,48,88,91,111,135,171,284,295,296,304,314,363,364,382,408,436,443],chillout:182,chime:19,chines:[64,70,92,144],chip:100,chmod:2,choci:204,choic:[8,16,22,28,30,41,42,44,45,70,72,87,90,107,115,116,117,119,126,129,140,143,146,155,168,179,182,203,204,225,256,272,312,372,374,377,443],choice1:72,choice2:72,choice3:72,choicefield:[398,399,403,404,406,408],choos:[7,14,28,30,53,54,73,74,76,81,83,85,88,99,101,106,111,122,123,127,129,130,137,139,141,153,193,251,254,256,257,258,259,260,265,269,327,374,377,389,443],chop:[22,270],chore:121,chose:[67,100,116,141,148,158,162,254,374],chosen:[7,28,68,77,129,140,225,227,374,377],chown:157,chractercmdset:271,chraract:281,chrome:147,chronicl:225,chroot:151,chug:22,chunk:[14,82,102,201,316,368],church:[19,122],church_clock:19,churn:126,cid:346,cillum:29,cinemat:[221,223],circl:96,circuit:51,circular:[316,369],circumst:[28,71,80,99,106,113,115,116,126,175,259,430],circumv:180,cis:393,citi:[31,83,123,281],citymap:83,cjust:[30,377],clang:154,clank:75,clarifi:92,clariti:[64,67,107,117,130,154,210],clash:[20,31,119,146,155,182,364,374],class_from_modul:390,classic:[14,44,46,47,114,123,129,132,144],classmethod:[96,168,196,209,211,284,288,296,307,364,381,424],classnam:[13,64,117],classobj:364,claus:[136,143],clean:[11,13,17,18,28,82,90,92,93,114,115,120,126,129,163,175,177,182,192,203,210,219,221,243,256,257,258,259,260,270,271,273,296,304,314,318,332,342,355,364,367,372,374,381,386,389,390,398,399,406,430,443],clean_attr_valu:399,clean_attribut:[48,168,364],clean_cmdset:[48,364],clean_senddata:355,clean_stale_task:308,clean_str:367,clean_usernam:398,cleaned_data:141,cleaner:[107,117,130],cleanli:[44,88,163,173,177,187,225,316,325,331,342,355,372],cleanup:[8,13,22,27,28,62,77,203,209,221,268,271,374,398],clear:[9,11,13,16,18,22,27,46,47,48,51,55,58,62,70,72,77,82,83,84,85,88,89,90,94,102,104,121,124,126,127,140,159,163,176,179,180,182,188,194,198,225,241,243,252,253,271,275,283,292,294,295,296,305,308,309,316,353,357,362,364,365,374,381],clear_all_sessid:294,clear_attribut:362,clear_client_list:350,clear_cont:[37,296],clear_exit:[37,296],clearal:[72,188],clearli:[9,55,84,114,381],cleartext:[247,370],clemesha:359,clever:[18,20,28,54,292],cleverli:44,click:[2,7,9,11,49,50,51,52,53,59,71,73,85,102,112,141,155,374],click_top:189,clickabl:[71,85,189,443],clickable_top:189,client:[2,5,9,22,27,29,30,32,34,44,45,49,52,55,59,60,62,69,70,76,77,82,83,85,87,88,92,95,104,107,109,113,114,115,116,123,129,132,134,135,139,144,145,146,148,149,150,151,153,154,157,158,159,161,162,165,166,168,169,177,179,187,189,192,194,247,282,284,310,311,315,317,319,323,324,325,326,327,328,329,330,332,334,336,337,338,339,341,342,343,345,346,352,353,354,355,371,372,374,389,390,410,413,439,443],client_address:62,client_class:414,client_default_height:29,client_disconnect:343,client_encod:146,client_gui:319,client_opt:[68,319,338,443],client_secret:150,client_typ:218,client_width:[22,177],clientconnectionfail:[311,325,326],clientconnectionlost:[311,325,326],clienthelp:51,clientkei:345,clientraw:192,clientsess:[342,343],clientwidth:108,cliff:[109,182],climat:46,climb:[5,22,87,182,218,270],climbabl:[218,270],clipboard:50,clock:[19,22,26,55,108,127,187],clone:[9,10,64,85,88,112,149,443],close:[7,11,15,27,28,44,48,51,52,62,75,77,78,80,85,88,92,96,102,114,116,117,141,151,155,157,158,163,192,194,201,202,203,204,214,218,227,249,260,265,268,316,324,325,332,334,342,343,355,362,368,374,377],close_menu:[268,374],closer:[242,260],closest:[60,96,253,390],cloth:[13,79,165,166,199,368,443],clothedcharact:206,clothedcharactercmdset:206,clothes_list:206,clothing_typ:206,clothing_type_count:206,clothing_type_ord:206,cloud9:443,cloud:[42,140,155,157,158,201],cloudi:42,cloudkeep:78,clr:[30,223,300,377],cls:[96,168,253],club:209,clue:270,clump:117,clunki:[11,260],cluster:146,clutter:[85,176],cma:11,cmd:[5,15,18,20,22,31,33,55,68,77,92,93,94,97,100,101,105,106,108,116,119,126,130,138,152,162,175,177,179,180,181,182,187,188,189,190,191,192,193,194,203,204,205,206,209,210,213,214,216,224,225,226,230,236,239,240,243,249,250,251,254,256,257,258,259,260,265,269,270,271,272,275,285,296,338,342,343,345,368,372,374,375,438],cmd_arg:107,cmd_channel:22,cmd_help_dict:189,cmd_help_top:438,cmd_ignore_prefix:174,cmd_kei:107,cmd_last:44,cmd_last_vis:44,cmd_loginstart:22,cmd_multimatch:[22,173],cmd_na_m:68,cmd_name:[68,338],cmd_noinput:[22,173,374],cmd_nomatch:[22,173,271,374],cmd_noperm:22,cmd_on_exit:[28,217,225,254,268,298,374],cmd_or_top:[189,438],cmd_total:44,cmdabil:8,cmdabout:192,cmdaccept:203,cmdaccess:188,cmdaccount:192,cmdaddcom:187,cmdallcom:187,cmdapproach:260,cmdarmpuzzl:240,cmdasync:54,cmdattack:[94,127,129,130,256,257,258,259,260,270],cmdban:180,cmdbare:108,cmdbatchcod:181,cmdbatchcommand:181,cmdbigsw:94,cmdblindhelp:265,cmdblindlook:265,cmdblock:92,cmdboot:180,cmdbridgehelp:271,cmdbui:106,cmdbuildshop:106,cmdcallback:230,cmdcast:[210,259],cmdcboot:187,cmdcdesc:187,cmdcdestroi:187,cmdchannel:[18,187],cmdchannelcr:187,cmdcharactercr:205,cmdcharcreat:179,cmdchardelet:179,cmdclimb:270,cmdclock:187,cmdcloselid:265,cmdcolortest:179,cmdcombathelp:[256,257,258,259,260],cmdconfigcolor:104,cmdconfirm:22,cmdcopi:182,cmdcover:206,cmdcpattr:182,cmdcraft:209,cmdcraftarmour:94,cmdcreat:182,cmdcreatenpc:130,cmdcreateobj:216,cmdcreatepuzzlerecip:240,cmdcwho:187,cmddarkhelp:271,cmddarknomatch:271,cmddeclin:203,cmddefend:129,cmddelcom:187,cmddesc:[182,224],cmddestroi:182,cmddiagnos:95,cmddice:[100,213],cmddig:182,cmddisengag:[129,256,257,258,259,260],cmddoff:257,cmddon:257,cmddrop:[188,206],cmddummyrunnerechorespons:345,cmdeast:271,cmdecho:[22,85,94,108,115,193],cmdedit:204,cmdeditnpc:130,cmdeditorbas:372,cmdeditorgroup:372,cmdeditpuzzl:240,cmdemit:180,cmdemot:[216,243],cmdentertrain:138,cmdevalu:203,cmdevenniaintro:271,cmdevmenunod:374,cmdevscaperoom:216,cmdevscaperoomstart:216,cmdexamin:182,cmdexiterror:97,cmdexiterroreast:97,cmdexiterrornorth:97,cmdexiterrorsouth:97,cmdexiterrorwest:97,cmdextendedroomdesc:224,cmdextendedroomdetail:224,cmdextendedroomgametim:224,cmdextendedroomlook:224,cmdfeint:129,cmdfight:[256,257,258,259,260],cmdfind:182,cmdfinish:203,cmdfocu:216,cmdfocusinteract:216,cmdforc:180,cmdget:[92,115,188,216],cmdgetinput:374,cmdgetweapon:270,cmdgive:[188,206],cmdgiveup:216,cmdgmsheet:100,cmdgoto:275,cmdgrapevine2chan:187,cmdhandler:[20,22,37,65,113,165,166,168,172,174,175,176,177,179,190,191,192,193,194,216,224,240,271,295,296,304,390,443],cmdhelp:[31,129,189,216,256,257,258,259,260],cmdhit:[108,115,129],cmdhome:188,cmdic:179,cmdid:319,cmdinsid:138,cmdinterrupt:193,cmdinventori:[105,188,206],cmdirc2chan:187,cmdircstatu:187,cmdjumpstat:216,cmdlaunch:91,cmdlearnspel:259,cmdleavetrain:138,cmdlen:[174,191],cmdlight:270,cmdline:314,cmdlineinput:372,cmdlink:182,cmdlistarmedpuzzl:240,cmdlistcmdset:182,cmdlistpuzzlerecip:240,cmdlock:182,cmdlook:[4,8,95,188,205,216,224,271],cmdlookbridg:271,cmdlookdark:271,cmdmail:236,cmdmailcharact:236,cmdmakegm:100,cmdmap:275,cmdmask:243,cmdmobonoff:269,cmdmore:375,cmdmoreexit:375,cmdmultidesc:[99,239],cmdmvattr:182,cmdmycmd:[31,98],cmdname2:174,cmdname3:174,cmdname:[32,51,62,65,68,108,126,130,173,174,177,182,190,191,193,319,337,338,342,343,355],cmdnamecolor:254,cmdnewpassword:180,cmdnick:188,cmdnoinput:204,cmdnomatch:204,cmdnositstand:126,cmdnpc:130,cmdnudg:265,cmdobj:[173,174,191,193],cmdobj_kei:173,cmdobject:[173,174,182],cmdobjectchannel:[18,187],cmdoffer:203,cmdooc:179,cmdooccharactercr:205,cmdooclook:[179,205],cmdopen:[182,249,275],cmdopenclosedoor:249,cmdopenlid:265,cmdoption:[179,216],cmdpage:187,cmdparri:129,cmdparser:[159,165,166,172,443],cmdpass:[256,257,258,259,260],cmdpassword:179,cmdperm:180,cmdplant:272,cmdpose:[129,188,243],cmdpressbutton:270,cmdpushlidclos:265,cmdpushlidopen:265,cmdpy:192,cmdquell:179,cmdquit:179,cmdread:270,cmdrecog:243,cmdreload:192,cmdremov:206,cmdrerout:216,cmdreset:192,cmdrest:[256,257,258,259,260],cmdroll:107,cmdrss2chan:187,cmdsai:[129,188,243],cmdsaveyesno:372,cmdscript:182,cmdsdesc:243,cmdser:374,cmdserverload:192,cmdservic:192,cmdsession:179,cmdset:[3,6,12,15,18,20,22,26,28,31,37,42,44,62,64,77,83,86,91,92,97,99,101,102,104,106,112,113,114,126,129,130,138,165,166,168,172,173,174,176,177,182,183,184,185,186,190,191,192,193,203,204,205,206,209,213,216,224,226,230,236,240,243,250,251,256,257,258,259,260,265,268,269,270,271,272,275,295,296,304,345,352,353,364,372,374,375,390,408,443],cmdset_account:[12,165,166,172,178,205,443],cmdset_charact:[165,166,172,178,206,256,257,258,259,260,443],cmdset_mergetyp:[28,217,225,268,298,374],cmdset_prior:[28,217,225,268,298,374],cmdset_sess:[44,165,166,172,178,443],cmdset_stack:176,cmdset_storag:[171,295,353],cmdset_trad:203,cmdset_unloggedin:[22,165,166,172,178,214,443],cmdsetattribut:182,cmdsetclimb:270,cmdsetcrumblingwal:270,cmdsetdesc:188,cmdsetevenniaintro:271,cmdsetevscaperoom:216,cmdsetflag:216,cmdsethandl:[44,165,166,172,443],cmdsethelp:189,cmdsethom:182,cmdsetkei:20,cmdsetkeystr:175,cmdsetlight:270,cmdsetmor:375,cmdsetobj:[175,176,183,184,185,186,203,204,205,206,209,213,216,224,240,243,251,256,257,258,259,260,265,268,269,270,271,275,345,372,374,375],cmdsetobjalia:182,cmdsetpow:130,cmdsetread:270,cmdsetsit:126,cmdsetspe:250,cmdsettestattr:27,cmdsettrad:203,cmdsettrain:138,cmdsetweapon:270,cmdsetweaponrack:270,cmdsheet:100,cmdshiftroot:270,cmdshoot:[91,260],cmdshutdown:192,cmdsit2:126,cmdsit:126,cmdsmashglass:265,cmdsmile:22,cmdspawn:182,cmdspeak:216,cmdspellfirestorm:93,cmdstand2:126,cmdstand:[126,216],cmdstatu:[203,259,260],cmdstop:250,cmdstring:[22,100,108,173,177,190,193],cmdstyle:179,cmdtag:182,cmdtalk:251,cmdtask:192,cmdteleport:[182,275],cmdtest:[3,94,107],cmdtestid:22,cmdtestinput:28,cmdtestmenu:[28,225,374],cmdticker:192,cmdtime:[101,192],cmdtrade:203,cmdtradebas:203,cmdtradehelp:203,cmdtunnel:182,cmdtutori:271,cmdtutorialgiveup:271,cmdtutoriallook:271,cmdtutorialsetdetail:271,cmdtweet:152,cmdtypeclass:182,cmdunban:180,cmdunconnectedconnect:[194,214],cmdunconnectedcr:[194,214],cmdunconnectedencod:194,cmdunconnectedhelp:[194,214],cmdunconnectedinfo:194,cmdunconnectedlook:[194,214],cmdunconnectedquit:[194,214],cmdunconnectedscreenread:194,cmduncov:206,cmdunlink:182,cmdunwield:257,cmduse:258,cmdusepuzzlepart:240,cmdwait:22,cmdwall:180,cmdwear:206,cmdwerewolf:92,cmdwest:271,cmdwhisper:188,cmdwho:[179,216],cmdwield:257,cmdwipe:182,cmdwithdraw:260,cmdxyzopen:275,cmdxyzteleport:275,cmdyesnoquest:374,cmset:[176,408],cmud:147,cnf:[2,146],coal:[209,210],coast:[82,120],coastal:82,cobj:216,cockpit:91,code:[2,5,6,7,8,12,15,16,20,22,24,28,30,31,33,34,37,39,41,44,46,47,48,49,50,52,53,54,55,56,57,60,61,62,64,67,68,72,73,75,76,78,79,80,81,82,83,84,86,87,88,89,90,94,96,98,99,100,101,102,103,107,109,111,112,113,114,115,117,118,119,120,122,124,125,126,128,129,130,131,133,134,135,136,138,139,140,142,144,146,149,156,157,158,159,161,163,165,166,168,172,173,176,179,181,182,187,189,192,195,199,203,204,208,212,213,218,221,227,229,232,241,258,271,272,281,292,301,304,325,326,342,353,356,364,366,367,372,374,376,387,388,389,390,397,439,442,443],code_exec:368,code_hint:218,code_tri:218,codebas:[8,11,72,74,85,87,98,118,193],codeblock:85,codec:367,codefunc:372,codeinput:218,coder:[0,1,77,98,121,123,124,144,173,296],codestyl:84,coding_styl:85,coerc:385,coexist:139,coher:131,coin:[78,89,117,118,121,122,203,443],col:[56,132,376],cold:[55,163,192,301,305,309,352],cole:390,coll_date_func:192,collabor:[11,88,90,121,124,155,189,443],collat:[31,65,300],collect:[0,13,20,30,31,49,83,117,134,173,175,189,192,200,240,253,362,390,416,438],collect_top:[189,438],collector:134,collectstat:[51,53,134,314,318],collid:[20,148,155,218,253,374,377],collis:[11,20,357],collist:117,colon:[19,33,109,116,292],color:[18,22,26,28,30,32,41,51,56,71,72,81,82,83,85,86,100,102,103,108,109,116,144,149,177,179,193,207,210,223,227,243,254,268,272,281,282,284,296,300,319,326,334,337,342,343,367,376,377,384,389,391,443],color_ansi_bright_bg_extra_map:207,color_ansi_bright_bgs_extra_map:207,color_ansi_extra_map:207,color_markup:[165,166,199,443],color_no_default:207,color_typ:367,color_xterm256_extra_bg:207,color_xterm256_extra_fg:207,color_xterm256_extra_gbg:207,color_xterm256_extra_gfg:207,colorablecharact:104,colorback:389,colorcod:389,colour:[19,182,341,367,376,443],column:[51,56,58,67,80,81,82,83,85,88,100,102,177,179,273,284,376,390],com:[0,8,9,10,11,40,49,53,54,56,64,69,73,76,77,78,80,82,85,87,96,114,118,120,121,141,144,145,146,148,149,151,154,155,156,157,158,165,187,192,204,214,289,326,329,338,342,359,376,389,390,430,442],combat:[11,15,20,41,48,69,78,80,82,87,88,92,93,103,108,113,114,120,122,123,127,128,135,144,149,176,256,257,258,259,260,269,304,443],combat_:[256,257,258,259,260],combat_cleanup:[256,257,258,259,260],combat_cmdset:129,combat_handl:129,combat_handler_:129,combat_movesleft:[256,257,258,259],combat_scor:130,combat_status_messag:260,combatcmdset:129,combathandl:129,combatscor:130,combin:[8,13,19,20,22,34,35,41,46,47,55,60,78,79,83,87,93,95,99,100,109,111,115,116,123,136,138,145,151,155,173,174,175,182,193,209,210,218,239,240,242,253,265,282,284,292,300,309,314,363,365,370,377,384,390],combo:44,come:[5,11,12,13,16,19,22,28,29,31,33,42,44,51,52,53,54,56,60,62,65,68,72,73,75,80,81,82,83,87,88,90,91,92,94,99,100,101,102,106,107,109,113,114,116,117,121,123,124,126,127,129,130,132,136,138,139,141,142,146,151,157,162,168,175,224,241,243,256,257,258,259,260,300,301,332,337,342,343,345,351,367,375,413,439],comet:[51,62,343],comfi:126,comfort:[11,16,87,102,107,124,443],comg:49,comlist:187,comm:[18,22,26,35,86,88,112,152,165,166,172,178,370,396,397,421,435,443],comma:[18,50,58,67,80,109,116,117,142,146,182,190,209,235,236,292,296,377],comman:109,command:[0,2,5,7,9,11,12,13,14,16,18,19,23,27,28,29,32,33,35,36,37,39,40,41,44,46,48,50,51,52,54,55,57,58,59,60,61,62,63,64,65,67,68,69,70,71,72,74,75,76,78,79,80,81,82,83,85,87,88,90,91,98,99,102,103,109,110,112,118,120,121,123,124,127,134,135,136,137,139,144,145,146,147,149,150,151,153,154,155,156,158,159,162,163,165,166,168,169,196,199,203,204,205,206,209,210,211,213,214,215,217,218,222,223,224,225,226,228,231,233,236,239,240,243,247,249,250,251,254,256,257,258,259,260,264,265,268,269,270,271,272,273,274,276,277,285,286,288,289,291,292,296,300,301,304,311,314,319,323,324,332,334,337,338,342,343,345,346,352,353,364,366,367,370,372,374,375,384,387,390,416,438,439,442,443],command_default_arg_regex:22,command_default_class:92,command_default_help_categori:31,command_pars:174,commandhandl:[32,176,191],commandmeta:177,commandnam:[22,32,65,109,272,314,323,353,355],commandset:[33,37,108,176,205],commandtest:[8,193,211,222,233],comment:[14,15,48,76,84,92,108,126,136,145,147,155,281,368,374,443],commerc:144,commerci:[7,89,124,155],commerror:197,commit:[2,9,10,16,63,69,84,85,88,92,146,156,157,246,399,406,443],commmand:[249,256,257,258,259,260],commom:443,common:[0,6,11,16,18,19,22,28,32,33,41,42,44,45,46,47,48,54,55,56,58,62,65,68,70,79,85,86,88,95,101,102,107,109,110,113,114,116,117,118,121,123,124,125,127,129,130,141,149,151,155,175,182,187,194,203,209,242,243,250,292,294,304,319,342,346,363,364,373,375,385,387,390,416,423,439],commonli:[9,30,31,36,42,44,45,47,53,58,65,67,83,88,111,115,123,146,149,159,193,253,282,296,416],commonmark:85,commun:[7,18,22,35,40,51,52,62,65,68,70,77,78,86,87,88,89,99,107,108,112,113,114,123,124,144,145,146,153,155,158,168,184,187,194,195,196,197,198,216,236,268,283,295,311,323,324,334,335,337,338,339,340,353,355,370,371,386,442,443],compact:[106,111,142,265],compani:[68,88],compar:[6,8,11,14,16,19,20,65,76,83,90,93,94,97,100,106,107,111,124,127,129,130,193,240,242,253,256,257,258,259,260,291,292,301,345,367,390],comparison:[5,14,30,111,112,193,252,291,301,374],compartment:100,compass:109,compat:[15,28,91,182,253,376,383,390],compet:[16,68,123],compil:[5,22,64,69,76,85,98,113,149,154,155,177,182,188,189,192,194,206,209,216,243,367,372,374,389],compilemessag:64,complain:[3,9,67,107,126,163],complement:[0,45,124,253],complementari:[24,30,42,70],complet:[2,5,8,9,11,12,13,14,15,16,19,20,22,27,37,39,44,45,50,52,54,68,77,78,81,82,84,88,92,97,100,101,104,106,111,115,116,120,121,122,123,124,130,146,151,155,159,162,163,168,175,176,177,190,192,193,207,224,225,227,232,257,265,271,282,296,308,314,316,324,325,342,362,368,373,374,375,387,390,411,430,443],complete_task:232,complex:[5,8,15,16,20,22,30,47,58,67,69,82,83,85,88,101,109,113,115,116,117,118,121,122,123,126,127,129,130,157,159,176,196,218,233,241,251,265,301,346,362,443],complianc:[147,224],compliant:[96,338],complic:[54,75,77,81,82,94,102,107,111,141,142,155,194,214,225,254,362],compon:[0,5,8,22,35,42,49,50,51,53,60,61,62,73,78,81,83,85,94,100,103,112,121,124,129,130,131,133,155,163,165,166,182,192,197,198,199,201,209,212,240,242,252,274,281,283,294,301,302,304,307,314,343,370,373,377,387,390,393,419,442,443],componenta:4,componentid:51,componentnam:51,componentst:51,compos:[157,225],composit:[340,363],comprehens:[5,8,33,35,48,87,122,126,149,158],compress:[32,319,323,327,386],compress_object:386,compris:168,compromis:[158,246],comput:[11,47,54,55,70,81,88,98,111,112,123,127,140,149,153,157,162,180,192,243,390,391,443],computation:47,comsystem:198,con:[26,100,144,194,214],concaten:[113,367],concept:[11,40,47,62,64,79,80,84,85,96,99,102,103,104,116,117,119,121,122,126,205,239,253,442,443],conceptu:[28,81],concern:[64,68,83,97,116,149,175,241,288],conch:[334,337,345],concis:124,conclud:[111,203,374,443],conclus:443,concurr:146,conda:76,conder:368,condit:[5,30,58,80,81,87,106,107,108,111,115,121,122,127,130,145,173,213,243,258,292,296,307,313,314,359,365,390,443],condition:92,condition_result:213,condition_tickdown:258,conditional_flush:381,conduct:134,conductor:138,conect:355,conf:[2,5,8,11,24,25,32,33,41,42,50,53,62,64,67,73,76,79,83,85,90,92,101,102,104,114,126,137,138,141,142,145,146,148,150,151,155,158,168,207,209,276,278,314,320,321,360,368,443],confer:[144,390],confid:[3,84,96],config:[2,7,10,11,12,30,62,76,90,149,151,155,156,201,253,314,316,320,321,332,405,443],config_1:12,config_2:12,config_3:12,config_color:104,configcmd:104,configdict:[334,355],configur:[2,8,12,50,75,85,88,92,101,102,103,113,134,137,148,149,155,157,158,168,171,174,179,201,246,247,253,272,316,321,332,355,357,359,360,363,430,443],configut:7,confirm:[22,51,83,109,145,149,158,182,214,240,338,341,441],conflict:[3,123,139],confus:[0,5,6,11,20,36,39,42,51,54,60,64,74,77,83,88,97,100,107,111,114,117,134,139,155,187,214,282,440],congratul:443,conid:333,conj:[30,58,296,377],conjug:[30,58,165,166,296,366,377,392,395,443],conjur:259,conn:[26,194,214],conn_tim:44,connect:[5,8,12,13,14,17,18,20,22,24,26,32,37,39,40,42,44,45,48,50,51,52,53,55,60,62,63,64,65,68,71,75,76,80,81,82,83,87,88,90,92,99,102,106,107,109,111,112,113,114,115,123,130,134,137,139,145,146,147,149,150,151,153,156,157,158,159,162,163,168,169,170,171,179,180,182,187,194,196,198,201,214,227,229,230,232,247,250,279,281,282,284,295,296,302,310,311,314,316,323,324,325,326,327,332,333,334,337,342,343,345,346,352,353,354,355,356,359,362,364,370,386,413,416,443],connection_cr:45,connection_screen:[25,113,159],connection_screen_modul:214,connection_set:148,connection_tim:[168,296],connection_wizard:[165,166,310,443],connectiondon:316,connectionlost:[316,323,324,334,337,345],connectionmad:[311,323,334,337,345],connectionwizard:312,connector:[311,325,326,332,355],conquer:120,cons3:211,consecut:28,consequ:[155,176],consid:[0,5,6,11,13,14,15,18,19,20,22,28,30,32,33,39,41,42,44,46,47,48,50,52,54,55,58,60,62,67,70,73,75,79,80,83,84,87,88,89,90,96,97,99,105,106,111,113,116,118,121,122,124,126,138,141,142,143,146,149,155,158,168,175,176,225,240,242,243,253,260,272,279,281,282,296,300,301,304,319,334,337,363,365,368,369,374,375,377],consider:[67,82,114,123,136,159,301,376],consist:[12,13,17,22,28,31,33,40,41,51,58,60,67,73,80,83,85,97,101,116,119,120,122,129,130,163,168,174,189,190,196,197,203,210,212,240,242,283,285,292,301,338,343,353,362,364,370,376,390,399,406,441],consitut:114,consol:[0,3,6,7,51,57,60,64,76,85,88,114,116,117,119,130,146,149,154,155,157,162,189,192,243,283,314],conson:242,constant:[68,75,323,388],constantli:[135,271],constitu:[176,190],constitut:13,constraint:[75,146],construct:[2,28,88,94,126,141,301,358,362,367,375,430],constructor:[22,77,79,204,209,253,325],consum:[54,79,209,210,211,218,316,390],consumable_kwarg:209,consumable_nam:209,consumable_tag:[79,209,210],consumable_tag_categori:[79,209],consume_flag:218,consume_on_fail:209,consumer_kei:[137,152],consumer_secret:[137,152],consumpt:[5,146,357],contact:[18,37,155,157],contain:[0,6,8,9,13,14,15,17,20,22,26,28,30,31,33,35,37,44,51,52,53,54,56,60,62,67,72,75,76,77,80,83,84,85,86,87,88,91,92,96,98,99,101,102,107,108,109,111,112,113,114,115,116,122,126,130,134,136,139,141,142,144,149,154,159,162,165,166,168,169,170,172,173,174,175,176,178,181,182,187,189,193,195,201,204,209,216,225,226,229,230,231,232,233,235,240,241,242,243,247,248,250,253,254,258,265,270,272,273,281,282,283,284,286,287,290,296,298,300,301,308,310,313,317,319,345,357,358,359,362,363,364,365,366,367,368,371,373,374,375,376,377,387,389,390,391,413,419,428,438,439,441,443],container:157,contempl:98,content:[5,11,14,17,19,30,35,37,48,50,51,52,53,56,81,85,90,91,96,98,100,102,105,106,107,111,113,115,116,118,119,123,124,125,126,128,130,131,132,133,135,138,141,142,144,151,155,177,180,182,201,202,218,219,243,275,286,294,295,296,365,367,368,369,372,374,376,387,396,406,413,419,428,442,443],content_typ:[295,296],contentdisposit:201,contentencod:201,contentof:376,contents_cach:295,contents_get:[118,296],contents_set:296,contentshandl:295,contest:216,context:[53,60,80,87,102,107,119,139,141,204,232,335,339,423,435,436,438,439,441],context_processor:423,contextu:46,continu:[1,3,8,13,19,22,28,46,47,53,54,59,67,80,81,83,84,87,91,94,100,102,106,108,115,116,129,130,134,152,154,155,201,282,296,312,323,359,362,374,383,390,443],contrari:[49,75,101,113,123,192,253,365],contrast:[39,42,70,98,155,338],contrib:[14,15,50,58,80,85,86,87,90,99,100,101,103,109,112,113,116,120,123,125,127,128,129,143,149,165,166,168,170,171,192,356,367,368,398,399,400,402,403,404,405,406,421,422,430,436,441,443],contribrpcharact:243,contribrpobject:243,contribrproom:243,contribut:[0,8,11,64,77,78,88,89,90,105,112,122,134,143,161,162,199,203,205,206,207,213,224,236,240,241,243,246,247,249,250,251,272,442,443],contributor:[143,204,253],control:[1,2,3,4,9,12,14,15,18,20,22,27,28,29,30,31,32,33,37,40,41,42,44,49,50,55,57,58,60,65,67,69,73,76,79,84,85,86,88,91,99,100,104,109,111,112,113,114,115,119,121,123,124,127,130,136,138,149,151,155,158,161,163,168,169,179,181,182,187,193,203,205,218,231,243,265,269,271,273,284,291,296,304,314,353,355,364,374,377,411,430,443],contrub:79,convei:[243,296],convenei:45,conveni:[2,7,8,18,28,31,32,33,37,39,41,42,48,53,54,62,67,69,74,76,83,85,87,91,99,102,114,115,116,118,119,141,145,156,163,168,182,192,204,209,221,223,236,296,346,357,368,369,374,375,377,383,386,387],convent:[20,45,67,75,111,139],convention:[177,296,364],convers:[8,18,28,30,36,78,138,242,251,342,343,367,390,442],convert:[9,13,18,19,36,41,60,62,65,68,70,81,83,88,96,101,104,106,111,114,119,126,139,144,158,170,180,212,213,225,254,281,291,294,300,301,303,305,323,325,334,337,338,355,359,367,371,374,375,376,377,378,386,389,390,393,413,443],convert_linebreak:389,convert_url:389,convinc:[28,155],cool:[0,76,77,91,121,132,144,182,187],cool_gui:39,cooldown:[94,129,443],coord:[96,279,281,282,284],coordi:96,coordin:[51,81,83,260,273,275,281,282,283,284,443],coordx:96,coordz:96,cope:259,copi:[0,2,5,9,11,14,15,22,26,27,28,41,44,49,50,51,53,73,75,82,88,90,92,101,104,108,109,112,113,130,134,141,151,155,157,159,181,182,206,232,256,257,258,259,260,271,294,296,303,314,323,360,367,383,438,439,443],copy_object:[294,296],copy_script:303,copy_word_cas:390,copyright:[143,155],core:[7,8,11,37,48,57,64,68,81,84,112,117,122,143,159,168,171,192,198,199,201,210,236,288,295,296,304,310,321,331,338,352,362,364,365,368,375,382,430,441,442,443],corner:[17,83,96,99,144,273,281,376],corner_bottom_left_char:376,corner_bottom_right_char:376,corner_char:376,corner_top_left_char:376,corner_top_right_char:376,corpu:242,correct:[8,15,19,20,22,27,30,53,54,60,70,84,85,91,95,107,114,117,124,130,138,139,146,173,179,182,193,197,218,224,240,243,266,281,292,329,332,334,340,354,367,390],correctli:[2,3,6,19,22,27,28,46,47,76,81,83,85,90,94,97,101,106,107,113,130,138,139,145,153,155,163,168,171,176,179,201,209,305,314,323,359,386,413],correl:301,correspond:[22,33,44,53,73,83,106,109,212,240,254,362,399,406,411,430],correspondingli:9,corrupt:98,cosi:82,cosin:390,cosmet:273,cost:[83,93,106,155,201,243,259,273],cottag:[59,82],could:[2,3,5,7,8,9,12,13,14,15,16,18,20,22,28,30,31,33,34,35,36,37,39,41,42,46,47,48,53,54,55,57,58,60,62,65,67,68,69,70,72,73,74,75,76,77,79,80,81,82,83,84,85,87,88,90,91,92,93,94,95,96,97,99,100,101,102,104,105,106,107,108,109,111,113,114,115,116,117,119,121,122,123,124,126,127,129,130,132,134,135,136,137,138,139,140,141,144,149,150,151,152,153,155,156,168,176,182,189,197,198,203,204,209,213,218,219,227,235,241,243,250,252,253,254,265,271,273,282,284,292,296,307,319,338,343,359,364,365,367,368,372,376,377,378,381,385,390,394],couldn:[57,74,88,96,97,107,108,116,139,142,241],count:[18,49,52,88,111,114,116,129,137,159,170,175,206,254,258,296,328,332,345,349,355,357,363,367,374,377,383,394],count_loggedin:332,count_queri:349,countdown:[42,94,109],counter:[9,42,44,77,94,102,106,122,129,165,166,169,199,252,271,332,345,346,353,374,443],counterpart:[14,60,122,319,355,371],countertrait:253,countri:180,coupl:[11,39,77,102,135,157,196,250],cours:[0,5,7,10,16,22,47,53,55,69,74,75,76,77,79,80,83,85,88,90,91,99,107,114,115,116,117,120,121,130,140,143,162,257,260,268],courtesi:55,cousin:[72,107],cover:[0,8,11,14,15,31,53,61,62,66,67,76,83,84,94,99,111,112,113,115,116,122,123,124,137,144,145,146,149,155,161,206,210,218,224,265,271,282,296,390],coverag:8,coveral:8,cpanel:155,cpattr:[26,108,182],cprofil:443,cpu:[5,55,155,158,192],cpython:5,crack:67,craft:[33,58,82,94,121,165,166,199,225,443],craft_recipe_modul:[79,209],craft_recipes_modul:209,craft_result:209,crafted_result:209,crafter:[209,210,211,443],crafting_consumable_err_msg:209,crafting_materi:[79,209,210],crafting_recipe_modul:79,crafting_result:209,crafting_skil:79,crafting_tool:[79,209],crafting_tool_err_msg:209,craftingcmdset:209,craftingerror:209,craftingrecip:[79,209,210,211],craftingrecipebas:[79,209],craftingvalidationerror:[79,209],craftrecip:209,cram:120,crank:47,crash:[0,82,116,121,144,158,318,362],crate:[36,109],crave:161,crawl:158,crawler:[194,328],cre:[26,194,214],creat:[0,3,5,7,8,10,11,13,14,15,16,18,20,25,26,27,28,30,31,33,35,36,39,41,42,44,45,46,49,50,51,53,56,57,61,62,63,69,72,73,74,76,77,78,79,80,81,83,84,85,87,88,89,90,92,94,96,97,98,99,100,101,104,106,107,111,113,115,117,118,119,120,121,122,124,125,126,127,128,129,131,133,134,135,136,137,140,142,143,144,146,148,149,150,152,153,154,155,158,159,162,165,166,168,169,170,171,174,175,176,177,179,182,187,188,189,190,191,192,193,194,196,198,201,202,203,204,205,206,209,210,211,212,213,214,216,217,218,219,221,223,224,225,226,231,232,233,235,236,239,240,241,242,243,247,249,251,253,254,256,257,258,259,260,262,265,268,269,270,271,272,273,281,282,283,284,286,288,292,294,295,296,298,299,300,301,304,307,308,309,311,314,318,319,324,326,327,332,334,335,339,346,352,354,355,357,359,362,363,364,365,366,367,368,369,372,373,374,376,377,378,383,390,398,403,410,415,416,431,434,436,438,439,440,441,443],creataion:279,create_:[37,48],create_account:[19,45,48,86,165,370],create_attribut:362,create_cal:168,create_channel:[18,19,86,165,187,196,370],create_charact:[168,296],create_default_channel:352,create_delai:308,create_evscaperoom_object:223,create_exit:[182,249],create_exit_cmdset:296,create_fantasy_word:223,create_forward_many_to_many_manag:[171,198,288,295,304,362,364,365,382],create_game_directori:314,create_grid:81,create_help_entri:[19,31,86,165,370],create_kwarg:301,create_match:174,create_messag:[19,35,86,165,370],create_object:[13,14,19,33,37,48,79,82,86,106,110,130,141,165,209,221,223,265,296,301,318,368,370,443],create_prototyp:[300,301],create_script:[19,42,48,86,98,129,165,307,368,370],create_secret_kei:314,create_settings_fil:314,create_superus:314,create_tag:363,create_wild:273,created_on:229,createnpc:443,createobj:216,creater:86,createview:440,creation:[6,11,13,15,28,33,37,44,48,67,74,82,83,85,91,100,104,109,110,112,114,121,123,128,130,141,144,165,168,171,182,187,189,196,205,209,240,243,247,249,253,256,257,258,259,260,270,271,275,281,284,288,295,296,301,304,309,347,364,370,372,373,374,376,398,399,403,406,430,434,436,441,442,443],creation_:370,creativ:[69,79,123],creator:[28,33,74,78,82,86,124,130,144,189,196,256,257,258,259,260,296,376],creatur:443,cred:[11,334],credenti:[11,52,53,155,158,168,334],credentialinterfac:334,credit:[11,116,155,158,389,390,443],creset:11,crew:111,criteria:[28,111,197,231,241,300,363,387],criterion:[11,111,114,115,120,168,203,243,287,294,296,303,306,387,390],critic:[0,6,9,20,42,44,57,60,149,151,292,313,314,383],critici:364,cron:151,crontab:151,crop:[30,60,100,182,281,373,376,377,390,443],crop_str:376,cross:[82,83,210,271,279,282,376],crossbario:342,crossbow:94,crossmaplink:[83,282],crossroad:82,crowd:[121,158],crt:[145,151],crucial:[47,107],crucibl:210,crucible_steel:210,cruciblesteelrecip:210,crud:[415,416],crude:[75,209,210],crumblingwal:270,crumblingwall_cmdset:270,crush:91,crypt:120,cryptocurr:158,cscore:130,csessid:[332,342,343,355],csession:[342,343],csrf_token:141,css:[17,50,51,53,71,73,87,113,134,201,389,419],cssclass:51,ctrl:[5,53,116,119,149,151,155,157,162,163,345],cuddli:[114,117],culpa:29,cumbersom:[9,28,138,254],cumul:346,cup:89,cupidatat:29,cur_valu:227,cure:[258,259],cure_condit:258,curi:81,curiou:69,curli:207,curly_color_ansi_bright_bg_extra_map:207,curly_color_ansi_bright_bgs_extra_map:207,curly_color_ansi_extra_map:207,curly_color_xterm256_extra_bg:207,curly_color_xterm256_extra_fg:207,curly_color_xterm256_extra_gbg:207,curly_color_xterm256_extra_gfg:207,curr_sess:355,curr_tim:224,currenc:[106,137],current:[5,6,7,8,9,11,12,14,15,18,19,20,22,26,27,28,30,32,37,39,42,43,44,46,47,51,52,53,55,57,58,60,67,75,76,77,79,80,81,83,88,91,92,93,94,100,106,108,109,111,112,113,114,115,117,122,126,129,130,137,138,141,144,151,157,159,162,168,170,171,173,174,176,177,179,180,182,187,188,189,191,192,194,201,203,204,206,209,216,218,221,224,225,227,232,235,239,241,243,249,250,252,253,254,256,257,258,259,260,264,268,270,271,273,275,282,284,287,294,295,296,301,304,308,309,314,319,324,330,331,334,335,338,346,353,355,357,363,364,372,374,376,377,378,383,384,387,390,398,413,435,436,438,439,443],current_choic:204,current_cmdset:182,current_coordin:273,current_kei:[299,300],current_tim:345,current_us:141,current_weath:42,current_weight:282,currentroom:138,curriculum:144,curs:[3,122],curtain:31,curv:[87,98],curx:81,cushion:126,custom:[0,6,12,13,15,16,17,19,20,22,25,26,32,36,37,41,46,48,52,55,56,58,61,63,65,67,74,75,81,83,86,87,88,91,92,95,98,100,102,103,106,109,111,113,115,120,121,122,123,126,127,129,130,134,135,136,138,139,140,141,143,144,150,152,155,157,159,163,168,169,170,171,173,175,176,177,182,187,188,189,194,196,203,205,206,209,212,213,216,217,218,219,221,224,225,226,232,235,240,242,243,246,247,253,265,268,270,271,273,277,281,282,286,287,294,296,298,299,300,301,303,309,314,318,320,323,345,354,364,369,372,374,375,376,381,384,385,389,390,397,398,400,405,415,416,421,422,439,443],custom_add:232,custom_cal:[232,235],custom_domain:201,custom_evennia_launcher_command:314,custom_gametim:[101,165,166,199,443],custom_helpstr:218,custom_kei:300,custom_pattern:[90,102,132,141,142],customis:273,customiz:[17,78,126,204,225,227,243,265],customlog:145,cut:[18,27,62,79,81,82,87,107,109,123,130,281,301],cute:134,cutoff:390,cvcc:242,cvccv:242,cvccvcv:242,cvcvcc:242,cvcvccc:242,cvcvccvv:242,cvcvcvcvv:242,cvcvvcvvcc:242,cvv:242,cvvc:242,cwho:[26,108,187],cyan:[60,139],cyberpunk:[18,118],cyberspac:144,cycl:[14,15,92,98,101,121,140,256,257,258,259,260],cyril:16,daemon:[5,145,151,157,158,163,331,359],daffodil:118,dai:[2,11,19,69,98,101,121,122,137,139,140,151,157,158,170,210,212,224,378,383,390,391,443],daili:36,dailylogfil:383,dali:242,dalnet:187,dalton:111,dam:98,damag:[15,91,93,106,120,122,123,127,129,158,210,256,257,258,259,260,269,270],damage_rang:259,damage_taken:98,damage_valu:[256,257,258,259,260],damascu:210,danc:83,dandi:74,danger:[6,14,20,44,85,105,175],dare:[22,108,393],dark:[14,15,17,20,31,60,82,83,116,120,122,124,127,139,144,176,224,253,265,271,304,367,368],darkcmdset:271,darker:[60,139],darkgrai:139,darkroom:271,darkroom_cmdset:271,darkstat:271,dash:[85,241,254],dashcount:254,dashlin:30,data:[5,6,9,12,14,16,18,19,30,31,36,41,42,46,48,49,50,51,53,54,65,67,68,70,73,77,79,83,88,92,98,99,100,113,114,117,121,124,141,142,146,151,154,155,157,159,168,169,177,182,189,192,201,209,225,227,231,232,243,246,247,252,253,281,282,283,295,296,298,300,302,307,309,311,312,316,320,321,323,324,325,326,327,332,333,334,335,337,338,339,341,342,343,345,347,352,353,354,355,357,361,362,363,364,365,367,368,369,370,371,373,374,375,376,377,380,383,384,385,386,390,399,400,402,404,406,410,413,416,421,430,434,436,438,439,441,443],data_default_valu:253,data_in:[62,65,247,323,325,326,332,333,337,342,343,353,354,355],data_out:[62,247,332,334,337,338,343,353,354,355],data_to_port:311,data_to_serv:324,databa:314,databas:[2,5,8,10,11,13,14,16,17,18,19,20,23,32,33,34,35,36,37,42,44,45,46,47,48,49,50,52,53,55,57,73,74,75,82,83,85,87,88,90,91,93,94,96,98,99,100,107,108,110,112,113,115,116,118,121,122,123,126,129,130,134,141,142,146,149,157,159,161,162,163,168,170,171,175,176,182,189,192,196,197,198,224,231,232,243,259,271,283,284,285,286,287,288,291,294,295,296,300,302,303,304,305,308,309,314,318,320,331,345,352,361,362,363,364,365,368,370,371,379,381,386,387,390,396,400,403,404,406,416,443],dataclass:377,datareceiv:[316,323,337,345],dataset:300,datastor:67,date:[9,11,13,31,55,64,67,78,81,101,139,141,146,151,154,176,180,192,246,378,383,391],date_appli:141,date_cr:[48,168,171,198,288,304,362,364],date_join:[171,398],date_s:35,datetim:[48,101,141,201,212,362,378,383,384,390,391],datetime_format:390,datetimefield:[67,141,171,198,288,295,304,362,364,390,398],davewiththenicehat:438,david:144,dawn:109,day_rot:383,daylight:122,db3:[5,9,11,82,113,146,162],db3_backup:5,db_:[34,48,67,111,243,294,296,305,319,387],db_account:[206,294,295,304,398,403],db_account__db_kei:403,db_account__id:410,db_account__usernam:410,db_account_id:[295,304],db_account_subscript:[198,400],db_attribut:[45,171,198,295,304,364,398,400,403],db_attribute_categori:253,db_attribute_kei:253,db_attributes__db_kei:111,db_attributes__db_value__gt:111,db_attrtyp:[362,413],db_attryp:36,db_categori:[67,111,362,365,406,413],db_category__iequ:67,db_cmdset_storag:[171,206,295,398,403],db_data:[365,406,413],db_date_cr:[67,171,198,206,288,295,304,362,364,398,400,402,403,404,413],db_desc:[304,410],db_destin:[206,295,398,403],db_destination__isnul:137,db_destination_id:295,db_entrytext:[288,402,413],db_header:[198,400],db_help_categori:[288,402,413],db_help_dict:189,db_help_top:438,db_hide_from_account:[198,400],db_hide_from_object:[198,400],db_hide_from_receiv:198,db_hide_from_send:198,db_home:[206,295,398,403,413],db_home__db_kei:410,db_home__id:410,db_home_id:295,db_index:67,db_interv:[304,404,410,413],db_is_act:[304,410,413],db_is_bot:[171,398,410],db_is_connect:[171,398,410],db_kei:[34,48,49,67,83,102,110,111,114,206,231,288,305,321,362,364,365,398,400,402,403,404,405,406,410,413,430],db_key__contain:48,db_key__exact:111,db_key__icontain:[67,111],db_key__iexact:111,db_key__in:111,db_key__startswith:48,db_locat:[34,49,111,114,206,295,398,403,413],db_location__db_kei:[403,410],db_location__db_tags__db_key__iexact:111,db_location__id:410,db_location__isnul:137,db_location_id:295,db_lock_storag:[198,206,288,362,364,398,400,402,403,404],db_messag:[198,400],db_model:[362,365,406],db_obj:[304,371,404],db_obj__db_kei:410,db_obj__id:410,db_obj_id:304,db_object_subscript:[198,400],db_permiss:67,db_persist:[304,404,410,413],db_properti:319,db_protototyp:300,db_receiver_extern:[198,400],db_receivers_account:[198,400],db_receivers_accounts__db_kei:400,db_receivers_object:[198,400],db_receivers_objects__db_kei:400,db_receivers_script:[198,400],db_receivers_scripts__db_kei:400,db_repeat:[304,404,413],db_sender_account:[198,400],db_sender_accounts__db_kei:400,db_sender_extern:[198,400],db_sender_object:[198,400],db_sender_objects__db_kei:400,db_sender_script:[198,400],db_sender_scripts__db_kei:400,db_sessid:[206,294,295,398,403],db_start_delai:[304,404,413],db_strvalu:362,db_tag:[111,171,198,288,295,304,364,365,398,400,402,403],db_tags__db_categori:[96,111,410],db_tags__db_kei:[96,111,400,410],db_tags__db_key__iexact:111,db_tags__db_key__in:96,db_tagtyp:[365,406,410,413],db_text:67,db_typeclass_path:[67,137,206,295,364,390,398,400,403,404,410,413],db_valu:[34,36,111,321,362,405,413,416],dbef:[303,387],dbentri:189,dbhandler:430,dbholder:362,dbid:[48,169,187,364],dbid_to_obj:390,dbmodel:363,dbobj:[13,362],dbobject:[13,363,364],dbprototyp:[182,300],dbref:[9,14,30,33,35,41,48,55,63,82,83,100,109,114,120,129,138,168,170,171,180,182,187,197,198,225,240,243,249,271,273,275,284,291,294,295,296,301,303,304,306,363,364,370,377,387,390,443],dbref_search:[170,294,303,363],dbref_to_obj:390,dbrefmax:182,dbrefmin:182,dbsafe_decod:386,dbsafe_encod:386,dbserial:[6,13,165,166,305,366,443],dbshell:[9,67,146,163],dbstore:252,dbunseri:371,ddesc:98,deactiv:[88,104,135,149,187,224,269,374],dead:[46,123,253,269,270,352,355,381],deadli:120,deal:[11,16,18,28,31,44,46,53,54,55,70,88,102,107,122,127,129,139,142,158,168,203,204,212,225,256,257,258,259,260,281,282,295,296,353,364,367,384,441,443],dealt:[190,258,259],dealth:258,death:[28,121,127,137,443],death_msg:269,death_pac:269,debat:107,debian:[11,145,146,149,151],debuff:253,debug:[1,7,15,19,28,32,42,53,73,78,107,115,116,153,173,177,181,192,216,217,225,268,298,314,319,325,326,337,359,368,374,383,390,443],debugg:[3,16,163,165,443],dec:64,decemb:155,decend:173,decent:[5,242],decic:242,decid:[15,16,22,30,44,46,67,68,79,80,90,92,100,102,106,121,127,129,139,155,158,161,173,203,256,292,375,443],decis:[47,123,127,413],declar:[60,386],declared_field:[398,399,400,402,403,404,406,430],declared_filt:410,declin:[28,203],decod:[16,338,367,390,438],decode_gmcp:338,decode_msdp:338,decoded_text:390,decompos:141,decompress:[323,386],deconstruct:[120,193,201,211,222,252,266,279,340,388,414],decor:[11,22,45,75,79,80,94,171,193,223,295,296,304,311,323,324,364,370,374,375,390,443],decoupl:[76,300],decoupled_mut:13,decreas:[78,122,259,271,372],decrease_ind:372,dedent:[27,31,390,443],dedic:[8,39,116,117,127,151,155,443],deduc:372,deduce_ind:372,deduct:[106,127,256,257,258,259,260],deem:[11,72,84,99,199,434,436,441],deep:[31,112,144,443],deeper:[24,103,120,254,443],deepest:182,deepli:13,deepsiz:390,def:[3,5,8,13,19,20,22,27,28,30,32,33,34,37,39,41,42,45,48,54,62,77,79,81,82,85,90,91,92,93,94,95,96,97,98,99,100,101,102,104,105,106,107,108,114,115,116,117,118,126,127,129,130,132,135,136,137,138,140,141,142,144,152,193,204,218,224,253,272,273,299,343,356,372,374,375,377,390],def_down_mod:258,defafultobject:114,defalt_cmdset:152,default_access:[13,362,370],default_acl:201,default_categori:287,default_charact:226,default_client_width:30,default_cmd:[4,18,77,83,86,91,92,93,94,95,97,99,100,101,104,108,115,129,165,204,206,224,236],default_cmdset:[25,44,77,92,95,97,99,100,101,104,113,114,115,126,130,176,204,205,206,210,224,225,239,249,254,256,257,258,259,260],default_command:[92,113],default_confirm:[182,240],default_content_typ:201,default_create_permiss:49,default_error_messag:386,default_help_categori:[31,189,286,438],default_hom:41,default_in:51,default_kei:253,default_kwarg:[30,377],default_list_permiss:49,default_out:51,default_pass:370,default_screen_width:22,default_set:[8,113,132],default_sit:421,default_transaction_isol:146,default_unload:51,default_weight:[83,282],default_xyz_path_interrupt_msg:275,defaultaccount:[12,48,86,88,114,115,165,168,169,183,296,388,413,430,434],defaultchannel:[18,48,86,114,165,187,196,435],defaultcharact:[8,13,37,48,67,77,86,92,99,100,101,104,114,115,126,127,130,165,168,184,204,206,226,243,252,253,256,257,258,259,260,296,362,388,430,436],defaultcmdset:213,defaultdict:305,defaultexit:[37,48,83,86,106,114,165,249,250,270,273,284,296,388],defaultguest:[86,165,168],defaultmod:383,defaultobject:[0,4,13,30,37,48,67,82,85,86,88,105,106,110,112,114,117,118,126,135,138,165,168,206,218,243,251,253,257,260,264,265,270,296,364,388,413,430,441,443],defaultpath:390,defaultroom:[37,48,81,83,86,96,98,106,114,140,165,219,224,243,271,273,284,296,388],defaultrout:[412,415],defaultscript:[42,48,86,98,114,129,137,138,165,169,203,212,232,240,241,242,256,257,258,259,260,262,273,283,300,306,307,347,378,388],defaultsess:[115,185],defaulttyp:359,defaultunloggedin:[115,186],defeat:[120,121,127,129,256,257,258,259,260,269,443],defeat_msg:269,defeat_msg_room:269,defend:[28,120,129,256,257,258,259,260,270,296],defens:[122,129,256,257,258,259,260],defense_valu:[256,257,258,259,260],defer:[19,22,54,94,141,171,173,192,198,224,250,288,295,296,304,308,311,321,323,324,355,359,362,364,365,382,383,398],deferredlist:359,defin:[2,3,4,5,6,7,8,12,13,14,15,19,25,27,31,32,37,39,41,47,48,49,51,53,54,55,59,60,62,65,68,70,72,73,75,77,79,80,81,82,86,87,88,90,91,92,95,97,98,99,100,101,102,104,106,107,108,109,111,113,115,116,117,121,123,126,127,130,134,135,138,139,141,143,159,165,167,171,173,175,176,177,179,182,188,189,190,192,193,194,196,197,198,202,204,206,207,209,212,213,216,222,224,225,231,232,235,240,241,242,243,251,253,254,258,259,262,270,271,281,285,286,287,288,290,291,292,293,294,295,296,300,301,303,304,307,309,310,311,314,321,324,345,346,353,354,355,358,361,362,363,364,365,367,368,369,372,374,377,378,382,385,387,390,394,400,402,403,413,416,423,430,438,439,443],define_charact:28,definin:116,definit:[3,8,12,15,22,31,36,37,39,41,47,54,55,59,68,75,83,87,96,102,105,113,126,175,177,182,187,190,229,240,270,290,292,295,300,301,306,368,370,374,377,386,443],deflist:359,degrad:8,degre:[31,119],deindent:390,del:[13,26,39,55,94,100,120,126,129,180,182,224,239,240,252,253,364],del_callback:[230,232],del_detail:224,del_pid:314,delai:[22,26,75,93,137,192,212,225,232,250,265,270,308,309,326,332,355,369,390,443],delaliaschan:[26,187],delayed_import:355,delchanalia:[26,187],delcom:[26,100,108,187],deleg:[171,198,288,295,304,362,364,365,382],delet:[8,9,11,12,13,14,18,20,26,27,28,30,33,36,37,42,44,45,46,50,55,63,77,79,82,83,90,113,114,115,120,126,129,146,149,156,157,162,168,176,179,180,181,182,187,188,189,192,196,198,201,209,219,223,224,229,230,232,233,236,239,240,249,252,253,270,283,288,292,296,300,303,305,306,307,308,309,320,332,353,362,364,367,368,374,381,398,399,406,411,415,431,436,440,441],delete_attribut:362,delete_default:[20,176],delete_dupl:223,delete_prototyp:300,delete_script:303,deletet:224,deleteview:440,deliber:[3,72,122,390],delic:206,delimit:[64,107,190,368,443],deliv:[155,236,243],delpart:240,delresult:240,deltatim:390,delux:155,demand:[42,47,95,100,121,123,127,135,155,168,196,224,253,296,356,369],demo:[53,77,78,87,103,119,120,125,128,131,133,144,267,268,374,443],democommandsetcomm:268,democommandsethelp:268,democommandsetroom:268,demon:41,demonin:390,demonstr:[75,77,90,126,139,141,204,225,246,258],demowiki:90,deni:[18,145,158,231,235],denot:[98,142,281,368],denounc:373,depart:81,depend:[5,6,7,11,13,15,16,18,19,20,22,28,30,32,35,42,44,47,48,51,54,55,56,60,62,64,65,68,75,77,78,79,80,81,82,83,84,87,88,90,99,100,102,106,113,114,115,120,121,123,126,127,129,130,136,141,142,146,149,153,154,155,157,158,159,167,173,175,177,179,192,204,205,213,224,230,242,253,265,273,281,282,284,286,292,296,300,309,314,334,337,343,345,355,364,365,372,374,375,377,390,394,443],depict:219,deplet:[253,258],deploi:[80,85,155,158,443],deploy:[2,7,85,144,155,157,161],depmsg:383,deprec:[19,28,41,165,166,301,310,367,374,383,390,443],deprecationwarn:313,depth:[2,17,31,56,83,120,189,254,289,301],dequ:[13,357],deriv:[8,48,69,98,146,149,151,157,272,367,391],desc:[15,18,26,32,33,34,37,41,42,50,77,79,82,83,91,99,100,102,105,106,108,109,114,122,129,137,142,165,166,176,179,182,187,193,199,204,206,209,210,218,224,239,240,249,254,259,265,273,296,304,312,368,370,372,373,374,430,436,441,443],desc_add_lamp_broken:265,desc_al:269,desc_closed_lid:265,desc_dead:269,desc_open_lid:265,descend:[111,430],descer:443,describ:[8,10,11,13,14,15,18,20,22,26,28,33,39,40,41,48,50,51,53,60,64,67,68,70,73,76,77,80,82,83,84,85,87,88,91,95,100,101,102,106,108,109,113,114,116,117,122,126,129,141,144,146,149,152,154,155,163,175,182,186,187,188,198,206,209,210,212,217,224,241,243,253,259,265,281,282,296,301,307,311,332,334,337,347,374,389,390,403],descripion:269,descript:[0,11,15,16,18,28,32,41,46,50,53,58,72,73,75,77,78,80,81,82,83,85,87,91,96,99,100,106,109,112,121,122,139,141,142,148,155,179,182,187,188,196,203,204,206,217,224,239,241,243,249,252,253,254,264,265,268,269,270,271,272,273,281,284,296,304,368,370,374,384,385,398,403,412,416,443],description_str:82,descriptor:362,descvalidateerror:239,deseri:[6,13,384,413],deserunt:29,design:[0,15,22,37,41,46,53,56,69,72,79,82,84,87,96,99,107,111,113,121,122,123,124,126,135,136,141,144,146,176,182,204,231,243,246,270,296,368,384,390,443],desir:[19,46,47,51,60,69,81,83,90,93,94,99,100,107,130,138,141,182,196,207,223,242,292,314,359,362,370,376,391],desired_effect:210,desired_perm:292,desk:126,desktop:[16,56],despit:[13,14,44,88,99,104,144,149,271],dest:[272,296],destin:[22,32,37,41,50,75,77,81,82,83,92,106,107,118,126,138,182,246,249,250,256,257,258,259,260,270,271,275,276,281,282,284,295,296,301,370,416,436],destinations_set:295,destroi:[8,18,26,37,75,108,109,129,158,168,169,182,187,240,258,296],destroy:249,destroy_channel:187,destroy_compon:218,destroy_lock:411,destruct:[20,175],detach:7,detail:[0,5,9,11,12,13,16,18,22,28,31,33,37,41,42,44,48,50,55,57,60,68,72,73,76,77,78,79,80,82,83,84,85,88,95,100,107,109,113,114,115,116,120,121,122,124,129,134,136,142,146,149,155,176,177,182,196,201,204,209,218,224,240,241,243,253,257,271,273,281,286,288,289,301,308,316,317,353,355,364,367,372,377,390,393,398,403,415,416,431,438,440,441,443],detail_color:182,detailkei:[224,271],detailview:[438,440],detect:[2,18,20,22,37,44,68,85,104,121,126,136,158,174,177,326,377,415,443],determ:363,determin:[5,12,14,16,18,19,20,22,27,28,29,31,33,36,41,42,51,65,79,81,83,90,94,96,97,105,106,109,115,126,127,129,130,134,146,149,163,168,175,176,177,179,187,189,190,193,196,203,242,243,250,254,256,257,258,259,260,270,282,286,288,292,296,300,338,362,363,364,367,372,375,377,383,390,394,398,400,403,410,411,419],determinist:282,detour:[65,91,113,117,355],dev:[31,84,87,88,99,116,124,144,146,149,151,152,155,156,442],devel:113,develop:[0,2,3,5,6,7,11,13,16,18,19,22,30,31,39,41,49,51,53,56,57,58,64,67,68,69,73,76,78,82,84,85,87,88,89,92,98,100,107,109,110,112,113,114,115,116,117,121,123,124,132,134,139,141,146,148,149,152,153,155,159,162,177,180,181,187,188,189,192,196,216,229,230,235,246,286,288,296,301,360,364,365,368,374,442,443],deviat:124,devoid:367,dex:[13,28,100,114,116,122,373],dexter:[122,256,257,258,259,260],diagnos:[6,95],diagon:[83,279],diagram:48,dialog:51,dialogu:[75,78,122,443],dice:[79,107,117,123,127,129,149,165,166,199,443],dicecmdset:213,dicenum:213,dicetyp:213,dict:[8,13,14,20,28,30,31,41,42,45,49,53,68,75,79,80,83,86,92,108,168,169,175,177,182,189,193,196,206,209,212,224,225,229,232,235,242,243,246,247,253,254,258,260,264,271,281,282,283,286,289,296,298,299,300,301,307,309,311,312,314,319,323,324,325,327,332,334,337,342,343,354,355,357,363,368,369,371,373,374,375,377,385,390,430,435,438,439,441],dict_of_kwarg_convert:30,dictat:[20,101,135],dictionari:[6,13,14,20,33,41,54,75,81,87,92,98,101,102,127,129,142,180,182,201,206,212,224,225,229,232,235,242,243,246,247,248,254,258,259,271,273,292,301,308,319,332,341,353,354,355,357,363,367,369,373,374,381,384,385,386,390,430,439,441,443],did:[11,12,64,77,82,88,91,94,99,107,108,109,114,115,116,126,130,159,168,203,296,308,365,386,390,395],did_declin:203,didn:[3,8,28,33,74,77,81,83,85,97,100,107,108,109,110,114,115,116,117,120,134,138,139,141,153,157,159,283],die:[7,107,120,123,127,135,213,242,355],dies:[123,269],diff:[11,154,213,301],differ:[3,5,7,8,11,12,13,14,15,16,19,20,22,27,28,30,31,33,34,36,41,42,44,45,46,47,51,56,57,60,62,63,65,68,70,71,72,74,75,76,77,78,79,80,81,82,83,84,85,87,88,89,91,92,96,97,99,100,101,102,103,105,107,108,109,110,111,113,114,115,116,117,119,121,124,126,127,129,134,136,137,138,139,141,144,145,147,148,149,157,158,162,163,165,168,173,175,176,179,182,189,191,192,194,196,204,209,212,213,214,217,218,221,232,233,236,241,243,250,253,254,256,257,258,259,260,272,273,279,281,282,284,294,296,298,301,303,304,309,312,316,338,343,345,362,364,368,370,374,377,383,386,390,394,395,398,399,406,410,415,416,439,441,443],differenti:[98,99,100,113,114,122,123,206,243,254,296,377,390,394],differnt:218,difficuli:13,difficult:[5,90,96,123,141,158,259,260],difficulti:[79,141],dig:[5,20,22,26,37,41,62,74,75,83,99,100,108,109,113,115,120,130,138,182,216,249,346],digit:[30,55,60,155,241,358,367,377,383],digitalocean:[151,155],dijkstra:[83,281,282],diku:[87,88,103,443],dikumud:72,dime:69,dimens:[81,87],dimension:100,dimenst:117,diminish:60,dimli:82,dinner:[80,123],dip:116,dir:[2,8,9,11,42,53,64,76,78,85,88,91,100,103,114,116,117,142,144,146,148,149,151,154,155,157,383,390,419,443],direcetli:377,direct:[9,20,28,32,41,51,54,55,58,68,75,77,78,81,82,83,89,97,100,109,129,132,136,138,145,155,157,182,193,218,231,247,273,275,279,281,282,283,284,292,294,307,314,374,376,377,383,387,390,443],direction_alias:[83,282],direction_nam:282,direction_spawn_default:282,directli:[3,4,9,11,12,13,14,15,19,22,27,28,31,33,35,37,41,42,48,50,51,52,53,60,62,68,79,80,82,83,84,85,87,88,91,94,95,97,98,100,101,108,109,110,111,112,113,114,116,117,118,121,129,130,136,145,146,153,155,157,159,163,170,177,193,197,201,203,204,205,210,213,216,221,223,235,243,252,253,254,259,260,265,271,272,282,283,284,287,292,294,295,296,300,303,304,320,325,334,337,342,345,347,353,362,364,368,370,374,375,377,388,390],director:[78,243,296,443],directori:[1,2,5,7,8,9,10,11,14,19,48,51,53,73,76,84,88,90,92,100,101,102,112,113,130,134,141,142,145,146,149,154,157,182,201,246,314,334,335,359,368,383,390,443],directorylist:359,dirnam:314,dirti:87,disabl:[5,7,8,27,33,51,60,71,75,90,92,104,126,147,149,177,193,225,243,252,253,254,265,272,292,300,337,357,375,377,381,391,443],disableloc:337,disableremot:337,disadvantag:[100,123,129,155,260],disambigu:[153,177,296,364],disappear:158,discard:367,disconcert:124,disconnect:[6,9,12,13,18,40,44,45,46,51,55,62,99,123,129,130,162,163,168,179,182,187,190,192,196,296,324,325,326,332,333,334,337,342,343,346,352,353,354,355],disconnect_al:332,disconnect_all_sess:355,disconnect_duplicate_sess:355,disconnect_session_from_account:168,discontinu:147,discord:[76,89,124,144,149,153],discordia:69,discourag:[88,123,154],discours:123,discov:[107,120,123,362],discoveri:247,discret:[35,113,416],discrimin:158,discuss:[0,18,22,53,78,83,84,87,89,90,92,102,118,123,129,146,149,443],discworld:68,disengag:[78,129,168,256,257,258,259,260],disguis:58,disk:[13,19,67,69,157,163,242,246,281,286,298],dislik:99,disonnect:13,dispatch:84,dispel:139,displai:[3,5,17,20,22,27,28,31,33,37,42,49,51,52,53,59,60,65,68,73,75,77,78,80,82,83,85,92,95,100,102,104,105,106,107,114,121,126,129,130,134,141,142,158,159,168,177,179,182,187,189,192,193,194,203,204,206,214,217,221,223,224,225,227,230,232,236,243,253,254,265,268,270,271,272,273,279,281,282,284,286,296,300,301,312,314,331,349,352,357,364,365,372,373,374,375,376,384,385,386,389,390,391,400,402,404,405,406,413,430,435,439,440,441,443],display:309,display_all_channel:187,display_buff:372,display_choic:204,display_formdata:225,display_help:372,display_helptext:[298,374],display_len:390,display_map:279,display_met:227,display_nam:377,display_nodetext:374,display_subbed_channel:187,display_symbol:[83,281,282,284],display_symbol_alias:282,display_titl:204,dispos:[82,240],disput:129,disregard:22,dissect:108,dist:[83,149,279,281],distanc:[19,48,80,81,83,88,96,110,242,259,260,279,281,296,390,408],distance_inc:260,distance_to_room:96,distant:[81,224,271],distinct:[44,74,87,88,111,260,410],distinguish:[77,177,254,260],distribut:[3,6,8,9,16,18,20,76,88,112,143,145,146,149,196,198,201,243,367,370,390,393],distribute_messag:196,distro:[145,146,149,151,153],disturb:[19,74],distutil:149,distutilserror:149,ditto:149,div:[17,30,41,51,56,85,132],dive:[77,117,118,119,149,443],diverg:65,divid:[14,30,88,102,212,271,390],dividend:212,divis:252,divisiblebi:102,divisor:212,divivid:122,django:[0,2,8,9,12,13,16,42,45,46,48,49,50,51,52,53,64,67,70,76,87,90,92,96,102,103,113,114,118,119,126,127,132,134,137,142,144,146,149,158,159,168,170,171,177,194,196,198,200,201,202,211,214,252,253,279,284,286,288,294,295,300,303,304,313,314,320,321,334,340,342,343,350,356,357,358,359,362,364,365,368,371,375,380,381,382,386,388,390,395,396,397,398,399,400,401,402,403,404,405,406,410,411,413,415,416,421,422,425,430,434,435,436,438,439,440,441,443],django_admin:431,django_filt:[410,416],django_nyt:90,djangofilterbackend:416,djangonytconfig:90,djangoproject:[64,114,146,430],djangowebroot:359,dmg:127,dnf:[145,149,151],do_attack:269,do_batch_delet:362,do_batch_finish:362,do_batch_update_attribut:362,do_craft:209,do_create_attribut:362,do_delete_attribut:362,do_flush:[364,381],do_gmcp:338,do_hunt:269,do_mccp:327,do_msdp:338,do_mssp:328,do_mxp:329,do_naw:330,do_nested_lookup:182,do_not_exce:92,do_noth:268,do_patrol:269,do_pickl:371,do_search:189,do_sit:126,do_stand:126,do_task:[192,308,390],do_task_act:192,do_unpickl:371,do_update_attribut:362,do_xterm256:367,doabl:15,doc:[10,13,17,18,22,24,28,31,41,48,50,53,56,64,67,72,83,86,88,89,92,103,111,112,113,114,117,122,124,126,134,144,146,162,163,165,182,192,241,272,275,296,325,390,430,442,443],docker:[144,149,155,161,162,443],dockerfil:157,dockerhub:157,docstr:[31,32,92,108,114,115,126,177,182,193,204,210,216,230,242,243,253,254,265,271,272,281,289,345,374,443],document:[0,1,4,5,7,8,11,17,24,26,29,31,42,48,49,50,52,53,56,60,61,64,67,73,75,76,77,78,79,80,82,83,87,88,89,92,94,99,100,103,112,113,114,116,117,119,120,130,132,134,138,141,144,146,147,155,158,159,161,162,176,190,204,241,272,289,362,365,373,381,410,435,438,443],dodg:257,doe:[0,8,11,12,13,18,20,22,28,30,31,33,35,37,39,41,42,46,48,51,52,53,58,59,60,62,68,70,72,74,76,79,81,82,83,84,85,87,88,90,91,92,94,96,98,99,100,102,106,107,108,109,112,113,114,116,117,120,121,122,126,127,129,130,134,135,136,138,139,140,141,143,146,147,148,149,151,157,159,163,168,169,179,190,192,193,194,205,206,207,209,214,216,223,224,239,240,253,254,256,257,258,259,260,270,271,272,273,281,282,296,300,301,307,308,313,314,318,319,320,323,326,334,335,341,362,364,369,374,377,383,386,390,422,430,438,441,443],doesn:[0,2,8,9,13,14,16,22,28,30,35,37,48,51,52,53,67,68,75,76,77,79,80,81,82,83,84,90,94,96,97,99,102,107,108,114,116,117,121,123,126,127,130,134,138,139,141,143,149,152,153,154,155,158,162,163,176,187,196,198,201,205,209,210,224,231,232,243,258,281,282,292,296,314,327,334,338,362,367,374,385,390,398],doesnotexist:[168,169,171,196,198,203,206,212,218,219,224,226,232,240,241,242,243,249,250,251,256,257,258,259,260,262,264,265,269,270,271,273,283,284,288,295,296,300,304,307,321,347,362,365,370,378,382],doff:257,dog:19,doing:[2,5,6,8,12,13,19,20,22,26,28,37,44,47,48,51,53,54,58,60,79,80,81,83,85,88,89,90,94,96,99,100,102,108,111,114,116,117,122,123,128,139,141,142,144,155,163,168,179,196,203,206,209,218,223,231,243,254,256,257,258,259,260,264,269,270,273,291,296,309,345,374,381,386,395,421,443],doll:[79,209],dolor:29,dolphin:108,dom:51,domain:[53,87,145,151,155,158,370],domexcept:155,domin:123,dominion:76,dompc:76,don:[0,3,5,6,7,8,9,11,13,18,19,20,22,27,28,30,31,33,39,42,44,48,53,54,60,64,65,67,68,73,74,75,76,77,79,80,82,83,84,85,88,89,90,91,92,94,95,96,97,100,101,102,103,104,106,107,108,109,111,113,114,115,116,117,119,120,121,122,123,124,127,129,130,132,134,139,140,141,142,146,148,149,151,153,154,155,158,159,168,169,175,176,182,187,188,189,190,191,194,196,204,210,213,218,219,231,235,242,243,252,253,257,258,259,265,271,272,273,275,281,282,292,295,296,300,301,309,319,326,331,332,337,339,346,353,360,364,367,368,374,381,383,386,390,399,411,430,439,443],donald:5,donat:[89,155,443],done:[0,2,5,9,11,13,20,22,28,30,31,33,36,45,47,50,51,52,53,54,64,69,76,77,81,83,84,85,87,88,89,90,91,92,94,95,96,97,98,99,100,101,102,105,106,107,109,113,114,116,117,123,126,127,129,130,134,135,136,137,138,139,141,146,149,151,155,157,163,168,177,179,187,193,198,203,213,242,260,273,281,283,292,295,296,307,308,309,314,318,327,331,333,335,339,343,349,352,353,355,360,362,367,368,375,377,381,390,395,439,443],donoth:307,dont:336,doom:[83,301],door:[19,31,33,37,75,77,81,83,106,109,118,121,158,182,223,249,282,443],doorwai:249,dot:[4,53,77,176,182,368,390],dotal:[367,389],dotpath:390,doubl:[6,77,85,99,116,141,175,194,389,390],doublet:[175,176],doubt:[77,83,272],down:[2,4,5,7,13,20,22,27,28,51,55,67,69,75,77,79,81,82,85,87,90,91,94,96,99,100,104,106,107,112,116,119,120,121,123,125,126,127,128,130,131,133,134,149,155,157,158,159,168,182,187,192,218,232,246,254,257,258,270,273,279,281,282,289,291,296,301,307,309,314,316,323,324,331,332,352,353,355,367,375,376,390,443],download:[0,9,10,11,76,88,112,144,146,149,153,154,155,157,162],downmaplink:[83,282],downtim:[94,158,378],downward:179,dozen:[69,87,92],drag:51,dragon:[98,108,110,114,115,117,123],drain:253,drama:31,dramat:[111,121,126,300,301],dramati:31,drape:206,draw:[15,81,83,85,96,127,376],draw_room_on_map:81,drawback:[15,28,67,93,94,100,110,123,126,127,146,205,253,368],drawn:[81,82,100],drawtext:127,dream:[0,72,87,121,124],dress:206,drf:[410,413],drift:123,drink:[122,218,362,364],drinkabl:218,drive:[11,30,57,76,88,91,112,117,121,123,124,138,141,149,157],driven:[78,92,122,123,124,130,144,251,298],driver:146,drizzl:[42,140],drop:[9,15,22,26,33,35,36,37,51,62,67,68,76,84,87,89,91,92,99,100,102,106,108,109,110,113,114,115,116,123,126,135,136,138,146,155,182,188,194,206,240,251,257,260,265,296,323,364,368,390],drop_whitespac:376,dropdown:7,droplet:151,dropper:[257,260,296],drum:155,dry:151,dtobj:390,duck:[19,116],duckclient:147,due:[5,20,22,45,48,55,62,74,77,88,94,100,101,107,116,139,149,155,159,176,192,295,296,316,352,355,367,383,399],duh:69,dull:[0,82,109],dum:289,dumb:[109,355,367],dummi:[5,8,13,22,33,76,79,116,123,148,209,243,292,314,319,332,345,346,353],dummycharact:252,dummycli:345,dummyfactori:345,dummyrunn:[165,166,310,314,332,344,346,348,443],dummyrunner_act:345,dummyrunner_actions_modul:345,dummyrunner_echo_respons:345,dummyrunner_set:[5,165,166,310,314,344,443],dummyrunner_settings_modul:5,dummyrunnercmdset:345,dummysess:355,dump:[246,323],dungeon:[46,83,87,113,118],dungeonmap:83,dupic:20,duplic:[20,84,175,182,309,364,383],durat:[54,93,140,192,258,384,391,443],dure:[6,13,20,33,44,45,51,62,63,73,74,76,83,85,94,117,121,123,129,130,134,140,144,149,157,168,175,187,193,201,209,216,224,240,269,271,272,281,282,292,308,323,333,368,370,374,383,403,430,443],duti:88,dwarf:82,dwarv:123,dying:[123,256,257,258,259,260],dynam:[8,12,30,42,47,51,52,53,58,67,78,82,83,85,105,111,113,132,141,155,168,171,177,189,192,193,198,225,243,253,254,256,257,258,259,260,279,282,284,288,295,296,300,304,309,362,364,365,370,372,374,382,384,390,398,403,419,441,443],dyndns_system:155,each:[2,3,5,6,8,12,13,14,18,19,20,22,24,28,30,31,33,41,44,46,47,48,50,51,53,54,57,60,62,65,67,69,74,75,77,78,79,81,82,83,85,87,88,90,94,96,98,99,100,101,102,105,106,108,111,112,114,115,116,117,119,121,127,128,129,130,134,138,139,140,141,157,159,168,174,175,176,180,182,187,189,191,193,196,203,205,206,207,209,218,223,224,225,240,242,243,253,254,256,258,259,260,265,266,273,279,281,282,283,284,286,288,289,292,295,296,299,300,301,306,309,316,319,332,334,337,341,346,353,354,355,362,364,365,367,368,370,372,373,374,375,376,377,381,390,413,416,419,443],eagl:126,eaoiui:242,earler:109,earli:[2,124,256,257,258,259,260,316],earlier:[2,7,11,14,18,20,28,31,32,76,88,100,101,106,108,115,116,117,121,130,132,138,142,148,253,282,286,319],earn:124,earnest:[118,123],earth:[105,158],eas:[20,22,67,96,114,139,155,157],easi:[0,7,8,9,11,14,17,22,28,31,37,42,48,53,54,58,68,69,70,74,75,77,80,82,83,85,87,94,96,98,101,102,104,105,106,108,115,116,117,121,123,124,126,127,129,130,136,139,141,142,144,146,151,153,155,157,176,180,206,209,221,225,253,254,374,381],easier:[13,28,31,41,42,49,50,53,54,55,67,77,83,84,87,90,92,96,98,99,100,101,102,107,108,111,114,115,116,117,119,120,121,123,124,126,127,134,139,155,182,210,242,254,256,257,258,259,260,270,275,284,356,362,365,390],easiest:[9,11,16,19,49,53,55,64,73,75,79,80,83,92,95,100,114,130,141,149,151,246,364],easili:[7,11,14,15,17,18,19,22,28,31,33,35,41,44,45,46,51,53,55,58,64,65,68,69,74,75,79,80,81,82,84,85,89,90,92,93,96,100,101,106,107,109,111,113,114,115,118,120,121,122,123,127,130,132,134,141,149,155,156,157,158,187,196,198,203,204,206,225,227,231,242,249,253,254,256,257,258,259,260,272,275,286,287,288,309,368,374,385],east:[81,82,83,92,97,182,271,281,282],east_exit:271,east_west:82,eastern:[82,101,281,283],eastward:271,eat:[216,218],echo1:94,echo2:94,echo3:94,echo:[0,2,19,22,27,30,41,54,55,58,74,81,85,93,94,97,108,109,115,116,122,129,130,136,140,150,152,155,156,157,159,163,168,169,180,182,187,192,193,206,213,243,264,269,270,271,275,296,312,319,334,337,372,374,390,443],echocmdset:108,echol:162,echowoo:108,econom:[67,87,113,114,117,123,144],economi:[42,69,121,127,137,203,443],ecosystem:157,edg:[11,19,56,83,193,210,281,282,376,390],edgi:81,edibl:218,edit:[0,6,7,9,13,14,15,18,22,25,26,31,33,39,41,49,51,52,62,64,67,73,75,76,78,80,82,83,84,90,92,95,98,100,101,102,104,114,119,123,134,141,142,144,146,148,151,154,157,159,180,182,189,192,204,214,225,229,230,232,233,239,240,292,296,298,300,301,362,372,402,403,411,430,436,440,441,443],edit_callback:[230,232],edit_handl:182,editcmd:77,editi:253,editnpc:443,editor:[6,11,16,22,30,31,41,49,64,69,75,76,77,80,82,85,86,91,99,116,117,144,149,151,182,189,191,192,204,239,304,368,372,443],editor_command_group:372,editorcmdset:372,editsheet:100,edu:393,effect:[8,9,13,15,18,19,20,25,36,42,45,47,53,54,60,72,74,78,82,83,85,93,94,96,98,99,100,116,117,121,122,123,126,127,129,135,139,159,163,168,175,176,182,191,196,200,210,213,218,232,253,257,258,259,269,271,282,294,296,302,304,327,390,442],effici:[0,5,13,36,42,46,47,48,67,87,88,93,94,96,98,111,117,126,140,144,158,203,243,250,281,282,284,292,296,309,362,363,365,372,375],effort:[11,84,98,113,142,436],egg:[79,154,209],egg_info:149,egi:316,egiven:294,eight:218,eightbal:118,either:[5,6,9,11,14,17,19,20,22,28,30,33,39,41,42,44,46,48,51,53,55,58,59,65,75,76,79,80,81,82,83,84,90,94,96,97,98,99,100,102,107,108,110,111,113,114,116,117,120,123,126,127,129,130,138,139,146,155,158,163,168,169,175,176,177,182,187,197,204,209,229,235,236,242,243,249,253,254,256,259,260,265,281,282,283,284,292,296,299,301,304,306,307,309,312,323,335,339,346,363,364,365,374,376,377,383,385,387,390,393],elabor:[77,85,90,106,107,130],electr:155,eleg:84,element:[5,13,17,28,30,53,56,59,77,79,83,87,107,114,115,116,118,174,179,189,193,201,204,212,241,242,281,283,284,296,301,362,363,365,368,373,374,375,377,390],elev:[78,80,105,443],elif:[28,42,75,81,100,108,118,127,129,130,135],elig:[201,377],elimin:[157,367],elimit:390,ellow:[60,367],els:[3,8,11,12,18,19,22,28,31,33,34,39,42,47,51,53,54,55,57,58,75,76,77,79,80,81,82,85,91,92,94,95,96,100,102,104,105,106,107,108,109,115,116,118,121,124,126,127,129,130,135,137,138,141,142,146,155,158,187,193,201,203,206,225,241,256,257,258,259,260,273,295,343,364,374,390,443],elsennsometh:193,elsewher:[12,20,46,53,94,100,112,114,141,176,271,282,314,355,362],elv:123,elvish:242,emac:[15,144],email:[11,23,35,88,113,118,119,149,151,162,168,170,214,370,384,390,391,398,430,443],email_login:[165,166,199,443],emailaddress:390,emailfield:[398,430],emb:[41,58,83,85,100,224,301],embark:138,embed:[30,41,48,53,71,83,113,122,189,196,281,299,373,377,390],emerg:[39,64,158],emi:242,emit:[51,69,92,108,168,176,180,196,226,296,353,383],emit_to_obj:[176,296],emo:91,emoji:147,emot:[18,22,26,30,31,58,78,87,122,123,124,129,168,188,203,216,242,243,362,377],emoteerror:243,emoteexcept:243,empathi:210,emphas:85,emphasi:85,emploi:391,empti:[3,6,8,9,11,12,15,18,20,22,28,34,37,42,47,48,50,51,53,54,67,68,75,76,79,81,83,85,88,100,102,107,108,111,113,114,115,116,117,118,122,126,127,130,132,135,142,148,149,151,157,162,173,174,180,182,187,193,204,209,227,229,243,253,281,282,296,300,301,312,319,323,345,346,362,368,370,374,376,387,390,399,406],emptor:201,empty_color:227,empty_permit:[400,402,404,406,430],empty_symbol:281,empty_threadpool:359,emptyset:20,emul:[5,44,72,88,122,123,130,154,192,253,443],enabl:[7,51,60,139,142,145,146,147,152,157,158,168,202,225,243,252,337,391],enable_recog:243,enableloc:337,enableremot:337,enact:216,encamp:80,encapsul:384,encarnia:144,encas:372,enclos:[25,27,116,194,214,377],encod:[19,26,61,82,83,100,194,282,325,338,342,343,367,386,390,438,443],encode_gmcp:338,encode_msdp:338,encoded_text:390,encompass:19,encount:[176,282,294,377,391],encourag:[77,89,96,107,132,147],encrypt:[65,145,151,158,187,201,334,335,339,443],encumb:122,end:[0,5,9,11,14,15,19,20,22,27,28,30,31,33,36,41,44,45,51,54,57,59,60,62,64,65,67,68,69,73,74,76,77,83,85,87,88,91,92,93,94,96,100,101,102,104,107,109,111,113,115,116,117,119,120,122,123,126,127,129,130,136,138,139,141,142,145,146,148,150,151,155,157,162,168,169,175,176,182,188,189,203,205,206,210,213,218,221,227,239,243,251,254,256,257,258,259,260,271,281,282,287,318,325,326,334,337,338,345,348,353,357,359,363,367,368,370,374,375,376,377,383,390,439],end_convers:28,end_direct:282,end_turn:129,end_xi:[83,281],endblock:[53,102,132,141,142],endclr:377,endcolor:30,endcoord:279,endfor:[102,141,142],endhour:92,endif:[102,141,142],endless:53,endlessli:158,endpoint:[49,158,415,416],endpoint_url:201,endsep:390,endswith:367,enemi:[13,28,41,94,120,121,129,258,259,260,269,270,271,443],enemynam:28,enforc:[22,39,54,60,121,127,139,334,337,375,376,436,443],enforce_s:376,engag:[87,260,269],engin:[2,8,11,22,31,37,74,77,78,88,98,115,120,127,134,144,146,158,159,161,173,176,189,191,192,209,247,271,287,314,325,331,334,337,342,352,354,368,370,394,443],english:[6,16,30,58,64,70,144,194,393,394],enhanc:[60,104,116,246,367,440],enigmat:109,enjoi:[7,107,120,121,124,149,443],enough:[3,18,33,34,36,46,47,69,79,83,85,87,88,89,90,91,94,96,99,100,102,106,107,108,111,112,114,115,117,121,126,130,134,139,149,151,155,176,182,193,209,241,242,265,273,282,374,375,376,443],enpoint:413,ensdep:390,ensur:[7,8,81,102,135,139,146,157,254,357,388,436],ensure_ascii:343,enter:[0,2,3,5,9,11,14,15,16,18,19,20,22,25,28,30,31,36,37,39,41,52,53,58,60,63,65,72,73,75,76,77,78,80,82,83,88,91,92,94,97,100,101,102,106,107,115,116,119,120,126,129,130,132,135,141,146,149,154,157,162,165,168,174,176,181,189,190,192,203,204,206,218,221,224,225,235,254,256,257,258,259,260,269,271,273,291,296,301,304,312,353,374,419,430,443],enter_guild:28,enter_nam:28,enter_wild:273,enterpris:2,enthusiasm:124,enthusiast:[78,123],entir:[8,13,14,15,19,22,27,28,30,31,33,47,48,53,54,57,67,69,77,80,81,82,83,94,102,107,112,113,116,121,123,130,134,155,204,242,243,254,272,281,282,283,284,292,296,300,301,364,365,368,374,376,381,390,439,443],entireti:[28,127,217,225,374],entit:[370,443],entiti:[13,18,19,28,30,31,33,34,35,36,37,39,41,42,44,45,46,48,50,53,58,83,86,88,110,111,112,113,114,118,121,126,129,139,167,168,177,182,187,192,196,197,198,209,218,243,249,264,283,284,286,288,289,291,294,296,298,299,300,301,302,304,305,307,309,355,362,363,365,370,374,375,377,380,387,390,406,416,443],entitiess:88,entitii:45,entitl:155,entranc:[82,83],entri:[11,16,19,20,22,24,28,33,45,53,90,92,100,102,107,108,112,114,118,123,138,147,148,149,153,168,177,189,190,193,201,209,218,227,241,254,256,257,258,259,260,285,286,287,288,289,292,296,309,333,346,357,362,368,370,372,374,376,383,384,387,390,391,402,410,413,416,431,435,438,443],entriest:179,entrypoint:157,entrytext:[31,102,286,288,370],enul:145,enumar:390,enumer:142,env:[201,314,324],environ:[1,2,9,14,52,76,85,88,90,92,105,116,121,123,124,149,150,155,157,158,192,193,201,211,222,266,268,279,314,324,340,349,368,374,388,414,431],environment:314,envvar:149,eof:334,epic:144,epilog:272,epoch:[19,101,378],epollreactor:359,epub:144,equal:[6,20,22,56,57,60,75,80,83,92,96,107,109,111,114,115,123,138,175,187,224,243,252,253,256,257,258,259,260,296,390],equip:[15,60,78,99,113,122,123,206,256,257,259,260],equival:[9,13,14,30,36,50,53,54,58,60,62,68,83,112,116,118,149,158,159,163,167,170,182,275,281,282,287,294,303,332,338,362,390,411,439],eras:[76,260],err:[100,323,345,368],err_travers:[37,296],errback:[54,311,314,323,324,390],errmessag:175,errmsg:[130,383],erron:[70,130,323,376],error:[0,3,4,6,8,9,11,13,15,16,18,19,20,22,28,30,32,33,36,37,39,41,44,48,53,54,64,65,67,70,73,76,77,79,82,83,84,85,88,98,99,100,103,107,109,114,115,117,118,120,124,126,130,136,137,141,145,146,147,149,151,152,154,155,158,159,165,166,168,173,175,176,182,187,194,196,209,211,232,241,243,253,254,270,272,280,282,283,284,292,294,296,299,300,307,308,311,313,314,316,318,319,323,337,345,364,367,368,370,373,374,377,383,386,390,391,396,411,413,429,433,438,443],error_check_python_modul:314,error_class:[400,402,404,406,430],error_cmd:97,error_consumable_excess_messag:209,error_consumable_missing_messag:209,error_consumable_order_messag:209,error_msg:357,error_tool_excess_messag:209,error_tool_missing_messag:209,error_tool_order_messag:209,errorlist:[400,402,404,406,430],errorlog:145,escal:[12,39,57,123,179,291,365],escap:[30,60,78,83,102,188,192,216,219,272,367,377,389,430],escape_char:377,escaperoom:219,escript:[77,204],esom:189,especi:[5,16,33,39,44,46,77,82,94,113,114,116,121,145,146,149,227,242,368],esqu:114,ess:29,essai:144,essenti:[7,58,70,81,93,98,113,123,144,151,154,197,314,370],est:[29,193],establish:[22,44,121,122,123,127,151,168,256,296,311,323,325,332,334,337,342,345,352,354],estim:[95,281,301,381],esult:296,etc:[0,8,11,12,13,18,19,22,25,28,30,31,33,34,35,36,37,39,41,42,44,45,48,50,51,52,53,55,58,62,65,67,68,69,71,77,78,81,83,85,86,87,88,92,94,95,98,99,100,101,108,109,111,112,113,121,122,123,126,127,129,137,139,140,144,145,146,149,151,157,158,163,168,171,173,174,175,176,179,181,182,187,190,192,194,201,203,207,210,212,218,219,225,227,240,242,243,249,253,257,259,265,272,281,282,283,284,296,300,301,332,334,337,341,342,343,353,354,362,364,367,368,370,371,372,373,374,377,383,390,394,399,406,410,416,419,441],etern:28,ev_channel:169,evadventur:[123,128],eval:[30,41,203,390,443],evalstr:292,evalu:[22,30,85,111,122,124,174,203,292,374,377],evbot:[187,355],evcast:144,evcel:[373,376],evcolor:144,evcolumn:376,eve:390,eveditor:[24,26,31,77,86,165,166,204,366,443],eveditorcmdset:372,even:[0,3,5,6,7,11,13,15,18,19,20,27,28,31,33,39,42,44,47,48,49,50,55,57,60,64,67,69,72,73,76,77,78,80,81,83,84,87,88,89,90,91,92,94,96,98,99,100,101,102,103,106,107,111,112,114,115,116,117,120,121,122,123,124,126,127,128,129,130,136,139,148,149,155,158,163,168,175,177,180,187,189,196,206,209,212,224,225,242,253,256,257,258,259,260,271,272,281,282,284,296,300,301,337,374,376,377,381,390,438,443],evenia:112,evenli:[19,83,212,282,390],evenn:157,evenna:76,evenni:90,evennia:[1,2,5,6,10,12,13,14,15,16,17,18,19,20,22,24,25,26,27,28,29,31,32,33,34,35,36,37,39,40,42,44,45,46,47,48,50,52,53,54,57,58,59,60,61,62,63,65,67,68,69,70,72,73,75,77,78,79,80,81,82,83,84,86,88,89,91,93,94,95,96,97,101,102,103,104,106,108,109,110,111,113,114,115,117,118,119,120,121,122,124,126,127,129,130,132,134,135,136,137,138,140,141,142,143,147,149,150,153,156,158,159,161,162,443],evennia_access:145,evennia_admin:401,evennia_channel:[150,153,156,187],evennia_dir:390,evennia_error:145,evennia_gener:134,evennia_launch:[7,165,166,310,312,443],evennia_logo:[53,134],evennia_runn:7,evennia_server_port:40,evennia_superuser_email:149,evennia_superuser_password:149,evennia_superuser_usernam:149,evennia_vers:314,evennia_websocket_webcli:342,evennia_wsgi_apach:145,evenniaadminapp:421,evenniaadminsit:421,evenniaapiroot:412,evenniacreateview:[434,440,441],evenniadeleteview:[440,441],evenniadetailview:[440,441],evenniaform:430,evenniagameindexcli:316,evenniagameindexservic:317,evenniaindexview:[53,439],evennialogfil:383,evenniapasswordvalid:358,evenniapermiss:[411,416],evenniareverseproxyresourc:359,evenniaserv:40,evenniatest:[193,222,233,248,266,279,340,388,414,431,443],evenniaupdateview:[440,441],evenniausernameavailabilityvalid:[168,358],evenniawebtest:431,event:[28,31,45,51,78,88,124,127,158,165,169,203,212,218,231,232,233,235,243,246,265,304,307,356,443],event_nam:[231,235],eventdict:383,eventfunc:[75,165,166,199,228,232,443],eventhandl:232,eventi:[177,204,272],eventu:[13,22,39,55,57,64,65,68,89,90,94,100,120,121,123,124,129,130,134,141,155,163,168,173,174,191,213,218,219,242,243,265,271,292,296,301,311,319,345,353,354,365,369,370,374,376,428],evenv:[2,6,7,88,90,149,154],evenwidth:376,ever:[9,11,13,14,15,16,22,30,42,44,46,48,55,67,70,77,82,83,88,99,107,111,114,122,127,136,146,162,163,216,219,242,282,309,325,326,332,362,374],everi:[0,2,5,8,9,10,11,14,18,19,20,22,28,30,31,32,35,41,42,46,47,48,58,67,69,70,73,75,80,81,82,83,84,85,88,90,91,93,96,99,101,102,106,107,108,109,111,113,114,116,117,122,127,129,130,134,137,138,140,141,142,149,151,154,155,157,159,168,182,187,193,201,206,211,217,225,232,242,243,254,256,257,258,259,260,262,268,273,281,282,296,301,307,309,319,336,346,352,361,362,364,374,375,376,377,390,399,406,443],everror:232,everyon:[8,9,11,18,22,28,31,33,36,42,46,57,58,64,88,91,100,114,117,118,121,123,124,127,129,130,138,140,143,147,152,156,162,163,182,187,188,189,213,218,219,221,256,257,258,259,260,332],everyong:58,everyth:[0,2,3,6,8,9,11,13,20,36,39,41,47,49,50,51,53,57,65,70,73,76,81,82,83,85,87,88,91,93,100,102,104,106,107,108,113,114,115,116,117,118,119,120,121,122,124,126,127,129,131,134,144,149,151,153,154,155,157,158,159,162,163,172,177,187,188,190,192,193,194,205,209,210,214,253,271,291,295,304,318,345,353,362,364,368,374,443],everywher:[76,98,113,151],evform:[19,86,165,166,366,443],evgam:187,evgamedir:85,evict:357,evid:153,evil:[5,15,151,265,301],evilus:187,evmenu:[19,22,24,77,78,86,100,106,123,165,166,192,193,204,217,225,251,254,268,298,366,375,443],evmenucmdset:374,evmenuerror:374,evmenugotoabortmessag:374,evmenugotomessag:374,evmor:[24,26,31,86,165,166,300,366,443],evscaperoom:[165,166,199,443],evscaperoommenu:217,evscaperoomobject:[218,219],evtabl:[19,22,81,82,86,165,166,177,187,225,300,366,373,375,390,443],ewmaplink:[83,282],ewonewaymaplink:[83,282],exact:[5,22,28,39,72,111,114,118,168,170,174,182,187,191,197,209,243,253,260,287,294,296,300,301,363,364,386,387,390],exact_consum:209,exact_consumable_ord:[209,210],exact_tool:209,exact_tool_ord:209,exactli:[3,5,9,11,12,30,31,39,42,47,50,54,57,59,60,62,65,67,79,80,82,83,85,88,100,101,102,107,108,111,112,114,116,118,122,123,127,130,134,149,157,163,187,209,243,253,281,282,294,296,314,364,387],exam:[26,182],examin:[7,11,12,13,22,26,33,47,51,55,65,74,77,100,106,107,108,109,111,127,130,168,182,193,203,216,265,270,271,346,362,377,398,411,443],exampl:[2,4,5,6,7,10,11,12,13,14,15,16,17,18,19,20,22,26,31,32,34,35,36,37,41,44,46,47,48,49,50,54,57,58,59,60,62,64,65,67,68,72,73,74,75,77,79,81,82,84,85,87,88,90,91,92,93,94,95,97,98,99,100,101,104,105,106,107,108,109,110,111,113,114,115,116,117,118,120,121,122,123,124,126,130,134,135,136,138,139,140,141,145,146,149,151,152,156,157,158,159,163,165,166,168,171,174,175,176,177,180,181,182,187,188,189,190,191,192,193,196,198,199,203,204,206,209,210,211,212,213,216,218,223,224,225,226,227,236,240,241,242,243,246,249,250,251,252,253,254,256,257,258,259,260,262,265,269,271,272,273,274,275,279,281,282,283,284,286,288,289,292,295,296,301,304,307,309,314,319,334,337,338,343,346,355,359,362,364,365,366,367,369,373,374,375,376,377,378,382,383,384,387,388,390,391,393,394,399,406,415,416,430,439,443],example_batch_cod:[14,165,166,199,261,443],example_recip:[165,166,199,208,209,443],example_recipi:209,excalibur:106,exce:[105,202,256,257,258,259,260,357,381],exceed:357,excel:[33,69,98,144,151],excempt:175,except:[6,13,15,19,20,22,27,30,31,33,37,41,42,49,50,53,54,57,60,65,76,77,79,80,82,83,85,88,90,91,93,94,96,100,107,109,111,113,115,116,117,118,123,129,130,136,137,138,139,141,142,149,154,155,168,169,171,173,176,177,190,191,196,197,198,203,206,209,212,218,219,224,226,231,232,235,239,240,241,242,243,249,250,251,253,256,257,258,259,260,262,264,265,269,270,271,272,273,280,281,282,283,284,288,291,292,294,295,296,300,304,307,308,314,319,321,323,335,337,339,343,347,359,362,365,367,370,373,374,376,377,378,382,383,385,390,398],excepteur:29,excerpt:27,excess:[33,41,77,126,190,209,295,368,390],exchang:[14,52,122,155,203,371],excit:[25,108,109,123,148],exclam:91,exclud:[58,88,111,118,130,137,196,206,240,271,294,295,296,372,374,408,410],exclude_cov:206,excluded_par:408,excluded_typeclass_path:182,excludeobj:294,exclus:[28,31,33,35,121,265,296,304,363,374,390],exclusiv:370,exe:[7,9,149],exec:[28,30,41,106,301,374,390],exec_kwarg:374,exec_str:349,execcgi:145,execut:[2,7,8,9,14,15,20,22,27,28,30,36,37,41,42,51,52,53,54,55,57,59,65,71,75,76,77,80,82,88,92,93,94,101,102,106,107,113,116,120,123,149,154,168,169,171,172,173,177,180,181,190,192,193,198,204,210,216,232,243,254,264,265,271,272,288,291,292,295,296,301,302,304,308,311,319,321,324,325,331,334,337,342,345,346,349,352,353,362,364,365,368,374,375,377,382,390,419,443],execute_cmd:[12,22,37,130,135,136,168,169,177,296,319,353],execute_command:22,executor:2,exemplifi:[31,62,83,93,117,120,122],exercis:[3,82,91,100,106,116,129,130,140,202,211,252,340,350,382],exhaust:[18,77],exhaustedgener:241,exidbobj:296,exis:97,exist:[0,2,5,6,9,11,12,13,14,18,19,20,22,25,26,28,33,41,42,44,46,47,53,55,62,64,67,75,77,79,80,81,82,83,88,91,92,96,97,98,99,100,102,109,110,111,113,115,116,120,121,124,126,129,130,132,134,135,142,146,150,153,157,167,168,169,175,176,177,182,187,189,190,192,201,202,204,205,210,217,223,224,229,231,232,235,236,239,240,242,243,250,253,259,270,273,281,282,283,284,289,291,292,295,296,298,300,301,308,314,318,320,334,335,337,339,347,352,353,355,362,363,364,365,368,370,372,373,374,376,377,383,385,390,398,416,443],existen:353,exit:[7,9,20,27,28,33,41,48,49,50,67,77,81,82,83,86,91,96,100,103,106,107,108,109,110,113,114,116,117,118,120,130,138,146,149,157,162,165,173,175,176,182,192,203,204,219,233,249,250,254,260,265,269,270,271,272,273,275,276,281,282,283,284,291,294,295,296,301,318,334,346,362,370,372,374,375,388,410,413,416,431,443],exit_alias:[182,249],exit_back:100,exit_cmd:[28,375],exit_command:296,exit_dest_x_coordin:83,exit_dest_y_coordin:83,exit_dest_z_coordin:83,exit_nam:[81,182,249],exit_on_lastpag:375,exit_ther:100,exit_to_her:182,exit_to_ther:182,exit_typeclass:[273,388,431],exitbuildingmenu:77,exitcmdset:[20,296],exitcommand:296,exitnam:249,exitobject:97,exitviewset:416,exixt:332,exot:22,exp:373,expand:[11,32,37,49,58,60,73,74,75,78,79,81,82,88,89,90,91,99,100,104,106,108,109,111,113,114,115,116,117,121,122,123,124,130,131,135,137,140,146,155,159,165,166,182,199,214,249,256,257,258,259,260,275,296,367,376,443],expand_tab:376,expandtab:[367,376],expans:[78,97,121],expect:[5,6,8,9,22,30,35,36,37,45,47,53,54,58,64,65,68,70,75,76,83,84,85,98,100,107,113,114,116,118,120,121,123,124,130,139,142,151,154,155,182,190,193,201,204,209,229,231,241,273,279,281,282,291,296,300,301,312,314,364,374,375,377,381,390,395,399,406,416,422,441],expected1:193,expected2:193,expected_1st_or_2nd_person:395,expected_3rd_person:395,expected_direct:279,expected_input:193,expected_path:279,expected_return:8,expectlst:279,expectstr:279,expens:[47,155,294,387],experi:[0,3,11,28,30,73,79,82,99,101,104,108,111,116,117,120,121,127,128,149,155,157,187,218,264,443],experienc:[1,13,28,88,116,119,144],experienced_betray:28,experienced_viol:28,experiment:[32,53,192,400,403],expert:253,expir:201,explain:[8,11,22,26,28,49,53,67,72,77,83,87,88,96,100,109,113,123,126,134,138,139,142,144,152],explan:[20,22,50,60,88,92,96,102,219,358,443],explanatori:50,explicit:[20,62,68,72,75,77,85,102,107,134,146,152,159,241,314,336,362,374,394],explicitli:[6,13,20,31,33,34,36,39,41,42,46,47,48,60,65,67,76,83,90,91,95,100,106,114,115,117,122,123,149,151,176,177,182,189,193,241,253,282,286,296,301,309,362,364,367,370,386,413],exploit:[123,365,367,377,390],explor:[3,12,48,53,54,65,75,82,83,102,109,114,116,120,129,149,159,192,443],expos:[142,158,265,438],express:[22,28,30,33,41,52,73,74,85,98,111,114,118,132,142,182,212,241,260,362,390,419],ext:28,extend:[18,19,30,42,48,50,53,67,69,82,85,87,96,98,102,106,108,112,113,115,116,119,125,127,128,131,132,133,135,136,141,142,144,161,162,171,177,189,193,196,201,205,207,209,210,224,232,235,273,281,295,296,364,384,403,430,439,440,441,443],extended_room:[165,166,199,443],extendedloopingcal:309,extendedroom:224,extendedroomcmdset:224,extendng:210,extens:[6,8,28,31,60,68,76,82,83,85,87,88,98,109,113,114,121,132,146,149,159,171,201,247,256,276,329,337,370,380,389],extent:[77,98,123,127],exter:187,extern:[7,16,35,41,59,62,69,78,82,99,113,117,121,123,124,126,145,146,148,149,150,151,153,155,156,161,165,176,187,193,195,198,246,300,312,314,316,370,443],external_discord_hello:319,external_receiv:198,extra1:30,extra2:30,extra:[0,8,13,15,18,20,22,28,30,31,33,37,45,48,51,53,56,71,83,84,85,91,92,94,99,100,108,116,117,122,123,130,134,139,142,145,146,155,168,171,177,189,193,196,203,209,224,226,239,243,252,253,265,271,296,299,300,309,311,363,367,368,372,374,375,376,377,383,384,385,389,390,398,399,406,443],extra_environ:368,extra_launcher_command:[83,276,277],extra_opt:374,extra_spac:390,extract:[6,13,30,45,98,107,177,209,218,243,247,281,292,328,342,390],extract_goto_exec:374,extrainfoauthserv:334,extral:198,extran:225,extrem:[0,9,98,107,117,163,256,257,259,260,327,384],eye:[6,31,60,82,121,301,375],eyed:[53,126,134],eyes:[22,84,99],eyesight:[33,60,100],f6d4ca9b2b22:157,face:[83,108,120,123,151,155,158,194,226,358,374],facil:383,facilit:123,fact:[7,15,22,37,42,48,54,65,74,87,91,94,99,100,112,113,114,121,130,135,139,142,158,162,355,357,377],faction:149,factor:[75,101,105,257,259,311,325,326],factori:[62,253,311,316,324,325,326,332,333,334,335,337,345],factory_path:169,fade:[69,242],fail:[8,13,14,15,18,19,20,28,30,31,37,41,45,54,55,70,76,79,83,90,107,115,120,121,126,129,135,138,147,149,158,163,168,176,187,191,196,209,211,213,243,249,252,253,265,270,291,292,296,300,311,312,314,318,325,326,336,357,362,364,375,377,384,386,390,393,399,436,443],failmsg:357,failtext_templ:127,failur:[8,15,54,79,122,127,149,168,209,271,316,323,325,326,345,357,367,390],failure_effect:210,failure_messag:209,failure_teleport_msg:271,failure_teleport_to:271,faint:42,fair:[122,123,127,213],fairli:[96,102,154,206,225,254,257],fake:[83,207,282,345,355,362,367],fall:[0,6,20,42,70,82,83,85,88,101,114,127,165,168,191,209,226,243,265,271,390,430],fall_exit:271,fallback:[81,97,173,177,198,224,292,307,314,343,362,374,377,385,390],fals:[8,12,13,18,19,20,22,27,28,30,31,32,33,34,37,39,42,47,48,51,67,77,81,83,90,91,92,94,97,100,101,104,105,108,109,114,118,126,129,130,136,137,138,141,158,168,171,173,174,175,176,177,182,187,189,193,196,198,201,203,204,206,207,209,212,213,216,217,218,221,225,229,232,236,242,243,249,254,256,257,258,259,260,268,272,273,281,282,284,286,287,288,291,292,294,295,296,298,300,301,303,304,305,307,308,309,311,314,316,320,323,324,331,332,333,334,337,343,345,351,352,353,355,357,359,362,363,364,365,367,368,370,372,374,375,376,377,378,381,385,386,387,389,390,391,393,395,398,399,400,402,403,404,406,410,411,430,438],falsestr:225,falsi:[108,115,196,209,281],fame:[120,124],famili:[28,76,99,126],familiar:[1,20,22,48,76,82,94,96,100,106,107,111,114,115,116,124,132,141,149,155,443],famou:[29,372],fan:144,fanci:[2,16,17,18,49,83,127,206,282],fantasi:[78,118,123,242],faq:[85,336,443],far:[7,11,14,18,20,22,53,60,68,75,77,80,81,82,83,87,91,96,97,99,107,109,111,113,114,116,117,148,154,155,157,175,260,273,281,284,316,341,362,372,381],fare:114,fart:126,fascilit:283,fashion:82,fast:[0,11,13,16,19,37,47,69,83,88,94,98,101,105,116,123,124,146,180,289,346],faster:[5,13,83,101,118,123,146,198,203,362,443],fastest:[85,282],fatal:314,fault:124,faulti:116,favor:[19,83,282],favorit:[84,91],fear:19,feasibl:146,feat:123,featgmcp:338,featur:[0,2,3,9,11,16,17,19,20,22,27,41,45,48,53,59,60,72,75,77,78,80,81,82,84,85,87,88,89,90,92,98,99,101,103,104,106,107,108,109,120,121,122,123,130,143,149,153,158,168,176,177,224,232,243,254,272,309,331,352,356,364,372,390,437,442,443],feb:64,februari:101,fed:[22,33,54,332,362,371,373],fedora:[11,145,149,151],feed:[9,16,28,41,81,127,156,169,187,281,316,333,334,364,375],feedback:[3,37,84,121,124,136,197,372],feedpars:[156,333],feedread:169,feel:[11,17,48,54,64,69,75,77,80,84,85,87,88,89,96,99,102,107,111,114,119,120,121,123,124,126,127,130,133,136,141,149,152,155,218,242,254,257,265,271,443],feelabl:218,feend78:236,feint:129,fel:64,felin:19,fellow:373,felt:[42,140],femal:[58,226,377,394],fetch:[9,11,13,49,52,53,111,141,149,155,157,283,362,375,441],few:[0,2,3,5,8,11,13,16,17,20,22,27,30,31,32,33,37,50,53,54,60,63,67,68,75,76,81,85,87,88,90,107,109,112,114,116,121,122,123,124,127,129,130,138,139,144,146,151,158,163,192,212,242,265,295,329,338,357,367,376,390,439],fewer:[69,116,281,355,363],fg_colormap:389,fgstart:389,fgstop:389,fiction:[28,87,101,374],fictional_word:242,fictiv:242,fictou:223,fiddl:271,field:[7,9,13,30,31,32,34,35,36,37,42,45,46,48,50,53,64,67,73,98,100,110,114,132,141,146,148,171,198,225,229,243,253,260,269,275,288,289,291,294,295,296,300,301,304,305,309,321,362,363,364,365,373,382,386,387,398,399,400,402,403,404,406,410,413,418,430,441,443],field_class:430,field_nam:[289,410],field_or_argnam:32,field_ord:430,fieldevmenu:225,fieldfil:[165,166,199,443],fieldnam:[34,100,225,305,364,381,430],fieldset:[398,400,402,403,404,406],fieldtyp:225,fifo:390,fifth:81,fight:[20,42,94,115,120,121,129,256,257,258,259,260,270,443],fighter:[256,257,258,259,260],figur:[0,3,5,6,11,22,31,55,58,65,81,84,107,112,114,121,124,132,138,141,155,203,205,209,212,243,282,300,314,393,443],file:[0,2,3,5,6,7,9,10,12,18,19,20,26,39,40,49,50,51,52,53,57,62,63,64,67,73,76,77,79,82,83,84,88,90,91,92,97,98,99,100,101,102,104,106,108,109,112,113,115,116,117,119,123,130,132,134,135,137,138,141,142,144,145,146,148,149,150,151,153,154,155,156,157,158,161,162,163,165,166,168,181,189,196,201,202,204,206,207,209,212,214,219,242,246,253,272,273,286,301,313,314,334,335,338,339,346,347,348,352,359,360,366,373,374,383,386,387,390,394,399,400,402,404,406,416,419,423,430,438,443],file_end:[368,390],file_help_entry_modul:[31,189,286],file_help_top:438,file_name_charset:201,file_overwrit:201,fileentri:189,filehelp:[31,165,166,285,443],filehelpentri:[189,286,438],filehelpstoragehandl:286,filelogobserv:383,filenam:[11,19,112,196,201,242,368,373,383],filename1:314,filename2:314,filepath:201,files:201,filesystem:[149,157,158],fill:[2,7,27,53,64,73,81,82,83,100,116,141,150,225,253,281,284,362,367,373,374,375,376,377,390,406,443],fill_char:376,fill_color:227,fillabl:[78,225],fillchar:[30,367,377,390],filler:394,filo:390,filter:[7,20,35,48,49,60,67,83,96,102,111,137,141,165,166,175,180,204,224,243,284,295,296,390,396,409,416,436,443],filter_backend:416,filter_famili:[48,111],filter_nam:410,filter_xyz:[83,284],filter_xyz_exit:[83,284],filterset:410,filterset_class:416,filthi:143,final_path:201,final_valu:54,find:[0,3,5,6,8,9,11,13,14,15,17,19,20,22,26,27,30,31,32,33,34,35,36,37,41,42,46,48,50,53,54,55,59,60,62,64,67,69,73,74,75,77,78,79,80,81,83,84,85,87,89,90,91,92,94,98,99,100,101,102,107,108,109,110,111,112,113,114,115,117,119,120,121,123,124,126,127,128,130,132,134,141,142,143,144,146,147,149,151,154,155,157,158,163,168,174,182,189,209,212,218,221,224,243,249,253,254,271,272,275,276,281,282,284,296,300,301,303,306,314,328,362,363,367,369,377,387,390,421,443],find_apropo:287,find_topicmatch:287,find_topics_with_categori:287,find_topicsuggest:287,findfoo:118,fine:[16,22,37,42,44,46,47,55,67,80,83,85,88,97,106,109,113,114,115,117,119,120,122,126,130,136,169,271,282,362,370,390],finer:[55,281,282],finish:[9,15,22,45,52,54,79,85,94,100,120,121,130,134,141,157,165,168,177,179,190,192,194,203,209,210,216,221,224,240,270,271,282,296,314,326,337,352,359,369,374,390,419],finish_chargen:28,finit:107,fire:[7,12,19,22,28,42,45,47,80,82,91,93,94,100,109,114,117,121,136,137,140,168,169,173,232,258,259,296,301,314,323,325,342,374,375,381],firebal:[79,123,209,210],fireballrecip:210,firebreath:[100,114,117],firefox:[53,153],firemag:210,firestorm:93,firestorm_lastcast:93,firewal:[146,151,155,443],first:[0,3,5,6,7,8,9,11,12,13,14,15,16,19,20,22,25,27,28,30,31,33,37,39,41,42,44,45,48,50,51,53,54,55,56,57,58,60,62,64,65,67,69,70,73,76,78,81,85,87,90,91,94,96,98,100,101,102,103,104,106,107,108,109,110,111,112,113,115,117,118,119,120,121,122,123,124,126,127,129,130,132,133,134,136,137,138,139,140,141,142,146,147,149,150,152,154,155,156,157,158,159,161,163,168,169,171,174,175,182,189,190,193,194,196,198,201,203,204,206,207,212,214,218,219,221,224,241,242,243,249,251,252,253,256,257,258,259,260,262,265,269,270,271,272,273,276,281,282,288,291,295,296,300,301,304,307,314,318,319,321,332,334,337,342,343,345,346,352,355,362,364,365,367,368,370,372,373,374,376,377,378,381,382,389,390,411,443],first_lin:130,first_nam:398,firsthand:33,firstli:[6,37,53,76,110,111,155],fish:[127,176,240],fist:[115,301],fit:[10,30,31,39,68,72,79,96,100,113,124,126,133,138,141,146,210,257,260,373,375,376,390],five:[22,82,93,111,119,124,133,155,176,254,390,391],fix:[0,3,6,8,14,15,19,22,28,41,48,56,65,83,84,88,89,99,106,114,116,117,121,123,126,130,138,143,149,154,155,163,242,284,314,373,375,376,386,443],fix_sentence_end:376,fixer:111,fixing_strange_bug:11,fixtur:[193,202,211,222,252,266,279,340,350,382,388,414],fizzl:123,flag:[11,14,15,20,22,28,32,47,50,62,65,67,69,76,93,94,95,100,109,114,116,119,121,126,130,168,173,175,177,182,209,211,216,218,219,221,265,269,291,292,296,314,321,325,334,337,342,353,372,374,390],flagnam:[216,218,219],flair:126,flame:[93,210,259],flash:[15,265],flat:[0,19,48,77,86,98,112,165,301,393,443],flatfil:98,flatpag:421,flatten:301,flatten_diff:301,flatten_prototyp:301,flattened_diff:301,flavor:[58,109,122,155,259],flavour:[36,139],flaw:138,fled:[129,269],fledg:[16,69,71,123,130,131,141,155,181,213],flee:[129,135,260,269],fleevalu:129,flesh:[78,100,109,123],flexibl:[14,28,41,42,68,69,77,82,91,94,96,99,114,117,122,123,126,127,129,142,155,171,182,203,204,209,225,254,338,362,374,390,439,443],fli:117,flick:391,flicker:265,flip:[26,28,104,194],flood:[19,27],floor:[75,105,216,218,243,252],flour:[79,209],flourish:362,flourrecip:209,flow:[2,11,17,47,51,62,65,67,83,87,121,126,149,370,374,443],flower:[36,37,55,109,110,111,118,121,122,182,377,443],flowerpot:[55,99],fluent:144,fluffi:[114,115,117],fluid:[17,56],flurri:243,flush:[9,22,82,146,192,362,364,381],flush_cach:381,flush_cached_inst:381,flush_from_cach:381,flush_instance_cach:381,flusher:381,flushmem:192,fluttersprit:78,fly:[19,20,22,28,30,31,41,42,55,79,88,91,106,111,113,114,118,132,168,188,190,198,288,296,300,309,321,332,335,339,362,368,378,390],fnmatch:362,foci:123,focu:[78,90,119,121,123,129,216,218],focus:[7,98,99,130,144,216,218,260,413],focused_object:216,foe:257,foilag:83,fold:[123,254],folder:[7,8,9,14,15,19,50,51,53,64,67,73,78,81,82,83,85,88,91,95,99,100,102,109,112,113,114,116,127,129,130,132,134,135,136,141,142,145,149,154,157,158,162,163,200,256,257,258,259,260,314,421,443],folder_nam:88,follow:[3,5,6,7,9,11,12,13,14,15,17,18,20,22,27,28,30,31,32,33,37,39,42,46,48,50,51,53,54,56,57,60,62,64,67,68,73,75,76,77,80,81,83,84,85,90,92,96,100,101,102,105,106,107,108,109,111,113,114,115,116,117,119,121,124,126,127,128,129,130,135,137,138,141,142,144,145,146,148,149,150,151,152,154,155,157,158,163,168,169,171,173,174,177,182,189,190,193,196,198,204,206,207,209,213,226,232,236,243,253,254,258,259,271,281,282,286,288,289,291,292,295,296,299,300,301,304,305,318,319,329,338,342,343,346,356,362,364,367,368,370,373,374,375,376,383,390,415],follwo:292,fond:101,font:[51,82,85,92,113,282],foo1:13,foo2:13,foo:[8,13,18,22,28,30,31,34,42,45,46,62,65,68,83,108,111,112,113,114,116,118,149,182,254,281,283,289,314,362,374,377,388],foo_bar:68,foobarfoo:55,food:209,fooerror:374,fool:123,foolish:265,footer:[53,83,102,141,177,296,375],footnot:[16,85],footprint:192,footwear:99,for_cont:296,forai:113,forbidden:11,forc:[8,20,22,42,48,54,75,83,100,104,105,107,108,117,124,126,127,129,130,138,145,149,157,158,163,169,176,180,182,187,203,210,224,226,240,242,243,253,281,292,296,300,306,325,326,332,337,355,357,375,376,381,383,390],force_init:296,force_repeat:[42,129],force_str:386,forcibl:306,fore:352,forebod:224,foreground:[3,60,139,157,207,314,367,377,443],foreign:[48,111],foreignkei:[171,295,304,364,382,399,406],forens:247,forest:[14,46,74,82,83,113,224],forest_meadow:46,forest_room:46,forestobj:74,forget:[11,14,19,22,54,67,76,92,101,106,108,114,116,117,130,132,148,153,157,243,368,443],forgiv:126,forgo:270,forgotten:[81,93,106,114],fork:[76,144,443],forloop:102,form:[6,8,13,14,18,19,20,22,28,30,31,32,33,37,39,41,46,47,48,50,52,58,65,68,70,71,72,73,78,79,83,85,86,87,88,100,108,113,115,117,118,119,121,124,129,130,136,165,166,168,169,174,176,177,180,182,187,190,193,196,197,198,203,209,216,223,225,226,242,243,247,253,284,286,288,291,292,294,296,300,301,305,307,309,312,332,334,338,342,353,355,362,363,364,367,368,370,371,372,373,374,376,377,378,383,386,387,390,391,393,394,396,398,399,400,402,403,404,406,408,413,429,434,436,441,443],form_char:373,form_class:[53,434,436],form_template_to_dict:225,form_url:398,form_valid:[434,436,441],formal:[33,121,296,338,394,443],format:[3,11,15,17,18,19,20,22,31,57,60,64,65,68,69,70,72,77,80,82,83,84,85,87,100,102,104,111,115,116,126,127,130,141,144,146,156,158,175,177,179,182,189,193,196,201,204,206,207,209,212,217,223,225,235,243,246,253,254,258,264,268,272,273,281,286,288,296,298,300,301,305,314,319,329,334,354,356,362,364,367,368,370,372,374,375,376,378,383,385,390,391,413,416,443],format_attribut:182,format_available_protfunc:300,format_callback:229,format_diff:301,format_extern:196,format_grid:390,format_help:272,format_help_entri:189,format_help_index:189,format_messag:196,format_output:182,format_send:196,format_t:390,format_text:204,format_usag:272,formatt:[211,225,300,374,375],formcallback:225,formchar:[100,373],formdata:225,former:[17,88,139,146,209,374],formfield:386,formhelptext:225,formset:[399,406],formstr:100,formtempl:225,formul:142,forth:[11,19,182,259],fortress:82,fortun:[9,22,90,96,102,114,120],forum:[9,64,76,84,87,89,99,123,124,149,155,156,443],forward:[3,14,15,27,28,101,102,109,119,122,123,138,139,155,168,171,198,236,246,288,295,304,359,362,364,365,373,375,382],forwardfor:151,forwardmanytoonedescriptor:[295,304,382],forwardonetoonedescriptor:[295,304,382],foster:18,foul:41,found:[3,4,6,8,9,12,13,14,15,16,18,19,20,22,28,31,32,33,37,38,39,41,46,48,49,50,51,53,54,58,62,64,65,73,76,77,78,81,83,85,87,90,92,96,99,100,106,107,108,111,112,113,114,115,116,118,120,126,127,129,130,142,143,146,149,155,158,159,165,168,170,172,173,174,175,177,182,187,190,191,194,196,201,203,204,229,231,232,243,253,271,281,282,283,284,286,288,292,294,296,299,300,301,303,306,309,313,314,320,329,332,343,353,355,362,363,364,367,368,369,370,374,376,377,381,385,387,390,419],foundat:[81,87,111,144,256],four:[15,19,36,60,62,67,82,85,90,96,105,118,127,131,176,198,224,292],fourth:96,fqdn:155,fractal:98,fraction:[8,123],frame:51,framework:[49,51,52,53,56,88,124,132,134,141,193,256,259,386,410,411,413,415,416,443],frankli:72,free:[7,10,31,46,64,75,77,84,87,88,94,99,111,121,123,129,130,139,141,144,155,201,203,216,243,254,257,300],freedn:155,freedom:[0,15,97,123,149],freeform:[123,127,129,206],freeli:[83,157,158,368],freenod:[76,89,144,149,153,155,169,187,355],freetext:[35,197,387],freez:[3,22,94,231],french:64,frequenc:[5,242],frequent:[107,204],fresh:[9,20,83,100,114,162,314],freshli:82,fri:55,friend:[84,100,105,108,121,124,158],friendli:[77,85,116,141,143,171,253],friendlier:[196,296],frighten:258,from:[0,1,2,3,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,22,25,27,29,30,32,33,34,35,36,37,39,40,41,42,44,45,46,47,48,49,50,52,53,54,55,56,57,58,60,62,63,64,65,67,69,70,72,73,74,75,76,77,78,79,80,81,82,83,85,88,89,91,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,110,111,112,113,114,115,117,118,119,120,121,122,123,124,126,127,129,130,132,134,135,136,137,138,139,140,142,144,145,146,148,149,151,152,153,154,156,158,159,161,162,163,165,166,168,169,170,171,172,173,174,175,176,177,179,180,181,182,187,188,189,190,191,192,193,194,196,197,198,201,203,204,205,206,207,209,210,211,212,213,214,216,217,218,219,221,223,224,225,226,231,232,235,236,239,240,241,242,243,246,247,248,249,250,252,253,254,256,257,258,259,260,265,269,270,271,272,273,275,276,281,282,283,284,286,287,288,291,292,293,294,295,296,300,301,303,304,305,306,308,309,311,314,318,319,320,321,323,324,325,326,327,331,332,333,334,337,342,343,345,346,348,352,353,354,355,357,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,375,376,377,378,381,382,383,384,386,387,389,390,391,393,394,399,400,406,408,410,411,413,416,419,421,430,436,438,441,442,443],from_channel:169,from_db_valu:386,from_nod:374,from_obj:[58,65,104,136,168,169,177,226,264,296],from_pickl:371,from_tz:391,frombox:323,fromstr:323,fromtimestamp:378,front:[11,14,33,41,51,106,108,111,116,127,145,158,161,164,443],frontend:[49,254,362],frontpag:[50,53,112,118,165,166,396,397,407,443],frost:122,frozen:[22,94,232],fruit:240,ftabl:390,ftp:389,fuel:[91,122,253,259],fugiat:29,fulfil:[79,114,120,124,314],full:[0,4,6,8,9,11,14,15,16,17,19,22,26,28,30,33,34,37,39,41,42,44,47,48,56,58,68,69,71,73,76,79,82,83,84,85,87,88,90,91,92,99,100,103,108,109,111,112,116,117,122,123,126,127,129,130,131,134,135,138,141,142,146,147,154,155,157,162,163,169,174,176,177,181,182,187,191,192,193,196,203,204,209,213,217,221,223,224,227,239,242,243,253,254,259,268,272,281,283,284,292,294,301,305,326,332,345,355,356,362,364,368,372,374,376,377,390,442,443],full_desc:218,full_justifi:41,full_nam:36,full_result:213,fullchain:151,fuller:100,fullest:124,fullfil:294,fulli:[5,13,22,28,57,64,67,78,83,87,90,100,106,119,126,149,155,158,163,168,242,292,296,307,342,354,370,390],fun:[0,5,82,104,109,121,122,123,134,144],func1:[182,292,346],func2:[182,292,346],func:[3,22,27,28,30,33,54,58,65,77,85,91,92,93,94,95,97,98,100,101,104,105,106,107,108,113,115,118,126,127,129,130,138,152,173,177,179,180,181,182,187,188,189,190,191,192,193,194,203,204,205,206,209,210,212,213,214,216,224,225,226,230,236,239,240,243,249,250,251,254,256,257,258,259,260,265,269,270,271,272,275,291,292,296,325,345,346,350,359,372,374,375,377,378,390,439,443],func_test_cmd_task:193,funcdef:377,funciton:259,funcnam:[30,32,71,113,292,299,300,309,374,377,390],funcpars:[24,41,58,65,71,82,86,159,165,166,299,355,366,390,443],funcparser_cal:[299,377,443],funcparser_callable_add:377,funcparser_callable_center_justifi:377,funcparser_callable_choic:377,funcparser_callable_clr:377,funcparser_callable_conjug:377,funcparser_callable_crop:377,funcparser_callable_div:377,funcparser_callable_ev:377,funcparser_callable_justifi:377,funcparser_callable_left_justifi:377,funcparser_callable_mult:377,funcparser_callable_pad:377,funcparser_callable_pronoun:377,funcparser_callable_pronoun_capit:377,funcparser_callable_randint:377,funcparser_callable_random:377,funcparser_callable_right_justifi:377,funcparser_callable_round:377,funcparser_callable_search:377,funcparser_callable_search_list:377,funcparser_callable_spac:377,funcparser_callable_sub:377,funcparser_callable_toint:377,funcparser_callable_y:377,funcparser_callable_you_capit:377,funcparser_outgoing_messages_modul:355,funcparser_parse_outgoing_messages_en:71,function_nam:192,functioncal:323,functionnam:[30,323],functionpars:[30,300],functool:149,fundament:[22,37,46,99,113,114,116,117,123,296],fur:210,furnac:[209,210],furnitur:[14,46,48],furst:253,further:[3,7,10,11,13,18,19,20,31,41,44,48,49,65,67,75,76,79,81,82,83,85,97,99,106,107,114,118,126,155,157,159,163,176,182,205,242,258,260,282,284,301,314,338,390,443],furthermor:[84,85,139],fuss:157,futur:[13,27,36,54,76,85,100,101,109,115,116,119,121,124,125,126,128,130,131,133,146,149,157,179,210,232,270,273,319,363,384,391,443],futurist:101,fuzzi:[31,170,187,209,287,294,387,390],fuzzy_import_from_modul:390,gag:147,gain:[5,94,111,121,126,177,192,198,243,292,296,443],galosch:242,gambl:213,game:[1,2,3,5,6,7,10,12,14,15,16,17,20,22,23,25,26,27,28,29,30,33,35,36,37,39,40,41,44,45,46,47,48,49,50,51,52,54,57,58,60,63,64,65,67,68,69,70,71,72,73,74,75,76,77,79,80,83,84,85,86,88,90,91,92,93,94,95,97,98,102,103,104,106,107,108,110,111,112,114,115,116,117,118,120,122,125,126,128,129,131,132,133,134,135,136,138,140,141,142,143,144,145,146,147,149,150,151,152,153,154,156,158,159,163,165,166,167,168,169,170,171,173,175,176,177,179,180,181,182,186,187,188,189,192,193,194,195,196,197,198,199,203,204,205,206,208,210,212,213,214,216,217,218,221,224,225,227,230,231,232,233,236,241,242,243,250,254,256,257,258,259,260,265,267,268,271,272,276,278,281,282,283,284,286,288,293,295,296,303,304,306,307,310,314,316,317,318,319,325,326,331,333,334,337,338,345,346,347,352,353,355,363,364,365,368,369,370,372,373,378,381,383,390,398,399,406,411,416,423,439,442,443],game_dir:[383,390],game_epoch:[19,378],game_index_cli:[165,166,310,443],game_index_en:148,game_index_list:148,game_nam:148,game_slogan:[53,76],game_statu:148,game_templ:[53,112],game_websit:148,gamedir:[28,41,53,83,119,161,314,360,443],gamedirnam:100,gameindexcli:317,gameplai:[123,155,201,216,443],gamer:[150,153],gamesrc:19,gametim:[19,30,86,165,166,212,224,232,366,443],gametime_to_realtim:212,gametimescript:212,gameworld:115,gammon:[144,329],gandalf:28,garbag:362,garbl:122,garden:144,garment:[78,206],gate:[31,83,121,282],gatekeep:31,gatewai:[163,343],gather:[8,22,31,52,65,134,140,147,173,174,271,312,316,370,387],gaug:[122,165,166,199,252,443],gaugetrait:253,gave:[88,91,107,114,139,393,395],gbg:367,gcc:[116,117,149],gcreat:182,gear:[7,134,155,169,176,194,214],gemer:241,gen:17,gender:[58,78,226,377,394],gendercharact:226,gendersub:[165,166,199,443],gener:[2,5,7,8,13,18,20,22,26,28,31,33,36,39,41,42,44,46,50,51,53,54,55,60,64,65,67,68,75,76,81,82,83,84,85,87,88,92,94,99,100,101,103,108,109,113,118,121,126,127,129,139,142,146,149,151,155,159,165,166,168,169,170,172,177,178,179,182,189,190,191,193,194,196,202,203,204,205,206,209,210,213,214,216,218,219,224,225,226,232,236,239,241,242,243,246,247,249,250,251,254,256,257,258,259,260,265,268,269,271,272,275,282,288,292,294,296,298,300,301,303,325,332,334,337,338,342,345,353,354,355,359,362,365,366,367,369,370,372,375,376,377,378,383,385,386,390,414,415,416,422,430,434,435,436,438,439,440,442,443],general_context:[165,166,396,420,443],generalviewsetmixin:416,generate_prototype_kei:282,generate_sessid:332,generic_mud_communication_protocol:338,genericbuildingcmd:204,genericbuildingmenu:204,genesi:155,geniu:240,genr:[84,88,328],genuin:123,geoff:[78,272],geograph:74,geographi:96,geoip:246,geometr:82,geometri:82,get:[0,3,5,6,7,8,9,10,11,12,13,14,16,17,18,20,22,26,27,30,31,32,33,34,35,36,40,42,44,45,46,48,49,51,53,54,55,56,58,60,62,64,65,67,68,73,75,76,77,79,80,81,82,83,85,87,88,91,92,93,94,95,96,97,98,99,100,101,102,104,105,106,107,108,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,136,138,139,141,142,145,146,148,150,152,153,154,155,157,158,159,161,163,168,169,170,171,175,176,177,179,180,182,183,187,188,189,194,196,197,198,201,204,206,213,216,218,219,221,229,231,232,235,236,240,241,243,250,251,252,253,254,256,257,258,259,260,262,265,270,271,273,275,279,281,282,283,284,286,287,288,292,294,295,296,298,300,301,303,304,306,309,312,314,319,323,324,328,332,334,337,338,340,342,343,351,353,354,355,357,362,363,364,365,367,368,369,372,374,376,377,378,380,381,383,384,385,387,390,393,395,398,400,403,404,408,410,413,415,430,438,439,442,443],get_absolute_url:[142,196,288,364],get_account:[292,353],get_account_from_email:170,get_account_from_nam:170,get_account_from_uid:170,get_al:362,get_alia:363,get_alias:413,get_all_attribut:362,get_all_cached_inst:381,get_all_categori:287,get_all_channel:197,get_all_charact:219,get_all_cmd_keys_and_alias:175,get_all_cmdset:390,get_all_mail:236,get_all_puppet:168,get_all_script:303,get_all_scripts_on_obj:303,get_all_sync_data:355,get_all_top:287,get_all_typeclass:390,get_and_load_cmdset:408,get_and_load_typeclass:408,get_and_merge_cmdset:176,get_app_list:421,get_attack:[256,257,258,259,260],get_attr:182,get_attribut:[363,413],get_available_nam:201,get_available_overwrite_nam:201,get_browserstr:343,get_buff:372,get_by_alia:363,get_by_attribut:363,get_by_nick:363,get_by_permiss:363,get_by_tag:363,get_cach:362,get_cache_kei:357,get_cached_inst:381,get_callback:232,get_channel:197,get_channel_alias:187,get_channel_histori:187,get_charact:353,get_client_opt:[319,443],get_client_s:353,get_client_sess:[342,343],get_client_sessid:343,get_cmd_signatur:218,get_command_info:[177,190],get_components_with_symbol:281,get_connected_account:170,get_cont:[294,413],get_content_nam:296,get_context_data:[53,435,438,439,441],get_damag:[256,257,258,259,260],get_db_prep_lookup:386,get_db_prep_valu:386,get_dbref_rang:[170,294,303,363],get_def:308,get_default:386,get_defens:[256,257,258,259,260],get_direct:[83,282],get_display_nam:[3,30,58,77,80,83,100,105,168,243,273,284,296,364],get_display_symbol:[83,282],get_err_msg:[33,109],get_ev:232,get_evennia_pid:390,get_evennia_vers:390,get_event_handl:235,get_exit:[83,283,413],get_exit_spawn_nam:[83,282],get_extra_info:[177,296,364],get_famili:[48,111],get_fieldset:403,get_form:[398,400,403,404],get_formset:[399,406],get_game_dir_path:390,get_height:376,get_help:[22,31,102,177,193,218,230,272,374],get_help_categori:438,get_help_text:358,get_help_top:438,get_hint:221,get_id:[141,294,303,308,363],get_info_dict:[331,352],get_initi:441,get_input:[193,374,443],get_inputfunc:[68,319,338,355,443],get_internal_typ:386,get_kwarg:431,get_linked_neighbor:282,get_location_nam:273,get_log_filenam:196,get_map:[83,283],get_mass:105,get_message_by_id:197,get_messages_by_receiv:197,get_messages_by_send:197,get_min_height:376,get_min_width:376,get_modified_tim:201,get_msg_by_receiv:35,get_msg_by_send:35,get_new:333,get_new_coordin:273,get_next_by_date_join:171,get_next_by_db_date_cr:[171,198,288,295,304,362,364],get_next_wait:235,get_nick:[363,413],get_nicklist:[169,326],get_node_from_coord:281,get_numbered_nam:296,get_obj_coordin:273,get_object:[221,416,435,438,441],get_object_paramet:201,get_object_with_account:[294,387],get_objs_at_coordin:273,get_objs_with_attr:294,get_objs_with_attr_match:294,get_objs_with_attr_valu:294,get_objs_with_db_properti:294,get_objs_with_db_property_match:294,get_objs_with_db_property_valu:294,get_objs_with_key_and_typeclass:294,get_objs_with_key_or_alia:294,get_oth:203,get_permiss:[363,413],get_pid:314,get_player_count:328,get_posit:218,get_previous_by_date_join:171,get_previous_by_db_date_cr:[171,198,288,295,304,362,364],get_puppet:[12,168,353],get_puppet_or_account:353,get_queryset:[435,436,438],get_rang:260,get_recently_connected_account:170,get_recently_created_account:170,get_redirect_url:436,get_regex_tupl:243,get_respons:424,get_room:[83,283],get_room_at:96,get_rooms_around:96,get_serializer_class:416,get_sess:355,get_session_id:413,get_short_desc:218,get_shortest_path:[83,281],get_spawn_xyz:282,get_stat:114,get_statu:324,get_subscript:197,get_success_url:441,get_sync_data:354,get_system_cmd:175,get_tag:[363,413],get_tag_queri:410,get_time_and_season:224,get_typeclass_tot:363,get_uptim:328,get_url:403,get_username_valid:168,get_valu:[68,319,338,443],get_value_displai:413,get_vari:[229,232],get_view_detail:414,get_visible_cont:296,get_visual_rang:[83,281],get_weight:282,get_width:376,get_worn_cloth:206,get_xyz:[83,284],get_xyz_exit:[83,284],get_xyzgrid:[83,283],getattr:34,getbootstrap:56,getchild:359,getclientaddress:[62,334],getdefaultencod:438,getel:51,getenv:[314,324],getgl:51,getinput:374,getkeypair:334,getloadavg:154,getpeer:334,getpid:390,getsizof:381,getsslcontext:[335,339],getston:22,getter:[171,198,206,243,257,260,295,296,321,362,395],gettext:64,gfg:367,ghost:31,ghostli:271,giant:91,giantess:114,gid:[5,157,346],gidcount:345,gift:102,gig:123,girl:[119,296],gist:[53,242,390],git:[2,9,10,64,67,69,76,85,92,144,146,149,154,155,157,443],github:[0,10,11,64,76,78,80,84,85,89,92,99,112,120,121,144,149,154,156,204,342,359,390,442,443],gitignor:11,give:[0,4,5,8,9,12,13,14,16,18,19,22,26,28,29,30,33,37,39,41,42,44,45,46,47,48,50,53,54,55,57,58,68,70,74,75,76,77,78,80,82,83,85,87,88,90,91,92,95,96,99,100,101,102,103,105,106,107,108,109,111,112,113,114,115,116,117,118,119,121,122,124,127,128,129,130,132,134,135,136,141,142,144,146,149,154,155,156,157,158,163,168,173,175,176,179,182,187,188,190,196,197,204,205,206,210,216,218,219,221,224,241,242,251,254,256,257,258,259,260,265,271,273,281,282,294,296,303,304,318,340,346,353,359,362,364,367,374,376,387,388,390,393,395,413,442,443],given:[0,3,5,6,8,11,12,13,14,15,19,20,22,27,28,30,31,32,33,34,35,37,39,41,42,44,47,48,53,54,55,58,59,60,64,65,67,68,70,73,74,75,77,80,81,83,85,88,89,90,91,92,96,100,101,106,108,109,110,113,114,116,117,120,122,123,127,129,130,135,139,141,142,155,157,163,168,173,174,175,176,177,179,180,182,187,189,191,192,193,196,197,198,204,205,206,209,210,212,213,214,216,218,219,221,223,224,225,226,227,229,231,235,240,241,242,243,249,253,254,256,257,258,259,260,264,265,270,271,272,275,281,282,283,284,289,291,292,294,296,298,300,301,303,305,306,307,309,312,314,319,320,323,332,337,338,343,346,349,353,354,355,356,357,358,359,362,363,364,365,367,368,370,371,372,373,374,375,376,377,378,381,383,385,386,387,388,390,393,394,395,398,411,419,422,435,436,438,443],given_class:418,giver:[122,257,260,296],glad:107,glade:[83,113],glanc:[19,20,22,77,96,100,107,204,243],glance_exit:77,glass:[240,265],glob:[188,374],global:[5,11,14,22,25,28,30,32,37,41,42,44,47,48,51,69,74,77,79,83,88,98,106,118,121,137,140,151,157,159,182,196,201,209,224,232,241,243,249,275,283,294,296,301,302,303,304,308,311,314,319,321,324,345,346,368,369,370,374,377,378,387,388,390,423,443],global_script:[165,369,443],global_search:[14,19,77,100,107,168,243,296,363],globalscriptcontain:369,globalth:388,globe:[134,155],glori:120,glorifi:253,gloriou:111,glossari:[149,443],glow:82,glu:40,glyph:323,gmcp:[32,65,338,443],gmsheet:100,gmt:113,gmud:147,gno:77,gnome:[64,147],gnu:15,go_back:[254,374],go_up_one_categori:254,goal:[42,85,107,120,121,124,126,144,158,242,442],goals_of_input_valid:430,goblin:[28,41,113,182,301],goblin_arch:301,goblin_archwizard:301,goblin_wizard:301,goblinwieldingclub:41,god:[31,39,109,162,286],godhood:443,godlik:243,goe:[0,3,22,24,42,62,67,75,76,77,81,83,84,88,94,102,117,120,123,127,130,136,138,154,155,175,176,218,221,260,273,281,282,296,334,337,352,353,389,390,441],goff:[78,241],going:[0,8,28,30,50,53,62,68,75,80,81,82,83,89,92,100,101,102,105,107,109,111,114,116,118,121,123,129,132,138,141,150,151,155,157,161,204,243,256,257,258,259,260,265,268,271,273,296,311,316,367,374,413],goings:316,gold:[28,41,105,106,117,122,368],gold_necklac:13,gold_val:106,gold_valu:106,goldenlayout:443,goldenlayout_config:51,goldenlayout_default_config:51,gone:[11,33,55,106,109,114,116,118,120,123,157,219,281],good:[0,5,6,7,8,11,12,13,15,18,19,20,22,28,30,33,35,36,41,42,48,50,53,55,60,62,75,76,77,78,79,80,81,82,84,85,87,90,91,92,96,98,99,102,103,106,107,108,109,111,112,116,119,121,122,123,124,126,127,128,130,138,139,141,142,144,148,149,153,155,157,158,159,163,168,175,176,177,193,203,231,243,279,337,346,374,377,443],goodby:334,goodgui:292,googl:[85,144,154,155,187,376,443],googlegroup:40,googli:[53,134],gorgeou:83,gossip:[144,150,187],got:[9,14,49,54,108,114,115,116,117,129,254,270],goto_cal:374,goto_cleanup_cmdset:268,goto_command_demo_comm:268,goto_command_demo_help:268,goto_command_demo_room:268,goto_kwarg:374,goto_next_room:138,gotostr_or_func:374,gotten:[11,87,124,260,270,296,341],gpl2:393,graaah:135,grab:[13,22,26,108,109,127,141,188,270,413,441],gracefulli:[0,179,192,243,296,314,390],gradual:[14,15,94,121,122,144,242,253],grai:[60,139],grain:[47,370],gram:105,grammar:[58,218,242],grammat:[58,124,242,243],grand:[13,31],grant:[11,33,39,57,146,198,256,257,258,259,260,291,292,300,362,411,434,440,443],granular:260,grapevin:[161,165,166,169,187,310,322,443],grapevine2chan:[26,31,108,150,187],grapevine_:187,grapevine_channel:[150,169,187],grapevine_client_id:150,grapevine_client_secret:150,grapevine_en:[150,187],grapevinebot:169,grapevinecli:325,graph:[11,81,281],graphic:[3,9,33,34,49,50,52,65,73,78,82,100,124,165,214,227,338,443],grasp:[139,141],grayscal:207,great:[11,15,28,30,31,42,45,50,56,69,75,77,79,83,84,89,90,91,94,96,99,102,107,116,121,124,127,130,142,144,204,225,359],greater:[6,20,33,44,77,111,291,374],greatli:143,greek:16,green:[11,20,33,41,60,83,116,139,182,192,218,270,367],greenforest:83,greenskin:301,greet:[25,44,76,80,135,159],greetjack:36,greg:144,grei:[41,83,139,367],grenad:37,grep:[11,154],greyscal:[60,367],greyskinnedgoblin:41,griatch2021:78,griatch:[67,78,79,91,108,111,203,205,207,209,212,213,214,224,226,236,239,242,243,249,250,251,253,268,270,373,381,386,389,393,394],grid:[56,82,119,130,161,189,260,273,275,277,278,279,281,282,283,284,390,443],gridmap:83,gridpoint:[279,281],gridsiz:279,grief:55,griefer:142,grin:[22,122,362,377,395],grip:[85,210],gritti:22,ground:[82,87,91,109,111,115,119],group:[0,8,18,22,26,31,41,46,48,50,54,55,57,74,76,80,84,88,89,90,91,107,108,113,118,123,144,157,171,178,182,188,189,197,224,240,242,270,271,296,300,301,323,346,362,365,367,370,398,406,443],groupd:362,grow:[0,14,18,87,92,111,115,121,122,144,149,163,253,281,325,326,376,390],grown:[28,72,76,92],grudg:127,grungies1138:[78,236,251],grunt:[182,301],gstart:182,gthi:104,gtranslat:64,guarante:[13,39,42,67,84,122,151,155,213,232,300,332,353,364,377],guard:[28,83,123,210,282],guess:[16,27,70,77,80,102,107,158,204,301],guest1:63,guest9:63,guest:[24,39,86,168,443],guest_en:[39,63],guest_hom:[63,141],guest_list:63,guest_start_loc:63,guestaccount:46,gui:[51,52,65,99,123,236],guid:[2,9,84,104,134,141,410,443],guidelin:[84,85,144],guild:[18,46,67,123,136,144,187],guild_memb:28,gun:[58,91],gun_object:58,guru:87,gzip:[201,202],gzip_content_typ:201,habit:98,habitu:47,hack:[87,127,129,323],hacker:[144,158],had:[0,9,15,16,20,42,57,73,76,79,84,87,91,94,109,111,114,115,116,117,121,123,130,145,155,157,177,181,193,206,216,270,282,301,304,314,364,368,375,393,395,430,443],hadn:[11,101,121],hair:210,half:[69,288],hall:[31,81],hallwai:81,halt:82,hammer:[209,210],hand:[16,28,36,37,44,58,62,69,84,87,89,98,99,100,111,115,117,122,125,127,142,177,182,188,190,192,203,210,413],hander:111,handi:[3,116,141,154,258],handl:[5,6,9,11,12,13,14,16,18,19,22,27,28,30,32,33,36,37,44,47,48,51,52,53,58,62,65,67,68,69,72,75,76,77,79,81,83,84,86,87,88,90,97,98,101,106,107,108,111,112,113,115,116,117,118,121,124,126,129,135,139,140,145,147,151,154,157,159,168,169,172,173,175,176,182,183,187,188,191,201,203,209,210,214,218,223,224,232,235,243,247,249,251,254,256,257,258,259,260,265,270,271,272,275,282,285,286,295,296,299,300,301,304,305,308,311,314,318,319,323,324,326,327,334,337,338,341,343,345,354,355,362,364,367,368,370,371,372,374,375,376,378,381,389,390,399,406,424,443],handle_appli:218,handle_consum:218,handle_egd_respons:316,handle_eof:334,handle_error:[187,232,308],handle_ff:334,handle_foo_messag:374,handle_int:334,handle_messag:374,handle_mix:218,handle_numb:374,handle_posit:218,handle_quit:334,handle_setup:318,handler:[12,13,20,22,33,34,35,36,37,39,42,44,46,47,48,65,67,88,112,113,114,122,127,159,168,173,176,191,195,198,203,221,229,232,233,235,243,252,253,269,273,291,292,295,296,301,305,306,308,309,319,331,332,352,355,361,362,364,365,369,370,373,374,384,385,390,399,406,438,443],handlertyp:365,handshak:[29,65,147,324,330,332,337],handshake_don:337,hang:[85,89,117,121,124,132],happen:[0,3,5,6,8,9,11,13,18,19,20,22,28,30,33,39,42,44,45,47,52,53,55,57,65,67,68,69,75,82,83,84,87,88,96,97,99,100,101,107,108,109,114,115,116,123,124,126,127,129,130,139,141,148,153,155,163,168,175,176,187,196,212,218,221,250,256,257,258,259,260,269,271,273,281,296,301,308,316,323,326,346,351,353,354,355,364,374,375,381,383,390,411],happend:301,happi:[14,122,123,374],happier:107,happili:[18,108],haproxi:[155,161,443],hard:[0,5,6,8,11,14,16,19,20,22,30,31,41,42,46,47,54,57,62,64,68,76,85,88,100,111,112,114,117,118,121,124,126,138,141,144,149,155,157,191,225,254,304,314,362,364,374],hardcod:[74,82,99,100,114,157,362],hardcor:83,harden:149,harder:[5,8,55,83,98,111,114,121,123,126,270],hardwar:[155,327],hare:144,harm:[13,94,126,258],harsh:123,harvest:436,has:[2,3,5,6,8,9,11,12,13,14,15,16,18,19,20,22,27,28,30,31,32,33,35,36,37,39,41,42,44,45,46,47,48,49,50,51,53,54,55,56,57,58,60,62,64,65,67,68,70,72,73,75,76,77,78,80,81,83,84,85,86,87,88,90,91,92,93,94,96,97,98,99,100,101,102,106,107,108,109,110,111,113,114,115,116,117,118,120,122,123,124,126,129,130,131,134,135,136,138,139,140,141,142,143,144,145,146,148,149,150,151,152,154,155,157,158,159,162,163,164,167,168,169,174,175,176,177,179,181,182,187,189,190,192,193,194,196,197,198,202,203,204,209,212,213,214,216,218,224,225,232,236,240,241,243,253,254,256,257,258,259,260,262,265,269,270,271,272,273,279,281,282,283,284,286,288,291,292,294,295,296,300,301,304,307,308,309,314,316,319,323,326,328,332,336,341,342,346,352,353,354,355,357,362,363,364,365,370,372,373,374,376,377,381,383,384,387,390,395,398,399,406,410,411,416,430,431,438,440,441],has_account:[37,269,291,295,296],has_add_permiss:398,has_attribut:362,has_cmdset:176,has_connect:[18,196],has_consum:218,has_delete_permiss:398,has_drawn:81,has_nick:362,has_object_permiss:411,has_par:390,has_perm:[190,292],has_permiss:411,has_sub:196,has_tag:365,has_thorn:[13,118],hasattr:[22,93],hasbutton:218,hash:[15,41,83,155,301,309,342,346,355,363],hasher:5,hasn:[77,81,241,270,362,406,437],hassl:101,hast:258,hat:[84,89,206],hau:[150,169,187,325],have:[0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19,20,22,25,27,28,30,31,32,33,34,35,36,37,39,40,41,42,44,46,47,48,50,51,52,53,54,55,56,57,58,60,62,63,64,65,67,68,69,70,72,73,74,75,76,77,78,79,80,81,82,83,84,85,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,104,105,106,107,108,109,110,111,113,114,115,116,118,120,121,122,124,125,126,127,128,129,131,132,133,134,135,136,137,138,139,140,141,142,143,146,148,149,150,151,152,153,154,155,156,157,158,159,161,162,163,168,169,173,175,176,177,179,182,184,187,190,191,192,193,194,196,197,198,200,201,203,204,205,206,209,210,212,214,218,219,224,225,226,231,232,235,239,241,242,243,246,247,253,254,256,257,258,259,260,265,271,272,281,282,286,287,288,289,291,294,295,296,299,300,301,302,304,307,308,309,319,324,327,328,332,334,337,338,352,353,354,355,360,361,362,363,364,365,367,368,369,370,371,373,374,375,376,377,383,386,387,388,390,391,393,395,399,406,411,413,416,421,423,430,438,439,441,442,443],haven:[3,8,9,41,77,82,90,94,101,108,135,136,137,141,142,151,357],havint:50,head:[7,20,31,64,80,91,102,109,111,119,122,124,130,138,162,443],header:[14,15,19,30,31,35,37,50,64,72,76,84,85,105,108,116,149,158,177,189,198,236,243,296,368,370,375,376],header_color:182,header_line_char:376,headi:376,heading1:[85,376],heading2:[85,376],heading3:85,headless:296,headlong:149,heal:[118,122,123,210,258,259,271],healing_rang:259,healingrecip:210,health:[34,41,68,95,113,122,123,127,129,155,210,227,252,253,301,338,443],health_bar:[165,166,199,443],healthi:253,hear:[18,80,94,121,193],heard:[82,120],heart:[31,114,139],heartbeat:[47,325],heat:210,heavi:[13,19,22,33,88,105,109,123,127,129,130,146,201,203,243,257,327,390],heavier:[42,257],heavili:[19,62,67,76,83,84,99,120,154,159,204,256,257,258,259,260,364,442],heed:[44,292],hei:[109,122,203,236,242],height:[29,32,51,165,281,319,334,353,373,376],held:[20,129,281,291],hello:[18,28,30,32,36,44,65,68,69,72,75,80,94,107,117,122,123,130,153,187,188,193,196,243,319,367,443],hello_valu:69,hello_world:[69,116,117],helmet:[13,94,122],help:[3,5,8,11,13,14,15,16,18,19,21,22,24,25,26,27,28,30,33,39,41,42,44,45,46,49,51,53,55,57,58,64,67,69,70,75,77,78,79,80,81,82,83,85,86,88,90,94,96,97,99,100,103,107,108,110,112,114,115,116,118,119,120,121,122,123,124,129,130,139,141,144,146,149,151,152,153,155,162,163,165,166,172,173,175,177,178,179,187,190,192,193,194,203,212,214,216,218,221,225,229,230,232,236,242,246,253,256,257,258,259,260,265,268,271,272,277,280,294,298,308,312,314,316,317,325,332,334,335,337,339,342,343,345,346,362,363,367,370,371,372,374,375,377,385,386,387,388,394,396,397,398,400,401,404,410,413,416,421,424,429,430,431,433,442,443],help_categori:[22,31,77,100,102,106,108,129,130,152,177,179,180,181,182,187,188,189,190,191,192,193,194,203,204,205,206,209,210,213,214,216,224,225,226,230,236,239,240,243,249,250,251,254,256,257,258,259,260,265,269,270,271,272,275,286,287,288,296,345,372,374,375,387,438],help_cateogori:372,help_detail:438,help_entri:[31,286,372,438],help_entry1:286,help_entry_dict:[31,286],help_file_modul:286,help_kei:182,help_list:438,help_messag:189,help_mor:189,help_more_en:31,help_search_with_index:289,help_sstem:102,help_system:102,help_text:[189,232,430],help_top:438,helpact:272,helparg:193,helpdetailtest:431,helpdetailview:438,helpentri:[31,33,49,102,189,286,287,288,370,402,413,435,438],helpentry_db_tag:402,helpentry_set:365,helpentryadmin:402,helpentryform:402,helpentrymanag:[287,288],helper:[28,30,39,41,57,83,100,108,110,111,114,115,118,123,165,168,176,179,182,187,189,197,201,204,209,211,212,218,223,242,253,280,282,283,284,296,300,301,311,323,324,343,355,368,374,375,377,383,388,389,390,400,408,414],helpfil:189,helpfilterset:[410,416],helplistseri:[413,416],helplisttest:431,helplistview:438,helplockeddetailtest:431,helpmixin:438,helpseri:[413,416],helptaginlin:402,helptext:[28,298,374],helptext_formatt:[28,298,374],helpviewset:416,henc:[4,7,75,77,80,116,117,271,272,368],henceforth:[6,11,14,33,44,63,74,82,97,130,140,155,355],henddher:240,hendher:78,her:[8,58,120,122,206,226,377,394,395],herbal:373,herd:146,here:[2,3,5,7,8,9,10,11,12,13,14,15,16,17,19,22,26,28,30,31,32,33,34,35,36,37,40,41,42,44,45,47,48,49,51,53,54,56,57,58,60,62,64,65,67,68,69,70,72,73,75,76,77,79,80,81,82,83,84,85,86,88,89,90,91,92,94,95,96,97,98,99,100,101,102,104,106,107,108,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,132,134,135,136,137,138,139,141,142,144,146,147,149,150,151,152,153,154,156,157,158,159,162,163,168,169,175,176,177,182,190,191,192,193,194,198,201,203,204,205,206,209,210,212,213,214,216,217,218,221,223,231,232,241,242,243,250,253,256,257,258,259,262,269,270,271,272,273,275,282,284,288,292,294,296,300,301,314,316,323,325,331,332,334,337,346,352,353,355,361,362,364,367,370,374,376,381,394,399,406,408,411,413,419,435,438,439,443],hereaft:122,heroism:123,herself:[30,58,122,377,394,395],hesit:[77,96],hfill_char:376,hidden:[11,13,51,81,83,88,118,120,121,122,198,206,213,272,443],hide:[13,20,22,31,33,39,76,82,83,109,121,122,127,189,198,213,243,270,443],hide_from:[35,198],hide_from_accounts_set:171,hide_from_objects_set:295,hieararci:291,hierarach:365,hierarch:[12,39,57,179,291,365],hierarchi:[26,57,63,77,90,102,121,188,206,291,390,411,443],high:[20,39,58,83,87,90,109,111,117,120,145,149,175,209,210,259,296,356,365],higher:[5,9,18,20,28,33,39,44,49,57,69,83,92,97,98,100,101,111,114,122,126,127,130,149,155,168,175,179,182,192,242,256,257,258,259,260,271,282,291,316,365,374,390],highest:[20,39,100,253,367,390],highest_protocol:386,highli:[0,17,28,33,45,47,67,76,78,83,87,88,98,116,135,227,368,381],highlight:[15,60,85,99,100,139],hijack:[142,151],hilight:389,hilit:389,hill:36,hilt:[123,210],him:[28,58,80,114,226,243,377,394],himself:[58,377,394,395],hint:[9,41,53,85,87,92,103,108,114,119,124,130,134,144,149,163,212,221,360,442,443],hire:[106,158],his:[8,28,30,41,58,80,100,122,206,226,243,375,377,389,394],histogram:390,histor:[42,72,101,119,313,383],histori:[11,18,27,51,88,90,100,109,116,123,146,157,176,187,196,225,383],hit:[11,29,76,91,94,115,120,127,129,169,209,256,257,258,259,260,269,270,312,353,383,386,443],hit_msg:269,hite:60,hitter:108,hnow:60,hoard:123,hobbi:[79,121,124,155],hobbit:101,hoc:87,hold:[0,2,6,7,11,12,14,15,20,28,31,33,37,41,44,46,48,56,63,74,76,81,82,83,85,88,91,100,106,108,113,114,121,126,127,129,130,134,141,149,157,159,175,176,199,204,206,209,210,213,218,221,241,251,253,254,256,257,258,259,260,267,269,270,285,289,291,292,300,301,302,305,310,321,323,332,342,343,345,355,364,365,366,370,373,374,376,377,379,383,390,396,443],holder:[76,102,155,362],hole:123,home:[0,11,26,37,41,52,53,56,63,83,88,108,113,114,123,141,145,149,155,158,176,182,188,269,294,295,296,301,370,390],home_loc:182,homepag:[5,19,144,149,155],homes_set:295,homogen:[19,124,300,301,304],homogenize_prototyp:300,honcho:124,honor:[123,243],honour:201,hood:[9,18,22,28,30,36,42,48,67,88,99,109,111,114,121,122,209,243,252,253,272],hook:[8,12,18,22,32,33,37,42,45,47,79,81,83,92,95,104,114,127,129,130,135,136,137,138,140,163,168,173,175,177,179,182,187,188,190,192,193,194,196,198,202,206,209,211,216,218,222,224,232,240,241,243,247,252,256,257,258,259,260,264,266,268,269,270,271,273,275,279,282,296,304,307,309,318,325,337,340,342,345,350,352,353,354,356,364,372,375,377,381,382,384,388,390,400,403,404,414,430,434,435,436,438,441,443],hooligan:55,hop:87,hope:[3,100,107,120,123],hopefulli:[0,51,81,82,116,120,124,141,145,155],horizon:101,horizont:[270,281,376,390],hors:19,host1plu:155,host:[0,11,19,37,55,73,88,121,133,146,151,156,157,158,161,201,242,359,390,443],host_os_i:390,hotbutton:51,hotel:155,hotspot:158,hould:123,hour:[19,101,123,140,212,378,390],hous:[41,83,124,155,182,377,443],housecat:19,how:[0,3,5,6,7,8,9,10,11,13,14,15,16,17,18,19,20,25,26,28,30,33,34,35,36,39,41,42,44,46,49,50,51,52,53,54,55,57,58,62,63,65,67,68,69,73,74,75,77,79,80,81,82,83,84,85,87,88,90,91,92,93,94,95,96,97,98,99,101,102,104,105,106,107,108,109,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,139,140,141,142,145,146,149,151,153,154,155,158,159,161,162,163,169,170,174,176,177,189,191,192,193,196,204,206,209,210,212,213,216,218,221,226,241,242,243,250,253,254,258,259,260,265,269,273,281,282,283,284,289,291,295,296,301,304,309,314,319,324,328,333,338,341,345,346,352,353,354,355,359,364,368,372,374,375,376,377,383,384,389,390,399,400,402,405,406,430,442,443],howev:[9,11,12,13,14,15,16,17,20,22,27,30,33,41,42,47,48,50,54,55,58,60,62,68,69,70,72,73,75,77,80,82,83,84,85,87,90,94,95,97,100,101,106,107,109,114,116,118,120,122,123,126,127,130,137,140,146,155,163,176,177,182,189,192,193,201,204,225,227,232,241,254,259,265,291,367,413],howto:[85,442,443],hpad_char:376,href:[17,102,141],hrs:212,htm:329,html5:113,html:[51,52,60,73,82,85,87,88,102,108,113,120,134,142,144,147,158,177,192,196,241,272,286,288,336,338,342,343,359,364,386,389,390,410,419,434,435,436,438,439,441,443],htmlchar:389,htop:[5,163],http404:[102,142],http:[0,2,8,9,10,11,40,45,49,50,51,52,53,54,56,64,69,73,76,77,78,80,82,85,87,88,90,96,102,113,114,119,120,129,132,141,142,146,148,149,150,154,155,156,158,162,165,169,187,201,204,241,272,289,316,323,325,326,327,328,329,330,336,338,341,342,343,359,367,376,389,390,393,410,430,442,443],http_request:[73,158],httpchannel:359,httpchannelwithxforwardedfor:359,httpd:145,httprequest:168,httprespons:[398,400,403],httpresponseredirect:141,hub:[31,144,157,370],hue:60,huge:[8,56,67,91,94,96,101,117,121,123,132,273,375],huh:[22,77],human:[5,55,62,88,90,99,106,121,127,135,141,209,253,436,443],humanizeconfig:90,hundr:[70,123,141,153],hung:124,hungri:67,hunt:[122,127,252,253,269],hunting_pac:269,hunting_skil:127,hurdl:81,hurri:115,hurt:[95,122,123,253],huzzah:76,hwejfpoiwjrpw09:76,hybrid:[123,127],hype:161,i18n:[64,112,296],iac:68,iattribut:362,iattributebackend:362,ice:83,ice_and_fir:118,icon:7,iconv:64,id_:[400,402,404,406,430],id_str:34,idcount:345,idea:[0,7,8,10,11,22,31,33,45,50,53,55,69,75,76,81,84,85,87,96,98,102,106,111,113,116,117,121,122,123,124,126,127,128,130,138,141,142,149,152,153,177,189,190,193,203,242,301,381,389,440],ideal:[22,64,72,80,84,155,171,292],idenfi:175,ident:[6,13,20,22,60,65,76,97,99,108,122,163,168,190,243,249,292,294,296,303,367,368],identif:[19,47,355],identifi:[3,5,6,20,22,27,28,32,34,41,42,47,48,65,68,75,79,81,93,95,96,100,102,111,114,115,121,129,142,145,146,174,177,182,187,190,193,197,204,209,221,224,242,243,254,271,282,292,296,300,303,306,309,311,314,319,321,324,338,342,351,353,355,362,363,367,370,373,374,377,390],identify_object:197,idl:[44,55,168,169,269,296,346,353,355],idle_command:22,idle_tim:[168,296],idle_timeout:169,idmap:381,idmapp:[48,67,165,166,192,198,288,321,347,362,363,364,366,443],idnum:197,ids:[55,100,138,224,345,355,373],idstr:[34,47,305,309,351,390],idtifi:197,idx:138,ietf:330,ifconfig:151,ifier:253,ifram:51,ignor:[3,11,15,18,19,20,22,28,30,31,32,33,39,44,48,60,65,67,85,94,100,107,108,109,113,117,126,127,135,138,146,149,155,168,174,175,176,177,182,193,224,243,275,281,282,284,291,295,296,309,314,319,325,326,341,342,343,362,364,367,368,373,374,385,390,391],ignore_ansi:390,ignore_error:168,ignorecas:[177,182,188,189,192,194,206,209,216,243,367,372,374,389],ignoredext:359,illumin:82,illus:54,imag:[7,17,51,52,53,73,90,102,113,134,141,149,155,201,419,443],imagesconfig:90,imagin:[15,20,28,80,94,108,115,120,121,124,126,129,135,140,265,368],imaginari:[82,91,144],imeplement:273,img:17,immedi:[16,19,22,28,32,41,42,50,65,75,81,83,88,89,94,108,111,114,116,126,129,137,141,142,155,157,162,180,192,209,269,282,318,325,368,370,374,375],immers:79,immobil:92,immort:269,immut:[13,309],impact:139,impass:[83,120],impati:149,implement:[0,6,8,9,11,13,18,20,22,23,28,30,33,35,37,46,47,48,51,53,58,60,62,67,68,69,73,74,78,79,81,82,84,87,91,92,93,94,98,99,100,103,104,110,113,115,117,121,122,126,129,130,135,136,137,143,144,151,170,171,175,176,179,180,181,182,183,184,187,188,189,190,191,192,194,196,197,198,201,203,205,206,209,212,213,224,226,239,242,243,247,249,250,251,252,254,256,257,260,269,270,271,273,275,281,287,288,292,294,295,296,303,304,306,309,320,325,327,328,329,330,331,332,334,336,337,338,341,342,343,345,352,359,362,363,364,365,367,368,371,372,374,375,382,385,386,389,390,398,415,437,439,443],impli:[46,77],implicit:[60,107,139],implicit_keep:301,impmement:292,impopular:123,import_cmdset:176,importantli:[18,28,109,114,122,141,292],importerror:[4,76,90,390],impos:[87,144,357],imposs:[16,28,57,70,81,82,83,85,138,141,155,282,300,376],impract:[22,41,83,301],imprecis:381,impress:[3,82,123],improperlyconfigur:201,improv:[9,64,75,84,89,107,115,116,121,124,442,443],impur:210,in_game_error:[0,158],inabl:[149,158],inaccess:[33,75],inact:[218,269],inactiv:192,inadvert:260,inadyn:155,inarticul:69,inbuilt:[46,130],incant:154,incapacit:123,incarn:430,incid:247,includ:[0,2,5,7,8,11,12,13,14,19,20,22,26,28,30,32,33,34,37,41,44,45,46,47,48,50,51,53,55,56,60,68,69,73,76,77,78,82,83,84,85,86,87,88,90,91,95,96,97,100,101,102,106,107,108,109,110,113,114,115,116,117,118,119,121,122,123,125,126,127,128,129,131,133,134,138,141,142,143,144,149,154,157,159,168,173,174,175,177,180,181,182,190,193,196,201,203,206,209,210,211,216,221,224,225,226,232,242,243,247,253,254,256,257,258,259,260,271,272,273,279,281,282,283,284,289,291,296,300,307,314,332,334,337,338,346,351,354,362,363,364,365,367,368,369,370,371,373,374,376,378,383,390,413,419,423,439,442],include_account:362,include_children:363,include_par:363,include_prefix:174,include_unloggedin:[332,355],inclus:[31,363,377],incoher:139,incol:[100,373,376],incom:[22,52,62,68,146,155,159,169,174,191,216,247,257,282,314,323,327,330,333,337,338,342,343,345,353,354,355,359,374,375,377,398,400,403,404,411],incomplet:[177,250,376],inconsist:[6,13,54,241],incorpor:[179,376],incorrect:197,increas:[33,39,48,60,78,83,101,111,114,122,127,158,203,253,257,259,260,271,282,326,332,346,372,374],increase_ind:372,incred:[254,316],increment:[149,362],incur:19,indata:[62,362],inde:[76,87,107,155],indefinit:[258,270,370],indent:[14,15,19,27,30,51,72,75,76,85,99,108,116,117,281,343,368,372,374,377,390],independ:[35,42,52,75,88,98,139,162,203,246],indetermin:316,index:[31,52,53,67,69,73,81,82,85,98,106,114,121,134,138,144,155,161,165,166,174,187,188,189,203,218,254,270,281,282,286,288,289,294,312,316,317,359,365,367,375,376,390,396,429,430,431,433,435,438,443],index_category_clr:189,index_to_select:254,index_topic_clr:189,index_type_separator_clr:189,indexerror:[142,273,363],indexread:218,indextest:431,indic:[35,58,75,77,81,82,83,85,101,106,107,109,116,117,145,169,182,189,190,201,218,226,243,247,254,281,282,304,307,325,326,334,341,342,355,357,359,362,367,368,374,375,390,416],individu:[13,14,15,22,30,41,68,75,77,80,81,82,83,91,99,100,106,114,117,127,140,143,152,155,176,180,196,209,213,219,229,232,252,253,259,298,301,353,365,367,376,377,384,385],ineffici:[47,135,367],inf:[393,395],infact:22,infinit:[42,75,78,83,121,149,169,273,282,300,393,395,443],infinitely_lock:218,inflat:123,inflect:[377,393],inflict:258,inflict_condit:258,influenc:[28,54,56,77,80,121,130,203,221,390,443],influenti:144,info1:251,info2:251,info3:251,info:[0,5,7,11,13,14,17,18,19,22,25,26,29,31,37,38,42,44,46,48,49,53,56,58,67,68,83,84,87,88,92,100,113,114,116,122,132,143,146,147,149,157,159,168,169,171,179,180,182,189,192,194,199,203,205,214,218,224,227,236,271,284,288,296,314,319,323,331,332,352,353,355,363,364,365,370,373,383,390,443],infomsg:383,inforamt:[243,273,284,296,364],inform:[0,2,5,8,11,12,13,19,22,28,34,35,41,42,44,46,51,53,60,63,65,67,71,73,75,76,77,80,83,85,92,93,102,106,107,108,109,113,116,123,127,129,130,132,134,135,137,140,141,142,145,146,150,151,157,158,159,168,169,177,180,182,187,188,192,198,204,209,213,216,241,243,247,248,253,258,259,260,288,296,314,319,328,329,330,332,341,354,355,363,364,367,370,372,383,390,430,443],infrastructur:[65,85,88,124,155,158,173,324,443],infrequ:80,ing:[15,76,100,115,123,213],ingame_python:[80,165,166,199,443],ingame_tim:101,ingen:64,ingo:[20,28,32,58,83,100,175,294,326,377,393,443],ingot:[209,210],ingredi:[79,123,209,218],ingredient1:218,ingredient2:218,ingredient3:218,ingredient_recip:218,inher:[36,54,69,90,253],inherit:[2,3,8,12,18,19,20,22,37,41,48,50,53,60,62,67,77,79,83,88,95,99,102,104,108,110,112,114,115,118,123,130,135,171,175,177,182,190,192,193,196,198,203,204,206,209,216,218,224,226,240,243,250,253,256,257,258,259,260,268,269,271,272,275,293,295,296,301,304,306,345,354,361,363,364,372,375,376,381,388,390,413,416,434,435,436,438,440,441,443],inheritng:301,inherits_from:[135,142,192,390,443],inifinit:300,init:[7,11,51,62,76,77,81,83,85,100,119,149,154,159,162,203,204,221,225,276,295,314,332,333,343,355,390],init_delayed_messag:225,init_django_pagin:375,init_evt:375,init_f_str:375,init_fill_field:225,init_game_directori:314,init_iter:375,init_menu:268,init_mod:176,init_new_account:390,init_pag:[300,375],init_pars:272,init_queryset:375,init_rang:260,init_sess:[62,354],init_spawn_valu:300,init_st:221,init_str:375,init_tree_select:254,init_tru:176,initi:[0,6,8,10,11,13,22,27,28,42,44,45,51,52,53,76,79,81,83,85,88,91,94,100,106,108,112,121,122,126,127,130,137,141,163,168,169,176,177,193,196,198,201,203,209,214,221,225,229,233,235,242,243,253,254,256,257,258,259,260,265,268,269,270,280,281,282,283,286,294,295,296,300,305,308,309,311,312,314,316,317,318,323,324,325,327,328,329,330,332,333,334,335,336,337,338,339,341,342,343,345,353,354,355,362,367,369,372,373,374,375,377,385,386,390,399,400,402,404,406,408,424,430,441,443],initial_formdata:225,initial_ind:376,initial_setup:[165,166,310,352,443],initialdelai:[311,325,326,345],initialize_for_combat:[256,257,258,259,260],initialize_nick_templ:362,initil:342,initpath:83,inject:[52,113,126,158,218,283,300,314,345,346,353,368,374],inlin:[51,58,86,99,106,296,312,377,398,399,400,402,403,404,406,443],inlinefunc:[41,58,113,159,377],inlinetagform:406,inmemori:362,inmemoryattribut:362,inmemoryattributebackend:362,inmemorybackend:362,inmemorysavehandl:385,innermost:30,innoc:[55,180],innocu:158,inobject:323,inp:[28,182,197,300,312,375,377,390],inpect:28,input:[5,8,11,13,15,16,17,18,19,20,27,32,36,41,44,47,51,52,53,54,58,62,65,70,73,76,77,78,79,82,83,86,89,95,99,100,103,107,108,109,113,114,115,119,126,136,141,144,159,163,168,172,173,174,177,182,187,189,190,191,192,193,197,204,209,210,213,221,225,242,243,247,252,253,254,259,270,282,287,296,299,300,301,312,314,319,323,334,342,353,355,362,363,365,372,373,374,375,376,377,384,386,390,391,430,443],input_arg:193,input_cleanup_bypass_permiss:390,input_cmdset:374,input_func_modul:[32,319],input_str:[30,374],input_validation_cheat_sheet:430,inputcmdset:374,inputcommand:[32,65,68],inputcompon:51,inputdebug:[32,319],inputfuc:113,inputfunc:[24,62,68,113,159,165,166,169,310,342,353,355,443],inputfunc_nam:342,inputfunct:32,inputhandl:165,inputlin:[36,188,196,362,363],insecur:155,insensit:[31,39,111,118,189,224,243,271,286,294,363,422],insert:[13,14,15,27,30,36,41,58,79,85,88,92,100,116,119,149,152,176,209,218,226,239,243,300,368,374,376,377,390],insid:[3,5,7,8,13,14,16,19,20,22,28,30,33,37,40,41,42,44,48,49,53,54,57,60,64,67,68,69,73,75,80,82,83,85,88,91,92,93,99,102,105,106,107,108,109,111,112,113,116,117,118,126,127,130,134,135,138,140,141,142,146,149,151,152,153,157,163,165,169,192,196,201,204,224,227,231,232,243,269,271,273,291,295,296,299,314,331,352,359,368,369,377,390],inside_rec:291,insiderecurs:291,insight:[3,109,120,134],insist:[107,155],inspect:[28,55,83,106,146,168,182,192,203,312,314,374],inspectdb:67,inspir:[8,22,58,72,78,122,127,129,205,226,376,390],instac:[177,209,296,353],instal:[0,3,5,6,7,8,9,10,15,64,69,75,78,79,80,84,85,87,88,99,100,109,112,116,119,120,122,132,142,144,148,150,156,158,163,165,166,199,201,203,205,206,207,208,213,214,224,236,239,240,243,247,249,250,256,257,258,259,260,421,442,443],installed_app:[8,67,90,102,141,142,421],instanc:[3,6,8,10,11,12,13,17,19,27,28,30,34,41,44,45,50,51,56,64,75,77,80,83,88,92,93,94,96,98,99,100,101,102,106,107,108,110,111,113,114,116,118,126,129,132,134,138,139,145,158,168,171,173,174,175,176,177,186,189,191,192,193,196,198,202,204,209,223,232,235,241,254,272,273,284,288,295,296,300,301,303,304,308,309,311,314,323,324,325,326,327,328,329,330,332,336,337,341,345,346,354,355,359,362,364,365,367,370,371,374,376,381,382,386,390,391,398,399,400,402,403,404,406,410,411,413,415,430,438,443],instanci:204,instant:134,instanti:[8,22,67,117,168,176,193,253,265,306,309,331,352,355,362,373],instantli:[399,406],instead:[0,5,7,8,9,11,13,15,18,19,20,22,28,30,34,37,39,41,42,44,46,48,53,54,55,56,57,58,60,64,65,67,73,75,76,77,78,79,80,81,82,83,84,85,88,91,92,94,95,96,99,100,101,106,107,109,110,111,113,114,115,116,117,118,119,121,123,124,126,129,130,132,134,135,136,138,139,140,141,142,144,146,149,151,155,157,158,159,161,163,168,169,176,177,179,180,182,184,187,191,192,194,196,204,209,210,213,214,216,218,223,225,235,242,243,250,252,253,254,256,257,258,259,260,268,270,272,273,275,281,282,284,291,292,294,296,301,309,314,342,343,353,357,362,364,365,370,374,375,377,381,383,385,386,387,390,394,399,406,421,430,434,435,436,438],instig:180,instil:[74,258],instnac:308,instr:[323,390],instruct:[3,6,7,11,14,15,19,32,65,68,75,76,78,80,84,85,87,95,99,100,106,112,116,117,119,120,121,123,144,145,146,149,151,154,155,157,161,162,168,177,192,201,243,247,301,309,311,314,324,326,332,337,338,342,343,345,353,355,374,384],instructrion:79,insur:123,integ:[20,22,30,41,44,48,60,96,106,107,130,174,206,212,213,225,253,256,257,258,259,260,271,282,284,291,296,363,377,386,390,391],integerfield:[141,404,430],integr:[1,49,51,88,90,117,122,142,144,158,193,243,317,319,374,410,443],intel:116,intellig:[65,107,123,127,142,158,176,201,345],intend:[3,11,14,17,19,20,22,30,35,41,46,51,69,77,82,83,84,87,109,121,126,134,139,155,158,168,200,201,203,204,209,223,243,284,288,296,301,332,363,365,370,371,373,376,377,387,388,390,391,408,436,439],intens:[60,111,123,144],intent:[158,242,390],inter:[14,83,123,281],interact:[3,7,12,22,26,28,62,69,83,85,87,94,98,109,117,120,123,124,126,129,141,144,146,157,163,165,181,193,216,260,265,314,331,368,383,390,443],intercept:355,interchang:[39,119,129,286,374,440],interconnect:281,interest:[0,3,5,15,22,31,41,62,67,75,77,79,80,81,83,84,87,89,90,91,99,107,109,117,119,120,121,124,128,130,134,137,138,144,155,158,176,191,203,212,271,273,282],interestingli:122,interf:[149,265],interfac:[0,2,3,6,33,50,51,52,62,73,76,77,82,88,89,91,92,102,112,116,141,144,146,149,155,159,179,182,196,294,296,307,325,354,359,362,365,367,390,400,405,439,443],interfaceclass:334,interfer:[6,146,300],interim:[47,94],interlink:[331,352],intermediari:[243,292,305,374],intern:[9,13,16,18,19,28,33,36,41,44,45,46,54,62,68,70,111,112,113,123,129,149,151,155,157,158,159,163,168,169,198,209,214,226,243,253,264,273,279,281,282,294,296,300,306,342,343,362,364,365,367,371,374,376,390,443],internal:374,internal_port:155,internation:[70,443],internet:[22,53,54,55,56,62,146,149,151,153,155,158,162,180,311,316,324,325,326,334,337,345,359],interpret:[3,5,22,41,42,98,107,116,117,142,158,159,177,181,182,284,300,301,342,367,386,443],interract:83,interrupt:[126,149,173,177,193,229,232,235,275,279,334,443],interrupt_path:[83,282],interruptcommand:[22,107,126,165,173,177],interruptev:235,interruptmaplink:[83,282],interruptmapnod:[83,282],intersect:[20,175],interv:[32,42,47,88,129,137,138,140,169,170,210,212,232,253,256,257,258,259,260,262,269,271,304,309,319,370,378,390],interval1:309,intim:[20,22],intimid:100,intoexit:[182,275],intpropv:130,intricaci:101,intrigu:[78,148],intro:[90,102,108,117,119,120,142,268,271],intro_menu:[165,166,199,267,443],introduc:[0,6,8,11,20,30,79,94,99,122,123,124,127,130,243],introduct:[1,11,14,15,16,56,57,78,103,108,109,115,119,125,128,131,132,133,149,204,442,443],introductori:[87,149],introroom:271,introspect:240,intrus:139,intuit:[11,28,67,77,107,121,123,126,175],intxt:19,inv:[20,26,105,188,206,216],invalid:[13,30,41,83,107,168,225,243,253,282,300,376,377,386,390,391,394],invalid_formchar:373,invent:253,inventori:[6,19,20,26,33,79,91,92,106,107,108,109,111,115,118,123,124,188,206,209,210,216,243,291,296,364,443],invers:[33,60,83,108,114,139,243,252,282,340,389],invert:[60,139],investig:[53,114],invis:[83,147,279,282],invisiblesmartmaplink:282,invit:[54,75,121,133,265],invitingli:[109,265],invok:[14,15,42,246],involv:[13,33,37,42,44,45,61,62,83,98,115,121,123,129,130,154,209,210,225,260,282,364,365,367,411],ioerror:368,ipregex:180,ipstart:[149,157,163],iptabl:158,ipv4:146,ipython:[0,5,100,443],irc2chan:[26,31,108,153,187],irc:[0,11,76,87,89,124,144,149,156,161,165,166,169,187,195,310,319,322,332,355,443],irc_botnam:169,irc_channel:169,irc_en:[153,187,291],irc_network:169,irc_port:169,irc_rpl_endofnam:326,irc_rpl_namrepli:326,irc_ssl:169,ircbot:[169,326],ircbotfactori:[169,326],ircclient:[326,355],ircclientfactori:332,irchannel:[153,187],ircnetwork:[153,187],ircstatu:[26,108,187],iron:[122,203,209,210,442],ironrealm:338,irregular:[262,269,271],irregular_echo:269,irrelev:[158,323],irur:29,is_account_object:98,is_act:[304,398],is_aggress:135,is_anonym:[90,102],is_anyon:90,is_authent:141,is_ban:168,is_bot:171,is_build:90,is_categori:254,is_channel:22,is_connect:[171,296],is_craft:94,is_dark:114,is_exit:[22,177],is_fight:94,is_full_moon:92,is_giving_light:270,is_gm:100,is_in_chargen:130,is_in_combat:[256,257,258,259,260],is_inst:19,is_it:390,is_iter:390,is_lit:[270,271],is_next:[171,198,288,295,304,362,364],is_o:390,is_ouch:[13,118],is_poison:13,is_prototype_bas:300,is_rest:126,is_sai:136,is_sleepi:13,is_staff:398,is_subprocess:390,is_superus:[12,50,90,168,171,292,296,370,398],is_thief:189,is_turn:[256,257,258,259,260],is_typeclass:[168,364],is_valid:[42,138,141,203,304,307],is_valid_coordin:273,isalnum:367,isalpha:367,isb:193,isbinari:[325,342],isclos:51,isconnect:51,isdigit:[100,367],isfiremag:93,isinst:[96,390],isleaf:343,islow:367,isn:[3,17,27,75,77,80,90,98,101,102,107,111,126,149,204,229,233,260,271,272,316,367,384,393,399,406,422],isnul:386,iso:[16,70,194],isol:[8,14,84,85,88,107,116,119,121,149,157,162],isp:[155,158],isspac:367,issu:[0,3,5,8,11,13,14,15,20,22,26,37,48,54,69,74,77,78,82,84,85,89,91,94,100,106,117,122,126,130,139,144,145,146,148,149,155,158,187,194,300,314,345,346,376,442,443],istart:[3,163,165],istep:346,istitl:367,isub:129,isupp:367,ital:443,italian:64,itch:[123,149],item:[28,51,67,78,85,102,105,106,109,112,113,122,123,129,135,149,188,201,203,206,209,219,225,243,258,265,273,333,362,377,390,443],item_consum:258,item_func:258,item_kwarg:258,item_selfonli:258,item_us:258,itemcoordin:273,itemfunc:258,itemfunc_add_condit:258,itemfunc_attack:258,itemfunc_cure_condit:258,itemfunc_h:258,itend:390,iter:[6,13,28,30,46,81,108,114,168,243,264,273,282,296,301,307,343,345,346,362,364,365,367,368,371,375,390],iter_cal:375,iter_to_str:390,itl:[77,204],its:[3,5,8,9,10,11,12,13,15,16,18,19,20,22,27,28,29,30,31,33,34,37,39,41,42,44,47,48,49,50,51,52,55,56,58,60,62,65,67,68,72,73,75,76,77,78,79,81,82,83,84,85,87,88,89,91,92,94,96,97,98,99,100,101,102,104,105,106,107,108,109,111,112,113,114,115,116,117,118,119,120,122,124,126,127,130,132,134,135,136,138,139,141,142,146,149,150,153,154,155,156,157,158,159,168,169,171,173,174,175,176,177,180,182,190,192,193,196,197,203,204,209,210,218,221,225,226,232,240,242,243,250,253,254,256,257,258,259,260,264,265,269,270,272,273,275,282,284,294,295,296,301,308,309,314,318,319,323,327,338,340,341,342,343,346,354,355,359,360,362,363,364,365,368,373,374,376,377,381,383,384,385,386,387,390,394,398,399,406,408,410,419,430,434,435,436,438,440],itself:[2,5,7,8,11,13,16,17,18,19,22,28,31,33,37,39,42,44,47,48,53,58,62,64,67,73,75,76,77,78,80,81,82,83,84,85,87,88,90,91,92,94,97,105,106,108,109,112,113,114,116,117,118,120,129,130,134,136,141,142,143,146,149,151,154,159,161,162,168,169,189,196,204,209,213,217,218,219,221,225,235,241,243,253,254,259,262,270,271,273,282,285,288,289,291,294,296,298,299,301,308,314,338,343,355,359,362,365,367,370,372,374,377,385,387,390,394,395,399,406,430,440,443],iusernamepassword:334,iwar:106,iweb:155,iwebsocketclientchannelfactori:325,iwth:309,jack:36,jail:[14,55],jam:78,jamochamud:147,jan:[55,101],januari:101,jarin:155,java:116,javascript:[49,51,52,53,68,73,87,134,158,201,342,343],jenkin:[78,130,206,225,227,254,256,257,258,259,260],jet:259,jetbrain:[7,144],jinja:113,jiwjpowiwwerw:13,jnwidufhjw4545_oifej:76,job:[22,33,102,151,168],johhni:78,john:[100,251],johnni:[246,247],johnsson:36,join:[46,76,77,81,89,100,111,121,123,129,130,141,149,150,153,168,187,196,201,203,217,242,367,390,443],join_fight:[256,257,258,259,260],join_rangefield:260,joiner:196,jointli:[88,176],joker_kei:[77,204],journal:82,json:[49,51,65,68,246,325,338,342,343,371,413],jsondata:68,jsonencod:343,jsonifi:343,jtext:367,judgement:127,jumbotron:443,jump:[0,11,14,15,28,29,37,69,78,81,87,91,97,121,123,149,216,254,312,377],jumpstat:216,june:64,junk:323,jupyt:443,just:[0,3,4,5,6,7,8,9,11,13,14,15,16,17,18,19,20,22,28,29,30,31,32,33,35,36,37,41,42,44,45,46,47,48,50,51,53,54,55,57,58,60,62,64,65,67,68,70,73,74,75,76,77,78,79,80,81,82,83,84,85,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,104,106,107,108,109,111,112,113,114,115,116,117,118,119,120,121,122,124,126,127,129,130,132,134,135,136,137,138,139,140,141,142,144,146,148,149,151,155,157,162,163,168,175,176,177,180,182,187,190,191,193,196,201,203,204,206,209,210,213,216,221,223,224,229,231,232,242,243,251,253,254,256,257,258,259,260,265,269,271,273,275,282,284,292,296,301,305,319,332,342,346,352,359,362,363,364,367,371,372,374,376,377,385,386,390,391,436,439,443],justif:[375,390],justifi:[30,41,367,375,377,390],justifii:375,justify_kwarg:375,kcachegrind:5,keen:84,keep:[0,3,5,6,9,11,14,15,16,22,28,31,40,41,44,53,56,75,76,88,90,92,94,95,98,99,100,101,102,104,105,106,107,108,111,115,116,117,120,121,122,123,124,126,127,129,136,138,139,140,141,142,143,146,149,151,154,157,162,169,176,224,227,232,241,246,265,270,271,300,301,316,357,374,376,390],keep_log:[196,370],keepal:[44,337,343],keeper:[106,123],keepint:88,kei:[0,3,6,8,11,13,14,18,19,20,22,27,29,30,31,32,33,34,37,39,42,45,46,47,48,49,51,53,54,64,67,68,72,75,76,79,81,82,83,85,86,91,92,93,94,95,96,97,98,99,100,101,102,104,105,106,107,108,110,114,115,116,117,126,128,129,130,137,138,141,145,152,168,169,170,171,173,175,176,177,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,196,197,198,203,204,205,206,209,210,212,213,214,216,217,218,221,223,224,225,226,230,231,236,239,240,242,243,249,250,251,253,254,256,257,258,259,260,265,268,269,270,271,272,273,275,281,282,283,284,286,288,289,291,294,295,296,299,300,301,303,304,305,306,307,308,309,312,314,319,320,321,323,332,335,338,339,341,342,343,345,346,353,354,355,357,362,363,364,365,369,370,372,373,374,375,377,383,384,385,387,390,410,430,441,443],kept:[5,8,22,31,39,53,99,107,113,182,231,232,243,301,362],kept_opt:254,kernel:0,key1:239,key2:[28,239,296],key_mergetyp:[20,175,265],keydown:51,keyerror:[209,300,309,385,390],keyfil:[335,339],keynam:[196,299,301,370],keypair:334,keys_go_back:[77,204],keystr:365,keystrok:334,keywod:376,keyword:[5,8,13,19,22,27,28,29,30,32,33,41,42,45,47,48,54,58,65,67,75,77,92,94,95,100,101,104,107,110,111,116,126,130,142,168,169,173,177,182,188,196,201,206,212,221,223,224,229,231,232,235,242,243,247,256,257,258,259,260,271,272,284,292,294,296,300,301,305,308,309,312,314,319,323,325,326,332,333,334,337,342,343,353,354,355,357,362,363,364,370,373,374,375,376,377,381,384,386,387,390,439,443],keyword_ev:235,kick:[18,20,28,55,100,123,155,169,175,180,187,194,214,375],kildclient:147,kill:[5,19,28,44,109,113,121,124,129,154,157,203,269,270,305,309,314,352,359,443],killsign:314,kilogram:105,kind:[6,13,33,62,75,84,85,107,114,115,116,121,125,129,136,138,141,159,256,257,258,259,292,364,391,443],kindli:139,kitchen:[97,115,126,182,275],klass:64,knee:[83,218,282],kneeabl:218,kneed:218,kneel:218,kneelabl:218,knew:[114,116],knife:[79,209,210],knight:13,knob:13,knock:[28,120],knot:206,know:[0,3,5,6,8,9,11,12,13,14,15,16,18,20,22,28,30,31,32,33,34,37,44,48,53,54,56,58,60,62,64,65,67,70,75,77,79,81,82,83,84,85,88,89,91,94,96,97,98,99,100,102,104,105,106,107,108,109,111,113,114,115,116,117,118,119,121,122,123,124,126,127,129,134,135,136,138,139,140,141,142,144,145,146,148,151,153,155,156,157,159,163,177,181,182,190,193,203,231,236,242,254,259,265,270,282,295,296,319,353,355,362,368,369,374,390,399,406,437,443],knowledg:[14,16,22,87,336,355],known:[22,27,31,36,39,40,47,48,51,89,109,121,126,127,142,144,147,161,167,191,259,375,442,443],knuth:5,korean:64,koster:144,kovash:28,kwar:364,kwarg:[13,18,22,28,30,32,33,34,41,45,47,48,51,54,62,65,68,71,79,83,92,94,100,104,126,136,138,140,142,168,169,170,171,173,176,177,179,180,181,182,187,188,189,190,191,192,193,194,196,197,198,201,203,204,205,206,209,210,212,213,214,216,217,218,219,221,223,224,225,226,229,230,231,232,236,239,240,241,242,243,247,249,250,251,253,254,256,257,258,259,260,262,264,265,268,269,270,271,272,273,275,282,283,284,287,288,291,292,294,295,296,298,299,300,301,303,304,305,307,308,309,311,312,319,320,321,323,324,325,326,331,332,333,334,335,337,338,339,342,343,345,347,353,354,355,356,357,359,362,363,364,365,367,370,372,373,374,375,376,377,378,380,381,383,384,385,386,387,388,390,391,398,399,400,403,404,406,410,412,413,416,430,434,435,436,438,439,440,441],kwargtyp:390,label:[46,67,74,109,118,119,141,410,430],label_suffix:[400,402,404,406,430],laborum:29,labyrinth:83,lack:[14,53,72,85,98,108,121,124,243,265,296,362,390],laddad:64,ladder:100,ladi:114,lag:[5,81,149],lair:15,lambda:[28,41,54,96,102,232,301,390],lamp:[82,265],lamp_breaks_msg:265,land:[107,129,269,270],landscap:[82,158],lang:242,langcod:243,langnam:243,languag:[8,10,16,30,39,48,51,52,53,58,61,62,69,70,72,85,87,88,98,99,100,107,108,111,112,113,114,115,116,122,124,136,144,158,242,243,443],language_cod:64,languageerror:[242,243],languageexistserror:242,languagehandl:242,larg:[6,8,14,15,28,41,42,53,54,56,67,69,78,83,84,87,98,109,119,120,121,124,126,146,155,218,242,265,273,276,300,332,368,373,381,443],larger:[15,30,33,67,69,81,85,99,105,116,121,224,296,340,367,381,390,419,442],largest:253,largesword:67,last:[0,2,3,8,11,13,14,15,18,20,22,28,32,36,37,44,45,51,58,64,67,77,83,85,90,94,100,102,107,110,115,116,117,118,120,121,123,124,129,134,138,139,142,148,151,163,170,173,174,176,182,187,188,201,203,212,224,232,243,254,256,257,258,259,260,296,318,367,368,369,374,375,376,378,383,390,443],last_cmd:[22,114],last_initial_setup_step:352,last_login:398,last_nam:398,last_step:318,lastcast:93,lastli:[82,104,141,173,209],lastsit:92,late:[300,369],later:[6,11,12,13,14,18,22,31,32,34,41,42,47,48,55,62,65,67,74,75,76,77,79,80,82,83,87,88,100,102,104,108,109,111,114,115,116,117,119,121,122,123,124,126,127,128,130,135,137,138,141,146,149,155,175,179,180,182,190,196,212,240,243,282,300,301,309,334,365,377,390],latest:[2,11,19,20,53,78,85,88,91,100,149,151,154,156,182,187,192,296,301,333,357,374,377,383,410,443],latin:[16,64,70,194,296,390,443],latin_nam:296,latinifi:[296,390],latter:[19,33,37,47,83,88,94,107,139,243,253,286,304,306,365],launch:[7,8,15,78,83,91,106,120,148,149,154,155,163,176,265,313,314,324,326,345,372,390,443],launchcmd:[83,165,166,199,274,276,443],launcher:[5,7,83,276,277,313,314,323,324,345],lava:83,law:144,layer:[20,77,78,112,117,295,364],layout:[9,19,31,40,48,51,53,81,83,98,100,114,118,273,281,296,443],lazi:390,lazy_properti:[252,253,390],lazyencod:343,lazyset:383,lc_messag:64,lcnorth:59,ldesc:98,ldflag:154,lead:[13,14,17,20,28,30,42,50,52,53,65,67,71,75,77,78,81,82,83,84,87,88,98,102,109,111,118,121,123,138,144,146,158,168,174,175,182,192,209,232,235,241,243,249,275,280,282,283,284,296,300,301,353,362,364,374,376,377,390],leak:[53,73],lean:[35,122,243],leap:[101,116,126,136],learn:[3,7,11,16,17,20,22,49,53,56,69,75,77,78,80,81,83,94,98,99,102,104,108,110,111,112,114,115,116,117,120,121,122,123,124,126,134,139,142,144,149,162,242,243,259,443],learnspel:259,least:[3,7,13,22,28,33,35,50,67,81,87,96,99,100,114,116,117,119,121,124,127,132,138,145,151,155,168,176,197,203,218,242,253,287,296,301,307,367,373,376,377,387,390],leasur:269,leather:[106,123,210],leatherrecip:210,leav:[5,12,18,32,51,53,75,77,91,92,100,106,109,119,127,129,130,158,179,181,182,196,203,204,216,218,219,271,273,275,296,308,338,342,343,374,377,381,413,443],leaver:196,led:114,left:[2,19,22,30,32,33,41,51,67,77,82,83,85,96,99,102,106,107,111,115,120,126,149,168,182,188,190,218,227,256,257,258,259,260,265,270,273,281,282,292,301,364,367,376,390],left_justifi:41,leftmost:83,leg:351,legaci:[30,41,42,68,123,162,168,243,377],legal:[155,158],legend:[27,81,147,165,166,199,274,281,283,443],legend_key_except:281,legenddict:283,leisur:391,len:[41,81,92,100,106,111,118,129,137,138,152,174,191,212,390],lend:27,length:[63,67,77,81,83,92,101,107,116,120,123,146,152,155,174,201,209,212,223,225,227,235,242,243,281,282,294,316,357,362,367,376,377,390,441],lengthi:92,lenient:41,less:[7,28,31,53,64,67,69,77,83,88,97,98,107,114,115,121,123,126,127,129,140,141,155,212,257,259,282,362],lesson:[108,109,110,111,112,114,115,117,118,121,123,124,126,443],let:[5,7,8,11,13,15,16,18,20,22,28,30,32,33,37,39,47,51,53,55,60,62,65,74,75,76,77,79,80,81,82,83,84,85,88,91,92,93,96,97,98,99,100,101,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,132,133,134,135,136,138,139,141,142,145,149,150,153,154,156,158,168,176,177,182,188,193,203,206,213,225,227,253,254,273,281,292,296,324,343,355,370,374,384,389,410,430,437,438,443],letsencrypt:[151,155],letter:[16,35,60,64,70,77,82,83,85,96,116,130,141,155,179,188,194,204,218,241,242,253,358,367,390],leve:300,level10:210,level:[0,2,4,12,13,14,18,19,27,28,30,31,33,39,44,46,48,49,50,53,57,62,63,64,69,74,77,78,79,82,85,87,95,99,100,102,106,109,111,116,121,123,124,126,127,141,144,149,152,155,159,168,179,182,184,185,196,204,205,210,212,216,236,242,254,265,281,286,291,296,301,316,353,362,364,370,372,377,378,390,411,441],lever:[22,48,216],leverag:[52,85,126,132],levi:67,lexicon:218,lhs:[92,100,190],lhslist:190,liabl:218,lib:[6,146,149,151,154],libapache2:145,libcrypt:154,libjpeg:154,librari:[0,4,8,9,14,41,48,49,51,64,69,83,86,88,98,99,103,107,114,117,119,134,141,143,144,149,154,157,158,162,199,241,272,300,301,327,362,364,376,390,443],licenc:367,licens:[7,78,84,123,241,367,393,394,443],lid:265,lidclosedcmdset:265,lidopencmdset:265,lie:[82,218],lied:218,lies:[11,22,115],life:[36,84,101,119,123,124,126,139,212,269,442,443],lift:[33,109,127,130,218,260,292,443],lifter:33,light:[15,19,42,69,85,120,121,124,146,176,257,270,271,284,301,308,367],lightabl:270,lighter:[60,257],lightest:19,lightli:[56,257],lightsail:155,lightsourc:270,lightsource_cmdset:270,like:[0,2,3,5,6,7,8,9,11,12,13,15,16,17,18,19,20,22,23,25,28,29,30,31,32,33,34,35,37,39,41,42,44,45,46,47,48,50,51,52,53,54,55,56,57,58,60,62,64,65,67,68,69,72,73,74,75,76,77,79,80,81,82,83,84,85,86,87,88,89,91,92,93,94,95,96,97,99,100,101,102,104,106,107,108,109,110,111,113,114,115,116,117,118,119,120,121,122,124,126,127,129,132,134,135,137,138,139,140,141,142,144,145,146,148,149,150,151,152,153,154,155,157,158,159,162,168,169,171,172,174,175,176,179,181,182,187,190,193,194,195,196,197,203,204,206,209,210,214,218,224,225,226,227,235,241,242,243,249,250,253,254,256,257,258,259,260,264,265,271,272,273,282,288,289,291,292,294,295,296,300,301,314,319,327,343,346,348,352,354,355,362,363,364,367,368,370,373,374,375,376,377,378,381,384,386,387,390,393,415,430,439,443],limbo:[14,15,19,63,75,76,77,78,82,83,109,113,114,120,138,142,149,159,182,204,271,275,318],limbo_exit:82,limit:[0,5,8,12,13,18,19,20,22,28,30,31,33,35,41,42,46,48,49,50,56,57,67,74,75,80,83,84,86,87,88,92,93,100,107,109,111,113,115,116,118,121,122,124,129,130,139,146,152,155,159,161,168,170,177,179,180,181,182,196,197,206,218,232,243,252,253,254,256,258,259,265,281,286,287,288,289,292,294,296,301,303,304,309,319,332,357,362,363,364,365,368,370,372,383,387,390,393,408,436,443],limit_valu:168,limitedsizeordereddict:390,limp:120,line2:115,line:[0,2,5,6,8,9,13,14,15,16,18,19,20,22,28,30,32,35,36,37,40,41,48,51,53,54,57,60,64,65,67,69,75,76,77,78,79,80,82,83,85,86,90,92,94,95,96,98,99,100,101,102,104,107,108,109,112,114,115,117,118,123,130,138,141,142,146,148,149,151,155,156,157,159,163,165,168,173,176,182,187,189,191,192,201,204,213,214,225,239,242,243,254,265,272,273,277,281,296,300,314,319,334,337,342,353,364,367,368,372,373,374,375,376,383,390,430,435,443],linear:81,linebreak:[102,367,389],lineeditor:372,lineend:389,lineno:85,linenum:372,liner:326,linereceiv:[334,337],linesend:343,lingo:[44,67,73,99],linguist:390,link:[0,9,11,12,15,17,18,20,22,26,28,31,37,44,49,52,53,62,71,76,77,78,80,81,82,84,87,88,90,92,94,96,99,102,106,108,109,111,112,113,114,116,123,130,132,138,141,142,148,149,153,155,156,161,168,171,182,187,229,272,275,279,280,281,282,283,292,296,304,312,314,325,329,334,337,364,389,390,403,442,443],link_button:403,link_object_to_account:403,linknam:[85,148],linknod:282,linktext:85,linkweight:282,linod:155,linux:[0,5,6,7,11,36,76,85,88,90,92,116,117,145,146,151,153,154,155,157,246,390,443],liquid:364,list:[0,5,6,7,9,11,12,13,14,15,16,18,19,20,22,26,28,30,31,32,33,35,37,41,42,44,46,48,49,50,51,53,55,60,62,63,64,67,68,70,72,73,75,77,79,80,81,82,83,84,87,89,90,92,96,99,100,102,105,106,107,108,109,111,112,113,116,118,120,121,122,124,126,127,129,130,132,138,141,142,144,146,148,149,153,155,156,158,163,168,169,170,171,174,175,176,177,179,180,181,182,187,188,189,190,192,193,196,197,198,201,203,204,205,206,207,209,216,217,218,224,225,226,227,229,230,232,233,235,236,239,240,241,242,243,246,247,253,254,256,257,258,259,260,265,268,269,270,273,275,281,282,283,284,286,287,289,292,294,295,296,300,301,303,305,306,307,309,312,314,319,320,323,324,326,328,330,332,333,338,343,346,355,357,359,362,363,364,365,367,368,369,370,371,374,376,377,383,384,387,390,393,394,398,399,406,408,411,413,414,415,421,423,434,435,436,438,440,441,442,443],list_attribut:182,list_callback:230,list_channel:187,list_displai:[398,400,402,403,404,405,406],list_display_link:[398,400,402,403,404,405],list_filt:[398,402,403,406],list_nod:[374,443],list_of_fieldnam:100,list_of_myscript:42,list_prototyp:300,list_select_rel:[400,402,403,404,405],list_serializer_class:416,list_set:314,list_styl:179,list_task:230,list_to_str:390,listabl:182,listaccount:[26,192],listcmdset:182,listcmset:[26,182],listdir:201,listen:[12,18,33,44,51,55,103,146,151,158,187,196,218,242,243,265,435,443],listen_address:146,listing_contact:148,listnod:374,listobj:[26,182],listobject:[26,182],listview:[435,436,438],lit:[270,271,377],liter:[14,30,31,41,50,63,99,109,188,367,377,386,390],literal_ev:[30,374,377,390,399],literari:124,literatur:443,littl:[3,11,16,22,41,42,48,53,54,75,76,79,82,83,85,88,90,91,92,93,99,100,102,106,107,108,109,111,113,114,115,116,117,118,119,120,121,122,123,124,126,134,135,136,142,152,155,157,163,218,243,257,268,271,349,362,374,390,430],live:[7,13,53,85,89,114,123,144,145,146,149,151,155,157,443],ljust:[30,367,377],lne:254,load:[0,5,6,7,8,13,14,16,20,22,27,28,41,51,52,53,55,64,82,83,94,97,98,99,100,102,105,114,115,116,117,121,127,130,134,138,158,171,176,188,189,192,198,211,221,224,232,242,281,283,286,288,292,295,296,300,304,308,318,321,323,354,362,364,365,368,369,372,377,382,384,385,388,390,408,423,428],load_buff:372,load_data:369,load_game_set:423,load_kwarg:385,load_module_prototyp:300,load_stat:221,load_sync_data:354,loader:[28,283,364,390],loadfunc:[27,372,385],loc:[182,275],local0:151,local:[2,6,7,11,30,49,50,53,60,64,83,84,88,92,101,108,112,115,134,141,146,151,153,157,158,201,229,232,243,301,337,362,443],local_and_global_search:294,local_non_red_ros:111,local_ros:111,localecho:[155,319],localevenniatest:388,localhost:[49,50,51,52,53,73,76,90,102,119,132,141,142,146,147,149,151,154,155,162,343],locat:[4,5,8,9,11,12,14,19,20,22,25,26,28,32,33,37,41,42,46,48,49,50,51,53,55,58,63,73,74,75,76,78,79,80,81,82,83,85,88,90,91,92,95,96,99,100,106,107,108,109,111,112,113,114,115,116,120,122,123,126,130,134,135,136,138,141,145,149,151,155,157,158,162,168,173,182,188,192,196,197,201,204,205,206,209,221,223,224,240,243,249,264,269,271,273,275,279,281,282,283,284,291,294,295,296,301,343,352,362,363,364,365,368,370,374,376,383,387,416,419,421,443],location_nam:273,location_set:111,locations_set:[111,295],locattr:[270,291],lock:[18,20,22,24,26,30,35,37,41,42,46,48,50,54,55,57,77,83,86,90,91,92,93,94,96,97,100,101,105,106,108,109,112,113,114,126,130,141,146,152,155,159,163,165,166,168,177,179,180,181,182,187,188,189,191,192,193,194,196,198,203,204,205,206,209,210,213,214,216,218,224,226,229,230,232,233,236,239,240,243,249,251,265,269,270,271,273,275,282,286,288,295,296,300,301,303,359,362,364,365,370,372,374,384,390,391,403,411,438,443],lock_definit:292,lock_func_modul:[33,292],lock_storag:[177,179,180,181,182,187,188,189,190,191,192,193,194,198,203,204,205,206,209,210,213,214,216,224,225,226,230,236,239,240,243,249,250,251,254,256,257,258,259,260,265,269,270,271,272,275,286,288,296,345,362,364,372,374,375],lock_typ:33,lockabl:[35,100,218,249],lockablethreadpool:359,lockdown:[33,362,443],lockdown_mod:155,lockexcept:292,lockfunc1:33,lockfunc2:33,lockfunc:[18,22,33,39,86,92,113,115,138,159,165,166,182,187,290,365,443],lockhandl:[13,31,33,48,108,165,166,177,204,272,290,291,443],lockset:296,lockstr:[6,13,18,22,31,33,41,90,115,126,182,187,189,196,198,249,292,296,301,362,365,370,411],locktyp:[18,175,187,209,301,365,377],log:[2,5,7,9,10,11,12,13,22,25,28,32,35,37,42,44,45,50,51,52,53,54,55,63,64,67,73,78,82,83,86,87,88,90,91,92,96,97,99,100,108,109,115,119,123,126,127,130,138,141,142,145,146,147,149,150,151,152,153,154,155,157,163,168,176,180,194,196,205,214,219,225,246,247,281,282,283,296,304,308,314,319,323,324,328,331,332,334,337,345,346,347,353,355,357,359,364,370,383,390,398,435,436,443],log_dep:[19,383],log_depmsg:383,log_dir:[18,196,246,383],log_err:[19,383],log_errmsg:383,log_fil:[18,19,196,383],log_file_exist:383,log_info:[19,383],log_infomsg:383,log_msg:383,log_sec:383,log_secmsg:383,log_serv:383,log_trac:[19,42,136,137,383],log_tracemsg:383,log_typ:383,log_typemsg:383,log_warn:[19,383],log_warnmsg:383,logdir:2,logentry_set:171,logfil:[314,383,435,443],loggad:64,logged_in:44,loggedin:[53,332],logger:[19,42,86,136,137,165,166,246,326,366,443],logic:[3,6,53,54,75,79,81,82,83,90,96,97,102,113,123,126,142,218,242,295,299,318,362,374,391,413],login:[5,6,11,12,22,25,28,33,44,45,52,53,76,83,90,92,102,123,141,155,168,179,194,214,292,318,319,334,337,342,343,346,355,390,422,424,431,443],login_func:346,loginrequiredmixin:[436,441],logintest:431,logo:443,logout:[345,346,431],logout_func:346,logouttest:431,logprefix:[324,334,337,359],lon:377,lone:[82,121,182,189],long_descript:148,long_running_funct:54,long_text:29,longer:[22,27,29,30,47,48,58,67,72,75,91,92,94,100,102,107,108,114,116,117,139,144,148,175,180,196,206,242,243,250,256,257,258,259,260,305,308,372,376,390,443],longest:[19,243],longrun:22,longsword:49,loo:[177,193],look:[0,2,3,5,6,8,11,13,14,15,16,17,19,20,22,25,26,28,30,32,33,36,37,39,41,42,44,46,48,50,52,53,54,55,56,57,58,60,62,64,65,67,68,69,73,75,76,77,78,79,80,81,82,83,84,85,87,88,89,90,91,92,94,95,96,97,99,100,101,102,104,105,106,107,108,111,112,113,114,115,116,117,118,119,120,121,122,124,126,127,129,132,133,134,135,136,138,139,141,142,146,149,151,152,154,155,157,158,163,168,169,174,176,177,179,182,188,190,193,194,201,205,206,209,214,216,217,218,224,225,231,239,240,242,243,254,258,264,265,268,270,271,273,282,283,284,287,291,292,295,296,298,301,303,319,334,335,342,346,362,364,368,374,376,377,384,387,389,390,394,398,403,430,443],look_str:168,lookaccount:100,lookat:22,looker:[5,30,58,81,83,100,130,168,206,218,219,224,243,264,273,284,296,364],lookm:22,lookstr:296,lookup:[6,13,22,33,46,58,67,173,188,246,286,294,295,300,333,365,367,380,381,386,387,390,391,443],lookup_env:201,lookup_expr:410,lookup_typ:386,lookup_usernam:28,lookuperror:367,loom:82,loop:[5,13,30,48,75,80,81,83,87,88,91,102,106,111,129,136,165,169,256,282,301,332,443],loopingcal:317,loos:[15,84,168,187,206,260,287,334,345,368],loot:[121,443],lop:111,lore:[31,100,189,286],lose:[13,44,98,121,123,129,130,157,163,246,258,325,326,334,337],lost:[48,73,75,82,85,96,98,107,144,163,187,250,311,324,325,326,334,337,342,362,367],lot:[0,3,5,8,11,14,16,18,19,30,31,33,41,42,46,48,50,52,53,54,58,64,67,69,73,75,77,79,80,82,83,84,86,87,89,90,93,96,99,100,101,102,107,108,111,113,114,115,116,117,118,119,120,121,122,123,124,126,127,128,130,138,141,144,149,151,155,204,212,214,225,243,251,257,270,273,359],loud:[91,126],love:[31,51,124,286],low:[20,62,63,80,123,155,175],lower:[5,12,13,18,20,22,28,39,51,54,57,60,67,81,83,92,94,100,101,106,120,123,155,174,175,179,190,192,243,253,281,282,319,365,367,390],lower_bound_inclus:253,lowercas:[85,116,177,243,367],lowest:[39,63,155,253,291,367],lpmud:72,lsarmedpuzzl:240,lspuzzlerecip:240,lst:[81,370],lstart:27,lstrip:[107,367],ltthe:192,ltto:59,luc:373,luciano:144,luck:[28,79,107,114,145],luckili:[8,11,33,82],lue:[60,367],lug:87,luggag:118,luhttp:192,lunch:80,lunr:[31,189,289],lunrj:289,lurk:123,luxuri:[46,361],lvl10:210,lycanthrophi:111,lycantrhopi:111,lycantrophi:111,lycantrroph:111,lying:[82,218],m2m:365,m2m_chang:45,m_len:390,mac:[5,7,11,76,85,88,116,119,146,147,157,162,390,443],machin:[7,11,14,92,116,123,146,157,269,443],macport:[11,149],macro:[90,129],macrosconfig:90,mad:[11,253],made:[0,2,11,13,25,28,30,33,39,41,49,53,57,78,82,83,85,91,92,98,100,108,109,114,115,117,118,121,123,126,130,132,138,142,155,156,158,159,173,175,192,193,196,203,206,225,253,254,258,259,260,277,292,308,316,346,360,367,368,372,374,377,390],mag:[8,373],magazin:144,mage:[28,111],mage_guild_block:28,mage_guild_welcom:28,magenta:139,magic:[13,33,46,74,78,79,95,120,121,122,123,138,203,210,227,252,259,316,443],magic_meadow:46,magicalforest:74,magnific:28,mai:[1,3,5,6,7,8,9,10,11,13,14,18,19,20,22,28,30,31,33,34,36,37,41,42,44,47,48,49,53,54,57,58,60,62,63,64,65,67,68,69,73,75,76,78,79,82,83,84,85,88,89,90,91,92,93,94,98,99,101,102,104,109,111,113,114,116,118,119,120,121,122,124,126,127,129,130,134,136,137,141,142,144,145,146,148,149,151,152,154,155,157,158,159,163,168,169,173,174,175,177,179,180,182,187,189,192,193,196,197,198,199,201,203,205,206,209,210,212,218,221,225,227,242,243,253,256,257,258,259,260,270,271,281,282,292,294,296,300,301,302,316,353,355,356,360,362,364,365,367,369,370,371,372,374,376,377,378,384,387,390,393,399,406,419,436,443],mail:[5,9,28,35,76,84,87,89,99,108,129,144,165,166,197,198,199,443],mailbox:[35,236],main:[4,11,14,15,16,20,22,28,31,34,37,39,40,41,42,44,46,47,48,49,51,52,53,58,62,65,67,73,77,81,83,84,88,91,95,98,102,104,106,107,109,112,114,115,122,123,126,129,141,142,144,146,148,155,157,159,161,163,168,171,173,179,182,187,189,193,196,198,204,209,211,225,232,236,242,243,273,277,283,288,289,295,296,301,304,314,318,319,321,326,331,333,338,352,354,359,364,365,374,375,379,387,389,390,398,404,421,439,443],mainli:[5,13,22,28,35,37,44,54,55,58,65,99,115,116,144,179,285,362,368,390],maintain:[5,31,47,57,69,78,84,85,90,98,118,124,146,155,157,161,162,192,194,214,277,309,442],mainten:[155,158,442],major:[15,16,30,88,99,122,138,141,146,149],make:[0,1,2,3,5,6,7,9,10,12,13,14,15,16,18,20,22,26,27,28,30,31,32,33,35,36,37,39,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,62,64,65,67,69,70,74,75,76,77,78,79,80,81,82,83,84,85,87,88,89,90,92,93,94,95,96,97,98,101,103,104,106,107,110,111,112,113,115,117,118,119,120,121,122,124,125,127,128,129,131,133,134,135,136,139,140,141,142,143,144,145,146,147,148,149,152,153,154,155,157,158,159,162,163,168,169,171,174,175,176,177,179,180,182,187,190,193,197,201,203,204,206,209,210,212,216,218,224,225,227,233,236,242,243,248,249,250,253,254,256,257,258,259,262,265,269,270,271,275,281,282,284,287,291,292,294,296,300,301,303,306,309,314,318,326,331,345,346,352,353,355,356,358,359,362,363,364,365,367,368,369,370,371,372,374,376,377,378,381,387,389,390,399,406,408,431,439,441,443],make_it:390,make_shared_login:424,make_uniqu:175,makeconnect:323,makefactori:334,makefil:85,makeit:345,makemessag:64,makemigr:[2,67,141],male:[58,226,377,394],malevol:15,malform:[193,283,391],malici:[30,158],malign:292,man2x1:69,man:[36,58,69,72,122,155,188,236,243],mana:[78,93,95],mana_cost:210,manaag:402,manag:[5,8,9,11,12,18,20,33,37,42,44,47,48,62,65,67,76,83,86,96,98,99,106,111,113,122,126,141,157,163,165,166,167,168,171,182,187,192,193,195,196,198,201,221,239,243,260,271,284,285,288,293,295,296,300,302,304,309,310,314,321,361,362,364,365,366,369,370,379,382,383,387,390,431,434,435,436,441,443],manager_nam:362,manchest:390,mandat:430,mandatori:[41,45,72,75,77,83],mandatorytraitkei:253,maneuv:254,mangl:340,mango:240,manhol:334,manhole_ssh:334,mani:[0,5,8,9,11,12,13,15,16,17,18,19,20,22,28,30,31,37,41,42,44,45,47,48,49,52,53,54,55,60,61,62,63,64,67,68,69,70,72,73,74,75,76,78,81,82,83,85,87,88,89,90,95,97,98,99,100,101,106,107,108,109,110,111,113,115,116,117,121,123,124,127,129,130,136,137,138,139,141,142,149,153,155,156,158,159,163,170,171,175,177,182,187,193,198,201,203,206,209,211,214,218,225,243,250,251,254,258,259,269,272,281,282,284,288,289,292,294,295,301,304,309,314,328,336,338,357,362,364,365,367,374,375,377,381,382,383,439],manifest:[6,113],manipul:[13,20,28,39,41,42,50,67,75,77,88,97,108,130,170,182,192,197,224,229,253,287,294,296,303,320,370,375,436,438],manner:[15,243,273,296,332,364],manpow:84,manual:[5,6,9,11,13,15,22,31,33,37,41,42,48,50,52,60,62,64,67,74,82,83,85,87,90,91,95,100,106,109,113,114,116,121,124,126,135,138,142,144,146,149,151,155,163,165,169,182,253,254,265,268,272,282,296,301,307,314,331,338,374,375,377,442,443],manual_paus:[42,307],manual_transl:242,manytomanydescriptor:[171,198,288,295,304,362,364,365],manytomanyfield:[171,198,288,295,304,362,364,365],map10:279,map11:279,map12a:279,map12atransit:279,map12b:279,map12btransit:279,map1:[83,279,282],map2:[83,279,282],map3:279,map4:279,map5:279,map6:279,map7:279,map8:279,map9:279,map:[6,16,18,28,30,36,58,68,73,75,80,88,92,96,99,100,151,157,165,166,179,187,193,196,199,201,207,212,218,242,243,253,273,274,275,276,278,279,280,281,283,284,289,296,300,301,338,362,364,367,373,374,377,390,394,395,443],map_align:[83,284],map_area_cli:284,map_character_symbol:[83,284],map_data:[279,281],map_displai:[83,279,284],map_exampl:276,map_fill_al:[83,284],map_mod:[83,284],map_modul:82,map_module_or_dict:281,map_separator_char:[83,284],map_str:[81,82,273],map_target_path_styl:[83,284],map_visual_rang:[83,284],mapa:83,mapb:83,mapbuild:[165,166,199,443],mapc:83,mapcorner_symbol:281,mapdata:283,maperror:[280,281],maplink:[83,281,282],mapnam:[275,283],mapnod:[83,281,282],mapp:377,mapparsererror:[280,282],mapper:[281,377,381,395,443],mapprovid:273,maps_from_modul:283,mapstr:[83,283],mapstructur:281,maptransit:280,maptransitionnod:[83,282],march:[144,383],margin:17,mariadb:443,mark:[11,14,15,22,30,31,33,50,51,53,59,60,71,73,74,81,83,85,91,100,108,111,116,122,149,153,155,174,181,210,223,224,232,241,254,279,281,282,355,362,364,368,373,374,377,386],mark_categori:254,markdown:[31,85,90,148],marker:[14,18,22,30,36,53,58,60,78,83,88,116,122,126,187,188,209,218,223,224,226,243,254,281,282,296,326,334,337,342,343,362,365,367,373,374,375,419],market:[123,155],markup:[31,58,60,104,134,165,166,207,366,389,390,443],mask:[78,122,240,243,247,248],maskout_protodef:240,mass:[5,103,121,443],massiv:[87,93],master:[76,80,84,85,99,120,121,127,129,136,142,149,156,157,253,360,443],match:[9,11,13,19,20,22,28,30,31,32,33,36,37,39,41,42,44,46,48,50,51,53,60,65,67,68,73,76,77,79,81,82,83,96,97,99,100,101,107,109,111,113,118,126,134,136,141,142,146,159,168,170,173,174,175,176,177,180,182,187,188,189,191,193,197,204,207,209,212,224,225,235,236,239,240,243,253,259,273,281,282,284,286,287,289,291,292,294,296,300,301,303,306,309,319,320,332,345,355,362,363,364,365,367,372,374,376,377,385,387,389,390,391,393,419,441,443],match_index:174,matched_charact:225,matches2:67,matchobject:[367,389],mate:88,materi:[79,116,123,209,210],math:96,mathemat:[122,175],matlab:0,matplotlib:347,matric:[83,281],matrix:[83,376],matter:[2,8,13,20,28,31,34,44,45,64,69,75,76,79,83,90,92,99,101,102,107,116,117,121,126,127,129,134,135,149,158,175,209,243,260,269,282,295,319,362,443],matur:[9,31,53,69,72,116],maverick:88,max:[18,56,78,81,122,123,129,152,189,225,243,252,253,281,289,357,383,390],max_damag:258,max_dbref:363,max_depth:390,max_dist:81,max_heal:258,max_l:81,max_length:[67,81,141,201,243],max_lin:376,max_memory_s:201,max_nest:377,max_nr_charact:123,max_num_lin:435,max_pathfinding_length:281,max_popular:435,max_rmem:381,max_siz:[279,281,383],max_tim:279,max_valu:[227,430],max_w:81,max_width:81,maxconn:151,maxdelai:[311,325,326,345],maxdepth:301,maxdiff:[193,211,414,425],maximum:[56,60,67,82,96,107,122,123,152,168,201,225,227,253,256,257,258,259,260,281,296,301,359,367,374,376,377,390],maxiumum:279,maxlengthvalid:168,maxnum:390,maxrotatedfil:383,maxsplit:367,maxthread:359,maxval:[377,390],maxvalu:377,maxwidth:376,may_use_red_door:41,mayb:[13,14,15,19,20,22,41,67,74,76,77,79,81,83,85,91,92,97,102,105,106,111,113,114,115,118,121,123,124,127,129,148,149,155,176,203,210,235,242,332],mccp:[32,147,165,166,310,319,322,443],mccp_compress:327,md5:146,meadow:[46,74,77,122,377],mean:[3,4,5,6,8,9,11,13,14,15,16,18,19,20,22,28,32,33,34,35,36,39,42,44,46,48,52,54,55,58,60,62,65,67,68,70,73,75,77,79,80,81,82,83,84,87,88,93,99,100,101,104,106,109,111,112,113,114,115,116,117,120,121,124,126,127,129,130,134,135,138,139,142,143,146,155,157,158,159,163,168,169,170,176,182,189,210,213,218,232,242,253,270,272,281,284,291,294,296,300,301,305,309,314,338,354,362,364,367,374,376,377,381,383,386,387,443],meaning:[177,193],meaningless:130,meant:[20,31,35,42,48,49,51,52,56,65,74,77,78,97,101,109,113,115,122,139,148,175,204,218,226,243,251,253,256,257,258,259,260,271,273,286,296,319,368,390],meanwhil:31,measaur:5,measur:[5,130,155,174,191,281,345,346,390],meat:[119,125,128,131,133,141],mech:[103,443],mechan:[4,18,19,22,27,28,41,42,48,93,96,100,102,107,120,121,127,129,130,139,168,169,173,219,224,243,259,290,301,309,314,318,324,332,343,354,364,372,375,379,385,436,441,443],mechcmdset:91,mechcommand:91,mechcommandset:91,meck:91,med:64,medan:64,media:[56,113,201,342,359,386,398,399,400,402,403,404,405,406,430],median:81,mediat:127,mediev:210,medium:56,mediumbox:323,meet:[2,92,113,120,122,231,273,358],mele:[122,260],melt:[209,210],mem:192,member:[13,18,50,67,76,123,187,188,190,296,390],membership:[76,90,111],memori:[5,20,22,31,48,53,55,67,70,73,93,98,114,116,146,154,155,168,192,196,296,308,309,347,357,362,366,375,381,385,390,443],memoryerror:149,memoryusag:347,memplot:[165,166,310,344,443],meni:204,mental:139,mention:[8,13,14,15,16,22,31,32,47,54,62,69,70,76,81,91,94,98,99,109,111,116,121,139,149,155,176,214],menu:[0,7,9,20,41,44,53,80,85,86,92,102,112,121,122,123,128,130,148,149,150,163,165,166,182,199,204,215,216,219,225,251,254,268,297,301,312,314,366,384,443],menu_cmdset:374,menu_data:28,menu_edit:204,menu_login:[165,166,199,443],menu_modul:374,menu_module_path:374,menu_quit:204,menu_setattr:204,menu_start_nod:251,menu_templ:374,menuchoic:[28,374],menudata:[217,225,268,298,374],menudebug:[28,374],menufil:374,menunode_fieldfil:225,menunode_inspect_and_bui:106,menunode_shopfront:106,menunode_treeselect:254,menunodename1:28,menunodename2:28,menunodename3:28,menuopt:254,menutest:108,menutre:374,merchandis:123,merchant:80,mercuri:69,mere:[135,192,227],merg:[6,11,22,28,30,77,84,85,88,97,99,101,111,114,115,126,132,173,174,175,176,265,271,273,301,304,338,374,443],merge_prior:374,merger:[20,82,84,175,176],mergetyp:[20,28,129,175,265,271,372,374,375],merit:126,mess:[5,11,13,18,19,57,85,123,155,254],messag:[5,8,9,11,14,16,18,19,22,23,24,27,28,29,30,32,33,35,37,40,42,44,51,54,61,62,64,70,71,74,77,79,80,82,85,86,88,89,91,93,94,97,100,101,104,105,106,107,108,109,116,118,121,122,123,126,127,129,130,136,140,145,149,150,152,155,158,159,161,163,168,169,173,176,177,180,182,187,188,189,193,195,196,197,198,203,204,206,209,211,218,219,221,225,226,230,232,236,240,241,243,247,253,256,257,258,259,260,262,264,265,266,268,269,270,271,272,275,282,296,314,316,323,325,326,332,333,334,337,338,340,342,351,353,355,357,359,370,372,374,375,377,383,387,390,443],message_rout:51,message_search:197,message_templ:130,message_transform:196,messagepath:443,messagewindow:51,messeng:264,messsag:221,meta:[35,48,113,159,364,381,398,399,400,402,403,406,410,413,416,430],metaclass:[48,67,177,364],metadata:[35,247,316],metavar:272,meteor:105,meter:[78,227,253],method:[3,8,11,12,13,18,19,20,28,30,31,33,37,39,41,44,45,46,47,48,51,53,54,58,62,65,67,68,76,77,79,80,81,82,83,85,87,88,92,93,94,95,96,100,101,102,107,108,110,111,112,115,117,118,126,127,129,130,135,136,137,138,140,141,142,159,161,168,170,171,173,175,176,177,179,182,183,187,189,190,192,193,196,197,198,201,202,203,204,209,211,212,216,218,221,222,223,224,229,232,239,240,241,242,243,246,247,249,252,253,256,257,258,259,260,265,266,268,269,270,271,272,273,275,279,282,284,286,287,288,291,292,294,296,303,308,309,311,316,319,320,321,323,324,325,326,327,332,334,337,340,342,343,345,346,350,352,353,354,355,357,362,364,367,368,370,372,374,375,376,377,378,381,382,383,384,385,387,388,389,390,400,406,410,411,413,414,416,436,439,441,443],methodnam:[193,202,211,222,233,248,252,266,279,309,340,350,382,388,395,414,425,431],metric:[105,242],microsecond:13,microsoft:[82,149],mid:[69,94,138],middl:[22,81,94,155,257,279,367],middleman:151,middlewar:[165,166,396,420,443],midnight:[92,101],midst:120,midwai:60,mighht:107,might:[0,3,6,8,11,15,16,17,19,20,22,28,29,31,33,37,39,42,44,47,54,55,60,62,64,75,77,80,82,87,89,90,92,93,94,95,96,100,101,102,104,105,106,107,108,109,119,121,123,127,129,130,134,137,139,140,141,145,146,149,154,155,156,157,158,159,163,176,180,182,203,241,247,250,256,257,258,259,272,296,303,343,364,367,372,383,384,390,413,430],mighti:[18,82,94,114],migrat:[2,5,8,10,11,45,67,76,82,85,113,119,141,146,149,154,162,163,201,301,443],mike:182,million:[141,146],mime:370,mimic:[5,13,27,42,87,123,127,146,198,253,286,353,372],mimick:[27,88,127,345,372,375],mimim:365,min:[42,78,81,101,122,212,225,252,253,377,378],min_damag:258,min_dbref:363,min_heal:258,min_height:376,min_shortcut:[77,204],min_valu:430,min_width:376,mind:[14,15,28,54,55,84,87,98,99,103,116,117,120,121,122,124,126,139,142,146,148,203,227,232,241,316,390,443],mindex:174,mine:[58,80,123,158,377,394],mini:[39,58,82,87,113,114,115,443],miniatur:120,minim:[5,44,53,83,121,124,129,158,201,242,301],minimalist:[22,69,100],minimap:443,minimum:[44,77,79,88,100,123,127,225,253,256,257,258,259,260,319,359,364,376,377,385,390],minimum_create_permiss:411,minimum_list_permiss:411,mininum:376,minlengthvalid:168,minor:176,mint:[11,149,151],minthread:359,minu:[67,111,296,378],minut:[19,42,93,101,107,124,129,144,157,187,192,203,212,357,378,390],minval:[377,390],mirc:326,mirror:[44,83,116,144,153,165,166,199,261,443],mis:99,misanthrop:111,misc:24,miscelan:366,miscellan:[112,113],misconfigur:146,mismatch:[32,390],miss:[6,18,53,64,81,89,99,108,123,149,155,209,211,256,257,258,259,260,300,319,442],missil:[91,259],mission:102,mistak:[50,85],misus:155,mit:[144,367],mitig:[99,158,440],mix:[13,22,28,58,60,64,83,86,95,111,126,139,141,168,189,198,203,210,218,243,253,281,296,300,301,358,365,368,376,377,390],mixabl:218,mixer:218,mixer_flag:218,mixin:[165,166,300,348,396,413,416,429,433,434,435,436,438,441,443],mixtur:[104,218,377],mkdir:[2,76,149],mktime:101,mlocati:64,mmorpg:124,mob0:98,mob:[15,33,44,87,98,120,121,165,166,176,182,199,267,271,301,368,443],mob_data:98,mob_db:98,mob_vnum_1:98,mobcmdset:269,mobdb:98,mobil:[15,41,103,120,123,152,161,269,291],moboff:269,mobon:269,mock:[8,193,210,308,388],mock_delai:193,mock_random:266,mock_repeat:193,mock_tim:[252,350],mockdeferlat:388,mockdelai:388,mocked_idmapp:350,mocked_o:350,mocked_open:350,mockrandom:211,mockval:388,mod:[145,252,253,300],mod_import:390,mod_import_from_path:390,mod_or_prototyp:300,mod_prototype_list:300,mod_proxi:443,mod_proxy_http:145,mod_proxy_wstunnel:145,mod_secur:158,mod_ssl:443,mod_sslj:145,mod_wsgi:443,mode:[3,5,7,12,20,26,27,28,32,53,61,73,78,83,102,109,114,116,117,123,129,130,135,141,144,145,151,157,158,165,181,189,192,194,201,202,205,236,265,269,279,281,284,296,314,319,324,331,342,343,352,368,372,374,377,383,390,443],mode_clos:343,mode_init:343,mode_input:343,mode_keepal:343,mode_rec:343,model:[13,31,33,35,36,42,46,47,48,49,50,58,61,73,76,85,88,102,111,123,127,134,140,159,165,166,167,168,170,195,196,197,253,285,293,296,302,305,309,310,320,361,362,363,365,366,371,379,380,382,386,387,390,398,399,400,402,403,404,405,406,410,413,430,434,435,436,440,441,443],model_inst:386,modeladmin:[400,402,403,404,405,406],modelattributebackend:362,modelbackend:422,modelbas:381,modelchoicefield:[398,403],modelclass:[13,46],modelform:[398,399,400,402,403,404,406,430],modelmultiplechoicefield:[398,400,402,403],modelnam:[177,196,286,288,364],modelseri:413,modelviewset:416,moder:[90,96,203],modern:[13,16,54,69,82,95,139,144,151,158,327],modif:[11,22,30,53,65,75,80,84,92,107,130,145,157,253,360,430,443],modifi:[0,9,11,12,13,18,20,22,28,30,31,37,41,42,44,48,49,51,52,60,62,73,74,75,77,78,79,80,82,83,85,86,87,90,92,96,97,98,99,100,106,108,109,113,115,116,117,118,120,122,123,124,126,127,130,133,136,143,146,157,159,163,168,176,189,196,201,204,209,210,213,218,219,221,224,226,232,240,243,250,252,253,256,257,258,259,260,270,272,288,294,296,301,309,364,368,374,381,386,389,398,419,430,434,435,436,438,440,441,443],modified_tim:201,modul:[0,4,5,6,8,13,14,16,19,20,22,25,27,28,30,31,32,33,37,42,44,45,48,53,62,65,69,73,79,82,83,84,85,87,91,94,98,99,100,101,104,105,106,108,109,112,113,114,115,117,122,123,126,128,130,132,135,138,150,154,156,158,159,163,173,174,176,177,182,184,185,186,189,191,193,203,204,205,206,207,209,210,211,212,213,214,216,218,221,223,224,225,227,229,230,231,233,241,242,243,248,249,250,252,253,254,256,257,258,259,260,265,269,270,271,272,275,281,283,286,291,292,295,296,299,300,301,305,307,308,309,311,313,314,318,319,323,331,333,334,337,338,341,343,345,346,347,352,354,355,356,362,364,365,366,367,368,369,370,371,372,373,374,375,377,378,388,390,443],module_path:283,module_with_cal:377,modulepath:323,moifi:224,mold:117,mollit:29,moment:[20,31,47,64,73,80,91,99,106,107,114,122,168,281,304],mona_lisa_overdr:118,monei:[67,76,121,122,123,124,155],monetari:[84,89,203],monitor:[5,34,68,86,305,319,338,381,443],monitor_handl:[34,86,165,305],monitorhandl:[24,32,165,166,302,443],monlit:111,mono:92,monster:[31,37,41,88,94,99,114,117,121,122,123,128,182,301],monster_move_around:117,month:[84,101,151,155,212,378,383,390],monthli:101,montorhandl:34,moo:[69,72,87,99,119,144,289,377],mood:[80,120,123,124,253],moon:[92,101,105,111],moonlight:111,moonlit:111,moor:120,moral:6,more:[2,3,4,5,6,8,11,12,13,14,15,16,17,18,19,20,22,25,27,28,29,30,31,32,35,36,37,39,41,42,44,46,47,48,51,53,54,55,57,61,62,63,64,65,67,68,69,70,75,76,77,78,80,81,82,83,84,87,88,89,90,91,92,93,96,97,98,100,101,102,103,106,107,108,109,111,112,113,114,116,117,118,119,120,121,122,124,125,126,127,129,130,131,132,134,136,138,139,140,141,142,144,146,149,151,152,153,154,155,157,158,159,163,165,167,168,171,174,175,176,181,182,187,188,189,192,193,194,196,199,201,203,204,205,206,209,212,214,216,218,224,227,232,235,241,242,243,250,251,253,254,256,257,258,259,260,265,269,270,271,272,273,281,282,283,284,289,294,296,300,301,324,326,329,338,345,346,355,360,362,363,364,367,368,370,371,372,373,374,375,376,377,381,387,390,391,403,412,413,430,439,443],more_command:375,more_funcparser_cal:30,morennanoth:193,morennthird:193,moreov:[42,155],morn:[122,224,225],morph_engli:393,morpholog:393,mortal:[31,120],most:[3,5,6,9,13,14,17,18,19,20,22,25,28,31,32,33,35,37,44,45,47,48,49,50,51,53,54,58,60,62,65,67,68,69,70,72,74,75,76,77,79,80,81,82,83,84,85,88,90,92,95,96,98,99,100,101,102,105,107,108,109,110,111,112,113,116,117,118,119,120,122,123,124,126,127,129,130,135,138,139,141,145,146,149,155,157,158,159,162,168,171,175,176,179,182,190,193,198,204,209,210,223,227,242,243,250,253,256,257,258,259,260,279,281,282,288,289,292,295,296,300,301,304,308,337,342,352,362,363,364,365,374,375,381,382,390,435,443],mostli:[28,48,51,53,62,83,99,102,107,127,130,155,175,194,213,242,258,273,282,334,398],motiv:[14,15,37,84,87,89,121,325,326,332,333,334,337,342,343,354,355,443],mount:157,mountain:[69,82],mous:[51,59,374],mouth:275,movabl:218,move:[15,16,18,22,27,28,29,37,75,76,77,80,81,82,83,90,91,94,97,100,102,105,106,107,113,114,116,117,120,121,122,123,128,129,135,139,141,142,144,146,148,149,176,182,188,203,204,218,219,221,225,231,250,253,256,257,258,259,260,269,270,271,273,275,282,287,291,296,346,364,368,375,443],move_around:[114,117],move_callback:192,move_delai:192,move_hook:296,move_obj:273,move_posit:218,move_to:[37,75,106,126,138,250,296],movecommand:97,moved_obj:[219,271,273,296],moved_object:296,movement:[41,83,100,122,138,192,250,256,257,258,259,260,281,282,296,443],mover:260,mptt:90,mratio:[174,191],msdp:[65,319,338,443],msdp_list:319,msdp_report:319,msdp_send:319,msdp_unreport:319,msdp_var:338,msg:[3,8,12,13,14,18,19,22,23,27,28,29,33,34,37,39,44,51,54,62,67,68,72,75,77,79,80,82,85,86,92,93,94,95,97,98,100,101,105,106,107,108,114,115,116,117,126,127,129,130,136,138,152,165,168,169,177,179,183,187,193,196,197,198,209,218,221,226,236,247,253,264,265,272,281,282,283,284,292,296,325,326,353,368,370,372,374,375,383,390,399,400,406,443],msg_all:129,msg_all_sess:[22,177],msg_already_sit:126,msg_arriv:75,msg_channel:187,msg_char:218,msg_cinemat:223,msg_content:[19,22,30,37,42,58,75,80,91,101,130,136,138,140,296],msg_db_tag:400,msg_help:189,msg_leav:75,msg_locat:296,msg_other:203,msg_other_sit:126,msg_receiv:296,msg_room:218,msg_self:296,msg_set:365,msg_sitting_down:126,msg_standing_fail:126,msg_standing_up:126,msg_system:218,msgadmin:400,msgform:400,msglauncher2port:[314,323],msgmanag:[197,198],msgobj:196,msgportal2serv:323,msgserver2port:323,msgstatu:[314,323],msgtaginlin:400,mssp:[113,159,165,166,310,322,443],mtt:341,much:[0,1,3,5,8,13,14,15,16,28,31,33,37,42,47,48,53,54,58,64,70,75,77,79,81,82,83,84,88,90,92,94,96,98,101,102,105,107,108,109,111,114,115,116,117,119,120,123,124,126,127,128,129,137,138,140,141,142,144,146,149,155,171,176,181,190,204,212,213,242,243,253,254,260,265,270,281,354,362,365,367,368,369,376,390,408,419],muck:[99,119],mud:[6,9,16,32,33,36,40,44,47,51,58,60,62,68,69,73,74,77,78,81,82,87,88,91,95,98,107,109,113,116,120,121,124,127,129,135,139,140,145,146,147,149,153,155,156,157,159,161,162,163,171,176,179,260,268,311,327,328,329,334,337,338,341,368,378,443],mudbyt:144,mudconnector:[144,194],mudderi:144,muddev:149,mudform:373,mudinfo:[108,194],mudlab:144,mudlet:[147,329],mudmast:147,mudramm:147,mudstat:194,muhammad:389,mukluk:147,mult:[30,41,377],multi:[20,28,44,54,77,78,85,87,114,118,119,120,121,126,130,157,159,174,192,210,218,243,254,279,281,282,289,296,355,374,390,438,443],multiaccount_mod:6,multidesc:[165,166,199,443],multilin:389,multilink:[83,282],multimatch:[20,118,174,243,296,377,390],multimatch_str:[168,243,296,390],multimedia:[51,201],multipart:201,multipl:[11,15,18,19,20,22,30,31,34,37,41,44,45,47,48,50,55,60,62,68,69,77,78,79,83,88,95,100,101,111,113,114,116,120,121,127,130,144,146,155,159,168,173,175,180,181,182,187,189,191,192,193,207,209,213,214,224,226,227,233,239,243,252,254,256,257,258,259,264,271,281,282,292,294,296,300,301,309,312,316,319,323,338,346,362,363,368,374,376,387,390,399,406,443],multiplay:[18,78,87,99,119,123,124,125,144],multipleobjectsreturn:[168,169,171,196,198,203,206,212,218,219,224,226,232,240,241,242,243,249,250,251,256,257,258,259,260,262,264,265,269,270,271,273,283,284,288,295,296,300,304,307,321,347,362,365,378,382],multipli:[30,116],multisess:[61,102,374,443],multisession_mod:[12,22,44,50,88,102,122,123,130,141,147,168,179,183,205,226,296,355],multisession_modd:28,multitud:[60,82,99],multumatch:296,mundan:91,murri:390,muscular:122,muse:144,mush:[2,69,76,78,87,103,119,127,129,144,207,239,443],mushclient:[32,147,319,329],musher:144,mushman:69,music:52,musoapbox:[99,144],must:[0,5,6,8,9,11,12,13,16,20,22,27,28,30,31,32,33,34,35,36,37,39,41,42,46,47,48,49,50,51,52,53,54,58,59,62,64,65,70,73,74,75,81,83,84,85,88,90,92,94,98,100,101,104,106,108,110,113,114,115,116,117,118,121,122,124,126,129,130,134,135,141,145,147,149,150,151,152,153,155,157,158,159,163,169,174,175,177,182,187,193,196,197,198,201,203,206,207,209,212,214,218,221,240,242,243,247,253,254,256,257,258,259,260,265,268,270,271,281,282,284,286,288,289,291,296,299,300,305,309,314,319,332,334,337,354,356,357,362,363,364,367,368,369,370,371,372,373,374,375,377,378,384,385,386,387,389,390,391,393,399,406,413,421,438,439,443],must_be_default:176,mustn:83,mutabl:[371,443],mute:[17,18,168,187,196],mute_channel:187,mutelist:[18,196],mutltidesc:239,mutual:[265,363],mux2:[72,194],mux:[22,61,69,87,91,100,109,119,158,172,190,207,443],mux_color_ansi_extra_map:207,mux_color_xterm256_extra_bg:207,mux_color_xterm256_extra_fg:207,mux_color_xterm256_extra_gbg:207,mux_color_xterm256_extra_gfg:207,muxaccountcommand:[190,236],muxaccountlookcommand:179,muxcommand:[22,86,92,93,94,95,97,100,105,108,130,165,166,172,178,179,180,181,182,187,188,189,191,192,194,206,213,214,216,224,230,236,239,240,249,251,258,259,271,275,296,372,443],mvattr:[26,108,182],mxp:[32,59,147,165,166,189,310,319,322,334,337,367,374,389,390,443],mxp_pars:329,mxp_re:367,mxp_sub:367,mxp_url_r:367,mxp_url_sub:367,my_callback:356,my_datastor:67,my_func:117,my_funct:94,my_github_password:11,my_github_usernam:11,my_identsystem:36,my_object:94,my_port:62,my_portal_plugin:62,my_script:42,my_server_plugin:62,my_servic:62,my_word_fil:242,myaccount:46,myaccountnam:118,myapp:67,myarx:76,myattr:[13,168],mybool:13,mybot:187,mycar2:36,mychair:46,mychan:18,mychannel1:187,mychannel2:187,mychannel:[18,55,187],mycharact:104,mychargen:28,mycmd:[22,31,314],mycmdget:115,mycmdset:[20,22,108,115],mycommand1:20,mycommand2:20,mycommand3:20,mycommand:[20,22,31,65,95,108,115,118,193],mycommandtest:193,mycompon:51,myconf:2,mycontrib:8,mycss:51,mycssdiv:51,mycustom_protocol:62,mycustomchannelcmd:18,mycustomcli:62,mycustomview:73,mydatastor:67,mydbobj:13,mydefault:30,mydhaccount:157,mydhaccountt:157,mydhacct:157,mydict:13,myevennia:153,myevilcmdset:[20,175],myevmenu:28,myfix:11,myformclass:53,myfunc:[8,47,54,390],myfuncparser_cal:30,mygam:[0,3,5,7,8,9,11,12,13,14,15,18,19,20,25,28,32,33,37,41,42,48,49,50,51,53,62,64,67,73,76,79,81,82,83,85,86,91,92,95,97,98,99,100,101,102,104,105,106,108,112,113,114,115,116,117,119,126,127,129,130,132,134,136,137,138,141,142,146,148,149,150,151,152,154,155,157,159,162,163,204,205,207,210,224,236,239,249,250,253,276,278,339,388,390],mygamedir:85,mygamegam:104,mygrapevin:187,mygreatgam:53,mygreatpwd:149,myhandl:45,myhousetypeclass:182,myinstanc:67,myircchan:187,mykwarg:28,mylayout:51,mylink:85,mylist2:13,mylist:[6,13,364],mylog:19,mymap:83,mymenu:28,mymethod:98,mymodul:47,mymud:[7,145],mymudgam:155,mynam:[123,157],mynestedlist:371,mynod:28,mynoinputcommand:22,mynpc:130,myobj1:46,myobj2:46,myobj:[13,19,33,42,182,309],myobjectcommand:92,myothercmdset:20,myownfactori:62,myownprototyp:41,mypassw:214,mypassword:49,mypath:8,myplugin:51,mypobj:13,myproc:62,myproc_en:62,myprotfunc:41,myrecip:79,myreserv:30,myroom:[42,46,98,111,182],myros:37,myscript:[42,46,48],myself:[13,58,124,377,394],myserv:214,myservic:62,mysess:44,mysql:[2,9,88,390,443],mysqlclient:146,myst:443,mysteri:[31,36,78,154],myston:118,mystr:13,mytag:51,mytestview:53,mythic:120,mytick:309,mytickerhandl:309,mytickerpool:309,mytrait:253,mytup1:13,mytup:13,mytupl:13,myusernam:49,myvar:22,myview:73,myxyzroom:83,naccount:355,nail:209,naiv:[177,196,201,273,286,288,364],nake:22,name1:182,name2:182,name:[2,3,4,5,7,8,9,10,11,12,13,14,15,16,18,20,22,26,28,29,30,31,32,33,34,36,37,39,41,42,44,45,46,48,49,50,51,53,54,57,58,62,63,65,67,68,70,73,74,75,76,77,78,79,80,81,82,83,85,88,90,92,94,97,98,99,100,101,102,104,105,106,107,108,109,110,111,112,113,115,116,117,118,119,120,121,122,126,129,130,132,134,135,138,139,140,141,142,144,146,147,148,150,151,152,153,154,155,157,158,159,162,163,165,168,169,170,171,173,174,175,176,177,179,180,182,187,188,189,190,191,192,193,194,196,197,198,201,204,205,206,209,210,212,214,216,218,219,221,223,225,229,231,232,235,240,241,242,243,249,252,253,254,258,259,269,271,272,273,275,281,282,283,284,286,287,288,289,294,295,296,300,301,303,304,305,307,309,314,317,319,320,321,323,324,326,331,334,337,338,341,342,343,346,355,357,359,362,363,364,365,367,368,369,370,372,373,374,375,377,381,382,383,384,386,387,389,390,391,393,394,399,406,410,414,415,416,421,422,430,435,436,441,443],namecolor:254,namedtupl:229,nameerror:[3,116],namelist:236,namesak:6,namespac:[48,51,102,232,272,301,357,368,407],namn:64,napoleon:85,narg:272,narr:260,narrow:[49,83,107,115,123,126],nativ:[3,42,49,58,68,85,111,123,246,357,359,441],nattempt:28,nattribut:[28,48,129,182,301,353,362,364,370,374,443],nattributehandl:362,nattributeproperti:[13,362],natur:[13,16,18,19,46,68,87,144,169,376],natural_height:376,natural_kei:362,natural_width:376,navbar:53,navig:[7,9,28,76,81,82,83,85,141,142,260,438],naw:[29,147,165,166,310,322,443],nbsp:389,nchar:137,nclient:345,ncolumn:376,ncurs:165,ndb:[13,14,22,28,42,44,48,77,92,94,129,168,171,192,295,304,353,364,374],ndb_:[41,182,301],ndb_del:353,ndb_get:353,ndb_set:353,ndk:154,nearbi:[83,175,176,177,260],nearli:[113,126,367],neat:[75,132,430],neatli:[69,390],necess:62,necessari:[2,11,48,60,62,69,75,77,83,90,96,99,100,107,112,113,121,136,138,146,163,176,177,198,205,218,232,247,271,272,282,300,301,343,368,374,376,377,384,386,390,399,406],necessarili:[41,68,85,99,120,155,390],necessit:356,neck:[13,41,206],neck_armor:13,neck_cloth:13,necklac:[122,206],need:[0,2,3,5,6,7,8,9,10,11,12,13,14,15,16,18,19,20,22,25,27,28,30,31,32,33,34,36,37,41,42,44,46,47,48,50,51,52,53,54,57,58,60,62,63,64,65,67,68,70,73,74,76,77,78,79,80,81,82,83,84,85,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,104,105,106,107,108,109,111,112,113,114,116,117,118,120,121,122,124,126,127,129,130,131,132,134,135,136,138,139,141,142,144,145,146,148,149,150,151,152,153,154,155,156,157,158,159,162,163,168,169,171,175,177,179,182,187,188,190,193,196,201,203,204,209,210,214,218,219,221,223,224,226,230,231,232,233,240,241,242,243,253,254,256,257,258,259,260,265,269,270,271,272,273,275,281,282,283,286,292,295,296,300,301,303,314,316,319,323,331,338,343,345,353,354,355,359,362,364,365,367,368,370,374,375,376,377,378,384,385,387,390,393,399,401,406,408,435,439,443],need_gamedir:314,needl:240,needless:114,neg:[101,139,175,372,390],negat:[60,111,292,393],negoti:[203,328,330,332,341,355],negotiate_s:330,neighbor:[96,123,282],neither:[6,13,127,148,163,189,213,300,338,362,365,374,391],nenter:28,neophyt:253,nerror:64,nest:[4,13,15,22,28,30,31,168,182,243,254,291,296,301,338,371,377,443],nested_mut:13,nested_r:182,nestl:82,neswmaplink:[83,282],net:[76,99,123,144,149,153,155,169,187,194,327,328,338,341,355],netrc:11,network:[62,70,86,87,88,89,124,144,146,150,152,153,155,158,161,169,187,325,326,331,352,355,443],neu:204,neural:123,neutral:[30,58,226,377,394],never:[0,1,8,11,13,15,19,20,22,28,30,35,39,47,48,55,60,67,68,83,88,98,101,107,113,114,116,117,118,121,122,123,126,136,138,141,148,151,159,168,192,231,242,243,253,259,260,269,276,292,296,353,362,371,390],nevertheless:[0,28,67,139,179,204],new_alias:[177,294],new_arriv:271,new_attrobj:362,new_channel:[100,187],new_charact:269,new_coordin:273,new_create_dict:218,new_datastor:67,new_destin:294,new_goto:374,new_hom:294,new_kei:[45,177,294,296,303],new_loc:[182,294],new_lock:[294,303],new_menu:204,new_nam:[45,182],new_name2:182,new_obj:[33,221,223,296,301,303],new_obj_lockstr:182,new_object:[41,301],new_permiss:294,new_po:218,new_posit:218,new_progress:219,new_raw_str:174,new_room_lockstr:182,new_ros:37,new_scor:219,new_script:42,new_typeclass:[168,364],new_typeclass_path:48,new_valu:[34,362],new_word:390,newbi:[87,92],newcom:[123,135],newer:76,newindex:254,newli:[11,49,63,80,100,111,116,141,182,196,204,209,221,223,236,241,272,281,284,296,301,307,370],newlin:[22,51,189,368,376],newnam:[22,182,364],newpassword:180,newstr:51,nexist:77,nexit:[8,137],next:[0,2,3,7,11,14,15,20,22,27,28,29,30,31,33,37,39,42,49,50,51,52,53,54,55,58,60,64,65,67,75,76,77,79,80,81,82,83,85,88,90,91,92,93,94,95,96,98,100,101,103,104,106,108,109,111,112,113,114,116,117,118,119,120,121,122,123,124,126,127,129,130,138,141,142,144,146,150,151,153,154,155,156,157,158,163,204,212,218,221,239,254,256,257,258,259,260,270,282,292,314,368,374,375,378,390,438,443],next_nod:28,next_stat:[218,221],next_turn:[256,257,258,259,260],nextnod:374,nextnodenam:374,nextrpi:144,nfkc:168,ng2:376,nginx:145,nice:[8,19,31,53,55,74,75,77,81,82,83,100,101,104,114,115,121,122,148,155,157,182,203,206,243,300,443],nicer:[109,116],niceti:182,nick:[12,13,18,24,26,32,37,72,99,108,144,168,169,182,187,188,196,243,295,296,326,362,363,413,443],nick_typ:36,nickhandl:[13,36,362],nicklist:[169,187,326],nicknam:[11,26,36,37,72,188,243,295,296,326,362,363],nickreplac:362,nickshandl:413,nicktemplateinvalid:362,nicktyp:[243,296],nifti:[115,145],night:[30,100,121,122,140,151,224,443],nine:63,nineti:391,nit:101,nline:383,nmisslyckad:64,nnode:282,no_act:374,no_channel:[20,22,175,374],no_db:[300,301],no_default:[48,168,364],no_exit:[20,22,129,175,265,268,374],no_gmcp:338,no_log:176,no_match:204,no_mccp:327,no_more_weapons_msg:270,no_msdp:338,no_mssp:328,no_mxp:329,no_naw:330,no_obj:[20,175,265,268,374],no_of_subscrib:400,no_prefix:[168,196],no_superuser_bypass:[168,196,292,296,364],no_tel:33,noansi:193,nobj:137,nocaptcha:141,nocaptcha_recaptcha:141,nocolor:[104,319,334,337,342,343],nod:122,nodaemon:7,node1:[28,374],node2:[28,374],node3:[28,374],node:[14,41,106,217,225,254,268,276,279,281,282,283,284,298,312,374,443],node_abort:28,node_apply_diff:298,node_attack:28,node_background:28,node_betrayal_background:28,node_border_char:[217,374],node_create_room:217,node_destin:298,node_examine_ent:298,node_exit:28,node_formatt:[28,217,225,374],node_four:28,node_game_index_field:312,node_game_index_start:312,node_hom:298,node_index:[276,279,282,298,374],node_join_room:217,node_kei:298,node_loc:298,node_login:28,node_mssp_start:312,node_mylist:28,node_on:28,node_opt:217,node_or_link:[280,282],node_parse_input:28,node_password:28,node_prototype_desc:298,node_prototype_kei:298,node_prototype_sav:298,node_prototype_spawn:298,node_quit:217,node_readus:28,node_select:28,node_set_desc:217,node_set_nam:28,node_start:312,node_test:28,node_usernam:28,node_validate_prototyp:298,node_view_and_apply_set:312,node_view_sheet:28,node_violent_background:28,node_with_other_nam:374,nodebox:393,nodefunc:374,nodekei:374,nodenam:[28,374],nodetext:[28,217,225,298,374],nodetext_formatt:[28,217,225,298,374],noecho:[116,192],noerror:296,nofound_str:[168,243,296,390],nogoahead:336,nohom:370,nois:[91,126],noisi:[155,311,316,324,334,337,345,359],noloc:182,nomarkup:[32,104],nomatch:[77,191,204,372,390],nomatch_exit:77,nomatch_single_exit:77,nomigr:8,nomin:436,non:[11,15,16,18,19,20,22,27,29,30,31,32,39,41,42,44,48,51,53,60,67,68,74,77,81,83,85,87,88,89,90,94,97,100,101,105,109,111,114,115,118,121,123,126,139,150,163,168,169,170,171,173,175,182,187,192,194,196,198,210,213,221,232,241,249,251,253,254,270,275,284,286,287,291,295,296,299,300,301,304,305,307,309,314,323,337,338,352,353,355,362,364,367,370,371,372,374,375,376,377,387,390,413,416,443],nonc:342,nondatabas:[353,364],none:[3,5,12,13,14,15,16,18,20,22,27,28,30,32,33,34,36,42,44,46,49,54,58,60,62,65,67,68,75,77,81,82,83,88,92,95,96,97,98,100,101,102,104,106,107,108,110,111,114,115,118,126,129,130,136,138,168,169,170,173,174,175,176,177,179,182,183,184,185,186,187,188,189,190,193,196,197,198,201,202,203,204,205,206,209,211,213,216,217,218,219,221,223,224,225,226,229,231,232,235,240,241,242,243,249,251,253,254,256,257,258,259,260,264,265,268,269,270,271,272,273,275,276,279,280,281,282,283,284,286,287,289,291,292,294,295,296,298,300,301,303,305,306,308,309,311,312,314,316,318,320,323,324,325,326,333,334,342,343,345,353,354,355,357,358,359,362,363,364,365,367,368,369,370,371,372,373,374,375,376,377,378,381,383,385,386,387,390,391,394,395,398,399,400,402,403,404,406,408,410,414,416,422,425,430,435,438,441],nonpc:130,nonsens:242,noon:[33,64,109,127],nop:[337,443],nopkeepal:[147,337],nor:[3,7,13,14,20,64,69,83,94,114,123,129,139,148,213,214,272,296,300,338,362,365],norecapcha:141,norecaptcha_secret_kei:141,norecaptcha_site_kei:141,norecaptchafield:141,normal:[4,5,6,8,9,12,13,14,15,16,18,19,20,22,28,30,31,32,33,35,36,39,41,44,46,48,50,51,53,54,57,60,63,64,65,67,68,70,73,74,76,78,80,81,82,83,85,87,88,91,92,94,95,97,98,99,100,101,102,104,105,106,108,109,111,114,115,116,117,120,122,129,130,132,138,139,142,146,153,154,155,157,159,163,168,169,171,173,174,175,176,177,179,182,189,192,193,196,201,202,203,209,212,213,218,253,256,257,258,259,260,265,269,272,273,281,282,284,286,295,296,298,301,309,314,323,326,327,328,330,332,346,353,355,361,362,363,364,367,368,371,374,375,381,387,389,390,396,413],normal_turn_end:129,normalize_nam:296,normalize_usernam:168,north:[37,59,75,77,80,81,82,83,97,109,126,138,182,204,250,275,281,282,283,346],north_south:82,northeast:[83,109,182,273,282],northern:[77,82],northwest:[83,182,281,282,283],nose:362,not_don:359,not_error:314,not_found:[13,182],notabl:[5,6,11,18,54,62,76,149,177,182,193,203,318,364,367,371,390],notat:[4,53,182,367,390],notdatabas:48,note:[0,3,5,7,9,10,11,12,13,14,18,19,26,30,32,33,37,39,41,42,44,45,47,48,51,53,55,57,58,59,60,64,65,67,68,70,73,75,76,79,81,83,88,90,91,92,94,99,100,101,102,106,108,109,111,114,115,116,117,118,119,120,121,123,126,127,129,130,134,135,138,139,141,142,146,147,149,154,155,157,158,161,163,165,168,169,174,175,176,177,179,182,183,184,187,188,189,190,192,193,194,196,197,201,203,205,206,207,209,210,212,213,214,218,223,224,226,231,232,235,239,240,241,242,243,249,250,253,254,256,257,258,259,260,265,271,272,273,275,281,282,283,284,286,291,292,294,295,296,300,301,303,309,311,314,319,323,324,326,327,331,332,333,334,337,338,339,341,342,345,347,348,353,355,359,360,362,363,364,365,367,368,369,370,371,372,373,374,375,376,377,378,381,383,385,386,387,390,398,399,411,413,416,419,438,443],notebook:443,notepad:[119,149],noteworthi:85,notfound:390,notgm:100,noth:[3,8,13,15,19,22,30,37,47,54,65,69,75,77,82,83,94,98,99,101,106,108,109,114,116,118,123,126,129,168,182,191,254,256,259,260,269,273,282,296,307,326,362,364,374],nother:137,notic:[2,3,11,14,22,54,55,75,77,80,83,84,89,94,96,101,102,107,109,113,114,123,126,135,138,139,146,204,262,327,437],notif:[11,51,90,154,236],notifi:[118,156,161,187,209,256,257,258,259,260,271,300],notificationsconfig:90,notimplementederror:337,notion:[47,79,101,128,129,253],noun:[58,242,243],noun_postfix:242,noun_prefix:242,noun_transl:242,nov:64,now:[0,2,6,7,8,9,11,12,13,15,18,19,20,22,28,30,33,35,37,38,41,42,44,47,48,49,51,52,53,54,55,58,60,67,69,73,74,75,76,77,79,80,81,82,83,87,88,91,92,93,94,96,98,99,100,101,102,104,105,106,107,108,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,126,127,130,131,132,134,135,136,138,139,141,142,144,146,149,150,151,152,153,154,155,156,157,158,162,163,176,187,189,203,211,212,225,232,253,254,265,273,277,292,296,326,334,355,386,388,390,442],nowher:[82,116,123,282],noxterm256:337,npc:[13,22,28,39,76,80,82,88,121,127,203,251,291,443],npcname:136,npcshop:106,nprot:137,nr_start:306,nroom:[77,137],nroom_desc:8,nrow:376,nsmaplink:[83,281,282],nsonewaymaplink:[83,282],ntf:149,nthe:265,nuanc:60,nudg:[143,265,359],nuisanc:158,nulla:29,num:[30,33,81,243,296],num_lines_to_append:383,num_object:111,num_objects__gt:111,num_tag:111,num_total_account:170,number:[0,2,5,6,8,11,13,14,19,20,22,27,28,30,35,36,42,44,45,46,47,48,49,53,54,55,73,74,75,81,82,83,85,88,91,99,100,101,104,106,108,111,114,115,116,117,118,120,123,126,127,129,130,137,142,146,151,152,155,156,157,159,165,168,169,170,174,175,176,180,182,187,188,189,197,198,201,206,209,212,213,218,225,227,229,231,232,235,241,242,243,254,256,257,258,259,260,275,279,281,282,284,294,296,300,301,306,312,314,319,325,326,328,332,345,346,355,357,359,362,363,365,367,368,370,372,374,375,376,377,378,381,383,387,390,393,400,415,416,430,443],number_of_dummi:314,number_tweet_output:137,numberfilt:410,numbertweetoutput:137,numer:[6,121,127,227,252,253,281,367,443],numpi:347,oak:210,oakbarkrecip:210,oakwood:210,obelisk:[120,270],obfusc:[78,242,243],obfuscate_languag:[242,243],obfuscate_whisp:[242,243],obj1:[6,13,30,39,41,118,182,209,216,240,260],obj1_search:216,obj2:[6,8,13,30,39,41,118,182,209,216,240,260,368],obj2_search:216,obj3:[13,118,182,209],obj4:[13,118],obj5:13,obj:[3,8,12,13,19,20,22,30,33,34,36,37,41,42,46,47,48,54,58,67,77,92,98,100,105,107,108,110,111,115,118,126,135,138,168,175,176,177,180,182,188,190,192,193,197,198,202,204,206,209,216,218,221,224,225,226,229,231,232,235,236,240,243,253,254,256,257,258,259,260,264,265,270,271,273,291,292,295,296,301,303,304,305,306,343,345,346,353,362,363,364,365,368,370,371,375,377,385,386,387,390,398,399,400,403,404,406,411,413,443],obj_desc:259,obj_detail:271,obj_kei:259,obj_nam:77,obj_prototyp:301,obj_to_chang:48,obj_typeclass:259,objattr:[270,291],objclass:[381,390],object1:22,object2:[22,203,296],object:[0,2,3,4,5,8,12,14,15,16,18,20,22,23,24,26,27,28,29,30,31,32,34,35,36,39,41,45,47,48,49,51,52,54,55,57,62,65,67,68,69,72,73,74,75,76,77,78,79,80,81,83,85,86,87,91,94,95,96,97,98,99,100,101,102,103,104,106,107,108,112,113,119,120,122,127,129,130,135,136,137,140,141,142,144,146,158,159,163,165,166,167,168,169,170,171,173,174,175,176,177,179,180,181,182,183,184,187,188,189,190,192,193,194,196,197,198,199,201,203,204,205,206,209,210,214,215,216,217,219,221,223,224,225,226,229,230,231,232,233,235,236,240,241,243,246,247,248,249,250,251,252,253,254,256,257,258,259,260,262,264,265,267,268,269,271,272,273,275,279,281,282,283,284,286,287,288,291,292,298,299,300,301,302,303,304,305,306,307,308,309,312,314,316,318,319,320,321,323,324,327,328,329,330,331,332,333,334,336,338,341,343,345,346,352,353,354,355,357,358,359,362,363,364,365,367,368,369,370,371,372,373,374,375,376,377,381,382,384,385,386,387,388,389,390,391,394,396,397,398,399,400,402,404,406,410,411,413,415,416,421,422,424,429,430,431,433,434,435,436,438,439,440,443],object_confirm_delet:441,object_detail:[436,441],object_from_modul:390,object_id:[142,403],object_or_list_of_object:58,object_paramet:201,object_pronoun:394,object_search:[142,294],object_subscription_set:295,object_tot:[170,294,303,363],object_typeclass:[388,431],objectadmin:[50,403],objectattributeinlin:403,objectcr:430,objectcreateform:[398,403],objectcreateview:[436,441],objectdb:[13,46,48,50,86,137,141,165,295,296,301,361,362,370,375,387,398,399,403,406,410,415],objectdb_db_attribut:403,objectdb_db_tag:[399,403,406],objectdb_set:[171,362,365],objectdbfilterset:[410,416],objectdbmanag:[294,295],objectdbseri:[413,416],objectdbviewset:[415,416],objectdeleteview:[436,441],objectdetailview:[435,436,441],objectdoesnotexist:[171,198,288,295,304,321,362,365,382],objecteditform:403,objectform:430,objectlistseri:[413,416],objectmanag:[284,294,296,363],objectnam:100,objectpuppetinlin:398,objects_objectdb:67,objectsessionhandl:[12,296],objecttaginlin:403,objectupd:430,objectupdateview:[436,441],objid:33,objlist:[30,41,377],objlocattr:[270,291],objmanip:182,objmanipcommand:182,objnam:[19,48,182],objparam:301,objs2:46,objsparam:301,objtag:291,objtyp:197,obnoxi:316,obs:364,obscur:[105,153,242,243],observ:[14,15,58,68,104,109,182,188,200,224,243,262,271,338,368,390],obtain:[5,22,75,96,107,149,155,157,204,270,443],obviou:[9,18,75,83,138,158,227,441],obvious:[15,44,69,75,81,87,90,138,365],occaecat:29,occas:9,occasion:[118,155],occat:116,occation:[123,376],occur:[3,22,42,51,54,76,92,99,191,241,258,272,292,296,308,346,374,383],occurr:[80,107,130,367],ocean:[120,155],oct:[116,117],octet:201,odd:[77,81,121,139,158,281],odor:100,off:[2,13,15,18,20,22,27,28,31,32,33,42,45,47,53,60,62,63,67,68,69,73,75,79,81,83,87,88,94,104,109,110,116,118,119,121,124,126,128,130,139,146,147,155,157,158,163,168,177,187,192,193,194,196,206,210,225,243,265,269,271,284,292,296,319,327,334,337,353,364,367,368,370,372,374,375,376,383,391,442,443],off_bal:94,offend:55,offer:[0,7,8,9,11,15,20,22,27,28,32,36,37,39,41,42,47,51,60,62,65,67,69,72,77,78,82,83,84,87,88,90,93,96,97,98,99,101,107,108,112,113,114,116,121,122,127,129,130,140,153,155,168,175,176,181,182,189,192,201,203,204,218,224,242,271,298,305,355,374],offernam:203,offici:[8,11,50,85,153,157,158,383,443],officia:29,offlin:[16,18,41,76,144,155,181,187,368],offscreen:76,offset:[49,243,372,383],often:[0,3,5,6,9,11,12,13,16,18,20,22,24,28,30,39,44,46,47,53,54,60,61,62,64,67,68,77,80,81,83,85,88,93,99,101,103,107,113,114,116,117,118,119,123,126,129,155,158,159,169,175,180,182,190,192,196,204,254,256,257,258,259,260,292,295,304,306,314,319,333,353,362,364,368,370,376,377,383,390,413,436],ohloh:84,okai:[3,9,28,81,82,83,100,123,126,130,154,235,282],olc:[26,112,182,298,301,443],olcmenu:298,old:[5,7,9,19,20,27,28,31,33,44,48,58,60,68,75,76,82,85,87,91,92,96,98,100,104,106,120,123,130,139,149,151,155,168,175,176,179,182,203,223,243,292,296,301,323,363,364,367,370],old_default_set:8,old_kei:[45,296],old_nam:45,old_obj:218,old_po:218,older:[12,44,53,76,88,144,147,149,182],oldnam:364,oliv:60,omit:[41,107,157],on_:204,on_bad_request:316,on_ent:[77,204],on_leav:[77,204],on_nomatch:[77,204],onam:294,onbeforeunload:51,onbuild:157,onc:[3,5,6,9,11,12,13,14,18,22,28,31,33,35,37,42,44,48,51,53,54,56,60,62,64,65,69,75,76,77,80,81,83,84,85,87,88,91,92,96,99,100,101,106,109,111,112,113,114,115,116,117,121,123,124,126,129,138,139,141,144,146,149,151,153,155,157,162,168,169,174,177,182,187,190,193,196,203,204,216,218,219,225,226,232,236,240,242,249,253,254,256,257,258,259,260,262,265,269,270,271,272,273,277,282,296,300,304,307,319,324,337,341,352,362,367,374,375,383,388,390,443],onclos:[62,325,342],onconnectionclos:51,ond:365,one:[0,2,3,4,5,6,7,8,9,11,12,13,14,15,16,18,19,20,22,25,27,28,29,30,31,32,33,35,36,37,39,40,41,42,44,46,47,48,50,51,53,54,55,56,57,58,60,64,65,67,68,69,70,73,74,75,76,77,78,79,80,81,82,83,84,87,88,89,90,91,92,93,94,97,98,99,100,101,102,104,105,106,107,108,109,110,111,113,114,115,116,117,118,119,120,121,122,124,126,127,129,130,132,134,136,138,139,140,141,142,144,146,148,149,150,151,153,155,156,157,158,159,161,167,168,171,174,175,176,177,179,180,182,187,188,191,192,193,196,197,198,201,203,204,206,209,210,211,213,218,219,221,223,224,226,232,235,236,241,242,243,251,253,254,256,257,258,259,260,265,268,270,271,272,273,279,281,282,283,284,286,287,288,291,292,294,295,296,298,299,300,301,304,309,314,316,318,319,324,325,326,334,337,338,346,353,354,355,359,361,362,363,364,365,367,368,370,371,373,374,375,376,377,378,381,382,383,385,386,387,388,390,391,394,403,416,430,431,436,443],one_consume_onli:218,ones:[8,15,18,19,20,22,26,30,31,32,33,35,41,60,65,73,76,77,90,99,100,104,108,109,115,124,129,139,150,153,155,157,158,175,176,177,198,204,232,256,257,258,259,260,286,300,301,318,323,355,367,376,384],onewai:182,ongo:[42,93,107,123,129,203,250],ongotopt:51,onkeydown:51,onli:[0,3,5,7,8,11,12,13,14,15,16,18,19,20,22,27,28,29,30,31,32,33,35,36,37,39,41,42,44,45,46,48,49,50,51,52,53,54,55,57,58,59,60,62,65,67,68,73,74,75,76,77,78,79,80,81,82,83,84,86,87,88,90,91,92,93,94,96,97,98,99,100,101,102,104,105,106,107,108,109,110,113,114,115,116,117,118,119,120,121,122,124,126,127,129,130,134,135,136,138,139,140,141,142,144,146,147,148,149,150,151,152,153,155,157,158,159,165,168,169,170,173,174,175,176,177,179,180,181,182,187,188,189,190,191,192,193,194,196,197,198,201,203,204,205,206,209,210,211,213,216,218,219,223,224,225,227,232,236,242,243,251,253,254,256,257,258,259,260,262,270,271,272,273,275,276,281,282,283,288,291,292,294,296,300,301,303,304,307,308,309,314,318,319,326,329,331,332,334,337,346,352,353,355,357,358,359,362,363,364,365,367,368,369,370,372,374,375,376,377,381,383,385,386,387,388,390,393,398,399,406,430,435,436,438,439,441,442,443],onlin:[9,16,18,37,53,55,69,72,84,87,88,89,91,99,100,102,103,113,117,119,121,123,124,125,127,128,129,130,131,133,144,146,150,152,156,159,161,162,165,179,187,196,198,204,216,225,328,368,443],onloggedin:51,onlook:[58,296],only_:253,only_nod:281,only_tim:[303,387],only_valid:301,onmessag:[62,325,342],onopen:[62,325,342],onoptionsui:51,onprompt:51,onsend:51,onset:13,ontext:51,onto:[18,20,22,51,83,87,92,97,115,121,138,153,155,176,187,210,271,295,326,371,374],onunknowncmd:51,onward:45,oob:[22,38,51,65,95,147,159,168,169,189,226,264,296,319,337,338,342,343,355,374,443],oobfunc:159,oobhandl:381,oobobject:42,ooc:[12,18,26,44,78,86,100,108,110,114,130,168,171,179,182,183,190,198,205,236,296],ooccmdsetchargen:205,ooclook:[44,205],oop:115,opaqu:[16,158],open:[0,3,7,10,11,20,26,27,31,33,39,44,52,53,59,75,76,77,78,80,82,83,84,85,87,88,89,90,99,100,102,108,109,112,114,115,116,117,123,126,127,129,130,132,141,142,144,146,149,150,151,152,153,154,155,158,161,182,189,192,201,202,203,204,216,218,223,225,249,250,260,265,270,275,281,357,362,370,383,390,442,443],open_chest:39,open_flag:218,open_parent_menu:204,open_submenu:[77,204],open_wal:270,openadventur:123,openhatch:144,opensourc:367,oper:[3,6,11,13,15,18,19,22,28,30,32,37,39,42,46,47,49,51,52,55,64,68,76,77,78,80,83,88,99,105,110,111,114,116,122,139,149,151,153,155,162,163,168,173,175,177,179,182,187,192,193,196,201,204,209,213,216,221,243,252,270,282,292,296,301,309,311,314,323,324,328,330,334,336,337,343,345,346,353,354,362,363,364,367,370,374,375,376,377,381,390,415,416,443],opic:193,opinion:[79,122],opnli:362,oppon:[127,257,259,269],opportun:[75,77,90,107,141,260],oppos:[19,37,60,158,163,353,365],opposit:[82,83,100,108,138,182,265,282],opt:[51,100,272],optim:[5,13,18,19,22,35,42,47,67,83,88,96,98,126,146,177,196,300,301,349,352,362],option100:28,option10:28,option11:28,option12:28,option13:28,option14:28,option1:28,option2:28,option3:28,option4:28,option5:28,option6:28,option7:28,option8:28,option9:28,option:[2,3,5,7,8,12,13,17,18,19,20,22,26,27,30,31,32,33,35,41,42,46,51,53,54,58,60,65,67,69,70,72,73,78,79,82,85,87,88,90,92,94,99,101,104,106,108,109,112,113,115,119,122,126,129,130,135,141,142,144,145,146,147,148,149,151,157,159,162,165,168,169,170,173,174,175,176,177,179,180,182,187,189,190,193,194,196,197,198,203,204,205,206,209,212,213,216,217,218,219,221,223,224,225,226,227,229,231,232,236,240,241,242,243,251,252,253,254,258,260,264,265,268,271,272,273,275,277,279,281,282,283,284,286,287,289,291,292,294,295,296,298,300,301,303,304,305,306,307,308,309,311,312,314,316,319,320,323,324,326,327,328,329,330,331,332,333,334,336,337,338,341,342,343,345,346,353,355,357,362,363,364,365,367,368,369,370,372,373,374,375,376,377,378,381,383,384,385,386,387,389,390,391,393,394,395,398,399,400,402,403,404,405,406,408,410,422,423,443],option_class:[165,369],option_dict:374,option_gener:374,option_kei:391,option_str:272,option_typ:385,option_valu:385,optiona:[168,311,364],optionclass:[165,166,366,369,443],optioncontain:369,optionhandl:[165,166,366,384,443],optionlist:[28,217,268,298,374],options2:51,options_dict:385,options_formatt:[28,217,225,268,298,374],optionsl:300,optionslist:268,optionsmenu:217,optionstext:[28,217,225,374],optlist:254,optlist_to_menuopt:254,optuon:242,oracl:[146,390],orang:[60,116,240,272,367],orc:[41,99,135],orc_shaman:41,orchestr:157,order:[0,2,5,8,9,10,11,12,13,14,15,19,20,22,27,28,30,31,33,34,36,37,39,41,42,49,50,51,54,59,64,70,75,76,77,79,81,82,83,84,88,89,96,97,100,101,102,111,113,114,115,116,120,122,123,124,129,130,134,138,139,141,142,146,149,152,159,162,168,173,176,177,183,188,189,192,193,201,203,204,205,206,207,209,210,211,213,218,225,240,241,243,253,256,257,258,259,260,269,270,271,272,281,282,284,291,292,294,296,301,325,337,342,346,353,362,364,367,368,374,375,376,383,387,390,398,400,402,403,404,405,441],order_bi:111,order_clothes_list:206,ordered_clothes_list:206,ordered_permutation_regex:243,ordereddict:[13,390],ordin:367,ore:[123,209,210],org:[64,69,85,88,129,155,241,272,330,336,342,367,390,430],organ:[11,13,18,31,37,39,42,46,50,69,72,76,77,82,83,85,102,111,117,126,127,140,177,189,193,283,393],organiz:126,orient:[87,88,99,117],oriented_program:88,origin:[7,11,28,37,44,49,50,53,64,75,76,78,81,87,90,91,92,94,99,104,107,111,114,115,124,134,144,151,154,158,168,169,175,182,204,236,242,243,272,282,294,296,300,301,303,323,357,364,367,374,386,389,390,393,394,442],original_object:294,original_script:303,origo:[83,281],orm:30,ormal:367,orthogon:83,oscar:[177,196,286,288,364],osnam:390,oss:7,ostr:[168,170,197,287,294,303,387],osx:[11,149],other:[2,6,8,9,11,12,13,14,15,16,17,18,19,20,23,27,28,30,31,32,33,35,36,37,41,44,45,46,47,48,49,51,52,54,55,56,57,59,60,62,64,65,67,68,69,70,73,74,75,76,77,78,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,96,97,99,100,101,102,104,105,106,107,108,109,110,111,113,114,115,117,119,121,122,124,126,127,129,130,134,135,136,137,138,139,141,142,145,149,150,151,152,157,158,161,162,163,168,173,174,175,176,177,182,187,188,189,190,193,194,196,197,201,203,206,209,212,214,216,217,218,223,225,231,236,242,243,247,249,253,254,256,257,258,259,260,265,271,272,273,281,282,284,286,288,292,295,296,300,301,305,307,309,312,314,319,323,325,326,332,334,337,346,353,354,356,362,364,366,367,368,370,372,373,374,375,376,377,384,385,387,390,391,394,406,435,436,438,443],other_modul:112,other_obj:218,othercondit:108,othermodul:53,otherroom:249,others_act:218,otherwis:[3,5,6,11,16,19,20,22,28,30,37,41,42,44,60,64,65,67,73,75,83,84,90,92,94,96,101,102,107,111,116,118,121,130,138,143,146,155,157,158,165,170,174,175,179,182,187,196,201,203,207,209,218,221,223,224,225,229,232,243,253,256,257,258,259,260,264,273,275,286,292,296,299,300,301,308,314,325,326,334,353,357,358,367,374,375,377,383,387,388,390,399,434,435,436,438,440],otypeclass_path:294,ought:393,our:[0,2,3,8,9,11,12,13,15,20,22,26,33,39,47,51,56,58,62,64,65,68,72,73,74,76,79,80,81,82,84,85,87,88,89,90,91,92,95,96,97,99,100,101,103,104,105,106,107,109,111,113,115,117,118,119,122,124,125,126,127,128,129,130,131,132,133,134,135,140,142,143,144,145,146,149,151,153,154,155,156,157,158,162,171,176,190,198,210,224,254,269,270,273,292,305,359,377,383,394,395,399,406,413,443],ourself:[115,130],ourselv:[33,36,50,58,75,100,108,109,111,115,121,123,126,136,140,168,205,327,328,330,341,377,394,443],out:[0,3,5,6,8,11,14,15,16,17,18,22,24,28,30,31,35,37,39,41,42,44,49,51,52,53,54,55,56,57,58,63,67,68,69,72,73,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,91,92,93,94,96,97,98,99,101,102,107,109,110,111,112,113,114,115,116,117,118,119,120,121,122,124,125,126,128,129,130,131,132,133,135,138,139,141,144,145,146,148,149,151,152,155,157,159,162,167,168,174,175,179,181,182,187,203,205,209,210,212,214,216,218,225,236,242,243,246,247,249,250,253,256,257,258,259,260,268,270,275,281,282,283,284,300,301,307,314,316,338,342,343,345,354,355,362,371,373,374,376,377,389,390,393,398,406,430,442,443],outcom:[67,85,127,175,209,213,292,296,300],outdat:[145,151],outdata:[62,355],outdoor:[46,83,120,123,140,271],outer:[111,112,376],outermost:[13,30,32,94,112,116,126],outerwear:206,outfunc_nam:62,outgo:[30,44,68,71,83,151,155,169,282,296,326,338,354,377,390,394,443],outgoing_port:155,outlet:155,outlin:[2,26,82,83,141,325],outlist:281,outmessag:296,output:[0,5,7,9,15,19,28,29,30,31,32,44,49,51,60,62,64,68,69,70,72,73,77,78,82,83,90,100,107,108,109,113,114,116,118,119,123,129,130,137,138,139,144,146,157,163,165,166,177,182,187,189,192,193,194,199,204,209,210,212,226,244,245,247,256,257,258,259,260,281,282,296,314,319,334,338,346,353,367,374,375,377,383,386,390,443],output_nam:209,output_prototyp:[79,209,210],outputcmd:338,outputcommand:[32,65,443],outputfunc:[24,62,65,68,296,319,325,443],outputfunc_nam:[62,319],outputfunct:65,outrank:363,outright:[55,155],outro:[120,271],outroroom:271,outsid:[14,16,30,31,41,46,49,52,53,64,68,69,75,78,83,85,88,91,96,99,109,113,116,117,118,122,123,127,138,142,151,157,159,163,189,201,241,259,269,276,281,282,286,291,338,353,354,362,365,376,421,443],outtempl:362,outtxt:19,outward:[81,155],oven:79,over:[2,4,5,6,8,9,13,14,15,16,17,18,19,20,22,28,42,44,46,47,48,49,51,53,56,60,61,62,65,68,69,70,72,78,81,82,83,84,85,93,96,99,100,104,106,108,111,114,115,116,117,121,123,126,127,129,134,136,139,141,145,148,155,157,158,168,176,197,210,225,249,254,256,257,258,259,260,271,282,296,309,318,332,334,337,339,343,345,347,360,364,368,381,386,439],overal:[49,54,67,98,99,152,155,175,190,257,443],overcom:82,overdo:114,overhead:[19,42,70,140,146,243,273,362],overhear:242,overlap:[20,101,242,367,376],overload:[6,20,22,28,32,37,47,62,77,95,97,99,115,130,134,135,159,168,175,177,191,196,204,205,209,216,224,226,240,243,249,250,256,257,258,259,260,268,269,270,271,272,275,296,301,309,318,337,345,354,372,374,375,376,384,443],overpow:123,overrid:[2,5,13,18,20,28,30,31,33,41,42,44,45,49,50,51,53,65,73,76,77,79,83,86,90,91,92,102,107,108,109,113,115,117,132,135,136,138,148,168,177,182,187,189,193,196,197,201,204,209,221,224,232,242,258,260,264,271,272,275,282,283,284,286,292,296,300,301,307,337,355,359,362,367,374,375,377,381,383,384,387,398,399,400,404,406,416,435,436,438,441,443],overridden:[35,53,62,83,90,134,168,182,204,252,272,282,300,364,375,377,398,441],override_set:45,overriden:[168,189,243],overrod:56,overrul:[12,39,168,176,243,296,376],overseen:127,overshadow:121,overshoot:390,oversight:99,overview:[0,1,5,16,50,56,78,80,99,103,119,122,125,128,130,146,158,443],overwhelm:[80,111,121],overwrit:[64,115,134,182,189,201,332,363,439],overwritten:[22,30,142,201,271,365],owasp:430,owen:209,own:[0,4,5,8,9,11,13,14,17,18,19,20,26,28,30,31,33,36,41,42,44,45,46,48,49,52,53,54,57,58,65,67,68,69,72,73,76,77,78,79,82,83,84,85,87,88,90,91,92,94,95,99,101,103,104,106,107,109,112,113,114,115,117,119,120,121,122,124,125,128,130,131,132,133,134,138,140,141,142,143,145,149,151,152,153,154,156,158,159,165,166,171,173,174,175,176,182,187,190,199,206,212,217,218,224,225,236,242,243,247,256,257,258,259,260,270,272,273,281,282,291,292,296,301,319,346,354,364,367,368,369,375,376,381,383,384,388,390,416,436,443],owner:[33,39,57,90,106,123,146,168,292,384],owner_object:33,ownership:[155,157,201],p_id:141,p_str:92,pace:[123,269],pack:[52,65,323],packag:[4,5,6,8,9,31,50,68,69,73,76,83,85,88,112,113,143,145,146,149,153,154,155,157,162,165,167,172,178,195,199,221,267,285,290,293,302,310,314,323,338,342,361,366,396,410],package_nam:88,packagenam:88,packed_data:323,packeddict:[6,364],packedlist:[6,364],packet:[65,334],pad:[17,30,367,376,377,390],pad_bottom:376,pad_char:376,pad_left:376,pad_right:376,pad_top:376,pad_width:376,page1:218,page2:218,page:[0,2,7,8,10,11,14,15,17,20,22,23,26,28,29,30,31,35,37,48,49,50,51,52,55,56,58,62,64,68,69,72,76,84,85,87,88,89,91,92,93,99,100,103,104,108,109,112,121,122,124,127,139,141,142,144,145,146,151,153,154,155,157,158,159,161,163,164,177,187,188,196,218,286,288,300,343,364,374,375,390,396,401,403,404,406,419,428,432,438,439,441,442,443],page_back:375,page_ban:[55,187],page_end:375,page_formatt:[300,375],page_next:375,page_quit:375,page_titl:[435,436,438,440],page_top:375,pageno:[300,375],pager:[29,31,375],pages:[28,374],pagin:[31,49,86,300,375],paginag:375,paginate_bi:[435,436,438],paginated_db_queri:300,paginator_django:375,paginator_index:375,paginator_slic:375,pai:[98,106,123,155,158,270],paid:[124,155],pain:155,painstakingli:14,pair:[20,51,65,83,129,168,175,206,282,291,296,355,430,441],pal:36,palac:83,palett:139,pallet:82,palm:225,pane:[68,194,214,268,284],panel:[7,151],panic:[41,108],pant:121,pantheon:[31,286],paper:[103,129,144],paperback:127,paperwork:83,par:146,paradigm:[76,121,136,257],paragraph:[15,19,31,239,368,376,390],parallel:[99,101,102,119,363],paralyz:258,param:[151,182,296,309,316,326,359,389,410,411,413],paramat:[168,177,296,353],paramet:[2,3,7,8,20,49,75,77,80,81,96,101,107,111,118,123,147,157,165,168,169,170,173,174,175,176,177,182,187,189,193,196,197,198,201,203,204,206,209,212,213,216,217,218,219,221,223,224,225,226,227,229,230,231,232,235,236,241,242,243,246,247,249,253,254,256,257,258,259,260,264,265,268,271,272,273,281,282,283,284,286,287,288,289,292,294,295,296,298,300,301,303,305,306,307,308,309,311,312,313,314,316,318,319,320,321,323,324,325,326,327,328,329,330,331,332,333,334,336,337,338,339,341,342,343,345,351,352,353,354,355,357,358,359,362,363,364,365,367,368,369,370,371,372,373,374,375,376,377,378,381,383,384,385,387,388,389,390,391,393,394,398,400,403,404,408,411,422,438],paramount:8,paramt:391,paremt:301,parent1:41,parent2:41,parent:[12,19,20,22,26,37,41,42,48,62,74,77,79,83,85,88,92,97,104,108,110,114,115,117,130,136,138,171,179,182,190,192,204,209,211,216,218,243,252,253,254,272,282,295,296,300,301,304,362,363,364,372,382,383,390,408,410,416,439,443],parent_categori:254,parent_kei:[77,204],parent_model:[398,399,400,402,403,404,406],parenthes:[50,116],parenthesi:[116,117],paretn:408,pari:[144,155],pariatur:29,paricular:22,park:204,parlanc:[53,132],parri:[129,210,270],parrot:136,pars:[6,16,20,22,27,28,30,58,60,62,65,68,69,72,83,85,86,103,104,114,119,126,130,132,142,149,159,172,173,174,177,182,188,189,190,192,193,203,204,209,210,213,214,216,218,223,224,236,243,246,247,248,254,265,270,271,272,275,281,282,283,289,292,296,299,300,301,319,326,329,338,342,343,345,355,362,367,368,372,373,374,377,389,390,443],parse_ansi:367,parse_ansi_to_irc:326,parse_entry_for_subcategori:289,parse_fil:368,parse_for_perspect:223,parse_for_th:223,parse_html:389,parse_input:374,parse_irc_to_ansi:326,parse_languag:243,parse_menu_templ:374,parse_nick_templ:362,parse_opt:254,parse_sdescs_and_recog:243,parse_to_ani:[30,377],parseabl:[300,377],parsed_str:[30,326],parsedfunc:377,parseerror:272,parser:[22,31,69,71,83,85,112,142,144,159,173,174,179,182,189,190,192,194,210,214,216,218,224,240,242,243,270,271,272,280,281,282,300,333,367,377,389,443],parsingerror:[30,377,390],part1:240,part2:240,part3:443,part:[0,2,3,4,7,8,11,14,15,16,18,22,28,31,33,39,40,42,44,48,49,51,52,53,56,62,67,68,71,73,74,76,77,78,79,80,81,82,83,84,85,89,90,94,96,97,99,100,102,106,107,109,111,113,114,115,116,117,120,121,122,124,127,129,130,134,135,146,155,174,175,177,187,190,191,193,196,201,203,204,209,210,213,216,240,243,254,259,265,271,279,281,282,287,291,292,299,300,307,314,318,343,345,354,357,359,362,363,367,368,372,374,377,390,443],part_a:203,part_b:203,parth:339,parti:[3,9,14,19,30,59,76,84,88,116,117,122,124,142,145,146,153,154,155,198,203,213,377,443],partial:[31,83,92,187,189,242,286,294,300,316,329,355,385,387,390,391],particip:[158,256,257,258,259,260],participl:[393,395],particular:[5,6,11,13,14,15,20,31,32,33,37,42,44,45,46,48,55,60,62,65,68,70,73,77,83,85,88,89,93,97,100,103,106,109,111,112,113,115,116,117,118,121,122,123,126,136,138,140,144,145,151,153,154,159,168,170,174,175,182,197,209,219,224,247,258,259,281,282,284,287,291,292,303,304,355,357,364,377,381,387,437,439,442],particularli:[8,28,55,58,75,85,90,96,177,190,193,243,253,301,318],partit:367,partli:[13,20,67,72,112,175],party_oth:203,pass:[2,8,10,18,19,22,28,29,30,32,33,35,39,41,42,44,45,47,48,54,62,65,68,78,79,81,82,83,90,91,92,93,94,95,101,102,105,106,107,108,110,114,115,117,118,123,126,135,138,142,146,155,157,163,168,169,175,187,193,194,196,201,206,209,212,213,216,221,223,225,226,231,243,246,247,249,253,254,256,257,258,259,260,264,265,270,281,282,284,291,292,296,299,300,305,308,309,312,314,324,332,334,337,342,343,353,359,362,364,365,373,374,375,376,377,378,383,384,385,386,389,390,410,416,436,439,441,443],passabl:282,passag:[65,129,206,270,271,378],passant:139,passavataridterminalrealm:334,passiv:[94,129,141],passthrough:[20,281,307],password123:49,password1:[398,430],password2:[398,430],password:[2,5,11,25,26,28,32,33,53,55,76,78,88,90,108,113,114,119,146,149,151,158,162,168,179,180,194,214,218,241,247,319,334,337,358,370,398,422,430],password_chang:431,passwordresettest:431,past:[0,14,27,50,51,69,75,80,82,83,84,100,101,102,109,113,123,129,130,141,151,159,170,258,282,360,368,378,393,395,439],pastebin:84,pastpl:393,pat:294,patch:[48,49,388,443],patfind:279,path:[4,7,12,15,19,28,30,31,32,33,35,37,41,42,44,48,52,53,62,63,64,67,68,73,75,77,83,85,88,90,91,94,96,106,109,110,111,114,116,117,119,126,130,134,135,136,138,142,145,149,151,155,157,168,169,171,174,175,176,177,181,182,183,184,185,186,187,196,198,201,202,203,204,205,206,209,212,213,216,218,219,221,223,224,226,232,235,240,241,242,243,249,250,251,256,257,258,259,260,262,264,265,268,269,270,271,273,275,279,281,282,283,284,286,288,294,295,296,300,301,303,304,306,307,309,314,321,323,332,339,345,347,351,355,359,362,363,364,368,370,372,373,374,375,377,378,381,382,387,390,408,416,436,443],path_or_typeclass:235,pathdata:275,pathfind:[78,275,279,281,282,443],pathnam:388,patient:89,patreon:89,patrol:269,patrolling_pac:269,patron:[84,89],pattern:[18,36,56,73,74,90,102,132,141,142,180,243,358,362,390,407],pattern_is_regex:362,paul:48,paus:[28,42,54,80,96,129,157,163,182,192,193,231,307,308,374,390,443],pausabl:390,pauseproduc:316,pax:443,paxboard:144,payload:[325,342],payment:123,paypal:[84,89],pdb:[165,443],pdbref:[33,291],pdf:144,peac:135,peek:[0,28,83,107,109,114],peer:[325,342],peform:319,peg:158,pem:151,pemit:[69,180],pen:103,penalti:[67,121,258,443],pend:359,pennmush:[69,72,99,194],pentagon:158,peopl:[0,6,12,18,30,31,33,53,58,60,69,78,84,87,88,91,100,104,106,109,111,113,121,122,123,124,126,127,129,144,148,152,153,155,158,161,187,188,214,243,270,271,370,399,406],pep8:0,per:[5,12,13,18,22,28,30,37,41,44,57,61,65,67,79,83,85,88,90,100,101,102,116,122,123,126,129,130,157,168,187,201,218,219,224,242,253,256,257,258,259,260,269,281,282,294,296,300,327,328,330,338,341,357,374,375,376,381,383,384],perceiv:[101,123],percent:[22,165,166,199,390,443],percentag:[129,252,253,363,390],percentil:390,perception_method_test:350,perfect:[11,27,87,121,122,126,154,157,201,281],perfectli:[42,46,72,90,102,367],perform:[3,5,6,13,14,15,18,29,32,33,37,42,58,77,87,92,96,107,116,129,130,135,141,142,146,152,154,158,168,173,175,179,182,187,189,204,206,209,216,225,231,232,243,246,254,256,257,258,259,260,279,294,296,300,304,305,318,323,337,345,346,362,363,364,371,374,375,377,384,387,390,391,430],perhap:[3,6,18,56,69,77,80,101,102,107],period:[8,9,10,78,116,155,157,158,390],perist:48,perm1:365,perm2:365,perm:[13,18,22,31,33,39,41,46,55,57,77,90,92,100,106,108,114,130,141,152,171,180,181,182,187,188,189,192,216,224,230,240,249,271,275,288,291,292,295,296,304,362,364,365,390],perm_abov:[33,39,291],perm_us:180,perma:123,permadeath:123,perman:[18,28,53,55,83,90,120,121,147,155,179,182,187,188,192,242,308,364,443],permiss:[5,12,13,18,20,41,49,50,55,61,63,69,76,90,91,92,109,114,126,130,141,145,146,152,154,165,166,168,170,171,175,177,179,180,181,182,187,188,190,196,219,230,243,260,286,288,291,292,295,296,300,301,304,362,363,364,365,368,370,377,383,387,390,396,398,409,410,413,416,441,443],permission_account_default:[39,345],permission_class:416,permission_func_modul:291,permission_guest_default:63,permission_hierarchi:[39,57,291,292,365],permissiondeni:411,permissionerror:300,permissionfilt:410,permissionhandl:[39,141,365],permissionshandl:[406,413],permit:[143,146,182,358],permstr:[33,168,364,370],permut:243,perpetu:[5,443],persion:58,persis:94,persist:[18,19,20,22,28,34,37,41,42,44,47,48,67,75,77,87,88,91,92,98,99,103,106,110,113,115,116,119,122,129,130,138,144,159,163,168,171,175,176,182,192,198,204,212,217,225,232,242,243,250,253,254,256,257,258,259,260,265,268,270,283,288,295,296,298,300,304,305,307,308,309,319,320,321,352,353,357,361,364,370,372,374,376,378,390,443],persit:35,person:[18,30,44,55,58,72,89,91,108,121,122,124,127,136,149,155,168,182,187,188,196,201,203,213,218,219,223,243,377,393,394,395,443],persona:31,perspect:[44,58,127,223,394],pertain:[134,139,158],pertin:141,perus:51,peski:106,pester:[99,121],peter:216,pg_ctlcluster:146,pg_hba:146,pg_lscluster:146,phantom:31,phase:[81,121],philosophi:[33,116,218],phone:[56,88,154,241],phone_gener:241,phonem:242,php:[69,88,430],phrase:[80,235],phrase_ev:235,physic:[12,35,81,121,259,269,443],pick:[7,14,16,20,22,25,28,30,31,33,42,53,58,76,82,83,84,87,91,96,101,106,109,115,116,119,122,123,126,127,140,153,155,157,159,174,179,182,188,190,206,227,243,260,270,271,296,300,346,377],pickl:[13,47,50,65,83,94,202,253,305,309,311,321,323,324,362,363,371,372,374,386,390],pickle_protocol:386,pickledfield:[294,386],pickledformfield:[386,399],pickledobject:386,pickledobjectfield:386,pickledwidget:386,picklefield:[165,166,366,399,443],pickpocket:189,pickup:[260,296],pictur:[7,62,79,91,99,443],pid:[2,11,33,50,141,157,163,291,296,314,324,390],piddir:2,pidfil:314,pie:216,piec:[5,14,35,53,54,79,88,115,116,122,151,209,210,240,341,368,375],pierc:270,pig:[209,210],piggyback:168,pigironrecip:[209,210],pile:[176,368],pillow:154,pinch:123,ping:[169,187,314,326],pink:367,pip:[0,3,5,6,8,9,10,76,83,85,112,116,141,146,149,150,152,154,156,157,162,165,443],pipe:[44,326,371],pitfal:[0,15,60,139],pixel:[53,147],pizza:[171,198,288,295,304,362,364,365],pkg:154,pki:145,place:[0,9,11,12,13,15,16,18,28,33,35,37,41,42,44,49,52,53,64,65,66,72,73,75,76,78,79,80,81,82,83,84,87,88,90,91,92,95,101,102,107,109,112,113,115,116,118,123,126,127,130,132,134,138,139,140,141,145,149,152,154,155,157,158,159,168,180,182,188,196,203,204,206,210,212,218,225,240,243,246,253,256,257,258,259,260,265,270,271,273,281,282,284,296,303,307,323,332,337,353,354,355,362,368,369,371,374,390,443],placehold:[52,53,64,142,292,296,376],plai:[12,15,31,44,53,57,60,65,75,77,78,80,82,87,88,94,96,100,103,104,107,116,119,120,121,122,124,126,127,129,130,138,140,141,154,155,162,168,256,260,338,355,370,443],plain:[14,15,67,68,85,100,109,130,187,196,203,204,239,301,319,345,371,439],plaintext:247,plan:[3,15,16,18,48,62,76,87,98,103,111,115,118,119,125,128,131,133,155,157,368,443],plane:[83,118,138],planet:[101,113,144],plant:272,plate:[48,53,105,241],platform:[7,11,56,76,98,149,155],playabl:[123,141,431],player1:296,player2:296,player:[5,6,13,18,20,28,30,33,39,42,44,46,50,52,53,54,55,57,58,62,64,65,69,70,76,77,78,82,83,86,87,88,91,92,94,100,104,106,107,109,110,113,114,115,116,117,119,120,121,122,125,127,128,129,130,131,133,135,136,137,138,141,148,150,152,155,156,162,163,176,179,182,187,192,197,200,201,203,204,216,217,218,219,221,225,227,235,236,240,242,243,247,251,254,259,260,265,271,272,273,281,287,304,328,337,354,368,373,374,390,416,430,436,443],playernam:152,playerornpc:76,pleas:[0,5,8,11,17,20,28,31,41,48,56,60,82,84,89,90,109,115,123,126,135,136,137,141,143,145,149,152,153,154,155,192,316,345,381,386,430],pleasur:56,plenti:[15,72,87],plop:53,plot:347,plu:[0,7,19,77,88,192],pluck:22,plug:[35,45,134,158,273],plugin:[62,65,69,86,90,112,113,144,153,159,201,243,312,443],plugin_handl:51,plugin_manag:51,plural:[39,57,58,100,259,296,377,393,394],plusmaplink:[83,282],png:[40,53,134],po1x1jbkiv_:84,pocoo:390,poeditor:64,poet:111,point:[2,3,5,6,7,8,10,11,12,14,15,16,19,20,22,28,30,31,35,37,42,44,46,47,48,50,53,58,65,67,68,70,73,75,77,78,81,83,84,85,87,90,91,92,94,96,98,101,102,103,104,106,107,108,109,113,114,115,116,117,121,123,124,127,129,130,131,134,138,141,142,145,149,151,154,155,157,159,162,168,173,177,182,187,190,203,209,216,226,243,249,256,271,272,273,275,279,281,282,296,298,300,309,314,318,332,334,342,353,355,362,364,368,374,377,390,399,406,419,441,443],pointer:[0,81,98,107],pointless:[37,47,54,189],poison:[13,122,253,258,301],pole:240,polici:[26,117,155,158,247,288,358,362,443],polish:64,polit:[78,117,123,158],poll:[62,134,179,269,314,343],pommel:[123,210],pong:326,pool:[20,47,146,309,359,371],poor:[58,100],poorli:158,pop:[7,54,85,92,100,106,146],popen:324,popul:[2,73,77,99,101,104,121,146,175,183,184,185,186,204,206,209,216,224,240,243,251,256,257,258,259,260,265,268,269,270,271,275,296,308,309,345,368,372,373,375,399,406],popular:[69,76,78,88,99,111,119,144,158,161,435],popup:51,port:[2,5,75,76,87,119,145,146,148,149,151,153,157,163,169,187,323,326,334,346,355,359,443],portal:[5,7,9,24,37,43,51,52,62,68,86,112,113,138,144,155,158,159,163,165,166,169,192,207,310,311,314,352,353,354,355,378,383,390,443],portal_connect:355,portal_disconnect:355,portal_disconnect_al:355,portal_l:324,portal_pid:[324,390],portal_receive_adminserver2port:324,portal_receive_launcher2port:324,portal_receive_server2port:324,portal_receive_statu:324,portal_reset_serv:355,portal_restart_serv:355,portal_run:314,portal_service_plugin_modul:62,portal_services_plugin:[62,113,159],portal_services_plugin_modul:62,portal_sess:62,portal_session_sync:355,portal_sessions_sync:355,portal_shutdown:355,portal_st:314,portal_uptim:378,portallogobserv:383,portalsess:[44,62,332,443],portalsessiondata:355,portalsessionhandl:[62,165,166,310,322,333,355,443],portalsessionsdata:355,portion:[201,204,227],portuges:64,pos:[218,282],pose:[26,58,94,100,108,122,123,129,168,188,216,232,243,265],pose_transform:196,posgresql:146,posit:[14,28,42,51,77,81,82,83,96,107,109,117,122,129,139,176,194,201,204,214,216,218,239,260,270,271,272,273,281,282,284,296,308,367,368,371,372,376,390,391],position:218,position_prep_map:218,positive_integ:391,positiveinteg:384,posix:[383,390],possess:[58,226,377,394],possibl:[0,5,8,9,11,13,18,20,22,27,28,30,31,32,33,35,41,42,44,46,50,52,53,54,60,63,75,76,77,80,82,84,85,87,88,92,96,99,100,107,111,112,113,116,117,120,122,123,124,126,127,129,130,134,139,142,146,149,154,157,159,165,168,170,171,173,175,182,189,190,201,203,209,218,224,231,240,242,243,251,253,269,271,273,281,282,284,289,292,294,296,299,300,301,305,309,319,339,343,353,355,362,363,365,367,370,372,373,374,376,378,386,387,390,393,408],post:[18,20,33,45,49,53,64,82,84,87,89,99,100,102,119,121,134,137,141,149,152,156,247,307,343,415,436,443],post_craft:[79,209],post_delet:45,post_init:45,post_join_channel:[18,196],post_leave_channel:[18,196],post_migr:45,post_mov:296,post_sav:45,post_send_messag:196,post_text:227,post_url_continu:[398,400,403],postfix:242,postgr:[88,146],postgresql:[390,443],postgresql_psycopg2:146,postinit:51,posttext:225,postupd:[137,152],pot:[55,110],potato:[147,272],potenti:[0,13,14,30,54,60,65,79,82,105,117,122,123,129,130,155,156,177,197,247,248,291,292,296,300,384,387,390],potion:[118,122,123,218,364],pow:30,power:[3,16,20,22,27,28,30,35,37,39,41,50,51,53,57,58,78,80,82,87,88,94,95,98,100,109,111,115,116,117,118,120,122,123,126,129,130,175,176,181,182,254,259,272,289,368,374,390],powerfulli:75,ppart:393,pperm:[18,33,39,55,114,141,152,179,187,240,291,296],pperm_abov:[39,291],pprofil:314,pprogram:314,practial:16,practic:[0,2,11,14,15,22,37,41,42,44,50,75,77,78,84,88,89,94,99,100,114,115,116,117,118,122,123,126,139,149,151,155,282,368,443],pre:[22,37,49,81,82,121,123,148,149,152,155,168,182,189,209,242,292,296,300,301,342,343,346,372,377,386],pre_craft:[79,209],pre_delet:45,pre_init:45,pre_join_channel:[18,196],pre_leave_channel:[18,196],pre_migr:45,pre_sav:[45,386],pre_send_messag:196,pre_text:227,preced:[20,39,41,57,60,83,126,175,177,254,296,301,363,376,377,394],preceed:[30,109],precend:173,precis:[13,42,139,209,367],predefin:[138,358],predict:[48,116,124,141],prefer:[7,11,18,20,33,41,51,77,82,84,87,89,91,99,107,113,115,119,130,146,152,155,175,177,180,204,243,257,269,282,287,289,294,296],prefix:[3,6,18,48,67,77,146,158,168,174,191,196,227,242,294,319,326,357,367,377,383,387,390,399,400,402,404,406,410,430],preload_metadata:201,prelogout_loc:114,prematur:[5,19,42,203],premis:216,prep:216,prepai:155,prepar:[8,36,41,52,81,83,99,132,168,187,243,256,257,258,259,260,269,304,371,386,443],prepars:85,prepend:[236,243,296,367,368,374,377,390],prepopul:[399,406,439,441],preposit:218,preprocess:182,prerequisit:[2,76,443],prescrib:[87,99,122],presen:30,presenc:[17,30,76,83,87,98,113,114,134,139,146,155,168,296,359,396],present:[3,6,11,28,31,44,49,53,77,78,80,81,90,101,102,106,107,121,122,129,130,145,159,204,225,227,241,242,251,254,272,301,372,390,393,395,399,413],present_participl:395,preserv:[139,190,364,367,368,383,390],preset:377,press:[0,3,7,15,16,20,22,28,33,65,68,76,77,109,113,116,119,149,157,163,204,218,265,270,312,374,403],pressur:105,presto:109,presum:[35,101,127,176,383,384],pretend:154,pretext:225,pretti:[0,11,13,37,42,50,58,68,75,77,84,85,88,92,96,106,114,116,117,120,121,129,130,138,139,141,153,155,177,196,206,223,241,253,285,292,300,373,375,384,390],prettier:[5,75,430],prettifi:[99,390],prettili:101,pretty_corn:376,prettyt:[19,105,376],prev:[28,126,375],prev_entri:28,prevent:[22,80,85,101,109,116,201,231,260,272,357,399,436,443],preview:85,previou:[3,13,15,20,22,28,29,30,31,33,36,45,49,53,54,56,60,67,75,77,94,100,101,102,106,107,108,111,112,114,115,116,120,123,126,128,130,139,157,159,187,253,254,271,298,374,375,383,438],previous:[8,20,27,32,42,53,60,81,83,107,109,115,134,141,151,153,159,177,180,182,187,196,203,283,319,335,339,346,355,365,390],previu:42,prgmr:155,price:[123,155,201,270],primadonna:31,primari:[17,48,114,141,157,243,294,296,362,387],primarili:[2,12,55,69,84,85,87,121,122,168,203,243,287,289,332,371,390],primary_kei:141,prime:[173,203],primer:[53,54],primit:[123,182],princess:[82,120],princip:124,principl:[0,12,18,22,28,30,33,35,37,50,57,58,62,76,79,84,85,95,99,106,111,113,114,117,122,123,130,140,155,156,176,179,203,271],print:[0,3,4,5,6,13,19,27,28,42,48,54,62,67,70,76,90,91,92,100,107,111,114,116,117,163,179,213,242,253,272,281,283,300,313,314,373,374,375,376,383,390],print_debug_info:374,print_error:283,print_help:272,print_stat:5,print_usag:272,printabl:340,printable_order_list:281,printout:[117,337],prio:[20,22,92,114,173,271,365],prior:[135,231,296],priorit:[83,242,282,365],prioriti:[6,20,22,28,83,90,92,97,126,129,175,179,183,184,185,186,190,204,216,268,270,271,296,372,374,375,443],prison:[111,121,443],privat:[11,18,85,90,99,102,121,123,145,146,155,187,188,326,339],private_set:76,privatestaticroot:359,priveleg:115,privileg:[83,91,121,130,146,149,150,153,156,188,243,273,284,296,364,443],privkei:151,privkeyfil:334,privmsg:326,prize:120,proactiv:47,probabl:[5,9,22,28,31,37,42,49,50,53,56,67,69,77,80,83,84,87,88,90,91,92,94,99,102,106,114,123,126,129,134,138,141,142,146,155,189,201,204,235,241,253,271,316,326,334,381,390,391],problem:[0,2,6,8,13,14,16,19,26,33,70,74,77,82,88,89,91,92,98,102,103,108,116,118,121,123,124,126,146,147,151,154,155,157,158,163,168,176,209,232,281,296,323,368,377,443],problemat:[92,390],proce:[15,16,64,138,139,157,187,341,434,436],procedur:[254,334,337],proceed:[11,390],process:[0,2,3,5,7,11,13,14,15,16,22,28,30,35,37,40,49,52,53,64,65,68,75,76,77,81,83,85,88,90,92,94,96,107,113,116,121,123,125,126,127,141,145,146,151,154,155,157,168,173,175,182,192,196,203,209,210,243,254,272,277,290,292,296,300,305,308,314,319,323,324,331,334,337,342,343,346,352,353,355,362,367,368,371,374,384,389,390,391,408,443],process_languag:243,process_recog:243,process_sdesc:243,processed_result:390,processor:[24,26,82,123,131,163,165,166,181,192,366,443],procpool:390,produc:[11,18,22,28,31,60,122,124,130,179,182,209,210,218,223,240,242,270,273,296,300,301,313,345,362,364,373,374,390],produce_weapon:270,producion:19,product:[0,2,5,7,9,11,52,53,73,146,155,158,161,345,348,374,443],production_set:76,prof:5,profess:111,profession:[69,88,99,116,123,124,132],profil:[1,150,165,166,171,225,310,443],profile_templ:225,profunc:41,prog:[272,393],program:[0,5,7,8,9,12,16,18,30,40,49,52,54,67,69,86,88,96,98,99,112,113,116,117,120,124,125,126,144,146,149,151,154,155,157,158,163,192,194,272,310,314,337,343,345,443],programiz:96,programm:[107,119,124],progress:[11,89,106,127,144,219,221,256,257,258,259,260,282,372],proident:29,project:[8,11,16,69,73,78,81,82,84,88,90,92,107,124,134,144,153,384,442,443],projectil:259,promin:31,promis:0,promisqu:139,prompt:[0,3,48,51,65,68,76,82,88,103,116,119,146,147,148,149,154,157,162,177,193,254,312,326,337,342,343,368,374,443],promptli:15,pron:[30,296,377,443],prone:[9,176,364],pronoun:[30,58,165,166,226,296,366,377,392,395,443],pronoun_to_viewpoint:394,pronoun_typ:[58,377,394],pronounc:223,pronount:394,prop:[121,377,443],propag:[145,175,318,386],proper:[2,8,11,13,16,19,30,31,51,58,73,88,91,96,97,98,99,106,107,121,122,123,126,129,130,141,146,157,158,182,193,203,204,233,242,296,373,377,394],properi:189,properli:[7,8,9,10,11,30,34,48,69,74,76,94,100,101,102,135,139,141,177,201,203,248,271,279,291,308,309,334,390,401],properti:[4,6,8,14,31,33,34,36,39,41,42,47,53,58,67,77,78,79,82,86,87,92,96,98,99,104,108,112,114,118,123,127,129,130,138,139,159,163,168,169,171,177,179,182,190,192,193,196,198,201,204,209,210,216,218,219,225,231,240,243,252,253,254,256,258,259,260,265,269,270,271,272,273,282,283,284,286,288,289,291,292,294,295,296,300,301,304,306,307,308,318,319,321,326,332,345,346,353,354,355,362,364,365,369,371,374,377,384,385,386,387,390,398,399,400,402,403,404,405,406,413,430,438,440,443],property_nam:294,property_valu:294,propnam:130,propos:27,proprietari:146,propval:130,propvalu:130,prose:124,prosimii:[141,142],prospect:[121,209],prot:301,prot_func_modul:[41,299],protect:[5,20,155,182,210,265],protfunc:[165,166,297,300,301,377,443],protfunc_callable_protkei:299,protfunc_modul:300,protfunc_pars:300,protfunct:300,protkei:[41,299,300],proto:[323,334],proto_def:240,protocol:[19,22,24,32,40,44,51,61,65,86,88,112,113,124,144,147,153,155,158,159,163,168,169,177,180,226,247,264,296,310,311,314,316,319,323,324,325,326,327,328,329,330,332,333,334,336,337,338,339,341,342,343,345,352,353,354,355,372,386,390,443],protocol_flag:[336,337,341,353],protocol_kei:354,protocol_path:[332,355],protodef:240,prototocol:192,protototyp:[298,300,301],protototype_tag:41,prototoyp:299,prototyp:[24,30,79,80,86,112,113,121,137,165,166,182,199,209,240,257,258,270,274,281,282,283,443],prototype1:301,prototype2:301,prototype_:41,prototype_desc:[41,301],prototype_dict:182,prototype_diff:301,prototype_diff_from_object:301,prototype_from_object:301,prototype_kei:[41,79,83,182,209,300,301],prototype_keykei:182,prototype_lock:[41,301],prototype_modul:[41,83,182,278,300,301],prototype_pagin:300,prototype_par:[41,83,182,278,301],prototype_tag:301,prototype_to_str:300,prototypeevmor:300,prototypefunc:301,protpar:[300,301],protpart:300,provid:[2,6,8,11,13,17,18,22,30,31,39,41,42,48,49,50,51,52,53,55,56,58,69,71,75,77,79,85,87,90,92,94,102,107,115,116,117,118,122,123,126,132,134,139,141,142,151,154,155,157,158,168,177,182,187,194,196,201,204,206,209,218,225,227,230,240,241,254,256,257,258,259,260,272,273,281,286,291,296,299,307,314,334,357,363,365,374,377,384,385,386,390,391,415,416,430,436,439,441],provok:[3,144],prowl:31,proxi:[48,112,151,158,161,201,359,399,406,443],proxypass:145,proxypassrevers:145,prudent:2,prune:20,pseudo:[62,69,78,81,107,241,242],psionic:259,psql:146,pstat:5,psycopg2:146,pty:76,pub:[187,196],pubkeyfil:334,publicli:[53,123,144,148,443],publish:[2,91,144,157],pudb:[165,443],puff:98,pull:[2,9,11,20,22,30,52,53,84,85,88,92,113,124,134,157,235,270,316,438],pullrequest:84,pummel:120,punch:[20,108],punish:[123,260],puppet:[6,12,20,22,26,32,33,39,44,45,50,57,62,76,77,79,91,96,99,100,101,114,130,136,141,167,168,173,179,182,190,198,205,209,236,275,291,296,353,355,364,365,398,403,431,436,438,443],puppet_object:[12,168],puppeted_object:398,purchas:[106,151],pure:[48,60,68,80,98,123,139,151,304,314,362,367],pure_ascii:390,purg:[13,48,163,192],purpos:[13,40,46,58,65,90,111,117,130,139,141,151,155,169,173,177,213,223,231,282,334,362,371,374,377,390,394],pursu:[120,269],push:[77,85,115,139,157,158,218,235,265,270,443],pushd:149,put:[3,7,8,12,14,15,22,27,28,33,36,37,39,41,44,48,49,53,54,55,57,60,65,67,72,73,75,79,80,81,82,83,84,85,88,89,91,92,99,100,106,108,109,113,115,116,118,121,122,124,126,127,129,130,132,134,138,141,144,146,155,158,159,161,176,179,180,182,184,188,202,205,206,209,210,223,225,227,243,254,256,257,258,259,260,262,292,323,337,375,376,390,443],putti:155,puzzl:[79,120,144,165,166,199,209,270,271,443],puzzle_desc:270,puzzle_kei:271,puzzle_nam:240,puzzle_valu:271,puzzleedit:240,puzzlerecip:240,puzzlesystemcmdset:240,pvp:[121,443],pwd:[5,157],py3:323,pyc:113,pycharm:[1,85,119,443],pyflak:0,pylint:0,pyopenssl:150,pypath:390,pypath_prefix:390,pypath_to_realpath:390,pypi:[5,88,144,155,367],pypiwin32:[76,149],pyprof2calltre:5,pyramid:273,pyramidmapprovid:273,pyself:122,python2:[6,76,149],python37:149,python3:[149,154,253],python3_properti:88,python:[3,5,6,7,8,9,10,12,13,15,16,19,20,22,27,28,30,31,33,35,37,41,48,49,50,52,53,54,55,57,60,63,64,67,69,70,71,73,75,76,77,80,81,82,83,84,85,86,88,90,91,94,96,98,100,101,102,103,105,106,107,108,109,110,111,112,114,115,118,119,122,123,124,125,126,127,128,129,130,131,132,133,136,141,142,146,149,150,153,154,155,156,157,158,159,162,163,174,176,181,182,186,192,193,204,209,213,229,230,231,232,233,235,241,272,273,283,286,292,294,295,299,301,306,309,314,316,323,327,332,342,353,355,359,361,363,364,367,368,370,371,372,373,374,376,377,378,381,383,386,390,408,413,419,442,443],python_execut:88,python_path:[117,176,390],pythonista:144,pythonpath:[176,314,324,368],pytz:391,q_lycantrop:111,q_moonlit:111,q_recently_bitten:111,qualiti:[121,123,174],queen:83,quell:[12,26,108,109,114,116,120,126,138,179,249,291,443],quell_color:182,queri:[11,30,41,46,49,56,65,67,83,88,96,98,103,118,119,126,171,187,189,198,243,284,287,288,289,294,295,296,300,301,304,321,334,349,362,363,364,365,375,377,382,387,390,391,443],query_al:362,query_categori:362,query_info:314,query_kei:362,query_statu:314,query_util:410,queryset:[42,46,88,170,197,219,236,283,284,287,294,300,303,320,363,375,387,399,406,410,416,435,436,438,441,443],queryset_maxs:375,querystr:410,querystring_auth:201,querystring_expir:201,quest:[78,87,99,103,120,121,122,124,128,135,149,271,443],question:[0,8,11,22,27,28,54,73,77,99,121,123,124,125,127,145,149,151,155,182,193,295,311,312,362,372,374,390],queu:314,queue:[2,129,359],qui:29,quick:[6,20,22,35,42,46,69,74,77,85,87,96,107,116,117,121,129,144,155,161,169,182,204,242,286,301,319,362,365,376,415,443],quicker:[36,67,75,84,123],quickli:[9,13,16,22,28,35,37,46,54,60,67,83,92,96,123,124,134,137,161,182,204,221,223,242,365,368],quickstart:[6,64,67,100,116,154,155,157,159,163,442,443],quiescentcallback:316,quiet:[83,92,106,118,168,180,182,187,204,206,243,275,296,375,390,443],quiethttp11clientfactori:316,quietli:[30,65,68,94,362],quirk:[1,13,147,176,443],quit:[3,5,8,9,12,17,22,26,27,28,44,54,62,75,77,80,83,85,87,90,91,95,96,99,106,108,109,111,114,116,117,118,120,123,126,141,146,148,151,154,179,194,204,214,216,221,225,231,259,334,372,374,375],quitfunc:[27,372],quitfunc_arg:372,quitsave_yesno:372,quo:47,quot:[13,19,25,27,33,41,116,122,136,146,182,194,214,243,372,374,386,390],qux:254,ra4d24e8a3cab:25,rabbit:123,race:[87,98,121,127,135,141,144,145,390,443],rack:[210,270],radio:[18,123],radiu:[81,82,96],rage:[120,253],ragetrait:253,rail:[88,138],railroad:138,railwai:282,rain:[42,120,123,140],raini:271,rais:[13,16,19,22,30,41,54,65,79,102,107,111,127,142,168,169,193,197,201,204,209,212,213,224,229,231,232,241,242,243,253,281,282,283,284,292,299,300,309,313,314,332,337,343,358,362,363,365,367,368,370,373,374,376,377,383,384,385,386,390,391,411],raise_error:[30,377,385,390],raise_except:[13,209,362],ram:[13,155],ramalho:144,ran:[2,3,8,14,116,307],rand:42,randint:[30,41,79,107,114,127,129,130,137,256,257,258,259,260,301,377],random:[25,30,41,42,76,79,80,107,109,114,120,122,123,127,129,130,137,140,155,159,210,223,241,242,256,257,258,259,260,262,265,266,270,271,273,301,345,346,377,390,443],random_string_from_modul:390,random_string_gener:[165,166,199,443],randomli:[5,42,67,137,140,256,257,258,259,260,265,269,270,314,346,377],randomstringgener:241,randomstringgeneratorscript:241,rang:[3,5,8,20,27,41,68,78,81,82,83,96,98,107,109,120,122,129,136,137,147,149,158,182,212,225,252,253,257,260,279,281,284,363,372,377,430,441],ranged_attack:210,rank:[57,291],raph:144,rapidli:176,rapier:111,raptur:338,rare:[7,9,22,47,54,58,67,77,85,149,159,187,283,292,370],rascal:46,rase:211,rate:[5,22,78,84,88,122,155,165,166,187,199,309,314,333,390,443],ratetarget:[122,252,253],rather:[0,6,8,9,11,12,13,14,22,31,37,42,46,47,53,67,72,73,77,78,79,82,83,84,85,87,88,92,94,96,99,107,109,113,116,118,119,122,123,126,129,132,142,151,152,159,163,168,171,175,179,182,183,187,189,190,192,196,203,227,231,239,243,253,256,257,258,259,260,282,283,285,296,298,300,301,362,364,367,376,385,386,389,399,406,439],ration:[122,203],raw:[13,22,32,41,55,60,65,67,85,88,98,109,116,117,119,123,132,168,174,177,182,190,191,193,243,247,253,272,296,319,334,337,342,343,353,362,367,372,374,384,390],raw_cmdnam:[108,174,191],raw_desc:224,raw_id_field:[400,403,404],raw_input:[106,374],raw_nick:36,raw_str:[22,28,106,108,168,169,173,174,177,193,217,225,254,268,296,298,353,362,374],raw_templ:36,rawhid:210,rawhiderecip:210,rawstr:[177,193],rcannot:77,rdelet:182,re_bg:389,re_bgfg:389,re_blink:389,re_bold:389,re_color:389,re_dblspac:389,re_double_spac:389,re_fg:389,re_format:367,re_hilit:389,re_invers:389,re_mxplink:389,re_mxpurl:389,re_norm:389,re_str:389,re_ulin:389,re_underlin:389,re_unhilit:389,re_url:389,reach:[28,36,64,68,77,83,96,108,109,120,126,127,138,155,165,177,225,229,253,260,282,334,338,357,374,375,387,442],reachabl:[47,88,281],react:[28,47,52,135,136,269,296],reactiv:192,reactor:[325,352,359,388],read:[5,8,9,11,13,14,16,17,19,20,22,28,30,31,33,35,41,44,49,53,56,64,67,68,75,76,77,80,83,84,85,87,88,89,90,92,94,96,98,100,102,106,107,108,109,111,112,113,114,115,116,117,120,122,123,124,126,130,139,141,142,144,145,146,152,153,155,158,159,162,168,171,181,188,189,198,201,204,218,224,227,235,236,241,243,253,270,271,281,282,286,288,295,296,300,301,304,321,323,346,362,364,365,368,369,373,375,382,383,390,398,435,438,443],read_batchfil:368,read_default_fil:2,read_flag:218,read_only_field:413,readabl:[5,19,47,48,60,69,81,85,189,202,209,218,270,281,367,374,438],readable_text:270,reader:[32,85,100,104,126,141,144,156,187,227,260,319,333],readi:[2,3,5,7,11,12,16,33,37,54,55,62,84,92,94,109,113,114,124,134,138,148,149,154,168,177,243,256,257,258,259,260,296,343,375,384,390],readili:[82,146],readin:373,readlin:[201,383],readm:[10,11,15,80,84,113,199,201,247],readonly_field:[398,400,403,404],readonlypasswordhashfield:398,readthedoc:[144,410],real:[3,4,5,11,12,19,20,30,37,41,48,54,63,69,77,80,82,85,87,91,96,100,101,111,116,117,123,127,129,130,131,139,149,151,153,155,157,163,171,176,198,203,210,212,242,243,258,282,283,291,345,368,377,378,443],real_address:12,real_nam:12,real_seconds_until:[212,378],real_word:242,realist:[5,8,123,124,140,218],realiti:[5,82,87,91,98,121,139,144],realiz:[11,114,139],realli:[0,3,4,8,9,13,14,15,18,20,22,28,30,33,37,42,46,47,49,54,55,57,69,77,82,83,88,90,92,96,100,101,106,107,108,109,114,115,117,118,122,124,126,136,138,151,153,156,159,163,177,193,203,204,205,254,272,282,292,323,367,368,374,386],really_all_weapon:111,realm:334,realnam:37,realpython:54,realtim:[100,113,212],realtime_to_gametim:212,reason:[5,6,7,11,13,14,18,28,31,33,35,36,37,39,41,42,47,50,55,60,62,65,67,72,76,77,79,81,83,84,85,88,92,94,96,97,98,99,100,102,105,108,114,115,121,123,124,126,127,129,139,145,149,151,158,159,168,180,182,187,192,209,214,219,241,242,253,281,282,294,296,300,305,311,316,323,324,325,326,332,333,334,337,342,343,345,353,354,355,364,372,377,383,390,441],reasourc:41,reassign:81,reattach:[7,325,326],rebas:11,reboot:[9,13,19,26,27,34,42,44,47,67,87,93,113,129,151,155,157,162,168,176,187,192,207,225,253,269,270,296,304,305,307,309,314,354,355,372,374,443],reboot_evennia:314,rebuild:[9,83,100,149,151,157,283,326],rebuilt:[22,83,151,281],rec:243,recach:271,recal:[270,435],recapcha:443,recaptcha:141,receipt:[158,316],receiv:[3,8,18,20,22,28,29,30,35,36,44,51,52,61,65,70,79,84,100,107,113,141,168,175,176,193,194,196,197,198,214,219,236,243,247,253,281,296,316,319,323,325,326,332,342,343,345,352,353,370,375,377,387,390,400,443],receive_functioncal:323,receive_status_from_port:314,receiver1:193,receiver2:193,receiver_account_set:171,receiver_extern:198,receiver_object_set:295,receiver_script_set:304,recent:[17,53,90,92,111,130,151,170,357],recently_bitten:111,recev:343,recip:[47,75,93,123,165,166,199,208,211,240,443],recipe_modul:209,recipe_nam:209,recipenam:79,recipes_pot:209,recipes_weapon:209,recipi:[18,30,35,100,168,196,197,236,296,323,377],reckon:[76,78],recoc:122,recog:[36,78,122,243,443],recog_regex:243,recogerror:243,recoghandl:243,recogn:[8,32,37,56,108,109,117,123,142,149,155,163,243,253,359],recognit:[58,124,243,362],recommend:[0,2,5,8,11,13,28,37,41,48,55,67,68,69,73,76,83,84,85,87,92,100,102,103,110,116,121,123,127,144,146,147,149,155,162,192,227,231,246,272,281,292,294,296,316,368,374,387],reconfigur:155,reconnect:[168,169,187,196,311,314,323,325,326,352,355],reconnectingclientfactori:[311,325,326,345],record:[16,130,146,155,247,260,357,430],record_ip:357,recours:55,recov:[19,93,94,98,253,256,257,258,259,260,292,390],recoveri:129,recreat:[9,42,82,113,146,149,169,176,283,368,369],rectangl:373,rectangular:[100,373],recur:88,recurs:[13,282,291,300],red:[14,15,20,36,39,41,53,60,83,109,113,115,116,117,139,182,192,218,265,270,367,377,391],red_button:[14,15,36,109,113,165,166,182,199,261,443],red_kei:39,red_ros:111,redbutton:[14,15,36,109,113,182,265],redd:158,reddit:158,redefin:[22,37,77,87,296,430],redhat:[149,151],redirect:[44,53,62,73,77,102,113,141,145,204,218,221,374,432,436,441],redirectlink:282,redirectview:436,redit:204,redmapnod:83,redo:[27,116,117,121,372],redraw:334,reduc:[129,256,257,258,259,260,327],reduced_redund:201,reduct:201,redund:367,reel:176,reen:[60,367],ref:[48,85,146,243,296,390,430],refactor:[99,296,393,442],refer:[7,8,10,11,13,14,20,22,28,30,36,37,41,42,44,48,53,57,58,62,67,68,72,75,76,77,79,80,81,82,84,88,98,99,101,102,103,108,111,113,114,115,116,117,119,122,123,124,127,129,139,141,142,144,145,155,157,159,163,168,176,182,187,191,196,203,210,221,225,241,243,253,256,257,258,259,260,275,281,284,291,296,306,308,309,316,326,346,354,363,374,377,381,386,387,390,399,406,441,442,443],referenc:[37,41,50,85,98,159,177,182,187,196,201,243,281,286,288,364,390,443],referenti:390,referr:155,refin:[81,210],reflect:[116,120,122,441],reflex:[58,377,394],reflow:56,reformat:[301,376,383],reformat_cel:376,reformat_column:[82,376],refresh:[0,53,83,142,334,357],refus:[18,55,123],regain:94,regard:[8,139,241,410],regardless:[8,20,22,39,44,48,55,57,58,65,100,104,121,127,138,168,175,196,203,218,226,243,296,309,331,334,337,352,354,362,365,368,381,383,390],regener:258,regex:[18,22,27,36,51,53,177,180,192,193,207,241,243,358,362,374,390,419],regex_nick:36,regex_tupl:243,regex_tuple_from_key_alia:243,regexfield:398,region:[74,83,100,155,180],region_nam:201,regist:[11,51,52,53,65,73,83,129,137,141,150,152,158,159,161,168,170,187,192,235,269,270,305,314,325,326,332,355,357,359,367,377,415,421,431,434,443],register_error:367,register_ev:235,registercompon:51,registertest:431,registr:[49,150,434],registrar:151,registri:[241,357,359],regress:300,regul:292,regular:[17,18,22,31,35,42,44,47,50,52,58,73,83,85,102,109,110,111,113,116,117,121,126,132,140,142,144,155,169,175,206,240,241,271,282,286,292,309,362,365,377,381,390,394,419,442,443],regulararticl:382,regulararticle_set:382,regularcategori:382,regularli:[9,106,137,140,151,156,212,269,271,307,309,317,347,378],reilli:144,reinforc:144,reiniti:163,reinstal:149,reinvent:99,reject:[225,241],rejectedregex:241,rejoin:18,rel:[11,14,15,20,28,31,50,54,57,77,81,83,85,105,123,130,141,159,212,218,260,368,374,443],relai:[19,22,44,153,168,187,203,226,281,296,332,355,374,375,390],relat:[18,20,22,28,31,48,51,53,93,98,99,111,113,114,117,123,126,140,144,153,158,159,163,171,172,175,190,195,197,198,212,217,218,219,235,247,253,256,257,258,259,260,268,271,281,282,288,295,296,303,304,309,319,355,362,364,365,367,374,382,383,396,398,399,406,413,423,430,443],related_field:[398,399,400,402,403,404,406],related_nam:[171,198,288,295,304,362,364,365,382],relationship:[35,48,81],relay:169,releas:[76,78,84,87,93,113,124,143,144,149,155,192,394,442,443],relev:[13,15,22,33,37,45,46,48,50,53,60,73,74,76,77,83,84,85,95,100,101,126,129,130,132,141,144,168,173,175,203,204,209,253,282,292,306,328,346,353,354,355,367,372,374,384,399,406,443],relevant_choic:204,reli:[8,28,47,60,67,68,73,76,89,101,104,106,107,118,123,139,226,243,253,271,314,364,374,443],reliabl:[14,48,92,94,146,381],religion:[31,286],reload:[0,2,3,7,9,12,13,14,15,19,20,22,25,26,27,28,31,32,40,42,44,47,48,50,52,53,55,57,62,63,73,75,77,79,83,91,93,94,96,97,99,100,101,102,104,108,113,114,115,116,126,127,129,130,132,134,135,136,138,141,142,149,150,151,152,156,159,168,169,176,181,182,192,196,204,205,213,214,224,232,239,243,249,250,253,270,271,273,281,283,286,292,296,305,307,309,314,323,324,326,328,352,355,359,362,368,370,372,373,374,378,390,443],reload_evennia:314,reluct:123,remain:[6,13,14,20,22,27,28,41,42,45,57,70,95,100,107,113,114,115,126,155,163,174,176,182,184,188,205,209,212,221,224,242,253,256,257,258,259,260,269,296,314,342,343,374,375,390],remaind:[22,91,212],remaining_repeat:42,remap:[116,362],remark:443,rememb:[1,5,6,9,11,13,14,20,22,28,31,39,46,47,51,53,55,60,67,68,75,77,81,82,83,90,91,93,94,96,98,100,101,102,107,114,116,118,120,121,122,123,124,126,130,139,148,149,155,180,182,205,231,282,296,305,368,387,443],remind:[27,75,85,90,443],remit:180,remnisc:99,remot:[92,151,157,158,161,187,201,323,325,337,443],remov:[2,8,9,11,13,18,19,20,23,27,28,30,31,34,36,37,39,42,47,55,75,76,77,83,87,90,91,96,100,102,104,106,107,108,113,114,120,123,129,134,141,156,165,175,176,180,182,187,188,189,192,193,196,198,204,206,210,218,223,224,225,229,233,240,241,242,243,252,253,254,256,257,258,259,260,265,282,283,292,295,296,301,305,308,309,314,332,343,355,357,362,365,367,371,374,381,386,388,389,390,416,443],remove_alia:187,remove_backspac:389,remove_bel:389,remove_charact:129,remove_default:[20,176],remove_map:283,remove_non_persist:303,remove_object:283,remove_receiv:198,remove_send:198,remove_user_channel_alia:[18,196],removeth:362,renam:[5,26,76,100,104,108,109,116,117,126,134,182,188,296,303,364],render:[45,52,53,77,85,102,104,132,134,141,142,189,227,359,384,386,398,399,400,402,403,404,406,413,419,428,430,441],render_post:343,renew:[94,100,151,357],repair:[91,121,443],repeat:[3,5,68,75,82,101,116,121,123,129,134,136,138,154,163,168,169,203,212,241,254,304,307,314,319,338,362,370,374,378,390,443],repeatedli:[3,15,32,101,113,269,304,307,309,314,319,345,423],repeatlist:32,repetit:[78,101,129,241],replac:[2,13,18,20,22,27,28,30,31,32,33,36,37,41,44,49,51,58,60,73,76,77,78,82,83,85,92,94,95,99,102,103,108,113,116,118,119,122,126,129,134,142,146,151,157,159,168,174,175,176,177,180,188,189,192,193,196,203,205,207,209,214,217,223,224,225,229,232,239,240,242,243,265,268,271,272,281,282,292,296,298,300,301,326,329,342,343,353,362,367,372,373,374,375,376,377,389,390,419,421,443],replace_data:376,replace_timeslot:224,replace_whitespac:376,replacement_str:188,replacement_templ:188,replenish:[256,257,258,259,260],repli:[22,28,123,150,169,203,236,312,336,337,343,355,374],replic:[77,124,134,365],replica:114,repo:[7,11,64,85,99,112,121,144,390,443],repoint:53,report:[0,5,6,8,11,22,26,34,42,47,77,78,79,83,84,89,107,118,121,123,126,127,129,134,146,147,149,154,158,159,182,187,209,229,232,243,272,282,296,314,319,326,329,330,337,338,342,345,353,355,367,370,374,390],report_to:370,repositori:[2,10,64,76,78,85,92,112,143,145,146,149,157,301,443],repositri:64,repr:[107,390,438],reprehenderit:29,repres:[8,12,20,22,30,31,35,37,44,45,48,53,58,62,67,70,75,76,77,78,80,81,83,86,88,91,92,98,101,102,108,109,111,112,113,114,115,117,119,124,129,134,139,141,168,173,197,206,221,225,227,229,235,241,242,243,247,249,253,254,258,270,271,272,281,282,283,286,296,301,308,309,311,325,326,342,343,353,354,355,359,362,363,367,369,370,374,375,376,377,386,390,393,416],represen:114,represent:[12,13,30,35,36,44,62,67,68,70,88,93,100,114,127,139,197,229,232,243,281,294,300,304,323,342,343,365,371,378,413],reprocess:158,reproduc:[54,83,282,296],reput:[121,246,443],reqhash:[363,390],reqiur:225,request:[0,11,28,33,45,49,52,53,62,73,84,102,113,117,130,132,141,142,145,149,155,158,168,169,180,203,232,296,300,314,316,323,326,328,333,334,336,343,359,365,374,398,399,400,401,403,404,406,410,411,416,421,422,423,424,428,435,437,438,441],request_finish:45,request_start:45,requestavatarid:334,requestfactori:359,requestor:[168,357],requir:[0,2,5,8,15,16,22,27,30,31,33,34,37,39,41,47,48,49,50,51,52,53,54,59,67,72,76,77,78,79,80,81,82,83,84,85,90,100,102,106,108,121,123,124,126,129,134,136,139,140,141,142,143,144,145,146,148,151,152,154,155,161,163,170,181,182,187,197,198,201,209,210,213,214,224,225,239,241,243,253,254,258,259,271,272,281,282,284,287,291,294,296,300,308,314,325,326,339,347,358,363,368,373,374,375,376,377,381,385,386,387,390,398,399,400,402,403,404,406,430,436,443],require_al:[39,365],require_singl:300,requirements_extra:[0,83],requr:41,requri:[300,377],rerout:[52,179,183,326,407],rerun:[14,15,28,83,209],research:[123,144,231],resembl:[72,87,92],resend:22,reserv:[22,30,54,82,108,114,116,300,358,363,377,390],reserved_keyword:30,reserved_kwarg:[30,377],reset:[16,17,19,20,22,26,27,42,44,48,55,60,63,75,82,94,97,104,108,113,122,127,129,130,138,139,146,159,168,169,176,182,192,212,216,218,232,243,252,253,270,292,314,318,324,334,352,362,365,368,376,377,378,388,390,443],reset_cach:[362,365],reset_callcount:42,reset_gametim:[19,378],reset_serv:318,reset_tim:224,reshuffl:443,resid:[69,112,292],residu:[192,258],resist:[301,390],resiz:[52,100,373,376],resolut:[123,129,253,281],resolv:[0,3,11,85,94,103,116,117,123,124,129,155,159,240,256,257,258,259,260,413],resolve_attack:[256,257,258,259,260],resolve_combat:129,resort:[22,85,100,148,187,243,390],resourc:[0,47,49,52,53,69,73,76,85,86,93,98,108,111,112,113,114,115,116,117,118,123,134,146,155,158,168,253,259,280,289,305,312,343,359,369,388,442,443],respawn:[83,121,443],respect:[22,33,42,44,48,49,75,79,83,100,115,126,130,146,159,180,182,189,203,209,236,240,243,250,292,296,353,354,364,365,368,370,376,387,390,394,430],respond:[28,34,45,65,75,80,113,121,135,136,139,163,341,345],respons:[5,17,28,30,31,49,52,53,54,56,68,81,84,88,89,106,107,136,137,138,149,155,168,169,176,177,187,196,209,271,273,286,288,296,312,314,316,323,345,346,355,364,384,386,390,413],response_add:[398,400,403],resport:390,rest:[7,17,18,22,28,30,36,42,52,53,67,82,85,94,98,105,106,113,114,116,117,120,121,123,127,130,149,159,162,174,190,191,253,256,257,258,259,260,362,367,376,410,411,413,414,415,416,443],rest_api_en:[49,52],rest_framework:[49,410,411,412,413,414,416],restart:[0,3,7,9,11,26,40,42,51,55,64,73,100,114,117,129,146,151,155,158,159,163,165,168,192,196,204,207,232,296,303,305,307,308,309,318,331,352,353,354,390,443],restartingwebsocketserverfactori:[169,325],restock:106,restor:[20,75,139,204,210,259,305,309],restrain:[182,253,291,373,390],restrict:[13,33,41,47,48,51,57,82,90,109,112,113,118,122,127,142,145,155,182,187,206,241,259,260,281,286,292,294,301,303,370,372,374,376,387,443],restructur:[85,98],result1:240,result2:[28,240],result:[6,8,11,13,19,20,22,28,30,31,33,41,44,47,49,52,54,58,60,64,68,73,79,83,85,95,97,100,107,108,111,112,114,115,116,118,122,123,126,127,129,130,134,136,139,142,146,155,159,168,170,174,175,177,182,189,193,196,198,203,209,210,211,213,218,225,240,241,242,243,246,253,256,257,258,259,260,271,281,282,287,289,292,294,296,300,301,303,314,323,345,362,364,367,372,373,374,376,377,381,383,384,387,390,391,393,408,438],result_nam:240,resum:[22,83,94,126,308],resurrect:269,resync:[169,323,353],ret1:377,ret:[22,193],ret_index:390,retain:[6,19,20,31,53,54,64,82,117,226,253,286,288,301,360,364,368,370,377,383,390,394],retain_inst:177,retext:85,retract:203,retreat:260,retri:314,retriev:[6,18,22,32,46,49,67,69,74,75,83,102,130,168,171,173,176,182,187,192,193,197,224,231,253,275,282,287,291,295,300,312,319,320,326,332,341,362,365,371,381,385,387,390,395,410,411,415,416,435,438,441,443],retriv:[169,369],retro:18,retroact:[48,100],retur:29,return_alias:282,return_appear:[81,83,130,206,218,219,224,243,264,270,284,296],return_apper:[284,296],return_cmdset:189,return_detail:[224,271],return_dict:286,return_iter:300,return_key_and_categori:365,return_list:[30,362,365,377],return_map:82,return_minimap:82,return_obj:[13,36,362,365,385],return_par:301,return_prototyp:137,return_puppet:168,return_str:[30,281,377],return_tagobj:365,return_tupl:[36,213,362],returnvalu:[22,54],reus:[116,118,381],rev342453534:390,reveal:[83,120,206],reveng:124,reverend:201,revers:[20,22,53,58,60,82,94,96,138,139,142,171,187,198,252,273,281,288,295,304,359,362,364,365,367,382,416],reverseerror:[314,323],reversemanytoonedescriptor:[171,295,382],reverseproxyresourc:359,revert:[11,53,139,155,179,287],review:[9,20,73,75,84,88,108,122],revis:121,revisit:[2,374],reviu:28,revok:100,revolutionari:11,reward:128,rework:[94,114,121],rewrit:53,rfc1073:330,rfc858:336,rfc:[330,336],rfind:367,rgb:[60,116,367],rgbmatch:367,rgh:116,rhel:145,rhello:30,rhost:194,rhostmush:[69,72,99],rhs:[92,100,190,193],rhs_split:[182,188,190],rhslist:190,ricardo:390,riccardomurri:390,rich:[77,99,143,144,371],richard:144,rick:41,rid:[98,115],riddanc:55,riddick:225,ride:138,right:[0,3,4,5,8,9,15,22,28,30,32,33,36,41,42,49,51,52,53,54,64,75,79,80,82,83,85,87,91,92,93,94,96,98,99,100,106,107,108,111,112,113,114,116,117,120,121,124,126,130,135,138,139,141,142,145,146,149,151,154,155,176,179,182,190,192,194,196,201,205,209,216,218,224,225,227,232,233,240,260,265,269,270,271,273,281,282,292,301,304,354,367,368,372,376,390,391],right_justifi:41,rightmost:[83,282],rigid:99,rindex:367,ring:[118,242],ringmail_armor:13,rise:[20,101],risen:101,risk:[30,52,85,99,121,123,130,149,155,181,192,390],rival:82,rjust:[30,367,377],rm_attr:182,rnormal:60,rnote:192,road:[20,80,82,138,175],roam:[120,176,269],roar:82,robot:141,robust:[106,107,158],rock:[67,129,176],rocki:120,rod:176,role:[17,87,99,107,115,121,127,146,256,443],roleplai:[31,76,87,99,121,122,127,129,130,144,213,243,443],roll1:127,roll2:127,roll:[78,79,100,107,117,122,123,127,129,130,149,213,256,257,258,259,260,357],roll_challeng:127,roll_dic:213,roll_dmg:127,roll_hit:127,roll_init:[256,257,258,259,260],roll_result:213,roll_skil:127,roller:[79,122,123,127,129,209,213,443],rom:[144,443],roof:182,room1:8,room56:14,room:[3,8,13,14,15,16,18,19,20,22,23,33,35,41,42,46,48,49,50,55,58,69,72,74,76,77,80,82,83,86,87,88,91,97,98,99,101,106,107,109,110,111,113,114,115,116,117,118,120,126,127,129,130,135,136,137,138,140,141,149,159,165,166,173,174,175,176,180,182,188,193,199,204,206,213,215,216,217,218,221,223,224,231,243,249,250,251,256,257,258,259,260,265,267,268,269,270,272,273,275,276,278,281,282,283,284,291,296,304,318,346,368,388,410,416,431,443],room_flag:98,room_lava:98,room_replac:216,room_typeclass:[273,388,431],room_x_coordin:83,room_y_coordin:83,room_z_coordin:83,roombuildingmenu:[77,204],roomnam:[100,182],roomref:138,rooms_with_five_object:111,roomstat:218,roomviewset:416,root:[0,2,4,5,6,7,9,10,14,33,37,53,58,67,73,76,77,85,88,102,104,112,134,142,143,146,149,151,154,155,157,165,166,270,296,301,314,359,371,396,409,421,443],rose:[13,36,37,48,110,111,118],roster:[76,122,256,257,258,259,260],rosterentri:76,rot:8,rotat:[18,113,218,383],rotate_flag:218,rotate_log_fil:383,rotatelength:383,rough:[85,121],roughli:[100,121,390],round:[5,17,30,242,253,260,345,376,377],rounder:242,rout:[51,81,83,98,109,138,168,275,281,282],router:[155,412,415,443],routerlink:83,routermaplink:[83,282],routin:[243,294,349,387,390],row:[51,56,60,67,75,81,82,85,88,100,102,111,129,132,139,281,284,376,390],rpcharact:243,rpcommand:243,rpg:[100,103,113,114,121,127,213,260,443],rpi:144,rplanguag:[122,165,166,199,243,443],rpm:149,rpobject:243,rpsystem:[58,85,122,165,166,199,239,242,443],rpsystemcmdset:243,rred:367,rsa:[334,335],rspli8t:107,rsplit:[130,367],rss2chan:[26,108,156,187],rss:[9,144,161,165,166,169,187,195,310,319,322,332,443],rss_enabl:[156,187],rss_rate:169,rss_update_interv:187,rss_url:[156,169,187],rssbot:169,rssbotfactori:333,rsschan:187,rssfactori:333,rssreader:333,rst:443,rstop:182,rstrip:[107,367],rsyslog:246,rtest2:60,rtext:[106,377],rthe:77,rthi:[60,116],rtype:359,rubbish:179,rubbl:83,rubi:88,rudimentari:269,ruin:[120,224,271],rule:[4,8,11,14,15,22,33,55,60,87,91,100,113,117,121,122,128,139,144,204,210,241,242,253,256,257,260,288,368,443],rulebook:[123,129],rumor:31,rumour:120,run:[0,2,5,6,9,10,11,12,13,14,15,16,18,19,20,25,28,30,31,33,40,41,42,47,48,49,50,51,52,53,54,62,64,67,71,75,76,78,80,82,83,85,86,88,91,92,93,94,98,99,101,102,104,106,107,108,109,111,113,114,115,116,117,119,120,121,122,123,124,126,127,130,132,134,138,139,140,141,142,144,145,146,147,148,149,151,153,155,158,159,162,163,165,168,169,173,174,176,177,181,182,187,188,189,192,193,196,209,217,232,233,243,246,250,254,256,257,258,259,260,268,273,281,282,291,292,296,300,301,303,304,307,308,309,314,318,320,324,331,332,339,343,345,348,352,353,357,359,364,367,368,372,374,375,377,378,383,387,388,390,416,441,442,443],run_async:[54,390],run_connect_wizard:314,run_custom_command:314,run_dummyrunn:314,run_evscaperoom_menu:217,run_exec:374,run_exec_then_goto:374,run_init_hook:352,run_initial_setup:352,run_menu:314,run_option_menu:217,run_start_hook:[48,364],rundown:119,runexec:374,runexec_kwarg:374,runnabl:41,runner:[2,5,7,270,345,443],runsnak:5,runsnakerun:5,runtest:[193,202,211,222,233,248,252,266,279,340,350,382,388,395,414,425,431],runtim:[19,22,55,101,177,204,272,378,390],runtimeerror:[127,168,169,209,229,232,235,241,242,253,280,283,300,332,362,374,377,390],runtimewarn:[280,300],rusernam:28,rush:94,russian:64,rusti:[49,58,106],ruv:2,ryou:77,s3boto3storag:201,s3boto3storagefil:201,s3boto3storagetest:202,s3boto3testcas:202,sad:[141,337,374],sadli:194,safe:[0,6,11,20,37,52,53,78,80,83,88,95,98,105,122,123,141,151,159,161,168,179,203,292,309,323,355,359,364,368,371,377,381,390,443],safe_convert_input:390,safe_convert_to_typ:[30,390],safe_ev:390,safe_join:201,safer:[14,55],safest:[44,75,155,364],safeti:[12,37,48,98,122,130,155,182,203,295,368,443],sai:[0,5,8,9,11,13,15,17,18,19,20,22,26,28,33,37,39,41,48,50,51,53,54,55,60,62,72,74,75,77,80,83,88,92,94,96,97,98,99,100,101,102,107,108,109,111,114,116,117,122,123,124,126,127,129,130,135,136,139,143,149,155,176,188,196,203,205,213,216,218,225,235,242,243,253,254,265,271,296,374,377],said:[0,8,28,46,54,65,75,77,80,81,82,90,97,99,107,114,116,122,123,136,142,174,187,191,243,273,281,296,326,362,364,374],sake:[14,73,99,116,121,123,124,139,194,214,440,441],sale:106,salt:[79,209],same:[0,3,5,6,7,8,9,11,12,13,14,15,16,18,19,20,22,27,30,31,32,33,34,35,37,39,41,42,44,46,47,48,50,52,53,54,55,56,57,58,60,62,63,64,65,67,68,69,70,75,76,77,78,82,83,84,85,87,88,91,93,94,97,98,99,100,101,102,104,106,107,108,109,111,112,113,114,115,116,117,118,123,124,126,127,129,130,134,138,139,141,142,143,146,149,151,155,156,157,159,162,163,168,173,174,175,176,177,180,182,187,190,191,192,193,194,201,202,204,206,209,212,218,219,223,224,227,231,232,236,241,242,243,249,251,253,254,256,257,258,259,260,269,271,272,273,275,282,284,286,291,296,300,301,304,305,309,318,323,335,338,339,353,354,355,357,359,362,363,364,365,367,368,370,374,375,376,377,378,383,384,390,393,399,406,416,430,441,443],sampl:[2,98,145,157,254],san:227,sand:[101,210],sandi:82,sane:[1,83,85,121,144,282,441],sanit:[430,441],saniti:[8,76,81,82,83,116,384],sarah:[72,188],sat:[74,91,218],satisfi:[69,190,362],satur:158,sauc:116,save:[2,3,6,11,16,19,22,27,28,34,35,36,37,41,42,44,45,46,47,48,50,53,67,75,76,77,80,88,91,94,98,108,110,113,114,116,129,130,141,147,148,151,157,158,163,168,179,182,192,196,198,202,204,232,242,292,295,296,298,300,301,305,307,308,309,312,319,332,347,352,359,362,364,371,372,381,384,385,386,390,398,399,400,403,404,406,443],save_a:[400,402,403,404,405],save_as_new:[399,406],save_buff:372,save_data:384,save_for_next:[22,177],save_handl:384,save_kwarg:385,save_model:[398,400,403,404],save_nam:309,save_on_top:[400,402,403,404,405],save_prototyp:300,save_recip:240,savefunc:[27,372,385],savehandl:385,saver:371,saverdict:371,saverlist:371,saverset:371,saveyesnocmdset:372,savvi:124,saw:[54,80,102,114,116],say_text:136,saytext:243,scale:[7,50,60,85,99,113,121,127,146,242,442],scalewai:155,scam:123,scan:[83,145,173,269,271,281,282,284],scarf:206,scari:[114,116],scatter:[258,368],scedul:378,scenario:[100,279],scene:[6,13,32,41,46,60,87,91,117,120,123,127,129,139,241,253,271,304,309,381],schedul:[19,101,212,232,308,378],schema:[11,48,67,88,90,390,443],scheme:[22,60,67,93,116,149,182,192,367],school:123,sci:83,scienc:81,scientif:144,scipi:[83,282],scissor:[79,129],scm:76,scope:[32,50,87,88,94,121,122,123,126,142,241,370],score:[100,219,390,443],scraper:436,scratch:[9,10,53,62,80,99,100,122,123,130,134,149,217,253,283,318],scream:120,screen:[6,22,24,28,29,31,32,41,42,44,56,60,63,83,104,106,113,115,122,141,157,159,194,214,227,260,319,334,375,377,390,398,443],screenheight:[32,319],screenread:[26,32,194,319,342,343],screenshot:141,screenwidth:[32,177,319],script:[2,5,7,10,13,14,15,19,24,26,30,33,34,35,37,41,44,45,46,47,48,49,51,67,69,78,83,86,87,98,99,101,106,108,109,112,113,114,118,120,123,124,129,135,137,140,141,149,152,155,158,159,163,165,166,168,169,181,182,192,197,198,199,203,212,215,224,228,229,235,240,241,242,250,256,257,258,259,260,262,265,271,273,283,295,296,300,301,314,347,352,368,369,370,377,378,385,387,388,390,396,397,410,413,416,421,431,443],script_copi:303,script_search:303,script_typeclass:[266,388,431],scriptadmin:404,scriptattributeinlin:404,scriptbas:307,scriptclass:306,scriptdb:[48,86,165,304,361,404,410,413],scriptdb_db_attribut:404,scriptdb_db_tag:404,scriptdb_set:[171,295,362,365],scriptdbfilterset:[410,416],scriptdbmanag:[303,304],scriptdbseri:[413,416],scriptdbviewset:416,scriptform:404,scripthandl:[165,166,302,443],scriptlistseri:[413,416],scriptmanag:303,scriptnam:[182,369],scripttaginlin:404,scroll:[6,29,31,112,116,130,149,375],scrollback:18,scrub:355,sdesc:[78,98,122,239,243],sdesc_regex:243,sdescerror:243,sdeschandl:243,sdk:149,sea:[82,120],seal:122,seamless:243,seamlessli:40,search:[3,8,11,12,14,18,22,26,27,30,31,35,36,37,41,42,48,64,74,75,76,77,83,87,88,91,95,100,103,108,111,112,113,114,115,116,119,123,124,126,127,129,130,134,142,159,165,166,168,170,173,175,177,182,187,189,196,197,203,218,221,231,236,240,243,256,257,258,259,260,271,273,275,281,282,284,286,287,288,289,291,294,296,300,301,303,306,320,362,363,364,365,366,367,370,372,377,390,410,419,443],search_:[19,111,118],search_account:[19,45,86,100,118,165,170,296,387],search_account_tag:387,search_at_multimatch_input:296,search_at_result:[243,296],search_channel:[19,86,165,187,197,387],search_channel_tag:387,search_field:[189,398,400,402,403,404,405,406],search_for_obj:182,search_help:[19,31,86,165,287],search_help_entri:387,search_helpentri:287,search_index_entri:[177,179,180,181,182,187,188,189,190,191,192,193,194,203,204,205,206,209,210,213,214,216,224,225,226,230,236,239,240,243,249,250,251,254,256,257,258,259,260,265,269,270,271,272,275,286,288,289,296,345,372,374,375],search_messag:[19,35,86,165,197,387],search_mod:243,search_multimatch_regex:296,search_object:[13,14,18,19,48,82,86,114,116,118,138,165,168,294,387],search_object_attribut:118,search_objects_with_prototyp:300,search_prototyp:300,search_script:[19,42,83,86,165,303,387],search_script_tag:387,search_tag:[46,74,86,111,118,165,387],search_tag_account:46,search_tag_script:46,search_target:236,searchabl:[112,231],searchdata:[168,243,294,296,387],searching_cal:443,season:[78,121,122,124,224,443],seat:121,sec:[32,54,94,101,212,326,378],secmsg:383,second:[5,8,13,15,19,20,22,28,30,33,39,41,42,47,54,56,58,60,67,68,75,77,83,85,91,92,94,96,101,102,105,106,107,108,114,116,118,122,129,130,137,138,139,140,142,149,155,158,159,163,168,169,174,182,187,189,193,209,212,223,231,232,235,243,250,253,256,257,258,259,260,262,269,281,291,296,301,308,309,314,319,328,333,346,357,367,370,374,377,378,383,390,391],secondari:[104,354],secondli:[37,110],secreci:11,secret:[76,113,121,150,152,213,314,443],secret_kei:[76,201],secret_key_nam:201,secret_set:[76,90,113,146,150,314],sect_insid:81,section:[0,2,5,8,13,16,20,22,25,28,30,31,33,37,42,48,50,51,53,58,62,67,70,76,77,82,83,85,90,91,92,94,96,100,101,102,103,109,111,112,114,115,116,118,119,123,141,146,149,154,155,157,162,189,224,242,296,301,367,368,374,391,410,443],sector:81,sector_typ:81,secur:[0,13,14,30,33,41,60,69,77,99,106,130,141,142,149,155,161,165,166,177,181,192,196,199,201,286,288,296,334,364,377,383,390,430,443],secure_attr:33,secure_url:201,security_token:201,security_token_nam:201,sed:2,sedat:253,see:[0,3,4,5,7,8,9,10,11,12,13,14,15,18,19,20,21,22,25,27,28,29,30,31,32,33,35,36,37,39,41,42,44,47,48,50,51,52,53,54,55,57,58,60,62,64,67,68,69,70,73,75,76,77,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,104,105,107,108,109,111,112,113,114,115,116,117,119,120,122,123,124,126,129,130,132,134,135,136,137,138,139,140,141,142,145,146,149,150,151,152,153,154,155,156,157,158,159,163,168,177,179,181,182,187,188,189,190,192,193,194,196,199,201,203,204,209,210,214,216,218,221,223,227,229,236,240,241,242,243,247,250,251,253,254,256,257,258,259,260,262,265,269,271,272,273,275,280,281,282,284,286,288,289,295,296,308,312,314,316,317,325,326,327,328,330,334,335,337,339,341,342,343,345,346,354,355,359,362,367,370,371,372,373,376,377,385,386,390,393,394,424,430,435,438,441,442,443],seed:[79,209,211,282],seek:[120,218,292,383],seem:[20,41,51,77,90,96,98,119,121,124,126,130,138,147,149,154,163,194,362,368],seen:[8,11,20,28,44,58,62,75,77,80,81,82,85,94,99,100,102,104,107,108,111,114,115,117,119,126,137,138,139,204,326,376],sefsefiwwj3:76,segment:[138,359],seldomli:[177,193],select:[7,11,12,19,20,28,39,44,50,51,52,53,67,74,77,82,102,106,109,122,130,137,141,148,149,159,174,175,180,217,254,257,364,372,374,408,413,443],selet:374,self:[3,8,12,13,14,19,20,22,27,28,33,36,37,39,41,42,47,48,50,54,62,64,67,72,75,76,77,79,81,83,85,91,92,93,94,95,96,97,98,99,100,101,104,105,106,108,109,114,115,116,117,118,122,123,126,127,129,130,135,136,137,138,140,142,149,152,153,168,169,171,173,175,176,177,179,182,183,187,190,192,193,194,196,198,203,204,205,206,209,210,213,216,217,218,221,224,225,229,236,239,240,243,253,254,256,257,258,259,260,262,265,268,269,270,271,272,273,275,280,283,286,291,296,308,312,314,316,317,321,325,326,332,334,335,337,339,341,342,343,345,353,354,355,362,364,365,367,372,374,375,377,381,384,385,386,390,424,443],self_fire_damag:210,self_pid:390,self_refer:13,selfaccount:100,selfself:42,sell:[106,122,123,143,203],semi:[5,109,116,140,223,242],semicolon:[33,292,370],send:[5,12,18,19,22,28,29,30,32,33,37,39,42,44,45,47,49,51,52,53,55,65,70,74,77,79,83,88,89,92,94,100,104,107,108,113,115,118,123,127,129,130,136,137,139,141,151,152,158,161,163,168,169,176,177,180,187,193,196,197,198,201,203,209,218,225,226,236,243,247,260,262,264,268,269,281,282,296,308,309,311,314,316,317,319,323,324,325,326,327,329,332,333,334,336,337,338,340,342,343,345,346,353,354,355,356,367,370,371,374,376,390,394,443],send_:[62,65,332],send_adminportal2serv:324,send_adminserver2port:311,send_authent:325,send_channel:[325,326],send_default:[62,65,325,326,332,334,337,342,343],send_defeated_to:269,send_emot:243,send_functioncal:323,send_game_detail:316,send_heartbeat:325,send_instruct:314,send_mail:236,send_msgportal2serv:324,send_msgserver2port:311,send_p:326,send_privmsg:326,send_prompt:[65,334,337,342,343],send_random_messag:262,send_reconnect:326,send_request_nicklist:326,send_status2launch:324,send_subscrib:325,send_testing_tag:268,send_text:[62,65,334,337,342,343],send_to_online_onli:[18,196],send_unsubscrib:325,sender:[18,35,45,168,169,196,197,198,203,218,243,264,296,325,356,370,381,387,400],sender_account_set:171,sender_extern:198,sender_object:356,sender_object_set:295,sender_script_set:304,sender_str:196,senderobj:370,sendlin:[334,337,342],sendmessag:[62,225],sens:[20,33,37,52,53,54,64,67,77,83,84,98,100,117,126,138,146,175,253,265,370,371,374],sensibl:[18,31,155],sensit:[13,28,31,33,39,100,111,170,197,201,204,212,224,232,247,248,284,287,363,365,378,387],sensivit:241,sent:[5,18,28,30,32,35,44,45,51,53,65,68,70,92,100,102,107,113,116,151,168,169,173,187,193,196,197,198,204,214,218,225,232,236,247,264,266,272,296,311,314,316,319,323,324,325,326,334,338,342,353,355,362,374,387,413,443],sentenc:[58,64,80,107,218,235,242,243,390],senwmaplink:[83,282],sep:[64,367,390],sep_kei:[77,204],separ:[5,7,11,13,14,15,18,20,22,31,33,34,36,37,40,42,44,46,47,51,53,58,62,67,72,74,78,79,80,83,84,85,88,94,99,100,101,106,107,108,109,111,115,116,117,121,122,130,134,138,139,141,145,146,152,153,154,156,158,174,176,177,182,188,189,190,192,193,204,209,232,235,236,242,243,253,254,256,257,258,259,260,271,273,277,281,282,284,287,292,294,295,296,300,305,309,333,338,343,355,367,368,370,373,377,387,390,394,399,443],separatli:94,sepat:209,seq:36,sequenc:[14,15,16,22,33,36,37,52,54,70,85,88,104,113,120,123,126,139,177,181,193,196,209,212,221,243,281,292,312,318,367,368,374,376,389,390],sequenti:123,seri:[4,11,18,28,60,116,122,123,124,126,134,144,376],serial:[13,50,65,165,166,299,308,309,332,371,384,386,390,396,398,400,403,404,409,416,443],serializ:343,serialized_str:[398,400,403,404],serializer_class:416,seriou:[96,163],serious:149,serv:[52,53,65,73,81,82,88,108,113,117,118,123,151,158,159,175,201,258,343,359,368,370,428],server:[0,2,5,6,7,8,9,11,12,13,14,16,18,19,20,22,25,26,28,30,31,32,33,34,37,41,42,45,47,48,50,51,52,53,54,55,57,62,63,65,67,68,70,73,75,76,79,82,83,84,85,86,87,88,89,90,91,92,93,94,98,99,100,101,102,104,107,108,112,114,115,116,117,119,120,123,124,126,127,129,134,136,138,141,142,143,144,148,149,150,151,152,153,154,157,158,163,165,166,168,169,176,180,182,187,192,194,196,199,201,204,207,209,214,216,224,232,239,243,244,245,246,249,250,253,269,270,271,273,276,277,283,286,296,303,304,305,307,309,360,364,368,370,371,374,378,381,383,390,396,397,413,421,442,443],server_connect:332,server_disconnect:332,server_disconnect_al:332,server_epoch:[19,378],server_l:324,server_logged_in:332,server_nam:159,server_pid:[324,390],server_receive_adminportal2serv:311,server_receive_msgportal2serv:311,server_receive_statu:311,server_reload:[305,309],server_run:314,server_runn:352,server_servic:390,server_services_plugin:[62,113,159],server_services_plugin_modul:62,server_session_class:44,server_session_sync:332,server_st:314,server_twistd_cmd:324,server_twisted_cmd:324,serverconf:[180,309,443],serverconfig:[308,309,320,321],serverconfigadmin:405,serverconfigmanag:[320,321],serverfactori:[324,334,337],serverload:[26,192],serverlogobserv:383,servermsg:383,servernam:[32,53,76,90,145,148,155,159],serverprocess:[26,192],serversess:[44,62,108,165,166,247,292,310,332,355,362,443],serversessionhandl:[44,62,355,443],serverset:[33,187,291],servic:[11,26,55,62,108,113,141,146,151,152,155,157,158,159,163,165,166,192,201,310,311,314,315,323,324,331,352,359,390,443],sessdata:[354,355],sessid:[12,22,44,130,295,296,311,323,324,332,355],session:[8,12,16,20,22,24,26,28,30,32,34,37,39,42,45,55,62,68,86,99,104,105,107,108,112,114,115,123,130,147,157,165,166,168,169,170,171,173,174,175,177,179,180,183,185,190,194,214,217,225,226,246,247,248,268,295,296,298,299,300,305,310,311,319,323,324,325,326,332,333,334,337,342,343,352,353,355,357,372,374,375,377,390,391,413,443],session_data:355,session_from_account:355,session_from_sessid:355,session_handl:[44,86,165],session_id:413,session_portal_partial_sync:355,session_portal_sync:355,sessioncmdset:[20,26,115,185],sessionhandl:[62,65,165,166,168,296,310,319,325,326,332,333,353,354,443],sessionid:332,sessions_from_account:355,sessions_from_charact:355,sessions_from_csessid:[332,355],sessions_from_puppet:355,sessionsmain:86,sesslen:296,set:[0,2,3,5,6,9,10,12,13,14,15,16,17,18,19,21,22,24,25,26,27,29,30,31,32,35,36,37,39,41,42,44,45,46,48,49,50,51,53,54,55,56,57,58,60,62,63,64,65,67,69,70,71,72,73,75,77,78,79,80,82,83,84,85,86,87,88,91,92,94,95,96,97,98,99,100,102,105,106,107,108,109,110,111,112,113,115,116,117,121,124,126,128,129,132,134,135,137,138,139,141,142,145,146,147,149,151,152,154,157,161,162,163,165,167,168,169,171,173,174,175,176,177,179,180,182,183,184,185,186,187,189,190,193,194,195,196,201,202,204,205,206,207,209,210,211,212,213,214,216,217,218,219,221,222,224,225,226,230,232,235,239,240,242,243,246,249,250,252,253,254,256,257,258,259,260,265,266,268,269,270,271,272,273,275,276,277,278,279,281,282,284,286,291,292,294,295,296,299,300,301,306,307,308,309,311,313,314,318,319,320,321,324,325,327,328,330,331,334,336,337,339,340,345,346,348,350,352,353,354,355,357,359,360,362,363,364,365,367,368,369,370,371,372,373,374,375,376,377,378,381,382,383,384,385,386,387,388,389,390,391,399,402,403,405,406,411,412,414,415,416,419,423,430,431,438,443],set_active_coordin:273,set_al:269,set_alias:177,set_atribut:416,set_attr:182,set_attribut:416,set_cach:362,set_character_flag:218,set_class_from_typeclass:364,set_dead:269,set_desc:187,set_descript:28,set_detail:[224,271],set_flag:[218,219],set_gamedir:314,set_kei:177,set_lock:187,set_log_filenam:196,set_nam:28,set_password:168,set_posit:218,set_task:232,set_trac:[3,165],setcolor:104,setdesc:[26,99,108,188,249],setflag:[216,218],setgend:226,sethelp:[26,31,108,109,189,286],sethom:[26,108,182],setlock:249,setnam:62,setobjalia:[26,182],setperm:180,setpow:443,setspe:250,sett:156,settabl:[32,67,114,337],setter:96,settestattr:27,settingnam:33,settings_chang:45,settings_default:[8,86,90,112,114,159,165,166,383,390,443],settings_ful:159,settings_mixin:[5,165,166,310,344,443],settl:[82,129],setup:[0,5,6,8,11,16,31,49,53,62,64,67,72,83,85,100,106,121,129,137,151,152,154,157,159,163,168,179,187,193,202,211,212,222,233,252,265,266,268,271,279,289,296,307,318,331,340,345,349,350,352,359,362,364,381,382,388,414,431,442,443],setup_str:349,setuptool:[149,154],sever:[2,3,13,15,20,22,27,29,33,39,41,42,48,49,51,53,57,70,75,77,83,85,94,98,99,101,102,111,116,119,122,123,128,129,144,159,181,182,190,192,224,231,232,269,271,296,340,341,365,370,390,443],sewag:83,sex:226,shadow:31,shall:[139,142],shaman:[41,99],shape:[77,82,96,100,109,121,210,273,376],sharabl:41,share:[2,3,18,20,33,44,46,48,52,67,73,76,80,84,88,92,99,113,119,123,129,141,149,150,155,158,231,232,301,309,345,362,363,365,376,390,398,413,416,424,443],shared_field:413,sharedloginmiddlewar:424,sharedmemorymanag:[363,380],sharedmemorymodel:[198,288,362,364,381,382,443],sharedmemorymodelbas:[171,198,288,295,304,362,364,381,382],sharedmemorystest:382,sharp:210,shaw:144,she:[22,31,58,75,77,98,107,122,139,204,226,242,377,393,394],sheer:182,sheet:[28,51,85,122,123,141,142,146,373,443],sheet_lock:100,shell:[0,2,5,9,36,48,67,69,92,99,100,116,146,149,151,154,155,157,158,163,334,362],shell_plu:0,shield:[67,94],shift:[15,16,19,69,83,232,270,287,390],shiftroot:270,shine:[83,91,271],shini:[49,390],shinier:49,ship:[82,87,88,109,120,154],shire:101,shirt:206,shoe:206,shoot:[91,259,260,373],shop:[28,69,99,123,443],shop_exit:106,shopcmdset:106,shopkeep:[103,122],shopnam:106,shopper:106,short_descript:148,shortcom:106,shortcut:[4,13,18,19,20,22,30,45,48,72,75,77,79,85,94,102,107,112,116,129,132,141,142,146,157,165,169,176,177,182,187,204,209,229,273,292,296,384,390,443],shorten:[3,48,80,301,413],shorter:[48,62,69,83,85,114,126,135,136,140,159,196,242,362,363,370,383],shortest:[83,96,243,275,279,281,282],shorthand:[37,139,182],shortli:[75,77,126],shortsword:111,shot:259,should:[0,3,5,6,7,8,9,10,11,12,13,14,15,16,18,19,20,22,28,30,31,32,33,35,37,39,41,42,44,45,46,47,48,50,51,53,54,55,56,57,58,60,62,63,64,65,67,68,69,70,72,73,74,75,76,77,78,79,80,82,83,84,85,87,88,90,92,94,96,99,100,101,102,104,105,106,107,108,109,111,113,114,115,116,117,118,119,120,121,122,124,126,127,129,130,132,134,138,139,141,142,145,146,147,149,150,151,153,154,155,156,157,158,159,162,163,168,169,171,173,175,176,177,179,181,182,183,186,187,189,190,192,193,194,196,198,201,202,204,206,209,210,211,212,216,218,219,221,223,224,229,232,235,236,239,240,241,242,243,246,252,253,256,257,258,259,260,268,269,271,272,275,277,279,281,282,283,284,286,291,292,295,296,298,300,301,304,307,308,309,312,313,314,318,321,325,331,334,337,338,340,342,343,345,346,352,353,354,355,357,358,360,362,364,365,367,368,370,371,372,374,375,376,377,378,383,384,385,386,388,390,391,398,399,406,430,431,436,443],should_join:196,should_leav:196,should_list_top:189,should_show_help:189,shoulddrop:[260,296],shoulder:[100,206],shouldget:[260,296],shouldgiv:[260,296],shouldmov:[256,257,258,259,260,296],shouldn:[14,75,77,91,94,100,139,204,232,235,259,296,345],shouldrot:383,shout:[94,216,218],shove:91,show:[0,3,6,7,8,9,11,13,14,15,18,19,22,25,28,29,30,31,42,44,50,51,53,55,58,59,60,62,67,72,75,77,78,79,80,81,82,83,84,85,87,88,89,95,96,99,100,101,102,104,105,106,107,108,109,113,114,115,116,117,119,120,121,122,123,125,126,127,128,129,131,133,134,135,136,137,139,141,142,147,148,149,151,152,155,156,158,159,163,168,179,180,182,187,188,189,190,192,194,203,205,206,213,214,216,224,225,227,239,253,254,259,260,265,271,272,273,275,279,281,282,284,286,296,298,300,301,312,314,323,362,372,374,383,384,385,390,394,430,443],show_change_link:398,show_foot:375,show_map:81,show_non_edit:300,show_non_us:300,show_valu:227,show_version_info:314,show_warn:314,showcas:[20,82,113,120],shown:[25,28,31,41,42,50,59,75,76,77,81,90,92,94,99,101,114,126,138,141,148,177,180,187,191,193,204,206,209,223,241,243,253,265,270,281,282,296,314,374,375,419],showtim:101,shrink:[115,376],shrug:80,shuffl:19,shun:[0,69,155],shut:[5,51,75,90,94,116,157,159,168,192,296,307,309,314,316,323,324,331,332,352,355,443],shutdown:[5,20,26,42,44,55,57,100,108,163,168,169,192,303,309,314,323,324,331,352,353,364,370,374],shy:[0,72,121,124],sibl:[13,42,54,99,117],sid:180,side:[2,8,13,30,32,42,44,46,51,53,65,75,78,81,83,85,100,107,111,122,123,127,139,141,147,168,169,171,182,188,190,198,203,213,249,282,288,295,304,311,319,323,324,332,335,338,339,342,353,354,355,362,364,365,367,376,382],sidebar:[53,128,131,443],sidestep:57,sidewai:376,sigint:314,sign:[7,15,47,65,75,80,83,107,109,111,113,118,130,140,155,187,218,224,281,296,309,362,367,391],signal:[5,24,163,165,166,256,257,258,259,260,280,310,314,337,343,345,381,443],signal_acccount_post_first_login:45,signal_account_:45,signal_account_post_connect:45,signal_account_post_cr:45,signal_account_post_last_logout:45,signal_account_post_login:45,signal_account_post_login_fail:45,signal_account_post_logout:45,signal_account_post_renam:45,signal_channel_post_cr:45,signal_helpentry_post_cr:45,signal_object_:45,signal_object_post_cr:45,signal_object_post_puppet:45,signal_object_post_unpuppet:45,signal_script_post_cr:45,signal_typed_object_post_renam:45,signatur:[22,30,127,177,221,229,253,280,286,308,312,314,316,317,325,334,335,337,339,342,343,362,367,374,385,386,424],signature_vers:201,signed_integ:391,signedinteg:384,signedon:326,signifi:[15,291,362],signific:[6,30,83,193,377],significantli:27,signup:90,silenc:[187,316],silenced_system_check:8,silent:[13,54,101,136,180,187,265,318,326],silli:[37,41,111],silmarillion:118,silvren:155,similar:[0,7,13,14,22,28,31,37,48,49,51,52,53,67,72,74,75,77,83,87,88,91,92,100,109,114,120,121,127,134,138,151,155,168,177,179,193,196,204,209,225,242,256,257,258,259,260,273,288,296,355,365,370,374,390,413,439,443],similarli:[46,83,100,101,155,253,257,272,399,406,413],simpl:[0,12,13,14,15,16,17,20,22,25,27,30,31,32,37,39,41,44,46,53,54,58,62,64,67,68,69,73,75,76,79,80,81,82,83,85,87,88,89,90,92,93,95,96,98,99,100,102,104,106,107,108,114,115,117,118,120,121,122,126,127,128,129,130,131,135,136,137,139,140,141,151,155,156,157,158,182,196,201,203,204,205,209,210,214,216,218,224,225,226,231,236,240,241,242,243,249,250,251,253,254,256,257,258,259,260,262,264,265,269,270,271,273,279,285,295,296,301,307,324,333,335,362,368,369,374,377,390,427,428,430,443],simple_ev:30,simpledoor:[165,166,199,443],simpleev:30,simplemu:147,simpleobjectdbseri:413,simpler:[16,54,98,181,182,371,439],simpleresponsereceiv:316,simplest:[13,39,53,94,100,108,127,129,155,176,368,391],simpli:[8,9,11,13,14,17,20,28,33,39,41,46,48,53,55,60,62,65,74,77,81,84,85,91,92,94,96,100,104,106,109,112,115,121,122,126,127,130,136,138,140,145,146,149,152,153,158,159,168,175,176,177,193,194,196,204,214,224,233,243,250,254,256,257,258,259,260,264,265,270,281,286,288,296,332,362,364,368,369,373,375,390],simplic:[58,77,96,139,194,214,270],simplif:[123,129],simplifi:[5,54,64,82,102,114,129,136,157,229],simplist:[51,129,130,140,242,251],simul:[5,22,117,123,127,250],simultan:[68,100,123,129,294,390],sinc:[0,3,5,6,8,11,13,14,15,18,19,20,22,25,27,28,30,31,32,33,34,35,37,39,42,47,48,52,53,54,57,58,60,62,64,65,67,68,73,75,76,77,81,82,83,85,87,88,90,91,92,93,94,96,97,98,99,100,101,102,106,107,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,126,129,130,132,136,138,139,141,142,146,148,151,155,157,159,163,168,169,171,175,176,177,182,190,191,192,193,197,203,204,205,209,212,218,224,236,243,254,256,257,258,259,260,265,270,271,277,281,282,291,294,296,300,301,305,308,309,314,316,319,331,336,338,352,353,355,357,362,363,364,368,369,370,372,374,377,378,381,383,386,387,388,390,399,406,430],singl:[5,8,9,15,20,22,28,30,35,36,42,44,46,48,54,56,65,68,69,72,75,77,78,82,83,84,85,87,88,97,99,100,111,115,116,117,120,122,123,127,146,151,155,168,180,182,187,188,192,198,204,210,241,246,253,254,256,257,258,259,260,271,272,273,279,281,282,284,296,300,301,308,309,346,353,355,362,363,365,367,368,373,374,376,390,393,430,443],single_type_count:206,singleton:[34,44,47,83,305,308,369,443],singular:[85,100,296,393,395],sink:0,sint:29,sir:80,sit:[15,18,22,39,48,65,87,94,108,113,115,116,117,123,126,130,138,149,155,190,193,196,198,218,221,235,236,243,270,271,282,292,306,309,327,365,370,385,388],sitabl:48,sitat:271,site:[6,17,33,40,50,53,56,82,84,102,141,142,144,145,146,151,152,155,156,157,158,282,359,401,421,443],site_head:[50,421],site_id:53,sitekei:443,sitsondthi:126,sitsonthi:126,sittabl:[218,443],sittablein:126,sitter:126,situ:[13,364,371],situat:[3,11,13,22,30,31,42,44,48,52,64,65,67,75,77,80,84,101,115,118,126,176,177,182,219,231,381],six:[107,127,213,254],sixti:101,sizabl:201,size:[3,6,51,56,69,81,82,83,100,124,147,165,201,202,273,281,282,316,330,367,373,375,376,381,383,390],size_limit:390,skeleton:130,sketch:129,skill:[8,58,78,87,89,93,94,95,103,111,113,116,121,122,127,129,138,141,142,144,163,210,242,243,252,253,284,373,443],skill_combat:127,skill_craft:79,skill_requir:210,skill_rol:210,skillnam:127,skillrecip:79,skim:[111,124],skin:[41,210],skip:[0,7,11,18,20,22,41,47,53,58,68,81,83,101,108,109,111,113,115,117,121,124,154,157,168,181,182,201,210,296,300,362,371,390,408],skip_cal:218,skipkei:343,skippabl:72,skull:41,sky:[42,140],slack:144,slam:225,slash:[53,87,109,119,120,127,129,202,270],slate:[82,115],sleep:[22,30,54,94,123,127],sleepi:13,slew:[127,154,368],slice:[179,367,375],slice_bright_bg:179,slice_bright_fg:179,slice_dark_bg:179,slice_dark_fg:179,slide:[210,265],slider:53,slight:[107,145,212,232],slightli:[3,31,101,122,129,130,144,149,198,224,257,272,398,441],slip:389,slogan:76,sloppi:85,slot:[53,78,100,142,224,225,253,257,259,301,390],slow:[5,19,122,129,192,197,250,269,273,277,282,300,327,333,367,387,390,443],slow_exit:[165,166,192,199,443],slower:[5,42,101,123,155],slowexit:250,slowli:[144,253,442],slug:[177,196,286,288,364,438,441],slugifi:[435,438],slugify_cat:438,small:[5,6,8,9,15,16,22,35,52,56,69,79,82,83,84,87,89,90,92,95,99,100,102,103,104,106,107,120,121,122,123,124,126,130,131,144,149,155,156,209,213,253,259,265,273,275,276,279,281,337,372,373,376,390],smaller:[14,15,56,85,253,279,376],smallest:[39,100,101,155,212,242,253,373,390],smallshield:67,smart:[107,273,282],smarter:41,smartmaplink:282,smartreroutermaplink:282,smartteleportermaplink:282,smash:265,smaug:[108,114,115,117],smedt:393,smell:[83,121,218],smellabl:218,smelli:41,smile:[22,30,114,122,188,216,395],smith:[58,373],smithi:94,smoothi:240,smoothli:142,snake:[53,134],snap:105,snapshot:11,snazzi:143,sneak:292,snippet:[14,20,33,41,52,54,60,87,88,91,108,122,192,323,389,390,443],snonewaymaplink:[83,282],snoop:[151,158],snow:209,snowbal:209,snuff:0,soak:115,social:[87,123,152],socializechat:346,societi:111,sofa:126,soft:[61,88,90,242,443],softcod:[30,72,123,443],softli:143,softwar:[2,11,149,155],solar:101,soldier:[106,117],sole:[78,99,102,169],solid:[60,81,87,124],solo:[113,123,149],solut:[8,15,19,31,47,48,75,76,82,83,92,94,96,98,102,106,107,120,123,126,127,136,138,155,158,191,253,281,282,292,443],solv:[6,19,78,81,82,83,91,97,103,120,121,149,221,240,270,281,443],some:[0,1,2,3,6,7,8,9,11,13,14,15,16,18,19,20,22,26,27,28,30,31,32,33,35,36,37,41,42,44,45,46,47,48,49,50,51,53,55,56,58,60,62,64,65,67,69,70,75,76,77,79,80,81,82,83,84,85,87,88,89,90,91,92,93,94,99,100,101,102,103,105,106,107,108,109,110,111,113,114,115,117,119,120,121,124,125,126,127,128,129,130,132,134,135,136,138,139,141,142,143,144,145,146,147,149,151,153,154,155,158,159,161,162,163,168,176,177,182,184,187,188,191,192,194,196,197,201,203,204,205,209,214,218,221,232,235,241,242,249,253,254,257,258,259,260,265,268,270,271,272,273,282,292,296,300,301,304,316,318,323,326,352,362,364,367,368,373,374,377,378,381,383,384,390,393,394,398,403,416,430,441,443],some_long_text_output:375,some_modul:112,somebodi:75,someclass:112,somehow:[22,36,53,62,70,74,126,127,155,206,372],someon:[22,33,45,47,50,58,75,80,81,94,100,106,108,111,116,124,126,135,136,155,158,168,188,206,265,269,270,296],somepassword:146,someplac:269,someth:[5,8,9,13,15,18,19,22,28,29,30,31,33,37,39,41,42,45,47,48,50,51,52,54,55,58,60,62,65,67,69,72,73,75,76,77,79,80,81,82,83,85,87,88,89,90,92,94,95,96,97,98,99,100,101,102,105,106,107,108,109,111,114,116,117,118,120,121,124,126,127,130,132,141,142,145,146,150,151,152,153,154,155,159,161,168,175,177,182,188,190,193,203,204,206,210,226,235,241,243,250,253,256,257,258,259,260,270,271,272,273,282,292,296,301,353,364,368,374,375,377,384,390,436,443],something_els:42,sometim:[3,5,19,22,27,28,33,39,41,42,53,62,67,77,88,101,107,111,115,116,118,134,163,189,294],sometypeclass:110,somewhat:[8,77,90,99,204],somewher:[11,41,42,48,55,75,83,84,115,126,127,138,155,177,182,196,275,286,288,364,390,443],somon:218,soon:[3,8,13,44,102,121,123,153,157,343,390],sophist:[19,54,69,87,129],sorl:90,sorri:[33,164,292],sort:[13,20,34,39,44,46,53,58,65,73,74,79,81,88,96,102,111,114,115,116,121,127,129,132,135,155,163,203,218,227,253,256,257,258,259,260,271,282,296,301,304,362,363,364,374,390,421,430,435,436,438,439,440,443],sort_kei:343,sort_stat:5,sortkei:5,sought:[168,174,196,286,288,296,362,364],soul:[82,124],sound:[11,33,47,64,65,77,82,84,94,100,105,111,121,122,126,159,242,338],sourc:[1,2,6,8,9,10,11,16,17,19,20,26,30,37,54,55,56,64,68,69,75,76,77,78,80,84,86,87,88,89,90,91,99,112,116,119,120,122,142,144,146,149,151,153,154,165,168,169,170,171,173,174,175,176,177,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,196,197,198,201,202,203,204,205,206,209,210,211,212,213,214,216,217,218,219,221,222,223,224,225,226,227,229,230,231,232,233,235,236,239,240,241,242,243,246,247,248,249,250,251,252,253,254,256,257,258,259,260,262,264,265,266,268,269,270,271,272,273,275,276,277,279,280,281,282,283,284,286,287,288,289,291,292,294,295,296,298,299,300,301,303,304,305,306,307,308,309,311,312,313,314,316,317,318,319,320,321,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,345,346,347,349,350,351,352,353,354,355,357,358,359,362,363,364,365,367,368,369,370,371,372,373,374,375,376,377,378,380,381,382,383,384,385,386,387,388,389,390,391,393,394,395,398,399,400,401,402,403,404,405,406,408,410,411,412,413,414,416,418,421,422,423,424,425,428,430,431,434,435,436,437,438,439,440,441,442,443],source_loc:[92,135,219,270,271,273,296],source_object:[194,214],sourceforg:[327,328,338,341],sourceurl:326,south:[75,77,81,82,83,97,126,138,182,275,281,282,346],south_north:82,southeast:[182,282],southern:82,southwest:[83,109,182,282],space:[13,18,22,25,30,31,33,36,41,42,51,58,60,72,76,77,80,81,82,83,85,91,92,99,107,108,109,115,116,117,119,129,136,139,174,177,182,187,188,189,190,193,194,201,210,239,242,243,260,270,281,282,296,358,364,367,368,373,374,376,377,389,390,394,419,443],spaceship:138,spacestart:389,spaghetti:[14,374],spam:[18,42,55,93,103,129,158,187,357],spammi:[55,129],span:[17,56,69],spanish:64,spare:[256,257,258,259,260,281],sparkly_mag:111,spatial:82,spawen:240,spawn:[5,18,26,35,51,79,83,86,108,112,120,123,137,165,180,182,209,240,257,258,276,279,281,282,283,298,299,300,301,443],spawn_alias:[83,282],spawn_link:[281,282],spawn_nod:281,spawner:[24,37,83,137,165,166,182,258,259,297,299,443],spawng:79,spd:142,speak:[16,18,57,70,75,78,80,123,135,136,139,141,188,218,243,296],speaker:[80,218,242,243],spear:41,special:[0,3,8,11,12,13,14,15,16,18,19,20,22,25,28,30,33,37,39,45,46,48,50,51,52,53,54,57,60,64,65,67,68,70,82,83,84,85,88,92,95,100,102,104,106,109,111,112,113,114,115,116,117,118,122,129,130,142,158,159,169,171,173,176,188,191,216,218,219,223,224,226,243,254,258,259,270,271,273,284,289,292,296,318,319,342,346,362,364,368,374,389,403,443],specic:281,specif:[0,2,3,8,11,12,13,19,20,22,27,28,33,36,37,39,44,45,46,47,48,49,51,55,58,62,68,73,75,76,77,78,79,80,82,83,84,85,86,87,88,90,92,96,98,101,102,105,107,111,112,113,114,116,117,118,120,121,123,129,130,138,139,140,141,142,143,144,146,147,151,155,157,163,168,170,173,180,182,189,192,194,198,199,200,203,204,209,210,216,218,229,230,231,232,236,241,243,275,281,282,283,287,291,294,296,303,305,314,318,319,326,342,343,353,362,364,367,368,372,374,375,376,390,394,399,401,410,441,442],specifi:[8,13,18,19,20,28,31,34,41,44,46,47,53,55,56,57,58,60,65,67,68,77,79,80,81,82,83,85,91,94,96,100,101,107,109,110,114,115,117,118,126,130,132,134,142,148,149,155,156,157,158,173,174,182,189,193,196,204,206,207,209,213,218,224,225,229,231,232,236,240,241,243,253,254,257,258,259,273,275,281,282,291,292,296,299,300,301,305,325,351,362,365,367,368,370,373,374,377,378,384,385,386,390,393,394,410,413,430,438,441],specifici:219,specii:58,spectacular:3,spectrum:123,speech:[216,296],speed:[5,13,36,67,101,105,123,129,142,250,294,301,332,365,387],speedup:300,spefifi:377,spell:[16,41,46,57,93,99,165,166,199,208,254,259,301,443],spell_attack:259,spell_conjur:259,spell_heal:259,spell_nam:259,spellbook:[79,209,210],spellcast:122,spellnam:[210,259],spend:[37,96,107,118,123,124,256,257,258,259,260],spend_act:[256,257,258,259,260],spend_item_us:258,spent:259,sphinx:85,spike:209,spiked_club:209,spin:[52,101,155,193],spit:[116,129,132,209],splashscreen:214,splinter:120,split:[11,20,22,44,76,82,83,92,100,107,115,116,123,130,134,136,138,159,174,190,212,270,273,289,298,340,355,367,368,378],split_nested_attr:182,spoiler:78,spoken:[75,80,122,153,242,243,296],spoof:[151,399,406],spool:149,sport:36,spot:[53,88,99,168,279,282],spread:[5,30,41,89,111,126,127,443],spring:[105,224],sprint:250,sprofil:314,spruce:58,spuriou:443,spy:35,spyrit:147,sql:[2,48,67,88,98,99,118,349,443],sqlite3:[5,8,9,11,67,88,113,130,161,162,390,443],sqlite3_prep:352,sqlite:[9,67,146,352],sqllite:2,sqrt:96,squar:[30,72,85,96],squeez:[67,85],src:[17,33,37,51,54,109,141,154,157,247],srcobj:[177,190],srun:318,srv:2,ssessionhandl:65,ssh:[44,62,65,76,88,92,155,163,165,166,310,322,353,354,443],ssh_interfac:155,ssh_port:155,sshd_config:158,sshfactori:334,sshprotocol:334,sshserverfactori:334,sshuserauthserv:334,ssl:[65,68,88,145,151,165,166,169,187,310,322,326,339,354,443],ssl_context:[335,339],ssl_interfac:155,ssl_port:155,sslcertificatefil:145,sslcertificatekeyfil:145,sslciphersuit:145,sslengin:145,ssllab:145,sslprotocol:[145,335,339],ssltest:145,sslv3:151,sta:373,stab:[94,120,270],stabil:[121,193,242],stabl:[53,62,84,98,157],stabli:[6,309],stack:[14,20,51,121,126,138,175,176,296,300,355,374,443],stackedinlin:398,stackexchang:8,stackoverflow:8,stacktrac:300,staf:69,staff:[18,39,41,50,57,69,76,82,92,99,121,127,130,141,175,284,301,368,443],staffer:[50,76,123],staffernam:76,stage:[2,11,12,82,98,121,130,141,398,400,403],stagger:326,stai:[20,28,48,81,107,116,138,139,149,155,161,273,282],stale:[48,157,308],stale_timeout:308,stalker:436,stall:78,stamina:[95,122,227,253,259],stamp:[19,44,48,51,168,171,180,192,295,304,346,351,364],stanc:[30,123,129,243,296,377,393,443],stand:[8,11,14,17,33,50,67,77,81,82,83,85,91,92,94,98,109,112,116,118,120,122,126,127,129,130,138,141,149,153,155,188,203,216,218,243,269,284,296,304,309,345,365,368,370,376,406],standalon:[151,158],standard:[11,13,16,18,19,27,49,53,60,61,65,68,70,75,76,78,83,88,91,95,99,100,107,111,114,116,129,134,137,139,144,145,149,151,158,165,168,179,213,214,243,272,284,296,334,336,341,358,362,367,376,378,391,415,443],stander:126,stanza:[58,324],stapl:123,star:182,stare:11,start:[3,5,6,7,8,9,10,11,12,14,15,16,18,19,20,22,27,28,30,32,33,34,36,39,41,42,44,45,48,51,52,53,55,56,59,60,62,63,64,65,67,69,75,78,79,81,82,83,85,87,88,89,90,91,92,94,96,97,99,101,102,107,109,111,112,113,114,117,121,122,123,124,126,127,129,130,132,134,137,138,140,141,144,146,148,150,151,153,154,155,156,158,159,161,168,169,174,175,181,182,187,188,189,190,191,192,193,196,203,204,209,212,213,216,217,218,224,225,226,227,232,242,243,253,254,256,257,258,259,260,265,268,269,271,273,281,282,296,298,300,304,306,307,308,309,311,314,316,318,319,324,325,326,327,331,332,333,338,339,345,346,351,352,355,359,363,367,368,369,370,372,374,375,376,377,378,383,390,419,442,443],start_all_dummy_cli:345,start_attack:269,start_bot_sess:355,start_char:377,start_delai:[42,129,137,138,304,309,370],start_direct:282,start_driv:138,start_evennia:314,start_hunt:269,start_idl:269,start_index:187,start_lines1:314,start_lines2:314,start_loc_on_grid:81,start_of_messag:400,start_olc:298,start_only_serv:314,start_open:218,start_ov:28,start_patrol:269,start_plugin_servic:62,start_portal_interact:314,start_posit:218,start_read:218,start_rotat:218,start_serv:324,start_server_interact:314,start_sunrise_ev:101,start_text:254,start_turn:[256,257,258,259,260],start_xi:[83,281],startapp:[67,102,141,142],startclr:377,startcolor:30,startcoord:279,startedconnect:[311,325,326],starter:[76,119,120,134],starthour:92,startnod:[28,106,217,225,268,298,374],startnode_input:[28,217,225,268,298,374],startproduc:316,startservic:[317,359],startset:271,startswith:[31,34,182,193,367],starttupl:334,startup:[13,25,62,101,113,134,155,159,296,304,307,343,352,383,390],stat:[5,13,17,26,53,103,106,113,114,116,117,121,122,129,130,134,141,142,152,182,203,253,256,257,258,259,260,439,443],state:[3,11,13,14,15,20,22,26,27,28,33,42,44,51,60,87,88,98,113,114,117,120,123,129,138,139,157,163,165,166,168,173,175,176,179,186,194,196,199,215,216,218,219,222,223,249,256,257,258,259,260,265,269,271,301,304,306,307,309,314,334,362,372,374,443],state_chang:221,state_nam:221,state_unlog:186,statefultelnetprotocol:[337,345],statehandl:[219,221],statement:[3,14,15,19,20,28,53,54,67,81,87,100,111,116,136,265,368,389],statenam:[216,218,221],static_overrid:[51,73,113,134],static_root:134,staticfil:201,statict:182,statictrait:253,station:[123,138],stationari:269,statist:[44,52,53,55,73,132,137,159,182,192,227,347,363,381],statu:[11,28,44,47,50,68,94,100,109,113,121,122,146,151,155,159,192,203,258,259,260,269,309,312,314,323,324,325,328,342,398,443],status:[121,443],status_cod:316,stderr:272,stdin_open:157,stdout:[157,272,314,383],steadi:88,steal:[35,106,189],stealth:123,steel:210,steer:138,step1:94,step2:94,step3:94,step:[0,2,6,7,9,14,15,18,20,22,27,67,69,75,80,83,85,90,91,94,96,100,102,103,105,106,107,123,124,125,127,130,138,139,142,145,146,149,157,181,187,204,210,252,271,279,281,282,309,318,330,341,345,346,355,364,368,371,372,374,375,443],step_sequ:275,stepper:[83,282],stick:[16,22,28,70,85,149,180],still:[0,1,7,9,11,13,14,15,16,18,20,22,44,45,48,50,57,58,60,62,64,65,69,75,76,77,79,81,83,84,85,87,88,90,92,94,96,99,100,101,107,108,109,113,114,115,116,123,126,130,138,139,142,143,144,149,151,158,163,168,175,182,187,189,194,196,209,214,221,252,253,254,256,257,258,259,260,268,271,273,282,294,296,300,306,346,374,376,377,378,386,390,438],sting:82,stock:[87,106,124,247,430],stolen:[158,367],stone:[22,58,109,118,124],stop:[3,5,7,9,15,18,19,28,30,32,37,39,42,44,47,51,54,55,64,69,76,81,83,92,94,99,100,101,105,109,112,113,116,119,122,123,126,129,130,137,138,149,151,155,157,159,161,179,182,187,192,196,203,210,212,231,233,243,249,250,253,257,260,265,282,296,303,306,307,308,309,313,314,316,319,331,332,352,353,359,367,368,370,390,443],stop_driv:138,stop_evennia:314,stop_serv:324,stop_server_onli:314,stopproduc:316,stopservic:[317,359],storag:[13,14,22,48,67,88,93,94,98,106,112,124,127,141,146,171,192,198,201,202,235,242,253,273,286,292,295,296,300,301,304,307,309,321,357,361,362,364,369,384,385,443],storage_modul:369,storagecontain:42,storagescript:42,store:[4,6,8,9,11,12,14,16,18,19,20,22,23,27,31,33,35,36,37,39,42,44,46,47,48,50,51,62,67,70,73,75,76,78,79,80,81,83,84,88,91,93,94,96,97,98,99,100,102,105,106,107,108,111,113,114,115,116,117,121,126,127,129,130,134,138,141,142,146,154,157,159,168,169,171,176,179,180,182,183,185,189,190,198,201,203,209,210,219,221,224,225,232,239,241,242,243,247,250,251,253,258,262,270,271,273,282,283,286,291,292,295,299,300,301,302,305,306,307,308,309,314,318,319,320,321,324,326,327,328,330,338,341,346,352,353,354,355,357,359,362,363,364,365,367,369,370,371,372,373,374,375,378,381,384,385,386,390,416,430,441,443],store_kei:[309,390],store_tru:272,stored_obj:92,storekei:[106,309],storenam:106,storeroom:106,storeroom_exit:106,storeroom_kei:106,storeroom_key_nam:106,stori:[6,31,76,132,141],storm:93,storypag:132,storytel:130,stove:296,str:[8,13,19,27,28,30,32,34,35,42,48,54,62,70,75,77,83,92,96,100,105,107,108,114,115,116,122,127,141,142,165,168,169,170,173,174,175,176,177,182,187,189,193,196,197,198,201,203,204,206,209,212,217,218,219,221,223,224,225,226,227,229,230,231,232,235,236,241,242,243,247,249,252,253,254,256,257,258,259,260,264,265,268,271,272,273,281,282,283,284,286,287,288,289,292,294,295,296,299,300,301,303,305,306,307,309,311,312,314,318,319,320,321,323,324,325,326,327,329,332,333,334,337,338,339,342,343,345,351,352,353,354,355,357,358,359,362,363,364,365,367,368,369,370,372,373,374,375,376,377,383,384,385,386,387,388,389,390,391,393,394,399,408,410,413,422,436,438],straght:282,straight:[81,83,124,139,282,365],straightforward:[92,106,107,130,138],strang:[11,15,42,94,98,114,145,176,194],strangl:155,strap:123,strategi:[3,260],strattr:[13,362],strawberri:272,stream:[7,201,323,327,353],streamlin:[2,203],stren:116,strengh:13,strength:[13,33,99,100,113,114,122,123,127,129,142,252,253],stress:[5,279,345],stretch:[82,83,85],stribg:390,strict:[54,211,300,367,438],stricter:[124,300],strictli:[28,57,111,141,214,259,376],strike:[28,105,129,188,251,259,260],string1:390,string2:390,string:[3,5,6,8,13,14,16,18,19,20,22,24,25,27,28,30,31,34,36,37,39,41,46,47,48,50,51,55,57,58,64,65,67,68,70,72,76,77,81,82,85,87,92,94,99,100,105,108,109,111,113,114,115,116,117,118,122,123,126,129,141,142,146,148,149,152,155,159,165,166,168,169,170,171,173,174,177,180,182,187,188,189,190,191,192,193,196,197,198,201,203,204,206,209,214,218,223,225,235,236,240,241,242,243,247,248,253,254,256,257,258,259,260,265,268,269,273,281,283,284,287,288,290,291,292,294,295,296,299,300,301,303,304,307,309,314,316,319,323,326,334,337,338,340,343,346,351,353,355,358,362,363,364,365,366,367,368,370,371,372,373,375,376,377,383,384,386,387,388,389,390,391,393,394,399,406,413,438,441,443],string_from_modul:390,string_partial_match:[294,390],string_similar:390,string_suggest:390,stringproduc:316,stringvalu:253,strip:[22,28,30,31,32,41,60,69,77,85,91,100,104,106,108,115,126,130,136,174,182,190,191,193,201,210,218,243,294,301,319,334,337,338,367,368,372,374,377,390,443],strip_ansi:[104,367,389],strip_control_sequ:390,strip_dir:5,strip_mxp:367,strip_raw_ansi:367,strip_raw_cod:367,strip_unsafe_input:390,strip_unsafe_token:367,strippabl:374,stroll:250,strong:[33,60,124,130,389],strongest:33,strongli:[18,49,88,116,123,127,242],strr:241,struct:98,structur:[13,22,30,31,39,41,53,65,68,76,81,84,87,88,98,102,108,111,112,113,116,123,134,141,142,149,182,187,196,201,243,281,283,289,296,300,301,338,343,365,371,374,411,427,439,443],strvalu:[13,362,363],stuck:[28,108,120,126,149],studi:443,stuff:[13,20,28,30,33,39,41,42,44,45,53,76,81,84,85,91,94,99,103,106,108,115,116,117,118,119,120,121,122,123,126,127,132,151,176,193,226,252,253,272,309,352,423,443],stumbl:[6,124],stupid:[118,124],sturdi:373,stutter:69,style:[7,13,18,19,22,26,28,36,56,60,62,72,78,79,82,84,85,87,91,99,100,103,108,116,119,120,121,123,124,128,129,132,144,171,177,179,190,206,207,209,223,225,236,253,256,272,300,372,376,377,390,443],styled_foot:177,styled_head:[22,177],styled_separ:177,styled_t:[22,177],sub:[2,13,18,30,31,41,42,51,53,68,69,76,84,85,99,102,111,113,129,150,155,167,172,187,189,195,199,204,243,272,279,285,287,289,290,293,301,302,310,361,366,367,377,389,396,400,432,443],sub_ansi:367,sub_app:141,sub_brightbg:367,sub_dblspac:389,sub_mxp_link:389,sub_mxp_url:389,sub_text:389,sub_to_channel:187,sub_xterm256:367,subbed_chan:187,subcategori:[189,289],subclass:[19,41,44,48,83,88,111,113,136,182,204,253,273,295,300,304,324,337,343,364,382,386,390,398,399,406,443],subcommand:83,subcrib:18,subdir:8,subdirectori:[8,84],subdomain:[145,155,158],subfold:[67,73,113,116,142],subhead:85,subject:[2,35,58,67,96,104,111,155,226,236,377,394],sublim:119,submarin:138,submenu:[7,204,298],submenu_class:204,submenu_obj:204,submiss:[225,430],submit:[17,53,84,141,158,194,225,430,434,436,441],submitcmd:225,submodul:338,subnegoti:338,subnet:[55,146,180],subpackag:[8,68],subprocess:[92,390],subreddit:144,subscrib:[9,18,22,33,47,55,86,88,100,140,169,187,196,197,198,258,309,325,356],subscribernam:187,subscript:[18,22,42,47,100,140,144,187,197,198,309,400],subscriptionhandl:[18,198],subsect:281,subsequ:[22,54,116,129,149,187,216,242,368,390],subsequent_ind:376,subset:[8,46,98,113,123,281],subsid:48,substanti:[201,209],substitut:[7,36,152,296,367,389],substr:[115,367,377],subsub:[31,189,193],subsubhead:85,subsubsubhead:85,subsubtop:[31,189,193],subsubtopicn:193,subsystem:[67,76,122,149,292],subtext:219,subtitl:17,subtop:[187,189,193,286,289,443],subtopic_separator_char:189,subtract:[30,106,252],subturn:129,subword:390,suc:79,succe:[79,120,121,129,209,213,443],succeed:[187,213,272],success:[79,111,122,123,127,129,130,142,168,187,196,203,209,213,256,257,258,259,260,265,270,271,292,300,308,314,318,364,372,384,390,441],success_messag:[209,210],success_teleport_msg:271,success_teleport_to:271,success_url:[434,436],successfuli:[209,240],successfulli:[2,10,22,54,82,93,117,126,163,168,209,210,211,240,270,273,296,308,314,326,358,364,441],suddenli:[0,6,364],sudo:[149,151,157,158],sue:122,suffic:[17,99,116],suffici:[67,155,201],suffix:[6,19,30,367,377,383,390,416],suggest:[0,6,28,29,31,48,74,84,85,87,92,121,122,123,124,146,155,174,189,203,210,243,253,271,289,296,390],suggestion_cutoff:189,suggestion_maxnum:[189,289],suggests:31,suit:[10,88,94,124,135,193,390,439,443],suitabl:[11,22,30,33,36,42,46,50,65,68,83,84,87,88,91,92,108,111,116,119,149,155,175,187,209,218,281,292,348,355,370,374,377],sum:[83,84,105,107,112,119,176,219],summar:[75,108,144],summari:[50,75,80,130,144,163,204,443],summer:[122,123,224],sun:[83,101],sunris:101,sunt:29,super_long_text:375,superclass:398,superfici:242,superflu:389,supersus:292,superus:[5,12,14,15,33,50,57,76,82,90,91,92,100,104,109,113,114,115,116,119,120,123,126,142,146,149,162,168,171,181,192,196,206,249,269,291,292,296,301,314,364,368,370,398,443],supplement:28,suppli:[5,8,13,19,28,31,32,34,41,42,44,46,47,49,54,58,68,84,100,115,123,129,130,149,153,171,176,177,180,182,187,192,193,197,204,212,214,224,227,253,281,294,295,296,300,304,309,325,355,364,372,377,378,387,390],supporst:341,support:[3,12,13,18,22,27,28,30,31,32,35,36,41,42,59,60,62,63,64,65,67,70,76,78,81,84,85,87,88,89,90,97,98,99,100,104,107,112,115,116,118,119,121,122,123,124,130,139,145,146,149,150,154,155,156,157,158,161,162,163,168,179,188,189,192,201,207,212,213,218,224,235,272,282,291,296,300,301,309,319,327,328,329,330,334,336,337,338,339,341,343,354,362,367,371,374,375,376,377,387,390,393,422,438,443],supports_set:[32,319],suppos:[0,22,28,41,49,65,75,111,168,204],supposedli:[151,242,338],suppress:[147,336],suppress_ga:[165,166,310,322,443],suppressga:336,supress:336,sur:144,sure:[2,3,6,7,8,9,11,12,13,14,15,16,18,20,22,28,31,33,36,37,39,41,42,44,46,47,48,49,50,51,53,55,57,64,67,70,74,75,76,81,82,83,84,85,90,91,92,93,94,95,97,99,100,101,104,107,109,111,114,115,116,119,120,121,122,123,124,126,127,129,130,134,136,139,141,142,143,145,146,149,151,152,153,154,155,157,162,163,168,169,175,176,177,179,182,190,197,201,204,206,209,218,233,241,242,243,248,253,254,259,262,269,270,271,282,287,291,292,296,300,301,306,314,318,324,326,331,352,358,359,360,363,364,367,369,371,374,381,386,387,389,390,399,406,408,431,439,441],surfac:[100,105,158,218],surpris:[13,33,77,96,102,107,116],surround:[20,22,30,72,82,83,129,180,223,269,282,386,390,443],surviv:[13,19,20,27,28,30,34,42,44,47,93,114,129,139,169,176,192,204,253,304,305,309,370,372,374,390],survivor:123,suscept:[19,98,292],suspect:141,suspend:[7,157,158],suspici:28,suspicion:141,svg:201,svn:[2,69],swallow:[136,319,323,389],swam:[393,395],swap:[8,26,51,60,182,224,239,364,372,443],swap_autoind:372,swap_object:364,swap_typeclass:[48,168,364],swapcas:367,swapper:364,swedish:64,sweep:42,swiftli:54,swim:[393,395],swing:[22,93,94,105,115],switch1:72,switch2:72,switch_map:182,switch_opt:[179,180,181,182,187,188,189,190,192,224],sword:[13,22,49,67,78,79,93,106,109,111,118,120,122,123,126,127,165,166,199,203,208,209,211,218,243,253,294,301,387,390,443],swordbladerecip:210,swordguardrecip:210,swordhandlerecip:210,swordmanship:122,swordpommelrecip:210,swordrecip:[209,210],swordsmithingbaserecip:210,swum:[393,395],symbol:[7,15,16,22,69,81,83,111,154,194,243,254,273,276,279,281,282,284,375],symlink:[85,149],symmetr:376,sync:[11,44,52,65,88,281,282,283,303,332,337,352,353,354,355,362,371],sync_node_to_grid:282,sync_port:355,syncdata:[354,355],syncdb:8,synchron:[383,443],syntact:[292,390],syntax:[6,14,15,16,22,33,60,72,77,78,79,80,87,91,94,100,101,107,109,114,130,142,146,165,166,177,181,182,189,190,193,204,209,213,216,224,225,272,292,296,314,326,353,362,364,366,367,443],syntaxerror:116,sys:438,sys_cmd:175,syscmdkei:[22,86,165],syscommand:[165,166,172,178,296,443],syslog:246,sysroot:154,system:[0,2,5,6,8,9,11,12,13,18,19,20,23,24,26,32,34,35,36,39,41,42,44,45,46,47,48,53,54,57,62,64,65,67,69,72,74,75,76,77,80,81,82,83,84,85,86,87,88,90,91,93,94,96,97,98,101,104,106,112,113,114,116,119,120,126,134,138,139,140,142,144,146,149,151,154,155,158,159,162,163,165,166,169,171,172,173,175,177,178,179,181,182,189,191,193,195,196,197,198,201,203,204,206,209,210,211,214,218,230,231,232,233,235,236,239,240,242,243,246,247,248,254,256,257,258,259,260,268,271,273,279,280,281,282,284,285,286,288,291,292,295,296,298,300,301,302,314,337,343,351,361,364,368,370,373,374,377,383,394,398,416,442,443],system_command:22,systemat:96,systemctl:145,systemd:151,systemmultimatch:191,systemnoinput:191,systemnomatch:191,tab:[0,2,7,15,51,52,60,76,95,102,116,117,119,124,367,376,389],tabl:[6,9,14,16,48,58,60,68,70,75,80,82,86,88,90,100,102,105,111,118,142,177,179,187,189,192,225,338,357,367,373,375,376,377,387,390,442,443],table_char:373,table_format:179,table_lin:376,table_str:100,tablea:373,tableb:373,tablechar:[100,373],tableclos:[68,338],tablecol:376,tableopen:[68,338],tablet:56,tabletop:[100,127,144,256,260],tabsiz:[367,376],tabstop:389,tabularinlin:[399,406],tack:[109,176],tackl:84,tactic:[123,127,129],taction:129,tag:[14,18,22,24,26,28,31,32,35,36,39,41,42,48,50,51,52,53,55,60,61,64,67,68,74,76,79,83,99,100,103,108,109,111,116,134,142,147,157,165,166,177,179,180,181,182,187,188,189,190,191,192,193,194,196,198,203,204,205,206,207,209,210,213,214,216,218,219,224,225,226,230,236,239,240,241,243,246,249,250,251,253,254,256,257,258,259,260,265,268,269,270,271,272,275,282,284,288,289,291,296,300,301,329,343,345,351,361,363,364,367,370,372,373,374,375,376,387,390,396,397,398,400,402,403,404,410,413,443],tag_all_charact:219,tag_categori:406,tag_charact:219,tag_data:406,tag_kei:406,tag_typ:[406,410],tagadmin:406,tagcategori:[218,219],tagcount:111,taget_map_xyz:282,tagform:406,tagformset:[399,406],taghandl:[46,48,365,406],taginlin:[398,400,402,403,404,406],tagkei:[291,365,370],taglin:17,tagnam:301,tagseri:413,tagshandl:413,tagstr:[301,365],tagtyp:[46,363,365,387,410],tagtypefilt:410,tail:[113,155,157,314,383],tail_log_fil:[314,383],tail_log_funct:383,tailor:[90,102,430],take:[0,3,7,8,14,15,16,17,18,19,20,22,28,29,30,32,33,39,41,44,48,54,56,57,60,62,64,65,69,75,76,77,78,79,80,81,82,83,84,85,87,88,89,90,91,92,93,94,98,99,100,101,102,103,106,107,109,113,114,115,116,119,120,122,123,124,125,126,128,129,130,131,132,133,134,138,139,141,142,144,154,155,158,159,161,168,169,174,175,179,191,193,196,198,203,206,209,212,216,221,223,224,225,240,241,243,246,250,254,256,257,258,259,260,265,268,269,271,275,279,292,301,334,342,345,354,355,363,364,367,372,373,374,375,377,384,390,391,394],taken:[0,20,88,98,117,129,130,137,138,158,188,214,246,256,257,258,259,260,296,334,358,367,370],takeov:356,tale:132,talk:[11,19,22,52,62,80,84,100,107,116,123,124,146,155,187,188,203,242,243,251,271,311,394,443],talker:87,talki:[18,88,123],talking_npc:[165,166,199,443],talkingcmdset:251,talkingnpc:251,tall:[58,72,122,123,188,243],tallman:188,tan:210,tang:[108,210],tannin:210,tantal:15,target1:259,target2:259,target:[8,22,35,58,62,68,83,91,92,93,94,95,100,108,109,115,116,123,126,127,129,130,134,158,168,177,182,187,188,192,196,198,206,210,213,216,218,221,224,236,254,256,257,258,259,260,269,273,275,276,279,281,282,296,363,367,370,374,390],target_fire_damag:210,target_flag:218,target_loc:[219,250,271,273,296],target_map_xyz:[83,276,279,282],target_obj:292,target_path_styl:281,targetlist:236,task:[2,5,18,19,26,42,46,62,75,107,113,151,163,192,193,230,232,254,275,308,309,390],task_handl:[165,308,390],task_id:[192,232,308],taskhandl:[165,166,302,390,443],taskhandlertask:[308,390],tast:[77,120,124,141],tasti:209,tavern:243,tax:[5,154],taylor:144,tb_basic:[165,166,199,255,443],tb_equip:[165,166,199,255,443],tb_filenam:368,tb_item:[165,166,199,255,443],tb_iter:368,tb_magic:[165,166,199,255,443],tb_rang:[165,166,199,255,443],tbbasiccharact:256,tbbasicturnhandl:256,tbearmor:257,tbequipcharact:257,tbequipturnhandl:257,tbeweapon:257,tbitemscharact:258,tbitemscharactertest:258,tbitemsturnhandl:258,tbmagiccharact:259,tbmagicturnhandl:259,tbodi:142,tbrangecharact:260,tbrangeobject:260,tbrangeturnhandl:260,tchar:129,tcp:158,tcpserver:[62,359],teach:[103,124],team:[2,11,22,31,69,88,121,123,124],teamciti:443,teardown:[8,193,211,222,233,252,266,279,340,388,414],teaser:155,tech:[103,119,124,125,128,131,133,144,443],technic:[28,46,48,54,57,58,60,62,64,65,69,76,83,88,89,90,96,109,121,124,146,155,165,166,199,201,203,261,362,443],techniqu:[94,123,126,367],technolog:123,tediou:[7,82],teenag:[91,158],tehom:[76,78,111],tehomcd:76,tel:[26,55,75,100,107,108,138,149,182,275],telepath:123,telephathi:18,teleport:[15,26,55,74,100,106,109,120,182,188,271,275,279,282,368,443],teleport_her:182,teleportermaplink:[83,282],teleportmaplink:83,teleportroom:271,televis:20,tell:[0,3,4,8,9,10,11,13,14,20,22,26,28,32,33,35,36,39,41,42,54,55,57,64,65,67,73,75,77,79,80,81,91,94,100,102,107,108,109,113,114,115,116,117,123,127,129,132,135,138,140,142,145,146,154,155,157,158,163,169,179,187,188,198,213,243,271,282,296,314,332,343,355,372,439],telnet:[5,16,44,51,52,59,62,65,71,76,87,88,92,95,116,119,144,149,154,157,158,162,163,165,166,189,192,310,322,327,328,329,330,334,335,336,338,339,341,345,353,354,389,443],telnet_:155,telnet_hostnam:148,telnet_interfac:155,telnet_oob:[68,165,166,310,322,443],telnet_port:[2,5,76,113,148,155,346],telnet_ssl:[165,166,310,322,443],telnetoob:338,telnetprotocol:[335,337,339],telnetserverfactori:337,telport:120,temp:198,tempat:225,templat:[11,12,19,20,36,41,45,48,49,50,51,52,53,73,88,90,104,113,117,123,130,132,134,142,159,162,165,166,187,188,190,196,225,268,296,314,343,353,354,362,366,373,419,423,428,438,439,441,443],template2menu:374,template_nam:[53,434,435,436,438,439,441],template_overrid:[51,73,90,113,134],template_regex:362,template_rend:45,template_str:36,templates_overrid:73,templatestr:373,templatetag:[165,166,396,443],templateview:[53,439],tempmsg:[198,443],temporari:[8,11,13,120,163,176,198,201,235,256,257,258,259,260,309,374,443],temporarili:[0,6,8,18,20,28,42,52,109,114,122,155,187,192,209,232,240,253,265],tempt:[30,114,116,121,159,180],ten:[82,94,155],tend:[5,6,67,72,88,99,123,127,138,155,158,182,242,246],tens:[393,395],tent:82,term:[20,31,54,64,75,88,101,102,107,113,114,115,124,139,149,155,177,218,241,357],term_siz:[3,165],termin:[0,3,5,6,7,11,19,53,60,83,85,88,90,108,116,117,119,130,139,146,149,154,155,157,158,162,163,165,192,231,254,256,257,258,259,260,313,314,334,341,357,439],terminalrealm:334,terminals:334,terminalsessiontransport:334,terminalsessiontransport_getp:334,termux:443,terrain:[81,282],terribl:327,ters:42,test1:[13,32,376],test2010:108,test2028:108,test2:[13,22,32,60],test3:[13,376],test4:[13,376],test5:13,test6:13,test7:13,test8:13,test:[1,2,3,7,10,11,13,14,15,16,17,20,22,27,28,30,31,32,33,37,39,41,42,45,47,51,53,54,57,75,77,79,80,82,84,85,91,92,94,98,100,101,102,104,106,107,109,111,115,117,121,123,124,126,128,129,131,137,140,141,144,146,147,149,150,151,153,155,156,165,166,172,174,178,179,181,189,192,199,200,206,208,209,210,213,215,224,225,228,244,245,252,254,256,257,258,259,260,261,262,268,274,281,300,310,316,319,322,343,344,345,349,364,366,367,368,370,374,379,388,390,392,396,409,420,429,438,443],test_:8,test_about:193,test_accept:233,test_access:193,test_active_task:193,test_add:233,test_add_trait:252,test_add_valid:233,test_al:252,test_all_com:193,test_all_st:222,test_alternative_cal:8,test_amp_in:340,test_amp_out:340,test_at_repeat:266,test_attribute_command:193,test_audit:248,test_auto_creating_bucket:202,test_auto_creating_bucket_with_acl:202,test_ban:193,test_base_pars:222,test_base_search:222,test_base_st:222,test_batch_command:193,test_bold:340,test_boundaries__bigmod:252,test_boundaries__change_boundari:252,test_boundaries__dis:252,test_boundaries__invers:252,test_boundaries__minmax:252,test_build:279,test_c_creates_button:350,test_c_creates_obj:350,test_c_dig:350,test_c_examin:350,test_c_help:350,test_c_login:350,test_c_login_no_dig:350,test_c_logout:350,test_c_look:350,test_c_mov:350,test_c_move_:350,test_c_move_n:350,test_c_soci:350,test_cach:252,test_cal:[193,233],test_cancel:193,test_cas:8,test_cboot:193,test_cdesc:193,test_cdestroi:193,test_channel__al:193,test_channel__alias__unalia:193,test_channel__ban__unban:193,test_channel__boot:193,test_channel__cr:193,test_channel__desc:193,test_channel__destroi:193,test_channel__histori:193,test_channel__list:193,test_channel__lock:193,test_channel__msg:193,test_channel__mut:193,test_channel__noarg:193,test_channel__sub:193,test_channel__unlock:193,test_channel__unmut:193,test_channel__unsub:193,test_channel__who:193,test_char_cr:193,test_char_delet:193,test_clean_nam:202,test_clean_name_norm:202,test_clean_name_trailing_slash:202,test_clean_name_window:202,test_clear:252,test_clock:193,test_color:340,test_color_test:193,test_comparisons_numer:252,test_comparisons_trait:252,test_compress_content_len:202,test_connection_thread:202,test_content_typ:202,test_copi:193,test_craft__nocons__failur:211,test_craft__notools__failur:211,test_craft__success:211,test_craft_cons_excess__fail:211,test_craft_cons_excess__sucess:211,test_craft_cons_order__fail:211,test_craft_hook__fail:211,test_craft_hook__succe:211,test_craft_missing_cons__always_consume__fail:211,test_craft_missing_cons__fail:211,test_craft_missing_tool__fail:211,test_craft_sword:211,test_craft_tool_excess__fail:211,test_craft_tool_excess__sucess:211,test_craft_tool_order__fail:211,test_craft_wrong_tool__fail:211,test_creat:[193,414],test_curr:252,test_cwho:193,test_data_in:340,test_data_out:340,test_del:233,test_delet:[252,414],test_desc:[193,252],test_desc_default_to_room:193,test_destroi:193,test_destroy_sequ:193,test_dig:193,test_do_nested_lookup:193,test_do_task:193,test_echo:193,test_edit:233,test_edit_valid:233,test_emit:193,test_emot:222,test_empty_desc:193,test_error_format:211,test_examin:193,test_exit:233,test_exit_command:193,test_extended_path_tracking__horizont:279,test_extended_path_tracking__vert:279,test_find:193,test_floordiv:252,test_focu:222,test_focus_interact:222,test_forc:193,test_func_name_manipul:193,test_general_context:425,test_generated_url_is_encod:202,test_get:[252,431],test_get_and_drop:193,test_get_authent:431,test_get_dis:431,test_get_shortest_path:279,test_get_visual_range__nodes__charact:279,test_get_visual_range__nodes__character_0:279,test_get_visual_range__nodes__character_1:279,test_get_visual_range__nodes__character_2:279,test_get_visual_range__nodes__character_3:279,test_get_visual_range__nodes__character_4:279,test_get_visual_range__nodes__character_5:279,test_get_visual_range__nodes__character_6:279,test_get_visual_range__nodes__character_7:279,test_get_visual_range__nodes__character_8:279,test_get_visual_range__nodes__character_9:279,test_get_visual_range__scan:279,test_get_visual_range__scan_0:279,test_get_visual_range__scan_1:279,test_get_visual_range__scan_2:279,test_get_visual_range__scan_3:279,test_get_visual_range__scan__charact:279,test_get_visual_range__scan__character_0:279,test_get_visual_range__scan__character_1:279,test_get_visual_range__scan__character_2:279,test_get_visual_range__scan__character_3:279,test_get_visual_range_with_path:279,test_get_visual_range_with_path_0:279,test_get_visual_range_with_path_1:279,test_get_visual_range_with_path_2:279,test_get_visual_range_with_path_3:279,test_get_visual_range_with_path_4:279,test_giv:193,test_grid_cr:279,test_grid_creation_0:279,test_grid_creation_1:279,test_grid_pathfind:279,test_grid_pathfind_0:279,test_grid_pathfind_1:279,test_grid_vis:279,test_grid_visibility_0:279,test_grid_visibility_1:279,test_handl:233,test_hello_world:117,test_help:193,test_hom:193,test_ic:193,test_ic__nonaccess:193,test_ic__other_object:193,test_ident:340,test_idl:350,test_info_command:193,test_init:252,test_interrupt_command:193,test_invalid_access:431,test_inventori:193,test_ital:340,test_large_msg:340,test_list:[233,414],test_list_cmdset:193,test_load_recip:211,test_location_leading_slash:202,test_lock:[193,233],test_lock_with_perm:431,test_locked_entri:431,test_look:[193,222],test_mapping_with_opt:395,test_mapping_with_options_00_y:395,test_mapping_with_options_01_y:395,test_mapping_with_options_02_i:395,test_mapping_with_options_03_i:395,test_mapping_with_options_04_i:395,test_mapping_with_options_05_m:395,test_mapping_with_options_06_your:395,test_mapping_with_options_07_our:395,test_mapping_with_options_08_yourself:395,test_mapping_with_options_09_yourself:395,test_mapping_with_options_10_yourself:395,test_mapping_with_options_11_yourself:395,test_mapping_with_options_12_yourselv:395,test_mapping_with_options_13_h:395,test_mapping_with_options_14_h:395,test_mapping_with_options_15_h:395,test_mapping_with_options_16_h:395,test_mapping_with_options_17_h:395,test_mapping_with_options_18_their:395,test_mapping_with_options_19_their:395,test_mapping_with_options_20_itself:395,test_mapping_with_options_21_themselv:395,test_mapping_with_options_22_herself:395,test_mask:248,test_memplot:350,test_menu:254,test_messag:351,test_misformed_command:193,test_msg:211,test_mudlet_ttyp:340,test_mul_trait:252,test_multimatch:193,test_mux_command:193,test_mycmd_char:8,test_mycmd_room:8,test_nam:193,test_nested_attribute_command:193,test_new_task_waiting_input:193,test_nick:193,test_no_input:193,test_no_task:193,test_node_from_coord:279,test_object:193,test_object_cach:431,test_object_search:8,test_ooc:193,test_ooc_look:193,test_opt:193,test_override_class_vari:202,test_override_init_argu:202,test_overwrit:222,test_pag:193,test_parse_for_perspect:222,test_parse_for_th:222,test_password:193,test_path:279,test_paths_0:279,test_paths_1:279,test_pause_unpaus:193,test_percentag:252,test_perm:193,test_persistent_task:193,test_pi:193,test_pickle_with_bucket:202,test_pickle_without_bucket:202,test_plain_ansi:340,test_pos:193,test_pos_shortcut:252,test_pre_craft:211,test_pre_craft_fail:211,test_quel:193,test_queri:[165,166,310,344,443],test_quit:193,test_remov:[193,252],test_repr:252,test_resourc:[8,165,166,193,222,233,248,266,279,340,366,414,431,443],test_responce_of_y:193,test_retriev:414,test_return_valu:8,test_room_method:222,test_sai:193,test_script:193,test_seed__success:211,test_send_random_messag:266,test_server_load:193,test_sess:193,test_set:252,test_set_attribut:414,test_set_focu:222,test_set_help:193,test_set_hom:193,test_set_obj_alia:193,test_shortest_path:279,test_shortest_path_00:279,test_shortest_path_01:279,test_shortest_path_02:279,test_shortest_path_03:279,test_shortest_path_04:279,test_shortest_path_05:279,test_shortest_path_06:279,test_shortest_path_07:279,test_shortest_path_08:279,test_shortest_path_09:279,test_shortest_path_0:279,test_shortest_path_10:279,test_shortest_path_1:279,test_shortest_path_2:279,test_shortest_path_3:279,test_shortest_path_4:279,test_shortest_path_5:279,test_shortest_path_6:279,test_shortest_path_7:279,test_shortest_path_8:279,test_shortest_path_9:279,test_simpl:8,test_simple_default:193,test_spawn:[193,279],test_special_charact:202,test_speech:222,test_split_nested_attr:193,test_start:233,test_storage_delet:202,test_storage_exist:202,test_storage_exists_doesnt_create_bucket:202,test_storage_exists_fals:202,test_storage_listdir_bas:202,test_storage_listdir_subdir:202,test_storage_mtim:202,test_storage_open_no_overwrite_exist:202,test_storage_open_no_writ:202,test_storage_open_writ:202,test_storage_s:202,test_storage_sav:202,test_storage_save_gzip:202,test_storage_save_gzip_twic:202,test_storage_save_with_acl:202,test_storage_url:202,test_storage_url_slash:202,test_storage_write_beyond_buffer_s:202,test_str_output:279,test_strip_signing_paramet:202,test_sub_trait:252,test_subtopic_fetch:193,test_subtopic_fetch_00_test:193,test_subtopic_fetch_01_test_creating_extra_stuff:193,test_subtopic_fetch_02_test_cr:193,test_subtopic_fetch_03_test_extra:193,test_subtopic_fetch_04_test_extra_subsubtop:193,test_subtopic_fetch_05_test_creating_extra_subsub:193,test_subtopic_fetch_06_test_something_els:193,test_subtopic_fetch_07_test_mor:193,test_subtopic_fetch_08_test_more_second_mor:193,test_subtopic_fetch_09_test_more_mor:193,test_subtopic_fetch_10_test_more_second_more_again:193,test_subtopic_fetch_11_test_more_second_third:193,test_tag:193,test_task_complete_waiting_input:193,test_teleport:193,test_timer_r:252,test_timer_ratetarget:252,test_toggle_com:193,test_trait:[165,166,199,443],test_trait_db_connect:252,test_trait_getset:252,test_traitfield:252,test_tunnel:193,test_tunnel_exit_typeclass:193,test_typeclass:193,test_upd:414,test_upp:8,test_valid_access:431,test_valid_access_multisession_0:431,test_valid_access_multisession_2:431,test_valid_char:431,test_validate_input__fail:252,test_validate_input__valid:252,test_valu:252,test_verb_actor_stance_compon:395,test_verb_actor_stance_components_00_hav:395,test_verb_actor_stance_components_01_swim:395,test_verb_actor_stance_components_02_g:395,test_verb_actor_stance_components_03_given:395,test_verb_actor_stance_components_04_am:395,test_verb_actor_stance_components_05_do:395,test_verb_actor_stance_components_06_ar:395,test_verb_actor_stance_components_07_had:395,test_verb_actor_stance_components_08_grin:395,test_verb_actor_stance_components_09_smil:395,test_verb_actor_stance_components_10_vex:395,test_verb_actor_stance_components_11_thrust:395,test_verb_conjug:395,test_verb_conjugate_0_inf:395,test_verb_conjugate_1_inf:395,test_verb_conjugate_2_inf:395,test_verb_conjugate_3_inf:395,test_verb_conjugate_4_inf:395,test_verb_conjugate_5_inf:395,test_verb_conjugate_6_inf:395,test_verb_conjugate_7_2sgpr:395,test_verb_conjugate_8_3sgpr:395,test_verb_get_all_tens:395,test_verb_infinit:395,test_verb_infinitive_0_hav:395,test_verb_infinitive_1_swim:395,test_verb_infinitive_2_g:395,test_verb_infinitive_3_given:395,test_verb_infinitive_4_am:395,test_verb_infinitive_5_do:395,test_verb_infinitive_6_ar:395,test_verb_is_past:395,test_verb_is_past_0_1st:395,test_verb_is_past_1_1st:395,test_verb_is_past_2_1st:395,test_verb_is_past_3_1st:395,test_verb_is_past_4_1st:395,test_verb_is_past_5_1st:395,test_verb_is_past_6_1st:395,test_verb_is_past_7_2nd:395,test_verb_is_past_participl:395,test_verb_is_past_participle_0_hav:395,test_verb_is_past_participle_1_swim:395,test_verb_is_past_participle_2_g:395,test_verb_is_past_participle_3_given:395,test_verb_is_past_participle_4_am:395,test_verb_is_past_participle_5_do:395,test_verb_is_past_participle_6_ar:395,test_verb_is_past_participle_7_had:395,test_verb_is_pres:395,test_verb_is_present_0_1st:395,test_verb_is_present_1_1st:395,test_verb_is_present_2_1st:395,test_verb_is_present_3_1st:395,test_verb_is_present_4_1st:395,test_verb_is_present_5_1st:395,test_verb_is_present_6_1st:395,test_verb_is_present_7_1st:395,test_verb_is_present_participl:395,test_verb_is_present_participle_0_hav:395,test_verb_is_present_participle_1_swim:395,test_verb_is_present_participle_2_g:395,test_verb_is_present_participle_3_given:395,test_verb_is_present_participle_4_am:395,test_verb_is_present_participle_5_do:395,test_verb_is_present_participle_6_ar:395,test_verb_is_tens:395,test_verb_is_tense_0_inf:395,test_verb_is_tense_1_inf:395,test_verb_is_tense_2_inf:395,test_verb_is_tense_3_inf:395,test_verb_is_tense_4_inf:395,test_verb_is_tense_5_inf:395,test_verb_is_tense_6_inf:395,test_verb_past:395,test_verb_past_0_1st:395,test_verb_past_1_1st:395,test_verb_past_2_1st:395,test_verb_past_3_1st:395,test_verb_past_4_1st:395,test_verb_past_5_1st:395,test_verb_past_6_1st:395,test_verb_past_7_2nd:395,test_verb_past_participl:395,test_verb_past_participle_0_hav:395,test_verb_past_participle_1_swim:395,test_verb_past_participle_2_g:395,test_verb_past_participle_3_given:395,test_verb_past_participle_4_am:395,test_verb_past_participle_5_do:395,test_verb_past_participle_6_ar:395,test_verb_pres:395,test_verb_present_0_1st:395,test_verb_present_1_1st:395,test_verb_present_2_1st:395,test_verb_present_3_1st:395,test_verb_present_4_1st:395,test_verb_present_5_1st:395,test_verb_present_6_1st:395,test_verb_present_7_2nd:395,test_verb_present_8_3rd:395,test_verb_present_participl:395,test_verb_present_participle_0_hav:395,test_verb_present_participle_1_swim:395,test_verb_present_participle_2_g:395,test_verb_present_participle_3_given:395,test_verb_present_participle_4_am:395,test_verb_present_participle_5_do:395,test_verb_present_participle_6_ar:395,test_verb_tens:395,test_verb_tense_0_hav:395,test_verb_tense_1_swim:395,test_verb_tense_2_g:395,test_verb_tense_3_given:395,test_verb_tense_4_am:395,test_verb_tense_5_do:395,test_verb_tense_6_ar:395,test_view:431,test_wal:193,test_whisp:193,test_who:193,test_without_migr:8,test_wrong_func_nam:193,testabl:8,testaccount:193,testadmin:193,testampserv:340,testapp:141,testbatchprocess:193,testbodyfunct:266,testbuild:193,testbuildexamplegrid:279,testcas:[8,202,211,252,279,340,350,382,388,395,425],testcmdcallback:233,testcmdtask:193,testcomm:193,testcommand:28,testcommschannel:193,testcraftcommand:211,testcraftingrecip:211,testcraftingrecipebas:211,testcraftsword:211,testcraftutil:211,testdefaultcallback:233,testdummyrunnerset:350,tester:[111,155,332],testevenniarestapi:414,testeventhandl:233,testevscaperoom:222,testevscaperoomcommand:222,testform:373,testgener:193,testgeneralcontext:425,testhelp:193,testid:22,testinterruptcommand:193,testirc:340,testmap10:279,testmap11:279,testmap1:279,testmap2:279,testmap3:279,testmap4:279,testmap5:279,testmap6:279,testmap7:279,testmap8:279,testmap9:279,testmapstresstest:279,testmemplot:350,testmenu:[225,374],testmixedrefer:382,testmod:355,testmymodel:8,testnnmain:193,testnumerictraitoper:252,testobj:[8,221,223],testobject:8,testobjectdelet:382,testok:107,testpronounmap:395,testregularrefer:382,testrenam:108,testset:8,testsharedmemoryrefer:382,teststat:222,teststr:8,testsystem:193,testsystemcommand:193,testtabl:108,testtelnet:340,testtrait:252,testtraitcount:252,testtraitcountertim:252,testtraitfield:252,testtraitgaug:252,testtraitgaugetim:252,testtraitstat:252,testunconnectedcommand:193,testutil:222,testverbconjug:395,testview:53,testwebsocket:340,testxyzgrid:279,testxyzgridtransit:279,text2html:[165,166,366,443],text:[0,6,8,11,12,13,14,15,16,17,18,22,25,26,27,29,30,31,33,35,36,39,41,42,46,51,53,54,58,59,60,62,64,65,67,68,69,75,76,77,80,82,83,84,86,87,91,95,98,99,100,104,106,107,109,113,115,117,119,120,122,123,124,125,126,127,130,136,138,139,141,143,144,147,149,151,153,155,156,157,163,168,169,174,177,179,180,181,182,187,188,189,190,191,192,193,194,197,198,201,203,204,205,206,209,210,213,214,216,217,218,223,224,225,226,227,230,232,236,239,240,242,243,247,249,250,251,253,254,256,257,258,259,260,264,265,269,270,271,272,275,286,288,289,292,296,298,301,304,311,312,319,325,326,329,332,333,334,337,338,342,343,345,353,354,355,358,359,362,363,365,367,368,370,372,373,374,375,376,377,384,387,389,390,391,398,400,404,430,442,443],text_:85,text_color:227,text_descript:253,text_exit:[77,204],text_single_exit:77,textarea:[386,430],textbook:62,textbox:430,textfield:[67,141],textn:193,textstr:32,texttag:[104,139],texttohtmlpars:389,textual:96,textwrap:376,textwrapp:376,than:[0,3,4,5,6,7,8,9,11,12,13,14,15,18,20,22,24,25,28,29,30,31,33,37,39,41,42,44,46,47,48,51,53,56,57,58,60,64,67,70,72,73,75,78,79,80,81,83,84,85,87,88,90,92,94,96,99,100,101,102,105,107,108,111,113,114,115,116,118,119,120,121,122,124,126,127,129,130,139,142,145,146,148,151,152,155,158,159,161,163,168,171,174,175,176,179,180,181,182,183,187,189,190,192,193,203,204,205,209,212,218,221,227,232,241,242,243,250,253,254,256,257,258,259,260,270,272,277,281,282,283,284,291,294,296,298,300,314,340,355,360,362,363,364,365,367,368,374,375,376,377,381,383,385,386,387,389,390,399,406,419,439,443],thank:[90,142,236,359],thankfulli:141,the_answ:118,the_one_r:118,thead:142,theathr:31,theatr:31,thei:[3,4,5,6,7,8,11,12,13,14,15,16,17,18,19,20,22,28,30,31,33,37,39,40,41,42,44,45,46,48,50,51,52,53,54,55,56,57,58,60,62,63,64,65,67,68,69,70,74,75,76,77,78,79,80,82,83,84,85,87,88,90,91,92,94,95,96,97,98,99,100,102,103,104,106,107,108,109,110,111,113,114,115,116,117,118,121,122,124,126,127,129,130,134,136,138,139,140,142,143,145,146,149,154,155,158,162,163,168,175,176,179,181,182,187,188,190,191,192,196,201,203,204,206,209,210,213,218,224,226,231,242,243,253,256,257,258,259,260,270,271,272,273,281,282,284,286,291,292,295,296,300,301,302,304,306,307,309,314,334,335,337,338,339,343,346,352,353,354,355,357,362,367,368,369,371,374,376,377,390,391,394,399,406,411,413,416,430,436,440,441,443],theirs:[58,129,205,226,377,394,395],them:[0,5,6,7,8,9,11,12,13,14,15,16,18,19,20,22,25,27,28,30,31,32,33,35,36,37,39,41,42,44,46,47,48,50,51,53,54,55,56,58,60,62,63,64,65,67,68,70,73,74,75,76,77,78,79,80,82,83,84,85,87,88,90,91,93,94,95,96,99,100,101,102,105,106,107,108,111,113,114,115,116,117,118,120,121,122,124,126,127,129,130,133,134,136,138,139,141,142,146,148,152,154,155,156,158,159,163,168,173,174,175,177,179,181,182,187,189,190,193,196,201,205,206,207,209,210,219,224,225,226,227,229,231,240,241,243,253,254,256,257,258,259,260,265,269,271,272,281,287,292,296,301,306,309,314,332,334,337,345,349,352,353,355,362,364,365,367,368,370,374,377,386,389,394,399,406,408,413,421,436,439,441,443],themat:121,theme:[53,113,121,123,142],themself:258,themselv:[6,8,13,18,20,22,28,33,37,45,48,57,58,70,74,75,81,85,87,91,93,100,102,104,106,113,122,123,126,127,130,138,140,153,182,218,243,282,296,304,307,314,363,365,377,386,394,395],theoret:[20,69,83,125,284],theori:[3,20,99,130,144,168,175,443],thereaft:36,therefor:[8,42,75,81,83,101,107,120,181,204,218,229],therein:[16,22,179,190,192,194,216,224,240,271],thereof:[243,296],thess:294,thet:113,thi:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19,20,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,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,79,80,81,82,83,84,85,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,125,126,127,128,129,130,131,132,134,135,136,137,138,139,140,141,142,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,161,162,163,164,165,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,201,203,204,205,206,207,209,210,211,212,213,214,216,217,218,219,221,223,224,225,226,227,229,230,231,232,235,236,239,240,241,242,243,246,247,249,250,251,252,253,254,256,257,258,259,260,262,264,265,267,268,269,270,271,272,273,275,276,277,278,279,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,316,318,319,320,321,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,341,342,343,345,346,347,348,349,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,381,382,383,384,385,386,387,388,389,390,391,393,394,396,398,399,400,402,403,404,405,406,408,410,411,413,416,419,421,422,423,427,428,430,432,434,435,436,437,438,439,440,441,442,443],thie:28,thieveri:189,thin:[54,77,82,94,206,383],thing:[0,1,5,6,8,9,10,11,13,14,16,18,19,20,22,27,28,30,31,32,37,39,41,44,45,47,48,51,53,54,55,57,58,60,62,64,65,67,69,72,73,75,76,77,79,80,81,82,83,84,87,88,89,90,91,92,93,94,95,96,100,102,103,105,106,107,108,109,111,112,113,115,116,120,121,122,124,126,127,128,129,130,132,134,136,138,139,140,141,142,144,145,149,152,154,155,157,158,159,161,162,163,168,175,176,182,203,204,209,210,218,223,224,232,242,243,253,254,260,265,268,271,272,292,295,296,323,327,359,362,364,367,368,376,377,386,399,406,408,439,441,442,443],things_styl:223,think:[0,6,20,28,35,39,41,46,47,52,53,60,73,80,82,83,84,87,89,94,101,104,107,108,109,116,118,119,121,125,126,127,128,131,133,144,151,161,355,439],third:[3,8,9,13,19,28,30,59,75,76,84,85,88,96,102,116,124,126,138,142,145,146,153,154,155,182,193,218,367,374,377,443],third_person:223,thirdnod:28,this_sign:356,thoma:[36,55,180],thorn:[37,118],thorough:0,those:[2,8,9,10,11,12,13,14,15,16,18,20,22,25,28,30,33,37,39,41,44,46,48,53,57,58,60,67,68,73,76,82,83,87,88,90,91,93,95,97,98,99,100,101,103,104,106,108,109,111,114,115,116,118,119,120,121,122,124,126,127,130,132,134,136,138,143,144,146,149,152,155,158,161,163,176,177,179,182,187,188,189,193,197,204,209,210,216,223,243,247,253,254,256,265,270,271,292,300,301,303,308,337,342,345,363,364,374,375,376,384,385,388,390,413,430,435,436,438,443],though:[0,6,8,9,11,12,13,14,15,16,19,20,28,37,50,54,55,64,72,77,83,84,88,95,96,99,101,102,104,107,108,110,112,114,116,120,122,123,124,126,129,130,138,139,144,146,149,151,153,154,155,157,158,159,163,168,177,204,205,227,253,256,257,259,260,271,272,282,296,300,301,362,367,374,390],thought:[33,34,96,116,121,123,144,146],thousand:[82,96,141,155],thread:[19,78,144,146,163,333,359,383,390],threadpool:359,threadsaf:[399,406],threat:158,three:[13,14,18,20,22,28,31,33,36,37,55,56,58,60,65,73,75,77,80,85,90,92,102,106,110,116,118,122,128,141,142,155,174,187,189,254,259,283,292,367,374],threshold:[83,266,357,368],thrill:106,throttl:[165,166,168,310,319,332,443],through:[5,6,7,12,14,15,17,19,20,22,28,29,30,31,33,36,37,41,42,44,45,50,52,53,62,65,68,69,74,75,76,80,83,85,87,88,89,92,95,96,97,98,99,100,101,102,106,107,112,113,117,118,119,120,123,124,125,126,128,129,133,134,135,138,146,152,155,156,158,159,161,163,165,168,176,182,187,189,193,203,221,222,224,229,247,249,256,257,258,259,260,273,281,282,290,292,295,296,305,306,309,314,316,321,330,334,337,343,346,351,353,354,363,364,368,370,373,374,375,389,390,399,406,430,439,443],throughout:[28,81,87,109,159,258,279],throughput:[196,370],thrown:[129,210],thrust:[270,395],thu:[15,18,20,22,28,30,33,35,39,48,57,60,65,67,69,73,82,96,97,99,100,111,116,123,127,130,134,138,142,148,179,183,205,242,243,281,282,284,292,296,309,346,360,362,363,370],thud:226,thumb:[4,11,60],thumbnail:90,thunder:146,thunderstorm:120,thusli:154,tick:[5,11,22,28,42,47,85,88,140,146,222,258,269,271,309,346],ticker1:[47,309],ticker2:[47,309],ticker:[26,32,42,86,108,140,169,192,269,271,305,309,319,390,443],ticker_class:309,ticker_handl:[47,86,140,165,309,390],ticker_pool_class:309,ticker_storag:309,tickerhandl:[19,24,42,129,140,165,166,192,250,258,271,302,390,443],tickerpool:309,tickerpool_layout:309,ticket:89,tidbit:87,tidi:157,tie:[129,284,443],tied:[18,88,118,176,189,206,218,221,265,283,288,303],tier:[78,155,201],ties:[53,73,81,184],tight:206,tightli:[39,158,196],tild:111,tim:[78,206,225,227,254,256,257,258,259,260],time:[0,2,3,5,7,8,9,11,12,13,14,15,17,18,20,26,28,29,30,31,33,35,37,41,44,47,48,54,55,60,62,63,65,67,68,70,72,73,75,76,77,78,79,81,83,84,86,87,88,89,90,91,92,93,94,95,96,98,100,102,103,107,108,109,111,113,114,115,116,117,118,120,121,122,124,126,127,129,130,135,138,140,141,145,146,148,149,150,151,153,154,155,157,159,163,168,169,171,173,174,176,177,180,187,192,196,198,201,203,209,210,212,213,218,224,231,232,235,240,241,242,249,250,252,253,254,256,257,258,259,260,262,265,269,270,271,288,295,296,299,301,302,304,307,308,309,314,316,318,320,321,326,332,337,339,345,346,347,351,352,353,355,357,362,364,365,367,368,369,370,375,378,381,382,383,386,390,399,406,443],time_ev:235,time_factor:[19,101,212,378],time_format:[390,443],time_game_epoch:[19,101,378],time_str:101,time_to_tupl:212,time_unit:[101,212],time_until_next_repeat:42,timed_script:42,timedelai:[94,308,388,390],timedelta:[384,391],timeeventscript:232,timefactor:101,timeformat:[383,390],timeit:5,timelin:124,timeout:[78,129,137,149,151,337,357,381],timer:[19,22,47,65,88,98,109,112,113,123,129,182,224,252,258,262,265,270,302,303,307,308,309,345,353,387,416,443],timerobject:42,timerscript:42,timescript:378,timeslot:224,timestamp:[19,64,92,345,346,357,378],timestep:[5,346],timestr:383,timetrac:[165,166,310,344,443],timetupl:101,timezon:[146,201,383,384,391],tin:117,tini:[96,104,146],tinker:6,tintin:[147,327,328,338,341],tinyfugu:147,tinymud:[69,99],tinymush:[69,72,99,194],tinymux:[69,99],tip:[46,84,89,144,158,443],tire:[109,176],titeuf87:[78,273],titl:[0,17,51,77,85,102,156,187,189,204,219,243,287,367,370,441,443],title_lone_categori:189,titlebar:51,titleblock:102,tlen:152,tls:145,tlsv10:151,tlsv1:145,tmp:[2,149],tmpmsg:18,to_be_impl:437,to_byt:[390,443],to_closed_st:265,to_cur:258,to_displai:204,to_dupl:175,to_execut:390,to_exit:75,to_fil:246,to_init:260,to_non:296,to_obj:[168,177,296],to_object:197,to_open_st:265,to_pickl:371,to_str:[390,443],to_syslog:246,tobox:323,todai:[123,227],todo:[23,38,43,66,100,110,128,131,133,160],toe:[69,116],togeth:[11,13,15,20,22,30,31,37,40,48,61,65,75,76,77,81,83,85,88,94,99,100,111,113,116,117,118,120,121,122,123,124,126,127,129,130,131,132,139,145,152,155,173,182,184,189,209,210,219,224,239,240,242,243,270,271,281,282,294,295,301,323,342,355,367,368,387,399,406,443],toggl:[104,337],toggle_nop_keepal:337,togglecolor:104,toi:79,toint:[30,41,377],token:[18,126,152,334,337,368,377],told:[9,58,60,70,97,107,113,116,130,155,386],tolkien:101,tom:[30,36,58,72,100,122,130,182,188,226,243,373,377,393],tomdesmedt:393,tommi:[36,39,57,377],ton:[99,105],tone:60,tonon:[182,275],too:[3,5,7,9,11,13,14,15,17,18,19,22,28,31,34,48,50,55,58,60,65,75,76,77,80,81,85,90,91,92,94,96,99,100,106,107,108,109,112,114,115,118,119,121,122,123,124,126,127,129,130,138,141,149,180,182,199,210,211,254,259,265,282,283,291,294,319,323,357,359,365,368,373,374,375,376,387,390],took:[8,112,390],tool2:211,tool:[30,39,41,46,50,53,60,67,69,78,79,82,83,86,88,90,94,99,101,114,116,118,119,121,123,124,125,128,131,133,134,145,146,149,151,155,157,209,210,211,442,443],tool_kwarg:209,tool_nam:209,tool_tag:[79,209,210],tool_tag_categori:[79,209],toolbox:144,toolkit:53,tooltip:51,top:[0,5,10,11,14,20,22,27,29,30,31,42,46,48,50,53,58,76,77,82,83,85,94,96,99,100,102,106,108,112,115,116,117,130,135,141,142,144,149,154,159,163,171,176,198,204,206,212,216,239,243,254,272,273,281,282,286,288,295,304,314,356,362,364,365,368,375,376,383],topcistr:287,topic:[3,5,20,22,31,44,50,54,62,64,67,87,90,102,109,111,114,116,123,139,189,216,218,256,257,258,259,260,287,289,387,430,438],topicstr:287,topolog:[83,281,282],tostr:323,total:[5,19,33,44,49,60,83,101,105,107,122,136,159,170,192,201,213,282,351,375,376,378],total_num:381,touch:[6,60,85,113,114,145,148,158,159,357],tour:[107,113,119,125,128,131,133],toward:[3,22,62,77,82,83,107,121,123,124,227,260,269],tower:[82,224,271],town:[83,275],trace:[65,83,232,282,351,374],traceback:[6,8,14,19,42,53,64,73,99,108,116,130,141,163,232,239,299,323,364,368,383,390,443],tracemessag:351,track:[9,13,19,42,44,67,81,88,95,99,105,113,116,121,122,127,129,138,140,141,156,157,168,176,196,253,260,279,282,305,325,326,331,334,337,352,357,371,372,384,443],tracker:[11,26,78,89],trade:[78,80,122,123,203],tradehandl:203,trader:80,tradetimeout:203,tradit:[2,16,32,54,60,65,109,113,116,123,127,129,155,158,209,273,337,353,375],tradition:[65,99,121,123,124,210],traffic:[145,158,201,327],trail:[53,202],train:[103,108,123,144,253,443],traindriv:138,traindrivingscript:138,trainobject:138,trainscript:138,trainstop:138,trainstoppedscript:138,trait1:253,trait2:253,trait:[19,85,123,127,165,166,199,252,301,443],trait_class_path:253,trait_data:253,trait_kei:253,trait_properti:253,trait_typ:[252,253],traitexcept:253,traitfield:[252,253],traithandl:[165,166,199,252,443],traithandler_nam:253,traithandlertest:252,traitproperti:[165,166,199,252,443],traitshandl:[252,253],transact:[122,203],transfer:[106,141,176,325,335,339,376],transform:[2,111],transit:[37,276,279,281,282,443],transitionmapnod:[83,276,279,282],transitiontocav:276,transitiontolargetre:276,transitiontomapa:83,transitiontomapc:83,translat:[15,36,58,60,62,68,70,113,139,144,201,242,243,301,316,367,443],transmiss:246,transmit:[70,413],transpar:[18,44,51,139,151,294,295,309],transport:[323,334,343],transportfactori:334,transpos:139,trap:[15,105,120],traumat:28,travel:[65,68,81,105,250,273],travers:[13,33,37,81,83,97,106,138,201,249,250,269,270,273,281,282,291,296,416],traverse_:22,traversing_object:[249,250,273,296],travi:[1,443],travis_build_dir:10,treasur:[76,118,122,273],treasurechest:39,treat:[13,15,22,44,46,48,54,82,83,88,111,117,118,168,173,176,226,264,282,286,294,296,301,346,355,374,376,387,443],tree:[11,22,28,39,74,79,83,85,86,88,121,122,132,149,165,166,199,204,208,243,254,272,276,296,301,314,343,359,374,390,412,443],tree_select:[165,166,199,443],treestr:254,trembl:[114,117],treshold:381,trhr:201,tri:[15,22,33,35,36,44,45,55,64,65,70,94,100,107,108,115,118,121,123,126,129,141,147,155,174,192,203,205,225,270,271,318,357,390,391],trial:[7,340],tribal:82,trick:[77,115,126,144,145,364,430,443],tricki:[8,41,139],trickier:[76,102],tried_kei:39,trigger:[2,3,18,20,22,28,32,34,37,44,45,47,59,65,73,80,81,91,98,99,102,124,129,135,136,138,142,147,157,168,169,173,174,177,179,193,204,218,235,265,269,271,295,296,301,309,316,319,323,345,352,356,370,374],trim:367,tripl:[19,85,116,390],triumph:[120,123],trivial:[3,5,19,22,62,107,120,126],troll:55,troubl:[11,35,44,76,80,89,100,107,109,116,119,145,146,149,154,161,162,362],troubleshoot:[76,162,443],troublesom:[14,15,55],trove:[76,122],truestr:225,truli:[44,55,75,96,224],trunc:201,trust:[28,30,57,99,122,123,192,368],truth:3,truthfulli:22,truthi:[108,308],try_num_differenti:174,ttarget:129,tto:337,tty:[76,157],ttype:[165,166,310,322,334,337,443],ttype_step:341,tuck:82,tulip:118,tun:[26,182],tune:[113,123,139,151],tunnel:[26,75,77,81,83,97,100,108,109,115,126,138,182,339],tup:[96,243],tupl:[3,5,13,28,30,36,39,41,50,67,68,96,108,111,126,129,142,155,165,168,174,180,182,187,189,190,197,201,203,204,209,212,213,217,223,226,229,243,258,259,264,268,273,275,281,282,283,284,289,291,292,296,300,301,309,311,314,323,324,334,335,339,346,353,355,362,365,367,369,370,372,374,378,383,385,390,393,394,414],tuple_of_arg_convert:30,tupled:383,turbo:154,turkish:168,turn:[8,11,13,19,20,22,27,28,33,44,45,53,54,55,60,63,65,68,73,75,78,82,83,85,88,99,100,104,108,114,115,116,117,118,120,122,123,126,135,136,138,139,141,144,155,163,168,177,187,192,193,196,235,243,254,256,257,258,259,260,269,271,284,296,301,314,319,327,334,337,345,355,361,364,368,370,374,375,376,377,390,399,419,421,443],turn_act:129,turn_end_check:[256,257,258,259,260],turnbattl:[165,166,199,443],turnchar:258,tut:[120,271],tutor:268,tutori:[3,17,20,21,22,25,28,46,47,53,54,56,60,73,77,81,82,84,85,87,88,90,92,93,94,96,99,100,104,105,107,108,109,111,113,114,115,116,117,122,124,132,139,141,144,149,152,155,162,204,250,257,270,271,442,443],tutorial_bridge_posist:271,tutorial_cmdset:271,tutorial_exampl:[14,15,109,113,116,165,166,199,443],tutorial_info:271,tutorial_world:[77,120,149,165,166,199,443],tutorialclimb:270,tutorialevmenu:268,tutorialmirror:[116,264],tutorialobject:[269,270],tutorialread:270,tutorialroom:[269,271],tutorialroomcmdset:271,tutorialroomlook:271,tutorialweapon:[269,270],tutorialweaponrack:270,tutorialworld:[270,271],tutoru:116,tweak:[6,13,18,31,41,48,53,76,83,92,99,100,108,114,122,128,135,145,151,168,193,265,359,367,398,403],tweet:[103,443],tweet_output:137,tweet_stat:137,tweetstat:137,twenti:100,twice:[28,92,101,120,129,202,232,260,374],twist:[6,19,22,52,54,62,94,144,149,153,154,158,296,308,311,314,316,317,323,324,325,326,331,334,337,340,342,343,345,352,355,359,383,443],twistd:[7,149,163,331,352],twistedcli:62,twistedweb:158,twitch:129,twitter:[137,161,443],twitter_api:152,two:[4,5,6,8,11,13,14,15,16,19,20,22,27,28,30,31,32,33,34,37,40,41,42,44,46,48,51,56,57,58,62,64,65,67,68,69,70,72,73,74,75,77,80,81,82,83,85,88,90,92,93,94,96,97,99,100,102,106,107,109,110,111,112,113,114,115,116,117,118,119,120,122,123,124,125,126,127,128,129,130,138,139,141,142,146,150,151,155,157,158,159,163,175,182,187,196,198,203,204,209,210,213,218,236,241,249,250,253,254,258,260,265,271,272,279,281,282,296,298,314,343,354,355,363,365,368,374,376,377,383,390,391],twowai:182,txt:[0,27,62,76,83,85,116,143,154,155,169,242,330,338,372,374,390,393],tyepclass:294,tying:[155,419],typclass:243,type:[0,3,6,9,15,17,18,19,20,22,25,26,27,28,30,31,33,35,36,41,42,44,45,46,47,48,49,50,51,55,56,57,58,60,65,67,68,69,70,75,77,78,79,80,81,82,83,84,87,88,91,92,93,94,97,98,99,100,101,104,105,107,109,110,111,112,113,114,116,117,120,121,122,123,126,127,128,129,130,135,136,137,138,139,141,144,145,147,154,155,158,163,165,166,168,169,177,182,187,189,192,193,194,196,197,198,199,202,204,206,209,210,214,216,218,219,221,225,229,232,235,236,243,250,252,256,257,258,259,260,265,270,271,272,280,281,282,284,286,288,291,292,295,296,300,301,308,309,312,314,316,317,323,325,326,332,334,335,337,338,339,341,342,343,345,353,355,359,362,363,364,365,367,368,370,371,374,375,376,377,385,386,387,389,390,394,398,399,406,410,411,413,416,424,430,438,443],type_count:206,typecalass:362,typecalss:232,typeclas:114,typeclass:[0,8,12,13,14,18,19,22,24,26,31,33,34,35,37,39,41,42,44,45,46,50,53,55,63,64,65,75,76,77,78,79,81,82,83,85,91,92,96,97,98,100,101,102,103,105,106,107,109,110,111,112,117,119,122,127,128,129,130,135,136,137,138,140,141,142,165,166,168,169,170,171,176,182,187,196,197,198,199,206,209,216,218,221,223,224,228,231,232,235,240,243,249,250,251,256,257,258,259,260,265,271,273,275,284,287,292,294,295,296,300,301,303,304,305,307,309,352,369,370,387,388,390,408,410,413,416,421,431,440,443],typeclass_path:[42,48,171,182,304,363,364],typeclass_search:[170,294,303,363],typeclasses:114,typeclasslistserializermixin:413,typeclassmanag:[170,197,294,303],typeclassmixin:[434,435,436,440],typeclassserializermixin:413,typeclassviewsetmixin:416,typedobject:[48,171,177,198,243,273,284,295,296,304,362,363,364,365,385,390],typedobjectmanag:[170,197,287,294,303,363],typeerror:[3,213,343],typelass:18,typenam:[77,168,169,171,196,198,203,206,212,218,219,224,226,232,240,241,242,243,249,250,251,256,257,258,259,260,262,264,265,269,270,271,273,283,284,288,295,296,300,304,307,321,347,362,364,378,381,382],typeobject:365,types_count:206,typic:[8,19,87,107,253,259,260,413,440],typo:[84,85,89,158],ubbfwiuvdezxc0m_2pm6ywo:84,ubuntu:[6,11,145,146,149,151,155,158],uemail:170,ufw:158,ugli:[41,51,98,116,384],uid:[157,170,171,326,333,354,355],uit:[77,204],ulrik:100,ultima:144,umlaut:16,unabl:[152,227],unaccept:22,unaffect:[28,129,258,308],unalia:[18,187],unam:170,unari:252,unarm:257,unarmor:257,unauthenticated_respons:431,unavoid:47,unban:[18,55,108,180,187,193,196],unban_us:187,unbias:213,unbroken:373,uncal:308,uncas:367,uncategor:387,unchang:[6,36,242,253,301,390],unclear:[58,83,95,124,282],uncolor:[60,104],uncom:[151,155],uncommit:11,uncompress:327,unconnect:[83,194,214],uncov:206,undefin:[2,46,67],under:[2,3,5,7,9,18,22,28,30,31,42,48,51,53,64,67,69,73,76,78,80,85,88,99,108,109,111,114,115,117,121,122,123,127,130,134,141,142,143,144,147,149,154,157,163,177,179,182,209,225,252,253,254,272,292,307,314,341,362,367,374,375,376,390,393,394,407,443],undergar:206,undergon:232,underground:83,underli:[11,33,50,88,99,121],underlin:[376,389],underneath:[76,364],underpin:131,underscor:[6,28,30,32,68,75,79,85,116,175,377,390],underscror:175,understand:[0,3,11,16,20,22,39,41,44,52,54,60,65,70,71,79,81,82,84,85,87,90,92,94,95,96,97,103,104,107,108,111,113,114,115,116,117,121,122,123,124,126,130,134,141,142,144,146,147,149,158,159,174,175,187,210,241,242,243,359,367,390,443],understood:[8,31,58,65,82,107,123,282,342,343],undertak:124,undestand:92,undo:[27,158,372],undon:179,undoubtedli:99,uneven:282,unexpect:[8,107,139,374,390],unexpectedli:381,unfair:123,unfamiliar:[32,33,53,68,78,116,136,149,155],unfocu:216,unfocus:218,unformat:[28,374,378],unfortun:[90,121],ungm:443,unhappi:76,unheard:58,unhilit:389,unicod:[16,65,70,78,83,168,282,367,390],unicodeencodeerror:367,unifi:[141,354],uniform:44,unimpl:443,uninflect:393,uninform:145,uninstal:[149,443],uninstati:390,unintent:272,union:[20,28,114,175,265,374],uniqu:[2,8,12,14,20,22,25,33,34,35,41,42,44,46,48,50,51,55,58,62,65,80,83,85,88,99,109,111,114,118,130,152,155,168,173,175,177,182,187,194,196,197,205,209,212,214,218,231,241,242,243,249,254,257,258,269,271,275,281,282,284,287,296,300,301,303,309,311,323,324,332,345,346,354,355,362,363,364,365,370,372,377,384,387,390,394],unit:[1,2,10,19,20,45,53,84,88,101,105,144,197,211,212,222,235,252,258,316,370,378,390,395,443],unittest:[8,10,92,193,355,370,388],univers:[15,16,101,187],unix:[0,29,36,78,85,147,149,151,188,272,375,383,390],unixcommand:[165,166,199,443],unixcommandpars:272,unixtim:383,unjoin:203,unknown:[51,98,102,114,282,300,390],unknown_top:438,unleash:93,unless:[13,18,19,22,28,30,33,34,35,37,47,55,68,74,77,83,85,90,91,94,114,117,121,123,130,143,146,151,153,155,163,168,175,176,180,182,187,189,190,193,196,231,241,242,243,260,270,286,291,292,296,301,312,327,343,355,362,364,377,387,390,391,438],unlik:[45,83,84,88,123,127,155,168,204,253,258,282,364],unlimit:[273,281],unlink:[26,108,182],unload:[83,388],unload_modul:388,unlock:[18,39,100,114,187,218,362],unlock_flag:218,unlocks_red_chest:39,unlog:[5,180,185,186,194,214,355],unloggedin:[44,165,166,172,178,355,443],unloggedincmdset:[25,26,44,115,186,214],unlucki:55,unmask:243,unmodifi:[174,191,224,374],unmonitor:[319,443],unmut:[18,187,196],unmute_channel:187,unnam:[46,175],unneccesari:70,unnecessari:[2,121],unnecessarili:111,unneed:273,unpaced_data:323,unpack:[107,291],unpars:[32,36,174,342,343,377],unpaus:[42,157,182,192,308],unpickl:[50,65,323,362,371,386],unplay:[44,92],unpredict:390,unprivileg:301,unprogram:127,unpuppet:[26,45,130,179,398],unpuppet_al:168,unpuppet_object:[12,168],unquel:[26,39,109,116,179],unreal:144,unrecogn:377,unrecord_ip:357,unregist:73,unrel:[11,28],unrepat:390,unrepeat:[319,390,443],unreport:319,unrestrict:122,unsaf:[163,175,271,390],unsafe_token:367,unsatisfactori:82,unsav:372,unsel:106,unset:[13,22,37,81,100,129,180,193,218,219,221,243,253,269,281,283,292,296,300,301,309,362,370,374,375,376,377,383],unset_character_flag:218,unset_flag:[218,219],unset_lock:187,unsign:391,unsigned_integ:[384,391],unsignedinteg:384,unskil:253,unspawn:282,unstabl:157,unstrip:174,unsub:[18,187],unsub_from_channel:187,unsubscrib:[18,47,100,187,309,325],unsuccessful:64,unsuit:[57,300,365],unsupport:13,unsur:[16,30,84,108,129,149,152,155,250],unsurprisingli:116,untag:51,untest:[8,147,149],until:[0,2,5,6,11,13,14,20,22,28,36,42,47,51,52,54,55,60,67,83,88,94,95,109,111,116,117,120,121,122,123,126,130,134,139,145,149,203,206,212,235,252,256,257,258,259,260,265,269,270,271,281,296,308,314,343,345,362,367,368,378,390],untouch:[83,117,367],untrust:[14,30,78,123,390],unus:[22,79,83,104,123,168,173,177,187,196,224,254,260,264,271,284,296,307,337,353,358,363],unusu:[124,158],unwield:257,unwieldli:176,upcom:[148,161],updat:[1,2,5,6,8,12,13,14,15,22,26,28,31,34,37,42,47,49,64,65,67,68,73,76,81,83,85,88,90,93,94,95,96,99,100,101,104,107,113,116,121,126,127,129,130,134,141,142,144,145,146,147,149,151,152,154,155,156,157,161,169,176,177,182,187,190,192,193,196,207,224,232,243,252,259,271,277,283,288,292,295,296,298,299,301,303,305,330,332,333,338,352,353,355,357,362,364,371,372,373,374,375,376,381,390,398,399,406,411,415,430,431,440,441,443],update_attribut:362,update_buff:372,update_cached_inst:381,update_charsheet:100,update_current_descript:224,update_default:352,update_flag:353,update_lock:411,update_method:51,update_po:81,update_scripts_after_server_start:303,update_session_count:353,update_undo:372,update_weath:271,updated_bi:229,updated_on:229,updatemethod:51,updateview:[440,441],upenn:393,upfir:7,upgrad:[88,149,154,443],upload:[88,90,149,155,157,201,443],upmaplink:[83,282],upon:[15,33,49,53,67,70,94,121,130,135,155,157,158,225,247,256,257,258,259,260,306,316,325,357,375,440],upp:271,upper:[8,49,60,67,83,94,96,179,253,281,282,367],upper_bound:253,upper_bound_inclus:253,uppercas:[60,243,367],upping:60,upsel:155,upset:108,upsid:273,upstart:62,upstream:[0,9,88,159,443],upt:176,uptim:[19,26,30,55,101,192,328,378],urfgar:41,uri:[177,196,286,288,364],url:[11,49,50,52,53,59,73,88,113,134,142,145,155,156,165,166,169,177,187,196,201,202,286,288,333,343,359,364,389,396,397,409,416,426,429,435,436,438,441,443],url_nam:[416,431],url_or_ref:85,url_path:416,url_protocol:201,url_to_online_repo:11,urlencod:102,urlpattern:[53,73,90,102,132,141,142],usabl:[63,90,116,122,130,182,204,218,227,258,291,357,374],usag:[3,5,22,28,31,35,41,47,55,72,75,77,85,88,91,93,94,95,100,104,105,106,107,108,115,116,126,127,129,130,138,152,155,162,177,179,180,181,182,187,188,189,192,193,194,203,204,205,206,209,210,212,213,214,216,224,225,226,236,239,240,242,243,247,249,250,251,256,257,258,259,260,265,268,269,270,271,272,273,275,277,291,299,308,314,345,374,376,377,381,443],use:[0,2,3,4,5,7,8,9,10,11,12,13,14,15,16,17,19,20,22,25,27,28,29,30,31,32,33,34,35,36,37,39,41,42,44,45,46,48,49,50,51,52,53,54,55,56,57,58,60,62,63,64,65,67,68,69,70,72,73,74,75,76,77,78,79,80,81,82,83,84,85,88,89,90,91,92,93,94,96,98,99,100,101,102,103,104,105,106,107,108,109,110,111,113,114,115,116,117,118,119,120,121,124,125,126,127,128,129,130,131,132,133,134,136,137,138,139,140,141,142,144,145,146,147,148,149,150,151,152,153,155,156,157,158,159,161,162,165,168,169,171,173,174,175,176,177,179,182,183,187,188,189,190,192,193,194,196,198,201,203,204,205,206,209,210,213,216,218,219,223,224,226,227,231,235,236,239,240,241,242,243,249,251,253,254,256,257,258,259,260,262,265,268,269,270,271,272,273,275,276,277,281,282,284,286,291,292,295,296,300,301,308,309,312,319,323,336,338,339,342,345,346,353,354,355,362,363,364,365,367,368,369,370,372,373,374,375,376,377,381,383,384,386,390,391,394,399,401,406,411,413,416,436,439,443],use_dbref:[243,294,296,387],use_destin:296,use_i18n:64,use_item:258,use_nick:[168,243,296],use_required_attribut:[400,402,404,406,430],use_ssl:201,use_success_location_messag:240,use_success_messag:240,use_tz:201,use_xterm256:367,useabl:273,used:[5,8,9,11,12,13,14,16,17,18,19,20,23,25,27,28,29,30,31,32,33,34,35,36,37,39,41,42,44,45,46,47,48,50,51,52,53,54,56,57,58,60,62,64,65,67,68,69,70,71,72,73,75,76,77,78,79,80,82,83,85,88,94,95,98,99,100,101,102,105,106,107,109,110,111,112,113,114,115,116,117,118,119,120,123,126,127,129,130,132,134,136,137,138,139,141,142,144,146,147,148,149,151,153,155,157,158,159,163,165,166,168,169,173,175,176,177,179,182,187,189,190,191,192,193,194,196,199,201,203,204,206,208,209,212,214,218,219,221,224,225,226,227,229,231,232,235,236,241,242,243,250,253,254,256,257,258,259,260,265,269,270,271,272,273,275,278,281,282,283,284,286,287,288,289,290,291,292,294,296,300,301,307,308,309,310,311,312,316,319,320,323,324,325,326,327,328,329,330,331,332,334,336,337,338,341,342,343,346,353,355,356,362,363,364,365,366,367,368,370,371,372,374,375,376,377,383,384,385,386,387,390,391,394,398,399,403,406,408,413,416,430,434,436,438,439,440,443],useful:[0,1,2,3,5,8,11,13,14,15,16,17,19,20,27,28,30,31,33,36,37,39,41,42,45,46,47,48,50,53,54,55,56,57,60,63,75,77,79,80,82,83,84,85,86,88,90,92,93,94,95,96,99,100,102,103,104,107,108,109,111,112,114,115,116,117,118,120,123,125,126,129,130,137,140,141,146,149,155,159,161,163,173,175,176,177,179,181,182,189,190,193,196,199,203,204,209,218,223,231,232,236,242,243,247,253,265,271,272,273,282,283,291,296,300,301,314,334,362,364,368,374,378,386,390,412,442,443],usefulli:115,useless:[114,126,269],user:[0,2,3,5,6,8,10,12,14,15,18,20,25,27,28,29,30,31,32,33,36,39,44,45,48,49,50,51,52,54,55,59,60,62,63,68,70,71,73,77,78,79,81,83,84,87,88,89,90,92,93,94,95,103,104,106,107,108,109,113,114,116,118,119,123,126,130,134,138,139,141,142,144,145,146,149,150,151,152,153,154,155,156,157,159,162,168,169,171,174,177,180,182,187,189,192,193,196,197,198,201,202,204,206,209,217,218,224,226,230,232,243,246,247,254,258,260,264,271,273,282,284,286,288,292,296,301,307,310,312,318,326,333,334,337,342,343,353,355,358,362,364,367,372,374,375,376,377,384,390,391,398,411,419,422,430,435,436,437,438,439,441,443],user_change_password:398,user_input:28,user_permiss:[171,398],useradmin:398,userauth:334,userchangeform:398,usercreationform:[398,430],usermanag:170,usernam:[11,12,25,28,32,45,49,90,122,142,149,157,168,171,214,334,358,398,410,413,422,430],usernamefield:430,userpassword:[55,108,180],uses:[5,8,10,11,13,14,16,17,18,20,22,28,30,31,33,35,41,42,45,46,47,48,50,51,53,56,58,60,62,67,68,70,75,76,77,79,88,94,95,96,97,99,102,104,111,113,114,116,117,122,134,146,155,156,175,189,193,203,209,213,218,224,236,242,243,252,253,258,271,272,273,281,282,292,294,304,309,323,343,357,362,365,383,384,390,410,413,419,438],uses_databas:390,using:[0,2,5,6,9,11,12,13,14,15,16,18,19,20,22,26,27,28,30,31,32,33,36,37,39,41,42,44,45,46,47,48,49,50,51,52,53,54,55,57,58,60,65,67,68,69,72,74,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,98,99,100,101,104,106,107,108,109,110,111,112,113,116,117,121,122,123,124,126,127,128,129,130,135,136,137,138,139,140,141,142,143,144,145,146,147,149,151,152,153,155,157,158,162,163,168,171,173,176,177,179,181,182,187,189,190,191,192,193,196,201,203,204,205,209,210,211,212,213,218,224,225,227,231,240,242,243,249,250,251,253,254,256,257,258,259,260,268,269,271,272,273,275,276,281,282,284,286,289,292,294,296,299,300,301,304,308,309,325,326,327,332,333,337,343,346,355,356,357,359,362,364,365,367,368,372,374,375,378,383,384,385,386,387,388,390,396,411,415,416,430,438,439,442,443],usr:[88,149,154,157],usu:42,usual:[0,5,6,7,8,11,12,13,18,19,20,22,27,28,29,32,33,35,36,37,39,41,42,44,46,47,48,50,52,53,57,58,60,62,64,75,76,77,78,80,83,84,85,88,90,91,92,94,95,99,101,104,107,108,110,111,113,114,116,117,118,120,123,124,126,134,139,141,145,146,149,151,153,155,157,163,168,169,174,175,176,177,179,182,187,188,192,193,198,212,221,231,232,235,241,242,243,253,271,272,281,282,284,292,294,295,296,300,301,314,316,321,346,353,362,364,367,369,370,374,375,377,383,385,387,390,399,406],usuallyj:83,utc:[146,391],utf8:[2,146],utf:[16,32,70,82,100,147,194,201,319,325,342,376,390],util:[6,8,13,14,15,27,28,29,37,42,50,51,54,56,60,67,81,82,99,100,101,104,106,110,112,119,124,135,141,142,145,149,158,165,166,181,192,193,196,198,199,201,211,212,215,217,222,224,225,228,232,233,248,250,252,253,259,265,266,268,274,279,285,288,294,296,298,300,307,308,321,340,345,362,363,364,396,397,399,400,402,404,406,414,430,431,443],utilis:374,uyi:242,v19:149,vagu:91,val1:[13,377],val2:[13,377],val:[13,68,168,179,338,390],vala:13,valb:13,valid:[0,3,6,10,13,14,20,22,28,30,37,41,53,59,60,68,79,83,95,97,100,102,107,113,116,130,141,142,151,155,158,163,165,166,168,170,174,176,182,190,193,196,197,203,204,209,211,225,229,232,233,241,243,252,253,254,259,270,271,272,273,281,292,296,298,300,301,303,305,307,308,309,310,312,314,338,342,353,362,363,365,368,370,374,377,384,385,386,387,389,390,391,394,413,430,434,436,441,443],valid_handl:384,validate_cal:377,validate_email_address:390,validate_input:253,validate_nam:296,validate_onli:292,validate_password:[28,168],validate_prototyp:300,validate_sess:355,validate_usernam:168,validated_consum:[79,209],validated_input:209,validated_tool:[79,209],validationerror:[168,300,358,384,386],validator_config:168,validator_kei:384,validatorfunc:[165,166,366,443],valign:376,valu:[3,6,8,9,12,13,17,19,20,22,27,30,32,33,34,36,42,47,48,49,50,51,54,55,60,67,68,75,77,78,81,82,83,85,88,90,92,93,96,100,101,102,104,105,106,108,109,111,113,114,115,116,118,121,122,127,129,130,139,141,142,149,151,155,168,171,173,175,177,179,180,182,193,196,198,201,204,206,213,218,225,226,227,229,232,233,240,241,242,243,248,252,253,256,257,258,259,260,264,266,271,273,281,282,284,288,291,292,294,295,296,299,300,301,304,308,309,312,319,320,321,323,332,337,338,353,354,355,360,362,363,364,365,367,369,370,371,372,373,374,377,381,382,384,385,386,387,390,391,394,410,413,430,439,441,443],valuabl:120,value1:[41,85],value2:[41,85],value3:85,value_a:13,value_b:13,value_displai:413,value_from_datadict:386,value_to_obj:300,value_to_obj_or_ani:300,value_to_str:386,valueerror:[41,107,130,201,204,212,239,241,362,365,367,370,390,391],valuei:82,values_list:111,valuex:82,vampir:111,vanilla:[0,48,67,76,81,98,100,114,121,443],vaniti:28,vari:[11,31,48,62,64,69,83,88,95,105,113,116,230,242,253,260,284,353,362,364],variabl:[4,5,6,7,13,14,20,22,28,30,31,33,41,42,51,63,64,68,70,73,75,80,81,83,85,87,88,93,98,100,102,107,108,111,114,115,116,117,132,138,141,142,149,157,158,159,168,171,173,177,179,182,187,190,192,193,194,196,201,207,216,224,225,229,231,232,235,240,253,271,281,283,291,295,296,300,301,311,314,324,327,328,330,334,336,346,353,360,367,368,374,377,390,423,443],variable_from_modul:390,variable_nam:[229,232],variablenam:390,varianc:242,variant:[13,46,78,87,116,176,204,214,250,325,367,443],variat:[39,101,111,123,126,127,129,175,224,242,390],varieti:[87,105,129,137,258,259],variou:[5,6,8,13,16,22,35,37,41,42,44,46,47,48,51,53,62,66,68,71,80,83,84,86,99,101,102,104,111,112,113,116,118,122,126,127,129,130,131,151,155,158,163,175,191,212,218,242,243,254,258,259,265,269,270,282,292,295,296,301,302,309,346,370,376,387,388,419],varnam:338,vast:[67,69,82,146],vastli:88,vcc:242,vccv:242,vccvccvc:242,vcpython27:76,vcv:242,vcvccv:242,vcvcvcc:242,vcvcvvccvcvv:242,vcvvccvvc:242,vector:390,vehicl:[91,443],velit:29,venu:[11,197],venv:[149,154],ver:146,verb:[30,58,92,296,350,377,393,395],verb_actor_stance_compon:393,verb_all_tens:393,verb_conjug:[30,165,166,366,443],verb_infinit:393,verb_is_past:393,verb_is_past_participl:393,verb_is_pres:393,verb_is_present_participl:393,verb_is_tens:393,verb_past:393,verb_past_participl:393,verb_pres:393,verb_present_participl:393,verb_tens:393,verb_tenses_kei:393,verbal:296,verbatim:[30,109,116,394,443],verbatim_el:390,verbos:[0,8,129,243],verbose_nam:[141,364,398,399,406],verbose_name_plur:[399,406],veri:[0,3,5,6,8,9,11,12,13,14,15,17,18,19,20,22,25,27,28,29,30,31,32,33,41,42,45,46,47,48,50,51,53,54,58,60,62,67,68,69,72,74,75,76,77,78,80,81,82,83,84,85,87,88,89,90,91,93,94,96,98,99,100,103,106,107,109,111,113,114,116,117,118,119,120,121,122,123,124,126,127,129,130,138,140,142,143,144,145,146,151,153,155,159,163,168,169,175,177,193,196,198,204,206,209,231,232,241,242,243,249,250,251,254,259,269,272,273,287,295,300,318,363,365,370,372,374,390,439],verif:155,verifi:[2,5,11,28,114,149,155,182,193,201,209,225,259,339],verify_online_play:225,verify_or_create_ssl_key_and_cert:339,verify_ssl_key_and_cert:335,verifyfunc:225,versa:[44,53,58,62,68,83,129,187,275,323,377,394],version:[1,2,9,12,13,14,15,18,20,22,25,26,28,31,32,35,36,42,48,51,53,60,64,67,69,79,82,83,84,88,90,91,94,95,99,104,107,108,109,113,115,116,121,123,126,130,134,139,144,146,147,148,149,154,155,157,162,182,190,192,194,201,205,206,214,223,224,243,257,258,259,260,265,270,296,301,314,319,333,357,362,367,375,390,398,399,400,403,404,407,413,430,442,443],version_info:314,versionad:85,versionchang:85,versu:[87,443],vertic:[270,279,281,282,376,390],very_strong:292,very_weak:33,vest:158,vet:41,veteran:144,vex:395,vfill_char:376,vhost:443,via:[5,11,13,18,19,28,29,30,32,39,40,41,42,48,49,51,54,60,62,65,67,69,78,84,87,89,98,99,106,111,113,114,116,121,127,130,139,149,151,155,158,195,197,198,201,246,265,275,295,304,362,365,367,377,382,443],viabl:[79,123,269],vice:[44,53,58,62,68,83,129,187,275,323,377,394],vicin:[22,188,224,271],video:[51,60,113,144],vidual:83,vienv:76,view:[0,3,11,13,17,19,27,28,29,31,33,42,47,49,50,52,53,58,67,82,83,85,87,88,90,100,103,105,108,113,114,116,119,123,129,130,134,149,153,155,161,162,163,165,166,168,177,179,180,182,187,188,189,192,196,206,243,256,257,258,259,260,273,286,288,296,298,349,364,375,377,396,401,408,409,411,413,415,419,423,426,429,430,443],view_attr:182,view_lock:411,view_on_sit:[398,400,402,403,404,406],viewabl:[86,87,189],viewer:[85,92,102,243,273,296,364],viewpoint:[377,394,395,443],viewport:3,viewset:[49,415,416],vim:[15,27,119,144,372],vincent:[78,204,224,241,272],violent:28,virtual:[83,87,90,99,144,149,155,192,224,282,378],virtual_env:154,virtualenv:[0,2,5,6,7,9,64,76,85,146,149,154,155,157,162,163,443],virtualhost:145,viru:149,visibl:[2,11,13,14,20,31,35,44,48,53,60,83,85,92,102,104,121,122,123,126,130,148,149,151,155,162,188,189,243,279,281,282,296,326,359,374,390,438],vision:[13,100,121],visit:[77,81,82,141,142,155,272,374],visitor:[73,142,158],vista:149,visual:[5,31,51,60,83,92,99,149,168,189,227,279,281,282,284,367],visual_rang:284,vital:107,vlgeoff:[78,212],vniftg:149,vnum:98,vocabulari:[80,390],voic:[22,78,80,443],volatil:300,volcano:118,volum:[82,91,121,157,443],volund:111,volunt:64,voluntari:84,volupt:29,vowel:242,vpad_char:376,vscode:119,vulner:[94,158],vvc:242,vvcc:242,vvccv:242,vvccvvcc:242,w001:8,wai:[3,5,6,7,8,9,11,12,13,14,15,16,19,20,22,30,31,32,33,34,35,36,37,39,40,41,42,44,45,46,47,48,52,53,54,55,57,58,60,62,65,67,68,70,72,74,75,76,77,79,80,81,82,84,85,87,88,89,91,93,95,96,97,98,99,100,101,102,103,105,106,107,108,109,110,111,112,113,114,117,118,120,121,123,124,126,127,129,130,134,135,136,138,139,140,141,144,146,148,149,153,154,155,156,158,159,162,163,168,174,175,182,189,196,203,209,210,212,213,218,221,224,225,227,231,235,242,249,250,253,254,256,257,258,259,260,265,268,269,270,272,275,279,282,286,292,296,300,309,314,319,323,334,355,357,359,360,361,362,363,365,368,373,374,376,381,383,386,390,394,408,415,416,439,441,443],wail:81,waist:206,wait:[3,19,22,28,42,54,75,92,93,94,109,120,122,123,138,169,193,231,235,253,256,257,258,259,260,265,314,324,343,345,357,370,374,390],wait_for_disconnect:324,wait_for_server_connect:324,wait_for_statu:314,wait_for_status_repli:314,waiter:314,waitinf:193,wake:225,walias:182,walk:[15,20,58,75,78,80,81,83,87,91,96,101,106,121,123,126,250,251,254,265,273,275,282,368],walki:[18,88,123],wall:[82,108,116,120,126,180,188,224,270,271],wand:[79,209,210],wanna:[84,122,203,265],want:[0,3,4,5,6,7,8,9,11,12,13,14,15,16,18,19,20,22,25,27,28,30,31,32,33,34,35,36,37,39,41,42,44,45,47,48,49,50,51,53,54,55,57,58,60,62,63,64,65,67,68,69,70,73,74,75,76,77,78,79,80,81,82,83,84,85,88,89,90,91,92,93,94,95,96,97,99,100,101,102,104,105,106,107,108,109,111,112,113,114,115,116,117,118,119,121,122,124,125,126,127,128,130,131,132,133,134,136,138,139,140,141,142,143,145,146,147,148,149,151,152,153,154,155,156,158,159,161,162,163,168,175,176,177,179,188,189,193,194,203,204,209,214,218,224,225,227,241,243,246,253,254,256,257,258,259,260,265,271,273,281,282,284,291,292,296,301,307,309,330,332,338,345,355,360,362,364,372,374,375,381,386,390,399,406,408,415,430,435,438,439,441,442,443],wanted_id:33,war:[31,286],warchannel:187,ware:106,warehous:[246,368],wari:[60,273,296,364],warm:[42,163,318],warn:[9,13,19,20,31,44,74,78,82,83,88,107,113,116,142,145,149,155,159,175,196,201,247,313,314,339,383,442,443],warnmsg:383,warrior:[39,93,99,100,120,123,130,187],wasclean:[325,342],wasn:[3,75,142],wast:[15,47],watch:[7,15,34],water:[79,176,209,210,240],waterballon:240,wave:82,wavi:83,wcach:192,wcactu:259,wcommandnam:272,wcure:259,wdestin:182,weak:301,weakref:381,weaksharedmemorymodel:[321,381],weaksharedmemorymodelbas:[321,381],weakvalu:381,wealth:106,weap:13,weapon:[13,28,41,67,88,94,105,106,108,110,111,115,120,121,122,127,128,129,210,257,269,270,301,443],weapon_ineffective_msg:269,weapon_prototyp:270,weaponrack_cmdset:270,weaponstr:115,weapoon:120,wear:[78,105,122,128,206,243,257,265],wearabl:206,wearer:206,wearstyl:206,weather:[42,46,47,74,82,95,103,113,120,121,127,271,443],weather_script:42,weatherroom:[140,271],web:[17,31,33,41,49,52,56,59,64,76,85,86,87,88,90,92,95,102,109,112,116,119,121,133,144,145,146,149,153,154,162,163,165,166,201,316,318,328,332,338,342,343,353,357,359,365,371,443],web_client_url:148,web_get_admin_url:[177,196,286,288,364],web_get_create_url:[196,288,364],web_get_delete_url:[196,288,364],web_get_detail_url:[177,196,286,288,364],web_get_puppet_url:364,web_get_update_url:[196,288,364],web_help_entri:438,web_plugin:113,webclient:[24,44,51,53,59,60,62,65,68,71,73,86,88,95,102,113,116,147,148,151,158,163,165,166,189,192,201,218,268,310,319,322,338,343,354,374,396,424,431,443],webclient_ajax:[51,165,166,310,322,443],webclient_en:158,webclient_gui:443,webclient_opt:319,webclientdata:343,webclienttest:431,webpag:[17,145,155,427,443],webport:2,webserv:[24,49,53,62,73,76,112,113,132,145,146,151,155,157,159,161,165,166,310,443],webserver_en:158,webserver_interfac:[151,155],webserver_port:[2,155],webservic:158,websit:[17,49,50,51,52,76,85,86,87,88,99,102,103,113,132,134,141,144,151,155,156,158,165,166,343,359,396,398,424,443],websocket:[51,52,62,88,155,157,325,331,342,354,443],websocket_client_interfac:[151,155],websocket_client_port:155,websocket_client_url:[145,151,155],websocket_clos:342,websocketcli:342,websocketclientfactori:325,websocketclientprotocol:325,websocketserverfactori:331,websocketserverprotocol:342,weed:[0,175],week:[101,113,212,383,391],weeklylogfil:383,weigh:[105,345],weight:[69,83,85,121,146,227,242,281,282,363,443],weird:[31,108,123,126,390],welcom:[25,53,64,77,84,90,106,119,132,149,153],well:[0,7,8,9,11,12,13,17,18,22,26,27,28,29,30,31,32,37,39,41,44,48,50,53,55,56,57,62,63,68,69,70,73,76,77,78,80,81,83,84,85,87,88,90,91,92,96,97,99,100,101,102,104,106,107,111,114,115,116,117,118,120,122,123,124,126,129,130,134,136,137,141,142,146,152,154,156,158,159,162,171,175,176,177,182,187,195,196,203,206,216,217,218,224,231,239,242,243,253,254,258,259,260,265,269,281,284,296,304,308,310,314,323,325,326,332,349,357,362,363,367,371,374,377,378,386,390,399,406],went:[8,11,99,117,126,162,163,305,309],weonewaymaplink:[83,282],were:[3,8,13,14,18,20,22,28,30,41,42,48,51,54,67,69,79,83,84,88,97,100,102,105,106,107,111,113,114,115,116,117,123,130,139,147,157,159,168,174,175,176,187,196,241,254,281,282,296,300,361,364,368,377,387,390,393,395],weren:101,werewolf:[92,443],werewolv:111,werkzeug:390,wesson:58,west:[81,82,83,92,97,109,182,271,281,282],west_east:82,west_exit:271,western:82,westward:271,wet:123,wether:[203,370],wevennia:77,wflame:259,wflushmem:192,wfull:259,wguild:187,what:[0,3,5,6,8,9,10,11,12,14,15,18,19,20,22,28,30,31,32,33,35,37,41,42,44,47,48,49,52,53,54,55,57,58,60,62,65,67,68,69,70,72,74,75,76,77,79,80,81,82,83,85,88,89,90,91,92,94,96,97,98,99,100,101,102,104,106,108,109,111,112,114,115,116,120,121,122,125,126,127,128,129,130,131,133,134,135,136,138,139,140,141,142,143,144,145,146,149,151,153,155,156,158,159,163,168,173,175,176,177,179,182,193,196,209,210,216,218,219,223,232,240,241,243,246,251,253,258,259,269,271,281,282,283,284,286,288,292,296,299,300,301,314,316,319,326,338,343,358,360,362,364,365,367,368,374,384,385,390,391,413,419,421,422,430,439,440,443],whatev:[8,11,12,13,15,19,22,28,30,37,62,77,80,82,83,88,91,98,100,105,107,116,117,121,122,124,130,141,142,143,146,151,157,162,168,169,176,182,209,216,225,259,264,269,270,296,301,304,305,325,334,337,342,355,362,375,384,439],wheat:209,wheel:[47,99,149,154],whelp:[189,272],when:[0,1,2,3,6,7,8,9,11,12,13,14,15,16,17,18,19,20,22,25,27,28,29,30,31,32,33,34,36,37,39,41,42,44,45,46,48,50,51,52,53,54,55,57,58,60,62,63,64,65,67,68,69,70,72,75,76,77,78,80,81,82,83,84,85,88,90,91,94,95,96,97,98,99,100,101,102,105,106,107,108,109,111,112,113,114,115,116,117,118,119,120,122,123,124,125,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,143,144,145,146,147,149,150,151,154,155,156,157,158,159,162,163,165,168,169,171,173,175,176,177,179,181,182,187,188,189,190,191,192,194,196,197,198,201,202,203,204,205,206,209,210,212,213,214,218,219,221,224,225,226,227,232,233,235,236,239,240,241,242,243,249,251,253,254,256,257,258,259,260,262,265,266,268,269,270,271,272,273,280,281,282,283,287,288,291,292,295,296,298,300,301,304,305,307,308,309,311,314,316,320,321,323,324,325,326,327,328,329,330,332,334,335,336,337,338,339,342,343,345,346,352,353,354,355,356,357,362,364,365,367,368,370,371,372,373,374,375,376,381,382,383,385,390,394,403,419,421,430,434,436,441,443],when_stop:314,whenev:[7,9,13,18,22,32,33,34,36,41,42,45,54,58,63,70,77,80,82,88,92,114,126,135,155,156,157,168,176,196,221,269,270,271,294,296,305,307,316,333,353,354,355],where:[0,2,3,4,5,8,11,13,14,15,18,20,22,27,28,29,30,31,33,35,39,41,42,44,48,50,51,53,54,55,58,59,60,62,64,65,67,68,69,70,73,75,76,77,79,80,81,82,83,85,88,91,92,94,96,98,99,100,101,102,106,107,108,109,113,114,115,116,117,119,120,121,123,125,126,127,128,130,132,134,135,136,138,141,142,146,154,155,157,158,159,161,162,174,175,180,182,188,189,191,193,196,197,201,205,210,213,218,236,242,243,247,252,253,258,270,271,273,281,282,283,284,289,291,292,294,296,300,301,305,314,316,319,323,346,351,355,362,364,367,368,372,374,375,376,377,378,384,385,390,394,406,413,441,443],wherea:[0,3,5,6,9,13,14,20,22,33,44,48,55,57,58,60,62,67,70,83,91,98,104,106,116,129,158,170,209,242,282,294,303,309,343,362,381],whereabout:120,wherebi:259,wherev:[8,58,82,88,118,149,151,157,204,246,253,258,282],whether:[28,55,75,80,87,96,101,102,115,138,168,169,176,182,187,189,196,225,254,256,257,258,259,260,296,309,325,342,357,362,363,367,384,386,390,393],whewiu:76,which:[0,2,3,4,5,6,7,8,11,13,14,15,16,18,19,20,22,24,26,28,29,30,31,32,33,35,36,37,39,41,42,44,45,46,47,48,49,51,52,54,55,57,58,60,62,63,65,67,68,69,70,73,74,75,76,77,79,80,81,82,83,84,85,88,90,92,93,94,95,96,97,98,99,100,101,102,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,120,121,122,123,124,126,127,129,130,132,134,135,136,137,138,139,140,141,142,146,147,149,150,151,152,153,155,157,158,159,162,163,168,169,173,175,176,177,179,180,182,188,189,190,193,194,196,197,198,201,203,204,205,206,207,209,210,212,216,218,223,224,225,227,235,236,239,243,246,247,249,251,253,254,256,257,258,259,260,265,269,270,271,272,273,281,282,283,284,288,292,294,295,296,300,301,304,305,307,309,311,313,314,318,319,326,332,334,342,343,345,346,353,354,355,357,360,362,363,364,365,367,368,370,371,374,375,376,377,378,381,383,384,386,387,388,390,393,399,406,413,416,419,421,422,423,430,436,439,441],whichev:[19,121,124,155,158,271],whilst:82,whimper:120,whisk:221,whisp:242,whisper:[26,78,80,108,188,216,218,235,242,243,296],whistl:58,white:[32,60,139,367,390],whitelist:32,whitenois:[78,253],whitespac:[15,19,22,100,104,108,111,119,126,130,190,239,243,367,368,376,390],who:[13,18,26,28,30,31,33,36,39,41,42,48,49,54,55,58,60,64,80,81,87,90,91,98,100,111,115,116,117,120,121,122,124,126,127,129,130,138,140,141,158,169,177,179,182,187,196,198,203,216,218,225,232,242,243,256,257,258,259,260,270,286,288,292,296,301,364,372,374,377,394,411,443],whoever:141,whole:[36,46,56,72,81,82,83,87,90,99,108,121,123,126,130,151,175,182,216,260,376,421],wholist:[18,196],whome:182,whomev:[127,138,265],whoopi:126,whose:[30,48,68,79,111,113,114,168,177,193,232,243,254,256,257,258,259,260,303,319,369,374,377,390],whould:374,why:[0,13,28,48,55,75,77,80,82,87,88,92,96,97,105,107,109,122,124,126,130,139,149,158,162,180,241,256,259,260,282,311,312,374],wick:362,wide:[19,30,35,56,67,83,92,96,100,107,116,127,151,180,258,259,273,373,376,390],widen:[55,126],wider:[55,92,96,180,376],widest:390,widget:[386,398,399,400,402,403,404,406,413,430],width:[17,19,22,30,31,32,41,56,81,82,83,92,165,177,281,284,319,334,353,367,372,373,375,376,377,390],wield:[41,105,122,128,257],wifi:[155,158],wiki:[22,48,64,69,76,82,84,87,88,100,103,129,144,204,342,442,443],wiki_account_handl:90,wiki_account_signup_allow:90,wiki_can:90,wiki_can_admin:90,wiki_can_assign:90,wiki_can_assign_own:90,wiki_can_change_permiss:90,wiki_can_delet:90,wiki_can_moder:90,wiki_can_read:90,wiki_can_writ:90,wikiconfig:90,wikipedia:[8,11,16,70,87,88,129,342],wil:[13,18],wild:[11,53,69,83,111,121,139,283,284],wildcard:[36,55,83,99,180,182,281,283,284,390],wildcard_to_regexp:390,wilder:[165,166,199,443],wildernessexit:273,wildernessmap:273,wildernessmapprovid:273,wildernessroom:273,wildernessscript:273,wildli:242,will_suppress_ga:336,will_transform:111,will_ttyp:341,willing:[100,121,124,144,443],win10:149,win7:149,win8:149,win:[76,107,129,147,216],wind:[120,140],winder:123,windmil:209,window:[0,5,6,7,9,11,20,29,37,44,51,52,65,68,81,83,85,88,90,92,97,109,116,119,122,146,153,162,163,177,189,218,314,330,353,357,390,443],windowid:353,windows10:149,wine:[118,120],wingd:82,winner:78,winpti:76,winter:224,wintertim:122,wintext_templ:127,wip:[85,442],wipe:[9,13,14,18,26,76,82,108,116,146,175,182,192,258],wire:[19,62,65,68,70,88,151,155,191,311,323,324,355,367],wis:100,wisdom:5,wise:[0,11,14,15,16,33,73,100,114,122,136],wiser:[42,109,126],wish:[2,11,22,96,134,137,154,204,260,367,389,430],with_tag:240,withdraw:[129,260],withdrawl:260,within:[0,6,11,13,20,22,28,30,31,47,51,54,76,77,81,83,84,85,88,96,98,100,111,113,116,118,126,129,134,135,136,137,139,142,145,146,147,155,157,168,171,173,182,203,224,227,229,247,283,287,296,301,308,357,362,363,367,377,383,390,430,436,441],withot:282,without:[3,5,6,8,9,11,13,14,15,18,19,20,22,25,27,28,30,35,40,41,42,45,47,48,50,52,53,55,56,60,62,63,64,67,68,69,72,75,77,79,80,81,83,84,85,88,91,92,94,95,97,99,100,107,108,109,110,111,113,115,116,117,121,122,123,124,126,130,134,136,138,139,141,145,146,149,151,155,157,159,162,168,169,174,177,179,180,182,187,188,190,191,192,193,196,198,202,203,205,206,209,221,224,229,232,242,243,249,253,254,256,259,260,265,269,271,282,292,294,296,299,300,301,307,308,323,334,337,338,345,355,356,362,364,367,368,370,371,372,374,375,377,383,386,387,390,423],withstand:33,wiz:100,wizard:[41,123,271,301,312,314,443],wkei:182,wlocat:182,wlock:182,wmagic:259,wmass:259,wndb_:182,wnn:18,woah:[114,115],woman:[122,123],won:[3,8,12,13,14,16,20,48,49,51,54,55,60,65,67,75,77,80,82,85,90,91,94,99,102,104,106,107,108,111,115,116,121,123,125,127,130,142,143,146,149,157,176,225,241,262,265,279,359,367,386],wonder:[56,76,98,105],wont_suppress_ga:336,wont_ttyp:341,woo:108,wood:[79,123,209,210],wooden:[41,79,209,210],woodenpuppetrecip:79,woosh:91,word:[5,6,11,15,18,19,22,27,30,31,37,58,64,68,80,81,82,89,101,102,107,108,114,116,119,122,124,134,139,153,174,189,190,194,214,223,235,242,243,294,326,372,377,387,390,394,443],word_fil:242,word_length_vari:242,wordi:242,work:[0,2,3,4,5,6,7,8,9,12,13,14,15,16,18,19,20,26,28,30,31,33,34,37,41,42,44,46,47,50,52,53,54,56,58,60,63,65,67,69,72,75,76,77,79,81,82,84,85,88,89,90,91,92,93,94,97,98,99,100,101,104,106,108,109,111,112,113,114,115,116,117,118,119,121,122,124,126,129,130,131,133,134,135,139,140,141,142,145,146,147,149,151,152,153,154,155,158,161,162,173,176,177,179,182,187,188,190,192,194,196,203,204,205,209,211,216,224,239,240,243,249,254,258,259,260,271,272,273,282,286,288,291,292,296,300,301,314,318,319,331,346,359,361,362,364,365,368,373,374,375,376,384,390,423,434,435,436,438,440,443],workaround:[11,149,157,443],workflow:[398,443],world:[8,11,13,14,15,16,18,19,20,22,28,31,39,41,53,54,67,69,70,76,79,81,82,83,87,88,91,96,99,100,101,105,110,114,115,117,119,124,125,127,128,129,130,131,133,135,138,143,144,149,153,155,159,168,181,182,187,189,193,203,209,212,239,243,253,256,257,258,259,260,270,271,273,281,286,288,304,353,355,367,368,378,443],world_map:82,worm:[81,123],worm_has_map:81,worn:[206,257],worri:[2,8,13,16,28,50,60,70,75,96,111,120,126,130,159,203,218,219],wors:[122,124],worst:121,worth:[5,28,42,48,58,75,91,94,107,122,123,124,141,144,145,203],worthi:121,worthless:155,would:[2,3,5,7,8,9,13,14,15,16,19,20,22,28,30,31,33,35,37,41,42,44,46,47,48,52,53,54,56,57,60,67,68,73,74,75,76,77,79,80,81,82,83,87,88,90,91,92,94,96,97,98,99,100,101,102,104,105,106,107,108,109,111,112,113,114,115,116,117,119,121,122,123,124,126,127,129,130,134,135,136,138,139,141,142,145,149,155,157,168,174,175,176,177,182,191,196,201,203,209,210,212,218,232,242,253,254,265,272,273,281,282,286,288,292,300,301,326,338,364,367,368,371,374,385,386,388,390,399,406],wouldn:[31,96,115,139],wound:259,wow:[102,124],wpermiss:182,wprototype_desc:182,wprototype_kei:182,wprototype_lock:182,wprototype_par:182,wprototype_tag:182,wrap:[28,41,42,54,81,95,111,116,118,126,134,206,210,218,225,243,321,361,376,390],wrap_conflictual_object:386,wrapper:[5,19,28,32,44,48,54,67,79,94,168,171,197,198,221,223,249,253,288,289,295,296,304,308,319,321,353,362,364,365,367,376,377,381,382,383,390,401,406],wresid:192,write:[5,10,11,13,15,16,19,20,22,28,31,36,48,54,56,58,68,69,72,75,77,80,84,85,89,90,92,97,98,100,101,102,107,108,109,111,114,115,116,117,120,122,123,124,126,130,146,149,150,152,153,182,187,189,196,201,202,204,246,247,272,296,327,383,388,439,441,443],writeabl:154,written:[8,16,18,19,41,52,83,85,98,99,100,108,111,113,114,115,116,117,118,141,142,144,148,158,164,189,246,282,368,439],wrong:[0,3,8,104,106,116,122,146,149,163,175,182,192,209,211,243],wrote:[111,114,193],wserver:192,wservic:187,wsgi:[145,359],wsgi_resourc:359,wsgiwebserv:359,wsl:[85,149],wss:[145,155,443],wtypeclass:182,wwhere:296,www:[9,49,69,76,77,85,87,88,96,141,145,155,165,192,329,330,336,338,389,393,430],wyou:105,x0c:182,x1b:[367,389],x2x:100,x4x:373,x5x:373,x6x:373,x7x:373,x8x:373,x9x:373,x_r:96,xcode:149,xforward:359,xgettext:64,xgiven:284,xit:[77,204],xml:201,xmlcharrefreplac:367,xp_gain:127,xpo:376,xtag:393,xterm256:[32,51,65,71,104,116,179,207,227,319,334,337,367,443],xterm256_bg:367,xterm256_bg_sub:367,xterm256_fg:367,xterm256_fg_sub:367,xterm256_gbg:367,xterm256_gbg_sub:367,xterm256_gfg:367,xterm256_gfg_sub:367,xterm:[60,116,139],xterms256:60,xval:22,xxx:[3,92,241],xxxx:241,xxxxx1xxxxx:373,xxxxx3xxxxx:373,xxxxxxx2xxxxxxx:373,xxxxxxxxxx3xxxxxxxxxxx:100,xxxxxxxxxx4xxxxxxxxxxx:100,xxxxxxxxxxx:373,xxxxxxxxxxxxxx1xxxxxxxxxxxxxxx:100,xxxxxxxxxxxxxxxxxxxxxx:100,xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:100,xygrid:[281,282],xymap:[165,166,199,274,275,276,279,282,283,284,443],xymap_data:[83,281,283],xymap_data_list:[83,281,283],xymap_legend:[83,165,166,199,274,276,279,443],xyroom:284,xyz:[36,83,275,278,282,283,284],xyz_destin:[83,284],xyz_destination_coord:284,xyz_exit:[83,278,282],xyz_room:[83,278,282],xyzcommand:[83,276,277],xyzexit:[283,284,443],xyzexit_prototype_overrid:83,xyzexitmanag:284,xyzgrid:[165,166,199,443],xyzgrid_cmdset:275,xyzgrid_use_db_prototyp:83,xyzgridcmdset:[83,275],xyzmanag:284,xyzmap:83,xyzroom:[165,166,199,274,283,443],xyzroom_prototype_overrid:83,y_r:96,yan:[60,367],yank:27,year:[68,69,87,101,119,123,155,201,212,378,383,390,430],yearli:[101,155],yeast:[79,209],yellow:[11,60,83,139,270],yer:122,yes:[22,28,54,58,80,85,96,139,182,192,235,312,372,374,390],yes_act:374,yes_no_question_cmdset:374,yesno:[28,85,372],yesnoquestioncmdset:374,yet:[2,3,9,11,12,15,25,28,41,44,55,64,67,75,77,80,81,82,83,88,90,92,93,108,111,114,124,126,138,141,142,144,148,149,151,155,162,164,168,187,194,203,214,232,265,282,292,295,308,332,355,359,367,437],yield:[22,33,54,69,146,182,193,247,376,390,443],yml:[10,157],yogurt:240,you:[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,22,25,27,28,30,31,32,33,34,35,36,37,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,62,63,64,65,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,116,117,118,121,122,124,125,126,127,128,129,130,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,161,162,163,168,176,177,179,182,187,188,189,190,191,192,193,194,196,201,203,204,205,206,207,209,210,212,216,218,219,223,224,225,227,230,231,232,235,236,239,240,241,242,243,246,247,249,250,251,252,253,254,256,257,258,259,260,262,265,270,271,272,273,275,277,281,282,286,291,292,296,301,306,307,308,309,316,325,326,327,343,345,355,357,359,360,362,364,367,368,370,373,374,376,377,378,386,387,390,393,394,395,410,413,415,416,430,439,441,442,443],you_obj:30,you_replac:216,your:[2,3,5,7,8,10,13,14,15,16,17,18,19,20,25,27,28,30,31,33,35,36,39,41,42,44,45,46,47,48,49,50,52,53,54,55,56,58,60,63,64,65,68,70,72,73,74,75,76,77,78,79,80,81,82,83,84,85,87,88,89,91,92,94,95,97,98,99,100,101,102,103,104,105,106,107,111,112,114,115,116,117,118,119,120,121,122,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,142,143,144,145,146,148,149,150,151,152,153,154,156,159,161,162,163,165,166,168,171,174,176,177,179,180,182,187,188,189,192,193,194,199,201,203,204,206,207,209,210,212,213,214,216,218,224,225,227,231,241,242,243,246,247,250,254,256,257,258,259,260,262,265,270,271,272,273,275,276,281,291,292,295,345,364,367,372,374,376,377,386,387,388,390,391,394,395,399,406,416,430,436,439,443],your_act:218,your_email:11,yourchar:116,yourgam:246,yourhostnam:151,yournam:[108,114,115,145],yourpassword:146,yourrepo:7,yourself:[0,3,10,11,12,15,20,28,33,37,48,53,56,57,58,67,69,73,75,77,78,82,83,84,85,87,100,102,107,115,116,118,122,123,124,126,127,130,143,146,149,155,182,188,203,216,218,226,243,249,253,259,262,275,374,377,394,395,443],yourselv:[58,377,394,395],yoursit:141,yourusernam:11,yourwebsit:141,yousuck:55,yousuckmor:55,youth:225,youtub:11,ypo:376,yrs:212,ythi:60,yum:[11,145,151],yvonn:100,z_destin:284,z_r:96,z_sourc:284,zcoord:[275,279,281,283,443],zed:144,zero:[19,35,41,109,114,116,118,187,209,243,283,289,296,362,367,377],zip:[158,201],zlib:[154,323,327],zmud:[147,329],zone:[46,80,89,98,103,113,124,144,365,383,443],zoord:283,zope:6,zopeinterfac:149,zuggsoft:329},titles:["Coding Introduction","Coding and development help","Continuous Integration","Debugging","Things to remember about the flat API","Profiling","Quirks","Setting up PyCharm","Unit Testing","Updating Your Game","Using Travis","Version Control","Accounts","Attributes","Batch Code Processor","Batch Command Processor","Batch Processors","Bootstrap Components and Utilities","Channels","Coding Utils","Command Sets","Command System","Commands","Communications","Core Components","Connection Screen","Default Commands","EvEditor","EvMenu","EvMore","The Inline Function Parser","Help System","Inputfuncs","Locks","MonitorHandler","Msg","Nicks","Objects","Outputfuncs","Permissions","Portal And Server","Spawner and Prototypes","Scripts","Server component","Sessions","Signals","Tags","TickerHandler","Typeclasses","Evennia REST API","The Web Admin","Web Client","Webserver","Game website","Async Process","Banning","Bootstrap & Evennia","Building Permissions","Sending different messages depending on viewpoint and receiver","Clickable links","Colors","Core Concepts","Custom Protocols","Guest Logins","Internationalization","Messagepath","Multisession modes","New Models","OOB","Soft Code","Text Encodings","In-text tags parsed by Evennia","Using MUX as a Standard","Web Features","Zones","A voice operated elevator using events","Arxcode installing help","Building menus","Contrib modules","Crafting system contrib","Dialogues in events","Dynamic In Game Map","Static In Game Map","XYZGrid contrib","Contributing","Contributing to Evennia Docs","API Summary","Evennia Introduction","Glossary","How To Get And Give Help","Add a wiki on your website","Building a mech tutorial","Coding FAQ","Command Cooldown","Command Duration","Command Prompt","Coordinates","Default Exit Errors","Evennia for Diku Users","Evennia for MUSH Users","Evennia for roleplaying sessions","Gametime Tutorial","Help System Tutorial","Tutorials and Howto\u2019s","Manually Configuring Color","Mass and weight for objects","NPC shop Tutorial","Parsing command arguments, theory and best practices","Our own commands","Using the game and building stuff","Creating things","Django Database queries","Overview of the Evennia library","Overview of your new Game Dir","Persistent objects and typeclasses","More about Commands","Starting to code Evennia","Python Classes and objects","Searching for things","Starting Tutorial (Part 1)","The Tutorial World","On Planning a Game","Planning the use of some useful contribs","Planning our tutorial game","Where do I begin?","Evennia Starting Tutorial (Part 2)","Making a sittable object","Implementing a game rule system","Evennia Starting Tutorial (Part 3)","Turn based Combat System","Tutorial for basic MUSH like game","Evennia Starting Tutorial (Part 4)","Add a simple new web page","Evennia Starting Tutorial (part 5)","Web Tutorial","Tutorial Aggressive NPCs","Tutorial NPCs listening","Tutorial Tweeting Game Stats","Tutorial Vehicles","Understanding Color Tags","Weather Tutorial","Web Character Generation","Web Character View Tutorial","Licensing","Links","Apache Config","Choosing An SQL Server","Client Support Grid","Evennia Game Index","Getting Started","Grapevine","Making Evennia, HTTPS and WSS (Secure Websockets) play nicely together","How to connect Evennia to Twitter","IRC","Installing on Android","Online Setup","RSS","Running Evennia in Docker","Security","Server Conf","The Evennia Default Settings file","Server Setup and Life","Setup quickstart","Start Stop Reload","Unimplemented","evennia","evennia","evennia.accounts","evennia.accounts.accounts","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.comms","evennia.comms.managers","evennia.comms.models","evennia.contrib","evennia.contrib.awsstorage","evennia.contrib.awsstorage.aws_s3_cdn","evennia.contrib.awsstorage.tests","evennia.contrib.barter","evennia.contrib.building_menu","evennia.contrib.chargen","evennia.contrib.clothing","evennia.contrib.color_markups","evennia.contrib.crafting","evennia.contrib.crafting.crafting","evennia.contrib.crafting.example_recipes","evennia.contrib.crafting.tests","evennia.contrib.custom_gametime","evennia.contrib.dice","evennia.contrib.email_login","evennia.contrib.evscaperoom","evennia.contrib.evscaperoom.commands","evennia.contrib.evscaperoom.menu","evennia.contrib.evscaperoom.objects","evennia.contrib.evscaperoom.room","evennia.contrib.evscaperoom.scripts","evennia.contrib.evscaperoom.state","evennia.contrib.evscaperoom.tests","evennia.contrib.evscaperoom.utils","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.test_traits","evennia.contrib.traits","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.example_batch_code","evennia.contrib.tutorial_examples.mirror","evennia.contrib.tutorial_examples.red_button","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.contrib.xyzgrid","evennia.contrib.xyzgrid.commands","evennia.contrib.xyzgrid.example","evennia.contrib.xyzgrid.launchcmd","evennia.contrib.xyzgrid.prototypes","evennia.contrib.xyzgrid.tests","evennia.contrib.xyzgrid.utils","evennia.contrib.xyzgrid.xymap","evennia.contrib.xyzgrid.xymap_legend","evennia.contrib.xyzgrid.xyzgrid","evennia.contrib.xyzgrid.xyzroom","evennia.help","evennia.help.filehelp","evennia.help.manager","evennia.help.models","evennia.help.utils","evennia.locks","evennia.locks.lockfuncs","evennia.locks.lockhandler","evennia.objects","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.manager","evennia.scripts.models","evennia.scripts.monitorhandler","evennia.scripts.scripthandler","evennia.scripts.scripts","evennia.scripts.taskhandler","evennia.scripts.tickerhandler","evennia.server","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.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.funcparser","evennia.utils.gametime","evennia.utils.idmapper","evennia.utils.idmapper.manager","evennia.utils.idmapper.models","evennia.utils.idmapper.tests","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.utils.verb_conjugation","evennia.utils.verb_conjugation.conjugate","evennia.utils.verb_conjugation.pronouns","evennia.utils.verb_conjugation.tests","evennia.web","evennia.web.admin","evennia.web.admin.accounts","evennia.web.admin.attributes","evennia.web.admin.comms","evennia.web.admin.frontpage","evennia.web.admin.help","evennia.web.admin.objects","evennia.web.admin.scripts","evennia.web.admin.server","evennia.web.admin.tags","evennia.web.admin.urls","evennia.web.admin.utils","evennia.web.api","evennia.web.api.filters","evennia.web.api.permissions","evennia.web.api.root","evennia.web.api.serializers","evennia.web.api.tests","evennia.web.api.urls","evennia.web.api.views","evennia.web.templatetags","evennia.web.templatetags.addclass","evennia.web.urls","evennia.web.utils","evennia.web.utils.adminsite","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.tests","evennia.web.website.urls","evennia.web.website.views","evennia.web.website.views.accounts","evennia.web.website.views.channels","evennia.web.website.views.characters","evennia.web.website.views.errors","evennia.web.website.views.help","evennia.web.website.views.index","evennia.web.website.views.mixins","evennia.web.website.views.objects","Evennia Documentation","<no title>"],titleterms:{"break":111,"case":[75,123],"class":[8,19,22,48,77,113,114,117,123],"default":[26,30,32,33,51,53,83,92,95,97,114,115,160,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194],"final":[81,154],"function":[3,30,33,37,53,77,86,116,118],"goto":28,"import":[0,4,83,85,112,116,117],"new":[6,8,42,48,53,67,79,90,100,102,113,114,123,132,141,162],"public":[148,161],"return":[28,44,111,116],"static":[82,253],"super":[57,115],Adding:[20,32,46,50,53,62,67,75,76,79,90,92,96,97,109,115,138,141,253],And:[40,89],Are:123,Going:161,One:83,PMs:100,TLS:145,The:[0,5,14,15,27,28,30,31,39,41,42,50,54,56,57,65,73,77,78,80,81,83,94,100,102,103,106,120,121,124,129,130,132,160,162],Use:[0,158],Uses:30,Using:[5,8,10,13,18,29,30,31,34,41,46,53,67,72,74,81,103,109,155,253],Will:123,Yes:28,_famili:111,_should:123,abl:123,abort:94,about:[4,9,47,48,83,94,115,117,123],absolut:112,abus:55,access:[50,61],access_typ:33,account:[6,12,50,88,100,110,123,167,168,169,170,171,179,398,434],across:126,action:123,activ:[99,123,141],actor:58,actor_stance_cal:30,actual:[22,48],add:[53,90,92,132,146],add_choic:77,addclass:418,adding:8,addit:[76,96,97,157],address:92,admin:[6,50,73,88,180,397,398,399,400,401,402,403,404,405,406,407,408],administr:[18,121,123],adminsit:421,advanc:[1,36,86,94,115,146,163],aggress:135,ainnev:78,alia:6,alias:[46,118],all:[92,102,114,123,151],allow:[18,123],alpha:121,also:123,altern:[7,76],amount:123,amp:323,amp_client:311,amp_serv:324,analyz:5,android:154,ani:[14,87],annot:111,anoth:[42,85,115],ansi:[19,60,139,367],apach:145,api:[4,49,51,85,86,112,409,410,411,412,413,414,415,416],app:[102,141],appear:123,arbitrari:28,area:[82,130],arg:107,arg_regex:22,argument:[28,107,114,116],arm:91,around:109,arx:76,arxcod:[76,78],ascii:19,ask:[22,28],asset:124,assign:[22,57],assort:[15,20,22,28,46,54,62,136],async:54,asynchron:54,at_object_cr:114,attach:[7,42,45],attack:[123,130],attribut:[6,13,50,88,114,118,362,399],attributeproperti:13,audit:[78,245,246,247,248],auto:31,automat:92,avail:[25,45],awai:1,aws_s3_cdn:201,awsstorag:[200,201,202],backend:422,ban:55,bank:123,bar:78,barter:[78,122,123,203],base:[41,83,92,123,129],basic:[8,14,15,52,87,90,130,134,152],batch:[14,15,16,368],batchcod:14,batchprocess:181,batchprocessor:368,befor:0,begin:124,behavior:18,best:107,beta:121,between:[14,28,48],block:[14,83,85,94],blockquot:85,blurb:53,board:123,bodyfunct:262,bold:85,boot:55,bootstrap:[17,56],border:17,bot:169,branch:[11,28],brief:102,briefli:68,broken:123,bug:6,build:[50,57,77,78,81,82,85,91,100,106,109,121,123,182],builder:[78,123],building_menu:[77,204],built:123,bulletin:123,busi:106,button:[17,109],calendar:101,call:[22,114],callabl:30,callback:[51,75,80],callbackhandl:229,caller:28,can:[13,77,87,117,118,123],cannot:123,capabl:123,capcha:141,card:17,care:158,carri:123,cast:210,caveat:[14,15,48,60,154],certain:111,certif:151,chair:[123,126],chang:[6,9,11,50,53,64,69,75,85,92,100,114,123,134,158],channel:[18,88,92,100,123,435],charact:[18,37,50,78,80,88,92,100,105,114,121,122,123,126,127,130,141,142,147,436],chargen:[78,130,205],chat:18,cheat:3,check:[13,33,39],checker:0,checkpoint:141,children:117,choic:77,choos:146,clean:76,clickabl:59,client:[51,65,68,73,119,147,155,316],client_opt:32,clone:[11,76],cloth:[78,122,206],cloud9:155,cmdhandler:173,cmdparser:174,cmdset:[108,115,175],cmdset_account:183,cmdset_charact:184,cmdset_sess:185,cmdset_unloggedin:186,cmdsethandl:176,code:[0,1,3,9,11,13,14,18,19,27,35,36,42,69,77,85,92,106,108,116,121,123,127,145,209,368],coin:123,collabor:99,color:[17,19,53,60,78,92,104,139],color_markup:207,colour:60,combat:[129,130],comfort:157,comm:[187,195,196,197,198,400],command:[3,6,8,15,20,21,22,24,25,26,31,42,77,86,92,93,94,95,97,100,101,104,106,107,108,113,114,115,116,119,126,129,130,138,152,157,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,216,230,275,368],comment:[81,97,117],commit:11,commom:53,commun:[14,23],complet:33,complex:[77,111],compon:[17,24,43,282],comput:155,concept:[1,61,81,123,129],conclud:[96,130],conclus:[77,82,107,111,114,116,122,123,124,126],condit:92,conf:[113,159],config:[78,86,104,145],configur:[7,11,104,141,145,146,150,151,152,153,156,161],congratul:121,conjug:393,connect:[6,25,148,152,155],connection_wizard:312,contain:[42,157,369],content:92,continu:[2,126],contrib:[8,77,78,79,83,84,88,122,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],contribut:[84,85,86],control:11,convert:[30,107],cooldown:93,coordin:96,copi:145,core:[24,61,86,88,98],counter:253,cprofil:5,craft:[78,79,123,208,209,210,211],crafter:79,creat:[2,6,12,19,22,37,48,55,67,75,82,86,91,102,103,108,109,110,114,116,123,130,132,138,141,157,370],create_object:114,createnpc:130,creation:124,creatur:157,credit:[114,120],crop:19,current:[3,101],custom:[8,18,28,30,31,33,44,49,50,51,53,54,62,70,73,77,78,79,90,99,101,104,108,161],custom_gametim:212,dai:123,data:[7,13,28,44,52,62],databas:[6,9,24,31,41,67,76,86,111,114],dbref:118,dbserial:371,deal:42,death:123,debug:[3,14,158],debugg:7,decid:123,decor:[28,54],dedent:19,dedic:141,deep:103,deeper:79,defaultobject:6,defeat:123,defin:[11,20,22,28,30,33,42,67,83],definit:33,delai:[19,42,54,94],delimit:92,demo:121,depend:[9,58,76],deploi:157,deprec:[85,313],desc:[28,253],descer:99,descript:[123,157],design:106,detail:[102,141],detect:123,develop:[1,8,99,144,157,158,163],dialogu:80,dice:[78,100,122,213],dictionari:28,differ:[48,58,98,123],diku:98,dir:[113,119,161],direct:[7,85],director:58,directori:[155,159],disabl:158,discuss:144,displai:[19,81,101,147],dive:103,django:[33,73,88,111,141,163],doc:[0,85],docker:157,docstr:[85,117],document:[72,84,85,442],doe:123,doing:124,don:[14,87,126,157],donat:84,done:120,door:78,down:[83,109,138,163],dummyrunn:[5,345],dummyrunner_set:346,durat:94,dure:163,dynam:[22,28,81],each:[118,123],echo:32,economi:123,edit:[27,77,85,130],editnpc:130,editor:[27,119],elev:75,els:123,email:78,email_login:214,emul:98,encod:[16,70],encrypt:155,enemi:123,enforc:123,engin:124,enjoi:145,enough:[120,123],enter:138,entir:75,entit:24,entiti:123,entri:[31,109],error:[42,97,108,116,163,437],eval:85,eveditor:[27,372],even:79,evennia:[0,3,4,7,8,9,11,30,41,49,51,56,64,71,74,76,85,87,90,92,98,99,100,107,112,116,123,125,128,131,133,139,144,145,146,148,151,152,154,155,157,160,163,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,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442],evennia_launch:314,evenniatest:8,event:[75,80,101],eventfunc:231,everi:95,everyth:77,evform:[100,373],evmenu:[28,92,374],evmor:[29,375],evscaperoom:[78,215,216,217,218,219,220,221,222,223],evtabl:[92,100,376],examin:[3,114],exampl:[3,8,27,28,30,33,39,42,51,53,69,78,80,83,96,112,127,129,155,276,368],example_batch_cod:263,example_recip:210,except:126,execut:3,exist:[48,123],exit:[22,37,75,78,92,97],expand:[129,138,253],experi:123,explan:77,explor:[0,112],extend:[61,78,83,122],extended_room:224,extern:[85,158],extra:[114,120],fail:123,familiar:[98,99],faq:[92,103],faster:8,featur:[61,73,102],feel:98,field:[78,88,111],fieldfil:225,fight:123,figur:108,file:[8,11,14,15,16,31,85,159,160,368],filehelp:286,fill:[19,78],filter:410,find:[1,96,116,118],firewal:158,first:[75,77,80,83,99,114,116],fix:11,flat:[4,53],flexibl:85,flow:[52,123],flower:123,folder:[0,11,76],foreground:163,forget:6,fork:[11,84],form:[17,53,123,141,430],formal:123,format:28,forum:144,framework:144,from:[4,28,31,51,87,90,92,109,116,141,155,157,374],front:[53,134],frontpag:401,full:[77,78,102],func:39,funcpars:[30,377],funcparser_cal:30,further:[54,134,145],futur:91,gain:123,game:[0,8,9,11,13,18,19,31,42,53,78,81,82,87,96,99,100,101,109,113,119,121,123,124,127,130,137,148,155,157,161,162,209],game_index_cli:[315,316,317],gamedir:85,gameplai:120,gametim:[78,101,378],gaug:253,gendersub:[78,226],gener:[17,61,77,78,122,123,130,141,144,188,374],general_context:423,get:[28,89,103,109,111,149,151],get_client_opt:32,get_input:28,get_inputfunc:32,get_valu:32,git:[11,88],github:88,give:[89,123],given:46,global:[86,107,123],global_script:42,glossari:88,gmcp:68,godhood:109,goldenlayout:51,good:117,googl:141,grant:[50,100],grapevin:[150,325],graphic:116,grid:[78,81,83,147],group:111,guest:63,guid:76,had:120,handl:[55,102,123,158,163],handler:[45,86,129],haproxi:151,have:[103,117,119,123,130],head:85,health:78,health_bar:227,hello:116,help:[0,1,31,76,84,89,102,109,189,285,286,287,288,289,402,438],here:[0,87],hidden:123,hide:123,hierarchi:[39,100,123],hint:[5,42,64,120,145],hit:108,hold:115,hook:48,host:155,hous:109,how:[12,22,37,48,70,89,100,103,123,138,152,157],howto:103,html:[53,132,141],http:[145,151],human:123,idmapp:[379,380,381,382],imag:[157,158],implement:[123,127],improv:[102,123],index:[102,141,148,439],infinit:123,influenc:123,info:[144,163],inform:155,infrastructur:127,ingame_python:[228,229,230,231,232,233,234,235],ingo:65,inherit:[74,117],inherits_from:19,init:[112,114],initi:[92,129,146,162],initial_setup:318,inlin:30,input:[22,28,30,68,116],inputfunc:[32,65,319],instal:[11,76,83,90,141,145,146,149,151,152,154,155,157,161,162,209],instanc:[22,48,67,117],integr:2,interact:[0,14,15,54,116,149],interfac:158,intern:85,internation:64,interpret:7,interrupt:83,intro_menu:268,introduct:[0,5,28,76,81,82,87,141],inventori:105,ipython:116,irc:[153,326],issu:147,ital:85,item:121,itself:126,join:18,jumbotron:17,jupyt:0,just:[87,123],kei:[28,41,77,118],keyword:[80,114],kill:[123,163],kind:123,know:[87,158],known:[6,123],languag:[64,78],larg:123,last:92,latest:[9,157],latin:92,launch:[27,28],launchcmd:277,layout:56,learn:[0,87],leav:138,legend:[83,282],lesson:[119,125],let:[3,14,102,155],librari:112,licens:143,life:161,lift:55,like:[14,98,123,130],limit:[14,15,123],line:[3,27,91,111,116,119,126],link:[50,59,83,85,144],linux:[2,149,163],list:[3,85,114,115,123],list_nod:28,listen:136,literatur:144,live:163,local:[85,107,155],locat:118,lock:[13,31,33,39,115,138,290,291,292],lockdown:155,lockfunc:[126,291],lockhandl:292,log:[18,19,76,102,113,116,158,162],logfil:7,logger:383,login:[32,63,78],logo:[53,134],longer:80,look:[31,98,109,123,130],lookup:[86,111],loop:114,loot:123,mac:[149,163],machin:155,magic:6,mai:123,mail:[11,78,236],main:[85,86,118,442],make:[8,11,19,91,99,100,108,109,114,116,123,126,130,138,151],manag:[13,39,51,90,170,197,287,294,303,320,363,380],manual:[104,123,148],map:[78,81,82,83,282],mapbuild:237,mapper:81,mariadb:146,markup:[78,367],mass:105,master:[11,100,123],match:[6,115],matter:123,mccp:327,mean:123,mech:91,mechan:123,memori:13,memplot:347,menu:[19,28,77,78,106,217,298,374],menu_login:238,merg:20,messag:[58,65,68,75,92],messagepath:65,method:[6,22,42,104,114,116],middlewar:424,migrat:[9,88,90],mind:11,mini:8,minimap:82,mirror:264,mixin:440,mob:[103,123,269],mod_proxi:145,mod_ssl:145,mod_wsgi:145,mode:[14,15,44,66,88,155,163],model:[8,67,86,141,171,198,288,295,304,321,364,381],modif:100,modifi:[53,95,114,145],modul:[41,78,116,127,129,152],monitor:32,monitorhandl:[34,305],more:[0,9,33,56,58,60,73,79,85,86,94,99,104,115,123],most:0,motiv:124,move:[92,126,138],movement:78,msdp:68,msg:[35,65,104],mssp:328,mud:[119,144],multi:[99,115,116,117,123],multidesc:[78,99,239],multipl:[13,123,126],multisess:[44,66,88],mush:[99,130],must:123,mutabl:[6,13],mux:72,muxcommand:190,mxp:329,mysql:146,myst:85,name:[6,55,114,123],nattribut:13,naw:330,need:[75,87,115,119,123],nest:77,network:24,next:[99,149,152,162],nice:151,nick:36,night:123,node:[28,83],non:[13,92,93,148,149],nop:147,note:[8,15,16,20,22,28,31,36,46,52,54,62,85,136,145],notebook:0,npc:[78,103,106,122,123,130,135,136],number:107,numer:123,obj:39,object:[6,13,19,33,37,42,44,46,50,58,82,88,92,105,109,110,111,114,115,116,117,118,121,123,126,138,218,270,293,294,295,296,403,441],obtain:141,off:[92,123],offici:144,olc:41,onc:120,one:[85,96,123],onli:[85,111,123,163],onlin:[11,155],oob:68,oop:117,open:106,oper:[54,75],option:[28,77,83,100,107,155,158,163],optionclass:384,optionhandl:385,other:[22,42,50,53,58,116,118,123,144,146,155,159],our:[69,75,77,102,108,114,116,121,123,138,141],ourselv:114,out:[62,100,108,123],outgo:65,output:[18,246],outputcommand:68,outputfunc:38,outsid:155,overal:127,overload:[48,73,104],overrid:6,overview:[2,67,83,112,113,129,134],own:[12,22,32,37,51,62,108,116,123,155,157,253],page:[53,73,90,102,132,134],parent:[67,99],pars:[71,92,107,115,116],parser:30,part3:103,part:[103,119,125,128,131,133],parti:144,pass:116,patch:84,path:[14,65,113],pathfind:83,paus:[22,75,94],pax:76,pdb:3,penalti:123,percent:253,perman:123,permiss:[33,39,46,57,100,411],perpetu:121,persist:[13,27,93,94,108,114],person:[109,123],physic:123,picklefield:386,pictur:141,pip:[88,90],place:85,plai:[123,151],plan:[0,82,121,122,123],player:[99,123],plugin:51,point:0,polici:72,port:[155,158],portal:[40,44,65,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343],portalsess:65,portalsessionhandl:[65,332],post:123,postgresql:146,practic:107,prepar:2,prerequisit:154,prevent:92,prioriti:31,prison:123,privileg:[90,123],problem:69,process:[54,61,163],processor:[14,15,16,368],product:[91,157],profil:[5,344,345,346,347,348,349,350,351],program:[3,87],project:[2,7],prompt:[28,95],pron:58,pronoun:394,prop:123,properti:[12,13,18,20,22,28,35,37,44,46,48,83,88,111],protfunc:[41,299],protocol:[62,68],prototyp:[41,83,278,297,298,299,300,301],proxi:[145,155],publicli:11,pudb:3,puppet:88,push:[11,109],put:[11,102,151],puzzl:[78,240],pvp:123,pycharm:7,python:[0,14,78,87,99,113,116,117,144,152],quell:[39,57,115],queri:[48,111,114],queryset:[111,118],quest:123,quick:[2,123,149],quickstart:162,quiet:107,quirk:6,race:123,rais:126,random:78,random_string_gener:241,rate:253,read:[0,54,60,73,134],real:14,reboot:163,recapcha:141,receiv:[58,62,68],recip:[79,209,210],recog:58,red_button:265,refer:[85,92],referenc:58,regist:155,regular:123,rel:[112,118],relat:[78,101,103],releas:[85,121],relev:155,reli:14,reload:[6,92,117,145,163],remark:130,rememb:[4,85,117],remind:102,remot:[11,146,155],remov:[46,92,115],repair:123,repeat:[28,32,42],replac:115,repo:76,repositori:[0,11,84,88],reput:123,requir:149,reset:[9,163],reshuffl:109,resourc:144,respawn:123,rest:[49,126],restart:[145,162],restrict:18,retriev:13,role:[100,123],roleplai:[58,78,100,123],roller:100,rom:98,room:[37,75,78,81,92,96,100,105,121,122,123,219,271],root:412,router:83,rpg:123,rplanguag:242,rpsystem:243,rss:[156,333],rst:85,rule:[20,78,123,127,129],run:[3,7,8,22,87,90,154,157,161],runner:8,safe:30,safeti:14,same:[28,80],save:13,schema:9,score:130,screen:25,script:[42,88,138,220,232,302,303,304,305,306,307,308,309,404],scripthandl:306,search:[19,20,46,67,86,96,107,118,387],searching_cal:30,season:123,secret:141,section:442,secur:[78,145,151,158,244,245,246,247,248],see:[6,102,162],select:[78,92],self:107,send:[58,62,68,95,116],sent:95,separ:[77,123,126],serial:413,server:[24,40,43,44,61,64,78,113,130,145,146,155,159,161,162,247,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,405],serverconf:159,serversess:[65,353],serversessionhandl:65,servic:317,session:[44,65,88,92,100,354],sessionhandl:[44,355],set:[1,7,8,11,20,28,33,76,81,90,101,104,114,119,123,130,148,150,153,155,156,158,159,160],setpow:130,settings_default:360,settings_mixin:348,setup:[2,76,145,146,149,155,161,162],sever:[80,96,107],share:11,sharedmemorymodel:67,sheet:[3,100],shop:106,shortcut:86,should:123,show:[103,130],shut:163,sidebar:85,signal:[45,356],similar:123,simpl:[3,5,8,28,33,42,77,78,94,123,132],simpledoor:249,singl:13,singleton:86,site:[73,88],sitekei:141,sittabl:126,skill:[79,123,124],slow:78,slow_exit:250,snippet:78,soft:69,softcod:[69,99],solut:69,solv:123,some:[39,96,98,116,122,123],someth:123,somewher:87,sort:123,sourc:[7,31,85],space:[17,114],spawn:[41,99],spawner:[41,301],special:123,spell:210,spread:84,spuriou:147,sql:[111,146],sqlite3:146,ssh:[68,158,334],ssl:[155,335],stack:123,staff:123,stanc:58,standard:[72,101],start:[0,76,100,103,106,116,119,125,128,131,133,149,157,162,163],stat:137,state:221,statement:108,statu:[123,163],status:123,step:[3,11,76,99,109,121,141,150,152,153,154,156,162],stop:[162,163],storag:[28,42],store:[13,28,41,92,123],string:[33,78,83,107,374],strip:107,structur:85,studi:75,stuff:[87,109,130],style:[17,53],sub:77,subclass:37,subtop:31,succe:123,suit:8,summari:[55,86,108,115,117,118],superus:39,support:[0,68,147],suppress_ga:336,surround:3,swap:48,sword:[115,210],synchron:54,syntax:[0,85,99,163,368],syscommand:191,system:[21,22,31,33,56,58,78,79,102,103,121,122,123,127,129,130,192],tabl:[19,67,85,92],tag:[46,71,88,96,118,139,365,406],talk:[78,122],talking_npc:251,taskhandl:308,tb_basic:256,tb_equip:257,tb_item:258,tb_magic:259,tb_rang:260,teamciti:2,tech:121,technic:[31,85,265],teleport:83,telnet:[68,147,155,337],telnet_oob:338,telnet_ssl:339,templat:[2,102,141,374],templatetag:[417,418],tempmsg:35,temporari:28,term:117,termux:154,test:[5,8,87,116,130,193,202,211,222,233,248,266,279,340,350,382,395,414,425,431],test_queri:349,test_resourc:388,test_trait:252,text2html:389,text:[19,28,32,61,70,71,85,116,134],than:123,thei:123,them:123,theori:107,thi:[102,124],thing:[4,85,98,99,110,114,117,118,119,123],third:144,those:123,throttl:357,through:[3,84,157],ticker:[47,88],tickerhandl:[47,309],tie:100,time:[19,22,42,69,101,123],time_format:19,timer:[5,42],timetrac:351,tip:11,titl:[50,53],to_byt:19,to_str:19,togeth:[102,151],tool:[19,24,55,144],traceback:0,track:[11,123],train:138,trait:[78,122,253],traithandl:253,traitproperti:253,transit:83,translat:64,travi:10,treat:14,tree:[78,123,210],tree_select:254,trick:11,troubleshoot:[149,154],ttype:341,tupl:[114,115],turn:[6,92,129],turnbattl:[78,122,255,256,257,258,259,260],tutori:[0,8,75,78,80,91,101,102,103,106,119,120,121,123,125,128,129,130,131,133,134,135,136,137,138,140,142],tutorial_exampl:[261,262,263,264,265,266],tutorial_world:[267,268,269,270,271],tweet:[137,152],twist:88,twitter:152,type:[12,13,37,253],typeclass:[6,48,74,86,88,99,104,108,113,114,118,126,234,253,361,362,363,364,365],under:11,understand:139,ungm:100,unimpl:164,uninstal:120,unit:8,unixcommand:[78,272],unloggedin:194,unmonitor:32,unquel:115,unrepeat:32,updat:[9,11,48,92,114],upgrad:9,upload:158,upstream:[6,11],url:[85,90,102,132,141,407,415,419,427,432],usag:[14,15,27,49,50,83,146],use:[6,18,47,87,122,123],used:[22,92,210],useful:[22,122,144],user:[11,22,53,57,64,98,99,102,158],using:[3,8,75,114,118],util:[7,17,19,22,24,30,86,94,144,223,235,280,289,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,408,420,421,422,423,424,425],valid:[33,358],validatorfunc:391,valu:[28,41,123],vanilla:123,variabl:3,variant:126,vehicl:[103,138],verb_conjug:[392,393,394,395],verbatim:85,version:[11,85],versu:54,vhost:145,via:123,view:[18,73,102,132,141,142,416,428,433,434,435,436,437,438,439,440,441],viewpoint:58,virtualenv:88,voic:75,volum:123,wai:[1,28,83,94,115,116],want:[87,103,123,157],warn:85,weapon:123,weather:[123,140],web:[6,50,51,53,61,68,73,103,113,132,134,141,142,155,158,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441],webclient:[52,342,426,427,428],webclient_ajax:343,webclient_gui:51,webpag:53,webserv:[52,158,359],websit:[53,73,90,429,430,431,432,433,434,435,436,437,438,439,440,441],websocket:[145,151],weight:[105,123],werewolf:111,what:[2,13,56,87,103,107,117,118,119,123,124,157],when:[4,47,92,126],where:[87,112,124,149],who:[22,108],wiki:90,wilder:[78,273],willing:87,window:[64,76,149],wizard:148,word:84,work:[11,22,48,83,87,102,107,123,138,157],workaround:147,workflow:1,world:[78,103,109,113,116,120,121,123],write:[8,51,62],wss:151,xterm256:[60,139],xymap:[83,281],xymap_legend:282,xyzexit:83,xyzgrid:[78,83,274,275,276,277,278,279,280,281,282,283,284],xyzroom:[83,284],yield:[28,94],you:[0,87,115,119,120,123],your:[0,1,6,9,11,12,22,32,37,51,57,62,67,69,90,96,108,109,113,123,124,141,155,157,158,253],yourself:[109,121],zcoord:83,zone:74}}) \ No newline at end of file +Search.setIndex({docnames:["Coding/Coding-Introduction","Coding/Coding-Overview","Coding/Continuous-Integration","Coding/Debugging","Coding/Flat-API","Coding/Profiling","Coding/Quirks","Coding/Setting-up-PyCharm","Coding/Unit-Testing","Coding/Updating-Your-Game","Coding/Using-Travis","Coding/Version-Control","Components/Accounts","Components/Attributes","Components/Batch-Code-Processor","Components/Batch-Command-Processor","Components/Batch-Processors","Components/Bootstrap-Components-and-Utilities","Components/Channels","Components/Coding-Utils","Components/Command-Sets","Components/Command-System","Components/Commands","Components/Communications","Components/Components-Overview","Components/Connection-Screen","Components/Default-Commands","Components/EvEditor","Components/EvMenu","Components/EvMore","Components/FuncParser","Components/Help-System","Components/Inputfuncs","Components/Locks","Components/MonitorHandler","Components/Msg","Components/Nicks","Components/Objects","Components/Outputfuncs","Components/Permissions","Components/Portal-And-Server","Components/Prototypes","Components/Scripts","Components/Server","Components/Sessions","Components/Signals","Components/Tags","Components/TickerHandler","Components/Typeclasses","Components/Web-API","Components/Web-Admin","Components/Webclient","Components/Webserver","Components/Website","Concepts/Async-Process","Concepts/Banning","Concepts/Bootstrap-&-Evennia","Concepts/Building-Permissions","Concepts/Change-Messages-Per-Receiver","Concepts/Clickable-Links","Concepts/Colors","Concepts/Concepts-Overview","Concepts/Custom-Protocols","Concepts/Guest-Logins","Concepts/Internationalization","Concepts/Messagepath","Concepts/Multisession-modes","Concepts/New-Models","Concepts/OOB","Concepts/Soft-Code","Concepts/Text-Encodings","Concepts/TextTags","Concepts/Using-MUX-as-a-Standard","Concepts/Web-Features","Concepts/Zones","Contribs/A-voice-operated-elevator-using-events","Contribs/Arxcode-installing-help","Contribs/Building-menus","Contribs/Contrib-Overview","Contribs/Crafting","Contribs/Dialogues-in-events","Contribs/Dynamic-In-Game-Map","Contribs/Static-In-Game-Map","Contribs/XYZGrid","Contributing","Contributing-Docs","Evennia-API","Evennia-Introduction","Glossary","How-To-Get-And-Give-Help","Howto/Add-a-wiki-on-your-website","Howto/Building-a-mech-tutorial","Howto/Coding-FAQ","Howto/Command-Cooldown","Howto/Command-Duration","Howto/Command-Prompt","Howto/Coordinates","Howto/Default-Exit-Errors","Howto/Evennia-for-Diku-Users","Howto/Evennia-for-MUSH-Users","Howto/Evennia-for-roleplaying-sessions","Howto/Gametime-Tutorial","Howto/Help-System-Tutorial","Howto/Howto-Overview","Howto/Manually-Configuring-Color","Howto/Mass-and-weight-for-objects","Howto/NPC-shop-Tutorial","Howto/Parsing-commands-tutorial","Howto/Starting/Part1/Adding-Commands","Howto/Starting/Part1/Building-Quickstart","Howto/Starting/Part1/Creating-Things","Howto/Starting/Part1/Django-queries","Howto/Starting/Part1/Evennia-Library-Overview","Howto/Starting/Part1/Gamedir-Overview","Howto/Starting/Part1/Learning-Typeclasses","Howto/Starting/Part1/More-on-Commands","Howto/Starting/Part1/Python-basic-introduction","Howto/Starting/Part1/Python-classes-and-objects","Howto/Starting/Part1/Searching-Things","Howto/Starting/Part1/Starting-Part1","Howto/Starting/Part1/Tutorial-World-Introduction","Howto/Starting/Part2/Game-Planning","Howto/Starting/Part2/Planning-Some-Useful-Contribs","Howto/Starting/Part2/Planning-The-Tutorial-Game","Howto/Starting/Part2/Planning-Where-Do-I-Begin","Howto/Starting/Part2/Starting-Part2","Howto/Starting/Part3/A-Sittable-Object","Howto/Starting/Part3/Implementing-a-game-rule-system","Howto/Starting/Part3/Starting-Part3","Howto/Starting/Part3/Turn-based-Combat-System","Howto/Starting/Part3/Tutorial-for-basic-MUSH-like-game","Howto/Starting/Part4/Starting-Part4","Howto/Starting/Part5/Add-a-simple-new-web-page","Howto/Starting/Part5/Starting-Part5","Howto/Starting/Part5/Web-Tutorial","Howto/Tutorial-Aggressive-NPCs","Howto/Tutorial-NPCs-listening","Howto/Tutorial-Tweeting-Game-Stats","Howto/Tutorial-Vehicles","Howto/Understanding-Color-Tags","Howto/Weather-Tutorial","Howto/Web-Character-Generation","Howto/Web-Character-View-Tutorial","Licensing","Links","Setup/Apache-Config","Setup/Choosing-An-SQL-Server","Setup/Client-Support-Grid","Setup/Evennia-Game-Index","Setup/Extended-Installation","Setup/Grapevine","Setup/HAProxy-Config","Setup/How-to-connect-Evennia-to-Twitter","Setup/IRC","Setup/Installing-on-Android","Setup/Online-Setup","Setup/RSS","Setup/Running-Evennia-in-Docker","Setup/Security","Setup/Server-Conf","Setup/Settings-File","Setup/Setup-Overview","Setup/Setup-Quickstart","Setup/Start-Stop-Reload","Unimplemented","api/evennia","api/evennia-api","api/evennia.accounts","api/evennia.accounts.accounts","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.comms","api/evennia.comms.managers","api/evennia.comms.models","api/evennia.contrib","api/evennia.contrib.awsstorage","api/evennia.contrib.awsstorage.aws_s3_cdn","api/evennia.contrib.awsstorage.tests","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.crafting","api/evennia.contrib.crafting.crafting","api/evennia.contrib.crafting.example_recipes","api/evennia.contrib.crafting.tests","api/evennia.contrib.custom_gametime","api/evennia.contrib.dice","api/evennia.contrib.email_login","api/evennia.contrib.evscaperoom","api/evennia.contrib.evscaperoom.commands","api/evennia.contrib.evscaperoom.menu","api/evennia.contrib.evscaperoom.objects","api/evennia.contrib.evscaperoom.room","api/evennia.contrib.evscaperoom.scripts","api/evennia.contrib.evscaperoom.state","api/evennia.contrib.evscaperoom.tests","api/evennia.contrib.evscaperoom.utils","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.test_traits","api/evennia.contrib.traits","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.example_batch_code","api/evennia.contrib.tutorial_examples.mirror","api/evennia.contrib.tutorial_examples.red_button","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.contrib.xyzgrid","api/evennia.contrib.xyzgrid.commands","api/evennia.contrib.xyzgrid.example","api/evennia.contrib.xyzgrid.launchcmd","api/evennia.contrib.xyzgrid.prototypes","api/evennia.contrib.xyzgrid.tests","api/evennia.contrib.xyzgrid.utils","api/evennia.contrib.xyzgrid.xymap","api/evennia.contrib.xyzgrid.xymap_legend","api/evennia.contrib.xyzgrid.xyzgrid","api/evennia.contrib.xyzgrid.xyzroom","api/evennia.help","api/evennia.help.filehelp","api/evennia.help.manager","api/evennia.help.models","api/evennia.help.utils","api/evennia.locks","api/evennia.locks.lockfuncs","api/evennia.locks.lockhandler","api/evennia.objects","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.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.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.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.funcparser","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.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.utils.verb_conjugation","api/evennia.utils.verb_conjugation.conjugate","api/evennia.utils.verb_conjugation.pronouns","api/evennia.utils.verb_conjugation.tests","api/evennia.web","api/evennia.web.admin","api/evennia.web.admin.accounts","api/evennia.web.admin.attributes","api/evennia.web.admin.comms","api/evennia.web.admin.frontpage","api/evennia.web.admin.help","api/evennia.web.admin.objects","api/evennia.web.admin.scripts","api/evennia.web.admin.server","api/evennia.web.admin.tags","api/evennia.web.admin.urls","api/evennia.web.admin.utils","api/evennia.web.api","api/evennia.web.api.filters","api/evennia.web.api.permissions","api/evennia.web.api.root","api/evennia.web.api.serializers","api/evennia.web.api.tests","api/evennia.web.api.urls","api/evennia.web.api.views","api/evennia.web.templatetags","api/evennia.web.templatetags.addclass","api/evennia.web.urls","api/evennia.web.utils","api/evennia.web.utils.adminsite","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.tests","api/evennia.web.website.urls","api/evennia.web.website.views","api/evennia.web.website.views.accounts","api/evennia.web.website.views.channels","api/evennia.web.website.views.characters","api/evennia.web.website.views.errors","api/evennia.web.website.views.help","api/evennia.web.website.views.index","api/evennia.web.website.views.mixins","api/evennia.web.website.views.objects","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:["Coding/Coding-Introduction.md","Coding/Coding-Overview.md","Coding/Continuous-Integration.md","Coding/Debugging.md","Coding/Flat-API.md","Coding/Profiling.md","Coding/Quirks.md","Coding/Setting-up-PyCharm.md","Coding/Unit-Testing.md","Coding/Updating-Your-Game.md","Coding/Using-Travis.md","Coding/Version-Control.md","Components/Accounts.md","Components/Attributes.md","Components/Batch-Code-Processor.md","Components/Batch-Command-Processor.md","Components/Batch-Processors.md","Components/Bootstrap-Components-and-Utilities.md","Components/Channels.md","Components/Coding-Utils.md","Components/Command-Sets.md","Components/Command-System.md","Components/Commands.md","Components/Communications.md","Components/Components-Overview.md","Components/Connection-Screen.md","Components/Default-Commands.md","Components/EvEditor.md","Components/EvMenu.md","Components/EvMore.md","Components/FuncParser.md","Components/Help-System.md","Components/Inputfuncs.md","Components/Locks.md","Components/MonitorHandler.md","Components/Msg.md","Components/Nicks.md","Components/Objects.md","Components/Outputfuncs.md","Components/Permissions.md","Components/Portal-And-Server.md","Components/Prototypes.md","Components/Scripts.md","Components/Server.md","Components/Sessions.md","Components/Signals.md","Components/Tags.md","Components/TickerHandler.md","Components/Typeclasses.md","Components/Web-API.md","Components/Web-Admin.md","Components/Webclient.md","Components/Webserver.md","Components/Website.md","Concepts/Async-Process.md","Concepts/Banning.md","Concepts/Bootstrap-&-Evennia.md","Concepts/Building-Permissions.md","Concepts/Change-Messages-Per-Receiver.md","Concepts/Clickable-Links.md","Concepts/Colors.md","Concepts/Concepts-Overview.md","Concepts/Custom-Protocols.md","Concepts/Guest-Logins.md","Concepts/Internationalization.md","Concepts/Messagepath.md","Concepts/Multisession-modes.md","Concepts/New-Models.md","Concepts/OOB.md","Concepts/Soft-Code.md","Concepts/Text-Encodings.md","Concepts/TextTags.md","Concepts/Using-MUX-as-a-Standard.md","Concepts/Web-Features.md","Concepts/Zones.md","Contribs/A-voice-operated-elevator-using-events.md","Contribs/Arxcode-installing-help.md","Contribs/Building-menus.md","Contribs/Contrib-Overview.md","Contribs/Crafting.md","Contribs/Dialogues-in-events.md","Contribs/Dynamic-In-Game-Map.md","Contribs/Static-In-Game-Map.md","Contribs/XYZGrid.md","Contributing.md","Contributing-Docs.md","Evennia-API.md","Evennia-Introduction.md","Glossary.md","How-To-Get-And-Give-Help.md","Howto/Add-a-wiki-on-your-website.md","Howto/Building-a-mech-tutorial.md","Howto/Coding-FAQ.md","Howto/Command-Cooldown.md","Howto/Command-Duration.md","Howto/Command-Prompt.md","Howto/Coordinates.md","Howto/Default-Exit-Errors.md","Howto/Evennia-for-Diku-Users.md","Howto/Evennia-for-MUSH-Users.md","Howto/Evennia-for-roleplaying-sessions.md","Howto/Gametime-Tutorial.md","Howto/Help-System-Tutorial.md","Howto/Howto-Overview.md","Howto/Manually-Configuring-Color.md","Howto/Mass-and-weight-for-objects.md","Howto/NPC-shop-Tutorial.md","Howto/Parsing-commands-tutorial.md","Howto/Starting/Part1/Adding-Commands.md","Howto/Starting/Part1/Building-Quickstart.md","Howto/Starting/Part1/Creating-Things.md","Howto/Starting/Part1/Django-queries.md","Howto/Starting/Part1/Evennia-Library-Overview.md","Howto/Starting/Part1/Gamedir-Overview.md","Howto/Starting/Part1/Learning-Typeclasses.md","Howto/Starting/Part1/More-on-Commands.md","Howto/Starting/Part1/Python-basic-introduction.md","Howto/Starting/Part1/Python-classes-and-objects.md","Howto/Starting/Part1/Searching-Things.md","Howto/Starting/Part1/Starting-Part1.md","Howto/Starting/Part1/Tutorial-World-Introduction.md","Howto/Starting/Part2/Game-Planning.md","Howto/Starting/Part2/Planning-Some-Useful-Contribs.md","Howto/Starting/Part2/Planning-The-Tutorial-Game.md","Howto/Starting/Part2/Planning-Where-Do-I-Begin.md","Howto/Starting/Part2/Starting-Part2.md","Howto/Starting/Part3/A-Sittable-Object.md","Howto/Starting/Part3/Implementing-a-game-rule-system.md","Howto/Starting/Part3/Starting-Part3.md","Howto/Starting/Part3/Turn-based-Combat-System.md","Howto/Starting/Part3/Tutorial-for-basic-MUSH-like-game.md","Howto/Starting/Part4/Starting-Part4.md","Howto/Starting/Part5/Add-a-simple-new-web-page.md","Howto/Starting/Part5/Starting-Part5.md","Howto/Starting/Part5/Web-Tutorial.md","Howto/Tutorial-Aggressive-NPCs.md","Howto/Tutorial-NPCs-listening.md","Howto/Tutorial-Tweeting-Game-Stats.md","Howto/Tutorial-Vehicles.md","Howto/Understanding-Color-Tags.md","Howto/Weather-Tutorial.md","Howto/Web-Character-Generation.md","Howto/Web-Character-View-Tutorial.md","Licensing.md","Links.md","Setup/Apache-Config.md","Setup/Choosing-An-SQL-Server.md","Setup/Client-Support-Grid.md","Setup/Evennia-Game-Index.md","Setup/Extended-Installation.md","Setup/Grapevine.md","Setup/HAProxy-Config.md","Setup/How-to-connect-Evennia-to-Twitter.md","Setup/IRC.md","Setup/Installing-on-Android.md","Setup/Online-Setup.md","Setup/RSS.md","Setup/Running-Evennia-in-Docker.md","Setup/Security.md","Setup/Server-Conf.md","Setup/Settings-File.md","Setup/Setup-Overview.md","Setup/Setup-Quickstart.md","Setup/Start-Stop-Reload.md","Unimplemented.md","api/evennia.md","api/evennia-api.md","api/evennia.accounts.md","api/evennia.accounts.accounts.md","api/evennia.accounts.bots.md","api/evennia.accounts.manager.md","api/evennia.accounts.models.md","api/evennia.commands.md","api/evennia.commands.cmdhandler.md","api/evennia.commands.cmdparser.md","api/evennia.commands.cmdset.md","api/evennia.commands.cmdsethandler.md","api/evennia.commands.command.md","api/evennia.commands.default.md","api/evennia.commands.default.account.md","api/evennia.commands.default.admin.md","api/evennia.commands.default.batchprocess.md","api/evennia.commands.default.building.md","api/evennia.commands.default.cmdset_account.md","api/evennia.commands.default.cmdset_character.md","api/evennia.commands.default.cmdset_session.md","api/evennia.commands.default.cmdset_unloggedin.md","api/evennia.commands.default.comms.md","api/evennia.commands.default.general.md","api/evennia.commands.default.help.md","api/evennia.commands.default.muxcommand.md","api/evennia.commands.default.syscommands.md","api/evennia.commands.default.system.md","api/evennia.commands.default.tests.md","api/evennia.commands.default.unloggedin.md","api/evennia.comms.md","api/evennia.comms.comms.md","api/evennia.comms.managers.md","api/evennia.comms.models.md","api/evennia.contrib.md","api/evennia.contrib.awsstorage.md","api/evennia.contrib.awsstorage.aws_s3_cdn.md","api/evennia.contrib.awsstorage.tests.md","api/evennia.contrib.barter.md","api/evennia.contrib.building_menu.md","api/evennia.contrib.chargen.md","api/evennia.contrib.clothing.md","api/evennia.contrib.color_markups.md","api/evennia.contrib.crafting.md","api/evennia.contrib.crafting.crafting.md","api/evennia.contrib.crafting.example_recipes.md","api/evennia.contrib.crafting.tests.md","api/evennia.contrib.custom_gametime.md","api/evennia.contrib.dice.md","api/evennia.contrib.email_login.md","api/evennia.contrib.evscaperoom.md","api/evennia.contrib.evscaperoom.commands.md","api/evennia.contrib.evscaperoom.menu.md","api/evennia.contrib.evscaperoom.objects.md","api/evennia.contrib.evscaperoom.room.md","api/evennia.contrib.evscaperoom.scripts.md","api/evennia.contrib.evscaperoom.state.md","api/evennia.contrib.evscaperoom.tests.md","api/evennia.contrib.evscaperoom.utils.md","api/evennia.contrib.extended_room.md","api/evennia.contrib.fieldfill.md","api/evennia.contrib.gendersub.md","api/evennia.contrib.health_bar.md","api/evennia.contrib.ingame_python.md","api/evennia.contrib.ingame_python.callbackhandler.md","api/evennia.contrib.ingame_python.commands.md","api/evennia.contrib.ingame_python.eventfuncs.md","api/evennia.contrib.ingame_python.scripts.md","api/evennia.contrib.ingame_python.tests.md","api/evennia.contrib.ingame_python.typeclasses.md","api/evennia.contrib.ingame_python.utils.md","api/evennia.contrib.mail.md","api/evennia.contrib.mapbuilder.md","api/evennia.contrib.menu_login.md","api/evennia.contrib.multidescer.md","api/evennia.contrib.puzzles.md","api/evennia.contrib.random_string_generator.md","api/evennia.contrib.rplanguage.md","api/evennia.contrib.rpsystem.md","api/evennia.contrib.security.md","api/evennia.contrib.security.auditing.md","api/evennia.contrib.security.auditing.outputs.md","api/evennia.contrib.security.auditing.server.md","api/evennia.contrib.security.auditing.tests.md","api/evennia.contrib.simpledoor.md","api/evennia.contrib.slow_exit.md","api/evennia.contrib.talking_npc.md","api/evennia.contrib.test_traits.md","api/evennia.contrib.traits.md","api/evennia.contrib.tree_select.md","api/evennia.contrib.turnbattle.md","api/evennia.contrib.turnbattle.tb_basic.md","api/evennia.contrib.turnbattle.tb_equip.md","api/evennia.contrib.turnbattle.tb_items.md","api/evennia.contrib.turnbattle.tb_magic.md","api/evennia.contrib.turnbattle.tb_range.md","api/evennia.contrib.tutorial_examples.md","api/evennia.contrib.tutorial_examples.bodyfunctions.md","api/evennia.contrib.tutorial_examples.example_batch_code.md","api/evennia.contrib.tutorial_examples.mirror.md","api/evennia.contrib.tutorial_examples.red_button.md","api/evennia.contrib.tutorial_examples.tests.md","api/evennia.contrib.tutorial_world.md","api/evennia.contrib.tutorial_world.intro_menu.md","api/evennia.contrib.tutorial_world.mob.md","api/evennia.contrib.tutorial_world.objects.md","api/evennia.contrib.tutorial_world.rooms.md","api/evennia.contrib.unixcommand.md","api/evennia.contrib.wilderness.md","api/evennia.contrib.xyzgrid.md","api/evennia.contrib.xyzgrid.commands.md","api/evennia.contrib.xyzgrid.example.md","api/evennia.contrib.xyzgrid.launchcmd.md","api/evennia.contrib.xyzgrid.prototypes.md","api/evennia.contrib.xyzgrid.tests.md","api/evennia.contrib.xyzgrid.utils.md","api/evennia.contrib.xyzgrid.xymap.md","api/evennia.contrib.xyzgrid.xymap_legend.md","api/evennia.contrib.xyzgrid.xyzgrid.md","api/evennia.contrib.xyzgrid.xyzroom.md","api/evennia.help.md","api/evennia.help.filehelp.md","api/evennia.help.manager.md","api/evennia.help.models.md","api/evennia.help.utils.md","api/evennia.locks.md","api/evennia.locks.lockfuncs.md","api/evennia.locks.lockhandler.md","api/evennia.objects.md","api/evennia.objects.manager.md","api/evennia.objects.models.md","api/evennia.objects.objects.md","api/evennia.prototypes.md","api/evennia.prototypes.menus.md","api/evennia.prototypes.protfuncs.md","api/evennia.prototypes.prototypes.md","api/evennia.prototypes.spawner.md","api/evennia.scripts.md","api/evennia.scripts.manager.md","api/evennia.scripts.models.md","api/evennia.scripts.monitorhandler.md","api/evennia.scripts.scripthandler.md","api/evennia.scripts.scripts.md","api/evennia.scripts.taskhandler.md","api/evennia.scripts.tickerhandler.md","api/evennia.server.md","api/evennia.server.amp_client.md","api/evennia.server.connection_wizard.md","api/evennia.server.deprecations.md","api/evennia.server.evennia_launcher.md","api/evennia.server.game_index_client.md","api/evennia.server.game_index_client.client.md","api/evennia.server.game_index_client.service.md","api/evennia.server.initial_setup.md","api/evennia.server.inputfuncs.md","api/evennia.server.manager.md","api/evennia.server.models.md","api/evennia.server.portal.md","api/evennia.server.portal.amp.md","api/evennia.server.portal.amp_server.md","api/evennia.server.portal.grapevine.md","api/evennia.server.portal.irc.md","api/evennia.server.portal.mccp.md","api/evennia.server.portal.mssp.md","api/evennia.server.portal.mxp.md","api/evennia.server.portal.naws.md","api/evennia.server.portal.portal.md","api/evennia.server.portal.portalsessionhandler.md","api/evennia.server.portal.rss.md","api/evennia.server.portal.ssh.md","api/evennia.server.portal.ssl.md","api/evennia.server.portal.suppress_ga.md","api/evennia.server.portal.telnet.md","api/evennia.server.portal.telnet_oob.md","api/evennia.server.portal.telnet_ssl.md","api/evennia.server.portal.tests.md","api/evennia.server.portal.ttype.md","api/evennia.server.portal.webclient.md","api/evennia.server.portal.webclient_ajax.md","api/evennia.server.profiling.md","api/evennia.server.profiling.dummyrunner.md","api/evennia.server.profiling.dummyrunner_settings.md","api/evennia.server.profiling.memplot.md","api/evennia.server.profiling.settings_mixin.md","api/evennia.server.profiling.test_queries.md","api/evennia.server.profiling.tests.md","api/evennia.server.profiling.timetrace.md","api/evennia.server.server.md","api/evennia.server.serversession.md","api/evennia.server.session.md","api/evennia.server.sessionhandler.md","api/evennia.server.signals.md","api/evennia.server.throttle.md","api/evennia.server.validators.md","api/evennia.server.webserver.md","api/evennia.settings_default.md","api/evennia.typeclasses.md","api/evennia.typeclasses.attributes.md","api/evennia.typeclasses.managers.md","api/evennia.typeclasses.models.md","api/evennia.typeclasses.tags.md","api/evennia.utils.md","api/evennia.utils.ansi.md","api/evennia.utils.batchprocessors.md","api/evennia.utils.containers.md","api/evennia.utils.create.md","api/evennia.utils.dbserialize.md","api/evennia.utils.eveditor.md","api/evennia.utils.evform.md","api/evennia.utils.evmenu.md","api/evennia.utils.evmore.md","api/evennia.utils.evtable.md","api/evennia.utils.funcparser.md","api/evennia.utils.gametime.md","api/evennia.utils.idmapper.md","api/evennia.utils.idmapper.manager.md","api/evennia.utils.idmapper.models.md","api/evennia.utils.idmapper.tests.md","api/evennia.utils.logger.md","api/evennia.utils.optionclasses.md","api/evennia.utils.optionhandler.md","api/evennia.utils.picklefield.md","api/evennia.utils.search.md","api/evennia.utils.test_resources.md","api/evennia.utils.text2html.md","api/evennia.utils.utils.md","api/evennia.utils.validatorfuncs.md","api/evennia.utils.verb_conjugation.md","api/evennia.utils.verb_conjugation.conjugate.md","api/evennia.utils.verb_conjugation.pronouns.md","api/evennia.utils.verb_conjugation.tests.md","api/evennia.web.md","api/evennia.web.admin.md","api/evennia.web.admin.accounts.md","api/evennia.web.admin.attributes.md","api/evennia.web.admin.comms.md","api/evennia.web.admin.frontpage.md","api/evennia.web.admin.help.md","api/evennia.web.admin.objects.md","api/evennia.web.admin.scripts.md","api/evennia.web.admin.server.md","api/evennia.web.admin.tags.md","api/evennia.web.admin.urls.md","api/evennia.web.admin.utils.md","api/evennia.web.api.md","api/evennia.web.api.filters.md","api/evennia.web.api.permissions.md","api/evennia.web.api.root.md","api/evennia.web.api.serializers.md","api/evennia.web.api.tests.md","api/evennia.web.api.urls.md","api/evennia.web.api.views.md","api/evennia.web.templatetags.md","api/evennia.web.templatetags.addclass.md","api/evennia.web.urls.md","api/evennia.web.utils.md","api/evennia.web.utils.adminsite.md","api/evennia.web.utils.backends.md","api/evennia.web.utils.general_context.md","api/evennia.web.utils.middleware.md","api/evennia.web.utils.tests.md","api/evennia.web.webclient.md","api/evennia.web.webclient.urls.md","api/evennia.web.webclient.views.md","api/evennia.web.website.md","api/evennia.web.website.forms.md","api/evennia.web.website.tests.md","api/evennia.web.website.urls.md","api/evennia.web.website.views.md","api/evennia.web.website.views.accounts.md","api/evennia.web.website.views.channels.md","api/evennia.web.website.views.characters.md","api/evennia.web.website.views.errors.md","api/evennia.web.website.views.help.md","api/evennia.web.website.views.index.md","api/evennia.web.website.views.mixins.md","api/evennia.web.website.views.objects.md","index.md","toc.md"],objects:{"":{evennia:[165,0,0,"-"]},"evennia.accounts":{accounts:[168,0,0,"-"],bots:[169,0,0,"-"],manager:[170,0,0,"-"],models:[171,0,0,"-"]},"evennia.accounts.accounts":{DefaultAccount:[168,1,1,""],DefaultGuest:[168,1,1,""]},"evennia.accounts.accounts.DefaultAccount":{"delete":[168,3,1,""],DoesNotExist:[168,2,1,""],MultipleObjectsReturned:[168,2,1,""],access:[168,3,1,""],at_access:[168,3,1,""],at_account_creation:[168,3,1,""],at_cmdset_get:[168,3,1,""],at_disconnect:[168,3,1,""],at_failed_login:[168,3,1,""],at_first_login:[168,3,1,""],at_first_save:[168,3,1,""],at_init:[168,3,1,""],at_look:[168,3,1,""],at_msg_receive:[168,3,1,""],at_msg_send:[168,3,1,""],at_password_change:[168,3,1,""],at_post_channel_msg:[168,3,1,""],at_post_disconnect:[168,3,1,""],at_post_login:[168,3,1,""],at_pre_channel_msg:[168,3,1,""],at_pre_login:[168,3,1,""],at_server_reload:[168,3,1,""],at_server_shutdown:[168,3,1,""],authenticate:[168,3,1,""],basetype_setup:[168,3,1,""],channel_msg:[168,3,1,""],character:[168,3,1,""],characters:[168,3,1,""],cmdset:[168,4,1,""],connection_time:[168,3,1,""],create:[168,3,1,""],create_character:[168,3,1,""],disconnect_session_from_account:[168,3,1,""],execute_cmd:[168,3,1,""],get_all_puppets:[168,3,1,""],get_display_name:[168,3,1,""],get_puppet:[168,3,1,""],get_username_validators:[168,3,1,""],idle_time:[168,3,1,""],is_banned:[168,3,1,""],msg:[168,3,1,""],nicks:[168,4,1,""],normalize_username:[168,3,1,""],objects:[168,4,1,""],options:[168,4,1,""],path:[168,4,1,""],puppet:[168,3,1,""],puppet_object:[168,3,1,""],scripts:[168,4,1,""],search:[168,3,1,""],sessions:[168,4,1,""],set_password:[168,3,1,""],typename:[168,4,1,""],unpuppet_all:[168,3,1,""],unpuppet_object:[168,3,1,""],validate_password:[168,3,1,""],validate_username:[168,3,1,""]},"evennia.accounts.accounts.DefaultGuest":{DoesNotExist:[168,2,1,""],MultipleObjectsReturned:[168,2,1,""],at_post_disconnect:[168,3,1,""],at_post_login:[168,3,1,""],at_server_shutdown:[168,3,1,""],authenticate:[168,3,1,""],create:[168,3,1,""],path:[168,4,1,""],typename:[168,4,1,""]},"evennia.accounts.bots":{Bot:[169,1,1,""],BotStarter:[169,1,1,""],GrapevineBot:[169,1,1,""],IRCBot:[169,1,1,""],RSSBot:[169,1,1,""]},"evennia.accounts.bots.Bot":{DoesNotExist:[169,2,1,""],MultipleObjectsReturned:[169,2,1,""],at_server_shutdown:[169,3,1,""],basetype_setup:[169,3,1,""],execute_cmd:[169,3,1,""],msg:[169,3,1,""],path:[169,4,1,""],start:[169,3,1,""],typename:[169,4,1,""]},"evennia.accounts.bots.BotStarter":{DoesNotExist:[169,2,1,""],MultipleObjectsReturned:[169,2,1,""],at_repeat:[169,3,1,""],at_script_creation:[169,3,1,""],at_server_reload:[169,3,1,""],at_server_shutdown:[169,3,1,""],at_start:[169,3,1,""],path:[169,4,1,""],typename:[169,4,1,""]},"evennia.accounts.bots.GrapevineBot":{DoesNotExist:[169,2,1,""],MultipleObjectsReturned:[169,2,1,""],at_msg_send:[169,3,1,""],execute_cmd:[169,3,1,""],factory_path:[169,4,1,""],msg:[169,3,1,""],path:[169,4,1,""],start:[169,3,1,""],typename:[169,4,1,""]},"evennia.accounts.bots.IRCBot":{DoesNotExist:[169,2,1,""],MultipleObjectsReturned:[169,2,1,""],at_msg_send:[169,3,1,""],execute_cmd:[169,3,1,""],factory_path:[169,4,1,""],get_nicklist:[169,3,1,""],msg:[169,3,1,""],path:[169,4,1,""],ping:[169,3,1,""],reconnect:[169,3,1,""],start:[169,3,1,""],typename:[169,4,1,""]},"evennia.accounts.bots.RSSBot":{DoesNotExist:[169,2,1,""],MultipleObjectsReturned:[169,2,1,""],execute_cmd:[169,3,1,""],path:[169,4,1,""],start:[169,3,1,""],typename:[169,4,1,""]},"evennia.accounts.manager":{AccountDBManager:[170,1,1,""],AccountManager:[170,1,1,""]},"evennia.accounts.manager.AccountDBManager":{account_search:[170,3,1,""],get_account_from_email:[170,3,1,""],get_account_from_name:[170,3,1,""],get_account_from_uid:[170,3,1,""],get_connected_accounts:[170,3,1,""],get_recently_connected_accounts:[170,3,1,""],get_recently_created_accounts:[170,3,1,""],num_total_accounts:[170,3,1,""],search_account:[170,3,1,""]},"evennia.accounts.models":{AccountDB:[171,1,1,""]},"evennia.accounts.models.AccountDB":{DoesNotExist:[171,2,1,""],MultipleObjectsReturned:[171,2,1,""],account_subscription_set:[171,4,1,""],cmdset_storage:[171,3,1,""],db_attributes:[171,4,1,""],db_cmdset_storage:[171,4,1,""],db_is_bot:[171,4,1,""],db_is_connected:[171,4,1,""],db_tags:[171,4,1,""],get_next_by_date_joined:[171,3,1,""],get_next_by_db_date_created:[171,3,1,""],get_previous_by_date_joined:[171,3,1,""],get_previous_by_db_date_created:[171,3,1,""],groups:[171,4,1,""],hide_from_accounts_set:[171,4,1,""],id:[171,4,1,""],is_bot:[171,3,1,""],is_connected:[171,3,1,""],key:[171,3,1,""],logentry_set:[171,4,1,""],name:[171,3,1,""],objectdb_set:[171,4,1,""],objects:[171,4,1,""],path:[171,4,1,""],receiver_account_set:[171,4,1,""],scriptdb_set:[171,4,1,""],sender_account_set:[171,4,1,""],typename:[171,4,1,""],uid:[171,3,1,""],user_permissions:[171,4,1,""]},"evennia.commands":{"default":[178,0,0,"-"],cmdhandler:[173,0,0,"-"],cmdparser:[174,0,0,"-"],cmdset:[175,0,0,"-"],cmdsethandler:[176,0,0,"-"],command:[177,0,0,"-"]},"evennia.commands.cmdhandler":{InterruptCommand:[173,2,1,""],cmdhandler:[173,5,1,""]},"evennia.commands.cmdparser":{build_matches:[174,5,1,""],cmdparser:[174,5,1,""],create_match:[174,5,1,""],try_num_differentiators:[174,5,1,""]},"evennia.commands.cmdset":{CmdSet:[175,1,1,""]},"evennia.commands.cmdset.CmdSet":{__init__:[175,3,1,""],add:[175,3,1,""],at_cmdset_creation:[175,3,1,""],count:[175,3,1,""],duplicates:[175,4,1,""],errmessage:[175,4,1,""],get:[175,3,1,""],get_all_cmd_keys_and_aliases:[175,3,1,""],get_system_cmds:[175,3,1,""],key:[175,4,1,""],key_mergetypes:[175,4,1,""],make_unique:[175,3,1,""],mergetype:[175,4,1,""],no_channels:[175,4,1,""],no_exits:[175,4,1,""],no_objs:[175,4,1,""],path:[175,4,1,""],persistent:[175,4,1,""],priority:[175,4,1,""],remove:[175,3,1,""],to_duplicate:[175,4,1,""]},"evennia.commands.cmdsethandler":{CmdSetHandler:[176,1,1,""],import_cmdset:[176,5,1,""]},"evennia.commands.cmdsethandler.CmdSetHandler":{"delete":[176,3,1,""],__init__:[176,3,1,""],add:[176,3,1,""],add_default:[176,3,1,""],all:[176,3,1,""],clear:[176,3,1,""],delete_default:[176,3,1,""],get:[176,3,1,""],has:[176,3,1,""],has_cmdset:[176,3,1,""],remove:[176,3,1,""],remove_default:[176,3,1,""],reset:[176,3,1,""],update:[176,3,1,""]},"evennia.commands.command":{Command:[177,1,1,""],CommandMeta:[177,1,1,""],InterruptCommand:[177,2,1,""]},"evennia.commands.command.Command":{__init__:[177,3,1,""],access:[177,3,1,""],aliases:[177,4,1,""],arg_regex:[177,4,1,""],at_post_cmd:[177,3,1,""],at_pre_cmd:[177,3,1,""],auto_help:[177,4,1,""],client_width:[177,3,1,""],execute_cmd:[177,3,1,""],func:[177,3,1,""],get_command_info:[177,3,1,""],get_extra_info:[177,3,1,""],get_help:[177,3,1,""],help_category:[177,4,1,""],is_exit:[177,4,1,""],key:[177,4,1,""],lock_storage:[177,4,1,""],lockhandler:[177,4,1,""],locks:[177,4,1,""],match:[177,3,1,""],msg:[177,3,1,""],msg_all_sessions:[177,4,1,""],parse:[177,3,1,""],retain_instance:[177,4,1,""],save_for_next:[177,4,1,""],search_index_entry:[177,4,1,""],set_aliases:[177,3,1,""],set_key:[177,3,1,""],styled_footer:[177,3,1,""],styled_header:[177,3,1,""],styled_separator:[177,3,1,""],styled_table:[177,3,1,""],web_get_admin_url:[177,3,1,""],web_get_detail_url:[177,3,1,""]},"evennia.commands.command.CommandMeta":{__init__:[177,3,1,""]},"evennia.commands.default":{account:[179,0,0,"-"],admin:[180,0,0,"-"],batchprocess:[181,0,0,"-"],building:[182,0,0,"-"],cmdset_account:[183,0,0,"-"],cmdset_character:[184,0,0,"-"],cmdset_session:[185,0,0,"-"],cmdset_unloggedin:[186,0,0,"-"],comms:[187,0,0,"-"],general:[188,0,0,"-"],help:[189,0,0,"-"],muxcommand:[190,0,0,"-"],syscommands:[191,0,0,"-"],system:[192,0,0,"-"],unloggedin:[194,0,0,"-"]},"evennia.commands.default.account":{CmdCharCreate:[179,1,1,""],CmdCharDelete:[179,1,1,""],CmdColorTest:[179,1,1,""],CmdIC:[179,1,1,""],CmdOOC:[179,1,1,""],CmdOOCLook:[179,1,1,""],CmdOption:[179,1,1,""],CmdPassword:[179,1,1,""],CmdQuell:[179,1,1,""],CmdQuit:[179,1,1,""],CmdSessions:[179,1,1,""],CmdStyle:[179,1,1,""],CmdWho:[179,1,1,""]},"evennia.commands.default.account.CmdCharCreate":{account_caller:[179,4,1,""],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.commands.default.account.CmdCharDelete":{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.commands.default.account.CmdColorTest":{account_caller:[179,4,1,""],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,""],slice_bright_bg:[179,4,1,""],slice_bright_fg:[179,4,1,""],slice_dark_bg:[179,4,1,""],slice_dark_fg:[179,4,1,""],table_format:[179,3,1,""]},"evennia.commands.default.account.CmdIC":{account_caller:[179,4,1,""],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.commands.default.account.CmdOOC":{account_caller:[179,4,1,""],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.commands.default.account.CmdOOCLook":{account_caller:[179,4,1,""],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.commands.default.account.CmdOption":{account_caller:[179,4,1,""],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,""],switch_options:[179,4,1,""]},"evennia.commands.default.account.CmdPassword":{account_caller:[179,4,1,""],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.commands.default.account.CmdQuell":{account_caller:[179,4,1,""],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.commands.default.account.CmdQuit":{account_caller:[179,4,1,""],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,""],switch_options:[179,4,1,""]},"evennia.commands.default.account.CmdSessions":{account_caller:[179,4,1,""],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.commands.default.account.CmdStyle":{aliases:[179,4,1,""],func:[179,3,1,""],help_category:[179,4,1,""],key:[179,4,1,""],list_styles:[179,3,1,""],lock_storage:[179,4,1,""],search_index_entry:[179,4,1,""],set:[179,3,1,""],switch_options:[179,4,1,""]},"evennia.commands.default.account.CmdWho":{account_caller:[179,4,1,""],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.commands.default.admin":{CmdBan:[180,1,1,""],CmdBoot:[180,1,1,""],CmdEmit:[180,1,1,""],CmdForce:[180,1,1,""],CmdNewPassword:[180,1,1,""],CmdPerm:[180,1,1,""],CmdUnban:[180,1,1,""],CmdWall:[180,1,1,""]},"evennia.commands.default.admin.CmdBan":{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.commands.default.admin.CmdBoot":{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,""],switch_options:[180,4,1,""]},"evennia.commands.default.admin.CmdEmit":{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,""],switch_options:[180,4,1,""]},"evennia.commands.default.admin.CmdForce":{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,""],perm_used:[180,4,1,""],search_index_entry:[180,4,1,""]},"evennia.commands.default.admin.CmdNewPassword":{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.commands.default.admin.CmdPerm":{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,""],switch_options:[180,4,1,""]},"evennia.commands.default.admin.CmdUnban":{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.commands.default.admin.CmdWall":{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.commands.default.batchprocess":{CmdBatchCode:[181,1,1,""],CmdBatchCommands:[181,1,1,""]},"evennia.commands.default.batchprocess.CmdBatchCode":{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,""],switch_options:[181,4,1,""]},"evennia.commands.default.batchprocess.CmdBatchCommands":{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,""],switch_options:[181,4,1,""]},"evennia.commands.default.building":{CmdCopy:[182,1,1,""],CmdCpAttr:[182,1,1,""],CmdCreate:[182,1,1,""],CmdDesc:[182,1,1,""],CmdDestroy:[182,1,1,""],CmdDig:[182,1,1,""],CmdExamine:[182,1,1,""],CmdFind:[182,1,1,""],CmdLink:[182,1,1,""],CmdListCmdSets:[182,1,1,""],CmdLock:[182,1,1,""],CmdMvAttr:[182,1,1,""],CmdName:[182,1,1,""],CmdObjects:[182,1,1,""],CmdOpen:[182,1,1,""],CmdScripts:[182,1,1,""],CmdSetAttribute:[182,1,1,""],CmdSetHome:[182,1,1,""],CmdSetObjAlias:[182,1,1,""],CmdSpawn:[182,1,1,""],CmdTag:[182,1,1,""],CmdTeleport:[182,1,1,""],CmdTunnel:[182,1,1,""],CmdTypeclass:[182,1,1,""],CmdUnLink:[182,1,1,""],CmdWipe:[182,1,1,""],ObjManipCommand:[182,1,1,""]},"evennia.commands.default.building.CmdCopy":{aliases:[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.commands.default.building.CmdCpAttr":{aliases:[182,4,1,""],check_from_attr:[182,3,1,""],check_has_attr:[182,3,1,""],check_to_attr:[182,3,1,""],func:[182,3,1,""],get_attr:[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,""],switch_options:[182,4,1,""]},"evennia.commands.default.building.CmdCreate":{aliases:[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,""],new_obj_lockstring:[182,4,1,""],search_index_entry:[182,4,1,""],switch_options:[182,4,1,""]},"evennia.commands.default.building.CmdDesc":{aliases:[182,4,1,""],edit_handler:[182,3,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,""],switch_options:[182,4,1,""]},"evennia.commands.default.building.CmdDestroy":{aliases:[182,4,1,""],confirm:[182,4,1,""],default_confirm:[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,""],switch_options:[182,4,1,""]},"evennia.commands.default.building.CmdDig":{aliases:[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,""],new_room_lockstring:[182,4,1,""],search_index_entry:[182,4,1,""],switch_options:[182,4,1,""]},"evennia.commands.default.building.CmdExamine":{account_mode:[182,4,1,""],aliases:[182,4,1,""],arg_regex:[182,4,1,""],detail_color:[182,4,1,""],format_attributes:[182,3,1,""],format_output:[182,3,1,""],func:[182,3,1,""],header_color:[182,4,1,""],help_category:[182,4,1,""],key:[182,4,1,""],list_attribute:[182,3,1,""],lock_storage:[182,4,1,""],locks:[182,4,1,""],quell_color:[182,4,1,""],search_index_entry:[182,4,1,""],separator:[182,4,1,""]},"evennia.commands.default.building.CmdFind":{aliases:[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,""],switch_options:[182,4,1,""]},"evennia.commands.default.building.CmdLink":{aliases:[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.commands.default.building.CmdListCmdSets":{aliases:[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.commands.default.building.CmdLock":{aliases:[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.commands.default.building.CmdMvAttr":{aliases:[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,""],switch_options:[182,4,1,""]},"evennia.commands.default.building.CmdName":{aliases:[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.commands.default.building.CmdObjects":{aliases:[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.commands.default.building.CmdOpen":{aliases:[182,4,1,""],create_exit:[182,3,1,""],func:[182,3,1,""],help_category:[182,4,1,""],key:[182,4,1,""],lock_storage:[182,4,1,""],locks:[182,4,1,""],new_obj_lockstring:[182,4,1,""],parse:[182,3,1,""],search_index_entry:[182,4,1,""]},"evennia.commands.default.building.CmdScripts":{aliases:[182,4,1,""],excluded_typeclass_paths:[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,""],switch_mapping:[182,4,1,""],switch_options:[182,4,1,""]},"evennia.commands.default.building.CmdSetAttribute":{aliases:[182,4,1,""],check_attr:[182,3,1,""],check_obj:[182,3,1,""],do_nested_lookup:[182,3,1,""],edit_handler:[182,3,1,""],func:[182,3,1,""],help_category:[182,4,1,""],key:[182,4,1,""],lock_storage:[182,4,1,""],locks:[182,4,1,""],nested_re:[182,4,1,""],not_found:[182,4,1,""],rm_attr:[182,3,1,""],search_for_obj:[182,3,1,""],search_index_entry:[182,4,1,""],set_attr:[182,3,1,""],split_nested_attr:[182,3,1,""],view_attr:[182,3,1,""]},"evennia.commands.default.building.CmdSetHome":{aliases:[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.commands.default.building.CmdSetObjAlias":{aliases:[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,""],switch_options:[182,4,1,""]},"evennia.commands.default.building.CmdSpawn":{aliases:[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,""],switch_options:[182,4,1,""]},"evennia.commands.default.building.CmdTag":{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,""],options:[182,4,1,""],search_index_entry:[182,4,1,""]},"evennia.commands.default.building.CmdTeleport":{aliases:[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,""],parse:[182,3,1,""],rhs_split:[182,4,1,""],search_index_entry:[182,4,1,""],switch_options:[182,4,1,""]},"evennia.commands.default.building.CmdTunnel":{aliases:[182,4,1,""],directions:[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,""],switch_options:[182,4,1,""]},"evennia.commands.default.building.CmdTypeclass":{aliases:[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,""],switch_options:[182,4,1,""]},"evennia.commands.default.building.CmdUnLink":{aliases:[182,4,1,""],func:[182,3,1,""],help_category:[182,4,1,""],help_key:[182,4,1,""],key:[182,4,1,""],lock_storage:[182,4,1,""],locks:[182,4,1,""],search_index_entry:[182,4,1,""]},"evennia.commands.default.building.CmdWipe":{aliases:[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.commands.default.building.ObjManipCommand":{aliases:[182,4,1,""],help_category:[182,4,1,""],key:[182,4,1,""],lock_storage:[182,4,1,""],parse:[182,3,1,""],search_index_entry:[182,4,1,""]},"evennia.commands.default.cmdset_account":{AccountCmdSet:[183,1,1,""]},"evennia.commands.default.cmdset_account.AccountCmdSet":{at_cmdset_creation:[183,3,1,""],key:[183,4,1,""],path:[183,4,1,""],priority:[183,4,1,""]},"evennia.commands.default.cmdset_character":{CharacterCmdSet:[184,1,1,""]},"evennia.commands.default.cmdset_character.CharacterCmdSet":{at_cmdset_creation:[184,3,1,""],key:[184,4,1,""],path:[184,4,1,""],priority:[184,4,1,""]},"evennia.commands.default.cmdset_session":{SessionCmdSet:[185,1,1,""]},"evennia.commands.default.cmdset_session.SessionCmdSet":{at_cmdset_creation:[185,3,1,""],key:[185,4,1,""],path:[185,4,1,""],priority:[185,4,1,""]},"evennia.commands.default.cmdset_unloggedin":{UnloggedinCmdSet:[186,1,1,""]},"evennia.commands.default.cmdset_unloggedin.UnloggedinCmdSet":{at_cmdset_creation:[186,3,1,""],key:[186,4,1,""],path:[186,4,1,""],priority:[186,4,1,""]},"evennia.commands.default.comms":{CmdChannel:[187,1,1,""],CmdGrapevine2Chan:[187,1,1,""],CmdIRC2Chan:[187,1,1,""],CmdIRCStatus:[187,1,1,""],CmdObjectChannel:[187,1,1,""],CmdPage:[187,1,1,""],CmdRSS2Chan:[187,1,1,""]},"evennia.commands.default.comms.CmdChannel":{account_caller:[187,4,1,""],add_alias:[187,3,1,""],aliases:[187,4,1,""],ban_user:[187,3,1,""],boot_user:[187,3,1,""],channel_list_bans:[187,3,1,""],channel_list_who:[187,3,1,""],create_channel:[187,3,1,""],destroy_channel:[187,3,1,""],display_all_channels:[187,3,1,""],display_subbed_channels:[187,3,1,""],func:[187,3,1,""],get_channel_aliases:[187,3,1,""],get_channel_history:[187,3,1,""],help_category:[187,4,1,""],key:[187,4,1,""],list_channels:[187,3,1,""],lock_storage:[187,4,1,""],locks:[187,4,1,""],msg_channel:[187,3,1,""],mute_channel:[187,3,1,""],remove_alias:[187,3,1,""],search_channel:[187,3,1,""],search_index_entry:[187,4,1,""],set_desc:[187,3,1,""],set_lock:[187,3,1,""],sub_to_channel:[187,3,1,""],switch_options:[187,4,1,""],unban_user:[187,3,1,""],unmute_channel:[187,3,1,""],unset_lock:[187,3,1,""],unsub_from_channel:[187,3,1,""]},"evennia.commands.default.comms.CmdGrapevine2Chan":{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,""],switch_options:[187,4,1,""]},"evennia.commands.default.comms.CmdIRC2Chan":{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,""],switch_options:[187,4,1,""]},"evennia.commands.default.comms.CmdIRCStatus":{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.commands.default.comms.CmdObjectChannel":{account_caller:[187,4,1,""],aliases:[187,4,1,""],help_category:[187,4,1,""],key:[187,4,1,""],lock_storage:[187,4,1,""],search_index_entry:[187,4,1,""]},"evennia.commands.default.comms.CmdPage":{account_caller:[187,4,1,""],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,""],switch_options:[187,4,1,""]},"evennia.commands.default.comms.CmdRSS2Chan":{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,""],switch_options:[187,4,1,""]},"evennia.commands.default.general":{CmdAccess:[188,1,1,""],CmdDrop:[188,1,1,""],CmdGet:[188,1,1,""],CmdGive:[188,1,1,""],CmdHome:[188,1,1,""],CmdInventory:[188,1,1,""],CmdLook:[188,1,1,""],CmdNick:[188,1,1,""],CmdPose:[188,1,1,""],CmdSay:[188,1,1,""],CmdSetDesc:[188,1,1,""],CmdWhisper:[188,1,1,""]},"evennia.commands.default.general.CmdAccess":{aliases:[188,4,1,""],arg_regex:[188,4,1,""],func:[188,3,1,""],help_category:[188,4,1,""],key:[188,4,1,""],lock_storage:[188,4,1,""],locks:[188,4,1,""],search_index_entry:[188,4,1,""]},"evennia.commands.default.general.CmdDrop":{aliases:[188,4,1,""],arg_regex:[188,4,1,""],func:[188,3,1,""],help_category:[188,4,1,""],key:[188,4,1,""],lock_storage:[188,4,1,""],locks:[188,4,1,""],search_index_entry:[188,4,1,""]},"evennia.commands.default.general.CmdGet":{aliases:[188,4,1,""],arg_regex:[188,4,1,""],func:[188,3,1,""],help_category:[188,4,1,""],key:[188,4,1,""],lock_storage:[188,4,1,""],locks:[188,4,1,""],search_index_entry:[188,4,1,""]},"evennia.commands.default.general.CmdGive":{aliases:[188,4,1,""],arg_regex:[188,4,1,""],func:[188,3,1,""],help_category:[188,4,1,""],key:[188,4,1,""],lock_storage:[188,4,1,""],locks:[188,4,1,""],rhs_split:[188,4,1,""],search_index_entry:[188,4,1,""]},"evennia.commands.default.general.CmdHome":{aliases:[188,4,1,""],arg_regex:[188,4,1,""],func:[188,3,1,""],help_category:[188,4,1,""],key:[188,4,1,""],lock_storage:[188,4,1,""],locks:[188,4,1,""],search_index_entry:[188,4,1,""]},"evennia.commands.default.general.CmdInventory":{aliases:[188,4,1,""],arg_regex:[188,4,1,""],func:[188,3,1,""],help_category:[188,4,1,""],key:[188,4,1,""],lock_storage:[188,4,1,""],locks:[188,4,1,""],search_index_entry:[188,4,1,""]},"evennia.commands.default.general.CmdLook":{aliases:[188,4,1,""],arg_regex:[188,4,1,""],func:[188,3,1,""],help_category:[188,4,1,""],key:[188,4,1,""],lock_storage:[188,4,1,""],locks:[188,4,1,""],search_index_entry:[188,4,1,""]},"evennia.commands.default.general.CmdNick":{aliases:[188,4,1,""],func:[188,3,1,""],help_category:[188,4,1,""],key:[188,4,1,""],lock_storage:[188,4,1,""],locks:[188,4,1,""],parse:[188,3,1,""],search_index_entry:[188,4,1,""],switch_options:[188,4,1,""]},"evennia.commands.default.general.CmdPose":{aliases:[188,4,1,""],arg_regex:[188,4,1,""],func:[188,3,1,""],help_category:[188,4,1,""],key:[188,4,1,""],lock_storage:[188,4,1,""],locks:[188,4,1,""],parse:[188,3,1,""],search_index_entry:[188,4,1,""]},"evennia.commands.default.general.CmdSay":{aliases:[188,4,1,""],arg_regex:[188,4,1,""],func:[188,3,1,""],help_category:[188,4,1,""],key:[188,4,1,""],lock_storage:[188,4,1,""],locks:[188,4,1,""],search_index_entry:[188,4,1,""]},"evennia.commands.default.general.CmdSetDesc":{aliases:[188,4,1,""],arg_regex:[188,4,1,""],func:[188,3,1,""],help_category:[188,4,1,""],key:[188,4,1,""],lock_storage:[188,4,1,""],locks:[188,4,1,""],search_index_entry:[188,4,1,""]},"evennia.commands.default.general.CmdWhisper":{aliases:[188,4,1,""],func:[188,3,1,""],help_category:[188,4,1,""],key:[188,4,1,""],lock_storage:[188,4,1,""],locks:[188,4,1,""],search_index_entry:[188,4,1,""]},"evennia.commands.default.help":{CmdHelp:[189,1,1,""],CmdSetHelp:[189,1,1,""]},"evennia.commands.default.help.CmdHelp":{aliases:[189,4,1,""],arg_regex:[189,4,1,""],can_list_topic:[189,3,1,""],can_read_topic:[189,3,1,""],clickable_topics:[189,4,1,""],collect_topics:[189,3,1,""],do_search:[189,3,1,""],format_help_entry:[189,3,1,""],format_help_index:[189,3,1,""],func:[189,3,1,""],help_category:[189,4,1,""],help_more:[189,4,1,""],index_category_clr:[189,4,1,""],index_topic_clr:[189,4,1,""],index_type_separator_clr:[189,4,1,""],key:[189,4,1,""],lock_storage:[189,4,1,""],locks:[189,4,1,""],msg_help:[189,3,1,""],parse:[189,3,1,""],return_cmdset:[189,4,1,""],search_index_entry:[189,4,1,""],strip_cmd_prefix:[189,3,1,""],subtopic_separator_char:[189,4,1,""],suggestion_cutoff:[189,4,1,""],suggestion_maxnum:[189,4,1,""]},"evennia.commands.default.help.CmdSetHelp":{aliases:[189,4,1,""],arg_regex:[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,""],parse:[189,3,1,""],search_index_entry:[189,4,1,""],switch_options:[189,4,1,""]},"evennia.commands.default.muxcommand":{MuxAccountCommand:[190,1,1,""],MuxCommand:[190,1,1,""]},"evennia.commands.default.muxcommand.MuxAccountCommand":{account_caller:[190,4,1,""],aliases:[190,4,1,""],help_category:[190,4,1,""],key:[190,4,1,""],lock_storage:[190,4,1,""],search_index_entry:[190,4,1,""]},"evennia.commands.default.muxcommand.MuxCommand":{aliases:[190,4,1,""],at_post_cmd:[190,3,1,""],at_pre_cmd:[190,3,1,""],func:[190,3,1,""],get_command_info:[190,3,1,""],has_perm:[190,3,1,""],help_category:[190,4,1,""],key:[190,4,1,""],lock_storage:[190,4,1,""],parse:[190,3,1,""],search_index_entry:[190,4,1,""]},"evennia.commands.default.syscommands":{SystemMultimatch:[191,1,1,""],SystemNoInput:[191,1,1,""],SystemNoMatch:[191,1,1,""]},"evennia.commands.default.syscommands.SystemMultimatch":{aliases:[191,4,1,""],func:[191,3,1,""],help_category:[191,4,1,""],key:[191,4,1,""],lock_storage:[191,4,1,""],locks:[191,4,1,""],search_index_entry:[191,4,1,""]},"evennia.commands.default.syscommands.SystemNoInput":{aliases:[191,4,1,""],func:[191,3,1,""],help_category:[191,4,1,""],key:[191,4,1,""],lock_storage:[191,4,1,""],locks:[191,4,1,""],search_index_entry:[191,4,1,""]},"evennia.commands.default.syscommands.SystemNoMatch":{aliases:[191,4,1,""],func:[191,3,1,""],help_category:[191,4,1,""],key:[191,4,1,""],lock_storage:[191,4,1,""],locks:[191,4,1,""],search_index_entry:[191,4,1,""]},"evennia.commands.default.system":{CmdAbout:[192,1,1,""],CmdAccounts:[192,1,1,""],CmdPy:[192,1,1,""],CmdReload:[192,1,1,""],CmdReset:[192,1,1,""],CmdServerLoad:[192,1,1,""],CmdService:[192,1,1,""],CmdShutdown:[192,1,1,""],CmdTasks:[192,1,1,""],CmdTickers:[192,1,1,""],CmdTime:[192,1,1,""]},"evennia.commands.default.system.CmdAbout":{aliases:[192,4,1,""],func:[192,3,1,""],help_category:[192,4,1,""],key:[192,4,1,""],lock_storage:[192,4,1,""],locks:[192,4,1,""],search_index_entry:[192,4,1,""]},"evennia.commands.default.system.CmdAccounts":{aliases:[192,4,1,""],func:[192,3,1,""],help_category:[192,4,1,""],key:[192,4,1,""],lock_storage:[192,4,1,""],locks:[192,4,1,""],search_index_entry:[192,4,1,""],switch_options:[192,4,1,""]},"evennia.commands.default.system.CmdPy":{aliases:[192,4,1,""],arg_regex:[192,4,1,""],func:[192,3,1,""],help_category:[192,4,1,""],key:[192,4,1,""],lock_storage:[192,4,1,""],locks:[192,4,1,""],search_index_entry:[192,4,1,""],switch_options:[192,4,1,""]},"evennia.commands.default.system.CmdReload":{aliases:[192,4,1,""],func:[192,3,1,""],help_category:[192,4,1,""],key:[192,4,1,""],lock_storage:[192,4,1,""],locks:[192,4,1,""],search_index_entry:[192,4,1,""]},"evennia.commands.default.system.CmdReset":{aliases:[192,4,1,""],func:[192,3,1,""],help_category:[192,4,1,""],key:[192,4,1,""],lock_storage:[192,4,1,""],locks:[192,4,1,""],search_index_entry:[192,4,1,""]},"evennia.commands.default.system.CmdServerLoad":{aliases:[192,4,1,""],func:[192,3,1,""],help_category:[192,4,1,""],key:[192,4,1,""],lock_storage:[192,4,1,""],locks:[192,4,1,""],search_index_entry:[192,4,1,""],switch_options:[192,4,1,""]},"evennia.commands.default.system.CmdService":{aliases:[192,4,1,""],func:[192,3,1,""],help_category:[192,4,1,""],key:[192,4,1,""],lock_storage:[192,4,1,""],locks:[192,4,1,""],search_index_entry:[192,4,1,""],switch_options:[192,4,1,""]},"evennia.commands.default.system.CmdShutdown":{aliases:[192,4,1,""],func:[192,3,1,""],help_category:[192,4,1,""],key:[192,4,1,""],lock_storage:[192,4,1,""],locks:[192,4,1,""],search_index_entry:[192,4,1,""]},"evennia.commands.default.system.CmdTasks":{aliases:[192,4,1,""],coll_date_func:[192,3,1,""],do_task_action:[192,3,1,""],func:[192,3,1,""],help_category:[192,4,1,""],key:[192,4,1,""],lock_storage:[192,4,1,""],locks:[192,4,1,""],search_index_entry:[192,4,1,""],switch_options:[192,4,1,""]},"evennia.commands.default.system.CmdTickers":{aliases:[192,4,1,""],func:[192,3,1,""],help_category:[192,4,1,""],key:[192,4,1,""],lock_storage:[192,4,1,""],locks:[192,4,1,""],search_index_entry:[192,4,1,""]},"evennia.commands.default.system.CmdTime":{aliases:[192,4,1,""],func:[192,3,1,""],help_category:[192,4,1,""],key:[192,4,1,""],lock_storage:[192,4,1,""],locks:[192,4,1,""],search_index_entry:[192,4,1,""]},"evennia.commands.default.tests":{CmdInterrupt:[193,1,1,""],CommandTest:[193,1,1,""],TestAccount:[193,1,1,""],TestAdmin:[193,1,1,""],TestBatchProcess:[193,1,1,""],TestBuilding:[193,1,1,""],TestCmdTasks:[193,1,1,""],TestCommsChannel:[193,1,1,""],TestGeneral:[193,1,1,""],TestHelp:[193,1,1,""],TestInterruptCommand:[193,1,1,""],TestSystem:[193,1,1,""],TestSystemCommands:[193,1,1,""],TestUnconnectedCommand:[193,1,1,""],func_test_cmd_tasks:[193,5,1,""]},"evennia.commands.default.tests.CmdInterrupt":{aliases:[193,4,1,""],func:[193,3,1,""],help_category:[193,4,1,""],key:[193,4,1,""],lock_storage:[193,4,1,""],parse:[193,3,1,""],search_index_entry:[193,4,1,""]},"evennia.commands.default.tests.CommandTest":{call:[193,3,1,""]},"evennia.commands.default.tests.TestAccount":{test_char_create:[193,3,1,""],test_char_delete:[193,3,1,""],test_color_test:[193,3,1,""],test_ic:[193,3,1,""],test_ic__nonaccess:[193,3,1,""],test_ic__other_object:[193,3,1,""],test_ooc:[193,3,1,""],test_ooc_look:[193,3,1,""],test_option:[193,3,1,""],test_password:[193,3,1,""],test_quell:[193,3,1,""],test_quit:[193,3,1,""],test_sessions:[193,3,1,""],test_who:[193,3,1,""]},"evennia.commands.default.tests.TestAdmin":{test_ban:[193,3,1,""],test_emit:[193,3,1,""],test_force:[193,3,1,""],test_perm:[193,3,1,""],test_wall:[193,3,1,""]},"evennia.commands.default.tests.TestBatchProcess":{test_batch_commands:[193,3,1,""]},"evennia.commands.default.tests.TestBuilding":{test_attribute_commands:[193,3,1,""],test_copy:[193,3,1,""],test_create:[193,3,1,""],test_desc:[193,3,1,""],test_desc_default_to_room:[193,3,1,""],test_destroy:[193,3,1,""],test_destroy_sequence:[193,3,1,""],test_dig:[193,3,1,""],test_do_nested_lookup:[193,3,1,""],test_empty_desc:[193,3,1,""],test_examine:[193,3,1,""],test_exit_commands:[193,3,1,""],test_find:[193,3,1,""],test_list_cmdsets:[193,3,1,""],test_lock:[193,3,1,""],test_name:[193,3,1,""],test_nested_attribute_commands:[193,3,1,""],test_script:[193,3,1,""],test_set_home:[193,3,1,""],test_set_obj_alias:[193,3,1,""],test_spawn:[193,3,1,""],test_split_nested_attr:[193,3,1,""],test_tag:[193,3,1,""],test_teleport:[193,3,1,""],test_tunnel:[193,3,1,""],test_tunnel_exit_typeclass:[193,3,1,""],test_typeclass:[193,3,1,""]},"evennia.commands.default.tests.TestCmdTasks":{setUp:[193,3,1,""],tearDown:[193,3,1,""],test_active_task:[193,3,1,""],test_call:[193,3,1,""],test_cancel:[193,3,1,""],test_do_task:[193,3,1,""],test_func_name_manipulation:[193,3,1,""],test_misformed_command:[193,3,1,""],test_new_task_waiting_input:[193,3,1,""],test_no_input:[193,3,1,""],test_no_tasks:[193,3,1,""],test_pause_unpause:[193,3,1,""],test_persistent_task:[193,3,1,""],test_remove:[193,3,1,""],test_responce_of_yes:[193,3,1,""],test_task_complete_waiting_input:[193,3,1,""],test_wrong_func_name:[193,3,1,""]},"evennia.commands.default.tests.TestCommsChannel":{setUp:[193,3,1,""],tearDown:[193,3,1,""],test_channel__alias__unalias:[193,3,1,""],test_channel__all:[193,3,1,""],test_channel__ban__unban:[193,3,1,""],test_channel__boot:[193,3,1,""],test_channel__create:[193,3,1,""],test_channel__desc:[193,3,1,""],test_channel__destroy:[193,3,1,""],test_channel__history:[193,3,1,""],test_channel__list:[193,3,1,""],test_channel__lock:[193,3,1,""],test_channel__msg:[193,3,1,""],test_channel__mute:[193,3,1,""],test_channel__noarg:[193,3,1,""],test_channel__sub:[193,3,1,""],test_channel__unlock:[193,3,1,""],test_channel__unmute:[193,3,1,""],test_channel__unsub:[193,3,1,""],test_channel__who:[193,3,1,""]},"evennia.commands.default.tests.TestGeneral":{test_access:[193,3,1,""],test_get_and_drop:[193,3,1,""],test_give:[193,3,1,""],test_home:[193,3,1,""],test_inventory:[193,3,1,""],test_look:[193,3,1,""],test_mux_command:[193,3,1,""],test_nick:[193,3,1,""],test_pose:[193,3,1,""],test_say:[193,3,1,""],test_whisper:[193,3,1,""]},"evennia.commands.default.tests.TestHelp":{maxDiff:[193,4,1,""],setUp:[193,3,1,""],tearDown:[193,3,1,""],test_help:[193,3,1,""],test_set_help:[193,3,1,""],test_subtopic_fetch:[193,4,1,""],test_subtopic_fetch_00_test:[193,3,1,""],test_subtopic_fetch_01_test_creating_extra_stuff:[193,3,1,""],test_subtopic_fetch_02_test_creating:[193,3,1,""],test_subtopic_fetch_03_test_extra:[193,3,1,""],test_subtopic_fetch_04_test_extra_subsubtopic:[193,3,1,""],test_subtopic_fetch_05_test_creating_extra_subsub:[193,3,1,""],test_subtopic_fetch_06_test_Something_else:[193,3,1,""],test_subtopic_fetch_07_test_More:[193,3,1,""],test_subtopic_fetch_08_test_More_Second_more:[193,3,1,""],test_subtopic_fetch_09_test_More_more:[193,3,1,""],test_subtopic_fetch_10_test_more_second_more_again:[193,3,1,""],test_subtopic_fetch_11_test_more_second_third:[193,3,1,""]},"evennia.commands.default.tests.TestInterruptCommand":{test_interrupt_command:[193,3,1,""]},"evennia.commands.default.tests.TestSystem":{test_about:[193,3,1,""],test_objects:[193,3,1,""],test_py:[193,3,1,""],test_scripts:[193,3,1,""],test_server_load:[193,3,1,""]},"evennia.commands.default.tests.TestSystemCommands":{test_multimatch:[193,3,1,""],test_simple_defaults:[193,3,1,""]},"evennia.commands.default.tests.TestUnconnectedCommand":{test_info_command:[193,3,1,""]},"evennia.commands.default.unloggedin":{CmdUnconnectedConnect:[194,1,1,""],CmdUnconnectedCreate:[194,1,1,""],CmdUnconnectedEncoding:[194,1,1,""],CmdUnconnectedHelp:[194,1,1,""],CmdUnconnectedInfo:[194,1,1,""],CmdUnconnectedLook:[194,1,1,""],CmdUnconnectedQuit:[194,1,1,""],CmdUnconnectedScreenreader:[194,1,1,""]},"evennia.commands.default.unloggedin.CmdUnconnectedConnect":{aliases:[194,4,1,""],arg_regex:[194,4,1,""],func:[194,3,1,""],help_category:[194,4,1,""],key:[194,4,1,""],lock_storage:[194,4,1,""],locks:[194,4,1,""],search_index_entry:[194,4,1,""]},"evennia.commands.default.unloggedin.CmdUnconnectedCreate":{aliases:[194,4,1,""],arg_regex:[194,4,1,""],func:[194,3,1,""],help_category:[194,4,1,""],key:[194,4,1,""],lock_storage:[194,4,1,""],locks:[194,4,1,""],search_index_entry:[194,4,1,""]},"evennia.commands.default.unloggedin.CmdUnconnectedEncoding":{aliases:[194,4,1,""],func:[194,3,1,""],help_category:[194,4,1,""],key:[194,4,1,""],lock_storage:[194,4,1,""],locks:[194,4,1,""],search_index_entry:[194,4,1,""]},"evennia.commands.default.unloggedin.CmdUnconnectedHelp":{aliases:[194,4,1,""],func:[194,3,1,""],help_category:[194,4,1,""],key:[194,4,1,""],lock_storage:[194,4,1,""],locks:[194,4,1,""],search_index_entry:[194,4,1,""]},"evennia.commands.default.unloggedin.CmdUnconnectedInfo":{aliases:[194,4,1,""],func:[194,3,1,""],help_category:[194,4,1,""],key:[194,4,1,""],lock_storage:[194,4,1,""],locks:[194,4,1,""],search_index_entry:[194,4,1,""]},"evennia.commands.default.unloggedin.CmdUnconnectedLook":{aliases:[194,4,1,""],func:[194,3,1,""],help_category:[194,4,1,""],key:[194,4,1,""],lock_storage:[194,4,1,""],locks:[194,4,1,""],search_index_entry:[194,4,1,""]},"evennia.commands.default.unloggedin.CmdUnconnectedQuit":{aliases:[194,4,1,""],func:[194,3,1,""],help_category:[194,4,1,""],key:[194,4,1,""],lock_storage:[194,4,1,""],locks:[194,4,1,""],search_index_entry:[194,4,1,""]},"evennia.commands.default.unloggedin.CmdUnconnectedScreenreader":{aliases:[194,4,1,""],func:[194,3,1,""],help_category:[194,4,1,""],key:[194,4,1,""],lock_storage:[194,4,1,""],search_index_entry:[194,4,1,""]},"evennia.comms":{comms:[196,0,0,"-"],managers:[197,0,0,"-"],models:[198,0,0,"-"]},"evennia.comms.comms":{DefaultChannel:[196,1,1,""]},"evennia.comms.comms.DefaultChannel":{"delete":[196,3,1,""],DoesNotExist:[196,2,1,""],MultipleObjectsReturned:[196,2,1,""],access:[196,3,1,""],add_user_channel_alias:[196,3,1,""],at_channel_creation:[196,3,1,""],at_first_save:[196,3,1,""],at_init:[196,3,1,""],at_post_msg:[196,3,1,""],at_pre_msg:[196,3,1,""],ban:[196,3,1,""],banlist:[196,3,1,""],basetype_setup:[196,3,1,""],channel_msg_nick_pattern:[196,4,1,""],channel_msg_nick_replacement:[196,4,1,""],channel_prefix:[196,3,1,""],channel_prefix_string:[196,4,1,""],connect:[196,3,1,""],create:[196,3,1,""],disconnect:[196,3,1,""],distribute_message:[196,3,1,""],format_external:[196,3,1,""],format_message:[196,3,1,""],format_senders:[196,3,1,""],get_absolute_url:[196,3,1,""],get_log_filename:[196,3,1,""],has_connection:[196,3,1,""],log_file:[196,4,1,""],message_transform:[196,3,1,""],msg:[196,3,1,""],mute:[196,3,1,""],mutelist:[196,3,1,""],objects:[196,4,1,""],path:[196,4,1,""],pose_transform:[196,3,1,""],post_join_channel:[196,3,1,""],post_leave_channel:[196,3,1,""],post_send_message:[196,3,1,""],pre_join_channel:[196,3,1,""],pre_leave_channel:[196,3,1,""],pre_send_message:[196,3,1,""],remove_user_channel_alias:[196,3,1,""],send_to_online_only:[196,4,1,""],set_log_filename:[196,3,1,""],typename:[196,4,1,""],unban:[196,3,1,""],unmute:[196,3,1,""],web_get_admin_url:[196,3,1,""],web_get_create_url:[196,3,1,""],web_get_delete_url:[196,3,1,""],web_get_detail_url:[196,3,1,""],web_get_update_url:[196,3,1,""],wholist:[196,3,1,""]},"evennia.comms.managers":{ChannelDBManager:[197,1,1,""],ChannelManager:[197,1,1,""],CommError:[197,2,1,""],MsgManager:[197,1,1,""],identify_object:[197,5,1,""],to_object:[197,5,1,""]},"evennia.comms.managers.ChannelDBManager":{channel_search:[197,3,1,""],get_all_channels:[197,3,1,""],get_channel:[197,3,1,""],get_subscriptions:[197,3,1,""],search_channel:[197,3,1,""]},"evennia.comms.managers.MsgManager":{get_message_by_id:[197,3,1,""],get_messages_by_receiver:[197,3,1,""],get_messages_by_sender:[197,3,1,""],identify_object:[197,3,1,""],message_search:[197,3,1,""],search_message:[197,3,1,""]},"evennia.comms.models":{ChannelDB:[198,1,1,""],Msg:[198,1,1,""],SubscriptionHandler:[198,1,1,""],TempMsg:[198,1,1,""]},"evennia.comms.models.ChannelDB":{DoesNotExist:[198,2,1,""],MultipleObjectsReturned:[198,2,1,""],db_account_subscriptions:[198,4,1,""],db_attributes:[198,4,1,""],db_object_subscriptions:[198,4,1,""],db_tags:[198,4,1,""],get_next_by_db_date_created:[198,3,1,""],get_previous_by_db_date_created:[198,3,1,""],id:[198,4,1,""],objects:[198,4,1,""],path:[198,4,1,""],subscriptions:[198,4,1,""],typename:[198,4,1,""]},"evennia.comms.models.Msg":{DoesNotExist:[198,2,1,""],MultipleObjectsReturned:[198,2,1,""],access:[198,3,1,""],date_created:[198,3,1,""],db_date_created:[198,4,1,""],db_header:[198,4,1,""],db_hide_from_accounts:[198,4,1,""],db_hide_from_objects:[198,4,1,""],db_lock_storage:[198,4,1,""],db_message:[198,4,1,""],db_receiver_external:[198,4,1,""],db_receivers_accounts:[198,4,1,""],db_receivers_objects:[198,4,1,""],db_receivers_scripts:[198,4,1,""],db_sender_accounts:[198,4,1,""],db_sender_external:[198,4,1,""],db_sender_objects:[198,4,1,""],db_sender_scripts:[198,4,1,""],db_tags:[198,4,1,""],get_next_by_db_date_created:[198,3,1,""],get_previous_by_db_date_created:[198,3,1,""],header:[198,3,1,""],hide_from:[198,3,1,""],id:[198,4,1,""],lock_storage:[198,3,1,""],locks:[198,4,1,""],message:[198,3,1,""],objects:[198,4,1,""],path:[198,4,1,""],receiver_external:[198,3,1,""],receivers:[198,3,1,""],remove_receiver:[198,3,1,""],remove_sender:[198,3,1,""],sender_external:[198,3,1,""],senders:[198,3,1,""],tags:[198,4,1,""],typename:[198,4,1,""]},"evennia.comms.models.SubscriptionHandler":{__init__:[198,3,1,""],add:[198,3,1,""],all:[198,3,1,""],clear:[198,3,1,""],get:[198,3,1,""],has:[198,3,1,""],online:[198,3,1,""],remove:[198,3,1,""]},"evennia.comms.models.TempMsg":{__init__:[198,3,1,""],access:[198,3,1,""],locks:[198,4,1,""],remove_receiver:[198,3,1,""],remove_sender:[198,3,1,""]},"evennia.contrib":{awsstorage:[200,0,0,"-"],barter:[203,0,0,"-"],building_menu:[204,0,0,"-"],chargen:[205,0,0,"-"],clothing:[206,0,0,"-"],color_markups:[207,0,0,"-"],crafting:[208,0,0,"-"],custom_gametime:[212,0,0,"-"],dice:[213,0,0,"-"],email_login:[214,0,0,"-"],evscaperoom:[215,0,0,"-"],extended_room:[224,0,0,"-"],fieldfill:[225,0,0,"-"],gendersub:[226,0,0,"-"],health_bar:[227,0,0,"-"],ingame_python:[228,0,0,"-"],mail:[236,0,0,"-"],multidescer:[239,0,0,"-"],puzzles:[240,0,0,"-"],random_string_generator:[241,0,0,"-"],rplanguage:[242,0,0,"-"],rpsystem:[243,0,0,"-"],security:[244,0,0,"-"],simpledoor:[249,0,0,"-"],slow_exit:[250,0,0,"-"],talking_npc:[251,0,0,"-"],test_traits:[252,0,0,"-"],traits:[253,0,0,"-"],tree_select:[254,0,0,"-"],turnbattle:[255,0,0,"-"],tutorial_examples:[261,0,0,"-"],tutorial_world:[267,0,0,"-"],unixcommand:[272,0,0,"-"],wilderness:[273,0,0,"-"],xyzgrid:[274,0,0,"-"]},"evennia.contrib.awsstorage":{tests:[202,0,0,"-"]},"evennia.contrib.awsstorage.tests":{S3Boto3StorageTests:[202,1,1,""],S3Boto3TestCase:[202,1,1,""]},"evennia.contrib.awsstorage.tests.S3Boto3StorageTests":{test_auto_creating_bucket:[202,3,1,""],test_auto_creating_bucket_with_acl:[202,3,1,""],test_clean_name:[202,3,1,""],test_clean_name_normalize:[202,3,1,""],test_clean_name_trailing_slash:[202,3,1,""],test_clean_name_windows:[202,3,1,""],test_compress_content_len:[202,3,1,""],test_connection_threading:[202,3,1,""],test_content_type:[202,3,1,""],test_generated_url_is_encoded:[202,3,1,""],test_location_leading_slash:[202,3,1,""],test_override_class_variable:[202,3,1,""],test_override_init_argument:[202,3,1,""],test_pickle_with_bucket:[202,3,1,""],test_pickle_without_bucket:[202,3,1,""],test_special_characters:[202,3,1,""],test_storage_delete:[202,3,1,""],test_storage_exists:[202,3,1,""],test_storage_exists_doesnt_create_bucket:[202,3,1,""],test_storage_exists_false:[202,3,1,""],test_storage_listdir_base:[202,3,1,""],test_storage_listdir_subdir:[202,3,1,""],test_storage_mtime:[202,3,1,""],test_storage_open_no_overwrite_existing:[202,3,1,""],test_storage_open_no_write:[202,3,1,""],test_storage_open_write:[202,3,1,""],test_storage_save:[202,3,1,""],test_storage_save_gzip:[202,3,1,""],test_storage_save_gzip_twice:[202,3,1,""],test_storage_save_gzipped:[202,3,1,""],test_storage_save_with_acl:[202,3,1,""],test_storage_size:[202,3,1,""],test_storage_url:[202,3,1,""],test_storage_url_slashes:[202,3,1,""],test_storage_write_beyond_buffer_size:[202,3,1,""],test_strip_signing_parameters:[202,3,1,""]},"evennia.contrib.awsstorage.tests.S3Boto3TestCase":{setUp:[202,3,1,""]},"evennia.contrib.barter":{CmdAccept:[203,1,1,""],CmdDecline:[203,1,1,""],CmdEvaluate:[203,1,1,""],CmdFinish:[203,1,1,""],CmdOffer:[203,1,1,""],CmdStatus:[203,1,1,""],CmdTrade:[203,1,1,""],CmdTradeBase:[203,1,1,""],CmdTradeHelp:[203,1,1,""],CmdsetTrade:[203,1,1,""],TradeHandler:[203,1,1,""],TradeTimeout:[203,1,1,""]},"evennia.contrib.barter.CmdAccept":{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.barter.CmdDecline":{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.barter.CmdEvaluate":{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.barter.CmdFinish":{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.barter.CmdOffer":{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.barter.CmdStatus":{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.barter.CmdTrade":{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.barter.CmdTradeBase":{aliases:[203,4,1,""],help_category:[203,4,1,""],key:[203,4,1,""],lock_storage:[203,4,1,""],parse:[203,3,1,""],search_index_entry:[203,4,1,""]},"evennia.contrib.barter.CmdTradeHelp":{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.barter.CmdsetTrade":{at_cmdset_creation:[203,3,1,""],key:[203,4,1,""],path:[203,4,1,""]},"evennia.contrib.barter.TradeHandler":{__init__:[203,3,1,""],accept:[203,3,1,""],decline:[203,3,1,""],finish:[203,3,1,""],get_other:[203,3,1,""],join:[203,3,1,""],list:[203,3,1,""],msg_other:[203,3,1,""],offer:[203,3,1,""],search:[203,3,1,""],unjoin:[203,3,1,""]},"evennia.contrib.barter.TradeTimeout":{DoesNotExist:[203,2,1,""],MultipleObjectsReturned:[203,2,1,""],at_repeat:[203,3,1,""],at_script_creation:[203,3,1,""],is_valid:[203,3,1,""],path:[203,4,1,""],typename:[203,4,1,""]},"evennia.contrib.building_menu":{BuildingMenu:[204,1,1,""],BuildingMenuCmdSet:[204,1,1,""],Choice:[204,1,1,""],CmdNoInput:[204,1,1,""],CmdNoMatch:[204,1,1,""],GenericBuildingCmd:[204,1,1,""],GenericBuildingMenu:[204,1,1,""],menu_edit:[204,5,1,""],menu_quit:[204,5,1,""],menu_setattr:[204,5,1,""]},"evennia.contrib.building_menu.BuildingMenu":{__init__:[204,3,1,""],add_choice:[204,3,1,""],add_choice_edit:[204,3,1,""],add_choice_quit:[204,3,1,""],close:[204,3,1,""],current_choice:[204,3,1,""],display:[204,3,1,""],display_choice:[204,3,1,""],display_title:[204,3,1,""],init:[204,3,1,""],joker_key:[204,4,1,""],keys_go_back:[204,4,1,""],min_shortcut:[204,4,1,""],move:[204,3,1,""],open:[204,3,1,""],open_parent_menu:[204,3,1,""],open_submenu:[204,3,1,""],relevant_choices:[204,3,1,""],restore:[204,3,1,""],sep_keys:[204,4,1,""]},"evennia.contrib.building_menu.BuildingMenuCmdSet":{at_cmdset_creation:[204,3,1,""],key:[204,4,1,""],path:[204,4,1,""],priority:[204,4,1,""]},"evennia.contrib.building_menu.Choice":{__init__:[204,3,1,""],enter:[204,3,1,""],format_text:[204,3,1,""],keys:[204,3,1,""],leave:[204,3,1,""],nomatch:[204,3,1,""]},"evennia.contrib.building_menu.CmdNoInput":{__init__:[204,3,1,""],aliases:[204,4,1,""],func:[204,3,1,""],help_category:[204,4,1,""],key:[204,4,1,""],lock_storage:[204,4,1,""],locks:[204,4,1,""],search_index_entry:[204,4,1,""]},"evennia.contrib.building_menu.CmdNoMatch":{__init__:[204,3,1,""],aliases:[204,4,1,""],func:[204,3,1,""],help_category:[204,4,1,""],key:[204,4,1,""],lock_storage:[204,4,1,""],locks:[204,4,1,""],search_index_entry:[204,4,1,""]},"evennia.contrib.building_menu.GenericBuildingCmd":{aliases:[204,4,1,""],func:[204,3,1,""],help_category:[204,4,1,""],key:[204,4,1,""],lock_storage:[204,4,1,""],search_index_entry:[204,4,1,""]},"evennia.contrib.building_menu.GenericBuildingMenu":{init:[204,3,1,""]},"evennia.contrib.chargen":{CmdOOCCharacterCreate:[205,1,1,""],CmdOOCLook:[205,1,1,""],OOCCmdSetCharGen:[205,1,1,""]},"evennia.contrib.chargen.CmdOOCCharacterCreate":{aliases:[205,4,1,""],func:[205,3,1,""],help_category:[205,4,1,""],key:[205,4,1,""],lock_storage:[205,4,1,""],locks:[205,4,1,""],search_index_entry:[205,4,1,""]},"evennia.contrib.chargen.CmdOOCLook":{aliases:[205,4,1,""],func:[205,3,1,""],help_category:[205,4,1,""],key:[205,4,1,""],lock_storage:[205,4,1,""],locks:[205,4,1,""],search_index_entry:[205,4,1,""]},"evennia.contrib.chargen.OOCCmdSetCharGen":{at_cmdset_creation:[205,3,1,""],path:[205,4,1,""]},"evennia.contrib.clothing":{ClothedCharacter:[206,1,1,""],ClothedCharacterCmdSet:[206,1,1,""],Clothing:[206,1,1,""],CmdCover:[206,1,1,""],CmdDrop:[206,1,1,""],CmdGive:[206,1,1,""],CmdInventory:[206,1,1,""],CmdRemove:[206,1,1,""],CmdUncover:[206,1,1,""],CmdWear:[206,1,1,""],clothing_type_count:[206,5,1,""],get_worn_clothes:[206,5,1,""],order_clothes_list:[206,5,1,""],single_type_count:[206,5,1,""]},"evennia.contrib.clothing.ClothedCharacter":{DoesNotExist:[206,2,1,""],MultipleObjectsReturned:[206,2,1,""],path:[206,4,1,""],return_appearance:[206,3,1,""],typename:[206,4,1,""]},"evennia.contrib.clothing.ClothedCharacterCmdSet":{at_cmdset_creation:[206,3,1,""],key:[206,4,1,""],path:[206,4,1,""]},"evennia.contrib.clothing.Clothing":{DoesNotExist:[206,2,1,""],MultipleObjectsReturned:[206,2,1,""],at_get:[206,3,1,""],path:[206,4,1,""],remove:[206,3,1,""],typename:[206,4,1,""],wear:[206,3,1,""]},"evennia.contrib.clothing.CmdCover":{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.clothing.CmdDrop":{aliases:[206,4,1,""],arg_regex:[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.clothing.CmdGive":{aliases:[206,4,1,""],arg_regex:[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.clothing.CmdInventory":{aliases:[206,4,1,""],arg_regex:[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.clothing.CmdRemove":{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.clothing.CmdUncover":{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.clothing.CmdWear":{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.crafting":{crafting:[209,0,0,"-"],example_recipes:[210,0,0,"-"],tests:[211,0,0,"-"]},"evennia.contrib.crafting.crafting":{CmdCraft:[209,1,1,""],CraftingCmdSet:[209,1,1,""],CraftingError:[209,2,1,""],CraftingRecipe:[209,1,1,""],CraftingRecipeBase:[209,1,1,""],CraftingValidationError:[209,2,1,""],craft:[209,5,1,""]},"evennia.contrib.crafting.crafting.CmdCraft":{aliases:[209,4,1,""],arg_regex:[209,4,1,""],func:[209,3,1,""],help_category:[209,4,1,""],key:[209,4,1,""],lock_storage:[209,4,1,""],locks:[209,4,1,""],parse:[209,3,1,""],search_index_entry:[209,4,1,""]},"evennia.contrib.crafting.crafting.CraftingCmdSet":{at_cmdset_creation:[209,3,1,""],key:[209,4,1,""],path:[209,4,1,""]},"evennia.contrib.crafting.crafting.CraftingRecipe":{__init__:[209,3,1,""],consumable_names:[209,4,1,""],consumable_tag_category:[209,4,1,""],consumable_tags:[209,4,1,""],consume_on_fail:[209,4,1,""],do_craft:[209,3,1,""],error_consumable_excess_message:[209,4,1,""],error_consumable_missing_message:[209,4,1,""],error_consumable_order_message:[209,4,1,""],error_tool_excess_message:[209,4,1,""],error_tool_missing_message:[209,4,1,""],error_tool_order_message:[209,4,1,""],exact_consumable_order:[209,4,1,""],exact_consumables:[209,4,1,""],exact_tool_order:[209,4,1,""],exact_tools:[209,4,1,""],failure_message:[209,4,1,""],name:[209,4,1,""],output_names:[209,4,1,""],output_prototypes:[209,4,1,""],post_craft:[209,3,1,""],pre_craft:[209,3,1,""],seed:[209,3,1,""],success_message:[209,4,1,""],tool_names:[209,4,1,""],tool_tag_category:[209,4,1,""],tool_tags:[209,4,1,""]},"evennia.contrib.crafting.crafting.CraftingRecipeBase":{__init__:[209,3,1,""],allow_reuse:[209,4,1,""],craft:[209,3,1,""],do_craft:[209,3,1,""],msg:[209,3,1,""],name:[209,4,1,""],post_craft:[209,3,1,""],pre_craft:[209,3,1,""]},"evennia.contrib.crafting.example_recipes":{CmdCast:[210,1,1,""],CrucibleSteelRecipe:[210,1,1,""],FireballRecipe:[210,1,1,""],HealingRecipe:[210,1,1,""],LeatherRecipe:[210,1,1,""],OakBarkRecipe:[210,1,1,""],PigIronRecipe:[210,1,1,""],RawhideRecipe:[210,1,1,""],SwordBladeRecipe:[210,1,1,""],SwordGuardRecipe:[210,1,1,""],SwordHandleRecipe:[210,1,1,""],SwordPommelRecipe:[210,1,1,""],SwordRecipe:[210,1,1,""],random:[210,5,1,""]},"evennia.contrib.crafting.example_recipes.CmdCast":{aliases:[210,4,1,""],func:[210,3,1,""],help_category:[210,4,1,""],key:[210,4,1,""],lock_storage:[210,4,1,""],parse:[210,3,1,""],search_index_entry:[210,4,1,""]},"evennia.contrib.crafting.example_recipes.CrucibleSteelRecipe":{consumable_tags:[210,4,1,""],name:[210,4,1,""],output_prototypes:[210,4,1,""],tool_tags:[210,4,1,""]},"evennia.contrib.crafting.example_recipes.FireballRecipe":{desired_effects:[210,4,1,""],failure_effects:[210,4,1,""],name:[210,4,1,""],skill_requirements:[210,4,1,""],skill_roll:[210,4,1,""],success_message:[210,4,1,""]},"evennia.contrib.crafting.example_recipes.HealingRecipe":{desired_effects:[210,4,1,""],failure_effects:[210,4,1,""],name:[210,4,1,""],skill_requirements:[210,4,1,""],skill_roll:[210,4,1,""],success_message:[210,4,1,""]},"evennia.contrib.crafting.example_recipes.LeatherRecipe":{consumable_tags:[210,4,1,""],name:[210,4,1,""],output_prototypes:[210,4,1,""],tool_tags:[210,4,1,""]},"evennia.contrib.crafting.example_recipes.OakBarkRecipe":{consumable_tags:[210,4,1,""],name:[210,4,1,""],output_prototypes:[210,4,1,""],tool_tags:[210,4,1,""]},"evennia.contrib.crafting.example_recipes.PigIronRecipe":{consumable_tags:[210,4,1,""],name:[210,4,1,""],output_prototypes:[210,4,1,""],tool_tags:[210,4,1,""]},"evennia.contrib.crafting.example_recipes.RawhideRecipe":{consumable_tags:[210,4,1,""],name:[210,4,1,""],output_prototypes:[210,4,1,""],tool_tags:[210,4,1,""]},"evennia.contrib.crafting.example_recipes.SwordBladeRecipe":{consumable_tags:[210,4,1,""],name:[210,4,1,""],output_prototypes:[210,4,1,""],tool_tags:[210,4,1,""]},"evennia.contrib.crafting.example_recipes.SwordGuardRecipe":{consumable_tags:[210,4,1,""],name:[210,4,1,""],output_prototypes:[210,4,1,""],tool_tags:[210,4,1,""]},"evennia.contrib.crafting.example_recipes.SwordHandleRecipe":{consumable_tags:[210,4,1,""],name:[210,4,1,""],output_prototypes:[210,4,1,""],tool_tags:[210,4,1,""]},"evennia.contrib.crafting.example_recipes.SwordPommelRecipe":{consumable_tags:[210,4,1,""],name:[210,4,1,""],output_prototypes:[210,4,1,""],tool_tags:[210,4,1,""]},"evennia.contrib.crafting.example_recipes.SwordRecipe":{consumable_tags:[210,4,1,""],exact_consumable_order:[210,4,1,""],name:[210,4,1,""],output_prototypes:[210,4,1,""],tool_tags:[210,4,1,""]},"evennia.contrib.crafting.tests":{TestCraftCommand:[211,1,1,""],TestCraftSword:[211,1,1,""],TestCraftUtils:[211,1,1,""],TestCraftingRecipe:[211,1,1,""],TestCraftingRecipeBase:[211,1,1,""]},"evennia.contrib.crafting.tests.TestCraftCommand":{setUp:[211,3,1,""],test_craft__nocons__failure:[211,3,1,""],test_craft__notools__failure:[211,3,1,""],test_craft__success:[211,3,1,""]},"evennia.contrib.crafting.tests.TestCraftSword":{setUp:[211,3,1,""],test_craft_sword:[211,3,1,""]},"evennia.contrib.crafting.tests.TestCraftUtils":{maxDiff:[211,4,1,""],test_load_recipes:[211,3,1,""]},"evennia.contrib.crafting.tests.TestCraftingRecipe":{maxDiff:[211,4,1,""],setUp:[211,3,1,""],tearDown:[211,3,1,""],test_craft__success:[211,3,1,""],test_craft_cons_excess__fail:[211,3,1,""],test_craft_cons_excess__sucess:[211,3,1,""],test_craft_cons_order__fail:[211,3,1,""],test_craft_missing_cons__always_consume__fail:[211,3,1,""],test_craft_missing_cons__fail:[211,3,1,""],test_craft_missing_tool__fail:[211,3,1,""],test_craft_tool_excess__fail:[211,3,1,""],test_craft_tool_excess__sucess:[211,3,1,""],test_craft_tool_order__fail:[211,3,1,""],test_craft_wrong_tool__fail:[211,3,1,""],test_error_format:[211,3,1,""],test_seed__success:[211,3,1,""]},"evennia.contrib.crafting.tests.TestCraftingRecipeBase":{setUp:[211,3,1,""],test_craft_hook__fail:[211,3,1,""],test_craft_hook__succeed:[211,3,1,""],test_msg:[211,3,1,""],test_pre_craft:[211,3,1,""],test_pre_craft_fail:[211,3,1,""]},"evennia.contrib.custom_gametime":{GametimeScript:[212,1,1,""],custom_gametime:[212,5,1,""],gametime_to_realtime:[212,5,1,""],real_seconds_until:[212,5,1,""],realtime_to_gametime:[212,5,1,""],schedule:[212,5,1,""],time_to_tuple:[212,5,1,""]},"evennia.contrib.custom_gametime.GametimeScript":{DoesNotExist:[212,2,1,""],MultipleObjectsReturned:[212,2,1,""],at_repeat:[212,3,1,""],at_script_creation:[212,3,1,""],path:[212,4,1,""],typename:[212,4,1,""]},"evennia.contrib.dice":{CmdDice:[213,1,1,""],DiceCmdSet:[213,1,1,""],roll_dice:[213,5,1,""]},"evennia.contrib.dice.CmdDice":{aliases:[213,4,1,""],func:[213,3,1,""],help_category:[213,4,1,""],key:[213,4,1,""],lock_storage:[213,4,1,""],locks:[213,4,1,""],search_index_entry:[213,4,1,""]},"evennia.contrib.dice.DiceCmdSet":{at_cmdset_creation:[213,3,1,""],path:[213,4,1,""]},"evennia.contrib.email_login":{CmdUnconnectedConnect:[214,1,1,""],CmdUnconnectedCreate:[214,1,1,""],CmdUnconnectedHelp:[214,1,1,""],CmdUnconnectedLook:[214,1,1,""],CmdUnconnectedQuit:[214,1,1,""]},"evennia.contrib.email_login.CmdUnconnectedConnect":{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.email_login.CmdUnconnectedCreate":{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,""],parse:[214,3,1,""],search_index_entry:[214,4,1,""]},"evennia.contrib.email_login.CmdUnconnectedHelp":{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.email_login.CmdUnconnectedLook":{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.email_login.CmdUnconnectedQuit":{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.evscaperoom":{commands:[216,0,0,"-"],menu:[217,0,0,"-"],objects:[218,0,0,"-"],room:[219,0,0,"-"],state:[221,0,0,"-"],tests:[222,0,0,"-"],utils:[223,0,0,"-"]},"evennia.contrib.evscaperoom.commands":{CmdCreateObj:[216,1,1,""],CmdEmote:[216,1,1,""],CmdEvscapeRoom:[216,1,1,""],CmdEvscapeRoomStart:[216,1,1,""],CmdFocus:[216,1,1,""],CmdFocusInteraction:[216,1,1,""],CmdGet:[216,1,1,""],CmdGiveUp:[216,1,1,""],CmdHelp:[216,1,1,""],CmdJumpState:[216,1,1,""],CmdLook:[216,1,1,""],CmdOptions:[216,1,1,""],CmdRerouter:[216,1,1,""],CmdSetEvScapeRoom:[216,1,1,""],CmdSetFlag:[216,1,1,""],CmdSpeak:[216,1,1,""],CmdStand:[216,1,1,""],CmdWho:[216,1,1,""]},"evennia.contrib.evscaperoom.commands.CmdCreateObj":{aliases:[216,4,1,""],func:[216,3,1,""],help_category:[216,4,1,""],key:[216,4,1,""],lock_storage:[216,4,1,""],locks:[216,4,1,""],obj1_search:[216,4,1,""],obj2_search:[216,4,1,""],search_index_entry:[216,4,1,""]},"evennia.contrib.evscaperoom.commands.CmdEmote":{aliases:[216,4,1,""],arg_regex:[216,4,1,""],func:[216,3,1,""],help_category:[216,4,1,""],key:[216,4,1,""],lock_storage:[216,4,1,""],room_replace:[216,3,1,""],search_index_entry:[216,4,1,""],you_replace:[216,3,1,""]},"evennia.contrib.evscaperoom.commands.CmdEvscapeRoom":{aliases:[216,4,1,""],arg_regex:[216,4,1,""],focus:[216,3,1,""],help_category:[216,4,1,""],key:[216,4,1,""],lock_storage:[216,4,1,""],obj1_search:[216,4,1,""],obj2_search:[216,4,1,""],parse:[216,3,1,""],search_index_entry:[216,4,1,""]},"evennia.contrib.evscaperoom.commands.CmdEvscapeRoomStart":{aliases:[216,4,1,""],func:[216,3,1,""],help_category:[216,4,1,""],key:[216,4,1,""],lock_storage:[216,4,1,""],search_index_entry:[216,4,1,""]},"evennia.contrib.evscaperoom.commands.CmdFocus":{aliases:[216,4,1,""],func:[216,3,1,""],help_category:[216,4,1,""],key:[216,4,1,""],lock_storage:[216,4,1,""],obj1_search:[216,4,1,""],search_index_entry:[216,4,1,""]},"evennia.contrib.evscaperoom.commands.CmdFocusInteraction":{aliases:[216,4,1,""],func:[216,3,1,""],help_category:[216,4,1,""],key:[216,4,1,""],lock_storage:[216,4,1,""],obj1_search:[216,4,1,""],obj2_search:[216,4,1,""],parse:[216,3,1,""],search_index_entry:[216,4,1,""]},"evennia.contrib.evscaperoom.commands.CmdGet":{aliases:[216,4,1,""],func:[216,3,1,""],help_category:[216,4,1,""],key:[216,4,1,""],lock_storage:[216,4,1,""],search_index_entry:[216,4,1,""]},"evennia.contrib.evscaperoom.commands.CmdGiveUp":{aliases:[216,4,1,""],func:[216,3,1,""],help_category:[216,4,1,""],key:[216,4,1,""],lock_storage:[216,4,1,""],search_index_entry:[216,4,1,""]},"evennia.contrib.evscaperoom.commands.CmdHelp":{aliases:[216,4,1,""],func:[216,3,1,""],help_category:[216,4,1,""],key:[216,4,1,""],lock_storage:[216,4,1,""],search_index_entry:[216,4,1,""]},"evennia.contrib.evscaperoom.commands.CmdJumpState":{aliases:[216,4,1,""],func:[216,3,1,""],help_category:[216,4,1,""],key:[216,4,1,""],lock_storage:[216,4,1,""],locks:[216,4,1,""],obj1_search:[216,4,1,""],obj2_search:[216,4,1,""],search_index_entry:[216,4,1,""]},"evennia.contrib.evscaperoom.commands.CmdLook":{aliases:[216,4,1,""],func:[216,3,1,""],help_category:[216,4,1,""],key:[216,4,1,""],lock_storage:[216,4,1,""],obj1_search:[216,4,1,""],obj2_search:[216,4,1,""],search_index_entry:[216,4,1,""]},"evennia.contrib.evscaperoom.commands.CmdOptions":{aliases:[216,4,1,""],func:[216,3,1,""],help_category:[216,4,1,""],key:[216,4,1,""],lock_storage:[216,4,1,""],search_index_entry:[216,4,1,""]},"evennia.contrib.evscaperoom.commands.CmdRerouter":{aliases:[216,4,1,""],func:[216,3,1,""],help_category:[216,4,1,""],key:[216,4,1,""],lock_storage:[216,4,1,""],search_index_entry:[216,4,1,""]},"evennia.contrib.evscaperoom.commands.CmdSetEvScapeRoom":{at_cmdset_creation:[216,3,1,""],path:[216,4,1,""],priority:[216,4,1,""]},"evennia.contrib.evscaperoom.commands.CmdSetFlag":{aliases:[216,4,1,""],func:[216,3,1,""],help_category:[216,4,1,""],key:[216,4,1,""],lock_storage:[216,4,1,""],locks:[216,4,1,""],obj1_search:[216,4,1,""],obj2_search:[216,4,1,""],search_index_entry:[216,4,1,""]},"evennia.contrib.evscaperoom.commands.CmdSpeak":{aliases:[216,4,1,""],arg_regex:[216,4,1,""],func:[216,3,1,""],help_category:[216,4,1,""],key:[216,4,1,""],lock_storage:[216,4,1,""],search_index_entry:[216,4,1,""]},"evennia.contrib.evscaperoom.commands.CmdStand":{aliases:[216,4,1,""],func:[216,3,1,""],help_category:[216,4,1,""],key:[216,4,1,""],lock_storage:[216,4,1,""],search_index_entry:[216,4,1,""]},"evennia.contrib.evscaperoom.commands.CmdWho":{aliases:[216,4,1,""],func:[216,3,1,""],help_category:[216,4,1,""],key:[216,4,1,""],lock_storage:[216,4,1,""],obj1_search:[216,4,1,""],obj2_search:[216,4,1,""],search_index_entry:[216,4,1,""]},"evennia.contrib.evscaperoom.menu":{EvscaperoomMenu:[217,1,1,""],OptionsMenu:[217,1,1,""],node_create_room:[217,5,1,""],node_join_room:[217,5,1,""],node_options:[217,5,1,""],node_quit:[217,5,1,""],node_set_desc:[217,5,1,""],run_evscaperoom_menu:[217,5,1,""],run_option_menu:[217,5,1,""]},"evennia.contrib.evscaperoom.menu.EvscaperoomMenu":{node_border_char:[217,4,1,""],nodetext_formatter:[217,3,1,""],options_formatter:[217,3,1,""]},"evennia.contrib.evscaperoom.menu.OptionsMenu":{node_formatter:[217,3,1,""]},"evennia.contrib.evscaperoom.objects":{BaseApplicable:[218,1,1,""],BaseConsumable:[218,1,1,""],BasePositionable:[218,1,1,""],Climbable:[218,1,1,""],CodeInput:[218,1,1,""],Combinable:[218,1,1,""],Drinkable:[218,1,1,""],Edible:[218,1,1,""],EvscaperoomObject:[218,1,1,""],Feelable:[218,1,1,""],HasButtons:[218,1,1,""],IndexReadable:[218,1,1,""],Insertable:[218,1,1,""],Kneelable:[218,1,1,""],Liable:[218,1,1,""],Listenable:[218,1,1,""],Mixable:[218,1,1,""],Movable:[218,1,1,""],Openable:[218,1,1,""],Positionable:[218,1,1,""],Readable:[218,1,1,""],Rotatable:[218,1,1,""],Sittable:[218,1,1,""],Smellable:[218,1,1,""],Usable:[218,1,1,""]},"evennia.contrib.evscaperoom.objects.BaseApplicable":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_apply:[218,3,1,""],at_cannot_apply:[218,3,1,""],handle_apply:[218,3,1,""],path:[218,4,1,""],target_flag:[218,4,1,""],typename:[218,4,1,""]},"evennia.contrib.evscaperoom.objects.BaseConsumable":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_already_consumed:[218,3,1,""],at_consume:[218,3,1,""],consume_flag:[218,4,1,""],handle_consume:[218,3,1,""],has_consumed:[218,3,1,""],one_consume_only:[218,4,1,""],path:[218,4,1,""],typename:[218,4,1,""]},"evennia.contrib.evscaperoom.objects.BasePositionable":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_again_position:[218,3,1,""],at_cannot_position:[218,3,1,""],at_object_creation:[218,3,1,""],at_position:[218,3,1,""],handle_position:[218,3,1,""],path:[218,4,1,""],typename:[218,4,1,""]},"evennia.contrib.evscaperoom.objects.Climbable":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_focus_climb:[218,3,1,""],path:[218,4,1,""],typename:[218,4,1,""]},"evennia.contrib.evscaperoom.objects.CodeInput":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_code_correct:[218,3,1,""],at_code_incorrect:[218,3,1,""],at_focus_code:[218,3,1,""],at_no_code:[218,3,1,""],case_insensitive:[218,4,1,""],code:[218,4,1,""],code_hint:[218,4,1,""],get_cmd_signatures:[218,3,1,""],infinitely_locked:[218,4,1,""],path:[218,4,1,""],typename:[218,4,1,""]},"evennia.contrib.evscaperoom.objects.Combinable":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_apply:[218,3,1,""],at_cannot_apply:[218,3,1,""],at_focus_combine:[218,3,1,""],destroy_components:[218,4,1,""],get_cmd_signatures:[218,3,1,""],new_create_dict:[218,4,1,""],path:[218,4,1,""],target_flag:[218,4,1,""],typename:[218,4,1,""]},"evennia.contrib.evscaperoom.objects.Drinkable":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_already_consumed:[218,3,1,""],at_consume:[218,3,1,""],at_focus_drink:[218,3,1,""],at_focus_sip:[218,3,1,""],consume_flag:[218,4,1,""],path:[218,4,1,""],typename:[218,4,1,""]},"evennia.contrib.evscaperoom.objects.Edible":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_focus_eat:[218,3,1,""],consume_flag:[218,4,1,""],path:[218,4,1,""],typename:[218,4,1,""]},"evennia.contrib.evscaperoom.objects.EvscaperoomObject":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],action_prepositions:[218,4,1,""],at_focus:[218,3,1,""],at_object_creation:[218,3,1,""],at_speech:[218,3,1,""],at_unfocus:[218,3,1,""],check_character_flag:[218,3,1,""],check_flag:[218,3,1,""],get_cmd_signatures:[218,3,1,""],get_help:[218,3,1,""],get_position:[218,3,1,""],get_short_desc:[218,3,1,""],msg_char:[218,3,1,""],msg_room:[218,3,1,""],msg_system:[218,3,1,""],next_state:[218,3,1,""],parse:[218,3,1,""],path:[218,4,1,""],position_prep_map:[218,4,1,""],return_appearance:[218,3,1,""],room:[218,3,1,""],roomstate:[218,3,1,""],set_character_flag:[218,3,1,""],set_flag:[218,3,1,""],set_position:[218,3,1,""],tagcategory:[218,3,1,""],typename:[218,4,1,""],unset_character_flag:[218,3,1,""],unset_flag:[218,3,1,""]},"evennia.contrib.evscaperoom.objects.Feelable":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_focus_feel:[218,3,1,""],path:[218,4,1,""],typename:[218,4,1,""]},"evennia.contrib.evscaperoom.objects.HasButtons":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_focus_press:[218,3,1,""],at_focus_push:[218,3,1,""],at_green_button:[218,3,1,""],at_nomatch:[218,3,1,""],at_red_button:[218,3,1,""],buttons:[218,4,1,""],get_cmd_signatures:[218,3,1,""],path:[218,4,1,""],typename:[218,4,1,""]},"evennia.contrib.evscaperoom.objects.IndexReadable":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_cannot_read:[218,3,1,""],at_focus_read:[218,3,1,""],at_read:[218,3,1,""],get_cmd_signatures:[218,3,1,""],index:[218,4,1,""],path:[218,4,1,""],typename:[218,4,1,""]},"evennia.contrib.evscaperoom.objects.Insertable":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_apply:[218,3,1,""],at_cannot_apply:[218,3,1,""],at_focus_insert:[218,3,1,""],get_cmd_signatures:[218,3,1,""],path:[218,4,1,""],target_flag:[218,4,1,""],typename:[218,4,1,""]},"evennia.contrib.evscaperoom.objects.Kneelable":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_focus_kneel:[218,3,1,""],path:[218,4,1,""],typename:[218,4,1,""]},"evennia.contrib.evscaperoom.objects.Liable":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_focus_lie:[218,3,1,""],path:[218,4,1,""],typename:[218,4,1,""]},"evennia.contrib.evscaperoom.objects.Listenable":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_focus_listen:[218,3,1,""],path:[218,4,1,""],typename:[218,4,1,""]},"evennia.contrib.evscaperoom.objects.Mixable":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_mix:[218,3,1,""],at_mix_failure:[218,3,1,""],at_mix_success:[218,3,1,""],at_object_creation:[218,3,1,""],check_mixture:[218,3,1,""],handle_mix:[218,3,1,""],ingredient_recipe:[218,4,1,""],mixer_flag:[218,4,1,""],path:[218,4,1,""],typename:[218,4,1,""]},"evennia.contrib.evscaperoom.objects.Movable":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_already_moved:[218,3,1,""],at_cannot_move:[218,3,1,""],at_focus_move:[218,3,1,""],at_focus_push:[218,3,1,""],at_focus_shove:[218,3,1,""],at_left:[218,3,1,""],at_object_creation:[218,3,1,""],at_right:[218,3,1,""],get_cmd_signatures:[218,3,1,""],move_positions:[218,4,1,""],path:[218,4,1,""],start_position:[218,4,1,""],typename:[218,4,1,""]},"evennia.contrib.evscaperoom.objects.Openable":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_already_closed:[218,3,1,""],at_already_open:[218,3,1,""],at_close:[218,3,1,""],at_focus_close:[218,3,1,""],at_focus_open:[218,3,1,""],at_locked:[218,3,1,""],at_object_creation:[218,3,1,""],at_open:[218,3,1,""],open_flag:[218,4,1,""],path:[218,4,1,""],start_open:[218,4,1,""],typename:[218,4,1,""],unlock_flag:[218,4,1,""]},"evennia.contrib.evscaperoom.objects.Positionable":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],get_cmd_signatures:[218,3,1,""],path:[218,4,1,""],typename:[218,4,1,""]},"evennia.contrib.evscaperoom.objects.Readable":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_cannot_read:[218,3,1,""],at_focus_read:[218,3,1,""],at_object_creation:[218,3,1,""],at_read:[218,3,1,""],path:[218,4,1,""],read_flag:[218,4,1,""],start_readable:[218,4,1,""],typename:[218,4,1,""]},"evennia.contrib.evscaperoom.objects.Rotatable":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_cannot_rotate:[218,3,1,""],at_focus_rotate:[218,3,1,""],at_focus_turn:[218,3,1,""],at_object_creation:[218,3,1,""],at_rotate:[218,3,1,""],path:[218,4,1,""],rotate_flag:[218,4,1,""],start_rotatable:[218,4,1,""],typename:[218,4,1,""]},"evennia.contrib.evscaperoom.objects.Sittable":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_focus_sit:[218,3,1,""],path:[218,4,1,""],typename:[218,4,1,""]},"evennia.contrib.evscaperoom.objects.Smellable":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_focus_smell:[218,3,1,""],path:[218,4,1,""],typename:[218,4,1,""]},"evennia.contrib.evscaperoom.objects.Usable":{DoesNotExist:[218,2,1,""],MultipleObjectsReturned:[218,2,1,""],at_apply:[218,3,1,""],at_cannot_apply:[218,3,1,""],at_focus_use:[218,3,1,""],path:[218,4,1,""],target_flag:[218,4,1,""],typename:[218,4,1,""]},"evennia.contrib.evscaperoom.room":{EvscapeRoom:[219,1,1,""]},"evennia.contrib.evscaperoom.room.EvscapeRoom":{"delete":[219,3,1,""],DoesNotExist:[219,2,1,""],MultipleObjectsReturned:[219,2,1,""],achievement:[219,3,1,""],at_object_creation:[219,3,1,""],at_object_leave:[219,3,1,""],at_object_receive:[219,3,1,""],character_cleanup:[219,3,1,""],character_exit:[219,3,1,""],check_flag:[219,3,1,""],check_perm:[219,3,1,""],get_all_characters:[219,3,1,""],log:[219,3,1,""],path:[219,4,1,""],progress:[219,3,1,""],return_appearance:[219,3,1,""],score:[219,3,1,""],set_flag:[219,3,1,""],state:[219,3,1,""],statehandler:[219,4,1,""],tag_all_characters:[219,3,1,""],tag_character:[219,3,1,""],typename:[219,4,1,""],unset_flag:[219,3,1,""]},"evennia.contrib.evscaperoom.state":{BaseState:[221,1,1,""],StateHandler:[221,1,1,""]},"evennia.contrib.evscaperoom.state.BaseState":{__init__:[221,3,1,""],character_enters:[221,3,1,""],character_leaves:[221,3,1,""],cinematic:[221,3,1,""],clean:[221,3,1,""],create_object:[221,3,1,""],get_hint:[221,3,1,""],get_object:[221,3,1,""],hints:[221,4,1,""],init:[221,3,1,""],msg:[221,3,1,""],next:[221,3,1,""],next_state:[221,4,1,""]},"evennia.contrib.evscaperoom.state.StateHandler":{__init__:[221,3,1,""],init_state:[221,3,1,""],load_state:[221,3,1,""],next_state:[221,3,1,""]},"evennia.contrib.evscaperoom.tests":{TestEvScapeRoom:[222,1,1,""],TestEvscaperoomCommands:[222,1,1,""],TestStates:[222,1,1,""],TestUtils:[222,1,1,""]},"evennia.contrib.evscaperoom.tests.TestEvScapeRoom":{setUp:[222,3,1,""],tearDown:[222,3,1,""],test_room_methods:[222,3,1,""]},"evennia.contrib.evscaperoom.tests.TestEvscaperoomCommands":{setUp:[222,3,1,""],test_base_parse:[222,3,1,""],test_base_search:[222,3,1,""],test_emote:[222,3,1,""],test_focus:[222,3,1,""],test_focus_interaction:[222,3,1,""],test_look:[222,3,1,""],test_set_focus:[222,3,1,""],test_speech:[222,3,1,""]},"evennia.contrib.evscaperoom.tests.TestStates":{setUp:[222,3,1,""],tearDown:[222,3,1,""],test_all_states:[222,3,1,""],test_base_state:[222,3,1,""]},"evennia.contrib.evscaperoom.tests.TestUtils":{test_overwrite:[222,3,1,""],test_parse_for_perspectives:[222,3,1,""],test_parse_for_things:[222,3,1,""]},"evennia.contrib.evscaperoom.utils":{add_msg_borders:[223,5,1,""],create_evscaperoom_object:[223,5,1,""],create_fantasy_word:[223,5,1,""],msg_cinematic:[223,5,1,""],parse_for_perspectives:[223,5,1,""],parse_for_things:[223,5,1,""]},"evennia.contrib.extended_room":{CmdExtendedRoomDesc:[224,1,1,""],CmdExtendedRoomDetail:[224,1,1,""],CmdExtendedRoomGameTime:[224,1,1,""],CmdExtendedRoomLook:[224,1,1,""],ExtendedRoom:[224,1,1,""],ExtendedRoomCmdSet:[224,1,1,""]},"evennia.contrib.extended_room.CmdExtendedRoomDesc":{aliases:[224,4,1,""],func:[224,3,1,""],help_category:[224,4,1,""],key:[224,4,1,""],lock_storage:[224,4,1,""],reset_times:[224,3,1,""],search_index_entry:[224,4,1,""],switch_options:[224,4,1,""]},"evennia.contrib.extended_room.CmdExtendedRoomDetail":{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.extended_room.CmdExtendedRoomGameTime":{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.extended_room.CmdExtendedRoomLook":{aliases:[224,4,1,""],func:[224,3,1,""],help_category:[224,4,1,""],key:[224,4,1,""],lock_storage:[224,4,1,""],search_index_entry:[224,4,1,""]},"evennia.contrib.extended_room.ExtendedRoom":{DoesNotExist:[224,2,1,""],MultipleObjectsReturned:[224,2,1,""],at_object_creation:[224,3,1,""],del_detail:[224,3,1,""],get_time_and_season:[224,3,1,""],path:[224,4,1,""],replace_timeslots:[224,3,1,""],return_appearance:[224,3,1,""],return_detail:[224,3,1,""],set_detail:[224,3,1,""],typename:[224,4,1,""],update_current_description:[224,3,1,""]},"evennia.contrib.extended_room.ExtendedRoomCmdSet":{at_cmdset_creation:[224,3,1,""],path:[224,4,1,""]},"evennia.contrib.fieldfill":{CmdTestMenu:[225,1,1,""],FieldEvMenu:[225,1,1,""],display_formdata:[225,5,1,""],form_template_to_dict:[225,5,1,""],init_delayed_message:[225,5,1,""],init_fill_field:[225,5,1,""],menunode_fieldfill:[225,5,1,""],sendmessage:[225,5,1,""],verify_online_player:[225,5,1,""]},"evennia.contrib.fieldfill.CmdTestMenu":{aliases:[225,4,1,""],func:[225,3,1,""],help_category:[225,4,1,""],key:[225,4,1,""],lock_storage:[225,4,1,""],search_index_entry:[225,4,1,""]},"evennia.contrib.fieldfill.FieldEvMenu":{node_formatter:[225,3,1,""]},"evennia.contrib.gendersub":{GenderCharacter:[226,1,1,""],SetGender:[226,1,1,""]},"evennia.contrib.gendersub.GenderCharacter":{DoesNotExist:[226,2,1,""],MultipleObjectsReturned:[226,2,1,""],at_object_creation:[226,3,1,""],msg:[226,3,1,""],path:[226,4,1,""],typename:[226,4,1,""]},"evennia.contrib.gendersub.SetGender":{aliases:[226,4,1,""],func:[226,3,1,""],help_category:[226,4,1,""],key:[226,4,1,""],lock_storage:[226,4,1,""],locks:[226,4,1,""],search_index_entry:[226,4,1,""]},"evennia.contrib.health_bar":{display_meter:[227,5,1,""]},"evennia.contrib.ingame_python":{callbackhandler:[229,0,0,"-"],commands:[230,0,0,"-"],eventfuncs:[231,0,0,"-"],scripts:[232,0,0,"-"],tests:[233,0,0,"-"],utils:[235,0,0,"-"]},"evennia.contrib.ingame_python.callbackhandler":{Callback:[229,1,1,""],CallbackHandler:[229,1,1,""]},"evennia.contrib.ingame_python.callbackhandler.Callback":{author:[229,4,1,""],code:[229,4,1,""],created_on:[229,4,1,""],name:[229,4,1,""],number:[229,4,1,""],obj:[229,4,1,""],parameters:[229,4,1,""],updated_by:[229,4,1,""],updated_on:[229,4,1,""],valid:[229,4,1,""]},"evennia.contrib.ingame_python.callbackhandler.CallbackHandler":{__init__:[229,3,1,""],add:[229,3,1,""],all:[229,3,1,""],call:[229,3,1,""],edit:[229,3,1,""],format_callback:[229,3,1,""],get:[229,3,1,""],get_variable:[229,3,1,""],remove:[229,3,1,""],script:[229,4,1,""]},"evennia.contrib.ingame_python.commands":{CmdCallback:[230,1,1,""]},"evennia.contrib.ingame_python.commands.CmdCallback":{accept_callback:[230,3,1,""],add_callback:[230,3,1,""],aliases:[230,4,1,""],del_callback:[230,3,1,""],edit_callback:[230,3,1,""],func:[230,3,1,""],get_help:[230,3,1,""],help_category:[230,4,1,""],key:[230,4,1,""],list_callbacks:[230,3,1,""],list_tasks:[230,3,1,""],lock_storage:[230,4,1,""],locks:[230,4,1,""],search_index_entry:[230,4,1,""]},"evennia.contrib.ingame_python.eventfuncs":{call_event:[231,5,1,""],deny:[231,5,1,""],get:[231,5,1,""]},"evennia.contrib.ingame_python.scripts":{EventHandler:[232,1,1,""],TimeEventScript:[232,1,1,""],complete_task:[232,5,1,""]},"evennia.contrib.ingame_python.scripts.EventHandler":{DoesNotExist:[232,2,1,""],MultipleObjectsReturned:[232,2,1,""],accept_callback:[232,3,1,""],add_callback:[232,3,1,""],add_event:[232,3,1,""],at_script_creation:[232,3,1,""],at_server_start:[232,3,1,""],call:[232,3,1,""],del_callback:[232,3,1,""],edit_callback:[232,3,1,""],get_callbacks:[232,3,1,""],get_events:[232,3,1,""],get_variable:[232,3,1,""],handle_error:[232,3,1,""],path:[232,4,1,""],set_task:[232,3,1,""],typename:[232,4,1,""]},"evennia.contrib.ingame_python.scripts.TimeEventScript":{DoesNotExist:[232,2,1,""],MultipleObjectsReturned:[232,2,1,""],at_repeat:[232,3,1,""],at_script_creation:[232,3,1,""],path:[232,4,1,""],typename:[232,4,1,""]},"evennia.contrib.ingame_python.tests":{TestCmdCallback:[233,1,1,""],TestDefaultCallbacks:[233,1,1,""],TestEventHandler:[233,1,1,""]},"evennia.contrib.ingame_python.tests.TestCmdCallback":{setUp:[233,3,1,""],tearDown:[233,3,1,""],test_accept:[233,3,1,""],test_add:[233,3,1,""],test_del:[233,3,1,""],test_list:[233,3,1,""],test_lock:[233,3,1,""]},"evennia.contrib.ingame_python.tests.TestDefaultCallbacks":{setUp:[233,3,1,""],tearDown:[233,3,1,""],test_exit:[233,3,1,""]},"evennia.contrib.ingame_python.tests.TestEventHandler":{setUp:[233,3,1,""],tearDown:[233,3,1,""],test_accept:[233,3,1,""],test_add_validation:[233,3,1,""],test_call:[233,3,1,""],test_del:[233,3,1,""],test_edit:[233,3,1,""],test_edit_validation:[233,3,1,""],test_handler:[233,3,1,""],test_start:[233,3,1,""]},"evennia.contrib.ingame_python.utils":{InterruptEvent:[235,2,1,""],get_event_handler:[235,5,1,""],get_next_wait:[235,5,1,""],keyword_event:[235,5,1,""],phrase_event:[235,5,1,""],register_events:[235,5,1,""],time_event:[235,5,1,""]},"evennia.contrib.mail":{CmdMail:[236,1,1,""],CmdMailCharacter:[236,1,1,""]},"evennia.contrib.mail.CmdMail":{aliases:[236,4,1,""],func:[236,3,1,""],get_all_mail:[236,3,1,""],help_category:[236,4,1,""],key:[236,4,1,""],lock:[236,4,1,""],lock_storage:[236,4,1,""],parse:[236,3,1,""],search_index_entry:[236,4,1,""],search_targets:[236,3,1,""],send_mail:[236,3,1,""]},"evennia.contrib.mail.CmdMailCharacter":{account_caller:[236,4,1,""],aliases:[236,4,1,""],help_category:[236,4,1,""],key:[236,4,1,""],lock_storage:[236,4,1,""],search_index_entry:[236,4,1,""]},"evennia.contrib.multidescer":{CmdMultiDesc:[239,1,1,""],DescValidateError:[239,2,1,""]},"evennia.contrib.multidescer.CmdMultiDesc":{aliases:[239,4,1,""],func:[239,3,1,""],help_category:[239,4,1,""],key:[239,4,1,""],lock_storage:[239,4,1,""],locks:[239,4,1,""],search_index_entry:[239,4,1,""]},"evennia.contrib.puzzles":{CmdArmPuzzle:[240,1,1,""],CmdCreatePuzzleRecipe:[240,1,1,""],CmdEditPuzzle:[240,1,1,""],CmdListArmedPuzzles:[240,1,1,""],CmdListPuzzleRecipes:[240,1,1,""],CmdUsePuzzleParts:[240,1,1,""],PuzzleRecipe:[240,1,1,""],PuzzleSystemCmdSet:[240,1,1,""],maskout_protodef:[240,5,1,""],proto_def:[240,5,1,""]},"evennia.contrib.puzzles.CmdArmPuzzle":{aliases:[240,4,1,""],func:[240,3,1,""],help_category:[240,4,1,""],key:[240,4,1,""],lock_storage:[240,4,1,""],locks:[240,4,1,""],search_index_entry:[240,4,1,""]},"evennia.contrib.puzzles.CmdCreatePuzzleRecipe":{aliases:[240,4,1,""],confirm:[240,4,1,""],default_confirm:[240,4,1,""],func:[240,3,1,""],help_category:[240,4,1,""],key:[240,4,1,""],lock_storage:[240,4,1,""],locks:[240,4,1,""],search_index_entry:[240,4,1,""]},"evennia.contrib.puzzles.CmdEditPuzzle":{aliases:[240,4,1,""],func:[240,3,1,""],help_category:[240,4,1,""],key:[240,4,1,""],lock_storage:[240,4,1,""],locks:[240,4,1,""],search_index_entry:[240,4,1,""]},"evennia.contrib.puzzles.CmdListArmedPuzzles":{aliases:[240,4,1,""],func:[240,3,1,""],help_category:[240,4,1,""],key:[240,4,1,""],lock_storage:[240,4,1,""],locks:[240,4,1,""],search_index_entry:[240,4,1,""]},"evennia.contrib.puzzles.CmdListPuzzleRecipes":{aliases:[240,4,1,""],func:[240,3,1,""],help_category:[240,4,1,""],key:[240,4,1,""],lock_storage:[240,4,1,""],locks:[240,4,1,""],search_index_entry:[240,4,1,""]},"evennia.contrib.puzzles.CmdUsePuzzleParts":{aliases:[240,4,1,""],func:[240,3,1,""],help_category:[240,4,1,""],key:[240,4,1,""],lock_storage:[240,4,1,""],locks:[240,4,1,""],search_index_entry:[240,4,1,""]},"evennia.contrib.puzzles.PuzzleRecipe":{DoesNotExist:[240,2,1,""],MultipleObjectsReturned:[240,2,1,""],path:[240,4,1,""],save_recipe:[240,3,1,""],typename:[240,4,1,""]},"evennia.contrib.puzzles.PuzzleSystemCmdSet":{at_cmdset_creation:[240,3,1,""],path:[240,4,1,""]},"evennia.contrib.random_string_generator":{ExhaustedGenerator:[241,2,1,""],RandomStringGenerator:[241,1,1,""],RandomStringGeneratorScript:[241,1,1,""],RejectedRegex:[241,2,1,""]},"evennia.contrib.random_string_generator.RandomStringGenerator":{__init__:[241,3,1,""],all:[241,3,1,""],clear:[241,3,1,""],get:[241,3,1,""],remove:[241,3,1,""],script:[241,4,1,""]},"evennia.contrib.random_string_generator.RandomStringGeneratorScript":{DoesNotExist:[241,2,1,""],MultipleObjectsReturned:[241,2,1,""],at_script_creation:[241,3,1,""],path:[241,4,1,""],typename:[241,4,1,""]},"evennia.contrib.rplanguage":{LanguageError:[242,2,1,""],LanguageExistsError:[242,2,1,""],LanguageHandler:[242,1,1,""],add_language:[242,5,1,""],available_languages:[242,5,1,""],obfuscate_language:[242,5,1,""],obfuscate_whisper:[242,5,1,""]},"evennia.contrib.rplanguage.LanguageHandler":{DoesNotExist:[242,2,1,""],MultipleObjectsReturned:[242,2,1,""],add:[242,3,1,""],at_script_creation:[242,3,1,""],path:[242,4,1,""],translate:[242,3,1,""],typename:[242,4,1,""]},"evennia.contrib.rpsystem":{CmdEmote:[243,1,1,""],CmdMask:[243,1,1,""],CmdPose:[243,1,1,""],CmdRecog:[243,1,1,""],CmdSay:[243,1,1,""],CmdSdesc:[243,1,1,""],ContribRPCharacter:[243,1,1,""],ContribRPObject:[243,1,1,""],ContribRPRoom:[243,1,1,""],EmoteError:[243,2,1,""],LanguageError:[243,2,1,""],RPCommand:[243,1,1,""],RPSystemCmdSet:[243,1,1,""],RecogError:[243,2,1,""],RecogHandler:[243,1,1,""],SdescError:[243,2,1,""],SdescHandler:[243,1,1,""],ordered_permutation_regex:[243,5,1,""],parse_language:[243,5,1,""],parse_sdescs_and_recogs:[243,5,1,""],regex_tuple_from_key_alias:[243,5,1,""],send_emote:[243,5,1,""]},"evennia.contrib.rpsystem.CmdEmote":{aliases:[243,4,1,""],arg_regex:[243,4,1,""],func:[243,3,1,""],help_category:[243,4,1,""],key:[243,4,1,""],lock_storage:[243,4,1,""],locks:[243,4,1,""],search_index_entry:[243,4,1,""]},"evennia.contrib.rpsystem.CmdMask":{aliases:[243,4,1,""],func:[243,3,1,""],help_category:[243,4,1,""],key:[243,4,1,""],lock_storage:[243,4,1,""],search_index_entry:[243,4,1,""]},"evennia.contrib.rpsystem.CmdPose":{aliases:[243,4,1,""],func:[243,3,1,""],help_category:[243,4,1,""],key:[243,4,1,""],lock_storage:[243,4,1,""],parse:[243,3,1,""],search_index_entry:[243,4,1,""]},"evennia.contrib.rpsystem.CmdRecog":{aliases:[243,4,1,""],func:[243,3,1,""],help_category:[243,4,1,""],key:[243,4,1,""],lock_storage:[243,4,1,""],parse:[243,3,1,""],search_index_entry:[243,4,1,""]},"evennia.contrib.rpsystem.CmdSay":{aliases:[243,4,1,""],arg_regex:[243,4,1,""],func:[243,3,1,""],help_category:[243,4,1,""],key:[243,4,1,""],lock_storage:[243,4,1,""],locks:[243,4,1,""],search_index_entry:[243,4,1,""]},"evennia.contrib.rpsystem.CmdSdesc":{aliases:[243,4,1,""],func:[243,3,1,""],help_category:[243,4,1,""],key:[243,4,1,""],lock_storage:[243,4,1,""],locks:[243,4,1,""],search_index_entry:[243,4,1,""]},"evennia.contrib.rpsystem.ContribRPCharacter":{DoesNotExist:[243,2,1,""],MultipleObjectsReturned:[243,2,1,""],at_object_creation:[243,3,1,""],at_pre_say:[243,3,1,""],get_display_name:[243,3,1,""],path:[243,4,1,""],process_language:[243,3,1,""],process_recog:[243,3,1,""],process_sdesc:[243,3,1,""],recog:[243,4,1,""],sdesc:[243,4,1,""],typename:[243,4,1,""]},"evennia.contrib.rpsystem.ContribRPObject":{DoesNotExist:[243,2,1,""],MultipleObjectsReturned:[243,2,1,""],at_object_creation:[243,3,1,""],get_display_name:[243,3,1,""],path:[243,4,1,""],return_appearance:[243,3,1,""],search:[243,3,1,""],typename:[243,4,1,""]},"evennia.contrib.rpsystem.ContribRPRoom":{DoesNotExist:[243,2,1,""],MultipleObjectsReturned:[243,2,1,""],path:[243,4,1,""],typename:[243,4,1,""]},"evennia.contrib.rpsystem.RPCommand":{aliases:[243,4,1,""],help_category:[243,4,1,""],key:[243,4,1,""],lock_storage:[243,4,1,""],parse:[243,3,1,""],search_index_entry:[243,4,1,""]},"evennia.contrib.rpsystem.RPSystemCmdSet":{at_cmdset_creation:[243,3,1,""],path:[243,4,1,""]},"evennia.contrib.rpsystem.RecogHandler":{__init__:[243,3,1,""],add:[243,3,1,""],all:[243,3,1,""],get:[243,3,1,""],get_regex_tuple:[243,3,1,""],remove:[243,3,1,""]},"evennia.contrib.rpsystem.SdescHandler":{__init__:[243,3,1,""],add:[243,3,1,""],get:[243,3,1,""],get_regex_tuple:[243,3,1,""]},"evennia.contrib.security":{auditing:[245,0,0,"-"]},"evennia.contrib.security.auditing":{outputs:[246,0,0,"-"],server:[247,0,0,"-"],tests:[248,0,0,"-"]},"evennia.contrib.security.auditing.outputs":{to_file:[246,5,1,""],to_syslog:[246,5,1,""]},"evennia.contrib.security.auditing.server":{AuditedServerSession:[247,1,1,""]},"evennia.contrib.security.auditing.server.AuditedServerSession":{audit:[247,3,1,""],data_in:[247,3,1,""],data_out:[247,3,1,""],mask:[247,3,1,""]},"evennia.contrib.security.auditing.tests":{AuditingTest:[248,1,1,""]},"evennia.contrib.security.auditing.tests.AuditingTest":{test_audit:[248,3,1,""],test_mask:[248,3,1,""]},"evennia.contrib.simpledoor":{CmdOpen:[249,1,1,""],CmdOpenCloseDoor:[249,1,1,""],SimpleDoor:[249,1,1,""]},"evennia.contrib.simpledoor.CmdOpen":{aliases:[249,4,1,""],create_exit:[249,3,1,""],help_category:[249,4,1,""],key:[249,4,1,""],lock_storage:[249,4,1,""],search_index_entry:[249,4,1,""]},"evennia.contrib.simpledoor.CmdOpenCloseDoor":{aliases:[249,4,1,""],func:[249,3,1,""],help_category:[249,4,1,""],key:[249,4,1,""],lock_storage:[249,4,1,""],locks:[249,4,1,""],search_index_entry:[249,4,1,""]},"evennia.contrib.simpledoor.SimpleDoor":{"delete":[249,3,1,""],DoesNotExist:[249,2,1,""],MultipleObjectsReturned:[249,2,1,""],at_failed_traverse:[249,3,1,""],at_object_creation:[249,3,1,""],path:[249,4,1,""],setdesc:[249,3,1,""],setlock:[249,3,1,""],typename:[249,4,1,""]},"evennia.contrib.slow_exit":{CmdSetSpeed:[250,1,1,""],CmdStop:[250,1,1,""],SlowExit:[250,1,1,""]},"evennia.contrib.slow_exit.CmdSetSpeed":{aliases:[250,4,1,""],func:[250,3,1,""],help_category:[250,4,1,""],key:[250,4,1,""],lock_storage:[250,4,1,""],search_index_entry:[250,4,1,""]},"evennia.contrib.slow_exit.CmdStop":{aliases:[250,4,1,""],func:[250,3,1,""],help_category:[250,4,1,""],key:[250,4,1,""],lock_storage:[250,4,1,""],search_index_entry:[250,4,1,""]},"evennia.contrib.slow_exit.SlowExit":{DoesNotExist:[250,2,1,""],MultipleObjectsReturned:[250,2,1,""],at_traverse:[250,3,1,""],path:[250,4,1,""],typename:[250,4,1,""]},"evennia.contrib.talking_npc":{CmdTalk:[251,1,1,""],END:[251,5,1,""],TalkingCmdSet:[251,1,1,""],TalkingNPC:[251,1,1,""],info1:[251,5,1,""],info2:[251,5,1,""],info3:[251,5,1,""],menu_start_node:[251,5,1,""]},"evennia.contrib.talking_npc.CmdTalk":{aliases:[251,4,1,""],func:[251,3,1,""],help_category:[251,4,1,""],key:[251,4,1,""],lock_storage:[251,4,1,""],locks:[251,4,1,""],search_index_entry:[251,4,1,""]},"evennia.contrib.talking_npc.TalkingCmdSet":{at_cmdset_creation:[251,3,1,""],key:[251,4,1,""],path:[251,4,1,""]},"evennia.contrib.talking_npc.TalkingNPC":{DoesNotExist:[251,2,1,""],MultipleObjectsReturned:[251,2,1,""],at_object_creation:[251,3,1,""],path:[251,4,1,""],typename:[251,4,1,""]},"evennia.contrib.test_traits":{DummyCharacter:[252,1,1,""],TestNumericTraitOperators:[252,1,1,""],TestTrait:[252,1,1,""],TestTraitCounter:[252,1,1,""],TestTraitCounterTimed:[252,1,1,""],TestTraitFields:[252,1,1,""],TestTraitGauge:[252,1,1,""],TestTraitGaugeTimed:[252,1,1,""],TestTraitStatic:[252,1,1,""],TraitHandlerTest:[252,1,1,""]},"evennia.contrib.test_traits.DummyCharacter":{health:[252,4,1,""],hunting:[252,4,1,""],strength:[252,4,1,""]},"evennia.contrib.test_traits.TestNumericTraitOperators":{setUp:[252,3,1,""],tearDown:[252,3,1,""],test_add_traits:[252,3,1,""],test_comparisons_numeric:[252,3,1,""],test_comparisons_traits:[252,3,1,""],test_floordiv:[252,3,1,""],test_mul_traits:[252,3,1,""],test_pos_shortcut:[252,3,1,""],test_sub_traits:[252,3,1,""]},"evennia.contrib.test_traits.TestTrait":{setUp:[252,3,1,""],test_init:[252,3,1,""],test_repr:[252,3,1,""],test_trait_getset:[252,3,1,""],test_validate_input__fail:[252,3,1,""],test_validate_input__valid:[252,3,1,""]},"evennia.contrib.test_traits.TestTraitCounter":{setUp:[252,3,1,""],test_boundaries__bigmod:[252,3,1,""],test_boundaries__change_boundaries:[252,3,1,""],test_boundaries__disable:[252,3,1,""],test_boundaries__inverse:[252,3,1,""],test_boundaries__minmax:[252,3,1,""],test_current:[252,3,1,""],test_delete:[252,3,1,""],test_descs:[252,3,1,""],test_init:[252,3,1,""],test_percentage:[252,3,1,""],test_value:[252,3,1,""]},"evennia.contrib.test_traits.TestTraitCounterTimed":{setUp:[252,3,1,""],test_timer_rate:[252,3,1,""],test_timer_ratetarget:[252,3,1,""]},"evennia.contrib.test_traits.TestTraitFields":{test_traitfields:[252,3,1,""]},"evennia.contrib.test_traits.TestTraitGauge":{setUp:[252,3,1,""],test_boundaries__bigmod:[252,3,1,""],test_boundaries__change_boundaries:[252,3,1,""],test_boundaries__disable:[252,3,1,""],test_boundaries__inverse:[252,3,1,""],test_boundaries__minmax:[252,3,1,""],test_current:[252,3,1,""],test_delete:[252,3,1,""],test_descs:[252,3,1,""],test_init:[252,3,1,""],test_percentage:[252,3,1,""],test_value:[252,3,1,""]},"evennia.contrib.test_traits.TestTraitGaugeTimed":{setUp:[252,3,1,""],test_timer_rate:[252,3,1,""],test_timer_ratetarget:[252,3,1,""]},"evennia.contrib.test_traits.TestTraitStatic":{setUp:[252,3,1,""],test_delete:[252,3,1,""],test_init:[252,3,1,""],test_value:[252,3,1,""]},"evennia.contrib.test_traits.TraitHandlerTest":{setUp:[252,3,1,""],test_add_trait:[252,3,1,""],test_all:[252,3,1,""],test_cache:[252,3,1,""],test_clear:[252,3,1,""],test_getting:[252,3,1,""],test_remove:[252,3,1,""],test_setting:[252,3,1,""],test_trait_db_connection:[252,3,1,""]},"evennia.contrib.traits":{CounterTrait:[253,1,1,""],GaugeTrait:[253,1,1,""],MandatoryTraitKey:[253,1,1,""],StaticTrait:[253,1,1,""],Trait:[253,1,1,""],TraitException:[253,2,1,""],TraitHandler:[253,1,1,""],TraitProperty:[253,1,1,""]},"evennia.contrib.traits.CounterTrait":{base:[253,3,1,""],current:[253,3,1,""],default_keys:[253,4,1,""],desc:[253,3,1,""],max:[253,3,1,""],min:[253,3,1,""],mod:[253,3,1,""],percent:[253,3,1,""],ratetarget:[253,3,1,""],reset:[253,3,1,""],trait_type:[253,4,1,""],validate_input:[253,3,1,""],value:[253,3,1,""]},"evennia.contrib.traits.GaugeTrait":{base:[253,3,1,""],current:[253,3,1,""],default_keys:[253,4,1,""],max:[253,3,1,""],min:[253,3,1,""],mod:[253,3,1,""],percent:[253,3,1,""],reset:[253,3,1,""],trait_type:[253,4,1,""],value:[253,3,1,""]},"evennia.contrib.traits.StaticTrait":{base:[253,3,1,""],default_keys:[253,4,1,""],mod:[253,3,1,""],trait_type:[253,4,1,""],value:[253,3,1,""]},"evennia.contrib.traits.Trait":{__init__:[253,3,1,""],allow_extra_properties:[253,4,1,""],default_keys:[253,4,1,""],key:[253,3,1,""],name:[253,3,1,""],trait_type:[253,4,1,""],validate_input:[253,3,1,""],value:[253,3,1,""]},"evennia.contrib.traits.TraitException":{__init__:[253,3,1,""]},"evennia.contrib.traits.TraitHandler":{__init__:[253,3,1,""],add:[253,3,1,""],all:[253,3,1,""],clear:[253,3,1,""],get:[253,3,1,""],remove:[253,3,1,""]},"evennia.contrib.traits.TraitProperty":{__init__:[253,3,1,""]},"evennia.contrib.tree_select":{CmdNameColor:[254,1,1,""],change_name_color:[254,5,1,""],dashcount:[254,5,1,""],go_up_one_category:[254,5,1,""],index_to_selection:[254,5,1,""],init_tree_selection:[254,5,1,""],is_category:[254,5,1,""],menunode_treeselect:[254,5,1,""],optlist_to_menuoptions:[254,5,1,""],parse_opts:[254,5,1,""]},"evennia.contrib.tree_select.CmdNameColor":{aliases:[254,4,1,""],func:[254,3,1,""],help_category:[254,4,1,""],key:[254,4,1,""],lock_storage:[254,4,1,""],search_index_entry:[254,4,1,""]},"evennia.contrib.turnbattle":{tb_basic:[256,0,0,"-"],tb_equip:[257,0,0,"-"],tb_items:[258,0,0,"-"],tb_magic:[259,0,0,"-"],tb_range:[260,0,0,"-"]},"evennia.contrib.turnbattle.tb_basic":{ACTIONS_PER_TURN:[256,6,1,""],BattleCmdSet:[256,1,1,""],CmdAttack:[256,1,1,""],CmdCombatHelp:[256,1,1,""],CmdDisengage:[256,1,1,""],CmdFight:[256,1,1,""],CmdPass:[256,1,1,""],CmdRest:[256,1,1,""],TBBasicCharacter:[256,1,1,""],TBBasicTurnHandler:[256,1,1,""],apply_damage:[256,5,1,""],at_defeat:[256,5,1,""],combat_cleanup:[256,5,1,""],get_attack:[256,5,1,""],get_damage:[256,5,1,""],get_defense:[256,5,1,""],is_in_combat:[256,5,1,""],is_turn:[256,5,1,""],resolve_attack:[256,5,1,""],roll_init:[256,5,1,""],spend_action:[256,5,1,""]},"evennia.contrib.turnbattle.tb_basic.BattleCmdSet":{at_cmdset_creation:[256,3,1,""],key:[256,4,1,""],path:[256,4,1,""]},"evennia.contrib.turnbattle.tb_basic.CmdAttack":{aliases:[256,4,1,""],func:[256,3,1,""],help_category:[256,4,1,""],key:[256,4,1,""],lock_storage:[256,4,1,""],search_index_entry:[256,4,1,""]},"evennia.contrib.turnbattle.tb_basic.CmdCombatHelp":{aliases:[256,4,1,""],func:[256,3,1,""],help_category:[256,4,1,""],key:[256,4,1,""],lock_storage:[256,4,1,""],search_index_entry:[256,4,1,""]},"evennia.contrib.turnbattle.tb_basic.CmdDisengage":{aliases:[256,4,1,""],func:[256,3,1,""],help_category:[256,4,1,""],key:[256,4,1,""],lock_storage:[256,4,1,""],search_index_entry:[256,4,1,""]},"evennia.contrib.turnbattle.tb_basic.CmdFight":{aliases:[256,4,1,""],func:[256,3,1,""],help_category:[256,4,1,""],key:[256,4,1,""],lock_storage:[256,4,1,""],search_index_entry:[256,4,1,""]},"evennia.contrib.turnbattle.tb_basic.CmdPass":{aliases:[256,4,1,""],func:[256,3,1,""],help_category:[256,4,1,""],key:[256,4,1,""],lock_storage:[256,4,1,""],search_index_entry:[256,4,1,""]},"evennia.contrib.turnbattle.tb_basic.CmdRest":{aliases:[256,4,1,""],func:[256,3,1,""],help_category:[256,4,1,""],key:[256,4,1,""],lock_storage:[256,4,1,""],search_index_entry:[256,4,1,""]},"evennia.contrib.turnbattle.tb_basic.TBBasicCharacter":{DoesNotExist:[256,2,1,""],MultipleObjectsReturned:[256,2,1,""],at_object_creation:[256,3,1,""],at_pre_move:[256,3,1,""],path:[256,4,1,""],typename:[256,4,1,""]},"evennia.contrib.turnbattle.tb_basic.TBBasicTurnHandler":{DoesNotExist:[256,2,1,""],MultipleObjectsReturned:[256,2,1,""],at_repeat:[256,3,1,""],at_script_creation:[256,3,1,""],at_stop:[256,3,1,""],initialize_for_combat:[256,3,1,""],join_fight:[256,3,1,""],next_turn:[256,3,1,""],path:[256,4,1,""],start_turn:[256,3,1,""],turn_end_check:[256,3,1,""],typename:[256,4,1,""]},"evennia.contrib.turnbattle.tb_equip":{ACTIONS_PER_TURN:[257,6,1,""],BattleCmdSet:[257,1,1,""],CmdAttack:[257,1,1,""],CmdCombatHelp:[257,1,1,""],CmdDisengage:[257,1,1,""],CmdDoff:[257,1,1,""],CmdDon:[257,1,1,""],CmdFight:[257,1,1,""],CmdPass:[257,1,1,""],CmdRest:[257,1,1,""],CmdUnwield:[257,1,1,""],CmdWield:[257,1,1,""],TBEArmor:[257,1,1,""],TBEWeapon:[257,1,1,""],TBEquipCharacter:[257,1,1,""],TBEquipTurnHandler:[257,1,1,""],apply_damage:[257,5,1,""],at_defeat:[257,5,1,""],combat_cleanup:[257,5,1,""],get_attack:[257,5,1,""],get_damage:[257,5,1,""],get_defense:[257,5,1,""],is_in_combat:[257,5,1,""],is_turn:[257,5,1,""],resolve_attack:[257,5,1,""],roll_init:[257,5,1,""],spend_action:[257,5,1,""]},"evennia.contrib.turnbattle.tb_equip.BattleCmdSet":{at_cmdset_creation:[257,3,1,""],key:[257,4,1,""],path:[257,4,1,""]},"evennia.contrib.turnbattle.tb_equip.CmdAttack":{aliases:[257,4,1,""],func:[257,3,1,""],help_category:[257,4,1,""],key:[257,4,1,""],lock_storage:[257,4,1,""],search_index_entry:[257,4,1,""]},"evennia.contrib.turnbattle.tb_equip.CmdCombatHelp":{aliases:[257,4,1,""],func:[257,3,1,""],help_category:[257,4,1,""],key:[257,4,1,""],lock_storage:[257,4,1,""],search_index_entry:[257,4,1,""]},"evennia.contrib.turnbattle.tb_equip.CmdDisengage":{aliases:[257,4,1,""],func:[257,3,1,""],help_category:[257,4,1,""],key:[257,4,1,""],lock_storage:[257,4,1,""],search_index_entry:[257,4,1,""]},"evennia.contrib.turnbattle.tb_equip.CmdDoff":{aliases:[257,4,1,""],func:[257,3,1,""],help_category:[257,4,1,""],key:[257,4,1,""],lock_storage:[257,4,1,""],search_index_entry:[257,4,1,""]},"evennia.contrib.turnbattle.tb_equip.CmdDon":{aliases:[257,4,1,""],func:[257,3,1,""],help_category:[257,4,1,""],key:[257,4,1,""],lock_storage:[257,4,1,""],search_index_entry:[257,4,1,""]},"evennia.contrib.turnbattle.tb_equip.CmdFight":{aliases:[257,4,1,""],func:[257,3,1,""],help_category:[257,4,1,""],key:[257,4,1,""],lock_storage:[257,4,1,""],search_index_entry:[257,4,1,""]},"evennia.contrib.turnbattle.tb_equip.CmdPass":{aliases:[257,4,1,""],func:[257,3,1,""],help_category:[257,4,1,""],key:[257,4,1,""],lock_storage:[257,4,1,""],search_index_entry:[257,4,1,""]},"evennia.contrib.turnbattle.tb_equip.CmdRest":{aliases:[257,4,1,""],func:[257,3,1,""],help_category:[257,4,1,""],key:[257,4,1,""],lock_storage:[257,4,1,""],search_index_entry:[257,4,1,""]},"evennia.contrib.turnbattle.tb_equip.CmdUnwield":{aliases:[257,4,1,""],func:[257,3,1,""],help_category:[257,4,1,""],key:[257,4,1,""],lock_storage:[257,4,1,""],search_index_entry:[257,4,1,""]},"evennia.contrib.turnbattle.tb_equip.CmdWield":{aliases:[257,4,1,""],func:[257,3,1,""],help_category:[257,4,1,""],key:[257,4,1,""],lock_storage:[257,4,1,""],search_index_entry:[257,4,1,""]},"evennia.contrib.turnbattle.tb_equip.TBEArmor":{DoesNotExist:[257,2,1,""],MultipleObjectsReturned:[257,2,1,""],at_drop:[257,3,1,""],at_give:[257,3,1,""],at_object_creation:[257,3,1,""],at_pre_drop:[257,3,1,""],at_pre_give:[257,3,1,""],path:[257,4,1,""],typename:[257,4,1,""]},"evennia.contrib.turnbattle.tb_equip.TBEWeapon":{DoesNotExist:[257,2,1,""],MultipleObjectsReturned:[257,2,1,""],at_drop:[257,3,1,""],at_give:[257,3,1,""],at_object_creation:[257,3,1,""],path:[257,4,1,""],typename:[257,4,1,""]},"evennia.contrib.turnbattle.tb_equip.TBEquipCharacter":{DoesNotExist:[257,2,1,""],MultipleObjectsReturned:[257,2,1,""],at_object_creation:[257,3,1,""],at_pre_move:[257,3,1,""],path:[257,4,1,""],typename:[257,4,1,""]},"evennia.contrib.turnbattle.tb_equip.TBEquipTurnHandler":{DoesNotExist:[257,2,1,""],MultipleObjectsReturned:[257,2,1,""],at_repeat:[257,3,1,""],at_script_creation:[257,3,1,""],at_stop:[257,3,1,""],initialize_for_combat:[257,3,1,""],join_fight:[257,3,1,""],next_turn:[257,3,1,""],path:[257,4,1,""],start_turn:[257,3,1,""],turn_end_check:[257,3,1,""],typename:[257,4,1,""]},"evennia.contrib.turnbattle.tb_items":{BattleCmdSet:[258,1,1,""],CmdAttack:[258,1,1,""],CmdCombatHelp:[258,1,1,""],CmdDisengage:[258,1,1,""],CmdFight:[258,1,1,""],CmdPass:[258,1,1,""],CmdRest:[258,1,1,""],CmdUse:[258,1,1,""],DEF_DOWN_MOD:[258,6,1,""],ITEMFUNCS:[258,6,1,""],TBItemsCharacter:[258,1,1,""],TBItemsCharacterTest:[258,1,1,""],TBItemsTurnHandler:[258,1,1,""],add_condition:[258,5,1,""],apply_damage:[258,5,1,""],at_defeat:[258,5,1,""],combat_cleanup:[258,5,1,""],condition_tickdown:[258,5,1,""],get_attack:[258,5,1,""],get_damage:[258,5,1,""],get_defense:[258,5,1,""],is_in_combat:[258,5,1,""],is_turn:[258,5,1,""],itemfunc_add_condition:[258,5,1,""],itemfunc_attack:[258,5,1,""],itemfunc_cure_condition:[258,5,1,""],itemfunc_heal:[258,5,1,""],resolve_attack:[258,5,1,""],roll_init:[258,5,1,""],spend_action:[258,5,1,""],spend_item_use:[258,5,1,""],use_item:[258,5,1,""]},"evennia.contrib.turnbattle.tb_items.BattleCmdSet":{at_cmdset_creation:[258,3,1,""],key:[258,4,1,""],path:[258,4,1,""]},"evennia.contrib.turnbattle.tb_items.CmdAttack":{aliases:[258,4,1,""],func:[258,3,1,""],help_category:[258,4,1,""],key:[258,4,1,""],lock_storage:[258,4,1,""],search_index_entry:[258,4,1,""]},"evennia.contrib.turnbattle.tb_items.CmdCombatHelp":{aliases:[258,4,1,""],func:[258,3,1,""],help_category:[258,4,1,""],key:[258,4,1,""],lock_storage:[258,4,1,""],search_index_entry:[258,4,1,""]},"evennia.contrib.turnbattle.tb_items.CmdDisengage":{aliases:[258,4,1,""],func:[258,3,1,""],help_category:[258,4,1,""],key:[258,4,1,""],lock_storage:[258,4,1,""],search_index_entry:[258,4,1,""]},"evennia.contrib.turnbattle.tb_items.CmdFight":{aliases:[258,4,1,""],func:[258,3,1,""],help_category:[258,4,1,""],key:[258,4,1,""],lock_storage:[258,4,1,""],search_index_entry:[258,4,1,""]},"evennia.contrib.turnbattle.tb_items.CmdPass":{aliases:[258,4,1,""],func:[258,3,1,""],help_category:[258,4,1,""],key:[258,4,1,""],lock_storage:[258,4,1,""],search_index_entry:[258,4,1,""]},"evennia.contrib.turnbattle.tb_items.CmdRest":{aliases:[258,4,1,""],func:[258,3,1,""],help_category:[258,4,1,""],key:[258,4,1,""],lock_storage:[258,4,1,""],search_index_entry:[258,4,1,""]},"evennia.contrib.turnbattle.tb_items.CmdUse":{aliases:[258,4,1,""],func:[258,3,1,""],help_category:[258,4,1,""],key:[258,4,1,""],lock_storage:[258,4,1,""],search_index_entry:[258,4,1,""]},"evennia.contrib.turnbattle.tb_items.TBItemsCharacter":{DoesNotExist:[258,2,1,""],MultipleObjectsReturned:[258,2,1,""],apply_turn_conditions:[258,3,1,""],at_object_creation:[258,3,1,""],at_pre_move:[258,3,1,""],at_turn_start:[258,3,1,""],at_update:[258,3,1,""],path:[258,4,1,""],typename:[258,4,1,""]},"evennia.contrib.turnbattle.tb_items.TBItemsCharacterTest":{DoesNotExist:[258,2,1,""],MultipleObjectsReturned:[258,2,1,""],at_object_creation:[258,3,1,""],path:[258,4,1,""],typename:[258,4,1,""]},"evennia.contrib.turnbattle.tb_items.TBItemsTurnHandler":{DoesNotExist:[258,2,1,""],MultipleObjectsReturned:[258,2,1,""],at_repeat:[258,3,1,""],at_script_creation:[258,3,1,""],at_stop:[258,3,1,""],initialize_for_combat:[258,3,1,""],join_fight:[258,3,1,""],next_turn:[258,3,1,""],path:[258,4,1,""],start_turn:[258,3,1,""],turn_end_check:[258,3,1,""],typename:[258,4,1,""]},"evennia.contrib.turnbattle.tb_magic":{ACTIONS_PER_TURN:[259,6,1,""],BattleCmdSet:[259,1,1,""],CmdAttack:[259,1,1,""],CmdCast:[259,1,1,""],CmdCombatHelp:[259,1,1,""],CmdDisengage:[259,1,1,""],CmdFight:[259,1,1,""],CmdLearnSpell:[259,1,1,""],CmdPass:[259,1,1,""],CmdRest:[259,1,1,""],CmdStatus:[259,1,1,""],TBMagicCharacter:[259,1,1,""],TBMagicTurnHandler:[259,1,1,""],apply_damage:[259,5,1,""],at_defeat:[259,5,1,""],combat_cleanup:[259,5,1,""],get_attack:[259,5,1,""],get_damage:[259,5,1,""],get_defense:[259,5,1,""],is_in_combat:[259,5,1,""],is_turn:[259,5,1,""],resolve_attack:[259,5,1,""],roll_init:[259,5,1,""],spell_attack:[259,5,1,""],spell_conjure:[259,5,1,""],spell_healing:[259,5,1,""],spend_action:[259,5,1,""]},"evennia.contrib.turnbattle.tb_magic.BattleCmdSet":{at_cmdset_creation:[259,3,1,""],key:[259,4,1,""],path:[259,4,1,""]},"evennia.contrib.turnbattle.tb_magic.CmdAttack":{aliases:[259,4,1,""],func:[259,3,1,""],help_category:[259,4,1,""],key:[259,4,1,""],lock_storage:[259,4,1,""],search_index_entry:[259,4,1,""]},"evennia.contrib.turnbattle.tb_magic.CmdCast":{aliases:[259,4,1,""],func:[259,3,1,""],help_category:[259,4,1,""],key:[259,4,1,""],lock_storage:[259,4,1,""],search_index_entry:[259,4,1,""]},"evennia.contrib.turnbattle.tb_magic.CmdCombatHelp":{aliases:[259,4,1,""],func:[259,3,1,""],help_category:[259,4,1,""],key:[259,4,1,""],lock_storage:[259,4,1,""],search_index_entry:[259,4,1,""]},"evennia.contrib.turnbattle.tb_magic.CmdDisengage":{aliases:[259,4,1,""],func:[259,3,1,""],help_category:[259,4,1,""],key:[259,4,1,""],lock_storage:[259,4,1,""],search_index_entry:[259,4,1,""]},"evennia.contrib.turnbattle.tb_magic.CmdFight":{aliases:[259,4,1,""],func:[259,3,1,""],help_category:[259,4,1,""],key:[259,4,1,""],lock_storage:[259,4,1,""],search_index_entry:[259,4,1,""]},"evennia.contrib.turnbattle.tb_magic.CmdLearnSpell":{aliases:[259,4,1,""],func:[259,3,1,""],help_category:[259,4,1,""],key:[259,4,1,""],lock_storage:[259,4,1,""],search_index_entry:[259,4,1,""]},"evennia.contrib.turnbattle.tb_magic.CmdPass":{aliases:[259,4,1,""],func:[259,3,1,""],help_category:[259,4,1,""],key:[259,4,1,""],lock_storage:[259,4,1,""],search_index_entry:[259,4,1,""]},"evennia.contrib.turnbattle.tb_magic.CmdRest":{aliases:[259,4,1,""],func:[259,3,1,""],help_category:[259,4,1,""],key:[259,4,1,""],lock_storage:[259,4,1,""],search_index_entry:[259,4,1,""]},"evennia.contrib.turnbattle.tb_magic.CmdStatus":{aliases:[259,4,1,""],func:[259,3,1,""],help_category:[259,4,1,""],key:[259,4,1,""],lock_storage:[259,4,1,""],search_index_entry:[259,4,1,""]},"evennia.contrib.turnbattle.tb_magic.TBMagicCharacter":{DoesNotExist:[259,2,1,""],MultipleObjectsReturned:[259,2,1,""],at_object_creation:[259,3,1,""],at_pre_move:[259,3,1,""],path:[259,4,1,""],typename:[259,4,1,""]},"evennia.contrib.turnbattle.tb_magic.TBMagicTurnHandler":{DoesNotExist:[259,2,1,""],MultipleObjectsReturned:[259,2,1,""],at_repeat:[259,3,1,""],at_script_creation:[259,3,1,""],at_stop:[259,3,1,""],initialize_for_combat:[259,3,1,""],join_fight:[259,3,1,""],next_turn:[259,3,1,""],path:[259,4,1,""],start_turn:[259,3,1,""],turn_end_check:[259,3,1,""],typename:[259,4,1,""]},"evennia.contrib.turnbattle.tb_range":{ACTIONS_PER_TURN:[260,6,1,""],BattleCmdSet:[260,1,1,""],CmdApproach:[260,1,1,""],CmdAttack:[260,1,1,""],CmdCombatHelp:[260,1,1,""],CmdDisengage:[260,1,1,""],CmdFight:[260,1,1,""],CmdPass:[260,1,1,""],CmdRest:[260,1,1,""],CmdShoot:[260,1,1,""],CmdStatus:[260,1,1,""],CmdWithdraw:[260,1,1,""],TBRangeCharacter:[260,1,1,""],TBRangeObject:[260,1,1,""],TBRangeTurnHandler:[260,1,1,""],apply_damage:[260,5,1,""],approach:[260,5,1,""],at_defeat:[260,5,1,""],combat_cleanup:[260,5,1,""],combat_status_message:[260,5,1,""],distance_inc:[260,5,1,""],get_attack:[260,5,1,""],get_damage:[260,5,1,""],get_defense:[260,5,1,""],get_range:[260,5,1,""],is_in_combat:[260,5,1,""],is_turn:[260,5,1,""],resolve_attack:[260,5,1,""],roll_init:[260,5,1,""],spend_action:[260,5,1,""],withdraw:[260,5,1,""]},"evennia.contrib.turnbattle.tb_range.BattleCmdSet":{at_cmdset_creation:[260,3,1,""],key:[260,4,1,""],path:[260,4,1,""]},"evennia.contrib.turnbattle.tb_range.CmdApproach":{aliases:[260,4,1,""],func:[260,3,1,""],help_category:[260,4,1,""],key:[260,4,1,""],lock_storage:[260,4,1,""],search_index_entry:[260,4,1,""]},"evennia.contrib.turnbattle.tb_range.CmdAttack":{aliases:[260,4,1,""],func:[260,3,1,""],help_category:[260,4,1,""],key:[260,4,1,""],lock_storage:[260,4,1,""],search_index_entry:[260,4,1,""]},"evennia.contrib.turnbattle.tb_range.CmdCombatHelp":{aliases:[260,4,1,""],func:[260,3,1,""],help_category:[260,4,1,""],key:[260,4,1,""],lock_storage:[260,4,1,""],search_index_entry:[260,4,1,""]},"evennia.contrib.turnbattle.tb_range.CmdDisengage":{aliases:[260,4,1,""],func:[260,3,1,""],help_category:[260,4,1,""],key:[260,4,1,""],lock_storage:[260,4,1,""],search_index_entry:[260,4,1,""]},"evennia.contrib.turnbattle.tb_range.CmdFight":{aliases:[260,4,1,""],func:[260,3,1,""],help_category:[260,4,1,""],key:[260,4,1,""],lock_storage:[260,4,1,""],search_index_entry:[260,4,1,""]},"evennia.contrib.turnbattle.tb_range.CmdPass":{aliases:[260,4,1,""],func:[260,3,1,""],help_category:[260,4,1,""],key:[260,4,1,""],lock_storage:[260,4,1,""],search_index_entry:[260,4,1,""]},"evennia.contrib.turnbattle.tb_range.CmdRest":{aliases:[260,4,1,""],func:[260,3,1,""],help_category:[260,4,1,""],key:[260,4,1,""],lock_storage:[260,4,1,""],search_index_entry:[260,4,1,""]},"evennia.contrib.turnbattle.tb_range.CmdShoot":{aliases:[260,4,1,""],func:[260,3,1,""],help_category:[260,4,1,""],key:[260,4,1,""],lock_storage:[260,4,1,""],search_index_entry:[260,4,1,""]},"evennia.contrib.turnbattle.tb_range.CmdStatus":{aliases:[260,4,1,""],func:[260,3,1,""],help_category:[260,4,1,""],key:[260,4,1,""],lock_storage:[260,4,1,""],search_index_entry:[260,4,1,""]},"evennia.contrib.turnbattle.tb_range.CmdWithdraw":{aliases:[260,4,1,""],func:[260,3,1,""],help_category:[260,4,1,""],key:[260,4,1,""],lock_storage:[260,4,1,""],search_index_entry:[260,4,1,""]},"evennia.contrib.turnbattle.tb_range.TBRangeCharacter":{DoesNotExist:[260,2,1,""],MultipleObjectsReturned:[260,2,1,""],at_object_creation:[260,3,1,""],at_pre_move:[260,3,1,""],path:[260,4,1,""],typename:[260,4,1,""]},"evennia.contrib.turnbattle.tb_range.TBRangeObject":{DoesNotExist:[260,2,1,""],MultipleObjectsReturned:[260,2,1,""],at_drop:[260,3,1,""],at_get:[260,3,1,""],at_give:[260,3,1,""],at_pre_drop:[260,3,1,""],at_pre_get:[260,3,1,""],at_pre_give:[260,3,1,""],path:[260,4,1,""],typename:[260,4,1,""]},"evennia.contrib.turnbattle.tb_range.TBRangeTurnHandler":{DoesNotExist:[260,2,1,""],MultipleObjectsReturned:[260,2,1,""],at_repeat:[260,3,1,""],at_script_creation:[260,3,1,""],at_stop:[260,3,1,""],init_range:[260,3,1,""],initialize_for_combat:[260,3,1,""],join_fight:[260,3,1,""],join_rangefield:[260,3,1,""],next_turn:[260,3,1,""],path:[260,4,1,""],start_turn:[260,3,1,""],turn_end_check:[260,3,1,""],typename:[260,4,1,""]},"evennia.contrib.tutorial_examples":{bodyfunctions:[262,0,0,"-"],mirror:[264,0,0,"-"],red_button:[265,0,0,"-"],tests:[266,0,0,"-"]},"evennia.contrib.tutorial_examples.bodyfunctions":{BodyFunctions:[262,1,1,""]},"evennia.contrib.tutorial_examples.bodyfunctions.BodyFunctions":{DoesNotExist:[262,2,1,""],MultipleObjectsReturned:[262,2,1,""],at_repeat:[262,3,1,""],at_script_creation:[262,3,1,""],path:[262,4,1,""],send_random_message:[262,3,1,""],typename:[262,4,1,""]},"evennia.contrib.tutorial_examples.mirror":{TutorialMirror:[264,1,1,""]},"evennia.contrib.tutorial_examples.mirror.TutorialMirror":{DoesNotExist:[264,2,1,""],MultipleObjectsReturned:[264,2,1,""],msg:[264,3,1,""],path:[264,4,1,""],return_appearance:[264,3,1,""],typename:[264,4,1,""]},"evennia.contrib.tutorial_examples.red_button":{BlindCmdSet:[265,1,1,""],CmdBlindHelp:[265,1,1,""],CmdBlindLook:[265,1,1,""],CmdCloseLid:[265,1,1,""],CmdNudge:[265,1,1,""],CmdOpenLid:[265,1,1,""],CmdPushLidClosed:[265,1,1,""],CmdPushLidOpen:[265,1,1,""],CmdSmashGlass:[265,1,1,""],LidClosedCmdSet:[265,1,1,""],LidOpenCmdSet:[265,1,1,""],RedButton:[265,1,1,""]},"evennia.contrib.tutorial_examples.red_button.BlindCmdSet":{at_cmdset_creation:[265,3,1,""],key:[265,4,1,""],mergetype:[265,4,1,""],no_exits:[265,4,1,""],no_objs:[265,4,1,""],path:[265,4,1,""]},"evennia.contrib.tutorial_examples.red_button.CmdBlindHelp":{aliases:[265,4,1,""],func:[265,3,1,""],help_category:[265,4,1,""],key:[265,4,1,""],lock_storage:[265,4,1,""],locks:[265,4,1,""],search_index_entry:[265,4,1,""]},"evennia.contrib.tutorial_examples.red_button.CmdBlindLook":{aliases:[265,4,1,""],func:[265,3,1,""],help_category:[265,4,1,""],key:[265,4,1,""],lock_storage:[265,4,1,""],locks:[265,4,1,""],search_index_entry:[265,4,1,""]},"evennia.contrib.tutorial_examples.red_button.CmdCloseLid":{aliases:[265,4,1,""],func:[265,3,1,""],help_category:[265,4,1,""],key:[265,4,1,""],lock_storage:[265,4,1,""],locks:[265,4,1,""],search_index_entry:[265,4,1,""]},"evennia.contrib.tutorial_examples.red_button.CmdNudge":{aliases:[265,4,1,""],func:[265,3,1,""],help_category:[265,4,1,""],key:[265,4,1,""],lock_storage:[265,4,1,""],locks:[265,4,1,""],search_index_entry:[265,4,1,""]},"evennia.contrib.tutorial_examples.red_button.CmdOpenLid":{aliases:[265,4,1,""],func:[265,3,1,""],help_category:[265,4,1,""],key:[265,4,1,""],lock_storage:[265,4,1,""],locks:[265,4,1,""],search_index_entry:[265,4,1,""]},"evennia.contrib.tutorial_examples.red_button.CmdPushLidClosed":{aliases:[265,4,1,""],func:[265,3,1,""],help_category:[265,4,1,""],key:[265,4,1,""],lock_storage:[265,4,1,""],locks:[265,4,1,""],search_index_entry:[265,4,1,""]},"evennia.contrib.tutorial_examples.red_button.CmdPushLidOpen":{aliases:[265,4,1,""],func:[265,3,1,""],help_category:[265,4,1,""],key:[265,4,1,""],lock_storage:[265,4,1,""],locks:[265,4,1,""],search_index_entry:[265,4,1,""]},"evennia.contrib.tutorial_examples.red_button.CmdSmashGlass":{aliases:[265,4,1,""],func:[265,3,1,""],help_category:[265,4,1,""],key:[265,4,1,""],lock_storage:[265,4,1,""],locks:[265,4,1,""],search_index_entry:[265,4,1,""]},"evennia.contrib.tutorial_examples.red_button.LidClosedCmdSet":{at_cmdset_creation:[265,3,1,""],key:[265,4,1,""],path:[265,4,1,""]},"evennia.contrib.tutorial_examples.red_button.LidOpenCmdSet":{at_cmdset_creation:[265,3,1,""],key:[265,4,1,""],path:[265,4,1,""]},"evennia.contrib.tutorial_examples.red_button.RedButton":{DoesNotExist:[265,2,1,""],MultipleObjectsReturned:[265,2,1,""],at_object_creation:[265,3,1,""],auto_close_msg:[265,4,1,""],blind_target:[265,3,1,""],blink_msgs:[265,4,1,""],break_lamp:[265,3,1,""],desc_add_lamp_broken:[265,4,1,""],desc_closed_lid:[265,4,1,""],desc_open_lid:[265,4,1,""],lamp_breaks_msg:[265,4,1,""],path:[265,4,1,""],to_closed_state:[265,3,1,""],to_open_state:[265,3,1,""],typename:[265,4,1,""]},"evennia.contrib.tutorial_examples.tests":{TestBodyFunctions:[266,1,1,""]},"evennia.contrib.tutorial_examples.tests.TestBodyFunctions":{script_typeclass:[266,4,1,""],setUp:[266,3,1,""],tearDown:[266,3,1,""],test_at_repeat:[266,3,1,""],test_send_random_message:[266,3,1,""]},"evennia.contrib.tutorial_world":{intro_menu:[268,0,0,"-"],mob:[269,0,0,"-"],objects:[270,0,0,"-"],rooms:[271,0,0,"-"]},"evennia.contrib.tutorial_world.intro_menu":{DemoCommandSetComms:[268,1,1,""],DemoCommandSetHelp:[268,1,1,""],DemoCommandSetRoom:[268,1,1,""],TutorialEvMenu:[268,1,1,""],do_nothing:[268,5,1,""],goto_cleanup_cmdsets:[268,5,1,""],goto_command_demo_comms:[268,5,1,""],goto_command_demo_help:[268,5,1,""],goto_command_demo_room:[268,5,1,""],init_menu:[268,5,1,""],send_testing_tagged:[268,5,1,""]},"evennia.contrib.tutorial_world.intro_menu.DemoCommandSetComms":{at_cmdset_creation:[268,3,1,""],key:[268,4,1,""],no_exits:[268,4,1,""],no_objs:[268,4,1,""],path:[268,4,1,""],priority:[268,4,1,""]},"evennia.contrib.tutorial_world.intro_menu.DemoCommandSetHelp":{at_cmdset_creation:[268,3,1,""],key:[268,4,1,""],path:[268,4,1,""],priority:[268,4,1,""]},"evennia.contrib.tutorial_world.intro_menu.DemoCommandSetRoom":{at_cmdset_creation:[268,3,1,""],key:[268,4,1,""],no_exits:[268,4,1,""],no_objs:[268,4,1,""],path:[268,4,1,""],priority:[268,4,1,""]},"evennia.contrib.tutorial_world.intro_menu.TutorialEvMenu":{close_menu:[268,3,1,""],options_formatter:[268,3,1,""]},"evennia.contrib.tutorial_world.mob":{CmdMobOnOff:[269,1,1,""],Mob:[269,1,1,""],MobCmdSet:[269,1,1,""]},"evennia.contrib.tutorial_world.mob.CmdMobOnOff":{aliases:[269,4,1,""],func:[269,3,1,""],help_category:[269,4,1,""],key:[269,4,1,""],lock_storage:[269,4,1,""],locks:[269,4,1,""],search_index_entry:[269,4,1,""]},"evennia.contrib.tutorial_world.mob.Mob":{DoesNotExist:[269,2,1,""],MultipleObjectsReturned:[269,2,1,""],at_hit:[269,3,1,""],at_init:[269,3,1,""],at_new_arrival:[269,3,1,""],at_object_creation:[269,3,1,""],do_attack:[269,3,1,""],do_hunting:[269,3,1,""],do_patrol:[269,3,1,""],path:[269,4,1,""],set_alive:[269,3,1,""],set_dead:[269,3,1,""],start_attacking:[269,3,1,""],start_hunting:[269,3,1,""],start_idle:[269,3,1,""],start_patrolling:[269,3,1,""],typename:[269,4,1,""]},"evennia.contrib.tutorial_world.mob.MobCmdSet":{at_cmdset_creation:[269,3,1,""],path:[269,4,1,""]},"evennia.contrib.tutorial_world.objects":{CmdAttack:[270,1,1,""],CmdClimb:[270,1,1,""],CmdGetWeapon:[270,1,1,""],CmdLight:[270,1,1,""],CmdPressButton:[270,1,1,""],CmdRead:[270,1,1,""],CmdSetClimbable:[270,1,1,""],CmdSetCrumblingWall:[270,1,1,""],CmdSetLight:[270,1,1,""],CmdSetReadable:[270,1,1,""],CmdSetWeapon:[270,1,1,""],CmdSetWeaponRack:[270,1,1,""],CmdShiftRoot:[270,1,1,""],CrumblingWall:[270,1,1,""],LightSource:[270,1,1,""],Obelisk:[270,1,1,""],TutorialClimbable:[270,1,1,""],TutorialObject:[270,1,1,""],TutorialReadable:[270,1,1,""],TutorialWeapon:[270,1,1,""],TutorialWeaponRack:[270,1,1,""]},"evennia.contrib.tutorial_world.objects.CmdAttack":{aliases:[270,4,1,""],func:[270,3,1,""],help_category:[270,4,1,""],key:[270,4,1,""],lock_storage:[270,4,1,""],locks:[270,4,1,""],search_index_entry:[270,4,1,""]},"evennia.contrib.tutorial_world.objects.CmdClimb":{aliases:[270,4,1,""],func:[270,3,1,""],help_category:[270,4,1,""],key:[270,4,1,""],lock_storage:[270,4,1,""],locks:[270,4,1,""],search_index_entry:[270,4,1,""]},"evennia.contrib.tutorial_world.objects.CmdGetWeapon":{aliases:[270,4,1,""],func:[270,3,1,""],help_category:[270,4,1,""],key:[270,4,1,""],lock_storage:[270,4,1,""],locks:[270,4,1,""],search_index_entry:[270,4,1,""]},"evennia.contrib.tutorial_world.objects.CmdLight":{aliases:[270,4,1,""],func:[270,3,1,""],help_category:[270,4,1,""],key:[270,4,1,""],lock_storage:[270,4,1,""],locks:[270,4,1,""],search_index_entry:[270,4,1,""]},"evennia.contrib.tutorial_world.objects.CmdPressButton":{aliases:[270,4,1,""],func:[270,3,1,""],help_category:[270,4,1,""],key:[270,4,1,""],lock_storage:[270,4,1,""],locks:[270,4,1,""],search_index_entry:[270,4,1,""]},"evennia.contrib.tutorial_world.objects.CmdRead":{aliases:[270,4,1,""],func:[270,3,1,""],help_category:[270,4,1,""],key:[270,4,1,""],lock_storage:[270,4,1,""],locks:[270,4,1,""],search_index_entry:[270,4,1,""]},"evennia.contrib.tutorial_world.objects.CmdSetClimbable":{at_cmdset_creation:[270,3,1,""],path:[270,4,1,""]},"evennia.contrib.tutorial_world.objects.CmdSetCrumblingWall":{at_cmdset_creation:[270,3,1,""],key:[270,4,1,""],path:[270,4,1,""],priority:[270,4,1,""]},"evennia.contrib.tutorial_world.objects.CmdSetLight":{at_cmdset_creation:[270,3,1,""],key:[270,4,1,""],path:[270,4,1,""],priority:[270,4,1,""]},"evennia.contrib.tutorial_world.objects.CmdSetReadable":{at_cmdset_creation:[270,3,1,""],path:[270,4,1,""]},"evennia.contrib.tutorial_world.objects.CmdSetWeapon":{at_cmdset_creation:[270,3,1,""],path:[270,4,1,""]},"evennia.contrib.tutorial_world.objects.CmdSetWeaponRack":{at_cmdset_creation:[270,3,1,""],key:[270,4,1,""],path:[270,4,1,""]},"evennia.contrib.tutorial_world.objects.CmdShiftRoot":{aliases:[270,4,1,""],func:[270,3,1,""],help_category:[270,4,1,""],key:[270,4,1,""],lock_storage:[270,4,1,""],locks:[270,4,1,""],parse:[270,3,1,""],search_index_entry:[270,4,1,""]},"evennia.contrib.tutorial_world.objects.CrumblingWall":{DoesNotExist:[270,2,1,""],MultipleObjectsReturned:[270,2,1,""],at_failed_traverse:[270,3,1,""],at_init:[270,3,1,""],at_object_creation:[270,3,1,""],at_post_traverse:[270,3,1,""],open_wall:[270,3,1,""],path:[270,4,1,""],reset:[270,3,1,""],return_appearance:[270,3,1,""],typename:[270,4,1,""]},"evennia.contrib.tutorial_world.objects.LightSource":{DoesNotExist:[270,2,1,""],MultipleObjectsReturned:[270,2,1,""],at_init:[270,3,1,""],at_object_creation:[270,3,1,""],light:[270,3,1,""],path:[270,4,1,""],typename:[270,4,1,""]},"evennia.contrib.tutorial_world.objects.Obelisk":{DoesNotExist:[270,2,1,""],MultipleObjectsReturned:[270,2,1,""],at_object_creation:[270,3,1,""],path:[270,4,1,""],return_appearance:[270,3,1,""],typename:[270,4,1,""]},"evennia.contrib.tutorial_world.objects.TutorialClimbable":{DoesNotExist:[270,2,1,""],MultipleObjectsReturned:[270,2,1,""],at_object_creation:[270,3,1,""],path:[270,4,1,""],typename:[270,4,1,""]},"evennia.contrib.tutorial_world.objects.TutorialObject":{DoesNotExist:[270,2,1,""],MultipleObjectsReturned:[270,2,1,""],at_object_creation:[270,3,1,""],path:[270,4,1,""],reset:[270,3,1,""],typename:[270,4,1,""]},"evennia.contrib.tutorial_world.objects.TutorialReadable":{DoesNotExist:[270,2,1,""],MultipleObjectsReturned:[270,2,1,""],at_object_creation:[270,3,1,""],path:[270,4,1,""],typename:[270,4,1,""]},"evennia.contrib.tutorial_world.objects.TutorialWeapon":{DoesNotExist:[270,2,1,""],MultipleObjectsReturned:[270,2,1,""],at_object_creation:[270,3,1,""],path:[270,4,1,""],reset:[270,3,1,""],typename:[270,4,1,""]},"evennia.contrib.tutorial_world.objects.TutorialWeaponRack":{DoesNotExist:[270,2,1,""],MultipleObjectsReturned:[270,2,1,""],at_object_creation:[270,3,1,""],path:[270,4,1,""],produce_weapon:[270,3,1,""],typename:[270,4,1,""]},"evennia.contrib.tutorial_world.rooms":{BridgeCmdSet:[271,1,1,""],BridgeRoom:[271,1,1,""],CmdBridgeHelp:[271,1,1,""],CmdDarkHelp:[271,1,1,""],CmdDarkNoMatch:[271,1,1,""],CmdEast:[271,1,1,""],CmdEvenniaIntro:[271,1,1,""],CmdLookBridge:[271,1,1,""],CmdLookDark:[271,1,1,""],CmdSetEvenniaIntro:[271,1,1,""],CmdTutorial:[271,1,1,""],CmdTutorialGiveUp:[271,1,1,""],CmdTutorialLook:[271,1,1,""],CmdTutorialSetDetail:[271,1,1,""],CmdWest:[271,1,1,""],DarkCmdSet:[271,1,1,""],DarkRoom:[271,1,1,""],IntroRoom:[271,1,1,""],OutroRoom:[271,1,1,""],TeleportRoom:[271,1,1,""],TutorialRoom:[271,1,1,""],TutorialRoomCmdSet:[271,1,1,""],WeatherRoom:[271,1,1,""]},"evennia.contrib.tutorial_world.rooms.BridgeCmdSet":{at_cmdset_creation:[271,3,1,""],key:[271,4,1,""],path:[271,4,1,""],priority:[271,4,1,""]},"evennia.contrib.tutorial_world.rooms.BridgeRoom":{DoesNotExist:[271,2,1,""],MultipleObjectsReturned:[271,2,1,""],at_object_creation:[271,3,1,""],at_object_leave:[271,3,1,""],at_object_receive:[271,3,1,""],path:[271,4,1,""],typename:[271,4,1,""],update_weather:[271,3,1,""]},"evennia.contrib.tutorial_world.rooms.CmdBridgeHelp":{aliases:[271,4,1,""],func:[271,3,1,""],help_category:[271,4,1,""],key:[271,4,1,""],lock_storage:[271,4,1,""],locks:[271,4,1,""],search_index_entry:[271,4,1,""]},"evennia.contrib.tutorial_world.rooms.CmdDarkHelp":{aliases:[271,4,1,""],func:[271,3,1,""],help_category:[271,4,1,""],key:[271,4,1,""],lock_storage:[271,4,1,""],locks:[271,4,1,""],search_index_entry:[271,4,1,""]},"evennia.contrib.tutorial_world.rooms.CmdDarkNoMatch":{aliases:[271,4,1,""],func:[271,3,1,""],help_category:[271,4,1,""],key:[271,4,1,""],lock_storage:[271,4,1,""],locks:[271,4,1,""],search_index_entry:[271,4,1,""]},"evennia.contrib.tutorial_world.rooms.CmdEast":{aliases:[271,4,1,""],func:[271,3,1,""],help_category:[271,4,1,""],key:[271,4,1,""],lock_storage:[271,4,1,""],locks:[271,4,1,""],search_index_entry:[271,4,1,""]},"evennia.contrib.tutorial_world.rooms.CmdEvenniaIntro":{aliases:[271,4,1,""],func:[271,3,1,""],help_category:[271,4,1,""],key:[271,4,1,""],lock_storage:[271,4,1,""],search_index_entry:[271,4,1,""]},"evennia.contrib.tutorial_world.rooms.CmdLookBridge":{aliases:[271,4,1,""],func:[271,3,1,""],help_category:[271,4,1,""],key:[271,4,1,""],lock_storage:[271,4,1,""],locks:[271,4,1,""],search_index_entry:[271,4,1,""]},"evennia.contrib.tutorial_world.rooms.CmdLookDark":{aliases:[271,4,1,""],func:[271,3,1,""],help_category:[271,4,1,""],key:[271,4,1,""],lock_storage:[271,4,1,""],locks:[271,4,1,""],search_index_entry:[271,4,1,""]},"evennia.contrib.tutorial_world.rooms.CmdSetEvenniaIntro":{at_cmdset_creation:[271,3,1,""],key:[271,4,1,""],path:[271,4,1,""]},"evennia.contrib.tutorial_world.rooms.CmdTutorial":{aliases:[271,4,1,""],func:[271,3,1,""],help_category:[271,4,1,""],key:[271,4,1,""],lock_storage:[271,4,1,""],locks:[271,4,1,""],search_index_entry:[271,4,1,""]},"evennia.contrib.tutorial_world.rooms.CmdTutorialGiveUp":{aliases:[271,4,1,""],func:[271,3,1,""],help_category:[271,4,1,""],key:[271,4,1,""],lock_storage:[271,4,1,""],search_index_entry:[271,4,1,""]},"evennia.contrib.tutorial_world.rooms.CmdTutorialLook":{aliases:[271,4,1,""],func:[271,3,1,""],help_category:[271,4,1,""],key:[271,4,1,""],lock_storage:[271,4,1,""],search_index_entry:[271,4,1,""]},"evennia.contrib.tutorial_world.rooms.CmdTutorialSetDetail":{aliases:[271,4,1,""],func:[271,3,1,""],help_category:[271,4,1,""],key:[271,4,1,""],lock_storage:[271,4,1,""],locks:[271,4,1,""],search_index_entry:[271,4,1,""]},"evennia.contrib.tutorial_world.rooms.CmdWest":{aliases:[271,4,1,""],func:[271,3,1,""],help_category:[271,4,1,""],key:[271,4,1,""],lock_storage:[271,4,1,""],locks:[271,4,1,""],search_index_entry:[271,4,1,""]},"evennia.contrib.tutorial_world.rooms.DarkCmdSet":{at_cmdset_creation:[271,3,1,""],key:[271,4,1,""],mergetype:[271,4,1,""],path:[271,4,1,""],priority:[271,4,1,""]},"evennia.contrib.tutorial_world.rooms.DarkRoom":{DoesNotExist:[271,2,1,""],MultipleObjectsReturned:[271,2,1,""],at_init:[271,3,1,""],at_object_creation:[271,3,1,""],at_object_leave:[271,3,1,""],at_object_receive:[271,3,1,""],check_light_state:[271,3,1,""],path:[271,4,1,""],typename:[271,4,1,""]},"evennia.contrib.tutorial_world.rooms.IntroRoom":{DoesNotExist:[271,2,1,""],MultipleObjectsReturned:[271,2,1,""],at_object_creation:[271,3,1,""],at_object_receive:[271,3,1,""],path:[271,4,1,""],typename:[271,4,1,""]},"evennia.contrib.tutorial_world.rooms.OutroRoom":{DoesNotExist:[271,2,1,""],MultipleObjectsReturned:[271,2,1,""],at_object_creation:[271,3,1,""],at_object_leave:[271,3,1,""],at_object_receive:[271,3,1,""],path:[271,4,1,""],typename:[271,4,1,""]},"evennia.contrib.tutorial_world.rooms.TeleportRoom":{DoesNotExist:[271,2,1,""],MultipleObjectsReturned:[271,2,1,""],at_object_creation:[271,3,1,""],at_object_receive:[271,3,1,""],path:[271,4,1,""],typename:[271,4,1,""]},"evennia.contrib.tutorial_world.rooms.TutorialRoom":{DoesNotExist:[271,2,1,""],MultipleObjectsReturned:[271,2,1,""],at_object_creation:[271,3,1,""],at_object_receive:[271,3,1,""],path:[271,4,1,""],return_detail:[271,3,1,""],set_detail:[271,3,1,""],typename:[271,4,1,""]},"evennia.contrib.tutorial_world.rooms.TutorialRoomCmdSet":{at_cmdset_creation:[271,3,1,""],key:[271,4,1,""],path:[271,4,1,""],priority:[271,4,1,""]},"evennia.contrib.tutorial_world.rooms.WeatherRoom":{DoesNotExist:[271,2,1,""],MultipleObjectsReturned:[271,2,1,""],at_object_creation:[271,3,1,""],path:[271,4,1,""],typename:[271,4,1,""],update_weather:[271,3,1,""]},"evennia.contrib.unixcommand":{HelpAction:[272,1,1,""],ParseError:[272,2,1,""],UnixCommand:[272,1,1,""],UnixCommandParser:[272,1,1,""]},"evennia.contrib.unixcommand.UnixCommand":{__init__:[272,3,1,""],aliases:[272,4,1,""],func:[272,3,1,""],get_help:[272,3,1,""],help_category:[272,4,1,""],init_parser:[272,3,1,""],key:[272,4,1,""],lock_storage:[272,4,1,""],parse:[272,3,1,""],search_index_entry:[272,4,1,""]},"evennia.contrib.unixcommand.UnixCommandParser":{__init__:[272,3,1,""],format_help:[272,3,1,""],format_usage:[272,3,1,""],print_help:[272,3,1,""],print_usage:[272,3,1,""]},"evennia.contrib.wilderness":{WildernessExit:[273,1,1,""],WildernessMapProvider:[273,1,1,""],WildernessRoom:[273,1,1,""],WildernessScript:[273,1,1,""],create_wilderness:[273,5,1,""],enter_wilderness:[273,5,1,""],get_new_coordinates:[273,5,1,""]},"evennia.contrib.wilderness.WildernessExit":{DoesNotExist:[273,2,1,""],MultipleObjectsReturned:[273,2,1,""],at_traverse:[273,3,1,""],at_traverse_coordinates:[273,3,1,""],mapprovider:[273,3,1,""],path:[273,4,1,""],typename:[273,4,1,""],wilderness:[273,3,1,""]},"evennia.contrib.wilderness.WildernessMapProvider":{at_prepare_room:[273,3,1,""],exit_typeclass:[273,4,1,""],get_location_name:[273,3,1,""],is_valid_coordinates:[273,3,1,""],room_typeclass:[273,4,1,""]},"evennia.contrib.wilderness.WildernessRoom":{DoesNotExist:[273,2,1,""],MultipleObjectsReturned:[273,2,1,""],at_object_leave:[273,3,1,""],at_object_receive:[273,3,1,""],coordinates:[273,3,1,""],get_display_name:[273,3,1,""],location_name:[273,3,1,""],path:[273,4,1,""],set_active_coordinates:[273,3,1,""],typename:[273,4,1,""],wilderness:[273,3,1,""]},"evennia.contrib.wilderness.WildernessScript":{DoesNotExist:[273,2,1,""],MultipleObjectsReturned:[273,2,1,""],at_post_object_leave:[273,3,1,""],at_script_creation:[273,3,1,""],at_start:[273,3,1,""],get_obj_coordinates:[273,3,1,""],get_objs_at_coordinates:[273,3,1,""],is_valid_coordinates:[273,3,1,""],itemcoordinates:[273,3,1,""],mapprovider:[273,3,1,""],move_obj:[273,3,1,""],path:[273,4,1,""],typename:[273,4,1,""]},"evennia.contrib.xyzgrid":{commands:[275,0,0,"-"],example:[276,0,0,"-"],launchcmd:[277,0,0,"-"],prototypes:[278,0,0,"-"],tests:[279,0,0,"-"],utils:[280,0,0,"-"],xymap:[281,0,0,"-"],xymap_legend:[282,0,0,"-"],xyzgrid:[283,0,0,"-"],xyzroom:[284,0,0,"-"]},"evennia.contrib.xyzgrid.commands":{CmdGoto:[275,1,1,""],CmdMap:[275,1,1,""],CmdXYZOpen:[275,1,1,""],CmdXYZTeleport:[275,1,1,""],PathData:[275,1,1,""],XYZGridCmdSet:[275,1,1,""]},"evennia.contrib.xyzgrid.commands.CmdGoto":{aliases:[275,4,1,""],auto_step_delay:[275,4,1,""],default_xyz_path_interrupt_msg:[275,4,1,""],func:[275,3,1,""],help_category:[275,4,1,""],key:[275,4,1,""],lock_storage:[275,4,1,""],locks:[275,4,1,""],search_index_entry:[275,4,1,""]},"evennia.contrib.xyzgrid.commands.CmdMap":{aliases:[275,4,1,""],func:[275,3,1,""],help_category:[275,4,1,""],key:[275,4,1,""],lock_storage:[275,4,1,""],locks:[275,4,1,""],search_index_entry:[275,4,1,""]},"evennia.contrib.xyzgrid.commands.CmdXYZOpen":{aliases:[275,4,1,""],help_category:[275,4,1,""],key:[275,4,1,""],lock_storage:[275,4,1,""],parse:[275,3,1,""],search_index_entry:[275,4,1,""]},"evennia.contrib.xyzgrid.commands.CmdXYZTeleport":{aliases:[275,4,1,""],help_category:[275,4,1,""],key:[275,4,1,""],lock_storage:[275,4,1,""],parse:[275,3,1,""],search_index_entry:[275,4,1,""]},"evennia.contrib.xyzgrid.commands.PathData":{directions:[275,4,1,""],step_sequence:[275,4,1,""],target:[275,4,1,""],task:[275,4,1,""],xymap:[275,4,1,""]},"evennia.contrib.xyzgrid.commands.XYZGridCmdSet":{at_cmdset_creation:[275,3,1,""],key:[275,4,1,""],path:[275,4,1,""]},"evennia.contrib.xyzgrid.example":{TransitionToCave:[276,1,1,""],TransitionToLargeTree:[276,1,1,""]},"evennia.contrib.xyzgrid.example.TransitionToCave":{symbol:[276,4,1,""],target_map_xyz:[276,4,1,""]},"evennia.contrib.xyzgrid.example.TransitionToLargeTree":{symbol:[276,4,1,""],target_map_xyz:[276,4,1,""]},"evennia.contrib.xyzgrid.launchcmd":{xyzcommand:[277,5,1,""]},"evennia.contrib.xyzgrid.tests":{Map12aTransition:[279,1,1,""],Map12bTransition:[279,1,1,""],TestBuildExampleGrid:[279,1,1,""],TestMap10:[279,1,1,""],TestMap11:[279,1,1,""],TestMap1:[279,1,1,""],TestMap2:[279,1,1,""],TestMap3:[279,1,1,""],TestMap4:[279,1,1,""],TestMap5:[279,1,1,""],TestMap6:[279,1,1,""],TestMap7:[279,1,1,""],TestMap8:[279,1,1,""],TestMap9:[279,1,1,""],TestMapStressTest:[279,1,1,""],TestXYZGrid:[279,1,1,""],TestXYZGridTransition:[279,1,1,""]},"evennia.contrib.xyzgrid.tests.Map12aTransition":{symbol:[279,4,1,""],target_map_xyz:[279,4,1,""]},"evennia.contrib.xyzgrid.tests.Map12bTransition":{symbol:[279,4,1,""],target_map_xyz:[279,4,1,""]},"evennia.contrib.xyzgrid.tests.TestBuildExampleGrid":{setUp:[279,3,1,""],tearDown:[279,3,1,""],test_build:[279,3,1,""]},"evennia.contrib.xyzgrid.tests.TestMap1":{test_get_shortest_path:[279,3,1,""],test_get_visual_range__nodes__character:[279,4,1,""],test_get_visual_range__nodes__character_0:[279,3,1,""],test_get_visual_range__nodes__character_1:[279,3,1,""],test_get_visual_range__nodes__character_2:[279,3,1,""],test_get_visual_range__nodes__character_3:[279,3,1,""],test_get_visual_range__nodes__character_4:[279,3,1,""],test_get_visual_range__scan:[279,4,1,""],test_get_visual_range__scan_0:[279,3,1,""],test_get_visual_range__scan_1:[279,3,1,""],test_get_visual_range__scan_2:[279,3,1,""],test_get_visual_range__scan_3:[279,3,1,""],test_get_visual_range__scan__character:[279,4,1,""],test_get_visual_range__scan__character_0:[279,3,1,""],test_get_visual_range__scan__character_1:[279,3,1,""],test_get_visual_range__scan__character_2:[279,3,1,""],test_get_visual_range__scan__character_3:[279,3,1,""],test_node_from_coord:[279,3,1,""],test_spawn:[279,3,1,""],test_str_output:[279,3,1,""]},"evennia.contrib.xyzgrid.tests.TestMap10":{map_data:[279,4,1,""],map_display:[279,4,1,""],test_paths:[279,4,1,""],test_paths_0:[279,3,1,""],test_paths_1:[279,3,1,""],test_shortest_path:[279,4,1,""],test_shortest_path_0:[279,3,1,""],test_shortest_path_1:[279,3,1,""],test_shortest_path_2:[279,3,1,""],test_shortest_path_3:[279,3,1,""],test_shortest_path_4:[279,3,1,""],test_shortest_path_5:[279,3,1,""],test_shortest_path_6:[279,3,1,""],test_shortest_path_7:[279,3,1,""],test_shortest_path_8:[279,3,1,""],test_shortest_path_9:[279,3,1,""],test_spawn:[279,3,1,""],test_str_output:[279,3,1,""]},"evennia.contrib.xyzgrid.tests.TestMap11":{map_data:[279,4,1,""],map_display:[279,4,1,""],test_get_visual_range_with_path:[279,4,1,""],test_get_visual_range_with_path_0:[279,3,1,""],test_get_visual_range_with_path_1:[279,3,1,""],test_paths:[279,4,1,""],test_paths_0:[279,3,1,""],test_paths_1:[279,3,1,""],test_shortest_path:[279,4,1,""],test_shortest_path_0:[279,3,1,""],test_shortest_path_1:[279,3,1,""],test_spawn:[279,3,1,""],test_str_output:[279,3,1,""]},"evennia.contrib.xyzgrid.tests.TestMap2":{map_data:[279,4,1,""],map_display:[279,4,1,""],test_extended_path_tracking__horizontal:[279,3,1,""],test_extended_path_tracking__vertical:[279,3,1,""],test_get_visual_range__nodes__character:[279,4,1,""],test_get_visual_range__nodes__character_0:[279,3,1,""],test_get_visual_range__nodes__character_1:[279,3,1,""],test_get_visual_range__nodes__character_2:[279,3,1,""],test_get_visual_range__nodes__character_3:[279,3,1,""],test_get_visual_range__nodes__character_4:[279,3,1,""],test_get_visual_range__nodes__character_5:[279,3,1,""],test_get_visual_range__nodes__character_6:[279,3,1,""],test_get_visual_range__nodes__character_7:[279,3,1,""],test_get_visual_range__nodes__character_8:[279,3,1,""],test_get_visual_range__nodes__character_9:[279,3,1,""],test_get_visual_range__scan__character:[279,4,1,""],test_get_visual_range__scan__character_0:[279,3,1,""],test_get_visual_range__scan__character_1:[279,3,1,""],test_get_visual_range__scan__character_2:[279,3,1,""],test_get_visual_range__scan__character_3:[279,3,1,""],test_node_from_coord:[279,3,1,""],test_shortest_path:[279,4,1,""],test_shortest_path_0:[279,3,1,""],test_shortest_path_1:[279,3,1,""],test_shortest_path_2:[279,3,1,""],test_shortest_path_3:[279,3,1,""],test_shortest_path_4:[279,3,1,""],test_shortest_path_5:[279,3,1,""],test_shortest_path_6:[279,3,1,""],test_spawn:[279,3,1,""],test_str_output:[279,3,1,""]},"evennia.contrib.xyzgrid.tests.TestMap3":{map_data:[279,4,1,""],map_display:[279,4,1,""],test_get_visual_range__nodes__character:[279,4,1,""],test_get_visual_range__nodes__character_0:[279,3,1,""],test_get_visual_range__nodes__character_1:[279,3,1,""],test_shortest_path:[279,4,1,""],test_shortest_path_00:[279,3,1,""],test_shortest_path_01:[279,3,1,""],test_shortest_path_02:[279,3,1,""],test_shortest_path_03:[279,3,1,""],test_shortest_path_04:[279,3,1,""],test_shortest_path_05:[279,3,1,""],test_shortest_path_06:[279,3,1,""],test_shortest_path_07:[279,3,1,""],test_shortest_path_08:[279,3,1,""],test_shortest_path_09:[279,3,1,""],test_shortest_path_10:[279,3,1,""],test_spawn:[279,3,1,""],test_str_output:[279,3,1,""]},"evennia.contrib.xyzgrid.tests.TestMap4":{map_data:[279,4,1,""],map_display:[279,4,1,""],test_shortest_path:[279,4,1,""],test_shortest_path_0:[279,3,1,""],test_shortest_path_1:[279,3,1,""],test_shortest_path_2:[279,3,1,""],test_shortest_path_3:[279,3,1,""],test_shortest_path_4:[279,3,1,""],test_shortest_path_5:[279,3,1,""],test_spawn:[279,3,1,""],test_str_output:[279,3,1,""]},"evennia.contrib.xyzgrid.tests.TestMap5":{map_data:[279,4,1,""],map_display:[279,4,1,""],test_shortest_path:[279,4,1,""],test_shortest_path_0:[279,3,1,""],test_shortest_path_1:[279,3,1,""],test_shortest_path_2:[279,3,1,""],test_shortest_path_3:[279,3,1,""],test_spawn:[279,3,1,""],test_str_output:[279,3,1,""]},"evennia.contrib.xyzgrid.tests.TestMap6":{map_data:[279,4,1,""],map_display:[279,4,1,""],test_shortest_path:[279,4,1,""],test_shortest_path_0:[279,3,1,""],test_shortest_path_1:[279,3,1,""],test_shortest_path_2:[279,3,1,""],test_shortest_path_3:[279,3,1,""],test_shortest_path_4:[279,3,1,""],test_shortest_path_5:[279,3,1,""],test_shortest_path_6:[279,3,1,""],test_shortest_path_7:[279,3,1,""],test_spawn:[279,3,1,""],test_str_output:[279,3,1,""]},"evennia.contrib.xyzgrid.tests.TestMap7":{map_data:[279,4,1,""],map_display:[279,4,1,""],test_shortest_path:[279,4,1,""],test_shortest_path_0:[279,3,1,""],test_shortest_path_1:[279,3,1,""],test_shortest_path_2:[279,3,1,""],test_shortest_path_3:[279,3,1,""],test_spawn:[279,3,1,""],test_str_output:[279,3,1,""]},"evennia.contrib.xyzgrid.tests.TestMap8":{map_data:[279,4,1,""],map_display:[279,4,1,""],test_get_visual_range__nodes__character:[279,4,1,""],test_get_visual_range__nodes__character_0:[279,3,1,""],test_get_visual_range_with_path:[279,4,1,""],test_get_visual_range_with_path_0:[279,3,1,""],test_get_visual_range_with_path_1:[279,3,1,""],test_get_visual_range_with_path_2:[279,3,1,""],test_get_visual_range_with_path_3:[279,3,1,""],test_get_visual_range_with_path_4:[279,3,1,""],test_shortest_path:[279,4,1,""],test_shortest_path_0:[279,3,1,""],test_shortest_path_1:[279,3,1,""],test_shortest_path_2:[279,3,1,""],test_shortest_path_3:[279,3,1,""],test_shortest_path_4:[279,3,1,""],test_shortest_path_5:[279,3,1,""],test_shortest_path_6:[279,3,1,""],test_spawn:[279,3,1,""],test_str_output:[279,3,1,""]},"evennia.contrib.xyzgrid.tests.TestMap9":{map_data:[279,4,1,""],map_display:[279,4,1,""],test_shortest_path:[279,4,1,""],test_shortest_path_0:[279,3,1,""],test_shortest_path_1:[279,3,1,""],test_shortest_path_2:[279,3,1,""],test_shortest_path_3:[279,3,1,""],test_spawn:[279,3,1,""],test_str_output:[279,3,1,""]},"evennia.contrib.xyzgrid.tests.TestMapStressTest":{test_grid_creation:[279,4,1,""],test_grid_creation_0:[279,3,1,""],test_grid_creation_1:[279,3,1,""],test_grid_pathfind:[279,4,1,""],test_grid_pathfind_0:[279,3,1,""],test_grid_pathfind_1:[279,3,1,""],test_grid_visibility:[279,4,1,""],test_grid_visibility_0:[279,3,1,""],test_grid_visibility_1:[279,3,1,""]},"evennia.contrib.xyzgrid.tests.TestXYZGrid":{setUp:[279,3,1,""],tearDown:[279,3,1,""],test_spawn:[279,3,1,""],test_str_output:[279,3,1,""],zcoord:[279,4,1,""]},"evennia.contrib.xyzgrid.tests.TestXYZGridTransition":{setUp:[279,3,1,""],tearDown:[279,3,1,""],test_shortest_path:[279,4,1,""],test_shortest_path_0:[279,3,1,""],test_shortest_path_1:[279,3,1,""],test_spawn:[279,3,1,""]},"evennia.contrib.xyzgrid.utils":{MapError:[280,2,1,""],MapParserError:[280,2,1,""],MapTransition:[280,2,1,""]},"evennia.contrib.xyzgrid.utils.MapError":{__init__:[280,3,1,""]},"evennia.contrib.xyzgrid.xymap":{XYMap:[281,1,1,""]},"evennia.contrib.xyzgrid.xymap.XYMap":{__init__:[281,3,1,""],calculate_path_matrix:[281,3,1,""],empty_symbol:[281,4,1,""],get_components_with_symbol:[281,3,1,""],get_node_from_coord:[281,3,1,""],get_shortest_path:[281,3,1,""],get_visual_range:[281,3,1,""],legend_key_exceptions:[281,4,1,""],log:[281,3,1,""],mapcorner_symbol:[281,4,1,""],max_pathfinding_length:[281,4,1,""],parse:[281,3,1,""],reload:[281,3,1,""],spawn_links:[281,3,1,""],spawn_nodes:[281,3,1,""]},"evennia.contrib.xyzgrid.xymap_legend":{BasicMapNode:[282,1,1,""],BlockedMapLink:[282,1,1,""],CrossMapLink:[282,1,1,""],DownMapLink:[282,1,1,""],EWMapLink:[282,1,1,""],EWOneWayMapLink:[282,1,1,""],InterruptMapLink:[282,1,1,""],InterruptMapNode:[282,1,1,""],InvisibleSmartMapLink:[282,1,1,""],MapLink:[282,1,1,""],MapNode:[282,1,1,""],MapTransitionNode:[282,1,1,""],NESWMapLink:[282,1,1,""],NSMapLink:[282,1,1,""],NSOneWayMapLink:[282,1,1,""],PlusMapLink:[282,1,1,""],RouterMapLink:[282,1,1,""],SENWMapLink:[282,1,1,""],SNOneWayMapLink:[282,1,1,""],SmartMapLink:[282,1,1,""],SmartRerouterMapLink:[282,1,1,""],SmartTeleporterMapLink:[282,1,1,""],TeleporterMapLink:[282,1,1,""],TransitionMapNode:[282,1,1,""],UpMapLink:[282,1,1,""],WEOneWayMapLink:[282,1,1,""]},"evennia.contrib.xyzgrid.xymap_legend.BasicMapNode":{prototype:[282,4,1,""],symbol:[282,4,1,""]},"evennia.contrib.xyzgrid.xymap_legend.BlockedMapLink":{prototype:[282,4,1,""],symbol:[282,4,1,""],weights:[282,4,1,""]},"evennia.contrib.xyzgrid.xymap_legend.CrossMapLink":{directions:[282,4,1,""],prototype:[282,4,1,""],symbol:[282,4,1,""]},"evennia.contrib.xyzgrid.xymap_legend.DownMapLink":{direction_aliases:[282,4,1,""],prototype:[282,4,1,""],spawn_aliases:[282,4,1,""],symbol:[282,4,1,""]},"evennia.contrib.xyzgrid.xymap_legend.EWMapLink":{directions:[282,4,1,""],prototype:[282,4,1,""],symbol:[282,4,1,""]},"evennia.contrib.xyzgrid.xymap_legend.EWOneWayMapLink":{directions:[282,4,1,""],prototype:[282,4,1,""],symbol:[282,4,1,""]},"evennia.contrib.xyzgrid.xymap_legend.InterruptMapLink":{interrupt_path:[282,4,1,""],prototype:[282,4,1,""],symbol:[282,4,1,""]},"evennia.contrib.xyzgrid.xymap_legend.InterruptMapNode":{display_symbol:[282,4,1,""],interrupt_path:[282,4,1,""],prototype:[282,4,1,""],symbol:[282,4,1,""]},"evennia.contrib.xyzgrid.xymap_legend.InvisibleSmartMapLink":{direction_aliases:[282,4,1,""],display_symbol_aliases:[282,4,1,""],get_display_symbol:[282,3,1,""]},"evennia.contrib.xyzgrid.xymap_legend.MapLink":{__init__:[282,3,1,""],at_empty_target:[282,3,1,""],average_long_link_weights:[282,4,1,""],default_weight:[282,4,1,""],direction_aliases:[282,4,1,""],directions:[282,4,1,""],display_symbol:[282,4,1,""],generate_prototype_key:[282,3,1,""],get_direction:[282,3,1,""],get_display_symbol:[282,3,1,""],get_linked_neighbors:[282,3,1,""],get_weight:[282,3,1,""],interrupt_path:[282,4,1,""],multilink:[282,4,1,""],prototype:[282,4,1,""],spawn_aliases:[282,4,1,""],symbol:[282,4,1,""],traverse:[282,3,1,""],weights:[282,4,1,""]},"evennia.contrib.xyzgrid.xymap_legend.MapNode":{__init__:[282,3,1,""],build_links:[282,3,1,""],direction_spawn_defaults:[282,4,1,""],display_symbol:[282,4,1,""],generate_prototype_key:[282,3,1,""],get_display_symbol:[282,3,1,""],get_exit_spawn_name:[282,3,1,""],get_spawn_xyz:[282,3,1,""],interrupt_path:[282,4,1,""],linkweights:[282,3,1,""],log:[282,3,1,""],multilink:[282,4,1,""],node_index:[282,4,1,""],prototype:[282,4,1,""],spawn:[282,3,1,""],spawn_links:[282,3,1,""],symbol:[282,4,1,""],unspawn:[282,3,1,""]},"evennia.contrib.xyzgrid.xymap_legend.MapTransitionNode":{display_symbol:[282,4,1,""],prototype:[282,4,1,""],symbol:[282,4,1,""],target_map_xyz:[282,4,1,""]},"evennia.contrib.xyzgrid.xymap_legend.NESWMapLink":{directions:[282,4,1,""],prototype:[282,4,1,""],symbol:[282,4,1,""]},"evennia.contrib.xyzgrid.xymap_legend.NSMapLink":{directions:[282,4,1,""],display_symbol:[282,4,1,""],prototype:[282,4,1,""],symbol:[282,4,1,""]},"evennia.contrib.xyzgrid.xymap_legend.NSOneWayMapLink":{directions:[282,4,1,""],prototype:[282,4,1,""],symbol:[282,4,1,""]},"evennia.contrib.xyzgrid.xymap_legend.PlusMapLink":{directions:[282,4,1,""],prototype:[282,4,1,""],symbol:[282,4,1,""]},"evennia.contrib.xyzgrid.xymap_legend.RouterMapLink":{symbol:[282,4,1,""]},"evennia.contrib.xyzgrid.xymap_legend.SENWMapLink":{directions:[282,4,1,""],prototype:[282,4,1,""],symbol:[282,4,1,""]},"evennia.contrib.xyzgrid.xymap_legend.SNOneWayMapLink":{directions:[282,4,1,""],prototype:[282,4,1,""],symbol:[282,4,1,""]},"evennia.contrib.xyzgrid.xymap_legend.SmartMapLink":{get_direction:[282,3,1,""],multilink:[282,4,1,""]},"evennia.contrib.xyzgrid.xymap_legend.SmartRerouterMapLink":{get_direction:[282,3,1,""],multilink:[282,4,1,""]},"evennia.contrib.xyzgrid.xymap_legend.SmartTeleporterMapLink":{__init__:[282,3,1,""],at_empty_target:[282,3,1,""],direction_name:[282,4,1,""],display_symbol:[282,4,1,""],get_direction:[282,3,1,""],symbol:[282,4,1,""]},"evennia.contrib.xyzgrid.xymap_legend.TeleporterMapLink":{symbol:[282,4,1,""]},"evennia.contrib.xyzgrid.xymap_legend.TransitionMapNode":{build_links:[282,3,1,""],display_symbol:[282,4,1,""],get_spawn_xyz:[282,3,1,""],symbol:[282,4,1,""],taget_map_xyz:[282,4,1,""]},"evennia.contrib.xyzgrid.xymap_legend.UpMapLink":{direction_aliases:[282,4,1,""],prototype:[282,4,1,""],spawn_aliases:[282,4,1,""],symbol:[282,4,1,""]},"evennia.contrib.xyzgrid.xymap_legend.WEOneWayMapLink":{directions:[282,4,1,""],prototype:[282,4,1,""],symbol:[282,4,1,""]},"evennia.contrib.xyzgrid.xyzgrid":{XYZGrid:[283,1,1,""],get_xyzgrid:[283,5,1,""]},"evennia.contrib.xyzgrid.xyzgrid.XYZGrid":{"delete":[283,3,1,""],DoesNotExist:[283,2,1,""],MultipleObjectsReturned:[283,2,1,""],add_maps:[283,3,1,""],all_maps:[283,3,1,""],at_script_creation:[283,3,1,""],get_exit:[283,3,1,""],get_map:[283,3,1,""],get_room:[283,3,1,""],grid:[283,3,1,""],log:[283,3,1,""],maps_from_module:[283,3,1,""],path:[283,4,1,""],reload:[283,3,1,""],remove_map:[283,3,1,""],spawn:[283,3,1,""],typename:[283,4,1,""]},"evennia.contrib.xyzgrid.xyzroom":{XYZExit:[284,1,1,""],XYZExitManager:[284,1,1,""],XYZManager:[284,1,1,""],XYZRoom:[284,1,1,""]},"evennia.contrib.xyzgrid.xyzroom.XYZExit":{DoesNotExist:[284,2,1,""],MultipleObjectsReturned:[284,2,1,""],create:[284,3,1,""],objects:[284,4,1,""],path:[284,4,1,""],typename:[284,4,1,""],xyz:[284,3,1,""],xyz_destination:[284,3,1,""],xyzgrid:[284,3,1,""]},"evennia.contrib.xyzgrid.xyzroom.XYZExitManager":{filter_xyz_exit:[284,3,1,""],get_xyz_exit:[284,3,1,""]},"evennia.contrib.xyzgrid.xyzroom.XYZManager":{filter_xyz:[284,3,1,""],get_xyz:[284,3,1,""]},"evennia.contrib.xyzgrid.xyzroom.XYZRoom":{DoesNotExist:[284,2,1,""],MultipleObjectsReturned:[284,2,1,""],create:[284,3,1,""],get_display_name:[284,3,1,""],map_align:[284,4,1,""],map_character_symbol:[284,4,1,""],map_display:[284,4,1,""],map_fill_all:[284,4,1,""],map_mode:[284,4,1,""],map_separator_char:[284,4,1,""],map_target_path_style:[284,4,1,""],map_visual_range:[284,4,1,""],objects:[284,4,1,""],path:[284,4,1,""],return_appearance:[284,3,1,""],typename:[284,4,1,""],xymap:[284,3,1,""],xyz:[284,3,1,""],xyzgrid:[284,3,1,""]},"evennia.help":{filehelp:[286,0,0,"-"],manager:[287,0,0,"-"],models:[288,0,0,"-"],utils:[289,0,0,"-"]},"evennia.help.filehelp":{FileHelpEntry:[286,1,1,""],FileHelpStorageHandler:[286,1,1,""]},"evennia.help.filehelp.FileHelpEntry":{__init__:[286,3,1,""],access:[286,3,1,""],aliases:[286,4,1,""],entrytext:[286,4,1,""],help_category:[286,4,1,""],key:[286,4,1,""],lock_storage:[286,4,1,""],locks:[286,4,1,""],search_index_entry:[286,3,1,""],web_get_admin_url:[286,3,1,""],web_get_detail_url:[286,3,1,""]},"evennia.help.filehelp.FileHelpStorageHandler":{__init__:[286,3,1,""],all:[286,3,1,""],load:[286,3,1,""]},"evennia.help.manager":{HelpEntryManager:[287,1,1,""]},"evennia.help.manager.HelpEntryManager":{all_to_category:[287,3,1,""],find_apropos:[287,3,1,""],find_topicmatch:[287,3,1,""],find_topics_with_category:[287,3,1,""],find_topicsuggestions:[287,3,1,""],get_all_categories:[287,3,1,""],get_all_topics:[287,3,1,""],search_help:[287,3,1,""]},"evennia.help.models":{HelpEntry:[288,1,1,""]},"evennia.help.models.HelpEntry":{DoesNotExist:[288,2,1,""],MultipleObjectsReturned:[288,2,1,""],access:[288,3,1,""],aliases:[288,4,1,""],date_created:[288,3,1,""],db_date_created:[288,4,1,""],db_entrytext:[288,4,1,""],db_help_category:[288,4,1,""],db_key:[288,4,1,""],db_lock_storage:[288,4,1,""],db_tags:[288,4,1,""],entrytext:[288,3,1,""],get_absolute_url:[288,3,1,""],get_next_by_db_date_created:[288,3,1,""],get_previous_by_db_date_created:[288,3,1,""],help_category:[288,3,1,""],id:[288,4,1,""],key:[288,3,1,""],lock_storage:[288,3,1,""],locks:[288,4,1,""],objects:[288,4,1,""],path:[288,4,1,""],search_index_entry:[288,3,1,""],tags:[288,4,1,""],typename:[288,4,1,""],web_get_admin_url:[288,3,1,""],web_get_create_url:[288,3,1,""],web_get_delete_url:[288,3,1,""],web_get_detail_url:[288,3,1,""],web_get_update_url:[288,3,1,""]},"evennia.help.utils":{help_search_with_index:[289,5,1,""],parse_entry_for_subcategories:[289,5,1,""]},"evennia.locks":{lockfuncs:[291,0,0,"-"],lockhandler:[292,0,0,"-"]},"evennia.locks.lockfuncs":{"false":[291,5,1,""],"true":[291,5,1,""],all:[291,5,1,""],attr:[291,5,1,""],attr_eq:[291,5,1,""],attr_ge:[291,5,1,""],attr_gt:[291,5,1,""],attr_le:[291,5,1,""],attr_lt:[291,5,1,""],attr_ne:[291,5,1,""],dbref:[291,5,1,""],has_account:[291,5,1,""],holds:[291,5,1,""],id:[291,5,1,""],inside:[291,5,1,""],inside_rec:[291,5,1,""],locattr:[291,5,1,""],none:[291,5,1,""],objattr:[291,5,1,""],objlocattr:[291,5,1,""],objtag:[291,5,1,""],pdbref:[291,5,1,""],perm:[291,5,1,""],perm_above:[291,5,1,""],pid:[291,5,1,""],pperm:[291,5,1,""],pperm_above:[291,5,1,""],self:[291,5,1,""],serversetting:[291,5,1,""],superuser:[291,5,1,""],tag:[291,5,1,""]},"evennia.locks.lockhandler":{LockException:[292,2,1,""],LockHandler:[292,1,1,""]},"evennia.locks.lockhandler.LockHandler":{"delete":[292,3,1,""],__init__:[292,3,1,""],add:[292,3,1,""],all:[292,3,1,""],append:[292,3,1,""],cache_lock_bypass:[292,3,1,""],check:[292,3,1,""],check_lockstring:[292,3,1,""],clear:[292,3,1,""],get:[292,3,1,""],remove:[292,3,1,""],replace:[292,3,1,""],reset:[292,3,1,""],validate:[292,3,1,""]},"evennia.objects":{manager:[294,0,0,"-"],models:[295,0,0,"-"],objects:[296,0,0,"-"]},"evennia.objects.manager":{ObjectDBManager:[294,1,1,""],ObjectManager:[294,1,1,""]},"evennia.objects.manager.ObjectDBManager":{clear_all_sessids:[294,3,1,""],copy_object:[294,3,1,""],get_contents:[294,3,1,""],get_object_with_account:[294,3,1,""],get_objs_with_attr:[294,3,1,""],get_objs_with_attr_value:[294,3,1,""],get_objs_with_db_property:[294,3,1,""],get_objs_with_db_property_value:[294,3,1,""],get_objs_with_key_and_typeclass:[294,3,1,""],get_objs_with_key_or_alias:[294,3,1,""],object_search:[294,3,1,""],search:[294,3,1,""],search_object:[294,3,1,""]},"evennia.objects.models":{ContentsHandler:[295,1,1,""],ObjectDB:[295,1,1,""]},"evennia.objects.models.ContentsHandler":{__init__:[295,3,1,""],add:[295,3,1,""],clear:[295,3,1,""],get:[295,3,1,""],init:[295,3,1,""],load:[295,3,1,""],remove:[295,3,1,""]},"evennia.objects.models.ObjectDB":{DoesNotExist:[295,2,1,""],MultipleObjectsReturned:[295,2,1,""],account:[295,3,1,""],at_db_location_postsave:[295,3,1,""],cmdset_storage:[295,3,1,""],contents_cache:[295,4,1,""],db_account:[295,4,1,""],db_account_id:[295,4,1,""],db_attributes:[295,4,1,""],db_cmdset_storage:[295,4,1,""],db_destination:[295,4,1,""],db_destination_id:[295,4,1,""],db_home:[295,4,1,""],db_home_id:[295,4,1,""],db_location:[295,4,1,""],db_location_id:[295,4,1,""],db_sessid:[295,4,1,""],db_tags:[295,4,1,""],destination:[295,3,1,""],destinations_set:[295,4,1,""],get_next_by_db_date_created:[295,3,1,""],get_previous_by_db_date_created:[295,3,1,""],hide_from_objects_set:[295,4,1,""],home:[295,3,1,""],homes_set:[295,4,1,""],id:[295,4,1,""],location:[295,3,1,""],locations_set:[295,4,1,""],object_subscription_set:[295,4,1,""],objects:[295,4,1,""],path:[295,4,1,""],receiver_object_set:[295,4,1,""],scriptdb_set:[295,4,1,""],sender_object_set:[295,4,1,""],sessid:[295,3,1,""],typename:[295,4,1,""]},"evennia.objects.objects":{DefaultCharacter:[296,1,1,""],DefaultExit:[296,1,1,""],DefaultObject:[296,1,1,""],DefaultRoom:[296,1,1,""],ExitCommand:[296,1,1,""],ObjectSessionHandler:[296,1,1,""]},"evennia.objects.objects.DefaultCharacter":{DoesNotExist:[296,2,1,""],MultipleObjectsReturned:[296,2,1,""],at_after_move:[296,3,1,""],at_post_move:[296,3,1,""],at_post_puppet:[296,3,1,""],at_post_unpuppet:[296,3,1,""],at_pre_puppet:[296,3,1,""],basetype_setup:[296,3,1,""],connection_time:[296,3,1,""],create:[296,3,1,""],idle_time:[296,3,1,""],lockstring:[296,4,1,""],normalize_name:[296,3,1,""],path:[296,4,1,""],typename:[296,4,1,""],validate_name:[296,3,1,""]},"evennia.objects.objects.DefaultExit":{DoesNotExist:[296,2,1,""],MultipleObjectsReturned:[296,2,1,""],at_cmdset_get:[296,3,1,""],at_failed_traverse:[296,3,1,""],at_init:[296,3,1,""],at_traverse:[296,3,1,""],basetype_setup:[296,3,1,""],create:[296,3,1,""],create_exit_cmdset:[296,3,1,""],exit_command:[296,4,1,""],lockstring:[296,4,1,""],path:[296,4,1,""],priority:[296,4,1,""],typename:[296,4,1,""]},"evennia.objects.objects.DefaultObject":{"delete":[296,3,1,""],DoesNotExist:[296,2,1,""],MultipleObjectsReturned:[296,2,1,""],access:[296,3,1,""],announce_move_from:[296,3,1,""],announce_move_to:[296,3,1,""],appearance_template:[296,4,1,""],at_access:[296,3,1,""],at_after_move:[296,3,1,""],at_after_traverse:[296,3,1,""],at_before_drop:[296,3,1,""],at_before_get:[296,3,1,""],at_before_give:[296,3,1,""],at_before_move:[296,3,1,""],at_before_say:[296,3,1,""],at_cmdset_get:[296,3,1,""],at_desc:[296,3,1,""],at_drop:[296,3,1,""],at_failed_traverse:[296,3,1,""],at_first_save:[296,3,1,""],at_get:[296,3,1,""],at_give:[296,3,1,""],at_init:[296,3,1,""],at_look:[296,3,1,""],at_msg_receive:[296,3,1,""],at_msg_send:[296,3,1,""],at_object_creation:[296,3,1,""],at_object_delete:[296,3,1,""],at_object_leave:[296,3,1,""],at_object_post_copy:[296,3,1,""],at_object_receive:[296,3,1,""],at_post_move:[296,3,1,""],at_post_puppet:[296,3,1,""],at_post_traverse:[296,3,1,""],at_post_unpuppet:[296,3,1,""],at_pre_drop:[296,3,1,""],at_pre_get:[296,3,1,""],at_pre_give:[296,3,1,""],at_pre_move:[296,3,1,""],at_pre_puppet:[296,3,1,""],at_pre_say:[296,3,1,""],at_pre_unpuppet:[296,3,1,""],at_say:[296,3,1,""],at_server_reload:[296,3,1,""],at_server_shutdown:[296,3,1,""],at_traverse:[296,3,1,""],basetype_posthook_setup:[296,3,1,""],basetype_setup:[296,3,1,""],clear_contents:[296,3,1,""],clear_exits:[296,3,1,""],cmdset:[296,4,1,""],contents:[296,3,1,""],contents_get:[296,3,1,""],contents_set:[296,3,1,""],copy:[296,3,1,""],create:[296,3,1,""],execute_cmd:[296,3,1,""],exits:[296,3,1,""],for_contents:[296,3,1,""],get_content_names:[296,3,1,""],get_display_name:[296,3,1,""],get_numbered_name:[296,3,1,""],get_visible_contents:[296,3,1,""],has_account:[296,3,1,""],is_connected:[296,3,1,""],is_superuser:[296,3,1,""],lockstring:[296,4,1,""],move_to:[296,3,1,""],msg:[296,3,1,""],msg_contents:[296,3,1,""],nicks:[296,4,1,""],objects:[296,4,1,""],path:[296,4,1,""],return_appearance:[296,3,1,""],scripts:[296,4,1,""],search:[296,3,1,""],search_account:[296,3,1,""],sessions:[296,4,1,""],typename:[296,4,1,""]},"evennia.objects.objects.DefaultRoom":{DoesNotExist:[296,2,1,""],MultipleObjectsReturned:[296,2,1,""],basetype_setup:[296,3,1,""],create:[296,3,1,""],lockstring:[296,4,1,""],path:[296,4,1,""],typename:[296,4,1,""]},"evennia.objects.objects.ExitCommand":{aliases:[296,4,1,""],func:[296,3,1,""],get_extra_info:[296,3,1,""],help_category:[296,4,1,""],key:[296,4,1,""],lock_storage:[296,4,1,""],obj:[296,4,1,""],search_index_entry:[296,4,1,""]},"evennia.objects.objects.ObjectSessionHandler":{__init__:[296,3,1,""],add:[296,3,1,""],all:[296,3,1,""],clear:[296,3,1,""],count:[296,3,1,""],get:[296,3,1,""],remove:[296,3,1,""]},"evennia.prototypes":{menus:[298,0,0,"-"],protfuncs:[299,0,0,"-"],prototypes:[300,0,0,"-"],spawner:[301,0,0,"-"]},"evennia.prototypes.menus":{OLCMenu:[298,1,1,""],node_apply_diff:[298,5,1,""],node_destination:[298,5,1,""],node_examine_entity:[298,5,1,""],node_home:[298,5,1,""],node_index:[298,5,1,""],node_key:[298,5,1,""],node_location:[298,5,1,""],node_prototype_desc:[298,5,1,""],node_prototype_key:[298,5,1,""],node_prototype_save:[298,5,1,""],node_prototype_spawn:[298,5,1,""],node_validate_prototype:[298,5,1,""],start_olc:[298,5,1,""]},"evennia.prototypes.menus.OLCMenu":{display_helptext:[298,3,1,""],helptext_formatter:[298,3,1,""],nodetext_formatter:[298,3,1,""],options_formatter:[298,3,1,""]},"evennia.prototypes.protfuncs":{protfunc_callable_protkey:[299,5,1,""]},"evennia.prototypes.prototypes":{DbPrototype:[300,1,1,""],PermissionError:[300,2,1,""],PrototypeEvMore:[300,1,1,""],ValidationError:[300,2,1,""],check_permission:[300,5,1,""],create_prototype:[300,5,1,""],delete_prototype:[300,5,1,""],format_available_protfuncs:[300,5,1,""],homogenize_prototype:[300,5,1,""],init_spawn_value:[300,5,1,""],list_prototypes:[300,5,1,""],load_module_prototypes:[300,5,1,""],protfunc_parser:[300,5,1,""],prototype_to_str:[300,5,1,""],save_prototype:[300,5,1,""],search_objects_with_prototype:[300,5,1,""],search_prototype:[300,5,1,""],validate_prototype:[300,5,1,""],value_to_obj:[300,5,1,""],value_to_obj_or_any:[300,5,1,""]},"evennia.prototypes.prototypes.DbPrototype":{DoesNotExist:[300,2,1,""],MultipleObjectsReturned:[300,2,1,""],at_script_creation:[300,3,1,""],path:[300,4,1,""],prototype:[300,3,1,""],typename:[300,4,1,""]},"evennia.prototypes.prototypes.PrototypeEvMore":{__init__:[300,3,1,""],init_pages:[300,3,1,""],page_formatter:[300,3,1,""],prototype_paginator:[300,3,1,""]},"evennia.prototypes.spawner":{Unset:[301,1,1,""],batch_create_object:[301,5,1,""],batch_update_objects_with_prototype:[301,5,1,""],flatten_diff:[301,5,1,""],flatten_prototype:[301,5,1,""],format_diff:[301,5,1,""],prototype_diff:[301,5,1,""],prototype_diff_from_object:[301,5,1,""],prototype_from_object:[301,5,1,""],spawn:[301,5,1,""]},"evennia.scripts":{manager:[303,0,0,"-"],models:[304,0,0,"-"],monitorhandler:[305,0,0,"-"],scripthandler:[306,0,0,"-"],scripts:[307,0,0,"-"],taskhandler:[308,0,0,"-"],tickerhandler:[309,0,0,"-"]},"evennia.scripts.manager":{ScriptDBManager:[303,1,1,""],ScriptManager:[303,1,1,""]},"evennia.scripts.manager.ScriptDBManager":{copy_script:[303,3,1,""],delete_script:[303,3,1,""],get_all_scripts:[303,3,1,""],get_all_scripts_on_obj:[303,3,1,""],script_search:[303,3,1,""],search_script:[303,3,1,""],update_scripts_after_server_start:[303,3,1,""]},"evennia.scripts.models":{ScriptDB:[304,1,1,""]},"evennia.scripts.models.ScriptDB":{DoesNotExist:[304,2,1,""],MultipleObjectsReturned:[304,2,1,""],account:[304,3,1,""],db_account:[304,4,1,""],db_account_id:[304,4,1,""],db_attributes:[304,4,1,""],db_desc:[304,4,1,""],db_interval:[304,4,1,""],db_is_active:[304,4,1,""],db_obj:[304,4,1,""],db_obj_id:[304,4,1,""],db_persistent:[304,4,1,""],db_repeats:[304,4,1,""],db_start_delay:[304,4,1,""],db_tags:[304,4,1,""],desc:[304,3,1,""],get_next_by_db_date_created:[304,3,1,""],get_previous_by_db_date_created:[304,3,1,""],id:[304,4,1,""],interval:[304,3,1,""],is_active:[304,3,1,""],obj:[304,3,1,""],object:[304,3,1,""],objects:[304,4,1,""],path:[304,4,1,""],persistent:[304,3,1,""],receiver_script_set:[304,4,1,""],repeats:[304,3,1,""],sender_script_set:[304,4,1,""],start_delay:[304,3,1,""],typename:[304,4,1,""]},"evennia.scripts.monitorhandler":{MonitorHandler:[305,1,1,""]},"evennia.scripts.monitorhandler.MonitorHandler":{__init__:[305,3,1,""],add:[305,3,1,""],all:[305,3,1,""],at_update:[305,3,1,""],clear:[305,3,1,""],remove:[305,3,1,""],restore:[305,3,1,""],save:[305,3,1,""]},"evennia.scripts.scripthandler":{ScriptHandler:[306,1,1,""]},"evennia.scripts.scripthandler.ScriptHandler":{"delete":[306,3,1,""],__init__:[306,3,1,""],add:[306,3,1,""],all:[306,3,1,""],get:[306,3,1,""],start:[306,3,1,""],stop:[306,3,1,""]},"evennia.scripts.scripts":{DefaultScript:[307,1,1,""],DoNothing:[307,1,1,""],Store:[307,1,1,""]},"evennia.scripts.scripts.DefaultScript":{DoesNotExist:[307,2,1,""],MultipleObjectsReturned:[307,2,1,""],at_pause:[307,3,1,""],at_repeat:[307,3,1,""],at_script_creation:[307,3,1,""],at_script_delete:[307,3,1,""],at_server_reload:[307,3,1,""],at_server_shutdown:[307,3,1,""],at_server_start:[307,3,1,""],at_start:[307,3,1,""],at_stop:[307,3,1,""],create:[307,3,1,""],is_valid:[307,3,1,""],path:[307,4,1,""],typename:[307,4,1,""]},"evennia.scripts.scripts.DoNothing":{DoesNotExist:[307,2,1,""],MultipleObjectsReturned:[307,2,1,""],at_script_creation:[307,3,1,""],path:[307,4,1,""],typename:[307,4,1,""]},"evennia.scripts.scripts.Store":{DoesNotExist:[307,2,1,""],MultipleObjectsReturned:[307,2,1,""],at_script_creation:[307,3,1,""],path:[307,4,1,""],typename:[307,4,1,""]},"evennia.scripts.taskhandler":{TaskHandler:[308,1,1,""],TaskHandlerTask:[308,1,1,""],handle_error:[308,5,1,""]},"evennia.scripts.taskhandler.TaskHandler":{__init__:[308,3,1,""],active:[308,3,1,""],add:[308,3,1,""],call_task:[308,3,1,""],cancel:[308,3,1,""],clean_stale_tasks:[308,3,1,""],clear:[308,3,1,""],create_delays:[308,3,1,""],do_task:[308,3,1,""],exists:[308,3,1,""],get_deferred:[308,3,1,""],load:[308,3,1,""],remove:[308,3,1,""],save:[308,3,1,""]},"evennia.scripts.taskhandler.TaskHandlerTask":{__init__:[308,3,1,""],active:[308,3,1,"id6"],call:[308,3,1,"id3"],called:[308,3,1,""],cancel:[308,3,1,"id5"],do_task:[308,3,1,"id2"],exists:[308,3,1,"id7"],get_deferred:[308,3,1,""],get_id:[308,3,1,"id8"],pause:[308,3,1,"id0"],paused:[308,3,1,""],remove:[308,3,1,"id4"],unpause:[308,3,1,"id1"]},"evennia.scripts.tickerhandler":{Ticker:[309,1,1,""],TickerHandler:[309,1,1,""],TickerPool:[309,1,1,""]},"evennia.scripts.tickerhandler.Ticker":{__init__:[309,3,1,""],add:[309,3,1,""],remove:[309,3,1,""],stop:[309,3,1,""],validate:[309,3,1,""]},"evennia.scripts.tickerhandler.TickerHandler":{__init__:[309,3,1,""],add:[309,3,1,""],all:[309,3,1,""],all_display:[309,3,1,""],clear:[309,3,1,""],remove:[309,3,1,""],restore:[309,3,1,""],save:[309,3,1,""],ticker_pool_class:[309,4,1,""]},"evennia.scripts.tickerhandler.TickerPool":{__init__:[309,3,1,""],add:[309,3,1,""],remove:[309,3,1,""],stop:[309,3,1,""],ticker_class:[309,4,1,""]},"evennia.server":{amp_client:[311,0,0,"-"],connection_wizard:[312,0,0,"-"],deprecations:[313,0,0,"-"],evennia_launcher:[314,0,0,"-"],game_index_client:[315,0,0,"-"],initial_setup:[318,0,0,"-"],inputfuncs:[319,0,0,"-"],manager:[320,0,0,"-"],models:[321,0,0,"-"],portal:[322,0,0,"-"],profiling:[344,0,0,"-"],server:[352,0,0,"-"],serversession:[353,0,0,"-"],session:[354,0,0,"-"],sessionhandler:[355,0,0,"-"],signals:[356,0,0,"-"],throttle:[357,0,0,"-"],validators:[358,0,0,"-"],webserver:[359,0,0,"-"]},"evennia.server.amp_client":{AMPClientFactory:[311,1,1,""],AMPServerClientProtocol:[311,1,1,""]},"evennia.server.amp_client.AMPClientFactory":{__init__:[311,3,1,""],buildProtocol:[311,3,1,""],clientConnectionFailed:[311,3,1,""],clientConnectionLost:[311,3,1,""],factor:[311,4,1,""],initialDelay:[311,4,1,""],maxDelay:[311,4,1,""],noisy:[311,4,1,""],startedConnecting:[311,3,1,""]},"evennia.server.amp_client.AMPServerClientProtocol":{connectionMade:[311,3,1,""],data_to_portal:[311,3,1,""],send_AdminServer2Portal:[311,3,1,""],send_MsgServer2Portal:[311,3,1,""],server_receive_adminportal2server:[311,3,1,""],server_receive_msgportal2server:[311,3,1,""],server_receive_status:[311,3,1,""]},"evennia.server.connection_wizard":{ConnectionWizard:[312,1,1,""],node_game_index_fields:[312,5,1,""],node_game_index_start:[312,5,1,""],node_mssp_start:[312,5,1,""],node_start:[312,5,1,""],node_view_and_apply_settings:[312,5,1,""]},"evennia.server.connection_wizard.ConnectionWizard":{__init__:[312,3,1,""],ask_choice:[312,3,1,""],ask_continue:[312,3,1,""],ask_input:[312,3,1,""],ask_node:[312,3,1,""],ask_yesno:[312,3,1,""],display:[312,3,1,""]},"evennia.server.deprecations":{check_errors:[313,5,1,""],check_warnings:[313,5,1,""]},"evennia.server.evennia_launcher":{AMPLauncherProtocol:[314,1,1,""],MsgLauncher2Portal:[314,1,1,""],MsgStatus:[314,1,1,""],check_database:[314,5,1,""],check_main_evennia_dependencies:[314,5,1,""],collectstatic:[314,5,1,""],create_game_directory:[314,5,1,""],create_secret_key:[314,5,1,""],create_settings_file:[314,5,1,""],create_superuser:[314,5,1,""],del_pid:[314,5,1,""],error_check_python_modules:[314,5,1,""],evennia_version:[314,5,1,""],get_pid:[314,5,1,""],getenv:[314,5,1,""],init_game_directory:[314,5,1,""],kill:[314,5,1,""],list_settings:[314,5,1,""],main:[314,5,1,""],query_info:[314,5,1,""],query_status:[314,5,1,""],reboot_evennia:[314,5,1,""],reload_evennia:[314,5,1,""],run_connect_wizard:[314,5,1,""],run_custom_commands:[314,5,1,""],run_dummyrunner:[314,5,1,""],run_menu:[314,5,1,""],send_instruction:[314,5,1,""],set_gamedir:[314,5,1,""],show_version_info:[314,5,1,""],start_evennia:[314,5,1,""],start_only_server:[314,5,1,""],start_portal_interactive:[314,5,1,""],start_server_interactive:[314,5,1,""],stop_evennia:[314,5,1,""],stop_server_only:[314,5,1,""],tail_log_files:[314,5,1,""],wait_for_status:[314,5,1,""],wait_for_status_reply:[314,5,1,""]},"evennia.server.evennia_launcher.AMPLauncherProtocol":{__init__:[314,3,1,""],receive_status_from_portal:[314,3,1,""],wait_for_status:[314,3,1,""]},"evennia.server.evennia_launcher.MsgLauncher2Portal":{allErrors:[314,4,1,""],arguments:[314,4,1,""],commandName:[314,4,1,""],errors:[314,4,1,""],key:[314,4,1,""],response:[314,4,1,""],reverseErrors:[314,4,1,""]},"evennia.server.evennia_launcher.MsgStatus":{allErrors:[314,4,1,""],arguments:[314,4,1,""],commandName:[314,4,1,""],errors:[314,4,1,""],key:[314,4,1,""],response:[314,4,1,""],reverseErrors:[314,4,1,""]},"evennia.server.game_index_client":{client:[316,0,0,"-"],service:[317,0,0,"-"]},"evennia.server.game_index_client.client":{EvenniaGameIndexClient:[316,1,1,""],QuietHTTP11ClientFactory:[316,1,1,""],SimpleResponseReceiver:[316,1,1,""],StringProducer:[316,1,1,""]},"evennia.server.game_index_client.client.EvenniaGameIndexClient":{__init__:[316,3,1,""],handle_egd_response:[316,3,1,""],send_game_details:[316,3,1,""]},"evennia.server.game_index_client.client.QuietHTTP11ClientFactory":{noisy:[316,4,1,""]},"evennia.server.game_index_client.client.SimpleResponseReceiver":{__init__:[316,3,1,""],connectionLost:[316,3,1,""],dataReceived:[316,3,1,""]},"evennia.server.game_index_client.client.StringProducer":{__init__:[316,3,1,""],pauseProducing:[316,3,1,""],startProducing:[316,3,1,""],stopProducing:[316,3,1,""]},"evennia.server.game_index_client.service":{EvenniaGameIndexService:[317,1,1,""]},"evennia.server.game_index_client.service.EvenniaGameIndexService":{__init__:[317,3,1,""],name:[317,4,1,""],startService:[317,3,1,""],stopService:[317,3,1,""]},"evennia.server.initial_setup":{at_initial_setup:[318,5,1,""],collectstatic:[318,5,1,""],create_objects:[318,5,1,""],handle_setup:[318,5,1,""],reset_server:[318,5,1,""]},"evennia.server.inputfuncs":{"default":[319,5,1,""],bot_data_in:[319,5,1,""],client_gui:[319,5,1,""],client_options:[319,5,1,""],echo:[319,5,1,""],external_discord_hello:[319,5,1,""],get_client_options:[319,5,1,""],get_inputfuncs:[319,5,1,""],get_value:[319,5,1,""],hello:[319,5,1,""],login:[319,5,1,""],monitor:[319,5,1,""],monitored:[319,5,1,""],msdp_list:[319,5,1,""],msdp_report:[319,5,1,""],msdp_send:[319,5,1,""],msdp_unreport:[319,5,1,""],repeat:[319,5,1,""],supports_set:[319,5,1,""],text:[319,5,1,""],unmonitor:[319,5,1,""],unrepeat:[319,5,1,""],webclient_options:[319,5,1,""]},"evennia.server.manager":{ServerConfigManager:[320,1,1,""]},"evennia.server.manager.ServerConfigManager":{conf:[320,3,1,""]},"evennia.server.models":{ServerConfig:[321,1,1,""]},"evennia.server.models.ServerConfig":{DoesNotExist:[321,2,1,""],MultipleObjectsReturned:[321,2,1,""],db_key:[321,4,1,""],db_value:[321,4,1,""],id:[321,4,1,""],key:[321,3,1,""],objects:[321,4,1,""],path:[321,4,1,""],store:[321,3,1,""],typename:[321,4,1,""],value:[321,3,1,""]},"evennia.server.portal":{amp:[323,0,0,"-"],amp_server:[324,0,0,"-"],grapevine:[325,0,0,"-"],irc:[326,0,0,"-"],mccp:[327,0,0,"-"],mssp:[328,0,0,"-"],mxp:[329,0,0,"-"],naws:[330,0,0,"-"],portal:[331,0,0,"-"],portalsessionhandler:[332,0,0,"-"],rss:[333,0,0,"-"],ssh:[334,0,0,"-"],ssl:[335,0,0,"-"],suppress_ga:[336,0,0,"-"],telnet:[337,0,0,"-"],telnet_oob:[338,0,0,"-"],telnet_ssl:[339,0,0,"-"],tests:[340,0,0,"-"],ttype:[341,0,0,"-"],webclient:[342,0,0,"-"],webclient_ajax:[343,0,0,"-"]},"evennia.server.portal.amp":{AMPMultiConnectionProtocol:[323,1,1,""],AdminPortal2Server:[323,1,1,""],AdminServer2Portal:[323,1,1,""],Compressed:[323,1,1,""],FunctionCall:[323,1,1,""],MsgLauncher2Portal:[323,1,1,""],MsgPortal2Server:[323,1,1,""],MsgServer2Portal:[323,1,1,""],MsgStatus:[323,1,1,""],dumps:[323,5,1,""],loads:[323,5,1,""]},"evennia.server.portal.amp.AMPMultiConnectionProtocol":{__init__:[323,3,1,""],broadcast:[323,3,1,""],connectionLost:[323,3,1,""],connectionMade:[323,3,1,""],dataReceived:[323,3,1,""],data_in:[323,3,1,""],errback:[323,3,1,""],makeConnection:[323,3,1,""],receive_functioncall:[323,3,1,""],send_FunctionCall:[323,3,1,""]},"evennia.server.portal.amp.AdminPortal2Server":{allErrors:[323,4,1,""],arguments:[323,4,1,""],commandName:[323,4,1,""],errors:[323,4,1,""],key:[323,4,1,""],response:[323,4,1,""],reverseErrors:[323,4,1,""]},"evennia.server.portal.amp.AdminServer2Portal":{allErrors:[323,4,1,""],arguments:[323,4,1,""],commandName:[323,4,1,""],errors:[323,4,1,""],key:[323,4,1,""],response:[323,4,1,""],reverseErrors:[323,4,1,""]},"evennia.server.portal.amp.Compressed":{fromBox:[323,3,1,""],fromString:[323,3,1,""],toBox:[323,3,1,""],toString:[323,3,1,""]},"evennia.server.portal.amp.FunctionCall":{allErrors:[323,4,1,""],arguments:[323,4,1,""],commandName:[323,4,1,""],errors:[323,4,1,""],key:[323,4,1,""],response:[323,4,1,""],reverseErrors:[323,4,1,""]},"evennia.server.portal.amp.MsgLauncher2Portal":{allErrors:[323,4,1,""],arguments:[323,4,1,""],commandName:[323,4,1,""],errors:[323,4,1,""],key:[323,4,1,""],response:[323,4,1,""],reverseErrors:[323,4,1,""]},"evennia.server.portal.amp.MsgPortal2Server":{allErrors:[323,4,1,""],arguments:[323,4,1,""],commandName:[323,4,1,""],errors:[323,4,1,""],key:[323,4,1,""],response:[323,4,1,""],reverseErrors:[323,4,1,""]},"evennia.server.portal.amp.MsgServer2Portal":{allErrors:[323,4,1,""],arguments:[323,4,1,""],commandName:[323,4,1,""],errors:[323,4,1,""],key:[323,4,1,""],response:[323,4,1,""],reverseErrors:[323,4,1,""]},"evennia.server.portal.amp.MsgStatus":{allErrors:[323,4,1,""],arguments:[323,4,1,""],commandName:[323,4,1,""],errors:[323,4,1,""],key:[323,4,1,""],response:[323,4,1,""],reverseErrors:[323,4,1,""]},"evennia.server.portal.amp_server":{AMPServerFactory:[324,1,1,""],AMPServerProtocol:[324,1,1,""],getenv:[324,5,1,""]},"evennia.server.portal.amp_server.AMPServerFactory":{__init__:[324,3,1,""],buildProtocol:[324,3,1,""],logPrefix:[324,3,1,""],noisy:[324,4,1,""]},"evennia.server.portal.amp_server.AMPServerProtocol":{connectionLost:[324,3,1,""],data_to_server:[324,3,1,""],get_status:[324,3,1,""],portal_receive_adminserver2portal:[324,3,1,""],portal_receive_launcher2portal:[324,3,1,""],portal_receive_server2portal:[324,3,1,""],portal_receive_status:[324,3,1,""],send_AdminPortal2Server:[324,3,1,""],send_MsgPortal2Server:[324,3,1,""],send_Status2Launcher:[324,3,1,""],start_server:[324,3,1,""],stop_server:[324,3,1,""],wait_for_disconnect:[324,3,1,""],wait_for_server_connect:[324,3,1,""]},"evennia.server.portal.grapevine":{GrapevineClient:[325,1,1,""],RestartingWebsocketServerFactory:[325,1,1,""]},"evennia.server.portal.grapevine.GrapevineClient":{__init__:[325,3,1,""],at_login:[325,3,1,""],data_in:[325,3,1,""],disconnect:[325,3,1,""],onClose:[325,3,1,""],onMessage:[325,3,1,""],onOpen:[325,3,1,""],send_authenticate:[325,3,1,""],send_channel:[325,3,1,""],send_default:[325,3,1,""],send_heartbeat:[325,3,1,""],send_subscribe:[325,3,1,""],send_unsubscribe:[325,3,1,""]},"evennia.server.portal.grapevine.RestartingWebsocketServerFactory":{__init__:[325,3,1,""],buildProtocol:[325,3,1,""],clientConnectionFailed:[325,3,1,""],clientConnectionLost:[325,3,1,""],factor:[325,4,1,""],initialDelay:[325,4,1,""],maxDelay:[325,4,1,""],reconnect:[325,3,1,""],start:[325,3,1,""],startedConnecting:[325,3,1,""]},"evennia.server.portal.irc":{IRCBot:[326,1,1,""],IRCBotFactory:[326,1,1,""],parse_ansi_to_irc:[326,5,1,""],parse_irc_to_ansi:[326,5,1,""]},"evennia.server.portal.irc.IRCBot":{action:[326,3,1,""],at_login:[326,3,1,""],channel:[326,4,1,""],data_in:[326,3,1,""],disconnect:[326,3,1,""],factory:[326,4,1,""],get_nicklist:[326,3,1,""],irc_RPL_ENDOFNAMES:[326,3,1,""],irc_RPL_NAMREPLY:[326,3,1,""],lineRate:[326,4,1,""],logger:[326,4,1,""],nickname:[326,4,1,""],pong:[326,3,1,""],privmsg:[326,3,1,""],send_channel:[326,3,1,""],send_default:[326,3,1,""],send_ping:[326,3,1,""],send_privmsg:[326,3,1,""],send_reconnect:[326,3,1,""],send_request_nicklist:[326,3,1,""],signedOn:[326,3,1,""],sourceURL:[326,4,1,""]},"evennia.server.portal.irc.IRCBotFactory":{__init__:[326,3,1,""],buildProtocol:[326,3,1,""],clientConnectionFailed:[326,3,1,""],clientConnectionLost:[326,3,1,""],factor:[326,4,1,""],initialDelay:[326,4,1,""],maxDelay:[326,4,1,""],reconnect:[326,3,1,""],start:[326,3,1,""],startedConnecting:[326,3,1,""]},"evennia.server.portal.mccp":{Mccp:[327,1,1,""],mccp_compress:[327,5,1,""]},"evennia.server.portal.mccp.Mccp":{__init__:[327,3,1,""],do_mccp:[327,3,1,""],no_mccp:[327,3,1,""]},"evennia.server.portal.mssp":{Mssp:[328,1,1,""]},"evennia.server.portal.mssp.Mssp":{__init__:[328,3,1,""],do_mssp:[328,3,1,""],get_player_count:[328,3,1,""],get_uptime:[328,3,1,""],no_mssp:[328,3,1,""]},"evennia.server.portal.mxp":{Mxp:[329,1,1,""],mxp_parse:[329,5,1,""]},"evennia.server.portal.mxp.Mxp":{__init__:[329,3,1,""],do_mxp:[329,3,1,""],no_mxp:[329,3,1,""]},"evennia.server.portal.naws":{Naws:[330,1,1,""]},"evennia.server.portal.naws.Naws":{__init__:[330,3,1,""],do_naws:[330,3,1,""],negotiate_sizes:[330,3,1,""],no_naws:[330,3,1,""]},"evennia.server.portal.portal":{Portal:[331,1,1,""],Websocket:[331,1,1,""]},"evennia.server.portal.portal.Portal":{__init__:[331,3,1,""],get_info_dict:[331,3,1,""],shutdown:[331,3,1,""]},"evennia.server.portal.portalsessionhandler":{PortalSessionHandler:[332,1,1,""]},"evennia.server.portal.portalsessionhandler.PortalSessionHandler":{__init__:[332,3,1,""],announce_all:[332,3,1,""],at_server_connection:[332,3,1,""],connect:[332,3,1,""],count_loggedin:[332,3,1,""],data_in:[332,3,1,""],data_out:[332,3,1,""],disconnect:[332,3,1,""],disconnect_all:[332,3,1,""],generate_sessid:[332,3,1,""],server_connect:[332,3,1,""],server_disconnect:[332,3,1,""],server_disconnect_all:[332,3,1,""],server_logged_in:[332,3,1,""],server_session_sync:[332,3,1,""],sessions_from_csessid:[332,3,1,""],sync:[332,3,1,""]},"evennia.server.portal.rss":{RSSBotFactory:[333,1,1,""],RSSReader:[333,1,1,""]},"evennia.server.portal.rss.RSSBotFactory":{__init__:[333,3,1,""],start:[333,3,1,""]},"evennia.server.portal.rss.RSSReader":{__init__:[333,3,1,""],data_in:[333,3,1,""],disconnect:[333,3,1,""],get_new:[333,3,1,""],update:[333,3,1,""]},"evennia.server.portal.ssh":{AccountDBPasswordChecker:[334,1,1,""],ExtraInfoAuthServer:[334,1,1,""],PassAvatarIdTerminalRealm:[334,1,1,""],SSHServerFactory:[334,1,1,""],SshProtocol:[334,1,1,""],TerminalSessionTransport_getPeer:[334,1,1,""],getKeyPair:[334,5,1,""],makeFactory:[334,5,1,""]},"evennia.server.portal.ssh.AccountDBPasswordChecker":{__init__:[334,3,1,""],credentialInterfaces:[334,4,1,""],noisy:[334,4,1,""],requestAvatarId:[334,3,1,""]},"evennia.server.portal.ssh.ExtraInfoAuthServer":{auth_password:[334,3,1,""],noisy:[334,4,1,""]},"evennia.server.portal.ssh.PassAvatarIdTerminalRealm":{noisy:[334,4,1,""]},"evennia.server.portal.ssh.SSHServerFactory":{logPrefix:[334,3,1,""],noisy:[334,4,1,""]},"evennia.server.portal.ssh.SshProtocol":{__init__:[334,3,1,""],at_login:[334,3,1,""],connectionLost:[334,3,1,""],connectionMade:[334,3,1,""],data_out:[334,3,1,""],disconnect:[334,3,1,""],getClientAddress:[334,3,1,""],handle_EOF:[334,3,1,""],handle_FF:[334,3,1,""],handle_INT:[334,3,1,""],handle_QUIT:[334,3,1,""],lineReceived:[334,3,1,""],noisy:[334,4,1,""],sendLine:[334,3,1,""],send_default:[334,3,1,""],send_prompt:[334,3,1,""],send_text:[334,3,1,""],terminalSize:[334,3,1,""]},"evennia.server.portal.ssh.TerminalSessionTransport_getPeer":{__init__:[334,3,1,""],noisy:[334,4,1,""]},"evennia.server.portal.ssl":{SSLProtocol:[335,1,1,""],getSSLContext:[335,5,1,""],verify_SSL_key_and_cert:[335,5,1,""]},"evennia.server.portal.ssl.SSLProtocol":{__init__:[335,3,1,""]},"evennia.server.portal.suppress_ga":{SuppressGA:[336,1,1,""]},"evennia.server.portal.suppress_ga.SuppressGA":{__init__:[336,3,1,""],will_suppress_ga:[336,3,1,""],wont_suppress_ga:[336,3,1,""]},"evennia.server.portal.telnet":{TelnetProtocol:[337,1,1,""],TelnetServerFactory:[337,1,1,""]},"evennia.server.portal.telnet.TelnetProtocol":{__init__:[337,3,1,""],applicationDataReceived:[337,3,1,""],at_login:[337,3,1,""],connectionLost:[337,3,1,""],connectionMade:[337,3,1,""],dataReceived:[337,3,1,""],data_in:[337,3,1,""],data_out:[337,3,1,""],disableLocal:[337,3,1,""],disableRemote:[337,3,1,""],disconnect:[337,3,1,""],enableLocal:[337,3,1,""],enableRemote:[337,3,1,""],handshake_done:[337,3,1,""],sendLine:[337,3,1,""],send_default:[337,3,1,""],send_prompt:[337,3,1,""],send_text:[337,3,1,""],toggle_nop_keepalive:[337,3,1,""]},"evennia.server.portal.telnet.TelnetServerFactory":{logPrefix:[337,3,1,""],noisy:[337,4,1,""]},"evennia.server.portal.telnet_oob":{TelnetOOB:[338,1,1,""]},"evennia.server.portal.telnet_oob.TelnetOOB":{__init__:[338,3,1,""],data_out:[338,3,1,""],decode_gmcp:[338,3,1,""],decode_msdp:[338,3,1,""],do_gmcp:[338,3,1,""],do_msdp:[338,3,1,""],encode_gmcp:[338,3,1,""],encode_msdp:[338,3,1,""],no_gmcp:[338,3,1,""],no_msdp:[338,3,1,""]},"evennia.server.portal.telnet_ssl":{SSLProtocol:[339,1,1,""],getSSLContext:[339,5,1,""],verify_or_create_SSL_key_and_cert:[339,5,1,""]},"evennia.server.portal.telnet_ssl.SSLProtocol":{__init__:[339,3,1,""]},"evennia.server.portal.tests":{TestAMPServer:[340,1,1,""],TestIRC:[340,1,1,""],TestTelnet:[340,1,1,""],TestWebSocket:[340,1,1,""]},"evennia.server.portal.tests.TestAMPServer":{setUp:[340,3,1,""],test_amp_in:[340,3,1,""],test_amp_out:[340,3,1,""],test_large_msg:[340,3,1,""]},"evennia.server.portal.tests.TestIRC":{test_bold:[340,3,1,""],test_colors:[340,3,1,""],test_identity:[340,3,1,""],test_italic:[340,3,1,""],test_plain_ansi:[340,3,1,""]},"evennia.server.portal.tests.TestTelnet":{setUp:[340,3,1,""],test_mudlet_ttype:[340,3,1,""]},"evennia.server.portal.tests.TestWebSocket":{setUp:[340,3,1,""],tearDown:[340,3,1,""],test_data_in:[340,3,1,""],test_data_out:[340,3,1,""]},"evennia.server.portal.ttype":{Ttype:[341,1,1,""]},"evennia.server.portal.ttype.Ttype":{__init__:[341,3,1,""],will_ttype:[341,3,1,""],wont_ttype:[341,3,1,""]},"evennia.server.portal.webclient":{WebSocketClient:[342,1,1,""]},"evennia.server.portal.webclient.WebSocketClient":{__init__:[342,3,1,""],at_login:[342,3,1,""],data_in:[342,3,1,""],disconnect:[342,3,1,""],get_client_session:[342,3,1,""],nonce:[342,4,1,""],onClose:[342,3,1,""],onMessage:[342,3,1,""],onOpen:[342,3,1,""],sendLine:[342,3,1,""],send_default:[342,3,1,""],send_prompt:[342,3,1,""],send_text:[342,3,1,""]},"evennia.server.portal.webclient_ajax":{AjaxWebClient:[343,1,1,""],AjaxWebClientSession:[343,1,1,""],LazyEncoder:[343,1,1,""],jsonify:[343,5,1,""]},"evennia.server.portal.webclient_ajax.AjaxWebClient":{__init__:[343,3,1,""],allowedMethods:[343,4,1,""],at_login:[343,3,1,""],client_disconnect:[343,3,1,""],get_browserstr:[343,3,1,""],get_client_sessid:[343,3,1,""],isLeaf:[343,4,1,""],lineSend:[343,3,1,""],mode_close:[343,3,1,""],mode_init:[343,3,1,""],mode_input:[343,3,1,""],mode_keepalive:[343,3,1,""],mode_receive:[343,3,1,""],render_POST:[343,3,1,""]},"evennia.server.portal.webclient_ajax.AjaxWebClientSession":{__init__:[343,3,1,""],at_login:[343,3,1,""],data_in:[343,3,1,""],data_out:[343,3,1,""],disconnect:[343,3,1,""],get_client_session:[343,3,1,""],send_default:[343,3,1,""],send_prompt:[343,3,1,""],send_text:[343,3,1,""]},"evennia.server.portal.webclient_ajax.LazyEncoder":{"default":[343,3,1,""]},"evennia.server.profiling":{dummyrunner:[345,0,0,"-"],dummyrunner_settings:[346,0,0,"-"],memplot:[347,0,0,"-"],settings_mixin:[348,0,0,"-"],test_queries:[349,0,0,"-"],tests:[350,0,0,"-"],timetrace:[351,0,0,"-"]},"evennia.server.profiling.dummyrunner":{CmdDummyRunnerEchoResponse:[345,1,1,""],DummyClient:[345,1,1,""],DummyFactory:[345,1,1,""],DummyRunnerCmdSet:[345,1,1,""],gidcounter:[345,5,1,""],idcounter:[345,5,1,""],makeiter:[345,5,1,""],start_all_dummy_clients:[345,5,1,""]},"evennia.server.profiling.dummyrunner.CmdDummyRunnerEchoResponse":{aliases:[345,4,1,""],func:[345,3,1,""],help_category:[345,4,1,""],key:[345,4,1,""],lock_storage:[345,4,1,""],search_index_entry:[345,4,1,""]},"evennia.server.profiling.dummyrunner.DummyClient":{connectionLost:[345,3,1,""],connectionMade:[345,3,1,""],counter:[345,3,1,""],dataReceived:[345,3,1,""],error:[345,3,1,""],logout:[345,3,1,""],report:[345,3,1,""],step:[345,3,1,""]},"evennia.server.profiling.dummyrunner.DummyFactory":{__init__:[345,3,1,""],initialDelay:[345,4,1,""],maxDelay:[345,4,1,""],noisy:[345,4,1,""],protocol:[345,4,1,""]},"evennia.server.profiling.dummyrunner.DummyRunnerCmdSet":{at_cmdset_creation:[345,3,1,""],path:[345,4,1,""]},"evennia.server.profiling.dummyrunner_settings":{c_creates_button:[346,5,1,""],c_creates_obj:[346,5,1,""],c_digs:[346,5,1,""],c_examines:[346,5,1,""],c_help:[346,5,1,""],c_idles:[346,5,1,""],c_login:[346,5,1,""],c_login_nodig:[346,5,1,""],c_logout:[346,5,1,""],c_looks:[346,5,1,""],c_measure_lag:[346,5,1,""],c_moves:[346,5,1,""],c_moves_n:[346,5,1,""],c_moves_s:[346,5,1,""],c_socialize:[346,5,1,""]},"evennia.server.profiling.memplot":{Memplot:[347,1,1,""]},"evennia.server.profiling.memplot.Memplot":{DoesNotExist:[347,2,1,""],MultipleObjectsReturned:[347,2,1,""],at_repeat:[347,3,1,""],at_script_creation:[347,3,1,""],path:[347,4,1,""],typename:[347,4,1,""]},"evennia.server.profiling.test_queries":{count_queries:[349,5,1,""]},"evennia.server.profiling.tests":{TestDummyrunnerSettings:[350,1,1,""],TestMemPlot:[350,1,1,""]},"evennia.server.profiling.tests.TestDummyrunnerSettings":{clear_client_lists:[350,3,1,""],perception_method_tests:[350,3,1,""],setUp:[350,3,1,""],test_c_creates_button:[350,3,1,""],test_c_creates_obj:[350,3,1,""],test_c_digs:[350,3,1,""],test_c_examines:[350,3,1,""],test_c_help:[350,3,1,""],test_c_login:[350,3,1,""],test_c_login_no_dig:[350,3,1,""],test_c_logout:[350,3,1,""],test_c_looks:[350,3,1,""],test_c_move_n:[350,3,1,""],test_c_move_s:[350,3,1,""],test_c_moves:[350,3,1,""],test_c_socialize:[350,3,1,""],test_idles:[350,3,1,""]},"evennia.server.profiling.tests.TestMemPlot":{test_memplot:[350,3,1,""]},"evennia.server.profiling.timetrace":{timetrace:[351,5,1,""]},"evennia.server.server":{Evennia:[352,1,1,""]},"evennia.server.server.Evennia":{__init__:[352,3,1,""],at_post_portal_sync:[352,3,1,""],at_server_cold_start:[352,3,1,""],at_server_cold_stop:[352,3,1,""],at_server_reload_start:[352,3,1,""],at_server_reload_stop:[352,3,1,""],at_server_start:[352,3,1,""],at_server_stop:[352,3,1,""],create_default_channels:[352,3,1,""],get_info_dict:[352,3,1,""],run_init_hooks:[352,3,1,""],run_initial_setup:[352,3,1,""],shutdown:[352,3,1,""],sqlite3_prep:[352,3,1,""],update_defaults:[352,3,1,""]},"evennia.server.serversession":{ServerSession:[353,1,1,""]},"evennia.server.serversession.ServerSession":{__init__:[353,3,1,""],access:[353,3,1,""],at_cmdset_get:[353,3,1,""],at_disconnect:[353,3,1,""],at_login:[353,3,1,""],at_sync:[353,3,1,""],attributes:[353,4,1,""],cmdset_storage:[353,3,1,""],data_in:[353,3,1,""],data_out:[353,3,1,""],db:[353,3,1,""],execute_cmd:[353,3,1,""],get_account:[353,3,1,""],get_character:[353,3,1,""],get_client_size:[353,3,1,""],get_puppet:[353,3,1,""],get_puppet_or_account:[353,3,1,""],id:[353,3,1,""],log:[353,3,1,""],msg:[353,3,1,""],nattributes:[353,4,1,""],ndb:[353,3,1,""],ndb_del:[353,3,1,""],ndb_get:[353,3,1,""],ndb_set:[353,3,1,""],update_flags:[353,3,1,""],update_session_counters:[353,3,1,""]},"evennia.server.session":{Session:[354,1,1,""]},"evennia.server.session.Session":{at_sync:[354,3,1,""],data_in:[354,3,1,""],data_out:[354,3,1,""],disconnect:[354,3,1,""],get_sync_data:[354,3,1,""],init_session:[354,3,1,""],load_sync_data:[354,3,1,""]},"evennia.server.sessionhandler":{DummySession:[355,1,1,""],ServerSessionHandler:[355,1,1,""],SessionHandler:[355,1,1,""],delayed_import:[355,5,1,""]},"evennia.server.sessionhandler.DummySession":{sessid:[355,4,1,""]},"evennia.server.sessionhandler.ServerSessionHandler":{__init__:[355,3,1,""],account_count:[355,3,1,""],all_connected_accounts:[355,3,1,""],all_sessions_portal_sync:[355,3,1,""],announce_all:[355,3,1,""],call_inputfuncs:[355,3,1,""],data_in:[355,3,1,""],data_out:[355,3,1,""],disconnect:[355,3,1,""],disconnect_all_sessions:[355,3,1,""],disconnect_duplicate_sessions:[355,3,1,""],get_inputfuncs:[355,3,1,""],login:[355,3,1,""],portal_connect:[355,3,1,""],portal_disconnect:[355,3,1,""],portal_disconnect_all:[355,3,1,""],portal_reset_server:[355,3,1,""],portal_restart_server:[355,3,1,""],portal_session_sync:[355,3,1,""],portal_sessions_sync:[355,3,1,""],portal_shutdown:[355,3,1,""],session_from_account:[355,3,1,""],session_from_sessid:[355,3,1,""],session_portal_partial_sync:[355,3,1,""],session_portal_sync:[355,3,1,""],sessions_from_account:[355,3,1,""],sessions_from_character:[355,3,1,""],sessions_from_csessid:[355,3,1,""],sessions_from_puppet:[355,3,1,""],start_bot_session:[355,3,1,""],validate_sessions:[355,3,1,""]},"evennia.server.sessionhandler.SessionHandler":{clean_senddata:[355,3,1,""],get:[355,3,1,""],get_all_sync_data:[355,3,1,""],get_sessions:[355,3,1,""]},"evennia.server.throttle":{Throttle:[357,1,1,""]},"evennia.server.throttle.Throttle":{__init__:[357,3,1,""],check:[357,3,1,""],error_msg:[357,4,1,""],get:[357,3,1,""],get_cache_key:[357,3,1,""],record_ip:[357,3,1,""],remove:[357,3,1,""],touch:[357,3,1,""],unrecord_ip:[357,3,1,""],update:[357,3,1,""]},"evennia.server.validators":{EvenniaPasswordValidator:[358,1,1,""],EvenniaUsernameAvailabilityValidator:[358,1,1,""]},"evennia.server.validators.EvenniaPasswordValidator":{__init__:[358,3,1,""],get_help_text:[358,3,1,""],validate:[358,3,1,""]},"evennia.server.webserver":{DjangoWebRoot:[359,1,1,""],EvenniaReverseProxyResource:[359,1,1,""],HTTPChannelWithXForwardedFor:[359,1,1,""],LockableThreadPool:[359,1,1,""],PrivateStaticRoot:[359,1,1,""],WSGIWebServer:[359,1,1,""],Website:[359,1,1,""]},"evennia.server.webserver.DjangoWebRoot":{__init__:[359,3,1,""],empty_threadpool:[359,3,1,""],getChild:[359,3,1,""]},"evennia.server.webserver.EvenniaReverseProxyResource":{getChild:[359,3,1,""],render:[359,3,1,""]},"evennia.server.webserver.HTTPChannelWithXForwardedFor":{allHeadersReceived:[359,3,1,""]},"evennia.server.webserver.LockableThreadPool":{__init__:[359,3,1,""],callInThread:[359,3,1,""],lock:[359,3,1,""]},"evennia.server.webserver.PrivateStaticRoot":{directoryListing:[359,3,1,""]},"evennia.server.webserver.WSGIWebServer":{__init__:[359,3,1,""],startService:[359,3,1,""],stopService:[359,3,1,""]},"evennia.server.webserver.Website":{log:[359,3,1,""],logPrefix:[359,3,1,""],noisy:[359,4,1,""]},"evennia.typeclasses":{attributes:[362,0,0,"-"],managers:[363,0,0,"-"],models:[364,0,0,"-"],tags:[365,0,0,"-"]},"evennia.typeclasses.attributes":{Attribute:[362,1,1,""],AttributeHandler:[362,1,1,""],AttributeProperty:[362,1,1,""],DbHolder:[362,1,1,""],IAttribute:[362,1,1,""],IAttributeBackend:[362,1,1,""],InMemoryAttribute:[362,1,1,""],InMemoryAttributeBackend:[362,1,1,""],ModelAttributeBackend:[362,1,1,""],NAttributeProperty:[362,1,1,""],NickHandler:[362,1,1,""],NickTemplateInvalid:[362,2,1,""],initialize_nick_templates:[362,5,1,""],parse_nick_template:[362,5,1,""]},"evennia.typeclasses.attributes.Attribute":{DoesNotExist:[362,2,1,""],MultipleObjectsReturned:[362,2,1,""],accountdb_set:[362,4,1,""],attrtype:[362,3,1,""],category:[362,3,1,""],channeldb_set:[362,4,1,""],date_created:[362,3,1,""],db_attrtype:[362,4,1,""],db_category:[362,4,1,""],db_date_created:[362,4,1,""],db_key:[362,4,1,""],db_lock_storage:[362,4,1,""],db_model:[362,4,1,""],db_strvalue:[362,4,1,""],db_value:[362,4,1,""],get_next_by_db_date_created:[362,3,1,""],get_previous_by_db_date_created:[362,3,1,""],id:[362,4,1,""],key:[362,3,1,""],lock_storage:[362,3,1,""],model:[362,3,1,""],objectdb_set:[362,4,1,""],path:[362,4,1,""],scriptdb_set:[362,4,1,""],strvalue:[362,3,1,""],typename:[362,4,1,""],value:[362,3,1,""]},"evennia.typeclasses.attributes.AttributeHandler":{__init__:[362,3,1,""],add:[362,3,1,""],all:[362,3,1,""],batch_add:[362,3,1,""],clear:[362,3,1,""],get:[362,3,1,""],has:[362,3,1,""],remove:[362,3,1,""],reset_cache:[362,3,1,""]},"evennia.typeclasses.attributes.AttributeProperty":{__init__:[362,3,1,""],attrhandler_name:[362,4,1,""]},"evennia.typeclasses.attributes.DbHolder":{__init__:[362,3,1,""],all:[362,3,1,""],get_all:[362,3,1,""]},"evennia.typeclasses.attributes.IAttribute":{access:[362,3,1,""],attrtype:[362,3,1,""],category:[362,3,1,""],date_created:[362,3,1,""],key:[362,3,1,""],lock_storage:[362,3,1,""],locks:[362,4,1,""],model:[362,3,1,""],strvalue:[362,3,1,""]},"evennia.typeclasses.attributes.IAttributeBackend":{__init__:[362,3,1,""],batch_add:[362,3,1,""],clear_attributes:[362,3,1,""],create_attribute:[362,3,1,""],delete_attribute:[362,3,1,""],do_batch_delete:[362,3,1,""],do_batch_finish:[362,3,1,""],do_batch_update_attribute:[362,3,1,""],do_create_attribute:[362,3,1,""],do_delete_attribute:[362,3,1,""],do_update_attribute:[362,3,1,""],get:[362,3,1,""],get_all_attributes:[362,3,1,""],query_all:[362,3,1,""],query_category:[362,3,1,""],query_key:[362,3,1,""],reset_cache:[362,3,1,""],update_attribute:[362,3,1,""]},"evennia.typeclasses.attributes.InMemoryAttribute":{__init__:[362,3,1,""],value:[362,3,1,""]},"evennia.typeclasses.attributes.InMemoryAttributeBackend":{__init__:[362,3,1,""],do_batch_finish:[362,3,1,""],do_batch_update_attribute:[362,3,1,""],do_create_attribute:[362,3,1,""],do_delete_attribute:[362,3,1,""],do_update_attribute:[362,3,1,""],query_all:[362,3,1,""],query_category:[362,3,1,""],query_key:[362,3,1,""]},"evennia.typeclasses.attributes.ModelAttributeBackend":{__init__:[362,3,1,""],do_batch_finish:[362,3,1,""],do_batch_update_attribute:[362,3,1,""],do_create_attribute:[362,3,1,""],do_delete_attribute:[362,3,1,""],do_update_attribute:[362,3,1,""],query_all:[362,3,1,""],query_category:[362,3,1,""],query_key:[362,3,1,""]},"evennia.typeclasses.attributes.NAttributeProperty":{attrhandler_name:[362,4,1,""]},"evennia.typeclasses.attributes.NickHandler":{__init__:[362,3,1,""],add:[362,3,1,""],get:[362,3,1,""],has:[362,3,1,""],nickreplace:[362,3,1,""],remove:[362,3,1,""]},"evennia.typeclasses.managers":{TypedObjectManager:[363,1,1,""]},"evennia.typeclasses.managers.TypedObjectManager":{create_tag:[363,3,1,""],dbref:[363,3,1,""],dbref_search:[363,3,1,""],get_alias:[363,3,1,""],get_attribute:[363,3,1,""],get_by_alias:[363,3,1,""],get_by_attribute:[363,3,1,""],get_by_nick:[363,3,1,""],get_by_permission:[363,3,1,""],get_by_tag:[363,3,1,""],get_dbref_range:[363,3,1,""],get_id:[363,3,1,""],get_nick:[363,3,1,""],get_permission:[363,3,1,""],get_tag:[363,3,1,""],get_typeclass_totals:[363,3,1,""],object_totals:[363,3,1,""],typeclass_search:[363,3,1,""]},"evennia.typeclasses.models":{TypedObject:[364,1,1,""]},"evennia.typeclasses.models.TypedObject":{"delete":[364,3,1,""],Meta:[364,1,1,""],__init__:[364,3,1,""],access:[364,3,1,""],aliases:[364,4,1,""],at_idmapper_flush:[364,3,1,""],at_rename:[364,3,1,""],attributes:[364,4,1,""],check_permstring:[364,3,1,""],date_created:[364,3,1,""],db:[364,3,1,""],db_attributes:[364,4,1,""],db_date_created:[364,4,1,""],db_key:[364,4,1,""],db_lock_storage:[364,4,1,""],db_tags:[364,4,1,""],db_typeclass_path:[364,4,1,""],dbid:[364,3,1,""],dbref:[364,3,1,""],get_absolute_url:[364,3,1,""],get_display_name:[364,3,1,""],get_extra_info:[364,3,1,""],get_next_by_db_date_created:[364,3,1,""],get_previous_by_db_date_created:[364,3,1,""],is_typeclass:[364,3,1,""],key:[364,3,1,""],lock_storage:[364,3,1,""],locks:[364,4,1,""],name:[364,3,1,""],nattributes:[364,4,1,""],ndb:[364,3,1,""],objects:[364,4,1,""],path:[364,4,1,""],permissions:[364,4,1,""],search:[364,3,1,""],set_class_from_typeclass:[364,3,1,""],swap_typeclass:[364,3,1,""],tags:[364,4,1,""],typeclass_path:[364,3,1,""],typename:[364,4,1,""],web_get_admin_url:[364,3,1,""],web_get_create_url:[364,3,1,""],web_get_delete_url:[364,3,1,""],web_get_detail_url:[364,3,1,""],web_get_puppet_url:[364,3,1,""],web_get_update_url:[364,3,1,""]},"evennia.typeclasses.models.TypedObject.Meta":{"abstract":[364,4,1,""],ordering:[364,4,1,""],verbose_name:[364,4,1,""]},"evennia.typeclasses.tags":{AliasHandler:[365,1,1,""],PermissionHandler:[365,1,1,""],Tag:[365,1,1,""],TagHandler:[365,1,1,""]},"evennia.typeclasses.tags.PermissionHandler":{check:[365,3,1,""]},"evennia.typeclasses.tags.Tag":{DoesNotExist:[365,2,1,""],MultipleObjectsReturned:[365,2,1,""],accountdb_set:[365,4,1,""],channeldb_set:[365,4,1,""],db_category:[365,4,1,""],db_data:[365,4,1,""],db_key:[365,4,1,""],db_model:[365,4,1,""],db_tagtype:[365,4,1,""],helpentry_set:[365,4,1,""],id:[365,4,1,""],msg_set:[365,4,1,""],objectdb_set:[365,4,1,""],objects:[365,4,1,""],scriptdb_set:[365,4,1,""]},"evennia.typeclasses.tags.TagHandler":{__init__:[365,3,1,""],add:[365,3,1,""],all:[365,3,1,""],batch_add:[365,3,1,""],clear:[365,3,1,""],get:[365,3,1,""],has:[365,3,1,""],remove:[365,3,1,""],reset_cache:[365,3,1,""]},"evennia.utils":{ansi:[367,0,0,"-"],batchprocessors:[368,0,0,"-"],containers:[369,0,0,"-"],create:[370,0,0,"-"],dbserialize:[371,0,0,"-"],eveditor:[372,0,0,"-"],evform:[373,0,0,"-"],evmenu:[374,0,0,"-"],evmore:[375,0,0,"-"],evtable:[376,0,0,"-"],funcparser:[377,0,0,"-"],gametime:[378,0,0,"-"],idmapper:[379,0,0,"-"],logger:[383,0,0,"-"],optionclasses:[384,0,0,"-"],optionhandler:[385,0,0,"-"],picklefield:[386,0,0,"-"],search:[387,0,0,"-"],test_resources:[388,0,0,"-"],text2html:[389,0,0,"-"],utils:[390,0,0,"-"],validatorfuncs:[391,0,0,"-"],verb_conjugation:[392,0,0,"-"]},"evennia.utils.ansi":{ANSIMeta:[367,1,1,""],ANSIParser:[367,1,1,""],ANSIString:[367,1,1,""],parse_ansi:[367,5,1,""],raw:[367,5,1,""],strip_ansi:[367,5,1,""],strip_mxp:[367,5,1,""],strip_raw_ansi:[367,5,1,""],strip_unsafe_tokens:[367,5,1,""]},"evennia.utils.ansi.ANSIMeta":{__init__:[367,3,1,""]},"evennia.utils.ansi.ANSIParser":{ansi_escapes:[367,4,1,""],ansi_map:[367,4,1,""],ansi_map_dict:[367,4,1,""],ansi_re:[367,4,1,""],ansi_regex:[367,4,1,""],ansi_sub:[367,4,1,""],ansi_xterm256_bright_bg_map:[367,4,1,""],ansi_xterm256_bright_bg_map_dict:[367,4,1,""],brightbg_sub:[367,4,1,""],mxp_re:[367,4,1,""],mxp_sub:[367,4,1,""],mxp_url_re:[367,4,1,""],mxp_url_sub:[367,4,1,""],parse_ansi:[367,3,1,""],strip_mxp:[367,3,1,""],strip_raw_codes:[367,3,1,""],strip_unsafe_tokens:[367,3,1,""],sub_ansi:[367,3,1,""],sub_brightbg:[367,3,1,""],sub_xterm256:[367,3,1,""],unsafe_tokens:[367,4,1,""],xterm256_bg:[367,4,1,""],xterm256_bg_sub:[367,4,1,""],xterm256_fg:[367,4,1,""],xterm256_fg_sub:[367,4,1,""],xterm256_gbg:[367,4,1,""],xterm256_gbg_sub:[367,4,1,""],xterm256_gfg:[367,4,1,""],xterm256_gfg_sub:[367,4,1,""]},"evennia.utils.ansi.ANSIString":{__init__:[367,3,1,""],capitalize:[367,3,1,""],center:[367,3,1,""],clean:[367,3,1,""],count:[367,3,1,""],decode:[367,3,1,""],encode:[367,3,1,""],endswith:[367,3,1,""],expandtabs:[367,3,1,""],find:[367,3,1,""],format:[367,3,1,""],index:[367,3,1,""],isalnum:[367,3,1,""],isalpha:[367,3,1,""],isdigit:[367,3,1,""],islower:[367,3,1,""],isspace:[367,3,1,""],istitle:[367,3,1,""],isupper:[367,3,1,""],join:[367,3,1,""],ljust:[367,3,1,""],lower:[367,3,1,""],lstrip:[367,3,1,""],partition:[367,3,1,""],raw:[367,3,1,""],re_format:[367,4,1,""],replace:[367,3,1,""],rfind:[367,3,1,""],rindex:[367,3,1,""],rjust:[367,3,1,""],rsplit:[367,3,1,""],rstrip:[367,3,1,""],split:[367,3,1,""],startswith:[367,3,1,""],strip:[367,3,1,""],swapcase:[367,3,1,""],translate:[367,3,1,""],upper:[367,3,1,""]},"evennia.utils.batchprocessors":{BatchCodeProcessor:[368,1,1,""],BatchCommandProcessor:[368,1,1,""],read_batchfile:[368,5,1,""],tb_filename:[368,5,1,""],tb_iter:[368,5,1,""]},"evennia.utils.batchprocessors.BatchCodeProcessor":{code_exec:[368,3,1,""],parse_file:[368,3,1,""]},"evennia.utils.batchprocessors.BatchCommandProcessor":{parse_file:[368,3,1,""]},"evennia.utils.containers":{Container:[369,1,1,""],GlobalScriptContainer:[369,1,1,""],OptionContainer:[369,1,1,""]},"evennia.utils.containers.Container":{__init__:[369,3,1,""],all:[369,3,1,""],get:[369,3,1,""],load_data:[369,3,1,""],storage_modules:[369,4,1,""]},"evennia.utils.containers.GlobalScriptContainer":{__init__:[369,3,1,""],all:[369,3,1,""],get:[369,3,1,""],load_data:[369,3,1,""],start:[369,3,1,""]},"evennia.utils.containers.OptionContainer":{storage_modules:[369,4,1,""]},"evennia.utils.create":{create_account:[370,5,1,""],create_channel:[370,5,1,""],create_help_entry:[370,5,1,""],create_message:[370,5,1,""],create_object:[370,5,1,""],create_script:[370,5,1,""]},"evennia.utils.dbserialize":{dbserialize:[371,5,1,""],dbunserialize:[371,5,1,""],do_pickle:[371,5,1,""],do_unpickle:[371,5,1,""],from_pickle:[371,5,1,""],to_pickle:[371,5,1,""]},"evennia.utils.eveditor":{CmdEditorBase:[372,1,1,""],CmdEditorGroup:[372,1,1,""],CmdLineInput:[372,1,1,""],CmdSaveYesNo:[372,1,1,""],EvEditor:[372,1,1,""],EvEditorCmdSet:[372,1,1,""],SaveYesNoCmdSet:[372,1,1,""]},"evennia.utils.eveditor.CmdEditorBase":{aliases:[372,4,1,""],editor:[372,4,1,""],help_category:[372,4,1,""],help_entry:[372,4,1,""],key:[372,4,1,""],lock_storage:[372,4,1,""],locks:[372,4,1,""],parse:[372,3,1,""],search_index_entry:[372,4,1,""]},"evennia.utils.eveditor.CmdEditorGroup":{aliases:[372,4,1,""],arg_regex:[372,4,1,""],func:[372,3,1,""],help_category:[372,4,1,""],key:[372,4,1,""],lock_storage:[372,4,1,""],search_index_entry:[372,4,1,""]},"evennia.utils.eveditor.CmdLineInput":{aliases:[372,4,1,""],func:[372,3,1,""],help_category:[372,4,1,""],key:[372,4,1,""],lock_storage:[372,4,1,""],search_index_entry:[372,4,1,""]},"evennia.utils.eveditor.CmdSaveYesNo":{aliases:[372,4,1,""],func:[372,3,1,""],help_category:[372,4,1,""],help_cateogory:[372,4,1,""],key:[372,4,1,""],lock_storage:[372,4,1,""],locks:[372,4,1,""],search_index_entry:[372,4,1,""]},"evennia.utils.eveditor.EvEditor":{__init__:[372,3,1,""],decrease_indent:[372,3,1,""],deduce_indent:[372,3,1,""],display_buffer:[372,3,1,""],display_help:[372,3,1,""],get_buffer:[372,3,1,""],increase_indent:[372,3,1,""],load_buffer:[372,3,1,""],quit:[372,3,1,""],save_buffer:[372,3,1,""],swap_autoindent:[372,3,1,""],update_buffer:[372,3,1,""],update_undo:[372,3,1,""]},"evennia.utils.eveditor.EvEditorCmdSet":{at_cmdset_creation:[372,3,1,""],key:[372,4,1,""],mergetype:[372,4,1,""],path:[372,4,1,""]},"evennia.utils.eveditor.SaveYesNoCmdSet":{at_cmdset_creation:[372,3,1,""],key:[372,4,1,""],mergetype:[372,4,1,""],path:[372,4,1,""],priority:[372,4,1,""]},"evennia.utils.evform":{EvForm:[373,1,1,""]},"evennia.utils.evform.EvForm":{__init__:[373,3,1,""],map:[373,3,1,""],reload:[373,3,1,""]},"evennia.utils.evmenu":{CmdEvMenuNode:[374,1,1,""],CmdGetInput:[374,1,1,""],CmdYesNoQuestion:[374,1,1,""],EvMenu:[374,1,1,""],EvMenuCmdSet:[374,1,1,""],EvMenuError:[374,2,1,""],EvMenuGotoAbortMessage:[374,2,1,""],InputCmdSet:[374,1,1,""],YesNoQuestionCmdSet:[374,1,1,""],ask_yes_no:[374,5,1,""],get_input:[374,5,1,""],list_node:[374,5,1,""],parse_menu_template:[374,5,1,""],template2menu:[374,5,1,""]},"evennia.utils.evmenu.CmdEvMenuNode":{aliases:[374,4,1,""],auto_help_display_key:[374,4,1,""],func:[374,3,1,""],get_help:[374,3,1,""],help_category:[374,4,1,""],key:[374,4,1,""],lock_storage:[374,4,1,""],locks:[374,4,1,""],search_index_entry:[374,4,1,""]},"evennia.utils.evmenu.CmdGetInput":{aliases:[374,4,1,""],func:[374,3,1,""],help_category:[374,4,1,""],key:[374,4,1,""],lock_storage:[374,4,1,""],search_index_entry:[374,4,1,""]},"evennia.utils.evmenu.CmdYesNoQuestion":{aliases:[374,4,1,""],arg_regex:[374,4,1,""],func:[374,3,1,""],help_category:[374,4,1,""],key:[374,4,1,""],lock_storage:[374,4,1,""],search_index_entry:[374,4,1,""]},"evennia.utils.evmenu.EvMenu":{"goto":[374,3,1,""],__init__:[374,3,1,""],close_menu:[374,3,1,""],display_helptext:[374,3,1,""],display_nodetext:[374,3,1,""],extract_goto_exec:[374,3,1,""],helptext_formatter:[374,3,1,""],msg:[374,3,1,""],node_border_char:[374,4,1,""],node_formatter:[374,3,1,""],nodetext_formatter:[374,3,1,""],options_formatter:[374,3,1,""],parse_input:[374,3,1,""],print_debug_info:[374,3,1,""],run_exec:[374,3,1,""],run_exec_then_goto:[374,3,1,""]},"evennia.utils.evmenu.EvMenuCmdSet":{at_cmdset_creation:[374,3,1,""],key:[374,4,1,""],mergetype:[374,4,1,""],no_channels:[374,4,1,""],no_exits:[374,4,1,""],no_objs:[374,4,1,""],path:[374,4,1,""],priority:[374,4,1,""]},"evennia.utils.evmenu.InputCmdSet":{at_cmdset_creation:[374,3,1,""],key:[374,4,1,""],mergetype:[374,4,1,""],no_channels:[374,4,1,""],no_exits:[374,4,1,""],no_objs:[374,4,1,""],path:[374,4,1,""],priority:[374,4,1,""]},"evennia.utils.evmenu.YesNoQuestionCmdSet":{at_cmdset_creation:[374,3,1,""],key:[374,4,1,""],mergetype:[374,4,1,""],no_channels:[374,4,1,""],no_exits:[374,4,1,""],no_objs:[374,4,1,""],path:[374,4,1,""],priority:[374,4,1,""]},"evennia.utils.evmore":{CmdMore:[375,1,1,""],CmdMoreExit:[375,1,1,""],CmdSetMore:[375,1,1,""],EvMore:[375,1,1,""],msg:[375,5,1,""],queryset_maxsize:[375,5,1,""]},"evennia.utils.evmore.CmdMore":{aliases:[375,4,1,""],auto_help:[375,4,1,""],func:[375,3,1,""],help_category:[375,4,1,""],key:[375,4,1,""],lock_storage:[375,4,1,""],search_index_entry:[375,4,1,""]},"evennia.utils.evmore.CmdMoreExit":{aliases:[375,4,1,""],func:[375,3,1,""],help_category:[375,4,1,""],key:[375,4,1,""],lock_storage:[375,4,1,""],search_index_entry:[375,4,1,""]},"evennia.utils.evmore.CmdSetMore":{at_cmdset_creation:[375,3,1,""],key:[375,4,1,""],mergetype:[375,4,1,""],path:[375,4,1,""],priority:[375,4,1,""]},"evennia.utils.evmore.EvMore":{__init__:[375,3,1,""],display:[375,3,1,""],init_django_paginator:[375,3,1,""],init_evtable:[375,3,1,""],init_f_str:[375,3,1,""],init_iterable:[375,3,1,""],init_pages:[375,3,1,""],init_queryset:[375,3,1,""],init_str:[375,3,1,""],page_back:[375,3,1,""],page_end:[375,3,1,""],page_formatter:[375,3,1,""],page_next:[375,3,1,""],page_quit:[375,3,1,""],page_top:[375,3,1,""],paginator:[375,3,1,""],paginator_django:[375,3,1,""],paginator_index:[375,3,1,""],paginator_slice:[375,3,1,""],start:[375,3,1,""]},"evennia.utils.evtable":{ANSITextWrapper:[376,1,1,""],EvCell:[376,1,1,""],EvColumn:[376,1,1,""],EvTable:[376,1,1,""],fill:[376,5,1,""],wrap:[376,5,1,""]},"evennia.utils.evtable.EvCell":{__init__:[376,3,1,""],get:[376,3,1,""],get_height:[376,3,1,""],get_min_height:[376,3,1,""],get_min_width:[376,3,1,""],get_width:[376,3,1,""],reformat:[376,3,1,""],replace_data:[376,3,1,""]},"evennia.utils.evtable.EvColumn":{__init__:[376,3,1,""],add_rows:[376,3,1,""],reformat:[376,3,1,""],reformat_cell:[376,3,1,""]},"evennia.utils.evtable.EvTable":{__init__:[376,3,1,""],add_column:[376,3,1,""],add_header:[376,3,1,""],add_row:[376,3,1,""],get:[376,3,1,""],reformat:[376,3,1,""],reformat_column:[376,3,1,""]},"evennia.utils.funcparser":{FuncParser:[377,1,1,""],ParsingError:[377,2,1,""],funcparser_callable_add:[377,5,1,""],funcparser_callable_center_justify:[377,5,1,""],funcparser_callable_choice:[377,5,1,""],funcparser_callable_clr:[377,5,1,""],funcparser_callable_conjugate:[377,5,1,""],funcparser_callable_crop:[377,5,1,""],funcparser_callable_div:[377,5,1,""],funcparser_callable_eval:[377,5,1,""],funcparser_callable_justify:[377,5,1,""],funcparser_callable_left_justify:[377,5,1,""],funcparser_callable_mult:[377,5,1,""],funcparser_callable_pad:[377,5,1,""],funcparser_callable_pronoun:[377,5,1,""],funcparser_callable_pronoun_capitalize:[377,5,1,""],funcparser_callable_randint:[377,5,1,""],funcparser_callable_random:[377,5,1,""],funcparser_callable_right_justify:[377,5,1,""],funcparser_callable_round:[377,5,1,""],funcparser_callable_search:[377,5,1,""],funcparser_callable_search_list:[377,5,1,""],funcparser_callable_space:[377,5,1,""],funcparser_callable_sub:[377,5,1,""],funcparser_callable_toint:[377,5,1,""],funcparser_callable_you:[377,5,1,""],funcparser_callable_you_capitalize:[377,5,1,""]},"evennia.utils.funcparser.FuncParser":{__init__:[377,3,1,""],execute:[377,3,1,""],parse:[377,3,1,""],parse_to_any:[377,3,1,""],validate_callables:[377,3,1,""]},"evennia.utils.gametime":{TimeScript:[378,1,1,""],game_epoch:[378,5,1,""],gametime:[378,5,1,""],portal_uptime:[378,5,1,""],real_seconds_until:[378,5,1,""],reset_gametime:[378,5,1,""],runtime:[378,5,1,""],schedule:[378,5,1,""],server_epoch:[378,5,1,""],uptime:[378,5,1,""]},"evennia.utils.gametime.TimeScript":{DoesNotExist:[378,2,1,""],MultipleObjectsReturned:[378,2,1,""],at_repeat:[378,3,1,""],at_script_creation:[378,3,1,""],path:[378,4,1,""],typename:[378,4,1,""]},"evennia.utils.idmapper":{manager:[380,0,0,"-"],models:[381,0,0,"-"],tests:[382,0,0,"-"]},"evennia.utils.idmapper.manager":{SharedMemoryManager:[380,1,1,""]},"evennia.utils.idmapper.manager.SharedMemoryManager":{get:[380,3,1,""]},"evennia.utils.idmapper.models":{SharedMemoryModel:[381,1,1,""],SharedMemoryModelBase:[381,1,1,""],WeakSharedMemoryModel:[381,1,1,""],WeakSharedMemoryModelBase:[381,1,1,""],cache_size:[381,5,1,""],conditional_flush:[381,5,1,""],flush_cache:[381,5,1,""],flush_cached_instance:[381,5,1,""],update_cached_instance:[381,5,1,""]},"evennia.utils.idmapper.models.SharedMemoryModel":{"delete":[381,3,1,""],Meta:[381,1,1,""],at_idmapper_flush:[381,3,1,""],cache_instance:[381,3,1,""],flush_cached_instance:[381,3,1,""],flush_from_cache:[381,3,1,""],flush_instance_cache:[381,3,1,""],get_all_cached_instances:[381,3,1,""],get_cached_instance:[381,3,1,""],objects:[381,4,1,""],path:[381,4,1,""],save:[381,3,1,""],typename:[381,4,1,""]},"evennia.utils.idmapper.models.SharedMemoryModel.Meta":{"abstract":[381,4,1,""]},"evennia.utils.idmapper.models.WeakSharedMemoryModel":{Meta:[381,1,1,""],path:[381,4,1,""],typename:[381,4,1,""]},"evennia.utils.idmapper.models.WeakSharedMemoryModel.Meta":{"abstract":[381,4,1,""]},"evennia.utils.idmapper.tests":{Article:[382,1,1,""],Category:[382,1,1,""],RegularArticle:[382,1,1,""],RegularCategory:[382,1,1,""],SharedMemorysTest:[382,1,1,""]},"evennia.utils.idmapper.tests.Article":{DoesNotExist:[382,2,1,""],MultipleObjectsReturned:[382,2,1,""],category2:[382,4,1,""],category2_id:[382,4,1,""],category:[382,4,1,""],category_id:[382,4,1,""],id:[382,4,1,""],name:[382,4,1,""],path:[382,4,1,""],typename:[382,4,1,""]},"evennia.utils.idmapper.tests.Category":{DoesNotExist:[382,2,1,""],MultipleObjectsReturned:[382,2,1,""],article_set:[382,4,1,""],id:[382,4,1,""],name:[382,4,1,""],path:[382,4,1,""],regulararticle_set:[382,4,1,""],typename:[382,4,1,""]},"evennia.utils.idmapper.tests.RegularArticle":{DoesNotExist:[382,2,1,""],MultipleObjectsReturned:[382,2,1,""],category2:[382,4,1,""],category2_id:[382,4,1,""],category:[382,4,1,""],category_id:[382,4,1,""],id:[382,4,1,""],name:[382,4,1,""],objects:[382,4,1,""]},"evennia.utils.idmapper.tests.RegularCategory":{DoesNotExist:[382,2,1,""],MultipleObjectsReturned:[382,2,1,""],article_set:[382,4,1,""],id:[382,4,1,""],name:[382,4,1,""],objects:[382,4,1,""],regulararticle_set:[382,4,1,""]},"evennia.utils.idmapper.tests.SharedMemorysTest":{setUp:[382,3,1,""],testMixedReferences:[382,3,1,""],testObjectDeletion:[382,3,1,""],testRegularReferences:[382,3,1,""],testSharedMemoryReferences:[382,3,1,""]},"evennia.utils.logger":{EvenniaLogFile:[383,1,1,""],PortalLogObserver:[383,1,1,""],ServerLogObserver:[383,1,1,""],WeeklyLogFile:[383,1,1,""],log_dep:[383,5,1,""],log_depmsg:[383,5,1,""],log_err:[383,5,1,""],log_errmsg:[383,5,1,""],log_file:[383,5,1,""],log_file_exists:[383,5,1,""],log_info:[383,5,1,""],log_infomsg:[383,5,1,""],log_msg:[383,5,1,""],log_sec:[383,5,1,""],log_secmsg:[383,5,1,""],log_server:[383,5,1,""],log_trace:[383,5,1,""],log_tracemsg:[383,5,1,""],log_warn:[383,5,1,""],log_warnmsg:[383,5,1,""],rotate_log_file:[383,5,1,""],tail_log_file:[383,5,1,""],timeformat:[383,5,1,""]},"evennia.utils.logger.EvenniaLogFile":{num_lines_to_append:[383,4,1,""],readlines:[383,3,1,""],rotate:[383,3,1,""],seek:[383,3,1,""],settings:[383,4,1,""]},"evennia.utils.logger.PortalLogObserver":{emit:[383,3,1,""],prefix:[383,4,1,""],timeFormat:[383,4,1,""]},"evennia.utils.logger.ServerLogObserver":{prefix:[383,4,1,""]},"evennia.utils.logger.WeeklyLogFile":{__init__:[383,3,1,""],shouldRotate:[383,3,1,""],suffix:[383,3,1,""],write:[383,3,1,""]},"evennia.utils.optionclasses":{BaseOption:[384,1,1,""],Boolean:[384,1,1,""],Color:[384,1,1,""],Datetime:[384,1,1,""],Duration:[384,1,1,""],Email:[384,1,1,""],Future:[384,1,1,""],Lock:[384,1,1,""],PositiveInteger:[384,1,1,""],SignedInteger:[384,1,1,""],Text:[384,1,1,""],Timezone:[384,1,1,""],UnsignedInteger:[384,1,1,""]},"evennia.utils.optionclasses.BaseOption":{"default":[384,3,1,""],__init__:[384,3,1,""],changed:[384,3,1,""],deserialize:[384,3,1,""],display:[384,3,1,""],load:[384,3,1,""],save:[384,3,1,""],serialize:[384,3,1,""],set:[384,3,1,""],validate:[384,3,1,""],value:[384,3,1,""]},"evennia.utils.optionclasses.Boolean":{deserialize:[384,3,1,""],display:[384,3,1,""],serialize:[384,3,1,""],validate:[384,3,1,""]},"evennia.utils.optionclasses.Color":{deserialize:[384,3,1,""],display:[384,3,1,""],validate:[384,3,1,""]},"evennia.utils.optionclasses.Datetime":{deserialize:[384,3,1,""],serialize:[384,3,1,""],validate:[384,3,1,""]},"evennia.utils.optionclasses.Duration":{deserialize:[384,3,1,""],serialize:[384,3,1,""],validate:[384,3,1,""]},"evennia.utils.optionclasses.Email":{deserialize:[384,3,1,""],validate:[384,3,1,""]},"evennia.utils.optionclasses.Future":{validate:[384,3,1,""]},"evennia.utils.optionclasses.Lock":{validate:[384,3,1,""]},"evennia.utils.optionclasses.PositiveInteger":{deserialize:[384,3,1,""],validate:[384,3,1,""]},"evennia.utils.optionclasses.SignedInteger":{deserialize:[384,3,1,""],validate:[384,3,1,""]},"evennia.utils.optionclasses.Text":{deserialize:[384,3,1,""]},"evennia.utils.optionclasses.Timezone":{"default":[384,3,1,""],deserialize:[384,3,1,""],serialize:[384,3,1,""],validate:[384,3,1,""]},"evennia.utils.optionclasses.UnsignedInteger":{deserialize:[384,3,1,""],validate:[384,3,1,""],validator_key:[384,4,1,""]},"evennia.utils.optionhandler":{InMemorySaveHandler:[385,1,1,""],OptionHandler:[385,1,1,""]},"evennia.utils.optionhandler.InMemorySaveHandler":{__init__:[385,3,1,""],add:[385,3,1,""],get:[385,3,1,""]},"evennia.utils.optionhandler.OptionHandler":{__init__:[385,3,1,""],all:[385,3,1,""],get:[385,3,1,""],set:[385,3,1,""]},"evennia.utils.picklefield":{PickledFormField:[386,1,1,""],PickledObject:[386,1,1,""],PickledObjectField:[386,1,1,""],PickledWidget:[386,1,1,""],dbsafe_decode:[386,5,1,""],dbsafe_encode:[386,5,1,""],wrap_conflictual_object:[386,5,1,""]},"evennia.utils.picklefield.PickledFormField":{__init__:[386,3,1,""],clean:[386,3,1,""],default_error_messages:[386,4,1,""],widget:[386,4,1,""]},"evennia.utils.picklefield.PickledObjectField":{__init__:[386,3,1,""],formfield:[386,3,1,""],from_db_value:[386,3,1,""],get_db_prep_lookup:[386,3,1,""],get_db_prep_value:[386,3,1,""],get_default:[386,3,1,""],get_internal_type:[386,3,1,""],pre_save:[386,3,1,""],value_to_string:[386,3,1,""]},"evennia.utils.picklefield.PickledWidget":{media:[386,3,1,""],render:[386,3,1,""],value_from_datadict:[386,3,1,""]},"evennia.utils.search":{search_account:[387,5,1,""],search_account_tag:[387,5,1,""],search_channel:[387,5,1,""],search_channel_tag:[387,5,1,""],search_help_entry:[387,5,1,""],search_message:[387,5,1,""],search_object:[387,5,1,""],search_script:[387,5,1,""],search_script_tag:[387,5,1,""],search_tag:[387,5,1,""]},"evennia.utils.test_resources":{EvenniaTest:[388,1,1,""],LocalEvenniaTest:[388,1,1,""],mockdeferLater:[388,5,1,""],mockdelay:[388,5,1,""],unload_module:[388,5,1,""]},"evennia.utils.test_resources.EvenniaTest":{account_typeclass:[388,4,1,""],character_typeclass:[388,4,1,""],exit_typeclass:[388,4,1,""],object_typeclass:[388,4,1,""],room_typeclass:[388,4,1,""],script_typeclass:[388,4,1,""],setUp:[388,3,1,""],tearDown:[388,3,1,""]},"evennia.utils.test_resources.LocalEvenniaTest":{account_typeclass:[388,4,1,""],character_typeclass:[388,4,1,""],exit_typeclass:[388,4,1,""],object_typeclass:[388,4,1,""],room_typeclass:[388,4,1,""],script_typeclass:[388,4,1,""]},"evennia.utils.text2html":{TextToHTMLparser:[389,1,1,""],parse_html:[389,5,1,""]},"evennia.utils.text2html.TextToHTMLparser":{bg_colormap:[389,4,1,""],bgfgstart:[389,4,1,""],bgfgstop:[389,4,1,""],bgstart:[389,4,1,""],bgstop:[389,4,1,""],blink:[389,4,1,""],colorback:[389,4,1,""],colorcodes:[389,4,1,""],convert_linebreaks:[389,3,1,""],convert_urls:[389,3,1,""],fg_colormap:[389,4,1,""],fgstart:[389,4,1,""],fgstop:[389,4,1,""],hilite:[389,4,1,""],inverse:[389,4,1,""],normal:[389,4,1,""],parse:[389,3,1,""],re_bgfg:[389,4,1,""],re_bgs:[389,4,1,""],re_blink:[389,4,1,""],re_blinking:[389,3,1,""],re_bold:[389,3,1,""],re_color:[389,3,1,""],re_dblspace:[389,4,1,""],re_double_space:[389,3,1,""],re_fgs:[389,4,1,""],re_hilite:[389,4,1,""],re_inverse:[389,4,1,""],re_inversing:[389,3,1,""],re_mxplink:[389,4,1,""],re_mxpurl:[389,4,1,""],re_normal:[389,4,1,""],re_string:[389,4,1,""],re_uline:[389,4,1,""],re_underline:[389,3,1,""],re_unhilite:[389,4,1,""],re_url:[389,4,1,""],remove_backspaces:[389,3,1,""],remove_bells:[389,3,1,""],sub_dblspace:[389,3,1,""],sub_mxp_links:[389,3,1,""],sub_mxp_urls:[389,3,1,""],sub_text:[389,3,1,""],tabstop:[389,4,1,""],underline:[389,4,1,""],unhilite:[389,4,1,""]},"evennia.utils.utils":{LimitedSizeOrderedDict:[390,1,1,""],all_from_module:[390,5,1,""],at_search_result:[390,5,1,""],callables_from_module:[390,5,1,""],calledby:[390,5,1,""],check_evennia_dependencies:[390,5,1,""],class_from_module:[390,5,1,""],columnize:[390,5,1,""],copy_word_case:[390,5,1,""],crop:[390,5,1,""],datetime_format:[390,5,1,""],dbid_to_obj:[390,5,1,""],dbref:[390,5,1,""],dbref_to_obj:[390,5,1,""],dedent:[390,5,1,""],deepsize:[390,5,1,""],delay:[390,5,1,""],display_len:[390,5,1,""],fill:[390,5,1,""],format_grid:[390,5,1,""],format_table:[390,5,1,""],fuzzy_import_from_module:[390,5,1,""],get_all_cmdsets:[390,5,1,""],get_all_typeclasses:[390,5,1,""],get_evennia_pids:[390,5,1,""],get_evennia_version:[390,5,1,""],get_game_dir_path:[390,5,1,""],has_parent:[390,5,1,""],host_os_is:[390,5,1,""],inherits_from:[390,5,1,""],init_new_account:[390,5,1,""],interactive:[390,5,1,""],is_iter:[390,5,1,""],iter_to_str:[390,5,1,""],iter_to_string:[390,5,1,""],justify:[390,5,1,""],latinify:[390,5,1,""],lazy_property:[390,1,1,""],list_to_string:[390,5,1,""],m_len:[390,5,1,""],make_iter:[390,5,1,""],mod_import:[390,5,1,""],mod_import_from_path:[390,5,1,""],object_from_module:[390,5,1,""],pad:[390,5,1,""],percent:[390,5,1,""],percentile:[390,5,1,""],pypath_to_realpath:[390,5,1,""],random_string_from_module:[390,5,1,""],repeat:[390,5,1,""],run_async:[390,5,1,""],safe_convert_to_types:[390,5,1,""],server_services:[390,5,1,""],string_from_module:[390,5,1,""],string_partial_matching:[390,5,1,""],string_similarity:[390,5,1,""],string_suggestions:[390,5,1,""],strip_control_sequences:[390,5,1,""],strip_unsafe_input:[390,5,1,""],time_format:[390,5,1,""],to_bytes:[390,5,1,""],to_str:[390,5,1,""],unrepeat:[390,5,1,""],uses_database:[390,5,1,""],validate_email_address:[390,5,1,""],variable_from_module:[390,5,1,""],wildcard_to_regexp:[390,5,1,""],wrap:[390,5,1,""]},"evennia.utils.utils.LimitedSizeOrderedDict":{__init__:[390,3,1,""],update:[390,3,1,""]},"evennia.utils.utils.lazy_property":{__init__:[390,3,1,""]},"evennia.utils.validatorfuncs":{"boolean":[391,5,1,""],color:[391,5,1,""],datetime:[391,5,1,""],duration:[391,5,1,""],email:[391,5,1,""],future:[391,5,1,""],lock:[391,5,1,""],positive_integer:[391,5,1,""],signed_integer:[391,5,1,""],text:[391,5,1,""],timezone:[391,5,1,""],unsigned_integer:[391,5,1,""]},"evennia.utils.verb_conjugation":{conjugate:[393,0,0,"-"],pronouns:[394,0,0,"-"],tests:[395,0,0,"-"]},"evennia.utils.verb_conjugation.conjugate":{verb_actor_stance_components:[393,5,1,""],verb_all_tenses:[393,5,1,""],verb_conjugate:[393,5,1,""],verb_infinitive:[393,5,1,""],verb_is_past:[393,5,1,""],verb_is_past_participle:[393,5,1,""],verb_is_present:[393,5,1,""],verb_is_present_participle:[393,5,1,""],verb_is_tense:[393,5,1,""],verb_past:[393,5,1,""],verb_past_participle:[393,5,1,""],verb_present:[393,5,1,""],verb_present_participle:[393,5,1,""],verb_tense:[393,5,1,""]},"evennia.utils.verb_conjugation.pronouns":{pronoun_to_viewpoints:[394,5,1,""]},"evennia.utils.verb_conjugation.tests":{TestPronounMapping:[395,1,1,""],TestVerbConjugate:[395,1,1,""]},"evennia.utils.verb_conjugation.tests.TestPronounMapping":{test_mapping_with_options:[395,4,1,""],test_mapping_with_options_00_you:[395,3,1,""],test_mapping_with_options_01_you:[395,3,1,""],test_mapping_with_options_02_I:[395,3,1,""],test_mapping_with_options_03_I:[395,3,1,""],test_mapping_with_options_04_I:[395,3,1,""],test_mapping_with_options_05_Me:[395,3,1,""],test_mapping_with_options_06_your:[395,3,1,""],test_mapping_with_options_07_ours:[395,3,1,""],test_mapping_with_options_08_yourself:[395,3,1,""],test_mapping_with_options_09_yourself:[395,3,1,""],test_mapping_with_options_10_yourself:[395,3,1,""],test_mapping_with_options_11_yourself:[395,3,1,""],test_mapping_with_options_12_yourselves:[395,3,1,""],test_mapping_with_options_13_he:[395,3,1,""],test_mapping_with_options_14_he:[395,3,1,""],test_mapping_with_options_15_he:[395,3,1,""],test_mapping_with_options_16_her:[395,3,1,""],test_mapping_with_options_17_her:[395,3,1,""],test_mapping_with_options_18_their:[395,3,1,""],test_mapping_with_options_19_their:[395,3,1,""],test_mapping_with_options_20_itself:[395,3,1,""],test_mapping_with_options_21_themselves:[395,3,1,""],test_mapping_with_options_22_herself:[395,3,1,""]},"evennia.utils.verb_conjugation.tests.TestVerbConjugate":{test_verb_actor_stance_components:[395,4,1,""],test_verb_actor_stance_components_00_have:[395,3,1,""],test_verb_actor_stance_components_01_swimming:[395,3,1,""],test_verb_actor_stance_components_02_give:[395,3,1,""],test_verb_actor_stance_components_03_given:[395,3,1,""],test_verb_actor_stance_components_04_am:[395,3,1,""],test_verb_actor_stance_components_05_doing:[395,3,1,""],test_verb_actor_stance_components_06_are:[395,3,1,""],test_verb_actor_stance_components_07_had:[395,3,1,""],test_verb_actor_stance_components_08_grin:[395,3,1,""],test_verb_actor_stance_components_09_smile:[395,3,1,""],test_verb_actor_stance_components_10_vex:[395,3,1,""],test_verb_actor_stance_components_11_thrust:[395,3,1,""],test_verb_conjugate:[395,4,1,""],test_verb_conjugate_0_inf:[395,3,1,""],test_verb_conjugate_1_inf:[395,3,1,""],test_verb_conjugate_2_inf:[395,3,1,""],test_verb_conjugate_3_inf:[395,3,1,""],test_verb_conjugate_4_inf:[395,3,1,""],test_verb_conjugate_5_inf:[395,3,1,""],test_verb_conjugate_6_inf:[395,3,1,""],test_verb_conjugate_7_2sgpres:[395,3,1,""],test_verb_conjugate_8_3sgpres:[395,3,1,""],test_verb_get_all_tenses:[395,3,1,""],test_verb_infinitive:[395,4,1,""],test_verb_infinitive_0_have:[395,3,1,""],test_verb_infinitive_1_swim:[395,3,1,""],test_verb_infinitive_2_give:[395,3,1,""],test_verb_infinitive_3_given:[395,3,1,""],test_verb_infinitive_4_am:[395,3,1,""],test_verb_infinitive_5_doing:[395,3,1,""],test_verb_infinitive_6_are:[395,3,1,""],test_verb_is_past:[395,4,1,""],test_verb_is_past_0_1st:[395,3,1,""],test_verb_is_past_1_1st:[395,3,1,""],test_verb_is_past_2_1st:[395,3,1,""],test_verb_is_past_3_1st:[395,3,1,""],test_verb_is_past_4_1st:[395,3,1,""],test_verb_is_past_5_1st:[395,3,1,""],test_verb_is_past_6_1st:[395,3,1,""],test_verb_is_past_7_2nd:[395,3,1,""],test_verb_is_past_participle:[395,4,1,""],test_verb_is_past_participle_0_have:[395,3,1,""],test_verb_is_past_participle_1_swimming:[395,3,1,""],test_verb_is_past_participle_2_give:[395,3,1,""],test_verb_is_past_participle_3_given:[395,3,1,""],test_verb_is_past_participle_4_am:[395,3,1,""],test_verb_is_past_participle_5_doing:[395,3,1,""],test_verb_is_past_participle_6_are:[395,3,1,""],test_verb_is_past_participle_7_had:[395,3,1,""],test_verb_is_present:[395,4,1,""],test_verb_is_present_0_1st:[395,3,1,""],test_verb_is_present_1_1st:[395,3,1,""],test_verb_is_present_2_1st:[395,3,1,""],test_verb_is_present_3_1st:[395,3,1,""],test_verb_is_present_4_1st:[395,3,1,""],test_verb_is_present_5_1st:[395,3,1,""],test_verb_is_present_6_1st:[395,3,1,""],test_verb_is_present_7_1st:[395,3,1,""],test_verb_is_present_participle:[395,4,1,""],test_verb_is_present_participle_0_have:[395,3,1,""],test_verb_is_present_participle_1_swim:[395,3,1,""],test_verb_is_present_participle_2_give:[395,3,1,""],test_verb_is_present_participle_3_given:[395,3,1,""],test_verb_is_present_participle_4_am:[395,3,1,""],test_verb_is_present_participle_5_doing:[395,3,1,""],test_verb_is_present_participle_6_are:[395,3,1,""],test_verb_is_tense:[395,4,1,""],test_verb_is_tense_0_inf:[395,3,1,""],test_verb_is_tense_1_inf:[395,3,1,""],test_verb_is_tense_2_inf:[395,3,1,""],test_verb_is_tense_3_inf:[395,3,1,""],test_verb_is_tense_4_inf:[395,3,1,""],test_verb_is_tense_5_inf:[395,3,1,""],test_verb_is_tense_6_inf:[395,3,1,""],test_verb_past:[395,4,1,""],test_verb_past_0_1st:[395,3,1,""],test_verb_past_1_1st:[395,3,1,""],test_verb_past_2_1st:[395,3,1,""],test_verb_past_3_1st:[395,3,1,""],test_verb_past_4_1st:[395,3,1,""],test_verb_past_5_1st:[395,3,1,""],test_verb_past_6_1st:[395,3,1,""],test_verb_past_7_2nd:[395,3,1,""],test_verb_past_participle:[395,4,1,""],test_verb_past_participle_0_have:[395,3,1,""],test_verb_past_participle_1_swim:[395,3,1,""],test_verb_past_participle_2_give:[395,3,1,""],test_verb_past_participle_3_given:[395,3,1,""],test_verb_past_participle_4_am:[395,3,1,""],test_verb_past_participle_5_doing:[395,3,1,""],test_verb_past_participle_6_are:[395,3,1,""],test_verb_present:[395,4,1,""],test_verb_present_0_1st:[395,3,1,""],test_verb_present_1_1st:[395,3,1,""],test_verb_present_2_1st:[395,3,1,""],test_verb_present_3_1st:[395,3,1,""],test_verb_present_4_1st:[395,3,1,""],test_verb_present_5_1st:[395,3,1,""],test_verb_present_6_1st:[395,3,1,""],test_verb_present_7_2nd:[395,3,1,""],test_verb_present_8_3rd:[395,3,1,""],test_verb_present_participle:[395,4,1,""],test_verb_present_participle_0_have:[395,3,1,""],test_verb_present_participle_1_swim:[395,3,1,""],test_verb_present_participle_2_give:[395,3,1,""],test_verb_present_participle_3_given:[395,3,1,""],test_verb_present_participle_4_am:[395,3,1,""],test_verb_present_participle_5_doing:[395,3,1,""],test_verb_present_participle_6_are:[395,3,1,""],test_verb_tense:[395,4,1,""],test_verb_tense_0_have:[395,3,1,""],test_verb_tense_1_swim:[395,3,1,""],test_verb_tense_2_give:[395,3,1,""],test_verb_tense_3_given:[395,3,1,""],test_verb_tense_4_am:[395,3,1,""],test_verb_tense_5_doing:[395,3,1,""],test_verb_tense_6_are:[395,3,1,""]},"evennia.web":{admin:[397,0,0,"-"],api:[409,0,0,"-"],templatetags:[417,0,0,"-"],urls:[419,0,0,"-"],utils:[420,0,0,"-"],webclient:[426,0,0,"-"],website:[429,0,0,"-"]},"evennia.web.admin":{accounts:[398,0,0,"-"],attributes:[399,0,0,"-"],comms:[400,0,0,"-"],frontpage:[401,0,0,"-"],help:[402,0,0,"-"],objects:[403,0,0,"-"],scripts:[404,0,0,"-"],server:[405,0,0,"-"],tags:[406,0,0,"-"],urls:[407,0,0,"-"],utils:[408,0,0,"-"]},"evennia.web.admin.accounts":{AccountAdmin:[398,1,1,""],AccountAttributeInline:[398,1,1,""],AccountChangeForm:[398,1,1,""],AccountCreationForm:[398,1,1,""],AccountTagInline:[398,1,1,""],ObjectPuppetInline:[398,1,1,""]},"evennia.web.admin.accounts.AccountAdmin":{add_fieldsets:[398,4,1,""],add_form:[398,4,1,""],fieldsets:[398,4,1,""],form:[398,4,1,""],get_form:[398,3,1,""],inlines:[398,4,1,""],list_display:[398,4,1,""],list_display_links:[398,4,1,""],list_filter:[398,4,1,""],media:[398,3,1,""],ordering:[398,4,1,""],puppeted_objects:[398,3,1,""],readonly_fields:[398,4,1,""],response_add:[398,3,1,""],save_model:[398,3,1,""],search_fields:[398,4,1,""],serialized_string:[398,3,1,""],user_change_password:[398,3,1,""],view_on_site:[398,4,1,""]},"evennia.web.admin.accounts.AccountAttributeInline":{media:[398,3,1,""],model:[398,4,1,""],related_field:[398,4,1,""]},"evennia.web.admin.accounts.AccountChangeForm":{Meta:[398,1,1,""],__init__:[398,3,1,""],base_fields:[398,4,1,""],clean_username:[398,3,1,""],declared_fields:[398,4,1,""],media:[398,3,1,""]},"evennia.web.admin.accounts.AccountChangeForm.Meta":{fields:[398,4,1,""],model:[398,4,1,""]},"evennia.web.admin.accounts.AccountCreationForm":{Meta:[398,1,1,""],base_fields:[398,4,1,""],clean_username:[398,3,1,""],declared_fields:[398,4,1,""],media:[398,3,1,""]},"evennia.web.admin.accounts.AccountCreationForm.Meta":{fields:[398,4,1,""],model:[398,4,1,""]},"evennia.web.admin.accounts.AccountTagInline":{media:[398,3,1,""],model:[398,4,1,""],related_field:[398,4,1,""]},"evennia.web.admin.accounts.ObjectPuppetInline":{ObjectCreateForm:[398,1,1,""],extra:[398,4,1,""],fieldsets:[398,4,1,""],form:[398,4,1,""],has_add_permission:[398,3,1,""],has_delete_permission:[398,3,1,""],media:[398,3,1,""],model:[398,4,1,""],readonly_fields:[398,4,1,""],show_change_link:[398,4,1,""],verbose_name:[398,4,1,""],view_on_site:[398,4,1,""]},"evennia.web.admin.accounts.ObjectPuppetInline.ObjectCreateForm":{Meta:[398,1,1,""],__init__:[398,3,1,""],base_fields:[398,4,1,""],declared_fields:[398,4,1,""],media:[398,3,1,""]},"evennia.web.admin.accounts.ObjectPuppetInline.ObjectCreateForm.Meta":{fields:[398,4,1,""],model:[398,4,1,""]},"evennia.web.admin.attributes":{AttributeForm:[399,1,1,""],AttributeFormSet:[399,1,1,""],AttributeInline:[399,1,1,""]},"evennia.web.admin.attributes.AttributeForm":{Meta:[399,1,1,""],__init__:[399,3,1,""],base_fields:[399,4,1,""],clean_attr_value:[399,3,1,""],declared_fields:[399,4,1,""],media:[399,3,1,""],save:[399,3,1,""]},"evennia.web.admin.attributes.AttributeForm.Meta":{fields:[399,4,1,""]},"evennia.web.admin.attributes.AttributeFormSet":{save:[399,3,1,""]},"evennia.web.admin.attributes.AttributeInline":{extra:[399,4,1,""],form:[399,4,1,""],formset:[399,4,1,""],get_formset:[399,3,1,""],media:[399,3,1,""],model:[399,4,1,""],related_field:[399,4,1,""],verbose_name:[399,4,1,""],verbose_name_plural:[399,4,1,""]},"evennia.web.admin.comms":{ChannelAdmin:[400,1,1,""],ChannelAttributeInline:[400,1,1,""],ChannelForm:[400,1,1,""],ChannelTagInline:[400,1,1,""],MsgAdmin:[400,1,1,""],MsgForm:[400,1,1,""],MsgTagInline:[400,1,1,""]},"evennia.web.admin.comms.ChannelAdmin":{fieldsets:[400,4,1,""],form:[400,4,1,""],get_form:[400,3,1,""],inlines:[400,4,1,""],list_display:[400,4,1,""],list_display_links:[400,4,1,""],list_select_related:[400,4,1,""],media:[400,3,1,""],no_of_subscribers:[400,3,1,""],ordering:[400,4,1,""],raw_id_fields:[400,4,1,""],readonly_fields:[400,4,1,""],response_add:[400,3,1,""],save_as:[400,4,1,""],save_model:[400,3,1,""],save_on_top:[400,4,1,""],search_fields:[400,4,1,""],serialized_string:[400,3,1,""],subscriptions:[400,3,1,""]},"evennia.web.admin.comms.ChannelAttributeInline":{media:[400,3,1,""],model:[400,4,1,""],related_field:[400,4,1,""]},"evennia.web.admin.comms.ChannelForm":{Meta:[400,1,1,""],base_fields:[400,4,1,""],declared_fields:[400,4,1,""],media:[400,3,1,""]},"evennia.web.admin.comms.ChannelForm.Meta":{fields:[400,4,1,""],model:[400,4,1,""]},"evennia.web.admin.comms.ChannelTagInline":{media:[400,3,1,""],model:[400,4,1,""],related_field:[400,4,1,""]},"evennia.web.admin.comms.MsgAdmin":{fieldsets:[400,4,1,""],form:[400,4,1,""],get_form:[400,3,1,""],inlines:[400,4,1,""],list_display:[400,4,1,""],list_display_links:[400,4,1,""],list_select_related:[400,4,1,""],media:[400,3,1,""],ordering:[400,4,1,""],raw_id_fields:[400,4,1,""],readonly_fields:[400,4,1,""],receiver:[400,3,1,""],save_as:[400,4,1,""],save_on_top:[400,4,1,""],search_fields:[400,4,1,""],sender:[400,3,1,""],serialized_string:[400,3,1,""],start_of_message:[400,3,1,""],view_on_site:[400,4,1,""]},"evennia.web.admin.comms.MsgForm":{Meta:[400,1,1,""],base_fields:[400,4,1,""],declared_fields:[400,4,1,""],media:[400,3,1,""]},"evennia.web.admin.comms.MsgForm.Meta":{fields:[400,4,1,""],models:[400,4,1,""]},"evennia.web.admin.comms.MsgTagInline":{media:[400,3,1,""],model:[400,4,1,""],related_field:[400,4,1,""]},"evennia.web.admin.frontpage":{admin_wrapper:[401,5,1,""],evennia_admin:[401,5,1,""]},"evennia.web.admin.help":{HelpEntryAdmin:[402,1,1,""],HelpEntryForm:[402,1,1,""],HelpTagInline:[402,1,1,""]},"evennia.web.admin.help.HelpEntryAdmin":{fieldsets:[402,4,1,""],form:[402,4,1,""],inlines:[402,4,1,""],list_display:[402,4,1,""],list_display_links:[402,4,1,""],list_filter:[402,4,1,""],list_select_related:[402,4,1,""],media:[402,3,1,""],ordering:[402,4,1,""],save_as:[402,4,1,""],save_on_top:[402,4,1,""],search_fields:[402,4,1,""],view_on_site:[402,4,1,""]},"evennia.web.admin.help.HelpEntryForm":{Meta:[402,1,1,""],base_fields:[402,4,1,""],declared_fields:[402,4,1,""],media:[402,3,1,""]},"evennia.web.admin.help.HelpEntryForm.Meta":{fields:[402,4,1,""],model:[402,4,1,""]},"evennia.web.admin.help.HelpTagInline":{media:[402,3,1,""],model:[402,4,1,""],related_field:[402,4,1,""]},"evennia.web.admin.objects":{ObjectAdmin:[403,1,1,""],ObjectAttributeInline:[403,1,1,""],ObjectCreateForm:[403,1,1,""],ObjectEditForm:[403,1,1,""],ObjectTagInline:[403,1,1,""]},"evennia.web.admin.objects.ObjectAdmin":{add_fieldsets:[403,4,1,""],add_form:[403,4,1,""],fieldsets:[403,4,1,""],form:[403,4,1,""],get_fieldsets:[403,3,1,""],get_form:[403,3,1,""],get_urls:[403,3,1,""],inlines:[403,4,1,""],link_button:[403,3,1,""],link_object_to_account:[403,3,1,""],list_display:[403,4,1,""],list_display_links:[403,4,1,""],list_filter:[403,4,1,""],list_select_related:[403,4,1,""],media:[403,3,1,""],ordering:[403,4,1,""],raw_id_fields:[403,4,1,""],readonly_fields:[403,4,1,""],response_add:[403,3,1,""],save_as:[403,4,1,""],save_model:[403,3,1,""],save_on_top:[403,4,1,""],search_fields:[403,4,1,""],serialized_string:[403,3,1,""],view_on_site:[403,4,1,""]},"evennia.web.admin.objects.ObjectAttributeInline":{media:[403,3,1,""],model:[403,4,1,""],related_field:[403,4,1,""]},"evennia.web.admin.objects.ObjectCreateForm":{Meta:[403,1,1,""],__init__:[403,3,1,""],base_fields:[403,4,1,""],declared_fields:[403,4,1,""],media:[403,3,1,""]},"evennia.web.admin.objects.ObjectCreateForm.Meta":{fields:[403,4,1,""],model:[403,4,1,""]},"evennia.web.admin.objects.ObjectEditForm":{Meta:[403,1,1,""],base_fields:[403,4,1,""],declared_fields:[403,4,1,""],media:[403,3,1,""]},"evennia.web.admin.objects.ObjectEditForm.Meta":{fields:[403,4,1,""],model:[403,4,1,""]},"evennia.web.admin.objects.ObjectTagInline":{media:[403,3,1,""],model:[403,4,1,""],related_field:[403,4,1,""]},"evennia.web.admin.scripts":{ScriptAdmin:[404,1,1,""],ScriptAttributeInline:[404,1,1,""],ScriptForm:[404,1,1,""],ScriptTagInline:[404,1,1,""]},"evennia.web.admin.scripts.ScriptAdmin":{fieldsets:[404,4,1,""],form:[404,4,1,""],get_form:[404,3,1,""],inlines:[404,4,1,""],list_display:[404,4,1,""],list_display_links:[404,4,1,""],list_select_related:[404,4,1,""],media:[404,3,1,""],ordering:[404,4,1,""],raw_id_fields:[404,4,1,""],readonly_fields:[404,4,1,""],save_as:[404,4,1,""],save_model:[404,3,1,""],save_on_top:[404,4,1,""],search_fields:[404,4,1,""],serialized_string:[404,3,1,""],view_on_site:[404,4,1,""]},"evennia.web.admin.scripts.ScriptAttributeInline":{media:[404,3,1,""],model:[404,4,1,""],related_field:[404,4,1,""]},"evennia.web.admin.scripts.ScriptForm":{base_fields:[404,4,1,""],declared_fields:[404,4,1,""],media:[404,3,1,""]},"evennia.web.admin.scripts.ScriptTagInline":{media:[404,3,1,""],model:[404,4,1,""],related_field:[404,4,1,""]},"evennia.web.admin.server":{ServerConfigAdmin:[405,1,1,""]},"evennia.web.admin.server.ServerConfigAdmin":{list_display:[405,4,1,""],list_display_links:[405,4,1,""],list_select_related:[405,4,1,""],media:[405,3,1,""],ordering:[405,4,1,""],save_as:[405,4,1,""],save_on_top:[405,4,1,""],search_fields:[405,4,1,""]},"evennia.web.admin.tags":{InlineTagForm:[406,1,1,""],TagAdmin:[406,1,1,""],TagForm:[406,1,1,""],TagFormSet:[406,1,1,""],TagInline:[406,1,1,""]},"evennia.web.admin.tags.InlineTagForm":{Meta:[406,1,1,""],__init__:[406,3,1,""],base_fields:[406,4,1,""],declared_fields:[406,4,1,""],media:[406,3,1,""],save:[406,3,1,""]},"evennia.web.admin.tags.InlineTagForm.Meta":{fields:[406,4,1,""]},"evennia.web.admin.tags.TagAdmin":{fieldsets:[406,4,1,""],form:[406,4,1,""],list_display:[406,4,1,""],list_filter:[406,4,1,""],media:[406,3,1,""],search_fields:[406,4,1,""],view_on_site:[406,4,1,""]},"evennia.web.admin.tags.TagForm":{Meta:[406,1,1,""],base_fields:[406,4,1,""],declared_fields:[406,4,1,""],media:[406,3,1,""]},"evennia.web.admin.tags.TagForm.Meta":{fields:[406,4,1,""]},"evennia.web.admin.tags.TagFormSet":{save:[406,3,1,""],verbose_name:[406,4,1,""],verbose_name_plural:[406,4,1,""]},"evennia.web.admin.tags.TagInline":{extra:[406,4,1,""],form:[406,4,1,""],formset:[406,4,1,""],get_formset:[406,3,1,""],media:[406,3,1,""],model:[406,4,1,""],related_field:[406,4,1,""],verbose_name:[406,4,1,""],verbose_name_plural:[406,4,1,""]},"evennia.web.admin.utils":{get_and_load_cmdsets:[408,5,1,""],get_and_load_typeclasses:[408,5,1,""]},"evennia.web.api":{filters:[410,0,0,"-"],permissions:[411,0,0,"-"],root:[412,0,0,"-"],serializers:[413,0,0,"-"],tests:[414,0,0,"-"],urls:[415,0,0,"-"],views:[416,0,0,"-"]},"evennia.web.api.filters":{AccountDBFilterSet:[410,1,1,""],AliasFilter:[410,1,1,""],BaseTypeclassFilterSet:[410,1,1,""],HelpFilterSet:[410,1,1,""],ObjectDBFilterSet:[410,1,1,""],PermissionFilter:[410,1,1,""],ScriptDBFilterSet:[410,1,1,""],TagTypeFilter:[410,1,1,""],get_tag_query:[410,5,1,""]},"evennia.web.api.filters.AccountDBFilterSet":{Meta:[410,1,1,""],base_filters:[410,4,1,""],declared_filters:[410,4,1,""]},"evennia.web.api.filters.AccountDBFilterSet.Meta":{fields:[410,4,1,""],model:[410,4,1,""]},"evennia.web.api.filters.AliasFilter":{tag_type:[410,4,1,""]},"evennia.web.api.filters.BaseTypeclassFilterSet":{base_filters:[410,4,1,""],declared_filters:[410,4,1,""],filter_name:[410,3,1,""]},"evennia.web.api.filters.HelpFilterSet":{base_filters:[410,4,1,""],declared_filters:[410,4,1,""]},"evennia.web.api.filters.ObjectDBFilterSet":{Meta:[410,1,1,""],base_filters:[410,4,1,""],declared_filters:[410,4,1,""]},"evennia.web.api.filters.ObjectDBFilterSet.Meta":{fields:[410,4,1,""],model:[410,4,1,""]},"evennia.web.api.filters.PermissionFilter":{tag_type:[410,4,1,""]},"evennia.web.api.filters.ScriptDBFilterSet":{Meta:[410,1,1,""],base_filters:[410,4,1,""],declared_filters:[410,4,1,""]},"evennia.web.api.filters.ScriptDBFilterSet.Meta":{fields:[410,4,1,""],model:[410,4,1,""]},"evennia.web.api.filters.TagTypeFilter":{filter:[410,3,1,""],tag_type:[410,4,1,""]},"evennia.web.api.permissions":{EvenniaPermission:[411,1,1,""]},"evennia.web.api.permissions.EvenniaPermission":{MINIMUM_CREATE_PERMISSION:[411,4,1,""],MINIMUM_LIST_PERMISSION:[411,4,1,""],check_locks:[411,3,1,""],destroy_locks:[411,4,1,""],has_object_permission:[411,3,1,""],has_permission:[411,3,1,""],update_locks:[411,4,1,""],view_locks:[411,4,1,""]},"evennia.web.api.root":{APIRootRouter:[412,1,1,""],EvenniaAPIRoot:[412,1,1,""]},"evennia.web.api.root.APIRootRouter":{APIRootView:[412,4,1,""]},"evennia.web.api.serializers":{AccountListSerializer:[413,1,1,""],AccountSerializer:[413,1,1,""],AttributeSerializer:[413,1,1,""],HelpListSerializer:[413,1,1,""],HelpSerializer:[413,1,1,""],ObjectDBSerializer:[413,1,1,""],ObjectListSerializer:[413,1,1,""],ScriptDBSerializer:[413,1,1,""],ScriptListSerializer:[413,1,1,""],SimpleObjectDBSerializer:[413,1,1,""],TagSerializer:[413,1,1,""],TypeclassListSerializerMixin:[413,1,1,""],TypeclassSerializerMixin:[413,1,1,""]},"evennia.web.api.serializers.AccountListSerializer":{Meta:[413,1,1,""]},"evennia.web.api.serializers.AccountListSerializer.Meta":{fields:[413,4,1,""],model:[413,4,1,""],read_only_fields:[413,4,1,""]},"evennia.web.api.serializers.AccountSerializer":{Meta:[413,1,1,""],get_session_ids:[413,3,1,""]},"evennia.web.api.serializers.AccountSerializer.Meta":{fields:[413,4,1,""],model:[413,4,1,""],read_only_fields:[413,4,1,""]},"evennia.web.api.serializers.AttributeSerializer":{Meta:[413,1,1,""],get_value_display:[413,3,1,""]},"evennia.web.api.serializers.AttributeSerializer.Meta":{fields:[413,4,1,""],model:[413,4,1,""]},"evennia.web.api.serializers.HelpListSerializer":{Meta:[413,1,1,""]},"evennia.web.api.serializers.HelpListSerializer.Meta":{fields:[413,4,1,""],model:[413,4,1,""],read_only_fields:[413,4,1,""]},"evennia.web.api.serializers.HelpSerializer":{Meta:[413,1,1,""]},"evennia.web.api.serializers.HelpSerializer.Meta":{fields:[413,4,1,""],model:[413,4,1,""],read_only_fields:[413,4,1,""]},"evennia.web.api.serializers.ObjectDBSerializer":{Meta:[413,1,1,""],get_contents:[413,3,1,""],get_exits:[413,3,1,""]},"evennia.web.api.serializers.ObjectDBSerializer.Meta":{fields:[413,4,1,""],model:[413,4,1,""],read_only_fields:[413,4,1,""]},"evennia.web.api.serializers.ObjectListSerializer":{Meta:[413,1,1,""]},"evennia.web.api.serializers.ObjectListSerializer.Meta":{fields:[413,4,1,""],model:[413,4,1,""],read_only_fields:[413,4,1,""]},"evennia.web.api.serializers.ScriptDBSerializer":{Meta:[413,1,1,""]},"evennia.web.api.serializers.ScriptDBSerializer.Meta":{fields:[413,4,1,""],model:[413,4,1,""],read_only_fields:[413,4,1,""]},"evennia.web.api.serializers.ScriptListSerializer":{Meta:[413,1,1,""]},"evennia.web.api.serializers.ScriptListSerializer.Meta":{fields:[413,4,1,""],model:[413,4,1,""],read_only_fields:[413,4,1,""]},"evennia.web.api.serializers.SimpleObjectDBSerializer":{Meta:[413,1,1,""]},"evennia.web.api.serializers.SimpleObjectDBSerializer.Meta":{fields:[413,4,1,""],model:[413,4,1,""]},"evennia.web.api.serializers.TagSerializer":{Meta:[413,1,1,""]},"evennia.web.api.serializers.TagSerializer.Meta":{fields:[413,4,1,""],model:[413,4,1,""]},"evennia.web.api.serializers.TypeclassListSerializerMixin":{shared_fields:[413,4,1,""]},"evennia.web.api.serializers.TypeclassSerializerMixin":{get_aliases:[413,3,1,""],get_attributes:[413,3,1,""],get_nicks:[413,3,1,""],get_permissions:[413,3,1,""],get_tags:[413,3,1,""],shared_fields:[413,4,1,""]},"evennia.web.api.tests":{TestEvenniaRESTApi:[414,1,1,""]},"evennia.web.api.tests.TestEvenniaRESTApi":{client_class:[414,4,1,""],get_view_details:[414,3,1,""],maxDiff:[414,4,1,""],setUp:[414,3,1,""],tearDown:[414,3,1,""],test_create:[414,3,1,""],test_delete:[414,3,1,""],test_list:[414,3,1,""],test_retrieve:[414,3,1,""],test_set_attribute:[414,3,1,""],test_update:[414,3,1,""]},"evennia.web.api.views":{AccountDBViewSet:[416,1,1,""],CharacterViewSet:[416,1,1,""],ExitViewSet:[416,1,1,""],GeneralViewSetMixin:[416,1,1,""],HelpViewSet:[416,1,1,""],ObjectDBViewSet:[416,1,1,""],RoomViewSet:[416,1,1,""],ScriptDBViewSet:[416,1,1,""],TypeclassViewSetMixin:[416,1,1,""]},"evennia.web.api.views.AccountDBViewSet":{basename:[416,4,1,""],description:[416,4,1,""],detail:[416,4,1,""],filterset_class:[416,4,1,""],list_serializer_class:[416,4,1,""],name:[416,4,1,""],queryset:[416,4,1,""],serializer_class:[416,4,1,""],suffix:[416,4,1,""]},"evennia.web.api.views.CharacterViewSet":{basename:[416,4,1,""],description:[416,4,1,""],detail:[416,4,1,""],list_serializer_class:[416,4,1,""],name:[416,4,1,""],queryset:[416,4,1,""],suffix:[416,4,1,""]},"evennia.web.api.views.ExitViewSet":{basename:[416,4,1,""],description:[416,4,1,""],detail:[416,4,1,""],list_serializer_class:[416,4,1,""],name:[416,4,1,""],queryset:[416,4,1,""],suffix:[416,4,1,""]},"evennia.web.api.views.GeneralViewSetMixin":{get_serializer_class:[416,3,1,""]},"evennia.web.api.views.HelpViewSet":{basename:[416,4,1,""],description:[416,4,1,""],detail:[416,4,1,""],filterset_class:[416,4,1,""],list_serializer_class:[416,4,1,""],name:[416,4,1,""],queryset:[416,4,1,""],serializer_class:[416,4,1,""],suffix:[416,4,1,""]},"evennia.web.api.views.ObjectDBViewSet":{basename:[416,4,1,""],description:[416,4,1,""],detail:[416,4,1,""],filterset_class:[416,4,1,""],list_serializer_class:[416,4,1,""],name:[416,4,1,""],queryset:[416,4,1,""],serializer_class:[416,4,1,""],suffix:[416,4,1,""]},"evennia.web.api.views.RoomViewSet":{basename:[416,4,1,""],description:[416,4,1,""],detail:[416,4,1,""],list_serializer_class:[416,4,1,""],name:[416,4,1,""],queryset:[416,4,1,""],suffix:[416,4,1,""]},"evennia.web.api.views.ScriptDBViewSet":{basename:[416,4,1,""],description:[416,4,1,""],detail:[416,4,1,""],filterset_class:[416,4,1,""],list_serializer_class:[416,4,1,""],name:[416,4,1,""],queryset:[416,4,1,""],serializer_class:[416,4,1,""],suffix:[416,4,1,""]},"evennia.web.api.views.TypeclassViewSetMixin":{filter_backends:[416,4,1,""],permission_classes:[416,4,1,""],set_attribute:[416,3,1,""]},"evennia.web.templatetags":{addclass:[418,0,0,"-"]},"evennia.web.templatetags.addclass":{addclass:[418,5,1,""]},"evennia.web.utils":{adminsite:[421,0,0,"-"],backends:[422,0,0,"-"],general_context:[423,0,0,"-"],middleware:[424,0,0,"-"],tests:[425,0,0,"-"]},"evennia.web.utils.adminsite":{EvenniaAdminApp:[421,1,1,""],EvenniaAdminSite:[421,1,1,""]},"evennia.web.utils.adminsite.EvenniaAdminApp":{default_site:[421,4,1,""]},"evennia.web.utils.adminsite.EvenniaAdminSite":{app_order:[421,4,1,""],get_app_list:[421,3,1,""],site_header:[421,4,1,""]},"evennia.web.utils.backends":{CaseInsensitiveModelBackend:[422,1,1,""]},"evennia.web.utils.backends.CaseInsensitiveModelBackend":{authenticate:[422,3,1,""]},"evennia.web.utils.general_context":{general_context:[423,5,1,""],load_game_settings:[423,5,1,""]},"evennia.web.utils.middleware":{SharedLoginMiddleware:[424,1,1,""]},"evennia.web.utils.middleware.SharedLoginMiddleware":{__init__:[424,3,1,""],make_shared_login:[424,3,1,""]},"evennia.web.utils.tests":{TestGeneralContext:[425,1,1,""]},"evennia.web.utils.tests.TestGeneralContext":{maxDiff:[425,4,1,""],test_general_context:[425,3,1,""]},"evennia.web.webclient":{urls:[427,0,0,"-"],views:[428,0,0,"-"]},"evennia.web.webclient.views":{webclient:[428,5,1,""]},"evennia.web.website":{forms:[430,0,0,"-"],tests:[431,0,0,"-"],urls:[432,0,0,"-"],views:[433,0,0,"-"]},"evennia.web.website.forms":{AccountForm:[430,1,1,""],CharacterForm:[430,1,1,""],CharacterUpdateForm:[430,1,1,""],EvenniaForm:[430,1,1,""],ObjectForm:[430,1,1,""]},"evennia.web.website.forms.AccountForm":{Meta:[430,1,1,""],base_fields:[430,4,1,""],declared_fields:[430,4,1,""],media:[430,3,1,""]},"evennia.web.website.forms.AccountForm.Meta":{field_classes:[430,4,1,""],fields:[430,4,1,""],model:[430,4,1,""]},"evennia.web.website.forms.CharacterForm":{Meta:[430,1,1,""],base_fields:[430,4,1,""],declared_fields:[430,4,1,""],media:[430,3,1,""]},"evennia.web.website.forms.CharacterForm.Meta":{fields:[430,4,1,""],labels:[430,4,1,""],model:[430,4,1,""]},"evennia.web.website.forms.CharacterUpdateForm":{base_fields:[430,4,1,""],declared_fields:[430,4,1,""],media:[430,3,1,""]},"evennia.web.website.forms.EvenniaForm":{base_fields:[430,4,1,""],clean:[430,3,1,""],declared_fields:[430,4,1,""],media:[430,3,1,""]},"evennia.web.website.forms.ObjectForm":{Meta:[430,1,1,""],base_fields:[430,4,1,""],declared_fields:[430,4,1,""],media:[430,3,1,""]},"evennia.web.website.forms.ObjectForm.Meta":{fields:[430,4,1,""],labels:[430,4,1,""],model:[430,4,1,""]},"evennia.web.website.tests":{AdminTest:[431,1,1,""],ChannelDetailTest:[431,1,1,""],ChannelListTest:[431,1,1,""],CharacterCreateView:[431,1,1,""],CharacterDeleteView:[431,1,1,""],CharacterListView:[431,1,1,""],CharacterManageView:[431,1,1,""],CharacterPuppetView:[431,1,1,""],CharacterUpdateView:[431,1,1,""],EvenniaWebTest:[431,1,1,""],HelpDetailTest:[431,1,1,""],HelpListTest:[431,1,1,""],HelpLockedDetailTest:[431,1,1,""],IndexTest:[431,1,1,""],LoginTest:[431,1,1,""],LogoutTest:[431,1,1,""],PasswordResetTest:[431,1,1,""],RegisterTest:[431,1,1,""],WebclientTest:[431,1,1,""]},"evennia.web.website.tests.AdminTest":{unauthenticated_response:[431,4,1,""],url_name:[431,4,1,""]},"evennia.web.website.tests.ChannelDetailTest":{get_kwargs:[431,3,1,""],setUp:[431,3,1,""],url_name:[431,4,1,""]},"evennia.web.website.tests.ChannelListTest":{url_name:[431,4,1,""]},"evennia.web.website.tests.CharacterCreateView":{test_valid_access_multisession_0:[431,3,1,""],test_valid_access_multisession_2:[431,3,1,""],unauthenticated_response:[431,4,1,""],url_name:[431,4,1,""]},"evennia.web.website.tests.CharacterDeleteView":{get_kwargs:[431,3,1,""],test_invalid_access:[431,3,1,""],test_valid_access:[431,3,1,""],unauthenticated_response:[431,4,1,""],url_name:[431,4,1,""]},"evennia.web.website.tests.CharacterListView":{unauthenticated_response:[431,4,1,""],url_name:[431,4,1,""]},"evennia.web.website.tests.CharacterManageView":{unauthenticated_response:[431,4,1,""],url_name:[431,4,1,""]},"evennia.web.website.tests.CharacterPuppetView":{get_kwargs:[431,3,1,""],test_invalid_access:[431,3,1,""],unauthenticated_response:[431,4,1,""],url_name:[431,4,1,""]},"evennia.web.website.tests.CharacterUpdateView":{get_kwargs:[431,3,1,""],test_invalid_access:[431,3,1,""],test_valid_access:[431,3,1,""],unauthenticated_response:[431,4,1,""],url_name:[431,4,1,""]},"evennia.web.website.tests.EvenniaWebTest":{account_typeclass:[431,4,1,""],authenticated_response:[431,4,1,""],channel_typeclass:[431,4,1,""],character_typeclass:[431,4,1,""],exit_typeclass:[431,4,1,""],get_kwargs:[431,3,1,""],login:[431,3,1,""],object_typeclass:[431,4,1,""],room_typeclass:[431,4,1,""],script_typeclass:[431,4,1,""],setUp:[431,3,1,""],test_get:[431,3,1,""],test_get_authenticated:[431,3,1,""],test_valid_chars:[431,3,1,""],unauthenticated_response:[431,4,1,""],url_name:[431,4,1,""]},"evennia.web.website.tests.HelpDetailTest":{get_kwargs:[431,3,1,""],setUp:[431,3,1,""],test_object_cache:[431,3,1,""],test_view:[431,3,1,""],url_name:[431,4,1,""]},"evennia.web.website.tests.HelpListTest":{url_name:[431,4,1,""]},"evennia.web.website.tests.HelpLockedDetailTest":{get_kwargs:[431,3,1,""],setUp:[431,3,1,""],test_lock_with_perm:[431,3,1,""],test_locked_entry:[431,3,1,""],url_name:[431,4,1,""]},"evennia.web.website.tests.IndexTest":{url_name:[431,4,1,""]},"evennia.web.website.tests.LoginTest":{url_name:[431,4,1,""]},"evennia.web.website.tests.LogoutTest":{url_name:[431,4,1,""]},"evennia.web.website.tests.PasswordResetTest":{unauthenticated_response:[431,4,1,""],url_name:[431,4,1,""]},"evennia.web.website.tests.RegisterTest":{url_name:[431,4,1,""]},"evennia.web.website.tests.WebclientTest":{test_get:[431,3,1,""],test_get_disabled:[431,3,1,""],url_name:[431,4,1,""]},"evennia.web.website.views":{accounts:[434,0,0,"-"],channels:[435,0,0,"-"],characters:[436,0,0,"-"],errors:[437,0,0,"-"],help:[438,0,0,"-"],index:[439,0,0,"-"],mixins:[440,0,0,"-"],objects:[441,0,0,"-"]},"evennia.web.website.views.accounts":{AccountCreateView:[434,1,1,""],AccountMixin:[434,1,1,""]},"evennia.web.website.views.accounts.AccountCreateView":{form_valid:[434,3,1,""],success_url:[434,4,1,""],template_name:[434,4,1,""]},"evennia.web.website.views.accounts.AccountMixin":{form_class:[434,4,1,""],model:[434,4,1,""]},"evennia.web.website.views.channels":{ChannelDetailView:[435,1,1,""],ChannelListView:[435,1,1,""],ChannelMixin:[435,1,1,""]},"evennia.web.website.views.channels.ChannelDetailView":{attributes:[435,4,1,""],get_context_data:[435,3,1,""],get_object:[435,3,1,""],max_num_lines:[435,4,1,""],template_name:[435,4,1,""]},"evennia.web.website.views.channels.ChannelListView":{get_context_data:[435,3,1,""],max_popular:[435,4,1,""],page_title:[435,4,1,""],paginate_by:[435,4,1,""],template_name:[435,4,1,""]},"evennia.web.website.views.channels.ChannelMixin":{access_type:[435,4,1,""],get_queryset:[435,3,1,""],model:[435,4,1,""],page_title:[435,4,1,""]},"evennia.web.website.views.characters":{CharacterCreateView:[436,1,1,""],CharacterDeleteView:[436,1,1,""],CharacterDetailView:[436,1,1,""],CharacterListView:[436,1,1,""],CharacterManageView:[436,1,1,""],CharacterMixin:[436,1,1,""],CharacterPuppetView:[436,1,1,""],CharacterUpdateView:[436,1,1,""]},"evennia.web.website.views.characters.CharacterCreateView":{form_valid:[436,3,1,""],template_name:[436,4,1,""]},"evennia.web.website.views.characters.CharacterDetailView":{access_type:[436,4,1,""],attributes:[436,4,1,""],get_queryset:[436,3,1,""],template_name:[436,4,1,""]},"evennia.web.website.views.characters.CharacterListView":{access_type:[436,4,1,""],get_queryset:[436,3,1,""],page_title:[436,4,1,""],paginate_by:[436,4,1,""],template_name:[436,4,1,""]},"evennia.web.website.views.characters.CharacterManageView":{page_title:[436,4,1,""],paginate_by:[436,4,1,""],template_name:[436,4,1,""]},"evennia.web.website.views.characters.CharacterMixin":{form_class:[436,4,1,""],get_queryset:[436,3,1,""],model:[436,4,1,""],success_url:[436,4,1,""]},"evennia.web.website.views.characters.CharacterPuppetView":{get_redirect_url:[436,3,1,""]},"evennia.web.website.views.characters.CharacterUpdateView":{form_class:[436,4,1,""],template_name:[436,4,1,""]},"evennia.web.website.views.errors":{to_be_implemented:[437,5,1,""]},"evennia.web.website.views.help":{HelpDetailView:[438,1,1,""],HelpListView:[438,1,1,""],HelpMixin:[438,1,1,""],can_read_topic:[438,5,1,""],collect_topics:[438,5,1,""],get_help_category:[438,5,1,""],get_help_topic:[438,5,1,""]},"evennia.web.website.views.help.HelpDetailView":{get_context_data:[438,3,1,""],get_object:[438,3,1,""],page_title:[438,3,1,""],template_name:[438,4,1,""]},"evennia.web.website.views.help.HelpListView":{page_title:[438,4,1,""],paginate_by:[438,4,1,""],template_name:[438,4,1,""]},"evennia.web.website.views.help.HelpMixin":{get_queryset:[438,3,1,""],page_title:[438,4,1,""]},"evennia.web.website.views.index":{EvenniaIndexView:[439,1,1,""]},"evennia.web.website.views.index.EvenniaIndexView":{get_context_data:[439,3,1,""],template_name:[439,4,1,""]},"evennia.web.website.views.mixins":{EvenniaCreateView:[440,1,1,""],EvenniaDeleteView:[440,1,1,""],EvenniaDetailView:[440,1,1,""],EvenniaUpdateView:[440,1,1,""],TypeclassMixin:[440,1,1,""]},"evennia.web.website.views.mixins.EvenniaCreateView":{page_title:[440,3,1,""]},"evennia.web.website.views.mixins.EvenniaDeleteView":{page_title:[440,3,1,""]},"evennia.web.website.views.mixins.EvenniaDetailView":{page_title:[440,3,1,""]},"evennia.web.website.views.mixins.EvenniaUpdateView":{page_title:[440,3,1,""]},"evennia.web.website.views.mixins.TypeclassMixin":{typeclass:[440,3,1,""]},"evennia.web.website.views.objects":{ObjectCreateView:[441,1,1,""],ObjectDeleteView:[441,1,1,""],ObjectDetailView:[441,1,1,""],ObjectUpdateView:[441,1,1,""]},"evennia.web.website.views.objects.ObjectCreateView":{model:[441,4,1,""]},"evennia.web.website.views.objects.ObjectDeleteView":{"delete":[441,3,1,""],access_type:[441,4,1,""],model:[441,4,1,""],template_name:[441,4,1,""]},"evennia.web.website.views.objects.ObjectDetailView":{access_type:[441,4,1,""],attributes:[441,4,1,""],get_context_data:[441,3,1,""],get_object:[441,3,1,""],model:[441,4,1,""],template_name:[441,4,1,""]},"evennia.web.website.views.objects.ObjectUpdateView":{access_type:[441,4,1,""],form_valid:[441,3,1,""],get_initial:[441,3,1,""],get_success_url:[441,3,1,""],model:[441,4,1,""]},evennia:{accounts:[167,0,0,"-"],commands:[172,0,0,"-"],comms:[195,0,0,"-"],contrib:[199,0,0,"-"],help:[285,0,0,"-"],locks:[290,0,0,"-"],objects:[293,0,0,"-"],prototypes:[297,0,0,"-"],scripts:[302,0,0,"-"],server:[310,0,0,"-"],set_trace:[165,5,1,""],settings_default:[360,0,0,"-"],typeclasses:[361,0,0,"-"],utils:[366,0,0,"-"],web:[396,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":[60,75,80,83,105,389],"0000":[75,80],"0004":77,"001":[8,77,279,389],"002":389,"003":[116,389],"004":389,"005":[60,367,389],"006":389,"007":389,"008":389,"009":389,"010":[92,389],"011":389,"012":389,"013":389,"014":389,"015":389,"015public":92,"016":389,"017":389,"018":389,"019":389,"020":389,"020t":92,"021":389,"022":389,"023":389,"024":389,"0247":77,"025":389,"026":389,"027":389,"028":389,"029":389,"030":389,"030a":92,"031":389,"032":389,"033":[367,389],"034":[77,389],"035":389,"036":389,"037":389,"038":389,"039":389,"040":389,"040f":92,"041":389,"042":389,"043":389,"043thi":116,"044":389,"045":389,"046":389,"047":389,"048":389,"049":389,"050":[367,389],"050f":92,"051":389,"052":389,"053":389,"054":[60,389],"055":[367,389],"056":389,"057":389,"058":389,"059":389,"060":389,"061":389,"062":389,"063":389,"064":389,"065":389,"066":389,"067":389,"068":389,"069":389,"070":389,"071":389,"072":389,"073":389,"074":389,"075":389,"076":389,"077":389,"078":389,"079":389,"080":389,"081":389,"082":389,"083":389,"084":389,"085":389,"086":389,"087":389,"088":389,"089":389,"090":389,"091":389,"092":389,"093":389,"094":389,"095":389,"096":389,"097":389,"098":389,"099":389,"0b16":147,"0d0":98,"0th":13,"0x045a0990":3,"100":[5,20,48,79,82,98,106,122,127,192,213,219,225,252,253,256,259,260,279,389,390,435,436],"1000":[5,42,98,129,157,256,257,258,259,260,300],"10000":435,"1000000":[5,105,383],"100m":389,"100mb":155,"101":[20,296,389],"101m":389,"102":[253,389],"102m":389,"103":389,"103m":389,"104":389,"104m":389,"105":389,"105m":389,"106":389,"106m":389,"107":389,"107m":389,"108":389,"108m":389,"109":389,"1098":48,"109m":389,"10gold":122,"10m":151,"110":[253,367,375,389],"110m":389,"111":[55,60,180,389],"111m":389,"112":389,"112m":389,"113":[155,389],"113m":389,"114":389,"114m":389,"115":389,"115600":98,"115m":389,"116":389,"116m":389,"117":389,"117m":389,"118":[47,389],"1184":146,"118m":389,"119":389,"119m":389,"120":[20,389],"1200":373,"120m":389,"121":389,"121m":389,"122":389,"122m":389,"123":[11,142,296,377,389],"1234":[13,41,148,240],"123dark":104,"123m":389,"124":389,"12400":105,"124m":389,"125":[49,389],"125m":389,"126":389,"126m":389,"127":[53,76,119,145,146,147,149,151,155,162,334,389],"127m":389,"128":389,"128m":389,"129":389,"129m":389,"12s":19,"130":389,"130m":389,"131":389,"131m":389,"132":389,"132m":389,"133":389,"133m":389,"134":[55,180,389],"134m":389,"135":389,"135m":389,"136":389,"136m":389,"137":389,"137m":389,"138":389,"138m":389,"139":389,"139m":389,"140":[3,165,389],"1400":373,"140313967648552":22,"140m":389,"141":389,"141m":389,"142":[77,204,389],"142m":389,"143":389,"143m":389,"144":389,"144m":389,"145":389,"145m":389,"146":389,"146m":389,"147":389,"147m":389,"148":389,"148m":389,"149":389,"149m":389,"150":[372,389],"150m":389,"151":389,"151m":389,"152":389,"152m":389,"153":389,"153m":389,"154":389,"154m":389,"155":389,"155m":389,"156":[8,389],"156m":389,"157":389,"1577865600":101,"157m":389,"158":389,"158m":389,"159":[112,389],"159m":389,"160":389,"160m":389,"161":389,"161m":389,"162":389,"162m":389,"163":389,"163m":389,"164":389,"164m":389,"165":389,"165m":389,"166":389,"166m":389,"167":389,"167m":389,"168":389,"168m":389,"169":389,"169m":389,"16m":389,"170":389,"170m":389,"171":389,"171m":389,"172":389,"172m":389,"173":389,"1730":144,"173m":389,"174":389,"174m":389,"175":389,"175m":389,"176":389,"1763":111,"1764":111,"176m":389,"177":389,"177m":389,"178":389,"178m":389,"179":389,"179m":389,"17m":389,"180":389,"180m":389,"181":389,"181m":389,"182":389,"182m":389,"183":389,"183m":389,"184":389,"184m":389,"185":389,"185m":389,"186":389,"186m":389,"187":389,"187m":389,"188":389,"188m":389,"189":389,"189m":389,"18m":389,"190":389,"1903":111,"190m":389,"191":389,"191m":389,"192":389,"192m":389,"193":389,"193m":389,"194":389,"194m":389,"195":389,"195m":389,"196":389,"196m":389,"197":389,"1970":101,"197m":389,"198":389,"198m":389,"199":389,"1996":144,"1998":144,"199m":389,"19m":389,"1_7":8,"1d100":[122,127,213],"1d2":98,"1d20":122,"1d6":127,"1gb":155,"1st":[30,58,101,377,393,394,395],"200":[253,389,431],"2001":144,"2003":144,"2004":144,"2008":390,"200m":389,"201":389,"2010":389,"2011":[78,205,251,270],"2012":[78,203,213,214,224],"2014":[78,91,250,253],"2015":[64,78,147,226,242,243],"2016":[78,236,239,249,251],"2017":[6,78,101,155,206,207,212,227,241,246,247,254,256,257,258,259,260,272,273],"2018":[64,76,78,116,117,204,225,235,240],"2019":[64,78,144,224],"201m":389,"202":389,"2020":[55,64,78,79,101,209,253,268],"2020_01_29":383,"2020_01_29__1":383,"2020_01_29__2":383,"2021":[50,64,78,393,394,438],"202m":389,"203":[155,389],"203m":389,"204":389,"2048":151,"204m":389,"205":[373,389],"205m":389,"206":389,"206m":389,"207":389,"2076":111,"207m":389,"208":[107,389],"208m":389,"209":389,"209m":389,"20m":389,"210":389,"210m":389,"211":389,"211m":389,"212":[55,389],"2128":98,"212m":389,"213":[49,389],"213m":389,"214":[49,389],"214m":389,"215":389,"215m":389,"216":389,"216m":389,"217":389,"217m":389,"218":389,"218m":389,"219":[76,389],"219m":389,"21m":389,"220":389,"2207":241,"220m":389,"221":[368,389],"221m":389,"222":[60,367,389],"222m":389,"223":[55,389],"223m":389,"224":389,"224m":389,"225":[55,389],"225m":389,"226":389,"226m":389,"227":389,"227m":389,"228":389,"228m":389,"229":389,"229m":389,"22m":[367,389],"22nd":390,"230":[60,389],"230m":389,"231":389,"231m":389,"232":389,"232m":389,"233":[55,180,377,389],"233m":389,"234":[207,389],"234m":389,"235":389,"235m":389,"236":389,"236m":389,"237":[55,389],"237m":389,"238":389,"238m":389,"239":389,"239m":389,"23fwsf23sdfw23wef23":5,"23m":389,"240":389,"240m":389,"241":389,"241m":389,"242":389,"2429":438,"242m":389,"243":389,"243m":389,"244":[42,389],"244m":389,"245":389,"245m":389,"246":389,"246m":389,"247":389,"247m":389,"248":389,"248m":389,"249":389,"249m":389,"24m":389,"250":389,"250m":389,"251":389,"251m":389,"252":389,"252m":389,"253":389,"253m":389,"254":389,"254m":389,"255":[147,367,389],"255m":389,"256":[55,60,179,367],"25m":389,"26m":389,"27m":389,"280":152,"28gmcp":338,"28m":389,"29m":389,"2d6":[100,122,213],"2gb":155,"2nd":[30,58,223,377,393,394,395],"2nd_person_pronoun":394,"2sgpre":395,"2xcoal":210,"300":[60,139,212,378],"3000000":105,"302":431,"30m":[367,389],"30s":[122,279],"31m":[367,389],"31st":101,"32bit":[147,149],"32m":[367,389],"32nd":100,"333":[55,60],"33m":[367,389],"340":98,"343":30,"34m":[367,389],"358":50,"358283996582031":5,"35m":[367,389],"360":101,"3600":101,"36m":[367,389],"37m":[367,389],"3872":111,"38m":389,"39m":389,"3c3ccec30f037be174d3":390,"3d6":213,"3rd":[30,58,101,223,377,393,394,395],"3rd_person_pronoun":394,"3sgpast":393,"3sgpre":[393,395],"4000":[2,76,87,119,149,151,154,155,157,158,162],"4001":[2,49,50,51,52,53,73,76,90,102,119,132,141,142,145,149,151,154,155,157,158,162,343],"4002":[2,145,151,155,157],"4003":155,"4004":155,"4005":155,"4006":155,"403":11,"404":[53,102],"40m":[367,389],"41917":334,"41m":[367,389],"4201":155,"425":367,"42m":[367,389],"430000":101,"431":367,"43m":[367,389],"443":[145,151,158],"444":60,"44m":[367,389],"45m":[19,367,389],"46m":[367,389],"474a3b9f":40,"47m":[367,389],"48m":389,"49m":389,"4er43233fwefwfw":76,"4th":[83,85,144],"500":[53,60,83,139,281,367,438],"50000":105,"500red":367,"502916":8,"503435":8,"505":367,"50m":389,"50mb":155,"516106":98,"51m":389,"520":60,"52m":389,"530":116,"53m":389,"543":[30,377],"5432":146,"54343":30,"5434343":377,"54m":389,"550":[367,373],"550n":92,"551e":92,"552w":92,"553b":92,"554i":92,"555":[60,241,367],"555e":92,"55m":389,"565000":101,"566":42,"56m":389,"577349":389,"57m":389,"5885d80a13c0db1f8e263663d3faee8d66f31424b43e9a70645c907a6cbd8fb4":84,"58m":389,"593":390,"59m":389,"5d5":98,"5x5":82,"600":390,"60m":389,"61m":389,"624660":50,"62cb3a1a":40,"62m":389,"63m":389,"64m":389,"64x64":53,"65m":389,"6666":62,"6667":[144,153,169,187,355],"66m":389,"67m":389,"686":58,"68m":389,"69m":389,"6d6":98,"70982813835144":5,"70m":389,"71m":389,"72m":389,"73m":389,"74m":389,"75m":389,"760000":101,"76m":389,"775":2,"77m":389,"78m":389,"79m":389,"7a3d54":53,"8080":155,"80m":389,"8111":2,"81m":389,"82m":389,"83m":389,"84m":389,"85000":105,"85m":389,"86400":137,"86m":389,"87m":389,"8859":[16,70,194],"88m":389,"89m":389,"8f64fec2670c":155,"900":[225,373],"9000":430,"90m":389,"90s":391,"91m":389,"92m":389,"93m":389,"94m":389,"95m":389,"96m":389,"97m":389,"981":241,"98m":389,"990":373,"99999":121,"999999999999":282,"99m":389,"\u6d4b\u8bd5":92,"abstract":[67,83,88,112,122,218,260,362,363,364,381,384,390],"ansl\u00f6t":64,"boolean":[13,14,18,22,30,51,108,141,177,213,225,292,296,307,334,362,365,367,368,384,391],"break":[3,15,31,48,51,54,55,60,64,69,82,84,95,99,100,107,115,116,117,121,123,126,148,158,165,182,189,190,239,265,275,284,323,367,374,375,390],"byte":[16,19,30,70,314,316,323,325,334,342,390],"case":[3,8,9,11,13,14,15,16,18,19,20,22,28,31,32,33,37,39,41,44,45,48,49,50,51,52,53,54,55,60,62,64,65,67,68,69,70,77,80,81,82,83,84,85,88,91,92,93,94,97,100,101,102,104,105,107,108,109,110,111,112,113,114,115,116,117,118,120,121,124,126,129,130,137,138,141,144,145,146,157,158,162,163,168,169,170,174,176,177,179,182,188,189,190,193,196,197,202,203,204,206,209,210,213,224,225,233,241,243,248,252,265,271,275,282,284,286,287,288,291,292,294,296,300,304,306,319,323,327,331,345,352,355,362,363,364,365,367,369,377,381,387,390,394,398,422,443],"catch":[0,6,16,19,36,42,47,95,100,107,126,136,169,188,216,271,305,314,319,326,352,353,362,372,374,375,381,383,386,439],"char":[13,44,68,82,83,98,100,106,111,114,127,129,137,141,152,168,182,188,218,219,226,271,281,284,296,311,324,337,338,359,367,373,376],"class":[0,3,6,12,13,17,18,20,27,28,29,30,31,37,39,41,42,44,49,50,52,53,54,55,56,62,64,67,73,78,79,81,83,85,86,87,88,91,92,93,94,95,96,97,98,99,100,101,103,104,105,106,107,108,109,110,111,112,115,118,119,121,122,126,127,129,130,132,135,136,137,138,140,141,142,152,168,169,170,171,172,175,176,177,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,196,197,198,202,203,204,205,206,209,210,211,212,213,214,216,217,218,219,221,222,223,224,225,226,229,230,232,233,235,236,239,240,241,242,243,247,248,249,250,251,252,253,254,256,257,258,259,260,262,264,265,266,268,269,270,271,272,273,275,276,279,281,282,283,284,286,287,288,292,293,294,295,296,298,300,301,303,304,305,306,307,308,309,311,312,314,316,317,320,321,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,345,347,350,352,353,354,355,357,358,359,361,362,363,364,365,367,368,369,370,371,372,373,374,375,376,377,378,380,381,382,383,384,385,386,387,388,389,390,395,398,399,400,402,403,404,405,406,408,410,411,412,413,414,416,419,421,422,424,425,430,431,434,435,436,438,439,440,441,443],"const":272,"default":[2,3,5,6,7,8,9,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,31,35,36,37,39,41,42,44,45,46,48,49,50,52,54,55,56,57,60,61,62,63,64,65,67,68,70,71,72,73,74,75,76,77,78,79,80,81,82,85,86,87,88,90,91,94,96,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,116,117,118,119,122,123,124,126,129,130,132,134,135,136,138,139,141,142,145,146,149,150,151,152,153,154,155,157,158,159,162,165,166,168,169,171,172,173,174,175,176,177,196,198,203,204,205,206,207,209,211,212,213,214,216,218,219,221,222,223,224,225,226,227,230,232,233,236,239,240,242,243,246,247,249,250,251,252,253,254,256,257,258,259,260,264,265,269,271,272,273,275,278,281,282,283,284,285,286,287,288,289,290,292,294,296,300,301,304,305,307,308,309,312,314,316,318,319,320,324,336,337,338,343,345,346,352,353,354,355,359,360,362,363,364,365,367,369,370,372,374,375,376,377,380,381,383,384,385,386,387,390,391,398,410,416,421,422,430,436,438,439,440,441,442,443],"export":154,"final":[0,2,8,19,22,41,44,48,53,54,60,64,65,67,85,89,94,96,100,102,106,108,110,111,112,114,115,120,123,127,129,130,134,139,141,142,146,149,151,158,173,174,175,182,187,191,209,213,254,281,292,301,351,355,367,369,374,375,443],"float":[30,81,85,115,169,212,231,232,235,253,308,314,326,363,377,378,386,390],"function":[0,5,7,8,9,13,14,15,19,22,27,28,29,31,32,39,41,42,45,47,48,49,51,52,54,57,58,60,62,65,67,68,69,71,73,74,76,79,80,82,84,85,87,88,90,91,92,94,97,99,100,101,102,104,105,106,107,108,109,111,113,114,115,117,120,121,122,123,124,126,127,130,132,136,138,141,142,146,149,154,159,163,165,168,171,174,176,177,179,180,181,182,183,187,188,189,190,192,193,194,196,197,203,204,205,209,211,212,213,216,218,223,224,225,227,231,232,235,236,240,242,243,248,249,253,254,256,257,258,259,260,265,268,270,271,272,273,281,282,283,288,290,291,292,296,299,300,301,305,307,308,309,314,318,319,323,334,335,340,343,346,353,355,357,364,365,366,367,368,370,371,372,374,375,377,378,383,384,385,389,390,391,394,414,416,419,439,440,441,443],"g\u00e9n\u00e9ral":144,"goto":[83,106,268,275,374,443],"import":[1,3,5,6,7,8,10,12,13,14,15,16,18,19,20,22,27,28,29,30,31,32,33,34,35,37,39,42,44,45,46,47,48,49,50,51,53,54,56,57,58,62,64,65,67,70,73,74,75,76,77,79,80,81,82,86,87,88,90,91,92,93,94,95,96,97,98,99,100,101,102,104,106,107,108,110,111,113,114,115,118,121,123,124,126,127,129,130,132,134,135,136,137,138,139,140,141,142,148,149,152,153,155,158,159,163,165,176,182,192,193,203,204,205,206,207,209,212,213,223,224,225,235,236,239,241,242,243,249,250,252,253,254,256,257,258,259,260,265,270,271,273,287,292,300,301,309,314,318,326,327,348,352,355,356,362,364,368,369,372,373,374,375,376,377,387,388,390,421,441,443],"int":[13,20,28,30,32,42,48,81,83,92,96,98,100,106,107,114,116,130,142,168,169,170,174,175,177,197,203,206,212,213,223,225,227,229,231,232,235,243,253,254,256,257,258,259,260,272,281,282,284,289,294,296,301,303,306,308,309,311,312,314,319,323,324,325,326,328,332,333,334,342,343,345,355,357,359,362,363,367,370,372,373,374,375,376,377,378,381,383,387,390,393],"long":[0,8,11,13,16,18,19,22,28,29,31,33,36,44,47,48,54,62,67,69,70,72,73,76,77,80,81,82,83,84,85,88,92,94,97,100,101,104,106,108,109,111,114,116,117,123,124,126,127,136,138,139,141,143,144,146,152,153,155,179,182,189,203,210,214,232,240,250,259,272,282,323,328,343,367,368,375,376,377,390,393],"new":[0,2,5,7,9,11,12,13,14,15,18,19,20,22,25,26,27,28,31,33,34,35,37,39,40,41,44,45,46,49,50,51,55,56,57,61,62,64,65,68,69,72,73,75,76,77,78,81,82,83,84,85,87,88,89,91,92,94,96,97,99,101,104,105,106,107,108,109,111,115,116,117,118,119,120,121,122,124,125,126,127,128,129,130,131,133,134,135,136,138,140,142,143,144,146,147,148,149,150,151,152,153,154,155,156,157,159,168,169,175,176,177,179,180,182,187,189,190,193,194,196,204,205,206,209,214,216,217,218,221,223,224,225,229,232,236,239,240,241,242,243,249,250,253,254,256,257,258,259,260,269,270,271,273,275,281,282,283,284,286,288,292,294,295,296,298,300,301,303,304,307,308,309,311,314,323,324,325,326,332,333,334,339,346,354,355,359,362,363,364,365,367,368,370,373,374,375,376,381,383,384,390,398,400,403,404,431,436,438,440,442,443],"null":[49,67,108,145,399,406],"public":[11,18,53,92,100,108,113,123,142,150,151,153,155,157,158,187,296,359,376,443],"return":[2,3,5,6,8,13,16,18,19,22,27,29,30,31,32,33,37,39,41,42,45,46,48,49,51,52,53,54,58,60,62,64,69,72,77,79,81,82,83,85,88,90,91,92,93,94,95,96,97,100,101,102,104,105,106,107,108,109,114,115,118,120,126,127,129,130,132,135,136,138,141,142,152,157,158,163,164,168,169,170,171,173,174,175,176,177,179,182,187,189,192,193,196,197,198,202,203,204,206,209,212,213,216,217,218,219,221,223,224,225,227,229,230,231,232,235,236,240,241,242,243,247,248,249,252,253,254,256,257,258,259,260,262,265,268,269,270,271,272,273,275,281,282,283,284,286,287,288,289,291,292,294,295,296,298,299,300,301,303,305,306,307,308,309,311,312,314,319,320,323,324,326,327,328,329,331,332,333,334,335,337,338,339,341,342,343,345,346,352,353,355,357,358,359,362,363,364,365,367,368,369,370,371,372,374,375,376,377,378,381,383,384,385,386,387,389,390,391,393,394,398,399,400,402,403,404,406,408,410,411,413,419,421,423,430,435,436,438,439,441,443],"short":[3,13,28,36,37,46,51,58,60,65,72,74,77,80,83,94,96,99,100,101,109,112,114,116,122,130,148,152,158,163,187,204,206,218,232,239,242,243,272,282,301,368,390,393],"static":[31,49,51,52,53,73,78,81,85,100,113,122,123,134,165,166,192,199,204,229,243,251,252,300,301,359,370,410,411,413,419,428,439,443],"super":[20,37,48,62,77,79,81,92,99,100,101,104,114,117,130,136,138,204,206,243,443],"switch":[11,12,14,15,18,20,22,27,31,39,48,54,56,57,60,68,72,75,76,80,92,100,104,105,109,129,130,138,139,146,150,153,155,156,162,179,180,181,182,187,188,189,190,192,194,213,218,221,224,236,239,240,257,265,275,304,364,370,375,391],"th\u00ed":109,"throw":[11,13,41,63,77,141,154,176,308,390],"true":[0,8,12,13,14,18,19,20,22,27,28,30,31,32,33,34,36,39,42,44,47,48,49,50,51,52,53,54,60,62,63,64,67,71,73,77,81,83,90,91,92,94,98,100,101,102,104,106,107,108,109,113,114,115,118,120,123,126,129,130,135,137,138,139,141,148,150,153,155,156,157,168,170,171,173,175,176,177,179,182,187,189,190,193,196,197,198,203,204,206,207,209,210,212,213,216,217,218,221,223,225,227,229,232,240,241,242,243,249,253,254,256,257,258,259,260,265,268,269,273,281,282,283,284,286,288,291,292,294,295,296,298,300,301,304,305,306,307,308,309,312,314,319,320,323,325,332,337,342,343,353,355,357,359,362,363,364,367,370,372,374,375,376,377,378,381,385,386,387,390,391,395,398,399,400,402,403,404,405,406,411,438],"try":[0,3,5,6,8,13,14,16,18,19,27,28,30,31,32,33,39,41,42,50,51,54,55,56,58,63,64,67,69,70,73,74,75,76,77,79,80,81,82,83,85,87,88,90,91,92,94,95,96,97,98,99,100,102,104,107,108,109,110,111,112,114,115,116,117,119,121,122,124,125,126,127,128,130,131,133,134,136,137,138,139,141,142,145,146,148,149,150,151,154,155,158,163,168,171,175,177,182,196,198,203,204,209,212,214,233,241,242,243,249,250,252,253,256,257,258,259,260,265,269,270,271,273,281,284,286,288,296,300,311,314,323,338,339,343,357,362,364,367,369,370,372,373,377,386,390,399,406],"var":[51,68,146,151,246,338,368],"void":98,"while":[5,8,13,14,15,18,20,22,25,27,28,30,35,39,41,42,49,51,54,58,60,64,65,67,69,72,75,76,77,81,82,83,84,85,87,89,92,93,94,98,99,100,101,107,109,110,112,113,114,116,117,120,121,122,123,126,129,134,136,138,141,142,146,149,151,154,155,158,163,168,179,182,189,190,193,203,209,225,233,240,241,243,257,260,265,269,271,273,281,284,296,300,301,307,338,361,362,364,374,376,377,390,391,399,406,439],AIs:144,AND:[13,33,39,111,127,182,225,292,362,365],AWS:[155,157],Adding:[1,21,22,39,69,99,103,105,106,113,116,122,123,126,129,152,165,166,189,199,224,281,374,443],Age:[225,430],And:[0,2,3,18,22,28,44,54,67,75,76,77,80,82,90,91,92,94,99,101,102,107,114,116,117,122,124,127,139,141,176,206,254,256,257,258,259,260,284,443],Are:[22,105,109,121,144,374,443],Aye:80,BGs:139,Being:[100,104,116,120,130],But:[0,3,8,13,14,16,18,19,20,22,28,31,39,41,42,45,48,54,58,60,65,67,75,77,82,83,84,85,87,88,91,92,93,94,96,97,99,101,102,105,106,107,108,109,111,113,114,115,116,117,118,121,123,124,126,127,131,139,141,142,148,151,153,157,159,175,176,203,253,284,300,365,440],DNS:[151,155],DOING:225,DoS:[5,332],Doing:[22,42,87,94,98,108,127,142,176,179],For:[2,3,4,5,8,10,11,12,13,14,15,17,18,19,20,22,28,30,31,33,35,38,41,42,44,49,50,52,53,55,56,57,58,59,60,64,65,67,68,70,72,73,74,75,76,77,79,80,81,82,83,84,85,87,88,91,92,94,96,98,99,100,101,102,104,106,107,109,111,113,114,115,116,117,118,122,123,126,127,129,130,134,138,139,140,141,142,144,145,146,149,151,153,155,156,157,158,163,168,175,176,177,182,187,189,192,196,197,198,204,206,211,213,218,224,225,226,235,243,249,251,253,254,257,269,282,284,286,288,291,292,296,301,308,334,338,343,362,364,367,371,374,377,384,386,390,415,423,430,440],GMs:[100,122,123],Going:[123,124,272,443],Has:[78,147,256,257,258,259,260],His:[99,226],IDE:[7,85],IDEs:99,IDs:[75,141,142,157,231,362,390,413],INTO:[182,225,275],IOS:147,IPs:[55,146,158,246,357],IRE:[68,338],Its:[4,22,33,37,42,44,58,65,67,101,102,187,226,265,301,372,374,390],LTS:6,NOT:[13,22,33,51,92,111,155,158,182,282,292,301,357,377],Near:112,Not:[8,11,18,32,46,47,51,58,69,95,99,108,111,116,117,121,124,140,141,145,147,148,155,169,176,190,296,311,324,325,326,328,329,330,336,338,341,362,363,384,394],OBS:[57,78],ONE:158,Obs:8,One:[2,9,10,11,28,30,33,36,42,44,47,55,58,75,77,80,81,85,88,92,94,99,100,102,107,108,109,111,114,116,117,118,123,126,130,135,138,139,140,144,145,146,149,163,165,171,173,189,203,209,213,218,242,253,254,269,270,281,282,284,294,300,301,324,352,362,363,367,368,374,375,377,390,399,406,438,443],PMs:443,PRs:11,Such:[8,14,22,28,50,84,88,93,99,121,123,127,182,301,367,374],THAT:107,THE:225,THEN:[176,225],THERE:225,TLS:[158,443],That:[0,3,4,5,11,16,20,22,30,32,39,42,44,46,47,48,54,74,75,76,77,80,81,82,83,87,88,90,91,92,96,99,101,102,107,108,109,111,112,114,115,116,120,122,123,126,127,132,134,142,156,203,204,214,253,254,282,292,301,355,374,415],The:[2,3,4,6,7,8,9,10,11,12,13,16,17,18,19,20,22,24,26,29,32,33,34,35,36,37,40,44,45,46,47,48,49,51,52,53,55,58,60,62,63,64,67,68,69,70,71,72,74,75,76,79,82,84,85,86,87,88,90,91,92,93,95,96,97,98,99,101,104,105,107,108,109,110,111,112,113,114,115,116,117,118,119,122,123,126,127,134,136,137,138,139,140,141,142,143,144,145,146,147,148,149,151,153,154,155,156,157,158,159,161,163,168,169,170,171,173,174,175,176,177,179,182,186,187,188,189,190,191,192,193,194,196,197,198,203,204,206,209,210,212,213,214,216,217,218,219,221,223,224,225,226,227,229,230,231,232,235,236,240,241,242,243,249,250,253,254,256,257,258,259,260,262,264,265,268,269,270,271,272,273,275,278,281,282,283,284,285,286,287,288,289,291,292,294,295,296,298,299,300,301,303,304,305,306,307,308,309,311,312,313,314,316,318,319,321,323,324,325,326,327,328,329,330,331,332,333,334,336,337,338,339,341,342,343,345,346,351,352,353,354,355,359,362,363,364,365,367,368,369,370,371,372,373,374,375,376,377,378,379,381,383,384,385,386,387,388,390,391,393,394,399,400,406,410,411,413,415,416,419,421,430,438,439,442,443],Their:[28,41,53,127,158,226],Theirs:226,Then:[3,5,8,11,16,45,51,53,64,75,76,77,80,83,85,96,98,102,107,114,149,157,224,276],There:[0,5,6,8,9,13,14,15,16,18,19,20,22,28,30,31,37,39,42,44,45,46,48,49,50,53,54,57,58,60,67,68,69,70,75,77,80,81,82,83,85,88,89,91,92,99,100,101,102,104,106,107,108,109,110,111,113,115,116,118,121,122,123,124,126,127,129,130,134,135,136,138,141,144,145,146,151,153,155,156,158,159,190,209,224,225,253,254,256,257,258,259,260,273,281,301,309,319,338,355,367,368,374,377,442],These:[5,8,11,13,14,17,22,24,25,28,30,31,32,35,41,42,44,45,46,48,50,51,52,53,58,60,62,65,67,68,71,75,76,77,79,81,82,83,85,90,92,96,102,107,108,109,110,111,113,114,116,117,118,122,123,126,127,138,141,150,151,155,157,158,163,167,168,173,175,177,179,181,183,187,191,197,204,209,212,235,236,240,242,243,247,253,265,271,279,281,282,284,286,287,292,296,300,301,309,313,320,339,342,343,345,354,355,356,362,364,367,371,374,375,376,377,378,383,384,385,390,394,398,407,440],USING:209,Use:[5,8,11,12,14,15,20,28,30,31,35,37,41,44,48,51,55,58,60,76,77,83,85,90,92,100,102,109,115,116,117,120,129,130,145,146,147,148,149,150,151,155,157,162,168,174,179,180,182,187,188,189,192,194,196,203,204,209,212,214,216,236,239,240,241,243,257,258,259,260,272,277,286,294,295,296,314,316,320,325,342,343,345,349,362,364,367,373,374,376,377,381,387,390,403,443],Used:[22,138,173,176,182,194,225,239,254,273,280,281,284,294,295,307,316,334,362,364,375,376,390,398],Useful:[28,83,155],Uses:[182,194,214,246,269,314,362,376,381,443],Using:[1,4,19,28,33,35,39,47,58,61,71,77,80,87,100,101,107,111,114,115,116,117,119,123,125,128,130,131,133,138,161,165,166,199,243,257,265,272,296,334,361,374,443],VCS:2,VHS:225,VPS:155,WILL:[107,147],WIS:100,WITH:[146,225],Was:187,Will:[20,32,83,109,121,163,168,187,209,212,221,223,241,243,284,296,299,301,312,314,323,324,364,374,376,377,378,385,390,443],With:[13,16,18,36,53,57,79,82,83,87,99,108,111,118,120,121,122,123,126,130,145,146,157,165,168,204,209,243,282,301,362,367,377],Yes:[22,225,372,374,443],__1:383,__2:383,_________________:48,_________________________:28,______________________________:28,________________________________:28,_________________________________:48,______________________________________:374,______________________________________________:28,_______________________________________________:28,____________________________________________________:28,_________________________________________________________:106,__________________________________________________________:106,__all__:[398,400,402,403],__defaultclasspath__:364,__dict__:314,__doc__:[22,31,177,190,192,193,288,370,374],__example__:6,__ge:111,__ge__:6,__getitem__:367,__gt:111,__iendswith:111,__in:111,__init_:376,__init__:[4,6,13,45,48,62,81,86,112,113,114,117,132,175,176,177,198,203,204,209,221,229,241,243,253,272,280,281,282,286,292,295,296,300,305,306,308,309,311,312,314,316,317,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,341,342,343,345,352,353,355,357,358,359,362,364,365,367,369,372,373,374,375,376,377,383,384,385,386,390,398,399,403,406,421,424],__istartswith:111,__iter__:13,__le:111,__lt:111,__multimatch_command:191,__noinput_command:[175,191,204,372,374,375],__nomatch_command:[191,204,216,271,372,374,375],__packed_dbobj__:50,__pycache__:113,__settingsclasspath__:364,__str__:438,__unloggedin_look_command:[26,194,214],_action_thre:28,_action_two:28,_all_:175,_always_:[209,377],_and_:[377,390],_asynctest:340,_attrs_to_sync:354,_attrtyp:362,_by_tag:19,_cach:364,_cached_cmdset:176,_call_or_get:204,_callable_no:374,_callable_y:374,_callback:[19,309],_char_index:367,_character_dbref:205,_check_password:28,_check_usernam:28,_clean_nam:202,_clean_str:367,_cleanup_charact:129,_code_index:367,_compress_cont:202,_copi:[182,296],_create_charact:141,_creation:48,_dashlin:30,_data:375,_default:[28,374],_defend:28,_differ:367,_errorcmdset:176,_event:235,_every_:209,_evmenu:374,_file:383,_flag:300,_footer:22,_format_diff_text_and_opt:301,_funcnam:390,_get_a_random_goblin_nam:41,_get_db_hold:[353,364],_get_top:102,_getinput:374,_gettabl:319,_guaranteed_:377,_helper:377,_http11clientfactori:316,_init:0,_init_charact:129,_is_fight:94,_is_in_mage_guild:28,_ital:85,_italic_:148,_last_puppet:[50,403],_linklen:282,_loadfunc:372,_magicrecip:210,_maptest:279,_menutre:[28,92,374],_mockobj:252,_monitor:319,_monitor_callback:34,_nicklist_cal:169,_npage:375,_oob_at_:381,_option:28,_overrid:[51,73],_page_formatt:375,_pagin:375,_parsedfunc:377,_pending_request:359,_permission_hierarchi:291,_ping_cal:169,_playabel_charact:50,_playable_charact:[102,141,403],_postsav:381,_power_cal:30,_prefix:243,_process_cal:30,_quell:291,_quitfunc:372,_raw_str:367,_reactor_stop:[331,352],_read:253,_recog_obj2recog:243,_recog_obj2regex:243,_recog_ref2recog:243,_regex:243,_repeat:319,_safe_contents_upd:295,_savefunc:372,_saver:[13,371],_saverdict:[13,253,371],_saverlist:[13,371],_saverset:371,_sdesc:243,_select:28,_sensitive_:422,_session:374,_set:111,_set_attribut:28,_set_nam:28,_should:443,_some_other_monitor_callback:34,_start_delai:309,_static:85,_step:282,_stop_:390,_stop_serv:331,_swordsmithingbaserecip:210,_templat:85,_test:[30,173],_to_evt:375,_traithandlerbas:252,_transit_:284,_typeclass:53,_uptim:30,_validate_fieldnam:100,_weight:282,_yes_no_quest:374,a2enmod:145,a8oc3d5b:157,a_off:203,aaaaaargh:116,aardwolf:68,abandon:216,abat:124,abbrevi:[60,64,182,210,239,377],abcd:188,abid:139,abil:[8,13,20,22,29,33,41,51,54,69,83,98,99,100,109,113,116,120,122,123,127,130,142,155,157,242,243,250,256,257,258,259,260,296,307,314,362,434],abl:[0,2,3,5,7,10,11,13,14,15,18,19,20,22,28,29,30,36,37,41,42,46,50,52,53,57,67,74,75,77,79,81,82,83,85,87,88,90,91,93,94,99,100,102,104,106,107,109,115,116,120,121,124,126,127,129,130,132,138,141,142,145,146,149,151,152,154,155,157,158,159,176,179,180,182,183,187,189,196,198,204,212,218,227,236,243,249,253,256,257,258,259,260,277,281,282,362,364,371,386,390,431,443],abort:[19,22,28,29,37,83,92,118,126,168,177,182,196,209,216,250,271,275,282,296,299,307,374,375,377,390,443],about:[0,2,3,5,6,8,11,13,14,15,16,17,20,22,26,28,30,31,35,38,41,46,49,50,53,54,55,56,60,65,67,69,70,73,75,76,77,80,84,85,87,88,89,91,92,95,96,97,99,102,103,104,106,107,108,109,110,111,112,113,114,116,119,120,121,124,125,126,127,128,129,130,131,132,133,134,136,137,139,142,143,144,146,147,148,149,152,154,155,157,158,159,161,163,168,182,189,192,203,204,206,209,213,216,218,219,251,258,259,260,270,271,279,281,288,296,314,316,319,328,330,332,341,343,345,346,353,355,363,365,367,375,381,390,399,406,413,443],abov:[0,2,7,8,11,12,13,14,15,19,20,22,27,28,30,31,32,33,34,41,42,44,46,48,49,51,52,53,54,55,58,62,64,67,73,74,76,79,80,81,82,83,84,85,88,90,91,93,94,95,97,98,99,100,101,102,104,106,107,109,111,113,114,115,116,117,118,119,122,126,129,130,136,138,140,141,145,146,147,149,151,155,157,163,175,176,182,204,209,213,223,225,227,236,241,243,250,251,253,254,256,258,259,260,275,281,292,294,296,319,374,377,385,399],above_str:30,abruptli:253,absolut:[19,53,85,98,101,103,107,144,206,212,213,226,373,378,390],absorb:32,abspath:390,abstractus:171,abus:[158,443],academi:144,acccount:24,accecss:377,accept:[11,13,15,18,19,20,28,30,32,33,41,47,48,68,77,83,84,100,115,116,122,123,141,142,146,148,155,168,173,174,192,203,213,225,230,233,241,242,243,250,269,271,281,282,284,296,314,319,332,358,359,363,368,374,377,386,390],accept_callback:[230,232],access:[0,8,9,11,13,14,15,18,19,20,22,26,28,29,30,31,32,33,34,35,36,39,41,42,44,45,46,48,49,51,52,53,55,57,62,63,65,67,69,73,75,77,78,79,81,82,83,85,86,88,90,91,92,94,96,98,99,100,102,103,106,107,108,110,111,112,113,114,115,116,119,120,122,123,126,127,129,130,138,139,141,142,145,146,149,151,152,155,157,158,159,162,168,171,175,176,177,179,180,182,187,188,189,190,192,194,196,197,198,204,209,211,216,224,227,229,231,240,242,243,252,253,256,257,258,259,260,271,272,284,286,288,289,290,291,292,295,296,299,300,301,304,306,308,309,311,314,323,324,353,355,361,362,364,365,368,369,370,377,383,389,390,394,399,400,406,411,413,416,430,436,438,441,443],access_obj:[291,362],access_object:33,access_opt:391,access_token_kei:[137,152],access_token_secret:[137,152],access_typ:[37,168,177,182,196,198,286,288,291,292,296,362,364,435,436,441,443],accessed_obj:[33,92,126,138,291,292],accessing_obj:[13,33,92,126,138,168,196,198,286,288,291,292,296,362,364],accessing_object:[13,33,291],accessor:[171,198,288,295,304,362,364,365,382],accessori:149,accident:[16,20,58,83,85,123,130,180,182,210,353],accommod:90,accomod:376,accompani:130,accomplish:[55,81,87,92,121,123,126,377],accord:[20,22,82,111,123,129,139,204,206,223,241,242,257,281,308,367,368,377],accordingli:[7,81,100,155,272],account1:431,account2:431,account:[5,8,11,13,15,17,18,20,22,25,26,27,28,29,30,32,33,35,36,37,39,40,41,42,44,45,46,48,49,53,55,57,60,63,65,69,72,73,75,76,77,81,82,84,85,86,90,91,92,98,99,101,102,104,107,108,109,112,113,114,115,118,121,130,137,139,141,142,147,150,152,155,157,159,163,165,166,172,173,174,175,176,177,178,180,182,183,184,187,188,189,190,192,193,194,196,197,198,204,205,206,212,214,216,217,224,225,227,229,230,232,236,243,246,249,256,258,259,260,265,268,269,270,271,273,284,286,288,291,292,294,295,296,298,300,301,302,304,314,318,319,334,345,346,353,354,355,362,364,365,367,370,374,375,377,384,385,387,388,390,391,396,397,403,410,411,413,416,421,422,429,430,431,433,436,438,440,443],account_cal:[179,187,190,236],account_count:355,account_id:[141,296],account_mod:182,account_nam:98,account_search:[170,243,296],account_subscription_set:171,account_typeclass:[388,431],accountadmin:[50,398],accountattributeinlin:398,accountchangeform:398,accountcmdset:[12,20,26,77,99,100,101,115,179,183,205,236],accountcreateview:434,accountcreationform:398,accountdb:[48,86,141,165,168,171,177,196,286,288,361,364,384,391,398,399,406,410],accountdb_db_attribut:398,accountdb_db_tag:398,accountdb_set:[362,365],accountdbfilterset:[410,416],accountdbmanag:[170,171],accountdbpasswordcheck:334,accountdbviewset:416,accountform:[430,434],accountid:141,accountlist:100,accountlistseri:[413,416],accountmanag:[168,170],accountmixin:434,accountnam:[100,182,194,197,214],accountseri:[413,416],accounttaginlin:398,accross:83,accru:168,acct:118,accur:[77,177,221,229,253,257,260,280,286,301,308,312,314,316,317,325,334,335,337,339,342,343,362,367,385,386,424],accuraci:[80,107,122,257,258,259],accus:127,accustom:36,acept:225,achiev:[19,22,60,75,77,85,99,111,120,124,139,219,259,314],ack:29,acl:202,acquaint:[99,124],acquir:369,across:[28,30,41,42,44,48,56,62,67,69,83,98,107,116,121,123,151,168,175,176,206,225,242,271,282,284,287,296,307,309,311,323,324,338,355,375,376,377],act:[5,12,14,18,20,28,42,44,52,61,81,82,83,84,89,94,98,100,111,116,121,123,130,145,146,163,165,168,182,187,198,218,219,225,253,254,276,281,282,283,284,311,323,324,343,362,365,369,374],action1:129,action2:129,action:[3,5,42,49,50,58,60,68,75,77,78,80,83,87,88,94,96,99,101,107,113,114,116,121,126,127,129,130,135,136,141,155,168,169,177,187,188,192,196,203,216,218,221,223,225,243,256,257,258,259,260,265,268,272,282,286,287,288,300,304,305,326,345,346,347,357,364,374,375,381,398,411,414,415,416,443],action_count:129,action_nam:[256,257,258,259,260],action_preposit:218,actiondict:129,actions_per_turn:[256,257,259,260],activ:[0,2,9,11,14,19,20,22,37,39,42,44,49,55,60,63,64,65,73,76,85,88,90,93,101,104,108,121,134,144,149,150,153,154,155,156,162,163,168,173,176,180,182,192,194,196,230,247,265,269,273,295,296,299,308,319,326,327,328,329,330,334,336,337,338,345,355,357,362,363,374,375,376,377,390,443],activest:389,actor:[30,260,296,377,393,443],actor_stance_cal:443,actual:[0,2,3,5,6,7,8,9,12,13,14,15,18,19,28,30,31,33,35,36,37,39,41,44,46,47,50,51,52,53,54,57,58,60,62,65,67,68,70,77,80,81,82,83,85,88,91,94,97,100,102,104,106,107,108,109,110,111,112,113,115,116,117,118,120,121,122,123,124,126,127,129,130,131,134,138,139,141,142,144,145,149,152,155,157,159,168,173,177,179,182,187,188,190,192,193,194,196,198,203,204,206,209,210,216,221,224,225,235,239,240,242,243,250,251,252,254,256,257,258,259,260,265,270,271,273,278,279,281,282,283,286,288,291,292,295,296,301,334,337,343,345,351,353,354,355,359,360,362,364,367,369,372,374,381,384,385,386,390,408,441,443],actual_return:8,ada:31,adapt:[62,75,90,91,102,122,127,141,209],add:[0,2,3,5,7,8,9,10,11,12,13,14,15,16,17,18,20,22,25,26,27,28,30,31,32,33,34,35,36,37,39,41,42,44,46,47,48,49,50,51,54,56,57,60,62,63,64,67,68,70,73,74,75,76,77,78,79,80,81,82,83,84,85,87,88,91,94,95,96,97,99,100,101,102,103,104,105,106,107,108,109,111,113,114,115,116,117,118,119,121,122,123,124,126,127,129,130,135,136,137,138,140,141,142,143,144,145,147,148,150,151,152,155,156,157,159,165,168,171,175,176,182,187,188,189,191,193,196,198,203,204,205,206,207,209,212,213,214,216,218,223,224,229,230,232,233,235,236,239,240,242,243,246,249,250,252,253,254,256,257,258,259,260,262,265,268,269,270,271,272,275,276,277,278,281,282,283,291,292,295,296,300,301,304,305,306,307,308,309,314,319,320,324,327,328,330,332,336,343,345,346,348,356,362,365,368,372,373,374,375,376,377,381,383,385,386,398,403,410,416,438,441,443],add_:376,add_act:129,add_alia:187,add_argu:272,add_callback:[230,232],add_charact:129,add_choic:[204,443],add_choice_:204,add_choice_edit:[77,204],add_choice_quit:[77,204],add_collumn:177,add_column:[100,376],add_condit:258,add_default:[20,91,106,126,138,176],add_dist:260,add_ev:232,add_fieldset:[398,403],add_form:[398,403],add_head:376,add_languag:242,add_map:283,add_msg_bord:223,add_row:[100,105,177,376],add_user_channel_alia:[18,196],add_view:[398,400,403],add_xp:127,addcallback:[22,296],addclass:[51,165,166,396,417,443],addcom:[100,108],added:[2,3,7,9,11,17,19,20,22,31,33,41,42,46,49,62,67,68,69,75,77,79,82,83,85,90,91,92,99,100,102,107,108,111,113,114,115,116,117,122,126,127,129,130,135,138,140,141,143,147,150,154,157,163,168,173,175,176,177,187,191,192,194,203,204,206,207,209,210,213,226,229,232,235,242,243,253,256,257,258,259,260,265,273,277,281,282,286,292,296,299,301,306,308,319,353,357,362,365,368,374,375,376,383,390,416,423,434,438,442],addendum:84,adding:[2,5,6,7,9,11,13,15,17,19,20,25,26,28,33,41,46,47,48,51,53,60,62,64,67,69,75,76,77,79,80,83,85,91,94,99,100,101,102,103,104,106,107,111,115,116,117,123,129,130,132,138,139,141,159,175,176,180,182,189,204,209,212,225,227,229,232,236,242,243,253,254,256,257,258,259,271,272,275,296,300,301,306,314,345,362,370,376,390,399,406,443],addingservermxp:329,addit:[2,20,27,30,42,50,53,60,68,77,80,81,83,84,85,90,92,100,101,102,105,107,142,145,155,158,159,168,169,176,177,189,196,204,207,229,230,232,242,246,252,254,260,272,282,284,292,296,299,308,325,353,362,364,374,430,443],addition:[82,92,260],additionalcmdset:20,addpart:240,addquot:390,addr:[311,324,325,326,370],address:[11,22,36,44,55,58,62,73,76,81,107,132,146,151,155,158,168,170,180,196,214,226,296,311,324,326,334,354,357,390,391,443],address_and_port:334,addresult:240,addscript:42,addservic:62,adjac:[83,260,269],adject:[6,58,126,377,394],adjoin:243,adjust:[22,75,84,122,139,141,149,227,308,374,376,377],admin:[0,12,13,16,18,22,33,39,52,53,55,57,67,76,81,91,100,102,106,113,114,121,123,130,138,141,142,153,156,163,165,166,171,172,177,178,182,187,192,194,196,214,216,223,269,286,288,292,295,296,323,324,364,370,386,396,421,443],admin_sit:[398,399,400,402,403,404,405,406],admin_wrapp:401,adminconfig:421,administr:[2,22,33,39,54,72,85,87,88,100,146,149,158,311,323,324,443],adminportal2serv:323,adminserver2port:323,adminsit:[50,165,166,396,420,443],adminstr:311,admintest:431,admit:96,admittedli:[83,120],adopt:[0,77,79,88,91,99,123,198,338,393],advanc:[5,14,20,22,28,30,41,44,48,53,54,55,62,67,69,77,78,82,87,88,93,96,97,100,103,111,116,119,123,130,144,159,182,190,224,241,243,253,256,257,258,259,260,265,329,368,372,373,374,376,443],advantag:[2,15,16,28,31,41,58,80,83,87,93,96,98,100,101,102,123,126,127,129,130,132,136,141,155,158,159,203,204,246,254,256,257,258,259,260,365,368],advent:205,adventur:[78,82,113,120,123],advic:144,advis:[75,77,92],aesthet:27,affair:369,affect:[5,8,9,11,13,14,15,20,22,39,42,44,46,50,57,60,83,92,101,104,116,121,123,126,127,129,139,162,168,175,192,207,209,221,235,242,249,258,265,281,296,300,364,368,376,384],affili:308,affliat:308,afford:[44,106],afraid:155,after:[0,2,8,9,10,11,13,15,16,19,20,22,27,28,33,42,45,52,53,54,60,64,65,67,75,76,77,78,79,80,81,83,85,87,91,92,93,94,95,96,97,100,106,107,108,109,113,114,115,116,117,120,121,123,124,129,130,134,135,138,139,141,144,145,149,151,155,157,158,168,175,176,177,178,179,182,189,190,192,193,194,196,203,204,206,209,210,211,212,213,214,216,221,222,224,225,227,232,240,242,243,252,253,254,256,257,258,259,260,265,266,269,270,271,272,273,279,282,286,295,296,301,303,305,307,308,314,336,337,340,345,352,353,354,355,357,359,362,367,368,369,372,374,375,381,385,388,389,390,411,414,434,436,441],afterlif:123,afternoon:224,afterward:[11,67,83,94,102,107,114,118,120,204],again:[3,7,9,11,13,14,15,18,22,28,35,42,44,52,55,60,67,75,77,81,82,83,88,91,93,94,96,98,99,100,101,102,104,106,107,108,109,112,114,115,116,117,119,121,123,126,127,129,130,138,139,141,146,148,149,151,155,156,157,162,163,169,176,187,193,212,232,241,256,259,260,265,273,307,314,331,334,337,357,367,368,371,386,388],againnneven:193,against:[8,13,20,22,48,64,65,84,91,99,100,111,120,122,129,155,158,168,174,175,210,243,256,257,258,259,260,292,294,296,300,301,332,357,362,364,365,387,390],age:[225,272,430],agenc:158,agent:2,agenta:[60,367],ages:225,aggreg:144,aggress:[13,15,120,154,269,364,443],aggressive_pac:269,agi:[8,13,253],agil:13,agnost:[84,88],ago:[92,114,157,390],agre:[70,123,124,127,203,221],agree:203,ahead:[2,15,69,77,81,115,138,147,155,336],aid:[70,119,189,190,203,359],aim:[1,67,69,87,100,103,106,116,121,122,124,127,139,155,300],ain:80,ainnev:[111,127,253,443],air:[82,91,109,117],airport:118,ajax:[51,62,155,343,354],ajaxwebcli:343,ajaxwebclientsess:343,aka:[5,13,76,123,240,390],akin:114,alarm:[105,109],alert:[18,196,296],alexandrian:144,algebra:81,algorith:242,algorithm:[31,83,123,281,282,294,390],alia:[8,11,12,18,20,22,26,30,36,37,42,44,46,48,50,72,76,77,82,83,91,97,99,100,108,109,116,118,149,155,171,174,177,179,182,187,188,189,190,193,196,224,229,243,249,253,266,269,271,273,275,282,291,294,295,296,301,304,309,319,345,363,364,365,370,377,386,387,388,394,398,399,400,402,403,404,406,410,412,413,414,416,430,434,435,436,441,443],alias1:[182,224],alias2:[182,224],alias3:224,alias:[11,12,14,18,19,20,22,28,30,31,32,36,37,41,50,58,72,74,77,82,91,92,94,97,100,104,105,106,108,109,126,129,130,168,175,177,179,180,181,182,187,188,189,190,191,192,193,194,196,197,203,204,205,206,209,210,213,214,216,218,224,225,226,230,236,239,240,243,249,250,251,254,256,257,258,259,260,265,269,270,271,272,273,275,282,286,287,288,289,294,295,296,301,345,363,364,365,370,372,374,375,383,387,394,410,413,443],aliasdb:168,aliasfilt:410,aliashandl:[365,406,413],aliasnam:301,aliasstr:370,align:[30,41,100,227,367,376,377,390],alist:6,aliv:[87,269],alkarouri:389,all:[0,2,5,6,7,8,9,11,12,13,14,15,16,17,18,19,20,22,25,27,28,30,31,32,33,35,36,37,39,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,62,64,65,67,68,69,70,71,72,73,74,75,76,77,79,80,81,82,83,84,85,86,87,88,89,91,93,94,95,96,97,98,99,100,101,104,105,106,107,108,109,110,111,112,113,115,116,117,118,119,120,121,122,124,126,127,128,129,130,131,132,134,135,136,138,139,140,141,142,143,144,145,146,148,149,153,154,155,156,157,158,159,162,163,168,169,170,172,173,174,175,176,177,178,179,180,181,182,183,184,187,188,189,190,191,192,193,194,196,197,198,203,204,205,206,209,210,213,214,216,218,219,221,222,224,225,226,229,232,236,239,240,241,242,243,247,249,250,251,252,253,254,256,257,258,259,260,264,265,268,269,270,271,272,273,275,281,282,283,284,286,287,288,289,290,291,292,293,294,295,296,299,300,301,303,305,306,307,308,309,310,313,314,318,319,320,323,325,326,328,330,331,332,333,334,337,338,341,342,343,345,346,352,353,354,355,357,359,360,361,362,363,364,365,367,368,369,370,371,372,373,374,375,376,377,381,383,385,387,389,390,391,393,395,398,399,400,402,403,404,406,407,408,416,419,421,423,430,436,438,439,441,442,443],all_alias:46,all_attr:364,all_book:118,all_cannon:111,all_cloth:13,all_cmd:189,all_connected_account:355,all_displai:309,all_famili:111,all_fantasy_book:118,all_flow:118,all_from_modul:390,all_kei:189,all_map:[83,283],all_opt:385,all_receiv:296,all_room:[14,111],all_ros:118,all_script:42,all_scripts_on_obj:42,all_sessions_portal_sync:355,all_to_categori:287,all_weapon:111,allcom:108,allerror:[314,323],allevi:[8,13,69,359],allheadersreceiv:359,alli:260,alloc:155,allow:[0,2,3,6,7,11,12,13,14,15,16,19,20,22,28,30,31,32,33,35,36,37,39,40,41,46,48,49,50,51,52,53,54,55,56,57,58,64,67,69,70,71,72,73,75,76,77,78,79,80,81,82,83,85,86,87,88,90,91,94,95,96,97,99,100,103,104,106,107,109,111,113,114,115,116,117,118,121,122,126,127,129,130,132,138,139,141,142,143,145,146,148,149,150,151,152,153,154,155,156,157,158,159,168,169,171,173,175,176,177,179,180,181,182,187,189,190,192,193,196,197,198,203,204,206,209,211,212,213,216,218,221,223,224,225,226,232,239,241,242,243,252,253,254,256,257,258,259,260,265,269,270,271,272,273,281,282,284,286,288,289,291,292,296,300,301,305,308,309,314,318,319,321,325,327,328,329,330,337,338,339,341,346,352,353,355,357,358,362,364,365,367,368,370,372,374,375,376,377,378,381,384,385,386,388,390,401,403,410,411,416,430,435,438,443],allow_abort:374,allow_dupl:175,allow_extra_properti:253,allow_nan:343,allow_quit:374,allow_reus:209,allowed_attr:100,allowed_fieldnam:100,allowed_host:[155,158],allowed_propnam:130,allowedmethod:343,allowext:359,almost:[13,22,31,47,48,50,57,116,117,204,206,316,323,361],alon:[8,14,28,33,36,67,78,81,94,98,100,116,124,127,129,175,189,284,309,319,345,368,370,376,377,406],alone_suffix:350,along:[5,22,28,32,42,45,55,60,68,83,88,89,107,111,112,116,120,121,124,126,128,138,143,159,168,179,203,213,242,246,253,254,259,282,292,296,343,361,416],alongsid:[151,225,283],alonw:304,alpha:[148,155,367,443],alphabet:[16,70,82,367,442],alreadi:[0,7,8,9,11,12,13,14,16,19,20,22,27,28,30,31,33,37,42,44,46,48,51,53,62,68,73,75,76,77,80,81,83,85,88,91,92,94,98,99,100,102,104,105,106,107,108,109,110,113,114,115,116,117,118,119,121,124,126,127,129,130,134,135,136,137,138,141,142,148,149,153,157,158,163,168,175,176,179,182,190,192,193,196,197,203,205,206,209,210,218,223,241,242,243,253,256,257,258,259,260,269,270,273,281,282,284,292,296,300,301,314,323,331,332,334,339,342,347,352,353,355,362,365,367,370,375,383,390,411,422],alredi:62,alright:203,also:[0,1,2,3,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,25,27,28,30,31,32,33,34,36,37,39,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,60,62,63,64,65,67,68,69,70,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,91,92,93,94,95,96,97,98,99,100,101,102,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,124,126,127,128,129,130,131,132,133,134,135,136,138,139,140,141,142,144,145,146,147,148,149,150,151,153,154,155,156,157,158,159,162,163,168,170,171,174,175,176,177,179,180,181,182,184,187,188,189,190,192,193,196,197,198,203,204,205,206,209,210,213,218,219,223,224,225,227,232,236,239,241,242,243,250,253,254,258,259,260,265,269,270,271,273,275,281,282,284,286,290,291,292,294,295,296,300,301,302,304,307,309,310,314,318,319,323,325,332,334,337,338,341,342,345,346,355,359,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,381,387,390,410,436,438,439,441,443],alt:367,alter:[51,75,82,88,90,146,362],altern:[11,13,18,22,28,31,36,42,46,50,60,64,74,78,79,82,85,88,94,99,104,108,119,126,136,141,146,149,153,155,161,187,190,196,240,243,253,260,265,291,292,294,332,367,370,390,443],although:[3,77,94,96,117,149,179,204,205,213,359,386,390],althougn:80,altogeth:[27,60,83,158],alwai:[4,8,9,11,12,13,14,15,18,19,20,22,28,30,31,32,33,35,37,39,41,42,44,45,46,47,48,51,55,58,60,67,68,73,75,78,79,81,83,84,85,88,90,91,92,95,96,99,100,101,102,106,107,108,109,114,115,116,117,118,119,121,123,126,127,130,138,139,142,145,146,149,153,155,168,175,176,177,179,181,182,187,189,190,193,196,197,198,209,211,216,221,236,242,243,249,253,265,281,282,284,289,291,292,294,295,296,300,301,309,314,316,319,323,331,334,337,338,342,343,346,353,355,360,362,363,364,365,367,370,377,381,386,387,390,391,411,423,439],always_pag:375,always_return:314,amaz:154,amazon:[144,155],ambianc:69,ambigu:[83,177,226,282,296,364],ambiti:[69,72],amend:11,amfl:15,ammo:91,among:[2,8,12,25,37,82,88,101,118,124,130,144,159,188,206,270,292,294,376,387],amor:233,amount:[18,42,56,60,84,121,122,127,130,158,192,210,256,257,258,259,260,296,355,372,443],amp:[40,44,62,65,165,166,310,311,314,322,324,332,340,352,355,443],amp_client:[165,166,310,443],amp_maxlen:340,amp_port:155,amp_serv:[165,166,310,322,443],ampclientfactori:311,ampersand:69,amphack:323,ampl:116,amplauncherprotocol:314,ampmulticonnectionprotocol:[311,323,324],ampprotocol:311,ampserverclientprotocol:311,ampserverfactori:324,ampserverprotocol:324,amsterdam:155,amus:108,anaconda:76,analog:[65,81],analys:28,analysi:247,analyz:[16,22,28,33,78,79,123,136,173,182,189,209,243,296,300,301,305,314,375,390,393,443],anchor:[177,196,260,286,288,364],anchor_obj:260,ancient:60,andr:147,android:[161,443],anew:[82,115,116,149,196,314],angelica:122,angl:[72,83,218],angri:31,angular:192,ani:[2,3,6,8,9,11,12,13,15,16,18,19,20,22,27,28,30,31,32,33,34,35,36,37,39,41,42,44,45,46,47,48,49,51,54,55,56,57,60,62,64,65,67,68,72,73,74,75,77,78,79,81,83,84,85,88,89,91,92,95,96,97,98,99,100,104,105,106,107,108,109,110,111,113,114,115,116,117,118,120,122,123,124,125,126,127,129,130,134,135,136,138,139,141,142,144,145,146,147,148,149,150,153,155,156,157,158,159,162,168,171,173,174,175,176,177,179,180,182,188,189,192,193,196,197,198,203,204,205,206,209,214,216,218,221,223,224,225,226,227,231,236,239,241,242,243,246,247,250,253,256,257,258,259,260,262,264,265,269,271,272,273,281,282,284,286,289,291,292,294,296,299,300,301,304,305,307,308,309,311,312,314,316,318,319,323,324,326,332,333,334,337,338,342,343,345,353,354,355,359,362,363,364,365,367,368,369,371,372,373,374,375,376,377,383,384,385,386,387,389,390,398,408,415,416,421,434,435,436,438,439,440,441,443],anim:[19,29,52,210],anna:[58,100,130,135,136,149,153,182],anna_object:58,annoi:[55,106,107,108,117,123],annot:[144,443],announc:[9,84,92,129,130,144,180,187,192,196,256,257,258,259,260,296],announce_al:[332,355],announce_move_from:[37,92,296],announce_move_to:[37,92,296],annoy:168,annoyinguser123:18,anonym:[63,90,102,243],anonymous_add:243,anoth:[2,3,5,6,7,8,11,13,14,15,20,22,28,31,33,37,41,44,46,49,51,54,56,58,60,69,70,74,75,77,78,79,80,81,82,83,88,91,94,96,98,99,100,101,102,107,108,109,111,113,116,117,119,122,123,126,129,130,134,138,140,143,145,149,151,155,156,168,175,176,179,182,187,188,193,196,203,204,206,209,218,221,225,231,236,241,243,254,256,257,258,259,260,270,273,275,280,282,286,288,289,296,299,355,362,364,368,372,374,375,377,390,416,443],another_batch_fil:368,another_nod:374,another_script:42,anotherusernam:49,ansi:[32,51,71,86,104,116,147,165,166,179,207,227,239,319,326,334,337,342,343,366,376,377,389,390,443],ansi_escap:367,ansi_map:367,ansi_map_dict:367,ansi_pars:367,ansi_r:367,ansi_regex:367,ansi_sub:367,ansi_xterm256_bright_bg_map:367,ansi_xterm256_bright_bg_map_dict:367,ansimatch:367,ansimeta:367,ansipars:367,ansistr:[165,367,376],ansitextwrapp:376,answer:[0,8,13,22,28,75,80,91,92,102,116,121,123,124,126,127,149,151,158,312,374],anti:149,anticip:83,anul:145,anvil:[209,210],anwer:97,any_options_her:85,anybodi:158,anymor:[8,90,126,205,232,240,241,273,374,386],anyon:[3,33,55,64,90,91,92,94,100,106,123,129,130,136,148,155],anyth:[0,3,7,8,9,11,13,14,18,20,22,28,33,36,37,42,48,50,51,53,56,57,62,65,73,75,77,80,81,82,83,88,94,98,102,105,106,107,108,109,113,114,116,117,118,121,123,124,126,129,130,134,136,138,141,146,149,155,157,159,162,175,177,191,204,243,253,254,256,257,258,259,260,281,292,326,360,362,368,374,377],anytim:123,anywai:[15,18,28,60,69,74,75,83,87,90,107,109,126,154,203,205,214,281],anywher:[22,28,42,48,83,88,114,116,119,126,142,281,372],apach:[146,155,158,161,359,443],apache2:145,apache_wsgi:145,apart:[8,12,13,19,33,48,87,104,139,142,149,157,159,260,275],api:[0,3,13,14,16,18,19,24,29,31,35,37,41,42,44,48,52,58,78,79,82,114,118,120,127,137,141,152,165,166,168,181,192,194,198,209,214,286,353,362,364,368,369,375,396,442,443],api_kei:152,api_secret:152,apicli:414,apirootrout:412,apirootview:412,apocalyps:123,apostroph:16,app:[33,53,62,64,67,73,90,134,142,152,421,443],app_id:141,app_modul:421,app_nam:[102,421],app_ord:421,appar:[100,139],apparit:271,appeal:[28,60],appear:[0,7,11,18,19,28,31,33,42,50,51,53,54,59,60,63,76,77,79,82,83,85,91,92,95,105,108,111,116,120,121,130,139,149,150,153,155,157,159,165,179,189,206,210,232,243,249,273,282,296,338,339,364,376,383,406,443],appearance_templ:296,append:[5,6,8,19,20,27,33,37,62,68,77,81,92,96,102,106,107,111,129,130,141,151,155,177,182,189,206,236,243,292,294,347,368,383,390],appendto:51,appform:141,appl:[203,218,296],appli:[2,7,9,14,20,22,30,31,33,47,48,53,56,65,75,76,77,82,83,84,104,115,123,124,128,138,139,141,145,146,168,173,175,190,207,216,218,252,253,256,257,258,259,260,273,281,282,292,296,300,301,304,309,355,362,363,364,367,368,373,376,378,387,390],applic:[9,33,46,49,62,67,73,112,134,141,142,144,145,149,157,158,168,209,218,224,225,260,314,317,327,331,352,353,359,427],applicationdatareceiv:337,applied_d:141,apply_damag:[256,257,258,259,260],apply_turn_condit:258,appnam:[13,33],appreci:[42,77,84,89,143,381],approach:[7,47,77,92,96,98,107,123,141,204,260,282],appropri:[2,7,20,22,58,72,76,107,138,141,145,146,152,168,180,218,227,314,353,384,386,390,419],approrpri:62,approv:[141,142],approxim:[192,390],apr:64,april:101,apt:[11,145,149,151,154,155,158],arbitrari:[6,13,14,19,30,33,48,51,57,74,80,82,83,88,114,157,168,196,216,224,253,254,260,264,271,296,301,307,312,323,343,357,362,371,383,386,390,443],arcan:72,arcanist:123,arch:61,archer:301,archetyp:123,architectur:[33,124,301],archiv:[113,144,158],archwizard:301,area:[8,12,77,78,81,83,100,120,121,124,135,144,147,269,273,275,281,284,291,373,374,376,390,443],aren:[8,11,75,90,94,96,102,134,141,158,168,206,225,232,240,258,383,386,393],arg1:[33,177,190,193,196,216,362],arg2:[177,190,193,216,362],arg:[3,22,28,30,31,32,33,35,41,47,51,54,62,65,68,71,72,77,85,91,92,94,95,96,100,104,106,108,113,115,126,127,129,130,138,140,152,168,169,170,171,174,177,182,190,191,192,193,196,197,198,203,206,212,216,218,219,224,226,229,232,240,241,242,243,249,250,251,253,254,256,257,258,259,260,262,264,265,269,270,271,272,273,277,282,283,284,287,288,289,291,292,294,295,296,299,300,301,303,304,307,308,309,311,314,319,320,321,323,324,325,326,331,332,334,335,337,338,339,342,343,347,353,355,357,359,362,363,364,365,367,374,376,377,378,380,381,383,386,388,390,391,398,399,403,406,412,413,430,436,441,443],arg_regex:[97,177,182,188,189,192,193,194,206,209,216,243,372,374,443],arglist:190,argn:362,argpars:272,argtyp:390,argu:13,arguabl:[83,116,122],argument:[0,3,5,8,13,15,18,19,20,22,27,29,30,32,33,36,37,41,42,47,48,54,55,58,62,65,68,72,77,80,82,90,91,92,94,99,100,101,102,104,106,108,109,110,111,117,126,130,132,142,146,168,169,173,174,176,177,179,180,182,187,188,189,190,192,193,196,197,204,206,209,212,216,218,221,223,224,225,226,229,231,232,241,242,243,247,249,256,257,258,259,260,264,271,272,275,283,284,292,294,296,300,301,305,307,308,309,312,314,319,323,325,326,332,333,334,337,338,342,343,345,346,353,354,355,357,358,362,363,364,365,367,368,370,372,373,374,375,376,377,381,384,386,387,390,416,439,443],argumentpars:272,argumnet:376,aribtrarili:390,aris:158,arithmet:[13,30,253],arm:[0,22,240,443],armchair:126,armi:106,armor:[13,94,105,122,128,206,257],armour:94,armpuzzl:240,armscii:[16,70],arnold:36,around:[3,14,15,16,20,30,33,37,41,52,53,54,60,70,72,75,79,81,82,83,85,87,88,89,90,91,94,96,100,102,106,107,108,111,113,114,115,116,117,118,121,122,123,126,127,129,130,134,135,138,144,146,149,152,155,182,190,206,210,212,231,240,243,260,265,269,270,271,273,279,282,296,367,368,376,383,443],arrai:[49,68,107,282,338,390],arrang:77,arrayclos:[68,338],arrayopen:[68,338],arrest:83,arriv:[44,65,75,92,94,127,182,219,275,326],arrow:[3,51,83,116],art:[60,373],articl:[8,11,16,70,90,91,96,99,144,382],article_set:382,artifact:376,artifici:[123,127],artsi:124,arx:[78,144,161,443],arxcod:[144,161,443],as_view:[53,177,196,286,288,364],ascii:[16,70,76,82,83,168,194,281,373,376,390,443],asciiusernamevalid:168,asdf:182,ash:210,ashlei:[78,206,225,227,254,256,257,258,259,260],asian:390,asid:76,ask:[0,3,5,6,11,27,31,34,54,58,78,80,83,84,89,91,100,102,107,109,114,115,121,123,124,126,127,141,146,148,149,155,175,177,182,203,212,230,241,272,312,314,341,374,378,390,443],ask_choic:312,ask_continu:312,ask_input:312,ask_nod:312,ask_yes_no:374,ask_yesno:312,askew:122,asn:246,aspect:[8,28,41,53,67,88,99,113,116,127,209,227],assert:[8,129,377],assertequ:8,assertionerror:[193,377],asserttru:8,asset:[134,158,318,419,443],assetown:76,assign:[2,6,11,12,13,14,18,28,33,36,37,39,41,42,46,47,51,55,83,98,100,109,113,114,115,116,118,126,129,130,138,168,173,174,176,182,187,189,190,193,207,216,224,225,243,253,256,257,258,259,260,271,292,295,296,300,301,319,326,332,334,337,353,371,443],assist:155,associ:[13,28,44,65,73,90,94,108,114,118,144,155,168,172,182,196,229,232,243,296,353,355,363,436],assort:443,assum:[6,7,9,13,14,15,16,18,19,20,22,28,31,32,33,34,37,41,42,44,47,55,57,58,62,69,70,75,76,77,79,80,81,82,83,84,85,87,91,92,93,94,96,97,98,100,101,104,105,106,109,111,113,118,124,127,129,130,132,135,136,137,138,140,141,142,151,154,155,157,158,163,173,175,176,177,179,182,187,189,193,196,198,204,205,210,216,218,243,250,253,270,271,283,284,286,291,296,301,305,338,355,367,368,374,377,390,394,411,422,438,441],assumpt:[126,174],assur:[48,81],ast:[30,377],asterisk:[12,55,85,115,180],astronom:101,asymmetr:78,async:[141,390,443],asynccommand:54,asynchron:[5,19,22,40,61,88,93,94,169,296,323,324,338,383,390,443],at_:[48,381],at_access:[168,296],at_account_cr:[12,168],at_after_mov:296,at_after_travers:296,at_again_posit:218,at_already_clos:218,at_already_consum:218,at_already_mov:218,at_already_open:218,at_appli:218,at_before_drop:296,at_before_g:296,at_before_get:296,at_before_mov:296,at_before_sai:296,at_cannot_appli:218,at_cannot_mov:218,at_cannot_posit:218,at_cannot_read:218,at_cannot_rot:218,at_channel_cr:196,at_channel_msg:196,at_char_ent:135,at_clos:218,at_cmdset_cr:[20,22,77,91,92,95,97,99,100,101,104,106,108,115,126,129,130,138,175,183,184,185,186,203,204,205,206,209,213,216,224,236,239,240,243,251,256,257,258,259,260,265,268,269,270,271,275,345,372,374,375],at_cmdset_get:[168,296,353],at_code_correct:218,at_code_incorrect:218,at_consum:218,at_db_location_postsav:295,at_defeat:[256,257,258,259,260],at_desc:296,at_disconnect:[168,353],at_drink:218,at_drop:[257,260,296],at_empty_target:282,at_end:304,at_err:[54,390],at_err_funct:54,at_err_kwarg:[54,390],at_failed_login:168,at_failed_travers:[37,249,270,296],at_first_login:168,at_first_sav:[168,196,296],at_first_start:364,at_focu:218,at_focus_:[216,218],at_focus_climb:218,at_focus_clos:218,at_focus_cod:218,at_focus_combin:218,at_focus_drink:218,at_focus_eat:218,at_focus_feel:218,at_focus_insert:218,at_focus_kneel:218,at_focus_li:218,at_focus_listen:218,at_focus_mov:218,at_focus_open:218,at_focus_press:218,at_focus_push:218,at_focus_read:218,at_focus_rot:218,at_focus_shov:218,at_focus_sip:218,at_focus_sit:218,at_focus_smel:218,at_focus_turn:218,at_focus_us:218,at_get:[206,260,296],at_giv:[257,260,296],at_green_button:218,at_heard_sai:136,at_hit:269,at_idmapper_flush:[364,381],at_init:[45,48,168,196,269,270,271,296],at_initial_setup:[113,159,318],at_initial_setup_hook_modul:318,at_left:218,at_lock:218,at_login:[48,62,325,326,334,337,342,343,353],at_look:[168,296],at_message_rec:168,at_message_send:168,at_mix:218,at_mix_failur:218,at_mix_success:218,at_msg_rec:[168,226,296],at_msg_send:[168,169,226,264,296],at_new_arriv:269,at_no_cod:218,at_nomatch:218,at_now_add:67,at_object_cr:[13,20,33,37,48,81,91,92,96,100,104,106,126,127,130,138,140,182,218,219,224,226,243,249,251,253,256,257,258,259,260,265,269,270,271,296,364],at_object_delet:296,at_object_leav:[219,271,273,296],at_object_post_copi:296,at_object_rec:[37,135,219,271,273,296],at_open:218,at_password_chang:168,at_paus:[42,307],at_posit:218,at_post_all_msg:196,at_post_channel_msg:[18,168,196],at_post_cmd:[22,95,173,177,190,193],at_post_command:22,at_post_disconnect:168,at_post_func:126,at_post_login:[92,168],at_post_mov:[37,135,296],at_post_msg:196,at_post_object_leav:273,at_post_portal_sync:352,at_post_puppet:296,at_post_travers:[37,270,296],at_post_unpuppet:296,at_pr:296,at_pre_channel_msg:[18,168,196],at_pre_cmd:[22,173,177,190,193],at_pre_command:[22,126],at_pre_drop:[257,260,296],at_pre_g:[257,260,296],at_pre_get:[260,296],at_pre_leav:37,at_pre_login:168,at_pre_mov:[37,92,126,256,257,258,259,260,296],at_pre_msg:[18,196],at_pre_puppet:296,at_pre_sai:[243,296],at_pre_unpuppet:296,at_prepare_room:273,at_read:218,at_red_button:218,at_reload:[192,352],at_renam:364,at_repeat:[42,48,129,137,138,169,203,212,232,256,257,258,259,260,262,307,347,378],at_return:[54,390],at_return_funct:54,at_return_kwarg:[54,390],at_right:218,at_rot:218,at_sai:[136,218,296],at_script_cr:[42,129,137,138,169,203,212,232,241,242,256,257,258,259,260,262,273,283,300,307,347,378],at_script_delet:307,at_search:[113,159],at_search_result:[191,390],at_server_cold_start:352,at_server_cold_stop:352,at_server_connect:332,at_server_reload:[42,163,168,169,296,307],at_server_reload_start:352,at_server_reload_stop:[92,352],at_server_shutdown:[42,163,168,169,296,307],at_server_start:[42,232,307,352],at_server_startstop:[92,113,159],at_server_stop:352,at_shutdown:352,at_smel:218,at_speech:218,at_start:[42,129,169,273,304,307],at_startstop_modul:309,at_stop:[42,129,138,256,257,258,259,260,307],at_sunris:101,at_sync:[353,354],at_tick:[47,309],at_travers:[37,250,273,296],at_traverse_coordin:273,at_turn_start:258,at_unfocu:218,at_upd:[258,305],at_weather_upd:140,ating:193,atlanti:147,atleast:242,atom:[119,156],atop:273,atribut:371,att:[28,64],attach:[13,37,44,46,64,74,88,90,91,98,100,108,115,116,118,163,177,182,190,202,226,236,254,273,292,296,306,351,365,399,406,443],attachmentsconfig:90,attack:[15,28,78,80,93,94,95,103,115,120,121,122,127,129,142,155,158,176,243,254,256,257,258,259,260,269,270,296,301,332,443],attack_count:259,attack_nam:259,attack_skil:301,attack_typ:260,attack_valu:[256,257,258,259,260],attempt:[7,12,20,28,36,73,75,77,78,83,94,107,137,147,158,179,182,216,224,247,249,256,257,258,259,260,311,314,319,352,357,364,377,390,436],attemt:30,attent:[37,82,85,98,100,158,216],attitud:99,attr1:[182,240],attr2:[182,240],attr3:182,attr:[13,28,33,41,51,77,81,100,111,182,189,198,204,219,271,291,300,301,353,362,364,381,386],attr_categori:399,attr_eq:291,attr_g:[33,291],attr_gt:[33,291],attr_kei:399,attr_l:[33,291],attr_lockstr:399,attr_lt:[33,291],attr_n:[33,291],attr_nam:182,attr_obj:[362,364],attr_object:364,attr_typ:399,attr_valu:399,attract:84,attrcreat:[33,362],attread:13,attredit:[13,33,362],attrhandler_nam:362,attrib:292,attribiut:362,attribut:[3,8,12,18,19,24,27,28,32,33,34,35,36,37,41,42,44,46,47,48,55,67,69,75,77,78,80,81,92,93,95,96,98,99,100,102,104,105,106,107,109,111,116,122,126,127,129,130,141,142,165,166,168,171,176,182,191,192,196,204,205,209,210,218,224,231,232,239,240,243,250,253,256,257,258,259,260,265,269,270,271,282,291,294,295,296,299,300,301,304,305,308,319,353,361,363,364,365,370,371,372,378,383,384,387,390,396,397,398,400,403,404,406,413,415,416,430,435,436,438,441,443],attribute1:130,attribute2:130,attribute_list:362,attribute_nam:[126,168,243,294,296,387],attribute_valu:294,attributeerror:[3,13,67,114,126,353,362],attributeform:399,attributeformset:399,attributehandl:[13,48,362,385,390,413],attributeinlin:[398,399,400,403,404],attributemanag:13,attributeproperti:[362,443],attributeseri:413,attrkei:301,attrlist:362,attrnam:[13,28,33,41,48,182,253,291,294,364],attrread:[13,33,362],attrtyp:[13,362,363],attrvalu:28,attryp:363,atttribut:81,atyp:292,audibl:242,audio:51,audit:[165,166,196,199,244,296,443],audit_callback:246,auditedserversess:[246,247],auditingtest:248,aug:[64,76],august:[76,390],aura:210,aut:29,auth:[49,168,170,171,187,334,398,421,422,430,436,441],auth_password:334,auth_profile_modul:171,authent:[44,45,53,62,141,158,168,325,332,334,337,343,353,355,422,435,436,438,441],authenticated_respons:431,author:[139,155,168,229,232,393],auto:[3,4,11,13,15,18,20,21,22,26,28,35,37,42,44,52,55,75,78,83,85,91,112,120,123,141,149,151,152,165,168,171,177,181,182,189,192,193,242,243,253,265,275,281,282,285,288,292,296,301,304,309,311,314,325,335,342,343,352,355,362,364,369,375,376,377,416,422,443],auto_close_msg:265,auto_help:[22,28,31,97,102,177,189,193,217,225,268,298,374,375],auto_help_display_kei:[177,193,374],auto_id:[400,402,404,406,430],auto_look:[28,217,225,268,298,374],auto_now_add:67,auto_quit:[28,217,225,268,298,374],auto_step_delai:275,auto_transl:242,autobahn:[325,331,342],autocr:[13,362],autodoc:[49,85],autofield:141,autologin:422,autom:[2,15,30,49,50,67,99,100,144,149,151,157,158,163,436],automat:[6,9,11,15,18,19,20,27,28,30,31,33,34,41,42,44,48,50,53,54,57,63,67,73,74,75,77,78,80,82,83,84,87,88,95,100,101,104,106,108,111,113,114,115,116,117,118,122,126,129,130,134,135,136,138,139,146,150,151,152,153,155,157,159,168,175,176,177,182,187,188,190,192,193,203,204,205,206,209,211,218,231,232,233,240,241,242,243,251,260,272,275,283,292,295,296,306,308,309,319,328,331,334,339,352,355,357,368,372,374,375,376,377,390,415,416,423,443],automatical:309,autostart:[42,306,370],autumn:[6,224],avail:[0,2,3,5,7,8,9,11,13,14,18,20,22,24,28,30,31,32,33,35,37,41,42,44,48,49,51,53,54,56,58,60,62,64,68,69,70,71,75,77,79,80,81,82,83,85,86,88,91,92,96,97,99,100,101,104,105,106,107,108,109,110,113,114,115,116,117,118,120,121,123,124,126,129,130,138,141,142,143,144,145,146,149,150,153,154,155,156,157,159,162,163,165,168,173,174,175,176,177,179,182,184,187,188,189,190,192,193,194,203,204,205,209,210,213,216,218,223,224,226,232,236,239,241,242,243,251,253,254,256,257,258,259,260,265,270,271,277,292,296,299,300,301,304,319,343,345,346,357,368,369,374,375,376,377,390,408,423,435,438,443],available_chan:187,available_choic:[28,374],available_funct:300,available_languag:242,available_weapon:270,avatar:[68,88,113,114,116,296,334,416],avatarid:334,avenu:206,averag:[5,14,83,155,192,232,242,272],average_long_link_weight:[83,282],avoid:[0,3,6,8,11,13,19,20,22,28,39,41,48,53,60,62,72,78,82,83,84,104,106,114,116,117,121,123,126,139,145,146,157,175,182,241,242,265,272,273,282,291,295,323,333,343,353,362,364,365,367,368,369,372,375,377,381,413],awai:[0,3,11,13,15,16,28,31,33,41,42,44,54,63,67,75,76,79,80,81,82,83,87,91,94,102,114,117,120,122,126,127,130,138,155,188,198,206,221,254,257,260,265,269,271,273,281,284,296,304,354,367,390,398,443],await:54,awak:123,awar:[0,13,15,20,22,28,48,68,83,97,119,122,139,140,141,163,218,226,241,243,269,272,273,275,282,284,296,364,367],award:123,awesom:[53,73,116,149],awesome_func:117,awesomegam:151,awkward:64,aws:155,aws_s3_cdn:[165,166,199,200,443],awsstorag:[165,166,199,443],axe:123,axes:[83,281],axi:281,axio:49,azur:157,b64decod:386,b64encod:386,b_offer:203,baaaad:8,back:[0,2,6,7,11,13,14,15,18,19,20,22,27,28,30,32,36,42,44,48,49,51,52,53,54,55,64,65,67,70,73,75,77,80,81,82,83,85,88,91,94,98,100,102,104,106,107,109,111,113,114,115,116,117,118,119,120,121,122,123,124,125,127,129,130,132,136,138,139,141,146,149,151,155,157,163,164,165,168,176,179,182,187,191,203,204,209,218,221,243,249,253,254,259,264,265,275,298,314,319,323,326,332,334,337,352,364,371,374,375,383,390,394],back_exit:75,backbon:[141,368],backend:[2,8,41,42,49,50,53,73,146,165,166,362,390,396,410,416,420,443],backend_class:362,background:[0,17,28,53,54,60,94,116,139,141,151,155,158,163,207,227,367,377,439],backpack:20,backtick:[11,85,377],backtrack:11,backup:[11,37,44,54,113,155,191,368],backward:[18,27,28,100,138,170,383],bad:[8,42,64,75,77,83,84,88,100,106,116,118,123,124,147,247,316],bad_back:292,baddi:120,badg:10,badli:253,bag:[31,108,209,390],bake:[79,281],baker:123,balanc:[94,98,121,123,129,144,376],ball:[20,159,174,175,210,301],ballon:240,balloon:240,ban:[18,33,61,92,108,123,168,180,187,193,196,292,443],ban_us:187,band:[51,68,334,337,338],bandag:79,bandit:80,bandwidth:327,banid:180,bank:[121,443],banlist:[18,196],bar:[13,18,28,30,34,42,46,51,65,68,73,83,105,108,113,118,122,182,227,243,254,289,314,338,362,374,377,390,443],bare:[22,87,100,115,122,127,159,227,257],barehandattack:98,bargain:67,bark:210,barkeep:[3,243],barrel:120,barstool:126,barter:[42,121,135,149,165,166,199,443],bartl:144,base:[2,3,8,14,17,18,22,28,30,31,33,35,37,42,44,47,48,51,52,53,56,65,67,69,70,72,76,77,78,79,81,82,85,86,87,88,90,91,95,96,98,99,100,102,103,106,109,111,113,114,117,118,119,120,121,122,124,127,128,130,132,134,137,139,141,142,144,146,149,151,153,154,155,157,158,161,165,168,169,170,171,173,175,176,177,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,196,197,198,202,203,204,205,206,209,210,211,212,213,214,216,217,218,219,221,222,224,225,226,229,230,232,233,235,236,239,240,241,242,243,247,248,249,250,251,252,253,254,256,257,258,259,260,262,264,265,266,268,269,270,271,272,273,275,276,279,280,281,282,283,284,286,287,288,292,294,295,296,298,300,301,303,304,305,306,307,308,309,311,312,314,316,317,320,321,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,345,346,347,350,352,353,354,355,357,358,359,362,363,364,365,367,368,369,372,373,374,375,376,377,378,380,381,382,383,384,385,386,387,388,389,390,395,398,399,400,401,402,403,404,405,406,408,410,411,412,413,414,415,416,421,422,424,425,430,431,434,435,436,438,439,440,441,442,443],base_account_typeclass:12,base_channel_typeclass:18,base_char_typeclass:137,base_character_typeclass:[104,137,141,142,168,182],base_exit_typeclass:83,base_field:[398,399,400,402,403,404,406,430],base_filt:410,base_guest_typeclass:63,base_object_typeclass:[41,110,114,301,364],base_room_typeclass:83,base_script_path:291,base_script_typeclass:42,base_set:76,base_word:390,baseapplic:218,baseclass:270,basecommand:108,baseconsum:218,basecontain:369,baseinlineformset:[399,406],baseline_index:390,basenam:416,baseobject:48,baseopt:384,basepath:390,basepermiss:411,baseposition:218,basest:221,basetyp:[296,368],basetype_posthook_setup:296,basetype_setup:[33,96,168,169,196,296],basetypeclassfilterset:410,bash:[2,85,149,270],basi:[22,83,84,90,101,113,134,155,190,198,243,282,343,364,373],basic:[0,2,9,12,16,17,20,22,33,36,51,53,56,57,58,62,65,67,70,73,75,76,77,78,80,82,83,94,96,98,99,100,101,102,103,104,108,109,113,114,115,116,117,119,120,121,122,123,126,127,129,132,135,136,138,139,141,142,144,163,168,169,182,187,189,196,198,209,225,231,240,257,259,270,291,293,296,345,388,430,439,443],basicmapnod:[83,282],bat:[76,149],batch:[24,26,82,113,144,149,165,166,181,301,323,362,365,366,443],batch_add:[301,362,365],batch_cmd:[15,113],batch_cod:[14,368],batch_code_insert:14,batch_create_object:301,batch_exampl:368,batch_import_path:[14,15],batch_insert_fil:15,batch_update_objects_with_prototyp:301,batchcmd:[26,121,123,181],batchcmdfil:[15,368],batchcod:[15,26,82,108,123,131,144,181,443],batchcode_map:82,batchcode_world:82,batchcodefil:14,batchcodeprocessor:368,batchcommand:[15,26,77,108,120,131,149,181,368],batchcommandprocessor:368,batchfil:[15,16,82,368],batchprocess:[165,166,172,178,443],batchprocessor:[14,165,166,181,366,443],batchscript:[14,368],batteri:168,battl:[120,129,144,158,256,257,258,259,260],battlecmdset:[256,257,258,259,260],bayonet:79,baz:254,bazaar:69,beach:82,bear:[241,269],beat:[121,123,129],beaten:[129,271],beauti:[77,81,141],beazlei:144,becam:[94,139],becasu:4,becaus:[2,3,12,13,14,16,20,30,31,33,37,41,45,47,48,49,50,53,54,55,56,58,62,64,69,75,76,77,80,82,83,85,88,91,92,94,97,98,107,108,111,114,115,116,117,122,124,126,127,129,134,135,139,141,142,145,148,151,176,189,194,196,214,221,231,242,259,273,279,281,296,307,326,332,345,355,367,377,384,386,390,398,399,406,416,421],becom:[3,9,28,33,36,41,54,67,68,71,75,77,81,82,84,85,88,89,98,104,108,112,113,114,115,116,121,123,126,127,143,159,179,193,210,226,240,242,243,253,254,257,296,301,353,368,374,377],been:[2,3,5,9,11,13,14,15,28,30,31,42,44,57,64,73,75,77,80,81,83,85,90,91,100,102,106,107,111,116,118,129,130,135,139,141,142,144,146,158,164,168,175,176,177,181,182,187,190,196,198,204,209,232,240,241,243,253,256,257,258,259,260,271,273,282,286,288,292,295,296,300,301,308,309,316,328,332,334,342,352,353,354,355,357,362,364,368,372,373,390,393,395,406,421,437,442],befit:48,befor:[1,3,5,6,7,8,10,11,13,14,15,16,18,19,20,22,28,31,33,34,39,41,42,45,46,47,48,50,51,53,54,55,64,66,67,69,70,73,77,79,80,81,82,83,84,90,91,92,93,94,98,99,100,102,104,106,107,108,109,111,114,115,116,117,119,121,123,126,129,130,135,136,138,139,140,141,142,144,146,151,152,154,155,157,158,159,168,173,174,177,182,187,189,190,194,196,198,202,209,211,212,214,221,224,225,226,227,231,235,242,243,246,247,252,253,254,256,257,258,259,260,265,268,270,271,273,281,282,291,292,295,296,299,300,301,307,308,309,314,323,332,334,340,346,348,350,352,353,357,359,362,367,368,369,370,374,375,376,378,382,383,386,390,421,435,441,443],beforehand:[11,13,369],beg:15,beggar:75,begin:[0,3,5,7,8,14,15,22,27,31,33,45,54,75,77,80,82,85,87,90,92,100,102,107,109,111,116,121,125,129,135,140,142,153,188,189,231,242,243,254,256,257,258,259,260,281,294,296,367,368,374,377,387,443],beginn:[87,103,107,114,119,121,144],behav:[8,13,14,45,77,94,101,102,107,109,115,116,117,163,390],behavior:[5,20,22,27,31,41,51,60,73,75,83,102,113,139,168,177,193,206,209,225,243,258,260,271,272,282,314,362,374,399,406,443],behaviour:[20,22,33,139,360,370,376,390],behind:[6,11,13,22,32,41,46,55,60,81,83,87,91,117,120,139,149,181,241,253,271,304,309,381],behvaior:375,being:[2,3,5,8,11,13,14,20,22,28,30,31,35,39,41,42,45,47,48,52,54,58,65,68,72,75,77,79,82,84,88,91,92,93,98,102,107,110,112,113,114,116,120,122,123,124,136,139,141,148,149,151,155,158,168,174,182,188,192,193,196,212,213,226,236,242,243,253,256,257,258,259,260,264,265,271,282,288,296,316,319,326,346,355,357,362,364,367,368,370,374,375,376,377,390,393,395,399,406,410,413,421,442],beipmu:147,belong:[15,46,65,74,83,88,90,111,116,141,158,176,243,254,273,288,299],belov:123,below:[2,3,5,7,8,11,14,15,16,18,19,20,22,27,28,31,32,33,36,39,41,42,44,48,54,55,57,60,64,68,74,75,76,77,79,81,82,83,85,88,92,94,96,99,100,101,102,104,115,116,117,121,126,127,130,134,135,136,141,142,145,146,149,151,155,157,163,171,182,190,198,204,206,209,210,213,223,227,242,243,253,254,256,257,258,259,260,266,272,281,282,288,295,296,304,326,346,362,364,365,374,376,377,382,415],beneath:19,benefici:[81,258],benefit:[8,64,69,122,124,143,151,155,157,158,176,362,368,374],berserk:253,besid:[7,15,20,39,64,75,82,115,227],best:[0,27,42,53,64,69,73,76,77,84,99,100,110,113,121,124,141,147,151,153,158,159,189,204,242,254,272,301,314,334,376,384,442,443],bet:[20,44,50,364],beta:[25,148,155,443],betray:28,better:[3,5,16,28,30,31,41,42,46,58,60,67,69,75,76,79,83,85,87,88,89,92,97,100,104,106,107,113,114,121,124,126,127,141,142,146,205,210,250,257,271,282,296,301,331,334,337,345,362,368,421],bettween:127,between:[2,5,11,12,13,15,18,20,22,30,31,36,41,42,44,46,51,54,58,60,62,64,68,70,74,75,77,80,81,83,85,88,92,93,96,98,99,100,102,106,107,108,113,114,116,117,120,122,123,127,129,130,137,138,139,151,155,157,174,177,182,187,189,192,193,198,203,206,207,209,210,231,232,235,236,239,241,242,243,252,253,254,256,257,258,259,260,279,281,282,283,284,296,301,309,314,323,326,333,334,337,338,345,346,353,365,367,368,370,374,376,377,378,390,394,424,443],bew:224,bewar:96,beyond:[8,12,22,29,37,50,68,76,77,84,88,92,99,123,142,155,177,182,193,198,204,210,216,243,254,265,271,296,300,345,362,364,374,376],bg_colormap:389,bgcolor:389,bgfgstart:389,bgfgstop:389,bgstart:389,bgstop:389,bias:182,bidirect:323,big:[14,15,18,22,33,50,53,74,76,79,84,93,94,99,108,109,117,120,123,124,127,174,189,191,252,253,265,294,368,375,387,390],bigger:[62,84,91,102,111,130,242,253,279,281],biggest:[153,253,390],biggui:22,bigmech:91,bigsw:94,bikesh:111,bill:[155,158],bin:[2,76,88,90,112,149,154,157],binari:[5,83,146,149,325,327,342],bind:151,birth:430,bit:[0,3,7,8,11,13,17,25,41,42,51,53,55,58,64,75,76,77,78,80,90,94,96,101,102,104,108,111,112,113,116,117,119,121,123,124,126,138,142,149,154,187,194,210,214,292,296,368],bitbucket:99,bite:[82,121],bitten:111,black:[60,117,127,139,367],blackbird:144,blackbox:209,blackhaven:83,blacklist:[18,158,187],blacksmith:[39,365],blade:[123,210,270],blank:[28,67,135,142,168,225,367],blankmsg:225,blargh:41,blast:[209,210],blatant:55,blaufeuer:111,bleed:[11,60,113,253,376],blend:240,blender:240,blind:[60,136,265],blind_target:265,blindcmdset:265,blindli:292,blink:[109,265,389],blink_msg:265,blist:6,blob:[80,85,120],block:[5,6,23,24,27,28,30,33,42,53,55,60,72,87,88,92,93,100,102,107,108,116,119,130,132,141,142,155,158,163,180,181,182,217,218,223,224,260,268,269,270,273,279,282,289,298,333,368,374,377,390,439,442,443],blockedmaplink:[83,282],blocker:83,blocking_cmdset:92,blockingcmdset:92,blockingroom:92,blocknam:53,blockquot:443,blocktitl:102,blog:[84,87,89,119,144,155,156],blond:122,blowtorch:147,blue:[14,60,99,104,115,116,123,139,270,367],blueprint:[51,82,99],blurb:[148,443],board:[33,35,81,121,138,144,443],boat:[20,138,176],bob:[13,22,49,104,180,223],bodi:[0,8,17,19,22,28,41,53,72,77,80,100,116,122,132,141,230,236,289,316,370],bodyfunct:[42,109,165,166,199,261,266,443],bodymag:210,bog:[91,121],boi:46,boiler:[48,53],bold:[148,443],bolt:301,bone:[87,122,127],bonu:[123,127,155,257,258,304],bonus:[94,123,257],book:[41,53,73,81,101,107,118,123,127,132,144,218],bool:[12,20,22,28,32,34,42,83,168,169,170,171,173,174,175,176,177,182,187,189,196,197,198,203,204,206,209,212,213,218,221,223,225,227,229,232,241,242,243,253,254,256,257,258,259,260,273,281,282,283,284,286,287,288,292,294,295,296,300,301,303,304,305,306,307,308,309,314,319,320,325,326,331,332,333,337,342,343,351,353,355,357,362,363,364,365,367,368,370,372,374,375,376,377,378,381,383,385,387,389,390,393,398,400,403,404,411,438],booleanfield:[141,398,404],booleanfilt:410,boom:[91,114],boost:289,boot:[18,33,108,114,157,163,180,187,196,309,443],boot_us:187,bootstrap:[24,53,61,90,443],border:[82,100,105,179,193,218,221,223,225,373,376,443],border_bottom:376,border_bottom_char:376,border_char:376,border_left:376,border_left_char:376,border_right:376,border_right_char:376,border_top:376,border_top_char:376,border_width:376,borderless:100,borderstyl:225,bore:[55,87,121,122,158],borrow:[20,149,175,323],bort:[29,374],boss:100,bot:[5,112,141,150,153,158,165,166,167,171,187,319,325,326,333,355,436,443],bot_data_in:[169,319],both:[0,2,6,7,8,9,11,13,16,18,19,20,22,30,31,32,34,36,39,44,48,49,53,57,58,62,67,68,75,77,78,81,82,83,84,85,92,97,98,99,100,101,102,106,107,111,113,115,116,117,122,123,124,126,129,134,138,141,142,144,146,150,151,152,155,158,159,163,173,175,182,187,192,198,203,207,209,218,223,227,236,240,249,253,254,259,260,271,275,281,282,284,292,294,296,300,301,302,304,307,309,323,332,342,343,345,352,354,357,362,363,367,370,374,376,377,385,390,413,416],bother:[9,94,158,362],botnam:[153,187,326,355],botnet:158,botstart:169,bottom:[5,7,8,29,48,50,51,53,82,83,90,96,99,100,102,106,108,116,126,141,148,151,176,236,259,273,281,301,368,375,376],bottommost:83,bought:106,bouncer:[19,158,373],bound:[19,69,85,99,113,114,229,253,281,286,390],boundari:[83,252,253,390],bounti:89,bow:[123,301],bowl:209,box:[3,7,30,33,35,36,41,49,63,73,75,79,80,82,87,100,102,109,111,114,115,116,117,119,122,127,130,132,145,149,152,155,159,182,216,243,275,281,291,323,368,430,442],brace:[75,77,92,107,296,367],bracket:[72,85,192,207,377],branch:[2,76,78,83,84,85,108,149,157,221,241,254,442,443],branchnam:11,brandymail:236,bread:[56,79,209],breadrecip:209,breadth:260,break_lamp:265,break_long_word:376,break_on_hyphen:376,breakag:123,breakdown:192,breakpoint:[7,56,165],breath:[114,117],breez:[42,140],breviti:[100,116],bribe:28,brick:105,bridg:[44,65,77,86,89,120,144,146,271],bridgecmdset:271,bridgeroom:271,brief:[11,50,56,57,67,80,91,92,100,106,109,112,119,132,163,225,272,296,358,443],briefer:[37,163],briefli:[56,114,123,155,163,265,443],bright:[60,83,104,116,139,207,265,367],brightbg_sub:367,brighten:60,brighter:60,brilliant:11,bring:[81,83,122,124,130,133,134,138,141,146,157,158,254,260,269,282,356],broad:96,broadcast:[168,196,323],broader:[96,243,296],broken:[31,60,69,85,121,242,265,443],brown:367,brows:[7,11,51,76,87,92,96,100,101,102,106,107,112,130,132,134,155,158,436],browser:[0,49,51,52,53,56,59,73,76,85,88,89,102,112,113,119,132,134,141,142,145,149,151,154,155,158,162,342,343,438,439],brunt:123,brutal:272,bsd:[143,394],bsubtopicnna:193,btest:60,btn:17,bucket:[202,246],buf:[122,372],buff:122,buffer:[22,27,51,77,191,202,316,343,372,438],bug:[0,3,8,11,14,54,78,84,89,99,116,121,123,124,130,143,148,163,296,364,443],buggi:[13,374],bui:[106,123,203],build:[2,5,7,10,13,14,15,16,18,19,20,22,23,24,26,28,31,35,36,37,41,44,46,48,51,53,54,58,67,69,70,72,74,76,79,83,87,88,99,102,103,104,108,110,111,113,114,115,116,119,120,122,124,125,126,128,130,133,134,137,144,149,154,157,165,166,172,174,178,180,181,188,189,204,221,223,224,230,242,243,249,269,272,275,276,278,279,281,282,283,292,296,300,301,314,325,326,368,376,430,442,443],build_link:282,build_match:174,buildchannel:18,builder:[12,13,15,18,30,31,33,39,41,46,49,50,57,69,77,83,90,92,98,100,106,110,114,121,124,126,130,180,182,187,188,192,204,206,224,225,240,243,249,265,271,272,273,275,292,296,345,364,365,368,411,443],buildier:301,building_menu:[165,166,199,443],buildingmenu:[77,204],buildingmenucmdset:204,buildprotocol:[311,324,325,326],buildshop:106,built:[5,14,19,24,28,30,56,62,73,85,88,99,100,113,116,121,122,124,127,130,138,148,149,154,157,158,171,198,240,242,281,282,283,288,295,304,309,362,364,365,368,372,374,382,443],builtin:327,bulk:[31,158],bullet:[85,121],bulletin:[33,35,121,144,443],bulletpoint:85,bunch:[16,19,69,70,100,111,115,117,122,126],burden:105,buri:[69,120],burn:[120,121,124,127,155,270],busi:[88,89,122,155,203,443],butter:[56,209],button:[7,11,14,15,20,22,33,36,49,50,51,52,53,65,68,73,76,113,115,116,141,142,182,210,218,265,270,346,375,403,443],button_expos:270,buy_ware_result:106,byngyri:242,bypass:[4,33,39,54,57,90,100,109,114,120,126,129,139,168,182,196,249,292,294,364,370,387,390,422],bypass_mut:[18,196],bypass_perm:390,bypass_superus:33,byt:296,bytecod:367,bytes_or_buff:438,bytestr:[323,390],bytestream:390,c20:187,c_creates_button:346,c_creates_obj:346,c_dig:346,c_examin:346,c_help:346,c_idl:346,c_login:[5,346],c_login_nodig:346,c_logout:[5,346],c_look:[5,346],c_measure_lag:346,c_move:346,c_moves_:346,c_moves_n:346,c_score:130,c_social:346,cabinet:40,cabl:105,cach:[8,13,22,42,48,51,52,53,55,67,83,93,96,114,145,168,177,192,196,198,224,252,269,270,281,292,295,296,318,357,362,364,365,366,379,381,390,399,406,423],cache_inst:381,cache_lock_bypass:292,cache_s:[357,381],cached_properti:390,cactu:259,cake:20,calcul:[19,42,54,83,92,96,111,127,129,130,176,212,224,235,242,252,253,256,257,259,260,279,282,301,378,381,390,435,441],calculate_path_matrix:281,calculated_node_to_go_to:28,calculu:98,calendar:[78,212,235,378,443],call:[0,2,3,5,8,9,11,12,13,14,15,18,19,20,27,28,30,32,33,34,37,41,42,44,45,47,48,49,51,52,54,56,58,62,65,67,68,69,71,73,75,77,79,80,81,82,83,85,88,90,91,92,93,94,95,96,98,99,100,101,102,104,106,107,108,109,110,111,112,113,115,116,117,118,121,124,126,127,129,130,132,135,136,137,138,139,140,141,142,146,149,150,152,153,154,155,157,159,162,163,168,169,173,174,175,176,177,179,182,187,190,191,192,193,194,196,198,203,204,206,209,210,211,212,213,214,216,218,219,221,223,224,225,226,229,230,231,232,233,235,240,241,242,243,249,251,253,254,256,257,258,259,260,262,264,265,268,269,270,271,272,273,282,284,291,292,295,296,299,300,301,305,307,308,309,311,314,316,318,319,323,324,325,326,327,328,329,330,332,333,334,335,336,337,338,339,341,342,343,345,346,347,352,353,354,355,356,359,362,364,365,367,368,369,370,372,374,375,376,377,378,381,383,385,386,387,390,399,406,411,416,430,434,436,439,440,441,443],call_async:54,call_command:8,call_ev:[75,231],call_inputfunc:[65,353,355],call_task:308,callabl:[27,28,34,41,47,52,53,58,71,81,130,204,221,225,232,254,258,281,296,299,300,301,305,309,312,314,316,324,355,369,372,374,375,377,378,383,385,386,390,443],callables_from_modul:390,callbac:77,callback1:374,callback:[19,22,27,28,32,34,47,54,77,90,94,101,169,192,204,212,225,229,230,231,232,233,235,247,254,268,296,305,308,309,312,314,316,319,323,324,325,327,341,342,345,356,374,378,383,388,390,443],callback_nam:[229,232],callbackhandl:[165,166,199,228,443],called_bi:173,calledbi:390,caller:[3,13,14,18,19,22,27,30,31,33,36,37,47,48,54,58,65,67,68,72,77,79,81,82,83,85,91,92,93,94,95,97,98,100,104,105,106,107,108,114,115,118,126,127,129,130,138,152,169,173,174,175,177,179,182,183,187,188,189,190,192,193,204,209,216,217,218,219,225,230,236,240,243,251,254,265,268,270,271,272,273,292,296,298,300,301,368,372,374,375,377,384,390,443],callerdepth:390,callertyp:173,callinthread:359,calllback:231,callsign:[28,218,319],calm:82,came:[76,82,87,91,92,108,116,140,144,269,273,296],camp:82,campfir:82,campsit:82,can:[0,2,3,4,5,6,7,8,9,10,11,12,14,15,16,17,18,19,20,22,25,27,28,30,31,32,33,34,35,36,37,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,57,58,59,60,62,63,64,65,67,68,69,70,71,73,74,75,76,78,79,80,81,82,83,84,85,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,104,105,106,107,108,109,110,111,112,113,114,115,116,119,120,121,122,124,126,127,129,130,132,133,134,135,136,137,138,139,141,142,143,144,146,147,148,149,150,151,152,153,154,155,156,157,158,159,162,163,167,168,169,171,174,175,176,177,179,180,182,187,188,189,190,191,192,193,194,196,197,198,202,203,204,206,207,209,210,212,213,217,218,219,221,223,224,225,226,227,231,232,235,236,240,241,242,243,246,249,253,254,256,257,258,259,260,264,265,269,270,271,272,273,275,277,278,281,282,284,286,288,291,292,294,295,296,299,300,301,302,303,304,305,307,309,314,325,329,332,334,337,338,342,343,345,346,352,353,354,355,356,359,360,361,362,363,364,365,367,368,369,370,372,373,374,375,376,377,384,385,386,387,388,390,391,393,394,398,411,413,416,430,435,436,438,439,441,443],can_:231,can_ent:365,can_list_top:[189,438],can_read_top:[189,438],cancel:[19,32,94,126,192,231,256,257,258,259,260,296,308],candid:[22,77,118,126,141,174,240,243,289,294,296,387],candidate_entri:289,candl:176,cannon:111,cannot:[4,8,9,13,14,15,19,20,22,27,28,35,39,41,46,50,54,57,60,64,76,77,80,83,89,91,92,93,94,96,97,98,102,106,113,114,115,118,120,121,124,127,130,141,149,155,159,168,169,176,179,182,189,204,209,221,224,225,229,232,249,254,260,269,270,275,287,292,294,296,300,309,362,369,371,373,376,381,390,443],cantanker:384,cantclear:225,cantillon:144,cantmov:92,canva:81,capabl:[2,33,44,65,68,81,88,100,121,179,251,319,341,430,443],capcha:443,cape:99,capfirst:102,capit:[30,55,58,68,76,88,92,94,116,117,123,130,182,223,226,241,242,253,338,367,377,390,394],captcha:141,caption:85,captur:[92,107,383,441],car:[36,138],carbon:[209,210],card:[83,158,283,284,443],cardin:[81,83,97,100,182,281,282,283],care:[22,28,54,55,67,75,81,83,85,88,90,97,98,99,101,107,114,116,123,124,129,138,139,140,143,146,163,168,175,196,209,216,224,240,243,253,268,269,271,275,281,291,296,345,364,368,372,374,375,376,390,443],career:124,carefulli:[5,44,50,82,87,141],carri:[20,33,79,105,106,109,113,121,126,129,135,198,206,210,257,269,291,353,363,443],carv:79,cascad:381,case_insensit:218,case_sensit:243,caseinsensitivemodelbackend:422,cast:[41,46,93,117,165,166,199,208,254,259,443],caster:[93,210,259],castl:[14,82,83,110,120,224,271],cat:[151,154],catchi:90,categor:[46,88,296],categori:[2,8,13,22,26,28,31,41,46,67,74,79,83,85,96,102,108,111,118,177,178,179,180,181,182,187,188,189,190,191,192,193,194,203,204,205,206,209,210,213,214,216,219,224,225,226,230,236,239,240,243,249,250,251,253,254,256,257,258,259,260,265,269,270,271,272,275,286,287,288,289,291,296,300,301,345,362,363,365,370,372,374,375,382,384,387,390,410,438],categoris:98,category2:382,category2_id:382,category_id:382,category_index:254,cater:[94,124],caught:[3,6,28,126,197],cauldron:210,caus:[3,8,13,20,33,51,55,74,88,94,95,108,114,129,130,135,146,155,176,196,210,214,265,273,282,296,345,374,376,390],caution:[51,101,374],cave:[80,83,275,276],caveat:[54,126,443],caveman:98,cblue:11,cboot:[55,108],cc1:149,cccacccc:373,ccccc2ccccc:100,cccccccc:373,ccccccccccc:100,cccccccccccccccccbccccccccccccccccc:373,ccccccccccccccccccccccccccccccccccc:373,ccreat:[100,108,150,153,156],cdesc:108,cdestroi:108,cdmset:20,cdn:158,ceas:182,cel:373,celebr:121,cell:[0,82,100,102,120,225,373,376],celltext:373,cemit:108,censu:363,center:[30,41,53,56,81,82,83,90,96,221,223,227,275,281,367,376,390],center_justifi:41,centos7:151,centr:[31,82],central:[8,18,32,79,82,83,88,140,157,168,176,193,196,198,209,219,279,296,301,323,370,374,381,419],centre_east:82,centre_north:82,centre_south:82,centre_west:82,centric:[33,44,76,130,243],cert:[145,335,339],certain:[6,13,14,15,20,22,33,42,44,45,47,56,57,59,68,69,84,85,88,92,94,113,122,123,138,146,154,155,182,197,203,210,242,246,253,265,270,273,281,291,294,300,307,314,320,337,338,341,356,362,363,372,376,377,387,390,399,416,430,443],certainli:[16,97],certbot:[151,155,158],certfil:[335,339],certif:[145,155,335,339,443],certonli:151,cet:383,cfg:151,cflag:154,cgi:155,cha:[28,100],chain:[28,41,54,75,80,83,94,111,231,232,282,314,346,374],chain_1:75,chain_2:75,chain_:75,chain_open_door:75,chain_x:75,chainedprotocol:334,chainsol:111,chair:[14,37,46,48,107,121,443],challeng:[103,117,120,127,144,219],chan:[18,26,187],chanc:[5,11,20,30,47,63,77,79,91,93,114,120,121,127,129,148,175,210,256,257,258,259,260,265,270,271,346],chance_of_act:[5,346],chance_of_login:[5,346],chandler:129,chang:[0,2,3,5,8,10,12,13,14,15,16,18,20,22,25,27,28,30,31,32,33,34,35,36,37,41,42,44,45,46,47,48,51,55,56,57,58,60,61,63,65,67,73,76,77,78,79,81,82,83,84,86,88,90,91,94,95,96,99,101,104,106,107,108,109,111,113,115,116,117,119,121,122,126,127,128,129,130,132,136,138,139,140,141,142,143,145,146,148,149,151,152,154,155,157,159,161,163,168,176,177,179,180,182,188,193,196,203,204,206,209,214,218,221,224,226,227,229,232,239,242,243,249,250,252,253,254,256,257,258,259,260,269,270,271,272,273,282,283,284,286,288,294,296,300,301,304,305,307,308,309,314,319,330,345,352,353,360,362,364,368,371,372,375,376,377,383,384,385,386,398,399,400,403,404,406,439,441,443],change_name_color:254,changelock:[18,187],changelog:112,changepag:142,channel:[12,13,20,22,23,24,26,33,35,36,45,46,48,52,53,55,57,67,86,87,89,105,108,113,114,118,121,130,144,150,152,153,155,156,161,165,166,168,169,175,176,182,187,193,195,196,197,198,232,265,325,326,333,346,352,353,355,362,370,383,387,396,400,429,431,433,443],channel_:[18,196],channel_ban:[18,187],channel_color:92,channel_connectinfo:353,channel_detail:435,channel_list:435,channel_list_ban:187,channel_list_who:187,channel_msg:[18,168],channel_msg_nick_pattern:[18,196],channel_msg_nick_replac:[18,187,196],channel_msg_pattern:187,channel_prefix:[18,92,196],channel_prefix_str:[18,196],channel_search:197,channel_typeclass:431,channeladmin:400,channelalia:[18,187,196],channelattributeinlin:400,channelcl:187,channelcmdset:[20,108],channelconnect:198,channelcreateview:196,channeldb:[48,86,165,196,198,361,400],channeldb_db_attribut:400,channeldb_db_tag:400,channeldb_set:[362,365],channeldbmanag:[197,198],channeldeleteview:196,channeldetailtest:431,channeldetailview:[196,435],channelform:400,channelhandl:18,channelkei:197,channellisttest:431,channellistview:435,channelmanag:[196,197],channelmixin:435,channelnam:[18,153,168,169,187,196,325],channeltaginlin:400,channelupdateview:196,char1:[8,127,188,193,431],char2:[8,127,188,431],char_health:271,char_nam:141,charac:34,charact:[2,3,5,6,8,12,13,15,16,17,19,20,22,27,28,30,31,32,33,36,39,42,44,48,49,53,57,60,62,64,67,68,70,72,73,75,76,77,81,82,83,86,87,91,93,94,95,96,98,99,101,102,103,104,106,107,108,109,110,111,112,113,115,116,117,118,119,128,129,134,135,136,137,138,146,152,165,166,167,168,170,174,175,177,179,182,183,184,188,189,190,192,194,196,204,205,206,216,218,219,221,224,225,226,227,229,231,232,236,239,241,242,243,246,251,252,253,254,256,257,258,259,260,262,265,269,270,271,273,275,279,281,282,284,286,288,292,296,307,319,340,353,358,362,364,365,367,368,373,374,376,377,388,390,391,396,410,416,429,430,431,433,438,440,441,443],character1:127,character2:127,character_cleanup:[219,221],character_cmdset:224,character_ent:221,character_exit:219,character_form:436,character_id:296,character_leav:221,character_list:436,character_manage_list:436,character_typeclass:[8,168,388,431],charactercmdset:[18,20,26,50,77,83,91,92,95,97,99,100,101,104,114,115,126,130,184,204,206,210,224,236,239,249,256,257,258,259,260,271],charactercreateview:[431,436],characterdeleteview:[431,436],characterdetailview:436,characterform:[430,436],characterlistview:[431,436],charactermanageview:[431,436],charactermixin:436,characterpuppetview:[431,436],charactersheet:28,characterupdateform:[430,436],characterupdateview:[431,436],characterviewset:416,charapp:141,charat:225,charcreat:[26,75,80,102,108,179,205],charcter:18,chardata:100,chardelet:[26,108,179],chardeleteview:[288,364],chardetailview:[177,286,288,364],charfield:[67,141,386,398,399,400,402,403,404,406,430],charfilt:410,charg:[78,155],chargen:[141,165,166,196,199,288,364,443],chargencmdset:130,chargenroom:130,chargenview:[288,364],charnam:[100,179,377],charpuppetview:364,charset:390,charsheet:100,charsheetform:100,charupdateview:[288,364],chase:120,chat:[0,11,12,23,39,53,76,84,87,89,100,121,123,124,130,144,149,150,153,156,161,343,383,443],chatroom:99,chatzilla:153,cheap:[11,124],cheaper:47,cheapest:[83,155],cheapli:271,cheat:[85,127,146,443],chec:193,check:[0,2,3,5,6,7,8,9,10,11,14,15,18,19,20,22,28,30,35,36,37,41,42,46,47,48,49,55,57,58,62,64,67,75,77,79,80,81,82,84,85,89,90,92,93,94,96,97,98,100,102,104,105,106,107,113,114,115,119,123,124,126,127,129,130,134,135,136,138,141,148,149,150,151,152,155,156,157,158,162,163,168,170,173,174,175,176,177,179,181,182,187,188,189,190,192,193,194,196,198,203,205,206,209,214,218,219,221,224,225,232,236,253,256,257,258,259,260,262,265,269,271,272,273,279,282,284,291,292,295,296,300,301,304,306,307,308,313,314,318,323,329,334,352,353,355,357,358,359,362,364,365,367,368,370,377,384,385,390,391,393,398,399,406,411,438,441,443],check_attr:182,check_character_flag:218,check_circular:343,check_databas:314,check_db:314,check_defeat:127,check_end_turn:129,check_error:313,check_evennia_depend:390,check_flag:[218,219],check_from_attr:182,check_grid:81,check_has_attr:182,check_light_st:271,check_lock:411,check_lockstr:[33,90,292],check_main_evennia_depend:314,check_mixtur:218,check_obj:182,check_perm:219,check_permiss:300,check_permstr:[168,364],check_to_attr:182,check_warn:313,checkbox:141,checker:[16,81,291,334,391,395,443],checklockstr:108,checkout:[11,76,157],checkoutdir:2,checkpoint:443,chemic:210,chest:[39,107,117,118],chicken:216,child:[18,22,28,33,83,88,108,114,115,117,126,129,169,171,177,182,193,209,216,218,221,271,295,301,304,359,382,413],childhood:28,children:[22,46,48,88,91,111,135,171,284,295,296,304,314,363,364,382,408,436,443],chillout:182,chime:19,chines:[64,70,92,144],chip:100,chmod:2,choci:204,choic:[8,16,22,28,30,41,42,44,45,70,72,87,90,107,115,116,117,119,126,129,140,143,146,155,168,179,182,203,204,225,256,272,312,372,374,377,443],choice1:72,choice2:72,choice3:72,choicefield:[398,399,403,404,406,408],choos:[7,14,28,30,53,54,73,74,76,81,83,85,88,99,101,106,111,122,123,127,129,130,137,139,141,153,193,251,254,256,257,258,259,260,265,269,327,374,377,389,443],chop:[22,270],chore:121,chose:[67,100,116,141,148,158,162,254,374],chosen:[7,28,68,77,129,140,225,227,374,377],chown:157,chractercmdset:271,chraract:281,chrome:147,chronicl:225,chroot:151,chug:22,chunk:[14,82,102,316,368],church:[19,122],church_clock:19,churn:126,cid:346,cillum:29,cinemat:[221,223],circl:96,circuit:51,circular:[316,369],circumst:[28,71,80,99,106,113,115,116,126,175,259,430],circumv:180,cis:393,citi:[31,83,123,281],citymap:83,cjust:[30,377],clang:154,clank:75,clarifi:92,clariti:[64,67,107,117,130,154,210],clash:[20,31,119,146,155,182,364,374],class_from_modul:390,classic:[14,44,46,47,114,123,129,132,144],classmethod:[96,168,196,209,211,284,288,296,307,364,381,424],classnam:[13,64,117],classobj:364,claus:[136,143],clean:[11,13,17,18,28,82,90,92,93,114,115,120,126,129,163,175,177,182,192,203,210,219,221,243,256,257,258,259,260,270,271,273,296,304,314,318,332,342,355,364,367,372,374,381,386,389,390,398,399,406,430,443],clean_attr_valu:399,clean_attribut:[48,168,364],clean_cmdset:[48,364],clean_senddata:355,clean_stale_task:308,clean_str:367,clean_usernam:398,cleaned_data:141,cleaner:[107,117,130],cleanli:[44,88,163,173,177,225,316,325,331,342,355,372],cleanup:[8,13,22,27,28,62,77,203,209,221,268,271,374,398],clear:[9,11,13,16,18,22,27,46,47,48,51,55,58,62,70,72,77,82,83,84,85,88,89,90,94,102,104,121,124,126,127,140,159,163,176,179,180,182,188,194,198,225,241,243,252,253,271,275,283,292,294,295,296,305,308,309,316,353,357,362,364,365,374,381],clear_all_sessid:294,clear_attribut:362,clear_client_list:350,clear_cont:[37,296],clear_exit:[37,296],clearal:[72,188],clearli:[9,55,84,114,381],cleartext:[247,370],clemesha:359,clever:[18,20,28,54,292],cleverli:44,click:[2,7,9,11,49,50,51,52,53,59,71,73,85,102,112,141,155,374],click_top:189,clickabl:[71,85,189,443],clickable_top:189,client:[2,5,9,22,27,29,30,32,34,44,45,49,52,55,59,60,62,69,70,76,77,82,83,85,87,88,92,95,104,107,109,113,114,115,116,123,129,132,134,135,139,144,145,146,148,149,150,151,153,154,157,158,159,161,162,165,166,168,169,177,179,187,189,192,194,247,282,284,310,311,315,317,319,323,324,325,326,327,328,329,330,332,334,336,337,338,339,341,342,343,345,346,352,353,354,355,371,372,374,389,390,410,413,439,443],client_address:62,client_class:414,client_default_height:29,client_disconnect:343,client_encod:146,client_gui:319,client_opt:[68,319,338,443],client_secret:150,client_typ:218,client_width:[22,177],clientconnectionfail:[311,325,326],clientconnectionlost:[311,325,326],clienthelp:51,clientkei:345,clientraw:192,clientsess:[342,343],clientwidth:108,cliff:[109,182],climat:46,climb:[5,22,87,182,218,270],climbabl:[218,270],clipboard:50,clock:[19,22,55,108,127],clone:[9,10,64,85,88,112,149,443],close:[7,11,15,27,28,44,48,51,52,62,75,77,78,80,85,88,92,96,102,114,116,117,141,151,155,157,158,163,192,194,202,203,204,214,218,227,249,260,265,268,316,324,325,332,334,342,343,355,362,368,374,377],close_menu:[268,374],closer:[242,260],closest:[60,96,253,390],cloth:[13,79,165,166,199,368,443],clothedcharact:206,clothedcharactercmdset:206,clothes_list:206,clothing_typ:206,clothing_type_count:206,clothing_type_ord:206,cloud9:443,cloud:[42,140,155,157,158],cloudi:42,cloudkeep:78,clr:[30,223,300,377],cls:[96,168,253],club:209,clue:270,clump:117,clunki:[11,260],cluster:146,clutter:[85,176],cma:11,cmd:[5,15,18,20,22,31,33,55,68,77,92,93,94,97,100,101,105,106,108,116,119,126,130,138,152,162,175,177,179,180,181,182,187,188,189,190,191,192,193,194,203,204,205,206,209,210,213,214,216,224,225,226,230,236,239,240,243,249,250,251,254,256,257,258,259,260,265,269,270,271,272,275,285,296,338,342,343,345,368,372,374,375,438],cmd_arg:107,cmd_channel:22,cmd_help_dict:189,cmd_help_top:438,cmd_ignore_prefix:[22,174],cmd_kei:107,cmd_last:44,cmd_last_vis:44,cmd_loginstart:22,cmd_multimatch:[22,173],cmd_na_m:68,cmd_name:[68,338],cmd_noinput:[22,173,374],cmd_nomatch:[22,173,271,374],cmd_noperm:22,cmd_on_exit:[28,217,225,254,268,298,374],cmd_or_top:[189,438],cmd_total:44,cmdabil:8,cmdabout:192,cmdaccept:203,cmdaccess:188,cmdaccount:192,cmdapproach:260,cmdarmpuzzl:240,cmdasync:54,cmdattack:[94,127,129,130,256,257,258,259,260,270],cmdban:180,cmdbare:108,cmdbatchcod:181,cmdbatchcommand:181,cmdbigsw:94,cmdblindhelp:265,cmdblindlook:265,cmdblock:92,cmdboot:180,cmdbridgehelp:271,cmdbui:106,cmdbuildshop:106,cmdcallback:230,cmdcast:[210,259],cmdchannel:[18,187],cmdcharactercr:205,cmdcharcreat:179,cmdchardelet:179,cmdclimb:270,cmdcloselid:265,cmdcolortest:179,cmdcombathelp:[256,257,258,259,260],cmdconfigcolor:104,cmdconfirm:22,cmdcopi:182,cmdcover:206,cmdcpattr:182,cmdcraft:209,cmdcraftarmour:94,cmdcreat:182,cmdcreatenpc:130,cmdcreateobj:216,cmdcreatepuzzlerecip:240,cmddarkhelp:271,cmddarknomatch:271,cmddeclin:203,cmddefend:129,cmddesc:[182,224],cmddestroi:182,cmddiagnos:95,cmddice:[100,213],cmddig:182,cmddisengag:[129,256,257,258,259,260],cmddoff:257,cmddon:257,cmddrop:[188,206],cmddummyrunnerechorespons:345,cmdeast:271,cmdecho:[22,85,94,108,115,193],cmdedit:204,cmdeditnpc:130,cmdeditorbas:372,cmdeditorgroup:372,cmdeditpuzzl:240,cmdemit:180,cmdemot:[216,243],cmdentertrain:138,cmdevalu:203,cmdevenniaintro:271,cmdevmenunod:374,cmdevscaperoom:216,cmdevscaperoomstart:216,cmdexamin:182,cmdexiterror:97,cmdexiterroreast:97,cmdexiterrornorth:97,cmdexiterrorsouth:97,cmdexiterrorwest:97,cmdextendedroomdesc:224,cmdextendedroomdetail:224,cmdextendedroomgametim:224,cmdextendedroomlook:224,cmdfeint:129,cmdfight:[256,257,258,259,260],cmdfind:182,cmdfinish:203,cmdfocu:216,cmdfocusinteract:216,cmdforc:180,cmdget:[92,115,188,216],cmdgetinput:374,cmdgetweapon:270,cmdgive:[188,206],cmdgiveup:216,cmdgmsheet:100,cmdgoto:275,cmdgrapevine2chan:187,cmdhandler:[20,22,37,65,113,165,166,168,172,174,175,176,177,179,190,191,192,193,194,216,224,240,271,295,296,304,390,443],cmdhelp:[31,129,189,216,256,257,258,259,260],cmdhit:[108,115,129],cmdhome:188,cmdic:179,cmdid:319,cmdinsid:138,cmdinterrupt:193,cmdinventori:[105,188,206],cmdirc2chan:187,cmdircstatu:187,cmdjumpstat:216,cmdlaunch:91,cmdlearnspel:259,cmdleavetrain:138,cmdlen:[174,191],cmdlight:270,cmdline:314,cmdlineinput:372,cmdlink:182,cmdlistarmedpuzzl:240,cmdlistcmdset:182,cmdlistpuzzlerecip:240,cmdlock:182,cmdlook:[4,8,95,188,205,216,224,271],cmdlookbridg:271,cmdlookdark:271,cmdmail:236,cmdmailcharact:236,cmdmakegm:100,cmdmap:275,cmdmask:243,cmdmobonoff:269,cmdmore:375,cmdmoreexit:375,cmdmultidesc:[99,239],cmdmvattr:182,cmdmycmd:[31,98],cmdname2:174,cmdname3:174,cmdname:[32,51,62,65,68,108,126,130,173,174,177,182,190,191,193,319,337,338,342,343,355],cmdnamecolor:254,cmdnewpassword:180,cmdnick:188,cmdnoinput:204,cmdnomatch:204,cmdnositstand:126,cmdnpc:130,cmdnudg:265,cmdobj:[173,174,191,193],cmdobj_kei:173,cmdobject:[173,174,182],cmdobjectchannel:[18,187],cmdoffer:203,cmdooc:179,cmdooccharactercr:205,cmdooclook:[179,205],cmdopen:[182,249,275],cmdopenclosedoor:249,cmdopenlid:265,cmdoption:[179,216],cmdpage:187,cmdparri:129,cmdparser:[159,165,166,172,443],cmdpass:[256,257,258,259,260],cmdpassword:179,cmdperm:180,cmdplant:272,cmdpose:[129,188,243],cmdpressbutton:270,cmdpushlidclos:265,cmdpushlidopen:265,cmdpy:192,cmdquell:179,cmdquit:179,cmdread:270,cmdrecog:243,cmdreload:192,cmdremov:206,cmdrerout:216,cmdreset:192,cmdrest:[256,257,258,259,260],cmdroll:107,cmdrss2chan:187,cmdsai:[129,188,243],cmdsaveyesno:372,cmdscript:182,cmdsdesc:243,cmdser:374,cmdserverload:192,cmdservic:192,cmdsession:179,cmdset:[3,6,12,15,18,20,22,26,28,31,37,42,44,62,64,77,83,86,91,92,97,99,101,102,104,106,112,113,114,126,129,130,138,165,166,168,172,173,174,176,177,182,183,184,185,186,190,191,192,193,203,204,205,206,209,213,216,224,226,230,236,240,243,250,251,256,257,258,259,260,265,268,269,270,271,272,275,295,296,304,345,352,353,364,372,374,375,390,408,443],cmdset_account:[12,165,166,172,178,205,443],cmdset_charact:[165,166,172,178,206,256,257,258,259,260,443],cmdset_mergetyp:[28,217,225,268,298,374],cmdset_prior:[28,217,225,268,298,374],cmdset_sess:[44,165,166,172,178,443],cmdset_stack:176,cmdset_storag:[171,295,353],cmdset_trad:203,cmdset_unloggedin:[22,165,166,172,178,214,443],cmdsetattribut:182,cmdsetclimb:270,cmdsetcrumblingwal:270,cmdsetdesc:188,cmdsetevenniaintro:271,cmdsetevscaperoom:216,cmdsetflag:216,cmdsethandl:[44,165,166,172,443],cmdsethelp:189,cmdsethom:182,cmdsetkei:20,cmdsetkeystr:175,cmdsetlight:270,cmdsetmor:375,cmdsetobj:[175,176,183,184,185,186,203,204,205,206,209,213,216,224,240,243,251,256,257,258,259,260,265,268,269,270,271,275,345,372,374,375],cmdsetobjalia:182,cmdsetpow:130,cmdsetread:270,cmdsetsit:126,cmdsetspe:250,cmdsettestattr:27,cmdsettrad:203,cmdsettrain:138,cmdsetweapon:270,cmdsetweaponrack:270,cmdsheet:100,cmdshiftroot:270,cmdshoot:[91,260],cmdshutdown:192,cmdsit2:126,cmdsit:126,cmdsmashglass:265,cmdsmile:22,cmdspawn:182,cmdspeak:216,cmdspellfirestorm:93,cmdstand2:126,cmdstand:[126,216],cmdstatu:[203,259,260],cmdstop:250,cmdstring:[22,100,108,173,177,190,193],cmdstyle:179,cmdtag:182,cmdtalk:251,cmdtask:192,cmdteleport:[182,275],cmdtest:[3,94,107],cmdtestid:22,cmdtestinput:28,cmdtestmenu:[28,225,374],cmdticker:192,cmdtime:[101,192],cmdtrade:203,cmdtradebas:203,cmdtradehelp:203,cmdtunnel:182,cmdtutori:271,cmdtutorialgiveup:271,cmdtutoriallook:271,cmdtutorialsetdetail:271,cmdtweet:152,cmdtypeclass:182,cmdunban:180,cmdunconnectedconnect:[194,214],cmdunconnectedcr:[194,214],cmdunconnectedencod:194,cmdunconnectedhelp:[194,214],cmdunconnectedinfo:194,cmdunconnectedlook:[194,214],cmdunconnectedquit:[194,214],cmdunconnectedscreenread:194,cmduncov:206,cmdunlink:182,cmdunwield:257,cmduse:258,cmdusepuzzlepart:240,cmdwait:22,cmdwall:180,cmdwear:206,cmdwerewolf:92,cmdwest:271,cmdwhisper:188,cmdwho:[179,216],cmdwield:257,cmdwipe:182,cmdwithdraw:260,cmdxyzopen:275,cmdxyzteleport:275,cmdyesnoquest:374,cmset:[176,408],cmud:147,cnf:[2,146],coal:[209,210],coast:[82,120],coastal:82,cobj:216,cockpit:91,code:[2,5,6,7,8,12,15,16,20,22,24,28,30,31,33,34,37,39,41,44,46,47,48,49,50,52,53,54,55,56,57,60,61,62,64,67,68,72,73,75,76,78,79,80,81,82,83,84,86,87,88,89,90,94,96,98,99,100,101,102,103,107,109,111,112,113,114,115,117,118,119,120,122,124,125,126,128,129,130,131,133,134,135,136,138,139,140,142,144,146,149,156,157,158,159,161,163,165,166,168,172,173,176,179,181,182,187,189,192,195,199,203,204,208,212,213,218,221,227,229,232,241,258,271,272,281,292,301,304,325,326,342,353,356,364,366,367,372,374,376,387,388,389,390,397,439,442,443],code_exec:368,code_hint:218,code_tri:218,codebas:[8,11,72,74,85,87,98,118,193],codeblock:85,codec:367,codefunc:372,codeinput:218,coder:[0,1,77,98,121,123,124,144,173,296],codestyl:84,coding_styl:85,coerc:385,coexist:139,coher:131,coin:[78,89,117,118,121,122,203,443],col:[56,132,376],cold:[55,163,192,301,305,309,352],cole:390,coll_date_func:192,collabor:[11,88,90,121,124,155,189,443],collat:[31,65,300],collect:[0,13,20,30,31,49,83,117,134,173,175,189,192,200,240,253,362,390,416,438],collect_top:[189,438],collector:134,collectstat:[51,53,134,314,318],collid:[20,148,155,218,253,374,377],collis:[11,20,22,357],collist:117,colon:[19,33,109,116,292],color:[18,22,26,28,30,32,41,51,56,71,72,81,82,83,85,86,100,102,103,108,109,116,144,149,177,179,193,207,210,223,227,243,254,268,272,281,282,284,296,300,319,326,334,337,342,343,367,376,377,384,389,391,443],color_ansi_bright_bg_extra_map:207,color_ansi_bright_bgs_extra_map:207,color_ansi_extra_map:207,color_markup:[165,166,199,443],color_no_default:207,color_typ:367,color_xterm256_extra_bg:207,color_xterm256_extra_fg:207,color_xterm256_extra_gbg:207,color_xterm256_extra_gfg:207,colorablecharact:104,colorback:389,colorcod:389,colour:[19,182,341,367,376,443],column:[51,56,58,67,80,81,82,83,85,88,100,102,177,179,273,284,376,390],com:[0,8,9,10,11,40,49,53,54,56,64,69,73,76,77,78,80,82,85,87,96,114,118,120,121,141,144,145,146,148,149,151,154,155,156,157,158,165,187,192,204,214,289,326,329,338,342,359,376,389,390,430,442],combat:[11,15,20,41,48,69,78,80,82,87,88,92,93,103,108,113,114,120,122,123,127,128,135,144,149,176,256,257,258,259,260,269,304,443],combat_:[256,257,258,259,260],combat_cleanup:[256,257,258,259,260],combat_cmdset:129,combat_handl:129,combat_handler_:129,combat_movesleft:[256,257,258,259],combat_scor:130,combat_status_messag:260,combatcmdset:129,combathandl:129,combatscor:130,combin:[8,13,19,20,22,34,35,41,46,47,55,60,78,79,83,87,93,95,99,100,109,111,115,116,123,136,138,145,151,155,173,174,175,182,193,209,210,218,239,240,242,253,265,282,284,292,300,309,314,363,365,370,377,384,390],combo:44,come:[5,11,12,13,16,19,22,28,29,31,33,42,44,51,52,53,54,56,60,62,65,68,72,73,75,80,81,82,83,87,88,90,91,92,94,99,100,101,102,106,107,109,113,114,116,117,121,123,124,126,127,129,130,132,136,138,139,141,142,146,151,157,162,168,175,224,241,243,256,257,258,259,260,300,301,332,337,342,343,345,351,367,375,413,439],comet:[51,62,343],comfi:126,comfort:[11,16,87,102,107,124,443],comg:49,comm:[18,22,26,35,86,88,112,152,165,166,172,178,370,396,397,421,435,443],comma:[18,50,58,67,80,109,116,117,142,146,182,190,209,235,236,292,296,377],comman:109,command:[0,2,5,7,9,11,12,13,14,16,18,19,23,27,28,29,32,33,35,36,37,39,40,41,44,46,48,50,51,52,54,55,57,58,59,60,61,62,63,64,65,67,68,69,70,71,72,74,75,76,78,79,80,81,82,83,85,87,88,90,91,98,99,102,103,109,110,112,118,120,121,123,124,127,134,135,136,137,139,144,145,146,147,149,150,151,153,154,155,156,158,159,162,163,165,166,168,169,196,199,203,204,205,206,209,210,211,213,214,215,217,218,222,223,224,225,226,228,231,233,236,239,240,243,247,249,250,251,254,256,257,258,259,260,264,265,268,269,270,271,272,273,274,276,277,285,286,288,289,291,292,296,300,301,304,311,314,319,323,324,332,334,337,338,342,343,345,346,352,353,364,366,367,370,372,374,375,384,387,390,416,438,439,442,443],command_default_arg_regex:22,command_default_class:92,command_default_help_categori:31,command_pars:174,commandhandl:[32,176,191],commandmeta:177,commandnam:[22,32,65,109,272,314,323,353,355],commandset:[33,37,108,176,205],commandtest:[8,193,211,222,233],comment:[14,15,48,76,84,92,108,126,136,145,147,155,281,368,374,443],commerc:144,commerci:[7,89,124,155],commerror:197,commit:[2,9,10,16,63,69,84,85,88,92,146,156,157,246,399,406,443],commmand:[249,256,257,258,259,260],commom:443,common:[0,6,11,16,18,19,22,28,32,33,41,42,44,45,46,47,48,54,55,56,58,62,65,68,70,79,85,86,88,95,101,102,107,109,110,113,114,116,117,118,121,123,124,125,127,129,130,141,149,151,155,175,182,187,194,203,209,242,243,250,292,294,304,319,342,346,363,364,373,375,385,387,390,416,423,439],commonli:[9,30,31,36,42,44,45,47,53,58,65,67,83,88,111,115,123,146,149,159,193,253,282,296,416],commonmark:85,commun:[7,18,22,35,40,51,52,62,65,68,70,77,78,86,87,88,89,99,107,108,112,113,114,123,124,144,145,146,153,155,158,168,184,187,194,195,196,197,198,216,236,268,283,295,311,323,324,334,335,337,338,339,340,353,355,370,371,386,442,443],compact:[106,111,142,265],compani:[68,88],compar:[6,8,11,14,16,19,20,65,76,83,90,93,94,97,100,106,107,111,124,127,129,130,193,240,242,253,256,257,258,259,260,291,292,301,345,367,390],comparison:[5,14,30,111,112,193,252,291,301,374],compartment:100,compass:109,compat:[15,28,91,182,253,376,383,390],compet:[16,68,123],compil:[5,22,64,69,76,85,98,113,149,154,155,177,182,188,189,192,194,206,209,216,243,367,372,374,389],compilemessag:64,complain:[3,9,67,107,126,163],complement:[0,45,124,253],complementari:[24,30,42,70],complet:[2,5,8,9,11,12,13,14,15,16,19,20,22,27,37,39,44,45,50,52,54,68,77,78,81,82,84,88,92,97,100,101,104,106,111,115,116,120,121,122,123,124,130,146,151,155,159,162,163,168,175,176,177,190,192,193,207,224,225,227,232,257,265,271,282,296,308,314,316,324,325,342,362,368,373,374,375,387,390,411,430,443],complete_task:232,complex:[5,8,15,16,20,22,30,47,58,67,69,82,83,85,88,101,109,113,115,116,117,118,121,122,123,126,127,129,130,157,159,176,196,218,233,241,251,265,301,346,362,443],complianc:[147,224],compliant:[96,338],complic:[54,75,77,81,82,94,102,107,111,141,142,155,194,214,225,254,362],compon:[0,5,8,22,35,42,49,50,51,53,60,61,62,73,78,81,83,85,94,100,103,112,121,124,129,130,131,133,155,163,165,166,182,192,197,198,199,209,212,240,242,252,274,281,283,294,301,302,304,307,314,343,370,373,377,387,390,393,419,442,443],componenta:4,componentid:51,componentnam:51,componentst:51,compos:[157,225],composit:[340,363],comprehens:[5,8,33,35,48,87,122,126,149,158],compress:[32,319,323,327,386],compress_object:386,compris:168,compromis:[158,246],comput:[11,47,54,55,70,81,88,98,111,112,123,127,140,149,153,157,162,180,192,243,390,391,443],computation:47,comsystem:198,con:[26,100,144,194,214],concaten:[113,367],concept:[11,40,47,62,64,79,80,84,85,96,99,102,103,104,116,117,119,121,122,126,205,239,253,442,443],conceptu:[28,81],concern:[64,68,83,97,116,149,175,241,288],conch:[334,337,345],concis:124,conclud:[111,203,374,443],conclus:443,concurr:146,conda:76,conder:368,condit:[5,30,58,80,81,87,106,107,108,111,115,121,122,127,130,145,173,189,213,243,258,292,296,307,313,314,359,365,390,443],condition:92,condition_result:213,condition_tickdown:258,conditional_flush:381,conduct:134,conductor:138,conect:355,conf:[2,5,8,11,24,25,32,33,41,42,50,53,62,64,67,73,76,79,83,85,90,92,101,102,104,114,126,137,138,141,142,145,146,148,150,151,155,158,168,207,209,276,278,314,320,321,360,368,443],confer:[144,390],confid:[3,84,96],config:[2,7,10,11,12,30,62,76,90,149,151,155,156,253,314,316,320,321,332,405,443],config_1:12,config_2:12,config_3:12,config_color:104,configcmd:104,configdict:[334,355],configur:[2,8,12,50,75,85,88,92,101,102,103,113,134,137,148,149,155,157,158,168,171,174,179,246,247,253,272,316,321,332,355,357,359,360,363,430,443],configut:7,confirm:[22,51,83,109,145,149,158,182,214,240,338,341,441],conflict:[3,123,139],confus:[0,5,6,11,20,22,36,39,42,51,54,60,64,74,77,83,85,88,97,100,107,111,114,117,134,139,155,187,214,282,440],congratul:443,conid:333,conj:[30,58,296,377],conjug:[30,58,165,166,296,366,377,392,395,443],conjur:259,conn:[26,194,214],conn_tim:44,connect:[5,8,12,13,14,17,18,20,22,24,26,32,37,39,40,42,44,45,48,50,51,52,53,55,60,62,63,64,65,68,71,75,76,80,81,82,83,87,88,90,92,99,102,106,107,109,111,112,113,114,115,123,130,134,137,139,145,146,147,149,150,151,153,156,157,158,159,162,163,168,169,170,171,179,180,182,187,194,196,198,214,227,229,230,232,247,250,279,281,282,284,295,296,302,310,311,314,316,323,324,325,326,327,332,333,334,337,342,343,345,346,352,353,354,355,356,359,362,364,370,386,413,416,443],connection_cr:45,connection_screen:[25,113,159],connection_screen_modul:214,connection_set:148,connection_tim:[168,296],connection_wizard:[165,166,310,443],connectiondon:316,connectionlost:[316,323,324,334,337,345],connectionmad:[311,323,334,337,345],connectionwizard:312,connector:[311,325,326,332,355],conquer:120,cons3:211,consecut:28,consequ:[155,176],consid:[0,5,6,11,13,14,15,18,19,20,22,28,30,32,33,39,41,42,44,46,47,48,50,52,54,55,58,60,62,67,70,73,75,79,80,83,84,87,88,89,90,96,97,99,105,106,111,113,116,118,121,122,124,126,138,141,142,143,146,149,155,158,168,175,176,225,240,242,243,253,260,272,279,281,282,296,300,301,304,319,334,337,363,365,368,369,374,375,377],consider:[67,82,114,123,136,159,301,376],consist:[12,13,17,22,28,31,33,40,41,51,58,60,67,73,80,83,85,97,101,116,119,120,122,129,130,163,168,174,189,190,196,197,203,210,212,240,242,283,285,292,301,338,343,353,362,364,370,376,390,399,406,441],consitut:114,consol:[0,3,6,7,51,57,60,64,76,85,88,114,116,117,119,130,146,149,154,155,157,162,189,192,243,283,314],conson:242,constant:[68,75,323,388],constantli:[135,271],constitu:[176,190],constitut:13,constraint:[75,146],construct:[2,28,88,94,126,141,301,358,362,367,375,430],constructor:[22,77,79,204,209,253,325],consum:[54,79,209,210,211,218,316,390],consumable_kwarg:209,consumable_nam:209,consumable_tag:[79,209,210],consumable_tag_categori:[79,209],consume_flag:218,consume_on_fail:209,consumer_kei:[137,152],consumer_secret:[137,152],consumpt:[5,146,357],contact:[18,37,155,157],contain:[0,6,8,9,13,14,15,17,20,22,26,28,30,31,33,35,37,44,51,52,53,54,56,60,62,67,72,75,76,77,80,83,84,85,86,87,88,91,92,96,98,99,101,102,107,108,109,111,112,113,114,115,116,122,126,130,134,136,139,141,142,144,149,154,159,162,165,166,168,169,170,172,173,174,175,176,178,181,182,187,189,193,195,204,209,216,225,226,229,230,231,232,233,235,240,241,242,243,247,248,250,253,254,258,265,270,272,273,281,282,283,284,286,287,290,296,298,300,301,308,310,313,317,319,345,357,358,359,362,363,364,365,366,367,368,371,373,374,375,376,377,387,389,390,391,413,419,428,438,439,441,443],container:157,contempl:98,content:[5,11,14,17,19,30,35,37,48,50,51,52,53,56,81,85,90,91,96,98,100,102,105,106,107,111,113,115,116,118,119,123,124,125,126,128,130,131,132,133,135,138,141,142,144,151,155,177,180,182,202,218,219,243,275,286,294,295,296,365,367,368,369,372,374,376,387,396,406,413,419,428,442,443],content_typ:[295,296],contentof:376,contents_cach:295,contents_get:[118,296],contents_set:296,contentshandl:295,contest:216,context:[53,60,80,87,102,107,119,139,141,204,232,335,339,423,435,436,438,439,441],context_processor:423,contextu:46,continu:[1,3,8,13,19,22,28,46,47,53,54,59,67,80,81,83,84,87,91,94,100,102,106,108,115,116,129,130,134,152,154,155,282,296,312,323,359,362,374,383,390,443],contrari:[49,75,101,113,123,192,253,365],contrast:[39,42,70,98,155,338],contrib:[14,15,50,58,80,85,86,87,90,99,100,101,103,109,112,113,116,120,123,125,127,128,129,143,149,165,166,168,170,171,192,356,367,368,398,399,400,402,403,404,405,406,421,422,430,436,441,443],contribrpcharact:243,contribrpobject:243,contribrproom:243,contribut:[0,8,11,64,77,78,88,89,90,105,112,122,134,143,161,162,199,203,205,206,207,213,224,236,240,241,243,246,247,249,250,251,272,442,443],contributor:[143,204,253],control:[1,2,3,4,9,12,14,15,18,20,22,27,28,29,30,31,32,33,37,40,41,42,44,49,50,55,57,58,60,65,67,69,73,76,79,84,85,86,88,91,99,100,104,109,111,112,113,114,115,119,121,123,124,127,130,136,138,149,151,155,158,161,163,168,169,179,181,182,187,193,203,205,218,231,243,265,269,271,273,284,291,296,304,314,353,355,364,374,377,411,430,443],contrub:79,convei:[243,296],convenei:45,conveni:[2,7,8,18,28,31,32,33,37,39,41,42,48,53,54,62,67,69,74,76,83,85,87,91,99,102,114,115,116,118,119,141,145,156,163,168,182,192,204,209,221,223,236,296,346,357,368,369,374,375,377,383,386,387],convent:[20,45,67,75,111,139],convention:[177,296,364],convers:[8,18,28,30,36,78,138,242,251,342,343,367,390,442],convert:[9,13,18,19,36,41,60,62,65,68,70,81,83,88,96,101,104,106,111,114,119,126,139,144,158,170,180,212,213,225,254,281,291,294,300,301,303,305,323,325,334,337,338,355,359,367,371,374,375,376,377,378,386,389,390,393,413,443],convert_linebreak:389,convert_url:389,convinc:[28,155],cool:[0,76,77,91,121,132,144,182,187],cool_gui:39,cooldown:[94,129,443],coord:[96,279,281,282,284],coordi:96,coordin:[51,81,83,260,273,275,281,282,283,284,443],coordx:96,coordz:96,cope:259,copi:[0,2,5,9,11,14,15,22,26,27,28,41,44,49,50,51,53,73,75,82,88,90,92,101,104,108,109,112,113,130,134,141,151,155,157,159,181,182,206,232,256,257,258,259,260,271,294,296,303,314,323,360,367,383,438,439,443],copy_object:[294,296],copy_script:303,copy_word_cas:390,copyright:[143,155],core:[7,8,11,37,48,57,64,68,81,84,112,117,122,143,159,168,171,192,198,199,210,236,288,295,296,304,310,321,331,338,352,362,364,365,368,375,382,430,441,442,443],corner:[17,83,96,99,144,273,281,376],corner_bottom_left_char:376,corner_bottom_right_char:376,corner_char:376,corner_top_left_char:376,corner_top_right_char:376,corpu:242,correct:[8,15,19,20,22,27,30,53,54,60,70,84,85,91,95,107,114,117,124,130,138,139,146,173,179,182,193,197,218,224,240,243,266,281,292,329,332,334,340,354,367,390],correctli:[2,3,6,19,22,27,28,46,47,76,81,83,85,90,94,97,101,106,107,113,130,138,139,145,153,155,163,168,171,176,179,209,305,314,323,359,386,413],correl:301,correspond:[22,33,44,53,73,83,106,109,212,240,254,362,399,406,411,430],correspondingli:9,corrupt:98,cosi:82,cosin:390,cosmet:273,cost:[83,93,106,155,243,259,273],cottag:[59,82],could:[2,3,5,7,8,9,12,13,14,15,16,18,20,22,28,30,31,33,34,35,36,37,39,41,42,46,47,48,53,54,55,57,58,60,62,65,67,68,69,70,72,73,74,75,76,77,79,80,81,82,83,84,85,87,88,90,91,92,93,94,95,96,97,99,100,101,102,104,105,106,107,108,109,111,113,114,115,116,117,119,121,122,123,124,126,127,129,130,132,134,135,136,137,138,139,140,141,144,149,150,151,152,153,155,156,168,176,182,189,197,198,203,204,209,213,218,219,227,235,241,243,250,252,253,254,265,271,273,282,284,292,296,307,319,338,343,359,364,365,367,368,372,376,377,378,381,385,390,394],couldn:[57,74,88,96,97,107,108,116,139,142,241],count:[18,49,52,88,111,114,116,129,137,159,170,175,206,254,258,296,328,332,345,349,355,357,363,367,374,377,383,394],count_loggedin:332,count_queri:349,countdown:[42,94,109],counter:[9,42,44,77,94,102,106,122,129,165,166,169,199,252,271,332,345,346,353,374,443],counterpart:[14,60,122,319,355,371],countertrait:253,countri:180,coupl:[11,39,77,102,135,157,196,250],cours:[0,5,7,10,16,22,47,53,55,69,74,75,76,77,79,80,83,85,88,90,91,99,107,114,115,116,117,120,121,130,140,143,162,257,260,268],courtesi:55,cousin:[72,107],cover:[0,8,11,14,15,31,53,61,62,66,67,76,83,84,94,99,111,112,113,115,116,122,123,124,137,144,145,146,149,155,161,206,210,218,224,265,271,282,296,390],coverag:8,coveral:8,cpanel:155,cpattr:[26,108,182],cprofil:443,cpu:[5,55,155,158,192],cpython:5,crack:67,craft:[33,58,82,94,121,165,166,199,225,443],craft_recipe_modul:[79,209],craft_recipes_modul:209,craft_result:209,crafted_result:209,crafter:[209,210,211,443],crafting_consumable_err_msg:209,crafting_materi:[79,209,210],crafting_recipe_modul:79,crafting_result:209,crafting_skil:79,crafting_tool:[79,209],crafting_tool_err_msg:209,craftingcmdset:209,craftingerror:209,craftingrecip:[79,209,210,211],craftingrecipebas:[79,209],craftingvalidationerror:[79,209],craftrecip:209,cram:120,crank:47,crash:[0,82,116,121,144,158,318,362],crate:[36,109],crave:161,crawl:158,crawler:[194,328],cre:[26,194,214],creat:[0,3,5,7,8,10,11,13,14,15,16,18,20,25,26,27,28,30,31,33,35,36,39,41,42,44,45,46,49,50,51,53,56,57,61,62,63,69,72,73,74,76,77,78,79,80,81,83,84,85,87,88,89,90,92,94,96,97,98,99,100,101,104,106,107,111,113,115,117,118,119,120,121,122,124,125,126,127,128,129,131,133,134,135,136,137,140,142,143,144,146,148,149,150,152,153,154,155,158,159,162,165,166,168,169,170,171,174,175,176,177,179,182,187,188,189,190,191,192,193,194,196,198,202,203,204,205,206,209,210,211,212,213,214,216,217,218,219,221,223,224,225,226,231,232,233,235,236,239,240,241,242,243,247,249,251,253,254,256,257,258,259,260,262,265,268,269,270,271,272,273,281,282,283,284,286,288,292,294,295,296,298,299,300,301,304,307,308,309,311,314,318,319,324,326,327,332,334,335,339,346,352,354,355,357,359,362,363,364,365,366,367,368,369,372,373,374,376,377,378,383,390,398,403,410,415,416,431,434,436,438,439,440,441,443],creataion:279,create_:[37,48],create_account:[19,45,48,86,165,370],create_attribut:362,create_cal:168,create_channel:[18,19,86,165,187,196,370],create_charact:[168,296],create_default_channel:352,create_delai:308,create_evscaperoom_object:223,create_exit:[182,249],create_exit_cmdset:296,create_fantasy_word:223,create_forward_many_to_many_manag:[171,198,288,295,304,362,364,365,382],create_game_directori:314,create_grid:81,create_help_entri:[19,31,86,165,370],create_kwarg:301,create_match:174,create_messag:[19,35,86,165,370],create_object:[13,14,19,33,37,48,79,82,86,106,110,130,141,165,209,221,223,265,296,301,318,368,370,443],create_prototyp:[300,301],create_script:[19,42,48,86,98,129,165,307,368,370],create_secret_kei:314,create_settings_fil:314,create_superus:314,create_tag:363,create_wild:273,created_on:229,createnpc:443,createobj:216,creater:86,createview:440,creation:[6,11,13,15,28,33,37,44,48,67,74,82,83,85,91,100,104,109,110,112,114,121,123,128,130,141,144,165,168,171,182,187,189,196,205,209,240,243,247,249,253,256,257,258,259,260,270,271,275,281,284,288,295,296,301,304,309,347,364,370,372,373,374,376,398,399,403,406,430,434,436,441,442,443],creation_:370,creativ:[69,79,123],creator:[28,33,74,78,82,86,124,130,144,189,196,256,257,258,259,260,296,376],creatur:443,cred:[11,334],credenti:[11,52,53,155,158,168,334],credentialinterfac:334,credit:[11,116,155,158,389,390,443],creset:11,crew:111,criteria:[28,111,197,231,241,300,363,387],criterion:[11,111,114,115,120,168,203,243,287,294,296,303,306,387,390],critic:[0,6,9,20,42,44,57,60,149,151,292,313,314,383],critici:364,cron:151,crontab:151,crop:[30,60,100,182,281,373,376,377,390,443],crop_str:376,cross:[82,83,210,271,279,282,376],crossbario:342,crossbow:94,crossmaplink:[83,282],crossroad:82,crowd:[121,158],crt:[145,151],crucial:[47,107],crucibl:210,crucible_steel:210,cruciblesteelrecip:210,crud:[415,416],crude:[75,209,210],crumblingwal:270,crumblingwall_cmdset:270,crush:91,crypt:120,cryptocurr:158,cscore:130,csessid:[332,342,343,355],csession:[342,343],csrf_token:141,css:[17,50,51,53,71,73,87,113,134,389,419],cssclass:51,ctrl:[5,53,116,119,149,151,155,157,162,163,345],cuddli:[114,117],culpa:29,cumbersom:[9,28,138,254],cumul:346,cup:89,cupidatat:29,cur_valu:227,cure:[258,259],cure_condit:258,curi:81,curiou:69,curli:207,curly_color_ansi_bright_bg_extra_map:207,curly_color_ansi_bright_bgs_extra_map:207,curly_color_ansi_extra_map:207,curly_color_xterm256_extra_bg:207,curly_color_xterm256_extra_fg:207,curly_color_xterm256_extra_gbg:207,curly_color_xterm256_extra_gfg:207,curr_sess:355,curr_tim:224,currenc:[106,137],current:[5,6,7,8,9,11,12,14,15,18,19,20,22,26,27,28,30,32,37,39,42,43,44,46,47,51,52,53,55,57,58,60,67,75,76,77,79,80,81,83,88,91,92,93,94,100,106,108,109,111,112,113,114,115,117,122,126,129,130,137,138,141,144,151,157,159,162,168,170,171,173,174,176,177,179,180,182,187,188,189,191,192,194,203,204,206,209,216,218,221,224,225,227,232,235,239,241,243,249,250,252,253,254,256,257,258,259,260,264,268,270,271,273,275,282,284,287,294,295,296,301,304,308,309,314,319,324,330,331,334,335,338,346,353,355,357,363,364,372,374,376,377,378,383,384,387,390,398,413,435,436,438,439,443],current_choic:204,current_cmdset:182,current_coordin:273,current_kei:[299,300],current_tim:345,current_us:141,current_weath:42,current_weight:282,currentroom:138,curriculum:144,curs:[3,122],curtain:31,curv:[87,98],curx:81,cushion:126,custom:[0,6,12,13,15,16,17,19,20,22,25,26,32,36,37,41,46,48,52,55,56,58,61,63,65,67,74,75,81,83,86,87,88,91,92,95,98,100,102,103,106,109,111,113,115,120,121,122,123,126,127,129,130,134,135,136,138,139,140,141,143,144,150,152,155,157,159,163,168,169,170,171,173,175,176,177,182,187,188,189,194,196,203,205,206,209,212,213,216,217,218,219,221,224,225,226,232,235,240,242,243,246,247,253,265,268,270,271,273,277,281,282,286,287,294,296,298,299,300,301,303,309,314,318,320,323,345,354,364,369,372,374,375,376,381,384,385,389,390,397,398,400,405,415,416,421,422,439,443],custom_add:232,custom_cal:[232,235],custom_evennia_launcher_command:314,custom_gametim:[101,165,166,199,443],custom_helpstr:218,custom_kei:300,custom_pattern:[90,102,132,141,142],customis:273,customiz:[17,78,126,204,225,227,243,265],customlog:145,cut:[18,27,62,79,81,82,87,107,109,123,130,281,301],cute:134,cutoff:390,cvcc:242,cvccv:242,cvccvcv:242,cvcvcc:242,cvcvccc:242,cvcvccvv:242,cvcvcvcvv:242,cvcvvcvvcc:242,cvv:242,cvvc:242,cwho:108,cyan:[60,139],cyberpunk:[18,118],cyberspac:144,cycl:[14,15,92,98,101,121,140,256,257,258,259,260],cyril:16,daemon:[5,145,151,157,158,163,331,359],daffodil:118,dai:[2,11,19,69,98,101,121,122,137,139,140,151,157,158,170,210,212,224,378,383,390,391,443],daili:36,dailylogfil:383,dali:242,dalnet:187,dalton:111,dam:98,damag:[15,91,93,106,120,122,123,127,129,158,210,256,257,258,259,260,269,270],damage_rang:259,damage_taken:98,damage_valu:[256,257,258,259,260],damascu:210,danc:83,dandi:74,danger:[6,14,20,44,85,105,175],dare:[22,108,393],dark:[14,15,17,20,31,60,82,83,116,120,122,124,127,139,144,176,224,253,265,271,304,367,368],darkcmdset:271,darker:[60,139],darkgrai:139,darkroom:271,darkroom_cmdset:271,darkstat:271,dash:[85,241,254],dashcount:254,dashlin:30,data:[5,6,9,12,14,16,18,19,30,31,36,41,42,46,48,49,50,51,53,54,65,67,68,70,73,77,79,83,88,92,98,99,100,113,114,117,121,124,141,142,146,151,154,155,157,159,168,169,177,182,189,192,209,225,227,231,232,243,246,247,252,253,281,282,283,295,296,298,300,302,307,309,311,312,316,320,321,323,324,325,326,327,332,333,334,335,337,338,339,341,342,343,345,347,352,353,354,355,357,361,362,363,364,365,367,368,369,370,371,373,374,375,376,377,380,383,384,385,386,390,399,400,402,404,406,410,413,416,421,430,434,436,438,439,441,443],data_default_valu:253,data_in:[62,65,247,323,325,326,332,333,337,342,343,353,354,355],data_out:[62,247,332,334,337,338,343,353,354,355],data_to_port:311,data_to_serv:324,databa:314,databas:[2,5,8,10,11,13,14,16,17,18,19,20,23,32,33,34,35,36,37,42,44,45,46,47,48,49,50,52,53,55,57,73,74,75,82,83,85,87,88,90,91,93,94,96,98,99,100,107,108,110,112,113,115,116,118,121,122,123,126,129,130,134,141,142,146,149,157,159,161,162,163,168,170,171,175,176,182,189,192,196,197,198,224,231,232,243,259,271,283,284,285,286,287,288,291,294,295,296,300,302,303,304,305,308,309,314,318,320,331,345,352,361,362,363,364,365,368,370,371,379,381,386,387,390,396,400,403,404,406,416,443],dataclass:377,datareceiv:[316,323,337,345],dataset:300,datastor:67,date:[9,11,13,31,55,64,67,78,81,101,139,141,146,151,154,176,180,192,246,378,383,391],date_appli:141,date_cr:[48,168,171,198,288,304,362,364],date_join:[171,398],date_s:35,datetim:[48,101,141,212,362,378,383,384,390,391],datetime_format:390,datetimefield:[67,141,171,198,288,295,304,362,364,390,398],davewiththenicehat:438,david:144,dawn:109,day_rot:383,daylight:122,db3:[5,9,11,82,113,146,162],db3_backup:5,db_:[34,48,67,111,243,294,296,305,319,387],db_account:[206,294,295,304,398,403],db_account__db_kei:403,db_account__id:410,db_account__usernam:410,db_account_id:[295,304],db_account_subscript:[198,400],db_attribut:[45,171,198,295,304,364,398,400,403],db_attribute_categori:253,db_attribute_kei:253,db_attributes__db_kei:111,db_attributes__db_value__gt:111,db_attrtyp:[362,413],db_attryp:36,db_categori:[67,111,362,365,406,413],db_category__iequ:67,db_cmdset_storag:[171,206,295,398,403],db_data:[365,406,413],db_date_cr:[67,171,198,206,288,295,304,362,364,398,400,402,403,404,413],db_desc:[304,410],db_destin:[206,295,398,403],db_destination__isnul:137,db_destination_id:295,db_entrytext:[288,402,413],db_header:[198,400],db_help_categori:[288,402,413],db_help_dict:189,db_help_top:438,db_hide_from_account:[198,400],db_hide_from_object:[198,400],db_hide_from_receiv:198,db_hide_from_send:198,db_home:[206,295,398,403,413],db_home__db_kei:410,db_home__id:410,db_home_id:295,db_index:67,db_interv:[304,404,410,413],db_is_act:[304,410,413],db_is_bot:[171,398,410],db_is_connect:[171,398,410],db_kei:[34,48,49,67,83,102,110,111,114,206,231,288,305,321,362,364,365,398,400,402,403,404,405,406,410,413,430],db_key__contain:48,db_key__exact:111,db_key__icontain:[67,111],db_key__iexact:111,db_key__in:111,db_key__startswith:48,db_locat:[34,49,111,114,206,295,398,403,413],db_location__db_kei:[403,410],db_location__db_tags__db_key__iexact:111,db_location__id:410,db_location__isnul:137,db_location_id:295,db_lock_storag:[198,206,288,362,364,398,400,402,403,404],db_messag:[198,400],db_model:[362,365,406],db_obj:[304,371,404],db_obj__db_kei:410,db_obj__id:410,db_obj_id:304,db_object_subscript:[198,400],db_permiss:67,db_persist:[304,404,410,413],db_properti:319,db_protototyp:300,db_receiver_extern:[198,400],db_receivers_account:[198,400],db_receivers_accounts__db_kei:400,db_receivers_object:[198,400],db_receivers_objects__db_kei:400,db_receivers_script:[198,400],db_receivers_scripts__db_kei:400,db_repeat:[304,404,413],db_sender_account:[198,400],db_sender_accounts__db_kei:400,db_sender_extern:[198,400],db_sender_object:[198,400],db_sender_objects__db_kei:400,db_sender_script:[198,400],db_sender_scripts__db_kei:400,db_sessid:[206,294,295,398,403],db_start_delai:[304,404,413],db_strvalu:362,db_tag:[111,171,198,288,295,304,364,365,398,400,402,403],db_tags__db_categori:[96,111,410],db_tags__db_kei:[96,111,400,410],db_tags__db_key__iexact:111,db_tags__db_key__in:96,db_tagtyp:[365,406,410,413],db_text:67,db_typeclass_path:[67,137,206,295,364,390,398,400,403,404,410,413],db_valu:[34,36,111,321,362,405,413,416],dbef:[303,387],dbentri:189,dbhandler:430,dbholder:362,dbid:[48,169,187,364],dbid_to_obj:390,dbmodel:363,dbobj:[13,362],dbobject:[13,363,364],dbprototyp:[182,300],dbref:[9,14,30,33,35,41,48,55,63,82,83,100,109,114,120,129,138,168,170,171,180,182,187,197,198,225,240,243,249,271,273,275,284,291,294,295,296,301,303,304,306,363,364,370,377,387,390,443],dbref_search:[170,294,303,363],dbref_to_obj:390,dbrefmax:182,dbrefmin:182,dbsafe_decod:386,dbsafe_encod:386,dbserial:[6,13,165,166,305,366,443],dbshell:[9,67,146,163],dbstore:252,dbunseri:371,ddesc:98,deactiv:[88,104,135,149,187,224,269,374],dead:[46,123,253,269,270,352,355,381],deadli:120,deal:[11,16,18,28,31,44,46,53,54,55,70,88,102,107,122,127,129,139,142,158,168,203,204,212,225,256,257,258,259,260,281,282,295,296,353,364,367,384,441,443],dealt:[190,258,259],dealth:258,death:[28,121,127,137,443],death_msg:269,death_pac:269,debat:107,debian:[11,145,146,149,151],debuff:253,debug:[1,7,15,19,28,32,42,53,73,78,107,115,116,153,173,177,181,192,216,217,225,268,298,314,319,325,326,337,359,368,374,383,390,443],debugg:[3,16,163,165,443],dec:64,decemb:155,decend:173,decent:[5,242],decic:242,decid:[15,16,22,30,44,46,67,68,79,80,90,92,100,102,106,121,127,129,139,155,158,161,173,203,256,292,375,443],decis:[47,123,127,413],declar:[60,386],declared_field:[398,399,400,402,403,404,406,430],declared_filt:410,declin:[28,203],decod:[16,338,367,390,438],decode_gmcp:338,decode_msdp:338,decoded_text:390,decompos:141,decompress:[323,386],deconstruct:[120,193,211,222,252,266,279,340,388,414],decor:[11,22,45,75,79,80,94,171,193,223,295,296,304,311,323,324,364,370,374,375,390,443],decoupl:[76,300],decoupled_mut:13,decreas:[78,122,259,271,372],decrease_ind:372,dedent:[27,31,390,443],dedic:[8,39,116,117,127,151,155,443],deduc:372,deduce_ind:372,deduct:[106,127,256,257,258,259,260],deem:[11,72,84,99,199,434,436,441],deep:[31,112,144,443],deeper:[24,103,120,254,443],deepest:182,deepli:13,deepsiz:390,def:[3,5,8,13,19,20,22,27,28,30,32,33,34,37,39,41,42,45,48,54,62,77,79,81,82,85,90,91,92,93,94,95,96,97,98,99,100,101,102,104,105,106,107,108,114,115,116,117,118,126,127,129,130,132,135,136,137,138,140,141,142,144,152,193,204,218,224,253,272,273,299,343,356,372,374,375,377,390],def_down_mod:258,defafultobject:114,defalt_cmdset:152,default_access:[13,362,370],default_categori:287,default_charact:226,default_client_width:30,default_cmd:[4,18,77,83,86,91,92,93,94,95,97,99,100,101,104,108,115,129,165,204,206,224,236],default_cmdset:[25,44,77,92,95,97,99,100,101,104,113,114,115,126,130,176,204,205,206,210,224,225,239,249,254,256,257,258,259,260],default_command:[92,113],default_confirm:[182,240],default_create_permiss:49,default_error_messag:386,default_help_categori:[31,189,286,438],default_hom:41,default_in:51,default_kei:253,default_kwarg:[30,377],default_list_permiss:49,default_out:51,default_pass:370,default_screen_width:22,default_set:[8,113,132],default_sit:421,default_transaction_isol:146,default_unload:51,default_weight:[83,282],default_xyz_path_interrupt_msg:275,defaultaccount:[12,48,86,88,114,115,165,168,169,183,296,388,413,430,434],defaultchannel:[18,48,86,114,165,187,196,435],defaultcharact:[8,13,37,48,67,77,86,92,99,100,101,104,114,115,126,127,130,165,168,184,204,206,226,243,252,253,256,257,258,259,260,296,362,388,430,436],defaultcmdset:213,defaultdict:305,defaultexit:[37,48,83,86,106,114,165,249,250,270,273,284,296,388],defaultguest:[86,165,168],defaultmod:383,defaultobject:[0,4,13,30,37,48,67,82,85,86,88,105,106,110,112,114,117,118,126,135,138,165,168,206,218,243,251,253,257,260,264,265,270,296,364,388,413,430,441,443],defaultpath:390,defaultroom:[37,48,81,83,86,96,98,106,114,140,165,219,224,243,271,273,284,296,388],defaultrout:[412,415],defaultscript:[42,48,86,98,114,129,137,138,165,169,203,212,232,240,241,242,256,257,258,259,260,262,273,283,300,306,307,347,378,388],defaultsess:[115,185],defaulttyp:359,defaultunloggedin:[115,186],defeat:[120,121,127,129,256,257,258,259,260,269,443],defeat_msg:269,defeat_msg_room:269,defend:[28,120,129,256,257,258,259,260,270,296],defens:[122,129,256,257,258,259,260],defense_valu:[256,257,258,259,260],defer:[19,22,54,94,141,171,173,192,198,224,250,288,295,296,304,308,311,321,323,324,355,359,362,364,365,382,383,398],deferredlist:359,defin:[2,3,4,5,6,7,8,12,13,14,15,19,25,27,31,32,37,39,41,47,48,49,51,53,54,55,59,60,62,65,68,70,72,73,75,77,79,80,81,82,86,87,88,90,91,92,95,97,98,99,100,101,102,104,106,107,108,109,111,113,115,116,117,121,123,126,127,130,134,135,138,139,141,143,159,165,167,171,173,175,176,177,179,182,188,189,190,192,193,194,196,197,198,202,204,206,207,209,212,213,216,222,224,225,231,232,235,240,241,242,243,251,253,254,258,259,262,270,271,281,285,286,287,288,290,291,292,293,294,295,296,300,301,303,304,307,309,310,311,314,321,324,345,346,353,354,355,358,361,362,363,364,365,367,368,369,372,374,377,378,382,385,387,390,394,400,402,403,413,416,423,430,438,439,443],define_charact:28,definin:116,definit:[3,8,12,15,22,31,36,37,39,41,47,54,55,59,68,75,83,87,96,102,105,113,126,175,177,182,190,229,240,270,290,292,295,300,301,306,368,370,374,377,386,443],deflist:359,degrad:8,degre:[31,119],deindent:390,del:[13,26,39,55,94,100,120,126,129,180,182,224,239,240,252,253,364],del_callback:[230,232],del_detail:224,del_pid:314,delai:[22,26,75,93,137,192,212,225,232,250,265,270,308,309,326,332,355,369,390,443],delayed_import:355,delcom:[100,108],deleg:[171,198,288,295,304,362,364,365,382],delet:[8,9,11,12,13,14,18,20,26,27,28,30,33,36,37,42,44,45,46,50,55,63,77,79,82,83,90,113,114,115,120,126,129,146,149,156,157,162,168,176,179,180,181,182,187,188,189,192,196,198,209,219,223,224,229,230,232,233,236,239,240,249,252,253,270,283,288,292,296,300,303,305,306,307,308,309,320,332,353,362,364,367,368,374,381,398,399,406,411,415,431,436,440,441],delete_attribut:362,delete_default:[20,176],delete_dupl:223,delete_prototyp:300,delete_script:303,deletet:224,deleteview:440,deliber:[3,72,122,390],delic:206,delimit:[64,107,190,368,443],deliv:[155,236,243],delpart:240,delresult:240,deltatim:390,delux:155,demand:[42,47,95,100,121,123,127,135,155,168,196,224,253,296,356,369],demo:[53,77,78,87,103,119,120,125,128,131,133,144,267,268,374,443],democommandsetcomm:268,democommandsethelp:268,democommandsetroom:268,demon:41,demonin:390,demonstr:[75,77,90,126,139,141,204,225,246,258],demowiki:90,deni:[18,145,158,231,235],denot:[98,142,281,368],denounc:373,depart:81,depend:[5,6,7,11,13,15,16,18,19,20,22,28,30,32,35,42,44,47,48,51,54,55,56,60,62,64,65,68,75,77,78,79,80,81,82,83,84,87,88,90,99,100,102,106,113,114,115,120,121,123,126,127,129,130,136,141,142,146,149,153,154,155,157,158,159,167,173,175,177,179,192,204,205,213,224,230,242,253,265,273,281,282,284,286,292,296,300,309,314,334,337,343,345,355,364,365,372,374,375,377,390,394,443],depict:219,deplet:[253,258],deploi:[80,85,155,158,443],deploy:[2,7,85,144,155,157,161],depmsg:383,deprec:[19,28,41,165,166,301,310,367,374,383,390,443],deprecationwarn:313,depth:[2,17,31,56,83,120,189,254,289,301],dequ:[13,357],deriv:[8,48,69,98,146,149,151,157,272,367,391],desc:[15,18,26,32,33,34,37,41,42,50,77,79,82,83,91,99,100,102,105,106,108,109,114,122,129,137,142,165,166,176,179,182,187,189,193,199,204,206,209,210,218,224,239,240,249,254,259,265,273,296,304,312,368,370,372,373,374,430,436,441,443],desc_add_lamp_broken:265,desc_al:269,desc_closed_lid:265,desc_dead:269,desc_open_lid:265,descend:[111,430],descer:443,describ:[8,10,11,13,14,15,18,20,22,28,33,39,40,41,48,50,51,53,60,64,67,68,70,73,76,77,80,82,83,84,85,87,88,91,95,100,101,102,106,108,109,113,114,116,117,122,126,129,141,144,146,149,152,154,155,163,175,182,186,188,198,206,209,210,212,217,224,241,243,253,259,265,281,282,296,301,307,311,332,334,337,347,374,389,390,403],descripion:269,descript:[0,11,15,16,18,28,32,41,46,50,53,58,72,73,75,77,78,80,81,82,83,85,87,91,96,99,100,106,109,112,121,122,139,141,142,148,155,179,182,187,188,196,203,204,206,217,224,239,241,243,249,252,253,254,264,265,268,269,270,271,272,273,281,284,296,304,368,370,374,384,385,398,403,412,416,443],description_str:82,descriptor:362,descvalidateerror:239,deseri:[6,13,384,413],deserunt:29,design:[0,15,22,37,41,46,53,56,69,72,79,82,84,87,96,99,107,111,113,121,122,123,124,126,135,136,141,144,146,176,182,204,231,243,246,270,296,368,384,390,443],desir:[19,46,47,51,60,69,81,83,90,93,94,99,100,107,130,138,141,182,196,207,223,242,292,314,359,362,370,376,391],desired_effect:210,desired_perm:292,desk:126,desktop:[16,56],despit:[13,14,44,88,99,104,144,149,271],dest:[272,296],destin:[22,32,37,41,50,75,77,81,82,83,92,106,107,118,126,138,182,246,249,250,256,257,258,259,260,270,271,275,276,281,282,284,295,296,301,370,416,436],destinations_set:295,destroi:[8,18,26,37,75,108,109,129,158,168,169,182,187,240,258,296],destroy:249,destroy_channel:187,destroy_compon:218,destroy_lock:411,destruct:[20,175],detach:7,detail:[0,5,9,11,12,13,16,18,22,28,31,33,37,41,42,44,48,50,55,57,60,68,72,73,76,77,78,79,80,82,83,84,85,88,95,100,107,109,113,114,115,116,120,121,122,124,129,134,136,142,146,149,155,176,177,182,196,204,209,218,224,240,241,243,253,257,271,273,281,286,288,289,301,308,316,317,353,355,364,367,372,377,390,393,398,403,415,416,431,438,440,441,443],detail_color:182,detailkei:[224,271],detailview:[438,440],detect:[2,18,20,22,37,44,68,85,104,121,126,136,158,174,177,326,377,415,443],determ:363,determin:[5,12,14,16,18,19,20,22,27,28,29,31,33,36,41,42,51,65,79,81,83,90,94,96,97,105,106,109,115,126,127,129,130,134,146,149,163,168,175,176,177,179,187,189,190,193,196,203,242,243,250,254,256,257,258,259,260,270,282,286,288,292,296,300,338,362,363,364,367,372,375,377,383,390,394,398,400,403,410,411,419],determinist:282,detour:[65,91,113,117,355],dev:[31,84,87,88,99,116,124,144,146,149,151,152,155,156,442],devel:113,develop:[0,2,3,5,6,7,11,13,16,18,19,22,30,31,39,41,49,51,53,56,57,58,64,67,68,69,73,76,78,82,84,85,87,88,89,92,98,100,107,109,110,112,113,114,115,116,117,121,123,124,132,134,139,141,146,148,149,152,153,155,159,162,177,180,181,187,188,189,192,196,216,229,230,235,246,286,288,296,301,360,364,365,368,374,442,443],deviat:124,devoid:367,dex:[13,28,100,114,116,122,373],dexter:[122,256,257,258,259,260],diagnos:[6,95],diagon:[83,279],diagram:48,dialog:51,dialogu:[75,78,122,443],dice:[79,107,117,123,127,129,149,165,166,199,443],dicecmdset:213,dicenum:213,dicetyp:213,dict:[8,13,14,20,28,30,31,41,42,45,49,53,68,75,79,80,83,86,92,108,168,169,175,177,182,189,193,196,206,209,212,224,225,229,232,235,242,243,246,247,253,254,258,260,264,271,281,282,283,286,289,296,298,299,300,301,307,309,311,312,314,319,323,324,325,327,332,334,337,342,343,354,355,357,363,368,369,371,373,374,375,377,385,390,430,435,438,439,441],dict_of_kwarg_convert:30,dictat:[20,101,135],dictionari:[6,13,14,20,33,41,54,75,81,87,92,98,101,102,127,129,142,180,182,206,212,224,225,229,232,235,242,243,246,247,248,254,258,259,271,273,292,301,308,319,332,341,353,354,355,357,363,367,369,373,374,381,384,385,386,390,430,439,441,443],did:[11,12,64,77,82,88,91,94,99,107,108,109,114,115,116,126,130,159,168,203,296,308,365,386,390,395],did_declin:203,didn:[3,8,28,33,74,77,81,83,85,97,100,107,108,109,110,114,115,116,117,120,134,138,139,141,153,157,159,283],die:[7,107,120,123,127,135,213,242,355],dies:[123,269],diff:[11,154,213,301],differ:[3,5,7,8,11,12,13,14,15,16,19,20,22,27,28,30,31,33,34,36,41,42,44,45,46,47,51,56,57,60,62,63,65,68,70,71,72,74,75,76,77,78,79,80,81,82,83,84,85,87,88,89,91,92,96,97,99,100,101,102,103,105,107,108,109,110,111,113,114,115,116,117,119,121,124,126,127,129,134,136,137,138,139,141,144,145,147,148,149,157,158,162,163,165,168,173,175,176,179,182,189,191,192,194,196,204,209,212,213,214,217,218,221,232,233,236,241,243,250,253,254,256,257,258,259,260,272,273,279,281,282,284,294,296,298,301,303,304,309,312,316,338,343,345,362,364,368,370,374,377,383,386,390,394,395,398,399,406,410,415,416,439,441,443],differenti:[98,99,100,113,114,122,123,206,243,254,296,377,390,394],differnt:218,difficuli:13,difficult:[5,90,96,123,141,158,259,260],difficulti:[79,141],dig:[5,20,22,26,37,41,62,74,75,83,99,100,108,109,113,115,120,130,138,182,216,249,346],digit:[30,55,60,155,241,358,367,377,383],digitalocean:[151,155],dijkstra:[83,281,282],diku:[87,88,103,443],dikumud:72,dime:69,dimens:[81,87],dimension:100,dimenst:117,diminish:60,dimli:82,dinner:[80,123],dip:116,dir:[2,8,9,11,42,53,64,76,78,85,88,91,100,103,114,116,117,142,144,146,148,149,151,154,155,157,383,390,419,443],direcetli:377,direct:[9,20,28,32,41,51,54,55,58,68,75,77,78,81,82,83,89,97,100,109,129,132,136,138,145,155,157,182,193,218,231,247,273,275,279,281,282,283,284,292,294,307,314,374,376,377,383,387,390,443],direction_alias:[83,282],direction_nam:282,direction_spawn_default:282,directli:[3,4,9,11,12,13,14,15,19,22,27,28,31,33,35,37,41,42,48,50,51,52,53,60,62,68,79,80,82,83,84,85,87,88,91,94,95,97,98,100,101,108,109,110,111,112,113,114,116,117,118,121,129,130,136,145,146,153,155,157,159,163,170,177,193,197,203,204,205,210,213,216,221,223,235,243,252,253,254,259,260,265,271,272,282,283,284,287,292,294,295,296,300,303,304,320,325,334,337,342,345,347,353,362,364,368,370,374,375,377,388,390],director:[78,243,296,443],directori:[1,2,5,7,8,9,10,11,14,19,48,51,53,73,76,84,88,90,92,100,101,102,112,113,130,134,141,142,145,146,149,154,157,182,246,314,334,335,359,368,383,390,443],directorylist:359,dirnam:314,dirti:87,disabl:[5,7,8,27,33,51,60,71,75,90,92,104,126,147,149,177,193,225,243,252,253,254,265,272,292,300,337,357,375,377,381,391,443],disableloc:337,disableremot:337,disadvantag:[100,123,129,155,260],disambigu:[153,177,296,364],disappear:158,discard:367,disconcert:124,disconnect:[6,9,12,13,18,40,44,45,46,51,55,62,99,123,129,130,162,163,168,179,182,187,190,192,196,296,324,325,326,332,333,334,337,342,343,346,352,353,354,355],disconnect_al:332,disconnect_all_sess:355,disconnect_duplicate_sess:355,disconnect_session_from_account:168,discontinu:147,discord:[76,89,124,144,149,153],discordia:69,discourag:[88,123,154],discours:123,discov:[107,120,123,362],discoveri:247,discret:[35,113,416],discrimin:158,discuss:[0,18,22,53,78,83,84,87,89,90,92,102,118,123,129,146,149,443],discworld:68,disengag:[78,129,168,256,257,258,259,260],disguis:58,disk:[13,19,67,69,157,163,242,246,281,286,298],dislik:99,disonnect:13,dispatch:84,dispel:139,displai:[3,5,17,20,22,27,28,31,33,37,42,49,51,52,53,59,60,65,68,73,75,77,78,80,82,83,85,92,95,100,102,104,105,106,107,114,121,126,129,130,134,141,142,158,159,168,177,179,182,187,189,192,193,194,203,204,206,214,217,221,223,224,225,227,230,232,236,243,253,254,265,268,270,271,272,273,279,281,282,284,286,296,300,301,312,314,331,349,352,357,364,365,372,373,374,375,376,384,385,386,389,390,391,400,402,404,405,406,413,430,435,439,440,441,443],display:309,display_all_channel:187,display_buff:372,display_choic:204,display_formdata:225,display_help:372,display_helptext:[298,374],display_len:390,display_map:279,display_met:227,display_nam:377,display_nodetext:374,display_subbed_channel:187,display_symbol:[83,281,282,284],display_symbol_alias:282,display_titl:204,dispos:[82,240],disput:129,disregard:22,dissect:108,dist:[83,149,279,281],distanc:[19,48,80,81,83,88,96,110,242,259,260,279,281,296,390,408],distance_inc:260,distance_to_room:96,distant:[81,224,271],distinct:[44,74,87,88,111,260,410],distinguish:[77,177,254,260],distribut:[3,6,8,9,16,18,20,76,88,112,143,145,146,149,196,198,243,367,370,390,393],distribute_messag:196,distro:[145,146,149,151,153],disturb:[19,74],distutil:149,distutilserror:149,ditto:149,div:[17,30,41,51,56,85,132],dive:[77,117,118,119,149,443],diverg:65,divid:[14,30,88,102,212,271,390],dividend:212,divis:252,divisiblebi:102,divisor:212,divivid:122,django:[0,2,8,9,12,13,16,42,45,46,48,49,50,51,52,53,64,67,70,76,87,90,92,96,102,103,113,114,118,119,126,127,132,134,137,142,144,146,149,158,159,168,170,171,177,194,196,198,200,202,211,214,252,253,279,284,286,288,294,295,300,303,304,313,314,320,321,334,340,342,343,350,356,357,358,359,362,364,365,368,371,375,380,381,382,386,388,390,395,396,397,398,399,400,401,402,403,404,405,406,410,411,413,415,416,421,422,425,430,434,435,436,438,439,440,441,443],django_admin:431,django_filt:[410,416],django_nyt:90,djangofilterbackend:416,djangonytconfig:90,djangoproject:[64,114,146,430],djangowebroot:359,dmg:127,dnf:[145,149,151],do_attack:269,do_batch_delet:362,do_batch_finish:362,do_batch_update_attribut:362,do_craft:209,do_create_attribut:362,do_delete_attribut:362,do_flush:[364,381],do_gmcp:338,do_hunt:269,do_mccp:327,do_msdp:338,do_mssp:328,do_mxp:329,do_naw:330,do_nested_lookup:182,do_not_exce:92,do_noth:268,do_patrol:269,do_pickl:371,do_search:189,do_sit:126,do_stand:126,do_task:[192,308,390],do_task_act:192,do_unpickl:371,do_update_attribut:362,do_xterm256:367,doabl:15,doc:[10,13,17,18,22,24,28,31,41,48,50,53,56,64,67,72,83,86,88,89,92,103,111,112,113,114,117,122,124,126,134,144,146,162,163,165,182,192,241,272,275,296,325,390,430,442,443],docker:[144,149,155,161,162,443],dockerfil:157,dockerhub:157,docstr:[31,32,92,108,114,115,126,177,182,193,204,210,216,230,242,243,253,254,265,271,272,281,289,345,374,443],document:[0,1,4,5,7,8,11,17,24,26,29,31,42,48,49,50,52,53,56,60,61,64,67,73,75,76,77,78,79,80,82,83,87,88,89,92,94,99,100,103,112,113,114,116,117,119,120,130,132,134,138,141,144,146,147,155,158,159,161,162,176,190,204,241,272,289,362,365,373,381,410,435,438,443],dodg:257,doe:[0,8,11,12,13,18,20,22,28,30,31,33,35,37,39,41,42,46,48,51,52,53,58,59,60,62,68,70,72,74,76,79,81,82,83,84,85,87,88,90,91,92,94,96,98,99,100,102,106,107,108,109,112,113,114,116,117,120,121,122,126,127,129,130,134,135,136,138,139,140,141,143,146,147,148,149,151,157,159,163,168,169,179,190,192,193,194,205,206,207,209,214,216,223,224,239,240,253,254,256,257,258,259,260,270,271,272,273,281,282,296,300,301,307,308,313,314,318,319,320,323,326,334,335,341,362,364,369,374,377,383,386,390,422,430,438,441,443],doesn:[0,2,8,9,13,14,16,22,28,30,35,37,48,51,52,53,67,68,75,76,77,79,80,81,82,83,84,90,94,96,97,99,102,107,108,114,116,117,121,123,126,127,130,134,138,139,141,143,149,152,153,154,155,158,162,163,176,187,196,198,205,209,210,224,231,232,243,258,281,282,292,296,314,327,334,338,362,367,374,385,390,398],doesnotexist:[168,169,171,196,198,203,206,212,218,219,224,226,232,240,241,242,243,249,250,251,256,257,258,259,260,262,264,265,269,270,271,273,283,284,288,295,296,300,304,307,321,347,362,365,370,378,382],doff:257,dog:19,doing:[2,5,6,8,12,13,19,20,22,26,28,37,44,47,48,51,53,54,58,60,79,80,81,83,85,88,89,90,94,96,99,100,102,108,111,114,116,117,122,123,128,139,141,142,144,155,163,168,179,196,203,206,209,218,223,231,243,254,256,257,258,259,260,264,269,270,273,291,296,309,345,374,381,386,395,421,443],doll:[79,209],dolor:29,dolphin:108,dom:51,domain:[53,87,145,151,155,158,370],domexcept:155,domin:123,dominion:76,dompc:76,don:[0,3,5,6,7,8,9,11,13,18,19,20,22,27,28,30,31,33,39,42,44,48,53,54,60,64,65,67,68,73,74,75,76,77,79,80,82,83,84,85,88,89,90,91,92,94,95,96,97,100,101,102,103,104,106,107,108,109,111,113,114,115,116,117,119,120,121,122,123,124,127,129,130,132,134,139,140,141,142,146,148,149,151,153,154,155,158,159,168,169,175,176,182,187,188,189,190,191,194,196,204,210,213,218,219,231,235,242,243,252,253,257,258,259,265,271,272,273,275,281,282,292,295,296,300,301,309,319,326,331,332,337,339,346,353,360,364,367,368,374,381,383,386,390,399,411,430,439,443],donald:5,donat:[89,155,443],done:[0,2,5,9,11,13,20,22,28,30,31,33,36,45,47,50,51,52,53,54,64,69,76,77,81,83,84,85,87,88,89,90,91,92,94,95,96,97,98,99,100,101,102,105,106,107,109,113,114,116,117,123,126,127,129,130,134,135,136,137,138,139,141,146,149,151,155,157,163,168,177,179,187,193,198,203,213,242,260,273,281,283,292,295,296,307,308,309,314,318,327,331,333,335,339,343,349,352,353,355,360,362,367,368,375,377,381,390,395,439,443],donoth:307,dont:336,doom:[83,301],door:[19,22,31,33,37,75,77,81,83,106,109,118,121,158,182,223,249,282,443],doorwai:249,dot:[4,53,77,176,182,368,390],dotal:[367,389],dotpath:390,doubl:[6,77,85,99,116,141,175,194,389,390],doublet:[175,176],doubt:[77,83,272],down:[2,4,5,7,13,20,22,27,28,51,55,67,69,75,77,79,81,82,85,87,90,91,94,96,99,100,104,106,107,112,116,119,120,121,123,125,126,127,128,130,131,133,134,149,155,157,158,159,168,182,187,192,218,232,246,254,257,258,270,273,279,281,282,289,291,296,301,307,309,314,316,323,324,331,332,352,353,355,367,375,376,390,443],download:[0,9,10,11,76,88,112,144,146,149,153,154,155,157,162],downmaplink:[83,282],downtim:[94,158,378],downward:179,dozen:[69,87,92],drag:51,dragon:[98,108,110,114,115,117,123],drain:253,drama:31,dramat:[111,121,126,300,301],dramati:31,drape:206,draw:[15,81,83,85,96,127,376],draw_room_on_map:81,drawback:[15,28,67,93,94,100,110,123,126,127,146,205,253,368],drawn:[81,82,100],drawtext:127,dream:[0,72,87,121,124],dress:206,drf:[410,413],drift:123,drink:[122,218,362,364],drinkabl:218,drive:[11,30,57,76,88,91,112,117,121,123,124,138,141,149,157],driven:[78,92,122,123,124,130,144,251,298],driver:146,drizzl:[42,140],drop:[9,15,22,26,33,35,36,37,51,62,67,68,76,84,87,89,91,92,99,100,102,106,108,109,110,113,114,115,116,123,126,135,136,138,146,155,182,188,194,206,240,251,257,260,265,296,323,364,368,390],drop_whitespac:376,dropdown:7,droplet:151,dropper:[257,260,296],drum:155,dry:151,dtobj:390,duck:[19,116],duckclient:147,due:[5,20,22,45,48,55,62,74,77,88,94,100,101,107,116,139,149,155,159,176,192,295,296,316,352,355,367,383,399],duh:69,dull:[0,82,109],dum:289,dumb:[109,355,367],dummi:[5,8,13,22,33,76,79,116,123,148,209,243,292,314,319,332,345,346,353],dummycharact:252,dummycli:345,dummyfactori:345,dummyrunn:[165,166,310,314,332,344,346,348,443],dummyrunner_act:345,dummyrunner_actions_modul:345,dummyrunner_echo_respons:345,dummyrunner_set:[5,165,166,310,314,344,443],dummyrunner_settings_modul:5,dummyrunnercmdset:345,dummysess:355,dump:[246,323],dungeon:[46,83,87,113,118],dungeonmap:83,dupic:20,duplic:[20,84,175,182,189,309,364,383],durat:[54,93,140,192,258,384,391,443],dure:[6,13,20,33,44,45,51,62,63,73,74,76,83,85,94,117,121,123,129,130,134,140,144,149,157,168,175,187,193,209,216,224,240,269,271,272,281,282,292,308,323,333,368,370,374,383,403,430,443],duti:88,dwarf:82,dwarv:123,dying:[123,256,257,258,259,260],dynam:[8,12,30,42,47,51,52,53,58,67,78,82,83,85,105,111,113,132,141,155,168,171,177,189,192,193,198,225,243,253,254,256,257,258,259,260,279,282,284,288,295,296,300,304,309,362,364,365,370,372,374,382,384,390,398,403,419,441,443],dyndns_system:155,each:[2,3,5,6,8,12,13,14,18,19,20,22,24,28,30,31,33,41,44,46,47,48,50,51,53,54,57,60,62,65,67,69,74,75,77,78,79,81,82,83,85,87,88,90,94,96,98,99,100,101,102,105,106,108,111,112,114,115,116,117,119,121,127,128,129,130,134,138,139,140,141,157,159,168,174,175,176,180,182,187,189,191,193,196,203,205,206,207,209,218,223,224,225,240,242,243,253,254,256,258,259,260,265,266,273,279,281,282,283,284,286,288,289,292,295,296,299,300,301,306,309,316,319,332,334,337,341,346,353,354,355,362,364,365,367,368,370,372,373,374,375,376,377,381,390,413,416,419,443],eagl:126,eaoiui:242,earler:109,earli:[2,124,256,257,258,259,260,316],earlier:[2,7,11,14,18,20,28,31,32,76,88,100,101,106,108,115,116,117,121,130,132,138,142,148,253,282,286,319],earn:124,earnest:[118,123],earth:[105,158],eas:[20,22,67,96,114,139,155,157],easi:[0,7,8,9,11,14,17,22,28,31,37,42,48,53,54,58,68,69,70,74,75,77,80,82,83,85,87,94,96,98,101,102,104,105,106,108,115,116,117,121,123,124,126,127,129,130,136,139,141,142,144,146,151,153,155,157,176,180,206,209,221,225,253,254,374,381],easier:[13,28,31,41,42,49,50,53,54,55,67,77,83,84,87,90,92,96,98,99,100,101,102,107,108,111,114,115,116,117,119,120,121,123,124,126,127,134,139,155,182,210,242,254,256,257,258,259,260,270,275,284,356,362,365,390],easiest:[9,11,16,19,49,53,55,64,73,75,79,80,83,92,95,100,114,130,141,149,151,246,364],easili:[7,11,14,15,17,18,19,22,28,31,33,35,41,44,45,46,51,53,55,58,64,65,68,69,74,75,79,80,81,82,84,85,89,90,92,93,96,100,101,106,107,109,111,113,114,115,118,120,121,122,123,127,130,132,134,141,149,155,156,157,158,187,196,198,203,204,206,225,227,231,242,249,253,254,256,257,258,259,260,272,275,286,287,288,309,368,374,385],east:[81,82,83,92,97,182,271,281,282],east_exit:271,east_west:82,eastern:[82,101,281,283],eastward:271,eat:[216,218],echo1:94,echo2:94,echo3:94,echo:[0,2,19,22,27,30,41,54,55,58,74,81,85,93,94,97,108,109,115,116,122,129,130,136,140,150,152,155,156,157,159,163,168,169,180,182,187,192,193,206,213,243,264,269,270,271,275,296,312,319,334,337,372,374,390,443],echocmdset:108,echol:162,echowoo:108,econom:[67,87,113,114,117,123,144],economi:[42,69,121,127,137,203,443],ecosystem:157,edg:[11,19,56,83,193,210,281,282,376,390],edgi:81,edibl:218,edit:[0,6,7,9,13,14,15,18,22,25,26,31,33,39,41,49,51,52,62,64,67,73,75,76,78,80,82,83,84,90,92,95,98,100,101,102,104,114,119,123,134,141,142,144,146,148,151,154,157,159,180,182,189,192,204,214,225,229,230,232,233,239,240,292,296,298,300,301,362,372,402,403,411,430,436,440,441,443],edit_callback:[230,232],edit_handl:182,editcmd:77,editi:253,editnpc:443,editor:[6,11,16,22,30,31,41,49,64,69,75,76,77,80,82,85,86,91,99,116,117,144,149,151,182,189,191,192,204,239,304,368,372,443],editor_command_group:372,editorcmdset:372,editsheet:100,edu:393,effect:[8,9,13,15,18,19,20,25,36,42,45,47,53,54,60,72,74,78,82,83,85,93,94,96,98,99,100,116,117,121,122,123,126,127,129,135,139,159,163,168,175,176,182,191,196,200,210,213,218,232,253,257,258,259,269,271,282,294,296,302,304,327,390,442],effici:[0,5,13,36,42,46,47,48,67,87,88,93,94,96,98,111,117,126,140,144,158,203,243,250,281,282,284,292,296,309,362,363,365,372,375],effort:[11,84,98,113,142,436],egg:[79,154,209],egg_info:149,egi:316,egiven:294,eight:218,eightbal:118,either:[5,6,9,11,14,17,19,20,22,28,30,33,39,41,42,44,46,48,51,53,55,58,59,65,75,76,79,80,81,82,83,84,85,90,94,96,97,98,99,100,102,107,108,110,111,113,114,116,117,120,123,126,127,129,130,138,139,146,155,158,163,168,169,175,176,177,182,187,197,204,209,229,235,236,242,243,249,253,254,256,259,260,265,281,282,283,284,292,296,299,301,304,306,307,309,312,323,335,339,346,363,364,365,374,376,377,383,385,387,390,393],elabor:[77,85,90,106,107,130],electr:155,eleg:84,element:[5,13,17,28,30,53,56,59,77,79,83,87,107,114,115,116,118,174,179,189,193,204,212,241,242,281,283,284,296,301,362,363,365,368,373,374,375,377,390],elev:[78,80,105,443],elif:[28,42,75,81,100,108,118,127,129,130,135],elig:377,elimin:[157,367],elimit:390,ellow:[60,367],els:[3,8,11,12,18,19,22,28,31,33,34,39,42,47,51,53,54,55,57,58,75,76,77,79,80,81,82,85,91,92,94,95,96,100,102,104,105,106,107,108,109,115,116,118,121,124,126,127,129,130,135,137,138,141,142,146,155,158,187,193,203,206,225,241,256,257,258,259,260,273,295,343,364,374,390,443],elsennsometh:193,elsewher:[12,20,46,53,94,100,112,114,141,176,271,282,314,355,362],elv:123,elvish:242,emac:[15,144],email:[11,23,35,88,113,118,119,149,151,162,168,170,214,370,384,390,391,398,430,443],email_login:[165,166,199,443],emailaddress:390,emailfield:[398,430],emb:[41,58,83,85,100,224,301],embark:138,embed:[30,41,48,53,71,83,113,122,189,196,281,299,373,377,390],emerg:[39,64,158],emi:242,emit:[51,69,92,108,168,176,180,196,226,296,353,383],emit_to_obj:[176,296],emo:91,emoji:147,emot:[18,22,26,30,31,58,78,87,122,123,124,129,168,188,203,216,242,243,362,377],emoteerror:243,emoteexcept:243,empathi:210,emphas:85,emphasi:85,emploi:391,empti:[3,6,8,9,11,12,15,18,20,22,28,34,37,42,47,48,50,51,53,54,67,68,75,76,79,81,83,85,88,100,102,107,108,111,113,114,115,116,117,118,122,126,127,130,132,135,142,148,149,151,157,162,173,174,180,182,187,193,204,209,227,229,243,253,281,282,296,300,301,312,319,323,345,346,362,368,370,374,376,387,390,399,406],empty_color:227,empty_permit:[400,402,404,406,430],empty_symbol:281,empty_threadpool:359,emptyset:20,emul:[5,44,72,88,122,123,130,154,192,253,443],enabl:[7,51,60,139,142,145,146,147,152,157,158,168,202,225,243,252,337,391],enable_recog:243,enableloc:337,enableremot:337,enact:216,encamp:80,encapsul:384,encarnia:144,encas:372,enclos:[25,27,116,194,214,377],encod:[19,26,61,82,83,100,194,282,325,338,342,343,367,386,390,438,443],encode_gmcp:338,encode_msdp:338,encoded_text:390,encompass:19,encount:[176,282,294,377,391],encourag:[77,89,96,107,132,147],encrypt:[65,145,151,158,187,334,335,339,443],encumb:122,end:[0,5,9,11,14,15,19,20,22,27,28,30,31,33,36,41,44,45,51,54,57,59,60,62,64,65,67,68,69,73,74,76,77,83,85,87,88,91,92,93,94,96,100,101,102,104,107,109,111,113,115,116,117,119,120,122,123,126,127,129,130,136,138,139,141,142,145,146,148,150,151,155,157,162,168,169,175,176,182,188,189,203,205,206,210,213,218,221,227,239,243,251,254,256,257,258,259,260,271,281,282,287,318,325,326,334,337,338,345,348,353,357,359,363,367,368,370,374,375,376,377,383,390,439],end_convers:28,end_direct:282,end_turn:129,end_xi:[83,281],endblock:[53,102,132,141,142],endclr:377,endcolor:30,endcoord:279,endfor:[102,141,142],endhour:92,endif:[102,141,142],endless:53,endlessli:158,endpoint:[49,158,415,416],endsep:390,endswith:367,enemi:[13,28,41,94,120,121,129,258,259,260,269,270,271,443],enemynam:28,enforc:[22,39,54,60,121,127,139,334,337,375,376,436,443],enforce_s:376,engag:[87,260,269],engin:[2,8,11,22,31,37,74,77,78,88,98,115,120,127,134,144,146,158,159,161,173,176,189,191,192,209,247,271,287,314,325,331,334,337,342,352,354,368,370,394,443],english:[6,16,30,58,64,70,144,194,393,394],enhanc:[60,104,116,246,367,440],enigmat:109,enjoi:[7,107,120,121,124,149,443],enough:[3,18,33,34,36,46,47,69,79,83,85,87,88,89,90,91,94,96,99,100,102,106,107,108,111,112,114,115,117,121,126,130,134,139,149,151,155,176,182,193,209,241,242,265,273,282,374,375,376,443],enpoint:413,ensdep:390,ensur:[7,8,81,102,135,139,146,157,254,357,388,436],ensure_ascii:343,enter:[0,2,3,5,9,11,14,15,16,18,19,20,22,25,28,30,31,36,37,39,41,52,53,58,60,63,65,72,73,75,76,77,78,80,82,83,88,91,92,94,97,100,101,102,106,107,115,116,119,120,126,129,130,132,135,141,146,149,154,157,162,165,168,174,176,181,189,190,192,203,204,206,218,221,224,225,235,254,256,257,258,259,260,269,271,273,291,296,301,304,312,353,374,419,430,443],enter_guild:28,enter_nam:28,enter_wild:273,enterpris:2,enthusiasm:124,enthusiast:[78,123],entir:[8,13,14,15,19,22,27,28,30,31,33,47,48,53,54,57,67,69,77,80,81,82,83,94,102,107,112,113,116,121,123,130,134,155,204,242,243,254,272,281,282,283,284,292,296,300,301,364,365,368,374,376,381,390,439,443],entireti:[28,127,217,225,374],entit:[370,443],entiti:[13,18,19,28,30,31,33,34,35,36,37,39,41,42,44,45,46,48,50,53,58,83,86,88,110,111,112,113,114,118,121,126,129,139,167,168,177,182,187,192,196,197,198,209,218,243,249,264,283,284,286,288,289,291,294,296,298,299,300,301,302,304,305,307,309,355,362,363,365,370,374,375,377,380,387,390,406,416,443],entitiess:88,entitii:45,entitl:155,entranc:[82,83],entri:[11,16,19,20,22,24,28,33,45,53,90,92,100,102,107,108,112,114,118,123,138,147,148,149,153,168,177,189,190,193,209,218,227,241,254,256,257,258,259,260,285,286,287,288,289,292,296,309,333,346,357,362,368,370,372,374,376,383,384,387,390,391,402,410,413,416,431,435,438,443],entriest:179,entrypoint:157,entrytext:[31,102,286,288,370],enul:145,enumar:390,enumer:142,env:[314,324],environ:[1,2,9,14,52,76,85,88,90,92,105,116,121,123,124,149,150,155,157,158,192,193,211,222,266,268,279,314,324,340,349,368,374,388,414,431],environment:314,envvar:149,eof:334,epic:144,epilog:272,epoch:[19,101,378],epollreactor:359,epub:144,equal:[6,20,22,56,57,60,75,80,83,92,96,107,109,111,114,115,123,138,175,187,224,243,252,253,256,257,258,259,260,296,390],equip:[15,60,78,99,113,122,123,206,256,257,259,260],equival:[9,13,14,30,36,50,53,54,58,60,62,68,83,112,116,118,149,158,159,163,167,170,182,275,281,282,287,294,303,332,338,362,390,411,439],eras:[76,260],err:[100,323,345,368],err_travers:[37,296],errback:[54,311,314,323,324,390],errmessag:175,errmsg:[130,383],erron:[70,130,323,376],error:[0,3,4,6,8,9,11,13,15,16,18,19,20,22,28,30,32,33,36,37,39,41,44,48,53,54,64,65,67,70,73,76,77,79,82,83,84,85,88,98,99,100,103,107,109,114,115,117,118,120,124,126,130,136,137,141,145,146,147,149,151,152,154,155,158,159,165,166,168,173,175,176,182,187,194,196,209,211,232,241,243,253,254,270,272,280,282,283,284,292,294,296,299,300,307,308,311,313,314,316,318,319,323,337,345,364,367,368,370,373,374,377,383,386,390,391,396,411,413,429,433,438,443],error_check_python_modul:314,error_class:[400,402,404,406,430],error_cmd:97,error_consumable_excess_messag:209,error_consumable_missing_messag:209,error_consumable_order_messag:209,error_msg:357,error_tool_excess_messag:209,error_tool_missing_messag:209,error_tool_order_messag:209,errorlist:[400,402,404,406,430],errorlog:145,escal:[12,39,57,123,179,291,365],escap:[30,60,78,83,102,188,192,216,219,272,367,377,389,430],escape_char:377,escaperoom:219,escript:[77,204],esom:189,especi:[5,16,33,39,44,46,77,82,94,113,114,116,121,145,146,149,227,242,368],esqu:114,ess:29,essai:144,essenti:[7,58,70,81,93,98,113,123,144,151,154,197,314,370],est:[29,193],establish:[22,44,121,122,123,127,151,168,256,296,311,323,325,332,334,337,342,345,352,354],estim:[95,281,301,381],esult:296,etc:[0,8,11,12,13,18,19,22,25,28,30,31,33,34,35,36,37,39,41,42,44,45,48,50,51,52,53,55,58,62,65,67,68,69,71,77,78,81,83,85,86,87,88,92,94,95,98,99,100,101,108,109,111,112,113,121,122,123,126,127,129,137,139,140,144,145,146,149,151,157,158,163,168,171,173,174,175,176,179,181,182,187,190,192,194,203,207,210,212,218,219,225,227,240,242,243,249,253,257,259,265,272,281,282,283,284,296,300,301,332,334,337,341,342,343,353,354,362,364,367,368,370,371,372,373,374,377,383,390,394,399,406,410,416,419,441],etern:28,ev_channel:169,evadventur:[123,128],eval:[30,41,203,390,443],evalstr:292,evalu:[22,30,85,111,122,124,174,203,292,374,377],evbot:[187,355],evcast:144,evcel:[373,376],evcolor:144,evcolumn:376,eve:390,eveditor:[24,26,31,77,86,165,166,204,366,443],eveditorcmdset:372,even:[0,3,5,6,7,11,13,15,18,19,20,27,28,31,33,39,42,44,47,48,49,50,55,57,60,64,67,69,72,73,76,77,78,80,81,83,84,87,88,89,90,91,92,94,96,98,99,100,101,102,103,106,107,111,112,114,115,116,117,120,121,122,123,124,126,127,128,129,130,136,139,148,149,155,158,163,168,175,177,180,187,189,196,206,209,212,224,225,242,253,256,257,258,259,260,271,272,281,282,284,296,300,301,337,374,376,377,381,390,438,443],evenia:112,evenli:[19,83,212,282,390],evenn:157,evenna:76,evenni:90,evennia:[1,2,5,6,10,12,13,14,15,16,17,18,19,20,22,24,25,26,27,28,29,31,32,33,34,35,36,37,39,40,42,44,45,46,47,48,50,52,53,54,57,58,59,60,61,62,63,65,67,68,69,70,72,73,75,77,78,79,80,81,82,83,84,86,88,89,91,93,94,95,96,97,101,102,103,104,106,108,109,110,111,113,114,115,117,118,119,120,121,122,124,126,127,129,130,132,134,135,136,137,138,140,141,142,143,147,149,150,153,156,158,159,161,162,443],evennia_access:145,evennia_admin:401,evennia_channel:[150,153,156,187],evennia_dir:390,evennia_error:145,evennia_gener:134,evennia_launch:[7,165,166,310,312,443],evennia_logo:[53,134],evennia_runn:7,evennia_server_port:40,evennia_superuser_email:149,evennia_superuser_password:149,evennia_superuser_usernam:149,evennia_vers:314,evennia_websocket_webcli:342,evennia_wsgi_apach:145,evenniaadminapp:421,evenniaadminsit:421,evenniaapiroot:412,evenniacreateview:[434,440,441],evenniadeleteview:[440,441],evenniadetailview:[440,441],evenniaform:430,evenniagameindexcli:316,evenniagameindexservic:317,evenniaindexview:[53,439],evennialogfil:383,evenniapasswordvalid:358,evenniapermiss:[411,416],evenniareverseproxyresourc:359,evenniaserv:40,evenniatest:[193,222,233,248,266,279,340,388,414,431,443],evenniaupdateview:[440,441],evenniausernameavailabilityvalid:[168,358],evenniawebtest:431,event:[28,31,45,51,78,88,124,127,158,165,169,203,212,218,231,232,233,235,243,246,265,304,307,356,443],event_nam:[231,235],eventdict:383,eventfunc:[75,165,166,199,228,232,443],eventhandl:232,eventi:[177,204,272],eventu:[13,22,39,55,57,64,65,68,89,90,94,100,120,121,123,124,129,130,134,141,155,163,168,173,174,191,213,218,219,242,243,265,271,292,296,301,311,319,345,353,354,365,369,370,374,376,428],evenv:[2,6,7,88,90,149,154],evenwidth:376,ever:[9,11,13,14,15,16,22,30,42,44,46,48,55,67,70,77,82,83,88,99,107,111,114,122,127,136,146,162,163,216,219,242,282,309,325,326,332,362,374],everi:[0,2,5,8,9,10,11,14,18,19,20,22,28,30,31,32,35,41,42,46,47,48,58,67,69,70,73,75,80,81,82,83,84,85,88,90,91,93,96,99,101,102,106,107,108,109,111,113,114,116,117,122,127,129,130,134,137,138,140,141,142,149,151,154,155,157,159,168,182,187,193,206,211,217,225,232,242,243,254,256,257,258,259,260,262,268,273,281,282,296,301,307,309,319,336,346,352,361,362,364,374,375,376,377,390,399,406,443],everror:232,everyon:[8,9,11,18,22,28,31,33,36,42,46,57,58,64,88,91,100,114,117,118,121,123,124,127,129,130,138,140,143,147,152,156,162,163,182,187,188,189,213,218,219,221,256,257,258,259,260,332],everyong:58,everyth:[0,2,3,6,8,9,11,13,20,36,39,41,47,49,50,51,53,57,65,70,73,76,81,82,83,85,87,88,91,93,100,102,104,106,107,108,113,114,115,116,117,118,119,120,121,122,124,126,127,129,131,134,144,149,151,153,154,155,157,158,159,162,163,172,177,187,188,190,192,193,194,205,209,210,214,253,271,291,295,304,318,345,353,362,364,368,374,443],everywher:[76,98,113,151],evform:[19,86,165,166,366,443],evgam:187,evgamedir:85,evict:357,evid:153,evil:[5,15,151,265,301],evilus:187,evmenu:[19,22,24,77,78,86,100,106,123,165,166,192,193,204,217,225,251,254,268,298,366,375,443],evmenucmdset:374,evmenuerror:374,evmenugotoabortmessag:374,evmenugotomessag:374,evmor:[24,26,31,86,165,166,300,366,443],evscaperoom:[165,166,199,443],evscaperoommenu:217,evscaperoomobject:[218,219],evtabl:[19,22,81,82,86,165,166,177,187,225,300,366,373,375,390,443],ewmaplink:[83,282],ewonewaymaplink:[83,282],exact:[5,22,28,39,72,111,114,118,168,170,174,182,187,191,197,209,243,253,260,287,294,296,300,301,363,364,386,387,390],exact_consum:209,exact_consumable_ord:[209,210],exact_tool:209,exact_tool_ord:209,exactli:[3,5,9,11,12,30,31,39,42,47,50,54,57,59,60,62,65,67,79,80,82,83,85,88,100,101,102,107,108,111,112,114,116,118,122,123,127,130,134,149,157,163,187,209,243,253,281,282,294,296,314,364,387],exam:[26,182],examin:[7,11,12,13,22,26,33,47,51,55,65,74,77,100,106,107,108,109,111,127,130,168,182,193,203,216,265,270,271,346,362,377,398,411,443],exampl:[2,4,5,6,7,10,11,12,13,14,15,16,17,18,19,20,22,26,31,32,34,35,36,37,41,44,46,47,48,49,50,54,57,58,59,60,62,64,65,67,68,72,73,74,75,77,79,81,82,84,85,87,88,90,91,92,93,94,95,97,98,99,100,101,104,105,106,107,108,109,110,111,113,114,115,116,117,118,120,121,122,123,124,126,130,134,135,136,138,139,140,141,145,146,149,151,152,156,157,158,159,163,165,166,168,171,174,175,176,177,180,181,182,187,188,189,190,191,192,193,196,198,199,203,204,206,209,210,211,212,213,216,218,223,224,225,226,227,236,240,241,242,243,246,249,250,251,252,253,254,256,257,258,259,260,262,265,269,271,272,273,274,275,279,281,282,283,284,286,288,289,292,295,296,301,304,307,309,314,319,334,337,338,343,346,355,359,362,364,365,366,367,369,373,374,375,376,377,378,382,383,384,387,388,390,391,393,394,399,406,415,416,430,439,443],example_batch_cod:[14,165,166,199,261,443],example_recip:[165,166,199,208,209,443],example_recipi:209,excalibur:106,exce:[105,202,256,257,258,259,260,357,381],exceed:357,excel:[33,69,98,144,151],excempt:175,except:[6,13,15,19,20,22,27,30,31,33,37,41,42,49,50,53,54,57,60,65,76,77,79,80,82,83,85,88,90,91,93,94,96,100,107,109,111,113,115,116,117,118,123,129,130,136,137,138,139,141,142,149,154,155,168,169,171,173,176,177,190,191,196,197,198,203,206,209,212,218,219,224,226,231,232,235,239,240,241,242,243,249,250,251,253,256,257,258,259,260,262,264,265,269,270,271,272,273,280,281,282,283,284,288,291,292,294,295,296,300,304,307,308,314,319,321,323,335,337,339,343,347,359,362,365,367,370,373,374,376,377,378,382,383,385,390,398],excepteur:29,excerpt:27,excess:[33,41,77,126,190,209,295,368,390],exchang:[14,52,122,155,203,371],excit:[25,108,109,123,148],exclam:91,exclud:[58,88,111,118,130,137,196,206,240,271,294,295,296,372,374,408,410],exclude_cov:206,excluded_par:408,excluded_typeclass_path:182,excludeobj:294,exclus:[28,31,33,35,121,265,296,304,363,374,390],exclusiv:370,exe:[7,9,149],exec:[28,30,41,106,301,374,390],exec_kwarg:374,exec_str:349,execcgi:145,execut:[2,7,8,9,14,15,20,22,27,28,30,36,37,41,42,51,52,53,54,55,57,59,65,71,75,76,77,80,82,88,92,93,94,101,102,106,107,113,116,120,123,149,154,168,169,171,172,173,177,180,181,190,192,193,198,204,210,216,232,243,254,264,265,271,272,288,291,292,295,296,301,302,304,308,311,319,321,324,325,331,334,337,342,345,346,349,352,353,362,364,365,368,374,375,377,382,390,419,443],execute_cmd:[12,22,37,130,135,136,168,169,177,296,319,353],execute_command:22,executor:2,exemplifi:[31,62,83,93,117,120,122],exercis:[3,82,91,100,106,116,129,130,140,202,211,252,340,350,382],exhaust:[18,77],exhaustedgener:241,exidbobj:296,exis:97,exist:[0,2,5,6,9,11,12,13,14,18,19,20,22,25,26,28,33,41,42,44,46,47,53,55,62,64,67,75,77,79,80,81,82,83,88,91,92,96,97,98,99,100,102,109,110,111,113,115,116,120,121,124,126,129,130,132,134,135,142,146,150,153,157,167,168,169,175,176,177,182,187,189,190,192,202,204,205,210,217,223,224,229,231,232,235,236,239,240,242,243,250,253,259,270,273,281,282,283,284,289,291,292,295,296,298,300,301,308,314,318,320,334,335,337,339,347,352,353,355,362,363,364,365,368,370,372,373,374,376,377,383,385,390,398,416,443],existen:353,exit:[7,9,20,27,28,33,41,48,49,50,67,77,81,82,83,86,91,96,100,103,106,107,108,109,110,113,114,116,117,118,120,130,138,146,149,157,162,165,173,175,176,182,192,203,204,219,233,249,250,254,260,265,269,270,271,272,273,275,276,281,282,283,284,291,294,295,296,301,318,334,346,362,370,372,374,375,388,410,413,416,431,443],exit_alias:[182,249],exit_back:100,exit_cmd:[28,375],exit_command:296,exit_dest_x_coordin:83,exit_dest_y_coordin:83,exit_dest_z_coordin:83,exit_nam:[81,182,249],exit_on_lastpag:375,exit_ther:100,exit_to_her:182,exit_to_ther:182,exit_typeclass:[273,388,431],exitbuildingmenu:77,exitcmdset:[20,296],exitcommand:296,exitnam:249,exitobject:97,exitviewset:416,exixt:332,exot:22,exp:373,expand:[11,32,37,49,58,60,73,74,75,78,79,81,82,88,89,90,91,99,100,104,106,108,109,111,113,114,115,116,117,121,122,123,124,130,131,135,137,140,146,155,159,165,166,182,199,214,249,256,257,258,259,260,275,296,367,376,443],expand_tab:376,expandtab:[367,376],expans:[78,97,121],expect:[5,6,8,9,22,30,35,36,37,45,47,53,54,58,64,65,68,70,75,76,83,84,85,98,100,107,113,114,116,118,120,121,123,124,130,139,142,151,154,155,182,190,193,204,209,229,231,241,273,279,281,282,291,296,300,301,312,314,364,374,375,377,381,390,395,399,406,416,422,441],expected1:193,expected2:193,expected_1st_or_2nd_person:395,expected_3rd_person:395,expected_direct:279,expected_input:193,expected_path:279,expected_return:8,expectlst:279,expectstr:279,expens:[47,155,294,387],experi:[0,3,11,28,30,73,79,82,99,101,104,108,111,116,117,120,121,127,128,149,155,157,187,218,264,443],experienc:[1,13,28,88,116,119,144],experienced_betray:28,experienced_viol:28,experiment:[32,53,192,400,403],expert:253,explain:[8,11,22,26,28,49,53,67,72,77,83,87,88,96,100,109,113,123,126,134,138,139,142,144,152],explan:[20,22,50,60,88,92,96,102,219,358,443],explanatori:50,explicit:[20,62,68,72,75,77,85,102,107,134,146,152,159,241,314,336,362,374,394],explicitli:[6,13,20,31,33,34,36,39,41,42,46,47,48,60,65,67,76,83,90,91,95,100,106,114,115,117,122,123,149,151,176,177,182,189,193,241,253,282,286,296,301,309,362,364,367,370,386,413],exploit:[123,365,367,377,390],explor:[3,12,48,53,54,65,75,82,83,102,109,114,116,120,129,149,159,192,443],expos:[142,158,265,438],express:[22,28,30,33,41,52,73,74,85,98,111,114,118,132,142,182,212,241,260,362,390,419],ext:28,extend:[18,19,30,42,48,50,53,67,69,82,85,87,96,98,102,106,108,112,113,115,116,119,125,127,128,131,132,133,135,136,141,142,144,161,162,171,177,189,193,196,205,207,209,210,224,232,235,273,281,295,296,364,384,403,430,439,440,441,443],extended_room:[165,166,199,443],extendedloopingcal:309,extendedroom:224,extendedroomcmdset:224,extendng:210,extens:[6,8,28,31,60,68,76,82,83,85,87,88,98,109,113,114,121,132,146,149,159,171,247,256,276,329,337,370,380,389],extent:[77,98,123,127],exter:187,extern:[7,16,35,41,59,62,69,78,82,99,113,117,121,123,124,126,145,146,148,149,150,151,153,155,156,161,165,176,187,193,195,198,246,300,312,314,316,370,443],external_discord_hello:319,external_receiv:198,extra1:30,extra2:30,extra:[0,8,13,15,18,20,22,28,30,31,33,37,45,48,51,53,56,71,83,84,85,91,92,94,99,100,108,116,117,122,123,130,134,139,142,145,146,155,168,171,177,189,193,196,203,209,224,226,239,243,252,253,265,271,296,299,300,309,311,363,367,368,372,374,375,376,377,383,384,385,389,390,398,399,406,443],extra_environ:368,extra_launcher_command:[83,276,277],extra_opt:374,extra_spac:390,extract:[6,13,30,45,98,107,177,209,218,243,247,281,292,328,342,390],extract_goto_exec:374,extrainfoauthserv:334,extral:198,extran:225,extrem:[0,9,98,107,117,163,256,257,259,260,327,384],eye:[6,31,60,82,121,301,375],eyed:[53,126,134],eyes:[22,84,99],eyesight:[33,60,100],f6d4ca9b2b22:157,face:[83,108,120,123,151,155,158,194,226,358,374],facil:383,facilit:123,fact:[7,15,22,37,42,48,54,65,74,87,91,94,99,100,112,113,114,121,130,135,139,142,158,162,355,357,377],faction:149,factor:[75,101,105,257,259,311,325,326],factori:[62,253,311,316,324,325,326,332,333,334,335,337,345],factory_path:169,fade:[69,242],fail:[8,13,14,15,18,19,20,28,30,31,37,41,45,54,55,70,76,79,83,90,107,115,120,121,126,129,135,138,147,149,158,163,168,176,187,191,196,209,211,213,243,249,252,253,265,270,291,292,296,300,311,312,314,318,325,326,336,357,362,364,375,377,384,386,390,393,399,436,443],failmsg:357,failtext_templ:127,failur:[8,15,54,79,122,127,149,168,209,271,316,323,325,326,345,357,367,390],failure_effect:210,failure_messag:209,failure_teleport_msg:271,failure_teleport_to:271,faint:42,fair:[122,123,127,213],fairli:[96,102,154,206,225,254,257],fake:[83,207,282,345,355,362,367],fall:[0,6,20,42,70,82,83,85,88,101,114,127,165,168,191,209,226,243,265,271,390,430],fall_exit:271,fallback:[81,97,173,177,198,224,292,307,314,343,362,374,377,385,390],fals:[8,12,13,18,19,20,22,27,28,30,31,32,33,34,37,39,42,47,48,51,67,77,81,83,90,91,92,94,97,100,101,104,105,108,109,114,118,126,129,130,136,137,138,141,158,168,171,173,174,175,176,177,182,187,189,193,196,198,203,204,206,207,209,212,213,216,217,218,221,225,229,232,236,242,243,249,254,256,257,258,259,260,268,272,273,281,282,284,286,287,288,291,292,294,295,296,298,300,301,303,304,305,307,308,309,311,314,316,320,323,324,331,332,333,334,337,343,345,351,352,353,355,357,359,362,363,364,365,367,368,370,372,374,375,376,377,378,381,385,386,387,389,390,391,393,395,398,399,400,402,403,404,406,410,411,430,438],falsestr:225,falsi:[108,115,196,209,281],fame:[120,124],famili:[28,76,99,126],familiar:[1,20,22,48,76,82,85,94,96,100,106,107,111,114,115,116,124,132,141,149,155,443],famou:[29,372],fan:144,fanci:[2,16,17,18,49,83,127,206,282],fantasi:[78,118,123,242],faq:[85,336,443],far:[7,11,14,18,20,22,53,60,68,75,77,80,81,82,83,87,91,96,97,99,107,109,111,113,114,116,117,148,154,155,157,175,260,273,281,284,316,341,362,372,381],fare:114,fart:126,fascilit:283,fashion:82,fast:[0,11,13,16,19,37,47,69,83,88,94,98,101,105,116,123,124,146,180,289,346],faster:[5,13,83,101,118,123,146,198,203,362,443],fastest:[85,282],fatal:314,fault:124,faulti:116,favor:[19,83,282],favorit:[84,91],fear:19,feasibl:146,feat:123,featgmcp:338,featur:[0,2,3,9,11,16,17,19,20,22,27,41,45,48,53,59,60,72,75,77,78,80,81,82,84,85,87,88,89,90,92,98,99,101,103,104,106,107,108,109,120,121,122,123,130,143,149,153,158,168,176,177,224,232,243,254,272,309,331,352,356,364,372,390,437,442,443],feb:64,februari:101,fed:[22,33,54,332,362,371,373],fedora:[11,145,149,151],feed:[9,16,28,41,81,127,156,169,187,281,316,333,334,364,375],feedback:[3,37,84,121,124,136,197,372],feedpars:[156,333],feedread:169,feel:[11,17,48,54,64,69,75,77,80,84,85,87,88,89,96,99,102,107,111,114,119,120,121,123,124,126,127,130,133,136,141,149,152,155,218,242,254,257,265,271,443],feelabl:218,feend78:236,feint:129,fel:64,felin:19,fellow:373,felt:[42,140],femal:[58,226,377,394],fetch:[9,11,13,49,52,53,111,141,149,155,157,283,362,375,441],few:[0,2,3,5,8,11,13,16,17,20,22,27,30,31,32,33,37,50,53,54,60,63,67,68,75,76,81,85,87,88,90,107,109,112,114,116,121,122,123,124,127,129,130,138,139,144,146,151,158,163,192,212,242,265,295,329,338,357,367,376,390,439],fewer:[69,116,281,355,363],fg_colormap:389,fgstart:389,fgstop:389,fiction:[28,87,101,374],fictional_word:242,fictiv:242,fictou:223,fiddl:271,field:[7,9,13,30,31,32,34,35,36,37,42,45,46,48,50,53,64,67,73,98,100,110,114,132,141,146,148,171,198,225,229,243,253,260,269,275,288,289,291,294,295,296,300,301,304,305,309,321,362,363,364,365,373,382,386,387,398,399,400,402,403,404,406,410,413,418,430,441,443],field_class:430,field_nam:[289,410],field_or_argnam:32,field_ord:430,fieldevmenu:225,fieldfil:[165,166,199,443],fieldnam:[34,100,225,305,364,381,430],fieldset:[398,400,402,403,404,406],fieldtyp:225,fifo:390,fifth:81,fight:[20,42,94,115,120,121,129,256,257,258,259,260,270,443],fighter:[256,257,258,259,260],figur:[0,3,5,6,11,22,31,55,58,65,81,84,107,112,114,121,124,132,138,141,155,203,205,209,212,243,282,300,314,393,443],file:[0,2,3,5,6,7,9,10,12,18,19,20,26,39,40,49,50,51,52,53,57,62,63,64,67,73,76,77,79,82,83,84,88,90,91,92,97,98,99,100,101,102,104,106,108,109,112,113,115,116,117,119,123,130,132,134,135,137,138,141,142,144,145,146,148,149,150,151,153,154,155,156,157,158,161,162,163,165,166,168,181,189,196,202,204,206,207,209,212,214,219,242,246,253,272,273,286,301,313,314,334,335,338,339,346,347,348,352,359,360,366,373,374,383,386,387,390,394,399,400,402,404,406,416,419,423,430,438,443],file_end:[368,390],file_help_entry_modul:[31,189,286],file_help_top:438,fileentri:189,filehelp:[31,165,166,285,443],filehelpentri:[189,286,438],filehelpstoragehandl:286,filelogobserv:383,filenam:[11,19,112,196,242,368,373,383],filename1:314,filename2:314,filesystem:[149,157,158],fill:[2,7,27,53,64,73,81,82,83,100,116,141,150,225,253,281,284,362,367,373,374,375,376,377,390,406,443],fill_char:376,fill_color:227,fillabl:[78,225],fillchar:[30,367,377,390],filler:394,filo:390,filter:[7,20,35,48,49,60,67,83,96,102,111,137,141,165,166,175,180,204,224,243,284,295,296,390,396,409,416,436,443],filter_backend:416,filter_famili:[48,111],filter_nam:410,filter_xyz:[83,284],filter_xyz_exit:[83,284],filterset:410,filterset_class:416,filthi:143,final_valu:54,find:[0,3,5,6,8,9,11,13,14,15,17,19,20,22,26,27,30,31,32,33,34,35,36,37,41,42,46,48,50,53,54,55,59,60,62,64,67,69,73,74,75,77,78,79,80,81,83,84,85,87,89,90,91,92,94,98,99,100,101,102,107,108,109,110,111,112,113,114,115,117,119,120,121,123,124,126,127,128,130,132,134,141,142,143,144,146,147,149,151,154,155,157,158,163,168,174,182,189,209,212,218,221,224,243,249,253,254,271,272,275,276,281,282,284,296,300,301,303,306,314,328,362,363,367,369,377,387,390,421,443],find_apropo:287,find_topicmatch:287,find_topics_with_categori:287,find_topicsuggest:287,findfoo:118,fine:[16,22,37,42,44,46,47,55,67,80,83,85,88,97,106,109,113,114,115,117,119,120,122,126,130,136,169,271,282,362,370,390],finer:[55,281,282],finish:[9,15,22,45,52,54,79,85,94,100,120,121,130,134,141,157,165,168,177,179,190,192,194,203,209,210,216,221,224,240,270,271,282,296,314,326,337,352,359,369,374,390,419],finish_chargen:28,finit:107,fire:[7,12,19,22,28,42,45,47,80,82,91,93,94,100,109,114,117,121,136,137,140,168,169,173,232,258,259,296,301,314,323,325,342,374,375,381],firebal:[79,123,209,210],fireballrecip:210,firebreath:[100,114,117],firefox:[53,153],firemag:210,firestorm:93,firestorm_lastcast:93,firewal:[146,151,155,443],first:[0,3,5,6,7,8,9,11,12,13,14,15,16,19,20,22,25,27,28,30,31,33,37,39,41,42,44,45,48,50,51,53,54,55,56,57,58,60,62,64,65,67,69,70,73,76,78,81,85,87,90,91,94,96,98,100,101,102,103,104,106,107,108,109,110,111,112,113,115,117,118,119,120,121,122,123,124,126,127,129,130,132,133,134,136,137,138,139,140,141,142,146,147,149,150,152,154,155,156,157,158,159,161,163,168,169,171,174,175,182,189,190,193,194,196,198,203,204,206,207,212,214,218,219,221,224,241,242,243,249,251,252,253,256,257,258,259,260,262,265,269,270,271,272,273,276,281,282,288,291,295,296,300,301,304,307,314,318,319,321,332,334,337,342,343,345,346,352,355,362,364,365,367,368,370,372,373,374,376,377,378,381,382,389,390,411,443],first_lin:130,first_nam:398,firsthand:33,firstli:[6,37,53,76,110,111,155],fish:[127,176,240],fist:[115,301],fit:[10,30,31,39,68,72,79,96,100,113,124,126,133,138,141,146,210,257,260,373,375,376,390],five:[22,82,93,111,119,124,133,155,176,254,390,391],fix:[0,3,6,8,14,15,19,22,28,41,48,56,65,83,84,88,89,99,106,114,116,117,121,123,126,130,138,143,149,154,155,163,242,284,314,373,375,376,386,443],fix_sentence_end:376,fixer:111,fixing_strange_bug:11,fixtur:[193,202,211,222,252,266,279,340,350,382,388,414],fizzl:123,flag:[11,14,15,20,22,28,32,47,50,62,65,67,69,76,93,94,95,100,109,114,116,119,121,126,130,168,173,175,177,182,209,211,216,218,219,221,265,269,291,292,296,314,321,325,334,337,342,353,372,374,390],flagnam:[216,218,219],flair:126,flame:[93,210,259],flash:[15,265],flat:[0,19,48,77,86,98,112,165,301,393,443],flatfil:98,flatpag:421,flatten:301,flatten_diff:301,flatten_prototyp:301,flattened_diff:301,flavor:[58,109,122,155,259],flavour:[36,139],flaw:138,fled:[129,269],fledg:[16,69,71,123,130,131,141,155,181,213],flee:[129,135,260,269],fleevalu:129,flesh:[78,100,109,123],flexibl:[14,28,41,42,68,69,77,82,91,94,96,99,114,117,122,123,126,127,129,142,155,171,182,203,204,209,225,254,338,362,374,390,439,443],fli:117,flick:391,flicker:265,flip:[26,28,104,194],flood:[19,27],floor:[75,105,216,218,243,252],flour:[79,209],flourish:362,flourrecip:209,flow:[2,11,17,47,51,62,65,67,83,87,121,126,149,370,374,443],flower:[36,37,55,85,109,110,111,118,121,122,182,377,443],flowerpot:[55,99],fluent:144,fluffi:[114,115,117],fluid:[17,56],flurri:243,flush:[9,22,82,146,192,362,364,381],flush_cach:381,flush_cached_inst:381,flush_from_cach:381,flush_instance_cach:381,flusher:381,flushmem:192,fluttersprit:78,fly:[19,20,22,28,30,31,41,42,55,79,88,91,106,111,113,114,118,132,168,188,190,198,288,296,300,309,321,332,335,339,362,368,378,390],fnmatch:362,foci:123,focu:[78,90,119,121,123,129,216,218],focus:[7,98,99,130,144,216,218,260,413],focused_object:216,foe:257,foilag:83,fold:[123,254],folder:[7,8,9,14,15,19,50,51,53,64,67,73,78,81,82,83,85,88,91,95,99,100,102,109,112,113,114,116,127,129,130,132,134,135,136,141,142,145,149,154,157,158,162,163,200,256,257,258,259,260,314,421,443],folder_nam:88,follow:[3,5,6,7,9,11,12,13,14,15,17,18,20,22,27,28,30,31,32,33,37,39,42,46,48,50,51,53,54,56,57,60,62,64,67,68,73,75,76,77,80,81,83,84,85,90,92,96,100,101,102,105,106,107,108,109,111,113,114,115,116,117,119,121,124,126,127,128,129,130,135,137,138,141,142,144,145,146,148,149,150,151,152,154,155,157,158,163,168,169,171,173,174,177,182,189,190,193,196,198,204,206,207,209,213,226,232,236,243,253,254,258,259,271,281,282,286,288,289,291,292,295,296,299,300,301,304,305,318,319,329,338,342,343,346,356,362,364,367,368,370,373,374,375,376,383,390,415],follwo:292,fond:101,font:[51,82,85,92,113,282],foo1:13,foo2:13,foo:[8,13,18,22,28,30,31,34,42,45,46,62,65,68,83,108,111,112,113,114,116,118,149,182,254,281,283,289,314,362,374,377,388],foo_bar:68,foobarfoo:55,food:209,fooerror:374,fool:123,foolish:265,footer:[53,83,102,141,177,296,375],footnot:[16,85],footprint:192,footwear:99,for_cont:296,forai:113,forbidden:11,forc:[8,20,22,42,48,54,75,83,100,104,105,107,108,117,124,126,127,129,130,138,145,149,157,158,163,169,176,180,182,187,203,210,224,226,240,242,243,253,281,292,296,300,306,325,326,332,337,355,357,375,376,381,383,390],force_init:296,force_repeat:[42,129],force_str:386,forcibl:306,fore:352,forebod:224,foreground:[3,60,139,157,207,314,367,377,443],foreign:[48,111],foreignkei:[171,295,304,364,382,399,406],forens:247,forest:[14,46,74,82,83,113,224],forest_meadow:46,forest_room:46,forestobj:74,forget:[11,14,19,22,54,67,76,92,101,106,108,114,116,117,130,132,148,153,157,243,368,443],forgiv:126,forgo:270,forgotten:[81,93,106,114],fork:[76,144,443],forloop:102,form:[6,8,13,14,18,19,20,22,28,30,31,32,33,37,39,41,46,47,48,50,52,58,65,68,70,71,72,73,78,79,83,85,86,87,88,100,108,113,115,117,118,119,121,124,129,130,136,165,166,168,169,174,176,177,180,182,187,190,193,196,197,198,203,209,216,223,225,226,242,243,247,253,284,286,288,291,292,294,296,300,301,305,307,309,312,332,334,338,342,353,355,362,363,364,367,368,370,371,372,373,374,376,377,378,383,386,387,390,391,393,394,396,398,399,400,402,403,404,406,408,413,429,434,436,441,443],form_char:373,form_class:[53,434,436],form_template_to_dict:225,form_url:398,form_valid:[434,436,441],formal:[33,121,296,338,394,443],format:[3,11,15,17,18,19,20,22,31,57,60,64,65,68,69,70,72,77,80,82,83,84,85,87,100,102,104,111,115,116,126,127,130,141,144,146,156,158,175,177,179,182,189,193,196,204,206,207,209,212,217,223,225,235,243,246,253,254,258,264,268,272,273,281,286,288,296,298,300,301,305,314,319,329,334,354,356,362,364,367,368,370,372,374,375,376,378,383,385,390,391,413,416,443],format_attribut:182,format_available_protfunc:300,format_callback:229,format_diff:301,format_extern:196,format_grid:390,format_help:272,format_help_entri:189,format_help_index:189,format_messag:196,format_output:182,format_send:196,format_t:390,format_text:204,format_usag:272,formatt:[211,225,300,374,375],formcallback:225,formchar:[100,373],formdata:225,former:[17,88,139,146,209,374],formfield:386,formhelptext:225,formset:[399,406],formstr:100,formtempl:225,formul:142,forth:[11,19,182,259],fortress:82,fortun:[9,22,90,96,102,114,120],forum:[9,64,76,84,87,89,99,123,124,149,155,156,443],forward:[3,14,15,27,28,101,102,109,119,122,123,138,139,155,168,171,198,236,246,288,295,304,359,362,364,365,373,375,382],forwardfor:151,forwardmanytoonedescriptor:[295,304,382],forwardonetoonedescriptor:[295,304,382],foster:18,foul:41,found:[3,4,6,8,9,12,13,14,15,16,18,19,20,22,28,31,32,33,37,38,39,41,46,48,49,50,51,53,54,58,62,64,65,73,76,77,78,81,83,85,87,90,92,96,99,100,106,107,108,111,112,113,114,115,116,118,120,126,127,129,130,142,143,146,149,155,158,159,165,168,170,172,173,174,175,177,182,187,190,191,194,196,203,204,229,231,232,243,253,271,281,282,283,284,286,288,292,294,296,299,300,301,303,306,309,313,314,320,329,332,343,353,355,362,363,364,367,368,369,370,374,376,377,381,385,387,390,419],foundat:[81,87,111,144,256],four:[15,19,36,60,62,67,82,85,90,96,105,118,127,131,176,198,224,292],fourth:96,fqdn:155,fractal:98,fraction:[8,123],frame:51,framework:[49,51,52,53,56,88,124,132,134,141,193,256,259,386,410,411,413,415,416,443],frankli:72,free:[7,10,31,46,64,75,77,84,87,88,94,99,111,121,123,129,130,139,141,144,155,203,216,243,254,257,300],freedn:155,freedom:[0,15,97,123,149],freeform:[123,127,129,206],freeli:[83,157,158,368],freenod:[76,89,144,149,153,155,169,187,355],freetext:[35,197,387],freez:[3,22,94,231],french:64,frequenc:[5,242],frequent:[107,204],fresh:[9,20,83,100,114,162,314],freshli:82,fri:55,friend:[84,100,105,108,121,124,158],friendli:[77,85,116,141,143,171,253],friendlier:[196,296],frighten:258,from:[0,1,2,3,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,22,25,27,29,30,32,33,34,35,36,37,39,40,41,42,44,45,46,47,48,49,50,52,53,54,55,56,57,58,60,62,63,64,65,67,69,70,72,73,74,75,76,77,78,79,80,81,82,83,85,88,89,91,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,110,111,112,113,114,115,117,118,119,120,121,122,123,124,126,127,129,130,132,134,135,136,137,138,139,140,142,144,145,146,148,149,151,152,153,154,156,158,159,161,162,163,165,166,168,169,170,171,172,173,174,175,176,177,179,180,181,182,187,188,189,190,191,192,193,194,196,197,198,203,204,205,206,207,209,210,211,212,213,214,216,217,218,219,221,223,224,225,226,231,232,235,236,239,240,241,242,243,246,247,248,249,250,252,253,254,256,257,258,259,260,265,269,270,271,272,273,275,276,281,282,283,284,286,287,288,291,292,293,294,295,296,300,301,303,304,305,306,308,309,311,314,318,319,320,321,323,324,325,326,327,331,332,333,334,337,342,343,345,346,348,352,353,354,355,357,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,375,376,377,378,381,382,383,384,386,387,389,390,391,393,394,399,400,406,408,410,411,413,416,419,421,430,436,438,441,442,443],from_channel:169,from_db_valu:386,from_nod:374,from_obj:[58,65,104,136,168,169,177,226,264,296],from_pickl:371,from_tz:391,frombox:323,fromstr:323,fromtimestamp:378,front:[11,14,33,41,51,106,108,111,116,127,145,158,161,164,443],frontend:[49,254,362],frontpag:[50,53,112,118,165,166,396,397,407,443],frost:122,frozen:[22,94,232],fruit:240,ftabl:390,ftp:389,fuel:[91,122,253,259],fugiat:29,fulfil:[79,114,120,124,314],full:[0,4,6,8,9,11,14,15,16,17,19,22,26,28,30,33,34,37,39,41,42,44,47,48,56,58,68,69,71,73,76,79,82,83,84,85,87,88,90,91,92,99,100,103,108,109,111,112,116,117,122,123,126,127,129,130,131,134,135,138,141,142,146,147,154,155,157,162,163,169,174,176,177,181,182,187,189,191,192,193,196,203,204,209,213,217,221,223,224,227,239,242,243,253,254,259,268,272,281,283,284,292,294,301,305,326,332,345,355,356,362,364,368,372,374,376,377,390,442,443],full_desc:218,full_justifi:41,full_nam:36,full_result:213,fullchain:151,fuller:100,fullest:124,fullfil:294,fulli:[5,13,22,28,57,64,67,78,83,87,90,100,106,119,126,149,155,158,163,168,242,292,296,307,342,354,370,390],fun:[0,5,82,104,109,121,122,123,134,144],func1:[182,292,346],func2:[182,292,346],func:[3,22,27,28,30,33,54,58,65,77,85,91,92,93,94,95,97,98,100,101,104,105,106,107,108,113,115,118,126,127,129,130,138,152,173,177,179,180,181,182,187,188,189,190,191,192,193,194,203,204,205,206,209,210,212,213,214,216,224,225,226,230,236,239,240,243,249,250,251,254,256,257,258,259,260,265,269,270,271,272,275,291,292,296,325,345,346,350,359,372,374,375,377,378,390,439,443],func_test_cmd_task:193,funcdef:377,funciton:259,funcnam:[30,32,71,113,292,299,300,309,374,377,390],funcpars:[24,41,58,65,71,82,86,159,165,166,299,355,366,390,443],funcparser_cal:[299,377,443],funcparser_callable_add:377,funcparser_callable_center_justifi:377,funcparser_callable_choic:377,funcparser_callable_clr:377,funcparser_callable_conjug:377,funcparser_callable_crop:377,funcparser_callable_div:377,funcparser_callable_ev:377,funcparser_callable_justifi:377,funcparser_callable_left_justifi:377,funcparser_callable_mult:377,funcparser_callable_pad:377,funcparser_callable_pronoun:377,funcparser_callable_pronoun_capit:377,funcparser_callable_randint:377,funcparser_callable_random:377,funcparser_callable_right_justifi:377,funcparser_callable_round:377,funcparser_callable_search:377,funcparser_callable_search_list:377,funcparser_callable_spac:377,funcparser_callable_sub:377,funcparser_callable_toint:377,funcparser_callable_y:377,funcparser_callable_you_capit:377,funcparser_outgoing_messages_modul:355,funcparser_parse_outgoing_messages_en:71,function_nam:192,functioncal:323,functionnam:[30,323],functionpars:[30,300],functool:149,fundament:[22,37,46,99,113,114,116,117,123,296],fur:210,furnac:[209,210],furnitur:[14,46,48],furst:253,further:[3,7,10,11,13,18,19,20,31,41,44,48,49,65,67,75,76,79,81,82,83,85,97,99,106,107,114,118,126,155,157,159,163,176,182,205,242,258,260,282,284,301,314,338,390,443],furthermor:[84,85,139],fuss:157,futur:[13,27,36,54,76,85,100,101,109,115,116,119,121,124,125,126,128,130,131,133,146,149,157,179,210,232,270,273,319,363,384,391,443],futurist:101,fuzzi:[31,170,187,209,287,294,387,390],fuzzy_import_from_modul:390,gag:147,gain:[5,94,111,121,126,177,192,198,243,292,296,443],galosch:242,gambl:213,game:[1,2,3,5,6,7,10,12,14,15,16,17,20,22,23,25,26,27,28,29,30,33,35,36,37,39,40,41,44,45,46,47,48,49,50,51,52,54,57,58,60,63,64,65,67,68,69,70,71,72,73,74,75,76,77,79,80,83,84,85,86,88,90,91,92,93,94,95,97,98,102,103,104,106,107,108,110,111,112,114,115,116,117,118,120,122,125,126,128,129,131,132,133,134,135,136,138,140,141,142,143,144,145,146,147,149,150,151,152,153,154,156,158,159,163,165,166,167,168,169,170,171,173,175,176,177,179,180,181,182,186,187,188,189,192,193,194,195,196,197,198,199,203,204,205,206,208,210,212,213,214,216,217,218,221,224,225,227,230,231,232,233,236,241,242,243,250,254,256,257,258,259,260,265,267,268,271,272,276,278,281,282,283,284,286,288,293,295,296,303,304,306,307,310,314,316,317,318,319,325,326,331,333,334,337,338,345,346,347,352,353,355,363,364,365,368,369,370,372,373,378,381,383,390,398,399,406,411,416,423,439,442,443],game_dir:[383,390],game_epoch:[19,378],game_index_cli:[165,166,310,443],game_index_en:148,game_index_list:148,game_nam:148,game_slogan:[53,76],game_statu:148,game_templ:[53,112],game_websit:148,gamedir:[28,41,53,83,119,161,314,360,443],gamedirnam:100,gameindexcli:317,gameplai:[123,155,216,443],gamer:[150,153],gamesrc:19,gametim:[19,30,86,165,166,212,224,232,366,443],gametime_to_realtim:212,gametimescript:212,gameworld:115,gammon:[144,329],gandalf:28,garbag:362,garbl:122,garden:144,garment:[78,206],gate:[31,83,121,282],gatekeep:31,gatewai:[163,343],gather:[8,22,31,52,65,134,140,147,173,174,271,312,316,370,387],gaug:[122,165,166,199,252,443],gaugetrait:253,gave:[88,91,107,114,139,393,395],gbg:367,gcc:[116,117,149],gcreat:182,gear:[7,134,155,169,176,194,214],gemer:241,gen:17,gender:[58,78,226,377,394],gendercharact:226,gendersub:[165,166,199,443],gener:[2,5,7,8,13,18,20,22,26,28,31,33,36,39,41,42,44,46,50,51,53,54,55,60,64,65,67,68,75,76,81,82,83,84,85,87,88,92,94,99,100,101,103,108,109,113,118,121,126,127,129,139,142,146,149,151,155,159,165,166,168,169,170,172,177,178,179,182,189,190,191,193,194,196,202,203,204,205,206,209,210,213,214,216,218,219,224,225,226,232,236,239,241,242,243,246,247,249,250,251,254,256,257,258,259,260,265,268,269,271,272,275,282,288,292,294,296,298,300,301,303,325,332,334,337,338,342,345,353,354,355,359,362,365,366,367,369,370,372,375,376,377,378,383,385,386,390,414,415,416,422,430,434,435,436,438,439,440,442,443],general_context:[165,166,396,420,443],generalviewsetmixin:416,generate_prototype_kei:282,generate_sessid:332,generic_mud_communication_protocol:338,genericbuildingcmd:204,genericbuildingmenu:204,genesi:155,geniu:240,genr:[84,88,328],genuin:123,geoff:[78,272],geograph:74,geographi:96,geoip:246,geometr:82,geometri:82,get:[0,3,5,6,7,8,9,10,11,12,13,14,16,17,18,20,22,26,27,30,31,32,33,34,35,36,40,42,44,45,46,48,49,51,53,54,55,56,58,60,62,64,65,67,68,73,75,76,77,79,80,81,82,83,85,87,88,91,92,93,94,95,96,97,98,99,100,101,102,104,105,106,107,108,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,136,138,139,141,142,145,146,148,150,152,153,154,155,157,158,159,161,163,168,169,170,171,175,176,177,179,180,182,183,187,188,189,194,196,197,198,204,206,213,216,218,219,221,229,231,232,235,236,240,241,243,250,251,252,253,254,256,257,258,259,260,262,265,270,271,273,275,279,281,282,283,284,286,287,288,292,294,295,296,298,300,301,303,304,306,309,312,314,319,323,324,328,332,334,337,338,340,342,343,351,353,354,355,357,362,363,364,365,367,368,369,372,374,376,377,378,380,381,383,384,385,387,390,393,395,398,400,403,404,408,410,413,415,430,438,439,442,443],get_absolute_url:[142,196,288,364],get_account:[292,353],get_account_from_email:170,get_account_from_nam:170,get_account_from_uid:170,get_al:362,get_alia:363,get_alias:413,get_all_attribut:362,get_all_cached_inst:381,get_all_categori:287,get_all_channel:197,get_all_charact:219,get_all_cmd_keys_and_alias:175,get_all_cmdset:390,get_all_mail:236,get_all_puppet:168,get_all_script:303,get_all_scripts_on_obj:303,get_all_sync_data:355,get_all_top:287,get_all_typeclass:390,get_and_load_cmdset:408,get_and_load_typeclass:408,get_and_merge_cmdset:176,get_app_list:421,get_attack:[256,257,258,259,260],get_attr:182,get_attribut:[363,413],get_browserstr:343,get_buff:372,get_by_alia:363,get_by_attribut:363,get_by_nick:363,get_by_permiss:363,get_by_tag:363,get_cach:362,get_cache_kei:357,get_cached_inst:381,get_callback:232,get_channel:197,get_channel_alias:187,get_channel_histori:187,get_charact:353,get_client_opt:[319,443],get_client_s:353,get_client_sess:[342,343],get_client_sessid:343,get_cmd_signatur:218,get_command_info:[177,190],get_components_with_symbol:281,get_connected_account:170,get_cont:[294,413],get_content_nam:296,get_context_data:[53,435,438,439,441],get_damag:[256,257,258,259,260],get_db_prep_lookup:386,get_db_prep_valu:386,get_dbref_rang:[170,294,303,363],get_def:308,get_default:386,get_defens:[256,257,258,259,260],get_direct:[83,282],get_display_nam:[3,30,58,77,80,83,100,105,168,243,273,284,296,364],get_display_symbol:[83,282],get_err_msg:[33,109],get_ev:232,get_evennia_pid:390,get_evennia_vers:390,get_event_handl:235,get_exit:[83,283,413],get_exit_spawn_nam:[83,282],get_extra_info:[177,296,364],get_famili:[48,111],get_fieldset:403,get_form:[398,400,403,404],get_formset:[399,406],get_game_dir_path:390,get_height:376,get_help:[22,31,102,177,193,218,230,272,374],get_help_categori:438,get_help_text:358,get_help_top:438,get_hint:221,get_id:[141,294,303,308,363],get_info_dict:[331,352],get_initi:441,get_input:[193,374,443],get_inputfunc:[68,319,338,355,443],get_internal_typ:386,get_kwarg:431,get_linked_neighbor:282,get_location_nam:273,get_log_filenam:196,get_map:[83,283],get_mass:105,get_message_by_id:197,get_messages_by_receiv:197,get_messages_by_send:197,get_min_height:376,get_min_width:376,get_msg_by_receiv:35,get_msg_by_send:35,get_new:333,get_new_coordin:273,get_next_by_date_join:171,get_next_by_db_date_cr:[171,198,288,295,304,362,364],get_next_wait:235,get_nick:[363,413],get_nicklist:[169,326],get_node_from_coord:281,get_numbered_nam:296,get_obj_coordin:273,get_object:[221,416,435,438,441],get_object_with_account:[294,387],get_objs_at_coordin:273,get_objs_with_attr:294,get_objs_with_attr_match:294,get_objs_with_attr_valu:294,get_objs_with_db_properti:294,get_objs_with_db_property_match:294,get_objs_with_db_property_valu:294,get_objs_with_key_and_typeclass:294,get_objs_with_key_or_alia:294,get_oth:203,get_permiss:[363,413],get_pid:314,get_player_count:328,get_posit:218,get_previous_by_date_join:171,get_previous_by_db_date_cr:[171,198,288,295,304,362,364],get_puppet:[12,168,353],get_puppet_or_account:353,get_queryset:[435,436,438],get_rang:260,get_recently_connected_account:170,get_recently_created_account:170,get_redirect_url:436,get_regex_tupl:243,get_respons:424,get_room:[83,283],get_room_at:96,get_rooms_around:96,get_serializer_class:416,get_sess:355,get_session_id:413,get_short_desc:218,get_shortest_path:[83,281],get_spawn_xyz:282,get_stat:114,get_statu:324,get_subscript:197,get_success_url:441,get_sync_data:354,get_system_cmd:175,get_tag:[363,413],get_tag_queri:410,get_time_and_season:224,get_typeclass_tot:363,get_uptim:328,get_url:403,get_username_valid:168,get_valu:[68,319,338,443],get_value_displai:413,get_vari:[229,232],get_view_detail:414,get_visible_cont:296,get_visual_rang:[83,281],get_weight:282,get_width:376,get_worn_cloth:206,get_xyz:[83,284],get_xyz_exit:[83,284],get_xyzgrid:[83,283],getattr:34,getbootstrap:56,getchild:359,getclientaddress:[62,334],getdefaultencod:438,getel:51,getenv:[314,324],getgl:51,getinput:374,getkeypair:334,getloadavg:154,getpeer:334,getpid:390,getsizof:381,getsslcontext:[335,339],getston:22,getter:[171,198,206,243,257,260,295,296,321,362,395],gettext:64,gfg:367,ghost:31,ghostli:271,giant:91,giantess:114,gid:[5,157,346],gidcount:345,gift:102,gig:123,girl:[119,296],gist:[53,242,390],git:[2,9,10,64,67,69,76,85,92,144,146,149,154,155,157,443],github:[0,10,11,64,76,78,80,84,85,89,92,99,112,120,121,144,149,154,156,204,342,359,390,442,443],gitignor:11,give:[0,4,5,8,9,12,13,14,16,18,19,22,26,28,29,30,33,37,39,41,42,44,45,46,47,48,50,53,54,55,57,58,68,70,74,75,76,77,78,80,82,83,85,87,88,90,91,92,95,96,99,100,101,102,103,105,106,107,108,109,111,112,113,114,115,116,117,118,119,121,122,124,127,128,129,130,132,134,135,136,141,142,144,146,149,154,155,156,157,158,163,168,173,175,176,179,182,187,188,190,196,197,204,205,206,210,216,218,219,221,224,241,242,251,254,256,257,258,259,260,265,271,273,281,282,294,296,303,304,318,340,346,353,359,362,364,367,374,376,387,388,390,393,395,413,442,443],given:[0,3,5,6,8,11,12,13,14,15,19,20,22,27,28,30,31,32,33,34,35,37,39,41,42,44,47,48,53,54,55,58,59,60,64,65,67,68,70,73,74,75,77,80,81,83,85,88,89,90,91,92,96,100,101,106,108,109,110,113,114,116,117,120,122,123,127,129,130,135,139,141,142,155,157,163,168,173,174,175,176,177,179,180,182,187,189,191,192,193,196,197,198,204,205,206,209,210,212,213,214,216,218,219,221,223,224,225,226,227,229,231,235,240,241,242,243,249,253,254,256,257,258,259,260,264,265,270,271,272,275,281,282,283,284,289,291,292,294,296,298,300,301,303,305,306,307,309,312,314,319,320,323,332,337,338,343,346,349,353,354,355,356,357,358,359,362,363,364,365,367,368,370,371,372,373,374,375,376,377,378,381,383,385,386,387,388,390,393,394,395,398,411,419,422,435,436,438,443],given_class:418,giver:[122,257,260,296],glad:107,glade:[83,113],glanc:[19,20,22,77,96,100,107,204,243],glance_exit:77,glass:[240,265],glob:[188,374],global:[5,11,14,22,25,28,30,32,37,41,42,44,47,48,51,69,74,77,79,83,88,98,106,118,121,137,140,151,157,159,182,196,209,224,232,241,243,249,275,283,294,296,301,302,303,304,308,311,314,319,321,324,345,346,368,369,370,374,377,378,387,388,390,423,443],global_script:[165,369,443],global_search:[14,19,77,100,107,168,243,296,363],globalscriptcontain:369,globalth:388,globe:[134,155],glori:120,glorifi:253,gloriou:111,glossari:[149,443],glow:82,glu:40,glyph:323,gmcp:[32,65,338,443],gmsheet:100,gmt:113,gmud:147,gno:77,gnome:[64,147],gnu:15,go_back:[254,374],go_up_one_categori:254,goal:[42,85,107,120,121,124,126,144,158,242,442],goals_of_input_valid:430,goblin:[28,41,113,182,301],goblin_arch:301,goblin_archwizard:301,goblin_wizard:301,goblinwieldingclub:41,god:[31,39,109,162,286],godhood:443,godlik:243,goe:[0,3,22,24,42,62,67,75,76,77,81,83,84,88,94,102,117,120,123,127,130,136,138,154,155,175,176,218,221,260,273,281,282,296,334,337,352,353,389,390,441],goff:[78,241],going:[0,8,28,30,50,53,62,68,75,80,81,82,83,89,92,100,101,102,105,107,109,111,114,116,118,121,123,129,132,138,141,150,151,155,157,161,204,243,256,257,258,259,260,265,268,271,273,296,311,316,367,374,413],goings:316,gold:[28,41,105,106,117,122,368],gold_necklac:13,gold_val:106,gold_valu:106,goldenlayout:443,goldenlayout_config:51,goldenlayout_default_config:51,gone:[11,33,55,106,109,114,116,118,120,123,157,219,281],good:[0,5,6,7,8,11,12,13,15,18,19,20,22,28,30,33,35,36,41,42,48,50,53,55,60,62,75,76,77,78,79,80,81,82,84,85,87,90,91,92,96,98,99,102,103,106,107,108,109,111,112,116,119,121,122,123,124,126,127,128,130,138,139,141,142,144,148,149,153,155,157,158,159,163,168,175,176,177,193,203,231,243,279,337,346,374,377,443],goodby:334,goodgui:292,googl:[85,144,154,155,187,376,443],googlegroup:40,googli:[53,134],gorgeou:83,gossip:[144,150,187],got:[9,14,49,54,108,114,115,116,117,129,254,270],goto_cal:374,goto_cleanup_cmdset:268,goto_command_demo_comm:268,goto_command_demo_help:268,goto_command_demo_room:268,goto_kwarg:374,goto_next_room:138,gotostr_or_func:374,gotten:[11,87,124,260,270,296,341],gpl2:393,graaah:135,grab:[13,22,26,108,109,127,141,188,270,413,441],gracefulli:[0,179,192,243,296,314,390],gradual:[14,15,94,121,122,144,242,253],grai:[60,139],grain:[47,370],gram:105,grammar:[58,218,242],grammat:[58,124,242,243],grand:[13,31],grant:[11,33,39,57,146,198,256,257,258,259,260,291,292,300,362,411,434,440,443],granular:260,grapevin:[161,165,166,169,187,310,322,443],grapevine2chan:[26,31,108,150,187],grapevine_:187,grapevine_channel:[150,169,187],grapevine_client_id:150,grapevine_client_secret:150,grapevine_en:[150,187],grapevinebot:169,grapevinecli:325,graph:[11,81,281],graphic:[3,9,33,34,49,50,52,65,73,78,82,100,124,165,214,227,338,443],grasp:[139,141],grayscal:207,great:[11,15,28,30,31,42,45,50,56,69,75,77,79,83,84,89,90,91,94,96,99,102,107,116,121,124,127,130,142,144,204,225,359],greater:[6,20,33,44,77,111,291,374],greatli:143,greek:16,green:[11,20,33,41,60,83,116,139,182,192,218,270,367],greenforest:83,greenskin:301,greet:[25,44,76,80,135,159],greetjack:36,greg:144,grei:[41,83,139,367],grenad:37,grep:[11,154],greyscal:[60,367],greyskinnedgoblin:41,griatch2021:78,griatch:[67,78,79,91,108,111,203,205,207,209,212,213,214,224,226,236,239,242,243,249,250,251,253,268,270,373,381,386,389,393,394],grid:[56,82,119,130,161,189,260,273,275,277,278,279,281,282,283,284,390,443],gridmap:83,gridpoint:[279,281],gridsiz:279,grief:55,griefer:142,grin:[22,122,362,377,395],grip:[85,210],gritti:22,ground:[82,87,91,109,111,115,119],group:[0,8,18,22,26,31,41,46,48,50,54,55,57,74,76,80,84,88,89,90,91,107,108,113,118,123,144,157,171,178,182,188,189,197,224,240,242,270,271,296,300,301,323,346,362,365,367,370,398,406,443],groupd:362,grow:[0,14,18,87,92,111,115,121,122,144,149,163,253,281,325,326,376,390],grown:[28,72,76,92],grudg:127,grungies1138:[78,236,251],grunt:[182,301],gstart:182,gthi:104,gtranslat:64,guarante:[13,39,42,67,84,122,151,155,213,232,300,332,353,364,377],guard:[28,83,123,210,282],guess:[16,27,70,77,80,102,107,158,204,301],guest1:63,guest9:63,guest:[24,39,86,168,443],guest_en:[39,63],guest_hom:[63,141],guest_list:63,guest_start_loc:63,guestaccount:46,gui:[51,52,65,99,123,236],guid:[2,9,84,104,134,141,410,443],guidelin:[84,85,144],guild:[18,46,67,123,136,144,187],guild_memb:28,gun:[58,91],gun_object:58,guru:87,gzip:202,habit:98,habitu:47,hack:[87,127,129,323],hacker:[144,158],had:[0,9,15,16,20,42,57,73,76,79,84,87,91,94,109,111,114,115,116,117,121,123,130,145,155,157,177,181,193,206,216,270,282,301,304,314,364,368,375,393,395,430,443],hadn:[11,101,121],hair:210,half:[69,288],hall:[31,81],hallwai:81,halt:82,hammer:[209,210],hand:[16,28,36,37,44,58,62,69,84,87,89,98,99,100,111,115,117,122,125,127,142,177,182,188,190,192,203,210,413],hander:111,handi:[3,116,141,154,258],handl:[5,6,9,11,12,13,14,16,18,19,22,27,28,30,32,33,36,37,44,47,48,51,52,53,58,62,65,67,68,69,72,75,76,77,79,81,83,84,86,87,88,90,97,98,101,106,107,108,111,112,113,115,116,117,118,121,124,126,129,135,139,140,145,147,151,154,157,159,168,169,172,173,175,176,182,183,187,188,191,203,209,210,214,218,223,224,232,235,243,247,249,251,254,256,257,258,259,260,265,270,271,272,275,282,285,286,295,296,299,300,301,304,305,308,311,314,318,319,323,324,326,327,334,337,338,341,343,345,354,355,362,364,367,368,370,371,372,374,375,376,378,381,389,390,399,406,424,443],handle_appli:218,handle_consum:218,handle_egd_respons:316,handle_eof:334,handle_error:[187,232,308],handle_ff:334,handle_foo_messag:374,handle_int:334,handle_messag:374,handle_mix:218,handle_numb:374,handle_posit:218,handle_quit:334,handle_setup:318,handler:[12,13,20,22,33,34,35,36,37,39,42,44,46,47,48,65,67,88,112,113,114,122,127,159,168,173,176,191,195,198,203,221,229,232,233,235,243,252,253,269,273,291,292,295,296,301,305,306,308,309,319,331,332,352,355,361,362,364,365,369,370,373,374,384,385,390,399,406,438,443],handlertyp:365,handshak:[29,65,147,324,330,332,337],handshake_don:337,hang:[85,89,117,121,124,132],happen:[0,3,5,6,8,9,11,13,18,19,20,22,28,30,33,39,42,44,45,47,52,53,55,57,65,67,68,69,75,82,83,84,87,88,96,97,99,100,101,107,108,109,114,115,116,123,124,126,127,129,130,139,141,148,153,155,163,168,175,176,187,196,212,218,221,250,256,257,258,259,260,269,271,273,281,296,301,308,316,323,326,346,351,353,354,355,364,374,375,381,383,390,411],happend:301,happi:[14,122,123,374],happier:107,happili:[18,108],haproxi:[155,161,443],hard:[0,5,6,8,11,14,16,19,20,22,30,31,41,42,46,47,54,57,62,64,68,76,85,88,100,111,112,114,117,118,121,124,126,138,141,144,149,155,157,191,225,254,304,314,362,364,374],hardcod:[74,82,99,100,114,157,362],hardcor:83,harden:149,harder:[5,8,55,83,98,111,114,121,123,126,270],hardwar:[155,327],hare:144,harm:[13,94,126,258],harsh:123,harvest:436,has:[2,3,5,6,8,9,11,12,13,14,15,16,18,19,20,22,27,28,30,31,32,33,35,36,37,39,41,42,44,45,46,47,48,49,50,51,53,54,55,56,57,58,60,62,64,65,67,68,70,72,73,75,76,77,78,80,81,83,84,85,86,87,88,90,91,92,93,94,96,97,98,99,100,101,102,106,107,108,109,110,111,113,114,115,116,117,118,120,122,123,124,126,129,130,131,134,135,136,138,139,140,141,142,143,144,145,146,148,149,150,151,152,154,155,157,158,159,162,163,164,167,168,169,174,175,176,177,179,181,182,187,189,190,192,193,194,196,197,198,202,203,204,209,212,213,214,216,218,224,225,232,236,240,241,243,253,254,256,257,258,259,260,262,265,269,270,271,272,273,279,281,282,283,284,286,288,291,292,294,295,296,300,301,304,307,308,309,314,316,319,323,326,328,332,336,341,342,346,352,353,354,355,357,362,363,364,365,370,372,373,374,376,377,381,383,384,387,390,395,398,399,406,410,411,416,430,431,438,440,441],has_account:[37,269,291,295,296],has_add_permiss:398,has_attribut:362,has_cmdset:176,has_connect:[18,196],has_consum:218,has_delete_permiss:398,has_drawn:81,has_nick:362,has_object_permiss:411,has_par:390,has_perm:[190,292],has_permiss:411,has_sub:196,has_tag:365,has_thorn:[13,118],hasattr:[22,93],hasbutton:218,hash:[15,41,83,155,301,309,342,346,355,363],hasher:5,hasn:[77,81,241,270,362,406,437],hassl:101,hast:258,hat:[84,89,206],hau:[150,169,187,325],have:[0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19,20,22,25,27,28,30,31,32,33,34,35,36,37,39,40,41,42,44,46,47,48,50,51,52,53,54,55,56,57,58,60,62,63,64,65,67,68,69,70,72,73,74,75,76,77,78,79,80,81,82,83,84,85,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,104,105,106,107,108,109,110,111,113,114,115,116,118,120,121,122,124,125,126,127,128,129,131,132,133,134,135,136,137,138,139,140,141,142,143,146,148,149,150,151,152,153,154,155,156,157,158,159,161,162,163,168,169,173,175,176,177,179,182,184,187,190,191,192,193,194,196,197,198,200,203,204,205,206,209,210,212,214,218,219,224,225,226,231,232,235,239,241,242,243,246,247,253,254,256,257,258,259,260,265,271,272,281,282,286,287,288,289,291,294,295,296,299,300,301,302,304,307,308,309,319,324,327,328,332,334,337,338,352,353,354,355,360,361,362,363,364,365,367,368,369,370,371,373,374,375,376,377,383,386,387,388,390,391,393,395,399,406,411,413,416,421,423,430,438,439,441,442,443],haven:[3,8,9,41,77,82,90,94,101,108,135,136,137,141,142,151,357],havint:50,head:[7,20,31,64,80,91,102,109,111,119,122,124,130,138,162,443],header:[14,15,19,30,31,35,37,50,64,72,76,84,85,105,108,116,149,158,177,189,198,236,243,296,368,370,375,376],header_color:182,header_line_char:376,headi:376,heading1:[85,376],heading2:[85,376],heading3:85,headless:296,headlong:149,heal:[118,122,123,210,258,259,271],healing_rang:259,healingrecip:210,health:[34,41,68,95,113,122,123,127,129,155,210,227,252,253,301,338,443],health_bar:[165,166,199,443],healthi:253,hear:[18,80,94,121,193],heard:[82,120],heart:[31,114,139],heartbeat:[47,325],heat:210,heavi:[13,19,22,33,88,105,109,123,127,129,130,146,203,243,257,327,390],heavier:[42,257],heavili:[19,62,67,76,83,84,99,120,154,159,204,256,257,258,259,260,364,442],heed:[44,292],hei:[109,122,203,236,242],height:[29,32,51,165,281,319,334,353,373,376],held:[20,129,281,291],hello:[18,28,30,32,36,44,65,68,69,72,75,80,85,94,107,117,122,123,130,153,187,188,193,196,243,319,367,443],hello_valu:69,hello_world:[69,116,117],helmet:[13,94,122],help:[3,5,8,11,13,14,15,16,18,19,21,22,24,25,26,27,28,30,33,39,41,42,44,45,46,49,51,53,55,57,58,64,67,69,70,75,77,78,79,80,81,82,83,85,86,88,90,94,96,97,99,100,103,107,108,110,112,114,115,116,118,119,120,121,122,123,124,129,130,139,141,144,146,149,151,152,153,155,162,163,165,166,172,173,175,177,178,179,187,190,192,193,194,203,212,214,216,218,221,225,229,230,232,236,242,246,253,256,257,258,259,260,265,268,271,272,277,280,294,298,308,312,314,316,317,325,332,334,335,337,339,342,343,345,346,362,363,367,370,371,372,374,375,377,385,386,387,388,394,396,397,398,400,401,404,410,413,416,421,424,429,430,431,433,442,443],help_categori:[22,31,77,100,102,106,108,129,130,152,177,179,180,181,182,187,188,189,190,191,192,193,194,203,204,205,206,209,210,213,214,216,224,225,226,230,236,239,240,243,249,250,251,254,256,257,258,259,260,265,269,270,271,272,275,286,287,288,296,345,372,374,375,387,438],help_cateogori:372,help_detail:438,help_entri:[31,286,372,438],help_entry1:286,help_entry_dict:[31,286],help_file_modul:286,help_kei:182,help_list:438,help_messag:189,help_mor:189,help_more_en:31,help_search_with_index:289,help_sstem:102,help_system:102,help_text:[189,232,430],help_top:438,helpact:272,helparg:193,helpdetailtest:431,helpdetailview:438,helpentri:[31,33,49,102,189,286,287,288,370,402,413,435,438],helpentry_db_tag:402,helpentry_set:365,helpentryadmin:402,helpentryform:402,helpentrymanag:[287,288],helper:[28,30,39,41,57,83,100,108,110,111,114,115,118,123,165,168,176,179,182,187,189,197,204,209,211,212,218,223,242,253,280,282,283,284,296,300,301,311,323,324,343,355,368,374,375,377,383,388,389,390,400,408,414],helpfil:189,helpfilterset:[410,416],helplistseri:[413,416],helplisttest:431,helplistview:438,helplockeddetailtest:431,helpmixin:438,helpseri:[413,416],helptaginlin:402,helptext:[28,298,374],helptext_formatt:[28,298,374],helpviewset:416,henc:[4,7,75,77,80,116,117,271,272,368],henceforth:[6,11,14,33,44,63,74,82,97,130,140,155,355],henddher:240,hendher:78,her:[8,58,120,122,206,226,377,394,395],herbal:373,herd:146,here:[2,3,5,7,8,9,10,11,12,13,14,15,16,17,19,22,26,28,30,31,32,33,34,35,36,37,40,41,42,44,45,47,48,49,51,53,54,56,57,58,60,62,64,65,67,68,69,70,72,73,75,76,77,79,80,81,82,83,84,85,86,88,89,90,91,92,94,95,96,97,98,99,100,101,102,104,106,107,108,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,132,134,135,136,137,138,139,141,142,144,146,147,149,150,151,152,153,154,156,157,158,159,162,163,168,169,175,176,177,182,190,191,192,193,194,198,203,204,205,206,209,210,212,213,214,216,217,218,221,223,231,232,241,242,243,250,253,256,257,258,259,262,269,270,271,272,273,275,282,284,288,292,294,296,300,301,314,316,323,325,331,332,334,337,346,352,353,355,361,362,364,367,370,374,376,381,394,399,406,408,411,413,419,435,438,439,443],hereaft:122,heroism:123,herself:[30,58,122,377,394,395],hesit:[77,96],hfill_char:376,hidden:[11,13,51,81,83,88,118,120,121,122,189,198,206,213,272,443],hide:[13,20,22,31,33,39,76,82,83,109,121,122,127,189,198,213,243,270,443],hide_from:[35,198],hide_from_accounts_set:171,hide_from_objects_set:295,hieararci:291,hierarach:365,hierarch:[12,39,57,179,291,365],hierarchi:[26,57,63,77,90,102,121,188,206,291,390,411,443],high:[20,39,58,83,87,90,109,111,117,120,145,149,175,209,210,259,296,356,365],higher:[5,9,18,20,28,33,39,44,49,57,69,83,92,97,98,100,101,111,114,122,126,127,130,149,155,168,175,179,182,192,242,256,257,258,259,260,271,282,291,316,365,374,390],highest:[20,39,100,253,367,390],highest_protocol:386,highli:[0,17,28,33,45,47,67,76,78,83,87,88,98,116,135,227,368,381],highlight:[15,60,85,99,100,139],hijack:[142,151],hilight:389,hilit:389,hill:36,hilt:[123,210],him:[28,58,80,114,226,243,377,394],himself:[58,377,394,395],hint:[9,41,53,85,87,92,103,108,114,119,124,130,134,144,149,163,212,221,360,442,443],hire:[106,158],his:[8,28,30,41,58,80,100,122,206,226,243,375,377,389,394],histogram:390,histor:[22,42,72,101,119,313,383],histori:[11,18,27,51,88,90,100,109,116,123,146,157,176,187,196,225,383],hit:[11,29,76,91,94,115,120,127,129,169,209,256,257,258,259,260,269,270,312,353,383,386,443],hit_msg:269,hite:60,hitter:108,hnow:60,hoard:123,hobbi:[79,121,124,155],hobbit:101,hoc:87,hold:[0,2,6,7,11,12,14,15,20,28,31,33,37,41,44,46,48,56,63,74,76,81,82,83,85,88,91,100,106,108,113,114,121,126,127,129,130,134,141,149,157,159,175,176,199,204,206,209,210,213,218,221,241,251,253,254,256,257,258,259,260,267,269,270,285,289,291,292,300,301,302,305,310,321,323,332,342,343,345,355,364,365,366,370,373,374,376,377,379,383,390,396,443],holder:[76,102,155,362],hole:123,home:[0,11,26,37,41,52,53,56,63,83,88,108,113,114,123,141,145,149,155,158,176,182,188,269,294,295,296,301,370,390],home_loc:182,homepag:[5,19,144,149,155],homes_set:295,homogen:[19,124,300,301,304],homogenize_prototyp:300,honcho:124,honor:[123,243],hood:[9,18,22,28,30,36,42,48,67,88,99,109,111,114,121,122,209,243,252,253,272],hook:[8,12,18,22,32,33,37,42,45,47,79,81,83,92,95,104,114,127,129,130,135,136,137,138,140,163,168,173,175,177,179,182,187,188,190,192,193,194,196,198,202,206,209,211,216,218,222,224,232,240,241,243,247,252,256,257,258,259,260,264,266,268,269,270,271,273,275,279,282,296,304,307,309,318,325,337,340,342,345,350,352,353,354,356,364,372,375,377,381,382,384,388,390,400,403,404,414,430,434,435,436,438,441,443],hooligan:55,hop:87,hope:[3,100,107,120,123],hopefulli:[0,51,81,82,116,120,124,141,145,155],horizon:101,horizont:[270,281,376,390],hors:19,host1plu:155,host:[0,11,19,37,55,73,88,121,133,146,151,156,157,158,161,242,359,390,443],host_os_i:390,hotbutton:51,hotel:155,hotspot:158,hould:123,hour:[19,101,123,140,212,378,390],hous:[41,83,124,155,182,377,443],housecat:19,how:[0,3,5,6,7,8,9,10,11,13,14,15,16,17,18,19,20,25,26,28,30,33,34,35,36,39,41,42,44,46,49,50,51,52,53,54,55,57,58,62,63,65,67,68,69,73,74,75,77,79,80,81,82,83,84,85,87,88,90,91,92,93,94,95,96,97,98,99,101,102,104,105,106,107,108,109,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,139,140,141,142,145,146,149,151,153,154,155,158,159,161,162,163,169,170,174,176,177,189,191,192,193,196,204,206,209,210,212,213,216,218,221,226,241,242,243,250,253,254,258,259,260,265,269,273,281,282,283,284,289,291,295,296,301,304,309,314,319,324,328,333,338,341,345,346,352,353,354,355,359,364,368,372,374,375,376,377,383,384,389,390,399,400,402,405,406,430,442,443],howev:[9,11,12,13,14,15,16,17,20,22,27,30,33,41,42,47,48,50,54,55,58,60,62,68,69,70,72,73,75,77,80,82,83,84,85,87,90,94,95,97,100,101,106,107,109,114,116,118,120,122,123,126,127,130,137,140,146,155,163,176,177,182,189,192,193,204,225,227,232,241,254,259,265,291,367,413],howto:[85,442,443],hpad_char:376,href:[17,102,141],hrs:212,htm:329,html5:113,html:[51,52,60,73,82,85,87,88,102,108,113,120,134,142,144,147,158,177,192,196,241,272,286,288,336,338,342,343,359,364,386,389,390,410,419,434,435,436,438,439,441,443],htmlchar:389,htop:[5,163],http404:[102,142],http:[0,2,8,9,10,11,40,45,49,50,51,52,53,54,56,64,69,73,76,77,78,80,82,85,87,88,90,96,102,113,114,119,120,129,132,141,142,146,148,149,150,154,155,156,158,162,165,169,187,204,241,272,289,316,323,325,326,327,328,329,330,336,338,341,342,343,359,367,376,389,390,393,410,430,442,443],http_request:[73,158],httpchannel:359,httpchannelwithxforwardedfor:359,httpd:145,httprequest:168,httprespons:[398,400,403],httpresponseredirect:141,hub:[31,144,157,370],hue:60,huge:[8,56,67,91,94,96,101,117,121,123,132,273,375],huh:[22,77],human:[5,55,62,88,90,99,106,121,127,135,141,209,253,436,443],humanizeconfig:90,hundr:[70,123,141,153],hung:124,hungri:67,hunt:[122,127,252,253,269],hunting_pac:269,hunting_skil:127,hurdl:81,hurri:115,hurt:[95,122,123,253],huzzah:76,hwejfpoiwjrpw09:76,hybrid:[123,127],hype:161,i18n:[64,112,296],iac:68,iattribut:362,iattributebackend:362,ice:83,ice_and_fir:118,icon:7,iconv:64,id_:[400,402,404,406,430],id_str:34,idcount:345,idea:[0,7,8,10,11,22,31,33,45,50,53,55,69,75,76,81,84,85,87,96,98,102,106,111,113,116,117,121,122,123,124,126,127,128,130,138,141,142,149,152,153,177,189,190,193,203,242,301,381,389,440],ideal:[22,64,72,80,84,155,171,292],idenfi:175,ident:[6,13,20,22,60,65,76,97,99,108,122,163,168,190,243,249,292,294,296,303,367,368],identif:[19,47,355],identifi:[3,5,6,20,22,27,28,32,34,41,42,47,48,65,68,75,79,81,93,95,96,100,102,111,114,115,121,129,142,145,146,174,177,182,187,190,193,197,204,209,221,224,242,243,254,271,282,292,296,300,303,306,309,311,314,319,321,324,338,342,351,353,355,362,363,367,370,373,374,377,390],identify_object:197,idl:[44,55,168,169,269,296,346,353,355],idle_command:22,idle_tim:[168,296],idle_timeout:169,idmap:381,idmapp:[48,67,165,166,192,198,288,321,347,362,363,364,366,443],idnum:197,ids:[55,100,138,224,345,355,373],idstr:[34,47,305,309,351,390],idtifi:197,idx:138,ietf:330,ifconfig:151,ifier:253,ifram:51,ignor:[3,11,15,18,19,20,22,28,30,31,32,33,39,44,48,60,65,67,85,94,100,107,108,109,113,117,126,127,135,138,146,149,155,168,174,175,176,177,182,193,224,243,275,281,282,284,291,295,296,309,314,319,325,326,341,342,343,362,364,367,368,373,374,385,390,391],ignore_ansi:390,ignore_error:168,ignorecas:[177,182,188,189,192,194,206,209,216,243,367,372,374,389],ignoredext:359,illumin:82,illus:54,imag:[7,17,51,52,53,73,90,102,113,134,141,149,155,419,443],imagesconfig:90,imagin:[15,20,28,80,94,108,115,120,121,124,126,129,135,140,265,368],imaginari:[82,91,144],imeplement:273,img:17,immedi:[16,19,22,28,32,41,42,50,65,75,81,83,88,89,94,108,111,114,116,126,129,137,141,142,155,157,162,180,192,209,269,282,318,325,368,370,374,375],immers:79,immobil:92,immort:269,immut:[13,309],impact:139,impass:[83,120],impati:149,implement:[0,6,8,9,11,13,18,20,22,23,28,30,33,35,37,46,47,48,51,53,58,60,62,67,68,69,73,74,78,79,81,82,84,87,91,92,93,94,98,99,100,103,104,110,113,115,117,121,122,126,129,130,135,136,137,143,144,151,170,171,175,176,179,180,181,182,183,184,187,188,189,190,191,192,194,196,197,198,203,205,206,209,212,213,224,226,239,242,243,247,249,250,251,252,254,256,257,260,269,270,271,273,275,281,287,288,292,294,295,296,303,304,306,309,320,325,327,328,329,330,331,332,334,336,337,338,341,342,343,345,352,359,362,363,364,365,367,368,371,372,374,375,382,385,386,389,390,398,415,437,439,443],impli:[46,77],implicit:[60,107,139],implicit_keep:301,impmement:292,impopular:123,import_cmdset:176,importantli:[18,28,109,114,122,141,292],importerror:[4,76,90,390],impos:[87,144,357],imposs:[16,28,57,70,81,82,83,85,138,141,155,282,300,376],impract:[22,41,83,301],imprecis:381,impress:[3,82,123],improv:[9,64,75,84,89,107,115,116,121,124,442,443],impur:210,in_game_error:[0,158],inabl:[149,158],inaccess:[33,75],inact:[218,269],inactiv:192,inadvert:260,inadyn:155,inarticul:69,inbuilt:[46,130],incant:154,incapacit:123,incarn:430,incid:247,includ:[0,2,5,7,8,11,12,13,14,19,20,22,26,28,30,32,33,34,37,41,44,45,46,47,48,50,51,53,55,56,60,68,69,73,76,77,78,82,83,84,85,86,87,88,90,91,95,96,97,100,101,102,106,107,108,109,110,113,114,115,116,117,118,119,121,122,123,125,126,127,128,129,131,133,134,138,141,142,143,144,149,154,157,159,168,173,174,175,177,180,181,182,190,193,196,203,206,209,210,211,216,221,224,225,226,232,242,243,247,253,254,256,257,258,259,260,271,272,273,279,281,282,283,284,289,291,296,300,307,314,332,334,337,338,346,351,354,362,363,364,365,367,368,369,370,371,373,374,376,378,383,390,413,419,423,439,442],include_account:362,include_children:363,include_par:363,include_prefix:174,include_unloggedin:[332,355],inclus:[31,363,377],incoher:139,incol:[100,373,376],incom:[22,52,62,68,146,155,159,169,174,191,216,247,257,282,314,323,327,330,333,337,338,342,343,345,353,354,355,359,374,375,377,398,400,403,404,411],incomplet:[177,250,376],inconsist:[6,13,54,241],incorpor:[179,376],incorrect:197,increas:[33,39,48,60,78,83,101,111,114,122,127,158,203,253,257,259,260,271,282,326,332,346,372,374],increase_ind:372,incred:[254,316],increment:[149,362],incur:19,indata:[62,362],inde:[76,87,107,155],indefinit:[258,270,370],indent:[14,15,19,27,30,51,72,75,76,85,99,108,116,117,281,343,368,372,374,377,390],independ:[35,42,52,75,88,98,139,162,203,246],indetermin:316,index:[31,52,53,67,69,73,81,82,85,98,106,114,121,134,138,144,155,161,165,166,174,187,188,189,203,218,254,270,281,282,286,288,289,294,312,316,317,359,365,367,375,376,390,396,429,430,431,433,435,438,443],index_category_clr:189,index_to_select:254,index_topic_clr:189,index_type_separator_clr:189,indexerror:[142,273,363],indexread:218,indextest:431,indic:[35,58,75,77,81,82,83,85,101,106,107,109,116,117,145,169,182,189,190,218,226,243,247,254,281,282,304,307,325,326,334,341,342,355,357,359,362,367,368,374,375,390,416],individu:[13,14,15,22,30,41,68,75,77,80,81,82,83,91,99,100,106,114,117,127,140,143,152,155,176,180,196,209,213,219,229,232,252,253,259,298,301,353,365,367,376,377,384,385],ineffici:[47,135,367],inf:[393,395],infact:22,infinit:[42,75,78,83,121,149,169,273,282,300,393,395,443],infinitely_lock:218,inflat:123,inflect:[377,393],inflict:258,inflict_condit:258,influenc:[28,54,56,77,80,121,130,203,221,390,443],influenti:144,info1:251,info2:251,info3:251,info:[0,5,7,11,13,14,17,18,19,22,25,26,29,31,37,38,42,44,46,48,49,53,56,58,67,68,83,84,87,88,92,100,113,114,116,122,132,143,146,147,149,157,159,168,169,171,179,180,182,189,192,194,199,203,205,214,218,224,227,236,271,284,288,296,314,319,323,331,332,352,353,355,363,364,365,370,373,383,390,443],infomsg:383,inforamt:[243,273,284,296,364],inform:[0,2,5,8,11,12,13,19,22,28,34,35,41,42,44,46,51,53,60,63,65,67,71,73,75,76,77,80,83,85,92,93,102,106,107,108,109,113,116,123,127,129,130,132,134,135,137,140,141,142,145,146,150,151,157,158,159,168,169,177,180,182,187,188,192,198,204,209,213,216,241,243,247,248,253,258,259,260,288,296,314,319,328,329,330,332,341,354,355,363,364,367,370,372,383,390,430,443],infrastructur:[65,85,88,124,155,158,173,324,443],infrequ:80,ing:[15,76,100,115,123,213],ingame_python:[80,165,166,199,443],ingame_tim:101,ingen:64,ingo:[20,28,32,58,83,100,175,294,326,377,393,443],ingot:[209,210],ingredi:[79,123,209,218],ingredient1:218,ingredient2:218,ingredient3:218,ingredient_recip:218,inher:[36,54,69,90,253],inherit:[2,3,8,12,18,19,20,22,37,41,48,50,53,60,62,67,77,79,83,88,95,99,102,104,108,110,112,114,115,118,123,130,135,171,175,177,182,190,192,193,196,198,203,204,206,209,216,218,224,226,240,243,250,253,256,257,258,259,260,268,269,271,272,275,293,295,296,301,304,306,345,354,361,363,364,372,375,376,381,388,390,413,416,434,435,436,438,440,441,443],inheritng:301,inherits_from:[135,142,192,390,443],inifinit:300,init:[7,11,51,62,76,77,81,83,85,100,119,149,154,159,162,203,204,221,225,276,295,314,332,333,343,355,390],init_delayed_messag:225,init_django_pagin:375,init_evt:375,init_f_str:375,init_fill_field:225,init_game_directori:314,init_iter:375,init_menu:268,init_mod:176,init_new_account:390,init_pag:[300,375],init_pars:272,init_queryset:375,init_rang:260,init_sess:[62,354],init_spawn_valu:300,init_st:221,init_str:375,init_tree_select:254,init_tru:176,initi:[0,6,8,10,11,13,22,27,28,42,44,45,51,52,53,76,79,81,83,85,88,91,94,100,106,108,112,121,122,126,127,130,137,141,163,168,169,176,177,193,196,198,203,209,214,221,225,229,233,235,242,243,253,254,256,257,258,259,260,265,268,269,270,280,281,282,283,286,294,295,296,300,305,308,309,311,312,314,316,317,318,323,324,325,327,328,329,330,332,333,334,335,336,337,338,339,341,342,343,345,353,354,355,362,367,369,372,373,374,375,377,385,386,390,399,400,402,404,406,408,424,430,441,443],initial_formdata:225,initial_ind:376,initial_setup:[165,166,310,352,443],initialdelai:[311,325,326,345],initialize_for_combat:[256,257,258,259,260],initialize_nick_templ:362,initil:342,initpath:83,inject:[52,113,126,158,218,283,300,314,345,346,353,368,374],inlin:[51,58,86,99,106,296,312,377,398,399,400,402,403,404,406,443],inlinefunc:[41,58,113,159,377],inlinetagform:406,inmemori:362,inmemoryattribut:362,inmemoryattributebackend:362,inmemorybackend:362,inmemorysavehandl:385,innermost:30,innoc:[55,180],innocu:158,inobject:323,inp:[28,182,197,300,312,375,377,390],inpect:28,input:[5,8,11,13,15,16,17,18,19,20,27,32,36,41,44,47,51,52,53,54,58,62,65,70,73,76,77,78,79,82,83,85,86,89,95,99,100,103,107,108,109,113,114,115,119,126,136,141,144,159,163,168,172,173,174,177,182,187,189,190,191,192,193,197,204,209,210,213,221,225,242,243,247,252,253,254,259,270,282,287,296,299,300,301,312,314,319,323,334,342,353,355,362,363,365,372,373,374,375,376,377,384,386,390,391,430,443],input_arg:193,input_cleanup_bypass_permiss:390,input_cmdset:374,input_func_modul:[32,319],input_str:[30,374],input_validation_cheat_sheet:430,inputcmdset:374,inputcommand:[32,65,68],inputcompon:51,inputdebug:[32,319],inputfuc:113,inputfunc:[24,62,68,113,159,165,166,169,310,342,353,355,443],inputfunc_nam:342,inputfunct:32,inputhandl:165,inputlin:[36,188,196,362,363],insecur:155,insensit:[31,39,111,118,189,224,243,271,286,294,363,422],insert:[13,14,15,27,30,36,41,58,79,85,88,92,100,116,119,149,152,176,209,218,226,239,243,300,368,374,376,377,390],insid:[3,5,7,8,13,14,16,19,20,22,28,30,33,37,40,41,42,44,48,49,53,54,57,60,64,67,68,69,73,75,80,82,83,85,88,91,92,93,99,102,105,106,107,108,109,111,112,113,116,117,118,126,127,130,134,135,138,140,141,142,146,149,151,152,153,157,163,165,169,192,196,204,224,227,231,232,243,269,271,273,291,295,296,299,314,331,352,359,368,369,377,390],inside_rec:291,insiderecurs:291,insight:[3,109,120,134],insist:[107,155],inspect:[28,55,83,106,146,168,182,192,203,312,314,374],inspectdb:67,inspir:[8,22,58,72,78,122,127,129,205,226,376,390],instac:[177,209,296,353],instal:[0,3,5,6,7,8,9,10,15,64,69,75,78,79,80,84,85,87,88,99,100,109,112,116,119,120,122,132,142,144,148,150,156,158,163,165,166,199,203,205,206,207,208,213,214,224,236,239,240,243,247,249,250,256,257,258,259,260,421,442,443],installed_app:[8,67,90,102,141,142,421],instanc:[3,6,8,10,11,12,13,17,19,27,28,30,34,41,44,45,50,51,56,64,75,77,80,83,88,92,93,94,96,98,99,100,101,102,106,107,108,110,111,113,114,116,118,126,129,132,134,138,139,145,158,168,171,173,174,175,176,177,186,189,191,192,193,196,198,202,204,209,223,232,235,241,254,272,273,284,288,295,296,300,301,303,304,308,309,311,314,323,324,325,326,327,328,329,330,332,336,337,341,345,346,354,355,359,362,364,365,367,370,371,374,376,381,382,386,390,391,398,399,400,402,403,404,406,410,411,413,415,430,438,443],instanci:204,instant:134,instanti:[8,22,67,117,168,176,193,253,265,306,309,331,352,355,362,373],instantli:[399,406],instead:[0,5,7,8,9,11,13,15,18,19,20,22,28,30,34,37,39,41,42,44,46,48,53,54,55,56,57,58,60,64,65,67,73,75,76,77,78,79,80,81,82,83,84,85,88,91,92,94,95,96,99,100,101,106,107,109,110,111,113,114,115,116,117,118,119,121,123,124,126,129,130,132,134,135,136,138,139,140,141,142,144,146,149,151,155,157,158,159,161,163,168,169,176,177,179,180,182,184,187,191,192,194,196,204,209,210,213,214,216,218,223,225,235,242,243,250,252,253,254,256,257,258,259,260,268,270,272,273,275,281,282,284,291,292,294,296,301,309,314,342,343,353,357,362,364,365,370,374,375,377,381,383,385,386,387,390,394,399,406,421,430,434,435,436,438],instig:180,instil:[74,258],instnac:308,instr:[323,390],instruct:[3,6,7,11,14,15,19,32,65,68,75,76,78,80,84,85,87,95,99,100,106,112,116,117,119,120,121,123,144,145,146,149,151,154,155,157,161,162,168,177,192,243,247,301,309,311,314,324,326,332,337,338,342,343,345,353,355,374,384],instructrion:79,insur:123,integ:[20,22,30,41,44,48,60,96,106,107,130,174,206,212,213,225,253,256,257,258,259,260,271,282,284,291,296,363,377,386,390,391],integerfield:[141,404,430],integr:[1,49,51,88,90,117,122,142,144,158,193,243,317,319,374,410,443],intel:116,intellig:[65,107,123,127,142,158,176,345],intend:[3,11,14,17,19,20,22,30,35,41,46,51,69,77,82,83,84,87,109,121,126,134,139,155,158,168,200,203,204,209,223,243,284,288,296,301,332,363,365,370,371,373,376,377,387,388,390,391,408,436,439],intens:[60,111,123,144],intent:[158,242,390],inter:[14,83,123,281],interact:[3,7,12,22,26,28,62,69,83,85,87,94,98,109,117,120,123,124,126,129,141,144,146,157,163,165,181,193,216,260,265,314,331,368,383,390,443],intercept:355,interchang:[39,119,129,286,374,440],interconnect:281,interest:[0,3,5,15,22,31,41,62,67,75,77,79,80,81,83,84,87,89,90,91,99,107,109,117,119,120,121,124,128,130,134,137,138,144,155,158,176,191,203,212,271,273,282],interestingli:122,interf:[149,265],interfac:[0,2,3,6,33,50,51,52,62,73,76,77,82,88,89,91,92,102,112,116,141,144,146,149,155,159,179,182,196,294,296,307,325,354,359,362,365,367,390,400,405,439,443],interfaceclass:334,interfer:[6,146,300],interim:[47,94],interlink:[331,352],intermediari:[243,292,305,374],intern:[9,13,16,18,19,28,33,36,41,44,45,46,54,62,68,70,111,112,113,123,129,149,151,155,157,158,159,163,168,169,198,209,214,226,243,253,264,273,279,281,282,294,296,300,306,342,343,362,364,365,367,371,374,376,390,443],internal:374,internal_port:155,internation:[70,443],internet:[22,53,54,55,56,62,146,149,151,153,155,158,162,180,311,316,324,325,326,334,337,345,359],interpret:[3,5,22,41,42,98,107,116,117,142,158,159,177,181,182,284,300,301,342,367,386,443],interract:83,interrupt:[126,149,173,177,193,229,232,235,275,279,334,443],interrupt_path:[83,282],interruptcommand:[22,107,126,165,173,177],interruptev:235,interruptmaplink:[83,282],interruptmapnod:[83,282],intersect:[20,175],interv:[32,42,47,88,129,137,138,140,169,170,210,212,232,253,256,257,258,259,260,262,269,271,304,309,319,370,378,390],interval1:309,intim:[20,22],intimid:100,intoexit:[182,275],intpropv:130,intricaci:101,intrigu:[78,148],intro:[90,102,108,117,119,120,142,268,271],intro_menu:[165,166,199,267,443],introduc:[0,6,8,11,20,30,79,94,99,122,123,124,127,130,243],introduct:[1,11,14,15,16,56,57,78,103,108,109,115,119,125,128,131,132,133,149,204,442,443],introductori:[87,149],introroom:271,introspect:240,intrus:139,intuit:[11,28,67,77,107,121,123,126,175],intxt:19,inv:[20,26,105,188,206,216],invalid:[13,30,41,83,107,168,225,243,253,282,300,376,377,386,390,391,394],invalid_formchar:373,invent:253,inventori:[6,19,20,26,33,79,91,92,106,107,108,109,111,115,118,123,124,188,206,209,210,216,243,291,296,364,443],invers:[33,60,83,108,114,139,243,252,282,340,389],invert:[60,139],investig:[53,114],invis:[83,147,279,282],invisiblesmartmaplink:282,invit:[54,75,121,133,265],invitingli:[109,265],invok:[14,15,42,246],involv:[13,33,37,42,44,45,61,62,83,98,115,121,123,129,130,154,209,210,225,260,282,364,365,367,411],ioerror:368,ipregex:180,ipstart:[149,157,163],iptabl:158,ipv4:146,ipython:[0,5,100,443],irc2chan:[26,31,108,153,187],irc:[0,11,76,87,89,124,144,149,156,161,165,166,169,187,195,310,319,322,332,355,443],irc_botnam:169,irc_channel:169,irc_en:[153,187,291],irc_network:169,irc_port:169,irc_rpl_endofnam:326,irc_rpl_namrepli:326,irc_ssl:169,ircbot:[169,326],ircbotfactori:[169,326],ircclient:[326,355],ircclientfactori:332,irchannel:[153,187],ircnetwork:[153,187],ircstatu:[26,108,187],iron:[122,203,209,210,442],ironrealm:338,irregular:[262,269,271],irregular_echo:269,irrelev:[158,323],irur:29,is_account_object:98,is_act:[304,398],is_aggress:135,is_anonym:[90,102],is_anyon:90,is_authent:141,is_ban:168,is_bot:171,is_build:90,is_categori:254,is_channel:22,is_connect:[171,296],is_craft:94,is_dark:114,is_exit:[22,177],is_fight:94,is_full_moon:92,is_giving_light:270,is_gm:100,is_in_chargen:130,is_in_combat:[256,257,258,259,260],is_inst:19,is_it:390,is_iter:390,is_lit:[270,271],is_next:[171,198,288,295,304,362,364],is_o:390,is_ouch:[13,118],is_poison:13,is_prototype_bas:300,is_rest:126,is_sai:136,is_sleepi:13,is_staff:398,is_subprocess:390,is_superus:[12,50,90,168,171,292,296,370,398],is_thief:189,is_turn:[256,257,258,259,260],is_typeclass:[168,364],is_valid:[42,138,141,203,304,307],is_valid_coordin:273,isalnum:367,isalpha:367,isb:193,isbinari:[325,342],isclos:51,isconnect:51,isdigit:[100,367],isfiremag:93,isinst:[96,390],isleaf:343,islow:367,isn:[3,17,27,75,77,80,90,98,101,102,107,111,126,149,204,229,233,260,271,272,316,367,384,393,399,406,422],isnul:386,iso:[16,70,194],isol:[8,14,84,85,88,107,116,119,121,149,157,162],isp:[155,158],isspac:367,issu:[0,3,5,8,11,13,14,15,20,22,26,37,48,54,69,74,77,78,82,84,85,89,91,94,100,106,117,122,126,130,139,144,145,146,148,149,155,158,187,194,300,314,345,346,376,442,443],istart:[3,163,165],istep:346,istitl:367,isub:129,isupp:367,ital:443,italian:64,itch:[123,149],item:[28,51,67,78,85,102,105,106,109,112,113,122,123,129,135,149,188,203,206,209,219,225,243,258,265,273,333,362,377,390,443],item_consum:258,item_func:258,item_kwarg:258,item_selfonli:258,item_us:258,itemcoordin:273,itemfunc:258,itemfunc_add_condit:258,itemfunc_attack:258,itemfunc_cure_condit:258,itemfunc_h:258,itend:390,iter:[6,13,28,30,46,81,108,114,168,243,264,273,282,296,301,307,343,345,346,362,364,365,367,368,371,375,390],iter_cal:375,iter_to_str:390,itl:[77,204],its:[3,5,8,9,10,11,12,13,15,16,18,19,20,22,27,28,29,30,31,33,34,37,39,41,42,44,47,48,49,50,51,52,55,56,58,60,62,65,67,68,72,73,75,76,77,78,79,81,82,83,84,85,87,88,89,91,92,94,96,97,98,99,100,101,102,104,105,106,107,108,109,111,112,113,114,115,116,117,118,119,120,122,124,126,127,130,132,134,135,136,138,139,141,142,146,149,150,153,154,155,156,157,158,159,168,169,171,173,174,175,176,177,180,182,190,192,193,196,197,203,204,209,210,218,221,225,226,232,240,242,243,250,253,254,256,257,258,259,260,264,265,269,270,272,273,275,282,284,294,295,296,301,308,309,314,318,319,323,327,338,340,341,342,343,346,354,355,359,360,362,363,364,365,368,373,374,376,377,381,383,384,385,386,387,390,394,398,399,406,408,410,419,430,434,435,436,438,440],itself:[2,5,7,8,11,13,16,17,18,19,22,28,31,33,37,39,42,44,47,48,53,58,62,64,67,73,75,76,77,78,80,81,82,83,84,85,87,88,90,91,92,94,97,105,106,108,109,112,113,114,116,117,118,120,129,130,134,136,141,142,143,146,149,151,154,159,161,162,168,169,189,196,204,209,213,217,218,219,221,225,235,241,243,253,254,259,262,270,271,273,282,285,288,289,291,294,296,298,299,301,308,314,338,343,355,359,362,365,367,370,372,374,377,385,387,390,394,395,399,406,430,440,443],iusernamepassword:334,iwar:106,iweb:155,iwebsocketclientchannelfactori:325,iwth:309,jack:36,jail:[14,55],jam:78,jamochamud:147,jan:[55,101],januari:101,jarin:155,java:116,javascript:[49,51,52,53,68,73,87,134,158,342,343],jenkin:[78,130,206,225,227,254,256,257,258,259,260],jet:259,jetbrain:[7,144],jinja:113,jiwjpowiwwerw:13,jnwidufhjw4545_oifej:76,job:[22,33,102,151,168],johhni:78,john:[100,251],johnni:[246,247],johnsson:36,join:[46,76,77,81,89,100,111,121,123,129,130,141,149,150,153,168,187,196,203,217,242,367,390,443],join_fight:[256,257,258,259,260],join_rangefield:260,joiner:196,jointli:[88,176],joker_kei:[77,204],journal:82,json:[49,51,65,68,246,325,338,342,343,371,413],jsondata:68,jsonencod:343,jsonifi:343,jtext:367,judgement:127,jumbotron:443,jump:[0,11,14,15,28,29,37,69,78,81,87,91,97,121,123,149,216,254,312,377],jumpstat:216,june:64,junk:323,jupyt:443,just:[0,3,4,5,6,7,8,9,11,13,14,15,16,17,18,19,20,22,28,29,30,31,32,33,35,36,37,41,42,44,45,46,47,48,50,51,53,54,55,57,58,60,62,64,65,67,68,70,73,74,75,76,77,78,79,80,81,82,83,84,85,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,104,106,107,108,109,111,112,113,114,115,116,117,118,119,120,121,122,124,126,127,129,130,132,134,135,136,137,138,139,140,141,142,144,146,148,149,151,155,157,162,163,168,175,176,177,180,182,187,190,191,193,196,203,204,206,209,210,213,216,221,223,224,229,231,232,242,243,251,253,254,256,257,258,259,260,265,269,271,273,275,282,284,292,296,301,305,319,332,342,346,352,359,362,363,364,367,371,372,374,376,377,385,386,390,391,436,439,443],justif:[375,390],justifi:[30,41,367,375,377,390],justifii:375,justify_kwarg:375,kcachegrind:5,keen:84,keep:[0,3,5,6,9,11,14,15,16,22,28,31,40,41,44,53,56,75,76,88,90,92,94,95,98,99,100,101,102,104,105,106,107,108,111,115,116,117,120,121,122,123,124,126,127,129,136,138,139,140,141,142,143,146,149,151,154,157,162,169,176,224,227,232,241,246,265,270,271,300,301,316,357,374,376,390],keep_log:[196,370],keepal:[44,337,343],keeper:[106,123],keepint:88,kei:[0,3,6,8,11,13,14,18,19,20,22,27,29,30,31,32,33,34,37,39,42,45,46,47,48,49,51,53,54,64,67,68,72,75,76,79,81,82,83,85,86,91,92,93,94,95,96,97,98,99,100,101,102,104,105,106,107,108,110,114,115,116,117,126,128,129,130,137,138,141,145,152,168,169,170,171,173,175,176,177,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,196,197,198,203,204,205,206,209,210,212,213,214,216,217,218,221,223,224,225,226,230,231,236,239,240,242,243,249,250,251,253,254,256,257,258,259,260,265,268,269,270,271,272,273,275,281,282,283,284,286,288,289,291,294,295,296,299,300,301,303,304,305,306,307,308,309,312,314,319,320,321,323,332,335,338,339,341,342,343,345,346,353,354,355,357,362,363,364,365,369,370,372,373,374,375,377,383,384,385,387,390,410,430,441,443],kept:[5,8,22,31,39,53,99,107,113,182,231,232,243,301,362],kept_opt:254,kernel:0,key1:239,key2:[28,239,296],key_mergetyp:[20,175,265],keydown:51,keyerror:[209,300,309,385,390],keyfil:[335,339],keynam:[196,299,301,370],keypair:334,keys_go_back:[77,204],keystr:365,keystrok:334,keywod:376,keyword:[5,8,13,19,22,27,28,29,30,32,33,41,42,45,47,48,54,58,65,67,75,77,92,94,95,100,101,104,107,110,111,116,126,130,142,168,169,173,177,182,188,196,206,212,221,223,224,229,231,232,235,242,243,247,256,257,258,259,260,271,272,284,292,294,296,300,301,305,308,309,312,314,319,323,325,326,332,333,334,337,342,343,353,354,355,357,362,363,364,370,373,374,375,376,377,381,384,386,387,390,439,443],keyword_ev:235,kick:[18,20,28,55,100,123,155,169,175,180,187,194,214,375],kildclient:147,kill:[5,19,28,44,109,113,121,124,129,154,157,203,269,270,305,309,314,352,359,443],killsign:314,kilogram:105,kind:[6,13,33,62,75,84,85,107,114,115,116,121,125,129,136,138,141,159,256,257,258,259,292,364,391,443],kindli:139,kitchen:[97,115,126,182,275],klass:64,knee:[83,218,282],kneeabl:218,kneed:218,kneel:218,kneelabl:218,knew:[114,116],knife:[79,209,210],knight:13,knob:13,knock:[28,120],knot:206,know:[0,3,5,6,8,9,11,12,13,14,15,16,18,20,22,28,30,31,32,33,34,37,44,48,53,54,56,58,60,62,64,65,67,70,75,77,79,81,82,83,84,85,88,89,91,94,96,97,98,99,100,102,104,105,106,107,108,109,111,113,114,115,116,117,118,119,121,122,123,124,126,127,129,134,135,136,138,139,140,141,142,144,145,146,148,151,153,155,156,157,159,163,177,181,182,190,193,203,231,236,242,254,259,265,270,282,295,296,319,353,355,362,368,369,374,390,399,406,437,443],knowledg:[14,16,22,87,336,355],known:[22,27,31,36,39,40,47,48,51,89,109,121,126,127,142,144,147,161,167,191,259,375,442,443],knuth:5,korean:64,koster:144,kovash:28,kwar:364,kwarg:[13,18,22,28,30,32,33,34,41,45,47,48,51,54,62,65,68,71,79,83,92,94,100,104,126,136,138,140,142,168,169,170,171,173,176,177,179,180,181,182,187,188,189,190,191,192,193,194,196,197,198,203,204,205,206,209,210,212,213,214,216,217,218,219,221,223,224,225,226,229,230,231,232,236,239,240,241,242,243,247,249,250,251,253,254,256,257,258,259,260,262,264,265,268,269,270,271,272,273,275,282,283,284,287,288,291,292,294,295,296,298,299,300,301,303,304,305,307,308,309,311,312,319,320,321,323,324,325,326,331,332,333,334,335,337,338,339,342,343,345,347,353,354,355,356,357,359,362,363,364,365,367,370,372,373,374,375,376,377,378,380,381,383,384,385,386,387,388,390,391,398,399,400,403,404,406,410,412,413,416,430,434,435,436,438,439,440,441],kwargtyp:390,label:[46,67,74,109,118,119,141,410,430],label_suffix:[400,402,404,406,430],laborum:29,labyrinth:83,lack:[14,53,72,85,98,108,121,124,243,265,296,362,390],laddad:64,ladder:100,ladi:114,lag:[5,81,149],lair:15,lambda:[28,41,54,96,102,232,301,390],lamp:[82,265],lamp_breaks_msg:265,land:[107,129,269,270],landscap:[82,158],lang:242,langcod:243,langnam:243,languag:[8,10,16,30,39,48,51,52,53,58,61,62,69,70,72,85,87,88,98,99,100,107,108,111,112,113,114,115,116,122,124,136,144,158,242,243,443],language_cod:64,languageerror:[242,243],languageexistserror:242,languagehandl:242,larg:[6,8,14,15,28,41,42,53,54,56,67,69,78,83,84,87,98,109,119,120,121,124,126,146,155,218,242,265,273,276,300,332,368,373,381,443],larger:[15,30,33,67,69,81,85,99,105,116,121,224,296,340,367,381,390,419,442],largest:253,largesword:67,last:[0,2,3,8,11,13,14,15,18,20,22,28,32,36,37,44,45,51,58,64,67,77,83,85,90,94,100,102,107,110,115,116,117,118,120,121,123,124,129,134,138,139,142,148,151,163,170,173,174,176,182,187,188,203,212,224,232,243,254,256,257,258,259,260,296,318,367,368,369,374,375,376,378,383,390,443],last_cmd:[22,114],last_initial_setup_step:352,last_login:398,last_nam:398,last_step:318,lastcast:93,lastli:[82,104,141,173,209],lastsit:92,late:[300,369],later:[6,11,12,13,14,18,22,31,32,34,41,42,47,48,55,62,65,67,74,75,76,77,79,80,82,83,87,88,100,102,104,108,109,111,114,115,116,117,119,121,122,123,124,126,127,128,130,135,137,138,141,146,149,155,175,179,180,182,190,196,212,240,243,282,300,301,309,334,365,377,390],latest:[2,11,19,20,53,78,85,88,91,100,149,151,154,156,182,187,192,296,301,333,357,374,377,383,410,443],latin:[16,64,70,194,296,390,443],latin_nam:296,latinifi:[296,390],latter:[19,33,37,47,83,88,94,107,139,243,253,286,304,306,365],launch:[7,8,15,78,83,91,106,120,148,149,154,155,163,176,265,313,314,324,326,345,372,390,443],launchcmd:[83,165,166,199,274,276,443],launcher:[5,7,83,276,277,313,314,323,324,345],lava:83,law:144,layer:[20,77,78,112,117,295,364],layout:[9,19,31,40,48,51,53,81,83,98,100,114,118,273,281,296,443],lazi:390,lazy_properti:[252,253,390],lazyencod:343,lazyset:383,lc_messag:64,lcnorth:59,ldesc:98,ldflag:154,lead:[13,14,17,20,28,30,42,50,52,53,65,67,71,75,77,78,81,82,83,84,87,88,98,102,109,111,118,121,123,138,144,146,158,168,174,175,182,192,209,232,235,241,243,249,275,280,282,283,284,296,300,301,353,362,364,374,376,377,390],leak:[53,73],lean:[35,122,243],leap:[101,116,126,136],learn:[3,7,11,16,17,20,22,49,53,56,69,75,77,78,80,81,83,94,98,99,102,104,108,110,111,112,114,115,116,117,120,121,122,123,124,126,134,139,142,144,149,162,242,243,259,443],learnspel:259,least:[3,7,13,22,28,33,35,50,67,81,87,96,99,100,114,116,117,119,121,124,127,132,138,145,151,155,168,176,197,203,218,242,253,287,296,301,307,367,373,376,377,387,390],leasur:269,leather:[106,123,210],leatherrecip:210,leav:[5,12,18,32,51,53,75,77,91,92,100,106,109,119,127,129,130,158,179,181,182,196,203,204,216,218,219,271,273,275,296,308,338,342,343,374,377,381,413,443],leaver:196,led:114,left:[2,19,22,30,32,33,41,51,67,77,82,83,85,96,99,102,106,107,111,115,120,126,149,168,182,188,190,218,227,256,257,258,259,260,265,270,273,281,282,292,301,364,367,376,390],left_justifi:41,leftmost:83,leg:351,legaci:[30,41,42,68,123,162,168,243,377],legal:[155,158],legend:[27,81,147,165,166,199,274,281,283,443],legend_key_except:281,legenddict:283,leisur:391,len:[41,81,92,100,106,111,118,129,137,138,152,174,191,212,390],lend:27,length:[63,67,77,81,83,92,101,107,116,120,123,146,152,155,174,209,212,223,225,227,235,242,243,281,282,294,316,357,362,367,376,377,390,441],lengthi:92,lenient:41,less:[7,28,31,53,64,67,69,77,83,88,97,98,107,114,115,121,123,126,127,129,140,141,155,212,257,259,282,362],lesson:[108,109,110,111,112,114,115,117,118,121,123,124,126,443],let:[5,7,8,11,13,15,16,18,20,22,28,30,32,33,37,39,47,51,53,55,60,62,65,74,75,76,77,79,80,81,82,83,84,85,88,91,92,93,96,97,98,99,100,101,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,132,133,134,135,136,138,139,141,142,145,149,150,153,154,156,158,168,176,177,182,188,193,203,206,213,225,227,253,254,273,281,292,296,324,343,355,370,374,384,389,410,430,437,438,443],letsencrypt:[151,155],letter:[16,35,60,64,70,77,82,83,85,96,116,130,141,155,179,188,194,204,218,241,242,253,358,367,390],leve:300,level10:210,level:[0,2,4,12,13,14,18,19,27,28,30,31,33,39,44,46,48,49,50,53,57,62,63,64,69,74,77,78,79,82,85,87,95,99,100,102,106,109,111,116,121,123,124,126,127,141,144,149,152,155,159,168,179,182,184,185,196,204,205,210,212,216,236,242,254,265,281,286,291,296,301,316,353,362,364,370,372,377,378,390,411,441],lever:[22,48,216],leverag:[52,85,126,132],levi:67,lexicon:218,lhs:[92,100,190],lhslist:190,liabl:218,lib:[6,146,149,151,154],libapache2:145,libcrypt:154,libjpeg:154,librari:[0,4,8,9,14,41,48,49,51,64,69,83,86,88,98,99,103,107,114,117,119,134,141,143,144,149,154,157,158,162,199,241,272,300,301,327,362,364,376,390,443],licenc:367,licens:[7,78,84,123,241,367,393,394,443],lid:265,lidclosedcmdset:265,lidopencmdset:265,lie:[82,218],lied:218,lies:[11,22,115],life:[36,84,101,119,123,124,126,139,212,269,442,443],lift:[33,109,127,130,218,260,292,443],lifter:33,light:[15,19,42,69,85,120,121,124,146,176,257,270,271,284,301,308,367],lightabl:270,lighter:[60,257],lightest:19,lightli:[56,257],lightsail:155,lightsourc:270,lightsource_cmdset:270,like:[0,2,3,5,6,7,8,9,11,12,13,15,16,17,18,19,20,22,23,25,28,29,30,31,32,33,34,35,37,39,41,42,44,45,46,47,48,50,51,52,53,54,55,56,57,58,60,62,64,65,67,68,69,72,73,74,75,76,77,79,80,81,82,83,84,85,86,87,88,89,91,92,93,94,95,96,97,99,100,101,102,104,106,107,108,109,110,111,113,114,115,116,117,118,119,120,121,122,124,126,127,129,132,134,135,137,138,139,140,141,142,144,145,146,148,149,150,151,152,153,154,155,157,158,159,162,168,169,171,172,174,175,176,179,181,182,187,190,193,194,195,196,197,203,204,206,209,210,214,218,224,225,226,227,235,241,242,243,249,250,253,254,256,257,258,259,260,264,265,271,272,273,282,288,289,291,292,294,295,296,300,301,314,319,327,343,346,348,352,354,355,362,363,364,367,368,370,373,374,375,376,377,378,381,384,386,387,390,393,415,430,439,443],limbo:[14,15,19,63,75,76,77,78,82,83,109,113,114,120,138,142,149,159,182,204,271,275,318],limbo_exit:82,limit:[0,5,8,12,13,18,19,20,22,28,30,31,33,35,41,42,46,48,49,50,56,57,67,74,75,80,83,84,86,87,88,92,93,100,107,109,111,113,115,116,118,121,122,124,129,130,139,146,152,155,159,161,168,170,177,179,180,181,182,196,197,206,218,232,243,252,253,254,256,258,259,265,281,286,287,288,289,292,294,296,301,303,304,309,319,332,357,362,363,364,365,368,370,372,383,387,390,393,408,436,443],limit_valu:168,limitedsizeordereddict:390,limp:120,line2:115,line:[0,2,5,6,8,9,13,14,15,16,18,19,20,22,28,30,32,35,36,37,40,41,48,51,53,54,57,60,64,65,67,69,75,76,77,78,79,80,82,83,85,86,90,92,94,95,96,98,99,100,101,102,104,107,108,109,112,114,115,117,118,123,130,138,141,142,146,148,149,151,155,156,157,159,163,165,168,173,176,182,187,189,191,192,204,213,214,225,239,242,243,254,265,272,273,277,281,296,300,314,319,334,337,342,353,364,367,368,372,373,374,375,376,383,390,430,435,443],linear:81,linebreak:[102,367,389],lineeditor:372,lineend:389,lineno:85,linenum:372,liner:326,linereceiv:[334,337],linesend:343,lingo:[44,67,73,99],linguist:390,link:[0,9,11,12,15,17,18,20,22,26,28,31,37,44,49,52,53,62,71,76,77,78,80,81,82,84,87,88,90,92,94,96,99,102,106,108,109,111,112,113,114,116,123,130,132,138,141,142,148,149,153,155,156,161,168,171,182,187,229,272,275,279,280,281,282,283,292,296,304,312,314,325,329,334,337,364,389,390,403,442,443],link_button:403,link_object_to_account:403,linknam:[85,148],linknod:282,linktext:85,linkweight:282,linod:155,linux:[0,5,6,7,11,36,76,85,88,90,92,116,117,145,146,151,153,154,155,157,246,390,443],liquid:364,list:[0,5,6,7,9,11,12,13,14,15,16,18,19,20,22,26,28,30,31,32,33,35,37,41,42,44,46,48,49,50,51,53,55,60,62,63,64,67,68,70,72,73,75,77,79,80,81,82,83,84,87,89,90,92,96,99,100,102,105,106,107,108,109,111,112,113,116,118,120,121,122,124,126,127,129,130,132,138,141,142,144,146,148,149,153,155,156,158,163,168,169,170,171,174,175,176,177,179,180,181,182,187,188,189,190,192,193,196,197,198,203,204,205,206,207,209,216,217,218,224,225,226,227,229,230,232,233,235,236,239,240,241,242,243,246,247,253,254,256,257,258,259,260,265,268,269,270,273,275,281,282,283,284,286,287,289,292,294,295,296,300,301,303,305,306,307,309,312,314,319,320,323,324,326,328,330,332,333,338,343,346,355,357,359,362,363,364,365,367,368,369,370,371,374,376,377,383,384,387,390,393,394,398,399,406,408,411,413,414,415,421,423,434,435,436,438,440,441,442,443],list_attribut:182,list_callback:230,list_channel:187,list_displai:[398,400,402,403,404,405,406],list_display_link:[398,400,402,403,404,405],list_filt:[398,402,403,406],list_nod:[374,443],list_of_fieldnam:100,list_of_myscript:42,list_prototyp:300,list_select_rel:[400,402,403,404,405],list_serializer_class:416,list_set:314,list_styl:179,list_task:230,list_to_str:390,listabl:182,listaccount:192,listcmdset:182,listen:[12,18,33,44,51,55,103,146,151,158,187,196,218,242,243,265,435,443],listen_address:146,listing_contact:148,listnod:374,listobject:182,listview:[435,436,438],lit:[270,271,377],liter:[14,30,31,41,50,63,99,109,188,367,377,386,390],literal_ev:[30,374,377,390,399],literari:124,literatur:443,littl:[3,11,16,22,41,42,48,53,54,75,76,79,82,83,85,88,90,91,92,93,99,100,102,106,107,108,109,111,113,114,115,116,117,118,119,120,121,122,123,124,126,134,135,136,142,152,155,157,163,218,243,257,268,271,349,362,374,390,430],live:[7,13,53,85,89,114,123,144,145,146,149,151,155,157,443],ljust:[30,367,377],lne:254,load:[0,5,6,7,8,13,14,16,20,22,27,28,41,51,52,53,55,64,82,83,94,97,98,99,100,102,105,114,115,116,117,121,127,130,134,138,158,171,176,188,189,192,198,211,221,224,232,242,281,283,286,288,292,295,296,300,304,308,318,321,323,354,362,364,365,368,369,372,377,382,384,385,388,390,408,423,428],load_buff:372,load_data:369,load_game_set:423,load_kwarg:385,load_module_prototyp:300,load_stat:221,load_sync_data:354,loader:[28,283,364,390],loadfunc:[27,372,385],loc:[182,275],local0:151,local:[2,6,7,11,30,49,50,53,60,64,83,84,88,92,101,108,112,115,134,141,146,151,153,157,158,229,232,243,301,337,362,443],local_and_global_search:294,local_non_red_ros:111,local_ros:111,localecho:[155,319],localevenniatest:388,localhost:[49,50,51,52,53,73,76,90,102,119,132,141,142,146,147,149,151,154,155,162,343],locat:[4,5,8,9,11,12,14,19,20,22,25,26,28,32,33,37,41,42,46,48,49,50,51,53,55,58,63,73,74,75,76,78,79,80,81,82,83,85,88,90,91,92,95,96,99,100,106,107,108,109,111,112,113,114,115,116,120,122,123,126,130,134,135,136,138,141,145,149,151,155,157,158,162,168,173,182,188,192,196,197,204,205,206,209,221,223,224,240,243,249,264,269,271,273,275,279,281,282,283,284,291,294,295,296,301,343,352,362,363,364,365,368,370,374,376,383,387,416,419,421,443],location_nam:273,location_set:111,locations_set:[111,295],locattr:[270,291],lock:[18,20,22,24,26,30,35,37,41,42,46,48,50,54,55,57,77,83,86,90,91,92,93,94,96,97,100,101,105,106,108,109,112,113,114,126,130,141,146,152,155,159,163,165,166,168,177,179,180,181,182,187,188,189,191,192,193,194,196,198,203,204,205,206,209,210,213,214,216,218,224,226,229,230,232,233,236,239,240,243,249,251,265,269,270,271,273,275,282,286,288,295,296,300,301,303,359,362,364,365,370,372,374,384,390,391,403,411,438,443],lock_definit:292,lock_func_modul:[33,292],lock_storag:[177,179,180,181,182,187,188,189,190,191,192,193,194,198,203,204,205,206,209,210,213,214,216,224,225,226,230,236,239,240,243,249,250,251,254,256,257,258,259,260,265,269,270,271,272,275,286,288,296,345,362,364,372,374,375],lock_typ:33,lockabl:[35,100,218,249],lockablethreadpool:359,lockdown:[33,362,443],lockdown_mod:155,lockexcept:292,lockfunc1:33,lockfunc2:33,lockfunc:[18,22,33,39,86,92,113,115,138,159,165,166,182,187,290,365,443],lockhandl:[13,31,33,48,108,165,166,177,204,272,290,291,443],lockset:296,lockstr:[6,13,18,22,31,33,41,90,115,126,182,187,189,196,198,249,292,296,301,362,365,370,411],locktyp:[18,175,187,209,301,365,377],log:[2,5,7,9,10,11,12,13,22,25,28,32,35,37,42,44,45,50,51,52,53,54,55,63,64,67,73,78,82,83,85,86,87,88,90,91,92,96,97,99,100,108,109,115,119,123,126,127,130,138,141,142,145,146,147,149,150,151,152,153,154,155,157,163,168,176,180,194,196,205,214,219,225,246,247,281,282,283,296,304,308,314,319,323,324,328,331,332,334,337,345,346,347,353,355,357,359,364,370,383,390,398,435,436,443],log_dep:[19,383],log_depmsg:383,log_dir:[18,196,246,383],log_err:[19,383],log_errmsg:383,log_fil:[18,19,196,383],log_file_exist:383,log_info:[19,383],log_infomsg:383,log_msg:383,log_sec:383,log_secmsg:383,log_serv:383,log_trac:[19,42,136,137,383],log_tracemsg:383,log_typ:383,log_typemsg:383,log_warn:[19,383],log_warnmsg:383,logdir:2,logentry_set:171,logfil:[314,383,435,443],loggad:64,logged_in:44,loggedin:[53,332],logger:[19,42,86,136,137,165,166,246,326,366,443],logic:[3,6,53,54,75,79,81,82,83,90,96,97,102,113,123,126,142,218,242,295,299,318,362,374,391,413],login:[5,6,11,12,22,25,28,33,44,45,52,53,76,83,90,92,102,123,141,155,168,179,194,214,292,318,319,334,337,342,343,346,355,390,422,424,431,443],login_func:346,loginrequiredmixin:[436,441],logintest:431,logo:443,logout:[345,346,431],logout_func:346,logouttest:431,logprefix:[324,334,337,359],lon:377,lone:[82,121,182,189],long_descript:148,long_running_funct:54,long_text:29,longer:[22,27,29,30,47,48,58,67,72,75,91,92,94,100,102,107,108,114,116,117,139,144,148,175,180,196,206,242,243,250,256,257,258,259,260,305,308,372,376,390,443],longest:[19,243],longrun:22,longsword:49,loo:[177,193],look:[0,2,3,5,6,8,11,13,14,15,16,17,19,20,22,25,26,28,30,32,33,36,37,39,41,42,44,46,48,50,52,53,54,55,56,57,58,60,62,64,65,67,68,69,73,75,76,77,78,79,80,81,82,83,84,85,87,88,89,90,91,92,94,95,96,97,99,100,101,102,104,105,106,107,108,111,112,113,114,115,116,117,118,119,120,121,122,124,126,127,129,132,133,134,135,136,138,139,141,142,146,149,151,152,154,155,157,158,163,168,169,174,176,177,179,182,188,190,193,194,205,206,209,214,216,217,218,224,225,231,239,240,242,243,254,258,264,265,268,270,271,273,282,283,284,287,291,292,295,296,298,301,303,319,334,335,342,346,362,364,368,374,376,377,384,387,389,390,394,398,403,430,443],look_str:168,lookaccount:100,lookat:22,looker:[5,30,58,81,83,100,130,168,206,218,219,224,243,264,273,284,296,364],lookm:22,lookstr:296,lookup:[6,13,22,33,46,58,67,173,188,246,286,294,295,300,333,365,367,380,381,386,387,390,391,443],lookup_expr:410,lookup_typ:386,lookup_usernam:28,lookuperror:367,loom:82,loop:[5,13,30,48,75,80,81,83,87,88,91,102,106,111,129,136,165,169,256,282,301,332,443],loopingcal:317,loos:[15,84,168,187,206,260,287,334,345,368],loot:[121,443],lop:111,lore:[31,100,189,286],lose:[13,44,98,121,123,129,130,157,163,246,258,325,326,334,337],lost:[48,73,75,82,85,96,98,107,144,163,187,250,311,324,325,326,334,337,342,362,367],lot:[0,3,5,8,11,14,16,18,19,30,31,33,41,42,46,48,50,52,53,54,58,64,67,69,73,75,77,79,80,82,83,84,86,87,89,90,93,96,99,100,101,102,107,108,111,113,114,115,116,117,118,119,120,121,122,123,124,126,127,128,130,138,141,144,149,151,155,204,212,214,225,243,251,257,270,273,359],loud:[91,126],love:[31,51,124,286],low:[20,62,63,80,123,155,175],lower:[5,12,13,18,20,22,28,39,51,54,57,60,67,81,83,92,94,100,101,106,120,123,155,174,175,179,190,192,243,253,281,282,319,365,367,390],lower_bound_inclus:253,lowercas:[85,116,177,243,367],lowest:[39,63,155,253,291,367],lpmud:72,lsarmedpuzzl:240,lspuzzlerecip:240,lst:[81,370],lstart:27,lstrip:[107,367],ltthe:192,ltto:59,luc:373,luciano:144,luck:[28,79,107,114,145],luckili:[8,11,33,82],lue:[60,367],lug:87,luggag:118,luhttp:192,lunch:80,lunr:[31,189,289],lunrj:289,lurk:123,luxuri:[46,361],lvl10:210,lycanthrophi:111,lycantrhopi:111,lycantrophi:111,lycantrroph:111,lying:[82,218],m2m:365,m2m_chang:45,m_len:390,mac:[5,7,11,76,85,88,116,119,146,147,157,162,390,443],machin:[7,11,14,92,116,123,146,157,269,443],macport:[11,149],macro:[90,129],macrosconfig:90,mad:[11,253],made:[0,2,11,13,25,28,30,33,39,41,49,53,57,78,82,83,85,91,92,98,100,108,109,114,115,117,118,121,123,126,130,132,138,142,155,156,158,159,173,175,192,193,196,203,206,225,253,254,258,259,260,277,292,308,316,346,360,367,368,372,374,377,390],mag:[8,373],magazin:144,mage:[28,111],mage_guild_block:28,mage_guild_welcom:28,magenta:139,magic:[13,33,46,74,78,79,95,120,121,122,123,138,203,210,227,252,259,316,443],magic_meadow:46,magicalforest:74,magnific:28,mai:[1,3,5,6,7,8,9,10,11,13,14,18,19,20,22,28,30,31,33,34,36,37,41,42,44,47,48,49,53,54,57,58,60,62,63,64,65,67,68,69,73,75,76,78,79,82,83,84,85,88,89,90,91,92,93,94,98,99,101,102,104,109,111,113,114,116,118,119,120,121,122,124,126,127,129,130,134,136,137,141,142,144,145,146,148,149,151,152,154,155,157,158,159,163,168,169,173,174,175,177,179,180,182,187,189,192,193,196,197,198,199,203,205,206,209,210,212,218,221,225,227,242,243,253,256,257,258,259,260,270,271,281,282,292,294,296,300,301,302,316,353,355,356,360,362,364,365,367,369,370,371,372,374,376,377,378,384,387,390,393,399,406,419,436,443],mail:[5,9,28,35,76,84,87,89,99,108,129,144,165,166,197,198,199,443],mailbox:[35,236],main:[4,11,14,15,16,20,22,28,31,34,37,39,40,41,42,44,46,47,48,49,51,52,53,58,62,65,67,73,77,81,83,84,88,91,95,98,102,104,106,107,109,112,114,115,122,123,126,129,141,142,144,146,148,155,157,159,161,163,168,171,173,179,182,187,189,193,196,198,204,209,211,225,232,236,242,243,273,277,283,288,289,295,296,301,304,314,318,319,321,326,331,333,338,352,354,359,364,365,374,375,379,387,389,390,398,404,421,439,443],mainli:[5,13,22,28,35,37,44,54,55,58,65,99,115,116,144,179,285,362,368,390],maintain:[5,31,47,57,69,78,84,85,90,98,118,124,146,155,157,161,162,192,194,214,277,309,442],mainten:[155,158,442],major:[15,16,30,88,99,122,138,141,146,149],make:[0,1,2,3,5,6,7,9,10,12,13,14,15,16,18,20,22,26,27,28,30,31,32,33,35,36,37,39,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,62,64,65,67,69,70,74,75,76,77,78,79,80,81,82,83,84,85,87,88,89,90,92,93,94,95,96,97,98,101,103,104,106,107,110,111,112,113,115,117,118,119,120,121,122,124,125,127,128,129,131,133,134,135,136,139,140,141,142,143,144,145,146,147,148,149,152,153,154,155,157,158,159,162,163,168,169,171,174,175,176,177,179,180,182,187,190,193,197,203,204,206,209,210,212,216,218,224,225,227,233,236,242,243,248,249,250,253,254,256,257,258,259,262,265,269,270,271,275,281,282,284,287,291,292,294,296,300,301,303,306,309,314,318,326,331,345,346,352,353,355,356,358,359,362,363,364,365,367,368,369,370,371,372,374,376,377,378,381,387,389,390,399,406,408,431,439,441,443],make_it:390,make_shared_login:424,make_uniqu:175,makeconnect:323,makefactori:334,makefil:85,makeit:345,makemessag:64,makemigr:[2,67,141],male:[58,226,377,394],malevol:15,malform:[193,283,391],malici:[30,158],malign:292,man2x1:69,man:[36,58,69,72,122,155,188,236,243],mana:[78,93,95],mana_cost:210,manaag:402,manag:[5,8,9,11,12,18,20,33,37,42,44,47,48,62,65,67,76,83,86,96,98,99,106,111,113,122,126,141,157,163,165,166,167,168,171,182,187,192,193,195,196,198,221,239,243,260,271,284,285,288,293,295,296,300,302,304,309,310,314,321,361,362,364,365,366,369,370,379,382,383,387,390,431,434,435,436,441,443],manager_nam:362,manchest:390,mandat:430,mandatori:[41,45,72,75,77,83],mandatorytraitkei:253,maneuv:254,mangl:340,mango:240,manhol:334,manhole_ssh:334,mani:[0,5,8,9,11,12,13,15,16,17,18,19,20,22,28,30,31,37,41,42,44,45,47,48,49,52,53,54,55,60,61,62,63,64,67,68,69,70,72,73,74,75,76,78,81,82,83,85,87,88,89,90,95,97,98,99,100,101,106,107,108,109,110,111,113,115,116,117,121,123,124,127,129,130,136,137,138,139,141,142,149,153,155,156,158,159,163,170,171,175,177,182,187,193,198,203,206,209,211,214,218,225,243,250,251,254,258,259,269,272,281,282,284,288,289,292,294,295,301,304,309,314,328,336,338,357,362,364,365,367,374,375,377,381,382,383,439],manifest:[6,113],manipul:[13,20,28,39,41,42,50,67,75,77,88,97,108,130,170,182,192,197,224,229,253,287,294,296,303,320,370,375,436,438],manner:[15,243,273,296,332,364],manpow:84,manual:[5,6,9,11,13,15,22,31,33,37,41,42,48,50,52,60,62,64,67,74,82,83,85,87,90,91,95,100,106,109,113,114,116,121,124,126,135,138,142,144,146,149,151,155,163,165,169,182,253,254,265,268,272,282,296,301,307,314,331,338,374,375,377,442,443],manual_paus:[42,307],manual_transl:242,manytomanydescriptor:[171,198,288,295,304,362,364,365],manytomanyfield:[171,198,288,295,304,362,364,365],map10:279,map11:279,map12a:279,map12atransit:279,map12b:279,map12btransit:279,map1:[83,279,282],map2:[83,279,282],map3:279,map4:279,map5:279,map6:279,map7:279,map8:279,map9:279,map:[6,16,18,28,30,36,58,68,73,75,80,88,92,96,99,100,151,157,165,166,179,187,193,196,199,207,212,218,242,243,253,273,274,275,276,278,279,280,281,283,284,289,296,300,301,338,362,364,367,373,374,377,390,394,395,443],map_align:[83,284],map_area_cli:284,map_character_symbol:[83,284],map_data:[279,281],map_displai:[83,279,284],map_exampl:276,map_fill_al:[83,284],map_mod:[83,284],map_modul:82,map_module_or_dict:281,map_separator_char:[83,284],map_str:[81,82,273],map_target_path_styl:[83,284],map_visual_rang:[83,284],mapa:83,mapb:83,mapbuild:[165,166,199,443],mapc:83,mapcorner_symbol:281,mapdata:283,maperror:[280,281],maplink:[83,281,282],mapnam:[275,283],mapnod:[83,281,282],mapp:377,mapparsererror:[280,282],mapper:[281,377,381,395,443],mapprovid:273,maps_from_modul:283,mapstr:[83,283],mapstructur:281,maptransit:280,maptransitionnod:[83,282],march:[144,383],margin:17,mariadb:443,mark:[11,14,15,22,30,31,33,50,51,53,59,60,71,73,74,81,83,85,91,100,108,111,116,122,149,153,155,174,181,210,223,224,232,241,254,279,281,282,355,362,364,368,373,374,377,386],mark_categori:254,markdown:[31,85,90,148],marker:[14,18,22,30,36,53,58,60,78,83,88,116,122,126,187,188,209,218,223,224,226,243,254,281,282,296,326,334,337,342,343,362,365,367,373,374,375,419],market:[123,155],markup:[31,58,60,104,134,165,166,207,366,389,390,443],mask:[78,122,240,243,247,248],maskout_protodef:240,mass:[5,103,121,443],massiv:[87,93],master:[76,80,84,85,99,120,121,127,129,136,142,149,156,157,253,360,443],match:[9,11,13,19,20,22,28,30,31,32,33,36,37,39,41,42,44,46,48,50,51,53,60,65,67,68,73,76,77,79,81,82,83,96,97,99,100,101,107,109,111,113,118,126,134,136,141,142,146,159,168,170,173,174,175,176,177,180,182,187,188,189,191,193,197,204,207,209,212,224,225,235,236,239,240,243,253,259,273,281,282,284,286,287,289,291,292,294,296,300,301,303,306,309,319,320,332,345,355,362,363,364,365,367,372,374,376,377,385,387,389,390,391,393,419,441,443],match_index:174,matched_charact:225,matches2:67,matchobject:[367,389],mate:88,materi:[79,116,123,209,210],math:96,mathemat:[122,175],matlab:0,matplotlib:347,matric:[83,281],matrix:[83,376],matter:[2,8,13,20,28,31,34,44,45,64,69,75,76,79,83,90,92,99,101,102,107,116,117,121,126,127,129,134,135,149,158,175,209,243,260,269,282,295,319,362,443],matur:[9,31,53,69,72,116],maverick:88,max:[18,56,78,81,122,123,129,152,189,225,243,252,253,281,289,357,383,390],max_damag:258,max_dbref:363,max_depth:390,max_dist:81,max_heal:258,max_l:81,max_length:[67,81,141,243],max_lin:376,max_nest:377,max_nr_charact:123,max_num_lin:435,max_pathfinding_length:281,max_popular:435,max_rmem:381,max_siz:[279,281,383],max_tim:279,max_valu:[227,430],max_w:81,max_width:81,maxconn:151,maxdelai:[311,325,326,345],maxdepth:301,maxdiff:[193,211,414,425],maximum:[56,60,67,82,96,107,122,123,152,168,225,227,253,256,257,258,259,260,281,296,301,359,367,374,376,377,390],maxiumum:279,maxlengthvalid:168,maxnum:390,maxrotatedfil:383,maxsplit:367,maxthread:359,maxval:[377,390],maxvalu:377,maxwidth:376,may_use_red_door:41,mayb:[13,14,15,19,20,22,41,67,74,76,77,79,81,83,85,91,92,97,102,105,106,111,113,114,115,118,121,123,124,127,129,148,149,155,176,203,210,235,242,332],mccp:[32,147,165,166,310,319,322,443],mccp_compress:327,md5:146,meadow:[46,74,77,122,377],mean:[3,4,5,6,8,9,11,13,14,15,16,18,19,20,22,28,32,33,34,35,36,39,42,44,46,48,52,54,55,58,60,62,65,67,68,70,73,75,77,79,80,81,82,83,84,87,88,93,99,100,101,104,106,109,111,112,113,114,115,116,117,120,121,124,126,127,129,130,134,135,138,139,142,143,146,155,157,158,159,163,168,169,170,176,182,189,210,213,218,232,242,253,270,272,281,284,291,294,296,300,301,305,309,314,338,354,362,364,367,374,376,377,381,383,386,387,443],meaning:[177,193],meaningless:130,meant:[20,31,35,42,48,49,51,52,56,65,74,77,78,97,101,109,113,115,122,139,148,175,204,218,226,243,251,253,256,257,258,259,260,271,273,286,296,319,368,390],meanwhil:31,measaur:5,measur:[5,130,155,174,191,281,345,346,390],meat:[119,125,128,131,133,141],mech:[103,443],mechan:[4,18,19,22,27,28,41,42,48,93,96,100,102,107,120,121,127,129,130,139,168,169,173,219,224,243,259,290,301,309,314,318,324,332,343,354,364,372,375,379,385,436,441,443],mechcmdset:91,mechcommand:91,mechcommandset:91,meck:91,med:64,medan:64,media:[56,113,342,359,386,398,399,400,402,403,404,405,406,430],median:81,mediat:127,mediev:210,medium:56,mediumbox:323,meet:[2,92,113,120,122,231,273,358],mele:[122,260],melt:[209,210],mem:192,member:[13,18,50,67,76,123,187,188,190,296,390],membership:[76,90,111],memori:[5,20,22,31,48,53,55,67,70,73,93,98,114,116,146,154,155,168,192,196,296,308,309,347,357,362,366,375,381,385,390,443],memoryerror:149,memoryusag:347,memplot:[165,166,310,344,443],meni:204,mental:139,mention:[8,13,14,15,16,22,31,32,47,54,62,69,70,76,81,91,94,98,99,109,111,116,121,139,149,155,176,214],menu:[0,7,9,20,41,44,53,80,85,86,92,102,112,121,122,123,128,130,148,149,150,163,165,166,182,199,204,215,216,219,225,251,254,268,297,301,312,314,366,384,443],menu_cmdset:374,menu_data:28,menu_edit:204,menu_login:[165,166,199,443],menu_modul:374,menu_module_path:374,menu_quit:204,menu_setattr:204,menu_start_nod:251,menu_templ:374,menuchoic:[28,374],menudata:[217,225,268,298,374],menudebug:[28,374],menufil:374,menunode_fieldfil:225,menunode_inspect_and_bui:106,menunode_shopfront:106,menunode_treeselect:254,menunodename1:28,menunodename2:28,menunodename3:28,menuopt:254,menutest:108,menutre:374,merchandis:123,merchant:80,mercuri:69,mere:[135,192,227],merg:[6,11,22,28,30,77,84,85,88,97,99,101,111,114,115,126,132,173,174,175,176,265,271,273,301,304,338,374,443],merge_prior:374,merger:[20,82,84,175,176],mergetyp:[20,28,129,175,265,271,372,374,375],merit:126,mess:[5,11,13,18,19,57,85,123,155,254],messag:[5,8,9,11,14,16,18,19,22,23,24,27,28,29,30,32,33,35,37,40,42,44,51,54,61,62,64,70,71,74,77,79,80,82,85,86,88,89,91,93,94,97,100,101,104,105,106,107,108,109,116,118,121,122,123,126,127,129,130,136,140,145,149,150,152,155,158,159,161,163,168,169,173,176,177,180,182,187,188,189,193,195,196,197,198,203,204,206,209,211,218,219,221,225,226,230,232,236,240,241,243,247,253,256,257,258,259,260,262,264,265,266,268,269,270,271,272,275,282,296,314,316,323,325,326,332,333,334,337,338,340,342,351,353,355,357,359,370,372,374,375,377,383,387,390,443],message_rout:51,message_search:197,message_templ:130,message_transform:196,messagepath:443,messagewindow:51,messeng:264,messsag:221,meta:[35,48,113,159,364,381,398,399,400,402,403,406,410,413,416,430],metaclass:[48,67,177,364],metadata:[35,247,316],metavar:272,meteor:105,meter:[78,227,253],method:[3,8,11,12,13,18,19,20,28,30,31,33,37,39,41,44,45,46,47,48,51,53,54,58,62,65,67,68,76,77,79,80,81,82,83,85,87,88,92,93,94,95,96,100,101,102,107,108,110,111,112,115,117,118,126,127,129,130,135,136,137,138,140,141,142,159,161,168,170,171,173,175,176,177,179,182,183,187,189,190,192,193,196,197,198,202,203,204,209,211,212,216,218,221,222,223,224,229,232,239,240,241,242,243,246,247,249,252,253,256,257,258,259,260,265,266,268,269,270,271,272,273,275,279,282,284,286,287,288,291,292,294,296,303,308,309,311,316,319,320,321,323,324,325,326,327,332,334,337,340,342,343,345,346,350,352,353,354,355,357,362,364,367,368,370,372,374,375,376,377,378,381,382,383,384,385,387,388,389,390,400,406,410,411,413,414,416,436,439,441,443],methodnam:[193,202,211,222,233,248,252,266,279,309,340,350,382,388,395,414,425,431],metric:[105,242],microsecond:13,microsoft:[82,149],mid:[69,94,138],middl:[22,81,94,155,257,279,367],middleman:151,middlewar:[165,166,396,420,443],midnight:[92,101],midst:120,midwai:60,mighht:107,might:[0,3,6,8,11,15,16,17,19,20,22,28,29,31,33,37,39,42,44,47,54,55,60,62,64,75,77,80,82,87,89,90,92,93,94,95,96,100,101,102,104,105,106,107,108,109,119,121,123,127,129,130,134,137,139,140,141,145,146,149,154,155,156,157,158,159,163,176,180,182,203,241,247,250,256,257,258,259,272,296,303,343,364,367,372,383,384,390,413,430],mighti:[18,82,94,114],migrat:[2,5,8,10,11,45,67,76,82,85,113,119,141,146,149,154,162,163,301,443],mike:182,million:[141,146],mime:370,mimic:[5,13,27,42,87,123,127,146,198,253,286,353,372],mimick:[27,88,127,345,372,375],mimim:365,min:[42,78,81,101,122,212,225,252,253,377,378],min_damag:258,min_dbref:363,min_heal:258,min_height:376,min_shortcut:[77,204],min_valu:430,min_width:376,mind:[14,15,28,54,55,84,87,98,99,103,116,117,120,121,122,124,126,139,142,146,148,203,227,232,241,316,390,443],mindex:174,mine:[58,80,123,158,377,394],mini:[39,58,82,87,113,114,115,443],miniatur:120,minim:[5,44,53,83,121,124,129,158,242,301],minimalist:[22,69,100],minimap:443,minimum:[44,77,79,88,100,123,127,225,253,256,257,258,259,260,319,359,364,376,377,385,390],minimum_create_permiss:411,minimum_list_permiss:411,mininum:376,minlengthvalid:168,minor:176,mint:[11,149,151],minthread:359,minu:[67,111,296,378],minut:[19,42,93,101,107,124,129,144,157,187,192,203,212,357,378,390],minval:[377,390],mirc:326,mirror:[44,83,116,144,153,165,166,199,261,443],mis:99,misanthrop:111,misc:24,miscelan:366,miscellan:[112,113],misconfigur:146,mismatch:[32,390],miss:[6,18,53,64,81,89,99,108,123,149,155,209,211,256,257,258,259,260,300,319,442],missil:[91,259],mission:102,mistak:[50,85],misus:155,mit:[144,367],mitig:[99,158,440],mix:[13,22,28,58,60,64,83,86,95,111,126,139,141,168,189,198,203,210,218,243,253,281,296,300,301,358,365,368,376,377,390],mixabl:218,mixer:218,mixer_flag:218,mixin:[165,166,300,348,396,413,416,429,433,434,435,436,438,441,443],mixtur:[104,218,377],mkdir:[2,76,149],mktime:101,mlocati:64,mmorpg:124,mob0:98,mob:[15,33,44,87,98,120,121,165,166,176,182,199,267,271,301,368,443],mob_data:98,mob_db:98,mob_vnum_1:98,mobcmdset:269,mobdb:98,mobil:[15,41,103,120,123,152,161,269,291],moboff:269,mobon:269,mock:[8,193,210,308,388],mock_delai:193,mock_random:266,mock_repeat:193,mock_tim:[252,350],mockdeferlat:388,mockdelai:388,mocked_idmapp:350,mocked_o:350,mocked_open:350,mockrandom:211,mockval:388,mod:[145,252,253,300],mod_import:390,mod_import_from_path:390,mod_or_prototyp:300,mod_prototype_list:300,mod_proxi:443,mod_proxy_http:145,mod_proxy_wstunnel:145,mod_secur:158,mod_ssl:443,mod_sslj:145,mod_wsgi:443,mode:[3,5,7,12,20,26,27,28,32,53,61,73,78,83,102,109,114,116,117,123,129,130,135,141,144,145,151,157,158,165,181,189,192,194,202,205,236,265,269,279,281,284,296,314,319,324,331,342,343,352,368,372,374,377,383,390,443],mode_clos:343,mode_init:343,mode_input:343,mode_keepal:343,mode_rec:343,model:[13,31,33,35,36,42,46,47,48,49,50,58,61,73,76,85,88,102,111,123,127,134,140,159,165,166,167,168,170,195,196,197,253,285,293,296,302,305,309,310,320,361,362,363,365,366,371,379,380,382,386,387,390,398,399,400,402,403,404,405,406,410,413,430,434,435,436,440,441,443],model_inst:386,modeladmin:[400,402,403,404,405,406],modelattributebackend:362,modelbackend:422,modelbas:381,modelchoicefield:[398,403],modelclass:[13,46],modelform:[398,399,400,402,403,404,406,430],modelmultiplechoicefield:[398,400,402,403],modelnam:[177,196,286,288,364],modelseri:413,modelviewset:416,moder:[90,96,203],modern:[13,16,54,69,82,95,139,144,151,158,327],modif:[11,22,30,53,65,75,80,84,92,107,130,145,157,253,360,430,443],modifi:[0,9,11,12,13,18,20,22,28,30,31,37,41,42,44,48,49,51,52,60,62,73,74,75,77,78,79,80,82,83,85,86,87,90,92,96,97,98,99,100,106,108,109,113,115,116,117,118,120,122,123,124,126,127,130,133,136,143,146,157,159,163,168,176,189,196,204,209,210,213,218,219,221,224,226,232,240,243,250,252,253,256,257,258,259,260,270,272,288,294,296,301,309,364,368,374,381,386,389,398,419,430,434,435,436,438,440,441,443],modul:[0,4,5,6,8,13,14,16,19,20,22,25,27,28,30,31,32,33,37,42,44,45,48,53,62,65,69,73,79,82,83,84,85,87,91,94,98,99,100,101,104,105,106,108,109,112,113,114,115,117,122,123,126,128,130,132,135,138,150,154,156,158,159,163,173,174,176,177,182,184,185,186,189,191,193,203,204,205,206,207,209,210,211,212,213,214,216,218,221,223,224,225,227,229,230,231,233,241,242,243,248,249,250,252,253,254,256,257,258,259,260,265,269,270,271,272,275,281,283,286,291,292,295,296,299,300,301,305,307,308,309,311,313,314,318,319,323,331,333,334,337,338,341,343,345,346,347,352,354,355,356,362,364,365,366,367,368,369,370,371,372,373,374,375,377,378,388,390,443],module_path:283,module_with_cal:377,modulepath:323,moifi:224,mold:117,mollit:29,moment:[20,31,47,64,73,80,91,99,106,107,114,122,168,281,304],mona_lisa_overdr:118,monei:[67,76,121,122,123,124,155],monetari:[84,89,203],monitor:[5,34,68,86,305,319,338,381,443],monitor_handl:[34,86,165,305],monitorhandl:[24,32,165,166,302,443],monlit:111,mono:92,monster:[31,37,41,88,94,99,114,117,121,122,123,128,182,301],monster_move_around:117,month:[84,101,151,155,212,378,383,390],monthli:101,montorhandl:34,moo:[69,72,87,99,119,144,289,377],mood:[80,120,123,124,253],moon:[92,101,105,111],moonlight:111,moonlit:111,moor:120,moral:6,more:[2,3,4,5,6,8,11,12,13,14,15,16,17,18,19,20,22,25,27,28,29,30,31,32,35,36,37,39,41,42,44,46,47,48,51,53,54,55,57,61,62,63,64,65,67,68,69,70,75,76,77,78,80,81,82,83,84,87,88,89,90,91,92,93,96,97,98,100,101,102,103,106,107,108,109,111,112,113,114,116,117,118,119,120,121,122,124,125,126,127,129,130,131,132,134,136,138,139,140,141,142,144,146,149,151,152,153,154,155,157,158,159,163,165,167,168,171,174,175,176,181,182,187,188,189,192,193,194,196,199,203,204,205,206,209,212,214,216,218,224,227,232,235,241,242,243,250,251,253,254,256,257,258,259,260,265,269,270,271,272,273,281,282,283,284,289,294,296,300,301,324,326,329,338,345,346,355,360,362,363,364,367,368,370,371,372,373,374,375,376,377,381,387,390,391,403,412,413,430,439,443],more_command:375,more_funcparser_cal:30,morennanoth:193,morennthird:193,moreov:[42,155],morn:[122,224,225],morph_engli:393,morpholog:393,mortal:[31,120],most:[3,5,6,9,13,14,17,18,19,20,22,25,28,31,32,33,35,37,44,45,47,48,49,50,51,53,54,58,60,62,65,67,68,69,70,72,74,75,76,77,79,80,81,82,83,84,85,88,90,92,95,96,98,99,100,101,102,105,107,108,109,110,111,112,113,116,117,118,119,120,122,123,124,126,127,129,130,135,138,139,141,145,146,149,155,157,158,159,162,168,171,175,176,179,182,190,193,198,204,209,210,223,227,242,243,250,253,256,257,258,259,260,279,281,282,288,289,292,295,296,300,301,304,308,337,342,352,362,363,364,365,374,375,381,382,390,435,443],mostli:[28,48,51,53,62,83,99,102,107,127,130,155,175,194,213,242,258,273,282,334,398],motiv:[14,15,37,84,87,89,121,325,326,332,333,334,337,342,343,354,355,443],mount:157,mountain:[69,82],mous:[51,59,374],mouth:275,movabl:218,move:[15,16,18,22,27,28,29,37,75,76,77,80,81,82,83,90,91,94,97,100,102,105,106,107,113,114,116,117,120,121,122,123,128,129,135,139,141,142,144,146,148,149,176,182,188,203,204,218,219,221,225,231,250,253,256,257,258,259,260,269,270,271,273,275,282,287,291,296,346,364,368,375,443],move_around:[114,117],move_callback:192,move_delai:192,move_hook:296,move_obj:273,move_posit:218,move_to:[37,75,106,126,138,250,296],movecommand:97,moved_obj:[219,271,273,296],moved_object:296,movement:[41,83,100,122,138,192,250,256,257,258,259,260,281,282,296,443],mover:260,mptt:90,mratio:[174,191],msdp:[65,319,338,443],msdp_list:319,msdp_report:319,msdp_send:319,msdp_unreport:319,msdp_var:338,msg:[3,8,12,13,14,18,19,22,23,27,28,29,33,34,37,39,44,51,54,62,67,68,72,75,77,79,80,82,85,86,92,93,94,95,97,98,100,101,105,106,107,108,114,115,116,117,126,127,129,130,136,138,152,165,168,169,177,179,183,187,193,196,197,198,209,218,221,226,236,247,253,264,265,272,281,282,283,284,292,296,325,326,353,368,370,372,374,375,383,390,399,400,406,443],msg_all:129,msg_all_sess:[22,177],msg_already_sit:126,msg_arriv:75,msg_channel:187,msg_char:218,msg_cinemat:223,msg_content:[19,22,30,37,42,58,75,80,91,101,130,136,138,140,296],msg_db_tag:400,msg_help:189,msg_leav:75,msg_locat:296,msg_other:203,msg_other_sit:126,msg_receiv:296,msg_room:218,msg_self:296,msg_set:365,msg_sitting_down:126,msg_standing_fail:126,msg_standing_up:126,msg_system:218,msgadmin:400,msgform:400,msglauncher2port:[314,323],msgmanag:[197,198],msgobj:196,msgportal2serv:323,msgserver2port:323,msgstatu:[314,323],msgtaginlin:400,mssp:[113,159,165,166,310,322,443],mtt:341,much:[0,1,3,5,8,13,14,15,16,28,31,33,37,42,47,48,53,54,58,64,70,75,77,79,81,82,83,84,88,90,92,94,96,98,101,102,105,107,108,109,111,114,115,116,117,119,120,123,124,126,127,128,129,137,138,140,141,142,144,146,149,155,171,176,181,190,204,212,213,242,243,253,254,260,265,270,281,354,362,365,367,368,369,376,390,408,419],muck:[99,119],mud:[6,9,16,32,33,36,40,44,47,51,58,60,62,68,69,73,74,77,78,81,82,87,88,91,95,98,107,109,113,116,120,121,124,127,129,135,139,140,145,146,147,149,153,155,156,157,159,161,162,163,171,176,179,260,268,311,327,328,329,334,337,338,341,368,378,443],mudbyt:144,mudconnector:[144,194],mudderi:144,muddev:149,mudform:373,mudinfo:[108,194],mudlab:144,mudlet:[147,329],mudmast:147,mudramm:147,mudstat:194,muhammad:389,mukluk:147,mult:[30,41,377],multi:[20,28,44,54,77,78,85,87,114,118,119,120,121,126,130,157,159,174,192,210,218,243,254,279,281,282,289,296,355,374,390,438,443],multiaccount_mod:6,multidesc:[165,166,199,443],multilin:389,multilink:[83,282],multimatch:[20,118,174,243,296,377,390],multimatch_str:[168,243,296,390],multimedia:51,multipl:[11,15,18,19,20,22,30,31,34,37,41,44,45,47,48,50,55,60,62,68,69,77,78,79,83,88,95,100,101,111,113,114,116,120,121,127,130,144,146,155,159,168,173,175,180,181,182,187,189,191,192,193,207,209,213,214,224,226,227,233,239,243,252,254,256,257,258,259,264,271,281,282,292,294,296,300,301,309,312,316,319,323,338,346,362,363,368,374,376,387,390,399,406,443],multiplay:[18,78,87,99,119,123,124,125,144],multipleobjectsreturn:[168,169,171,196,198,203,206,212,218,219,224,226,232,240,241,242,243,249,250,251,256,257,258,259,260,262,264,265,269,270,271,273,283,284,288,295,296,300,304,307,321,347,362,365,378,382],multipli:[30,116],multisess:[61,102,374,443],multisession_mod:[12,22,44,50,88,102,122,123,130,141,147,168,179,183,205,226,296,355],multisession_modd:28,multitud:[60,82,99],multumatch:296,mundan:91,murri:390,muscular:122,muse:144,mush:[2,69,76,78,87,103,119,127,129,144,207,239,443],mushclient:[32,147,319,329],musher:144,mushman:69,music:52,musoapbox:[99,144],must:[0,5,6,8,9,11,12,13,16,20,22,27,28,30,31,32,33,34,35,36,37,39,41,42,46,47,48,49,50,51,52,53,54,58,59,62,64,65,70,73,74,75,81,83,84,85,88,90,92,94,98,100,101,104,106,108,110,113,114,115,116,117,118,121,122,124,126,129,130,134,135,141,145,147,149,150,151,152,153,155,157,158,159,163,169,174,175,177,182,187,193,196,197,198,203,206,207,209,212,214,218,221,240,242,243,247,253,254,256,257,258,259,260,265,268,270,271,281,282,284,286,288,289,291,296,299,300,305,309,314,319,332,334,337,354,356,357,362,363,364,367,368,369,370,371,372,373,374,375,377,378,384,385,386,387,389,390,391,393,399,406,413,421,438,439,443],must_be_default:176,mustn:83,mutabl:[371,443],mute:[17,18,168,187,196],mute_channel:187,mutelist:[18,196],mutltidesc:239,mutual:[265,363],mux2:[72,194],mux:[22,61,69,87,91,100,109,119,158,172,190,207,443],mux_color_ansi_extra_map:207,mux_color_xterm256_extra_bg:207,mux_color_xterm256_extra_fg:207,mux_color_xterm256_extra_gbg:207,mux_color_xterm256_extra_gfg:207,muxaccountcommand:[190,236],muxaccountlookcommand:179,muxcommand:[22,86,92,93,94,95,97,100,105,108,130,165,166,172,178,179,180,181,182,187,188,189,191,192,194,206,213,214,216,224,230,236,239,240,249,251,258,259,271,275,296,372,443],mvattr:[26,108,182],mxp:[32,59,147,165,166,189,310,319,322,334,337,367,374,389,390,443],mxp_pars:329,mxp_re:367,mxp_sub:367,mxp_url_r:367,mxp_url_sub:367,my_callback:356,my_datastor:67,my_func:117,my_funct:94,my_github_password:11,my_github_usernam:11,my_identsystem:36,my_object:94,my_port:62,my_portal_plugin:62,my_script:42,my_server_plugin:62,my_servic:62,my_word_fil:242,myaccount:46,myaccountnam:118,myapp:67,myarx:76,myattr:[13,168],mybool:13,mybot:187,mycar2:36,mychair:46,mychan:18,mychannel1:187,mychannel2:187,mychannel:[18,55,187],mycharact:104,mychargen:28,mycmd:[22,31,314],mycmdget:115,mycmdset:[20,22,108,115],mycommand1:20,mycommand2:20,mycommand3:20,mycommand:[20,22,31,65,95,108,115,118,193],mycommandtest:193,mycompon:51,myconf:2,mycontrib:8,mycss:51,mycssdiv:51,mycustom_protocol:62,mycustomchannelcmd:18,mycustomcli:62,mycustomview:73,mydatastor:67,mydbobj:13,mydefault:30,mydhaccount:157,mydhaccountt:157,mydhacct:157,mydict:13,myevennia:153,myevilcmdset:[20,175],myevmenu:28,myfix:11,myformclass:53,myfunc:[8,47,54,390],myfuncparser_cal:30,mygam:[0,3,5,7,8,9,11,12,13,14,15,18,19,20,25,28,32,33,37,41,42,48,49,50,51,53,62,64,67,73,76,79,81,82,83,85,86,91,92,95,97,98,99,100,101,102,104,105,106,108,112,113,114,115,116,117,119,126,127,129,130,132,134,136,137,138,141,142,146,148,149,150,151,152,154,155,157,159,162,163,204,205,207,210,224,236,239,249,250,253,276,278,339,388,390],mygamedir:85,mygamegam:104,mygrapevin:187,mygreatgam:53,mygreatpwd:149,myhandl:45,myhousetypeclass:182,myinstanc:67,myircchan:187,mykwarg:28,mylayout:51,mylink:85,mylist2:13,mylist:[6,13,364],mylog:19,mymap:83,mymenu:28,mymethod:98,mymodul:47,mymud:[7,145],mymudgam:155,mynam:[123,157],mynestedlist:371,mynod:28,mynoinputcommand:22,mynpc:130,myobj1:46,myobj2:46,myobj:[13,19,33,42,182,309],myobjectcommand:92,myothercmdset:20,myownfactori:62,myownprototyp:41,mypassw:214,mypassword:49,mypath:8,myplugin:51,mypobj:13,myproc:62,myproc_en:62,myprotfunc:41,myrecip:79,myreserv:30,myroom:[42,46,98,111,182],myros:37,myscript:[42,46,48],myself:[13,58,124,377,394],myserv:214,myservic:62,mysess:44,mysql:[2,9,88,390,443],mysqlclient:146,myst:443,mysteri:[31,36,78,154],myston:118,mystr:13,mytag:51,mytestview:53,mythic:120,mytick:309,mytickerhandl:309,mytickerpool:309,mytrait:253,mytup1:13,mytup:13,mytupl:13,myusernam:49,myvar:22,myview:73,myxyzroom:83,naccount:355,nail:209,naiv:[177,196,273,286,288,364],nake:22,name1:182,name2:182,name:[2,3,4,5,7,8,9,10,11,12,13,14,15,16,18,20,22,26,28,29,30,31,32,33,34,36,37,39,41,42,44,45,46,48,49,50,51,53,54,57,58,62,63,65,67,68,70,73,74,75,76,77,78,79,80,81,82,83,85,88,90,92,94,97,98,99,100,101,102,104,105,106,107,108,109,110,111,112,113,115,116,117,118,119,120,121,122,126,129,130,132,134,135,138,139,140,141,142,144,146,147,148,150,151,152,153,154,155,157,158,159,162,163,165,168,169,170,171,173,174,175,176,177,179,180,182,187,188,189,190,191,192,193,194,196,197,198,204,205,206,209,210,212,214,216,218,219,221,223,225,229,231,232,235,240,241,242,243,249,252,253,254,258,259,269,271,272,273,275,281,282,283,284,286,287,288,289,294,295,296,300,301,303,304,305,307,309,314,317,319,320,321,323,324,326,331,334,337,338,341,342,343,346,355,357,359,362,363,364,365,367,368,369,370,372,373,374,375,377,381,382,383,384,386,387,389,390,391,393,394,399,406,410,414,415,416,421,422,430,435,436,441,443],namecolor:254,namedtupl:229,nameerror:[3,116],namelist:236,namesak:6,namespac:[48,51,102,232,272,301,357,368,407],namn:64,napoleon:85,narg:272,narr:260,narrow:[49,83,107,115,123,126],nativ:[3,42,49,58,68,85,111,123,246,357,359,441],nattempt:28,nattribut:[28,48,129,182,301,353,362,364,370,374,443],nattributehandl:362,nattributeproperti:[13,362],natur:[13,16,18,19,46,68,87,144,169,376],natural_height:376,natural_kei:362,natural_width:376,navbar:53,navig:[7,9,28,76,81,82,83,85,141,142,260,438],naw:[29,147,165,166,310,322,443],nbsp:389,nchar:137,nclient:345,ncolumn:376,ncurs:165,ndb:[13,14,22,28,42,44,48,77,92,94,129,168,171,192,295,304,353,364,374],ndb_:[41,182,301],ndb_del:353,ndb_get:353,ndb_set:353,ndk:154,nearbi:[83,175,176,177,260],nearli:[113,126,367],neat:[75,132,430],neatli:[69,390],necess:62,necessari:[2,11,48,60,62,69,75,77,83,90,96,99,100,107,112,113,121,136,138,146,163,176,177,198,205,218,232,247,271,272,282,300,301,343,368,374,376,377,384,386,390,399,406],necessarili:[41,68,85,99,120,155,390],necessit:356,neck:[13,41,206],neck_armor:13,neck_cloth:13,necklac:[122,206],need:[0,2,3,5,6,7,8,9,10,11,12,13,14,15,16,18,19,20,22,25,27,28,30,31,32,33,34,36,37,41,42,44,46,47,48,50,51,52,53,54,57,58,60,62,63,64,65,67,68,70,73,74,76,77,78,79,80,81,82,83,84,85,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,104,105,106,107,108,109,111,112,113,114,116,117,118,120,121,122,124,126,127,129,130,131,132,134,135,136,138,139,141,142,144,145,146,148,149,150,151,152,153,154,155,156,157,158,159,162,163,168,169,171,175,177,179,182,187,188,190,193,196,203,204,209,210,214,218,219,221,223,224,226,230,231,232,233,240,241,242,243,253,254,256,257,258,259,260,265,269,270,271,272,273,275,281,282,283,286,292,295,296,300,301,303,314,316,319,323,331,338,343,345,353,354,355,359,362,364,365,367,368,370,374,375,376,377,378,384,385,387,390,393,399,401,406,408,435,439,443],need_gamedir:314,needl:240,needless:114,neg:[101,139,175,372,390],negat:[60,111,292,393],negoti:[203,328,330,332,341,355],negotiate_s:330,neighbor:[96,123,282],neither:[6,13,127,148,163,189,213,300,338,362,365,374,391],nenter:28,neophyt:253,nerror:64,nest:[4,13,15,22,28,30,31,168,182,243,254,291,296,301,338,371,377,443],nested_mut:13,nested_r:182,nestl:82,neswmaplink:[83,282],net:[76,99,123,144,149,153,155,169,187,194,327,328,338,341,355],netrc:11,network:[62,70,86,87,88,89,124,144,146,150,152,153,155,158,161,169,187,325,326,331,352,355,443],neu:204,neural:123,neutral:[30,58,226,377,394],never:[0,1,8,11,13,15,19,20,22,28,30,35,39,47,48,55,60,67,68,83,88,98,101,107,113,114,116,117,118,121,122,123,126,136,138,141,148,151,159,168,192,231,242,243,253,259,260,269,276,292,296,353,362,371,390],nevertheless:[0,28,67,139,179,204],new_alias:[177,294],new_arriv:271,new_attrobj:362,new_channel:[100,187],new_charact:269,new_coordin:273,new_create_dict:218,new_datastor:67,new_destin:294,new_goto:374,new_hom:294,new_kei:[45,177,294,296,303],new_loc:[182,294],new_lock:[294,303],new_menu:204,new_nam:[45,182],new_name2:182,new_obj:[33,221,223,296,301,303],new_obj_lockstr:182,new_object:[41,301],new_permiss:294,new_po:218,new_posit:218,new_progress:219,new_raw_str:174,new_room_lockstr:182,new_ros:37,new_scor:219,new_script:42,new_typeclass:[168,364],new_typeclass_path:48,new_valu:[34,362],new_word:390,newbi:[87,92],newcom:[22,123,135],newer:76,newindex:254,newli:[11,49,63,80,100,111,116,141,182,196,204,209,221,223,236,241,272,281,284,296,301,307,370],newlin:[22,51,189,368,376],newnam:[22,182,364],newpassword:180,newstr:51,nexist:77,nexit:[8,137],next:[0,2,3,7,11,14,15,20,22,27,28,29,30,31,33,37,39,42,49,50,51,52,53,54,55,58,60,64,65,67,75,76,77,79,80,81,82,83,85,88,90,91,92,93,94,95,96,98,100,101,103,104,106,108,109,111,112,113,114,116,117,118,119,120,121,122,123,124,126,127,129,130,138,141,142,144,146,150,151,153,154,155,156,157,158,163,204,212,218,221,239,254,256,257,258,259,260,270,282,292,314,368,374,375,378,390,438,443],next_nod:28,next_stat:[218,221],next_turn:[256,257,258,259,260],nextnod:374,nextnodenam:374,nextrpi:144,nfkc:168,ng2:376,nginx:145,nice:[8,19,31,53,55,74,75,77,81,82,83,100,101,104,114,115,121,122,148,155,157,182,203,206,243,300,443],nicer:[109,116],niceti:182,nick:[12,13,18,24,26,32,37,72,99,108,144,168,169,182,187,188,196,243,295,296,326,362,363,413,443],nick_typ:36,nickhandl:[13,36,362],nicklist:[169,187,326],nicknam:[11,26,36,37,72,188,243,295,296,326,362,363],nickreplac:362,nickshandl:413,nicktemplateinvalid:362,nicktyp:[243,296],nifti:[115,145],night:[30,100,121,122,140,151,224,443],nine:63,nineti:391,nit:101,nline:383,nmisslyckad:64,nnode:282,no_act:374,no_channel:[20,22,175,374],no_db:[300,301],no_default:[48,168,364],no_exit:[20,22,129,175,265,268,374],no_gmcp:338,no_log:176,no_match:204,no_mccp:327,no_more_weapons_msg:270,no_msdp:338,no_mssp:328,no_mxp:329,no_naw:330,no_obj:[20,175,265,268,374],no_of_subscrib:400,no_prefix:[168,177,179,180,181,182,187,188,189,190,191,192,193,194,196,203,204,205,206,209,210,213,214,216,224,225,226,230,236,239,240,243,249,250,251,254,256,257,258,259,260,265,269,270,271,272,275,296,345,372,374,375],no_superuser_bypass:[168,196,292,296,364],no_tel:33,noansi:193,nobj:137,nocaptcha:141,nocaptcha_recaptcha:141,nocolor:[104,319,334,337,342,343],nod:122,nodaemon:7,node1:[28,374],node2:[28,374],node3:[28,374],node:[14,41,106,217,225,254,268,276,279,281,282,283,284,298,312,374,443],node_abort:28,node_apply_diff:298,node_attack:28,node_background:28,node_betrayal_background:28,node_border_char:[217,374],node_create_room:217,node_destin:298,node_examine_ent:298,node_exit:28,node_formatt:[28,217,225,374],node_four:28,node_game_index_field:312,node_game_index_start:312,node_hom:298,node_index:[276,279,282,298,374],node_join_room:217,node_kei:298,node_loc:298,node_login:28,node_mssp_start:312,node_mylist:28,node_on:28,node_opt:217,node_or_link:[280,282],node_parse_input:28,node_password:28,node_prototype_desc:298,node_prototype_kei:298,node_prototype_sav:298,node_prototype_spawn:298,node_quit:217,node_readus:28,node_select:28,node_set_desc:217,node_set_nam:28,node_start:312,node_test:28,node_usernam:28,node_validate_prototyp:298,node_view_and_apply_set:312,node_view_sheet:28,node_violent_background:28,node_with_other_nam:374,nodebox:393,nodefunc:374,nodekei:374,nodenam:[28,374],nodetext:[28,217,225,298,374],nodetext_formatt:[28,217,225,298,374],noecho:[116,192],noerror:296,nofound_str:[168,243,296,390],nogoahead:336,nohom:370,nois:[91,126],noisi:[155,311,316,324,334,337,345,359],noloc:182,nomarkup:[32,104],nomatch:[77,191,204,372,390],nomatch_exit:77,nomatch_single_exit:77,nomigr:8,nomin:436,non:[11,15,16,18,19,20,22,27,29,30,31,32,39,41,42,44,48,51,53,60,67,68,74,77,81,83,85,87,88,89,90,94,97,100,101,105,109,111,114,115,118,121,123,126,139,150,163,168,169,170,171,173,175,182,187,192,194,196,198,210,213,221,232,241,249,251,253,254,270,275,284,286,287,291,295,296,299,300,301,304,305,307,309,314,323,337,338,352,353,355,362,364,367,370,371,372,374,375,376,377,387,390,413,416,443],nonc:342,nondatabas:[353,364],none:[3,5,12,13,14,15,16,18,20,22,27,28,30,32,33,34,36,42,44,46,49,54,58,60,62,65,67,68,75,77,81,82,83,88,92,95,96,97,98,100,101,102,104,106,107,108,110,111,114,115,118,126,129,130,136,138,168,169,170,173,174,175,176,177,179,182,183,184,185,186,187,188,189,190,193,196,197,198,202,203,204,205,206,209,211,213,216,217,218,219,221,223,224,225,226,229,231,232,235,240,241,242,243,249,251,253,254,256,257,258,259,260,264,265,268,269,270,271,272,273,275,276,279,280,281,282,283,284,286,287,289,291,292,294,295,296,298,300,301,303,305,306,308,309,311,312,314,316,318,320,323,324,325,326,333,334,342,343,345,353,354,355,357,358,359,362,363,364,365,367,368,369,370,371,372,373,374,375,376,377,378,381,383,385,386,387,390,391,394,395,398,399,400,402,403,404,406,408,410,414,416,422,425,430,435,438,441],nonpc:130,nonsens:242,noon:[33,64,109,127],nop:[337,443],nopkeepal:[147,337],nor:[3,7,13,14,20,64,69,83,94,114,123,129,139,148,213,214,272,296,300,338,362,365],norecapcha:141,norecaptcha_secret_kei:141,norecaptcha_site_kei:141,norecaptchafield:141,normal:[4,5,6,8,9,12,13,14,15,16,18,19,20,22,28,30,31,32,33,35,36,39,41,44,46,48,50,51,53,54,57,60,63,64,65,67,68,70,73,74,76,78,80,81,82,83,85,87,88,91,92,94,95,97,98,99,100,101,102,104,105,106,108,109,111,114,115,116,117,120,122,129,130,132,138,139,142,146,153,154,155,157,159,163,168,169,171,173,174,175,176,177,179,182,189,192,193,196,202,203,209,212,213,218,253,256,257,258,259,260,265,269,272,273,281,282,284,286,295,296,298,301,309,314,323,326,327,328,330,332,346,353,355,361,362,363,364,367,368,371,374,375,381,387,389,390,396,413],normal_turn_end:129,normalize_nam:296,normalize_usernam:168,north:[37,59,75,77,80,81,82,83,97,109,126,138,182,204,250,275,281,282,283,346],north_south:82,northeast:[83,109,182,273,282],northern:[77,82],northwest:[83,182,281,282,283],nose:362,not_don:359,not_error:314,not_found:[13,182],notabl:[5,6,11,18,54,62,76,149,177,182,193,203,318,364,367,371,390],notat:[4,53,182,367,390],notdatabas:48,note:[0,3,5,7,9,10,11,12,13,14,18,19,26,30,32,33,37,39,41,42,44,45,47,48,51,53,55,57,58,59,60,64,65,67,68,70,73,75,76,79,81,83,88,90,91,92,94,99,100,101,102,106,108,109,111,114,115,116,117,118,119,120,121,123,126,127,129,130,134,135,138,139,141,142,146,147,149,154,155,157,158,161,163,165,168,169,174,175,176,177,179,182,183,184,187,188,189,190,192,193,194,196,197,203,205,206,207,209,210,212,213,214,218,223,224,226,231,232,235,239,240,241,242,243,249,250,253,254,256,257,258,259,260,265,271,272,273,275,281,282,283,284,286,291,292,294,295,296,300,301,303,309,311,314,319,323,324,326,327,331,332,333,334,337,338,339,341,342,345,347,348,353,355,359,360,362,363,364,365,367,368,369,370,371,372,373,374,375,376,377,378,381,383,385,386,387,390,398,399,411,413,416,419,438,443],notebook:443,notepad:[119,149],noteworthi:85,notfound:390,notgm:100,noth:[3,8,13,15,19,22,30,37,47,54,65,69,75,77,82,83,94,98,99,101,106,108,109,114,116,118,123,126,129,168,182,191,254,256,259,260,269,273,282,296,307,326,362,364,374],nother:137,notic:[2,3,11,14,22,54,55,75,77,80,83,84,89,94,96,101,102,107,109,113,114,123,126,135,138,139,146,204,262,327,437],notif:[11,51,90,154,236],notifi:[118,156,161,209,256,257,258,259,260,271,300],notificationsconfig:90,notimplementederror:337,notion:[47,79,101,128,129,253],noun:[58,242,243],noun_postfix:242,noun_prefix:242,noun_transl:242,nov:64,now:[0,2,6,7,8,9,11,12,13,15,18,19,20,22,28,30,33,35,37,38,41,42,44,47,48,49,51,52,53,54,55,58,60,67,69,73,74,75,76,77,79,80,81,82,83,87,88,91,92,93,94,96,98,99,100,101,102,104,105,106,107,108,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,126,127,130,131,132,134,135,136,138,139,141,142,144,146,149,150,151,152,153,154,155,156,157,158,162,163,176,187,189,203,211,212,225,232,253,254,265,273,277,292,296,326,334,355,386,388,390,442],nowher:[82,116,123,282],noxterm256:337,npc:[13,22,28,39,76,80,82,88,121,127,203,251,291,443],npcname:136,npcshop:106,nprot:137,nr_start:306,nroom:[77,137],nroom_desc:8,nrow:376,nsmaplink:[83,281,282],nsonewaymaplink:[83,282],ntf:149,nthe:265,nuanc:60,nudg:[143,265,359],nuisanc:158,nulla:29,num:[30,33,81,243,296],num_lines_to_append:383,num_object:111,num_objects__gt:111,num_tag:111,num_total_account:170,number:[0,2,5,6,8,11,13,14,19,20,22,27,28,30,35,36,42,44,45,46,47,48,49,53,54,55,73,74,75,81,82,83,85,88,91,99,100,101,104,106,108,111,114,115,116,117,118,120,123,126,127,129,130,137,142,146,151,152,155,156,157,159,165,168,169,170,174,175,176,180,182,187,188,189,197,198,206,209,212,213,218,225,227,229,231,232,235,241,242,243,254,256,257,258,259,260,275,279,281,282,284,294,296,300,301,306,312,314,319,325,326,328,332,345,346,355,357,359,362,363,365,367,368,370,372,374,375,376,377,378,381,383,387,390,393,400,415,416,430,443],number_of_dummi:314,number_tweet_output:137,numberfilt:410,numbertweetoutput:137,numer:[6,121,127,227,252,253,281,367,443],numpi:347,oak:210,oakbarkrecip:210,oakwood:210,obelisk:[120,270],obfusc:[78,242,243],obfuscate_languag:[242,243],obfuscate_whisp:[242,243],obj1:[6,13,30,39,41,118,182,209,216,240,260],obj1_search:216,obj2:[6,8,13,30,39,41,118,182,209,216,240,260,368],obj2_search:216,obj3:[13,118,182,209],obj4:[13,118],obj5:13,obj:[3,8,12,13,19,20,22,30,33,34,36,37,41,42,46,47,48,54,58,67,77,92,98,100,105,107,108,110,111,115,118,126,135,138,168,175,176,177,180,182,188,190,192,193,197,198,202,204,206,209,216,218,221,224,225,226,229,231,232,235,236,240,243,253,254,256,257,258,259,260,264,265,270,271,273,291,292,295,296,301,303,304,305,306,343,345,346,353,362,363,364,365,368,370,371,375,377,385,386,387,390,398,399,400,403,404,406,411,413,443],obj_desc:259,obj_detail:271,obj_kei:259,obj_nam:77,obj_prototyp:301,obj_to_chang:48,obj_typeclass:259,objattr:[270,291],objclass:[381,390],object1:22,object2:[22,203,296],object:[0,2,3,4,5,8,12,14,15,16,18,20,22,23,24,26,27,28,29,30,31,32,34,35,36,39,41,45,47,48,49,51,52,54,55,57,62,65,67,68,69,72,73,74,75,76,77,78,79,80,81,83,85,86,87,91,94,95,96,97,98,99,100,101,102,103,104,106,107,108,112,113,119,120,122,127,129,130,135,136,137,140,141,142,144,146,158,159,163,165,166,167,168,169,170,171,173,174,175,176,177,179,180,181,182,183,184,187,188,189,190,192,193,194,196,197,198,199,203,204,205,206,209,210,214,215,216,217,219,221,223,224,225,226,229,230,231,232,233,235,236,240,241,243,246,247,248,249,250,251,252,253,254,256,257,258,259,260,262,264,265,267,268,269,271,272,273,275,279,281,282,283,284,286,287,288,291,292,298,299,300,301,302,303,304,305,306,307,308,309,312,314,316,318,319,320,321,323,324,327,328,329,330,331,332,333,334,336,338,341,343,345,346,352,353,354,355,357,358,359,362,363,364,365,367,368,369,370,371,372,373,374,375,376,377,381,382,384,385,386,387,388,389,390,391,394,396,397,398,399,400,402,404,406,410,411,413,415,416,421,422,424,429,430,431,433,434,435,436,438,439,440,443],object_confirm_delet:441,object_detail:[436,441],object_from_modul:390,object_id:[142,403],object_or_list_of_object:58,object_pronoun:394,object_search:[142,294],object_subscription_set:295,object_tot:[170,294,303,363],object_typeclass:[388,431],objectadmin:[50,403],objectattributeinlin:403,objectcr:430,objectcreateform:[398,403],objectcreateview:[436,441],objectdb:[13,46,48,50,86,137,141,165,295,296,301,361,362,370,375,387,398,399,403,406,410,415],objectdb_db_attribut:403,objectdb_db_tag:[399,403,406],objectdb_set:[171,362,365],objectdbfilterset:[410,416],objectdbmanag:[294,295],objectdbseri:[413,416],objectdbviewset:[415,416],objectdeleteview:[436,441],objectdetailview:[435,436,441],objectdoesnotexist:[171,198,288,295,304,321,362,365,382],objecteditform:403,objectform:430,objectlistseri:[413,416],objectmanag:[284,294,296,363],objectnam:100,objectpuppetinlin:398,objects_objectdb:67,objectsessionhandl:[12,296],objecttaginlin:403,objectupd:430,objectupdateview:[436,441],objid:33,objlist:[30,41,377],objlocattr:[270,291],objmanip:182,objmanipcommand:182,objnam:[19,48,182],objparam:301,objs2:46,objsparam:301,objtag:291,objtyp:197,obnoxi:316,obs:364,obscur:[105,153,242,243],observ:[14,15,58,68,104,109,182,188,200,224,243,262,271,338,368,390],obtain:[5,22,75,96,107,149,155,157,204,270,443],obviou:[9,18,75,83,138,158,227,441],obvious:[15,44,69,75,81,87,90,138,365],occaecat:29,occas:9,occasion:[118,155],occat:116,occation:[123,376],occur:[3,22,42,51,54,76,92,99,191,241,258,272,292,296,308,346,374,383],occurr:[80,107,130,367],ocean:[120,155],oct:[116,117],odd:[77,81,121,139,158,281],odor:100,off:[2,13,15,18,20,22,27,28,31,32,33,42,45,47,53,60,62,63,67,68,69,73,75,79,81,83,87,88,94,104,109,110,116,118,119,121,124,126,128,130,139,146,147,155,157,158,163,168,177,192,193,194,196,206,210,225,243,265,269,271,284,292,296,319,327,334,337,353,364,367,368,370,372,374,375,376,383,391,442,443],off_bal:94,offend:55,offer:[0,7,8,9,11,15,20,22,27,28,32,36,37,39,41,42,47,51,60,62,65,67,69,72,77,78,82,83,84,87,88,90,93,96,97,98,99,101,107,108,112,113,114,116,121,122,127,129,130,140,153,155,168,175,176,181,182,189,192,203,204,218,224,242,271,298,305,355,374],offernam:203,offici:[8,11,50,85,153,157,158,383,443],officia:29,offlin:[16,18,41,76,144,155,181,187,368],offscreen:76,offset:[49,243,372,383],often:[0,3,5,6,9,11,12,13,16,18,20,22,24,28,30,39,44,46,47,53,54,60,61,62,64,67,68,77,80,81,83,85,88,93,99,101,103,107,113,114,116,117,118,119,123,126,129,155,158,159,169,175,180,182,190,192,196,204,254,256,257,258,259,260,292,295,304,306,314,319,333,353,362,364,368,370,376,377,383,390,413,436],ohloh:84,okai:[3,9,28,81,82,83,100,123,126,130,154,235,282],olc:[26,112,182,298,301,443],olcmenu:298,old:[5,7,9,19,20,27,28,31,33,44,48,58,60,68,75,76,82,85,87,91,92,96,98,100,104,106,120,123,130,139,149,151,155,168,175,176,179,182,203,223,243,292,296,301,323,363,364,367,370],old_default_set:8,old_kei:[45,296],old_nam:45,old_obj:218,old_po:218,older:[12,44,53,76,88,144,147,149,182],oldnam:364,oliv:60,omit:[41,107,157],on_:204,on_bad_request:316,on_ent:[77,204],on_leav:[77,204],on_nomatch:[77,204],onam:294,onbeforeunload:51,onbuild:157,onc:[3,5,6,9,11,12,13,14,18,22,28,31,33,35,37,42,44,48,51,53,54,56,60,62,64,65,69,75,76,77,80,81,83,84,85,87,88,91,92,96,99,100,101,106,109,111,112,113,114,115,116,117,121,123,124,126,129,138,139,141,144,146,149,151,153,155,157,162,168,169,174,177,182,187,190,193,196,203,204,216,218,219,225,226,232,236,240,242,249,253,254,256,257,258,259,260,262,265,269,270,271,272,273,277,282,296,300,304,307,319,324,337,341,352,362,367,374,375,383,388,390,443],onclos:[62,325,342],onconnectionclos:51,ond:365,one:[0,2,3,4,5,6,7,8,9,11,12,13,14,15,16,18,19,20,22,25,27,28,29,30,31,32,33,35,36,37,39,40,41,42,44,46,47,48,50,51,53,54,55,56,57,58,60,64,65,67,68,69,70,73,74,75,76,77,78,79,80,81,82,83,84,87,88,89,90,91,92,93,94,97,98,99,100,101,102,104,105,106,107,108,109,110,111,113,114,115,116,117,118,119,120,121,122,124,126,127,129,130,132,134,136,138,139,140,141,142,144,146,148,149,150,151,153,155,156,157,158,159,161,167,168,171,174,175,176,177,179,180,182,187,188,191,192,193,196,197,198,203,204,206,209,210,211,213,218,219,221,223,224,226,232,235,236,241,242,243,251,253,254,256,257,258,259,260,265,268,270,271,272,273,279,281,282,283,284,286,287,288,291,292,294,295,296,298,299,300,301,304,309,314,316,318,319,324,325,326,334,337,338,346,353,354,355,359,361,362,363,364,365,367,368,370,371,373,374,375,376,377,378,381,382,383,385,386,387,388,390,391,394,403,416,430,431,436,443],one_consume_onli:218,ones:[8,15,18,19,20,22,26,30,31,32,33,35,41,60,65,73,76,77,90,99,100,104,108,109,115,124,129,139,150,153,155,157,158,175,176,177,198,204,232,256,257,258,259,260,286,300,301,318,323,355,367,376,384],onewai:182,ongo:[42,93,107,123,129,203,250],ongotopt:51,onkeydown:51,onli:[0,3,5,7,8,11,12,13,14,15,16,18,19,20,22,27,28,29,30,31,32,33,35,36,37,39,41,42,44,45,46,48,49,50,51,52,53,54,55,57,58,59,60,62,65,67,68,73,74,75,76,77,78,79,80,81,82,83,84,86,87,88,90,91,92,93,94,96,97,98,99,100,101,102,104,105,106,107,108,109,110,113,114,115,116,117,118,119,120,121,122,124,126,127,129,130,134,135,136,138,139,140,141,142,144,146,147,148,149,150,151,152,153,155,157,158,159,165,168,169,170,173,174,175,176,177,179,180,181,182,187,188,189,190,191,192,193,194,196,197,198,203,204,205,206,209,210,211,213,216,218,219,223,224,225,227,232,236,242,243,251,253,254,256,257,258,259,260,262,270,271,272,273,275,276,281,282,283,288,291,292,294,296,300,301,303,304,307,308,309,314,318,319,326,329,331,332,334,337,346,352,353,355,357,358,359,362,363,364,365,367,368,369,370,372,374,375,376,377,381,383,385,386,387,388,390,393,398,399,406,430,435,436,438,439,441,442,443],onlin:[9,16,18,37,53,55,69,72,84,87,88,89,91,99,100,102,103,113,117,119,121,123,124,125,127,128,129,130,131,133,144,146,150,152,156,159,161,162,165,179,187,196,198,204,216,225,328,368,443],onloggedin:51,onlook:[58,296],only_:253,only_nod:281,only_tim:[303,387],only_valid:301,onmessag:[62,325,342],onopen:[62,325,342],onoptionsui:51,onprompt:51,onsend:51,onset:13,ontext:51,onto:[18,20,22,51,83,87,92,97,115,121,138,153,155,176,187,210,271,295,326,371,374],onunknowncmd:51,onward:45,oob:[22,38,51,65,95,147,159,168,169,189,226,264,296,319,337,338,342,343,355,374,443],oobfunc:159,oobhandl:381,oobobject:42,ooc:[12,18,26,44,78,86,100,108,110,114,130,168,171,179,182,183,190,198,205,236,296],ooccmdsetchargen:205,ooclook:[44,205],oop:115,opaqu:[16,158],open:[0,3,7,10,11,20,22,26,27,31,33,39,44,52,53,59,75,76,77,78,80,82,83,84,85,87,88,89,90,99,100,102,108,109,112,114,115,116,117,123,126,127,129,130,132,141,142,144,146,149,150,151,152,153,154,155,158,161,182,189,192,202,203,204,216,218,223,225,249,250,260,265,270,275,281,357,362,370,383,390,442,443],open_chest:39,open_flag:218,open_parent_menu:204,open_submenu:[77,204],open_wal:270,openadventur:123,openhatch:144,opensourc:367,oper:[3,6,11,13,15,18,19,22,28,30,32,37,39,42,46,47,49,51,52,55,64,68,76,77,78,80,83,88,99,105,110,111,114,116,122,139,149,151,153,155,162,163,168,173,175,177,179,182,187,192,193,196,204,209,213,216,221,243,252,270,282,292,296,301,309,311,314,323,324,328,330,334,336,337,343,345,346,353,354,362,363,364,367,370,374,375,376,377,381,390,415,416,443],opic:193,opinion:[79,122],opnli:362,oppon:[127,257,259,269],opportun:[75,77,90,107,141,260],oppos:[19,37,60,158,163,353,365],opposit:[82,83,100,108,138,182,265,282],opt:[51,100,272],optim:[5,13,18,19,22,35,42,47,67,83,88,96,98,126,146,177,196,300,301,349,352,362],option100:28,option10:28,option11:28,option12:28,option13:28,option14:28,option1:28,option2:28,option3:28,option4:28,option5:28,option6:28,option7:28,option8:28,option9:28,option:[2,3,5,7,8,12,13,17,18,19,20,22,26,27,30,31,32,33,35,41,42,46,51,53,54,58,60,65,67,69,70,72,73,78,79,82,85,87,88,90,92,94,99,101,104,106,108,109,112,113,115,119,122,126,129,130,135,141,142,144,145,146,147,148,149,151,157,159,162,165,168,169,170,173,174,175,176,177,179,180,182,187,189,190,193,194,196,197,198,203,204,205,206,209,212,213,216,217,218,219,221,223,224,225,226,227,229,231,232,236,240,241,242,243,251,252,253,254,258,260,264,265,268,271,272,273,275,277,279,281,282,283,284,286,287,289,291,292,294,295,296,298,300,301,303,304,305,306,307,308,309,311,312,314,316,319,320,323,324,326,327,328,329,330,331,332,333,334,336,337,338,341,342,343,345,346,353,355,357,362,363,364,365,367,368,369,370,372,373,374,375,376,377,378,381,383,384,385,386,387,389,390,391,393,394,395,398,399,400,402,403,404,405,406,408,410,422,423,443],option_class:[165,369],option_dict:374,option_gener:374,option_kei:391,option_str:272,option_typ:385,option_valu:385,optiona:[168,311,364],optionclass:[165,166,366,369,443],optioncontain:369,optionhandl:[165,166,366,384,443],optionlist:[28,217,268,298,374],options2:51,options_dict:385,options_formatt:[28,217,225,268,298,374],optionsl:300,optionslist:268,optionsmenu:217,optionstext:[28,217,225,374],optlist:254,optlist_to_menuopt:254,optuon:242,oracl:[146,390],orang:[60,116,240,272,367],orc:[41,99,135],orc_shaman:41,orchestr:157,order:[0,2,5,8,9,10,11,12,13,14,15,19,20,22,27,28,30,31,33,34,36,37,39,41,42,49,50,51,54,59,64,70,75,76,77,79,81,82,83,84,88,89,96,97,100,101,102,111,113,114,115,116,120,122,123,124,129,130,134,138,139,141,142,146,149,152,159,162,168,173,176,177,183,188,189,192,193,203,204,205,206,207,209,210,211,213,218,225,240,241,243,253,256,257,258,259,260,269,270,271,272,281,282,284,291,292,294,296,301,325,337,342,346,353,362,364,367,368,374,375,376,383,387,390,398,400,402,403,404,405,441],order_bi:111,order_clothes_list:206,ordered_clothes_list:206,ordered_permutation_regex:243,ordereddict:[13,390],ordin:367,ore:[123,209,210],org:[64,69,85,88,129,155,241,272,330,336,342,367,390,430],organ:[11,13,18,31,37,39,42,46,50,69,72,76,77,82,83,85,102,111,117,126,127,140,177,189,193,283,393],organiz:126,orient:[87,88,99,117],oriented_program:88,origin:[7,11,28,37,44,49,50,53,64,75,76,78,81,87,90,91,92,94,99,104,107,111,114,115,124,134,144,151,154,158,168,169,175,182,204,236,242,243,272,282,294,296,300,301,303,323,357,364,367,374,386,389,390,393,394,442],original_object:294,original_script:303,origo:[83,281],orm:30,ormal:367,orthogon:83,oscar:[177,196,286,288,364],osnam:390,oss:7,ostr:[168,170,197,287,294,303,387],osx:[11,149],other:[2,6,8,9,11,12,13,14,15,16,17,18,19,20,23,27,28,30,31,32,33,35,36,37,41,44,45,46,47,48,49,51,52,54,55,56,57,59,60,62,64,65,67,68,69,70,73,74,75,76,77,78,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,96,97,99,100,101,102,104,105,106,107,108,109,110,111,113,114,115,117,119,121,122,124,126,127,129,130,134,135,136,137,138,139,141,142,145,149,150,151,152,157,158,161,162,163,168,173,174,175,176,177,182,187,188,189,190,193,194,196,197,203,206,209,212,214,216,217,218,223,225,231,236,242,243,247,249,253,254,256,257,258,259,260,265,271,272,273,281,282,284,286,288,292,295,296,300,301,305,307,309,312,314,319,323,325,326,332,334,337,346,353,354,356,362,364,366,367,368,370,372,373,374,375,376,377,384,385,387,390,391,394,406,435,436,438,443],other_modul:112,other_obj:218,othercondit:108,othermodul:53,otherroom:249,others_act:218,otherwis:[3,5,6,11,16,19,20,22,28,30,37,41,42,44,60,64,65,67,73,75,83,84,85,90,92,94,96,101,102,107,111,116,118,121,130,138,143,146,155,157,158,165,170,174,175,179,182,187,196,203,207,209,218,221,223,224,225,229,232,243,253,256,257,258,259,260,264,273,275,286,292,296,299,300,301,308,314,325,326,334,353,357,358,367,374,375,377,383,387,388,390,399,434,435,436,438,440],otypeclass_path:294,ought:393,our:[0,2,3,8,9,11,12,13,15,20,22,26,33,39,47,51,56,58,62,64,65,68,72,73,74,76,79,80,81,82,84,85,87,88,89,90,91,92,95,96,97,99,100,101,103,104,105,106,107,109,111,113,115,117,118,119,122,124,125,126,127,128,129,130,131,132,133,134,135,140,142,143,144,145,146,149,151,153,154,155,156,157,158,162,171,176,190,198,210,224,254,269,270,273,292,305,359,377,383,394,395,399,406,413,443],ourself:[115,130],ourselv:[33,36,50,58,75,100,108,109,111,115,121,123,126,136,140,168,205,327,328,330,341,377,394,443],out:[0,3,5,6,8,11,14,15,16,17,18,22,24,28,30,31,35,37,39,41,42,44,49,51,52,53,54,55,56,57,58,63,67,68,69,72,73,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,91,92,93,94,96,97,98,99,101,102,107,109,110,111,112,113,114,115,116,117,118,119,120,121,122,124,125,126,128,129,130,131,132,133,135,138,139,141,144,145,146,148,149,151,152,155,157,159,162,167,168,174,175,179,181,182,187,203,205,209,210,212,214,216,218,225,236,242,243,246,247,249,250,253,256,257,258,259,260,268,270,275,281,282,283,284,300,301,307,314,316,338,342,343,345,354,355,362,371,373,374,376,377,389,390,393,398,406,430,442,443],outcom:[67,85,127,175,209,213,292,296,300],outdat:[145,151],outdata:[62,355],outdoor:[46,83,120,123,140,271],outer:[111,112,376],outermost:[13,30,32,94,112,116,126],outerwear:206,outfunc_nam:62,outgo:[30,44,68,71,83,151,155,169,282,296,326,338,354,377,390,394,443],outgoing_port:155,outlet:155,outlin:[2,26,82,83,141,325],outlist:281,outmessag:296,output:[0,5,7,9,15,19,28,29,30,31,32,44,49,51,60,62,64,68,69,70,72,73,77,78,82,83,85,90,100,107,108,109,113,114,116,118,119,123,129,130,137,138,139,144,146,157,163,165,166,177,182,187,189,192,193,194,199,204,209,210,212,226,244,245,247,256,257,258,259,260,281,282,296,314,319,334,338,346,353,367,374,375,377,383,386,390,443],output_nam:209,output_prototyp:[79,209,210],outputcmd:338,outputcommand:[32,65,443],outputfunc:[24,62,65,68,296,319,325,443],outputfunc_nam:[62,319],outputfunct:65,outrank:363,outright:[55,155],outro:[120,271],outroroom:271,outsid:[14,16,30,31,41,46,49,52,53,64,68,69,75,78,83,85,88,91,96,99,109,113,116,117,118,122,123,127,138,142,151,157,159,163,189,241,259,269,276,281,282,286,291,338,353,354,362,365,376,421,443],outtempl:362,outtxt:19,outward:[81,155],oven:79,over:[2,4,5,6,8,9,13,14,15,16,17,18,19,20,22,28,42,44,46,47,48,49,51,53,56,60,61,62,65,68,69,70,72,78,81,82,83,84,85,93,96,99,100,104,106,108,111,114,115,116,117,121,123,126,127,129,134,136,139,141,145,148,155,157,158,168,176,197,210,225,249,254,256,257,258,259,260,271,282,296,309,318,332,334,337,339,343,345,347,360,364,368,381,386,439],overal:[49,54,67,98,99,152,155,175,190,257,443],overcom:82,overdo:114,overhead:[19,42,70,140,146,243,273,362],overhear:242,overlap:[20,101,242,367,376],overload:[6,20,22,28,32,37,47,62,77,95,97,99,115,130,134,135,159,168,175,177,191,196,204,205,209,216,224,226,240,243,249,250,256,257,258,259,260,268,269,270,271,272,275,296,301,309,318,337,345,354,372,374,375,376,384,443],overpow:123,overrid:[2,5,13,18,20,28,30,31,33,41,42,44,45,49,50,51,53,65,73,76,77,79,83,86,90,91,92,102,107,108,109,113,115,117,132,135,136,138,148,168,177,182,187,189,193,196,197,204,209,221,224,232,242,258,260,264,271,272,275,282,283,284,286,292,296,300,301,307,337,355,359,362,367,374,375,377,381,383,384,387,398,399,400,404,406,416,435,436,438,441,443],overridden:[35,53,62,83,90,134,168,182,204,252,272,282,300,364,375,377,398,441],override_set:45,overriden:[168,189,243],overrod:56,overrul:[12,39,168,176,243,296,376],overseen:127,overshadow:121,overshoot:390,oversight:99,overview:[0,1,5,16,50,56,78,80,99,103,119,122,125,128,130,146,158,443],overwhelm:[80,111,121],overwrit:[64,115,134,182,189,332,363,439],overwritten:[22,30,142,271,365],owasp:430,owen:209,own:[0,4,5,8,9,11,13,14,17,18,19,20,26,28,30,31,33,36,41,42,44,45,46,48,49,52,53,54,57,58,65,67,68,69,72,73,76,77,78,79,82,83,84,85,87,88,90,91,92,94,95,99,101,103,104,106,107,109,112,113,114,115,117,119,120,121,122,124,125,128,130,131,132,133,134,138,140,141,142,143,145,149,151,152,153,154,156,158,159,165,166,171,173,174,175,176,182,190,199,206,212,217,218,224,225,236,242,243,247,256,257,258,259,260,270,272,273,281,282,291,292,296,301,319,346,354,364,367,368,369,375,376,381,383,384,388,390,416,436,443],owner:[33,39,57,90,106,123,146,168,292,384],owner_object:33,ownership:[155,157],p_id:141,p_str:92,pace:[123,269],pack:[52,65,323],packag:[4,5,6,8,9,31,50,68,69,73,76,83,85,88,112,113,143,145,146,149,153,154,155,157,162,165,167,172,178,195,199,221,267,285,290,293,302,310,314,323,338,342,361,366,396,410],package_nam:88,packagenam:88,packed_data:323,packeddict:[6,364],packedlist:[6,364],packet:[65,334],pad:[17,30,367,376,377,390],pad_bottom:376,pad_char:376,pad_left:376,pad_right:376,pad_top:376,pad_width:376,page1:218,page2:218,page:[0,2,7,8,10,11,14,15,17,20,22,23,26,28,29,30,31,35,37,48,49,50,51,52,55,56,58,62,64,68,69,72,76,84,85,87,88,89,91,92,93,99,100,103,104,108,109,112,121,122,124,127,139,141,142,144,145,146,151,153,154,155,157,158,159,161,163,164,177,187,188,196,218,286,288,300,343,364,374,375,390,396,401,403,404,406,419,428,432,438,439,441,442,443],page_back:375,page_ban:[55,187],page_end:375,page_formatt:[300,375],page_next:375,page_quit:375,page_titl:[435,436,438,440],page_top:375,pageno:[300,375],pager:[29,31,375],pages:[28,374],pagin:[31,49,86,300,375],paginag:375,paginate_bi:[435,436,438],paginated_db_queri:300,paginator_django:375,paginator_index:375,paginator_slic:375,pai:[98,106,123,155,158,270],paid:[124,155],pain:155,painstakingli:14,pair:[20,51,65,83,129,168,175,206,282,291,296,355,430,441],pal:36,palac:83,palett:139,pallet:82,palm:225,pane:[68,194,214,268,284],panel:[7,151],panic:[41,108],pant:121,pantheon:[31,286],paper:[103,129,144],paperback:127,paperwork:83,par:146,paradigm:[76,121,136,257],paragraph:[15,19,31,239,368,376,390],parallel:[99,101,102,119,363],paralyz:258,param:[151,182,296,309,316,326,359,389,410,411,413],paramat:[168,177,296,353],paramet:[2,3,7,8,20,49,75,77,80,81,96,101,107,111,118,123,147,157,165,168,169,170,173,174,175,176,177,182,187,189,193,196,197,198,203,204,206,209,212,213,216,217,218,219,221,223,224,225,226,227,229,230,231,232,235,236,241,242,243,246,247,249,253,254,256,257,258,259,260,264,265,268,271,272,273,281,282,283,284,286,287,288,289,292,294,295,296,298,300,301,303,305,306,307,308,309,311,312,313,314,316,318,319,320,321,323,324,325,326,327,328,329,330,331,332,333,334,336,337,338,339,341,342,343,345,351,352,353,354,355,357,358,359,362,363,364,365,367,368,369,370,371,372,373,374,375,376,377,378,381,383,384,385,387,388,389,390,391,393,394,398,400,403,404,408,411,422,438],paramount:8,paramt:391,paremt:301,parent1:41,parent2:41,parent:[12,19,20,22,26,37,41,42,48,62,74,77,79,83,85,88,92,97,104,108,110,114,115,117,130,136,138,171,179,182,190,192,204,209,211,216,218,243,252,253,254,272,282,295,296,300,301,304,362,363,364,372,382,383,390,408,410,416,439,443],parent_categori:254,parent_kei:[77,204],parent_model:[398,399,400,402,403,404,406],parenthes:[50,116],parenthesi:[116,117],paretn:408,pari:[144,155],pariatur:29,paricular:22,park:204,parlanc:[53,132],parri:[129,210,270],parrot:136,pars:[6,16,20,22,27,28,30,58,60,62,65,68,69,72,83,85,86,103,104,114,119,126,130,132,142,149,159,172,173,174,177,182,188,189,190,192,193,203,204,209,210,213,214,216,218,223,224,236,243,246,247,248,254,265,270,271,272,275,281,282,283,289,292,296,299,300,301,319,326,329,338,342,343,345,355,362,367,368,372,373,374,377,389,390,443],parse_ansi:367,parse_ansi_to_irc:326,parse_entry_for_subcategori:289,parse_fil:368,parse_for_perspect:223,parse_for_th:223,parse_html:389,parse_input:374,parse_irc_to_ansi:326,parse_languag:243,parse_menu_templ:374,parse_nick_templ:362,parse_opt:254,parse_sdescs_and_recog:243,parse_to_ani:[30,377],parseabl:[300,377],parsed_str:[30,326],parsedfunc:377,parseerror:272,parser:[22,31,69,71,83,85,112,142,144,159,173,174,179,182,189,190,192,194,210,214,216,218,224,240,242,243,270,271,272,280,281,282,300,333,367,377,389,443],parsingerror:[30,377,390],part1:240,part2:240,part3:443,part:[0,2,3,4,7,8,11,14,15,16,18,22,28,31,33,39,40,42,44,48,49,51,52,53,56,62,67,68,71,73,74,76,77,78,79,80,81,82,83,84,85,89,90,94,96,97,99,100,102,106,107,109,111,113,114,115,116,117,120,121,122,124,127,129,130,134,135,146,155,174,175,177,187,190,191,193,196,203,204,209,210,213,216,240,243,254,259,265,271,279,281,282,287,291,292,299,300,307,314,318,343,345,354,357,359,362,363,367,368,372,374,377,390,443],part_a:203,part_b:203,parth:339,parti:[3,9,14,19,30,59,76,84,88,116,117,122,124,142,145,146,153,154,155,198,203,213,377,443],partial:[31,83,92,187,189,242,286,294,300,316,329,355,385,387,390,391],particip:[158,256,257,258,259,260],participl:[393,395],particular:[5,6,11,13,14,15,20,31,32,33,37,42,44,45,46,48,55,60,62,65,68,70,73,77,83,85,88,89,93,97,100,103,106,109,111,112,113,115,116,117,118,121,122,123,126,136,138,140,144,145,151,153,154,159,168,170,174,175,182,197,209,219,224,247,258,259,281,282,284,287,291,292,303,304,355,357,364,377,381,387,437,439,442],particularli:[8,28,55,58,75,85,90,96,177,190,193,243,253,301,318],partit:367,partli:[13,20,67,72,112,175],party_oth:203,pass:[2,8,10,18,19,22,28,29,30,32,33,35,39,41,42,44,45,47,48,54,62,65,68,78,79,81,82,83,90,91,92,93,94,95,101,102,105,106,107,108,110,114,115,117,118,123,126,135,138,142,146,155,157,163,168,169,175,187,193,194,196,206,209,212,213,216,221,223,225,226,231,243,246,247,249,253,254,256,257,258,259,260,264,265,270,281,282,284,291,292,296,299,300,305,308,309,312,314,324,332,334,337,342,343,353,359,362,364,365,373,374,375,376,377,378,383,384,385,386,389,390,410,416,436,439,441,443],passabl:282,passag:[65,129,206,270,271,378],passant:139,passavataridterminalrealm:334,passiv:[94,129,141],passthrough:[20,281,307],password123:49,password1:[398,430],password2:[398,430],password:[2,5,11,25,26,28,32,33,53,55,76,78,88,90,108,113,114,119,146,149,151,158,162,168,179,180,194,214,218,241,247,319,334,337,358,370,398,422,430],password_chang:431,passwordresettest:431,past:[0,14,27,50,51,69,75,80,82,83,84,100,101,102,109,113,123,129,130,141,151,159,170,258,282,360,368,378,393,395,439],pastebin:84,pastpl:393,pat:294,patch:[48,49,388,443],patfind:279,path:[4,7,12,15,19,28,30,31,32,33,35,37,41,42,44,48,52,53,62,63,64,67,68,73,75,77,83,85,88,90,91,94,96,106,109,110,111,114,116,117,119,126,130,134,135,136,138,142,145,149,151,155,157,168,169,171,174,175,176,177,181,182,183,184,185,186,187,196,198,202,203,204,205,206,209,212,213,216,218,219,221,223,224,226,232,235,240,241,242,243,249,250,251,256,257,258,259,260,262,264,265,268,269,270,271,273,275,279,281,282,283,284,286,288,294,295,296,300,301,303,304,306,307,309,314,321,323,332,339,345,347,351,355,359,362,363,364,368,370,372,373,374,375,377,378,381,382,387,390,408,416,436,443],path_or_typeclass:235,pathdata:275,pathfind:[78,275,279,281,282,443],pathnam:388,patient:89,patreon:89,patrol:269,patrolling_pac:269,patron:[84,89],pattern:[18,36,56,73,74,90,102,132,141,142,180,243,358,362,390,407],pattern_is_regex:362,paul:48,paus:[28,42,54,80,96,129,157,163,182,192,193,231,307,308,374,390,443],pausabl:390,pauseproduc:316,pax:443,paxboard:144,payload:[325,342],payment:123,paypal:[84,89],pdb:[165,443],pdbref:[33,291],pdf:144,peac:135,peek:[0,28,83,107,109,114],peer:[325,342],peform:319,peg:158,pem:151,pemit:[69,180],pen:103,penalti:[67,121,258,443],pend:359,pennmush:[69,72,99,194],pentagon:158,peopl:[0,6,12,18,30,31,33,53,58,60,69,78,84,87,88,91,100,104,106,109,111,113,121,122,123,124,126,127,129,144,148,152,153,155,158,161,187,188,214,243,270,271,370,399,406],pep8:0,per:[5,12,13,18,22,28,30,37,41,44,57,61,65,67,79,83,85,88,90,100,101,102,116,122,123,126,129,130,157,168,187,218,219,224,242,253,256,257,258,259,260,269,281,282,294,296,300,327,328,330,338,341,357,374,375,376,381,383,384],perceiv:[101,123],percent:[22,165,166,199,390,443],percentag:[129,252,253,363,390],percentil:390,perception_method_test:350,perfect:[11,27,87,121,122,126,154,157,281],perfectli:[42,46,72,90,102,367],perform:[3,5,6,13,14,15,18,29,32,33,37,42,58,77,87,92,96,107,116,129,130,135,141,142,146,152,154,158,168,173,175,179,182,187,189,204,206,209,216,225,231,232,243,246,254,256,257,258,259,260,279,294,296,300,304,305,318,323,337,345,346,362,363,364,371,374,375,377,384,387,390,391,430],perhap:[3,6,18,56,69,77,80,101,102,107],period:[8,9,10,78,116,155,157,158,390],perist:48,perm1:365,perm2:365,perm:[13,18,22,31,33,39,41,46,55,57,77,90,92,100,106,108,114,130,141,152,171,180,181,182,187,188,189,192,216,224,230,240,249,271,275,288,291,292,295,296,304,362,364,365,390],perm_abov:[33,39,291],perm_us:180,perma:123,permadeath:123,perman:[18,28,53,55,83,90,120,121,147,155,179,182,187,188,192,242,308,364,443],permiss:[5,12,13,18,20,41,49,50,55,61,63,69,76,90,91,92,109,114,126,130,141,145,146,152,154,165,166,168,170,171,175,177,179,180,181,182,187,188,190,196,219,230,243,260,286,288,291,292,295,296,300,301,304,362,363,364,365,368,370,377,383,387,390,396,398,409,410,413,416,441,443],permission_account_default:[39,345],permission_class:416,permission_func_modul:291,permission_guest_default:63,permission_hierarchi:[39,57,291,292,365],permissiondeni:411,permissionerror:300,permissionfilt:410,permissionhandl:[39,141,365],permissionshandl:[406,413],permit:[143,146,182,358],permstr:[33,168,364,370],permut:243,perpetu:[5,443],persion:58,persis:94,persist:[18,19,20,22,28,34,37,41,42,44,47,48,67,75,77,87,88,91,92,98,99,103,106,110,113,115,116,119,122,129,130,138,144,159,163,168,171,175,176,182,192,198,204,212,217,225,232,242,243,250,253,254,256,257,258,259,260,265,268,270,283,288,295,296,298,300,304,305,307,308,309,319,320,321,352,353,357,361,364,370,372,374,376,378,390,443],persit:35,person:[18,30,44,55,58,72,89,91,108,121,122,124,127,136,149,155,168,182,187,188,196,203,213,218,219,223,243,377,393,394,395,443],persona:31,perspect:[44,58,127,223,394],pertain:[134,139,158],pertin:141,perus:51,peski:106,pester:[99,121],petal:85,peter:216,pg_ctlcluster:146,pg_hba:146,pg_lscluster:146,phantom:31,phase:[81,121],philosophi:[33,116,218],phone:[56,88,154,241],phone_gener:241,phonem:242,php:[69,88,430],phrase:[80,235],phrase_ev:235,physic:[12,35,81,121,259,269,443],pick:[7,14,16,20,22,25,28,30,31,33,42,53,58,76,82,83,84,87,91,96,101,106,109,115,116,119,122,123,126,127,140,153,155,157,159,174,179,182,188,190,206,227,243,260,270,271,296,300,346,377],pickl:[13,47,50,65,83,94,202,253,305,309,311,321,323,324,362,363,371,372,374,386,390],pickle_protocol:386,pickledfield:[294,386],pickledformfield:[386,399],pickledobject:386,pickledobjectfield:386,pickledwidget:386,picklefield:[165,166,366,399,443],pickpocket:189,pickup:[260,296],pictur:[7,62,79,91,99,443],pid:[2,11,33,50,141,157,163,291,296,314,324,390],piddir:2,pidfil:314,pie:216,piec:[5,14,35,53,54,79,88,115,116,122,151,209,210,240,341,368,375],pierc:270,pig:[209,210],piggyback:168,pigironrecip:[209,210],pile:[176,368],pillow:154,pinch:123,ping:[169,187,314,326],pink:367,pip:[0,3,5,6,8,9,10,76,83,85,112,116,141,146,149,150,152,154,156,157,162,165,443],pipe:[44,326,371],pitfal:[0,15,60,139],pixel:[53,147],pizza:[171,198,288,295,304,362,364,365],pkg:154,pki:145,place:[0,9,11,12,13,15,16,18,28,33,35,37,41,42,44,49,52,53,64,65,66,72,73,75,76,78,79,80,81,82,83,84,87,88,90,91,92,95,101,102,107,109,112,113,115,116,118,123,126,127,130,132,134,138,139,140,141,145,149,152,154,155,157,158,159,168,180,182,188,196,203,204,206,210,212,218,225,240,243,246,253,256,257,258,259,260,265,270,271,273,281,282,284,296,303,307,323,332,337,353,354,355,362,368,369,371,374,390,443],placehold:[52,53,64,142,292,296,376],plai:[12,15,31,44,53,57,60,65,75,77,78,80,82,87,88,94,96,100,103,104,107,116,119,120,121,122,124,126,127,129,130,138,140,141,154,155,162,168,256,260,338,355,370,443],plain:[14,15,67,68,85,100,109,130,187,196,203,204,239,301,319,345,371,439],plaintext:247,plan:[3,15,16,18,48,62,76,87,98,103,111,115,118,119,125,128,131,133,155,157,368,443],plane:[83,118,138],planet:[101,113,144],plant:272,plate:[48,53,105,241],platform:[7,11,56,76,98,149,155],playabl:[123,141,431],player1:296,player2:296,player:[5,6,13,18,20,28,30,33,39,42,44,46,50,52,53,54,55,57,58,62,64,65,69,70,76,77,78,82,83,86,87,88,91,92,94,100,104,106,107,109,110,113,114,115,116,117,119,120,121,122,125,127,128,129,130,131,133,135,136,137,138,141,148,150,152,155,156,162,163,176,179,182,192,197,200,203,204,216,217,218,219,221,225,227,235,236,240,242,243,247,251,254,259,260,265,271,272,273,281,287,304,328,337,354,368,373,374,390,416,430,436,443],playernam:152,playerornpc:76,pleas:[0,5,8,11,17,20,28,31,41,48,56,60,82,84,89,90,109,115,123,126,135,136,137,141,143,145,149,152,153,154,155,192,316,345,381,386,430],pleasur:56,plenti:[15,72,87],plop:53,plot:347,plu:[0,7,19,77,88,192],pluck:22,plug:[35,45,134,158,273],plugin:[62,65,69,86,90,112,113,144,153,159,243,312,443],plugin_handl:51,plugin_manag:51,plural:[39,57,58,100,259,296,377,393,394],plusmaplink:[83,282],png:[40,53,134],po1x1jbkiv_:84,pocoo:390,poeditor:64,poet:111,point:[2,3,5,6,7,8,10,11,12,14,15,16,19,20,22,28,30,31,35,37,42,44,46,47,48,50,53,58,65,67,68,70,73,75,77,78,81,83,84,85,87,90,91,92,94,96,98,101,102,103,104,106,107,108,109,113,114,115,116,117,121,123,124,127,129,130,131,134,138,141,142,145,149,151,154,155,157,159,162,168,173,177,182,187,190,203,209,216,226,243,249,256,271,272,273,275,279,281,282,296,298,300,309,314,318,332,334,342,353,355,362,364,368,374,377,390,399,406,419,441,443],pointer:[0,81,98,107],pointless:[37,47,54,189],poison:[13,122,253,258,301],pole:240,polici:[26,117,155,158,247,288,358,362,443],polish:64,polit:[78,117,123,158],poll:[62,134,179,269,314,343],pommel:[123,210],pong:326,pool:[20,47,146,309,359,371],poor:[58,100],poorli:158,pop:[7,54,85,92,100,106,146],popen:324,popul:[2,73,77,99,101,104,121,146,175,183,184,185,186,204,206,209,216,224,240,243,251,256,257,258,259,260,265,268,269,270,271,275,296,308,309,345,368,372,373,375,399,406],popular:[69,76,78,88,99,111,119,144,158,161,435],popup:51,port:[2,5,75,76,87,119,145,146,148,149,151,153,157,163,169,187,323,326,334,346,355,359,443],portal:[5,7,9,24,37,43,51,52,62,68,86,112,113,138,144,155,158,159,163,165,166,169,192,207,310,311,314,352,353,354,355,378,383,390,443],portal_connect:355,portal_disconnect:355,portal_disconnect_al:355,portal_l:324,portal_pid:[324,390],portal_receive_adminserver2port:324,portal_receive_launcher2port:324,portal_receive_server2port:324,portal_receive_statu:324,portal_reset_serv:355,portal_restart_serv:355,portal_run:314,portal_service_plugin_modul:62,portal_services_plugin:[62,113,159],portal_services_plugin_modul:62,portal_sess:62,portal_session_sync:355,portal_sessions_sync:355,portal_shutdown:355,portal_st:314,portal_uptim:378,portallogobserv:383,portalsess:[44,62,332,443],portalsessiondata:355,portalsessionhandl:[62,165,166,310,322,333,355,443],portalsessionsdata:355,portion:[204,227],portuges:64,pos:[218,282],pose:[26,58,94,100,108,122,123,129,168,188,216,232,243,265],pose_transform:196,posgresql:146,posit:[14,28,42,51,77,81,82,83,96,107,109,117,122,129,139,176,194,204,214,216,218,239,260,270,271,272,273,281,282,284,296,308,367,368,371,372,376,390,391],position:218,position_prep_map:218,positive_integ:391,positiveinteg:384,posix:[383,390],possess:[58,226,377,394],possibl:[0,5,8,9,11,13,18,20,22,27,28,30,31,32,33,35,41,42,44,46,50,52,53,54,60,63,75,76,77,80,82,84,85,87,88,92,96,99,100,107,111,112,113,116,117,120,122,123,124,126,127,129,130,134,139,142,146,149,154,157,159,165,168,170,171,173,175,182,189,190,203,209,218,224,231,240,242,243,251,253,269,271,273,281,282,284,289,292,294,296,299,300,301,305,309,319,339,343,353,355,362,363,365,367,370,372,373,374,376,378,386,387,390,393,408],post:[18,20,33,45,49,53,64,82,84,87,89,99,100,102,119,121,134,137,141,149,152,156,247,307,343,415,436,443],post_craft:[79,209],post_delet:45,post_init:45,post_join_channel:[18,196],post_leave_channel:[18,196],post_migr:45,post_mov:296,post_sav:45,post_send_messag:196,post_text:227,post_url_continu:[398,400,403],postfix:242,postgr:[88,146],postgresql:[390,443],postgresql_psycopg2:146,postinit:51,posttext:225,postupd:[137,152],pot:[55,110],potato:[147,272],potenti:[0,13,14,30,54,60,65,79,82,105,117,122,123,129,130,155,156,177,189,197,247,248,291,292,296,300,384,387,390],potion:[118,122,123,218,364],pow:30,power:[3,16,20,22,27,28,30,35,37,39,41,50,51,53,57,58,78,80,82,87,88,94,95,98,100,109,111,115,116,117,118,120,122,123,126,129,130,175,176,181,182,254,259,272,289,368,374,390],powerfulli:75,ppart:393,pperm:[18,33,39,55,114,141,152,179,187,240,291,296],pperm_abov:[39,291],pprofil:314,pprogram:314,practial:16,practic:[0,2,11,14,15,22,37,41,42,44,50,75,77,78,84,88,89,94,99,100,114,115,116,117,118,122,123,126,139,149,151,155,282,368,443],pre:[22,37,49,81,82,121,123,148,149,152,155,168,182,189,209,242,292,296,300,301,342,343,346,372,377,386],pre_craft:[79,209],pre_delet:45,pre_init:45,pre_join_channel:[18,196],pre_leave_channel:[18,196],pre_migr:45,pre_sav:[45,386],pre_send_messag:196,pre_text:227,preced:[20,39,41,57,60,83,126,175,177,254,296,301,363,376,377,394],preceed:[30,109],precend:173,precis:[13,42,139,209,367],predefin:[138,358],predict:[48,116,124,141],prefer:[7,11,18,20,22,33,41,51,77,82,84,87,89,91,99,107,113,115,119,130,146,152,155,175,177,180,204,243,257,269,282,287,289,294,296],prefix:[3,6,18,48,67,77,146,158,168,174,189,191,196,227,242,294,319,326,357,367,377,383,387,390,399,400,402,404,406,410,430,443],prelogout_loc:114,prematur:[5,19,42,203],premis:216,prep:216,prepai:155,prepar:[8,36,41,52,81,83,99,132,168,187,243,256,257,258,259,260,269,304,371,386,443],prepars:85,prepend:[236,243,296,367,368,374,377,390],prepopul:[399,406,439,441],preposit:218,preprocess:182,prerequisit:[2,76,443],prescrib:[87,99,122],presen:30,presenc:[17,30,76,83,87,98,113,114,134,139,146,155,168,296,359,396],present:[3,6,11,28,31,44,49,53,77,78,80,81,90,101,102,106,107,121,122,129,130,145,159,204,225,227,241,242,251,254,272,301,372,390,393,395,399,413],present_participl:395,preserv:[139,190,364,367,368,383,390],preset:377,press:[0,3,7,15,16,20,22,28,33,65,68,76,77,109,113,116,119,149,157,163,204,218,265,270,312,374,403],pressur:105,presto:109,presum:[35,101,127,176,383,384],pretend:154,pretext:225,pretti:[0,11,13,22,37,42,50,58,68,75,77,84,85,88,92,96,106,114,116,117,120,121,129,130,138,139,141,153,155,177,196,206,223,241,253,285,292,300,373,375,384,390],prettier:[5,75,430],prettifi:[99,390],prettili:101,pretty_corn:376,prettyt:[19,105,376],prev:[28,126,375],prev_entri:28,prevent:[22,80,85,101,109,116,231,260,272,357,399,436,443],preview:85,previou:[3,13,15,20,22,28,29,30,31,33,36,45,49,53,54,56,60,67,75,77,94,100,101,102,106,107,108,111,112,114,115,116,120,123,126,128,130,139,157,159,187,253,254,271,298,374,375,383,438],previous:[8,20,27,32,42,53,60,81,83,107,109,115,134,141,151,153,159,177,180,182,187,196,203,283,319,335,339,346,355,365,390],previu:42,prgmr:155,price:[123,155,270],primadonna:31,primari:[17,48,114,141,157,243,294,296,362,387],primarili:[2,12,55,69,84,85,87,121,122,168,203,243,287,289,332,371,390],primary_kei:141,prime:[173,203],primer:[53,54],primit:[123,182],princess:[82,120],princip:124,principl:[0,12,18,22,28,30,33,35,37,50,57,58,62,76,79,84,85,95,99,106,111,113,114,117,122,123,130,140,155,156,176,179,203,271],print:[0,3,4,5,6,13,19,27,28,42,48,54,62,67,70,76,85,90,91,92,100,107,111,114,116,117,163,179,213,242,253,272,281,283,300,313,314,373,374,375,376,383,390],print_debug_info:374,print_error:283,print_help:272,print_stat:5,print_usag:272,printabl:340,printable_order_list:281,printout:[117,337],prio:[20,22,92,114,173,271,365],prior:[135,231,296],priorit:[83,242,282,365],prioriti:[6,20,22,28,83,90,92,97,126,129,175,179,183,184,185,186,190,204,216,268,270,271,296,372,374,375,443],prison:[111,121,443],privat:[11,18,85,90,99,102,121,123,145,146,155,187,188,326,339],private_set:76,privatestaticroot:359,priveleg:115,privileg:[22,83,91,121,130,146,149,150,153,156,188,243,273,284,296,364,443],privkei:151,privkeyfil:334,privmsg:326,prize:120,proactiv:47,probabl:[5,9,22,28,31,37,42,49,50,53,56,67,69,77,80,83,84,87,88,90,91,92,94,99,102,106,114,123,126,129,134,138,141,142,146,155,189,204,235,241,253,271,316,326,334,381,390,391],problem:[0,2,6,8,13,14,16,19,22,26,33,70,74,77,82,88,89,91,92,98,102,103,108,116,118,121,123,124,126,146,147,151,154,155,157,158,163,168,176,209,232,281,296,323,368,377,443],problemat:[92,390],proce:[15,16,64,138,139,157,187,341,434,436],procedur:[254,334,337],proceed:[11,390],process:[0,2,3,5,7,11,13,14,15,16,22,28,30,35,37,40,49,52,53,64,65,68,75,76,77,81,83,85,88,90,92,94,96,107,113,116,121,123,125,126,127,141,145,146,151,154,155,157,168,173,175,182,192,196,203,209,210,243,254,272,277,290,292,296,300,305,308,314,319,323,324,331,334,337,342,343,346,352,353,355,362,367,368,371,374,384,389,390,391,408,443],process_languag:243,process_recog:243,process_sdesc:243,processed_result:390,processor:[24,26,82,123,131,163,165,166,181,192,366,443],procpool:390,produc:[11,18,22,28,31,60,122,124,130,179,182,209,210,218,223,240,242,270,273,296,300,301,313,345,362,364,373,374,390],produce_weapon:270,producion:19,product:[0,2,5,7,9,11,52,53,73,146,155,158,161,345,348,374,443],production_set:76,prof:5,profess:111,profession:[69,88,99,116,123,124,132],profil:[1,150,165,166,171,225,310,443],profile_templ:225,profunc:41,prog:[272,393],program:[0,5,7,8,9,12,16,18,30,40,49,52,54,67,69,86,88,96,98,99,112,113,116,117,120,124,125,126,144,146,149,151,154,155,157,158,163,192,194,272,310,314,337,343,345,443],programiz:96,programm:[107,119,124],progress:[11,89,106,127,144,219,221,256,257,258,259,260,282,372],proident:29,project:[8,11,16,69,73,78,81,82,84,88,90,92,107,124,134,144,153,384,442,443],projectil:259,promin:31,promis:0,promisqu:139,prompt:[0,3,48,51,65,68,76,82,85,88,103,116,119,146,147,148,149,154,157,162,177,193,254,312,326,337,342,343,368,374,443],promptli:15,pron:[30,296,377,443],prone:[9,176,364],pronoun:[30,58,165,166,226,296,366,377,392,395,443],pronoun_to_viewpoint:394,pronoun_typ:[58,377,394],pronounc:223,pronount:394,prop:[121,377,443],propag:[145,175,318,386],proper:[2,8,11,13,16,19,30,31,51,58,73,88,91,96,97,98,99,106,107,121,122,123,126,129,130,141,146,157,158,182,193,203,204,233,242,296,373,377,394],properi:189,properli:[7,8,9,10,11,30,34,48,69,74,76,94,100,101,102,135,139,141,177,203,248,271,279,291,308,309,334,390,401],properti:[4,6,8,14,31,33,34,36,39,41,42,47,53,58,67,77,78,79,82,86,87,92,96,98,99,104,108,112,114,118,123,127,129,130,138,139,159,163,168,169,171,177,179,182,190,192,193,196,198,204,209,210,216,218,219,225,231,240,243,252,253,254,256,258,259,260,265,269,270,271,272,273,282,283,284,286,288,289,291,292,294,295,296,300,301,304,306,307,308,318,319,321,326,332,345,346,353,354,355,362,364,365,369,371,374,377,384,385,386,387,390,398,399,400,402,403,404,405,406,413,430,438,440,443],property_nam:294,property_valu:294,propnam:130,propos:27,proprietari:146,propval:130,propvalu:130,prose:124,prosimii:[141,142],prospect:[121,209],prot:301,prot_func_modul:[41,299],protect:[5,20,155,182,210,265],protfunc:[165,166,297,300,301,377,443],protfunc_callable_protkei:299,protfunc_modul:300,protfunc_pars:300,protfunct:300,protkei:[41,299,300],proto:[323,334],proto_def:240,protocol:[19,22,24,32,40,44,51,61,65,86,88,112,113,124,144,147,153,155,158,159,163,168,169,177,180,226,247,264,296,310,311,314,316,319,323,324,325,326,327,328,329,330,332,333,334,336,337,338,339,341,342,343,345,352,353,354,355,372,386,390,443],protocol_flag:[336,337,341,353],protocol_kei:354,protocol_path:[332,355],protodef:240,prototocol:192,protototyp:[298,300,301],protototype_tag:41,prototoyp:299,prototyp:[24,30,79,80,86,112,113,121,137,165,166,182,199,209,240,257,258,270,274,281,282,283,443],prototype1:301,prototype2:301,prototype_:41,prototype_desc:[41,301],prototype_dict:182,prototype_diff:301,prototype_diff_from_object:301,prototype_from_object:301,prototype_kei:[41,79,83,182,209,300,301],prototype_keykei:182,prototype_lock:[41,301],prototype_modul:[41,83,182,278,300,301],prototype_pagin:300,prototype_par:[41,83,182,278,301],prototype_tag:301,prototype_to_str:300,prototypeevmor:300,prototypefunc:301,protpar:[300,301],protpart:300,provid:[2,6,8,11,13,17,18,22,30,31,39,41,42,48,49,50,51,52,53,55,56,58,69,71,75,77,79,85,87,90,92,94,102,107,115,116,117,118,122,123,126,132,134,139,141,142,151,154,155,157,158,168,177,182,187,194,196,204,206,209,218,225,227,230,240,241,254,256,257,258,259,260,272,273,281,286,291,296,299,307,314,334,357,363,365,374,377,384,385,386,390,391,415,416,430,436,439,441],provok:[3,144],prowl:31,proxi:[48,112,151,158,161,359,399,406,443],proxypass:145,proxypassrevers:145,prudent:2,prune:20,pseudo:[62,69,78,81,107,241,242],psionic:259,psql:146,pstat:5,psycopg2:146,pty:76,pub:[187,196],pubkeyfil:334,publicli:[53,123,144,148,443],publish:[2,91,144,157],pudb:[165,443],puff:98,pull:[2,9,11,20,22,30,52,53,84,85,88,92,113,124,134,157,235,270,316,438],pullrequest:84,pummel:120,punch:[20,108],punish:[123,260],puppet:[6,12,20,22,26,32,33,39,44,45,50,57,62,76,77,79,91,96,99,100,101,114,130,136,141,167,168,173,179,182,190,198,205,209,236,275,291,296,353,355,364,365,398,403,431,436,438,443],puppet_object:[12,168],puppeted_object:398,purchas:[106,151],pure:[48,60,68,80,98,123,139,151,304,314,362,367],pure_ascii:390,purg:[13,48,163,192],purpos:[13,40,46,58,65,90,111,117,130,139,141,151,155,169,173,177,213,223,231,282,334,362,371,374,377,390,394],pursu:[120,269],push:[77,85,115,139,157,158,218,235,265,270,443],pushd:149,put:[3,7,8,12,14,15,22,27,28,33,36,37,39,41,44,48,49,53,54,55,57,60,65,67,72,73,75,79,80,81,82,83,84,85,88,89,91,92,99,100,106,108,109,113,115,116,118,121,122,124,126,127,129,130,132,134,138,141,144,146,155,158,159,161,176,179,180,182,184,188,202,205,206,209,210,223,225,227,243,254,256,257,258,259,260,262,292,323,337,375,376,390,443],putti:155,puzzl:[79,120,144,165,166,199,209,270,271,443],puzzle_desc:270,puzzle_kei:271,puzzle_nam:240,puzzle_valu:271,puzzleedit:240,puzzlerecip:240,puzzlesystemcmdset:240,pvp:[121,443],pwd:[5,157],py3:323,pyc:113,pycharm:[1,85,119,443],pyflak:0,pylint:0,pyopenssl:150,pypath:390,pypath_prefix:390,pypath_to_realpath:390,pypi:[5,88,144,155,367],pypiwin32:[76,149],pyprof2calltre:5,pyramid:273,pyramidmapprovid:273,pyself:122,python2:[6,76,149],python37:149,python3:[149,154,253],python3_properti:88,python:[3,5,6,7,8,9,10,12,13,15,16,19,20,22,27,28,30,31,33,35,37,41,48,49,50,52,53,54,55,57,60,63,64,67,69,70,71,73,75,76,77,80,81,82,83,84,85,86,88,90,91,94,96,98,100,101,102,103,105,106,107,108,109,110,111,112,114,115,118,119,122,123,124,125,126,127,128,129,130,131,132,133,136,141,142,146,149,150,153,154,155,156,157,158,159,162,163,174,176,181,182,186,192,193,204,209,213,229,230,231,232,233,235,241,272,273,283,286,292,294,295,299,301,306,309,314,316,323,327,332,342,353,355,359,361,363,364,367,368,370,371,372,373,374,376,377,378,381,383,386,390,408,413,419,442,443],python_execut:88,python_path:[117,176,390],pythonista:144,pythonpath:[176,314,324,368],pytz:391,q_lycantrop:111,q_moonlit:111,q_recently_bitten:111,qualiti:[121,123,174],queen:83,quell:[12,26,108,109,114,116,120,126,138,179,249,291,443],quell_color:182,queri:[11,30,41,46,49,56,65,67,83,88,96,98,103,118,119,126,171,187,189,198,243,284,287,288,289,294,295,296,300,301,304,321,334,349,362,363,364,365,375,377,382,387,390,391,443],query_al:362,query_categori:362,query_info:314,query_kei:362,query_statu:314,query_util:410,queryset:[42,46,88,170,197,219,236,283,284,287,294,300,303,320,363,375,387,399,406,410,416,435,436,438,441,443],queryset_maxs:375,querystr:410,quest:[78,87,99,103,120,121,122,124,128,135,149,271,443],question:[0,8,11,22,27,28,54,73,77,99,121,123,124,125,127,145,149,151,155,182,193,295,311,312,362,372,374,390],queu:314,queue:[2,129,359],qui:29,quick:[6,20,22,35,42,46,69,74,77,85,87,96,107,116,117,121,129,144,155,161,169,182,204,242,286,301,319,362,365,376,415,443],quicker:[36,67,75,84,123],quickli:[9,13,16,22,28,35,37,46,54,60,67,83,92,96,123,124,134,137,161,182,204,221,223,242,365,368],quickstart:[6,64,67,100,116,154,155,157,159,163,442,443],quiescentcallback:316,quiet:[83,92,106,118,168,180,182,187,204,206,243,275,296,375,390,443],quiethttp11clientfactori:316,quietli:[30,65,68,94,362],quirk:[1,13,147,176,443],quit:[3,5,8,9,12,17,22,26,27,28,44,54,62,75,77,80,83,85,87,90,91,95,96,99,106,108,109,111,114,116,117,118,120,123,126,141,146,148,151,154,179,194,204,214,216,221,225,231,259,334,372,374,375],quitfunc:[27,372],quitfunc_arg:372,quitsave_yesno:372,quo:47,quot:[13,19,25,27,33,41,116,122,136,146,182,194,214,243,372,374,386,390],qux:254,ra4d24e8a3cab:25,rabbit:123,race:[87,98,121,127,135,141,144,145,390,443],rack:[210,270],radio:[18,123],radiu:[81,82,96],rage:[120,253],ragetrait:253,rail:[88,138],railroad:138,railwai:282,rain:[42,120,123,140],raini:271,rais:[13,16,19,22,30,41,54,65,79,102,107,111,127,142,168,169,193,197,204,209,212,213,224,229,231,232,241,242,243,253,281,282,283,284,292,299,300,309,313,314,332,337,343,358,362,363,365,367,368,370,373,374,376,377,383,384,385,386,390,391,411],raise_error:[30,377,385,390],raise_except:[13,209,362],ram:[13,155],ramalho:144,ran:[2,3,8,14,116,307],rand:42,randint:[30,41,79,107,114,127,129,130,137,256,257,258,259,260,301,377],random:[25,30,41,42,76,79,80,107,109,114,120,122,123,127,129,130,137,140,155,159,210,223,241,242,256,257,258,259,260,262,265,266,270,271,273,301,345,346,377,390,443],random_string_from_modul:390,random_string_gener:[165,166,199,443],randomli:[5,42,67,137,140,256,257,258,259,260,265,269,270,314,346,377],randomstringgener:241,randomstringgeneratorscript:241,rang:[3,5,8,20,27,41,68,78,81,82,83,96,98,107,109,120,122,129,136,137,147,149,158,182,212,225,252,253,257,260,279,281,284,363,372,377,430,441],ranged_attack:210,rank:[57,291],raph:144,rapidli:176,rapier:111,raptur:338,rare:[7,9,22,47,54,58,67,77,85,149,159,187,283,292,370],rascal:46,rase:211,rate:[5,22,78,84,88,122,155,165,166,187,199,309,314,333,390,443],ratetarget:[122,252,253],rather:[0,6,8,9,11,12,13,14,22,31,37,42,46,47,53,67,72,73,77,78,79,82,83,84,85,87,88,92,94,96,99,107,109,113,116,118,119,122,123,126,129,132,142,151,152,159,163,168,171,175,179,182,183,189,190,192,196,203,227,231,239,243,253,256,257,258,259,260,282,283,285,296,298,300,301,362,364,367,376,385,386,389,399,406,439],ration:[122,203],raw:[13,22,32,41,55,60,65,67,85,88,98,109,116,117,119,123,132,168,174,177,182,190,191,193,243,247,253,272,296,319,334,337,342,343,353,362,367,372,374,384,390],raw_cmdnam:[108,174,191],raw_desc:224,raw_id_field:[400,403,404],raw_input:[106,374],raw_nick:36,raw_str:[22,28,106,108,168,169,173,174,177,193,217,225,254,268,296,298,353,362,374],raw_templ:36,rawhid:210,rawhiderecip:210,rawstr:[177,193],rcannot:77,rdelet:182,re_bg:389,re_bgfg:389,re_blink:389,re_bold:389,re_color:389,re_dblspac:389,re_double_spac:389,re_fg:389,re_format:367,re_hilit:389,re_invers:389,re_mxplink:389,re_mxpurl:389,re_norm:389,re_str:389,re_ulin:389,re_underlin:389,re_unhilit:389,re_url:389,reach:[28,36,64,68,77,83,96,108,109,120,126,127,138,155,165,177,225,229,253,260,282,334,338,357,374,375,387,442],reachabl:[47,88,281],react:[28,47,52,135,136,269,296],reactiv:192,reactor:[325,352,359,388],read:[5,8,9,11,13,14,16,17,19,20,22,28,30,31,33,35,41,44,49,53,56,64,67,68,75,76,77,80,83,84,85,87,88,89,90,92,94,96,98,100,102,106,107,108,109,111,112,113,114,115,116,117,120,122,123,124,126,130,139,141,142,144,145,146,152,153,155,158,159,162,168,171,181,188,189,198,204,218,224,227,235,236,241,243,253,270,271,281,282,286,288,295,296,300,301,304,321,323,346,362,364,365,368,369,373,375,382,383,390,398,435,438,443],read_batchfil:368,read_default_fil:2,read_flag:218,read_only_field:413,readabl:[5,19,47,48,60,69,81,85,189,202,209,218,270,281,367,374,438],readable_text:270,reader:[32,85,100,104,126,141,144,156,187,227,260,319,333],readi:[2,3,5,7,11,12,16,33,37,54,55,62,84,92,94,109,113,114,124,134,138,148,149,154,168,177,243,256,257,258,259,260,296,343,375,384,390],readili:[82,146],readin:373,readlin:383,readm:[10,11,15,80,84,113,199,247],readonly_field:[398,400,403,404],readonlypasswordhashfield:398,readthedoc:[144,410],real:[3,4,5,11,12,19,20,30,37,41,48,54,63,69,77,80,82,85,87,91,96,100,101,111,116,117,123,127,129,130,131,139,149,151,153,155,157,163,171,176,198,203,210,212,242,243,258,282,283,291,345,368,377,378,443],real_address:12,real_nam:12,real_seconds_until:[212,378],real_word:242,realist:[5,8,123,124,140,218],realiti:[5,82,87,91,98,121,139,144],realiz:[11,114,139],realli:[0,3,4,8,9,13,14,15,18,20,22,28,30,33,37,42,46,47,49,54,55,57,69,77,82,83,88,90,92,96,100,101,106,107,108,109,114,115,117,118,122,124,126,136,138,151,153,156,159,163,177,193,203,204,205,254,272,282,292,323,367,368,374,386],really_all_weapon:111,realm:334,realnam:37,realpython:54,realtim:[100,113,212],realtime_to_gametim:212,reason:[5,6,7,11,13,14,18,28,31,33,35,36,37,39,41,42,47,50,55,60,62,65,67,72,76,77,79,81,83,84,85,88,92,94,96,97,98,99,100,102,105,108,114,115,121,123,124,126,127,129,139,145,149,151,158,159,168,180,182,187,192,209,214,219,241,242,253,281,282,294,296,300,305,311,316,323,324,325,326,332,333,334,337,342,343,345,353,354,355,364,372,377,383,390,441],reasourc:41,reassign:81,reattach:[7,325,326],rebas:11,reboot:[9,13,19,26,27,34,42,44,47,67,87,93,113,129,151,155,157,162,168,176,187,192,207,225,253,269,270,296,304,305,307,309,314,354,355,372,374,443],reboot_evennia:314,rebuild:[9,83,100,149,151,157,283,326],rebuilt:[22,83,151,281],rec:243,recach:271,recal:[270,435],recapcha:443,recaptcha:141,receipt:[158,316],receiv:[3,8,18,20,22,28,29,30,35,36,44,51,52,61,65,70,79,84,100,107,113,141,168,175,176,193,194,196,197,198,214,219,236,243,247,253,281,296,316,319,323,325,326,332,342,343,345,352,353,370,375,377,387,390,400,443],receive_functioncal:323,receive_status_from_port:314,receiver1:193,receiver2:193,receiver_account_set:171,receiver_extern:198,receiver_object_set:295,receiver_script_set:304,recent:[17,53,90,92,111,130,151,170,357],recently_bitten:111,recev:343,recip:[47,75,93,123,165,166,199,208,211,240,443],recipe_modul:209,recipe_nam:209,recipenam:79,recipes_pot:209,recipes_weapon:209,recipi:[18,30,35,100,168,196,197,236,296,323,377],reckon:[76,78],recoc:122,recog:[36,78,122,243,443],recog_regex:243,recogerror:243,recoghandl:243,recogn:[8,32,37,56,108,109,117,123,142,149,155,163,243,253,359],recognit:[58,124,243,362],recommend:[0,2,5,8,11,13,28,37,41,48,55,67,68,69,73,76,83,84,85,87,92,100,102,103,110,116,121,123,127,144,146,147,149,155,162,192,227,231,246,272,281,292,294,296,316,368,374,387],reconfigur:155,reconnect:[168,169,187,196,311,314,323,325,326,352,355],reconnectingclientfactori:[311,325,326,345],record:[16,130,146,155,247,260,357,430],record_ip:357,recours:55,recov:[19,93,94,98,253,256,257,258,259,260,292,390],recoveri:129,recreat:[9,42,82,113,146,149,169,176,283,368,369],rectangl:373,rectangular:[100,373],recur:88,recurs:[13,282,291,300],red:[14,15,20,36,39,41,53,60,83,85,109,113,115,116,117,139,182,192,218,265,270,367,377,391],red_button:[14,15,36,109,113,165,166,182,199,261,443],red_kei:39,red_ros:111,redbutton:[14,15,36,109,113,182,265],redd:158,reddit:158,redefin:[22,37,77,87,296,430],redhat:[149,151],redirect:[44,53,62,73,77,102,113,141,145,204,218,221,374,432,436,441],redirectlink:282,redirectview:436,redit:204,redmapnod:83,redo:[27,116,117,121,372],redraw:334,reduc:[129,256,257,258,259,260,327],redund:367,reel:176,reen:[60,367],ref:[48,85,146,243,296,390,430],refactor:[99,296,393,442],refer:[7,8,10,11,13,14,20,22,28,30,36,37,41,42,44,48,53,57,58,62,67,68,72,75,76,77,79,80,81,82,84,88,98,99,101,102,103,108,111,113,114,115,116,117,119,122,123,124,127,129,139,141,142,144,145,155,157,159,163,168,176,182,187,191,196,203,210,221,225,241,243,253,256,257,258,259,260,275,281,284,291,296,306,308,309,316,326,346,354,363,374,377,381,386,387,390,399,406,441,442,443],referenc:[37,41,50,85,98,159,177,182,187,196,243,281,286,288,364,390,443],referenti:390,referr:155,refin:[81,210],reflect:[116,120,122,441],reflex:[58,377,394],reflow:56,reformat:[301,376,383],reformat_cel:376,reformat_column:[82,376],refresh:[0,53,83,142,334,357],refus:[18,55,123],regain:94,regard:[8,139,241,410],regardless:[8,20,22,39,44,48,55,57,58,65,100,104,121,127,138,168,175,196,203,218,226,243,296,309,331,334,337,352,354,362,365,368,381,383,390],regener:258,regex:[18,22,27,36,51,53,177,180,192,193,207,241,243,358,362,374,390,419],regex_nick:36,regex_tupl:243,regex_tuple_from_key_alia:243,regexfield:398,region:[74,83,100,155,180],regist:[11,51,52,53,65,73,83,129,137,141,150,152,158,159,161,168,170,187,192,235,269,270,305,314,325,326,332,355,357,359,367,377,415,421,431,434,443],register_error:367,register_ev:235,registercompon:51,registertest:431,registr:[49,150,434],registrar:151,registri:[241,357,359],regress:300,regul:292,regular:[17,18,22,31,35,42,44,47,50,52,58,73,83,85,102,109,110,111,113,116,117,121,126,132,140,142,144,155,169,175,206,240,241,271,282,286,292,309,362,365,377,381,390,394,419,442,443],regulararticl:382,regulararticle_set:382,regularcategori:382,regularli:[9,106,137,140,151,156,212,269,271,307,309,317,347,378],reilli:144,reinforc:144,reiniti:163,reinstal:149,reinvent:99,reject:[225,241],rejectedregex:241,rejoin:18,rel:[11,14,15,20,28,31,50,54,57,77,81,83,85,105,123,130,141,159,212,218,260,368,374,443],relai:[19,22,44,153,168,187,203,226,281,296,332,355,374,375,390],relat:[18,20,22,28,31,48,51,53,93,98,99,111,113,114,117,123,126,140,144,153,158,159,163,171,172,175,190,195,197,198,212,217,218,219,235,247,253,256,257,258,259,260,268,271,281,282,288,295,296,303,304,309,319,355,362,364,365,367,374,382,383,396,398,399,406,413,423,430,443],related_field:[398,399,400,402,403,404,406],related_nam:[171,198,288,295,304,362,364,365,382],relationship:[35,48,81],relay:169,releas:[76,78,84,87,93,113,124,143,144,149,155,192,394,442,443],relev:[13,15,22,33,37,45,46,48,50,53,60,73,74,76,77,83,84,85,95,100,101,126,129,130,132,141,144,168,173,175,203,204,209,253,282,292,306,328,346,353,354,355,367,372,374,384,399,406,443],relevant_choic:204,reli:[8,28,47,60,67,68,73,76,89,101,104,106,107,118,123,139,226,243,253,271,314,364,374,443],reliabl:[14,48,92,94,146,381],religion:[31,286],reload:[0,2,3,7,9,12,13,14,15,19,20,22,25,26,27,28,31,32,40,42,44,47,48,50,52,53,55,57,62,63,73,75,77,79,83,91,93,94,96,97,99,100,101,102,104,108,113,114,115,116,126,127,129,130,132,134,135,136,138,141,142,149,150,151,152,156,159,168,169,176,181,182,192,196,204,205,213,214,224,232,239,243,249,250,253,270,271,273,281,283,286,292,296,305,307,309,314,323,324,326,328,352,355,359,362,368,370,372,373,374,378,390,443],reload_evennia:314,reluct:123,remain:[6,13,14,20,22,27,28,41,42,45,57,70,95,100,107,113,114,115,126,155,163,174,176,182,184,188,205,209,212,221,224,242,253,256,257,258,259,260,269,296,314,342,343,374,375,390],remaind:[22,91,212],remaining_repeat:42,remap:[116,362],remark:443,rememb:[1,5,6,9,11,13,14,20,22,28,31,39,46,47,51,53,55,60,67,68,75,77,81,82,83,90,91,93,94,96,98,100,101,102,107,114,116,118,120,121,122,123,124,126,130,139,148,149,155,180,182,205,231,282,296,305,368,387,443],remind:[27,75,85,90,443],remit:180,remnisc:99,remot:[92,151,157,158,161,187,323,325,337,443],remov:[2,8,9,11,13,18,19,20,23,27,28,30,31,34,36,37,39,42,47,55,75,76,77,83,87,90,91,96,100,102,104,106,107,108,113,114,120,123,129,134,141,156,165,175,176,180,182,187,188,189,192,193,196,198,204,206,210,218,223,224,225,229,233,240,241,242,243,252,253,254,256,257,258,259,260,265,282,283,292,295,296,301,305,308,309,314,332,343,355,357,362,365,367,371,374,381,386,388,389,390,416,443],remove_alia:187,remove_backspac:389,remove_bel:389,remove_charact:129,remove_default:[20,176],remove_map:283,remove_non_persist:303,remove_object:283,remove_receiv:198,remove_send:198,remove_user_channel_alia:[18,196],removeth:362,renam:[5,26,76,100,104,108,109,116,117,126,134,182,188,296,303,364],render:[45,52,53,77,85,102,104,132,134,141,142,189,227,359,384,386,398,399,400,402,403,404,406,413,419,428,430,441],render_post:343,renew:[94,100,151,357],repair:[91,121,443],repeat:[3,5,68,75,82,101,116,121,123,129,134,136,138,154,163,168,169,203,212,241,254,304,307,314,319,338,362,370,374,378,390,443],repeatedli:[3,15,32,101,113,269,304,307,309,314,319,345,423],repeatlist:32,repetit:[78,101,129,241],replac:[2,13,18,20,22,27,28,30,31,32,33,36,37,41,44,49,51,58,60,73,76,77,78,82,83,85,92,94,95,99,102,103,108,113,116,118,119,122,126,129,134,142,146,151,157,159,168,174,175,176,177,180,188,189,192,193,196,203,205,207,209,214,217,223,224,225,229,232,239,240,242,243,265,268,271,272,281,282,292,296,298,300,301,326,329,342,343,353,362,367,372,373,374,375,376,377,389,390,419,421,443],replace_data:376,replace_timeslot:224,replace_whitespac:376,replacement_str:188,replacement_templ:188,replenish:[256,257,258,259,260],repli:[22,28,123,150,169,203,236,312,336,337,343,355,374],replic:[77,124,134,365],replica:114,repo:[7,11,64,85,99,112,121,144,390,443],repoint:53,report:[0,5,6,8,11,22,26,34,42,47,77,78,79,83,84,89,107,118,121,123,126,127,129,134,146,147,149,154,158,159,182,187,209,229,232,243,272,282,296,314,319,326,329,330,337,338,342,345,353,355,367,370,374,390],report_to:370,repositori:[2,10,64,76,78,85,92,112,143,145,146,149,157,301,443],repositri:64,repr:[107,390,438],reprehenderit:29,repres:[8,12,20,22,30,31,35,37,44,45,48,53,58,62,67,70,75,76,77,78,80,81,83,86,88,91,92,98,101,102,108,109,111,112,113,114,115,117,119,124,129,134,139,141,168,173,197,206,221,225,227,229,235,241,242,243,247,249,253,254,258,270,271,272,281,282,283,286,296,301,308,309,311,325,326,342,343,353,354,355,359,362,363,367,369,370,374,375,376,377,386,390,393,416],represen:114,represent:[12,13,30,35,36,44,62,67,68,70,88,93,100,114,127,139,197,229,232,243,281,294,300,304,323,342,343,365,371,378,413],reprocess:158,reproduc:[54,83,282,296],reput:[121,246,443],reqhash:[363,390],reqiur:225,request:[0,11,28,33,45,49,52,53,62,73,84,102,113,117,130,132,141,142,145,149,155,158,168,169,180,203,232,296,300,314,316,323,326,328,333,334,336,343,359,365,374,398,399,400,401,403,404,406,410,411,416,421,422,423,424,428,435,437,438,441],request_finish:45,request_start:45,requestavatarid:334,requestfactori:359,requestor:[168,357],requir:[0,2,5,8,15,16,22,27,30,31,33,34,37,39,41,47,48,49,50,51,52,53,54,59,67,72,76,77,78,79,80,81,82,83,84,85,90,100,102,106,108,121,123,124,126,129,134,136,139,140,141,142,143,144,145,146,148,151,152,154,155,161,163,170,181,182,187,197,198,209,210,213,214,224,225,239,241,243,253,254,258,259,271,272,281,282,284,287,291,294,296,300,308,314,325,326,339,347,358,363,368,373,374,375,376,377,381,385,386,387,390,398,399,400,402,403,404,406,430,436,443],require_al:[39,365],require_singl:300,requirements_extra:[0,83],requr:41,requri:[300,377],rerout:[52,179,183,326,407],rerun:[14,15,28,83,209],research:[123,144,231],resembl:[72,87,92],resend:22,reserv:[22,30,54,82,108,114,116,300,358,363,377,390],reserved_keyword:30,reserved_kwarg:[30,377],reset:[16,17,19,20,22,26,27,42,44,48,55,60,63,75,82,94,97,104,108,113,122,127,129,130,138,139,146,159,168,169,176,182,192,212,216,218,232,243,252,253,270,292,314,318,324,334,352,362,365,368,376,377,378,388,390,443],reset_cach:[362,365],reset_callcount:42,reset_gametim:[19,378],reset_serv:318,reset_tim:224,reshuffl:443,resid:[69,112,292],residu:[192,258],resist:[301,390],resiz:[52,100,373,376],resolut:[123,129,253,281],resolv:[0,3,11,85,94,103,116,117,123,124,129,155,159,240,256,257,258,259,260,413],resolve_attack:[256,257,258,259,260],resolve_combat:129,resort:[22,85,100,148,187,243,390],resourc:[0,47,49,52,53,69,73,76,85,86,93,98,108,111,112,113,114,115,116,117,118,123,134,146,155,158,168,253,259,280,289,305,312,343,359,369,388,442,443],respawn:[83,121,443],respect:[22,33,42,44,48,49,75,79,83,100,115,126,130,146,159,180,182,189,203,209,236,240,243,250,292,296,353,354,364,365,368,370,376,387,390,394,430],respond:[28,34,45,65,75,80,113,121,135,136,139,163,341,345],respons:[5,17,28,30,31,49,52,53,54,56,68,81,84,88,89,106,107,136,137,138,149,155,168,169,176,177,187,196,209,271,273,286,288,296,312,314,316,323,345,346,355,364,384,386,390,413],response_add:[398,400,403],resport:390,rest:[7,17,18,22,28,30,36,42,52,53,67,82,85,94,98,105,106,113,114,116,117,120,121,123,127,130,149,159,162,174,190,191,253,256,257,258,259,260,362,367,376,410,411,413,414,415,416,443],rest_api_en:[49,52],rest_framework:[49,410,411,412,413,414,416],restart:[0,3,7,9,11,26,40,42,51,55,64,73,100,114,117,129,146,151,155,158,159,163,165,168,192,196,204,207,232,296,303,305,307,308,309,318,331,352,353,354,390,443],restartingwebsocketserverfactori:[169,325],restock:106,restor:[20,75,139,204,210,259,305,309],restrain:[182,253,291,373,390],restrict:[13,33,41,47,48,51,57,82,90,109,112,113,118,122,127,142,145,155,182,206,241,259,260,281,286,292,294,301,303,370,372,374,376,387,443],restructur:[85,98],result1:240,result2:[28,240],result:[6,8,11,13,19,20,22,28,30,31,33,41,44,47,49,52,54,58,60,64,68,73,79,83,85,95,97,100,107,108,111,112,114,115,116,118,122,123,126,127,129,130,134,136,139,142,146,155,159,168,170,174,175,177,182,189,193,196,198,203,209,210,211,213,218,225,240,241,242,243,246,253,256,257,258,259,260,271,281,282,287,289,292,294,296,300,301,303,314,323,345,362,364,367,372,373,374,376,377,381,383,384,387,390,391,393,408,438],result_nam:240,resum:[22,83,94,126,308],resurrect:269,resync:[169,323,353],ret1:377,ret:[22,193],ret_index:390,retain:[6,19,20,31,53,54,64,82,117,226,253,286,288,301,360,364,368,370,377,383,390,394],retain_inst:177,retext:85,retract:203,retreat:260,retri:314,retriev:[6,18,22,32,46,49,67,69,74,75,83,102,130,168,171,173,176,182,187,192,193,197,224,231,253,275,282,287,291,295,300,312,319,320,326,332,341,362,365,371,381,385,387,390,395,410,411,415,416,435,438,441,443],retriv:[169,369],retro:18,retroact:[48,100],retur:29,return_alias:282,return_appear:[81,83,130,206,218,219,224,243,264,270,284,296],return_apper:[284,296],return_cmdset:189,return_detail:[224,271],return_dict:286,return_iter:300,return_key_and_categori:365,return_list:[30,362,365,377],return_map:82,return_minimap:82,return_obj:[13,36,362,365,385],return_par:301,return_prototyp:137,return_puppet:168,return_str:[30,281,377],return_tagobj:365,return_tupl:[36,213,362],returnvalu:[22,54],reus:[116,118,381],rev342453534:390,reveal:[83,120,206],reveng:124,revers:[20,22,53,58,60,82,94,96,138,139,142,171,187,198,252,273,281,288,295,304,359,362,364,365,367,382,416],reverseerror:[314,323],reversemanytoonedescriptor:[171,295,382],reverseproxyresourc:359,revert:[11,53,139,155,179,287],review:[9,20,73,75,84,88,108,122],revis:121,revisit:[2,374],reviu:28,revok:100,revolutionari:11,reward:128,rework:[94,114,121],rewrit:53,rfc1073:330,rfc858:336,rfc:[330,336],rfind:367,rgb:[60,116,367],rgbmatch:367,rgh:116,rhel:145,rhello:30,rhost:194,rhostmush:[69,72,99],rhs:[92,100,190,193],rhs_split:[182,188,190],rhslist:190,ricardo:390,riccardomurri:390,rich:[77,99,143,144,371],richard:144,rick:41,rid:[98,115],riddanc:55,riddick:225,ride:138,right:[0,3,4,5,8,9,15,22,28,30,32,33,36,41,42,49,51,52,53,54,64,75,79,80,82,83,85,87,91,92,93,94,96,98,99,100,106,107,108,111,112,113,114,116,117,120,121,124,126,130,135,138,139,141,142,145,146,149,151,154,155,176,179,182,190,192,194,196,205,209,216,218,224,225,227,232,233,240,260,265,269,270,271,273,281,282,292,301,304,354,367,368,372,376,390,391],right_justifi:41,rightmost:[83,282],rigid:99,rindex:367,ring:[118,242],ringmail_armor:13,rise:[20,101],risen:101,risk:[30,52,85,99,121,123,130,149,155,181,192,390],rival:82,rjust:[30,367,377],rm_attr:182,rnormal:60,rnote:192,road:[20,80,82,138,175],roam:[120,176,269],roar:82,robot:141,robust:[106,107,158],rock:[67,129,176],rocki:120,rod:176,role:[17,87,99,107,115,121,127,146,256,443],roleplai:[31,76,87,99,121,122,127,129,130,144,213,243,443],roll1:127,roll2:127,roll:[78,79,100,107,117,122,123,127,129,130,149,213,256,257,258,259,260,357],roll_challeng:127,roll_dic:213,roll_dmg:127,roll_hit:127,roll_init:[256,257,258,259,260],roll_result:213,roll_skil:127,roller:[79,122,123,127,129,209,213,443],rom:[144,443],roof:182,room1:8,room56:14,room:[3,8,13,14,15,16,18,19,20,22,23,33,35,41,42,46,48,49,50,55,58,69,72,74,76,77,80,82,83,86,87,88,91,97,98,99,101,106,107,109,110,111,113,114,115,116,117,118,120,126,127,129,130,135,136,137,138,140,141,149,159,165,166,173,174,175,176,180,182,188,193,199,204,206,213,215,216,217,218,221,223,224,231,243,249,250,251,256,257,258,259,260,265,267,268,269,270,272,273,275,276,278,281,282,283,284,291,296,304,318,346,368,388,410,416,431,443],room_flag:98,room_lava:98,room_replac:216,room_typeclass:[273,388,431],room_x_coordin:83,room_y_coordin:83,room_z_coordin:83,roombuildingmenu:[77,204],roomnam:[100,182],roomref:138,rooms_with_five_object:111,roomstat:218,roomviewset:416,root:[0,2,4,5,6,7,9,10,14,33,37,53,58,67,73,76,77,85,88,102,104,112,134,142,143,146,149,151,154,155,157,165,166,270,296,301,314,359,371,396,409,421,443],rose:[13,36,37,48,110,111,118],roster:[76,122,256,257,258,259,260],rosterentri:76,rot:8,rotat:[18,113,218,383],rotate_flag:218,rotate_log_fil:383,rotatelength:383,rough:[85,121],roughli:[100,121,390],round:[5,17,30,242,253,260,345,376,377],rounder:242,rout:[51,81,83,98,109,138,168,275,281,282],router:[155,412,415,443],routerlink:83,routermaplink:[83,282],routin:[243,294,349,387,390],row:[51,56,60,67,75,81,82,85,88,100,102,111,129,132,139,281,284,376,390],rpcharact:243,rpcommand:243,rpg:[100,103,113,114,121,127,213,260,443],rpi:144,rplanguag:[122,165,166,199,243,443],rpm:149,rpobject:243,rpsystem:[58,85,122,165,166,199,239,242,443],rpsystemcmdset:243,rred:367,rsa:[334,335],rspli8t:107,rsplit:[130,367],rss2chan:[26,108,156,187],rss:[9,144,161,165,166,169,187,195,310,319,322,332,443],rss_enabl:[156,187],rss_rate:169,rss_update_interv:187,rss_url:[156,169,187],rssbot:169,rssbotfactori:333,rsschan:187,rssfactori:333,rssreader:333,rst:443,rstop:182,rstrip:[107,367],rsyslog:246,rtest2:60,rtext:[106,377],rthe:77,rthi:[60,116],rtype:359,rubbish:179,rubbl:83,rubi:88,rudimentari:269,ruin:[120,224,271],rule:[4,8,11,14,15,22,33,55,60,87,91,100,113,117,121,122,128,139,144,204,210,241,242,253,256,257,260,288,368,443],rulebook:[123,129],rumor:31,rumour:120,run:[0,2,5,6,9,10,11,12,13,14,15,16,18,19,20,25,28,30,31,33,40,41,42,47,48,49,50,51,52,53,54,62,64,67,71,75,76,78,80,82,83,85,86,88,91,92,93,94,98,99,101,102,104,106,107,108,109,111,113,114,115,116,117,119,120,121,122,123,124,126,127,130,132,134,138,139,140,141,142,144,145,146,147,148,149,151,153,155,158,159,162,163,165,168,169,173,174,176,177,181,182,188,189,192,193,196,209,217,232,233,243,246,250,254,256,257,258,259,260,268,273,281,282,291,292,296,300,301,303,304,307,308,309,314,318,320,324,331,332,339,343,345,348,352,353,357,359,364,367,368,372,374,375,377,378,383,387,388,390,416,441,442,443],run_async:[54,390],run_connect_wizard:314,run_custom_command:314,run_dummyrunn:314,run_evscaperoom_menu:217,run_exec:374,run_exec_then_goto:374,run_init_hook:352,run_initial_setup:352,run_menu:314,run_option_menu:217,run_start_hook:[48,364],rundown:119,runexec:374,runexec_kwarg:374,runnabl:41,runner:[2,5,7,270,345,443],runsnak:5,runsnakerun:5,runtest:[193,202,211,222,233,248,252,266,279,340,350,382,388,395,414,425,431],runtim:[19,22,55,101,177,204,272,378,390],runtimeerror:[127,168,169,209,229,232,235,241,242,253,280,283,300,332,362,374,377,390],runtimewarn:[280,300],rusernam:28,rush:94,russian:64,rusti:[49,58,106],ruv:2,ryou:77,s3boto3storagetest:202,s3boto3testcas:202,sad:[141,337,374],sadli:194,safe:[0,6,11,20,37,52,53,78,80,83,88,95,98,105,122,123,141,151,159,161,168,179,203,292,309,323,355,359,364,368,371,377,381,390,443],safe_convert_input:390,safe_convert_to_typ:[30,390],safe_ev:390,safer:[14,55],safest:[44,75,155,364],safeti:[12,37,48,98,122,130,155,182,203,295,368,443],sai:[0,5,8,9,11,13,15,17,18,19,20,22,26,28,33,37,39,41,48,50,51,53,54,55,60,62,72,74,75,77,80,83,88,92,94,96,97,98,99,100,101,102,107,108,109,111,114,116,117,122,123,124,126,127,129,130,135,136,139,143,149,155,176,188,196,203,205,213,216,218,225,235,242,243,253,254,265,271,296,374,377],said:[0,8,28,46,54,65,75,77,80,81,82,90,97,99,107,114,116,122,123,136,142,174,187,191,243,273,281,296,326,362,364,374],sake:[14,73,99,116,121,123,124,139,194,214,440,441],sale:106,salt:[79,209],same:[0,3,5,6,7,8,9,11,12,13,14,15,16,18,19,20,22,27,30,31,32,33,34,35,37,39,41,42,44,46,47,48,50,52,53,54,55,56,57,58,60,62,63,64,65,67,68,69,70,75,76,77,78,82,83,84,85,87,88,91,93,94,97,98,99,100,101,102,104,106,107,108,109,111,112,113,114,115,116,117,118,123,124,126,127,129,130,134,138,139,141,142,143,146,149,151,155,156,157,159,162,163,168,173,174,175,176,177,180,182,187,190,191,192,193,194,202,204,206,209,212,218,219,223,224,227,231,232,236,241,242,243,249,251,253,254,256,257,258,259,260,269,271,272,273,275,282,284,286,291,296,300,301,304,305,309,318,323,335,338,339,353,354,355,357,359,362,363,364,365,367,368,370,374,375,376,377,378,383,384,390,393,399,406,416,430,441,443],sampl:[2,98,145,157,254],san:227,sand:[101,210],sandi:82,sane:[1,83,85,121,144,282,441],sanit:[430,441],saniti:[8,76,81,82,83,116,384],sarah:[72,188],sat:[74,91,218],satisfi:[69,190,362],satur:158,sauc:116,save:[2,3,6,11,16,19,22,27,28,34,35,36,37,41,42,44,45,46,47,48,50,53,67,75,76,77,80,88,91,94,98,108,110,113,114,116,129,130,141,147,148,151,157,158,163,168,179,182,192,196,198,202,204,232,242,292,295,296,298,300,301,305,307,308,309,312,319,332,347,352,359,362,364,371,372,381,384,385,386,390,398,399,400,403,404,406,443],save_a:[400,402,403,404,405],save_as_new:[399,406],save_buff:372,save_data:384,save_for_next:[22,177],save_handl:384,save_kwarg:385,save_model:[398,400,403,404],save_nam:309,save_on_top:[400,402,403,404,405],save_prototyp:300,save_recip:240,savefunc:[27,372,385],savehandl:385,saver:371,saverdict:371,saverlist:371,saverset:371,saveyesnocmdset:372,savvi:124,saw:[54,80,102,114,116],say_text:136,saytext:243,scale:[7,50,60,85,99,113,121,127,146,242,442],scalewai:155,scam:123,scan:[83,145,173,269,271,281,282,284],scarf:206,scari:[114,116],scatter:[258,368],scedul:378,scenario:[100,279],scene:[6,13,32,41,46,60,87,91,117,120,123,127,129,139,241,253,271,304,309,381],schedul:[19,101,212,232,308,378],schema:[11,48,67,88,90,390,443],scheme:[22,60,67,93,116,149,182,192,367],school:123,sci:83,scienc:81,scientif:144,scipi:[83,282],scissor:[79,129],scm:76,scope:[32,50,87,88,94,121,122,123,126,142,241,370],score:[100,219,390,443],scraper:436,scratch:[9,10,53,62,80,99,100,122,123,130,134,149,217,253,283,318],scream:120,screen:[6,22,24,28,29,31,32,41,42,44,56,60,63,83,104,106,113,115,122,141,157,159,194,214,227,260,319,334,375,377,390,398,443],screenheight:[32,319],screenread:[26,32,194,319,342,343],screenshot:141,screenwidth:[32,177,319],script:[2,5,7,10,13,14,15,19,24,26,30,33,34,35,37,41,44,45,46,47,48,49,51,67,69,78,83,86,87,98,99,101,106,108,109,112,113,114,118,120,123,124,129,135,137,140,141,149,152,155,158,159,163,165,166,168,169,181,182,192,197,198,199,203,212,215,224,228,229,235,240,241,242,250,256,257,258,259,260,262,265,271,273,283,295,296,300,301,314,347,352,368,369,370,377,378,385,387,388,390,396,397,410,413,416,421,431,443],script_copi:303,script_search:303,script_typeclass:[266,388,431],scriptadmin:404,scriptattributeinlin:404,scriptbas:307,scriptclass:306,scriptdb:[48,86,165,304,361,404,410,413],scriptdb_db_attribut:404,scriptdb_db_tag:404,scriptdb_set:[171,295,362,365],scriptdbfilterset:[410,416],scriptdbmanag:[303,304],scriptdbseri:[413,416],scriptdbviewset:416,scriptform:404,scripthandl:[165,166,302,443],scriptlistseri:[413,416],scriptmanag:303,scriptnam:[182,369],scripttaginlin:404,scroll:[6,29,31,112,116,130,149,375],scrollback:18,scrub:355,sdesc:[78,98,122,239,243],sdesc_regex:243,sdescerror:243,sdeschandl:243,sdk:149,sea:[82,120],seal:122,seamless:243,seamlessli:40,search:[3,8,11,12,14,18,22,26,27,30,31,35,36,37,41,42,48,64,74,75,76,77,83,87,88,91,95,100,103,108,111,112,113,114,115,116,119,123,124,126,127,129,130,134,142,159,165,166,168,170,173,175,177,182,187,189,196,197,203,218,221,231,236,240,243,256,257,258,259,260,271,273,275,281,282,284,286,287,288,289,291,294,296,300,301,303,306,320,362,363,364,365,366,367,370,372,377,390,410,419,443],search_:[19,111,118],search_account:[19,45,86,100,118,165,170,296,387],search_account_tag:387,search_at_multimatch_input:296,search_at_result:[243,296],search_channel:[19,86,165,187,197,387],search_channel_tag:387,search_field:[189,398,400,402,403,404,405,406],search_for_obj:182,search_help:[19,31,86,165,287],search_help_entri:387,search_helpentri:287,search_index_entri:[177,179,180,181,182,187,188,189,190,191,192,193,194,203,204,205,206,209,210,213,214,216,224,225,226,230,236,239,240,243,249,250,251,254,256,257,258,259,260,265,269,270,271,272,275,286,288,289,296,345,372,374,375],search_messag:[19,35,86,165,197,387],search_mod:243,search_multimatch_regex:296,search_object:[13,14,18,19,48,82,86,114,116,118,138,165,168,294,387],search_object_attribut:118,search_objects_with_prototyp:300,search_prototyp:300,search_script:[19,42,83,86,165,303,387],search_script_tag:387,search_tag:[46,74,86,111,118,165,387],search_tag_account:46,search_tag_script:46,search_target:236,searchabl:[112,231],searchdata:[168,243,294,296,387],searching_cal:443,season:[78,121,122,124,224,443],seat:121,sec:[32,54,94,101,212,326,378],secmsg:383,second:[5,8,13,15,19,20,22,28,30,33,39,41,42,47,54,56,58,60,67,68,75,77,83,85,91,92,94,96,101,102,105,106,107,108,114,116,118,122,129,130,137,138,139,140,142,149,155,158,159,163,168,169,174,182,187,189,193,209,212,223,231,232,235,243,250,253,256,257,258,259,260,262,269,281,291,296,301,308,309,314,319,328,333,346,357,367,370,374,377,378,383,390,391],secondari:[104,354],secondli:[37,110],secreci:11,secret:[76,113,121,150,152,213,314,443],secret_kei:76,secret_set:[76,90,113,146,150,314],sect_insid:81,section:[0,2,5,8,13,16,20,22,25,28,30,31,33,37,42,48,50,51,53,58,62,67,70,76,77,82,83,85,90,91,92,94,96,100,101,102,103,109,111,112,114,115,116,118,119,123,141,146,149,154,155,157,162,189,224,242,296,301,367,368,374,391,410,443],sector:81,sector_typ:81,secur:[0,13,14,30,33,41,60,69,77,99,106,130,141,142,149,155,161,165,166,177,181,192,196,199,286,288,296,334,364,377,383,390,430,443],secure_attr:33,sed:2,sedat:253,see:[0,3,4,5,7,8,9,10,11,12,13,14,15,18,19,20,21,22,25,27,28,29,30,31,32,33,35,36,37,39,41,42,44,47,48,50,51,52,53,54,55,57,58,60,62,64,67,68,69,70,73,75,76,77,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,104,105,107,108,109,111,112,113,114,115,116,117,119,120,122,123,124,126,129,130,132,134,135,136,137,138,139,140,141,142,145,146,149,150,151,152,153,154,155,156,157,158,159,163,168,177,179,181,182,187,188,189,190,192,193,194,196,199,203,204,209,210,214,216,218,221,223,227,229,236,240,241,242,243,247,250,251,253,254,256,257,258,259,260,262,265,269,271,272,273,275,280,281,282,284,286,288,289,295,296,308,312,314,316,317,325,326,327,328,330,334,335,337,339,341,342,343,345,346,354,355,359,362,367,370,371,372,373,376,377,385,386,390,393,394,424,430,435,438,441,442,443],seed:[79,209,211,282],seek:[120,218,292,383],seem:[20,41,51,77,90,96,98,119,121,124,126,130,138,147,149,154,163,194,362,368],seen:[8,11,20,28,44,58,62,75,77,80,81,82,85,94,99,100,102,104,107,108,111,114,115,117,119,126,137,138,139,204,326,376],sefsefiwwj3:76,segment:[138,359],seldomli:[177,193],select:[7,11,12,19,20,28,39,44,50,51,52,53,67,74,77,82,102,106,109,122,130,137,141,148,149,159,174,175,180,217,254,257,364,372,374,408,413,443],selet:374,self:[3,8,12,13,14,19,20,22,27,28,33,36,37,39,41,42,47,48,50,54,62,64,67,72,75,76,77,79,81,83,85,91,92,93,94,95,96,97,98,99,100,101,104,105,106,108,109,114,115,116,117,118,122,123,126,127,129,130,135,136,137,138,140,142,149,152,153,168,169,171,173,175,176,177,179,182,183,187,190,192,193,194,196,198,203,204,205,206,209,210,213,216,217,218,221,224,225,229,236,239,240,243,253,254,256,257,258,259,260,262,265,268,269,270,271,272,273,275,280,283,286,291,296,308,312,314,316,317,321,325,326,332,334,335,337,339,341,342,343,345,353,354,355,362,364,365,367,372,374,375,377,381,384,385,386,390,424,443],self_fire_damag:210,self_pid:390,self_refer:13,selfaccount:100,selfself:42,sell:[106,122,123,143,203],semi:[5,109,116,140,223,242],semicolon:[33,292,370],send:[5,12,18,19,22,28,29,30,32,33,37,39,42,44,45,47,49,51,52,53,55,65,70,74,77,79,83,88,89,92,94,100,104,107,108,113,115,118,123,127,129,130,136,137,139,141,151,152,158,161,163,168,169,176,177,180,187,193,196,197,198,203,209,218,225,226,236,243,247,260,262,264,268,269,281,282,296,308,309,311,314,316,317,319,323,324,325,326,327,329,332,333,334,336,337,338,340,342,343,345,346,353,354,355,356,367,370,371,374,376,390,394,443],send_:[62,65,332],send_adminportal2serv:324,send_adminserver2port:311,send_authent:325,send_channel:[325,326],send_default:[62,65,325,326,332,334,337,342,343],send_defeated_to:269,send_emot:243,send_functioncal:323,send_game_detail:316,send_heartbeat:325,send_instruct:314,send_mail:236,send_msgportal2serv:324,send_msgserver2port:311,send_p:326,send_privmsg:326,send_prompt:[65,334,337,342,343],send_random_messag:262,send_reconnect:326,send_request_nicklist:326,send_status2launch:324,send_subscrib:325,send_testing_tag:268,send_text:[62,65,334,337,342,343],send_to_online_onli:[18,196],send_unsubscrib:325,sender:[18,35,45,168,169,196,197,198,203,218,243,264,296,325,356,370,381,387,400],sender_account_set:171,sender_extern:198,sender_object:356,sender_object_set:295,sender_script_set:304,sender_str:196,senderobj:370,sendlin:[334,337,342],sendmessag:[62,225],sens:[20,33,37,52,53,54,64,67,77,83,84,98,100,117,126,138,146,175,253,265,370,371,374],sensibl:[18,31,155],sensit:[13,28,31,33,39,100,111,170,197,204,212,224,232,247,248,284,287,363,365,378,387],sensivit:241,sent:[5,18,28,30,32,35,44,45,51,53,65,68,70,92,100,102,107,113,116,151,168,169,173,187,193,196,197,198,204,214,218,225,232,236,247,264,266,272,296,311,314,316,319,323,324,325,326,334,338,342,353,355,362,374,387,413,443],sentenc:[58,64,80,107,218,235,242,243,390],senwmaplink:[83,282],sep:[64,367,390],sep_kei:[77,204],separ:[5,7,11,13,14,15,18,20,22,31,33,34,36,37,40,42,44,46,47,51,53,58,62,67,72,74,78,79,80,83,84,85,88,94,99,100,101,106,107,108,109,111,115,116,117,121,122,130,134,138,139,141,145,146,152,153,154,156,158,174,176,177,182,188,189,190,192,193,204,209,232,235,236,242,243,253,254,256,257,258,259,260,271,273,277,281,282,284,287,292,294,295,296,300,305,309,333,338,343,355,367,368,370,373,377,387,390,394,399,443],separatli:94,sepat:209,seq:36,sequenc:[14,15,16,22,33,36,37,52,54,70,85,88,104,113,120,123,126,139,177,181,193,196,209,212,221,243,281,292,312,318,367,368,374,376,389,390],sequenti:123,seri:[4,11,18,28,60,116,122,123,124,126,134,144,376],serial:[13,50,65,165,166,299,308,309,332,371,384,386,390,396,398,400,403,404,409,416,443],serializ:343,serialized_str:[398,400,403,404],serializer_class:416,seriou:[96,163],serious:149,serv:[52,53,65,73,81,82,88,108,113,117,118,123,151,158,159,175,258,343,359,368,370,428],server:[0,2,5,6,7,8,9,11,12,13,14,16,18,19,20,22,25,26,28,30,31,32,33,34,37,41,42,45,47,48,50,51,52,53,54,55,57,62,63,65,67,68,70,73,75,76,79,82,83,84,85,86,87,88,89,90,91,92,93,94,98,99,100,101,102,104,107,108,112,114,115,116,117,119,120,123,124,126,127,129,134,136,138,141,142,143,144,148,149,150,151,152,153,154,157,158,163,165,166,168,169,176,180,182,187,192,194,196,199,204,207,209,214,216,224,232,239,243,244,245,246,249,250,253,269,270,271,273,276,277,283,286,296,303,304,305,307,309,360,364,368,370,371,374,378,381,383,390,396,397,413,421,442,443],server_connect:332,server_disconnect:332,server_disconnect_al:332,server_epoch:[19,378],server_l:324,server_logged_in:332,server_nam:159,server_pid:[324,390],server_receive_adminportal2serv:311,server_receive_msgportal2serv:311,server_receive_statu:311,server_reload:[305,309],server_run:314,server_runn:352,server_servic:390,server_services_plugin:[62,113,159],server_services_plugin_modul:62,server_session_class:44,server_session_sync:332,server_st:314,server_twistd_cmd:324,server_twisted_cmd:324,serverconf:[180,309,443],serverconfig:[308,309,320,321],serverconfigadmin:405,serverconfigmanag:[320,321],serverfactori:[324,334,337],serverload:[26,192],serverlogobserv:383,servermsg:383,servernam:[32,53,76,90,145,148,155,159],serversess:[44,62,108,165,166,247,292,310,332,355,362,443],serversessionhandl:[44,62,355,443],serverset:[33,187,291],servic:[11,26,55,62,108,113,141,146,151,152,155,157,158,159,163,165,166,192,310,311,314,315,323,324,331,352,359,390,443],sessdata:[354,355],sessid:[12,22,44,130,295,296,311,323,324,332,355],session:[8,12,16,20,22,24,26,28,30,32,34,37,39,42,45,55,62,68,86,99,104,105,107,108,112,114,115,123,130,147,157,165,166,168,169,170,171,173,174,175,177,179,180,183,185,190,194,214,217,225,226,246,247,248,268,295,296,298,299,300,305,310,311,319,323,324,325,326,332,333,334,337,342,343,352,353,355,357,372,374,375,377,390,391,413,443],session_data:355,session_from_account:355,session_from_sessid:355,session_handl:[44,86,165],session_id:413,session_portal_partial_sync:355,session_portal_sync:355,sessioncmdset:[20,26,115,185],sessionhandl:[62,65,165,166,168,296,310,319,325,326,332,333,353,354,443],sessionid:332,sessions_from_account:355,sessions_from_charact:355,sessions_from_csessid:[332,355],sessions_from_puppet:355,sessionsmain:86,sesslen:296,set:[0,2,3,5,6,9,10,12,13,14,15,16,17,18,19,21,22,24,25,26,27,29,30,31,32,35,36,37,39,41,42,44,45,46,48,49,50,51,53,54,55,56,57,58,60,62,63,64,65,67,69,70,71,72,73,75,77,78,79,80,82,83,84,85,86,87,88,91,92,94,95,96,97,98,99,100,102,105,106,107,108,109,110,111,112,113,115,116,117,121,124,126,128,129,132,134,135,137,138,139,141,142,145,146,147,149,151,152,154,157,161,162,163,165,167,168,169,171,173,174,175,176,177,179,180,182,183,184,185,186,187,189,190,193,194,195,196,202,204,205,206,207,209,210,211,212,213,214,216,217,218,219,221,222,224,225,226,230,232,235,239,240,242,243,246,249,250,252,253,254,256,257,258,259,260,265,266,268,269,270,271,272,273,275,276,277,278,279,281,282,284,286,291,292,294,295,296,299,300,301,306,307,308,309,311,313,314,318,319,320,321,324,325,327,328,330,331,334,336,337,339,340,345,346,348,350,352,353,354,355,357,359,360,362,363,364,365,367,368,369,370,371,372,373,374,375,376,377,378,381,382,383,384,385,386,387,388,389,390,391,399,402,403,405,406,411,412,414,415,416,419,423,430,431,438,443],set_active_coordin:273,set_al:269,set_alias:177,set_atribut:416,set_attr:182,set_attribut:416,set_cach:362,set_character_flag:218,set_class_from_typeclass:364,set_dead:269,set_desc:187,set_descript:28,set_detail:[224,271],set_flag:[218,219],set_gamedir:314,set_kei:177,set_lock:187,set_log_filenam:196,set_nam:28,set_password:168,set_posit:218,set_task:232,set_trac:[3,165],setcolor:104,setdesc:[26,99,108,188,249],setflag:[216,218],setgend:226,sethelp:[26,31,108,109,189,286],sethom:[26,108,182],setlock:249,setnam:62,setobjalia:[26,182],setperm:180,setpow:443,setspe:250,sett:156,settabl:[32,67,114,337],setter:96,settestattr:27,settingnam:33,settings_chang:45,settings_default:[8,86,90,112,114,159,165,166,383,390,443],settings_ful:159,settings_mixin:[5,165,166,310,344,443],settl:[82,129],setup:[0,5,6,8,11,16,31,49,53,62,64,67,72,83,85,100,106,121,129,137,151,152,154,157,159,163,168,179,187,193,202,211,212,222,233,252,265,266,268,271,279,289,296,307,318,331,340,345,349,350,352,359,362,364,381,382,388,414,431,442,443],setup_str:349,setuptool:[149,154],sever:[2,3,13,15,20,22,27,29,33,39,41,42,48,49,51,53,57,70,75,77,83,85,94,98,99,101,102,111,116,119,122,123,128,129,144,159,181,182,190,192,224,231,232,269,271,296,340,341,365,370,390,443],sewag:83,sex:226,shadow:31,shall:[139,142],shaman:[41,99],shape:[77,82,96,100,109,121,210,273,376],sharabl:41,share:[2,3,18,20,33,44,46,48,52,67,73,76,80,84,88,92,99,113,119,123,129,141,149,150,155,158,231,232,301,309,345,362,363,365,376,390,398,413,416,424,443],shared_field:413,sharedloginmiddlewar:424,sharedmemorymanag:[363,380],sharedmemorymodel:[198,288,362,364,381,382,443],sharedmemorymodelbas:[171,198,288,295,304,362,364,381,382],sharedmemorystest:382,sharp:210,shaw:144,she:[22,31,58,75,77,98,107,122,139,204,226,242,377,393,394],sheer:182,sheet:[28,51,85,122,123,141,142,146,373,443],sheet_lock:100,shell:[0,2,5,9,36,48,67,69,85,92,99,100,116,146,149,151,154,155,157,158,163,334,362],shell_plu:0,shield:[67,94],shift:[15,16,19,69,83,232,270,287,390],shiftroot:270,shine:[83,91,271],shini:[49,390],shinier:49,ship:[82,87,88,109,120,154],shire:101,shirt:206,shoe:206,shoot:[91,259,260,373],shop:[28,69,99,123,443],shop_exit:106,shopcmdset:106,shopkeep:[103,122],shopnam:106,shopper:106,short_descript:148,shortcom:106,shortcut:[4,13,18,19,20,22,30,45,48,72,75,77,79,85,94,102,107,112,116,129,132,141,142,146,157,165,169,176,177,182,187,204,209,229,273,292,296,384,390,443],shorten:[3,48,80,301,413],shorter:[48,62,69,83,85,114,126,135,136,140,159,196,242,362,363,370,383],shortest:[83,96,243,275,279,281,282],shorthand:[37,139,182],shortli:[75,77,126],shortsword:111,shot:259,should:[0,3,5,6,7,8,9,10,11,12,13,14,15,16,18,19,20,22,28,30,31,32,33,35,37,39,41,42,44,45,46,47,48,50,51,53,54,55,56,57,58,60,62,63,64,65,67,68,69,70,72,73,74,75,76,77,78,79,80,82,83,84,85,87,88,90,92,94,96,99,100,101,102,104,105,106,107,108,109,111,113,114,115,116,117,118,119,120,121,122,124,126,127,129,130,132,134,138,139,141,142,145,146,147,149,150,151,153,154,155,156,157,158,159,162,163,168,169,171,173,175,176,177,179,181,182,183,186,187,189,190,192,193,194,196,198,202,204,206,209,210,211,212,216,218,219,221,223,224,229,232,235,236,239,240,241,242,243,246,252,253,256,257,258,259,260,268,269,271,272,275,277,279,281,282,283,284,286,291,292,295,296,298,300,301,304,307,308,309,312,313,314,318,321,325,331,334,337,338,340,342,343,345,346,352,353,354,355,357,358,360,362,364,365,367,368,370,371,372,374,375,376,377,378,383,384,385,386,388,390,391,398,399,406,430,431,436,443],should_join:196,should_leav:196,should_list_top:189,should_show_help:189,shoulddrop:[260,296],shoulder:[100,206],shouldget:[260,296],shouldgiv:[260,296],shouldmov:[256,257,258,259,260,296],shouldn:[14,75,77,91,94,100,139,204,232,235,259,296,345],shouldrot:383,shout:[94,216,218],shove:91,show:[0,3,6,7,8,9,11,13,14,15,18,19,22,25,28,29,30,31,42,44,50,51,53,55,58,59,60,62,67,72,75,77,78,79,80,81,82,83,84,85,87,88,89,95,96,99,100,101,102,104,105,106,107,108,109,113,114,115,116,117,119,120,121,122,123,125,126,127,128,129,131,133,134,135,136,137,139,141,142,147,148,149,151,152,155,156,158,159,163,168,179,180,182,187,188,189,190,192,194,203,205,206,213,214,216,224,225,227,239,253,254,259,260,265,271,272,273,275,279,281,282,284,286,296,298,300,301,312,314,323,362,372,374,383,384,385,390,394,430,443],show_change_link:398,show_foot:375,show_map:81,show_non_edit:300,show_non_us:300,show_valu:227,show_version_info:314,show_warn:314,showcas:[20,82,113,120],shown:[22,25,28,31,41,42,50,59,75,76,77,81,90,92,94,99,101,114,126,138,141,148,177,180,187,191,193,204,206,209,223,241,243,253,265,270,281,282,296,314,374,375,419],showtim:101,shrink:[115,376],shrug:80,shuffl:19,shun:[0,69,155],shut:[5,51,75,90,94,116,157,159,168,192,296,307,309,314,316,323,324,331,332,352,355,443],shutdown:[5,20,26,42,44,55,57,100,108,163,168,169,192,303,309,314,323,324,331,352,353,364,370,374],shy:[0,72,121,124],sibl:[13,42,54,99,117],sid:180,side:[2,8,13,30,32,42,44,46,51,53,65,75,78,81,83,85,100,107,111,122,123,127,139,141,147,168,169,171,182,188,190,198,203,213,249,282,288,295,304,311,319,323,324,332,335,338,339,342,353,354,355,362,364,365,367,376,382],sidebar:[53,128,131,443],sidestep:57,sidewai:376,sigint:314,sign:[7,15,47,65,75,80,83,107,109,111,113,118,130,140,155,187,218,224,281,296,309,362,367,391],signal:[5,24,163,165,166,256,257,258,259,260,280,310,314,337,343,345,381,443],signal_acccount_post_first_login:45,signal_account_:45,signal_account_post_connect:45,signal_account_post_cr:45,signal_account_post_last_logout:45,signal_account_post_login:45,signal_account_post_login_fail:45,signal_account_post_logout:45,signal_account_post_renam:45,signal_channel_post_cr:45,signal_helpentry_post_cr:45,signal_object_:45,signal_object_post_cr:45,signal_object_post_puppet:45,signal_object_post_unpuppet:45,signal_script_post_cr:45,signal_typed_object_post_renam:45,signatur:[22,30,127,177,221,229,253,280,286,308,312,314,316,317,325,334,335,337,339,342,343,362,367,374,385,386,424],signed_integ:391,signedinteg:384,signedon:326,signifi:[15,22,291,362],signific:[6,30,83,193,377],significantli:27,signup:90,silenc:[187,316],silenced_system_check:8,silent:[13,54,101,136,180,187,265,318,326],silli:[37,41,111],silmarillion:118,silvren:155,similar:[0,7,13,14,22,28,31,37,48,49,51,52,53,67,72,74,75,77,83,87,88,91,92,100,109,114,120,121,127,134,138,151,155,168,177,179,193,196,204,209,225,242,256,257,258,259,260,273,288,296,355,365,370,374,390,413,439,443],similarli:[46,83,100,101,155,253,257,272,399,406,413],simpl:[0,12,13,14,15,16,17,20,22,25,27,30,31,32,37,39,41,44,46,53,54,58,62,64,67,68,69,73,75,76,79,80,81,82,83,85,87,88,89,90,92,93,95,96,98,99,100,102,104,106,107,108,114,115,117,118,120,121,122,126,127,128,129,130,131,135,136,137,139,140,141,151,155,156,157,158,182,196,203,204,205,209,210,214,216,218,224,225,226,231,236,240,241,242,243,249,250,251,253,254,256,257,258,259,260,262,264,265,269,270,271,273,279,285,295,296,301,307,324,333,335,362,368,369,374,377,390,427,428,430,443],simple_ev:30,simpledoor:[165,166,199,443],simpleev:30,simplemu:147,simpleobjectdbseri:413,simpler:[16,54,98,181,182,371,439],simpleresponsereceiv:316,simplest:[13,39,53,94,100,108,127,129,155,176,368,391],simpli:[8,9,11,13,14,17,20,28,33,39,41,46,48,53,55,60,62,65,74,77,81,84,85,91,92,94,96,100,104,106,109,112,115,121,122,126,127,130,136,138,140,145,146,149,152,153,158,159,168,175,176,177,193,194,196,204,214,224,233,243,250,254,256,257,258,259,260,264,265,270,281,286,288,296,332,362,364,368,369,373,375,390],simplic:[58,77,96,139,194,214,270],simplif:[123,129],simplifi:[5,54,64,82,102,114,129,136,157,229],simplist:[51,129,130,140,242,251],simul:[5,22,117,123,127,250],simultan:[68,100,123,129,294,390],sinc:[0,3,5,6,8,11,13,14,15,18,19,20,22,25,27,28,30,31,32,33,34,35,37,39,42,47,48,52,53,54,57,58,60,62,64,65,67,68,73,75,76,77,81,82,83,85,87,88,90,91,92,93,94,96,97,98,99,100,101,102,106,107,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,126,129,130,132,136,138,139,141,142,146,148,151,155,157,159,163,168,169,171,175,176,177,182,190,191,192,193,197,203,204,205,209,212,218,224,236,243,254,256,257,258,259,260,265,270,271,277,281,282,291,294,296,300,301,305,308,309,314,316,319,331,336,338,352,353,355,357,362,363,364,368,369,370,372,374,377,378,381,383,386,387,388,390,399,406,430],singl:[5,8,9,15,20,22,28,30,35,36,42,44,46,48,54,56,65,68,69,72,75,77,78,82,83,84,85,87,88,97,99,100,111,115,116,117,120,122,123,127,146,151,155,168,180,182,187,188,192,198,204,210,241,246,253,254,256,257,258,259,260,271,272,273,279,281,282,284,296,300,301,308,309,346,353,355,362,363,365,367,368,373,374,376,390,393,430,443],single_type_count:206,singleton:[34,44,47,83,305,308,369,443],singular:[85,100,296,393,395],sink:0,sint:29,sir:80,sit:[15,18,22,39,48,65,87,94,108,113,115,116,117,123,126,130,138,149,155,190,193,196,198,218,221,235,236,243,270,271,282,292,306,309,327,365,370,385,388],sitabl:48,sitat:271,site:[6,17,33,40,50,53,56,82,84,102,141,142,144,145,146,151,152,155,156,157,158,282,359,401,421,443],site_head:[50,421],site_id:53,sitekei:443,sitsondthi:126,sitsonthi:126,sittabl:[218,443],sittablein:126,sitter:126,situ:[13,364,371],situat:[3,11,13,22,30,31,42,44,48,52,64,65,67,75,77,80,84,101,115,118,126,176,177,182,219,231,381],six:[107,127,213,254],sixti:101,size:[3,6,51,56,69,81,82,83,100,124,147,165,202,273,281,282,316,330,367,373,375,376,381,383,390],size_limit:390,skeleton:130,sketch:129,skill:[8,58,78,87,89,93,94,95,103,111,113,116,121,122,127,129,138,141,142,144,163,210,242,243,252,253,284,373,443],skill_combat:127,skill_craft:79,skill_requir:210,skill_rol:210,skillnam:127,skillrecip:79,skim:[111,124],skin:[41,210],skip:[0,7,11,18,20,22,41,47,53,58,68,81,83,85,101,108,109,111,113,115,117,121,124,154,157,168,181,182,210,296,300,362,371,390,408],skip_cal:218,skipkei:343,skippabl:[22,72],skull:41,sky:[42,140],slack:144,slam:225,slash:[53,87,109,119,120,127,129,202,270],slate:[82,115],sleep:[22,30,54,94,123,127],sleepi:13,slew:[127,154,368],slice:[179,367,375],slice_bright_bg:179,slice_bright_fg:179,slice_dark_bg:179,slice_dark_fg:179,slide:[210,265],slider:53,slight:[107,145,212,232],slightli:[3,31,101,122,129,130,144,149,198,224,257,272,398,441],slip:389,slogan:76,sloppi:85,slot:[53,78,100,142,224,225,253,257,259,301,390],slow:[5,19,122,129,192,197,250,269,273,277,282,300,327,333,367,387,390,443],slow_exit:[165,166,192,199,443],slower:[5,42,101,123,155],slowexit:250,slowli:[144,253,442],slug:[177,196,286,288,364,438,441],slugifi:[435,438],slugify_cat:438,small:[5,6,8,9,15,16,22,35,52,56,69,79,82,83,84,87,89,90,92,95,99,100,102,103,104,106,107,120,121,122,123,124,126,130,131,144,149,155,156,209,213,253,259,265,273,275,276,279,281,337,372,373,376,390],smaller:[14,15,56,85,253,279,376],smallest:[39,100,101,155,212,242,253,373,390],smallshield:67,smart:[107,273,282],smarter:41,smartmaplink:282,smartreroutermaplink:282,smartteleportermaplink:282,smash:265,smaug:[108,114,115,117],smedt:393,smell:[83,121,218],smellabl:218,smelli:41,smile:[22,30,114,122,188,216,395],smith:[58,373],smithi:94,smoothi:240,smoothli:142,snake:[53,134],snap:105,snapshot:11,snazzi:143,sneak:292,snippet:[14,20,33,41,52,54,60,87,88,91,108,122,192,323,389,390,443],snonewaymaplink:[83,282],snoop:[151,158],snow:209,snowbal:209,snuff:0,soak:115,social:[87,123,152],socializechat:346,societi:111,sofa:126,soft:[61,88,90,242,443],softcod:[30,72,123,443],softli:143,softwar:[2,11,149,155],solar:101,soldier:[106,117],sole:[78,99,102,169],solid:[60,81,87,124],solo:[113,123,149],solut:[8,15,19,31,47,48,75,76,82,83,92,94,96,98,102,106,107,120,123,126,127,136,138,155,158,191,253,281,282,292,443],solv:[6,19,78,81,82,83,91,97,103,120,121,149,221,240,270,281,443],some:[0,1,2,3,6,7,8,9,11,13,14,15,16,18,19,20,22,26,27,28,30,31,32,33,35,36,37,41,42,44,45,46,47,48,49,50,51,53,55,56,58,60,62,64,65,67,69,70,75,76,77,79,80,81,82,83,84,85,87,88,89,90,91,92,93,94,99,100,101,102,103,105,106,107,108,109,110,111,113,114,115,117,119,120,121,124,125,126,127,128,129,130,132,134,135,136,138,139,141,142,143,144,145,146,147,149,151,153,154,155,158,159,161,162,163,168,176,177,182,184,187,188,191,192,194,196,197,203,204,205,209,214,218,221,232,235,241,242,249,253,254,257,258,259,260,265,268,270,271,272,273,282,292,296,300,301,304,316,318,323,326,352,362,364,367,368,373,374,377,378,381,383,384,390,393,394,398,403,416,430,441,443],some_long_text_output:375,some_modul:112,somebodi:75,someclass:112,somehow:[22,36,53,62,70,74,126,127,155,206,372],someon:[22,33,45,47,50,58,75,80,81,94,100,106,108,111,116,124,126,135,136,155,158,168,188,206,265,269,270,296],somepassword:146,someplac:269,someth:[5,8,9,13,15,18,19,22,28,29,30,31,33,37,39,41,42,45,47,48,50,51,52,54,55,58,60,62,65,67,69,72,73,75,76,77,79,80,81,82,83,85,87,88,89,90,92,94,95,96,97,98,99,100,101,102,105,106,107,108,109,111,114,116,117,118,120,121,124,126,127,130,132,141,142,145,146,150,151,152,153,154,155,159,161,168,175,177,182,188,190,193,203,204,206,210,226,235,241,243,250,253,256,257,258,259,260,270,271,272,273,282,292,296,301,353,364,368,374,375,377,384,390,436,443],something_els:42,sometim:[3,5,19,22,27,28,33,39,41,42,53,62,67,77,88,101,107,111,115,116,118,134,163,189,294],sometypeclass:110,somewhat:[8,77,90,99,204],somewher:[11,41,42,48,55,75,83,84,115,126,127,138,155,177,182,196,275,286,288,364,390,443],somon:218,soon:[3,8,13,44,102,121,123,153,157,343,390],sophist:[19,54,69,87,129],sorl:90,sorri:[33,164,292],sort:[13,20,34,39,44,46,53,58,65,73,74,79,81,88,96,102,111,114,115,116,121,127,129,132,135,155,163,203,218,227,253,256,257,258,259,260,271,282,296,301,304,362,363,364,374,390,421,430,435,436,438,439,440,443],sort_kei:343,sort_stat:5,sortkei:5,sought:[168,174,196,286,288,296,362,364],soul:[82,124],sound:[11,33,47,64,65,77,82,84,94,100,105,111,121,122,126,159,242,338],sourc:[1,2,6,8,9,10,11,16,17,19,20,26,30,37,54,55,56,64,68,69,75,76,77,78,80,84,86,87,88,89,90,91,99,112,116,119,120,122,142,144,146,149,151,153,154,165,168,169,170,171,173,174,175,176,177,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,196,197,198,202,203,204,205,206,209,210,211,212,213,214,216,217,218,219,221,222,223,224,225,226,227,229,230,231,232,233,235,236,239,240,241,242,243,246,247,248,249,250,251,252,253,254,256,257,258,259,260,262,264,265,266,268,269,270,271,272,273,275,276,277,279,280,281,282,283,284,286,287,288,289,291,292,294,295,296,298,299,300,301,303,304,305,306,307,308,309,311,312,313,314,316,317,318,319,320,321,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,345,346,347,349,350,351,352,353,354,355,357,358,359,362,363,364,365,367,368,369,370,371,372,373,374,375,376,377,378,380,381,382,383,384,385,386,387,388,389,390,391,393,394,395,398,399,400,401,402,403,404,405,406,408,410,411,412,413,414,416,418,421,422,423,424,425,428,430,431,434,435,436,437,438,439,440,441,442,443],source_loc:[92,135,219,270,271,273,296],source_object:[194,214],sourceforg:[327,328,338,341],sourceurl:326,south:[75,77,81,82,83,97,126,138,182,275,281,282,346],south_north:82,southeast:[182,282],southern:82,southwest:[83,109,182,282],space:[13,18,22,25,30,31,33,36,41,42,51,58,60,72,76,77,80,81,82,83,85,91,92,99,107,108,109,115,116,117,119,129,136,139,174,177,182,187,188,189,190,193,194,210,239,242,243,260,270,281,282,296,358,364,367,368,373,374,376,377,389,390,394,419,443],spaceship:138,spacestart:389,spaghetti:[14,374],spam:[18,42,55,93,103,129,158,187,357],spammi:[55,129],span:[17,56,69],spanish:64,spare:[256,257,258,259,260,281],sparkly_mag:111,spatial:82,spawen:240,spawn:[5,18,26,35,51,79,83,86,108,112,120,123,137,165,180,182,209,240,257,258,276,279,281,282,283,298,299,300,301,443],spawn_alias:[83,282],spawn_link:[281,282],spawn_nod:281,spawner:[24,37,83,137,165,166,182,258,259,297,299,443],spawng:79,spd:142,speak:[16,18,57,70,75,78,80,123,135,136,139,141,188,218,243,296],speaker:[80,218,242,243],spear:41,special:[0,3,8,11,12,13,14,15,16,18,19,20,22,25,28,30,33,37,39,45,46,48,50,51,52,53,54,57,60,64,65,67,68,70,82,83,84,85,88,92,95,100,102,104,106,109,111,112,113,114,115,116,117,118,122,129,130,142,158,159,169,171,173,176,188,191,216,218,219,223,224,226,243,254,258,259,270,271,273,284,289,292,296,318,319,342,346,362,364,368,374,389,403,443],specic:281,specif:[0,2,3,8,11,12,13,19,20,22,27,28,33,36,37,39,44,45,46,47,48,49,51,55,58,62,68,73,75,76,77,78,79,80,82,83,84,85,86,87,88,90,92,96,98,101,102,105,107,111,112,113,114,116,117,118,120,121,123,129,130,138,139,140,141,142,143,144,146,147,151,155,157,163,168,170,173,180,182,189,192,194,198,199,200,203,204,209,210,216,218,229,230,231,232,236,241,243,275,281,282,283,287,291,294,296,303,305,314,318,319,326,342,343,353,362,364,367,368,372,374,375,376,390,394,399,401,410,441,442],specifi:[8,13,18,19,20,28,31,34,41,44,46,47,53,55,56,57,58,60,65,67,68,77,79,80,81,82,83,85,91,94,96,100,101,107,109,110,114,115,117,118,126,130,132,134,142,148,149,155,156,157,158,173,174,182,189,193,196,204,206,207,209,213,218,224,225,229,231,232,236,240,241,243,253,254,257,258,259,273,275,281,282,291,292,296,299,300,301,305,325,351,362,365,367,368,370,373,374,377,378,384,385,386,390,393,394,410,413,430,438,441],specifici:219,specii:58,spectacular:3,spectrum:123,speech:[216,296],speed:[5,13,36,67,101,105,123,129,142,250,294,301,332,365,387],speedup:300,spefifi:377,spell:[16,41,46,57,93,99,165,166,199,208,254,259,301,443],spell_attack:259,spell_conjur:259,spell_heal:259,spell_nam:259,spellbook:[79,209,210],spellcast:122,spellnam:[210,259],spend:[37,96,107,118,123,124,256,257,258,259,260],spend_act:[256,257,258,259,260],spend_item_us:258,spent:259,sphinx:85,spike:209,spiked_club:209,spin:[52,101,155,193],spit:[116,129,132,209],splashscreen:214,splinter:120,split:[11,20,22,44,76,82,83,92,100,107,115,116,123,130,134,136,138,159,174,190,212,270,273,289,298,340,355,367,368,378],split_nested_attr:182,spoiler:78,spoken:[75,80,122,153,242,243,296],spoof:[151,399,406],spool:149,sport:36,spot:[53,88,99,168,279,282],spread:[5,30,41,89,111,126,127,443],spring:[105,224],sprint:250,sprofil:314,spruce:58,spuriou:443,spy:35,spyrit:147,sql:[2,48,67,88,98,99,118,349,443],sqlite3:[5,8,9,11,67,88,113,130,161,162,390,443],sqlite3_prep:352,sqlite:[9,67,146,352],sqllite:2,sqrt:96,squar:[30,72,85,96],squeez:[67,85],src:[17,33,37,51,54,109,141,154,157,247],srcobj:[177,190],srun:318,srv:2,ssessionhandl:65,ssh:[44,62,65,76,88,92,155,163,165,166,310,322,353,354,443],ssh_interfac:155,ssh_port:155,sshd_config:158,sshfactori:334,sshprotocol:334,sshserverfactori:334,sshuserauthserv:334,ssl:[65,68,88,145,151,165,166,169,187,310,322,326,339,354,443],ssl_context:[335,339],ssl_interfac:155,ssl_port:155,sslcertificatefil:145,sslcertificatekeyfil:145,sslciphersuit:145,sslengin:145,ssllab:145,sslprotocol:[145,335,339],ssltest:145,sslv3:151,sta:373,stab:[94,120,270],stabil:[121,193,242],stabl:[53,62,84,98,157],stabli:[6,309],stack:[14,20,51,121,126,138,175,176,296,300,355,374,443],stackedinlin:398,stackexchang:8,stackoverflow:8,stacktrac:300,staf:69,staff:[18,22,39,41,50,57,69,76,82,92,99,121,127,130,141,175,284,301,368,443],staffer:[50,76,123],staffernam:76,stage:[2,11,12,82,98,121,130,141,398,400,403],stagger:326,stai:[20,28,48,81,107,116,138,139,149,155,161,273,282],stale:[48,157,308],stale_timeout:308,stalker:436,stall:78,stamina:[95,122,227,253,259],stamp:[19,44,48,51,168,171,180,192,295,304,346,351,364],stanc:[30,123,129,243,296,377,393,443],stand:[8,11,14,17,33,50,67,77,81,82,83,85,91,92,94,98,109,112,116,118,120,122,126,127,129,130,138,141,149,153,155,188,203,216,218,243,269,284,296,304,309,345,365,368,370,376,406],standalon:[151,158],standard:[11,13,16,18,19,27,49,53,60,61,65,68,70,75,76,78,83,88,91,95,99,100,107,111,114,116,129,134,137,139,144,145,149,151,158,165,168,179,213,214,243,272,284,296,334,336,341,358,362,367,376,378,391,415,443],stander:126,stanza:[58,324],stapl:123,star:182,stare:11,start:[3,5,6,7,8,9,10,11,12,14,15,16,18,19,20,22,27,28,30,32,33,34,36,39,41,42,44,45,48,51,52,53,55,56,59,60,62,63,64,65,67,69,75,78,79,81,82,83,85,87,88,89,90,91,92,94,96,97,99,101,102,107,109,111,112,113,114,117,121,122,123,124,126,127,129,130,132,134,137,138,140,141,144,146,148,150,151,153,154,155,156,158,159,161,168,169,174,175,181,182,187,188,189,190,191,192,193,196,203,204,209,212,213,216,217,218,224,225,226,227,232,242,243,253,254,256,257,258,259,260,265,268,269,271,273,281,282,296,298,300,304,306,307,308,309,311,314,316,318,319,324,325,326,327,331,332,333,338,339,345,346,351,352,355,359,363,367,368,369,370,372,374,375,376,377,378,383,390,419,442,443],start_all_dummy_cli:345,start_attack:269,start_bot_sess:355,start_char:377,start_delai:[42,129,137,138,304,309,370],start_direct:282,start_driv:138,start_evennia:314,start_hunt:269,start_idl:269,start_index:187,start_lines1:314,start_lines2:314,start_loc_on_grid:81,start_of_messag:400,start_olc:298,start_only_serv:314,start_open:218,start_ov:28,start_patrol:269,start_plugin_servic:62,start_portal_interact:314,start_posit:218,start_read:218,start_rotat:218,start_serv:324,start_server_interact:314,start_sunrise_ev:101,start_text:254,start_turn:[256,257,258,259,260],start_xi:[83,281],startapp:[67,102,141,142],startclr:377,startcolor:30,startcoord:279,startedconnect:[311,325,326],starter:[76,119,120,134],starthour:92,startnod:[28,106,217,225,268,298,374],startnode_input:[28,217,225,268,298,374],startproduc:316,startservic:[317,359],startset:271,startswith:[31,34,182,193,367],starttupl:334,startup:[13,25,62,101,113,134,155,159,296,304,307,343,352,383,390],stat:[5,13,17,53,103,106,113,114,116,117,121,122,129,130,134,141,142,152,203,253,256,257,258,259,260,439,443],state:[3,11,13,14,15,20,22,26,27,28,33,42,44,51,60,87,88,98,113,114,117,120,123,129,138,139,157,163,165,166,168,173,175,176,179,186,194,196,199,215,216,218,219,222,223,249,256,257,258,259,260,265,269,271,301,304,306,307,309,314,334,362,372,374,443],state_chang:221,state_nam:221,state_unlog:186,statefultelnetprotocol:[337,345],statehandl:[219,221],statement:[3,14,15,19,20,28,53,54,67,81,87,100,111,116,136,265,368,389],statenam:[216,218,221],static_overrid:[51,73,113,134],static_root:134,statict:182,statictrait:253,station:[123,138],stationari:269,statist:[44,52,53,55,73,132,137,159,182,192,227,347,363,381],statu:[11,28,44,47,50,68,94,100,109,113,121,122,146,151,155,159,192,203,258,259,260,269,309,312,314,323,324,325,328,342,398,443],status:[121,443],status_cod:316,stderr:272,stdin_open:157,stdout:[157,272,314,383],steadi:88,steal:[35,106,189],stealth:123,steel:210,steer:138,step1:94,step2:94,step3:94,step:[0,2,6,7,9,14,15,18,20,22,27,67,69,75,80,83,85,90,91,94,96,100,102,103,105,106,107,123,124,125,127,130,138,139,142,145,146,149,157,181,187,204,210,252,271,279,281,282,309,318,330,341,345,346,355,364,368,371,372,374,375,443],step_sequ:275,stepper:[83,282],stick:[16,22,28,70,85,149,180],still:[0,1,7,9,11,13,14,15,16,18,20,22,44,45,48,50,57,58,60,62,64,65,69,75,76,77,79,81,83,84,85,87,88,90,92,94,96,99,100,101,107,108,109,113,114,115,116,123,126,130,138,139,142,143,144,149,151,158,163,168,175,182,187,189,194,196,209,214,221,252,253,254,256,257,258,259,260,268,271,273,282,294,296,300,306,346,374,376,377,378,386,390,438],sting:82,stock:[87,106,124,247,430],stolen:[158,367],stone:[22,58,109,118,124],stop:[3,5,7,9,15,18,19,28,30,32,37,39,42,44,47,51,54,55,64,69,76,81,83,92,94,99,100,101,105,109,112,113,116,119,122,123,126,129,130,137,138,149,151,155,157,159,161,179,182,187,192,196,203,210,212,231,233,243,249,250,253,257,260,265,282,296,303,306,307,308,309,313,314,316,319,331,332,352,353,359,367,368,370,390,443],stop_driv:138,stop_evennia:314,stop_serv:324,stop_server_onli:314,stopproduc:316,stopservic:[317,359],storag:[13,14,22,48,67,88,93,94,98,106,112,124,127,141,146,171,192,198,202,235,242,253,273,286,292,295,296,300,301,304,307,309,321,357,361,362,364,369,384,385,443],storage_modul:369,storagecontain:42,storagescript:42,store:[4,6,8,9,11,12,14,16,18,19,20,22,23,27,31,33,35,36,37,39,42,44,46,47,48,50,51,62,67,70,73,75,76,78,79,80,81,83,84,88,91,93,94,96,97,98,99,100,102,105,106,107,108,111,113,114,115,116,117,121,126,127,129,130,134,138,141,142,146,154,157,159,168,169,171,176,179,180,182,183,185,189,190,198,203,209,210,219,221,224,225,232,239,241,242,243,247,250,251,253,258,262,270,271,273,282,283,286,291,292,295,299,300,301,302,305,306,307,308,309,314,318,319,320,321,324,326,327,328,330,338,341,346,352,353,354,355,357,359,362,363,364,365,367,369,370,371,372,373,374,375,378,381,384,385,386,390,416,430,441,443],store_kei:[309,390],store_tru:272,stored_obj:92,storekei:[106,309],storenam:106,storeroom:106,storeroom_exit:106,storeroom_kei:106,storeroom_key_nam:106,stori:[6,31,76,132,141],storm:93,storypag:132,storytel:130,stove:296,str:[8,13,19,27,28,30,32,34,35,42,48,54,62,70,75,77,83,92,96,100,105,107,108,114,115,116,122,127,141,142,165,168,169,170,173,174,175,176,177,182,187,189,193,196,197,198,203,204,206,209,212,217,218,219,221,223,224,225,226,227,229,230,231,232,235,236,241,242,243,247,249,252,253,254,256,257,258,259,260,264,265,268,271,272,273,281,282,283,284,286,287,288,289,292,294,295,296,299,300,301,303,305,306,307,309,311,312,314,318,319,320,321,323,324,325,326,327,329,332,333,334,337,338,339,342,343,345,351,352,353,354,355,357,358,359,362,363,364,365,367,368,369,370,372,373,374,375,376,377,383,384,385,386,387,388,389,390,391,393,394,399,408,410,413,422,436,438],straght:282,straight:[81,83,124,139,282,365],straightforward:[92,106,107,130,138],strang:[11,15,42,94,98,114,145,176,194],strangl:155,strap:123,strategi:[3,260],strattr:[13,362],strawberri:272,stream:[7,323,327,353],streamlin:[2,203],stren:116,strengh:13,strength:[13,33,99,100,113,114,122,123,127,129,142,252,253],stress:[5,279,345],stretch:[82,83,85],stribg:390,strict:[54,211,300,367,438],stricter:[124,300],strictli:[28,57,111,141,214,259,376],strike:[28,105,129,188,251,259,260],string1:390,string2:390,string:[3,5,6,8,13,14,16,18,19,20,22,24,25,27,28,30,31,34,36,37,39,41,46,47,48,50,51,55,57,58,64,65,67,68,70,72,76,77,81,82,85,87,92,94,99,100,105,108,109,111,113,114,115,116,117,118,122,123,126,129,141,142,146,148,149,152,155,159,165,166,168,169,170,171,173,174,177,180,182,187,188,189,190,191,192,193,196,197,198,203,204,206,209,214,218,223,225,235,236,240,241,242,243,247,248,253,254,256,257,258,259,260,265,268,269,273,281,283,284,287,288,290,291,292,294,295,296,299,300,301,303,304,307,309,314,316,319,323,326,334,337,338,340,343,346,351,353,355,358,362,363,364,365,366,367,368,370,371,372,373,375,376,377,383,384,386,387,388,389,390,391,393,394,399,406,413,438,441,443],string_from_modul:390,string_partial_match:[294,390],string_similar:390,string_suggest:390,stringproduc:316,stringvalu:253,strip:[22,28,30,31,32,41,60,69,77,85,91,100,104,106,108,115,126,130,136,174,182,189,190,191,193,210,218,243,294,301,319,334,337,338,367,368,372,374,377,390,443],strip_ansi:[104,367,389],strip_cmd_prefix:189,strip_control_sequ:390,strip_dir:5,strip_mxp:367,strip_raw_ansi:367,strip_raw_cod:367,strip_unsafe_input:390,strip_unsafe_token:367,strippabl:374,stroll:250,strong:[33,60,124,130,389],strongest:33,strongli:[18,49,88,116,123,127,242],strr:241,struct:98,structur:[13,22,30,31,39,41,53,65,68,76,81,84,87,88,98,102,108,111,112,113,116,123,134,141,142,149,182,187,196,243,281,283,289,296,300,301,338,343,365,371,374,411,427,439,443],strvalu:[13,362,363],stuck:[28,108,120,126,149],studi:443,stuff:[13,20,28,30,33,39,41,42,44,45,53,76,81,84,85,91,94,99,103,106,108,115,116,117,118,119,120,121,122,123,126,127,132,151,176,193,226,252,253,272,309,352,423,443],stumbl:[6,124],stupid:[118,124],sturdi:373,stutter:69,style:[7,13,18,19,22,26,28,36,56,60,62,72,78,79,82,84,85,87,91,99,100,103,108,116,119,120,121,123,124,128,129,132,144,171,177,179,190,206,207,209,223,225,236,253,256,272,300,372,376,377,390,443],styled_foot:177,styled_head:[22,177],styled_separ:177,styled_t:[22,177],sub:[2,13,18,30,31,41,42,51,53,68,69,76,84,85,99,102,111,113,129,150,155,167,172,187,189,195,199,204,243,272,279,285,287,289,290,293,301,302,310,361,366,367,377,389,396,400,432,443],sub_ansi:367,sub_app:141,sub_brightbg:367,sub_dblspac:389,sub_mxp_link:389,sub_mxp_url:389,sub_text:389,sub_to_channel:187,sub_xterm256:367,subbed_chan:187,subcategori:[189,289],subclass:[19,41,44,48,83,88,111,113,136,182,204,253,273,295,300,304,324,337,343,364,382,386,390,398,399,406,443],subcommand:83,subcrib:18,subdir:8,subdirectori:[8,84],subdomain:[145,155,158],subfold:[67,73,113,116,142],subhead:85,subject:[2,35,58,67,96,104,111,155,226,236,377,394],sublim:119,submarin:138,submenu:[7,204,298],submenu_class:204,submenu_obj:204,submiss:[225,430],submit:[17,53,84,141,158,194,225,430,434,436,441],submitcmd:225,submodul:338,subnegoti:338,subnet:[55,146,180],subpackag:[8,68],subprocess:[92,390],subreddit:144,subscrib:[9,18,22,33,47,55,86,88,100,140,169,187,196,197,198,258,309,325,356],subscribernam:187,subscript:[18,22,42,47,100,140,144,187,197,198,309,400],subscriptionhandl:[18,198],subsect:281,subsequ:[22,54,116,129,149,216,242,368,390],subsequent_ind:376,subset:[8,46,98,113,123,281],subsid:48,substanti:209,substitut:[7,36,152,296,367,389],substr:[115,367,377],subsub:[31,189,193],subsubhead:85,subsubsubhead:85,subsubtop:[31,189,193],subsubtopicn:193,subsystem:[67,76,122,149,292],subtext:219,subtitl:17,subtop:[187,189,193,286,289,443],subtopic_separator_char:189,subtract:[30,106,252],subturn:129,subword:390,suc:79,succe:[79,120,121,129,209,213,443],succeed:[187,213,272],success:[79,111,122,123,127,129,130,142,168,187,196,203,209,213,256,257,258,259,260,265,270,271,292,300,308,314,318,364,372,384,390,441],success_messag:[209,210],success_teleport_msg:271,success_teleport_to:271,success_url:[434,436],successfuli:[209,240],successfulli:[2,10,22,54,82,93,117,126,163,168,209,210,211,240,270,273,296,308,314,326,358,364,441],suddenli:[0,6,364],sudo:[149,151,157,158],sue:122,suffic:[17,99,116],suffici:[67,155],suffix:[6,19,30,367,377,383,390,416],suggest:[0,6,28,29,31,48,74,84,85,87,92,121,122,123,124,146,155,174,189,203,210,243,253,271,289,296,390],suggestion_cutoff:189,suggestion_maxnum:[189,289],suggests:31,suit:[10,88,94,124,135,193,390,439,443],suitabl:[11,22,30,33,36,42,46,50,65,68,83,84,87,88,91,92,108,111,116,119,149,155,175,187,209,218,281,292,348,355,370,374,377],sum:[83,84,105,107,112,119,176,219],summar:[75,108,144],summari:[50,75,80,130,144,163,204,443],summer:[122,123,224],sun:[83,101],sunris:101,sunt:29,super_long_text:375,superclass:398,superfici:242,superflu:389,supersus:292,superus:[5,12,14,15,33,50,57,76,82,90,91,92,100,104,109,113,114,115,116,119,120,123,126,142,146,149,162,168,171,181,192,196,206,249,269,291,292,296,301,314,364,368,370,398,443],supplement:28,suppli:[5,8,13,19,28,31,32,34,41,42,44,46,47,49,54,58,68,84,100,115,123,129,130,149,153,171,176,177,180,182,187,192,193,197,204,212,214,224,227,253,281,294,295,296,300,304,309,325,355,364,372,377,378,387,390],supporst:341,support:[3,12,13,18,22,27,28,30,31,32,35,36,41,42,59,60,62,63,64,65,67,70,76,78,81,84,85,87,88,89,90,97,98,99,100,104,107,112,115,116,118,119,121,122,123,124,130,139,145,146,149,150,154,155,156,157,158,161,162,163,168,179,188,189,192,207,212,213,218,224,235,272,282,291,296,300,301,309,319,327,328,329,330,334,336,337,338,339,341,343,354,362,367,371,374,375,376,377,387,390,393,422,438,443],supports_set:[32,319],suppos:[0,22,28,41,49,65,75,111,168,204],supposedli:[151,242,338],suppress:[147,336],suppress_ga:[165,166,310,322,443],suppressga:336,supress:336,sur:144,sure:[2,3,6,7,8,9,11,12,13,14,15,16,18,20,22,28,31,33,36,37,39,41,42,44,46,47,48,49,50,51,53,55,57,64,67,70,74,75,76,81,82,83,84,85,90,91,92,93,94,95,97,99,100,101,104,107,109,111,114,115,116,119,120,121,122,123,124,126,127,129,130,134,136,139,141,142,143,145,146,149,151,152,153,154,155,157,162,163,168,169,175,176,177,179,182,190,197,204,206,209,218,233,241,242,243,248,253,254,259,262,269,270,271,282,287,291,292,296,300,301,306,314,318,324,326,331,352,358,359,360,363,364,367,369,371,374,381,386,387,389,390,399,406,408,431,439,441],surfac:[100,105,158,218],surpris:[13,33,77,96,102,107,116],surround:[20,22,30,72,82,83,129,180,223,269,282,386,390,443],surviv:[13,19,20,27,28,30,34,42,44,47,93,114,129,139,169,176,192,204,253,304,305,309,370,372,374,390],survivor:123,suscept:[19,98,292],suspect:141,suspend:[7,157,158],suspici:28,suspicion:141,svn:[2,69],swallow:[136,319,323,389],swam:[393,395],swap:[8,26,51,60,182,224,239,364,372,443],swap_autoind:372,swap_object:364,swap_typeclass:[48,168,364],swapcas:367,swapper:364,swedish:64,sweep:42,swiftli:54,swim:[393,395],swing:[22,93,94,105,115],switch1:72,switch2:72,switch_map:182,switch_opt:[179,180,181,182,187,188,189,190,192,224],sword:[13,22,49,67,78,79,93,106,109,111,118,120,122,123,126,127,165,166,199,203,208,209,211,218,243,253,294,301,387,390,443],swordbladerecip:210,swordguardrecip:210,swordhandlerecip:210,swordmanship:122,swordpommelrecip:210,swordrecip:[209,210],swordsmithingbaserecip:210,swum:[393,395],symbol:[7,15,16,22,69,81,83,111,154,194,243,254,273,276,279,281,282,284,375],symlink:[85,149],symmetr:376,sync:[11,44,52,65,88,281,282,283,303,332,337,352,353,354,355,362,371],sync_node_to_grid:282,sync_port:355,syncdata:[354,355],syncdb:8,synchron:[383,443],syntact:[292,390],syntax:[6,14,15,16,22,33,60,72,77,78,79,80,87,91,94,100,101,107,109,114,130,142,146,165,166,177,181,182,189,190,193,204,209,213,216,224,225,272,292,296,314,326,353,362,364,366,367,443],syntaxerror:116,sys:438,sys_cmd:175,syscmdkei:[22,86,165],syscommand:[165,166,172,178,296,443],syslog:246,sysroot:154,system:[0,2,5,6,8,9,11,12,13,18,19,20,23,24,26,32,34,35,36,39,41,42,44,45,46,47,48,53,54,57,62,64,65,67,69,72,74,75,76,77,80,81,82,83,84,85,86,87,88,90,91,93,94,96,97,98,101,104,106,112,113,114,116,119,120,126,134,138,139,140,142,144,146,149,151,154,155,158,159,162,163,165,166,169,171,172,173,175,177,178,179,181,182,189,191,193,195,196,197,198,203,204,206,209,210,211,214,218,230,231,232,233,235,236,239,240,242,243,246,247,248,254,256,257,258,259,260,268,271,273,279,280,281,282,284,285,286,288,291,292,295,296,298,300,301,302,314,337,343,351,361,364,368,370,373,374,377,383,394,398,416,442,443],system_command:22,systemat:96,systemctl:145,systemd:151,systemmultimatch:191,systemnoinput:191,systemnomatch:191,tab:[0,2,7,15,51,52,60,76,95,102,116,117,119,124,367,376,389],tabl:[6,9,14,16,48,58,60,68,70,75,80,82,86,88,90,100,102,105,111,118,142,177,179,187,189,192,225,338,357,367,373,375,376,377,387,390,442,443],table_char:373,table_format:179,table_lin:376,table_str:100,tablea:373,tableb:373,tablechar:[100,373],tableclos:[68,338],tablecol:376,tableopen:[68,338],tablet:56,tabletop:[100,127,144,256,260],tabsiz:[367,376],tabstop:389,tabularinlin:[399,406],tack:[109,176],tackl:84,tactic:[123,127,129],taction:129,tag:[14,18,22,24,26,28,31,32,35,36,39,41,42,48,50,51,52,53,55,60,61,64,67,68,74,76,79,83,99,100,103,108,109,111,116,134,142,147,157,165,166,177,179,180,181,182,187,188,189,190,191,192,193,194,196,198,203,204,205,206,207,209,210,213,214,216,218,219,224,225,226,230,236,239,240,241,243,246,249,250,251,253,254,256,257,258,259,260,265,268,269,270,271,272,275,282,284,288,289,291,296,300,301,329,343,345,351,361,363,364,367,370,372,373,374,375,376,387,390,396,397,398,400,402,403,404,410,413,443],tag_all_charact:219,tag_categori:406,tag_charact:219,tag_data:406,tag_kei:406,tag_typ:[406,410],tagadmin:406,tagcategori:[218,219],tagcount:111,taget_map_xyz:282,tagform:406,tagformset:[399,406],taghandl:[46,48,365,406],taginlin:[398,400,402,403,404,406],tagkei:[291,365,370],taglin:17,tagnam:301,tagseri:413,tagshandl:413,tagstr:[301,365],tagtyp:[46,363,365,387,410],tagtypefilt:410,tail:[113,155,157,314,383],tail_log_fil:[314,383],tail_log_funct:383,tailor:[90,102,430],take:[0,3,7,8,14,15,16,17,18,19,20,22,28,29,30,32,33,39,41,44,48,54,56,57,60,62,64,65,69,75,76,77,78,79,80,81,82,83,84,85,87,88,89,90,91,92,93,94,98,99,100,101,102,103,106,107,109,113,114,115,116,119,120,122,123,124,125,126,128,129,130,131,132,133,134,138,139,141,142,144,154,155,158,159,161,168,169,174,175,179,191,193,196,198,203,206,209,212,216,221,223,224,225,240,241,243,246,250,254,256,257,258,259,260,265,268,269,271,275,279,292,301,334,342,345,354,355,363,364,367,372,373,374,375,377,384,390,391,394],taken:[0,20,88,98,117,129,130,137,138,158,188,214,246,256,257,258,259,260,296,334,358,367,370],takeov:356,tale:132,talk:[11,19,22,52,62,80,84,100,107,116,123,124,146,155,187,188,203,242,243,251,271,311,394,443],talker:87,talki:[18,88,123],talking_npc:[165,166,199,443],talkingcmdset:251,talkingnpc:251,tall:[58,72,122,123,188,243],tallman:188,tan:210,tang:[108,210],tannin:210,tantal:15,target1:259,target2:259,target:[8,22,35,58,62,68,83,91,92,93,94,95,100,108,109,115,116,123,126,127,129,130,134,158,168,177,182,187,188,192,196,198,206,210,213,216,218,221,224,236,254,256,257,258,259,260,269,273,275,276,279,281,282,296,363,367,370,374,390],target_fire_damag:210,target_flag:218,target_loc:[219,250,271,273,296],target_map_xyz:[83,276,279,282],target_obj:292,target_path_styl:281,targetlist:236,task:[2,5,18,19,26,42,46,62,75,107,113,151,163,192,193,230,232,254,275,308,309,390],task_handl:[165,308,390],task_id:[192,232,308],taskhandl:[165,166,302,390,443],taskhandlertask:[308,390],tast:[77,120,124,141],tasti:209,tavern:243,tax:[5,154],taylor:144,tb_basic:[165,166,199,255,443],tb_equip:[165,166,199,255,443],tb_filenam:368,tb_item:[165,166,199,255,443],tb_iter:368,tb_magic:[165,166,199,255,443],tb_rang:[165,166,199,255,443],tbbasiccharact:256,tbbasicturnhandl:256,tbearmor:257,tbequipcharact:257,tbequipturnhandl:257,tbeweapon:257,tbitemscharact:258,tbitemscharactertest:258,tbitemsturnhandl:258,tbmagiccharact:259,tbmagicturnhandl:259,tbodi:142,tbrangecharact:260,tbrangeobject:260,tbrangeturnhandl:260,tchar:129,tcp:158,tcpserver:[62,359],teach:[103,124],team:[2,11,22,31,69,88,121,123,124],teamciti:443,teardown:[8,193,211,222,233,252,266,279,340,388,414],teaser:155,tech:[103,119,124,125,128,131,133,144,443],technic:[28,46,48,54,57,58,60,62,64,65,69,76,83,88,89,90,96,109,121,124,146,155,165,166,199,203,261,362,443],techniqu:[94,123,126,367],technolog:123,tediou:[7,82],teenag:[91,158],tehom:[76,78,111],tehomcd:76,tel:[26,55,75,100,107,108,138,149,182,275],telepath:123,telephathi:18,teleport:[15,26,55,74,100,106,109,120,182,188,271,275,279,282,368,443],teleport_her:182,teleportermaplink:[83,282],teleportmaplink:83,teleportroom:271,televis:20,tell:[0,3,4,8,9,10,11,13,14,20,22,26,28,32,33,35,36,39,41,42,54,55,57,64,65,67,73,75,77,79,80,81,91,94,100,102,107,108,109,113,114,115,116,117,123,127,129,132,135,138,140,142,145,146,154,155,157,158,163,169,179,187,188,198,213,243,271,282,296,314,332,343,355,372,439],telnet:[5,16,44,51,52,59,62,65,71,76,87,88,92,95,116,119,144,149,154,157,158,162,163,165,166,189,192,310,322,327,328,329,330,334,335,336,338,339,341,345,353,354,389,443],telnet_:155,telnet_hostnam:148,telnet_interfac:155,telnet_oob:[68,165,166,310,322,443],telnet_port:[2,5,76,113,148,155,346],telnet_ssl:[165,166,310,322,443],telnetoob:338,telnetprotocol:[335,337,339],telnetserverfactori:337,telport:120,temp:198,tempat:225,templat:[11,12,19,20,36,41,45,48,49,50,51,52,53,73,88,90,104,113,117,123,130,132,134,142,159,162,165,166,187,188,190,196,225,268,296,314,343,353,354,362,366,373,419,423,428,438,439,441,443],template2menu:374,template_nam:[53,434,435,436,438,439,441],template_overrid:[51,73,90,113,134],template_regex:362,template_rend:45,template_str:36,templates_overrid:73,templatestr:373,templatetag:[165,166,396,443],templateview:[53,439],tempmsg:[198,443],temporari:[8,11,13,120,163,176,198,235,256,257,258,259,260,309,374,443],temporarili:[0,6,8,18,20,28,42,52,109,114,122,155,187,192,209,232,240,253,265],tempt:[30,114,116,121,159,180],ten:[82,94,155],tend:[5,6,67,72,88,99,123,127,138,155,158,182,242,246],tens:[393,395],tent:82,term:[20,31,54,64,75,88,101,102,107,113,114,115,124,139,149,155,177,218,241,357],term_siz:[3,165],termin:[0,3,5,6,7,11,19,53,60,83,85,88,90,108,116,117,119,130,139,146,149,154,155,157,158,162,163,165,192,231,254,256,257,258,259,260,313,314,334,341,357,439],terminalrealm:334,terminals:334,terminalsessiontransport:334,terminalsessiontransport_getp:334,termux:443,terrain:[81,282],terribl:327,ters:42,test1:[13,32,376],test2010:108,test2028:108,test2:[13,22,32,60],test3:[13,376],test4:[13,376],test5:13,test6:13,test7:13,test8:13,test:[1,2,3,7,10,11,13,14,15,16,17,20,22,27,28,30,31,32,33,37,39,41,42,45,47,51,53,54,57,75,77,79,80,82,84,85,91,92,94,98,100,101,102,104,106,107,109,111,115,117,121,123,124,126,128,129,131,137,140,141,144,146,147,149,150,151,153,155,156,165,166,172,174,178,179,181,189,192,199,200,206,208,209,210,213,215,224,225,228,244,245,252,254,256,257,258,259,260,261,262,268,274,281,300,310,316,319,322,343,344,345,349,364,366,367,368,370,374,379,388,390,392,396,409,420,429,438,443],test_:8,test_about:193,test_accept:233,test_access:193,test_active_task:193,test_add:233,test_add_trait:252,test_add_valid:233,test_al:252,test_all_st:222,test_alternative_cal:8,test_amp_in:340,test_amp_out:340,test_at_repeat:266,test_attribute_command:193,test_audit:248,test_auto_creating_bucket:202,test_auto_creating_bucket_with_acl:202,test_ban:193,test_base_pars:222,test_base_search:222,test_base_st:222,test_batch_command:193,test_bold:340,test_boundaries__bigmod:252,test_boundaries__change_boundari:252,test_boundaries__dis:252,test_boundaries__invers:252,test_boundaries__minmax:252,test_build:279,test_c_creates_button:350,test_c_creates_obj:350,test_c_dig:350,test_c_examin:350,test_c_help:350,test_c_login:350,test_c_login_no_dig:350,test_c_logout:350,test_c_look:350,test_c_mov:350,test_c_move_:350,test_c_move_n:350,test_c_soci:350,test_cach:252,test_cal:[193,233],test_cancel:193,test_cas:8,test_channel__al:193,test_channel__alias__unalia:193,test_channel__ban__unban:193,test_channel__boot:193,test_channel__cr:193,test_channel__desc:193,test_channel__destroi:193,test_channel__histori:193,test_channel__list:193,test_channel__lock:193,test_channel__msg:193,test_channel__mut:193,test_channel__noarg:193,test_channel__sub:193,test_channel__unlock:193,test_channel__unmut:193,test_channel__unsub:193,test_channel__who:193,test_char_cr:193,test_char_delet:193,test_clean_nam:202,test_clean_name_norm:202,test_clean_name_trailing_slash:202,test_clean_name_window:202,test_clear:252,test_color:340,test_color_test:193,test_comparisons_numer:252,test_comparisons_trait:252,test_compress_content_len:202,test_connection_thread:202,test_content_typ:202,test_copi:193,test_craft__nocons__failur:211,test_craft__notools__failur:211,test_craft__success:211,test_craft_cons_excess__fail:211,test_craft_cons_excess__sucess:211,test_craft_cons_order__fail:211,test_craft_hook__fail:211,test_craft_hook__succe:211,test_craft_missing_cons__always_consume__fail:211,test_craft_missing_cons__fail:211,test_craft_missing_tool__fail:211,test_craft_sword:211,test_craft_tool_excess__fail:211,test_craft_tool_excess__sucess:211,test_craft_tool_order__fail:211,test_craft_wrong_tool__fail:211,test_creat:[193,414],test_curr:252,test_data_in:340,test_data_out:340,test_del:233,test_delet:[252,414],test_desc:[193,252],test_desc_default_to_room:193,test_destroi:193,test_destroy_sequ:193,test_dig:193,test_do_nested_lookup:193,test_do_task:193,test_echo:193,test_edit:233,test_edit_valid:233,test_emit:193,test_emot:222,test_empty_desc:193,test_error_format:211,test_examin:193,test_exit:233,test_exit_command:193,test_extended_path_tracking__horizont:279,test_extended_path_tracking__vert:279,test_find:193,test_floordiv:252,test_focu:222,test_focus_interact:222,test_forc:193,test_func_name_manipul:193,test_general_context:425,test_generated_url_is_encod:202,test_get:[252,431],test_get_and_drop:193,test_get_authent:431,test_get_dis:431,test_get_shortest_path:279,test_get_visual_range__nodes__charact:279,test_get_visual_range__nodes__character_0:279,test_get_visual_range__nodes__character_1:279,test_get_visual_range__nodes__character_2:279,test_get_visual_range__nodes__character_3:279,test_get_visual_range__nodes__character_4:279,test_get_visual_range__nodes__character_5:279,test_get_visual_range__nodes__character_6:279,test_get_visual_range__nodes__character_7:279,test_get_visual_range__nodes__character_8:279,test_get_visual_range__nodes__character_9:279,test_get_visual_range__scan:279,test_get_visual_range__scan_0:279,test_get_visual_range__scan_1:279,test_get_visual_range__scan_2:279,test_get_visual_range__scan_3:279,test_get_visual_range__scan__charact:279,test_get_visual_range__scan__character_0:279,test_get_visual_range__scan__character_1:279,test_get_visual_range__scan__character_2:279,test_get_visual_range__scan__character_3:279,test_get_visual_range_with_path:279,test_get_visual_range_with_path_0:279,test_get_visual_range_with_path_1:279,test_get_visual_range_with_path_2:279,test_get_visual_range_with_path_3:279,test_get_visual_range_with_path_4:279,test_giv:193,test_grid_cr:279,test_grid_creation_0:279,test_grid_creation_1:279,test_grid_pathfind:279,test_grid_pathfind_0:279,test_grid_pathfind_1:279,test_grid_vis:279,test_grid_visibility_0:279,test_grid_visibility_1:279,test_handl:233,test_hello_world:117,test_help:193,test_hom:193,test_ic:193,test_ic__nonaccess:193,test_ic__other_object:193,test_ident:340,test_idl:350,test_info_command:193,test_init:252,test_interrupt_command:193,test_invalid_access:431,test_inventori:193,test_ital:340,test_large_msg:340,test_list:[233,414],test_list_cmdset:193,test_load_recip:211,test_location_leading_slash:202,test_lock:[193,233],test_lock_with_perm:431,test_locked_entri:431,test_look:[193,222],test_mapping_with_opt:395,test_mapping_with_options_00_y:395,test_mapping_with_options_01_y:395,test_mapping_with_options_02_i:395,test_mapping_with_options_03_i:395,test_mapping_with_options_04_i:395,test_mapping_with_options_05_m:395,test_mapping_with_options_06_your:395,test_mapping_with_options_07_our:395,test_mapping_with_options_08_yourself:395,test_mapping_with_options_09_yourself:395,test_mapping_with_options_10_yourself:395,test_mapping_with_options_11_yourself:395,test_mapping_with_options_12_yourselv:395,test_mapping_with_options_13_h:395,test_mapping_with_options_14_h:395,test_mapping_with_options_15_h:395,test_mapping_with_options_16_h:395,test_mapping_with_options_17_h:395,test_mapping_with_options_18_their:395,test_mapping_with_options_19_their:395,test_mapping_with_options_20_itself:395,test_mapping_with_options_21_themselv:395,test_mapping_with_options_22_herself:395,test_mask:248,test_memplot:350,test_menu:254,test_messag:351,test_misformed_command:193,test_msg:211,test_mudlet_ttyp:340,test_mul_trait:252,test_multimatch:193,test_mux_command:193,test_mycmd_char:8,test_mycmd_room:8,test_nam:193,test_nested_attribute_command:193,test_new_task_waiting_input:193,test_nick:193,test_no_input:193,test_no_task:193,test_node_from_coord:279,test_object:193,test_object_cach:431,test_object_search:8,test_ooc:193,test_ooc_look:193,test_opt:193,test_override_class_vari:202,test_override_init_argu:202,test_overwrit:222,test_parse_for_perspect:222,test_parse_for_th:222,test_password:193,test_path:279,test_paths_0:279,test_paths_1:279,test_pause_unpaus:193,test_percentag:252,test_perm:193,test_persistent_task:193,test_pi:193,test_pickle_with_bucket:202,test_pickle_without_bucket:202,test_plain_ansi:340,test_pos:193,test_pos_shortcut:252,test_pre_craft:211,test_pre_craft_fail:211,test_quel:193,test_queri:[165,166,310,344,443],test_quit:193,test_remov:[193,252],test_repr:252,test_resourc:[8,165,166,193,222,233,248,266,279,340,366,414,431,443],test_responce_of_y:193,test_retriev:414,test_return_valu:8,test_room_method:222,test_sai:193,test_script:193,test_seed__success:211,test_send_random_messag:266,test_server_load:193,test_sess:193,test_set:252,test_set_attribut:414,test_set_focu:222,test_set_help:193,test_set_hom:193,test_set_obj_alia:193,test_shortest_path:279,test_shortest_path_00:279,test_shortest_path_01:279,test_shortest_path_02:279,test_shortest_path_03:279,test_shortest_path_04:279,test_shortest_path_05:279,test_shortest_path_06:279,test_shortest_path_07:279,test_shortest_path_08:279,test_shortest_path_09:279,test_shortest_path_0:279,test_shortest_path_10:279,test_shortest_path_1:279,test_shortest_path_2:279,test_shortest_path_3:279,test_shortest_path_4:279,test_shortest_path_5:279,test_shortest_path_6:279,test_shortest_path_7:279,test_shortest_path_8:279,test_shortest_path_9:279,test_simpl:8,test_simple_default:193,test_spawn:[193,279],test_special_charact:202,test_speech:222,test_split_nested_attr:193,test_start:233,test_storage_delet:202,test_storage_exist:202,test_storage_exists_doesnt_create_bucket:202,test_storage_exists_fals:202,test_storage_listdir_bas:202,test_storage_listdir_subdir:202,test_storage_mtim:202,test_storage_open_no_overwrite_exist:202,test_storage_open_no_writ:202,test_storage_open_writ:202,test_storage_s:202,test_storage_sav:202,test_storage_save_gzip:202,test_storage_save_gzip_twic:202,test_storage_save_with_acl:202,test_storage_url:202,test_storage_url_slash:202,test_storage_write_beyond_buffer_s:202,test_str_output:279,test_strip_signing_paramet:202,test_sub_trait:252,test_subtopic_fetch:193,test_subtopic_fetch_00_test:193,test_subtopic_fetch_01_test_creating_extra_stuff:193,test_subtopic_fetch_02_test_cr:193,test_subtopic_fetch_03_test_extra:193,test_subtopic_fetch_04_test_extra_subsubtop:193,test_subtopic_fetch_05_test_creating_extra_subsub:193,test_subtopic_fetch_06_test_something_els:193,test_subtopic_fetch_07_test_mor:193,test_subtopic_fetch_08_test_more_second_mor:193,test_subtopic_fetch_09_test_more_mor:193,test_subtopic_fetch_10_test_more_second_more_again:193,test_subtopic_fetch_11_test_more_second_third:193,test_tag:193,test_task_complete_waiting_input:193,test_teleport:193,test_timer_r:252,test_timer_ratetarget:252,test_trait:[165,166,199,443],test_trait_db_connect:252,test_trait_getset:252,test_traitfield:252,test_tunnel:193,test_tunnel_exit_typeclass:193,test_typeclass:193,test_upd:414,test_upp:8,test_valid_access:431,test_valid_access_multisession_0:431,test_valid_access_multisession_2:431,test_valid_char:431,test_validate_input__fail:252,test_validate_input__valid:252,test_valu:252,test_verb_actor_stance_compon:395,test_verb_actor_stance_components_00_hav:395,test_verb_actor_stance_components_01_swim:395,test_verb_actor_stance_components_02_g:395,test_verb_actor_stance_components_03_given:395,test_verb_actor_stance_components_04_am:395,test_verb_actor_stance_components_05_do:395,test_verb_actor_stance_components_06_ar:395,test_verb_actor_stance_components_07_had:395,test_verb_actor_stance_components_08_grin:395,test_verb_actor_stance_components_09_smil:395,test_verb_actor_stance_components_10_vex:395,test_verb_actor_stance_components_11_thrust:395,test_verb_conjug:395,test_verb_conjugate_0_inf:395,test_verb_conjugate_1_inf:395,test_verb_conjugate_2_inf:395,test_verb_conjugate_3_inf:395,test_verb_conjugate_4_inf:395,test_verb_conjugate_5_inf:395,test_verb_conjugate_6_inf:395,test_verb_conjugate_7_2sgpr:395,test_verb_conjugate_8_3sgpr:395,test_verb_get_all_tens:395,test_verb_infinit:395,test_verb_infinitive_0_hav:395,test_verb_infinitive_1_swim:395,test_verb_infinitive_2_g:395,test_verb_infinitive_3_given:395,test_verb_infinitive_4_am:395,test_verb_infinitive_5_do:395,test_verb_infinitive_6_ar:395,test_verb_is_past:395,test_verb_is_past_0_1st:395,test_verb_is_past_1_1st:395,test_verb_is_past_2_1st:395,test_verb_is_past_3_1st:395,test_verb_is_past_4_1st:395,test_verb_is_past_5_1st:395,test_verb_is_past_6_1st:395,test_verb_is_past_7_2nd:395,test_verb_is_past_participl:395,test_verb_is_past_participle_0_hav:395,test_verb_is_past_participle_1_swim:395,test_verb_is_past_participle_2_g:395,test_verb_is_past_participle_3_given:395,test_verb_is_past_participle_4_am:395,test_verb_is_past_participle_5_do:395,test_verb_is_past_participle_6_ar:395,test_verb_is_past_participle_7_had:395,test_verb_is_pres:395,test_verb_is_present_0_1st:395,test_verb_is_present_1_1st:395,test_verb_is_present_2_1st:395,test_verb_is_present_3_1st:395,test_verb_is_present_4_1st:395,test_verb_is_present_5_1st:395,test_verb_is_present_6_1st:395,test_verb_is_present_7_1st:395,test_verb_is_present_participl:395,test_verb_is_present_participle_0_hav:395,test_verb_is_present_participle_1_swim:395,test_verb_is_present_participle_2_g:395,test_verb_is_present_participle_3_given:395,test_verb_is_present_participle_4_am:395,test_verb_is_present_participle_5_do:395,test_verb_is_present_participle_6_ar:395,test_verb_is_tens:395,test_verb_is_tense_0_inf:395,test_verb_is_tense_1_inf:395,test_verb_is_tense_2_inf:395,test_verb_is_tense_3_inf:395,test_verb_is_tense_4_inf:395,test_verb_is_tense_5_inf:395,test_verb_is_tense_6_inf:395,test_verb_past:395,test_verb_past_0_1st:395,test_verb_past_1_1st:395,test_verb_past_2_1st:395,test_verb_past_3_1st:395,test_verb_past_4_1st:395,test_verb_past_5_1st:395,test_verb_past_6_1st:395,test_verb_past_7_2nd:395,test_verb_past_participl:395,test_verb_past_participle_0_hav:395,test_verb_past_participle_1_swim:395,test_verb_past_participle_2_g:395,test_verb_past_participle_3_given:395,test_verb_past_participle_4_am:395,test_verb_past_participle_5_do:395,test_verb_past_participle_6_ar:395,test_verb_pres:395,test_verb_present_0_1st:395,test_verb_present_1_1st:395,test_verb_present_2_1st:395,test_verb_present_3_1st:395,test_verb_present_4_1st:395,test_verb_present_5_1st:395,test_verb_present_6_1st:395,test_verb_present_7_2nd:395,test_verb_present_8_3rd:395,test_verb_present_participl:395,test_verb_present_participle_0_hav:395,test_verb_present_participle_1_swim:395,test_verb_present_participle_2_g:395,test_verb_present_participle_3_given:395,test_verb_present_participle_4_am:395,test_verb_present_participle_5_do:395,test_verb_present_participle_6_ar:395,test_verb_tens:395,test_verb_tense_0_hav:395,test_verb_tense_1_swim:395,test_verb_tense_2_g:395,test_verb_tense_3_given:395,test_verb_tense_4_am:395,test_verb_tense_5_do:395,test_verb_tense_6_ar:395,test_view:431,test_wal:193,test_whisp:193,test_who:193,test_without_migr:8,test_wrong_func_nam:193,testabl:8,testaccount:193,testadmin:193,testampserv:340,testapp:141,testbatchprocess:193,testbodyfunct:266,testbuild:193,testbuildexamplegrid:279,testcas:[8,202,211,252,279,340,350,382,388,395,425],testcmdcallback:233,testcmdtask:193,testcommand:28,testcommschannel:193,testcraftcommand:211,testcraftingrecip:211,testcraftingrecipebas:211,testcraftsword:211,testcraftutil:211,testdefaultcallback:233,testdummyrunnerset:350,tester:[111,155,332],testevenniarestapi:414,testeventhandl:233,testevscaperoom:222,testevscaperoomcommand:222,testform:373,testgener:193,testgeneralcontext:425,testhelp:193,testid:22,testinterruptcommand:193,testirc:340,testmap10:279,testmap11:279,testmap1:279,testmap2:279,testmap3:279,testmap4:279,testmap5:279,testmap6:279,testmap7:279,testmap8:279,testmap9:279,testmapstresstest:279,testmemplot:350,testmenu:[225,374],testmixedrefer:382,testmod:355,testmymodel:8,testnnmain:193,testnumerictraitoper:252,testobj:[8,221,223],testobject:8,testobjectdelet:382,testok:107,testpronounmap:395,testregularrefer:382,testrenam:108,testset:8,testsharedmemoryrefer:382,teststat:222,teststr:8,testsystem:193,testsystemcommand:193,testtabl:108,testtelnet:340,testtrait:252,testtraitcount:252,testtraitcountertim:252,testtraitfield:252,testtraitgaug:252,testtraitgaugetim:252,testtraitstat:252,testunconnectedcommand:193,testutil:222,testverbconjug:395,testview:53,testwebsocket:340,testxyzgrid:279,testxyzgridtransit:279,text2html:[165,166,366,443],text:[0,6,8,11,12,13,14,15,16,17,18,22,25,26,27,29,30,31,33,35,36,39,41,42,46,51,53,54,58,59,60,62,64,65,67,68,69,75,76,77,80,82,83,84,86,87,91,95,98,99,100,104,106,107,109,113,115,117,119,120,122,123,124,125,126,127,130,136,138,139,141,143,144,147,149,151,153,155,156,157,163,168,169,174,177,179,180,181,182,187,188,189,190,191,192,193,194,197,198,203,204,205,206,209,210,213,214,216,217,218,223,224,225,226,227,230,232,236,239,240,242,243,247,249,250,251,253,254,256,257,258,259,260,264,265,269,270,271,272,275,286,288,289,292,296,298,301,304,311,312,319,325,326,329,332,333,334,337,338,342,343,345,353,354,355,358,359,362,363,365,367,368,370,372,373,374,375,376,377,384,387,389,390,391,398,400,404,430,442,443],text_:85,text_color:227,text_descript:253,text_exit:[77,204],text_single_exit:77,textarea:[386,430],textbook:62,textbox:430,textfield:[67,141],textn:193,textstr:32,texttag:[104,139],texttohtmlpars:389,textual:96,textwrap:376,textwrapp:376,than:[0,3,4,5,6,7,8,9,11,12,13,14,15,18,20,22,24,25,28,29,30,31,33,37,39,41,42,44,46,47,48,51,53,56,57,58,60,64,67,70,72,73,75,78,79,80,81,83,84,85,87,88,90,92,94,96,99,100,101,102,105,107,108,111,113,114,115,116,118,119,120,121,122,124,126,127,129,130,139,142,145,146,148,151,152,155,158,159,161,163,168,171,174,175,176,179,180,181,182,183,189,190,192,193,203,204,205,209,212,218,221,227,232,241,242,243,250,253,254,256,257,258,259,260,270,272,277,281,282,283,284,291,294,296,298,300,314,340,355,360,362,363,364,365,367,368,374,375,376,377,381,383,385,386,387,389,390,399,406,419,439,443],thank:[90,142,236,359],thankfulli:141,the_answ:118,the_one_r:118,thead:142,theathr:31,theatr:31,thei:[3,4,5,6,7,8,11,12,13,14,15,16,17,18,19,20,22,28,30,31,33,37,39,40,41,42,44,45,46,48,50,51,52,53,54,55,56,57,58,60,62,63,64,65,67,68,69,70,74,75,76,77,78,79,80,82,83,84,85,87,88,90,91,92,94,95,96,97,98,99,100,102,103,104,106,107,108,109,110,111,113,114,115,116,117,118,121,122,124,126,127,129,130,134,136,138,139,140,142,143,145,146,149,154,155,158,162,163,168,175,176,179,181,182,187,188,190,191,192,196,203,204,206,209,210,213,218,224,226,231,242,243,253,256,257,258,259,260,270,271,272,273,281,282,284,286,291,292,295,296,300,301,302,304,306,307,309,314,334,335,337,338,339,343,346,352,353,354,355,357,362,367,368,369,371,374,376,377,390,391,394,399,406,411,413,416,430,436,440,441,443],theirs:[58,129,205,226,377,394,395],them:[0,5,6,7,8,9,11,12,13,14,15,16,18,19,20,22,25,27,28,30,31,32,33,35,36,37,39,41,42,44,46,47,48,50,51,53,54,55,56,58,60,62,63,64,65,67,68,70,73,74,75,76,77,78,79,80,82,83,84,85,87,88,90,91,93,94,95,96,99,100,101,102,105,106,107,108,111,113,114,115,116,117,118,120,121,122,124,126,127,129,130,133,134,136,138,139,141,142,146,148,152,154,155,156,158,159,163,168,173,174,175,177,179,181,182,187,189,190,193,196,205,206,207,209,210,219,224,225,226,227,229,231,240,241,243,253,254,256,257,258,259,260,265,269,271,272,281,287,292,296,301,306,309,314,332,334,337,345,349,352,353,355,362,364,365,367,368,370,374,377,386,389,394,399,406,408,413,421,436,439,441,443],themat:121,theme:[53,113,121,123,142],themself:258,themselv:[6,8,13,18,20,22,28,33,37,45,48,57,58,70,74,75,81,85,87,91,93,100,102,104,106,113,122,123,126,127,130,138,140,153,182,218,243,282,296,304,307,314,363,365,377,386,394,395],theoret:[20,69,83,125,284],theori:[3,20,99,130,144,168,175,443],thereaft:36,therefor:[8,42,75,81,83,101,107,120,181,204,218,229],therein:[16,22,179,190,192,194,216,224,240,271],thereof:[243,296],thess:294,thet:113,thi:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19,20,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,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,79,80,81,82,83,84,85,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,125,126,127,128,129,130,131,132,134,135,136,137,138,139,140,141,142,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,161,162,163,164,165,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,203,204,205,206,207,209,210,211,212,213,214,216,217,218,219,221,223,224,225,226,227,229,230,231,232,235,236,239,240,241,242,243,246,247,249,250,251,252,253,254,256,257,258,259,260,262,264,265,267,268,269,270,271,272,273,275,276,277,278,279,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,316,318,319,320,321,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,341,342,343,345,346,347,348,349,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,381,382,383,384,385,386,387,388,389,390,391,393,394,396,398,399,400,402,403,404,405,406,408,410,411,413,416,419,421,422,423,427,428,430,432,434,435,436,437,438,439,440,441,442,443],thie:28,thieveri:189,thin:[54,77,82,94,206,383],thing:[0,1,5,6,8,9,10,11,13,14,16,18,19,20,22,27,28,30,31,32,37,39,41,44,45,47,48,51,53,54,55,57,58,60,62,64,65,67,69,72,73,75,76,77,79,80,81,82,83,84,87,88,89,90,91,92,93,94,95,96,100,102,103,105,106,107,108,109,111,112,113,115,116,120,121,122,124,126,127,128,129,130,132,134,136,138,139,140,141,142,144,145,149,152,154,155,157,158,159,161,162,163,168,175,176,182,203,204,209,210,218,223,224,232,242,243,253,254,260,265,268,271,272,292,295,296,323,327,359,362,364,367,368,376,377,386,399,406,408,439,441,442,443],things_styl:223,think:[0,6,20,28,35,39,41,46,47,52,53,60,73,80,82,83,84,87,89,94,101,104,107,108,109,116,118,119,121,125,126,127,128,131,133,144,151,161,355,439],third:[3,8,9,13,19,28,30,59,75,76,84,85,88,96,102,116,124,126,138,142,145,146,153,154,155,182,193,218,367,374,377,443],third_person:223,thirdnod:28,this_sign:356,thoma:[36,55,180],thorn:[37,118],thorough:0,those:[2,8,9,10,11,12,13,14,15,16,18,20,22,25,28,30,33,37,39,41,44,46,48,53,57,58,60,67,68,73,76,82,83,87,88,90,91,93,95,97,98,99,100,101,103,104,106,108,109,111,114,115,116,118,119,120,121,122,124,126,127,130,132,134,136,138,143,144,146,149,152,155,158,161,163,176,177,179,182,187,188,189,193,197,204,209,210,216,223,243,247,253,254,256,265,270,271,292,300,301,303,308,337,342,345,363,364,374,375,376,384,385,388,390,413,430,435,436,438,443],though:[0,6,8,9,11,12,13,14,15,16,19,20,28,37,50,54,55,64,72,77,83,84,88,95,96,99,101,102,104,107,108,110,112,114,116,120,122,123,124,126,129,130,138,139,144,146,149,151,153,154,155,157,158,159,163,168,177,204,205,227,253,256,257,259,260,271,272,282,296,300,301,362,367,374,390],thought:[33,34,96,116,121,123,144,146],thousand:[82,96,141,155],thread:[19,78,144,146,163,333,359,383,390],threadpool:359,threadsaf:[399,406],threat:158,three:[13,14,18,20,22,28,31,33,36,37,55,56,58,60,65,73,75,77,80,85,90,92,102,106,110,116,118,122,128,141,142,155,174,187,189,254,259,283,292,367,374],threshold:[83,266,357,368],thrill:106,throttl:[165,166,168,310,319,332,443],through:[5,6,7,12,14,15,17,19,20,22,28,29,30,31,33,36,37,41,42,44,45,50,52,53,62,65,68,69,74,75,76,80,83,85,87,88,89,92,95,96,97,98,99,100,101,102,106,107,112,113,117,118,119,120,123,124,125,126,128,129,133,134,135,138,146,152,155,156,158,159,161,163,165,168,176,182,187,189,193,203,221,222,224,229,247,249,256,257,258,259,260,273,281,282,290,292,295,296,305,306,309,314,316,321,330,334,337,343,346,351,353,354,363,364,368,370,373,374,375,389,390,399,406,430,439,443],throughout:[28,81,87,109,159,258,279],throughput:[196,370],thrown:[129,210],thrust:[270,395],thu:[15,18,20,22,28,30,33,35,39,48,57,60,65,67,69,73,82,96,97,99,100,111,116,123,127,130,134,138,142,148,179,183,205,242,243,281,282,284,292,296,309,346,360,362,363,370],thud:226,thumb:[4,11,60],thumbnail:90,thunder:146,thunderstorm:120,thusli:154,tick:[5,11,22,28,42,47,85,88,140,146,222,258,269,271,309,346],ticker1:[47,309],ticker2:[47,309],ticker:[26,32,42,86,108,140,169,192,269,271,305,309,319,390,443],ticker_class:309,ticker_handl:[47,86,140,165,309,390],ticker_pool_class:309,ticker_storag:309,tickerhandl:[19,24,42,129,140,165,166,192,250,258,271,302,390,443],tickerpool:309,tickerpool_layout:309,ticket:89,tidbit:87,tidi:157,tie:[129,284,443],tied:[18,88,118,176,189,206,218,221,265,283,288,303],tier:[78,155],ties:[53,73,81,184],tight:206,tightli:[39,158,196],tild:111,tim:[78,206,225,227,254,256,257,258,259,260],time:[0,2,3,5,7,8,9,11,12,13,14,15,17,18,20,26,28,29,30,31,33,35,37,41,44,47,48,54,55,60,62,63,65,67,68,70,72,73,75,76,77,78,79,81,83,84,86,87,88,89,90,91,92,93,94,95,96,98,100,102,103,107,108,109,111,113,114,115,116,117,118,120,121,122,124,126,127,129,130,135,138,140,141,145,146,148,149,150,151,153,154,155,157,159,163,168,169,171,173,174,176,177,180,187,192,196,198,203,209,210,212,213,218,224,231,232,235,240,241,242,249,250,252,253,254,256,257,258,259,260,262,265,269,270,271,288,295,296,299,301,302,304,307,308,309,314,316,318,320,321,326,332,337,339,345,346,347,351,352,353,355,357,362,364,365,367,368,369,370,375,378,381,382,383,386,390,399,406,443],time_ev:235,time_factor:[19,101,212,378],time_format:[390,443],time_game_epoch:[19,101,378],time_str:101,time_to_tupl:212,time_unit:[101,212],time_until_next_repeat:42,timed_script:42,timedelai:[94,308,388,390],timedelta:[384,391],timeeventscript:232,timefactor:101,timeformat:[383,390],timeit:5,timelin:124,timeout:[78,129,137,149,151,337,357,381],timer:[19,22,47,65,88,98,109,112,113,123,129,182,224,252,258,262,265,270,302,303,307,308,309,345,353,387,416,443],timerobject:42,timerscript:42,timescript:378,timeslot:224,timestamp:[19,64,92,345,346,357,378],timestep:[5,346],timestr:383,timetrac:[165,166,310,344,443],timetupl:101,timezon:[146,383,384,391],tin:117,tini:[96,104,146],tinker:6,tintin:[147,327,328,338,341],tinyfugu:147,tinymud:[69,99],tinymush:[69,72,99,194],tinymux:[69,99],tip:[46,84,89,144,158,443],tire:[109,176],titeuf87:[78,273],titl:[0,17,51,77,85,102,156,187,189,204,219,243,287,367,370,441,443],title_lone_categori:189,titlebar:51,titleblock:102,tlen:152,tls:145,tlsv10:151,tlsv1:145,tmp:[2,149],tmpmsg:18,to_be_impl:437,to_byt:[390,443],to_closed_st:265,to_cur:258,to_displai:204,to_dupl:175,to_execut:390,to_exit:75,to_fil:246,to_init:260,to_non:296,to_obj:[168,177,296],to_object:197,to_open_st:265,to_pickl:371,to_str:[390,443],to_syslog:246,tobox:323,todai:[123,227],todo:[23,38,43,66,100,110,128,131,133,160],toe:[69,116],togeth:[11,13,15,20,22,30,31,37,40,48,61,65,75,76,77,81,83,85,88,94,99,100,111,113,116,117,118,120,121,122,123,124,126,127,129,130,131,132,139,145,152,155,173,182,184,189,209,210,219,224,239,240,242,243,270,271,281,282,294,295,301,323,342,355,367,368,387,399,406,443],toggl:[104,337],toggle_nop_keepal:337,togglecolor:104,toi:79,toint:[30,41,377],token:[18,126,152,334,337,368,377],told:[9,58,60,70,97,107,113,116,130,155,386],tolkien:101,tom:[30,36,58,72,100,122,130,182,188,226,243,373,377,393],tomdesmedt:393,tommi:[36,39,57,377],ton:[99,105],tone:60,tonon:[182,275],too:[3,5,7,9,11,13,14,15,17,18,19,22,28,31,34,48,50,55,58,60,65,75,76,77,80,81,85,90,91,92,94,96,99,100,106,107,108,109,112,114,115,118,119,121,122,123,124,126,127,129,130,138,141,149,180,182,199,210,211,254,259,265,282,283,291,294,319,323,357,359,365,368,373,374,375,376,387,390],took:[8,112,390],tool2:211,tool:[30,39,41,46,50,53,60,67,69,78,79,82,83,86,88,90,94,99,101,114,116,118,119,121,123,124,125,128,131,133,134,145,146,149,151,155,157,209,210,211,442,443],tool_kwarg:209,tool_nam:209,tool_tag:[79,209,210],tool_tag_categori:[79,209],toolbox:144,toolkit:53,tooltip:51,top:[0,5,10,11,14,20,22,27,29,30,31,42,46,48,50,53,58,76,77,82,83,85,94,96,99,100,102,106,108,112,115,116,117,130,135,141,142,144,149,154,159,163,171,176,198,204,206,212,216,239,243,254,272,273,281,282,286,288,295,304,314,356,362,364,365,368,375,376,383],topcistr:287,topic:[3,5,20,22,31,44,50,54,62,64,67,87,90,102,109,111,114,116,123,139,189,216,218,256,257,258,259,260,287,289,387,430,438],topicstr:287,topolog:[83,281,282],tostr:323,total:[5,19,33,44,49,60,83,101,105,107,122,136,159,170,192,213,282,351,375,376,378],total_num:381,touch:[6,60,85,113,114,145,148,158,159,357],tour:[107,113,119,125,128,131,133],toward:[3,22,62,77,82,83,107,121,123,124,227,260,269],tower:[82,224,271],town:[83,275],trace:[65,83,232,282,351,374],traceback:[6,8,14,19,42,53,64,73,99,108,116,130,141,163,232,239,299,323,364,368,383,390,443],tracemessag:351,track:[9,13,19,42,44,67,81,88,95,99,105,113,116,121,122,127,129,138,140,141,156,157,168,176,196,253,260,279,282,305,325,326,331,334,337,352,357,371,372,384,443],tracker:[11,26,78,89],trade:[78,80,122,123,203],tradehandl:203,trader:80,tradetimeout:203,tradit:[2,16,32,54,60,65,109,113,116,123,127,129,155,158,209,273,337,353,375],tradition:[65,99,121,123,124,210],traffic:[145,158,327],trail:[53,202],train:[103,108,123,144,253,443],traindriv:138,traindrivingscript:138,trainobject:138,trainscript:138,trainstop:138,trainstoppedscript:138,trait1:253,trait2:253,trait:[19,85,123,127,165,166,199,252,301,443],trait_class_path:253,trait_data:253,trait_kei:253,trait_properti:253,trait_typ:[252,253],traitexcept:253,traitfield:[252,253],traithandl:[165,166,199,252,443],traithandler_nam:253,traithandlertest:252,traitproperti:[165,166,199,252,443],traitshandl:[252,253],transact:[122,203],transfer:[106,141,176,325,335,339,376],transform:[2,111],transit:[37,276,279,281,282,443],transitionmapnod:[83,276,279,282],transitiontocav:276,transitiontolargetre:276,transitiontomapa:83,transitiontomapc:83,translat:[15,36,58,60,62,68,70,113,139,144,242,243,301,316,367,443],transmiss:246,transmit:[70,413],transpar:[18,44,51,139,151,294,295,309],transport:[323,334,343],transportfactori:334,transpos:139,trap:[15,105,120],traumat:28,travel:[65,68,81,105,250,273],travers:[13,33,37,81,83,97,106,138,249,250,269,270,273,281,282,291,296,416],traverse_:22,traversing_object:[249,250,273,296],travi:[1,443],travis_build_dir:10,treasur:[76,118,122,273],treasurechest:39,treat:[13,15,22,44,46,48,54,82,83,88,111,117,118,168,173,176,226,264,282,286,294,296,301,346,355,374,376,387,443],tree:[11,22,28,39,74,79,83,85,86,88,121,122,132,149,165,166,199,204,208,243,254,272,276,296,301,314,343,359,374,390,412,443],tree_select:[165,166,199,443],treestr:254,trembl:[114,117],treshold:381,tri:[15,22,33,35,36,44,45,55,64,65,70,94,100,107,108,115,118,121,123,126,129,141,147,155,174,192,203,205,225,270,271,318,357,390,391],trial:[7,340],tribal:82,trick:[77,115,126,144,145,364,430,443],tricki:[8,41,139],trickier:[76,102],tried_kei:39,trigger:[2,3,18,20,22,28,32,34,37,44,45,47,59,65,73,80,81,91,98,99,102,124,129,135,136,138,142,147,157,168,169,173,174,177,179,193,204,218,235,265,269,271,295,296,301,309,316,319,323,345,352,356,370,374],trim:367,tripl:[19,85,116,390],triumph:[120,123],trivial:[3,5,19,22,62,107,120,126],troll:55,troubl:[11,35,44,76,80,89,100,107,109,116,119,145,146,149,154,161,162,362],troubleshoot:[76,162,443],troublesom:[14,15,55],trove:[76,122],truestr:225,truli:[44,55,75,96,224],trust:[28,30,57,99,122,123,192,368],truth:3,truthfulli:22,truthi:[108,308],try_num_differenti:174,ttarget:129,tto:337,tty:[76,157],ttype:[165,166,310,322,334,337,443],ttype_step:341,tuck:82,tulip:118,tun:[26,182],tune:[113,123,139,151],tunnel:[26,75,77,81,83,97,100,108,109,115,126,138,182,339],tup:[96,243],tupl:[3,5,13,28,30,36,39,41,50,67,68,96,108,111,126,129,142,155,165,168,174,180,182,187,189,190,197,203,204,209,212,213,217,223,226,229,243,258,259,264,268,273,275,281,282,283,284,289,291,292,296,300,301,309,311,314,323,324,334,335,339,346,353,355,362,365,367,369,370,372,374,378,383,385,390,393,394,414],tuple_of_arg_convert:30,tupled:383,turbo:154,turkish:168,turn:[8,11,13,19,20,22,27,28,33,44,45,53,54,55,60,63,65,68,73,75,78,82,83,85,88,99,100,104,108,114,115,116,117,118,120,122,123,126,135,136,138,139,141,144,155,163,168,177,192,193,196,235,243,254,256,257,258,259,260,269,271,284,296,301,314,319,327,334,337,345,355,361,364,368,370,374,375,376,377,390,399,419,421,443],turn_act:129,turn_end_check:[256,257,258,259,260],turnbattl:[165,166,199,443],turnchar:258,tut:[120,271],tutor:268,tutori:[3,17,20,21,22,25,28,46,47,53,54,56,60,73,77,81,82,84,85,87,88,90,92,93,94,96,99,100,104,105,107,108,109,111,113,114,115,116,117,122,124,132,139,141,144,149,152,155,162,204,250,257,270,271,442,443],tutorial_bridge_posist:271,tutorial_cmdset:271,tutorial_exampl:[14,15,109,113,116,165,166,199,443],tutorial_info:271,tutorial_world:[77,120,149,165,166,199,443],tutorialclimb:270,tutorialevmenu:268,tutorialmirror:[116,264],tutorialobject:[269,270],tutorialread:270,tutorialroom:[269,271],tutorialroomcmdset:271,tutorialroomlook:271,tutorialweapon:[269,270],tutorialweaponrack:270,tutorialworld:[270,271],tutoru:116,tweak:[6,13,18,31,41,48,53,76,83,92,99,100,108,114,122,128,135,145,151,168,193,265,359,367,398,403],tweet:[103,443],tweet_output:137,tweet_stat:137,tweetstat:137,twenti:100,twice:[28,92,101,120,129,202,232,260,374],twist:[6,19,22,52,54,62,94,144,149,153,154,158,296,308,311,314,316,317,323,324,325,326,331,334,337,340,342,343,345,352,355,359,383,443],twistd:[7,149,163,331,352],twistedcli:62,twistedweb:158,twitch:129,twitter:[137,161,443],twitter_api:152,two:[4,5,6,8,11,13,14,15,16,19,20,22,27,28,30,31,32,33,34,37,40,41,42,44,46,48,51,56,57,58,62,64,65,67,68,69,70,72,73,74,75,77,80,81,82,83,85,88,90,92,93,94,96,97,99,100,102,106,107,109,110,111,112,113,114,115,116,117,118,119,120,122,123,124,125,126,127,128,129,130,138,139,141,142,146,150,151,155,157,158,159,163,175,182,187,196,198,203,204,209,210,213,218,236,241,249,250,253,254,258,260,265,271,272,279,281,282,296,298,314,343,354,355,363,365,368,374,376,377,383,390,391],twowai:182,txt:[0,27,62,76,83,85,116,143,154,155,169,242,330,338,372,374,390,393],tyepclass:294,tying:[155,419],typclass:243,type:[0,3,6,9,15,17,18,19,20,22,25,26,27,28,30,31,33,35,36,41,42,44,45,46,47,48,49,50,51,55,56,57,58,60,65,67,68,69,70,75,77,78,79,80,81,82,83,84,85,87,88,91,92,93,94,97,98,99,100,101,104,105,107,109,110,111,112,113,114,116,117,120,121,122,123,126,127,128,129,130,135,136,137,138,139,141,144,145,147,154,155,158,163,165,166,168,169,177,182,187,189,192,193,194,196,197,198,199,202,204,206,209,210,214,216,218,219,221,225,229,232,235,236,243,250,252,256,257,258,259,260,265,270,271,272,280,281,282,284,286,288,291,292,295,296,300,301,308,309,312,314,316,317,323,325,326,332,334,335,337,338,339,341,342,343,345,353,355,359,362,363,364,365,367,368,370,371,374,375,376,377,385,386,387,389,390,394,398,399,406,410,411,413,416,424,430,438,443],type_count:206,typecalass:362,typecalss:232,typeclas:114,typeclass:[0,8,12,13,14,18,19,22,24,26,31,33,34,35,37,39,41,42,44,45,46,50,53,55,63,64,65,75,76,77,78,79,81,82,83,85,91,92,96,97,98,100,101,102,103,105,106,107,109,110,111,112,117,119,122,127,128,129,130,135,136,137,138,140,141,142,165,166,168,169,170,171,176,182,187,196,197,198,199,206,209,216,218,221,223,224,228,231,232,235,240,243,249,250,251,256,257,258,259,260,265,271,273,275,284,287,292,294,295,296,300,301,303,304,305,307,309,352,369,370,387,388,390,408,410,413,416,421,431,440,443],typeclass_path:[42,48,171,182,304,363,364],typeclass_search:[170,294,303,363],typeclasses:114,typeclasslistserializermixin:413,typeclassmanag:[170,197,294,303],typeclassmixin:[434,435,436,440],typeclassserializermixin:413,typeclassviewsetmixin:416,typedobject:[48,171,177,198,243,273,284,295,296,304,362,363,364,365,385,390],typedobjectmanag:[170,197,287,294,303,363],typeerror:[3,213,343],typelass:18,typenam:[77,168,169,171,196,198,203,206,212,218,219,224,226,232,240,241,242,243,249,250,251,256,257,258,259,260,262,264,265,269,270,271,273,283,284,288,295,296,300,304,307,321,347,362,364,378,381,382],typeobject:365,types_count:206,typic:[8,19,87,107,253,259,260,413,440],typo:[84,85,89,158],ubbfwiuvdezxc0m_2pm6ywo:84,ubuntu:[6,11,145,146,149,151,155,158],uemail:170,ufw:158,ugli:[41,51,98,116,384],uid:[157,170,171,326,333,354,355],uit:[77,204],ulrik:100,ultima:144,umlaut:16,unabl:[152,227],unaccept:22,unaffect:[28,129,258,308],unalia:[18,187],unam:170,unari:252,unarm:257,unarmor:257,unauthenticated_respons:431,unavoid:47,unban:[18,55,108,180,187,193,196],unban_us:187,unbias:213,unbroken:373,uncal:308,uncas:367,uncategor:387,unchang:[6,36,242,253,301,390],unclear:[58,83,95,124,282],uncolor:[60,104],uncom:[151,155],uncommit:11,uncompress:327,unconnect:[83,194,214],uncov:206,undefin:[2,46,67],under:[2,3,5,7,9,18,22,28,30,31,42,48,51,53,64,67,69,73,76,78,80,85,88,99,108,109,111,114,115,117,121,122,123,127,130,134,141,142,143,144,147,149,154,157,163,177,179,182,209,225,252,253,254,272,292,307,314,341,362,367,374,375,376,390,393,394,407,443],undergar:206,undergon:232,underground:83,underli:[11,33,50,88,99,121],underlin:[376,389],underneath:[76,364],underpin:131,underscor:[6,28,30,32,68,75,79,85,116,175,377,390],underscror:175,understand:[0,3,11,16,20,22,39,41,44,52,54,60,65,70,71,79,81,82,84,85,87,90,92,94,95,96,97,103,104,107,108,111,113,114,115,116,117,121,122,123,124,126,130,134,141,142,144,146,147,149,158,159,174,175,187,210,241,242,243,359,367,390,443],understood:[8,31,58,65,82,107,123,282,342,343],undertak:124,undestand:92,undo:[27,158,372],undon:179,undoubtedli:99,uneven:282,unexpect:[8,107,139,374,390],unexpectedli:381,unfair:123,unfamiliar:[32,33,53,68,78,116,136,149,155],unfocu:216,unfocus:218,unformat:[28,374,378],unfortun:[90,121],ungm:443,unhappi:76,unheard:58,unhilit:389,unicod:[16,65,70,78,83,168,282,367,390],unicodeencodeerror:367,unifi:[141,354],uniform:44,unimpl:443,uninflect:393,uninform:145,uninstal:[149,443],uninstati:390,unintent:272,union:[20,28,114,175,265,374],uniqu:[2,8,12,14,20,22,25,33,34,35,41,42,44,46,48,50,51,55,58,62,65,80,83,85,88,99,109,111,114,118,130,152,155,168,173,175,177,182,187,194,196,197,205,209,212,214,218,231,241,242,243,249,254,257,258,269,271,275,281,282,284,287,296,300,301,303,309,311,323,324,332,345,346,354,355,362,363,364,365,370,372,377,384,387,390,394],unit:[1,2,10,19,20,45,53,84,88,101,105,144,197,211,212,222,235,252,258,316,370,378,390,395,443],unittest:[8,10,92,193,355,370,388],univers:[15,16,101],unix:[0,29,36,78,85,147,149,151,188,272,375,383,390],unixcommand:[165,166,199,443],unixcommandpars:272,unixtim:383,unjoin:203,unknown:[51,98,102,114,282,300,390],unknown_top:438,unleash:93,unless:[13,18,19,22,28,30,33,34,35,37,47,55,68,74,77,83,85,90,91,94,114,117,121,123,130,143,146,151,153,155,163,168,175,176,180,182,187,189,190,193,196,231,241,242,243,260,270,286,291,292,296,301,312,327,343,355,362,364,377,387,390,391,438],unlik:[45,83,84,88,123,127,155,168,204,253,258,282,364],unlimit:[273,281],unlink:[26,108,182],unload:[83,388],unload_modul:388,unlock:[18,39,100,114,187,218,362],unlock_flag:218,unlocks_red_chest:39,unlog:[5,180,185,186,194,214,355],unloggedin:[44,165,166,172,178,355,443],unloggedincmdset:[25,26,44,115,186,214],unlucki:55,unmask:243,unmodifi:[174,191,224,374],unmonitor:[319,443],unmut:[18,187,196],unmute_channel:187,unnam:[46,175],unneccesari:70,unnecessari:[2,121],unnecessarili:111,unneed:273,unpaced_data:323,unpack:[107,291],unpars:[32,36,174,342,343,377],unpaus:[42,157,182,192,308],unpickl:[50,65,323,362,371,386],unplay:[44,92],unpredict:390,unprivileg:301,unprogram:127,unpuppet:[26,45,130,179,398],unpuppet_al:168,unpuppet_object:[12,168],unquel:[26,39,109,116,179],unreal:144,unrecogn:377,unrecord_ip:357,unregist:73,unrel:[11,28],unrepat:390,unrepeat:[319,390,443],unreport:319,unrestrict:122,unsaf:[163,175,271,390],unsafe_token:367,unsatisfactori:82,unsav:372,unsel:106,unset:[13,22,37,81,100,129,180,193,218,219,221,243,253,269,281,283,292,296,300,301,309,362,370,374,375,376,377,383],unset_character_flag:218,unset_flag:[218,219],unset_lock:187,unsign:391,unsigned_integ:[384,391],unsignedinteg:384,unskil:253,unspawn:282,unstabl:157,unstrip:174,unsub:[18,187],unsub_from_channel:187,unsubscrib:[18,47,100,309,325],unsuccessful:64,unsuit:[57,300,365],unsupport:13,unsur:[16,30,84,108,129,149,152,155,250],unsurprisingli:116,untag:51,untest:[8,147,149],until:[0,2,5,6,11,13,14,20,22,28,36,42,47,51,52,54,55,60,67,83,88,94,95,109,111,116,117,120,121,122,123,126,130,134,139,145,149,203,206,212,235,252,256,257,258,259,260,265,269,270,271,281,296,308,314,343,345,362,367,368,378,390],untouch:[83,117,367],untrust:[14,30,78,123,390],unus:[22,79,83,104,123,168,173,177,187,196,224,254,260,264,271,284,296,307,337,353,358,363],unusu:[124,158],unwield:257,unwieldli:176,upcom:[148,161],updat:[1,2,5,6,8,12,13,14,15,22,26,28,31,34,37,42,47,49,64,65,67,68,73,76,81,83,85,88,90,93,94,95,96,99,100,101,104,107,113,116,121,126,127,129,130,134,141,142,144,145,146,147,149,151,152,154,155,156,157,161,169,176,177,182,187,190,192,193,196,207,224,232,243,252,259,271,277,283,288,292,295,296,298,299,301,303,305,330,332,333,338,352,353,355,357,362,364,371,372,373,374,375,376,381,390,398,399,406,411,415,430,431,440,441,443],update_attribut:362,update_buff:372,update_cached_inst:381,update_charsheet:100,update_current_descript:224,update_default:352,update_flag:353,update_lock:411,update_method:51,update_po:81,update_scripts_after_server_start:303,update_session_count:353,update_undo:372,update_weath:271,updated_bi:229,updated_on:229,updatemethod:51,updateview:[440,441],upenn:393,upfir:7,upgrad:[88,149,154,443],upload:[88,90,149,155,157,443],upmaplink:[83,282],upon:[15,33,49,53,67,70,94,121,130,135,155,157,158,225,247,256,257,258,259,260,306,316,325,357,375,440],upp:271,upper:[8,49,60,67,83,94,96,179,253,281,282,367],upper_bound:253,upper_bound_inclus:253,uppercas:[60,243,367],upping:60,upsel:155,upset:108,upsid:273,upstart:62,upstream:[0,9,88,159,443],upt:176,uptim:[19,26,30,55,101,192,328,378],urfgar:41,uri:[177,196,286,288,364],url:[11,49,50,52,53,59,73,88,113,134,142,145,155,156,165,166,169,177,187,196,202,286,288,333,343,359,364,389,396,397,409,416,426,429,435,436,438,441,443],url_nam:[416,431],url_or_ref:85,url_path:416,url_to_online_repo:11,urlencod:102,urlpattern:[53,73,90,102,132,141,142],usabl:[63,90,116,122,130,182,204,218,227,258,291,357,374],usag:[3,5,22,28,31,35,41,47,55,72,75,77,85,88,91,93,94,95,100,104,105,106,107,108,115,116,126,127,129,130,138,152,155,162,177,179,180,181,182,187,188,189,192,193,194,203,204,205,206,209,210,212,213,214,216,224,225,226,236,239,240,242,243,247,249,250,251,256,257,258,259,260,265,268,269,270,271,272,273,275,277,291,299,308,314,345,374,376,377,381,443],use:[0,2,3,4,5,7,8,9,10,11,12,13,14,15,16,17,19,20,22,25,27,28,29,30,31,32,33,34,35,36,37,39,41,42,44,45,46,48,49,50,51,52,53,54,55,56,57,58,60,62,63,64,65,67,68,69,70,72,73,74,75,76,77,78,79,80,81,82,83,84,85,88,89,90,91,92,93,94,96,98,99,100,101,102,103,104,105,106,107,108,109,110,111,113,114,115,116,117,118,119,120,121,124,125,126,127,128,129,130,131,132,133,134,136,137,138,139,140,141,142,144,145,146,147,148,149,150,151,152,153,155,156,157,158,159,161,162,165,168,169,171,173,174,175,176,177,179,182,183,187,188,189,190,192,193,194,196,198,203,204,205,206,209,210,213,216,218,219,223,224,226,227,231,235,236,239,240,241,242,243,249,251,253,254,256,257,258,259,260,262,265,268,269,270,271,272,273,275,276,277,281,282,284,286,291,292,295,296,300,301,308,309,312,319,323,336,338,339,342,345,346,353,354,355,362,363,364,365,367,368,369,370,372,373,374,375,376,377,381,383,384,386,390,391,394,399,401,406,411,413,416,436,439,443],use_dbref:[243,294,296,387],use_destin:296,use_i18n:64,use_item:258,use_nick:[168,243,296],use_required_attribut:[400,402,404,406,430],use_success_location_messag:240,use_success_messag:240,use_xterm256:367,useabl:273,used:[5,8,9,11,12,13,14,16,17,18,19,20,23,25,27,28,29,30,31,32,33,34,35,36,37,39,41,42,44,45,46,47,48,50,51,52,53,54,56,57,58,60,62,64,65,67,68,69,70,71,72,73,75,76,77,78,79,80,82,83,85,88,94,95,98,99,100,101,102,105,106,107,109,110,111,112,113,114,115,116,117,118,119,120,123,126,127,129,130,132,134,136,137,138,139,141,142,144,146,147,148,149,151,153,155,157,158,159,163,165,166,168,169,173,175,176,177,179,182,187,189,190,191,192,193,194,196,199,203,204,206,208,209,212,214,218,219,221,224,225,226,227,229,231,232,235,236,241,242,243,250,253,254,256,257,258,259,260,265,269,270,271,272,273,275,278,281,282,283,284,286,287,288,289,290,291,292,294,296,300,301,307,308,309,310,311,312,316,319,320,323,324,325,326,327,328,329,330,331,332,334,336,337,338,341,342,343,346,353,355,356,362,363,364,365,366,367,368,370,371,372,374,375,376,377,383,384,385,386,387,390,391,394,398,399,403,406,408,413,416,430,434,436,438,439,440,443],useful:[0,1,2,3,5,8,11,13,14,15,16,17,19,20,27,28,30,31,33,36,37,39,41,42,45,46,47,48,50,53,54,55,56,57,60,63,75,77,79,80,82,83,84,85,86,88,90,92,93,94,95,96,99,100,102,103,104,107,108,109,111,112,114,115,116,117,118,120,123,125,126,129,130,137,140,141,146,149,155,159,161,163,173,175,176,177,179,181,182,189,190,193,196,199,203,204,209,218,223,231,232,236,242,243,247,253,265,271,272,273,282,283,291,296,300,301,314,334,362,364,368,374,378,386,390,412,442,443],usefulli:115,useless:[114,126,269],user:[0,2,3,5,6,8,10,12,14,15,18,20,25,27,28,29,30,31,32,33,36,39,44,45,48,49,50,51,52,54,55,59,60,62,63,68,70,71,73,77,78,79,81,83,84,85,87,88,89,90,92,93,94,95,103,104,106,107,108,109,113,114,116,118,119,123,126,130,134,138,139,141,142,144,145,146,149,150,151,152,153,154,155,156,157,159,162,168,169,171,174,177,180,182,187,189,192,193,196,197,198,202,204,206,209,217,218,224,226,230,232,243,246,247,254,258,260,264,271,273,282,284,286,288,292,296,301,307,310,312,318,326,333,334,337,342,343,353,355,358,362,364,367,372,374,375,376,377,384,390,391,398,411,419,422,430,435,436,437,438,439,441,443],user_change_password:398,user_input:28,user_permiss:[171,398],useradmin:398,userauth:334,userchangeform:398,usercreationform:[398,430],usermanag:170,usernam:[11,12,25,28,32,45,49,90,122,142,149,157,168,171,214,334,358,398,410,413,422,430],usernamefield:430,userpassword:[55,108,180],uses:[5,8,10,11,13,14,16,17,18,20,22,28,30,31,33,35,41,42,45,46,47,48,50,51,53,56,58,60,62,67,68,70,75,76,77,79,88,94,95,96,97,99,102,104,111,113,114,116,117,122,134,146,155,156,175,189,193,203,209,213,218,224,236,242,243,252,253,258,271,272,273,281,282,292,294,304,309,323,343,357,362,365,383,384,390,410,413,419,438],uses_databas:390,using:[0,2,5,6,9,11,12,13,14,15,16,18,19,20,22,26,27,28,30,31,32,33,36,37,39,41,42,44,45,46,47,48,49,50,51,52,53,54,55,57,58,60,65,67,68,69,72,74,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,98,99,100,101,104,106,107,108,109,110,111,112,113,116,117,121,122,123,124,126,127,128,129,130,135,136,137,138,139,140,141,142,143,144,145,146,147,149,151,152,153,155,157,158,162,163,168,171,173,176,177,179,181,182,187,189,190,191,192,193,196,203,204,205,209,210,211,212,213,218,224,225,227,231,240,242,243,249,250,251,253,254,256,257,258,259,260,268,269,271,272,273,275,276,281,282,284,286,289,292,294,296,299,300,301,304,308,309,325,326,327,332,333,337,343,346,355,356,357,359,362,364,365,367,368,372,374,375,378,383,384,385,386,387,388,390,396,411,415,416,430,438,439,442,443],usr:[88,149,154,157],usu:42,usual:[0,5,6,7,8,11,12,13,18,19,20,22,27,28,29,32,33,35,36,37,39,41,42,44,46,47,48,50,52,53,57,58,60,62,64,75,76,77,78,80,83,84,85,88,90,91,92,94,95,99,101,104,107,108,110,111,113,114,116,117,118,120,123,124,126,134,139,141,145,146,149,151,153,155,157,163,168,169,174,175,176,177,179,182,187,188,192,193,198,212,221,231,232,235,241,242,243,253,271,272,281,282,284,292,294,295,296,300,301,314,316,321,346,353,362,364,367,369,370,374,375,377,383,385,387,390,399,406],usuallyj:83,utc:[146,391],utf8:[2,146],utf:[16,32,70,82,100,147,194,319,325,342,376,390],util:[6,8,13,14,15,27,28,29,37,42,50,51,54,56,60,67,81,82,99,100,101,104,106,110,112,119,124,135,141,142,145,149,158,165,166,181,192,193,196,198,199,211,212,215,217,222,224,225,228,232,233,248,250,252,253,259,265,266,268,274,279,285,288,294,296,298,300,307,308,321,340,345,362,363,364,396,397,399,400,402,404,406,414,430,431,443],utilis:374,uyi:242,v19:149,vagu:91,val1:[13,377],val2:[13,377],val:[13,68,168,179,338,390],vala:13,valb:13,valid:[0,3,6,10,13,14,20,22,28,30,37,41,53,59,60,68,79,83,95,97,100,102,107,113,116,130,141,142,151,155,158,163,165,166,168,170,174,176,182,190,193,196,197,203,204,209,211,225,229,232,233,241,243,252,253,254,259,270,271,272,273,281,292,296,298,300,301,303,305,307,308,309,310,312,314,338,342,353,362,363,365,368,370,374,377,384,385,386,387,389,390,391,394,413,430,434,436,441,443],valid_handl:384,validate_cal:377,validate_email_address:390,validate_input:253,validate_nam:296,validate_onli:292,validate_password:[28,168],validate_prototyp:300,validate_sess:355,validate_usernam:168,validated_consum:[79,209],validated_input:209,validated_tool:[79,209],validationerror:[168,300,358,384,386],validator_config:168,validator_kei:384,validatorfunc:[165,166,366,443],valign:376,valu:[3,6,8,9,12,13,17,19,20,22,27,30,32,33,34,36,42,47,48,49,50,51,54,55,60,67,68,75,77,78,81,82,83,85,88,90,92,93,96,100,101,102,104,105,106,108,109,111,113,114,115,116,118,121,122,127,129,130,139,141,142,149,151,155,168,171,173,175,177,179,180,182,193,196,198,204,206,213,218,225,226,227,229,232,233,240,241,242,243,248,252,253,256,257,258,259,260,264,266,271,273,281,282,284,288,291,292,294,295,296,299,300,301,304,308,309,312,319,320,321,323,332,337,338,353,354,355,360,362,363,364,365,367,369,370,371,372,373,374,377,381,382,384,385,386,387,390,391,394,410,413,430,439,441,443],valuabl:120,value1:[41,85],value2:[41,85],value3:85,value_a:13,value_b:13,value_displai:413,value_from_datadict:386,value_to_obj:300,value_to_obj_or_ani:300,value_to_str:386,valueerror:[41,107,130,204,212,239,241,362,365,367,370,390,391],valuei:82,values_list:111,valuex:82,vampir:111,vanilla:[0,48,67,76,81,98,100,114,121,443],vaniti:28,vari:[11,31,48,62,64,69,83,88,95,105,113,116,230,242,253,260,284,353,362,364],variabl:[4,5,6,7,13,14,20,22,28,30,31,33,41,42,51,63,64,68,70,73,75,80,81,83,85,87,88,93,98,100,102,107,108,111,114,115,116,117,132,138,141,142,149,157,158,159,168,171,173,177,179,182,187,190,192,193,194,196,207,216,224,225,229,231,232,235,240,253,271,281,283,291,295,296,300,301,311,314,324,327,328,330,334,336,346,353,360,367,368,374,377,390,423,443],variable_from_modul:390,variable_nam:[229,232],variablenam:390,varianc:242,variant:[13,46,78,87,116,176,204,214,250,325,367,443],variat:[39,101,111,123,126,127,129,175,224,242,390],varieti:[87,105,129,137,258,259],variou:[5,6,8,13,16,22,35,37,41,42,44,46,47,48,51,53,62,66,68,71,80,83,84,86,99,101,102,104,111,112,113,116,118,122,126,127,129,130,131,151,155,158,163,175,191,212,218,242,243,254,258,259,265,269,270,282,292,295,296,301,302,309,346,370,376,387,388,419],varnam:338,vast:[67,69,82,146],vastli:88,vcc:242,vccv:242,vccvccvc:242,vcpython27:76,vcv:242,vcvccv:242,vcvcvcc:242,vcvcvvccvcvv:242,vcvvccvvc:242,vector:390,vehicl:[91,443],velit:29,venu:[11,197],venv:[149,154],ver:146,verb:[30,58,92,296,350,377,393,395],verb_actor_stance_compon:393,verb_all_tens:393,verb_conjug:[30,165,166,366,443],verb_infinit:393,verb_is_past:393,verb_is_past_participl:393,verb_is_pres:393,verb_is_present_participl:393,verb_is_tens:393,verb_past:393,verb_past_participl:393,verb_pres:393,verb_present_participl:393,verb_tens:393,verb_tenses_kei:393,verbal:296,verbatim:[30,109,116,394,443],verbatim_el:390,verbos:[0,8,129,243],verbose_nam:[141,364,398,399,406],verbose_name_plur:[399,406],veri:[0,3,5,6,8,9,11,12,13,14,15,17,18,19,20,22,25,27,28,29,30,31,32,33,41,42,45,46,47,48,50,51,53,54,58,60,62,67,68,69,72,74,75,76,77,78,80,81,82,83,84,85,87,88,89,90,91,93,94,96,98,99,100,103,106,107,109,111,113,114,116,117,118,119,120,121,122,123,124,126,127,129,130,138,140,142,143,144,145,146,151,153,155,159,163,168,169,175,177,193,196,198,204,206,209,231,232,241,242,243,249,250,251,254,259,269,272,273,287,295,300,318,363,365,370,372,374,390,439],verif:155,verifi:[2,5,11,28,114,149,155,182,193,209,225,259,339],verify_online_play:225,verify_or_create_ssl_key_and_cert:339,verify_ssl_key_and_cert:335,verifyfunc:225,versa:[44,53,58,62,68,83,129,187,275,323,377,394],version:[1,2,9,12,13,14,15,18,20,22,25,26,28,31,32,35,36,42,48,51,53,60,64,67,69,79,82,83,84,88,90,91,94,95,99,104,107,108,109,113,115,116,121,123,126,130,134,139,144,146,147,148,149,154,155,157,162,182,190,192,194,205,206,214,223,224,243,257,258,259,260,265,270,296,301,314,319,333,357,362,367,375,390,398,399,400,403,404,407,413,430,442,443],version_info:314,versionad:85,versionchang:85,versu:[87,443],vertic:[270,279,281,282,376,390],very_strong:292,very_weak:33,vest:158,vet:41,veteran:144,vex:395,vfill_char:376,vhost:443,via:[5,11,13,18,19,28,29,30,32,39,40,41,42,48,49,51,54,60,62,65,67,69,78,84,87,89,98,99,106,111,113,114,116,121,127,130,139,149,151,155,158,195,197,198,246,265,275,295,304,362,365,367,377,382,443],viabl:[79,123,269],vice:[44,53,58,62,68,83,129,187,275,323,377,394],vicin:[22,188,224,271],video:[51,60,113,144],vidual:83,vienv:76,view:[0,3,11,13,17,19,27,28,29,31,33,42,47,49,50,52,53,58,67,82,83,85,87,88,90,100,103,105,108,113,114,116,119,123,129,130,134,149,153,155,161,162,163,165,166,168,177,179,180,182,187,188,189,192,196,206,243,256,257,258,259,260,273,286,288,296,298,349,364,375,377,396,401,408,409,411,413,415,419,423,426,429,430,443],view_attr:182,view_lock:411,view_on_sit:[398,400,402,403,404,406],viewabl:[86,87,189],viewer:[85,92,102,243,273,296,364],viewpoint:[377,394,395,443],viewport:3,viewset:[49,415,416],vim:[15,27,119,144,372],vincent:[78,204,224,241,272],violent:28,virtual:[83,87,90,99,144,149,155,192,224,282,378],virtual_env:154,virtualenv:[0,2,5,6,7,9,64,76,85,146,149,154,155,157,162,163,443],virtualhost:145,viru:149,visibl:[2,11,13,14,20,31,35,44,48,53,60,83,85,92,102,104,121,122,123,126,130,148,149,151,155,162,188,189,243,279,281,282,296,326,359,374,390,438],vision:[13,100,121],visit:[77,81,82,141,142,155,272,374],visitor:[73,142,158],vista:149,visual:[5,31,51,60,83,92,99,149,168,189,227,279,281,282,284,367],visual_rang:284,vital:107,vlgeoff:[78,212],vniftg:149,vnum:98,vocabulari:[80,390],voic:[22,78,80,443],volatil:300,volcano:118,volum:[82,91,121,157,443],volund:111,volunt:64,voluntari:84,volupt:29,vowel:242,vpad_char:376,vscode:119,vulner:[94,158],vvc:242,vvcc:242,vvccv:242,vvccvvcc:242,w001:8,wai:[3,5,6,7,8,9,11,12,13,14,15,16,19,20,22,30,31,32,33,34,35,36,37,39,40,41,42,44,45,46,47,48,52,53,54,55,57,58,60,62,65,67,68,70,72,74,75,76,77,79,80,81,82,84,85,87,88,89,91,93,95,96,97,98,99,100,101,102,103,105,106,107,108,109,110,111,112,113,114,117,118,120,121,123,124,126,127,129,130,134,135,136,138,139,140,141,144,146,148,149,153,154,155,156,158,159,162,163,168,174,175,182,189,196,203,209,210,212,213,218,221,224,225,227,231,235,242,249,250,253,254,256,257,258,259,260,265,268,269,270,272,275,279,282,286,292,296,300,309,314,319,323,334,355,357,359,360,361,362,363,365,368,373,374,376,381,383,386,390,394,408,415,416,439,441,443],wail:81,waist:206,wait:[3,19,22,28,42,54,75,92,93,94,109,120,122,123,138,169,193,231,235,253,256,257,258,259,260,265,314,324,343,345,357,370,374,390],wait_for_disconnect:324,wait_for_server_connect:324,wait_for_statu:314,wait_for_status_repli:314,waiter:314,waitinf:193,wake:225,walias:182,walk:[15,20,58,75,78,80,81,83,87,91,96,101,106,121,123,126,250,251,254,265,273,275,282,368],walki:[18,88,123],wall:[82,108,116,120,126,180,188,224,270,271],wand:[79,209,210],wanna:[84,122,203,265],want:[0,3,4,5,6,7,8,9,11,12,13,14,15,16,18,19,20,22,25,27,28,30,31,32,33,34,35,36,37,39,41,42,44,45,47,48,49,50,51,53,54,55,57,58,60,62,63,64,65,67,68,69,70,73,74,75,76,77,78,79,80,81,82,83,84,85,88,89,90,91,92,93,94,95,96,97,99,100,101,102,104,105,106,107,108,109,111,112,113,114,115,116,117,118,119,121,122,124,125,126,127,128,130,131,132,133,134,136,138,139,140,141,142,143,145,146,147,148,149,151,152,153,154,155,156,158,159,161,162,163,168,175,176,177,179,188,189,193,194,203,204,209,214,218,224,225,227,241,243,246,253,254,256,257,258,259,260,265,271,273,281,282,284,291,292,296,301,307,309,330,332,338,345,355,360,362,364,372,374,375,381,386,390,399,406,408,415,430,435,438,439,441,442,443],wanted_id:33,war:[31,286],warchannel:187,ware:106,warehous:[246,368],wari:[60,273,296,364],warm:[42,163,318],warn:[9,13,19,20,31,44,74,78,82,83,88,107,113,116,142,145,149,155,159,175,196,247,313,314,339,383,442,443],warnmsg:383,warrior:[39,93,99,100,120,123,130,187],wasclean:[325,342],wasn:[3,75,142],wast:[15,47],watch:[7,15,34],water:[79,176,209,210,240],waterballon:240,wave:82,wavi:83,wcach:192,wcactu:259,wcommandnam:272,wcure:259,wdestin:182,weak:301,weakref:381,weaksharedmemorymodel:[321,381],weaksharedmemorymodelbas:[321,381],weakvalu:381,wealth:106,weap:13,weapon:[13,28,41,67,88,94,105,106,108,110,111,115,120,121,122,127,128,129,210,257,269,270,301,443],weapon_ineffective_msg:269,weapon_prototyp:270,weaponrack_cmdset:270,weaponstr:115,weapoon:120,wear:[78,105,122,128,206,243,257,265],wearabl:206,wearer:206,wearstyl:206,weather:[42,46,47,74,82,95,103,113,120,121,127,271,443],weather_script:42,weatherroom:[140,271],web:[17,31,33,41,49,52,56,59,64,76,85,86,87,88,90,92,95,102,109,112,116,119,121,133,144,145,146,149,153,154,162,163,165,166,316,318,328,332,338,342,343,353,357,359,365,371,443],web_client_url:148,web_get_admin_url:[177,196,286,288,364],web_get_create_url:[196,288,364],web_get_delete_url:[196,288,364],web_get_detail_url:[177,196,286,288,364],web_get_puppet_url:364,web_get_update_url:[196,288,364],web_help_entri:438,web_plugin:113,webclient:[24,44,51,53,59,60,62,65,68,71,73,86,88,95,102,113,116,147,148,151,158,163,165,166,189,192,218,268,310,319,322,338,343,354,374,396,424,431,443],webclient_ajax:[51,165,166,310,322,443],webclient_en:158,webclient_gui:443,webclient_opt:319,webclientdata:343,webclienttest:431,webpag:[17,145,155,427,443],webport:2,webserv:[24,49,53,62,73,76,112,113,132,145,146,151,155,157,159,161,165,166,310,443],webserver_en:158,webserver_interfac:[151,155],webserver_port:[2,155],webservic:158,websit:[17,49,50,51,52,76,85,86,87,88,99,102,103,113,132,134,141,144,151,155,156,158,165,166,343,359,396,398,424,443],websocket:[51,52,62,88,155,157,325,331,342,354,443],websocket_client_interfac:[151,155],websocket_client_port:155,websocket_client_url:[145,151,155],websocket_clos:342,websocketcli:342,websocketclientfactori:325,websocketclientprotocol:325,websocketserverfactori:331,websocketserverprotocol:342,weed:[0,175],week:[101,113,212,383,391],weeklylogfil:383,weigh:[105,345],weight:[69,83,85,121,146,227,242,281,282,363,443],weird:[31,108,123,126,390],welcom:[25,53,64,77,84,90,106,119,132,149,153],well:[0,7,8,9,11,12,13,17,18,22,26,27,28,29,30,31,32,37,39,41,44,48,50,53,55,56,57,62,63,68,69,70,73,76,77,78,80,81,83,84,85,87,88,90,91,92,96,97,99,100,101,102,104,106,107,111,114,115,116,117,118,120,122,123,124,126,129,130,134,136,137,141,142,146,152,154,156,158,159,162,171,175,176,177,182,195,196,203,206,216,217,218,224,231,239,242,243,253,254,258,259,260,265,269,281,284,296,304,308,310,314,323,325,326,332,349,357,362,363,367,371,374,377,378,386,390,399,406],went:[8,11,99,117,126,162,163,305,309],weonewaymaplink:[83,282],were:[3,8,13,14,18,20,22,28,30,41,42,48,51,54,67,69,79,83,84,88,97,100,102,105,106,107,111,113,114,115,116,117,123,130,139,147,157,159,168,174,175,176,187,196,241,254,281,282,296,300,361,364,368,377,387,390,393,395],weren:101,werewolf:[92,443],werewolv:111,werkzeug:390,wesson:58,west:[81,82,83,92,97,109,182,271,281,282],west_east:82,west_exit:271,western:82,westward:271,wet:123,wether:[203,370],wevennia:77,wflame:259,wflushmem:192,wfull:259,wguild:187,what:[0,3,5,6,8,9,10,11,12,14,15,18,19,20,22,28,30,31,32,33,35,37,41,42,44,47,48,49,52,53,54,55,57,58,60,62,65,67,68,69,70,72,74,75,76,77,79,80,81,82,83,85,88,89,90,91,92,94,96,97,98,99,100,101,102,104,106,108,109,111,112,114,115,116,120,121,122,125,126,127,128,129,130,131,133,134,135,136,138,139,140,141,142,143,144,145,146,149,151,153,155,156,158,159,163,168,173,175,176,177,179,182,193,196,209,210,216,218,219,223,232,240,241,243,246,251,253,258,259,269,271,281,282,283,284,286,288,292,296,299,300,301,314,316,319,326,338,343,358,360,362,364,365,367,368,374,384,385,390,391,413,419,421,422,430,439,440,443],whatev:[8,11,12,13,15,19,22,28,30,37,62,77,80,82,83,88,91,98,100,105,107,116,117,121,122,124,130,141,142,143,146,151,157,162,168,169,176,182,209,216,225,259,264,269,270,296,301,304,305,325,334,337,342,355,362,375,384,439],wheat:209,wheel:[47,99,149,154],whelp:[189,272],when:[0,1,2,3,6,7,8,9,11,12,13,14,15,16,17,18,19,20,22,25,27,28,29,30,31,32,33,34,36,37,39,41,42,44,45,46,48,50,51,52,53,54,55,57,58,60,62,63,64,65,67,68,69,70,72,75,76,77,78,80,81,82,83,84,85,88,90,91,94,95,96,97,98,99,100,101,102,105,106,107,108,109,111,112,113,114,115,116,117,118,119,120,122,123,124,125,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,143,144,145,146,147,149,150,151,154,155,156,157,158,159,162,163,165,168,169,171,173,175,176,177,179,181,182,187,188,189,190,191,192,194,196,197,198,202,203,204,205,206,209,210,212,213,214,218,219,221,224,225,226,227,232,233,235,236,239,240,241,242,243,249,251,253,254,256,257,258,259,260,262,265,266,268,269,270,271,272,273,280,281,282,283,287,288,291,292,295,296,298,300,301,304,305,307,308,309,311,314,316,320,321,323,324,325,326,327,328,329,330,332,334,335,336,337,338,339,342,343,345,346,352,353,354,355,356,357,362,364,365,367,368,370,371,372,373,374,375,376,381,382,383,385,390,394,403,419,421,430,434,436,441,443],when_stop:314,whenev:[7,9,13,18,22,32,33,34,36,41,42,45,54,58,63,70,77,80,82,88,92,114,126,135,155,156,157,168,176,196,221,269,270,271,294,296,305,307,316,333,353,354,355],where:[0,2,3,4,5,8,11,13,14,15,18,20,22,27,28,29,30,31,33,35,39,41,42,44,48,50,51,53,54,55,58,59,60,62,64,65,67,68,69,70,73,75,76,77,79,80,81,82,83,85,88,91,92,94,96,98,99,100,101,102,106,107,108,109,113,114,115,116,117,119,120,121,123,125,126,127,128,130,132,134,135,136,138,141,142,146,154,155,157,158,159,161,162,174,175,180,182,188,189,191,193,196,197,205,210,213,218,236,242,243,247,252,253,258,270,271,273,281,282,283,284,289,291,292,294,296,300,301,305,314,316,319,323,346,351,355,362,364,367,368,372,374,375,376,377,378,384,385,390,394,406,413,441,443],wherea:[0,3,5,6,9,13,14,20,22,33,44,48,55,57,58,60,62,67,70,83,91,98,104,106,116,129,158,170,209,242,282,294,303,309,343,362,381],whereabout:120,wherebi:259,wherev:[8,58,82,88,118,149,151,157,204,246,253,258,282],whether:[28,55,75,80,87,96,101,102,115,138,168,169,176,182,187,189,196,225,254,256,257,258,259,260,296,309,325,342,357,362,363,367,384,386,390,393],whewiu:76,which:[0,2,3,4,5,6,7,8,11,13,14,15,16,18,19,20,22,24,26,28,29,30,31,32,33,35,36,37,39,41,42,44,45,46,47,48,49,51,52,54,55,57,58,60,62,63,65,67,68,69,70,73,74,75,76,77,79,80,81,82,83,84,85,88,90,92,93,94,95,96,97,98,99,100,101,102,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,120,121,122,123,124,126,127,129,130,132,134,135,136,137,138,139,140,141,142,146,147,149,150,151,152,153,155,157,158,159,162,163,168,169,173,175,176,177,179,180,182,188,189,190,193,194,196,197,198,203,204,205,206,207,209,210,212,216,218,223,224,225,227,235,236,239,243,246,247,249,251,253,254,256,257,258,259,260,265,269,270,271,272,273,281,282,283,284,288,292,294,295,296,300,301,304,305,307,309,311,313,314,318,319,326,332,334,342,343,345,346,353,354,355,357,360,362,363,364,365,367,368,370,371,374,375,376,377,378,381,383,384,386,387,388,390,393,399,406,413,416,419,421,422,423,430,436,439,441],whichev:[19,121,124,155,158,271],whilst:82,whimper:120,whisk:221,whisp:242,whisper:[26,78,80,108,188,216,218,235,242,243,296],whistl:58,white:[32,60,139,367,390],whitelist:32,whitenois:[78,253],whitespac:[15,19,22,100,104,108,111,119,126,130,190,239,243,367,368,376,390],who:[13,18,26,28,30,31,33,36,39,41,42,48,49,54,55,58,60,64,80,81,87,90,91,98,100,111,115,116,117,120,121,122,124,126,127,129,130,138,140,141,158,169,177,179,182,187,196,198,203,216,218,225,232,242,243,256,257,258,259,260,270,286,288,292,296,301,364,372,374,377,394,411,443],whoever:141,whole:[36,46,56,72,81,82,83,87,90,99,108,121,123,126,130,151,175,182,216,260,376,421],wholist:[18,196],whome:182,whomev:[127,138,265],whoopi:126,whose:[30,48,68,79,111,113,114,168,177,193,232,243,254,256,257,258,259,260,303,319,369,374,377,390],whould:374,why:[0,13,28,48,55,75,77,80,82,87,88,92,96,97,105,107,109,122,124,126,130,139,149,158,162,180,241,256,259,260,282,311,312,374],wick:362,wide:[19,30,35,56,67,83,92,96,100,107,116,127,151,180,258,259,273,373,376,390],widen:[55,126],wider:[55,92,96,180,376],widest:390,widget:[386,398,399,400,402,403,404,406,413,430],width:[17,19,22,30,31,32,41,56,81,82,83,92,165,177,281,284,319,334,353,367,372,373,375,376,377,390],wield:[41,105,122,128,257],wifi:[155,158],wiki:[22,48,64,69,76,82,84,87,88,100,103,129,144,204,342,442,443],wiki_account_handl:90,wiki_account_signup_allow:90,wiki_can:90,wiki_can_admin:90,wiki_can_assign:90,wiki_can_assign_own:90,wiki_can_change_permiss:90,wiki_can_delet:90,wiki_can_moder:90,wiki_can_read:90,wiki_can_writ:90,wikiconfig:90,wikipedia:[8,11,16,70,87,88,129,342],wil:[13,18],wild:[11,53,69,83,111,121,139,283,284],wildcard:[36,55,83,99,180,182,281,283,284,390],wildcard_to_regexp:390,wilder:[165,166,199,443],wildernessexit:273,wildernessmap:273,wildernessmapprovid:273,wildernessroom:273,wildernessscript:273,wildli:242,will_suppress_ga:336,will_transform:111,will_ttyp:341,willing:[100,121,124,144,443],win10:149,win7:149,win8:149,win:[76,107,129,147,216],wind:[120,140],winder:123,windmil:209,window:[0,5,6,7,9,11,20,29,37,44,51,52,65,68,81,83,85,88,90,92,97,109,116,119,122,146,153,162,163,177,189,218,314,330,353,357,390,443],windowid:353,windows10:149,wine:[118,120],wingd:82,winner:78,winpti:76,winter:224,wintertim:122,wintext_templ:127,wip:[85,442],wipe:[9,13,14,18,26,76,82,108,116,146,175,182,192,258],wire:[19,62,65,68,70,88,151,155,191,311,323,324,355,367],wis:100,wisdom:5,wise:[0,11,14,15,16,33,73,100,114,122,136],wiser:[42,109,126],wish:[2,11,22,96,134,137,154,204,260,367,389,430],with_tag:240,withdraw:[129,260],withdrawl:260,within:[0,6,11,13,20,22,28,30,31,47,51,54,76,77,81,83,84,85,88,96,98,100,111,113,116,118,126,129,134,135,136,137,139,142,145,146,147,155,157,168,171,173,182,203,224,227,229,247,283,287,296,301,308,357,362,363,367,377,383,390,430,436,441],withot:282,without:[3,5,6,8,9,11,13,14,15,18,19,20,22,25,27,28,30,35,40,41,42,45,47,48,50,52,53,55,56,60,62,63,64,67,68,69,72,75,77,79,80,81,83,84,85,88,91,92,94,95,97,99,100,107,108,109,110,111,113,115,116,117,121,122,123,124,126,130,134,136,138,139,141,145,146,149,151,155,157,159,162,168,169,174,177,179,180,182,187,188,189,190,191,192,193,196,198,202,203,205,206,209,221,224,229,232,242,243,249,253,254,256,259,260,265,269,271,282,292,294,296,299,300,301,307,308,323,334,337,338,345,355,356,362,364,367,368,370,371,372,374,375,377,383,386,387,390,423],withstand:33,wiz:100,wizard:[41,123,271,301,312,314,443],wkei:182,wlocat:182,wlock:182,wmagic:259,wmass:259,wndb_:182,wnn:18,woah:[114,115],woman:[122,123],won:[3,8,12,13,14,16,20,48,49,51,54,55,60,65,67,75,77,80,82,85,90,91,94,99,102,104,106,107,108,111,115,116,121,123,125,127,130,142,143,146,149,157,176,225,241,262,265,279,359,367,386],wonder:[56,76,98,105],wont_suppress_ga:336,wont_ttyp:341,woo:108,wood:[79,123,209,210],wooden:[41,79,209,210],woodenpuppetrecip:79,woosh:91,word:[5,6,11,15,18,19,22,27,30,31,37,58,64,68,80,81,82,89,101,102,107,108,114,116,119,122,124,134,139,153,174,189,190,194,214,223,235,242,243,294,326,372,377,387,390,394,443],word_fil:242,word_length_vari:242,wordi:242,work:[0,2,3,4,5,6,7,8,9,12,13,14,15,16,18,19,20,26,28,30,31,33,34,37,41,42,44,46,47,50,52,53,54,56,58,60,63,65,67,69,72,75,76,77,79,81,82,84,85,88,89,90,91,92,93,94,97,98,99,100,101,104,106,108,109,111,112,113,114,115,116,117,118,119,121,122,124,126,129,130,131,133,134,135,139,140,141,142,145,146,147,149,151,152,153,154,155,158,161,162,173,176,177,179,182,187,188,190,192,194,196,203,204,205,209,211,216,224,239,240,243,249,254,258,259,260,271,272,273,282,286,288,291,292,296,300,301,314,318,319,331,346,359,361,362,364,365,368,373,374,375,376,384,390,423,434,435,436,438,440,443],workaround:[11,149,157,443],workflow:[398,443],world:[8,11,13,14,15,16,18,19,20,22,28,31,39,41,53,54,67,69,70,76,79,81,82,83,85,87,88,91,96,99,100,101,105,110,114,115,117,119,124,125,127,128,129,130,131,133,135,138,143,144,149,153,155,159,168,181,182,187,189,193,203,209,212,239,243,253,256,257,258,259,260,270,271,273,281,286,288,304,353,355,367,368,378,443],world_map:82,worm:[81,123],worm_has_map:81,worn:[206,257],worri:[2,8,13,16,28,50,60,70,75,96,111,120,126,130,159,203,218,219],wors:[122,124],worst:121,worth:[5,28,42,48,58,75,91,94,107,122,123,124,141,144,145,203],worthi:121,worthless:155,would:[2,3,5,7,8,9,13,14,15,16,19,20,22,28,30,31,33,35,37,41,42,44,46,47,48,52,53,54,56,57,60,67,68,73,74,75,76,77,79,80,81,82,83,87,88,90,91,92,94,96,97,98,99,100,101,102,104,105,106,107,108,109,111,112,113,114,115,116,117,119,121,122,123,124,126,127,129,130,134,135,136,138,139,141,142,145,149,155,157,168,174,175,176,177,182,191,196,203,209,210,212,218,232,242,253,254,265,272,273,281,282,286,288,292,300,301,326,338,364,367,368,371,374,385,386,388,390,399,406],wouldn:[31,96,115,139],wound:259,wow:[102,124],wpermiss:182,wprototype_desc:182,wprototype_kei:182,wprototype_lock:182,wprototype_par:182,wprototype_tag:182,wrap:[28,41,42,54,81,95,111,116,118,126,134,206,210,218,225,243,321,361,376,390],wrap_conflictual_object:386,wrapper:[5,19,28,32,44,48,54,67,79,94,168,171,197,198,221,223,249,253,288,289,295,296,304,308,319,321,353,362,364,365,367,376,377,381,382,383,390,401,406],wresid:192,write:[5,10,11,13,15,16,19,20,22,28,31,36,48,54,56,58,68,69,72,75,77,80,84,85,89,90,92,97,98,100,101,102,107,108,109,111,114,115,116,117,120,122,123,124,126,130,146,149,150,152,153,182,187,189,196,202,204,246,247,272,296,327,383,388,439,441,443],writeabl:154,written:[8,16,18,19,41,52,83,85,98,99,100,108,111,113,114,115,116,117,118,141,142,144,148,158,164,189,246,282,368,439],wrong:[0,3,8,104,106,116,122,146,149,163,175,182,192,209,211,243],wrote:[111,114,193],wserver:192,wservic:187,wsgi:[145,359],wsgi_resourc:359,wsgiwebserv:359,wsl:[85,149],wss:[145,155,443],wtypeclass:182,wwhere:296,www:[9,49,69,76,77,85,87,88,96,141,145,155,165,192,329,330,336,338,389,393,430],wyou:105,x0c:182,x1b:[367,389],x2x:100,x4x:373,x5x:373,x6x:373,x7x:373,x8x:373,x9x:373,x_r:96,xcode:149,xforward:359,xgettext:64,xgiven:284,xit:[77,204],xmlcharrefreplac:367,xp_gain:127,xpo:376,xtag:393,xterm256:[32,51,65,71,104,116,179,207,227,319,334,337,367,443],xterm256_bg:367,xterm256_bg_sub:367,xterm256_fg:367,xterm256_fg_sub:367,xterm256_gbg:367,xterm256_gbg_sub:367,xterm256_gfg:367,xterm256_gfg_sub:367,xterm:[60,116,139],xterms256:60,xval:22,xxx:[3,92,241],xxxx:241,xxxxx1xxxxx:373,xxxxx3xxxxx:373,xxxxxxx2xxxxxxx:373,xxxxxxxxxx3xxxxxxxxxxx:100,xxxxxxxxxx4xxxxxxxxxxx:100,xxxxxxxxxxx:373,xxxxxxxxxxxxxx1xxxxxxxxxxxxxxx:100,xxxxxxxxxxxxxxxxxxxxxx:100,xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:100,xygrid:[281,282],xymap:[165,166,199,274,275,276,279,282,283,284,443],xymap_data:[83,281,283],xymap_data_list:[83,281,283],xymap_legend:[83,165,166,199,274,276,279,443],xyroom:284,xyz:[36,83,275,278,282,283,284],xyz_destin:[83,284],xyz_destination_coord:284,xyz_exit:[83,278,282],xyz_room:[83,278,282],xyzcommand:[83,276,277],xyzexit:[283,284,443],xyzexit_prototype_overrid:83,xyzexitmanag:284,xyzgrid:[165,166,199,443],xyzgrid_cmdset:275,xyzgrid_use_db_prototyp:83,xyzgridcmdset:[83,275],xyzmanag:284,xyzmap:83,xyzroom:[165,166,199,274,283,443],xyzroom_prototype_overrid:83,y_r:96,yan:[60,367],yank:27,year:[68,69,87,101,119,123,155,212,378,383,390,430],yearli:[101,155],yeast:[79,209],yellow:[11,60,83,139,270],yer:122,yes:[22,28,54,58,80,85,96,139,182,192,235,312,372,374,390],yes_act:374,yes_no_question_cmdset:374,yesno:[28,85,372],yesnoquestioncmdset:374,yet:[2,3,9,11,12,15,25,28,41,44,55,64,67,75,77,80,81,82,83,88,90,92,93,108,111,114,124,126,138,141,142,144,148,149,151,155,162,164,168,187,194,203,214,232,265,282,292,295,308,332,355,359,367,437],yield:[22,33,54,69,146,182,193,247,376,390,443],yml:[10,157],yogurt:240,you:[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,22,25,27,28,30,31,32,33,34,35,36,37,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,62,63,64,65,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,116,117,118,121,122,124,125,126,127,128,129,130,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,161,162,163,168,176,177,179,182,187,188,189,190,191,192,193,194,196,203,204,205,206,207,209,210,212,216,218,219,223,224,225,227,230,231,232,235,236,239,240,241,242,243,246,247,249,250,251,252,253,254,256,257,258,259,260,262,265,270,271,272,273,275,277,281,282,286,291,292,296,301,306,307,308,309,316,325,326,327,343,345,355,357,359,360,362,364,367,368,370,373,374,376,377,378,386,387,390,393,394,395,410,413,415,416,430,439,441,442,443],you_obj:30,you_replac:216,your:[2,3,5,7,8,10,13,14,15,16,17,18,19,20,25,27,28,30,31,33,35,36,39,41,42,44,45,46,47,48,49,50,52,53,54,55,56,58,60,63,64,65,68,70,72,73,74,75,76,77,78,79,80,81,82,83,84,85,87,88,89,91,92,94,95,97,98,99,100,101,102,103,104,105,106,107,111,112,114,115,116,117,118,119,120,121,122,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,142,143,144,145,146,148,149,150,151,152,153,154,156,159,161,162,163,165,166,168,171,174,176,177,179,180,182,187,188,189,192,193,194,199,203,204,206,207,209,210,212,213,214,216,218,224,225,227,231,241,242,243,246,247,250,254,256,257,258,259,260,262,265,270,271,272,273,275,276,281,291,292,295,345,364,367,372,374,376,377,386,387,388,390,391,394,395,399,406,416,430,436,439,443],your_act:218,your_email:11,yourchar:116,yourgam:246,yourhostnam:151,yournam:[108,114,115,145],yourpassword:146,yourrepo:7,yourself:[0,3,10,11,12,15,20,28,33,37,48,53,56,57,58,67,69,73,75,77,78,82,83,84,85,87,100,102,107,115,116,118,122,123,124,126,127,130,143,146,149,155,182,188,203,216,218,226,243,249,253,259,262,275,374,377,394,395,443],yourselv:[58,377,394,395],yoursit:141,yourusernam:11,yourwebsit:141,yousuck:55,yousuckmor:55,youth:225,youtub:11,ypo:376,yrs:212,ythi:60,yum:[11,145,151],yvonn:100,z_destin:284,z_r:96,z_sourc:284,zcoord:[275,279,281,283,443],zed:144,zero:[19,35,41,109,114,116,118,187,209,243,283,289,296,362,367,377],zip:158,zlib:[154,323,327],zmud:[147,329],zone:[46,80,89,98,103,113,124,144,365,383,443],zoord:283,zope:6,zopeinterfac:149,zuggsoft:329},titles:["Coding Introduction","Coding and development help","Continuous Integration","Debugging","Things to remember about the flat API","Profiling","Quirks","Setting up PyCharm","Unit Testing","Updating Your Game","Using Travis","Version Control","Accounts","Attributes","Batch Code Processor","Batch Command Processor","Batch Processors","Bootstrap Components and Utilities","Channels","Coding Utils","Command Sets","Command System","Commands","Communications","Core Components","Connection Screen","Default Commands","EvEditor","EvMenu","EvMore","The Inline Function Parser","Help System","Inputfuncs","Locks","MonitorHandler","Msg","Nicks","Objects","Outputfuncs","Permissions","Portal And Server","Spawner and Prototypes","Scripts","Server component","Sessions","Signals","Tags","TickerHandler","Typeclasses","Evennia REST API","The Web Admin","Web Client","Webserver","Game website","Async Process","Banning","Bootstrap & Evennia","Building Permissions","Sending different messages depending on viewpoint and receiver","Clickable links","Colors","Core Concepts","Custom Protocols","Guest Logins","Internationalization","Messagepath","Multisession modes","New Models","OOB","Soft Code","Text Encodings","In-text tags parsed by Evennia","Using MUX as a Standard","Web Features","Zones","A voice operated elevator using events","Arxcode installing help","Building menus","Contrib modules","Crafting system contrib","Dialogues in events","Dynamic In Game Map","Static In Game Map","XYZGrid contrib","Contributing","Contributing to Evennia Docs","API Summary","Evennia Introduction","Glossary","How To Get And Give Help","Add a wiki on your website","Building a mech tutorial","Coding FAQ","Command Cooldown","Command Duration","Command Prompt","Coordinates","Default Exit Errors","Evennia for Diku Users","Evennia for MUSH Users","Evennia for roleplaying sessions","Gametime Tutorial","Help System Tutorial","Tutorials and Howto\u2019s","Manually Configuring Color","Mass and weight for objects","NPC shop Tutorial","Parsing command arguments, theory and best practices","Our own commands","Using the game and building stuff","Creating things","Django Database queries","Overview of the Evennia library","Overview of your new Game Dir","Persistent objects and typeclasses","More about Commands","Starting to code Evennia","Python Classes and objects","Searching for things","Starting Tutorial (Part 1)","The Tutorial World","On Planning a Game","Planning the use of some useful contribs","Planning our tutorial game","Where do I begin?","Evennia Starting Tutorial (Part 2)","Making a sittable object","Implementing a game rule system","Evennia Starting Tutorial (Part 3)","Turn based Combat System","Tutorial for basic MUSH like game","Evennia Starting Tutorial (Part 4)","Add a simple new web page","Evennia Starting Tutorial (part 5)","Web Tutorial","Tutorial Aggressive NPCs","Tutorial NPCs listening","Tutorial Tweeting Game Stats","Tutorial Vehicles","Understanding Color Tags","Weather Tutorial","Web Character Generation","Web Character View Tutorial","Licensing","Links","Apache Config","Choosing An SQL Server","Client Support Grid","Evennia Game Index","Getting Started","Grapevine","Making Evennia, HTTPS and WSS (Secure Websockets) play nicely together","How to connect Evennia to Twitter","IRC","Installing on Android","Online Setup","RSS","Running Evennia in Docker","Security","Server Conf","The Evennia Default Settings file","Server Setup and Life","Setup quickstart","Start Stop Reload","Unimplemented","evennia","evennia","evennia.accounts","evennia.accounts.accounts","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.comms","evennia.comms.managers","evennia.comms.models","evennia.contrib","evennia.contrib.awsstorage","evennia.contrib.awsstorage.aws_s3_cdn","evennia.contrib.awsstorage.tests","evennia.contrib.barter","evennia.contrib.building_menu","evennia.contrib.chargen","evennia.contrib.clothing","evennia.contrib.color_markups","evennia.contrib.crafting","evennia.contrib.crafting.crafting","evennia.contrib.crafting.example_recipes","evennia.contrib.crafting.tests","evennia.contrib.custom_gametime","evennia.contrib.dice","evennia.contrib.email_login","evennia.contrib.evscaperoom","evennia.contrib.evscaperoom.commands","evennia.contrib.evscaperoom.menu","evennia.contrib.evscaperoom.objects","evennia.contrib.evscaperoom.room","evennia.contrib.evscaperoom.scripts","evennia.contrib.evscaperoom.state","evennia.contrib.evscaperoom.tests","evennia.contrib.evscaperoom.utils","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.test_traits","evennia.contrib.traits","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.example_batch_code","evennia.contrib.tutorial_examples.mirror","evennia.contrib.tutorial_examples.red_button","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.contrib.xyzgrid","evennia.contrib.xyzgrid.commands","evennia.contrib.xyzgrid.example","evennia.contrib.xyzgrid.launchcmd","evennia.contrib.xyzgrid.prototypes","evennia.contrib.xyzgrid.tests","evennia.contrib.xyzgrid.utils","evennia.contrib.xyzgrid.xymap","evennia.contrib.xyzgrid.xymap_legend","evennia.contrib.xyzgrid.xyzgrid","evennia.contrib.xyzgrid.xyzroom","evennia.help","evennia.help.filehelp","evennia.help.manager","evennia.help.models","evennia.help.utils","evennia.locks","evennia.locks.lockfuncs","evennia.locks.lockhandler","evennia.objects","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.manager","evennia.scripts.models","evennia.scripts.monitorhandler","evennia.scripts.scripthandler","evennia.scripts.scripts","evennia.scripts.taskhandler","evennia.scripts.tickerhandler","evennia.server","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.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.funcparser","evennia.utils.gametime","evennia.utils.idmapper","evennia.utils.idmapper.manager","evennia.utils.idmapper.models","evennia.utils.idmapper.tests","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.utils.verb_conjugation","evennia.utils.verb_conjugation.conjugate","evennia.utils.verb_conjugation.pronouns","evennia.utils.verb_conjugation.tests","evennia.web","evennia.web.admin","evennia.web.admin.accounts","evennia.web.admin.attributes","evennia.web.admin.comms","evennia.web.admin.frontpage","evennia.web.admin.help","evennia.web.admin.objects","evennia.web.admin.scripts","evennia.web.admin.server","evennia.web.admin.tags","evennia.web.admin.urls","evennia.web.admin.utils","evennia.web.api","evennia.web.api.filters","evennia.web.api.permissions","evennia.web.api.root","evennia.web.api.serializers","evennia.web.api.tests","evennia.web.api.urls","evennia.web.api.views","evennia.web.templatetags","evennia.web.templatetags.addclass","evennia.web.urls","evennia.web.utils","evennia.web.utils.adminsite","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.tests","evennia.web.website.urls","evennia.web.website.views","evennia.web.website.views.accounts","evennia.web.website.views.channels","evennia.web.website.views.characters","evennia.web.website.views.errors","evennia.web.website.views.help","evennia.web.website.views.index","evennia.web.website.views.mixins","evennia.web.website.views.objects","Evennia Documentation","<no title>"],titleterms:{"break":111,"case":[75,123],"class":[8,19,22,48,77,113,114,117,123],"default":[26,30,32,33,51,53,83,92,95,97,114,115,160,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194],"final":[81,154],"function":[3,30,33,37,53,77,86,116,118],"goto":28,"import":[0,4,83,85,112,116,117],"new":[6,8,42,48,53,67,79,90,100,102,113,114,123,132,141,162],"public":[148,161],"return":[28,44,111,116],"static":[82,253],"super":[57,115],Adding:[20,32,46,50,53,62,67,75,76,79,90,92,96,97,109,115,138,141,253],And:[40,89],Are:123,Going:161,One:83,PMs:100,TLS:145,The:[0,5,14,15,27,28,30,31,39,41,42,50,54,56,57,65,73,77,78,80,81,83,94,100,102,103,106,120,121,124,129,130,132,160,162],Use:[0,158],Uses:30,Using:[5,8,10,13,18,29,30,31,34,41,46,53,67,72,74,81,103,109,155,253],Will:123,Yes:28,_famili:111,_should:123,abl:123,abort:94,about:[4,9,47,48,83,94,115,117,123],absolut:112,abus:55,access:[50,61],access_typ:33,account:[6,12,50,88,100,110,123,167,168,169,170,171,179,398,434],across:126,action:123,activ:[99,123,141],actor:58,actor_stance_cal:30,actual:[22,48],add:[53,90,92,132,146],add_choic:77,addclass:418,adding:8,addit:[76,96,97,157],address:92,admin:[6,50,73,88,180,397,398,399,400,401,402,403,404,405,406,407,408],administr:[18,121,123],adminsit:421,advanc:[1,36,86,94,115,146,163],aggress:135,ainnev:78,alia:6,alias:[46,118],all:[92,102,114,123,151],allow:[18,123],alpha:121,also:123,altern:[7,76],amount:123,amp:323,amp_client:311,amp_serv:324,analyz:5,android:154,ani:[14,87],annot:111,anoth:[42,85,115],ansi:[19,60,139,367],apach:145,api:[4,49,51,85,86,112,409,410,411,412,413,414,415,416],app:[102,141],appear:123,arbitrari:28,area:[82,130],arg:107,arg_regex:22,argument:[28,107,114,116],arm:91,around:109,arx:76,arxcod:[76,78],ascii:19,ask:[22,28],asset:124,assign:[22,57],assort:[15,20,22,28,46,54,62,136],async:54,asynchron:54,at_object_cr:114,attach:[7,42,45],attack:[123,130],attribut:[6,13,50,88,114,118,362,399],attributeproperti:13,audit:[78,245,246,247,248],auto:31,automat:92,avail:[25,45],awai:1,aws_s3_cdn:201,awsstorag:[200,201,202],backend:422,ban:55,bank:123,bar:78,barter:[78,122,123,203],base:[41,83,92,123,129],basic:[8,14,15,52,87,90,130,134,152],batch:[14,15,16,368],batchcod:14,batchprocess:181,batchprocessor:368,befor:0,begin:124,behavior:18,best:107,beta:121,between:[14,28,48],block:[14,83,85,94],blockquot:85,blurb:53,board:123,bodyfunct:262,bold:85,boot:55,bootstrap:[17,56],border:17,bot:169,branch:[11,28],brief:102,briefli:68,broken:123,bug:6,build:[50,57,77,78,81,82,85,91,100,106,109,121,123,182],builder:[78,123],building_menu:[77,204],built:123,bulletin:123,busi:106,button:[17,109],calendar:101,call:[22,114],callabl:30,callback:[51,75,80],callbackhandl:229,caller:28,can:[13,77,87,117,118,123],cannot:123,capabl:123,capcha:141,card:17,care:158,carri:123,cast:210,caveat:[14,15,48,60,154],certain:111,certif:151,chair:[123,126],chang:[6,9,11,50,53,64,69,75,85,92,100,114,123,134,158],channel:[18,88,92,100,123,435],charact:[18,37,50,78,80,88,92,100,105,114,121,122,123,126,127,130,141,142,147,436],chargen:[78,130,205],chat:18,cheat:3,check:[13,33,39],checker:0,checkpoint:141,children:117,choic:77,choos:146,clean:76,clickabl:59,client:[51,65,68,73,119,147,155,316],client_opt:32,clone:[11,76],cloth:[78,122,206],cloud9:155,cmdhandler:173,cmdparser:174,cmdset:[108,115,175],cmdset_account:183,cmdset_charact:184,cmdset_sess:185,cmdset_unloggedin:186,cmdsethandl:176,code:[0,1,3,9,11,13,14,18,19,27,35,36,42,69,77,85,92,106,108,116,121,123,127,145,209,368],coin:123,collabor:99,color:[17,19,53,60,78,92,104,139],color_markup:207,colour:60,combat:[129,130],comfort:157,comm:[187,195,196,197,198,400],command:[3,6,8,15,20,21,22,24,25,26,31,42,77,86,92,93,94,95,97,100,101,104,106,107,108,113,114,115,116,119,126,129,130,138,152,157,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,216,230,275,368],comment:[81,97,117],commit:11,commom:53,commun:[14,23],complet:33,complex:[77,111],compon:[17,24,43,282],comput:155,concept:[1,61,81,123,129],conclud:[96,130],conclus:[77,82,107,111,114,116,122,123,124,126],condit:92,conf:[113,159],config:[78,86,104,145],configur:[7,11,104,141,145,146,150,151,152,153,156,161],congratul:121,conjug:393,connect:[6,25,148,152,155],connection_wizard:312,contain:[42,157,369],content:92,continu:[2,126],contrib:[8,77,78,79,83,84,88,122,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],contribut:[84,85,86],control:11,convert:[30,107],cooldown:93,coordin:96,copi:145,core:[24,61,86,88,98],counter:253,cprofil:5,craft:[78,79,123,208,209,210,211],crafter:79,creat:[2,6,12,19,22,37,48,55,67,75,82,86,91,102,103,108,109,110,114,116,123,130,132,138,141,157,370],create_object:114,createnpc:130,creation:124,creatur:157,credit:[114,120],crop:19,current:[3,101],custom:[8,18,28,30,31,33,44,49,50,51,53,54,62,70,73,77,78,79,90,99,101,104,108,161],custom_gametim:212,dai:123,data:[7,13,28,44,52,62],databas:[6,9,24,31,41,67,76,86,111,114],dbref:118,dbserial:371,deal:42,death:123,debug:[3,14,158],debugg:7,decid:123,decor:[28,54],dedent:19,dedic:141,deep:103,deeper:79,defaultobject:6,defeat:123,defin:[11,20,22,28,30,33,42,67,83],definit:33,delai:[19,42,54,94],delimit:92,demo:121,depend:[9,58,76],deploi:157,deprec:[85,313],desc:[28,253],descer:99,descript:[123,157],design:106,detail:[102,141],detect:123,develop:[1,8,99,144,157,158,163],dialogu:80,dice:[78,100,122,213],dictionari:28,differ:[48,58,98,123],diku:98,dir:[113,119,161],direct:[7,85],director:58,directori:[155,159],disabl:158,discuss:144,displai:[19,81,101,147],dive:103,django:[33,73,88,111,141,163],doc:[0,85],docker:157,docstr:[85,117],document:[72,84,85,442],doe:123,doing:124,don:[14,87,126,157],donat:84,done:120,door:78,down:[83,109,138,163],dummyrunn:[5,345],dummyrunner_set:346,durat:94,dure:163,dynam:[22,28,81],each:[118,123],echo:32,economi:123,edit:[27,77,85,130],editnpc:130,editor:[27,119],elev:75,els:123,email:78,email_login:214,emul:98,encod:[16,70],encrypt:155,enemi:123,enforc:123,engin:124,enjoi:145,enough:[120,123],enter:138,entir:75,entit:24,entiti:123,entri:[31,109],error:[42,97,108,116,163,437],eval:85,eveditor:[27,372],even:79,evennia:[0,3,4,7,8,9,11,30,41,49,51,56,64,71,74,76,85,87,90,92,98,99,100,107,112,116,123,125,128,131,133,139,144,145,146,148,151,152,154,155,157,160,163,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,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442],evennia_launch:314,evenniatest:8,event:[75,80,101],eventfunc:231,everi:95,everyth:77,evform:[100,373],evmenu:[28,92,374],evmor:[29,375],evscaperoom:[78,215,216,217,218,219,220,221,222,223],evtabl:[92,100,376],examin:[3,114],exampl:[3,8,27,28,30,33,39,42,51,53,69,78,80,83,96,112,127,129,155,276,368],example_batch_cod:263,example_recip:210,except:126,execut:3,exist:[48,123],exit:[22,37,75,78,92,97],expand:[129,138,253],experi:123,explan:77,explor:[0,112],extend:[61,78,83,122],extended_room:224,extern:[85,158],extra:[114,120],fail:123,familiar:[98,99],faq:[92,103],faster:8,featur:[61,73,102],feel:98,field:[78,88,111],fieldfil:225,fight:123,figur:108,file:[8,11,14,15,16,31,85,159,160,368],filehelp:286,fill:[19,78],filter:410,find:[1,96,116,118],firewal:158,first:[75,77,80,83,99,114,116],fix:11,flat:[4,53],flexibl:85,flow:[52,123],flower:123,folder:[0,11,76],foreground:163,forget:6,fork:[11,84],form:[17,53,123,141,430],formal:123,format:28,forum:144,framework:144,from:[4,28,31,51,87,90,92,109,116,141,155,157,374],front:[53,134],frontpag:401,full:[77,78,102],func:39,funcpars:[30,377],funcparser_cal:30,further:[54,134,145],futur:91,gain:123,game:[0,8,9,11,13,18,19,31,42,53,78,81,82,87,96,99,100,101,109,113,119,121,123,124,127,130,137,148,155,157,161,162,209],game_index_cli:[315,316,317],gamedir:85,gameplai:120,gametim:[78,101,378],gaug:253,gendersub:[78,226],gener:[17,61,77,78,122,123,130,141,144,188,374],general_context:423,get:[28,89,103,109,111,149,151],get_client_opt:32,get_input:28,get_inputfunc:32,get_valu:32,git:[11,88],github:88,give:[89,123],given:46,global:[86,107,123],global_script:42,glossari:88,gmcp:68,godhood:109,goldenlayout:51,good:117,googl:141,grant:[50,100],grapevin:[150,325],graphic:116,grid:[78,81,83,147],group:111,guest:63,guid:76,had:120,handl:[55,102,123,158,163],handler:[45,86,129],haproxi:151,have:[103,117,119,123,130],head:85,health:78,health_bar:227,hello:116,help:[0,1,31,76,84,89,102,109,189,285,286,287,288,289,402,438],here:[0,87],hidden:123,hide:123,hierarchi:[39,100,123],hint:[5,42,64,120,145],hit:108,hold:115,hook:48,host:155,hous:109,how:[12,22,37,48,70,89,100,103,123,138,152,157],howto:103,html:[53,132,141],http:[145,151],human:123,idmapp:[379,380,381,382],imag:[157,158],implement:[123,127],improv:[102,123],index:[102,141,148,439],infinit:123,influenc:123,info:[144,163],inform:155,infrastructur:127,ingame_python:[228,229,230,231,232,233,234,235],ingo:65,inherit:[74,117],inherits_from:19,init:[112,114],initi:[92,129,146,162],initial_setup:318,inlin:30,input:[22,28,30,68,116],inputfunc:[32,65,319],instal:[11,76,83,90,141,145,146,149,151,152,154,155,157,161,162,209],instanc:[22,48,67,117],integr:2,interact:[0,14,15,54,116,149],interfac:158,intern:85,internation:64,interpret:7,interrupt:83,intro_menu:268,introduct:[0,5,28,76,81,82,87,141],inventori:105,ipython:116,irc:[153,326],issu:147,ital:85,item:121,itself:126,join:18,jumbotron:17,jupyt:0,just:[87,123],kei:[28,41,77,118],keyword:[80,114],kill:[123,163],kind:123,know:[87,158],known:[6,123],languag:[64,78],larg:123,last:92,latest:[9,157],latin:92,launch:[27,28],launchcmd:277,layout:56,learn:[0,87],leav:138,legend:[83,282],lesson:[119,125],let:[3,14,102,155],librari:112,licens:143,life:161,lift:55,like:[14,98,123,130],limit:[14,15,123],line:[3,27,91,111,116,119,126],link:[50,59,83,85,144],linux:[2,149,163],list:[3,85,114,115,123],list_nod:28,listen:136,literatur:144,live:163,local:[85,107,155],locat:118,lock:[13,31,33,39,115,138,290,291,292],lockdown:155,lockfunc:[126,291],lockhandl:292,log:[18,19,76,102,113,116,158,162],logfil:7,logger:383,login:[32,63,78],logo:[53,134],longer:80,look:[31,98,109,123,130],lookup:[86,111],loop:114,loot:123,mac:[149,163],machin:155,magic:6,mai:123,mail:[11,78,236],main:[85,86,118,442],make:[8,11,19,91,99,100,108,109,114,116,123,126,130,138,151],manag:[13,39,51,90,170,197,287,294,303,320,363,380],manual:[104,123,148],map:[78,81,82,83,282],mapbuild:237,mapper:81,mariadb:146,markup:[78,367],mass:105,master:[11,100,123],match:[6,115],matter:123,mccp:327,mean:123,mech:91,mechan:123,memori:13,memplot:347,menu:[19,28,77,78,106,217,298,374],menu_login:238,merg:20,messag:[58,65,68,75,92],messagepath:65,method:[6,22,42,104,114,116],middlewar:424,migrat:[9,88,90],mind:11,mini:8,minimap:82,mirror:264,mixin:440,mob:[103,123,269],mod_proxi:145,mod_ssl:145,mod_wsgi:145,mode:[14,15,44,66,88,155,163],model:[8,67,86,141,171,198,288,295,304,321,364,381],modif:100,modifi:[53,95,114,145],modul:[41,78,116,127,129,152],monitor:32,monitorhandl:[34,305],more:[0,9,33,56,58,60,73,79,85,86,94,99,104,115,123],most:0,motiv:124,move:[92,126,138],movement:78,msdp:68,msg:[35,65,104],mssp:328,mud:[119,144],multi:[99,115,116,117,123],multidesc:[78,99,239],multipl:[13,123,126],multisess:[44,66,88],mush:[99,130],must:123,mutabl:[6,13],mux:72,muxcommand:190,mxp:329,mysql:146,myst:85,name:[6,55,114,123],nattribut:13,naw:330,need:[75,87,115,119,123],nest:77,network:24,next:[99,149,152,162],nice:151,nick:36,night:123,node:[28,83],non:[13,92,93,148,149],nop:147,note:[8,15,16,20,22,28,31,36,46,52,54,62,85,136,145],notebook:0,npc:[78,103,106,122,123,130,135,136],number:107,numer:123,obj:39,object:[6,13,19,33,37,42,44,46,50,58,82,88,92,105,109,110,111,114,115,116,117,118,121,123,126,138,218,270,293,294,295,296,403,441],obtain:141,off:[92,123],offici:144,olc:41,onc:120,one:[85,96,123],onli:[85,111,123,163],onlin:[11,155],oob:68,oop:117,open:106,oper:[54,75],option:[28,77,83,100,107,155,158,163],optionclass:384,optionhandl:385,other:[22,42,50,53,58,116,118,123,144,146,155,159],our:[69,75,77,102,108,114,116,121,123,138,141],ourselv:114,out:[62,100,108,123],outgo:65,output:[18,246],outputcommand:68,outputfunc:38,outsid:155,overal:127,overload:[48,73,104],overrid:6,overview:[2,67,83,112,113,129,134],own:[12,22,32,37,51,62,108,116,123,155,157,253],page:[53,73,90,102,132,134],parent:[67,99],pars:[71,92,107,115,116],parser:30,part3:103,part:[103,119,125,128,131,133],parti:144,pass:116,patch:84,path:[14,65,113],pathfind:83,paus:[22,75,94],pax:76,pdb:3,penalti:123,percent:253,perman:123,permiss:[33,39,46,57,100,411],perpetu:121,persist:[13,27,93,94,108,114],person:[109,123],physic:123,picklefield:386,pictur:141,pip:[88,90],place:85,plai:[123,151],plan:[0,82,121,122,123],player:[99,123],plugin:51,point:0,polici:72,port:[155,158],portal:[40,44,65,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343],portalsess:65,portalsessionhandl:[65,332],post:123,postgresql:146,practic:107,prefix:22,prepar:2,prerequisit:154,prevent:92,prioriti:31,prison:123,privileg:[90,123],problem:69,process:[54,61,163],processor:[14,15,16,368],product:[91,157],profil:[5,344,345,346,347,348,349,350,351],program:[3,87],project:[2,7],prompt:[28,95],pron:58,pronoun:394,prop:123,properti:[12,13,18,20,22,28,35,37,44,46,48,83,88,111],protfunc:[41,299],protocol:[62,68],prototyp:[41,83,278,297,298,299,300,301],proxi:[145,155],publicli:11,pudb:3,puppet:88,push:[11,109],put:[11,102,151],puzzl:[78,240],pvp:123,pycharm:7,python:[0,14,78,87,99,113,116,117,144,152],quell:[39,57,115],queri:[48,111,114],queryset:[111,118],quest:123,quick:[2,123,149],quickstart:162,quiet:107,quirk:6,race:123,rais:126,random:78,random_string_gener:241,rate:253,read:[0,54,60,73,134],real:14,reboot:163,recapcha:141,receiv:[58,62,68],recip:[79,209,210],recog:58,red_button:265,refer:[85,92],referenc:58,regist:155,regular:123,rel:[112,118],relat:[78,101,103],releas:[85,121],relev:155,reli:14,reload:[6,92,117,145,163],remark:130,rememb:[4,85,117],remind:102,remot:[11,146,155],remov:[46,92,115],repair:123,repeat:[28,32,42],replac:115,repo:76,repositori:[0,11,84,88],reput:123,requir:149,reset:[9,163],reshuffl:109,resourc:144,respawn:123,rest:[49,126],restart:[145,162],restrict:18,retriev:13,role:[100,123],roleplai:[58,78,100,123],roller:100,rom:98,room:[37,75,78,81,92,96,100,105,121,122,123,219,271],root:412,router:83,rpg:123,rplanguag:242,rpsystem:243,rss:[156,333],rst:85,rule:[20,78,123,127,129],run:[3,7,8,22,87,90,154,157,161],runner:8,safe:30,safeti:14,same:[28,80],save:13,schema:9,score:130,screen:25,script:[42,88,138,220,232,302,303,304,305,306,307,308,309,404],scripthandl:306,search:[19,20,46,67,86,96,107,118,387],searching_cal:30,season:123,secret:141,section:442,secur:[78,145,151,158,244,245,246,247,248],see:[6,102,162],select:[78,92],self:107,send:[58,62,68,95,116],sent:95,separ:[77,123,126],serial:413,server:[24,40,43,44,61,64,78,113,130,145,146,155,159,161,162,247,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,405],serverconf:159,serversess:[65,353],serversessionhandl:65,servic:317,session:[44,65,88,92,100,354],sessionhandl:[44,355],set:[1,7,8,11,20,28,33,76,81,90,101,104,114,119,123,130,148,150,153,155,156,158,159,160],setpow:130,settings_default:360,settings_mixin:348,setup:[2,76,145,146,149,155,161,162],sever:[80,96,107],share:11,sharedmemorymodel:67,sheet:[3,100],shop:106,shortcut:86,should:123,show:[103,130],shut:163,sidebar:85,signal:[45,356],similar:123,simpl:[3,5,8,28,33,42,77,78,94,123,132],simpledoor:249,singl:13,singleton:86,site:[73,88],sitekei:141,sittabl:126,skill:[79,123,124],slow:78,slow_exit:250,snippet:78,soft:69,softcod:[69,99],solut:69,solv:123,some:[39,96,98,116,122,123],someth:123,somewher:87,sort:123,sourc:[7,31,85],space:[17,114],spawn:[41,99],spawner:[41,301],special:123,spell:210,spread:84,spuriou:147,sql:[111,146],sqlite3:146,ssh:[68,158,334],ssl:[155,335],stack:123,staff:123,stanc:58,standard:[72,101],start:[0,76,100,103,106,116,119,125,128,131,133,149,157,162,163],stat:137,state:221,statement:108,statu:[123,163],status:123,step:[3,11,76,99,109,121,141,150,152,153,154,156,162],stop:[162,163],storag:[28,42],store:[13,28,41,92,123],string:[33,78,83,107,374],strip:107,structur:85,studi:75,stuff:[87,109,130],style:[17,53],sub:77,subclass:37,subtop:31,succe:123,suit:8,summari:[55,86,108,115,117,118],superus:39,support:[0,68,147],suppress_ga:336,surround:3,swap:48,sword:[115,210],synchron:54,syntax:[0,85,99,163,368],syscommand:191,system:[21,22,31,33,56,58,78,79,102,103,121,122,123,127,129,130,192],tabl:[19,67,85,92],tag:[46,71,88,96,118,139,365,406],talk:[78,122],talking_npc:251,taskhandl:308,tb_basic:256,tb_equip:257,tb_item:258,tb_magic:259,tb_rang:260,teamciti:2,tech:121,technic:[31,85,265],teleport:83,telnet:[68,147,155,337],telnet_oob:338,telnet_ssl:339,templat:[2,102,141,374],templatetag:[417,418],tempmsg:35,temporari:28,term:117,termux:154,test:[5,8,87,116,130,193,202,211,222,233,248,266,279,340,350,382,395,414,425,431],test_queri:349,test_resourc:388,test_trait:252,text2html:389,text:[19,28,32,61,70,71,85,116,134],than:123,thei:123,them:123,theori:107,thi:[102,124],thing:[4,85,98,99,110,114,117,118,119,123],third:144,those:123,throttl:357,through:[3,84,157],ticker:[47,88],tickerhandl:[47,309],tie:100,time:[19,22,42,69,101,123],time_format:19,timer:[5,42],timetrac:351,tip:11,titl:[50,53],to_byt:19,to_str:19,togeth:[102,151],tool:[19,24,55,144],traceback:0,track:[11,123],train:138,trait:[78,122,253],traithandl:253,traitproperti:253,transit:83,translat:64,travi:10,treat:14,tree:[78,123,210],tree_select:254,trick:11,troubleshoot:[149,154],ttype:341,tupl:[114,115],turn:[6,92,129],turnbattl:[78,122,255,256,257,258,259,260],tutori:[0,8,75,78,80,91,101,102,103,106,119,120,121,123,125,128,129,130,131,133,134,135,136,137,138,140,142],tutorial_exampl:[261,262,263,264,265,266],tutorial_world:[267,268,269,270,271],tweet:[137,152],twist:88,twitter:152,type:[12,13,37,253],typeclass:[6,48,74,86,88,99,104,108,113,114,118,126,234,253,361,362,363,364,365],under:11,understand:139,ungm:100,unimpl:164,uninstal:120,unit:8,unixcommand:[78,272],unloggedin:194,unmonitor:32,unquel:115,unrepeat:32,updat:[9,11,48,92,114],upgrad:9,upload:158,upstream:[6,11],url:[85,90,102,132,141,407,415,419,427,432],usag:[14,15,27,49,50,83,146],use:[6,18,47,87,122,123],used:[22,92,210],useful:[22,122,144],user:[11,22,53,57,64,98,99,102,158],using:[3,8,75,114,118],util:[7,17,19,22,24,30,86,94,144,223,235,280,289,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,408,420,421,422,423,424,425],valid:[33,358],validatorfunc:391,valu:[28,41,123],vanilla:123,variabl:3,variant:126,vehicl:[103,138],verb_conjug:[392,393,394,395],verbatim:85,version:[11,85],versu:54,vhost:145,via:123,view:[18,73,102,132,141,142,416,428,433,434,435,436,437,438,439,440,441],viewpoint:58,virtualenv:88,voic:75,volum:123,wai:[1,28,83,94,115,116],want:[87,103,123,157],warn:85,weapon:123,weather:[123,140],web:[6,50,51,53,61,68,73,103,113,132,134,141,142,155,158,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441],webclient:[52,342,426,427,428],webclient_ajax:343,webclient_gui:51,webpag:53,webserv:[52,158,359],websit:[53,73,90,429,430,431,432,433,434,435,436,437,438,439,440,441],websocket:[145,151],weight:[105,123],werewolf:111,what:[2,13,56,87,103,107,117,118,119,123,124,157],when:[4,47,92,126],where:[87,112,124,149],who:[22,108],wiki:90,wilder:[78,273],willing:87,window:[64,76,149],wizard:148,word:84,work:[11,22,48,83,87,102,107,123,138,157],workaround:147,workflow:1,world:[78,103,109,113,116,120,121,123],write:[8,51,62],wss:151,xterm256:[60,139],xymap:[83,281],xymap_legend:282,xyzexit:83,xyzgrid:[78,83,274,275,276,277,278,279,280,281,282,283,284],xyzroom:[83,284],yield:[28,94],you:[0,87,115,119,120,123],your:[0,1,6,9,11,12,22,32,37,51,57,62,67,69,90,96,108,109,113,123,124,141,155,157,158,253],yourself:[109,121],zcoord:83,zone:74}}) \ No newline at end of file diff --git a/docs/1.0-dev/toc.html b/docs/1.0-dev/toc.html index cdd1431926..cd8893f726 100644 --- a/docs/1.0-dev/toc.html +++ b/docs/1.0-dev/toc.html @@ -321,6 +321,7 @@
    • Defining your own command classes
    • +
    • Command prefixes
    • On arg_regex